当前位置: 首页 > 专利查询>英特尔公司专利>正文

处理器中多线程之间的通信制造技术

技术编号:5817835 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及处理器中多线程之间的通信。在一个实施例中,本发明专利技术包括一种在实施或执行第二线程时访问与第一线程相关的寄存器的方法,该方法可用来:在与源操作数相关的同步标志指示第二线程的生产者操作尚未结束时,避免执行要从第二线程的寄存器堆访问源操作数的第一线程的指令,而在所述同步标志指示第二线程的生产者操作已经结束时执行所述指令。此外,还对其他实施例作了描述并提出了权利要求。

【技术实现步骤摘要】
【国外来华专利技术】处理器中多线程之间的通信
技术介绍
处理器已经成了很复杂的设备,包括大量的结构和复杂的控制技术,允许指令和数据通过该机器,以便执行所请求的不同操作。为了改善处理器的效率,某些处理器利用指令级的并行性(ILP)。尽管这样的技术可以提高效率,但也会增大功率消耗和设计的复杂性。有鉴于此,某些处理器以这样的意图设计,即通过支持和利用线程级并行性(TLP-"thread level parallem")的体系结构来允许多线程协作。所述处理器可以包括多个核,至少多个小核,诸如同时多线程(SMT國"simultaneous multithreading")的有序小核。但是,这样的有序核不如利用指令级并行性(ILP)时的无序核有效。这说明,这些有序处理器能够有效地执行并行应用,而一系列并行应用中的只有一个线程和部分代码的应用,在这样的体系结构上可能不会有效地表现。据此,某些处理器可以将应用分开,将线程分成较小的部分执行,以维持最低的复杂性,同时改善其效率。但是,当第一线程企图利用第二线程的信息时,可能产生一个数量过大的组织过程。附图说明图1是根据本专利技术一个实施例的方法的流程图2是根据本专利技术一个实施例的标记表的框图3是根据本专利技术一个实施例实现指令执行的框图4是根据本专利技术一个实施例产生流程标记信息的方法的流程图5是根据本专利技术 一个实施例的系统框图。具体实施例方式在另 一些实施例中,要在处理器的一个核上执行的多个线程可以访问寄存器堆中包含的与另一线程相关的值。这些实施例中,可通过类似的信道提供同时多线程(SMT)的有效运行。作为一个示例,可以在诸如同时多线程处理器等有序处理器的单一核上完成第一和第二线程。可以提供一种控制,以使生产者/消费者冲莫型成为可能,其中可以由该第二线程访问第一线程所产生的数据值,反之亦然。多个线程中的每一个都能够在执行期间读出另 一个线程的这些结构或体系结构的寄存器状态,这时以很低的组织活动允许线程之间的同步。为了保证当访问给定的寄存器时,能够读出给定寄存器的正确值,可以这样提供一种同步控制,使得消费者线程读出生产者线程中适当的数据。在另一些实施例中,诸如可用于指令的发送或分配的标记表的结构可以包括同步标志。更具体地说,第一线程的一个寄存器的标记表结构的每一条目都可以包括一个针对该第二线程的相应寄存器的同步标志。该标志的使用可以阻止一条消费者指令继续执行,直至另一线程对应的生产者指令实现为止,以在生产者寄存器堆中呈现想要的值。为了获得上述同步系统的好处, 一些实施例可以提供与一些指令相关联的流程信息。例如,可以提供与一条指令的内容相结合的流程指示或标记。在一个实施例中, 一条指令可以包括操作码、源与目的操作数,以及这些源与目的操作数中每一个的流程标记。如以下将附带描述的,不同的机制可以负责产生相应指令的流程标记。例如,可以这样提供编译器支持,使之能够在编译期间根据指令集体系结构(ISA-"instmction set architecture")上所提供的指令支持来产生流程标记。在其他实施例中,诸如硬件或软件优化装置等优化机制可以分析代码的流程控制并依次产生流程标记。这样,就可按指令细分或粒化(desmenuzamiento o desgranamiento )的程度来使多个线程同步。本专利技术的 一些实施例的某些特征适合于对寄存器的访问和同步。例如, 一个低组织活动的线程存储机制可用来访问其他线程的寄存器堆。这样,通过将一个线程的上下文存放在存储器中,可以避免复制一个线程的所有这些上下文寄存器的开销。这是因为可标出包含在存放的线程中的适当的消费者指令,结果就在其位置上从该存放线程的寄存器堆读出操作数。根据不同的实施例,可减少与两个颗粒细化的(desgranadas aldetalle)线程之间合作执行相关的这些组织过程。因此,可以利用一些与多线程特定功能的支持相关,以及与线程的存放相关的实施例。此外,还可利用一些与称为辅助线程相关的实施例,使之启动,以执行在另一个线程执行期间发生的特定任务。但应明白,本专利技术的范围并不受限于此,而是可用许多不同的实现方式访问寄存器和同步机构,包括不同的处理器体系结构、系统以及其他等等。接着,参阅图1,它说明根据本专利技术一个实施例的方法的流程图。如图1所示,方法10可用来执行第一线程的一条可能要访问在第二线程的寄存器堆中包含的信息的指令。如图1所示,方法10可以从接收一条要执行的第一线程指令开始(方框20)。例如,处理器的指令译码器可以接收一个译码指令。在一个实施例中,该指令可以包括用来指出要执行的操作类型的操作码、以及源与目的操作数的识别。除此之外,该指令还可以包括一些信息,以指示是否要从远程寄存器堆,例如与第二线程相关联的寄存器堆访问这些源/目的操作数中的一个,或是否提供该操作数。注意,尽管这里作为一个远程寄存器堆描述,但应明白,它也可以是在诸如多处理器包括例如若干有序核的多核处理器的单核上的本地寄存器堆和远程寄存器堆。还是参阅图1,接着可确定是否要从一个远程线程获得该指令的任何源操作数(菱形框30)。就是说,根据流程标记信息(在这些实施例中的一个)可以确定,是否要从远程线程,例如,包括从包含SMT核中的寄存器堆的第二线程获得任何源操作数。若如此,则控制转移到菱形框40,其中可确定,与上述操作数或上述所有远程源操作数相关的这些同步标志是否已激活。亦即,可以分析一个标记表或存储有关给定寄存器的值的可用性状态的识别信息的其他存储器,以确定所有这些要从远程寄存器堆获得的源操作数是否都包括所想要的值。换句话说,可以确定生产者线程是否已完成一个从属于第一线程的指令 所依赖的操作。在这个(这些)同步标志没有激活的情况下,菱形框40可以保持即自我关闭,以让该指令等到呈现该同步标志时再执行。 在这些同步标志已经存在时,这表示远程寄存器中已存在所想要的 值,控制转移到菱形框45,这一点将在下文说明。还是参阅图1,若判定来自某个远程线程(菱形框30)的任何源 操作数,或与所有这些远程源操作数相关的同步标志处于激活状态 (根据菱形框40的判定),则控制转移到菱形框45,其中可确定是否 有任何来自本地线程(亦即,第一线程)的源操作数。若如此,则控 制可以进到菱形框50,其中可确定是否有与操作数或与所有本地源操 作数相关的准备或备置标志激活。例如,可访问标记表,以确定指示 一条生产者指令已在第一线程之前完成的标志是否激活,使得来自同 一线程的从属操作可用适当的值执行。在相反的情况下,菱形框50可保持或自我关闭。控制从这两个菱形框45和50转移到方框60,其中指令可被发送 去执行。例如,指令发送器,诸如分配装置、保持装置或包括类似状 态的标记表或状态存储器的其他结构,可以将该指令发送以将它执 行。据此,诸如整数单元、浮点单元(FPU-"floating point unit")或其 他类似单元等执行单元,可以从具体识别的寄存器堆(方框70)访问 这些被指示的源操作数。这样,对于本地源操作数,可以访问与该线 程相关的本地寄存器堆,以获得这些源操作数,而对于远程操作数, 可以访问与第二线程相关的寄存器堆,例如,远程寄存器堆。还是参阅图1,该框中可执行指令(方框80)。例如,可对两个源 操作本文档来自技高网...

【技术保护点】
一种方法,包括: 由一个核访问一个第二线程的寄存器堆,以在所述核上执行第一线程的指令的期间为第一线程的指令获得源操作数。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:E吉伯特JM科迪纳F拉托雷JA皮内罗L罗佩斯A冈萨雷斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利