超线程微处理器中经线程优先级提供服务质量的制作方法_3

文档序号:8430498阅读:来源:国知局
br>[0057]此处,在字段222保存第一值,如逻辑I时,条目201和202与PE 220相关联。换而言之,在字段222保存第一值时,PE 220可利用在保留单元200中的条目201和202。此夕卜,在诸如条目223的条目保存第二值,如逻辑O时,PE 220不与对应的条目207和208相关联。因此,PE 220不能利用条目207和208。存储元件231与PE 230相关联。类似于字段222,存储元件231中的字段232也与条目201和202相关联。但是,如图所示,字段232保存第二值,即逻辑0,以指示PE 230不与条目201和202相关联。换而言之,条目201和202专用于PE 220,字段222指示PE 220可访问条目201和202,而条目232指示PE 230不可访问条目201和202。
[0058]如图所示,掩码221和231的组合指示条目201-206专用于PE220,条目207-208专用于PE 230,并且条目209-210与PE 220和PE 230均相关联。因此,如图所示,PE 220相关联的优先级别高于PE 230,这在存储元件225和235守指示。此处,通过允许PE 220访问10个保留条目中的8个条目,而更低优先级PE 230只能够访问10个条目中的4个条目,服务质量提供到处理元件220,即,更高优先级处理元件。此外,PE 220具有6个专用条目,而PE 230只具有2个专用条目。
[0059]注意,掩码221和231可随时动态更新。例如,在产生新线程时,条目可动态专用于新线程。相反,在终止线程时,专用条目可从该线程解除分配,并返回当前包括条目209-210的共用池,或者专用于另一处理元件。此外,条目可保留用于两个处理元件的调试或其它目的。虽然未示出,但如果条目224和234均包括逻辑0,则线程220和线程230均不与条目209-210相关联。
[0060]另外,在上下丈中交换到某个处理元件时,如PE 220,控制逻辑240可重新评估优先级并相应地更改掩码221和231。在一个实施例中,PE 220表示比PE 230更低优先级的情况下,掩码221和231更新为提供更多保留条目到PE 230。在另一实施例中,掩码231即更高优先级掩码,可更新为从条目209-210共享条目池中提供更多条目到PE 230。此外,掩码221可更新为向共享条目池返回一些专用条目,即201-206。
[0061]现参照图2b,它示出了控制模块/逻辑240的实施例。虽然如图所示,掩码221和231均可更新以向更高优先级PE提供服务质量,但更低优先级掩码用于确保高优先级处理服务质量。换而言之,如图2所示,不是通过更新高优先级掩码添加由高优先级处理元件对条目的访问,而是通过更新低优先级掩码从低优先级处理元件解除条目分配或者移去条目。
[0062]例如,假设图2a的存储元件225指示PE 220优先级比PE 230低,这在存储元件235中指示。但是,最初掩码221和231设为图2a中所示的值,这为PE 220提供的条目多于PE 230。图2b中的控制逻辑240确定PE 230优先级更高,并为PE 220实施低优先级掩码以确保高优先级PE 230从保留站接收适当的服务质量。基本上,复用器270和271要用于基于PE 220和230的优先级驱动最终掩码。在所示示例中,如果PE 220优先级更高,则复用器270选择掩码250,并且如果PE 220优先级更低,则选择备选“与”值。在一个实施例中,复用器270和271的输出要用于驱动图2a的掩码221和231。在另一实施例中,复用器270和271的输出返回给掩码250和251,掩码250和251有效地作为最终掩码221和231工作以确定保留条目分配。
[0063]为预排说明性示例,逻辑260确定PE 230优先级是否高于PE 220。在一个实施例中,比较逻辑将在存储元件235中存储的优先级别与存储元件225中存储的优先级别进行比较。此处,处理元件230优先级更高,即,逻辑260中的语句为真,并且逻辑266的语句为真。因此,逻辑I从逻辑260发迭到反相器261/与门263以及从逻辑266发送到与门262和与门263。反相器261的反转(invert)输出,即逻辑O和逻辑266的逻辑I作为到与门262的输入。从260和266的逻辑I作为到与门263的输入。与门262将O输出到复用器271,以便从控制寄存器251为PE 230选择最初掩码值。换而言之,默认掩码值用于高优先处理元件。
[0064]与此相反,与门263的输出向复用器270提供逻辑I,复用器选择与门264的输出,即,在低优先级掩码255与PE 220的掩码控制寄存器250之间执行与运算的结果。换而言之,在掩码控制寄存器250上施加低优先级掩码。此处,通过施加低优先级掩码,从诸如PE220的低优先级处理元件解除条目的分配。此外要注意的是,在PE 220优先级更高时,在处理元件230的控制寄存器251上施加更低优先级掩码255。在图2b所示的示例只示出两个处理元件。然而,类似的逻辑可用于为任何数量的处理元件更新任何数量的掩码。此外,可通过高优先级掩码添加条目到高优先级PE,S卩,在逻辑I中的或操作,通过低优先级掩码从低优先级PE减少条目,通过在两个掩码上的操作或者其组合重新分布条目。
[0065]回到图2a,在未示出的另一实施例中,存储元件221和231包括保存当前分别可由PE 220和230使用的条目的数量的计数器。在分配新指令或微操作到保留单元200中时,如果使用的当前条目数量低于阈值,则PE会分配到条目。在分配条目时,计数器会增大,并且在解除条目分配时,计数器会减小。因此,对于更高优先级处理元件,阈值可设得更高,和/或对于更低处理元件,可设得更低。
[0066]上面的示例分别利用逻辑I和逻辑O作为第一和第二值。但是,任何值可保存在字段中以指示相关联资源是否与保留条目相关联。此外,可能有与任何数量处理元件相关联的任何数量的存储元件,这些元件示为线程,但可包括共享对保留单元200访问的任何资源。
[0067]转到图3a,它示出了能够基于优先级,向线程提供服务质量的流水线实施例。虽然示出的是线程,但可包括共享流水线的任何处理元件。流水线经常指串联耦合在一起的若干个元件或级,其中,一个级的输出是下一个级的输入。例如,简化的流水线包括四个级:取指令、解码、失序执行和退役。注意,流水线330包括任何数量的级。另外,流水线330可表示诸如前端部分、后端部分或其它部分等部分流水线及整个流水线。级310-325包括任何熟知的流水线级,如资源选择、指令解码、分配、重命名、执行、退役或其它流水线级。
[0068]如图所示的选择级310要用于为在流水线330中的进一步处理选择线程301或线程302。以前,在假设流水线中未发生停止或其它事件的情况下,选择级310将选择最后选定线程的反转,以便线程301和302将在每个其它周期被选定。
[0069]在一个实施例中,偏置逻辑305要用于将选择逻辑偏向更高优先级线程。例如,存储元件303为线程301保存第一优先级别,并且存储元件304为线程302保持第二较低优先级别。因此,偏置逻辑305将选择逻辑偏向线程301,或换而言之,偏离线程302。在一个实施例中,偏置逻辑305在一段时间内向选择逻辑310提供线程优选比率以使选择逻辑310偏向线程301。此处,偏向线程301包括为线程301提供比线程302更多优选到选择逻辑310。例如,优选线程301对线程302的比率6: 2提供到选择逻辑310。其它的比率示例包括3: 1、4: 1、5: 2和8: O0虽然,提供了特定的比率示例,但任何优选比率或模式可提供到选择逻辑310。另外,在多于两个线程共享对流水线330的访问时,可提供不同的优选级别。此处,偏向更高优选线程包括用于该线程的优选值比更低优先级线程更多。
[0070]转到图3b,它示出了偏置逻辑305的实施例。此处,线程优先级偏置模式寄存器355是可配置长度反馈寄存器,在一段时间内注入一种线程优选模式。例如,偏置模式寄存器355的逻辑O表示诸如线程301的第一线程的优选,逻辑I表示诸如线程302的第二线程的优选。如图所示,偏置模式358要用于使优选偏向线程301。
[0071]在一个实施例中,控制寄存器350要用于保存偏置模式351。例如,在复位或起动时,偏置控制寄存器350设为保存偏置模式。另外,偏置控制寄存器350可在运行期间通过软件实体、用户或其它硬件/软件设置,以提供偏置模式/
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1