一种报文存储转发的方法及报文存储转发电路技术

技术编号:3546144 阅读:249 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种报文存储转发的方法及相应的报文存储转发电路,应用本方法和电路,可以解决因电路访问外部存储器的延迟造成存储器件读带宽丢失的问题,从而极大的提高存储器件的读带宽利用率,极大地提高了整个报文存储转发电路的性能。

【技术实现步骤摘要】
一种报文存储转发的方法及报文存储转发电路
本专利技术涉及存储转发技术,尤其是涉及一种报文存储转发的方法及相应的报文存储转发电路。
技术介绍
在网络处理ASIC(专用集成电路)的应用中存在处理数据包的机制,通常先将数据按整个报文进行存储,这些报文使用大容量存储器进行存储,这些存储器是独立于ASIC芯片的,如SRAM、DDR SRAM,然后根据某种调度方式,再将数据按一个个整报文进行读出,转发给下一节点或设备。通常情况下,网络节点具有N个逻辑通道,这些逻辑通道通过占用物理链路的时隙来转发数据,按照上述这种整报文的存储-转发机制,针对每个逻辑通道,在该节点都设置有一个独立的缓存区,利用该缓存区存储完整的报文,该缓存区通常用存储器件来实现,即将存储器的地址分成几块,每个逻辑通道占用其中一块,在每个时隙只能访问其中的一个逻辑通道。上述将数据转发给下一节点或设备的条件是缓存区里必须有至少一个整报文,因此技术关键点是如何判断存储器中是否有至少一个整报文,并且能够使得在调度存储器的数据过程中不浪费读操作的时钟周期,保证每次读出的数据都是有用的。在现有技术中,将报文数据写入外部存储器中包括:从写地址存储单元读出当前通道的写地址;判断当前写允许是否有效;如果当前写允许有效,那么写地址加1后,再写入到写地址存储单元中;如果当前写允许无效,那么写地址不变;根据写允许信号和写有效信号产生写使能信号;根据写地址产生访问存储器的地址信号。其中,整报文是以一组组数据的形式写入缓存区中,即在一个时钟周期内-->写入的报文数据为一个分组,其中每组数据包含数个字段,尾字段为包结束标志EOP(End Of Packet),该EOP用来标识报文是否结束,当EOP有效时,如EOP=1,表示报文结束,当EOP无效时,如EOP=0,表示报文没结束。将报文数据从外部存储器中读出时,根据读出的数据中EOP信号是否为1来决定一个完整报文的读操作是否结束。在现有的报文存储转发方法中,将EOP包结束标志当作报文数据的一部分写入外部存储器中,并在ASIC的逻辑中设置EOP计数器,当有N个逻辑通道时,需要设置N个EOP计数器,通过读取该EOP计数器的值来指示存储器里整报文的有无;如图1所示,当向外部存储器写入一个完整的报文时,即写入一个有效EOP时,该EOP计数器作加1处理;当从外部存储器中读出一个完整的报文时,即读出一个有效EOP时,该EOP计数器作减1处理;当同时有写入和读出一个完整的报文时,该EOP计数器的值不变;再判断EOP计数器的值,当EOP计数器的值为0时,表示缓存区中没有报文,当前读允许无效;当EOP计数器的值不为0时,表示缓存区中还有报文,当前读允许有效;其中,从外部存储器中读出一个有效EOP之前还包括:从外部存储器中读取数据并判断该数据的EOP是否有效,如果EOP有效,才是从外部存储器中读出一个有效EOP。然而,上述报文存储转发方法存在以下问题:一、读数据带宽丢失ASIC芯片访问外部存储器延迟大,按时钟周期来算,从读到数据到判断数据是否符合逻辑的要求,通常需要2个或2个以上的时钟周期。如果做连续的读操作,当判断出读到的数据为包尾时,读指针已经读过头了,并从外部存储器中多读取了数据,这时读指针需要回退,将多读出来的无用数据过滤掉。因此延迟的时钟周期和读指针回退的时间就相当于浪费掉了,不能进行有效的数据读写,因此造成了读数据带宽丢失;二、逻辑的混乱与死循环-->由于需要从ASIC芯片外部读入数据到ASIC芯片内进行逻辑判断即判断EOP信号是否为1,而ASIC芯片外的信号易受到外部的干扰,例如EOP=1被干扰后变成EOP=0,这样被干扰后的信号进入到逻辑内部进行判断时,就会造成逻辑的混乱与死循环。
技术实现思路
本专利技术的目的在于提供一种报文存储转发的方法以及报文存储转发电路,以提高存储器的读带宽利用率。为了实现上述目的,本专利技术提供如下的技术方案:。。。。。。由于采用了上述方案,本专利技术具有以下有益效果:本专利技术利用报文存储转发电路内部的EOP地址存储单元存储每个逻辑通道的包尾地址,再通过读取本专利技术电路内部的包尾地址和读地址实时进行比较,如果两个地址相同并且当前没有包尾数据写入,则认为当前逻辑通道在外部存储器中没有整报文了,并确定下一个时钟周期读允许无效,当下一个时钟周期到来时,则立即切换到其它逻辑通道,解决了现有技术读数据带宽丢失的问题,从而对于多逻辑通道的情况,可以极大的提高存储器的读带宽利用率,极大地提高了报文存储转发电路的性能;本专利技术通过判断电路内部的地址而不是存储器中数据,可以规避存储器读操作延时大的缺点,从而通过充分利用电路内部存储单元读写延时小的优点,达到缩短延时的目的;另外本专利技术方案不需要对报文存储转发电路外的信号进行判断,避免了现有技术中由于外部干扰而造成的内部逻辑的混乱或死循环,从而增强了本专利技术电路的鲁棒性。附图说明-->图1是现有报文存储转发方法中判断存储器有无报文的流程图;图2是本专利技术提供的报文存储转发电路的第一个实施例的结构图;图3是本专利技术提供的报文存储转发电路的第二个实施例的结构图;图4是图2和图3所示读判断单元中读允许状态转换图;图5是本专利技术报文存储转发方法中的写操作流程图;图6是图2所示读判断单元产生读允许信号的流程图;图7是本专利技术报文存储转发方法中的读操作流程图;图8是本专利技术时序示意图。具体实施方式本专利技术提供一种报文存储转发方法及相应的报文存储转发电路,以解决现有技术对外部存储器进行读数据时带宽丢失的问题。为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术作进一步的详细描述。本专利技术的核心思想是:在报文存储转发电路中,对应每个逻辑通道都设置有一个存储单元,该空间用于保存每一个逻辑通道写入外部存储器中的最后一个包尾数据的地址即包尾地址,每当该电路接收到读请求时,从该电路中的存储模块中读取当前逻辑通道的读地址以及当前逻辑通道的包尾地址,将两者进行比较,再根据比较结果和当前是否写入包尾数据,确定外部存储器中报文的有无,输出相应的下一个时钟周期的读允许信号,当下一个时钟周期到来时,通过判断读允许信号是否有效,从而实现将外部存储器中报文数据的读出转发。下面将结合附图描述本专利技术报文存储转发电路,请参阅图2和图3所示,本专利技术提供的报文存储转发电路包括:报文存储转发控制器100和存储器控制单元200,其中,存储器控制单元200作为一个与外挂存储器类型相关的控制单元,用于将报文存储转发控制器100输出的读写地址以及读写使能转化为外部存储器所需的时序并对外部存储器进行读写操作。考虑到存储器控制单元200为现有技术,在此不详细描述。-->报文存储转发控制器100包括:写模块300、存储模块400和读模块500,其中,写模块300根据接收的逻辑通道的写有效信号和从存储模块400中读取到的该通道的写地址,产生并输出写使能和写地址给存储器控制单元200,以及当接收到有效EOP信号时,输出相应条件信息给读模块并将该写地址作为包尾地址写入存储模块400;存储模块400用于存储每个逻辑通道访问外部存储器所需的读地址和写地址以及每个逻辑通道的最后一个包尾地址;读模块500根据接收的逻辑通道的读请求和从存储模块400中读取到的该通道的读地址和本文档来自技高网
...

