CN116414343A - 报文指针管理装置、报文指针管理方法及芯片 - Google Patents

报文指针管理装置、报文指针管理方法及芯片 Download PDF

Info

Publication number
CN116414343A
CN116414343A CN202111662766.2A CN202111662766A CN116414343A CN 116414343 A CN116414343 A CN 116414343A CN 202111662766 A CN202111662766 A CN 202111662766A CN 116414343 A CN116414343 A CN 116414343A
Authority
CN
China
Prior art keywords
message
message pointer
pointer
channel
address
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
Application number
CN202111662766.2A
Other languages
English (en)
Inventor
龚源泉
徐子轩
夏杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Suzhou Centec Communications Co Ltd
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 Suzhou Centec Communications Co Ltd filed Critical Suzhou Centec Communications Co Ltd
Priority to CN202111662766.2A priority Critical patent/CN116414343A/zh
Publication of CN116414343A publication Critical patent/CN116414343A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供了一种报文指针管理装置、报文指针管理方法及芯片,应用于多个通道的报文传输,报文包括总线宽度相等的多个数据块,报文指针管理装置包括:报文指针缓存,为每个通道配置一存储空间,以用于存储报文指针和报文的尾数据块标志;多个通道状态存储器,与多个通道对应设置,存储有对应的通道的存储空间的读地址和写地址;以及尾数据信息FIFO,用于存储报文的错误信息标志;报文指针管理装置被配置为:读取报文指针时,响应于错误信息标志为1时,释放存储于报文指针缓存中的报文指针。本申请采用缓存各通道单个报文的所有指针的方法,因此回收报文指针的时候,不需要读取记录数据缓存地址的指针存储器,只需要读取报文指针缓存即可得到一个报文的所有指针。

Description

