IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧

<>
  • 特開-半導体装置および半導体システム 図1
  • 特開-半導体装置および半導体システム 図2
  • 特開-半導体装置および半導体システム 図3
  • 特開-半導体装置および半導体システム 図4
  • 特開-半導体装置および半導体システム 図5
  • 特開-半導体装置および半導体システム 図6
  • 特開-半導体装置および半導体システム 図7
  • 特開-半導体装置および半導体システム 図8
  • 特開-半導体装置および半導体システム 図9
  • 特開-半導体装置および半導体システム 図10
  • 特開-半導体装置および半導体システム 図11
  • 特開-半導体装置および半導体システム 図12
  • 特開-半導体装置および半導体システム 図13
  • 特開-半導体装置および半導体システム 図14
  • 特開-半導体装置および半導体システム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023114100
(43)【公開日】2023-08-17
(54)【発明の名称】半導体装置および半導体システム
(51)【国際特許分類】
   G11C 15/04 20060101AFI20230809BHJP
   G11C 7/22 20060101ALI20230809BHJP
   G06F 30/3308 20200101ALI20230809BHJP
   G06F 119/06 20200101ALN20230809BHJP
【FI】
G11C15/04 631F
G11C7/22 300
G06F30/3308
G06F119:06
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022016219
(22)【出願日】2022-02-04
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】田中 信二
(72)【発明者】
【氏名】澤田 陽平
(72)【発明者】
【氏名】森本 薫夫
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146AA24
5B146GC25
5B146GJ02
5B146GJ06
(57)【要約】
【課題】消費電力を低減するとともに高速なサーチ動作が可能な半導体装置を提供する。
【解決手段】エントリを記憶するための行列状に配置された複数の連想メモリセルを含むメモリアレイを備える。メモリアレイは、列方向に沿って順次検索動作を実行する複数のメモリブロックに分割され、各メモリブロックに対応して、メモリセル行にそれぞれ対応して設けられる複数のマッチ線と、各メモリブロックに対応して、メモリセル列にそれぞれ対応して設けられる複数のサーチ線と、各メモリブロックに対応して、複数のマッチ線にそれぞれ設けられた複数のマッチアンプとをさらに備える。前段のメモリブロックに対応して設けられるマッチ線は、後段のメモリブロックに対応して設けられるマッチ線よりも短く設定される。前段のメモリブロックに対応して設けられたマッチ線の長さに基づいて後段のメモリブロックのサーチ線を駆動するタイミングを制御するタイミング制御部をさらに備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
エントリを記憶するための行列状に配置された複数の連想メモリセルを含むメモリアレイを備え、
前記メモリアレイは、列方向に沿って順次検索動作を実行する複数のメモリブロックに分割され、
各前記メモリブロックに対応して、メモリセル行にそれぞれ対応して設けられる複数のマッチ線と、
各前記メモリブロックに対応して、メモリセル列にそれぞれ対応して設けられる複数のサーチ線と、
各前記メモリブロックに対応して、前記複数のマッチ線にそれぞれ設けられた複数のマッチアンプとをさらに備え、
前段のメモリブロックに対応して設けられるマッチ線は、後段のメモリブロックに対応して設けられるマッチ線よりも短く設定され、
前記前段のメモリブロックに対応して設けられたマッチ線の長さに基づいて前記後段のメモリブロックのサーチ線を駆動するタイミングを制御するタイミング制御部をさらに備える、半導体装置。
【請求項2】
前記タイミング制御部は、前記前段のメモリブロックに対応して設けられたマッチ線の長さに基づく第1のタイミング制御信号を出力する第1のレプリカ回路を含む、請求項1記載の半導体装置。
【請求項3】
前記タイミング制御部は、前記前段のメモリブロックに対応して設けられた前記複数のマッチアンプの個数に基づく第2のタイミング制御信号を出力する第2のレプリカ回路をさらに含む、請求項2記載の半導体装置。
【請求項4】
前記第2のレプリカ回路は、前記第1のタイミング制御信号に基づいて動作する、請求項3記載の半導体装置。
【請求項5】
前記タイミング制御部は、前記第2のタイミング制御信号に従って検索動作により各前記メモリブロックに記憶された一部のエントリが全て不一致であることを判定するための判定回路をさらに含み、
前記判定回路の判定結果に基づいて前記後段のメモリブロックのサーチ線の駆動は停止される、請求項4記載の半導体装置。
【請求項6】
前記判定回路は、
第1の電位にプリチャージされた判定線と、
前記複数のマッチアンプにそれぞれ対応して設けられ、各々が、対応するマッチアンプの不一致の判定結果に基づいて前記判定線を第2の電位に設定する複数の判定ユニットとを含む、請求項5記載の半導体装置。
【請求項7】
請求項1~6のいずれか1項に記載の半導体装置のシミュレーションに用いるシミュレーション装置をさらに備える、半導体システム。
【請求項8】
前記シミュレーション装置は、
前記半導体装置のモデルを生成するモデル生成部と、
前記モデル生成部により生成されたモデルにおいて、前記メモリアレイの分割数を設定可能に設けられた設定部と、
分割されたメモリブロックのサーチ線およびマッチ線の出力端子の信号状態をそれぞれ計測する計測部と、
前記メモリアレイの分割数に応じた消費電力を算出する算出部とを備える、請求項7記載の半導体システム。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、メモリセルを有する半導体装置に関する。
【背景技術】
【0002】
検索メモリまたはCAM(内容参照メモリ:Content Addressable Memory)と呼ばれる記憶装置は、記憶しているデータワードの中から検索ワードに一致しているものを検索し、一致しているデータワードが見つかった場合は、そのアドレスを出力するものである。
【0003】
CAMにはBCAM(Binary CAM)とTCAM(Ternary CAM)とがある。BCAMの各メモリセルは“0”か“1”かのいずれかの情報を記憶する。一方、TCAMの場合には、各メモリセルは、“0”および“1”の他に“ドントケア(Don't Care)”(本例においては、“*”の記号を用いる)の情報を記憶可能である。“*”は“0”および“1”のどちらでも良いことを示す。
【0004】
TCAM装置は、インターネットなどのネットワーク用のルータにおいてアドレス検索およびアクセス制御のために幅広く利用されている。大容量化に対応するために、TCAM装置は、通常、複数のアレイを有し、各アレイに対して同時にサーチ動作が実行される構成となっている。
【0005】
TCAM装置は、検索データ(入力パケット)とTCAMセルデータとを一斉に比較することができるので、全ての検索用途においてRAM(Random Access Memory)を用いるよりも高速である。
【0006】
具体的には、TCAM装置は、メモリセルに格納した情報とユーザーが検索したいデータとを比較して、双方のデータが一致、不一致を示すためのマッチ線(ML)を有している。そして、一致したマッチ線に対応するアドレス情報(Hit Index)を出力する。
【0007】
一方で、サーチ動作は不一致のマッチ線を低電位に設定するため消費電力が大きいという課題がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2011-181147号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
この点で、特許文献1に記載の方式では、アレイを分割して、前段のアレイのサーチ結果に基づいて後段のアレイのサーチ動作を高速にする点で課題がある。
【0010】
本開示は、上記の課題を解決するためになされたものであって、消費電力を低減するとともに高速なサーチ動作が可能な半導体装置および半導体システムを提供する。
【0011】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
ある局面に従う半導体装置は、エントリを記憶するための行列状に配置された複数の連想メモリセルを含むメモリアレイを備える。メモリアレイは、列方向に沿って順次検索動作を実行する複数のメモリブロックに分割され、各メモリブロックに対応して、メモリセル行にそれぞれ対応して設けられる複数のマッチ線と、各メモリブロックに対応して、メモリセル列にそれぞれ対応して設けられる複数のサーチ線と、各メモリブロックに対応して、複数のマッチ線にそれぞれ設けられた複数のマッチアンプとをさらに備える。前段のメモリブロックに対応して設けられるマッチ線は、後段のメモリブロックに対応して設けられるマッチ線よりも短く設定される。前段のメモリブロックに対応して設けられたマッチ線の長さに基づいて後段のメモリブロックのサーチ線を駆動するタイミングを制御するタイミング制御部をさらに備える。
【発明の効果】
【0013】
一実施例によれば、本開示の半導体装置は、消費電力を低減するとともに高速なサーチ動作が可能である。
【図面の簡単な説明】
【0014】
図1】実施形態1に基づく半導体装置の全体構成を説明する図である。
図2】実施態様1に基づくアレイ構成およびブロック制御回路について説明する図である。
図3】実施形態1に基づくTCAMセルの構成の一例を示す回路図である。
図4】実施形態1に基づくXセルおよびYセルの記憶内容とTCAMセルのデータとの対応関係を表形式で示す図である。
図5】実施態様1に基づく1エントリに対応する回路構成の一例を示す図である。
図6】実施形態1に基づくIO回路IOの回路例を示す図である。
図7】実施形態1に基づくVIO回路VIOの回路例を示す図である。
図8】実施形態1に基づく第1制御論理回路310およびマッチ線負荷レプリカ回路350について説明する図である。
図9】実施形態1に基づく第2制御論理回路330およびマッチアンプ負荷レプリカ回路320について説明する図である。
図10】実施形態に基づく半導体装置の動作タイミングについて説明するタイミングチャート図である。
図11】実施形態に基づく半導体装置の検索動作時の1クロックの各種制御信号の遷移について説明するタイミングチャート図である。
図12】実施形態2に従うシミュレーション装置1000のハードウェア構成の一例を模式的に例示する図である。
図13】実施形態2に従う制御部1001の機能ブロックについて説明する図である。
図14】モデル生成部1100により生成された半導体装置のモデルの一例について説明する図である。
図15】実施形態2に従うシミュレーション装置1000のシミュレーション例について説明する概念図である。
【発明を実施するための形態】
【0015】
実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【0016】
(実施形態1)
実施形態においては、エントリを記憶するための行列状に配置された複数の連想メモリセルを含むメモリアレイに対して、列方向に沿って順次検索動作を実行する複数のメモリブロックに分割される場合について説明する。
【0017】
図1は、実施形態1に基づく半導体装置の全体構成を説明する図である。
図1に示されるように、半導体装置の一例として連想記憶装置について説明する。
【0018】
連想記憶装置は、複数のメモリブロック202,203と、検索データ入力回路990と、プライオリティエンコーダ201と、統合回路212とを備える。
【0019】
検索データ入力回路990は、80ビットからなる検索データdb<79:0>を第1データ<14:0>と第2データ<79:15>とに分割して、第1データをIOドライバ帯204に与え、第2データを所定時間(1サイクル)遅延させた上で、IOドライバ帯209に与える。
【0020】
本例においては、検索データ入力回路990は、遅延回路211を含む。
メモリアレイ(80ビット×256エントリ)は、メモリブロック202(前半15ビット×256エントリ)と、メモリブロック203(後半65ビット×256エントリ)に分割されている。
【0021】
メモリブロック202は、アレイAと、アレイAに対して列方向に隣接するマッチアンプ帯206と、アレイAに対して行方向に隣接するIOドライバ帯204と、マッチアンプ帯206およびIOドライバ帯204とに隣接するブロック制御回路205とを含む。
【0022】
アレイAは、連想メモリセル(TCAMセル)が行列状に配列される。
アレイAは、行を単位として複数のエントリ(entry)に分割され、各エントリに対しては、対応のエントリ内のセルが並列に結合されるマッチラインMLAが設けられる。また、アレイAの列方向に、検索データを伝達するサーチライン対SLA(SL,/SL)が設けられる。このサーチライン対SLAとマッチラインMLAの交差部に対応してTCAMセルが設けられる。
【0023】
マッチアンプ帯206は、エントリそれぞれに対応して設けられるマッチアンプを含む。マッチアンプは、対応のエントリのマッチラインMLAに結合され、アレイAにおける検索データと各エントリの記憶データとの一致/不一致の判定を行なう。
【0024】
IOドライバ帯204は、サーチラインSLごとにサーチ線ドライバを含む。IOドライバ帯は、外部から15ビットの検索データdb<14:0>を受ける。サーチ線ドライバは、外部からの検索データdb<i>に従って、対応のサーチラインSLに電圧Vccまたは固定電圧Vssを与える。
【0025】
ブロック制御回路205は、メモリブロック202内の構成要素を制御する。
メモリブロック203は、アレイBと、アレイBに対して列方向に隣接するマッチアンプ帯208と、アレイBに対して行方向に隣接するIOドライバ帯209と、マッチアンプ帯208およびIOドライバ帯209とに隣接するブロック制御回路207とを含む。
【0026】
アレイBは、連想メモリセル(CAMセル)が行列状に配列される。
アレイBは、行を単位として複数のエントリ(entry)に分割され、各エントリに対しては、対応のエントリ内のセルが並列に結合されるマッチラインMLBが設けられる。また、アレイBの列方向に、検索データを伝達するサーチライン対SLB(SL,/SL)が設けられる。このサーチライン対SLBとマッチラインMLBの交差部に対応してTCAMセルが設けられる。
【0027】
マッチアンプ帯208は、エントリそれぞれに対応して設けられるマッチアンプを含む。マッチアンプは、対応のエントリのマッチラインMLBに結合され、アレイBにおける検索データと各エントリの記憶データとの一致/不一致の判定を行なう。
【0028】
IOドライバ帯209は、サーチラインSLごとにサーチ線ドライバを含む。IOドライバ帯は、外部から遅延回路210を介して65ビットの検索データdb<79:15>を受ける。サーチ線ドライバは、外部からの検索データdb<i>に従って、対応のサーチラインSLにVDD電圧またはグランド電圧を与える。
【0029】
ブロック制御回路207は、メモリブロック203内の構成要素を制御する。
統合回路212は、アレイAおよびアレイBの全体での検索結果を表わす検索判定信号mao_nを出力する。具体的には、統合回路212は、メモリブロック202の対応のエントリの一致/不一致の結果と、メモリブロック203の対応のエントリの一致/不一致の結果とを統合して、検索判定信号mao_n[0]~mao_n[255]としてプライオリティエンコーダ201に出力する。
【0030】
プライオリティエンコーダ201は、すべてのエントリから検索判定信号mao_n[0]~mao_n[255]を受ける。プライオリティエンコーダ201は、「H」レベルの検索判定信号を出力したエントリのうちの優先度の高いエントリのアドレスを出力する。
【0031】
[アレイ構成]
図2は、実施態様1に基づくアレイ構成およびブロック制御回路について説明する図である。
【0032】
一例として、アレイAおよびブロック制御回路205の構成について説明する。アレイBおよびブロック制御回路207の構成についても基本的に同様である。
【0033】
図2を参照して、アレイAは、エントリ毎に分割されており、各エントリは、複数のTCAMセルMCを有する。一例として、アレイAの1つのエントリは、15ビットで構成されている。
【0034】
列方向に沿って設けられたメモリセル行に含まれる複数のTCAMセルに対応してマッチ線MLAが設けられる。
【0035】
メモリセル行にそれぞれ対応してワード線WLAおよびWLBが設けられる。
一例として、ここでは、ワード線WLA[0]と、ワード線WLB[0]とが示されている。また、マッチ線MLA[0]が設けられている場合が示されている。エントリ毎にワード線WLA,WLBのOR論理演算結果を出力するOR回路ORCと、バリッドセルVCと、マッチ線出力回路MO0とを含む。
【0036】
バリッドセルVCは、対応するエントリが有効か無効かを示すバリッドビットを格納する。
【0037】
また、アレイAは、図2のワード線WLA,WLBを駆動するためのワード線ドライバ300を含む。
【0038】
ブロック制御回路205は、第1制御論理回路310と、マッチアンプ負荷レプリカ回路320と、第2制御論理回路330と、検索動作時にメモリブロック202に記憶された一部のエントリ(15bit)が全て不一致であることを判定するための判定回路370と、マッチ線負荷レプリカ回路350とを含む。
【0039】
判定回路370は、プリチャージ回路340と、ラッチ回路360と、インバータ361と、判定線GMLと、複数の判定ユニットTDを含む。判定ユニットTDは、マッチアンプを含むマッチ線出力回路MOにそれぞれに対応して設けられる。一例として、マッチ線MLA[0]に対応して設けられるマッチアンプを含むマッチ線出力回路MO0に対応して判定ユニットTD0が設けられている。
【0040】
判定ユニットTD0は、NチャネルMOSトランジスタTL0,TM0とを含む。
NチャネルMOSトランジスタTL0と、TM0とは、直列に判定線GMLと、接地電位(電圧Vssレベル)との間に接続される。NチャネルMOSトランジスタTL0のゲートは、マッチ信号出力線MLO[0]と接続される。NチャネルMOSトランジスタTL0は、制御信号MAEの入力を受ける。
【0041】
判定ユニットTD0の動作について説明する。
判定線GMLは、プリチャージ回路340によりプリチャージされている。具体的には、電源電位(電圧Vccレベル)にプリチャージされている。制御信号MAE(「H」レベル)の入力に従ってNチャネルMOSトランジスタTL0がオンする。そして、マッチ信号出力線MLO[0]の電位に従ってNチャネルMOSトランジスタTM0がオンする。
【0042】
具体的には、マッチ信号出力線MLO[0]が「H」レベルであればNチャネルMOSトランジスタTM0はオンする。これにより、判定線GMLは、接地電位(電圧Vss)に引き抜かれる。一方、マッチ信号出力線MLO[0]が「L」レベルであればNチャネルMOSトランジスタTM0はオフを維持する。
【0043】
ラッチ回路360は、制御信号AMSAEの入力に応答して判定線GMLの電位に基づく制御信号AMSBTをラッチして、インバータ361を介して判定信号MAOとして出力する。
【0044】
例えば、少なくとも一つのマッチ信号出力線MLOが「H」レベルの場合、すなわち、一部のエントリが一致である場合には、判定線GMLは接地電位(電圧Vssレベル)となり、制御信号AMSBTは「L」レベルに設定される。この場合、判定信号MAOは、「H」レベルである。当該判定信号MAOに従って後段の検索動作が制御される。判定信号MAO(「H」レベル)に従って後段のメモリブロック203の検索動作が実行される。
【0045】
一方、全てのマッチ信号出力線MLOが「L」レベルの場合、すなわち、一部のエントリが全て不一致である場合には、判定線GMLは電源電位(電圧Vccレベル)を維持する。制御信号AMSBTは「H」レベルに設定される。この場合、判定信号MAOは「L」レベルである。判定信号MAO(「L」レベル)に従って後段のメモリブロック203の検索動作が停止される。
【0046】
第1制御論理回路310は、各種の制御信号の入力に基づいてブロック内部の回路を動作させる各種の制御信号を出力する。具体的には、第1制御論理回路310は、クロック信号CLKと、制御信号CMPと、制御信号CENと、制御信号MAIとの入力を受ける。第1制御論理回路310は、制御信号RPLSをマッチ線負荷レプリカ回路350に出力する。
【0047】
制御信号WENは読出命令と書込命令を識別する制御信号であり、クロック信号CLKは読書動作の基準のクロック信号であり、制御信号CENはクロック信号CLKの有効・無効を制御する制御信号である。制御信号CMPは検索動作を制御する制御信号であり、制御信号RTEはバリッドセルのリセットを制御する制御信号である。
【0048】
検索動作時には、第1制御論理回路310は、制御信号CMPを受け取り、サーチ線ドライバに制御信号を出力することによって、サーチ線ドライバの動作を制御する。第1制御論理回路310は、書込動作時には、ワード線ドライバ300に制御信号を出力することによって、ワード線ドライバ300の動作を制御する。また、ブロック制御回路205は、読出動作時には、ワード線ドライバ300と、センスアンプとに制御信号を出力することによって、ワード線ドライバ300とセンスアンプとの動作を制御する。
【0049】
メモリセル行に対応して設けられるマッチ線MLAに対応して、マッチ線出力回路MOが設けられる。
【0050】
マッチ線出力回路MOは、対応するマッチ線MLAにそれぞれ接続され、マッチ線出力回路MOの出力は対応するマッチ信号出力線MLOに接続される。マッチ線出力回路MOは、対応するバリッドセルVCからバリッドビットVBを受ける。マッチ線出力回路MOの動作は、バリッドビットVBの値により制御される。
【0051】
マッチ線出力回路MOは、検索動作時に、対応するマッチ線MLの電位に基づいて、対応するセルデータと入力サーチデータとが一致か不一致かの検出信号を生成して、対応するマッチ信号出力線MLOへ出力する。バリッドビットVBが有効を示す場合、マッチ信号出力線MLOの信号レベルは、対応するセルデータと入力サーチデータとが一致か不一致かの検出信号のレベル(一致:「H」レベル、または、不一致:「L」レベル)にされる。一方、バリッドビットVBが無効を示す場合、マッチ信号出力線MLOの信号レベルは、対応するセルデータと入力サーチデータの対応部分とが一致するか否かの検出信号に無関係に、例えば、不一致を示す信号レベル(「L」レベル)とされる。
【0052】
マッチ線負荷レプリカ回路350は、制御信号RPLSの入力を受けてマッチ線MLの長さに基づく第1のタイミング制御信号BACKDOWNSを出力する。マッチ線負荷レプリカ回路350は、検索動作時において複数のサーチ線を駆動した場合にマッチ線MLの負荷に起因してマッチ線MLの電位が同定するためのタイミングを計測するための回路である。
【0053】
第1制御論理回路310は、第1のタイミング制御信号BACKDOWNSの入力に従って制御信号MAEと、制御信号PCEとを出力する。
【0054】
マッチアンプ負荷レプリカ回路320は、制御信号RPLAMの入力を受けてマッチアンプの個数に基づく第2のタイミング制御信号BACKDOWNAMを出力する。マッチアンプ負荷レプリカ回路320は、検索動作時において複数のマッチアンプを駆動した場合に複数のマッチアンプの負荷に起因して判定線GMLの電位が同定するためのタイミングを計測するための回路である。
【0055】
第2制御論理回路330は、第1制御論理回路310から出力された制御信号PCEに基づいて制御信号RPLAMを出力するとともに、第2のタイミング制御信号BACKDOWNAMの入力に従って制御信号AMSPCEおよびAMSAEを出力する。
【0056】
第2制御論理回路330は、制御信号RPLAMをマッチアンプ負荷レプリカ回路320に出力し、マッチアンプ負荷レプリカ回路320でタイミング調整された第2のタイミング制御信号BACKDOWNAMの入力を受けて、制御信号AMSPCEと、制御信号AMSAEとを出力する。
【0057】
[TCAMセルの構成]
図3は、実施形態1に基づくTCAMセルの構成の一例を示す回路図である。
【0058】
図3を参照して、TCAMセル(メモリセルMCとも称する)は、2個のSRAMセル(Static Random Access Memory Cell)11,12と、データ比較部13とを含む。SRAMセル11をXセルとも称し、SRAMセル12をYセルとも称する。Xセル11は、内部の記憶ノード対ND1,ND1_nに互いに相補となる(一方が“1”のとき他方が“0”となる)1ビット(bit)のデータを記憶する。Yセル12は、内部の記憶ノード対ND2,ND2_nに互いに相補となる1ビットのデータを記憶する。
【0059】
TCAMセルは、ビット線対BT,BB、サーチ線対ST,SB、マッチ線ML、およびワード線WLA,WLBと接続される。ビット線対BT,BBは、図3のTCAMセルアレイの行方向(Y方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。サーチ線対ST,SBは、TCAMセルアレイの列方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。
【0060】
マッチ線MLは、TCAMセルアレイの列方向(X方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、TCAMセルアレイの列方向(X方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、第1ワード線、第2ワード線という事もできる。
【0061】
Xセル11は、インバータINV1,INV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタQ1,Q2とを含む。インバータINV1は、記憶ノードND1_nから記憶ノードND1へ向かう方向が順方向となるように、記憶ノードND1と記憶ノードND1_nの間に接続される。インバータINV2は、INV1と並列かつ逆方向に接続される。MOSトランジスタQ1は、記憶ノードND1とビット線BTとの間に接続される。MOSトランジスタQ2は、記憶ノードND1_nとビット線BBとの間に接続される。MOSトランジスタQ1,Q2のゲートは、ワード線WLAと接続される。
【0062】
Yセル12は、インバータINV3,INV4と、MOS(Metal Oxide Semiconductor)トランジスタQ3,Q4とを含む。インバータINV3は、記憶ノードND2_nから記憶ノードND2に向かう方向が順方向となるように、記憶ノードND2と記憶ノードND2_nの間に接続される。インバータINV4は、INV3と並列かつ逆方向に接続される。MOSトランジスタQ3は、記憶ノードND2とビット線BTとの間に接続される。MOSトランジスタQ4は、記憶ノードND2_nとビット線BBとの間に接続される。MOSトランジスタQ3,Q4のゲートは、ワード線WLBと接続される。
【0063】
データ比較部13は、NチャネルMOSトランジスタQ6~Q9を含む。MOSトランジスタQ6,Q7はマッチ線MLとの接続点であるノードND3と接地ノードGNDとの間に直列に接続される。MOSトランジスタQ8,Q9は、ノードND3と接地ノードGNDとの間に直列に、かつ、直列接続されたMOSトランジスタQ6,Q7の全体と並列に接続される。MOSトランジスタQ6,Q8のゲートは、記憶ノードND1,ND2とそれぞれ接続される。MOSトランジスタQ7,Q9のゲートは、サーチ線ST,SBとそれぞれ接続される。
【0064】
インバータINV1,INV2、INV3およびINV4の各々は、PチャネルMOSトランジスタとNチャネルMOSトランジスタとを有する。PチャネルMOSトランジスタのソースドレイン経路とNチャネルMOSトランジスタのソースドレイン経路とは、第1電源電位Vccと第2電源電位Vssとの間に、直列に接続されている。PチャネルMOSトランジスタのゲートとNチャネルMOSトランジスタのゲートは共通に接続されて、インバータの入力端子とされる。PチャネルMOSトランジスタのドレインとNチャネルMOSトランジスタのドレインとは共通に接続されて、インバータの入力端子とされる。
【0065】
なお、BCAMのメモリセルは、例えば、図3において、ワード線WLB,Yセルを削除し、MOSトランジスタQ8のゲート電極を、Xセルの記憶ノードND1_nへ接続することで構成できる。
【0066】
図4は、実施形態1に基づくXセルおよびYセルの記憶内容とTCAMセルのデータとの対応関係を表形式で示す図である。
【0067】
図3および図4を参照して、TCAMセルは、2ビットのSRAMセルを用いて、“0”、“1”、“x”(ドントケア:don't care)の3値を格納することができる。具体的に、Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“0”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“1”が格納されているとき、TCAMセルには“1”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“x”(ドントケア)が格納されているとする。Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“1”が格納されている場合は使用しない。
【0068】
上記のTCAMセルの構成によれば、サーチデータが“1”(すなわち、サーチ線STが“1”、かつ、サーチ線SBが“0”)であり、TCAMデータが“0”(記憶ノードND1が“1”、かつ、記憶ノードND2が“0”)である場合には、MOSトランジスタQ6,Q7がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。サーチデータが“0”(すなわち、サーチ線STが“0”、かつ、サーチ線SBが“1”)であり、TCAMデータが“1”(記憶ノードND1が“0”、かつ、記憶ノードND2が“1”)である場合には、MOSトランジスタQ8,Q9がオン状態となるために、プリチャージ(電圧Vccレベル)されたマッチ線MLの電位が接地電位まで引き抜かれる。すなわち、サーチデータとTCAMデータとが不一致の場合には、マッチ線MLの電位は接地電位(電圧VSSレベル)まで引き抜かれる。
【0069】
逆に、入力されたサーチデータが“1”であり、かつ、TCAMデータが“1”または“x”の場合、もしくは、サーチデータが“0”であり、かつ、TCAMデータが“0”または“X”の場合(すなわち、両者が一致する場合)、プリチャージされたマッチ線MLの電位(電圧Vccレベル)は維持される。
【0070】
上記のように、1つのエントリ(行)に対応するマッチ線MLに接続された全てのTCAMセルのデータが入力サーチデータと一致しない限り、マッチ線MLに蓄えられた電荷が引き抜かれる。
【0071】
図5は、実施態様1に基づく1エントリに対応する回路構成の一例を示す図である。
図5に示されるように、本例においては、メモリブロック202,203の構成について基本的に同様である。
【0072】
TCAMセルMC00-MC0nは、ワード線WLA[0]、WLB[0]およびマッチ線ML[0]に接続される。TCAMセルMC00-MC0nの各々は、対応するビット線対(BT[0],BB[0]-BT[n],BB[n])と、対応するサーチ線対(ST[0],SB[0]-ST[n],SB[n])とにそれぞれ接続される。
【0073】
バリッドセルVC0は、ワード線VWL(第3ワード線)[0]とビット線対VBT,VBBとを含む。バリッドセルVC0は、インバータIV1,IV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタTM1,TM2と、インバータIV3と、を含む。インバータIV1は、記憶ノード(第1記憶ノード)VMTから記憶ノード(第2記憶ノード)VMBへ向かう方向が順方向となるように、記憶ノードVMTと記憶ノードVMBの間に接続される。インバータIV2は、IV1と並列かつ逆方向に接続される。転送MOSトランジスタ(アクセストランジスタ)TM1のソースドレイン経路は、記憶ノードVMTとビット線VBTとの間に接続される。転送MOSトランジスタ(アクセストランジスタ)TM2のソースドレイン経路は、記憶ノードVMBとビット線VBBとの間に接続される。MOSトランジスタTM1,TM2のゲートは、ワード線VWL[0]と接続される。記憶ノードVMTは、さらに、リセット信号RTをゲートに受けるリセットMOSトランジスタMRTのドレインが接続される。リセットMOSトランジスタMRTのソースは接地電位(電圧Vssレベル)に接続される。
【0074】
なお、インバータIV1およびIV2の各々は、PチャネルMOSトランジスタとNチャネルMOSトランジスタとを有する。PチャネルMOSトランジスタのソースドレイン経路とNチャネルMOSトランジスタのソースドレイン経路とは、電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に、直列に接続されている。PチャネルMOSトランジスタのゲートとNチャネルMOSトランジスタのゲートは共通に接続されて、インバータの入力端子とされる。PチャネルMOSトランジスタのドレインとNチャネルMOSトランジスタのドレインとは共通に接続されて、インバータの入力端子とされる。
【0075】
ワード線VWL[0]は、論理和回路OR[0]の出力に接続される。論理和回路OR[0]の入力は、ワード線WLA[0]、WLB[0]に接続される。すなわち、論理和回路OR[0]は、第1ワード線WLA[0]および第2ワード線WLB[0]に接続され、第1ワード線または第2ワード線が選択状態とされることに従って、第3ワード線VWL[0]を選択状態とする選択回路と見做すことが出来る。
【0076】
バリッドセルVC0の記憶ノードVMBの値は、インバータIV3を介して、バリッドビットVB0として、マッチ線出力回路MO0へ供給される。インバータIV3は、記憶ノードVMBの出力回路と見做すことが出来る。
【0077】
マッチ線出力回路MO0は、否定論理積回路NANDと、PMOSトランジスタPM0、NMOSトランジスタNM0と、インバータIV5、IV6、IV7と、を含む。否定論理積回路NANDの第1入力は、インバータIV3の出力に接続されて、バリッドビットVB0を受ける。否定論理積回路NANDの第2入力は、インバータIV4を介してプリチャージ信号PCを受ける。否定論理積回路NANDの出力は、PMOSトランジスタPM0のゲートに接続される。NMOSトランジスタNM0のゲートは、インバータIV5を介して、バリッドビットVB0の反転信号を受ける。PMOSトランジスタPM0のソースドレイン経路とNMOSトランジスタNM0のソースドレイン経路とは、電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に接続される。マッチ線ML[0]は、PMOSトランジスタPM0及びNMOSトランジスタNM0のドレインに接続される。PMOSトランジスタPM0及びNMOSトランジスタNM0のドレインは、また、インバータIV6、IV7を介してマッチ信号出力線MLO0へ接続される。
【0078】
マッチ信号出力線MLO0には、ラッチ回路LTが設けられ、制御信号MAEに従ってラッチされる。
【0079】
次に、書込動作について説明する。
TCAMセルMC00-MC0nへエントリデータを書き込む場合、ワード線WLA[0]あるいはワード線WLB[0]を選択状態として、ビット線対BT[0],BB[0]-BT[n],BB[n]に書込みデータを供給して書き込みが行われる。この時、論理和回路OR[0]により、バリッドセルVC0のワード線VWL[0]も選択状態とされる為、バリッドセルVC0にビット線対VBT,VBBを介して、書き込みデータを供給することにより、バリッドセルVC0へのバリッドビットの書き込みが可能である。バリッドセルVC0は、記憶ノードVMTおよびVMBが「H」レベル(“H”)および「L」レベル(“L”)の場合、すなわち、バリッドビットVB0が「H」レベル(“H”)の場合、エントリが有効であることを示す。一方、バリッドセルVC0は、記憶ノードVMTおよびVMBが「L」レベル(“L”)および「H」レベル(“H”)の場合、すなわち、バリッドビットVB0が「L」レベル(“L”)の場合、エントリが無効で有効であることを示す。
【0080】
次に、検索動作について説明する。
TCAMセルMC00-MC0nに格納されたエントリデータとサーチデータとの比較動作は、サーチ線対(ST[0],SB[0]-ST[n],SB[n]にサーチデータを供給して行われる。
【0081】
バリッドビットVB0が「H」レベル(“H”)であり、プリチャージ信号PCがスタンバイ状態(「L」レベル)の場合、PMOSトランジスタPM0がオン状態、NMOSトランジスタNM0がオフ状態である。したがって、マッチ線ML[0]は「H」レベルにプリチャージされている。
【0082】
バリッドビットVB0が「H」レベル(“H”)であり、プリチャージ信号PCがアクティブ状態(「H」レベル)にされた場合、PMOSトランジスタPM0がオフ状態、NMOSトランジスタNM0がオフ状態である。そのため、マッチ線ML[0]はフローティング状態とされている。この状態において、エントリデータとサーチデータとが一致する場合、マッチ線ML[0]のプリチャージ電位が「H」レベルに維持される。その結果、マッチ信号出力線MLO0は一致を示す「H」レベルとされる。一方、エントリデータとサーチデータとが不一致の場合、マッチ線ML[0]のプリチャージ電位が「L」レベルに変化する。その結果、マッチ信号出力線MLO0は不一致を示す「L」レベルとされる。
【0083】
一方、バリッドビットVB0が「L」レベル(“L”)の場合、PMOSトランジスタPM0がオフ状態、NMOSトランジスタNM0がオン状態である。そのため、マッチ線ML[0]の電位は「L」レベルとされ、マッチ信号出力線MLO0も不一致を示す「L」レベルとされる。
【0084】
バリッドセルVC0の記憶内容をリセットする場合、リセット信号RTが「H」レベルとされる。これにより、リセットMOSトランジスタMRTがオン状態とされるので、記憶ノードVMTが「L」レベル、記憶ノードVMBが「H」レベルとされて、バリッドセルVC0には、無効を示すデータが格納される。この場合、図3で示されるように、複数のバリッドセルVC0-VCmはリセット信号RTが供給される配線に接続されており、リセット信号RTの「H」レベルの様な活性化により、複数のバリッドセルVC0-VCmに記憶されたバリッドビット(VB0-VBm)を「L」レベルの様な無効を示すデータへ一括してセットすることが可能である。
【0085】
図5では、1つのエントリに関して説明されたが、エントリ数がM+1とされると、複数のバリッドセルVC0-VCmが設けられので、ワード線VWL[0]-VWL[M]が設けられる。
【0086】
図6は、実施形態1に基づくIO回路IOの回路例を示す図である。
図6を参照して、IO回路(IO)は、TCAMセルMCのための入出力回路であり、クロック端子CLK、TCAMセルMC(MC00)へのライトデータないしサーチデータの供給されるデータ端子Dと、ビットライトマスク端子BWNと、TCAMセルMC(MC00)からの読み出しデータの供給されるデータ出力端子Qに接続される。
【0087】
IO回路(IO)は、また、ブロック制御回路205から各信号(WTE,RDE、RTE、MAO)を受けるようにされる。
【0088】
IO回路(IO)は、サーチ線対ST[0],SB[0]、および、ビット線対BT[0],BB[0]に接続される。
【0089】
サーチ線対ST[0],SB[0]は、サーチ線ドライバSDとされるNOR回路NR10及びNR11の出力端子に各々接続される。NOR回路NR10及びNR11の一方の入力は、インバータ回路INV6を介して、判定信号MAOを受ける。NOR回路NR10及びNR11の他方の入力は、フリップフロップFF6を介して、データ端子Dに供給されるサーチデータが供給可能にされる。
【0090】
サーチ線対ST[0],SB[0]へのサーチデータの供給は、以下のようにされる。この場合、判定信号MAOは、「H」レベルの様な選択レベルとされており、他の制御信号(RDE,WTE)は「L」レベルの様な非選択レベルにされているものとする。
【0091】
データ端子Dに供給される「H」レベルのサーチデータは、フリップフロップFF6へ供給され、クロック信号CLKによって取り込まれる。フリップフロップFF6の出力は、NOR回路NR10及びNR11の他方の入力へ供給される。インバータ回路INV6の出力は「L」レベルとされており、NOR回路NR10及びNR11の出力端子は、「H」レベルおよび「L」レベルのデータが供給される。データ端子Dに供給される「L」レベルのサーチデータの場合、NOR回路NR10及びNR11の出力端子には、「L」レベルおよび「H」レベルのデータが供給される。
【0092】
ビット線対BT[0],BB[0]は、ライトドライバWDとされるNチャネルMOSトランジスタNQ1およびNQ2に接続される。NチャネルMOSトランジスタNQ1およびNQ2のゲートは、NOR回路NR12及びNR13の出力に接続される。NチャネルMOSトランジスタNQ1のソースドレイン経路はBB[0]と接地電位(電圧Vssレベル)との間に接続され、NチャネルMOSトランジスタNQ2のソースドレイン経路はBT[0]と接地電位(電圧Vssレベル)との間に接続される。
【0093】
NOR回路NR12及びNR13の一方の入力は、フリップフロップFF6を介して、データ端子Dに供給される書き込みデータが供給可能にされる。NOR回路NR12及びNR13の他方の入力は、NAND回路NA10の出力に接続される。NAND回路NA10の一方の入力は制御信号WTEに接続され、NAND回路NA10の他方の入力はフリップフロップFF7を介して、制御信号BWNが供給可能にされている。
【0094】
制御信号BWNが「H」レベルの様な選択レベルとされると、制御信号WTEが「H」レベルの様な選択レベルとされていても、NチャネルMOSトランジスタNQ1およびNQ2のゲートは「L」レベルとされ、データの書き込みがマスクされる。すなわち、データの書き込みが阻止される。
【0095】
一方、制御信号BWNが「L」レベルの様な非選択レベルとされ、制御信号WTEが「H」レベルの様な選択レベルとされると、NチャネルMOSトランジスタNQ1およびNQ2のゲートはNOR回路NR12及びNR13の出力により、「L」レベルおよび「H」レベル、または、「H」レベルおよび「L」レベルの様なレベルとされて、駆動される。これにより、ビット線対BT[0],BB[0]のレベルが書き込みデータに対応するレベルとされ、選択状態のワード線によって選択されているTCAMセル(MC00)へ書き込みデータが書き込まれる。
【0096】
ビット線対BT[0]は、また、読出回路SAとされるインバータ回路INV7、ラッチ回路LT1およびインバータ回路INV8を介して、データ出力端子Qへ接続される。インバータ回路INV7およびラッチ回路LT1は、バッファ回路BF4を介して、制御信号RDEを受ける。インバータ回路INV7およびラッチ回路LT1は、制御信号RDEの「H」レベルの様な選択レベルにより動作状態とされて、ビット線対BT[0]に読み出されたTCAMセル(MC00)の読み出しデータを、データ出力端子Qへ供給する。
【0097】
ビット線対BT[0],BB[0]は、また、PチャネルMOSトランジスタから構成されるプリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2が接続される。プリチャージトランジスタPQ1、PQ3のソースドレイン経路は電源電位(電圧Vccレベル)とビット線対BT[0],BB[0]との間に接続される。イコライズトランジスタPQ2のソースドレイン経路はビット線BT[0]とビット線BB[0]との間に接続される。プリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2の各々のゲートは制御信号RDEに接続される。プリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2は、制御信号RDEの「L」レベルの様な非選択レベルにより、動作状態とされる。
【0098】
ビット線対BT[0],BB[0]は、また、PチャネルMOSトランジスタから構成されるプルアップトランジスタPQ4及びPQ5に接続される。プルアップトランジスタPQ4のソースドレイン経路は電源電位(電圧Vccレベル)とビット線BB[0]との間に接続され、そのゲートはビット線BT[0]に接続される。プルアップトランジスタPQ5のソースドレイン経路は電源電位(電圧Vccレベル)とビット線BT[0]との間に接続され、そのゲートはビット線BB[0]に接続される。
【0099】
メモリブロック203は、前段のメモリブロック202から判定信号MAOの入力(「H」レベル)を受け付けて検索動作を実行する。メモリブロック203は、前段のメモリブロック202からの判定信号MAOの入力(「L」レベル)を受け付けた場合には検索動作を停止する。
【0100】
メモリブロック202は、前段のメモリブロックが無いため検索動作時に判定信号MAO(「H」レベル)の入力を受け付けて検索動作を実行する。
【0101】
図7は、実施形態1に基づくVIO回路VIOの回路例を示す図である。
図7を参照して、VIO回路VIOは、バリッドセルVMCのための入出力回路であり、クロック端子CLK、バリッドセルVC(VC0)へのライトデータの供給されるデータ端子VBIと、ビットライトマスク端子VWNと、バリッドセルVC(VC0)からの読み出しデータの供給されるデータ出力端子VBOに接続される。
【0102】
VIO回路(VIO)は、ブロック制御回路205から各制御信号(WTE,RDE、RTE)を受ける。VIO回路(VIO)は、また、ビット線対VBT[0],VBB[0]接続され、制御信号RTを生成する。
【0103】
ビット線対VBT[0],VBB[0]は、ライトドライバVWDとされるNチャネルMOSトランジスタNQ1vおよびNQ2vに接続される。NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートは、NOR回路NR12v及びNR13vの出力に接続される。NチャネルMOSトランジスタNQ1vのソースドレイン経路はVBB[0]と接地電位(電圧Vssレベル)との間に接続され、NチャネルMOSトランジスタNQ2vのソースドレイン経路はVBT[0]と接地電位(電圧Vssレベル)との間に接続される。NOR回路NR12v及びNR13vの一方の入力は、フリップフロップFF8を介して、データ端子VBIに供給される書き込みデータ(バリッドビットデータ)が供給可能にされる。
【0104】
NOR回路NR12v及びNR13vの他方の入力は、NAND回路NA10vの出力に接続される。NAND回路NA10vの一方の入力はライトイネーブル信号WTEに接続され、NAND回路NA10vの他方の入力はフリップフロップFF9を介して、制御信号VWNが供給可能にされている。
【0105】
制御信号VWNが「H」レベルの様な選択レベルとされると、制御信号WTEが「H」レベルの様な選択レベルとされていても、NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートは「L」レベルとされ、データの書き込みがマスクされる。すなわち、データの書き込みが阻止される。
【0106】
一方、制御信号VWNが「L」レベルの様な非選択レベルとされ、制御信号WTEが「H」レベルの様な選択レベルとされると、NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートはNOR回路NR12v及びNR13vの出力により、「L」レベルおよび「H」レベル、または、「H」レベルおよび「L」レベルの様なレベルとされて、駆動される。これにより、ビット線対VBT[0],VBB[0]のレベルが書き込みデータに対応するレベルとされ、選択状態のワード線VWL[0]によって選択されているバリッドセルVC(VC0)へ書き込みデータが書き込まれる。
【0107】
ビット線対VBT[0]は、また、読出回路VSAとされるインバータ回路INV7v、ラッチ回路LT1vおよびインバータ回路INV8vを介して、データ出力端子VBOへ接続される。インバータ回路INV7vおよびラッチ回路LT1vは、バッファ回路BF4vを介して、制御信号RDEを受ける。インバータ回路INV7vおよびラッチ回路LT1vは、リードイネーブル信号RDEの「H」レベルの様な選択レベルにより動作状態とされて、ビット線対VBT[0]に読み出されたバリッドセルVC(VC0)の読み出しデータを、データ出力端子VBOへ供給する。
【0108】
ビット線対VBT[0],VBB[0]は、また、PチャネルMOSトランジスタから構成されるプリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vが接続される。プリチャージトランジスタPQ1v、PQ3vのソースドレイン経路は電源電位(電圧Vccレベル)とビット線対VBT[0],VBB[0]との間に接続される。イコライズトランジスタPQ2vのソースドレイン経路はビット線VBT[0]とビット線VBB[0]との間に接続される。プリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vの各々のゲートはリードイネーブル信号RDEに接続される。プリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vは、リードイネーブル信号RDEの「L」レベルの様な非選択レベルにより、動作状態とされる。
【0109】
ビット線対VBT[0],VBB[0]は、また、PチャネルMOSトランジスタから構成されるプルアップトランジスタPQ4v及びPQ5vに接続される。プルアップトランジスタPQ4vのソースドレイン経路は電源電位(電圧Vccレベル)とビット線VBB[0]との間に接続され、そのゲートはビット線VBT[0]に接続される。プルアップトランジスタPQ5vのソースドレイン経路は電源電位(電圧Vccレベル)とビット線VBT[0]との間に接続され、そのゲートはビット線VBB[0]に接続される。
【0110】
VIO回路(VIO)は、また、制御信号RTEを受けるバッファ回路BF5を有し、バッファ回路BF5により制御信号RTをバリッドセルVC(VC0)へ出力する。
【0111】
図8は、実施形態1に基づく第1制御論理回路310およびマッチ線負荷レプリカ回路350について説明する図である。
【0112】
図8を参照して、第1制御論理回路310は、フリップフロップ(FF)500-502と、AND回路504,506と、NAND回路505,513,514,520と、インバータ507,511,512,516,517,521と、NOR回路515と、PチャネルMOSトランジスタ508と、NチャネルMOSトランジスタ509,510とを含む。
【0113】
フリップフロップ(FF)500-503は、クロック信号CLKに基づいて制御信号を取り込む。
【0114】
具体的には、フリップフロップ(FF)500は、クロック信号CLKに基づいて制御信号CMPを取り込み、NAND回路505に出力する。
【0115】
フリップフロップ(FF)501は、クロック信号CLKに基づいて制御信号CENを取り込み、AND回路504に出力する。
【0116】
フリップフロップ回路(FF)502は、クロック信号CLKに基づいて制御信号MAIを取り込み、NAND回路520に出力する。
【0117】
AND回路504は、クロック信号CLKと、フリップフロップ回路(FF)501の出力の反転信号との入力を受けてAND論理演算結果をAND回路506に出力する。
【0118】
AND回路506は、AND回路504からの出力信号と、NAND回路513のインバータ512を介する反転信号との入力を受けてAND論理演算結果をNAND回路505に出力する。NAND回路505は、フリップフロップ回路(FF)500の出力信号と、AND回路506の出力信号との入力を受けて、NAND論理演算結果をインバータ507に出力する。インバータ507は、NAND回路505の出力信号を反転させて、制御信号RPLSWLとして出力する。
【0119】
PチャネルMOSトランジスタ508と、NチャネルMOSトランジスタ509、510は、直列に電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に接続され、そのゲートは、各々、制御信号RPLSWLの信号の入力を受ける。PチャネルMOSトランジスタ508と、NチャネルMOSトランジスタ509との間の接続ノードから制御信号RPLSが伝達される。インバータ511は、制御信号RPLSを反転させて、NAND回路513に出力する。
【0120】
NOR回路515は、制御信号BACKDOWNSの入力を受けて反転させて、NAND回路513に出力する。NAND回路513は、NOR回路515の出力と、インバータ511を介する制御信号RPLSの反転信号の入力とを受けて、NAND論理演算結果をインバータ512およびNAND回路514に出力する。
【0121】
インバータ512は、NAND回路513の出力を反転させて、AND回路506に出力する。NAND回路514は、NAND回路513の出力信号と、NAND回路505の出力信号との入力を受けて、NAND論理演算結果を出力する。インバータ516,517は、NAND回路514の信号の入力を制御信号PCEとして出力する。
【0122】
NAND回路520は、NAND回路513のインバータ512を介する反転信号と、フリップフロップ回路(FF)502の出力信号との入力を受けて、NAND論理演算結果をインバータ521を介する制御信号MAEとして出力する。
【0123】
マッチ線負荷レプリカ回路350は、制御信号RPLSの入力を受けてマッチ線MLの長さに基づく第1のタイミング制御信号BACKDOWNSを出力する。
【0124】
マッチ線負荷レプリカ回路350は、容量素子534,535と、NOR回路530と、PチャネルMOSトランジスタ531と、NチャネルMOSトランジスタ532,533とを含む。
【0125】
NOR回路530は、制御信号RPLSの入力を反転させて、出力する。
NOR回路530の入力ノードに他方電極が接地電位(電圧Vssレベル)と接続された容量素子535が接続される。
【0126】
PチャネルMOSトランジスタ531と、NチャネルMOSトランジスタ532、533は、直列に電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に接続され、そのゲートは、各々、NOR回路530の出力信号の入力を受ける。
【0127】
PチャネルMOSトランジスタ531と、NチャネルMOSトランジスタ532との間の接続ノードから制御信号BACKDOWNSが伝達される。当該接続ノードに他方電極が接地電位(電圧Vssレベル)と接続された容量素子534が接続される。
【0128】
容量素子534,535は、マッチ線MLの長さに基づく負荷容量である。マッチ線MLの長さは、メモリブロック202と、メモリブロック203とで異なる。
【0129】
メモリブロック202は、1行のエントリの一部である15ビットのTCAMメモリセルMCを含む。メモリブロック203は、1行のエントリの残りの65ビットのTCAMメモリセルMCを含む。したがって、メモリブロック202のマッチ線MLは、メモリブロック203のマッチ線MLよりも短い。
【0130】
すなわち、容量素子534,535の負荷容量は、1行のエントリの一部のビット数に依存する。ビット数が多ければ負荷容量の値は大きくなり、ビット数が少なければ負荷容量の値は小さくなる。
【0131】
なお、本例においては、マージンを確保するために2つの容量素子534,535を設ける構成について説明しているが、1つの容量素子とすることも可能である。
【0132】
マッチ線負荷レプリカ回路350を設けることにより、検索動作時において複数のサーチ線を駆動した場合にマッチ線MLの負荷に起因してマッチ線MLの電位が同定するためのタイミングを計測することが可能である。
【0133】
図9は、実施形態1に基づく第2制御論理回路330およびマッチアンプ負荷レプリカ回路320について説明する図である。
【0134】
図9を参照して、第2制御論理回路330は、NAND回路401,402,409,415と、インバータ403,404,408,411,412,413,414,416,417と、NOR回路410と、PチャネルMOSトランジスタ405と、NチャネルMOSトランジスタ406,407と、OR回路414と、遅延回路418とを含む。
【0135】
OR回路414は、制御信号PCEと、遅延回路418およびインバータ417を介する制御信号PCEの入力のOR論理演算結果をNAND回路401に出力する。
【0136】
NAND回路401は、OR回路414からの出力信号と、NAND回路402の出力信号との入力を受けてNAND論理演算結果をNAND回路402およびインバータ403に出力する。NAND回路402は、NAND回路401の出力信号と、制御信号BACKAMBFとの入力を受けて、NAND論理演算結果をNAND回路401に出力する。
【0137】
インバータ403は、NAND回路401の出力信号を反転させて制御信号AMSENとして出力する。インバータ404は、制御信号AMSENを反転させて出力する。
【0138】
PチャネルMOSトランジスタ405と、NチャネルMOSトランジスタ406、407は、直列に電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に接続され、そのゲートは、各々、インバータ404を介する制御信号AMSENの信号の入力を受ける。PチャネルMOSトランジスタ405と、NチャネルMOSトランジスタ406との間の接続ノードから制御信号RPLAMが伝達される。インバータ408は、制御信号RPLAMを反転させて、NAND回路409に出力する。
【0139】
NAND回路415は、制御信号AMSENと、制御信号BACKAMとの入力を受けてNAND論理演算結果をインバータ416を介する制御信号AMSPCEとして出力する。
【0140】
NOR回路410は、制御信号BACKDOWNAMの入力を受けて反転させて、NAND回路409に出力する。NAND回路409は、NOR回路410の出力と、インバータ408を介する制御信号RPLAMの反転信号の入力を受けて、NAND論理演算結果を制御信号BACKAMとして出力する。
【0141】
インバータ411,412は、制御信号BACKAMを制御信号BACKAMBFとして出力する。
【0142】
インバータ411,412,413は、制御信号BACKAMを制御信号AMSAEとして出力する。
【0143】
マッチアンプ負荷レプリカ回路320は、制御信号RPLAMの入力を受けてマッチアンプの個数に基づく第2のタイミング制御信号BACKDOWNAMを出力する。
【0144】
マッチアンプ負荷レプリカ回路320は、容量素子424,425と、NOR回路420と、PチャネルMOSトランジスタ421と、NチャネルMOSトランジスタ422,423とを含む。
【0145】
NOR回路420は、制御信号RPLAMの入力を反転させて、出力する。
NOR回路420の入力ノードに他方電極が接地電位(電圧Vssレベル)と接続された容量素子424が接続される。
【0146】
PチャネルMOSトランジスタ421と、NチャネルMOSトランジスタ422、423は、直列に電源電位(電圧Vccレベル)と接地電位(電圧Vssレベル)との間に接続され、そのゲートは、各々、NOR回路420の出力信号の入力を受ける。
【0147】
PチャネルMOSトランジスタ421と、NチャネルMOSトランジスタ422との間の接続ノードから制御信号BACKDOWNAMが伝達される。当該接続ノードに他方電極が接地電位(電圧Vssレベル)と接続された容量素子525が接続される。
【0148】
容量素子424,425は、マッチアンプの個数に基づく負荷容量である。マッチアンプの個数は、エントリ数に依存する。本例においては、256エントリであり、当該エントリ数に依存した負荷容量に設定される。メモリブロックに含まれるエントリ数が多ければ負荷容量の値は大きくなり、エントリ数が少なければ負荷容量の値は小さくなる。
【0149】
なお、本例においては、マージンを確保するために2つの容量素子424,425を設ける構成について説明しているが、1つの容量素子とすることも可能である。
【0150】
マッチアンプ負荷レプリカ回路320を設けることにより、検索動作時において複数のマッチアンプを駆動した場合に複数のマッチアンプの負荷に起因して判定線GMLの電位が同定するためのタイミングを計測することが可能である。
【0151】
図10は、実施形態に基づく半導体装置の動作タイミングについて説明するタイミングチャート図である。
【0152】
図10を参照して、半導体装置は、クロック信号CLKに同期して動作する場合が示されている。本例においては、クロック信号CLKの立ち上がりに同期して動作する場合が示されている。
【0153】
時刻T1において、クロック信号CLKの立ち上がりに同期して、メモリブロック202の検索動作が実行される。また、その際には、検索データ入力回路990からメモリブロック202の検索データ(「K0a」)の入力を受けて検索動作を実行する。
【0154】
時刻T1の後、時刻T1と時刻T2との間において、検索動作の結果としてメモリブロック202のマッチ線MLOAの結果(「S0a」)が出力される。
【0155】
時刻T2において、次のクロック信号CLKの立ち上がりに同期して、メモリブロック203の検索動作が実行される。その際には、検索データ入力回路990から1クロック遅延したメモリブロック203の検索データ(「K1a」)の入力を受けて検索動作を実行する。一例として検索データ(「K0a」)は15ビットであり、検索データ(「K1a」)は65ビットである。
【0156】
時刻T2の後、時刻T2と時刻T3との間において、検索動作の結果としてメモリブロック203のマッチ線MLOBの結果(「S1a」)が出力される。そして、統合回路212に、マッチ線MLOAの伝達結果MLOALと、マッチ線MLOBとが入力される。
【0157】
時刻T3において、プライオリティエンコーダ201からアドレス(「Sa」)を出力する。
【0158】
次の検索動作も同様に実行される。
具体的には、時刻T2において、クロック信号CLKの立ち上がりに同期して、メモリブロック202の検索動作が実行される。また、その際には、検索データ入力回路990からメモリブロック202の検索データ(「K0b」)の入力を受けて検索動作を実行する。
【0159】
時刻T2の後、時刻T2と時刻T3との間において、検索動作の結果としてメモリブロック202のマッチ線MLOAの結果(「S0b」)が出力される。
【0160】
時刻T3において、次のクロック信号CLKの立ち上がりに同期して、メモリブロック203の検索動作が実行される。その際には、検索データ入力回路990から1クロック遅延したメモリブロック203の検索データ(「K1b」)の入力を受けて検索動作を実行する。一例として検索データ(「K0b」)は15ビットであり、検索データ(「K1b」)は65ビットである。
【0161】
時刻T3の後、時刻T3と時刻T4との間において、検索動作の結果としてメモリブロック203のマッチ線MLOBの結果(「S1b」)が出力される。そして、統合回路212に、マッチ線MLOAの伝達結果MLOALと、マッチ線MLOBの結果とが入力される。
【0162】
時刻T4において、プライオリティエンコーダ201からアドレス(「Sb」)を出力する。
【0163】
次に、メモリブロック202の検索動作として全てのエントリが不一致(All-miss)である場合について説明する。
【0164】
時刻T3において、クロック信号CLKの立ち上がりに同期して、メモリブロック202の検索動作が実行される。また、その際には、検索データ入力回路990からメモリブロック202の検索データ(「K0c」)の入力を受けて検索動作を実行する。
【0165】
時刻T3の後、時刻T3と時刻T4との間において、検索動作の結果としてメモリブロック202のマッチ線MLOAの結果(「S0c」)が出力される。
【0166】
その際に、全てのマッチ信号出力線MLOが「L」レベルであるため、判定信号MAO(「L」レベル)に従って後段のメモリブロック203の検索動作が停止される。
【0167】
すなわち、時刻T4において、次のクロック信号CLKの立ち上がりに同期して、メモリブロック203の検索動作は停止される。
【0168】
検索データ入力回路990から1クロック遅延したメモリブロック203の検索データ(「K1c」)の入力を受けるが検索動作は実行されない。一例として検索データ(「K0b」)は15ビットであり、検索データ(「K1b」)は65ビットである。
【0169】
時刻T4の後、時刻T4と時刻T5との間において、検索動作は実行されず、前回の検索動作の結果としてメモリブロック203のマッチ線MLOBの結果(「S1b」)を維持する。そして、統合回路212に、マッチ線MLOAの伝達結果MLOALと、マッチ線MLOBの結果とが入力される。
【0170】
時刻T5において、プライオリティエンコーダ201からアドレス(「Sc」)を出力する。この場合、メモリブロック202の検索動作の結果として、全てのエントリが不一致である場合の結果(「S0c」)が統合回路212に入力されるため、プライオリティエンコーダ201から不一致を示す正しいアドレス(「Sc」)を出力することが可能である。
【0171】
次に、時刻T4において、クロック信号CLKの立ち上がりに同期して、メモリブロック202の検索動作が実行される。また、その際には、検索データ入力回路990からメモリブロック202の検索データ(「K0d」)の入力を受けて検索動作を実行する。
【0172】
時刻T4の後、時刻T4と時刻T5との間において、検索動作の結果としてメモリブロック202のマッチ線MLOAの結果(「S0d」)が出力される。
【0173】
時刻T5において、次のクロック信号CLKの立ち上がりに同期して、メモリブロック203の検索動作が実行される。その際には、検索データ入力回路990から1クロック遅延したメモリブロック203の検索データ(「K1d」)の入力を受けて検索動作を実行する。一例として検索データ(「K0d」)は15ビットであり、検索データ(「K1d」)は65ビットである。
【0174】
時刻T5の後、時刻T5と時刻T6との間において、検索動作の結果としてメモリブロック203のマッチ線MLOBの結果(「S1d」)が出力される。そして、統合回路212に、マッチ線MLOAの伝達結果MLOALと、マッチ線MLOBの結果とが入力される。
【0175】
時刻T6において、プライオリティエンコーダ201からアドレス(「Sd」)を出力する。
【0176】
図11は、実施形態に基づく半導体装置の検索動作時の1クロックの各種制御信号の遷移について説明するタイミングチャート図である。一例として、メモリブロック202の動作について説明する。
【0177】
図11を参照して、時刻T11において、クロック信号CLKの立ち上がりに同期して、メモリブロック202の検索動作が実行される。
【0178】
具体的には、クロック信号CLKの立ち上がり(「H」レベル)に同期して、フリップフロップ(FF)500、501は、制御信号CMP(「H」レベル)および制御信号CEN(「L」レベル)を取り込む。
【0179】
そして、時刻T12において、制御信号RPLSWLを「H」レベルに設定する。これに伴い、第1制御論理回路310は、制御信号RPLSをマッチ線負荷レプリカ回路350に出力する。
【0180】
また、図示しないが、IO回路IOにサーチデータが入力されてサーチ線ドライバSDが駆動されて上述したTCAMセルMCの検索動作が実行される。
【0181】
マッチ線負荷レプリカ回路350は、制御信号RPLSの入力を受けて、時刻T13において、マッチ線MLの長さに基づく第1のタイミング制御信号BACKDOWNSを出力する。
【0182】
第1制御論理回路310は、第1のタイミング制御信号BACKDOWNSの入力に応答して、制御信号PCE(「H」レベル)、MAE(「H」レベル)を立ち上げる。
【0183】
第1制御論理回路310が制御信号RPLSを出力して、第1のタイミング制御信号BACKDOWNSの入力を受けるまでの間にTCAMセルMCの検索動作が実行されて、マッチ線MLAの値は「H」レベルあるいは「L」レベルに同定されている。
【0184】
マッチ線出力回路MOは、制御信号PCE(「H」レベル)およびMAE(「H」レベル)に応答して、マッチ線MLAの電位に基づいて検出信号(「H」レベル/「L」レベル)をマッチ信号出力線MLOに出力する。
【0185】
そして、判定ユニットTDが動作する。
判定線GMLは、プリチャージ回路340によりプリチャージされている。具体的には、電源電位(電圧Vccレベル)にプリチャージされている。制御信号MAE(「H」レベル)の入力に従ってNチャネルMOSトランジスタTL0がオンする。また、マッチ信号出力線MLOの電位に従ってNチャネルMOSトランジスタTM0がオンする。
【0186】
一方で、第2制御論理回路330は、制御信号PCEの入力を受けて、時刻T14において、制御信号AMSENは「L」レベルに設定される。
【0187】
また、これに伴い、第2制御論理回路330から出力される制御信号AMSPCEは、「L」レベルに設定される。
【0188】
プリチャージ回路340は、制御信号AMSPCEに応答して動作し、制御信号AMSPCE(「H」レベル)に応答して、判定線GMLを電源電位(電圧Vccレベル)にプリチャージし、制御信号AMSPCE(「L」レベル)に応答して、判定線GMLのプリチャージを停止する。
【0189】
したがって、プリチャージ回路340は、制御信号AMSPCE(「L」レベル)に応答して判定線GMLのプリチャージを停止し、判定線GMLは、判定ユニットTDの動作に従って遷移する。
【0190】
例えば、少なくとも一つのマッチ信号出力線MLOが「H」レベルの場合、すなわち、一部のエントリが一致である場合には、判定線GMLは接地電位(電圧Vssレベル)となり、制御信号AMSBTは「L」レベルに設定される。一方、全てのマッチ信号出力線MLOが「L」レベルの場合、すなわち、一部のエントリが全て不一致である場合には、判定線GMLは電源電位(電圧Vccレベル)を維持する。制御信号AMSBTは「H」レベルに設定される。
【0191】
また、第2制御論理回路330は、時刻T15において、制御信号RPLAMをマッチアンプ負荷レプリカ回路320に出力する。
【0192】
マッチアンプ負荷レプリカ回路320は、時刻T16において、制御信号RPLAMの入力を受けて、マッチアンプの個数に基づく第2のタイミング制御信号BACKDOWNAMを出力する。
【0193】
第2制御論理回路330は、時刻T17において、第2のタイミング制御信号BACKDOWNAMの入力に応答して、制御信号BACKAM(「L」レベル)を出力する。
【0194】
第2制御論理回路330が制御信号RPLAMを出力して、第2のタイミング制御信号BACKDOWNAMの入力を受けるまでの間に判定線GMLの制御信号AMSBTの値は「H」レベルあるいは「L」レベルに同定されている。
【0195】
第2制御論理回路330は、時刻T18において、制御信号AMSAE(「H」レベル)に立ち上げる。ラッチ回路360は、制御信号AMSAE(「H」レベル)に応答して、制御信号AMSBTをラッチして、時刻T19において、判定信号MAOを出力する。
【0196】
当該処理に示されるように1クロック以内にメモリブロック202の検索動作の結果である判定信号MAOを後段のメモリブロック203に出力することが可能であり、当該処理によりメモリブロック203の検索動作を停止させて、高速なサーチ動作を実行することが可能である。また、前段のメモリブロック202のマッチ線を後段のメモリブロック203よりも短く設定することにより早期に後段のメモリブロック203の検索動作を停止させることが可能であり、消費電力を低減することも可能である。
【0197】
従来においては、前段のメモリブロックと、後段のメモリブロックとの構成が異なる場合には、タイミング制御がそれぞれ異なるため高速な検索動作を実行することができなかった。実施形態1に従う構成の如く、マッチ線負荷レプリカ回路350およびマッチアンプ負荷レプリカ回路320を設けて第1および第2のタイミング制御信号を生成することにより、各メモリブロックの構成に応じたタイミング制御が可能となる。
【0198】
なお、本例においては、メモリアレイを2つに分割して、2段構成のパイプライン構成について説明したが、2段に限られず、さらに複数段に分割して、3段以上構成のパイプライン構成にすることも当然に可能である。
【0199】
(実施形態2)
実施形態2においては、実施形態1に従う半導体装置のシミュレーションに用いるシミュレーション装置について説明する。当該半導体装置と組み合わせて半導体システムを実現する。
【0200】
図12は、実施形態2に従うシミュレーション装置1000のハードウェア構成の一例を模式的に例示する図である。図12に示されるとおり、実施形態2に従うシミュレーション装置1000は、制御部1001、記憶部1002、通信インタフェース1013、入力装置1004、出力装置1005、及びドライブ1006が電気的に接続されたコンピュータである。なお、図12では、通信インタフェースを「通信I/F」と記載している。
【0201】
制御部1001は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、情報処理に応じて各構成要素の制御を行う。記憶部1002は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部1001で実行されるシミュレーションプログラム1007等を記憶する。
【0202】
シミュレーションプログラム1007は、半導体装置の製造に関し、半導体装置の設計データおよび各種パラメータ情報等を利用して、半導体装置の設計モデルを解析する処理をシミュレーション装置1000に実行させるためのプログラムである。
【0203】
通信インタフェース1013は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。シミュレーション装置1000は、この通信インタフェース1013により、外部の通信機器(サーバ等)との間でネットワークを介したデータ通信を行うことができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【0204】
入力装置1004は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置1005は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。
【0205】
ユーザーは、入力装置1004及び出力装置1005を介して、シミュレーション装置1000を操作することができる。
【0206】
ドライブ1006は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体1091に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ1006の種類は、記憶媒体1091の種類に応じて適宜選択されてよい。上記シミュレーションプログラム1007は、この記憶媒体1091に記憶されていてもよい。また、シミュレーションプログラム1007で用いる各種の設計データあるいはパラメータ等について当該記憶媒体1091に記憶されていてもよい。
【0207】
記憶媒体1091は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。
【0208】
ここで、記憶媒体1091の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体1091の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【0209】
なお、シミュレーション装置1000の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部1001は、複数のプロセッサを含んでもよい。シミュレーション装置1000は、複数台の情報処理装置で構成されてもよい。また、シミュレーション装置1000は、シミュレーション用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
【0210】
図13は、実施形態2に従う制御部1001の機能ブロックについて説明する図である。
【0211】
図13を参照して、制御部1001は、モデル生成部1100と、設定部1200と、計測部1300と、算出部1400とを含む。
【0212】
制御部1001の各種機能ブロックは、シミュレーションプログラム1007を実行することにより実現される。
【0213】
モデル生成部1100は、設計データおよび各種パラメータ等に基づいて半導体装置のモデルを生成する。
【0214】
設定部1200は、モデル生成部1100により生成されたモデルにおいて、メモリアレイの分割数を設定する。当該設定部1200は、ユーザーの入力装置1004を介する入力受け付けにしたがって設定可能に設けられる。
【0215】
計測部1300は、設定部1200の設定により、分割されたメモリブロックのサーチ線およびマッチ線の出力端子の信号状態をそれぞれ計測する。
【0216】
算出部1400は、メモリアレイの分割数に応じた消費電力を算出する。
図14は、モデル生成部1100により生成された半導体装置のモデルの一例について説明する図である。
【0217】
図14を参照して、本例においては、生成されたモデルにおいて、マッチ線ML、マッチ信号出力線MLO、サーチ線SL等に出力端子をそれぞれ設けた場合が示されている。
【0218】
当該出力端子をそれぞれ設けることにより各種信号線の遷移状態をそれぞれ把握することが可能である。
【0219】
すなわち、80ビットのサーチ線および256ビットのマッチ線それぞれに対して出力端子を設けて各種の信号線の遷移状態を計測することが可能である。
【0220】
図15は、実施形態2に従うシミュレーション装置1000のシミュレーション例について説明する概念図である。
【0221】
図15を参照して、例えばメモリアレイとして80ビットおよび256エントリの構成についての設計について考える。
【0222】
ユーザーは、入力装置1004を介して設定部1200により、メモリアレイの分割数を設定することが可能である。
【0223】
本例においては、パターン1として、20ビット、60ビットのメモリブロック構成に設定する。パターン2として、30ビット、50ビットのメモリブロックの構成に設定する。パターン3として、15ビット、65ビットのメモリブロックの構成に設定する。
【0224】
計測部1300にノード遷移情報を入力して各種メモリブロックのパターンに応じた信号状態を計測する。
【0225】
一例として、ノード遷移情報PA、PB、PCがそれぞれ入力された場合が示されている。
【0226】
算出部1400は、各種パターンに分割されたメモリブロックにおけるノード遷移情報PA、PB、PCに基づく消費電力を計測する。
【0227】
具体的には、算出部1400は、図14で説明したように、マッチ線ML、マッチ信号出力線MLO、サーチ線SL等に設けられた出力端子の遷移に基づいて当該遷移状態結果に基づく消費電力を算出する。
【0228】
また、算出部1400は、設定された各パターンにおけるメモリブロックに設計した場合の面積および周波数も算出する。
【0229】
そして、シミュレーション装置1000は、判定結果を出力する。
本例においては、消費電力が最も低い、パターン3である15+65ビットのメモリブロックが判定結果として出力された場合が示されている。
【0230】
当該構成により、ユーザーは、入力装置1004を介して設定部1200に設定することにより、メモリアレイの分割数を任意に設定することにより消費電力、面積および周波数の算出結果を算出することが可能である。
【0231】
これにより、所望の半導体装置の設計を容易に実行することが可能となる。
なお、本例においては、消費電力を優先した判定結果を出力する場合について説明したがこれに限られず、周波数を優先させたり、あるいは面積を優先させたり、これらを組み合わせた結果を出力するようにしてもよい。
【0232】
以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0233】
201 プライオリティエンコーダ、202,203 メモリブロック、204,209 IOドライバ帯、205,207 ブロック制御回路、206,208 マッチアンプ帯、212 統合回路、300 ワード線ドライバ、310 第1制御論理回路、320 マッチアンプ負荷レプリカ回路、330 第2制御論理回路、340 プリチャージ回路、350 マッチ線負荷レプリカ回路。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15