自己动手写CPU之第九阶段(4)——载入存储指令实现思路
将陆续上传新书《自己动手写CPU》,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈。
开展晒书评送书活动,在 q=%E4%BA%9A%E9%A9%AC%E9%80%8A&ie=utf-8&src=se_lighten_f" style="color:rgb(51,102,153); text-decoration:none; display:inline; position:static">亚马逊
活动时间:2014-9-11至2014-10-30
9.2 载入存储指令实现思路
9.2.1 实现思路
本节介绍除ll、sc之外的载入存储指令的实现思路,ll、sc指令的实现思路将在9.7节专题介绍。
1、载入指令实现思路
载入指令在译码阶段进行译码,得到运算类型alusel_o、aluop_o,以及要写的目的寄存器信息。这些信息传递到运行阶段,然后又传递到訪存阶段,訪存阶段根据这些信息。设置对数据存储器RAM的訪问信号。
从RAM读取回来的数据须要依照载入指令的类型、载入地址进行对齐调整,调整后的结果作为终于要写入目的寄存器的数据。
2、存储指令实现思路
存储指令在译码阶段进行译码,得到运算类型alusel_o、aluop_o,以及要存储的数据。
这些信息传递到运行阶段,然后又传递到訪存阶段,訪存阶段根据这些信息。设置对数据存储器RAM的訪问信号。将数据写入RAM。
须要特别注意的是:本章如果能够在一个时钟周期内完毕对外部数据存储器RAM的读、写操作,在兴许章节实现实践版OpenMIPS处理器的时候会考虑复杂情况。
9.2.2 数据流图的改动
为了实现除ll、sc之外的载入存储指令,改动数据流图如图9-18所看到的。主要是在訪存阶段添加了对数据存储器RAM的訪问。同一时候,因为要写入目的寄存器的数据可能是运行阶段的结果,也可能是在訪存阶段从数据存储器RAM载入得到的数据,所以在訪存阶段添加了一个多路选择器。进行选择。
9.2.3 系统结构的改动
为了实现除ll、sc之外的载入存储指令,须要对系统结构进行改动,添加部分模块的接口,改动后的系统结构如图9-19所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
主要改动内容例如以下。
(1)译码阶段的ID模块添加了输出信号inst_o,其值就是处于译码阶段的指令,该信号会传递到运行阶段,在运行阶段的EX模块会利用该信号的值计算载入、存储地址mem_addr_o。
(2)运行阶段的EX模块将运算子类型aluop_o、载入存储地址mem_addr_o、读取的第二个操作数reg2_o等信息,通过EX/MEM模块传递到訪存阶段的MEM模块。
(3)訪存阶段的MEM模块根据载入、存储指令的类型,确定对数据存储器RAM的訪问信息,通过mem_ce_o接口送出数据存储器使能信号,mem_addr_o接口送出訪问地址,mem_we_o接口指出是载入还是存储操作、mem_sel_o接口送出字节选择信号。假设是存储指令。那么还通过mem_data_o接口输出要存储的数据,假设是载入指令。那么会从mem_data_i接口获得读取到的数据。然后MEM模块根据详细的载入指令类型、载入地址,对获取的数据进行对齐调整,终于得到要写入目的寄存器的数据。
下一次将改动OpenMIPS的代码以实现载入存储指令。
自己动手写CPU之第九阶段(4)——载入存储指令实现思路的更多相关文章
- 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明
将陆续上传新书<自己动手写CPU>,今天是第47篇. 9.7 ll.sc指令实现思路 9.7.1 实现思路 这2条指令都涉及到訪问链接状态位LLbit,能够将LLbit当做寄存器处理,ll ...
- 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)
将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...
- 自己动手写CPU之第九阶段(7)——MIPS32中的LL、SC指令说明
将陆续上传新书<自己动手写CPU>,今天是第46篇. 在MIPS32指令集中有两条特殊的存储载入指令:链接载入指令LL.条件存储指令SC,本次将介绍这两条指令.在兴许将实现这两条指令. 9 ...
- 自己动手写CPU之第七阶段(7)——乘累加指令的实现
将陆续上传本人写的新书<自己动手写CPU>.今天是第30篇.我尽量每周四篇 亚马逊的销售地址例如以下.欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8 ...
- 自己动手写CPU之第五阶段(1)——流水线数据相关问题
将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第15篇,我尽量每周四篇 上一章建立了原始的OpenMIPS五级流水线结构,可是仅仅实现了一条ori指令,从本章開始,将逐步完 ...
- 自己动手写CPU之第六阶段(2)——移动操作指令实现思路
将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第21篇,我尽量每周四篇 6.2 移动操作指令实现思路 6.2.1 实现思路 这6条移动操作指令能够分为两类:一类是不涉及特殊 ...
- 自己动手写CPU之第四阶段(3)——MIPS编译环境的建立
将陆续上传本人写的新书<自己动手写CPU>(尚未出版).今天是第13篇.我尽量每周四篇 4.4 MIPS编译环境的建立 OpenMIPS处理器在设计的时候就计划与MIPS32指令集架构兼容 ...
- 自己动手写CPU之第五阶段(2)——OpenMIPS对数据相关问题的解决措施
将陆续上传本人写的新书<自己动手写CPU>(尚未出版).今天是第16篇.我尽量每周四篇 5.2 OpenMIPS对数据相关问题的解决措施 OpenMIPS处理器採用数据前推的方法来解决流水 ...
- 自己动手写CPU之第七阶段(2)——简单算术操作指令实现过程
将陆续上传本人写的新书<自己动手写CPU>.今天是第25篇.我尽量每周四篇 亚马逊的预售地址例如以下,欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8 ...
随机推荐
- H.264分层结构与码流结构
H.264分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 在H.264 中,句法元素共被组织成 序列.图像.片.宏 ...
- XPath与lxml类库
有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素. 什么是XML ...
- progit 学习笔记-- 1 第一章 第二章
* 1 起步** 关于版本控制*** 什么是版本控制?记录文件变化,查阅特定版本,回溯到之前的状态.任何类型的文件进行版本控制.复制整个目录 加上备份时间 简单 混淆 无法恢复本地版本控制 数据库记 ...
- lfyzoj103 割海成路之日
问题描述 现在,摆在早苗面前的是一道简单题.只要解决了这道简单题,早苗就可以发动她现人神的能力了: 输出 \[1\ \mathrm{xor}\ 2\ \mathrm{xor} \cdots \math ...
- CEO的智力财富第12期-《股权激励》学习笔记
卷首语---你现在走的第一步,都藏着你未来的样子 今天,又去参加天使岛举办的系列讲座之股权激励,由律大大律师事务所李刚律师主讲,走在路上,我就在想,我为什么要来参加这样的活动呢?我的本职工作和股权没有 ...
- TOJ 3134: 渊子赛马修改版
3134: 渊子赛马修改版 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit: 458 ...
- soa服务治理
SOA服务治理 文章:SOA 治理简介 文章:中小型互联网公司微服务实践-经验和教训
- 洛谷3830 [SHOI2012]随机树 【概率dp】
题目 输入格式 输入仅有一行,包含两个正整数 q, n,分别表示问题编号以及叶结点的个数. 输出格式 输出仅有一行,包含一个实数 d,四舍五入精确到小数点后 6 位.如果 q = 1,则 d 表示叶结 ...
- Java 学习(3):java 对象和类
目录: --- 对象 --- 类 --- 源文件的声明规则 --- Java 包 对象: 对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种: ...
- LVM 类型的 Storage Pool
LVM 类型的 Storage Pool 不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上 VG 中的 LV 也可以作为虚拟磁盘分配给虚拟机使用. 不过,LV 由于没有磁盘的 MBR 引导记录,不能 ...