-
系统结构期末复习(二)计算机指令集结构
2020-07-18 10:25:44目录 指令集结构的分类 寻址方式 指令集结构的功能设计 3.1 CISC指令集结构的功能设计 3.2 RISC指令集结构的功能设计 操作数的类型大小 指令格式的设计 MIPS指令集结构 ...区别不同指令集结构的主要目录
- 指令集结构的分类
- 寻址方式
- 指令集结构的功能设计
3.1 CISC指令集结构的功能设计
3.2 RISC指令集结构的功能设计 - 操作数的类型大小
- 指令格式的设计
- MIPS指令集结构
6.1 MIPS的寄存器
6.2 MIPS的数据表示
6.3 MIPS的数据寻址方式
6.4 MIPS的指令格式
6.5 MIPS的操作
6.6 MIPS的控制指令
6.7 MIPS的浮点操作
⚠️RISC执行程序比CISC快的主要原因:RISC指令平均执行周期数少
1. 指令集结构的分类
- 区别不同指令集结构的主要因素:CPU中用来存储操作数的存储单元的类型【堆栈、累加器和通用寄存器组】
- 对于不同类型的指令集结构,其操作数位置、个数以及操作数的给出方式、显示(或隐式)也不同【显式:用指令字中的操作数字段给出;隐式:使用事先约好的单元(eg:比如默认加到AX寄存器上)】
- 4中指令集结构中的操作数的位置及结果去向:
堆栈结构:操作数取自栈顶,结果回堆栈;不访问内存,访问CPU内部堆栈 - 表达式C=A+B在4种类型指令集结构上的代码:
- 通用寄存器结构在灵活性和提高性能方面有明显的优势:
- 与其他CPU内部存储单元一样,寄存器的访问速度比存储器快
- 对编译器而言,能更加容易、有效地分配和使用寄存器
- 寄存器可以用来存放变量【减少对存储器的访问加快程序执行速度;用更少的地址位来对寄存器进行寻址,有效地减少目标代码】
- 存储单元类型->操作数的来源->ALU指令的操作数个数->ALU指令中存储器操作数的个数【0-3:0表示没有】:
- 有3个操作数:2个源操作数、1个目的操作数‘
- 有2个操作数:1个既作为源操作数,又作为目的操作数
2. 寻址方式
- 寻址方式:一种指令集结构如何确定所要访问的数据的地址(定义的是以何种方式找到操作数)
指令格式:指令以何种方式组织操作码和操作数 - 对于存储器操作数来说,由寻址方式确定的实际存储器地址称为有效地址
注:
-
代表李技术
- ()代表的是寄存器中存储的地址在MEM下的映射
- d代表操作数大小,即存储一个单元格的数据的长度 1个字节:1,4个 字节:2,32个字节:4【在自增/自减寻址方式和缩放寻址方式中,用变量D来指明被访问的数据项的大小。只有当所要访问的数据元素在存储器中是相邻存放时,这3种寻址方式才有意义】
- PC相对寻址:一种以程序计数器PC作为参考点的寻址方式,主要用于在转移指令中指定目标指令的地址。
- 相关结论:
- 程序所使用的偏移量大小分布广泛,主要是因为在存储器中所保存的数据并不是十分集中,需要使用不同的偏移量才能对其进行访问
- 较小和较大的偏移量均占有相当大的比例
- 立即数寻址方式主要用于ALU指令、比较指令和用于给寄存器装入常数等
- 最常使用的是较小的立即数,然而有时也会用到较大的立即数(主要是用于地址计算)
- 在指令集结构设计中,至少将立即数的大小设置为8-16位
3. 指令集结构的功能设计
由于指令集结构是系统结构的主要内容之一,所以它的功能设计实际上就是确定软硬件功能分配,即确定那些基本功能应该由硬件实现,哪些功能由软件实现比较合适。
确定哪些基本功能由硬件来实现时,主要考虑的因素有3个:速度、成本与灵活性。选择出现频度高的基本功能用硬件实现
对指令集的基本要求:
比较内容 CISC RISC 设计目标 1. 强化指令功能 2.减少程序指令条数,以达到提高性能的目的 尽可能简化指令集,不仅指令条数少而且指令功能比较简单 增强功能着手点 1.面向目标程序增强指令功能 2.面向高级语言的优化增强指令功能 3.面向操作系统的优化增强指令功能 no 3.1 CISC指令集结构的功能设计
1.面向目标程序增强指令功能
- 增强运算型指令的功能
- 增强数据传送指令功能
- 增强程序控制指令的功能
循环控制指令可以有两种实现方式:通常用3条指令来完成——一条加法指令、一条比较指令和一条分支指令
2. 面向高级语言的优化实现来改进指令集
高级语言程序的编译问题:
编译器本身比较复杂
编译器生成的目标代码比较难以很好的优化
- 增强对高级语言和编译器的支持
- 高级语言计算机
间接执行高级语言计算机:需要使用汇编的方法把高级语言源程序翻译成机器语言程序
直接执行高级语言计算机:直接由硬件对高级语言源程序逐条进行解释执行,既不用编译也不用汇编
3. 面向操作系统的优化改进指令集
操作系统的实现在很大程度上取决于系统结构的支持
指令集对操作系统的支持主要有:- 处理机工作状态和访问方式的切换
- 进程的管理和切换
- 存储管理和信息保护
- 进程的同步与互斥,信号灯的管理等
3.2 RISC指令集结构的功能设计
- CISC指令结构存在的问题
- 各种指令的使用频度相差悬殊
- 指令集庞大,指令条数很多,许多指令的功能又很复杂
- 许多指令由于操作繁杂,其CPI值比较大
- 由于指令功能复杂,规整性不好,不利于流水提高性能
- RISC计算机应该遵循的规则:
- 指令条数少而简单
- 采用简单而又统一的指令格式,并减少寻址方式(字长32/64)
- 指令的执行在单个机器周期内完成(采用流水线机制后)
- 只有load和store指令才能访问存储器(其他指令的操作都是在寄存器之间进行,采用load-store结构
- 大多数指令都采用硬连逻辑来实现
- 强调优化编译器的作用,为高级语言程序生成优化的代码
- 充分采用流水线技术来提高性能
3.3 控制指令
控制指令是用来改变控制流的,当指令是无条件改变控制流时——跳转指令;有条件——分支指令。能够改变控制流的指令有4种:条件分支、跳转、过程调用、过程返回
- 在控制指令中必须给出转移的目标地址。在绝大多数情况下,指令中都会显式给出目标地址,但是过程返回指令是个例外,因为在编译的时候不知道其返回地址。
- 指定转移目标地址最常用的方法是==在指令中提供一个偏移量,由该偏移量和PC的值相加得出目标地址【PC相对寻址】
- 优点:1. 有效减少表示该目标地址所需要的位数;2. 位置无关(减少程序连接的工作量)
- 关键:确定偏移量字段的长度(采用4~8位即可)
- 对于过程返回和过程调用,除改变控制流之外,可能还要保存机器状态(至少也要保存返回地址)过去有些指令集结构提供了专门的保存机制来保存许多寄存器的内容,现在新的机制要求编译器来生成load和store指令来保存或恢复寄存器的内容
4. 操作数的类型和大小
数据表示:计算机硬件能直接识别、指令集可直接调用的数据类型
数据结构:由软件进行处理和实现的各种数据类型,一般除了数据表示之外所有的数据类型都是数据结构要研究的内容
确定数据表示实际上也是个软硬件取舍折中的问题
5. 指令格式的设计
- 指令一般包括两部分:操作码和地址码。指令格式的设计就是确定指令字的编码方式。包括操作码字段和地址码字段的编码和表示方式。
- 寻址方式的表示方法有两种:1. 把它和操作码一起编码 2. 设置专门的地址描述符
- 计算机中寄存器的个数和寻址方式的数目对计算机的指令字长由很大影响;所设计的指令格式便于硬件处理,特别是流水实现;至少指令字长应该是字节的整数倍,而不能是随意的倍数
6.MIPS指令集结构
6.1 MIPS的寄存器
6.2 MIPS的数据表示
- 设置半字和32位的原因都是在类似于C的高级语言中有这种数据类型,而且在操作系统等程序中也很常用,这些程序很重视数据所占的空间大小。
- MIPS的操作都是针对64位整数和32、64位浮点数进行的,其余的在装入的时候使用零扩展或符号扩展来填充该寄存器的剩余部分。装入后按照64位整数的方式运算。
6.3 MIPS的数据寻址方式
- MIPS的存储器是按字节寻址的,地址为64位。GPR和FPR与存储器之间的数据传送是通过load和store指令实现的。
- 所有存储器访问都必须是边界对齐的
6.4 MIPS的指令格式
- MIPS的寻址方式是编码到操作码中的,所有指令都是32位的,操作码占6位,按照不同类型的指令设置的不同格式,共有3种格式:
- I类指令(立即数)
包括所有的load\store指令、立即数指令、分支指令、寄存器跳转指令、寄存器链接跳转指令;立即数字段16位,用于提供立即数或偏移量
- R类指令(寄存器)
包括ALU指令、专用寄存器读写指令、move指令等
- J类指令(跳转)
包括跳转指令、跳转并连接指令、自陷指令与异常返回指令;低26位是偏移量,与PC相加形成跳转地址
6.5 MIPS的操作
MIPS的指令可以分为4类:load和store、ALU操作、分支与跳转和浮点操作
除了R0之外,所有通用寄存器与浮点寄存器都可以进行load或store。
MIPS中所有的ALU指令都是寄存器-寄存器型指令或立即数型
6.6 MIPS的控制指令
在MIPS中,控制流的改变是由一组分支指令实现的。
- 跳转指令:
- 根据跳转指令确定目标地址的方式不同以及跳转时是否链接,可以把跳转指令分成4类(2*2)
- 确定目标地址的方式有2种:把26位偏移量左移2位,替换程序计数器的低28位(简单跳转);另一种是由指令中指定的一个寄存器来给出跳转目标地址(间接跳转)
- 简单跳转只需要将目标地址送入程序计数器;跳转并连接多一个操作:把返回地址(顺序下一条指令的地址)放入寄存器R3.
- 分支指令:
- 所有的分支指令都是条件转移
- 分支条件由指令确定;提供了一组比较指令,用于比较两个寄存器的值(Reg和Reg/Reg+Immediate)
- 有的分支指令可以直接判断寄存器内容是否为负,或者比较两个寄存器是否相等
- 分枝的目标地址由16位带符号偏移量左移2位后和PC相加结果来决定
- 还有一条浮点条件分支指令,该指令通过测试浮点状态寄存器来决定是否进行分支
6.7 MIPS的浮点操作
- 由操作码给出浮点精度:S—单精度;D——双精度
- 浮点操作
包括加减乘除,分别有单、双精度指令 - 浮点数比较指令
根据比较结果设置浮点状态寄存器中的某一位,一边后面的分支BC1T(若真则分支)或BC1F(若假则分支)测试该位。
-
精简指令集和复杂指令集的区别
2016-03-31 21:57:39RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。 CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示 ...RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。
CPU架构是厂商给属于同一系列的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)
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.
精简指令集计算机(RISC)
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.
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两种技术,从软件与硬件方面看二者会取长补短。
复杂指令集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的部分优点。
RISC与CISC的主要特征对比
比较内容 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长 -
【计算机组成原理】二RISC指令&Mips指令集(三类指令&指令周期&相关)&指令调度(执行分支指令&三种分支...
2020-11-17 03:33:48三种分支延迟槽调度方法)RISC指令MIPS指令集三类指令集指令周期取指令周期(IFIFIF)指令译码/读寄存器周期(IDIDID)执行/有效地址计算周期(EXEXEX)访存/分支操作(MEMMEMMEM)写回周期(WBWBWB)相关三种不同类型的相关...计算机组成原理二——RISC指令&Mips指令集(三类指令&指令周期&相关)&指令调度(执行分支指令&三种分支延迟槽调度方法)
博主计组相关章节目录
计算机组成原理一——计算机的基本概念(Amdahl定律&CPU性能公式)&指令系统&总线&流水线性能(吞吐率&加速比&效率)
计算机组成原理二——RISC指令&Mips指令集(三类指令&指令周期&相关)&指令调度(执行分支指令&三种分支延迟槽调度方法)RISC指令
MIPS指令集
三类指令集
- ALU指令(算数和逻辑)
- 载入和存储指令(数据传输)
- 分支和跳转
指令周期
- IF-取指令
- ID-指令译码
- EX-执行/有效地址周期
- MEM-存储器访存
- WB-写回周期
取指令周期()
指令译码/读寄存器周期()
执行/有效地址计算周期()
访存/分支操作()
写回周期()
相关
三种不同类型的相关
指令调度
执行分支指令
三种分支延迟槽调度方法
从前调度
从成功处调度
从失败处调度
-
【软件硬件】精简指令集和复杂指令集的区别
2018-08-07 11:08:31RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。 CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示 ...RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。
CPU架构是厂商给属于同一系列的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)
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.
精简指令集计算机(RISC)
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.
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两种技术,从软件与硬件方面看二者会取长补短。
复杂指令集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的部分优点。
RISC与CISC的主要特征对比
比较内容 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长 -
指令集001
2020-08-05 21:59:01软件是为了使用计算机而编写的各种系统和用户的程序,程序由一个序列的计算机指令组成 指令系统包括指令格式、寻址方式和数据形式 一台计算机的指令系统反映了该计算机的全部功能,机器类型不同,其指令系统也不同,... -
指令集体系
2012-04-18 17:27:00指的是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode 即操作码(机器语言),以及由特定处理器执行的... -
【涂鸦物联网足迹】涂鸦云平台标准指令集说明
2020-11-17 11:54:35简单点说,指令集就是一组汇编指令的集合,不同的CPU使用的指令集不同。 指令集是存储于CPU内部,用来引导CPU进行计算和控制计算机操作系统的一系列指令集合!涂鸦IoT开发平台针对不同的标准产品类别,设计了相应的... -
华科Logisim实验改RISV指令集
2020-12-06 15:49:56参考书目:数字逻辑与计算机组成 熟悉RISC-V指令格式 官方文档之类的可以搜索到 ...(原因是不同类型RISC-V指令格式内Imm的位置不一样) 序号 输入 1 Instr_31 2 Instr_31_12 3 Instr_3 -
计算机组成原理(4.1)—— 指令系统设计
2020-08-13 08:42:01文章目录一、指令集体系结构(ISA)的基础概念1. 什么是ISA2. ISA的地位(1)ISA是软件和硬件的交界面(接口)(2)ISA是计算机的必要组成部分二、指令格式设计1. 一条指令必须包含的信息2. 不同地址码个数的指令3. ... -
[信息安全][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第一篇]不同类型的处理器
2020-07-07 15:25:47这是每个密码学博士生应该知道的52件事系列...一个通用的带指令集扩展的处理器 一个专用的处理器(协同处理器) 一个FPGA 没有一个严格的通用处理器的定义,然而,一般认为如果处理器是图灵完备的那么就是通用处理器。这 -
计算机组成和计算机体系结构的概念区别
2013-05-15 20:48:33计算机系统的属性通常是指用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。由于计算机系统具有多级层次结构,因此,站在不同层次上编程的... -
tensorflow编译-cpu指令优化相关选项说明
2019-03-21 15:38:56总结如下:AVX,SSE4.1,SSE4.2,MFA是X86 CPU上不同类型的扩展指令集。其中许多包含处理矩阵或向量操作的优化指令。 注意:并不是SSE4.2是取代SSE4.1的较新版本的指令。SSE 4=SSE4.1(一组47条指令)+SSE4.2(一组7条... -
计算机体系结构_计算机组成原理。1.1.3关于计算机组成和计算机体系结构
2020-11-29 21:11:21计算机系统的属性通常是指用机器语言编程的程序员(也包括汇编语言程序设计者和汇编程序设计者)所看到的传统机器的属性,包括指令集,数据类型,存储器寻址技术,I/O机理等,大都属于抽象的属性。由于计算机系统具有... -
计算机组成原理02318视频_计算机组成原理。1.1.3关于计算机组成和计算机体系结构...
2020-10-22 17:30:50计算机系统的属性通常是指用机器语言编程的程序员(也包括汇编语言程序设计者和汇编程序设计者)所看到的传统机器的属性,包括指令集,数据类型,存储器寻址技术,I/O机理等,大都属于抽象的属性。由于计算机系统具有... -
计算机组成原理一道习题的一个错误解法
2019-03-11 23:00:00题目 题目来自计算机组成与系统结构...在指令集中有五种不同类型的指令A~E。下表给出了在M1和M2上每类指令的平均时钟周期数CPI。 机器 机器 一个普通标题 B C D E M1 1 2 2 3 4 M2 2 2 4 5 6 请回答下... -
升级版本-汇编码转机器码万能转换工具(支持32种CPU架构指令16/32/64位的转码)
2019-03-30 18:52:14如果有涉猎不同的CPU指令集时转换工具会是最大的问题。 于是借助业余时间,开发了这个万能的汇编码转机器码的工具软件。 之前的版本仅支持11中CPU架构指令的转换。(此外该软件被各大软件网站收录,请注意下版权... -
计算机组成原理——程序的机器性表达
2020-09-13 21:50:21ISA:指令集架构(不同处理器的指令集不一样),例如: Intel: x86, IA32, Itanium, x86-64 ARM: Used in almost all mobile phones 高级语言较于汇编语言: 1.高度抽象(保证多产) 2.类型检查 3.与手写代码一样高效 4... -
计算机内存使用方式
2020-08-23 23:42:52早期计算机内存使用方式 ...以冯诺依曼的计算机设计思路为,CUP现在内存中取指(这里的指,代表指令类型,比如接下来是要做加法还是减法,左移还是右移,构架不同的CUP所用的指令集是不同的,所以就有了X86,X64 -
计算机体系结构试题及答案
2009-11-18 14:15:012.3.2 RISC计算机指令集结构的功能设计 2.3.3 控制指令 2.4 操作数的类型、表示和大小 2.5 指令集格式的设计 2.5.1 寻址方式的表示方法 2.5.2 指令集格式的选择 2.6 编译技术与计算机体系结构设计 ... -
计算机硬件科普——CPU
2019-10-06 10:30:29CPU 我们通常将cpu比喻为人类的大脑,是计算机的核心部件, 决定了一台电脑的运算性能好坏。...目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CP... -
计算机系统基础习题
2020-01-04 11:38:47若机器 M1 和 M2 具有相同的指令集,其时钟频率分别为 1GHz 和 1.5GHz。在指令集中有五种不同 类型的指令 A~E。下表给出了在 M1 和 M2 上每类指令的平均时钟周期数 CPI。 机器 A B C D E M1 1 2 2 3 4 M2 2 2 4 5 6 ... -
计算机CPU四大体系架构
2019-11-14 16:41:24是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。 目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU... -
计算机组成原理(第2版)唐朔飞
2020-09-21 22:20:32指用机器,汇编语言编程的程序员所看到传统机器的属性:指令集,数据类型,存储器寻址技术,I/O机理 计算机组成:指如何实现计算机体系结构。如何取指令,分析指令,取操作数,运算。指令相同,只能认为他们有相同... -
C语言学习笔记(3)——基本数据类型
2019-10-04 04:52:06抽象的说,数据是对客观事物的一种描述。这种描述是采用了计算机... 计算机硬件也会把数据划分成一些类型,对于不同的数据类型,有不同的指令集来处理对应的数据类型。我们知道,计算机中的数据都是二进制补码形式... -
编程语言从开始到现在
2016-11-03 13:50:46机器语言计算机(这里...不同类型的CPU对应不同的指令集。指令集就是机器语言。汇编语言汇编语言(assembly language),亦称为符号语言。汇编语言的主体是汇编指令,汇编指令和机器指令的差别在于指令的表示方法上。1 -
继多核后第三个时代异构计算机
2012-11-20 15:38:10异构计算被视为计算机处理器继单核、多核之后的第三个时代,它将实现使用不同类型指令集和体系架构的计算单元,比如CPU和GPU之间的“协同计算、彼此加速”,从而突破CPU发展的瓶颈,有效解决能耗、可扩展性等问题。 -
AT编程指令与常见问题
2011-04-26 12:21:04这需要根据不同的地域作相应的修改。 ⑴、⑵、⑶通称短消息中心地址(Address of the SMSC)。 ⑷11—文件头字节。 11&h=00010001&b BIT No. 7 6 5 4 3 2 1 0 Name TP-RP TP-UDHI TP-SPR TP-VFP TP-RD TP-MTI value ... -
计算机三级嵌入式学习笔记(二)
2021-02-21 18:40:15嵌入式处理器的结构、特点与分类(不同类型的典型嵌入式处理器及其特点,嵌入式处理器分类); ARM处理器内核的体系结构(工作状态,工作模式,寄存器组织,异常,数据类型与存储格式等); 典型ARM处理器内核(ARM9...