(57)【要約】【課題】連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とする。【解決手段】ＴＬＢ部２２０に、論理ページアドレスと物理ページアドレスとを対にして複数記憶し、中央処理装置１３０から与えられるアクセス情報と複数の論理ページアドレスの各々との一致を検出し、アクセス情報と一致した論理ページアドレスに対応した物理ページアドレスを出力するとともに、論理ページアドレスと物理ページアドレスの各対がアクセス情報に一致したときに各々一致情報を発生するタグ部３０５、データ部３０１、デコーダ部３０２、ＨＩＴ検出部３０３、エンコーダ部３０４をアドレス変換テーブルとして設け、さらにタグ部３０５から出力される一致情報を基にして中央処理装置１３０からアドレス変換テーブルにアクセス情報が与えられたときに複数対が同時にアクセス情報に一致したことを検出する多重ヒット検出部３０８を設ける。【選択図】　　図２
2004038553.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
第１に識別される複数の情報と、前記第１に識別される複数の情報のそれぞれに対応する第２に識別される複数の情報とを対にして記憶し、前記中央処理装置から与えられるアクセス情報と前記第１に識別される複数の情報の各々との一致を検出し、前記アクセス情報と一致した前記第１に識別される情報に対応した前記第２に識別される情報を出力するとともに、複数対の情報の各々が前記アクセス情報に一致したときに各々一致情報を発生する連想記憶手段と、
前記連想記憶手段から出力される一致情報を基にして前記中央処理装置から前記連想記憶手段に前記アクセス情報が与えられたときに複数対の情報が同時に前記アクセス情報に一致したことをアナログ的に検出する複数対一致検出手段とを備えたデータ処理装置。
【請求項２】
前記複数対一致検出手段は、前記連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するアナログ値変換手段と、一対の情報のみが一致したときのアナログ値を基準値として、前記アナログ値と前記基準値とを比較する比較手段とを有し、前記アナログ値が前記基準値よりも所定値以上高い値をとった場合に複数対一致検出信号を出力することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記複数の情報対が各々前記アクセス情報に一致した旨を示す前記一致情報を保持する一致情報保持手段をそれぞれの情報対が備えることを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
情報対無効化要求が与えられたときに、前記一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する情報対無効化手段をそれぞれの情報対が備えることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記情報対のそれぞれの一致情報保持手段はさらに、一致情報設定要求に応じて前記一致情報を任意の値に設定できることを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記情報対無効化手段は、前記複数対一致検出信号に応じて、前記一致情報保持手段が有効である情報対を無効化することを特徴とする請求項４または５に記載のデータ処理装置。
【請求項７】
前記連想記憶手段がアドレス変換バッファであり、前記第１に識別される情報が論理ページアドレスであり、前記第２に識別される情報が物理ページアドレスであることを特徴とする請求項１，２，３，４，５または６に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体集積回路の特に連想記憶を有するデータ処理装置に関するものである。
【０００２】
【従来の技術】
近年、コンピュータ技術の民生製品への適応が急速に進み、従来高級なワークステーションやパーソナルコンピュータでのみ使用されていた仮想メモリ管理機構が、セットトップボックス等の民生機器のオペレーション・システム（ＯＳ）に採用され始めている。
【０００３】
仮想メモリ管理を行うためには、データ処理装置はアドレス変換機構をサポートする必要がある。アドレス変換は、ＯＳが外部メモリ上に用意する変換テーブルより該当論理アドレスに対応する物理アドレスを検索する必要があり、処理性能劣化の大きな要因となっている。
【０００４】
この機構を高速に実現するために、頻繁に使用する論理アドレスと物理アドレスの対をキャッシュするアドレス変換バッファ（Ｔｒａｎｓｌａｔｉｏｎ　Ｌｏｏｋ−ａｓｉｄｅ　Ｂｕｆｆｅｒ：以降ＴＬＢと記す）を内蔵するものが多く見られる。しかしＴＬＢを内蔵してもＴＬＢのミスによる変換テーブルの再設定による性能劣化は非常に大きなものであるため、ＴＬＢのヒット率をより向上させるためにフル・アソシアティブ構成が多く採用されている。
【０００５】
なお、フル・アソシアティブ方式というのは、仮想記憶システムにおいて、物理メモリの任意の場所にページを配置する方式である。これに対してダイレクト・マップ方式というのは、あるブロックを記憶階層の上位レベルに配置する場所が特定の１カ所に決まっている方式をいう。セット・アソシアティブというのは、ダイレクト・マップ方式とフル・アソシアティブ方式の中間の方式であり、セット・アソシアティブのキャッシュというのは、各ブロックを配置可能な場所がある決まった数（少なくとも２つ）存在するものである。
【０００６】
図１２は従来のデータ処理装置の構成を示すブロック図である。図１２において、９１０はメモリ管理装置（以降、ＭＭＵと記す）、１３０は中央処理装置（以降ＣＰＵと記す）、１２０はキャッシュメモリ、１４０は外部ネットワーク及びメモリ、１３１は命令やデータの授受を行う外部バス、１３３はＣＰＵ１３０に付随する周辺回路とのデータの授受を行うＩＯバス、１３２はアドレス変換要求信号（ｔｒｓｒｑ）、１１４はアドレス変換が成功したか否かを示すヒット信号（ｈｉｔ）、１１５はアドレス変換後のアドレスである。
【０００７】
図１１は従来のデータ処理装置の３２ビットアドレスの構成を示す模式図である。図１１において、アドレス空間は４ＫＢのページに分割され、ページの番号である２０ビットの論理ページ番号（ＶＰＮ）と１２ビットのページ内オフセットとで構成される。物理アドレスも同様に２０ビットの物理ページ番号（ＰＰＮ）と１２ビットのページ内オフセットとで構成される。なお、論理アドレス及び物理アドレスにおけるページ内オフセットは同一の値となる。
【０００８】
図８は後述するＴＬＢタグ部３０５の動作を示す説明図である。同図において、ＶＰＮは外部より入力される論理ページ番号、ｖａｌｉｄはエントリが有効であることを示す信号であり、値１は有効、値０は無効を意味する。タグはアドレス変換テーブルに格納されている論理ページ番号である。ｍａｔｃｈは一致情報であり、値１は一致、値０は不一致を意味する。Ｘ，Ｙは各々論理ページ番号に相当する任意の数値である。
【０００９】
図１３は従来のデータ処理装置におけるＭＭＵ９１０の構成を示すブロック図である。図１３において、９２０は論理アドレスを物理アドレスに変換するアドレス変換テーブルのコピーを格納するアドレス変換バッファ部（以降、ＴＬＢ部と記す）、９３０はＴＬＢ部９２０の制御を行うＴＬＢ制御部、２４０、２４１はセレクタである。１３３はＩＯバスであり、１３３ａはアドレスバス、１３３ｂはデータバス、１３３ｃはＩＯバス制御信号である。
【００１０】
セレクタ２４０は、ＩＯ−ＤＡＴＡ１３３ｂ、または論理アドレスｖａ１３１ａのいずれかをアドレス変換要求（ｔｒｓｒｑ）１３２に従い選択する。セレクタ２４１は論理アドレスｖａに含まれる論理ページ番号またはＴＬＢ部９２０から出力されるデータ出力ｄｏｕｔ２２１に含まれる物理ページ番号のどちらか一方をアドレス変換要求信号１３２に従い選択する。
【００１１】
図１４は従来のデータ処理装置におけるＴＬＢ部９２０の構成を示すブロック図である。図１４において、３１１は物理ページ番号とページ属性を格納するＴＬＢデータ部である。３１５は論理ページ番号を格納するタグメモリ３１５ｃとエントリの有効無効を示すｖａｒｉｄビット３１５ｂと比較器３１５ａをもち、タグメモリ３１５ｃの内容と、ｔｉｎ２２６から入力される論理ページ番号との比較を行うＴＬＢタグ部である。３１２は外部より入力されるｉｎｄｘ２２３をデコードするデコーダ３１２ａとＴＬＢタグ部３１５から出される比較結果であるｍａｔｃｈ信号３１５ｄよりワードライン３１２ｃ及び３１２ｄを駆動しＴＬＢタグ部３１５とＴＬＢデータ部３１１を活性化させるデコーダ部である。３０４は各々のＴＬＢタグ部３１５〜３８５から出されるｍａｔｃｈ信号３１５ｄ〜３８５ｄより一致したエントリ番号をエンコードするエンコーダ部である。３０３はｍａｔｃｈ信号３１５ｄ〜３８５ｄより一致したエントリの存在の有無を検出するＨＩＴ検出部である。
【００１２】
図１０はＴＬＢ部９２０に与えられる制御信号と動作を示す説明図である。なお、各記号の後ろには、図１４で付されている番号を括弧書きしている。同図において、ｔｉｎ（２２６）はＴＬＢタグ部３０５に入力される仮想ページ番号、ｉｎｄｘ（２２３）はＴＬＢ部９２０のエントリを示すインデックス、ｄｉｎ（２２２）はＴＬＢデータ部３０１に入力されるデータであり、物理ページ番号とページ属性で構成される。ｈｉｔ（１１４）はヒット信号である。ｔｏｕｔ（２２５）、ｄｏｕｔ（２２１）はＴＬＢタグ部３０５及びＴＬＢデータ部３０１の出力データであり、フォーマットはそれぞれｔｉｎ（２２６）、ｄｉｎ（２２２）に対応している。ｈｐ（２２４）はＴＬＢ部９２０の検索の際にヒットしたエントリを示すポインタであり、非検索時（ｍｏｄｅ＝０）の時はｉｎｄｘ（２２３）の値と一致する。ｍｏｄｅ（２３１）はＴＬＢ部９２０の動作モードを示す信号であり、“１”の場合はＴＬＢ検索及び変換を行い、“０”の時は検索及び変換を行わない。ｔｎｃｓ（２３２）及びｄｎｃｓ（２３３）はそれぞれＴＬＢタグ部３０５、ＴＬＢデータ部３０１の選択信号であり“０”の場合は選択、“１”の場合は非選択である。ｒ−ｎｗ（２３４）はＴＬＢタグ部３０５、ＴＬＢデータ部３０１へのアクセス状態を示す信号であり、“１”の場合は読み出し、“０”の場合は書き込み要求である。
【００１３】
従来のＴＬＢのアドレス変換動作を図８、図１０及び図１１〜図１４を用いて説明する。
【００１４】
ＣＰＵ１３０は命令フェッチやデータの読み書きの際、該当アドレスを外部バス１３１ａを通じてＭＭＵ９１０へ送る。この際、ＣＰＵ１３０は必要に応じてアドレス変換要求（ｔｒｓｒｑ）１３２をＭＭＵ９１０に送る。アドレス変換要求１３２に応じてＴＬＢ制御部９３０はＴＬＢ部９２０に対し、アドレス変換を行うように指示を出す（ｍｏｄｅ＝１、ｔｎｃｓ＝０、ｄｎｃｓ＝０、ｒ−ｎｗ＝１）。これに応じて、ＴＬＢ部９２０は、ｔｉｎ２２６より入力される論理ページ番号（ＶＰＮ）と、ＴＬＢタグ部３０５の各エントリに格納されたタグとの比較を図８の表に従い行う。
【００１５】
ａ）ＴＬＢヒット
比較の結果、いずれか一つのエントリが一致（ＶＰＮ＝タグ）かつエントリが有効（ｖａｌｉｄ＝１）であった場合、ｍａｔｃｈ＝１となり、ｄＷＬ３１２ｃ〜３８２ｃの何れか一つが活性化され、ｄｏｕｔ２２１からは一致したエントリに格納された物理ページ番号及びページ属性が出力される。同時に、エンコーダ部３０４は、ヒットしたエントリの番号をエンコードし、ｈｐ２２４へ出力する。セレクタ２４１はアドレス変換要求（ｔｒｓｒｑ）１３２に応じて、ｄｏｕｔ２２１に含まれる前記物理ページ番号と論理アドレスｖａ１３１ａに含まれるページオフセットとを結合し、物理アドレスとしてｐａ１１５より出力し、キャッシュメモリ１２０へ送る。このとき、ｍａｔｃｈ信号３１５ｄ〜３８５ｄの論理和であるヒット信号１１４が同時に活性化（＝１）される。
【００１６】
ｂ）ＴＬＢミス
一方、全てのエントリが一致しなかった場合（ＶＰＮ！＝タグ）、または一致したがエントリが無効（ＶＰＮ＝タグ、ｖａｌｉｄ＝０）であった場合、ｍａｔｃｈ＝０となり、ヒット信号１１４が不活性化（＝０）される。その結果、ｄＷＬ３１２ｃ〜３８２ｃも全て不活性化され、ｄｏｕｔ２２１の出力は無効となり、キャッシュメモリ１２０へのアクセスは中止される。
【００１７】
ｃ）ＴＬＢ多重ヒット
比較の結果、複数のエントリが同時に一致（ＶＰＮ＝タグ）かつエントリが有効（ｖａｌｉｄ＝１）であった場合（以下、多重ヒットと記す）、複数のｄＷＬ３１２ｃ〜３８２ｃが同時に活性化され、ｄｏｕｔ２２１からは不定値が出力される。ｍａｔｃｈ信号３１５ｄ〜３８５ｄの論理和であるｈｉｔ信号１１４が同時に活性化（＝１）され、あたかもＴＬＢヒットしたかのように誤った物理アドレスでキャッシュメモリ１２０へアクセスが行われる。
【００１８】
【発明が解決しようとする課題】
ＯＳの一部であるメモリ管理プログラムの開発時、アドレス変換テーブルに矛盾があると、ＴＬＢエントリが多重ヒットしてしまうことがある。従来のフル・アソシアティブＴＬＢではｃ）で示したようにヒット情報を各エントリのヒット信号の論理和より得ているため、複数エントリが同時にヒットしたか否かは判定ができない。また、多重ヒットしたか否かを判定するには図１５〜図１７に示すような回路構成が考えられるが、図１５のような４エントリ構成においても多重ヒットを検出するために、３つの全加算器１１０１〜１１０３とＯＲ回路１１０４が必要となり、論理段数で４段となる。図１６は、全加算器の真理値表であり、図１７は図１５の回路の真理値表である。
【００１９】
一般的に、ＴＬＢミスによる処理負担は非常に大きなものになるため、３２エントリ以上の構成が多く使われており、図１５の構成では、全加算器が３１個とＯＲ回路の構成となり、論理段数で３２段が必要となるため、組み合わせ論理で実現するのは速度的及び面積的に実装するのは困難であり、一般的にＴＬＢにおける多重ヒット検出は行われていない。
【００２０】
しかし、多重ヒットが発生した場合は、前記のように誤った物理アドレスでメモリアクセスが行われ、ＣＰＵはプログラムシーケンスからは容易に想像できない挙動を示すため、原因の解析は非常に困難なものになり、多大なデバッグ工数が必要となっている。
【００２１】
また、近年では機器のネットワーク化により、完成後のプログラムも各種サービスの変更などに対応するため、ネットワークからのダウンロードによるプログラム変更が一般的になって来ているが、コンピュータウィルスなどの悪質なプログラムによりプログラムが変更されＴＬＢ内容が多重ヒット状態になった場合、最悪システムが暴走してしまうという問題を有していた。
【００２２】
本発明は以上の問題点を考慮されたものであって、その目的は連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とするデータ処理装置を提供することである。
【００２３】
本発明の他の目的は、矛盾した連想記憶手段のエントリを効率的に無効化し、システムの暴走を防止可能なデータ処理装置を提供することである。
【００２４】
【課題を解決するための手段】
この課題を解決するために、本発明の請求項１に記載のデータ処理装置は、中央処理装置と、
第１に識別される複数の情報と、第１に識別される複数の情報のそれぞれに対応する第２に識別される複数の情報とを対にして記憶し、中央処理装置から与えられるアクセス情報と第１に識別される複数の情報の各々との一致を検出し、アクセス情報と一致した第１に識別される情報に対応した第２に識別される情報を出力するとともに、複数対の情報の各々がアクセス情報に一致したときに各々一致情報を発生する連想記憶手段と、
連想記憶手段から出力される一致情報を基にして中央処理装置から連想記憶手段にアクセス情報が与えられたときに複数対の情報が同時にアクセス情報に一致したことをアナログ的に検出する複数対一致検出手段とを備えている。
【００２５】
この構成によれば、複数対一致検出手段により複数対の情報が同時にアクセス情報に一致したことを検出することができ、連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とする。
【００２６】
本発明の請求項２に記載のデータ処理装置は、請求項１に記載のデータ処理装置において、複数対一致検出手段は、連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するアナログ値変換手段と、一対の情報のみが一致したときのアナログ値を基準値として、アナログ値と基準値とを比較する比較手段とを有し、アナログ値が基準値よりも所定値以上高い値をとった場合に複数対一致検出信号を出力することを特徴とする。
【００２７】
この構成によれば、アナログ変換手段によって、連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するので、比較手段によってアナログ値のレベルを基準値と比較することで、複数対の情報が同時にアクセス情報に一致したことを容易に検出することができる。
【００２８】
本発明の請求項３に記載のデータ処理装置は、請求項１または２に記載のデータ処理装置において、複数の情報対が各々アクセス情報に一致した旨を示す一致情報を保持する一致情報保持手段をそれぞれの情報対が備えることを特徴とする。
【００２９】
この構成によれば、一致情報保持手段によって複数の情報対が各々アクセス情報に一致した旨を示す一致情報を保持するので、どのエントリが一致したかの履歴を容易にたどることができ、ソフトウエア開発時の解析工数が削減できる。
【００３０】
本発明の請求項４に記載のデータ処理装置は、請求項３に記載のデータ処理装置において、情報対無効化要求が与えられたときに、一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する情報対無効化手段をそれぞれの情報対が備えることを特徴とする。
【００３１】
この構成によれば、情報対無効化手段によって情報対無効化要求が与えられたときに、一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する。複数のエントリが同時に一致する状態は、本来あってはならないものであり、ＯＳなどによりＴＬＢのエントリを正常な状態に戻す必要がある。複数エントリの同時ヒットを検出した際、一致したエントリのみを一括して無効化できるので、ＴＬＢエントリを正常化する際の処理ステップが軽減される。
【００３２】
本発明の請求項５に記載のデータ処理装置は、請求項４に記載のデータ処理装置において、情報対のそれぞれの一致情報保持手段はさらに、一致情報設定要求に応じて一致情報を任意の値に設定できることを特徴とする。
【００３３】
この構成によれば、一致情報保持手段が、一致情報設定要求に応じて一致情報を任意の値に設定できるので、任意のエントリの一致情報保持手段に“１”を書き込み、情報対無効化要求を“１”にすることで、ＴＬＢエントリを部分無効化する際の処理ステップが軽減される。従来では、
ＴＬＢのタグエントリデータの用意（バリッドビット＝０）
ＴＬＢのタグへ書き込み×必要なエントリ数
であったのが、１ステップになる。
【００３４】
本発明の請求項６に記載のデータ処理装置は、請求項４または５に記載のデータ処理装置において、情報対無効化手段は、複数対一致検出信号に応じて、一致情報保持手段が有効である情報対を無効化することを特徴とする。
【００３５】
この構成によれば、複数対の情報が同時にアクセス情報に一致したときに該当する情報対に対する情報対無効化要求を発生することで、矛盾した連想記憶手段のエントリを効率的に無効化し、システムの暴走を防止可能である。
【００３６】
本発明の請求項７に記載のデータ処理装置は、請求項１，２，３，４，５または６に記載のデータ処理装置において、連想記憶手段がアドレス変換テーブルであり、第１に識別される情報が論理ページアドレスであり、第２に識別される情報が物理ページアドレスであることを特徴とする。
【００３７】
この構成によれば、請求項１，２，３，４，５または６に記載のデータ処理装置と同様の作用を有する。
【００３８】
【発明の実施の形態】
以下、本発明の実施の形態について、図１〜図１１を用いて説明する。
【００３９】
（実施の形態）
本実施の形態は、論理空間及び物理空間は３２ビットのアドレス空間、ＴＬＢの構成は８エントリ・フル・アソシアティブ、ページサイズは４ＫＢである。
【００４０】
図１は本実施の形態のデータ処理装置の構成を示すブロック図である。図１において、１１０はＭＭＵ、１３０はＣＰＵ（中央処理装置）、１２０はキャッシュメモリ、１４０は外部ネットワーク及びメモリ、１３１は命令やデータの授受を行う外部バス、１３３はＣＰＵに付随する周辺回路とのデータの授受を行うＩＯバス、１３２はアドレス変換要求信号（ｔｒｓｒｑ）、１１４はアドレス変換が成功したか否かを示すヒット信号（ｈｉｔ）、１１５はアドレス変換後の物理アドレス、１１６は複数のエントリが同時にヒットしたことを示す多重ヒット検出信号（ｍｈｉｔ）である。
【００４１】
図１１は本実施の形態のデータ処理装置の３２ビットアドレスの構成を示す図であり、従来例で説明したのと同じである。
【００４２】
図８は本実施の形態のデータ処理装置のＴＬＢタグ部３０５の動作を示す図であり、従来例で説明したのと同じである。
【００４３】
図２は本実施の形態のデータ処理装置におけるＭＭＵ１１０の構成を示すブロック図である。図２において、２２０はＴＬＢ部（連想記憶手段）、２３０はＴＬＢ部２２０の制御を行うＴＬＢ制御部、２４０、２４１はセレクタである。１３３はＩＯバスであり、１３３ａはアドレスバス、１３３ｂはデータバス、１３３ｃはＩＯバス制御信号である。
【００４４】
セレクタ２４０はＩＯ−ＤＡＴＡ１３３ｂ、または論理アドレスｖａ１３１ａのいずれかをアドレス変換要求１３２（ｔｒｓｒｑ）に従い選択する。セレクタ２４１は論理アドレスｖａに含まれる論理ページ番号またはＴＬＢ部２２０から出力されるデータ出力ｄｏｕｔ２２１に含まれる物理ページ番号のどちらか一方をアドレス変換要求信号１３２に従い選択する。
【００４５】
２１１はパラレルシリアル変換部、２１２はシリアルパラレル変換部である。パラレルシリアル変換部２１１はＩＯ−ＤＡＴＡ１３３ｂからのデータをシリアル変換しＴＬＢ部２２０のヒット情報入力２２８へ出力する。シリアルパラレル変換部２１２はＴＬＢ部２２０より出力されるヒット情報出力２２７をパラレル変換し、ＩＯ−ＤＡＴＡ１３３ｂへ出力する。
【００４６】
３０６は後述する情報対無効化手段としてのエントリ無効化部をまとめたブロックである。３０７は後述する一致情報保持手段としての一致情報保持部をまとめたブロックである。３０８は後述する複数対一致検出手段としての多重ヒット検出部である。
【００４７】
図３は本実施の形態のデータ処理装置におけるＴＬＢ部２２０の構成を示すブロック図である。図３において、３１０から３８０はＴＬＢ部の各エントリであり、それぞれのエントリは同じ構造をもっている。３１１は物理ページ番号とページ属性を格納するＴＬＢデータ部である。
【００４８】
３１５は論理ページ番号を格納するタグメモリ３１５ｃとエントリの有効無効を示すｖａｌｉｄビット３１５ｂと比較器３１５ａとをもち、タグメモリ３１５ｃの内容と、ｔｉｎ２２６から入力される論理ページ番号との比較を行うＴＬＢタグ部である。
【００４９】
３１２は外部より入力されるｉｎｄｘ２２３をデコードするデコーダ３１２ａと、ＴＬＢタグ部３１５から出される比較結果であるｍａｔｃｈ信号３１５ｄよりワードライン３１２ｃ及び３１２ｄを駆動しＴＬＢタグ部３１５とＴＬＢデータ部３１１を活性化させるデコーダ部である。
【００５０】
３０４は各々のＴＬＢタグ部３１５〜３８５から出されるｍａｔｃｈ信号３１５ｄ〜３８５ｄより一致したエントリ番号をエンコードするエンコーダ部である。
【００５１】
３０３はｍａｔｃｈ信号３１５ｄ〜３８５ｄより一致したエントリの存在の有無を検出するＨＩＴ検出部である。
【００５２】
３１７は、シフト要求信号２２９が有効である場合ヒット情報入力２２８を保持し、同信号が無効かつアドレス変換要求１３２が有効である時にｍａｔｃｈ信号３１５ｄの内容を検索結果履歴として保持し、保持内容を同エントリ無効化部及び次エントリのシフト入力へ接続している一致情報保持部である。
【００５３】
３９１はＤフリップフロップ、３９２はＯＲ回路である。
【００５４】
３１６はＴＬＢタグの全エントリを無効化する一括無効化（要求）信号（ｖｒｓｔ）２３５が有効である場合もしくは、Ｄフリップフロップ３９１で保持した多重ヒット検出信号またはエントリ無効化信号（ｅｖｓｔ）３９０とのいずれか一方が有効、かつ一致情報保持部３１７が有効である場合に、ｖａｌｉｄビット３１５ｂをゼロクリアしエントリを無効化するエントリ無効化部である。ｖｒｓｔが“１”の場合、ＴＬＢタグの全エントリのｖａｌｉｄビットがクリアされ、無効化される。
【００５５】
３０８は、ソース側を電源にゲートを接地にドレインを基準信号３０８ｆにそれぞれ接続されプルアップ抵抗として機能するＰ型ＭＯＳトランジスタ３０８ｃと、ソース側を接地にゲートを電源にドレインを基準信号３０８ｆにそれぞれ接続されプルダウン抵抗として機能するＮ型ＭＯＳトランジスタ３０８ｂと、ソース側を電源にゲートを接地にドレインを検出信号３０８ｅにそれぞれ接続されプルアップ抵抗として機能するＰ型ＭＯＳトランジスタ３０８ｄと、ソース側を接地に、ドレインを検出信号３０８ｅに、ゲートをｍａｔｃｈ信号３ｎ５ｄ（ｎ＝１〜８）にそれぞれ接続され、ｍａｔｃｈ信号３ｎ５ｄ（ｎ＝１〜８）の状態に応じてプルダウン抵抗として機能するＮ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）と、一方の入力に基準信号３０８ｆ、他方に検出信号３０８ｅが接続される比較手段としてのセンスアンプ３０８ａとからなり、基準信号３０８ｆと検出信号３０８ｅの電位の差異を検出する多重ヒット検出部である。上記のＮ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）とＰ型ＭＯＳトランジスタ３０８ｄとがアナログ値変換手段を構成している。
【００５６】
一致情報保持部３ｎ７（ｎ＝１〜８）は、一致情報保持部３１７の出力が一致情報保持部３２７のシフト入力、同出力が一致情報保持部３３７のシフト入力へと順次つながり、シフトレジスタを形成し、一致情報保持部３１７のシフト入力はヒット情報入力２２８、一致情報保持部３８７の出力はヒット情報出力２２７に接続される。
【００５７】
基準信号３０８ｆの電位Ｖｒｅｆは、図５の等価回路に示すように、Ｐ型ＭＯＳトランジスタ３０８ｃのオン抵抗値ＲｐｕｐとＮ型ＭＯＳトランジスタ３０８ｂのオン抵抗値Ｒｒｅｆで抵抗分圧されている。
【００５８】
検出信号３０８ｅの電位Ｖｔｇｔは、Ｐ型ＭＯＳトランジスタ３０８ｄのオン抵抗値ＲｐｕｐとＮ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）のオン抵抗値Ｒｔｇｔの合計で抵抗分圧されている。
【００５９】
このとき、Ｎ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）のオン抵抗値（Ｒｔｇｔ）と、Ｎ型ＭＯＳトランジスタ３０８ｂのオン抵抗値（Ｒｒｅｆ）とは、
Ｒｔｇｔ／２　＜　Ｒｒｅｆ　＜　Ｒｔｇｔ　　　　　　　　　　　　　　　式（１）
を満たす。
【００６０】
図９は本実施の形態のＴＬＢ部２２０に与えられる制御信号と動作を示す説明図である。各記号の後ろには、図３で付されている番号を括弧書きしている。同図において、図９において、ｔｉｎ（２２６）はＴＬＢタグ部３０５に入力される仮想ページ番号、ｉｎｄｘ（２２３）はＴＬＢ部２２０のエントリを示すインデックス、ｄｉｎ（２２２）はＴＬＢデータ部３０１に入力されるデータであり、物理ページ番号とページ属性で構成される。ｈｉｔ（１１４）はヒット信号である。ｍｈｉｔ（１１６）は多重ヒット信号である。ｔｏｕｔ（２２５）、ｄｏｕｔ（２２１）はＴＬＢタグ部３０５及びＴＬＢデータ部３０１の出力データであり、フォーマットはそれぞれｔｉｎ（２２６）、ｄｉｎ（２２２）に対応している。
【００６１】
ｈｐ（２２４）はＴＬＢ部２２０の検索の際にヒットしたエントリを示すポインタであり、非検索時（ｍｏｄｅ＝０）の時はｉｎｄｘ（２２３）の値と一致する。ｍｏｄｅ（２３１）はＴＬＢ部２２０の動作モードを示す信号であり、“１”の場合はＴＬＢ検索及び変換を行い、“０”の時は検索及び変換を行わない。ｔｎｃｓ（２３２）及びｄｎｃｓ（２３３）はそれぞれＴＬＢタグ部３０５、ＴＬＢデータ部３０１の選択信号であり“０”の場合は選択、“１”の場合は非選択である。ｒ−ｎｗ（２３４）はＴＬＢタグ部３０５、ＴＬＢデータ部３０１へのアクセス状態を示す信号であり、“１”の場合は読み出し、“０”の場合は書き込み要求である。
【００６２】
本実施の形態のＴＬＢ部のアドレス変換動作を図１〜図８、図９及び図１１を用いて説明する。図４には、電位Ｖｔｇｔと、センスアンプ３０８ａの出力Ｖｓａと、基準電位Ｖｒｅｆとが示されている。
【００６３】
ＣＰＵ１３０は命令フェッチやデータの読み書きの際、該当論理アドレスを外部バス１３１ａを通じてＭＭＵ１１０へ送る。この際、ＣＰＵ１３０は必要に応じてアドレス変換要求１３２をＭＭＵ１１０に送る。アドレス変換要求１３２に応じてＴＬＢ制御部２３０はＴＬＢ部２２０に対し、アドレス変換を行うように指示を出す（ｍｏｄｅ＝１、ｔｎｃｓ＝０、ｄｎｃｓ＝０、ｒ−ｎｗ＝１）。これに応じてＴＬＢ部２２０は、ｔｉｎ２２６より入力される論理ページ番号（ＶＰＮ）と、ＴＬＢタグ部３０５の各エントリに格納されたタグとの比較を図８の表に従い行う。
【００６４】
ａ）ＴＬＢヒット
比較の結果、いずれか一つのエントリが一致（ＶＰＮ＝タグ）かつエントリが有効（ｖａｌｉｄ＝１）であった場合、ｍａｔｃｈ＝１となり、ｄＷＬ３１２ｃ〜３８２ｃの何れか一つが活性化され、ｄｏｕｔ２２１からは一致したエントリに格納された物理ページ番号及びページ属性が出力される。同時に、エンコーダ部３０４はヒットしたエントリの番号をエンコードし、ｈｐ２２４へ出力する。セレクタ２４１はアドレス変換要求（ｔｒｓｒｑ）１３２に応じて、ｄｏｕｔ２２１に含まれる前記物理ページ番号と論理アドレスｖａ１３１ａに含まれるページオフセットとを結合し、物理アドレスとしてｐａ１１５より出力し、キャッシュメモリ１２０へ送る。このとき、ｍａｔｃｈ信号３１５ｄ〜３８５ｄの論理和であるヒット信号１１４が同時に活性化（＝１）される。
【００６５】
このとき、検出信号３０８ｅは、Ｎ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）のうち何れか１つが活性化されるので、検出信号３０８ｅの電位は図６に示す等価回路に従い、電源電圧ＶＤＤを抵抗分圧した値になり、式１より基準電位３０８ｆの電位との関係は、図４のＴＬＢヒット区間に示すように、
Ｖｒｅｆ　＜　Ｖｔｇｔ
が満たされ、結果、センスアンプ３０８ａはＬＯＷを出力し、ｍｈｉｔ＝０となる。
【００６６】
また、各エントリの検索結果履歴として一致情報保持部３ｎ７（ｎ＝１〜８）の何れか１つには１、その他には０が保持される。
【００６７】
ｂ）ＴＬＢミス
一方、全てのエントリが一致しなかった場合（ＶＰＮ！＝タグ）、または一致したがエントリが無効（ＶＰＮ＝タグ、ｖａｌｉｄ＝０）であった場合、ｍａｔｃｈ＝０となり、ヒット信号１１４が不活性化（＝０）され、これによってｄＷＬ３１２ｃ〜３８２ｃも全て不活性化され、ｄｏｕｔ２２１の出力は無効となる。
【００６８】
このとき、検出信号３０８ｅはＮ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）は全て活性化されない。検出信号３０８ｅと基準電位３０８ｆの電位は、式（１）より、
Ｖｒｅｆ　＜　Ｖｔｇｔ＝ＶＤＤ
が満たされ（図４のＴＬＢミス区間参照）、その結果、センスアンプ３０８ａはＬＯＷを出力し、ｍｈｉｔ＝０となる。
【００６９】
また、各エントリの検索結果履歴として一致情報保持部３ｎ７（ｎ＝１〜８）には全て０が保持される。
【００７０】
ＣＰＵはヒット信号１１４よりＴＬＢミスを検出し、ＴＬＢ例外を発生し、ＴＬＢ管理プログラムへ処理を移行する。
【００７１】
ｃ）ＴＬＢ多重ヒット
比較の結果、複数のエントリが同時に一致（ＶＰＮ＝タグ）かつエントリが有効（ｖａｌｉｄ＝１）であった場合、複数のｄＷＬ３１２ｃ〜３８２ｃが同時に活性化され、ｄｏｕｔ２２１からは不定値が出力される。ｍａｔｃｈ信号３１５ｄ〜３８５ｄの論理和であるヒット信号１１４が同時に活性化（＝１）される。
【００７２】
このとき、検出信号３０８ｅはＮ型ＭＯＳトランジスタ３ｎ８（ｎ＝１〜８）のうち少なくとも２つが活性化される。検出信号３０８ｅの電位は図７に示す等価回路に従い、電源電圧ＶＤＤを抵抗分圧した値になり、式（１）より基準電位３０８ｆの電位との関係は、
Ｖｔｇｔ　＜　Ｖｒｅｆ
となり（図４のＴＬＢ多重ヒット区間参照）、その結果、センスアンプ３０８ａはＨＩＧＨを出力し、ｍｈｉｔ＝１となる。
【００７３】
また、各エントリの検索結果履歴として一致情報保持部３ｎ７（ｎ＝１〜８）の少なくとも２つには１、その他には０が保持される。
【００７４】
さらにこのとき、Ｄフリップフロップ３９１には１が保持され、ＯＲ回路３９２の出力が有効となり、先の検索で一致した、一致情報保持部３ｎ７（ｎ＝１〜８）の少なくとも２つのエントリに対応するＴＬＢタグ部３０５のｖａｌｉｄビット３ｎ５ｂ（ｎ＝１〜８）がゼロクリアされ、該当エントリの無効化が行われる。
【００７５】
ＣＰＵ１３０は多重ヒット検出信号１１６よりＴＬＢ多重ヒットを検出し、ＴＬＢ例外を発生し、ＴＬＢ管理プログラムへ処理を移行する。
【００７６】
ｄ）シフト動作
ＣＰＵ１３０から一致情報保持部３ｎ７（ｎ＝１〜８）への書き込み要求に応じてＴＬＢ制御部２３０は、シフト要求２２９を有効、ｍｏｄｅ＝０をＴＬＢ部２２０、シリアルパラレル変換部２１２、パラレルシリアル変換部２１１に与え、
パラレルシリアル変換部２１１はＩＯ−ＤＡＴＡ１３３ｂ上のデータをシリアル変換してヒット情報入力２２８へ出力する。
【００７７】
ＴＬＢ部２２０は、一致情報保持部３ｎ７（ｎ＝１〜８）をシフト動作させ、ヒット情報入力２２８を順次シフトインすると同時に、一致情報保持部３ｎ７（ｎ＝１〜８）に保持していた内容をヒット情報出力２２７よりシフトアウトする。
【００７８】
シリアルパラレル変換部２１２はＴＬＢ部２２０から出力されるヒット情報出力２２７をシリアルパラレル変換してＩＯ−ＤＡＴＡ１３３ｂへ出力する。
【００７９】
ここで、一致情報保持部のシフト動作の意味について説明する。上記したように、どのエントリが一致したかの履歴をたどるときに、ＴＬＢの内部情報を容易にたどる必要がある。その１手法として、上記では、一致情報保持部をシフトレジスタ構成にして、シフト動作で一致情報を取り出すようにしている。
【００８０】
ｅ）ＴＬＢの特定エントリの無効化
ＣＰＵ１３０はｄ）の動作により一致情報保持部３ｎ７（ｎ＝１〜８）のうち無効化したいエントリを有効値、無効化したくないエントリに無効値をセットする。さらに、ＣＰＵ１３０からのＴＬＢの特定エントリの無効化要求に応じてＴＬＢ制御部２３０は、エントリ無効化要求（ｅｖｓｔ）３９０を有効にする。これによって、ＯＲ回路３９２の出力が有効となり、一致情報保持部３ｎ７（ｎ＝１〜８）の値が有効となっているエントリに対応するＴＬＢタグ部のｖａｌｉｄビット３ｎ５ｂ（ｎ＝１〜８）がゼロクリアされ、特定エントリの無効化が行われる。
【００８１】
以上のように、本実施の形態によれば、本ＴＬＢ部は、ＴＬＢ部に登録されたアドレス変換テーブルの矛盾によるＴＬＢ多重ヒットを、通常ヒットと多重ヒット時の検出信号３０８ｅと基準信号３０８ｆの電位差をセンスアンプ３０８ａで検知し、多重ヒットを検出しＣＰＵ１３０に通知可能となる。ＣＰＵ１３０はこの通知に応じて、ＴＬＢ例外を発生しＴＬＢ管理プログラムへ処理を移行することができ、適切な処理よりシステムの暴走を未然に防ぐことが可能となる。
【００８２】
さらに、多重ヒット検出に連動して、ＴＬＢエントリの矛盾箇所のみを無効化が可能となり、ＴＬＢ管理プログラムによるＴＬＢエントリの矛盾解決に要する処理時間を大幅に削減可能となる。
【００８３】
また、一致情報保持部３ｎ７（ｎ＝１〜８）に格納された内容を、前記ｄ）の動作で読み出し確認することにより、どのエントリで多重ヒットしたかを確認できデバッグの効率化が図れる。
【００８４】
また、ＴＬＢ多重ヒット検出は、エントリ数をｍとすると、センスアンプと、２つのＰ型ＭＯＳトランジスタとｍ＋１個のｎ型ＭＯＳトランジスタで実現可能であるので、図１５〜図１７記載の従来の全加算器を使用したものに比べて、必要となる素子数が少なく面積削減が可能となる。さらにエントリの増加による論理段数の増加が無く、速度オーバーヘッド削減が可能となる。
【００８５】
なお、以上の説明では、ＴＬＢ部を８エントリのフル・アソシアティブ構成である場合を示したが、エントリ数を拡張することで他のエントリ構成でも実現可能である。
【００８６】
また、フル・アソシアティブ構成である場合を示したが、セット・アソシアティブ構成でも同様に実現可能である。
【００８７】
また、命令及びデータ共用ＴＬＢでの例を示したが、命令及びデータを分離した場合も同様に実施可能である。
【００８８】
なお、上記の実施の形態では、第１に識別される情報が論理ページアドレス（論理ページ番号）であり、第２に識別される情報が物理ページアドレス（物理ページ番号）である場合について説明したが、第１に識別される情報としては、上記の他に、プロセスＩＤ、有効（バリッド）ビット等があり、第２に識別される情報には、上記の他に、ページ属性（Ｒｅａｄ／Ｗｒｉｔｅ許可等）、ページの有効か否かを示す情報、ページ書き込みの有無を示す情報等がある。
【００８９】
【発明の効果】
本発明のデータ処理装置は、複数対一致検出手段により複数対の情報が同時にアクセス情報に一致したことを検出することができ、連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とする。
【００９０】
これにより、連想記憶手段の多重ヒットを検出し中央処理装置に通知可能となり、中央処理装置はこの通知に応じて、連想記憶手段の例外を発生し連想記憶手段の管理プログラムへ処理を移行することができ、適切な処理よりシステムの暴走を未然に防ぐことが可能となる。
【００９１】
また、多重ヒット検出に連動して、連想記憶手段のエントリの矛盾箇所のみを無効化が可能となり、連想記憶手段の管理プログラムによる連想記憶手段のエントリの矛盾解決に要する処理時間を大幅に削減可能となる。
【００９２】
さらに、一致情報保持手段に格納された内容を読み出し確認することにより、どのエントリで多重ヒットしたかを確認できデバッグの効率化が図れる。
【図面の簡単な説明】
【図１】本発明の実施の形態のデータ処理装置の構成を示すブロック図である。
【図２】同実施の形態のデータ処理装置におけるＭＭＵの構成を示すブロック図である。
【図３】同実施の形態のデータ処理装置におけるＴＬＢ部の構成を示すブロック図である。
【図４】同実施の形態のＴＬＢ部の複数対一致検出部の動作を示す信号波形図である。
【図５】同実施の形態のＴＬＢ部の複数対一致検出部の基準信号の電位を示す等価回路図である。
【図６】同実施の形態のＴＬＢ部の複数対一致検出部の検出信号のＴＬＢヒット時の電位を示す等価回路図である。
【図７】同実施の形態のＴＬＢ部の複数対一致検出部の検出信号のＴＬＢ多重ヒット時の電位を示す等価回路図である。
【図８】同実施の形態のＴＬＢタグ部の動作を示す説明図である。
【図９】同実施の形態のＴＬＢ部の動作を示す説明図である。
【図１０】従来のＴＬＢ部の動作を示す説明図である。
【図１１】同実施の形態のデータ処理装置の３２ビットアドレスの構成を示す模式図である。
【図１２】従来のデータ処理装置の構成を示すブロック図である。
【図１３】従来のデータ処理装置におけるＭＭＵの構成を示すブロック図である。
【図１４】従来のデータ処理装置におけるＴＬＢ部の構成を示すブロック図である。
【図１５】従来のＴＬＢ部の複数対一致検出回路の構成を示す回路図である。
【図１６】従来のＴＬＢ部の複数対一致検出回路の全加算器の動作を示す説明図である。
【図１７】従来のＴＬＢ部の複数対一致検出回路の動作を示す説明図である。
【符号の説明】
１１０　　ＭＭＵ
１１４　　ヒット信号
１１５　　物理アドレス
１１６　　多重ヒット信号
１２０　　キャッシュメモリ
１３０　　中央処理装置
１３１　　外部バス
１３２　　アドレス変換要求信号
１３３　　ＩＯバス
１４０　　外部ネットワーク及びメモリ
２２０　　ＴＬＢ部
２３０　　ＴＬＢ制御部
【図１】
2004038553.tif 000003
【図２】
2004038553.tif 000004
【図３】
2004038553.tif 000005
【図４】
2004038553.tif 000006
【図５】
2004038553.tif 000007
【図６】
2004038553.tif 000008
【図７】
2004038553.tif 000009
【図８】
2004038553.tif 000010
【図９】
2004038553.tif 000011
【図１０】
2004038553.tif 000012
【図１１】
2004038553.tif 000013
【図１２】
2004038553.tif 000014
【図１３】
2004038553.tif 000015
【図１４】
2004038553.tif 000016
【図１５】
2004038553.tif 000017
【図１６】
2004038553.tif 000018
【図１７】
2004038553.tif 000019