CN104620224A - 从先进先出传送机构的随机存取消息检索的方法 - Google Patents
从先进先出传送机构的随机存取消息检索的方法 Download PDFInfo
- Publication number
- CN104620224A CN104620224A CN201380047627.6A CN201380047627A CN104620224A CN 104620224 A CN104620224 A CN 104620224A CN 201380047627 A CN201380047627 A CN 201380047627A CN 104620224 A CN104620224 A CN 104620224A
- Authority
- CN
- China
- Prior art keywords
- message
- memory
- fifo
- fifo memory
- response
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
提供一种方法和系统,用于无序地处理来自先进先出(FIFO)存储器的应答消息,以及以在FIFO存储器中接收的次序来处理其他消息。该系统提供用于存储在搜索应答消息的同时从第一FIFO检索到的任何消息的第二FIFO存储器。
Description
相关申请的交叉引用
本申请要求享有于2012年9月13日提交的第61/700812号美国临时申请“Method of Random Access Message Retrieval from FIFO TransportMechanism”以及于2012年9月14日提交的第61/701507号美国临时申请“Method of Random Access Message Retrieval from FIFO TransportMechanism”的优先权,通过引用将这二者的全部并入本文。
技术领域
本发明涉及一种方法和系统,用于提供来自先进先出(FIFO)存储器的一个或多个消息的随机检索,同时保持将以正确的FIFO次序递送的其他消息。
背景技术
在通信网络中交换的消息可以是同步的或异步的。异步消息是被发送而不需要来自接收者的响应的消息。同步消息是被发送并且在可以继续处理之前期待应答的消息。在同步消息交换期间,即使在对同步消息的应答到达之前接收到其他消息,也必须在任何其他接收到的消息之前处理对同步消息的应答。
确保以与发送异步消息相同的次序来处理它们经常是重要的。因此,在包括异步消息交换和同步消息交换这两者的通信网络中,可能需要确保可以在不影响其他接收到的消息的排序的情况下无序地处理同步消息应答。
在使用UNIXTM套接字的网络环境或架构中,或者更一般地,在通过先进先出(FIFO)缓冲器来缓冲接收到的消息的任何通信机构中,没有用于随机消息检索或插入的机构。因此,必须顺序地从套接字或FIFO缓冲器检索消息,直至检索到所期望的同步消息应答为止。无法简单地将不期望的(亦即,不是应答消息)消息写回到FIFO缓冲器,因为这可能改变缓冲器中的消息的次序。
接收和处理消息的设备经常需要执行多个任务。因此,在消息可用于读取和处理时通知设备是有利的。在很多架构中所使用的简单通知方法是通知何时数据在传送机构的FIFO缓冲器中可用。例如,在使用套接字作为传送机构的系统中,可以通过POSIX.1-2001所定义的select()函数提供该通知。然而,允许从单个FIFO输入源的无序的应答检索的现有解决方案要求更复杂的通知机制,或者完全消除通知机制,要求设备周期性地轮询新消息。
发明内容
本原理的实施例允许在具有先进先出(FIFO)接收缓冲器的网络环境中的响应消息(例如,对同步消息的应答)的无序的检索和处理,同时确保以FIFO次序递送所有其他消息。具体地,提供两个FIFO存储位置,用于存储接收到的消息以便进行处理。在发送同步消息(对该同步消息,期待应答)之后,从第一FIFO存储器检索消息,并且检查其是否为预期的应答。如果检索到的消息不是预期的应答,并且也不是特殊通知消息,则检索到的消息在第二FIFO存储器中排队。
如果检索到的消息是预期的应答,并且确定第一FIFO存储器为空,但是在第二FIFO存储器中存在至少一个消息,则将通知消息(例如,“空操作”(NOOP)消息)写入到第一存储器。该NOOP消息通知系统在第二FIFO存储器中存在至少一个消息可用于读取和处理。然后,以与最初在第一FIFO存储器中接收的相同的次序,读取和处理在第二FIFO存储器中的先前排队的消息。
本原理的一个实施例提供一种使用具有第一先进先出(FIFO)存储器的通信链路来检索和处理消息的方法,该方法包括:从第一FIFO存储器检索消息;在处理从第一FIFO存储器检索到的其他消息之前处理应答消息;以及以与第一FIFO存储器中接收的次序来处理其他检索到的消息。
另外的实施例提供一种检索消息以便进行处理的系统,该系统包括:消息路由器;第一存储器,被配置用于接收来自消息路由器的消息;消息处理器,被配置用于从第一存储器检索消息;所述消息处理器还被配置用于将消息存储到第二存储器,以及从第二存储器检索消息,其中第一存储器和第二存储器这二者是先进先出(FIFO)存储器。
附图说明
通过结合附图考虑下面的详细描述,可以容易地理解本发明的教导,在附图中:
图1示出根据本原理的一个实施例的用于处理消息的处理的流程图;
图2示出可以用于实现图1的处理的网络拓扑的图;
图3示出包括目的地地址、源地址、消息类型和消息体的示例性消息;
图4示出端点内部的现有的消息发送框架;以及
图5示出具有修改后的端点的本发明的一个实施例。
具体实施方式
本原理提供简单通知,所述简单通知用于指示数据或消息可用于检索,同时仍然允许从单个FIFO输入源的无序的应答检索,并且确保其他消息以接收它们的次序来递送。
本原理的实施例非常适合以具有下列属性的消息发送框架的实现方式:
1.发送和接收应答被期待的消息的能力,其中将在可能正在等待被处理的任何其他消息之前处理该应答。
2.消息发送框架使用不允许消息的随机存取检索或插入的传送机构。代替地,其只允许在开始时插入消息以及在结束时检索消息。一个示例将是标准网络套接字,尽管本原理也将应用于具有这些特征的其他传送机构。
3.使用指示存在由传送机构提供的数据的简单通知机制,在消息可用于读取和处理时,通知处理消息的设备(即,消息处理器)。
本原理的一个方面提供使用具有第一FIFO存储器的通信链路或传送机构来检索和处理消息的方法,其中,从第一FIFO存储器无序地处理同步事务处理或消息交换中的应答消息,亦即,在处理从FIFO存储器检索到的其他消息之前被处理同步事务处理或消息交换中的应答消息,并且以在第一FIFO存储器中接收的次序来处理其他检索到的消息,而不影响消息发送框架中的这些其他消息的排序。具体地,将两个存储位置用于尚未被处理的消息。第一存储位置是传送机构本身,或者可以是传送机构的一部分,例如套接字缓冲器。第一存储位置仅允许在开始时插入以及在结束时检索,诸如FIFO队列这样。不能够进行随机检索或插入。第二存储位置可以是可以被配置为或者用作FIFO队列的任何存储机构(其中例如包括硬盘、随机存取存储器)。
在本原理的背景中,处理消息意味着作用于消息,其中诸如引导至另外的节点或接收者,或者根据特定消息中的一个或多个指令来执行某个动作。然而,从FIFO存储器中的任何一个检索或读取消息,或者向第二FIFO存储器写入或引导消息,将不被视为处理消息。
另外,在本论述中,检索和读取相互结合地使用,并且取决于特定的上下文,可以是可互换的。读取可以意味着至少读取消息头以确定消息的类型或种类(例如,其是应答消息,还是通知消息),而不需要读取消息体的内容。
图1图示根据本原理的一个实施例的用于处理消息的处理100的流程图。具体地,处理100示出在发送应答被期待的第一消息时的在通信系统中检索和处理消息的各个步骤。
处理100在块102处开始,块102示出从通信端点或节点向预期的目的地发送第一消息,从该预期的目的地期待或需要应答,亦即,第一消息是同步消息。在块104中,从可以是传送机构本身或传送机构的一部分的第一存储器一次一个地检索或读取消息。将从第一存储器检索或读取的消息是FIFO队列中的下一个消息。
在块106中,进行确定以察看作为对在块102中发送的第一消息的应答,所读取的消息是否是所预期的。如果所读取的消息不是预期的应答,则处理去往块112,以检查其是否为通知消息,例如不需要另外的动作或状态改变的NOOP消息或“空操作”消息。如果是这样,则处理返回到块104,以便从第一存储器检索或读取下一个消息。
然而,如果确定(在块112中)所读取的消息不是NOOP消息,例如其需要另外的动作和/或处理,则将其放在队列中并且写入到第二存储器,如在块114中所示。第二存储器中的队列也是FIFO队列。
参考回到块106,如果从第一存储器检索到预期的应答(在块104中),则由消息处理器506进行处理(例如,引导给另外的节点或接收者,或者根据一个或多个指令作用于该应答,等等),并且从第一存储器或传送机构的消息检索停止。换言之,该处理将不经由块112或块114返回至块104。代替地,该处理进行至块108,其中进行关于传送机构或第一存储器是否为空以及第二存储器是否包含至少一个消息的确定。如果回答为“是”,亦即,传送机构或第一存储器为空,但是第二存储器不为空,则将单个NOOP消息写入到第一存储器,使得其包含至少一个消息。处理100在块110处结束。
然而,如果检索到对第一消息的预期的应答(在块106中所确定),但是在块108处对询问的回答是“否”(即,下列中的至少一项为真:传送存储器不为空,第二存储器为空,或者这二者均为真),则处理100也在块110处结束。
当处理100结束时,恢复正常操作,例如包括异步和同步消息的其他消息的检索或读取以及处理。该检索和处理消息的方法确保在处理也存在于第一FIFO中并且等待处理的其他消息之前,以及在恢复正常操作之前,处理应答消息。注意,在端点中的消息处理器发送了第一同步消息(块102)之后,同一端点不能发送第二同步消息,直至接收到并处理了对第一消息的应答为止。然而,在处理器正在搜索对同步消息的应答时的期间,仍然可以发送异步消息。
在正常操作期间,亦即,当端点或节点未等待先前发送的消息的应答时,端点处的消息处理器等待,直至其接收传送机构(或第一存储器)包含至少一个消息的通知信号为止。本申请从第二存储位置读取消息,直至其为空为止,然后从第一存储器读取消息,直至其为空为止。当从第一存储器读取到在块116中描述的特殊NOOP消息时,删掉或丢弃该NOOP消息而不将其递送给用户,并且从第一存储器读取下一个消息(如果有的话)。
虽然以上论述提及特定特征,诸如套接字的使用,但是其他更普通或更一般的实现方式也是可接受的。因此,下面在图2至5中进一步例示和论述本原理的各个方面。
图2示出可以用于实现图1的处理100的网络拓扑的图。该网络包括两个或更多的端点或节点,以及用于在端点之间传递消息的消息路由器。消息路由器经由双向通信路径耦合到每个端点。如在本文中所使用的那样,端点可以指诸如移动设备这样的物理组件,并且也可以是软件应用或处理。在一个实施例中,端点是同一设备上的处理,并且可以在驻留在同一物理设备上的多个软件应用之间进行通信。替代地,每个端点也可以是独立的设备。
图3示出具有目的地地址、源地址、消息类型和消息体的示例性消息。端点向消息路由器发送消息。然后,消息路由器检查消息中的目的地地址,并且基于该目的地地址将消息转发给端点或预期的接收者。
参考图4至5进一步地论述图2的端点内部的消息发送框架。
图4示出在图2的每个端点内部的现有消息发送框架,箭头指示对应组件之间的消息流的连接和方向。从消息路由器402发送至端点的所有消息进入到接收缓冲器404中,如箭头412所示。接收缓冲器404是先进先出(FIFO)缓冲器,在一种配置中由UNIXTM套接字来提供。接收缓冲器404还耦合到消息处理器406,并且在接收缓冲器404不为空时向处理器406提供指示或信号410。可以以不同方式实现缓冲器的状态的信号或通知,酌情使用硬件或软件。
当消息路由器402将消息传送到端点的接收缓冲器404中时,接收缓冲器404通知消息处理器406其不再为空。该通知410使消息处理器406从接收缓冲器404检索下一个消息(如箭头414所示)并且执行任何必要的处理。
当端点想要发送消息时,消息处理器406构造消息,并且将其发送到消息路由器402(如箭头416所示)。然后,消息路由器402基于消息中的目的地地址将消息发送到预期的目的地。
然而,利用该消息发送框架,可能在消息处理器406需要发送消息并且等待应答时(例如,当在同步消息交换或者事务处理中期待或需要应答时)引起问题。该消息发送框架未提供用于从接收缓冲器404无序地检索消息的机构。利用该架构处理在其他消息之前处理同步消息应答的唯一方式是,顺序地从接收缓冲器404读取消息,并且将任何非期待的消息(亦即,不是应答消息的那些消息)传送回到消息路由器402,消息路由器402然后将它们再次插入到接收缓冲器404中。
该过程确保不丢失其他消息(不是对端点的应答),但是造成经过消息路由器402的很多不必要的通信量,并且还可能在将这些所读取的消息放回到接收缓冲器队列的末端之前,改变这些消息相对于已经到达接收缓冲器404中的其他消息的次序。
图5示出根据本原理的消息发送框架的一个实施例,其中修改端点内的设计以解决图4中的上述问题。具体地,提供FIFO队列508用于存储在消息处理器506正在寻找或搜索对端点先前发送的同步消息的预期的应答的时间段内从接收缓冲器404(也是FIFO队列)检索到的消息。在该示例中,接收缓冲器504对应于结合图1描述的第一存储器或传送机构(或者该机构的一部分),并且FIFO队列508对应于或位于结合图1描述的第二存储器。在一个实施例中,接收缓冲器或第一存储器504是由UNIXTM套接字所提供的缓冲器,并且FIFO队列或第二存储器508利用链表数据结构来实现。然而,取决于特定应用,其他实现方式也是可接受的。例如,第一存储器504也可以是专用硬件设备,其中诸如以现场可编程门阵列(FPGA)或专用集成电路(ASIC)实现的FIFO。替代地,其也可以是更大的硬件设备的一部分,例如提供对所接收的消息的一些FIFO缓冲的收发器。第二存储器508可以是可以被用作FIFO缓冲器的任何存储机构,包括例如硬盘或其他专用硬件设备(如以FPGA或ASIC实现的FIFO)。
如图5所示,接收缓冲器或第一存储器504耦合到消息路由器502和消息处理器506。从路由器502发送给端点的消息进入到第一存储器504中,如箭头512所示。消息处理器506被配置用于接收非空状态指示或信号510,以及从第一存储器504接收消息,如箭头514所示。在一个实施例中,当存储器504中存在至少一个消息时,第一存储器504向处理器506发送信号510,以唤醒或通知处理器506开始检索和处理消息。
消息处理器506也耦合到第二存储器508,第二存储器508被配置用于从处理器506接收消息(箭头522),提供指示非空状态的信号520,以及向处理器506提供消息(箭头524)。
与信号510不同,第二存储器508不发送信号520作为唤醒处理器506的通知。代替地,消息处理器506在步骤108处(在图1的处理100中)简单地读取该信号的状态来确定第二存储器508是否为空。其还在正常操作期间读取该状态,以在开始从第一存储器504读取消息之前确定是否还存在需要从存储器508读取的消息。
作为示例,如果图5中的所有块是离散的硬件设备,则信号510和520可以在为空时呈现低逻辑电平,并且如果不为空,则呈现高逻辑电平。信号510可以连接到处理器506上的IRQ输入(亦即,中断请求),因为其需要在接收缓冲器或第一存储器504从非空转变为空时被通知。信号520可以连接到处理器506上的GPIO(通用输入输出)输入,因为其只需要能够读取状态,而不需要被通知存储器508的空或非空状态的改变。
在以软件实现图5中的所有块的情况下,逻辑行为与上面针对硬件实现方式描述的相同。
从端点发送异步消息的行为与图4中的相同,但接收消息不同。在接收消息的正常操作期间(亦即,当消息处理器506不期待或等待对先前发送的消息的应答时),首先从第二存储器508读取消息,直至其为空为止。在从第二存储器508读取所有消息之后,消息处理器开始从第一存储器504读取消息。如果消息处理器506检索到NOOP消息(由消息中的消息类型字段所指示),则消息处理器丢弃该消息,而不对其进行处理,并且从第一存储器504检索下一个可用的消息。下面进一步解释在第一存储器504中提供NOOP消息(将NOOP消息写入到对应于图1的块116中的传送机构)的目的。
当消息处理器506想要发送消息并且等待应答时,其将消息发送给消息路由器502。在该情况下,消息处理器506提供有效地“发送消息并且取得应答”的特殊功能。当“发送并且取得应答”操作在进行中时,不发生其他正常消息处理。此时,消息处理器506开始从接收缓冲器或第一存储器504检索或读取消息(亦即,忽略可能仍然在FIFO队列或第二存储器508中的任何旧消息),直至其接收应答消息为止。其从接收缓冲器504(对应于图1中的传送机构)接收到的、不是应答消息并且不是NOOP消息的任何消息被写入到或存储在第二存储器508中。在从第一存储器504检索到应答消息之后,如果第一存储器为空并且第二存储器508不为空(亦即,对图1中的块108回答“是”),则消息处理器506构造并且发送单个NOOP消息给消息路由器502,其中将消息处理器本身的地址设置为目的地地址。这使消息路由器502将NOOP消息写入或发送到第一存储器504(例如,如图1的块116中那样)。
接收缓冲器或第一存储器504中的NOOP消息的存在简化用于确定消息是否可用于读取或检索以便进行处理所需的逻辑。如先前所述,在正常操作期间,在读取或检索来自第一存储器的消息之前,从第二存储器508检索所有消息以便进行处理。因此,如果第一存储器504为空,则第二存储器508也一定为空。这允许系统只依赖于信号510来唤醒消息处理器506以开始读取和处理消息。代替需要来自接收缓冲器504和FIFO队列508这二者的整合状态来确定消息是否可用于读取和处理,NOOP消息的存在使得能够只依赖于由接收缓冲器504(经由信号510)所提供的状态来确定消息是否可用于读取和处理。虽然以上论述使用NOOP消息作为通知消息,但是能够在适当的情况下,也可以将不同类型的消息用作通知消息。
对于通过共享硬件执行消息读取和处理以及其他操作的系统,期望具有指示消息何时可用于读取和处理的简单通知系统。共享硬件资源可以用于其他目的,直至消息可用为止。当消息可用于读取和处理时(由接收缓冲器504所提供的非空状态指示),其他处理元件可以将共享资源释放给消息处理器,以允许读取和处理可用消息。当消息读取和处理完成时(由指示其为空的接收缓冲器504指示),共享硬件资源可以再次用于消息读取和处理之外的目的。这简化其他处理元件的设计,因为这些元件不需要知道消息处理器所使用的FIFO队列508的存在。其他处理元件可以单独地依赖于由接收缓冲器504所提供的空状态来确定何时消息可用于读取和处理。
在图5的示例中,来自不再为空的接收缓冲器504的通知可以以纯硬件实现方式来实现,例如实现为接收缓冲器504与处理器506之间的中断线路。替代地,也可以实现为软件,例如使用select()调用进行阻滞直至缓冲器具有数据为止。
根据本原理的另一方面,非暂时性计算机可读介质(例如,存储器、存储设备、可移动介质等)配备所存储的程序指令,所述程序指令在被处理器执行时将实现根据本原理的一个或多个实施例的如上所述的方法,例如结合图1论述的方法或变型。
虽然前述针对本发明的各种实施例,但是可以在不脱离其基本范围的情况下设计出本发明的其他实施例。例如,可以修改、省略或者以不同的组合来使用在示例中描述的一个或多个特征。因此,要根据随后的权利要求书来确定本发明的适当范围。
Claims (13)
1.一种使用具有第一先进先出(FIFO)存储器的通信链路来检索和处理消息的方法,包括:
从第一FIFO存储器检索消息;
在处理从第一FIFO存储器检索到的其他消息之前处理应答消息;以及
以在第一FIFO存储器中所接收的次序来处理其他检索到的消息。
2.根据权利要求1所述的方法,还包括:
(a)从第一FIFO存储器检索消息;
(b)如果检索到的消息不是应答消息并且不是通知消息,则将检索到的消息添加到第二FIFO存储器;
(c)如果检索到的消息是通知消息,则丢弃检索到的消息;以及
(d)重复步骤(a)至(c),直至检索到应答消息为止。
3.根据权利要求2所述的方法,还包括:
(e)当检索到应答消息并确定第一FIFO存储器为空并且第二FIFO存储器包含至少一个消息时,则向第一FIFO存储器发送通知消息;以及
(f)在发送通知消息之后,恢复其他消息的检索和处理。
4.根据权利要求1所述的方法,其中,其他检索到的消息的处理包括在从第一FIFO存储器检索消息之前从第二FIFO存储器检索所有消息以便进行处理。
5.根据权利要求2所述的方法,还包括:
(g)当检索到应答消息时,以及当确定第一FIFO存储器包含至少一个消息和第二FIFO存储器为空之中的至少一项时,恢复其他消息的检索和处理。
6.根据权利要求1所述的方法,还包括:
提供第二FIFO存储器;以及在第一FIFO存储器和第二FIFO存储器之一中存储器其他消息。
7.根据权利要求6所述的方法,还包括:
从第一FIFO存储器向消息处理器提供信号以通知预备从第一FIFO存储器和第二FIFO存储器中的任何一个检索其他消息。
8.一种检索消息以便进行处理的系统,包括:
消息路由器;
第一存储器,被配置用于接收来自消息路由器的消息;
消息处理器,被配置用于从第一存储器检索消息;所述消息处理器还被配置用于将消息存储到第二存储器以及从第二存储器检索消息,其中第一存储器和第二存储器这二者是先进先出(FIFO)存储器。
9.根据权利要求8所述的系统,其中,所述消息处理器被配置用于从第一存储器检索至少一个消息以确定所述至少一个消息是否为对先前发送的同步消息的应答,以及如果所述至少一个消息不是应答并且不是通知消息,则将所述至少一个消息存储在第二存储器中以便随后的检索和处理。
10.根据权利要求9所述的系统,其中,所述消息处理器还被配置用于当检索到应答时以及当确定第一存储器为空并且第二存储器不为空时,向第一存储器发送通知消息。
11.根据权利要求9所述的系统,其中,所述消息处理器还被配置用于如果所述至少一个消息是通知消息,则丢弃从第一存储器检索到的所述至少一个消息。
12.根据权利要求9所述的系统,其中,存储在第二存储器中的所有消息是在消息处理器正在搜索对先前发送的同步消息的应答的时间段期间由消息处理器从第一存储器检索到的消息。
13.根据权利要求8所述的系统,其中,第一FIFO存储器还被配置为向消息处理器提供信号以通知预备从第一FIFO存储器和第二FIFO存储器中的任何一个检索其他消息。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261700812P | 2012-09-13 | 2012-09-13 | |
US61/700,812 | 2012-09-13 | ||
US201261701507P | 2012-09-14 | 2012-09-14 | |
US61/701,507 | 2012-09-14 | ||
PCT/US2013/059382 WO2014043309A1 (en) | 2012-09-13 | 2013-09-12 | Method of random access message retrieval from first-in-first-out transport mechanism |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104620224A true CN104620224A (zh) | 2015-05-13 |
Family
ID=49293846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380047627.6A Pending CN104620224A (zh) | 2012-09-13 | 2013-09-12 | 从先进先出传送机构的随机存取消息检索的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9423976B2 (zh) |
EP (1) | EP2895955A1 (zh) |
JP (1) | JP2015536063A (zh) |
KR (1) | KR20150054826A (zh) |
CN (1) | CN104620224A (zh) |
BR (1) | BR112015005709A2 (zh) |
WO (1) | WO2014043309A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681847A (zh) * | 2016-12-30 | 2017-05-17 | 深圳Tcl数字技术有限公司 | 基于Android系统的消息处理方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI615770B (zh) * | 2015-11-17 | 2018-02-21 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1496517A (zh) * | 2001-03-22 | 2004-05-12 | �ֹ��� | 用于宽带网络的计算机体系结构的数据同步系统和方法 |
US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
CN1977176A (zh) * | 2003-02-05 | 2007-06-06 | 诺基亚有限公司 | 在使用消息队列的消息传输中促进端到端服务质量的系统和方法 |
US20080130682A1 (en) * | 2006-12-01 | 2008-06-05 | Ty Akadiri | System and method for communication over an adaptive service bus |
CN102656563A (zh) * | 2009-12-09 | 2012-09-05 | 日本电气株式会社 | 信息处理系统、控制方法及存储程序的非临时性计算机可读介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4682284A (en) * | 1984-12-06 | 1987-07-21 | American Telephone & Telegraph Co., At&T Bell Lab. | Queue administration method and apparatus |
US5832262A (en) | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
US5906658A (en) * | 1996-03-19 | 1999-05-25 | Emc Corporation | Message queuing on a data storage system utilizing message queuing in intended recipient's queue |
US6563836B1 (en) | 1998-03-19 | 2003-05-13 | International Business Machines Corporation | Algorithm for dynamic prioritization in a queuing environment |
US6433787B1 (en) * | 1998-11-23 | 2002-08-13 | Nicholas J. N. Murphy | Dynamic write-order organizer |
US6243781B1 (en) * | 1998-12-03 | 2001-06-05 | Intel Corporation | Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe |
US6327625B1 (en) * | 1999-11-30 | 2001-12-04 | 3Com Corporation | FIFO-based network interface supporting out-of-order processing |
US6850092B2 (en) * | 2000-06-09 | 2005-02-01 | The Trustees Of Columbia University | Low latency FIFO circuits for mixed asynchronous and synchronous systems |
US6757768B1 (en) * | 2001-05-17 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node |
US20040128413A1 (en) * | 2001-06-08 | 2004-07-01 | Tiberiu Chelcea | Low latency fifo circuits for mixed asynchronous and synchronous systems |
US20030088721A1 (en) * | 2001-11-05 | 2003-05-08 | Sharma Debendra Das | Method and system for controlling flow of ordered, pipelined transactions between intercommunicating electronic devices |
CN102388359B (zh) * | 2011-09-15 | 2014-01-01 | 华为技术有限公司 | 信号保序方法和装置 |
-
2013
- 2013-09-12 US US14/424,283 patent/US9423976B2/en not_active Expired - Fee Related
- 2013-09-12 EP EP13771267.5A patent/EP2895955A1/en not_active Ceased
- 2013-09-12 WO PCT/US2013/059382 patent/WO2014043309A1/en active Application Filing
- 2013-09-12 BR BR112015005709A patent/BR112015005709A2/pt not_active Application Discontinuation
- 2013-09-12 CN CN201380047627.6A patent/CN104620224A/zh active Pending
- 2013-09-12 KR KR1020157006222A patent/KR20150054826A/ko not_active Application Discontinuation
- 2013-09-12 JP JP2015532035A patent/JP2015536063A/ja not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1496517A (zh) * | 2001-03-22 | 2004-05-12 | �ֹ��� | 用于宽带网络的计算机体系结构的数据同步系统和方法 |
US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
CN1977176A (zh) * | 2003-02-05 | 2007-06-06 | 诺基亚有限公司 | 在使用消息队列的消息传输中促进端到端服务质量的系统和方法 |
US20080130682A1 (en) * | 2006-12-01 | 2008-06-05 | Ty Akadiri | System and method for communication over an adaptive service bus |
CN102656563A (zh) * | 2009-12-09 | 2012-09-05 | 日本电气株式会社 | 信息处理系统、控制方法及存储程序的非临时性计算机可读介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681847A (zh) * | 2016-12-30 | 2017-05-17 | 深圳Tcl数字技术有限公司 | 基于Android系统的消息处理方法及装置 |
CN106681847B (zh) * | 2016-12-30 | 2020-08-11 | 深圳Tcl数字技术有限公司 | 基于Android系统的消息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2015536063A (ja) | 2015-12-17 |
WO2014043309A1 (en) | 2014-03-20 |
KR20150054826A (ko) | 2015-05-20 |
US20150248256A1 (en) | 2015-09-03 |
US9423976B2 (en) | 2016-08-23 |
BR112015005709A2 (pt) | 2017-07-04 |
EP2895955A1 (en) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934340B2 (en) | Multi-path RDMA transmission | |
US20200241915A1 (en) | Work conserving, load balancing, and scheduling | |
CN101616083B (zh) | 一种报文转发方法和装置 | |
US5931915A (en) | Method for processing early arrival messages within a multinode asynchronous data communications system | |
CN109690510B (zh) | 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法 | |
US10218645B2 (en) | Low-latency processing in a network node | |
US6857030B2 (en) | Methods, system and article of manufacture for pre-fetching descriptors | |
US6542513B1 (en) | Optimistic, eager rendezvous transmission mode and combined rendezvous modes for message processing systems | |
KR20170012400A (ko) | 확장 가능 메모리 시스템 프로토콜로 패킷들을 송신하기 위한 시스템들 및 방법들 | |
WO2019024727A1 (zh) | 消息处理方法以及基站 | |
CN103546258A (zh) | 一种数据传输方法及装置 | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
CN107453845B (zh) | 应答确认方法及设备 | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
US10305772B2 (en) | Using a single work item to send multiple messages | |
CN104620224A (zh) | 从先进先出传送机构的随机存取消息检索的方法 | |
US6035335A (en) | Optimistic, eager rendezvous transmission system and combined rendezvous system for message processing, and related data structures | |
US5878226A (en) | System for processing early arrival messages within a multinode asynchronous data communications system | |
US20150199298A1 (en) | Storage and network interface memory share | |
US10609188B2 (en) | Information processing apparatus, information processing system and method of controlling information processing system | |
US8601069B1 (en) | Method and apparatus for message multicasting | |
US11886938B2 (en) | Message communication between integrated computing devices | |
JP4228850B2 (ja) | パケット中継装置 | |
JP2002164924A (ja) | パケット処理装置 | |
CN116915370B (zh) | 基于远程直接数据存取的数据重传方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150513 |
|
WD01 | Invention patent application deemed withdrawn after publication |