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

文档序号:8430498阅读:来源:国知局
下,总线接口单元105包括输入/输出(I/O)缓冲器以发送和接收互连170上的总线信号。互连170的示例包括射电收发逻辑电路(GTL)总线、GTL+总线、双倍数据率(DDR)总线、泵式总线、差分总线、高速缓存一致总线、点对点总线、多点总线或实现任何熟知总线协议的其它熟知的互连。如图所示的总线接口单元105也要与更高级高速缓存110通信。
[0038]更高级或更进一步的高速缓存110要用于在元件上为最近获取和/或操作的内容进行高速缓存。注意,更高级或更进一步指高速缓存级增大,或者从执行单元得到另外的通路。在一个实施例中,更高级高速缓存110是二级数据高速缓存。但是,更高级高速缓存110并不限于此,它可以是或者包括指令高速缓存,该缓存也可称为跟踪高速缓存。跟踪高速缓存可在解码器125后耦合以存储最近解码指令。模块120也可能包括预测要执行/使用的分支的分支目标缓冲器和存储指令的地址转换条目的指令转换缓冲器(1-TLB) ο此处,能够推测执行的处理器可能预取和推测执行预测分支。
[0039]解码模块125耦合到取指令单元120以将取指令的元件解码。在一个实施例中,处理器100与定义/指定在处理器100上可执行指令的指令集架构(ISA)相关联。此处,ISA识别的机器代码指令通常包括称为操作码的部分指令,操作码参考/指定要执行的指令或操作。
[0040]在一个示例中,分配器和重命名器块130包括分配器以保留资源,如存储指令处理结果的寄存器文件。但是,线程101可能能够失序执行,这种情况下,分配器和重命名器块130也保留其它资源,如重排序缓冲器以跟踪指令结果。单元130也可包括寄存器重命名器以将程序/指令参考寄存器重命名为处理器100内部的其它寄存器。重排序/退役单元135包括支持失序执行和以后失序执行的指令有序退役的组件,如上述重排序缓冲器、加载缓冲器和存储缓冲器。
[0041]在一个实施例中,调度程序和执行单元块140包括在执行单元上调度指令/操作的调度程序单元。实际上,指令/操作可能是在执行单元上根据其类型可用性调度。例如,浮点指令在具有可用浮点执行单元的执行单元端口上调度。与执行单元相关联的寄存器文件也包括在内,以存储信息指令处理结果。示范执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元及其它熟知的执行单元。
[0042]更低级数据高速缓存和数据转换缓冲器(D-TLB) 150耦合到执行单元140。数据高速缓存要在元件上存储最近使用/操作的内容,如数据运算符,这些内容可能以存储器相干状态保存,如已修改、独占、共享和无效(MESI)状态。D-TLB要用于存储最近的虚拟/线性到物理地址转换。以前,D-TLB条目包括虚拟地址、物理地址和其它信息,如偏移等,以便为最近使用的虚拟存储器地址提供便宜的转换。
[0043]在图1中,处理器100示为具有两个逻辑处理器的微处理器,即,两个硬件线程,其中,诸如保留单元和流水线等某些共享资源能够基于优先级向两个线程提供服务质量。但是,处理器100并不限于此。例如,处理器100可以为任何处理元件,如嵌入式处理器、单元处理器、微处理器或其它熟知处理器,包括能够执行多个上下文、线程、虚拟机等的任意数量的多个核/线程。
[0044]另外,为处理器100示出了处理器失序的简单图示微架构。但是,处理器100中所示任何模块/单元可以不同顺序/方式配置,可不包括在内及可与包括驻留在多个模块中的部分组件的另一模块/单元重叠。例如,保留单元可分布在处理器100中,而处理器在处理器100不同模块中包括多个更小的保留表。
[0045]转到图2,它示出了能够基于优先级,向处理元件提供服务质量的保留单元实施例。此处,保留单元200包括保留条目201-210。例如,保留单元包括36个条目;但是任何数量的条目均可包括。条目的示范范围包括从8个条目到128个条目的范围。
[0046]在一个实施例中,保留条目要用于保存指令信息。注意,在许多架构中,指令细分成多个微操作(mic1-ops)。因此,指令信息的使用也包括微操作信息。指令信息的示例包括保留信息、相关性信息、指令识别信息、结果信息、调度信息和与指令或微操作、资源保留和/或保留条目相关联的任何其它信息。
[0047]例如,如果参考第一指令的第一条目取决于第二指令,则第一条目包括相关性信息以指示它取决于第二指令。因此,第一指令在第二指令后才被调度执行。此外,第二指令的结果可保存在第一条目中,即与取决于第二指令结果的第一指令相关联的条目。
[0048]处理元件220和230共享对保留单元200的访问。存储区域可包括在内以保存与第一处理元件(PE) 220相关联的第一优先级别和与第二处理元件(PE) 230相关联的第二优先级别。存储区域可包括处理器中的任何存储区域,如高速缓存、寄存器或其它存储器件。在一个实施中,存储区域包括保存与处理元件220相关的第一优先级别的存储元件225和保存与处理元件230相关联的第二优先级别的存储元件235。
[0049]存储元件包括存储诸如表示优先级别的逻辑值等信息的任何元件。存储元件的示例包括上下文特定配置寄存器、上下文特定控制寄存器、机器状态寄存器(MSR)、架构控制寄存器、架构状况寄存器及通用控制寄存器。
[0050]第一和第二优先级别可包括与处理元件或软件实体相关联的任何优先级别。例如,有两个优先级别,即,高优先级别和低优先级别。诸如媒体应用程序和操作系统代码等某些类型软件实体可设计为高优先级,而诸如病毒扫描软件等其它软件实体可设计为低优先级。在利用两个优先级别时,存储元件225和235中单个比特可用于表示每个优先级别。但是,优先级别不限于两个优先级别。实际上,可利用任何数量的优先级别或优先级分层结构。例如,可利用两个比特表示的四个优先级别。
[0051]在一个实施例中,诸如操作系统(OS)、管理程序、应用程序或代码段要用于确定处理元件的优先级别。例如,知晓在PE 220和230上执行软件实体的管理程序或OS基于每个软件实体相互比较的重要性将第一优先级别分配并写入存储元件225,并将第二优先级别分配兵马入存储元件235。
[0052]又如,OS或管理程序响应于新上下文到PE 220中的上下文切换,将与新上下文相关联的优先级别交换到存储元件225。此处,存储元件225是线程特定控制寄存器,专用于PE 220。在新线程交换到核/硬件线程220时,OS或管理程序写入线程特定的控制寄存器225。此外,要在PE 220上执行的应用程序可被授予足够的特权级别以在PE220中设置其自己的优先级。
[0053]在另一实施例中,存储元件225是架构控制/状态寄存器或其它控制寄存器,响应于上下文交换而不是软件实体写入寄存器225自动设置。此处,硬件或其它代码可确定要交换到PE 220中的上下文优先级别。在上下文切换发生时,存储元件225的内容会自动设置。
[0054]控制模块/逻辑240要用于将处理元件220与保留资源的第一部分,即,保留单元200相关联,并且将处理元件230与保留资源的第二部分相关联。基于处理元件220和230的优先级别,改变保留单元200的耗用以提供服务质量。此处,诸如处理元件220的处理元件优先级高于诸如处理元件230的另一处理元件时,与PE 230相比,PE 220分配到更多保留条目。例如,在保留单元200包括36个条目时,20个条目专用于PE 220,8个条目专用于PE 230,并且8个条目在PE 220与230之间共享。
[0055]存储元件221和231示为在控制逻辑240外,但它们也可包括在控制逻辑240内。另外,控制逻辑240可以分布在包括处理元件220和230的整个处理器内。PE 220与存储元件221相关联,并且PE 230与存储元件231相关联。在一个实施例中,存储元件221和231是管理程序或操作系统看不到的寄存器。在另一实施例中,存储元件221和231是屏蔽寄存器,可能向用户显示为机器特定寄存器(MSR);但是,它们也可以是用户级看不到的屏蔽寄存器,并且只可由诸如控制逻辑240、操作系统、管理程序或B1S等执行程序看到。
[0056]掩码221中的条目或字段与第一数量的保留条目相关联。如图所示,字段222与两个条目相关联,即,条目201和202。但是,一个字段或任何数量的比特/字段可与任何数量的保留条目相关联。例如,在字段与条目之间可存在一对一关系,或者在字段与条目之间可存在一对二、一对三、一对四或其它比率。<
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1