4-3指令系统-CISC和RISC

news/2024/11/9 4:45:52/

文章目录

  • 一.复杂指令系统计算机CISC
  • 二.精简指令系统计算机RISC
  • 三.CISC和RISC比较

一.复杂指令系统计算机CISC

为增强原有指令的功能,设置更为复杂的新指令实现软件功能的硬化,这类机器成为复杂指令系统计算机CISC(Complex Instruction Set Computer)

1.设计思路:一条指令完成一个复杂的基本功能。
2.代表:x86架构,主要用户笔记本、台式机等
3.特点:
(1)指令系统复杂庞大,指令数目一般大于200条
(2)指令的长度不固定,指令格式多,寻址方式多
(3)可以访存的指令不受限制
(4)各种指令使用频度相差很大
(5)各种指令执行时间相差很大,大多数指令需要多个时钟周期才能完成
(6)控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连接控制
(7)难以用优化编译生成高效的目标代码程序

  • 微程序:微程序设计是用规整的存储逻辑代替不规则的硬接线逻辑来实现计算机控制器功能的技术。每一条指令启动一串微指令,这串微指令称为微程序。微程序存放在控制存储器中,修改控制存储器内容可以改变计算机的指令。
  • 微程序控制器:将控制器所需的微命令以代码形式编成微指令,存入一个由ROM构成的控制存储器(CM)中。将各种机器指令的操作分解成若干微操作序列。每条微指令包含的微命令控制实现一步操作。若干条微指令组成一小段微程序,解释执行一条机器指令。
    在这里插入图片描述

比如设计一套能实现整数、矩阵加/减/乘运算的指令集,CISC除了提供整数的加/减/乘指令之外,还提供矩阵的加/减/乘指令,共6条。一条指令可以由一个专门的电路完成。但有的复杂指令用纯硬件实现很困难(如乘法),所以通常采用“存储程序”的设计思想,由一个比较通用的电路配合存储部件完成一条指令,这些通用的电路及存储部件配合实现复杂的指令(乘法),这就是微程序。

因为各种指令的使用频率相差悬殊,大概只有20%的指令被反复使用,约占整个程序的80%,而剩余80%左右的指令很少使用,因此提出了RISC

二.精简指令系统计算机RISC

为减少指令种类、简化指令功能,提出了精简指令系统计算机RISC(Reduced Instruction Set Computer)

1.设计思路:一条指令完成一个基本“动作”,多条指令组合完成一个复杂的基本功能。
2.代表:ARM架构,主要用于手机、平板等
3.特点:控制方式采用组合逻辑控制,效率更高。各种指令执行时间相差不大,便于实现“并行”、“流水线”

比如设计一套能实现整数、矩阵加/减/乘运算的指令集,RISC只提供整数的加/减/乘指令。一条指令对应一个电路,电路设计相对简单,功耗更低。

三.CISC和RISC比较

1.可访存指令
RISC只有Load指令(从主存读到寄存器)和Store指令(从寄存器往主存写)可以访存,因此需要较多的寄存器。乘法指令取数时需要访存,并没有用到这两条指令,因此乘法指令一定不是RISC。因为CISC可以访存的指令不受限制,所以乘法指令是CISC

2.目标代码
CISC相当于提供了很多库函数(库函数难以修改),而RISC相当于基本操作语句。因此CISC难以用优化编译生成高效的目标代码程序(库函数),RISC采用优化的编译程序,生成代码较为高效

在这里插入图片描述

  • 什么是RISC,简述它的主要特点
    RISC是精简指令系统计算机,它减少了指令种类、简化了指令功能。
    特点:
    ①让复杂的指令功能由频度高的简单指令的组合来实现;
    ②指令长度固定、指令格式种类少,寻址方式种类少;
    ③只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成;
    ④CPU中有多个通用寄存器;
    ⑤采用流水线技术,大部分指令在一个时钟周期内完成;
    ⑥控制器采用组合逻辑控制,不用微程序控制;
    ⑦采用优化的编译程序,生成代码较为高效
  • RISC和CISC有哪些不同点
    ①CISC复杂指令系统计算机:指令字长不固定,可访存指令不加限制,通用寄存器少,难以用优化编译生成高效的目标代码程序。RISC精简指令系统计算机:指令字长固定,可访存指令只有Load/Store指令,寻址方式简单,绝大多数指令执行时间在一个周期内完成,通用寄存器多,必须实现指令流水线
    ②RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。
    ③RISC系统虽然有很高的性能,但由于历史原因,CISC产品已经占据广大终端用户市场,而RISC又不能与CISC兼容,这使得RISC产品难以在短期内改变市场格局。目前RISC产品主要应用于高端服务器和工作站领域。

http://www.ppmy.cn/news/18423.html

相关文章

C++多线程06:std::call_once

C多线程:std::call_once 文章目录C多线程:std::call_once在多线程的环境下,有些时候我们不需要某个函数被调用多次或者某些变量被初始化多次,它们仅仅只需要被调用一次或者初始化一次即可。很多时候我们为了初始化某些数据会写出如…

【算法基础】归并排序

目录 一、归并排序的思想 二、归并排序的步骤 三、归并的方式 四、代码模板 一、归并排序的思想 归并排序和快速排序一样,都是分治的思想。它是将一个无序的数组一分为二,最后再合二为一,将两个有序数组合并成为一个有序数组。 时间复杂…

2023年新年烟花代码(背景音乐完整版)

文章目录前言烟花效果展示使用教程查看源码HTML代码CSS代码JavaScript新年祝福前言 大家过年好!新春佳节,在这个充满喜悦的日子里,愿新年的钟声带给你一份希望和期待,我相信,时空的距离不能阻隔你我,我的祝…

第五层:C++中的运算符重载

文章目录前情回顾运算符重载概念为什么会出现运算符重载运算符重载中函数名格式加减运算符重载作用实现左移运算符重载作用左移运算符是什么?实现递增递减运算符作用实现前置后置赋值运算符重载关系运算符重载作用实现函数调用运算符重载第二种重载掌握!…

Zookeeper 【下载与安装,基本使用】

目录 1. 什么是zookeeper 2. zookeeper下载与安装 3. Zookeeper 测试 1. 什么是zookeeper zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。 由于分布式系统中一致性处理较为困难,其他的分布式系统没有…

ACM模板(数学算法)

目录 〇,全文说明、宏定义代码 一,单例、快速幂、数论 二,并查集、DancingLink、图论 三,test 〇,全文说明、宏定义代码 所有接口分三类: Sieve类继承了单例模板,用单例对象去调用接口。并…

【阅读笔记】《重构》 第五六章

第五章 重构列表 重构的记录格式 建造一个重构词汇表一个简短概要,解决的问题,应该做的事,展示重构前后示例动机,为什么要重构做法,介绍如何进行此一重构范例,说明重构手法如何运作 寻找引用点 利用文本…

vs code中的platformIO插件,完成Arduino的程序编写,导入,安装开发板管理库

准备工作 vs code已经安装好,扩展插件plateformIO也安装好。(下图是platformIO安装方式) platformIO界面功能介绍和简单使用 新建Arduino项目 选择正确的开发板型号,和自己习惯的编译框架。打开后有一个.ini的配置文件&#x…