报文指针管理装置、报文指针管理方法及芯片
技术领域
本发明涉及网络通信技术领域,尤其涉及一种报文指针管理装置、报文指针管理方法及芯片。
背景技术
随着5G、人工智能、虚拟现实以及网络交换等高新技术的发展,其中的核心处理芯片规模越来越大,需要处理的数据量也越来越庞大。这些数据一般都分成很多个通道,需要使用很大的缓冲存储器进行存储。为了实现各通道数据存储的公平性和灵活性,缓冲存储器的地址往往都通过链表的方式进行管理。以网络交换芯片为例,各通道的数据称为报文。
芯片中传输报文的总线宽度是固定的,由于报文的大小不一,来自各通道的报文先后以总线宽度相等的多个数据块的方式存储在数据缓存中。一个报文的所有数据块在数据缓存中的存储地址组成一个链表,每一个地址称为一个指针,以下也称报文指针。同时,还需要使用指针存储器存储各指针之间的链接关系。如图1所示。假设一个报文的各数据块存储在数据缓存的地址0、3、5、7、9中。这些地址的链接关系为0<-3<-5<-9<-7。其中0为报文的首指针,7为报文的尾指针。上述链接关系在指针存储器的存储方式为,地址0的值为3,地址3的值为5,……,尾地址7存储的值可以忽略。报文数据块存储到数据缓存中时,要写报文指针存储器建立链表;从数据缓存中读报文时,要读报文指针存储器获取链表指针。
如果一个报文的最后一个数据到来之前发生了错误,那么这个报文在交换芯片中就要被丢弃,该报文之后的数据不再进行缓存。这个报文数据块的指针就要被全部回收。如何合理回收这些指针又不影响报文的读写速度,是这类芯片设计中必须解决的问题。同时,指针回收的设计方法直接影响到芯片的时序和面积。
由于标志报文链表的特征为首指针,现有技术中,通常使用链表首指针开始读指针存储器直读到尾指针的方式,释放所有的指针,实现指针的回收。这种方法需要占用指针存储器的一个读接口,加上正常读取报文的操作,报文指针存储器要设计2个读端口。由于指针存储器与数据缓存一样,深度都很大,如果设计2个读端口,相对于一读一写的存储器来说,面积要翻一倍,对于芯片实现而言,非常浪费资源。如果指针存储器设计成一读一写,由于从数据缓存中读报文获取与当前指针链接的下一个指针和获取当前释放指针的下一个指针都需要对指针存储器执行读操作,只有一个读端口的话,无法支持两个读操作同时进行。这样就造成了指针存储器读带宽不够,最终影响报文的处理速度。
因此,有必要对现有报文指针管理方法及报文指针管理装置加以改进。
发明内容
鉴于现有技术中存在的上述技术问题,本申请提供了一种报文指针管理装置,应用于多个通道的多个报文的传输,每一报文分成总线宽度相等的多个数据块存储在数据缓存中,每个数据块在所述数据缓存中的存储地址组成一个链表,每一存储地址称为一个报文指针,包括:报文指针缓存,为每个通道配置一存储空间,以用于存储报文指针和所述报文的尾数据块标志;多个通道状态存储器,与所述多个通道对应设置,存储有对应的所述通道的所述存储空间的读地址和写地址;以及尾数据信息FIFO,用于存储所述报文的错误信息标志;所述报文指针管理装置被配置为:读取报文指针时,响应于所述错误信息标志为1时,释放存储于所述报文指针缓存中的所述报文指针。
可选地,还包括:多个通道配置存储器,与所述多个通道对应设置,存储有对应的通道的所述报文指针的存储空间的起始地址和结束地址,以为所述报文指针缓存界定各所述通道的所述存储空间。
可选地,各通道的所述存储空间中的地址数与所述多个报文中所述数据块最多的所述报文的数据块数量相等。
可选地,还包括:通道链表存储器,其条目数与所述报文指针缓存相等,存储有各通道报文指针缓存地址组成的链表;所述通道状态存储器中存储有所述通道链表存储器中各通道链表的首指针和尾指针,读取报文指针时,可以通过读取所述通道链表存储器得到该通道下一个报文指针在所述报文指针缓存的存储地址。
为了实现上述发明目的,本申请还提供了一种报文指针管理方法,应用上文所述的报文指针管理装置回收报文指针,包括:
报文指针存储步骤:存储所述报文指针,以通道号为地址,读取所述通道状态存储器,获取该通道的写地址,以得到的所述通道的写地址为地址,将所述报文指针作为数据写入报文指针缓存中,将写地址加1,读地址不变,以通道号为地址,将读、写地址作为数据,写入所述通道状态存储器。
可选地,所述报文指针存储步骤还包括:存储所述报文的最后一个所述数据块或者存储所述报文发生错误的所述数据块时,在写所述报文指针缓存时,将写数据的尾数据块标志设为1,同时向所述尾数据信息FIFO中压入所述通道号和所述错误信息标志,若存储所述报文指针没有发生错误,则所述错误信息标志为0;否则,所述错误信息标志为1。
可选地,包括报文指针回收步骤:读取所述报文的所述数据块时,当所述尾数据信息FIFO不为空时,读取其顶端的所述通道号,以该通道号为地址,读取所述通道状态存储器,获取该通道号对应的所述通道的读地址,以得到的读地址为地址,读所述报文指针缓存,获取报文指针,若从所述尾数据信息FIFO得到的所述错误信息标志为1,则将得到的所述报文指针进行释放。
可选地,报文指针回收步骤还包括:若所述错误信息标志不为1,将读地址加1,写地址不变,以所述通道号为地址,将读写地址作为数据,写入所述通道状态存储器。
可选地,所述报文读取步骤还包括:重复执行所述报文读取步骤中读所述报文指针缓存以及累加读地址的操作,直到从报文指针缓存得到的尾数据块标志为1时,停止读取所述报文指针缓存,弹出所述尾数据信息FIFO顶端的数据。
为了实现上述发明目的,本申请提供了一种报文指针管理方法,应用上文所述的报文指针管理装置回收报文指针,包括步骤:将报文指针存储于报文指针缓存;将报文的错误信息标志存储于尾数据信息FIFO;读取报文指针时,响应于所述错误信息标志为1时,释放存储于所述报文指针缓存中的所述报文指针。
为了实现上述发明目的,本申请还提供了一种芯片,应用上文所述的报文指针管理装置或报文指针管理方法回收报文指针。
本申请采用缓存各通道单个报文的所有指针的方法,因此回收报文指针的时候,不需要读取记录数据缓存地址的指针存储器,只需要读取报文指针缓存即可得到一个报文的所有指针,在不影响指针回收速度的前提下,简化了指针回收的逻辑。
由于每个通道的一个报文在存储最后一个数据块的时候,就开始根据通道状态存储器中存储的读地址读取该报文的首指针,从而释放报文指针缓存的空间。所以只要尾数据信息FIFO的深度设计合理(尾数据信息FIFO的深度与具体的芯片架构相关,不在本发明的保护范围,此处不作描述),每个通道占用的存储空间的地址数只要与最长报文的数据块数目相等即可。因此,报文指针缓存的深度可以远远小于指针存储器。本方法节省了芯片面积,也不影响芯片报文的读写带宽,所以不影响报文的处理速度。
附图说明
图1为报文数据缓存方法示意图;
图2为本申请的实施例一中提供的报文指针管理装置的结构示意图;
图3为本申请的实施例二中提供的报文指针管理装置的结构示意图;
图4为本申请的实施例一中提供的报文指针管理方法的流程示意图。
具体实施方式
在下文,将参照附图详细描述示范性实施方式。然而,本申请不限于下面的实施方式,而是包括在本公开的技术范围内的各种改变、替代和变形。术语“第一”、“第二”等可以用于解释各种元件,元件的个数并不受这样的术语的限制。这些术语只是用于将一个元件与另一元件区分开。因此,在一个实施方式中被称为第一元件的元件可以在另一实施方式中被称为第二元件。除非上下文有另外的要求,否则单数形式不排除复数形式。以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
本实施例提供了一种能够应用于多通道报文指针回收的报文指针管理装置及报文指针管理方法,不仅能够节省芯片面积,而且不影响芯片报文的读写带宽,因此也不会影响报文的处理速度。
实施例一
本实施例所提供的报文指针管理装置,应用于多个通道的多个报文指针的回收,报文包括总线宽度相等的多个数据块,报文指针为数据块在数据缓存中的地址。如图2所示,以共有x+1个通道作为示例,报文指针管理装置包括:报文指针缓存10,其能够为每个通道分配一块存储空间,即共有x+1个存储空间,以用于存储报文指针和报文的尾数据块标志;多个通道状态存储器20,与多个通道对应设置,每一通道装置存储器20存储有对应的通道的存储空间的读地址和写地址;多个通道配置存储器30,与多个通道对应设置,每一通道配置存储器30存储有对应的通道的存储空间的起始地址和结束地址,以为各通道界定存储空间;以及尾数据信息FIFO,用于存储报文的错误信息标志和用以报文指针缓存10中各通道的通道号。
可选地,各通道的存储空间中的地址数与多个报文中数据块最多的报文的数据块数量相等。
下面对该报文指针管理装置的报文指针管理方法进行说明。
报文指针存储方法为:
步骤1:存储各数据块报文的指针,以通道号为地址,读取通道状态存储器20,获取该通道的写地址。然后存储报文指针:以得到的通道的写地址为地址,将报文指针作为数据写入报文指针缓存10中。将写地址加1,读地址不变,以通道号为地址,将读、写地址作为数据,写入通道状态存储器20。
步骤2:存储报文的最后一个数据块,或者存储报文发生错误的数据块时,除了执行上述存储报文数据块的操作之外,在写报文指针缓存时,将写数据的尾数据块标志设为1,同时向尾数据信息FIFO中压入通道号和错误信息标志。如果存储报文没有发生错误,则错误信息标志为0;否则,错误信息标志为1,由此实现报文指针的存储。
回收报文指针的方法为:
步骤3:当尾数据信息FIFO不为空时,读取其顶端的通道号。以该通道号为地址,读取通道状态存储器20,获取该通道号对应的通道的读地址。以得到的读地址为地址,读报文指针缓存,获取报文指针。如果从尾数据信息FIFO得到的错误信息标志为1,则将得到的报文指针进行释放;否则,因为报文指针没有发生错误,报文指针要等到报文被读取之后才能够进行释放,此处不能提前释放,因此得到的报文指针不执行任何操作。将读地址加1,写地址不变,以通道号为地址,将读写地址作为数据,写入通道状态存储器20。
步骤4:若错误信息标志不为1,重复执行步骤3中读报文指针缓存以及累加读地址的操作,直到从报文指针缓存得到的尾数据块标志为1时,停止读取报文指针缓存10,弹出尾数据信息FIFO顶端的数据。
重复步骤3到4,直到尾数据信息FIFO为空,以实现报文指针的回收。
可选地,如图4所示,本申请提供了一种报文指针管理方法,应用上文所述的报文指针管理装置回收报文指针,包括步骤:
将报文指针存储于报文指针缓存10;
将报文的错误信息标志存储于尾数据信息FIFO;
读取报文指针时,响应于错误信息标志为1时,释放存储于报文指针缓存10中的报文指针。
需要说明的是,此处提及的“报文指针”是指一个报文的全部指针。
本申请采用缓存各通道单个报文的所有指针。回收报文指针的时候,不需要读取记录数据缓存地址的指针存储器,只需要读取报文指针缓存10即可得到一个报文的所有指针。由于每个通道的一个报文在存储最后一个数据块的时候,就开始根据通道状态存储器20中存储的读地址读取该报文的首指针,从而释放报文指针缓存的空间。所以只要尾数据信息FIFO的深度设计合理(尾数据信息FIFO的深度与具体的芯片架构相关,不在本发明的保护范围,此处不作描述),每个通道占用的存储空间的地址数只要与最长报文的数据块数目相等即可。因此,报文指针缓存的深度可以远远小于指针存储器。本方法节省了芯片面积,也不影响芯片报文的读写带宽,所以不影响报文的处理速度。
实施例二
实施例二与实施例一的区别在于,未配置通道配置存储器30,而是采用通道链表存储器40,其条目数与报文指针缓存10相等。通道状态存储器20中存储各通道链表的首指针和尾指针。读取报文指针的时候,需要读取通道链表存储器40得到该通道下一个报文指针在报文指针缓存的存储地址。
如此设置,采用链表的方式管理报文指针缓存10为每个通道配置的存储空间,无需固定存储空间,对报文指针缓存10的空间利用更为合理。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (10)

