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

节点间消息收发控制器制造技术

技术编号:33908785 阅读:15 留言:0更新日期:2022-06-25 19:07
处理器封装包括第一核、第一核中的本地高速缓存、以及第一核中的节点间消息收发控制器(INMC)。INMC用于接收来自在第一核上执行的发送方线程的节点间消息,其中该消息被引导至在第二核上执行的接收方线程。作为相应,INMC用于将节点间消息的有效载荷存储在第一核的本地高速缓存中的本地消息队列中。在存储有效载荷之后,INMC用于使用远程原子操作来保留第二核的本地高速缓存中共享消息队列尾部处的位置。在保留该位置之后,INMC用于使用节点间放置操作将有效载荷直接写入第二核的本地高速缓存。描述并要求保护其他实施例。缓存。描述并要求保护其他实施例。缓存。描述并要求保护其他实施例。

【技术实现步骤摘要】
节点间消息收发控制器


[0001]本公开总体上涉及数据处理系统,并且具体地涉及用于在数据处理系统的节点之间传递数据的技术。

技术介绍

[0002]传统的数据处理系统可以包括一个或多个处理器,并且每个处理器可以包括一个或多个处理核。另外,每个处理核可以包括第一级高速缓存。出于本公开的目的,处理核可以简单地被称为“核”或“节点”,并且第一级高速缓存可以被称为“第一级高速缓存”或“L1高速缓存”。
[0003]具有多个核的传统数据处理系统可以并发地执行多个线程,其中每个线程在不同的核上执行。不同核上的线程(例如,第一核上的第一线程和第二核上的第二线程)可以使用共享存储器来将数据从一个线程传递到另一个线程。例如,当第一线程是数据的生产者,并且第二线程是消费者时,第一线程(“生产者线程”)可以使用存储指令将数据从第一核的寄存器保存到共享存储器中的存储器位置。然后,第二线程(”消费者线程”)可以使用加载指令将数据从共享存储器读取到第二核中的寄存器。
[0004]然而,由于高速缓存一致性要求,此类过程可能是低效的。例如,用于满足高速缓存一致性要求的操作可能涉及核对核的监听等待时间,并且这些等待时间可能导致流水线冒泡,使得数据在核之间进行传递时难以实现或不可能实现所需的性能水平。例如,可能难以实现或不可能实现足够高水平的核吞吐量和通信带宽,以及用于核之间消息收发的足够低水平的通信等待时间。因此,传统数据处理系统中的软件可能被设计为最小化核之间的通信。
附图说明
[0005]通过所附权利要求、以下对一个或多个示例实施例的详细描述、以及对应的附图,本专利技术的特征和优势将变得显而易见,其中:
[0006]图1是具有至少一个节点间消息收发控制器的数据处理系统的示例实施例的框图。
[0007]图2是描绘图1的数据处理系统的一些部分的附加细节的框图。
[0008]图3呈现出在图1和图2的数据处理系统的情境下,用于将数据从一个节点传递到另一个节点的过程的示例实施例的流程图。
[0009]图4是根据一个或多个实施例的系统的框图。
[0010]图5是根据一个或多个实施例的第一更具体的示例性系统的框图。
[0011]图6是根据一个或多个实施例的第二更具体的示例性系统的框图。
[0012]图7是根据一个或多个实施例的芯片上系统的框图。
具体实施方式
[0013]出于本公开的目的,“节点”是数据处理系统中的处理单元。许多不同种类的处理单元可被认为是节点,包括但不限于通用处理核和专用处理核,诸如图形处理单元(GPU)和其他类型的计算加速器。
[0014]传统的数据处理系统中的节点不支持原生消息收发模型。相反,这些节点可以将加载和存储指令用于不同节点上运行的线程之间的通信。然而,如上文所指示,普通的加载和存储指令在用于将消息或数据从现代高速缓存一致性系统中的一个节点传递到另一个节点时通常是低效的。
[0015]附加地或替代地,对于在不同核上运行的线程之间的通信,数据处理系统可以使用诸如题为“用于通过读取快照和就地写入更新执行数据移动操作的方法和系统(Method And System For Performing Data Movement Operations With Read Snapshot And In Place Write Update)”的美国专利第10,606,755号中描述的技术。该专利(
“’
755专利”)是基于在2017年06月30日提交并于2019年01月03日作为美国专利申请公开号第2019/0004958号公布的申请。
[0016]例如,'755专利公开了“MOVGET指令”以及“MOVPUT指令”,“MOVGET指令”在被执行时触发“读取快照操作”,“MOVPUT指令”在被执行时触发“就地写入更新操作”。此外,如

