WO2022143678A1 - 报文存储方法、报文出入队列方法及存储调度装置 - Google Patents

报文存储方法、报文出入队列方法及存储调度装置 Download PDF

Info

Publication number
WO2022143678A1
WO2022143678A1 PCT/CN2021/142133 CN2021142133W WO2022143678A1 WO 2022143678 A1 WO2022143678 A1 WO 2022143678A1 CN 2021142133 W CN2021142133 W CN 2021142133W WO 2022143678 A1 WO2022143678 A1 WO 2022143678A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
message
queue
linked list
data
Prior art date
Application number
PCT/CN2021/142133
Other languages
English (en)
French (fr)
Inventor
徐子轩
夏杰
Original Assignee
苏州盛科通信股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 苏州盛科通信股份有限公司 filed Critical 苏州盛科通信股份有限公司
Publication of WO2022143678A1 publication Critical patent/WO2022143678A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Definitions

  • the present invention relates to the field of network technologies, and in particular, to a message storage method, a message entry and exit queue method, and a storage scheduling device.
  • the network chip When the network chip uses the store-and-forward mode to forward packets, it needs to use a linked list (the linked list is represented as a packet data linked list) to completely cache the packets in the memory, and then according to the forwarding logic. destination port. After that, an enqueue request is generated, and the key information of the message (the starting address of the message, the message length, etc.) is written into the linked list of the queue (the linked list is represented as an information linked list), and the queue is waiting for scheduling.
  • a linked list the linked list is represented as a packet data linked list
  • the message LN-1 carries the eop (the last data of the message data) flag bit; the message to be stored in the data memory is fragmented from the free address memory Apply for an idle address ptr_X; if the currently stored message fragment carries the sop flag, then use ptr_X to update the first address memory and the tail address memory of the source channel where the message fragment is located; and, if The currently stored message fragment does not carry the sop flag, the value in the tail address memory is used as the address, and ptr_X is used as the value, and is written into the data linked list of the linked list memory, and ptr_X is written into the end address memory.
  • the first address memory stores the information linked list first address, the data linked list first address and the data eop flag of the first message in the current linked list; the tail address memory stores the last information in the information linked list. information link list address.
  • step S4 obtain the queue read status of the destination queue of the message, if the queue read status is 0, execute step S5, otherwise execute step S6;
  • step S6 read the head address and tail address of the queue, use the tail address as the address, ptr_Y, the address of the packet fragment carrying the sop flag bit carries the eop of the packet fragment with the sop flag bit As a value, the flag bit is written into the information linked list, and ptr_Y is written into the tail address of the queue, and step S7 is performed; and
  • step S04 using the first address field of the information linked list as an address, read the information linked list, obtain the first address of the information linked list, the first address of the data linked list and the data eop flag of the next message, and set all the The first address of the information linked list, the first address of the data linked list and the data eop flag bit field are written into the first address of the queue, triggering the queue reselection mechanism of the destination port, and performing step S06;
  • an embodiment of the present invention provides a storage scheduling device, which stores messages by applying the message storage method described above.
  • Fig. 2 is the schematic flow chart of applying store-and-forward mode to carry out multicast forwarding message in the prior art
  • this embodiment provides a message storage method, which is applied to the storage of messages in the storage scheduling device.
  • the storage scheduling device here is the same as the storage scheduling device shown in FIG. 1 .
  • the components of the scheduling device are consistent, and the storage scheduling device also includes: the first address memory (not shown), the tail address memory (not shown) and the free address memory (not shown) of the source channel where the message is located, and the data memory.
  • the bit width of 1 is W
  • the real length of the message is L.
  • the message storage method includes:

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例所提供了一种报文存储方法、报文出入队列方法及存储调度装置,报文存储方法包括:将报文依次划分为N个报文分片L0、L1、…、LN-1,N=int(L/W),int为向上取整函数,报文分片L0携带sop标志位,报文LN-1携带eop标志位;为待存入数据存储器的报文分片申请空闲地址ptr_X,链表控制模块的信息链表存储有:下一个报文的信息链表首地址、数据链表首地址以及数据eop标志位;数据链表存储有:下一个报文分片的数据分片地址和数据eop标志位。本发明实施例所提供的出队列方法,在出队列操作时,通过信息链表和数据链表的融合设置,通过一次调度即可直接得到报文的分片地址,有效降低报文转发延时,同时减少了消息调度到数据调度之间的缓存信息,优化了芯片物理面积。