1.一种报文指针管理装置,应用于多个通道的多个报文的传输,每一报文分成总线宽度相等的多个数据块存储在数据缓存中,每个数据块在所述数据缓存中的存储地址组成一个链表,每一存储地址称为一个报文指针,其特征在于,包括:
报文指针缓存,为每个通道配置一存储空间,以用于存储报文指针和所述报文的尾数据块标志;
多个通道状态存储器,与所述多个通道对应设置,存储有对应的所述通道的所述存储空间的读地址和写地址;以及
尾数据信息FIFO,用于存储所述报文的错误信息标志;
所述报文指针管理装置被配置为:读取报文指针时,响应于所述错误信息标志为1时,释放存储于所述报文指针缓存中的所述报文指针。
2.如权利要求1所述的报文指针管理装置,其特征在于,还包括:
多个通道配置存储器,与所述多个通道对应设置,存储有对应的通道的所述存储空间的起始地址和结束地址,以为所述报文指针缓存界定各所述通道的所述存储空间。
3.如权利要求1或2所述的报文指针管理装置,其特征在于,各通道的所述存储空间中的地址数与所述多个报文中所述数据块最多的所述报文的数据块数量相等。
4.如权利要求1所述的报文指针管理装置,其特征在于,还包括:
通道链表存储器,其条目数与所述报文指针缓存相等,存储有各通道报文指针缓存地址组成的链表;
所述通道状态存储器中存储有所述通道链表存储器中所述各通道报文指针缓存地址组成的链表的首指针和尾指针,读取所述报文指针时,可以通过读取所述通道链表存储器得到该通道下一个报文指针在所述报文指针缓存的存储地址。
5.一种报文指针管理方法,应用权利要求1-3中任一项所述的报文指针管理装置回收报文指针,其特征在于,包括:
报文指针存储步骤:存储所述报文指针,以通道号为地址,读取所述通道状态存储器,获取该通道的写地址,以得到的所述通道的写地址为地址,将所述报文指针作为数据写入报文指针缓存中,将写地址加1,读地址不变,以通道号为地址,将读、写地址作为数据,写入所述通道状态存储器。
6.如权利要求5所述的报文指针管理方法,其特征在于,所述报文指针存储步骤还包括:存储所述报文的最后一个所述数据块或者存储所述报文发生错误的所述数据块时,在写所述报文指针缓存时,将写数据的尾数据块标志设为1,同时向所述尾数据信息FIFO中压入所述通道号和所述错误信息标志,若存储所述报文指针没有发生错误,则所述错误信息标志为0;否则,所述错误信息标志为1。
7.如权利要求6所述的报文指针管理方法,其特征在于,包括:
报文指针回收步骤:当所述尾数据信息FIFO不为空时,读取其顶端的所述通道号,以该通道号为地址,读取所述通道状态存储器,获取该通道号对应的所述通道的读地址,以得到的读地址为地址,读所述报文指针缓存,获取报文指针,若从所述尾数据信息FIFO得到的所述错误信息标志为1,则将得到的所述报文指针进行释放。
8.如权利要求7所述的报文指针管理方法,其特征在于,所述报文指针回收步骤还包括:
若所述错误信息标志不为1,将读地址加1,写地址不变,以所述通道号为地址,将读写地址作为数据,写入所述通道状态存储器。
9.一种报文指针管理方法,应用权利要求1-3中任一项所述的报文指针管理装置回收报文指针,其特征在于,包括步骤:
将报文指针存储于报文指针缓存;
将报文的错误信息标志存储于尾数据信息FIFO;
读取报文指针时,响应于所述错误信息标志为1时,释放存储于所述报文指针缓存中的所述报文指针。
10.一种芯片,其特征在于,应用权利要求1-4中任一项所述的报文指针管理装置或权利要求5-9中任一项所述的报文指针管理方法回收报文指针。
CN202111662766.2A 2021-12-31 2021-12-31 报文指针管理装置、报文指针管理方法及芯片 Pending CN116414343A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111662766.2A CN116414343A (zh) 2021-12-31 2021-12-31 报文指针管理装置、报文指针管理方法及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111662766.2A CN116414343A (zh) 2021-12-31 2021-12-31 报文指针管理装置、报文指针管理方法及芯片

