🏷️ 知识点:寄存器类型

共 39 道相关题目

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

对汇编语言程序员来说,以下部件中不透明的是( )。

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

寄存器类型 汇编代码

[tag_link]

正确答案:C

在计算机体系结构中,对汇编语言程序员“不透明”的部件是指程序员需要直接了解或操作的部件,而“透明”的部件则由硬件自动管理,程序员无需关心其具体实现。

对于各个部件的分析如下:

  • I. 指令缓冲器:用于缓存指令,由硬件自动管理,程序员不直接控制,因此是透明的。 >
  • II. 移位器:执行移位操作,程序员通过移位指令(如SHL、SHR)使用,但移位器内部实现不可见,因此是透明的。 >
  • III. 通用寄存器:程序员在指令中直接指定寄存器来存储数据和进行计算,是汇编编程的基础,因此是不透明的。 >
  • IV. 中断寄存器:用于处理中断,程序员需要配置中断处理程序、设置中断向量等,在系统编程中直接操作,因此是不透明的。 >
  • V. 乘法器:执行乘法运算,程序员通过乘法指令(如MUL)使用,但乘法器本身是硬件单元,内部实现不可见,因此是透明的。 >
  • VI. 先行进位链:用于加速加法器,完全是硬件细节,程序员无需关心,因此是透明的。 >

综上所述,不透明的部件是III(通用寄存器)和IV(中断寄存器),对应选项C。 >


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

下列关于配备 32 位微处理器的计算机说法正确的是( )。

A. 该机器的通用寄存器一般为 32 位 B. 该机器的地址总线宽度为 32 位 C. 该机器能支持 64 位操作系统 D. 以上说法均不正确

总线类型 寄存器类型

[tag_link]

正确答案:A

32 位微处理器通常指其内部架构设计为处理 32 位数据,因此通用寄存器的宽度一般为 32 位,这是其基本特征之一。

选项 A 中使用了“一般”一词,涵盖了常见情况,因此说法正确。

对于选项 B,地址总线宽度并不总是与处理器位数相同。 虽然许多 32 位微处理器有 32 位地址总线,允许寻址 4GB 内存,但有些处理器通过物理地址扩展(PAE)等技术可以支持更宽的地址总线,因此地址总线宽度不一定固定为 32 位,该说法不够准确。

选项 C 明显错误,因为 32 位微处理器基于 32 位指令集架构,无法原生运行 64 位操作系统。 64 位操作系统需要 64 位硬件支持,包括 64 位寄存器和指令集。

由于选项 A 正确,选项 D“以上说法均不正确”自然不成立。 因此,本题正确答案是 A。


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

下列给出的部件中其位数(宽度)一定与机器字长相同的是()。

I.ALU

II. 指令寄存器

Ⅲ.通用寄存器

IV. 浮点寄存器

A. 仅I,II B. 仅I,II C. 仅I,II D. 仅 II,III, IV

[tag_link]

正确答案:B

机器字长 是指 CPU 内部用于整数运算的数据通路的宽度。CPU 内部数据通路是指 CPU 内部的数据流经的路径及路径上的部件,主要是 CPU 内部进行数据运算、存储和传送的部件,这些部件的宽度基本上要一致才能相互匹配。因此,机器字长等于 CPU 内部用于整数运算的运算器位数和通用寄存器宽度。ALU(算术逻辑单元) 功能 :执行加减乘除、位运算等。分析 :ALU 的宽度必须和机器字长一致,才能对一个机器字进行运算。✅ 一定与机器字长相同 指令寄存器(IR) 功能 :存放当前正在执行的指令。分析 : 指令寄存器的宽度取决于 指令长度 ,而不是机器字长。指令长度可能为 16 位、32 位、64 位等,不一定等于机器字长。❌ 不一定相同 通用寄存器 功能 :存放数据、地址、中间计算结果。分析 :通用寄存器通常与机器字长相等,以便完整存储一个字。✅ 通常与机器字长相同 浮点寄存器 功能 :专门存储浮点数(如 IEEE 754 格式) 分析 : 浮点寄存器的宽度通常和浮点数格式有关(如 32 位单精度,64 位双精度)。这与机器字长无固定关系,有的机器字长是 32 位,但支持 64 位浮点数。❌ 不一定相同 所以 I、III 正确,答案选择 B。


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

已知 C 程序中,某类型为 int 的变量 x 的值为 -1088。程序执行时,x 先被存放在 16 位寄存器 R1 中,然后被进行算术右移 4 位的操作。则此时 R1 中的内容(以十六进制表示)是( )。

A. FBCOH B. FFBCH C. 0FBCH D. 87BCH

补码 寄存器类型

[tag_link]

正确答案:B

首先,变量 x 的值为 -1088,在 16 位寄存器中采用二进制补码表示。 1088 的十六进制表示为 0x0440,对其取反加一得到 -1088 的表示:0xFFFF - 0x0440 + 1 = 0xFBBF + 1 = 0xFBC0。 因此,寄存器 R1 初始内容为 0xFBC0。

执行算术右移 4 位时,由于符号位为 1,左移空出的高位补 4 个 1。 原始值 0xFBC0(二进制 1111 1011 1100 0000)右移 4 位后,低 4 位丢弃,高 4 位补 1,得到 1111 1111 1011 1100,即十六进制 0xFFBC。

另一种验证方式:算术右移 4 位等价于除以 16。 计算 -1088 / 16 = -68,而 -68 的 16 位二进制补码表示为 0xFFBC(68 为 0x0044,取反加一得 0xFFBC)。 因此,移位后 R1 的内容为 0xFFBC。

选项 A 为原始值,选项 C 和 D 均为正数表示,与结果不符,故正确答案为 B。


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

在 C 语言中,short 型的长度为 16 位,若编译器将一个 short 型变量 x 分配到一个 32 位寄存器 R 中,且 X=0x8FA0,则 R 的内容为( )。

A. 0x00008FA0 B. 0xFFFF8FA0 C. 0xFFFFFFA0 D. 0x80008FA0

寄存器类型

[tag_link]

正确答案:B

