本発明は、連想メモリ(CAM)に関し、さらに具体的には、CAM中で検索オペレーションを実施するための回路および方法に関する。本発明の諸態様により、2段階CAM検索オペレーションのための早期予測・後刻是正(EPLC)感知スキームが提供される。諸実施形態において、本EPLCスキームは、予備検索の完全に終了を待たずに、予備検索の先行結果に基づいて、予備検索と主検索とのオーバーラップ(例えば早期予測)が生じるように主検索を開始する。さらに、この主検索は、予備検索の後の結果に基づいて打ち切ることができる(例えば後刻是正)。このようにして、本発明の実装は、より高速のCAM検索オペレーションを提供する。
諸実施形態において、3値連想メモリ(TCAM)は2つのフェーズの検索オペレーションを用い、その予備検索の結果による早期予測によって、次の主検索オペレーションが作動され、該オペレーションは、最終的な予備検索の結果が早期予測と矛盾する場合にだけ後で中断される。この早期の主検索の作動は、パフォーマンスを約30%向上させ、一方、後刻是正の確率は低く電力への影響は無視可能である。ある例示的な非限定の実装において、本発明の諸態様によるEPLC感知は、32nm高誘電率(High−K)金属ゲートSOI(silicon−on−insulator)プロセス中に実装された高パフォーマンスのTCAMコンパイラを可能にし、2048×640ビットのTCAMインスタンス上で1G検索/秒のスループットを達成する一方、電力は約0.76Wしか消費しない。電源ノイズ軽減のための内蔵された深いトレンチ(DT)コンデンサは、TCAM合計面積約1.56mm2に約5%のオーバーヘッドを付加する。
本明細書では、CAMに関連して本発明の諸態様を説明する。但し、本発明はCAMとの共用に限定はされず、本明細書で説明する本発明のEPLC感知スキームは、通常第一段階が完全に終了した後にのみ第二段階が開始される、任意の適した2段階感知プロセスとともに使用されてよい。例えば、本発明の実装は、第二オペレーション(第二段階)の結果が、第一オペレーション(第一段階)に依存するような、すなわち、第二オペレーションが第一オペレーションの先行結果に基づいて開始され、その後、第二オペレーションが実行されている間に、第一オペレーションの最終結果に基づいて第二オペレーションが完了されるかまたは中断されるような、任意の2段階メモリ・オペレーションとともに用いることが可能である。かかるスキームは、例えば、DRAM、SRAM、および不揮発性メモリにも使用することができる。
図1は、3×4ビット2値CAMの簡略ブロック図を示す。該2値CAMのセルは、各々が4ビット長の3つの水平方向ワード中に配置される。これら2値CAMのセルはストレージおよび対比両方の回路を包含する。垂直にペアになった検索ライン(SL:search−line)が、並行して、検索データ・ワードのビット0または1を2値CAMセルに印加する。マッチ・ライン(ML)は水平方向に実行され、検索データ・ワードの各ビットが、2値CAMセルの行に格納されたデータ・ワードの各ビットと一致するかどうか対比する。一致していれば、マッチ・ラインは一致を示す。
図1に示された例示的な2値CAMにおいて、CAMセルは、水平の行1、2、および3中に配置され、例えば4つのセルから成る。それぞれの水平行の各CAMセルは、ML4、5、および6に連結されている。行中のセルの数は検索対象のワードの長さと対応しており、当業者は、本発明の趣旨から逸脱することなく任意の数のセルを用いることができる。さらに、説明の便宜上、3つの行とML4〜6とだけが示されている。これも同様に、当業者は任意の数の行およびMLを用いることが可能である。さらに、CAMセルが、列8、9、10、および11に配列されている。4つの列だけが示されているが、列の数は、検索対象のCAMセル・ワード中のビットの数と対応し、任意の数の列を用いることができる。
検索データ7、すなわち検索対象のデータ・ワードは、対比のためCAM行1〜3中に形成される各ワードに提供される。並行検索ライン(SL)12〜19は検索データ7に連結されており、検索データ7のデータ・ビットに対応する各セルが一致しているかどうかを検索ができるように、それぞれの列中の各CAMセルが2つの検索ラインに連結されている。しかして、検索データ7は、SL12〜19に並行して印加される。検索結果は、ML4〜6に並行して生成され、それぞれのセンス・アンプ20〜22に印加される。
図2は、3×4ビット3値CAM(TCAM)の簡略ブロック図を示す。図1の2値CAMセルと同様に、図2の3値CAMセルも、各4ビット長の3つの水平なワード中に配置されている。同様に、垂直にペアになった検索ライン(SL)が、並行して検索データ・ワードのビット0または1を3値CAMセルに印加する。但し、3値CAMセルのストレージおよび対比回路は、「無関係」ビットXも格納することができ、各個別の「無関係」ビットXが印加された検索データ・ワードの対応するビットと対比される。図2に示されるように、3つの格納されたデータ・ワードのうちの2つの中の「無関係」ビットXの存在によって、3つのマッチ・ライン(ML)の2つのアクティブ化が可能になる。
図1および図2を参照すると、2値または3値CAM検索は、全てのMLを高にプリチャージして、これらの全てを一時的に一致状態にすることから開始される。次に、検索ライン・ドライバが、SL上に検索データ・ワードを一斉送信する。次いで、各CAMセルは、その格納ビットまたは状態を、それが対応するSL上のビットと対比する。一致するビットを有するCAMセルは、MLに影響を与えないが、不一致ビットを有するCAMセルはMLを接地にプルダウンする。Xを格納する3値CAMセルは、あたかも一致したかのように作動する。この集約結果は、MLは、少なくとも一つの個別ビットの不一致を有する一切の検索データ・ワードに対してプルダウンされるということである。その他の全MLは、アクティブすなわち高に留まる。
図3は、CAM感知のためマッチ・ライン(ML)をプリチャージする概念を示す。具体的には、図3は、CAM中のセルの行、例えば、図2に示されたセル群の水平の行の一つを表す。各セル、例えばC0、Cn、Cm、CzはMLに連結される。さらに、各セル(これは2値形式または3値形式のいずれでもよい)は、例えばSRAMまたはDRAMなどのストレージ・エレメント「m」、およびMLと接地(GND:ground)との間を連結するnFET(n型電界効果トランジスタ:n−type field effect transisitor)のスタックのペアを含む。各スタックの上側nFETは、ストレージ・エレメント「m」に連結され、一方、下側のnFETは、セルの列に関連付けられたSLのペアに連結される。当業者が周知のように、各セル、例えばC0、Cn、Cm、Czは、16個のFETを含む、SRAMベースのTCAMセルとすることができる。
さらに図3を参照すると、検索オペレーションのため、SL群(例えば、SL0X,SL0Y、SLnX,SLnY、SLmX,SLmY、SLzX,SLzY)は、初期的に接地に設定され、MLは高に(例えばVDDに)プリチャージされる。次いで、検索データがSLに印加され、その結果をML上に生成させる。各セルに対し、ストレージ・エレメント「m」中のビットが当該SL上のデータと合致しない場合(例えば不一致)、不一致のnFETスタックは、MLから接地(GND)へのパスを生成し、しかしてMLを低にプルダウンする。他方、セルのストレージ・エレメント「m」中のビットが当該SL上のデータと合致した場合(例えば一致)、そのセルは、MLと接地(GND)との間にパスを生成しない。全てのセル中のビットがそれぞれのSL上のデータと合致すると、MLは高に留まり、少なくとも一つのビットがそのそれぞれのSL上のデータと合致しない場合、MLは低にプルダウンされ得る。ML上の信号は、MLがVDDにあるかまたは接地(GND)にあるかを区別するセンス・アンプ(SA:sense amplifier)に印加される。
図4は、2段階CAM感知スキームを示す。具体的には、図4は、図3に示されたのと同じセル(例えば、C0、Cn、Cm、Cz)の行を、予備検索マッチ・ライン(PML)に接続されたセルの第一サブセット50を予備検索するよう作動する追加の回路と併せ示す。この追加回路は、予備検索の全てのビットが合致した場合にだけ、セルの第二サブセット55の主検索を作動させる。通常、第一サブセット50中のセルの数は、第二サブセット55中のセルの数よりもずっと少ない。例えば、第一サブセット50に8つのセルを含めることができ、第二サブセット55に120のセルを含めることができるが、但し、第一および第二サブセットは、任意の所望の仕方で任意の数のセルを含むように定義することが可能である。
図4に表された2段階スキームは、CAM検索の過程で消費される電力を低減するために有用である。例えば、2段階スキームは、予備検索で不一致があった場合に、主検索のセルに対する主検索マッチ・ライン(MML)へのチャージを回避することによって、動的な検索電力を最大40%まで節減することができる。しかしながら、在来の2段階スキームでは、予備検索が完了した後にだけ主検索が開始されるので、CAMの検索を実施するのに要する時間が増加する。
図5は、本発明の諸態様による、主検索の早期作動の概念を示す。水平軸は、2段階CAM検索に関わる検索アクセス時間を表す。例えば図4に関連して前に説明したのと同様な予備検索が、時間t1に開始される。カーブ70は、予備検索のセルの全てが予備検索感知オペレーションを完了している確率を表す分布曲線である。カーブ70の形状は、タイミング解析に基づいており、予備検索に関与する回路エレメントのデバイスばらつき(例えばRDV)を考慮に入れている。時間t2は予備検索が完全に終了した時間を表す。例えば、時間t2は、5シグマ(5σ)CAMセルが予備検索感知オペレーションを完了する予期時間を表し得る。また、時間t2は、在来の2段階スキームにおいて主検索が開始される時点でもある。カーブ75は、例えば、タイミング回析および予期されるデバイスばらつきに基づいた、主検索のセルの全てが感知オペレーションを完了している確率を表す分布曲線である。時間t3は、主検索が完全に終了した時点である。
引き続き図5を参照すると、本発明の諸態様によって、予備検索が完全に終了する前に主検索が開始される。例えば、主検索を、t2より早い時間t2’に開始することができる。カーブ75’はカーブ75と類似であるが、時間t2の代わりに時間t2’に開始され、時間t3の代わりに時間t3’で終了する。しかして、本発明の実装は、この低確率での主検索アクティブ化を用い、例えば、先行の予備検索結果だけを使って主検索を開始し、その後、最終的な予備検索結果が早期の予測と矛盾する場合には主検索を是正するなど、これらの在来は分離されていたオペレーションの間でのオーバーラップを可能にすることによって検索アクセスを改良する。
図6は、本発明の諸態様による、早期予測・後刻是正(EPLC)CAM感知スキームのハイレベルのブロック図を示す。ブロック100は、予備検索オペレーションを表す。具体的には、ブロック105は、予備検索マッチ・ライン(PML)に接続された(例えば、図4中のサブセット50と類似の)CAMセルの第一サブセットを表す。諸実施形態において、ブロック105は、CAMワードの8ビットに対応するNORプルダウン・スタック(例えば、図3〜図4に記載されているもの)16個を含む8個のSRAMベースのTCAMセルを含む。但し、本発明の範囲内の予備検索サブセット中には任意の他の数のセルを使用することができる。諸実施形態において、PMLは高レベルに(例えばVDDに)プリチャージされ、予備検索感知回路110の出力端は、ブロック105中のCAMセル中に格納されたビットが(例えば、図3〜図4に記載されているのと類似の仕方で)SL上の対応するビットに合致している限り、高(例えば2値の高側)に留まる。予備検索開始(SPS:Start Pre−Search)ノード115は、予備検索の開始を制御する。
ブロック130は、本発明の諸態様による主検索オペレーションを表す。具体的には、ブロック135は、主検索マッチ・ライン(MML)に接続された(例えば、図4中のサブセット55と類似の)CAMセルの第二サブセットを表す。諸実施形態において、ブロック135は、CAMワードの120ビットに対応するNORプルダウン・スタック(例えば、図3〜図4に記載されているもの)240個を含む120個のSRAMベースのTCAMセルを含む。但し、本発明の範囲内の主検索サブセット中には任意の他の数のセルを使用することができる。
主検索開始(SMS:Start Main−Search)ノード140は、主検索の開始を制御する。諸実施形態において、予備検索感知回路110の出力およびSMSノード140の信号は回路145への入力である。回路145の出力は、主検索感知回路150に接続されている。諸実施形態において、回路145は、ノード140および予備検索感知回路110の出力の両方が高の場合にだけ主検索感知回路150をアクティブ化する、デバイスの組み合わせを含む。主検索感知回路150は、アクティブ化されると、主検索マッチ・ライン(MML)に荷電し主検索のためにチャージさせる。ラッチ155は、検索結果の値を保持し、該値はそのCAMワードが検索ワードに合致しているかどうかを示す。シリコン検証済み調整(SAT:Silicon aware tuning)回路160は、シリコン検証済みの自己参照感知を提供する。これについては本明細書で詳しく説明する。
引き続き図6を参照すると、本発明の実装の早期予測の態様は、例えば予備検索が完全に終了する前に、先行の予備検索結果に基づいて主検索が開始されるという事実の中に存在する。諸実施形態において、予備検索の開始後所定の時間に、PMLが閾値レベルより高い場合に、SMSノード140は高に駆動(例えば、オンに)され、この所定の時間は、予備検索が完全に終了すると見なされる時間長よりも短い。このように、予備検索がまだアクティブな間に、予備検索の先行結果が一致を示す場合、たとえ予備検索が後で不一致になる可能性がまだ存在していても、主検索が開始される。
本発明の実装の後刻是正の態様は、主検索が既に開始された後、予備検索の結果に基づいて主検索を停止できるという事実の中に存在する。諸実施形態において、主検索が開始された後、ブロック105中で、予備検索セル中の不一致ビットによってPMLが(例えば、閾値レベルよりも低く)引き下げられることがある。かかるイベントにおいて、予備検索感知回路110の出力は低下し、これが回路145をして主検索感知回路150をオフにさせる。このように、本発明の実装は、最初の8ビットの予備検索結果に対する早期予測を用いて、後続の120ビットの主検索オペレーションを時期を早めて作動させ、その上で、後に、最終的な予備検索結果が早期予測と矛盾する場合にだけ、主検索を是正(例えば中断)する。
図7は、本発明の諸態様による、単一のCAMワード(例えば、図1または図2中の一つの水平行に対応するワード)に対するEPLC回路200の、例示的なトランジスタ・レベルの実装を示す。図8は、図7の回路に対応するシミュレーション・データを示す。EPLC回路200は、図6に関連して説明したような、それぞれが自ブロックのNORプルダウン・スタックを含む、ブロック105および135を含む。また、EPLC回路200は、図6に関連して説明したような、PML、MML、SPSノード115、SMSノード140、ラッチ155、およびSAT回路160を含む。
EPLC回路200は、2値CAMまたはTCAMとともに用いることができる。さらに、CAM(またはTCAM)の各々の検索可能なワードに対し、EPLC回路200の一インスタンスが設けられる。
諸実施形態において、EPLC CAM検索に先立って、SPSノード115は初期的に高(例えば1)に保たれ、SMSノード140は初期的に低(例えば0)に保たれる。PML、MML、およびラッチ155をリセットするために、高リセット電圧が、RESET1およびRESET2に印加される。EPLC CAM検索は、ブロック105および135中の全てのNORプルダウン・スタック上の安定データとともに開始され、立ち下り信号が、RESET1、RESET2、およびSPSノード115に印加される。SPSノード115を低に駆動することによりP1がオンになって予備検索段階が開始される(P1はVDDなどの電圧源に接続されている)。P1およびP2が電流供給(source current)を開始するので、不一致によるプルダウン・スタックの数に応じた電圧がPML上に生成される。諸実施形態において、P1およびP2は、これらがPMLを選択的に電圧源(VDD)に接続するという意味でプルアップ・デバイスとして作動する、pFET(p型電界効果トランジスタ:p−type field effect transistor)である。
さらに図7中のEPLC回路200を参照すると、ブロック105中のセルに検索データとの不一致がない場合、PMLは純粋に容量性であり、GNDから、NANDゲート205閾値電圧(NVTH:NAND gate threshold voltage)を超えてVDDまで迅速に立ち上がる。この状態が、図8中のラインPML0で示されている。他方、検索データとブロック105中のセルとの間に大きな数「N」の不一致がある場合、PMLは、「N」個のアクティブなプルダウン・スタックによって確とGNDに保持される。この場合、予備検索は不一致を示し、主検索は開始されず、ラッチ155は不一致を示す値を格納する。
ある特定の場合において、ブロック105は、単一の不一致セルを包含する。これは最悪ケースの不一致と見なし得る。というのは、プルアップ・スタック(P1およびP2)に対抗するのに、単一の不一致プルダウン・スタックだけがあり、PML上に中間レベルの電圧がもたらされるからである。この状態は、図8中のラインPML1Wによって示されており、PML1W中の「1」は単一の不一致セルを表し、「W」は3シグマより大きい(>3σ)弱いプルダウンを表している。
諸実施形態において、予備検索のパフォーマンスを改良するために、EPLC回路200は、PML0状態に対する高速な予備検索評価を可能にするが、PML1W状態を誤ってPML0状態に見せる原因にもなる、大型のP1およびP2プルアップ・デバイスを使う電流競合(current−race)感知を用いる。このように、NVTHを超えるような統計的に可能性の低いPML1W状態であれば、間違った一致を早期予測することになり、主検索オペレーションの作動へと進むことになる。しかしながら、この間違った早期予測は、後に主検索実行の間に是正され、信頼性のあるEPLC検索結果を確実にする。
引き続いて図7中のEPLC回路200を参照すると、PMLが閾値レベル(例えばNVTH)を上回り、且つSMSノード140が低のとき、NANDゲート205は、MS_PREに高い出力を有し、これによりpFET P3およびP4をオフにする。主検索は、SMSノード140に高い信号を印加することによって開始される。SMSノード140における高い信号はPML上の高い信号と相まって、MS_PREを低に駆動する。これによってP3がオンになり、それによってP2がオフになる。それが回りまわって、PMLへのプリチャージを停止させ、PMLを浮動状態にする。また、MS_PREの低下は、P4をオンにし、それがMMLのプリチャージを開始させる。SMSノード140上の信号は、その後低に駆動され、それがMMLのプリチャージ実施を停止させ、主検索オペレーションの進行を可能にする。主検索は、インバータ210およびラッチ155から検索の結果(ML_OUT)が最終的に得られるまで、所定の時間長の間継続する。
諸実施形態において、MMLは、反転シュミット・トリガ215の入力端として接続され、該トリガは、当業者が理解しているように、高側閾値と低側閾値とによるヒステリシスを示す。シュミット・トリガ215の出力端は、nFETN3のゲートに接続され、N3は、感知ノード(SN:sense node)とMMLとの間に接続される。
さらなる実施形態において、図7に示されるように、EPLC回路200は、シュミット・トリガ215に動作可能に連結されたSAT回路160、およびMS_PREとMMLとの間に接続されたpFET−nFETスタックを含むMMLキーパ225を含む。SAT回路160のおよびMMLキーパ225のオペレーションについては、後記で図9および図10に関連させて説明する。
図8は、前述の図7のEPLC回路200のオペレーションに対応するシミュレーション・データを示す。図8の水平軸は検索時間を表す。領域300は、在来の2段階CAM検索回路に対する予備検索および主検索の制御信号を表す。領域305は、本発明の諸態様による、EPLC回路200に対する例示的な予備検索および主検索の制御信号(例えば、SPSノード115およびSMSノード140に印加される信号)を表す。
図8の領域300に見ることができるように、在来の回路の予備検索開始(SPS)信号は、310において高から低へと下がり、次いで、315で低から高へと上がる。310と315との間の時間は、在来の回路の予備検索の完全終了時間を表す。予備検索の完了後(例えば315の後)、この在来の回路は、320で主検索開始(SMS)信号を低から高に駆動することによって主検索を開始する。SMS信号は、その後325で再び低に駆動され、330でラッチから結果が読み取られる。
図8の領域305を参照すると、EPLC回路200の例示的な実装において、SPS信号(例えば、図7のSPSノード115における信号)が、335で高から低に駆動され、次いで340で低から高に駆動される。本発明の諸態様によれば、SMS信号(例えば、図7のSMSノード140における信号)が、340に先立つ時間である345において低から高に駆動される。しかして、主検索は、予備検索の完全に終了に先立って開始され、例えば、予備検索と主検索とのオーバーラップ350が生じる。このオーバーラップ350は、本発明の早期予測の態様を示している。SMSは355で低下し、360で結果が読み取られる。しかして、本EPLC回路200が、予備検索がまだアクティブな間に主検索を開始するように構成されているのは明らかである。
領域300および305から分かるように、本発明の実装は、在来の2段階CAM検索と比較したとき、2段階CAM検索に対しより短い検索時間を提供する。具体的に、365に示されるように、本発明の実装の予備検索時間は在来の回路の予備検索時間よりも短い。さらに、370に示されているように、本発明の実装は、在来の回路におけるよりも早く結果を読み取ることを可能にする。例えば、本発明の諸実施形態は、約1.05nsの検索時間を提供することができる。このように、本発明の実装は、在来の2段階CAM検索回路と比較して、より高速のCAM検索時間を提供する。
さらに図8を参照すると、領域380は、本発明の諸態様による、EPLC回路(例えば図7の回路200)の様々なライン上のシミュレートされた電圧を表している。領域380の電圧は、領域305の信号に対応している。ラインPML0、MS_PRE0、およびMML0は、それぞれ、予備検索で不一致がない場合のEPLC回路200のPML、MS_PRE、およびMMLの電圧を表す。ラインPML1W、MS_PRE1W、およびMML1は、それぞれ、予備検索で一つの不一致(例えば、一つの不一致ビット)がある場合のEPLC回路200のPML、MS_PRE、およびMMLの電圧を表す。破線385および390は、在来サイズのプルアップ・デバイス(例えば、図7のP1およびP2より小さい)を用いた在来のPMLの電圧を表し、PML0ラインおよびPML1Wラインは、本発明の諸態様による、拡大サイズのプルアップ・デバイスP1およびP2に対応する。
PML0状態では、PML電圧は、NANDゲート閾値(例えば図7のNVTH)の上に留まる。他方、PML1Wの状態では、PMLは、もはや(例えば、図7のEPLC回路200中のP1およびP2によって)高にプルされなくなれば放電する。PML1W状態におけるこのPMLの放電は、主検索が開始された後に生じ、NANDゲート出力を高に駆動し、これによりP4がオフになり主検索は停止する。これは本発明の後刻是正態様を示している。このことは、図8において、MS_PRE1Wが低下して間違った主検索プリチャージを開始し、後時に高に戻って是正することによって示されている。間違った一致による部分的プリチャージ(MMLF)に見られるように、この後刻是正は余分な電力を消費する。しかしながら、>3σの弱いプルダウンで発生する単一ビット不一致の確率が及ぼす、総電力への影響は取るに足りない。このように、EPLC回路200は、PML電圧がNVTHを超えていることを検知するのに基づいて予備検索の完了に先立って主検索を開始し、主検索を開始した後は、PML電圧がNVTHより下に低下するのを検知して主検索を中断すること、またはPML電圧がNVTHより上に留まっているのを検知して主検索を完了すること、のうちの一つを実施するように構成される。
諸実施形態において、主検索は、セルフ・リファレンス感知スキーム(SRSS:Self Referenced Sensing Scheme)のシリコン検証済みバージョンを使用する。図8に示されるように、MML0およびMML1状態のMML上のプリチャージ電圧は、シュミット・トリガ(例えば図7のシュミット・トリガ215)の高側閾値に迅速に飽和するが、複数不一致のMMLは高側閾値より下に留まる。MMLのプリチャージが完了したとき、MML0状態ならば、MML電圧はシュミット・トリガの低側閾値の上に留まり、一致を信号伝達する。他方、MML1状態では、MMLのプリチャージが完了したとき、MML電圧は、急速にシュミット・トリガの低側閾値より下に低下し、不一致を信号伝達する。シュミット・トリガのヒステリシスは、感知電圧に非常に近いSRSSプリチャージを用い、リークし易い高速コーナMML0(Iオフ240)が間違った不一致をもたらさないことを確実にするよう、同時に、弱い低速コーナMML1(Iオン1)が間違った一致を判断しないことを確実にするように設定する必要がある。
図9は、本発明の諸態様による、低速および高速プロセス・コーナ両方における正規化されたIオン1およびIオフ240の分布を使って感知上の課題を示す。シリコン検証済みセンス・アンプ(SA:Sense Amp)調整を使わない場合、単一のSAが、低い、Iオン1/Iオフ240の比率1.5を使って両方のプロセス・コーナを満たす必要がある。シリコン検証済みSA調整が使われる場合、高速プロセスSAは、高いリーク許容度にマージン設定することができ、一方、低速プロセスSAは、Iオン1/Iオフ240の比率を約60%増大させて、弱い信号への許容度のマージンを設定することができる。
本発明の実装において、このマージン設定は、シュミット・トリガ(例えばシュミット・トリガ215)上のシリコン検証済み調整ピン(例えばSAT回路160)と、MML上のキーパ・スタック(例えばMMLキーパ225)との組み合わせを通して実装される。高速プロセス・コーナにおいてSAT回路160をGNDに設定することによって、シュミット・トリガ215中に約60mVの追加ヒステリシスが可能になり、約50%改良されたリーク許容度が得られる。低速プロセス・コーナにおいてSAT回路160をVDDに設定することにより、ヒステリシスが除去され、弱い信号生成への応答が改善される。
図10は、本発明の諸態様による、在来のプリチャージ高のML感知へのSAT回路160の両方の設定に対する、電力およびパフォーマンス両方の改善を示す。2段階EPLCスキームとともにシリコン検証済みSRSSを用いることによって、本発明の例示的な非限定の実装は、2048×640のインスタンスに対し、わずか約0.76Wの合計電力を維持しながら、TCAM1G検索/秒のスループットを可能にする。
図11は、本発明の諸態様による、プロセス・コーナ全面に亘る、TCAMハードウェア上の1G検索/秒を超えるシリコン測定を示す。図12は、本発明の諸態様による、電源ノイズ軽減のための、内蔵された深いトレンチ(DT)デカップリング・コンデンサの配置を強調した、2048×640ビットの例示的なコンパイル型TCAMインスタンスのマイクロ写真を示す。1G検索/秒において、5%のDTデカップ面積上乗せ(area adder)は、約50%減の電源ノイズ圧縮をもたらし、高容量のTCAM設計における適切なオペレーションを確実にする。下記の表1は、本発明の諸態様による、例示的な非限定のコンパイラ範囲およびTCAM仕様を示す。
図13は、半導体の設計、製造、もしくは試験またはこれらの組み合わせに用いられる設計プロセスの流れ図である。図13は、例えば、半導体ICのロジックの設計、シミュレーション、試験、レイアウト、および製造などのために使われる典型的な設計フロー900のブロック図を示す。設計フロー900は、設計構造体またはデバイスを処理加工して、上記で説明し図7に示した設計構造体もしくはデバイスまたはその両方とロジカルに、または別途機能的に等価な表現体を生成するためのプロセス、マシン、もしくはメカニズムまたはこれらの組み合わせを含む。設計フロー900によって処理もしくは生成またはその両方が行われた設計構造体は、マシン可読の伝送またはストレージ媒体に符号化し、データ処理システム上で実行または別途処理されたとき、論理的に、構造的に、機械的に、または別途機能的に等価な、ハードウェア・コンポーネント、回路、デバイス、またはシステムの表現体を生成する、データもしくは命令またはその両方を該媒体に含めることができる。マシンには、以下に限らないが、回路、コンポーネント、デバイス、またはシステムの設計、製造、またはシミュレーションなどのIC設計プロセスで使用される任意のマシンが含まれる。例えば、マシンには、リソグラフィ・マシン、マスクを生成するためのマシンもしくは装置またはその両方(例、電子ビーム・ライタ)、設計構造体をシミュレートするためのコンピュータまたは装置、製造または試験プロセスで使われる任意の装置、または、これら設計構造体と機能的に等価な表現体を任意の媒体中にプログラミングするための任意のマシン(例えば、プログラム可能ゲート・アレイをプログラミングするためのマシン)を含めることができる。
設計フロー900は、設計される表現体の種類に応じて変わり得る。例えば、特定用途向けIC(ASIC:application specific IC)を製作するための設計フロー900は、標準コンポーネントを設計するための設計フロー900、または、設計を、例えば、Altera(R)Inc.またはXilinx(R)Inc.が提供しているプログラム可能ゲート・アレイ(PGA:programmable gate array)またはフィールド・プログラム可能ゲート・アレイ(FPGA:field programmable gate array)などのプログラム可能ゲート・アレイ中にインスタンス化するための設計フロー900とは異なり得る。
図13は、望ましくは設計プロセス910によって処理されるインプット設計構造体920を含む、複数のかかる設計構造体を示す。設計構造体920は、論理的に等価な機能のハードウェア・デバイスの表現体を産生するために設計プロセス910によって生成、処理された、論理シミュレーション設計構造体であり得る。また、設計構造体920には、上記に併せまたは上記に換えて、設計プロセス910によって処理されたとき、ハードウェア・デバイスの物理的構造体の機能的表現体を生成するデータもしくはプログラム命令またはその両方を含めることができる。機能的もしくは構造的あるいはその両方の設計特性のいずれを表現しているとしても、設計構造体920は、コア開発者/設計者によって実装されているなどの電子コンピュータ支援設計(ECAD:electronic computer−aided design)を用いて生成することができる。設計構造体920が、マシン可読のデータ伝送媒体、ゲート・アレイ、またはストレージ媒体に符号化されている場合、設計プロセス910内の一つ以上のハードウェアもしくはソフトウェア・モジュールまたはその両方によってこれにアクセス、処理し、図7に示されたような電子部品、回路、電子モジュールまたはロジック・モジュール、装置、デバイス、またはシステムをシミュレートまたは別途に機能的に表現することが可能である。しかして、設計構造体920には、人間もしくはマシンまたはその両方に可読のソース・コード、コンパイル済み構造体、および、設計またはシミュレーション・データ処理システムによって処理されたとき、ハードウェア・ロジック設計の回路または他のレベルを機能的にシミュレートまたは別途に表現するコンピュータ実行可能コード構造体、を包含するファイルまたは他のデータ構造体を含めることができる。かかるデータ構造体には、ハードウェア記述言語(HDL:hardware−description language)設計エンティティ、またはVerilog(R)およびVHDLなどより低レベルのHDL設計言語に適合するかもしくは互換性のあるまたはその両方の他のデータ構造体、もしくはCまたはC++などのより高レベルの設計言語、またはこれら両方を含めることもできる。
設計プロセス910は、望ましくは、図7に示されたコンポーネント、回路、デバイス、またはロジック構造体の機能的等価物の設計/シミュレーションを、合成、変換または別途処理して、設計構造体920などの設計構造体を包含し得るネットリスト980を生成するためのハードウェアもしくはソフトウェア・モジュールまたはその両方を用い、組み込んでいる。ネットリスト980には、例えば、集積回路設計中の各種エレメントおよび回路の接続を表し、配線、ディスクリート部品、ロジック・ゲート、制御回路、I/Oデバイス、モデルなどのリストを表現する、コンパイル済みまたは別途処理されたデータ構造体を含めることができる。ネットリスト980は、デバイスに対する設計仕様およびパラメータに応じネットリスト980が一回以上再合成される反復プロセスを用いて合成することが可能である。本明細書で説明した他の設計構造体の種類と同様に、ネットリスト980は、マシン可読データ・ストレージ媒体に記録、またはプログラム可能ゲート・アレイ中にプログラムすることができる。この媒体は、磁気または光ディスク・ドライブ、プログラム可能ゲート・アレイ、コンパクト・フラッシュまたは他のフラッシュ・メモリなどの不揮発性ストレージ媒体とすることができる。上記に加えまたは上記に換えて、該媒体を、システムまたはキャッシュ・メモリ、バッファ・スペース、もしくはインターネットまたは他のネットワーク処理に適した手段を介しデータ・パケットを伝送し中間的に格納できる、電気的または光学的に伝導性のデバイスおよび材料とすることもできる。
設計プロセス910には、ネットリスト980を含む様々なインプット・データ構造体の種類を処理するためのハードウェア・モジュールおよびソフトウェア・モジュールを含めることができる。かかるデータ構造体の種類をライブラリ・エレメント930内に在置し、これには、所与の製造技術(例えば、各種技術ノード、32nm、45nm、90nmなど)に対する、モデル、レイアウト、および記号表現を含め、よく使われるエレメント、回路、およびデバイスのセットを含めることができる。このデータ構造体の種類には、設計仕様書940、特性評価データ950、検証データ960、設計ルール970、並びに、インプット試験パターン、アウトプット試験結果および他の試験情報を包含可能な試験データ・ファイル985をさらに含めることができる。設計プロセス910には、例えば、応力解析、熱解析、機械的事象シミュレーション、キャスティング、モールディングおよび金型プレス成型などの作業に対する工程シミュレーションをさらに含めることができる。機械的設計の当業者は、本発明の範囲および趣旨から逸脱することなく、設計プロセス910で使用される機械的設計ツールおよび適用の範囲をよく理解できよう。また、設計プロセス910には、タイミング解析、検証、設計ルール確認、配置配線作業など、標準的回路設計プロセスを遂行するためのモジュールを含めることもできる。
設計プロセス910は、HDLコンパイラおよびシミュレーション・モデル構築ツールなどの論理的および物理的設計ツールを用い、且つこれらを組み込み、設計構造体920を、(適用可能な場合)任意の追加の機械的設計またはデータと併せ、前述のサポートティング・データ構造体の一部または全部と一緒に処理して、第二設計構造体990を生成する。
設計構造体990は、(例えば、IGES、DXF、パラソリッドXT、JT、DRG、または、かかる機械的設計構造体を保存またはレンダリングするための任意の他の適切なフォーマット中に格納された情報など)機械的デバイスおよび構造体のデータの交換のために使われるデータ・フォーマットで、ストレージ媒体またはプログラム可能ゲート・アレイに常駐する。設計構造体990は、設計構造体920と同様に、望ましくは、伝送媒体またはデータ記憶媒体に在置され、ECADシステムにより処理されると図7に示された本発明の実施形態の一つ以上と論理的にまたは別途機能的に等価な形態を生成する、一つ以上ファイル、データ構造体、あるいは他のコンピュータ符号化データまたは命令を含む。一実施形態において、設計構造体990には、図7に示されたデバイスを機能的にシミュレートする、コンパイル済みの実行可能なHDLシミュレーション・モデルを含めることができる。
また、設計構造体990は、集積回路のレイアウト・データの交換に使われるデータ・フォーマット、もしくは記号データ・フォーマット(例えば、GDSII(GDS2)、GL1、OASIS、マップ・ファイル、またはかかる設計データ構造体を格納するための任意の他の適切なフォーマットに格納された情報)、またはこれらの両方を用いることができる。設計構造体990には、例えば、記号データ、マップ・ファイル、試験データ・ファイル、設計コンテント・ファイル、製造データ、レイアウト・パラメータ、配線、金属のレベル、ビア、形状、製造ラインをたどるためのデータ、および、製造者または他の設計者/開発者が、上で説明され図7に示されたデバイスまたは構造体を生成するために必要とする任意の他のデータを含めることができる。次いで、設計構造体990は段階995に進むことができ、例えば、設計構造体990は、テープアウトに進み、製造にリリースされ、マスク・ハウスにリリースされ、別の設計ハウスに送られ、顧客に納品される。
前述した方法は、集積回路チップを作製するために用いられる。得られた集積回路チップは、生ウエハの形で(すなわち、複数の未パッケージ・チップを有する単一のウエハで)、ベア・ダイとして、またはパッケージされた形で流通させることができる。後者の場合、チップは、(マザーボードまたは他のより高レベルのキャリヤに取り付けられるリードを備えたプラスチック・キャリヤなどの)シングル・チップ・パッケージ、あるいは(片側または両側表面相互接続または埋め込み相互接続を有するセラミック・キャリヤなどの)マルチチップ・パッケージに搭載される。いずれの場合も、次いで、チップは、(a)マザーボードなどの中間製品または(b)最終製品いずれかの一部として、他のチップ、ディスクリート回路エレメント、もしくは他の信号処理デバイス、またはこれらの組み合わせとともに組み込まれる。最終製品は、玩具および他のローエンド・アプリケーションから、ディスプレイ、キーボードまたは他の入力デバイスおよび中央処理装置を有する高度なコンピュータ製品までに亘る、集積回路チップを含む任意の製品であり得る。
本発明の様々な実施形態の説明は、例示のために提示されたものであって、網羅的であることも、開示した実施形態に限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱することのない多くの修改および変形が明白であろう。本明細書で使われた用語は、諸実施形態の原理、実際の応用、または市販の諸技術の技術的改良を最善に説明するため、あるいは、当業者が本明細書に開示された実施形態を理解できるように選択された。