🏷️ 知识点:复杂和精简指令集

共 3 道相关题目

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

下列关于RISC的说法,错误的是()。

A. 多采用硬连线方式实现控制器

B. 通常采用 Load/Store 型指令设计风格

C. 难以采用流水线数据通路实现微架构

D. 多采用寄存器传递过程调用时的参数

[tag_link]

正确答案:C

RISC 设计的一个显著特点是由于指令定长且比较简单,所以易于采用流水线技术,从而提高指令执行的吞吐量。因此,RISC 体系结构并不难以采用流水线数据通路,因此 C 选项错误。


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

下面关于 RISC 技术的描述中,正确的是( )。

A. 采用 RISC 技术后,计算机的体系结构又恢复到早期的比较简单的情况 B. 为了实现兼容,新设计的 RISC 是从原来的 CISC 系统的指令系统中挑选一部分实现的 C. RISC 的主要目标是减少指令数 D. RISC 设有乘、除法指令和浮点运算指令,只是很少使用

复杂和精简指令集

[tag_link]

正确答案:C

RISC(精简指令集计算机)技术的核心设计思想是简化指令集,使每条指令的执行时间尽可能缩短,从而提高处理器的整体效率。

减少指令数量是 RISC 的一个关键特征,这有助于简化硬件设计、优化流水线执行,并降低指令复杂度。 因此,选项 C“RISC 的主要目标是减少指令数”是正确的描述。

选项 A 不正确,因为 RISC 并非简单恢复到早期计算机架构,而是基于现代设计原则(如硬连线控制、流水线技术)的全新演进。 选项 B 错误,因为 RISC 指令集通常是独立设计的,专注于常用指令的优化,而不是从 CISC 指令系统中挑选一部分以实现兼容; 实际上,RISC 与 CISC 在指令集设计上有本质区别。 选项 D 也不准确,虽然一些 RISC 处理器可能不直接包含乘、除法或浮点运算指令(或通过软件模拟实现),但现代 RISC 架构常将这些指令作为扩展集成,且在使用时并非“很少使用”,而是根据应用需求频繁调用。


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

在按字节编址的计算机 M 上,题 43 中 f1 的部分源程序(阴影部分)与对应的机器级代码(包括指令的虚拟地址)如下图所示。

int f1(unsigned n)
1   00401020 55         push ebp
...      ...        ...
    for (unsigned i = 0; i <= n-1; i++) {
...      ...        ...
20  0040105E 39 4D F4   cmp dword ptr [ebp-0Ch],ecx
...      ...        ...
        power *= 2;
...      ...        ...
23  00401066 D1 E2      shl edx,1
...      ...        ...
    return sum;
...      ...        ...
35  0040107F C3         ret

其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令。

请回答下列问题。

(1) 计算机 M 是 RISC 还是 CISC?为什么?

(2) f1 的机器指令代码共占多少字节?要求给出计算过程。

(3) 第 20 条指令 cmp 通过 i 减 n-1 实现对 i 和 n-1 的比较。执行 f1(0) 过程中,当 i=0 时,cmp 指令执行后,进/借位标志 CF 的内容是什么?要求给出计算过程。

(4) 第 23 条指令 shl 通过左移操作实现了 power2 运算,在 f2 中能否也用 shl 指令实现 power2?为什么?

复杂和精简指令集 标志寄存器 指令操作码

[tag_link]

(1)M 为 CISC。(1 分)M 的指令长短不一,不符合 RISC 指令系统特点。(1 分)

(2)f1 的机器代码为 96B。(1 分)因为 f1 的第一条指令 “push ebp” 所在的虚拟地址为 0040 1020H,最后一条指令 “ret” 所在的虚拟地址为 0040 107FH,所以,f1 的机器指令代码长度为:0040 107FH - 0040 1020H + 1 = 60H = 96B1 分)

(3)CF = 1。(1 分)cmp 指令实现 in-1 的比较功能,进行的是减法运算。在执行 f1(0) 过程中,n=0,当 i=0 时,i=0000 0000H,并且 n-1=FFFF FFFFH。因此,当执行第 20 条指令时,在补码加/减运算器中执行的是 “0 - FFFF FFFFH” 的操作,即:0000 0000H + 0000 0000H + 1 = 0000 0001H。此时,进位输出 C=0,减法运算时的借位标志 CF = C ⊕ 1 = 1。(2 分)

(4)f2 中不能用 shl 指令实现 power * 2。(1 分)因为 shl 指令用来将一个整数的所有有效位作为一个整体左移;而 f2 中的变量 power 是 float 型,其机器数中不包含最高有效位,但包含了阶码部分,将其作为一个整体左移时并不能实现 “乘 2” 的功能。因此在 f2 中不能用 shl 指令实现 power * 2。(2 分)浮点数运算比整型运算要复杂,耗时也较长。