计算机系统结构的发展历程课程:高级计算机系统结构姓名:学号:班级:2015年12月一、计算机系统结构随着当今社会和科技的飞速发展,自四十年代计算机问世以来,计算机科学更是发展迅速,应用领域不断扩展计算机的普及和广泛应用,现代社会正朝着高度信息化,自动化方向发展。计算机逐渐成为社会必不可少的支柱力量。计算机系统是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件系统和软件系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行工作。而计算机系统结构是计算机的的机器语言程序员或编译程序编写者所看到的外特性。所谓外特性,就是计算机的概念性结构和功能特性,主要研究计算机系统的基本工作原理,以及在硬件、软件界面划分的权衡策略,建立完整的、系统的计算机软硬件整体概念。其也称为计算机体系结构,它是由计算机结构外特性,内特性,微外特性组成的。经典的计算机系统结构的定义是指计算机系统多级层次结构中机器语言机器级的结构,它是软件和硬件/固件的主要交界面,是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能。以最常见的冯诺依曼计算机为例,计算机系统结构包含了以下几个方面:1.指令集架构(Instructionsetarchitecture;简称ISA):被视为一种机器语言,包含了许多相关的指令集(存储器定址、处理器控制,寄存器控制等等……)。2.微体系结构/微架构(Microarchitecture)或称计算机组织(Computerorganization):是更详细的叙述系统内部各元素如何进行合作与沟通。3.数据表示,即硬件能直接识别和处理的数据类型和数据格式。4.寻址方式,包括最小寻址单位和地址运算等。5.寄存器定义,包括操作数寄存器、变址寄存器、控制寄存器等的定义、数量和使用方式。6.指令系统,包括机器指令的操作类型和格式、指令间的排序和控制机制等。7.异常机制,包括中断、NMI和内部异常等。8.机器工作状态的定义和切换,如管态和目态等。9.输入输出结构,包括处理机、存储器与输入输出设备之间的连接方式、数据传送方式、数据流量、以及数据交换过程的控制等。以指令流和数据流作为划分依据,计算机系统结构可以分为下几个类别:1.单指令流单数据流(SISD)SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。2.单指令流多数据流(SIMD)SIMD以并行处理机为代表,结构如图,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同的数据。3.多指令流单数据流(MISD)MISD的结构,它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。4.多指令流多数据流(MIMD)。MIMD的结构,它是指能实现作业、任务、指令等各级全面并行的多机系统,多处理机就属于MIMD。二、计算机系统结构的发展历程1.计算机系统结构的发展计算机系统结构的发展历经了四个阶段。60年代中期以前,是计算机系统发展的早期时代。在这个时期通用硬件已经相当普遍,软件却是为每个具体应用而专门编写的,大多数人认为软件开发是无需预先计划的事情。这时的软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个或同一组人。由于规模小,程序编写起来相当容易,也没有什么系统化的方法,对软件开发工作更没有进行任何管理。这种个体化的软件环境,使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程,除了程序清单之外,根本没有其他文档资料保存下来。从60年代中期到70年代中期,是计算机系统发展的第二代。在这10年中计算机技术有了很大进步。多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次。实时系统能够从多个信息源收集、分析和转换数据,从而使得进程控制能以毫秒而不是分钟来进行。在线存储技术的进步导致了第一代数据库管理系统的出现。计算机系统发展的第二代的一个重要特征是出现了“软件作坊”,广泛使用产品软件。但是,“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法。随着计算机应用的日益普及,软件数量急剧膨胀。在程序运行时发现的错误必须设法改正;用户有了新的需求时必须相应地修改程序;硬件或操作系统更新时,通常需要修改程序以适应新的环境。上述种种软件维护工作,以令人吃惊的比例耗费资源。更严重的是,许多程序的个体化特性使得它们最终成为不可维护的。“软件危机”就这样开始出现了。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机课题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了。计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。在这10年中计算机技术又有了很大进步。分布式系统极大地增加亍计算机系统的复杂性,局域网、广域网、宽带数字通信以及对“即时”数据访问需求的增加,都对软件开发者提出了更高的要求。但是,在这个时期软件仍然主要在工业界和学术界应用,个人应用还很少。这个时期的主要特点是出现了微处理器,而且微处理器获得了广泛应用。以微处理器为核心的“智能”产品随处可见,当然,最重要的智能产品是个人计算机。在不到10年的时间里,个人计算机已经成为大众化的商品。在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。由复杂操作系统控制的强大的桌面机及局域网和广域网,与先进的应用软件相配合,已经成为当前的主流。计算机体系结构已迅速地从集中的主机环境转变成分布的客户机/服务器(或浏览器/服务器)环境。世界范围的信息网为人们进行广泛交流和资源的充分共享提供了条件。软件产业在世界经济中已经占有举足轻重的地位。随着时代的前进,新的技术也不断地涌现出来。面向对象技术已经在许多领域迅速地取代了传统的软件开发方法。2.计算机系统结构的现状2.1CISC体系和RISC体系现代计算机的两种主要体系结构是CISC体系和RISC体系。其中RISC是近20年的研究主流。而随着计算机应用的普及,RISC结构也出现了许多与以多媒体处理和个人移动计算机为主要内容的应用趋势的不协调。不管是CISC体系结构还是RISC体系结构,人们在计算机体系结构的设计上均追求两方面的目标:1)设计的计算机体系在面向应用(软件)描述方面使得自己的指令语义层次比较高,这点CISC较为明显,因为它有许多指令可以直接支持高级语言的语义。而RISC则比较隐蔽,它是靠精简指令的优化编译(即通过若干条精简指令有机组合)来支持高级语言的语义。2)设计的计算机体系在面向应用处理方面,使得自己的指令处理速度明显提高,进而加速应用处理的速度。这点RISC表现的比较明显,因为它的指令硬件译码直接实现和采用流水线技术等大大提高了它的处理速度,而在CISC中,当初增加硬件的资源支持复杂的高层次的语义的指令,本身就意味着提高应用的处理速度。上述两个目标,从广义角度上来讲,人们总是希望设计机器的指令,其语义层次高,使得它更接近于人类行为;当然人们也是希望自己描述的应用处理速度越快越好。CISC体系的指令集由微程序来实现,也就是说它的每一个操作均由若干个微操作的程序组合来实现,所以CISC可以使用微指令(微操作)编程(微程序)的方式来实现多种和功能较复杂(语义层次较高)的指令。在RISC体系的指令集中,它的每一条指令直接由硬布线来实现。这就是说它的每条指令执行原则上有自己一套逻辑组合的时序电路直接实现,所以单条指令实现所占用的硬件资源相应要多。因为RISC体系没有能采用增加单条指令的功能或提高指令语义,也没有去增多指令的条数,而是集中于它的精简指令集上。RISC将把用户使用频率高的,数量少的指令通过硬件实现。其基本特征是指令单周期执行,一个周期内比CISC计算机有更高的指令吞吐率,且指令系统非常简单。)’(&的思想认为,只要给一个基本的指令,就能产生一个丰富的软件系统。如果说CISC是计算机技术发展的天然产物,那么RISC应该是计算机技术发展的必然产物。2.2两种体系结构的不同1)设计思想不同计算机的一个最重要的性能是速度,一般用执行程序的时间来测量其速度。一个程序的执行时间等于其中的指令数乘以每条指令的执行时间,每条指令的执行时间等于每条指令执行的周期数和每周期的时间(即主频的倒数)。因此,要提高机器速度可从以下方面来提高:(1)提高主频,则一个周期内的门的级数要少,器件的延时要小,现代工艺的迅速发展使器件的延时越来越小,主频也越来越高。(2)提高每条指令执行的周期数小。(3)可通过提高指令的语义级别来达到提高机器速度。由此可见,CISC体系主要通过提高指令语义级别来减少实现程序的指令条数。语义级别高的指令通过采用内部微码结构来执行。而RISC体系的指令简单,指令集较小,指令语义低,几乎每条指令都是单周期执行。控制简单,基本是一些简单的逻辑电路,因此采用逻辑硬布线。这样可以减少了单条指令周期,提高系统主频来提高指令执行速度。2)实现方式不同CISC主要通过内部微码结构来实现,由于指令语义较高,执行周期长,采用实现简单的指令数据合一的存储结构。相反,RISC主要采用逻辑硬布线,指令执行周期短,存取指令频繁,因此采用指令数据相分离的存储结构。3)对编译器的要求不同有资料表明,在相同时钟频率条件下,如果没有编译器的支持RISC体系和CISC体系计算机的效率没有本质的不同。而且RISC更依赖于编译器的优化。2.3RISC体系和CISC体系走向融合由于RISC体系和CISC体系的优势具有互补性,CISC体系与RISC体系正朝着互相取长补短相互靠拢的方向发展。正是由于CISC技术与RISC技术的相互融合,目前,导致它们之间的界限日益消失。具体表现在现代RISC已经不再属于原始的RISC构架,主要变化如下:1)超标量执行极大地减少CPI,坚持了RISC的精神。它是现代CPU都拥有的技术,包括CISC在内。超标量使用特殊的算法来动态地按时序执行并行指令,增加了处理器的复杂性。2)分支预测分支预测约在1981年提出,在芯片内部加入了复杂的硬件,目的是增加分支执行的效率。3)附加指令附加指令不符合RISC原则,但实际上,G3的指令比奔腾2多,MAC用户仍然坚持这是纯RISC芯片,因为他们认为RISC是优秀的代名词,而与之对比的奔腾2是纯CISC芯片,代表着较差的性能。当前的所谓RISC构架,如G3、MIPS,SPARC,他们的指令没有特殊用途,使用率较高,周期时间很短,但指令数目增加了。4)片内浮点和向量处理单元增加SIMD和浮点执行单元后,指令数和执行周期没有减少太多。5)乱序执行乱序执行是现代处理器常用策略,但它与RISC的根本法则直接相抵触,把复杂性又重新移回了硬件方面。通过重排序指令和执行来优化代码,增加了管道的深度和执行周期,占用了大量的硬件资源。乱序执行不仅使硬件更复杂,还简化了编译器的工作,编译器再也不用为代码排序和检查操心。因此,可以认为RISC不是一个特殊技术,而是计算机设计的策略方向;RISC的发明与CISC的思想相反;RISC和CISC两个术语不适合当今的处理器时代,因为两极分化已经基本结束,每个框架均有独特的优点。3.计算机系统结构的未来计算机诞生那天起,冯.诺依曼体系结构占据着主导地位,几十年来计算机体系结构理论并没有新理论出现。随着计算机应用范围的迅速扩大,使用计算机解决的问题规模也越来越大,因此对计算机运算速度的要求也越来越高。而改进计算机的体系结构是提高计算机速度的重要途径,从而促进了计算机体系结构的发展,出现了诸如数据流结构、并行逻辑结构、归约结构等新的非冯诺依曼体系结构。冯.诺依