MIPS处理器

3.1系统设计目标

3.1.1设计目标

教学版的OpenMIPS处理器是一款具有哈佛结构的32位标量处理器,兼容MIPS32Release1指令集架构,可以使用现有的MIPS编译环境,如:GCC编译器等,设计目标如下:

五级流水线

哈佛结构,分开的指令、数据接口
  1. 32个32位整数寄存器
  2. 大端模式
  3. 向量化异常处理,支持精准异常处理
  4. 支持6个外部中断
  5. 具有32bit数据、地址总线宽度
  6. 能实现单周期乘法
  7. 支持延迟转移
  8. 兼容MIPS32指令集架构,支持MIPS32指令集中的所有整数指令
  9. 大多数指令可以在一个时钟周期内完成

3.1.2五级流水线

(一)三级流水可能存在的问题

取指、译码、执行三个阶段未必时间周期都是T,当某一个阶段为2T时,执行阶段会向后移,执行周期会变长。为解决流水线停滞问题,所以引入五级流水。

(二)五级流水线

MIPS处理器

访存阶段的作用是从存储器装载数据到寄存器或者将寄存器数据保存到存储器,回写阶段的作用是将数据写入目的寄存器,arm9、OpenMIPS的设计目标也是五级流水线MIPS处理器OpenMips实现MIPS32指令集中所有的整数指令,大多数都可以在一个时钟周期内执行完成,所有执行指令完成需要的时钟周期:MIPS处理器(1)采用试商法完成除法运算,对于32位的除法,执行阶段至少需要32个时钟周期再加上准备时间的时钟周期,最后需要36个时钟周期才能完成

3.2教学版OpenMIPS处理器接口

教学版OpenMIPS处理器外部接口采用左边是输入接口,右边是输出接口的方式绘制,这样比较直观、便于理解。分为三类:系统控制接口(复位、时钟、中断)、指令存储器接口、数据存储器接口。

MIPS处理器

  1. 取指阶段
    MIPS处理器

  2. 译码阶段
    MIPS处理器MIPS处理器

  3. 执行阶段
    MIPS处理器

  4. 访存阶段
    MIPS处理器

  5. 回写阶段
    MIPS处理器

另外还有一个CTRL模块对应ctrl.v文件,用于控制整个流水线的暂停、清除等动作,不将其归于流水线中的某一个阶段。

3.4 实现方法

先考虑最简单的情况,给出代码,然后考虑多一点情况,修改、补充代码,不断的修改,最终使代码实现需求。

第四章中考虑最简单的情况,只实现一条指令,是逻辑“或”指令ori,可以搭建OpenMIPS流水线的结构。MIPS处理器

上一篇:Arduino数据类型


下一篇:哈希的应用(1)——位图