🏷️ 知识点:流水线概念

共 11 道相关题目

2020 年第 17 题 组成原理 选择题

下列给出的处理器类型中理想情况下CPI 为 1 的 是 ( ) 。

I 、单周期 CPU;

II 、多周期CPU;

I 、基本流水线CPU;

IV、超标量流水线CPU

A. 仅I,Ⅱ; B. 仅I,II; C. 仅II,IV; D. __仅D.Ⅲ,IV;

[tag_link]

正确答案:D

CPI 表示执行指令所需的时钟周期数。对于一个程序或一台机器来说,其 CPI 指执行该程序或机器指令集中的所有指令所需的平均时钟周期数。对于单周期 CPU,令指令周期 = 时钟周期,CPI=1,I 正确。对于多周期 CPU,CPU 的执行过程分成几个阶段,每个阶段用一个时钟去完成,每种指令所用的时钟数可以不同,CPI > 1 , II 错误。对于基本流水线 CPU,让每个时钟周期流出一条指令,CPI = 1, III 正确。超标量流水线 CPU 在每个时钟周期内并发执行多条独立的指令,每个时钟周期流出多条指令,CPI < 1, IV 错误。


2011 年第 18 题 组成原理 选择题

下列给出的指令系统特点中,有利于实现指令流水线的是()。

I. 指令格式规整且长度一致

Ⅱ.指令和数据按边界对齐存放

Ⅲ.只有Load/Store指令才能对操作数进行存储访问

A. 仅I 、Ⅱ

B. 仅Ⅱ、Ⅲ

C. 仅I 、Ⅲ

D.I 、Ⅱ 、Ⅲ

[tag_link]

正确答案:D

指令定长、对齐和仅 Load/Store 指令访存,这 3 个都是 RISC 的特征,指令格式规整且长度一 致能大大简化指令译码的复杂度,有利于 实现流水线。指令和数据按边界对齐存放能保证在一个存取周期内取到需要的数据和指令,不用多余的延迟等待,也有利于实现流水线。只有 Load/Store 指令才能对操作数进行存储访问使取指令、取操作数操作简化且时间长度固定,能够有效地简化流水线的复杂度。


2013 年第 18 题 组成原理 选择题

某 CPU 主频为1.03GHz, 采用4级指令流水线,每个段的执行需要1个时钟周期。假定CPU执行了 100条指令,在其执行过程中没有发生任何流水线阻塞,此时流水线的吞吐率为()。

A.0.25×109条指令/秒

B.0.97×109条指令/秒

C.1.0×109条指令/秒

D.1.03×109条指令/秒

[tag_link]

正确答案:C

采用 4 级流水执行 100 条指令,在执行过程中共用 4 + (100-1) =103 个时钟周期。CPU 的主频是 1.03GHz,也就是说每秒钟有 1.03G 个时钟周期。流水线的吞吐率为 1.03 G × 100/103 = 1.0 x 1 0 9 条指令/秒。


2013 年第 18 题 组成原理 选择题

某 CPU 主频为 1.03GHz,采用 4 级指令流水线,每个段的执行需要 1 个时钟周期。假定 CPU 执行了 100 条指令,在其执行过程中没有发生任何流水线阻塞,此时流水线的吞吐率为( )。

流水线概念

A.0.25×109条指令/秒

B.0.97×109条指令/秒

C.1.0×109条指令/秒

D.1.03×109条指令/秒

[tag_link] 正确答案:C采用 4 级流水执行 100 条指令,在执行过程中共用 4 + (100-1) =103 个时钟周期。CPU 的主频是 1.03GHz,也就是说每秒钟有 1.03G 个时钟周期。流水线的吞吐率为1.03G×100/103=1.0x109条指令/秒。


模拟卷 年第 19 题 组成原理 选择题

设指令由取指、分析、执行三个子部件完成,每个子部件的工作周期均为 t,采用常规标量流水线处理。若连续执行 10 条指令,则需要的时间为( )。

A. B. C. D.

流水线概念

[tag_link]

正确答案:C

在常规标量流水线中,指令执行分为取指、分析、执行三个阶段,每个阶段耗时均为

流水线处理允许连续指令重叠执行不同阶段,从而提升效率。 对于 个阶段(本题 )和 条指令(本题 ),总时间计算公式为:

代入具体数值:

这意味着第一条指令在 时完成,后续指令每隔 时间完成一条,第 10 条指令在 时完成,因此连续执行 10 条指令需要 时间。

选项中,A.

