CN1885827A - 一种报文存储转发的方法及报文存储转发电路 - Google Patents
一种报文存储转发的方法及报文存储转发电路 Download PDFInfo
- Publication number
- CN1885827A CN1885827A CNA2006100615800A CN200610061580A CN1885827A CN 1885827 A CN1885827 A CN 1885827A CN A2006100615800 A CNA2006100615800 A CN A2006100615800A CN 200610061580 A CN200610061580 A CN 200610061580A CN 1885827 A CN1885827 A CN 1885827A
- Authority
- CN
- China
- Prior art keywords
- read
- address
- write
- signal
- received
- 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 31
- 230000015654 memory Effects 0.000 claims description 110
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010248 power generation Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文存储转发的方法及相应的报文存储转发电路,应用本方法和电路,可以解决因电路访问外部存储器的延迟造成存储器件读带宽丢失的问题,从而极大的提高存储器件的读带宽利用率,极大地提高了整个报文存储转发电路的性能。
Description
技术领域
本发明涉及存储转发技术,尤其是涉及一种报文存储转发的方法及相应的报文存储转发电路。
背景技术
在网络处理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中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址给存储器控制单元200,以及当接收到条件信息时,根据该条件信息和读取到的读地址和包尾地址,产生读允许信号。
如图2所示,为报文存储转发控制器的第一个实施例,其中存储模块400包括EOP地址存储单元401、读地址存储单元402和写地址存储单元403,该EOP地址存储单元401用于存储每一个逻辑通道向外部存储器中写入最后一个包尾数据的地址即包尾地址,具体为在该EOP地址存储单元401中,每个逻辑通道对应有一个EOP地址存储区用于存储该通道的最新包尾地址;该读地址存储单元402用于存储每一个逻辑通道访问外部存储器所需要的读地址,具体为在该读地址存储单元402中,每个逻辑通道对应有一个存储区用于存储该通道访问外部存储器所需要的读地址;该写地址存储单元403用于存储每一个逻辑通道访问外部存储器所需要的写地址,具体为在该写地址存储单元403中,每个逻辑通道对应有一个存储区用于存储该通道访问外部存储器所需要的写地址;
其中,该EOP地址存储器401与写地址存储器403可以是一个物理存储器(写侧存储器)上二个逻辑相互独立的部分,该读地址存储器402为另一个独立的物理存储器(读侧存储器);也可以将该EOP地址存储单元401、读地址存储单元402和写地址存储单元403配置为三个独立的物理存储器。
写模块300包括EOP地址更新单元301和写操作模块304,其中写操作模块304根据接收到逻辑通道的写有效信号和从存储模块400中读取到的该通道的读地址和写地址,输出写使能和写地址给存储器控制单元200,同时输出写地址信息和指示信号给EOP地址更新单元301;
如图2所示,写操作模块304具体包括写判断单元302和写控制单元303,当接收到的写有效信号时,在当前时钟周期内:
写判断单元302对从读地址存储单元402中读取到的当前通道的读地址和从写地址存储单元403中读取到的当前通道的写地址进行比较,根据比较结果产生并输出相应的下一个时钟周期写允许信号给写控制单元303;因考虑到是现有技术,在此不详细描述;
写控制单元303判断接收到的当前写允许信号(写判断单元302上一个时钟周期输出的)是否有效,根据判断结果和从写地址存储单元403中读出的当前通道的写地址,输出相应的写使能和写地址给存储器控制单元200同时输出相应的指示信号和写地址信息给EOP地址更新单元,以及对写地址存储单元403中当前通道的写地址作相应的处理;具体如下:如果写允许有效,则输出有效写使能给存储器控制单元200,发送有效指示信号给EOP地址更新单元301,并对当前通道的写地址作加1处理后写入写地址存储单元403中;如果写允许无效,则输出无效写使能给存储器控制单元200,发送无效指示信号给EOP地址更新单元301,当前通道的写地址不变。
EOP地址更新单元301用于当接收到有效指示信号时,判断接收到的EOP信号是否有效,如果EOP有效,则输出有效控制信号给读模块500中的读判断单元501,并将接收到的写地址作为包尾地址写入EOP地址更新单元401中;如果EOP无效,则输出无效控制信号给读模块500中的读判断单元501,并对写地址不作处理;或者,EOP地址更新单元301用于当接收到有效指示信号时,判断接收到的EOP信号是否有效,如果EOP有效,则将接收到的写地址发送给读模块500中的读判断单元501,以及将接收到的写地址作为包尾地址写入EOP地址更新单元401;如果EOP无效,则不作处理。
例如EOP信号为逻辑1,将写地址作为包尾地址写入存储模块400或覆盖存储模块400中原有的包尾地址,使存储模块400中的内容为每个逻辑通道的最新包尾地址;EOP信号为逻辑0,保持存储模块中原有的包尾地址,不作更新处理。
如图2所示,读模块500包括读判断单元501和读控制单元502;当接收到逻辑通道的读请求时,在当前时钟周期内:
读判断单元501根据接收的逻辑通道的读请求,对从EOP地址存储单元401中读取到的该通道的包尾地址和从读地址存储单元402中读取到的该通道的读地址进行比较,如果当前EOP地址更新单元301有发来条件信息,则根据比较结果和接收到的条件信息,输出下一个时钟周期读允许信号给读控制单元502;
读控制单元502用于当接收到逻辑通道的读请求时,判断接收的当前读允许信号(读判断单元501上一个时钟周期输出的)是否有效,根据判断结果和从读地址存储单元402中读取到的该通道的读地址,输出相应的读使能和读地址给存储器控制单元200,以及对读地址存储单元402中当前通道的读地址作相应的处理;具体为:如果判断结果为当前读允许有效,则输出有效读使能给存储器控制单元200,并将当前通道的读地址作加1处理后再写入读地址存储单元402中;如果判断结果为当前读允许无效,则输出无效读使能给存储器控制单元200,当前通道的读地址不变。
如图3所示,为报文存储转发控制器的第二个实施例,与第一个实施例不同之处在于:在当前时钟周期内:
写控制单元303用于当接收到逻辑通道的写有效信号时,判断接收到的当前写允许信号(写判断单元上一个时钟周期输出的)是否有效以及将从读地址存储单元402中读取到的当前通道的读地址和从写地址存储单元403中读取到的当前通道的写地址送入写判断单元302,并根据判断结果输出相应的写使能和写地址给存储器控制单元200,同时输出相应的指示信号和写地址信息给EOP地址更新单元301以及对写地址存储单元403中当前通道的写地址作相应的处理;具体为:如果判断结果为写允许有效,则输出有效写使能给存储器控制单元200,发送有效指示信号给EOP地址更新单元301,并对当前通道的写地址作加1处理后写入写地址存储单元403中;如果判断结果为写允许无效,则输出无效写使能给存储器控制单元200,发送无效指示信号给EOP地址更新单元301,当前通道的写地址不变;
写判断单元302根据接收的逻辑通道的写有效信号,对接收到的读地址和写地址进行比较,根据比较结果输出相应的下一个时钟周期的写允许信号给写控制单元303;考虑是现有技术,在此不详细描述。
在读模块500中,在当前时钟周期内:
读控制单元502,用于当接收到逻辑通道的读请求时,判断接收到的当前读允许信号(读判断单元501上一个时钟周期输出的)是否有效,以及将从EOP地址存储单元401中读取到的当前通道的包尾地址和从读地址存储单元402中读取到的当前通道的读地址发送给读判断单元501,并根据判断结果输出相应的读使能和读地址给存储器控制单元200以及对读地址存储单元403中当前通道的读地址作相应的处理;具体为:如果判断结果为当前读允许有效,则输出有效读使能给存储器控制单元200,并将当前通道的读地址作加1处理后再写入读地址存储单元402中;如果判断结果为当前读允许无效,则输出无效读使能给存储器控制单元200,当前通道的读地址不变;
读判断单元501用于当接收到逻辑通道的读请求时,对接收到的读地址和包尾地址进行比较,如果当前EOP地址更新单元301有发来条件信息,则根据比较结果和接收到的条件信息,输出相应的下一个时钟周期的读允许信号给读控制单元502。
在报文存储转发控制器的第一、二实施例中,还可以由写判断单元302将产生的下一个时钟周期的写允许信号同时输出给写控制单元303和EOP地址更新单元301,当下一个时钟周期到来时,由EOP地址更新单元301自己判断接收到的写允许信号是否有效;还可以由写判断单元302将写地址信息发送给EOP地址更新单元301。
读判断单元501是本发明的重点,下面详细介绍读判断单元501产生读允许信号的过程,请参阅图4所示,图4揭示了读判断单元中读允许信号的各种状态转换及相应的控制条件:
以读判断单元接收EOP地址更新单元发送来的控制信号为例,下面对读判断单元中读允许信号的各种状态转换进行说明,当系统复位时(条件1),读判断单元中的状态机进入读允许无效状态(状态1);在读允许无效状态下,对EOP地址更新单元发送来的控制信号进行判断,如果控制信号为有效即写入一个包尾地址(条件3)则下一个时钟周期进入读允许有效状态(状态2);如果控制信号为无效即没有包尾地址写入(条件2)则下一个时钟周期保持在读允许无效状态(状态1);
在读允许有效状态(状态2)下,将得到的当前逻辑通道的读地址以及当前逻辑通道的包尾地址进行比较,如果当前EOP地址更新单元有发来控制信号,则同时对接收到的控制信号进行判断,当读地址与包尾地址不相同时(条件4),则下一个时钟周期保持在读允许有效状态(状态2);当读地址与包尾地址相同,并且控制信号为有效即当前有新的包尾地址写入(条件5)时,则下一个时钟周期保持在读允许有效状态(状态2);当读地址与包尾地址相同,并且控制信号为无效即当前没有新的包尾地址写入(条件6)时,则下一个时钟周期进入读允许无效状态(状态1)。
对于读判断单元接收EOP地址更新单元发送来的写地址的例子,在此不详细描述。
请一并参阅图5所示,图5揭示了当前逻辑通道的写操作流程,下面将结合图2、3进行说明。
当接收到当前逻辑通道的写有效信号时,
步骤S101,从写地址存储单元中读出当前通道的写地址,并判断当前写允许是否有效;如果当前写允许有效,则转至步骤S102;如果当前写允许无效,则转至步骤S103。
步骤S102,利用该写地址,将报文数据写入外部存储器中,以及将该写地址作加1处理后写入写地址存储单元中;同时判断接收到的报文数据中的EOP信号是否有效,如果EOP信号有效,则转至步骤S1021;如果EOP信号无效,则转至步骤S1022。
步骤S1021,将该写地址作为包尾地址写入EOP地址存储单元中当前通道所对应的存储区,同时输出相应的条件信息;该信息可以是控制信号,也可以是该写地址。
其中,在写入之前,如果EOP地址存储单元中当前通道所对应的存储区为非空,则将该写地址作为最新的包尾地址覆盖原来的包尾地址,使得EOP地址存储单元中当前通道所对应的存储区中存储的是最新的包尾地址,也就是最后一个报文的包尾地址。
步骤S1022,保持EOP地址存储区中原有的EOP地址,不作更新处理。
步骤S103,不作写数据操作。
请一并参阅图6和图7所示,揭示了当前逻辑通道的读操作流程,下面将结合图2进行说明。
在介绍读操作流程之前,需要先介绍读允许信号产生的流程,亦即判断外部存储器有无报文的方法,其中待判断的存储器可以是一个,也可以是多个;当为一个存储器时,该存储器划分为多个缓存区,各个缓存区被分别配置给相应的逻辑通道;当为多个存储器时,每个逻辑通道分别配置有一个存储器。
当接收到当前逻辑通道的读请求时:
步骤S201从读地址存储单元中读取当前逻辑通道的读地址的同时,从EOP地址存储单元中读取当前逻辑通道的包尾地址;
步骤S202比较该读地址和包尾地址是否相同,如果相同,则执行步骤S203;如果不相同,则执行步骤S204。
步骤S203确定当前是否接收到EOP地址更新单元发送来的条件信息,如果接收到条件信息,并且该信息为控制信号,则执行步骤S2031a;如果接收到条件信息,并且该信息为写地址,则执行步骤S2031b;如果没有接收到条件信息,则执行步骤S2032;
步骤S2031a判断该控制信号是否有效,如果有效,则执行步骤S2031a1;如果无效,则执行步骤S2031a2;
步骤S2031a1确定外部存储器中有整报文,产生下一个时钟周期读允许有效信号;
步骤S2031a2确定外部存储器中无整报文,产生下一个时钟周期读允许无效信号;
步骤S2031b确定外部存储器中有整报文,产生下一个时钟周期读允许有效信号;
步骤S2032确定外部存储器中无整报文,产生下一个时钟周期读允许无效信号;
步骤S204确定外部存储器中有整报文,产生下一个时钟周期读允许有效信号;
下面接着介绍当前逻辑通道的读操作流程:
当接收到当前通道的读请求时,
步骤S301从读地址存储单元中读出当前通道的读地址,并判断当前读允许信号是否有效,如果当前读允许有效,则执行步骤S302;如果当前读允许无效,则执行步骤S303;
步骤S302利用该读地址,将报文数据从外部存储器中读出转发,以及将该读地址作加1处理后写入读地址存储单元中;
步骤S303立即停止当前通道的读操作或切换到其他逻辑通道进行读操作;
参考图8,是本发明时序示意图,其中逻辑通道0的最新EOP地址为5,读地址信号表示当前正在读通道0的读地址,图中连续读了5个逻辑通道0的报文数据,当读地址的值与当前通道最新EOP地址相等时(图中都为5),通道切换指示信号变为高电平,通道0有无包指示信号变为低电平,表示该逻辑通道0已将报文读空了(该逻辑通道0的最后一个包尾数据已经读出),同时切换到逻辑通道1即读地址信号切换到逻辑通道1的地址,继续进行读操作,其中通道1有无包指示信号处于高电平指示逻辑通道1有报文,逻辑通道1的EOP地址为7,从图8中可看到读使能一直为高电平,因此没有浪费一个时钟周期。
本发明利用报文存储转发电路内部的EOP地址存储单元存储每个逻辑通道的最新包尾地址,再通过读取本发明电路内部的包尾地址和读地址实时进行比较,如果两个地址相同并且当前没有包尾数据写入,则认为当前逻辑通道在外部存储器中没有整报文了,确定下一个时钟周期读允许无效,当下一个时钟周期到来时,则立即切换到其它逻辑通道,解决了现有技术读数据带宽丢失的问题,从而对于多逻辑通道的情况,可以极大的提高存储器的读带宽利用率,极大地提高了报文存储转发电路的性能;
本发明通过判断报文存储转发电路内部的地址而不是外部存储器中数据,可以规避外部存储器读操作延时大的缺点,从而通过充分利用电路内部存储单元读写延时小的优点,达到缩短延时的目的;
另外本发明方案不需要对报文存储转发电路外的信号进行判断,避免了现有技术中由于外部干扰而造成的内部逻辑的混乱或死循环,从而增强了本发明电路的鲁棒性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (20)
1、一种报文存储转发的方法,其特征在于,设置有一个用于存储每个逻辑通道访问外部存储器所需读地址和写地址以及每个逻辑通道的最后包尾地址的存储模块,该方法包括如下步骤:
根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生并输出写使能和写地址,以及当接收到有效EOP信号时,输出相应条件信息并将该写地址作为包尾地址写入存储模块;
根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号;
根据接收到的读写地址以及读写使能对外部存储器进行读写操作。
2、如权利要求1所述的方法,其特征在于,当接收到无效EOP信号时,所述输出相应条件信息并将该写地址作为包尾地址写入存储模块的步骤具体为:
保持存储模块中原有的包尾地址,不作更新处理。
3、如权利要求1所述的方法,其特征在于,当没有接收到条件信息时,所述根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤具体为:
根据该读地址和包尾地址,产生下一个时钟周期的读允许信号。
4、如权利要求3所述的方法,其特征在于,所述根据该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:
当该读地址与包尾地址相同时,产生下一个时钟周期的读允许无效信号;
当该读地址与包尾地址不相同时,产生下一个时钟周期的读允许有效信号。
5、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生并输出写使能和写地址,以及当接收到有效EOP信号时,输出相应条件信息并将该写地址作为包尾地址写入存储模块的步骤包括:
根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的读地址和写地址,输出写使能和写地址,同时输出写地址信息以及指示信号或下一个时钟周期的写允许信号;
当判断出接收到的指示信号或接收到的上一个时钟周期产生的写允许信号为有效并且接收的EOP信号为有效时,发出相应条件信息并将接收到的写地址作为包尾地址写入存储模块。
6、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:
根据接收到的逻辑通道的读请求和接收到的上一个时钟周期产生的读允许信号以及从存储模块中读取到的读地址,产生并输出相应的读使能和读地址;
当接收到条件信息时,根据该条件信息以及对从存储模块中读取到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号。
7、如权利要求1所述的方法,其特征在于,所述根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号的步骤包括:
根据接收的逻辑通道的读请求,将从存储模块中读取到的包尾地址和读地址输出,并结合接收到的上一个时钟周期产生的读允许信号,输出相应的读使能和读地址;
当接收到条件信息时,根据该条件信息以及对接收到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号。
8、如权利要求6和7所述的方法,其特征在于,所述根据该条件信息以及对包尾地址和读地址比较的结果,产生下一个时钟周期的读允许信号并输出的步骤包括:
当该通道的读地址和包尾地址相同,并且该条件信息为有效控制信号或者写地址信息时,产生下一个时钟周期读允许有效信号并输出;
当通道的读地址和包尾地址不相同时,产生下一个时钟周期读允许有效信号并输出;
当该通道的读地址和包尾地址相同时,并且该条件信息为无效控制信号时,产生下一个时钟周期读允许无效信号并输出。
9、如权利要求4和8所述的方法,其特征在于,所述产生下一个时钟周期的读允许无效信号的步骤之后还包括步骤:
立即停止当前通道或切换到其他逻辑通道。
10、一种报文存储转发电路,其特征在于,所述电路包括报文存储转发控制器和存储器控制单元;
所述报文存储转发控制器包括写模块、存储模块和读模块;其中,
所述写模块根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的写地址,产生并输出写使能和写地址给存储器控制单元,以及当接收到有效EOP信号时,输出相应条件信息给读模块并将该写地址作为包尾地址写入存储模块;
所述存储模块用于存储每个逻辑通道访问外部存储器所需的读地址和写地址以及每个逻辑通道的最后包尾地址;
所述读模块根据接收的逻辑通道的读请求和从存储模块中读取到的该通道的读地址和包尾地址,产生并输出读使能和读地址给存储器控制单元,以及当接收到条件信息时,根据该条件信息和该读地址和包尾地址,产生下一个时钟周期的读允许信号;
所述存储器控制单元根据接收到的读写地址以及读写使能对外部存储器进行读写操作。
11、如权利要求10所述的电路,其特征在于,所述写模块还用于当接收到无效EOP信号时,保持存储模块中原有的包尾地址,不作更新处理。
12、如权利要求10所述的电路,其特征在于,所述读模块还用于当没有接收到条件信息时,根据该读地址和包尾地址,产生下一个时钟周期的读允许信号。
13、如权利要求12所述的电路,其特征在于,所述读模块用于当该读地址与包尾地址相同时,产生下一个时钟周期的读允许无效信号。
14、如权利要求10所述的电路,其特征在于,所述写模块包括写操作模块和EOP地址更新单元;
所述写操作模块根据接收的逻辑通道的写有效信号和从存储模块中读取到的该通道的读地址和写地址,产生并输出写使能和写地址给存储器控制单元,同时输出写地址信息以及指示信号或下一个时钟周期的写允许信号给EOP地址更新单元;
所述EOP地址更新单元用于当判断出接收到的指示信号或接收到的写操作模块上一个时钟周期产生的写允许信号为有效并且接收到的EOP信号为有效时,发出相应条件信息给读模块并将接收到的写地址作为包尾地址写入存储模块。
15、如权利要求10所述的电路,其特征在于,所述读模块包括读判断单元和读控制单元;
所述读控制单元根据接收到的逻辑通道的读请求和接收到的上一个时钟周期产生的读允许信号以及从存储模块中读取到的读地址,输出相应的读使能和读地址;
所述读判断单元用于当接收到条件信息时,根据该条件信息以及对从存储模块中读取到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号给读控制单元。
16、如权利要求10所述的电路,其特征在于,所述读模块包括读判断单元和读控制单元;
所述读控制单元根据接收的逻辑通道的读请求,将从存储模块中读取到的包尾地址和读地址输出给读判断单元,并结合接收的读判断单元上一个时钟周期产生的读允许信号,输出相应的读使能和读地址给存储器控制单元;
所述读判断单元用于当接收到条件信息时,根据该条件信息以及对接收到的包尾地址和读地址比较的结果,产生并输出下一个时钟周期的读允许信号给读控制单元。
17、如权利要求15和16所述的电路,其特征在于,所述读判断单元用于当比较结果为读地址和包尾地址相同以及条件信息为有效控制信号或者写地址信息时,产生并输出下一个时钟周期的读允许有效信号给读控制单元。
18、如权利要求15和16所述的电路,其特征在于,所述读判断单元用于当比较结果为读地址和包尾地址不相同时,产生并输出下一个时钟周期的读允许有效信号给读控制单元。
19、如权利要求15和16所述的电路,其特征在于,所述读判断单元用于当比较结果为读地址和包尾地址相同以及条件信息为无效控制信号时,产生并输出下一个时钟周期的读允许无效信号给读控制单元。
20、如权利要求10所述的电路,其特征在于,所述存储模块具体包括:
EOP地址存储单元,用于存储每个逻辑通道的最后包尾地址;
读地址存储单元,用于存储每个逻辑通道访问外部存储器所需的读地址;
写地址存储单元,用于存储每个逻辑通道访问外部存储器所需的写地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100615800A CN100471175C (zh) | 2006-07-10 | 2006-07-10 | 一种报文存储转发的方法及报文存储转发电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100615800A CN100471175C (zh) | 2006-07-10 | 2006-07-10 | 一种报文存储转发的方法及报文存储转发电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1885827A true CN1885827A (zh) | 2006-12-27 |
CN100471175C CN100471175C (zh) | 2009-03-18 |
Family
ID=37583811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100615800A Active CN100471175C (zh) | 2006-07-10 | 2006-07-10 | 一种报文存储转发的方法及报文存储转发电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100471175C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009111971A1 (zh) * | 2008-03-10 | 2009-09-17 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN105242768A (zh) * | 2015-10-09 | 2016-01-13 | 天津国芯科技有限公司 | 可分时钟控制的低功耗高速ahb总线访问多块sram的桥装置 |
CN108268238A (zh) * | 2018-01-24 | 2018-07-10 | 深圳市风云实业有限公司 | 数据处理方法、装置、计算机存储介质及fifo设备 |
CN114449030A (zh) * | 2021-12-27 | 2022-05-06 | 天翼云科技有限公司 | 一种互联网服务系统、方法、电子设备及存储介质 |
-
2006
- 2006-07-10 CN CNB2006100615800A patent/CN100471175C/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009111971A1 (zh) * | 2008-03-10 | 2009-09-17 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
US8291167B2 (en) | 2008-03-10 | 2012-10-16 | Huawei Technologies Co., Ltd. | System and method for writing cache data and system and method for reading cache data |
CN105242768A (zh) * | 2015-10-09 | 2016-01-13 | 天津国芯科技有限公司 | 可分时钟控制的低功耗高速ahb总线访问多块sram的桥装置 |
CN105242768B (zh) * | 2015-10-09 | 2018-09-18 | 天津国芯科技有限公司 | 可分时钟控制的低功耗高速ahb总线访问多块sram的桥装置 |
CN108268238A (zh) * | 2018-01-24 | 2018-07-10 | 深圳市风云实业有限公司 | 数据处理方法、装置、计算机存储介质及fifo设备 |
CN114449030A (zh) * | 2021-12-27 | 2022-05-06 | 天翼云科技有限公司 | 一种互联网服务系统、方法、电子设备及存储介质 |
CN114449030B (zh) * | 2021-12-27 | 2024-03-12 | 天翼云科技有限公司 | 一种互联网服务系统、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100471175C (zh) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
WO2020199061A1 (zh) | 一种处理方法、装置及相关设备 | |
JP4044585B2 (ja) | キャッシュメモリおよびその制御方法 | |
US8694731B2 (en) | Hybrid automatic repeat request combiner and method for storing hybrid automatic repeat request data | |
US20230195637A1 (en) | On-chip cache apparatus, on-chip cache read-write method, and computer-readable medium | |
CN102725741B (zh) | 高速缓冲存储器控制方法、装置和系统 | |
US20190026225A1 (en) | Multiple chip multiprocessor cache coherence operation method and multiple chip multiprocessor | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
JP2013546095A (ja) | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 | |
CN107783727B (zh) | 一种内存设备的访问方法、装置和系统 | |
CN1885827A (zh) | 一种报文存储转发的方法及报文存储转发电路 | |
CN1262934C (zh) | 具有不同资源访问方案的系统集成代理程序 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
JP2016524251A (ja) | データ書き込み方法及びメモリシステム | |
WO2006062837A1 (en) | Optionally pushing i/o data into a processor's cache | |
CN1287444C (zh) | 一种用于访问系统芯片外sdram的控制器及其实现方法 | |
CN111949422B (zh) | 基于mq和异步io的数据多级缓存与高速传输记录方法 | |
CN102103549A (zh) | 一种缓存替换方法 | |
CN103123610B (zh) | 固态储存装置 | |
CN111290875A (zh) | Harq数据存储管理方法、装置和harq数据缓存器 | |
CN1949163A (zh) | 一种虚拟先入先出内存的实现方法和控制装置 | |
CN111857817B (zh) | 数据读取方法、数据读取装置及数据读取系统 | |
JP2006251837A (ja) | メモリ制御装置 | |
CN100338910C (zh) | 网络信息交换中多端口收发包数统计方法 | |
CN1295624C (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 |