用于阻塞线程的方法与装置制造方法及图纸

技术编号:2847111 阅读:184 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种通过在多线程处理器中阻塞处于分派过程中的线程而对线程性能进行精细粒度控制的方法、计算机程序产品和装置。多个线程共享处理器内的流水线。因此,一个线程上的指令的长等待时间状况可以延误共享该流水线的所有线程。分派阻塞信令指令阻塞处于分派过程中的包含长等待时间状况的线程。阻塞的长度与等待时间的长度相匹配,从而在长等待时间状况被解除之后,流水线可以分派来自被阻塞线程的指令。在一实施例中,分派阻塞信令指令是经修改的OR指令,而在另一实施例中,它是Nop指令。通过阻塞处于分派过程中的一个线程,处理器可以在阻塞期间分派来自其它线程的指令。

【技术实现步骤摘要】

本专利技术一般地涉及多线程处理器中的阻塞机制,更具体地说,涉及允许对线程性能进行精细粒度控制的分派阻塞机制。
技术介绍
多线程技术允许两个或更多的单独线程在同一处理核上执行。线程是可以独立执行的一部分程序或一组指令。因此,单个线程中的一组指令必须以程序顺序执行,而多个单独线程中的一组指令可以独立且并行地执行。处理器中的多线程使处理器能够更好地使用它的资源。多线程技术允许单个处理器对于软件来说表现为两个或更多处理器。理想地,每个线程将在其自己的资源上独立运行。每个线程将使用其自己的指令流水线与单元、执行流水线与单元等等。实际上,这种实现方式不可行,因为芯片上的面积和资源量有限。因此,不同的线程必须共享某些资源。例如,多线程可以共享相同的指令发布单元或执行流水线。对于多线程处理器来说,由于产生了资源“瓶颈”,与共享资源、处理指令从属性和确定访问资源的优先级有关的事务在性能方面变得有问题。在线程之间共享资源的问题在于,一个线程上的具有长等待时间的指令会延误另一线程上的指令的执行。例如,线程1和线程2共享相同的指令发布单元。因为指令单元是共享的,如果线程1在指令单元中延误了许多周期,则线程2也将延误许多周期。线程1可以由于正在执行的非流水线操作或等待将被清除的许多周期的从属性而延误。相应地,独立于线程1的线程2不能发布指令而必须等待线程1。这个问题造成了线程2的时间与资源的浪费。处理这个问题的一种方法是去耦合线程之间的发布点。这是一种有效的解决方案,但是它具有增加发布指令的复杂度的缺点,并且它需要芯片上的大量面积。另一种方法是在检测到长等待时间的指令时转储清除(flush)处于分派过程中的指令。这是有问题的,因为转储清除的损失很有可能不匹配指令的精确等待时间,这造成了浪费的周期。很明显,一种允许共享相同资源的多个线程独立地正确运行而不浪费周期的简单系统与方法将提供胜过现有技术的巨大改进。
技术实现思路
本专利技术提供了一种通过阻塞多线程处理器中处于分派过程中的线程而对线程性能进行精细粒度控制的方法、计算机程序产品和装置。多个线程共享处理器内的流水线。因此,一个线程上的指令的长等待时间状况会延误共享该流水线的所有线程。长等待时间状况可以是非流水线操作或从属性。当编译器可以预测该长等待时间状况时,它向代码注入分派阻塞信令指令以阻塞特定的线程。处理器检测该指令,并且将处于分派过程中的线程阻塞由该指令所规定的周期数(如果检测到额外的等待时间,则加上硬件可能添加的任何额外周期)。阻塞的长度与等待时间的长度相匹配,因此在长等待时间状况解除后,该流水线可以分派来自被阻塞线程的指令。在一实施例中,分派阻塞信令指令是经修改的OR指令,而在另一实施例中,该指令是一个Nop(空操作)指令。OR指令和Nop指令将线程阻塞特定的周期数,所述特定的周期数与该状况的等待时间相匹配。经修改的OR指令不影响程序的执行、寄存器文件状态、存储器状态或输入/输出,而它仅作为分派阻塞而运行。通过阻塞处于分派过程中的一个线程,处理器可以在阻塞期间分派来自其它线程的指令。这确保了一个线程的长等待时间状况不会导致多个线程的延误,并且确保当前线程被延误所必需的精确周期数。附图说明为了更全面地理解本专利技术及其优点,现在结合附图来参考下面的说明,在附图中图1描述了具有多线程能力的处理器的框图;图2描述了可以容纳多线程的处理器中的指令流水线的框图;图3是图示出在多线程指令流水线中使用经修改的分派阻塞机制的流程图;图4是图示出被用于阻塞多线程指令流水线的一个线程的经修改OR机制的示例的流程图;以及图5是描述出数据处理系统的框图。具体实施例方式在下文的讨论中,阐述了众多具体细节以全面理解本专利技术。但是,本领域技术人员将认识到,可以在没有这些具体细节的情况下实施本专利技术。在其它示例中,为了不在不必要的细节方面混淆本专利技术,以示例性或框图的形式图示了公知的组件。此外,对于主要部分,由于关于网络通信、电磁信令技术等的细节被认为对于获得对本专利技术的完整理解来说无关并且被认为在本领域普通技术人员的认识范围之内,因此省略了这些细节,还应当注意,除非另外指出,这里描述的所有功能都可以以硬件或软件或软硬件的某些组合来执行。然而,在优选实施例中,所述功能是以硬件实现的,以便提供最高效的实现。可替代地,除非另外指出,所述功能可以根据代码(例如计算机程序代码、软件)由处理器(例如计算机或电子数据处理器)和/或由被编码以执行这些功能的集成电路来执行。图1描述了具有多线程能力的处理器100的框图。该处理器包含存储器控制器102。存储器控制器102控制去往或来自处理器100的数据与指令流。相应地,指令单元104发布被发往执行单元106的指令。存储器控制器102与第2级(L2)高速缓存108通过接口连接。L2高速缓存108存储指令与数据。L2高速缓存与指令单元104和执行单元106上的单独的第1级(L1)高速缓存通过接口连接。指令单元104具有存储指令的L1高速缓存110,并且执行单元106具有存储数据的L1高速缓存114。指令单元104从L1高速缓存110提取指令,并且执行单元114从L1高速缓存114提取数据并向L1高速缓存114写入数据。处理器100可以包含图1中未示出的很多其它组件。图1是处理器的基本表现形式,并且其并不限制本专利技术的范围。图2描述了可以容纳多线程的处理器中的指令流水线200的框图。该装置200位于图1的指令单元104内,并且容纳三个单独的线程线程0、线程1和线程2(未示出)。如前所述,线程是可以独立执行的程序或一组指令。指令获取单元202获取用于所有三个线程的指令。指令获取单元202以优先级顺序获取指令。通常,指令获取单元202在三个线程之间交替,以使每个线程均等地访问指令流水线。指令获取单元202将这些指令传送到指令缓冲器。相应地,IBUF 0 204存储用于线程0的指令,IBUF 1 206存储用于线程1的指令,并且IBUF 2 208存储用于线程2的指令。指令缓冲器204、206和208向分派机制210传送指令。图2图示了三条单独的线程,但是该数目是任意的,并且这类装置200可以处理更多或更少数量的线程。分派机制210是选择正确指令用以分派到指令流水线216的多路复用器(“MUX”)。图2使用MUX作为分派机制210,但是可以实现其它组件来获得相同结果。分派机制210在IBUF 0 204、IBUF 1 206或IBUF 2 208的输出之间来回切换(toggle),以给予每个线程等同的优先级和访问指令流水线216。分派控制块214选择哪个线程被分派。如果分派控制块214检测到经修改的OR指令,则它中断分派机制210的正常切换机制。在分派之后,指令进入指令流水线216。指令流水线216供给图1的执行单元106。执行单元106执行指令。本申请参考发布流水线并且更具体地参考指令流水线描述了示例性实施例。该实施例应用于存在资源争用的流水线的任意地点。例如,该实施例还应用于执行流水线。示例性实施例涉及分派机制210、分派控制块214和编译器(未示出)。从而,造成线程0延误的指令也引起独立的线程1和2的延误,因为所有三个线程共享指令流水线216。示例性实施例通过使用分派阻塞信令指令本文档来自技高网
...

