精简指令集计算机和 复杂指令集计算机是当前 的两种架构。它们的区别在于不同的 设计理念
和方法。
早期的 全部是 架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运
算,在 架构的 上,您可能需要这样一条指令: 就可以将 和 中的数相乘
并将结果储存在 中。将 中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于
中设计的逻辑来实现。这种架构会增加 结构的复杂性和对 工艺的要求,但对于编译器的开发十分有
利。比如上面的例子, 程序中的 就可以直接编译为一条乘法指令。今天只有 及其兼容 还在使用
架构。
架构要求软件来指定各个操作步骤。上面的例子如果要在 架构上实现,将 中的数据读入
寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:
。这种架构可以降低 的复杂性以及允许在同样的工艺水平下生产出功能更强大的 ,但对于编译
器的设计有更高的要求。
另:
(复杂指令集)与 (精简指令集)的区别
复杂指令集计算机
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是 (超大规
模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可
实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越
来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还
通过存于只读存贮器中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令
运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机 !"#$"!%结构.一
般 计算机所含的指令数目至少 &'' 条以上,有的甚至超过 ('' 条.
精简指令集计算机
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的
设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做
法: 公司没在纽约 )!*+ 的 ,- ./ 研究中心于 012( 年组织力量研究指令系统的合理性问题.因为
当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能. 0121 年以帕特逊教授为首的一批科
学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明, 存在许多缺点.首先.在这种计算机中.
各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的 3'%指令.只占一个处理器指令系统的 4'%.事
实上最频繁使用的指令是取、存和加这些最简单的指令.这样%来,长期致力于复杂指令系统的设计,实际上是在
设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加
了设计的时间与成本还容易造成设计失误.此外.尽管 技术现在已达到很高的水平,但也很难把 的全部
硬件做在一个芯片上,这也妨碍单片计算机的发展.在 中,许多复杂指令需要极复杂的操作,这类指令多数
是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指
令系统的运行速度.因而.针对 的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些
使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机
被称为精简指令集计算机5"#5 !"#$"!%结构.简称 .
与 的区别
我们经常谈论有关66与6#7 -6的话题,但是又有多少人知道以 公司 839 为核心的 系列正是基于
体系结构,而 公司的 #7 - 则是基于 体系结构, 与 到底有何区别?
从硬件角度来看 处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需
要进行较多的处理工作。而 执行的是等长精简指令集, 在执行指令的时候速度较快且性能稳定。因此在
并行处理方面 明显优于 , 可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多
个处理器同时执行。由于 执行的是精简指令集,所以它的制造工艺简单且成本低廉。
从软件角度来看, 运行的则是我们所熟识的 、/75+ 操作系统。而且它拥有大量的应用程序。因
为全世界有 9(:以上的软件厂商都理为基于 体系结构的 及其兼容机服务的,象赫赫有名的 7#! ; 就是
其中的一家。而 在此方面却显得有些势单力薄。虽然在 上也可运行 、/75+ ,但是需要一个翻译
过程,所以运行速度要慢许多。
评论0
最新资源