频道栏目
读书频道 > 系统 > 其他综合 > 深入理解8051单片机系统
2.8.2 RISC特性
2015-12-03 14:59:24     我来说两句
收藏   我要投稿

本文所属图书 > 深入理解8051单片机系统

本书详细介绍了8051单片机的各种功能。主要内容包括8051微控制器、8051汇编语言编程、跳转指令、循环指令、调用指令、I O端口编程、8051寻址方式、算术逻辑指令与程序、8051 C语音编程、8051硬件接线、8051定时  立即去当当网订购

如下是RISC的一些特性。

特性1

RISC处理器的指令大小是固定的。在CISC微控制器如8051中,指令大小可以是1、2或3个字节。例如,下面的8051指令:

CLRA;清除累加器,1个字节指令

ADDA,#mybyte;将mybyte字节加入累加器,2字节指令

LJMPtarget_address;长距离转移,3字节指令 
 
这些大小可变的指令使得指令解码器的任务变得异常艰巨,因为永远不知道下一个输入的指令大小。而在RISC体系结构中,所有指令的大小固定,从而CPU能很快地将指令解码,这好比砖匠使用同样大小的砖工作与使用不同大小的砖工作一样。显然,使用同样大小的砖工作起来效率会更高些。

特性2

RISC体系结构的主要特性之一是寄存器数量众多。所有的RISC结构至少有16个寄存器,只有很少的寄存器分配专用功能。寄存器数量多的好处之一是可避免需要较大的栈来存储参数。尽管RISC处理器中也用栈,但并不像CISC那样至关重要,因为可用的寄存器很多。

特性3

RISC处理器只有很小的指令集。RISC处理器中只有基础指令,如ADD、SUB、MUL、LOAD、STORE、AND、OR、EXOR、CALL以及JUMP指令。指令数目的限制使得RISC处理器备受争议,因为这样,相比于使用CISC汇编语言编程来说,汇编语言程序员的工作要枯燥且艰难得多。这也就是RISC为什么更常用于高级语言如C语言而不是汇编语言的原因之一。有趣的是,一些CISC的拥护者称CISC为“完整指令集计算机”而不是“复杂指令集计算机”,因为它有各种完整的指令集。至于有多少这样的指令以及它们的使用率有多高是另一回事。RISC指令数目的限制使得程序较大。尽管这些程序需要使用更多的存储器,但这并不构成问题,因为存储器很便宜。而在20世纪60年代半导体存储器出现之前,CISC设计者不得不尽可能地将更多的动作压缩到单个指令中,为最大限度发挥效益而锱铢必较。

特性4

可能有人会问,使用RISC编程既然带有如此多的困难,那为什么还要使用它?RISC处理器最大的特点就是,超过95%的指令只需一个时钟周期便可以执行完。即使是在剩下的5%的指令中,一些本来是在两个时钟周期完成的指令,也可通过代码重整调度在一个时钟周期内完成。代码调度通常由编译器完成。

特性5

因为CISC有如此多的指令,且每条指令的寻址方式各异,所以需要使用微指令(微代码)来实现它们的功能。在许多CISC处理器中实现微指令占用了CPU内部40%~60%的晶体管数。然而,对于RISC而言,因为它是精简指令集,所以它是使用硬布线方法实现的。RISC指令的硬布线实现占据的晶体管数不到总数的10%。

特性6

RISC使用的是Load/Store(装载/存储)结构。在CISC微处理器中,可以操作存储器中的数据。如指令“ADD寄存器,存储器”,使用微处理器必须先将外部存储器中的内容装载到CPU,然后将数据装载到寄存器中,最后将结果装载到外部存储器。问题是,在访问外部存储器中的数据时可能会有延时,从而导致整个处理过程停滞,也就会阻止传输途径中的其他指令的执行。在RISC中,设计者排除了这类指令。在RISC中,指令只能将外部存储器中的数据装载到寄存器中,或是从寄存器中装载到外部存储器中,而不能直接在寄存器和外部存储器之间进行逻辑或运算操作。所有这些指令必须先将两个操作数都装载到CPU内部的寄存器中,然后再进行运算或逻辑操作,最后再将结果送回存储器。这个方法最先在1976年由Cray1超级计算机实现,并被称为装载/存储结构(Load/store architecture)。

在归纳RISC处理器时,有趣的是,RISC技术是20世纪70年代中期由IBM研发的,但是RISC的优点却是1980年由加州大学伯克利分校的DavidPatterson提出的,并引起了计算机科学家们的关注。还须注意的是,近几年,CISC处理器如奔腾处理器已在设计中使用了RISC特性,这是它们能提高x86处理器处理能力并保持竞争力的唯一途径。当然,也就不得不使用很多个门来实现,因为它们不得不考虑8086/80286/80386/80486处理器所有的CISC指令以及依附于DOS的软件。

复习题

1.RISC和CISC代表的是什么?

2.判断题。“ADD 存储器,存储器”指令不存在于RISC CPU中。

3.判断题。CISC中的指令大小不定,而RISC中的指令大小相同。

4.RISC中的ADD指令不能操作以下哪一项?

(a)寄存器到寄存器;(b)立即数到寄存器;(c)存储到存储器。

总结

本章一开始介绍了8051主要的寄存器,包括A、B、R0、R1、R2、R3、R4、R5、R6、R7、DPTR以及PC,通过一些编程案例对这些寄存器进行了讲解;也介绍了创建汇编语言程序的过程,包括编辑源文件、汇编、链接及执行程序。注意,PC(程序计数器)寄存器始终指向下一条将要执行的指令。还介绍了使用8051程序ROM空间的方法,因为对于8051汇编语言程序员来说,了解程序放在ROM的什么位置以及有多少可用的存储空间的相关知识是必需的。

汇编语言程序由一行一行的语句组成,语句可以是指令或伪代码(也称为指示符(directive))。指令可由汇编器翻译成机器代码,而伪指令不能翻译成机器代码,它们的功能是指导汇编器将指令翻译成机器代码。有些伪指令,被称为数据指示符(data directive),用于定义数据。数据是以字节大小分配的,数据可以是二进制、十六进制、十进制或ASCII的形式。

标志位对于程序员来说很重要,因为它们表示一些特定的条件,如在指令执行之后产生的仅进位或溢出。栈用于执行程序期间暂时存储数据,栈位于8051的RAM空间,这些内容文中已用具体图表解释过。还介绍了POP和PUSH指令对栈的操作。最后阐述了RISC和CISC的体系结构的概念。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.8.1 什么是RISC
下一篇:最后一页
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站