Description

报文存储方法、报文出入队列方法及存储调度装置
本发明要求于2020年12月30日提交中国专利局、申请号为202011609386.8、发明名称“报文存储方法、报文出入队列方法及存储调度装置”的中国专利申请的优先权,其全部内容通过引用结合在本发明中。
技术领域
本发明涉及网络技术领域,尤其涉及一种报文存储方法、报文出入队列方法及存储调度装置。
背景技术
网络芯片在应用存储转发模式转发报文时,需要将报文采用链表(该链表表示为报文数据链表)的方式,在芯片中完整的缓存在存储器中,再根据转发逻辑,决定报文的目的端口。之后,产生入队请求,将该报文的关键信息(报文的起始地址、报文长度等)写入该队列的链表(该链表表示为信息链表),等待队列调度。
当应用存储转发模式进行组播转发报文时,由于组播意味着报文在网络芯片中复制多份并可能发送至不同的目的端口,如图2所示,现有技术中,其中种实现方式为存储转发模式中,首先设置独立的QoS(Quality of Service,服务质量)模块,采用链表的方式将不同报文的关键信息串联起来。经过一定的策略,选中该队列,将信息链表中首地址对应的关键信息读取出来,将关键信息中的“报文数据链表首地址”发送给“报文读取模块”进行报文读取操作,该实现方式的缺点在于:
上述方案需要数据链表和信息链表两份独立的链表,由于两次链表读操作分别存在不同模块中,报文的转发延时较大。两次读写链表操作,必然会引入其他的存储器用来缓存,增加了芯片的物理面积。
发明内容
鉴于现有技术中存在的上述技术问题,本发明实施例提供了一种报文存储方法,应用于报文于存储调度装置中的存储,所述存储调度装置包括被设置为控制链表出入队的链表控制模块以及被设置为缓存所述报文的数据存储器以及所述报文所在源通道的首地址存储器、尾地址存储器,所述链表控制模块包括链表存储器和空闲地址存储器,所述数据存储器的位宽为W,所述报文的真实长度为L,所述方法包括:
将所述报文依次划分为N个报文分片L0、L1、…、LN-1,N=int(L/W),int为向上取整函数,报文分片L0携带sop(报文数据的第一个数据)标志位,报文LN-1携带eop(报文数据的最后一个数据)标志位;为待存入所述数据存储器的所述报文分片自所述空闲地址存储器申请空闲地址ptr_X;若当前存入的所述报文分片携带sop标志位,则使用ptr_X更新所述报文分片所在源通道的所述首地址存储器和所述尾地址存储器;以及,若当前存入的所述报文分片未携带sop标志位,使用所述尾地址存储器中的值作为地址,使用ptr_X作为值,写进所述链表存储器的数据链表中,同时将ptr_X写进所述尾地址存储器。
可选地,所述方法还包括:为所述报文分片申请空闲地址,并生成信息链表。
可选地,所述信息链表存储有:下一个报文的信息链表首地址、数据链表首地址以及数据eop标志位;所述数据链表存储有:下一个所述报文分片的数据分片地址和数据eop标志位。
可选地,所述首地址存储器存储有当前链表中第一个报文的信息链表首地址、数据链表首地址以及数据eop标志位;所述尾地址存储器存储有所述信息链表中最后一个信息的信息链表地址。
为了实现上述发明目的,本发明实施例提供了一种报文入队列方法,应用上文所述的报文存储方法存储的报文进行报文入队列管理,所述方法 包括:
S1、设置所述队列的首地址、尾地址以及队列读状态;
S2、存储所述报文分片;
S3、响应于所述报文的入队请求,申请与所述信息链表相匹配的地址ptr_Y;
S4、获取所述报文的目的队列的所述队列读状态,若所述队列读状态为0,执行步骤S5,否则执行步骤S6;
S5、将携带sop标志位的所述报文分片的地址写进所述队列的首地址中的数据链表首地址字段,将ptr_Y写进所述队列的首地址中的信息链表首地址字段,将携带sop标志位的所述报文分片的eop标志位写进所述队列的首地址中的数据eop标志位字段中,将ptr_Y写进所述队列的尾地址,将所述队列的队列读状态写为1,执行步骤S7;
S6、读取所述队列的首地址和尾地址,使用所述尾地址作为地址,ptr_Y、携带sop标志位的所述报文分片的地址携带sop标志位的所述报文分片的eop标志位作为值,写进所述信息链表中,并将ptr_Y写进所述队列的尾地址中,执行步骤S7;以及
S7、结束入队操作。
为了实现上述发明目的,本发明实施例提供了一种报文出队列方法,应用于对上文所述的报文入队列方法处理过的队列进行出队列管理,所述方法包括:
S01、使用队列编号,访问所述队列的首地址和尾地址,得到首地址中的数据链表首地址字段,并使用所述数据链表首地址作为地址,访问所述数据存储器,获取报文内容并发送给后级模块;若所述首地址中的所述数据eop标志位为1,则执行步骤S02,否则执行步骤S05;
S02、判断所述信息链表的首地址和尾地址是否相同,如果相同,则 执行步骤S03,否则执行步骤S04;
S03、将所述队列的所述队列读状态置为0,触发目的端口的队列重选机制,执行步骤S06;
S04、使用所述信息链表首地址字段作为地址,读取所述信息链表,获取下一个报文的所述信息链表首地址、所述数据链表首地址和所述数据eop标志位,并将所述信息链表首地址、所述数据链表首地址和所述数据eop标志位字段写进所述队列的首地址中,触发所述目的端口的队列重选机制,执行步骤S06;
S05、使用所述数据链表首地址访问所述数据链表,得到所述报文的下一个所述报文分片的所述数据链表地址和所述数据eop标志位,并将所述数据链表地址和所述数据eop标志位的字段分别对应写进所述队列的首地址中的数据链表首地址和数据eop标志位字段中,执行步骤S06;以及
S06、结束出队操作。
可选地,若参与调度的所述报文分片未携带所述eop标志位,则基于所述数据存储器的位宽W进行QoS状态更新;若参与调度的所述报文分片携带eop标志位,则基于所述报文分片的长度,进行QoS状态更新。
为了实现上述发明目的,本发明实施例提供了一种存储调度装置,应用上文所述的报文存储方法存储报文。
为了实现上述发明目的,本发明实施例提供了一种存储调度装置,应用上文所述的报文入队列方法管理队列。
为了实现上述发明目的,本发明实施例提供了一种存储调度装置,应用上文所述的报文出队列方法管理队列。
本发明实施例的技术效果为:在出队列操作时,通过信息链表和数据链表的融合设置,通过一次调度即可直接得到报文的分片地址,有效降低报文转发延时。同时减少了消息调度到数据调度之间的缓存信息,优化了 芯片物理面积。
附图说明
图1为本发明所提供的实施例中调度存储装置的结构示意图;
图2为现有技术中应用存储转发模式进行组播转发报文的流程示意图;
图3为本发明的实施例所提供的报文存储方法;
图4为本发明的实施例中信息链表、数据链表、首地址存储器以及尾地址存储器的结构示意图;
图5为本发明的实施例所提供的报文入队列方法;
图6为本发明的实施例所提供的报文出队列方法。
具体实施方式
以下将结合附图所示的实施方式对本发明实施例进行详细描述。但这些实施方式并不限制本发明实施例,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包括在本发明的保护范围内。
本实施例基于基本的调度存储装置实现,为了便于理解,下面结合图1简述该调度存储装置的运行原理:
存储调度装置,应用于数据的缓存和调度,其输入信号主要包括队列编号、数据以及链表地址,主要由以下几个模块组成:
数据存储器1,能够根据输入信号的链表地址缓存数据。
链表控制模块2,用来控制常规的链表入队、出队操作。链表的控制属于通用的技术范畴,此处不作赘述。
链表控制模块2主要包括:头指针存储器21,尾指针存储器22,链表存储器23,以及队列读状态存储器24。
当写数据时,如果队列编号对应的队列读状态为0,说明此时队列中 没有其他数据等待调度,则:
使用队列编号作为地址,数据的链表地址作为值,分别写进头指针存储器21和尾指针存储器22中。
将队列读状态改为1。
如果队列编号对应的队列读状态不为0,说明队列中有其他数据等待调度,则将数据的链表地址作为值,尾指针作为地址,写进链表存储器23中,完成数据的链接操作;使用队列编号作为地址,数据的链表地址作为值,写进尾指针存储器22中,完成尾指针更新操作。
当读数据时,首先根据队列编号访问头指针存储器21和尾指针存储器22。判断头指针是否等于尾指针,如果相等,将该通道的队列读状态置为0,否则:根据头指针访问链表存储器23得到下一跳指针,将下一跳指针作为值,队列编号作为地址写进头指针存储器21中。
调度器3,如果队列读状态为1,则调度器3参与进行队列调度。调度器3会将调度出的队列发送给链表控制模块2获取该队列的链表地址并且触发链表控制模块2更新队列读状态信息。
读信息模块4,根据调度器3获取的链表地址访问数据存储器1,得到数据,产生输出。
网络芯片在应用存储转发模式转发报文时,需要将报文采用链表(该链表表示为报文数据链表)的方式,在芯片中完整的缓存在存储器中,再根据转发逻辑,决定报文的目的端口。之后,产生入队请求,将该报文的关键信息(报文的起始地址、报文长度等)写入该队列的链表(该链表表示为信息链表),等待队列调度。
可选地,可以通过QoS策略,选中该队列,调度其中的关键信息并发送给报文数据读取模块(未图示),并根据关键信息中的报文起始地址,自存储器中读出该报文,并发送给目的端口。
当应用存储转发模式进行组播转发报文时,由于组播意味着报文在网络芯片中复制多份并可能发送至不同的目的端口,如图2所示,现有技术中,其中一种实现方式为存储转发模式中,首先设置独立的QoS模块,采用链表的方式将不同报文的关键信息串联起来。经过一定的策略,选中该队列,将信息链表中首地址对应的关键信息读取出来,将关键信息中的“报文数据链表首地址”发送给“报文读取模块”进行报文读取操作,该实现方式的缺点在于:
上述方案需要数据链表和信息链表两份独立的链表,由于两次链表读操作分别存在不同模块中,报文的转发延时较大。两次读写链表操作,必然会引入其他的存储器用来缓存,增加了芯片的物理面积。
为了解决上述技术问题,首先,本实施例提供了一种报文存储方法,应用于报文于存储调度装置中的存储,除特别说明,此处的存储调度装置与图1中示出的存储调度装置的各组成部分均一致,存储调度装置还包括:报文所在源通道的首地址存储器(未图示)、尾地址存储器(未图示)以及空闲地址存储器(未图示),数据存储器1的位宽为W,报文的真实长度为L,如图3所示,报文存储方法包括:
将报文依次划分为N个报文分片L0、L1、…、LN-1,N=int(L/W),int为向上取整函数,报文分片L0携带sop标志位,报文LN-1携带eop标志位;
为待存入数据存储器1的报文分片自空闲地址存储器申请空闲地址ptr_X;
若当前存入的报文分片携带sop标志位,则使用ptr_X更新报文分片所在源通道的首地址存储器和尾地址存储器;以及
若当前存入的报文分片未携带sop标志位,使用尾地址存储器中的值作为地址,使用ptr_X作为值,写进链表存储器23的数据链表中,同时将ptr_X写进尾地址存储器。
由此,实现报文的数据链表的生成。
可选地,所述方法还包括:为报文分片申请空闲地址,并生成信息链表,信息链表包括:下一个报文的信息链表首地址、数据链表首地址以及数据eop标志位。
其中,数据eop标志位为1,意味着对应的报文分片携带eop标志位。
由此,实现报文的信息链表的生成。
可选地,队列读状态存储器24存储每个队列链表的状态,对应比特为1,表示该队列中有报文等待出队。
尾地址存储器,存储的是最后一个信息的信息链表地址。下文中该存储中队列对应地址的数据简称尾地址。
首地址存储器,存储的是当前链表的第一个报文的三个重要信息:信息链表首地址,数据链表首地址,数据eop标志位。下文中该存储中队列对应地址的数据简称首地址。
信息链表,存储的是下一个报文的信息链表首地址,数据链表首地址和数据eop标志位。
数据链表,存储的是下个报文分片的数据分片地址和数据eop标志位。
可选地,如图4所示,在存储转发模式下,假设当前队列中有四个关键信息(信息1、2、3、4)等待调度,分别对应报文一、报文三、报文四和报文一。其长度分别为三个报文分片,一个报文分片,两个报文分片和三个报文分片。
信息链表,信息1-4的地址分别为:a0、b0、c0、d0,信息分别为{b0,B0}、{c0,C0}、{d0,D0}、{e0,B0}。
数据链表,报文三的报文分片0的地址为B0,报文三的报文分片0的地址为C0,报文四的报文分片0的地址为D0。以报文一为例,报文分片 0携带sop标志位,报文分片2携带eop标志位。
以信息1为例,首地址存储器存储有:信息链表首地址b0,数据链表首地址B0,以及,报文一的eop标志位。
尾地址存储器存储有:信息4的下一个信息的信息链表地址e0,以及信息4对应的数据链表首地址B0。
应用本实施例所提供的报文存储方法,使得数据链表得以直接通过访问队列的首地址和尾地址获取,而无需先经过信息链表的读取后再进行数据链表的读取,减少了调度级数,以及减少了多级调度所引入的存储器的设置,降低了芯片物理面积,同时降低了报文转发延时。
本实施例提供了一种适用于组播存储转发的报文入队列方法,如图5所示,所述方法包括:
S1、设置队列的首地址、尾地址以及队列读状态;
S2、存储报文分片;
S3、响应于报文的入队请求,申请与信息链表相匹配的地址ptr_Y;
S4、获取报文的目的队列的队列读状态,若队列读状态为0,执行步骤S5,否则执行步骤S6;
S5、将携带sop标志位的报文分片的地址写进队列的首地址中的数据链表首地址字段,将ptr_Y写进队列的首地址中的信息链表首地址字段,将携带sop标志位的报文分片的eop标志位写进队列的首地址中的数据eop标志位字段中,将ptr_Y写进队列的尾地址,将队列的队列读状态写为1,执行步骤S7;
S6、读取队列的首地址和尾地址,使用尾地址作为地址,ptr_Y、携带sop标志位的报文分片的地址和携带sop标志位的所述报文分片的eop标志位作为值,写进信息链表中,并将ptr_Y写进队列的尾地址中,执行步骤S7;以及
S7、结束入队操作。
其中,若报文分片数量大于1,则报文长度标志位为1,否则报文长度标志位为0。
其中,初始化阶段或当前报文为队列的第一个报文时,队列读状态为0,队列中存在其他报文,队列读状态为1。
其中,如果该报文只有一个分片,则此时队列首地址中数据eop标志位字段置1,否则该字段置0。
本实施例还提供了一种适用于组播存储转发的报文出队列方法,应用上文所述的组播存储转发的报文入队列方法处理过的队列进行出队列管理,如图6所示,所述方法包括:
S01、使用队列编号,访问队列的首地址和尾地址,得到首地址中的数据链表首地址字段,并使用数据链表首地址作为地址,访问数据存储器1,获取报文内容并发送给后级模块;若首地址中的数据eop标志位为1,则执行步骤S02,否则执行步骤S05;
S02、判断信息链表的首地址和尾地址是否相同,如果相同,则执行步骤S03,否则执行步骤S04;
S03、将队列的队列读状态置为0,触发目的端口的队列重选机制,执行步骤S06;
S04、使用信息链表首地址字段作为地址,读取信息链表,获取下一个报文的信息链表首地址、数据链表首地址和数据eop标志位,并将信息链表首地址、数据链表首地址和数据eop标志位字段写进所述队列的首地址中,触发所述目的端口的队列重选机制,执行步骤S06;
S05、使用数据链表首地址访问数据链表,得到报文的下一个报文分片的数据链表地址和数据eop标志位,并将数据链表地址和数据eop标志位的字段分别对应写进队列的首地址中的数据链表首地址和数据eop标志 位字段中,执行步骤S06;以及
S06、结束出队操作。
其中,首地址中的数据eop标志位为1,说明当前的数据链表首地址是报文的最后一个报文分片。
其中,信息链表首地址和尾地址相同,说明当前出队的是队列的最后一个报文的最后一个分片,信息链表首地址和尾地址不同,说明当前出队的是报文的最后一个分片,但该报文并非队列的最后一个报文。
可选地,当进行QoS队列管理时,出队列方法还包括,若参与调度的报文分片未携带eop标志位,则基于数据存储器1的位宽W进行QoS状态更新;若参与调度的报文分片携带eop标志位,则基于报文分片的长度,进行QoS状态更新。
其中,可以通过管理报文长度标志位获知报文/报文分片的长度,如果报文只有一个分片,则报文长度标志位字段为实际报文长度,否则为数据存储器1的位宽W。
本实施例所提供的报文出队列方法,在出队列操作时,通过信息链表和数据链表的融合设置,通过一次调度即可直接得到报文的分片地址,有效降低报文转发延时。同时减少了消息调度到数据调度之间的缓存信息,减小了芯片物理面积。
可选地,本实施例还提供了一种存储调度装置,应用上文所述的报文存储方法存储报文。
可选地,本实施例还提供了一种存储调度装置,应用上文所述的适用于组播存储转发的报文入队列方法管理队列。
可选地,本实施例还提供了一种存储调度装置,应用上文中所述的适用于组播存储转发的报文出队列方法管理队列。
本发明的技术内容及技术特征已揭示如上,然后熟悉本领域的技术人 员仍可基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请的权利要求所涵盖。

