CN107622077B - 检索装置和半导体装置 - Google Patents

检索装置和半导体装置 Download PDF

Info

Publication number
CN107622077B
CN107622077B CN201710575752.4A CN201710575752A CN107622077B CN 107622077 B CN107622077 B CN 107622077B CN 201710575752 A CN201710575752 A CN 201710575752A CN 107622077 B CN107622077 B CN 107622077B
Authority
CN
China
Prior art keywords
search
memory
associative memory
generation unit
data
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.)
Active
Application number
CN201710575752.4A
Other languages
English (en)
Other versions
CN107622077A (zh
Inventor
三木武夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN107622077A publication Critical patent/CN107622077A/zh
Application granted granted Critical
Publication of CN107622077B publication Critical patent/CN107622077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/01Modifications for accelerating switching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种检索装置和半导体装置,该检索装置具有较少存储器消耗,包括:利用第一检索关键字检索的第一关联存储器;利用第二检索关键字检索的第二关联存储器;连结检索数据生成单元,其基于命中信息生成第一检索信息,命中信息包括第一关联存储器中的多个命中;以及检索关键字生成单元,其包括第一检索关键字生成单元和第二检索关键字生成单元,所述第一检索关键字生成单元生成作为第一检索关键字的检索数据的一部分,所述第二检索关键字生成单元生成第一检索信息和作为第二检索关键字的检索数据的另一部分。

Description

检索装置和半导体装置
相关申请的交叉引用
包括说明书、附图和摘要的、于2016年7月14日提交的日本专利申请No.2016-139220的公开通过引用整体并入本文。
背景技术
本公开涉及一种检索装置,并且可以被应用于例如包括关联存储器的检索装置。
关联存储器例如由内容可寻址存储器(以下简称为CAM)构成。对于检索(输入)数据,CAM分别生成存储检索(输入)数据的CAM的索引(地址)。CAM用于广泛的应用,例如包括模式匹配、互联网的路由器、处理器的高速缓存、TLB(翻译后备缓冲器)、数据压缩、数据库的加速器、神经网络和存储器补丁。CAM通常分为两种类型,即二元CAM(以下称为“BCAM”)和三元CAM(以下称为“TCAM”)。BCAM在每个单元中存储0和1。TCAM在每个单元中存储0、1和*。“*”表示“不关心”,并且匹配0和1两者。
与本公开有关的技术是例如美国专利No.6,874,016和No.7,024,515。
发明内容
在规则表中,诸如网络仪器中定义的ACL(访问控制列表)例如,元组的示例,长而复杂的描述正在增加,因为随着关于耦合在网络上的仪器之间的耦合的信息变得更加复杂,需要更详细和更细碎的设置。进一步地,近年来要耦合的仪器的数量急剧增加,因此期望快速扩大关联存储器中所需的可存储规则的最大数量。
本公开的问题是提供一种具有较少存储器消耗的检索装置。
从本说明书和附图的描述中,其他问题和新颖特征将变得显而易见。
以下简要描述本公开的典型的概要。
根据实施例的检索装置通过分割表将表存储在第一关联存储器和第二关联存储器中,按照预设规则通过使用分类或逻辑压缩的功能来合并来自第一关联存储器的多匹配输出的结果,并将合并结果移交给第二关联存储器。
根据上述检索装置,可以有效地使用存储器。
附图说明
图1是ACL表的示例的说明图。
图2是范围[17-33]的表达式与不关心表达式之间的关系的说明图。
图3是范围[6-30]的表达式与不关心表达式之间的关系的说明图。
图4是根据比较例将数据存储到关联存储器中的方法的说明图。
图5A是根据比较例的网络装置中的检索操作期间的数据流的说明图。
图5B示出了图5A中的检索数据和第一检索关键字。
图5C示出了图5A中的关联存储器。
图5D示出了图5A中的动作存储器部分。
图6是根据实施例的用于将数据存储到关联存储器中的方法的说明图。
图7A是根据实施例的网络装置中的检索操作期间的数据流的说明图。
图7B示出了图7A中的检索数据、第一检索关键字、第一检索信息和第二检索信息。
图7C示出了图7A中的第一关联存储器和连结(concatenate)检索数据生成单元。
图7D示出了图7A中的第二关联存储器。
图7E示出了图7A中的动作存储器部分。
图8是表示图7A的检索关键字生成单元的构成示例的框图。
图9是表示图7A的第一关联存储器的构成示例的框图。
图10是表示图7A的第二关联存储器的构成示例的框图。
图11是示出图7A中的连结检索数据生成单元的构成示例的框图。
图12是表示图7A的动作存储部分的构成示例的框图。
图13示出了图11中的连结检索数据生成单元的第一示例。
图14示出了图11中的连结检索数据生成单元的第二示例。
图15A示出了图11中的连结检索数据生成单元的第三示例。
图15B示出了图15A中的存储器网格状寄存器的构成。
图16示出了图15B中的存储器网格状寄存器的第一修改例。
图17示出了图15B中的存储器网格状寄存器的第二修改例。
图18示出了根据第一耦合示例的关联存储器部分。
图19示出了根据第二耦合示例的关联存储器部分。
图20示出了根据第三耦合示例的关联存储器部分。
图21示出了根据第四耦合示例的关联存储器部分。
图22示出了根据第五耦合示例的关联存储器部分。
图23示出了根据第六耦合示例的关联存储器部分。
图24示出了根据第一安装示例的半导体装置的横截面图。
图25示出了根据第二安装示例的半导体装置的横截面图。
图26示出了根据第三安装示例的半导体装置的横截面图。
图27示出了根据第四安装示例的半导体装置的横截面图和展开平面图。
图28是ACL表中的范围表达式与不关心表达式的之间的关系的说明图。
图29A示出了ACL表的示例。
图29B示出了图29A的ACL表存储在比较例的关联存储器中的示例。
图30是根据修改例将数据存储到第一关联存储器中的方法的说明图。
图31是关于根据修改例的连结检索数据生成单元的先前程序的说明图。
图32是根据修改例将数据存储到第二关联存储器中的方法的说明图。
图33A是根据修改例的网络装置中的检索操作期间的数据流的说明图。
图33B示出了图33A中的检索数据、第一检索关键字、第一检索信息和第二检索信息。
图33C示出图33A中的第一关联存储器和连结检索数据生成单元。
图33D示出了图33A中的第二关联存储器和动作存储器部分。
具体实施方式
以下,参照附图描述比较例、实施例、示例和修改例。在下面的描述中,相同的部件用相同的附图标记标注,并且冗余的描述可能被省略。
首先,参考图1至图3描述ACL表。图1示出了ACL表的示例。图2示出了图1中的范围[17-33]的表达式与不关心表达式之间的关系。图3示出了图1中的范围[6-30]的表达式与不关心表达式之间的关系。
在图1所示的ACL表中存储了源端口号(Src.Port)、目的地端口号(Dst.Port)、源IP地址(Src.Add)、目的地IP地址(Dst.Add)、协议类型(Proto或Protocol),以及动作(Action)。作为目的地端口号(Dst.Port)的[17-33]是范围表达式,并且在使用不关心表达式(*)的情况下可以如图2所示进行描述。作为目的地端口号(Dst.Port)的[6-30]在使用不关心表达式的情况下也可以如图3所示进行描述。请注意,“16'b”表示16位二进制表达式。
接下来,参照图4和图5A至图5D描述本申请的发明人研究的技术(以下称为比较例)。图4是根据比较例将数据存储到关联存储器中的方法的说明图。图5A是根据比较例的网络装置中的检索操作期间的数据流的概念图。图5B示出了图5A中的检索数据和第一检索关键字。图5C示出了图5A中的关联存储器。图5D示出了图5A中的动作存储器单元。
在比较例中,描述使用TCAM作为关联存储器的示例。如图4所示,在比较例中,执行检索操作,同时如图1所示的ACL表被存储为一个数据库。因此,为了在TCAM的ACL表中存储五个规则,消耗了14个条目。这是因为分别需要5个条目和6个条目来在TCAM中存储具有如图2和3所示的范围[17-33]和[6-30]的规则描述。进一步地,在IPv4的规范中,例如假设源端口号(Src.Port)和目的地端口号(Dst.Port)每个使用16位,源IP地址(Src.Add)和目的地IP地址(Dst.Add)每个使用32位,以及协议类型(Proto)使用8位,则一个条目总共需要104位宽度。因此,作为存储器总共需要104位×14=1,456位。
这里应该注意的是源IP地址(Src.Add)部分和目的地IP地址(Dst.Add)部分。在这些部分中,需要将相同的数据放入使用针对一个规则的范围表达式的所有条目中。因此,在由于范围表达式而使用多条线来表达一个规则的情况下,发生冗余的存储器消耗。ACL表中的动作存储在动作存储器(Action Memory)单元中。
根据图5A的比较例的网络装置包括检索装置1R和网络控制装置2。检索装置1R包括关联存储器单元10R和动作存储器单元20。关联存储器单元10R包括关联存储器11R和检索关键字生成单元14R。网络控制装置(NCU)2由NPU(网络处理器)、ASIC等构成。
这里描述检索装置1R的主要操作流程。
(1)网络控制装置2发送如图5B所示作为检索对象的数据(检索数据)到检索装置1R的关联存储器单元10R中的检索关键字生成单元14R。首先,检索关键字生成单元14R从发送的检索数据生成如图5B所示的第一检索关键字(1st Search Key)。检索数据和第一检索关键字(1st Search Key)彼此相同。
(2)关联存储器11R通过使用由检索关键字生成单元14R生成的第一检索关键字(1st Search Key)来检索关联存储器11R中的数据。当多条数据与作为检索关键字数据的第一检索关键字(1st Search Key)匹配时,用于所有匹配的多命中信息(多条数据匹配关键字的状态)被发送到优先级编码器(PE)112R。如图5C所示,由于“任何”被存储在关联存储器11R中的条目#13的所有项目中,条目#13匹配所有第一检索关键字,并且发生多次命中。在该示例中,关联存储器11R中的条目#0和#13发生命中。
(3)当多条数据与第一检索关键字匹配时,仅将具有最高优先级的匹配地址中的一个作为最终检索结果(命中索引(Index))发送到动作存储器单元20,因为优先级编码器(PE)112R被耦合。对于优先级编码器112R,优先级在LSB中是最高的,在MSB中是最低的。因此,输出条目#0。
(4)动作存储器单元20被预先编程为针对基于检索结果输入至检索装置1R(例如,IP地址或端口号)的数据执行哪个动作(Action)。动作存储器单元20执行用于读取与最终检索结果的地址相对应的数据的操作,并将其结果发送到网络控制装置2。如图5D所示,条目#0中的拒绝作为Action输出。由此,完成一系列检索操作。
如图5A所示,在一个关联存储器中存储一个ACL表导致冗余区域操作,这继而增加存储器消耗,并且还与存储器消耗的增加成比例地增加功耗。在通过诸如TCAM的CAM来构成关联存储器的情况下,由于功率根据存储器使用容量而增加的特性,存在由于功率增加引起的对热产生的对策的问题,以及与电源设计相关的问题。这些问题使得难以简单地增加存储容量。因此,有效地使用存储器本身是有必要的。虽然为了简化描述而在比较例中的源端口号(Src.Port)部分没有使用在范围表达式中描述的规则,当在类似于目的地端口号(Dst.Port)部分的范围表达式中描述的规则被用于这个部分时,有必要在TCAM中存储所有组合的条目。因此,随着规则描述变得更加复杂,条目数增加。
接下来,参考图6描述根据实施例的检索机制。图6示出了根据实施例将数据存储到关联存储器中的方法。
根据实施例的检索装置在分割表时将表存储到第一关联存储器和第二关联存储器中,通过使用根据预设规则来分类或逻辑压缩的功能来合并来自第一关联存储器的多匹配输出的结果和检索信息(命中信息、未命中信息、命中地址等),并将合并结果移交给第二关联存储器。尽管要添加的要与第一关联存储器(例如,规则标志)连结的数据被存储在第二关联存储器中,但是不必在第二关联存储器中的一个规则中使用范围表达式将相同的数据放入所有条目中,并且因此即使在由于范围表达式而使用多条线来表示一个规则的情况下也不会发生冗余的存储器消耗。因此,不再需要阴影部分,从而减少了存储器的消耗。假设第一关联存储器中的条目数为M,第二关联存储器中的条目数为L,规则数为N,则满足L<M和N<M的关系。在与ACL表中的检索不同的另一种情况下,并不总是需要与动作存储器相对应的存储器。
与比较例不同,根据实施例,不需要存储重叠数据。因此,可以大大减少存储器。由于这种有利的效果,在使用TCAM作为关联存储器的情况下,不仅低存储器消耗的效果被预期,而且可以有效地使用位单元价格昂贵的存储器资源。
该实施例通过连结检索表并发送多匹配信息来实现检索。因此,通过以串联耦合的方式添加一组关联存储器和连结检索数据生成单元作为连结机制来自由选择表的大小是可能的。虽然传统上只能通过对于诸如树形检索的一个检索操作需要长延迟的检索方法来实现长字符串的检索,但是可以通过在本实施例中串联耦合关联存储器来实现检索。因此,检索到目前为止难以被检索的具有大的水平宽度的表(例如,字符数大或数字字符的数位数大的表)是可能的。
进一步地,在实施例中,容易使用传递途径构成而不使用分支处理。因此,实施例能够容易地提高处理性能,并且适合于处理大量的数据。因此,实施例不仅可以应用于网络仪器,还可以应用于工作站中的大数据分析。
实施例提供以下有利效果。
(1)检索长字符串是可能的。
(2)可以减少存储器消耗,因为相同的字符串部分可以针对每个表与其他部分分离,并且可以被放在一个中。每个单元可存储规则的数量也是可以被改善的。
(3)因为可以减少存储器消耗,所以还可以减少功率。
(4)实施例可以处理大的规则文件。
(5)可以进行高速表维护操作。
(6)可以进行分割操作,并且可以停止不必要的检索操作。因此,能够进一步降低功耗。
关联存储器的形式可以是仅由硬件构成的CAM(诸如TCAM或BCAM),或者可以是通过使用通用RAM(例如DRAM、SRAM和闪存)和树结构检索或哈希表来模拟关联存储器功能的形式,或者由软件(CPU和存储器)进行模拟关联存储器功能的形式。
用于分类通过检索获得的多命中信息的机制和用于压缩数据的功能部分可以通过使用FPGA来构成。进一步地,用于分类多命中信息的机制可以由诸如CPU的可编程逻辑电路或存储器和逻辑电路的网格布置来执行。进一步地,分类功能可以由软件加以模拟。
以下,对上述实施例的示例进行描述。该示例提供了上述实施例的有利效果。
(示例)
参考图7A至7E描述根据示例的检索机制。图7A是示出根据示例的网络装置中的检索操作期间的数据流的概念图。图7B示出了图7A中的检索数据、第一检索关键字、第一检索信息和第二检索关键字。图7C示出了图7A中的第一关联存储器和连结检索数据生成单元。图7D示出了图7A中的第二关联存储器。图7E示出了图7A中的动作存储器。
根据示例的网络装置包括检索装置1和网络控制装置(NCU)2。检索装置1包括关联存储器单元10和动作存储器单元20。关联存储器单元10包括第一关联存储器11,第二关联存储器12,连结检索数据生成单元13和检索关键字生成单元14。检索关键字生成单元14包括第一检索关键字(1st Search Key)生成单元和第二检索关键字(2nd Search Key)生成单元。网络控制装置2由NPU(网络处理器)、ASIC等构成。在该示例中,描述了使用TCAM作为关联存储器的示例。描述了第一关联存储器(M)中的条目数为15,第二关联存储器(L)中的条目数为5,小于第一关联存储器中的条目数,并且规则数(N)为5。
这里描述检索装置1的主要操作流程。
(1)网络控制装置2发送图7B所示的作为检索对象的数据(检索数据)到检索装置1的关联存储器单元10中的检索关键字生成单元14。首先,检索关键字生成单元14通过第一检索关键字(1st Search Key)生成单元从发送的检索数据生成图7B所示的第一检索关键字(1st Search Key)。可以容易地生成第一检索关键字(1st Search Key),因为它是从检索数据切出的检索数据的一部分。
(2)在第一步骤的检索中,第一关联存储器11通过使用由检索关键字生成单元14中的第一检索关键字(1st Search Key)生成单元生成的第一检索关键字(1st SearchKey)来检索第一关联存储器11中的数据。当多条数据与作为检索关键字数据的第一检索关键字(1st Search Key)相匹配时,第一关联存储器11发送针对于所有匹配的多命中信息(多条数据与一个关键字相匹配的状态)至连结检索数据生成单元13。因为“任何”被存储在第一关联存储器11中的条目#0、#6和#13中,如图7C所示,这些条目与所有第一检索关键字匹配,从而发生多次命中。
(3)随后,连结检索数据生成单元13对第一关联存储器11中的检索结果进行分类和逻辑压缩,然后将图7B所示的第一检索(1st Search)信息输出到检索关键字生成单元14,以生成第二检索关键字(2nd Search Key)。如图7C中的虚线的椭圆A所示,将发生命中的条目(Indexes)的多命中信息发送到连结检索数据生成单元13,从而移交检索信息。连结检索数据生成单元13具有对应于存储在其中的条目(规则编号(Rule#))的数据,并且对其执行成为条数是规则数的数据的压缩。
(4)检索关键字生成单元14的第二检索关键字(2nd Search Key)生成单元,通过使用从连结检索数据生成单元13提供的第一关联存储器11中的检索结果的信息(第一检索信息)和最初接收的检索数据,生成如图7B所示的第二步骤的检索中使用的第二检索关键字(2nd Search Key)。因为通过连结所述检索结果信息(第一检索信息)和通过从所述检索数据中去除第一检索关键字(1st Search Key)获得的剩余部分来获得第二检索关键字,所以可以容易地生成第二检索关键字(2nd Search Key)。
(5)第二关联存储器12通过使用由检索关键字生成单元14的第二检索关键字(2ndSearch Key)生成单元生成的第二检索关键字(2nd Search Key)来执行第二检索关键字(2nd Search Key)是否被包括在第二关联存储器12中的数据中的检索。如图7D所示,在第二关联存储器12中的条目#0和#4中发生命中。因为在第一关联存储器11中的检索完成之后执行在第二关联存储器12中的检索,同一时间操作的关联存储器的容量减小,从而与比较例相比,能够实现更少的功耗。
(6)当多条数据匹配检索关键字时,只有匹配地址中具有最高优先级的一个被作为最终检索结果(命中索引)发送到动作存储器单元20,因为该示例中优先级编码器(PE)122被耦合到第二关联存储器12的存储器单元121。在优先级编码器122中,优先级在LSB处最高,以及在MSB处最低。因此,输出条目#0。
(7)动作存储器单元20被预编程以基于检索结果,对输入到检索装置1的数据(例如,IP地址或端口号)执行哪个动作(Action)。动作存储器单元20执行读取与最终检索结果的地址相对应的数据的操作,并将该结果发送到网络控制装置2。在图7E中条目#0中的拒绝作为动作(Action)被输出。利用此输出完成一系列检索操作。
接下来,参考图8,描述图7A中的检索关键字生成单元。图8是图7A的检索关键字生成单元的构成示例的框图。
检索关键字生成单元14由关键字数据缓冲器141、关键字解析器单元142、解析规则管理单元143、关键字大小设置管理单元144、第一检索关键字(1st Search Key)生成单元145、第二检索关键字(2nd Search Key)生成单元146和FIFO 147构成。
首先,将输入的检索数据存储在关键字数据缓冲器141中。然后,第一检索关键字生成单元145基于在解析规则管理单元143中编程的信息和在关键字大小设置管理单元144中编程的信息,通过分割检索数据来生成第一检索关键字以便在第一关联存储器11中使用。第二检索关键字生成单元146将通过在第一步骤中的检索获得的匹配信息(第一检索信息)添加到通过从检索数据中去去除第一检索关键字而获得的剩余部分,来生成用于第二关联存储器12的对应的第二检索关键字。第一检索信息包含多命中信息、命中规则号、标签号、命中索引等。
也就是说,通过输入检索数据的匹配信息(第一检索信息)实时地改变第二检索关键字(2nd Search Key)。利用这种允许实时改变的机制,第一步骤的检索结果和第二步骤的检索结果可以被连结。
关键字数据缓冲器141是执行检索数据的主要存储和延迟的调整的部分,并且可以由FIFO构成或诸如2端口SRAM的存储器来构成。
解析规则管理单元143通过在生成检索关键字时仅重新排列检索关键字的一部分来生成多个检索关键字,从而生成用于同时执行多个检索的数据。
关键字大小设置管理单元144在其中设置第一检索关键字和第二检索关键字中的每一个的大小,并且具有提供用于通过关键字解析器单元142将检索关键字指派为任何预设的大小的信息的功能。
第一检索关键字(1st Search Key)生成单元145具有基于在解析规则管理单元143或关键字大小设置管理单元144中预编程的信息来生成第一检索关键字,以对应于第一关联存储器11的检索表大小的功能。
第二检索关键字生成单元146具有,基于包括在第一步骤的检索中获得的多命中信息和直到第一步骤的检索结果确定为止临时保存在关键字数据缓冲器141中的原始检索数据的检索结果,生成与第二关联存储器12的检索表大小相对应的第二检索关键字的功能。
接下来,参考图9和图10描述关联存储器的功能。图9示出了第一关联存储器。图10示出了第二关联存储器。
第一关联存储器11和第二关联存储器12各自除了针对存储器单元111和121中的相关联的一个的检索功能之外还具有写入功能和读取功能。网络控制装置2事先根据预定的数据设置程序通过写入序列控制将检索对象数据存储在关联存储器中,由此在第一关联存储器11和第二关联存储器12的每一个中构成数据库。写入序列控制包含控制信号、地址和写入数据。第一关联存储器11和第二关联存储器12各自具有将该数据库和检索数据(检索关键字)相互比较的功能,并且当存在与检索数据匹配的数据时,输出存储匹配数据的地址的信息(检索结果)。并且,第一关联存储器11和第二关联存储器12各自具有通过来自网络控制装置2的读取系列控制读取存储的数据库的内容并输出读取数据的功能。读取系列控制包含控制信号和地址。第一关联存储器11的检索数据是第一检索关键字、第二关联存储器12的检索数据是第二检索关键字。第一关联存储器11的检索结果是多命中信息、命中地址、命中计数器等,并且第二关联存储器12的检索结果是多命中信息、命中地址、命中计数器等。
当获得多条匹配信息时,第一关联存储器11输出多条命中信息(多命中信息)。由第一关联存储器11获得的检索结果被连结检索数据生成单元13压缩,并被发送到检索关键字生成单元14,其中发送的检索结果被用于生成第二检索关键字。连结检索数据生成单元13将多条命中信息放入一个,并将其发送到下级的关联存储器。由于该构成,可以抑制数据传输期间的数据量的增加,并且不再需要用于连结多个检索结果的大量信息。因此,当检索表被更新时,不再需要重构用于连结检索结果的数据。
第二关联存储器12基于在第一步骤中的检索结果的信息,通过使用由检索关键字生成单元14生成的第二检索关键字来检查是否存在匹配的数据。当仅获得一条匹配信息时,其地址不改变地被输出。当在多个地址中数据被匹配时,经由优先级编码器122输出具有最高优先级的一个地址(LSB地址被描述为所述示例中的示例)。第二关联存储器12(L)中的条目数小于第一关联存储器11(M)中的条目数。
由第二关联存储器12输出的命中地址最终用作动作存储器单元20中的读地址(或地址信息的基础),以便确定对输入数据的处理。读取在动作存储器单元20中预编程的诸如操作信息的数据,并将结果发送到网络控制装置2。由此可以完成一系列操作。
接下来,参考图11描述连结检索数据生成单元的功能。图11示出了连结检索数据生成单元。
连结检索数据生成单元13除了数据压缩功能之外还包括写入功能和读取功能。网络控制装置2在构成连结检索数据生成单元13中的数据压缩功能之前根据预定的数据设定程序通过写入序列控制来存储规则编号。写入序列控制包含控制信号、地址和写入数据。连结检索数据生成单元13具有输出多匹配信息(命中规则标志、规则信息、分类信息、哈希值等)的功能,多匹配信息为通过第一关联存储器11的输出(命中信息或索引)通过对该规则编号的访问的第一检索信息。连结检索数据生成单元13还具有通过来自网络控制装置2的读取系列控制读取存储在其中的规则编号并且输出读取数据的功能。读取系列控制控制控制信号和地址。
接下来,参考图12描述动作存储器单元的功能。图12示出了动作存储器单元。
动作存储器单元20具有写入功能和读取功能。网络控制装置2事先根据预定的数据设定程序由写入系列控制,将动作存储在动作存储器单元20中。写入系列控制包含控制信号、地址和写入数据。动作存储器单元20具有通过由第二关联存储器12的输出(命中信息或索引)访问该动作来输出下一操作信息(拒绝、许可等)的功能。动作存储器单元20还具有通过来自网络控制装置2的读取系列控制读取存储的动作并输出读取数据的功能。读取系列控制包含控制信号和地址。动作存储器单元20被存储在关联存储器内的内部存储器中或诸如QDR SRAM或DDR SDRAM之类的外部存储器中。
接下来,参考图13至图17描述连结检索数据生成单元13的构成示例。这些构成示例中的每一个被提供有用于允许连结检索数据生成单元事先可编程的机制(写入电路、寄存器、熔丝电路、能够通过外部信号设置的电路等的功能),尽管为了简化描述省略了对该机制的描述。
图13示出了连结检索数据生成单元的第一构成示例。根据第一构成示例的连结检索数据生成单元13A包括存储器单元131和压缩电路132A。在该构成示例中,通过事先在存储器单元131中编程在接收到从第一关联存储器11输出的检索结果时,哪一个规则编号将被输出的构成来实现连结检索数据生成单元13A,以使得第一关联存储器11的每个条目对应于规则编号。
输出数据有时包括多个命中,该多个命中以第一关联存储器11中的检索结果(命中和索引)与存储在存储器单元131中的数据的关系的形式存在。在这种情况下,多命中信息被压缩成数据,其条数量是规则的预设数量。由于如图13所示条目数为14,所以在最大值处发生14个命中,命中被压缩为5,即规则数。条目数和规则数不限于这些值。作为压缩电路132A中的压缩方法,可以应用逻辑地获得“或”(OR)或者“或非”(NOR)的方法以及应用“线或”(Wired-OR)或者“线或非”(Wired-NOR)实现压缩的方法。在所示示例中,对于规则编号1(Rule#1)的多条命中信息,发现这些条命中信息被放入一位。进一步地,也可以通过用纵横开关构成压缩电路并对纵横开关进行编程以获得期望的开关耦合状态来压缩多命中信息。
图14示出了连结检索数据生成单元的第二构成示例。根据第二构成示例的连结检索数据生成单元13B包括存储器单元131和压缩电路132B。尽管与第一构成示例中一样,由于条目数为14,所以在最大值处发生14个命中,压缩电路132B执行压缩至5,即规则数。条目数和规则数不限于这些值。压缩电路132B包括包括高速缓冲存储器134、工作存储器135、非易失性存储器136和寄存器137的CPU 133。根据预先编程在寄存器137中的规则、在逐个规则基础上(每个规则对应一个命中条目),压缩数据并且输出压缩数据,是通过使用CPU133、存储程序的高速缓冲存储器134和存储数据的工作存储器135的软件处理来执行的。该处理中的工作存储器135可以是并入型或外部型。进一步地,为了使在CPU 133中执行的处理更容易,可以对从第一关联存储器11输出的多命中信息执行适当的编码处理(例如,使用哈希函数或解码器的编码处理)。进一步地,可以通过添加非易失性存储器136来构成可以加载需要事先设置的程序和规则的机制。该处理中的工作存储器135和非易失性存储器136可以是内部类型或系统外部提供的。
图15A示出了连结检索数据生成单元的第三构成示例。图15B是示出图15A中的存储器网格状寄存器的构成的电路图。
根据第三构成示例的连结检索数据生成单元13C包括存储器单元131C、写入电路138和寄存器139。存储器单元131C将对应于关联存储器11的条目的检索结果与连结检索数据生成单元13C彼此相关联,于存储器网格状寄存器1311的部分中设置标志,该部分对应于与预编程条目相关联的规则编号的命中条目,并且对与规则相关联的每个标志执行逻辑压缩。逻辑压缩由OR电路1312以沿阵列构成的垂直方向的菊花链耦合来构成。存储器网格状寄存器1311由D触发器1313、AND电路1314和OR电路1312作为元件的最小单元构成,使得针对关联存储器中的每个条目可以编程相应的标志。一个上以级的OR电路1312的输出信号被输入到存储器网格状寄存器1311的某个OR电路1312的输入,并且该某个OR电路1312的输出被输入到下一级的OR电路1312。对于最上级的OR电路1312,输入为低。在所示示例中,存储器网格状寄存器1311被布置为对应于水平方向上的N位和在垂直方向上最大M个条目(在连结检索数据生成单元13C中的条目数为M的情况下,M也为关联存储器中的条目数)。N表示规则数或用于分类的类别的数量。N的值是可变的,只要它是2或更大。M发生在最大值,并被压缩电路压缩成N条数据。因此,规则或类别的数量(N)小于关联存储器中的条目数(M)。
在该构成中,存储器单元131C的RWL(读取字线)直接或通过缓冲器耦合到关联存储器11的匹配输出信号。为了在WWL(写入字线)被事先设置为高的情况下对“1”进行编程,控制写入电路138将WD(写入数据)置于高电平。进一步地,为了编程“0”,控制写入电路138将WD(写入数据)置于低电平。通过该控制,可以将数据存储在D触发器1313中。
“1”被存储在D触发器1313中,以便激活存储器网格状寄存器1311中的标志作为在对应于要编程的规则编号的部分中的对象。由此,当RWL变为高时,即,耦合匹配输出信号变为高(被置于命中状态),RD(读取数据)变为高,使得OR电路1312的输出也变为高电,标志被生成并被存储在寄存器139中。
在由于硬件构成而在逐个条目的基础上进行耦合是不可能或困难的情况下,将信号放在一起在每个块中,并将关联存储器中的被放入一些块中的条目耦合到连结检索数据生成单元作为匹配输出信号。在这种情况下,可以通过执行使每个块事先包括相同的规则的处理来应用这个构成示例,例如,在关联存储器中存储数据的方法中,以及使数据存储方法对应于耦合方法。
另外,在使用TCAM作为关联存储器的情况下,TCAM的匹配放大器(Match Amp)输出或与其的逻辑等效通过传递途径被耦合到连结检索数据生成单元。该构成使得能够在检索吞吐量不变的情况下执行检索操作。这种构成在长关键字检索中也是有效的。
图16示出了图15B的存储器网格状寄存器1311的第一修改例。根据第一修改例的存储器网格状寄存器1311D被构成为比图15B的存储器网格状寄存器1311包括的元件少,并且可以具有减小的布局区域。
在这种构成中,存储器网格状寄存器1311D的RWL(读取字线)直接或通过缓冲器耦合到关联存储器11的匹配输出信号。为了在WWL(写字线)被事先设置为高电平时编程“1”,WD(写入数据)被控制在高电平。为了编程“0”,/WD(写入数据条)被控制在高电平。通过该控制,可以将数据存储在晶体管N1和晶体管N2之间由反相器IN1和反相器IN2形成的锁存单元中。
在作为对象的存储器网格状寄存器1311D中,在其锁存单元中存储“1”,以便在与要编程的规则号相对应的部分处激活标志。因此,当RWL变为高时,即耦合匹配输出信号变为高(被置于Hit状态),RD(读取数据)变为低。在RD事先以高电位预充电的情况下,当在耦合到RD的存储器网格状寄存器1311D中存在电荷被吸引至GND(即,晶体管N3和N4通过其导通)的路径时,RD为低,使得比较器CMP(/ORing)的输出信号变为低,并且可以产生标志。在该修改例中,由Wired-NOR实现数据合并操作。
图17示出了图15B的存储器网格状寄存器的第二修改例。根据第一修改例的存储器网格状寄存器1311D必须分别生成称为参考电压(Vref)的用于比较的电平,作为在数据比较中的参考电压以便检测RD的电平。另一方面,根据第二修改例的存储器网格状寄存器1311E采用比较RD和/RD(读取数据条)的互补总线电平的构成,使得不再需要用于生成参考电压(Vref)的电路。/RD通过晶体管N5和N6耦合到GND。
接下来,参考图18到23,描述了图7A中的关联存储器单元10的耦合的示例,即第一级级的关联存储器11(顶部关联存储器11)、连结检索数据生成单元13和第n级(最后一级)的关联存储器12。
图18示出了根据第一耦合示例的关联存储器单元。通过将阵列大小彼此不同的多个关联存储器11F和12F彼此串联耦合来构成关联存储器单元10F。关联存储器单元10F包括第一级的关联存储器11F、最后级的关联存储器12F、连结检索数据生成单元13F和检索关键字生成单元14F。最后级的关联存储器12F包括优先级编码器(PE)。
在第一级的关联存储器11F中,存储在范围表达式中使用3-(三元)值的数据,诸如端口号。对于除了该数据之外的数据,执行在最后级的关联存储器12F中的检索。在第一级的检索中,由于源端口号和目的地端口号都是16位,所以可以通过使用总共32位执行检索来抑制存储器的使用。
进一步地,通过采用构成,其中当阵列大小减小时条目数量可以与阵列大小的减小成比例地增加(可以切换水平大小和垂直大小之间的平衡的构成:例如,关联存储器由存储器阵列块形成,其中32位×M个条目和160位×L个条目具有相同的大小),可以容易地获得平衡的存储器使用,因为范围扩展的部分的数据比不需要范围扩展的另一部分的数据描述需要更多的条目。因此,可以有效地使用存储器。注意,满足关系L<M。尽管在图18中描述了L小于M的情况,L和M之间的关系不限于此。可以满足关系L≥M。在这种情况下,第一级的关联存储器11F中的一个条目的位数等于或大于最后级的关联存储器12F中的一个条目的位数。
图19示出了根据第二耦合示例的关联存储器单元。通过串联连结三个检索结果来构成关联存储器单元10G。关联存储器单元10G包括第一级的关联存储器11_1G、第二级的关联存储器11_2G、最后级的关联存储器12G、第一级的连结检索数据生成单元13_1G、第二级的连结检索数据生成单元13_2G以及检索关键字生成单元14G。最后级的关联存储器12G具有优先级编码器(PE)。
通过以这种方式耦合三个或更多个关联存储器,代替仅耦合两个关联存储器,可以实现常规不能实现的长关键字检索。
图20示出了根据第三耦合示例的关联存储器单元。关联存储器单元10H由嵌入数据(标志)构成,以将表连结在最后级的关联存储器12H中的表内。第三耦合示例采用与关联存储器单元10相同的构成。
图21示出了根据第四耦合示例的关联存储器单元。通过将来自一个关联存储器的连结的检索数据连结到多个关联存储器来构成关联存储器单元10I。关联存储器单元10I包括第一级的关联存储器11I,最后级的关联存储器12_1I,...,12_nI,连结检索数据生成单元13I,检索关键字生成单元14I,优先级编码器(PE)15I,检索启动信号生成单元16I和表数据管理单元17I。最后级的关联存储器12_1I,...,12_nI的每个关联存储器包括优先级编码器(PE)。
为了实现该方法,将命中地址从连结检索数据生成单元13I发送到检索启动信号生成单元16I,使得检索启动信号生成单元16I向表数据管理单元17I询问关于命中索引所属的表的连结信息,表数据管理单元17I将连结信息发送到检索启动信号生成单元16I。检索启动信号生成单元16I通过检索启动信号选择存储作为对象的数据库的最后级的关联存储器,并激活该关联存储器。进一步地,检索关键字生成单元14I将第二检索关键字并行地发送到最后级的第一关联存储器(final 1)12_1I,...,最后级的第n个关联存储器(finaln)12_nI,并且由检索启动信号激活的关联存储器执行检索操作。
检索结果被发送到包括在每个被检索启动信号激活的关联存储器中的优先级编码器(PE),从而选择具有最高优先级的地址。进一步地,在关联存储器之间分别具有优先级的多个地址被发送到下一级的优先级编码器(PE)15I,从而确定最终命中地址。利用该方法,在最后级的关联存储器中的表数据变得太大而不能被存储在单个存储块中的情况下可以实现扩展。因为存在没有被检索启动信号激活的关联存储器,所以可以实现低功耗。在最后级提供两个关联存储器的情况下,可以省略检索启动信号(检索启动信号生成单元16I和表数据管理单元17I)和优先级编码器(PE)15I中的任意一个。
图22示出了根据第五耦合示例的关联存储器单元。通过将多个检索结果串联连结到多个块来构成关联存储器单元10J。关联存储器单元10J包括第一级的关联存储器11_1J,...,11_nJ,关联存储器12_1J,...,12_nJ,连结检索数据生成单元13J,检索关键字生成单元14J,优先级编码器(PE)15J,检索启动信号生成单元16J和表数据管理单元17J。每个最后级的关联存储器12_1J,...,12_nJ均包括优先级编码器(PE)。
图21的第五耦合示例和第四耦合示例之间的区别是在第一级将关联存储器(关联存储器11_1J,...,11_nJ)的检索结果放在一起。连结检索数据生成单元13J将第一级的关联存储器的检索结果放在一起,并将第二级(最后级)的多个关联存储器的信息发送到检索关键字生成单元14J。通过实现这种耦合,可以减少区域并实现低功耗,因为连结检索数据生成单元可以被多个关联存储器共享。
图23示出了根据第六耦合示例的关联存储器单元。通过将多个检索结果放入一个然后将其耦合到一个关联存储器来构成关联存储器单元10K。关联存储器单元10K包括第一级的关联存储器11_1K,...,11_nK,最后级的关联存储器12K,连结检索数据生成单元13K和检索关键字生成单元14K。最后级的关联存储器12K包括优先级编码器(PE)。存储在每个关联存储器中的数据可能包括很多范围表达式,其取决于一种情况下规则描述的内容,并且只有顶部表(在第一级)的大小在例如包括分段规则的状态的一些情况下可能是大的。在那些情况下,仅将顶部的关联存储器的多个检索结果放入一个并移交,并且耦合到第二关联存储器(在最后级)。该耦合使得能够有效地使用存储器。
安装示例
图24示出了根据第一安装示例的半导体装置的横截面图。在半导体装置100A中,关联存储器120A和连结检索数据生成单元130A被安装在同一基板110A上。关联存储器120A包括包括第一关联存储器11和第二关联存储器12的半导体芯片,并且被利用凸块电极PEA1电耦合并固定到基板110A。半导体芯片的电路形成表面通过诸如树脂REA1的树脂材料与凸块电极PEA1被密封在一起。连结检索数据生成单元130A包括包括连结检索数据生成单元13的半导体芯片,被利用凸块电极PEA2电耦合并固定到基板110A。半导体芯片的电路形成表面通过诸如树脂REA2的树脂材料与凸块电极PEA2被密封在一起。关联存储器120A和连结检索数据生成单元130A中的每一个可以是已经用树脂等密封的那些。检索关键字生成单元14可以被包括在连结检索数据生成单元130A或关联存储器120A中。
连结检索数据生成单元13需要存储器来存储用于事先对其中命中信息进行分类的规则。然而,对于只想要保持与传统产品兼容的客户,该功能可能会增加成本。因此,连结检索数据生成单元13的功能被布置在关联存储器120A的芯片外部,使得当需要时才提供该功能作为封装的选择。这可以优化成本。连结检索数据生成单元130A也可以在其中逻辑被添加到通常使用的存储器产品(诸如DRAM或SRAM)的模式,和在其中连结检索数据生成单元的功能是由FPGA实现的模式中加以实现。
图25示出了根据第二安装示例的半导体装置的横截面图。在半导体装置100B中,通过3D安装技术将关联存储器120B和连结检索数据生成单元130B安装在基板110B上。关联存储器120B包括包括第一关联存储器11和第二关联存储器12的半导体芯片,并且通过凸块电极PEB被电耦合并固定到基板110B。半导体芯片的电路形成表面与凸块电极PEB一起被诸如树脂REB的树脂材料密封。连结检索数据生成单元130B是通过TSV(硅通孔)技术(通过硅通孔电极130B_V)将包括连结检索数据生成单元13的两个半导体芯片130B_U和130B_L电耦合到关联存储器120B而获得。检索关键字生成单元14可以被包括在连结检索数据生成单元130B或关联存储器120B中。
可以通过将连结检索数据生成单元130B布置在关联存储器120B上来减小安装区域。TSV技术可以用PonP(封装叠加)技术替代。当应用TSV技术或PonP技术时,可以以低延迟耦合关联存储器120B和连结检索数据生成单元130B并减少布线距离。因此,也可以减少信号发送的功率。
图26示出了根据第三安装示例的半导体装置的横截面图。在半导体装置100C中,关联存储器120A和连结检索数据生成单元130B安装在同一基板上。关联存储器120A包括包括第一关联存储器11和第二关联存储器12的半导体芯片,并且通过凸块电极PEC1电耦合并固定到基板110C。半导体芯片的电路形成表面与凸块电极PEC1一起被诸如树脂REC1的树脂材料密封。在连结检索数据生成单元130B中,包括连结检索数据生成单元13的两个半导体芯片130B_U和130B_L通过硅通孔电极130B_V电耦合到基模200C。基模200C是半导体芯片,通过凸块电极PEC2电耦合及固定到基板110C,并与凸块电极PEC2一起被诸如树脂REC2的树脂材料密封。检索关键字生成单元14可以被包括在连结检索数据生成单元130B或关联存储器120A中。
由于可以根据各目的或用途来选择连结检索数据生成单元130B部分的功能与关联存储器120A的功能的组合,所以可以提高自由度。
图27示出了根据第四安装示例的半导体装置的横截面图和展开平面图。图27的最上部分示出了横截面图,第二部分示出了连结检索数据生成单元的上表面(箭头B)的平面图,第三部分示出了作为连结检索数据生成单元的下层的半导体芯片的上表面(箭头C)的平面图,最下部分示出了关联存储器的上表面(箭头D)的平面图。在半导体装置100D中,两个连结检索数据生成单元130_1和130_2被安装在关联存储器120D上。关联存储器120D包括包括第一关联存储器11和第二关联存储器12的半导体芯片,并且通过凸块电极固定到基板110D。半导体芯片的电路形成表面通过树脂等与凸块电极被密封在一起。在连结检索数据生成单元130_1中,包括连结检索数据生成单元13的两个半导体芯片130_1U和130_1L通过硅通孔电极130_1V耦合到关联存储器120D。在连结检索数据生成单元130_2中,两个半导体芯片130_2U和130_2L通过硅通孔电极130_2V耦合到关联存储器120D。检索关键字生成单元14可以被包括在连结检索数据生成单元130_1或130_2或关联存储器120D中。
在图25的第二安装示例中,当关联存储器的存储器容量变大时,芯片大小变得较大。因此,可能不能安装可以处理所有关联存储器的连结检索数据生成单元。这可以通过在关联存储器的存储器阵列上布置多个连结检索数据生成单元,同时抑制关联存储器的封装大小的增加来加以改进。例如,可以实现与TCAM的阵列构成对应的最佳布置,并因此实现低延迟和低消耗。
第一至第四安装示例中的基板可以是在封装中使用的基板或系统板的基板。
修改例
描述该示例的修改例。
通过有效地使用将数据存储到连结检索数据生成单元中的方法,可以更有效地使用关联存储器部分。例如,在使用TCAM作为关联存储器的情况下,需要通过网络仪器中的一个规则将IP地址、端口号等扩展为多个条目。然而,规则中的重叠部分可以作为标志信息共享,因此我们建议减少存储器的使用。在比较例的方法中,存储器使用通过组合的产品而增加。另一方面,在该标志方法中,因为存储器的使用大体上为标志的总和是足够的,所以可以大大减少存储器的使用。
首先,参照图28描述修改例中的ACL表中的范围表达式。图28示出了ACL表中范围表达式与不关心表达式之间的关系。
当[2-9]被描述为规则时,该范围可以通过使用三个范围表达式,即范围表达式No.1至3([2-3]、[4-7]和[8-9])来表示。当[10-15]被描述为规则时,该范围可以通过使用两个范围表达式,即范围表达式No.4和5([10-11]和[12-15])来表示。
接下来,参照图29A和29B描述将ACL表存储在比较例的关联存储器中的示例。图29A示出了ACL表的示例。图29B示出了将图29A中的ACL表存储在比较例的关联存储器中的示例。
如图29A所示,三个规则被描述为ACL表。如图29B所示,规则#1需要源端口号(Src.Port)的[2-9]部分中的[2-3]、[4-7]和[8-9]的三个表达式,并且需要在目的地端口号(Dst.Port)的[10-15]部分中的[10-11]和[12-15]的两个表达式。因此,当这些组合被表示为规则时,3×2,即6个条目被用于表达式。
类似地,如图29B所示,规则#2需要源端口号(Src.Port)的[4-9]部分中的[4-7]和[8-9]的两个表达式,并且需要目的地端口号(Dst.Port)的[12-17]部分中的[12-15]和[16-17]的两个表达式,因此,当这些组合被表示为规则时,2×2,即需要4个条目。
另一方面,如图29B所示,规则#3可以通过一种类型的表达式来描述源端口号(Src.Port)和目的地端口号(Dst.Port)的每一个。因此,组合可以表示为1×1,即1。
因此,为了将这三个规则存储在比较例的关联存储器中,消耗了对应于总共11个条目的存储器。例如,当源端口号(Src.Port)为16位时,目的地端口号(Dst.Port)为16位,协议(Protocol)为8位,源IP地址(Src.Add)为32位,以及目的地IP地址(Dst.Add)为32位,一个条目需要104位,并且因此消耗对应于11条目×104位=1,144位的存储器。
使用这个示例来描述比较例的表达方法在规则表达式未被扩展的情况下(诸如规则#3的组合)是不有效的,但是可以被使用,由此可以通过本实施例的表达方法来实现这个示例。
接下来,参考图30到图32描述根据修改例在关联存储器中存储数据的方法。图30是根据修改例将数据存储到第一关联存储器单元中的方法的说明图。图30中的上部示出与图29A相同的ACL表。图30中的下部示出了第一关联存储器。在该修改例中,描述使用TCAM作为关联存储器的情况。
在修改例中,通过对于不同的规则共同使用相同的范围表达式来抑制存储器消耗。
为了实现这一点,首先描述在关联存储器中存储源端口号(Src.Port)部分的方法。规则#1描述了源端口号(Src.Port)的[2-9]。因此,[2-9]可以使用三个表达式[2-3]、[4-7]和[8-9]来表示,如图28所示。规则#2使用范围表达式[4-9],其可以使用两个表达式[4-7]和[8-9]来表示。规则#3使用范围表达式[4-7],其可以由[4-7]的一个表达式表示。当这些被放在一起时,发现三个规则中的源端口号(Src.Port)部分可以使用三种表达式[2-3]、[4-7]和[8-9]来表示。因此,如图30所示,数据以左列的形式被存储在第一关联存储器11L中。
接下来,描述目的地端口号(Dst.Port)部分。类似地,规则#1中的该部分使用范围表达式[10-15],其可以是[10-11]和[12-15]的两种表达式,如图28所示。规则#2使用范围表达式[12-17],其可以由两个表达式[12-15]和[16-17]来表示。规则#3使用范围表达式[0-15],其可以由一个表达式[0-15]来表示。当以类似于源端口号(Src.Port)的方式去除重叠部分时,目的地端口号部分可以由四种表达式[10-11]、[12-15]、[16-17]和[0-15]来表示。因此,如图30所示,数据以右列的形式被存储在第一关联存储器11A中。在这种情况下,将“*”放入源端口号(Src.Port)部分的右侧的部分,其中数据通过使用范围表达式(与目的地端口号(Dst.Port)部分对应的部分)来存储。通过将该部分设置为“*”(不关心),可以实现稍后将描述的将检索数据连结到连结检索数据生成单元13L和第二关联存储器12L。
通过使用不关心表达式,可以将存储器消耗抑制与规则中的重叠部分相对应的量,因为可以将规则存储在连结检索数据生成单元13L中和第二关联存储器12L中的标志方法中的表中,类似地,在数据被存储在目的地端口号(Dst.Port)的部分中,将“*”(不关心)放入与源端口号(Src.Port)相对应的部分。
因此,在第一关联存储器11L中,可以通过总共7个条目×16位(当假定源端口号(Src.Port)和目的地端口号(Dst.Port)中的每一个是16位,这在IPv4和IPv6中是普遍的)来实现表达式。
通过使用用于存储由范围表达式描述的规则的多个条目来存储数据,并且也可以被用于不同规则的范围表达式变为常见。
接下来,描述连结检索数据生成单元中的标志管理方法和移交数据。图31是根据修改例的连结检索数据生成单元的先行程序的说明图。图31中的上部示出与图29A相同的ACL表。图31中的左下部分示出第一关联存储器11L。图31中的右下部分示出了连结检索数据生成单元13L。
在检索之前,将规则信息(在对应于每个规则的部分处的“1”)事先编程在连结检索数据生成单元13L中,以便允许检索结果被移交。连结检索数据生成单元13L向第一关联存储器11L的每个条目指派存储器。
首先,描述存储关于规则编号为0(规则#0)的数据的方法。在连结检索数据生成单元13A中的源端口号(Src.Port)块的左端,存储规则#0的数据,因为存储了不与其他范围表达式重叠的每个范围表达式,所以在第一关联存储器11L中没有规则信息,因此需要表示该规则信息。如前所述,第一关联存储器11L和连结检索数据生成单元13L在逐个条目的基础上相互关联,并且使用以标志形式的每个规则所需的范围表达式。规则#0使用在源端口号(Src.Port)的表达式中的三个表达式[2-3]、[4-7]和[8-9],因此“1”被编程在连结检索数据生成单元13A中的#0、#1和#2中,#3至#6对应于目的地端口号(Dst.Port),因此“0”被编程在其中。类似地,在对应于规则#2和#3的部分中,在使用的范围表达式的一部分中也设置“1”。
关于目的地端口号(Dst.Port),在所示示例中在第一关联存储器11L中使用#3至#6加以表示。因此,以与对源端口号(Src.Port)执行的相同的方式,在连结检索数据生成单元13A的#3至#6中以标志格式选择范围表达式,并且在与对源端口号(Src.Port)执行的相同的过程中,在每个规则的使用的范围表达式的部分中设置“1”。在目的地端口号(Dst.Port)的数据区中,在#0至#2中未被设置与对应的源端口号(Src.Port)相关的标志。#0至#2被用于保持“0”。3位被用于源端口号(Src.Port),并且3位被用于目的地端口号(Dst.Port)。
接下来,描述将数据存储到第二关联存储器12L中的方法。图32是根据修改例将数据存储到第二关联存储器中的方法的说明图。图32的上部是与图29A相同的ACL表。图32的下部是第二关联存储器。在所示示例中,将关联存储器的一部分(在所示示例中为6位)用作连结检索结果的标志。
在与第二关联存储器12L的源端口号(Src.Port)描述的部分的每个规则相对应的条目中设置“1”。“*”被设置在与其本身的规则不同的部分。在所示例中,将“1”放入到条目#0中,并且将“*”放入到源端口号(Src.Port)的[2-9]列中的条目#1和#2中。在[4-9]的列中,将“1”放入到条目#1中,将“*”放入到条目#0和#2中。在[4-7]的列中,将“*”放入到条目#0和#1中,将“1”放入到条目#2中。同样在目的地端口号(Dst.Port)的一部分中,在[10-15]列中,以类似的方式将“1”放入到条目#0中,并将“*”放入到其他条目中。在[12-17]的列中,将“1”放入到条目#1中,将“*”放入到条目#0和#2中。在[0-15]的列中,将“1”放入到条目#2中,将“*”放入到条目#0和#1中。3位被用于源端口号(Src.Port),并且3位被用于目的地端口号(Dst.Port)。对于剩余部分,即协议、源IP地址(Src.Add)、目的地IP地址(Dst.Add),可以复制而不改变规则的数据。即使当第一关联存储器11L中的多个规则发生命中的检索结果被移交时,使用“*”也能够使得在第二关联存储器12L中获得正确的结果。
接下来,参照图33A至图33D描述根据修改例的检索机制。图33A是根据修改例的检索机制的概要的说明图。图33B示出了图33A中的检索数据、第一检索关键字、第一检索信息和第二检索关键字。图33C示出图33A中的第一关联存储器和连结检索数据生成单元。图33D示出了图33A中的第二关联存储器和动作存储器。
根据修改例的网络装置包括检索装置1L和网络控制装置(NCU)2L。检索装置1L包括关联存储器单元10L和动作存储器单元20L。关联存储器单元10L包括第一关联存储器11L、第二关联存储器12L和连结检索数据生成单元13L以及检索关键字生成单元14L。网络控制装置2L由NPU(网络处理器)、ASIC等构成。在该修改例中,描述使用TCAM作为关联存储器的情况。描述了第一关联存储器中的条目数为7,第二关联存储器中的条目数小于第一关联存储器中的条目数、为3,并且规则数为3的情况。
这里描述检索装置1L的主要操作流程。
(1)如图33B所示,网络控制装置2L将成为检索对象的数据(检索数据),发送到检索装置1L的关联存储器单元10L中的检索关键字生成单元14L。首先,检索关键字生成单元14L从发送的检索数据生成如图33B所示的第一检索关键字(1st Search Key)。
(2)在第一步骤的检索中,第一关联存储器11L通过使用由检索关键字生成单元14L生成的第一检索关键字(1st Search Key)来检索第一关联存储器11L中的数据。当多条数据与将作为检索关键字数据的第一检索关键字(1st Search Key)匹配时,将所有条的多命中信息(多条数据与关键字相匹配的状态)发送到连结检索数据生成单元13L。如图33C所示,第一关联存储器11L中的条目#2、#3和#6中的数据与第一检索关键字匹配,从而发生多次命中。
(3)随后,将第一关联存储器11L中的检索结果分类并在连结检索数据生成单元13L中进行逻辑压缩,然后作为第一检索(1st search)信息输出到检索关键字生成单元14L,以生成第二检索关键字(2nd Search Key)。如图33C所示,发生命中(Hit)的条目(Indexes)的多命中信息被发送到连结检索数据生成单元13L,从而移交检索信息。在连结检索数据生成单元13L中,存储对应于条目的数据(规则编号(规则#)),并且连结检索数据生成单元执行压缩以获得其条数是规则数的数据。更具体地,事先被编程为“1”的部分的AND的结果与在第一关联存储器11L中发生命中(Hit)的条目的数被合并为被发送到连结检索数据生成单元13L的数据,使得检索结果信息(检索结果标志)被移交到第二关联存储器12L。在该示例中,检索结果标志6'b110101被生成为连结检索数据生成单元13L中的连结的检索数据,并被发送到检索关键字生成单元14L。
(4)随后,检索关键字生成单元14L使用从连结检索数据生成单元13L提供的第一关联存储器11L的检索结果的信息(第一检索信息)和最开始输入其中的检索数据,并生成第二检索关键字(2nd Search Key),用于第二步骤中的检索,如图33B所示。更具体地,通过合成没有在第一检索关键字(1st Search Key)中使用的,从网络控制装置2发送的原始检索数据的剩余关键字,以及彼此的检索结果标志,来生成第二检索关键字(2nd SearchKey)。由于这种生成方式,可以通过使用标志部分来连结在第二关联存储器12L的一部分中事先编程的检索结果,来建立检索操作。检索关键字生成单元14L将检索结果标志合成到{Protocol,Src.Add,Dst.Add}={P1,S2,D1},使得第二检索关键字(2nd Search Key)以{6'b110101,P1,S2,D1}的形式得以生成。
(5)第二关联存储器12L通过使用由检索关键字生成单元14L生成的第二检索关键字(2nd Search Key)来检索第二检索关键字(2nd Search Key)是否被包括在第二关联存储器12L内的数据中。如图33D所示,在第二关联存储器12L中的条目#0中发生命中。
(6)在该示例中,采用其中优先级编码器(PE)122L被耦合到第二关联存储器12L的存储器单元121L的构成。因此,当多条数据匹配时,检索结果被发送到动作存储器单元20L,其中只有一个具有最高优先级的匹配地址被认为是最终检索结果(命中索引)。
(7)在动作存储器单元20L中,被事先编程为针对基于检索结果被输入到检索装置1中的数据(例如,IP地址或端口号)执行哪个动作。动作存储器单元20L将对应于最终检索结果的地址的动作存储器单元20L的数据读取操作的结果发送到网络控制装置2。通过该发送,完成一系列的检索操作。在图33D中,输出条目#0中的拒绝作为动作(Action)。
接下来,描述比较例和修改例之间的存储器消耗的比较结果。在比较例中,如图29B所示,对于图29A所示的ACL表,需要使用11个条目×104位=1,144位。另一方面,在修改例中,图29A所示的ACL表可以通过使用以下的位来实现,即如图30、31和32所示的,对于第一关联存储器11L,7个条目×16位×2=224位;对于连结检索数据生成单元13L,7个条目×6位=42位;以及对于第二关联存储器12A,3个条目×(6位+72位)=234位,即总共504位。因此,修改例中的存储器使用对应于504位/1,144位=44.1%,即修改例可以将存储器使用量节省约56%。
在上面的描述中,已经通过实施例具体描述了本申请的发明人所做的发明。然而,本发明不限于上述实施例,并且可以在不脱离其主旨的范围内以各种方式进行改变。
在示例和修改例中,描述了使用优先级编码器来获得一个最终检索结果的示例,从而生成用于读取动作存储器单元中的数据的地址信息。然而,在允许将第二步骤的检索结果作为多个匹配输出的模式适合作为应用(例如为了安全目的)的情况下,不需要提供优先级编码器。
在示例和修改例中,描述了使用TCAM作为关联存储器的示例。替代的,可以使用BCAM。在使用BCAM的情况下,尽管存在检索不能处理3(三元)值的限制,但是可以执行长关键字检索。同样在这种情况下,节省存储器使用的效果和降低功耗的效果是如示例一样有效的。
在示例和修改例中,为了简化描述,描述仅提供一个检索装置的示例。然而,通过使多个检索装置同时操作,可以容易地实现并行处理,导致处理性能的大幅度提高。进一步地,虽然动作存储器单元被描述为被提供在检索装置中,但是可以通过将商业上可用的DDR存储器布置在板上来将其构成为在检索装置外部的存储器。

Claims (20)

1.一种检索装置,包括:
第一关联存储器,利用第一检索关键字检索所述第一关联存储器;
第二关联存储器,利用第二检索关键字检索所述第二关联存储器;
第一连结检索数据生成单元,所述第一连结检索数据生成单元基于包括在所述第一关联存储器中的多个命中的命中信息,来生成第一检索信息;以及
检索关键字生成单元,所述检索关键字生成单元包括第一检索关键字生成单元和第二检索关键字生成单元,所述第一检索关键字生成单元基于检索数据来生成所述第一检索关键字,所述第二检索关键字生成单元基于所述第一检索信息和所述检索数据来生成所述第二检索关键字。
2.根据权利要求1所述的检索装置,
其中,所述第一检索关键字由所述检索数据的一部分构成,并且所述第二检索关键字由所述第一检索信息和通过从所述检索数据去除所述一部分而获得的剩余部分构成。
3.根据权利要求1所述的检索装置,
其中,所述第一关联存储器具有M个条目,
其中,所述第二关联存储器具有L个条目,
其中,所述第一连结检索数据生成单元将所述第一关联存储器中的多条命中信息压缩为预定的规则的数目的数据以生成所述第一检索信息,并且
其中,所述规则的数目为N。
4.根据权利要求3所述的检索装置,
其中,所述第一连结检索数据生成单元包括:
存储器,所述存储器存储与所述第一关联存储器的条目相对应的规则信息,以及
压缩电路,所述压缩电路从自所述存储器读取的所述第一关联存储器中的命中条目的规则信息,生成具有N位长度的所述第一检索信息。
5.根据权利要求4所述的检索装置,
其中,针对每个条目,所述存储器在所述存储器中存储具有所述N位长度的规则信息,并且
其中,所述压缩电路包括在逐位的基础上获得所述存储器的输出数据的“或”或者“或非”,或者“线或”或者“线或非”的电路。
6.根据权利要求4所述的检索装置,
其中,针对每个条目,所述存储器在所述存储器中存储具有所述N位长度的规则信息,并且
其中,所述压缩电路包括CPU,并且基于所述存储器的输出数据生成所述第一检索信息。
7.根据权利要求1所述的检索装置,
其中,所述第二关联存储器包括优先级编码器,并且当存在多个命中时,根据预定优先级输出一条命中信息。
8.根据权利要求7所述的检索装置,进一步包括:
动作存储器,所述动作存储器通过由所述第二关联存储器的输出进行访问来输出下一操作信息。
9.根据权利要求1所述的检索装置,
其中,所述第一关联存储器和所述第二关联存储器每个都由TCAM构成。
10.根据权利要求1所述的检索装置,进一步包括:
第三关联存储器,利用第三检索关键字检索所述第三关联存储器;以及
第二连结检索数据生成单元,所述第二连结检索数据生成单元基于包括在所述第三关联存储器中的多个命中的命中信息,来生成第二检索信息,
其中,所述检索关键字生成单元进一步包括第三检索关键字生成单元,所述第三检索关键字生成单元基于所述第二检索信息和所述检索数据,来生成所述第三检索关键字。
11.根据权利要求10所述的检索装置,进一步包括:
第四关联存储器,利用所述第二检索关键字检索所述第四关联存储器;
检索启动信号生成单元;以及
表数据管理单元,所述表数据管理单元将命中索引所属于的表的连结信息发送到所述检索启动信号生成单元,
其中,所述检索启动信号生成单元基于所述连结信息,来生成激活所述第二关联存储器和所述第三关联存储器中的至少一个的信号。
12.根据权利要求11所述的检索装置,进一步包括:
优先级编码器,所述优先级编码器确定所述第二关联存储器的输出和所述第四关联存储器的输出的优先级。
13.根据权利要求1所述的检索装置,进一步包括:
第五关联存储器,利用所述第一检索关键字检索所述第五关联存储器,
其中,所述第一连结检索数据生成单元基于包括在所述第一关联存储器中的所述多个命中的命中信息和包括在所述第五关联存储器中的多个命中的命中信息,来生成第一检索信息。
14.根据权利要求3所述的检索装置,
其中,L具有小于M的值,并且
其中,N具有小于M的值。
15.一种半导体装置,包括:
关联存储器单元,所述关联存储器单元由TCAM构成,并且包括利用第一检索关键字检索的第一关联存储器和利用第二检索关键字检索的第二关联存储器;
连结检索数据生成单元,所述连结检索数据生成单元基于包括在所述第一关联存储器中的多个命中的命中信息,来生成第一检索信息;以及
检索关键字生成单元,所述检索关键字生成单元包括第一检索关键字生成单元和第二检索关键字生成单元,所述第一检索关键字生成单元基于检索数据来生成所述第一检索关键字,所述第二检索关键字生成单元基于所述第一检索信息和所述检索数据来生成所述第二检索关键字,
其中,所述关联存储器单元由单个半导体芯片形成,并且
其中,所述连结检索数据生成单元由与所述关联存储器单元不同的半导体芯片形成。
16.根据权利要求15所述的半导体装置,其中,所述检索关键字生成单元形成在所述关联存储器单元的所述半导体芯片中或者所述连结检索数据生成单元的所述半导体芯片中。
17.根据权利要求16所述的半导体装置,进一步包括:
基板,在所述基板上安装有所述关联存储器单元;以及凸块电极,所述凸块电极布置在与安装有所述关联存储器单元的表面相反的表面上方。
18.根据权利要求17所述的半导体装置,
其中,所述连结检索数据生成单元被安装在所述基板上方。
19.根据权利要求18所述的半导体装置,
其中,所述连结检索数据生成单元通过利用TSV堆叠多个半导体芯片来形成。
20.根据权利要求17所述的半导体装置,
其中,所述连结检索数据生成单元通过利用TSV堆叠多个芯片来形成,并且
其中,所述连结检索数据生成单元的所述半导体芯片和所述关联存储器单元的所述半导体芯片利用TSV来堆叠。
CN201710575752.4A 2016-07-14 2017-07-14 检索装置和半导体装置 Active CN107622077B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016139220A JP2018010505A (ja) 2016-07-14 2016-07-14 検索装置および半導体装置
JP2016-139220 2016-07-14

Publications (2)

Publication Number Publication Date
CN107622077A CN107622077A (zh) 2018-01-23
CN107622077B true CN107622077B (zh) 2023-12-05

Family

ID=60941075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710575752.4A Active CN107622077B (zh) 2016-07-14 2017-07-14 检索装置和半导体装置

Country Status (3)

Country Link
US (1) US10191839B2 (zh)
JP (1) JP2018010505A (zh)
CN (1) CN107622077B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008845A (ja) * 2017-06-22 2019-01-17 ルネサスエレクトロニクス株式会社 半導体装置
US10504595B1 (en) * 2019-02-28 2019-12-10 Palo Alto Networks, Inc. Amortizing dissipated power and current demand in a ternary content addressable memory
US11232038B2 (en) 2019-06-05 2022-01-25 Samsung Electronics Co., Ltd. Ternary content addressable memory and operating method thereof
US11120874B2 (en) * 2019-11-01 2021-09-14 City University Of Hong Kong Electronic memory device and a method of manipulating the electronic memory device
US11175338B2 (en) * 2019-12-31 2021-11-16 Alibaba Group Holding Limited System and method for compacting test data in many-core processors
JP7536574B2 (ja) 2020-09-16 2024-08-20 キオクシア株式会社 演算デバイス、計算機システム、及び演算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004153344A (ja) * 2002-10-28 2004-05-27 Ipsquare Inc 情報処理装置及び情報処理方法
JP2004164060A (ja) * 2002-11-11 2004-06-10 Matsushita Electric Ind Co Ltd 検索処理システム及び検索処理方法
JP2006135660A (ja) * 2004-11-05 2006-05-25 Alaxala Networks Corp 連想メモリ及びパケット転送装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658458B1 (en) 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
AU2003265288B2 (en) * 2002-08-10 2008-08-28 Cisco Technology, Inc. Associative memory with enhanced capabilities
US7103708B2 (en) * 2002-08-10 2006-09-05 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry
US7024515B1 (en) 2002-11-15 2006-04-04 Cisco Technology, Inc. Methods and apparatus for performing continue actions using an associative memory which might be particularly useful for implementing access control list and quality of service features
JP4146479B2 (ja) * 2006-09-28 2008-09-10 株式会社東芝 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム
JP6137173B2 (ja) * 2012-04-24 2017-05-31 日本電気株式会社 暗号化データベースシステム、クライアント端末およびデータベースサーバ、結合方法およびプログラム
US9594702B2 (en) * 2014-07-08 2017-03-14 Netronome Systems, Inc. Multi-processor with efficient search key processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004153344A (ja) * 2002-10-28 2004-05-27 Ipsquare Inc 情報処理装置及び情報処理方法
JP2004164060A (ja) * 2002-11-11 2004-06-10 Matsushita Electric Ind Co Ltd 検索処理システム及び検索処理方法
JP2006135660A (ja) * 2004-11-05 2006-05-25 Alaxala Networks Corp 連想メモリ及びパケット転送装置

Also Published As

Publication number Publication date
US10191839B2 (en) 2019-01-29
US20180018257A1 (en) 2018-01-18
CN107622077A (zh) 2018-01-23
JP2018010505A (ja) 2018-01-18

Similar Documents

Publication Publication Date Title
CN107622077B (zh) 检索装置和半导体装置
US8949574B2 (en) Low power, hash-content addressable memory architecture
Li et al. 1 mb 0.41 µm² 2t-2r cell nonvolatile tcam with two-bit encoding and clocked self-referenced sensing
US6845024B1 (en) Result compare circuit and method for content addressable memory (CAM) device
US7213101B1 (en) Classless interdomain routing using binary content addressable memory having mask bits and mask valid bits
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
US9583190B2 (en) Content addressable memory in integrated circuit
US7380053B2 (en) Method and system for emulating content-addressable memory primitives
US6903953B2 (en) Content addressable memory with cascaded array
US9244857B2 (en) Systems and methods for implementing low-latency lookup circuits using multiple hash functions
US6385071B1 (en) Redundant scheme for CAMRAM memory array
US7694068B1 (en) Re-entrant processing in a content addressable memory
JPS60136097A (ja) 連想メモリ装置
JP2000353388A (ja) 内容参照可能メモリの改良
EP1750280A2 (en) Programmable priority encoder
US10373684B2 (en) Semiconductor device
JP2015225675A (ja) 連想メモリおよび半導体装置
US7152141B2 (en) Obtaining search results for content addressable memory
JP4004847B2 (ja) 連想メモリ装置
US20180046689A1 (en) Data conversion device, search system, and method
US7336517B2 (en) Physical priority encoder
AU2021106221A4 (en) An improved tcam cell design and method of operation for reduced power dissipation
US7474545B1 (en) Soft priority circuit and method for content addressable memory (CAM) device
JP2017174478A (ja) 半導体装置、検索システムおよび検索方法
JPH05282362A (ja) データ検索回路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant