自己动手写CPU——第二篇

ori指令是MIPS架构中的逻辑或运算指令,用于将16位立即数无符号扩展后与通用寄存器值进行逻辑或运算。文章介绍了ori指令的格式、功能以及在流水线模型中的执行流程,包括取指、译码、执行、访存和回写五个阶段。流水线结构通过寄存器传输级优化了指令执行效率。
摘要由CSDN通过智能技术生成

1 ori指令说明

ori是进行逻辑 或 运算的指令,其指令格式如下所示

在这里插入图片描述
从以上的指令格式,我们可以直到,这是一个I类型指令,ori指令的指令码是 6‘b001101,所以当处理器发现正在处理的指令的高6bit 是 001101 的时候,就知道当前正在处理的是 ori指令。
指令的用法是:ori rs rt immediate,作用是将指令中的16位立即数 immediate 进行无符号扩展至32位,然后与索引为rs 的通用寄存器的值进行逻辑 或 运算,运算的结果保存到索引 rt 的通用寄存器中。

(1)无符号扩展 和 符号扩展
在MIPS指令架构中,通常会有指令需要将其中的立即数 进行符号扩展 或者 无符号扩展,一般都是将n位立即数 扩展到32位,其中 符号扩展时将 n位立即数的最高位赋值到扩展后的32位数据的 高(32-n)位,无符号扩展 则是将扩展后的32位数据的高(32-n)位都置0.以16位立即数扩展为32位为例。(自己解释就比如,符号扩展,第16位的数据依次赋值给 高 16位的数据)
在这里插入图片描述

2 流水线 简单模型

简单来说,如果寄存器的输出端和输入端 存在环路,这样的电路称为状态机。状态机的简单模型如下图所示。如果寄存器之间有连接,没有上述环路,这样的电路结构称为 流水线。
在这里插入图片描述
在流水线结构中,信号在寄存器之间传递,每传递到一级都会引起相应的组合逻辑电路变化,对这种模型进行抽象描述就是寄存器传输级(RTL)。Register Transfer level

2.1 ori 指令流水线

在这里插入图片描述
在复习一下几个阶段的工作:
1 取指:取出指令存储器中的指令,PC值递增,准备取下一条指令
2 译码:对指令进行译码,依据译码的结果,从32个通用寄存器中取出 src 操作数,有的指令要求两个src 操作数都是寄存器的值,比如 or 指令,有的指令要求其中一个src操作数是指令中立即数的扩展,比如 ori 指令。所以这里有两个复用器,用于依据指令要求,确定参与运算的操作数,最终确定的两个操作数会送到执行阶段
3 执行阶段:依据译码阶段送入的src 操作数、操作码、进行运算。对于 ori指令而言,就是进行逻辑 或 运算,运算结果传递到访存阶段
4 访存阶段: 对于ori指令,在访存阶段没有任何操作,直接将运算结果向下传递到回写阶段。
5 回写阶段:将运算结果保存到目的寄存器

在这里插入图片描述

接下来就是代码的实现啦!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《自己动手CPU(含CD光盘1张)》使用Verilog HDL 设计实现了一款兼容MIPS32指令集架构的处理器——OpenMIPS。OpenMIPS 处理器具有两个版本,分别是教学版和实践版。教学版的主要设计思想是尽量简单,处理器的运行情况比较理想化,与教科书相似,便于使用其进行教学、学术研究和讨论,也有助于学生理解课堂上讲授的知识。实践版的设计目标是能完成特定功能,发挥实际作用。 《自己动手CPU(含CD光盘1张)》分为三篇。第一篇是理论篇,介绍了指令集架构、Verilog HDL的相关知识。第二篇是基础篇,采用增量模型,实现了教学版OpenMIPS处理器。首先实现了仅能执行一条指令的处理器,从这个最简单的情况出发,通过依次添加,实现逻辑操作指令、移位操作指令、空指令、移动操作指令、算术操作指令、转移指令、加载存储指令、协处理器访问指令、异常相关指令,最终实现了教学版OpenMIPS处理器。第三篇是进阶篇,通过为教学版OpenMIPS添加Wishbone总线接口,从而实现了实践版OpenMIPS处理器,并与SDRAM控制器、GPIO模块、Flash控制器、UART控制器、Wishbone总线互联矩阵等模块组成一个小型SOPC,然后下载到FPGA芯片以验证实现效果,最后为实践版OpenMIPS处理器移植了嵌入式实时操作系统μC/OS-II。 《自己动手CPU(含CD光盘1张)》适合计算机专业的学生、FPGA开发人员、处理器设计者、嵌入式系统应用开发工程师、MIPS平台开发人员以及对处理器内部的实现感兴趣的读者阅读,也可以作为高等院校计算机原理、计算机体系结构等课程的实践参考书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值