问题
问答题
(1)从体系结构的观点对指令集进行分类。根据哪五种尺度 (2)通常有哪三种指令集体系结构请写出各自的优缺点 (3)GRP机分为几类它们的优缺点各是什么
答案
参考答案:
解析:从体系结构的观点对指令集进行分类,可以根据下述五种尺度:
①操作数在CPU中的存储方式,即操作数从主存中取来后要把它保存在什么地方。
②显式操作数的数量,即在一条典型的指令中有多少个显式命名的操作数。
③操作数的位置,即任一个ALU指令的操作数能否放在主存中,或者必须把某些操作数甚至全部操作数都放在CPU的内部存储器中如果某操作数要放在主存中,那么它是如何定位的
④指令的操作,即在指令集中提供哪些操作。
⑤操作数的类型与大小,即每个操作数是什么类型、尺寸大小,以及怎样对它规定。
以上五条排列的次序大体上反映了它们在区分指令集时所扮演角色的重要程度。次序越靠前就越重要。
(2)通常有三种指令集体系结构,这三类分别为:堆栈(Stack)、累加器(Accumulator)和寄存器集 (a set of registers)。
它们的优缺点如下:
类型 | 优点 | 缺点 |
堆栈 | 表达式采用逆波兰表示法具有简单的求解模型。短指令也能获得良好的代码密度 | 堆栈不能随机访问,这一局限性使得产生有效代码比较困难。同样也使实现变得困难,因为堆栈成为瓶颈 |
累加器 | 机器的内部状态很少,指令也比较短 | 由于累加器是仅有的暂存器,因此这种方式的存储器存取流量最大 |
寄存器集 | 对于代码的产生有最通用的模型 | 所有操作数都必须同名,从而导致较长的指令 |
类型 | 优点 | 缺点 |
寄存器—寄存器 | 简单的定长指令编码,简单的代码生成模型,指令执行时间与机器周期数相同 | 比其他指令中带访问存储器体系结构有更多的指令数。某些指令较短,对比特位编码会造成浪费 |
寄存—存储器 | 没有事先的装入,也能访问数据。指令格式容易编码,而且也有较高的密度 | 由于源操作数在二进制操作中会被损坏,所以操作数是不等效的。对寄存器数和存储地址在每条指令中编码会限制寄存器数。每条指令的周期会随操作数的位置而变化 |
存储器—存储器 | 很紧凑,不浪费用作暂存的寄存器 | 指令长度有较大的变化,尤其是对三操作数指令。每条指令的工作也有较大变化。存储器访问会形成存储器瓶颈 |