Claims (10)

  1. 一报文存储方法,应用于报文于存储调度装置中的存储,所述存储调度装置包括被设置为控制链表出入队的链表控制模块以及被设置为缓存所述报文的数据存储器以及所述报文所在源通道的首地址存储器、尾地址存储器,所述链表控制模块包括链表存储器和空闲地址存储器,所述数据存储器的位宽为W,所述报文的真实长度为L,所述方法包括:
    将所述报文依次划分为N个报文分片L0、L1、…、LN-1,N=int(L/W),int为向上取整函数,报文分片L0携带sop标志位,报文LN-1携带eop标志位;
    为待存入所述数据存储器的所述报文分片自所述空闲地址存储器申请空闲地址ptr_X;
    若当前存入的所述报文分片携带sop标志位,则使用ptr_X更新所述报文分片所在源通道的所述首地址存储器和所述尾地址存储器;以及
    若当前存入的所述报文分片未携带sop标志位,使用所述尾地址存储器中的值作为地址,使用ptr_X作为值,写进所述链表存储器的数据链表中,同时将ptr_X写进所述尾地址存储器。
  2. 如权利要求1所述的报文存储方法,其中,所述方法还包括:为所述报文分片申请空闲地址,并生成信息链表。
  3. 如权利要求2所述的报文存储方法,其中,所述信息链表存储包括:
    下一个报文的信息链表首地址、数据链表首地址以及数据eop标志位;
    所述数据链表存储有:下一个所述报文分片的数据分片地址和数据eop标志位。
  4. 如权利要求3所述的报文存储方法,其中,所述首地址存储器存储有 当前链表中第一个报文的信息链表首地址、数据链表首地址以及数据eop标志位;所述尾地址存储器存储有所述信息链表中最后一个信息的信息链表地址。
  5. 一种报文入队列方法,应用于存储转发模式组播转发报文场景,应用权利要求2-4中任一项所述的报文存储方法存储的报文进行报文入队列管理,所述方法包括:
    S1、设置所述队列的首地址、尾地址以及队列读状态;
    S2、存储所述报文分片;
    S3、响应于所述报文的入队请求,申请与所述信息链表相匹配的地址ptr_Y;
    S4、获取所述报文的目的队列的所述队列读状态,若所述队列读状态为0,执行步骤S5,否则执行步骤S6;
    S5、将携带sop标志位的所述报文分片的地址写进所述队列的首地址中的数据链表首地址字段,将ptr_Y写进所述队列的首地址中的信息链表首地址字段,将携带sop标志位的所述报文分片的eop标志位写进所述队列的首地址中的数据eop标志位字段中,将ptr_Y写进所述队列的尾地址,将所述队列的队列读状态写为1,执行步骤S7;
    S6、读取所述队列的首地址和尾地址,使用所述尾地址作为地址,ptr_Y、携带sop标志位的所述报文分片的地址和,写进所述信息链表中,并将ptr_Y写进所述队列的尾地址中,执行步骤S7;以及
    S7、结束入队操作。
  6. 一种报文出队列方法,应用于存储转发模式组播转发报文场景,应用权利要求5所述的报文入队列方法处理过的队列进行出队列管理,所述方法包括:
    S01、使用队列编号,访问所述队列的首地址和尾地址,得到首地址中的数据链表首地址字段,并使用所述数据链表首地址作为地址,访问所述数据存储器,获取报文内容并发送给后级模块;若所述首地址中的所述数据eop标志位为1,则执行步骤S02,否则执行步骤S05;
    S02、判断所述信息链表的首地址和尾地址是否相同,如果相同,则执行步骤S03,否则执行步骤S04;
    S03、将所述队列的所述队列读状态置为0,触发目的端口的队列重选机制,执行步骤S06;
    S04、使用所述信息链表首地址字段作为地址,读取所述信息链表,获取下一个报文的所述信息链表首地址、所述数据链表首地址和所述数据eop标志位,并将所述信息链表首地址、所述数据链表首地址和所述数据eop标志位字段写进所述队列的首地址中,触发所述目的端口的队列重选机制,执行步骤S06;
    S05、使用所述数据链表首地址访问所述数据链表,得到所述报文的下一个所述报文分片的所述数据链表地址和所述数据eop标志位,并将所述数据链表地址和所述数据eop标志位的字段分别对应写进所述队列的首地址中的数据链表首地址和数据eop标志位字段中,执行步骤S06;以及
    S06、结束出队操作。
  7. 如权利要求6所述的报文出队列方法,其中,若参与调度的所述报文分片未携带所述eop标志位,则基于所述数据存储器的位宽W进行QoS状态更新;若参与调度的所述报文分片携带eop标志位,则基于所述报文分片的长度,进行QoS状态更新。
  8. 一种存储调度装置,应用权利要求1-4中任一项所述的报文存储方法存储报文。
  9. 一种存储调度装置,应用权利要求5所述的报文入队列方法管理队列。
  10. 一种存储调度装置,应用权利要求6或7所述的报文出队列方法管理队列。
