关于 MIPS 体系

MIPS 体系结构 是20世纪80年代初发明的一款 RISC(精简指令系统计算机)体系架构。MIPS是一个双关语,它既是 Microcomputer without Interlocked Pipeline Stages 的缩写, 同时又是 Millions of Instructions Per Second 的缩写。相比 Intel x86 的 CISC (复杂指令系统计算机)架构, MIPS 是一种非常优雅,简洁,高效的 RISC 体系架构,非常适合于教学研究,我国的龙芯处理器就是基于MIPS指令系统的。最初MIPS是为32位系统设计的,后来又发展出了64位MIPS,但依然对32位模式向下兼容。

关于指令译码器

指令译码器(Instruction Decoder,ID) 是控制器中的主要部件之一。计算机能且只能执行“指令”。指令由操作码地址码组成。操作码表示要执行的操作性质,即执行什么操作,或做什么;地址码是操作码执行时的操作对象的地址。计算机执行一条指定的指令时,必须首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后才能控制计算机其他各部件协同完成指令表达的功能。这个分析工作由指令译码器来完成。

实验目的:

理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号。

实验内容:

利用比较器等功能模块将32位MIPS 指令字译码生成 LW、SW、BEQ、SLT、ADDI、OtherInstr信号:

信号 位宽 功能描述
IR 32 MIPS指令字IR
LW 1 当前指令为lw指令时输出为1
SW 1 当前指令为sw指令时输出为1
BEQ 1 当前指令为beq指令时输出为1
ADD 1 当前指令为addi指令时输出为1
SLT 1 当前指令为slt指令时输出为1
OtherInstr 1 当前指令为其他指令时输出为1

理解指令译码的基本概念,能将32位MIP指令字译码成不同的指令译码信号。

指令译码器是控制器核心功能部件,负责将指令字翻译成一根根的指令译码信号,每一根指令译码信号代表一条具体的指令,如上图中的 I1…Im 。

实验步骤

相关指令的规格通过参考MIPS英文指令手册进行查询。





查询MIPS英文指令手册可以得知,各指令的高六位分别为:

Sw:101011; 换算成16进制为:2B;

Lw:100011; 换算成16进制为:23;

Addi:001000; 换算成16进制为:08;

Beq:000100; 换算成16进制为:04;

SLT 指令需要和低六位 FUNCT 一起判断:

OP:000000; 换算成16进制为:00;

FUNCT:101010;换算成16进制为:2A;

最后用逻辑或非门总结到 OtherInstr:

电路完成图:

测试为:

预期输入:
Cnt      IR           LW    SW    BEQ   ADDI  SLT   OtherI
0000     2010ffff     0     0     0     1     0     0
0001     20110000     0     0     0     1     0     0
0002     ae300200     0     1     0     0     0     0
0003     22100001     0     0     0     1     0     0
0004     22310004     0     0     0     1     0     0
0005     ae300200     0     1     0     0     0     0
0006     22100001     0     0     0     1     0     0
0007     22310004     0     0     0     1     0     0
0008     ae300200     0     1     0     0     0     0
0009     22100001     0     0     0     1     0     0
000a     22310004     0     0     0     1     0     0
000b     ae300200     0     1     0     0     0     0
000c     22100001     0     0     0     1     0     0
000d     22310004     0     0     0     1     0     0
000e     ae300200     0     1     0     0     0     0
000f     22100001     0     0     0     1     0     0
0010     22310004     0     0     0     1     0     0
0011     ae300200     0     1     0     0     0     0
0012     22100001     0     0     0     1     0     0
0013     22310004     0     0     0     1     0     0
0014     ae300200     0     1     0     0     0     0
0015     22100001     0     0     0     1     0     0
0016     22310004     0     0     0     1     0     0
0017     ae300200     0     1     0     0     0     0
0018     20100000     0     0     0     1     0     0
0019     2011001c     0     0     0     1     0     0
001a     8e130200     1     0     0     0     0     0
001b     8e340200     1     0     0     0     0     0
001c     0274402a     0     0     0     0     1     0
001d     11000002     0     0     1     0     0     0
001e     ae330200     0     1     0     0     0     0
001f     ae140200     0     1     0     0     0     0
0020     2231fffc     0     0     0     1     0     0
0021     12110001     0     0     1     0     0     0
0022     1000fff7     0     0     1     0     0     0
0023     22100004     0     0     0     1     0     0
0024     2011001c     0     0     0     1     0     0
0025     12110001     0     0     1     0     0     0
0026     1000fff3     0     0     1     0     0     0
0027     1000ffff     0     0     1     0     0     0
0028     00000000     0     0     0     0     0     1
实际输入:
Cnt      IR           LW    SW    BEQ   ADDI  SLT   OtherI
0000     2010ffff     0     0     0     1     0     0
0001     20110000     0     0     0     1     0     0
0002     ae300200     0     1     0     0     0     0
0003     22100001     0     0     0     1     0     0
0004     22310004     0     0     0     1     0     0
0005     ae300200     0     1     0     0     0     0
0006     22100001     0     0     0     1     0     0
0007     22310004     0     0     0     1     0     0
0008     ae300200     0     1     0     0     0     0
0009     22100001     0     0     0     1     0     0
000a     22310004     0     0     0     1     0     0
000b     ae300200     0     1     0     0     0     0
000c     22100001     0     0     0     1     0     0
000d     22310004     0     0     0     1     0     0
000e     ae300200     0     1     0     0     0     0
000f     22100001     0     0     0     1     0     0
0010     22310004     0     0     0     1     0     0
0011     ae300200     0     1     0     0     0     0
0012     22100001     0     0     0     1     0     0
0013     22310004     0     0     0     1     0     0
0014     ae300200     0     1     0     0     0     0
0015     22100001     0     0     0     1     0     0
0016     22310004     0     0     0     1     0     0
0017     ae300200     0     1     0     0     0     0
0018     20100000     0     0     0     1     0     0
0019     2011001c     0     0     0     1     0     0
001a     8e130200     1     0     0     0     0     0
001b     8e340200     1     0     0     0     0     0
001c     0274402a     0     0     0     0     1     0
001d     11000002     0     0     1     0     0     0
001e     ae330200     0     1     0     0     0     0
001f     ae140200     0     1     0     0     0     0
0020     2231fffc     0     0     0     1     0     0
0021     12110001     0     0     1     0     0     0
0022     1000fff7     0     0     1     0     0     0
0023     22100004     0     0     0     1     0     0
0024     2011001c     0     0     0     1     0     0
0025     12110001     0     0     1     0     0     0
0026     1000fff3     0     0     1     0     0     0
0027     1000ffff     0     0     1     0     0     0
0028     00000000     0     0     0     0     0     1

