《清除和重建相关性的系统和方法.pdf》由会员分享,可在线阅读,更多相关《清除和重建相关性的系统和方法.pdf(17页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104050215A43申请公布日20140917CN104050215A21申请号201410091598X22申请日2014031313/831,43420130314USG06F17/3020060171申请人三星电子株式会社地址韩国京畿道72发明人R延加SK杜贝74专利代理机构北京市柳沈律师事务所11105代理人邵亚丽54发明名称清除和重建相关性的系统和方法57摘要一种清除和重建相关性的数据处理系统和方法,所述数据处理方法包括响应于选择第二条目,改变与第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值相比较,指示第一条目准备就绪被选择;其。
2、中,第一条目与第二条目相关。30优先权数据51INTCL权利要求书2页说明书10页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书10页附图4页10申请公布号CN104050215ACN104050215A1/2页21一种数据处理系统中的数据处理方法,包括响应于选择第二条目,改变与第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值相比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。2如权利要求1所述的数据处理方法,其中改变所述计数器包括将所述计数器递减。3如权利要求1所述的数据处理方法,其中所述阈值是零。4如权利要求1所述。
3、的数据处理方法,还包括将所述计数器设置为第一条目与之相关的目的地的数目。5如权利要求1所述的数据处理方法,还包括响应于第一条目的相关性向量装填所述计数器。6如权利要求5所述的数据处理方法,其中,响应于第一条目的相关性向量装填所述计数器包括对所述相关性向量的位执行或操作;对所述相关性向量的位执行异或操作;以及响应于或操作和异或操作的结果装填所述计数器。7如权利要求1所述的数据处理方法,还包括响应于取消第二条目改变所述计数器。8如权利要求7所述的数据处理方法,其中响应于取消第二条目改变所述计数器包括将所述计数器递增。9如权利要求1所述的数据处理方法,其中,所述计数器的宽度是用于表示第一条目与之相关。
4、的目的地的最大数目的位的最小数目。10如权利要求1所述的数据处理方法,其中,指示第一条目准备就绪被选择包括指示第一条目准备就绪被选择而不清除与第一条目关联的相关性向量的条目。11一种数据处理设备,包括存储器,被配置为存储多个条目,每个条目包括至少一个计数器;以及控制器,耦接到所述存储器并且被配置为响应于选择多个条目的第二条目改变与多个条目的第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值相比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。12如权利要求11所述的数据处理设备,其中,所述控制器还被配置为改变所述计数器,包括将所述计数器递减。13如权利。
5、要求11所述的数据处理设备,其中所述阈值是零。14如权利要求11所述的数据处理设备,其中,所述控制器还被配置为将所述计数器设置为第一条目与之相关的多个条目的目的地的数目。15如权利要求11所述的数据处理设备,其中,所述控制器还被配置为响应于第一条目的相关性向量装填所述计数器。16如权利要求15所述的数据处理设备,其中,所述控制器还被配置为对所述相关性向量的位执行或操作;权利要求书CN104050215A2/2页3对所述相关性向量的位执行异或操作;以及响应于或操作和异或操作的结果装填所述计数器。17如权利要求11所述的数据处理设备,其中,所述控制器还被配置为响应于取消第二条目改变所述计数器。18。
6、如权利要求17所述的数据处理设备,其中,所述控制器还被配置为响应于取消第二条目将所述计数器递增。19如权利要求11所述的数据处理设备,其中,所述计数器的宽度是用于表示第一条目与之相关的目的地的最大数目的位的最小数目。20如权利要求11所述的数据处理设备,其中,所述控制器还被配置为指示第一条目准备就绪被选择而不清除与第一条目关联的相关性向量的条目。21一种用于数据处理系统的数据处理方法,包括初始化与第一条目关联的计数器,以指示第一条目与之相关的其它条目的目的地的数目;响应于选择所述其它条目中的第一条目沿第一方向改变所述计数器;以及响应于取消所述其它条目中的第二条目沿与第一方向相反的第二方向改变所。
7、述计数器。22如权利要求21所述的数据处理方法,其中所述其它条目中的第二条目是所述其它条目中的第一条目。23如权利要求21所述的数据处理方法,其中所述其它条目中的第二条目不同于所述其它条目中的第一条目。24如权利要求21所述的数据处理方法,还包括将所述计数器沿第二方向改变被取消的其它条目的数目。25如权利要求21所述的数据处理方法,其中沿第一方向改变所述计数器包括将所述计数器递减;以及沿第二方向改变所述计数器包括将所述计数器递增。26如权利要求21所述的数据处理方法,还包括响应于所述计数器到达阈值,指示第一条目准备就绪。27一种数据处理系统,包括存储系统;用户接口;以及处理器,耦接到所述存储系。
8、统和用户接口,所述处理器包括存储器,被配置为存储多个条目,每个条目包括至少一个计数器;以及控制器,耦接到所述存储器并且被配置为响应于选择多个条目的第二条目改变与多个条目的第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。权利要求书CN104050215A1/10页4清除和重建相关性的系统和方法技术领域0001本公开涉及在电子应用中清除和重建相关性(DEPENDENCY)的系统和方法,更加具体来说,涉及在处理器内,诸如在调度器、缓存器或者其它存储器结构中,清除和重建相关性的系统和方法。背景技术0002当。
9、前处理器允许推测性的指令推测性地清除相关(DEPENDENT)指令的相关性。例如,通过清除相关指令的相关性向量中的相应于推测性的指令的相关性位,来执行清除相关性。但是,由于指令的运行只是推测性的,所以诸如载荷丢失、出错、故障等等之类的各种事件可能使得推测性的指令的运行被取消。在这种情况下,必须重建相关指令的相关性向量以重新创建清除的相关性。不幸的是,这可能需要针对取消的目的地标记重新比较源标记和再次设置相关性位的复杂处理过程。该重建过程在处理器资源和电力两方面上都花费不菲。发明内容0003本公开的一方面提供了一种数据处理系统中的数据处理方法,包括响应于选择第二条目,改变与第一条目关联的计数器;。
10、将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值相比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。0004本公开的另一方面提供了一种数据处理设备,包括存储器,被配置为存储多个条目,每个条目包括至少一个计数器;以及控制器,耦接到所述存储器并且被配置为响应于选择多个条目的第二条目改变与多个条目的第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值相比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。0005本公开的另一方面提供了一种用于数据处理系统的数据处理方法,包括初始化与第一条目关联的计数器,以指示第一条目与之相关的其它条目的目。
11、的地的数目;响应于选择所述其它条目中的第一条目沿第一方向改变所述计数器;以及响应于取消所述其它条目中的第二条目沿与第一方向相反的第二方向改变所述计数器。0006本公开的另一方面提供了一种数据处理系统,包括存储系统;用户接口;以及处理器,耦接到所述存储系统和用户接口,所述处理器包括存储器,被配置为存储多个条目,每个条目包括至少一个计数器;以及控制器,耦接到所述存储器并且被配置为响应于选择多个条目的第二条目改变与多个条目的第一条目关联的计数器;将所述计数器与阈值相比较;以及响应于将所述计数器与所述阈值比较,指示第一条目准备就绪被选择;其中,第一条目与第二条目相关。附图说明说明书CN10405021。
12、5A2/10页50007图1是示出根据结合本发明构思的原理的实施例的、例如诸如调度器条目的条目的框图。0008图2是示出根据结合本发明构思的原理的另一实施例的条目的框图。0009图3是示出根据结合本发明构思的原理的实施例的、包括多个条目(诸如生产厂商条目)和相关指令的存储器的框图。0010图4是示出已经推测性地选择了相关指令与其相关的条目之后对于相关指令的计数器值的修改的图3的存储器的框图。0011图5是示出已经推测性地选择了相关指令与其相关的另一条目之后对于相关指令的计数器值的修改的图3和图4的存储器的框图。0012图6是示出在已经取消了相关指令与其相关的条目(也即,由于推测性的条目选择的取。
13、消)之后相关指令的计数器值的修改的图3、图4和图5的存储器的框图。0013图7是示出已经取消了相关指令与其相关的一个不同条目之后对于相关指令的计数器值的修改的图3、图5的存储器的框图。0014图8是示出已经取消了相关指令与其相关的多个条目之后对于相关指令的计数器值的修改的图3、图4和图5的存储器的框图。0015图9是示出根据结合本发明构思的原理的实施例的、包括具有多个目的地的多个条目和相关条目的多个示例的存储器的框图。0016图10是根据结合本发明构思的原理的实施例构造的计算设备的框图。0017图11是示意地示出根据结合本发明构思的原理的实施例的一部分指令路径的框图。0018图12是包括根据结。
14、合本发明构思的原理的实施例构造的处理器的计算系统的框图。具体实施方式0019这里公开的各种实施例主要涉及清除和重建相关性,诸如在处理器中清除和重建指令的相关性。例如,这可以包括但是不局限于调度器中的生产厂商和相关指令。给出以下描述以便本领域技术人员能够做出和使用本发明,并且在专利申请及其必要条件的背景下提供以下描述。对这里描述的示范性实施例以及一般原理和特征的各种修改能够容易地看出。主要就具体实施方式中提供的特定方法和系统来描述示范性实施例。0020然而,所述方法和系统将以其它实施方式有效地运行。诸如“示范性实施例”、“一个实施例”,“另一实施例”之类的短语可以指代相同或者不同的实施例以及多个。
15、实施例。将针对具有特定组件的系统和/或设备描述所述实施例。然而,所述系统和/或设备可以包括比所示更多或者更少的组件,并且可以在组件的布局和类型上进行变化而不脱离本发明的范围。还将在具有特定步骤的具体方法的背景下描述示范性实施例。然而,所述方法和系统对于具有不同和/或附加步骤并且与示范性实施例不一致的不同次序的步骤的其它方法有效地运行,由此,本发明不意在限于所示的实施例,而是将符合与这里描述的原理和特征一致的最广范围。0021将为本领域技术人员理解的是,通常,这里使用的术语,特别是所附权利要求中(例如,所附权利要求的主体)通常意指“开放式”术语(例如,术语“包括”应当释为“包括但说明书CN104。
16、050215A3/10页6不限于”,术语“具有”应当释为“至少具有”,术语“包括”应当释为“包括但不限于”等等)。本领域技术人员还将理解的是,如果引入的权利要求叙述的特定编号是有意指的,那么这样的意指将在权利要求中明确叙述,并且不存在这样的叙述则不存在这样的意指。例如,作为理解的辅助,后附权利要求可以包含使用介绍性短语“至少一个”和“一个或多个”以引入权利要求叙述。但是,这样的短语的使用不应当被解释为暗示由不定冠词“一”所引入的权利要求叙述不将包含这样的所引入的权利要求叙述的任意具体权利要求限制为仅包含一个这样的叙述的示例,即使是相同的权利要求包括介绍性短语“一个或多个”、“一个或多个”、“至。
17、少一个”以及诸如“一”这样的不定冠词(例如,“一”应当被解释为意指“至少一个”或“一个或多个”)也是如此;对于用于引入权利要求叙述的定冠词的使用同样也是。而且,在使用类似于“至少A、B或C等等其中之一”的惯例的那些实例中,通常这样的结构意味着本领域技术人员应当理解这些惯例的意义(例如,“具有至少A、B或C其中之一的系统”应当包括然而并不限于只具有A、只具有B、只具有C、具有A和B一起、A和C一起、B和C一起和/或A、B和C一起等等的系统)。本领域技术人员还将理解的是,实际上,无论在说明书、权利要求还是附图中存在两个或更多替换术语的任意反意连接词和/或短语应当理解为设想包括其中一个术语、术语二者。
18、之一或者两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。“0022图1是示出根据结合本发明构思的原理的实施例的条目100的框图。在本实施例中,条目100包括计数器112。例如,所述条目可以是存储在诸如调度器或者其它缓存器之类的存储表中的生产厂商301、302和/或相关条目306(参见图3)。但是,条目100和计数器112可以是以各种方式实现的任意数目的不同条目。例如,条目100可以与其它类似条目100一起存储在存储器中,诸如调度器或者其它缓存器中。在另一实施例中,计数器112可以是与条目100关联的寄存器。条目100还可以包括附加信息114。附加信息11。
19、4可以包括诸如一个指令或者多个指令、寄存器、相关性向量等等之类的信息。可以或者可以不通过与条目100关联的计数器112存储附加信息114。例如,附加信息114可以存储在与计数器112分离的缓存器中。0023图2是示出根据结合本发明构思的原理的另一实施例的条目的框图。在本实施例中,条目200可以包括计数器112、相关性向量216和附加信息214。例如,条目200可以是例如存储在诸如调度器或者其它缓存器之类的存储表中的相关条目306(参见图3)。相关性向量216优选地指示条目200与零个或者更多其它条目之间的关系。例如,相关性向量216可以指示条目200与其相关的其它条目(诸如生产厂商条目301、。
20、302(参见图3)。但是,在另一实施例中,条目200可以是例如生产厂商条目,相关性向量216可以指示与条目200相关的其它条目。0024可以以各种方式表示相关性向量216。例如,相关性向量216可以包括一系列位,每个位相应于特定条目。特定位置中设置的位应当指示条目200存储在由该位表示的存储器位置处所存储的条目相关。在另一示例中,相关性向量216可以包括在条目200与寄存器、数据等等之类相关时对这些寄存器、数据等等之类的引用。任意数量的构造相关性向量的其它方式对于本领域技术人员来说是明显的。0025图3是示意地示出包括根据结合本发明构思的原理的实施例的条目的存储器的框图。参考图3,在本实施例中。
21、,存储器300被配置为存储多个条目。尽管列举了条目301、说明书CN104050215A4/10页7302和306,但是在存储器300中可以存在其它条目,而为了清楚起见已经将它们略去。条目301、302和306可以类似于上面描述的条目200。例如,条目301和302可以是生产厂商条目,条目306可以是与生产厂商条目301、302两个条目相关的相关条目。存储器结构300可以是调度器或者其它缓存器。尽管未示出,但是生产厂商条目301、302可以但是不需要包含类似于条目306的计数器212或者相关性向量216。0026在本示例中,条目306是与多个其它条目301、302相关的相关条目。这里,条目30。
22、6包括计数器312,其中计数器312的值可以通过指示条目306相关的条目的总数目的二进制数来装填。在这种情况下,计数器312设置为值2(102),指示条目306与两个其它条目301、302相关。0027另外,在本实施例中,相关性向量316包括等于存储器300中潜在条目数目的位数。每个位相应于其中一个条目。设置的位指示条目306与位于相应于该位的存储器位置处的条目相关。例如,在本示例中,相关性向量316值被设置为1102。如果存储器300中的潜在条目的数目是16,则相关性向量的宽度可以是16。因此,相关性向量316可以是00000000000001102。为了图3中简单起见,没有示出在更多有效位。
23、中的零。因为设置了相关性向量316的位1和2,所以该相关性向量316指示条目306与条目301和条目302相关。如果条目306与其它条目相关,则也应当设备相关性向量316的那些相应位。0028如上所述,计数器312的值可以被设置为条目306与其相关的条目的数目。例如,在一个实施例中,每个条目301和302可以仅具有一个目的地。因此,条目306与其相关的目的地的数目与条目的数目相同。但是,在另一实施例中,计数器312的值可以被设置为条目306与其相关的目的地的数目。如下面将更详细地描述的那样,每个条目301和302可以具有一个或多个目的地。计数器312的值可以被设置为条目306与其相关的唯一目的。
24、地的总数目。0029如下面更详细地描述的那样,可以通过将计数器312递减和递增来容易地执行相关性的清除和重建而不需要清除相关性向量316中的位。尽管在部分实施例中,可以清除所选择的用于条目的相关性向量316的相关性位,但是在其它实施例中,可以保持设置相关性位。也就是说,当清除或者重建相关性时不需要修改相关性向量316。在根据本发明构思的原理构造的实施例中,可以简单地通过将计数器递减执行清除相关性,以及通过简单地递增计数器来执行重建相关性。因此,用于根据本发明构思的原理清除和重建相关性的系统和方法可以具有显著降低的复杂度以及在区域和电力上降低的费用。0030根据一个实施例,当生成计数器312的值。
25、时,可以通过相关性向量316中的相关性位的弹出计数来生成所述值。例如,可以对相关性向量316中的设置位的数目(例如,一)进行计数。在图3的示例中,相关性向量316中的两个一导致计数器312值为102。0031计数器312可以提供为具有足以存储大于或者等于最大条目数的值的宽度。例如,如果存储器300的深度为16并且系统包括总共四个这样的存储器300,该存储器300被构造为使得单个条目306可以与来自任意存储器300的任意条目相关,则单个条目可以与之相关的条目的最大数目是63,不包括其自己。宽度为6位或者更大的计数器312可以用于本示例以提供足够宽度来对相关性的最大总数目计数。0032在另一实施例。
26、中,计数器312的宽度可以大于或者等于表示条目312可以与之相关的条目的最大数目所需要的位的最小数目。例如,在给定条目可以与之相关的条目的数说明书CN104050215A5/10页8目限定为2的情况下,可以使用具有降低宽度的计数器312。在这种情况下,两个位的计数器312宽度能够存储最大计数2以及可以被使用。换句话说,无论潜在相关性的数目多少,当对于给定条目的相关性的最大数目是2时,都可以使用宽度为2的计数器312。0033在结合本发明构思的原理的另一实施例中,计数器316的值可以通过逻辑操作而非对相关性向量316的位计数来生成。使用最大值2的相关性的示例,或(OR)操作和异或(XOR)操作可。
27、用于生成计数器的位。例如,如果仅设置一个相关性位,则相关性向量316的位的XOR操作将生成一个1。如果XOR操作的结果是0,则或操作可以用来确定相关性位的数目是0还是2。或操作的结果0指示设置了零个相关性位,而1指示设置了两个位。这里,XOR结果可以形成计数器312的最低有效位(LSB),XOR结果和OR结果的组合可以形成计数器312的最高有效位(MSB)。公式1和2示出可以用于创建计数器312的MSB和LSB的函数的示例,其中X是XOR结果,O是OR结果。0034LSBX100350036尽管已经在上面描述了在相关性的最大数目是2的情况下创建计数器的位的部分逻辑示例,但是逻辑操作可用于生成对。
28、于任意数量的相关性的计数器312值,包括那些需要大于两个位来存储相关性的最大数目的情况。因此,如果没有消除的话,也可以降低用于对相关性位的数目计数的计数器和这些计数器的相应延迟。0037尽管上面已经参考存储器300的条目描述了相关性向量316,但是应当理解,相关性向量316可以引用包含条目306与之相关的条目、数据、指令、操作等等之类的其它存储器、表格、队列等等之类。此外,尽管将相关性向量316描述为具有特定形式,但是相关性向量316可以采用任意数目的其它形式。例如,相关性向量316可以包括对寄存器、指令、条目、数据、高速缓存等等之类的引用。此外,尽管将相关性向量316和计数器312描述为追踪。
29、条目级的粒度,但是可以使用任意级别的粒度。例如,在计数器312追踪条目306与之相关的寄存器的数目的情况下可以使用寄存器级粒度。单个条目301可以与条目306与之相关的多个寄存器关联。因此,单个条目301可以导致大于1的计数器312值的增加。0038根据本发明构思的各种原理,无论相关性向量316的形式如何,都不需要因为相关性被清除和重建而清除、设置或者以其它方式修改相关性向量316。也就是说,使用计数器312的跟踪已解的和未解的相关性取代了对于修改相关性向量316本身的需要。0039图4至图8示出根据结合本发明构思的原理的、对图3的计数器312递减和递增的示例。首先参考图4,图4示出在相关条目。
30、306与之相关的条目301已经被推测性地选择之后的图3的存储器。如这里所使用的那样,术语“所选择的”或“选择”可以指代将条目从存储器300中去除的过程。例如,选择可以包括挑选条目301用于运行,其中条目301是处理器管道(例如,调度器)中的一个指令。条目301可以但是不需要响应于所述选择而立即从存储器300中去除。0040响应于选择条目301,计数器312变为指示相关性的数目的降低。这里,响应于选择条目301对计数器312递减,以指示一个更少的相关性。但是,很明显,相关性向量316没有改变。也就是说,用于条目301的位没有被清除,因此相关性向量316本身保持不变。0041在计数器312已经改变。
31、之后,计数器312可以与阈值相比较以确定条目306的相说明书CN104050215A6/10页9关性是否被清除。如果计数器312与阈值的比较指示相关性被清除,则条目306可以被指示为准备就绪被选择。例如,阈值可以是零,也即指示没有相关性保持。在本示例中,因为图4中的计数器312不是零,所以条目306没有准备就绪被选择。更加具体来说,因为条目306额外与之相关的条目302尚未被选择,所以相关条目306还未准备就绪供选择。0042现在参考图5,图5示出在相关条目306与之相关的第二条目302已经被选择之后的图4的存储器。类似于相对于图4描述的操作,计数器312再次响应于选择条目302而递减。因为对。
32、计数器312递减结果值为零,其等于本示例中的阈值,所以条目306准备就绪被选择。0043尽管已经在上面描述了对阈值零的显式比较,但是不需要执行显式比较。例如,计数器312可以被配置为当计数器312到达零时设置零标记。条目306可以响应于零标记被指示为准备就绪被选择。0044如上所述,条目306准备就绪被选择而不清除相关性向量316的条目。也就是说,图4中示出的初始阶段中的相关性向量316与图3和图5中的相关性向量316完全相同或者基本上完全相同。仅仅是计数器312改变,而相关性向量316未改变。0045现在将参考图6至图8讨论重建相关性。现在参考图6,图6示出了在已经取消了条目301之后的图5。
33、的存储器。如这里所使用的那样,取消可以包括在操作已经完成之前停止与条目301关联的操作。例如,如果条目301是一个指令,则条目301可以因为各种原因取消,诸如载荷丢失、出错、故障等等之类。如图6中所示,可以响应于将条目306与之相关的条目301从存储器300取消而改变计数器312。这里,计数器312加1。0046现在参考图7,图7示出在已经取消不同条目302之后的图5的存储器。即使取消了与图6中所示的不同的条目302,计数器312也仍然加1,以指示已经取消了推测性清除的相关性之一。因此,无论哪一个条目被取消,当取消任意单个条目时对于相关条目306的改变都可以基本上相同。0047根据本发明构思的。
34、原理,不需要记录被取消的条目的标识。换句话说,计数器312可以跟踪剩余相关性的数目,但是不需要保存哪些特定相关性剩余的信息。因为在可以选择条目306之前必须清除所有相关性,所以这提供了一种确定条目306何时准备就绪被选择而不带来与清除相关性向量316的位关联的麻烦的有效方式。0048现在参考图8,图8示出在已经取消生产厂商条目301、302之后的图5的存储器。例如,可以在取消条目302(参见图7)之后取消条目301或者可以在取消条目301(参见图6)之后取消条目302。无论先取消哪一个条目,条目306与之相关的条目的每一取消都导致计数器312增加额外计数值。在这种情况下,因为条目306与之相关。
35、的条目301和302二者都被取消,所以计数器312已经递增回其原始值2。0049图8的存储器300也可以导致多个条目基本上同时被取消。例如,存储器300可以在如图5所示的状态下。如果条目301和条目302二者基本上同时被取消,则计数器312可以加2作为响应。也就是说,计数器312可以递增被取消的条目的数目,而无论时间或次序为何。结果,计数器312的值仍然跟踪条目306的未解的相关性。0050如上所述,可以选择和取消条目。根据本发明构思的原理,因为相关性位没有被清除,所以不需要重建相关性向量316。而是,因为选择和取消了条目306与之相关的条目,所以计数器312被递减和递增。说明书CN10405。
36、0215A7/10页100051尽管已经在上面描述了递增和递减计数器312作为跟踪相关性的机制,但是改变计数器312的方法可以是不同的。例如,在实施例中,计数器312可以装填负数,诸如用于条目301和302的2,并且在计数器312中被适当地编码作为有符号数。计数器312可以根据条目被选择而递增,根据条目被取消而递减。一旦计数器312到达阈值零,条目306就可以被指示为准备就绪被选择。0052而且尽管已经使用零作为阈值,但是可以使用其它值作为阈值。例如,在实施例中,计数器312可以一开始被设置为零,并且阈值可以设置为条目306的相关性的数目。计数器312可以根据条目被选择而递增,根据条目被取消而。
37、递减。例如,在前面所描述的具有2个相关性的实施例中,阈值可以设置为2。一旦计数器312值到达2,条目306就可以被指示为准备就绪被选择。0053尽管使用了一个存储器300作为示例,但是可以使用任意数量的存储器300。而且,存储器300不需要属于相同功能的部分。例如,一个或多个存储器300可以是多个指令调度器的部分,而一个或多个其它存储器300可以是重播队列的部分。而且,任意条目可以与跨越任意存储器300的条目相关。此外,取消条目可以但是不需要导致将该条目离开其原始存储器300。例如,来自用于调度器的存储器300的指令可以被移动到用于重播队列的另一存储器300。0054图9是示出根据结合本发明构。
38、思的原理的实施例的、包括具有多个目的地的多个条目和相关条目的多个示例的存储器900的框图。在该实施例中,条目901包括目的地A和B。条目902包括目的地C、D和E。0055在该实施例中,相关性向量906、910和914包括相应于目的地的位。这里,开始于LSB,位相应于目的地A、B、C、D和E。可以存在其它目的地;但是,为了简单起见,仅示出用于目的地AE的位。在其它实施例中,相关性向量可以以如上所述的其它方式表示。0056条目904、908和912与条目901和902相关。具体来说,条目904、908和912各自具有与条目901和902的目的地相关的源。条目904包括源9071和9072。源90。
39、71与目的地B相关,而源9072与目的地C相关。这里,001102的相关性向量906指示条目904与目的地B和C相关。计数器905被设置为条目904与之相关的目的地的数目。这里,计数器905根据条目904与两个不同的目的地相关而被设置为102。0057条目908包括源9111、9112和9113。源9111和9112各自与目的地A相关,而源9113与目的地C相关。这里,001012的相关性向量910指示条目908与目的地A和C相关。计数器909被设置为条目908与之相关的目的地的数目。这里,计数器909根据条目908与两个不同的目的地即目的地A和目的地C相关而被设置为102。注意,即使条目90。
40、8包括三个源911,条目908也仅与两个不同的目的地相关。0058条目912包括源9151、9152和9153。源9151与目的地A相关,源9152与目的地B相关,而源9153与目的地C相关。这里,001112的相关性向量914指示条目912与目的地A、B和C相关。计数器913被设置为条目912与之相关的目的地的数目。这里,计数器913根据条目912与三个不同的目的地即目的地A、B和C相关而被设置为112。注意,即使条目912与两个条目901和902相关,因为条目912与条目901的两个目的地和条目902的一个目的地相关,所以计数器913仍被设置为三个。0059如上所述,计数器905、909和。
41、913可以响应于选择条目901和902而改变。例如,说明书CN104050215A108/10页11响应于选择条目901,计数器905可以根据条目904仅与来自条目的901的一个目的地即目的地B相关而减1。计数器909也可以根据条目908仅与来自条目901的一个目的地即目的地A相关而减1,即使多个源9111和9112与目的地A相关也是如此。但是,计数器913可以根据条目912与来自条目901的两个目的地即目的地A和B相关而减2。0060在本实施例中,条目904、908和912中的每一个仅与条目902的一个目的地即目的地C相关。因此,计数器905、909和913可以响应于选择条目902而减1。但。
42、是,在其它实施例中,条目904、908和912可以与类似于条目901的条目902的多个目的地相关并且相应计数器可以因此改变。0061尽管已经描述了响应于选择条目901和902改变计数器905、909和913,但是计数器905、909和913也可以如上所述响应于取消条目901和902而改变。例如,如果条目901被取消,则计数器905、909和913可以分别加1、1和2。而且,尽管已经使用递增和递减计数器作为改变计数器905、909和913的示例,但是计数器905、909和913可以如上所述以不同的方式改变。0062在实施例中,上面描述的源和目的地可以是指令的寄存器。例如,目的地AE可以相应于五个。
43、不同寄存器。源907、911和915可以指代不同寄存器。尽管已经使用寄存器作为源和目的地的示例,但是可以使用其它技术。例如,源和目的地可以指代存储器位置、用于查找表的标记、其它数据存储器位置等等之类。0063尽管条目901和902被示出为具有与条目904、908和912不同的组件,但是为了简单起见没有示出额外组件。也就是说,条目901和902也可以具有计数器、源和相关性向量,条目904、908和912可以具有目的地。0064在实施例中,上面描述的目的地和源可以是指令目的地和指令源。例如,如下面更进一步详细描述的那样,存储器900可以是处理器或者系统的部分、调度器的部分等等之类。因此,所述条目可。
44、以与指令关联,并且因此,所述目的地和源是相应指令的目的地和源。0065图10是根据结合本发明构思的原理的实施例构造的设备1000的框图。在本实施例中,存储器1002可以被配置为类似于存储器300,如上所述存储多个条目。因此,每个相关条目可以包括计数器。控制器1004被耦接到存储器1002。控制器1004可以被配置为执行上面描述的操作。例如,控制器1004可以被配置为根据相关条目与之相关的其它条目被选择和被取消而改变与相关条目关联的计数器。0066如上所述,可以存在多个存储器。因此,控制器1004可以耦接到一个或多个其它存储器1002。控制器1004可以被配置为相对于存储器1002中的每一个执行。
45、上面描述的操作。在另一实施例中,独立存储器1002可以各自耦接到不同控制器1004(未示出)。0067图11是示意地示出根据结合本发明构思的原理的实施例的一部分指令路径的框图。在本实施例中,通过分配器(DISPATCHER)1102接收到的指令可以被路由到一个或多个调度器1106。调度器1106可以被配置为确定指令何时被路由到运行单元1108。每个调度器1106可以包括如上所述的存储器300。存储器300的条目可以相应于调度器1106中正在等待的指令。0068因此,可以选择指令以供在运行单元1108中运行。根据指令被选择,可以以类似于上面描述的方式改变与任意相关指令关联的计数器。类似地,根据指。
46、令在运行单元1108中被取消,可以以类似于上面描述的方式再次改变与任意相关指令关联的计数器。结果,当说明书CN104050215A119/10页12指令被取消时,因为相关指令的相应计数器变为反映迄今尚未解的相关性所以不需要重建任意相关指令的相关性向量,而相关性向量本身未做修改。0069在实施例中,系统可以但是不需要依赖于清除相关性向量中相关指令的相关性位。而是,系统可以响应于生产厂商唤醒(PRODUCERWAKEUP),而将预装填的用于相关指令的计数器值递减。结果,如果生产厂商取消则可以通过将计数器倒回其原始值来执行重新创建相关性。本技术的优点是可以相对直接而且在区域和电力方面廉价地重建相关性。
47、向量。0070所述系统包括使用基于调度器条目数的矩阵调度器的一个或多个调度器1106。在基于调度器条目数的矩阵调度方案中,在调度器中每一指令或者条目存储一相关性向量。所述向量与调度器1106的深度一样宽,并且其通过设置每一源相关性的位捕获指令的所有相关性。这里,所述源是生产厂商指令。设置的位的位置指示源数据的生产厂商的条目数。注意,如果指令的所有源与相同的生产厂商相关,那么将仅有1位被设置。换句话说,被设置的位的数目指示指令与之相关的不同生产厂商的数目,而非具有相关性的源的数目。0071使用32个条目的调度器1106作为示例,32个条目的调度器1106可以包括其中每个条目相应于一个指令的多个条。
48、目。每个条目应当具有32位相关性向量以指示其源的相关性。如果该32位向量的第N位被设置,则其指示一个或多个其源在条目N中具有与生产厂商的相关性。0072每个调度器条目可以具有预装填的计数器,该计数器的值指示指令与之相关的生产厂商的总数。该计数器值可以通过对相关性向量中的所有32个相关性位的弹出计数而生成。但是,属于单一指令的源的数目可以是较低的单个数字,因此可以不需要全部32位的弹出计数。例如,如果一指令可以仅具有最大2个源,那么相关性向量中设置的位的最大数目可以仅为2。因此在这种情况下,代替弹出计数,我们可以选择使用相关性位的XOR和相关性位的OR来进行计数。如果XOR结果是1,则其指示仅设。
49、置1个相关性位。如果XOR结果是0,则其指示要么有2个相关性位被设置,要么没有相关性位被设置。为了确定是设置为2位还是零位,我们执行位的OR。如果结果是1则其指示2个性位被设置,如果结果是0则没有位被设置。因此XOR和OR的这一组合给我们提供有效的弹出计数。还可以有其它方式来得到预装填的计数值而无需执行对所有32位的完全弹出计数。0073当生产厂商唤醒相关源(多个)时,就取代清除相关性位(多个),而是将相关性计数器值递减。当计数器值命中零时,指令准备就绪被挑选。0074如果生产厂商推测性地唤醒其相关源(多个)然后取消(由于任意数量的原因,诸如载荷丢失、出错、故障等等之类),那么相关性计数值加1。如果多个生产厂商基本上同时取消,则计数器值将递增与取消的生产厂商的数目相等的值。0075在实施例中,每一指令的相关性计数器可以用于跟踪消费者指令与之相关的唯一生产厂商指令的数目。0076在另一实施例中,当指令分配给调度器1106的时候针对每个指令设置相关性计数器值。0077在另一实施例中,当生产厂商指令唤醒相关指令时,针对相关指令的相关性计数器值减1。0078在另一实施例中,当针对一指令的所有相关性满足时,换句话说,当生成相关指令说明书CN104050215A1210/10页13的所有生产厂商唤醒时,指令的相关性计数器值变为0并且准备就绪被挑选。0079在另一实施例中,当由生产厂商指令生成。