一种节省查找表存储器和中间状态存储器的电路实现方法

文档序号:7956906阅读:178来源:国知局
专利名称:一种节省查找表存储器和中间状态存储器的电路实现方法
所属领域本发明涉及一种节省查找表存储器和中间状态存储器的电路实现方法,该方法适用于所有需要使用查找表存储器或中间状态存储器场合的逻辑IC或ASIC芯片电路设计,包括但不局限于报文存储转发、ATM交换或ATM信元重组等应用领域。属于逻辑IC或ASIC芯片的电路设计技术领域。
目前,根据需要查找的地址范围的大小与保存的中间状态信息的多少,通常有如下三种方案供选择使用(1)如果需要查找的地址范围很小,或者保存中间状态信息时所需要的存储容量很小,那么,该查找表存储器或中间状态存储器可以利用逻辑IC或ASIC芯片内部自身的存储器实现,其源地址作为存储器的物理地址,从该地址读出的存储器单元数据就是需要转发的目的地址或中间状态信息。
(2)如果需要查找的地址范围较大,或者在保存中间状态信息时所需要的存储容量较大,利用逻辑IC或ASIC芯片内部的存储器实现起来比较困难或者成本太高时,一般是在逻辑IC或ASIC芯片外部单独配置存储器作为查找表存储器或中间状态存储器。
(3)如果需要查找的地址范围非常大,配置一般的存储器实现起来成本太高或者不可能实现,如查找的地址范围为32位、64位等,则还需要配置内容寻址存储器(CAM)作为查找表存储器,该方法就不是以源地址作为存储器的物理地址去读存储器中的数据,而是直接将源地址和存储器中存储单元的内容进行匹配查找。
本发明的目的是这样实现的一种节省查找表存储器和中间状态存储器的电路实现方法,在涉及到报文存储转发、ATM信元交换或ATM信元重组类的应用场合的逻辑IC或ASIC芯片电路设计中,需要用大容量数据存储器来暂存报文数据,并且通常是把该数据存储器划分为若干个存储容量相同的缓冲区,使每个缓冲区可以存放一个报文,由于缓冲区的容量一般都是设置为2的整数次方,且其中的每个缓冲区的存储容量应大于最大报文数据的长度,这样就会因为缓冲区的存储容量大小和最大报文数据长度之间的差异,在每个缓冲区内都存在有一块闲置的存储区域,即存储器碎片,这些存储器碎片零散但有规则地分布在整个存储器中,在正常工作情况下是永远不会被访问到的;其特征在于该方法是把所述的数据存储器中的这些在存储正常报文时不会使用到的闲置的、零碎的存储区域,通过地址映射关系当作查找表存储器和中间状态存储器使用,同时不会降低该数据存储器允许存储报文的数量。
包括有下列步骤(1)因为存储器是分块使用的,首先将存储器划分为若干个存储容量相同的缓冲区,使每个缓冲区可以存放一个最长的报文;(2)统计存储器碎片的数量多少和空间大小由于其中的每个缓冲区的存储容量必须大于最大报文数据的长度,且缓冲区的容量一般都是设置为2的整数次方,这样就会因为缓冲区的存储容量大小和最大报文数据长度之间的差异,在每个缓冲区内都存在有一块闲置的存储区域,即存储器碎片,该存储器碎片在正常工作情况下是永远不会被访问到的,整个存储器内规则地分布着若干个这样的存储器碎片,其数量和缓冲区数量相等,而每个存储器碎片的存储空间大小则都是缓冲区的存储容量与最大报文数据长度之间的差;(3)将所述的每个缓冲区低位地址的存储空间用于存放报文,而将剩余的高位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用,用于保存查找表信息或报文暂存重组过程中的中间状态信息;所述的地址映射关系是将该数据存储器的物理地址(AddN)与报文的源地址(N)建立相应的对照检索途径,以便能够从报文的源地址得到存放该报文转发的目的地址或中间状态信息的存储器物理地址。
上述第(3)步骤中,每个缓冲区中数据存放的地址空间可以是在低位地址空间,也可以是在高位地址空间;当数据存放的地址空间是在缓冲区高位地址空间时,存储器碎片就位于其低位地址空间。
本发明的特点是充分利用数据存储器的使用特性,巧妙地将查找表存储器和中间状态存储器映射到数据存储器中的闲置无用的存储空间-存储器碎片之中,从而有效地充分利用数据存储器的整个存储空间,不再需要在外部专门为此配置存储器芯片,同时也不会降低该数据存储器存储报文的数量,还简化了单板的硬件电路设计,降低了成本。
图2是利用本发明方法的另一实施例的数据存储器地址分配示意图。
(2)因为存储器是分块使用的,所以要把该数据存储器划分为若干个存储容量相同的缓冲区,使这些缓冲区的数目大于或等于需要存放的报文的数目,以便在每个缓冲区可以存放一个报文。
(3)由于其中的每个缓冲区的存储容量必须大于最大报文数据的长度,且缓冲区的容量一般都是设置为2的整数次方,这样就会因为缓冲区的存储容量大小和最大报文数据长度之间的差异,使得每个缓冲区内都存在有一块闲置的存储区域,即存储器碎片,该存储器碎片在正常工作情况下是永远不会被访问到的。例如报文的最大长度为900字节,则缓冲区的容量一般就设置为1024(210)字节,这样在逻辑电路内部保存各个缓冲区的首地址而使用的存储器资源最少,对于缓冲区的使用和管理都比较方便;因为各个缓冲区首地址的低位地址固定为“0”,逻辑电路内部保存各个缓冲区的首地址时就不需要保存低位地址,只需要保存高位地址,在使用时直接在低位地址添加‘0’即可得到各缓冲区的首地址。由于报文数据的存储都要求连续的缓冲区,无法利用这些存储器碎片;但是查找表存储器和中间状态存储器都不需要连续的缓冲区,或者要求连续缓冲区的区域非常小,完全可以把数据存储器中这些正常报文存储不会用到的碎片存储空间通过巧妙的地址映射关系当作查找表存储器和中间状态存储器使用,同时也不会降低数据存储器允许存储报文的数量。本发明的关键是将所述的每个缓冲区低位地址的存储空间用于存放报文,而将剩余的高位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用,用于保存查找表信息或报文暂存重组过程中的中间状态信息。
当然,每个缓冲区中数据存放的地址空间也可以是在高位地址空间,而当数据存放的地址空间是在存储器的高位地址空间时,则存储器碎片就位于其低位地址空间;照样可以将剩余的低位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用。
(4)建立对应的地址映射关系,即在该数据存储器的物理地址(AddN)与报文的源地址(N)之间建立相应的对照检索途径,以便能够从该物理地址的存储器单元中读出报文转发的目的地址或中间状态信息。
需要注意的是,在存储正常报文数据的过程中必须严格控制其写入访问的存储器地址绝对不能越界,否则,就会出现将报文数据误写到查找表存储器或中间状态存储器之中的严重差错。
参见

