在多处理器计算机系统中进行基于资源的线程分配的方法和装置制造方法及图纸

技术编号:2842982 阅读:184 留言:0更新日期:2012-04-11 18:40
在系统的存储器中存储指示出所执行的指令线程的线程项。由各个指令线程对处理资源的使用被检测,并且用于所述线程的历史项被存储在系统的存储器中。所述历史项指示出各个处理资源是否已被各个指令线程所使用。所述指令线程中的第一指令线程和第二指令线程的历史项被比较。如果所述比较指示出由所述第一线程使用的处理资源的历史相对于由所述第二线程使用的处理资源的历史具有某种不同,则所述第二指令线程被选择用以执行。

【技术实现步骤摘要】

本专利技术涉及多线程计算机系统,并具体涉及确定在这种系统中的线程之间的冲突。
技术介绍
图1中示出了传统的片上双处理器系统。在此系统100中,处理器102和104共享处理器局部总线(“PLB”)106,PLB 106通过桥110与片上外围总线(“OPB”)108以及存储器控制器112互连,存储器控制器112与随机存取存储器(“RAM”)116和DMA外围设备118互连。如图所示,系统100包括耦合于OPB 108的多个外围设备(包括未示出的外围适配器)usb30、SATA、音频DAC、音频ADC、LCD、MAL、无线、uART、密码机、照相机、mpeg编码器、mpeg解码器和DMA。在诸如此类的多处理器环境中,多个线程在同一时间逐个运行,并从而可能竞争使用相同的外围设备。当然,这引起了线程之间的潜在冲突。在现有技术中已处理了该问题的各方面。例如,在美国专利No.6,018,759中,提供了使用超时过程来调整线程运行的时间量的线程交换协调工具。在另一示例中,美国专利No.6,061,710处理了对多线程上下文中的硬件中断的处理。
技术实现思路
本专利技术解决了上述问题。在本专利技术的一种形式中,一种装置包括处理器,可操作用于并行地执行各个指令线程,其中系统包括可操作用于与所述处理器通信的电路,并且系统可操作用于访问共享的处理资源。所述电路包括用于各个指令线程的存储器以及可操作用于在用于各个指令线程的存储器中生成和存储处理资源的历史项的第一逻辑电路。所述历史项指示出用于该项的处理资源是否已被存储器的指令线程中相应的一个所使用。第二逻辑电路可操作用于比较所述指令线程中的第一指令线程和第二指令线程的历史项。第二逻辑电路还可操作用于如果所述比较指示出由所述第一线程使用的处理资源的历史相对于由所述第二线程使用的处理资源的历史具有某种不同,则选择所述第二指令线程用以执行。在另一方面中,所述第一逻辑电路包括第一子逻辑电路,其可操作用于在存储器中生成和存储是否使用历史项。所述第一子逻辑电路设置所述是否使用项以指示出所述处理资源中对应的一个是否被所述指令线程中对应的一个所使用,并且响应于所述相应的指令线程超过所累计的所述相应的处理资源的未使用的某个阈值,复位所述是否使用项。在另一方面中,所述第一逻辑电路包括第二子逻辑电路,其可操作用于在存储器中生成和存储何时使用历史项。所述何时使用历史项指示出所述各个处理资源何时被所述各个线程最后使用。在本专利技术的方法形式中,在第一存储器中存储指示出所执行的指令线程的线程项。检测由各个指令线程对处理资源的使用,并且在第二存储器中存储用于所述线程的历史项。所述历史项指示出各个处理资源是否已被各个指令线程所使用。比较所述指令线程中的第一指令线程和第二指令线程的历史项。如果所述比较指示出由所述第一线程使用的处理资源的历史相对于由所述第二线程使用的处理资源的历史具有某种不同,则选择所述第二指令线程用以执行。在另一方面中,由所述第一线程使用的处理资源的历史与由所述第二线程使用的处理资源的历史之间的所述某种不同包括由所述第一线程使用的处理资源的历史与由所述第二线程使用的处理资源的历史完全不同。在一可替换方案中,所述第一线程正在运行,而系统处理器之一已经选择所述第二线程作为与所述第一线程一起运行的候选。在另一可替换方案中,系统处理器之一已选择所述第一线程运行,并且所述第二线程已经在运行。在另一方面中,所述处理资源包括系统的外围设备。通过阅读以下的详细描述并参考附图,本专利技术的其它变体、目的、优点和形式将更加明显。附图说明在权利要求中阐明了被认为是本专利技术新颖特征的特性。然而,通过参考以下对例示性实施例的详细描述并结合附图阅读,将最好地理解本专利技术本身以及其优选使用模式、另外的目标和优点,在附图中图1例示了根据现有技术的传统的片上双处理器系统。图2例示了根据本专利技术实施例的片上系统。图3是例示了根据本专利技术实施例的用于确定特定线程与在特定时间正运行的线程是否存在冲突的候选线程查询的某些过程和结构的高级框图。图4是例示了根据本专利技术实施例的用于确定可以与饥饿线程一起运行的线程的查询的某些过程和结构的高级框图。图5是例示了根据本专利技术实施例的线程资源分配逻辑的某些方面的框图。图6例示了根据本专利技术实施例的用于跟踪哪些外围资源被使用以及哪些线程在使用它们的线程资源分配逻辑的存储器阵列的细节。图7是例示了根据本专利技术实施例的关于线程资源分配逻辑怎样确定特定线程是否可以与在特定时间已经在运行的其它线程一起运行的某些一般方面的流程图。图8例示了根据本专利技术实施例的用于确定可以与饥饿线程一起运行的线程的线程资源分配逻辑。图9例示了根据本专利技术实施例的用于确定特定线程是否可以与在特定时间已经在运行的其它线程一起运行的线程资源分配逻辑。具体实施例方式在以下对优选实施例的详细描述中,参考了例示出可实践本专利技术的实施例的附图。应该理解,在不背离本专利技术范围的情况下,可以使用其它实施例并可做出改变。附图和详细描述并非将本专利技术限制为所公开的特定形式。相反,本专利技术将覆盖落入如权利要求所限定的本专利技术的精神和范围中的所有修改、等同物和变体。这里的标题并非以任何方式限制其主题。系统如前所述,在多处理器环境中,多个线程在同一时间逐个运行,并从而可能竞争使用相同的外围设备。根据本专利技术的实施例,线程资源分配逻辑(这里也被称为“线程资源分配核”或“TRAC”)确定可以在特定时间运行的线程组合,以减少线程冲突。这可包括TRAC响应于来自处理器的特定线程查询,其中该处理器将特定线程指示为用于上下文交换的候选者,并且TRAC通过指示出该线程是否将导致资源冲突来进行响应。此外,或者可替换地,这可包括TRAC响应于来自处理器的饥饿(starved)线程查询,其中TRAC确定出将不会导致与给定线程(例如,需要运行的“饥饿”线程)的资源冲突的线程的一个或多个列表,并将其传送给处理器。TRAC包括用来跟踪哪些外围资源被使用以及哪些线程在使用它们的逻辑和存储器阵列(这里被称为“资源使用存储器”、“资源使用列表”或“RUL”)。RUL具有指示出每个线程已使用了哪些外围资源的存储器项,以及指示出每个线程何时使用了这些外围资源中的每个的存储器项。现在参考图2,例示了根据本专利技术实施例的片上系统200。与图1的系统100相似,在系统200中,处理器102和104共享PLB互连总线106,PLB 106进一步连接到OPB总线108、桥110以及存储器控制器112。(当然,本专利技术适用于具有多于两个处理器的系统。增加存储器数量会增加外围资源冲突。因此本专利技术在具有更多处理器的系统中更加有用。)图2的OPB 108具有相关联的OPB时钟120,并根据其周期而工作。与系统100相似,如图所示,系统200包括多个外围设备(通过未示出的外围适配器连接于OPB 108)usb30、SATA、音频DAC、音频ADC、LCD、MAL、无线、uART、密码机、照相机、mpeg编码器、mpeg解码器和DMA。除了传统系统100的特征之外,系统200包括TRAC 202。其与PLB 106相连,从而其可以监听总线上的事务。处理器102和104可以经由DCR总线204访问TRAC 202的DCR寄存器(图2中未示出)。DCR寄本文档来自技高网...