、B. 、D. 均不符合计算结果,故正确答案为 C。


模拟卷 年第 19 题 组成原理 选择题

流水线计算机中,下列语句发生的数据相关类型是( )。 ADD R1, R2, R3; (R2)+(R3)→R1 ADD R4, R1, R5; (R1)+(R5)→R4

A. 写后写 B. 读后写 C. 写后读 D. 读后读

汇编代码 流水线概念

[tag_link]

正确答案:C

在流水线计算机中,数据相关是指令之间由于共享寄存器或内存位置而导致的依赖关系。 分析给定的两条指令:第一条指令 ADD R1, R2, R3 将 R2 和 R3 的值相加后写入 R1; 第二条指令 ADD R4, R1, R5 需要读取 R1 的值与 R5 相加后写入 R4。 因此,第二条指令读取 R1 的操作依赖于第一条指令写入 R1 的结果。

这种依赖关系是第一条指令“写”R1,第二条指令“读”R1,即写操作之后发生读操作,属于写后读数据相关。 在流水线执行中,如果第二条指令的读阶段在第一条指令的写阶段之前发生,就会读取到旧值,导致数据冲突。 其他选项如写后写、读后写和读后读均不匹配此处依赖,因为指令间没有写入同一寄存器或先读后写的场景。


2017 年第 19 题 组成原理 选择题

下列关于指令流水线数据通路的叙述中,错误的是()。

A. 包含生成控制信号的控制部件 B. 包含算术逻辑运算部件( ALU) C. 包含通用寄存器组和取指部件 D. 由组合逻辑电路和时序逻辑电路组合而成

[tag_link]

正确答案:A

五阶段流水线 可分为取指(IF)、译码/取数(ID)、执行(EXC)、存储器读(MEM)、写回(Write Back)。数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为 数据通路 ,包括程序计数器、算术逻辑运算部件、通用寄存器组、取指部件等,不包括控制部件,故选 A。


2018 年第 20 题 组成原理 选择题

若某计算机最复杂指令的执行需要完成5个子功能,分别由功能部件A~E实现,各功能部件所需时间 分别为80ps 、50ps 、50ps、70ps和50ps, 采用流水线方式执行指令,流水段寄存器延时为20ps, 则CPU 时钟周期至少为()。

A.60ps

B.70ps

C.80ps

D.100ps

[tag_link]

正确答案:D

指令流水线的每个流水段时间单位为时钟周期,题中指令流水线的指令需要用到 A~E 五个部件,所以每个流水段时间应取:最大部件时间 80ps, 此外还有寄存器延时为 20ps, 则 CPU 时钟周期至少是 100ps。答案选 D。


模拟卷 年第 44 题 组成原理 综合题

(12 分)现有 4 级流水线,分别完成取指、指令译码并取数、运算、回写四步操作。假设完成各部操作的时间依次为 100ns、100ns、80ns、50ns。请问:

(1)流水线的操作周期应设计为多少?

(2)若相邻两条指令如下,发生数据相关,而且在硬件上不采取措施,那么第 2 条指令要推迟多少时间进行?

(3)如果在硬件设计上加以改进,至少需要推迟多少时间?

汇编代码 流水线概念

[tag_link]

【解析】

(1) 流水线操作的时钟周期 t 应按四步操作中的最长时间来考虑,所以 t = 100 ns 。

(2) 两条指令在流水线中执行情况如下表所示: 指令 时钟 1 时钟 2 时钟 3 时钟 4 时钟 5 时钟 6 时钟 7 ADD 取指 指令译码并取数 运算 写回 SUB 取指 指令译码并取数 运算 写回 ADD 指令在时钟 4 时将结果写入寄存器堆 (R1),但 SUB 指令在时钟 3 时读寄存器堆 (R1)。本来 ADD 指令应先写入 R1,SUB 指令后读 R1,结果变成 SUB 指令先读 R1,ADD 指令后写 R1,因而发生两条指令间数据相关。如果硬件上不采取措施,第 2 条指令 SUB 至少应推迟 2 个操作时钟周期( 2 × 100 ns ),即将 SUB 指令中的指令译码并取数阶段推迟到 ADD 指令的写回阶段之后才能保证不会出错。如下表所示: 指令 时钟 1 时钟 2 时钟 3 时钟 4 时钟 5 时钟 6 时钟 7 ADD 取指 指令译码并取数 运算 写回 SUB 取指 指令译码并取数 运算 写回