在 C 语言中,short 类型默认为有符号整数,长度为 16 位。 当将其值存入 32 位寄存器时,需要进行符号扩展以保持数值不变。 给定 x = 0x8FA0,其二进制表示为 1000 1111 1010 0000,最高位为 1,表示负数。 符号扩展时,高 16 位需用符号位(1)填充,因此扩展后的 32 位值为 0xFFFF8FA0


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

下列关于各种寻址方式获取操作数快慢的说法中,正确的是( )。 Ⅰ. 立即寻址快于堆栈寻址 Ⅱ. 堆栈寻址快于寄存器寻址 Ⅲ. 寄存器一次间接寻址快于变址寻址 Ⅳ. 变址寻址快于一次间接寻址

A. Ⅰ和Ⅳ B. Ⅱ和Ⅲ C. Ⅰ、Ⅲ和Ⅳ D. Ⅲ和Ⅳ

指令寻址方式 寄存器类型

[tag_link]

正确答案:C

Ⅰ. 立即寻址中操作数直接包含在指令中,无需访问内存或寄存器,因此获取速度最快; 堆栈寻址通常需要通过堆栈指针访问内存,涉及内存访问,速度较慢。 故立即寻址快于堆栈寻址,Ⅰ正确。 Ⅱ. 堆栈寻址需要访问内存,而寄存器寻址直接访问CPU内部寄存器,寄存器寻址速度更快。 因此堆栈寻址快于寄存器寻址的说法错误,Ⅱ不正确。 Ⅲ. 寄存器一次间接寻址先从寄存器获取地址,再访问内存一次; 变址寻址需计算地址(基址加偏移量)后再访问内存一次。 由于变址寻址多了地址计算步骤,寄存器一次间接寻址通常更快,Ⅲ正确。 Ⅳ. 变址寻址经过一次地址计算和一次内存访问; 一次间接寻址(通常指内存间接)需两次内存访问(先取地址再取操作数)。 因此变址寻址快于一次间接寻址,Ⅳ正确。 综上,Ⅰ、Ⅲ和Ⅳ正确,对应选项C。


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

假设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对��移量,用补码表示。每当 CPU 从存储器取出一个字节时,即自动完成 (PC)+1 → PC。若当前 PC 值为 2000H,2000H 处的指令为 JMP * 9(*为相对寻址特征),则执行完这条指令后,PC 值为( )。

A. 1FF7H B. 1FF8H C. 1FF9H D. 1FFAH

寄存器类型

[tag_link]

正确答案:C

相对寻址的转移指令占两个字节,第一个字节为操作码,第二个字节为相对位移量(补码表示)。 CPU 每取一个字节,PC 自动加 1。 初始 PC=2000H,取指令过程如下:从 2000H 取操作码后 PC=2001H; 从 2001H 取位移量后 PC=2002H。 取指完成后,PC 指向下一条指令地址 2002H。

相对寻址的目标地址计算公式为:目标地址 = 当前 PC + 位移量。 此处当前 PC 为取指后的值 2002H。 题目中指令为 JMP * 9,其中“9”应为位移量。 但结合选项,目标地址均小于 2002H,说明位移量为负数。 若位移量为 -9(补码表示为 F7H),则目标地址 = 2002H + (-9) = 1FF9H。

因此,执行完这条指令后,PC 值为 1FF9H,对应选项 C。


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

为了缩短指令中某个地址段的位数,有效的方法是采取( )。

A. 立即寻址 B. 变址寻址 C. 间接寻址 D. 寄存器寻址

寄存器类型 指令寻址方式

[tag_link]

正确答案:D

为了缩短指令中地址段的位数,有效的方法是采用寄存器寻址。 在寄存器寻址中,操作数存储在寄存器中,指令中只需指定寄存器编号。 由于寄存器数量有限(例如,32 个寄存器仅需 5 位二进制表示),而内存地址通常需要较多位数(如 32 位或 64 位),因此使用寄存器编号替代内存地址能显著减少地址段所需的位数。

其他选项分析:立即寻址将操作数直接包含在指令中,虽能缩短指令整体长度,但它是消除地址段而非缩短地址段位数; 变址寻址通过寄存器与偏移量组合形成地址,偏移量可能较短,但需额外指定寄存器,不直接优化地址段位数; 间接寻址指令中包含一个间接地址,该地址位数通常与内存地址相近,不能有效缩短地址段位数。 因此,寄存器寻址是最直接有效的方法。


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

在通用计算机指令系统的二地址指令中,操作数的物理位置可安排在( )。 I. 一个主存单元和缓冲存储器 II. 两个数据寄存器 III. 一个主存单元和一个数据寄存器 IV. 一个数据寄存器和一个控制存储器 V. 一个主存单元和一个外存单元

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

寄存器类型

[tag_link]

正确答案:B

在通用计算机指令系统的二地址指令中,操作数的物理位置是指指令能够直接寻址或指定的存储位置。 分析各选项:缓冲存储器(如缓存)通常对程序员透明,指令不能直接寻址缓存地址,因此 I 不正确; 两个数据寄存器(II)是常见的安排,如寄存器 - 寄存器指令; 一个主存单元和一个数据寄存器(III)也常见,如寄存器 - 内存指令; 控制存储器用于存储微程序,不是数据操作数的存储位置,因此 IV 不正确; 外存单元(如磁盘)需要通过 I/O 机制访问,指令不能直接寻址,因此 V 不正确。 综上,只有 II 和 III 是合理的安排,对应选项 B。


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

假设寄存器 R 中的数值为 200,主存地址为 200 和 300 的地址单元中存放的内容分别是 300 和 400,则( )访问到的操作数为 200。

A. Ⅰ和Ⅳ B. Ⅱ、Ⅲ C. Ⅲ、Ⅳ D. 只有Ⅰ

寄存器类型 指令寻址方式

[tag_link]

正确答案:D

本题考查各种数据寻址方式的原理。 直接寻址 200 中,200 就是有效地址,所访问的主存地址 200 对应的内容是 300,Ⅰ错误。 寄存器间接寻址(R)的访问结果与Ⅰ一样,Ⅱ错误。 存储器间接寻址(200)表示主存地址 200 中的内容为有效地址,所以有效地址为 300,访问的操作数是 400,Ⅲ错误。 寄存器寻址 R 表示寄存器 R 的内容即为操作数,所以只有Ⅳ正确。 此类题建议画出草图。


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

