自己动手写处理器之第三阶段——教学版OpenMIPS处理器蓝图

将陆续上传本人写的新书《自己动手写处理器》(尚未出版),今天是第十篇,我尽量每周四篇


      从本章开始将一步一步地实现教学版OpenMIPS处理器。本章给出了教学版OpenMIPS的系统蓝图,首先介绍了系统的设计目标,其中详细说明了OpenMIPS处理器计划实现的5级流水线。3.2节给出了OpenMIPS处理器的接口示意图,及各个接口的作用。3.3节简单解释了各个源代码文件的作用。最后描述了OpenMIPS处理器的实现方法,读者将发现本书给出的实现方法与现有书籍的方法完全不同,更加易于理解、便于实践。

3.1 系统设计目标

3.1.1 设计目标

      本书第二部分设计实现的教学版OpenMIPS处理器,是一款具有哈佛结构的32位标量处理器,兼容MIPS32 Release 1指令集架构(后文不再注明Release 1),这样的好处是可以使用现有的MIPS编译环境,如:GCC编译器等。OpenMIPS的设计目标如下。

  •  五级整数流水线,分别是:取指、译码、执行、访存、回写
  •  哈佛结构,分开的指令、数据接口
  •  32个32位整数寄存器
  •  大端模式
  •  向量化异常处理,支持精确异常处理
  •  支持6个外部中断
  •  具有32bit数据、地址总线宽度
  •  能实现单周期乘法
  •  支持延迟转移
  •  兼容MIPS32指令集架构,支持MIPS32指令集中的所有整数指令
  •  大多数指令可以在一个时钟周期内完成

      上述设计目标都很容易理解,除了延迟转移和精确异常,前者将在第8章“转移指令的实现”中介绍,后者将在第11章“异常相关指令的实现”中介绍。

3.1.2 五级整数流水线

      本书讲的是计算机中的流水线,首先听一听维基百科中对计算机流水线的定义:流水线是指将计算机指令处理过程拆分为多个步骤,并通过多个硬件处理单元并行执行来加快指令执行速度。此处有两个关键词:(1)拆分;(2)并行。指令的处理从直观上分析至少可以拆分为三步:从存储器取出指令、解释指令、按照解释的结果执行,简单的说就是:取指、译码、执行。如果我们只有一个硬件处理单元,这个单元既要取指,又要译码,还要执行,假设上述三种操作都可以在时间T完成,那么一条指令的处理时间为3T,n条指令的处理时间就为3nT,但是如果我们设计有三个硬件单元,分别做这三项工作的一项,那么就可以在执行的同时对下一条指令译码,在对下一条指令译码的同时还可以再取一条指令,这就是经典的三级流水线,如图3-1所示。


      从图3-1可知,在三级流水线上执行3条指令所需时间为5T,而如果没有使用流

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值