【技术保护点】
一种装置,包括:处理器,可操作用于并行地执行各个指令线程,其中系统可操作用于访问共享的处理资源;以及电路,可操作用于与所述处理器通信,其中所述电路包括:用于各个指令线程的存储器;第一逻辑电路,可操作用于在用于各个指令线程的各个存储器中生成和存储处理资源的历史项,其中所述历史项指示出用于该项的处理资源是否已被存储器的指令线程中相应的一个所使用;以及第二逻辑电路,可操作用于i)比较所述指令线程中的第一指令线程和第二指令线程的历史项,以及ii)如果所述比较指示出由所述第一线程使用的处理资源的历史相对于由所述第二线程使用的处理资源的历史具有某种不同,则选择所述第二指令线程用以执行。

【技术特征摘要】
US 2005-10-28 11/163,7461.一种装置,包括处理器,可操作用于并行地执行各个指令线程,其中系统可操作用于访问共享的处理资源;以及电路,可操作用于与所述处理器通信,其中所述电路包括用于各个指令线程的存储器;第一逻辑电路,可操作用于在用于各个指令线程的各个存储器中生成和存储处理资源的历史项,其中所述历史项指示出用于该项的处理资源是否已被存储器的指令线程中相应的一个所使用;以及第二逻辑电路,可操作用于i)比较所述指令线程中的第一指令线程和第二指令线程的历史项,以及ii)如果所述比较指示出由所述第一线程使用的处理资源的历史相对于由所述第二线程使用的处理资源的历史具有某种不同,则选择所述第二指令线程用以执行。2.如权利要求1所述的装置,其中所述第一逻辑电路包括第一子逻辑电路,其可操作用于在存储器中生成和存储是否使用历史项,其中所述第一子逻辑电路设置所述是否使用项以指示出由所述指令线程中对应的一个对所述处理资源中对应的一个的使用,并且响应于所述相应的指令线程超过所累计的所述相应的处理资源的未使用的某个阈值,复位所述是否使用项。3.如权利要求1所述的装置,其中所述第一逻辑电路包括第二子逻辑电路,其可操作用于在存储器中生成和存储何时使用历史项,所述何时使用历史项指示出所述各个处理资源何时被所述各个线程最后使用。4.如权利要求3所述的装置,其中所述第二子逻辑电路包括周期计数器电路,所述周期计算器电路可操作用于响应于用于处理器的局部总线的周期,控制对所述何时使用项的更新。5.如权利要求4所述的装置,其中所述第二子逻辑电路包括复位逻辑电路,所述复位逻辑电路可操作用于响应于线程访问外围资源,用信号通知所述周期计数器电路来复位所述何时使用项。6.如权利要求5所述的装置,其中所述第一逻辑电路包括第一子逻辑电路,其可操作用于在存储器中生成和存储是否使用历史项,其中所述第一子逻辑电路设置所述是否使用项以指示出由所述指令线程中对应的一个对所述处理资源中对应的一个的使用,并且响应于所述相应的指令线程超过所累计的所述相应的处理资源的未使用的某个阈值,复位所述是否使用项。7.如权利要求6所述的装置,其中由所述第一子逻辑电路对所述是否使用历史项的所述设置是响应于来自所述复位逻辑电路的复位信号的。8.如权利要求3所述的装置,其中所述第二子逻辑电路具有线程访问计数器逻辑电路和复位电路,所述线程访问计数器逻辑电路可操作用于i)响应于所述复位电路用信号通知某个线程已访问外围资源,将所述何时使用项初始化为第一预定值,以及ii)响应于所述线程未访问所述外围资源,减少所述何时使用项。9.如权利要求8所述的装置,其中所述第一逻辑电路包括第一子逻辑电路,其可操作用于在存储器中生成和存储是否使用历史项,其中所述第一子逻辑电路设置所述是否使用项以指示出由所述指令线程中对应的一个对所述处理资源中对应的一个的使用,并且响应于所述相应的指令线程超过所累计的所述相应的处理资源的未使用的某个阈值,复位所述是否使用项。10.如权利要求9所述的装置,其中所述线程访问计数器电路可操作用于响应于所述何时使用项被减少到第二预定值,用信号通知所述第一子逻辑来复位所述是否使用项。11.如权利要求1所述的装置,其中所述处理资源包括外围设备...

【专利技术属性】
技术研发人员:AJ库尔谢内GJ曼JM诺曼SB斯坦斯基FA坎普夫
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1