计算机组织
computer organization
计算机运算器、存储器、控制器、输入设备和输出
设备等主要功能部件的相互连接和相互作用,借以实现
机器指令级的各种功能和特性。从最基本的功能和作用
原理来说,计算机是在控制器的全面控制下,接收经数
字化编码的输入信息(程序和数据),把它存放在存储
器中,根据程序的要求对数据进行快速运算,产生结果
数据输出。因此,可以把运算器、存储器、控制器、输
入设备和输出设备看成是一台计算机的逻辑组成中最基
本的功能部件。现代计算机的物理组成要比这个逻辑组
成复杂得多,实际上每种功能部件可能不止一个,有些
分布于全机,有些相互结合在一起。
计算机系统结构作为从程序设计者角度所看到的计
算机属性,在计算机系统的层次结构中处于机器语言级;
而计算机组织作为计算机系统结构的逻辑实现和物理实
现,其任务就是围绕提高性能价格比的目标,实现计算机
在机器指令级的功能和特性。研究和建立各功能部件间
的相互连接和相互作用,完成各个功能部件内部的逻辑
设计等是逻辑实现的内容;把逻辑设计深化到元件、器
件级,则是物理实现的内容。有时把前者称为计算机组
织,把后者称为计算机实现。但是,随着集成电路规模
的日益增大,这两步实现的内容很难分开,因此将它们
统称为计算机组织。
诺伊曼型计算机 计算机的许多重要特性,如快速
性、通用性、准确性、逻辑性等,均来源于最主要的结
构原理,即存储程序原理。它是了解计算机组织的关键。
根据存储程序原理构造的计算机称为存储程序计算机,
又称诺伊曼型计算机。
存储程序原理 存储程序原理的基本点是指令驱动,
即程序由指令组成,并和数据一起存放在计算机存储器
中。机器一经启动,就能按照程序指定的逻辑顺序把指
令从存储器中读出来逐条执行,自动完成由程序所描述
的处理工作。这是计算机与一切手算工具的根本区别。
早期实现 存储程序概念最早是由匈牙利人J.诺伊
曼于1946年提出来的。他同时提出了一个完整的现代计
算机雏型,其基本组成就是上述五种功能部件。它的存
储器是4096个40位存储字的集合体,利用示波管存储器
来实现。存储单元按线性编址,同等地存放数据和程序。
运算器包含一个算术逻辑单元和一个用来提供操作数和
存放操作结果的累加寄存器(另一个操作数来自存储器)。
控制器实现对20位半字长指令的时序控制。在一条指令
中6位表示操作码,给出64种不同操作;12位表示地址码,
给出存储器每一个存储单元的地址;另有 2位未用。输
入和输出设备包括电传打字机、磁带设备等,输入输出
操作的控制通过运算器完成。
现代特征 现代的计算机组织与诺伊曼当时提出的
计算机组织相比虽已发生了重大变化,但就其结构原理
来说,占有主流地位的仍是以存储程序原理为基础的诺
伊曼型计算机。它的特征可概括为:①存储器是字长固
定的、顺序线性编址的一维组织;②存储器提供可按地
址访问的一级地址空间,每个地址是唯一定义的;③由
指令形式的低级机器语言驱动;④指令的执行是顺序的,
即一般按照指令在存储器中存放的顺序执行,程序分支
由转移指令实现。
基本组成 现代计算机的功能部件包括有中央处理
器、控制器、存储器和输入输出子系统。
中央处理器 中央处理器一般包括运算器和控制器。
根据完成操作的种类和速度的不同要求,运算器可以采
用不同的实现方法。基本算术逻辑操作由硬件实现,复
杂操作则既可由硬件、固件实现,也可由软件实现。在
要求速度很高的场合,则采用流水线运算部件或阵列乘
法器等并行处理组织形式。
中央处理器组织的特点主要反映在寄存单元的选择
上。依照这一特点,可以区分两种不同的组织形式。
① 多通用寄存器计算机组织:早期的计算机采用
单一的累加器作为寄存单元,现代计算机则普遍采用多
通用寄存器。它们既可提供操作数和保存操作结果,也
可提供寻址中需要的基址、变址量、主存地址,或保存
子程序参量,堆栈指针等。必要时,还设置一些专用寄
存器,如暂存寄存器、条件码寄存器等。操作单元主要
是算术逻辑单元,担负基本算术逻辑运算。在有必要由
硬件实现复杂算术运算的巨型和大型计算机中,还设置
有各种浮点运算部件、乘除运算部件等。
② 堆栈计算机组织:堆栈计算机的中央处理器组
织与前一种组织形式有所不同。代替通用寄存器的是主
存堆栈(可能少数栈顶单元用寄存器实现)。采用零地
址指令实现堆栈顶部几个单元内容间的操作,操作结果
仍送回堆栈,代替原来的操作数。中央处理器设置多个
寄存器,用来保存主存中程序区、数据区和堆栈的各种
指针。利用堆栈的后进先出存取原理能使计算机的结构
与高级程序设计语言的结构相适应。
控制器 由于输入输出控制和通信控制等功能已从
中央处理器中分离出来,而且存储器、输入输出装置等
采用异步工作方式,所以早期计算机中统一的控制器逐
渐分散到各功能部件内部,形成运算控制器、指令控制
器、存储控制器、输入输出(通道)控制器、外围设备
控制器等。中央处理器除直接掌握运算控制和指令控制
功能外,还通过中断机构调用操作系统对存储系统和输
入输出子系统等实行统一的控制。此外,操作系统还能
实现复杂的系统管理功能,为用户提供批处理、分时处
理、交互式处理、实时处理等多种操作方式。因此可以
说,操作系统是利用存储程序作为控制手段实现对控制
器的延伸,补充了控制器硬件功能之不足。
存储器 长期以来,存储器的工作速度落后于中央
处理器的工作速度,成为处理机的瓶颈。为了克服这个
障碍,人们提出层次存储系统和虚拟存储器的概念。为
了提高存储器的有效工作速度,在原来的主存储器与中
央处理器之间增加了高速缓冲存储器;为了扩大存储器
容量,增加了以磁盘机为主要设备的辅助存储器作为主
存储器的后援。用户使用时,可以面向统一的虚拟存储
器逻辑地址空间,而数据和指令在各层之间的调动则由
硬件(高速缓存-主存层次)或操作系统(主存-辅存层
次)自动完成。
输入-输出子系统 硬件技术水平的提高,特别是集
成电路、磁盘机和终端设备的发展,使计算机硬件的面
貌发生了根本变化。硬件对软件提供了有力的支持,但
与此同时计算机系统的设备量显著增加。计算机组织成
分有了新的划分方法。辅助存储器和输入-输出装置组
成计算机的外围设备,受输入-输出子系统的单独控制。
它们对系统的价格比重已经由60年代的30%~40%上升
到80%。中央处理器、主存储器和输入-输出接口等,组
成处理机与输入-输出子系统并列。
基本原则 计算机组织的发展过程体现了下列几条
基本原则。
① 信息流量平衡:计算机组织的发展是一个不断
争取高运算速度、大存储容量、强处理功能、低机器价
格的过程。为了发挥所有功能部件的总效能,必须谋求
计算机各部件间的信息流量平衡。因此,各功能部件工
作速度的相互匹配是计算机组织合理性的标志。例如,
层次和并行存储系统的产生和发展是谋求中央处理器和
存储器之间信息流量平衡的结果。
② 层次化:采用层次概念来研究计算机组织可以
达到两个目的。一是把外层的标准化与内层的多样化结
合起来,如用标准的输入-输出通道或接口经过设备控制
器驱动多种特性迥异、类型不一的外围设备;二是实现
虚拟系统,这与计算机系统结构实现各层虚拟机器的原
理类似。例如,虚拟存储器就是在层次组织的基础上发
展起来的,使用户无需介入实际存储系统的细节,以接
近于高速缓冲存储器的存取速度使用比主存容量大得多
的主、辅存储统一的地址空间。
③ 模块化:无论是计算机系统的全局或是局部,都
可以利用模块化概念划分为相对独立的部分,各部分至
少具有一定程度上完整的处理功能和独立的自治控制能
力。各部分之间经过标准的接口或界面相互连接,这样
使它们能随意增减或替换,而不致影响其余部分的正常
工作。在计算机系统的各个层次都存在利用模块化方法
加以实现的可能性。以硬件的层次来说,按功能划分模
块是纵向划分,而设置多个并行的运算部件和存储模块
等是横向划分。在各个部件内部,模块化也是有效利用
大规模集成电路的必要条件。
④ 功能分散化:在模块化的基础上进一步分散控
制功能,从集中式控制走向分布式控制。这样,有利于
多个部件的并行操作,也为不同工作速度的部件之间实
现异步控制创造条件。上述的统一控制器向多个分散控
制器的发展,是已经实现的功能分散方案。许多巨型和
大型计算机也可利用功能分散原理做成高性能的功能分
布多处理机系统。
互连方式 处理任务的高度集中和数据流量的迅速
增长,要求采用多运算部件和多存储模块。它们与数量
众多、品种繁杂的外围设备之间如何互相连接,成为计
算机组织的中心问题之一。早期计算机(图1 以中央处
理器为中心的计算机组织)中那种以中央处理器为中
心,由它包揽一切指令操作和输入输出控制任务的做法,
不但不利于提高中央处理器自身的使用效率,而且也无
法应付数量庞大的外围设备对处理的需求。代之而起的
是以存储器为中心的互连方式(图2 以存储器为中心的
计算机组织。批量的输入输出数据可以越过中央处理
器,经过输入输出通道进出于主存储器,只是在最必要
的时候才用中断方式请求中央处理器进行短暂干预。
在设备数量很多的情况下,全部设备都与存储器分
别单独相连是不现实的,而且也不能适应扩展数量和更
换品种的需要。如果所有外围设备都经过统一的总线和
标准接口与中央处理器和存储器模块相连,计算机系统
组织就要灵活得多。这就是现代计算机组织普遍采用的
总线互连方式(图3 以总线互连的计算机组织)。总
线以简单经济的技术实现灵活可变的计算机系统配置,
能较好地满足不同用户对计算机系统通用性的要求。但
是,它必须按时间分割或优先级竞争的原则工作,使同
一时间内一套总线只能为一对功能模块之间传送信息服
务。总线是互连网络最简单的一种型式,在设备量更多、
速度要求更高的场合,还可选用其他互连型式。
数据流和控制流 计算机对信息的加工过程可以从
概念上表示为数据流和控制流的结合。数据流发生于计
算机各功能模块之间,存储或寄存的信息经过数据路径
流动并接受加工;而控制流则对数据流的存储、传送和
加工过程进行时序控制。数据路径表示计算机数据单元
(包括存储器和寄存器)和操作单元(包括运算、计数、
移位、传送)相互连接的空间关系。控制时序表示正被
处理中的信息经过数据路径作用的时间关系。二者相结
合,信息便能按照相应的时间顺序经过有关的数据单元
和操作单元,完成由确定的算法所描述的信息处理过程。
这就是计算机组织中用来分析和设计计算机功能部件相
互作用的一种普遍方法,为诺伊曼型计算机所采用。
控制流的设计反映在指令控制器中,就是制定各类
指令的时序控制过程,包括取指令、形成操作数地址、取
操作数、执行指令操作、形成结果数地址、保存结果、判
断和响应中断请求等一系列指令步骤。实现这些指令步
骤既可以用硬联逻辑控制方法,也可以用微程序控制方
法。为了获得尽可能高的指令吞吐率,可以采用使连续
的指令相互重叠和按流水线执行的组织方法;也可以设
立指令缓冲站以减少从主存储器重复读取指令的时间,
并采用先行控制的方法以越过前面执行时间较长的指令
而尽可能把具备条件的后续指令提前执行。
展望 随着大规模集成电路和微处理器的迅速发展,
传统的诺伊曼型计算机结构原理正在经受一场挑战。如
果说至今关于功能部件的划分和互连都是针对单处理机
而言的,那么利用廉价硬件构成的各种功能分布或任务
分布多处理机系统则需要采取更为复杂的组织方式,来
实现更好的性能-价格比指标。如果说商售计算机系统
习惯于在传统的硬件内层基础上发展外层软件,那么直
接根据计算结构、软件结构、知识结构等特性来发展崭
新的计算机组织形式,已经成为现实的研究目标。