自己动手写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 ...
随机推荐
- MPEG-4视频编码核心思想
1 引言 当今时代,信息技术和计算机互联网飞速发展,在此背景下,多媒体信息已成为人类获取信息的最主要载体,同时也成为电子信息领域技术开发和研究的热点.多媒体信息经数字化处理后具有易于加密.抗干扰能 ...
- Luogu 2627 修建草坪 (动态规划Dp + 单调队列优化)
题意: 已知一个序列 { a [ i ] } ,求取出从中若干不大于 KK 的区间,求这些区间和的最大值. 细节: 没有细节???感觉没有??? 分析: 听说有两种方法!!! 好吧实际上是等价的只是看 ...
- Linux文件管理类命令及命令别名
文件查看类命令: cat: tac: 从文件尾部开始显示 分屏显示: more [option] 文件名: 查看至文件尾部会退出 空格为翻页 less [option] 文件名: 查看至文件尾部不退出 ...
- git克隆/更新/提交代码步骤及示意图
1. git clone ssh://flycm.intel.com/scm/at/atSrc 或者git clone ssh://flycm.intel.com/scm/at/atJar 或者g ...
- Linux下安装Oracle客户端
1.创建用户名和组名 /usr/sbin/groupadd oinstall /usr/sbin/groupadd dba /usr/sbin/useradd -m -g oinstall -G db ...
- lnmp环境的使用
lnmp环境的使用 安装的软件都安装到了:/usr/local 管理nginx service nginx start|stop|restart|reload 管理mysql 直接执行mysql即可登 ...
- 一堆Offer怎么选?这样做就不纠结了
有个朋友,工作了10年左右,春节后换工作,拿了三个Offer(西安): 通信行业的一家研究所,软件开发工程师,月薪7K,承诺有月奖金.年终奖金 一家做大数据的公司,软件开发工程师,月薪15K,13薪 ...
- Unity3D for iOS初级教程:Part 2/3
转自Unity3D for iOS 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这篇教材是来自教程团队成员 ...
- 算法复习——序列分治(ssoj光荣的梦想)
题目: 题目描述 Prince对他在这片大陆上维护的秩序感到满意,于是决定启程离开艾泽拉斯.在他动身之前,Prince决定赋予King_Bette最强大的能量以守护世界.保卫这里的平衡与和谐.在那个时 ...
- 阐述struts2的执行流程。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterDispatcher是Struts ...