在乱序处理器中具有一个或多个摘要位的可扩展依赖矩阵制造技术

技术编号:24366000 阅读:27 留言:0更新日期:2020-06-03 04:47
本发明专利技术的方面包括跟踪发布队列中的指令之间的依赖。对于发布队列中的每个指令,跟踪包括识别指令是否依赖于在该指令之前添加到发布队列的阈值数目的指令的每一个。包括识别指令是否依赖于在未包括在阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令。跟踪指令与其他指令的每一个之间的依赖。至少部分基于跟踪从发布队列发布指令。

A scalable dependency matrix with one or more digest bits in a disordered processor

【技术实现步骤摘要】
【国外来华专利技术】在乱序处理器中具有一个或多个摘要位的可扩展依赖矩阵
本专利技术的实施例总体上涉及乱序(OoO)处理器,并且更具体地涉及在乱序处理器的发布队列中具有一个或多个摘要位的可扩展依赖矩阵。
技术介绍
在乱序处理器中,指令排序单元(ISU)将指令调度到各种发布队列,重命名寄存器以支持乱序执行,将来自各种发布队列的指令发布到执行流水线,完成已执行的指令并处理异常条件。寄存器重命名通常是在将指令放入各自的发布队列之前,由ISU中的映射器逻辑执行的。ISU包括一个或多个发布队列,包含用于跟踪指令之间的依赖的依赖矩阵。对于每一条指令,依赖矩阵通常在发布队列中包括一行和一列。随着发布队列中的指令数量不断增加,每个依赖矩阵占用的空间和功耗也在增长。
技术实现思路
本专利技术的实施例包括用于实现乱序(OoO)处理器的发布队列中的具有一个或多个摘要位的可扩展依赖矩阵的方法、系统和计算机程序产品。非限制性示例方法包括跟踪发布队列中的指令之间的依赖。对于发布队列中的每个指令,跟踪包括识别指令是否依赖于在该指令之前添加到发布队列的阈值数目的指令的每一个。在具有多个摘要位的一个实施例中,跟踪还包括识别指令是否依赖于在未包括在阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令。将指令和其他指令的每一个之间依赖以多个组进行跟踪,跟踪通过基于识别指令和组中的至少一个指令之间的依赖指示指令和一个组之间存在依赖。每个其他指令都分配给至少一个组。至少部分地基于跟踪从发布队列发布指令。在具有单个摘要位的另一实施例中,分别跟踪指令与每个阈值数目的指令之间的依赖。对于发布队列中的每个指令,跟踪还包括识别指令是否依赖于在未包括在阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令。将指令和其他指令之间的依赖作为一个单个组进行跟踪,跟踪包括通过基于识别指令和至少一个其他指令之间的依赖指示指令和其他指令的该单个组之间存在依赖。单个组包括发布队列中未包括在分别跟踪的阈值数目的指令中的所有指令。至少部分基于跟踪从发布队列发布指令。通过本专利技术的技术实现了附加的特征和优点。在此详细描述本专利技术的其他实施例和方面,并且将其视为所要求保护的专利技术的一部分。为了更好地理解本专利技术的优点和特征,请参考说明书和附图。附图说明在说明书所附权利要求书中特别指出并明确要求保护本文所述的专有权的细节。通过以下结合附图的详细描述,本专利技术的实施例的前述以及其他特征和优点将变得显而易见,其中:图1描绘了根据本专利技术一个或多个实施例的系统的框图,该系统100包括乱序处理器的指令排序单元(ISU),用于在发布队列中实现具有摘要位的可扩展依赖矩阵;图2描绘了根据本专利技术一个或多个实施例的乱序处理器的ISU中的发布队列的框图;图3描绘了根据本专利技术一个或多个实施例用于实现具有摘要位的可扩展依赖矩阵的乱序处理器的ISU中的发布队列的框图;图4描绘了根据本专利技术一个或多个实施例的可扩展依赖矩阵的逻辑视图的框图;图5描绘了根据本专利技术一个或多个实施例的梯形依赖矩阵的框图;图6描绘了根据本专利技术一个或多个实施例的垂直压缩的梯形依赖矩阵的框图;图7描绘了根据本专利技术一个或多个实施例的水平压缩的梯形依赖矩阵的框图;图8描绘了可根据本专利技术一个或多个实施例实现的可扩展依赖矩阵的框图;图9描绘了根据本专利技术一个或多个实施例的以单线程(ST)模式和同时多线程(SMT)模式操作的依赖矩阵的框图;图10描绘了根据本专利技术一个或多个实施例的以ST模式和SMT模式操作的依赖矩阵的框图;和图11是根据本专利技术一个或多个实施例的用于在乱序处理器中实现具有具有摘要位的可扩展依赖矩阵的一些或所有方面的计算机系统的框图。本文所描绘的图是说明性的。在不脱离本专利技术的精神的情况下,图或其中描述的操作可以有许多变型。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。同样,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且并不意味着元件之间没有中间元件/连接。它们之间所有这些变体都被视为说明书的一部分。在附图和以下对所描述的实施例的详细描述中,在附图中示出的各个元件设有两个或三个数字的附图标记。除少数例外,每个参考数字的最左边的数字与该元素的第一个图相对应。具体实施方式如上所述,在当代发行队列中存储的指令数量继续增加。当代发行队列包括随指令数量的平方而增长的依赖矩阵,并且依赖矩阵的大小不断扩大可能会在某个时刻对时序产生影响。本文描述的本专利技术的一个或多个实施例在乱序处理器的指令排序单元(ISU)的发布队列中提供了尺寸减小的依赖矩阵。尺寸的减小是基于这样的认识,即,在彼此接近的时间范围内添加到发布队列的指令之间通常存在依赖。根据本专利技术的一个或多个实施例,分别跟踪指令对位于添加到发布队列的指令的接近时间范围之内的指令的依赖。根据本专利技术的一个或多个实施例,使用摘要位以单个组跟踪指令对位于添加到发布队列的指令的接近时间范围之外的指令的依赖。根据本专利技术的一个或多个实施例,对于以单线程(ST)模式运行且具有包含64条指令(N=64)的发布队列的处理器,指令对先前32个指令(N/2)的依赖可以在发布队列中特异(例如,标识确定的指令)跟踪。可以用摘要位指示指令依赖于比N/2更早的任何指令。设置了摘要位的发布队列的依赖矩阵中的条目(指令)必须等到最早的N/2条目被清除才能指示该指令已准备好发布。精确跟踪(向前N/2)和不精确跟踪(比N/2更早的摘要位)的结合以及将发布队列实现为先进先出(FIFO)队列的组合,使依赖矩阵可扩展并在逻辑上实现为梯形,可以以节省存储空间的方式进行物理存储。另外,将发布队列实现为FIFO队列可消除对发布队列中包含使用期限数组(agearray)的需要,从而节省了额外的存储空间。根据本专利技术的一个或多个实施例,当处理器以同时多线程(SMT)模式执行时,不使用摘要位,并且精确跟踪的量与跟踪属于给定线程的所有N/2-1个先前指令的现代实现相同。根据本专利技术的一个或多个实施例,位于添加到发布队列的指令的接近时间范围之外的指令组(即,没有被特异跟踪的那些指令)被分解为一个或多个子组,每个子组使用自己的摘要位进行跟踪。在这些实施例中,利用多个摘要位来跟踪指令对指令组中指令的依赖。根据本专利技术的一个或多个实施例,被特异跟踪的先前指令的数目是可选择/可编程的,并且不限于N/2个先前指令。现在转到图1,总体上描绘了根据本专利技术一个或多个实施例的系统框图,该系统100包括乱序处理器的指令排序单元(ISU),用于在发布队列中实现具有摘要位的可扩展依赖矩阵。图1所示的系统100包括指令获取单元/指令解码单元(IFU/IDU)106,获取并解码指令以输入到设置块108,该设置块108准备解码后的指令以输入到ISU的映射器110。根据一个或多个实施例,IFU/IDU106可一次获取和解码来自线程的六个指令。根据本专利技术的一个或多个实施例,发送给设置块108的六个指令可以包括六本文档来自技高网...

