首页 > 编程知识 正文

指令集结构分类,指令集结构分为

时间:2023-05-05 19:15:58 阅读:215365 作者:4545

区别不同指令集结构的主要因素
   CPU中用来存储操作数的存储单元的类型
CPU中用来存储操作数的存储单元的主要类型
堆栈
累加器
通用寄存器组

寄存器型指令集结构为什么是现代指令集结构的主流?
在灵活性和提高性能方面有明显的优势
跟其他的CPU内部存储单元一样,寄存器的访问速度比存储器快。
对编译器而言,能更加容易、有效地分配和使用寄存器,有效地利用寄存器来计算表达式的值。 针对(A*B)-(C*D)-(E*F)乘法运算任意次序,但堆栈不可以。
寄存器可以用来存放变量。
      (1)减少对存储器的访问,加快程序的执行速度;
                  (因为寄存器比存储器快)
      (2)用更少的地址位(相对于存储器地址来说)来对寄存器进行寻址,从而有效地减少程序的目标代码的大小。

寻址方式

  1.缩短指令长度,
       2.扩大寻址空间,
       3.提高编程的灵活性

立即数寻址方式和偏移寻址方式的使用频度最高。

指令集结构的功能设计

完整性、规整性、高效率、兼容性 

CISC(Complex Instruction Set Computer:复杂指令集计算机)
增强指令功能,把越来越多的功能交由硬件来实

      现,并且指令的数量也是越来越多。

面向目标程序增强指令功能优化目标程序的指标:
      目标:(1)缩短程序的长度,即减少程序的空间开销
                 (2)缩短程序的执行时间,即减少程序的时间开销 
       途径:
                增强运算型指令的功能
                增强数据传送指令的功能

                增强程序控制指令的功能

面向高级语言的优化实现来改进指令集
      目标:缩小高级语言与机器语言的语义差距
                (1)编译器本身比较复杂。

                (2)编译生成的目标代码比较难以达到很好的优化。

          途径:增强对高级语言和编译器的支持   高级语言计算机 

面向操作系统的优化实现改进指令集

RISC(Reduced Instruction Set Computer:精简指令集计算机)
尽可能地把指令集简化,不仅指令的条数少,而且

 

      指令的功能也比较简单。 

 

 ⑴指令系统十分庞大和复杂,体系结构控制硬件也十分复杂;
     ⑵编译负担很重,很难优化;
     ⑶把存储效率作为体系结构重要衡量手段,使指令执行时间很难缩短,指令执行效率不高。

控制指令

控制指令的使用频度:改变控制流的大部分指令是分支指令(条件转移)。 

操作数的类型和大小

数据表示:计算机硬件能够直接识别、指令集可以直接调用的数据类型。

所有数据类型中最常用、相对比较简单、用硬件实现比较容易的几种。 
数据结构:由软件进行处理和实现的各种数据类型。
研究:这些数据类型的逻辑结构与物理结构之间的关

           系,并给出相应的算法。

由指令中的操作码指定操作数的类型。
              结果:同一运算,数据类型不同要设置不同的指令
带标志符的数据表示。给数据加上标识,由数据本身给出操作数类型。

指令格式的设计

 操作码指明操作种类和所用操作数的数据类型; 
   地址码包括操作数的地址、地址的附加信息、寻址方式等。

MIPS

32个64位通用寄存器(GPRs)
R0,R1,…,R31
也被称为整数寄存器
R0的值永远是0
            MIPS寄存器0($zero)表示常数0
           不能被改.   在常用的操作中,很有用
       例如,可在寄存器之间传送数据
      add $t2, $s1, $zero
2. 32个64位浮点数寄存器(FPRs)
F0,F1,…,F31

MIPS的数据表示
整数
字节(8位)   半字(16位)
字(32位)    双字(64位)
浮点数
单精度浮点数(32位)  双精度浮点数(64位)

MIPS的数据寻址方式

立即数寻址与偏移量寻址  MIPS的存储器是按字节寻址的,地址为64位

load指令
       访存有效地址:Regs[rs]+immediate
       从存储器取来的数据放入寄存器rt
store指令
       访存有效地址:Regs[rs]+immediate
       要存入存储器的数据放在寄存器rt中
立即数指令
       Regs[rt] ← Regs[rs] op immediate
分支指令
       转移目标地址:Regs[rs]+immediate,rt无用
寄存器跳转、寄存器跳转并链接

       转移目标地址为Regs[rs]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。