(57)【要約】【課題】従来のＣＡＭ装置では、一致判定が正確にできない場合があった。【解決手段】仮想アドレスのビットパターンのうち所定のビットをマスク対象とすることで、仮想アドレス空間における第１のページを定義し、その第１のページを示す第１のエントリデータを格納するＣＡＭ装置であって、仮想アドレスのビットパターンのうち所定のビットをマスク対象とした入力データのビットパターンと、前記第１のエントリデータのビットパターンとを比較するとき、前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットが、マスク対象でない場合であっても、前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットを、一致しているものとみなすＣＡＭ装置。【選択図】図２
2011159356.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスのビットパターンのうち所定のビットをマスク対象とすることで、仮想アドレス空間における第１のページを定義し、その第１のページを示す第１のエントリデータを格納するＣＡＭ装置であって、
仮想アドレスのビットパターンのうち所定のビットをマスク対象とした入力データのビットパターンと、前記第１のエントリデータのビットパターンとを比較するとき、
前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットが、マスク対象でない場合であっても、前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットを、一致しているものとみなす
ＣＡＭ装置。
【請求項２】
前記第１のエントリデータのうち仮想アドレスのビットパターンを記憶する第１、第２のＣＡＭセルと、
前記第２のＣＡＭセルが記憶するビットパターンをマスク対象とするマスクビットを記憶するマスク保持部と、
前記第１、第２のＣＡＭセルにそれぞれ接続され、前記入力データのビットパターンが印加される第１、第２の比較線対と、
前記マスク保持部に接続され、前記入力データのマスクビットのビットパターンが印加されるマスクデータ線対と、
第１の論理回路と、を有し、
前記第１、第２のＣＡＭセルは、前記第１、第２の比較線対に印加される前記入力データのビットパターンと、自身が記憶しているビットパターンとが不一致である場合、不一致結果を出力、もしくは、自身が記憶しているビットパターンと一致する場合、一致判定結果を出力し、
前記第１の論理回路は、前記マスク保持部が記憶しているビットパターンと、前記マスクデータ線対に印加されているビットパターンの少なくともどちらか一方のビットパターンがマスクビットである場合には、前記第２のＣＡＭセルの記憶しているビットパターンと前記第１、第２の比較線対に印加される前記入力データのビットパターンとが一致、不一致に関わらず、前記第２のＣＡＭセルの出力を一致判定結果とする
請求項１に記載のＣＡＭ装置。
【請求項３】
ヒット線と、第１〜第３のトランジスタを更に有し、
前記第１のＣＡＭセルは、
第１のラッチ回路と、
前記第１のラッチ回路の保持する値に応じて、前記第１の比較線対に印加される前記入力データのビットパターンのいずれか一方を第１のノードに伝達するトランスファゲート対と、を備え、
前記第１のトランジスタは、前記ヒット線と接地端子との間に接続され、前記第１のノードのレベルに応じて導通状態が制御され、
前記第２のＣＡＭセルは、
第２のラッチ回路と、
前記第２のラッチ回路の保持する値に応じて、前記第２の比較線対に印加される前記入力データのビットパターンのいずれか一方を第２のノードに伝達するトランスファゲート対と、を備え、
前記第２のトランジスタは、第３のノードと接地端子との間に接続され、前記第２のノードのレベルに応じて導通状態が制御され、
前記マスク保持部は、第３のラッチ回路を備え、
前記第１の論理回路は、前記マスクデータ線対の一方に印加される値と、前記第３のラッチ回路の保持する値を論理演算し、
前記第３のトランジスタは、前記ヒット線と前記第３のノードとの間に接続され、前記第１の論理回路の演算結果に応じて導通状態が制御され、
前記ヒット線は、予めプリチャージされており、ディスチャージされた場合には不一致判定結果とする
請求項２に記載のＣＡＭ装置。
【請求項４】
仮想アドレスのビットパターンのうち所定のビットをマスク対象とすることで、仮想アドレス空間における複数のページを定義し、そのそれぞれの複数のページを示すエントリデータを格納する複数のＣＡＭ装置を有するトランスレーション・ルックアサイド・バッファであって、
仮想アドレスのビットパターンのうち所定のビットをマスク対象とした入力データのビットパターンを入力し、前記入力データのビットパターンと前記複数のＣＡＭ装置の格納するエントリデータビットパターンとを比較するとき、
前記複数のＣＡＭ装置の格納するエントリデータのうち、前記入力データのマスク対象のビットと対応するビットが、マスク対象でない場合であっても、前記複数のＣＡＭ装置は、格納するエントリデータのうち、前記入力データのマスク対象のビットと対応するビットを、一致しているものとみなし、
前記入力データのビットパターンと、格納するエントリデータのビットパターンとが一致したＣＡＭ装置から出力されたヒット信号に応じてマルチヒット検出結果を生成する
トランスレーション・ルックアサイド・バッファ。
【請求項５】
前記入力データは、前記複数のＣＡＭ装置のうち選択した所定のＣＡＭ装置に新たに書き込むエントリデータと同じビットパターンを有する
請求項４に記載のトランスレーション・ルックアサイド・バッファ。
【請求項６】
前記選択した所定のＣＡＭ装置に対して前記新たに書き込むエントリデータの書き込み動作と同時に、前記選択した所定のＣＡＭ装置以外の複数のＣＡＭ装置に対して前記入力データの比較動作を行う
請求項５に記載のトランスレーション・ルックアサイド・バッファ。
【請求項７】
前記複数のＣＡＭ装置のそれぞれは、
前記格納するエントリデータのうち仮想アドレスのビットパターンを記憶する第１、第２のＣＡＭセルと、
前記第２のＣＡＭセルが記憶するビットパターンをマスク対象とするマスクビットを記憶するマスク保持部と、
前記第１、第２のＣＡＭセルにそれぞれ接続され、前記入力データのビットパターンが印加される第１、第２の比較線対と、
前記マスク保持部に接続され、前記入力データのマスクビットのビットパターンが印加されるマスクデータ線対と、
第１の論理回路と、を有し、
前記第１、第２のＣＡＭセルは、前記第１、第２の比較線対に印加される前記入力データのビットパターンと、自身が記憶しているビットパターンとが不一致である場合、不一致結果を出力、もしくは、自身が記憶しているビットパターンと一致する場合、一致判定結果を出力し、
前記第１の論理回路は、前記マスク保持部が記憶しているビットパターンと、前記マスクデータ線対に印加されているビットパターンの少なくともどちらか一方のビットパターンがマスクビットである場合には、前記第２のＣＡＭセルの記憶しているビットパターンと前記第１、第２の比較線対に印加される前記入力データのビットパターンとが一致、不一致に関わらず、前記第２のＣＡＭセルの出力を一致判定結果とし、
前記複数のＣＡＭ装置から出力される一致判定に応じて前記マルチヒット検出結果を生成する
請求項６に記載のトランスレーション・ルックアサイド・バッファ。
【請求項８】
前記複数のＣＡＭ装置のそれぞれは、
ヒット線と、第１〜第３のトランジスタを更に有し、
前記第１のＣＡＭセルは、
第１のラッチ回路と、
前記第１のラッチ回路の保持する値に応じて、前記第１の比較線対に印加される前記入力データのビットパターンのいずれか一方を第１のノードに伝達するトランスファゲート対と、を備え、
前記第１のトランジスタは、前記ヒット線と接地端子との間に接続され、前記第１のノードのレベルに応じて導通状態が制御され、
前記第２のＣＡＭセルは、
第２のラッチ回路と、
前記第２のラッチ回路の保持する値に応じて、前記第２の比較線対に印加される前記入力データのビットパターンのいずれか一方を第２のノードに伝達するトランスファゲート対と、を備え、
前記第２のトランジスタは、第３のノードと接地端子との間に接続され、前記第２のノードのレベルに応じて導通状態が制御され、
前記マスク保持部は、第３のラッチ回路を備え、
前記第１の論理回路は、ＮＡＮＤ回路であり、前記マスクデータ線対の一方のデータ値と、前記第３のラッチ回路の保持する値を論理演算し、
前記第３のトランジスタは、前記ヒット線と前記第３のノードとの間に接続され、前記第１の論理回路の演算結果に応じて導通状態が制御され、
前記ヒット線は、予めプリチャージされており、ディスチャージされた場合には不一致判定結果とする
請求項７に記載のトランスレーション・ルックアサイド・バッファ。
【請求項９】
前記複数のＣＡＭ装置のそれぞれは、第２の論理回路を更に有し、
前記第２の論理回路は、前記入力データが書き込まれる場合、不一致判定結果出力する
請求項７に記載のトランスレーション・ルックアサイド・バッファ。
【請求項１０】
前記複数のＣＡＭ装置のそれぞれは、
ヒット線と、第１〜第３のトランジスタを更に有し、
前記第１のＣＡＭセルは、
第１のラッチ回路と、
前記第１のラッチ回路の保持する値に応じて、前記第１の比較線対に印加される前記入力データのビットパターンのいずれか一方を第１のノードに伝達するトランスファゲート対と、を備え、
前記第１のトランジスタは、前記ヒット線と接地端子との間に接続され、前記第１のノードのレベルに応じて導通状態が制御され、
前記第２の論理回路は、前記第１、第２のＣＡＭセルに、前記入力データが書き込まれる場合に入力される書き込み制御信号が入力されると、前記第１のノードのレベルに関わらず、前記第１のトランジスタを導通状態とし、
前記第２のＣＡＭセルは、
第２のラッチ回路と、
前記第２のラッチ回路の保持する値に応じて、前記第２の比較線対に印加される前記入力データのビットパターンのいずれか一方を第２のノードに伝達するトランスファゲート対と、を備え、
前記第２のトランジスタは、第３のノードと接地端子との間に接続され、前記第２のノードのレベルに応じて導通状態が制御され、
前記マスク保持部は、第３のラッチ回路を備え、
前記第１の論理回路は、ＮＡＮＤ回路であり、前記マスクデータ線対の一方のデータ値と、前記第３のラッチ回路の保持する値を論理演算し、
前記第３のトランジスタは、前記ヒット線と前記第３のノードとの間に接続され、前記第１の論理回路の演算結果に応じて導通状態が制御され、
前記ヒット線は、予めプリチャージされており、ディスチャージされた場合には不一致判定結果とする
請求項９に記載のトランスレーション・ルックアサイド・バッファ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＭ装置及びそれを備えるトランスレーション・ルックアサイド・バッファに関する。
【背景技術】
【０００２】
ＰＣ等の情報処理装置では、ＣＰＵとメインメモリを有している。ＣＰＵはメインメモリにアクセスし、リードもしくはライト動作を行う。しかし、近年、ＣＰＵの高速化に伴いメインメモリの処理速度が、ＣＰＵの処理速度に追いつかなり、メインメモリのデータアクセス中にＣＰＵが一時的に処理を中断し、待ち状態に陥るメモリ遅延の問題が深刻化している。
【０００３】
このＣＰＵとメインメモリとの速度差を埋めるために、キャッシュメモリ装置という一時記憶装置が採用されている。キャッシュメモリ装置には、メインメモリの一部のデータの写しが置かれる。
【０００４】
また、近年の情報処理装置は、一般に仮想記憶方式を採用している。仮想記憶方式では、仮想アドレス（論理アドレス）空間と実アドレス（物理アドレス）空間とを対応付ける必要がある。この仮想記憶方式は、図４に示すように、ある仮想アドレスに対して実メモリのアドレスを対応付けし、その対応付けを可変とすることで、プログラム上のメモリ空間と物理実装のメモリの関係を柔軟に扱うことができる。
【０００５】
また、この仮想記憶方式では、ページング方式が主流となっている。ページング方式では、仮想アドレス空間と実アドレス空間とが各々所定のサイズのページに分割される。ここで、ページング方式の概念図を図５に示す。なお、この図５の例では、ページングサイズの設定を仮想アドレスの下位ビットをマスクすることで行っている。つまり、図５に示すように、下位ビットをマスクすることで、上位ビットが同じ値となる群を１つのページとしている。よって、マスクする下位ビットの数を可変とすることで、ページ毎のサイズ（以下、ページサイズと称す）を可変とすることができる。以下では、このページサイズを可変とするページング方式を可変ページサイズ方式と称す。なお、以下では、マスクされる下位ビットの数が多い場合、ページサイズも大きくなるため大ページサイズと称し、マスクされる下位ビットの数が少ない場合、ページサイズも小さくなるため小ページサイズと称す。
【０００６】
具体的に図５の例で示すと、ページ番号として、下位ビットをマスクしていない仮想アドレス「１００１００００」、「１００１０００１」は、それぞれ１対１対応で、実アドレスのページと対応付けされている。また、下位ビット１ビットをマスクされている仮想アドレス「１００１００１０」、「１００１００１１」を一つの単位とするページＡ１は、実アドレスのページＡ２と対応付けされる。更に、下位ビット２ビットをマスクされている仮想アドレス「１００１０１００」〜「１００１０１１１」を一つの単位とするページＢ１、「１００１１０００」〜「１００１１０１１」を一つの単位とするページＣ１、「１０１０００００」〜「１０１０００１１」を一つの単位とするページＤ１のそれぞれは、実アドレスのページＢ２、Ｃ２、Ｄ２と対応付けされる。
【０００７】
そして、このように仮想アドレス空間のページと実アドレス空間のページとの対応関係が決められ、仮想アドレス空間のページ番号は、アドレス変換装置すなわちＴＬＢ（Translation Look-aside Buffer）によって実アドレス空間のページ番号に変換され、実アドレス空間がアクセスされる。
【０００８】
ここで、ＴＬＢには、連想記憶装置、すなわちＣＡＭ（Content Addressable Memory）が用いられる。ＴＬＢに用いられるＣＡＭは、エントリと称されるデータを保持する。ＣＡＭは、検索データと、エントリデータとの間でパターン比較を行う。そして、そのパターンが整合する場合、整合したエントリに対応する実アドレスが出力される。このようなＣＡＭを用いたＴＬＢは、検索データに対する並列検索が可能であるので、上述した仮想アドレス空間のページ番号と実アドレス空間のページ番号の対応付けを高速に行うことができる。更に、ＣＡＭには、エントリデータの仮想アドレス、及び、検索データの入力アドレスの各ビットの有効／無効を指定するためのマスク機能がある。このマスク機能にはＣＡＭへのエントリデータ登録時にエントリデータの各ビットの有効／無効を指定するためのエントリマスク、及び、検索時に検索データの有効／無効を指定するための検索マスクの２通りがある。
【０００９】
例えば、図６、図７に示すようなエントリデータがＣＡＭに登録、もしくは検索データとして入力される。以下では、エントリデータを例に説明する。このエントリデータは、仮想アドレスが格納される仮想アドレス格納ｂｉｔと、仮想アドレスの対応する下位ビットをマスク設定するエントリマスク指定ｂｉｔとを有する。なお、実際のエントリデータは、更に多くのｂｉｔ桁からなり、上記仮想アドレス格納ｂｉｔ、エントリマスク指定ｂｉｔ以外の情報も有しているが、本例では説明を簡便にするため、必要部分以外を省略している。
【００１０】
まず、図６に示すように、エントリマスク指定ｂｉｔが「００１１」である場合、エントリマスク指定ｂｉｔの値が「１」である箇所に対応する、仮想アドレス格納ｂｉｔの下２桁をマスクする。また、図７に示すように、エントリマスク指定ｂｉｔが「０００１」である場合、同様に、エントリマスク指定ｂｉｔの値が「１」である箇所に対応する、仮想アドレス格納ｂｉｔの下１桁をマスクする。
【００１１】
そして、ＴＬＢは、このマスク機能を利用して、エントリデータごとに上述した可変ページサイズ方式のページのマッピング情報を格納することができる。具体的に図５の例で示すと、仮想アドレス「１００１００００」、「１００１０００１」のように、１対１対応で、ページ番号が実アドレスと対応付けされている場合は、エントリデータとして、「１００１００００」、「１００１０００１」がＣＡＭに登録される。また、下位ビット１ビットをマスクされている仮想アドレス「１００１００１０」、「１００１００１１」を一つの単位とするページの場合は、エントリデータとして、下位１ビットがマスクされた「１００１００１０」もしくは「１００１００１１」のどちらかがベースアドレスとしてＣＡＭに登録される。
【００１２】
更に、下位ビット２ビットをマスクされている仮想アドレス「１００１０１００」〜「１００１０１１１」を一つの単位とするページの場合は、エントリデータとして、下位２ビットがマスクされた「１００１０１００」〜「１００１０１１１」のいずれか１つがベースアドレスとしてＣＡＭに登録される。同様に、下位ビット２ビットをマスクされている仮想アドレス「１００１１０００」〜「１００１１０１１」を一つの単位とするページの場合、下位２ビットがマスクされた「１００１１０００」〜「１００１１０１１」のいずれか１つがベースアドレスとしてＣＡＭに登録される。更に同様に、下位ビット２ビットをマスクされている仮想アドレス「１０１０００００」〜「１０１０００１１」を一つの単位とするページの場合、下位２ビットがマスクされた「１０１０００００」〜「１０１０００１１」のいずれか１つがベースアドレスとしてＣＡＭに登録される。
【００１３】
そして、データ検索時、検索マスクでマスクされていない検索データのビットパターンと、エントリマスクでマスクされていない各エントリデータのビットパターンとを比較し、一致した場合に一致判定（ヒット判定）を出力する。具体例を図８の模擬図に示す。まず、エントリデータとして下位２ビットがエントリマスクされた仮想アドレス「１００１０１０１」がＣＡＭに保持されているものとする。そして、図８に示すように、検索データとして下位２ビットが検索マスクされた入力アドレス「１００１０１１０」が入力されると、エントリデータのマスク対象となっていない上位ビットの「１００１０１」が一致（ヒット）し、一致判定（ヒット判定）が出力される。そして、ＴＬＢは、そのヒット判定したＣＡＭからのアドレスに対応する実アドレスでキャッシュ等のメモリにアクセスする。
【００１４】
なお、上記のようなエントリにおける可変ページサイズのＴＬＢの発明として、特許文献１のような技術がある。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平８−３０５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ここで、図９の模擬図に示すような、プログラムミス等による２重定義が行われる場合がある。これには、本来下位ビット２ビットをマスクされている仮想アドレス「１００１０１００」〜「１００１０１１１」のページＰ１が実メモリのページＰ２と対応付けされているはずが、図９に示すように仮想アドレス「１００１０１１０」が誤って、ページＰ３とも対応付けされているような場合があげられる。このように、同一仮想アドレスを複数の物理アドレスに割り当ててしまうと、プログラムによりＣＰＵが、この２重定義された仮想アドレスにアクセスした場合に実アドレスのどちらにアクセスすべきか不明で、プログラムが動作できなくなる。このようなことをマルチヒット問題といい、このマルチヒットを有するプログラムが実行されると、プログラム停止もしくは暴走等が発生する場合がある。このため、上記のようなマルチヒットの発生を防ぐことが重要となる。
【００１７】
ここで、ＣＡＭに、新たにエントリデータを書き込む場合を考える。このとき、既存のエントリデータと、新たにエントリデータとして書き込むデータとを比較して、２重定義とならないかを確認する。そして、既存エントリデータに対して、検索データとして新たに書き込むエントリデータを入力する。但し、ＣＡＭのエントリデータ検索時に図８に示したような検索データとエントリデータとでマスクされるビットの位置が同じではなく、異なる場合がある。
【００１８】
例えば、図１０に示すように、検索データ（新たに書き込むエントリデータ）である入力アドレスの最下位１ビットがマスクされた場合（小ページサイズのページ情報）と、エントリデータとして既に登録された仮想アドレスの下位２ビットがマスクされる場合（大ページサイズのページ情報）とを比較する場合がある。ここで、エントリデータのマスク部分は、検索データの対応するビット部分と一致しているとみなされる。この場合、図１０に示すように、ＣＡＭの保持するエントリデータのマスク対象外部分と、検索データのマスク対象外部分との「１００１０１１」が一致するため、一致判定が出力される。
【００１９】
なお、仮にこのままエントリデータとして、下位２ビットがマスクされた「１００１０１１０」がエントリデータとして記憶される場合、図１１に示すアドレスマップの模擬図のように、ページＰ３がページＰ２とＰ４に対応付けされ２重定義となる。図１０では、このような２重定義の発生を防ぐことができる。よって、検索データ（新たに書き込むエントリデータ）が小ページサイズのページ情報で、エントリデータが大ページサイズのページ情報である場合は、新たに書き込むエントリデータに対して上記のように一致判定が出力され、２重定義が回避される。
【００２０】
しかし、検索データ（新たに書き込むエントリデータ）である入力アドレスの下位２ビットがマスクされた場合（大ページサイズのページ情報）と、エントリデータとして既に登録された仮想アドレスの最下位１ビットがマスクされる場合（小ページサイズのページ情報）とを比較する場合では、ＣＡＭが保持するエントリデータのマスク対象以外の部分が、検索データと異なることになる。このため、例えば、図１２に示すように、ＣＡＭがエントリデータとして、最下位１ビットがマスクされた仮想アドレス「１００１０１０１」を保持していたとしても、新たに書き込むエントリデータである入力アドレスの下位２ビットがマスクされた「１００１０１１０」と、エントリデータのマスク対象以外の部分が、異なることになり一致判定が正しくできない。
【００２１】
この場合、このままエントリデータとして、下位２ビットがマスクされた「１００１０１１０」がエントリデータとして記憶され、図１３に示すアドレスマップの模擬図のように、既にページＰ１とＰ２が対応付けされているにも関わらず、新たに、ページＰ３とＰ４が対応付けされ２重定義となり、書き込み後における検索時にマルチヒットが発生する。
【００２２】
このような検索データ（新たに書き込むエントリデータ）が大ページサイズのページ情報で、エントリデータが小ページサイズのページ情報である場合であっても、新たに書き込むエントリデータに対して正しく一致判定が出力される機構が求められている。
【課題を解決するための手段】
【００２３】
本発明の一態様は、仮想アドレスのビットパターンのうち所定のビットをマスク対象とすることで、仮想アドレス空間における第１のページを定義し、その第１のページを示す第１のエントリデータを格納するＣＡＭ装置であって、仮想アドレスのビットパターンのうち所定のビットをマスク対象とした入力データのビットパターンと、前記第１のエントリデータのビットパターンとを比較するとき、前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットが、マスク対象でない場合であっても、前記入力データのマスク対象のビットと対応する前記第１のエントリデータのビットを、一致しているものとみなすＣＡＭ装置である。
【００２４】
本発明の他の態様は、仮想アドレスのビットパターンのうち所定のビットをマスク対象とすることで、仮想アドレス空間における複数のページを定義し、そのそれぞれの複数のページを示すエントリデータを格納する複数のＣＡＭ装置を有するトランスレーション・ルックアサイド・バッファであって、仮想アドレスのビットパターンのうち所定のビットをマスク対象とした入力データのビットパターンを入力し、前記入力データのビットパターンと前記複数のＣＡＭ装置の格納するエントリデータビットパターンとを比較するとき、前記複数のＣＡＭ装置の格納するエントリデータのうち、前記入力データのマスク対象のビットと対応するビットが、マスク対象でない場合であっても、前記複数のＣＡＭ装置は、格納するエントリデータのうち、前記入力データのマスク対象のビットと対応するビット、一致しているものとみなし、前記入力データのビットパターンと、格納するエントリデータのビットパターンとが一致したＣＡＭ装置から出力されたヒット信号からマルチヒット検出結果を生成するトランスレーション・ルックアサイド・バッファである。
【００２５】
本発明にかかるＣＡＭ装置では、比較するために入力される入力データの所定のビットがマスク対象であり、記憶する第１のエントリデータのビットパターンのうち、その入力データのマスク対象のビットと対応するビットがマスクされていない場合であっても、入力データのマスク対象のビットと対応するビットを強制的に、一致しているものとみなしている。このため、お互いのマスク対象外のビットパターンが比較され、一致判定が正確に行うことができる。
【発明の効果】
【００２６】
本発明にかかるＣＡＭ装置は、比較する入力データと、記憶しているエントリデータとでページのサイズが異なった場合であっても、正確に一致判定を得ることができる。
【図面の簡単な説明】
【００２７】
【図１】実施の形態１にかかるＴＬＢのブロック構成である。
【図２】実施の形態１にかかるＣＡＭ装置の回路構成である。
【図３】実施の形態２にかかるＣＡＭ装置の回路構成である。
【図４】仮想記憶方式を説明する模式図である。
【図５】ページング方式の概念図である。
【図６】エントリデータのマスク範囲を説明する模式図である。
【図７】エントリデータのマスク範囲を説明する模式図である。
【図８】ＣＡＭの比較動作を説明する模式図である。
【図９】２重定義の問題点を説明する模式図である。
【図１０】検索データが小ページサイズ情報、エントリデータが大ページサイズ情報で一致判定を行う場合を説明する模式図である。
【図１１】２重定義の問題点を説明する模式図である。
【図１２】従来技術の問題点である検索データが大ページサイズ情報、エントリデータが小ページサイズ情報で一致判定を行う場合を説明する模式図である。
【図１３】従来技術で発生する２重定義の問題点を説明する模式図である。
【発明を実施するための形態】
【００２８】
発明の実施の形態１
【００２９】
以下、本発明を適用した具体的な実施の形態１について、図面を参照しながら詳細に説明する。この実施の形態１は、本発明をＴＬＢのＣＡＭ装置に適用したものである。
【００３０】
図１に本実施の形態１にかかるＴＬＢ１０１のブロック構成図を示す。図１に示すように、ＴＬＢ１０１は、ＣＡＭアレイ１０２と、ＲＡＭアレイ１０３と、マルチヒット判定部１０５とを有する。
【００３１】
ＴＬＢ１０１は、ＣＰＵ等からの検索データとして入力仮想アドレスが入力されると、その入力仮想アドレスに対応する実アドレスが出力される。この実アドレスは、キャッシュや主メモリ等の物理アドレスである。その後、ＴＬＢ１０１から出力された実アドレスに対応するキャッシュ等の物理アドレスが、ＣＰＵ等からアクセスされる。
【００３２】
ＣＡＭアレイ１０２は、複数のＣＡＭ装置１００を有する。例えば、ＴＬＢ１０１が、６４エントリデータを保持する場合、６４個のＣＡＭ装置１００が存在する。ＣＡＭ装置１００には、それぞれエントリデータが保持されている。このエントリデータは、上述した仮想アドレス格納ｂｉｔ、エントリマスク指定ｂｉｔ等を有する。仮想アドレス格納ｂｉｔには、仮想アドレス、もしくは、ページに応じたベースアドレスが格納される。
【００３３】
ＲＡＭアレイ１０３は、ＣＡＭアレイ１０２が有する複数のＣＡＭ装置１００と１対１対応で接続される複数のＲＡＭ装置１０４を有する。ＲＡＭ装置１０４には、キャッシュ等の実アドレスを保持する。ＴＬＢ１０１に検索データ（入力仮想アドレス、マスク情報）が入力されると、その検索データの入力仮想アドレスと一致するエントリデータを保持するＣＡＭ装置１００が特定される。そして、その特定されたＣＡＭ装置１００に対応するＲＡＭ装置１０４の保持する実アドレスが出力される。
【００３４】
マルチヒット判定部１０５は、ＣＡＭアレイ１０２が有する複数のＣＡＭ装置１００が出力するヒット信号に応じてマルチヒットの有無を検出し、検出結果を出力する。
【００３５】
図２に本実施の形態１にかかるＣＡＭ装置１００の構成を示す。但し、説明を簡便にするため、ＣＡＭ装置１００が保持するエントリデータの仮想アドレス格納ｂｉｔを２ビット、マスク指定ｂｉｔを１ビットとする。マスク指定ｂｉｔが有効、つまり「１」の値となる場合、仮想アドレス格納ｂｉｔの最下位ビットをマスクするものとする。
【００３６】
ＣＡＭ装置１００は、ＣＡＭセル１１０、１２０と、マスクビット保持部１３０と、プリチャージ回路１４０と、論理回路１５０と、ラッチ回路１６０と、ＮＭＯＳトランジスタＭＮ１１０、ＭＮ１２０、ＭＮ１５０と、ヒット線ＨＩＴ１とを有する。
【００３７】
ここで、ＣＡＭセル１１０、１２０は、エントリデータの仮想アドレス格納ｂｉｔのデータを保持し、マスクビット保持部１３０は、マスク指定ｂｉｔのデータを保持する。更に詳細には、ＣＡＭセル１１０が仮想アドレス格納ｂｉｔの上位ビット、ＣＡＭセル１２０が仮想アドレス格納ｂｉｔの下位ビットを保持し、マスクビット保持部１３０が保持するマスク指定ｂｉｔが「１」の場合、ＣＡＭセル１２０が保持する仮想アドレス格納ｂｉｔの下位ビットをマスクする。
【００３８】
ＣＡＭセル１１０は、ＰＭＯＳトランジスタＭＰ１〜ＭＰ４と、ＮＭＯＳトランジスタＭＮ１〜ＭＮ６とを有する。なお、ＣＡＭセル１２０は、ＣＡＭセル１１０と同様の構成となっている。よって、ここではＣＡＭセル１１０の説明のみを行い、ＣＡＭセル１２０の説明は省略する。
【００３９】
ＰＭＯＳトランジスタＭＰ１は、ソースが電源端子ＶＤＤ、ドレインがノードＮ１、ゲートがノードＮ２に接続される。ＮＭＯＳトランジスタＭＮ１は、ドレインがノードＮ１、ソースが接地端子ＧＮＤ、ゲートがノードＮ２に接続される。なお、上記構成からもわかるように、ＰＭＯＳトランジスタＭＰ１とＮＭＯＳトランジスタＭＮ１は、入力がノードＮ２、出力がノードＮ１に接続されるインバータを構成する。
【００４０】
ＰＭＯＳトランジスタＭＰ２は、ソースが電源端子ＶＤＤ、ドレインがノードＮ２、ゲートがノードＮ１に接続される。ＮＭＯＳトランジスタＭＮ２は、ドレインがノードＮ２、ソースが接地端子ＧＮＤ、ゲートがノードＮ１に接続される。なお、上記構成からもわかるように、ＰＭＯＳトランジスタＭＰ２とＮＭＯＳトランジスタＭＮ２は、入力がノードＮ１、出力がノードＮ２に接続されるインバータを構成する。
【００４１】
ＮＭＯＳトランジスタＭＮ３は、ドレインもしくはソースの一方が書き込みビット線ＷＲ１、ドレインもしくはソースの他方がノードＮ１、ゲートが書き込み制御線ＷＲＩＴＥに接続される。ＮＭＯＳトランジスタＭＮ４は、ドレインもしくはソースの一方が書き込みビット線ＷＲ１Ｂ、ドレインもしくはソースの他方がノードＮ２、ゲートが書き込み制御線ＷＲＩＴＥに接続される。
【００４２】
ＰＭＯＳトランジスタＭＰ３は、ドレインもしくはソースの一方が比較データ線ＶＲ１、ドレインもしくはソースの他方がノードＮ３、ゲートがノードＮ１に接続される。ＮＭＯＳトランジスタＭＮ５は、ドレインもしくはソースの一方が比較データ線ＶＲ１、ドレインもしくはソースの他方がノードＮ３、ゲートがノードＮ２に接続される。ＰＭＯＳトランジスタＭＰ３とＮＭＯＳトランジスタＭＮ５とでトランスファゲートが構成される。
【００４３】
ＰＭＯＳトランジスタＭＰ４は、ドレインもしくはソースの一方が比較データ線ＶＲ１Ｂ、ドレインもしくはソースの他方がノードＮ３、ゲートがノードＮ２に接続される。ＮＭＯＳトランジスタＭＮ６は、ドレインもしくはソースの一方が比較データ線ＶＲ１Ｂ、ドレインもしくはソースの他方がノードＮ３、ゲートがノードＮ１に接続される。ＰＭＯＳトランジスタＭＰ４とＮＭＯＳトランジスタＭＮ６とでトランスファゲートが構成される。
【００４４】
ＮＭＯＳトランジスタＭＮ１１０は、ドレインがヒット線ＨＩＴ１、ソースが接地端子ＧＮＤ、ゲートがＣＡＭセル１１０のノードＮ３に接続される。ＮＭＯＳトランジスタＭＮ１２０は、ドレインがノードＮ８、ソースが接地端子ＧＮＤ、ゲートがＣＡＭセル１２０のノードＮ３に接続される。
【００４５】
マスクビット保持部１３０は、ＰＭＯＳトランジスタＭＰ１１、ＭＰ１２と、ＮＭＯＳトランジスタＭＮ１１〜ＭＮ１４とを有する。
【００４６】
ＰＭＯＳトランジスタＭＰ１１は、ソースが電源端子ＶＤＤ、ドレインがノードＮ４、ゲートがノードＮ５に接続される。ＮＭＯＳトランジスタＭＮ１１は、ドレインがノードＮ４、ソースが接地端子ＧＮＤ、ゲートがノードＮ５に接続される。なお、上記構成からもわかるように、ＰＭＯＳトランジスタＭＰ１１とＮＭＯＳトランジスタＭＮ１１は、入力がノードＮ５、出力がノードＮ４に接続されるインバータを構成する。
【００４７】
ＰＭＯＳトランジスタＭＰ１２は、ソースが電源端子ＶＤＤ、ドレインがノードＮ５、ゲートがノードＮ４に接続される。ＮＭＯＳトランジスタＭＮ１２は、ドレインがノードＮ５、ソースが接地端子ＧＮＤ、ゲートがノードＮ４に接続される。なお、上記構成からもわかるように、ＰＭＯＳトランジスタＭＰ１２とＮＭＯＳトランジスタＭＮ１２は、入力がノードＮ４、出力がノードＮ５に接続されるインバータを構成する。
【００４８】
ＮＭＯＳトランジスタＭＮ１３は、ドレインもしくはソースの一方がマスクデータ線ＭＲ１、ドレインもしくはソースの他方がノードＮ４、ゲートが書き込み制御線ＷＲＩＴＥに接続される。ＮＭＯＳトランジスタＭＮ１４は、ドレインもしくはソースの一方がマスクデータ線ＭＲ１Ｂ、ドレインもしくはソースの他方がノードＮ５、ゲートが書き込み制御線ＷＲＩＴＥに接続される。
【００４９】
なお、ＣＡＭセル１１０及びＣＡＭセル１２０の書き込みビット線ＷＲ１、ＷＲ１Ｂは、ＴＬＢ１０１の他のＣＡＭ装置１００にも接続されている。また、比較データ線ＶＲ１、ＶＲ１Ｂも同様に他のＣＡＭ装置１００にも接続されている。更に、マスクデータ線ＭＲ１、ＭＲ１Ｂも同様に他のＣＡＭ装置１００にも接続されている。書き込み制御線ＷＲＩＴＥは、各ＣＡＭ装置１００ごとに接続されている。
【００５０】
論理回路１５０は、ＰＭＯＳトランジスタＭＰ２１、ＭＰ２２と、ＮＭＯＳトランジスタＭＮ２１、ＭＮ２２とを有する。
【００５１】
ＰＭＯＳトランジスタＭＰ２１は、ソースが電源端子ＶＤＤ、ドレインがノードＮ６、ゲートがマスクビット保持部１３０のノードＮ４に接続される。ＮＭＯＳトランジスタＭＮ２１は、ドレインがノードＮ７、ソースが接地端子ＧＮＤ、ゲートがマスクビット保持部１３０のノードＮ４に接続される。ＰＭＯＳトランジスタＭＰ２２は、ソースがノードＮ６、ドレインがノードＮ７、ゲートがマスクデータ線ＭＲ１に接続される。ＮＭＯＳトランジスタＭＮ２２は、ドレインがノードＮ７、ソースが接地端子ＧＮＤ、ゲートがマスクデータ線ＭＲ１に接続される。
【００５２】
このような構成から論理回路１５０は、ノードＮ４と、マスクデータ線ＭＲ１とを入力とし、ノードＮ７を出力とするＮＯＲ回路を構成する。
【００５３】
ＮＭＯＳトランジスタＭＮ１１０は、ドレインがヒット線ＨＩＴ１、ソースが接地端子ＧＮＤ、ゲートがＣＡＭセル１１０のノードＮ３に接続される。ＮＭＯＳトランジスタＭＮ１２０は、ドレインがノードＮ８、ソースが接地端子ＧＮＤ、ゲートがＣＡＭセル１２０のノードＮ３に接続される。ＮＭＯＳトランジスタＭＮ１５０は、ドレインがヒット線ＨＩＴ１、ソースがノードＮ８、ゲートが論理回路１５０のノードＮ７に接続される。
【００５４】
プリチャージ回路１４０は、ヒット線ＨＩＴ１を予めハイレベルにプリチャージする。ラッチ回路１６０は、ヒット線ＨＩＴ１の信号レベルをラッチし、ＨＩＴ信号として出力する。このラッチ回路１６０からのＨＩＴ信号は、ＣＡＭ装置１００と対応するＲＡＭ装置１０４と、マルチヒット判定部１０５に出力される。
【００５５】
更に、マルチヒット判定部１０５は、マルチヒット検出器５１と、ＡＮＤ回路５２とを有する。マルチヒット検出器５１は、ＴＬＢ１０１の各ＣＡＭ装置１００から出力されるヒット信号を入力する。それらのヒット信号にハイレベルの信号があれば、ハイレベルの信号をＡＮＤ回路５２に出力する。ＡＮＤ回路５２は、マルチヒット検出器５１と書き込み制御信号ＷＲＩＴＥとを入力し、論理演算した結果をマルチヒット可能性検出結果として出力する。
【００５６】
以下に、本実施の形態１のＴＬＢ１０１の動作を説明する。なお、ここでは、ＴＬＢ１０１内の１つのＣＡＭ装置１００を書き込み対象に選択し、そのＣＡＭ装置１００にエントリデータを新たに書き込む場合を説明する。つまり、この場合、エントリデータの書き込みと同時に、同じパターンの検索データが入力されることになる。以下では、新たに書き込みエントリデータと検索データを、書き込みエントリデータと称すものとする。
【００５７】
まず、新たに書き込むエントリデータが、書き込みビット線ＷＲ１、ＷＲ１Ｂ、比較データ線ＶＲ１、ＶＲ１Ｂ、マスクデータ線ＭＲ１、ＭＲ１Ｂのそれぞれに、印加される。ここで、書き込みビット線ＷＲ１、ＷＲ１Ｂには書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビット、書き込みビット線ＷＲ２、ＷＲ２Ｂには書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビット、マスクデータ線ＭＲ１、ＭＲ１Ｂには書き込みエントリデータのマスク指定ｂｉｔのデータが印加される。
【００５８】
また、上述したように、エントリデータの書き込みと同時に、同じパターンの検索データが入力されるため、書き込みビット線ＷＲ１と比較データ線ＶＲ１、更に、書き込みビット線ＷＲ１Ｂと比較データ線ＶＲ１Ｂには、同じデータが印加される。なお、念のため記載するが、書き込みビット線ＷＲ１Ｂには、書き込みビット線ＷＲ１に対する逆相の信号が印加される。同様に、比較データ線ＶＲ１Ｂには、比較データ線ＶＲ１に対する逆相の信号が印加される。マスクデータ線ＭＲ１Ｂには、マスクデータ線ＭＲ１に対する逆相の信号が印加される。
【００５９】
書き込み対象のＣＡＭ装置１００では、書き込み制御線ＷＲＩＴＥがハイレベルとなる。このため、ＣＡＭセル１１０及び１２０のＮＭＯＳトランジスタＭＮ３、ＭＮ４、更には、マスクビット保持部１３０のＮＭＯＳトランジスタＭＮ１３、ＭＮ１４がオンとなる。そして、ＣＡＭセル１１０が書き込みビット線ＷＲ１、ＷＲ１Ｂのデータ、ＣＡＭセル１２０が書き込みビット線ＷＲ２、ＷＲ２Ｂのデータ、マスクビット保持部１３０がマスクデータ線ＭＲ１、ＭＲ１Ｂのデータを記憶する。
【００６０】
なお、書き込みビット線ＷＲ１、比較データ線ＶＲ１に印加されるデータが同じ値となるため、ＣＡＭセル１１０、１２０のノードＮ３は、共にロウレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１１０、ＭＮ１２０は、共にオフ状態となり、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に遮断され、ヒット線ＨＩＴ１のディスチャージが行われない。つまり、ヒット線ＨＩＴ１がハイレベルを保持し、ラッチ回路１６０は、ハイレベルのヒット信号を出力する。
【００６１】
これと同時に、書き込み対象外のＣＡＭ装置１００では、保持データと比較データ線ＶＲ１、ＶＲ１Ｂ及びＶＲ２、ＶＲ２Ｂに印加されているデータと比較動作が行われる。この比較動作の例を、以下に示す説明する。
【００６２】
まず、この書き込み対象外のＣＡＭ装置１００が保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと、書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが一致（ヒット）する場合を説明する。
【００６３】
例えば、ＣＡＭセル１１０の保持するエントリデータが「０」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）で、比較データ線ＶＲ１に「０」（ロウレベル）が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）を考える。この場合、ノードＮ１がロウレベル、ノードＮ２がハイレベルのため、ＰＭＯＳトランジスタＭＰ３とＮＭＯＳトランジスタＭＮ５により構成されるトランスファゲートがオンし、ノードＮ３がロウレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオフ状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に遮断され、ヒット線ＨＩＴ１のディスチャージが行われない。つまり、ヒット線ＨＩＴ１がハイレベルを保持する。
【００６４】
また、ＣＡＭセル１１０の保持するエントリデータが「１」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）で、比較データ線ＶＲ１に「１」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がハイレベル、ノードＮ２がロウレベルのため、ＰＭＯＳトランジスタＭＰ４とＮＭＯＳトランジスタＭＮ６により構成されるトランスファゲートがオンし、ノードＮ３がロウレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオフ状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に遮断され、ヒット線ＨＩＴ１のディスチャージが行われない。つまり、ヒット線ＨＩＴ１がハイレベルを保持する。
【００６５】
以上のことから、ＣＡＭセル１１０の保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが一致（ヒット）する場合、ヒット線ＨＩＴ１に対するディスチャージがなく、ヒット線ＨＩＴ１がハイレベルを保持する。
【００６６】
次に、ＣＡＭセル１１０の保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが不一致（ミス）する場合を説明する。
【００６７】
例えば、ＣＡＭセル１１０の保持するエントリデータが「０」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）で、比較データ線ＶＲ１に「１」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がロウレベル、ノードＮ２がハイレベルのため、ＰＭＯＳトランジスタＭＰ３とＮＭＯＳトランジスタＭＮ５により構成されるトランスファゲートがオンし、ノードＮ３がハイレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオン状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に接続され、ヒット線ＨＩＴ１がディスチャージされる。つまり、ヒット線ＨＩＴ１がロウレベルに遷移する。
【００６８】
また、ＣＡＭセル１１０の保持データが「１」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）で、比較データ線ＶＲ１に「０」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がハイレベル、ノードＮ２がロウレベルのため、ＰＭＯＳトランジスタＭＰ４とＮＭＯＳトランジスタＭＮ６により構成されるトランスファゲートがオンし、ノードＮ３がハイレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオン状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に接続され、ヒット線ＨＩＴ１がディスチャージされる。つまり、ヒット線ＨＩＴ１がロウレベルに遷移する。
【００６９】
以上のことから、エントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが不一致（ミス）する場合、ヒット線ＨＩＴ１に対してディスチャージが行われ、ヒット線ＨＩＴ１がロウレベルとなる。
【００７０】
この書き込み対象外のＣＡＭ装置１００の比較動作が行われるときのＣＡＭセル１１０とＮＭＯＳトランジスタＭＮ１１０の動作と同様のことが、ＣＡＭセル１２０とＮＭＯＳトランジスタＭＮ１２０に対しても行われる。つまり、エントリデータの仮想アドレス格納ｂｉｔの下位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビットとが一致（ヒット）する場合、ノードＮ８に対するディスチャージを行わない。逆に、エントリデータの仮想アドレス格納ｂｉｔの下位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビットとが不一致（ミス）する場合、ノードＮ８に対するディスチャージが行われる。
【００７１】
但し、図２の回路構成からも明らかなように、ヒット線ＨＩＴ１とノードＮ８との間には、ＮＭＯＳトランジスタＭＮ１５０が接続されている。このため、ＮＭＯＳトランジスタＭＮ１５０がオン状態とならない限りは、ヒット線ＨＩＴ１とノードＮ８は電気的に遮断されているため、ＮＭＯＳトランジスタＭＮ１２０の導通状態に関係なくヒット線ＨＩＴ１がハイレベルを保持することになる。
【００７２】
以下、書き込み対象外のＣＡＭ装置１００のマスクビット保持部１３０と論理回路１５０とＮＭＯＳトランジスタＭＮ１５０の動作を説明する。
【００７３】
まず、保持エントリデータのマスク指定ｂｉｔと、書き込みエントリデータのマスク指定ｂｉｔとが一致する場合、つまり保持エントリデータと書き込みエントリデータのページサイズが同じ場合を説明する。
【００７４】
例えば、マスクビット保持部１３０の保持データが「０」である場合（保持エントリデータのマスク指定ｂｉｔが「０」：小ページサイズ情報）で、マスクデータ線ＭＲ１に「０」が印加される場合（書き込みエントリデータのマスク指定ｂｉｔが「０」：小ページサイズ情報）を考える。この場合、ノードＮ４がロウレベル、マスクデータ線ＭＲ１がロウレベルのため、ノードＮ７がハイレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１５０はオン状態となる。このため、上述したように、ＮＭＯＳトランジスタＭＮ１２０の導通状態に応じて、ヒット線ＨＩＴ１のディスチャージが行われるか否かが決定される。
【００７５】
つまり、エントリデータの仮想アドレス格納ｂｉｔの下位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビットとが一致（ヒット）する場合、ＮＭＯＳトランジスタＭＮ１２０がオフとなるため、ヒット線ＨＩＴ１に対するディスチャージがなく、ヒット線ＨＩＴ１がハイレベルを保持する。
【００７６】
逆に、エントリデータの仮想アドレス格納ｂｉｔの下位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビットとが不一致（ミス）する場合、ＮＭＯＳトランジスタＭＮ１２０がオンとなるため、ヒット線ＨＩＴ１がディスチャージされ、ヒット線ＨＩＴ１がロウレベルに遷移する。
【００７７】
また、マスクビット保持部１３０の保持データが「１」である場合（保持エントリデータのマスク指定ｂｉｔが「１」：大ページサイズ情報）で、マスクデータ線ＭＲ１に「１」が印加される場合（書き込みエントリデータのマスク指定ｂｉｔが「１」：大ページサイズ情報）を考える。この場合、ノードＮ４がハイレベル、マスクデータ線ＭＲ１がハイレベルのため、ノードＮ７がロウレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１５０はオフ状態となる。よって、ＮＭＯＳトランジスタＭＮ１２０の導通状態に関係なくヒット線ＨＩＴ１に対するディスチャージが行われず、ヒット線ＨＩＴ１がハイレベルを保持することになる。
【００７８】
次に、エントリデータのマスク指定ｂｉｔと、書き込みエントリデータのマスク指定ｂｉｔとが不一致となる場合、つまり保持エントリデータと書き込みエントリデータのページサイズが異なる場合を説明する。
【００７９】
例えば、マスクビット保持部１３０の保持データが「０」である場合（保持エントリデータのマスク指定ｂｉｔが「０」：小ページサイズ情報）で、マスクデータ線ＭＲ１に「１」が印加される場合（書き込みエントリデータのマスク指定ｂｉｔが「１」：大ページサイズ情報）を考える。この場合、ノードＮ４がロウレベル、マスクデータ線ＭＲ１がハイレベルのため、ノードＮ７がロウレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１５０はオフ状態となる。よって、ＮＭＯＳトランジスタＭＮ１２０の導通状態に関係なくヒット線ＨＩＴ１に対するディスチャージが行われず、ヒット線ＨＩＴ１がハイレベルを保持することになる。
【００８０】
また、マスクビット保持部１３０の保持データが「１」である場合（保持エントリデータのマスク指定ｂｉｔが「１」）で、マスクデータ線ＭＲ１に「０」が印加される場合（書き込みエントリデータのマスク指定ｂｉｔが「０」）を考える。この場合、ノードＮ４がハイレベル、マスクデータ線ＭＲ１がロウレベルのため、ノードＮ７がロウレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１２０の導通状態に関係なくヒット線ＨＩＴ１に対するディスチャージが行われず、ヒット線ＨＩＴ１がハイレベルを保持することになる。
【００８１】
よって、この論理回路１５０とＮＭＯＳトランジスタＭＮ１５０の機能により、書き込み対象外のＣＡＭ装置１００の保持エントリデータのマスク指定ｂｉｔ、及び、書き込みエントリデータのマスク指定ｂｉｔの少なくともどちらか一方に「１」がある場合、そのマスク指定ｂｉｔのマスク対象であるエントリデータの値が異なっていても、強制的に一致（ヒット）扱いとする。このことにより、書き込みエントリデータと、保持エントリデータのページサイズが異なっていても、互いのマスク範囲外のデータが一致する場合に確実に一致（ヒット）判定を得ること可能となる。
【００８２】
以上のような書き込み対象外のＣＡＭ装置１００の比較動作により、マスク範囲外のデータが一致（ヒット）する場合、ヒット線ＨＩＴ１がハイレベルとの比較結果を得ることになる。更には、マスク範囲外のデータが不一致（ミス）である場合、ヒット線ＨＩＴ１がロウレベルとの比較結果を得ることになる。そして、この比較結果を、ラッチ回路１６０がラッチし、ヒット信号としてＲＡＭ装置１０４及びマルチヒット判定部１０５へ出力する。
【００８３】
このような書き込み対象外の各ＣＡＭ装置１００のラッチ回路１６０からのヒット信号は、マルチヒット判定部１０５のマルチヒット検出器５１へ入力される。ここで、上述したように書き込み対象のＣＡＭ装置１００のラッチ回路１６０から、マルチヒット検出器５１へハイレベルのヒット信号が入力される。このため、マルチヒット検出器５１は、２以上のハイレベルのヒット信号が入力された場合に、書き込みエントリデータと、２重定義となる書き込み対象外のＣＡＭ装置１００の保持エントリデータが存在することが判定される。そして、この判定結果が、ＡＮＤ回路５２からマルチヒット可能性検出結果として出力される。
【００８４】
ここで、図１２、図１３で説明したように、従来技術では、書き込みエントリデータが大ページサイズのページ情報、保持エントリデータが小ページサイズのページ情報である場合、書き込みエントリデータと、保持エントリデータのマスク対象以外の部分とが異なることにより、一致判定が正しくできない問題が発生していた。そして、新たにＣＡＭ装置に大ページサイズのエントリデータが書き込まれることで、２重定義が発生する問題があった。
【００８５】
しかし、本実施の形態１のＣＡＭ装置１００では、書き込み対象外のＣＡＭ装置１００の保持エントリデータのマスク指定ｂｉｔ、及び、書き込みエントリデータのマスク指定ｂｉｔの少なくともどちらか一方が有効、つまり、値が「１」である場合、そのマスク指定ｂｉｔのマスク対象であるデータの値が異なっていても、強制的に一致（ヒット）扱いとする。このため、書き込みエントリデータと、保持エントリデータのページサイズが異なっている場合、例えば、従来技術で問題となっていた、書き込みエントリデータが大ページサイズのページ情報、保持エントリデータが小ページサイズのページ情報である場合であっても、互いのマスク範囲外のデータのパターンが一致する場合に確実に一致（ヒット）判定を得ること可能となる。
【００８６】
具体的には、上述したように、マスクビット保持部１３０の保持データが「０」である場合（保持エントリデータのマスク指定ｂｉｔが「０」：小ページサイズ情報）で、マスクデータ線ＭＲ１に「１」が印加される場合（書き込みエントリデータのマスク指定ｂｉｔが「１」：大ページサイズ情報）であっても、ＮＭＯＳトランジスタＭＮ１５０はオフ状態として、ＮＭＯＳトランジスタＭＮ１２０の導通状態に関係なくヒット線ＨＩＴ１がハイレベルを保持、つまり、一致（ヒット）とする。
【００８７】
よって、図１２、図１３で説明した、書き込みエントリデータと、エントリデータのマスク対象以外の部分とが異なることにより、比較できなかった問題が解消され、２重定義の発生を防止することが可能となる。また、この動作は、検索時に同時に行っており、新たな検出装置を必要とせず、回路規模の大幅な増加を伴わず、またそのような検出装置を動作させる検出期間も必要ないため、ＣＡＭ装置１００の動作性能を落とすことなく実現できる。そして、ＣＡＭ装置１００に新たにエントリデータを書き込む場合、マルチヒットが将来発生する可能性を、書き込み時に判定することができる。
【００８８】
発明の実施の形態２
【００８９】
以下、本発明を適用した具体的な実施の形態２について、図面を参照しながら詳細に説明する。この実施の形態２は、実施の形態１と同様、本発明をＴＬＢのＣＡＭ装置に適用したものである。
【００９０】
図２に本実施の形態１にかかるＣＡＭ装置２００の構成を示す。但し、説明を簡便にするため、実施の形態１と同様、ＣＡＭ装置２００が保持するエントリデータの仮想アドレス格納ｂｉｔを２ビット、マスク指定ｂｉｔを１ビットとする。マスク指定ｂｉｔが有効、つまり「１」の値となる場合、仮想アドレス格納ｂｉｔの最下位ビットをマスクするものとする。
【００９１】
ＣＡＭ装置２００は、ＣＡＭセル１１０、１２０と、マスクビット保持部１３０と、プリチャージ回路１４０と、論理回路１５０、２１０と、ラッチ回路１６０と、ＮＭＯＳトランジスタＭＮ１１０、ＭＮ１２０、ＭＮ１５０と、ヒット線ＨＩＴ１とを有する。
【００９２】
ここで、ＣＡＭセル１１０、１２０は、実施の形態１と同様、エントリデータの仮想アドレス格納ｂｉｔのデータを保持し、マスクビット保持部１３０は、マスク指定ｂｉｔのデータを保持する。更に詳細には、ＣＡＭセル１１０が仮想アドレス格納ｂｉｔの上位ビット、ＣＡＭセル１２０が仮想アドレス格納ｂｉｔの下位ビットを保持し、マスクビット保持部１３０が保持するマスク指定ｂｉｔが「１」の場合、ＣＡＭセル１２０が保持する仮想アドレス格納ｂｉｔの下位ビットをマスクする。
【００９３】
なお、図３に示された符号のうち、図２と同じ符号を付した構成は、図２と同じか又は類似の構成を示している。実施の形態１と異なるのは、ＣＡＭセル１１０のノードＮ３と、ＮＭＯＳトランジスタＭＮ１５０との間に論理回路２１０が接続されている点である。その他の構成は、実施の形態１と同様なため、説明は省略する。
【００９４】
論理回路２１０は、ＰＭＯＳトランジスタＭＰ３１〜ＭＰ３３と、ＮＭＯＳトランジスタＭＮ３１〜ＭＮ３３とを有する。
【００９５】
ＰＭＯＳトランジスタＭＰ３１は、ソースが電源端子ＶＤＤ、ドレインがノードＮ９、ゲートがＣＡＭセル１１０のノードＮ３に接続される。ＮＭＯＳトランジスタＭＮ３１は、ドレインがノードＮ１０、ソースが接地端子ＧＮＤ、ゲートがＣＡＭセル１１０のノードＮ３に接続される。ＰＭＯＳトランジスタＭＰ３２は、ソースがノードＮ９、ドレインがノードＮ１０、ゲートが書き込み制御線ＷＲＩＴＥに接続される。ＮＭＯＳトランジスタＭＮ３２は、ドレインがノードＮ１０、ソースが接地端子ＧＮＤ、ゲートが書き込み制御線ＷＲＩＴＥに接続される。ＰＭＯＳトランジスタＭＰ３３は、ソースが電源端子ＶＤＤ、ドレインがノードＮ１１、ゲートがノードＮ１０に接続される。ＮＭＯＳトランジスタＭＮ３３は、ドレインがノードＮ１１、ソースが接地端子ＧＮＤ、ゲートがノードＮ１０に接続される。
【００９６】
このような構成から論理回路２１０は、ＣＡＭセル１１０のノードＮ３と、書き込み制御線ＷＲＩＴＥとを入力とし、ノードＮ１１を出力とするＯＲ回路を構成する。
【００９７】
ＮＭＯＳトランジスタＭＮ１１０は、ドレインがヒット線ＨＩＴ１、ソースが接地端子ＧＮＤ、ゲートが論理回路２１０のノードＮ１０に接続される。
【００９８】
更に、マルチヒット判定部１０５は、ＯＲ回路５３、５４と、ＡＮＤ回路５５とを有する。ＯＲ回路５３は、ＴＬＢ１０１の各ＣＡＭ装置１００から出力されるヒット信号を入力し、論理演算した結果をＡＮＤ回路５５に出力する。ＯＲ回路５４は、ＴＬＢ１０１の各ＣＡＭ装置１００に入力される書き込み制御信号ＷＲＩＴＥを入力し、論理演算した結果をＡＮＤ回路５５に出力する。ＡＮＤ回路５２は、ＯＲ回路５３、５４からの出力信号を入力し、論理演算した結果をマルチヒット可能性検出結果として出力する。
【００９９】
以下に、本実施の形態２のＴＬＢ１０１の動作を説明する。なお、ここでは、実施の形態１と同様、ＴＬＢ１０１内の１つのＣＡＭ装置２００を書き込み対象に選択し、そのＣＡＭ装置２００にエントリデータを新たに書き込む場合を説明する。つまり、この場合、エントリデータの書き込みと同時に、同じパターンの検索データが入力されることになる。以下では、新たに書き込みエントリデータと検索データを、書き込みエントリデータと称すものとする。なお、ＣＡＭ装置２００の動作のうち、論理回路２１０とＮＭＯＳトランジスタＭＮ１１０に関わる動作以外は、実施の形態１のＣＡＭ装置１００と同様である。このため、実施の形態１のＣＡＭ装置１００と同様な動作の説明はここでは、省略する。
【０１００】
まず、新たに書き込むエントリデータが、書き込みビット線ＷＲ１、ＷＲ１Ｂ、比較データ線ＶＲ１、ＶＲ１Ｂ、マスクデータ線ＭＲ１、ＭＲ１Ｂのそれぞれに印加される。ここで、書き込みビット線ＷＲ１、ＷＲ１Ｂには書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビット、書き込みビット線ＷＲ２、ＷＲ２Ｂには書き込みエントリデータの仮想アドレス格納ｂｉｔの下位ビット、マスクデータ線ＭＲ１、ＭＲ１Ｂには書き込みエントリデータのマスク指定ｂｉｔのデータが印加される。
【０１０１】
書き込み対象のＣＡＭ装置２００では、書き込み制御線ＷＲＩＴＥがハイレベルとなる。このため、ＣＡＭセル１１０及び１２０のＮＭＯＳトランジスタＭＮ３、ＭＮ４、更には、マスクビット保持部１３０のＮＭＯＳトランジスタＭＮ１３、ＭＮ１４がオンとなる。そして、ＣＡＭセル１１０が書き込みビット線ＷＲ１、ＷＲ１Ｂのデータ、ＣＡＭセル１２０が書き込みビット線ＷＲ２、ＷＲ２Ｂのデータ、マスクビット保持部１３０がマスクデータ線ＭＲ１、ＭＲ１Ｂのデータを記憶する。
【０１０２】
書き込みビット線ＷＲ１、比較データ線ＶＲ１に印加されるデータが同じ値となるため、ＣＡＭセル１１０のノードＮ３は、ロウレベルとなる。しかし、上述のように書き込み対象のＣＡＭ装置２００の書き込み制御線ＷＲＩＴＥはハイレベルである。このため、論理回路２１０のノードＮ１０はノードＮ３のレベルにかかわらずロウレベルとなる。そして、ノードＮ１１、つまり論理回路２１０の出力はハイレベルとなる。よって、ＮＭＯＳトランジスタＭＮ１１０も必ずオン状態となる。そして、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に接続され、ヒット線ＨＩＴ１がディスチャージされる。このため、ヒット線ＨＩＴ１がロウレベルに遷移する。結果として、書き込み対象のＣＡＭ装置２００のヒット線ＨＩＴ１は、必ずディスチャージされることになる。
【０１０３】
これと同時に、書き込み対象外のＣＡＭ装置２００では、保持データと比較データ線ＶＲ１、ＶＲ１Ｂ及びＶＲ２、ＶＲ２Ｂに印加されているデータと比較動作が行われる。この比較動作の例を、以下に示す説明する。
【０１０４】
まず、この書き込み対象外のＣＡＭ装置２００が保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと、書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが一致（ヒット）する場合を説明する。
【０１０５】
例えば、ＣＡＭセル１１０の保持するエントリデータが「０」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）で、比較データ線ＶＲ１に「０」（ロウレベル）が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）を考える。この場合、ノードＮ１がロウレベル、ノードＮ２がハイレベルのため、ＰＭＯＳトランジスタＭＰ３とＮＭＯＳトランジスタＭＮ５により構成されるトランスファゲートがオンし、ノードＮ３がロウレベルとなる。
【０１０６】
一方、書き込み対象外のＣＡＭ装置２００では、書き込み制御線ＷＲＩＴＥもロウレベルであるため、論理回路２１０のノードＮ１０がハイレベルとなる。そして、ノードＮ１１、つまり論理回路２１０の出力はロウレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオフ状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に遮断され、ヒット線ＨＩＴ１のディスチャージが行われない。つまり、ヒット線ＨＩＴ１がハイレベルを保持する。
【０１０７】
また、ＣＡＭセル１１０の保持するエントリデータが「１」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）で、比較データ線ＶＲ１に「１」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がハイレベル、ノードＮ２がロウレベルのため、ＰＭＯＳトランジスタＭＰ４とＮＭＯＳトランジスタＭＮ６により構成されるトランスファゲートがオンし、ノードＮ３がロウレベルとなる。
【０１０８】
一方、書き込み対象外のＣＡＭ装置２００では、書き込み制御線ＷＲＩＴＥもロウレベルであるため、論理回路２１０のノードＮ１０がハイレベルとなる。そして、ノードＮ１１、つまり論理回路２１０の出力はロウレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオフ状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に遮断され、ヒット線ＨＩＴ１のディスチャージが行われない。つまり、ヒット線ＨＩＴ１がハイレベルを保持する。
【０１０９】
以上のことから、ＣＡＭセル１１０の保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが一致（ヒット）する場合、ヒット線ＨＩＴ１に対してディスチャージされず、ヒット線ＨＩＴ１がハイレベルを保持する。
【０１１０】
次に、ＣＡＭセル１１０の保持するエントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが不一致（ミス）する場合を説明する。
【０１１１】
例えば、ＣＡＭセル１１０の保持するエントリデータが「０」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「０」）で、比較データ線ＶＲ１に「１」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がロウレベル、ノードＮ２がハイレベルのため、ＰＭＯＳトランジスタＭＰ３とＮＭＯＳトランジスタＭＮ５により構成されるトランスファゲートがオンし、ノードＮ３がハイレベルとなる。
【０１１２】
一方、書き込み対象外のＣＡＭ装置２００では、書き込み制御線ＷＲＩＴＥがロウレベルであるため、論理回路２１０のノードＮ１０がロウレベルとなる。そして、ノードＮ１１、つまり論理回路２１０の出力はハイレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオン状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に接続され、ヒット線ＨＩＴ１がディスチャージされ、ヒット線ＨＩＴ１がロウレベルに遷移する。
【０１１３】
また、ＣＡＭセル１１０の保持するエントリデータが「１」である場合（保持エントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）で、比較データ線ＶＲ１に「０」が印加される場合（書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットが「１」）を考える。この場合、ノードＮ１がハイレベル、ノードＮ２がロウレベルのため、ＰＭＯＳトランジスタＭＰ４とＮＭＯＳトランジスタＭＮ６により構成されるトランスファゲートがオンし、ノードＮ３がハイレベルとなる。
【０１１４】
一方、書き込み対象外のＣＡＭ装置２００では、書き込み制御線ＷＲＩＴＥがロウレベルであるため、論理回路２１０のノードＮ１０がロウレベルとなる。そして、ノードＮ１１、つまり論理回路２１０の出力はハイレベルとなる。このため、ＮＭＯＳトランジスタＭＮ１１０はオン状態となる。よって、ヒット線ＨＩＴ１と接地端子ＧＮＤとが電気的に接続され、ヒット線ＨＩＴ１がディスチャージされ、ヒット線ＨＩＴ１がロウレベルに遷移する。
【０１１５】
以上のことから、エントリデータの仮想アドレス格納ｂｉｔの上位ビットと書き込みエントリデータの仮想アドレス格納ｂｉｔの上位ビットとが不一致（ミス）する場合、ヒット線ＨＩＴ１に対してディスチャージが行われ、ヒット線ＨＩＴ１がロウレベルとなる。よって、書き込み対象外のＣＡＭ装置２００の比較動作の結果は、実施の形態１と同様の結果となる。
【０１１６】
上記結果をまとめると、書き込み対象外のＣＡＭ装置２００の比較動作は、実施の形態１と同様であるが、書き込み対象のＣＡＭ装置２００では、実施の形態１と異なり強制的に不一致判定結果のヒット信号を出力することになる。
【０１１７】
そして、上述した書き込み対象のＣＡＭ装置２００のラッチ回路１６０からのヒット信号と、その他の書き込み対象外の各ＣＡＭ装置２００のラッチ回路１６０からのヒット信号は、マルチヒット判定部１０５のＯＲ回路５３に入力される。そして、ＯＲ回路５３は、入力信号を論理演算し、演算結果をＡＮＤ回路５５に出力する。つまり、書き込み対象のＣＡＭ装置２００を含まない書き込み対象外のＣＡＭ装置２００から１つでもハイレベルのヒット信号が出力された場合には、書き込みエントリデータと、２重定義となる書き込み対象外のＣＡＭ装置２００の保持エントリデータが存在することが判定可能となる。
【０１１８】
また、書き込み対象のＣＡＭ装置２００の書き込み制御線ＷＲＩＴＥ及び書き込み対象外の各ＣＡＭ装置２００の書き込み制御線ＷＲＩＴＥの信号がマルチヒット判定部１０５のＯＲ回路５４に入力される。そして、ＯＲ回路５４は、入力信号を論理演算し、演算結果をＡＮＤ回路５５に出力する。
【０１１９】
ＡＮＤ回路５５は、入力信号を論理演算し、演算結果をマルチヒット可能性検出結果として出力する。
【０１２０】
ここで実施の形態１では、書き込み対象のＣＡＭ装置１００からは、ハイレベルのヒット信号が出力されていたが、本実施の形態２のＣＡＭ装置２００では、書き込み対象となった場合であってもハイレベルのヒット信号が出力されない。つまり、書き込み対象のＣＡＭ装置２００を強制的にミス扱いとすることができる。このため、書き込み対象外のＣＡＭ装置２００から１つでもハイレベルのヒット信号が入力された場合には、書き込みエントリデータと、２重定義となる書き込み対象外のＣＡＭ装置２００の保持エントリデータが存在することが判定可能となる。その他の動作及び効果は、実施の形態１と同様である。
【０１２１】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態１では、新たなエントリデータを書き込む場合において、その書き込みエントリデータと既存のエントリデータとの比較を行っていたが、特にエントリデータの書き込みを同時に行わなくてもかまわない。つまり、検索データを、書き込みビット線ＷＲ１、ＷＲ１Ｂ、比較データ線ＶＲ１、ＶＲ１Ｂ、マスクデータ線ＭＲ１、ＭＲ１Ｂのそれぞれに印加し、その検索データと既存のエントリデータとの比較を行う。そして、その比較の結果、各ＣＡＭ装置１００から出力されるヒット信号に１つでもハイレベルがあれば、検索データに対するマルチヒットが検出できる。このように、検索データに対する既存エントリデータのマルチヒットの検出を行うだけでも可能である。
【符号の説明】
【０１２２】
１００、２００  ＣＡＭ（Content Addressable Memory）装置
１０１  ＴＬＢ（Translation Look-aside Buffer）
１０２  ＣＡＭアレイ
１０３  ＲＡＭアレイ
１０４  ＲＡＭ装置
１０５  マルチヒット判定部１０５
１１０、１２０  ＣＡＭセル
１３０  マスクビット保持部
１４０  プリチャージ回路
１５０  論理回路
ＨＩＴ１  ヒット線
ＭＮ１１０、ＭＮ１２０、ＭＮ１５０  ＮＭＯＳトランジスタ
５１  マルチヒット検出器
５２  ＡＮＤ回路
５３、５４  ＯＲ回路
ＭＰ１〜ＭＰ４  ＰＭＯＳトランジスタ
ＭＮ１〜ＭＰ６  ＮＭＯＳトランジスタ
ＭＰ１１、ＭＰ１２  ＰＭＯＳトランジスタ
ＭＮ１１〜ＭＰ１４  ＮＭＯＳトランジスタ
ＭＰ２１、ＭＰ２２  ＰＭＯＳトランジスタ
ＭＮ２１、ＭＮ２２  ＰＭＯＳトランジスタ
【図１】
2011159356.tif 000003
【図２】
2011159356.tif 000004
【図３】
2011159356.tif 000005
【図４】
2011159356.tif 000006
【図５】
2011159356.tif 000007
【図６】
2011159356.tif 000008
【図７】
2011159356.tif 000009
【図８】
2011159356.tif 000010
【図９】
2011159356.tif 000011
【図１０】
2011159356.tif 000012
【図１１】
2011159356.tif 000013
【図１２】
2011159356.tif 000014
【図１３】
2011159356.tif 000015