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

文档序号:8430498阅读:来源:国知局
比率的动态改变。如图所示,一部分偏置控制寄存器350要用于保存偏置模式351,第二部分要用于保存大小值352。在一个实施例中,偏置模式寄存器355具有可调节的大小。此处,基于大小值352,复用器360从位移寄存器355选择四个输入之一作为头条目。例如,大小值352中的00值选择复用器360的零输入为头条目,这有效地设置寄存器355的大小为五。又如,大小值352设为11以选择复用器360的输入3作为头条目,即头条目357,这有效地设置寄存器355的大小为八。
[0072]通过调节寄存器355的大小,可提供不同的优选比率。例如,大小为八时,不可提供3: 2的比率;但是,如果大小设为五,S卩,大小值为00,则可提供3: 2的比率。在一个实施例中,诸如头条目357的选定头条目值再循环到尾条目356。此处,在条目357中的O作为优选移出时,它也再循环到尾部356,而在位移寄存器355中其它值前移。虽然上面的论述参照八位位移寄存器,但具有任何优选比率的任何大小存储区域均可利用。此外,任何值可用于表示处理元件或线程。例如,二进制值组合或多个寄存器可用于不止两个线程/处理元件。
[0073]在一个实施例中,寄存器355在空/闲置周期内不从头条目357移出值。例如,在流水线中发生阻塞停止时,不会进行线程选择,这是因为无法继续进行进一步处理。空周期的另一示例包括无微操作、操作或指令可用于进一步处理的周期。如上所述,优选包括表示一个线程的选择高于另一线程的优选。如图所示,提供了 6: 2的比率,其中,一个线程是优选为选择六次,而与之相比的另一个线程是两次。因此,在空周期内从寄存器355移出值可能改变预定的优选比率。
[0074]要举例说明,可假设在不进行选择的闲置周期内从寄存器355左侧移出两个0,并且随后在活动周期内剩余寄存器值的所有其它值会移出以提供优选。因此,由逻辑O表示的第一个线程将被选择四次而不是预定的六次。当前的6: 2比率因而将通过在闲置周期中的位移改变为4: 2。此处,值响应于空或闲置周期未移出以可能保持比率。注意,如后面所述,选择逻辑可由于单个优选线程无活动而忽略优选。因此,在另一实施例中,由于单个处理元件无活动,值可不移出。
[0075]逻辑365和/或逻辑375要用于确定处理元件的优先级别。在有不止两个处理元件时,更复杂的比较逻辑可用于确定多个优先级别。此处,逻辑365要用于确定诸如线程301的处理元件是否优先级比诸如线程302的另一处理元件更高。例如,逻辑365比较在与线程301相关联的存储元件303中保存的优先级值和在与线程302相关联的存储元件304中保存的优先级别。
[0076]注意,要用于确定是否存在更高优先级处理元件的逻辑375示为与逻辑365分开,但是,逻辑365可确定一个PE是否为更高优先级和/或为相同的优先级。此处,在线程301比线程302优先级更高时,逻辑365输出逻辑0,并且在线程302比线程301优先级更高时,输出逻辑I。如图所示,逻辑370为异或门。因此,如果逻辑365输出逻辑O以指示线程301优先级更高,则保持来自寄存器355的优选值。但是,如果如来自逻辑365的逻辑I所示,线程302优先级更高,则优选值被反转。
[0077]基本上,偏置模式是通用偏置模式,最初从线程301的角度设定,这可根据确定线程302优先级更高而反转。例如,如图所示,在寄存器355中用于线程301的6: 2优选提供为偏置模式。但是,如果逻辑365输出逻辑I以指示线程302优先级更高,则异或370提供反转的偏置模式,这对于线程302现在具有6: 2优选。
[0078]在另一实施例中,异或370耦合在控制寄存器350与优先级偏置模式寄存器355之间。此处,偏置模式可在线程优先级更改时重新加载。如果线程302成为更高优先级的线程,则初始偏置模式355通过异或门载入偏置模式寄存器355时反转以形成反转的偏置模式。
[0079]如上所述,逻辑375要用于确定一个线程是否优先级比另一线程更高。此处,如果线程301和线程302为相同的优先级别,则一个逻辑值输出到复用器380,该值指示线程为相同的优先级别。因此,复用器380选择默认输入,即,最后选定线程的默认选择逻辑的反转。此处,如上所述,选择最后线程的反转。但是,如果线程之一优先级更高,则第二逻辑值提供到复用器380以便选择从逻辑370提供的优选值。换而言之,存在优先级差别时,选择优选,并且在无优先级差别时,利用默认选择方法。
[0080]如上所述,未示出的逻辑可提供以忽略优选,并在单个线程的闲置周期内选择另一线程。例如,逻辑O从头条目357中移出。逻辑365确定线程301优先级比线程302更高。因此,异或370输出逻辑O到复用器380。此外,在线程301优先级比线程302更高时,逻辑375提供一个逻辑值以选择优选值0,即,线程301。但是,假设线程301具有闲置周期,即没有要选择的微操作或操作,则选择逻辑可选择线程302以保持流水线的最大使用。
[0081]回到图3a,在未示出的另一实施例中,偏置逻辑305包括跟踪逻辑以相对于线程302的选择跟踪线程301的选择。在一个实施例中,跟踪逻辑包括一个计数器或一组计数器。此处,在选择线程301时,计数器会增大,而在选择线程302时,计数器会减小。因此,如果线程301的选择次数多于线程302,则计数器为正值。与此相反,计数器可因为选择线程302而增大。控制逻辑也可包括在内并耦合到跟踪逻辑,以便基于计数器值提供优选。例如,如果线程301优先级更高,则控制逻辑基于计数器值提供优选。这种情况下,控制逻辑尝试保持正计数器值,即,相对于线程302更多次选择线程301。备选,可尝试将计数器保持为O。此处,在选择线程301时,计数器减小三,并且在选择线程302时,计数器增大一。在此示例中,保持计数器为O的偏置选择提供偏向线程301的3: I选择比率。
[0082]参照图4,示出了基于优先级偏置资源耗用的方法流程图实施例。在流程405中,与第一处理元件相关联的第一优先级别和与第二处理元件相关联的优先级别存储在存储区域中。处理元件通常包括保存处理器上下文/状态的任何元件,如线程、核或其它熟知的处理器器件。存储区域的示例包括高速缓存、存储器、寄存器、机器特定寄存器(MSR)、控制寄存器、上下文特定寄存器、架构寄存器或其它存储元件。存储区域可以是物理上连续的存储区域或单独的存储元件。
[0083]优先级可以任何方式确定。在一个实施例中,诸如管理程序、操作系统、客户应用程序、应用程序、虚拟机或其它代码等软件实体确定要在处理元件上执行的任务和/或代码的优先级别。在另一实施例中,硬件和/或固件基于任何数量的因素确定处理元件的优先级别,如要执行的任务、能耗水平和/或用户请求。在还有的另一实施例中,用户能够访问存储区域以明确设置优先级别。作为带有线程的一个说明性示例,响应于上下文切换,优先级别交换到上下文特定寄存器以指示优先级别。
[0084]接着,在流程410中,确定与第一处理元件相关联的第一优先级别是否为比与第二处理元件相关联的第二优先级别更高的优先级别。在一个实施例中,比较逻辑用于比较第一优先级值和第二优先级值。在另一实施例中,在执行时的代码要用于比较第一优先级别和第二优先级别。如果第一优先级别与第二优先级别相同,则利用默认选择方法,如交替选择。
[0085]但是,如果第一优先级别具有高于第二优先级别的优先级,则在流程415中,处理资源耗用偏向第一处理元件。处理资源示例包括保留资源、保留站、流水线、填充缓冲器、分支预测器单元、转换缓冲器、高速缓存。在一个实施例中,资源是保留站的情况下,保留站耗用偏向第一处理元件包括相应地设置第一和第二掩码。
[0086]如上参照图2所述,相对于第二更低的优先级处理元件,更多的总条目或更多的专用条目与第一处理元件相关联。作为带有28个条目保留站的一个特定说明性示例,第一掩码设为第一值以指示24个条目与第一处理元件相关联,并且第二掩码设为第二值以指示12个条目与第二处理元件相关联。另外,值的组合指示16个条目专用于第一处理元件,4个条目专用于第二处理元件,并且8个条目在第一和第二处理元件之间共享。
[0087]转到图5,示出了基于优先级偏置流水线耗用的方法流程图实施例。虽然,在图4和5中的流程以线性方式示出,但不同的流程可以不同的顺序执行。例如,偏置模式流程520和525可在流程505之前或之后计算机系统启动时执行。在流程505中,第一上下文和第二上下文在第一和第二处理元件中加载。例如,
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1