下列关于基址寻址和变址寻址的说法中,正确的是( )。 I. 两者都扩大指令的寻址范围 II. 变址寻址适合于编制循环程序 III. 基址寻址适合于多程序设计 IV. 基址寄存器的内容由操作系统确定,在执行的过程中可变 V. 变址寄存器的内容由用户确定,在执行的过程中不可变

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

指令寻址方式 寄存器类型

[tag_link]

正确答案:A

基址寻址和变址寻址都是通过将寄存器内容与指令中的地址字段相加来形成有效地址,这可以突破指令地址字段的长度限制,从而扩大寻址范围,因此说法 I 正确。 变址寻址中,变址寄存器的值可以在程序执行中动态变化,便于遍历数组或重复执行类似操作,非常适合编制循环程序,说法 II 正确。 基址寻址通过基址寄存器实现程序重定位,使操作系统能将程序加载到内存任意位置,利于多道程序设计中的内存管理,说法 III 正确。

说法 IV 错误,因为基址寄存器的内容通常由操作系统在程序加载时设定,但在程序执行过程中一般保持不变,以确保地址翻译的稳定性。 说法 V 错误,变址寄存器的内容由用户程序设定,且在执行过程中经常变化(如在循环中修改),以实现灵活的数据访问。 因此,正确说法为 I、II 和 III,对应选项 A。


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

某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位, Store 指 令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存 器,且偏移量用补码表示,则Store 指令中偏移量的取值范围是()。

A.-32768~+32767

B.-32767+~32768

C.-65536~+65535

D.-65535~+65536

[tag_link]

正确答案:A

采用 32 位定长指令字,其中操作码为 8 位,两个地址码一共占用 32-8=24 位,而 Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址,机器中共有 16 个通用寄存器,则寻址一个寄存器需要 logz16 =4 位,源操作数中的寄存器直接寻址用掉 4 位,而目的操作数采用基址寻址也要指定一个寄存器,同样用掉 4 位,则留给偏移址的位数为 24-4-4=16 位,而偏移址用补码表示,16 位补码的表示范围为 -32768~+32767,选 A。


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

某指令功能为R[r2]-R[r1]+M[R[r0]], 其两个源操作数分别采用寄存器、寄存器间接寻址方式。对于 下列给定部件,该指令在取数及执行过程中需要用到的是()。

I. 通用寄存器组(GPRs) II. 算术逻辑单元(ALU)

II. 存储器(Memory) IV. 指令译码器(ID)

A. 仅 I、Ⅱ B. 仅 I、Ⅱ、Ⅲ C. 仅 Ⅱ、Ⅲ、IV D. 仅 I、Ⅲ、IV

[tag_link]

正确答案:B

该指令的两个源操作数分别采用 寄存器寻址 和 寄存器间接寻址 ,因此在取数阶段需要用到通用寄存器组和存储器;在执行阶段,两个源操作数相加需要用到算术逻辑单元;而指令译码器用于操作码字段进行译码,向控制器提供特定的操作信号,在取数及执行阶段用不到,所以答案选 B。


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

下列存储器中,汇编语言程序员可见的是()。

I. 指令寄存器

Ⅱ .微指令寄存器

Ⅲ.基址寄存器

IV. 标志状态寄存器

A. 仅I 、Ⅱ

B. 仅I 、 IV

C. 仅Ⅱ、IV

D. 仅Ⅲ、IV

[tag_link]

正确答案:D

参考 汇编程序员可见寄存器 ,指令寄存器(IR)和 微指令寄存器 都是 CPU 控制的,程序员无法通过汇编代码直接操作。基址寄存器、标志状态寄存器(FLAGS)程序员可见。


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

下列关于RISC的叙述中,错误的是()。

A. RISC 普遍采用微程序控制器

B. RISC大多数指令在一个时钟周期内完成

C. RISC的内部通用寄存器数量相对CISC多

D.RISC 的指令数、寻址方式和指令格式种类相对CISC少

[tag_link]

正确答案:A

相对于 CISC , RISC 的特点是指令条数少;指令长度固定,指令格式和寻址种类少:只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行;CPU 中通用寄存器多;大部分指令在一个或者小于一个机器周期内完成;以硬布线逻辑为主,不用或者少用微程序控制。选项 B、C、D 都是 RISC 的特点,选项 A 是错误的,因为 RISC 的速度快,所以普遍采用硬布线控制器,而非微程序控制器。


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

指令( )从主存中读出:

A. 总是根据程序计数器 PC B. 有时根据 PC,有时根据转移指令 C. 根据地址寄存器 D. 有时根据 PC,有时根据地址寄存器

寄存器类型

[tag_link]

正确答案:A

在计算机系统中,程序计数器(PC)专门用于存储下一条要执行指令的地址。 指令的取指阶段总是基于PC的当前值从主存中读取指令,这是冯·诺依曼架构的基本工作原理。 即使遇到转移指令(如跳转或分支),也是先将计算出的目标地址加载到PC中,然后继续根据更新后的PC读取指令,因此指令读取始终依赖于PC。

其他选项中,B提到“有时根据转移指令”不正确,因为转移指令仅修改PC的值,不直接作为读取地址的来源; C和D涉及地址寄存器,但地址寄存器通常用于数据访问或特定寻址模式,并非指令读取的常规依据。 因此,A是唯一准确的描述。


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

在计算机体系结构中,CPU 内部包括程序计数器 PC、存储器数据寄存器 MDR、指令寄存器 IR 和存储器地址寄存器 MAR 等。若 CPU 要执行的指令为:MOV RO, #100(即将数值 100 传送到寄存器 RO),则 CPU 首先完成的操作是( )。

A. 100→RO B. 100→MDR C. PC→MAR D. PC→IR

寄存器类型

[tag_link]

正确答案:C

