这篇博客主要是对《计算机系统结构》课程进行期末知识点总结。
1. 透明性(下面对某类程序员是透明的,PPT举例,P33)
概念:本来存在的事物或属性,从某种角度看似乎不存在。
例如:浮点数表示、乘法指令
对高级语言程序员、应用程序员 透明
对汇编语言程序员、机器语言程序员 不透明
例如:数据总线宽度、微程序
对汇编语言程序员、机器语言程序员 透明
对硬件设计者、计算机维修人员 不透明
2.计算机系统设计思路
由上往下:从应用出发,软件决定硬件。
优点:面向应用,适用于专用机, 每一层对上一层优化,软件的运行效率高。
缺点:不适用于通用机,导致硬件设计不灵活,适应性差。
由下往上:硬件决定软件。
缺点:在固定硬件的条件下,软件设计被动且受限制,没考虑软件优化,导致软硬件脱节。
由中间到两边:先决定软硬件界面即系统结构,再由结构设计出软件与硬件。
优点:兼顾软件与硬件,软件与硬件可以并行设计,设计过程中相互交流
3.软硬件取舍
软硬件取舍的三个基本原则:
(1) 系统性价比高:在某功能的使用率比较高并且该机型的产量较大的情况下,可考虑用硬件实现。
(2) 在硬件上,考虑可能采用的组成与实现技术。
(3) 在软件上,考虑如何方便编译和操作系统的实现即缩小高级语言与机器语言的语义差距。
4.系列机、兼容机区分
系列机:一个厂家内生产的具有相同的系统结构,但具有不同的组成和实现的一系列不同型号的机器。例如INTEL 的80X86微机系列及其兼容机。系列机在使用者看来具有相同的属性,差别仅在于程序的执行时间。
兼容机:不同厂商生产的具有相同系统结构的计算机。
5.软件移值:模拟和仿真二者适用范围
模拟(Simulation):用一种机器(宿主机)的机器语言解释另一种机器(虚拟机)的机器指令。
仿真(Emulation):用一种机器(宿主机)的微程序解释另一种机器(目标机)的指令系统。
区别:
模拟用软件实现,仿真用软件、固件与硬件实现
模拟方法速度低,仿真方法速度高
适用范围:
模拟方法适用范围:结构可以不同,但相差太大时,效率和速度就会下降
仿真方法适用范围:只能在差别不大的系统之间 6 影响主
6.存命中率的因素有哪些
(1) 页面大小
(2) 主存容量
(3) 页面调度方式
7.中断系统中的软硬件实现
软件:保存现场,执行中断服务程序,返回中断点。程序查询。
硬件:接受中断请求,保存中断断点,清除中断请求,转中断服务程序入口。硬件排队器与比较器,中断向量表。
软硬都行:识别中断源,确定中断优先级,恢复现场。硬件状态用程序状态字表示。
经历了从由软件实现到硬件再到软硬件结合的过程,由中断向量表获得中断处理程序的入口地址。
8.四种体系结构的驱动方式
脉动阵列机:控制驱动
MPP与机群系统:控制驱动
数据流计算机:数据驱动
归约机:需求驱动
9.互连函数
互连函数:N个输入端的结点号与N个输出端的结点号的一种对应关系可以用一个映射函数表示,称为互连函数。
四种表示方法:
(1)立方体网络:
连接规律:每个处理单元只能直接连接到它的二进制编号某位取反的处理单元上。
(2)PM2I网(移数网、单级加减2i网)
连接规律:j号处理单元直接连接到j±2i号处理单元 PM2I函数定义:功能是对入端结点编号加或减2i,然后再作模N运算。
PM2+i(j)= (j + 2i) mod N
PM2-i(j)= (j - 2i) mod N
其中j = 0 ~ N - 1,i = 0 ~ n - 1。
PM2I函数共有n对成员,分别是PM2±0,PM2±1,……,PM2±(n-1)。由于PM2±(n-1)的函数值相等,所以只有2n-1个函数。
(3)均匀混洗交换网络
该网络由混洗函数(shuffle)与交换函数(exchange即Cube0)定义。
混洗函数:将结点的二进制编号循环左移一位shuffle(Pn-1Pn-2……P0)= Pn-2……P0Pn-1。
n=3的混洗网络拓扑形状如下图绿线所示,可以看出它不是一个连通图,所以还需要增加一个交换函数(图中红线所示),才能构成完整的单级混洗—交换网络。
(4)蝶形单机网络
互连函数:Butterfly(Pn-1Pn-2…P1P0)=P0Pn-2…P1Pn-1。即将二进制地址的最高位和最低位相互交换位置
10 多处理机与阵列处理机(并行处理机)的区别
结构灵活性,程序并行性,并行任务派生,进程同步。
(1) 结构灵活性:
MIMD通用,SIMD专用;
并行处理机:专用,PE数很多(几千个),固定有限的通信
多处理机:通用,几十个,高速灵活的通信
(2) 程序并行性:
并行处理机的并行性存在于指令内部,识别比较容易。
多处理机的并行性存在于指令外部,在多个任务之间,识别难度较大。
(3) 并行任务派生:
并行处理机把同种操作集中在一起,由指令直接启动各PE同时工作。(不需要由专用语句显式指明是否派生并行任务)
多处理机用专门的指令来表示并发关系,一个任务开始执行时能够派生出与它并行执行的另一些任务,如果任务数多于处理机数,多余的任务进入排队器等待(需要由专用语句显式指明是否派生并行任务)。
(4) 进程同步:
并行处理机仅一个CU,自然是同步的(由于受同一控制器控制)。
多处理机执行不同的指令,工作进度不会也不必保持相同,先做完的要停下来等待。有数据相关和控制相关也要停下来等待,要采取特殊的同步措施来保持程序所要求的正确顺序。(各进程的同步需要采取特殊措施来保证)。
11.计算机系统3T目标
1 T FLOPS(Floating-point operations per second,每秒所执行的浮点运算次数)的计算能力;
1TB的主存容量;
1TB/s的I/0系统带宽。
12.什么是数据表示
数据表示:指可由硬件直接辨认的数据类型,表现在机器有对该类型数据进行操作的指令和运算部件。
带标志符数据表示:数据类型和数据本身直接联系在一起 。
数据描述符数据表示:数据类型和数据分开存储。主要用来描述复杂和多维结构的数据类型。
向量数组数据表示:在硬件上支持向量的并行执行。
堆栈数据表示:支持高级语言编译和子程序功能调用;传统堆栈用通用寄存器实现,放在主存中,堆栈指令数少,速度低;堆栈机器用高速寄存器实现堆栈,具有寄存器的速度和主存堆栈的容量。
13.阵列处理机中基本的单级互连网络
立方体,PM2I,混洗交换,蝶形单级网络
14.提升存储体系性能的方法有哪些
(1)采用高速器件
(2)采用 cache
(3)采用多体交叉存储器
(4)采用双端口存储器
(5)采用相联存储器,加长存储器的字长。
15.总线控制方式
串行链接,定时查询,独立请求
16.消除流水线瓶颈的方法
一是将“瓶颈”流水段细分(如果可分的话)
二是将“瓶颈”流水段重复设置
17.通道的类型
字节多路通道,数组多路通道,选择通道
18.兼容机有哪几种
向上(下)兼容:按某档机器编写的程序,不经修改就能运行于比它高(低)档的机器。
向前(后)兼容:按某个时期投向市场的某种型号的机器编写的软件,不经修改就能运行于在它之前(后)投入市场的机器。
19.流水线的概念(级,段,深度)
把一个任务分解为几个有联系的子任务,每个子过程由专用的功能段实现,依靠多个功能段的并行工作来缩短程序的执行时间。每个子过程称为流水线的“级”或“段”。“段”的数目称为流水线的“深度”。
20.实现并行性的方法
时间重叠,资源重复,资源共享
21 Flynn分类法
单指令流单数据流SISD(Single instruction Single data)
单指令流多数据流SIMD(Single Instruction Multiple Data)
多指令流单数据流MISD(Multiple Instruction Single Data)
多指令流多数据流MIMD(Multipe Instructions Multiple Data)
22.如何实现软件移值(主要途径)
实现软件移植的主要途径有:统一高级语言,采用系列机,模拟和仿真等。
23.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?
数据表示是数据结构的组成元素,数据结构要通过软件映像变换成机器所具有的各种数据表示来实现。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性上不同。数据结构和数据表示是软件和硬件之间的交界面。
确定和引入数据表示的基本原则是:除了基本的数据表示一般都应有之外,对某些高级数据表示是否引入,一是看系统效率是否提高,即是否减少了实现的时间和存储的空间,实现时间是否减少又主要看在主存和处理机之间传送的信息量是否减少;二是看引入这种数据表示的通用性和利用率是否较高。
24.什么是MPP与机群系统区分
大规模并行处理机(MPP):是将数百万个高性能,低成本的RISC微处理器用互连网络互连构成的并行处理系统。MPP的操作系统应采用微内核和大外壳。内核只中断处理等基本功能。它实现中、细粒度的并行处理。
机群系统:机群是将多个高性能的工作站或高档微机使用高速网络互连组成的系统。它实现中、粗粒度的并行处理。
25.软硬件的等效性,什么时候等效,什么时候不等效(彻底理解可以举出例子)
软、硬件的功能分配是计算机系统结构的主要任务,而软件和硬件在逻辑功能上又是等效的。从原理上讲,软件的功能可以用硬件或固件完成,硬件的功能也可以用软件模拟完成,只是它们在性能、价格、实现的难易程度上是不同的。
例如:中断
软件:保存现场,执行中断服务程序,返回中断点。程序查询。
硬件:接受中断请求,保存中断断点,清除中断请求,转中断服务程序入口。硬件排队器与比较器,中断向量表。
软硬都行:识别中断源,确定中断优先级,恢复现场。硬件状态用程序状态字表示。
经历了从由软件实现到硬件再到软硬件结合的过程,由中断向量表获得中断处理程序的入口地址。
26.指令格式的优化是指什么,思路途径是什么
指令格式的优化:如何用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字长最短——指令格式的优化。包括:操作码优化,地址码优化。
(1)采用扩展操作码,并根据指令的频度pi的分布状况选择合适的编码方式,以缩短操作码的平均码长。
(2)采用诸如基址、变址、相对、寄存器、寄存器间接、段式存放、隐式指明等多种寻址方式,以缩短地址码的长度,并在有限的地址长度内提供更多的地址信息。
(3)采用0、1、2、3等多种地址制,来增强指令的功能,从宏观上缩短程序的长度,并加快程序的执行速度。
(4)在同种地址制内再采用多种地址形式,如寄存器——寄存器、寄存器——主存、 主存——主存等,让每种地址字段可以有多种长度,且让长操作码与短地址码进行组配。
(5)在维持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度。
27.组相联映像P158 4-17
全相联方式:
(1)主存与缓存分成大小相同的数据块。
(2)主存的某一数据块可以装入缓存的任意一块的空间中。
直接相联方式:j=i mod N
(1)主存与缓存分成同样大小的块;
(2)主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等;
(3)主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。
组相联映像:
(1)主存与缓存分成相同大小的块;
(2)主存与缓存分成相同大小的组;
(3)将主存空间按缓存的大小分成区,主存中每一区的组数与缓存的组数相同。
(4)组间直接相联;组内全相联。
例题:
采用组相联映像、LRU替换算法的Cache存储器,发现等效访问速度不高,为此提议:
(1)增大主存容量。
(2)增大Cache中的块数(块的大小不变)。
(3)增大组相联组的大小(块的大小不变)。
(4)增大块的大小(组的大小和Cache总容量不变)。
(5)提高Cache本身器件的访问速度。
分别采用上述措施后,等效访问速度可能会有什么样的显著变化?其变化趋势如何?如果采取措施后并未能使等效访问速度有明显提高的话,又是什么原因?
答:
(1)增大主存容量,对HC基本不影响。虽然增大主存容量可能会使tm稍微有所加大,但如果HC已很高,那么这种tm的增大对ta的增大不会有明显的影响。(HC表示Cache命中率;tm主存访问时间;ta等效访问时间)
(2)增大Cache中的块数,而块的大小不变,这意味着增大Cache的容量。由于LRU 替换算法是堆栈型的替换算法,因此将使HC上升,从而使ta缩短。ta的缩短是否明显,还要看当前HC处在什么水平上。如果原有Cache的块数较少,HC较低,则ta会因HC迅速提高而显著缩短;如果原Cache的块数已较多,HC已很高了,则增大Cache中的块数,不会使HC再有明显提高,此时其ta的缩短也就不明显了。
(3)增大组相联组的大小,块的大小不变,从而使组内的块数有了增加,它会使块冲突概率下降,这也会使Cache块替换次数减少。而当Cache各组组内的位置已全部装满了主存块之后,块替换次数的减少也就意味着HC的提高。所以,增大组的大小能使HC提高,从而可提高等效访问速度。不过,Cache 存储器的等效访问速度改进是否明显还要看目前的HC处于什么水平。如果原先组内的块数太少,则增大组的大小会明显缩短ta;如果原先组内块数已较多,则ta的缩短就不明显了。
(4)组的大小和Cache总容量不变,增大Cache块的大小,其对ta影响的分析大致与(3)相同,会使ta缩短,但要视目前的HC水平而定。如果HC已经很高了,则增大Cache块的大小对ta的改进也就不明显了。
(5)提高Cache本身器件的访问速度,即减小tc只有当HC命中率已很高时,才会显著缩短ta。如果HC命中率较低,对减小ta的作用就不明显了。
28.流水线吞吐率,加速比,效率计算;瓶颈问题的解决方案(画结构图);最后比较分析得出结论。
吞吐率(throughput rate):流水线的吞吐率(throughput rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。
式中,n为任务数,m为流水线的段数,Tm是处理完成n个任务所用的时间。
(1)连续输入且各段时间相等时
各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为:
Tm=m△t+(n-1)*△t=(m+n-1)△t 吞吐率:
最大吞吐率为:
(2)连续输入但各段时间不相等时:
Tm=流水线完成第一个任务需要的时间+完成其余n-1个任务所需要的时间=流水线每段时间之和+(n-1)*m段中最慢的一段的时间
吞吐率为:
最大吞吐率为:
加速比(speedup radio) :完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为水线的加速比(speedup radio)。
(1) 如果流水线各段时间相等
最大加速比为:
(2) 如果流水线各段时间不相等
顺序执行需要的时间:T0=任务数*每个任务顺序通过流水线各段所需要的时间
效率(efficiency):流水线的效率是指流水线的设备利用率。
(1) 定义法
(2) 时空区法(推荐使用)
例题:
有一条指令流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是t,问: (1)当流水线的输入端连续地每隔时间△ t输入任务时,会发生什么情况? (2)此流水线的最大吞吐率为多少?如果第隔2 △ t输入一个任务,连续输入10个任务的实际吞吐率和效率 (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,吞吐率提高多少?
答:
(1)
(2)此流水线的最大吞吐率为:
4段流水线完成10个任务所需要的时间为:
因此,流水线的实际吞吐率为10/(23△t)。
流水线的效率为:
(3)
a.重复设备瓶颈段
b.瓶颈段细分
所以吞吐率提高的倍数为:
29.指令系统优化(PTT例题,课本P79 2-9)
平均码长:各事件编码长度的数学期望。
信息冗余量:它表明消息编码中“无用成分”所占的百分比。
从减少存储与传输量的角度看,编码方法的平均码长越短越好。
(1) 定长编码
若所有指令使用相同的代码位数,则操作码用定长表示,需要最小码长等于:
式中 是平均码长,li是第i种指令的码长,n是指令总数。 例:已知 n = 9,求定长编码的最小平均码长。
(2) Huffman压缩编码方法
这种编码方法由两个过程组成:频度合并,码元分配。
从小到大排序,
最小两个合并,
重复上述过程,
只剩一个结束。
例:现设一台模型机,共有7种不同的指令,使用频度如表所示。若用定长操作码表示,则需要3位。
哈夫曼树:
∑Pili=0.401+0.302+0.153+0.055+0.045+0.035+0.03*5=2.20(位) 这种编码的信息冗余为K=2.20-2.17/2.20≈1.36%
(3) 扩展编码方法(33, 25)
信息冗余量介于定长编码与全Huffman编码之间,码长种类有限,仍遵循高概率用短码,低概率用长码的思想。包括:不等长扩展法,等长扩展法。
例:
30.层次存储
命中率H:命中率为CPU访问存储系统时,在M1中找到所需信息的概率。
页面替换发生的时机:当发生页面失效时,要从辅存中调页放至主存,如果此时主存中所有页已被占用,则需要将主存中的某一页淘汰,以便给新调入的页腾出位置。 先进先出法(FIFO Fist-In-First-Out):选择最早调入的页作为被替换的页。
优点:易于实现。缺点:没考虑局部性。
最久没有使用法(LRU):选择最久没有被访问过的页作为被替换的页。
优点:命中率较高。缺点:硬件实现复杂
例题:
设有一道程序,有1至5共五页,执行时的页地址流(即执行时依次用到的程序页页号)为:2,3,2,1,5,2,4,5,3,2,5,2。若分配给该道程序的主存有3页,分别采用FIFO和LRU替换算法表示这3页的使用和替换过程。
31.流水线上的调度(课本P196 5-11)
不改变流水线结构的调度方法步骤:
(1)作禁止表F
(2)作初始冲突向量C
(3)作状态转移图
(4)作平均间隔拍数表
例:某非线性流水线的预约表如下所示
(1)第一步:作延迟禁止表F
将流水线中所有各段对一个任务流过时会争用同一段的节拍间隔数汇集在一起构成一个延迟禁止表。
由预约表得到禁止向量的方法:预约表的每一行中任意两个“√”之间的距离都计算出来,去掉重复的,这种数组成的一个数列就是这条非线性流水线的禁止向量。
F = { 1,5,6, 8 }
(2)第二步:作初始冲突向量C
冲突向量:用m位二进制编码表示, m是禁止向量的最大距离。
C=(CmCm-1…C3C2C1)
Ci=1表示间隔拍数为i时会冲突,Ci=0表示间隔拍数为i时不会发生冲突,长度是禁止向量的最大距离。
由禁止向量F = {1,5,6, 8 }可得:冲突向量C=(C8C7C6C5C4C3C2C1),其中C1 =C5=C6=C8=1,其余位为0。
冲突向量为 C = (10110001)
(3)第三步:作状态转移图
冲突向量中,位=0表示不发生冲突,其位置号是不发生冲突的间隔拍数。
从初始状态开始,检查冲突向量中为0的位,有几个0,就会有几个新的冲突向量。
下一个冲突向量=上一个冲突向量右移n位 or 初始冲突向量。
逐次计算新的冲突向量,并用有图连接。有向弧上的数字表示产生新的冲突向量所需要的间隔拍数。
(4)第四步:作平均间隔拍数表
a 调度方案的产生:
从初始状态出发,沿箭头方向,每走一个闭环,就是一个方案. 若中间遇到小闭环,也作为一个方案。
遍历初始状态中的每一个Ci=0的回路。
b 计算所有调度方案的平均间隔拍数
设某方案为(t1,t2,t3)
平均间隔拍数=循环周期中的各间隔拍数之和/ 一个周期的任务数=(t1+t2+t3)/3
c 找出最优方案,计算流水线的性能
最优方案:平均间隔拍数最少的方案 流水时间=一个任务所需的拍数+t1间隔t1拍启动的任务数+t2间隔t2拍启动的任务数+… 最大吞吐率=一个周期中的任务数/循环周期中的各间隔拍数之和=平均间隔拍数的倒数
最后一课寄语
希望大家都能有好的前途,好的前途只能靠大家自己来奋斗,不会有馅饼掉在咱的头上!