[发明专利]减少由加载队列满载引起的流水线推迟的处理器和方法在审
申请号: | 201710278116.5 | 申请日: | 2017-04-25 |
公开(公告)号: | CN106951215A | 公开(公告)日: | 2017-07-14 |
发明(设计)人: | 邸千力 | 申请(专利权)人: | 上海兆芯集成电路有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京市柳沈律师事务所11105 | 代理人: | 钱大勇 |
地址: | 上海市张江高科技*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 减少 加载 队列 满载 引起 流水线 推迟 处理器 方法 | ||
技术领域
本发明一般涉及执行加载指令以从处理器中的存储器加载信息的过程,更具体地说,涉及一种减少由加载执行队列的满载引起的处理器中的流水线推迟的系统和方法。
背景技术
典型的计算机系统包括:用于执行应用程序或软件程序等的指令的处理器;以及耦合到处理器的外部系统存储器,用于存储计算机程序的部分和可应用的数据和信息。本文所用的术语“处理器”是指任何类型的处理单元,包括微处理器、中央处理单元(CPU)、一个或多个处理核心、微控制器等。本文所用的术语“处理器”还包括任何类型的处理器配置,例如集成在芯片或集成电路(IC)上的处理单元,包括集成在芯片上的系统(SOC)等中的处理器配置。
处理器设计的趋势是提供消耗更少功率并且更小、更有效和更强大的处理器。在性能、成本和功耗之间往往存在平衡或折中。在现代CPU架构中,SoC配置被证明是更重要和有用的,以实现平衡的折中。本发明的公开适用于任何类型的处理器配置,包括并入SoC中的那些处理器配置。
传统的处理器设计基于加载执行队列的满载度,或简单地基于加载队列(load queue),使处理器流水线架构的前端推迟(stall)。加载队列保存执行加载指令所需的每个加载指令的所有信息。确定加载队列的满载的一种常规方法是对当前处于处理器流水线中的加载指令的总数进行加总,其中包括已经发射(issue)并且当前在调度器内的加载指令的数量、已加载到加载队列中的加载指令的数量、以及已分派(dispatch)但尚未到达加载执行流水线的加载指令的数量。然后,将加载指令的总数量与加载队列的总容量(这意味着加载队列中的加载指令条目的总数)进行比较。这种方式是推测性地计算加载队列为满即使其不是实际满载,从而可能提前推迟前端流水线。当推测性地确定为满时,加载队列成为推迟流水线的瓶颈,这也导致其他功能单元也是空闲的。这已经成为许多传统CPU架构中已经观察到的一个非常常见的问题。
一种可能的解决方案是扩大加载队列以减少流水线推迟的可能性。然而,较大的加载队列消耗了大量额外的面积和功率,并且不能全面解决问题。
发明内容
根据一个实施例,能够减少流水线推迟的处理器包括前端、加载队列、调度器和加载缓冲器。前端在没有提供第一满指示的同时发射指令,否则推迟发射指令。加载队列存储用于存储执行已发射加载指令所需的信息的加载指令条目。加载队列在满载时提供第二满指示。调度器存储已经从前端发射的指令,并分派已发射的指令以执行。调度器在加载队列已满时,将尚未存储到加载队列中的已发射加载指令推迟分派。加载缓冲器在加载队列未满时接收并传送已发射加载指令给加载队列。当加载队列满时,加载缓冲器临时缓冲已发射加载指令,直到加载队列不再满。
当加载队列已满时,向调度器提供推迟指示以推迟尚未存储到加载队列中的已发射加载指令的分派。推迟指示可以标识存储在加载缓冲器中的尚未传送到加载队列的加载指令。或者,推迟指示可以标识存储在加载队列中的加载指令。
加载缓冲器可以具有多个条目,其中每个条目包括源标识符和目的地标识符。加载队列可以具有多个条目,其中每个条目包括源标识符、目的地标识符、存储器地址和用于存储数据的存储器空间。加载缓冲器可以进一步存储标识先前发射的存储指令与每个缓冲的加载指令的信息。在一个实施例中,可以提供包括存储队列的每个条目的有效位的有效列表,并且加载缓冲器包括用于存储有效向量的字段,该有效向量包括当加载指令被推入加载缓冲器时有效列表的有效位。
调度器可以在加载队列已满时(例如,当提供第二满指示时)继续分派存储在加载队列中的加载指令。调度器可以继续分派除被推迟的已发射加载指令之外的其它已发射指令。加载队列可以包括存储组,并且加载缓冲器可以包括多个存储组,其每个存储组是加载队列的存储组的副本。
根据一个实施例,能够减少处理器流水线推迟的方法包括,在没有提供第一满指示的同时发射指令,并且在提供第一满指示的同时推迟所述发射指令;通过加载队列存储多个已发射加载指令和执行多个已发射加载指令中的每一个所需的对应信息,以及当加载队列已满时提供第二满指示;通过调度器分派已发射指令中已准备好执行的那些指令,并且当所述加载队列满时,推迟尚未存储到加载队列中的那些已发射加载指令的分派;在没有提供第二满指示时,通过加载缓冲器接收和转发所述已发射加载指令到所述加载队列,并且在提供所述第二满指示时由所述加载缓冲器缓冲所已发射加载指令;和当加载缓冲器满时,由加载缓冲器提供第一满指示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海兆芯集成电路有限公司,未经上海兆芯集成电路有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710278116.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网络配线架
- 下一篇:自体脂肪活细胞萃取器