• MIPS跳转指令寻址采用最简单的寻址方式,它们使用J型指令格式。
    • 它除了6位操作码之外,其余位都是地址字段
  • 分支指令除了规定分支地址之外还必须规定两个操作数
    • 因为它只保留了16位用于指定分支地址
    • 所以如果让程序地址使用该分支地址,则意味着任何程序都不能大于2^16
    • 一个可选的办法是指定一个总是加到分支地址上的寄存器
    • 这样分支指令的地址可按:程序计步器=寄存器+分支地址的方式计算
    • 这样允许程序的大小达到2^32
    • 其中,寄存器的使用取决于分支条件是如何使用的
    • 而这种寻址方式被称为PC相对寻址
    • MIPS对所有条件分支使用PC相对寻址,因为这些指令跳转目标一般都比较接近其分支地址
    • 因为所有MIPS指令都是4字节长,所以PC相对寻址时所加的地址被设置为字地址
    • 另外,MIPS指令使用字节寻址,所以相邻字的地址相差4
  • //一个基本MIPS实现
    • MIPS的核心子集包括:
      • 储存器访问指令
      • 算术逻辑指令
      • 分支指令
  • //实现方法概述:
    • 这些指令实现的过程大致相同,而与指令的类型无关。
    • 前两步都是:
      • 程序计步器指向指令所在的储存单元并取出指令
      • 通过指令字段内容选择读取一个或两个寄存器取字命令只需读取一个寄存器,其他大多数指令要求读取两个寄存器
    • 两步之后的步骤取决于具体类型,但是对于三种核心的指令类型来说,其动作大致相同 ,//比如除跳转指令外的所有指令在读取寄存器之后,都要使用算术逻辑单元
  • 某个单元的数据可能来自于两个不同的单元,必须用一个逻辑单元来从不同的数据来源中选择一个送给目标单元,这个过程通常是由一个叫多选器的逻辑单元完成的
  • 许多单元的控制依赖当前执行指令类型,所以需要有控制信号

发表评论

邮箱地址不会被公开。 必填项已用*标注