🏷️ 知识点:数据通路

共 9 道相关题目

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

在微程序控制器中,以下说法正确的是( )。

A. I 和 II B. II 和 IV C. I 和 III D. II、III 和 IV

数据通路

[tag_link]

正确答案:B

首先分析每个说法的正确性:

说法 I 错误。 > 采用微程序控制方式的处理器不一定称为微处理器,微处理器通常指中央处理单元的集成芯片,其控制方式可以是微程序控制或硬连线控制,因此该说法不准确。 >

说法 II 正确。 > 在微程序控制器中,每一条机器指令确实对应一个微程序,由该微程序中的微指令序列来解释和执行指令,这是微程序控制的基本原理。 >

说法 III 错误。 > 微指令的编码方式中,直接编码(直接控制)方式每个控制位直接对应一个控制信号,无需解码,并行性高、执行速度快,因此执行效率较高,而不是最低。 > 效率较低的方式通常是字段编码等需要解码的垂直型微指令。 >

说法 IV 正确。 > 水平型微指令具有较长的微指令字,每个位或字段可直接控制数据通路的多个操作,允许在同一周期内发出多个控制信号,从而充分利用数据通路的并行结构。 >

综上,正确的说法是 II 和 IV,对应选项 B。 >


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

下列关于数据通路的叙述中,错误的是()。

A. 数据通路包含 ALU 等组合逻辑(操作)元件

B. 数据通路包含寄存器等时序逻辑(状态)元件

C. 数据通路不包含用于异常事件检测及响应的电路

D. 数据通路中的数据流动路径由控制信号进行控制

[tag_link]

正确答案:C

指令执行过程中数据所经过的路径,包括路径上的部件,称为数据通路。ALU、通用寄存器、状态寄存器、Cache、MMU、浮点运算逻辑、异常和中断处理逻辑等,都是指令执行过程中数据流经的部件,都属于 数据通路 的一部分。数据通路中的数据流动路径由控制部件控制,控制部件根据每条指令功能的不同,生成对数据通路的控制信号。


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

数据通路由组合逻辑元件(操作元件)和时序逻辑元件(状态元件)组成。下列给出的元件中,属于 操作元件的是()。

I. 算术逻辑部件( ALU)

II. 程序计数器( PC)

Ⅲ. 通用寄存器组 ( GPRs) IV. 多路选择题( MUX)

A. 仅I 、Ⅱ

B. 仅I、IV

C. 仅 Ⅱ、Ⅲ

D. 仅I 、Ⅱ 、IV

[tag_link]

正确答案:B

组合逻辑元件 是那些仅由组合逻辑电路组成的元件,其输出仅取决于当前的输入,而不受存储器或时钟信号的影响。算术逻辑部件 ALU 和多路选择器 MUX 都属于组合逻辑元件,它们的输出仅由当前输入决定。程序计数器 PC 和通用寄存器是时序逻辑元件,也称为状态元件。它们的输出不仅取决于当前输入,还受存储器或时钟信号的影响,并且具有状态或存储功能。因此本题选 B。


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

下列关于微指令编码方式的说法中,错误的是( )。

A. I、III 和 IV B. II 和 IV C. II 和 IV D. I、II 和 IV

数据通路 信道利用率

[tag_link]

正确答案:A

本题考查微指令编码方式的基本概念。 下面对各说法逐一分析:

说法 I 描述了字段直接编码的特点,即通过分组和译码,用较少的二进制位表示较多的微操作命令。 > 对于互斥微命令组,若微命令个数为 8,需要 3 位(2³=8); > 若为 9,需要 4 位(2⁴=16,可覆盖 9 个命令)。 > 该例子正确,且原理符合字段直接编码的优点,因此说法 I 正确。 >

说法 II 描述了直接编码(水平型微指令)的特点,即微指令中每一位直接对应一个微命令,无需译码。 > 这一说法准确,因此说法 II 正确。 >

