第三章流水线技术 3.1流水线的基本概念 3.2流水线的时空图及性能分析 3.3流水线的相关 34MPSR4000流水线计算机 3.5向量处理机
1 3.1 流水线的基本概念 3.2 流水线的时空图及性能分析 3.3 流水线的相关 3.4 MIPS R4000流水线计算机 3.5 向量处理机
3.1流水线的基本概念 3.1.1有关基本概念 指令的重叠执行 1.一条指令的几个过程段 1)取指令:根据PC(指令计数器)从M(存储 器)取出指令送到R(指令寄存器) 2)译码分析:译出指令的操作性质,准备好 所需数据 3)执行:将准备好的数按译出性质进行处理, 主要涉及AU(算术逻辑运算部件)
2 3.1 流水线的基本概念 l一.指令的重叠执行 l 1.一条指令的几个过程段 l 1)取指令: 根据PC(指令计数器)从M(存储 器)取出指令送到IR(指令寄存器) l 2)译码分析: 译出指令的操作性质,准备好 所需数据 l 3)执行:将准备好的数按译出性质进行处理, 主要涉及ALU(算术逻辑运算部件) 3.1.1有关基本概念
2.对指令执行的几种方式 1)顺序执行(传统机采用) 只有在前一条指令的各过程段全部完成后,才从存储器取 出下一条指令 取译执取译执 条 i+1条
3 2. 对指令执行的几种方式 1)顺序执行 (传统机采用) l 只有在前一条指令的各过程段全部完成后,才从存储器取 出下一条指令 取 译 执 取 译 执 i 条 i +1 条
2)仅两条指令重叠:第i条指令的执行与第i+1条的取指重叠 i条 取译执 i+1条 取译执 3)三条指令重叠:第i条指令的执行与第条的译码及第i+2 条的取指重叠。 条取译执 条取译「执 条 取译执
4 2) 仅两条指令重叠:第i条指令的执行与第i+1条的取指重叠。 3) 三条指令重叠:第i条指令的执行与第i+1条的译码及第i+2 条的取指重叠。 i 条 取 译 执 i+1条 取 译 执 i 条 取 译 执 i+1条 取 译 执 i+2 条 取 译 执
若一条指令的过程段划分更多时,重叠组合方式更多。 重叠解释并不能加快一条指令的实现,但能加快一段程序的 解释。 3.重叠方式中所需时间表达式及所需时间计算 1)条件:设一条指令分为三个过程段,各过程段分别用t取 译、t执表示 执行n条指令,分别采用顺序执行、两条重叠、三条重叠。 2)分别列出上述三种执行方式所需时间表达式 顺序执行n*(t取十译+执) 两条重叠t取+k*t译+(n-1)*(t取,t执)max+t执 条重叠 t取+(t译,t取)max+(m-2)*(t取,t译,t执)max+ (t执,t译)max+t执
5 若一条指令的过程段划分更多时,重叠组合方式更多。 重叠解释并不能加快一条指令的实现,但能加快一段程序的 解释。 1)条件:设一条指令分为三个过程段,各过程段分别用t取、 t译、t执表示。 执行n条指令,分别采用顺序执行、两条重叠、三条重叠。 2)分别列出上述三种执行方式所需时间表达式 顺序执行 n*(t取+t译+t执) 两条重叠 t取+ k* t译+(n-1) *( t取,t执)max+ t执 三条重叠 t取+ ( t译, t取)max+(n-2) *(t取,t译,t执)max+ ( t执, t译)max+ t执
3)例子当n=200,t取=3△t,t译4△t,t执=5△t,时,分别 计算上述三种执行方式的时间。 顺序执行: 200×(3+4+5)=2400△t 两条重叠 3+200×4+(200-1)×5+5=1803△t 三条重叠 3+4+(200-2)×5+5+5=1007△t
6 3) 例子 当n=200,t取=3Δt,t译=4Δt,t执=5Δt,时,分别 计算上述三种执行方式的时间。 顺序执行: 200×(3+4+5)=2400Δt 两条重叠: 3+200×4+(200-1)×5+5=1803Δt 三条重叠: 3+4+(200-2)×5+5+5=1007Δt
4重叠方式需要解决的问题 1)对存储器的频繁访问 ①有哪些访问:取指令、取操作数、存放执行结果,1/0 通道访问 ②希望存储器为多体结构,以适应多种访问源的需要。 ③当存储器为单体结构时,需要将访问源排队,先后顺序 为 取指令、取数据、1/0通道访问、存结果 2)应具有先行控制部件 ①先行:在重叠操作中,当前一条指令在执行过程中就需 要提前取出后面的指令进行相应处理,这种提前取出后 继指令进行相应处理,称为先行
7 4 重叠方式需要解决的问题 1)对存储器的频繁访问 ① 有哪些访问:取指令、取操作数、存放执行结果, I/O 通道访问. ② 希望存储器为多体结构,以适应多种访问源的需要。 ③ 当存储器为单体结构时,需要将访问源排队,先后顺序 为: 取指令、取数据、I/O通道访问、存结果 2)应具有先行控制部件 ① 先行:在重叠操作中,当前一条指令在执行过程中就需 要提前取出后面的指令进行相应处理,这种提前取出后 继指令进行相应处理,称为先行
2)先行控制部件的主要內容 1)先行地址站,包括先行指令地址站和先行操作数地址 站 l)先行指令站,用来存放多条指令; )先行操作数站,用来存放多个操作数; Ⅳ)先行地址形成部件,用来形成先行指令地址以及先行 操作数地址; V)先行操作数译码站,用来完成对多条指令的译码并 保留译码输出状态
8 2) 先行控制部件的主要内容 Ⅰ)先行地址站,包括先行指令地址站和先行操作数地址 站; Ⅱ)先行指令站,用来存放多条指令; Ⅲ)先行操作数站,用来存放多个操作数; Ⅳ)先行地址形成部件,用来形成先行指令地址以及先行 操作数地址; Ⅴ)先行操作数译码站,用来完成对多条指令的译码并 保留译码输出状态
3)也应具有后行部件 后行部件:对指令执行后的结果进行处理的器件,称后行部件 包括: ①后行数地址站,提供后行数存放地址 ②后行数站,存放运行的结果,并且,这些结果需送存储器
9 3)也应具有后行部件 后行部件:对指令执行后的结果进行处理的器件,称后行部件。 包括: ①后行数地址站,提供后行数存放地址。 ②后行数站,存放运行的结果,并且,这些结果需送存储器
后行数站 后行先行先行 算术逻辑运算 数地 指令操作 部件在执行阶 址站||地址数地 存储器 完成各种运 站址站 ALU 地址形成部件 她/先行先行 指令操作 字段站|数站 0字段 先行操作码译码站
10 后行 数地 址站 先行 操作 数地 址站 先行 指令 地址 站 先行 操作 数站 先行 指令 站 存储器 地址形成部件 先行操作码译码站 OP字段 ALU 后行数站 地址 字段 算术逻辑运算 部件在执行阶 段完成各种运 算