多线程处理器中的性能优先化的制作方法

文档序号:6569734阅读:164来源:国知局
专利名称:多线程处理器中的性能优先化的制作方法
技术领域
本发明实施例涉及多线程处理器,并且尤其涉及多线程处理器中的线 程处理。
背景技术
可以将一个应用程序分成多个线程,其是指令序列,例如在计算机的
中央处理单元(CPU)上执行的可执行单元。 一般而言,首先通过操作系统将 程序分成软件线程,然后将每一个软件线程映射或调度到CPU中对应的硬 件线程上,其通常是CPU中的寄存器组。为了以更快的速率处理线程,可
以使用多线程处理器,其可在特定时间同时接收和处理多个线程。 在软件线程创建期间,可以认为相比于其它线程, 一些线程具有与它
们关联的较高优先级。从而基于想要的性能特征,操作系统优先化(prioritize) 软件线程。通过操作系统进行线程优先化的一种方法是由多处理系统现在 使用的时间片(time-slice)方法。以这种方法,具有较高优先级的软件线程比 具有较低优先级的线程更频繁地接收时间片,并且更趋向于被多处理系统 使用,从而通常能达到较佳的性能。
然而在多处理系统使用中,前述优先化方法在多线程环境(其中在同时 执行的线程中同等地竞争资源)中是无效的。当将优先化的软件线程映射到 硬件线程中以由多线程处理器进行处理时,会出现问题。在当前,多线程 处理器同等处理每一个硬件线程,而不管它们所分配的软件优先级如何, 从而降低了初始操作系统优先化线程的效率。
在公知技术中这种缺点的一个原因在于多线程处理器的高速缓存 (cache)系统。传统上已设计出用于操作高速缓存系统的高速缓存替换算法, 用以为所有线程提供对称处理。然而,在对称的多处理系统中,同时执行 硬件线程的多个任务(即,没有优先化)通常会损害性能,尤其对于通常由软 件给出高优先级的实时线程而言。在很多例程维护任务(例如磁盘分区和病毒扫描)与实时任务(例如多媒体解码)同时运行时,这成为工作站和家庭工 作室中的阻碍。


