《程序员的自我修养》

时间:2023-02-12 17:13:56

  撇开计算机硬件中纷繁复杂的各种设备、芯片以及外围接口等,站在软件开发者的角度看,我们必须专注硬件的几个关键部件,对于系统程序开发者来说,计算机多如牛毛的硬件设备中,有三个部件最为关键,他们分别是*处理器CPU、内存和I/O控制芯片,这三个部件几乎就是就是计算机的核心了;对于一些高级平台的开发者来说(如Java、.NET或者脚本语言开发者)连CPU都不需要关心,因为这些平台为他们提供了一个通用的抽象计算机,他们只要关心这个抽象的计算机就可以了。

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

《程序员的自我修养》

  后来由于CPU核心频率的提升,导致内存跟不上CPU的速度,于是产生了与内存频率一致的系统总线,而CPU采用的倍频的方式与系统总线进行通信,接着随着图形化的操作系统普及,特别是3D游戏和多媒体的发展,使得图形芯片需要跟CPU和内存之间大量交换数据、慢速的I/O总线已经无法满足图形设备的巨大需求,为了协调CPU、内存和告诉的图形设备,人们专门设计了一个高速的北桥芯片,以便他们之间能够高速地交换数据。

  由于北桥运行的速度非常高,所以相对于低俗的设备如果全部连接在北桥上,北桥既需处理高速设备,又需处理低速设备,设计就会十分复杂。于是人们有设计了专门处理低速设备的南桥芯片,磁盘、USB、键盘、鼠标等都连接在南桥上,由南桥将他们汇总后连接在北桥上。20世纪90年代的PC机在系统总线上采用的是PCI结构,而在低速设备上采用的是ISA总线,采用PCI/ISA及南北桥的硬件架构如图1-2所示。

  位于中间是连接所有高速芯片的北桥,它就像人的心脏,连接并驱动身体的哥哥部位:他的左边是CPU,负责所有的控制和运算,就像人的大脑。北桥还连接几个高速部件,包括右边的内存和下面的PCI总线。

《程序员的自我修养》

 

   PCI的速度最高为133MHz,它还是不能满足人们的需求,于是人们发明了AGP、PCI Express等诸多总线结构和相应控制芯片。虽然硬件看似越来越复杂,但实际上他还是没哟脱离最初的CPU、内存,以及I/O的基本结构。我们从程序开发的角度看待硬件时可以简单的将它看成最初的硬件模型。