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

用于线程到线程通信的方法、系统和装置制造方法及图纸

技术编号:2856767 阅读:141 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了线程到线程通信。第一线程向信关注册用以接收通信。注册过程包括标识用于接收消息的位置。信关将从第二线程接收到的消息有效载荷映射到所述第一线程的位置。第一线程检测所述位置中的有效载荷,并且在用于处理时使用它。

【技术实现步骤摘要】

本专利技术的实施方案总地涉及并行处理,更具体地,涉及用于线程到线程通信的技术。
技术介绍
线程是一个独立的可执行指令块,它能够被复制地、并行地处理。软件可被开发为线程化的,意味着它可以被复制地、并行地处理。当在线程化应用内发生了大量相互独立的处理时,或者当线程化应用要处理大量数据时,并行处理特别有用。并行处理技术允许更有效率地使用处理器和存储器,并且在多处理器体系结构中提供了更高的处理吞吐率。在一些领域中并行处理已显得特别有益并被部署在产业之中,这些示例性的领域包括图形和多媒体处理。这些领域通常耗用大量的数据,并且这些数据中的很多可以相互独立地处理,或者相互独立地致使生成期望的输出。典型地,线程化应用使用以下模块,该模块控制多个可被同时处理的线程化应用的处理流。即,一个模块判断一些线程已何时结束了它们的处理,以及某些其他线程何时应开始进行处理。该模块紧紧耦合到它所管理的线程化应用。这意味着该模块保留有处理逻辑,以便识别它正在管理的线程并与之通信。因此,如果多处理器环境中的其他情况更改了某一具体线程的处理位置,则所述模块将这一改变后的位置通知给处理逻辑。结果,所述模块可能变得难以控制,并且可能需要定期的调整和维护,以便有效地管理它在多处理器环境中的线程化应用。另外,在很多应用(例如图形、多媒体、数据信号处理、数值计算、物理建模、人工智能等)中,都可能存在固有的数据依存性,这种依存性可能会限制可实现的线程并行度。对于一些多媒体应用来说这格外成问题,在多媒体应用中,数据单元可能很大,并且可能因为识别出的数据依存性的量而只能找到有限的少数独立线程。这些数据依存性也可能是多维并且复杂的,导致因为只有少数独立线程是可以识别的并被并行处理,所以即便在使用并行处理时,传统的并行处理技术也几乎没有使处理吞吐率提高。事实上,与线程通信相关联的开销和成本高是现有并行体系结构和方法中普遍存在的问题。因此,需要改进的用于并行处理技术的线程到线程通信。
技术实现思路
为解决以上问题,本专利技术提供了线程到线程通信。第一线程向信关(gateway)注册用以接收通信。注册过程包括标识用于接收消息的位置。信关将从第二线程接收到的消息有效载荷映射到所述第一线程的位置。第一线程检测所述位置中的有效载荷,并且在用于处理时使用它。根据本专利技术的一个方面,提供了一种方法,包括注册第一和第二线程中的至少一个线程用以通信;如果第一线程被注册,则标识供第一线程从第二线程接收通信的第一位置;如果第二线程被注册,则标识供第二线程从第一线程接收通信的第二位置;从所述线程中的一个线程接收消息;并且响应于包括在所述消息中的目的地标识符,将所述消息转发到所述位置之一。根据本专利技术的另一个方面,提供了一种方法,包括向信关发送打开信关请求,其中所述请求包括对用于接收消息的位置的引用;用线程标识符构造(configuring)子线程;以及发起所述子线程。根据本专利技术的又一个方面,提供了一种系统,包括第一线程;第二线程;和信关,其中所述信关通过判定与所述第一和第二线程相关联的位置,建立并管理所述第一和第二线程之间的通信,其中所述那些位置收容在所述第一和第二线程之间发生的消息。根据本专利技术的再一个方面,提供了一种具有关联指令的机器可访问介质,所述指令在被访问时导致所述机器执行保持在第一线程标识符和第一位置引用之间的第一映射以及在第二线程标识符和第二位置引用之间的第二映射当中的至少一个映射;并且,有一些消息从所述第一和第二线程中的至少一个线程被发送到所述第一和第二位置引用中的至少一个位置引用,响应于包括在这些消息中的目的地标识符,并且响应于所述第一和第二映射中的至少一个映射,转发所述消息,其中用于某一具体消息的具体目的地标识符是所述第一线程标识符或所述第二线程标识符。根据本专利技术的再又一个方面,提供了一种装置,存在于计算机可访问介质中,包括映射库;目的地寄存器;和路由器,其中所述目的地寄存器从发起线程接收目标线程标识符,所述目标线程标识符位于所述映射库中,用以标识用于目标线程的处理位置,并且其中路由器响应于所述处理位置,将从所述发起线程接收到的消息的有效载荷传递通过,到达所述目标线程。附图说明图1是根据本专利技术一个示例性实施方案的、用于线程到线程通信的一种方法的流程图。图2是根据本专利技术一个示例性实施方案的、用于线程到线程通信的另一种方法的流程图。图3是根据本专利技术一个示例性实施方案的、用于线程到线程通信的又一种方法的流程图。图4是根据本专利技术一个示例性实施方案的、线程到线程通信系统的图。图5是根据本专利技术一个示例性实施方案的、协助实现线程到线程通信的示例性信关体系结构的图。具体实施例方式图1图示了用于线程到线程通信的一种方法100的流程图。方法100被实现在机器可访问介质中。然而,可以用多种方式实现方法100,仅以示例的方式来说,方法100可被实现为一系列信号,作为硬件实现的一部分,等等。在一个实施方案中,方法100是在相互通信的线程之间起到中介或管道作用的信关服务。信关服务的处理可被实现为软件、固件、硬件或者它们的各种组合。通过集成在多处理器机器体系结构内的任何网络,可以访问所述方法。一开始,获得或开发出管理线程化应用的驱动器应用。该驱动器应用可被视为一个父线程(parent thread),它管理着它产生的子线程(children thread)。该驱动器应用在多处理器体系结构中被启动用于处理,并被设计为以下列方式与方法100的处理(此后称为“信关”)进行通信。在一个实施方案中,父线程被视为第一线程。然而,父线程的指定是相对的,因为初始父线程(例如驱动器应用)的初始子线程自身相对于该初始子线程产生的任何下属子线程而言可以是一个父线程。此外,这里使用的术语“第一和第二线程”可以指寻根到一个初始父线程的任意两个线程。另外,初始父线程可被视为第一或第二线程。父线程、子线程、第一和第二线程等术语的指定是基于具体处理状态和线程之间的交互而作出的。在110A,第一线程被注册到用于从其他线程接收消息或通信的信关。与110A同时,在110A之前或者之后,第二线程110B被注册到用于从其他线程接收消息或通信的信关。在一个实施方案中,当线程向信关发出打开信关请求时,实现向信关的注册。打开信关请求标识出请求线程、操作(例如打开信关请求)、可选的密钥信息、以及位置引用,所述位置是请求线程在通信期间希望从其他线程接收消息的位置。信关经由在注册期间所提供的请求线程的标识符,获取用于请求线程的特定位置标识符。在注册期间提供的操作字段通知信关所述请求线程正在请求什么动作(例如打开信关、注册、转发消息、关闭信关等)。在注册期间提供的可选密钥信息通过指示信关检查前往请求线程的任何消息以获得密钥信息,允许信关代表请求线程实现安全性。在另一个实施方案中,可选密钥信息是由信关产生的,并在注册期间被发送给请求线程。信关可以使用随机数发生器(RNG)、伪随机数发生器(PRNG)、安全密钥交换协议例如公钥密码算法(例如使用由Rivest、Shamir和Adleman开发的RSA算法的因特网加密和认证)、或者安全性领域中的普通技术人员所公知的任何其他技术来生成密钥。在注册期间提供的位置引用向信关指示一个请求线程期望接收消息的寄存器本文档来自技高网
...

