没有合适的资源?快使用搜索试试~ 我知道了~
首页CISC 和RISC是CPU的两种架构
资源详情
资源评论
资源推荐
RISC(精简指令集计算机)和 CISC(复杂指令集计算机)是当前 CPU 的两种架构。它们的区
别在于不同的 CPU 设计理念和方法。
早期的 CPU 全部是 CISC 架构,它的设计目的是要用最少的机器语言指令来完成所需的
计算任务。比如对于乘法运算,在 CISC 架构的 CPU 上,您可能需要这样一条指令:MUL
ADDRA, ADDRB 就可以将 ADDRA 和 ADDRB 中的数相乘并将结果储存在 ADDRA 中。
将 ADDRA, ADDRB 中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于 CPU
中设计的逻辑来实现。这种架构会增加 CPU 结构的复杂性和对 CPU 工艺的要求,但对于
编译器的开发十分有利。比如上面的例子,C 程序中的 a*=b 就可以直接编译为一条乘法
指令。今天只有 Intel 及其兼容 CPU 还在使用 CISC 架构。
RISC 架构要求软件来指定各个操作步骤。上面的例子如果要在 RISC 架构上实现,将
ADDRA, ADDRB 中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实
现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构
可以降低 CPU 的复杂性以及允许在同样的工艺水平下生产出功能更强大的 CPU,但对于
编译器的设计有更高的要求。
CISC 是英文“Complex Instruction Set Computer”的缩写,中文意思是“复杂指令集”,
它是指英特尔生产的 x86(intel CPU 的一种命名规范)系列 CPU 及其兼容 CPU(其他厂
商如 AMD,VIA 等生产的 CPU),它基于 PC 机(个人电脑)体系结构。这种 CPU 一般都是
32 位的结构,所以我们也把它成为 IA-32 CPU。(IA: Intel Architecture,Intel 架构)。
CISC 型 CPU 目前主要有 intel 的服务器 CPU 和 AMD 的服务器 CPU 两类。
RISC 是英文“Reduced Instruction Set Computing ” 的缩写,中文意思是“精简指令集”。它
是在 CISC(Complex Instruction Set Computer)指令系统基础上发展起来的,有人对 CISC
机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它
们仅占指令总数的 20%,但在程序中出现的频度却占 80%。复杂的指令系统必然增加微
处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然
会降低计算机的速度。基于上述原因,20 世纪 80 年代 RISC 型 CPU 诞生了,相对于
CISC 型 CPU ,RISC 型 CPU 不仅精简了指令系统,还采用了一种叫做“超标量和超流水线
结构”,大大增加了并行处理能力(并行处理并行处理是指一台服务器有多个 CPU 同时处
理。并行处理能够大大提升服务器的数据处理能力。部门级、企业级的服务器应支持 CPU
并行处理技术)。也就是说,架构在同等频率下,采用 RISC 架构的 CPU 比 CISC 架构的
CPU 性能高很多,这是由 CPU 的技术特征决定的。目前在中高档服务器中普遍采用这一
指令系统的 CPU,特别是高档服务器全都采用 RISC 指令系统的 CPU。RISC 指令系统更
加适合高档服务器的操作系统 UNIX,现在 Linux 也属于类似 UNIX 的操作系统。RISC 型
CPU 与 Intel 和 AMD 的 CPU 在软件和硬件上都不兼容。
复杂指令集 CPU 内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执
行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较
差,处理数据速度较慢,PC 中 Pentium 的结构都为 CISC CPU。
* RISC 是精简指令集 CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译
码与数据的处理较快,所以执行效率比 CISC 高,不过,必须经过编译程序的处理,才能
发挥它的效率,我所知道的 IBM 的 Power PC 为 RISC CPU 的结构,CISCO 的 CPU 也是
RISC 的结构。
*咱们经常见到的 PC 中的 CPU,Pentium-Pro(P6)、Pentium-II,Cyrix 的
M1、M2、AMD 的 K5、K6 实际上是改进了的 CISC,也可以说是结合了 CISC 和 RISC 的
部分优点。
我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以 Intel 公司
X86 为核心的 PC 系列正是基于 CISC 体系结构,而 Apple 公司的 Macintosh 则是基于
RISC 体系结构,CISC 与 RISC 到底有何区别?
从硬件角度来看 CISC 处理的是不等长指令集,它必须对不等长指令进行分割,因此
在执行单一指令的时候需要进行较多的处理工作。而 RISC 执行的是等长精简指令集,
CPU 在执行指令的时候速度较快且性能稳定。因此在并行处理方面 RISC 明显优于
CISC,RISC 可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个
处理器同时执行。由于 RISC 执行的是精简指令集,所以它的制造工艺简单且成本低廉。
从软件角度来看,CISC 运行的则是我们所熟识的 DOS、Windows 操作系统。而且
它拥有大量的应用程序。因为全世界有 65%以上的软件厂商都理为基于 CISC 体系结构的
PC 及其兼容机服务的,象赫赫有名的 Microsoft 就是其中的一家。而 RISC 在此方面却显
得有些势单力薄。虽然在 RISC 上也可运行 DOS、Windows,但是需要一个翻译过程,
所以运行速度要慢许多。
目前 CISC 与 RISC 正在逐步走向融合,Pentium Pro、Nx586、K5 就是一个最明显
的例子,它们的内核都是基于 RISC 体系结构的。他们接受 CISC 指令后将其分解分类成
RISC 指令以便在遇一时间内能够执行多条指令。由此可见,下一代的 CPU 将融合 CISC
与 RISC 两种技术,从软件与硬件方面看二者会取长补短。
RISC vs CISC vs ARM
这里介绍两种主流的计算机体系结构:
RISC(Riduced Instruction Set Computer)精简指令集计算机
CISC(Complex Instruction Set Computer)复杂指令集计算机
所谓"体系结构",是指程序员在某 CPU 上进行程序设计时能够使用的处理器资源,其中最重要的是处理器所提供的指
令系统和寄存器组。注意体系结构 (architecture)和组成(structure)的区别:前者是处理器的逻辑抽象,是程序员关注的
部分。后者是具体实现,一般为计算机系统设计人员关注。一般来说,arachitecture,structure 是不同层次的概念,但
两者也有一定的联系。
以指令系统的设计为例:相同的指令系统可以通过“硬连接”或“微程序”的方法来实现。前者通过 CPU 的硬件电路来实
现,后者通过"微程序"来实现。如果指令集以硬连接实现,那么对于复杂指令来说,电路设计就非常困难;反之,若用微程
序来实现指令集,可以实现复杂指令。现代 CISC 处理器一般都使用微码来实现。
在使用微码技术的处理器中,实际存在着两套不同层次的指令:一套是面向程序员的,高层的指令;一套是面向硬件
实现的,底层的微码。在指令与微码之间存在着一个“解释器”,它将指令翻译成对应的微码序列。由此可以想象,指令与微
码之间的关系实际上时“子程序调用”思想的推广。
对于 CISC 和 RISC 的实现而言, 它们所侧重的复杂性不同: CISC 处理器的实现复杂性更高, 而
RISC 编译器的复杂性更高.
微码相对于指令的特点:
,微码代表的都是非常简单的基本操作,而指令可能非常复杂。
,微码的取指操作很快:所有的微码都位于 ROM 中,而指令位于内存中。[note_1]
,微码的格式很规则,简单。因此易于译码。
,微码的执行速度很快,而指令相对较慢。
从处理器架构来看,可以将使用微码技术的现代 CISC 的基本单元视为一个快速的 RISC 内核。这样问题就出来了
果不引入“解释器”,而直接使用 RISC 微码作为指令,那会怎样呢?——这正是 RISC 的思想。
下面我们来看看使用微码实现的 CISC 指令集的优缺点:
CISC 指令集又复杂化的倾向,即向高级语言看齐,处理器厂商纷纷提供一些功能强大的复杂指令,例如:Intel
处理器在 MOVE 基础上提供了 “成串”MOVE 指令,可以将内存中数据按字节成块复制,相当于:
while (n--) *dest++ = *src++;
这方便于复制数据结构。对于其他的复杂操作,也可以通过一条指令就实现。CISC 复杂指令的寻址方式也种类繁多,
操作数可以直接来自内存。但复杂指令为现代处理器技术中广泛使用的流水线技术引入了问题:在微处理器中指令的执行一
般分为“预指”,“取操作数”,“运算”,“存放”等操作。对于 CISC 复杂指令,他们的执行时间各不相同[note_2](有的可在
个时钟周期内完成,有的却需要几十个,即便对于简单指令,也会由于寻址方式的不同造成不同的执行时间)。更糟
糕的是,指令长度也不一致,同一指令的长度也会因不同的寻址方式而变化。针对这些指令,如何设计流水线长度呢?若按
最短指令设计流水线,当碰到复杂指令时流水线就会发生中断;若按最长指令设计流水线,执行较短指令时就会跳过某些工
位,使流水线不能完全充满。
针对上述情况,以及 20-80 定律(80%的情况下执行的是占指令集 20%的常用指令)。多数复杂指令很少用到。
当使用高级语言进行程序设计时,编译器为了兼容早期的 CPU,一般不会生成特殊的复杂指令。如果舍弃这些不常用的复
杂指令,就能简化 CPU 的设计。这正是 RISC 的出发点。
的特点
RISC
指令系统较小 :种类的数量较少,只提供简单指令。这些指令大多都能在 4,5 个时钟周期内完成。
指令的操作数必须预存于寄存器中,这样取指操作的时间也统一了。
指令长度,寻址方式,格式都整齐划一:这样可以充分利用流水线,基本上可实现一个时钟脉冲执行一条指令的目标。
RISC
的子程序调用与
CISC
的不同 :在 CISC 中,程序调用、返回时需将上下文保存在堆栈中,需要内存操作。而
将它们存放在寄存器中,而且参数也使用 寄存器传递。(若存在嵌套的子程序调用,中间调用过程中的上下文还是要
从寄存器"溅出"(spill)到堆栈中,而"叶"子程序不需要。)
RISC
中断可视为特殊的子程序链接 :CISC 中发生中断时,所有的寄存器内容都被压入堆栈,而 RISC 对中断进行区分
对待,分为轻量级和重量级。对轻量级中断 只保存需要保存的寄存器内容;对重量级中断的处理如同常规中断。
剩余12页未读,继续阅读
gggggggggesvxz
- 粉丝: 17
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2