WO2011015055A1 - 一种存储管理的方法和系统 - Google Patents

一种存储管理的方法和系统 Download PDF

Info

Publication number
WO2011015055A1
WO2011015055A1 PCT/CN2010/071915 CN2010071915W WO2011015055A1 WO 2011015055 A1 WO2011015055 A1 WO 2011015055A1 CN 2010071915 W CN2010071915 W CN 2010071915W WO 2011015055 A1 WO2011015055 A1 WO 2011015055A1
Authority
WO
WIPO (PCT)
Prior art keywords
linked list
chunk
block
message
linked
Prior art date
Application number
PCT/CN2010/071915
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 WO2011015055A1 publication Critical patent/WO2011015055A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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

Definitions

  • the present invention relates to a storage management method for a packet forwarding device in a data communication technology, and in particular, to a high-speed router traffic management chip storage management method and system.
  • a basic requirement is to be able to buffer 200ms line rate message data, and at 40Gbps, at least 8Gb of storage capacity.
  • it is generally used in the traffic management chip external storage chip to store data, and is managed by a linked list structure inside the traffic management chip.
  • Each node of the linked list corresponds to the storage space of each message or fragment, and the first and last nodes of the linked list are pre-recorded.
  • the nodes may be stored inside the traffic management chip or off-chip according to the quantity. In memory.
  • the chip needs to provide a packet processing capability of 100 MPPS.
  • the packet processing capability of 100MPPS corresponds to processing one linked list node for each cycle, and then accessing the data storage area by using the linked list node. Due to the inherent characteristics of the linked list structure, the next node of the linked list must be read based on the current node of the linked list.
  • the contents of the first and last nodes of the linked list are recorded in advance, because the number of linked list nodes is huge, and other nodes are placed. Save in memory.
  • the linked list nodes need to be continuously obtained to ensure that the packet data is continuously dequeued.
  • the current node acts as the address of the memory, reads the next node of the linked list, and then reads the linked list node as the read address of the memory, and continues to read the next node. Due to the inherent read latency of the hardware memory, the current node reads the next node as the read address, and it takes several clock cycles to actually read the contents of the address memory. During this period of time, the linked list cannot be used effectively because Continue reading with the read content as an address to keep the pipeline working. This can not meet the demand in the actual high-speed, large-capacity network environment.
  • the Chinese patent "Application Method for Quickly Retrieving Data in a Linked Form" of Application No. 200710038679.3 proposes a method for realizing a linked list of rapidly retrieving data, pointing the data items of each node in the linked list to an array space, and specifying nodes at initialization time.
  • the step of using the chunk includes: starting from the first block of the chunk, sequentially using each chunk in the chunk, and adding the specified value according to the offset address of the currently used block The offset address to the next block; when the chunk is used, the base address of the block in the chunk is used to obtain the base address of the next chunk in the linked list.
  • the above method may further have the following features, the method further comprising: establishing a linked list activity flag and a linked list empty flag for the n linked lists, establishing a tail sign for each node, and dequeuing according to the linked list when the message is sent out
  • the activity flag judges the current linked list, and judges whether the linked list is empty according to the empty list of the linked list, and judges whether or not the end node of the message is reached according to the tail mark.
  • the linked list of the i linked list is displayed.
  • step of using the base address of the block in the chunk to obtain the base address of the next set of blocks in the linked list of the chunk using the base address of the first chunk in the chunk to obtain the linked list in the chunk The base address of the next set of blocks.
  • the steps of establishing the n linked list include:
  • the present invention also provides a storage management system, including a packet enqueue management module and a packet dequeue management module.
  • the packet enqueue management module is configured to: when the packet is enqueued, establish n linked lists for the packet, and sequentially refer to the linked list of 0 to n-1, and save the first node of the n linked list.
  • each of the n linked lists includes a plurality of chunks, each chunk comprises a plurality of chunks, each chunk corresponds to one node, and an address of each block in the same chunk is a base address plus Offset address, the base address of each block in the same block is the same, the adjacent block offset addresses are different by a specified value, and the n is not less than 2;
  • the packet dequeue management module is set to: in the message dequeue When starting from the linked list of 0, sequentially use the linked list of 0 to the first chunk of the n-1 linked list; then use the linked list of 0 to the next set of blocks of the n-1 linked list; and so on, until the message Ending; when using the chunk, starting from the first block of the chunk
  • the packet enqueue management module is further configured to: establish a linked list deactivation activity flag and a linked list empty flag for the n linked lists, and establish a tail sign for each node,
  • each of the n linked lists in the n linked list established by the enqueue management module includes the same number of blocks.
  • the above system may also have the following features: in the chunks of the n linked list established by the enqueue management module, the offset addresses of adjacent blocks in the same group block are different by 1, and the first region of each chunk The offset address of the block is 0;
  • the packet dequeue management module is configured to: when using the base address of the block in the chunk to obtain the base address of the next group of blocks in the linked list, use the base of the first block in the chunk The address gets the base address of the next set of blocks in the linked list of the chunk.
  • the above system may also have the following features:
  • the message enqueue management module is configured to establish n linked lists as follows:
  • the invention provides a high-speed, large-capacity storage management method and system which is easy to implement by hardware, and manages a data storage space by using a multi-linked list, and a plurality of adjacent linked list nodes are aggregated into a Chunk, so that the use interval of each linked list is increased. , hides the read latency of hardware memory, and is easy to manage.
  • Figure 1 is a schematic diagram showing the relationship between the typical IP packet length and the IP packet forwarding rate at the OC-768 speed level; 2 is a schematic structural view of a conventional single linked list;
  • Figure 3 is a flow chart of the storage management method of the present invention.
  • Figure 4 is a basic application system model of the present invention.
  • Figure 5 is a flow chart of the use of the multi-linked list and node aggregation of the present invention.
  • the present invention provides a storage management method, as shown in FIG. 3, including:
  • Step 310 When the message is enqueued, create n linked lists for the message, which are sequentially referred to as a linked list of 0 to n-1, and n is not less than 2.
  • Each of the linked lists includes a plurality of Chunks. Each chunk contains several blocks, and each block corresponds to one node.
  • the block address in the same Chunk is the base address plus the offset address.
  • the base address of each block in the same Chunk is the same, and the adjacent block offset addresses are different. Specify the value; save the first and last nodes of the n linked lists.
  • the number of blocks included in each Chunk may be the same or different, and the offset addresses of the blocks in the same Chunk may be different by X and X.
  • Step 320 When the message is dequeued, starting from the linked list of 0, sequentially using the linked list of 0 to the first chunk of the linked list of n-1; and then sequentially using the linked list of 0 to the next block of the linked list of n-1; And so on, until the end of the message.
  • the step of using each chunk includes: starting from the first block of the chunk, using each chunk in the chunk in turn, wherein, according to the offset address of the currently used block, adding The specified value gets the offset address of the next block; when each chunk is used, the base address of the block in the chunk is used to get the base address of the next chunk in the linked list.
  • first use the first chunk of the linked list of 0 after using the first chunk of the linked list of 0, use the first chunk of the linked list, and so on, until the first of the linked list of n-1 is used.
  • the basic application system model of the present invention is shown in FIG. 4, and includes a queue scheduling system, a queue cache management system, a message data storage, and a linked list node memory.
  • the queue scheduling system is configured to initiate a queue scheduling request to the queue cache management system, and a message data storage.
  • the linked list node management system includes a packet enqueue management module and a packet dequeue management module, where:
  • the message dequeue management module is configured to start from the linked list 0 when the message is dequeued, and sequentially use the 0th linked list to the first chunk of the n-1 linked list; then use the linked list 0 to n-1 The next set of blocks in the linked list; and so on, until the end of the message; where the method of using each chunk is: Starting from the first block of the chunk, each chunk in the chunk is used in turn, Where, according to the area currently in use Adding the offset address of the block to the specified value to obtain the offset address of the next block; when using each chunk, using the base address of the block in the chunk to obtain the next block in the linked list of the chunk Base address.
  • the message dequeue management module When the message dequeue management module dequeues the message, it judges the current linked list according to the dequeue activity flag of the linked list, and judges whether the linked list is empty according to the empty list of the linked list, and judges whether the end node of the message is reached according to the end of the package flag.
  • the linked list empty flag of the linked list When the first node of the linked list is equal to the tail node, the linked list empty flag of the linked list is set to null.
  • Each of the n linked lists established by the packet enqueue management module includes the same number of blocks, and the offset addresses of adjacent blocks in the same block of each linked list are different by one.
  • the offset of the first block of each chunk is 0.
  • the base address of the first block in the chunk is used to obtain the base address of the next chunk in the linked list, and the chunk can also be used.
  • the base address of other blocks in the middle obtains the base address of the next set of blocks in the linked list of the block, and which block can be used in advance.
  • a multi-linked list structure is established, the number of linked lists is n, and the linked list node corresponds to the storage space of the message or the fragment, each linked list has its own first and last nodes, and the flag bits are set at the same time, and each linked list is set.
  • the linked list activity flags LinkActFlag (including linked list activity flag LinkWActFlag and linked list deactivation activity flag LinkRActFlag) and linked list empty flag LinkEmptyFlag, set the end mark PktEopFlag for each node, which is used to determine the current linked list number and whether each linked list is Empty, and whether the end node of the message is reached.
  • the number of blocks included in each Chunk is ( m+1 ).
  • the Block address in the same Chunk is contiguous, and the address is represented as the base address + offset address, and the base address of each block is the same.
  • the queue cache management system When the queue cache management system is enqueued, the data cache is managed according to the structure of the multi-linked list and the node aggregation.
  • the queue cache management system responds to the dequeue request of the queue scheduling system and starts a new round of work, including: Step S502, the queue cache management system receives the dequeue request, and determines which one of the linked lists should be currently used according to the linked list deportation activity flag in the multi-linked list and the node aggregation structure.
  • the linked list activity flag determine which linked list should be used currently. For n linked lists, set the linked list activity flag LinkRActFlag[(nl):0] with a bit width n, and each bit corresponds to a linked list, such as LinkRActFlag[x]
  • LinkRActFlag[x] When its value is '1', indicates that the linked list should be used currently.
  • LinkEmptyFlag to determine whether the current linked list is empty, set the link table empty flag LinkEmptyFlag[(nl):0] with a bit width of n, and each bit corresponds to a linked list.
  • the link table empty flag LinkEmptyFlag[(nl):0] With a bit width of n, and each bit corresponds to a linked list.
  • the linked list is empty, ' 0, is not empty.
  • Step S504 determining which block, which is the node, should be used in the currently selected linked list.
  • the first node of the selected linked list is the base address +y, indicating that the currently used Block is the y block in the Chunk.
  • the base address reads the memory as the read address, obtains the base address of the next Chunk, and updates LinkRActFlag[x] to '0, and LinkRActFlag[x+l] to ' ⁇ , indicating that another linked list will be used next time, X Indicates the linked list label currently in use.
  • Step S506 determining whether the current node is a tail node of the dequeue message data.
  • the tail node of the message is determined according to the tail flag PktEopFlag.
  • the node is the tail node of the dequeue message, and the current round operation is completed; when it is '0, the node is not the tail node of the dequeue message, and the process returns to step S502, and continues to operate until The message tail node is output, and then the current round is ended.
  • the chip needs to provide 100MPPS packet processing capability.
  • the packet processing capability of 100MPPS corresponds to processing one linked list node for each cycle, and accessing the data storage area by using the linked list node.
  • the multi-linked list and node aggregation structure are taken as an example.
  • two linked lists are constructed, and each Chunk is constructed. Contains 4 blocks, the address of each block in the same Chunk is continuous, all from the base address + offset address.
  • the four blocks A0, Al, A2, and A3 form a Chunk
  • the base address is X
  • the offset addresses of each block are 0, 1, 2, 3, respectively, and the base address of each Chunk.
  • the queue cache management system pre-records the first and last nodes of the n (n is 2 in this embodiment) linked list, and sets flag bits to determine which linked list should be used currently and whether each linked list is empty and whether each node is The tail node of the message.
  • the queue cache management system receives the queue scheduling system linked list operation request, it determines the linked list number to be used according to the flag bit.
  • the first node AO of the linked list 0 is used first, and then the offset address of the AO is directly incremented by 1 in the next cycle to obtain A1 and continue to be used.
  • the application fully satisfies the packet processing requirements of 100MPPS, and each clock cycle linked list node can be effectively used.
  • the method can ensure the efficient use of the linked list, and overcomes the problem caused by the hardware self-reading delay.
  • the optimal combination of n and m can be selected to make the method more flexible and effective in different application environments.
  • the invention provides a high-speed, large-capacity storage management method and system which is easy to implement by hardware, and manages a data storage space by using a multi-linked list, and a plurality of adjacent linked list nodes are aggregated into a Chunk, so that the use interval of each linked list is increased. , hides the read latency of hardware memory, and is easy to manage.

