MIPS多周期流水线化处理器实现(5级流水的MIPS架构的CPU设计)

MIPS多周期流水线化处理器实现(5级流水的MIPS架构的CPU设计)

一:MIPS架构是什么?

当前CPU的两大架构是CISC(复杂指令集)和RISC(精简指令集)

RISC:精简指令集处理器,Reduced Instruction Set Computer
( RISC结构简单,选取了使用频率高的简单指令,指令长度固定,多为单周期指令在功耗、体积、价格等方面有很大优势,多用于嵌入式领域)

MIPS架构:是一种采取精简指令集(RISC)的处理器架构

二:原理图

5个流水段分别为
IF(取指),ID(译码),EXE(执行),MEM(访存),WB(回写)。

原理图如下
在这里插入图片描述

三:指令设计

1:实验中有三种类型的MIPS指令,分别为R型、I型和J型:
● R(register)类型的指令从寄存器堆中读取两个源操作数,计算结果写回寄存器堆;(两个源操作寄存器,一个目的寄存器)
rd=rs+rt
● I(immediate)类型的指令使用一个 16位的立即数作为一个源操作数;
(一个源操作寄存器,一个立即数(需扩展),一个目的寄存器)
rt=rs+immediate
● J(jump)类型的指令使用一个 26位立即数作为跳转的目标地址(target address);
在这里插入图片描述
MIPS连续字地址相差4,一个地址为8位一个字节,一个字(指令长度)有4个字节。

2:指令的各个位细致划分
Instruction[31:26]=opcode,操作码,用来区分指令;
Instruction[ 5:0 ]=funct ,功能码用来区分指令;
Instruction[25:21]=regardaddr,地址,从寄存器中读取数据的地址;rs
Instruction[20:16]=regbrdaddr,地址,从寄存器中读取数据的地址;rt
Instruction[20:16] 或 Instruction[15:11],向寄存器中写数据的地址;rt和rd

四:原理

多周期 CPU :将整个 CPU 的执行过程分成几个阶段,每个阶段用一个时钟去完成,然后开始下一条指令的执行,而每种指令执行时所用的时钟数不尽相同。(一条指令的执行最长五个周期,有些不需要)

IF: PC计数器+Instruction_memory
根据计数器PC为Insruction的输入地址,指令存储器里取出一条指令,同时根据**指令字节长度(4)**自动递增产生下一条指令所需要的指令地址。但遇到“转移地址”指令时,把控制器的“转移地址”送入PC,得到的地址做些变换(左移2位)送入PC。
(为什么左移两位,例:偏移量为偏移3个字,但是地址是按照字节编码的,不执行左移会变成偏移3个字节,左移后变成12个字节,一个字为4个字节,即为3个字)

ID:contorl 产生操作控制信号
register 寄存器读出数据
sign_extend 扩展

EXE:ALU:根据操作信号,执行操作,
左移

MEM:Data_memory 访问存储器,进行写入或读出

WB: 2选1选择器 回写 指令执行的结果或访存得到的结果 》写入目的寄存器

五:各部分功能

1.PC:拥有指向当前指令的地址和下一条指令地址。实现地址跳转。根据地址跳转的类型可将跳转分成三种,分别是a:自增4 b:j指令 c:beq和bne指令

2:Instruction_memory:读取CPU的指令并进行分析 a: 读取指令 b:读取下一条指令 c:分析指令内容(PC值为地址,读出二进制指令)

3:CPU_crtl :主要用途是接受Instruction_memory中传入的数据,同时给个数据通路端口赋值以达到选择数据输入的目的
输入:opcode 和 funct 。
输出:RegDstD:决定写入寄存器的地址rd或rt 。
ALUSrcD:决定输入ALU的输入数SrcB是寄存器读出的regbdata还是立即数signimm(来自于INS[15:0]扩展)R或I指令。
ALUControlD:判断ALU进行何种运算。
BranchD:控制跳转(BranchM和zeroM一起)。
MemWriteD:向Data_memory中读或者写。
MemtoRegD:向Reg中写入的是ALURes或者Data_memory中读出的数据。
RegWriteD:是否向reg中写入数据

4:register :寄存器的读写 a:根据ctrl的数据,选择传入的数据地址(由INS提供) b:初始化 c:读和写(写不一定,但是一定读出,虽然不一定用)
(写使能由CPU_crtl 提供,一直同步到WB再传入reg,控制何时写入。MemtoRegD:向Reg中写入的是ALURes或者Data_memory中读出的数据。)

5:sign_extend:立即数最高位为符号位来扩展立即数

6:ALU:运算 beq和bne使用异或

7:data_memory:用于存储器的读写(读写使能来自ctrl,控制何时写入,只能单读或单写,地址为ALU运算结果。写数据来自reg读出数据)

8:MUX:决定回写的数据,MemtoRegD

(使能信号,在时钟上升沿同步到下一级流水,以此控制何时使能)

六:冲突解决
在ID段进行判断,针对不同指令,判断此时所需数据是否到达,如果有继续执行,否则加入停顿。

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 静态5流水MIPS CPU实现.rar 是一个压缩文件,里面可能包含了一份静态5流水MIPS CPU实现代码或者相关资料。 MIPS是一种经典的指令集架构,广泛用于计算机体系结构教学和CPU设计中。5流水MIPS CPU的一种优设计,通过将指令执行过程划分为不同的阶段,可以在同一时刻执行多个指令,提高CPU的性能。 静态5流水MIPS CPU实现.rar 可能包含以下内容: 1. CPU的Verilog/VHDL源代码:这是CPU实现的关键部分,描述了CPU的各个模块和它们之间的连接关系。Verilog/VHDL是一种硬件描述语言,用于描述数字电路的结构和行为。 2. 仿真文件:用于验证CPU设计正确性的仿真模型。常见的仿真工具有ModelSim、Verilator等。通过仿真可以对CPU进行功能验证和时序分析,帮助发现和解决潜在的问题。 3. 物理综合脚本和约束文件:用于将CPU源代码综合到实际的硬件电路中。物理综合是将逻辑电路映射到实际电路实现的过程,通过优逻辑门的位置和连线布局,提高电路性能。 4. 文档和说明:可能包含CPU设计文档、用户手册或者实现说明,帮助理解CPU的工作原理和配置参数。 通过静态5流水MIPS CPU实现,可以深入了解CPU架构设计原理,对于学习计算机体系结构和数字电路设计有很大帮助。同时,可以通过修改和优CPU实现,进一步提高CPU的性能和功能。 ### 回答2: 静态5流水 MIPS CPU实现.rar 是一个压缩文件,包含了一个静态5流水 MIPS CPU实现MIPS 是一种常见的RISC指令集架构,它的特点是指令集简单且规范,易于学习和理解。 静态5流水是指CPU中的5个执行层(取指令、译码、执行、访问存储器、写回)可以同时并行运行,并且每个阶段的数据传输通过流水线实现,并行处理多个指令,从而提高了CPU的执行效率。 这个实现文件中的静态5流水 MIPS CPU 实现MIPS指令集的所有指令,并且使用了静态5流水技术来优指令的执行。实现文件中可能包含了CPU设计图纸、Verilog/VHDL代码、仿真测试文件等。 这个实现文件的使用方法可能是将其解压缩,然后使用相应的软件打开,查看或修改其中的代码,进行仿真或者将代码烧录到硬件上。用户可以根据实际需求对CPU进行更改和优,以适应不同的应用场景。 总之,静态5流水 MIPS CPU实现.rar 是一个包含了静态5流水 MIPS CPU实现文件的压缩文件,通过使用这个实现文件,用户可以了解、学习、修改和优CPU设计实现。 ### 回答3: 静态5流水 MIPS CPU 实现.rar 是一个文件,其中包含了实现了静态5流水MIPS CPU 的程序代码和相关文档。 MIPS CPU 是一种常见的处理器架构,以其简洁而高效的指令集而著名。静态5流水是对 MIPS CPU 进行改进的一种方法,以提高指令执行效率。 在这个 rar 文件中,我们可以找到实现了静态5流水 MIPS CPU 的源代码。这些代码包括 CPU 的模块设计流水线寄存器、指令控制单元和数据通路等部分。通过阅读代码,我们可以了解每个模块的功能以及它们之间的连接方式。 此外,该文件还可能包含用户手册或技术文档,用于说明如何使用和配置这个 MIPS CPU 实现。这些文档可能会提供一些关于流水线架构的理论背景知识,并介绍一些性能调优的方法。 实现一个静态5流水 MIPS CPU 是一项复杂的工作,需要对流水线技术和 MIPS 架构的理解。通过这个程序代码,我们可以学习如何设计实现一个高效的 CPU。 总结来说,静态5流水 MIPS CPU 实现.rar 是一个包含了实现了静态5流水 MIPS CPU 的源代码和相关文档的压缩文件。通过阅读源代码和文档,我们可以学习和理解静态5流水 MIPS CPU设计原理和实现细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值