(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6325044
(24)【登録日】2018年4月20日
(45)【発行日】2018年5月16日
(54)【発明の名称】3値連想メモリのための擬似NORセル
(51)【国際特許分類】
G11C 15/04 20060101AFI20180507BHJP
【FI】
G11C15/04 631F
G11C15/04 631M
【請求項の数】11
【外国語出願】
【全頁数】18
(21)【出願番号】特願2016-186797(P2016-186797)
(22)【出願日】2016年9月26日
(62)【分割の表示】特願2015-550687(P2015-550687)の分割
【原出願日】2013年12月20日
(65)【公開番号】特開2017-37700(P2017-37700A)
(43)【公開日】2017年2月16日
【審査請求日】2016年10月24日
(31)【優先権主張番号】13/727,494
(32)【優先日】2012年12月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ラケッシュ・バッティコンダ
(72)【発明者】
【氏名】ニシス・デサイ
(72)【発明者】
【氏名】チャンホ・ジュン
【審査官】
後藤 彰
(56)【参考文献】
【文献】
米国特許出願公開第2003/0123269(US,A1)
【文献】
特開2008−171494(JP,A)
【文献】
特開2005−228461(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 15/04
(57)【特許請求の範囲】
【請求項1】
3値連想メモリ(TCAM)のための動作方法であって、前記TCAMは、複数の直接的に相互接続された等しいTCAMステージを備え、
現在のTCAMステージの、直列接続された2つのプルアップトランジスタのゲートそれぞれにおいて前のTCAMステージの一致ラインバー出力がインバートされた一致ライン出力を受信することと、
前記現在のTCAMステージの、プルダウントランジスタのゲートにおいて前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力を受信することと、
前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力が不一致を示すとき、前記直列接続された2つのプルアップトランジスタを介して、前記現在のTCAMステージにおいて一致ラインを高値に設定することと、
前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力が一致を示すとき、前記プルダウントランジスタを介して、前記現在のTCAMステージにおいて前記一致ラインを低値に設定することと、
探索値とキー値との間の不一致、または相補探索値とマスク値との間の不一致に応答して、前記一致ラインにおける前記高値をプルダウンしないことと、前記探索値と前記キー値との間の一致、または前記相補探索値と前記マスク値との間の一致に応答して、前記一致ラインにおける前記高値をプルダウンすること、あるいは前記探索値と前記キー値との間の不一致、または前記相補探索値と前記マスク値との間の不一致に応答して、一致ラインバー出力における前記高値をプルダウンすることと、前記探索値と前記キー値との間の一致、または前記相補探索値と前記マスク値との間の一致に応答して、前記一致ラインバー出力における前記高値をプルダウンしないことと、
前記現在のTCAMステージのインバートされた一致ライン出力を生成するために前記一致ラインバー出力における前記高値または低値をインバートすることと
を備える、方法。
【請求項2】
前記前のTCAMステージからの前記インバートされた一致ライン出力が前記一致を示すとき、前記現在のTCAMステージの前記キー値と前記探索値を比較することをさらに備える、請求項1に記載の方法。
【請求項3】
後続のTCAMステージに前記現在のTCAMステージの前記インバートされた一致ライン出力を適用することをさらに備える、請求項2に記載の方法。
【請求項4】
前記高値をプルダウンすることは、スタティックランダムアクセスメモリ(SRAM)セルによって実行される、請求項2に記載の方法。
【請求項5】
各TCAMステージは、少なくとも、対応する直列接続された2つのプルアップトランジスタと、対応するプルダウントランジスタと、対応する一致ラインとを含む、請求項1に記載の方法。
【請求項6】
3値連想メモリ(TCAM)であって、
複数の直接的に相互接続された等しいTCAMステージを備え、ここにおいて、前記TCAMステージの各々は、
現在のTCAMステージにおいて前のTCAMステージの一致ラインバー出力がインバートされた一致ライン出力をそれのゲートにおいて各々受信するための直列接続された2つのプルアップ手段と、
前記現在のTCAMステージにおいて前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力をそれのゲートにおいて受信するためのプルダウン手段と、
前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力が不一致を示すとき、前記直列接続された2つのプルアップ手段を介して、前記現在のTCAMステージにおいて一致ラインを高値に設定するための手段と、
前記前のTCAMステージの前記一致ラインバー出力が前記インバートされた一致ライン出力が一致を示すとき、前記プルダウン手段を介して、前記現在のTCAMステージにおいて前記一致ラインを低値に設定するための手段と、
探索値とキー値との間の不一致、または相補探索値とマスク値との間の不一致に応答して、前記一致ラインにおける前記高値をプルダウンしないためのメモリ手段と、前記探索値と前記キー値との間の一致、または前記相補探索値と前記マスク値との間の一致に応答して、前記一致ラインにおける前記高値をプルダウンするメモリ手段と、あるいは前記探索値と前記キー値との間の不一致、または前記相補探索値と前記マスク値との間の不一致に応答して、一致ラインバー出力における前記高値をプルダウンするメモリ手段と、前記探索値と前記キー値との間の一致、または前記相補探索値と前記マスク値との間の一致に応答して、前記一致ラインバー出力における前記高値をプルダウンしないメモリ手段と、
前記現在のTCAMステージのインバートされた一致ライン出力を生成するために前記一致ラインバー出力における前記高値または低値をインバートするための手段と
を備える、TCAM。
【請求項7】
各TCAMステージは、前記前のTCAMステージからの前記インバートされた一致ライン出力が前記一致を示すとき、前記探索値を前記キー値と比較するための手段をさらに備える、請求項6に記載のTCAM。
【請求項8】
各TCAMステージは、後続のTCAMステージに、前記現在のTCAMステージの前記インバートされた一致ライン出力を適用するための手段をさらに備える、請求項7に記載のTCAM。
【請求項9】
前記メモリ手段は、スタティックランダムアクセスメモリ手段を備える、請求項7に記載のTCAM。
【請求項10】
前記直列接続されたプルアップ手段は、直列接続されたプルアップトランジスタとして具現化され、
前記プルダウン手段は、プルダウントランジスタとして具現化され、
前記メモリ手段は、TCAMセルとして具現化され、
前記インバートするための手段は、インバータとして具現化される、
請求項6に記載の3値連想メモリ(TCAM)。
【請求項11】
各TCAMセルは、
前記前のTCAMステージからの前記インバートされた一致ライン出力が前記一致を示すとき、前記探索値を前記キー値と比較するように構成されたキーセルと、
前記前のTCAMステージからの前記インバートされた一致ライン出力が前記一致を示すとき、前記相補探索値を前記マスク値と比較するように構成されたマスクセルと
を備える、請求項10に記載のTCAM。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本開示は、一般に、3値連想メモリ(TCAM)に関する。より詳細には、本開示は、TCAMのための擬似NORアーキテクチャに関する。
【背景技術】
【0002】
[0002]TCAMは、一般に、インターネットプロトコル(IP)アドレス転送のためにルータおよびイーサネット(登録商標)スイッチ中で使用される。記憶要素は、一般に、動的NOR/NANDタイプセルを使用するように設計される。
【0003】
[0003]連想メモリ(CAM)は、読取り動作、書込み動作、および比較動作をサポートする。CAM中のエントリとしての同じ幅の(たとえば、ビット/ワード)の比較バスは、クロックエッジにおける入力である。比較バスのデータは、CAM中のあらゆるエントリと同時に比較される。すなわち、比較は平行して行われ、したがって、バスは、1つのクロックサイクル中にCAM中のあらゆるエントリと比較され得る。エントリ中のあらゆるビットが比較バス中の対応するビットに一致するとき、エントリは一致となる。代替的に、エントリ中のいずれかのビットが比較バス中の対応するビットに一致しないとき、エントリは不一致となる。CAM中のエントリのビットは0または1である。
【0004】
[0004]TCAMは、セルに記憶され得るマスク値を伴ったCAMと同様のものである。マスク値は、ローカルマスクと呼ばれることがある。マスク値は比較ビットと比較されず、したがって、比較結果は常に一致になる。
【0005】
[0005]
図1に、従来のTCAM100のアーキテクチャを示す。
図1に示すように、「1101」などの探索ワードは、TCAM100のレジスタ150への入力である。探索ワードは、TCAMセル110に記憶された値と比較される。TCAMは、一般に、ステージごとに16個のTCAMセルを有する。探索は、TCAMセル110にわたって同時に行われる。TCAMセル110のコンテンツは、高ビット(1)、低ビット(0)、またはマスク値(X)であり得る。探索の前に、TCAMセルの各セット120〜126の一致ライン130〜136が高に設定される。一致ライン130〜136は、優先度エンコーダ140への入力である。TCAM100は、探索ワードラインに一致するTCAMセルのセットのアドレスを出力する(MLout)。探索が並列探索であるので、探索は、1クロックサイクルで完了し得る。マスク値は0または1であり得、依然として、本開示では、マスク値がXと呼ばれることがあることに留意されたい。
【0006】
[0006]一例として、
図1に示すように、TCAMセルの第1のセット120は、「1X01」に設定され、TCAMセルの第2のセット122は、「10X1」に設定され、TCAMセルの第3のセット124は、「11XX」に設定され、TCAMセルの第4のセット126は、「1X1X」に設定される。探索ビットとTCAMセルのコンテンツを比較するときに、TCAMセルのコンテンツがマスク値Xであるとき、比較は一致をもたらすことになる。したがって、
図1に示す例によれば、TCAMセルの第1のセット120とTCAMセルの第3のセット124とは、レジスタ150中の探索ワードに一致する。したがって、TCAMセルの第1のセット120およびTCAMセルの第3のセット124の一致ライン130および134は一致を示し、優先度エンコーダ140は、TCAMセルの第1のセット120およびTCAMセルの第3のセット124のアドレスを出力する。
【0007】
[0007]従来のTCAMアーキテクチャは、動的回路であり、高い動的消費電力(high dynamic power dissipation)を有する。場合によっては、TCAMは、動的NANDアーキテクチャを有し得る。他の場合には、TCAMは、動的NORアーキテクチャを有し得る。
【0008】
[0008]
図2に、従来の動的NAND TCAM200を示す。
図2に示すように、動的NANDアーキテクチャ200は、プルアップトランジスタ210からプリチャージラインPRE#によってチャージされる一致ラインML
NANDを含む。一致ラインML
NANDは、一連の中間一致ラインML
0〜ML
n-1に接続される。中間一致ラインML
0〜ML
n-1の各々は、トランスミッションゲートを介してマスクセルMask
0〜Mask
n-1およびキーセルKey
0〜Key
n-1に結合される。トランスミッションゲートは、キーセルKey
0〜Key
n-1に結合されたキーNMOSトランジスタ202と、マスクセルMask
0〜Mask
n-1に結合されたマスクNMOSトランジスタ204とを含む。
【0009】
[0009]マスクセルMask
0〜Mask
n-1のコンテンツは、拡大されたマスクセル222に示されている。拡大されたマスクセル222に示すように、マスクセルMask
0〜Mask
n-1は、マスク値Mと、マスク値バーM#と、マスクワードラインWLMと、マスクビットラインBLMと、マスクビットラインバーBLM#とを含むSRAMセルである。キーセルKey
0〜Key
n-1のコンテンツは、拡大されたキーセル220に示されている。拡大されたキーセル220に示すように、キーセルKey
0〜Key
n-1は、XNOR論理を用いるSRAMセルである。キーセルKey
0〜Key
n-1は、探索ラインSLと、探索ラインバーSL#と、キービットラインBLKと、キービットラインバーBLK#と、キー値Kと、キーバー値K#と、キー書込みラインWLKとをさらに含む。
【0010】
[0010]動的NAND TCAMアーキテクチャでは、一致ラインは、高にプリチャージされ、一致を示すために低を評価する。すなわち、プリチャージ信号は、一致ラインを高に設定するために、あらゆるサイクル中に各マッチラインのために使用される。マスクセルまたはキーセルの状況に応じて、一致ラインは、低に引き下げられるか、または高にとどまり得る。各中間一致ラインは、マスクセルとキーセルとに関連付けられる。さらに、各キーセルは、XNOR論理をさらに含む。動的NAND TCAMは、直列動作を使用する。したがって、前の中間一致ライン(n−2)が一致を示すために低に引き下げられたとき、中間一致ライン(n−1)はディスチャージし得る(たとえば、探索ラインの値と比較し得る)。すなわち、動作は、一致があるとき、1つの中間一致ライン(n−2)から後続の中間一致ライン(n−1)に継続し、不一致があるとき、中間一致ラインを進行するのを停止する。
【0011】
[0011]動的NOR TCAMアーキテクチャでは、一致ラインは、高にプリチャージされ、不一致を示すために低を評価する。比較の大部分は不一致をもたらし、したがって、動的NORは、不一致を示すための高から低への切替えの結果として電力消費量が増加する。さらに、プリチャージ信号が各クロックサイクル中で各一致ラインによって使用されるので、動的NORは、複雑なタイミング制御を有する。
【0012】
[0012]
図3に、従来の動的NOR TCAM300を示す。
図3に示すように、動的NOR TCAM300は、キーセルKey
0〜Key
n-1とマスクセルMask
0〜Mask
n-1とを含む。一般に、
図3のNOR TCAM300などのNOR TCAMは、16個のキーセルとマスクセルとを有し得る。データは、探索ライン(SL
0〜SL
n-1およびSL
0#〜SL
n-1#)を介して入力される。データは、キーセルKey
0〜Key
n-1とマスクセルMask
0〜Mask
n-1とに記憶された値と比較される。一致ラインML
NORおよび探索ライン(SL
0〜SL
n-1およびSL
0#〜SL
n-1#)は、プルアップトランジスタ303からのプリチャージラインPRE#を介して高にプリチャージされる。探索ライン(SL
0〜SL
n-1およびSL
0#〜SL
n-1#)のうちの1つを介して入力されたデータと、セルKey
0〜Key
n-1、Mask
0〜Mask
n-1のうちの1つに記憶されたデータとの間に不一致があるとき、一致ラインML
NORは低を評価することになる。セルKey
0〜Key
n-1、Mask
0〜Mask
n-1のすべての値が入力データに一致すると、一致ラインは高にとどまる。
【0013】
[0013]キーセルKey
0〜Key
n-1の構造は、拡大されたキーセル330に示されており、マスクセルMask
0〜Mask
n-1の構造は、拡大されたマスクセル333に示されている。拡大されたキーセル330に示すように、キーセルKey
0〜Key
n-1は、SRAMセルを介して実装される。比較動作中に、キーバーK#は、探索ラインSLとの論理積がとられる。キーセルKey
0〜Key
n-1は、ビットラインBLKと、ビットラインバーBLK#と、ワードラインWLKとを含む。
【0014】
[0014]拡大されたマスクセル333に示すように、マスクセルMask
0〜Mask
n-1は、SRAMセルを介して実装される。比較動作中に、マスクバーM#は、探索ラインバーSL#との論理積がとられる。マスクセルMask
0〜Mask
n-1は、ビットラインBLMと、ビットラインバーBLM#と、ワードラインWLMとを含む。
【0015】
[0015]表1は、動的NAND TCAMのための真理値表を示す。表1に、マスクセル(M)、キーセル(K)、および探索ライン(SLおよびSL#)の値に基づいた一致ラインの値を示す。状態が、記憶要素(キーセルおよびマスクセル)の状態を指すことに留意されたい。キービットが0の値を有するとき、状態は0であり、キービットが1の値を有するとき、状態は1であり、マスクビットとキービットとの両方が1であるとき、状態はXである。Xの状態は、一致も不一致もない、むしろ、探索ラインの値とマスクセルおよびキーセルの値との間の比較がないマスク状態を指す。したがって、一致ラインは、常に一致を示す。
【表1】
【0016】
[0016]表1に示すように、キービットと探索ラインとが異なる値を有するとき、一致ラインは、0(低)になり、不一致を示すことになる。同様に、マスクビットと探索ラインバーの両方が異なる値を有するとき、一致ラインは、0になり、不一致を示すことになる。すなわち、キービットが0であり(たとえば、キービットバー(K#)が1であり)、探索ラインが1であるとき、またはマスクビットが0であり(たとえば、マスクビットバー(M#)が1であり)、探索ラインバーが1であるとき、プルダウントランジスタは、一致ラインを低に引き下げるためにアクティブ化されることになる。さらに、キービットと探索ラインとが同じ値を有するとき、一致ラインは、1(高)になり、一致を示すことになる。同様に、マスクビットと探索ラインバーの両方が同じ値を有するとき、一致ラインは、1になり、一致を示すことになる。さらに、マスクビットとキービットの両方が1であるとき、状態はXである。すなわち、一致ラインは、探索ラインの値にかかわらず、高にとどまり、一致を示すことになる。
【0017】
[0017]上記で説明したように、動的NOR TCAMでは、一致ラインと探索ラインとは、あらゆるサイクルの始めに高にプリチャージされ、一致ラインは、不一致を示すために低を評価する。TCAMでのセルの比較の大部分は不一致をもたらす。したがって、不一致を示すときの高から低への切替えの結果として、動的NOR TCAMの電力消費量は増加する。場合によっては、一致ラインは、電力消費量を低減するために、低にプリディスチャージされ得る。依然として、その結果、一致ラインがプリディスチャージされたときでも、プリチャージ動作は、あらゆるサイクルの始めに一致ラインをチャージする。したがって、一致ラインのプリチャージは、電力消費量の増加さらには制御回路の増加につながる。
【発明の概要】
【0018】
[0018]本開示の一態様によれば、3値連想メモリ(TCAM)内の方法は、現在のTCAMステージのプルアップトランジスタのゲートにおいて前のTCAMステージから一致ライン出力を受信することを含む。本方法はまた、現在のTCAMステージのプルダウントランジスタのゲートにおいて前のTCAMステージから一致ライン出力を受信することを含む。本方法は、前のTCAMステージからの一致ライン出力が不一致を示すとき、プルダウントランジスタを介して、現在のTCAMステージにおいて一致ラインバーを低値に設定することをさらに含む。本方法は、前のTCAMステージからの一致ライン出力が一致を示すとき、プルアップトランジスタを介して、現在のTCAMステージにおいて一致ラインバーを高値に設定することをまたさらに含む。
【0019】
[0019]別の態様によれば、TCAMが提示される。TCAMは、現在のTCAMステージにおいて前のTCAMステージから一致ライン出力を受信するためのプルアップ手段を含む。TCAMはまた、現在のTCAMステージにおいて前のTCAMステージから一致ライン出力を受信するためのプルダウン手段を含む。TCAMは、前のTCAMステージからの一致ライン出力が不一致を示すとき、第1の手段を介して、現在のTCAMステージにおいて一致ラインを低値に設定するための手段をさらに含む。TCAMは、前のTCAMステージからの一致ライン出力が一致を示すとき、第2の手段を介して、現在のTCAMステージにおいて一致ラインを高値に設定するための手段をまたさらに含む。
【0020】
[0020]さらにまた別の態様によれば、TCAMが提示される。TCAMは、現在のTCAMステージにおいて前のTCAMステージから一致ライン出力を受信するように構成されたプルアップトランジスタスタックを含む。プルアップトランジスタスタックは、前のTCAMステージからの一致ライン出力が不一致を示すとき、現在のTCAMステージにおいて一致ラインバーを低値に設定する。TCAMは、現在のTCAMステージにおいて前のTCAMステージから一致ライン出力を受信するように構成されたプルダウントランジスタをさらに含む。プルダウントランジスタは、前のTCAMステージからの一致ライン出力が一致を示すとき、現在のTCAMステージにおいて一致ラインバーを高値に設定する。
【0021】
[0021]ここでは、以下の発明を実施するための形態がより良く理解され得るように、本開示の特徴および技術的利点についてやや広く概説した。以下で、本開示の追加の特徴および利点について説明する。本開示は、本開示の同じ目的を実行するための他の構造を変更または設計するための基礎として容易に利用され得ることを、当業者は諒解されたい。また、そのような等価な構成は、添付の特許請求の範囲に記載の本開示の教示から逸脱しないことを、当業者は了解されたい。さらなる目的および利点とともに、本開示の編成と動作の方法の両方に関して、本開示を特徴づけると考えられる新規の特徴は、添付の図に関連して以下の説明を検討するとより良く理解されよう。ただし、図の各々は、例示および説明のみの目的で与えたものであり、本開示の限界を定めるものではないことを明確に理解されたい。
【図面の簡単な説明】
【0022】
[0022]本開示の特徴、性質、および利点は、図面とともに、以下に記載する詳細な説明を読めばより明らかになろう。
【
図2】従来技術の動的NANDアーキテクチャを示す図。
【
図3】従来技術の動的NORアーキテクチャを示す図。
【
図4】本開示の態様による、擬似NORアーキテクチャを示す図。
【
図5】本開示の態様による、擬似NORアーキテクチャを示す図。
【
図6】本開示の一態様による、
図4および
図5の擬似NORアーキテクチャを動作するための方法を示すフローチャート。
【
図7】有利には本開示の一実施形態が採用され得る例示的なワイヤレス通信システムを示す図。
【
図8】本開示の一態様による、半導体構成要素の回路、レイアウト、および論理設計のために使用される設計ワークステーションを示すブロック図。
【発明を実施するための形態】
【0023】
[0030]添付の図面に関して以下に記載する発明を実施するための形態は、様々な構成を説明するものであり、本明細書で説明する概念が実施され得る構成のみを表すものではない。発明を実施するための形態は、様々な概念の完全な理解を与えるための具体的な詳細を含む。ただし、これらの概念はこれらの具体的な詳細なしに実施され得ることが当業者には明らかであろう。いくつかの例では、そのような概念を不明瞭にしないように、よく知られている構造および構成要素をブロック図の形式で示す。
【0024】
[0031]一致ラインをプリチャージせず、タイミング制御回路についての複雑さを低減するTCAMを提供することが望ましい。本開示の態様は、一致ラインをプリチャージせず、タイミング制御回路の複雑さを低減する擬似NOR TCAMを提供する。擬似NOR
TCAMは、擬似NORと呼ばれることがある。
【0025】
[0032]本開示によれば、一致ライン(ML)は各サイクルの前にプリチャージされないので、擬似NORは、一致ラインプリチャージのために複雑なタイミング制御回路を使用しない。本態様では、擬似NORは、プリチャージ回路をなくし、タイミング制御回路の複雑さを低減するために擬似NORゲートを使用する。
【0026】
[0033]
図4に、本開示の一態様による、擬似NOR400Aおよび400Bのアーキテクチャを示す。
図4に示すように、擬似NOR400Aは、探索ラインのセットSL
0...SL
n-1と探索ラインの相補セットSL
0#...SL
n-1#とからの入力を受信するNORプルダウンネットワーク410Aを含む。
図4に、ただ2つの擬似NORステージ(400Aおよび400B)を示すが、実装形態では、(TCAMエントリを記憶する)TCAM行がm個の擬似NORステージを有し、m個の擬似NORステージの各々がn個のセルを有し得る。したがって、(TCAM行に記憶された)各TCAMエントリは、nxm個のセルによって記憶されるnxm個の値を備え得る。各セルは、以下でさらに説明するようにマスクセルとキーセルとを含む。擬似NORステージ400Aおよび400Bへの探索ラインおよび探索ラインバー入力がどちらも同様にラベルされているが、探索ラインおよび探索ラインバー入力の各々は一意である。
【0027】
[0034]さらに、擬似NOR400Aはまた、一致ライン出力Match−out
m-2と、一致ライン出力Match−out
m-2に結合されたインバータ440Aとを含み得る。さらに、NORプルダウンネットワーク410Aは、さらに、PMOSスタック414Aに結合される。PMOSスタック414Aは、2つのPMOSトランジスタを含み、一致ライン入力Match−in
m-2からの入力を受信する。擬似NORは、PMOSスタック414Aとプルダウントランジスタ435Aとを備え得る。PMOSスタック414Aが2つのPMOSトランジスタに限定されないことに留意されたい。本開示の態様は、ただ1つの弱いPMOSトランジスタをもつスタックまたは3つ以上の弱いPMOSトランジスタをもつスタックを企図する。
【0028】
[0035]一致ライン入力(Match−in)が、前のNORプルダウンネットワーク(たとえば、擬似NOR)の一致ライン出力(Match−out)であることに留意されたい。すなわち、擬似NOR(擬似NOR400B)への一致ライン入力は、前のNORステージ(擬似NOR400A)の一致ライン出力に結合される。たとえば、
図4に示すように、擬似NOR400Aの一致ライン出力Match−out
m-2は、後続の擬似NOR400Bの一致ライン入力Match−in
m-1である。
図4の擬似NOR400Aおよび400Bのアーキテクチャは同様のものである。詳細には、擬似NOR400Bはまた、NORプルダウンネットワーク410Bと、プルダウントランジスタ435Bと、PMOSスタック414Bと、インバータ440Bとを含む。本開示では、各擬似NOR(たとえば、400Aおよび400B)は、TCAMステージと呼ばれることがある。
【0029】
[0036]一構成では、TCAMステージ(たとえば、擬似NOR400Aおよび擬似NOR400B)は、m個のTCAMステージ(0...m−1)の行を形成するために直列に接続され得る。各TCAMステージは、n個(0...n−1)の探索ラインと、キーセルと、マスクセルとを備える。
図4の各擬似NOR(たとえば、400Aおよび400B)の探索ライン入力は、TCAMの複数の探索ラインの例示的な入力である。いくつかの態様では、探索ライン、キーセル、およびマスクセルの数が各TCAMステージ間で変動し得ることに留意されたい。すなわち、擬似NOR400Aなどの1つのTCAMステージの(0...n−1)の探索ライン、キーセル、およびマスクセルのn値は、擬似NOR400Bなどの別のTCAMステージの(0...n−1)の探索ライン、キーセル、およびマスクセルのn値と同じでないことがある。
【0030】
[0037]擬似NORを直列に接続することによって電力が節約される。詳細には、比較が指定されないとき(たとえば、前の比較が不一致であったことを前の一致ライン出力/一致ライン入力が示すとき)、前の一致ライン出力がプルアップトランジスタをオフにする制御信号として作用するので、前の擬似NORの一致ライン出力にプルアップトランジスタ(たとえば、PMOSスタック)のゲートを接続することは電力を節約する。より詳細には、NORプルダウンネットワークのPMOSスタックへの直列接続は、従来の動的NORのプリチャージおよび/またはプリディスチャージを置き換える擬似NORの構成要素である。
【0031】
[0038]擬似NORは、TCAMの従来のNORアーキテクチャと比較して、より速い速度と、より少ないトランジスタカウントとをもたらす。依然として、擬似NORは、プルアップトランジスタ(PMOSスタック)のために静的電力消費があり、出力電圧スイングを低減する。とはいえ、静的電力消費量の増加に鑑みて、擬似NORの全体的な速度向上が依然として望ましい。擬似NORのプルアップトランジスタが、NMOSブロックのリークを行うのに十分広く、NMOSブロックが出力を安全にプルダウンするのに十分狭くあるべきであることに留意されたい。
【0032】
[0039]
図5に、本開示の態様による、例示的な擬似NOR TCAMステージ500を示す。擬似NOR TCAMステージ500は、
図4の擬似NOR TCAMステージ400Aおよび400Bなどの擬似NOR TCAMステージの拡大ビューである。
【0033】
[0040]
図5に示すように、擬似NOR TCAMステージ500は、一致ライン出力Match−out
m-1に結合されたインバータ540と、一致ライン入力Match−in
m-1に結合されたPMOSスタック514と、一致ライン入力Match−in
m-1に結合されたプルダウントランジスタ535と、NORプルダウンネットワーク510とを含む。NORプルダウンネットワーク510は、キーセルKey
0〜Key
n-1とマスクセルMask
0〜Mask
n-1とを含む。キーセルおよびマスクセルの例示的な構造は、拡張キーセル550および拡張マスクセル555により詳細に示されている。
【0034】
[0041]動作中、データは、探索ライン(SL
0〜SL
n-1およびSL
0#〜SL
n-1#)を介して提示される。データは、キーセルKey
0〜Key
n-1とマスクセルMask
0〜Mask
n-1とに記憶された値と比較される。拡大されたキーセル550に示すように、キーセルKey
0〜Key
n-1は、SRAMセルを用いて実装され得る。比較動作中に、キーバーK#は、探索ラインSLとの論理積が論理的にとられる。キーセルKey
0〜Key
n-1は、ビットラインBLおよびBL#とキーワードラインWLKとを含む。拡大されたマスクセル555に示すように、マスクセルMask
0〜Mask
n-1は、SRAMセルを介して実装され得る。比較動作中に、マスクバーM#は、探索ラインバーSL#との論理積が論理的にとられる。マスクセルMask
0〜Mask
n-1は、ビットラインBLおよびBL#とマスクワードラインWLMとを含む。すなわち、マスクセルMask
0〜Mask
n-1とキーセルKey
0〜Key
n-1とはそれぞれ、それぞれのビットラインを共有し得るが、それらの自体のワードライン、すなわち、異なるワードラインを使用し得る。
【0035】
[0042]擬似NOR TCAMステージ500は、一致ラインバーMatch−out
m-1#に結合された入力ステージ560をさらに含む。入力ステージ560は、前の擬似NORステージの一致ライン出力Match−out
m-2から入力Match−in
m-1を受信する。前に説明したように、入力ステージ560は、プルダウントランジスタ535とPMOSスタック514とを含むことができる。場合によっては、擬似NOR機能は、入力ステージ560とNORプルダウンネットワーク510との使用を指定する。最後に、インバータ540は、一致ラインバーMatch−out
m-1#の終端に結合される。インバータ540からの出力は、一致ライン出力Match−out
m-1である。
【0036】
[0043]表2は、マスキングビットとキービットとのための真理値表である。表2中の状態が、記憶要素(キーセルおよびマスクセル)の状態を指すことに留意されたい。キービットが0の値を有し、マスクビットが1の値を有するとき、状態は0であり、キービットが1の値を有し、マスクビットが0の値を有するとき、状態は1であり、マスクビットとキービットの両方が1であるとき、状態はXである。Xの状態は、一致も不一致もない、むしろ、探索ラインの値とマスクセルおよびキーセルの値との間の比較がないマスク状態を指す。したがって、状態がXであるとき、一致ラインは常に一致を示す。
【表2】
【0037】
[0044]表3は、擬似NORのための真理値表であり、表2の状態値を使用する。
【表3】
【0038】
[0045]表3に示すように、一致ライン出力Match−out
m-1は、一致を示すために0(低)になる。状態と探索ラインSL
n-1との値が等しいとき、一致が発生する。さらに、状態がXであるとき、一致ライン出力Match−out
m-1は、やはり、一致を示すために低になる。最後に、一致ライン出力Match−out
m-1は、不一致を示すために1(高)になる。状態の値と探索ラインSL
n-1の値とが等しくないとき、不一致が発生する。
【0039】
[0046]表3の一致ライン出力Match−out
m-1は、擬似NOR TCAMステージ500のインバータ540の出力である。
図5に示すように、一致ラインバーMatch−out
m-1#は、インバータ540に先行する。一致ラインバーMatch−out
m-1#は、不一致があるとき、低を評価することになる。すなわち、直列に接続された擬似NOR(たとえば、400Aおよび400B)のさらなる比較を無効化するために、後続の擬似NORの入力ステージ560は、後続の擬似NORの一致ラインバーMatch−out
m-1#を低に引き下げるためにプルダウントランジスタ535をアクティブ化することになる高入力を受信するように指定される。したがって、インバータ540は、後続の擬似NORを無効化するために、低信号から高信号に一致ラインバーMatch−out
m-1#を変更することになる。
【0040】
[0047]表3に、高に設定された一致ライン入力Match−in
m-1を受信する結果をさらに示す。表3に示すように、一致ライン入力Match−in
m-1が高であるとき、評価がないので、状態は1/0/Xである。さらに、一致ライン出力Match−out
m-1は、やはり、後続の擬似NOR400を無効化するために、高になる。
【0041】
[0048]代替的に、一致ライン入力が低であるとき、PMOSスタック514がアクティブ化され、一致ラインバーMatch−out
m-1#が高に評価される。すべての比較結果が一致する場合、一致ラインバーMatch−out
m-1#は高にとどまることになり、一致ライン出力Match−out
m-1は低になる。比較が不一致を生じる場合、一致ラインバーMatch−out
m-1#は、低を評価することになり、一致ライン出力Match−out
m-1は、後続の擬似NORを無効化するために高になる。
【0042】
[0049]不一致があるとき、後続の比較が無効化されるので、擬似NORの無効化はTCAMの全体的な電力消費量を低減する。すなわち、前の比較の比較結果にかかわらず各NORプルダウンネットワークのための一致ラインと探索ラインとをプリチャージする動的NORとは異なり、擬似NORは、前の比較が一致を生じたときにのみ後続の比較を続ける。さらに、擬似NORは、一致ラインと探索ラインとをプリチャージしない。したがって、本開示の態様は、TCAMの全体的な電力消費量を低減し、さらに、制御回路およびタイミングの複雑さを低減する。
【0043】
[0050]
図6に、TCAM内の方法600のブロック図を示す。
図6に示すように、ブロック602において、現在のTCAMステージは、現在のTCAMステージのプルアップトランジスタのゲートにおいて前のTCAMステージから一致ライン出力を受信する。ブロック604において、現在のTCAMステージは、現在のTCAMステージのプルダウントランジスタのゲートにおいて前のTCAMステージから一致ライン出力を受信する。さらに、ブロック606において、前のTCAMステージからの一致ライン出力が不一致を示すとき、プルダウントランジスタを介して、現在のTCAMステージにおいて一致ラインバーが低値に設定される。最後に、ブロック608において、前のTCAMステージからの一致ライン出力が一致を示すとき、プルアップランジスタを介して、現在のTCAMステージにおいて一致ラインバーが高値に設定される。
【0044】
[0051]
図7に、有利には本開示の一実施形態が採用され得る例示的なワイヤレス通信システム700を示す。説明のために、
図7に、3つのリモートユニット720、730、および750と、2つの基地局740とを示す。ワイヤレス通信システムはより多くのリモートユニットおよび基地局を有し得ることを認識されよう。リモートユニット720、730、および750は、擬似NORTCAM725A、725B、および725Cを用いるマルチコアプロセッサを含む。
図7に、基地局740からリモートユニット720、730、および750への順方向リンク信号780と、リモートユニット720、730、および750から基地局740への逆方向リンク信号770とを示す。
【0045】
[0052]
図7では、リモートユニット720は携帯電話として示され、リモートユニット730はポータブルコンピュータとして示され、リモートユニット750はワイヤレスローカルループシステム中の固定ロケーションリモートユニットとして示されている。たとえば、リモートユニットは、セルフォン、ハンドヘルドパーソナル通信システム(PCS)ユニット、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、個人情報端末などのポータブルデータユニット、またはメーター読取り機器などの固定ロケーションデータユニットであり得る。
図7は、本開示の教示による、擬似NOR TCAM725A、725B、725Cを用いるマルチコアプロセッサを採用し得るリモートユニットを示すが、本開示は、これらの例示的な図示されたユニットに限定されない。たとえば、本開示の態様による擬似NOR TCAMを用いるマルチコアプロセッサは、任意のデバイスにおいて適切に採用され得る。
【0046】
[0053]
図8は、上記で開示した擬似NOR TCAMを用いるマルチコアプロセッサなど、半導体構成要素の回路、レイアウト、および論理設計のために使用される設計ワークステーションを示すブロック図である。設計ワークステーション800は、オペレーティングシステムソフトウェア、サポートファイル、およびCadenceまたはOrCADなどの設計ソフトウェアを含んでいる、ハードディスク801を含む。設計ワークステーション800はまた、回路810、または擬似NOR TCAMなどの半導体構成要素812の設計を容易にするためのディスプレイ802を含む。回路設計810または半導体構成要素812を有形に記憶するための記憶媒体804が提供される。回路設計810または半導体構成要素812は、GDSIIまたはGERBERなど、ファイル形式で記憶媒体804に記憶され得る。記憶媒体804は、CD−ROM、DVD、ハードディスク、フラッシュメモリ、または他の適切なデバイスであり得る。さらに、設計ワークステーション800は、記憶媒体804から入力を受け付けるか、または記憶媒体804に出力を書き込むためのドライブ装置803を含む。
【0047】
[0054]記憶媒体804に記録されたデータは、論理回路構成、フォトリソグラフィマスクのためのパターンデータ、または電子ビームリソグラフィなどのシリアル書込みツールのためのマスクパターンデータを指定し得る。データは、論理シミュレーションに関連するタイミング図またはネット回路など、論理検証データをさらに含み得る。記憶媒体804にデータを与えることにより、半導体ウエハを設計するためのプロセスの数が減少するので、回路設計810または半導体構成要素812の設計が容易になる。
【0048】
[0055]一構成では、TCAMは、受信手段と設定手段とを含む。受信手段は、受信手段によって具陳された機能を実行するように構成された擬似NORゲート、プルアップトランジスタ、プルダウントランジスタおよび/またはPMOSスタックであり得る。設定手段は、設定手段によって具陳された機能を実行するように構成された擬似NORゲート、プルアップトランジスタ、プルダウントランジスタおよび/またはPMOSスタックであり得る。
【0049】
[0056]別の構成では、上述の手段は、上述の手段によって具陳された機能を実行するように構成された任意のモジュールまたは任意の装置であり得る。特定の手段について説明したが、開示する構成を実施するために、開示する手段のすべてが必要とされるとは限らないことを、当業者は諒解されよう。さらに、本開示への集中を維持するために、いくつかのよく知られている手段については説明していない。
【0050】
[0057]特定の回路について説明したが、開示する実施形態を実施するために、開示する回路のすべてが必要とされるとは限らないことを、当業者は諒解されよう。さらに、本開示への集中を維持するために、いくつかのよく知られている回路については説明していない。
【0051】
[0058]本明細書で説明する方法は、適用例に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せで実装され得る。ハードウェア実装の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明した機能を実行するように設計された他の電子ユニット、またはそれらの組合せの中で実装され得る。
【0052】
[0059]ファームウェアおよび/またはソフトウェア実装の場合、本方法は、本明細書で説明した機能を実行するモジュール(たとえば、プロシージャ、関数など)を用いて実装され得る。命令を有形に実施するいかなる機械またはコンピュータ可読媒体も、本明細書で説明した方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリに記憶され、プロセッサによって実行され得る。実行ソフトウェアコードは、プロセッサによって実行されたときに、本明細書で提示した教示の異なる態様の様々な方法および機能を実装する動作環境を生成する。メモリは、プロセッサの内部またはプロセッサの外部に実装され得る。本明細書で使用する「メモリ」という用語は、長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他のメモリのいずれかのタイプを指し、メモリの特定のタイプまたはメモリの数、あるいはメモリが記憶される媒体のタイプに限定されるべきではない。
【0053】
[0060]本明細書で説明した方法および機能を定義するソフトウェアコードを記憶する機械またはコンピュータ可読媒体は、物理コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク(disk)および/またはディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0054】
[0061]コンピュータ可読媒体上での記憶に加えて、命令および/またはデータは、通信装置中に含まれる伝送媒体上の信号として与えられ得る。たとえば、通信装置は、命令とデータとを示す信号を有するトランシーバを含み得る。命令およびデータは、1つまたは複数のプロセッサに、特許請求の範囲で概説する機能を実装させるように構成される。
【0055】
[0062]本教示およびそれらの利点について詳細に説明したが、添付の特許請求の範囲によって規定される本教示の技術から逸脱することなく様々な変更、置換および改変を本明細書で行うことができることを理解されたい。さらに、本出願の範囲は、本明細書で説明するプロセス、機械、製造、組成物、手段、方法およびステップの特定の態様に限定されるものではない。当業者なら本開示から容易に諒解するように、本明細書で説明する対応する態様と実質的に同じ機能を実行するか、または実質的に同じ結果を達成する、現存するかまたは後で開発される、プロセス、機械、製造、組成物、手段、方法、またはステップは本教示に従って利用され得る。したがって、添付の特許請求の範囲は、それらの範囲内にそのようなプロセス、機械、製造、組成物、手段、方法、またはステップを含むものとする。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] 3値連想メモリ(TCAM)内の方法であって、
現在のTCAMステージのプルアップトランジスタのゲートにおいて前のTCAMステージから第1の一致ライン出力を受信することと、
前記現在のTCAMステージのプルダウントランジスタのゲートにおいて前記第1の一致ライン出力を受信することと、
前記第1の一致ライン出力が不一致を示すとき、前記プルダウントランジスタを介して、前記現在のTCAMステージにおいて一致ラインバーを低値に設定することと、
前記第1の一致ライン出力が一致を示すとき、前記プルアップトランジスタを介して、前記現在のTCAMステージにおいて前記一致ラインバーを高値に設定することとを備える方法。
[C2] 前記第1の一致ライン出力が前記一致を示すとき、前記現在のTCAMステージのセルのデータと探索値を比較することをさらに備える、C1に記載の方法。
[C3] 前記現在のTCAMステージの第2の一致ライン出力を介して後続のTCAMステージに前記比較することの結果を出力することをさらに備える、C2に記載の方法。
[C4] 前記セルは、スタティックランダムアクセスメモリ(SRAM)セルである、C2に記載の方法。
[C5] 各TCAMステージは、前記プルアップトランジスタと、前記プルダウントランジスタと、探索ラインと、マスクセルと、前記一致ラインバーと、第2の一致ライン出力と、キーセルとを少なくとも含む、C1に記載の方法。
[C6] 3値連想メモリ(TCAM)であって、
現在のTCAMステージにおいて前のTCAMステージから一致ライン出力を受信するためのプルアップ手段と、
前記現在のTCAMステージにおいて前記前のTCAMステージから前記一致ライン出力を受信するためのプルダウン手段と、
前記前のTCAMステージからの前記一致ライン出力が不一致を示すとき、前記プルアップ手段を介して、前記現在のTCAMステージにおいて一致ラインバーを低値に設定するための手段と、
前記前のTCAMステージからの前記一致ライン出力が一致を示すとき、前記プルダウン手段を介して、前記現在のTCAMステージにおいて前記一致ラインバーを高値に設定するための手段とを備える、TCAM。
[C7] 前記前のTCAMステージからの前記一致ライン出力が前記一致を示すとき、セルのデータと探索値を比較するための手段をさらに備える、C6に記載のTCAM。
[C8] 後続のTCAMステージに、前記比較することの結果を出力するための手段をさらに備える、C7に記載のTCAM。
[C9] 前記セルは、スタティックランダムアクセスメモリ手段である、C7に記載のTCAM。
[C10] 各TCAMステージは、前記プルアップ手段と、前記プルダウン手段と、探索手段と、マスクメモリ手段と、前記一致ラインバーと、一致出力手段と、キーメモリ手段とを少なくとも含む、C6に記載のTCAM。
[C11] 3値連想メモリ(TCAM)であって、
現在のTCAMステージにおいて前のTCAMステージから第1の一致ライン出力を受信するように構成されたプルアップトランジスタスタックと、ここにおいて、前記プルアップトランジスタスタックは、前記第1の一致ライン出力が不一致を示すとき、前記現在のTCAMステージにおいて一致ラインバーを低値に設定する、
前記現在のTCAMステージにおいて前記第1の一致ライン出力を受信するように構成されたプルダウントランジスタと
を備え、前記プルダウントランジスタは、前記第1の一致ライン出力が一致を示すとき、前記現在のTCAMステージにおいて前記一致ラインバーを高値に設定する、TCAM。
[C12] 前記第1の一致ライン出力が前記一致を示すとき、キーセルのデータと探索値を比較するように構成された前記キーセルと、
前記第1の一致ライン出力が前記一致を示すとき、マスクセルのデータと探索バー値を比較するように構成された前記マスクセルとをさらに備える、C11に記載のTCAM。
[C13] 後続のTCAMステージと前記現在のTCAMステージを前記比較することの結果を出力するように構成された第2の一致ライン出力をさらに備える、C12に記載のTCAM。
[C14] 前記キーセルと前記マスクセルとは、スタティックランダムアクセスメモリ(SRAM)セルである、C12に記載のTCAM。
[C15] 各TCAMステージは、前記プルアップトランジスタスタックと、前記プルダウントランジスタと、探索ラインと、マスクセルと、前記一致ラインバーと、第2の一致ライン出力と、キーセルとを少なくとも含む、C11に記載のTCAM。