计算机硬件系统设计(华科)——单周期MIPS CPU 设计(单周期、流水线)(Logisim 实现)

  • 前言
  • 单周期 CPU 设计
    • 数据通路
    • 控制器设计
  • MIPS 指令流水线设计
    • 理想流水线
    • 流水接口部件设计
    • 气泡流水线
    • 数据重定向
      • 寄存器使用检查
      • 寄存器冲突检测
      • 数据重定向实现
  • 总结

前言

本章继续讲述计算机硬件系统设计的内容,之前已经大概说明了 ALU 和存储系统的设计,本文讲述CPU的设计。对应的有单周期、多周期 CPU 设计,以及流水线设计,中断处理会在后文中详细说明,本文不进行讲述。


单周期 CPU 设计

数据通路

即定长指令周期,机器性能取决于最慢的指令,导致时钟周期过长。
指令类型分为三类,R型指令、I型指令、J型指令。

数据通路如下

最左侧多路选择器,当执行有条件跳转指令时,选择跳转地址,跳转地址由15位的立即数运算得到;下一层为无条件跳转指令选择,当执行JAL(函数调用指令)或J(无条件跳转指令)选择由26位立即数运算得到的地址;第三层选择为JR指令(跳转到寄存器记录地址,一般用于在JAL调用退出时使用),一般选择$31号寄存器保存JAL执行时PC的值,函数调用后,再读取 $31 的值进行返回。

本设计支持24条指令,这里不一一介绍,有疑问可以评论共同探讨学习。


控制器设计

控制器是通过分解指令,由OP和FUNC字段确定某种运算,给出控制信号,协同数据通路的工作,确保数据的正确流通。

控制器设计方法可以使用硬布线设计,也可以采用微程序设计。

第一步需要分析指令在执行过程需要的控制信号,之后根据分析,设计电路,使用课程包中的EXCEL,填写输入信号,生成控制器电路,以设计控制器。
由上图 指令-控制信号 得到控制信号生成表达式

将逻辑表达式输入,自动生成电路。

最后导入程序测试功能。


MIPS 指令流水线设计

理想流水线

理想流水线满足以下特点:阶段数相同,所有指令经过同样的流程、阶段;各段时延相同,各段传输延迟一致,不存在等待现象,所以设计时考虑最慢的处理过程;无资源冲突,各段之间不存在资源共享,各段完全并发;无段间互锁,进入流水线的数据与部件不受其他执行阶段的影响。

这里不在介绍各段的执行流程,细节参考MOOC课程。


流水接口部件设计

流水接口部件实际为寄存器的组合设计,用于暂存数据,本段输出处理好的数据暂存于寄存器,寄存器为后段提供数据。

考虑设计不同位数的接口部件,方便后期直接使用,同时注意使用同步清零,防止异步清零时丢失数据。


气泡流水线

在执行跳转指令时,由于前段已经加载其他指令,属于误取指令,故需要进行处理。这里介绍采用插入气泡的方法解决问题。这会导致流水行性能损失。

当判断流水线执行跳转指令时,取指阶段于译码阶段设计同步清零信号,清空流水线保证指令正确执行。

当流水段出现数据相关问题时,也可以采用插入气泡的方法解决问题。

数据重定向

使用气泡解决冲突问题时,流水线会有性能损失,故而可以采用数据重定向方法解决该类问题。

主体思路是通过寄存器使用检查,确定段间的争用关系,通过设计电路,完成数据重定向。

寄存器使用检查

通过之前设计完成的控制信号生成文件,只关注RegDst信号与RegWrite信号,即输入为6位OP字段,6位FUNC字段,输出两个寄存器信号。

寄存器冲突检测

通过设计好的寄存器检查电路组件,设计比较电路。

数据重定向实现


总结

本文仅提供设计思路,如有错误还请指正,也希望各位读者可以提供宝贵意见与指导,共同探讨学习。设计不尽完善,还有许多需要改进的地方,希望拙笔可以抛砖引玉,之后可以出现更多完善优秀的设计提供参考。

本人也因对硬件设计极为感兴趣,欢迎各位提问交流,最后也衷心祝愿各位读者万事胜意,身体健康。