MIPS 指令译码器设计相关推荐

  1. MIPS指令译码器设计

    MIPS指令译码器设计 实验目的 帮助学生理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号. 实验内容 利用比较器等功能模块将32位MIPS 指令字译码生成LW.SW.BEQ. ...

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

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

  3. MIPS CPU设计(HUST)

    当你看到到这篇文章的时候,想必你已经被计算机组成原理实验折磨的不成样子了,没错我也是,经过我这几天的努力终于将这些实验一一完成. 我将源码放在压缩包里了,大家只需要复制代码,放进头歌里,满分过!,另外 ...

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

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

  5. 单周期MIPS CPU设计

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

  6. 基于C++的Mips模拟器设计

    Mips模拟器 1. 设计思路 利用C++模拟计算机CPU和内存,实现产品主要功能 集成汇编器进入模拟器,实现指令的汇编和反汇编 使用QT开发图形界面,方便用户操作 2. 原理证明 汇编器的证明已经在 ...

  7. MIPS RAM设计实验

    实验目的 理解主存地址基本概念,理解存储位扩展基本思想,并能利用相关原理构建能同时支持字节.半字.字访问的存储子系统. 主要任务 Logisim\text{Logisim}Logisim 中 RAM\ ...

  8. Educoder头歌单总线CPU设计(定长指令周期3级时序)(HUST)谭志虎 华中科技大学计算机组成原理实验计算机硬件系统设计

    .crci文件获取在下方 本实训项目帮助学生理解定长指令周期三级时序系统的设计,能利用该时序构造硬布线控制器,支持5条典型MIPS指令在单总线CPU上运行,最终CPU能运行内存冒泡排序. 定长指令周期 ...

  9. 单总线CPU设计(现代时序)(HUST)

    ​ 前言 第1关 MIPS指令译码器设计 第2关 单总线CPU微程序入口查找逻辑 第3关 单总线CPU微程序条件判别测试逻辑 第4关 单总线CPU微程序控制器设计 第5关 采用微程序的单总线CPU设计 ...

最新文章

  1. 【转】每天一个linux命令(34):du 命令
  2. R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar)
  3. 数据库增长到一定程度后的瘦身,优化问题
  4. 卷积层和全连接层的区别_1*1的卷积核和全连接层有什么异同?
  5. real--复数的实数部分
  6. Qt Creator比较文件
  7. PHPStrom的快捷键突然失效解决方案
  8. subject.login(token)是如何确认账号密码的_教你如何删除、关闭、注销微信小程序...
  9. python程序调试题_关于python程序调试问题,一个文件计算的问题
  10. Django的rom
  11. Ubuntu ufw 取消 网关到 224.0.0.1 multicast 日志
  12. 个人作业六:单元测试
  13. flex项目学习包括什么内容
  14. 静态初始化--我的理解
  15. java调用vissim的com接口_VISSIM 高级应用COM接口开发初级入门
  16. 房地产项目成本管理系统包含的内容和价值!
  17. zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
  18. Stellarium(虚拟天文馆)
  19. 【AnimeJs】——仿Animejs徒手实现SVG动画
  20. 如何使用stc12c5a60s2控制蜂鸣器

热门文章

  1. JAVA程序设计课程期末设计
  2. 实验二-洗衣机模糊推理实验-matlab/python
  3. c# 操作git指令
  4. 递归遍历ftp文件目录,并生成目录树
  5. 北京经济适用房与廉租房申请标准出台
  6. SQL SERVER使用技巧集
  7. 加载本地gradle配置
  8. 深度学习中常见的非线性函数(激活函数)
  9. 【一文了解】经典图像的增强方法都有些什么?什么又是振铃现象?为什么图像会产生噪声?噪声又有什么分类?
  10. python沙箱逃逸总结