【技术保护点】
一种方法,包括:注册第一和第二线程中的至少一个线程用以通信;如果第一线程被注册,则标识供第一线程从第二线程接收通信的第一位置;如果第二线程被注册,则标识供第二线程从第一线程接收通信的第二位置;从所述线程中的一 个线程接收消息;以及响应于包括在所述消息中的目的地标识符,将所述消息转发到所述位置之一。

【技术特征摘要】
US 2004-6-28 10/880,1551.一种方法,包括注册第一和第二线程中的至少一个线程用以通信;如果第一线程被注册,则标识供第一线程从第二线程接收通信的第一位置;如果第二线程被注册,则标识供第二线程从第一线程接收通信的第二位置;从所述线程中的一个线程接收消息;以及响应于包括在所述消息中的目的地标识符,将所述消息转发到所述位置之一。2.如权利要求1所述的方法,还包括从请求线程接收关闭通信请求,所述请求线程被标识为所述第一或第二线程;以及删除所述请求线程的位置,使其不再在通信期间使用。3.如权利要求1所述的方法,还包括检测事件,所述事件指示出所述线程之一将使其通信关闭;以及删除该线程的位置,使其不再在通信期间使用。4.如权利要求1所述的方法,还包括在转发所述消息之前,验证包括在所述消息中的密钥信息。5.如权利要求1所述的方法,其中注册操作进一步包括以下操作中的至少一个从所述第一线程接收第一打开通信请求;以及从所述第二线程接收第二打开通信请求。6.如权利要求5所述的方法,其中标识操作进一步包括以下操作中的至少一个在所述第一打开通信请求中,从所述第一线程接收第一寄存器位置作为所述第一位置;以及在所述第二打开通信请求中,从所述第二线程接收第二寄存器位置作为所述第二位置。7.如权利要求6所述的方法,其中标识操作进一步包括以下操作中的至少一个保持从第一通用标识符到用于第一线程的第一寄存器位置之间的第一映射;以及保持从第二通用标识符到用于第二线程的第二寄存器位置之间的第二映射。8.如权利要求7所述的方法,其中转发操作进一步包括从所述消息的字段中提取被标识为第一或第二通用标识符的目的地标识符,以便确定所述映射中的哪一个为所述消息提供了适当的寄存器位置。9.一种方法,包括向信关发送打开信关请求,其中所述请求包括对用于接收消息的位置的引用;用线程标识符构造子线程;以及发起所述子线程。10.如权利要求9所述的方法,在所述位置中检测用于所述子线程的子标识符;生成具有所述子标识符的消息;以及将所述消息发送到所述信关,以处理到所述子线程。11.如权利要求9所述的方法,还包括在所述位置中检测与所述子线程相关联的第一子标识符;响应于检测到所述第一子标识符,生成具有与第二子线程相关联的第二子标识符的消息,其中所述消息的有效载荷包括所述第一子标识符;以及向所述信关发送所述消息,以处理到所述第二子线程。12.如权利要求9所述的方法,其中发送操作进一步包括将密钥信息添加到所述请求,该密钥信息由所述信关使用,以便验证由所述信关放在所述位置中的消息,其中对于每个消息而言,如果它包括所述密钥信息,则该消息得到验证。13.如权利要求9所述的方法,进一步包括以下操作中的至少一个向所述信关发送关闭通信请求,告知所述信关对所述位置的引用不再可用于接收消息;以及由所述信关检测所述位置不再可用于接收消息。14.如权利要求9所述的方法,进一步包括对于不同的子线程,在一次或多次附加的迭代中重复进行所述方法。15.如权利要求9所述的方...

【专利技术属性】
技术研发人员:江洪迈克尔德怀尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1