【技术保护点】
一种报文存储转发的方法,其特征在于,设置有一个用于存储每个逻辑通道访问外部存储器所需读地址和写地址以及每个逻辑通道的最后包尾地址的存储模块,该方法包括如下步骤:根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生 并输出写使能和写地址,以及当接收到有效EOP信号时,输出相应条件信息并将该写地址作为包尾地址写入存储模块;根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根 据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号;根据接收到的读写地址以及读写使能对外部存储器进行读写操作。

【技术特征摘要】
1、一种报文存储转发的方法,其特征在于,设置有一个用于存储每个逻辑通道访问外部存储器所需读地址和写地址以及每个逻辑通道的最后包尾地址的存储模块,该方法包括如下步骤:根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生并输出写使能和写地址,以及当接收到有效EOP信号时,输出相应条件信息并将该写地址作为包尾地址写入存储模块;根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号;根据接收到的读写地址以及读写使能对外部存储器进行读写操作。2、如权利要求1所述的方法,其特征在于,当接收到无效EOP信号时,所述输出相应条件信息并将该写地址作为包尾地址写入存储模块的步骤具体为:保持存储模块中原有的包尾地址,不作更新处理。3、如权利要求1所述的方法,其特征在于,当没有接收到条件信息时,所述根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤具体为:根据该读地址和包尾地址,产生下一个时钟周期的读允许信号。4、如权利要求3所述的方法,其特征在于,所述根据该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:当该读地址与包尾地址相同时,产生下一个时钟周期的读允许无效信号;当该读地址与包尾地址不相同时,产生下一个时钟周期的读允许有效信号。5、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生并输出写使能和写地址,以及当接收到有效EOP信号时,输出相应条件信息并将该写地址作为包尾地址写入存储模块的步骤包括:根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的读地址和写地址,输出写使能和写地址,同时输出写地址信息以及指示信号或下一个时钟周期的写允许信号;当判断出接收到的指示信号或接收到的上一个时钟周期产生的写允许信号为有效并且接收的EOP信号为有效时,发出相应条件信息并将接收到的写地址作为包尾地址写入存储模块。6、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:根据接收到的逻辑通道的读请求和接收到的上一个时钟周期产生的读允许信号以及从存储模块中读取到的读地址,产生并输出相应的读使能和读地址;当接收到条件信息时,根据该条件信息以及对从存储模块中读取到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号。7、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:根据接收的逻辑通道的读请求,将从存储模块中读取到的包尾地址和读地址输出,并结合接收到的上一个时钟周期产生的读允许信号,输出相应的读使能和读地址;当接收到条件信息时,根据该条件信息以及对接收到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号。8、如权利要求6和7所述的方法,其特征在于,所述根据该条件信息以及对包尾地址和读地址比较的结果,产生下一个时钟周期的读允许信号并输出的步骤包括:当该通道的读地址和包尾地址相同,并且该条件信息为有效控制信号或者写地址信息时,产生下一个时钟周期读允许有效信号并输出;当通道的读地址和包尾地址不相同时,产生下一个时钟周期读允许有效信号并输出;当该通道的读地址和包尾地址相同时,并且该条件信息为无效控制信号时,产生下一个时钟周期读允许无效信号并输出。9、如权利要求4和8所述的方法,其特征在于,所述产生下一个时钟周期的读允许无效信号的...

【专利技术属性】
技术研发人员:梁创
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1