【技术保护点】
1.一种计算机实现的方法,包括:/n跟踪发布队列中的指令之间的依赖,其中,跟踪包括对于发布队列中的每一个指令:/n识别所述指令是否依赖于在所述指令之前添加到发布队列的阈值数目的指令的每一个,其中,分别跟踪所述指令和所述阈值数目的指令的每一个之间的依赖;和/n识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中,将所述指令和所述其他指令的每一个之间的依赖作为一个组或多个组进行跟踪,跟踪通过基于识别所述指令和至少一个所述其他指令或所述多个组的组中的至少一个指令之间的依赖指示所述指令和所述一个组或多个组中的一个组之间存在依赖,所述一个组的其他指令包括发布队列中未包括在分别跟踪的阈值数目的指令中的所有指令,并且其中所述其他指令的每一个被分配给所述多个组中的至少一个组;并且/n至少部分地基于跟踪从发布队列发布指令。/n

【技术特征摘要】
【国外来华专利技术】20171130 US 15/826,734;20171130 US 15/826,7461.一种计算机实现的方法,包括:
跟踪发布队列中的指令之间的依赖,其中,跟踪包括对于发布队列中的每一个指令:
识别所述指令是否依赖于在所述指令之前添加到发布队列的阈值数目的指令的每一个,其中,分别跟踪所述指令和所述阈值数目的指令的每一个之间的依赖;和
识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中,将所述指令和所述其他指令的每一个之间的依赖作为一个组或多个组进行跟踪,跟踪通过基于识别所述指令和至少一个所述其他指令或所述多个组的组中的至少一个指令之间的依赖指示所述指令和所述一个组或多个组中的一个组之间存在依赖,所述一个组的其他指令包括发布队列中未包括在分别跟踪的阈值数目的指令中的所有指令,并且其中所述其他指令的每一个被分配给所述多个组中的至少一个组;并且
至少部分地基于跟踪从发布队列发布指令。


