CN103339903A - 用于接收和转发数据分组的装置和方法 - Google Patents
用于接收和转发数据分组的装置和方法 Download PDFInfo
- Publication number
- CN103339903A CN103339903A CN2012800066775A CN201280006677A CN103339903A CN 103339903 A CN103339903 A CN 103339903A CN 2012800066775 A CN2012800066775 A CN 2012800066775A CN 201280006677 A CN201280006677 A CN 201280006677A CN 103339903 A CN103339903 A CN 103339903A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- formation
- packet
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 50
- 230000015572 biosynthetic process Effects 0.000 claims description 86
- 238000005755 formation reaction Methods 0.000 claims description 86
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 230000000712 assembly Effects 0.000 claims 1
- 238000000429 assembly Methods 0.000 claims 1
- 238000004321 preservation Methods 0.000 claims 1
- 238000004458 analytical method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 238000011282 treatment Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 101100261000 Caenorhabditis elegans top-3 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 1
- 101100322583 Caenorhabditis elegans add-2 gene Proteins 0.000 description 1
- 241000723353 Chrysanthemum Species 0.000 description 1
- 235000005633 Chrysanthemum balsamita Nutrition 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/113—Arrangements for redundant switching, e.g. using parallel planes
- H04L49/118—Address processing within a device, e.g. using internal ID or tags for routing within a switch
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
一种用于接收并且转发分组的装置和方法,其中,所述分组由多个适配器接收并且馈送到控制器所分配的地址中的公共存储器。所述控制器适用于:向所述适配器转发请求,并且同时记录已经向各个适配器分配了哪些地址。作为对所述请求的响应,各个适配器将预定数据转发到所述存储器中的预定地址,以使得所述控制器能够更新所述存储器中的可用或已用地址。
Description
技术领域
发明涉及一种用于接收和转发数据分组的装置和方法,具体地说,涉及在多个分离的适配器上接收数据分组,该多个分离的适配器各自在公共总线上并向公共存储器转发数据分组。
发明内容
在第一方面中,本发明涉及根据权利要求1所述的设备。
在此情况下,数据分组可以是要在网络、数据缆线、数据总线、干线网等上发送或由其传输的任何类型的数据单元。正常地,数据单元符合一个或多个数据标准,例如作为umbrella的以太网标准,在该标准下存在着很多不同的标准或数据分组类型,例如UDP和TCP数据分组。数据分组通常具有很多不同的信息项或类型(例如地址数据、有效载荷等),它们分别位于数据分组内的良好定义的或已知的位置处。这些位置和类型通常将根据数据分组类型而不同,但通常可以根据实际的数据分组确定数据分组类型,并且因此确定其各自内容的位置,其中,在各自的数据项(例如地址数据和/或有效载荷)之后,可以在分析中对其进行推导、改动和/或使用。类型或标准可以从数据分组直接推导(例如当特定分组数据项标识了类型/标准时),或可以从自数据分组推导出的数据来推导(例如基于对数据分组的数据项的类型和位置的识别以及随后对数据分组的类型或标准的确定,其中可在这些位置处发现这些数据)。
接收到的数据分组可以是以多种方式并且出于很多原因而是预先排序的。通常,各计算机之间的数据交换是文件传送、TCP传送、VoIP等,其中,各个分组的顺序是重要的。通常,这些传送被称为流。
数据分组流一般是从单个发射机向一个或多个接收机发送的数据分组序列。这些数据分组涉及例如在作为分组有效载荷的较小部分中发送的单个文件等。于是发射机或接收机或任何中间网元将通常具有也在分组中表示的地址。此外,取决于各个数据分组标准,其它流标识信息可以在数据分组中出现。
因此,可以基于例如地址和/或流标识信息来标识流,由此,如果一致地使用,则可以推导相同信息,并且任何后续处理可以仅根据该信息来标识流。在另一情况下,可以向数据分组提供确定其顺序的信息,例如序列号或时间戳。因此,该信息可以用于对分组进行排序。
可以优选的是,接收和转发元件是物理上分离的,由此,可以根据期望而移除或替换它们。此外,可以提供更多或更少的这些元件,以适配装置的功能和能力。
控制单元可以是分离电路,或可以连接到或甚至嵌入在接收和转发元件之一中。其余数据接收和转发元件可以是相同的。
自然,数据接收和转发元件以及控制单元可以是全部彼此固定的,并且可以在同一外壳或服务器中提供。它们可以由各个电路或网络单元构成,该各个电路或网络单元分散在给定区域上并且(经由有线或无线方式)经由一个或多个网络(例如或包括WWW)彼此连接,从而能够交换数据。这种交换可以服从任何数据传送协议,例如TCP、以太网、蓝牙等,并且使用任何类型的数据传送,有线或无线。自然地,系统的各个装置可以分别由一个或多个处理器(例如FPGA、ASIC等)形成,或单个这样的处理器可以形成多个装置并且执行多个步骤。
同时,存储器可以是任何存储单元的形式,例如单片存储单元或由在空间上分离的多个存储元件所构成的存储单元。普通存储技术基于硬驱动器、软盘、RAM、ROM、PROM、EPROM、EEPROM、闪存、存储卡、CD-ROM、DVD、存储卡等。
如果提供分离的存储单元,则地址将描述实际存储单元的身份以及其中的“局部地址”。
系统的功能不需要仅是转发数据。可以执行以下将进一步描述的附加处理,例如分析数据分组。
接收装置通常将是适用于从网络接收数据分组的某类型的连网元件。因此,如果将要接收以太网数据分组,则该装置可以具有PHY、MAC等。大量数据协议是已知的,但本领域技术人员将理解什么接收装置关于哪些协议是有用的。接收装置可以存储数据分组,或者没有针对于进一步的处理/存储/传送延迟地输出它们。最一般地,提供缓冲器以考虑延迟,但这并非是必须的。
可以在通信装置(例如总线)上转发或发送第一信息、地址和请求信息,该通信装置与存储装置用于存储数据分组的至少一部分和应答信息以及被所述控制器使用来读取所述应答信息的通信装置相分离。
第一信息可以涉及分组的任何有关特征,例如其地址(MAC或IP地址、发射机或接收机)、其大小/长度、其归属或其在流中的位置、其到达时间等。自然地,任何数量的这些特征可以形成第一信息的一部分。
此外,由控制器确定并且由第一接收装置接收的地址可以是任何类型的地址,例如单个存储器或多个互连的存储器中的绝对地址、相对地址(例如,与所述存储器有关的地址或存储器中的地址)。注意,可以进一步变换地址,以获得用于存储的实际地址。地址可以例如是存储器中的队列或者地址空间或区域的身份,在该队列或者地址空间或区域中以例如预定顺序存储数据。
存储装置因此可以选择要存储的数据分组的各部分(如果不是整个数据分组)并且对其进行存储。自然地,如果并不期望将数据或其部分发送到例如接收机,则可以删除或不存储其地址部分,以节省存储器中的空间。
应答信息表示与接收到的、在其处已经存储了数据分组的至少一部分的地址有关的信息。控制单元存储或保存已经预留或例如向各个接收和转发元件转发的地址。这些地址或对其进行表示的信息可以保存在任何类型的存储器中,并且可以保存在针对于每个接收和转发元件的分离的存储器中或单个存储器中。这些地址可以由其自身来表示,或可以保存可从其推导出地址的信息。
存储装置向存储器输出应答信息的优点在于,当输出应答信息时,存储装置很好地知道已经至少向存储器转发了哪些地址。因此,更新的信息是可用的。
自然地,应答信息可以包括实际的、接收到并使用的或尚未使用的地址。
当在控制器中记住所保存的地址的分配顺序时,找到了更简洁的解决方案。在该解决方案中,应答信息仅需要是与接收到并使用的地址的数量有关的数字,例如,从例如最后一次发送应答信息开始所使用的地址的数量。备选地,应答信息可以是例如在存储应答信息时实际上尚未使用的、所接收到的地址的数量。依据该信息,控制单元能够确定数据出现在存储器中的哪些地址处。
以下进一步描述甚至更简洁的解决方案,其中,在控制器中可以仅使用对应答信息的存储,以用于获知哪些地址已经加载有数据。
确定装置可以根据任何原理或策略来确定地址。可以期望以给定顺序(例如时间或接收顺序)来存储数据,和/或可以期望分离地存储与特定地址或流量(f1ow)/流有关的数据。如以下将进一步描述的那样,可以实现多个队列,从而可以根据特定策略在队列中存储数据。
通常基于第一信息来执行地址确定,并因而使第一信息包括地址确定所需的信息。
注意,取决于一个数据分组的大小,可以向其分配多个地址。在该解决方案中,所需的地址的大小或数量可以形成第一信息的一部分。
可以执行维持或更新与存储数据分组或其至少一部分的地址有关的信息,以获知哪些地址未处于使用中,因此优选地由确定地址的确定装置来使用。以此方式,不分配已经处于使用中的地址。
该信息的其它用户可以是处理或处理器,处理或处理器从存储器读取信息,并因此释放地址以用于确定装置重新使用和重新分配。这些处理/处理器需要关于有效数据在哪些地址中出现的知识。
自然地,与存储数据分组的地址有关的信息可以通过很多方式来表示该知识。一种方式是:存储或获知存储数据的每个地址,或者备选地不存储数据的每个地址。
自然存在更高效的方式,一种是以下所描述的使用一个或多个队列。队列的一个优点在于,为了确定分配队列的哪部分或分配多少,仅需要队列的末端。
可将任何装置用于向存储装置传送数据分组(的至少一部分)以及应答信息,从存储装置读取应答信息,并且向/从接收和转发元件传送第一信息、地址和请求信息。例如,可以选择这些装置,从而能够支持各种数量的接收和转发元件。这可以是在无线通信以及不同类型的有线数据总线(例如环形总线以及星形总线以及标准总线)中的情况,并且能够在任何协议上传送任何类型的信息或数据。
优选地,这些装置是对控制单元和所有接收和转发装置而言公共的数据总线。
如果该传送装置是当向其转发数据时不允许数据超越(over-take)的类型,则清楚的是,存储装置所输出的应答信息将是十分精确的,因为该存储装置将在输出应答信息时获知已经向哪些地址转发了数据。此外,将考虑到任何存储延迟,因为一旦被存储在存储器中,应答信息就将准确地向控制单元指示现在已经使用了哪些地址。
实际上,当存储装置适用于仅在数据分组的至少一部分已经被存储在接收请求信息之前接收到的所有地址处或被至少转发到传送装置之后才存储应答信息时,该应答信息在存储器中确切的存在将是这些地址现在处于使用中的指示。
然后,当控制单元知道在将请求信息输出到每个接收和转发元件之前和/或之后哪些地址被返回到该接收和转发元件时,控制单元在确定应答信息出现在存储器中时将获知哪些地址现在处于使用中。注意,这与从存储装置到存储器的数据路径上存在的任何延迟无关。
在一个实施例中,每个接收和转发元件还包括:用于确定接收/存取数据分组的时间点的装置,时间确定装置包括时钟装置,所有时间确定装置的时钟装置是同步的。可以采用不同的同步方式,例如简单地提供全局同步或时钟信号。备选地,各个元件或电路的时钟可以与多个时钟之一(例如控制单元的时钟)同步。
在此情况下,到达时间或时间戳可以形成第一信息的一部分,并且因此被中继到控制单元,控制单元可在然后使用该信息来分配地址,使得以正确顺序来存储数据分组。
优选地,一个或多个队列在存储器中被定义为分离的地址群,控制单元的确定装置适用于:根据第一信息来确定将向其添加有关数据分组的队列,以及从有关队列的地址群选择地址。
通常,队列被实现为排序列表,其中,数据被添加到列表的一端并且从列表的另一端退出队列。最优选地,将队列实现为环形列表。列表的各端因此可以由两个指针来标识,一个指针标识用于接收数据的下一地址(或最后使用的地址),另一指针标识指向要退出队列的下一地址或最后退出队列的地址。
关于数据被存储到哪个地址的信息因此由队列的指针来表示,或可被用于生成、控制或更新这些指针。
在此情况下,控制单元的确定装置可以适用于:确定所确定的队列中的地址,以使得数据分组以接收/存取的顺序存储在队列中。这种接收/地址的顺序可以是控制单元接收第一信息的顺序或接收和发送元件的接收/地址的顺序。在后一种情况下,接收和发送单元优选地适用于:确定每个数据分组的接收时间,并且在第一信息中转发该信息,以使得确定装置能够确定地址。
在一个实施例中,套件还包括:用于从存储器读取数据或将数据退出队列的装置,读取装置包括用于输出与存储装置的一个或多个地址有关的第三信息的装置,所述一个或多个地址的数据已经被读取/退出队列。此外,在确定在哪些地址中存储数据时(例如在更新或管理队列的指针或末端地址时),该信息是期望的。
自然地,该第三信息可以是退出队列的各个地址,或第三信息可以表示多个地址(例如所退出队列的地址的间隔)。
因此,优选地,控制单元适用于:针对每个队列保存写指针和读指针,写指针标识添加数据的下一地址,读指针标识要从队列读取/退出队列的下一地址。
读取/更新装置适用于:
-基于接收到的应答信息来更新队列的写指针,以及
-基于接收到的第三信息来更新队列的读指针,数据已经从所述读指针退出队列,以及
其中,确定装置适用于:还基于队列的读指针和写指针来确定地址。
在此情况下,读取/退出队列装置可以实际上更新读指针,并且仅将其拷贝作为第三信息向控制器转发。以此方式,读指针由读取/退出队列装置维护,写指针由控制器维护,控制器然后仅不时地接收所更新的读指针的拷贝。
以此方式,获得包括有效数据的地址的紧凑且高效的表示。
然而,当例如在接收和转发元件与存储器之间存在拥塞或延迟时,可以看出问题。因此,地址可被分配给数据分组,但该数据分组的存储可能受到延迟。这将引起退出队列装置的关注。在此情况下,读取/更新装置优选地适用于:仅在已经接收到表示读指针与写指针之间的所有地址的应答信息的情况下,才将写指针更新为某个地址。
因此,如果数据分组尚未到达存储器,但后续数据分组已在队列中,则仍不更新写指针,因为这将在队列中包括“孔”或丢失的数据分组。然后,当已经存储了丢失的数据分组时,将写指针更新为下一个“孔”或队列的末端。可以通过控制装置并且基于第二信息来执行这种对“孔”的标识。
本发明另一方面涉及根据权利要求9的方法。
优选地,多个接收和转发元件同时执行以上步骤。接收和转发元件可以接收/存取一个数据分组,输出与先前接收到/存取的数据分组有关的第一信息,以及接收针对于甚至更早接收到/存取的数据分组的地址。
此外,控制单元可以同时确定针对多个数据分组的地址,以及可以将接收应答信息和更新与地址有关的信息的步骤与其它步骤同时执行。
如上所述,接收和转发元件的数量可以根据所期望的性能和带宽而变化。
在优选第一实施例中,存储步骤包括:仅在将数据分组中的至少一部分存储在接收请求信息之前已经接收到的所有地址处之后,存储应答信息。
在优选第二实施例中,存储步骤包括:所有接收和转发元件通过优选地也用于存储和接收应答信息的公共总线向存储器转发数据分组。
尤其是,如果该公共总线是在已经向其传送数据时不允许超越(即,在各个存储装置与存储器之间,来自存储装置的数据或应答信息彼此不超越)的类型,则存储装置将能够在应答信息中提供关于哪些地址在使用中(或不在使用中)的确切信息。自然地,只要以提供给总线的顺序(时间)来存储来自每个存储装置的数据/应答信息,就可以允许来自一个存储装置的数据/应答信息超越另一存储装置的数据/应答信息。
如果将第一实施例和第二实施例与不超越相结合,则控制器可以根据应答信息在存储器中确切的存在来确定或描述哪些地址现在正在使用中或未在使用中。
备选地,可以在应答信息中直接或间接提供地址,以用于控制器使用。此外,在此情况下,期望不超越传送。
在一个实施例中,接收和转发元件还确定接收/存取数据分组的时间点,时间确定装置包括时钟装置,所有时间确定装置的时钟装置是同步的。如上所述,存在获得这种同步的不同方式。于是,该时间点可以形成第一信息的一部分,以及地址确定可以基于此。
多个队列可以在存储器中被定义为分离的地址群,确定步骤包括:根据第一信息来确定向其添加有关数据分组的队列,并且从有关队列的地址群选择地址。
在此情况下,优选地,确定步骤包括:确定所确定的队列中的地址,以使得数据分组以接收/存取的顺序存储在队列中。
在一个实施例中,方法还包括步骤:从存储器读取数据或将数据退出队列,读取步骤包括:输出与存储装置的一个或多个地址有关的第三信息,所述一个或多个地址的数据已经被读取/退出队列。例如,当预定数量的地址已被或周期性地退出队列时,第三信息可以是每次已将地址退出队列时的输出。
优选地,确定步骤包括:针对每个队列确定写指针和读指针,所述写指针标识添加数据的下一地址,所述读指针标识要从队列读取/退出队列的下一地址,
读取/更新步骤包括:
-基于接收到的应答信息来更新队列的写指针,以及
-基于接收到的第三信息来更新队列的读指针,数据已经从所述读指针退出队列,以及
确定步骤包括:还基于队列的读指针和写指针来确定地址。
于是,确定步骤可以包括:仅在已经接收到表示读指针与写指针之间的所有地址的应答信息的情况下,才将所述写指针更新为某个地址。
附图说明
以下,将参照附图描述根据本发明的优选实施例,其中:
-图1示出根据本发明的装置的优选实施例,以及
-图2示出在根据图1的装置中对队列的使用。
具体实施方式
在图1中,示出用于分析和转发数据帧的设备的实施例10,其具有多个适配器12,每个适配器12连接到网络(例如WWW)并且从网络接收数据。
通常,该类型的系统可以用于接收大量数据分组并且以合适的方式促进其存储和/或转发。通常在该系统所监视的数据连接上在成对计算机或网络之间发送这些数据分组。因此,数据分组一般不意图针对该系统,也不寻址到该系统或从该系统寻址。
当存储时,该数据可以受一个或多个后续处理或处理器34处理。为了能够处理非常大量的数据,期望结构化存储,以实现对数据的迅速且结构化的检索。此外,当单个处理器不够时,提供多个处理器,由此期望针对各个处理器的分离的数据存储。
取决于处理器中的处理结果,处理器可以用于分析数据业务,存储数据和/或将数据发送到其它网元、计算机等。
备选地或此外,可以期望随后再次输出数据,由此也可以或备选地期望以期望进行输出的方式或序列来存储数据。
一般地,数据分组是数据分组流的部分。当两个处理器或计算机交互时,交换数据分组流。该流可以是音频/视频的文件传送或交换,例如基于IP的语音。流是相似的数据分组的序列。数据分组对于流的附属是可确定的,并且期望流的所有数据分组以期望的顺序存储在一起,由同一后续处理或处理器处理,和/或以此顺序输出。
根据对帧的分析来确定接收到的数据帧对流的附属。以下进一步详细描述这种分析。
本实施例关注于提供这样的设置:多个适配器12对分析帧/分组和/或存储它们的任务进行划分。
更具体地说,适配器12从网络14(例如WWW、干线网或任何合适类型的网络)接收数据帧。每个适配器12独立于其它适配器12来接收多个帧。
优选地,所有适配器(很可能除了一个之外)都是相同的,并且每个适配器包括所谓的PHY20和所谓的MAC电路22,PHY20是适用于从网络或数据缆线接收数据帧的元件,MAC电路22将接收到的帧转换为通常在例如计算机的数据总线上所使用的标准。
在已经接收到数据帧的情况下,向该数据帧提供电路24中的时间戳,其中,在将帧馈送到分析电路26之后,分析电路26据此推导与数据帧有关(例如与帧所符合的标准有关)的数据(例如其是否被VLAN和/或MPLS标记)以及潜在的地址数据。多个不同类型的标准是已知的,其中的每一个定义哪些类型的数据(地址、封装、有效载荷、纠错等)出现在帧中以及该数据出现在何处。取决于特定类型的分组,可以推导不同类型的数据。
电路26输出标识数据帧的数据,例如其对于数据分组流或中央存储器中的队列的归属。然后,在请求电路28中向中央服务器存储器分配器或控制器16发送数据帧的长度、数据帧的ID/队列标识和时间戳,中央服务器存储器分配器或控制器16返回要在其处存储数据帧的存储器18内的地址。该地址被返回到还接收数据帧的传送电路30,传送电路30随后经由公共总线32(例如运行PCI Express(PCIe)协议)向所标识的地址发送数据帧。这种存储可以使用直接存储器寻址,这意味着,帧直接存储在所期望的地址处,并且无需进一步的分析。这是在数据存储器中存储数据的最快方式,但这要求物理地址是已知的。
自然,电路28可以备选地将标识帧的信息(类型、地址等)与分组的时间戳和长度一起输出,由此,分配器自身将确定要向其添加帧的队列,并且因此推导要在其处存储帧的地址。
分配器16与适配器12之间的“带外”通信可以是低带宽点对点通信、菊花链拓扑型或环形拓扑型。如以下进一步描述的那样,这种通信还用于同步时间戳电路24的时钟。用于这种通信的合适协议可以是标准64a/64b编解码,其要求以太网前端口(PHY)带宽的每10Gbps的大致1Gbps全双工带宽。
分配器与适配器12之间的通信的另一使用是:保持向分配器通知存储进展。
分配器16知道存储器18中的哪些地址已经被分配以及被分配到哪个适配器12。为了确定实际上使用哪些地址,分配器16例如以请求或空闲分组的形式向各个适配器12发送请求。响应于请求,适配器12将在预定地址中向存储器18发送应答分组。适配器12适用于:以接收各个地址和请求的顺序来分别输出数据分组和响应。
即使已经向数据分组分配了存储器18中的一个或多个地址,适配器12可能也不能够立即将该数据分组转发到存储器18,因为例如由于总线32上的仲裁而可能产生延迟。然而,由于从适配器12按顺序输出数据分组和应答,因此对应答的存储将指示该适配器12现在已经存储了附属于所有先前所接收到的地址的数据分组。
每个适配器12可以在不同的地址处存储其应答,以使得分配器16确定哪个适配器12已经转发了应答。在本实施例中,每个请求将在其中具有被拷贝到应答中的编号,以使得分配器16可以通过与该地址的前一编号进行比较来确定已经存储了更新后的应答。
分配器16因此将监视地址并且确定何时编号的更新存在,由此,适配器12已经在接收到的所有地址中存储了数据分组,该所有地址是在从接收到针对该适配器12的请求开始接收到的,该请求具有刚在应答中接收到的编号。当分配器16跟踪在(包括编号的)请求之前和之后输出的所有地址时,分配器16可以确定存储器中的地址中的哪些已经被占据,哪些已被向适配器12转发但仍处于未使用中,哪些是空闲的。
在备选实施例中,来自适配器12的应答可以包括从最后的应答开始已在其中存储了数据的所有地址或已接收到的尚未在其处存储数据的所有地址。在此情况下,分配器16可以无需跟踪所分配的地址而是仅跟踪存储数据的地址。
通常,这种空闲/使用信息可被用于从存储器18读出数据分组。自然地,从已经分配但尚未在其中存储正确的数据的地址读取信息将是有问题的。
在多数情况下,数据分组存储在存储器18中,作为队列。在此情况下,由于已向其预留/分配了空间但由于延迟而尚未到达的数据分组,在队列中可能产生孔。
优选地,将存储器中的队列简单地实现为地址的列表,优选地环形列表,以及可以使用指针来指向所存储的数据的要写入/添加新数据的一端,以及另一指针可以指向将数据退出队列的一端。分配器16可以更新两个指针,但至少在写入结束时。
于是,如果在写入结束处存在孔,则分配器16将不把写指针移动为使得在写指针和读指针之间包括孔,写指针和读指针一起表示在其中存在数据的地址。反之,写指针将仅位于孔处,然后,当孔被“填充”时,将指针移动到下一孔或移动到所使用的地址的末端。以此方式,将数据退出队列的任何处理将不把孔退出队列并因此丢失尚未到达的分组。
图2示出队列的使用以及确保处理器34知道队列的哪些部分包含有效数据的方式。
在图2中,三个队列示出在左边。这些队列是各个适配器12中的数据的队列,数据等待被发送到主存储器18。在每个队列中示出了粗线,并且这描述了在以分配器16所指令的顺序输出数据的实施例中,在数据的队列中接收请求并且因此用于向存储器18输出应答的位置。因此,当粗线在队列的前面时,向存储器18馈送对应应答。上队列将该应答馈送到地址Add-1(地址-1),中队列将应答馈送到Add-2(地址-2),下队列将应答馈送到Add-3(地址-3)。
在存储器18中将队列实现为环形队列,在队列3处示出该情况,队列3整体已经被分配了在底部-3(Bottom-3)和顶部3(Top-3)指针处指示的地址之间的存储位置。弯曲箭头指示队列是环形的,因此,当到达Top-3指针时,从Bottom-3指针添加其它数据。在每个队列中,有效数据出现在读指针(Read-1/2/3)与写指针(Write-1/2/3)之间。于是允许处理器34从读指针读取数据并且将其读取到写指针。新地址存储在写指针以上的地址中,但由于孔(见上)可能仍存在,因此在不存在孔之前,不允许处理器将该数据退出队列。当已经将数据退出队列时,处理器可以改动对应的读指针以使得读地址对于新数据可用。
当应答(粗线)将要被转发到Add-地址时,可以假设对应队列是完整的,之后,写指针可以移动到当前所使用的顶部地址,以使得处理器有更多的数据可用。因此,当分配器16在Add-地址处看见数据或改动的数据时,可以将写指针转移到可能已经被固定在转发请求消息的时间点处的地址,因为分配器16在该时间点处知道在请求时间点之前分配了有关队列的哪些地址。
在多个适配器12能够将数据馈送到相同队列的情况下,分配器16可以同时(或至少基本上同时)向所有适配器12发出请求。然后,在分配器16在所有相关Add-地址中看见修改的数据之前,不改动共享队列的写指针,因为这样确保共享队列的前一写地址与新的写地址之间的所有数据由有效数据占据。
实际上,可以期望总是使分配器16向所有适配器12发出请求消息并且等待改动任何写地址,直到所有Add-地址已经改变。
自然地,分配器16请求该信息越频繁,更新指针将越迅速,稍后处理的延迟将越短。另一方面,更多业务出现在分配器16与适配器12之间的链路以及总线32上。
注意,以上实施例10可以在存储器18中以任何数量的队列来存储数据帧。向哪个队列转发数据分组可以取决于帧的未来命运。如果帧要由一个或多个处理器分析,则可以对于每个处理器提供一个队列,向队列转发帧可以取决于在添加分组之前队列有多长。如果队列很长,并且处理器因此忙碌,则可以在处理器的较短队列(因此较不忙)中提供分组。
Claims (16)
1.一种用于接收和转发数据分组的设备,所述设备包括控制单元、包括能够存储数据的多个地址的存储器以及多个数据接收和转发元件,每个数据接收和转发元件包括:
-用于接收或存取数据分组的装置,
-用于输出与所述数据分组有关的第一信息的装置,
-第一接收装置,用于接收用以存储所述数据分组的至少一部分的地址,
-第二接收装置,用于接收请求信息以及生成应答信息,
-用于将所述数据分组的所述至少一部分在所述存储器中存储在接收到的地址处以及将所述应答信息在所述存储器中存储在预定地址处的装置,所述应答信息表示与已经存储了所述数据分组的所述至少一部分的、接收到的地址有关的信息,
所述控制单元包括:
-用于接收所述第一信息的装置,
-用于确定地址以及向有关数据接收和转发元件的第二接收装置返回所述地址的装置,
-用于向至少一个数据接收和转发元件输出所述请求信息的装置,
-用于在向所述至少一个数据接收和转发元件输出所述请求信息之后保存与向其返回的地址有关的信息的装置,以及
-用于从所述存储器中的所述预定地址读取所述应答信息以及基于所保存的信息来更新与所述存储器中存储所述数据分组的所述至少一部分的地址有关的信息的装置。
2.根据权利要求1所述的设备,其中,所述存储装置适用于:仅在已经将所述数据分组中的所述至少一部分存储在接收所述请求信息之前接收到的所有地址处之后,存储所述应答信息。
3.根据权利要求1所述的设备,其中,每个接收和转发元件还包括:用于确定接收/存取所述数据分组的时间点的装置,所述时间确定装置包括时钟装置,所有时间确定装置的所述时钟装置是同步的。
4.根据前述权利要求中的任一项所述的组件,其中,一个或多个队列在所述存储器中被定义为分离的地址群,所述控制单元的确定装置适用于:根据所述第一信息来确定要将有关数据分组添加至的队列,以及从有关队列的地址群中选择地址。
5.根据权利要求4所述的组件,其中,所述控制单元的确定装置适用于:确定所确定的队列中的地址,以使得所述数据分组以接收/存取的顺序存储在队列中。
6.根据前述权利要求中的任一项所述的组件,所述组件还包括:用于从所述存储器读取数据或将数据退出队列的装置,所述读取装置包括用于输出与所述存储装置的一个或多个地址有关的第三信息的装置,所述一个或多个地址的数据已经被读取/退出队列。
7.根据权利要求4和6所述的组件,其中,所述控制单元适用于:针对每个队列保存写指针和读指针,所述写指针标识添加数据的下一地址,所述读指针标识要从所述队列读取/退出的下一地址,
所述读取/更新装置适用于:
-基于接收到的应答信息来更新所述队列的所述写指针,以及
-基于接收到的第三信息来更新所述队列的读指针,数据已经从所述队列退出,以及
其中,所述确定装置适用于:还基于所述队列的所述读指针和所述写指针来确定所述地址。
8.根据权利要求7所述的组件,其中,所述读取/更新装置适用于:仅在已经接收到表示所述读指针与所述写指针之间的所有地址的应答信息的情况下,才将所述写指针更新为地址。
9.一种操作设备的方法,所述设备包括控制单元、多个数据接收和转发元件以及包括能够存储数据的多个地址的存储器,所述方法包括:
接收和转发元件:
-接收或存取数据分组,
-输出与所述数据分组有关的第一信息,
-接收用于存储所述数据分组的至少一部分的地址,
-将所述数据分组的所述至少一部分在所述存储器中存储在所述地址处,
-接收请求信息以及生成应答信息,
以及
-将所述应答信息在所述存储器中存储在预定地址处,所述应答信息表示与已经存储了所述数据分组的至少一部分的、接收到的地址有关的信息,
所述控制单元:
-接收所述第一信息,
-确定地址,保存所述地址,以及向有关数据接收和转发元件的接收装置返回所述地址,
-向所述数据接收和转发元件输出所述请求信息,以及
-从所述存储器中的所述预定地址读取所述应答信息,以及基于所保存的信息来更新与所述存储器中存储了所述数据分组的所述至少一部分的地址有关的信息。
10.根据权利要求9所述的方法,其中,所述存储步骤包括:仅在已经将所述数据分组中的所述至少一部分存储在接收所述请求信息之前接收到的所有地址处之后,存储所述应答信息。
11.根据权利要求9或10所述的方法,其中,所述接收和转发元件还确定接收/存取所述数据分组的时间点,所述时间确定装置包括时钟装置,所有时间确定装置的所述时钟装置是同步的。
12.根据权利要求9-11中的任一项所述的方法,其中,多个队列在所述存储器中被定义为分离的地址群,所述确定步骤包括:根据所述第一信息来确定要将有关数据分组添加至的队列,以及从有关队列的地址群中选择地址。
13.根据权利要求12所述的组件,其中,所述确定步骤包括:确定所确定的队列中的地址,以使得所述数据分组以接收/存取的顺序存储在队列中。
14.根据权利要求9-13中的任一项所述的方法,还包括:从所述存储器读取数据或将数据退出队列,所述读取步骤包括:输出与存储装置的一个或多个地址有关的第三信息,所述一个或多个地址的数据已经被读取/退出队列。
15.根据权利要求12和14所述的方法,其中,所述确定步骤包括:针对每个队列确定写指针和读指针,所述写指针标识添加数据的下一地址,所述读指针标识要从所述队列读取/退出的下一地址。
所述读取/更新步骤包括:
-基于接收到的应答信息来更新所述队列的所述写指针,以及
-基于接收到的第三信息来更新所述队列的读指针,数据已经从所述队列退出,以及
所述确定步骤包括:还基于所述队列的所述读指针和所述写指针来确定所述地址。
16.根据权利要求15所述的方法,其中,所述确定步骤包括:仅在已经接收到表示所述读指针与所述写指针之间的所有地址的应答信息的情况下,才将所述写指针更新为地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161437369P | 2011-01-28 | 2011-01-28 | |
US61/437,369 | 2011-01-28 | ||
PCT/EP2012/050355 WO2012100984A1 (en) | 2011-01-28 | 2012-01-11 | An apparatus and a method for receiving and forwarding data packets |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339903A true CN103339903A (zh) | 2013-10-02 |
CN103339903B CN103339903B (zh) | 2016-05-04 |
Family
ID=45476522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280006677.5A Active CN103339903B (zh) | 2011-01-28 | 2012-01-11 | 用于接收和转发数据分组的装置和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20130311609A1 (zh) |
EP (1) | EP2668753B1 (zh) |
JP (1) | JP5816301B2 (zh) |
KR (1) | KR20140004743A (zh) |
CN (1) | CN103339903B (zh) |
BR (1) | BR112013018419A2 (zh) |
DK (1) | DK2668753T3 (zh) |
WO (1) | WO2012100984A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579862A (zh) * | 2013-10-11 | 2015-04-29 | 通用电气航空系统有限责任公司 | 用于飞机的数据通信网络 |
CN108733578A (zh) * | 2017-04-21 | 2018-11-02 | 慧荣科技股份有限公司 | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 |
CN111919180A (zh) * | 2018-03-26 | 2020-11-10 | Ewab工程有限公司 | 输送机系统控制器、输送机系统和数据同步方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733167B2 (en) | 2015-06-03 | 2020-08-04 | Xilinx, Inc. | System and method for capturing data to provide to a data analyser |
US10691661B2 (en) | 2015-06-03 | 2020-06-23 | Xilinx, Inc. | System and method for managing the storing of data |
JP6465843B2 (ja) | 2016-09-13 | 2019-02-06 | キヤノン株式会社 | リング型バスシステム |
TWI725240B (zh) * | 2017-09-30 | 2021-04-21 | 智邦科技股份有限公司 | 聚合媒體存取服務數據單元( a - m s d u ) 子訊框的處理方法及無線網路存取裝置 |
CN109600795B (zh) * | 2017-09-30 | 2021-09-28 | 智邦科技股份有限公司 | A-msdu子帧的处理方法及无线网络存取装置 |
KR102608825B1 (ko) * | 2018-04-26 | 2023-12-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
CN114124421B (zh) * | 2020-08-31 | 2024-04-12 | 深圳市中兴微电子技术有限公司 | Acl规则处理方法、装置、计算机设备和可读介质 |
CN113709061A (zh) * | 2021-07-23 | 2021-11-26 | 合肥忆芯电子科技有限公司 | 一种报文转发的方法和电路 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02311050A (ja) * | 1989-05-26 | 1990-12-26 | Hitachi Ltd | データ転送制御装置 |
JPH0683733A (ja) * | 1992-08-31 | 1994-03-25 | Nec Corp | 受信制御方式 |
CN1214168A (zh) * | 1996-03-14 | 1999-04-14 | 摩托罗拉公司 | 有效的输出请求分组交换设备和方法 |
CN1317189A (zh) * | 1998-07-02 | 2001-10-10 | 铁桥网络股份有限公司 | 网络分组交换系统和方法 |
US20060072578A1 (en) * | 2002-01-11 | 2006-04-06 | Vic Alfano | Reordering packets |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61234149A (ja) * | 1985-04-09 | 1986-10-18 | Nec Corp | 受信バツフア装置 |
JPS6373741A (ja) * | 1986-09-16 | 1988-04-04 | Matsushita Electric Ind Co Ltd | 通信制御装置 |
US6912637B1 (en) * | 1998-07-08 | 2005-06-28 | Broadcom Corporation | Apparatus and method for managing memory in a network switch |
US20020126673A1 (en) * | 2001-01-12 | 2002-09-12 | Nirav Dagli | Shared memory |
US7287649B2 (en) * | 2001-05-18 | 2007-10-30 | Broadcom Corporation | System on a chip for packet processing |
KR100548214B1 (ko) * | 2003-12-10 | 2006-02-02 | 삼성전자주식회사 | 복수의 인터페이스를 통해 패킷을 전송하기 위한 정보 독출을 미리 수행하여 패킷 전송을 빠르게 수행하는 패킷 포워딩 시스템 및 그 방법 |
JP4336625B2 (ja) * | 2004-06-17 | 2009-09-30 | 株式会社日立製作所 | パケット転送装置 |
US7817636B2 (en) * | 2008-01-30 | 2010-10-19 | Cisco Technology, Inc. | Obtaining information on forwarding decisions for a packet flow |
US9270542B2 (en) * | 2009-07-31 | 2016-02-23 | Ixia | Apparatus and methods for forwarding data packets captured from a network |
US9407581B2 (en) * | 2009-12-04 | 2016-08-02 | Napatech A/S | Distributed processing of data frames by multiple adapters using time stamping and a central controller |
US8934341B2 (en) * | 2009-12-04 | 2015-01-13 | Napatech A/S | Apparatus and a method of receiving and storing data packets controlled by a central controller |
JP5749732B2 (ja) * | 2009-12-04 | 2015-07-15 | ナパテック アクティーゼルスカブ | キューの充填レベルの更新を制御することにより帯域幅を節約しながらデータを受信し記憶するアセンブリおよび方法 |
-
2012
- 2012-01-11 WO PCT/EP2012/050355 patent/WO2012100984A1/en active Application Filing
- 2012-01-11 BR BR112013018419A patent/BR112013018419A2/pt not_active IP Right Cessation
- 2012-01-11 JP JP2013550818A patent/JP5816301B2/ja active Active
- 2012-01-11 CN CN201280006677.5A patent/CN103339903B/zh active Active
- 2012-01-11 US US13/981,420 patent/US20130311609A1/en not_active Abandoned
- 2012-01-11 KR KR1020137022840A patent/KR20140004743A/ko not_active Application Discontinuation
- 2012-01-11 DK DK12700231.9T patent/DK2668753T3/en active
- 2012-01-11 EP EP12700231.9A patent/EP2668753B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02311050A (ja) * | 1989-05-26 | 1990-12-26 | Hitachi Ltd | データ転送制御装置 |
JPH0683733A (ja) * | 1992-08-31 | 1994-03-25 | Nec Corp | 受信制御方式 |
CN1214168A (zh) * | 1996-03-14 | 1999-04-14 | 摩托罗拉公司 | 有效的输出请求分组交换设备和方法 |
CN1317189A (zh) * | 1998-07-02 | 2001-10-10 | 铁桥网络股份有限公司 | 网络分组交换系统和方法 |
US20060072578A1 (en) * | 2002-01-11 | 2006-04-06 | Vic Alfano | Reordering packets |
US7856011B2 (en) * | 2002-01-11 | 2010-12-21 | Vic Alfano | Reordering packets |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579862A (zh) * | 2013-10-11 | 2015-04-29 | 通用电气航空系统有限责任公司 | 用于飞机的数据通信网络 |
CN104579862B (zh) * | 2013-10-11 | 2018-08-10 | 通用电气航空系统有限责任公司 | 用于飞机的数据通信网络 |
CN108733578A (zh) * | 2017-04-21 | 2018-11-02 | 慧荣科技股份有限公司 | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 |
CN111919180A (zh) * | 2018-03-26 | 2020-11-10 | Ewab工程有限公司 | 输送机系统控制器、输送机系统和数据同步方法 |
CN111919180B (zh) * | 2018-03-26 | 2021-11-16 | Ewab工程有限公司 | 输送机系统控制器、输送机系统和数据同步方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2668753B1 (en) | 2017-10-04 |
DK2668753T3 (en) | 2017-12-04 |
JP2014508454A (ja) | 2014-04-03 |
EP2668753A1 (en) | 2013-12-04 |
CN103339903B (zh) | 2016-05-04 |
US20130311609A1 (en) | 2013-11-21 |
JP5816301B2 (ja) | 2015-11-18 |
BR112013018419A2 (pt) | 2016-10-11 |
KR20140004743A (ko) | 2014-01-13 |
WO2012100984A1 (en) | 2012-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339903A (zh) | 用于接收和转发数据分组的装置和方法 | |
CN102754395B (zh) | 由中央控制器控制的接收和存储数据分组的设备和方法 | |
US9407581B2 (en) | Distributed processing of data frames by multiple adapters using time stamping and a central controller | |
US20030133465A1 (en) | System for reordering sequenced based packets in a switching network | |
EP2507952B1 (en) | An assembly and a method of receiving and storing data while saving bandwidth by controlling updating of fill levels of queues | |
US7792153B2 (en) | Sequencing multi-source messages for delivery as partial sets to multiple destinations | |
US9450851B2 (en) | Communication apparatus and method | |
US20170187587A1 (en) | Technologies for inline network traffic performance tracing | |
KR101400329B1 (ko) | 통신 네트워크 시스템 | |
KR20180031569A (ko) | 네트워크에서의 분산 프로세싱 | |
CN101795266A (zh) | 航电asm协议控制器 | |
JP6266982B2 (ja) | データを受信しフォワードするための装置および方法 | |
JP2014504817A5 (zh) | ||
WO2012163395A1 (en) | An apparatus and a method of parallel receipt, forwarding and time stamping data packets using synchronized clocks | |
CN112910588B (zh) | 以太网时间同步方法及装置 | |
WO2011067404A1 (en) | An apparatus and a method of parallel receipt, forwarding and time stamping data packets using synchronized clocks | |
CN103428110A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |