微处理器结构与设计-第5次课-2013-03-27_846007182
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
add
Address instruction
PC
Instruction memory
Data Register Register Register Register file
Address ALU Data Memory
Data
26
微电子学研究所李树国
指令1:Lw r1, offset(base) ; 操作: r1<---memory(base+offset)
45
微电子学研究所李树国
46
setup时间和hold时间
Setup/hold time 是对输入信号和时钟信号之间的时间要求。 建立时间是指触发 器的时钟信号上升沿到来以前,数据稳定不 变的时间。输入信号应在时钟上升沿(如上升沿有效)之前 的T时间到达,这个T就是建立时间-Setup time.如setup time 不满足,这个数据就不能被这一时钟打入触发器, 保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不 变的时间。如果hold time 不够,数据同样不能被打入触发 器。 建立时间(Setup Time)和保持时间(Hold time)。建立时间 是指在时钟边沿前,数据信号需要保持不变的时间。保持时 间是指时钟跳变边沿后数据信号需要保持不变的时间。如果 不满足建立和保持时间的话,那么DFF将不能正确地采样到 数据,将会出现亚稳态的情况。
流水线多周期指令的描述(1)
4 clock cycles
IF
DE
EXE
WB
40
微电子学研究所李树国
流水线多周期指令的描述(2)
4 clock cycles
IF
DE IF
EXE DE
WB EXE WB
41
微电子学研究所李树国
流水线多周期指令的描述(3)
4 clock cycles
IF
DE IF
EXE DE IF
Data Memory
Register file
Data
J traget; 29 微电子学研究所李树国
MIPS数据通路还缺少什么?
3
连接红线可以吗?
1
MUX
+4 add add
Address instruction
PC
Instruction memory
Data Register Register Register
EXE DE IF
WB EXE DE WB EXE WB
IF
DE
IF
EXE
DE
WB
EXE WB
44
微电子学研究所李树国
流水线多周期指令的描述(6)
4 clock cycles
IF
DE IF
EXE DE IF
WB EXE DE WB EXE WB
IF
DE
IF
EXE
DE IF
WB
EXE DE WB EXE WB
+4 add add
Address instruction
PC
Instruction memory
Data Register Register Register
Address ALU
Data Memory
Register file
Data
Lw r1, offset(base) ; // Funcation : r1<---memory(base+offset) 27 微电子学研究所李树国
Data
AND rd, rs, rt ; 28 微电子学研究所李树国
指令 3: J target;
操作: PCPC||Target
+4 add add
Address instruction
PC
Instruction memory
Data Register Register Register
Address ALU
32
微电子学研究所李树国
指令的周期
• 单周期指令,每一条指令的执行都只需要一个 时钟周期。 • 多周期指令,每条指令需要分成若干个时钟周 期来执行。 • 流水线是一种解决多周期指令的重叠操作技术
33
微电子学研究所李树国
单周期指令的描述
clock cycle 1
IF
DE
EXE
WB
34
微电子学研究所李树国
WB EXE DE WB EXE WB
42
微电子学研究所李树国
流水线多周期指令的描述(4)
4 clock cycles
IF
DE IF
EXE DE IF
WB EXE DE WB EXE WB
IF
DE
EXE
WB
43
微电子学研究所李树国
流水线多周期指令的描述(5)
4 clock cycles
IF
DE IF
除法算法
手工除法算法
除法恢复迭代算法及其电路
寄存器P要比除数多一位
恢复迭代 P=P-B (必做) P=P+B (选做) P=P-B (必做) P=P+B (选做) P=P-B (必做) P=P+B (选做) P=P-B (必做) P=P+B (选做) .
迭代算法 P=P-2B(必做) P=P+B (选做) P=P-2B (必做) P=P+B (选做) P=P-2B (必做) P=P+B (选做) .
c o m p a r e
NPC
NPC
Exception Handler
Decoder
PC op[31-26] rs[25-21] rt[20-16] rd[15-11]
Read_RS
Data_RS
Read_RT
Data_RT Write_ad
Write_Data
WData
RS sa
l o g i c
除法不恢复迭代算法及其电路
不恢复的原因:减掉b后,直接左移1位,
相当于减掉的b变成了2b,若这次符号位为负,只需 要加b,就相当于减掉了b,即-2b+b=-b;
若为符号位为0,就继续减b 最后一次是调整还原原来的b
微处理器的数据通路和控制
19
微电子学研究所李树国
MIPS 5-stage 流水的数据通路
微电子学研究所李树国
3、不含浮点指令
23
指令的共同性
• 取指令,送PC值给Memory • 根据指令的内容,读取1个或2个寄存器的 内容 • 除了一条跳转指令J外,其它所有的指令类 在读取寄存器后,都要使用ALU
24
微电子学研究所李树国
指令的不同性
• 使用ALU后,依据指令的不同,而进行不同 的操作,分别是:
单周期指令的描述
Clock cycle 2
IF
DE
EXE
WB IF DE EXE WB
35
微电子学研究所李树国
单周期指令的描述
Clock cycle 3
IF
DE
EXE
WB IF DE EXE WB IF DE EXE WB
36
微电子学研究所李树国
多周期指令的描述
4 clock cycles
IF
• 指令集概括为3个指令类
– 存储器访问指令类
• Lw,Sw 等
– 算术逻辑指令类
• Add,sub,and, or,Slt等
– 转移指令类
• Beg, J,等
1、尽量小,尽量简洁 2、不含乘、除、移位指令
1、make the common case fast 2、Simplicity favors Regularity
答案
1. 对无符号16位的二进制数M,在Booth编 码的情况下,会产生2M,因此,需要17 位来表示2M。 2. Booth编码第一行部分积需要3个位表示 符号位,最后一行部分积,不需要符号位 ,其它行都需要2位符号位,这就是20位 ,19位,16位的来历。 3. 乘数变成19位,这是Booth编码推导过程 所造成的
DE
EXE
WB
37
微电子学研究所李树国
多周期指令的描述(2)
4 clock cycles
IF
DE
EXE
WB IF DE EXE WB
38
微电子学研究所李树国
多周期指令的描述(3)
4 clock cycles
IF
DE
EXE
WB IF DE EXE WB IF DE EXE WB
39
微电子学研究所李树国
指令2 : AND rd, rs, rt ; 操作: rd<---rs AND rt
+4 add add
Address instruction
PC
Instruction memory
Data Register Register Register
Address ALU
Data Memory
Register file
Address ALU
Data Memory
Register file
2
Data
指令的控制逻辑
控制 逻辑
30 微电子学研究所李树国
MIPS数据通路的控制
• 缺少多路选择器MUX • 缺少每条指令的控制 • 控制通过多路选择器来实现
mux
31
微电子学研究所李树国
具有多路选择器和控制逻辑的处理器雏形
– 存储器访问指令(lw, sw)或读或写存储器 (D-Cache) – 算术逻辑指令(add,or,and)一定要把ALU计算 的值写入寄存器堆。 – 转移指令(Beq,J ),或根据ALU比较结果确定 或加4或直接转移到下一定指令地址。
25
微电子学研究所李树国
一个抽象的MIPS数据通路雏形
+4 add
4
阵 列 乘 法 器 可 以 归 纳 为 一 个 单 列 的 数 点 的 化 简
32 个
位
单列数点化简
一个32位二进制位的化简
作业
设计一个32位无符号位的乘法器
要求: (1)给出32位乘法器结构示意图(纯组合逻辑 )
(2)给出采用的路径压缩算法或方法 (3)请给出32位时延报告(精确)和面积报告
一个16位有符号的乘法E和S确定
E=1,若被乘数为正,部分积为正,
或者是被乘数为负,部分积为负 E=0,若被乘数为正,部分积为负, 或者是被乘数为负,部分积为正 S=0, 若部分积为正, S=1,若部分积为负
证明过程,同无符号数的过程相同
乘法阵列wallace树的化简
15 C1 C2 1 C3 C4 ● ● 2 ○ ● ○ ● 3 ○ △ ● ○ 5 ● 14 C1 C2 C3 ● ● ● ○ ● ○ ● ○ △ ● ○ ● 13 C1 C2 C3 ● ● ● ○ ● ○ ● ○ △ ● ○ ● 12 C1 C2 ● ● ● ● ○ ● ○ ● ○ △ ● ○ ● 11 C1 C2 ● ● ● ● ○ ● ○ ● ○ △ ● ○ ● 10 C1 ● ● ● ● ● ○ ● ○ ● ○ △ ● ○ ● 9 C1 ● ● ● ● ● ○ ● ○ ● ○ △ ● ○ ● ● ○ 8 ● ● ● ● ● ● ○ ● ● ○ △ ○ ● ○ △ ● ○ ● ● ● △ △ ● △ △ ● △ △ ● △ ○ ● ● ● ● ● △ △ ● ○ ● ○ ● ○ ● △ ○ ● △ 7 ● ● ● ● 6 ● ● ● ● C4 ● ○ ● ● ○ ● ○ △ ● ○ ● △ ○ ● 5 ● ● ● 4 ● ● ● C3 3 ● ● 2 ● ● C2 1 ● 0 ● C1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
对有符号位的16位乘法
Bit15:最高位即符号位 Bit0:最低位
为了对2M的处理,仍需要17位,来表示
一个16位有符号Booth 2乘法阵列
有符号数的乘法,部分积个数为n/2, 这是因为,乘数最后的Booth编码,要么是“000” 或“111”,这 种编码会造成部分积为0,或-0
微处理器结构与设计
第5次课
微处理器的基本运算逻辑单元的设计
2013年3月27日
一个完整无符号16位乘法阵列
一 个 位 无 符 号
20位
问题 1: 被乘数由16位为什么变成了20位 或19位或16位? 2:乘数由16位变成了19位,为什么?
16
Booth 4
19位
-M的求补处理
19位
乘 法 器
16位
20
微电子学研究所李树国
清华的Mips的指令流水线
IF
MUX EPC EEPC MUX DEPC Exception vector Branch (26)
<<2
DE
Branch PC
EX
MEM
ALN
百度文库
WB
Jump pc Jr rs <<2
connect
31-28
a d d e r
4
NPC ADD
NPC
sel
clo/z
I-TLB
I-TagComp
31
Din Dout
decode
Add rd, rs,rt ; rd <--rs+rt
CPO
RD A_in Sel B_in
MDU
Dout
(HI,LO) Din
Sel
21 流水线结构示意图
微电子学研究所李树国
MIPS的基本实现
22
微电子学研究所李树国
MIPS 指令核心子集
Read_write _address RData Aligner
Read-ICache
IR
imm[15-00] SA[10-06] Br[25-00] [03-00]
imm
ext
16
sa
RT imm
8
m u x
a d d e r
D_cache
m u x
s h i f t e r
。·
D-TLB
D-TagComp