【技术实现步骤摘要】
【国外来华专利技术】在乱序处理器中具有一个或多个摘要位的可扩展依赖矩阵
本专利技术的实施例总体上涉及乱序(OoO)处理器,并且更具体地涉及在乱序处理器的发布队列中具有一个或多个摘要位的可扩展依赖矩阵。
技术介绍
在乱序处理器中,指令排序单元(ISU)将指令调度到各种发布队列,重命名寄存器以支持乱序执行,将来自各种发布队列的指令发布到执行流水线,完成已执行的指令并处理异常条件。寄存器重命名通常是在将指令放入各自的发布队列之前,由ISU中的映射器逻辑执行的。ISU包括一个或多个发布队列,包含用于跟踪指令之间的依赖的依赖矩阵。对于每一条指令,依赖矩阵通常在发布队列中包括一行和一列。随着发布队列中的指令数量不断增加,每个依赖矩阵占用的空间和功耗也在增长。
技术实现思路
本专利技术的实施例包括用于实现乱序(OoO)处理器的发布队列中的具有一个或多个摘要位的可扩展依赖矩阵的方法、系统和计算机程序产品。非限制性示例方法包括跟踪发布队列中的指令之间的依赖。对于发布队列中的每个指令,跟踪包括识别指令是否依赖于在该指令之前添加到发布队列的阈值数目的指令的每一个。在具有多个摘要位的一个实施例中,跟踪还包括识别指令是否依赖于在未包括在阈值数目的指令的每一个的指令之前添加到发布队列的一个或多个其他指令。将指令和其他指令的每一个之间依赖以多个组进行跟踪,跟踪通过基于识别指令和组中的至少一个指令之间的依赖指示指令和一个组之间存在依赖。每个其他指令都分配给至少一个组。至少部分地基于跟踪从发布队列发布指令。在具有单个摘要位的另 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。