1964年,阿姆达尔(G.M.Amdahl)在介绍IBM360系统时指出:计算机体系结构是站在程序员的角度所看到的计算机属性,即程序员要能编写出可在机器上正确运行的程序所必须了解的概念性结构和功能特性。
1982年,梅尔斯(G.J.Myers)在《计算机体系结构的进展》中定义了组成计算机系统的若干层次,每一层都提供一定的功能支持它上面的一层,并把不同层之间的界面定义为某种类型的体系结构。明确了传统体系结构就是指硬件与软件之间的界面,即指令集体系结构。
1984年,拜尔(J.L.Bear)定义了计算机体系结构由结构、组织、实现、性能4个基本方面组成。
一个处理器支持的指令和指令的字节级编码称为其指令集体系结构(ISA),不同的处理器族支持不同的指令体系结构,因此,一个程序被编译在一种机器上运行,往往不能在另外一种机器上运行。
注意:Java有体系结构中立的特性,因为Java程序运行在Java虚拟机上,可以在任何安装了JVM的机器上运行。
(一)CISC和RISC
CISC(复杂指令集计算机):
①进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。目前使用的绝大多数计算机都属于CISC类型;
②指令集过分庞杂。
③微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,需要多个CPU周期,从而降低了机器的处理速度。
④指令系统过分庞大,高级语言编译程序选择目标指令的范围很大,难以优化编译。
⑤CISC强调完善的中断机制,导致动作繁多、设计复杂、研制周期长。
⑥CISC给芯片设计带来了困难。
RISC(精简指令集计算机):
①减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。
②重叠寄存器窗口技术。基本思想是在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。
③优化编译技术。RISC使用了大量的寄存器,通过编译技术的优化实现合理地分配寄存器、提高寄存器的使用效率及减少访存次数。
④超流水及超标量技术。进一步体高流水线速度。
⑤硬布线逻辑与微程序相结合在微程序技术中。
优化:
①按静态使用频度来改进代码可减少目标程序所占的存储空间,按动态使用频度来改进目标代码可减少目标程序运行的执行时间。
②面向高级程序语言的优化思路是尽可能缩小高级语言与机器语言之间的语义差距,以利于支持高级语言编译系统,缩短编译程序的长度和编译所需的时间。
③面向操作系统的优化思路是进一步缩小操作系统与体系结构之间的语义差距,以利于减少操作系统运行所需的辅助时间,减少操作系统软件所占用的存储空间。
(二)指令的流水处理
(1)指令控制方式:顺序执行方式、重叠方式和流水方式。
①顺序执行:各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令,而且每条机器指令内部的各个微操作也是顺序串行地执行。控制简单,但执行速度慢,机器各部件利用率低。
②重叠方式:通常采用一次重叠,即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。速度有所提高,控制也不复杂,但会出现冲突、转移和相关等问题。
③流水方式:把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
注意:“一次重叠”是把一条指令解释分解为两个子过程,而“流水”是分解为更多的子过程。
例如:
解析:
本题考查指令执行的流水化概念。 根据题目中给出的数据,每一条指令的执行过程需要9△t。
在串行执行方式下,执行完一条指令后才开始执行下一条指令,10条指令共耗时90△t。
按照流水方式执行,则在第i十2条指令处于执行阶段时就可以分析第i+1条指令,同时取第i条指令。由于指令的执行阶段所需时间最长(为4△t),因此指令开始流水执行后,每4△t将完成一条指令,所需时间为9△t+4△t×9=45△t。
(2)局部性相关与全局相关
局部性相关:
流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这时就出现了相关。它只影响相关的两条或几条指令,而且最多影响流水线的某些推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的,所以称为局部性相关。
全局性相关:
转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释,可能会改动指令缓冲器中预取到的指令内容,从而造成流水线吞吐率和效率下降,比局部性相关的影响要严重得多,所以称为全局性相关。
(3)RISC中的流水技术
①超流水线技术:细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。
②超标量技术:内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。
③超长指令字技术:充分发挥软件的作用,使硬件简化,性能提高。
(4)吞吐率和流水建立时间
吞吐率:是指单位时间内流水线处理机流出的结果数,吞吐率P应为最长子过程的倒数:P = 1/max
建立时间:流水线开始工作直到最大吞吐率经过的时间。
阵列处理机:
将重复设置的多个处理单元按一定方式连成阵列,在单个控制部件控制下,对分配给自己的数据进行处理,并行地完成一条指令所规定的操作。是一种单指令多数据流计算机,通过资源重复实现并行性。
并行处理机:
SIMD和MIMD是典型的并行计算机,SIMD有共享存储器和分布存储器两种形式。
多处理机:
由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。它是多指令多数据流计算机。
集群计算机:
是一种并行或分布式处理系统,由很多连接在一起的独立计算机组成,像一个单集成的计算机资源一样协同工作,主要用来解决大型计算问题。