【计算机硬件系统设计(华科)——单周期MIPS CPU(Logisim 实现)】相关推荐

  1. 实验九 单周期MIPS CPU设计实验(基于Logisim)

    一.实验目的 学生掌握控制器设计的基本原理,能利用硬布线控制器的设计原理在Logisim平台中设计实现MIPS单周期CPU. 二.实验内容 利用运算器实验,存储系统实验中构建的运算器.寄存器文件.存储 ...

  2. 单周期MIPS CPU设计

    一.实验内容 实验过程 1.设计的24条指令 R型指令详细: I型指令详细: J型指令详细: 分析每条指令的控制信号 逻辑左移指令 SLL rd, Rt,shamt 通过指令译码器,解析出Func字段 ...

  3. 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)

    计算机组成原理CPU单周期数据通路(MIPS) [计算机组成原理]CPU:单周期数据通路(MIPS) 寄存器传送语言RTL 1)R(r)表示寄存器r的内容 2)M(address)表示主存储器地址ad ...

  4. 华科计算机电路理论实验报告,华中科技大学组成原理实验报告单周期MIPS CPU数据表示实验.docx...

    文档介绍: 专业:计算机科学与技术班级:CS1502学号U201414596姓名:卢振兴电话:**********邮件:476134013@数据表示实验 2设计要求 2方案设计 213 实验步骤 7故 ...

  5. 头歌实践教学平台 MIPS CPU设计(HUST)

    实验简介 本实训项目将帮助学生掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排 ...

  6. [华中科技计组实验]logisim完成单周期5级流水MIPS CPU

    自己动手画cpu系列 建设中ing 仅供参考! 在这首推华中科技大学计算机组成原理实验课mooc连接 初衷:在mooc上看见了本课觉得超赞,本人已完成了课中所有的实验,在做实验的过程中有时候实验会没有 ...

  7. 单周期CPU设计与实现原理分析

    文章目录 单周期CPU设计与实现原理分析 一.单周期CPU的设计思路 二.单周期CPU的模块实现 ① Instruction Memory指令存储器的设计 ② ALU算术逻辑单元的设计 ③ PC程序计 ...

  8. 计算机原理与结构 实验3《单周期微处理器设计》

    实验3<单周期微处理器设计> 一.实验目的 掌握:如何采用Verilog设计时序逻辑电路: 掌握:利用Quartus II 设计CPU的基本原理核方法: 掌握:指令系统的设计与实现方法. ...

  9. 【计算机硬件系统设计(华科)——三级时序 CPU「包含中断处理」(Logisim 实现)】

    [计算机硬件系统设计(华科)--MIPS CPU(Logisim 实现)] 前言 定长指令周期三级时序CPU 控制器设计 时序部件设计 控制信号设计 译码器设计 变长指令周期三级时序CPU 控制器设计 ...

最新文章

  1. Hack Knowledges
  2. 有法院被执行人记录还能贷款吗?
  3. Exception in thread main java.lang.RuntimeException: org.apache.hadoop.security.AccessControlExcep
  4. balabala视频格式转换器
  5. 夏敏捷 第39本著作《微信小程序游戏开发快速入门到实战》
  6. t420i升级固态硬盘提升_老电脑想升级,如何选购最适合的固态硬盘
  7. C语言结构体所占用的字节数如何计算
  8. 如何使用PS改变只有一种颜色图片的颜色
  9. 在CTeX上编码论文《杂谈勾股定理》及论文式样
  10. IT小白重装系统大全
  11. 单片机 并口 控制爱普生打印机开发流程记录
  12. PD的CDM模型中的三种实体关系
  13. 第十四届蓝桥杯模拟赛(Python)
  14. for循环中表达式和循环体的执行顺序
  15. 质因数的分解(java)
  16. 学习编程,要不要去IT培训机构?自学和去培训班哪种方法更合适?
  17. 速率、带宽与吞吐量的关系
  18. stm32cubeide调试查看函数值_STM32CubeIDE使用ITM调试
  19. Python之王者荣耀文字游戏,以及小知识回顾
  20. [usOJ5528]小奇的旅行计划

热门文章

  1. VLOOKUP函数的使用方法(初级篇)
  2. 学习thymeleaf
  3. quickpcb添加pcb库_quickpcb及相关元件库
  4. android源码项目
  5. [Atcoder Code Festival 2017 Qual A Problem F] Squeezing Slimes
  6. 如何用强化学习优化广告投放中的A/B Test
  7. 点击按钮控制滚动条滚动
  8. NVIDA CUDA-DirverAPI入门
  9. Android FragmentManager之beginTransaction()
  10. 联想的锋行计算机,4万顶级PC啥样 联想锋行King拆解图赏