CN106803428A - 半导体器件 - Google Patents
半导体器件 Download PDFInfo
- Publication number
- CN106803428A CN106803428A CN201611055279.9A CN201611055279A CN106803428A CN 106803428 A CN106803428 A CN 106803428A CN 201611055279 A CN201611055279 A CN 201611055279A CN 106803428 A CN106803428 A CN 106803428A
- Authority
- CN
- China
- Prior art keywords
- search
- cell array
- search process
- control unit
- storage system
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
- G11C15/046—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
Abstract
包括存储系统的半导体器件被配置为接收搜索数据的输入并在诸如CAM等的存储单元阵列的相应行中并行搜索保持在存储器中的数据。存储系统通过监控搜索命令保持的FIFO缓冲器的填充比来检测输入的搜索数据的流入量是否至少为固定量。存储系统通过将存储单元阵列划分为多块并根据检测结果将每个块设置为搜索处理对象来控制搜索处理的速度。
Description
相关申请的交叉参考
2015年11月26日提交的日本专利申请第2015-230839号的包括说明书、附图和摘要的公开以引用的方式引入本申请。
技术领域
本公开涉及用于搜索保持在存储器中的数据的存储器的技术,具体地,涉及用于降低诸如CAM(内容可寻址存储器)等的存储系统的功耗的技术。
背景技术
诸如桌上型PC(个人计算机)、膝上型PC、平板电脑、智能手机的通信设备以及其他通信设备通过网络耦合到一起。这些通信设备之间的通信量越来越增加。因此,要求诸如路由器、开关的网络设备以及其他网络设备以更高的速度执行处理。使用高速操作的存储系统,从而高速地通过这些网络设备等执行诸如路由搜索等的处理。
例如,在网络路由器等中,执行IP(互联网协议)数据包的路由。例如,网络路由器包括内容可寻址存储器(CAM)。CAM通过多个CAM单元来配置。通过基于将被搜索的数据阵列激活搜索线(SL)并判定与CAM阵列中的每个条目的匹配/不匹配来执行CAM的搜索。作为搜索的结果,CAM输出与搜索线匹配的条目的地址。网络路由器包括的CAM被配置为保持CAM单元中的IP地址。网络路由器通过基于包括在输入的IP数据包中的IP地址将每个条目的地址与保持在CAM单元中的IP地址进行核对来执行路由。
由于CAM以这种方式对于每个条目并行地将CAM阵列中的每个条目的数据与将被搜索的数据进行比较,所以得到高速数据搜索。尽管CAM并行地搜索多个条目并由此得到高速搜索,但高速搜索涉及对每条匹配线(ML)的预充电等,因此功耗相对增加。因此,迄今对用于降低包括CAM的系统的功耗的技术进行了各种建议。例如,日本未审查专利申请公开第2005-18942号描述了一种具有相关存储功能的集成电路,其被配置为减少施加在诸如NPU(网络处理器单元)、ASIC(专用集成电路)等的控制单元上的负载。在日本未审查专利公开第2005-18942号中,公开了用于检测将被搜索的数据与存储在存储器中的数据之间的匹配同时偏移搜索关键字的技术。
发明内容
在诸如路由器、开关等的网络设备等中,希望尽可能避免发生数据不被完整处理并且操作变得不稳定的情况。这是因为网络设备的操作的稳定会使得网络的中断周期的减小并且还会改进网络的可靠性。因此,当在要求诸如路由器、开关等的网络设备的高可靠性的设备中使用CAM时,存在通过提供相对较大的性能裕度、考虑CAM的操作稳定性来进行设备的设计的情况。通过以这种方式配置设备,即使在同时施加大负载时,也允许稳定地操作CAM。然而,当不对设备施加大负载时,利用大于所需的性能来对CAM执行搜索处理,因而阻碍了CAM的功耗的降低。
因此,要求提供在大负载下稳定设备的处理的同时更多地降低存储系统的功耗的技术。本公开的目的在于提供一种稳定在大负载下执行的处理同时降低存储系统的功耗的技术。
本公开的其他目的和新颖特征将根据说明书的描述和附图而变得明显。
根据本公开的一个实施例,提供了一种半导体器件,其被允许接收搜索数据的输入并在存储单元阵列的并列相应行中搜索保持在存储器中的数据。该半导体器件包括:搜索控制单元,其被配置为检测输入的搜索数据的流入量是否至少为固定量并且调整对存储器执行的搜索处理的速度;以及输出控制单元,被配置为输出表示对存储器执行的搜索处理的结果的信号。
在根据一个实施例的半导体器件中,根据负载控制对存储器执行检索处理的速度,同时以高速显示出被请求的存储器的处理性能,从而根据输入半导体器件的检索数据的流入量是否至少为固定量来调整对存储器执行的检索处理的速度。因此,通过降低检索处理的速度,变得可以在检索处理期间在大负载下稳定处理,同时降低功耗的峰值。
附图说明
图1是示出根据第一实施例的包括在半导体器件中的存储系统1的结构的一个示例的框图。
图2是示出控制单元100的结构的一个示例的框图。
图3是示出配置TCAM(三元CAM)阵列块300的CAM单元阵列的相应块的相对优先级的程度的一个示例的示图。
图4A是示出现有技术的检索处理的一个示例的示图。
图4B是示出根据第一实施例分区执行的检索处理的一个示例的框图。
图5A是示出功耗降低之前的状态的一个示例的示图。
图5B是示出通过对TCAM阵列块300分区地执行检索处理所得到的功耗降低的状态的一个示例的示图。
图6A是示出通过对TCAM阵列块300执行平均处理所得到的峰值电流调平(levelling)的一个示例的示图。
图6B是示出通过对TCAM阵列块300执行平均处理所得到的峰值电流调平的另一示例的示图。
图7是示出存储系统1根据队列的使用状态通过确定根据其检索CAM单元阵列的分区的数量执行检索的处理的一个示例的流程图。
图8是示出检索控制单元20通过划分TCAM阵列块300的CAM单元阵列执行检索的操作的一个示例的流程图。
图9是示出根据第二实施例的存储系统1控制CAM单元阵列是否根据将被检索的块的数量的最大阈值被分区检索的处理的一个示例的流程图。
图10是示出根据第三实施例的存储系统1从外部系统接收关于CAM单元阵列是否被分区检索的指定的一个示例的示图。
图11是示出根据第四实施例的存储系统1在控制单元100的划分操作控制寄存器41中保持值并根据划分操作控制寄存器41中的值控制CAM单元阵列是否被分区检索的结构的一个示例的示图。
图12是示出在根据第五实施例的存储系统1的控制电路100中,阈值设置寄存器15根据多个阶段处队列的剩余量保持分区的数量的设置的一个示例的表格。
图13是示出在根据第六实施例的存储系统1的控制电路100中,阈值设置寄存器15保持利用其通过根据队列的剩余量划分CAM单元阵列开始CAM单元阵列的检索的阈值以及利用其终止分区检索处理的一个示例的表格。
图14是示出根据第七实施例的半导体电路包括多个存储系统并且多个存储系统中的主侧存储系统指定针对相应的剩余存储系统是通过划分CAM单元阵列执行检索处理还是不划分CAM单元阵列执行检索处理的结构的一个示例的示图。
图15是示出根据第八实施例的存储系统1包括性能评估单元51并且监控存储系统1的制造变化并根据监控结果控制对CAM单元阵列的检索处理的划分的结构的一个示例的示图。
图16是示出根据第八实施例的控制电路100基于存储系统1的制造变化的评估结果控制对CAM单元阵列执行的检索处理的分区的数量的处理的一个示例的流程图。
图17A是示出根据第九实施例的存储系统1在对CAM单元阵列执行检索处理时保持分区数量的历史并且基于历史校正对CAM单元阵列执行的检索处理中的分区的数量的结构的一个示例的表格。
图17B是示出根据第九实施例的存储系统1在对CAM单元阵列执行检索处理时保持分区数量的历史并且基于历史校正对CAM单元阵列执行的检索处理中的分区的数量的结构的另一示例的表格。
图17C是示出根据第九实施例的存储系统1在对CAM单元阵列执行检索处理时保持分区数量的历史并且基于历史校正对CAM单元阵列执行的检索处理中的分区的数量的结构的又一示例的表格。
图18是示出根据第十实施例的存储系统1仅响应于具体命令划分将对CAM单元阵列执行的检索处理时执行的存储系统1的操作的一个示例的流程图。
图19是示出根据第十二实施例的控制电路100的结构的一个示例的示图。
图20是示出当根据第十三实施例的存储系统1对CAM单元阵列执行检索处理时逐步减少检索处理中的分区的数量,使得间隔大于限定的值周期的处理的一个示例的流程图。
具体实施方式
以下,参照附图详细描述本发明的优选实施例。此外,在以下描述中,相同的标号表示相同的部件。部件的名称和功能相同。因此,不再重复进行其详细描述。
<第一实施例>
将参照附图描述根据第一实施例的半导体器件。
<包括存储系统的半导体器件的结构>
图1是示出根据第一实施例的半导体器件中包括的存储系统1的结构的一个示例的示图。如图1所示,存储系统1包括控制电路100、搜索线驱动器200、TCAM阵列块300、行解码器400、感测放大器/写驱动器500、匹配放大器600、优先级编码器700等。
TCAM阵列块300在多个条目中保持数据。每个条目均通过多个CAM单元(TCAM单元)配置。在图1的示例中,尽管TCAM阵列块300通过N行x N列的CAM单元来配置,但CAM单元的布置不限于N行x N列。地址被分配给每个条目。TCAM阵列块300接收检索数据的输入并且并行地确定检索数据是否与保持在每个条目中的数据匹配。TCAM阵列块300被配置为三元关联存储器(三元CAM)。对于每个CAM单元,可以采用高值(“1”)、低值(“0”)和不在意值(“X”)的三个值。
TCAM阵列块300接收以行为单元(以条目为单元)写入CAM单元的数据。感测放大器/写驱动器500根据来自控制电路100的感测放大器控制信号(Sens Amp.信号)和写驱动器控制信号(Write Driver控制信号)进行操作。感测放大器/写驱动器300基于写入TCAM阵列块300的数据(写数据)激活位线(BL)。此外,行解码器400激活行中的字线(WL)作为TCAM阵列块300中的写对象。行解码器400根据来自控制电路100的读/写控制信号进行操作,接收用于TCAM阵列块300的数据读/写对象的地址的指定,并且激活对应于所接收地址的字线(WL)。存储系统1经由位线和字线将数据写入TCAM阵列块300的指定地址。
TCAM阵列块300接收用于从搜索线驱动器200输出到搜索线(SL)上的信号中进行搜索的数据。搜索线驱动器200根据使用来自控制电路100的搜索线驱动器控制信号(SLDrv.控制信号)的控制进行操作。搜索线驱动器200基于用于搜索TCAM阵列块300的用于搜索的数据(搜索关键字)来激活搜索线(SL)。当TCAM阵列块300被搜索时,经由搜索线(SL)向TCAM阵列块300输出搜索数据。在TCAM阵列块300中,匹配线(ML)维持用于保持与搜索数据匹配的数据的条目的高等级。
匹配放大器600根据使用控制电路100输出的匹配放大器控制信号(Match amp.控制信号)的控制进行操作。匹配放大器600放大来自匹配线的输出,并且在TCAM阵列块300的搜索中向优先级编码器700输出条目搜索判定信号mao。
当在多个条目中,搜索数据匹配保持在TCAM阵列块300的每个条目中保持的数据时,优先级编码器700优先地输出任何一个数据。例如,当保持在TCAM阵列块300的每个条目中的数据通过使用作为搜索数据的值“X”进行搜索时,保持在多个条目中的数据可以被搜索命中。优先级编码器700例如根据预定的优先级顺序(例如,在TCAM阵列块300的条目中,为地址最小的条目给出优先级)向控制电路100输出与被搜索命中的匹配线相对应的地址作为搜索结果(匹配地址)。
控制电路100是用于控制对存储系统1的TCAM阵列块300进行的搜索操作的电路。控制电路100从布置在存储系统1外的电路接收包括对TCAM阵列块300的搜索命令的控制信号,根据预定的时钟信号进行操作,并且输出对TCAM阵列块300执行的搜索的结果。此外,控制电路100判定从布置在存储系统1外的电路接收的搜索命令的停滞(stagnant)状态(例如,保持搜索命令等的队列的使用状态等),并且向布置在存储系统1外的电路输出判定结果作为流控制信息。
图2是示出控制电路100的结构的一个示例的框图。控制电路100通过显示出图2所示每个块的功能的每个电路来配置。如图2所示,控制电路100包括命令解码器11、队列监控单元10、搜索控制单元20、搜索结果合并单元26、输出控制单元30等。
控制电路100接收来自存储系统1外(例如,布置在存储系统1外的电路)的搜索命令110。搜索命令110是用于搜索存储系统1的TCAM阵列块300中保持的数据的命令,并且包括搜索数据(搜索关键字)、搜索的各种选项的设置等。作为搜索数据(搜索关键字),例如,可以给出将被搜索的字符串、诸如IP地址的数字数据等以及其他数据。
命令解码器11对存储系统1接收的命令进行解码并且执行转换命令格式的处理,使其变得可用于存储系统1中的每个电路(诸如控制电路100等),从而处理命令等等。例如,命令解码器11判定存储系统1接收的命令是搜索命令、保持在TCAM阵列块300中的数据的写/读命令、用于执行各种设置的命令还是其他命令,并且根据判定结果执行各种格式的转换等。命令解码器11将搜索命令110的格式转换为可由控制电路100中的每个电路执行的格式。
队列监控单元10监控输入至存储系统1的搜索数据的流入量,并且当搜索数据的流入量至少为固定量时,向搜索控制单元20输出表示搜索数据的流入量至少为固定量的信号。在队列监控单元10中,在阈值设置寄存器15中预先设置将与输入数据FIFO存储器12的使用量进行比较的阈值。队列监控单元10基于队列的使用状态(诸如队列的使用量等)与阈值设置寄存器15中设置的阈值进行比较的比较结果向搜索控制单元20输出表示比较结果的信号。例如,当队列的使用状态不超过预先在阈值设置寄存器15中设置的阈值时,控制电路100通过将每个块划分为多个部分执行搜索处理,从而抑制在对TCAM阵列块300执行搜索处理时使用的峰值功率。此外,例如,当队列的使用状态超过预先在阈值设置寄存器15中设置的阈值时,控制电路100对TCAM阵列块300执行搜索处理而不进行划分。控制电路100通过优先化搜索处理的处理速度来高速地处理队列中停滞的命令。
如图2所示,队列监控单元10包括输入数据FIFO存储器12、输出数据FIFO存储器13、队列管理单元14、阈值设置寄存器15等。输入数据FIFO存储器12是用于临时地存储数据的存储器,该数据通过命令解码器11转换为可在控制电路100中执行的格式。输入数据FIFO存储器12例如是缓冲存储器,用于保持输入至存储系统1的搜索数据。控制电路100可以通过利用输入数据FIFO存储器12临时地缓冲输入至存储系统1的数据来应对在对存储系统1执行搜索处理时发生的中断处理的情况。此外,可以通过输入数据FIFO存储器12吸收存储系统1与布置在存储系统1外的电路之间的等待时间(latency)。
输出数据FIFO存储器13是用于保持将从控制电路100输出到存储系统1外(例如,布置在存储系统1外的电路)的数据(诸如对TCAM阵列块300等执行的搜索处理的结果等)的缓冲存储器。例如,当存储系统1输出对TCAM阵列块300的搜索结果的外部电路处于难以接收来自存储系统1的输出结果的状态(繁忙状态)时,期望在输出数据FIFO存储器13中缓冲数据。此外,当对TCAM阵列块300执行的搜索处理的结果通过添加另外d个数据来输出至存储系统1外布置的电路时以及当发生存储系统1的数据总线的仲裁(arbitration)时,期望由输出数据FIFO存储器13缓冲输出数据。当保持在输出数据FIFO存储器13中的数据的数据量超过阈值时,可能发生溢出等。因此,当通过向搜索控制单元20输出关于输出数据FIFO存储器13的使用状态的信息来对TCAM阵列块300执行搜索处理时,队列管理单元14可确定块的数量(划分的数量)。
阈值设置寄存器15是用于保持将与输入数据FIFO存储器12的使用状态进行比较的阈值的寄存器。例如,可以通过从存储系统1外(例如,布置在存储系统1外的电路)接收用于选项设置等的信号输入,通过控制电路100来设置保持在阈值设置寄存器15中的阈值。此外,阈值设置寄存器15可以被配置为保持将与输出数据FIFO存储器13的使用状态进行比较的阈值。当输出数据FIFO存储器13的使用量超过阈值时,队列管理单元14向搜索控制单元20输出信号,从而抑制输出数据FIFO存储器13的溢出。搜索控制单元20变得可以低速分区地执行搜索处理,并且通过这种方式临时地暂缓搜索处理等。
队列管理单元14通过将保持在阈值设置寄存器15中的阈值(管理阈值)与输入数据FIFO存储器12的使用状态进行比较来管理输入数据FIFO存储器12的使用状态。当输入数据FIFO存储器12的使用量超过固定量时,队列管理单元14向搜索控制单元20输出表示输入数据FIFO存储器12的使用量超过固定量的信号。此外,队列管理单元14管理输出数据FIFO存储器13的使用量。例如,当布置在存储系统1外的电路中的处理停滞时,存在输出数据FIFO存储器13的使用量逐渐增加的情况,因为对TCAM阵列块300执行的搜索处理的结果等从输出控制单元30输出至布置在存储系统1外的电路。队列管理单元14管理输出数据FIFO存储器的使用状态,并且以这种方式向搜索控制单元20输出表示输出数据FIFO存储器13的使用状态与保持在阈值设置寄存器15中的阈值之间的比较结果的信号。
此外,队列管理单元14监控输入数据FIFO存储器12和输出数据FIFO存储器13的使用量,并且向布置在存储系统1外的电路输出队列的使用状态作为流控制信息120。当控制电路100的处理速度快于从布置在存储系统1外的电路向控制电路100输入的命令的流入速度时,可以说几乎不会发生控制电路100还没有处理输入数据FIFO存储器12中的停滞的命令。然而,当进入控制电路100的数据的流入速度超过控制电路100的处理速度时,被控制电路100处理的命令累积在数据输入FIFO存储器12中,并且由于溢出而可能发生命令的丢失等。队列管理单元14提前在寄存器、用于管理的存储区域和其他存储区域中设置将与输入数据FIFO存储器12上的负载进行比较的阈值,将阈值与输入数据FIFO存储器12的加载状态进行比较,并在加载状态超过阈值的情况下向布置在存储系统1外的电路输出警告信号(流控制信息),从而防止发生溢出、命令丢失等。
此外,例如,存在控制电路100用于网络的流量管理的情况。在这种情况下,假设对控制电路100进行的命令输入等超过预先设置的处理能力。在这种情况下,控制电路100可以执行诸如流量抛光、流量修整等的处理,以执行网络的流量管理。流量抛光表示丢弃控制电路100没有调平(levelling)接收的命令。此外,流量修整表示在允许调平的范围中执行调平,并且执行丢弃不能进行调平的命令。这里,假设队列监控单元10以这种方式监控网络的流量。在这种情况下,当流量在不超过预先设置的处理能力的范围内时,控制电路100使得搜索控制单元20进行操作以分区地执行搜索处理,从而减小峰值电流。从而,存储系统1可以降低用于存储系统1的电源的电源能力。此外,存储系统1可以降低电源噪声并且减少由噪声引起的存储系统1的故障的数量。
搜索控制单元20判定对TCAM阵列块33执行的搜索处理是以CAM单元阵列的块为单位分区执行还是在一次性(in a lump)全部并行地搜索CAM单元阵列的相应条目。搜索控制单元20基于从队列监控单元10发送的信息以及保持在设置管理单元25中的信息来执行这种判定处理。
搜索控制单元20判定输入至存储系统1的搜索数据的流入量是否至少为固定量。搜索控制单元20根据判定结果调整对TCAM阵列块300执行的搜索处理的速度。搜索控制单元20基于队列监控单元10输出的信号调整搜索处理的速度。搜索控制单元20对TCAM阵列块300执行搜索处理,目标在于通过将TCAM阵列块300的CAM单元阵列划分为多个部分(块)而得到的相应部分(块)的至少一个作为搜索处理对象。从而,搜索控制单元20调整对TCAM阵列块300执行的搜索处理的速度。
如图2所示,控制单元20包括处理命令管理单元21、搜索引擎控制单元22、命令划分控制单元23、搜索对象区域判定单元24、设置管理单元25等。处理命令管理单元21读出存储在输入数据FIFO存储器12中的数据并且管理从布置在存储系统1外的电路输出的命令(诸如搜索命令110等)。例如,处理命令管理单元21读出存储在输入数据FIFO存储器12中的数据并且管理处理相应命令的顺序以及关于对哪个电路执行处理和对被处理的电路执行什么操作的处理细节(对TCAM阵列块300是否执行搜索或写入等)。
当控制电路100对TCAM阵列块300执行搜索处理时,搜索引擎控制单元22生成用于驱动每个电路(诸如搜索线驱动器200等)的控制信号,并经由例如命令划分控制单元23将如此生成的控制信号输出至每个电路。
当控制电路100划分CAM单元阵列以逐块地配置TCAM阵列块300并对每一块执行搜索处理时,命令划分控制单元23生成用于指定将被搜索的块的控制信号(块使能信号BE)。命令划分控制单元23将生成的控制信号输出至每个电路。与从命令划分控制单元23输出用于开始搜索处理的控制信号同步地,搜索数据被输出至TCAM阵列块300。
搜索对象区域判定单元24读出保持在设置管理单元25中作为设置的用于搜索的参数,并且判定在搜索命令110中指示的将被搜索的CAM单元阵列的范围。例如,搜索对象区域判定单元24读出关于配置TCAM阵列块300的块的数量的信息、TCAM阵列块300保持的数据种类(TCAM阵列块300是否保持关于诸如IP地址等的地址的信息)、经受针对从存储系统1外输入的搜索数据的屏蔽处理的范围、搜索数据的大小以及其他作为设置的信息。例如,当多种CAM存储器被用于存储系统1时,搜索对象区域判定单元24基于从设置管理单元25中读出的上述信息,通过识别将被搜索的CAM存储器等判定将被搜索的CAM单元阵列的范围。处理命令管理单元21基于搜索对象区域判定单元24的判定结果向搜索引擎控制单元22发送搜索指令。
设置管理单元25存储在对TCAM阵列块300执行搜索处理时用于判定被激活的CAM单元阵列的范围的信息。例如,设置管理单元25与存储在TCAM阵列块300中的数据的种类(地址信息等)相对应地指定并存储配置CAM单元阵列的块。
当通过以块为单元划分CAM单元阵列来对TCAM阵列块300执行搜索处理时,搜索结果合并单元26接收并合并对相应块执行的搜索的结果(诸如匹配地址等)。搜索结果合并单元26使得输出数据FIFO存储器13存储合并后的搜索结果。
输出控制单元30向布置在存储系统1外的电路输出对TCAM阵列块300执行的搜索处理的结果来作为搜索结果130。搜索结果130包括是否存在与搜索数据匹配的数据(命中/丢失信息)以及何时存在与搜索数据匹配的数据(诸如命中地址等)。
图3是示出配置TCAM阵列块300的CAM单元阵列的相应块的优先级程度的一个示例的表格。如图3所示,配置TCAM阵列块300的CAM单元阵列的每个块均包括多个条目。此外,针对每个块设置优先级程度,并且为地址小于其他的块设置高于其他的优先级程度。当以配置CAM单元阵列的块为单位分区执行搜索处理时,搜索控制单元20可以控制执行搜索处理,以便从CAM单元阵列中优先级程度高于其他的块(例如,优选包括地址小于其他的条目的块)开始,并且可以控制不对在从优先级解码器700输出搜索结果且控制电路100接收搜索结果时还没有执行搜索处理的块进行搜索处理。从而,可以降低存储系统1的功耗,并且不仅还可以减少峰值功率而且还可以减少存储系统1消耗的电能的总量。
图4A是示出现有技术的检索处理的一个示例的示图,以及图4B是示出根据第一实施例分区执行检索处理的一个示例的示图。
图4A是现有技术的用于对被选择进行搜索的块执行搜索处理的结构的概况的一个示例的示图。图4B是示出第一实施例中的用于通过基于队列监控单元10的队列监控结果以块为单元划分将被搜索的CAM单元阵列的范围来动态地确定是否执行搜索处理的结构的概况的一个示例的示图。
如图4A的状态所示,在现有技术中,半导体电路管理CAM单元阵列的每个块作为与被搜索的数据的组相对应的轮廓。在图4A的状态中,选择组“Group#0”。相反,在第一实施例中,如图4B的状态所示,存储系统1包括块选择电路28,其接收来自命令划分控制单元23的控制信号并向TCAM阵列块300输出信号。在图4B的状态中,组“Group#0”和组“Group#1”被设置为根据轮廓进行搜索。通过命令划分控制单元23控制对每个组的匹配线的预充电。在图4B的状态中,搜索处理被划分并且组“Group#0”被设置为进行搜索。从而,控制电路100可以在TCAM阵列块300的CAM单元阵列是否被划分为多个块并按顺序搜索块以及是否并行地搜索相应条目而不以块为单位划分CAM单元阵列之间进行切换。
此外,假设通过软件处理来执行将通过划分CAM单元阵列来执行的搜索处理。在这种情况下,当在网络路由器等的数据包过滤中请求高处理速度时,存在难以实施所请求的处理速度的情况。这是因为用于管理对相应块执行的搜索的结果的处理以及合并对相应块执行的搜索的结果的负载较大。具体地,在使用通用CPU(中央处理单元)的软件处理中,降低了性能。由于在网络系统中,具体要求设备不发生故障且稳定地执行处理,所以通常来说,通过提供大约20%至大约100%的性能裕度来设计系统。因此,由于CAM存储系统通过假设瞬时发生大流量的负载进行操作,所以CAM存储系统可以稳定操作,即使流量达到假设的峰值。然而,由于即使在流量没有达到峰值的情况下也以相同方式执行搜索处理,所以这阻碍了低功耗的实现。另一方面,根据第一实施例,由于通过队列监控单元10来监控控制电路100的负载并且根据监控结果来确定是否通过划分TCAM阵列块300的CAM单元阵列来执行搜索处理,所以可以实现进一步低的功耗。即,控制电路100自主地确定是否通过划分TCAM阵列块300的CAM单元阵列来执行搜索处理,从而可以在接近平均功率的状态下以峰值功率进行工作并且可以抑制功耗。可以通过实施较低的功耗来增加板设计和电源设计的自由度。
图5A和图5B是示出通过划分TCAM阵列块300的CAM单元阵列执行搜索处理得到低功耗的示例的示图。图5A是示出当不进行划分地对CAM单元阵列执行搜索处理时在进行搜索的情况下存储系统1的功耗的状态的一个示例的示图。图5B是示出当通过将TCAM阵列块300的CAM单元阵列划分为两个部分执行搜索处理时在进行搜索的情况下存储系统1的功耗的状态的一个示例的示图。如图5B的状态所示,尽管增加了用于完成搜索处理的时间,但与图5A的情况相比,可以通过将CAM单元阵列划分为两个部分执行搜索处理来调平峰值功率。
图6A和图6B是示出通过平均对TCAM阵列块300执行的处理得到的峰值功率的调平的示例的示图。图6A是示出当不划分地对CAM单元阵列执行搜索处理时存储系统1中的电流的幅度的状态的一个示例的示图。在图6A的状态中,两次执行搜索处理。图6B是示出当通过将TCAM阵列块300的CAM单元阵列划分为两个部分执行搜索处理时存储系统1的电流的幅度的状态的一个示例的示图。如图6B的状态所示,与图6A所示没有划分地执行搜索处理的情况相比,可以通过划分CAM单元阵列执行搜索处理来使峰值电流接近平均电流。
<根据第一实施例的半导体器件的操作>
图7是示出存储系统1根据队列的使用状态通过确定分区的数量(以下称为分区数)执行搜索处理以对CAM单元阵列执行搜索处理的处理的一个示例的流程图。例如,当处理命令管理单元21获取保持在输入数据FIFO存储器12中的搜索命令时,开始图7所示的处理。
在步骤S701中,搜索控制单元20接收表示输入数据FIFO存储器12的使用状态的信号以判定进入存储系统1的数据的流入量是否至少为固定量。当进入存储系统1的数据的流入量至少为固定量时,即,输入数据FIFO存储器12的使用量超过固定量(步骤S701中为否),则执行步骤S709中的处理。当进入存储系统1的数据的流入量不大于固定量时,即,输入数据FIFO存储器12的使用量不超过固定量(步骤S701中为是),则执行步骤S703中的处理。作为可选,队列管理单元14可以监控输入数据FIFO存储器12和输出数据FIFO存储器13的使用量,并且可以判定停留队列的数量是否不大于阈值设置寄存器15中设置的阈值。当停留队列的数量不大于阈值(步骤S701中为是)时,队列管理单元14向搜索控制单元20输出表示进入存储系统1的数据的流入量不大于固定量的信号。而在其他情况下(步骤S701中为否),队列管理单元14向搜索控制单元20输出表示进入存储系统1的数据的流入量至少为固定量的信号。搜索控制单元20接收队列管理单元14以这种方式输出的信号,从而判定进入存储系统1的数据的流入量是否至少为固定量。
在步骤S703中,搜索控制单元20判定输入到存储系统1中的命令是否是多个循环的命令或一个循环的命令。输入至存储系统1的命令无论是多个循环的命令还是一个循环的命令,都通过命令解码器11来解码。当判定输入至存储系统1的命令是多个循环的命令时(步骤S703中的“多循环的命令”),搜索控制单元20执行步骤S707中的处理,而当判定输入至存储系统1的命令是一个循环的命令时,搜索控制单元20执行步骤S709中的处理。
在步骤S707中,搜索控制单元20根据由设置管理单元表示的设置向TCAM阵列块300发布命令,以通过根据分区数划分TCAM阵列块300的CAM单元阵列来执行搜索处理。
在步骤S709中,搜索控制单元20根据由设置管理单元25表示的设置向TCAM阵列块300发布命令,以执行搜索部分而不划分TCAM阵列块300的CAM单元阵列。
图8是示出搜索控制单元20通过划分TCAM阵列块300的CAM单元阵列执行搜索处理的操作的一个示例的流程图。
在步骤S801中,搜索控制单元20根据由设置管理单元25指示的设置(关于将被搜索的一个或多个块的信息、关于分区数的信息以及在控制电路100存储的TCAM阵列块300轮廓信息中表示的其他信息)判定TCAM阵列块300的CAM单元阵列的划分的块中将被搜索的块。
在步骤S803中,搜索控制单元20在TCAM阵列块300的CAM单元阵列的被搜索块中选择首先被搜索的一个或多个块,并且搜索所选块。例如,搜索控制单元20基于针对每个块的优先级设置程度选择首先将被搜索的块。
在步骤S805中,搜索控制单元20基于从优先级编码器700输出至控制电路100的信号判定在已经被选择进行搜索的块中存在对应于搜索关键字的数据。当存在对应于搜索关键字的数据时(步骤S805中为是),则控制电路100执行步骤S813中的处理,而在其他情况下(步骤S805中为否),则控制电路100执行步骤S807中的处理。
在步骤S807中,搜索控制单元20判定在将被搜索的块中是否存在还没有被选择搜索的块(是否存在剩余被搜索的块)。当存在没有被选择搜索的块时(步骤S807中为是),则控制电路100执行步骤S809中的处理,而在其他情况下(步骤S807中为否),则控制电路100执行步骤S813中的处理。
在步骤S809中,搜索控制单元20在将被搜索的块中还没有被选择进行搜索的块中选择接下来将要搜索的一个或多个块,并搜索所选择的块。例如,搜索控制单元20基于为每个块设置的优先级程度选择接下来被搜索的块。
在步骤S811中,搜索控制单元20基于从优先级编码器700输出至控制电路100的信号判定已经被选择进行搜索的块中是否存在对应于搜索关键字的数据。当在所关注块中存在对应于搜索关键字的数据时(步骤S811中为是),则控制电路100执行步骤S813中的处理,而在其他情况下(步骤S811中为否),控制电路100执行步骤S807中的处理。
在步骤S813中,输出控制单元30向布置在存储系统1外的电路输出由搜索结果合并单元26合并的搜索结果。
根据图8所示的处理,当在通过划分CAM单元阵列执行搜索处理的情况下输出对应于搜索关键字的数据作为搜索结果时,控制电路100输出搜索结果并终止处理,即使当存在还没有被选择进行搜索的块。通常,由于对CAM单元阵列中的每个条目(每个块)设置优先级程度,所以以这种方式,搜索处理可以终止于已经从高优先级程度的块中得到搜索结果的阶段。从而,可以更多地降低存储系统1的功耗。
<第二实施例>
接下来,将描述根据第二实施例的半导体器件中包括的存储系统。
在第二实施例中,关于TCAM阵列块300的CAM单元阵列,可以预先设置将被搜索的块的最大数量作为阈值。当CAM单元阵列的将被搜索的范围超过阈值时,控制电路100通过划分TCAM阵列块300的CAM单元阵列来执行搜索处理。例如,可以预先在设置管理单元25中设置将被搜索的块的最大数量。此外,除了在设置管理单元25中设置阈值之外,控制电路100可以从存储系统1的外部(例如,布置在存储系统1外的电路)接收关于阈值的信息,该阈值可以存储在诸如闪存等的非易失性存储器中,并且可以从来自电熔丝的信号获取关于阈值的信息。
以这种方式,搜索控制单元20被配置为管理被设置为搜索处理对象的CAM单元阵列的范围的上限设置值(阈值)。当基于输入至控制电路100的搜索数据被设置为搜索处理对象的CAM单元阵列的范围超过上限设置值时,搜索控制单元20对通过将CAM单元阵列划分为多个部分作为搜索处理对象而得到的每个部分执行搜索处理。
图9是示出根据第二实施例的存储系统1执行关于是否通过根据将被搜索的块的数量的最大阈值划分CAM单元阵列执行搜索处理的控制的一个示例的流程图。
在步骤S905中,搜索控制单元20判定CAM单元阵列中将被搜索的块的数量是否超过设置为阈值的最大数值。当将被搜索的块的数量超过被设置为阈值的最大数值时(步骤S905中为是),则控制单路100执行步骤S707中的处理。在其他情况下(步骤S905中为否),则控制电路100执行步骤S709中的处理。
以这种方式,控制电路100读取关于从例如设置管理单元25的存储区域(轮廓寄存器)搜索出哪个块的信息。例如,根据当将被搜索的数据为表格时、当将被搜索的数据是ACL(访问控制列表)表格时、当将被搜索的数据是转发表格时以及其他情况下的数据种类,将被搜索的块的范围保持在寄存器、用于管理的存储区域以及其他存储区域中作为轮廓。控制电路100参考轮廓并根据在所关注的搜索命令中指示的数据种类获取关于将被搜索的块的范围的信息。在第二实施例,当将被搜索的块的范围超过设置为阈值的块的最大数量时,控制电路100通过划分CAM单元阵列来执行搜索处理。将被划分的块的大小被限定在没有达到设置为阈值的块的最大数量的范围内。其可以将搜索时消耗的功耗的幅度限制到对与阈值相对应的最大数量的块执行搜索处理时消耗的功耗的幅度,并且可以通过以这种方式动作来促进低功耗。从而,可以避免当峰值功率较大时发生的板的电源的降低,并且减少背景噪声的生成。
即,通过将搜索时消耗的功耗的幅度抑制到小于固定值,可以最小化被认为是抗噪声测量的电源网络的阻抗,并且可以节省进行这种测量的时间和劳动力(大量的旁路电容器被布置在板上)。从而,可以有利于诸如电源设计、板设计等的各种设计。具体地,近来,存在耦合至网络的设备数量增加的趋势,并且还存在增加搜索范围的趋势。因此,期望将电源的阻抗设置为不大于固定值(例如,不大于约0.5mΩ)。在第二实施例中,可以根据电源设置的限制条件预先设置将被搜索的块的最大数量,并且可以有利于诸如电源设计、板设计等的设计。
<第三实施例>
接下来,将描述根据第三实施例的半导体器件中包括的存储系统。
图10是示出根据第三实施例的存储系统1从外部系统接收关于是否通过划分CAM单元阵列执行搜索处理的指定的一个示例的示图。图10中的控制电路100从布置在存储系统1外的电路接收控制信号,该信号包括关于是否通过划分CAM单元阵列执行搜索处理的标记、关于将被搜索的块的最大数量的信息等。
在第三实施例中,向存储系统1发布搜索命令的系统(管理存储系统1的主侧系统)使得可以执行关于是否通过划分到存储系统1的TCAM阵列块300的CAM单元阵列执行搜索处理的指定。以基于命令的方式,从布置在存储系统1外的电路或者管理存储系统1的主侧系统,可以任选地执行关于是否通过划分CAM单元阵列执行搜索处理的指定。从而,由于可以减少用于在存储系统1与主侧系统之间交换信号所用的等待时间,所以以更加实时的方式执行从主侧系统对存储系统1的控制。例如,可以使控制器在系统层级处管理多个设备,以监控关于将被管理的相应设备彼此冲突多少、在多大程度上操作每个设备等的信息,并且根据设备之间冲突的程序、每个设备上负载的程度,判定是否通过划分存储系统1的CAM单元阵列执行搜索处理。
以这种方式,存储系统1被配置为接收搜索数据的输入,包括关于是否通过将CAM单元阵列划分为多个部分并选择至少一个部分作为搜索处理对象来执行搜索处理的指定。搜索控制单元20被配置为根据包括在搜索数据中的指定调整搜索处理的速度。
<第四实施例>
接下来,将描述根据第四实施例的半导体器件中包括的存储系统。
图11是示出根据第四实施例的存储系统1在控制电路100中的划分操作控制寄存器41中保持值并且执行关于是否通过根据划分操作控制寄存器41中的值划分CAM单元阵列来执行搜索处理的控制的结构的一个示例的示图。
可以使存储系统1限制CAM单元阵列的库激活(bank activation)的数量,并且进行关于峰值功率的降低是否优选以及对CAM单元阵列执行搜索处理的性能是否优选的设置。控制电路100根据在划分操作控制寄存器41中指示的设置对CAM单元阵列执行搜索处理。例如,与划分操作控制寄存器41中的时区相对应,可以进行关于是否通过划分CAM单元阵列执行搜索处理的指定。然而,即使在指定通过划分CAM单元阵列执行搜索处理的时区中,根据队列监控单元10的监控的结果,搜索处理的性能也可以是优选的而不通过划分CAM单元阵列执行搜索处理。例如,在网络流量增加的时区等中,通过优选性能来执行搜索处理而不通过根据划分操作控制寄存器41中的设置划分CAM单元阵列来执行搜索处理,以增加路由处理的稳定性等。另一方面,在网络的流量负载降低的时区中,还可以应对当发生负载波动时提升性能的处理,同时通过划分CAM单元阵列执行搜索处理用于得到低功耗。
存储系统1被配置为在划分操作控制寄存器41中存储关于搜索控制单元20是否执行搜索处理、目标在于通过将CAM单元阵列划分为多个部分而得到的至少一个部分作为搜索处理对象的设置,或者关于搜索控制单元20执行搜索处理、目标在于整个CAM单元阵列作为搜索处理对象的设置。搜索控制单元20被配置为根据划分操作控制寄存器41中指示的设置执行搜索处理。
<第五实施例>
接下来,将描述根据第五实施例的半导体器件中包括的存储系统。
图12是示出在根据第五实施例的存储系统1的控制电路100中,阈值设置寄存器15根据多个阶段处队列的剩余量保持分区数的设置的一个示例的表格。
可以减小当跨越在阈值设置寄存器15中指示的阈值之上执行搜索处理时发生的变化,并且可以利用FIFO存储器(诸如输入数据FIFO存储器12等)的填充比(packingratio)而通过在多个阶段使通过划分CAM单元阵列执行搜索处理时的分区数量(执行的搜索处理的次数)可设置(以这种方式设置为标准)来稳定处理。
在图12所示示例中,表明当FIFO存储器中队列的使用量(填充比)超过分配给该FIFO存储器的存储区域的大约70%时,搜索控制单元20通过对CAM单元阵列的实体执行一次搜索处理来优选搜索处理的性能,而不通过划分CAM单元阵列来执行搜索处理。此外,还表明当FIFO存储器中队列的使用量小于分配给该FIFO存储器的存储区域的大约10%时,搜索控制单元20通过将CAM单元阵列划分为五个部分来对CAM单元阵列执行五次搜索处理。
队列监控单元10可以在阈值设置寄存器15中设置多阶段的阈值,使得诸如输入FIFO存储器12等的FIFO存储器的使用量越大,执行搜索处理时CAM单元阵列的分区数量越小。队列监控单元10被配置为:当FIFO存储器的使用量超过阈值设置寄存器15中设置的多阶段阈值中的每一个时,向搜索控制单元20输出根据每个阶段的信号。搜索控制单元20根据在队列监控单元10输出的信号中表示的阶段,通过根据分区数量将CAM单元阵列划分为多个部分来执行搜索处理。此外,当搜索控制单元20通过划分CAM单元阵列执行搜索处理时,可以通过从优先级高于其他块的块开始轮流选择,通过输出搜索结果可以降低负载较低时搜索处理所使用的功耗和峰值功率。
<第六实施例>
接下来,将描述根据第六实施例的半导体器件中包括的存储系统。
图13是示出表明在根据第六实施例的存储系统1的控制电路100中,阈值设置寄存器15根据队列的剩余量保持利用其开始对CAM单元阵列执行分区搜索处理的阈值以及终止对CAM单元阵列执行分区搜索处理的阈值的一个示例的表格。
与FIFO存储器(诸如输入数据FIFO存储器12等)的使用量相对应,队列监控单元10可以设置当搜索控制单元20通过将CAM单元阵列划分为多个部分执行搜索处理时使用的第一阈值以及当搜索控制单元20对整个CAM单元阵列执行搜索处理而不划分CAM单元阵列时使用的第二阈值。当队列监控单元10根据第一阈值输出信号时,搜索控制单元20执行已经划分为多个部分的CAM单元阵列的搜索处理。当队列监控单元10根据第二阈值输出信号时,搜索控制单元20执行整个CAM单元阵列被设置为搜索处理对象的处理。
可以避免阈值附近的分区搜索处理的设置和重置,并且可以通过在阈值设置寄存器15中分别保持在开始通过划分CAM单元阵列执行搜索处理时使用的阈值以及在终止分区搜索处理时使用的阈值来更加稳定存储系统1的操作。在图13的示例中,当FIFO存储器的填充比超过存储区域的约70%时,性能被优选,并且不执行划分CAM单元阵列的搜索处理且一次性对整个CAM单元阵列执行搜索处理。当FIFO存储器的填充比逐渐下降且达到大约50%时,搜索控制单元20开始再次划分CAM单元阵列的搜索处理。以这种方式,通过向阈值设置寄存器15施加滞后特性来稳定存储系统1的操作。
<第七实施例>
接下来,将描述根据第七实施例的半导体器件中包括的存储系统。
图14是示出当根据第七实施例的半导体器件包括多个存储系统并且这些存储系统的主侧系统对每个存储系统进行关于是通过划分CAM单元阵列还是不划分CAM单元阵列执行搜索处理的指定时得到的结构的一个示例的示图。
半导体器件包括多个存储系统,并且被配置为可以对包括在每个存储系统中的CAM单元阵列执行搜索处理。每个存储系统均接收关于通过将多个存储系统的任一个CAM单元阵列划分为多个部分而得到的每个部分是否被设置为搜索处理对象的指定并且根据所接收的指定执行搜索处理。
在图14的示例中,在每个实施例中描述半导体器件包括多个存储系统的结构。该半导体器件包括第一存储系统1A和第二存储系统1B。第一存储系统1A包括TCAM阵列块300A。第二存储系统1B包括TCAM阵列块300B。NPU 900操作为存储系统1A和1B的主侧系统,并且控制每个存储系统。每个存储系统可独立地具有设置,并且可以根据设置进行操作。例如,第一存储系统1A可以基于根据第一实施例的存储系统1的结构进行操作,并且第二存储系统1B可以基于根据第二实施例的存储系统1的结构进行操作。此外,将NPU与存储系统耦合的信号布线(诸如将NPU 900与存储系统1A耦合的信号布线)可以在图14中并行示出,并且可以经由并行的信号布线执行对CAM单元阵列执行的搜索处理的选项的切换。以这种方式,存储系统的控制还变得可能,同时有效地利用布线资源。
此外,每个存储单元可以被配置为基于来自布置在存储系统外的电路(诸如NPU900等)的信息执行关于是否通过划分CAM单元阵列执行搜索处理的控制。例如,第一存储系统1A可以接收表示半导体器件的当前功耗、每个设备的负载状态等的信号,并且可以确定是否通过划分CAM单元阵列以及分区数设置为多少。例如,在半导体器件中,基于表示负载的状态、功耗和除第一存储系统1A之外的其他设备的其他处理的信息,配置半导体器件的整个系统的电功率波动可以通过以下方式降低:例如当其他设备的负载和功耗较高时,划分CAM单元阵列执行搜索处理;例如当其他设备的负载较低时,不划分CAM单元阵列来执行搜索处理。
<第八实施例>
接下来,将描述根据第八实施例的半导体器件中包括的存储系统。
图15是示出根据第八实施例的存储系统1包括性能评估单元51的结构的一个示例的示图,其监控存储系统1的制造中的变化并且根据监控结果控制对CAM单元阵列执行的搜索处理的划分。
存储系统1包括的性能评估单元51还监控制造包括在半导体器件中的至少任何一个相应电路中的变化。搜索控制单元20被配置为:根据由性能评估单元51对制造变化的监控结果,基于CAM单元阵列的哪个部分被设置为搜索处理对象来确定分区数量。
图16是示出根据第八实施例的控制电路100基于存储系统1的制造变化的评估结果控制对CAM单元阵列执行的搜索处理的分区数量(即,基于其对CAM单元阵列执行搜索处理的分区数量)的处理的一个示例的流程图。
在步骤S1601中,控制电路100通过结合到存储系统1中的模拟元件获取电流测量的结果(测量值A)以及预先针对每个产品确定的保持在控制电路100中的标准值(标准值B)作为用于通过性能评估单元51来评估存储系统1的性能的信息。当存储系统1被配置为具有平均功耗时,通过测量电流值将标准值设置为标准值B。
在步骤S1603中,控制电路100通过将获取的信息(测量值A和标准值B)进行比较来判定存储系统1是否是功耗高于平均功耗的标准的系统。当存储系统1是功耗高于平均功耗的标准的存储系统时(步骤S1603中为是),则控制电路100执行步骤S707中的处理,而在其他情况下(步骤S1603中为否),控制电路100执行步骤S709中的处理。
此外,当存储系统1具有高于平均功耗的标准的功耗时,可以改变设置,使得用于对CAM单元阵列执行的搜索处理的分区数量被设置为大于通常值(平均功耗的系统),并且同时被搜索的区域数量减少等等。此外,当存储系统1具有低于平均功耗的标准的功耗时,可以改变设置,使得用于对CAM单元阵列执行的搜索处理的分区数量被设置为小于通常值(平均功耗的系统),并且增加在CAM单元阵列中包括的每块中同时搜索的区域的数量等等。
此外,尽管可以通过利用结合到微计算机等中的模拟元件测量关于半导体器件的电流、电压等的信息,但用于直接检测电源中的变化量的机制、用于直接测量电源电压的机制以及用于感测电流等的其他机制和/或技术可以结合到半导体器件中。
<第九实施例>
接下来,将描述根据第九实施例的半导体器件中包括的存储系统。
图17A至图17C是示出根据第九实施例的存储系统1保持当对CAM单元阵列执行搜索处理时的分区数量的历史并且基于历史校正对CAM单元阵列执行的搜索处理的分区数量的结构的示例的示图。
搜索控制单元20被配置为在通过将CAM单元阵列划分为多个部分执行搜索处理时保持分区数量的历史,并且还被配置为根据分区数量的历史确定CAM单元阵列基于其被划分为多个部分的分区数量。
图17A示出了在特定时间点处在阈值设置寄存器15中设置的信息的状态并以一一对应地关系列出队列的使用量和对CAM单元阵列执行的搜索处理的分区数量的一个示例。图17B是示出分区数量历史信息29的数据结构的一个示例的示图。例如,控制电路100保持分区数量历史信息29并且每当对CAM单元阵列执行搜索处理时更新分区数量历史信息29。分区数量历史信息29表示固定周期中的搜索处理的分区数量的历史。在图17B的示例中,分区系数[3](三部分)的频率最高(60%)。图17C示出了当更新保持在阈值设置寄存器15中保持的设置时以一一对应的关系列出队列的使用量和对CAM单元阵列执行的搜索处理的分区数量的信息的一个示例。具体地,每当在控制电路100中确定对CAM单元阵列执行搜索处理的分区数量时,存储系统1添加对应于分区数量的计数。控制电路100每当经过固定循环就对循环中使用的分区数量进行排序。控制电路100通过基于作为排序结果次数最多的分区数量增加阈值等的范围来执行调整。此外,在不划分CAM单元阵列的情况下执行搜索处理时使用的阈值不可变并且可以是固定的。从而,当处理负载至少为固定量时,变得可以通过优选性能来操作存储系统1。
以这种方式,控制电路100在分区数量历史信息29中指定频率最大的分区数量,并且在存储系统1中最高效地更新可以利用其划分CAM单元阵列的设置值。从而,可以稳定电源,并且电源的稳定有助于稳定包括存储系统1的半导体器件的操作。
<第十实施例>
接下来,将描述根据第十实施例的半导体器件中包括的存储系统。
图18是示出当根据第十实施例的存储系统1响应于指定命令对CAM单元阵列分区地执行搜索处理时的存储系统1的操作的一个示例的流程图。当对CAM单元阵列执行搜索处理时,存储系统1控制分区数量,例如应对包括存储系统1的系统所要求的线速度。例如,假设系统传送在帧尺寸中最小的64字节数据。在这种情况下,系统传送的数据的大小总计84字节(672位),其包括用于前导码部分的8字节、用于作为帧尺寸的数据部分的64字节以及用于间隙(帧间间隙)的12字节,该间隙直至传输下一帧并且其要求在限定的时间端内处理上述数据量的数据。例如,当系统保证约400GHz的线速度时,要求在以[公式1]表示的约1.68ns的时间段内传送帧大小的64字节的数据来作为搜索性能(约595Mbps)。
[公式1]:(1/400GHz)*(8+64+12)*8=1.68ns
另一方面,当数据部分的帧尺寸为512字节时,要求在以[公式2]表示的约10.64ns的时间段内传送帧尺寸的512字节的数据(约94.0Mbps)。
[公式2]:(1/400GHz)*(8+512+12)*8=10.64ns
在这种情况下(数据部分的帧尺寸为512字节),当可以使存储系统1的搜索引擎以大约600MHz一次执行搜索处理时,变得可以通过划分为对应于九次的部分执行搜索处理。近年来,可以通过属于虚拟化网络的技术开发的一个设备构件虚拟网络的一些设置。在虚拟网络的领域中,更多地要求根据虚拟网络的数量使有效线速度可变。根据第十实施例,可以提供适应搜索性能的速率的性能,符合线速度的波动。
搜索控制单元20被配置为当在半导体器件接收的搜索数据输入中包括的具体命令时执行CAM单元阵列被划分为多个部分的搜索处理。
在步骤S1801中,搜索控制单元20获取用于搜索CAM单元阵列的搜索信息的信息(关于搜索处理的信息:速率A)以及例如来自布置在存储系统1外的电路、控制电路10的寄存器等的关于线速度的信息(速率B)。
在步骤S1803中,搜索控制单元20判定是否可以通过比较在步骤S1801中获取的信息对CAM单元阵列分区地执行搜索处理。例如,搜索控制单元20判定算术表示(速率A/速率B)的值是否超过比较值[1.0]。在步骤S1803中,当判定可以对CAM单元阵列分区地执行搜索处理时(步骤S1803中为是),则搜索控制单元20执行步骤S1807的处理,并且在其他情况下(步骤S1803中为否),搜索控制单元20执行步骤S709的处理。
在步骤S1807中,搜索控制单元20基于关于搜索性能的信息(速率A)和关于线速度的信息(速率B)计算算术表示(速率A/速率B)的算术操作的结果,并且基于计算结果在对CAM单元阵列执行搜索处理时确定分区数量。搜索控制电路20根据确定的分区数量对CAM单元阵列执行搜索处理。例如,当算术表示(速率A/速率B)的算术操作的结果至少为值[0]且小于值[2]时,搜索控制电路20确定不划分地对CAM单元阵列执行搜索处理。此外,例如,当算术表示(速率A/速率B)的算术操作的结果至少为值[2]且小于值[3]时,搜索控制电路20确定通过将CAM单元阵列划分为两个部分来执行搜索处理。类似地,搜索控制电路20根据算术表示(速率A/速率B)的值判定基于其划分CAM单元阵列的分区数量。例如,当速率A是一个速率[约600MHz]且速率B是一个速率[约94Mbps]时,获取值[6.37]作为算术表示(速率A/速率B)的算术操作的结果,因此搜索控制电路20通过将CAM单元阵列划分为六个部分来执行搜索处理。
<第十一实施例>
接下来,将描述根据第十一实施例的半导体器件中包括的存储系统。
根据第十一实施例的存储系统1根据设置在对CAM单元阵列执行搜索处理时确定分区数量。当队列监控单元10监控的输入数据FIFO存储器12等的填充比超过特定阈值时,存储系统1通过删除溢出的处理并添加错误日志向布置在存储系统1外的设备输出数据,以通过删除溢出的处理避免接收由存储系统1执行的处理结果的设备执行由溢出引起的不稳定操作的这种情况。控制电路100可以例如根据队列监控单元10的监控结果删除溢出处理,并且可以基于来自存储系统1外的控制信号(例如,布置在存储系统1外的电路)以及具体地来自更高层的管理信号判定控制电路100处理的数据是否作为溢出处理被删除。
<第十二实施例>
接下来,将描述根据第十二实施例的半导体器件中包括的存储系统。
图19是示出根据第十二实施例的控制电路100的结构的一个示例的示图。如图19所示,根据第十二实施例的控制电路100包括用于划分时钟信号的频率的结构(1/2频率时钟划分电路17、1/4频率时钟划分电路18和频率划分时钟控制电路19),并且向队列监控单元10输入频率划分时钟信号。1/2频率时钟划分电路17将输入至控制电路100的时钟信号的频率除以2,并且输出频率划分时钟信号。1/4频率时钟划分电路18将输入至控制电路100的时钟信号的频率除以4,并且输出频率划分时钟信号。
控制电路100向搜索控制单元20输入一般时钟信号,并且使得进入队列监控单元10的时钟信号可通过频率划分时钟信号控制电路19来切换。从而,控制电路100变得可以有效地实施分数划分以划分对CAM单元阵列执行的搜索处理。在图19的示例中,控制电路100包括多个时钟划分电路(1/2频率时钟划分电路17和1/4频率时钟划分电路18)。尽管在图19中未示出,但例如假设控制电路100向队列监控单元10输入频率除以5的时钟信号,并且向搜索控制单元20输入频率不划分的信号。在这种情况下,队列监控单元10使用频率除以5的时钟信号管理从控制电路100外输入的命令的状态。在这种情况下,搜索控制电路20试图在两个部分中对CAM单元阵列执行搜索处理。在这种情况下,与时钟信号不被频率划分所得到的速度相比,控制电路100的有效处理速度减小到比率[2/5]的速度。即,根据第十二实施例的控制电路100,不仅通过整数而且通过分数来调整对CAM单元阵列执行的搜索处理的分区数量。此外,尽管在图19中描述了控制电路100包括时钟划分电路的示例,但控制电路100的结构不限于该示例。不仅通过整数而且还通过分数(例如还通过一结构)调整对CAM单元阵列执行的搜索处理的分区数量,该结构通过计数器对布置在控制电路100中的时钟信号的数量进行计数且在时钟信号的数量达到固定计数值时信号被输出至队列监控单元10。
<第十三实施例>
接下来,将描述根据第十三实施例的半导体器件中包括的存储系统。
图20是示出当根据第十三实施例的存储系统1在长于指定值周期的间隔之后对CAM单元阵列执行搜索处理时逐步减少搜索处理的分区数量的处理的一个示例的示图。
搜索控制电路20被配置为测量重复地对CAM单元阵列执行搜索处理的间隔的长度。搜索控制电路20被配置为分区地对CAM单元阵列的多个划分部分执行搜索处理,并且逐步减少在间隔的长度超过固定(例如,指定值)周期的长度之后再次开始对CAM单元阵列的搜索处理时基于其划分CAM单元阵列的分区数量。
如图20所示,假设在对CAM单元阵列执行搜索处理、然后过去预先指定的间隔之后,控制电路100对CAM单元阵列执行搜索处理。在这种情况下,控制电路100通过将CAM单元阵列划分为多个部分来执行搜索处理。在图20的示例中,当在过去预先指定的间隔(时间T1)之后对CAM单元阵列执行搜索处理时,控制电路100通过将一个搜索处理划分为三个部分来执行搜索处理(时间T1至时间T2)。然后,控制电路100通过减少搜索处理的分区数量来对CAM单元阵列执行搜索处理(时间T2至时间T3)。然后,当减少搜索处理的分区数量时(在图20的示例中,从分区数量[1]减少到分区数量[0]),控制电路100对CAM单元阵列执行搜索处理(时间T3至时间T4)。
以这种方式,通过在开始搜索处理之后逐步增加CAM单元阵列的搜索范围来更加提高存储系统1的电源的稳定性。此外,可以更多地降低包括存储系统1的系统的功耗。
这里,设置为间隔(T间隔)的周期具有在电源的响应性、电源的供应稳定性和电源的其他特性发生变化的周期的长度,因为在不划分地对CAM单元阵列执行搜索处理之后(图10中的[一个搜索处理]),减少了半导体器件的电源系统上的负载。由于这种间隔周期在系统之间不同,所以可以从布置在存储系统1外的电路设置间隔。
控制电路100对CZAM单元阵列执行搜索处理,此后对建立NOP(非操作)状态的周期进行计数并且判定NOP状态的周期是否超过设置为间隔的项(T间隔)。当NOP状态的周期超过设置为“间隔”的周期时,控制电路100输出用于对CAM单元阵列分区地执行搜索处理的信号(信号BE)。
此外,尽管在图20所示的示例中,当在NOP状态的周期超过被设置为间隔的周期之后对CAM单元阵列执行搜索处理时,通过将分区数量设置为[3]来执行搜索处理,分区数量不限于分区数量[3]。此外,尽管在图20中示出了逐渐减小分区数量的示例,但是当可以确认电源的稳定性时,除上述之外可以终止分区操作。
<结论>
根据本发明实施例的控制电路100对CAM单元阵列分区地执行搜索处理,从检测队列的停滞状态和输入至控制电路100的队列的加载状态并基于队列的停滞状态和加载状态的检测结果抑制峰值功率的观点来说,以便确定CAM单元阵列的搜索范围。
当设备通过使用诸如CAM等的存储系统高速地执行图样匹配处理时,通常通过设置阈值、假设大负载状态来进行设计。例如,通过考虑利于设备的维护点和稳定设备操作,网络系统中使用的设备通常通过提供大约20%至大约100%的性能裕度来配置。这是因为当网络被配置在数据中心中时,在服务基础等处,当网络进入关闭状态时发生大量的损失。因此,设备通常利用超过线速率的处理性能来执行搜索处理,并且峰值功率增加。由于设备的电源电压通过增加峰值功率降低并且电源电压的降低会引起故障,所以要求减少板的阻抗。此外,当设备通过使用通用处理器并通过软件处理划分搜索处理时对CAM单元阵列执行搜索处理时,完成管理并且当通过使用通用处理器的软件处理执行合并分区执行的搜索处理时的结果,因而降低了设备的性能。具体地,当设备处理高速流量负载时,存在难以使软件处理在确定的线速率下处理高速流量负载的情况。
设备使用在上述实施例中描述的存储系统以解决上述缺陷。从而,可以通过降低峰值功率抑制电源电压的降低,同时高速地执行图样匹配处理。设备管理队列的剩余量等,从而自诊断系统的搜索处理的状态。当设备可以利用设置的处理能力执行处理时,通过将其划分为两个或更多个部分来执行搜索处理,然后合并如此分区执行的处理的结果以降低峰值功率。可以使布置在存储系统外的电路处理已经对存储系统分区执行的搜索处理作为以这种方式进行的一个处理。
尽管在上文已经基于本发明的优选实施例具体描述了发明人和其他人做出的本发明,不言自明地,本发明不限于上述实施例,并且可以在不背离本发明的精神的范围内以各种方式进行改变和修改。
应该认为本文公开的实施例仅仅是示例性的而非限制性的。本公开的范围不通过上文的描述而是通过权利要求来指示,并且包括权利要求的等效含义以及在权利要求的范围内进行的所有修改和改变。
Claims (14)
1.一种半导体器件,被配置为接收搜索数据的输入并且针对保持在存储器中的数据并行搜索存储单元阵列的相应行,包括:
搜索控制单元,被配置为检测输入的所述搜索数据的流入量是否至少为固定量并且调整对所述存储器执行的搜索处理的速度;以及
输出控制单元,被配置为输出表示对所述存储器执行的所述搜索处理的结果的信号。
2.根据权利要求1所述的半导体器件,还包括:
监控单元,被配置为监控输入的所述搜索数据的流入量并且当所述搜索数据的流入量至少为所述固定量时输出信号,
其中所述搜索控制单元执行的处理包括:基于所述监控单元输出的所述信号,根据检索处理的结果调整对所述存储器执行的所述搜索处理的速度。
3.根据权利要求2所述的半导体器件,
其中所述监控单元包括FIFO(先入先出)存储器,所述FIFO存储器被配置为保持输入的所述搜索数据并且被配置为当所述FIFO存储器的使用量超过固定量时输出所述信号。
4.根据权利要求3所述的半导体器件,
其中所述搜索控制单元调整对所述存储器执行的所述搜索处理的速度包括:设置通过将所述存储单元阵列划分为多个部分而得到的至少一个部分作为所述搜索处理的对象,以执行所述搜索处理。
5.根据权利要求4所述的半导体器件,
其中所述搜索控制单元被配置为管理被设置作为所述搜索处理的对象的存储单元的范围的上限设定值,并且输入所述搜索数据包括:当在所述存储单元阵列中待搜索的范围超过所述上限设定值时,设置通过将所述存储单元阵列划分为多个部分而得到的每个部分作为所述搜索处理的对象,以执行所述搜索处理。
6.根据权利要求4所述的半导体器件,
其中所述半导体器件被配置为接收所述搜索数据的输入,所述搜索数据包括关于是否对通过将所述存储单元阵列划分为多个部分而得到的作为所述搜索处理的对象的至少一个部分执行所述搜索处理的指定,并且
其中所述搜索控制单元被配置为根据包括在所述搜索数据中的所述指定调整所述搜索处理的速度。
7.根据权利要求4所述的半导体器件,
其中所述半导体器件被配置为存储关于如下的设置:所述搜索控制单元是否对通过将所述存储单元阵列划分为多个部分而得到的作为所述搜索处理的对象的至少一个部分执行所述搜索处理,或者所述搜索控制单元是否对作为所述搜索处理的对象的整个所述存储单元阵列执行所述搜索处理,并且
其中所述搜索控制单元被配置为根据所述设置执行所述搜索处理。
8.根据权利要求4所述的半导体器件,
其中所述监控单元被配置为设置多个阶段的阈值,使得所述FIFO存储器的所述使用量越大,所述存储单元阵列的分区数量就越小,并且被配置为当所述使用量超过所述多个阶段的阈值中的每个阈值时根据每个阶段输出所述信号,并且
其中所述搜索控制单元执行的所述搜索处理包括:根据由所述监控单元输出的所述信号所指示的阶段,依据所述分区数量,通过将所述存储单元阵列划分为多个部分来执行所述搜索处理。
9.根据权利要求1所述的半导体器件,
其中所述监控单元被配置为针对所述FIFO存储器的使用量设置第一阈值和第二阈值,所述搜索控制单元利用所述第一阈值通过将所述存储单元阵列划分为多个部分来执行所述搜索处理,并且所述搜索控制单元利用所述第二阈值设置整个所述存储单元阵列作为所述搜索处理的对象而不划分所述存储单元阵列,并且
其中所述搜索控制单元执行的所述搜索处理包括:当所述监控单元根据所述第一阈值输出所述信号时执行所述存储单元阵列被划分为多个部分的搜索处理,以及当所述监控单元根据所述第二阈值输出所述信号时执行整个所述存储单元阵列被设置作为所述搜索处理的对象的搜索处理。
10.根据权利要求4所述的半导体器件,
其中所述半导体器件被配置为搜索多个存储单元阵列中的每一个,并且
其中所述搜索控制单元执行的所述搜索处理包括:接收关于是否通过将所述存储单元阵列中的任一个划分为多个部分而得到每个部分的指定,并根据所接收的指定执行所述搜索处理。
11.根据权利要求4所述的半导体器件,还包括:
性能评估单元,被配置为监控所述半导体器件中的至少任一个相应电路的制造中的变化,
其中所述搜索控制单元被配置为根据由所述性能评估单元执行的制造中的变化的监控结果确定分区数量,用于设置所述存储单元阵列的每个部分作为所述搜索处理的对象。
12.根据权利要求4所述的半导体器件,
其中所述搜索控制单元被配置为保持当通过将所述存储单元阵列划分为多个部分而已经执行所述搜索处理时的分区数量的历史,并且被配置为根据所述分区数量的所述历史确定所述存储单元阵列被划分为多个部分的分区数量。
13.根据权利要求4所述的半导体器件,
其中所述搜索控制单元被配置为:当所述半导体器件接收的所述搜索数据的输入中包括指定命令时,执行所述存储单元阵列被划分为多个部分的搜索处理。
14.根据权利要求4所述的半导体器件,
其中所述搜索控制单元被配置为测量重复执行所述搜索处理的间隔的长度,并且
被配置为当所述间隔的长度超过固定时段并且再次开始所述搜索处理时,执行所述存储单元阵列被划分为多个部分的搜索处理,并且逐步减小所述存储单元阵列被划分的分区数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015230839A JP2017097940A (ja) | 2015-11-26 | 2015-11-26 | 半導体装置 |
JP2015-230839 | 2015-11-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106803428A true CN106803428A (zh) | 2017-06-06 |
CN106803428B CN106803428B (zh) | 2022-05-24 |
Family
ID=58777636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611055279.9A Active CN106803428B (zh) | 2015-11-26 | 2016-11-25 | 半导体器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10203892B2 (zh) |
JP (1) | JP2017097940A (zh) |
CN (1) | CN106803428B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625695A (zh) * | 2019-02-28 | 2020-09-04 | 帕洛阿尔托网络股份有限公司 | 在三元内容可寻址存储器中摊销耗散功率和电流需求 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6592310B2 (ja) * | 2015-09-01 | 2019-10-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10831487B2 (en) | 2017-12-22 | 2020-11-10 | Dalian University Of Technology | Lookup-table hardware search engine |
TWI783767B (zh) * | 2021-11-02 | 2022-11-11 | 瑞昱半導體股份有限公司 | 記憶體分時控制裝置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06333395A (ja) * | 1993-05-19 | 1994-12-02 | Kawasaki Steel Corp | 連想メモリ |
CN1447941A (zh) * | 2001-05-17 | 2003-10-08 | 梅姆考尔有限责任公司 | 搜索不同尺寸的字 |
CN1825481A (zh) * | 2005-02-17 | 2006-08-30 | 株式会社日立制作所 | 半导体器件 |
JP2007026560A (ja) * | 2005-07-19 | 2007-02-01 | Hitachi Ltd | 半導体装置 |
CN101317234A (zh) * | 2005-09-30 | 2008-12-03 | 高通股份有限公司 | 具有混合串行及并行搜索的内容可寻址存储器 |
US20090190404A1 (en) * | 2008-01-25 | 2009-07-30 | Roohparvar Frankie F | Nand flash content addressable memory |
US7848129B1 (en) * | 2008-11-20 | 2010-12-07 | Netlogic Microsystems, Inc. | Dynamically partitioned CAM array |
US8111533B2 (en) * | 2010-06-23 | 2012-02-07 | Netlogic Microsystems, Inc. | System for dynamically managing power consumption in a search engine |
CN103069497A (zh) * | 2010-08-24 | 2013-04-24 | 高通股份有限公司 | 减少内容可寻址存储器的电力使用的系统和方法 |
CN103310838A (zh) * | 2012-03-14 | 2013-09-18 | 瑞萨电子株式会社 | 内容可寻址存储器系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0610809B2 (ja) * | 1987-01-20 | 1994-02-09 | 日本電気株式会社 | 記号列識別装置 |
DE3801380A1 (de) * | 1987-01-20 | 1988-07-28 | Nec Corp | Zeichenfolge-erkennungsvorrichtung mit einem speicher, dessen speicherbereiche selektiv zugreifbar sind |
JPH03212896A (ja) * | 1990-01-16 | 1991-09-18 | Mitsubishi Electric Corp | 連想記憶装置 |
US5485418A (en) * | 1990-01-16 | 1996-01-16 | Mitsubishi Denki Kabushiki Kaisha | Associative memory |
JPH04129086A (ja) * | 1990-09-19 | 1992-04-30 | Nec Corp | スタッフ回路 |
JP4346975B2 (ja) | 2003-06-27 | 2009-10-21 | 株式会社ルネサステクノロジ | 連想メモリ機能付き集積回路及び侵入検知装置 |
JP5119912B2 (ja) * | 2007-12-27 | 2013-01-16 | 富士通セミコンダクター株式会社 | 連想メモリ |
JP5578344B2 (ja) * | 2009-05-28 | 2014-08-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US8467213B1 (en) * | 2011-03-22 | 2013-06-18 | Netlogic Microsystems, Inc. | Power limiting in a content search system |
JP6003327B2 (ja) * | 2012-07-19 | 2016-10-05 | 富士通株式会社 | 伝送装置および温度制御方法 |
-
2015
- 2015-11-26 JP JP2015230839A patent/JP2017097940A/ja active Pending
-
2016
- 2016-10-31 US US15/339,076 patent/US10203892B2/en active Active
- 2016-11-25 CN CN201611055279.9A patent/CN106803428B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06333395A (ja) * | 1993-05-19 | 1994-12-02 | Kawasaki Steel Corp | 連想メモリ |
CN1447941A (zh) * | 2001-05-17 | 2003-10-08 | 梅姆考尔有限责任公司 | 搜索不同尺寸的字 |
CN1825481A (zh) * | 2005-02-17 | 2006-08-30 | 株式会社日立制作所 | 半导体器件 |
JP2007026560A (ja) * | 2005-07-19 | 2007-02-01 | Hitachi Ltd | 半導体装置 |
CN101317234A (zh) * | 2005-09-30 | 2008-12-03 | 高通股份有限公司 | 具有混合串行及并行搜索的内容可寻址存储器 |
US20090190404A1 (en) * | 2008-01-25 | 2009-07-30 | Roohparvar Frankie F | Nand flash content addressable memory |
US7848129B1 (en) * | 2008-11-20 | 2010-12-07 | Netlogic Microsystems, Inc. | Dynamically partitioned CAM array |
US8111533B2 (en) * | 2010-06-23 | 2012-02-07 | Netlogic Microsystems, Inc. | System for dynamically managing power consumption in a search engine |
CN103069497A (zh) * | 2010-08-24 | 2013-04-24 | 高通股份有限公司 | 减少内容可寻址存储器的电力使用的系统和方法 |
CN103310838A (zh) * | 2012-03-14 | 2013-09-18 | 瑞萨电子株式会社 | 内容可寻址存储器系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625695A (zh) * | 2019-02-28 | 2020-09-04 | 帕洛阿尔托网络股份有限公司 | 在三元内容可寻址存储器中摊销耗散功率和电流需求 |
CN111625695B (zh) * | 2019-02-28 | 2024-03-26 | 帕洛阿尔托网络股份有限公司 | 在三元内容可寻址存储器中摊销耗散功率和电流需求 |
Also Published As
Publication number | Publication date |
---|---|
JP2017097940A (ja) | 2017-06-01 |
US10203892B2 (en) | 2019-02-12 |
US20170153835A1 (en) | 2017-06-01 |
CN106803428B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106803428A (zh) | 半导体器件 | |
Manikantan et al. | Probabilistic shared cache management (PriSM) | |
CN104809076B (zh) | Cache的管理方法及装置 | |
CN109196461A (zh) | 用于在分布式存储系统中提供动态管理的服务质量的技术 | |
US8019838B2 (en) | Autonomous operation of networking devices | |
CN102082693A (zh) | 网络流量监管方法及装置 | |
US20110167149A1 (en) | Internet flow data analysis method using parallel computations | |
US7392349B1 (en) | Table management within a policy-based routing system | |
CN105190583A (zh) | 总线主设备、总线系统以及总线控制方法 | |
JP2018049381A (ja) | メモリ制御回路、メモリシステムおよびプロセッサシステム | |
CN102707788A (zh) | 用于保持其功耗低于指定功率限制的内容搜索系统及方法 | |
CN105095109A (zh) | 缓存访问方法、缓存访问路由器和计算机系统 | |
CN109587072A (zh) | 分布式系统全局限速系统及方法 | |
CN111597125B (zh) | 一种非易失内存文件系统索引节点的磨损均衡方法及系统 | |
CN103299291A (zh) | 分布式共享存储器多处理器中的分裂流量路由 | |
CN106603302A (zh) | 一种acl表项管理的方法和装置 | |
KR102129389B1 (ko) | 클라우드 컴퓨팅 환경에서의 다목적 가상머신 배치 방법 및 장치 | |
US20150100663A1 (en) | Computer system, cache management method, and computer | |
CN112333101B (zh) | 网络拓扑寻路方法、装置、设备及存储介质 | |
CN107273316B (zh) | 并行flash访问系统和方法 | |
WO2018048770A1 (en) | Power aware switching using analytics | |
CN103200111B (zh) | 一种信元交换方法及装置 | |
US4967391A (en) | Data string retrieval apparatus for IC card | |
CN111625695B (zh) | 在三元内容可寻址存储器中摊销耗散功率和电流需求 | |
CN114625719A (zh) | 一种基于移动滤波框架的动态集合管理方法和系统 |
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 |