Landscapes

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

Description

一种存储管理的方法和系统
技术领域
本发明涉及数据通信技术中分组转发设备的存储管理方法, 特别是涉及 一种高速路由器流量管理芯片存储管理方法和系统。
背景技术
随着网络容量与业务不断地快速增长, 分组转发设备, 特别是路由器的 接口速度迅速增加。 为了实现报文的高速转发处理, 一般在路由器内部釆用 专门的流量管理芯片完成对高速数据流的管理, 将报文緩存后输出。
对于高端路由器等设备而言, 一个基本的要求是能緩存 200ms线速的报 文数据, 40Gbps环境下, 则至少拥有 8Gb的存储能力。 对于如此大的存储容 量, 一般釆用在流量管理芯片外挂存储芯片存储数据, 在流量管理芯片内部 釆用链表结构进行管理。以链表的每个节点对应每个报文或分片的存储空间 , 预先记录链表首尾节点, 对于链表除首尾节点之外的其他节点可以根据数量 的多少存储在流量管理芯片内部或片外专门的存储器中。
为了能够应用到 40Gbps 的网络环境, 流量管理芯片必须能够线速处理 OC-768速度等级上的 IP包。 在 OC-768速度等级上, 典型的 IP包长与 IP包 转发率之间的关系如图 1。
因此,为了满足要求,芯片需提供 100MPPS的分组处理能力。在 100MHz 的系统时钟下, 100MPPS的分组处理能力, 对应为每个周期应处理一个链表 节点, 然后利用该链表节点访问数据存储区。 由于链表结构的固有特性, 必 须要以链表的当前节点作为依据去读取链表的下一个节点, 在得到下一个节 点之前, 链表是无法继续有效进行工作的, 而片内和片外的存储器都存在读 取延迟 (读取延迟指发起读操作到真正获得所要读取内容, 存在时间间隔), 片内存储器一般会有 1-2个周期读取延迟, 而片外存储器延迟更长。 因为读 取延迟的存在, 普通的链表结构无法做到流水操作, 也就无法满足每个周期 处理一个链表节点要求。 普通单链表结构如图 2所示, A0、 Al Dm 为链表节点, 每个链表节点指向一块数据存储空间, 在硬件实现中, 预先记录链表的首尾 节点内容, 由于链表节点数量巨大, 其他节点放入存储器保存。 在同一队列 的数据报文连续出列时, 需要连续获取链表节点, 保证报文数据的持续出队。 访问链表时, 由当前节点作为存储器的地址, 读取链表的下一节点, 然后再 由读取到的链表节点作为存储器的读地址, 继续去读下一节点。 由于硬件存 储器的固有读延迟, 由当前节点作为读地址读取下一节点, 到真正读取到该 地址存储器的内容, 需要若干个时钟周期, 这一段时间内链表是无法有效使 用的, 因为必须使用读到的内容作为地址继续读取, 才能使流水线持续工作。 这样在实际高速、 大容量网络环境下是无法满足需求的。
申请号 200410010495.2的中国专利《具有链表处理器的存储管理系统》, 提出了适合于处理链表数据文件的一个存储器管理系统( 1800 ) 。 该系统 具有多个低容量高速存储器 ( 1803 )和一个低速高容量的大容量存储器 ( 1806 ) 。 一个访问流量调节器( 1801 )生成请求以通过存储器读写链 表文件。 头部和尾部緩冲区以及链表的任何中间部分緩冲区, 都被写入高速 存储器。 中间部分緩冲区立即从高速存储器被传输到上述大容量存储器, 同 时将链表的头緩冲区和尾緩冲区留在高速存储器中。 在读操作中, 从高速存 储器中读出头和尾部緩冲区。 将中间部分緩冲区从大容量存储器传输到上述 高速存储器, 并接着从该高速存储器中读出。 该专利对于高速、 大容量存储 结构进行提出了一种方案, 使用了链表, 但对于链表的管理方法并没有具体 涉及。
申请号 200710038679.3的中国专利《一种快速检索数据的链表实现方法》 提出了一种快速检索数据的链表实现方法, 将链表中的每一个节点的数据项 都指向一个数组空间, 在初始化时指定节点的数据项指向数组的类型; 在初 始化时指定或默认每一个节点的数据项指向的数组的元素个数并设定每个元 素的字节数, 数据项指向的数组中的每个元素都具备一个唯一的索引号; 链 表可以为单向链表或双向链表; 数组可以是动态分配的数组或指定的数组, 整个链表中的数据为排序存放。 该专利提出了一种链表结构, 但没有解决高 带宽、 大容量环境下的硬件实现高速存储管理所遇到的难点。 由此可以看出, 现有的技术并没有很好的解决上面提到的釆用硬件实现 高速、 大容量存储管理所遇到的问题。
发明内容
本发明要解决的技术问题是提供一种便于硬件芯片实现的, 适应高速、 大容量存储管理的方法和系统。
为了解决上述问题, 本发明提供了一种存储管理方法, 包括:
报文入队时, 为所述报文建立 n条链表, 依次称为 0号链表至 n-1号链 表, 所述 n不小于 2, 保存所述 n条链表的首节点和尾节点; 所述 n条链表中 每条链表包括多个组块, 每个组块内包含多个区块, 每个区块对应一个节点, 同一组块内各区块的地址为基地址加偏移地址, 同一组块内各区块的基地址 相同, 相邻区块偏移地址相差一指定值; 以及
报文出队时, 从 0号链表开始, 依次使用 0号链表至 n-1号链表的首个 组块; 然后依次使用 0号链表至 n-1号链表的下一组块; 依此类推, 直到报 文结束;
其中, 使用所述组块的步骤包括: 从该组块的首个区块开始, 依次使用 该组块中的每个区块, 根据当前使用的区块的偏移地址加上所述指定值得到 下一区块的偏移地址; 使用完所述组块时, 使用该组块中区块的基地址得到 该组块所在链表中下一组块的基地址。
上述方法还可具有以下特点, 所述方法还包括: 为所述 n条链表建立链 表出队活动标志和链表空标志, 为每个节点建立包尾标志, 报文出队时, 根 据链表出队活动标志判断当前要使用的链表, 根据链表空标志判断链表是否 为空, 根据包尾标志判断是否到达报文尾节点, 使用完 i号链表的某一组块 时,将 i号链表的链表出队活动标志设置为非活动, 将 i+1号链表的链表出队 活动标志设置为活动, i=0,... ,n-2; 当链表的首节点等于尾节点时, 将该链表 的链表空标志设置为空。
上述方法还可具有以下特点, 所述 n条链表中, 每个链表中每个组块包 含的区块个数相同。 上述方法还可具有以下特点, 所述 n条链表的组块中, 同一组块内相邻 区块的偏移地址相差 1 , 每个组块的首个区块的偏移地址为 0;
在所述使用该组块中区块的基地址得到该组块所在链表中下一组块的基 地址的步骤中, 使用该组块中首个区块的基地址得到该组块所在链表中下一 组块的基地址。
上述方法还可具有以下特点, 报文入队时, 所述建立 n条链表的步骤包 括:
根据报文长度申请可用的组块, 将第一个申请的组块分给 0号链表, 第 二个申请的组块分给 1号链表, 依此类推, 将第 n个申请的组块分给 n-1号 链表, 如果报文未结束, 将第 n+1个申请的组块分给 0号链表, 将第 n+2个 申请的组块分给 1号链表, 依此类推, 直到报文结束; 申请的组块数目由入 队报文的总大小决定;每个链表的第一个组块的首个区块为该链表的首节点, 每个链表的最后一个组块中使用到的最后一个区块为该链表的尾节点。
本发明还提供一种存储管理系统, 包括报文入队管理模块和报文出队管 理模块,
所述报文入队管理模块设置为: 在报文入队时, 为所述报文建立 n条链 表, 依次称为 0号链表至 n-1号链表, 保存所述 n条链表的首节点和尾节点, 所述 n条链表中每条链表包括多个组块, 每个组块内包含多个区块, 每个区 块对应一个节点, 同一组块内各区块的地址为基地址加偏移地址, 同一组块 内各区块的基地址相同, 相邻区块偏移地址相差一指定值, 所述 n不小于 2; 所述报文出队管理模块设置为: 在报文出队时, 从 0号链表开始, 依次 使用 0号链表至 n-1号链表的首个组块;然后依次使用 0号链表至 n-1号链表 的下一组块; 依此类推, 直到报文结束; 使用所述组块时, 从该组块的首个 区块开始, 依次使用该组块中的每个区块, 根据当前使用的区块的偏移地址 加上所述指定值得到下一区块的偏移地址; 使用完所述组块时, 使用该组块 中区块的基地址得到该组块所在链表中下一组块的基地址。
上述系统还可具有以下特点, 所述报文入队管理模块还设置为: 为所述 n条链表建立链表出队活动标志和链表空标志, 为每个节点建立包尾标志, 所述报文出队管理模块, 还用于在报文出队时, 根据所述链表出队活动标志 判断当前要使用的链表, 根据链表空标志判断链表是否为空, 根据包尾标志 判断是否到达报文尾节点, 使用完 i号链表的某一组块时, 将 i号链表的链表 出队活动标志设置为非活动, 将 i+1号链表的链表出队活动标志设置为活动, i=0,... ,n-2; 当链表的首节点等于尾节点时,将该链表的链表空标志设置为空。
上述系统还可具有以下特点, 所述 文入队管理模块建立的所述 n条链 表中每个链表中每个组块包含的区块个数相同。
上述系统还可具有以下特点, 所述 文入队管理模块建立的所述 n条链 表的组块中, 同一组块内相邻区块的偏移地址相差 1 , 每个组块的首个区块 的偏移地址为 0;
所述报文出队管理模块是设置为: 在使用该组块中区块的基地址得到该 组块所在链表中下一组块的基地址时, 使用该组块中首个区块的基地址得到 该组块所在链表中下一组块的基地址。
上述系统还可具有以下特点, 所述报文入队管理模块是设置为按如下方 式建立 n条链表:
根据报文长度申请可用的组块, 将第一个申请的组块分给 0号链表, 第 二个申请的组块分给 1号链表, 依此类推, 将第 n个申请的组块分给 n-1号 链表, 如果报文未结束, 将第 n+1个申请的组块分给 0号链表, 将第 n+2个 申请的组块分给 1号链表, 依此类推, 直到报文结束; 申请的组块数目由入 队报文的总大小决定;每个链表的第一个组块的首个区块为该链表的首节点, 每个链表的最后一个组块中使用的最后一个区块为该链表的尾节点。
本发明提供的一种硬件易于实现的高速、 大容量存储管理方法和系统, 釆用多链表管理数据存储空间, 同时若干个相邻的链表节点汇聚成 Chunk, 使得每条链表的使用间隔加大, 隐藏了硬件存储器的读取延迟, 同时方便管 理。 附图概述
图 1是 OC-768速度等级上,典型的 IP包长与 IP包转发率的关系示意图; 图 2是现有单链表结构示意图;
图 3时本发明存储管理方法流程图;
图 4是本发明基本应用系统模型;
图 5是本发明多链表和节点汇聚使用流程图;
图 6是本发明 n=2、 m=3时多链表和节点汇聚结构示意图;
图 7是本发明多链表和节点汇聚使用示意图。 本发明的较佳实施方式
本发明的核心思想是, 为报文建立多个链表, 每个链表包含多个组块 ( Chunk ) , 每个组块包含多个区块( Block ) , block即节点, 每个 Chunk内 各 Block地址连续, 出队时, 轮流使用各个链表的组块, 并且在使用完一个 组块时, 读取该组块所在链表的下一组块的地址, 从而在下一次使用该链表 时, 已经从存储器中读出该组块的地址, 可以直接使用该组块, 避免了现有 技术中由于存储器读取延迟而导致无法满足每个周期处理一个链表节点要 求。
本发明提供一种存储管理方法, 如图 3所示, 包括:
步骤 310, 报文入队时, 为所述报文建立 n条链表, 依次称为 0号链表 至 n-1号链表, n不小于 2, 该 n条链表中每条链表包括若干个 Chunk, 每个 组块包含若干个 Block, 每个 Block对应一个节点, 同一 Chunk内的 Block地 址为基地址加偏移地址,同一 Chunk内其各 Block的基地址相同,其相邻 Block 偏移地址相差一指定值; 保存该 n条链表的首节点和尾节点。
其中, 每个 Chunk内包含的 Block数可以相同或不同, 同一 Chunk内各 Block的偏移地址可以相差 X , X事先给定。
一种实现方式是, 每个 Chunk所包含的 Block个数相同, 为 m+1 , 同一 Chunk内的 Block地址是连续的, 即 X = l , 所在地址表示为基地址 +偏移地 址, 同一 Chunk 内的每个 Block 的基地址相同, 实际上基地址也就是每个 Chunk的地址。
建立 n条链表的步骤包括: 当某一队列有报文入队时, 根据报文长度申 请空闲链表, 即申请可用的 Chunk, 第一个申请的 Chunk分给 0号链表, 第 二个申请的 Chunk分给 1号链表, 依此类推, 前 n个 Chunk的每个首 Block 节点记录为该队列 n条链表的首指针(即首节点) , 至于申请的 Chunk数目 由入队报文的总大小决定。 同时, 记录该队列的 n条链表的尾指针(即尾节 点) , 为每条链表最后一个 Chunk中使用到的最后一个 Block节点, 同样也 要记录链表活动标志和包尾标志。 其他队列入队时, 也进行相同处理, 为每 个队列建立自己的 n条链表。
步骤 320, 报文出队时, 从 0号链表开始, 依次使用 0号链表至 n-1号链 表的首个组块; 然后依次使用 0号链表至 n-1号链表的下一组块; 依此类推, 直到报文结束。
其中, 使用每个组块的步骤包括: 从该组块的首个区块开始, 依次使用 该组块中的每个区块, 其中, 根据当前使用的区块的偏移地址加上所述指定 值得到下一区块的偏移地址; 使用完每个组块时, 使用该组块中区块的基地 址得到该组块所在链表中下一组块的基地址。
具体的说, 首先使用 0号链表的首个组块, 使用完 0号链表的首个组块 后, 使用 1号链表的首个组块, 依次类推, 直到使用完 n-1号链表的首个组 块; 使用完 n-1号链表的首个组块后, 使用 0号链表的下一组块; 使用完 0 号链表的下一组块时, 使用 1号链表的下一组块; 依次类推, 直到报文结束。
当各 Chunk均包含 m+1个 Block,且同一 Chunk内各节点的地址连续时, 报文出队时首先使用 0号链表的首节点, 即 0号 Chunk中的 0号 Block。然后 直接将节点地址中的偏移地址直接增加 1 , 就可得到链表的下一节点, 即 0 号 Chunk中的 1号 Block。 当使用到编号为 m的 Block时用 0号链表的首节 点的基地址读取 0号链表的下一基地址, 作为 0号链表新的首节点。 当 0号 链表读取下一 Chunk地址时, 更新标志位, 同时使用 1号链表的首节点, 并 依次类推。 当再次轮到使用 0号链表时, 0号链表新的首节点已经从存储器 中读出, 更新完毕, 可以使用。
这样保证了链表可以每个周期都正常工作, 直到进行到报文尾部, 结束 一轮出队操作。
报文入队时, 还为所述 n条链表建立链表入队活动标志, 链表出队活动 标志和链表空标志, 为每个节点建立包尾标志, 报文出队时, 根据链表出队 活动标志判断当前要使用的链表, 根据链表空标志判断链表是否为空, 根据 包尾标志判断是否到达报文尾节点, 使用完 i号链表的某一组块时, 将 i号链 表的链表出队活动标志设置为非活动, 将 i+1 号链表的链表出队活动标志设 置为活动, i=0,... ,n-2; 当链表的首节点等于尾节点时, 将该链表的链表空标 志设置为空。
本发明基本应用系统模型如图 4所示, 包括队列调度系统、 队列緩存管 理系统、 报文数据存储器和链表节点存储器, 队列调度系统用于发起队列调 度请求至队列緩存管理系统, 报文数据存储器用于存储报文数据, 链表节点 存储器用于存储链表节点信息, 本发明中, 主要涉及队列緩存管理系统, 该 队列緩存管理系统包括报文入队管理模块和报文出队管理模块, 其中:
报文入队管理模块, 用于在报文入队时, 为所述报文建立 n条链表, 依 次称为 0号链表至 n-1号链表, 保存所述 n条链表的首节点和尾节点, 所述 n 条链表中每条链表包括若干个组块, 每个组块内包含若干个区块, 每个区块 对应一个节点, 同一组块内各区块的地址为基地址加偏移地址, 同一组块内 其各区块的基地址相同, 其相邻区块偏移地址相差一指定值, 所述 n不小于 2;
其中, 报文入队管理模块具体按如下方式建立 n条链表:
根据报文长度申请可用的组块, 将第一个申请的组块分给 0号链表, 第 二个申请的组块分给 1号链表, 依此类推, 将第 n个申请的组块分给 n-1号 链表, 如果报文未结束, 将第 n+1个申请的组块分给 0号链表, 将第 n+2个 申请的组块分给 1号链表, 依此类推, 直到报文结束; 申请的组块数目由入 队报文的总大小决定;每个链表的第一个组块的首个区块为该链表的首节点, 每个链表的最后一个组块中使用到的最后一个区块为该链表的尾节点。
报文出队管理模块, 用于在报文出队时, 从 0号链表开始, 依次使用 0 号链表至 n-1号链表的首个组块;然后依次使用 0号链表至 n-1号链表的下一 组块; 依此类推, 直到报文结束; 其中, 使用每个组块的方法为: 从该组块 的首个区块开始, 依次使用该组块中的每个区块, 其中, 根据当前使用的区 块的偏移地址加上所述指定值得到下一区块的偏移地址;使用完每个组块时, 使用该组块中区块的基地址得到该组块所在链表中下一组块的基地址。
所述报文入队管理模块还用于为所述 n条链表建立链表活动标志 (包括 链表入队活动标志和链表出队活动标志, 链表入队活动标志指示 ^艮文该入哪 个链表, 链表出队活动标志指示当前出队该使用哪个链表)和链表空标志, 为每个节点建立包尾标志, 报文出队管理模块使用并维护这些标志。 报文出 队管理模块在报文出队时, 根据链表出队活动标志判断当前要使用的链表, 根据链表空标志判断链表是否为空,根据包尾标志判断是否到达报文尾节点, 使用完 i号链表的某一组块时 ,将 i号链表的链表出队活动标志设置为非活动 , 将 i+1号链表的链表出队活动标志设置为活动, i=0,... ,n-2; 当链表的首节点 等于尾节点时, 将该链表的链表空标志设置为空。
所述报文入队管理模块建立的所述 n条链表中每个链表中每个组块包含 的区块个数相同, 每个链表的同一组块内相邻区块的偏移地址相差 1 , 每个 组块的首个区块的偏移地址为 0。 所述报文出队管理模块在使用完每个组块 时, 使用该组块中首个区块的基地址得到该组块所在链表中下一组块的基地 址, 也可以使用该组块中其他区块的基地址得到该组块所在链表中下一组块 的基地址, 具体使用哪个区块可以事先约定。
下面结合图 5的流程, 说明本发明方法在存储管理中的详细工作步骤。 对应报文数据存储空间, 建立多链表结构, 链表个数为 n, 链表节点对 应报文或分片的存储空间, 每个链表都有各自的首尾节点, 同时设置标志位, 为每个链表设置链表活动标志 LinkActFlag ( 包括链表入队活动标志 LinkWActFlag 和链表出 队活动标志 LinkRActFlag ) 和链表空标志 LinkEmptyFlag, 为每个节点设置包尾标志 PktEopFlag, 用来确定当前应该使 用的链表编号以及各个链表是否为空, 以及是否到达报文的尾节点。 其中, 每个 Chunk所包含的 Block个数为 ( m+1 ) 。 同一 Chunk内的 Block地址是 连续的, 所在地址表示为基地址 +偏移地址, 每个 Block的基地址相同。
队列緩存管理系统入队时按照多链表和节点汇聚的结构建立链表对数据 緩存进行管理。 报文出队时, 队列緩存管理系统响应队列调度系统的出队请 求, 开始新一轮次的工作, 具体包括: 步骤 S502, 队列緩存管理系统接收出队请求, 并且根据多链表和节点汇 聚结构中的链表出队活动标志确定当前应该使用哪一条链表。
根据链表出队活动标志确定当前应该使用哪个链表, 对于 n条链表, 设 置位宽为 n的链表出队活动标志 LinkRActFlag[(n-l):0] , 每 bit对应一条链表, 如 LinkRActFlag[x]对应 X号链表, 当其值为 '1' 时, 表明当前应该使用该条 链表。
根据链表空标志 LinkEmptyFlag确定当前各个链表是否为空,设置位宽为 n的链表空标志 LinkEmptyFlag[(n-l):0] , 每 bit对应一条链表, 当其值为 '1, 时链表为空, '0, 为非空。
步骤 S504, 确定当前选用的链表应该使用哪个 Block, 即哪个节点。 其中选中的链表首节点为基地址 +y, 表示当前使用的 Block为该 Chunk 中的 y号 Block。 当 y<m时,令 y=y+l ,作为新的链表首节点 , 以便下次使用; 当 y=m时, 表示当前使用的 Blcok为当前 Chunk的最后一个 Block, 此时以 该 Chunk的基地址作为读地址读取存储器, 获取下一 Chunk的基地址, 同时 将 LinkRActFlag[x]更新为 '0, , LinkRActFlag[x+l]更新为 'Γ , 表示下次 开始使用另一条链表, X表示当前使用的链表标号。
当某条链表的首节点等于尾节点时, 将对应的 LinkEmptyFlag置 T , 表示该链表空。
步骤 S506, 判断当前节点是否为出队报文数据的尾节点。
这其中, 根据包尾标志 PktEopFlag确定报文的尾节点。 为 T 时, 该节 点为本次出队报文的尾节点, 本轮操作完成; 为 '0, 时, 该节点不是本次出 队报文的尾节点, 返回到步骤 S502, 继续操作, 直到输出报文尾节点, 然后 结束本轮操作。
下面结合一具体实例说明该方法的具体实现。
在 OC-768速度等级上, 为了满足要求, 芯片需提供 100MPPS的分组处 理能力。 在 100MHz的系统时钟下, 100MPPS的分组处理能力, 对应为每个 周期处理一个链表节点, 利用该链表节点访问数据存储区。 以 n=2、 m=3为 例的多链表和节点汇聚结构为例, 如图 6所示, 构建 2条链表, 每个 Chunk 包含 4个 Block, 同一 Chunk内的每个 Block的地址是连续的, 都是由基地址 +偏移地址。 以链表 0为例, A0、 Al、 A2、 A3四个 Block组成一个 Chunk, 基地址为 X, 每个 Block的偏移地址分别为 0、 1、 2、 3 , 同时以每个 Chunk 的基地址作为指针指向该链表下一个 Chunk的基地址。
使用时, 队列緩存管理系统预先记录下 n (本实施例中 n为 2 )条链表 的首尾节点, 同时设置标志位, 确定当前应该使用哪个链表以及每个链表是 否为空以及每个节点是否为报文的尾节点。 队列緩存管理系统接收到队列调 度系统链表操作请求时, 根据标志位, 确定使用的链表编号。 一般最初使用 时, 首先使用 0号链表的首节点 AO, 然后下一周期将 AO的偏移地址直接加 1 , 得到 A1 , 继续使用。 当使用到编号为 m的 Block时, 即 A3 , 送出 A3的 同时, 以其基地址读取下一 Chunk, 并更新标志位。 下个周期开始使用 1号 链表, 即送出 B0, 继续操作, 等到使用 B3时, 以其基地址读取下一 Chunk, 并更新标志位。 下个周期又重新开始使用 0号链表, 而此时 0号链表新的首 节点 C0已经从存储器中读出, 并且准备完毕, 可以使用, 如图 7所示。 这样 按顺序轮流操作, 直到报文尾部结束本轮操作。
上例中, 该应用完全满足了 100MPPS的分组处理需求,每个时钟周期链 表节点都是可以有效使用的。
与现有技术相比较, 在硬件实现中本方法可以保证链表的高效使用, 克 服了硬件自身读取延迟带来的问题。 且根据实际应用环境, 可更优的选取合 适的 n和 m进行组合, 使得本方法面对不同的应用环境更加灵活有效。 釆用 本发明中的方法, 使高速、 大容量条件下的存储管理可以在硬件中简单有效 的实现。
工业实用性
本发明提供的一种硬件易于实现的高速、 大容量存储管理方法和系统, 釆用多链表管理数据存储空间, 同时若干个相邻的链表节点汇聚成 Chunk, 使得每条链表的使用间隔加大, 隐藏了硬件存储器的读取延迟, 同时方便管 理。