PCT/CN2021/142133 2020-12-30 2021-12-28 报文存储方法、报文出入队列方法及存储调度装置 WO2022143678A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011609386.8A CN112822126B (zh) 2020-12-30 2020-12-30 报文存储方法、报文出入队列方法及存储调度装置
CN202011609386.8 2020-12-30

Publications (1)

Publication Number Publication Date
WO2022143678A1 true WO2022143678A1 (zh) 2022-07-07

Family

ID=75856217

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/142133 WO2022143678A1 (zh) 2020-12-30 2021-12-28 报文存储方法、报文出入队列方法及存储调度装置

Country Status (2)

Country Link
CN (1) CN112822126B (zh)
WO (1) WO2022143678A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822126B (zh) * 2020-12-30 2022-08-26 苏州盛科通信股份有限公司 报文存储方法、报文出入队列方法及存储调度装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432908A (en) * 1991-07-10 1995-07-11 International Business Machines Corporation High speed buffer management of share memory using linked lists and plural buffer managers for processing multiple requests concurrently
CN106375249A (zh) * 2016-09-22 2017-02-01 盛科网络(苏州)有限公司 交换芯片数据架构、其控制方法及控制系统
CN107220187A (zh) * 2017-05-22 2017-09-29 北京星网锐捷网络技术有限公司 一种缓存管理方法、装置及现场可编程门阵列
CN110806986A (zh) * 2019-11-04 2020-02-18 盛科网络(苏州)有限公司 提高网络芯片报文存储效率的方法、设备及存储介质
CN112822126A (zh) * 2020-12-30 2021-05-18 盛科网络(苏州)有限公司 报文存储方法、报文出入队列方法及存储调度装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302238A (zh) * 2015-05-13 2017-01-04 深圳市中兴微电子技术有限公司 一种队列管理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432908A (en) * 1991-07-10 1995-07-11 International Business Machines Corporation High speed buffer management of share memory using linked lists and plural buffer managers for processing multiple requests concurrently
CN106375249A (zh) * 2016-09-22 2017-02-01 盛科网络(苏州)有限公司 交换芯片数据架构、其控制方法及控制系统
CN107220187A (zh) * 2017-05-22 2017-09-29 北京星网锐捷网络技术有限公司 一种缓存管理方法、装置及现场可编程门阵列
CN110806986A (zh) * 2019-11-04 2020-02-18 盛科网络(苏州)有限公司 提高网络芯片报文存储效率的方法、设备及存储介质
CN112822126A (zh) * 2020-12-30 2021-05-18 盛科网络(苏州)有限公司 报文存储方法、报文出入队列方法及存储调度装置

