计算机体系结构
概论
- 1964年,阿姆达尔再介绍IBM360系统时指出,计算机体系结构是站在程序员的角度所看到的计算机属性。
- 1982年,梅尔斯再其所著的《计算机体系结构的进展》中定义了组成计算机系统的若干层次。
- 1984年,拜尔再一篇题为《计算机体系结构》的文章中给出了一个含义更加广泛的定义:体系结构由结构、组织、实现、性能四个基本方面实现。
- 计算机体系结构是指计算机的概念性结构和功能属性
- 计算机组织是指计算机体系结构的逻辑实现,包括数据流和控制流的组成以及逻辑设计。
- 计算机实现是计算机组织的物理实现
计算机体系结构分类:
按处理机的数量分类:单处理系统、并行处理与多处理系统、分布式处理系统
按并行程度分类:flynn分类法、冯泽云分类法、Handler分类法和Kuck分类法
指令系统
一台计算机的所有指令的集合构成该机的指令系统,又称作指令集
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如:操作码字段+地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
机器周期:为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为机器周期。
指令周期:执行一条指令所需的使劲按,一般由若干个及其周期组成,从取指令、分析指令到执行完所需的全部时间
在程序运行过程中,CPU一句指令周期的不同阶段来区分在内存中以二进制编码形式存放的指令和数据
CISC和RISC
CISC和RISC是指令集发展的两种途径
(1)CISC(复杂指令集计算机)
思想:依靠增加指令复杂性及其功能来提高计算机性能
弊端:
-
指令集复杂庞大
-
虽然复杂指令简化了目标程序, 缩小了高级语言与机器指令之间的语义差距, 然而增加了硬件的复杂程度, 会使指令的执行周期大大加大, 从而有可能使整个程序的执行时间反而增加。
-
难以用优化编译生成高效的目标代码程序
-
各种指令使用频度相差很大
(2)RISC(精简指令集计算机)
思想:减少指令种类和简化指令功能,降低硬件设计的复杂度,通过优化编译提高指令执行速度,采用硬布线控制逻辑优化编译程序
关键技术:重叠寄存器窗口技术、优化编译技术、超流水线及超标量技术、结合硬步线逻辑和微程序
指令的控制方式
(1)顺序方式
各机器指令之间的顺序串行地执行,执行完一条指令后才取下一条指令
优点:控制简单
缺点:速度慢,机器各部件的利用率低
(2)重叠方式
指在解释第K条指令的操作完成之前就可以开始解释第K+1条指令.通常采用一次重叠
优点:速度提高
缺点:会出现冲突、转移和相关等问题
(3)流水方式
把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
与重叠不同的是,一次重叠是把一条指令解释分解成两个子过程,而流水则是分解成更多的子过程
相关性:在程序运行中,如果必须等前一条指令执行完成后,才能执行后一条指令,那么这两条指令是相关的。相关包括指令相关、访存操作数相关、通用寄存器组相关。
局部相关:像指令相关之类的相关只影响相关的两条或几条指令,最多影响流水线的某些段的退后工作,不会改动指令缓冲器中预取到的指令内容,影响是局部的。解决局部相关的方法:推后法和通路法。
全局相关:像条件转移指令与后面的指令之间存在关联,执行转移指令时可能会改动指令缓冲器中预取到的指令内容,造成流水线吞吐率和效率下降,影响是全局的。解决全局相关的方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。
吞吐率:单位时间内流水线处理机流出的结果数(单位时间内执行的指令数 )
流水建立时间:从流水线开始工作到吞吐率达到最大所需的时间
并行性包括同时性和并发性。
同时性:两个或两个以上的事件在同一时刻发生
并发性:两个或两个以上的事件在同一时间间隔内连续发生
RISC采用的流水技术:超流水线、超标量、超长指令字
超流水线:通过细化流水、增加级数和提高主频,使得在每个机器周期内完成一个至两个浮点操作
超标量:通过内装多条流水线来同时执行多个处理,依靠硬件来实现并行处理的调度
超长指令字(VLIW):一种非常长的指令组合,它把许多条指令连在一起,增加了运算速度。同时执行多个处理,充分发挥软件的作用
处理机
(1)阵列处理机:将重复设置多个处理单元按一定方式练成阵列,在单个控制部件控制下,对分配给自己的数据进行处理,并行地完成一条指令所规定的操作。
(2)并行处理机:SIMD和MIMD是典型的并行计算机,SIMD有共享存储器和分布存储器两种形式
(3)多处理机:由多台处理机组成的系统,每台处理机由属于自己的控制部件,可执行独立的程序,共享一个主存储器和所有外部设备。