CPU 执行指令的第一步是取指阶段。 在这个阶段,CPU 需要从内存中读取当前要执行的指令。 程序计数器 PC 存储了下一条指令的内存地址。 为了访问内存,CPU 首先将 PC 的内容送到存储器地址寄存器 MAR,以便内存控制器根据该地址定位指令所在的位置。 随后,内存将指令数据通过数据总线传送到存储器数据寄存器 MDR,再送入指令寄存器 IR 进行译码。 对于指令“MOV RO, #100”,虽然最终目的是将立即数 100 传送到寄存器 RO,但 CPU 必须首先取指,因此最初的操作是 PC→MAR。 选项 A 和 B 涉及指令执行阶段的操作,发生在取指之后; 选项 D 不符合标准取指流程,因为 PC 不直接送入 IR。


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

下列部件不属于控制器的是( )。

A. 指令寄存器 B. 程序计数器 C. 程序状态字寄存器 D. 时序电路

寄存器类型

[tag_link]

正确答案:C

控制器是 CPU 的核心部件,负责指令译码、产生控制信号以协调计算机各部件工作。 典型控制器包括指令寄存器、程序计数器、时序电路等。 指令寄存器(A)用于存储当前执行的指令,程序计数器(B)存放下一条指令地址,时序电路(D)产生定时信号控制指令执行步骤,三者均属于控制器。 程序状态字寄存器(C)主要存储处理器的状态信息(如进位、零标志等),这些信息反映运算器操作结果,虽可供控制器使用,但其本身属于处理器状态单元或运算器关联部分,不属于控制器。 因此,本题选项中不属于控制器的是程序状态字寄存器。


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

下列部件不属于运算器的是( )。

A. 状态寄存器 B. 通用寄存器 C. ALU D. 数据高速缓存

寄存器类型 运算电路

[tag_link]

正确答案:D

运算器是 CPU 的核心部件之一,主要负责执行算术运算和逻辑运算。 其典型组成包括 ALU(算术逻辑单元)、通用寄存器和状态寄存器等。 ALU 是运算器的核心,直接处理数据运算; 通用寄存器用于临时存储运算数据和中间结果; 状态寄存器则记录运算结果的状态标志,如进位、溢出等。 这些部件共同协作完成运算任务。

数据高速缓存属于存储器层次结构,位于 CPU 和主存之间,用于加快数据访问速度,减少 CPU 等待时间。 它是存储系统的一部分,并不直接参与运算过程,因此不属于运算器的组成部分。 所以,本题中不属于运算器的部件是数据高速缓存。


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

下列寄存器中,汇编语言程序员可见的是()。

A. 存储器地址寄存器(MAR)B. 程序计数器(PC) C. 存储器数据寄存器(MDR)D. 指令寄存器(IR)

[tag_link]

正确答案:B

读者首先必须明白“ 汇编程序员可见 ”的含义,即汇编语言程序员通过汇编程序可以对某个寄存器进行访问。

汇编程序员可以通过指定待执行指令的地址来设置 PC 的值,如转移指令、子程序调用指令等。

而 R、MAR、MDR 是 CPU 的内部工作寄存器,程序员无法直接获取和设置它们的值,也无法直接对它们进行其他操作,所以对程序员不可见。

【提示】①指令寄存器 R 中的内容总是根据 PC 所取出的指令代码。

②在 CPU 的专用寄存器中,只有 PC 和 PSWR 是汇编程序员可见的。


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

某计算机主存空间为4GB, 字长为32位,按字节编址,采用32位定长指令字格式,若指令按字边界 对齐存放,则程序计数器(PC) 和指令寄存器(IR) 的位数至少分别是()。

A. 30、30 B. 30、32 C. 32、30 D. 32、32

[tag_link]

正确答案:B

程序计数器(PC)给出下一条指令字的访存地址(指令在内存中的地址),取决于存储器的字数(4 GB / 32bit = 2³⁰),故程序计数器(PC)的位数至少是 30 位;指令寄存器(IR)用于接收取得的指令,取决于指令字长(32 位),故指令寄存器(IR) 的位数至少为 32 位。


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

下列关于主存储器( MM) 和控制存储器( CS) 的叙述中,错误的是()。

A.MM 在CPU外 ,CS在 CPU内 B. MM按地址访问,CS 按内容访问 C.MM 存储指令和数据,CS 存储微指令 D.MM 用RAM 和ROM 实现,CS 用ROM实现

[tag_link]

正确答案:B

主存储器就是我们通常说的主存,在 CPU 外,存储指令和数据,由 RAM 和 ROM 实现。控制存储器 用来存放实现指令系统的所有微指令,是一种只读型存储器,机器运行时只读不写,在 CPU 的控制器内。CS 按照微指令的地址访问,所以 B 错误。


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

假定某计算机系统的 CPU 内部采用总线结构,其指令的取指周期由以下微操作序列实现,即: a. MAR ← (PC); b. MDR ← Memory, Read; c. PC ← (PC)+1; d. IR ← (MDR). 一种较好的设计是为其安排( )个节拍周期。

A. 1 B. 2 C. 3 D. 4

寄存器类型

[tag_link]

正确答案:C

**【解析】**在取指周期的微操作序列中:

  • 微操作 a(`MAR←(PC)`)与微操作 c(`PC←(PC)+1`)可以并行执行。 > 因为 a 读取 PC 的当前值用于地址传输,c 更新 PC 为新值。 > 在硬件设计上,可以在同一节拍内先读取 PC 的旧值,再更新为新值,两者无冲突。 >
  • 微操作 b(`MDR←Memory, Read`)依赖于 a 提供的地址,必须在 a 之后单独节拍执行。 >
  • 微操作 d(`IR←(MDR)`)依赖于 b 读取的数据,必须在 b 之后单独节拍执行。 >

因此,最少需要 **3 个节拍周期**:

  1. 第一节拍并行执行 a 和 c; >
  2. 第二节拍执行 b; >
  3. 第三节拍执行 d。 >

这种设计优化了节拍数,提高了取指效率。 >


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

在以下描述 PCI 总线的基本概念中,正确的描述是( )。 I. PCI 总线是一个与处理器无关的高速外围总线 II. PCI 总线的基本传输机制是猝发式传送 III. PCI 设备一定是主设备 IV. 系统中只允许有一条 PCI 总线

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

寄存器类型

[tag_link]

正确答案:D

首先,分析每个描述的正确性。