【技术保护点】
一种用于在多线程处理器中的流水线的分派点处阻塞一个线程的方法,其中所述流水线由多个线程所共享,所述方法包括:检测所述流水线中的第一线程上的长等待时间状况;确定与所述长等待时间状况有关的准确等待时间;生成分派阻塞信令指 令;响应于所述分派阻塞信令指令,在所述分派点处将第一线程阻塞一定量的周期;在阻塞期间,分派来自指令流水线的其它未被阻塞的线程的指令;以及在阻塞之后,分派来自指令流水线的所有未被阻塞的线程的指令。

【技术特征摘要】
US 2005-6-16 11/154,1581.一种用于在多线程处理器中的流水线的分派点处阻塞一个线程的方法,其中所述流水线由多个线程所共享,所述方法包括检测所述流水线中的第一线程上的长等待时间状况;确定与所述长等待时间状况有关的准确等待时间;生成分派阻塞信令指令;响应于所述分派阻塞信令指令,在所述分派点处将第一线程阻塞一定量的周期;在阻塞期间,分派来自指令流水线的其它未被阻塞的线程的指令;以及在阻塞之后,分派来自指令流水线的所有未被阻塞的线程的指令。2.如权利要求1所述的方法,其中所述方法被用在计算机系统或数据处理系统中。3.如权利要求1所述的方法,其中所述长等待时间状况是非流水线操作或从属性。4.如权利要求1所述的方法,其中确定准确等待时间的步骤还包括确定所述流水线内每个可能的长等待时间状况的等待时间;以及将对应于每个等待时间的周期时间编程到所述多线程处理器中。5.如权利要求1所述的方法,其中生成分派阻塞信令指令的步骤还包括生成分派阻塞信令指令以将第一线程阻塞一定量的周期以匹配于所述等待时间。6.如权利要求5所述的方法,其中所述多线程处理器将所述分派阻塞信令指令插入第一线程中。7.如权利要求6所述的方法,其中所述分派阻塞信令指令是一个空操作指令,所述空操作指令在所述分派点处将第一线程阻塞所述一定量的周期以匹配于所述等待时间。8.如权利要求6所述的方法,其中所述分派阻塞信令指令是经修改的OR指令,所述经修改的OR指令在所述分派点处将第一线程阻塞所述一定量的周期以匹...

【专利技术属性】
技术研发人员:CM阿伯内西JJ德门特AJ小万诺斯特兰D希比
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1