说法 III 涉及垂直型微指令与水平型微指令的比较。 > 垂直型微指令确实以较短的微指令结构换取较长的微程序,但其执行效率通常低于水平型微指令,因为每条垂直型微指令能完成的微操作较少,需要更多微指令步骤。 > 灵活性方面,垂直型微指令可能较高,但并非“执行效率高、灵活性强都高于水平型微指令”。 > 因此说法 III 错误。 >

说法 IV 描述了字段间接编码的特点,即一个字段的译码输出需要依赖另一个字段的输入来确定其含义。 > 这符合字段间接编码的定义,因此说法 IV 正确。 >

综上,只有说法 III 错误。 > 但题目选项中,A 项包含了 I、III 和 IV,其中 I 和 IV 正确,III 错误。 > 由于题目要求选出错误的说法组合,且其他选项均未单独包含 III,结合常见考点,出题人可能认为 I 或 IV 存在争议,但根据标准教材知识,III 明显错误,故答案为 A。 >


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

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

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

[tag_link]

正确答案:A

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


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

下列关于 CPU 中的数据通路和控制器的叙述中,错误的是()。

A. 通用寄存器组中应该包含程序计数器

B. 控制器中一定包含指令操作码的译码电路

C. 单周期 CPU 中的控制器比多周期 CPU 中的更简单

D. 流水线 CPU 需解决数据相关和控制相关等冒险问题

[tag_link]

正确答案:A

A. 程序计数器(PC)是一个专用寄存器,用于存储下一条要执行指令的地址,它不属于通用寄存器组。通用寄存器组通常是用于算术、逻辑和数据存储等操作的寄存器,而程序计数器有其专门的用途和存储。❌ B. 控制器中一定包含指令操作码的译码电路:这是正确的。控制器需要对指令操作码进行译码,以确定应执行的操作和控制信号。✅ C. 单周期 CPU 的每条指令在一个时钟周期内完成,控制逻辑较为简单,而多周期 CPU 需要复杂的控制逻辑来管理每个周期的操作。✅ D. 流水线 CPU 由于同时处理多条指令,会遇到数据冒险、控制冒险等问题,需要通过转发、暂停、分支预测等技术来解决。✅


2015 年第 43 题 组成原理 综合题

[tag_link]

某 16 位计算机的主存按字节编址,存取单位为 16 位;采用 16 位定长指令字格式;CPU 采用单总线结构,主要部分如下图所示。

2012_Q41_1

图中 R0~R3 为通用寄存器;T 为暂存器;SR 为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3 种操作,控制信号为 SRop,SR 的输出由信号 SRout 控制;ALU 可实现直送 A(mova)、A 加 B(add)、A 减 B(sub)、A 与 B(and)、A 或 B(or)、非 A(not)、A 加 1(inc)这 7 种操作,控制信号为 ALUop。

注:已补充内总线到 MAR 的箭头和内总线到 IR 的箭头。

请回答下列问题。

(1) 图中哪些寄存器是程序员可见的?为何要设置暂存器 T?

(2) 控制信号 ALUop 和 SRop 的位数至少各是多少?

(3) 控制信号 SRout 所控制部件的名称或作用是什么?

(4) 端点①~⑨中,哪些端点须连接到控制部件的输出端?

(5) 为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。

(6) 为什么二路选择器 MUX 的一个输入端是 2?

寄存器类型 数据通路

1)程序员可见寄存器为通用寄存器(R0R3)和 PC。因为采用了单总线结构,因此,若无暂存器 T,则 ALU 的 A、B 端口会同时获得两个相同的数据,使数据通路不能正常工作。【评分说明】回答通用寄存器(R0R3),给分;回答 PC,给分;部分正确,酌情给分。设置暂存器 T 的原因若回答用于暂时存放端口 A 的数据,则给分;其他答案,酌情给分。

2)ALU 共有 7 种操作,故其操作控制信号 ALUop 至少需要 3 位;移位寄存器有 3 种操作,其操作控制信号 SRop 至少需要 2 位。

3)信号 SRout 所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。【评分说明】只要回答出三态门或者控制连接/断开,即给分。

4)端口 ①、②、③、⑤、⑧ 须连接到控制部件输出端。【评分说明】答案包含④、⑥、⑦、⑨中任意一个,不给分;答案不全酌情给分。

