源于冯·诺依曼设计思想的计算机由5大部件组成:控制器、运算器、存储器、输入设备和输出设备。控制器是整个计算机的控制核心;运算器是对信息进行运算处理的部件;存储器是用来存放数据和程序的部件;输入设备将数据和程序转换成计算机内部所能识别和接收的信息形式,并顺序地把它们送入存储器中;输出设备将计算机处理的结果以人们或其他机器能接受的形式送出。
现代计算机在很多方面都对冯·诺依曼计算机结构进行了改进,例如,在现代计算机中,5大部件成为3个硬件子系统:处理器、存储系统和输入/输出系统。处理器(中央处理单元,CPU)包括运算器和控制器,是信息处理的中心部件。存储系统由寄存器、高速缓冲存储器、主存储器和辅助存储器构成。处理器和存储系统在信息处理中起主要作用,是计算机硬件的主体部分,通常被合称为“主机”。输入(Input)设备和输出(Output)设备统称为外部设备,简称为外设或I/O设备。输入/输出系统的主体是外设,还包括外设与主机之间相互连接的接口电路。
为简化各个部件的相互连接,现代计算机广泛应用总线结构,如图1-1所示。采用总线连接系统中的各个功能部件使计算机系统具有组合灵活、扩展方便的特点。
图1-1 计算机系统的硬件组成
计算机的核心是处理器(CPU),微型计算机中也常称为微处理器。它是采用大规模集成电路技术生产的半导体芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。高性能处理器内部非常复杂,例如,运算器中不仅有基本的整数运算器,还有浮点处理单元,甚至多媒体数据运算单元;控制器还会包括存储管理单元、代码保护机制等。处理器及其支持电路构成了计算机系统的处理和控制中心,对系统的各个部件进行统一的协调和控制。
16位IBM PC系列机采用16位80x86处理器,32位PC则采用IA-32处理器或其兼容芯片(如AMD公司的系列处理器)。目前,64位PC中已广泛应用Intel 64结构的处理器。
存储器(Memory)是存放程序和数据的部件。存储系统由处理器内部的寄存器(Register)、高速缓冲存储器、主板上的主存储器和以外设形式出现的辅助存储器构成。
主存储器(简称主存或内存)由半导体存储器芯片组成,安装在机器内部的电路板上,相对辅助存储器来说,主存储器造价高、速度快,但容量小,主要用来存放当前正在运行的程序和正待处理的数据。辅助存储器(简称辅存或外存)主要由磁盘、半导体盘、光盘存储器等构成,以外设的形式安装在机器上,相对主存储器来说,辅助存储器造价低、容量大、信息可长期保存,但速度慢,主要用来长久保存程序和数据。
从读写功能来区分,存储器分为可读可写的随机存取存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)。构成主存时既需要RAM也需要ROM,但注意半导体RAM芯片在断电后原来存放的信息将会丢失,而ROM芯片中的信息可在断电后长期保存。
个人计算机的主存由半导体存储芯片ROM和RAM构成。ROM部分主要是固化的ROM-BIOS。BIOS(Basic Input/Output System,基本输入/输出系统)是PC软件系统最底层的程序。它由诸多子程序组成,主要用来驱动和管理诸如键盘、显示器、打印机、磁盘、时钟、串行通信接口等基本的输入/输出设备。操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
ROM中还包含机器复位后初始化系统的程序,它将操作系统引导到RAM执行。在16位PC系列机时代,RAM容量是64KB或1MB。32位PC的RAM容量从最初的4MB逐渐发展到2010年的2GB或4GB。由于大量应用程序都需要RAM主存空间,因此PC的主存主要由RAM构成,俗称内存条。
外部设备是指计算机上配备的输入设备和输出设备,也称I/O设备或外围设备(简称外设,Peripheral),其作用是实现用户与计算机之间的交互。
个人计算机上配置的标准输入设备是键盘,标准输出设备是显示器,二者合称为控制台(Console)。个人计算机还可选择鼠标、打印机等I/O设备。作为外部存储器驱动装置的磁盘驱动器,既是输出设备又是输入设备。
由于各种外设的工作速度、驱动方法差别很大,无法与处理器直接匹配,因此不可能将它们直接连接到主机上。这就需要有一个I/O接口来充当外设和主机间的桥梁,通过该接口电路来完成信号变换、数据缓冲、联络控制等工作。在个人计算机中,较复杂的I/O接口电路常被制成独立的电路板,也常称为接口卡(Card),使用时将其插在主板上。
总线(Bus)是用于多个部件相互连接、传递信息的公共通道,物理上就是一组共用导线。例如,处理器芯片的对外引脚(Pin)常称为处理器总线。这里的系统总线(System Bus)是指计算机系统中主要的总线,例如,处理器与存储器和I/O设备进行信息交换的公共通道。
16位PC采用16位工业标准体系结构(Industry Standard Architecture,ISA)系统总线连接各个功能部件。32位PC使用外设部件互连(Peripheral Component Interconnect,PCI)总线连接I/O接口卡。除了作为主板上处理器、主存和I/O接口的公共通道的系统总线外,主板上还设置有许多系统总线插槽,主要用于插接I/O接口电路以扩充系统连接的外设,故被称为I/O通道。
对汇编语言程序员来说,处理器、存储器和外部设备依次被抽象为寄存器、存储器地址和输入输出地址,因为编程过程中只能通过寄存器和地址实现处理器的控制、存储器和外设的数据存取和处理等操作。下面具体学习IA-32处理器的寄存器和存储器组织,而输入/输出地址将在8.3节中介绍。