描述 I 指出 PCI 总线是一个与处理器无关的高速外围总线。 PCI 总线在设计上独立于特定处理器架构,可以兼容多种 CPU 系统,同时它确实是一种高速总线,用于连接外围设备如显卡、网卡等,因此描述 I 正确。

描述 II 提到 PCI 总线的基本传输机制是猝发式传送。 PCI 总线支持猝发传输模式,允许在单一事务中连续传输多个数据单元,以提高数据传输效率,这是其基本特性之一,因此描述 II 正确。

描述 III 声称 PCI 设备一定是主设备。 实际上,PCI 总线上的设备可以扮演主设备(发起传输)或从设备(响应传输)的角色,并非所有设备都是主设备,例如一些存储控制器可能仅作为从设备,因此描述 III 错误。

描述 IV 认为系统中只允许有一条 PCI 总线。 PCI 总线架构允许通过桥接器(如 PCI-to-PCI 桥)扩展多条总线,因此一个系统中可以存在多条 PCI 总线,描述 IV 错误。

综上,只有描述 I 和 II 正确,对应选项 D。


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

CPU 响应中断时,保护两个关键的硬件状态是( )。

A. PC 和 PSW B. PC 和 IR C. AR 和 IR D. AR 和 PSW

寄存器类型

[tag_link]

正确答案:A

CPU响应中断时,必须保存当前程序的执行现场,以便在中断处理结束后能准确恢复原程序的运行。 两个最关键的硬件状态是程序计数器(PC)和程序状态字(PSW)。 PC存储了下一条要执行的指令地址,保护PC能确保中断返回后继续执行原程序; PSW包含了处理器的状态标志(如条件码、中断使能位等),保护PSW能维持处理器的状态一致性。

其他选项中,IR(指令寄存器)存放当前指令,但中断响应时通常不保护它,因为中断处理更关注未来执行的地址和整体状态; AR(地址寄存器)用于内存寻址,也不是必须保护的核心状态。 因此,选项A正确。


2026 年第 22 题 组成原理 选择题

中断控制 I/O 方式下,实现 I/O 需要硬件和软件协同完成,中断响应和处理过程中所包含的下列工作中,必须由硬件完成的是()

A. 开中断 B. 中断 C. 保存断点 D. 保存通用寄存器

[tag_link]

正确答案:C

**【解析】**在中断控制 I/O 方式下,中断响应和处理需要硬件和软件协同工作。

  • 保存断点(即程序计数器的值)必须由硬件自动完成。因为中断发生时需立即保存返回地址,以确保后续能正确恢复执行。
  • 开中断是通过软件指令实现的,用于允许或禁止中断嵌套。
  • 中断请求由硬件设备产生,但响应和处理过程涉及软硬件配合。
  • 保存通用寄存器通常由中断服务程序(软件)完成,以保护原程序的上下文。因此,只有保存断点必须由硬件完成。

2015 年第 23 题 操作系统 选择题

处理外部中断时,应该由操作系统保存的是( )。

寄存器类型 中断IO

A. 程序计数器(PC)的内容 B. 通用寄存器的内容 C. 块表(TLB)中的内容 D. Cache 中的内容

[tag_link] 正确答案:B 外部中断处理过程 中,PC 值由中断隐指令自动保存,而通用寄存器 内容由操作系统保存。


2012 年第 24 题 操作系统 选择题

中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是( )。

寄存器类型

A. 程序计数器

B. 程序状态字寄存器

C. 通用数据寄存器

D. 通用地址寄存器

[tag_link]

正确答案:B子程序调用只需保存程序断点,即该指令的下一条指令的地址;中断调用子程序不仅要保护断点(PC 的内容),而且要保护程序状态字寄存器的内容 PSW。在中断处理中,最重要的两个寄存器是 PC 和 PSWR。


2024 年第 25 题 操作系统 选择题

在支持页式存储管理的系统中,进程切换时 OS 要执行()。

I. 更新 PC(程序计数器)值II. 更新栈基址寄存器值(ebp)III. 更新页表基址寄存器值

虚拟页式管理 寄存器类型

A. 仅 III B. 仅 I、II C. 仅 I、III D. I、II、III

[tag_link]

正确答案:D

I. 更新程序计数器的值:程序计数器存储了下一条要执行的指令的地址。当进程切换时,操作系统需要更新程序计数器的值,以便于新的进程能从正确的位置开始执行。II. 更新栈基址寄存器的值:栈基址寄存器存储了当前进程栈的基址。当进程切换时,操作系统需要更新栈基址寄存器的值,以确保新的进程使用正确的栈。III. 更新页表基址寄存器值:页基址寄存器存储了当前进程的页表基址。当进程切换时,操作系统需要更新页基址寄存器的值,以确保新的进程能正确地访问其内存空间。


模拟卷 年第 32 题 操作系统 选择题

下列关于中断 I/O 方式的描述中,正确的是( )

A. CPU 在 I/O 设备进行数据准备时一直处于等待状态,直到 I/O 操作完成

B. 中断 I/O 方式下,每传输一个数据块都需要 CPU 进行多次干预

C. 中断处理过程中,CPU 在响应中断请求后立即保存当前进程的 PCB 信息

D. 采用中断驱动 I/O 方式时,CPU 与 I/O 设备之间无法实现并行工作

寄存器类型 进程控制块

[tag_link]

正确答案:B

A ❌ 描述的是 程序直接控制(轮询)方式 的特点,中断 I/O 方式中 CPU 在设备准备数据时可执行其他任务,无需忙等。 B ✅ 中断 I/O 方式下,每完成一个 字(或字节) 的传输,设备便向 CPU 发出中断请求,CPU 需介入进行数据存取与状态处理,因此传输一个数据块需多次中断及 CPU 干预。 C ❌ 响应中断后,CPU 首先保存的是 当前程序的现场(如 PC、寄存器等) ,而非整个 PCB; PCB 的保存通常在进程切换时发生,并非中断响应的立即操作。 D ❌ 中断 I/O 方式正是为了实现 CPU 与 I/O 设备的并行工作,设备准备数据时 CPU 可执行其他任务,通过中断机制进行协调。


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

