第六课、多周期和微程序微架构

上传人:小** 文档编号:57141479 上传时间:2018-10-19 格式:DOCX 页数:16 大小:3.33MB
返回 下载 相关 举报
第六课、多周期和微程序微架构_第1页
第1页 / 共16页
第六课、多周期和微程序微架构_第2页
第2页 / 共16页
第六课、多周期和微程序微架构_第3页
第3页 / 共16页
第六课、多周期和微程序微架构_第4页
第4页 / 共16页
第六课、多周期和微程序微架构_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《第六课、多周期和微程序微架构》由会员分享,可在线阅读,更多相关《第六课、多周期和微程序微架构(16页珍藏版)》请在金锄头文库上搜索。

1、第六课、多周期和微程序微架构 1、多周期微架构 AS=架构状态 指令开始 步骤 1:在一个周期处理部分指令 步骤 2:在下个指令处理部分指令 . AS=架构状态 一个时钟周期结束 2、指令处理周期 取指 编码 计算地址 取操作码 执行 存结果 3、一个基本的多周期微架构 指令处理周期分为“状态” 在指令处理周期的一个阶段可以采取多种状态 一个多周期微架构从一个状态到另一个状态排列取处理指令 机器的状态的行为是完全由在该状态的控制信号确定 整个处理器的行为完全由一个有限状态机指定 在一个状态(时钟周期),控制信号控制两件事情: 数据通路如何处理数据 如何产生用于下一个时钟周期的控制信号 4、一个

2、时钟周期发生了什么: 当前状态的控制信号控制领个事情 处理数据通路 产生下个周期的控制 数据通路和微程序同时进行 为什么不在当前周期为当前周期产生控制信号:会延长时钟周期 b 5、LC-3b 简单的控制和数据通路 6、一个 LC-3b 状态机 R PC! BaseR To 18 12 To 18 To 18 RR To 18 To 18 To 18 MDR! SR7:0 MDR ! M IR ! MDR R DR! SR1+OP2* set CC DR! SR1&OP2* set CC BEN PC! MDR 32 1 5 0 0 1 To 18 To 18 To 18 RR IR15:12

3、28 30 R7! PC MDR! MMAR set CC BEN! IR11 & N + IR10 & Z + IR9 & P 9 DR! SR1 XOR OP2* 4 22 To 11 1011 JSR JMP BR 1010 To 10 21 20 01 LDB MAR! B+off6 set CC To 18 MAR! B+off6 DR! MDR set CC To 18 MDR! MMAR 25 27 3762 STW STBLEA SHF TRAP XOR AND ADD RTI To 8 set CC set CC DR! PC+LSHF(off9, 1) 14 LDW MAR

4、! B+LSHF(off6,1)MAR! B+LSHF(off6,1) PC! PC+LSHF(off9,1) 33 35 DR! SHF(SR,A,D,amt4) NOTES B+off6 : Base + SEXToffset6 R MDR! MMAR15:10 DR! SEXTBYTE.DATA R 29 31 18, 19 MDR! SR To 18 RR MMAR! MDR 16 23 RR 17 To 19 24 MMAR! MDR* MAR! LSHF(ZEXTIR7:0,1) 15To 18 PC+off9 : PC + SEXToffset9 MAR ! PC PC ! PC

5、 + 2 *OP2 may be SR2 or SEXTimm5 * 15:8 or 7:0 depending on MAR0 IR11 PC! BaseR PC! PC+LSHF(off11,1) R7! PC R7! PC 13 7、LC-3b 数据通路 单总线数据通路的设计 在总线上只有一个值可以是“门”(例如,可以驱动总线) 优势:低的硬件成本:一个总线 缺点:降低并发性 - 如果指令为了两个不同的事情需要总线两次,这些都需要 发生在不同状态 控制信号(其中的 26 根)确定在数据路径上在一个时钟周期发生什么 8、LC-3b 微程序控制结构 三个组成部分: 微指令,控制存储,微程序

6、微指令:用于控制数据通路(其中的 26 根),并帮助确定下一个状态(其中 9 个)控制信号 每个微指令被存储在控制存储中的独特位置(一个特殊的存储器结构) 独特的位置:状态地址对应的微指令 记住每个状态都对应一个微指令 微序列器确定下一个微指令的地址(即,下一状态) Microinstruction R Microsequencer BEN x2 Control Store 6 IR15:11 6 (J, COND, IRD) 269 35 35 微序列器: IRD Address of Next State 6 6 0,0,IR15:12 J5 BranchReady Mode Addr.