Publications (1)

Publication Number Publication Date
CN116414343A true CN116414343A (zh) 2023-07-11

Family

ID=87049946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111662766.2A Pending CN116414343A (zh) 2021-12-31 2021-12-31 报文指针管理装置、报文指针管理方法及芯片

Country Status (1)

Country Link
CN (1) CN116414343A (zh)

Similar Documents

Publication Publication Date Title
WO2021088466A1 (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
US7733892B2 (en) Buffer management method based on a bitmap table
CN113535633A (zh) 一种片上缓存装置和读写方法
US8281103B2 (en) Method and apparatus for allocating storage addresses
CN110704355B (zh) 一种利用双口ram接收并处理1553b总线数据的方法
EP3206123B1 (en) Data caching method and device, and storage medium
CN110058816B (zh) 一种基于ddr的高速多用户队列管理器及方法
US7000073B2 (en) Buffer controller and management method thereof
WO2016202113A1 (zh) 一种队列管理方法、装置及存储介质
CN106375249B (zh) 交换芯片的控制方法及控制系统
CN111181874B (zh) 一种报文处理方法、装置及存储介质
CN116955247B (zh) 一种缓存描述符管理装置及其方法、介质、芯片
US8363653B2 (en) Packet forwarding method and device
CN115002052B (zh) 一种分层的缓存控制器、控制方法及控制设备
CN116414343A (zh) 报文指针管理装置、报文指针管理方法及芯片
CN113821191A (zh) 一种可配置fifo深度的装置及方法
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
CN109308180B (zh) 缓存拥塞的处理方法及处理装置
US20020145995A1 (en) Address release method, and common buffering device for atm switching system which employs the same method
CN109960460B (zh) 一种分布式存储系统
CN111858399B (zh) 一种数据传输方法、装置、计算机可读存储介质和计算机设备
CN116455850A (zh) 管理流量管理tm控制信息的方法、tm模块和网络转发设备
CN113660180B (zh) 一种数据存储方法、装置、终端及存储介质
JP7419944B2 (ja) 半導体装置及び同期化方法
CN115658566B (zh) 一种实现多通道数据流均衡的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination