首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

体系结构-指令集结构

体系结构-指令集结构

一个完整的指令集结构包括
Instuction Fetch 
Instuction Decode
Operand Fetch
Excute
Result Store
Next Instruction
我们必须解决的问题包括:
  • 指令的编码方式(即如何编码)
  • 操作数和操作结构的存放位置
    • 存放位置
    • 多少个现实操作数
    • 存储器操作数如何定位
    • 那些操作数可以或不可以放到存储器中
  • 数据的类型和大小
  • 支持哪些操作
  • 下一条指令的地址
    • jumps,conditions,branches
    • fetch-decode-execute is implicit
  • 有关ISA的若干问题
    • 分类
      • stack  0 addressADDtos<---tos+next
        Accumulator1 addressADD A acc<---acc+mem[A]
        1+x addressADDX Aacc<---acc+mem[A+x]
        Register-memory2 addressADD A BEA[A]<---EA[A]
        3 addressadd A B CEA[A]<---EA[B]+EA[C]
        Load-Store3 addressadd  A B CA<---B+C
        load A BA<---mem[B]
      • 通用寄存器型(R-M   R-R)占主导地位
        • 寄存器比存储器更快
        • 对便一起来说寄存器更容易使用
      • 尾端问题
          • little endian,big endian,在一个字内部的字节顺序问题,例如在地址xxx00指定了一个字(int),存储器中从xxx00连续存放ffff0000,有两种表示方式:
            • 小端方式:xxx00位置是字的最低字节,数值为0000ffff。x86,dec vax,windows NT
            • 大端方式:xxx00位置是字的最高字节,数值为ffff0000。IBM 360/370,Motorola,MIPS
      • 对齐问题
        • 对一个s字节的对象访问,地址为A,如果A mod s ==0,则是边界对齐
        • 这是由于存储器本身的读写要求的。没有对其的对象可能会导致存储器两次读写。
      • 基准测试结果:
        • 偏移寻址、立即数寻址、寄存器寻址方式,其使用频度为75%~99%
        • 偏移字段大小为12~16bits,可满足75%~99%的需求
        • 立即数字段大小为8~16bits,可满足50%~80%的需求

操作数类型和操作数表示
类型:是面向应用、面向软件系统处理的各种操作数据类型。整型、浮点型、字符、字符串、向量类型;类型由操作码确定。
表示:操作数在机器中的表示,硬件结构能够识别,指令系统可以直接使用的表示格式。整型(原码、补码、反码),浮点(IEE 754标准),十进制(BCD码,二进制十进制表示)
  • ISA研究的问题
    • ISA的分类
    • 操作数部分
      • 理解存储器地址(尾端+对齐问题)
      • 寻址方式
      • 操作数的类型、表示和大小问题
    • 操作码部分
      • 支持哪些类型的操作
    • 指令格式
  • 研究的方法:基于统计的方法
  • 结论:
    • 常用的寻址方式:立即数、偏移寻址、寄存器寻址
    • 偏移字段的大小:12~16bits
    • 立即数字段的大小8~16bits
    • 操作数大小:单字、双字的数据访问频率高;64字长更具一般性
  • ISA的功能设计
    • 任务:确定硬件支持哪些操作
    • 方法:统计
    • 类型:CICS和RISC
  • 控制类指令
    • 条件分支最常见
    • 寻址方式:pc-relative和偏移地址至少8位;即动态的转移地址方式
  • CISC
    • 强化指令功能,减少程序中指令条数
RISC计算机指令集结构的功能设计
  • 特点:
    • 大多数指令在单周期内完成
    • 采用load、store结构
    • 硬布线控制逻辑
    • 减少指令和寻址方式种类
    • 固定的指令格式
    • 注重代码的优化
    • 面向寄存器结构
    • 重视流水线的执行效率--》尽量减少断流
    • 重视优化编译技术
  • RISC为了使流水线高效执行
    • 简单而统一的指令译码
    • 大部分指令可以单周期完成
    • 只有load/store指令访存
    • 简单寻址技术
    • 采用load延迟技术
  • 为了便于优化编译产生优化代码
    • 三地址指令格式
    • 较多适量的寄存器
    • 对称的指令格式
  • RISC的关键技术
    • 延迟转移技术
    • 指令取消技术
    • 重叠寄存器窗口技术
      • 处理器中设置多个寄存器堆,并划分多个窗口
      • 每个过程使用其中相邻的三个窗口和一个公共的窗口
      • 一个与前一个过程公用;一个与下一个过程公用;一个作为局部寄存器
    • 指令调整技术
    • 硬件为主,固件为辅
  • 频率较高的指令:load,store,add,subtract,move register-register,and,shift,compare equal,compare not equal,branch,jump,call,return
  • 控制类指令:conditional branch,jump,procedure calls,procedure returns
  • 控制类指令的寻址方式:pc-relative
    • 编译时不知道转移地址,程序执行时动态确定
    • 转移地址放到某一寄存器中

  • 指令编码方式
    • 长度可变
    • 长度固定
    • 混合
    MIPS寻址方式/指令格式(所有指令都是32bit)
    • 寄存器直接寻址
    • 立即数寻址
    • 基址寻址
    • pc相对寻址
    • 寄存器间接寻址
继承事业,薪火相传
返回列表