《微机原理A》 第二十五讲:高性能微处理器的先进 技术及典型结构 主讲老师:王克义
《微机原理A》 第二十五讲:高性能微处理器的先进 技术及典型结构 主讲老师:王克义
公 本讲主要内容 流水线技术,超标量技术,超长指令字结构, R|SC技术; P6处理器的核心结构, Alpha21064结构, Itanium处理器结构; 多核处理器的主要特点
本讲主要内容 • 流水线技术,超标量技术,超长指令字结构, RISC技术; • P6处理器的核心结构,Alpha 21064结构, Itanium 处理器结构; • 多核处理器的主要特点
公 251流水线中的“相关”及其处理技术 流水级数为n的流水线,在理想情况下可以使处理器 性能提高n倍。 在实际中,有一些情况会阻止指令流中的下一条指 令在预定的时钟周期内执行,这种情况称为指令间 的相关( dependency)或险态?( hazard 指令间的相关会造成流水线的停顿,使指令不能连 续不断地进入流水线,其结果是降低了流水线的工 作效率 指令间的相关可分为:结构相关、数据相关和控制 相关
25.1 流水线中的“相关”及其处理技术 • 流水级数为n的流水线,在理想情况下可以使处理器 性能提高n倍。 • 在实际中,有一些情况会阻止指令流中的下一条指 令在预定的时钟周期内执行,这种情况称为指令间 的“相关”(dependency)或“险态”(hazard)。 • 指令间的相关会造成流水线的停顿,使指令不能连 续不断地进入流水线,其结果是降低了流水线的工 作效率。 • 指令间的相关可分为:结构相关、数据相关和控制 相关
公 1结构相关 结构相关( structural dependency)亦称资源相关 它是指令流水线中在不同流水级( stage)上重叠执行 的指令之间争用同一硬件资源时所产生的相关。 要缓解结构相关引起的流水线停顿问题,可以采用 把具有访问冲突的资源配置成多套的办法来实现。 可以采用分开式的 Cache,即由指令 Cache和数据 Cache分别提供指令和数据(即所谓哈佛结构),而且 可以把这两个 Cache的总线及存储器地址寄存器也分 开成两套,使得当一条指令在某流水级上访问指令 Cache时,另一条指令在其他流水级上可以在同一时 间访问数据 Cache
1.结构相关 • 结构相关(structural dependency)亦称资源相关。 它是指令流水线中在不同流水级(stage)上重叠执行 的指令之间争用同一硬件资源时所产生的相关。 • 要缓解结构相关引起的流水线停顿问题,可以采用 把具有访问冲突的资源配置成多套的办法来实现。 • 可以采用分开式的Cache,即由指令Cache和数据 Cache分别提供指令和数据(即所谓哈佛结构),而且 可以把这两个Cache的总线及存储器地址寄存器也分 开成两套,使得当一条指令在某流水级上访问指令 Cache时,另一条指令在其他流水级上可以在同一时 间访问数据Cache
2.数据相关 在流水线中重叠执行的指令中,如果后一条指令 依赖于前面一条指令的执行结果,就会出现数据 相关( data dependency)。 ·在指令流水线中重叠执行的读数和写数指令之 间,若要使用同一个存储单元或同一个通用寄存 器时,就可能发生数据相关
2. 数据相关 • 在流水线中重叠执行的指令中,如果后一条指令 依赖于前面一条指令的执行结果,就会出现数据 相关(data dependency)。 • 在指令流水线中重叠执行的读数和写数指令之 间,若要使用同一个存储单元或同一个通用寄存 器时,就可能发生数据相关
公 要解决数据相关,需要设置专门的检查数据相关 的硬件,在每次取操作数时,把取数的地址同它 前面正在流水线中尚未完成写数操作的所有写数 指令的写数地址进行比较,如果有相同的,说明 有数据“相关存在。 ·解决数据相关最简单的办法就是推迟执行存在 相关的数据操作,例如等待“相关”的写数指令 完成之后,再执行读数操作 这种机制称为流水线互锁( pipeline interlock),是 通过硬件实现的。也有的用软件(编译程序)的办 法来实现
• 要解决数据相关,需要设置专门的检查数据相关 的硬件,在每次取操作数时,把取数的地址同它 前面正在流水线中尚未完成写数操作的所有写数 指令的写数地址进行比较,如果有相同的,说明 有数据“相关”存在。 • 解决数据相关最简单的办法就是推迟执行存在 “相关”的数据操作,例如等待“相关”的写数指令 完成之后,再执行读数操作。 • 这种机制称为流水线互锁(pipeline interlock),是 通过硬件实现的。也有的用软件(编译程序)的办 法来实现
公 无论是通过软件还是硬件,显然,推迟执行读数 操作的办法总要影响流水线的效率。为了尽量缩 短数据相关时指令在流水线中停顿的时间,还有 其他一些方法,请参考相关文献。 ·共有三种类型的数据相关,分别是:先写后读相 关(读写相关),即RAW( Read After Write)先读后 写相关(写-读相关),即WAR( Write after read)和 先写后写相关(写-写相关),即WAW( Write After Write)
• 无论是通过软件还是硬件,显然,推迟执行读数 操作的办法总要影响流水线的效率。为了尽量缩 短数据相关时指令在流水线中停顿的时间,还有 其他一些方法,请参考相关文献。 • 共有三种类型的数据相关,分别是:先写后读相 关(读-写相关),即RAW(Read After Write);先读后 写相关(写-读相关),即WAR(Write After Read)和 先写后写相关(写-写相关),即WAW(Write After Write)
3.控制相关 公 控制相关( control dependency)主要是由转移指令或 其他能够改变程序计数器(PC)内容的指令在流水 线中进行处理时引起的。 ·对于条件转移指令,虽然在指令流水线前端的指 令译码时就能发现,但是确定转移方向的条件码 却要在指令流水线的末端的执行部件中产生 旦在指令部件中发现条件转移指令,指令部件 就要停顿下来,等待转移指令前面一条指令在执 行部件中执行完毕,产生条件码以后,才能确定 转移方向,此时整个流水线已经排空,没有指令 在里面流动了
3. 控制相关 • 控制相关(control dependency)主要是由转移指令或 其他能够改变程序计数器(PC)内容的指令在流水 线中进行处理时引起的。 • 对于条件转移指令,虽然在指令流水线前端的指 令译码时就能发现,但是确定转移方向的条件码 却要在指令流水线的末端的执行部件中产生。 • 一旦在指令部件中发现条件转移指令,指令部件 就要停顿下来,等待转移指令前面一条指令在执 行部件中执行完毕,产生条件码以后,才能确定 转移方向,此时整个流水线已经排空,没有指令 在里面流动了
公 为了减少条件转移指令造成的执行部件停顿时间, 可采用多项措施和技术,常见的有: (1)双分支预取; (2)加快和提前形成条件码; (3)转移预测 ·动态转移预测用硬件来实现,它是在现代微处理器 设计中普遍采用的一种行之有效的方法
• 为了减少条件转移指令造成的执行部件停顿时间, 可采用多项措施和技术,常见的有: (1) 双分支预取; (2) 加快和提前形成条件码; (3) 转移预测。 • 动态转移预测用硬件来实现,它是在现代微处理器 设计中普遍采用的一种行之有效的方法
公 252指令级并行 要提高计算机系统的整体性能,可以在两个方面 做出努力,一是改进构成计算机的器件性能(如微 电子电路的速度、功耗等),二是要采用先进的系 统结构设计 ·在系统结构设计方面,一个重要的手段就是要采 用并行处理技术,设法以各种方式挖掘计算机工 作中的并行性
25.2 指令级并行 • 要提高计算机系统的整体性能,可以在两个方面 做出努力,一是改进构成计算机的器件性能(如微 电子电路的速度、功耗等),二是要采用先进的系 统结构设计。 • 在系统结构设计方面,一个重要的手段就是要采 用并行处理技术,设法以各种方式挖掘计算机工 作中的并行性