(12 分)假设有两个整数 。采用补码形式(含 1 位符号位)表示, 分别存放在寄存器 A 和 B 中。另外,还有两个寄存器 C 和 D。A、B、C、D 都是 8 位的寄存器。请回答下列问题:(要求最终用十六进制表示二进制序列)

(1)寄存器 A 和 B 中的内容分别是什么? (2) 相加后的结果存放在 C 寄存器中,寄存器 C 中的内容是什么?此时,溢出标志位 OF 是什么?符号标志位 SF 是什么?进位标志位 CF 是什么? (3) 相减后的结果存放在 D 寄存器中,寄存器 D 中的内容是什么?此时,溢出标志位 OF 是什么?符号标志位 SF 是什么?进位标志位 CF 是什么?

寄存器类型 标志寄存器

[tag_link]

**【解析】** 本题考查补码的机内表示、补码的运算和溢出判断。

(1)因 ,则 ;因 ,则 ,所以寄存器 A 和 B 中的内容分别是 BCH、B0H。

(2) ,所以寄存器 C 中的内容是 6CH,其真值为 108。此时,溢出标志位 OF 为 1,表示溢出,即说明寄存器 C 中的内容不是真正的结果;符号标志位 SF 为 0,表示结果为正数(溢出标志为 1,说明符号标志有错);进位标志位 CF 为 1,仅表示加法器最高位有进位,对运算结果不说明什么。

(3) ,最高位前面的一位被丢弃(取模运算),结果为 12,所以寄存器 D 中的内容是 0CH,其真值为 12。此时,溢出标志位 OF 为 0,表示不溢出,即:寄存器 D 中的内容是真正的结果;符号标志位 SF 为 0,表示结果为正数;进位标志位 CF 为 1,仅表示加法器最高位有进位,对运算结果不说明什么。


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

(11 分)已知两个实数 ,它们在 C 语言中定义为 float 型变量,分别存放在寄存器 A 和 B 中。另外,还有两个寄存器 C 和 D。A、B、C、D 都是 32 位的寄存器。请问下列问题(要求用十六进制表示二进制序列): (1)寄存器 A 和 B 中的内容分别是什么? (2) 相加后的结果存放在 C 寄存器中,寄存器 C 中的内容是什么? (3) 相减后的结果存放在 D 寄存器中,寄存器 D 中的内容是什么?

寄存器类型 补码

[tag_link]

**【答案】** (1)寄存器 A 中的内容为 0xC2880000,寄存器 B 中的内容为 0xC1040000。 (2)寄存器 C 中的内容为 0xC2988000。 (3)寄存器 D 中的内容为 0xC26F0000。

**【解析】** 对于浮点数采用 IEEE 754 单精度格式(32 位),其中包含 1 位符号位、8 位指数位(偏移量 127)和 23 位尾数位。

**(1)对于 :**

  • 符号位 (负数)。
  • 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为
  • 尾数 为隐藏最高位 1 后的小数部分 ,扩展至 23 位得到
  • 组合得到二进制 ,十六进制为

**对于 :**

  • 符号位 (负数)。
  • 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为
  • 尾数 ,扩展至 23 位得到
  • 组合得到二进制 ,十六进制为

**(2) :**

  • 符号位 (负数)。
  • 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为
  • 尾数 ,扩展至 23 位得到
  • 组合得到二进制 ,十六进制为

**(3) :**

  • 符号位 (负数)。
  • 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为
  • 尾数 ,扩展至 23 位得到
  • 组合得到二进制 ,十六进制为

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 操作。


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

(本题满分 15 分)假定 43 题中计算机 C 的部分数据通路如题 44 所示。

2018_Q7_3

图中带箭头虚线代表控制信号,IR.rt、IR.rs 分别表示 IR 中的 rt、rs 字段,IR₁₁₋₀ 为 IR 的低 12 位,要求取指令周期完成 PC 增量操作,请回答下列问题 (1)①和②是同一类部件,其名称是什么(1 分)

(2)I 型指令中 imm8 可以是带符号或无符号整数,M 型指令中 offset 是带符号整数,则 EXTOP 至少有几位?为什么?(2 分)

(3)取指周期中 MARSrC、ALUA SrC、ALUB SrC、RegWr 的取值各是什么?(4 分)

(4)左移指令周期中 ALUB SrC、RegWsrc、RegDst、RegWr 的取值各是什么?Extop 是否可以与 M 型指令中的 EXTop 相同?为什么?(2 分)

[tag_link]

【答案】

(1) 多路选择器R 型指令需要用到寄存器编号 rs 和 rt,M 型指令需要用到寄存器 0 和 15,所以需要通过二路选择器进行选择。

(2) 只需要 1 位,因为只需要 1 位就可以实现零扩展和符号扩展这两种操作。

(3) 先解释各个控制信号的含义:

信号本质问题
MARSrC访问内存的地址来自 PC 还是 ALU
ALUASrCALU 的 A 端用 PC 还是寄存器
ALUBSrCALU 的 B 端用 Rb / 常数 / 立即数
RegWr要不要写寄存器
RegWsrc写回数据来自 ALU 还是 MDR
RegDst写哪个寄存器
2R指令分阶段送给控制器

在取指阶段需要读取 PC 地址的指令内容,并且要计算 PC=PC+2 获取下一条指令的地址,不涉及到通用寄存器的写入。所以 MARSrc=0, ALUA Src=0, ALUB Src=1, RegWr = 0

(4) 左移指令需要通过扩展器获取到左移的立即数,所以 ALUB Src=2,计算结果通过 ALU 写回到通用寄存器中,所以 RegWSrc=1,RegWr=1,写入的寄存器位 R[rt],所以 RegDst=1。综上:ALUB Src=2, RegWSrc=1, RegDst=1, RegWr=1


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

已知带返转指令的含义如下图所示:

(1)机器周期长度固定,写出机器在执行带返转指令时,硬布线控制取指令段和执行阶段所需的全部微操作命令及节拍安排。

(2)若采用微程序控制,还需增加哪些微操作?

(3)假设该机指令系统采用 6 位定长操作码格式,共对应多少个微程序?

(4)在原理、执行速度和灵活性三个方面分析硬布线控制和微程序控制的区别。