755专利所指示,“由消费者发起的读取快照操作使消费者能够从生产者读取或获得数据,而不会在操作完成后引起包含数据的高速缓存行的一致性状态或位置的改变。”类似地,如'755专利中进一步所指示,“由生产者发起的就地写入更新操作允许生产者更新或写入由消费者拥有的地址或高速缓存行,同时在操作完成后维持一致性状态和消费者的地址所有权”。例如,消费者可以使用MOVGET指令从生产者拥有的具有“独占的”(E)或“修改的”(M)一致性状态的高速缓存行中读取,而不会引起高速缓存行的所有权或一致性状态的改变。
[0017]出于本公开的目的,术语“节点间获取”是指可由第一节点用于从由第二节点拥有的高速缓存行中读取数据,而不引起该高速缓存行的一致性状态(即使一致性状态是E或M)或位置的改变的操作或指令(例如MOVGET指令)。例如,第一节点可以使用节点间获取指令以从第二节点的本地高速缓存中读取数据。该指令的执行可以触发读取快照操作。因此,读取快照操作也可以被称为“节点间获取操作”。此外,高速缓存行不需要具有独占所有者,多于一个的核可以具有高速缓存行的副本,并且该高速缓存行可以处于除“无效”(I)之外的任何一致性状态,包括E、M或“共享”(S)。在多个副本的情况下,对于这些副本中的任何一个副本而言,位置和一致性状态均不被改变。
[0018]类似地,出于本公开的目的,术语“节点间放置”是指可由第一节点用于将数据写入由第二节点拥有的高速缓存行,而不引起该高速缓存行的所有权的改变并且不改变该高速缓存行的一致性状态(除非该高速缓存行处于E状态)的操作或指令(例如MOVPUT指令)。例如,第一节点可以使用节点间放置指令将数据写入由第二节点拥有的共享高速缓存行。该指令的执行可以触发就地写入更新操作。因此,就地写入更新操作也可以被称为“节点间放置”操作。此外,在一个实施例中,高速缓存行必须由一个核独占地拥有,并且高速缓存行必须处于E状态或M状态。如果节点间放置操作发现高速缓存行处于E状态,那么节点间放置操作随后将在更新高速缓存行之后将一致性状态改变为M。
[0019]本公开描述了一种数据处理系统,该系统支持原生消息收发模型,该模型使得不
同节点上的线程能够更有效地共享数据。换句话说,本公开描述了一种具有对节点间消息收发(即,用于节点间的消息收发)的原生支持的数据处理系统。相对于用于在节点之间传递数据的传统方法,本文所述的原生消息收发模型可被许多类型的应用和功能用来实现改善的性能。这些应用和功能可以包括,例如,并行应用和运行时系统功能。例如,本文所述的原生消息收发模型可结合关键部分并且结合集体操作及同步来使用。该原生消息收发模型也可以与其他消息传递标准(诸如被称为“消息传递接口”(MPI)的名称或商标的标准)一起使用。它也可用于由使用“分区全局地址空间”(PGAS)的名称或商标所指的编程模型的并行程序的通信。
[0020]本文所述的原生消息收发模型可由应用和运行时库软件容易地使用。该原生消息收发模型还可以使软件能够容易地实例化具有任意队列深度和任意队列项数据类型的任意数量的消息队列或信道本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器封装,包括:第一核;所述第一核中的本地高速缓存;以及所述第一核中的节点间消息收发控制器INMC,其中所述INMC被配置成用于:接收来自在所述第一核上执行的发送方线程的节点间消息,其中所述消息被引导至在第二核上执行的接收方线程;响应于接收所述节点间消息,将来自所述节点间消息的有效载荷存储在所述第一核的本地高速缓存中的本地消息队列中;在将来自所述节点间消息的所述有效载荷存储在所述本地消息队列中之后,使用远程原子操作RAO来保留所述第二核的本地高速缓存中的共享消息队列的尾部处的位置;以及在保留所述共享消息队列的尾部处的所述位置之后,使用节点间放置操作来将所述有效载荷直接写入所述第二核的本地高速缓存。2.如权利要求1所述的处理器封装,其特征在于,使用RAO来保留所述第二核的本地高速缓存中的共享消息队列的尾部处的位置的操作包括:使用RAO(a)从由所述第一核和所述第二核共享的共享高速缓存中读取当前尾部位置和(b)在所述共享高速缓存中递增所述当前尾部位置。3.根据权利要求1所述的处理器封装,其中:所述第一本地高速缓存包括第一级(L1)高速缓存;所述第一核包括通用处理核;以及所述第二核包括专用处理核。4.根据权利要求1所述的处理器封装,其中:所述INMC包括第一INMC;以及所述第二核包括第二INMC。5.根据权利要求1所述的处理器封装,其特征在于,使用节点间放置操作以将所述有效载荷直接写入所述第二核的本地高速缓存的操作包括:使得所述有效载荷被保存在所述第二核的本地高速缓存中,而所述第二核无需取出所述有效载荷。6.根据权利要求1所述的处理器封装,其特征在于,使用节点间放置操作以将所述有效载荷直接写入所述第二核的本地高速缓存的操作包括:经由高速缓存一致性互连将所述有效载荷写入所述第二核的本地高速缓存。7.根据权利要求6所述的处理器封装,进一步包括:与所述第一核和所述第二核进行通信的系统代理;以及所述系统代理中的高速缓存一致性协议接口CCPI;以及其中,经由高速缓存一致性互连将所述有效载荷写入所述第二核的本地高速缓存的操作包括经由所述CCPI将所述有效载荷写入所述第二核的本地高速缓存。8.根据权利要求1所述的处理器封装,其中,所述INMC进一步被配置成用于:结合将所述有效载荷写入所述第二核的本地高速缓存来将所述有效载荷从来自所述第一核的本地高速缓存中的所述本地消息队列的所述节点间消息中移除。9.一种数据处理系统,包括:
处理器封装;所述处理器封装中的第一核;所述第一核中的本地高速缓存;以及所述第一核中的节点间消息收发控制器INMC,其中所述INMC被配置成用于:接收来自在所述第一核上执行的发送方线程的节点间消息,其中所述消息被引导至在第二核上执行的接收方线程;响应于接收所述节点间消息,将来自所述节点间消息的有效载荷存储在所述第一核的本地高速缓存中的本地消息队列中;在将来自所述节点间消息的所述有效载荷存储在所述本地消息队列中之后,使用远程原子操作RAO来保留所述第二核的本地高速缓存中的共享消息队列的尾部处的位置;以及在保留所述共享消息队列的尾部处的所述位置之后,使用节点间放置操作来将所述有效载荷直接写入所述第二核的本地高速缓存。10.如权利要求9所述的数据处理器系统,其特征在于,使用RAO来保留所述第二核的本地高速缓存中的共享消息队列的尾部处的位置的操作包括:使用RAO(a)从由所述第一核和所述第二核共享的共享高速缓存中读取...

【专利技术属性】
技术研发人员:C
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1