计算机组成原理第六版第五章部分习题 教材P186→2, 6, 7, 5(较高要求)] 【2】参见图5.1的数据通路。画出存数指令“STO R1, (R2)”的指令周期流程图,其含义是将寄存器R1的内容传送至(R2)为地址的数存单中。标出各微操作信号序列。 【解】 【5】如果一个CPU周期中要产生3个节拍脉冲,T1 = 200ns,T2 = 400ns,T3 = 200ns,试画出时序发生器的逻辑图。 【解】节拍脉冲T1,T2,T3 的宽度等于时钟脉冲的周期或时钟脉冲的整数倍,所以,主脉冲源的频率为根据时序信号关系,T1,T2,T3 三个节拍脉冲的逻辑表达式为 ; ; ; 【6】假设能够机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令的公操作,已知微指令长度为32位,请估算出控制存储器的容量 【解】; 【7】某ALU期间是用模式控制码MS3S2S1C来控制执行不同的算术运算和逻辑运算,下表列出各指令所要求的的模式控制码,其中y为二进制变量,为0或1任选。试以指令码(A,B,H,D,E,F,G)为输入变量,写出控制参数M,S3,S2,S1,C的逻辑表达式。 指令码 M S3 S2 S1 C A,B 0 0 1 1 0 H,D 0 1 1 0 1 E 0 0 1 0 y F 0 1 1 1 y G 1 0 1 1 【解】M = G; S3 = H+D+F; S2 = A+B+H+D+E+F+G; S1 = A+B+ F+G; C = H+D+Ey+Fy+G; 第5.2节、第8次书面作业[教材P187→8, 10, 13, 16] 【8】某机有8条微指令I1~I8,每条微指令所包含的微指令控制信号如下表所示。a~j分别对应10种不同性质的微指令信号。假设一条微指令的控制字段仅为8位,请安排微指令的控制字段格式。 微指令 a b c d e f g h i j I1 √ √ √ √ √ I2 √ √ √ √ I3 √ √ I4 √ I5 √ √ √ √ I6 √ √ √ I7 √ √ √ I8 √ √ √ 【解】经分析,(b,g,j)和(e,f,h)可分别组成两个小组或两个字段,然后进行译码,可得六个微指令信号,剩下的(a,c,d,i)四个微指令信号可进行直接控制,其整个控制字段组成如下: a c d i b g j e f h 微指令 微指令编码 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ I1 2-4译码器 2-4译码器 I2 ↑ ↑ ↑ ↑ I3 00000111 * * * * * * * * I4 0 a c d i 0 0→ 0 0→ I5 0 0 1→b 0 1→e I6 1 0→g 1 0→f I7 0 1 1→j 1 1→h I8 【10】某机有如下部件:ALU、移位器、主存M、主存数据寄存器MDR、主存地址寄存器MAR、指令寄存器IR、通用寄存器R0~R3、暂存器C和D; (1)请将各逻辑部件组成一个数据通路,并表明数据流动方向; (2)画出“ADD (R1), (R2)”指令的指令周期流程图; 【解】(1)各逻辑部件组成的数据通路与数据流动方向如下图所示: (2)“ADD (R1), (R2)”指令的指令周期流程图如下图所示: 【13】指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回寄存器堆(WB)五个过程段,共有20条指令连续输入流水线。 (1)画出流水线处理的时空图,假设时钟周期为100ns; (2)求出流水线的实际吞吐率(单位时间执行完毕的指令数); (3)求流水线的加速比; 【解】(1)流水线处理的时空图如下: 空间S 1 2 3 4 5 16 17 18 19 20 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ WB 1 2 3 4 5 16 17 18 19 20 MEM 1 2 3 4 5 6 17 18 19 20 EX 1 2 3 4 5 6 7 18 19 20 ID 1 2 3 4 5 6 7 8 19 20 IF 1 2 3 4 5 6 7 8 9 20 时间T t1 t2 t3 t4 t5 t6 t7 t8 t9 t20 t21 t22 t23 t24 (2)流水线的实际吞吐率: (3)流水线的加速比: 【16】判断下列三组指令序列各存在哪种类型的数据相关: (1) I1 LDA R1, A ; M(A)→R1, 内存单A数据送R1; I2 ADD R2, R1 ; R2+R1→R2, R2和R1中的数据相加,和送R2; (2) I1 ADD R3, R4 ; R3+R4→R3, R3和R4中的数据相加,和送R3; I2 MUL R4, R5 ; R4R5→R4, R4和R5中的数据相乘,积送R4; (3) I1 LDA R6, B ; M(B)→R6, 内存单B数据送R6; I2 MUL R6, R7 ; R6R7→R6, R6和R7中的数据相乘,积送R6; 【解】(1)写后读 RAW;(2)读后写 WAR;(3)写后写 WAW; 第5.3节、课后补充练习 【1】CPU运算器当中,执行运算的是 模块。 【答案】ALU; 【2】暂存 ALU运算结果、数据cache读出的数、外部接口的输入数据的是 寄存器。 【答案】数据缓冲寄存器;数据缓冲;DR; 【3】目前机器多达64个,甚至更多;为ALU执行各种运算提供一个高速的工作区的是 寄存器。 【答案】通用寄存器/通用; 【4】记录程序运行的各种状态,各种状态是指标志运算结果有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等的是 寄存器。 【答案】 PSW/状态字寄存器/状态字; 【5】CPU与内存之间,数据传输发生在 总线。【答案】 数据总线/数据/DBUS/数据总线DBUS; 【6】指令cache与IR之间,指令传输发生在 总线。 【答案】 指令/指令总线/指令总线IBUS/IBUS; 【7】与数据cache发生数据交换之前,需要向数据cache发送 ,并先将其保存至 。 【答案】地址; AR/数据地址寄存器; 【8】读取指令cache当中指令,指令的地址保存在 。 【答案】 PC/pc/程序计数器; 【9】 保存的是下一条将要执行的指令在 当中的地址。 【答案】 PC/pc/程序计数器;指令cache/cache/内存/memory/指令Cache/Cache; 【10】取指周期,从指令cache当中读出的指令,首先保存在 当中,然后接受 译码,使得 产生一系列的控制命令。带着控制命令,CPU进入执行周期,执行指令,控制命令控制计算机进行数据处理。 【答案】 IR/指令寄存器;指令寄存器/IR; 指令译码器/译码器; OC/oc/操作控制器/操作控制器OC/操作控制器oc; 【11】不管什么指令,取指阶段干的事情都一样,分别是() 【答案】 ABD (A) 根据PC里的地址,将指令从指令cache取出,保存至IR; (B) PC+1,PC指向下一条将要执行的指令,即PC当中保存的是下一条将要执行指令在指令cache或内存当中的地址; (C) 对操作数进行运算; (D) 指令译码器,对指令当中的操作码进行译码,产生控制信号; 【12】取指周期,干的事情是固定的,需要 个cpu周期。 【答案】 1/一; 【13】PC+1,是为 将要执行的指令准备好地址。 (A) 下一条; (B) 上一条;(C) 下下一条; (D) 当前指令; 【答案】 A 【14】执行MOV R3,R4指令。 取指周期CPU动作如下: (1)PC装入MOV R3,R4指令地址 ; (2)PC内容被放到指令地址总线ABUS(I)上,对指存进行地址译码,并启动 命令; (3)从指令cache读出指令并通过指令总线IBUS转入 ; (4)PC+1→212; (5)指令寄存器IR中的操作码被 ; (6)CPU识别出MOV指令,取指结束; 执行周期CPU动作如下: (1)操作控制器OC送出控制信号到通用寄存器,选择 为目的寄存器, 为源寄存器; (2)OC送出控制信号给 指定它作传送操作; (3)OC送出控制信号,打开ALU输出三态门,把R4中的数据送到数据总线DBUS上;注意:DBUS每时每刻只用一个数据; (4) OC送出控制信号,将数据总线DBUS上的数据打入 中; (5) OC送出控制信号,DR 中数据打入目的寄存器 ,MOV指令执行结束; 【答案】 211;读;指令寄存器IR;IR;指令寄存器;;译码;指令译码器译码;R3;R4;ALU;DR;数据缓冲寄存器;数据缓冲寄存器DR数据缓冲寄存器DR;R3; 【15】执行LAD R6,8指令。 执行周期CPU动作如下: (1)OC送出控制信号,打开 输出三态门,将指令中直接地址码 放到数据总线DBUS上; (2)OC送出控制信号,将地址码装入地址寄存器 ; (3)OC发出读命令,将数存8号单中的数读出到数据总线 ; (4)OC发出命令,将DBUS上数据装入 ; (5)OC发出命令,将DR中数据装入通用寄存器 ,LAD指令执行结束; 【答案】 IR;8;AR;DBUS;数据缓冲寄存器 / DR;R6; 【16】执行ADD R3,R4指令。 执行周期CPU动作如下: (1)OC发控制命令给通用寄存器,选R3和R4作源和目的寄存器; (2)OC发控制命令给 ,指定ALU作R3+R4操作; (3)OC发控制命令,打开ALU输出三态门将结果送到 上; (4)OC发控制命令,将DBUS上的数据打入 ,并将状态字打入 ; (5)OC发控制命令,将DR装入 ,ADD 指令执行结束; 【答案】 ALU; DBUS; 数据缓冲寄存器DR;DR;数据缓冲寄存器; 状态寄存器PSW;PSW;状态寄存器; R4; 【17】执行STO R4,(R5)指令。 执行周期CPU动作如下: (1)OC发操作命令到通用寄存器,取(R5)=40作数存单的地址; (2)OC发操作命令到通用寄存器,打开其输出三态门(不经ALU)将 放入DBUS上; (3)OC发操作命令,将40打入 ,并进行数存地址 ; (4)OC发操作命令到通用寄存器,取出(R4)=110; (5)OC发操作命令到通用寄存器,打开其输出三态门(不经ALU)将 放入DBUS上; (6)OC发操作命令,将110写入 40号单,覆盖原来的数据,STO指令执行结束; 【答案】 40;AR;数据地址寄存器;数据地址寄存器AR;译码;110;数存;数据cache;cache;内存;memory; 【18】执行JMP 123指令。 执行周期CPU动作如下: (1)OC发操作控制命令,打开 的输出三态门,将IR的地址码 送到DBUS上; (2)OC发操作控制命令,将DBUS上的数据123打入 ,覆盖其原有的106,将下一条指令的地址由106修改为 ,JMP指令执行结束; 【答案】 指令寄存器IR;IR;指令寄存器; 123; 程序计数器PC;PC; 123; 【19】数据总线DBUS上面传输的是 。 【答案】数据; 【20】指令总线IBUS上面传输的是 。 【答案】 指令;机器指令; 【21】微指令是由 进制构成的,1表示 (填执行或不执行)命令,0表示 (填执行或不执行)命令。 【答案】 2/二; 执行; 不执行; 【22】微指令是由 构成。 【答案】 微命令; 【23】微命令发出的命令,产生 操作。 【答案】微; 【24】对于LAD指令来说,执行一条机器指令,需要 个cpu周期。 【答案】3/三; 【25】一个cpu周期,产生的所有操作,需要 条微指令进行控制命令。 【答案】1/一; 【26】LAD指令完成所有操作,需要 条微指令进行控制命令。 【答案】3/三; 【27】微指令的有效时间,持续时间,是 个cpu周期。 【答案】1/一; 【28】真正控制计算机运行的是 。 【答案】微指令; 【29】微指令保存在CPU当中的控制存储器里。对于LAD指令来说,微指令是通过机器指令的 调取出来。 【答案】操作码(LAD)/操作码(lad)/lad/ LAD; 【30】CPU控制器,包括时序发生器、 。 【答案】 操作控制器/控制器oc/操作控制器OC; 【31】操作控制器主要分为硬连线控制器、 。 【答案】微程序控制器; 【32】微程序控制器内保存的是微 。 【答案】 指令;程序; 【33】以BCD码运算为例,指令执行分为两个周期(阶段):取指令阶段、执行指令阶段。取指阶段需要1条微指令,执行指令需要3条微指令,总共用到4条微指令。 第1条微指令取指,第2条微指令执行加运算,第3条微指令执行加6运算,第4条微指令减6(通过判断是否有进位,决定是不是该减)。 ①第1条微指令的任务是取指。用于取指的第1条微指令,完成3件事情(取指、pc+1、译码)。不管是什么机器指令,事情都是一样的,是固定的。不管是什么机器指令,所使用的第1条微指令也都是一样的,是固定的。取指微指令在微程序控制器的地址也是固定的,是 。【答案】 0000; ②第2条微指令的任务是执行加运算。以BCD码运算机器指令的 作为第2条微指令在微程序控制器里的地址。 【答案】操作码 / 操作码1010 / 1010; ③因为p1=0、p2=0, 为第3条微指令在微程序控制器里的地址。【答案】直接地址1001/1001; ④如果没有进位,执行第4条微指令减6。因为p2=1,所以进行进一步判断。 当c=0, 修改为0001,作为下一条微指令地址。 【答案】直接地址1001/1001; 当c=1,将 ,直接作为下一条微指令地址。 【答案】直接地址1001/1001; 以上4个步骤,实际上是决定、计算、判断 在微程序控制器当中的 。决定、计算、判断工作,是由微程序控制器当中的电路 来完成。 【答案】微指令; 地址; 地址转移逻辑; 【34】对于微程序控制器,控制存储器当中保存了 。 【答案】微指令/微程序; 【35】微指令,从微程序控制器当中调度出来以后,存放在 寄存器当中。 【答案】μCR/微命令寄存器 / 微命令寄存器μCR; 【36】从微程序控制器中取微指令之前,要知道微指令在微程序控制器当中的地址,地址保存在 。 【答案】 微地址寄存器μMAR / 微地址寄存器μ MAR / μ MAR/μMAR / 微地址寄存器; 【37】由于 速度最快,其速度决定了整个计算机的最高速度,为此要提高其速度,采用 技术。 【答案】 CPU/cpu/中央处理器/中央处理器cpu/中央处理器CPU; 流水/流水线/流水CPU/流水cpu/流水线CPU/流水线cpu; 【38】为了提高CPU速度,提高cpu并行性,并行性处理技术有三种形式: 、 、时间并行性+空间并行性。 【答案】时间并行性; 空间并行性; 【39】多核CPU,是采用 并行性。 【答案】空间 【40】CPU采用流水技术,引发了三个问题: 、 、 。 【答案】 控制相关; 资源相关; 数据相关; 【41】数据相关,有三种类型: 、 、 。 【答案】 写后写;WAW; 读后写;WAR; 写后读;RAW; 【42】数据相关,有三种类型,每一种类型,都和 (填读或写)有关,因为它和其他操作一定会产生冲突。 (填读或写)和其他操作不一定会产生冲突。 【答案】写; 读; 【43】资源相关,是由CPU流水执行不同机器指令的过程中,不同机器指令竞争使用硬件资源(模块) 引起的,指令之间会相互造成干扰。 【答案】内存;内存条;memory;Memory; 【44】在流水cpu当中,大部分指令执行的顺序是 方式,当遇到 方式时,即执行 指令时,将发生 相关。 【答案】 顺序; 跳跃; 转移;控制; 【45】为了让cpu进入规范的流水,需将指令执行过程,划分成 个阶段。每条指令不一定都要执行所有阶段,规范化划分,便于CPU电路设计; 【答案】4/四 【46】流水cpu,采用的是 并行性; 【答案】时间 【47】 相关,是数据的读写顺序和写写顺序发生颠倒,引发数据错误; 【答案】数据 【48】 相关, 由于指令顺序出现不可预期的转移,使得流水发生断流或者出现错误;【答案】控制 【49】实验1主程序代码,请在此以简答题的形式作答,即直接以主程序代码作为答案。对于相同或类似的代码,版权属于早交代码的同学。如运行以下代码,即accum_code当中的代码如下: load A mul X mul X sto M load B mul X add M add C sto M end 从键盘输入A B C X的值为1 2 3 4,最后输出M的值为27,证明你的程序可能是正确无误的。如下图所示。 【答案】 第5.4节、考研训练 【1】在程序执行的过程中,( )控制计算机的运行总是处于取指令、分析指令和执行指令的循环之中。 (A)控制器; (B)CPU; (C)指令存储器; (D)指令译码器; 【答案】A 【2】下列部件不属于控制器的是() 【答案】C (A)指令寄存器; (B)程序计数器; (C)程序状态字寄存器; (D)时序电路; 【3】程序计数器的位数取决于()通用寄存器的位数取决于()指令寄存器的位数取决于() (A)存储器容量; (B)机器字长; (C)指令字长; (D)存储字长; 【答案】A,B,C 【4】在 CPU 的寄存器中,()对用户来说是透明的。 【答案】C (A)程序计数器; (B)状态寄存器; (C)指令寄存器; (D)通用寄存器; 【5】CPU 中的通用寄存器,() 【答案】B (A)只能存放数据,不能存放地址; (B)可以存放数据和地址; (C)既不能存放数据,也不能存放地址; (D)可以存放数据和地址,还可以代替指令寄存器; 【6】间址周期结束时, CPU 内寄存器 MDR 中的内容为() 【答案】B (A)指令; (B)操作数地址; (C)操作数; (D)无法确定; 【7】计算机工作的最小时间周期是() 【答案】A (A)时钟周期; (B)指令周期; (C)CPU 周期; (D)工作脉冲; 【8】指令周期由一个到几个机器周期组成, 在第一个机器周期时( )。 【答案】A (A)从主存中取出指令字; (B)从主存中取出指令操作码; (C)从主存中取出指令地址码; (D)从主存中取出指令的地址; 【9】什么是指令周期、 机器周期和时钟周期? 三者有何种关系? 【解】(1)指令周期:CPU 每取出并执行一条指令, 都要完成一系列的操作, 这一系列操作所需用的时间通常叫做一个指令周期。 也即是 CPU 完成一条指令的时间。 (2)机器周期:机器周期也称为 CPU 周期。 通常用内存中读取一个指令字的最短时间来规定 CPU 周期。 指令周期常常用若干个 CPU 周期数来表示。 (3)时钟周期:称为节拍脉冲 或 T周期, 它是处理操作的最基本单位。 一个 CPU 周期时间又包含有若干个时钟周期(每个 CPU 周期包含的时钟周期数可以不等)。 这些时钟周期的总和则规定了一个 CPU 周期的时间宽度。 上图给出的定长机器周期的情况下,指令周期的情况。其中,每个机器周期包含4个时钟周期。 下图给出的不定长机器周期的情况下,指令周期的情况。其中,每个机器周期可以包含4个时钟周期,也可以包含3个时钟周期。 【10】如下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M 为主存(受 R/ W信号的控制),它既存放指令又存放数据,AR为地址寄存器,DR为数据寄存器,ALU为加、减控制信号决定完成何种操作, 控制信号 G控制的是一个门电路,它相当于两条总线之间的桥。另外, 线上标注有小圈表示有控制信号, 图中,yi表示 y 寄存器的输入控制信号, R1o为寄存器 R1的输出控制信号,未标字符的线为直通线,不受控制。 ①“ADD R2,R0”指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC 中,并列出相应的微操作控制信号序列。 ②“SUB R1,R3”指令完成(R3)-(R1)→R3的操作,画出其指令周期流程图,并列出相应的微操作控制信号序列。 【解】①“ADD R2, R0”指令是一条加法指令,参与运算的两个数放在寄存器 R2和R0中,指令周期流程图包括取指令阶段和执行指令阶段两部分。根据给定的数据通路,“ADD R2, R0”指令的详细指令周期流程图如下图(a)所示, 图的右边部分标注了每一个机器周期中用到的微操作控制信号序列。 ② SUB 减法指令周期流程图如下图 (b)所示。 【11】同步控制是() 【答案】B (A)只适用于 CPU 控制的方式; (B)由统一时序信号控制的方式; (C)所有指令执行时间都相同的方式; (D)所有指令执行时间都不同的方式; 【解】控制不同操作序列时序信号的方法, 称为控制器的控制方式。常见的控制有: 同步控制、 异步控制、 联合控制; (1)同步控制:在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的。同步控制方式可以选择如下方案: ①.(定长方式)采用完全统一节拍的机器周期执行各种不同的指令。 特点: 以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令。 简单指令多的情况下,造成浪费。 ②.采用不定长的机器周期。【特点】每个机器周期内的节拍数可以不等。将大多数操作安排在一个较短的机器周期内,对时间紧张的操作采取延长机器周期的办法来解决。 ③.中央控制和局部控制相结合。 中央控制:就是将大部分指令安排在固定的机器周期完成。局部控制:对少数复杂的指令采用另外的局部的时序进行定时。 (2)异步控制:每条指令、每个操作控制信号需要多少时间就占用多少时间。这意味着每条指令的指令周期可由多少不等的机器周期数组成。【特点】该方式下微操作的时序由专门的应答线路控制,即当 CPU 发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”信号,再开始新的微操作,使CPU没有空闲状态,但因需要采用应答电路,故其结构比控制方式复杂。 (3)联合控制:将同步控制方式和异步控制方式相结合的方式。一种情况是,大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。另一种情况是,机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。 【12】在控制器的控制方式中, 局部控制( ) 【答案】C (A)和异步控制相同,都不存在基准时标系统; (B)属于异步控制,存在基准时标系统; (C)属于同步控制,它与中央控制的基准时标是保持同步的; (D)属于同步控制并有独立的时标系统,与中央控制的基准时标系统无关; 【13】在控制器的控制方式中,机器周期内的时钟周期个数可以不相同,这属于() 【答案】A (A)同步控制; (B)异步控制; (C)联合控制; (D)人工控制; 【14】设指令由取指、 分析、 执行 3 个子部件完成, 并且每个子部件的时间均为Δt, 若采用常规标量单流水线处理机(即处理机的度为 1),连续执行 12 条指令,共需() 【答案】B (A)12Δt; (B)14Δt; (C)16Δt; (D)18Δt; 【15】下列关于动态流水线正确的是( )。 【答案】A (A)动态流水线是在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算,这样对提高流水线的效率很有好处,但会使流水线控制变的很复杂; (B)动态流水线是运算操作并行;(C)动态流水线是指指令步骤并行;(D)动态流水线是指程序步骤并行; 【解】按照不同的分类标准,可以把流水线分成多种不同的种类。下面从几个不同的角度介绍流水线的基本分类方法: (1)部件功能级、处理机级和处理机间级流水线 根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。部件功能级流水线就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。 处理机级流水是把一条指令解释过程分成多个子过程, 如前面提到的取指、 译码、执行、 访存及写回 5 个子过程。 处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需要存放在下一个处理机所共享的存储器中。 (2)单功能流水线和多功能流水线 按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。 单功能流水线指只能实现一种固定的专门功能的流水线; 多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。 (3)动态流水线和静态流水线 按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。 静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。 动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。 这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。 (4)线性流水线和非线性流水线 按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。 线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。 非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次经过流水线,这种流水线适合进行线性递归的运算。流水线的每个子过程由专用的功能段实现,各功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的瓶颈。 【16】流水线中有三类数据相关冲突:写后读相关、读后写相关、写后写相关。判断以下三组指令各存在哪种类型的数据相关。 (1) I1: ADD R1,R2,R3 ;(R2) + (R3)->R1 I2: SUB R4,R1,R5 ;(R1) – (R5)->R4 (2) I3: STA M(x),R3 ;(R3)->M(x),M(x)是存储器单 I4: ADD R3,R4,R5 ;(R4)+(R5)->R3 (3) I5: MUL R3,R1,R2 ;(R1)×(R2)->R3 I6: ADD R3,R4,R5 ;(R4) + (R5)->R3 【解】(1) 写后读(RAW); 第(1)组指令中,I1指令运算结果应先写入 R1,然后在 I2 指令中读出 R1内容。由于I2 指令进入流水线,变成 I2指令在 I1指令写入 R1前就读出R1内容,发生 RAW 相关。 (2) 读后写(WAR); 第(2)组指令中, I3 指令应先读出R3内容并存入存储单M(x), 然后在I4指令中将运算结果写入R3。 但由于I4指令进入流水线,变成 I4 指令在I3指令读出 R3内容前就写入 R3,发生WAR相关; (3) 写后写(WAW)。 第(3)组指令中,如果 I6指令的加法运算完成时间早于I5 指令的乘法运算时间,变成指令 I6 在指令I5写入R3 前就写入R3,导致 R3的内容错误,发生WAW 相关。 【17】下列关于超标量流水线不正确的是() 【答案】D (A)在一个时钟周期内一条流水线可执行一条以上的指令; (B)一条指令分为多段,指令由不同电路单完成; (C)超标量通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间; (D)超标量流水线是指运算操作并行;
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/81034.html