国产龙芯3A系列CPU + LS2H/LS7A桥片

如下为龙芯3A系列其中一款4核处理器、以及LS2H/LS7A桥片组成的电脑基本结构图。

国产龙芯3A系列CPU + LS2H/LS7A桥片_第1张图片

一、CPU侧

1)该CPU包含1个NUMA节点(4核处理器龙芯3A系列包含1个NUMA节点,8核处理器龙芯3B系列包含2个NUMA节点)。每个NUMA节点包含4个CPU核(每个CPU核都有自己的本地L1 Cache),两个内存控制器、两个 HT 控制器、一个L2 Cache组成。 其中HT0 控制器用于多个处理器芯片互联以构建Cache-Coherent NUMA系统, HT1 控制器用于连接芯片组进而挂接各种外围设备。

2)由上图可以看出4个CPU核的L1 Cache与2个HT控制器一样,都是L2 Cache的主设备。龙芯处理器在硬件上通过目录协议(见下面的附)来维护CPU核间Cache的一致性,以及CPU核与外设DMA之间的Cache一致性。这种不需要软件处理一致性问题的设计大大便利了Linux内核的开发,然而为了满足一些特殊场合的要求,龙芯平台的Linux内核即支持一致性DMA(由硬件维护CPU核与DMA之间的一致性),也支持非一致性DMA(由软件CPU核与DMA之间的一致性)。注意这里涉及的一致性是指空间一致性Coherency而不是时序一致性Consistancy;空间一致性指多个Cache副本之间的一致性,由龙芯CPU硬件负责维护;而时序一致性指多个处理器之间访存操作的顺序问题,通常需要软件和硬件协同解决。

二、桥片侧

1)该桥片(LS2H或者LS7A,其中后者是前者的升级改进)也是龙芯中科的产品。可以将该桥片看成是将南桥芯片和北桥芯片集成在一起来用,只是额外允许一些低速设备不同通过PCIe控制器,而是直接与HT控制器内部总线相连,比如在LS7A桥片中,RTC和I2C设备直接使用内部总线,而LPC,SPI等控制器则通过PCIe连接。

2)  在Linux内核中直接通过内部总线连接的设备叫platform device,因此内部总线也叫platform bus,也就是说在LS2H/LS7A机型中,外围设备有PCIe总线设备和平台总线设备二大类。

附:

         硬件维护一致性的协议主要有两大类:侦听协议和目录协议。其基本方法都是本地 Cache (如一级 Cache )与共享 Cache (如二级 Cache )之间通过消息传递来维护每个 Cache 行的状态机。

        1)侦听协议要求每个 CPU核都随时侦听总线上的消息,通信代价较大。

        2)目录协议则让每个 CPU 核负责一个 Cache 目录,每个 Cache 目录对应整个 Cache 里面的一个子集;CPU 核是 Cache 目录的宿主,本地 Cache 传递消息的时候直接发往宿主而不是广播到总线。

        龙芯使用的目录协议中, Cache 行的状态分三种:INV (无效,表示没有缓存任何数据)、 SHD (共享,表示多个本地Cache 里面都有相同的数据副本,只能读不能写)和 EXC (独占,表示有一个本地 Cache 要写数据,因此其他本地 Cache 中的数据副本都要无效化)。
 

你可能感兴趣的:(CPU,硬件架构)