Claims

权 利 要 求 书
1、 一种存储管理方法, 其包括:
报文入队时, 为所述报文建立 n条链表, 依次称为 0号链表至 n-1号链 表, 所述 n不小于 2, 保存所述 n条链表的首节点和尾节点; 所述 n条链表中 每条链表包括多个组块, 每个组块内包含多个区块, 每个区块对应一个节点, 同一组块内各区块的地址为基地址加偏移地址, 同一组块内各区块的基地址 相同, 相邻区块偏移地址相差一指定值; 以及
报文出队时, 从 0号链表开始, 依次使用 0号链表至 n-1号链表的首个 组块; 然后依次使用 0号链表至 n-1号链表的下一组块; 依此类推, 直到报 文结束;
其中, 使用所述组块的步骤包括: 从该组块的首个区块开始, 依次使用 该组块中的每个区块, 根据当前使用的区块的偏移地址加上所述指定值得到 下一区块的偏移地址; 使用完所述组块时, 使用该组块中区块的基地址得到 该组块所在链表中下一组块的基地址。
2、 如权利要求 1所述的方法, 其中, 所述方法还包括: 为所述 n条链 表建立链表出队活动标志和链表空标志, 为每个节点建立包尾标志, 报文出 队时, 根据链表出队活动标志判断当前要使用的链表, 根据链表空标志判断 链表是否为空, 根据包尾标志判断是否到达报文尾节点, 使用完 i号链表的 某一组块时,将 i号链表的链表出队活动标志设置为非活动, 将 i+1号链表的 链表出队活动标志设置为活动, i=0,... ,n-2; 当链表的首节点等于尾节点时, 将该链表的链表空标志设置为空。
3、 如权利要求 1所述的方法, 其中, 所述 n条链表中, 每个链表中每 个组块包含的区块个数相同。
4、 如权利要求 1所述的方法, 其中, 所述 n条链表的组块中, 同一组 块内相邻区块的偏移地址相差 1 , 每个组块的首个区块的偏移地址为 0;
在所述使用该组块中区块的基地址得到该组块所在链表中下一组块的基 地址的步骤中, 使用该组块中首个区块的基地址得到该组块所在链表中下一 组块的基地址。
5、 如权利要求 1所述的方法, 其中, 报文入队时, 所述建立 n条链表 的步骤包括:
根据报文长度申请可用的组块, 将第一个申请的组块分给 0号链表, 第 二个申请的组块分给 1号链表, 依此类推, 将第 n个申请的组块分给 n-1号 链表, 如果报文未结束, 将第 n+1个申请的组块分给 0号链表, 将第 n+2个 申请的组块分给 1号链表, 依此类推, 直到报文结束; 申请的组块数目由入 队报文的总大小决定;每个链表的第一个组块的首个区块为该链表的首节点, 每个链表的最后一个组块中使用到的最后一个区块为该链表的尾节点。
6、 一种存储管理系统, 包括报文入队管理模块和报文出队管理模块, 所述报文入队管理模块设置为: 在报文入队时, 为所述报文建立 n条链 表, 依次称为 0号链表至 n-1号链表, 保存所述 n条链表的首节点和尾节点; 所述 n条链表中每条链表包括多个组块, 每个组块内包含多个区块, 每个区 块对应一个节点, 同一组块内各区块的地址为基地址加偏移地址, 同一组块 内各区块的基地址相同, 相邻区块偏移地址相差一指定值, 所述 n不小于 2;
所述报文出队管理模块设置为: 在报文出队时, 从 0号链表开始, 依次 使用 0号链表至 n-1号链表的首个组块;然后依次使用 0号链表至 n-1号链表 的下一组块; 依此类推, 直到报文结束; 使用所述组块时, 从该组块的首个 区块开始, 依次使用该组块中的每个区块, 根据当前使用的区块的偏移地址 加上所述指定值得到下一区块的偏移地址; 使用完所述组块时, 使用该组块 中区块的基地址得到该组块所在链表中下一组块的基地址。
7、 如权利要求 6所述的系统,其中,所述报文入队管理模块还设置为: 为所述 n条链表建立链表出队活动标志和链表空标志, 为每个节点建立包尾 标志, 所述报文出队管理模块, 还用于在报文出队时、 根据所述链表出队活 动标志判断当前要使用的链表, 根据链表空标志判断链表是否为空, 根据包 尾标志判断是否到达报文尾节点, 使用完 i号链表的某一组块时, 将 i号链表 的链表出队活动标志设置为非活动, 将 i+1 号链表的链表出队活动标志设置 为活动, i=0,... ,n-2; 当链表的首节点等于尾节点时, 将该链表的链表空标志 设置为空。
8、 如权利要求 6所述的系统, 其中, 所述 n条链表中每个链表中每个 组块包含的区块个数相同。
9、 如权利要求 6所述的系统, 其中, 所述 n条链表的组块中, 同一组 块内相邻区块的偏移地址相差 1 , 每个组块的首个区块的偏移地址为 0;
所述报文出队管理模块是设置为: 在使用该组块中区块的基地址得到该 组块所在链表中下一组块的基地址时, 使用该组块中首个区块的基地址得到 该组块所在链表中下一组块的基地址。
10、 如权利要求 6所述的系统,其中, 所述报文入队管理模块是设置为 按如下方式建立 n条链表:
根据报文长度申请可用的组块, 将第一个申请的组块分给 0号链表, 第 二个申请的组块分给 1号链表, 依此类推, 将第 n个申请的组块分给 n-1号 链表, 如果报文未结束, 将第 n+1个申请的组块分给 0号链表, 将第 n+2个 申请的组块分给 1号链表, 依此类推, 直到报文结束; 申请的组块数目由入 队报文的总大小决定;每个链表的第一个组块的首个区块为该链表的首节点, 每个链表的最后一个组块中使用的最后一个区块为该链表的尾节点。
PCT/CN2010/071915 2009-08-05 2010-04-20 一种存储管理的方法和系统 WO2011015055A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2009101619018A CN101635682B (zh) 2009-08-05 2009-08-05 一种存储管理的方法和系统
CN200910161901.8 2009-08-05