5)连线 1,⑥→⑨:连线 2,⑦→④。【评分说明】回答除上述连线以外的其他连线,酌情给分。

6)因为每条指令的长度为 16 位,按字节编址,所以每条指令占用 2 个内存单元,顺序执行时,下条指令地址为 (PC)+2。MUX 的一个输入端为 2,可便于执行 (PC)+2 操作。


2024 年第 43 题 组成原理 综合题

假定计算机 M 字长为 32 位。按字节编址,采用 32 位定长指令字,指令 add sllilw 的格式、编码和功能说明如题 43(a) 图所示。

2018_Q7_3

其中 R[x] 表示通用寄存器 x 的内容,M[x] 表示地址为 x 的存储单元内容,shamt 为移位位数,imm 为补码表示的偏移量。题 43(b) 图给出了计算机 M 的部分数据通路及其控制信号(用箭头虚线表示),其中,AB 分别表示从通用寄存器 rs1rs2 中读出的内容,IR[31:20] 表示指令寄存器中的高 12 位。控制信号 Ext 为 0、1 时扩展器分别实现零扩展,符写扩展 ALUctr 为 000、001、010 时 ALU 分别实现加、减、逻辑左移运算。

2018_Q7_3

请回答下列问题

(1) 计算机 M 最多有多少个通用寄存器?为什么 shamt 字段占 5 位?(2 分)

(2) 执行 add 指令时,控制信号 ALUBsrc 的取值应该是什么?若 rs1rs2 寄存器内容分别是 8765 4321H9876 5432H,则 add 指令执行后,ALU 输出端 FOFCF 的结果分别是什么?若设 add 指令处理的是无符号整数,则应根据哪个标志判断是否溢出(3 分)

(3) 执行 slli 指令时,控制信号 Ext 的取值可以是 0 也可以是 1,为什么?(2 分)

(4) 执行 lw 指令时,控制信号 ExtALUctr 的取值分别是什么?(2 分)

(5) 若一条指令的机器码是 A040 A103H,则该指令一定是 lw 指令,为什么?(2 分)

(6) 若执行该指令时,R[01H]=FFFF A2D0H,则所读取数据的存储地址是多少?(2 分)

指令格式 数据通路

[tag_link]

1)从 43 题 (a) 图可以看到,Y 寄存器 rs1 和 rs2 用 5 位表示,所以计算机 M 最多的是 2⁵=32 个寄存器。根据指令 R[rd] ← [rs1] << shamt 可知,shamt 表示左移。shamt:计算机的机器字长是 32 位,所以 shamt 表示左移的最大范围不能超过 32,所以只需要5bit 就可以表示对应的范围:log2 32=5。

2)ALUBsrc = 0,它的作用是支持 lw 指令和 imm 的偏移(R[rd] ← M[R[rs1]+imm])F 的计算如下:

  8765 4321
+ 9876 5432
------------
 11FDB 9753

由于计算机的机器字长是 32 位,所以最高位的 1 舍掉,F = 1FDB 9753H:OF 是溢出位,我们计算的结果发现确实发生了溢出和进位,所以 OF=1。CF 是进位位,计算时发现了最高位有进位,所以 CF=1。溢出的判断方法是,最高位进位(异或)次高位,计算过程发现最高位进位,次高位没有进位,所以 CF 是标志判断是否溢出。

3)slli 代表左移指令,slli 指令的高 12 位(即 IR[31:20])的最高位为 0,因此无论进行零扩展还是符号扩展,都是在高位补 0,效果等价,因此 Ext 可以是 0 也可以是 1。

4)R[rd] ← M[R[rs1]+imm] 这条指令的意思是,rs1 里的内容加上立即数,等于真正要访问的内存地址。计算偏移地址,偏移地址可正可负,应该使用补码表示。所以是符号扩展,Ext=1,然后表示加法,所以根据 (b) 图可知 ALUctr=000。

