计算机系统结构复习笔记
名词解释问题:
第一章
名词解释:多级层次结构
按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。
名词解释:虚拟机
用软件实现的机器。
名词解释:解释
对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。
名词解释:翻译
先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后在这低一级机器上运行,实现程序的功能。
名词解释:计算机系统结构
指机器语言程序员所看到的计算机属性,即概念性结构与功能特性。
名词解释:透明性
在计算机技术中,把本来存在的事物或属性,但从某种角度看又好像不存在的特性称为透明性。
名词解释:计算机组成
计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
名词解释:计算机实现
计算机系统的物理实现。包括各部件的物理结构,器件的集成度和速度,装配技术与制造工艺等。
名词解释:系列机
由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。
名词解释:最大并行度
计算机系统在单位时间内能够处理的最大的二进制位数。
名词解释:CPI
每条指令的平均执行时钟周期数。
名词解释:程序的局部性原理
程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。
名词解释:时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
名词解释:空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
名词解释:CISC
复杂指令集计算机。
名词解释:RISC
精减指令集计算机。
名词解释:软件兼容
一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。差别只是执行时间的不同。
名词解释:向上兼容
按某档计算机编制的程序,不加修改就能运行于比它高档的计算机。
名词解释:向下兼容
某档计算机编制的程序,不加修改就能运行于比它低档的计算机。
名词解释:向前兼容
按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之前投入市场的计算机。
名词解释:向后兼容
按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后投入市场的计算机。
名词解释:兼容机
由不同公司厂家生产的具有相同系统结构的计算机。
名词解释:摩尔定律
集成电路芯片上所集成的晶体管数目每隔18个月就翻一番。
名词解释:模拟
用软件的方法在一台现有的计算机(称为宿主机,)上实现另一台计算机(称为虚拟机)的指令系统。
名词解释:仿真
用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。
名词解释:并行性
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。它包括同时性与并发性两种含义。
名词解释:并发性
两个或两个以上的事件在同一时间间隔内发生。
名词解释:同时性
两个或两个以上的事件在同一时刻发生。
名词解释:耦合度
反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。
名词解释:紧密耦合系统
又称直接耦合系统。在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。
名词解释:松散耦合系统
又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。计算机之间的相互作用是在文件或数据集一级上进行。
名词解释:异构型多处理机系统
由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。
名词解释:同构型多处理机系统
由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
名词解释:层次机构
按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。
名词解释:系统加速比
对系统中某部分进行改进时,改进后系统性能提高的倍数。
名词解释:Amdahl定律
当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。
名词解释:程序的局部性原理
程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。
名词解释:测试程序套件
测试程序套件是由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。
名词解释:存储程序计算机
冯·诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
名词解释:时间重叠
在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
名词解释:资源重复
在并行性概念中引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
名词解释:资源共享
这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
第二章
名词解释:堆栈型机器
CPU 中存储操作数的单元是堆栈的机器。
名词解释:累加器型机器
CPU 中存储操作数的单元是累加器的机器。
名词解释:通用寄存器型机器
CPU 中存储操作数的单元是通用寄存器的机器。
名词解释:寻址方式
指令系统中形成所要访问的数据地址的方法。一般来说,寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。
名词解释:信息存储的整数边界
信息在主存中存放的起始地址必须是该信息宽度(字节数)的整数倍。
名词解释:指令系统的完整性
在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令系统所提供的指令足够使用。
名词解释:指令系统的规整性
没有或尽可能减少例外的情况和特殊的应用,以及所有运算都能对称、均匀地在存储器单元或寄存器单元之间进行。
名词解释:指令系统的正交性
在指令中各个不同含义的字段,如操作类型、数据类型、寻址方式字段等,在编码时应互不相关、相互独立。
名词解释:数据表示
硬件结构能够识别、指令系统可以直接调用的数据类型。
名词解释:PC相对寻址
在指令中提供一个偏移量,由该偏移量和程序计数器(PC)的值相加而得出有效地址。
名词解释:CISC
复杂指令集计算机
名词解释:RISC
精简指令集计算机
第三章
名词解释:流水线技术
将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
名词解释:通过时间
流水线中第一个任务进入流水线到流出结果所需的时间。
名词解释:排空时间
最后一个任务从进入流水线到流出结果的所需的时间。
名词解释:定向技术
用来解决写后读冲突的。在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不一定马上就要用该结果。如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
名词解释:部件级流水线
又称运算操作流水线。把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。
名词解释:指令流水线
又称处理机级流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
名词解释:系统级流水线
又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。
名词解释:单功能流水线
流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。
名词解释:多功能流水线
流水线的各段可以进行不同的连接,以实现不同的功能。
名词解释:静态流水线
在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。
名词解释:动态流水线
在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。
名词解释:线性流水线
各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。
名词解释:非线性流水线
各段除了有串行的连接外,还有反馈回路的流水线。
名词解释:顺序流水线
流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。
名词解释:乱序流水线
流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。
名词解释:吞吐率
在单位时间内流水线所完成的任务数量或输出结果的数量。
名词解释:流水线的加速比
使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。
解析
名词解释:流水线的效率
即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。
名词解释:相关
两条指令之间存在某种依赖关系。
名词解释:数据相关
考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:
(1)指令j使用指令i产生的结果;
(2)指令j与指令k数据相关,而指令k又与指令i数据相关。
名词解释:反相关
考虑两条指令i和j,i在j的前面,如果指令j所写的名与指令i所读的名相同,则称指令i和j发生了反相关。
名词解释:输出相关
考虑两条指令i和j,i在j的前面,如果指令j和指令i所写的名相同,则称指令i和j发生了输出相关。
名词解释:换名技术
名相关的两条指令之间并没有数据的传送,只是使用了相同的名。可以把其中一条指令所使用的名换成别的,以此来消除名相关。
名词解释:控制相关
由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。
名词解释:流水线冲突
对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期开始执行。
名词解释:结构冲突
因硬件资源满足不了指令重叠执行的要求而发生的冲突。
名词解释:数据冲突
当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
名词解释:控制冲突
流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。
名词解释:写后读冲突
考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。
名词解释:写后写冲突
考虑两条指令i和j,且i在j之前进入流水线,指令j和指令i的结果寄存器相同,而且j在i写入之前就先对该寄存器进行了写入操作,从而导致写入顺序错误。最后在结果寄存器中留下的是i写入的值。
名词解释:读后写冲突
考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。
名词解释:流水线
将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
名词解释:部件级流水线
把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。
名词解释:处理机级流水线
又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
名词解释:处理机间流水线
又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入
名词解释:链接技术
具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
名词解释:分段开采
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
名词解释:半性能向量长度
向量处理机的性能为其最大性能
R
∞
R_{\infty}
R∞的一半时所需的向量长度。
名词解释:向量长度临界值
向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。
第四章
名词解释:横向(水平)处理方式
若向量长度为N,则横向处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。
名词解释:纵向(垂直)处理方式
将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理。
名词解释:纵横(分组)处理方式
把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。
名词解释:向量流水线链接
具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
名词解释:Vi冲突
多条向量指令的源向量或结果向量要使用相同的Vi。
名词解释:功能部件冲突
多条向量指令要使用同一个功能部件。
名词解释:分段开采技术
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
名词解释:向量长度临界值
向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。
第五章
名词解释:指令级并行
简称ILP。指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
名词解释:IPC
Instructions Per Cycle的缩写。每个时钟周期完成的指令条数。
名词解释:循环级并行性
循环的不同叠代之间存在的并行性。
名词解释:指令的动态调度
在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,减少数据相关导致的停顿。
名词解释:动态指令调度
由硬件在程序实际运行时实施的,其基本思想是对指令流水线互锁控制进一步改进,能实时的判断出是否有 WR、RW、WW 相关存在,利用硬件绕过或防止这些相关的出错,并允许多条指令在具有多功能部件的执行段中并行操作,从而提高流水线的利用率且减少停顿现象。
名词解释:指令的静态调度
依靠编译器对代码进行静态调度,以减少相关和冲突。它不是在程序执行的过程中、而是在编译期间进行代码调度和优化的。
名词解释:不精确异常
当执行指令i导致发生异常时,处理机的现场(状态)与严格按程序顺序执行时指令i的现场不同。不精确异常使得在异常处理后难以接着继续执行程序。
名词解释:精确异常
当执行指令i导致发生异常时,处理机的现场跟严格按程序顺序执行时指令i的现场相同。
名词解释:CDB
公共数据总线。
名词解释:BHT
分支历史表。用来记录相关分支指令最近一次或几次的执行情况是成功还是失败,并据此进行预测。
名词解释:分支目标缓冲
一种动态分支预测技术。将执行过的成功分支指令的地址以及预测的分支目标地址记录在一张硬件表中。在每次取指令的同时,用该指令的地址与表中所有项目的相应字段进行比较,以便尽早知道分支是否成功,尽早知道分支目标地址,达到减少分支开销的目的。
名词解释:ROB
ReOrder Buffer。前瞻执行缓冲器。
名词解释:超标量
一种多指令流出技术。它在每个时钟周期流出多条的指令,但指令的条数不固定,依代码的具体情况而定,但有个上限。
名词解释:超流水
在一个时钟周期内分时流出多条指令。
名词解释:超长指令字
一种多指令流出技术。VLIW处理机在每个时钟周期流出的指令条数是固定的,这些指令构成一条长指令或者一个指令包,在这个指令包中,指令之间的并行性是通过指令显式地表示出来的。
第六章
名词解释:指令调度
为了充分发挥流水线的作用,必须设法让它满负荷地工作,这就要求充分开发指令之间存在的并行性,找出不相关的指令序列,让它们在流水线上重叠并行执行,这一工作就是指令调度。
名词解释:循环展开
把循环体的代码复制多次并按顺序排放,然后相应调整循环的结束条件。通过循环展开,多个循环叠代的代码可以合到一起调度,给编译器进行指令调度带来了更大的空间,而且还能够消除中间的分支指令和循环控制指令引起的开销。
名词解释:全局指令调度
需要在多个基本块间移动指令的指令调度被称为“全局指令调度”。
名词解释:补偿代码
踪迹是程序执行的指令序列,通常由一个或多个基本块组成,trace内可以有分支,但一定不能包含循环。踪迹调度会优化执行频率高的trace,减少其执行开销。踪迹调度包括踪迹选择和踪迹压缩两个步骤。
名词解释:超块
人们增加了对trace拓扑结构的约束,将其限制为只能拥有一个入口,但可以拥有多个出口的结构,这种新结构被称为超块。
名词解释:尾复制
超块调度时往往也需要进行代码复制,以确保结果的正确。由于被复制的代码段总是作为退出超块后必须执行的补偿代码,故这种技术被形象地称为尾复制。
名词解释:VLIW技术
VLIW能够把同时流出的或者满足特定约束的一组操作打包在一起,得到一条更长(64位、128位或更长)的指令,这就是其名字的由来。每个操作被放在VLIW指令的一个槽内。VLIW处理器执行这样一条长指令就相当于超标量处理器同时执行多条指令,从而实现了多流出。
名词解释:EPIC
显式并行指令计算
名词解释:二进制翻译
将某个硬件平台的二进制目标代码翻译为另一个平台的目标代码的过程,是目前在不同平台之间实现目标代码兼容的主要手段之一。
名词解释:谓词执行
一种特殊的条件执行机制。所谓条件执行,是指指令的执行依赖于一定的条件,当条件为真时指令将正常执行,否则指令将被动态地转换为空操作。
名词解释:前瞻执行
前瞻执行并不仅仅是在数据相关或控制相关尚未消除的情况下,简单地将指令调度到与之相关的指令之前猜测执行,它还通过一系列复杂的硬件机制完成异常处理、正确性保证等工作。
名词解释:if转换
将分支指令引起的控制相关转换为相对于分支转移条件的数据相关,使得那些本应在流水线前端ID段处理的控制相关被推迟到流水线后端WB段处理,为指令调度提供了更大的空间。而且,借助这种转换可以删除代码中那些行为难以预测的分支指令,提高分支预测准确率,并减少由于分支预测错误带来的性能损失。
名词解释:循环携带相关
限制循环结构并行性开发的一个重要因素,它是指一个循环的某个叠代中的指令与其他叠代中的指令之间的数据相关。
名词解释:相关距离
一个循环的相关距离是k,表示它的第i次叠代中的语句与第i-k次叠代中的语句之间存在循环携带数据关。
名词解释:GCD测试
这是一种存储别名检测方法,可简单地描述为,如果GCD(c, a)可以整除(d-b),那么有可能存在存储别名。
名词解释:值传播
通过将变量替换为已知的值或表达式以达到消除数据相关的目的。
名词解释:高度削减
通过代码调度/转换减少数据流图关键路径长度的一种优化方法。
名词解释:软流水
核心思想是从循环不同的叠代中抽取一部分指令(循环控制指令除外)拼成一个新的循环叠代,以便将同一叠代中的相关指令分布到不同的叠代中,或将不同叠代中的相关指令封装到同一叠代中。
名词解释:指令级并行
简称ILP。是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
名词解释:保留站
在采用Tomasulo算法的MIPS处理器浮点部件中,在运算部件的入口设置的用来保存一条已经流出并等待到本功能部件执行的指令(相关信息)。
名词解释:动态分支预测技术
是用硬件动态地进行分支处理的方法。在程序运行时,根据分支指令过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也跟着改变。
名词解释:前瞻执行
解决控制相关的方法,它对分支指令的结果进行猜测,然后按这个猜测结果继续取指、流出和执行后续的指令。只是指令执行的结果不是写回到寄存器或存储器,而是放到一个称为ROB的缓冲器中。等到相应的指令得到“确认”(即确实是应该执行的)后,才将结果写入寄存器或存储器。
名词解释:循环展开
是一种增加指令间并行性最简单和最常用的方法。它将循环展开若干遍后,通过重命名和指令调度来开发更多的并行性。
第七章
名词解释:存储层次
采用不同技术实现的存储器构成的一个存储系统。处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
名词解释:命中时间
访问Cache命中时所用的时间。
名词解释:不命中率
CPU访存时,在一级存储器中找不到所需信息的概率。
名词解释:不命中开销
CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。
名词解释:全相联映像
主存中的任一块可以被放置到Cache中任意一个地方。
名词解释:直接映像
主存中的每一块只能被放置到Cache中唯一的一个地方。
名词解释:组相联映像
将Cache分成若干个组,每组由若干块构成。主存中的每一块可以放置到Cache中唯一的一组中任何一个地方。
名词解释:替换算法
由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。这时,需要被迫腾出其中的某一块,以接纳新调入的块。
名词解释:LRU
选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。
名词解释:写直达法
在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。
名词解释:写回法
只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。
名词解释:按写分配法
写不命中时,先把所写单元所在的块调入Cache,然后再进行写入。
名词解释:不按写分配法
写不命中时,直接写入下一级存储器中,而不把相应的块调入Cache。
名词解释:强制性不命中
当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性不命中。
名词解释:容量不命中
如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生不命中,这种不命中就称作容量不命中。
名词解释:冲突不命中
在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。
名词解释:2:1Cache经验规则
大小为N的直接映象Cache的不命中率约等于大小为N /2的两路组相联Cache的实效率。
名词解释:相联度
在组相联中,每组Cache中的块数。
名词解释:Victim Cache
位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。用于存放由于不命中而被丢弃(替换)的那些块。每当不命中发生时,在访问下一级存储器之前,先检查Victim Cache中是否含有所需块。
名词解释:故障性预取
在预取时,若出现虚地址故障或违反保护权限,就会发生异常。
名词解释:非故障性预取
在预取时,若出现虚地址故障或违反保护权限,不发生异常。
名词解释:非阻塞Cache
Cache在等待预取数据返回时,还能继续提供指令和数据。
名词解释:尽早重启动
在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行。
名词解释:请求字优先
调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。
名词解释:虚拟Cache
地址使用虚地址的Cache。
名词解释:多体交叉存储器
具有多个存储体,各体之间按字交叉的存储器。
名词解释:存储体冲突
多个请求要访问同一个体。
名词解释:TLB
一个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。
名词解释:多级存储层次
采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
第八章
名词解释:响应时间
从用户键入命令开始,到得到结果所花的时间。
名词解释:可靠性
系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。
名词解释:可用性
系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。
名词解释:可信性
服务的质量,即在多大程度上可以合理地认为服务是可靠的。
名词解释:RAID
廉价磁盘冗余阵列或独立磁盘冗余阵列
名词解释:分离事务总线
将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内,总线可以供给其它的I/O使用。采用这种技术的总线称为分离事务总线。
名词解释:通道
专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。
名词解释:通道流量
一个通道在数据传送期间,单位时间内能够传送的数据量。
名词解释:虚拟DMA
它允许DMA设备直接使用虚拟地址,并在DMA传送的过程中由硬件将虚拟地址转换为物理地址。
名词解释:异步I/O
允许进程在发出I/O请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。
第九章
名词解释:互连网络
一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统中结点之间的相互连接。在拓扑上,互连网络是输入结点到输出结点之间的一组互连或映象。
名词解释:互连函数
用变量x表示输入,用函数f(x)表示输出。则f(x)表示:在互连函数f的作用下,输入端x连接到输出端f(x)。它反映了网络输入端数组和输出端数组之间对应的置换关系或排列关系,所以互连函数有时也称为置换函数或排列函数。
名词解释:网络规模
互连网络中结点的个数。它表示该网络所能连接的部件的数量。
名词解释:结点度
互连网络中结点所连接的边数(通道数)。
名词解释:结点距离
对于互连网络中的任意两个结点,其距离是指从一个结点出发到另一个结点终止所需要跨越的边数的最小值。
名词解释:网络直径
互连网络中任意两个结点之间距离的最大值。
名词解释:等分带宽
把由N个结点构成的网络切成结点数相同(N/2)的两半,在各种切法中,沿切口边数的最小值。
名词解释:对称网络
从任意结点来看,网络的结构都是相同的。
名词解释:静态互连网络
各结点之间有固定的连接通路、且在运行中不能改变的网络。
名词解释:动态互连网络
由交换开关构成、可按运行程序的要求动态地改变连接状态的网络。
名词解释:虚拟通道
虚拟通道是两个结点间的逻辑链接,它由源结点的片缓冲区、结点间的物理通道以及接收结点的片缓冲区组成。
名词解释:自适应寻径
通信的通路每次都根据通信资源或者网络的情况来选择,这样就可以避开拥挤的或有故障的结点,从而使网络的利用效率可以得到改进。
名词解释:线路交换
在线路交换中,源结点和目的结点之间的物理通路在整个数据传送期间一直保持连接。
名词解释:分组交换
把信息分割成许多组(又称为包),将它们分别送入互连网络。这些数据包可以通过不同的路径传送,到目的结点后再拼合出原来的数据,结点之间不存在固定连接的物理通路。
第十章
名词解释:集中式共享多处理机
也称为对称式共享存储器多处理机SMP。它一般由几十个处理器构成,各处理器共享一个集中式的物理存储器,这个存储器相对于各处理器的关系是对称的,
名词解释:分布式共享多处理机
它的共享存储器分布在各台处理机中,每台处理机都带有自己的本地存储器,组成一个“处理机-存储器”单元。但是这些分布在各台处理机中的实际存储器又合在一起统一编址, 在逻辑上组成一个共享存储器。这些处理机存储器单元通过互连网络连接在一起 ,每台处理机除了能访问本地存储器外,还能通过互连网络直接访问在其他处理机存储器单元中的 “远程存储器”。
名词解释:计算/通信比
反映并行程序性能的一个重要的度量。在并行计算中,每次数据通信要进行的计算与通信开销的比值。
名词解释:多Cache一致性
多处理机中,当共享数据进入Cache,就可能出现多个处理器的Cache中都有同一存储器块的副本,当其中某个处理器对其Cache中的数据进行修改后,就会使得其Cache中的数据与其他Cache中的数据不一致。
名词解释:写作废协议
在处理器对某个数据项进行写入之前,它拥有对该数据项的唯一的访问权。
名词解释:写更新协议
当一个处理器对某数据项进行写入时,它把该新数据广播给所有其他Cache。这些Cache用该新数据对其中的副本进行更新。
名词解释:栅栏同步
栅栏强制所有到达该栅栏的进程进行等待。直到全部的进程到达栅栏,然后释放全部进程,从而形成同步。
名词解释:旋转锁
处理机环绕一个锁不停地旋转而请求获得该锁。
名词解释:同时多线程
一种在多流出、动态调度的处理器上同时开发线程级并行和指令级并行的技术,它是多线程技术的一种改进。
名词解释:细粒度多线程技术
一种实现多线程的技术。它在每条指令之间都能进行线程的切换,从而使得多个线程可以交替执行。通常以时间片轮转的方法实现这样的交替执行,在轮转的过程中跳过处于停顿的线程。
名词解释:粗粒度多线程技术
一种实现多线程的技术。只有线程发生较长时间的停顿时才切换到其他线程。
名词解释:SMP
对称式共享存储器多处理机。
名词解释:MPP
即大规模并行处理,按照当前的标准,具有几百台~几千台处理机的任何机器都是大规模并行处理系统。
名词解释:通信延迟
通信延迟=发送开销+跨越时间+传输时间+接收开销。
名词解释:监听协议
每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache通常连在共享存储器的总线上,各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块
名词解释:目录协议
用一种专用的存储器所记录的数据结构。它记录着可以进入Cache的每个数据块的访问状态、该块在各个处理器的共享状态以及是否修改过等信息。
第十一章
名词解释:CMP
多核处理器又称芯片多处理器(Chip Multiprocessor,CMP),是指在单个芯片内集成两个或多个处理器。
名词解释:SMT
超标量技术以及同时多线程(Simultaneous Multithreading,SMT)
名词解释:MPI
消息传递并行程序设计(Message Passing Interface,MPI)
名词解释:OpenMP
多线程并行编程语言(Open Multi-Processing,OpenMP)
第十二到第十四章
名词解释:机群
机群是由多台同构或异构的独立计算机通过高性能网络连接在一起而构成的高性能并行计算机系统。构成机群的计算机都拥有自己的存储器、I/O设备和操作系统,它们在机群操作系统的控制下协同完成特定的并行计算任务。对用户和应用来说,机群就是一个单一的系统,可以提供低价高效的高性能环境和快速可靠的服务。
名词解释:单一系统映像
单一系统映像具有四重含义。首先是“单一系统”,尽管系统中有多个处理器,用户仍然把整个机群视为一个单一的计算系统来使用。其次是“单一控制”,在逻辑上,最终用户或系统用户使用的服务都来自机群中唯一的一个位置。三是“对称性”,用户可以从机群的任何一个结点上获得服务。最后则是“位置透明”,用户不必了解真正执行服务的物理设备的具体位置。
名词解释:高可用性机群
在系统中某些结点出现故障的情况下,仍能继续对外提供服务。它采用冗余机制,当系统中某个结点由于软、硬件故障而失效时,该结点上的任务将在最短的时间内被迁移到机群内另一个具有相同功能与结构的结点上继续执行。
名词解释:负载均衡机群
提供与结点个数成正比的负载能力,这就要求机群能够根据系统中各个结点的负载情况实时地进行任务分配。为此,它专门设置了一个重要的监控结点,负责监控其余每个工作结点的负载和状态,并根据监控结果将任务分派到不同的结点上。
名词解释:高性能机群
这类机群的主要目的是降低高性能计算的成本。它通过高速的商用互连网络,将数十个乃至上千台PC机或工作站连接在一起,可以提供接近甚至超过传统并行计算机系统的计算能力,但其价格却仅是具有相同计算能力的传统并行计算机系统的几十分之一。
名词解释:Beowulf机群
Beowulf机群定义了这样一种系统:使用普通的硬件加上Linux操作系统、再加上GNU开发环境以及PVM/MPI共享库所构建的机群。它一方面集中了那些相对较小的机器的计算能力,能够以很高的性能价格比提供与大型机相当的性能,另一方面也保证了软件环境的稳定性。Beowulf并不是一套具体的软件包或是一种新的网络拓扑结构,它只是一种思想,即:在达到既定目标的前提下,把注意力集中在获取更高的性能价格比上。
名词解释:数据流计算机
它采用数据驱动方式,根据数据的可用性来决定指令的执行,而不是由程序计数器来决定执行哪条指令。这种计算机能够充分开发程序中的并行性。
名词解释:数据驱动计算
指令的执行不受其他控制条件的约束,任何指令只要它所需要的操作数全部齐备且可用时,就可以同时执行。也就是说,指令执行可以相互独立,操作结果可以不受指令执行顺序的影响。
名词解释:需求驱动计算
只在当某一个函数需要用到某一个自变量时才驱动对该自变量的求值操作。
名词解释:数据令牌
用来传送数据并激活指令,由结果数值和目标地址等组成。其中,结果数值就是上条指令的运算结果,而目标地址则直接取自上条指令的后继指令地址。
名词解释:数据流程序图
是一种特殊的有向图,由多个结点以及连接这些结点的有向弧构成。结点中的符号表示进行什么操作。弧代表结点之间的关系及令牌流向。实际上是数据流计算机的机器语言。
名词解释:阵列处理机
又称为并行处理机、SIMD计算机。其核心是一个由多个处理单元构成的阵列,用单一的控制部件来控制多个处理单元对各自的数据进行相同的运算和操作。
解析
名词解释:阵列控制器
阵列控制器实际上是一台计算机,它除了对阵列的处理单元实行控制以外,还能利用本身的内部资源执行一整套指令,用以完成标量操作,且在时间上与各处理单元的数组操作并行进行。
名词解释:分布式存储器的阵列机
它含有多个同样结构的处理单元PE,通过数据寻径网络以一定方式互相连接。每个PE有各自的本地存储器。在阵列控制部件的统一指挥下,实现并行操作。
名词解释:共享存储器的阵列处理机
这类处理机中集中设置存储器。共享的多体并行存储器通过对准网络与各处理单元相连。存储模块的数目等于或略大于处理单元的数目。为了减少存储器访问冲突,必须将数据合理地分配到各存储器模块中。通过灵活高速的对准网络,使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行。
简答题
第一章
- 直接执行微指令的是( 硬件 )。
- 对汇编语言程序员不透明的是( 条件码寄存器 )。
- 由中间开始设计”的“中间”目前多数是在( 传统机器级与操作系统之间 )之间。
- 从计算机系统结构来看,机器语言程序员看到的机器属性是( 编程要用到的硬件组织 )。
- 不同系列的机器之间,实现可移植性的途径不包括( 采用统一的汇编语言 )。
- 利用时间重叠原理实现并行处理的是( 流水处理机 )。
- 多处理机实现的并行主要是( 任务级并行 )。
- 计算机系统结构不包括( 主存速度 )。
- 常见的计算机系统结构分类法有3种:Flynn分类法、冯氏分类法、Handler分类法
- 冯氏分类法用系统的最大并行度对计算机进行分类,大多数传统的位并行单处理机属字___位___方式。串、并
- 由软件实现的机器称为___。在一个计算机系统中,低层机器的属性对高层机器的程序员往往是___的。虚拟机、透明
- ___是促使计算机系统结构发展最重要的因素,___是促使计算机系统结构发展最根本的动力,而___是促使计算机系统结构发展最活跃的因素。软件、应用、器件
- 实现程序可移植性的主要途径有:、、和。统一高级语言、系列机、模拟、仿真
- 软件兼容有___、___、___和___4种。其中___是软件兼容的根本特征。向上兼容、向下兼容、向前兼容、向后兼容、向后兼容
- 广义来说,并行性既包含___性,又包含___性。同时、并发
- 从执行程序的角度看,并行性等级从低到高可分为___并行、___并行、___并行、___并行和___并行。指令内部、指令级、线程级、任务级或过程级、作业或程序级
- 从处理数据的角度,并行性等级从低到高可以分为___、___、___和___4种。字串位串、字串位并、字并位串、全并行
- 计算机系统中提高并行性的技术途径有___、和___3种。在高性能
单处理机的发展中,起主导作用的是___这个途径,它的实现基础是。时间重叠、资源重复、资源共享、时间重叠、部件功能专用化 - 多机系统的耦合度可以分为___和___。松散耦合、紧密耦合
- 同构型多处理机和异构型多处理机所采用的提高并行性的技术途径分别是___和___。资源重复、时间重叠
- 试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答案:
如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种系统结构可以有多种组成。一种组成可以有多种实现。 - Flynn分类法是按照什么把计算机系统的结构分为哪4类?
答案
Flynn分类法是按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为:
1.单指令流单数据流SISD
2.单指令流多数据流SIMD
3.多指令流单数据流MISD
4.多指令流多数据流MIMD - 冯氏分类法是根据什么对计算机进行分类。把计算机分成哪4类?
答案
冯氏分类法是用系统的最大并行度对计算机进行分类。把计算机分成4类具有不同最大并行度的计算机系统结构:
(1)字串位串:这是第一代计算机发展初期的纯串行计算机。
(2)字串位并:这是传统的单处理机,同时处理单个字的多个位。
(3)字并位串:同时处理多个字的同一位(位片)。
(4)字并位并:同时处理多个字的多个位。 - Handler分类法把计算机的硬件结构分成哪3个层次?
答案
Handler分类法把计算机的硬件结构分成3个层次,并考虑它们的可并行-流水处理程度。这3个层次是:
(1)程序控制部件(PCU)的个数k;
(2)算术逻辑部件(ALU)或处理部件(PE)的个数d;
(3)每个算术逻辑部件包含基本逻辑线路(ELC)的套数w。 - 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。
答案
(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。
(2)Amdahl定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
(3)CPU性能公式。
执行一个程序所需的CPU时间 = IC ×CPI ×时钟周期时间
(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。 - 计算机系统“由中间开始设计”,其“中间”指的是什么地方?这样设计的好处是什么?
答案
“中间”指的是多级层次结构中的软硬件交界面,即传统机器级与操作系统机器级之间。
这样设计,能合理地进行软硬件的功能分配,优化软硬件设计,可为软件和应用提供更多更好地支持;软件和硬件并行设计可以缩短设计周期。 - 硬件和软件在什么意义上是等效的?在什么意义上是不等效的?
答案
硬件和软件在实现逻辑功能上是等效的。在原理上,用软件实现的功能完全可以用硬件或固件来实现;用硬件实现的功能也可以用软件进行模拟完成。
但在速度、价格、实现的难易程度上是不同的。对于任何一种功能来说,用软件实现的优点是设计容易、修改简单,而且可以减少硬件成本。但其缺点是所实现的功能的速度较慢。用硬件实现的优点是速度快、性能高,但它修改困难,灵活性差。 - 存储程序计算机在系统结构上的主要特点是什么?
1)机器以运算器为中心。(2)采用存储程序原理。程序(指令)和数据放在同一存储器中,并且没有对两者加以区分。指令和数据一样可以送到运算器进行运算,即由指令组成的程序自身是可以修改的。(3)存储器是按地址访问的、线性编址的空间。(4)控制流由指令流产生。(5)指令由操作码和地址码组成。操作码指明本指令的操作类型,地址码指明操作数和操作结果的地址。(6)数据以二进制编码表示,采用二进制运算。 - 系列机概念对计算机发展有什么意义?系列机软件兼容的基本要求是什么?列出几个你所熟知的系列机。
系列机可以实现系统结构相同的计算机之间的软件移植。它较好地解决了软件开发要求系统结构相对稳定与器件、硬件技术迅速发展的矛盾。
系列机软件兼容的基本要求是保证向后兼容,力争向上兼容。
IBM公司的IBM370系列,Intel公司的x86系列都是较典型的系列机 - 试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答案
答:如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种体系结构可以有多种组成。一种组成可以有多种实现。 - 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。
答案
答:(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU性能公式。执行一个程序所需的CPU时间 = IC ×CPI ×时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。 - 分别从执行程序的角度和处理数据的角度来看,计算机系统中并行性等级从低到高可分为哪几级?
答:从处理数据的角度来看,并行性等级从低到高可分为:
(1)字串位串:每次只对一个字的一位进行处理。这是最基本的串行处理方式,不存在并行性;
(2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。已开始出现并行性;
(3)字并位串:同时对许多字的同一位(称为位片)进行处理。这种方式具有较高的并行性;
(4)全并行:同时对许多字的全部位或部分位进行处理。这是最高一级的并行。
从执行程序的角度来看,并行性等级从低到高可分为:
(1)指令内部并行:单条指令中各微操作之间的并行;
(2)指令级并行:并行执行两条或两条以上的指令;
(3)线程级并行:并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位;
(4)任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元;
(5)作业或程序级并行:并行执行两个或两个以上的作业或程序。
第二章
- 不需要编址的数据存储空间是( 堆栈 )。
- 信息按整数边界存储的主要优点是( 访存速度快 )。
- 操作码优化的主要目的是( A.
缩短指令字长
B.
减少程序总位数
C.
增加指令字表示的信息
D.
A、B和C )。 - 平均码长最短的编码是( 哈夫曼编码 )。
- 2-4扩展编码最多可以得到的码点数是( 13 )。
- 面向目标程序优化的思想是( 通过使用频度分析和改进指令系统 增设强功能复合指令代替原来的软件实现 )。
- RISC执行程序的速度比CISC要快的原因是( .
RISC的指令平均执行周期数较少 )。 - CPU中用来存储操作数的存储单元主要有___、和。堆栈、累加器、寄存器
- 可将大多数通用寄存器型指令系统结构分为___、___和___3类。寄存器-寄存器型结构、寄存器-存储器型结构、存储器-存储器型结构
- 对指令系统的基本要求是:、、___、和。完整性、规整性、正交性、高效率、兼容性
- 常用的3种表示分支条件的技术是___、和。
条件码、条件寄存器、比较与分支 - 改变控制流程的4种情况有___、___、和。跳转、分支、过程调用、过程返回
- 当控制指令为无条件改变控制流时,称之为___。为有条件改变控制流时,称之为___。跳转、分支
- 2-4-6扩展编码方法的最短码长是___位,最长码长是___位。最多可编码的码点数为___个。2、6、46
- 指令系统编码格式有___、___和___3种。变长编码格式、固定长度编码格式、混合型编码格式
- 对CISC指令系统可以从___、___和___3个方面进行改进。面向目标程序增强指令功能、面向高级语言的优化实现来改进指令系统、面向操作系统的优化实现改进指令系统
- 区别不同指令系统结构的主要因素是什么?根据这个主要因素可将指令系统结构分为哪3类?
区别不同指令系统结构的主要因素是CPU中用来存储操作数的存储单元。据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。 - 通用寄存器型指令系统结构在灵活性和提高性能方面的优势主要体现在哪几个方面?
答案
主要体现在:
寄存器的访问速度比存储器快很多。
对编译器而言,能更加容易、有效地分配和使用寄存器。寄存器可以用来存放变量。这能带来许多好处:①由于寄存器比存储器快,所以将变量分配给寄存器能加快程序的执行速度;②能够减少对存储器的访问;③可以用更少的地址位来对寄存器进行寻址,从而有效地减少程序的目标代码所占用的空间。 - 常见的3种通用寄存器型机器的优缺点各有哪些?
- 计算机指令系统结构设计所涉及的内容有哪些?
答案
(1) 指令系统功能设计。主要有RISC和CISC两种技术发展方向。 (2) 寻址方式的设计。设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据使用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型。主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。 (4) 寻址方式的表示。可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令系统格式的设计。有变长编码格式、固定长度编码格式和混合型编码格式3种。 - 信息熵H的含义是什么?在优化编码中,H有何作用?
信息熵H的含义是:已知n个码点的使用频度pi,i= 1,2,…,n ,用二进制数对n个码点编码的最短平均码长为:
各种优化编码方法都可得出实际编码的平均码长L,可以由H得出不同编码的信息冗余量R=(L-H)/L。通过比较R的值来衡量不同编码的优劣。 - 简述指令系统结构中采用多种寻址方式的优缺点。
答案
在指令系统结构中采用多种寻址方式可以显著地减少程序的指令条数。但这同时也可能增加实现的复杂度和使用这些寻址方式的指令的执行时钟周期数(CPI)。 - 指令系统的规整性主要包括哪两个方面?并简述其含义。
规整性主要包括对称性和均匀性。对称性是指所有与指令系统有关的存储单元的使用、操作码的设置等都是对称的。均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。 - 简述在指令操作码优化中哈夫曼压缩概念的基本思想。
答:当各种事件发生的概率不均等时,可以对发生概率最高的事件用最短的位数(时间)来表示(处理),而对于出现概率较低的事件,则可以用较长的位数(时间)来表示(处理),从而使总的平均位数(时间)缩短。 - 通常有哪几种指令格式?简述其适用范围。
答案
(1) 变长编码格式。如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。(2)固定长度编码格式。如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。 (3) 混合型编码格式。需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。 - 简述操作数的类型及其相应的表示方法。
操作数的类型主要有:整数(定点)、浮点、十进制、字符、字符串、向量、堆栈等。操作数类型有两种表示方法:(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。 - 数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?
数据结构是指由软件进行处理和实现的各种数据类型。数据结构研究的是这些数据类型的逻辑结构与物理结构之间的关系,并给出相应的算法。数据表示是指计算机硬件能够直接识别、指令系统可以直接调用的数据类型。它一般是所有数据类型中最常用、相对比较简单、用硬件实现比较容易的几种。
确定和引入数据表示的基本原则:(1)系统的效率是否提高,是否减少了实现时间和存储空间;(2)通用性和利用率是否提高。 - 根据CPU性能公式简述RISC指令集结构计算机和CISC指令集结构计算机的性能特点。
CPU性能公式:CPU时间=IC×CPI×T
其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。
相同功能的CISC目标程序的指令条数ICCISC 少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目标程序的执行时间比RISC的更长。 - 从当前的计算机技术观点来看,CISC结构有什么缺点?
1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。(2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5) 在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术(如流水技术)来提高系统的性能。 - 简述RISC结构的设计原则。
1) 选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。 - 试就指令格式、寻址方式和每条指令的周期数(CPI)等方面比较RISC和CISC处理机的指令系统结构。
- 区别不同指令集结构的主要因素是什么?根据这个主要因素可将指令集结构分为哪3类?
区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。 - 指令集应满足哪几个基本要求?
答:对指令集的基本要求是:完整性、规整性、高效率和兼容性。
完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。
规整性主要包括对称性和均匀性。对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。
高效率是指指令的执行速度快、使用频度高。 - 指令集结构设计所涉及的内容有哪些?
答: (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向; (2) 寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式3种。 - 简述CISC指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?
答:主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。
缺点: (1) CISC结构的指令集中,各种指令的使用频率相差悬殊。(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5) 在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。 - 简述RISC指令集结构的设计原则。
答(1) 选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。 - 指令中表示操作数类型的方法有哪几种?
答:操作数类型有两种表示方法:(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。 - 表示寻址方式的主要方法有哪些?简述这些方法的优缺点。
答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。 - 通常有哪几种指令格式,请简述其适用范围。
答: (1) 变长编码格式。如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。(2)固定长度编码格式。如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。 (3) 混合型编码格式。需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。 - 根据CPU性能公式简述RISC指令集结构计算机和CISC指令集结构计算机的性能特点。
答:CPU性能公式:CPU时间=IC×CPI×T
其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。
相同功能的CISC目标程序的指令条数ICCISC 少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目标程序的执行时间比RISC的更长。
第三章
- 以下是某非线性流水线的调度方案:[(2,7);(2,2,7);(3,4);(4);(3,4,7);(4,7);(4,3);(5);(7)]。其中平均延迟最小的等间隔调度方案是( (4) )。
- 与线性流水线最大吞吐率有关的是(
最慢的那一段的执行时间 )。 - 在MIPS的指令流水线中,可能发生的冲突有( 先流入的指令的写操作与后流入的指令的读操作之间的写后读冲突 )。
- 按照流水线所完成的功能来分,流水线可分为___和___。单功能流水线、多功能流水线
- 按照同一时间内各段之间的连接方式来分,流水线可分为___和___。静态流水线、动态流水线
- 按照流水的级别来分,流水线可分为___、和。部件级流水线、处理机级流水线、处理机间流水线
- 按照输出端任务流出顺序与输入端流入的任务顺序是否相同来分,流水线可分为___和___。顺序流动流水线、异步流动流水线
- 按照流水线中是否有反馈回路来分,流水线可分为___和___。线性流水线、非线性流水线
- 有一条非线性流水线,其预约表为F= { 2,4,5 },初始冲突向量为C0=(11010),则对于C0,后续的两个冲突向量分别为___和___。111111、11011
- 流水线在连续流动达到稳定状态后所得到的吞吐率,称为___。最大吞吐率
- 消除流水线瓶颈的方法有___和___两种。细分瓶颈段、重复设置瓶颈段
- 相关有3种类型:___、和。数据相关、名相关、控制相关
- 指令之间的名相关有___和___两种。反相关、输出相关
- 流水线冲突有___、___和___3种类型。结构冲突、数据冲突、控制冲突
- 按照指令读访问和写访问的先后顺序,可以将数据冲突分为___、___和___3种类型。写后读冲突、写后写冲突、读后写冲突
- 由分支指令引起的延迟称为___。分支延迟
- 延迟分支方法有3种调度策略:___、和。从前调度、从目标处调度、从失败处调度
- 基本的MIPS流水线分为5个段,分别是:、、___、和。取指令周期、指令译码/读寄存器周期、执行/有效地址计算周期、存储器访问/分支完成周期、写回周期
- 简述流水线技术的特点。
答案
流水技术有以下特点:
(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。
(2) 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。
(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。
(4) 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
(5) 流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。 - 流水寄存器的作用是什么?
答案
流水寄存器的作用是在相邻的两段之间传送信息,提供后面流水段要用到的信息。 - 简述非线性流水线调度所要解决的问题。
在非线性流水线中,由于反馈回路的存在,有可能会出现多个任务争用同一段的冲突现象。究竟应按什么样的时间间隔向流水线输入新任务,才能既不发生冲突,又能使流水线有较高的吞吐率和效率?这就是非线性流水线调度所要解决的问题。 - 解决流水线结构冲突的方法有哪些?
(1)流水化功能单元;(2)资源重复;(3)暂停流水线。 - 简述通过软件(编译器)来减少分支延迟的3种方法。这些方法的共同特点是什么?
答案
(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。
(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。
(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。
3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。 - 简述延迟分支方法中的3种调度策略的优缺点。
- 指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?各有何优缺点。
答:(1)指令的顺序执行是指指令与指令之间顺序串行。即上一条指令全部执行完后,才能开始执行下一条指令。
优点:控制简单,节省设备。缺点:执行指令的速度慢,功能部件的利用率低。
(2)指令的重叠指令是在相邻的指令之间,让第k条指令与取第k+l条指令同时进行。重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。与顺序方式相比,功能部件的利用率提高了,控制变复杂了。
(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。依靠提高吞吐率来提高系统性能。流水线中各段的时间应尽可能相等 - 简述先行控制的基本思想。
答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术是指预取指令、对指令进行加工以及预取操作数等。
采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。
采用先行控制技术可以实现多条指令的重叠解释执行。 - 减少流水线分支延迟的静态方法有哪些?
答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。
(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。
(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。
3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。 - 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?
答 (1)横向处理方式:若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。 (3)纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。 - 可采用哪些方法来提高向量处理机的性能?
答:可采用多种方法:
1.设置多个功能部件,使它们并行工作;
2.采用链接技术,加快一串向量指令的执行;
3.采用循环开采技术,加快循环的处理;
4.采用多处理机系统,进一步提高性能。
第四章
- Cray-1的流水线是( 多条单功能流水线 )。
- Cray-1向量处理机要实现指令间的链接,必须满足下列条件中的(
源向量、功能部件都不相同,指令有写后读冲突 )。 - Cray-1向量处理机启动存储器、流水部件及寄存器打入各需一拍,现有向量指令串:
V3←存储器 (从存储器中取数:6拍)
V4←V0+V1 (向量加:6拍)
V5←V3×V4 (向量乘:7拍)
向量长度均为N,则指令串最短的执行时间是( 16+N拍 )。 - Cray-1的两条向量指令:
V1←V2+V3
V4←V1×V5
属于( 没有功能部件冲突和源向量冲突,可以链接 )。 - 向量流水处理机采用___结构或___结构。存储器-存储器型、寄存器-寄存器型
- Cray-1向量处理的一个显著特点是:只要不出现___冲突和___冲突,各Vi之间和各功能部件之间都能并行工作。向量寄存器Vi、功能部件
- 把能在同一个时钟周期内一起开始执行的几条向量指令称为一个___。编队
- 在向量流水处理机上,向量指令序列中的一个编队内的指令可以___执行,编队执行时间为编队内所有的向量指令执行时间的___。同时、最大值
- 采用链接技术时,向量指令能够链接执行必须满足哪些条件?答案
(1)向量指令之间要求无Vi冲突和无功能部件使用冲突。
(2)只有在前一条指令的第一个结果元素送入结果向量寄存器的那一个时钟周期才可以进行链接。如果错过这个时刻,就无法进行链接了。
(3)当一条向量指令的两个源操作数分别来自前面紧邻的两条指令的结果时,要求这两条指令产生运算结果的时间必须相等,即要求有关功能部件的通过时间相等。
(4)链接执行的向量指令的向量长度必须相等,否则无法进行链接。
第五章
- 开发指令级并行的方法主要有两类:基于硬件的___方法以及基于软件的___方法。动态开发、静态开发
- 如果一串连续的代码除了入口和出口以外,没有其它的分支指令和转入点,则称之为一个___。基本程序块
- 说出两种比较典型的动态调度算法:和。记分牌方法、Tomasulo算法
- 要扩充Tomasulo算法支持前瞻执行,需将Tomasulo算法中的“写结果”段分为___和___两个段。写结果、指令确认
- 前瞻执行允许指令___执行,但要求按___确认。乱序、程序顺序
- Tomasulo算法中换名功能是由___来完成;而在前瞻执行机制中,换名功能是由___来完成的。保留站的编号、ROB
- 静态指令调度技术是优化的___来完成,其基本思想是重排指令序列,拉开具有___的有关指令间的距离。编译器、数据相关
- 动态分支预测的依据是从___指令过去的行为来预测它将来的行为,即根据近期转移是否成功的___记录,来预测下一次转移的___。转移、历史、方向
- 多流出处理机有___和___两种基本风格。超标量、超长指令字VLIW
- 简述开发指令级并行ILP的两种途径。
答案
开发ILP的途径有两种,一种是资源重复,重复设置多个处理部件,让它们同时执行相邻或相近的多条指令;另一种是采用流水线技术,使指令重叠并行执行。 - 为了保证程序执行的正确性,必须保持哪两个最关键的属性?并简述其含义。答案
最关键的两个属性是:数据流和异常行为。
保持异常行为是指:无论怎么改变指令的执行顺序,都不能改变程序中异常的发生情况。即原来程序中是怎么发生的,改变执行顺序后还是怎么发生。这个条件经常被弱化为:指令执行顺序的改变不能导致程序中发生新的异常。
数据流是指数据值从其产生者指令到其消费者指令的实际流动。 - 指令的动态调度有何优点?答案
优点:① 能够处理一些编译时情况不明的相关,并能简化 编译器;② 能够使本来是面向某一流水线优化编译的代码在其他动态调度的流水线上也能高效地执行。
但动态调度的这些优点是以硬件复杂性的显著增加为代价的。 - 记分牌算法中,记分牌中纪录的信息由哪3部分构成?答案
(1)指令状态表:记录正在执行的各条指令已经进入到了哪一段。
(2)功能部件状态表:记录各个功能部件的状态。每个功能部件有一项,每一项由9个字段组成。
(3)结果寄存器状态表Result:每个寄存器在该表中有一项,用于指出哪个功能部件(编号)将把结果写入该寄存器。 - 简述Tomasulo算法的基本思想。其核心思想是:① 记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减小到最少;② 通过寄存器换名来消除WAR冲突和WAW冲突。寄存器换名是通过保留站来实现,它保存等待流出和正在流出指令所需要的操作数。
基本思想:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中。指令的执行结果也是直接送到等待数据的其它保留站中去。因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中的内容。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)。 - 简述Tomasulo算法中,指令流出段所做的主要工作。答案
从指令队列的头部取一条指令。如果该指令的操作所要求的保留站有空闲的,就把该指令送到该保留站(设为r)。并且,如果其操作数在寄存器中已经就绪,就将这些操作数送入保留站r。如果其操作数还没有就绪,就把将产生该操作数的保留站的标识送入保留站r。另外,还要完成对目的寄存器的预约工作,将之设置为接受保留站r的结果。 - 与在Tomasulo算法之前提出的其它更简单的动态调度方法相比,Tomasulo算法具有哪两个主要的优点?答案
(1)冲突检测逻辑和指令执行控制是分布的(通过保留站和CDB实现)。
每个功能部件的保留站中的信息决定了什么时候指令可以在该功能部件开始执行。如果有多条指令已经获得了一个操作数,并同时在等待同一运算结果,那么这个结果一产生,就可以通过CDB同时播送给所有这些指令,使它们可以同时执行。
(2)消除了WAW冲突和WAR冲突导致的停顿。
这是通过使用保留站进行寄存器换名,并且在操作数一旦就绪就将之放入保留站来实现的。 - 采用动态分支预测技术的目的是什么?在所采用的方法中,需要解决哪些关键问题?答案
目的有两个:预测分支是否成功和尽快找到分支目标地址(或指令),从而避免控制相关造成流水线停顿。
需要解决两个关键问题:① 如何记录分支的历史信息;② 如何根据这些信息来预测分支的去向,甚至提前取出分支目标处的指令。 - 给出采用分支目标缓冲器BTB后,在流水线3个阶段(IF段、ID段、EX段)所进行的相关操作?
- 基于硬件的前瞻执行是把哪3种思想结合在了一起?答案
(1)动态分支预测。用来选择后续执行的指令。
(2)在控制相关的结果尚未出来之前,前瞻地执行后续指令。
(3)用动态调度对基本块的各种组合进行跨基本块的调度。 - ROB中的每一项由哪4个字段组成?并简述其含义。答案
(1)指令类型:指出该指令是分支指令、store指令或寄存器操作指令。
(2)目的地址:给出指令执行结果应写入的目的寄存器号(如果是load和ALU指令)或存储器单元的地址(如果是store指令)。
(3)数据值字段:用来保存指令前瞻执行的结果,直到指令得到确认。
(4)就绪字段:指出指令是否已经完成执行并且数据已就绪。 - 简述采用前瞻执行机制后,指令确认段所做的主要工作。答案
这一阶段对分支指令、store指令以及其它指令的处理不同。
① 对于除分支指令和store指令以外的指令来说,当该指令到达ROB队列的头部而且其结果已经就绪时,就把该结果写入该指令的目的寄存器,并从ROB中删除该指令。
② 对store指令的处理与①类似,只是它是把结果写入存储器。
③ 当预测错误的分支指令到达ROB队列的头部时,就表示是错误的前瞻执行。这时要清空ROB,并从分支指令的另一个分支重新开始执行。
④ 当预测正确的分支指令到达ROB队列的头部时,该指令执行完毕。 - 与VLIW处理机相比,超标量处理机有什么优点?答案
(1)超标量结构对程序员是透明的,处理机能自己检测下一条指令是否能流出,不需要由编译器或专门的变换程序对程序中的指令进行重新排列;
(2)即使是没有经过编译器针对超标量结构进行调度优化的代码或是旧的编译器生成的代码也可以运行,当然运行的效果不会很好。 - 指令多流出处理器的流出能力主要受哪3个方面的影响?
答案
(1)程序所固有的指令级并行性;
(2)硬件实现上的困难。多流出的处理器需要大量的硬件资源,随着每个时钟周期流出指令数的增加,所需的硬件成正比例地增长,所需的存储器带宽和寄存器带宽也大大增加了,这样的带宽要求必然导致大量增加硅片面积,加大面积就导致时钟频率下降、功耗增加、可靠性降低等一系列问题。
(3)超标量和超长指令字处理器固有的技术限制。
第六章
- 简述踪迹调度和超块调度的基本过程?
踪迹调度过程分为两步。第一步称为踪迹选择,负责从程序的控制流图中选择执行频率较高的路径,每条路径就是一条trace。第二步称为踪迹压缩,即对已生成的trace进行指令调度和优化,尽可能地缩短其执行时间。在踪迹调度中,由于选出的trace都是执行频率很高的路径,减少它们的执行开销有助于缩短程序的总执行时间,这就是踪迹调度能够提升性能的最根本原因。
超块是只能拥有一个入口,但可以拥有多个出口的trace结构,可被视作一种扩展的基本块结构,其构造过程与trace非常相似。但与踪迹调度相比,超块调度可以简化补偿代码生成过程,并降低指令调度的复杂度,但由于其结构的限制(只有一个入口),超块结构的目标代码体积也会大大增加。 - 试比较循环展开和软流水这两种编译优化技术的异同。
它们都可以开发循环级并行,即不同叠代的指令之间的并行。但是,循环展开增加了代码体积,减少了循环次数;而软流水对代码体积和循环次数的影响都很小。
这两种技术所消除的流水线开销是完全不同的:循环展开主要减少由分支指令和修改循环索引变量的指令所引起的循环控制开销,如将某循环展开4次后,循环控制开销将减少为原来的四分之一,但执行每个叠代时,用于充满和排空流水线的开销并不会减少。软流水则恰恰减少了这部分开销,使叠代内的指令级并行达到最大。
因此它们往往被结合在一起使用。 - 有哪些方法可以处理由前瞻指令引起的异常?
通常有四种方法处理前瞻指令引起的异常:
立即处理,不管它们是否由被前瞻执行的指令引发。
借助专门的检测指令判断是否需要进行异常处理。
poison位方法。
基于硬件的前瞻执行机制,待确认前瞻执行正确后才处理。 - EPIC结构必须符合哪两个基本特点?
一般来说,EPIC结构必须符合以下两个基本特点。第一,指令级并行主要由编译器负责开发,处理器应为保证代码正确执行提供必要的硬件支持,只有在这些硬件机制的辅助下这些优化技术才能高效完成。第二,系统结构必须提供某种通信机制,使得流水线硬件能够了解编译器“安排”好的指令执行顺序。EPIC并不仅仅是采用了多种高级编译优化技术的VLIW结构,这只不过是它的一个特征。EPIC的第二个特征,有效的软硬件通信机制,才是它与VLIW之间的本质区别。 - 结合IA-64体系结构分析谓词执行机制需要编译器和流水线硬件分别提供哪些支持?
首先,提供谓词寄存器。IA-64设置了大量的谓词寄存器(64个),用于保存指令的执行条件,每个谓词寄存器的宽度都是1位。
其次,修改指令格式。所有类型的IA-64操作都可以按照谓词执行方式执行,每个操作41位编码的最低6位指明了保存执行条件的谓词寄存器。
第三,增加专门的谓词计算指令。为了更高效地确定指令的执行条件(谓词寄存器的值),IA-64专门增强了比较(compare)操作和测试(test)操作的功能。它们都可以同时修改谓词寄存器的值,这样就可以同时计算出一个分支结构then部分和else部分各指令的谓词。IA-64的比较操作更是支持多种不同的比较模式,可以同时完成多个比较,大大地提高了谓词的计算效率。
第四,提供专门的异常处理机制。
第五,流水线硬件决定何时将执行条件不成立的谓词指令转换为空操作,可以有两种选择:流水线前端指令流出时,或是流水线后端结果确认时。
第六,提供能够完成if-conversion的编译器。 - 试分析造成VLIW目标代码编码效率低的原因。如何解决这一问题?
造成VLIW目标代码编码效率低的原因主要有两个:①为了消除流水线“空转”需要增加循环展开的次数,这增加了目标代码的体积;②很难从应用程序中找到足够多的并行指令填满VLIW指令中的每一个槽,实际应用中还经常会出现一条VLIW指令中所有操作都是nop的情况。
使用代码压缩/还原技术可以减少VLIW目标代码体积过大带来的性能损失:VLIW目标代码被压缩后保存在硬盘中,只保留指令中非nop操作的信息;程序运行时,当代码被加载到指令Cache时或译码时再将其解压缩,还原出所含的nop操作。
第七章
- 虚拟存储器主要是为了解决( 扩大存储系统的容量 )。
- 与全相联映象相比,组相联映象的优点是( 目录表小 )。
- 按Cache地址映象的块冲突概率从高到低的顺序是( 直接映象、组相联映象、全相联映象 )。
- 组相联映象、LRU替换算法的Cache存储器,不影响Cache命中率的是( 增大主存容量 )。
- 下列说法不正确的是( 多体存储器高位交叉编址能提高存储器频宽 )。
- 存储层次的性能参数有___、___、___和___4个。存储容量、平均每位价格、命中率、平均访问时间
- 存储器层次结构设计技术的基本依据是程序的___原理,它包括___和___两方面。局部性、空间局部性、时间局部性
- 主存—辅存”层次的目的是为了弥补主存___的不足;“Cache—主存”层次的目的是为了弥补主存___的不足。容量、速度
- 设有一个“Cache-主存”层次,Cache为8块,主存为16块;试分别对于以下2种情况,计算访存块地址为6时的索引(index)。(1)组相联,每组两块;索引为___; (2)直接映象;索引为___。01、0
- 存储层次要解决的4个问题是___、___、和。映像规则、查找方法、替换算法、写策略
- 在“Cache—主存”层次中, CPU的访存地址被分割为___和___两部分。块地址、块内位移
- Cache存储器采用组相联映像是指组间___映象,组内各块之间是___映像。全相联映像、直接映像
- 当组相联的路数n变为1时,组相联就变成了___,当组数G变为1 时,组相联就变成了___。直接映像、全相联映像
- 在Cache存储器中,用比较对法实现LRU替换算法时,当Cache的块数为8时,需要的触发器个数为___。28
- 在“Cache—主存”层次中,主存的更新算法有___和___两种。按写分配法、不按写分配法
- 在“Cache—主存”层次中,写回法Cache一般采用___更新主存,写直达法Cache一般采用___更新主存。按写分配法、不按写分配法
- 随机法中___选择被替换的块。先进先出法中选择___作为被替换的块。最近最少使用法中选择___作为被替换的块。随机地 、最早调入的块 、近期最少被访问的块
- 按照产生不命中的原因不同,可以把不命中分为___、___和___3类。强制性不命中、容量不命中、冲突不命中
- 相联度越高,___就越少;___不受Cache容量的影响,但___却随着容量的增加而减少;___和___不受相联度的影响。冲突不命中、强制性不命中、容量不命中、强制性不命中、容量不命中
- 对于给定的Cache容量,当块大小增加时,不命中率开始是___,后来反而___。 Cache容量越大,使不命中率达到最低的块大小就___。下降、上升、越大
- 增加块大小的方法在降低不命中率的同时会增加___,而提高相联度会增加___。不命中开销、命中时间
- 伪相联既能获得___Cache的低不命中率又能保持___Cache的命中速度。多路组相联、直接映象
- 操作系统和用户程序对于同一个物理地址可能采用两种以上不同形式的虚拟地址来访问,这些地址称为___或___。同义、别名
- 在相同的器件条件下,如果要提高主存的带宽,可以采用___和___两种并行存储器结构。增加存储器的宽度、多体交叉存储器
- 拟存储器采用___映象规则,替换算法采用___算法,采用___。全相联、最近最少使用LRU、写回策略
- 简述“Cache—主存”层次与“主存—辅存”层次的区别。
- 地址映象方法有哪几种?它们各有什么优缺点?
答:(1) 全相联映象。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映象。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映象。组相联是直接映象和全相联的一种折衷。 - 降低Cache失效率有哪几种方法?简述其基本思想。
答:常用的降低Cache失效率的方法有下面几种:
1.增加Cache块大小。增加块大小利用了程序的空间局部性。
2.增加Cache的容量。
3.提高相联度,降低冲突失效。
4.伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
1.硬件预取技术。在处理器提出访问请求前预取指令和数据。
2.由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
3.编译器优化,通过对软件的优化来降低失效率。
4.“牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。 - 简述减小Cache失效开销的几种方法。
让读不命中优先于写。
写缓冲合并。
请求字处理技术。
非阻塞Cache或非锁定Cache技术。
采用两级Cache。 - 通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。
答:(1)数组合并。通过提高空间局部性来减少失效次数。有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。(2)内外循环交换。循环嵌套时,程序没有按数据在存储器中的顺序访问。只要简单地交换内外循环,就能使程序按数据在存储器中的存储顺序进行访问。(3)循环融合。有些程序含有几部分独立的程序段,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。(4)分块。通过改进时间局部性来减少失效。分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。 - 在“Cache—主存”层次中,主存的更新算法有哪两种?它们各有什么特点?
(1)写直达法。易于实现,而且下一级存储器中的数据总是最新的。
(2)写回法。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。 - 组相联Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出结论:采用组相联一定能带来性能上的提高?为什么?
不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关 - 写出三级Cache的平均访问时间的公式。
解:平均访存时间 = 命中时间+失效率×失效开销
只有第I层失效时才会访问第I+1。
设三级Cache的命中率分别为HL1、 Hl2、 HL3,失效率分别为Ml1、Ml2、ML3,第三级Cache的失效开销为PL3。
平均访问时间TA =HL1+Ml1{Hl2+Ml2(HL3+ML3×PL3)} - 替换算法有哪几种?它们各有什么优缺点?
1)随机法。简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其不命中率比LRU的高。(2)先进先出法。容易实现。它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。(3)最近最少使用法LRU。 不命中率最低。但是LRU比较复杂,硬件实现比较困难。 - 写策略主要有哪两种?它们各有什么优点?
(1)写直达法。 易于实现,而且下一级存储器中的数据总是最新的。(2)写回法。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。 - 简述伪相联的基本思想。
采用这种方法时,在命中情况下,访问Cache的过程和直接映象Cache中的情况相同;而发生不命中时,在访问下一级存储器之前,会先检查Cache另一个位置(块),看是否匹配。确定这个另一块的一种简单的方法是将索引字段的最高位取反,然后按照新索引去寻找伪相联组中的对应块。如果这一块的标识匹配,则称发生了伪命中。否则,就只好访问下一级存储器。 - 增加块大小导致Cache不命中率先下降后上升的原因是什么?
(1)一方面它减少了强制性不命中,因为局部性原理有两方面的含义:时间局部性和空间局部性,增加块大小利用了时间局部性;
(2)另一方面,由于增加块大小会减少Cache中块的数目,所以有可能会增加冲突不命中。在Cache容量较小时,甚至还会增加容量不命中。刚开始增加块大小时,由于块大小还不是很大,上述的第一种作用超过第二种作用,从而使不命中率下降。但等到块大小较大时,第二种作用超过第一种作用,使不命中率上升。
知识点7.3、降低Cache不命中率的方法: - 请求字处理技术有哪两种具体的实现方法?
(1) 尽早重启动: 在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行。
(2)请求字优先: 调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立刻送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。请求字优先也称为回绕读取或关键字优先。 - 简述采用两级Cache的基本思想。
通过在原有Cache和存储器之间增加另一级Cache,构成两级Cache,我们可以把第一级Cache做得足够小,使其速度和快速CPU的时钟周期相匹配,而把第二级Cache做得足够大,使它能捕获更多本来需要到主存去的访问,从而降低实际不命中开销。 - 简述采用容量小且结构简单的Cache所带来的好处。
(1)可以有效地提高Cache的访问速度。因为硬件越简单,速度就越快。小容量Cache可以实现快速标识检测,对减少命中时间有益。(2)Cache足够小,可以与处理器做在同一芯片上,以避免因芯片外访问而增加时间开销。 (3) 保持Cache结构简单可采用直接映象Cache。直接映象Cache的主要优点是可以让标识检测和数据传送重叠进行,这样可以有效地减少命中时间。 - 简述“虚拟索引+物理标识” Cache的基本思想。它有什么优缺点?
直接用虚地址中的页内位移(页内位移在虚→实地址的变换中保持不变)作为访问Cache的索引,但标识却是物理地址。CPU发出访存请求后,在进行虚→实地址变换的同时,可并行进行标识的读取。在完成地址变换之后,再把得到的物理地址与标识进行比较。
优点:兼得虚拟Cache和物理Cache的好处。
局限性:Cache容量受到限制。 - 在设计Cache时并非都采用虚拟Cache,为什么?
原因:(1)每当进行进程切换时,由于新进程的虚拟地址(有可能与原进程的相同)所指向的物理空间与原进程的不同,故需要清空Cache。 (2) 操作系统和用户程序对于同一个物理地址可能采用两种以上不同形式的虚拟地址来访问。它们可能会导致同一个数据在虚拟Cache中存在两个副本。 - 单体多字并行存储器的访存效率不高,其原因是什么?
(1)单体多字并行存储器一次能读取m个指令字。如果这些指令字中有分支指令,而且分支成功,那么该分支指令之后的指令是无用的。
(2)单体多字并行存储器一次取出的m个数据不一定都是有用的,而另一方面,当前执行指令所需要的多个操作数也不一定正好都存放在同一个长存储字中。由于数据存放的随机性比程序指令存放的随机性大,所以发生这种情况的概率较大。
(3)在这种存储器中,必须凑齐了m个数之后才能一起写入存储器。如果只写个别字,就必须先把相应的长存储字读出来,放到数据寄存器中,然后在地址码的控制下修改其中的一个字,最后再把长存储字写回存储器。
(4)当要读出的数据字和要写入的数据字处于同一个长存储字内时,读和写的操作就无法在同一个存储周期内完成。
第八章
- 输入输出数据不经过CPU内部寄存器的输入输出方式是( 直接存储器访问方式 )。
- 在配置有通道的计算机系统中,用户程序需要输入输出时,引起的中断是( 访管中断 )。
- 当计算机系统通过执行通道程序完成输入输出工作时,执行通道程序的是( 通道 )。
- 磁盘存储器适合于连接到( 选择通道或数组多路通道 )。
- 在由多个通道组成的I/O系统中,I/O系统的最大流量是( .
各通道最大流量之和 )。 - 输入/输出系统包括___和___。I/O设备、I/O设备与处理机的连接
- 评价I/O系统性能参数主要有:、、和。连接特性、I/O系统的容量、响应时间、吞吐率
- MTTR是指___,MTTF是指___。平均修复时间、平均无故障时间
- 磁盘阵列中,数据交叉存放的粒度有___和___之分。前者是在概念上把数据分割成相对___的单位交叉存放,而后者是把数据以相对___的单位交叉存放。细粒度、粗粒度、较小、较大
- 实现盘阵列的方式主要有___、___和___3种。软件方式、阵列卡方式、子系统方式
- 按用途分类,总线可分为___总线和___总线。CPU-存储器、I/O
- 按设备定时方式分类,总线可分为___和___。同步总线、异步总线通过通道完成一次输入输出工作,
- CPU需要两次调用操作系统的管理程序,第1次调用是为了___,第2次调用是为了___。编制通道程序 、进行正常结束的登记等工作或进行异常处理
- 通道的主要硬件包括___和___两部分。寄存器部分、控制部分
- 通道分为___、___和___3种类型。字节多路通道、选择通道、数组多路通道
- 字节多路通道实际流量是___;数组多路通道的实际流量是___。
- 连接在这个通道上的所有设备的数据传输率之和、连接在这个通道上的所有设备中数据流量。最大的那一个
- 在通道方式I/O传输过程中,用户经由___指令来使用外设。进管后___要编制___。CPU在执行完___指令后,通道就可以与其并行工作。防管、管理程序、通道程序、启动I/O
- 为保证通道能够正常工作,通道的___流量应该大于或等于通道的___流量。最大、实际
- 简述提高系统组成部件的可靠性的两种方法。
提高系统组成部件的可靠性的方法:有效构建方法、纠错方法。
有效构建是指在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。
纠错方法是指在系统构建中采用容错的方法。这样即使出现故障,也可以通过容错信息保证系统正常工作。 - RAID有哪些分级?各有何特点?
(1)RAID0。亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。(2)RAID1。亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。(3)RAID2。位交叉式海明编码阵列。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。(4)RAID3。位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。(5)RAID4。专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。(6)RAID5。块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。(7)RAID6。双维奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。 - 大多数磁盘阵列的组成可以用哪两个特征来区分?
(1)数据交叉存放的粒度;(2)冗余数据的计算方法以及在磁盘阵列中的存放方式。 - 同步总线和异步总线各有什么优缺点?
(1) 同步总线。同步总线上所有设备通过统一的总线系统时钟进行同步。同步总线成本低,因为它不需要设备之间互相确定时序的逻辑。但是同步总线也有缺点,总线操作必须以相同的速度运行。 (2) 异步总线。异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。设备之间的信息传送用总线发送器和接收器控制。异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。但在传输时,异步总线需要额外的同步开销。 - 简述通道的主要功能。
(1) 接受CPU发来的I/O指令,根据指令要求选择一台指定的外围设备与通道相连接。 (2) 执行CPU为通道组织的通道程序,从主存中取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。 (3) 给出外围设备的有关地址,即进行读/写操作的数据所在的位置。 (4) 给出主存缓冲区的首地址,这个缓冲区用来暂时存放从外围设备上输入的数据,或者暂时存放将要输出到外围设备中去的数据。(5) 控制外围设备与主存缓冲区之间数据交换的个数,对交换的数据个数进行计数,并判断数据传送工作是否结束。 (6) 指定传送工作结束时要进行的操作。 (7) 检查外围设备的工作状态是正常或故障。根据需要将设备的状态信息送往主存指定单元保存。 (8) 在数据传输过程中完成必要的格式变换。 - 简述通道完成一次数据传输的主要过程。
(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 (2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。 (3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。 - 通道分为哪3种类型?它们分别为哪种外围设备服务?
(1)字节多路通道。一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多高速外围设备(如磁盘存储器等)服务的。 - 简述字节多路通道、数组多路通道和选择通道的数据传送方式。
字节通道每连接一台外设,只传送一个字节,然后又选择与另一台设备连接,并传送一个字节,如此反复。以分时方式轮流为多台低速外设服务。
选择通道在一段时间内只能单独为一台高速外设服务,当这台设备的数据传送工作全部完成后,通道才能为另一台设备服务。选择通道实际上是逐个为物理上连接的几台高速外设服务的。
数组多路通道每连接一台高速设备后,就连续传送一个k个字节的数据块,传送完成后,又与另一台高速设备连接,同样连续传送一个k个字节的数据块。 - 在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?如何克服?
1)存储器中可能不是CPU产生的最新数据 ,所以I/O系统从存储器中取出来的是陈旧数据。
(2)I/O系统与存储器交换数据之后,在Cache中,被CPU使用的可能就会是陈旧数据。
第一个问题可以用写直达Cache解决。
第二个问题操作系统可以保证I/O操作的数据不在cache中。如果不能,就作废Cache中相应的数据。 - 试比较三种通道的优缺点及适用场合。
(1)字节多路通道。一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多台高速外围设备(如磁盘存储器等)服务的。 - 在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?如何克服?
1)存储器中可能不是CPU产生的最新数据 ,所以I/O系统从存储器中取出来的是陈旧数据。
(2)I/O系统与存储器交换数据之后,在Cache中,被CPU使用的可能就会是陈旧数据。
第一个问题可以用写直达Cache解决。
第二个问题操作系统可以保证I/O操作的数据不在cache中。如果不能,就作废Cache中相应的数据。
第九章
- 逆均匀洗牌函数得到输出端地址的方法是把输入端二进制地址( 循环右移一位 )。
- 32个结点的立方体连接的互连函数的个数是( 5 )。
- 64个结点的PM2I函数的个数是( 12 )。
- 用循环函数形式表示8个结点的PM2+1函数,应该是( (0 2 4 6)(1 3 5 7) )。
- Illiac Ⅳ阵列处理机中,各处理单元之间所用的互连函数是( PM2±0和PM2±n/2 )。
- 结构不对称的静态互连网络是( 线性阵列 )。
- 结构对称的静态互连网络是( 超立方体 )。
- 下列静态互连网络中,可扩展性最差的是( 立方体 )。
- 多级混洗(均匀洗牌)置换网络又称为( Omega网络 )。
- Omega网络采用( 4功能2×2开关,单元控制方式 )。
- 三级STARAN网络对8个输入端实现2组4元分组交换后,输入端端号序列[0 1 2 3 4 5 6 7]置换连接的输出端端号序列为(
[ 3 2 1 0 7 6 5 4] )。 - 下列4种消息寻径方式中,不属于包交换的消息寻径方式是( 线路交换寻径 )。
- 虫蚀寻径以流水方式在各寻径器中顺序传送的是( 片 )。
- 互连网络有3大要素:___、和。互连结构、开关元件、控制方式
- 在保持网络拓扑结构不变的情况下,网络可扩充的结点数越多,则称网络的___越好。可扩展性
- 为了反映不同互连网络的连接特性,每种互连网络可用一组___来描述,它表示相互连接的___端号和___端号之间的一一对应关系。互连函数、输入、输出
- 设C为立方体互连函数,σ为均匀洗牌函数,β为蝶式函数,ρ为反位序函数,则C3(0110)= ___,σ(3)(0110)= ___,β(0110)= ___,ρ(2)(0110)= ___。1110、0101、0110、1010
- 用互连网络互连16个处理机,编号为0~15。若互连函数为立方体函数C2(C0),则7号处理机连至___号处理机。若互连函数为移数函数PM2+3,则7号处理机连至___号处理机。2 、15
- N个结点的PM2I单级网络的最大距离为___。log2(N/2)
- N个端的混洗交换网络中,最远的两个入、出端的二进制编号是___和___,其最大距离为2log2N-1。全“0”、全“1”
- 0~7共8个处理单元经C2+C0互连,第7号处理单元将连至第___号处理单元。2
- 互连网络的结点度是指连接到结点上的___。在有向图中,结点度是___和___之和。边数(通道数)、入度、出度
- 由N个结点用N-1条链路连成的线性阵列,内部结点的度d=,端结点的度d=【2,直径D=,等分宽度b=___2、1、N-1、1
- 各种多级互连网络的区别在于所用___、___和___的不同。开关模块、控制方式、级间互连模式
- 2×2开关有___、___、___和___4种连接方式。直送、交叉、上播、下播
- 一般来说,一个N输入的多级立方体网络有___级,每级用___个2×2开关模块,共需要___个开关。log2N、N/2、log2N×N/2
- 在STARAN网络中,采用级控制时,所实现的是___功能;而采用部分级控制时,则能实现___功能。交换、移数
- 在SIMD互连的多级网络中,实现移数函数功能中最便宜的方案是用___多级控制,且控制方式采用___。立方体 、部分级
- 在消息传递机制中,消息一般是由若干个___组成,包的长度是___,但一条消息中所包含的包的个数是___。包又可以进一步分成一些更小的固定长度的单位,称为___。包、固定的、可变的、片
- 消息寻径方式可以分为___和___两大类。包交换又分为___、___和___3种方式。线路交换 、包交换、存储转发 、虚拟直通、虫蚀
- 当两个包在传输过程中争用某个中间结点的同一条输出通道时,有4种方法解决包冲突问题。这4种方法是___、___、和
虚拟直通寻径方法、阻塞流控制方法、扬弃并重发方法 、阻塞后绕道传送 - 在互连网络中,如果消息包的寻径路径是预先唯一地确定好了的,与网络的状况无关,那么,这一类寻径方法称为___寻径方法。如果两个消息包在某个结点产生冲突时,被阻塞包可根据目的地址选择其他通道到达目的结点,那么,这一类寻径方法称为___寻径方法。确定、自适应
- 评价网络寻径性能的参数是通道流量和通信时延。网络通道流量可用传输有关消息所使用的___来表示。通信时延则用包的【】来表示。通道数、最大传输时间
- 多计算机互连网络中会出现4种通信模式。一对一的通信模式称为___模式;一对多的通信模式称为___模式;一对全体的通信模式称为___模式;多对多的通信模式称为___模式。单播、选播、广播、会议
- SIMD立方体多级互连网络中,第i级的所有开关用i+1个控制信号控制,称此为___控制。部分级
- Illiac Ⅳ 8×8的阵列中,任意两个处理单元之间通信的最短距离不会超过___。7
- 评价互连网络性能的主要参数有哪些?
(1) 通信时延——从源结点到目的结点传送一条消息所需的总时间。 (2) 网络时延——通道时延与选路时延的和。它是由网络硬件特征决定的,与程序行为和网络传输状态无关。(3) 端口带宽——单位时间内从该端口传送到其他端口的最大信息量。 (4) 网络的聚集带宽——网络从一半结点到另一半结点,单位时间内能够传送的最大信息量。 (5 ) 等分带宽——等分带宽与等分宽度对应的切平面中,所有边合起来单位时间所能传送的最大信息量。 - k元n-立方体网络中,参数k和n的含义是什么?它们与网络中结点数N满足什么关系?
参数n是立方体的维数,k是基数或者说是沿每个方向的结点数(多重性)。这两个数与网络中结点数N的关系为:N=kn,(n=logkN) - 多级互连网络的控制方式指什么?通常有哪几种?
控制方式是指对各个开关模块进行控制的方式,它可以有3种:
① 级控制:每一级的所有开关只用一个控制信号进行控制,这些开关只能同时处于同一种状态;
② 单元控制:每一个开关都有一个独立的控制信号,可各自处于不同的状态;
③ 部分级控制:第i级的所有开关分别用i+1个信号控制,0≤i≤n-1,n为级数。 - N=16的4级立方体互连网络,级号从输入到输出为0~3,采用级控制,如将其中的第1级开关处于“直连”,不能实现哪些结点之间的配对通信?为什么?
不能实现含C1的配对通信。即0、1、4、5、8、9、C、D不能与2、3、6、7、A、B、E、F之间通信。因为C(x3x2x1x0)与x3x2x1x0之间,第1级开关为“直连”,则x1为“0”的不能与x1为“1”的处理机号通信,即号为××0×的处理机不能与号为××1×的处理机配对通信。 - 试比较可用于动态互连的总线、交叉开关和多级互连网络的硬件复杂度和带宽。
总线互连的复杂性最低,成本也是最低。其缺点是每台处理机可用的带宽较窄。交叉开关是最昂贵的,因为其硬件复杂性以n2上升,所以其成本最高。但是交叉开关的带宽和寻径性能最好。当网络的规模较小时,它是一种理想的选择。多级互连网络的复杂度和带宽介于总线和交叉开关之间,是一种折中方案。其主要优点是采用模块化结构,可扩展性较好。不过,其时延随网络级数的增加而上升。另外,由于其硬件复杂度比总线高很多,其成本也不低。 - 在有16个处理器的混洗交换网络中,若要使第0号处理器与第15号处理器相连,需要经过多少次均匀洗牌和交换?
N=16,n=4。 若要使第0号处理器与第15号处理器相连,需要经过4次混洗和3次交换。
- 什么是线路交换?它有何优缺点?
线路交换是一种消息寻径方式。在这种方式下,在传递一个信息之前,需要先建立一条从源结点到目的结点的物理通路,然后再传递信息。
优点:传输带宽较大,平均传输时延较小,而且使用的缓冲区小。因而适合于具有动态和突发性的大规模并行处理数据的传送。
缺点:需要频繁地建立源结点到目的结点的物理通路,时间开销会很大。 - 简述存储转发的基本思想。它的主要缺点是什么?
存储转发是最简单的分组交换方式。在这种方式中,包是信息传递的基本单位。包从源结点经过一系列中间结点到达目的结点。存储转发要求所经过的每个中间结点都要设置一个包缓冲器,用于保存所传递的包。当一个包到达某个中间结点时,该结点先把这个包全部存储起来,然后在出口链路可用、而且下一个结点的包缓冲器也可用的情况下,传递给下一个结点。 - 简述虫蚀方式的基本思想。它的主要优缺点是什么?
在虫蚀方式中,把信息包“切割”成更小的单位——“片”,信息包中各片的传送是按流水方式进行的。当一个结点把头片送到下一个结点后,如果结点的输出链路空闲,该片立即传送到下一个结点。如果整条链路都空闲,该片就可以立即直达目的结点。当输出通路忙时,结点把该片存储到缓冲器中,直到输出链路空闲。头片送到下一个结点后,就可以把后面的各个片也依次送出,头片每向前传送一个结点,其他数据片就跟着相应地向前“蠕动”一步,就好像一条虫那样蠕动前进。一个结点一旦开始传送一个包中的头片后,这个结点就必须等待这个包的所有片都送出去后,才能传送其他包。不同包的片不能混合在一起传送。优点:① 每个节点的缓冲器较小,易于VLSI实现;② 有较小的网络传输延迟;③ 通道共享性好,利用率高;④ 易于实现选播和广播通信模式。缺点:当消息的一片被阻塞时,整个消息的所有片都将被阻塞在所在结点,占用了结点资源。 - 列出互连网络中的 4 种信息传递方式,并分别给出其传输时延公式
(1)线路交换寻径,传输时延公式为: T = (Lt/B)× D + L/B式中 Lt 为建立路径所需的小信息包长,L 为信息包长,D 为经过的结点数,B 为带宽(以下同)。(2)存储转发寻径,传输时延公式为: T =(L/B)×D + L/B =(D+1)×L/B(3)虚拟直通,传输时延公式为: T =(Lh/B)× + L/B =(Lh×D+L)×L/B ≈ L/B式中 Lh 是消息的寻径头部的长度,一般 L≥Lh×D 。(4)虫孔方式,传输时延公式为: T = Tf×D + L/B =(Lf/B)×D + L/B =(Lf×D + L)/B≈ L/B式中 Lf 是片的长度,Tf 是片经过一个结点所需的时间,一般 L>>Lf×D 。
第十章
- 能实现指令、程序、任务级并行的计算机系统是___。MIMD
- 多处理机结构由若干台独立的计算机组成,每台计算机能够独立执行自己的___,Flynn 称这种结构为___结构。程序、MIMD
- 现有的MIMD机器可分为___和___两类。每一类代表了一种存储器的结构和互连策略。集中式共享存储器结构、分布式存储器结构
- 消息传递机器根据简单的___协议,通过___来请求服务或传送数据。网络、传递消息
- 对应于两种地址空间的组织方案,分别有___和___两种通信机制。共享存储器、消息传递
- 对称式共享存储器系统结构一般都支持对共享数据和私有数据的Cache缓存。私有数据是指___,而共享数据则是指___。只供一个处理器使用的数据、供多个处理器共同使用的数据
- 多处理机的Cache一致性问题是指___。不同处理机的Cache中同一数据块可能不一致,Cache与共享主存中同一数据块也可能不一致
- 实现Cache一致性协议的关键是___。跟踪共享数据块的状态
- 采用目录协议解决多处理机的Cache一致性问题时。根据目录的结构,可以把目录协议分成___、和___3类。其中,具有可扩展性的目录协议是。全映象目录、有限映象目录、链式目录、有限映象目录、链式目录
- 链式目录有___和___两种实现方法。单链法、双链法
- 在基于总线互连的多处理机中,采用___协议来解决Cache一致性问题。总线监听
- 实现Cache一致性协议有___和___两类。写作废协议、写更新协议
- Origin 2000的关键技术包括___技术和___。CrayLink开关网络、CellularIRIX操作系统
- 并行处理面临着哪两个重要的挑战?分别采用什么方法解决?
(1)程序中有限的并行性。通过采用并行性更好的算法来解决。(2)相对较高的通信开销。远程访问延迟的降低主要靠系统结构支持和编程技术。 - 共享存储器通信主要有哪些优点?
(1) 与常用的集中式多处理机使用的通信机制兼容。 (2) 当处理器通信方式复杂或程序执行动态变化时易于编程,同时在简化编译器设计方面也占有优势。(3) 当通信数据较小时,通信开销较低,带宽利用较好。 (4) 通过硬件控制的Cache减少了远程通信的频度,减少了通信延迟以及对共享数据的访问冲突。 - 消息传递通信机制主要有哪些优点?
(1) 硬件较简单。 (2) 通信是显式的,从而引起编程者和编译程序的注意,着重处理开销大的通信。 - 在分布式多处理机中将存储器分布到各结点有什么好处?
(1) 如果大多数的访问是针对本结点的局部存储器,则可降低对存储器和互连网络的带宽要求; (2) 对局部存储器的访问延迟低。 - 大规模的多处理机中,存储器在物理上是分布于各个处理结点中。在逻辑地址空间的组织方式以及各个处理器之间通信的实现上,有哪两种地址空间的组织方案?
(1) 第一种方案:物理上分离的多个存储器作为一个逻辑上共享的存储空间进行编址。处理器之间是通过用load和store指令对相同存储器地址进行读/写操作来实现的。(2) 第二种方案:把每个结点中的存储器编址为一个独立的地址空间,不同结点中的地址空间之间是相互独立的。即整个地址空间由多个独立的地址空间构成,它们在逻辑上也是独立的,远程的处理器不能对其直接寻址。各处理机之间采用消息传递通信机制进行通信,数据通信要通过在处理器之间显式地传递消息来完成。 - 简述共享存储器通信机制的主要优点。
1)与常用的对称式多处理机使用的通信机制兼容。
(2)当处理器之间通信方式复杂或在执行过程中动态变化时,采用共享存储器通信,编程容易,同时在简化编译器设计方面也占有优势。
(3)采用大家所熟悉的共享存储器模型开发应用程序,而把重点放到解决对性能影响较大的数据访问上。
(4)当通信数据量较小时,通信开销较低,带宽利用较好。
(5)可以通过采用Cache技术来减少远程通信的频度。这是通过对所有数据(包括共享的和私有的)进行Cache缓冲来实现的。 - 简述消息传递通信机制的主要优点。
1)硬件更简单。特别是在与可扩放共享存储器实现方案相比时更是如此。
(2)通信是显式的,因此更容易搞清楚何时发生通信以及通信开销是多少。
(3)显式通信可以让编程者重点注意并行计算的主要通信开销,使之有可能开发出结构更好、性能更高的并行程序。
(4)同步很自然地与发送消息相关联,能减少不当的同步带来错误的可能性。 - 在实现消息传递机制的硬件上怎样支持共享存储器通信机制?所有对共享存储器的访问均要求操作系统提供地址转换和存储保护功能,即将存储器访问转换为消息的发送和接收。
- 简述多处理机中产生Cache一致性问题的原因。1)Cache的引进对I/O操作产生了一致性问题,因为Cache中的内容可能与由I/O子系统输入输出形成的存储器对应部分的内容不同。(2)对共享数据,不同处理器的Cache都保存有对应存储器单元的内容,因而在操作中就可能产生数据的不一致。
- 一致的存储系统应满足哪3点?(1)处理器P在对存储单元X进行一次写之后又对X进行读,在这读和写之间没有其它处理器对X进行写,则P读到的值总是刚写进去的值。
(2)处理器P对存储单元X进行写之后,另一处理器Q对X进行读,在这读和写之间没有其它对X的写,则Q读到的值应为P写进去的值。
(3)对同一存储单元的写是串行化的。即任意两个处理器对同一存储单元的两次写,从各个处理器的角度看来顺序都是相同的。 - 什么是共享数据的迁移和复制?这么做的原因是什么?共享数据的迁移是把远程的共享数据拷贝一份,迁入本地Cache供本处理器使用。是为了减少对远程共享数据的访问延迟,减少对共享存储器带宽的要求。
共享数据的复制则是把多个处理器需要同时读取的共享数据在这些处理器的本地Cache中各存放一个副本。复制不仅可以减少访问共享数据的延迟,还减少访问共享数据所产生的冲突。 - 什么是多处理机的一致性协议?给出解决一致性的监听协议和目录协议的工作原理。1) 对多个处理器维护一致性的协议称为Cache一致性协议。
(2)目录协议的工作原理:采用一个集中的数据结构——目录。对于存储器中的每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。目录协议根据该项目中的信息以及当前要进行的访问操作,依次对相应的Cache发送控制消息,并完成对目录项信息的修改。此外,还要向请求处理器发送响应信息。
(3) 监听协议的工作原理:每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。 - 简述写更新协议和写作废协议性能上的差别。(1) 对同一数据的多个写而中间无读操作的情况,写更新协议需进行多次写广播操作,而在写作废协议下只需一次作废操作。
(2)对同一块中多个字进行写,写更新协议对每个字的写均要进行一次广播,而在写作废协议下仅在对本块第一次写时进行作废操作即可。写作废是针对Cache块进行操作,而写更新则是针对字(或字节)进行操作。
(3)从一个处理器写到另一个处理器读之间的延迟通常在写更新模式中较低,因为它写数据时马上更新了相应的其他Cache中的内容(假设读的处理器Cache中有此数据)。而在写作废协议中,需要读一个新的拷贝。 - 简述细粒度多线程技术与粗粒度多线程技术的优缺点。1)细粒度多线程技术的主要优点是不仅能够隐藏由长时间停顿引起的吞吐率的损失,而且能够隐藏由短时间停顿带来的损失。其主要的缺点是减慢了单个线程的执行,这是因为即使没有任何停顿的线程也不能连续执行,而是会因其它线程的指令的插入执行而被延迟。
(2)粗粒度多线程技术减少了线程切换次数,并且也不太会降低单个线程的执行速度,但它减少吞吐率损失的能力有限,特别是对于较短的停顿来说更是如此。 - 目前流行的高性能并行计算机系统结构通常可以分成哪5类?(1)并行向量处理机PVP
(2)对称式共享存储器多处理机SMP
(3)分布式共享存储器多处理机DSM
(4)大规模并行处理机MPP
(5)机群计算机Cluster - 简述超大规模计算机系统MPP的特点。1)处理结点使用商用微处理器,而且每个结点可以有多个微处理器;
(2)具有较好的可扩放性,能扩展成具有成百上千个处理器;
(3)系统中采用分布非共享的存储器,各结点有自己的地址空间;
(4)采用专门设计和定制的高性能互连网络;
(5)采用消息传递的通信机制。
第十一章
- 并行编程模型有哪几种?各自的特点是什么?目前有三种并行编程模型:数据并行(Data Parallel)模型、消息传递(Message Passing)模型和共享变量(Shared Variable)模型。数据并行模型的编程级别比较高,编程相对简单,但它仅适用于数据并行问题;消息传递模型的编程级别相对较低,但消息传递编程模型可以有更广泛的应用范围;共享变量则采用多线程的方式,非常适合SMP共享内存多处理系统和多核处理器体系结构。
- 简述多核架构与多处理器有什么不同。多核是指在一片处理器芯片中集成多个完整的计算内核。而多处理器则是指多个CPU,每个CPU可以是单核或多核的。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。
- 多核时代的主要驱动力主要有哪些?主要有:功耗与散热、并行度和应用软件等。受CPU主频、功耗、散热和超标量等技术复杂度的限制,以及多线程应用软件需求的驱动,微处理器架构发展到多核成为一种必然;另外,多核架构也是摩尔定律驱动的结果。在单核架构下,摩尔定律已经接近于失效了,要继续成立,多核也是必然的选择。
第十二到第十四章
- 机群系统有哪些特点?机群系统具有许多优点:
(1) 系统开发周期短。由于机群系统大多采用商品化的PC机、工作站作为结点,并通过商用网络连接在一起,系统开发的重点在于通信子系统和并行编程环境上,这大大节省了研制时间。(2)可靠性高。机群中的每个结点都是独立的PC机或工作站,某个结点的失效并不会影响其他结点的正常工作,而且它的任务还可以迁移到其他结点上继续完成,从而有效地避免由于单结点失效引起的系统可靠性问题。
(3)可扩放性强。机群的计算能力随着结点数量的增加而增大。这一方面得益于机群结构的灵活性,由于结点间以松耦合方式连接,机群的结点数量可以增加到成百上千;另一方面则是由于机群系统的硬件容易扩充和替换,可以灵活配置。
(4)性能价格比高。由于生产批量小,传统并行计算机系统的价格均比较昂贵,往往要几百万到上千万美元。而机群的结点和网络都是商品化的计算机产品,能够大批量生产,成本相对较低,因而机群系统的性能价格比更好。与相同性能的传统并行计算机系统相比,机群的价格要低1~2个数量级。
(5)用户编程方便。机群系统中,程序的并行化只是在原有的C、C++或Fortran串行程序中插入相应的通信原语,对原有串行程序的改动有限。用户仍然使用熟悉的编程环境,无需适用新的环境。 - 说明IBM SP2机群在体系结构上的特点。BM SP2是机群中的代表性产品,它既可用于科学计算,也可供商业应用。SP2机群是异步的MIMD,具有分布式存储器系统结构。它的每个结点都是一台RS/6000工作站,带有自己的存储器和本地磁盘。结点中采用的处理器是一种6流出的超标量处理机。每个结点配有一套完整的AIX操作系统(IBM的UNIX),结点间的互连网络接口是松耦合的,通过结点本身的I/O微通道(MCC)接到网络上,而不是通过本身的存储器总线。SP2中设置了一个专门的系统控制台用以管理整个系统。通过该系统控制台,系统管理人员可以从单一地点对整个系统进行管理。
- 如何计算一台机器的理论峰值性能?假设要将天河2号的理论峰值性能提高到200PFLOPS,需要多少个计算结点?一台机器的理论峰值性能可以使用下面的方法计算:结点数单结点峰值性能,其中单结点峰值性能 = ∑(第i种计算设备的峰值性能第i种计算设备的数量),这里的计算设备可以是CPU,也可以是GPU、Intel MIC加速器等。天河2号使用了16000个结点,每个结点的峰值性能约为3.431 TFLOPS,因此要将其峰值性能提高到200PFLOPS,至少需要200*1000/3.431≈58982个结点。。
- 阵列处理机又称为___。其采用的主要技术手段是硬件上采用___的方法来实现并行性。并行处理机、资源重复
- 阵列处理机操作模型用五元组表示:阵列处理机=(N,C,I,M,R),其中N 表示机器的___数,I 表示由控制部件 CU 广播至所有 PE 进行并行执行的___,M为___,其中每种屏蔽将所有PE划分成___和___两种工作模式。处理单元、指令集、屏蔽方案集、允许操作、禁止操作
- 多处理机与并行处理机的本质差别在于并行性级别的不同:多处理机实现___的并行,而并行处理机则实现同一指令多数据流的___的并行。任务一级 、操作一级
- 阵列处理机的基本结构可分为___的阵列机和___的阵列机两大类。分布式存储器、共享式存储器
- Illiac Ⅳ阵列处理机处理单元PE之间互连用互连函数表示为___。PM2±0和PM2±3
- Illiac Ⅳ 阵列机是一个由以下3种类型处理机联合组成的多机系统:(1)处理部件阵列 PU 专门用于___运算;(2)阵列控制器 CU 是一台相对独立的小型___处理机;(3)B6700 计算机担负I/O系统和操作系统管理功能。数组、标量
- Illiac Ⅳ 阵列 PU 由 64 个___、64 个___和存储器逻辑部件(MLU)组成。处理单元(PE)、局部存储器(PEM)
- BSP计算机采用___存储器结构。它有___个处理单元,并行存储器的存储体个数为___。共享、16、17
- BSP处理机由3部分构成:___、和。控制处理机、并行处理机、文件存储器
- 简述阵列处理机的特点。1)阵列机是以单指令流多数据流方式工作的。(2)阵列机是通过设置多个相同的处理单元来开发并行性,它是利用并行性中的同时性,而不是并发性。所有处理单元必须同时进行相同的操作。(3)阵列机是以某一类算法为背景的专用计算机。这是由于阵列机中通常都采用简单、规整的互连网络来实现处理单元间的连接操作,从而限定了它所适用的求解算法类别。(4)阵列机的研究必须与并行算法的研究密切结合,以使得能充分发挥它的处理能力。
(5)阵列机的控制器实质上是一台标量处理机,而为了完成I/O操作以及操作系统的管理,尚需一个前端机。因此实际的阵列机系统是由上述3部分构成的一个异构型多处理机系统。 - SIMD的并行计算机在系统组成上应包含哪些部分和功能?1)重复设置大量的处理单元用规整灵活的互连网络互连,组成处理单元阵列;(2)用专门的并行算法对数组、向量中的元素进行并行处理;
(3)用一台高性能处理机来进行标量处理和控制互连网络的连接;(4)用一台管理处理机来运行系统程序和输入输出任务。 - 试分析与比较SIMD计算机与向量计算机的相同与不同。SIMD计算机和向量计算机的相同点是两种计算机都能对大量数据进行向量处理,特别适合于高速数值计算。
不同点是SIMD计算机获得高处理速度主要原因是采用资源重复的并行措施,多个处理单元并行工作;向量计算机依靠的是多功能流水线部件,采用时间重叠提高速度。另一区别是SIMD计算机有它的互连网络。 - 简述SIMD计算机的分布式存储器与共享存储器的异同。SIMD计算机的分布式存储器与共享存储器的相同点是都存在互连网络。不同点是在共享内存方案中,共享的多体并行存储器通过对准网络与各处理单元相连。在分布内存方案中,每个处理单元有自己的本地存储器,处理单元之间的数据通信通过数据寻径网络完成。
- 数据驱动具有哪些特性?(1)异步性:只要指令所需的数据令牌都已到达,指令即可独立地开始执行,而不必关心其他指令及数据的情况。
(2)并行性:可同时并行执行多条指令。
(3)函数性:由于不使用共享的数据存储单元,所以数据流程序不会产生诸如改变存储字这样的副作用,也就是说数据流运算是纯函数性的。
(4)局部性:运算过程中所产生的数据不是用操作数的地址来引用,而是作为数据令牌直接传送,因此数据流运算没有产生长远影响的结果,其运算具有局部性。 - 简述数据流计算机指令的组成。主要由两部分组成:操作包、数据令牌。
操作包通常由操作码、一个或几个源操作数以及一个或几个后继指令地址组成。后继指令地址用于组成新的数据令牌,以便把本条指令的运算结果送往需要它的目标指令。
数据令牌通常由结果数值和目标地址等组成。其中,结果数值就是上条指令的运算结果,而目标地址则直接取自上条指令的后继指令地址。 - VAL语言具有哪些优点?VAL语言具有以下优点:
(1)并行性好。VAL语言易于开发程序中隐含的和显式的并行性,它提供了相应的语句结构来表达算法中的并行成分,从而能够高效地编写数据流程序。
(2)遵循单赋值规则。VAL语言没有传统计算机上所用的变量的概念,仅有数值的名称,运算不产生副作用。单赋值使程序清晰,易于理解,为程序的并行执行提供了一种新方法。
(3)有丰富的数据类型。基本数据类型有:整型、实型、布尔型和字符型等,结构类型有数组和记录等。而且允许数组和记录之间互相嵌套调用,嵌套的深度不限。(4)是一种强类型语言。任何函数的自变量和计算结果的数据类型都要在函数的首部加以定义。编译程序在编译过程中能够很方便地检测出函数和表达式中数据类型发生的错误。(5)在源程序中不规定语句的执行顺序,没有GOTO之类的程序控制语句。语句的执行顺序不影响最终运算结果。(6)编制的程序具有模块化结构。 - 简述静态和动态数据流计算机的主要区别。静态数据流计算机的数据令牌未加标记,当数据令牌在数据流程序图的有向分支线上流动时,在任何一个时钟节拍内,在任何一条分支线上只允许传送一个数据令牌。静态数据流计算机的结构比较简单,但对程序并行性的支持不够。
动态数据流计算机的数据令牌带有标记,当数据令牌在数据流程序图的有向分支线上流动时,同一条分支线上可以同时有几个数据令牌在移动。赋予标记的方法有利于最大限度地开发程序中的并行性。如果程序是循环的,则标记方法可以区分出不同层次的迭代执行,实现它们的并行计算。 - 为什么数据流计算机中通常要设置I-结构存储器?使用I-结构存储器可以避免过多的数组复制操作,节省大量的存储空间和辅助操作开销。
- 数据流计算机有哪些优缺点?(1)高度的操作并行性数据流计算机可以实现操作的高度并行性,它不仅能够开发程序中有规则的并行性,而且可以开发程序运行中隐含的并行性。(2)流水线异步操作 数据流计算机中的指令是直接使用操作数本身,实现的是无副作用的纯函数型程序设计方法。可以在过程级和指令级充分开发程序中的异步并行性,可以把串行计算问题用简单的方法展开成并行计算问题来处理。
(3)与VLSI技术相适应
数据流计算机结构的基本组成所具有的模块性和均匀性正好与VLSI技术相适应。其中的指令存储器、数据令牌缓冲器、可执行指令队列缓冲器等存储部件都可以采用VLSI技术制造的存储阵列均匀地构成。处理部件和信息包开关网络也可以分别用模块化的标准单元有规则地连接构成。因此,完全有可能充分利用VLSI技术,研制出具有很高性能价格比的数据流计算机。
(4)有利于提高程序设计效率
数据流计算机使用的是基于纯函数操作的程序设计语言,它完全摒弃了传统编程语言所依赖的变量和变量赋值机制,从而彻底消除了编程中使用全局变量和同名变量所产生的副作用。另外,由于函数程序设计语言有更高的自动向量识别能力,也使得机器对数据流的分析和处理更为有效。
计算题
第一章
- 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下表所示。
求该计算机的有效CPI、MIPS和程序执行时间。
题解:
(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776
(2)MIPS速率=f/ CPI =400/1.776 =225.225MIPS
(3)程序执行时间= (45000×1+75000×2+8000×4+1500×2)/400=575s - 假设处理机的时钟频率为40MHz,运行的测试程序共有200000条指令,由4类指令组成。已知各类指令的CPI和各类指令条数的比例如下表。
计算处理机运行该测试程序的CPI和MIPS。
- 已知4个程序在3台计算机上的执行时间如下表所示:
假设4个程序都执行100 000 000条指令,计算这3台计算机中每台机器上每个程序的MISP速率。分别计算它们的算术平均值、几何平均值和调和平均值。
算数平均值(Arithmetic Mean)是一组数值的总和除以数值的个数。它是最常见的平均值计算方法,用于计算一组数据的平均数。例如,给定一组数值 {x1, x2, x3, …, xn},其算术平均值可以通过将这些数值相加,然后除以n来计算:
算术平均值 = (x1 + x2 + x3 + … + xn) / n
几何平均值(Geometric Mean)是一组数值的乘积的n次根,其中n为数值的个数。几何平均值常用于计算多个相对比例的数值的平均数。例如,给定一组正数 {x1, x2, x3, …, xn},其几何平均值可以通过将这些数值相乘,然后取n次根来计算:
几何平均值 = (x1 * x2 * x3 * … * xn)^(1/n)
调和平均值(Harmonic Mean)是一组数值的倒数的平均值的倒数。调和平均值常用于计算速度、频率等互为倒数的物理或统计量的平均数。例如,给定一组正数 {x1, x2, x3, …, xn},其调和平均值可以通过将每个数值取倒数,计算它们的平均值,然后再取倒数得到:
调和平均值 = 1 / ((1/x1 + 1/x2 + 1/x3 + … + 1/xn) / n)
这些平均值计算方法在数据分析和统计学中经常使用,用于总结和比较一组数值的集中趋势。它们各自适用于不同的情况和需求。 - 计算机系统有3个部件可以改进,这3个部件的加速比如下:
部件加速比S1=30; 部件加速比S2=20; 部件加速比S3=10;
(1) 如果部件1和部件2的可改进比例为30%,那么当部件3的可改进比例为多少时,系统的加速比才可以达到10?
(2) 如果3个部件的可改进比例分别为30%、30%和20%,3个部件同时改进,那么系统中不可改进部分的执行时间在总执行时间中占的比例是多少?
题解:
(1)在多个部件可改进情况下,Amdahl定理可扩展为:已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
得F3=0.36,即部件3的可改进比例为36%。
(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为0.2T。
已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是: - 将计算机系统中某一功能的处理速度加快20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
- 假设我们考虑条件分支指令的两种不同设计方法:
(1)CPUA:通过比较指令设置条件码,然后测试条件码进行分支。
(2)CPUB:在分支指令中包括比较过程。
在这两种CPU中,条件分支指令都占用2个时钟周期,而所有其它指令占用1个时钟周期。对于CPUA,执行的指令中分支指令占20%;由于每条分支指令之前都需要有比较指令,因此比较指令也占20%。由于CPUA在分支时不需要比较,因此CPUB的时钟周期时间是CPUA的1.25倍。问:哪一个CPU更快?如果CPUB的时钟周期时间只是CPUA的1.1倍,哪一个CPU更快呢?
题解:
- 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示:
1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多少?
(3)4类操作均改进后,整个程序的加速比是多少? - 某个处理机的时钟频率为15MHz,执行测试程序的速率为10MIPS,假设每次存储器存取需1个时钟周期的时间。
(1)求处理机的CPI值。
(2)假设将处理机的时钟频率提高到30MHz,但存储器的工作速率不变,这使得每次存储器存取需2个时钟周期。如果测试程序中30%的指令需要1次访存,5%的指令需要2次访存,其它指令不需要访存,求该测试程序在改进后的处理机上执行的MIPS。 - 假设浮点数指令FP指令的比例为30%,其中浮点数平方根FPSQR占全部指令的比例为4%,FP操作的CPI为5,FPSQR操作的CPI为20 ,其它指令的平均CPI为1.25。现有两种改进方案,第一种是把FPSQR操作的CPI减至3,第二种是把所有的FP操作的CPI减至3,试比较两种方案对系统性能的提高程度。
- 若在整个测试程序的执行时间中,求浮点数平方根FPSQR的操作占10%。现有两种改进方案:(1)采用FPSQR硬件,使其速度加快到10倍;(2)使所有浮点数指令FP速度加快到4倍,并设FP指令占整个程序执行时间的40%。试比较两种方案的优劣。
第二章
- 综合题:某台处理机的各条指令使用频度如下表所示:
请分别设计这9条指令操作码的哈夫曼编码、3/3/3扩展编码和2/7扩展编码,并计算这3种编码的平均码长。
哈夫曼编码的平均码长:2.42位。3/3/3扩展编码的平均码长:2.52位。2/7扩展编码的平均码长为:2.70位。
- 综合题:某机的指令字长16位,设有单地址指令和两地址指令两类指令。若每个地址字段均为6位,且两地址指令有A条,问单地址指令最多可以有多少条?双地址指令结构为:(4位操作码)(6位地址码)(6位地址码)
单地址指令结构为:(10位操作码)(6位地址码)
因此,每少一条双地址指令,则多2^6条单地址指令,
双地址指令最多是2(16-6-6)=24=16条 ,
所以单地址指令最多有(16-A)*2^6条。 - 综合题:某处理机的指令系统要求有:三地址指令4条,单地址指令255条,零地址指令16条。设指令字长为12位,每个地址码长度为3位。问能否用扩展编码为其操作码编码?如果要求单地址指令为254条,能否对其操作码扩展编码?说明理由。
(1)不能用扩展码为其编码。
指令字长12位,每个地址码占3位,三地址指令最多是2^(12-3-3-3)=8条, 现三地址指令需4条,
所以可有4条编码作为扩展码,而单地址指令最多为4×23×23=2^8=256条,现要求单地址指令255条,
所以可有一条编码作扩展码
因此零地址指令最多为1×2^3=8条
不满足题目要求,故不可能以扩展码为其编码。
(2)若单地址指令254条,可以用扩展码为其编码。
依据(1)中推导,单地址指令中可用2条编码作为扩展码,零地址指令为2×2^3=16条,满足题目要求 - 综合题:一台模型机共有7条指令,各指令的使用频度分别为:35%(I1),25%(I2),20%(I3),10%(I4),5%(I5),3%(I6),2%(I7);有8个通用寄存器和两个变址寄存器。
(1)设计7条指令操作码的哈夫曼编码,并计算操作码的平均码长。
(2)若要求设计8位长的寄存器-寄存器型指令3条,16位长的寄存器-存储器型变址寻址指令4条,变址范围为-127~+127,请设计指令格式,并给出指令各字段的长度和操作码编码。
题解:1)哈夫曼树如下图所示。
(2)3条8位长的寄存器-寄存器型指令的格式:其中,8个通用寄存器需用3位寄存器号来编址。2位操作码字段表示3条指令操作码,一个码点作为扩展标志。
4条16位长的寄存器-存储器型变址寻址指令的格式:其中,两个变址寄存器用1位变址寄存器号来编址,8位偏移量表示变址范围-127~+127。4位操作码中,扩展标志占2位,另外2位正好表示4条指令的操作码。
这样得到3/4扩展编码如上表所示。 - 综合题:某处理机的指令字长为16位,有二地址指令、单地址指令和零地址指令3类,每个地址字段的长度均为6位。
(1)如果二地址指令有15条,单地址指令和零地址指令的条数基本相等,那么,单地址指令和零地址指令各有多少条?为3类指令分配操作码。
(2)如果指令系统要求这3类指令条数的比例为1:9:9,那么,这3类指令各有多少条?为3类指令分配操作码。
题解:(1)二地址指令中,用12位表示2个6位的地址码,操作码字段为4位,可表示16个码点,其中15个(0000~1110)用来表示15条二地址指令操作码,一个码点1111作为扩展标志。
要求单地址指令和零地址指令的条数基本相等,那么,可以采用15/63/64扩展编码,即单地址指令63条,零地址指令64条。编码如下:(2)要求3类指令条数的比例为1:9:9,那么3类指令条数可以分别为14条、126条和128条。编码如下:
- 综合题:设某台计算机有9条指令,各指令的使用频度分别为:
试分别用哈夫曼编码和2/4/6等长扩展编码为其操作码编码,并分别计算平均码长。
第三章
- 综合题:设一条指令的执行过程分成取指令、分析指令和执行指令3个阶段,每个阶段所需的时间分别为△t、△t和2△t 。分别求出下列各种情况下,连续执行N条指令所需的时间。
(1)顺序执行方式;
(2)只有“取指令”与“执行指令”重叠;
(3)“取指令”、“分析指令”与“执行指令”重叠。
题解:(1)每条指令的执行时间为:△t+△t+2△t=4△t
连续执行N条指令所需的时间为:4N△t
(2)连续执行N条指令所需的时间为:4△t+3(N-1)△t=(3N+1)△t
(3)连续执行N条指令所需的时间为:4△t+2(N-1)△t=(2N+2)△t - 有一指令流水线如下所示:
求连续输入10条指令,该流水线的实际吞吐率和效率;
(2)该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?
2)瓶颈在3、4段。
① 变成八级流水线(细分)② 重复设置部件
- 综合题:有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是△t,问:
当在流水线的输入端连续地每时间△t输入任务时,该流水线会发生什么情况?
(2)此流水线的最大吞吐率为多少?如果每2△t输入一个任务,连续处理10个任务时的实际吞吐率和效率是多少?
(3)当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其吞吐率提高多少?
题解:(1)会发生流水线阻塞情况。(2)
(3)重复设置部件 - 综合题:有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要在该流水线上计算
,画出其时空图,并计算其吞吐率、加速比和效率。
题解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1) ×(A2+B2)和(A3+B3) ×(A4+B4);然后求总的结果。
其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。
由图可见,它在18个△t时间中,给出了7个结果。所以吞吐率为:如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×5+3×3)△t =29△t。所以加速比为:
该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:
- 综合题:动态多功能流水线由6个功能段组成,如下图:
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算
画出时空图;
(2)计算实际的吞吐率、加速比和效率。
机器一共要做10次乘法,4次加法。 - 综合题:有一条4段流水线如图所示,一个任务通过此流水线的完成总时间为6△t,所有相继段必须在每个时钟周期之后才能使用。
答案 - 综合题:在一个5段流水线处理机上,各段执行时间均为△t,需经9△t才能完成一个任务,任务处理对各段的使用要求预约表如下所示。
(1)画出流水线任务调度的状态转移图。
(2)求出流水线的最优调度策略和流水线的最大吞吐率。
(3)按最优调度策略连续输入6个任务,流水线的实际吞吐率是多少? (1)由预约表得出禁止表:F= { 8,4,3,1 }
为避免争用S1段,禁用启动距离:8;为避免争用S2段,禁用启动距离:1;为避免争用S3段,禁用启动距离:3,4,1;为避免争用S4段,禁用启动距离:1;为避免争用S5段,禁用启动距离:8。
由禁止表得到初始冲突向量:C0=(10001101)
C0=(10001101)有4个后继状态:
C1=SHR(2)(C0)∨C0=(00100011)∨(10001101)=(10101111)
C2=SHR(5)(C0)∨C0=(00000100)∨(10001101)=(10001101)= C0
C3=SHR(6)(C0)∨C0=(00000010)∨(10001101)=(10001111)
C4=SHR(7)(C0)∨C0=(00000001)∨(10001101)=(10001101)= C0
C1=(10101111)有2个后继状态:
C5=SHR(5)(C1)∨C0=(10001101)= C0
C6=SHR(7)(C1)∨C0=(10001101)= C0
C3=(10101111)有3个后继状态:
C7=SHR(5)(C3)∨C0=(10001101)= C0
C8=SHR(6)(C3)∨C0=(10001111)= C3
C9=SHR(7)(C3)∨C0=(10001101)= C0
得出状态转移图:
各种调度策略及平均延迟时间:2)在表中,平均延迟时间最小的调度策略是最优调度策略:(2,5);流水线的最大吞吐率就是最优调度策略的最大吞吐率:1/(3.5△t)。
(3)按最优调度策略连续输入6个任务,流水线的实际吞吐率为: - 综合题:有一个5段流水线,各段执行时间均为△t,其预约表如下所示。
(1)画出流水线任务调度的状态转移图。
(2)分别求出允许不等时间间隔调度和等时间间隔调度的两种最优调度策略,以及这两种调度策略的流水线最大吞吐率。
(3)若连续输入10个任务,求这两种调度策略的流水线实际吞吐率和加速比?
题解:(1)由预约表得出禁止表:F= { 6,3,1 }
为避免争用S1段,禁用启动距离:6;为避免争用S2段,禁用启动距离:3;为避免争用S3段,禁用启动距离: 1;为避免争用S4段,禁用启动距离:3;为避免争用S5段,禁用启动距离:1。
由禁止表得到初始冲突向量:C0=(100101),由初始冲突向量和后继冲突向量的计算公式可得流水线任务调度的状态转移图如下:
2)由状态转移图可得不发生段争用冲突的调度策略以及平均延迟时间。
由表可知,允许不等时间间隔调度的最优调度策略是(2,2,5),流水线最大吞吐率为:1/(3△t)。等时间间隔调度的最优调度策略是(4),流水线最大吞吐率为:1/(4△t)。
(3)按调度策略(2,2,5),连续输入10个任务的流水线实际吞吐率与加速比分别为:按调度策略(4),连续输入10个任务的流水线实际吞吐率与加速比分别为:
- 综合题:在MIPS流水线上运行如下代码序列:
其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:
(1)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?
(2)假设该流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期?
(3)假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。
题解:寄存器读写可以定向,无其他旁路硬件支持。排空流水线。第i次迭代(i=0…98)开始周期:1+(i×17)
总的时钟周期数:(98×17)+18=1684
有正常定向路径,预测分支失败。第i次迭代(i=0…98)开始周期:1+(i×10)
总的时钟周期数:(98×10)+11=991
有正常定向路径。单周期延迟分支。第i次迭代(i =0…98)开始周期:1+(i ×6 )
总的时钟周期数:(98×6)+10=598 - 综合题:假设各种分支指令数占所有指令数的百分比如下:
现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第3个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?
题解:没有控制相关时流水线的平均CPI=1
存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支
要到第3个时钟周期结束时才能被解析出来。所以:
(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,对无条件分支,有一个额外的stall:
CPI = 1+20%*2+5%1 = 1.45
加速比S=CPI/1 = 1.45
(2) 若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1:
CPI = 1+20%(60%*1+40%*2) +5%1 = 1.33
加速比S=CPI/1 = 1.33
(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:
CPI = 1+20%(60%*2 + 40%*0) +5%*1 = 1.29
加速比S=CPI/1 = 1.29 - 列举出下面循环中的所有相关,包括输出相关、反相关、真相关。
输出相关:无
反相关:无
真相关:S1&S2
由于循环引入的相关:S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。 - 某向量处理机有16个向量寄存器,其中V0~V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似于CARY-1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。
1.链接流水线的通过时间?(设寄存器入、出各需1拍)
2.每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件的实际吞吐率为多少MFLOPS?
题解:我们在这里假设A+B的中间结果放在V6中,(A+B)×C地最后结果放在V7中,D+E地中间结果放在V8中,(D+E)×F的最后结果放在V9中。具体实现参考下图:
通过时间应该为前者((A+B)×C)通过的时间:
T通过= (1+2+1)+(1+3+1) =9(拍)
(2)在做完(A+B)×C之后,作(C+D)×E就不需要通过时间了。 - 在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果?
题解:时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
第四章
- 综合题:在Cray-1上,按照链接方式执行下述5条向量指令(括号中给出了相应功能部件的时间),如果向量寄存器和功能部件之间数据传输需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需要多少拍才能得到全部结果。
V0←存储器 (从存储器中取数:7拍)
V2←V0+V1(向量加:3拍)
V3←V2 < A3(按(A3)左移:5拍)
V5←V3∧V4(向量逻辑乘:2拍)
存储器←V5 (向存储器中存数:7拍)
题解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
通过时间:
T1=(7+1)+(1+3+1)+(1+5+1)+(1+2+1)+(1+7+1)=33
总时间T2=T1+(64-1)=96 - 综合题:假设每种向量功能部件只有一个,而且不考虑向量链接,那么下面的一组向量指令能分成几个编队?
题解:第一条指令LV为第一个编队。MULTSV指令因为与第一条LV指令相关,所以它们不能编在同一个编队中。但MULTSV指令和第二条LV指令之间既不存在功能部件冲突,也不存在数据相关,故可以把它们一起编到第二个编队中。ADDV指令与第二条LV指令数据相关,SV指令又与ADDV指令数据相关,所以把ADDV编为第3个编队,把SV指令编为第4个编队。即:
LV V1,Rx
MULTSV V2,R0,V1 LV V3,Ry
ADDV V4,V2,V3
(4)SV V4,Ry - 综合题:在一台向量处理机上实现A=B×S计算,其中A和B是长度为N=200的向量,S是一个标量。向量寄存器长度MVL=64,各功能部件的启动时间为:取数和存数部件为12个时钟周期、乘法部件为7个时钟周期,执行标量代码的开销Tloop=15个时钟周期,对一个向量元素执行一次操作的时间Tg=1个时钟周期。求计算A的总执行时间。
题解:假设向量A和B存放在向量寄存器Ra和Rb中,标量S存放在标量寄存器R0中,由下面3条指令完成计算:
LV V1,Ra
MULTSV V2,R0,V1
SV V2,Rb
这3条指令之间存在相关,需分为3个编队m=3。向量需要分为4组进行计算。
由题目得:Tstart=12+12+7=31 ;Tloop=15
T = 4×(TlooP+Tstart) +3×200×1= 4×(15+31) +3×200×1 = 784个时钟周期 - 综合题:向量处理机Cray Y-MP/8的机器周期时间为6ns,一个周期可以完成一次加和一次乘法运算。另外,8台处理机在最好的情况下可以同时运算而互不干扰。计算Cray Y-MP/8的峰值性能。
- 综合题:A、B两个向量存放于存储器,其向量长度为64。设流水加法器有4级,流水线时钟周期为10ns,读出A、B向量第一对元素到流水线始端所需的时钟周期数为2,求执行向量加法指令ADDV所需的时间。
题解:由题意知,n = 64,l = 4,s = 2,Tc = 10 ns
Tvp =(s + l + n – 1)Tc = (2 + 4 + 64 – 1)10 ns = 690 ns
第五章
- 综合题:有 A、B、C、D 4个存储器操作数,要求完成(A×B)+(C + D)的运算,原来使用的程序如下:
现采用静态指令调度方法,请写出该程序调度后的指令序列。 - 综合题:假定有多个加法器,不存在加法器的资源冲突。有3条连续指令组成的程序代码如下:
1) 分析程序代码段中的数据相关;(2) 采用何种硬件技术可解决这些数据相关?请加以说明。题解:(1)指令 I1 和 I2 之间有 RAW 相关,I2 和 I3 之间有 RAW 相关,I1 和 I3 之间有 WAW 相关,I1 和 I2 之间还有 WAR 相关。(2)对 I1 和 I2 之间的 WAR 相关,可用定向传送解决。根据寄存器重命名技术,对引起 RAW 相关的 I2 中的 R2 ,对引起 WAW 相关的 I3 中的 R1 ,可分别换成备用寄存器 R2’、 R1’。经寄存器重命名后,程序代码段实际执行时变为:
- 综合题:假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。
求程序执行的CPI。
(2)相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快?
题解:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额外开销
分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。
分支带来的额外开销= 15% * (90%命中×10%预测错误×4 + 10%没命中×3)= 0.099
所以 程序执行的CPI = 1 + 0.099 = 1.099
(2)采用固定的2 个时钟周期延迟的分支处理CPI = 1 + 15%×2 = 1.3
由(1)(2)可知分支目标缓冲方法执行速度快。 - 综合题:假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI值为1。假设分支目标缓冲中包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI值为多少?假设原来的CPI =1.1 。
题解:设每条无条件转移指令的延迟为x,则有:
1+5%×x=1.1
x=2
当分支目标缓冲命中时,无条件转移指令的延迟为0。
所以 程序的CPI = 1 + 2 × 5% ×(1 -90%) =1.01 - 综合题:对于下述指令序列:
(1)给出当第一条指令完成并写入结果时,Tomasulo算法所用的各信息表中的内容。(2)假设各种操作的延迟为:
load:1个时钟周期
加法:2个时钟周期
乘法:10个时钟周期
除法:40个时钟周期
给出MUL.D指令准备写结果时各状态表的内容。
(1)下图给出了当采用Tomasulo算法时,在上述给定的时刻,保留站、load缓冲器以及寄存器状态表中的内容。标志Add1表示是第一个加法功能部件,Mult1表示是第一个乘法功能部件,其余依此类推。(2)MUL.D指令准备写结果时各状态表的内容如下图所示。
这里,由于ADD.D指令与DIV.D指令的WAR冲突已经消除,ADD.D可以先于DIV.D完成并将结果写入F6,不会出现错误。 - 综合题:假设浮点功能部件的延迟时间为:加法2个时钟周期,乘法10个时钟周期,除法40个时钟周期。对于下面的代码段,在基于Tomasulo算法的支持前瞻执行的浮点部件的结构上,给出当指令MUL.D即将确认时的状态表内容。
题解:状态表的内容如图所示。这时指令SUB.D尽管已经执行完毕,但需要等到MUL.D得到确认后才能确认。 - 综合题:对于两路超标量处理器,从存储器取数据有两拍附加延迟,其它操作均有1拍附加延迟,对于下列代码,请按要求进行指令调度。
1)假设两路功能部件中同时最多只有一路可以是访问存储器的操作,同时也最多只有一路可以是运算操作,指令顺序不变。
假设两路功能部件均可以执行任何操作,指令顺序不变。
(3)假设指令窗口足够大,指令可以乱序(out-of-order)流出,两路功能部件均可以执行任何操作。
- 综合题:设指令流水线由取指令、分析指令和执行指令3个部件构成,每个部件经过的时间为△t,连续流入12条指令。分别画出标量流水处理机以及ILP均为4的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。
题解:
标量流水处理机的时空图:执行完12条指令需T1=14△t。
超标量流水处理机与超长指令字处理机的时空图:超标量流水处理机中,每一个时钟周期同时启动4条指令。执行完12条指令需T2=5△t,相对于标量流水处理机的加速比为:
超长指令字处理机中,每4条指令组成一条长指令,共形成3条长指令。执行完12条指令需T3=5△t,相对于标量流水处理机的加速比为
超流水处理机的时空图:
超流水处理机中,每1/4个时钟周期启动一条指令。执行完12条指令需T4=5.75△t,相对于标量流水处理机的加速比为:
- 综合题:用一台每个时钟周期发射两条指令的超标量处理机运行下面一段程序。所有指令都要进行取指(IF)、译码(ID)、执行、写结果(WB)4个阶段。其中 IF、ID、WB 三个阶段各为一个流水段,其延迟时间都为10ns。在执行阶段,LOAD 操作、AND 操作各延迟 10ns,ADD 操作延迟20ns,MUL 操作延迟30ns。这4种功能部件各设置一个,它们可以并行工作。ADD部件和MUL部件都采用流水结构,每一级流水线的延迟时间都是 10ns。
(1)请列出程序代码中所有的数据相关及其相关类型;
(2)假设所有运算型指令都在译码(ID)流水段读寄存器,在写结果(WB)流水段写寄存器,采用顺序发射顺序完成的调度方法。画出流水线的时空图;计算执行这个程序所用的时间。
(1)指令 I1、I2 间有寄存器 R0 的 WAR 相关; 指令 I3、I6 间有寄存器 R2 的 WAR 相关; 指令 I4、I5 间有寄存器 R4 的 RAW 相关; 指令 I3、I6 间有寄存器 R2 的 WAW 相关。2)采用顺序发射顺序完成调度方法的流水线时空图如下图所示时空图看到,执行这个程序共用 130ns 。
- 综合题:对于采用了Tomasulo算法和多流出技术的MIPS流水线,考虑以下简单循环的执行。该程序把F2中的标量加到一个向量的每个元素上。
现做以下假设:
(1)每个时钟周期能流出一条整数指令和一条浮点指令,即使它们相关也是如此。
(2)整数ALU运算和地址计算共用一个整数部件;并且对于每一种浮点操作类型都有一个独立的流水化了的浮点功能部件。
(3)指令流出和写结果各占用一个时钟周期。
(4)具有动态分支预测部件和一个独立的计算分支条件的功能部件。
(5)跟大多数动态调度处理器一样,写回段的存在意味着实际的指令延迟会比按序流动的简单流水线多一个时钟周期。所以,从产生结果数据的源指令到使用该结果数据的指令之间的延迟为:整数运算一个周期,load两个周期,浮点加法运算3个周期。
请列出该程序前面3遍循环中各条指令的流出、开始执行和将结果写到CDB上的时间。
如果分支指令单流出,没有采用延迟分支,但分支预测是完美的。请列出整数部件、浮点部件、数据Cache以及CDB的资源使用情况
题解:执行时,该循环将动态展开,并且只要可能就流出两条指令。从表中可以看出,每3个时钟周期就执行一个新循环,每个循环5条指令,因此其IPC为:5/3=1.67。虽然指令的流出率比较高,但是执行效率并不是很高,16拍共执行15条指令,平均指令执行速度为15/16=0.94条/拍。
第六章
- 用GCD测试法判断下面的循环中是否存在循环携带的真数据相关。
在这个循环中a=1, b=0, c=1, d= -1,这样,GCD(a,c)=1, d-b=-1,由于前者可以整除后者,该循环存在循环携带的真数据相关,相关距离为1。 - 综合题:指出下面这段C代码中的所有数据相关,对于真数据相关,还应指明它们是否是循环携带相关。试分析能否从这段循环中开发出循环级并行,并说明原因。
题解:(1)将这段循环展开,但却限制S2不能被调度到S1之前执行。
(2) 因为对a[i]的写和读,S3与S1之间存在真数据相关,是循环携带相关
(3) 因为对b[i]的写和读,S4与S1,S4与S3,S4与S4之间存在真数据相关,是循环携带相关,且相关距离为1,这使我们无法有效地开发循环级并行。
(4) 因为对a[i]的写,S1和S3之间存在输出相关,是循环携带相关 - 综合题:下面的一段MIPS汇编程序是计算高斯消去法中的关键一步,用于完成下面公式的计算:
Y = a X + Y
指令的延迟如下表。整数指令均为1个时钟周期完成,浮点和整数部件均采用流水。整数操作之间以及与其它所有浮点操作之间的延迟为0,转移指令的延迟为0。X中的最后一个元素存放在存储器中的地址为DONE。
1)对于标准的MIPS单流水线,上述循环计算一个Y值需要多少时间?其中有多少空转周期?
(2)对于标准的MIPS单流水线,将上述循环顺序展开4次,不进行任何指令调度,计算一个Y值平均需要多少时间?加速比是多少?其加速是如何获得的?
(3)对于标准的MIPS单流水线,将上述循环顺序展开4次,优化和调度指令,使循环处理时间达到最优,计算一个Y值平均需要多少时间?加速比是多少?
(4)对于采用前瞻执行机制的MIPS处理器(只有一个整数部件)。当循环第二次执行到BNEZR3,FOO时,写出前面所有指令的状态,包括指令使用的保留站、指令起始节拍、执行节拍和写结果节拍,并写出处理器当前的状态。
(5)对于两路超标量的MIPS流水线,设有两个指令流出部件,可以流出任意组合的指令,系统中的功能部件数量不受限制。将上述循环展开4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?
(6)对于超长指令字MIPS处理器,将上述循环展开4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?
题解:所以,共有14 个时钟周期,其中有5 个空转周期。
(2)循环顺序展开4 次,不进行任何指令调度,则指令1~5 及其间的stall 都是必要的,只是指令6~9 只需执行一次,因此,共有 10 × 4 + 4 = 44 个时钟周期,计算出4 个Y 值,所以计算一个Y 值需要11 个时钟周期,加速比为:14/11 = 1.27 。加速主要是来自减少控制开销,即减少对R1、R2 的整数操作以及比较、分支指令而来的。
(3)循环顺序展开4 次,优化和调度指令,如下:共用了24 个时钟周期,则计算一个Y 值平均需要 24/4 = 6 个时钟周期,
加速比:14/6 = 2.33 - 综合题:下面的循环中含有相关距离为1的循环携带相关,无法从中开发出大量的循环级并行。对这段代码进行调整,使得多个的循环叠代可以并行执行。
题解:第i次叠代中语句S3的结果被第i+1次叠代中语句S1所使用,S1与S3之间存在循环携带真数据相关。但它们没有构成环,因此多个循环叠代之间仍可并行,但需要进行如下代码变换: - 综合题:假设某超标量流水线能够同时执行1条浮点指令和1条整数指令,当下面的循环程序段在该流水线上执行时,至少应被展开多少次才能消除所有的“空转”周期。假设各指令的延迟如表6.1所示。
题解:需要将循环展开4次:这个循环由于没有数据相关引起的空转等待,整个循环仅仅使用了14个时钟周期,平均每个元素使用14/4=3.5个时钟周期。
- 综合题:下面是这段循环完成点积(dot product)运算,寄存器F2的初值为0。试结合使用循环展开和基本指令调度技术,消除其中的所有流水线“空转”周期。假设流水线延迟如表6.1所示,分支指令也会带来1个“空转”周期。
- 综合题:举例说明为何前瞻执行能够带来一定的性能提升?
题解:以下面的汇编指令为例:前瞻调度结果如下:
这段代码将按照下面的顺序执行:第一条指令正常执行;第二条指令为前瞻执行,此处我们特地用sLD表明它与第一条指令的区别,取出的数据保存在寄存器R14中;第三条是分支指令BEQZ,它将根据分支转移条件(即R1是否为0)判断前瞻是否正确,若R1为0则跳转到L3并执行指令SD,由于此时变量B的值已经被加载到R14中,通过这条指令就会将变量B的值赋给A,此时前瞻正确;否则投机失败,应先执行第四条指令DADDI,将R1的值加4,然后通过下一条指令SD将结果写回变量A对应的存储单元。
- 综合题:请描述下面的代码段中前瞻指令sLD如何执行。
题解:这段代码将按照下面的顺序执行:第一条指令正常执行;第二条指令为前瞻执行,取出的数据保存在寄存器R14中;第三条是分支指令BEQZ,它将根据分支转移条件(即R1是否为0)判断前瞻是否正确,若R1为0则跳转到L3并执行指令SD,由于此时变量B的值已经被加载到R14中,通过这条指令就会将变量B的值赋给A,此时前瞻正确;否则前瞻失败,应先执行第四条指令DADDI,将R1的值加4,然后通过下一条指令SD将结果写回变量A对应的存储单元。
- 综合题:试用软流水技术处理下面的循环。
题解:软流水处理后结果如下
- 综合题:为了使用GCD测试方法判断一个循环是否含有存储别名,我们必须首先将循环索引变量的步长变为1。请先将下面的循环代码的步长变为1,然后用GCD测试方法判断其中是否存在存储别名。
- 综合题:试将基本块B1的第二条语句调度至基本块B2内,为了保证结果正确,可以加入一定的补偿代码。
- 根据需要展开下面的循环并进行指令调度,直到没有任何延迟。指令的延迟如表4.4。
解:将循环展开两次,进行指令调度,即可以消除延迟,代码如下: - 对于例4.5,在相同的条件下,如果展开7遍循环,求:
1.每遍循环的平均时钟周期;
2.每个时钟周期流出指令数;
3.操作槽(功能部件)的使用效率;
4.如果展开10遍,会出现哪些问题?展开7遍循环
第七章
-
假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?
解:(1)根据题意,约75%的访存为取指令。
因此,分离Cache的总体失效率为:(75%×0.15%)+(25%×3.77%)=1.055%;
容量为128KB的混合Cache的失效率略低一些,只有0.95%。
(2)平均访存时间公式可以分为指令访问和数据访问两部分:
平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+ 数据所占的百分比×(数据命中时间+数据失效率×失效开销)
所以,两种结构的平均访存时间分别为:
分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)
=(75%×1.075)+(25%×2.885)=1.5275
混合Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)
=(75%×1.475)+(25%×2.475)=1.725
因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。 -
给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?
1.理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;
2.两者Cache容量均为64KB,块大小都是32字节;
3.组相联Cache中的多路选择器使CPU的时钟周期增加了10%;
4.这两种Cache的失效开销都是80ns;
5.命中时间为1个时钟周期;
6.64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。
解:
平均访问时间=命中时间+失效率×失效开销
平均访问时间1-路=2.0+1.4% 80=3.12ns
平均访问时间2-路=2.0(1+10%)+1.0% 80=3.0ns
两路组相联的平均访问时间比较低
CPUtime=(CPU执行+存储等待周期)时钟周期
CPU time=IC(CPI执行+总失效次数/指令总数失效开销) 时钟周期
=IC((CPI执行时钟周期)+(每条指令的访存次数失效率失效开销时钟周期))
CPU time 1-way=IC(2.02+1.20.01480)=5.344IC
CPU time 2-way=IC(2.22+1.20.0180)=5.36IC相对性能比:直接映象cache的访问速度比两路组相联cache要快1.04倍,而两路组相联Cache的平均性能比直接映象cache要高1.003倍。因此这里选择两路组相联。
-
假设一台计算机具有以下特性:
1.95%的访存在Cache中命中;
2.块大小为两个字,且失效时整个块被调入;
3.CPU发出访存请求的速率为109字/s;
4.25%的访存为写访问;
5.存储器的最大流量为109字/s(包括读和写);
6.主存每次只能读或写一个字;
7.在任何时候,Cache中有30%的块被修改过;
8.写失效时,Cache采用按写分配法。
现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。试对于以下两种情况计算主存频带的平均使用比例。
1.写直达Cache;
2.写回法Cache。
解:采用按写分配
(1)写直达cache访问命中,有两种情况:
读命中,不访问主存;
写命中,更新cache和主存,访问主存一次。
访问失效,有两种情况:
读失效,将主存中的块调入cache中,访问主存两次;
写失效,将要写的块调入cache,访问主存两次,再将修改的数据写入cache和主存,访问主存一次,共三次。上述分析如下表所示。一次访存请求最后真正的平均访存次数=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)=0.35
已用带宽=0.35×109/10 9=35.0%
(2)写回法cache访问命中,有两种情况:
读命中,不访问主存;
写命中,不访问主存。采用写回法,只有当修改的cache块被换出时,才写入主存;
访问失效,有一个块将被换出,这也有两种情况:
如果被替换的块没有修改过,将主存中的块调入cache块中,访问主存两次;
如果被替换的块修改过,则首先将修改的块写入主存,需要访问主存两次;然后将主存中的块调入cache块中,需要访问主存两次,共四次访问主存。所以:
一次访存请求最后真正的平均访存次数=66.5%*0+28.5%*0+3.5%*2+1.5%*4=0.13
已用带宽=0.13×109/109=13% -
在伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。这时只需要1个额外的周期。假设失效开销为50个时钟周期,2KB直接映象Cache的失效率为9.8%,2路组相联的失效率为7.6%;128KB直接映象Cache的失效率为1.0%,2路组相联的失效率为0.7%。
1.推导出平均访存时间的公式。
2.利用(1)中得到的公式,对于2KBCache和128KBCache,计算伪相联的平均访存时间。
解:不管作了何种改进,失效开销相同。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。
伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。
命中时间伪相联=命中时间1路+伪命中率伪相联×1
交换或不交换内容,伪相联的命中率都是由于在第一次失效时,将地址取反,再在第二次查找带来的。
因此 伪命中率伪相联=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)
=失效率1路-失效率2路。交换内容需要增加伪相联的额外开销。
平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1
+失效率2路×失效开销1路
将题设中的数据带入计算,得到:
平均访存时间2Kb=1+(0.098-0.076)*1+(0.076 *50 ) =4.822
平均访存时间128Kb=1+(0.010-0.007)*1+(0.007 *50 ) =1.353
显然是128KB的伪相联Cache要快一些。 -
假设采用理想存储器系统时的基本CPI是1.5,主存延迟是40个时钟周期;传输速率为4字节/时钟周期,且Cache中50%的块是修改过的。每个块中有32字节,20%的指令是数据传送指令。并假设没有写缓存,在TLB失效的情况下需要20时钟周期,TLB不会降低Cache命中率。CPU产生指令地址或Cache失效时产生的地址有0.2%没有在TLB中找到。
1.在理想TLB情况下,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache机器的实际CPI;
2.在实际TLB情况下,用(1)的结果,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache机器的实际CPI;
其中假设16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache的失效率分别为2.9%、2.2%和2.0%;25%的访存为写访问。
解:(1)对于理想TLB,TLB失效开销为0。而对于统一Cache,R指令=R数据
P指令=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)
若为读失效,P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)
若为写失效,且块是干净的,
P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)
若为写失效,且块是脏的,
P数据=主存延迟+传输两个块需要使用的时间=40+64/4=56(拍)
CPI=1.5+[RP+(RP20%)+0 ]
指令访存全是读,而数据传输指令Load或Store指令,
f数据P数据=读百分比*(f数据P数据)+写百分比(f数据P干净数据其对应的百分比
+f数据P脏数据其对应的百分比)
=20%(75%×48+25%(50%48+50%(48+16)))=50(拍)
代入上述公式计算出结果为:将f数据(数据访问指令频率),Rt和Pt(分别是TLB的失效率和失效开销),Rc和Pw(分别是Cache的失效率和写回的频率)代入公式得:
TLB停顿/指令数={[1+f数据][Rc(1+Rw)]}RtPt
其中,1+f数据:每条指令的访问内存次数;Rc(1+Rw):每次内存访问需要的TLB访问次数。
由条件得:TLB停顿/指令数={[1+20%][Rc(1+25%)]}0.2%×20 -
画出4路组相联并行标识比较的情况。
-
综合题:VAX-11/780在Cache命中时的指令平均执行时间是9.5时钟周期,Cache不命中时间是5个时钟周期。假设不命中率是12%,每条指令平均访存2.5次。试计算考虑了Cache不命中时的指令平均执行时间。它比Cache命中时的指令平均执行时间延长了百分之几?
题解:Cache不命中时,5×12%×2.5=1.5
(1)考虑了Cache不命中时的指令平均执行时间:9.5+1.5=11(时钟周期)
(2) (11-9.5)÷9.5=15.79%
它比Cache命中时的指令平均执行时间延长了15.79%。 -
综合题:我们考虑某一个机器。假设Cache读不命中开销为25个时钟周期,写不命中开销为70个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期, Cache的读不命中率和写不命中率均为4%,平均每条指令读存储器0.8次,写存储器0.5次。试分析考虑Cache的不命中后,Cache对性能的影响。
题解:(1)平均每条指令存储器停顿时钟周期数=“读”的次数×读不命中率×读不命中开销+“写”的次数×写不命中率×写不命中开销 = 0.8×4%×25+0.5×4%×70=2.2
(2)CPU时间=IC×[CPI+(存储停顿周期数/指令数)]×时钟周期时间
(3)考虑Cache的不命中后,性能为:
CPU时间=IC×(2.0+2.2)×时钟周期时间 =IC×4.2×时钟周期时间。
当考虑了Cache的不命中影响后,CPI从理想计算机的2.0增加到4.2,是原来的2.1倍。 -
综合题:假定存储系统在延迟30个时钟周期后,每2个时钟周期能送出16个字节。即:经过32个时钟周期,它可提供16个字节;经过34个时钟周期,可提供32个字节;依此类推。命中时间与块大小无关,为1个时钟周期,分别计算下列各种容量的Cache的平均访存时间?(1)块大小为32个字节,Cache容量为1KB,不命中率为13.34%;(2)块大小为32个字节,Cache容量为4KB,不命中率为7.24%;(3)块大小为64个字节,Cache容量为16KB,不命中率为2.64%;(4)块大小为128个字节,Cache容量为16KB,不命中率为2.77%。
解:平均访存时间 = 命中时间 + 不命中率 × 不命中开销
(1)平均访存时间 = 1+(13.34%×34) = 5.54个时钟周期
(2)平均访存时间 = 1+(7.24%×34) = 3.462个时钟周期
(3)不命中开销 = 30 + 64÷16×2 = 38
平均访存时间 = 1+(2.64%×38) = 2.003 个时钟周期
(4)不命中开销 = 30 + 128÷16×2 = 46
平均访存时间 = 1+(2.77%×46) = 2.274 个时钟周期 -
综合题:Alpha AXP 21064中,16KB指令Cache的不命中率为0.64 %,命中时间为1个时钟周期,不命中开销为60个时钟周期。假设采用指令预取技术后,预取命中率为30 %。当指令不在指令Cache里,而在预取缓冲器中找到时,需要多花一个时钟周期。其实际不命中率是多少?
题解:修改平均访存时间的公式: 平均访存时间=命中时间+不命中率×预取命中率×1+不命中率×(1-预取命中率)×不命中开销
则:平均访存时间=1+(0.64 %×30 %×1)+(0.64 %×(1-30 %)×60)=1.27
为了得到相同性能下的实际不命中率,我们由原始公式得:
平均访存时间 =命中时间+不命中率×不命中开销
不命中率=(平均访存时间-命中时间)÷不命中开销=(1.27-1)÷60=0.45 % -
综合题:假设在3000次访存中,第一级Cache不命中110次,第二级Cache不命中55次。试问:在这种情况下,该Cache系统的局部不命中率和全局不命中率各是多少?
题解:第一级Cache的不命中率(全局和局部)是110/3000,即3.67%;
第二级Cache的局部不命中率是55/110,即50%,第二级Cache的全局不命中率是55/3000,即1.83%。 -
综合题:在三级Cache中,第一级Cache、第二级Cache和第三级Cache的局部不命中率分别为4%、30%和50%。它们的全局不命中率各是多少?
题解:第一级Cache的全局不命中率 = 它的局部不命中率 = 4%
第二级Cache的全局不命中率 =第一级Cache的全局不命中率×第二级Cache局部不命中率= 4%×30%=1.2%
第三级Cache的全局不命中率 =第一级Cache的全局不命中率×第二级Cache局部不命中率×第三级Cache局部不命中率= 4%×30%×50%=0.6% -
综合题:给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?
1.理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;
2.两者Cache容量均为64KB,块大小都是32字节;
3.组相联Cache中的多路选择器使CPU的时钟周期增加了10%;
4.这两种Cache的不命中开销都是80ns;
5.命中时间为1个时钟周期;
(6)64KB直接映象Cache的不命中率为1.4%,64KB两路组相联Cache的不命中率为1.0%。
-
综合题:某个程序共访问存储器1 000 000次,该程序在某个系统中运行,系统中Cache的不命中率为7%,其中,强制性不命中和容量不命中各占25%,冲突不命中占50%。问:
(1)当允许对该Cache所作的唯一改变是提高相联度时,此时期望能够消除的最大不命中次数是多少?
(2)当允许能够同时提高Cache的容量大小和相联度时,此时期望能够消除的最大不命中次数是多少?
题解:(1)提高Cache的相联度,可以减少冲突不命中的次数,但不会影响强制性不命中和容量不命中的次数。
已知Cache的不命中率为7%,程序共访问存储器1 000 000次,所以总的不命中次数为70 000,其中50%为冲突不命中的次数。
因此,提高Cache的相联度能够消除的最大不命中次数是:70000×50%=35000。
(2)当同时提高Cache的容量大小和相联度时,可以消除容量不命中和冲突不命中的次数。而这两种不命中占总不命中次数的75%,所以,能够消除的最大不命中次数是:70000×70%=52500。 -
综合题:设主存每个分体的存储周期为2μs,存储字长为4B,采用m个分体低位交叉编址。由于各种原因,主存实际带宽只能达到最大带宽的0.6倍,现要求主存实际带宽为4MB/s,问主存分体数应取多少?
-
综合题:假设采用理想存储器系统时的基本CPI是1.5,主存延迟是40个时钟周期;传输速率为4字节/时钟周期,且Cache中50%的块是修改过的。每个块中有32字节,20%的指令是数据传送指令。并假设没有写缓存,在TLB不命中的情况下需要20时钟周期,TLB不会降低Cache命中率。CPU产生指令地址或Cache不命中时产生的地址有0.2%没有在TLB中找到。
(1)在理想TLB情况下,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache机器的实际CPI;
(2)在实际TLB情况下,用(1)的结果,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache机器的实际CPI。
其中假设16KB直接映象统一Cache、6KB两路组相联统一Cache和32KB直接映象统一Cache的不命中率分别为2.9%、2.2%和2.0%;25%的访存为写访问。
题解:CPI=CPI 执行+存储停顿周期数/指令数
存储停顿由下列原因引起:
(1)从主存中取指令
(2)Lload和Store指令访问数据
(3)由TLB引起
第八章
-
综合题:计算机系统字长32位,包含两个选择通道和一个多路通道,每个选择通道上连接了两台磁盘机和两台磁带机,多路通道上连接了了两台行式打印机,两台读卡机,10台终端,假定各设备的传输率如下:
磁盘机:800KBps
磁带机:200KBps
行打机:6.6KBps
读卡机:1.2KBps
终 端:1KBps
计算该计算机系统的最大I/O数据传输率。
题解:本题要求计算通道的吞吐率,而且机器有一个多路通道,这就有两种可能:字节多路通道和数组多路通道。因为如果将多路通道组织成数组多路通道,某个时刻通道只能为一台设备传送数据,所以它的传输率是所有设备的传输率的最大值,而如果将它组织成字节多路通道,该通道的最大传输率就是所有设备的传输率之和。
所以在本题中,从性能上考虑,应组织成字节多路通道形式。
所以此类通道的最大传输率为:
(1)fBYTE=∑fi=f打印机传输率×2+f读卡机传输率×2+f终端传输率×10=25.6KBps (i=1…14)
(2)两个选择通道连接的设备相同,所以只要计算其中一个通道的传输率既可。因为磁盘机的传输率大于磁带机。所以此类通道的传输率为:
max{800,200}=800KBps
所以本系统的最大数据传输率为: f系统=2×800+25.6=1625.6KBps。
输入输出系统/通道处理机/通道中的数据传送过程与流量分析 -
综合题:设某个数组多路通道设备选择时间TS为1μs,传送一个字节数据所需的时间TD为1μs,一次传送定长数据块的大小k 为512字节。现有8台外设的数据传输速率分别如下表所示,问哪些外设可连接到该通道上正常工作?
-
综合题:有8台外设的数据传输速率分别如下表所示,现设计一种通道,通道可实现设备选择时间TS=2μs,数据传送时间TD=2μs。
(1)如果按字节多路通道设计,该通道的最大流量是多少?若希望从8台外设中至少选择4台外设同时连接到该通道上,而且尽量多连接传输速率高的设备,那么,应选择哪些外设连接到该通道上?
(2)如果按数组多路通道设计,且一次传送定长数据块的大小k=512B,该通道的最大流量是多少?从8台外设中可选择哪些外设连接到该通道上?
-
综合题:设某个字节多路通道的设备选择时间Ts为9.8μs,传送一个字节的数据所需的时间TD为0.2μs。若某种低速外设每隔500μs发出一次传送请求,那么,该通道最多可连接多少台这种外设?
-
综合题:一个字节多路通道连接有6台设备,它们的数据传输率如下表所示。
1.计算该通道的实际工作流量。
2.若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。
-
综合题:通道型I/O系统有一个字节多路通道A、两个数组多路通道B1和B2以及一个选择通道C组成。其中,通道A连接两个子通道A1和A2,A1和A2分别连接8台低速外设,B1、B2和C分别连接5台高速外设。各外设的数据传输速率如表所示。
(1)分别计算通道A、B1、B2和C的最大流量至少为多大才不会丢失传送的数据?
(2)若I/O系统的流量为主存带宽的1/2,则主存带宽应达到多大?
通道的最大流量应大于或等于通道实际流量,通道才能正常工作,因此,各通道的最大流量应为:
fmax-byte-A≥512KB/s
fmax-block-B1≥512KB/s
fmax-block-B2≥512KB/s
fmax-select-C≥1024KB/s
(2)I/O系统的实际流量fI/O为各通道实际流量之和,即
fI/O = f-byte-A + fblock-B1 + f-block-B2 + fselect-C = (512+512+512+1024)KB/s = 2560KB/s = 2.5MB/s
若I/O系统实际流量为主存带宽的1/2,那么,主存带宽fM应达到
fM = 2fI/O = 5MB/s -
综合题:假设在一个计算机系统中:
1.每页为32KB,Cache块大小为128字节;
2.对应新页的地址不在Cache中,CPU不访问新页中的任何数据;
3.Cache中95%的被替换块将再次被读取,并引起一次不命中;
4.Cache使用写回方法,平均60%的块被修改过;
5.I/O系统缓冲能够存储一个完整的Cache块;
6.访问或不命中在所有Cache块中均匀分布;
7.在CPU和I/O之间,没有其它访问Cache的干扰;
8.无I/O时,每100万个时钟周期内有18000次不命中;
9.不命中开销是40个时钟周期。如果被替换的块被修改过,则再加上30个周期用于写回主存;
10.假设计算机平均每200万个周期处理一页。
试分析I/O对于性能的影响有多大?
题解:每个主存页有32K/128=256块。
因为是按块传输,所以I/O传输本身并不引起Cache不命中。但是它可能要替换Cache中的有效块。如果这些被替换块中有60%是被修改过的,将需要(256×60%)×30=4608个时钟周期将这些被修改过的块写回主存。
这些被替换出去的块中,有95%的后继需要访问,从而产生95%×256=244次不命中,将再次发生替换。由于这次被替换的244块中数据是从I/O直接写入Cache的,因此所有块都为被修改块,需要写回主存(因为CPU不会直接访问从I/O来的新页中的数据,所以它们不会立即从主存中调入Cache),需要时间是244×(40+30)=17080个时钟周期。
没有I/O时,每一页平均使用200万个时钟周期,Cache不命中36000次,其中60%被修改过,所需的处理时间为:
(36000×40%)×40+(36000×60%)×(40+30)=2088000(时钟周期)
时钟I/O造成的额外性能损失比例为:
(4608+17080)÷(2000000+2088000)=0.53%
即大约产生0.53%的性能损失。 -
假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体性能会有什么样的变化?
第九章
-
综合题:设E为交换函数,σ为均匀洗牌函数,β为蝶式函数,PM2I为移数函数,函数的自变量是十进制数表示的处理机编号。现有32台处理机,其编号为0,1,2,…,31。
(1)分别计算下列互连函数
E2(12) σ(8) β(9) PM2I+3(28) E0(σ(4)) σ(E0(18))
(2)用E0和σ构成均匀洗牌交换网(每步只能使用E0和σ一次),网络直径是多少?从5号处理机发送数据到7号处理机,最短路径要经过几步?请列出经过的处理机编号。
(3)采用移数网络构成互连网,网络直径是多少?结点度是多少?与2号处理机距离最远的是几号处理机?
题解:(1)共有32个处理机,表示处理机号的二进制地址应为5位。
E2(12)=E2(01100)=01000(8)
σ(8)=σ(01000)=10000(16)
β(9)=β(01001)=11000(24)
PM2I+3(28)=28+23mod32 =4
E0(σ(4))=E0(σ(00100))=01001(9)
σ(E0(18))=σ(E0(10010))=σ(10011)=00111(7)
(2)2n个结点的均匀洗牌交换网的网络直径为2n-1,32个结点的均匀洗牌交换网的网络直径为9。
从5号处理机发送数据到7号处理机,最短路径要经过6步:
00101→00100→01000→01001→10010→10011→00111
(3)网络直径是3,结点度是9,与2号处理机距离最远的是13、15、21、23号处理机。 -
综合题:设有一个4级立方体网络,从网络输入端到输出端的开关级依序为K0、K1、K2和K3,网络输入端和输出端的编号均为0~15。对于下述连接,分别写出网络级控制信号和互连函数。
(1)网络实现的置换连接为4组4元交换,可以用循环互连函数的形式表示为:
(0 3)(1 2)(4 7)(5 6)(8 11)(9 10)(12 15)(13 14)
(2)网络实现的置换连接为:4组4元交换+1组16元交换。 -
综合题:16台处理器用Illiac网络互连,写出Illiac网络的互连函数,给出表示任何一个处理器PUi(0≤i≤15)与其他处理器直接互连的一般表达式。
题解:Illiac网络连接的结点数N=16,组成4×4的阵列。每一列的4个处理器互连为一个双向环,第1列~第4列的双向环可分别用循环互连函数表示为:其中,传送方向为顺时针的4个单向环的循环互连函数可表示为:
PM2+2(X)= X + 22mod N = X + 4 mod 16
传送方向为逆时针的4个单向环的循环互连函数可表示为:
PM2-2(X)= X - 22mod N = X - 4 mod 16
16个处理器由Illiac网络的水平螺线互连为一个双向环,用循环互连函数表示为:
(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
(15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
其中,传送方向为顺时针的单向环的循环互连函数可表示为:
PM2+0(X)= X + 20mod N = X + 1 mod 16
传送方向为逆时针的单向环的循环互连函数可表示为:
PM2-0(X)= X – 20mod N = X – 1 mod 16
所以,N=16的Illiac网络的互连函数有4个:PM2±0(X)和PM2±2(X)。
由互连函数可得任何一个处理器i直接与下述4个处理器双向互连:
i±1 mod 16
i±4 mod 16 -
综合题:N=16的互连网络的输入端号和输出端号分别为0~15。若互连网络实现的互连可以用互连函数表示为f(x3x2x1x0)=x0x1x2x3,那么,是否可以用循环表示法表示出互连网络实现的互连?如果可以,请写出循环表示。
题解:已知N=16的互连网络实现的互连函数为f(x3x2x1x0)=x0x1x2x3,则由互连函数可得出16个结点之间的连接。由上表可见,互连网络为结点1和结点8之间实现的互连有1→8和8→1,这两个结点之间的双向互连可用循环互连函数表示为(1 8)。类似可得出互连网络的16个结点之间实现的双向互连用循环表示法表示为:
(1 8)(2 4)(3 12)(5 10)(7 14)(11 13) -
综合题:在编号分别为0,1,2,…,F的16个处理器之间,要求按下列配对通信:(B,1)(8,2)(7,D)(6,C)(E,4)(A,0)(9,3)(5,F)。试选择所用互连网络类型及其控制方式,并画出互连网络的结构,说明各级交换开关的状态。
题解:16个处理器通过N=16的互连网络互连,根据要求的配对通道,要求网络的16个输入端对16个输出端的连接用二进制编号表示为:可见,要求互连网络实现的互连函数为:
可以用N=16的n=log2N=4级的STARAN网络来实现要求的互连,并采用级控方式,且级控信号为F=f3f2f1f0=1010。因为,级控方式的STARAN网络中,若第i级的控制信号fi=1,则实现Ci置换连接,故当级控信号为F=1010时,STARAN网络实现的连接为:即为配对通信要求实现的互连函数。
由级控信号:
fi=0:使第i级开关为直送状态;
fi=1:使第i级开关为交叉状态。
得知STARAN网络中的开关级K0和K2的开关都为直送状态,开关级K1和K3的开关都为交叉状态。
N=16的4级STARAN网络的结构如下图所示。 -
综合题:N=16的STARAN网络在级控方式下实现分组交换置换,如果实现的分组交换置换是:首先是4组4元交换,然后是2组8元交换,最后是1组16元交换,写出网络实现的互连函数。
题解:
设网络的16个输入端号序列为:[0 1 2 3 4 5 6 7 8 9 A B C D E F]
先经4组4元交换后,序列为:[3 2 1 0 7 6 5 4 B A 9 8 F E D C ]
再经2组8元交换后,序列为:[4 5 6 7 0 1 2 3 C D E F 8 9 A B ]
最后经1组16元交换后,得出输出端号序列为:[B A 9 8 F E D C 3 2 1 0 7 6 5 4]
由输入端号序列和输出端号序列的对应元素可知,网络实现的互连是:
(0,B)(1,A)(2,9)(3,8)(4,F)(5,E)(6,D)(7,C)
由得出的循环互连函数可以写出一般化的互连函数为:其中:C为立方体互连函数。
-
综合题:具有N=2n 个输入端的Omega网络,采用单元控制。
(1)N个输入总共应有多少种不同的排列?
(2)该Omega网络通过一次可以实现的置换总共可有多少种是不同的?
(3)若N=8,计算一次通过能实现的置换数占全部排列的百分比。 -
综合题:用一个N=8的三级Omega网络连接8个处理机(P0P7),8个处理机的输出端分别依序连接Omega网络的8个输入端07,8个处理机的输入端分别依序连接Omega网络的8个输出端07。如果处理机P6要把数据播送给处理机P0P4,处理机P3要把数据播送给处理机P5~P7,那么,Omega网络能否同时为它们的播送要求实现连接?画出实现播送的Omega网络的开关状态图。
题解:网络使用的2×2开关有4种状态:直送、交叉、上播、下播。置换连接只使用直送和交叉状态,播送连接还需要使用上播和下播状态。分别画出实现处理机P6和P3的播送连接要求使用的开关状态,如果没有开关状态和开关输出端争用冲突,就可以使用播送连接。实际上,它们的播送要求没有冲突,因此,可以同时实现,同时实现的Omega网络开关状态图如下所示。
9.综合题:试证明多级Omega网络采用不同大小构造块构造时所具有的下列特性:
(1)一个k×k开关模块的合法状态(连接)数目等于kk。
(2)试计算用2×2开关模块构造的64个输入端的Omega网络一次通过所能实现置换的百分比。
(3)采用8×8开关模块构造64个输入端的Omega网络,重复(2)。
(4)采用8×8开关模块构造512个输入端的Omega网络,重复(2)。
-
综合题:现有16个处理器,编号分别为0,1,…,15,用一个N=16的互连网络互连。处理器i的输出通道连接互连网络的输入端i,处理器i的输入通道连接互连网络的输出端i。当该互连网络实现的互连函数分别为:
1.Cube3
2.PM2+3
3.PM2-0
4.σ
5.σ(σ)
时,分别给出与第13号处理器所连接的处理器号。 -
综合题:如图所示,输入端为8个处理机,输出端为8个存储器,通过三级立方体互连网络连接,采用级控方式。其中所有交换开关均为二功能(控制信号为“0”时直通,为“1”时交换)。若级控信号为:①K0K1K2=100;②K0K1K2=110;③K0K1K2=111;请在表中填写出对应于8个处理机而实际连通的8个存储器的排列顺序 。
-
综合题:要求用直径最小的三维环网、六维二元超立方体和带环立方体(CCC)设计一台由 64 个结点组成的多计算机直接连接网络。令 d 为网络的结点度,D 为直径,l 为链路总数。假设网络的性能可用(d×D×l)-1 来衡量,试根据其性能列表排出上述 3 种网络的名次
-
综合题:假设循环移数网络有 64 个结点,记为N0,N1,……,N63,且网络链路能双向工作。(1)列出该网络从结点 N0 出发,正好以 3 步可到达的所有结点。(2)指出数据从任意一个结点 Ni 传送至另一个结点 Nj 所需的最少寻径步的最小上界。
题解:
(1)循环移数网络中,与任意结点 Ni(x0x1x2x3x4x5x6x7)相连的结点是与其距离为 2 整数幂的结点。由此可得:(2)所需的最少寻径步的最小上界即为网络的直径,故为: log264 / 2 = 3
第十章
1.综合题:一个具有32台处理机的系统,对远程存储器访问时间是2000ns。除了通信以外,假设计算中的访问均命中局部存储器。当发出一个远程请求时,本地处理机挂起。处理机的时钟周期时间是10ns,假设指令基本的CPI为1.0(设所有访存均命中Cache)。对于下述两种情况:
1.没有远程访问;
2.0.5%的指令需要远程访问。
试问前者比后者快多少?
题解:已知远程访问率 p = 0.5%,远程访问时间 t = 2000ns,时钟周期 T = 10ns
远程访问开销 C = t/T = 2000ns/10ns = 200(时钟周期数)
有 0.5%远程访问的机器的实际 CPI2 为:
CPI2 = CPI1 + p×C = 1.0 + 0.5%×200 = 2.0
只有局部访问的机器的基本 CPI1 = 1.0
CPI2/ CPI1 = 2.0/1.0 = 2(倍)
因此,没有远程访问状态下的机器速度是有0.5% 远程访问的机器速度的2 倍。
-
综合题:在基于总线的小型多处理器系统上,将基于监听的Cache一致性协议应用于写直达Cache,采用不按写分配,采用写作废协议。画出Cache块的状态转换图。
题解:写作废协议中(采用写直达法),Cache块的状态转换图:响应来自CPU的请求 -
综合题:在标准的栅栏同步中,设单个处理器的通过时间(包括更新计数和释放锁)为C,求N个处理器一起进行一次同步所需要的时间。
题解:我们忽略读写锁的时间。N个处理器中的每一个都需要C个时钟周期来锁住与栅栏相关的计数器,修改它的值,然后释放锁。考虑最坏情况,所有N个处理器都要对计数器加锁并修改它的值,由于锁只能顺序访问计数器,在同一时间,只能有一个处理器修改计数器的数据。所以,总共要花NC个时钟周期使得所有的处理器都到达数据栅栏。 -
综合题:采用排队锁和fetch-and-increment重新实现栅栏同步,并将它们分别与采用旋转锁实现的栅栏同步进行性能比较。
当有N个处理器时,上述代码执行fetch-and-increment操作N次,当访问释放操作的时候,有N个Cache未命中。当最后一个处理器到达栅栏条件后,release被置为“1”,此时有N-1个Cache未命中(对于最后一个到达栅栏的处理器,当它读release的时候,将在主存中命中)。所以,共有3N-1次总线传输操作。如果有10个处理器,则共有29次总线传输操作,总共需要2900个时钟周期。
-
综合题:假设某条总线上有10个处理器同时准备对同一变量加锁。如果每个总线事务处理(读不命中或写不命中)的时间是100个时钟周期,而且忽略对已调入Cache中的锁进行读写的时间以及占用该锁的时间。
(1)假设该锁在时间为0时被释放,并且所有处理器都在旋转等待该锁。问:所有10个处理器都获得该锁所需的总线事务数目是多少?。
(2)假设总线是非常公平的,在处理新请求之前,要先全部处理好已有的请求。并且各处理器的速度相同。问:处理10个请求大概需要多少时间?
题解:当i个处理器争用锁的时候,它们都各自完成以下操作序列,每一个操作产生一个总线事务:
1.访问该锁的i个LL指令操作;
2.试图占用该锁(并上锁)的i个SC指令操作;
3.1个释放锁的存操作指令。
因此对于i个处理器来说,一个处理器获得该锁所要进行的总线事务的个数为2i+1。这里假设关键代码段的执行时间可以忽略不计。
假设一共有n个处理器。在最开始时,共有n个处理器在争用该锁,一个处理器胜出,完成执行后释放该锁,其总线事务的个数为2n+1;接下来,剩下的n-1个处理器继续争用该锁,其总线事务的个数为2(n-1)+1;其余依此类推。由此可知,总的总线事务个数为:对于10个处理器来说,其总线事务数为120个,需要12000个时钟周期。
-
有些机器实现了专门的锁广播一致性协议,实现上可能使用不同的总线。假设使用写广播协议,重新给出例8.3旋转锁的时间计算。
解:当实现了专门的锁广播一致性协议后,每当一把锁被释放的时候,和锁相关的值将被广播到所有处理器,这意味着在处理器对锁变量进行读操作的时候,未命中的情况永远不会发生。
假定每个Cache都有一个数据块保留锁变量的初值。通过下表可以知道,10次上锁/释放锁的平均时间是550个时钟周期,总时间是5500个时钟周期
第十一章
-
画出专用L1 Cache多核架构图,并叙述其特点。
特点:(1)每个CPU核都有专用的L1指令Cache和L1数据Cache,访问带宽比共享L1
Cache提高一倍。
(2)片内无L2 Cache。
(3)共享片外L2 Cache,不存在L2 Cache一致性的问题。 -
画出专用L2 Cache多核架构图,并叙述其特点。
特点:(1)每个CPU核都有专用的L1指令Cache和L1数据Cache,访问带宽比共享L1
Cache提高一倍。
(2)每个CPU核都有一个片内L2 Cache,增加了每个核的Cache容量,但也带来了实现多L2 Cache一致性的问题。 -
画出共享L2 Cache多核架构图,并叙述其特点。
特点:(1)每个CPU核都有专用的L1指令Cache和L1数据Cache,访问带宽比共享L1
Cache提高一倍。
(2)所有CPU核共享一个片内L2 Cache,不存在L2 Cache一致性的问题。 -
画出共享L3 Cache多核架构图,并叙述其特点。
特点:(1)每个CPU核都有专用的L1指令Cache和L1数据Cache,访问带宽比共享L1
Cache提高一倍。
(2)每个CPU核都有一个片内L2 Cache,增加了每个核的Cache容量,但也带来了实现多L2 Cache一致性的问题。
(3)所有CPU核共享一个片内L3 Cache,进一步增加了Cache的容量,而且也不存在L2 Cache一致性的问题。
第十一章到第十四章
-
综合题:在集中式主存的阵列处理机中,处理单元数为4,为了使4×4的二维数组A的各元素aij(i = 0~3,j = 0~3)在行、列、主/次对角线上均能实现无冲突访问,请填出数组各元素在存储器各分体(分体号从0开始)中的分布情况,假设a00已放在分体号为3,体内地址为i+0的位置,如下表所示。
-
综合题:设并行存储器的体数M=7(质数),运算单元数N=6。考虑下述4×5的数组:
按BSP地址映像规则,写出这个4×5二维数组在M=7、N=6的BSP并行存储器中存储的情况。
-
综合题:用结点分支线方法画出求解
的数据流程序图。当a=4、b=8时,画出该数据流程序图的执行过程。
-
综合题:用结点分支线方法画出
z=(IF x=10 THEN x-y ELSE x+y)/y
的数据流程序图。 -
综合题:用活动模片表示法画出计算
x=a×b+a/b
的数据流程序图。 -
综合题:利用单功能操作结点实现一般高级语言中的条件语句:
if true then G1 else G2
试画出数据流程序图,其中的G1和G2都是各自独立的数据流程序图。
题解:
如下图所示,利用一个复制结点,一个T门控结点和一个F门控结点实现起始数据令牌的两路传送,它根据起始控制令牌所携带的是真值还是假值把起始数据令牌分别送往G1数据流程序图或G2数据流程序图,并利用一个归并门控结点选择G1或G2数据流程序图中的一个结果作为输出,选择的依据仍然是起始控制令牌携带的是真值还是假值。 -
综合题:利用单功能操作结点实现一般高级语言中的循环语句:
while P do G 或 until P do G
试画出数据流程序图,其中,P是循环条件,G是循环体。 -