CN1176539C - 一种节省查找表存储器和中间状态存储器的方法 - Google Patents
一种节省查找表存储器和中间状态存储器的方法 Download PDFInfo
- Publication number
- CN1176539C CN1176539C CNB01135089XA CN01135089A CN1176539C CN 1176539 C CN1176539 C CN 1176539C CN B01135089X A CNB01135089X A CN B01135089XA CN 01135089 A CN01135089 A CN 01135089A CN 1176539 C CN1176539 C CN 1176539C
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- message
- buffering area
- space
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种节省查找表存储器和中间状态存储器的电路实现方法,在报文存储转发、ATM交换或ATM信元重组等应用场合的逻辑IC或ASIC芯片设计中,除了要用大容量数据存储器暂存报文数据外,还经常用到查找表存储器和中间状态存储器,以便能通过报文(或ATM信元)的源地址查找到需要转发的目的地址和暂存重组过程中的中间信息。由于每个缓冲区的存储容量大小和最大报文数据长度之间的差异,在每个缓冲区内都有一块闲置的存储区域,即存储器碎片,该方法是将查找表存储器或中间状态存储器映射到该数据存储器的闲置存储单元,不再需要在外部特地单独配置存储器芯片,既有效利用了数据存储器,又不会降低数据存储器存储报文的数量,还简化单板设计,降低了成本。
Description
技术领域
本发明涉及一种节省查找表存储器和中间状态存储器的方法,该方法适用于所有需要使用查找表存储器或中间状态存储器场合的逻辑IC或ASIC芯片电路设计,包括但不局限于报文存储转发、ATM交换或ATM信元重组等应用领域。属于逻辑IC或ASIC芯片的电路设计技术领域。
背景技术
在涉及到报文存储转发、ATM交换或ATM信元重组等应用场合的逻辑IC或ASIC芯片的电路设计中,除了需要数据存储器用于暂存报文数据外,还经常需要用到查找表存储器,以便能够通过报文(或ATM信元)的源地址查找到需要转发的目的地址;在ATM信元重组的应用中,还需要中间状态存储器用于暂存重组过程中的中间信息:包括存储器地址、CRC校验值、报文长度计数值等等。由于组成一个报文的ATM信元并不一定是连续地接收到的,有可能在接收某一报文的过程中,还间隔地收到组成其他报文的ATM信元。因此,这些中间状态的信息在一个报文还没有完成重组时必须要保存起来,因为当下一个组成该报文的ATM信元到来参与该报文重组时,必须要使用这些信息。
目前,根据需要查找的地址范围的大小与保存的中间状态信息的多少,通常有如下三种方案供选择使用:
(1)如果需要查找的地址范围很小,或者保存中间状态信息时所需要的存储容量很小,那么,该查找表存储器或中间状态存储器可以利用逻辑IC或ASIC芯片内部自身的存储器实现,其源地址作为存储器的物理地址,从该地址读出的存储器单元数据就是需要转发的目的地址或中间状态信息。
(2)如果需要查找的地址范围较大,或者在保存中间状态信息时所需要的存储容量较大,利用逻辑IC或ASIC芯片内部的存储器实现起来比较困难或者成本太高时,一般是在逻辑IC或ASIC芯片外部单独配置存储器作为查找表存储器或中间状态存储器。
(3)如果需要查找的地址范围非常大,配置一般的存储器实现起来成本太高或者不可能实现,如查找的地址范围为32位、64位等,则还需要配置内容寻址存储器(CAM)作为查找表存储器,该方法就不是以源地址作为存储器的物理地址去读存储器中的数据,而是直接将源地址和存储器中存储单元的内容进行匹配查找。
发明内容
本发明的目的是提供一种节省查找表存储器和中间状态存储器的方法,该方法可以解决上述第(2)方案中需要在外部单独配置存储器芯片作为查找表存储器或中间状态存储器的缺点,巧妙地将查找表存储器或中间状态存储器映射到数据存储器的闲置存储单元-存储器碎片之中,不再需要特地另行在外部为此配置存储器芯片。这样,既有效地利用了数据存储器,同时又不会降低数据存储器存储报文的数量,还简化了单板设计,降低了成本。
本发明的目的是这样实现的:一种节省查找表存储器和中间状态存储器的方法,其特征在于:包括有下列步骤:
(1)首先将存储器划分为若干个存储容量相同的缓冲区,使每个缓冲区可以存放一个最长的报文;
(2)统计存储器碎片的数量多少和空间大小,其中所述存储器碎片是由于缓冲区的存储容量大小和最大报文数据长度之间的差异而存在于缓冲区中的空闲存储区域,其数量和缓冲区数量相等,而每个存储器碎片的存储空间大小是缓冲区的存储容量与最大报文数据长度之间的差;
(3)将所述的每个缓冲区低位地址的存储空间用于存放报文,而将剩余的高位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用,用于保存查找表信息或报文暂存重组过程中的中间状态信息;所述的地址映射关系是将该数据存储器的物理地址与报文的源地址建立相应的对照检索途径,以便能够从报文的源地址得到存放该报文转发的目的地址或中间状态信息的物理地址。
上述第(3)步骤中,每个缓冲区中数据存放的地址空间可以是在低位地址空间,也可以是在高位地址空间;当数据存放的地址空间是在缓冲区的高位地址空间时,存储器碎片就位于其低位地址空间。
本发明的特点是充分利用数据存储器的使用特性,巧妙地将查找表存储器和中间状态存储器映射到数据存储器中的闲置无用的存储空间-存储器碎片之中,从而有效地充分利用数据存储器的整个存储空间,不再需要在外部专门为此配置存储器芯片,同时也不会降低该数据存储器存储报文的数量,还简化了单板的硬件电路设计,降低了成本。
附图说明
图1是利用本发明方法的第一实施例的数据存储器地址分配示意图。
图2是利用本发明方法的另一实施例的数据存储器地址分配示意图。
具体实施方式
本发明是一种节省查找表存储器和中间状态存储器的方法。首先介绍本发明的工作机理和实现步骤:
(1)在涉及到报文存储转发、ATM信元交换或ATM信元重组等应用场合的逻辑IC或ASIC芯片电路设计中,经常需要用到大容量数据存储器来暂存报文数据,所以,首先要根据需要存储转发的报文大小、进行交换或重组的ATM信元的多少选择相应的大容量的数据存储器。
(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(15:7)&“11”&N(6:0)
参见图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(13:6)&“11”&N(5:0)&‘0’
AddN(1)=N(13:6)&“11”&N(5:0)&‘1’
本发明的方法已经通过申请人的实践验证,实现了预期的发明目的。
Claims (2)
1、一种节省查找表存储器和中间状态存储器的方法,其特征在于:包括有下列步骤:
(1)首先将存储器划分为若干个存储容量相同的缓冲区,使每个缓冲区可以存放一个最长的报文;
(2)统计存储器碎片的数量多少和空间大小,其中所述存储器碎片是由于缓冲区的存储容量大小和最大报文数据长度之间的差异而存在于缓冲区中的空闲存储区域,其数量和缓冲区数量相等,而每个存储器碎片的存储空间大小是缓冲区的存储容量与最大报文数据长度之间的差;
(3)将所述的每个缓冲区低位地址的存储空间用于存放报文,而将剩余的高位地址的碎片存储空间通过地址映射关系当作查找表存储器或中间状态存储器使用,用于保存查找表信息或报文暂存重组过程中的中间状态信息;所述的地址映射关系是将该数据存储器的物理地址与报文的源地址建立相应的对照检索途径,以便能够从报文的源地址得到存放该报文转发的目的地址或中间状态信息的物理地址。
2、根据权利要求1所述的一种节省查找表存储器和中间状态存储器的方法,其特征在于:上述第(3)步骤中,每个缓冲区中数据存放的地址空间可以是在低位地址空间,也可以是在高位地址空间;当数据存放的地址空间是在缓冲区的高位地址空间时,存储器碎片就位于其低位地址空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB01135089XA CN1176539C (zh) | 2001-11-27 | 2001-11-27 | 一种节省查找表存储器和中间状态存储器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB01135089XA CN1176539C (zh) | 2001-11-27 | 2001-11-27 | 一种节省查找表存储器和中间状态存储器的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1422049A CN1422049A (zh) | 2003-06-04 |
CN1176539C true CN1176539C (zh) | 2004-11-17 |
Family
ID=4672944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB01135089XA Expired - Fee Related CN1176539C (zh) | 2001-11-27 | 2001-11-27 | 一种节省查找表存储器和中间状态存储器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1176539C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940624A (zh) * | 2017-02-21 | 2017-07-11 | 上海顺久电子科技有限公司 | 一种查找表lut存储和处理方法、装置 |
CN109558091B (zh) * | 2018-12-11 | 2020-10-13 | 广东省新一代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
-
2001
- 2001-11-27 CN CNB01135089XA patent/CN1176539C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1422049A (zh) | 2003-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
US7043494B1 (en) | Fast, deterministic exact match look-ups in large tables | |
US7085275B2 (en) | Method for accessing a non-symmetric dual-slot address table and switching apparatus using same | |
Eatherton et al. | Tree bitmap: hardware/software IP lookups with incremental updates | |
US8780926B2 (en) | Updating prefix-compressed tries for IP route lookup | |
CN101141389B (zh) | 增强多位Trie树查找方法和装置 | |
US20020138648A1 (en) | Hash compensation architecture and method for network address lookup | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US11036403B2 (en) | Shared memory block configuration | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
CN1216473C (zh) | 支持多个下一跳的三态内容可寻址存储器查找方法及系统 | |
US6697923B2 (en) | Buffer management method and a controller thereof | |
CN1176539C (zh) | 一种节省查找表存储器和中间状态存储器的方法 | |
Kaxiras et al. | IPStash: a set-associative memory approach for efficient IP-lookup | |
CN1538663A (zh) | 一种采用哈希链表查找路由表项的方法 | |
CN1517881A (zh) | 存储器管理空闲指针库 | |
CN1731529A (zh) | 先入先出数据缓存的方法及全满空间访问先入先出存储器 | |
CN100477644C (zh) | 一种路由存储方法及装置 | |
CN1166134C (zh) | 用于atm交换结构中的流水线式共享存储器读写方法 | |
CN100499563C (zh) | 提高分组应用的存储器存取效率 | |
CN1131480C (zh) | 缓冲器管理装置及改进缓冲器的使用率及存取性能的方法 | |
KR100340953B1 (ko) | 초고속 라우터 및 그 방법 | |
CN1099792C (zh) | 单板大容量数字时分交换网络 | |
CN1134177C (zh) | 一种分段式ip路由线速率查表方法 | |
CN1310547C (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20041117 Termination date: 20161127 |