图1示出了其中可以实现本发明示例性实施例的多线程处理器环境; 图2A-B示出了本发明的示例性实施例;
图3是示出根据本发明的示例性实施例的过程的流程图; 图4是进一步示出图3中所示的示例性过程的流程图5是图2A-B中所示的本发明的示例性实施例的电路图。
具体实施例方式
一般而言,本发明的实施例涉及用于在多线程处理器中进行性能优先 化的系统和方法。这里,本发明的实施例可应用于在多种计算设备中使用 的多线程处理器, 一般认为所述计算设备是固定式或便携式电子设备。计
算设备的例子包括但不限于以下设备计算机、工作站。例如, 一般认为
计算设备是任何类型的固定式或便携式电子设备,例如机顶盒、无线电话、
数字视频录像机(DVR)、网络设备(例如路由器、服务器等)等等。
为了彻底理解本发明的多个实施例,在下文中将阐述某些细节,但本 发明实施例也可以通过不同于所示出的那些实施例的很多实施例来实现。 为了避免使该说明书变得难以理解,并没有详细阐述公知的逻辑和操作。
在以下的描述中,使用某些词语来描述本发明的各个实施例的特征。 例如,词语"多线程处理器"包括同时处理两个或多个数据线程的任何设 备。词语"软件线程"指的是指令序列,例如可执行单元,这是通过将软 件程序分成这些指令序列而得到的,然后可以在计算设备的处理器(例如中
央处理单元(CPU))上执行指令序列。词语"硬件线程"指的是处理器中的
一组寄存器或其它存储介质,软件线程可以映射或调度到所述硬件线程上。 词语"软件" 一般表示可执行的代码,例如操作系统、应用程序、小
应用程序(applet)、例程或甚至一个或多个指令。软件可以存储于任何类型 的存储器(即合适的存储介质)中,例如可编程的电子电路、半导体存储器设 备、易失性存储器(例如随机存取存储器等)、非易失性存储器(例如只读存储器、闪存等)、软盘、光盘(例如高密度盘(compact disk)或数字通用盘 "DVD")、硬盘驱动、磁带或任何互连类型(以下将定义)。
参考图l,示出了多线程处理器环境l,例如计算机或工作站的多线程 处理器环境,其中可以实现本发明的示例性实施例。如图1所示,多线程 处理器环境1包括软件101和关联硬件102。软件101包括一个或多个应用 程序103和操作系统104。硬件102包括多线程处理器子系统107,其具有 与处理器106(例如处理器核)通信的高速缓存子系统105。如上所述,在应 用程序103执行期间,操作系统将待由应用程序103执行的任务分成软件 线程10,例如ST—1到ST—N(N>1),其是指令序列,例如可执行单元。如 图1所示,然后将每一个软件线程10映射或调度到对应的硬件线程11上, 例如HT—1到HT—N(NM),其一般是寄存器组,然后通过处理器106处理(例 如同时处理)软件线程。如图1所示,由硬件线程分配子系统200和高速缓 存使用监控子系统210控制在处理器106和高速缓存子系统105之间的关 于硬件线程11的处理的互动,下面将结合图2A-B对其进行详细描述。
图2A-B示出了本发明的示例性实施例。为了便于说明,处理器106是 双线程处理器,但能够处理任何线程数目的其它处理器也预期在本发明的 示例性实施例的范围内。如图2A所示,高速缓存子系统105,例如经由从 高速缓存子系统105读取数据并将数据写入高速缓存子系统105的信号 203,以及经由用于处理硬件线程11的信号205、 206和201,与处理器106 进行通信。高速缓存子系统105还包括数据阵列250,数据阵列250包括多 个高速缓存通道(cacheway)251,例如way—0至way—n(n>l),用于存储来自 硬件线程ll的数据。多线程处理器子系统107还包括硬件线程分配子系统 200,其利用高速缓存通道选择逻辑子系统(CSL)202来选择高速缓存通道 251的子集以存储来自硬件线程11的数据,将所述硬件线程11识别为由处 理器106处理的高优先级硬件线程11,如结合图5详细描述的。基于高速 缓存通道选择逻辑子系统202的选择,硬件线程分配子系统200将高优先 级硬件线程11分配给选择用于存储高优先级硬件线程11的高速缓存通道 251的子集。
如图2A进一步示出的,多线程处理器子系统107还包括高速缓存使用 监控子系统210,其与高速缓存子系统105通信并监控高优先级硬件线程
9ll(所述高优先级硬件线程11例如HTJ被分配给选择用于存储来自高优先 级硬件线程ll的数据的高速缓存通道251的子集),以及将所监控的高优先 级硬件线程HTJ的高速缓存使用与预定的高速缓存使用门限值相比较,如 下文结合图3-5所详细描述的。如果高优先级硬件线程HT一1的高速缓存使 用超出了预定的高速缓存使用非活动门限值,则硬件线程分配子系统200 可将所分配的高优先级硬件线程HT—1重新分配给高速缓存通道251之一。 在这个重新分配之后,硬件线程分配子系统200忽视对高速缓存通道251 的子集进行选择以存储来自高优先级硬件线程ll的数据,并可将硬件线程 HT_1重新分配给数据阵列250中的任何一个高速缓存通道251。如果在重 新分配之后硬件线程HT一1将重新占用活动的高速缓存的使用,则将中止重 新分配并且自动重新启动上述基于线程的选择。
图3是结合图2A-B示出根据本发明的示例性实施例的过程的流程图。 如图3所示,该过程开始于方框300,并进行到确定方框310,在确定方框 310中判断是否至少一个高速缓存通道251没有容纳(host)硬件线程ll(例 如,在其中没有存储相关数据)。如图2A所示,高速缓存子系统105包括 状态阵列270,其保持一组值271,例如value—0至value_n(n〉l),每一个值 271对应于数据阵列250中的高速缓存通道251。每一个值271例如value—0 指示对应的高速缓存通道251例如way一0是否容纳硬件线程11。适当地, 值271包括具有一个值的二进制值,例如1指示对应的高速缓存通道251 "有效"(例如,其容纳硬件线程11),另一个值例如0指示高速缓存通道 251 "无效"(例如,其没有容纳硬件线程11)。
如果在方框310中,确定所有高速缓存通道251容纳了硬件线程11, 则流程进行到方框320,在方框320中高速缓存通道251的子集被选择用于 存储硬件线程u,所述硬件线程11被识别为(例如通过操作系统104识另lj)
由处理器106处理的高优先级硬件线程11。
如图2A所示,高速缓存子系统105包括替换策略阵列(replacement policy array, RPA)240,其确定将特定的硬件线程11分配给哪个高速缓存 通道251。在本发明的示例性实施例中,将高优先级线程屏蔽(thread mask)230用于改变RPA 240的选择,从而留出(set aside)髙速缓存通道251 的子集仅用于高优先级硬件线程U。适当地,留出仅用于高优先级硬件线程11的高速缓存通道251的数目大于状态阵列250中高速缓存通道251总 数的一半。适当地,高优先级线程屏蔽230是产生信号232的位串,当将 其应用到RPA240的确定信号(decision signal)241的位时,使得RPA240仅 指向高速缓存通道251的子集。适当地,高优先级线程屏蔽230包括用于 存储高优先级屏蔽位的一个或多个寄存器(未示出)。
图2B示出了将高优先级线程屏蔽230应用到RPA 240的确定信号241 的例子。为了便于说明,RPA 240对八通道高速缓存(way—0到way一7)使用 伪LRU算法(PLRU),并且将7位(B0到B7)高优先级线程屏蔽230应用到 该八通道高速缓存。在这个例子中,在使能(enable)高优先级线程屏蔽230 并且存在请求206(图2A所示)以通过高优先级硬件线程11填充高速缓存通 道250的任何时候,将高优先级线程屏蔽230的多个位应用到PLRU位, 例如由确定树2象征性示出的那样。(基于本领域所公知的原理)应用预定的 高优先级线程屏蔽230导致PLRU的位l(如树2中所示出)偏向(bias)O,并 且最后使得way_2到way_7仅对高优先级硬件线程11可用。从而通过基于 PLRU位预定高优先级线程屏蔽230的位以实现上述结果,包括way—2至 way_7的高速缓存通道的子集280被留出以仅用于高优先级硬件线程11。 因此图3中方框320的过程实现了倾向高优先级线程11的RPA240的确定 中的偏向,从而对高优先级硬件线程11增加了高速缓存子系统105的资源 可用性。
低优先级线程屏蔽220可类似地应用到低优先级线程11,如图2A-B 所示,从而高速缓存通道251的子集被留出以仅用于低优先级硬件线程11。 适当地,低优先级线程屏蔽220是产生信号222的位串,当应用到RPA240 的确定信号241的位时,使得RPA 240仅指向高速缓存通道251的子集。 适当地,低优先级线程屏蔽230包括用于存储低优先级屏蔽位的一个或多 个寄存器(未示出)。以上述方式将预定的低优先级线程屏蔽220应用到图 2B的例子使得way—0和way_l仅对低优先级硬件线程11可用。以这种方 式,包括way—0和way—1的高速缓存通道的子集281被留出以仅用于低优 先级硬件线程ll。适当地,使用低优先级线程屏蔽220和高优先级线程屏 蔽230,从而使用两个选择的子集降低了低优先级硬件线程11与高优先级 硬件线程11平等共享高速缓存子系统105的机会,同时由于为高优先级硬件线程11对所有的高速缓存通道251进行偶然选择(accidental selection), 就确保了低优先级硬件线程ll没有完全被排除。适当地,例如经由从人用 户接收的指令编程,低优先级线程屏蔽220和高优先级线程屏蔽230中的 至少一个是可编程的。对低优先级线程屏蔽220和高优先级线程屏蔽230 的编程依赖于由RPA240使用的特定替换算法。
在另一个示例性实施例中,可以对低优先级线程屏蔽220和高优先级 线程屏蔽230编程,从而它们各自的低优先级和高优先级子集共享至少一 个高速缓存通道251,该高速缓存通道251可用于存储低优先级硬件线程 11和高优先级硬件线程11。例如,在图2B的例子中,可能以如下方式对 低优先级线程屏蔽220和高优先级线程屏蔽230编程,该方式是由低优先 级和高优先级硬件线程11共享way一0和way一l , way—2和way_3被保留以 仅用于低优先级硬件线程11,而way—4到way—7被保留以仅用于高优先级 硬件线程ll。适当地,对高速缓存通道251的每一个低优先级和高优先级 子集的选择是可编程的,并且基于接收的线程ID205在每一个硬件线程11 的基础上被执行。适当地,为每一个低优先级和高优先级子集选择的高速 缓存通道251的数目也是可编程的。
返回图3,流程然后进行到方框330,其中将高优先级硬件线程11分 配给在方框320中选择的仅用于高优先级硬件线程11的高速缓存通道251 的子集。接下来,在方框340中,例如通过图2A所示并且结合图4在下文 详细描述的高速缓存使用监控子系统210,对分配给在方框320中选择的高 速缓存通道251的子集的高优先级硬件线程ll(例如HTJ)的高速缓存使用 进行监控。
图4是示例性流程图,其结合图2A进一步示出了图3的方框340中所 示的监控过程。如图4所示,该过程开始于方框400,并进行到确定方框 410,在确定方框410中,高速缓存使用监控子系统210判断所分配的高优 先级硬件线程HT—1是否处于非活动的高速缓存使用状态。适当地,高速缓 存使用监控子系统210包括图2A所示的硬件线程活动状态子系统212,其 基于从处理器106接收的线程ID205,监控高优先级硬件线程11的活动。 如果确定高优先级硬件线程HT一1不处于非活动状态(确定方框410),则流 程返回到确定方框410,并继续以前述方式循环,直到高优先级硬件线程HT_1已由处理器106处理为止。
如果在确定方框410中,确定高优先级硬件线程HT—1处于非活动状态, 则流程进行到方框420,在方框420中测量非活动高速缓存使用状态时间段, 其是高优先级硬件线程HT—1保持非活动高速缓存使用状态的时间。流程然 后进行到方框430,在方框430中将所测量的时间段与预定的非活动高速缓 存使用门限值相比较。接下来,在确定方框440中,如果确定所测量的时 间段没有超出预定的非活动高速缓存使用门限值,则流程返回到确定方框 410。如果确定所测量的时间段超出预定的高速缓存使用门限值(确定方框 440),则过程返回到图3的方框340。适当地,基于时钟周期(未示出),通 过图2A所示的硬件线程活动逻辑子系统211执行方框420中对非活动高速 缓存使用状态时间段的测量。硬件线程活动逻辑子系统211包括计数器213, 其用以基于所测量的时钟周期增加计数,该计数对应于高优先级硬件线程 11例如HT一1保持非活动高速缓存使用状态的时间段。适当地,所测量的 时间段包括该计数。然后硬件线程活动逻辑子系统211将所测量的时间段 与预定的非活动高速缓存使用门限值进行比较,并判断所测量的时间段是 否超出预定的非活动高速缓存使用门限值。适当地,硬件线程活动逻辑子 系统211可以以多种软件或硬件实施来实现。
返回到图3,流程进行到方框350,在方框350中,如果基于图4的确 定方框440的结果,即基于监控操作确定高优先级硬件线程HTJ的高速缓 存使用超出预订的非活动高速缓存使用门限值(例如,确定HT—1的非活动 时间段超出可接受的时间段),则将高优先级硬件线程HT一1重新分配给另 一个高速缓存通道251。重新分配所分配的高优先级硬件线程HD一1则包括 例如经由改变图2A所示的低优先级线程屏蔽220和高优先级线程屏蔽230 的各自的使能位221和231中的值,对低优先级线程屏蔽220和高优先级 线程屏蔽230去能(disable)。该去能操作允许将HT—1重新分配给另一个高 速缓存通道251,而没有限制由低优先级线程屏蔽220和高优先级线程屏蔽 230的应用程序所使用的子集。如图2A所示,然后通过硬件线程分配子系 统200选择高速缓存通道251例如容纳HTJ的way—O作为牺牲通道(victim way),并且高速缓存通道251可用于另一个硬件线程11。适当地,硬件线 程分配子系统200将牺牲通道信号201传输给数据阵列250以及标签阵列260,以使得way—O可用于另一个硬件线程ll。适当地,标签阵列260保持 一组索引261,例如index—0至index—n(n>l),使每一个索引261对应于数 据阵列250中的高速缓存通道251。然后通过硬件线程分配子系统200将 HT_1重新分配给高速缓存通道251。接着流程进行到方框370,在方框370 中整个流程结束。
返回到确定方框310,如果确定一个或多个高速缓存通道251没有容纳 硬件线程11,则流程进行到方框360,在方框360中将高优先级硬件线程 ll分配给没有容纳硬件线程ll的高速缓存通道251。适当地,在确定方框 310中,如果一个或多个高速缓存通道251没有容纳硬件线程11,则状态 阵列270例如经由信号272通知硬件线程分配子系统200,从而流程可进行 到方框360。接下来,在方框360中,基于硬件线程分配子系统200将高优 先级硬件线程11分配给没有容纳硬件线程11的高速缓存通道251,状态阵 列270例如经由信号273为硬件线程分配子系统200提供关于没有容纳硬 件线程ll的高速缓存通道251的信息。接着流程进行到方框370,在方框 370中整个过程结束。需要明白的是,根据期望的软件或硬件实施考虑,方 框310和360中的操作可以在方框320至350中的操作之前或之后执行。 适当地,多线程处理器环境1包括提供软件的存储介质(未示出),如果该软 件由多处理器子系统107执行,则使得多处理器子系统107执行上述图3 和图4的操作。适当地,在多处理器子系统107内实施存储介质。
图5是图2所示的硬件线程分配子系统200的电路图。现在将参考上 述图3和图4的操作来讨论硬件线程分配子系统200的电路的整个操作。 如上文结合图2A和图3的方框320所描述的,多线程处理器子系统107包 括用以选择高速缓存通道251子集的高速缓存通道选择逻辑子系统202,高 速缓存通道251的子集用以存储被识别为由处理器106进行处理的高优先 级硬件线程10的硬件线程11。如图5所示,高速缓存通道选择逻辑子系统 202可将用以产生信号232的高优先级线程(HPM)屏蔽230的位串和用以产 生信号222的低优先级线程(LPM)屏蔽220的位串作为输入接收。接着在多 路复用器500中接收信号222和223,多路复用器500选择高优先级线程屏 蔽230或低优先级线程屏蔽220。适当地,通过多路复用器500进行的选择 是基于所接收的线程ID信号的,其表示来自硬件线程ll的请求的低或高优先级的特征。接着将所选择的信号504经由与门510施加到RPA 240的 确定信号241的多个位,使得RPA240仅指向高速缓存通道251的子集。
然后将产生的信号511从高速缓存通道选择逻辑子系统202输出到多 路复用器520,多路复用器520然后选择通过RPA 240原始选择的高速缓存 通道251(如信号241表示的)或通过应用所选择的高优先级线程屏蔽230或 低优先级线程屏蔽220之一所偏向选择的高速缓存通道251(如信号511表 示的)。基于所接收的表示高优先级线程屏蔽230或低优先级线程屏蔽220 是否已被使能的使能(EN)信号521来做出选择。如上文结合图3的方框350 的描述,使高优先级线程屏蔽230或低优先级线程屏蔽220去能的决定依 赖于关于所分配的高优先级硬件线程11例如HT—1的重新分配决定。接下 来,将多路复用器520的输出馈入牺牲通道确定逻辑方框530,以判断哪个 高速缓存通道251可用于容纳进入的硬件线程11。适当地,牺牲通道确定 逻辑方框530可以以多种软件或硬件实施来实现。所述高速缓存通道251 的判断依赖于选择是基于RPA 240所原始选择的高速缓存通路251进行的 还是基于多路复用器520所偏向选择的高速缓存通道251进行的,所述多 路复用器520的选择是基于使能信号521的。然后将牺牲通道确定逻辑方 框530的输出输入到多路复用器540。
多路复用器540然后以上文结合图3中确定方框310描述的方式在牺 牲通道531或牺牲通道273之间做出选择,牺牲通道531经由上述对应于 图3的方框320至350的过程确定,牺牲通道273基于高速缓存通道251 是否没有容纳硬件线程11而确定。来自状态阵列270的选择信号272确定 由多路复用器540做出的选择。如上文结合图3的方框310和360的描述, 如果一个高速缓存通道251没有容纳硬件线程11,则选择这个高速缓存通 道251,从而多路复用器540从状态阵列选择输入273作为其输出。否则, 选择输入531。如上所述,多路复用器540的操作可以在高速缓存通道选择 逻辑子系统550的那些操作之前或任何之后点执行,这依赖于所期望的软 件或硬件实施考虑。
需要注意的是,分别论述的前述实施例的多种特征仅为了进行清楚的 说明,可以将它们整体或部分地并入具有所有或一部分这些特征的本发明 的单个实施例。
权利要求
1、 一种方法,包括选择高速缓存中多个高速缓存通道的第一个子集,用于存储被识别为 高优先级硬件线程的硬件线程,以由与所述高速缓存通信的多线程处理器 对所述被识别为高优先级硬件线程的硬件线程进行处理;将高优先级硬件线程分配给所选择的第一个子集;监控被分配给多个高速缓存通道中所选择的第一个子集的高优先级硬 件线程的高速缓存使用;以及基于所述监控步骤,如果所述高优先级硬件线程的高速缓存使用超出 预定的非活动高速缓存使用门限值,则将所分配的高优先级硬件线程重新 分配给所述多个高速缓存通道中的任何高速缓存通道。
2、 如权利要求l所述的方法,还包括判断所述多个高速缓存通道中的至少一个高速缓存通道是否没有容纳 硬件线程;以及将高优先级硬件线程分配给所述多个高速缓存通道中没有容纳所述硬 件线程的至少一个高速缓存通道。
3、 如权利要求l所述的方法,其中,所述监控高速缓存使用的步骤还 包括判断所分配的高优先级硬件线程是否处于非活动高速缓存使用状态中;测量非活动高速缓存使用状态时间段,所述高优先级硬件线程在所述 时间段内保持所述非活动高速缓存使用状态;将所测量的时间段与所述预定的非活动高速缓存使用门限进行比较;以及判断所述时间段是否超出了所述预定的非活动高速缓存使用门限。
4、 如权利要求3所述的方法,其中,所述测量非活动高速缓存使用状态时间段的步骤还包括测量基于时钟周期的所述非活动高速缓存使用状态时间段。
5、 如权利要求l所述的方法,其中,基于每一个硬件线程来执行选择 所述多个高速缓存通道的第一个子集的步骤。
6、 如权利要求l所述的方法,其中,所述多个高速缓存通道的第一个 子集中的高速缓存通道数目超出了形成所述多个高速缓存通道的高速缓存 通道数目的百分之五十。
7、 如权利要求l所述的方法,其中,选择用于所述第一个子集的高速缓存通道数目是可编程的。
8、 如权利要求1所述的方法,还包括选择所述多个高速缓存通道的第二个子集,用于由与所述高速缓存通 信的所述多线程处理器对被识别为低优先级硬件线程的硬件线程进行处 理。
9、 如权利要求8所述的方法,其中,基于第一个预定的屏蔽来执行选择所述多个高速缓存通道的第一个子集的步骤,并且基于第二个预定的屏 蔽来执行选择所述多个高速缓存通道的第二个子集的步骤。
10、 如权利要求9所述的方法,其中,将所分配的高优先级硬件线程 重新分配的步骤包括使所述第一个和第二个预定屏蔽去能。
11、 如权利要求8所述的方法,其中,所述第一个和第二个子集共享 至少一个高速缓存通道,所述至少一个高速缓存通道可存储低优先级硬件 线程和高优先级硬件线程。
12、 一种系统,包括多线程处理器子系统,其包括具有至少一个高速缓存子系统的至少一 个处理器,所述高速缓存子系统与所述处理器通信并包括用于存储硬件线 程的多个高速缓存通道;与所述高速缓存子系统通信的高速缓存通道选择逻辑子系统,其用于 选择多个高速缓存通道的第一个子集,来存储被识别为高优先级硬件线程 的硬件线程,以由所述处理器对所述被识别为高优先级硬件线程的硬件线 程进行处理;与所述高速缓存通道选择逻辑子系统通信的硬件线程分配子系统,其 用于将高优先级硬件线程分配给所述多个高速缓存通道中所选择的第一个 子集;以及与所述高速缓存子系统通信的高速缓存使用监控子系统,其用于监控 被分配给所述多个高速缓存通道中所选择的第一个子集的高优先级硬件线 程,并将所监控的所述高优先级硬件线程的高速缓存使用与预定的高速缓 存使用门限值进行比较,以及基于所述监控步骤,如果所述高优先级硬件线程的高速缓存使用超出 所述预定的非活动高速缓存使用门限值,则所述硬件线程分配子系统将所 分配的高优先级硬件线程重新分配给所述多个高速缓存通道中的高速缓存 通道。
13、 如权利要求12所述的系统,其中,所述高速缓存使用监控子系统还包括硬件线程活动状态子系统,其用于判断所分配的高优先级硬件线程是否处于非活动高速缓存使用状态中;以及硬件线程活动逻辑子系统,其用于测量基于时钟周期的非活动高速缓 存使用状态时间段,将所测量的时间段与所述预定的非活动高速缓存使用 门限值进行比较,并判断所测量的时间段是否超出所述预定的非活动高速 缓存使用门限值,其中所述高优先级硬件线程在所述时间段内保持所述非 活动高速缓存使用状态。
14、 如权利要求13所述的系统,其中,所述硬件线程活动逻辑子系统还包括计数器子系统,其用于基于所测量的时钟周期增加计数,所述计数对 应于所述时间段,所述高优先级硬件线程在所述时间段内保持所述非活动 高速缓存使用状态,其中所述测量时间段包括所述计数。
15、 如权利要求12所述的系统,其中,所述高速缓存通道选择逻辑子 系统用于基于接收的指令来选择多个所述高速缓存通道,所述多个高速缓 存通道被选择用于所述第一个子集。
16、 如权利要求12所述的系统,其中,所述高速缓存通道选择逻辑子 系统选择所述多个高速缓存通道的第二个子集,用于由与所述高速缓存通 信的所述多线程处理器对被识别为低优先级硬件线程的硬件线程进行处 理。
17、 如权利要求16所述的系统,其中,基于包括至少一个第一屏蔽寄 存器的第一个预定的屏蔽,来选择所述多个高速缓存通道的第一个子集, 并且基于包括至少一个第二屏蔽寄存器的第二个预定的屏蔽,来选择所述 多个高速缓存通道的第二个子集。
18、 一种提供软件的存储介质,当由多线程处理器系统的处理器执行 所述软件时,使得所述处理器执行以下操作选择高速缓存中多个高速缓存通道的第一个子集,用于存储被识别为 高优先级硬件线程的硬件线程,以由与所述高速缓存通信的多线程处理器 对所述被识别为高优先级硬件线程的硬件线程进行处理;将高优先级硬件线程分配给所选择的第一个子集;监控被分配给多个高速缓存通道中所选择的第一个子集的高优先级硬 件线程的高速缓存使用;以及基于所述监控步骤,如果所述高优先级硬件线程的高速缓存使用超出 预定的非活动高速缓存使用门限值,则将所分配的高优先级硬件线程重新 分配给所述多个高速缓存通道中的高速缓存通道。
19、 如权利要求18所述的存储介质,其中,由执行所述软件引起的监控所述高速缓存使用的步骤还包括判断所分配的高优先级硬件线程是否处于非活动高速缓存使用状态中;测量非活动高速缓存使用状态时间段,所述高优先级硬件线程在所述 时间段内保持所述非活动高速缓存使用状态;将所测量的时间段与所述预定的高速缓存使用门限值进行比较;以及 判断所述时间段是否超出了所述预定的非活动高速缓存使用门限值。
20、 如权利要求18所述的存储介质,其中,在计算设备的处理单元内 实施所述存储介质。
全文摘要
根据本发明的一个实施例,揭示了一种方法选择高速缓存中多个高速缓存通道的第一个子集,用于存储被识别为高优先级硬件线程的硬件线程,以由与所述高速缓存通信的多线程处理器对所述被识别为高优先级硬件线程的硬件线程进行处理;将高优先级硬件线程分配给所选择的第一个子集;监控被分配给多个高速缓存通道中所选择的第一个子集的高优先级硬件线程的高速缓存使用;以及基于所述监控步骤,如果所述高优先级硬件线程的高速缓存使用超出预定的非活动高速缓存使用门限值,则将所分配的高优先级硬件线程重新分配给所述多个高速缓存通道中的任何高速缓存通道。
文档编号G06F12/08GK101313286SQ200680043761
公开日2008年11月26日 申请日期2006年12月7日 优先权日2005年12月22日
发明者G·N·斯里尼瓦萨, G·N·桑塔纳克里什南, M·T·罗兰, T·伊格扎瓦 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1