再上一篇:流水线的相关问题
上一篇:计算机系统的分层结构
主页
下一篇:计算机硬件发展过程优质网址
再下一篇:什么是RAID4
文章列表

计算机体系结构的概念

在第1章我们已经讲到,现代计算机系统是由软件和硬件共同实现的十分复杂的系统,而这一复杂的系统可以看成是由若干个层次组成,每个层次完成一定的功能,上下层次之间是一种调用和服务的关系。当设计一种新型计算机系统时,首先面临的问题是什么呢?我们会列出很多问题,如机器指令系统的设计、功能组织、逻辑设计、实现技术等。实现技术又包括集成电路设计、制造和封装技术、系统制造和组装技术、供电、冷却技术等。但最重要的是确定好机器层次的划分和各层次实现的功能,确定好计算机的体系结构。

计算机体系结构(Computer Architecture)中的体系结构Architecture一词来源于建筑方面,译为“建筑学、建筑术、构造、结构”等,它的含义是当建筑师在设计一栋建筑时,首先要对该栋建筑的总体结构进行设计,其外观是怎样的,采用什么样的框架结构,具有什么样的功能等。这一词被引入计算机领域中,最初的译法各不相同,以后趋向于译为“体系结构”或“系统结构”。有关计算机体系结构经典的定义是1964年C.M.Amdahl在介绍IBM360系统时提出的,其具体描述为“计算机体系结构是程序员所看到的计算机的属性,即概念性结构和功能特性”。

按照计算机系统的多级层次结构,不同级的程序员所看到的计算机具有不同的属性。例如,机器(汇编)语言级程序员所看到计算机的主要属性是该机器指令集的功能特性;而高级语言级程序员所看到计算机的主要属性是该机所配置的高级语言所具有的功能特性。显然,不同的计算机系统,从机器语言程序员的角度来看,是具有不同的属性,而从高级语言程序员看,它们就几乎没有什么差别,都具有相同的属性。或者说,这些传统机器级所存在的差别是高级语言程序员所“看不见”的。在计算机技术中,对这种本来是存在的事务或属性,但从某种角度看又好像不存在的概念称为透明性(transparency)。通常,在一个计算机系统中,低层机器的属性往往对高层机器的程序员是透明的,如传统机器级的概念性结构和功能特性,对高级语言程序员来说是透明的。由此看出,在层次结构的各个级上都有各自的体系结构。Amdahl提出的计算机体系结构是指机器语言程序员所看到的计算机结构和属性。

以上这些属性是机器语言程序设计者为使其所设计的程序能在机器上正确运行所必须了解和遵循的计算机属性,它包括概念性结构和功能特性两个方面。一般来讲,对于现代通用计算机系统,这些属性主要是指:
·机器的数据表示,即机器硬件能直接识别和处理的数据类型。
·寄存器组,包括各种寄存器的定义、数量和使用方式等。
·指令系统,包括机器提供的各种指令集及寻址方式等。
·数据通路,机器不同部件进行数据传输的通路。
·中断系统,包括中断的类型和中断的处理方法等。
·机器状态,如管态、目态及各种状态之间的切换等。
·存储系统,主存容量,程序员可用的最大存储空间和存储保护等。
·输入输出,输入输出的连接方式、输入输出的传输控制方式等。

这些属性是计算机系统中由硬件或固件完成的功能,机器语言程序员在了解了这些属性后才能编制出正确的程序在机器上运行。因此,经典计算机体系结构的概念实质上是计算机系统中软、硬件界面的确定,该界面之上的功能由软件实现,而界面之下的功能则由硬件实现。

计算机体系结构与“计算机组织”和“计算机实现”是不同的概念。计算机组织(Computer Organization)所研究的是计算机系统的逻辑实现,而计算机实现(Computer Implementation)所研究的是计算机系统的物理实现。计算机体系结构、计算机组织、计算机实现三者互不相同但又互相影响。相同体系结构的计算机可以因为速度不同而采用不同的组织结构(如系列机);同样,一种组织结构可有多种不同的实现方法。