Intel现代CPU结构与技术_第1页
Intel现代CPU结构与技术_第2页
Intel现代CPU结构与技术_第3页
Intel现代CPU结构与技术_第4页
Intel现代CPU结构与技术_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Intel 现代现代CPU 结构与技术结构与技术 东南大学计算机学院东南大学计算机学院 任国林任国林 Email:Email: 2 2021-7-13 讲座内容讲座内容: : CPU CPU结构与性能结构与性能 P CPUP CPU结构与技术结构与技术 P4 CPUP4 CPU结构与技术结构与技术 多核多核CPUCPU结构与技术结构与技术 3 2021-7-13 第一部分第一部分 CPUCPU结构与性能结构与性能 4 2021-7-13 一、一、冯冯诺依曼模型与诺依曼模型与8086 CPU8086 CPU 1 1、冯冯诺依曼模型与程序执行过程诺依曼模型与程序执行过程 冯冯诺依曼模型核心:诺依曼

2、模型核心:存储程序原理存储程序原理 、程序控制流思想 、程序控制流思想 取指阶段取指阶段 译码译码 执行阶段执行阶段 取指令取指令(i)(i)取数取数执行执行写结果写结果 PCPC 当前指令地址当前指令地址(i)(i) IRIR ALUALUIDID 当前指令内容当前指令内容源操作数源操作数目的操作数目的操作数 存储器存储器 存储器为存储器为按地址访问按地址访问的一维线性空间;的一维线性空间; 指令和数据以同等地位存储与指令和数据以同等地位存储与同一存储器同一存储器中中 指令组成指令组成操作码操作码 源源地址码地址码1 1 源源地址码地址码2 2 目的目的地址码地址码 取指令取指令(j)(j)

3、 取指阶段取指阶段 , 回下页 转移型指令、且转移时转移型指令、且转移时 ALUALU 1 1 下条指令地址下条指令地址(j)(j) 回22页回29页 5 2021-7-13 2 2、8086 CPU8086 CPU结构结构 结构特征:结构特征:通用寄存器结构,由通用寄存器结构,由EUEU及及BIUBIU组成;组成; 1616位机器字长、位机器字长、2020位地址、实地址存储管理位地址、实地址存储管理 指令执行过程:指令执行过程:由由串行的串行的IFIF、IDID、OFOF、EXEX、WBWB阶段组成阶段组成 转上页 ALUALU数据总线数据总线(16(16位位) ) 运算锁存器运算锁存器 标

4、志寄存器标志寄存器 译码与译码与 控制控制 执行单元执行单元EU 1 2 3 4 5 6 总线总线 控制控制 逻辑逻辑 指令队列指令队列 Q总线总线 (8位)位) 外部外部 总线总线 总线接口单元总线接口单元BIU CSCS DSDS ESES SSSS IPIP 内部暂存器内部暂存器 数据总线数据总线 8086:168086:16位位 地址总线地址总线20位位 指令指针指令指针 段寄存器段寄存器 AH ALAH AL BH BLBH BL CH CLCH CL DH DLDH DL SPSP BPBP DIDI SISI 通用寄存器通用寄存器 AXAX BXBX CXCX DXDX ALU

5、转9页 6 2021-7-13 二、二、计算机系统性能及影响因素计算机系统性能及影响因素 1 1、计算机系统性能指标计算机系统性能指标 响应时间:响应时间:指从任务输入指从任务输入结果输出的总时间;结果输出的总时间; 即即T T响应 响应=T =TCPU CPU+T +TIO IO, ,T TCPU CPU=I =IN NCPICPIT TC C=I=IN NT T指令 指令, , 其中其中I IN N为程序指令数,指令所需时钟周期数为程序指令数,指令所需时钟周期数CPI=(CPICPI=(CPIi i)/I)/IN N T Tc c 1 1 1 1 1 1 指令执行步骤指令执行步骤 存数存数

6、WBWB 执行执行EX2EX2 执行执行EX1EX1 取数取数OFOF 译码译码IDID 取指取指IFIF 1 1 2 2 2 2 2 2 2 2 2 2 CPICPI1 1T TC C 1 1 CPICPI2 2T TC C 吞吐率:吞吐率:指单位时间内可处理的任务个数。指单位时间内可处理的任务个数。 即即吞吐率吞吐率=n=n(T(TCPU CPU) ),其中 ,其中n n为任务个数为任务个数 回下页回12页 7 2021-7-13 软件因素:软件因素: * *编译程序编译程序源程序源程序目标程序的目标程序的翻译效率翻译效率( (如如I IN N大小大小) ) * *操作系统操作系统软硬件的

