当前位置:文档之家› 指令集的实现与流水线结构

指令集的实现与流水线结构


0 funct 6 bits
0 0
25
Computer Architecture Spring 2016
从指令逻辑映射到寄存器传输级(RTL)
• RTL描述了指令在硬件实现上的具体意义 • 所有行为都从指令获取开始
op | rs | rt | rd | shamt | funct = MEM[ PC ]
算术流水线
18
Computer Architecture Spring 2016
算术流水线
19
Computer Architecture Spring 2016
算术流水线
20
Computer Architecture Spring 2016
算术流水线
21
Computer Architecture Spring 2016
• 2. 数据通路的时钟驱动策略 • 3. 整合数据通路以满足各项需求 • 4. 分析各条指令的实现方案以确定寄存器传输过程的控制逻辑 • 5. 整合控制逻辑
24
Computer Architecture Spring 2016
MIPS指令格式
• 所有MIPS指令的宽度都是32 bits. 有三种格式:
2
Computer Architecture Spring 2016
流水线的基本概念
3
Computer Architecture Spring 2016
4
Computer Architecture Spring 2016
5
Computer Architecture Spring 2016
6
Computer Architecture Spring 2016
– Write Enable = 1: 根据address 将Data In bus上的数据写入到 选择相应的数据字上。
• 时钟输入 (CLK)
– 只影响写操作 – 对于读操作,存储器像组合逻辑一样工作:
• Address valid => Data Out
30
Computer Architecture Spring 2016
IN S1
S2
S3
S4
OUT
15
Computer Architecture Spring 2016
理想化的流水线
• Uniform subcomputations. 可以将总体计算任务划分为具有 均匀延迟的子任务。
• Identical computations. 同样的计算任务在流水线上反复执 行。
段空 号间
浮点加
定点乘
8
1 2 3 … … n-1 n 一 二 三 四
7
一二三四五
6
一二三四五六
5
1 2 3 … … n-1 n
4
1 2 3 … … n-1 n
3
1 2 3 … … n-1 n
2
1 2 3 … … n-1 n
1 1 2 3 … … n-1 n
一二三四五六七
时间
动态流水线 12
Computer Architecture Spring 2016
29
Computer Architecture Spring 2016
存储单元:理想存储器
• 理想存储器
Write Enable Address
– 1个输入总线: Data In – 1个输出总线: Data Out • 访存操作
Data In
32 Clk
DataOut 32
– 根据Address 选择相应的数据字输出到Data Out
Computer Architecture Spring 2016
输入
输入
求阶差
求阶差
对阶
对阶
相加
相加
规格化
规格化
相乘
单功累能加流水线
输出
输出
输入
流这
水些











相乘
单功累能加流水线
输出
单功能流水线
多功能流水线(TI ASC)
10
Computer Architecture Spring 2016
它是由两个以上的处理机串行地对同一数据流进行处理,每
个处理机完成一项任务。
13
Computer Architecture Spring 2016
标量流水处理机和向量流水处理机
所谓标量流水处理机(scalar pipelines processor),是指 处理机不具有向量数据表示,仅对标量数据进行流水处理。
段空 号间
8 7 6
浮点加 1 2 3 … … n-1 n
ห้องสมุดไป่ตู้定点乘 一
一二 一二三
5
1 2 3 … … n-1 n
4
1 2 3 … … n-1 n
3
1 2 3 … … n-1 n
2
1 2 3 … … n-1 n
1 1 2 3 … … n-1 n
一二三四
时间
静态流水线 11
Computer Architecture Spring 2016
31
26
21
16
11
6
– R-type
op
6 bits
31
26
rs
5 bits 21
rt
5 bits 16
rd 5 bits
shamt 5 bits
– I-type
op
rs
rt
immediate
– J-type
6 bits
31
26
op
5 bits
5 bits
16 bits
target address
Clk
• 有效 (1): 数据输出更新为输入值
Write Enable
Data In N
MUX
N
N
Data Out N
Clk
28
Computer Architecture Spring 2016
存储单元:寄存器堆
• 寄存器堆(Register File) 32个寄存器组成:
RW RA RB
– 2个32-bit 输出总线:
– RW (number)选择相应的寄存器写入 busW (data) 上的数据, (Enable=1)
• 时钟输入 (CLK)
– 写操作由时钟所控制,必须由时钟边沿来驱动和同步
– 读操作不须等待时钟边沿,选择寄存器,立刻得到其输出值:
• RA or RB valid => busA or busB
4、流水线需要有“填充时间”(第一个任务流出结果所需的时间), 在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出 一个结果;
5、流水技术适合于大量重复的时序过程,只有输入端能连续地提供 任务,流水线的效率才能充分发挥。
8
Computer Architecture Spring 2016
27
Computer Architecture Spring 2016
时序逻辑的表征
• 寄存器
Write Enable
– 由 D Flip Flop构成
• N-bit 输入和输出
Data In
• 具有写有效信号(Write Enable) N
Data Out N
– Write Enable:
• 无效 (0): 数据输出不变
• Independent computations. 各次计算任务直接没有依赖性。
流水线的目的是在相对较少的成本下提升系统的吞吐率。 理想流水线代表了现实流水线所能达到的吞吐率的上界。
16
Computer Architecture Spring 2016
算术流水线
17
Computer Architecture Spring 2016
流水线技术的定义
所谓流水技术,是指将一个重复的时序过程,分解成为若 干个子过程,而每一个子过程都可有效地在其专用功能段上与 其他子过程同时执行。
描述流水线工作的时空图
空 间
工序4 工序3
工序2
工序1
t1 t2 t3 t4 t5 t6 t7
时间
7
Computer Architecture Spring 2016
所谓向量流水处理机( vector pipelines processor),是 指处理机具有向量数据表示,并通过向量指令对向量的各元 素进行处理。
14
Computer Architecture Spring 2016
线性流水线与非线性流水线
a) 线性流水线:流水过程中,从输入至输出每功能段仅 经过一次,不存在反馈。 b) 非线性流水线:存在反馈,某些流水功能段允许被通过 数次。
else PC <– PC + 4
Computer Architecture Spring 2016
组合逻辑的表征
• 加法器
A 32 B 32
Adder
32 Sum Carry
• 多路选择 器
• 算术逻辑 运算单元
Select
A 32 B 32
MUX
32 Y
OP
A 32 B 32
ALU
32 Result
PC <– PC + 4
LOAD R[rt] <– MEM[ R[rs] + sign_ext(Imm16)]; PC <– PC + 4
STORE MEM[ R[rs] + sign_ext(Imm16) ] <– R[rt]; PC <– PC + 4
相关主题