寄存器类型

[tag_link]

【解析】 由图中可知,当子程序执行完毕时,返回地址存放在以 K 为地址的内存单元中(间址特征位为 1,即间接寻址)。带返回指令的执行阶段需要完成将返回地址 M+1 存入指令地址码字段 K 所指示的存储单元中,从 K+1 号单元开始才是子程序的真正内容,因此执行阶段的微操作命令及节拍安排如下:

(1)取指周期: 节拍 T0: PC → MAR,1 → R (注: M → MAR ) 节拍 T1: M(MAR) → MDR,(PC) + 1 → PC 节拍 T2: MDR → IR,OP(IR) → ID 执行周期: 节拍 T0: K(IR) → MAR (把 K 放入 MAR) 节拍 T1: PC → MDR,1 → W (注: M+1 → MDR )(把 PC 放到 MDR 中,为存入主存做准备) 节拍 T2: MDR → M(MAR),K+1 → PC (把要返回的 PC 保存到 K 中,同时更新 PC)

(2)若采用微程序控制,还需增加的微操作有: M → CMAR // 将取指周期微程序首地址放入 CM(CMAR) → CMDR // 将对应控存 M 地址单元中的第一条微指令读到控存数据寄存器中 AD(CMDR) → CMAR // 让微指令的顺序控制字段指出下一条微指令的地址为 M+1,送入 CMAR (3)2⁶ = 64 个微程序,一条机器指令对应一段微程序。注:若单独把取指指令独立写成一个微程序,则微程序个数多 1;若 CPU 带有中断功能,微程序个数还要加一;如果把间址操作独立出来,也会多 1。因此微程序的数量根据情况不同应为 64–67 个。

(4)微程序控制器采用“存储程序”原理,每条机器指令对应一个微程序,因此修改和扩充容易、灵活性好,但每条指令的执行都要访问控制存储器,所以速度较慢。硬布线控制器采用专门的逻辑电路实现,其速度主要取决于逻辑电路的延迟,因此速度快,但修改和扩展比较困难。


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

(12 分)某 16 位机器所使用的指令格式和寻址方式如下所示,该机有四个 20 位基址寄存器,十六个 16 位通用寄存器(可用做变址寄存器)。指令汇编格式中的 S(源)、D(目标)都是通用寄存器,M 是主存的一个单元。三种指令的操作码分别是 MOV(OP)=(A)₁₆、STA(OP)=(B)₁₆、LDA(OP)=(C)₁₆。MOV 是传送指令,STA 为写数据指令,LDA 为读数据指令。

(1)分析三种指令的指令格式和寻址方式特点。

(2)处理机完成哪一种操作所花时间最短?哪一种最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?

(3)下列情况中,每个十六进制指令字分别代表什么操作?若有指令编码不正确,如何改正才能成为合法指令? ① (F0F1)₁₆ (3CD2)₁₆ ② (2856)₁₆ ③ (6DC6)₁₆ ④ (1C2)₁₆

寄存器类型 汇编代码

[tag_link]

【解析】 本题考查指令的格式与编码。

(1)第一种指令是单字长二地址指令, RR 型 ;第二种指令是双字长二地址指令, RS 型 ,其中 S 采用基址寻址或变址寻址,R 由源寄存器决定;第三种也是双字长二地址指令, RS 型 ,其中 R 由目标寄存器决定,S 由 20 位地址(直接寻址)决定。

(2)处理机完成第一种指令所花的时间最短,因为是 RR 型指令,不需要访问存储器。第二种指令所花的时间最长,因为 RS 型指令需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。

(3)根据已知条件: MOV(OP)=001010 , STA(OP)=011011 , LDA(OP)=111100 ,将指令的十六进制格式转换为二进制代码并比较后可知: ① (F0F1)ₕ (3CD2)ₕ = 1111 00|00| 1111| 0001 0011 1100 1101 0010 ,指令代表 LDA 指令 ,编码正确,其含义是把主存 (13CD2)ₕ 地址单元的内容取至 15 号寄存器。 ② (2856)ₕ = 0010 10|00| 0101| 0110 指令代表 MOV 指令 ,编码正确,含义是把 6 号源寄存器的内容传送至 5 号目标寄存器。 ③ (6DC6)ₕ = 0110 11|01 |1100 |0110 是单字长指令,一定是 MOV 指令,但编码错误,可改正为 (29C6)ₕ 。 ④ (1C2)ₕ = 0000 00|01 |1100| 0010 是单字长指令,代表 MOV 指令,但编码错误,可改正为 (29C2)ₕ 。


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

(12 分)下图所示的处理机逻辑框图中,有两条独立的总线和两个独立的存储器。已知指令存储器 IM 最大容量为 16384 字(字长 18 位),数据存储器 DM 最大容量为 65536 字(字长 16 位)。各寄存器均有“打入”(R_in)和“送出”(R_out)控制命令,但图中未标出。

(1)请指出下列各寄存器的位数: 程序计数器 PC、指令寄存器 IR、累加器 AC0 和 AC1、通用寄存器 R0-R7、指令存储器地址寄存器 IAR、指令存储器数据寄存器 IDR、数据存储器地址寄存器 DAR、数据存储器数据寄存器 DDR。

(2)设处理器的指令格式为:

加法指令可写为“ADD X (R_i)”。其功能是 ( A C ) + (( R i ​ ) + X ) → A C ,其中 ( R i ​ ) + X 部分通过寻址方式指向数据存储器,现取 R i ​ 为 R1。试画出 ADD 指令从取指令开始到执行结束的操作序列图,写明基本操作步骤和相应的微操作控制信号。(假设 PC+1 → PC 有专门的部件和信号控制)

寄存器类型

[tag_link]

【答案】 本题考查数据通路与指令的执行步骤。

(1)指令存储器容量为 16384 字,即 16384 = 2 14 字,因此 PC 和 IAR 为 14 位;字长为 18 位,IR 和 IDR 为 18 位。 数据存储器容量为 65536 字,即 65536 = 2 16 字,因此 DAR 为 16 位;AC₀~AC₁、R₀~R₂ 和 DDR 的字长与数据字长相等,均为 16 位。