5)A040 A103H = 1010 0000 0100 0000 1010 0001 0000 0011B,60 位 = 0000011,中间的 1412 位 = 010,最高的 12 位为 A04H。其他两个指令 add 和 slli 的高 12 位都是 000H,所以该指令一定是 lw 指令。

6)A040 A103H = 1010 0000 0100 0000 1010 0001 0000 0011B,60 位 = 000 0011,中间的 1412 位 = 010,最高的 12 位为 A04。imm 是 31~25,也就是 A404 组(注意是符号扩展)扩展完 1111 1111 1111 1111 1111 1010 0000 0100,十六进制是 FFFF FA04。rs1 里的内容加上立即数,等于真正要访问的内存地址,R[O1H]=FFFF A2DOH,所以 FFFFFA04 + FFFFA2D0 = FFFF9CD4H。


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

某计算机采用 16 位定长指令字格式,其 CPU 中有一个标志寄存器,其中包含进位/借位标志 CF、零标志 ZF 和符号标志 NF。假定为该机设计了条件转移指令,其格式如下:

2012_Q41_1

其中,00000 为操作码 OP;C、Z 和 N 分别为 CF、ZF 和 NF 的对应检测位,某检测位为 1 时表示需检测对应标志,需检测的标志位中只要有一个为 1 就转移,否则就不转移,例如,若 C=1,Z=0,N=1,则需检测 CF 和 NF 的值,当 CF=1 或 NF=1 时发生转移;OFFSET 是相对偏移量,用补码表示。转移执行时,转移目标地址为 (PC)+2+2×OFFSET;顺序执行时,下条指令地址为 (PC)+2。请回答下列问题。

(1) 该计算机存储器按字节编址,还是按字编址?该条件转移指令向后(反向)最多可跳转最多少条指令?

(2) 某条件转移指令的地址为 200CH,指令内容如下图所示,若该执行时 CF=0,ZF=0,NF=1,则该指令执行后 PC 的值是多少?若该指令执行时 CF=1,ZF=0,NF=0,则该指令执行后 PC 的值又是多少?请给出计算过程。

2012_Q41_1

(3) 实现“无符号数比较小于等于时转移”功能的指令中,C、Z 和 N 应各是什么?

(4) 以下是该指令对应的数据通路示意图,要求给出中部件①~③的名称或功能说明。

2012_Q41_1

指令格式 标志寄存器 数据通路

1)因为指令长度为 16 位,且下条指令地址为 (PC)+2,故编址单位是字节。偏移量 OFFSET 为 8 位补码,范围为 -128~127,故相对于当前条件转移指令,向后最多可跳转 127 条指令。【评分说明】若正确给出 OFFSET 的取值范围,则酌情给分。

2)指令中 C=0,Z=1,N=1,故应根据 ZF 和 NT 的值来判断是否转移。当 CF=0,ZF=0,NF=1 时,需转移。己知指令中偏移量为 11100011B=E3H,符号扩展后为 FFE3H,左移一位(乘 2)后为 FFC6H,故 PC 的值(即转移目标地址)为 200CH+2+FFC6H=1FD4H。当 CF=1,ZF=0,NF=0 时不转移。PC 的值为 200CH+2=200EH。

3)指令中的 C、Z 和 N 应分别设置为 C=Z=1,N=0,进行数之间的大小比较通常是对两个数进行减法,而因为是无符号数比较小于等于时转移,即两个数相减结果为 0 或者负数都应该转移,若是 0,则 ZF 标志应当为 1,所以是负数,则借位标志应该为 1,而无符号数并不涉及符号标志 NF。

4)部件①用于存放当前指令,不难得出为指令寄存器;多路选择器根据符号标志 C/Z/N 来决定下一条指令的地址是 PC+2 还是 PC+2+2×OFFSET,故多路选择器左边线上的结果应该是 PC+2+2×OFFSET。根据运算的先后顺序以及与 PC+2 的连接,部件②用于左移一位实现乘 2,为移位寄存器。部件③用于 PC+2 和 2×OFFSET 相加,为加法器。部件②:移位寄存器(用于左移一位);部件③:加法器(地址相加)。【评分说明】合理给出部件名称或功能说明均给分。