1、计算机系统结构计算机系统结构是计算机的机器语言程序员或编译程序编写者所看到的一个计算机系统的属性,即计算机的概念性质结构和功能特性,主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念。计算机系统结构也被称作计算机体系结构,它是一个系统在其所处环境中最高层次的概念,确定了一台计算机硬件和软件之间的衔接,是计算机系统设计的观念与架构,描述计算机在实做的设计原则。计算机系统性能增长的根本因素有两个:一是微电子技术,另一个是计算机体系结构技术。人们先后采用了先行控制技术、流水线技术、增加功能部件甚至多机技术、存储寻址和管理能力的扩充、功能分布的
2、强化、各种互联网络的拓扑结构以及支持多道、多任务的软件技术等一系列并行处理技术,提高计算机处理速度,增强系统性能。(1)微处理器的发展20 世纪80 年代中期,RISC 精简指令集计算机,用20%指令的组合实现了CISC 计算机指令系统不常用的80%指令的功能。在提高性能方面,RISC 采用了超级流水线、超级标量、超长指令字并行处理结构;多级指令Cache;编译优化等技术,充分利用RISC 的内部资源,发挥其内部操作的并行性,从而提高流水线的执行效率。20 世纪80 年代后期,RISC 处理机的性能指标几乎以每年翻一番的速度发展,它对于提高计算机系统的性能和应用水平起着巨大的作用。(2)多处理
3、机的总线多处理机系统中有两种主要的连接方式:一种是共享存贮器的的多处理机系统,另一种是消息传递的分布式多处理机系统。由于专用信号处理系统一般要求结构紧凑,在满足实时性要求的前提下,对系统资源的利用率要求放在比较次要的位置上,故其操作系统简单实用,不具备消息传递的多处理机系统中的复杂的消息寻径能力。因此,共享总线结构和分布式结构相结合是一种发展趋势。大多数多处理机系统的互连结构可归结为共享总线系统结构,共享总线系统结构为传统多处理系统的互连形式,由于没有通信口,处理机之间交换数据必须通过共享存贮器,其处理效率随着处理机数目增加而下降。(3)通信的发展由于通信通常在芯片的外部实现,其速度远低于芯片
4、内部的计算速度,因而通信往往成为并行多处理机系统发展的瓶颈。通信网络中,总线结构最简单,节点机数目较大时,总线上的通信趋于饱和,成为并行机发展的瓶颈。消息传递是一种有效的通信方法。第一台多计算机系统采用的是存储转发寻径方式。在存储转发网络中,包是信息流的基本单位,每个节点有一个包缓冲区,包从源节点经过一系列中间节点到达目的节点。然而,当出现寻径阻塞时,虚拟直通方式只有将整个消息全部存储在寻径节点中,直到寻径通道不阻塞时才能将消息发出,这就需要每个寻径节点都有足够的缓冲区来存储可能出现的最大的信息包,虚拟直通方式在最坏的情况下与存储转发方式的通信时延是一样的。(4)存储技术的发展与古典的冯诺依曼
5、计算机以运算器为中心不同,现代计算机系统以存储器为中心。存储技术的发展在很大程度上影响着多处理机系统结构的发展。Cache、主存、磁盘这三个存储器可以分别构成“Cache主存”和“主存磁盘”两个存储系统,也可以构成一个“Cache主存磁盘”存储系统。全Cache 存储系统是一种新型系统,就是不用主存,只用Cache 和辅存两种存储器构成“Cache辅存”存储系统。这种系统的等效访问周期与Cache 很接近,等效存储容量就是虚拟地址空间的容量。(5)大规模并行处理机系统MPP和群机并行系统MPP 是一种由成百上千乃至上万个微处理器所组成的、基于分布式存储的大规模并行处理系统。其体系结构发展特点是
6、:节点机型选用通用高性能RISC 微处理器芯片,它具有VLSI 硅片、坤化镓技术、高密度组装和光技术。一般均在节点上设计一个功能较强的通信处理机构,尽量减轻处理器的通信开销,有的甚至在节点上增设一个处理器作为通信处理机。计算机指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集体系与微架构不同。使用不同微架构的电脑可以共享一种指令集。精简指令集计算机通过只执行在程序中经常使用的指令来简化处理器的结构,而特殊操作则以子程序的方式实现,它们的特殊使用通过处理器额外的执行时间来弥补。精简的指令集可以提
7、供比较高的速度,使处理器的尺寸缩小,以及较少的电力损耗。 复杂指令集计算机包含许多应用程序中很少使用的特定指令,它包含:将许多暂存器存成堆栈的形式。移动内存内大笔的资料。复杂或是浮点数运算执行test-and-set指令。执行数字存在内存而非暂存器的运算。相比之下,比较复杂的指令集较容易使工作更完善,内存及快取的效率较高,以及较为简单的程式码。理论上的重要类型还包括最小指令集计算机与单指令集计算机,但都未用作商业处理器。另外一种延伸类型是超长指令字,处理器接受许多经过编码的指令并通过检索提取出一个指令字并执行。在处理结构上,一个特定指令指明了以下几个部分:用于算术运算,寻址或者控制功能的特定寄
8、存器;特定存储空间的地址或偏移量;用于解译操作码的特定寻址模式;复杂的操作可以借由将简单的指令合并而达成,可以连续的执行,也可以藉控制流来执行指令。有效的指令操作须包含:数据处理与存储操作;将暂存器的值(在中央处理器作为高速缓存的存储空间)设为固定值;将数据从存储空间中传送至寄存器,;用于将数据取出并执行计算,或者将计算结果予以保存;从硬件设备读取或写入数据。在设计处理器内的微架构时,工程师使用藉电路连接的区块来架构,区块用来表示加法器,乘法器,计数器,暂存器,算术逻辑单元等等,暂存器转移语言通常被用来描述被解码的指令,指令是借由微架构来执行指令。 有两种基本的方法来建构控制单元,藉控制单元,
9、以微架构作为通路来执行指令: 计算机的存储体系随着计算机和微电子技术的发展,存储器无论是其器件还是体系结构都发生了很大的变化。存储器是计算机的主要部件之一,其容量,速度,价格是存储器设计时所要考虑的三个要素现在有的速度快,但容量小;有的容量大,但速度慢。一般而言,速度快的存储器容量小,位价格高。存储器一般分为内存,MPU,外存设备。寄存器存在于CPU中,直接服务于运算器和控制器,是CPU工作的直接对象,是工作最繁忙的存储器。寄存器的数据存储也是以字节为单位,但根据CPU的字长及工作需要,也可以操作某个位或多个字节。寄存器和运算器,控制器等集成在一起,通过CPU内部总线连接在一起,它们同步工作,
10、寄存器是工作速度最快的存储器。内存和CPU之间通过系统总线直接连接在一起,由CPU直接控制内存的读写操作。内存的基本存储方式是存储单元一个字节Byte长度,8个二进制位Bit。一个计算机系统的所有内存构成一个完整的连续的存储空间,物理地址从0开始连续编址。CPU在访问内存空间中的存储单元时可以随机访问,只需指定其物理地址即可。内存的分类RAMRandom Access Memory随机访问存储器计算机的主要场所。主要特点:可读写,临时性,易失性,容量大,低电压,速度快,低功耗。主要类型:SRAM和DRAM。SRAM:速度快,容量限制,构成复杂,功耗大,成本高用作Cache。DRAM:速度慢,容
11、量大,构成复杂,功耗大,成本低用作主存。(存器杂的指令集较容易使工作更完善,内存及快取的效率较高,种衍伸ROMRead Only Memory只读存储器计算机不可缺少的辅助内存。只读,永久性,非易失性,容量小,速度慢,功耗大,使用不便。主要类型:掩模式ROM,PROM,EPROM,E2PROM,Flash ROM数据的擦除和写入方式不同。外存和外设:外存通过外存接口连接到系统总线,在CPU的控制下完成数据的读写操作。不同的外存工作原理不同,具体的数据读写过程和方式也不相同,但外存属于块存储器,一般采用特定方式通过总线与内存交换数据。各种外设也可以看作是特定的外存,各种外设也属于I/O设备。内存
12、是动态存储器,不能永久大量数据,必须通过外存实现更大容量数据的永久性保存。Cache存储器:多级Cache技术L1Cache,L2Cache,L3Cache。衡量Cache工作效率的主要指标-命中率-控制策略,数据查找模式等。为了提高Cache的效率,当前在L1Cache中普遍实现了数据和分开缓存的技术,L2和L3大多还是数据和指令混合缓存。大幅度提高Cache的容量也能明显改善系统效率。有些外设设备也采用了Cache技术,用来提高和内存之间交换数据的效率。一种理想的流水线的概念:所有对象都通过相同的流水段;两个流水段之间不会共享任何资源;通过所有流水段的传播延时都相等;调度一个对象近入流水线
13、不受对其他流水段中对象的影响。流水技术的历史:一些非常早期的机器支具有有限的流水线执行能力;IBM Stretch是第一台引入大规模流水线、链接技术、转移预测技术的超级计算机;没能达到最初的设计要求:性能速度提高100倍,电路速度提高10倍;流水线增加到可以同时执行11条微指令微码引擎高度流水。线性流水线和非线性流水线线性流水线是将流水线的各段逐个串接起来。输入数据从流水线的一端进入,从另一端输出。数据在流水线中的各个流水段流过时,每一个流水段都流过一次,而且仅仅流过一次。非线性流水线在流水线的各个流水段之间除了有串行的连接之外,还可以有前馈和反馈连接。单功能与多功能流水线一条流水线只能完成一
14、种固定的功能,这种流水线称为单功能流水线。当要实现多种不同功能时,可以采用多条单功能流水线。多功能流水线是指流水线的各段可以进行不同的连接。在不同时间内,或在同一时间内,通过不同的连接方式实现不同的功能。在处理机中采用多功能流水线的优点是流水线中各个功能部件的利用率比较高。由于在实际的标量运算程序中,各种运算操作一般是混合在一起的,这一点与向量运算操作有很大的不同,因此,在标量计算机的指令执行部件中采用多功能流水线是一种比较合理的选择。与采用多功能流水线不同的另一种方案是设置多条专门的单功能流水线,在许多向量流水线处理机中就是这样做的。静态流水线与动态流水线所谓静态流水线是指在同一段时间内,多
15、功能流水线中的各个流水段只能按照一种固定的方式连接,实现一种固定的功能。只有当按照这种连接方式工作的所有任务都流出流水线之后,多功能流水线才能重新进行连接,以实现其它功能。动态流水线是指在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。当然,同时实现多种连接发生是有条件的,即流水线中的各个功能部件之间不能发生冲突。在静态流水线中,只有程序中连续出现同一种运算时,流水线的效率才能得到充分的发挥。如果输入到流水线中的是一串不同运算相互间隔的操作,则这条静态流水线的效率就与顺序执行方式完全一样。而动态流水线则不同,它允许两种运算在同一条流水线中同时执行。因此,在一般情况下
16、,动态流水线的效率和功能部件的利用率要比静态流水线高,但是,动态流水线的控制比静态流水线要复杂得多。目前,在大多数处理机中均采用静态流水线。随着计算技术的发展,计算机系统结构也在不断的发展变化。20世纪60年代初期,随着晶体管和磁芯存储器的出现,处理单元和存储器实现小型化,并行计算机开始出现。到了20世纪60年代末期,单一处理器中可以集成多个功能单元,产生了流水线技术。该技术与单纯提高CPU时钟频率相比,大大提高了并行计算机系统的性能。首先是存储系统的概念,提出了虚拟存储和缓存的思想,大大提高了计算机的整体性能。其次是半导体存储器开始代替磁芯存储器,大大缩小了存储器的体积并提高了访存速度。集成
17、电路技术也被广泛而迅速地应用到计算机技术中。20世纪80年代开始,微处理器技术高速发展。此时,微处理器随着机器的字长从4位、8位、16位一直增加到32位、64位,其性能也随之显著提高。20世纪80年代中期,基于消息传递机制的并行计算机开始出现,加州理工学院将64个i8086/i8087处理器通过超立方体互连结构连接起来。20世纪80年代末到20世纪90年代初,共享存储器方式的大规模并行计算机又获得了新的发展。IBM将大量早期的RISC微处理器通过蝶形互联网络连接起来。从20世纪90年代末开始,以前发展的主要几种体系逐步走向融合,同时随着新技术的出现又为新的架构带来了新的革命。随着人们对计算机C
18、PU速度的不断追求和微电子技术的发展及限制,一种新的处理器结构开始出现,它就是Cell和多核架构技术的实现。Cell架构是1个单芯片多核处理单元,处理单元之间共享存储器资源。与多核处理器不同,Cell主要采用协处理器方式,然后依靠多个处理器并行技术来实现运算速度的提高。尽管存在应用程序难以充分利用的弊病,但是其综合效率以及功耗控制都非常理想,开创了完全可扩展的架构模式。在这个资源体系中,每个资源节点可能是微不足道的,但是每个节点的运算都可能被整个资源库无穷放大,从而构成一个完整的Cell网络,为消费类电子的信息网络化带来真正的革命。多核处理器的出现则是一场新的计算方式的革命。2006 年,处理
19、器开始从单核转向多核处理器发展,多核处理器已不再局限于高端服务器,开始向 PC机普及,多核处理器使 PC 机变成并行式计算机。在多核处理器逐渐成为市场主导后,怎样利用多核的优势来优化并行程序设计成为一个需要研究和解决的问题。多核技术在高性能计算中也已获得了广泛应用。可重构计算就是通过实现硬件的可编程技术来满足不同计算任务的需求,从而达到最佳性能,且要求这种硬件结构的变化能实时地适应计算任务要求的变化。这种体系结构可变的特点,可以满足实际应用中的多元化需求。实现可重构计算的底层技术有FPGA和CPLD编程技术。在处理器芯片体系结构设计中采用可重构计算技术的基本思想是通过动态配置片上大量的处理单元
20、、存储单元和互连单元,来支持各种不同类型并行性的计算模型,从而能在一个很宽的应用范围内达到高性能,提高片上硬件资源的利用率。基于可重构计算技术实现的多型微处理芯片体系结构能够很好地利用半导体技术发展提供的能力,在解决应用的多样性问题的同时,还可解决片上资源利用率、设计复杂性、系统可靠性以及降低成本和功耗等多方面的问题。可重构计算技术在处理器芯片设计中的应用改变了传统的指令集体系结构、微体系结构设计和实现技术。可重构计算技术使计算机硬件的设计不再复杂,在可编程的介质中提供强大的计算能力和密度,使得在单片系统上以低硬件复杂度开发出各种类型的应用, 同时能够针对应用中固有的并行性特征动态配置多个微体
21、系结构模型,从而大幅度提高计算系统性能、降低功耗和设计的复杂性。在设计中通常采用“自顶向下”的方法,即把系统分为若干模块。原则是使得每个模块有较独立的功能,模块之间的耦合尽可能小。划分之后,再分别实现每个模块,最后把模块像搭积木似地组装起来。其中某些模块可以做成现成的,可供设计时使用,即IP核心,它可以重复使用,从而提高了设计效率。再配合成熟的EDA工具作为设计流程的工具链,这样设计就显得相对容易。自从计算机发明以来,冯诺依曼体系结构一直占据计算机体系结构的统治地位,科学家和工程师们在此基础上不断研究硬件和软件,使CPU和存储器技术得到了飞速的发展,也为信息化、网络化奠定了基础。随着人们对信息
22、化的要求越来越高,冯诺依曼体系结构已经无法满足人们的技术需求和发展要求,对计算机的要求不再仅仅是高速计算,同时更应具备信息处理和智能升级能力。可重构技术与多核技术的出现为此提供了基础。预测未来的计算机系统结构将是:(1)CPU将不再由1个核组成,而是由多核组成的Cell;(2)存储器将不是中心,取而代之的将是信息通路;(3)计算机不再是五大部件,而是由多个信息处理节点构成,每个节点的智能化和集成化越来越高;(4)程序设计将包括软件和硬件设计,生产商们提供的产品将是一个个封装好的中间件,作为应用者将无需关心程序设计,只需要关注专业设计,对于应用者将会更加友好。参考文献1 郑纬民.计算机系统结构M.2 版.北京:清华大学出版社,1998.2 新一代微处理器体系结构J.中国计算机用户,1998.3 刘超.计算机系统结构.中国水利水电出版社,2005.4 吴艳霞.计算机体系结构.北京:清华大学出版社,2010.