正确理解单周期处理器的“数据通路”

这种是属于不懂会一脸懵逼,但理解了就会清晰畅快的知识点。

记录一下自己的理解:

建立数据通路的目的是为了让指令更好的执行,最基本的五个步骤:取指、译码、执行、访存、回写。与之相应的:取指、读寄存器、ALU操作、访存、写寄存器。这其中并不是每个步骤在一次指令中都会完全执行,比如说sw存储字,就不需要回写,执行到存储进存储器就结束了。

所以,这就引出了一点:如果用控制信号来控制每一个指令执行所需要的过程和部件。,控制信号就是0和1加多选器,如果超过两种选择,那就在增加一位就好。

于是就有了下面这些选择:

  • 写寄存器:写到哪?对于MIPS指令集,R型指令和I型指令是不,即rd和rt。
  • 立即数扩展:考虑零扩展(填充0,即补位),符号扩展(与地址计算有关,偏移可正可负)
  • ALU的模式:算术运算(加法、减法)?或者逻辑运算(与、或)?
  • 存储器:是否需要写入?比如sw和lw
  • 写回机制:从哪写回的?ALU的结果or存储器?
  • PC:比如分支指令就会导致是只要PC+4还是再要上偏移量?

如此,理解清楚这一点,再加上明白硬件底层的逻辑无非是0和1,加上与门、或门的组合,再来看这些知识点时,就会畅通很多!

计算机组成:真正理解单周期处理器的“数据通路”相关推荐

  1. 从零开始设计RISC-V处理器——单周期处理器的设计

    系列文章目录 (一)从零开始设计RISC-V处理器--指令系统 (二)从零开始设计RISC-V处理器--单周期处理器的设计 (三)从零开始设计RISC-V处理器--单周期处理器的仿真 (四)从零开始设 ...

  2. 基于 RICS-V 架构的单周期处理器设计(含所有格式指令)—— 逻辑部件概述

    文章目录 一.概述 二.原理图 2.1 ALU 2.1.1 ALU 操作控制信号生成部件 2.1.2 ALU 逻辑计算部件 2.1.3 ALU 整体逻辑 2.2 寄存器 2.2.1 Reg 整体逻辑 ...

  3. 基于RICS-V的单周期处理器设计

    基于RICS-V的单周期处理器设计 文章目录 基于RICS-V的单周期处理器设计 1.概述 2.原理图 3.各个模块 3.1.ALU 3.2.立即数扩展器 3.3.取指令器 3.4.译码器 3.5.寄 ...

  4. 【计算机组成原理】CPU:单周期数据通路(MIPS)

    寄存器传送语言RTL 1)R(r)表示寄存器r的内容 2)M(address)表示主存储器地址address的内容 3)传输方向"←"表示,从右向左传输 4)程序计数器PC的内容直 ...

  5. 【中山大学计算机组成原理实验】单周期CPU设计与实现

    实验一 : 单周期CPU设计与实现 一. 实验目的 (1) 掌握单周期CPU数据通路图的构成.原理及其设计方法: (2) 掌握单周期CPU的实现方法,代码实现方法: (3) 认识和掌握指令与CPU的关 ...

  6. 【计组实验】P2 Modelsim Verilog单周期处理器开发 MIPS指令集

    一点心得: 如果遇到不会的题,可以看着别人的代码,比着抄一遍(不要直接复制粘贴),抄的同时尽量理解每句代码的含义.如果看不懂某句代码,(觉得这句没有用),可以跳过这句不写,按照自己的思路继续. 如果之 ...

  7. 【计组实验】P1 logisim完成单周期处理器开发 MIPS指令集

    参考教材:<计算机组成与设计 硬件/软件接口 原书第五版>第二章 第四章 ↑ 这本书写的特别好,零基础也可以看 实验报告 链接: https://pan.baidu.com/s/19YQA ...

  8. 计算机组成原理 实验五 单周期cpu

    proteus仿真软件安装教程链接 如果对我的实验报告感兴趣,可以考虑我的计组实验专栏 计算机组成原理专栏链接

  9. 基于 RICS-V 架构的单周期处理器设计(含所有格式指令)—— 控制信号选取及代码结构分析

    文章目录 一.概述 二.设计过程 2.1 选取指令 2.2 指令功能简述 2.3 设计过程概述 2.4 扩展码取值 2.5 三种 ALU 操作信号 2.5.1 操作信号取值 2.5.1 操作信号编码 ...

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

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

最新文章

  1. Linux下启 停 oracle 以及em控制台
  2. JZOJ 6030. 【GDOI2019模拟2019.2.25】白白的
  3. WF:要想绑到两个活动的属性值---依赖属性的定义方法
  4. gdb基本命令 与 技巧
  5. [转]自定义ASP.NET MVC Html辅助方法
  6. 鸿蒙系统起飞!Flutter 完全适配指南
  7. python request timeout_详解Python requests 超时和重试的方法
  8. Ubuntu搭建嵌入式开发(交叉编译)环境-转
  9. JavaScript中如何自定义属性操作
  10. gz键盘增强小工具_资深程序员:Python中你不知道的那些小工具
  11. php pdo setfetchmode,PDOStatement::setFetchMode
  12. 2019足协超级杯花落苏州 开幕战上演“京沪对决”
  13. js控制从绿色到红色的渐变
  14. LR-Web服务器和应用程序服务器区别(性能指标)
  15. 十年老程序员开始新事业
  16. [DSP 日常记录] #1 冯诺依曼结构、哈佛结构与改进型哈佛结构
  17. Arcgis制作风速风向
  18. MySQL 时间查询 忽略时分秒
  19. c++rpg黑框游戏_RPG游戏 C++源码 文字RPG游戏
  20. Quick #UE4 Tip (第2周 2020.1.31)

热门文章

  1. 【23】数据可视化:基于 Echarts + Python 动态实时大屏范例 - Redis 数据源
  2. 什么是WBS分解法?
  3. CMMI4 培训计划
  4. vue中select的option默认选中项的问题解决方案
  5. Java中的反射机制
  6. python实现kmeans图像分割、一只遥望大海的小狗_【Python】爬虫+ K-means 聚类分析电影海报主色...
  7. CASS10.1 野外操作码
  8. 怎么用8uftp上传网站,利用8Uftp上传自己的网页只需8步
  9. C++ 的API 设计指导
  10. Java --人民币(RMB)小写/数字转换大写工具类