CN1434603A - 一种查找表电路的实现方法及查找表电路 - Google Patents
一种查找表电路的实现方法及查找表电路 Download PDFInfo
- Publication number
- CN1434603A CN1434603A CN02100754A CN02100754A CN1434603A CN 1434603 A CN1434603 A CN 1434603A CN 02100754 A CN02100754 A CN 02100754A CN 02100754 A CN02100754 A CN 02100754A CN 1434603 A CN1434603 A CN 1434603A
- Authority
- CN
- China
- Prior art keywords
- source address
- port
- lookup table
- address
- look
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种查找表电路的实现方法,包括:设置存储器,作为查找表电路的查找表存储器;设置状态机,作为查找表电路的查找表状态机,使其能够访问查找表存储器;将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入该存储器,当需要通过数据的源地址获取其目的地址时,查找表状态机对查找表存储器中的源地址的进行匹配查找,从而找到该数据目的地址;采用上述方案实现查找表电路,可以所查找表存储器的容量降到最低,在绝大部分的应用中都可以把查找表存储器放在逻辑IC或ASIC芯片内部实现,进而简化单板设计,降低成本;本发明还提供了一种按上述方法实现的查找表电路,该电路结构简单、查找速度快。
Description
技术领域
本发明涉及一种查找表电路的实现方法及使用该方法制作的查找表电路。
背景技术
在涉及到报文存储转发、交换或信元重组等应用场合的逻辑集成电路(IC)或专用集成电路(ASIC)芯片的设计中,经常需要用到查找表电路以便通过报文(或ATM信元,ATM:异步传输模式)的源地址查找到需要转发的目的地址。查找表电路通常是由查找表存储器和相应的外围电路实现。根据需要查找的地址范围不同,如果需要查找的地址范围很小,查找表存储器可以用逻辑IC或ASIC芯片内部的存储器实现,该方法是把报文(或ATM信元)的源地址作为存储器的物理地址,从该地址读出的存储器单元数据就是需要查找的目的地址;如果需要查找的地址范围较大,用逻辑IC或ASIC芯片内部的存储器实现比较困难或成本太高,此时一般在逻辑IC或ASIC芯片外部配置存储器芯片作为查找表存储器,该方法也是把报文(或ATM信元)的源地址作为存储器的物理地址,从该地址读出的存储器单元数据就是需要查找的目的地址,由于需要访问外部存储器芯片,该方法的查找速度较慢;如果需要查找的地址范围非常大,配置通常的外部存储器芯片实现成本太高或不可能实现,如查找的地址范围为32位,64位等,则需要配置内容寻址存储器(CAM)作为查找表存储器,该方法直接将报文(或ATM信元)的源地址和存储器中存储单元的内容进行匹配以查找目的地址,但内容寻址存储器价格较高,在使用上也比较麻烦。
发明内容
本发明的目的在于提供一种查找表电路的实现方法以及查找表电路,使用该方法实现查找表电路成本低、容易实现,并且所实现的查找表电路结构简单、查找速度快。
为达到上述目的,本发明提供的查找表电路的实现方法,包括:
(1)设置存储器,作为查找表电路的查找表存储器,设定数据的源地址与目的地址之间的对应关系,对源地址进行排序,将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入该存储器;
(2)设置状态机,作为查找表电路的查找表状态机,使其能够访问查找表存储器,当需要通过数据的源地址获取其目的地址时,通过对查找表存储器中的源地址的匹配查找,从而找到该数据目的地址。
所述设置存储器为设置双端口随机存储器(RAM),将双端口RAM的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。
所述对源地址进行排序按照源地址从大到小的顺序进行。
所述对源地址进行排序也可以按照源地址从小到大的顺序进行。
所述对查找表存储器中的源地址的匹配查找,按照折半查找方法进行。
本发明还提供了按照权利要求1所述的方法构造的查找表电路,包括:查找表存储器和查找表状态机,其中:
查找表存储器,用于按数据的源地址与目的地址具有的对应关系,以源地址排序的顺序存储源地址和目的地址;
查找表状态机,用于根据系统提供的数据源地址访问查找表存储器,通过对查找表存储器中源地址的匹配查找,从而找到目的地址,并将该目的地址反馈到系统。
所述查找表存储器为双端口随机存储器(RAM),将双端口RAM的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。
由于本发明通过设置查找表存储器和设置查找表状态机的方法构造查找表电路,将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入该存储器;当需要通过数据的源地址获取其目的地址时,通过折半查找的方法对查找表存储器中的源地址的匹配查找,从而找到该数据的目的地址,因此采用本发明可以将所需要的查找表存储器的容量要求降到最低,在绝大部分的应用中都可以把查找表存储器放在逻辑IC或ASIC芯片内部实现,进而简化了单板设计,降低了成本,并且所实现的查找表电路结构简单、查找速度快。
附图说明
图1是本发明所述方法实施例流程图;
图2是本发明所述方法提供的查找表电路实施例逻辑图;
图3是图1所述实施例中查找表存储器可以采用的第一种数据结构图;
图4是图1所述实施例中查找表存储器可以采用的第二种数据结构图;
图5是图1所述实施例中查找表存储器可以采用的第三种数据结构图;
图6是图1所述实施例中查找表存储器可以采用的第四种数据结构图;
图7是图1所述实施例中查找表存储器可以采用的第五种数据结构图;
图8是应用图1所述实施例实现的ATM交换电路的实例图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的描述。
图1是本发明所述方法实施例流程图。按照图1实施本发明包括两个步骤:第1步,设置存储器,作为查找表电路的查找表存储器,设定数据的源地址与目的地址之间的对应关系,对源地址进行排序,将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入该存储器。所述查找表存储器可以在逻辑电路(IC)或专用集成电路(AISC)内部实现,所述查找表存储器如果采用双端口RAM,将双端口RAM的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。该步骤中所述对源地址进行排序按照源地址从小到大的顺序进行,如果所设置的存储器的数据宽度不小于源地址和目的地址的宽度之和,则所述将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入查找表存储器,就可以按照源地址的排序顺序,将源地址和与其对应的目的地址存储到查找表存储器的相同的地址单元中,参考图3。
上述设置存储器也可以用普通单端口RAM实现,但也必须提供系统访问端口和查找表状态机访问端口,其中系统访问端口用于对查找表存储器写入配置数据和读出配置数据,查找表状态机访问端口用于使查找表状态机通过该端口读取查找表存储器中的配置数据。因此当查找表存储器用普通单端口RAM实现时,必须采用一定的控制切换逻辑防止系统和查找表状态机同时访问查找表存储器。
第2步,设置状态机,作为查找表电路的查找表状态机,在系统完成对查找表存储器的数据配置后,应该输出一个使能信号允许查找表状态机进入正常工作状态,使其能够访问查找表存储器,当需要通过数据的源地址获取其目的地址时,通过对查找表存储器中的源地址的匹配查找,从而找到该数据目的地址。所述对查找表存储器中的源地址的匹配查找,按照折半查找方法进行。
本例中查找表状态机按照折半查找方法来查找匹配的地址,可以依照的查找步骤如下:
(1)设置查找表存储器地址最高位为“1”,其余的低位地址全为“0”,读取查找表中相应的源地址数据与接收到的源地址比较,如果相等,则目的地址就是该源地址后面对应的目的地址;状态机完成查找,跳转出循环查找状态;如果接收到的源地址比查找表中的源地址小,则查找表存储器地址的最高位为0;如果接收到的源地址比查找表中的源地址大,则查找表存储器地址的最高位为1;在后面的查找过程中查找表存储器地址最高位不再变化。
(2)设置查找表存储器地址次高位为“1”,其余的低位地址全为“0”,读取查找表中相应的源地址数据与接收到的源地址比较,如果相等,则目的地址就是该源地址后面对应的目的地址;状态机完成查找,跳转出循环查找状态;如果接收到的源地址比查找表中的源地址小,则查找表存储器地址的次高位为0;如果接收到的源地址比查找表中的源地址大,则查找表存储器地址的次高位为1;在后面的查找过程中查找表存储器地址次高位不再变化。
(3)按照上面的步骤依此类推,每次比较判断操作可以确定一个查找表存储器的地址位,查找一个深度为2m的查找表最多只需要进行m+1次查找比较操作。由于可能出现没有匹配项的情况,当判断最低位地址时,如果最低地址位为1的查找表数据不匹配还必须比较最低地址位为0查找表数据。
需要指出,在查找表存储器的数据配置中,源地址在查找表存储器中的物理地址是按照大小顺序排列的,可以是最大的排在最后面,最小的排在最前面,也可以是最大的排在最前面,最小的排在最后面,只要在查找表状态机进行地址查找时执行不同的处理即可。因此在上述步骤1中,所述对源地址进行排序也可以按照源地址从大到小的顺序进行。
所述将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入查找表存储器,也可以是按照源地址的排序顺序,将源地址和与其对应的目的地址存储到查找表存储器的相邻的地址单元中,参考图4和图5。当然源地址和目的地址的存储还可以按照源地址的排序顺序,将源地址按序存储到查找表存储器相邻的存储单元中,将与源地址对应的目的地址按源地址的排序顺序存储到查找表存储器的相邻的地址单元中,参考图6和图7。
这样,查找表存储器的数据结构及其数据配置除了可以采用图3结构外,也可以采用图4、5、6或图7的结构,还可以采用其他任意构造的对应关系,但都必须满足源地址在查找表储存器中的物理地址是按照大小顺序排列的和源地址的存储器中的物理地址与目的地址的存储器物理地址有明确的对应关系这两个条件。
本发明提供的上述方法构造的查找表电路,包括:查找表存储器3和查找表状态机4,参考图2,其中:
查找表存储器3,用于按源地址与目的地址具有的对应关系,以源地址排序的顺序存储源地址和目的地址。所述查找表存储器3为可以提供2个端口的随机存储器,将此存储器的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。
查找表状态机4,用于根据系统提供的数据源地址访问查找表存储器,通过采用折半查找算法对查找表存储器中源地址的匹配查找,从而找到目的地址,并将该目的地址反馈到系统。
本发明提供的查找表电路适用于所有需要使用查找表电路的逻辑IC或ASIC芯片设计,包括但可以不限于报文存储转发、交换或信元重组等应用场合。由于执行地址查找操作需要一定的时间,为了避免因此而影响系统性能,可以采用并行处理的方法。由于在报文或ATM信元的数据结构中都是源地址在前面,后面是报文的数据或ATM信元净荷,这样当接收状态机接收到前面的源地址时立即输出给查找表电路查找目的地址,在报文的数据或ATM信元净荷的接收过程中查找表状态机同时执行地址查找操作,在绝大部分应用的情况下,地址查找操作的时间远远小于报文数据或ATM信元净荷的接收时间,这样就不会因为地址查找操作而影响系统性能。
图8是应用图1所述实施例实现的ATM交换电路的实例图。图中虚线框中的电路逻辑框图就是查找表电路,它由查找表状态机和查找表存储器组成;接收状态机完成外部输入接口的时序配合,接收外部输入接口输入的ATM信元,其中信元头送给查找表状态机,信元净荷送到接收FIFO队列;查找表状态机从查找表存储器中查找到目的地址后将目的地址输出到主处理状态机,主处理状态机再将该ATM信元交换后的目的地址和接收FIFO队列中的信元净荷组装成ATM信元送到发送FIFO队列,发送状态机完成外部输出接口的时序配合,把发送FIFO队列中的ATM信元输出到外部输出接口。
从上述本发明采用的方案可以看出,本发明可将所需要的查找表存储器容量要求降到最低限度,因此在绝大部分的应用中都可以把查找表存储器放在逻辑IC或ASIC芯片内部实现,如果在某些特殊应用中要求支持的连接数非常多,导致需要的查找表存储器容量较大,不能放在逻辑IC或ASIC芯片内部,也可以在逻辑IC或ASIC芯片外部配置一片存储器芯片做为查找表存储器,尽管由于需要访问外部存储器芯片,会使查找速度会变慢,但在采用并行处理的情况下,只要查找时间小于数据净荷写入的时间就不会影响系统性能。
如果系统对性能要求不高,也可以将查找表状态机放在主处理状态机中实现,这样整体电路结构可以简化。
Claims (8)
1、一种查找表电路的实现方法,包括:
(1)设置存储器,作为查找表电路的查找表存储器,设定数据的源地址与目的地址之间的对应关系,对源地址进行排序,将源地址和目的地址按照源地址的排序顺序以及源地址和目的地址之间的对应关系存入该存储器;
(2)设置状态机,作为查找表电路的查找表状态机,使其能够访问查找表存储器,当需要通过数据的源地址获取其目的地址时,通过对查找表存储器中的源地址的匹配查找,从而找到该数据目的地址。
2、根据权利要求1所述的查找表电路的实现方法,其特征在于:所述设置存储器为设置双端口随机存储器(RAM),将双端口RAM的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。
3、根据权利要求1所述的查找表电路的实现方法,其特征在于:所述设置存储器为设置单端口RAM,将单端口RAM的端口设置为系统和查找表状态机共同访问的端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据,以及使查找表状态机通过该端口读取该查找表存储器中的配置数据。
4、根据权利要求1所述的查找表电路的实现方法,其特征在于:所述对源地址进行排序按照源地址从大到小的顺序进行。
5、根据权利要求1所述的查找表电路的实现方法,其特征在于:所述对源地址进行排序按照源地址从小到大的顺序进行。
6、根据权利要求1、2、3、4或5所述的查找表电路的实现方法,其特征在于:所述对查找表存储器中的源地址的匹配查找,按照折半查找方法进行。
7、一种按照权利要求1所述的方法构造的查找表电路,包括:查找表存储器和查找表状态机,其中:
查找表存储器,用于按数据的源地址与目的地址具有的对应关系,以源地址排序的顺序存储源地址和目的地址;
查找表状态机,用于根据系统提供的数据源地址访问查找表存储器,通过对查找表存储器中源地址的匹配查找,从而找到目的地址,并将该目的地址反馈到系统。
8、根据权利要求7所述的查找表电路,其特征在于:所述查找表存储器为双端口随机存储器(RAM),将双端口RAM的一个端口设置为系统访问端口,以使系统通过该端口对查找表存储器写入配置数据和读出配置数据;另一个端口设置为查找表状态机访问端口,以使查找表状态机通过该端口读取该查找表存储器中的配置数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021007543A CN100379212C (zh) | 2002-01-23 | 2002-01-23 | 一种查找表电路的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021007543A CN100379212C (zh) | 2002-01-23 | 2002-01-23 | 一种查找表电路的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1434603A true CN1434603A (zh) | 2003-08-06 |
CN100379212C CN100379212C (zh) | 2008-04-02 |
Family
ID=27627239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021007543A Expired - Fee Related CN100379212C (zh) | 2002-01-23 | 2002-01-23 | 一种查找表电路的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100379212C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957178A (zh) * | 2011-08-24 | 2013-03-06 | 上海晨兴希姆通电子科技有限公司 | 改进的折半查找算法在充电管理中的应用方法 |
CN107851082A (zh) * | 2015-07-27 | 2018-03-27 | 大陆汽车有限公司 | 用于在总线处运行的集成电路和用于运行该集成电路的方法 |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
CN114615195A (zh) * | 2022-02-25 | 2022-06-10 | 阳光凯讯(北京)科技有限公司 | 用于fpga的以太网五元组快速匹配查找方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274469A (en) * | 1991-12-23 | 1993-12-28 | Eastman Kodak Company | Sample rate converter circuit for image data |
GB9622728D0 (en) * | 1996-10-31 | 1997-01-08 | Discovision Ass | Timing synchronization in a reciever employing orthogonal frequency division mutiplexing |
AU2562899A (en) * | 1998-01-26 | 1999-08-09 | Chameleon Systems, Inc. | Reconfigurable logic for table lookup |
-
2002
- 2002-01-23 CN CNB021007543A patent/CN100379212C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957178A (zh) * | 2011-08-24 | 2013-03-06 | 上海晨兴希姆通电子科技有限公司 | 改进的折半查找算法在充电管理中的应用方法 |
CN102957178B (zh) * | 2011-08-24 | 2015-09-09 | 上海晨兴希姆通电子科技有限公司 | 改进的折半查找算法在充电管理中的应用方法 |
CN107851082A (zh) * | 2015-07-27 | 2018-03-27 | 大陆汽车有限公司 | 用于在总线处运行的集成电路和用于运行该集成电路的方法 |
CN107851082B (zh) * | 2015-07-27 | 2021-03-30 | 大陆汽车有限公司 | 用于在总线处运行的集成电路和用于运行该集成电路的方法 |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
WO2020119310A1 (zh) * | 2018-12-11 | 2020-06-18 | 广东省新一代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
CN109558091B (zh) * | 2018-12-11 | 2020-10-13 | 广东省新一代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
CN114615195A (zh) * | 2022-02-25 | 2022-06-10 | 阳光凯讯(北京)科技有限公司 | 用于fpga的以太网五元组快速匹配查找方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100379212C (zh) | 2008-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8493808B2 (en) | Data flow control in multiple independent port | |
US8819359B2 (en) | Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module | |
US6212597B1 (en) | Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like | |
US20050044134A1 (en) | High-performance hashing system | |
CN104471555B (zh) | 多级互联系统及多级互联方法 | |
CN1574785A (zh) | 使用缓存来维护分组顺序的方法和系统 | |
US9436432B2 (en) | First-in first-out (FIFO) memory with multi-port functionality | |
US20190361631A1 (en) | Storage device, chip and method for controlling storage device | |
CN106416151A (zh) | 用于分组处理的基于多表哈希查找 | |
US8214509B2 (en) | Receive coalescing and direct data placement | |
CN1434603A (zh) | 一种查找表电路的实现方法及查找表电路 | |
US6055234A (en) | ATM switching control method and ATM switch having shared cell memory | |
CN1731529A (zh) | 先入先出数据缓存的方法及全满空间访问先入先出存储器 | |
CN1953418A (zh) | 处理信息分组的方法和使用该方法的电信设备 | |
US6034965A (en) | Multi-stream associative memory architecture for computer telephony | |
EP2399258A1 (en) | Multimode accessible storage facility | |
US20120198145A1 (en) | Memory access apparatus and display using the same | |
CN100487697C (zh) | 一种应用改进的哈希方法进行查找的方法 | |
US7756131B2 (en) | Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof | |
CN110704419A (zh) | 数据结构、数据索引方法、装置及设备、存储介质 | |
CN1302017A (zh) | 具有双重高速缓冲映射存储器的高速缓冲存储器系统 | |
WO2001065564A1 (en) | Memory with call out function | |
CN1176539C (zh) | 一种节省查找表存储器和中间状态存储器的方法 | |
CN117424865B (zh) | 报文地址管理装置、网络处理芯片、报文读取及存储方法 | |
CN1256661C (zh) | 处理器存储器数据输入和输出的方法和实施该方法的结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |
Granted publication date: 20080402 Termination date: 20180123 |
|
CF01 | Termination of patent right due to non-payment of annual fee |