Publications (1)

Publication Number Publication Date
WO2011015055A1 true WO2011015055A1 (zh) 2011-02-10

Family

ID=41594745

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/071915 WO2011015055A1 (zh) 2009-08-05 2010-04-20 一种存储管理的方法和系统

Country Status (2)

Country Link
CN (1) CN101635682B (zh)
WO (1) WO2011015055A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014173297A1 (en) * 2013-04-26 2014-10-30 Mediatek Inc. Output queue of multi-plane network device and related method of managing output queue having multiple packet linked lists

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635682B (zh) * 2009-08-05 2011-12-07 中兴通讯股份有限公司 一种存储管理的方法和系统
CN101963896B (zh) * 2010-08-20 2012-11-14 中国科学院计算技术研究所 一种具有二次索引结构的存储设备及其操作方法
CN102130833A (zh) * 2011-03-11 2011-07-20 中兴通讯股份有限公司 一种高速路由器流量管理芯片链表存储管理方法及系统
CN102739536B (zh) * 2012-06-26 2016-03-02 华为技术有限公司 一种报文缓存方法及路由器
CN103475569B (zh) * 2013-09-09 2016-02-10 北京思特奇信息技术股份有限公司 一种请求及响应消息的存储转发方法及装置
CN106330741B (zh) * 2015-06-15 2020-04-24 深圳市中兴微电子技术有限公司 一种报文传输方法和装置
CN106325758B (zh) * 2015-06-17 2019-10-22 深圳市中兴微电子技术有限公司 一种队列存储空间管理方法及装置
CN106126435B (zh) * 2016-06-28 2019-07-23 武汉众邦领创技术有限公司 一种实现链表流水操作的电路结构及操作方法
CN106656438B (zh) * 2017-01-03 2019-07-23 国家电网公司 一种goose报文序列的生成和编辑方法
CN107644054B (zh) * 2017-07-26 2019-02-19 北京海泰方圆科技股份有限公司 信息显示方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378143A (zh) * 2001-03-30 2002-11-06 深圳市中兴通讯股份有限公司 一种实现快速数据传递的方法
CN1638357A (zh) * 2003-10-31 2005-07-13 朗迅科技公司 具有链表处理器的存储器管理系统
US20070201497A1 (en) * 2006-02-27 2007-08-30 International Business Machines Corporation Method and system for high-concurrency and reduced latency queue processing in networks
CN101276334A (zh) * 2007-03-29 2008-10-01 上海新跃仪表厂 一种快速检索数据的链表实现方法
CN101551736A (zh) * 2009-05-20 2009-10-07 杭州华三通信技术有限公司 基于地址指针链表的缓存管理装置和方法
CN101594299A (zh) * 2009-05-20 2009-12-02 清华大学 基于链表的交换网络中队列缓冲管理方法
CN101635682A (zh) * 2009-08-05 2010-01-27 中兴通讯股份有限公司 一种存储管理的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1328925C (zh) * 2004-01-14 2007-07-25 中兴通讯股份有限公司 对移动通信设备中内存数据库定时监控的方法
CN100445999C (zh) * 2005-12-28 2008-12-24 华为技术有限公司 一种数据存储及搜索方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378143A (zh) * 2001-03-30 2002-11-06 深圳市中兴通讯股份有限公司 一种实现快速数据传递的方法
CN1638357A (zh) * 2003-10-31 2005-07-13 朗迅科技公司 具有链表处理器的存储器管理系统
US20070201497A1 (en) * 2006-02-27 2007-08-30 International Business Machines Corporation Method and system for high-concurrency and reduced latency queue processing in networks
CN101276334A (zh) * 2007-03-29 2008-10-01 上海新跃仪表厂 一种快速检索数据的链表实现方法
CN101551736A (zh) * 2009-05-20 2009-10-07 杭州华三通信技术有限公司 基于地址指针链表的缓存管理装置和方法
CN101594299A (zh) * 2009-05-20 2009-12-02 清华大学 基于链表的交换网络中队列缓冲管理方法
CN101635682A (zh) * 2009-08-05 2010-01-27 中兴通讯股份有限公司 一种存储管理的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014173297A1 (en) * 2013-04-26 2014-10-30 Mediatek Inc. Output queue of multi-plane network device and related method of managing output queue having multiple packet linked lists
US9313148B2 (en) 2013-04-26 2016-04-12 Mediatek Inc. Output queue of multi-plane network device and related method of managing output queue having multiple packet linked lists