(2)加法指令 “ADD X (Rᵢ)” 是一条隐含指令,其中一个操作数来自 AC₀,另一个操作数位于数据存储器中,其地址由通用寄存器的内容(Rᵢ)加上指令格式中的 X 值决定,可视为一种变址寻址方式。 指令周期的操作流程图如下,相应的微操作控制信号列在框图外。 [图片]


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

(13分)某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图所示,图中所 有控制信号为1时表示有效、为0时表示无效。例如控制信号 MDRinE 为 1 表示允许数据从 DB 打 入 MDR,MDRin 为 1 表示允许数据从内总线打入 MDR。假设 MAR 的输出一直处于使能状态。加法 指令“ADD (R1),RO”的功能为(R0)+(R1))→(R1), 即将 R0 中的数据与 R1 的内容所指主存单元的数 据相加,并将结果送入 R1 的内容所指主存单元中保存。

2009_Q44_8

下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表 格列出指令执行阶段每个节拍的功能和有效控制信号。

[tag_link]

[tag_link]

题干已给出取值和译码阶段每个节拍的功能和有效控制信号,我们应以弄清楚取指阶段中数据通路的信息流动作为突破口,读懂每个节拍的功能和有效控制信号。然后应用到解题思路中,包括划分执行步骤、确定完成的功能、需要的控制信号。

先分析题干中提供的示例(本部分解题时不做要求): 取指令的功能是根据 PC 的内容所指主存地址,取出指令代码,经过 MDR,最终送至 R。这部分和后面的指令执行阶段的取操作数、存运算结果的方法是相通的。

C1: (PC)→MAR 在读写存储器前,必须先将地址(这里为 PC)送至 MAR。

C2: M(MAR)→MDR, (PC)+1→PC 读写的数据必须经过 DR,指令取出后 PC 自增 1。

C3: (MDR)→IR 然后将读到 MDR 中指令代码送至 IR 进行后续操作。

指令 “ADD(R1),R0” 的操作数一个在主存中,一个在寄存器中,运算结果在主存中。根据指令功能,要读出 R1 的内容所指的主存单元,必须先将 R1 的内容送至 MAR,即 (R1)→MAR。而读出的数据必须经过 MDR,即 M(MAR)→MDR。

因此,将 R1 的内容所指主存单元的数据读出到 MDR 的节拍安排如下:

C5: (R1)→MAR

C6: M(MAR)→MDR

ALU 一端是寄存器 A,MDR 或 R0 中必须有一个先写入 A 中,如 MDR。

C7: (MDR)→A

然后执行加法操作,并将结果送入寄存器 AC。

C8: (A)+(R0)→AC

之后将加法结果写回到 R1 的内容所指主存单元,注意 MAR 中的内容没有改变。 C9: (AC)→MDR

C10: (MDR)→M(MAR)

有效控制信号的安排并不难,只需看数据是流入还是流出,如流入寄存器 X 就是 Xin,流出寄存器 X 就是 Xout。还需注意其他特殊控制信号,如 PC+1、Add 等。

于是得到参考答案如下: 时钟 功能 有效控制信号

C5 MAR ← (R1) R1out, MARin

C6 MDR ← M(MAR) MemR, MDRinE

C7 A ← (MDR) MDRout, Ain

C8 AC ← (A) + (R0) R0out, Add, ACin

C9 MDR ← (AC) ACout, MDRin

C10 M(MAR) ← (MDR) MDRoutE, MemW

本题答案不唯一,如果在 C6 执行 M(MAR)→MDR 的同时,完成 (R0) → A(即选择将 (R0) 写入 A),并不会发生总线冲突,这种方案可节省 1 个节拍。


模拟卷 年第 45 题 操作系统 综合题

(11 分)下图是一个简化的 CPU 与主存连接结构示意图(图中省略了所有多路选择器)。其中有一个累加寄存器 AC、一个状态寄存器和其他四个寄存器:主存地址寄存器 MAR、主存数据寄存器 MDR、程序计数器 PC 和指令寄存器 IR。各部件及其之间的连线表示数据通路,箭头表示信息传送方向。

一个简化的 CPU 与主存连接结构示意图

要求:

(1) 请写出图中 a、b、c、d 四个寄存器的名称。 (2) 简述图中指令从主存取到控制器的过程。 (3) 说明数据从主存取出、运算、写回主存所经过的数据通路(假定数据地址已在 MAR 中)。 (4) 程序计数器 PC 的内容是如何变更的?

寄存器类型

[tag_link]

**【解析】** 本题考查数据通路和指令执行过程。读者应牢固掌握指令的执行过程和原理,并能根据指令的执行过程和特点了解控制器中各个寄存器的连接方式。

(1)b 单向连接微控制器,由微控制器的作用不难得知 b 是指令寄存器(IR); a 和 c 直接连接主存,只可能是 MDR 和 MAR。c 到主存是单向连接,a 和主存双向连接。根据指令执行的特点,MAR 只单向给主存传送地址,而 MDR 既存放从主存中取出的数据又要存放将要写入主存的数据,因此 c 为主存地址寄存器(MAR),a 为主存数据寄存器(MDR)。d 具有自动加 1 的功能,且单向连接 MAR,不难得出为程序计数器(PC)。

因此,a 为 MDR、b 为 IR、c 为 MAR、d 为 PC。

(2)先从程序计数器(PC)中取出指令地址,将指令地址送入主存地址寄存器(MAR),在相关的控制下从主存中取出指令送至主存数据寄存器(MDR),然后将 MDR 中的指令送至指令寄存器(IR),最后流向微控制器,供微控制器分析并执行指令。

因此,取指令的数据通路为:

(3)和(2)的分析类似,根据 MAR 中的地址去主存取数据,将取出的数据送至主存数据寄存器(MDR),然后将 MDR 中的数据送至 ALU 进行运算,运算的结果送至累加器(AC),运算结束后将 AC 中的结果送至 MDR,最后将 MDR 中的数据写入主存。

因此,从主存取出、运算和写回主存所经过的数据通路分别为:

(4)指令顺序执行时,PC 自动完成 +1 的操作。跳跃执行时,由转移指令提供转移地址(如相对寻址由 PC 的内容加上形式地址)。