精华内容
下载资源
问答
  • 计算机指令集 指令系统 (Instruction Set) An instruction set can be defined as a group of instruction that a processor can execute to perform different operations. On the basis of complexity and the ...

    计算机指令集

    指令系统 (Instruction Set)

    An instruction set can be defined as a group of instruction that a processor can execute to perform different operations. On the basis of complexity and the number of instruction used the instruction set can be classified as

    指令集可以定义为处理器可执行以执行不同操作的一组指令。 根据复杂性和使用的指令数量,可以将指令集分类为

    1. Complex Instruction set

      复杂指令集

    2. Reduced Instruction set

      精简指令集

    1)复杂指令集 (1) Complex Instruction set)

    The complex instruction set is the set of instruction which includes very complex and large number of instructions. The number of instruction in this set varies from 100 to 250. The instruction in this set is mostly memory based instruction, which involves frequent to the memory. The complex instruction set makes use of a large number of addressing modes because of the frequent references to register as well as memory. The instruction in this instruction takes a lot of time because the instructions format which is not limited to only 32 bit.

    复杂指令集是包括非常复杂和大量指令的指令集。 该集中的指令数量从100到250不等。该集中的指令主要是基于内存的指令,涉及到内存频繁。 由于频繁引用寄存器和存储器,因此复杂的指令集使用了大量的寻址模式。 该指令中的指令要花费很多时间,因为指令格式不仅限于32位。

    The complex which makes use of complex instruction set is called Complex Instruction set Computer (CISC). The instruction set of CISC has a large number of instruction and for each instruction type.

    利用复杂指令集的复合体称为复杂指令集计算机(CISC)。 对于每种指令类型,CISC的指令集都有大量指令。

    Advantages of Complex Instruction Set

    复杂指令集的优点

    • There is no need to invent an instruction set for each new design. The instruction set of the predecessor is used by the new user.

      无需为每个新设计发明一套指令集。 新用户使用前身的指令集。

    • A program written in CISC require less memory space as the code is confined to less number of instruction.

      用CISC编写的程序需要较少的存储空间,因为代码仅限于较少的指令数。

    • CISC makes the job of a computer easier by facilitating the implementation of high-level language constructs.

      通过促进高级语言结构的实现,CISC使计算机的工作更加轻松。

    Disadvantages of Complex Instruction set

    复杂指令集的缺点

    • The inheritance of old instruction into new processor increase the complexity.

      将旧指令继承到新处理器中会增加复杂性。

    • Many CISC instructions are not frequently used.

      许多CISC指令不经常使用。

    • CISC command is translated into a large number of lines of microcode which makes the CPU processing slower.

      CISC命令被翻译成大量的微代码行,这使CPU处理速度变慢。

    • CISC system has a complex hardware, so they require more times for designing.

      CISC系统具有复杂的硬件,因此需要更多的时间进行设计。

    2)精简指令集 (2) Reduced Instruction Set)

    The reduced instruction set refers to a set of instruction that contains very few instructions ranging from 0 to 100. It comprises only those instruction that is frequently used by the processor for the execution of a program. The instruction is generally very simple to execute. The memory-based instruction includes the only load and stores instructions. The instruction in this instruction set has fixed length instruction format of 32 bits. An instruction format divides the bits of instructions into small group fields. Generally, an instruction has the following fields:

    精简指令集是指包含很少的0到100范围内的指令的指令集。它仅包括处理器经常用于执行程序的那些指令。 该指令通常很容易执行。 基于存储器的指令仅包括加载和存储指令。 该指令集中的指令具有固定长度的32位指令格式。 指令格式将指令的位分成小组字段。 通常,一条指令具有以下字段:

    • Opcode field

      操作码字段

      It represents the operations to be performed by the instruction.

      它代表指令要执行的操作。

    • Operand field

      操作数字段

      It represents the data on which the operations are to be performed or the memory location or registers where the data is stored.

      它表示要在其上执行操作的数据或存储该数据的存储器位置或寄存器。

    • Mode field

      模式字段

      It represents the method of fetching the operands stored at specified memory location or register.

      它表示获取存储在指定存储位置或寄存器中的操作数的方法。

    The comparison of RISC and CISC processor indicated that the RISC processor is always preferred over the CISC processor because of their compact size and small instruction set.

    RISC和CISC处理器的比较表明,RISC处理器始终比CISC处理器更受青睐,因为它们具有紧凑的尺寸和小的指令集。

    Advantages of Reduced Instruction set computer

    精简指令集计算机的优势

    The other advantages of RISC processor over the CISC processor are as follow:

    RISC处理器相对于CISC处理器的其他优点如下:

    • In RISC processor the instructions are executed by decoding but in CISC processors, the instructions are executed by first and then translating them into equivalent microcode instructions. The conversion of instruction into microcode consumes a lot of space in the memory thereby reducing the speed of executions.

      在RISC处理器中,指令是通过解码执行的,而在CISC处理器中,指令是先执行的,然后将其转换为等效的微码指令。 将指令转换为微代码会占用内存中的大量空间,从而降低了执行速度。

    • The RISC processor executes an instruction in a single clock cycle, while the CISC processor requires multiple clocks cycles for the execution of an instruction.

      RISC处理器在单个时钟周期内执行一条指令,而CISC处理器则需要多个时钟周期才能执行一条指令。

    Disadvantages of Reduced Instruction set computer

    精简指令集计算机的缺点

    The only disadvantages of RISC in comparison to CISC is that the number of instructions required to perform an operation is comparatively large.

    与CISC相比,RISC的唯一缺点是执行操作所需的指令数量相对较大。

    翻译自: https://www.includehelp.com/cso/instruction-set-and-their-types.aspx

    计算机指令集

    展开全文
  • 计算机指令集的相关概念

    千次阅读 2020-05-08 17:28:11
    计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就...

    文章内容直接摘自百度百科https://baike.baidu.com/item/%E6%8C%87%E4%BB%A4%E9%9B%86/238130?fr=aladdin

    计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效的工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分 [1]  。

    目录

    1. 简介
    2. 类型
    3. ▪ SSE指令集(Streaming SIMD Extensions)
    4. ▪ SSE2指令集
    1. ▪ SSE3指令集
    2. ▪ SSE4指令集
    3. ▪ 3D Now!扩展指令集
    4. ▪ X86指令集
    5. ▪ EM64T指令集
    6. ▪ RISC指令集
    1. ▪ AVX指令集
    2. AT指令集在移动卫星通信中的应用

    简介

    编辑

    在计算机中,指示计算机硬件执行某种运算、处理功能的命令称为指令。指令是计算机运行的最小的功能单位,而硬件的作用是完成每条指令规定的功能。一台计算机上全部指令的集合,就是这台计算机的指令系统。指令系统也称指令集,是这台计算机全部功能的体现。而人们设计计算机首要考虑的是它拥有的功能,也就是首先要按功能档次设计指令集,然后按指令集的要求在硬件上实现。指令系统不仅仅是指令的集合,还包括全部指令的指令格式、寻址方式和数据形式。所以,各计算机执行的指令系统不仅决定了机器所要求的能力,而且也决定了指令的格式和机器的结构。反过来说,不同结构的机器和不同的指令格式应该具有与之相匹配的指令系统。为此,设计指令系统时,要对指令格式、类型及操作功能给予应有的重视。软件是为了使用计算机而编写的各种系统和用户的程序,程序由一个序列的计算机指令组成。从这个角度上说,指令是用于设计程序的一种计算机语言单位 [2]  

    计算机的指令系统是指一台计算机上全部指令的集合,也称计算机的指令集。指令系统包括指令格式、寻址方式和数据形式。一台计算机的指令系统反映了该计算机的全部功能,机器类型不同,其指令系统也不同,因而功能也不同。指令系统的设置和机器的硬件结构密切相关,一台计算机要有较好的性能,必须设计功能齐全、通用性强、内含丰富的指令系统,这就需要复杂的硬件结构来支持 [2]  。

    常见的指令集有:Intel的x86,EM64T,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4A,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX等指令集;和AMD的x86,x86-64,3D-Now!指令集。

    类型

    编辑

    SSE指令集(Streaming SIMD Extensions)

    由于MMX指令并没有带来3D游戏性能的显著提升,1999年Intel公司在Pentium IIICPU产品中推出了数据流单指令序列扩展指令(SSE)。SSE兼容MMX指令,它可以通过SIMD(单指令多数据技术)和单时钟周期并行处理多个浮点来有效地提高浮点运算速度。

    在MMX指令集中,借用了浮点处理器的8个寄存器,这样导致了浮点运算速度降低。而在SSE指令集推出时,Intel公司在Pentium III CPU中增加了8个128位的SSE指令专用寄存器。而且SSE指令寄存器可以全速运行,保证了与浮点运算的并行性。

    SSE2指令集

    在Pentium 4 CPU中,Intel公司开发了新指令集SSE2。这一次新开发的SSE2指令一共144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点和整形数据之间转换、数据在MMX寄存器中转换等几大部分。其中重要的改进包括引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等。为了更好地利用高速缓存。另外,在Pentium 4中还新增加了几条缓存指令,允许程序员控制已经缓存过的数据。

    SSE3指令集

    相对于SSE2,SSE3又新增加了13条新指令,此前它们被统称为pni(prescott new instructions)。13条指令中,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算。

    SSE4指令集

    SSE4又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向加速。

    SSE4指令集将作为Intel公司未来“显著视频增强”平台的一部分。该平台的其他视频增强功能还有Clear Video技术(CVT)和统一显示接口(UDI)支持等,其中前者是对ATi AVIVO技术的回应,支持高级解码、后处理和增强型3D功能。

    3D Now!扩展指令集

    3D Now!指令集是AMD公司1998年开发的多媒体扩展指令集,共有21条指令。针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力。由于指令有限,3D Now!指令集主要用于3D游戏,而对其他商业图形应用处理支持不足。

    3DNow!+指令集:在原有的指令集基础上,增加到52条指令,其中包含了部分SSE指令,该指令集主要用于新型的AMDCPU上。

    X86指令集

    要知道什么是指令集,要从X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,

    以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU都使用X86指令集,所以就形成了庞大的X86系列及兼容CPU阵容。

    EM64T指令集

    Intel公司的EM64T(Extended Memory 64 Technology)即64位内存扩展技术。该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,特别有利于提升音频视频编辑、CAD设计等复杂工程软件及游戏软件的应用。常说的64位指的是AMD公司出的64位CPU,而EM64T则是Intel公司按照自己的意思理解出来的64位,也就是和AMD公司的64位对应的另一种叫法。

    RISC指令集

    RISC指令集是以后高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。使用RISC指令集的体系结构主要有ARM、MIPS。MIPS 指令集是最早实现商用的精简指令集(RISC)之一,上个世纪80年代初由斯坦福大学的研究小组研发,并在1984年成立MIPS计算机公司 [3]  。随后MIPS 成为上世纪90年代最流行的指令集,一度与 x86 和ARM 指令集齐名。RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。随着移动互联网的兴起,MIPS 指令集逐渐衰落,公司也多次辗转被收购。

    AVX指令集

    Intel AVX指令集在SIMD计算性能增强的同时也沿用了的MMX/SSE指令集。不过MMX/SSE的不同点在于增强的AVX指令,从指令的格式上就发生了很大的变化。x86 (IA-32/Intel 64)架构的基础上增加了prefix (Prefix),所以实现了新的命令,也使更加复杂的指令得以实现,从而提升了x86 CPU的性能。

    AVX并不是x86 CPU的扩展指令集,可以实现更高的效率,同时和CPU硬件兼容性也好,并且也有着足够的扩展空间,这都和其全新的命令格式系统有关。更加流畅的架构就是AVX发展的方向,换言之,就是摆脱传统x86的不足,在SSE指令的基础上AVX也使SSE指令接口更加易用。

    针对AVX的最新的命令编码系统,Intel也给出了更加详细的介绍,其中包括了大幅度扩充指令集的可能性。比如Sandy Bridge所带来的融合了乘法的双指令支持。从而可以更加容易地实现512bits和1024bits的扩展。而在2008年末到2009年推出的meniikoa CPU“Larrabee (LARAB)”处理器,就会采用AVX指令集。从地位上来看AVX也开始了Intel处理器指令集的新篇章。

    AT指令集在移动卫星通信中的应用

    编辑

    AT 命令集是由贺氏公司(Hayes)发明,贺氏公司起初是一家生产拨号调制解调器的公司,而 AT 命令集最初的用途正是为了控制拨号调制解调器,其控制协议采用文本格式,且每条指令以 AT 打头,AT 指令集因此得名。随着技术的不断进步,低速的拨号调制解调器逐步开始满足不了高带宽、高速率的应用需求,因此逐步被市场所淘汰。贺氏公司也在这一技术升级换代的浪潮中所消失。但是 AT 指令却得以保存,其后,当时几家主要的移动电话生产商诺基亚、摩托罗拉、HP和爱立信基于贺氏AT指令加以延伸扩展,针对移动电话中的 GSM模块控制,研制出了一套完整的 AT 指令。由此,之后GSM 07.05标准、GSM07.07标准均将AT指令纳入其中。并且工业上常用PDU、GPRS控制等也均采用AT 指令来进行实际的控制。因此,AT 指令也成为了这些产品的事实标准。ATCoP,是 AT Command Processor的缩写,它是负责软件实现 AT 指令的模块,我们对 AT 指令的新增和修改都是通过 AT 命令处理器来实现的。其具体流程为 :当 AT 命令处理器接收到串口的 AT 命令,进行相应的解析工作,并根据具体的解析结果去 AT 命令表查找是否存在对应的处理选项,若找到对应的项,则继续执行相应

    AT命令处理器的实现架构如图所示AT命令处理器的实现架构如图所示

    的处理过程,并在处理结束后将得到的响应数据返回到串口,AT命令处理器的实现架构如图所示。

    SIO数据预处理模块的主要工作是将串口收到的AT命令先进行一个数据预处理,同时,将预处理所产生的非中断(null-terminated)命令行发送给 AT 命令解析模块。

    AT 命令解析模块对传送来的非中断(null-terminated)命令行进行解析,并将每一个非中断命令行映射成一个 token 结构,并将此token结构放入到队列中,形成 AT命令表,等待AT命令处理模块进行查找调用。

    AT命令处理模块处理AT命令时,对AT命令表中的token结构逐一进行查找,如果查找到匹配选项,则继续执行具体的处理函数,并将此token结构删除。AT命令响应产生模块主要是格式化解析AT命令产生的响应数据,并将此格式化的响应传送给数据终端设备(Data Terminal Equipment :数据终端设备)。

    AT命令处理器的容错机制为 :一次只进行一条AT指令的处理,并且如果AT命令存在错误,在SIO 数据预处理模块就会给出一个错误响应,并产生一个错误代码,不再对其进行处理。

    常规的卫星移动通信系统主要由卫星、卫星天线、功放及射频模块、信道模块以及用户组成。其中,地面站网络管理控制中心(Network Control Center,NCC)负责对整个卫星网内的各卫星地面站设备进行入网、退网、建立卫星业务通道、各种业务流程等进行统一的管理控制。卫星地面站设备包括卫星控制信道、卫星业务信道、射频及功放设备、卫星收发天线等。它负担着整个卫星业务的业务流程控制,业务数据采集、调制解调等工作。卫星控制信道主要负责整个卫星地面站设备的入网、退网等控制信令的传输控制,卫星业务信道负责对需要发送的卫星业务数据或者卫星话音数据进行加密、调制解调成射频信号传输给射频设备,或者对接收到的射频信号进行调制解调、解密转变成卫星业务数据或话音数据。射频设备以及卫星收发天线主要负责对经过信道处理的卫星数据进行发送或者接收对端传输来的卫星射频信号。当卫星地面站设备1的卫星用户1想和卫星地面站设备 N 的用户 N 进行卫星通信时,用户1通过卫星电话终端或者卫星数据终端进行卫星业务发起,这时,卫星控制信道将对业务发起的控制信令进行处理,通过地面站网络管理控制中心,为两个卫星地面站设备建立空中链路业务通道,之后两个地面站的用户就可以进行需要的业务通信了。当通信结束时,一方用户进行挂机操作,卫星控制终端将会发起业务结束控制信令,拆除两个卫星地面站设备之间的卫星链路。通过前面的简介可以知道,在整个卫星移动通信过程中,由于卫星通信天生的时延等特性,要进行正常的卫星业务通信,对每个卫星地面站设备的入退网管控、话音或者卫星数据流程的发起、结束,卫星业务链路的建立、拆除等控制流程起着至关重要的作用,因此这里我们将简单可靠的 AT 指令集引入,作为卫星移动通信系统的控制协议。这里我们将卫星控制信道称之为 AT命令解析器(AT Command Processor,AP),将卫星业务信道称之为信道处理器(Channel Processor,CP)在卫星控制信道中使用 AT 指令来进行具体对本地面站设备的的控制与解析、对卫星业务流程的发起管理与结束、以及对 CP 的设置与查询等指令。在 CP 中主要接收来自 AP 的一些参数的设置与查询命令,以及根据来自 AP 的 AT 指令进行业务通信的具体流程 [4]  。

    展开全文
  • 第2章 计算机指令集结构设计 1. 堆栈型机器其CPU中存储操作数的主要单元是堆栈。 2. 累加器型机器其CPU中存储操作数的主要单元是累加器。 3. 通用寄存器型机器CPU中存储操作数的主要单元是通用寄存器。 4. ...

    第2章 计算机指令集结构设计

     

    1.   堆栈型机器

    其CPU中存储操作数的主要单元是堆栈。

     

    2.   累加器型机器

    其CPU中存储操作数的主要单元是累加器。

     

    3.   通用寄存器型机器

    CPU中存储操作数的主要单元是通用寄存器。

     

    4.   三种类型指令集结构

    根据CPU内部存储单元类型,将指令集结构分为堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构。

     

    5.   通用寄存器型指令集结构的三种类型

    寄存器-寄存器型(RR:Register-Register)

    寄存器-存储器型(RM:Register-Memory)

    存储器-存储器型(MM:Memory-Memory)

     

    6.   CISC

    复杂指令集计算机。

     

    7.   RISC

    精简指令集计算机。

     

    8.   指令集结构的完整性

    在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。

     

    9.   指令集结构的规整性

    没有或尽可能减少例外的情况和特殊的应用,以及所有运算都能对称、均匀地在存储器单元或寄存器单元之间进行。规整性主要包括对称性和均匀性。

     

    10. 对称性

    指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。

     

    11. 均匀性

    指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。

     

    12. 面向高级语言(HL)的机器

    采用各种对高级语言和编译程序提供支持的措施,使机器语言和高级语言的语义差距比传统的冯·诺依曼型机器缩小许多。这种机器统称为面向高级语言(HL)的机器。

     

    13. 间接执行型高级语言机器

    使高级语言成为机器的汇编语言。即高级语言和机器语言是一一对应的,这种机器称为间接执行型高级语言机器。

     

    14. 直接执行型高级语言机器

    高级语言机器本身没有机器语言,或者说高级语言就作为机器语言。它可以直接由硬件或固件对高级语言源程序的语句逐条进行解释并执行。这种机器称为直接执行型高级语言机器。

     

    15. 跳转

    当控制指令为无条件改变控制流时,称之为跳转。

     

    16. 分支

    当控制指令是有条件改变控制流时,称之为分支。

     

    17. 位置无关

    代码在执行时与它被载入的位置无关。

     

    18. 操作数类型

    面向应用、面向软件系统所处理的各种数据结构。

     

    19. 操作数表示

    硬件结构能够识别、指令系统可以直接调用的那些数据结构。

     

    20. 操作数的类型

    主要有:整数(定点)、浮点、十进制、字符、字符串、向量、堆栈等。

     

    21. 变长编码格式

    指令的长度是可变的。

     

    22. 定长编码格式

    将操作类型和寻址方式组合编码在操作码中,所有指令的长度是固定唯一的。

     

    23. 混合型编码格式

    通过提供一定类型的指令字长,期望能够兼顾降低目标代码长度和降低译码复杂度两个目标。

     


    展开全文
  • 计算机体系结构.指令集架构

    千次阅读 多人点赞 2019-06-08 22:28:19
    指令集架构 微结构与ISA 微结构(Microarchitecture)对应的是底层硬件如何实现指令执行的,那么指令集架构(Instruction Set Architecture)对应的是程序员所看到的程序的模样。 具体指令是如何被处理器一步一步...

    计算机体系结构.指令集架构

    微结构与ISA

    微结构(Microarchitecture)对应的是底层硬件如何实现指令执行的,那么指令集架构(Instruction Set Architecture)对应的是程序员所看到的程序的模样。

    具体指令是如何被处理器一步一步完成执行任务的,这交给了微结构。而到底有哪些指令可供使用、指令是什么格式、哪些通用寄存器可以用,以及这些指令在程序员看来是要如何执行的,就是ISA的范畴了。

    因此程序员在某个ISA上写的程序,这个程序的每一步执行了什么操作,最终结果如何,程序员是知道的。而程序员不知道的是,每一步到底是如何被处理器完成的。

    比如一个加法操作“add A,B,C”,在程序员的视角看来,就是将寄存器A和B里的数相加的结果存放在寄存器C中,之后程序员就可以把寄存器C作为A和B相加的结果来继续使用。

    而在微结构的视角(假设为乱序执行),则是处理器读取到了一条指令,通过译码逻辑得知这是一条加法指令,这条指令需要寄存器A和B里的数据作为输入,因此要检查有没有正在执行的指令要写入寄存器A和B(即寻找寄存器A和B的重命名寄存器),并为其结果寄存器C进行寄存器重命名,同时在重排序缓存(ROB)中为该指令申请一个位置,然后送入指令队列(即保留站),并不断检查寄存器A和B里的数据是否可用,该指令会等待直到源数据可用,且加法运算单元空闲时,则该指令的操作码以及寄存器A和B的数据(或来自寄存器堆,或来自旁路,或来自尚未退休指令的ROB项)会送入加法运算单元,当加法运算单元完成后将结果通过总线写回到该指令对应的ROB项中,并修改该项的状态为已完成,退休(retire)逻辑每拍检查若干ROB的项,按照程序顺序完成指令的执行,即将其结果写回寄存器堆,并回收ROB项和重命名寄存器。

    • 若有指令在退休时被发现有例外,则要冲刷流水线,进入例外处理。
    • 若运行期间来了中断,则需要保存现场去处理中断。
    • 若在此之前有一个读操作读取数据到A(或B)且未命中缓存,则该指令需要一直等待,而该指令之后的指令由于乱序可能先于这个加法操作完成执行。
    • 若该指令运行在错误的分支预测路径上,则分支结果出来后该指令会被取消掉。

    不同的微结构下,如何完成这条指令的执行,通常是不一样的。但程序员并不需要知道内部是如何完成的,只需要知道这条指令可以将寄存器A和B的数据相加并存入寄存器C就可以了。这就是ISA了。

    ISA到底是什么

    微结构负责实现每条指令是如何完成执行任务的,而ISA则可以描述指令序模型(instruction sequencing model),有两种指令序模型:

    • 基于顺序的控制流(sequential control-flow)的指令序,对应经典的冯诺伊曼架构。控制流架构下有单一的程序计数器(PC),其决定了指令的获取、执行和提交的顺序。此时的指令是在PC的指挥下一条一条顺序执行的。目前大多数ISA都是基于控制流的。
    • 基于数据流(data-flow execution)的指令序,对应数据流架构(Dataflow Architecture)。其在逻辑上没有PC的存在,指令的执行并不是按照程序所写明的顺序,而是按照数据依赖关系。
      • 虽然学术上有不少对数据流架构的讨论,但是商业上并没有纯粹数据流架构的通用处理器,不过在数字信号处理、网络路由、数据仓库等领域则有【1】。
      • 从某种意义上来说,处理器核内部的乱序执行结构也是一种数据流架构,此时指令只要满足了数据依赖,就可以送去执行了,这恰恰打乱了顺序的指令流【2】。

    ISA涵盖的内容,包括但不限于以下几点:

    • 指令格式:定长或变长;每个位的含义(操作码,寄存器编号,立即数等);操作数的个数;
    • 寻址访存:寻址范围(地址空间);寻址模式;寻址粒度(单比特/字节/64比特等);访存方式(如load/store结构,专门的IO指令);地址对齐;
    • 数据类型:8/16/32/64位整数,浮点;有/无符号;复杂数据类型(BCD码、字符串、链表);
    • 寄存器:通用寄存器数量以及每个寄存器含义、宽度;整数、浮点、向量寄存器;大小端;特殊用途寄存器(如标志寄存器、架构相关的寄存器如MIPS的协处理器寄存器);

    通常ISA都会包含以下三类指令:

    • 运算指令:算术运算(加减乘除),逻辑运算(与或非),移位运算,向量运算等;
    • 分支指令:条件分支指令,非条件分支指令(如函数调用、无条件跳转)等;
    • 访存指令:load/store结构;寻址模式(寄存器寻址、基址寻址等);IO指令等;

    此外还有:

    • 架构相关指令:原子操作(如ll/sc);内存栅栏;缓存相关的指令;TLB相关的指令;等
    • 复杂操作指令:FFT、三角函数、平方根;等
    • 其他特殊用途:虚拟化指令;例外和中断(有哪些例外,是否是精确例外);核心态/用户态;访存权限检查、禁止运行位等安全方面;非对齐访存;功耗管理;延迟槽;特殊寄存器的访问;等

    最后说一句,在汇编层面还有一些“伪指令”,其只对汇编器有用,不会被翻译成机器码。MIPS中的“.set“指令会影响汇编器如何将汇编翻译成机器码:“.set mips16”使汇编器进入MIPS 16模式;“.set mips3”则告诉汇编器下面的指令是MIPS IV(64位指令集,兼容32位指令)中的指令【3】。还有一些“伪指令”,只有汇编器认识,CPU不认识,在编译的时候会被汇编器翻译成 CPU 认识的汇编指令,完成相应的功能,如“li”指令通常会被翻译成“lui”和“ori”。

    CISC 和 RISC

    Complex Instruction Set Computer,即CISC,复杂指令集计算机。
    Reduced Instruction Set Computer,即RISC,精简指令集计算机。

    笼统的对比一下CISC和RISC,不完全正确,但能反应其本质上的差别:

    对比CISC(x86)RISC(ARM,MIPS,etc)
    访存模式多种寻址模式load/store
    指令宽度变长定长
    操作数来源内存或寄存器寄存器
    IO通信专用的IO指令和IO地址空间内存映射
    访存对齐不需要需要
    数据类型多而复杂少而简洁
    寄存器堆相对更小相对更大
    设计原则功能多样的复杂指令集功能完备的精简指令集

    可见RISC更加简洁,因此单从架构优势上来说,普遍认为RISC更优于CISC:

    • RISC的定长指令宽度以及相对规整的指令格式,简化了译码逻辑,也使得指令之间相关性的判断也更容易,比较容易实现多发射结构,此外也能节省面积、降低功耗
    • RISC只有简单的数据类型,同样可以简化硬件的实现
    • RISC的load/store访存模式,简化了指令相关性的判断,简化了访存操作的处理,也使得其他指令只能操作寄存器,从而可以更快地执行完成
    • RISC可以用更简单的逻辑实现,比如译码结构,节省下来的面积可以使得寄存器堆更大,从而容纳更多的指令进行乱序执行,提高性能。同时更多的寄存器也可以降低编译器的复杂性,使优化工作更容易进行
    • RISC的每条指令只执行很简单的操作,大多可以在一拍内完成,因此主频可以做到很高,流水线的吞吐量可以接近每拍完成1条指令(多发射则更多)

    总的来说,由于RISC更加简单化,因此微结构的实现可以更加高效,指令的执行效率更容易通过流水线、多发射、乱序执行等技术来提高。对于CISC所拥有的复杂指令,比如FFT,RISC则是通过软件来实现。这种复杂指令的使用场景也非常少,因此RISC也符合“常用的做得快,少用的只要对”的原则【4】。

    自从1985年以后,所有的ISA都是RISC结构。如今唯一的CISC就是x86指令集,而实际上其微结构的实现也融合了RISC的优点。

    部分指令集简述

    x86指令集

    x86指令集在个人电脑的市场占有率上毫无疑问是王者,其创立者为Intel。可以说x86指令集是目前世界上最流行的指令集了,也被认为是现存唯一的CISC指令集。

    Intel主导下的x86架构,并不一直是处理器架构做得最好的,历史上出现过的Alpha等RISC处理器其架构设计就比同时代的x86更优,1976年乔布斯和沃兹尼亚克推出的使用8位6502处理器的Apple II计算机也击败过x86架构【5】。但x86的兼容性(Compatibility)做得最好,其他如Alpha过于追求更先进的技术,甚至Alpha指令集代与代之间完全不兼容,从而淡出了市场,而x86的兼容性,使得即使在如今64位时代下,其仍能运行16位乃至8位的程序。显然如果客户每次升级处理器,都需要重写一遍程序的话,那绝对是受不了的。

    而在兼容性之外,还有Intel和AMD本身的实力,足以下很多功夫在其他方面(工艺、架构)上来提高性能,以弥补架构上的差距。同时,x86架构也逐渐吸取了RISC架构的优势,在处理器内部,通过复杂的译码逻辑,将变长的复杂指令转换成定长的、简洁的微码,随后再流水执行。这样带来的缺点就是x86的译码逻辑相对于纯正的RISC来说要复杂很多,但这也许并不全是坏处。

    说起指令集兼容性的重要性,有一件事十分典型,即x86从32位发展到64位时。首先是Intel与惠普联合推出了IA-64指令集,但其与32位的x86不兼容,因此难以推广。随后AMD推出了x86-64架构,是在32位的基础上增加了64位扩展,很快占据了市场。之后IA-64彻底失败,Intel也接纳了x86-64作为x86架构在64位时代的版本。

    x86架构处理器的两大厂商,即Intel和AMD,只是提供处理器,并不生产整机。因此Intel和AMD都与IBM达成了合作,搭上了IBM这班飞速发展的快车。此外微软的操作系统也是长期支持x86架构。总的来看,x86处理器芯片有Intel和AMD,电脑整机有IBM,操作系统有微软,在这几大厂商的联合下,使得x86指令集架构占据了绝大部分的个人电脑市场。其他整机厂商,如1984年成立的DELL所推出的第一台计算机Turbo PC也是基于Intel 8088处理器【6】。

    此外让人津津乐道的,也有AMD和Intel之间的竞争。进入20世纪后,更明确说是2006年之后,Intel几乎是压制AMD,后者也不得不在价格和性能上妥协来避免直接竞争。但在20世纪前,AMD不见得比Intel差到哪去,相反在x86最初的二十年里,AMD的实力丝毫不输于Intel,甚至更强。而AMD之所以落后则是有多方面原因,包括领导的不力、方向性的错误、Intel的不正当竞争【7】。最近几年随着锐龙架构的兴起,AMD也逐渐跟上了Intel的脚步,而Intel则饱受工艺研发的痛苦,被困在14nm工艺长达5年之久,不断滞后了先前承诺的10nm计划。

    关于x86指令集的更详细内容,可以移步Intel和AMD提供的开发手册了。【8】【9】

    ARM

    ARM,即Advanced RISC Machine,或更早些时候的Acorn RISC Machine,是一系列RISC架构处理器。如果说x86统治了个人电脑(Personal Computer,即PC)市场,那么ARM则是统治了移动设备市场,主要是手机、平板以及嵌入式系统。这得益于RISC架构的优势,其简洁性可以很容易的实现低功耗需求,降低设计难度和散热性要求,同时具备良好的扩展性可以满足众多需求。

    英国计算机公司Acorn Computers于1978年在剑桥成立,其在1980s推出了Acorn RISC Machine architecture,用于自家的PC。Acorn的第一款基于ARM的产品是一种协处理器模块,用于BBC Micro系列计算机,而BBC系列计算机也用于开发用于芯片设计的仿真软件,以及用于ARM2开发的CAD工具。

    在1980s末期,Apple Computer公司和VLSI Technology公司开始和ARM合作开发新的架构。1990年Acorn将芯片设计团队独立出去,成立了Advanced RISC Machines Ltd,其母公司则为ARM Holdings,与Apple和VLSI共同开发处理器核。在1992年推出了ARM6架构,而Apple使用了基于ARM6的ARM610作为Apple Newton PDA的基础。Acorn在破产前一直在销售基于ARM的PC,而ARM Holdings则在销售芯片架构设计【10】。

    ARM并不生产芯片,而是出售芯片设计,供其他厂商使用。ARM架构的授权方式主要有两类:核心级授权和架构级授权【11】:

    • 前者只提供处理器核,可以和其他模块组合在一起形成可用的芯片。该授权下主要有两种级别,一种是提供门级网表(gate netlist)以及一些仿真模型和测试程序,因此无法修改核心架构,使用这种授权模式的有三星的Hummingbird和Exyno、苹果的A4、A5和A5X等。另外一种是提供HDL级的处理器核架构,此时相当于有了源代码,厂家可以自行修改,进行个性化开发,使用这种授权模式的有苹果、高通、华为、三星、博通、Xilinx等等。
    • 后者则是指令集授权,可以使用ARM的ISA,内核可以自行设计,但仍需服从ARM架构。使用这种授权模式的有高通、苹果等。

    MIPS、Alpha、Power、SPARC

    比较知名的RISC,除了ARM外,简单介绍一下四种:【12】

    • MIPS(Microprocessor without Interlocked Piped Stages Architecture)是一种十分简洁的RISC架构,其出身可谓是名门之家,由斯坦福大学的Hennessy教授领导的研究小组研制开发。由于MIPS是经典的RISC架构,且广泛用于体系结构领域的教学上,如Patterson和Hennessy的系列著作《计算机体系结构·量化研究方法》就主要以MIPS为例。如今除了ARM外,再说其RISC基本上就是MIPS了。我国的龙芯也是基于MIPS指令集,拓展了自己的指令后形成了LoongISA。
    • Power是IBM开发的RISC指令集。IBM于1980年推出了全球第一台基于RISC的原型机,而1980年也是IBM在PC市场上称霸的起步时期,但IBM却选择了RISC用于高性能领域,其成功也证明了RISC比CISC在高性能上更具优势。Power架构在超算、金融等高端服务器领域表现十分成功,至今IBM仍在迭代发展Power架构。
    • Alpha是一种64位的RISC指令集架构,由DEC公司设计开发,被用于DEC自己的工作站和服务器中。Alpha是一款优秀的处理器,它不仅是最早跨过GHz的企业级处理器,而且还是最早计划采用双核,甚至是多核架构的处理器。2001年,康柏收购DEC之后,逐步将其全部64位服务器系列产品转移到Intel的安腾处理器架构之上。2004年,惠普收购康柏,从此Alpha架构淡出了人们的视野。
    • SPARC(Scalable Processor ARChitecture),是由Sun公司在1985年设计的指令集架构,是一种非常有代表性的高性能RISC架构。Oracle收购Sun公司之后,SPARC架构归Oracle所有。2017年9月,Oracle公司宣布正式放弃硬件业务,也包括了收购自Sun的SPARC处理器。

    RISC-V

    RISC-V是一个开源的指令集架构,遵循RISC的设计原则,即力求简洁性,同时保持开放性。这个开源项目于2010年起源于伯克利,随后一直发展至今。

    RISC-V最大的意义在于其开源性。现有的ISA基本上都十分昂贵,如ARM的授权。此外,设计CPU也是一个很复杂、很费钱的工作,不仅需要有经验的架构设计人员,还需要不断的经历仿真、验证、流片测试,而这则是普通公司难以承受的。

    RISC-V自诞生之日起就是为了解决这些问题,提供一个开源的、广泛应用的、经过验证的指令集。经过若干年的开发,RISC-V具备了完整的软件工具链,以及若干开源的处理器架构设计。2016年,RISC-V基金会成立,作为一个非盈利组织,负责维护RISC-V指令集手册和架构文档,并推动RISC-V持续发展。许多著名科技公司,如谷歌、惠普、Oracle、西部数据等,都是RISC-V基金会的创始会员,越来越多的芯片公司也开始使用或计划使用RISC-V架构。此外,许多体系结构领域的教材,如Patterson和Hennessy的系列著作《计算机体系结构·量化研究方法》,其作者本身也大力支持RISC-V架构,因此后续越来越多的教材也将以RISC-V为例。而随着物联网时代的加速到来,有一个统一的、通用的、开源的指令集架构是很有意义的。【13】

    然而RISC-V的野心太大,无论是PC的王者Intel,还是移动设备的霸主ARM,都不会任由其发展下去。目前的形势下,正在兴起的物联网、AI则是RISC-V主要的发展方向【14】。

    如何设计指令集

    胡老师的书中提出了四点指令集设计原则【4】:

    • 兼容性:指令集架构更新不能扔掉历史包袱,而设计的时候也要为未来留出空间。
    • 通用性:功能上要完备,能够支持各种软件,如网络应用、科学计算、操作系统等等。
    • 高效性:即简洁、规整,便于CPU的优化、编译器的实现。
    • 安全性:满足安全需求。

    只有这四点是不够的,或者说这四点只是针对通用处理器的指令集设计而言。

    而在设计一个专用处理器的ISA的时候,常常在各方面都会面临多种选择,最重要的是清楚不同设计下的优势和劣势,根据实际的需求选择设计方案。尽管真正从零开始设计一个ISA的机会并不多,但通过这种分析可以对指令集架构有更好的了解。此外目前 RISC-V架构 的发展提供了更多接触指令集设计的机会。从2014年逐渐发展起来的深度学习处理器,也出现了许多面向深度学习处理的指令集架构。

    • 运算类型:即指令集实现的功能。复杂指令越多,其单条指令能完成的功能越多,因此可以减少程序的存储空间,提高内存利用率,编译器的实现更简单,但也降低了编译优化的空间。此外复杂指令需要更复杂的硬件逻辑支持,包括译码逻辑、功能单元等。
    • 语义鸿沟:即可读性。指令集越复杂,提供的指令种类越多,其可读性越好,而越精简的指令集,其许多功能需要软件实现,可读性就更差。
    • 指令格式:变长的指令格式可以减少程序本身所需的存储空间,但会增加译码的复杂度;定长的指令格式常常需要更大的空间存储指令,但其译码更加简单,不仅更容易译码单条指令,而且更容易实现同时译码多条指令,支持更多指令同时发射。定长的指令常常也有更加统一的指令格式,如最高若干位通常表示操作码,这才是降低译码复杂度的主要原因。
    • 寄存器堆:寄存器堆越大,实现的复杂度就越高,对芯片设计的要求也更高,需要处理访问时间、功耗、面积等各方面的问题。但越大的寄存器堆可以支持更多的指令在流水线中,提供更多的乱序空间,同时降低了编译优化的难度。此外越大的寄存器堆,就需要在指令中占据更多的位来对寄存器编码。
    • 寻址模式:寻址模式越多,对编程越友好,可以增加可读性,但会加大芯片设计的难度,也会影响编译器的实现。
    • 其他方面:如何处理例外和中断;是否需要/如何保证精确例外;是否需要虚拟内存;是否需要对齐访存;是否需要向量部件;需要支持哪些数据类型;使用什么存储模型;等等

    参考资料

    [1] WiKiPedia.Dataflow architecture[EB/OL].(2019-03-05)[2019-05-04].https://en.wikipedia.org/wiki/Dataflow_architecture

    [2] Onur Mutlu.Dataflow[EB/OL].(2013-10-31)[2019-05-04].https://www.archive.ece.cmu.edu/~ece740/f13/lib/exe/fetch.php?media=onur-740-fall13-module5.2.1-dataflow-part1.pdf

    [3] adaptiver.set伪指令(mips)[EB/OL].[2019-05-04].https://blog.csdn.net/adaptiver/article/details/6760220

    [4] 胡伟武.计算机体系结构(第2版)[M].清华大学出版社:北京,2017:55-71.

    [5] Gary Anthes.Timeline: A brief history of the x86 microprocessor[EB/OL].(2008-06-05)[2019-05-05].https://www.computerworld.com/article/2535019/timeline–a-brief-history-of-the-x86-microprocessor.html

    [6] Smithsonian.PC’S Limited Microcomputer[EB/OL].[2019-05-05].https://americanhistory.si.edu/collections/search/object/nmah_1321866

    [7] Graham Singer.The Rise and Fall of AMD[EB/OL].(2012-11-21)[2019-05-07].https://www.techspot.com/article/599-amd-rise-and-fall/page1.html

    [8] Intel.Intel® 64 and IA-32 Architectures Software Developer Manuals[EB/OL].[2019-05-07].https://software.intel.com/en-us/articles/intel-sdm#combined

    [9] AMD.Developer Guides, Manuals & ISA Documents[EB/OL].[2019-05-07].https://developer.amd.com/resources/developer-guides-manuals/

    [10] David Chisnall.Understanding ARM Architectures[EB/OL].(2010-8-23)[2019-05-07].https://www.informit.com/articles/article.aspx?p=1620207

    [11] WiKiPedia.ARM architecture[EB/OL].(2019-03-03)[2019-05-07].https://en.wikipedia.org/wiki/ARM_architecture#History

    [12] 胡振波.ISA众生相[EB/OL].(2018-05-23)[2019-05-07].http://book.51cto.com/art/201805/574072.htm

    [13] 胡振波.RISC-V架构与嵌入式开发快速入门[M].人民邮电出版社:北京,2019:19-23.

    [14] 半导体行业观察.RISC-V未来将面临怎样的挑战?[EB/OL].(2019-03-10)[2019-05-07].https://www.chainnews.com/articles/711647751312.htm

    展开全文
  • 第2章 计算机指令集结构设计 1. 通常可按哪5个因素对计算机指令集结构进行分类?(1) 在CPU中操作数的存储方法。(2) 指令中显式表示的操作数个数。(3) 操作数的寻址方式。(4) 指令集所提供的操作类型。(5) 操作数的...
  • 目录 指令集结构的分类 寻址方式 指令集结构的功能设计 3.1 CISC指令集结构的功能设计 3.2 RISC指令集结构的功能设计 操作数的类型大小 指令格式的设计 MIPS指令集结构 ...区别不同指令集结构的主要
  • 计算机体系结构)MIPS指令集结构

    千次阅读 2019-10-09 14:01:49
    目录MIPS指令集结构MIPS指令集结构:寻址方式MIPS指令集结构:指令格式MPIS指令集结构:操作类型MIPS指令集结构:ALU操作MIPS指令集结构:转移操作MIPS指令集结构:浮点操作 MIPS指令集结构 MIPS指令集结构:寻址...
  • 因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。 采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当...
  • RISC 和CISC 是目前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异...
  • 精简指令集计算机

    千次阅读 2017-01-31 07:33:59
    精简指令集计算机(RISC:Reduced Instruction Set Computing RISC)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的...
  • 所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。CPU的指令集从主流的体系结构上分为精简指令集(RISC)和复杂指令集...
  • RISC-V指令集 本文主要介绍RISC-V指令集,简单总结一些重点信息,其中参考了《RISC-V 手册》和《计算机组成与设计 硬件与软件接口 RISC V 版》,如果学习过程中有问题,欢迎指正。 提示:写完文章后,目录可以自动...
  • RISC-V RISC-V(读作“RISC-FIVE...虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功...
  • 计算机复试面试题总结

    万次阅读 多人点赞 2019-03-07 20:06:56
    指令系统 CISC复杂指令集,RISC是精简指令集。 5流水线 将重复性的过程分为若干个子过程来完成。 6总线和I/O 总线是指数据通信的连接线,有地址,数据,控制指令。 I/O的方式有程序性,中断性,通道,DMA。 面试问题...
  • 计算机组成原理

    万次阅读 多人点赞 2019-06-02 14:13:55
    计算机组成原理 1.第一台电子计算机何时何地诞生?英文全称? 1946年2月14日 美国宾夕法尼亚大学 ENIAC:电子数字积分计算机 Electronic(电子的) Numerical(数字的) Integrator(综合者) And Calculator...
  • 指令集结构

    千次阅读 2018-08-08 21:21:21
    区别不同指令集结构的主要因素  CPU中用来存储操作数的存储单元的类型 CPU中用来存储操作数的存储单元的主要类型堆栈 累加器 通用寄存器组 寄存器型指令集结构为什么是现代指令集结构的主流? 在灵活性和提高...
  • 计算机基础——指令集体系结构ISA

    千次阅读 2018-12-25 23:01:51
    •ISA(Instruction Set Architecture)位于软件和硬件之间 ... 指令可以接受的操作数的类型; 操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途; 操作数所能存放的存储空间...
  • 计算机组成原理(4.1)—— 指令系统设计

    千次阅读 多人点赞 2020-08-13 08:42:01
    文章目录一、指令集体系结构(ISA)的基础概念1. 什么是ISA2. ISA的地位(1)ISA是软件和硬件的交界面(接口)(2)ISA是计算机的必要组成部分二、指令格式设计1. 一条指令必须包含的信息2. 不同地址码个数的指令3. ...
  • 处理器指令集和架构

    千次阅读 2019-04-27 17:49:35
    现在真是一个IT技术大发展的时代,不断的有新概念出现,让人目不暇接,但到...目前已存的指令集架构有4种: 复杂指令集运算(Complex Instruction Set Computing,CISC);精简指令集运算(Reduced Instruction Set Comp...
  • JVM字节码指令集大全及其介绍

    千次阅读 多人点赞 2019-08-22 23:39:48
    本节将会着重介绍一下JVM中的指令集、Java是如何跨平台的、JVM指令集参考手册等内容。 目录 Java是怎么跨平台的 平台无关的基石 JVM字节码指令介绍 字节码与数据类型 加载和存储指令 算术指令 类型转换指令 ...
  • 不同计算机不同指令集,但是在许多方面都有共同之处。早期的计算机有非常简单的指令集:实现简单,许多现代计算机也有简单的指令集。因此,指令集具有精简指令集(RISC)与复杂指令集(CISC)之分,本文主要...
  • 微型计算机组成原理课程内容介绍第一章 微型计算机基础第二章 80X80微型处理器第三章 汇编语言指令集第四章 汇编语言程序设计第五章 输入/输出系统第六章 中断系统第七章 微型计算机系统串行通讯第八章 并行I/O接口...
  • 前言:最近在做一些OpenCV的优化相关的东西,发现OpenCV现在的执行效率很高的原因一部分是来自于底层的优化,比如指令集优化,但是一直没找到比较系统性的关于CPU指令集优化的文章或者是书籍,于是自己打算做一个...
  • 指令集

    千次阅读 2016-03-24 18:00:55
     转载自 ... 一个完整的指令集结构包括 Instuction Fetch  Instuction Decode Operand Fetch Excute Result Store Next Instruction
  • 浅谈RISC CPU(精简指令集处理器)

    千次阅读 2020-10-24 11:32:16
    目前的处理器中,一般分为CISC和RISC两大系列,CISC(复杂指令集处理器)中常用的指令集只占源代码的20%,剩余的80%不常用。 为了改变这种不合理,出现了RISC即精简指令集处理器。其通道中只包含最有用的指令,确保...
  • RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。 CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示 ...
  • MIPS32指令集架构简介

    千次阅读 2020-12-09 21:47:51
    1.4 MIPS32指令集架构简介 本书设计的处理器遵循MIPS32 Release 1架构,所以本节介绍的MIPS32指令集架构指的就是MIPS32 Release 1。 1.4.1 数据类型 指令的主要任务就是对操作数进行运算,操作数有不同类型和...
  • 精简指令集和复杂指令集的区别

    万次阅读 多人点赞 2016-03-31 21:57:39
    RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。 CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示 ...
  • 计组--指令集及其特性

    千次阅读 2019-04-23 00:16:13
    指令集:一个给定的计算机体系结构所包含的指令集合。 指令中包含: 操作码 (Op code)—— Do this 源操作数引用 (Source Operand reference)—— To this 结果操作数引用(Result Operand reference)—— ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,007
精华内容 27,202
关键字:

不同类型的计算机指令集不同