Also Published As

Publication number Publication date
CN101635682B (zh) 2011-12-07
CN101635682A (zh) 2010-01-27

Similar Documents

Publication Publication Date Title
WO2011015055A1 (zh) 一种存储管理的方法和系统
WO2021088466A1 (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
US8225026B2 (en) Data packet access control apparatus and method thereof
US10740006B2 (en) System and method for enabling high read rates to data element lists
WO2004045161A1 (en) Packet storage system for traffic handling
WO2016202120A1 (zh) 一种队列存储空间管理方法及装置、计算机存储介质
JP7074839B2 (ja) パケット処理
US9753660B2 (en) System and method for implementing hierarchical distributed-linked lists for network devices
US9769092B2 (en) Packet buffer comprising a data section and a data description section
WO2011026353A1 (zh) 一种路由交换设备及其数据缓存的方法
WO2016019554A1 (zh) 一种队列管理的方法和装置
US11949601B1 (en) Efficient buffer utilization for network data units
CN110058816A (zh) 一种基于ddr的高速多用户队列管理器及方法
US9785367B2 (en) System and method for enabling high read rates to data element lists
WO2011085934A1 (en) A packet buffer comprising a data section and a data description section
EP1508225B1 (en) Method for data storage in external and on-chip memory in a packet switch
Wang et al. Block-based packet buffer with deterministic packet departures
JP5391449B2 (ja) 記憶装置
US20170017568A1 (en) System And Method For Implementing Distributed-Linked Lists For Network Devices
Kabra et al. Fast buffer memory with deterministic packet departures
US8428075B1 (en) System and method for efficient shared buffer management
JP2006253790A (ja) パケット伝送装置及びパケット伝送方法
KR20230131614A (ko) 네트워크 장비용 비휘발성 복합 메모리 및 비휘발성 복합 메모리 동작 방법

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: 10805959

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10805959

Country of ref document: EP

Kind code of ref document: A1