1. 通常可按哪5个因素对计算机指令集结构进行分类?
(1) 在CPU中操作数的存储方法。
(2) 指令中显式表示的操作数个数。
(3) 操作数的寻址方式。
(4) 指令集所提供的操作类型。
(5) 操作数的类型和大小。
2. 在对计算机指令集结构进行分类的5个因素中,哪一种是各种指令集结构之间最主要的区别?
CPU中操作数的存储方法,即在CPU中用来存储操作数的存储单元的类型,是各种指令集结构之间最主要的区别。
3. 根据CPU内部存储单元类型,可将指令集结构分为哪几类?
堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。
4. 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构分别有什么优缺点?
指令集结构类型 | 优点 | 缺点 |
堆栈型 | 是一种表示计算的简单模型;指令短小 | 不能随机访问堆栈,从而很难生成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现 |
累加器型 | 减少了机器的内部状态;指令短小 | 由于累加器是唯一的暂存器,这种机器的存储器通信开销最大 |
寄存器型 | 易于生成高效的目标代码 | 所有操作数均需命名,且要显式表示,因而指令比较长 |
5. 现代大多数机器均采用通用寄存器型指令集结构,为什么?
主要有两个方面的原因,一是寄存器和CPU内部其他存储单元一样,要比存储器快;其次是对编译器而言,可以更加容易、有效地分配和使用寄存器。
6. 通用寄存器型指令集结构可细分为哪三类?
寄存器-寄存器型。
寄存器-存储器型。
存储器-存储器型。
7. 三种通用寄存器型指令集结构分别有什么优缺点?
指令集结构类型 | ||
寄存器-寄存器型(0,3) | 简单,指令字长固定,是一种简单的代码生成模型,各种指令的执行时钟周期数相近 | 和ALU指令中含存储器操作数的指令集结构相比,指令条数多,因而其目标代码量较大 |
寄存器-存储器(1,2) | 可以直接对存储器操作数进行访问,容易对指令进行编码,且其目标代码量较小 | 指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。由于指令的操作数可以存储在不同类型的存储器单元,所以每条指令的执行时钟周期数也不尽相同 |
存储器-存储器型(3,3) | 是一种最紧密的编码方式,无需“浪费”寄存器保存变量 | 指令字长多种多样。每条指令的执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问瓶颈问题 |
8. 从当前的计算机技术观点来看,CISC结构有什么缺点?
(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。
(2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。
(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。
9. 增强CISC机器的指令功能主要从哪几方面着手?
(1) 面向目标程序增强指令功能。
(2) 面向高级语言和编译程序改进指令系统。
(3) 面向操作系统的优化实现改进指令系统。
RISC的设计原则是什么?
(1)选取使用频率最高的指令,并补充一些最有用的指令。
(2)每条指令的功能应尽可能简单,并在一个机器周期内完成。
(3)所有指令长度均相同。
(4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。
(5)以简单、有效的方式支持高级语言。
比较内容 | CISC | RISC |
指令格式 | 变长编码 | 定长编码 |
寻址方式 | 各种都有 | 只有load/store指令可以访存 |
CPI | 远远大于1 | Ϊ1 |
12. 计算机指令集结构设计所涉及的内容有哪些?
(1) 指令集功能设计:主要有RISC和CISC两种技术发展方向。
(2) 寻址方式的设计。
(3) 操作数表示和操作数类型。
(4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。
(5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式三种。
13. 指令中有哪两种表示操作数类型的方法?
(1)操作数的类型由操作码的编码指定,这是最常见的一种方法。
(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。
14.指令中表示寻址方式的主要方法有哪些?
表示寻址方式有两种常用的方法:
(1)将寻址方式编于操作码中,操作码在描述指令功能的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。
(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。
15. 指令集格式设计中选择表示寻址方式的依据是什么?
主要由指令集结构所采用的寻址方式种类及其适用范围,以及操作码与寻址方式之间的独立程度来决定。
如果某些指令集结构的指令有1~5个操作数,每个操作数有10种寻址方式,对于这种大规模的操作数和寻址方式组合,通常采用增设地址描述符的方法来描述寻址方式。
对诸如load/store类型指令集结构的指令,由于只有1~3个操作数,而且只有有限几种寻址方式。通常将寻址方式编码于操作码中。
16. 指令集结构中采用多种寻址方式有何优缺点?
在指令集结构中采用多种寻址方式可以显著地减少程序的指令条数;但同时也可能增加实现的复杂度和使用这些寻址方式的指令的执行时钟周期数(CPI)。
17. 在控制指令中使用PC相对寻址方式有什么优点?
(1) 有效地缩短指令中表示目标地址的字段的长度。
(2) 使得代码在执行时与它被载入的位置无关。
18. 在指令集格式的设计时,通常可选择哪几种指令格式?
(1) 变长编码格式。这种编码方式可以有效减少程序的目标代码大小。
(2) 定长编码格式。这种编码方式可以降低译码的复杂度,提高译码的性能。
(3) 混合型编码格式。兼顾降低目标代码长度和降低译码复杂度。
19. MIPS中有哪些寄存器?
(1)32个通用寄存器。
(2)32个浮点寄存器。
(3)一些特别的寄存器。
(1)整数:字节(8位),半字(16位),字(32位)和双字(64位)。
(2)浮点数:单精度浮点数(32位),双精度浮点数(64位)。
21. MIPS采用哪几种寻址方式?
MIPS的数据寻址方式只有立即数寻址和偏移量寻址两种,立即数字段和偏移量字段都是16位的。寄存器间接寻址是通过把0作为偏移量来实现的,16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的。