CISC & RISC 的区别

CISC RISC

Posted by gomyck on August 9, 2021

Complex Instruction SetComputer && Reduced Instruction Set Computer

为什么 M1 芯片需要软件适配

因为 M1 芯片采用 ARM 架构, 为精简指令集, 并非 X86 指令集, 所以软件需要兼容新的指令集架构

复杂指令集计算机(CISC) Complex Instruction Set Computer

长期以来,计算机性能的提高往往是通过增加硬件的复杂性来获得. 随着集成电路技术, 特别是VLSI(超大规模集成电路)技术的迅速发展,

为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.

至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,

处理器在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构 .

一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.

精简指令集计算机(RISC) Reduced Instruction Set Computer

采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.

有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.

因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克利分校开展这一研究.结果表明,CISC存在许多缺点.

首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,

实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,

这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.

帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机结构.简称RISC.

image

CISC与RISC的区别

从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。

而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,

它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,

像赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。

CISC更依赖于硬件,逻辑电路比RISC复杂,所以也更耗电,而RISC相对更依赖于编译器优化。

###操作系统的特征

共享性: 多个用户的程序共同使用操作系统中的资源 (合理的分配, 共享有限的资源, 包括互斥共享-打印机 同时共享-可重入代码, 磁盘文件)

虚拟性: 一个物理实体映射为若干个对应的逻辑实体 – 分时 分空间 是操作系统有效利用资源的一种策略

随机性: 操作系统必须随时对不可预测的次序发生的事件进行响应并处理 (难以重现系统在某个时刻的状态, 重现运行中错误)

并发性: 处理多个同时性活动的能力 concurrency, 一般指多个活动在争取一个计算单元

并行性: 不同程序同时在多个部件上执行, 并行和并发的区别在于: 马拉松和 110米跨栏(每个人都有独立的跑道)的区别