2.根据权利要求1所述的计算机实现的方法,包括:识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中将所述指令和其他指令之间的依赖作为一个单个组进行跟踪,跟踪通过基于识别所述指令和至少一个其他指令之间的依赖指示所述指令和其他指令的该单个组之间存在依赖,其他指令的该单个组包括发布队列中未包括在分别跟踪的所述阈值数目的指令中的所有指令。


3.根据权利要求1所述的计算机实现的方法,包括:识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中将所述指令和其他指令的每一个之间的依赖作为多个组进行跟踪,跟踪通过基于识别所述指令和组中的至少一个指令之间的依赖指示所述指令和多个组中的一个之间存在依赖,其中其他指令的每一个被分配给至少一个组。


4.根据权利要求1或2所述的计算机实现的方法,其中使用单个摘要位跟踪所述指令与其他指令的单个组之间的依赖性。


5.根据权利要求1或3所述的计算机实现的方法,其中为多个组的每一个使用不同的摘要位跟踪所述指令与多个组的每一个之间的依赖性。


6.根据权利要求4所述的计算机实现的方法,其中设置单个摘要位以指示所述指令与其他指令的单个组中的至少一个指令之间存在依赖,并且在设置所述单个摘要位之后重置摘要位,以至少部分地基于检测到其他指令的单个组中的所有其他指令都已经从发布队列发布以指示所述指令和其他指令的组之间不再存在依赖。


7.根据权利要求5所述的计算机实现的方法,其中设置用于多个组的每一个的摘要位以指示所述指令和该组中的至少一个指令之间存在依赖,并且在设置所述摘要位之后重置摘要位,以至少部分的基于检测到分配给该组的所有指令都已经从发布队列发布以指示所述指令和该组之间不再存在依赖。


8.根据权利要求1所述的计算机实现的方法,其中为所述阈值数目的质量的每一个用一个单独的位跟踪所述指令和所述阈值数目的指令的每一个之间的依赖性。


9.根据权利要求1所述的计算机实现的方法,其中发布队列是先进先出(FIFO)队列并且发布队列中的指令基于他们被添加到发布队列的顺序进行排序。


10.跟据权利要求1所述的计算机实现的方法,其中发布队列中的指令来乱序处理器执行的单个线程。


11.根据权利要求1所述的计算机实现的方法,其中发布队列保持N个指令并且所述阈值数目的指令为N/2。


12.根据权利要求1所述的计算机实现的方法,其中所述阈值数目的指令的每一个的指令包括对应于多线程环境中的单个线程的发行队列中的所有指令。


13.根据权利要求1所述的计算机实现的方法,其中所述阈值数目是可编程的。


14.一种系统,包括:
乱序处理器的发布队列中的依赖矩阵;
具有计算机可读指令的存储器;和
用于执行计算机可读指令的一个或多个处理器,该计算机可读指令控制一个或多个处理器以执行以下操作:
跟踪发布队列中的指令之间的依赖,其中,跟踪包括对于发布队列中的每一个指令:
识别所述指令是否依赖于在所述指令之前添加到发布队列的阈值数目的指令的每一个,其中,分别跟踪所述指令和所述阈值数目的指令的每一个之间的依赖;和
识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中,将所述指令和所述其他指令的每一个之间的依赖作为一个组或多个组进行跟踪,跟踪通过基于识别所述指令和至少一个所述其他指令或所述多个组的组中的至少一个指令之间的依赖指示所述指令和所述一个组或多个组中的一个组之间存在依赖,所述一个组的其他指令包括发布队列中未包括在分别跟踪的阈值数目的指令中的所有指令,并且其中所述其他指令的每一个被分配给所述多个组中的至少一个组;并且
至少部分地基于跟踪从发布队列发布指令。


15.根据权利要求14所述的系统,包括:识别所述指令是否依赖于在未包括在所述阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令,其中将所述指令和其他指令之间的依赖作为一个单个组进行跟踪,...

【专利技术属性】
技术研发人员:J·西尔贝曼B·辛哈罗伊
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1