7、软硬件的管理效率管理效率( (如多任务切换时间如多任务切换时间) ) 2 2、影响、影响计算机系统性能的因素计算机系统性能的因素 硬件因素:硬件因素: * *指令系统指令系统指令系统指令系统指令的数量及功能指令的数量及功能 * *CPUCPU结构结构指令指令/ /程序的程序的执行效率执行效率( (如步骤、如步骤、CPICPIi i) ) * *存储系统存储系统MEMMEM访问的访问的延迟延迟与与带宽带宽 * *部件组成部件组成功能实现功能实现延迟延迟( (如主频如主频1/T1/TC C) 转上页回下页 时间时间 进程进程1 1 进程进程2 2 操作系统操作系统 硬件资源硬件资源 8 2021-

8、7-13 3 3、提高、提高计算机硬件系统性能的方法计算机硬件系统性能的方法 提高性能的方法:提高性能的方法:更快的速度、更快的速度、并行工作方式并行工作方式; 硬件方面的优化思路:硬件方面的优化思路: * *提高指令系统性能提高指令系统性能增加新功能指令等增加新功能指令等 * *提高主频提高主频改进器件、电路等技术改进器件、电路等技术 * *改进结构改进结构提高提高( (Cycles per Instruction) ) 提高提高( (Instruction Level Parallel) ) * *提高提高OSOS效率效率增加便于增加便于OSOS工作的相应硬件工作的相应硬件 * *提高访存

9、速度提高访存速度选择快速器件、改进选择快速器件、改进MEMMEM结构结构 * *提高提高I/OI/O速度速度采用采用I/OI/O接口、改进接口、改进I/OI/O方式等方式等 转上页 9 2021-7-13 三、三、Intel CPUIntel CPU结构与技术的发展概述结构与技术的发展概述 (1)(1)强化强化CPUCPU部件部件 优化部件性能:优化部件性能:增加增加CPUCPU字长、提高主频、多总线通路;字长、提高主频、多总线通路; 增加指令功能:增加指令功能:扩展指令系统扩展指令系统( (需相应增加硬件需相应增加硬件) ); 1 1、操作级操作级结构与技术的发展结构与技术的发展 内部总线内

10、部总线 ( (多总线多总线) ) 控制器控制器指令队列指令队列 总线接口单元总线接口单元BIU BIU 译码器译码器 寄存器组寄存器组 加法器加法器 浮点部件浮点部件 乘法器乘法器 转移部件转移部件 16b32b16b32b 16b32b16b32b 外部总线外部总线 转5页(单总线) 10 2021-7-13 (2)(2)改进存储系统改进存储系统 采用虚拟存储器:采用虚拟存储器:有效有效支持多任务支持多任务OSOS( (减轻程序员负担减轻程序员负担) ); 增设快表增设快表提高地址变换速度。提高地址变换速度。 回下页 程序程序 代码段数据段其他段代码段数据段其他段 X X 主存主存 快表快表

11、TLBTLB(Translation lookside Buffer)(Translation lookside Buffer) M OSOS 的的 存存 储储 管管 理理 表表 逻辑逻辑 地址地址 物理地址物理地址 C C A A TLBTLB为 为OS OS管理表的子集 管理表的子集 程序程序n n 代码段数据段其他段代码段数据段其他段 主存中主存中 CPUCPU中中 11 2021-7-13 增设增设CacheCache多级多级CacheCache: 利用利用程序访存局部性规律程序访存局部性规律,提高,提高访存速度访存速度( (弱化弱化CPU-MEMCPU-MEM 瓶颈瓶颈) )及及性能

12、性能- -价格比价格比( (容量容量Cache Cache 容量容量MEM MEM) )。 。 改善系统总线性能:改善系统总线性能: 提高总线提高总线时钟频率时钟频率、增加、增加A/DA/D宽度宽度、多级总线多级总线等等 越靠近越靠近CPUCPU速度越快速度越快 内部总线内部总线 ( (多总线多总线) ) 控制器控制器指令队列指令队列 总线接口单元总线接口单元BIU BIU 译码器译码器 寄存器组寄存器组 加法器加法器 浮点部件浮点部件 乘法器乘法器 转移部件转移部件 32b32b 外部总线外部总线 TLBTLB L2 CacheL2 Cache L1 CacheL1 Cache 转上页回17

13、页 12 2021-7-13 (3)(3)改进改进CPUCPU结构结构 开发开发操作级操作级并行性:并行性:有有流水线流水线及及超级流水线超级流水线技术;技术; 流水线技术:流水线技术:指令执行各步骤重叠,减少程序执行时间指令执行各步骤重叠,减少程序执行时间; ; 需解决问题:需解决问题:结构相关结构相关( (资源使用冲突资源使用冲突) ); 指令间的指令间的数据相关数据相关及及控制相关控制相关; 提高提高执行部件执行部件EXEX利用率利用率。 转6页回下页回14页 0 1 2 3 4 5 6 7 普通流水线:普通流水线:ILP(1,1)ILP(1,1) T TCPU CPU=5+(I =5+

14、(IN N-1)-1)* *T TC C 1 1 3 3 z z2 2 段段 WBWB EX2EX2 EX1EX1 OFOF IDID IFIF 2 23 3z z 说明:说明:ILP(m,n)-mILP(m,n)-m为同时启动的指令或操作,为同时启动的指令或操作,n n为每个为每个TcTc启动次数。启动次数。 1 12 2z z 0 1 2 3 4 5 段段 1 1 2 2 3 3 4 4 5 5 6 6 z z 1 1 2 2 3 3 4 4 5 5 6 6 z z 1 1 2 2 3 3 4 4 5 5 6 6 z z 1 12 23 3 1 12 23 3z z1 1 2 2 3 3

15、4 4 5 5 6 6 z z 1 1 2 2 3 3 4 4 5 5 6 6 z z WBWB EX2EX2 EX1EX1 OFOF IDID IFIF T TC CT TC C 超级流水线:超级流水线:ILP(1,2)ILP(1,2) T TCPU CPU=5+(I =5+(IN N-1)-1)* *(T(TC C/2)/2) 回17页 13 2021-7-13 开发开发指令级指令级并行性:并行性:有有VLIWVLIW、超标量、超标量、SIMDSIMD等技术;等技术; 2 2、指令级指令级结构与技术的发展结构与技术的发展 VLIWVLIW技术:技术:流水指令包含流水指令包含多种操作多种操作

16、,提高,提高EXEX的利用率;的利用率; 需解决问题需解决问题( (新增新增) ): 目标代码效率目标代码效率( (即即编译编译 程序程序效率效率) )。 VLIWVLIW已基本不用已基本不用 指令中操作字段:指令中操作字段:LD/ST1LD/ST1LD/ST2LD/ST2FADDFADDFMULFMUL 主主 存存 RF (RF (寄存器堆寄存器堆) ) LD/ST1LD/ST1 VLIW VLIW 结构结构 示例:示例: LD/ST2LD/ST2FADDFADDFMULFMUL 0 1 2 3 4 5 6 7 VLIWVLIW流水线:流水线:ILP(2,1)ILP(2,1) 1 1 3 3

17、 n n2 2 段段 WBWB EX2EX2 EX1EX1 OFOF IDID IFIF 2 23 3n n 1 12 2n n 1 12 23 3n n 1 12 23 3n n T TC C 1 1空空 空空 转上页回下页 14 2021-7-13 T TC C 0 1 2 3 4 5 6 7 超标量流水线:超标量流水线:ILP(2,1)ILP(2,1) 1 13 35 5 n-1n-1 2 24 4空空n n 1 13 35 5 n-1n-1 2 24 4空空n n 段段 WB2WB2 WB1WB1 EX2EX2 EX1EX1 OF2OF2 OF1OF1 ID2ID2 ID1ID1 IF

18、2IF2 IF1IF1 1 13 35 5 n-1n-1 2 24 4空空n n 1 13 35 5 n-1n-1 2 24 4空空n n 1 13 35 5 n-1n-1 2 24 4空空n n 0 1 2 3 4 5 6 7 SIMDSIMD流水线:流水线:ILP(2,1)ILP(2,1) D11D11 空空 Dn1Dn1D21D21 段段 WBWB EXEX OFOF IDID IFIF 2 23 3n n 1 12 2n n 1 12 23 3n n 1 12 23 3n n T TC C D12D12 D22D22 空空 Dn2Dn2 需解决问题需解决问题( (新增新增) ): 数据

19、存取宽度;数据存取宽度; 支持新数据类型。支持新数据类型。 需解决问题需解决问题( (新增新增) ): 多多I I、D D并行存取并行存取; 更严重的更严重的数据相关数据相关. . 超标量流水技术:超标量流水技术: 多条指令多条指令并行流水;并行流水; SIMDSIMD流水技术:流水技术:流水指流水指 令可处理令可处理多个数据多个数据; 转上页转12页(单流水线) 15 2021-7-13 开发开发程序级程序级并行性:并行性:有多线程有多线程(MT)(MT)、超线程超线程(HT)(HT)等技术等技术 即同时多线程即同时多线程(SMT)(SMT) ALUsALUs + + CUCU CacheC

20、ache PCPC REGsREGs PSWPSW 单线程单线程(ST)CPU(ST)CPU 回下页 3 3、程序级程序级结构与技术的发展结构与技术的发展 P1P1 P2P2 P3P3 OSOS t t 单线程单线程CPUCPU ALUsALUs + + CUCU CacheCache PCPC REGsREGs PSWPSW PCPC REGsREGs PSWPSW 多线程多线程(MT)CPU(MT)CPU ALUsALUs + + CUCU CacheCache PCPC REGsREGs PSWPSW PCPC REGsREGs PSWPSW 超线程超线程(HT)CPU(HT)CPU L

21、ogical CPU PointerLogical CPU Pointer 超线程超线程CPUCPU 功能部功能部 件无使件无使 用冲突用冲突 多线程多线程CPUCPU T T切换 切换减小 减小 回47页 回68页 16 2021-7-13 4 4、CPUCPU级级结构与技术的发展结构与技术的发展 开发开发CPUCPU级并行性:级并行性:有多有多CPUCPU、多核、多核CPUCPU等技术;等技术; CoreCore L1 CacheL1 Cache L2 CacheL2 Cache BIUBIU CoreCore L1 CacheL1 Cache L2 CacheL2 Cache BIUBI

22、U Dual CPUDual CPU ( (如如Dual Xeon)Dual Xeon) CoreCore 0 0 L1 CacheL1 Cache L2 CacheL2 Cache BIUBIU CoreCore 1 1 L1 CacheL1 Cache L2 CacheL2 Cache BIUBIU Dual Core CPUDual Core CPU ( (如如Pentium D 800Pentium D 800) ) CoreCore 0 0 L1 CacheL1 Cache L2 CacheL2 Cache BIUBIU CoreCore 1 1 L1 CacheL1 Cache C

23、ore 2 Duo CPUCore 2 Duo CPU ( (如如Core 2 Duo E6300Core 2 Duo E6300) ) 多核多核CPUCPU与超线程与超线程CPUCPU: * *超线程超线程CPUCPU多个逻辑多个逻辑CPUCPU( (要求资源使用不冲突要求资源使用不冲突) ); * *多核多核CPUCPU多个物理多个物理CPUCPU( (资源使用不会冲突资源使用不会冲突) )。 转上页 17 2021-7-13 1 1、流水线的、流水线的结构相关结构相关处理处理 L1 CacheL1 Cache采用哈佛结构:采用哈佛结构:即即I-CacheI-Cache、D-CacheD-

24、Cache分离;分离; 转12页(结构相关)转11页(L1) 四、四、流水线实现时的相关处理流水线实现时的相关处理 总线接口单元总线接口单元 寄存器组寄存器组 ALUsALUs L1 I-CacheL1 I-Cache L1 D-CacheL1 D-Cache L2 CacheL2 Cache 主存主存 控制器控制器指令队列指令队列译码器译码器 内部总线内部总线 ( (多总线多总线) ) 取指取指译码译码取数取数执行执行写回写回指令流水线段指令流水线段 回下页 * *效果效果避免了避免了取指段取指段与与取数段取数段/ /写回段写回段间的间的操作冲突操作冲突, 减轻了减轻了L1 CacheL1

25、Cache与与L2 CacheL2 Cache间的间的访问冲突概率访问冲突概率. . 18 2021-7-13 增设指令预取缓冲器及数据存储缓冲器:增设指令预取缓冲器及数据存储缓冲器: * *指令预取缓冲器指令预取缓冲器取指段取指段与与数据段数据段L1L1级级 CacheCache不命中时不命中时的的访问冲突概率访问冲突概率; * *数据存储缓冲器数据存储缓冲器实现实现“零等待写零等待写”,避免了流水线,避免了流水线 中中取数段取数段与与写回段写回段的的操作冲突操作冲突。 零等待写零等待写写无延迟,写无延迟,无取无取CacheCache操作时操作时再写再写 转上页 L1 CacheL1 Cac

26、he冲突处理:冲突处理:I-CacheI-Cache的访问优先级的访问优先级D-CacheD-Cache。 预取流式缓冲器预取流式缓冲器 总线接口单元总线接口单元 寄存器组寄存器组 ALUsALUs 取数取数 部件部件 L1 I-CacheL1 I-Cache L1 D-CacheL1 D-Cache 存储顺序缓冲器存储顺序缓冲器 存数存数 部件部件 L2 CacheL2 Cache 主存主存 控制器控制器指令队列指令队列译码器译码器 内部总线内部总线 19 2021-7-13 处理方法:处理方法:有后推法、相关专用通路法、异步流动法有后推法、相关专用通路法、异步流动法3 3种种 回下页 2

27、2、流水线的、流水线的数据相关数据相关处理处理 1 2 3 4 5 6 1 2 3 4 5 6 I1I1:R1R1=R2+R3 IF ID EX MEM WB=R2+R3 IF ID EX MEM WB I2I2:R4=R4=R1R1* *R5 IF ID EX MEM WBR5 IF ID EX MEM WB 指令指令 拍拍 读读R1R1 写写R1R1 (1)(1)先写后读先写后读(RAW)(RAW)相关及处理相关及处理 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 I1 IF ID EX MEM WBI1 IF ID EX MEM WB I2 IF ID ID EX ME

28、M WBI2 IF ID ID EX MEM WB I3 IF IF ID EX MEMI3 IF IF ID EX MEM I 拍拍 相关专用通路法相关专用通路法 IFIFIDIDEXEXMEMMEMWBWB 流水线控制器流水线控制器 MUXMUX 相关专用通路相关专用通路 回32页 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 I1 IF ID EX MEM WBI1 IF ID EX MEM WB I2 IF ID ID EX MEM WBI2 IF ID ID EX MEM WB I3 IF IF ID EX MEMI3 IF IF ID EX MEM I 拍

29、拍 后推法后推法,直到相关消除,直到相关消除 IFIFIDIDEXEXMEMMEMWBWB 流水线控制器流水线控制器 20 2021-7-13 转上页 (2)(2)先读后写先读后写(WAR)(WAR)及写及写- -写写(WAW)(WAW)相关及处理相关及处理 WARWAR及及WAWWAW数据相关因采用数据相关因采用异步流动法异步流动法而产生而产生( (见上图见上图) )。 产生产生WARWAR相关相关 产生产生WAWWAW相关相关 处理方法:处理方法:动态调度方法动态调度方法即存在即存在RAWRAW、WARWAR、WAWWAW相关的相关的 指令指令等待等待,无相关指令,无相关指令先执行先执行,

30、避免了,避免了WARWAR、WAWWAW相关。相关。 * *结构需求结构需求用指令窗口暂存的是已译码指令串,用指令窗口暂存的是已译码指令串, 取指取指/ /译码译码(IF/ID)(IF/ID)速度执行速度执行(EX)(EX)速度。速度。 回32页 指令窗口指令窗口 ( (就绪指令先就绪指令先EX)EX) 异步流动异步流动( (乱序执行乱序执行) )法法无相关指令先执行,无相关指令先执行, IFIFIDIDEXEXMEMMEMWBWB 流水线控制器流水线控制器 顺序进入顺序进入顺序顺序 I1: I1: R3R3=R1+R2=R1+R2 I2: I2: R4R4= =R3R3+ +R5R5 I3:

31、 I3: R5R5=R1=R1* *R2R2 I4: I4: R4R4=R2+R6=R2+R6 异步流出异步流出顺序顺序 I1: I1: R3R3=R1+R2=R1+R2 I3: I3: R5R5=R1=R1* *R2R2 I4: I4: R4R4=R2+R6=R2+R6 I2: I2: R4R4= =R3R3+ +R5R5 21 2021-7-13 处理方法:处理方法:后推法、优化延迟转移法、预测后推法、优化延迟转移法、预测( (猜测猜测) )法;法; 预测测法:预测测法:有静态预测法、动态预测法两种;有静态预测法、动态预测法两种; * *静态预测静态预测按按指令类型指令类型或或寻址方式寻址

32、方式猜测转移方向猜测转移方向 * *动态预测动态预测按分支指令按分支指令执行历史执行历史猜测转移方向猜测转移方向 * *应用应用有历史的分支指令有历史的分支指令用动态法,否则用静态法用动态法,否则用静态法 3 3、流水线的、流水线的控制相关控制相关处理处理 1 2 3 4 5 6 7 1 2 3 4 5 6 7 顺序型顺序型 I1:CMP R1I1:CMP R1,R2 IF ID EX MEM WBR2 IF ID EX MEM WB 转移型转移型 I2:JNZ TEST1 IF ID EX MEM WBI2:JNZ TEST1 IF ID EX MEM WB 顺序型顺序型 IxIx:? IF

33、:? IF 拍拍 需要新需要新PCPC PCPC地址地址x x 指令指令 注:转移型指令只需要注:转移型指令只需要4 4拍即可完成指令拍即可完成指令( (在在MEMMEM段写段写PC)PC) IF IDIF ID 后推法:后推法:取指部件一直等待,直到相关消除取指部件一直等待,直到相关消除( (见上图见上图) ); 22 2021-7-13 ( (分支分支) )预测法实现原理:预测法实现原理: * *转移历史保存转移历史保存用用转移目标缓冲器转移目标缓冲器BTBBTB保存;保存; * *猜测实现猜测实现IFIF段或段或IDID段段预测方向,预测方向,EXEX段段更新转移历史更新转移历史; ;

34、执行段执行段(EX)(EX) 取指段取指段(IF)(IF) 不命中不命中 PCPC 查查BTBBTB表表 (IAddr(IAddr段段) ) 静态预测静态预测 ( (按按IRIR内容内容) ) 更新转移历史更新转移历史(HI)(HI) 命中命中 预测不转移预测不转移 预测转移预测转移 PC(TAddrPC(TAddr段段) ) 译码段译码段(ID)(ID) 误预测误预测 处理处理 (PC=(PC=预测的预测的 反方向地址反方向地址) ) 预测正确预测正确 IF段猜错段猜错 IF段猜对段猜对 是转移是转移 指令指令 动态预测动态预测 ( (按按HIHI段段) ) PC(PC)+1PC(PC)+1

35、 BTBBTB中建新中建新 指令信息行指令信息行 行号行号 转移结果转移结果预测错误预测错误 0 0 * * * * * * * * * 1 aa xy ee 1 aa xy ee 有效位有效位(AV) (AV) 转移指令地址转移指令地址(IAddr) (IAddr) 历史位历史位(HI) (HI) 转移目标地址转移目标地址(TAddr) (TAddr) BTBBTB: 大小大小 固定固定 回28页转4页(PC) 23 2021-7-13 * *预测算法预测算法静态预测算法静态预测算法( (下表下表) ),动态预测算法动态预测算法( (下图下图) ) 相对相对PCPC寻址方式寻址方式非相对非相

36、对PCPC寻址方式寻址方式 预测预测转移转移转移地址转移地址比比PCPC小的小的指令指令 CALL/RETCALL/RET类型类型指令指令 预测预测不转移不转移转移地址转移地址比比PCPC大的大的指令指令 非非CALL/RETCALL/RET类型指令类型指令 结果结果: :不转移不转移 历史位:历史位:1010 预测:预测:转移转移 历史位:历史位:1111 预测:预测:转移转移 历史位:历史位:0000 预测:预测:不转移不转移 历史位:历史位:0101 预测:预测:不转移不转移 结果结果: :转移转移 结果结果: :不转移不转移 结果结果: :转移转移 结果结果: :转移转移结果结果: :

37、不转移不转移 结果结果: :不转移不转移 结果结果: :转移转移 * *预测法的后续处理预测法的后续处理 用用后援寄存器后援寄存器保存保存可能被破坏的状态可能被破坏的状态( (及数据及数据) ); 预测指令的执行预测指令的执行只完成到只完成到执行段执行段(EX)(EX)。 确认确认预测正确后才进行预测正确后才进行写回段写回段(WB)(WB) 24 2021-7-13 第二部分第二部分 P CPUP CPU结构与技术结构与技术 25 2021-7-13 结构特征:结构特征: * *哈佛结构哈佛结构I-CacheI-Cache、D-CacheD-Cache分离分离(Pentium(Pentium已

38、有已有) ) * *双独立总线双独立总线( (DIB)DIB)结构结构MEMMEM总线与总线与L2 CacheL2 Cache总线并行总线并行 * *动态执行技术动态执行技术由由多路分支预测多路分支预测、数据流分析数据流分析、推测推测 执行执行3 3大技术组成大技术组成 * *超标量流水结构超标量流水结构3 3路超标量、路超标量、1212级流水结构级流水结构 转下页 一、一、P CPUP CPU结构特征结构特征 回28页 回37页 26 2021-7-13 回上页 回37页 回39页 回44页 ITLBITLBL1 I-CacheL1 I-Cache 预取预取Buffer/Buffer/预译码

39、预译码 指令预取单元指令预取单元 译码器译码器0 0uCodeuCode ROMROM uop Bufferuop Buffer RAT/RAT/分配器分配器 再定序缓冲器再定序缓冲器ROB(40ROB(40项项) ) 保留站保留站RSRS L2 L2 CacheCache DTLBDTLBL1 D-CacheL1 D-Cache MOBMOB LoadLoad AddrAddr复杂复杂 ALUALU FPUFPU MMXMMX ALUALU MMXMMX乘法乘法 BIUBIU 4uop4uop RRFRRF 简单简单 ALUALU JEUJEU Port0Port0 MEMMEM 译码器译码

40、器1 1译码器译码器2 2 前端前端 总线总线 后端后端 总线总线 P(P6P(P6核心核心) )内部结构图内部结构图 1uop1uop1uop1uop 3uop3uop 3uop3uop 3uop3uop 3uop3uop Port1Port1 MMXMMX ALUALU MMXMMX移位移位 StoreStore AddrAddr StoreStore DataData Port4Port4Port3Port3Port2Port2 64bit64bit64bit64bit 64bit64bit 64bit64bit 回下页 回36页 27 2021-7-13 CPUCPU CoreCore

41、 L1 I-CacheL1 I-Cache L1 D-CacheL1 D-Cache L2 Cache CacheL2 Cache Cache 控制器控制器 阵列阵列 CacheCache总线总线 BIUBIU 主存主存 MEMMEM 控制器控制器 阵列阵列 MEMMEM总线总线 PentiumPentium的的CacheCache结构:结构:贯通式贯通式CacheCache( (不命中时再访问主存不命中时再访问主存) ); ; T TCPU CPU访存命中访存命中Cache Cache =T =TMEM MEM地址地址CacheCache地址变换地址变换+T +TCache Cache阵列阵

42、列 T TCPU CPU访存不命中访存不命中CacheCache=T =TMEM MEM地址地址CacheCache地址变换地址变换+T +TMEM MEM阵列阵列+T +TCache Cache阵列阵列 PP的的CacheCache结构:结构:DIBDIB结构的结构的CacheCache(BIU(BIU以以2 2种频率同时访问种频率同时访问) ) T TCPU CPU访存命中访存命中Cache Cache =T =TMEM MEM地址地址CacheCache地址变换地址变换+T +TCache Cache阵列阵列 T TCPU CPU访存不命中访存不命中CacheCache=T =TMEM

43、MEM阵列阵列 CPUCPU CoreCore L1 I-CacheL1 I-Cache L1 D-CacheL1 D-Cache L2 Cache CacheL2 Cache Cache 控制器控制器 阵列阵列 后端总线后端总线 BIUBIU 主存主存 MEMMEM 控制器控制器 阵列阵列 前端总线前端总线(MEM(MEM总线总线) )CacheCache命中命中 二、二、P CPUP CPU的双独立总线的双独立总线(DIB)(DIB)结构结构 转上页 28 2021-7-13 三、三、P CPUP CPU的动态执行技术的动态执行技术 1 1、多路分支预测技术、多路分支预测技术 基本原理基本

44、原理( (回顾回顾) ): * *指令预取时指令预取时用指令地址查用指令地址查BTBBTB命中时,采用命中时,采用动态预动态预 测法测法预取后继指令;预取后继指令; * *指令译码时指令译码时对对BTBBTB不命中的转移指令,采用不命中的转移指令,采用静态预静态预 测法测法( (同时在同时在BTBBTB中建立新行中建立新行) )预取后继指令;预取后继指令; * *指令执行完成时指令执行完成时更新转移指令的转移历史,更新转移指令的转移历史, 误预测时需进行相应处理。误预测时需进行相应处理。 即允许多个分支指令即允许多个分支指令( (转移指令转移指令) )的预测指令流在的预测指令流在CPUCPU中

45、执中执 行,是行,是PentiumPentium分支预测技术的发展。分支预测技术的发展。 转25页(3点)转22页(预测过程) 29 2021-7-13 2 2、数据流分析技术、数据流分析技术乱序执行技术乱序执行技术 (1)(1)乱序执行思想乱序执行思想 取指取指 流水线例流水线例: :译码译码取数取数执行执行写回写回 乱序执行思想:乱序执行思想:用用指令窗口指令窗口按序保存按序保存多条指令;多条指令; 优先执行优先执行操作数就绪的指令操作数就绪的指令( (数据流技术数据流技术) ) CacheCache或主存或主存 ALUsALUs ( (一条一条I)I) 译码器译码器 ( (一条一条I)I

46、) 寄存器组寄存器组 按序按序 取指部件取指部件 取数部件取数部件 存数存数 部件部件 PCPC 按序按序 指缓指缓 ( (多条多条I)I) 按序流水按序流水 过程过程: : CacheCache或主存或主存 ALUsALUs ( (一条一条I)I) 译码器译码器 ( (一条一条I)I) 寄存器组寄存器组 按序按序 取指部件取指部件 取数取数 部件部件存数部件存数部件 PCPC 乱序乱序 指令缓指令缓 ( (多条多条I)I) 指令窗口指令窗口 ( (多条多条I)I) 取数缓取数缓( (多个多个D)D) 存数缓存数缓 ( (多个多个D)D) 转4页(PC及指令格式)回下页 30 2021-7-1

47、3 (2)(2)分布式动态调度技术分布式动态调度技术(Tomasulo(Tomasulo算法算法) ) 核心是用核心是用寄存器重命名方法寄存器重命名方法解决解决RAWRAW、WARWAR、WAWWAW相关。相关。 分布式分布式动态调度思想:动态调度思想:-即调度机制即调度机制分散分散在各部件中在各部件中 指令指令放入放入保留站保留站RSRS、指令数据需求指令数据需求放入放入相应部件相应部件; 指令间数据关系指令间数据关系部件间关系部件间关系 各部件各部件独立控制独立控制数据输入数据输入/ /输出输出( (数据就绪时数据就绪时) )。 转上页回下页回35页 CacheCache或主存或主存 控制

48、控制 ALUsALUs ( (一条一条I)I) 指令缓冲器指令缓冲器 ( (多条多条I)I) 译码器译码器 ( (一条一条I)I) 保留站保留站RSRS ( (多条多条I)I) 存数缓存数缓 冲器冲器SDBSDB 寄存器组寄存器组 FLRFLR ( (按序按序) )( (按序按序) )( (乱序乱序) ) 取指部件取指部件 控制控制 控制控制 控制控制 取数缓取数缓 冲器冲器FLBFLB 取数部件取数部件存数部件存数部件 源地址源地址 目的目的 地址地址PCPC 31 2021-7-13 分布式动态调度分布式动态调度CPUCPU基本结构图:基本结构图: 转上页回下页 加法器加法器乘乘/ /除法

49、器除法器 A1A1 A2A2 A3A3 保留站保留站 M1M1 M2M2 译码器译码器 站号站号 01100110 00100010 00010001 取指部件取指部件 BIU(CacheBIU(Cache或主存或主存) ) 站号站号 10101010 10111011 11001100 站号站号 10001000 10011001 站号站号 源源1 1值值 站号站号 源源2 2值值 控制控制站号站号 源源1 1值值 站号站号 源源2 2值值 控制控制 地址地址 控制控制 取数缓冲取数缓冲 器器FLBFLB 控制控制 忙位忙位 站号站号 地址地址 数据数据 存数缓冲器存数缓冲器SDBSDB 指

50、令队列指令队列 公共数据总线公共数据总线 CDBCDB F7F7 F0F0 忙位忙位 站号站号 数据数据 寄存器寄存器FLRFLR FLRFLR总线总线 取数部件取数部件取数部件取数部件 注:采用注:采用分布式保留站分布式保留站便于减少保留站便于减少保留站-ALU-ALU的延迟的延迟 回33页 回34页 32 2021-7-13 * *指令数据关系指令数据关系部件关系的实现部件关系的实现 数据产生部件数据产生部件(RS/FLB)(RS/FLB):标有标有站号站号( (指示数据所在位置指示数据所在位置) ), 数据接收数据接收/ /存储部件存储部件(RS/SDB/FLR)(RS/SDB/FLR)

51、:设有设有站号项站号项及及忙位忙位. . 注:注:站号项站号项指示所接收数据的对应数据产生部件指示所接收数据的对应数据产生部件 忙忙 位位=1=1时,数据项无效时,数据项无效( (尚未接收尚未接收 前趋指令未完成前趋指令未完成) =0=0时,数据项可用时,数据项可用( (已接收已接收 从从站号项站号项部件处部件处) * *当前指令译码时的控制器动作当前指令译码时的控制器动作 指令操作指令操作:在在RSRS中占用中占用一行一行( (数据就绪时送数据就绪时送ALU)ALU); 源操作数源操作数:将相应部件的将相应部件的数据项数据项放入放入RSRS; 如如对应对应REGREG忙位忙位=0=0时时,指

52、令所在,指令所在RSRS行源行源1 1值值对应对应REGREG数据项数据项 对应对应REGREG忙位忙位=1=1时时,产生了,产生了RAWRAW相关相关 转上页 目的操作数目的操作数:设置相应接收部件设置相应接收部件的的站号项站号项及及忙位忙位。 如如对应对应REGREG忙位忙位=0=0时时,站号项站号项指令所在指令所在RSRS站号、站号、忙位忙位1 1 对应对应REGREG忙位忙位=1=1时时,产生了,产生了WAWWAW相关相关 转19页 转20页 回下页 33 2021-7-13 RAWRAW、WARWAR、WAWWAW相关的检测及调度准备:相关的检测及调度准备: * *RAWRAW相关的

53、检测及调度准备相关的检测及调度准备( (当前指令当前指令) )译码时译码时 相关存在条件相关存在条件指令源操作数指令源操作数对应的对应的REGREG忙位忙位=1=1时时; 调度准备调度准备取取REGREG的站号项的站号项到到RSRS中;中; 直接直接取源头数据取源头数据( (REGREG重命名重命名) ) 控制器的动作控制器的动作 同时接收同时接收CDB(CDB(相关专用通路法相关专用通路法) ) * *WARWAR相关的检测与消除相关的检测与消除( (当前指令当前指令) )译码时译码时 相关存在条件相关存在条件指令源操作数指令源操作数对应的对应的REGREG忙位忙位=0=0时时; 调度准备调

54、度准备取取REGREG的数据项的数据项到到RSRS中;中; 乱序执行乱序执行不影响不影响当前指令当前指令( (WARWAR相关消除相关消除) ) * *WAWWAW相关的检测与消除相关的检测与消除译码时译码时 相关存在条件相关存在条件指令目的操作数指令目的操作数对应的对应的REGREG忙位忙位=1=1时时; 调度准备调度准备REGREG的站号项的站号项指令对应指令对应RSRS站号站号( (忙位忙位已已=1)=1) REGREG只接收只接收最后指令的数据最后指令的数据( (REGREG重命名重命名) ) 转上页转31页(图)回下页 三角债中间者还借条三角债中间者还借条 钱落袋为安钱落袋为安 再借

55、钱时作废旧借条再借钱时作废旧借条 34 2021-7-13 动态调度的实现:动态调度的实现:-派遣次序即执行次序派遣次序即执行次序 * *乱序派遣实现乱序派遣实现RSRS使使操作数已就绪操作数已就绪的的指令被派遣指令被派遣; * *RAWRAW相关后推法实现相关后推法实现RSRS使使操作数未就绪操作数未就绪的的指令等待指令等待。 F1F1站号项站号项00010001( (等待接收等待接收 访存有延迟访存有延迟FLB1FLB1的数据的数据) ) F1F1忙位项忙位项1 1( (操作未完成、操作未完成、数据不可用数据不可用) ) M1M1源源1 1站号项站号项00010001( (直接接收直接接收

56、FLB1FLB1,REGREG重命名重命名; 用用CDBCDB同时接收同时接收,相关专用通路法相关专用通路法) ) M1M1源源2 2站号项站号项00100010( (等待接收等待接收FLB2FLB2的数据的数据) ) M2M2源源1 1值项值项F2F2数据项、源数据项、源2 2值项值项F3F3数据项数据项 F4F4站号项站号项10011001(M2(M2站号,接收站号,接收M2M2结果结果) )、F4F4忙位项忙位项1 1 I1I1:F1(FLB1):F1(FLB1) I2I2:F1(F1):F1(F1)* *(FLB2)(FLB2) I3:F4(F2)I3:F4(F2)* *(F3)(F3

57、) 指令序列指令序列 译码时的控制器动作译码时的控制器动作( (调度准备调度准备) ) F1F1站号项站号项10001000(M1(M1站号,站号,只接收只接收M1M1结果,结果,REGREG重命名重命名) ) F1F1忙位项忙位项1 1( (操作未完成、操作未完成、数据不可用数据不可用) ) RSRS的调度结果:的调度结果:M2(I3)M2(I3)先于先于M1(I2)M1(I2)执行执行( (乱序派遣乱序派遣 数据流分析数据流分析+后推法后推法) ) 转31页(图)转上页 35 2021-7-13 3 3、推测执行技术、推测执行技术 目标:目标:支持支持多路分支预测技术多路分支预测技术及及数

58、据流分析技术数据流分析技术。 思想:思想:允许允许用预测方法取用预测方法取指令、并允许指令、并允许乱序执行乱序执行; 指令必须指令必须按序确认按序确认后再后再写结果写结果。 实现:实现:用用ROBROB作指令窗口,实现作指令窗口,实现动态调度动态调度及及暂存结果暂存结果; 用用“确认确认”段段实现实现误预测处理误预测处理或或传递结果传递结果。 转30页回下页回37页 ALUs(ALUs(一条一条I)I) 指令缓冲指令缓冲 器器( (多条多条I)I) 译码器译码器 ( (一条一条I)I) 保留站保留站RS(RS(多条多条I)I) 寄存器组寄存器组FLRFLR 按序按序 取指部件取指部件取数部件取

59、数部件存数部件存数部件 分支分支 预测预测 PCPC 按序按序 乱序乱序 乱序乱序 源地址源地址 目的地址目的地址 存数缓存数缓 冲冲SDBSDB 取数缓冲取数缓冲FLBFLB 注:注:保留站保留站RSRS已已等价于等价于就绪指令队列就绪指令队列,为减少,为减少ROB-ALUROB-ALU间延迟而设置间延迟而设置 再定序再定序缓冲器缓冲器ROBROB ( (多条多条I)I)指令窗口指令窗口 确认确认 ( (一条一条I)I) 乱序乱序 按序按序 行号行号 临时临时FLRFLR 36 2021-7-13 支持推测执行的支持推测执行的CPUCPU结构及结构及“确认确认”段段: 转上页回下页回44页转

60、26页(P总图) 加法器加法器乘乘/ /除法器除法器 源源1 1值值 源源2 2值值 控制控制 ROBROB项号项号 A1A1 A2A2 A3A3 M1M1 M2M2 保留站保留站 控制控制 指令指令 源项号源项号 源地址源地址 源值源值 目的地址目的地址 目的值目的值 F7F7 F1F1 F0F0 数据数据 寄存器寄存器FLRFLR BIU(CacheBIU(Cache或主存或主存) ) 译码器译码器 指令队列指令队列 源源1 1值值 源源2 2值值 控制控制 ROBROB项号项号 项号项号 0101 4040 公共数据总线公共数据总线CDBCDB 取指部件取指部件取数部件取数部件存数部件存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论