7、J0J1J2 COND0COND1 J3J4 RIR11BEN 9、LC-3b 微序列器 该微序列器的目的是确定下一条微指令的地址(即,下一状态) 下一个地址取决于 9 的控制信号(外加 7 个数据信号) 第七课、流水线 1、流水线: 基本理念:多个指令的流水线执行 思路: 将指令处理周期分为不同的处理“阶段” 确保在每个阶段的一个指令的过程中有足够的硬件资源 处理每个阶段不同的指令 好处:增加指令处理的吞吐量(1CPI) 缺点:开始思考这个问题 例子: 2、一个理想的流水线 目标:在成本增加很少的情况下提高吞吐量(硬件成本,如果处理指令) 相同的操作重复 在有大量的不同的输入时相同的操作被重

8、复(例如,所有洗衣过程是通过相同 的步骤) 独立操作的重复:反复操作之间没有相关性 分区均匀子操作:处理可以均匀地分成均匀延时子操作(即不共享资源) 2、流水线指令处理 2.1、单周期微处理器 Shift left 2 PC Instruction memory Read address Instruction 31 0 Data memory Read data Write data Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1

9、511 Instruction 2016 Instruction 2521 Add ALU result Zero Instruction 5 0 MemtoReg ALUOp MemWrite RegWrite MemRead Branch Jump RegDst ALUSrc Instruction 3126 4 M u x Instruction 250 Jump address 31 0 PC+4 3128 Sign extend 1632 Instruction 150 1 M u x 1 0 M u x 0 1 M u x 0 1 ALU control Control Add A

10、LU result M u x 0 10 ALU Shift left 2 2628 Address T BW=(1/T) 分成不同的阶段: 2.2、指令流水线吞吐量: Instruction fetch RegALU Data access Reg 8 ns Instruction fetch RegALU Data access Reg 8 ns Instruction fetch 8 ns Time lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) 24681012141618 2468101214 . Program execution orde

11、r (in instructions) Instruction fetch RegALU Data access Reg Time lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) 2 ns Instruction fetch RegALU Data access Reg 2 ns Instruction fetch RegALU Data access Reg 2 ns2 ns2 ns2 ns2 ns Program execution order (in instructions) 2.3、启用流水线处理:流水线寄存器 Instruction mem

12、ory Address 4 32 0 Add Add result Shift left 2 Instruction IF/IDEX/MEMMEM/WB M u x 0 1 Add PC 0 Write data M u x 1 Registers Read data 1 Read data 2 Read register 1 Read register 2 16 Sign extend Write register Write data Read data 1 ALU result M u x ALU Zero ID/EX Data memory Address 2.4、流水线操作:操作视图

13、 2.4、一个流水线的控制点 对于一个给定的指令 相同的控制信号作为单周期,但需要根据阶段,在不同的周期需要不同控制信 号 选项 1:当编码使用相同的逻辑作为单周期和缓冲信号直到结束 Control EX M WB M WB WB IF/IDID/EXEX/MEMMEM/WB Instruction 选项 2:实现相关“指令字/领域”流水线,在每个或前一阶段进行本地编码 3、数据依赖处理 3.1、如何处理数据依赖 处理流程的依赖性五个基本途径 检测并等待直到数值在寄存器文件中时 检测转发/绕过数据相关的指令 检测和消除在软件层的依赖程度 预测所需要的值,执行“推测”,并验证 做点其他的(细粒度

14、的多线程) 3.2、互锁 在流水线处理器中指令之间依赖性检测是为了保证正确执行 3.3、依赖性检测方法 (I)寄存器计数 寄存器文件中的每个寄存器有与它相关的一个有效位 一个写寄存器复位有效位指令 一个指令在编码阶段检查是否所有的来源和目的寄存器是有效的 优势:简单。每寄存器1 位 缺点:需要将所有类型的依赖进行延时,不仅是数据流 (II)组合依赖检查逻辑 特殊的逻辑检查,是否在以后的阶段有任何指示,都要写入的被编码指令的源 寄存器中 优势:不需要对输入和输出的依赖性进行延时 缺点:逻辑比一个寄存器计数更复杂 逻辑变得更加复杂,使我们让流水线更深更广 第八课、数据流 2:数据和控制依赖处理 1

15、、RAW 依赖处理 2、数据流的安全与不安全移动 3、数据转发路径 Data Forwarding Paths (v1) 30 Registers M u x M u x ALU ID/EXMEM/WB Data memory M u x Forwarding unit EX/MEM b. With forwarding ForwardB Rd EX/MEM.RegisterRd MEM/WB.RegisterRd Rt Rt Rs ForwardA M u x ALU ID/EXMEM/WB Data memory EX/MEM a. No forwarding Registers M u

16、x dist(i,j)=1 dist(i,j)=2 dist(i,j)=3 dist(i,j)=3 internal forward? Based on original figure from P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED. Data Forwarding Paths (v2) 31 Registers M u x M u x ALU ID/EXMEM/WB Data memory M u x Forwarding unit EX/MEM b. With forwarding ForwardB Rd EX/MEM.RegisterRd MEM/WB.RegisterRd Rt Rt Rs ForwardA M u x ALU ID/EXMEM/WB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号