(3) 如果硬件上加以改进,可只延迟 1 个操作时钟周期(100ns)。因为在 ADD 指令中,运算阶段就已经得到结果了,因此可以通过数据旁路技术在运算结果一得到的时候将结果快速送入寄存器 R1,而不需要等到写回阶段完成。流水线中执行情况如下图所示: 时钟 1 2 3 4 5 6 7 ADD 取指 指令译码并取数 运算(并采用数据旁路技术写入寄存器 R1) 写回 取指 SUB 取指 指令译码并取数 运算 写回


模拟卷 年第 44 题 组成原理 综合题

(11 分)设有一个 CPU 的指令执行部件如下图所示,由 Cache 每隔 100ns 提供 1 条指令。(注:B1、B2 和 B3 是三个相同的并行部件)

(1)画出该指令流水线功能段的时空图。

(2)试计算流水线执行这 4 条指令的实际吞吐率和效率。

流水线概念

[tag_link]

【解析】 本题考查用时空图描述流水线的工作过程和流水线性能的计算方法。本题中的流水线使用重复设置瓶颈段的方法来消除瓶颈。B1、B2 和 B3 段是本题的关键,分为 3 条路径,每条都是 300ns,完全可以满足流水线的输入。

(1)在流水线的 B 段,可以同时并行执行 3 条指令。流水线的时空图如下所示。 [图片]

(2)完成 4 个任务的周期数为 T=(100+100+100+300+100+300)ns=1000ns;任务数为 N=4;则有吞吐率为: TP = T N ​ = 1000 4 ​ × 1 0 9 = 0.4 × 1 0 7 (条指令 / 秒) 流水线的效率为: 流水线的效率 = 总面积 任务所占面积 ​ = 7 × 10 ( 4 × 4 + 3 × 4 ) ​ = 40%


2012 年第 44 题 组成原理 综合题

某 16 位计算机中,带符号整数用补码表示,数据 Cache 和指令 Cache 分离。下表给出了指令系统中部分指令格式,其中 Rs 和 Rd 表示寄存器,mem 表示存储单元地址,(x) 表示寄存器 x 或存储单元 x 的内容。

该计算机采用 5 段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用 “按序发射,按序完成” 方式,没有采用转发技术处理数据相关,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题:

(1) 若 int 型变量 x 的值为 -513,存放在寄存器 R1 中,则执行指令 “SHR R1” 后,R1 的内容是多少(用十六进制表示)?

(2) 若某个时间段中,有连续的 4 条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这 4 条指令所需的时钟周期数为多少?

(3) 若高级语言程序中某赋值语句为 x=a+bxab 均为 int 型变量,它们的存储单元地址分别表示为[x][a][b]。该语句对应的指令序列及其在指令流水线中的执行过程如下图所示。

则这 4 条指令执行过程中,I3的 ID 段和I4的 IF 段被阻塞的原因各是什么?

(4) 若高级语言程序中某赋值语句为 x=x*2+axa 均为 unsigned int 类型变量,它们的存储单元地址分别表示为[x][a],则执行这条语句至少需要多少个时钟周期?要求模仿题 44 图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。

流水线概念 流水线冒险

[tag_link]

1)x 的机器码为[x]补= 1111 1101 1111 1111B,即指令执行前 (R1)=FDFFH,右移 1 位后为 1111 1110 1111 1111B,即指令执行后 (R1)= FEFFH。(2 分)

2)每个时钟周期只能有一条指令进入流水线,从第 5 个时钟周期开始,每个时钟周期都会有一条指令执行完毕,故至少需要 4+(5-1)=8 个时钟周期。(2 分)

3)I3的 ID 段被阻塞的原因:因为I3与I1和I2都存在 数据冒险,需等到I1和I2将结果写回寄存器后,I3才能读寄存器内容,所以I3的 ID 段被阻塞(1 分)。I4的 IF 段被阻塞的原因:因为I4的前一条指令I3在 ID 段被阻塞,所以I4的 IF 段被阻塞(1 分)。注意:要求“按序发射,按序完成”,故 2) 中下一条指令的 IF 必须和上一条指令的 ID 并行,以免因上一条指令发生冲突而导致下一条指令先执行完。

4)因 2*x 操作有左移和加法两种实现,故 x=x*2+a 对应的指令序列为:

I1    LOAD  R1, [x]
I2    LOAD  R2, [a]
I3    SHL   R1       // 或者 ADD R1, R1
I4    ADD   R1, R2
I5    STORE R2, [x]

这 5 条指令在流水线中的执行过程如下表所示: x=x*2+a 语句最少需要 17 个时钟周期。