1.1.3 计算机组成与实现
计算机组成的任务是在计算机系统结构确定分配给硬件子系统的功能及其概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令级的各种功能和特性。这种相互联系包括各功能部件的配置、相互连接和相互作用。各功能部件的性能参数相互匹配,是计算机组成合理的重要标志,因而相应地就有许多计算机组织方法。例如,为了使存储器的容量大、速度快,人们研究出层次存储系统和虚拟存储技术。在层次存储系统中,又有高速缓存、多模块交错工作、多寄存器组和堆栈等技术。为了使输入�彩涑錾璞赣氪�理机间的信息流量达到平衡,人们研究出通道、外围处理机等方式。为了提高处理机速度,人们研究出先行控制、流水线、多执行部件等方式。在各功能部件的内部结构研究方面,产生了许多组合逻辑、时序逻辑的高效设计方法和结构。例如,在运算器方面,出现了多种自动调度算法和结构等。
由此可见,计算机组成是计算机系统结构的逻辑实现,包括机器内部的数据流和控制流的组成以及逻辑设计等。计算机组成的设计是按所希望达到的性能价格比,最佳、最合理地把各种设备和部件组成计算机,以实现所定的计算机系统结构。一般计算机组成设计包括数据通路宽度的确定,各种操作对功能部件的共享程度的确定,专用功能部件的确定,功能部件的并行性确定,缓冲器和排队的确定,控制机构的设计,可靠性技术的确定等。对传统机器程序员来说,计算机组成的设计内容一般是透明。
计算机实现是指计算机组成的物理实现。它包括处理机、主存等部件的物理结构,器件的集成度和速度,信号传输,器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术以及有关的制造技术和工艺等。
计算机系统结构、计算机组成和计算机实现是三个不同的概念。系统结构是计算机系统的软、硬件的界面;计算机组成是计算机系统结构的逻辑实现;计算机实现是计算机组成的物理实现。它们各自包含不同的内容,但又有紧密的关系。
我们还应看到系统结构、组成和实现所包含的具体内容是随不同机器而变化的。有些计算机系统是作为系统结构的内容,其它计算机系统可能是作为组成和实现的内容。开始是作为组成和实现提出来的设计思想,到后来就可能被引入系统结构中。例如高速缓冲存储器一般是作为组成提出来的,其中存放的信息全部由硬件自动管理,对程序员来说是透明的。然而,有的机器为了提高其使用效率,设置了高速缓冲存储器的管理指令,使程序员能参与高速缓冲存储器的管理。这样,高速缓冲存储器又成为系统结构的一部分,对程序员来说是不透明的。
Amdahl等人的计算机系统结构定义的主要内容是指令系统及其执行模型。根据这个定义,一个系列机中不同档次的机器有相同的系统结构。Amdahl等人定义系统结构时认为只要指令系统兼容就能保证程序正确运行。由于程序的执行要依赖于程序库、操作系统和其它Amdahl等人的系统结构定义中没有涉及的因素,这要求操作系统接口等其它层次的标准化。同时,由于VLSI的迅速发展及其成本急剧下降,有些系列机推出有新指令的机器,例如24位地址的IBM360和370系统发展为31位地址的370xA系统,16位地址的PDP11发展为32位地址的VAX系列。随着新器件的出现,当今计算机设计者面临的问题与十年前面临的问题大不相同,所以我们应当把计算机系统结构定义得更宽一些,除了Amdahl等人定义的内容外,还应包括功能模块的设计。也就是说,计算机系统结构、计算机组成、计算机实现之间的界限越来越模糊了。