计算机的硬件结构

(根据《程序员的自我修养》整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明)

1.计算机硬件的基本结构

    撇开计算机硬件中纷繁复杂的各种设备、芯片及外围接口等,站在软件开发者的角度看,我们只须抓住硬件的几个关键部件。对于系统程序开发者来说,计算机多如牛毛的硬件中,有三个部件最为关键,它们分别是中央处理器CPU,内存和I/O控制芯片,这三个部件几乎是计算机的核心了。

    早期的计算机没有很复杂的图形功能,CPU的核心频率也不高,跟内存的频率一样,它们都是直接连接在同一个总线(BUS)上。由于I/O设备诸如显示设备、键盘、软盘和磁盘等速度与CPU内存相比还是慢很多。为了协调I/O设备和与总线之间的速度,也为了让CPU能够和I/O设备进行通信,一般每个设备都会有一个相应的I/O控制器。早期的计算机硬件结构如下图所示:

                                              image

    虽然现在的计算机硬件结构越来越复杂,但实际上它没有脱离最初的CPU、内存,以及I/O的基本结构。

                          

2. SMP 与多核

   

    在过去的50年里,CPU的频率从几十kHz到现在的4GHz,整整提高了数十万倍,基本上每18个月频率就会翻倍。但是自2004年以来,这种规律似乎已经失效,CPU的频率从那时开始再也没有发生质的提高。原因是人们在制造CPU的工艺方面已经达到了物理极限。

    于是人们开始想办法从另外一个角度来提高CPU的速度,就是增加CPU的数量。其中常见的一种形式就是对称多处理器(SMP,Symmetrical Multi-Processing),简单的讲就是每个CPU在系统中所处的地位和所发挥的功能都是一样的,是相互对称的。

    理论上讲,增加CPU的数量就可以提高运算速度,并且在理想情况下,速度的提高与CPU的数量成正比。但实际上并非如此,因为我们的程序并不能分解成若干个完全不相干的子问题。

    多处理器应用最多的场合是商用服务器和需要处理大量计算的环境。在个人电脑中,使用多处理器是比较奢侈的行为。于是就将多个处理器“合并在一起打包出售”,这些被“打包”的处理器之间共享昂贵的缓存,只保留多个核心,并且以一个处理器的外包装进行销售,这就是多核处理器的基本想法。多核处理器实际上就是SMP的简化版,当然在细节上还有一些差别,但是从程序员的角度看,它们之间区别很小,逻辑上完全相同。

原文地址:https://www.cnblogs.com/hust-ghtao/p/3969383.html