图1,其是利用本发明方法的一个报文转发电路实施例中,数据存储器内部存储空间划分以后的一2K字节地址(高位地址为0 000 000)的分配示意图,该数据存储器的容量为1M字节(bytes),位宽为32比特(bits),按照每个缓冲区是2K字节进行划分,共有512个缓冲区。由于以太网报文的最大长度为1514字节,所以2K字节的缓冲区中实际存放数据的空间小于1536字节,这样就可以将每个缓冲区的低1536字节的存储空间用于存放报文,其剩余的高512字节就是所述的存储器碎片,该存储器碎片在正常工作情况下是永远不会被访问到的;而本发明的关键就是通过建立地址映射关系把该高512字节的存储器碎片当作查找表存储器使用,用于保存查找表信息。
图1展示了该2K字节缓冲区的碎片存储区域可保存128条查找表信息,对于整个存储器而言,共有512个这样的区域,总共可以保存65536条查找表信息。
在该实施例中,存储器的物理地址(AddN)为18bits,报文源地址(N)为16bits,报文源地址和存储器的物理地址的映射关系为AddN=N(157)&“11”&N(60)参见图2,其是利用本发明方法的另一个实施例-ATM信元重组的电路设计中,数据存储器内部存储空间划分以后的一2K字节地址(高位地址为000 000)的分配示意图,该数据存储器容量为512K字节(bytes),位宽为32比特(bit),按照2K字节一个缓冲区共划分为256个缓冲区。由于以太网报文的最大长度为1514字节,所以2K字节的缓冲区中实际存放数据的空间小于1536字节,这样就可以将每个缓冲区的低1536字节的存储空间用于存放报文,而剩余的存储器碎片-高512字节则用作中间状态存储器保存报文重组过程中的中间状态信息。本实施例中需要保存的中间状态信息有缓冲区有效标志V(1bit),报文长度计数值CNT(14bit),存储器地址MEM(17bit),奇偶校验计算的中间值CRC(32bit),因此,每条中间状态信息为8字节,需要占用2个存储器物理地址。
图2展示了该2K字节缓冲区的碎片存储区域可以保存64条中间状态信息,对于整个存储器而言,共有256个这样的区域,总共可以保存16384条中间状态信息。
在该实施例中,存储器的物理地址(AddN)为17bits,所用的虚通路标识VCI值的查找有效位(N)为14bits,每条中间状态信息需要占用2个存储器物理地址,VCI值的查找有效位(N)和存储器物理地址的映射关系为AddN(0)=N(136)&“11”&N(50)&‘0’AddN(1)=N(136)&“11”&N(50)&‘1’本发明的方法已经通过申请人的实践验证,实现了预期的发明目的。
权利要求
1.一种节省查找表存储器和中间状态存储器的电路实现方法,在涉及到报文存储转发、ATM信元交换或ATM信元重组类的应用场合的逻辑IC或ASIC芯片电路设计中,需要用大容量数据存储器来暂存报文数据,在存储报文数据过程中,在该数据存储器中产生一些零散地分布在整个存储器中的闲置存储区域,即存储器碎片,在正常工作情况下,这些存储器碎片是永远不会被访问到的;其特征在于该方法是把所述的数据存储器中的这些在存储正常报文时不会使用到的闲置的、零碎的存储区域,通过地址映射关系当作查找表存储器和中间状态存储器使用,同时不会降低该数据存储器允许存储报文的数量。
2.根据权利要求1所述的一种节省查找表存储器和中间状态存储器的电路实现方法,其特征在于包括有下列步骤(1)因为存储器是分块使用的,首先将存储器划分为若干个存储容量相同的缓冲区,使每个缓冲区可以存放一个最长的报文;(2)统计存储器碎片的数量多少和空间大小由于存储器中的每个缓冲区的存储容量必须大于最大报文数据的长度,且缓冲区的容量一般都是设置为2的整数次方,这样就会因为缓冲区的存储容量大小和最大报文数据长度之间的差异,在每个缓冲区内都存在有一块闲置的存储区域,即存储器碎片,该存储器碎片在正常工作情况下是永远不会被访问到的,整个存储器内规则地分布着若干个这样的存储器碎片,其数量和缓冲区数量相等,而每个存储器碎片的存储空间大小则都是缓冲区的存储容量与最大报文数据长度之间的差;(3)将所述的每个缓冲区低位地址的存储空间用于存放报文,而将剩余的高位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用,用于保存查找表信息或报文暂存重组过程中的中间状态信息;所述的地址映射关系是将该数据存储器的物理地址(AddN)与报文的源地址(N)建立相应的对照检索途径,以便能够从报文的源地址得到存放该报文转发的目的地址或中间状态信息的物理地址。
3.根据权利要求1所述的一种节省查找表存储器和中间状态存储器的电路实现方法,其特征在于上述第(3)步骤中,每个缓冲区中数据存放的地址空间可以是在低位地址空间,也可以是在高位地址空间;当数据存放的地址空间是在缓冲区的高位地址空间时,存储器碎片就位于其低位地址空间。
全文摘要
一种节省查找表存储器和中间状态存储器的电路实现方法,在报文存储转发、ATM交换或ATM信元重组等应用场合的逻辑IC或ASIC芯片设计中,除了要用大容量数据存储器暂存报文数据外,还经常用到查找表存储器和中间状态存储器,以便能通过报文(或ATM信元)的源地址查找到需要转发的目的地址和暂存重组过程中的中间信息。由于每个缓冲区的存储容量大小和最大报文数据长度之间的差异,在每个缓冲区内都有一块闲置的存储区域,即存储器碎片,该方法是将查找表存储器或中间状态存储器映射到该数据存储器的闲置存储单元,不再需要在外部特地单独配置存储器芯片,既有效利用了数据存储器,又不会降低数据存储器存储报文的数量,还简化单板设计,降低了成本。
文档编号H04L12/54GK1422049SQ01135089
公开日2003年6月4日 申请日期2001年11月27日 优先权日2001年11月27日
发明者涂君, 雷春 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1