从硬件的系统结构开始

时间:2021-07-14 15:10:50

              我们的电脑主机上都有两个标准化的部分:北桥和南桥。它们是CPU和内存以及其他外设沟通的渠道。下图给出了CPU,内存,南北桥以及其他总线之间的关系。

            从硬件的系统结构开始          我们可以看到,所有的CPU都共用一条FSB总线(the Front Side Bus),与北桥相连。而北桥中有一个内存控制器(memory controller),它决定了RAM的类型,换句话说,不同的RAM,比如SRAM,DRAM,SDRAM所要求的内存控制器是不一样的。要访问其他的系统设备,北桥则要同南桥进行交互,南桥也称为IO brigde,它通过一系列的总线(PCI,USB,SATA.....) 来达到与外部设备通信的目的。这种系统结构有如下几点值得我们注意的地方:        1.CPU之间的所有数据交流都要通过与北桥进行通信的FSB总线;      2.所有设备对RAM的访问都要经手北桥处理(图中只能看到CPU,但是实际上还有一些设备通过DMA访问内存,也得由北桥来进行处理)      3.RAM只有单独的一个访问端口(并不是所有的RAM都只有一个访问端口,一些用于特殊用途的可能有多个,但这对我们的讨论没有太多的意义);     4.CPU访问连接在南桥上的设备也要路经北桥。          这种系统设计的一个明显的瓶颈体现在对内存的访问上。为了缓解CPU的压力,现在那些连接在各种总线上的高性能器件一般都带有DMA功能,尽管这样能减少CPU的工作负载,但是当外设都争相访问内存时,增大了对北桥带宽的竞争,而且北桥到内存之间也只有一条总线。         下图给出了一种更为昂贵的系统,内存控制器并没有被包含在北桥中,而是被单独隔离出来以协调北桥与某个相应的RAM之间的交互。这样的话,北桥可以和多个RAM相连。      从硬件的系统结构开始 这种架构的好处就是内存总线增加了,所以总的带宽也就增加了。对于这种设计,主要的限制就是北桥本身的内部带宽是有限的。           当然,就增加内存访问的带宽而言,使用多个外部内存控制器并不是唯一的办法。如今,越来越流行的一个方法就是将内存控制器给整合到CPU里面去,这种架构在基于AMD的内存处理器的SMP系统中非常流行。下图给出了这种系统架构的模型              从硬件的系统结构开始       可以看到,这种架构下,在一个配有四核CPU的机器中,不需要一个复杂的北桥就能将内存带宽增加到以前的四倍。当然这样的架构也是存在一些缺点的。由于每一个CPU都要保证能访问到每一块内存,而内存并不是直接和所有的CPU相连,也就是说内存不再是一致的了!因此这种架构也称为非一致性内存架构,即NUMA(Non uniform memory architecture).不难看出,对于某个CPU来说,本地内存(即和CPU直接相连的内存)的访问速度是正常的,但是当其要访问其他的内存时,就上图而言,轻者要经过另外一个CPU,重者要经过2个CPU,才能达到访问非本地内存的目的,因此内存与CPU的"距离"不同,访问的时间有也所差异,对于NUMA,以后会给出更详细的介绍!  

由于个人水平有限,文中描述不当或出错之处还请指出,转载请注明出处,谢谢http://blog.csdn.net/vanbreaker/article/details/7464894