第一章
计算机系统结构、计算机组成、计算机实现三者之间的区别和联系
区别
-
计算机系统结构的实质是一种系统设计,就是完成硬件、软件的功能分配, 对计算机的机器级界面的确定。界面之上,是软件实现的功能;界面之下是硬件和固件实现的功能。
-
计算机组成的实质是一种逻辑设计,是计算机系统结构的逻辑实现(数据流、控制流、控制机构、各部件的功能及连接)
-
计算机实现的实质是一种物理设计,是计算机组成的具体物理实现(器件、组装)
联系
-
相同系统结构的计算机可以采用不同的组成;相同组成的计算机可以采用不同的实现技术
-
组成设计向上决定于结构,向下受限于实现技术
软、硬件取舍原则
逻辑功能上等价
-
硬件实现:速度快、成本高;灵活性差、占用内存少
-
软件实现:速度慢、复制费用低;灵活性好、占用内存多、易设计、可改性强、适应性强、设计周期短
发展趋势:
硬件成本越来越低→硬件实现的比例越来越高
程序访问的局部性原理
- 时间局部性:最近的将来要用到的信息可能就是现在正在使用的信息(循环)
- 空间局部性:最近的将来要用到的信息很可能与现在正在使用的信息在程序上的位置是临近的(指令的顺序存放、数据的簇聚存放)
并行性的概念和分类
定义:把同时进行运算或操作的特性,称并行性
同时性:事件在同一时刻发生
并发性:事件在同一时间间隔内发生
系统结构中开发并行性的途径
-
时间重叠:让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部件,以加快部件的周转提高速度
-
资源重复:通过重复设置硬件资源,提高性能和可靠性。由同一个控制器,控制多个处理器同时处理同一个数据,进行同个运算
-
资源共享:用软件的方法,使多个用户按一定时间轮流地分时使用同一资源,以提高利用率,提高整个系统的性能
第二章
RISC 的基本原则和快的实质
基本原则
通过减少指令种数和简化指令功能来降低硬件设计的复杂度,提高指令的执行速度(具体如下)
① 选择使用频度较高、最有用,及实现简单的指令
② 每条指令都在一个机器周期内完成的指令
③ 减少指令寻址方式的种类,简化指令格式,使指令的长度相同
④ 增加通用寄存器的数量,减少访问存储器操作
⑤ 大量采用硬联控制,提高执行速度
⑥ 通过优化和精简指令设计支持的编译程序,能有效地为高级语言生成机器语言程序
快的实质
RISC的CPI(每条指令执行的平均周期数)比CISC少2—10倍,通常情况下,RISC的时钟周期短于CISC,RISC的速度比CISC要快三倍左右,关键在于CPI
RISC 采用的基本技术
-
遵循按RISC机器基本原则设计的技术
-
在逻辑上采用硬联实现和微程序固件实现相结合的技术(大多数简单指令用硬连线方式实现,功能较复杂的指令用微程序解释实现)
-
在CPU中设置数量较大的寄存器组, 并采用重叠寄存器窗口的技术(大量减少了原先由于程序调用引起的访存次数,寄存器溢出再压入堆栈)
-
指令的执行采用流水和延迟转移技术
-
指令流调整技术(通过变量重新命名消除数据相关,提高流水线效率)
-
采用高速缓冲存储器Cache
【延迟转移技术和指令流调整技术实际上都是优化编译系统的典型例子,】
第三章
重叠和顺序解释的异同
顺序解释:
-
各条机器指令之间顺序串行地执行
-
每条指令内部的各个微操作也是顺序串行地执行
-
控制简单,但速度慢、各部件利用率低
重叠解释:
-
在解释第k条指令的操作完成之前,就可开始解释第k+1条指令
-
不能加快一条指令的实现,但能加快相邻两条以至一段程序的解释
重叠对组成的要求
- 解决可能存在的访存冲突(一次只能访问一个主存单元)
- 在硬件上保证有独立的指令分析部件和指令执行部件,解决控制的同步问题
- 处理转移指令的问题(尽量减少使用条件转移语句)
- 处理指令相关的问题(后一指令的内容受前一指令的执行结果影响)
重叠相关的两种解决方案并就其原因用系统设计原理作出解释
(1)推后读:【以降低速度为代价,设备基本不增加】
把“分析k+1”推后到“执行k”结束时开始,只要发生数相关就使一次重叠变成了完全的顺序串行,速度明显下降
(2)增设相关专用通路:【以增加设备为代价,重叠效率不下降】
在发生重叠相关时,让相关专用通路接通,在“执行k”时将运算结果送入通用寄存器,同时直接将运算结果回送到X寄存器,可大大缩短传送时间,并能保证当“执行k+1”需要用此操作数时,它已在X寄存器中准备好了
第四章
互连网络的设计目标
-
低成本
-
高灵活性
-
高连接度
-
低延时
-
适合VLSI(超大规模集成电路)
第五章
多处理机的存储器组织中两种编址方式及其适应场合
低位交叉编址:
-
块内顺序物理地址不连续,连续物理地址空间的数据被分散到各个分存储体中,距离为模块数量
-
主存物理地址:【模块内部单元号|模块号】
-
适用于当前执行进程是共享同一集中连续物理地址空间中的数据,如流水线、向量或阵列处理机
高位交叉编址:
-
块内顺序物理地址连续,总体也依次连续分布,一段程序或数据存放在同一个模块内
-
主存物理地址:【模块号|模块内部单元号】
-
适用于当前执行的多个进程基本不共享数据的情况,可将存储模块中的一定数量的页面分配给某进程
第六章
数据驱动方式及其特点
只要一条或一组指令所要求的操作数全部准备就绪,就可立即激发相应的指令或指令组执行。指令的执行基本上是无序的,完全受数据流的驱动,与指令在程序中出现的先后顺序无关。如果其中一些指令因此而使所需用到的数据全部准备就绪,就可被激发执行。
特点:
-
它没有通常的共享变量的概念,即没有共享存储数据的概念
-
指令执行顺序只受指令中数据相关性的制约
-
数据是以数据令牌方式直接在指令之间传递的
数据令牌的概念
实质上是一种表示某一操作数或参数已准备就绪的标志。一旦执行某一操作的所有操作数令牌都到齐,则标志着这一操作是什么操作,以及操作结果所得出的数据令牌应发送到哪些等待此数据令牌的操作的第几个操作数部件等有关信息,都将作为一个消息包(MessagePacket),传送到处理单元或操作部件并予以执行。
数据流是一种什么样的计算模型
从语义上说,数据流是基于异步性和函数性的一种计算模型。
①并行性:可同时并行执行多条指令(并行性通常是隐含的)
②异步性:一旦一条指令所需求的数据令牌到达后,指令就可独立执行,而不必关心其他指令及数据情况如何
③函数性:运算的执行都是局部操作,操作数是作为数据令牌直接传送的,每一组数据流操作都需要一组输入值,产生一组输出值
④分散性:不需要控制执行次序,故不需要集中控制(没有PC)