JP2017097940A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2017097940A JP2017097940A JP2015230839A JP2015230839A JP2017097940A JP 2017097940 A JP2017097940 A JP 2017097940A JP 2015230839 A JP2015230839 A JP 2015230839A JP 2015230839 A JP2015230839 A JP 2015230839A JP 2017097940 A JP2017097940 A JP 2017097940A
- Authority
- JP
- Japan
- Prior art keywords
- search
- cell array
- control unit
- memory system
- semiconductor device
- 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.)
- Pending
Links
Images
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バッファの充填率を監視することで検知する。メモリシステムは、検知結果に応じて、メモリセルアレイの各ブロックを分割して検索処理の対象とすることで検索処理の速度を調節する。
【選択図】図1
【解決手段】メモリシステムを含む半導体装置は、検索用のデータの入力を受け付けて、メモリに保持されたデータを、CAMなどのメモリセルアレイの各行について並列に検索することが可能なものである。メモリシステムは、入力される検索用のデータの流入量が一定以上であるか否かを、検索命令が保持されるFIFOバッファの充填率を監視することで検知する。メモリシステムは、検知結果に応じて、メモリセルアレイの各ブロックを分割して検索処理の対象とすることで検索処理の速度を調節する。
【選択図】図1
Description
本開示は、メモリに保持されたデータを検索するための技術に関し、特に、CAM(CAM:Content Addressable Memory)などのメモリシステムの消費電力を低減させるための技術に関する。
デスクトップPC(Personal Computer)、ラップトップPC、タブレット端末、スマートフォンその他の通信機器が、ネットワークを介して接続している。これらの通信機器間での通信トラフィックがますます増加している。そのため、ルータ、スイッチその他のネットワーク機器は、いっそう高速に処理を行うことが必要とされている。このようなネットワーク機器等において経路探索などの処理を高速で行うため、高速で動作するメモリシステムが使用されている。
例えば、ネットワークルータなどではIP(Internet Protocol)パケットのルーティングが行われている。ネットワークルータは、例えば内容参照メモリ(CAM)を備える。CAMは、複数のCAMセルで構成されている。CAMにおける検索は、検索対象となるデータ列に基づいてサーチライン(SL)を活性化させ、CAMアレイ内の各エントリとの一致不一致を判定することによりなされる。CAMは、検索の結果、一致するエントリのアドレスを出力する。ネットワークルータが備えるCAMは、CAMセルにIPアドレスを保持するように構成されている。ネットワークルータは、入力されるIPパケットに含まれるIPアドレスに基づいてCAMセルに保持されているIPアドレスと照合することによりルーティングを行う。
このように、CAMは、CAMアレイ内の各エントリのデータと、検索対象のデータとの比較を、各エントリについて並列に行うことができるため、高速でデータを検索することができる。CAMは、複数のエントリに対し並列に検索を行うため高速に検索することができるが、各マッチライン(ML)へのプリチャージ等を伴うため、消費電力が比較的大きくなる。そのためCAMを含むシステムの消費電力を低減させる技術について従来から様々な提案がされている。例えば、特開2005−18942号公報(特許文献1)は、NPU(Network Processor Unit)、ASIC(Application Specific Integrated Circuit)等の制御部に与える負荷を低減することが可能な連想メモリ機能付き集積回路について記載している。特許文献1には、検索キーワードをシフトさせながら、メモリに格納されるデータとの一致を検出する技術が記載されている。
ルータやスイッチなどのネットワーク機器等においては、処理しきれず動作が不安定になってしまう事態をなるべく回避することが好ましい。ネットワーク機器の動作が安定することは、ネットワークの不通期間を短くすることとなり、ネットワークの信頼性の向上にもつながるからである。そのため、これらネットワーク機器等の高い信頼性を求められる機器においてCAMが使用される場合、CAMの動作の安定性を考慮して、比較的大きな性能マージンを設けて機器の設計がなされることがある。このように機器を構成することで、瞬間的な高負荷時においてもCAMを安定して動作させることができる。しかし、機器が高負荷ではない場合は必要以上の性能でCAMの検索処理を実行することになり、CAMの低消費電力化を妨げている。
したがって、高負荷時においても機器の処理を安定させつつメモリシステムの消費電力をいっそう低減させる技術が必要とされている。本開示は、メモリシステムの消費電力を低減させつつ、高負荷時の処理を安定させる技術を提供することを目的としている。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施形態に従う半導体装置は、検索用のデータの入力を受け付けて、メモリに保持されたデータをメモリセルアレイの各行について並列に検索することが可能なものである。半導体装置は、入力される検索用のデータの流入量が一定以上であるか否かを検知し、検知結果に応じて、メモリに対する検索処理の速度を調節するように構成された検索制御部と、メモリに対する検索処理の結果を示す信号を出力するように構成された出力制御部とを備える。
一実施の形態に従う半導体装置によると、半導体装置に入力される検索用のデータの流入量が一定以上であるか否かに応じて、メモリに対する検索処理の速度を調節するため、高負荷時などに必要なメモリの処理性能を発揮させつつ、負荷に応じてメモリに対する検索処理の速度を制御する。そのため、検索処理の低速化により、検索処理中の消費電力のピークを低減させつつ、高負荷時の処理を安定化させることができる。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<実施の形態1>
図面を参照して実施の形態の半導体装置について説明する。
図面を参照して実施の形態の半導体装置について説明する。
<メモリシステムを含む半導体装置の構成>
図1は、本実施形態の半導体装置に含まれるメモリシステム1の構成を示すブロック図である。図1に示すように、メモリシステム1は、制御回路100と、サーチラインドライバ200と、TCAMアレイブロック300と、ロウデコーダ400と、センスアンプ/ライトドライバ500と、マッチアンプ600と、プライオリティエンコーダ700とを含む。
図1は、本実施形態の半導体装置に含まれるメモリシステム1の構成を示すブロック図である。図1に示すように、メモリシステム1は、制御回路100と、サーチラインドライバ200と、TCAMアレイブロック300と、ロウデコーダ400と、センスアンプ/ライトドライバ500と、マッチアンプ600と、プライオリティエンコーダ700とを含む。
TCAMアレイブロック300は、複数のエントリによりデータを保持する。各エントリは、複数のCAMセル(TCAM cell)により構成される。図1の例では、N行×N列のCAMセルにより構成されるTCAMアレイブロック300を示しているが、N行×N列に限られない。各エントリは、それぞれアドレスが与えられている。TCAMアレイブロック300は、検索用のデータの入力を受け付けて、各エントリに保持されるデータと一致するか不一致かを並列に判定する。TCAMアレイブロック300は、3値連想メモリ(Ternary CAM)として構成されている。各CAMセルは、ハイ(”1”)、ロー(”0”)、ドントケア(”X”)の3値をとることができる。
TCAMアレイブロック300は、CAMセルへのデータの書き込みを行単位(エントリ単位)で受け付ける。センスアンプ/ライトドライバ500は、制御回路100からのセンスアンプ制御信号(Sense Amp.制御信号)およびライトドライバ制御信号(Write Driver制御信号)による制御に従って動作する。センスアンプ/ライトドライバ500は、TCAMアレイブロック300へ書き込むデータ(Write Data)に基づいて、ビットライン(BL)を活性化させる。また、ロウデコーダ400は、TCAMアレイブロック300における書き込み対象の行のアドレスのワードライン(WL)を活性化させる。ロウデコーダ400は、制御回路100のRead/Write制御信号に従って動作し、TCAMアレイブロック300へのデータ読み出し/書き込み対象となるアドレスの指定を受け付けて、受け付けたアドレスに対応するワードライン(WL)を活性化させる。メモリシステム1は、このビットラインおよびワードラインにより、TCAMアレイブロック300の指定されたアドレスに対してデータを書き込む。
TCAMアレイブロック300は、TCAMアレイブロック300における各エントリに保持されるデータを検索するために、検索に用いるデータを、サーチラインドライバ200から出力されるサーチライン(SL)上の信号により受け付ける。サーチラインドライバ200は、制御回路100からのサーチラインドライバ制御信号(SLDrv.制御信号)による制御に従って動作する。サーチラインドライバ200は、TCAMアレイブロック300を検索するための検索用のデータ(Search Key)に基づいて、サーチライン(SL)を活性化させる。TCAMアレイブロック300の検索時に、サーチライン(SL)により検索用のデータがTCAMアレイブロック300へ出力される。TCAMアレイブロック300において、検索用のデータと、TCAMアレイブロック300の各エントリに保持されるデータとが一致するエントリについて、マッチライン(ML)がハイレベルを保持する。
マッチアンプ600は、制御回路100が出力するマッチアンプ制御信号(Match amp. 制御信号)による制御に従って動作する。マッチアンプ600は、TCAMアレイブロック300の検索において、マッチラインの出力を増幅して、エントリ検索判定信号maoをプライオリティエンコーダ700へ出力する。
プライオリティエンコーダ700は、複数のエントリにおいて、検索用のデータと、TCAMアレイブロック300の各エントリに保持されるデータとが一致する場合に、いずれかのデータを優先して出力する。例えば、TCAMアレイブロック300の各エントリに保持されるデータに対し、検索用のデータとして値”X”を用いて検索をすると、複数のエントリに保持されるデータが検索によりヒットしうる。プライオリティエンコーダ700は、例えば、予め定められた優先順位(例えば、TCAMアレイブロック300の各エントリのうち、アドレスが最も小さいエントリを優先する等)に従って、検索によりヒットしたマッチラインに対応するアドレスを検索結果(マッチアドレス)として制御回路100へ出力する。
制御回路100は、メモリシステム1のTCAMアレイブロック300に対する検索動作を制御するための回路である。制御回路100は、メモリシステム1の外部の回路から、TCAMアレイブロック300に対する検索命令を含む制御信号を受け付ける。制御回路100は、外部の回路から各種コマンド(検索命令など)を受け付けて、所定のクロックに従って動作し、TCAMアレイブロック300に対する検索結果を出力する。また、制御回路100は、メモリシステム1の外部の回路から受け付けた検索命令の滞留状況(例えば、検索命令を保持するキューの使用状況など)を判定し、その判定結果をフロー制御情報としてメモリシステム1の外部の回路へ出力する。
図2は、制御回路100の構成を示すブロック図である。制御回路100は、図2に示される各ブロックの機能を発揮する各回路により構成される。図2に示すように、制御回路100は、コマンドデコーダ11と、キューモニター部10と、検索制御部20と、検索結果マージ部26と、出力制御部30とにより構成される。
制御回路100は、メモリシステム1の外部から検索命令110を受信する。検索命令110は、メモリシステム1のTCAMアレイブロック300に保持されるデータを検索するための命令であり、検索用のデータ(Search Key)、検索時の各種オプションの設定などを含む。検索用のデータ(Search Key)としては、例えば、検索対象の文字列、IPアドレスのような数字データその他のデータがある。
コマンドデコーダ11は、メモリシステム1が受信した命令をデコードし、制御回路100等のメモリシステム1内の各回路が処理可能となるようにフォーマットを変換する等の処理を行う。例えば、コマンドデコーダ11は、メモリシステム1が受信した命令が、検索命令であるか、TCAMアレイブロック300に保持されるデータに対する書き込みまたは読み出し命令であるか、その他の各種の設定を行うための命令であるか等を判別し、判別結果に応じて各種フォーマット変換等を行う。コマンドデコーダ11は、制御回路100の各回路が実行可能な形式に、検索命令110の変換を行う。
キューモニター部10は、メモリシステム1に対して入力される検索用のデータの流入量をモニタリングし、検索用のデータの流入量が一定以上である場合に、検索制御部20に、検索用のデータの流入量が一定以上であることを示す信号を出力する。キューモニター部10において、予め、入力データFIFO12の使用量と比較するための閾値が閾値設定レジスタ15に設定されている。キューモニター部10は、キューの使用状態(キューの使用量など)と、閾値設定レジスタ15に設定される閾値とを比較した比較結果に基づいて、比較結果を示す信号を検索制御部20へ出力する。例えば、制御回路100は、キューの使用状態が、予め閾値設定レジスタ15に設定しておいた閾値を超えない場合は、TCAMアレイブロック300の検索処理時のピーク電力を抑えるため、TCAMアレイブロック300の各ブロックを分割して検索する処理を行う。また、例えば、制御回路100は、キューの使用状態が、予め閾値設定レジスタ15に設定しておいた閾値を超える場合は、TCAMアレイブロック300の検索処理を分割しないで行う。制御回路100は、検索する処理の処理速度を優先することにより、キューに滞留した命令を高速で処理する。
図2に示すように、キューモニター部10は、入力データFIFO12と、出力データFIFO13と、キュー管理部14と、閾値設定レジスタ15とを含む。入力データFIFO12は、制御回路100において実行可能な形式にコマンドデコーダ11によって変換されたデータを一時的に記憶するためのメモリである。入力データFIFO12は、例えば、メモリシステム1に入力される検索用のデータを保持するためのバッファメモリである。制御回路100は、入力データFIFO12により、メモリシステム1に入力されるデータを一時的にバッファリングすることで、TCAMアレイブロック300に対する検索動作時に割り込み処理が発生した場合に対処することができる。また、入力データFIFO12により、メモリシステム1およびメモリシステム1の外部の回路間のレーテンシーを吸収することができる。
出力データFIFO13は、TCAMアレイブロック300の検索結果など、制御回路100からメモリシステム1の外部へ出力するデータを保持するためのバッファメモリである。例えば、TCAMアレイブロック300に対する検索結果をメモリシステム1が出力する外部の回路において、メモリシステム1の出力結果を受け取れない状態(ビジー状態)である場合に、出力データFIFO13においてデータをバッファリングする必要がある。この他に、TCAMアレイブロック300に対する検索結果に対して別のデータを付加してメモリシステム1の外部の回路へ出力する場合、また、メモリシステム1のデータバスの調停が発生した場合等において、出力データをバッファリングする必要がある。出力データFIFO13に保持されるデータ量が閾値を超えると、オーバーフロー等が発生する可能性があるため、キュー管理部14は、出力データFIFO13の使用状態の情報を検索制御部20に出力することで、TCAMアレイブロック300に対する検索時のブロック数を決定させることとしてもよい。
閾値設定レジスタ15は、入力データFIFO12の使用状況と比較するための閾値を保持するためのレジスタである。閾値設定レジスタ15に保持される閾値は、例えばメモリシステム1の外部から、オプション設定等の信号の入力を制御回路100が受けて設定することができる。また、閾値設定レジスタ15は、出力データFIFO13の使用状況と比較するための閾値を保持するように構成してもよい。キュー管理部14は、出力データFIFO13の使用量が閾値を超える場合、出力データFIFO13のオーバーフローを抑止するため、検索制御部20に信号を出力する。こうすることで、検索制御部20が、検索処理を分割して行うことで検索処理を低速で行う、また、検索処理を一時停止する等することができる。
キュー管理部14は、閾値設定レジスタ15に保持される閾値(管理閾値)と、入力データFIFO12の使用状況とを比較することで、入力データFIFO12の使用状況を管理する。キュー管理部14は、入力データFIFO12の使用量が一定量を超える場合に、入力データFIFO12の使用量が一定量を超えていることを示す信号を検索制御部20へ出力する。また、キュー管理部14は、出力データFIFO13の使用量を管理する。例えば、メモリシステム1の外部の回路で処理が滞留している場合、TCAMアレイブロック300の検索結果などを出力制御部30からメモリシステム1の外部の回路へ出力するために、出力データFIFO13の使用量が徐々に増加することがある。キュー管理部14は、このように出力データFIFO13の使用状況を管理して、出力データFIFO13の使用状況と閾値設定レジスタ15に保持される閾値との比較結果を示す信号を検索制御部20へ出力する。
また、キュー管理部14は、入力データFIFO12および出力データFIFO13の使用量をモニタリングし、キューの使用状況をメモリシステム1の外部の回路へフロー制御情報120として出力する。制御回路100に対してメモリシステム1の外部の回路から入力される命令の流入速度に対し、制御回路100の処理速度が速い場合は、入力データFIFO12に制御回路100が未処理の命令が滞留することはほとんどないといえる。しかし、制御回路100に対するデータの流入速度が制御回路100の処理速度を上回る場合は、入力データFIFO12に、制御回路100が処理すべき命令が積みあがり、オーバーフローにより命令のロスト等を起こしうる。オーバーフロー、命令ロスト等の発生を防止するため、キュー管理部14は、入力データFIFO12の負荷と比較するための閾値をあらかじめレジスタ、管理用のメモリ領域その他の記憶領域に設定し、この閾値と入力データFIFO12の負荷状態とを比較して、閾値を超える負荷状態の場合にアラート信号(フロー制御情報)をメモリシステム1の外部の回路へ出力する。
また、例えば、制御回路100がネットワークのトラフィック管理に用いられる場合がある。この場合において、あらかじめ設定した処理能力を超えて制御回路100に命令等の入力があるとする。このときに、制御回路100は、ネットワークのトラフィック管理を行うため、トラフィックポリシング、または、トラフィックシェービングなどの処理を行うこととしてもよい。トラフィックポリシングとは、制御回路100が受け付けた命令などを平準化処理せず破棄することである。また、トラフィックシェービングは、制御回路100が、平準化処理が可能な範囲では平準化処理を行い、平準化処理からあふれた処理に対して破棄する処理を行うことである。このように、キューモニター部10においてネットワークのトラフィックをモニタリングしているとする。この場合、制御回路100は、あらかじめ設定した処理能力を超えない範囲のトラフィックであれば、検索制御部20により、ピーク電流を低減させるよう検索処理を分割して動作させる。これにより、メモリシステム1は、メモリシステム1に対して電源が求められる電力供給能力を低減させることができる。また、メモリシステム1は、電源ノイズを低減させることができ、電源ノイズによるメモリシステム1の誤動作を低減させることができる。
検索制御部20は、TCAMアレイブロック300に対して行う検索処理を、CAMセルアレイのブロックを単位として分割して行うか、CAMセルアレイの各エントリを一括して並列に検索するかを判断する。検索制御部20は、この判断処理を、キューモニター部10からの情報、設定管理部25に保持される情報に基づいて行う。
検索制御部20は、メモリシステム1に対して入力される検索用のデータの流入量が一定以上であるか否かを検知する。検索制御部20は、検知結果に応じて、TCAMアレイブロック300に対する検索処理の速度を調節する。検索制御部20は、キューモニター部10が出力する信号に基づいて、TCAMアレイブロック300に対する検索処理の速度を調節する。検索制御部20は、TCAMアレイブロック300のCAMセルアレイを複数の部分に分割した各部分(ブロック)の少なくとも1つを検索処理の対象としてTCAMアレイブロック300の検索処理を行う。こうすることで、検索制御部20は、TCAMアレイブロック300に対する検索処理の速度を調節する。
図2に示すように、検索制御部20は、処理命令管理部21と、検索エンジン制御部22と、コマンド分割制御部23と、検索対象エリア判定部24と、設定管理部25とを含む。処理命令管理部21は、入力データFIFO12に記憶されるデータを読み出して、検索命令110などメモリシステム1の外部の回路から出力される命令を管理する。例えば、処理命令管理部21は、入力データFIFO12に記憶されるデータを読み出して、どの回路に対する処理であるのか、また、処理対象の回路に対してどのような動作をするのか(TCAMアレイブロック300に対して検索を行うのか、書き込みを行うのか等)など、各命令を処理する順および処理内容を管理する。
検索エンジン制御部22は、制御回路100がTCAMアレイブロック300に対して検索を行う場合に、サーチラインドライバ200など各回路を駆動するための制御信号を生成し、生成した制御信号を、例えばコマンド分割制御部23を介して各回路へ出力する。
コマンド分割制御部23は、制御回路100がTCAMアレイブロック300を構成するCAMセルアレイを、ブロックごとに分割して検索する場合に、検索対象とするブロックを指定するための制御信号(ブロックイネーブル信号BE)を生成する。コマンド分割制御部23は、生成した制御信号を各回路へ出力する。検索用のデータは、コマンド分割制御部23から検索開始のための制御信号が出力されるのに同期して、TCAMアレイブロック300に出力される。
検索対象エリア判定部24は、設定管理部25に設定として保持される検索用のパラメータを読み出して、検索命令110に示される検索の対象となるCAMセルアレイの範囲を判定する。例えば、検索対象エリア判定部24は、設定管理部25から、設定として、TCAMアレイブロック300を構成するブロック数の情報、TCAMアレイブロック300が保持しているデータの種類(TCAMアレイブロック300がIPアドレスなどのアドレス情報を保持しているか等)、メモリシステム1の外部から入力される検索用のデータに対してマスク処理をすべき範囲、検索用のデータのサイズ、その他の情報を読み出す。検索対象エリア判定部24は、これら設定管理部25から読み出した情報に基づいて、例えば、複数種類のCAMメモリがメモリシステム1において使用される場合は、検索対象とするCAMメモリを識別すること等により、検索の対象となるCAMセルアレイの範囲を判定する。処理命令管理部21は、検索対象エリア判定部24による判定結果に基づいて、検索エンジン制御部22に対して検索の指示を行う。
設定管理部25は、TCAMアレイブロック300に対して検索を行う際に活性化すべきCAMセルアレイの範囲を判定するための情報を記憶する。例えば、設定管理部25は、TCAMアレイブロック300に格納するデータの種類(アドレス情報など)と対応付けて、CAMセルアレイを構成するブロックを指定して記憶する。
検索結果マージ部26は、TCAMアレイブロック300に対してブロックを単位として分割して検索処理を行った場合に、各ブロックの検索結果(マッチアドレスなど)を受け付けてマージする。検索結果マージ部26は、マージ後の検索結果を出力データFIFO13に保持させる。
出力制御部30は、メモリシステム1の外部の回路に対し、TCAMアレイブロック300に対する検索結果を検索結果130として出力する。検索結果130は、検索データに対して一致するデータがあったか否か(Hit/Miss情報)、一致するデータがあった場合はそのデータ(Hitアドレスなど)を含む。
図3は、TCAMアレイブロック300のCAMセルアレイを構成する各ブロックの優先度の例を示す図である。図3に示すように、TCAMアレイブロック300のCAMセルアレイを構成する各ブロックは、複数のエントリを含む。また、各ブロックは、優先度が設定されており、アドレスが小さいものほど優先度が高く設定されている。TCAMアレイブロック300のCAMセルアレイを構成するブロックを単位として分割して検索処理を行う場合、検索制御部20は、CAMセルアレイのうち、検索する優先度が高いブロック(例えば、アドレスが小さいエントリを含むブロックを優先する)から順に検索処理を実行することとし、プライオリティエンコーダ700から検索結果が出力されて制御回路100が検索結果を受信した時点で、未検索のブロックに対する検索を実行させないこととしてもよい。これにより、メモリシステム1を低消費電力化させることができ、ピーク電力のみならずメモリシステム1が消費する電力の総量をも低減させることができる。
図4は、関連技術における検索処理および本実施形態における分割した検索処理を示す図である。
図4の状態(A)は、関連技術として、検索対象として選択されたブロックに対して検索するための構成の概要を示す図である。図4の状態(B)は、本実施形態において、検索対象となるCAMセルアレイの範囲を、ブロックごとに分割して行うか否かを、キューモニター部10によるキューのモニタリング結果に基づいて動的に決定するための構成の概要を示す図である。
状態(A)に示すように、関連技術において、半導体回路は、検索対象となるデータのグループと対応付けて、CAMセルアレイの各ブロックをプロファイルとして管理している。状態(A)では、グループ「Group#0」が選択されている。これに対し、状態(B)に示すように、本実施形態においては、メモリシステム1は、コマンド分割制御部23の制御信号を受けてTCAMアレイブロック300に信号を出力するブロック選択回路28を含む。状態(B)では、グループ「Group#0」と、グループ「Group#1」がプロファイルにより検索対象となっている。コマンド分割制御部23により、各グループのマッチラインへのプリチャージが制御される。状態(B)では、検索処理を分割して、グループ「Group#0」が検索対象とされている。これにより、制御回路100は、制御回路100のモニタリング結果に従って、TCAMアレイブロック300のCAMセルアレイを、複数のブロックに分割して順に検索するか、ブロックごとに分割せず各エントリを並列に検索するかを切り替えることができる。
なお、CAMセルアレイを分割して検索する処理をソフトウェア処理で実行するとする。この場合、ネットワークルータのパケットフィルタリングなど高速の処理速度を必要とされるときは、必要な処理速度を実現することが困難な場合もある。ソフトウェア処理で各ブロックの検索結果を管理して、各ブロックの検索結果をマージするための処理の負荷が大きいためである。特に汎用的なCPU(Central Processing Unit)でのソフトウェア処理ではパフォーマンスが低下する。ネットワークシステムでは、装置が故障せず、また、安定して処理を行うことが特に求められているため、通常、20%〜100%程度の性能マージンを設けて設計がなされている。したがって、瞬間的に発生する大きなトラフィックの負荷を想定してCAMメモリシステムが動作するため、トラフィック量が想定されるピークに達したとしても安定して動作することができる。しかし、ピークに満たないトラフィックの場合においても、同様に検索処理が行われるため、低消費電力化の妨げとなっている。これに対し、本実施形態によると、制御回路100の負荷をキューモニター部10によってモニタリングし、モニタリング結果に応じて、TCAMアレイブロック300に対して分割して検索処理を行うか否かを決定しているため、いっそうの低消費電力化を実現することができる。すなわち、TCAMアレイブロック300に対する検索処理を分割するか否かを制御回路100が自律的に行うことで、ピーク電力を平均電力に近いところで動作させることができ、電力の消費を抑えることができる。いっそうの低消費電力化を実現することにより、ボードの設計や電源設計の自由度を高めることができる。
図5は、TCAMアレイブロック300に対して分割して検索処理を行うことによる低消費電力化を示す図である。図5の状態(A)は、分割をせずにCAMセルアレイに対する検索処理を行う場合の、検索時のメモリシステム1の消費電力を示す図である。図5の状態(B)は、TCAMアレイブロック300のCAMセルアレイを2分割して検索する場合の、検索時のメモリシステム1の消費電力を示す図である。状態(A)に対し、状態(B)に示すように、2分割でCAMセルアレイに対する検索処理を行うことにより、検索処理の完了に要する時間が長くなる一方で、ピーク電力を平準化することができる。
図6は、TCAMアレイブロック300に対する処理を平均化することによるピーク電流の平準化を示す図である。図6の状態(A)は、分割をせずにCAMセルアレイに対する検索処理を行う場合の、メモリシステム1における電流の大きさを示す図である。状態(A)では、検索処理を2回行っている。状態(B)は、TCAMアレイブロック300のCAMセルアレイを2分割して検索をする場合の、メモリシステム1の電流の大きさを示す図である。また、状態(A)に対し、状態(B)に示すように、2分割でCAMセルアレイに対する検索処理を行うことにより、分割をしない場合のピーク電流に比べて、分割をした場合はピーク電流を平均電流に近づけることができる。
<実施の形態1の半導体回路の動作>
図7は、メモリシステム1がキューの使用状態に応じてCAMセルアレイを検索するための分割数を決定して検索を行う処理を示すフローチャートである。図7に示す処理は、例えば、処理命令管理部21が入力データFIFO12に保持される検索命令を取得することで開始する。
図7は、メモリシステム1がキューの使用状態に応じてCAMセルアレイを検索するための分割数を決定して検索を行う処理を示すフローチャートである。図7に示す処理は、例えば、処理命令管理部21が入力データFIFO12に保持される検索命令を取得することで開始する。
ステップS701において、検索制御部20は、キュー管理部14から、メモリシステム1へのデータの流入量が一定以上であるか否かを判別するために、入力データFIFO12の使用状況を示す信号を受け付ける。メモリシステム1へのデータの流入量が一定以上である場合、すなわち、入力データFIFO12の使用量が一定量を超えている場合(ステップS701においてNO)、ステップS709の処理を行う。メモリシステム1へのデータの流入量が一定以下である場合、すなわち、入力データFIFO12の使用量が一定量を超えていない場合(ステップS701においてYES)、ステップS703の処理を行う。または、キュー管理部14は、入力データFIFO12および出力データFIFO13の使用量をモニタリングし、キューの滞留数が、閾値設定レジスタ15に設定される閾値以下であるか否かを判定してもよい。キュー管理部14は、キューの滞留数が閾値以下である場合(ステップS701においてYES)、メモリシステム1へのデータの流入量が一定以下であることを示す信号を検索制御部20へ出力し、そうでない場合(ステップS701においてNO)、メモリシステム1へのデータの流入量が一定以上であることを示す信号を検索制御部20へ出力する。検索制御部20は、このようにしてキュー管理部14が出力する信号を受け付けることにより、メモリシステム1へのデータの流入量が一定以上であるか否かを判定する。
ステップS703において、検索制御部20は、メモリシステム1へ入力される命令が、複数のサイクルの命令であるか、1サイクルの命令であるかを判定する。メモリシステム1へ入力される命令が複数のサイクルの命令であるか1サイクルの命令であるかは、コマンドデコーダ11によってデコードされている。メモリシステム1へ入力される命令が複数のサイクルの命令であると判定される場合(ステップS703において、「複数サイクル命令」)、検索制御部20は、ステップS707の処理を行い、メモリシステム1へ入力される命令が1サイクルの命令であると判定される場合、ステップS709の処理を行う。
ステップS707において、検索制御部20は、設定管理部25に示される設定に従って、TCAMアレイブロック300のCAMセルアレイを、分割数に従って分割して検索するようTCAMアレイブロック300へのコマンドを発行する。
ステップS709において、検索制御部20は、設定管理部25に示される設定に従って、TCAMアレイブロック300のCAMセルアレイを分割せず検索するようTCAMアレイブロック300へのコマンドを発行する。
図8は、検索制御部20がTCAMアレイブロック300のCAMセルアレイを分割して検索する動作を示すフローチャートである。
ステップS801において、検索制御部20は、設定管理部25に示される設定(制御回路100において記憶するTCAMアレイブロック300のプロファイル情報に示される検索対象の1以上のブロックの情報、分割数の情報その他の情報)に従って、TCAMアレイブロック300のCAMセルアレイのうち検索対象とするブロックを判定する。
ステップS803において、検索制御部20は、TCAMアレイブロック300のCAMセルアレイのうち検索対象とするブロックの中で、最初に検索対象となる1以上のブロックを選択し、選択したブロックを検索する。例えば、検索制御部20は、各ブロックに設定されている優先度に基づいて、最初に検索対象となるブロックを選択する。
ステップS805において、検索制御部20は、プライオリティエンコーダ700から制御回路100へ出力される信号に基づいて、検索キーに対応するデータが検索対象として選択されたブロックに存在するか否かを判定する。検索キーに対応するデータが存在している場合(ステップS805においてYES)、制御回路100は、ステップS813の処理を行い、そうでない場合(ステップS805においてNO)、ステップS807の処理を行う。
ステップS807において、検索制御部20は、検索対象とするブロックの中で、まだ検索対象として選択されていないブロックがあるか(検索対象ブロックの残りは存在するか)判定する。検索対象として選択されていないブロックがある場合(ステップS807においてYES)、制御回路100は、ステップS809の処理を行い、そうでない場合(ステップS807においてNO)、ステップS813の処理を行う。
ステップS809において、検索制御部20は、検索対象とするブロックの中で、まだ検索対象として選択されていないブロックのうち、次に検索の対象となる1以上のブロックを選択し、選択したブロックを検索する。例えば、検索制御部20は、各ブロックに設定されている優先度に基づいて、次に検索対象となるブロックを選択する。
ステップS811において、検索制御部20は、プライオリティエンコーダ700から制御回路100へ出力される信号に基づいて、検索キーに対応するデータが検索対象として選択されたブロックに存在するか否かを判定する。検索キーに対応するデータが存在している場合(ステップS811においてYES)、制御回路100は、ステップS813の処理を行い、そうでない場合(ステップS805においてNO)、ステップS807の処理を行う。
ステップS813において、出力制御部30は、検索結果マージ部26によってマージされた検索結果をメモリシステム1の外部の回路へ出力する。
図8に示す処理によると、制御回路100は、CAMセルアレイを分割して検索する場合において、検索キーに対応するデータが検索結果として出力されると、検索対象として選択されていないブロックがある場合においても検索結果を出力して処理を終了する。通常、CAMセルアレイは、各エントリ(各ブロック)に優先度が設定されているため、このように優先度が高いブロックから検索結果が得られた段階で検索処理を終了することとしてもよい。これにより、メモリシステム1の消費電力をいっそう低減化させることができる。
<実施の形態2>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
実施の形態2では、TCAMアレイブロック300のCAMセルアレイについて、検索対象とするブロック数の最大数を予め閾値として設定することができる。CAMセルアレイを検索する範囲が閾値を超える場合に、制御回路100は、TCAMアレイブロック300のCAMセルアレイを分割して検索する。例えば、設定管理部25に、検索対象とするブロック数の最大数を予め設定しておくことができる。なお、設定管理部25に閾値を設定する場合の他に、制御回路100が外部から閾値の情報を受け付けることとしてもよいし、フラッシュメモリなどの不揮発性メモリに閾値を記憶させることとしてもよいし、電気ヒューズからの信号により閾値の情報を取得することとしてもよい。
このように、検索制御部20は、検索処理の対象とするCAMセルアレイの範囲の上限設定値(閾値)を管理するように構成されている。検索制御部20は、制御回路100に入力される検索用のデータがCAMセルアレイにおいて検索対象とする範囲が上限設定値を超える場合に、CAMセルアレイを複数の部分に分割した各部分を検索処理の対象として検索処理を実行する。
図9は、実施の形態2のメモリシステム1が、検索対象とするブロック数の最大数の閾値に応じて、CAMセルアレイを分割して検索するか否かを制御する処理を示すフローチャートである。
ステップS905において、検索制御部20は、CAMセルアレイについて、検索対象とするブロックの数が、閾値として設定される最大数を超えるか否かを判定する。検索対象とするブロックの数が、閾値として設定される最大数を超える場合(ステップS905においてYES)、制御回路100は、ステップS707の処理を行い、そうでない場合(ステップS905においてNO)、ステップS709の処理を行う。
このように、制御回路100は、まず、検索する対象のブロックがどこであるかの情報を、例えば設定管理部25の記憶領域(プロファイルレジスタ)から読み出す。例えば、検索対象となるデータがテーブルである場合、検索対象のデータがACL(Access Control List)テーブルである場合や、フォワーディングテーブルである場合など、データの種類に応じて、検索対象とするブロックの範囲をプロファイルとしてレジスタ、管理用のメモリ領域その他の記憶領域に保持させておく。制御回路100は、検索命令に示されるデータの種類に応じて、プロファイルを参照して、検索対象とするブロックの範囲の情報を取得する。本実施形態では、さらに、制御回路100は、検索対象のブロックの範囲が、閾値として設定されるブロックの最大数を超える場合に、CAMセルアレイを分割して検索する。分割されるブロックの大きさは、閾値として設定されるブロックの最大数に達しない範囲とする。こうすることで、検索時の消費電力の大きさを、閾値に対応する最大数のブロックの検索動作時までの大きさとすることができ、低消費電力化を図ることができる。これにより、ピーク電力が大きい場合に発生するボードの電源の低下、グランドノイズの発生などを低減させることができる。
すなわち、検索時の消費電力の大きさを一定以下に抑えることができることにより、これまでノイズ対策として行ってきた、パスコンデンサを大量にボード上に配置する、電源ネットワークのインピーダンスをできる限り下げるなどの対策をする手間を省き得ることとなる。これにより、電源設計、ボード設計など各種の設計を容易にすることができる。特に、近年、ネットワークに接続する機器が増大する傾向にあり、検索対象となる範囲も拡大していく傾向にあるため、電源のインピーダンスを一定以下(例えば、0.5mΩ以下)とすることが必要とされている。本実施形態は、あらかじめ電源設定の制約条件にあわせて検索対象のブロック数の最大数を設定することができ、電源設計、ボード設計などの設計を容易にすることができる。
<実施の形態3>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図10は、実施の形態3のメモリシステム1が、外部のシステムから、CAMセルアレイに対して分割して検索するか否かの指定を受け付けることを示す図である。図10の制御回路100は、メモリシステム1の外部の回路から、CAMセルアレイを分割して検索するか否かのフラグ、検索対象とするブロックの最大数等の情報を含む制御信号を受け付ける。
実施の形態3では、メモリシステム1に対して検索命令を発行するシステム(メモリシステム1を管理する上位側のシステム)が、メモリシステム1に対してTCAMアレイブロック300のCAMセルアレイを分割して検索するか否かを指定することを可能としている。このように、メモリシステム1の外部の回路、または、メモリシステム1を管理する上位側のシステムからコマンドベースでCAMセルアレイの検索を分割して行うか否かをオプションとして指定することを可能とする。これにより、メモリシステム1と上位側のシステムとの信号のやりとりにかかるレーテンシーを低減することができるため、上位側のシステムからのメモリシステム1の制御がいっそうリアルタイムになされることとなる。例えば、複数のデバイスをシステムレベルで管理するコントローラが、管理対象の各デバイスがどれだけ競合しているか、各デバイスがどの程度の負荷で動作しているのか等の情報をモニタリングし、これら競合の程度、負荷の程度に応じて、メモリシステム1のCAMセルアレイを分割して検索するか否かを決定することができる。
このように、メモリシステム1は、CAMセルアレイを複数の部分に分割して各部分の少なくとも1つを検索処理の対象として検索処理を行うか否かの指定を含む検索用のデータの入力を受け付けるように構成されている。検索制御部20は、検索用のデータに含まれる指定に従って、検索処理の速度を調節するように構成されている。
<実施の形態4>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図11は、実施の形態4のメモリシステム1が、制御回路100において分割動作制御レジスタ41に値を保持し、CAMセルアレイに対して分割して検索するか否かを分割動作制御レジスタ41の値に応じて制御する構成を示す図である。
メモリシステム1は、分割動作制御レジスタ41において、CAMセルアレイのバンク活性数を制限してピーク電力の低減を優先するか、CAMセルアレイの検索処理の性能を優先するかを設定することができる。制御回路100は、分割動作制御レジスタ41に示される設定に従って、CAMセルアレイに対する検索処理を行う。分割動作制御レジスタ41には、例えば、時間帯と対応付けて、CAMセルアレイに対して分割して検索するか否かを指定することができる。ただし、CAMセルアレイに対して分割して検索することが指定されている時間帯においても、キューモニター部10のモニタリング結果に応じて、CAMセルアレイを分割しての検索処理をせず検索処理の性能を優先することとしてもよい。例えば、ネットワークのトラフィックが多くなる時間帯などでは、ルーティング処理等の安定性を高めるため、分割動作制御レジスタ41の設定により、CAMセルアレイを分割して検索することをせず、性能を優先して処理する。一方、ネットワークのトラフィック負荷が少なくなる時間帯では、低消費電力化のためにCAMセルアレイを分割して検索しつつ、負荷の変動が発生した場合には性能を優先した処理に対応できるようにすることもできる。
メモリシステム1は、検索制御部20がCAMセルアレイを複数の部分に分割した各部分の少なくとも1つを検索処理の対象として検索処理を行うか、または、CAMセルアレイの全体を検索処理の対象として検索処理を行うかの設定を分割動作制御レジスタ41に記憶可能に構成されている。検索制御部20は、分割動作制御レジスタ41に示される設定に従って、検索処理を行うように構成されている。
<実施の形態5>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図12は、実施の形態5のメモリシステム1の制御回路100において、閾値設定レジスタ15がキューの残量に応じた分割数の設定を多段階で保持していることを示す図である。
このように、入力データFIFO12等のFIFOの充填率を基準に、CAMセルアレイを分割して検索する際の分割数(検索処理の回数)を多段階で設定可能としておくことにより、閾値設定レジスタ15に示される閾値をまたぐ際の検索処理の動作時の変化を小さくすることができ、処理を安定化させることができる。
図12に示す例では、FIFOにおけるキューの使用量(充填率)がFIFOに割り当てられたメモリ領域の70%を超える場合は、検索制御部20がCAMセルアレイを分割しての検索を行わず、CAMセルアレイ全体を1回で検索することで検索処理の性能を優先することを示している。また、FIFOにおけるキューの使用量がFIFOに割り当てられたメモリ領域の10%に満たない場合は、検索制御部20がCAMセルアレイの検索を5回に分割して検索することを示している。
キューモニター部10は、入力データFIFO12等のFIFOメモリの使用量が大きくなるほど、検索処理時のCAMセルアレイの分割数が小さくなるように複数の段階の閾値を閾値設定レジスタ15に設定可能である。キューモニター部10は、閾値設定レジスタ15に設定される、複数の段階の閾値のそれぞれをFIFOメモリの使用量が超える場合に、各段階に応じた信号を検索制御部20へ出力するように構成されている。検索制御部20は、検索処理を、キューモニター部10が出力する信号に示される段階に応じた分割数によりCAMセルアレイを複数に分割して検索処理を実行する。また、検索制御部20が分割してCAMセルアレイを検索する際は、優先順位の高いブロックから順に選択して検索結果を出力することで、負荷が少ない時は、検索処理に要する消費電力もピーク電力も減らすことができる。
<実施の形態6>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図13は、実施の形態6のメモリシステム1の制御回路100において、閾値設定レジスタ15がキューの残量に応じて、分割してのCAMセルアレイの検索を開始する閾値と、分割しての検索処理を終了する閾値とを保持することを示す図である。
キューモニター部10は、入力データFIFO12等のFIFOメモリの使用量に対し、検索制御部20がCAMセルアレイを複数の部分に分割することにより検索処理を行うための第1の閾値と、検索制御部20がCAMセルアレイを分割せずCAMセルアレイの全体を検索対象とするための第2の閾値とを設定可能である。検索制御部20は、キューモニター部10が第1の閾値に応じた信号を出力する場合に、CAMセルアレイを複数の部分に分割した検索処理を行い、キューモニター部10が第2の閾値に応じた信号を出力する場合に、CAMセルアレイの全体を検索対象とした検索処理を行う。
このように、CAMセルアレイに対して分割しての検索を開始する場合の閾値と、分割しての検索を終了する場合の閾値とをそれぞれ閾値設定レジスタ15に保持することで、閾値付近での分割検索処理のセットとリセットとを繰り返すことを避けることができ、メモリシステム1の動作をいっそう安定化させることができる。図13の例では、FIFOの充填率がメモリ領域の70%を超える場合は、CAMセルアレイを分割しての検索処理を行わず、性能を優先してCAMセルアレイ全体を1回で検索する。検索制御部20は、FIFOの充填率が徐々に低下し、50%に達した段階で、CAMセルアレイを分割して検索する処理を再開する。このように、ヒステリシス特性を閾値設定レジスタ15に適用することで、メモリシステム1の動作を安定化させている。
<実施の形態7>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図14は、実施の形態7の半導体回路が複数のメモリシステムを備え、これらメモリシステムの上位側のシステムがそれぞれのメモリシステムに対してCAMセルアレイを分割して検索処理を行うか分割せず検索処理を行うかを指定する場合の構成を示す図である。
半導体回路は、複数のメモリシステムを備え、それぞれのメモリシステムに含まれるCAMセルアレイについて検索をすることが可能に構成されている。各メモリシステムは、複数のメモリシステムのCAMセルアレイのいずれに対して、複数の部分に分割した各部分を検索処理の対象とするかの指定を受け付けて、受け付けた指定に従って検索処理を行う。
図14の例では、半導体回路が、各実施形態で説明しているメモリシステムを複数備える構成を示している。半導体回路は、第1のメモリシステム1Aと、第2のメモリシステム1Bとを備える。第1のメモリシステム1Aは、TCAMアレイブロック300Aを含む。第2のメモリシステム1Bは、TCAMアレイブロック300Bを含む。NPU900は、これらメモリシステムに対して上位のシステムとして動作し、各メモリシステムを制御する。これらメモリシステムの各々は、それぞれ、独立に設定を有し、設定に従って動作することとしてもよい。例えば、第1のメモリシステム1は実施の形態1に示すメモリシステム1の構成により動作させ、第2のメモリシステム2は実施の形態2に示すメモリシステム1の構成により動作させることとしてもよい。また、NPU900と第1のメモリシステム1Aとを接続する信号配線など、NPUとメモリシステムとを接続する信号配線を、図14に示すようにパラレル化し、CAMセルアレイに対する検索処理のオプションの切り替えを、パラレル化した信号配線により行うこととしてもよい。こうすることで、配線資源を有効に利用しつつ、メモリシステムの制御も可能となる。
また、各メモリシステムは、NPU900などメモリシステムの外部の回路からの情報に基づいて、CAMセルアレイに対して分割して検索するか否かを制御することとしてもよい。例えば、第1のメモリシステム1は、NPU900から、半導体回路の現在の消費電力、各機器の負荷の状態を示す信号を受け付けて、これらの情報に基づいて、CAMセルアレイに対して分割して処理を行うか否か、また分割数をどの程度にするかを決定することとしてもよい。例えば、半導体回路において、第1のメモリシステム1以外の他の機器の負荷、消費電力その他の処理の状態を示す情報に基づいて、例えば、他の機器の負荷および消費電力が高い場合は、半導体回路の電力の消費量を抑えるためCAMセルアレイを分割して検索し、他の機器の負荷が小さい場合は、CAMセルアレイに対する検索を分割しないで行うことで、半導体回路を構成するシステム全体の電力の変動を小さくすることとしてもよい。
<実施の形態8>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図15は、実施の形態8のメモリシステム1が、性能評価部51を備えてメモリシステム1の製造バラツキをモニタリングし、モニタリング結果に応じてCAMセルアレイに対する検索処理の分割を制御する構成を示す図である。
メモリシステム1は、半導体回路内の各回路の少なくともいずれかについて、製造時のバラツキをモニタリングする性能評価部51をさらに備える。検索制御部20は、性能評価部51による製造時のバラツキのモニタリング結果に応じて、CAMセルアレイの各部分を検索対象とするための分割数を決定するように構成されている。
図16は、実施の形態8の制御回路100が、メモリシステム1の製造バラツキの評価結果に基づいて、CAMセルアレイに対する検索処理の分割数を制御する処理を示すフローチャートである。
ステップS1601において、制御回路100は、性能評価部51により、メモリシステム1の性能を評価する情報として、メモリシステム1に組み込まれたアナログ素子による電流測定結果(測定値A)と、製品に予め定められ、制御回路100において保持される規格値(規格値B)とを取得する。規格値は、メモリシステム1が平均的な消費電力となる構成の場合に、電流値を測定することで規格値として設定される。
ステップS1603において、制御回路100は、取得した情報(測定値Aおよび規格値B)を比較することにより、メモリシステム1が、平均的な消費電力の水準よりも高い消費電力のシステムであるか否かを判定する。メモリシステム1が平均的な消費電力の水準よりも高い消費電力のシステムである場合に(ステップS1603においてYES)、ステップS707の処理を行い、そうでない場合に(ステップS1603においてNO)、ステップS709の処理を行う。
また、メモリシステム1が平均的な消費電力の水準よりも高い消費電力である場合は、CAMセルアレイに対する検索処理の分割数を、通常(平均的な消費電力のシステム)よりも多く設定したり、CAMセルアレイに含まれる各ブロックについて、同時に検索する領域を少なくしたりする等の設定変更を行うこととしてもよい。また、メモリシステム1が平均的な消費電力の水準よりも低い消費電力である場合は、CAMセルアレイに対する検索処理の分割数を、通常(平均的な消費電力のシステム)よりも少なく設定したり、CAMセルアレイに含まれる各ブロックについて、同時に検索する領域を多くしたりする等の設定変更を行うこととしてもよい。
また、半導体回路における電流および電圧等の情報は、マイコン等に組み込まれたアナログ素子を利用することで測定することができるが、電源の変化量を直接検出する機構、電源電圧を直接測定する機構その他の機構、または、電流をセンスする技術等を半導体回路に組み込むこととしてもよい。
<実施の形態9>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図17は、実施の形態9のメモリシステム1が、CAMセルアレイに対して検索処理を行った際の分割数の履歴を保持し、履歴に基づいて、CAMセルアレイに対する検索処理の分割数を補正する構成を示す図である。
検索制御部20は、CAMセルアレイを複数の部分に分割して検索処理を行った際の分割数の履歴を保持するように構成されており、分割数の履歴に応じて、CAMセルアレイを複数の部分に分割する分割数を決定するように構成されている。
図17の状態(A)は、ある時点において、閾値設定レジスタ15に設定されている、キューの使用量と、CAMセルアレイに対する検索処理の分割数とを対応付けた情報である。状態(B)は、分割数履歴情報29のデータ構造を示す図である。例えば、制御回路100は、分割数履歴情報29を保持し、CAMセルアレイに対する検索処理を行う都度、分割数履歴情報29を更新する。分割数履歴情報29は、一定期間内における検索処理の分割数の履歴を示す。状態(B)の例では、分割係数「3」(3分割)が頻度「60%」と最も大きい。状態(C)は、分割数履歴情報29に基づき、閾値設定レジスタ15に保持される設定を更新した場合の、キューの使用量と、CAMセルアレイに対する検索処理の分割数とを対応付けた情報である。具体的には、メモリシステム1は、制御回路100において、CAMセルアレイに対する検索処理の分割数を決定する都度、分割数に対応するカウンタを加算する。制御回路100は、一定の周期が経過するたびに、周期内で使用された分割数をランキングする。制御回路100は、ランキングの結果、最も分割数の回数が大きかったものをもとに、閾値の範囲を拡大する等して調整する。なお、CAMセルアレイを分割しないで検索する際の閾値は可変にせず固定にしてもよい。これにより、処理負荷が一定以上の場合には、パフォーマンスを優先させてメモリシステム1を動作させることができる。
このように、制御回路100は、分割数履歴情報29において、最も分割数の頻度が多かったものを特定し、このメモリシステム1において最も効率よくCAMセルアレイを分割できる設定値を更新する。これにより、電源を安定化させることができ、メモリシステム1を含む半導体回路の動作の安定化にも寄与することができる。
<実施の形態10>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図18は、実施の形態10のメモリシステム1が、特定のコマンドに対してのみCAMセルアレイの検索処理を分割する場合のメモリシステム1の動作を示すフローチャートである。例えば、メモリシステム1を含むシステムに求められるワイヤースピードにあわせて、メモリシステム1は、CAMセルアレイに対する検索処理時の分割数を制御する。例えば、システムが最小のフレームサイズの64バイトのデータを転送するとする。この場合、システムが転送するデータのサイズは、プリアンブル部分の8バイト、データ部分のフレームサイズである64バイト、次のフレームを送信するまでの空隙(Inter Frame Gap)として12バイトの合計84バイト(672ビット)のデータ量を、規定の時間内で処理する必要がある。例えば、システムが400GHzのワイヤースピードを保証する場合、検索性能として、[式1]に示すように、1.68ns(ナノ秒)の時間で、フレームサイズが64バイトのデータを転送する必要がある(595Mbps)。
[式1]:(1/400GHz)*(8+64+12)*8=1.68ns
一方、データ部分のフレームサイズが512バイトであった場合、検索性能として、[式2]に示すように、10.64ns(ナノ秒)の時間で、フレームサイズが512バイトのデータを転送する必要がある(94.0Mbps)。
一方、データ部分のフレームサイズが512バイトであった場合、検索性能として、[式2]に示すように、10.64ns(ナノ秒)の時間で、フレームサイズが512バイトのデータを転送する必要がある(94.0Mbps)。
[式2]:(1/400GHz)*(8+512+12)*8=10.64ns
この場合(データフレームのサイズが512バイトの場合)、メモリシステム1の検索エンジンが、600MHzで1回の検索処理を行うことができるときは、この検索処理を9回に分けて行うことが可能となる。近年では、ネットワークの仮想化技術の発展により、仮想ネットワークを1台の機器で何セットか構築することができる。仮想ネットワークにおいては、仮想ネットワークの数に応じて、実効的なワイヤースピードを可変とすることがますます必要とされている。本実施形態によると、ワイヤースピードの変動にあわせて、検索性能のレートに適合した性能を提供することができる。
この場合(データフレームのサイズが512バイトの場合)、メモリシステム1の検索エンジンが、600MHzで1回の検索処理を行うことができるときは、この検索処理を9回に分けて行うことが可能となる。近年では、ネットワークの仮想化技術の発展により、仮想ネットワークを1台の機器で何セットか構築することができる。仮想ネットワークにおいては、仮想ネットワークの数に応じて、実効的なワイヤースピードを可変とすることがますます必要とされている。本実施形態によると、ワイヤースピードの変動にあわせて、検索性能のレートに適合した性能を提供することができる。
検索制御部20は、半導体回路が入力を受け付ける検索用のデータに特定の命令が含まれる場合に、CAMセルアレイを複数の部分に分割した検索処理を実行するように構成されている。
ステップS1801において、検索制御部20は、CAMセルアレイの検索性能の情報(検索処理の速度の情報:レートA)と、ワイヤースピードの情報(レートB)とを、例えばメモリシステム1の外部の回路、制御回路100のレジスタ等から取得する。
ステップS1803において、検索制御部20は、ステップS1801で取得した情報を比較して、CAMセルアレイの検索処理を分割して行うことが可能か否かを判定する。例えば、検索制御部20は、演算式(レートA/レートB)の値が、比較値「1.0」を超えるか否かを判定する。ステップS1803において、分割によりCAMセルアレイの検索処理を行うことが可能と判定した場合(ステップS1803においてYES)、検索制御部20は、ステップS1807の処理を行い、そうでない場合(ステップS1803においてNO)、ステップS709の処理を行う。
ステップS1807において、検索制御部20は、検索性能の情報(レートA)およびワイヤースピードの情報(レートB)に基づき、演算式(レートA/レートB)の演算結果を算出し、算出結果に基づいて、CAMセルアレイに対して検索処理を行う場合の分割数を決定する。検索制御部20は、決定された分割数に従って、CAMセルアレイへの検索処理を行う。検索制御部20は、例えば演算式(レートA/レートB)の演算結果が、値「0」以上かつ値「2」未満であれば、分割をせずCAMセルアレイへの検索処理を行うと決定する。また、検索制御部20は、例えば演算式(レートA/レートB)の演算結果が、値「2」以上かつ値「3」未満であれば、CAMセルアレイを2分割して検索処理を行うと決定する。同様に、検索制御部20は、演算式(レートA/レートB)の値に応じて、CAMセルアレイを分割する数を決定する。例えば、レートAがレート「600MHz」、レートBがレート「94Mbps」である場合、演算式(レートA/レートB)の演算結果が、値「6.37」となるため、検索制御部20は、CAMセルアレイを6分割して検索処理を行うと決定する。
<実施の形態11>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
実施の形態11のメモリシステム1は、設定に従って、CAMセルアレイに対して検索処理を行う際の分割数を決定する。メモリシステム1は、キューモニター部10がモニタリングする入力データFIFO12等の充填率が、ある閾値を超える場合、オーバーフローした処理を削除して、エラーログを付加してメモリシステム1の外部の回路へ出力する。オーバーフローした処理を削除することにより、メモリシステム1による処理結果を受け取る機器がオーバーフローによる不安定な動作をしてしまう事態を回避するためである。制御回路100は、例えば、キューモニター部10のモニタリング結果に応じて、オーバーフローした処理を削除することとしてもよいし、メモリシステム1の外部からの制御信号、特に、上位側のレイヤーの管理信号に基づいて、制御回路100が処理中のデータをオーバーフローとして削除するか否かを判定してもよい。
<実施の形態12>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図19は、実施の形態12の制御回路100の構成を示す図である。図19に示すように、実施の形態12の制御回路100は、キューモニター部10に対し、クロックを分周して入力するための構成(二分周クロック17、四分周クロック18および分周クロック制御回路19)を有する。二分周クロック17は、制御回路100に入力されるクロックを2分周して出力する。四分周クロック18は、制御回路100に入力されるクロックを、4分周して出力する。
制御回路100は、検索制御部20に対しては、通常のクロックを入力し、キューモニター部10に対しては、入力されるクロックを分周クロック制御回路19によって切り替え可能としている。これにより、制御回路100は、実効的に、CAMセルアレイへの検索を分割するために、分数値の分割を実現することができる。図19の例では、制御回路100は、複数の分周クロック(二分周クロック17および四分周クロック18)を備える。図19では図示していないが、例えば制御回路100が5分周したクロックをキューモニター部10に入力し、分周していないクロックを検索制御部20に入力するとする。この場合、キューモニター部10が、5分周したクロックで、制御回路100の外部から入力されるコマンドのステータスを管理する。このとき、検索制御部20が、CAMセルアレイへの検索処理を2分割で行うとする。この場合、制御回路100の実行的な処理速度は、クロックを分周しない場合と比べて、比率「2/5」の速度となる。すなわち、実施の形態12の制御回路100によると、CAMセルアレイの検索処理の分割数を、整数値だけでなく分数値によっても調整することができる。なお、図19では、制御回路100が分周クロックを備える例を説明したが、これに限らず、例えば、クロック数をカウントするカウンタを制御回路100の内部に設けて、一定のカウント値に達した場合に信号をキューモニター部10に出力する等の構成によっても、CAMセルアレイの検索処理の分割数を、整数だけでなく分数値によっても調整可能とすることができる。
<実施の形態13>
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
次に、別の実施の形態にかかる半導体回路に含まれるメモリシステムについて説明する。
図20は、実施の形態13のメモリシステム1が、CAMセルアレイに対する検索処理が規定値の期間より間隔が空いて検索処理を行った場合に、段階的に検索処理の分割数を小さくする処理を示す図である。
検索制御部20は、繰り返し行うCAMセルアレイへの検索処理のインターバルの長さを計測可能に構成されている。検索制御部20は、インターバルの長さが一定期間を超えてCAMセルアレイへの検索処理を再開した場合、CAMセルアレイを複数の部分に分割した検索処理を行い、CAMセルアレイを分割する数を段階的に減少させるように構成されている。
図20に示すように、CAMセルアレイに対して検索処理を行った後、あらかじめ規定されたインターバル(Tinterval)を経過してから制御回路100がCAMセルアレイへの検索処理を行ったとする。この場合、制御回路100は、CAMセルアレイを複数の部分に分割して検索処理を行う。図20の例では、制御回路100は、あらかじめ規定されたインターバルを経過してからCAMセルアレイへの検索処理を行う場合に(時間T1)、1つの検索処理を3つに分割して検索処理を行う(時間T1〜時間T2)。次に、制御回路100は、検索処理の分割数を減少させて、CAMセルアレイへの検索処理を行う(時間T2〜時間T3)。次に、制御回路100は、検索処理の分割数を減少させ(図20の場合は、分割数「1」から分割数「ゼロ」へと減少)、CAMセルアレイへの検索処理を行う(時間T3〜時間T4)。
このように、検索処理を開始してから徐々にCAMセルアレイに対して検索対象とする範囲を拡大することにより、メモリシステム1の電源の安定性をいっそう向上させることができる。また、メモリシステム1を含むシステムの消費電力をいっそう低減することができる。
ここで、インターバル(Tinterval)として設定する期間は、CAMセルアレイに対して分割しないで検索処理を行った後に(図20の「1つの検索処理」)、半導体回路における電源供給システムの負荷が小さくなることで、電源の応答性、電源の供給能力その他の電源の特性に変化が生じる期間の長さとしている。このインターバルの期間は、システムによって異なるため、メモリシステム1の外部の回路から設定可能としておくこととしてもよい。
制御回路100は、CAMセルアレイに対して検索処理を行った後、NOP(no operation)状態となる期間をカウントし、NOP状態の期間がインターバルとして設定された期間(Tinterval)を超えるか否かを判定する。NOP状態の期間がインターバルとして設定された期間を超える場合、制御回路100は、CAMセルアレイに対して分割して検索処理を行うための信号(信号BE)を出力する。
なお、図20の例では、インターバルとして設定された期間を超えた後にCAMセルアレイに対する検索処理を行う場合に、分割数「3」として検索処理を行っているが、分割数は分割数「3」に限られない。また、図20の例では、分割数を徐々に減少させている例を示しているが、この他にも、電源の安定性が確認できる場合は、分割動作を終了させてもよい。
<まとめ>
本実施形態の制御回路100は、CAMセルアレイの検索対象となる範囲を決定するために、制御回路100に入力されるキューの滞留状態、キューの負荷状態を検知して、これらの検知結果に基づいて、ピーク電力を抑制するという観点でCAMセルアレイに対して分割して検索処理を行う。
本実施形態の制御回路100は、CAMセルアレイの検索対象となる範囲を決定するために、制御回路100に入力されるキューの滞留状態、キューの負荷状態を検知して、これらの検知結果に基づいて、ピーク電力を抑制するという観点でCAMセルアレイに対して分割して検索処理を行う。
機器がCAMなどのメモリシステムを使用して高速でパターンマッチング処理を行う場合、高負荷時を想定してマージンをとって設計を行う場合が比較的多い。例えば、ネットワークシステムで使用される機器は、機器の保守が容易であること、機器の動作が安定することを考慮して、20%〜100%程度の性能マージンを設けて構成されることが多い。データセンター内、サービス拠点などでネットワークが構成される場合は、ネットワークが稼働停止状態となると大きな損失が発生するためである。そのため、機器は、ラインレート以上の処理性能で検索処理を行うことが多く、ピーク電力が大きくなる。このピーク電力が大きくなることにより、機器の電源電圧が低下し、誤動作の要因にもなりうるため、ボードのインピーダンスを低減させることが必要となる。また、CAMセルアレイに対する検索処理を、機器が汎用プロセッサーを使用してソフトウェア処理で分割して行う場合は、管理が複雑になるとともに、分割された検索処理の結果をマージする際の処理が汎用プロセッサーを使用したソフトウェア処理となるため、機器のパフォーマンスが低下する。特に、高速なトラフィック負荷を機器が処理する場合、ソフトウェア処理では、定められたラインレートで処理することが困難であることもある。
これらの課題を解決するため、機器が上記の実施形態で説明したメモリシステムを使用することで、高速でパターンマッチング処理を行いつつ、ピーク電力を低減させることで電源電圧の低下を低減することができる。このように、機器がキューの残量を管理する等により、システムの検索処理の状態を自己診断する。機器は、設定された処理能力で処理できる場合は、ピーク電流を低減するために、検索処理を2つ以上の処理に分割して処理した後に、処理結果をマージする。こうすることで、メモリシステムの外部の回路からは、メモリシステムに対する検索処理を1つの処理として扱うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 メモリシステム、10 キューモニター部、11 コマンドデコーダ、12 入力データFIFO、13 出力データFIFO、14 キュー管理部、15 閾値設定レジスタ、17 二分周クロック、18 四分周クロック、19 分周クロック制御回路、20 検索制御部、21 処理命令管理部、22 検索エンジン制御部、23 コマンド分割制御部、24 検索対象エリア判定部、25 設定管理部、26 検索結果マージ部、28 ブロック選択回路、29 分割数履歴情報、30 出力制御部、41 分割動作制御レジスタ、100 制御回路、110 検索命令、120 フロー制御情報、130 検索結果、200 サーチラインドライバ、300 TCAMアレイブロック、400 ロウデコーダ、500 センスアンプ/ライトドライバ、600 マッチアンプ、700 プライオリティエンコーダ、900 NPU。
Claims (14)
- 検索用のデータの入力を受け付けて、メモリに保持されたデータをメモリセルアレイの各行について並列に検索することが可能な半導体装置であって、
入力される前記検索用のデータの流入量が一定以上であるか否かを検知し、検知結果に応じて、前記メモリに対する検索処理の速度を調節するように構成された検索制御部と、
前記メモリに対する検索処理の結果を示す信号を出力するように構成された出力制御部とを備える、半導体装置。 - 前記入力される前記検索用のデータの流入量をモニタリングし、前記検索用のデータの流入量が一定以上である場合に信号を出力するように構成されたモニター部をさらに備え、
前記検索制御部が実行する処理は、前記モニター部が出力する信号に基づいて、前記検知結果に応じた前記メモリに対する検索処理の速度を調節することを含む、請求項1に記載の半導体装置。 - 前記モニター部は、前記入力される前記検索用のデータを保持するように構成されたFIFO(First In First Out)メモリを含み、前記FIFOメモリの使用量が一定量を超える場合に前記信号を出力するように構成されている、請求項2に記載の半導体装置。
- 前記検索制御部が前記メモリに対する検索処理の速度を調節することは、前記メモリセルアレイを複数の部分に分割した各部分の少なくとも1つを前記検索処理の対象として前記検索処理を実行することを含む、請求項3に記載の半導体装置。
- 前記検索制御部は、前記検索処理の対象とする前記メモリセルアレイの範囲の上限設定値を管理するように構成されており、前記入力される前記検索用のデータが前記メモリセルアレイにおいて検索対象とする範囲が前記上限設定値を超える場合に、前記メモリセルアレイを複数の部分に分割した各部分を前記検索処理の対象として前記検索処理を実行することを含む、請求項4に記載の半導体装置。
- 前記半導体装置は、
前記メモリセルアレイを複数の部分に分割して各部分の少なくとも1つを前記検索処理の対象として前記検索処理を行うか否かの指定を含む前記検索用のデータの入力を受け付けるように構成されており、
前記検索制御部は、前記検索用のデータに含まれる前記指定に従って、前記検索処理の速度を調節するように構成されている、請求項4に記載の半導体装置。 - 前記半導体装置は、
前記検索制御部が前記メモリセルアレイを複数の部分に分割した各部分の少なくとも1つを前記検索処理の対象として前記検索処理を行うか、または、前記メモリセルアレイの全体を検索処理の対象として前記検索処理を行うかの設定を記憶可能に構成されており、
前記検索処理部は、前記設定に従って、前記検索処理を行うように構成されている、請求項4に記載の半導体装置。 - 前記モニター部は、前記FIFOメモリの使用量が大きくなるほど前記メモリセルアレイの分割数が小さくなるように複数の段階の閾値を設定可能であり、前記複数の段階の閾値のそれぞれを超える場合に、各段階に応じた前記信号を出力するように構成されており、
前記検索制御部が行う前記検索処理は、前記モニター部が出力する前記信号に示される前記段階に応じた分割数により前記メモリセルアレイを複数に分割して前記検索処理を実行することを含む、請求項4に記載の半導体装置。 - 前記モニター部は、前記FIFOメモリの使用量に対し、前記検索制御部が前記メモリセルアレイを前記複数の部分に分割することにより前記検索処理を行うための第1の閾値と、前記検索制御部が前記メモリセルアレイを分割せず前記メモリセルアレイの全体を検索対象とするための第2の閾値とを設定可能であり、
前記検索制御部が行う前記検索処理は、前記モニター部が前記第1の閾値に応じた前記信号を出力する場合に、前記メモリセルアレイを複数の部分に分割した前記検索処理を行い、前記モニター部が前記第2の閾値に応じた前記信号を出力する場合に、前記メモリセルアレイの全体を検索対象とした前記検索処理を行うことを含む、請求項4に記載の半導体装置。 - 前記半導体装置は、複数の前記メモリセルアレイのそれぞれについて前記検索をすることが可能に構成されており、
前記検索制御部が行う前記検索処理は、前記複数の前記メモリセルアレイのいずれに対して前記複数の部分に分割した各部分を前記検索処理の対象とするかの指定を受け付けて、受け付けた指定に従って前記検索処理を行うことを含む、請求項4に記載の半導体装置。 - 前記半導体装置内の各回路の少なくともいずれかについて、製造時のバラツキをモニタリングする性能評価部をさらに備え、
前記検索制御部は、前記性能評価部による前記製造時のバラツキのモニタリング結果に応じて、前記メモリセルアレイの各部分を検索対象とするための分割数を決定するように構成されている、請求項4に記載の半導体装置。 - 前記検索制御部は、前記メモリセルアレイを複数の部分に分割して前記検索処理を行った際の分割数の履歴を保持するように構成されており、前記分割数の履歴に応じて、前記メモリセルアレイを複数の部分に分割する分割数を決定するように構成されている、請求項4に記載の半導体装置。
- 前記検索制御部は、前記半導体装置が入力を受け付ける前記検索用のデータに特定の命令が含まれる場合に、前記メモリセルアレイを複数の部分に分割した前記検索処理を実行するように構成されている、請求項4に記載の半導体装置。
- 前記検索制御部は、繰り返し行う前記検索処理のインターバルの長さを計測可能に構成されており、
前記インターバルの長さが一定期間を超えて前記検索処理を再開した場合、前記メモリセルアレイを複数の部分に分割した前記検索処理を行い、前記メモリセルアレイを分割する数を段階的に減少させるように構成されている、請求項4に記載の半導体装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015230839A JP2017097940A (ja) | 2015-11-26 | 2015-11-26 | 半導体装置 |
US15/339,076 US10203892B2 (en) | 2015-11-26 | 2016-10-31 | Semiconductor device |
CN201611055279.9A CN106803428B (zh) | 2015-11-26 | 2016-11-25 | 半导体器件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015230839A JP2017097940A (ja) | 2015-11-26 | 2015-11-26 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017097940A true JP2017097940A (ja) | 2017-06-01 |
Family
ID=58777636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015230839A Pending JP2017097940A (ja) | 2015-11-26 | 2015-11-26 | 半導体装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10203892B2 (ja) |
JP (1) | JP2017097940A (ja) |
CN (1) | CN106803428B (ja) |
Families Citing this family (4)
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 |
US10504595B1 (en) * | 2019-02-28 | 2019-12-10 | Palo Alto Networks, Inc. | Amortizing dissipated power and current demand in a ternary content addressable memory |
TWI783767B (zh) * | 2021-11-02 | 2022-11-11 | 瑞昱半導體股份有限公司 | 記憶體分時控制裝置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63178322A (ja) * | 1987-01-20 | 1988-07-22 | Nec Corp | 記号列識別装置 |
US4958377A (en) * | 1987-01-20 | 1990-09-18 | Nec Corporation | Character string identification device with a memory comprising selectively accessible memory areas |
JPH03212896A (ja) * | 1990-01-16 | 1991-09-18 | Mitsubishi Electric Corp | 連想記憶装置 |
JPH04129086A (ja) * | 1990-09-19 | 1992-04-30 | Nec Corp | スタッフ回路 |
JPH06333395A (ja) * | 1993-05-19 | 1994-12-02 | Kawasaki Steel Corp | 連想メモリ |
US5485418A (en) * | 1990-01-16 | 1996-01-16 | Mitsubishi Denki Kabushiki Kaisha | Associative memory |
JP2009158027A (ja) * | 2007-12-27 | 2009-07-16 | Fujitsu Microelectronics Ltd | 連想メモリ |
JP2010277642A (ja) * | 2009-05-28 | 2010-12-09 | Renesas Electronics Corp | 半導体装置 |
US20110317462A1 (en) * | 2010-06-23 | 2011-12-29 | Carl Gyllenhammer | System for Dynamically Managing Power Consumption in a Search Engine |
US20130279231A1 (en) * | 2011-03-22 | 2013-10-24 | Netlogic Microsystems, Inc. | Power Limiting in a Content Search System |
US20140025882A1 (en) * | 2012-07-19 | 2014-01-23 | Fujitsu Limited | Transmission device and temperature control method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004526274A (ja) * | 2001-05-17 | 2004-08-26 | メンコール エル.エル.シー. | 異なるサイズのワードの検索 |
JP4346975B2 (ja) | 2003-06-27 | 2009-10-21 | 株式会社ルネサステクノロジ | 連想メモリ機能付き集積回路及び侵入検知装置 |
JP4343859B2 (ja) * | 2005-02-17 | 2009-10-14 | 株式会社日立製作所 | 半導体装置 |
JP4795740B2 (ja) * | 2005-07-19 | 2011-10-19 | 株式会社日立製作所 | 半導体装置 |
US7577785B2 (en) * | 2005-09-30 | 2009-08-18 | Qualcomm Incorporated | Content addressable memory with mixed serial and parallel search |
US8169808B2 (en) * | 2008-01-25 | 2012-05-01 | Micron Technology, Inc. | NAND flash content addressable memory |
US7848129B1 (en) * | 2008-11-20 | 2010-12-07 | Netlogic Microsystems, Inc. | Dynamically partitioned CAM array |
US8984217B2 (en) * | 2010-08-24 | 2015-03-17 | Qualcomm Incorporated | System and method of reducing power usage of a content addressable memory |
JP2013191255A (ja) * | 2012-03-14 | 2013-09-26 | Renesas Electronics Corp | 内容参照メモリシステム |
-
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 (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63178322A (ja) * | 1987-01-20 | 1988-07-22 | Nec Corp | 記号列識別装置 |
US4958377A (en) * | 1987-01-20 | 1990-09-18 | Nec Corporation | Character string identification device with a memory comprising selectively accessible memory areas |
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 | スタッフ回路 |
JPH06333395A (ja) * | 1993-05-19 | 1994-12-02 | Kawasaki Steel Corp | 連想メモリ |
JP2009158027A (ja) * | 2007-12-27 | 2009-07-16 | Fujitsu Microelectronics Ltd | 連想メモリ |
JP2010277642A (ja) * | 2009-05-28 | 2010-12-09 | Renesas Electronics Corp | 半導体装置 |
US20110317462A1 (en) * | 2010-06-23 | 2011-12-29 | Carl Gyllenhammer | System for Dynamically Managing Power Consumption in a Search Engine |
US20130279231A1 (en) * | 2011-03-22 | 2013-10-24 | Netlogic Microsystems, Inc. | Power Limiting in a Content Search System |
US20140025882A1 (en) * | 2012-07-19 | 2014-01-23 | Fujitsu Limited | Transmission device and temperature control method |
JP2014022010A (ja) * | 2012-07-19 | 2014-02-03 | Fujitsu Ltd | 伝送装置および温度制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US10203892B2 (en) | 2019-02-12 |
US20170153835A1 (en) | 2017-06-01 |
CN106803428A (zh) | 2017-06-06 |
CN106803428B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017097940A (ja) | 半導体装置 | |
US9798774B1 (en) | Graph data search method and apparatus | |
US8225026B2 (en) | Data packet access control apparatus and method thereof | |
JP6190754B2 (ja) | ネットワークスイッチにおける集中型メモリプールを用いるテーブル検索のための装置および方法 | |
KR101694560B1 (ko) | 패턴 인식 프로세서의 전력 소모 관리 방법 및 시스템 | |
EP2503555A1 (en) | Power limiting in a content search system | |
US10419370B2 (en) | Hierarchical packet buffer system | |
CN116018645A (zh) | 用于保护dram存储器装置免受行锤效应的方法和电路 | |
US10572183B2 (en) | Power efficient retraining of memory accesses | |
US20140095785A1 (en) | Content Aware Block Power Savings | |
US9032152B2 (en) | Cache miss detection filter | |
US11392298B2 (en) | Techniques to control an insertion ratio for a cache | |
US10936044B2 (en) | Quality of service based memory throttling | |
CN113966532A (zh) | 一种内容可寻址存储装置、方法及相关设备 | |
US10523566B2 (en) | Memory device | |
US20180203875A1 (en) | Method for extending and shrinking volume for distributed file system based on torus network and apparatus using the same | |
CN109727626B (zh) | 半导体装置及其闪存的存取周期的自动调节方法 | |
JP6273780B2 (ja) | 伝送装置、伝送方法及び伝送プログラム | |
US20180329756A1 (en) | Distributed processing system, distributed processing method, and storage medium | |
US9641437B2 (en) | Packet relay device and packet relay method | |
JP2004525465A (ja) | メモリアレイ構造のための低消費電力読取りスキーム | |
US9652373B2 (en) | Adaptive statistics for a linear address space | |
JP4800415B2 (ja) | 中継装置、macアドレス検索方法 | |
US20220326962A1 (en) | Accelerator capable of executing fast dynamic change in acceleration type | |
KR102661491B1 (ko) | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181016 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190514 |