使用相关矩阵追踪解除分配的加载指令制造技术

技术编号:7183308 阅读:379 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于追踪解除分配的加载指令的机制。处理器检测发出队列内的一组指令中的加载指令是否未命中。响应于所述加载指令的未命中,指令调度器将所述加载指令分配给加载未命中队列且解除分配来自所述发出队列的所述加载指令。所述指令调度器判定相关矩阵的发出队列部分中是否存在用于所述加载指令的相关表项。响应于所述相关矩阵的所述发出队列部分中存在用于所述加载指令的相关表项,所述指令调度器从所述相关矩阵的所述发出队列部分的所述相关表项读取指定依赖于所述加载指令的一组相关指令的数据,且将所述数据写入所述相关矩阵的加载未命中队列部分中的新表项内。

【技术实现步骤摘要】
【国外来华专利技术】
本申请一般地涉及一种改进的数据处理装置和方法,更具体地说,涉及一种用于使用相关矩阵追踪解除分配的加载指令的装置和方法。
技术介绍
微处理器是现代计算机的心脏,其是由组织成特定功能操作单元(包括算术单元、高速缓冲存储器和存储器管理、预测性逻辑以及数据移动)的数百万个晶体管及其他元件组成的芯片。现代计算机中的处理器在过去十年中已在性能、能力及复杂性方面有了巨大增长。任何计算机程序都包括用于对数据执行操作的许多指令。可将处理器分类为有序处理器或无序处理器。在现代高性能处理器中,可调度指令以便无序执行。指令可被调度为在其源操作数可用后执行。公知的动态指令调度器可使用相关矩阵(也称为唤醒数组)来追踪源操作数。相关矩阵最初被引入以在处理器中用作一种追踪加载和存储之间的存储器相关性的方式,并且相关矩阵已用于追踪发出队列中的寄存器相关性。在一些实施方式中,可能希望在来自发出队列的指令已被发出后尽可能快地解除分配这些指令以便为新指令腾出空间。然而,在与生产方关联的指令仍位于发出队列中的情况下,公知相关矩阵仅追踪生产方的可用性。因此,如果消费方指令仍正在追踪其结果的可用性,则可能不会解除分配来自队列的指令。
技术实现思路
根据第一方面,提供了一种在数据处理系统中用于追踪解除分配的加载指令的方法,所述方法包括检测发出队列内的一组指令中的加载指令是否未命中;响应于所述加载指令的未命中,将所述加载指令分配给加载未命中队列;解除分配来自所述发出队列的所述加载指令;判定相关矩阵的发出队列部分中是否存在用于所述加载指令的相关表项; 响应于所述相关矩阵的所述发出队列部分中存在用于所述加载指令的相关表项,从所述相关矩阵的所述发出队列部分的所述相关表项读取指定依赖于所述加载指令的一组相关指令的数据;及将所述数据写入所述相关矩阵的与所述加载未命中队列关联的加载未命中队列部分中的新表项内。根据第二方面,提供了一种处理器,所述处理器包括指令调度器;发出队列;及加载未命中队列,其中所述指令调度器响应于所述发出队列中的加载指令的未命中,将所述加载指令分配给所述加载未命中队列,其中由所述处理器检测一组指令中的所述加载指令的未命中;解除分配来自所述发出队列的所述加载指令;判定相关矩阵的发出队列部分中是否存在用于所述加载指令的相关表项;响应于所述相关矩阵的所述发出队列部分中存在用于所述加载指令的相关表项,从所述相关矩阵的所述发出队列部分的所述相关表项读取指定依赖于所述加载指令的一组相关指令的数据;及将所述数据写入所述相关矩阵的与所述加载未命中队列关联的加载未命中队列部分中的新表项内。根据第三方面,提供了一种装置,所述装置包括处理器;及耦接至所述处理器的存储器,其中所述存储器包括当由所述处理器执行时使所述处理器执行以下操作的指令 检测发出队列内的一组指令中的加载指令是否未命中;响应于所述加载指令的未命中,将所述加载指令分配给加载未命中队列;解除分配来自所述发出队列的所述加载指令;判定相关矩阵的发出队列部分中是否存在用于所述加载指令的相关表项;响应于所述相关矩阵的所述发出队列部分中存在用于所述加载指令的相关表项,从所述相关矩阵的所述发出队列部分的所述相关表项读取指定依赖于所述加载指令的一组相关指令的数据;及将所述数据写入所述相关矩阵的与所述加载未命中队列关联的加载未命中队列部分中的新表项内。在示例性实施例中,提供了一种包括具有计算机可读程序的计算机可用或可读介质的计算机程序产品。所述计算机可读程序当在计算设备上执行时使所述计算设备执行以上关于方法概述的操作中的各种操作和操作组合。在另一示例性实施例中,提供了一种系统/装置。所述系统/装置可包括一个或多个处理器及耦接至所述一个或多个处理器的存储器。所述存储器可包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行以上关于方法概述的操作中的各种操作和操作组合的指令。本专利技术的这些和其他特征和优点将在以下对本专利技术的实例实施例的详细描述中予以描述,或将鉴于以下对本专利技术的实例实施例的详细描述而变得对本领域技术人员显而易见。附图说明现在将仅通过实例的方式并参考附图描述本专利技术的实施例,这些附图是图1描绘可实施示例性实施例的方面的实例分布式数据处理系统的图形表示;图2展示可实施示例性实施例的方面的实例数据处理系统的方块图;图3是根据一个示例性实施例的展示功能单元和寄存器的常规双线程处理器设计的例示性方块图;图4描绘根据一个示例性实施例的使用相关矩阵追踪解除分配的加载指令的例示性方块图;图5描绘根据一个示例性实施例的例示性基本相关矩阵;图6描绘根据一个示例性实施例的例示性扩展的相关矩阵;及图7描绘根据一个示例性实施例的在使用相关矩阵追踪解除分配的加载指令中执行的操作的流程图。具体实施例方式示例性实施例提供了一种允许加载指令的相关方在加载被从发出队列解除分配之前和之后追踪加载结果的可用性的机制。示例性实施例提供并非为N行和N列而是通过 L个额外列扩展的相关矩阵,其中L是加载未命中队列中的表项数。当已知加载指令在Ll 高速缓存中未命中且被分配给加载未命中队列时,可解除分配该加载指令在发出队列中的表项。当解除分配加载指令时,读取标记加载指令的所有相关方的矩阵的列,且将此列写入属于加载未命中队列表项的新列中。因此,示例性实施例允许在加载指令的结果可用之前将加载指令从发出队列解除分配,同时仍允许相关指令使用相关矩阵追踪它们的源操作数的可用性。通过在加载指令的结果可用之前解除分配加载指令,将新指令置于发出队列中。 队列利用率的增加改进了处理器性能。另外,示例性实施例允许在将指令置于发出队列中之后修改指令的相关信息,这在先前使用相关矩阵的情况下是不可能的,即,在将指令首先置于发出队列时,该指令的生产方在任何时刻的位置可与该指令追踪的资源相同或不同。所属
的技术人员知道,本专利技术可以体现为系统、方法或计算机程序产品。 因此,本专利技术可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本专利技术还可以采取体现在任何有形的表达介质中的计算机程序产品的形式,该介质中包含计算机可用程序代码。可以使用一个或多个计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质例如可以是-但不限于-电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器 (CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质,或磁存储器件。注意,所述计算机可用或计算机可读介质甚至可以是程序被打印在其上的纸张或其他适合的介质,因为所述程序可以通过例如光扫描所述纸张或其他介质被电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。在此文档的上下文中,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系统、装本文档来自技高网
...

【技术保护点】
1.一种在数据处理系统中用于追踪解除分配的加载指令的方法,所述方法包括:检测发出队列内的一组指令中的加载指令是否未命中;响应于所述加载指令的未命中,将所述加载指令分配给加载未命中队列;解除分配来自所述发出队列的所述加载指令;判定相关矩阵的发出队列部分中是否存在用于所述加载指令的相关表项;响应于所述相关矩阵的所述发出队列部分中存在用于所述加载指令的相关表项,从所述相关矩阵的所述发出队列部分的所述相关表项读取指定依赖于所述加载指令的一组相关指令的数据;及将所述数据写入所述相关矩阵的与所述加载未命中队列关联的加载未命中队列部分中的新表项内。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M·D·布朗C·M·阿伯内西T·A·文特昂W·E·布尔科
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US

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

1