Also Published As

Publication number Publication date
CN112822126B (zh) 2022-08-26
CN112822126A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
US6937606B2 (en) Data structures for efficient processing of IP fragmentation and reassembly
JP3777161B2 (ja) マルチキャスト伝送の効率的処理
US6535951B1 (en) Hit result register file used in a CAM
JP5514913B2 (ja) フローアウェアネットワークノード内でデータパケットを処理するための方法
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
TWI482460B (zh) 網路處理器單元及其相關方法
US6577542B2 (en) Scratchpad memory
US20030147409A1 (en) Processing data packets
JP4483535B2 (ja) ネットワーク装置
USRE44151E1 (en) Switching ethernet controller
US7269179B2 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US8432908B2 (en) Efficient packet replication
KR20160117108A (ko) 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치
US7433364B2 (en) Method for optimizing queuing performance
US7110405B2 (en) Multicast cell buffer for network switch
US20200259766A1 (en) Packet processing
WO2022143678A1 (zh) 报文存储方法、报文出入队列方法及存储调度装置
JP2002281080A (ja) パケットスイッチ装置およびマルチキャスト送出方法
US9485326B1 (en) Scalable multi-client scheduling
WO2022121808A1 (zh) 直通转发模式的调度方法、设备及存储介质
US10999223B1 (en) Instantaneous garbage collection of network data units
US6850999B1 (en) Coherency coverage of data across multiple packets varying in sizes
WO2020168563A1 (zh) 一种存储器的管理方法及装置
WO2024021801A1 (zh) 报文转发装置及方法、通信芯片及网络设备
US20060187963A1 (en) Method for sharing single data buffer by several packets

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21914412

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC ( EPO FORM 1205A DATED 23/11/2023 )