(完整word版)32位单周期RISC处理器设计

第一章 32 位单周期RISC处理器设计
要设计一款处理器,首先要选择体系结构,本题选择的是RISC体系结构,因为它适合于流水线设计。然后需要选择一个标准的指令集,本题选择的MIPS指令集并按照常规的五段流水的方式来实现流水线。流水线的实现过程将在第二章介绍。
1.1目标处理器指令集与指令格式
本题目标CPU以能实现部分MIPS指令为目标,具体指令如下表1:
甲基化学式
类别
指令
核桃杨
格式
算术运算
加(add)
ccenter
R
减(sub)
R
立即数加(addi)
I
立即数减(subi)
I
逻辑运算
与(and)
R
或(or)
R
或非(nor)
R
立即数与(andi)
I
立即数或(ori)
I
立即数或非(nori)
I
数据传递
取字(lw)
I
存字(sw)
I
条件分支
相等转移(beq)
I
小于比较(slt)
R
立即数小于比较(slti)
I
无条件跳转
跳转(jL)
J
空操作
空操作(nop)
 
                   
                          表1  目标CPU指令集
1.2 从指令具体行为反推设计方案
CPU要执行一条指令,不外乎需要完成以下几个过程:取指令,指令译码,将译码出的指令放到算术逻辑运算部件ALU上执行运算,根据ALU算得的访存地址进行访存和将访存的结果写回寄存器等。当然,不同的指令类型(R、I、J)可能经过的过程稍有不同,即它们的数据通路有所不同,以下将具体介绍:
1、R格式指令数据通路:
1)从指令寄存器Instr MEM中取出指令,同时PC增值(即加1等待下个CLK到来);
2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;
3.)ALU根据功能码Opcoder确定操作方式,对从寄存器堆读出的数据进行计算;
4.)ALU运算结果被写入寄存器堆,由rd确定写入的寄存器堆存储单元地址。
                              图1  R指令数据通路
2. I 指令(除lw、sw和分支指令)数据通路如图2:
1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);
2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;
3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;
4.)ALU的运算结果被写入寄存器堆,由rt确定写入的寄存器堆存储单元地址。
图2  I 指令(除lw、sw和分支指令)数据通路
3、Lw指令数据通路如图3:
1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);
2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;
3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;
4.)将ALU的运算结果作为数据存贮器的地址读出相应单元的内容;
5)把从数据存储单元取出的数据写入寄存器堆,由rt确定写入的寄存器存储单元地址。
图3  LW指令数据通路
4、Sw指令数据通路如图4:
1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);
2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;
3.)ALU将从寄存器堆rs1单元读出的数据与符号扩展后的指令低16位值相加;
4.)将ALU 的运算结果作为数据存贮器的写入地址,把从寄存器堆rs2单元中取出的数据写入数据存储器中。
图4    SW指令数据通路
5)分支和跳转指令数据通路如图5:
分支和跳转指令主要控制PC的输入来达到分支或跳转的目的.
分支指令数据通路:
1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);
2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;同时主控制单元还计算各控制线应被设置的状态,具体状态表如表2所示;
3.)ALU将从寄存器堆读出的两数相减,同时把PC+1的值与符号扩展后的指令低16位值相加,其结果即为分支目标地址;
4.)根据ALU的Zero端口值和branch输出共同决定的PC的值:当Zero端口和branch的输出均为高电平时PC的值取第3步计算所得的分支目标地址,否则取第1步的PC+1值。
跳转指令数据通路:
1.)从指令寄存器Instr Mem从取出指令,同时PC增值(即加1等待下个CLK到来);
2.)主控制单元计算各控制线应被设置的状态,状态表如表2所示.PC+1的值的高6位[31~26]加上指令低26位([25~0])值组成跳转目标地址,根据主控制单元生成的Jump值决定是否跳转,Jump为1则PC的值取跳转目标地址,否则取其它地址
此外,对于空操作指令,只要把jump、branch、memwrite、memread、regwrite均设为低电平,就可以保证该指令进行空操作,即执行没有任何效果的操作.
在理清各格式指令的数据通路后把它们综合在一起构成即构成目标CPU的总的数据通路,具体如图5.
                              图5 目标CPU数据通路
1.3 目标处理器的控制
处理器的控制主要为ALU的控制和主控制单元设计两个方面的问题。主控制单元的设计即为图5中Control Unit模块设计。处理器中除了控制ALU操作的opcoder(由主控制单元产生的ALUop和R指令功能码共同产生)和控制条件分支的信号(由主控制单元产生的branch和ALU运算结果Zero的与决定)外,所有控制信号都可直接由主控制单元根据指令的操作码字段来产生。具体对应关系如表2。
格式
操作数
ALUop
RegDst
Jump
Branch
memread
memwrite
memtoreg
ALUsrc
Regwrite
R
add
100
1
0
0
0
0
0
0
1
sub
100
and
100
or
100
slt
100
nor
100
I
addi
000
0
0
0
0
0
0
1
1
subi
010
0
0
0
电视棒原理
0
0
0
1
1
andi
001
0
0
0
0
0
0
1
1
ori
101
0
0
0
0
0
0
1
1
nori
011
0
0
0
0
0
0
1
1
lw
000
0
0
0
1
0
1
1
1
sw
000
X
0
0
0
1
0
1
0
beq
010
X
0
1
0
0
0
0
0
真空玻璃管bne
010
X
0
1
0
0
领衬0
0
0
slti
110
0
0
0
0
0
0
1
1
J
JL
 
 
1
X
0
0
0
X
0
nop
nop
100
1
0
0
0
0
0
0
0
 

本文发布于:2024-09-21 19:26:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/150453.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指令   数据   单元   寄存器   目标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议