02微型计算机组成原理
1.计算机系统结构
计算机系统可以分为硬件部分和软件部分,但两者之间相互依存。硬件部分是计算机系统的可见部分,是软件运行和存储的平台。软件是一种控制硬件操作和动作的指令流。
本书描述的主题就是一个计算机系统的运行机制,主要说明系统的处理中心和输入/输出部分的硬件组成原理和软件控制的实现。
在硬件方面,我们概要说明 Intel 80X86 中央处理器(CPU—— Central Processing Unit)的 IBM PC微型计算机及其兼容机的硬件系统,计算机的 CPU 芯片可以直接看做是系统的处理中心,它通过总线接口与其他部分相连;而对于运行在其上的软件方面,我们则专门详细描述 Linux 操作系统内核的实现。
2. 微型计算机组成原理
一个传统微型计算机硬件组成结构如下图所示。
其中,CPU通过地址线、数据线和控制信号线组成的本地总线(或称为内部总线)与系统其它部分进行数据通信。地址线用于提供内存I/O设备的地址,即指明需要读/写数据的具体位置。数据线用于在CPU和内存或I/O设备之间提供数据传输的通道。控制线则负责指挥执行的具体读/写操作。
对于使用 80386 CPU 的 PC 机,其内部地址线和数据线都分别有32根,即都是32位的。因此地址寻址空间范围有 2^32 字节, 从 0 到 4 GB。
图中上部控制器和存储器接口通常都集成在计算机主板上,这些控制器分别都是以一块大规模集成电路芯片为主组成的功能电路。例如,中断控制器由 Intel 8259A 或其兼容芯片构成;DMA 控制器通常采用 Intel 8237A芯片构成;定时计数器的核心则是 Intel 8253/8254 定时芯片;键盘控制器使用的是 Intel 8042芯片来与键盘中的扫描电路进行通信。
图中下方的控制卡(或者称为适配器)则是通过扩展插槽与主板上系统总线连接。总线插槽是系统地址总线、数据总线和控制总线与扩展设备控制器的标准连接接口。这些总线接口标准通常有工业标准结构ISA(Industry Standard Architecture)总线、扩展工业标准结构总线 EISA (Extented ISA)、外围组件互连 PCI (Peripheral Component Interconnect)总线、加速图形端口 AGP(Accelerated Graphics Port)视频总线等。这些总线接口的主要区别在于数据传输速度和控制灵敏性方面。随着计算机硬件的发展,传输速率更高,控制更灵活的总线接口还在不断推出,例如采用串行通信点对点技术的高速 PCIE (PCI Express) 总线。
随着计算机技术的发展,很多原来使用控制卡来完成的功能(例如硬盘控制器功能)都已经集成在计算机主机板上少数几个超大规模集成电路芯片中,几个甚至是一个这样的芯片就确定了主机板的主要特性和功能,并且为了让系统的不同部分都能达到其最高的传输速率,总线结构也发生了很大的变化。
现代PC机的组成结构通常可以使用下图来描述。除了 CPU 以外,现代 PC 机主板使用 2 个超大规模集成芯片构成的芯片集(Chipsets)组成:北桥(Northbridge)芯片和南桥(Southbridge)芯片。北桥芯片用于与CPU、内存和 AGP 视频接口,这些接口具有很高的传输速率。北桥芯片还起着存储器控制作用,因此 Intel 把该芯片标号为 MCH (Memory Controller Hub)芯片。南桥芯片用来管理低、中速的组件,例如,PCI总线、IDE硬盘接口、USB端口等,因此南桥芯片的名称为 ICH(I/O Controller Hub)。
之所以用“南、北”桥来分别统称这两个芯片,是由于在Intel 公司公布的典型 PC 机主板上,它们分别位于主板的下端和上端(既地图上的南部和北部)位置,并起着与CPU进行通道桥接的作用。
虽说总线接口发生了很大变化,甚至今后北桥和南桥芯片都将合二为一,但是对于我们编程人员来说,这些变化仍然与传统的 PC 机结构兼容。因此为传统 PC 机硬件结构编制的程序仍然能运行于现在的 PC 机上。这从 Intel 的开发手册上可以证实这个结论。所以为了便于入门学习,我们仍要以传统 PC 机机构为框架来讨论和学习 PC 组成和编程方法,当然这些方法仍然适合现代 PC 机结构。