CN101273340B - 低等待时间消息传递机制优先级信息 - Google Patents
低等待时间消息传递机制优先级信息 Download PDFInfo
- Publication number
- CN101273340B CN101273340B CN2006800351088A CN200680035108A CN101273340B CN 101273340 B CN101273340 B CN 101273340B CN 2006800351088 A CN2006800351088 A CN 2006800351088A CN 200680035108 A CN200680035108 A CN 200680035108A CN 101273340 B CN101273340 B CN 101273340B
- Authority
- CN
- China
- Prior art keywords
- cache line
- grouping
- network controller
- processor
- parts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Abstract
在一个实施例中,提供一种方法。这个实施例的方法提供以下步骤:由网络控制器检测主机总线上发生的DM(“直接消息传递”)分组从与第一处理器相关联的第一高速缓存线到存储器的刷新;在与网络控制器相关联的第二高速缓存线上获得并存储DM分组;以及通过网络向与第二处理器相关联的第三高速缓存线发送DM分组。
Description
技术领域
本发明的实施例涉及低等待时间消息传递。
背景技术
第一计算平台上的应用程序可与第二计算平台上的应用程序交换消息。本文所使用的“消息”表示通过通信信道从一个应用程序发送给另一个应用程序的一段信息。例如,一些消息可能是由一个应用程序对另一个应用程序进行的请求,以及其它消息可向另一个应用程序传送数据或通知。
在应用程序到应用程序的消息传递中,第一平台上的第一应用程序可采用分组来向第二平台上的第二应用程序传递消息。在第一平台上,第一应用程序可使用主处理器来产生消息。消息可放入主机存储器中,在其中,NIC可产生包含消息的分组,并且可通过通信信道传递该分组。在第二平台上,分组可由网络控制器接收,以及网络控制器可处理分组,并将消息写入主机存储器。第二应用程序可使用主处理器从主机存储器中读取消息。
按照传统方法传递的消息可能需要不希望有的等待时间。这些等待时间包括诸如对主机存储器进行的写操作之类的硬件等待时间以及诸如分组处理之类的软件等待时间。这些等待时间还可能在某些计算环境、如集群计算中进一步混合,因为例如大量等待时间关键的消息可能在不同的计算节点之间交换。
发明内容
根据第一实施例,本发明提供了一种消息传递方法,包括:
产生直接消息传递DM分组,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,将所述DM分组放置在与第一处理器相关联的第一高速缓存线中,并且将所述DM分组刷新到主机存储器,其中,所述产生、放置与刷新由运行在所述第一处理器上的应用程序来执行;
由网络控制器检测与所述第一处理器耦合的主机总线上发生的所述DM分组从与第一处理器相关联的第一高速缓存线到主机存储器的刷新;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组。
根据第二实施例,本发明提供了一种消息传递方法,包括:
产生直接消息传递DM分组,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,将所述DM分组提供给与第一处理器相关联的第一高速缓存线,其中,所述产生与提供由运行在所述第一处理器上的应用程序来执行;
在与所述第一处理器相关联的第一高速缓存线上接收DM分组,所述第一高速缓存线对应于存储器上的直接消息传递发送地址;
使用主机总线将所述第一高速缓存线刷新到所述存储器的直接消息传递发送地址,其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
通过在通信上耦合到所述主机总线的网络控制器来检测所述刷新;
将所述DM分组存储在与所述网络控制器相关联的第二高速缓存线上,所述第二高速缓存线也对应于所述存储器上的直接消息传递发送地址;以及
通过网络发送在所述主机总线上检测到的所述DM分组。
根据第三实施例,本发明提供了一种消息传递装置,包括:
由网络控制器检测在主机总线上发生的直接消息传递DM分组从与第一处理器相关联的第一高速缓存线到存储器的刷新的部件,其中,DM分组包括配置成将分组标识为DM分组的标识符,并且其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组的部件;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组的部件。
根据第四实施例,本发明提供了一种网络控制器,包括:
检测在主机总线上发生的直接消息传递DM分组从与第一处理器相关联的第一高速缓存线到存储器的刷新的部件,其中,DM分组包括配置成将分组标识为DM分组的标识符,并且其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组的部件;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组的部件。
根据第五实施例,本发明提供了一种消息传递系统,包括:
产生直接消息传递DM分组的部件,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,
将所述DM分组提供给与处理器相关联的第一高速缓存线的部件;
在与所述处理器相关联的第一高速缓存线上接收直接消息传递DM分组的部件,所述第一高速缓存线对应于存储器上的直接消息传递发送地址;以及
使用主机总线将所述第一高速缓存线刷新到所述存储器的直接消息传递发送地址的部件;
检测所述刷新的部件;
将所述DM分组存储在与所述网络控制器相关联的第二高速缓存线上的部件,所述第二高速缓存线也对应于所述存储器上的直接消息传递发送地址;以及
通过网络发送在所述主机总线上检测到的所述DM分组的部件。
附图说明
结合附图对本发明的实施例进行作为实例而不是限制的说明,附图中,相似的参考标号表示相似的要素,附图包括:
图1说明根据一个实施例的系统。
图2说明一种网络。
图3更详细地说明根据一个实施例的系统。
图4说明根据一个实施例的示例高速缓存一致性表和状态。
图5是流程图,说明根据一个实施例的方法。
图6是流程图,说明根据一个实施例的方法。
图7是流程图,说明根据另一个实施例的方法。
图8是流程图,说明根据另一个实施例的方法。
具体实施方式
以下描述的实例仅用于进行说明,而绝不是要限制本发明的实施例。因此,在可能详细描述实例的情况下,或者在可能提供实例的列表的情况下,应当理解,实例不是要理解为穷举的,并且不是要将本发明的实施例限制为所述和/或所示的实例。
在实施例的一个实例中,发送应用程序可产生DM(“直接消息传递(direct messaging)”)分组,并将它放入处理器发送高速缓存中的高速缓存线DMTX(“直接消息传递发送”)上。发送应用程序可将高速缓存线刷新到存储器的地址DMTX上。在观察高速缓存线DMTX的刷新时,DM-NC(“直接消息传递网络控制器”)可将DM分组存储在网络控制器发送高速缓存中的高速缓存线DMTX上。DM-NC可未经修改地将所有或部分高速缓存线转发到网络(例如经由MAC即媒体访问控制器接口)。
在实施例的另一个实例中,分组可从网络接收(例如通过网络MAC接口),其中,DM-NC可读取报头的类型字段。在确定分组为DM分组时,DM-NC可将DM分组存储在网络控制器接收高速缓存中的高速缓存线DMRX(“直接消息传递接收”)上。DM-NC可通过主机总线(host bus)发出地址DMRX的总线无效命令。由于高速缓存线DMRX已经从其高速缓存中逐出,因此,对这个高速缓存线进行轮询的接收应用程序可能被迫从存储器的地址DMRX中读取数据。DM-NC可检测对地址DMRX的读取,并且可通过将数据直接传送到处理器接收高速缓存的地址DMRX来提供DM分组。
本文所使用的“DM分组”表示可绕过(bypass)传统分组协议处理(例如通过标准系统软件堆栈和网络控制器驱动器)和转储的分组。在一个实施例中,可使用高速缓存将DM分组从一个应用程序发送到另一个应用程序。DM分组可包括有效载荷和物理层报头(例如以太网报头)。在一实施例中,DM分组还可包括流量控制位,以便实现分组排序算法和策略。在一实施例中,DM分组可符合以太网标准。本文所使用的“分组”表示可通过从至少一个发送器发送到至少一个接收器的一个或多个信号来编码的一个或多个符号和/或值的序列。
本文所使用的“DM-NC”表示启用了直接消息传递的网络控制器。在至少一个实施例中,启用了直接消息传递的网络控制器意味着,网络控制器在操作上耦合到主机总线而不是本地总线,并且可进一步处理DM分组。
本发明的实施例绝不是限制为本文所提供的实例的组件、协议和/或其它细节。例如,虽然以太网标准可用于某些实施例中,但是,本发明的实施例不限于这个协议,而是实际上可采用其它互连技术。以太网标准是一种LAN(局域网)技术。例如,在电气和电子工程师协会(IEEE)Std.802.3(2002版,2002年3月8日发布的当前版本)中对它进行了描述。
本文所述的一种或多种方法可在系统、如图1所示的系统100上执行。主处理器102可包括例如可向主题申请的受让人购买的IntelPentium微处理器。当然,作为备选的方案,主处理器102可包括另一种类型的微处理器,例如除主题申请的受让人之外的来源制造和/或向其购买的微处理器,而没有背离这个实施例。
存储器104可存储能够被执行的机器可执行指令132和/或能够被逻辑、如逻辑130访问、操作和/或处理的数据。存储器104例如可包括只读、海量存储器、随机存取计算机可访问存储器和/或其它一种或多种类型的机器可访问存储器。程序指令132的执行和/或该数据由逻辑130进行的访问、操作和/或处理例如可引起如系统100和/或逻辑130来执行本文所述的部分或全部操作。
芯片组108可包括可将主处理器102和主机存储器104相互耦合以及耦合到本地总线106的主桥/主集线器系统。例如,芯片组108可包括I/O(输入/输出)芯片组或存储器芯片组。或者,主处理器102和主机存储器104可直接而不经由芯片组108耦合到总线106。芯片组108可包括一个或多个集成电路芯片,例如从可向主题申请的受让人购买的集成电路芯片组选择的芯片(例如图形、存储器和I/O控制器集线器芯片组),但作为附加或备选的方案,可使用其它一个或多个集成电路芯片。芯片组108可经由存储器总线112与存储器104进行通信,以及经由主机总线110与主处理器102进行通信。
主机总线110可耦合到具有总线连接器116的电路卡槽114,以及本地总线106可耦合到具有总线连接器122的电路卡槽120。主机总线110和本地总线106可包括并行总线接口或串行总线接口。例如,主机总线110可包括一致系统互连(Coherent System Interconnect)(CSI)总线,以及本地总线106可包括符合外设部件互连(PCI)本地总线规范(修订版2.2,1998年12月18日,可从PCI特别兴趣小组(Portland,Oregon,U.S.A.)获得(以下称作“PCI总线”)的总线。或者,例如,总线106可包括符合PCI Express基础规范(修订版1.0a,2003年4月15日,可从PCI特别兴趣小组获得)(以下称作“PCI Express总线”)的总线。总线106可包括总线系统的其它类型和配置。
网络控制器126不是耦合到本地总线、如本地总线106,而是可耦合到主机总线110。因此,网络控制器126可监测来自主机总线110的事务和/或从主机总线110取事务。网络控制器126可包含在电路卡128中(例如可插入电路卡槽114的NIC或网络接口卡)。网络控制器126可包括执行本文描述为由网络控制器126和/或系统100所执行的操作的逻辑130。电路卡槽114可包括例如包括PCI总线连接器116的PCI扩展槽。PCI总线连接器116可在电气和机械上与电路卡128中包含的PCI总线连接器124密切配合。电路卡槽114和电路卡128可构造成允许电路卡128被插入电路卡槽114。当电路卡128被插入电路卡槽114时,PCI总线连接器116、124可变成在电气和机械上相互耦合。当PCI总线连接器116、124以这种方式相互耦合时,电路卡128中的逻辑130可变成电气耦合到主机总线110。网络控制器126不是驻留在电路卡128上,而是可包含在系统主板118上。或者,网络控制器126可集成到芯片组108上。但是,本发明的实施例不限于这些配置。
逻辑130可包括硬件、软件或硬件和软件的结合。例如,逻辑130可包括执行本文所述操作的电路系统(即一个或多个电路)。逻辑130可经过硬连线以便执行一个或多个操作。例如,逻辑130可包括一个或多个数字电路、一个或多个模拟电路、一个或多个状态机、可编程逻辑和/或一个或多个ASIC(专用集成电路)。作为备选或附加的方案,逻辑130可通过存储器、如存储器104中存储的机器可执行指令132来体现,以便执行这些操作。
系统100可包括一个以上以及其它类型的存储器、总线和网络控制器;但是为了论述的简洁而描述了所示的那些存储器、总线和网络控制器。主处理器102、存储器104和总线106、110可包含在单个电路板、如系统主板118中,但是本发明的实施例不限于这个方面。
如图2所示,系统100可在网络200中进行操作。网络200可包括多个节点202A、...、202N。一个或多个节点202A、...、202N可包括系统100,并且可在通信上经由通信介质204耦合在一起。
本文所使用的“在通信上耦合”的组件表示这些组件能够通过有线(例如铜或光线路)或者无线(例如射频)方式相互通信。
本文所使用的“通信介质”表示一种物理实体,通过它可发送和/或接收电磁辐射。通信介质204可包括例如一个或多个光和/或电缆线,但许多备选方案是可行的。例如,通信介质204可包括例如空气和/或真空,节点202A...202N可通过该介质来无线发送和/或接收一个或多个信号集合。
此外,节点202A...202N可经由可对一个或多个分组进行编码的介质204发送和接收一个或多个信号的集合。在网络200中,节点202A...202N的一个或多个可包括一个或多个中间站(未示出),例如一个或多个集线器、交换机和/或路由器;作为附加或备选的方案,节点202A...202N的一个或多个可包括一个或多个终端站。通信介质204可在通信上将耦合节点202A...202N的至少一部分以及这些中间站的一个或多个耦合在一起。许多备选方案无疑也是可行的。
如图3所示,存储器104可包括直接消息传递接收地址(“DMRX”)314和直接消息传递发送地址(“DMTX”)316;处理器102可在通信上耦合到主机总线110,并且可包括处理器接收(“RX”)高速缓存304和处理器发送(“TX”)高速缓存306;网络控制器126也可在通信上耦合到主机总线110,并且可包括网络控制器接收(“NC RX”)高速缓存304、网络控制器发送(“NC TX”)高速缓存306和寄存器312;以及存储在存储器104中的发送应用程序302T和接收应用程序302R可由处理器102来执行。本文所使用的“直接消息传递发送(DMTX)地址”和“直接消息传递接收(DMRX)地址”各表示存储器中的地址,并且对应于高速缓存代理中的高速缓存线,以及可用于本文所述的高速缓存事务中。
处理器102和网络控制器126还均可作为高速缓存代理来进行操作。因此,在一个实施例中,均可参与高速缓存一致性协议来跟踪高速缓存线的状态。例如,处理器102和网络控制器均可参与MESI(修改、排除、共享、无效)高速缓存一致性协议。MESI高速缓存一致性协议可用来表示高速缓存线的四种状态之一,如下所述:
修改:只有这个高速缓存中的条目才是有效的;存储器没有更新。
排除:另外的高速缓存没有这个高速缓存线;存储器已更新。
共享:另外的高速缓存具有这个高速缓存线;存储器已更新。
无效:高速缓存线没有包含有效数据。在本发明的实施例中,这可使相关高速缓存线能够再使用。
本发明的实施例不限于MESI协议。例如,可采用其它一致性协议,其中包括MESIF(修改、排除、共享、无效和转发)高速缓存一致性协议以及MOESI(修改、自有、排除、共享、无效)高速缓存一致性协议。可采用其它一致性协议,而没有背离本发明的实施例。
例如,高速缓存线的状态可采用图4所示的一致性表402、404、406、408来跟踪。例如,每个表402、404、406、408可保存各对应于存储器104中的一个地址的一个或多个高速缓存线的信息,其中包括那个地址上的高速缓存线的状态。在这个实例中,每个高速缓存一致性表402、404、406、408表示初始状态408、412、418、424。一个或多个后续状态410、414、416、420、422、426、428也被示出,并在下面进行描述。
图5说明根据本发明的一个实施例的方法。在一个实施例中,图5的方法可由系统100来执行。图5的方法可在框500开始。在框502,该方法可包括在与处理器相关联的第一高速缓存线上接收DM分组,第一高速缓存线对应于存储器上的直接消息传递发送地址。例如,DM分组可通过发送应用程序302T来发送,以及第一高速缓存线可与处理器102关联,并且可对应于存储器104上的地址DMTX 316。
在框504,该方法可包括使用主机总线将第一高速缓存线刷新到存储器的直接消息传递发送地址。例如,应用程序302T可使用主机总线110将第一高速缓存线刷新到存储器104的地址DMTX 316(12)上。在一实施例中,刷新高速缓存线表示例如为保持一致性而将那个高速缓存线的内容复制到另一个区域,但是,本发明的实施例不限于此。地址DMTX 316可由网络控制器驱动器来建立。例如,网络控制器驱动器可通过采用地址DMTX 316来初始化寄存器312,以建立两个节点之间的连接。
参照图4,对于高速缓存一致性表400,在(10)之后以及在(12)之前,处理器TX高速缓存306A中的高速缓存线DMTX上的数据(即DM分组)可为当前的,并且这个高速缓存线的状态可为“M”408。在(12)之后,处理器TX高速缓存306A中的高速缓存线DMTX上的数据可为无效的,并且这个高速缓存线的状态可转变为“I”410。“I”状态可表示该高速缓存线这时可再使用。
在框506,该方法可包括通过在通信上耦合到主机总线的网络控制器来检测所述刷新。例如,刷新可由在通信上耦合到主机110的网络控制器126来检测。因为网络控制器126在通信上耦合到主机总线110,所以网络控制器126可监视主机总线110上发生的事务(14)。在主机总线110上执行事务时,网络控制器126可判定该事务是否为地址DMTX 316的刷新。例如,网络控制器126可通过检查事务的“请求字段”来进行这个操作。如果是,则网络控制器126可从主机总线110上取得分组(14)。
在框508,该方法可包括将DM分组存储在与网络控制器相关联的第二高速缓存线上,第二高速缓存线也对应于存储器上的直接消息传递发送地址。例如,DM分组可存储在关联网络控制器126的高速缓存线上(14),其中高速缓存线也对应于地址DMTX 316A。
在框510,该方法可包括通过网络向与第二处理器相关联的第三高速缓存线发送DM分组。例如,DM分组可在主机总线110上被检测,并且可通过网络发送(16)。此外,为了表明从主处理器102接收另一个分组的就绪状态,网络控制器126可将高速缓存线刷新到存储器104(17)。网络控制器126还可在将高速缓存线刷新到存储器104之前,更新与地址DMTX 316相关联的高速缓存线中的一个或多个控制标志。这可使发送应用程序302T随后产生包含已更新流量控制信息的DM分组。
该方法可在框512结束。
来看高速缓存一致性表402,在(12)之后以及在(14)之前,NC TX高速缓存306A中的高速缓存线DMTX上的数据可为无效的,并且这个高速缓存线的状态可为“I”412。在(14)之后,NC TX高速缓存306A中的高速缓存线DMTX上的数据可能是当前的,并且这个高速缓存线的状态可转变为“M”414。在(17)之后,NC TX高速缓存306A中的高速缓存线DMTX上的数据可能是无效的,并且这个高速缓存线的状态可转变为“I”416。“I”状态可表示该高速缓存线这时可再使用。
图6说明根据本发明的一实施例的另一种方法。在一实施例中,图6的方法也可由系统100来执行。图6的方法可在框600开始并继续进行到框602,在其中,该方法可包括在与网络控制器相关联的第三高速缓存线上从网络接收直接消息传递(“DM”)分组,第三高速缓存线对应于存储器上的直接消息传递接收地址。
在一个实施例中,DM分组可通过在网络控制器126上实现的协议的MAC接口来接收,并且可从另一个网络控制器的网络控制器发送高速缓存发送。此外,DM分组可在与网络控制器相关联的高速缓存线(18,20)上接收,其中高速缓存线可对应于存储器104上的地址DMRX 314。在一实施例中,可通过读取分组报头的类型字段来将分组确定为DM分组。
在框604,该方法可包括通过主机总线(22)发送总线无效命令。总线无效命令可迫使在地址DMRX 314上进行轮询的接收应用程序302R从存储器104中取高速缓存线DMRX的数据。本文所使用的“总线无效命令”表示例如可迫使对高速缓存线进行轮询的应用程序从存储器的相应地址中检索数据的指令或信号。
在高速缓存一致性表404中,并且在(20)之前,NC RX高速缓存306X中的高速缓存线DMRX上的数据可为无效的,并且这个高速缓存线的状态可为“I”418。在(20)之后,NC RX高速缓存306X中的高速缓存线DMRX上的数据可为修改的,并且这个高速缓存线的状态可转变为“M”420。在(22)之后,NC RX高速缓存306X中的高速缓存线DMRX上的数据可为无效的,并且这个高速缓存线的状态可转变为“I”422。“I”状态可表示该高速缓存线这时可再使用。这还可确保,传递仅发生一次,并且对地址DMRX 314的后续读取不会引起以任何数据进行响应。
在框606,该方法可包括在存储器的直接消息传递接收地址上进行读取。在一实施例中,框604的总线无效命令可引起高速缓存线DMRX从其高速缓存(例如处理器RX高速缓存304)中逐出,由此引起接收应用程序302R对高速缓存线DMRX进行轮询(24),以便改为从存储器104的地址DMRX 314中取数据。或者,可由于接收应用程序302R监测主机总线110上的命令而读取存储器104上的地址DMRX 314。例如,地址DMRX 314可由网络控制器驱动器来建立。例如,网络控制器驱动器可通过初始化寄存器312,来建立两个节点之间的连接。
在框608,该方法可包括由网络控制器检测所述读取。在一个实施例中,网络控制器126可检测主机总线110上的读取(26)。
在框610,该方法可包括将DM分组存储在与处理器相关联的第四高速缓存线上,第四高速缓存线也对应于存储器上的直接消息传递接收地址。在一实施例中,DM分组可存储在与处理器102的处理器RX高速缓存304相关联的高速缓存线上(28),其中第四高速缓存线也对应于存储器104上的地址DMRX 314。此外,在一实施例中,DM分组可通过主机总线110上的HITM#命令来提供。HITM#命令表示使一个高速缓存代理能够响应另一个高速缓存代理所发起的读取事务而提供最新数据的命令。
在高速缓存一致性表406中,在(24)之后以及在(28)之前,处理器RX高速缓存304X中的高速缓存线DMRX上的数据可为共享的,并且这个高速缓存线的状态可为“S”424。在(28)之后,处理器RX高速缓存304X中的高速缓存线DMRX上的数据可为无效的,并且这个高速缓存线的状态可转变为“I”426。“I”状态可表示该高速缓存线这时可再使用。
在一个实施例中,处理器高速缓存线中的DM分组可由接收应用程序302R来处理,以及应用程序可检索相关消息。随后,应用程序可消耗DM分组(30),并且可设置流量控制位以表明它为下一个分组准备就绪。接收应用程序302R还可将地址DMRX 314刷新到存储器104X(32)。网络控制器126可观测这种刷新,并且可为另一个分组准备就绪。
在高速缓存一致性表406中,并且在(32)之后,处理器RX高速缓存304X中的高速缓存线DMRX上的数据可为修改的,并且这个高速缓存线的状态可转变为“M”428。只要接收应用程序302R认为有必要,则这个高速缓存线的状态可保持为“M”。
该方法可在框612结束。
图7说明根据本发明的另一个实施例的方法。该方法可在框700开始并继续进行到框702,在其中,该方法可包括由网络控制器来检测主机总线上发生的分组从关联第一处理器的第一高速缓存线到存储器的刷新。在一个实施例中,网络控制器126可检测主机总线110上的分组从与处理器102相关联的第一高速缓存线到存储器104的刷新。在一实施例中,第一高速缓存可对应于存储器104中的地址DMTX 316。
在框704,该方法可包括在与网络控制器相关联的第二高速缓存线上获得和存储分组。在一实施例中,分组可存储在与网络控制器126相关联的高速缓存线上。此外,在一个实施例中,高速缓存线可对应于地址DMTX 316。
在框706,该方法可包括通过网络向与第二处理器相关联的第三高速缓存线发送分组。在一实施例中,分组可通过网络直接发送给另一个处理器上的高速缓存线。
该方法可在框708结束。
图8说明根据本发明的另一个实施例的方法。该方法可在框800开始并继续进行到框802,在其中,该方法可包括通过网络来接收直接消息传递(“DM”)分组。在一实施例中,DM分组可由另一个系统上的发送应用程序来发送。
在框804,该方法可包括将DM分组存储在与网络控制器相关联的第四高速缓存线上。在一实施例中,第四高速缓存线可与网络控制器126关联,并且可对应于地址DMRX 314。
在框806,该方法可包括通过主机总线发送总线无效命令。在一实施例中,网络控制器126可通过主机总线110来发送总线无效命令。在一实施例中,这可引起第四高速缓存线从其高速缓存(例如处理器RX高速缓存304)中逐出,从而引起接收应用程序302R从存储器104的DMRX 314中读取数据。
在框808,该方法可包括由网络控制器检测主机总线上发生的、在存储器的对应于第四高速缓存线的地址上的读取。在一实施例中,网络控制器126可检测主机总线110上发生的、对存储器104的地址DMRX 314的读取。如上所述,这个读取可来自从存储器104的DMRX 314中读取数据的接收应用程序302R,因为第四高速缓存线从其高速缓存逐出。
在框810,该方法可包括将DM分组存储在与第一处理器相关联的第五高速缓存线上。在一实施例中,DM分组可存储在与处理器102相关联的高速缓存线上。此外,高速缓存线可对应于地址DMRX 314。该方法可在框812结束。
结论
因此,在一个实施例中,一种方法可包括:由网络控制器检测主机总线上发生的分组从与第一处理器相关联的第一高速缓存线到存储器的刷新;在与网络控制器相关联的第二高速缓存线上获得和存储该分组;以及通过网络向与第二处理器相关联的第三高速缓存线发送分组。
本发明的实施例可提供低等待时间的应用程序到应用程序的消息传递机制。通过采用高速缓存网络控制器,发送以及接收系统上的网络控制器和处理器可采用一致性协议来从发送系统上的高速缓存传递分组,以及在接收系统的高速缓存上接收数据。接收系统上的应用程序可更快地从接收系统上的高速缓存中检索相关消息。因为从高速缓存检索数据比从存储器中检索数据更快,所以消息传递产生更低的等待时间。
在以上说明中,参照具体实施例描述了本发明。但是很明显,可在不背离这些实施例的前提下,对这些实施例进行各种修改和改变。因此,说明书和附图要看作是解释性而不是限制性的。
Claims (17)
1.一种消息传递方法,包括:
产生直接消息传递DM分组,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,将所述DM分组放置在与第一处理器相关联的第一高速缓存线中,并且将所述DM分组刷新到主机存储器,其中,所述产生、放置与刷新由运行在所述第一处理器上的应用程序来执行;
由网络控制器检测与所述第一处理器耦合的主机总线上发生的所述DM分组从与第一处理器相关联的第一高速缓存线到主机存储器的刷新;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组。
2.如权利要求1所述的方法,还包括:
通过网络在与所述网络控制器相关联的第四高速缓存线上接收DM分组;
通过主机总线发送无效命令;
由所述网络控制器检测所述主机总线上发生的、在所述存储器的对应于第四高速缓存线的地址上的读取;以及
响应所述检测,将所述DM分组存储在与所述第一处理器相关联的第五高速缓存线上。
3.如权利要求2所述的方法,其中,所述网络控制器在通信上耦合到所述主机总线。
4.如权利要求3所述的方法,其中,在所述主机总线上发生的所述读取是对所述网络控制器发送总线无效命令的响应。
5.一种消息传递方法,包括:
产生直接消息传递DM分组,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,将所述DM分组提供给与第一处理器相关联的第一高速缓存线,其中,所述产生与提供由运行在所述第一处理器上的应用程序来执行;
在与所述第一处理器相关联的第一高速缓存线上接收DM分组,所述第一高速缓存线对应于存储器上的直接消息传递发送地址;
使用主机总线将所述第一高速缓存线刷新到所述存储器的直接消息传递发送地址,其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
通过在通信上耦合到所述主机总线的网络控制器来检测所述刷新;
将所述DM分组存储在与所述网络控制器相关联的第二高速缓存线上,所述第二高速缓存线也对应于所述存储器上的直接消息传递发送地址;以及
通过网络发送在所述主机总线上检测到的所述DM分组。
6.如权利要求5所述的方法,还包括:
在与所述网络控制器相关联的第三高速缓存线上从网络接收DM分组,所述第三高速缓存线对应于存储器上的直接消息传递接收地址;
通过所述主机总线发送总线无效命令;
在所述存储器的直接消息传递接收地址上进行读取;
由所述网络控制器检测所述读取;以及
将所述DM分组存储在与所述第一处理器相关联的第四高速缓存线上,所述第四高速缓存线也对应于所述存储器上的直接消息传递接收地址。
7.如权利要求6所述的方法,其特征在于,还包括由接收应用程序取所述DM分组。
8.一种消息传递装置,包括:
由网络控制器检测在主机总线上发生的直接消息传递DM分组从与第一处理器相关联的第一高速缓存线到存储器的刷新的部件,其中,DM分组包括配置成将分组标识为DM分组的标识符,并且其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组的部件;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组的部件。
9.如权利要求8所述的装置,还包括:
通过网络在与所述网络控制器相关联的第四高速缓存线上接收直接消息传递DM分组的部件;
由所述网络控制器检测所述主机总线上发生的、在所述存储器的对应于第四高速缓存线的地址上的读取的部件;以及
将所述DM分组存储在与所述第一处理器相关联的第五高速缓存线上的部件。
10.如权利要求9所述的装置,还包括响应所述网络控制器发送总线无效命令而检测所述主机总线上发生的所述读取的部件。
11.一种网络控制器,包括:
检测在主机总线上发生的直接消息传递DM分组从与第一处理器相关联的第一高速缓存线到存储器的刷新的部件,其中,DM分组包括配置成将分组标识为DM分组的标识符,并且其中,所述刷新由运行在所述第一处理器上的应用程序来执行;
在与所述网络控制器相关联的第二高速缓存线上获得并存储所述DM分组的部件;以及
通过网络向与第二处理器相关联的第三高速缓存线发送所述DM分组的部件。
12.如权利要求11所述的网络控制器,还包括:
通过网络在与所述网络控制器相关联的第四高速缓存线上接收直接消息传递DM分组的部件;
由所述网络控制器检测所述主机总线上发生的、在所述存储器的对应于第四高速缓存线的地址上的读取的部件;以及
将所述DM分组存储在与所述第一处理器相关联的第五高速缓存线上的部件。
13.如权利要求12所述的网络控制器,还包括响应所述网络控制器发送总线无效命令而检测所述主机总线上发生的所述读取的部件。
14.如权利要求11所述的网络控制器,其中,所述网络控制器符合MESI修改、排除、共享、无效高速缓存一致性协议。
15.一种消息传递系统,包括:
产生直接消息传递DM分组的部件,其中,DM分组包括配置成将分组标识为DM分组的分组标识符,
将所述DM分组提供给与处理器相关联的第一高速缓存线的部件;
在与所述处理器相关联的第一高速缓存线上接收直接消息传递DM分组的部件,所述第一高速缓存线对应于存储器上的直接消息传递发送地址;以及
使用主机总线将所述第一高速缓存线刷新到所述存储器的直接消息传递发送地址的部件;
检测所述刷新的部件;
将所述DM分组存储在与所述网络控制器相关联的第二高速缓存线上的部件,所述第二高速缓存线也对应于所述存储器上的直接消息传递发送地址;以及
通过网络发送在所述主机总线上检测到的所述DM分组的部件。
16.如权利要求15所述的系统,还包括:
还在直接消息传递接收地址上读取所述存储器的部件;
在与所述网络控制器相关联的第三高速缓存线上从网络接收DM分组的部件,所述第三高速缓存线对应于存储器上的直接消息传递接收地址;以及
通过所述主机总线发送总线无效命令的部件;
检测所述读取的部件;以及
将所述DM分组存储在与所述处理器相关联的第四高速缓存线上的部件,所述第四高速缓存线也对应于所述存储器上的直接消息传递接收地址。
17.如权利要求16所述的系统,其特征在于,还包括:代表接收应用程序来取所述DM分组的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/236,386 US7617363B2 (en) | 2005-09-26 | 2005-09-26 | Low latency message passing mechanism |
US11/236,386 | 2005-09-26 | ||
PCT/US2006/037633 WO2007038574A1 (en) | 2005-09-26 | 2006-09-26 | A low latency message passing mechanism priority information |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101273340A CN101273340A (zh) | 2008-09-24 |
CN101273340B true CN101273340B (zh) | 2011-03-09 |
Family
ID=37728424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800351088A Expired - Fee Related CN101273340B (zh) | 2005-09-26 | 2006-09-26 | 低等待时间消息传递机制优先级信息 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7617363B2 (zh) |
CN (1) | CN101273340B (zh) |
DE (1) | DE112006002382T5 (zh) |
WO (1) | WO2007038574A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079032A1 (en) * | 2005-09-30 | 2007-04-05 | Intel Corporation | Serial signal ordering in serial general purpose input output (SGPIO) |
KR20090110291A (ko) * | 2006-10-26 | 2009-10-21 | 인터랙틱 홀딩스 엘엘시 | 병렬 컴퓨팅시스템을 위한 네트워크 인터페이스 카드 |
US8484307B2 (en) * | 2008-02-01 | 2013-07-09 | International Business Machines Corporation | Host fabric interface (HFI) to perform global shared memory (GSM) operations |
US8255913B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Notification to task of completion of GSM operations by initiator node |
US8146094B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Guaranteeing delivery of multi-packet GSM messages |
US8239879B2 (en) * | 2008-02-01 | 2012-08-07 | International Business Machines Corporation | Notification by task of completion of GSM operations at target node |
US8214604B2 (en) * | 2008-02-01 | 2012-07-03 | International Business Machines Corporation | Mechanisms to order global shared memory operations |
US7966454B2 (en) * | 2008-02-01 | 2011-06-21 | International Business Machines Corporation | Issuing global shared memory operations via direct cache injection to a host fabric interface |
US8200910B2 (en) * | 2008-02-01 | 2012-06-12 | International Business Machines Corporation | Generating and issuing global shared memory operations via a send FIFO |
US8275947B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Mechanism to prevent illegal access to task address space by unauthorized tasks |
US8751714B2 (en) * | 2010-09-24 | 2014-06-10 | Intel Corporation | Implementing quickpath interconnect protocol over a PCIe interface |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US9866498B2 (en) * | 2014-12-23 | 2018-01-09 | Intel Corporation | Technologies for network packet cache management |
US11194753B2 (en) | 2017-09-01 | 2021-12-07 | Intel Corporation | Platform interface layer and protocol for accelerators |
US10521383B1 (en) * | 2018-12-17 | 2019-12-31 | Micron Technology, Inc. | Handling operation collisions in a non-volatile memory |
US11153231B2 (en) * | 2019-07-19 | 2021-10-19 | Arm Limited | Apparatus and method for processing flush requests within a packet network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764896A (en) * | 1996-06-28 | 1998-06-09 | Compaq Computer Corporation | Method and system for reducing transfer latency when transferring data from a network to a computer system |
US6141344A (en) * | 1998-03-19 | 2000-10-31 | 3Com Corporation | Coherence mechanism for distributed address cache in a network switch |
US6675316B1 (en) * | 2000-07-12 | 2004-01-06 | International Business Machines Corporation | Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579503A (en) * | 1993-11-16 | 1996-11-26 | Mitsubishi Electric Information Technology | Direct cache coupled network interface for low latency |
US6940865B2 (en) | 2001-04-17 | 2005-09-06 | Atheros Communications, Inc. | System and method for interleaving frames with different priorities |
-
2005
- 2005-09-26 US US11/236,386 patent/US7617363B2/en not_active Expired - Fee Related
-
2006
- 2006-09-26 WO PCT/US2006/037633 patent/WO2007038574A1/en active Application Filing
- 2006-09-26 CN CN2006800351088A patent/CN101273340B/zh not_active Expired - Fee Related
- 2006-09-26 DE DE112006002382T patent/DE112006002382T5/de not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764896A (en) * | 1996-06-28 | 1998-06-09 | Compaq Computer Corporation | Method and system for reducing transfer latency when transferring data from a network to a computer system |
US6141344A (en) * | 1998-03-19 | 2000-10-31 | 3Com Corporation | Coherence mechanism for distributed address cache in a network switch |
US6675316B1 (en) * | 2000-07-12 | 2004-01-06 | International Business Machines Corporation | Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system |
Non-Patent Citations (1)
Title |
---|
US 6675316 B1,全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2007038574A1 (en) | 2007-04-05 |
DE112006002382T5 (de) | 2008-07-03 |
US7617363B2 (en) | 2009-11-10 |
CN101273340A (zh) | 2008-09-24 |
US20070073976A1 (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101273340B (zh) | 低等待时间消息传递机制优先级信息 | |
US7715400B1 (en) | Node identification for distributed shared memory system | |
US7721050B2 (en) | Re-snoop for conflict resolution in a cache coherency protocol | |
EP3800557B1 (en) | Implied directory state updates | |
JP4712974B2 (ja) | コヒーレンシ維持のための柔軟なプローブ/プローブ応答経路制御 | |
US7395379B2 (en) | Methods and apparatus for responding to a request cluster | |
JP5419107B2 (ja) | マルチコア処理システム | |
US7836144B2 (en) | System and method for a 3-hop cache coherency protocol | |
US7734857B2 (en) | Cache coherent switch device | |
JP5209461B2 (ja) | 集積回路内のデバイス間のデータ転送 | |
US20080222389A1 (en) | Interprocessor message transmission via coherency-based interconnect | |
WO2012040648A2 (en) | IMPLEMENTING QUICKPATH INTERCONNECT PROTOCOL OVER A PCIe INTERFACE | |
KR20030025296A (ko) | 중앙 집중형 스누프 필터링 방법 및 장치 | |
JP2018109965A (ja) | データ処理 | |
US7752397B2 (en) | Repeated conflict acknowledgements in a cache coherency protocol | |
US20080005486A1 (en) | Coordination of snoop responses in a multi-processor system | |
US10592465B2 (en) | Node controller direct socket group memory access | |
US5940860A (en) | Methods and apparatus for substantially memory-less coherence transformer for connecting computer node coherence domains | |
US7653790B2 (en) | Methods and apparatus for responding to a request cluster | |
JPH10134009A (ja) | 分散共用メモリ・コンピュータ・システムにおける無ディレクトリ・メモリ・アクセス・プロトコル用の方法および装置 | |
US20050080941A1 (en) | Distributed copies of configuration information using token ring | |
JP3825692B2 (ja) | コンピュータシステム内に存在しないプロセッサに対する無効化要求を処理する方法及び装置 | |
US7162589B2 (en) | Methods and apparatus for canceling a memory data fetch | |
JP3075809B2 (ja) | データ伝送システムにおける受信データ転送制御装置 | |
JP4718012B2 (ja) | メモリキャンセルメッセージを用いたシステムメモリ帯域幅の節約およびキャッシュコヒーレンシ維持 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110309 Termination date: 20190926 |
|
CF01 | Termination of patent right due to non-payment of annual fee |