(57)【要約】 【課題】  キャッシュコヒーレンシ操作やＴＬＢページ属性操作などの特定の論理ブロックに対する操作に際して命令コードの消費、無駄な電力消費、並びに上記操作の処理性能低下を抑制する。【解決手段】  データプロセッサは、中央処理装置と前記中央処理装置に接続する複数の論理ブロック(１１０４)を有し、前記中央処理装置は所定の命令コード（ＣＢＰ）のデコード結果に基づいて所定の論理ブロックを制御対象とし、前記所定の論理ブロックは前記所定の命令コードのデコード結果と前記所定の命令コードに付随するアドレス情報の一部（ＴＡＧ［１４：１３］）によって当該論理ブロックの機能を選択する。所定の論理ブロックの操作に対して一対一対応で命令コードを割り当てることを要せず、パイプラインのメモリアクセスステージに至る前に早期に操作対象を判定できる。【選択図】        図１
2006185284.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と前記中央処理装置に接続する複数の論理ブロックを有し、
前記中央処理装置は所定の命令コードのデコード結果に基づいて所定の論理ブロックを制御対象とし、
前記所定の論理ブロックは前記所定の命令コードのデコード結果と前記所定の命令コードに付随するアドレス情報の一部によって当該論理ブロックの機能を選択するデータプロセッサ。
【請求項２】
請求項１において、前記所定の論理ブロックはキャッシュメモリであり、前記選択される機能はキャッシュコヒーレンシ制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードであるデータプロセッサ。
【請求項３】
請求項２において、前記選択される機能はキャッシュコヒーレンシ制御の内容であるデータプロセッサ。
【請求項４】
請求項２において、前記キャッシュコヒーレンシ制御の内容は、パージ、ライトバック及びインバリデートであるデータプロセッサ。
【請求項５】
請求項１において、前記所定の論理ブロックはＴＬＢであり、選択される機能はＴＬＢのページ属性操作制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードであるデータプロセッサ。
【請求項６】
請求項５において、前記選択される機能はページ属性操作制御の内容であるデータプロセッサ。
【請求項７】
請求項６において、前記ページ属性操作制御の内容は、ダーティ化、クリーン化及びインバリデートであるデータプロセッサ。
【請求項８】
中央処理装置と前記中央処理装置に接続する複数の論理ブロックを有し、
前記中央処理装置は所定の命令コードのデコード結果に基づいて所定の論理ブロックを制御対象とし、
前記所定の論理ブロックは前記所定の命令コードに付随するアドレス情報の一部によって当該論理ブロックの機能を選択するデータプロセッサ。
【請求項９】
請求項８において、前記所定の論理ブロックはキャッシュメモリであり、前記選択される機能はキャッシュコヒーレンシ制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードと、キャッシュコヒーレンシ制御の内容であるデータプロセッサ。
【請求項１０】
請求項９において、前記キャッシュコヒーレンシ制御の内容は、パージ、ライトバック及びインバリデートであるデータプロセッサ。
【請求項１１】
請求項８において、前記所定の論理ブロックはＴＬＢであり、選択される機能はＴＬＢのページ属性操作制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードと、ページ属性操作制御の内容であるデータプロセッサ。
【請求項１２】
請求項１１において、前記ページ属性操作制御の内容は、ダーティ化、クリーン化及びインバリデートであるデータプロセッサ。
【請求項１３】
所定の命令コードを用いて活性化される論理ブロックを有し、活性化された前記象論理ブロックの機能を前記命令コードと当該命令コードに付随するアドレスの一部を用いて選択するデータプロセッサ。
【請求項１４】
所定の命令コードを用いて活性化される論理ブロックを有し、活性化された前記論理ブロックの機能を前記命令コードに付随するアドレスの一部を用いて選択するデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサに代表されるデータプロセッサにかかわり、特にキャッシュメモリやアドレス変換バッファ（ＴＬＢ）などの連想動作を行う連想メモリをソフトウェアで制御・管理するシステムに関するものである。
【背景技術】
【０００２】
従来からプロセッサシステムにはメモリアクセス性能を向上するための手段として主記憶に配置された命令やデータの一部を小容量の高速なメモリにコピーして動作するためのキャッシュメモリが搭載されている。キャッシュメモリは主記憶よりも容量が小さいため、主記憶のデータを全て配置することは不可能であるが、必要に応じてハードウェア的に自動的に主記憶との転送がなされるため、通常のプログラムはキャッシュメモリの存在を意識せずに動作が可能である。
【０００３】
キャッシュメモリはラインと呼ばれるデータプロセッサの扱うデータ単位よりも大きな単位で主記憶とのデータ転送を行う。代表的なキャッシュ方式ではラインの状態として、無効、クリーン、ダーティと呼ばれるものが与えられる。「無効」はキャッシュラインに主記憶のデータが割り当てられていない状態、「クリーン」はキャッシュラインにデータが割り当てられていてそのデータが主記憶と一致している状態、「ダーティ」はキャッシュラインに割り当てられたデータがプロセッサによって書き換えが行われているが主記憶は古いデータが残っている状態を示す。
【０００４】
通常のプログラムからはキャッシュメモリの存在を意識する必要は無いと前述したが、データプロセッサのキャッシュメモリを介さずに主記憶の内容を読み書きする場合などには、ソフトウェアからキャッシュメモリの内容を無効化したり強制的にキャッシュメモリへの書き込み内容を主記憶に書き戻す操作が必要となる。これをキャッシュコヒーレンシ制御と呼ぶ。このキャッシュコヒーレンシ制御を行うために、一般的にプロセッサにはキャッシュメモリを操作するための手段が提供されている。
【０００５】
キャッシュコヒーレンシ制御のより具体的な操作内容としては、パージ、インバリデート、ライトバックと呼ばれる複数の方法が定義できる。パージはダーティ・クリーン状態のラインを無効状態に遷移させ、もし元の状態がダーティであればラインのデータを主記憶に書き戻す、インバリデートはパージと同様に無効状態に遷移させるが元の状態がダーティであっても書き戻しを行わない、ライトバックはダーティからクリーンに遷移させ、書き戻しを行う、というように定義できる。
【０００６】
ソフトウェアから行うコヒーレンシ制御では特定のラインを指定して上記の操作を発生させるが、そのラインの指定方法も複数提供される。１つはラインを直接指定する方法、もう１つはキャッシュメモリのヒット判定(連想動作)を行ってヒットした場合にはそのラインが操作対象となる指定方法である。前者を「非連想」、後者を「連想」と呼ぶ。つまり、ここで説明したコヒーレンシ操作としては、連想／非連想×パージ／インバリデート／ライトバックの組み合わせで６通りが考えられることになる。非連想・連想は操作したい領域の大きさ（ライン数）に応じて処理効率を考慮し、領域が大きい場合には非連想、小さい場合には連想といった具合にソフトウェアが使い分けを行う。
【０００７】
ソフトウェアから行うコヒーレンシ制御指定方法はプロセッサによって異なり、命令で指定するものや、特殊なアドレスに特定のデータ書き込むことで行う方法がある。前者としては操作種別毎に１対１の命令コードを割り当てる方法である。後者としては、データ転送命令を利用し、アドレスとデータの組み合わせで操作内容を指定する方法である。この方法は特許文献１に記載がある。
【０００８】
また、これまでキャッシュメモリを対象にコヒーレンシ操作を述べてきたが、連想メモリを使ったＴＬＢに対するページ属性操作にも上記キャッシュコヒーレンシ制御操作と類似の操作がある。ページ属性操作とはＴＬＢによるアドレス変換マップを変更する操作である。
【０００９】
【特許文献１】特開平８−３２０８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の通り、キャッシュメモリやＴＬＢの操作には複数のバリエーションが存在する。先ずソフトウェアから指定する操作の指定方法について検討する。操作種別毎に１対１の命令コードを与える方法ではバリエーションの数だけの命令コードが消費される。これは８ビットや１６ビット固定長命令コードのアーキテクチャで命令コード空間に限りのある場合には適用することが難しい。一方、データ転送命令を利用し、アドレスとデータの組み合わせで操作内容を指定する方法は新たな命令コードを消費しないが、プロセッサパイプラインの早い段階で行われる命令デコード段階では通常のデータ転送かキャッシュ操作なのか処理内容を特定できない。命令実行がパイプラインのメモリアクセスステージに進むまでキャッシュ操作なのか処理内容を特定できない。通常のデータ転送はプロセッサの性能を大きく左右する最優先の処理であるため、キャッシュ操作か否かを判定せずにデータ転送を先行して動作させることになり、結果としてキャッシュメモリなどは無駄な連想動作を行うことになり、消費電力の増加を招く。また、パイプラインの遅い段階でなければ決定しないデータを判別してキャッシュ操作内容を決定する方式ではキャッシュ操作の処理性能が低下するという問題がある。
【００１１】
本発明の目的は、キャッシュコヒーレンシ操作やＴＬＢページ属性操作などの特定の論理ブロックに対する操作に際して命令コードの消費、無駄な電力消費、並びに上記操作の処理性能低下を抑制することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
〔１〕データプロセッサは、中央処理装置と前記中央処理装置に接続する複数の論理ブロックを有し、前記中央処理装置は所定の命令コードのデコード結果に基づいて所定の論理ブロックを制御対象とし、前記所定の論理ブロックは前記所定の命令コードのデコード結果と前記所定の命令コードに付随するアドレス情報の一部によって当該論理ブロックの機能を選択する。
【００１５】
上記より、所定の論理ブロックの操作に対して一対一対応で命令コードを割り当てることを要せず、割り当てる命令コードを少なく保つことが可能である。特にここでは、論理ブロックの機能選択に命令コードのデコード結果と前記所定の命令コードに付随するアドレス情報を用いるから、前記所定論理ブロックの操作に最低２つの命令コードを割り当てることになる。更に、パイプラインのメモリアクセスステージに至る前に早期に操作対象を判定でき、無駄な論理ブロックの動作電力を抑止し、かつ操作に必要とするサイクル数を劣化させないで済む。
【００１６】
本発明の一つの代表的な形態として、前記所定の論理ブロックはキャッシュメモリであり、前記選択される機能はキャッシュコヒーレンシ制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードである。前記選択される機能はキャッシュコヒーレンシ制御の内容である。前記キャッシュコヒーレンシ制御の内容は、例えばパージ、ライトバック及びインバリデートである。
【００１７】
本発明の別の一つの代表的な形態として、前記所定の論理ブロックはＴＬＢであり、選択される機能はＴＬＢのページ属性操作制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードである。前記選択される機能はページ属性操作制御の内容である。前記ページ属性操作制御の内容は、例えばダーティ化、クリーン化及びインバリデートである。
【００１８】
〔２〕データプロセッサは、中央処理装置と前記中央処理装置に接続する複数の論理ブロックを有し、前記中央処理装置は所定の命令コードのデコード結果に基づいて所定の論理ブロックを制御対象とし、前記所定の論理ブロックは前記所定の命令コードに付随するアドレス情報の一部によって前記所定の論理ブロックの機能を選択する。特にここでは、論理ブロックの機能選択に前記所定の命令コードに付随するアドレス情報を用いるから、前記所定論理ブロックの操作に最低１つの命令コードを割り当てればよい。この点で、所定の論理ブロックの操作に割り当てる命令コードを最少にすることが可能である。更に、上記同様に、パイプラインのメモリアクセスステージに至る前に早期に操作対象を判定でき、無駄な論理ブロックの動作電力を抑止し、かつ操作に必要とするサイクル数を劣化させないで済む。
【００１９】
本発明の一つの代表的な形態として、前記所定の論理ブロックはキャッシュメモリであり、前記選択される機能はキャッシュコヒーレンシ制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードと、キャッシュコヒーレンシ制御の内容である。前記キャッシュコヒーレンシ制御の内容は、例えばパージ、ライトバック及びインバリデートである。
【００２０】
本発明の別の一つの代表的な形態として、前記所定の論理ブロックはＴＬＢであり、選択される機能はＴＬＢのページ属性操作制御に連想検索を用いる連想モード又は連想検索を用いない非連想モードと、ページ属性操作制御の内容である。前記ページ属性操作制御の内容は、例えばダーティ化、クリーン化及びインバリデートであるデータプロセッサ。
【００２１】
〔３〕本発明の更に別の観点によるデータプロセッサは、所定の命令コードを用いて活性化される論理ブロックを有し、活性化された前記理ブロックの機能を前記命令コードと当該命令コードに付随するアドレスの一部を用いて選択する。
【００２２】
本発明の更に別の観点によるデータプロセッサは、所定の命令コードを用いて活性化される論理ブロックを有し、活性化された前記論理ブロックの機能を前記命令コードに付随するアドレスの一部を用いて選択する。
【発明の効果】
【００２３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２４】
すなわち、キャッシュコヒーレンシ操作やＴＬＢページ属性操作などの特定の論理ブロックに対する操作に際して命令コードの消費、無駄な電力消費、又は、上記操作の処理性能低下を抑制することができる。
【発明を実施するための最良の形態】
【００２５】
図１１には本発明を適用したデータプロセッサ（ＭＰＵ）１１０１が示される。データプロセッサ１１０１は、特に制限されないが、単結晶シリコンのような１個の半導体基板に相補型ＭＯＳ集積回路製造技術によって形成される。同図に示されるデータプロセッサは８ビット又は１６ビットのような比較的少ないビット数の固定長の基本命令セットを有する。プロセッサ内部には中央処理装置（ＣＰＵ）１１０２、ロードストアユニット（ＬＳＵ）１１０３が配置される。ロードストアユニット１１０３の内部は３２ＫＢ、４ウェイセットアソシアティブ方式のキャッシュメモリ（ＣＡＣＨＥ）１１０４と６４エントリフルアソシアティブ方式のアドレス変換バッファ（ＴＬＢ）１１０５から構成され、ＣＰＵ１１０２から命令コード（ＯＰＣＯＤＥ）１１０６、アドレス（ＡＤＲ）１１０７、ストアデータ（ＳＤＡＴＡ）１１０８を入力し、要求された内容にしたがってメモリアクセスを行い、ロード要求の場合にはロードデータ（ＬＤＡＴＡ）１１０９をＣＰＵ１１０２に返す。データプロセッサ１００１の外部には主記憶（ＥＸＴＭＥＭ）１１１０が接続され、ロードストアユニット１１０３を介して主記憶アクセスが行われる。
【００２６】
図３には一般的なデータプロセッサのパイプラインのうち、本発明に関係する命令デコード以降のメモリアクセスパイプラインの例を示す。ＩＤステージで命令コード（ＯＰＣＯＤＥ）３０１のデコードとレジスタの読み出しが行われ、ＥＸステージで加算を行ってアドレス（ＡＤＲ）３０２を生成し、Ｍ１、Ｍ２ステージでＴＬＢ１１０５、ＣＡＣＨＥ１１０４を用いてメモリのアクセスを行う。ロードの場合にはＭ２ステージ後半でロードデータ（ＬＤＡＴＡ）３０５を返す。ストアの場合にはＷＢステージでストアデータ（ＳＤＡＴＡ）３０６が生成され、ストアバッファへ（ＳＴＢＵＦ）３０７の登録が行われる。
【００２７】
図４はデータプロセッサ１１０１の仮想メモリマップを示す。３２ビットの仮想アドレス空間を持ち、００００００００〜ＤＦＦＦＦＦＦＦ番地までは通常のメモリ領域で、キャッシュメモリ１１０４及びＴＬＢ１１０５を用いたメモリアクセスが可能な領域（ＮＯＲＭＬ）である。一方、Ｅ０００００００〜ＦＦＦＦＦＦＦＦ番地は特殊領域(ＳＰＥＣＬ)として定義されており、例えば制御レジスタや内蔵メモリといった外部メモリとは無関係なリソースが割り当てられている。この特殊領域へのアクセスはキャッシュメモリ１１０４及びＴＬＢ１１０５を用いずに行われる。
【００２８】
次に、前記データプロセッサ１１０１に適用可能なキャッシュ操作方式の第１の例を説明する。図２はキャッシュ操作を実現するためのキャッシュ操作命令の一例を示す。ＣＢＰ、ＣＢＷＢ、ＣＢＩ命令はそれぞれキャッシュメモリのパージ、ライトバック、インバリデート操作を行う命令であり、Ｒｎに指定するアドレスの［３１:２４］に応じて連想／非連想動作モードが切り替わる。
【００２９】
図１には図２のキャッシュ操作命令によって操作対象とされるキャッシュメモリ１１０４の内部構成を例示する。キャッシュメモリ１１０４は、論理インデックス物理タグ方式のキャッシュメモリとされ、キャッシュメモリのタグ（ＴＡＧ）と有効ビット（ＶＡＬＩＤ）を格納するタグ・有効ビットアレイ（ＴＶＡ）１０１、ダーティ、クリーンなどの情報(ＳＴＡＴＵＳ)を格納するステータスアレイ（ＳＴＡ）１０２、データ(ＤＡＴＡ)を格納するデータアレイ（ＤＴＡ）１０３を有する。それらには仮想アドレス（ＡＤＲ）１０４のビット１２〜５が共通に接続されてインデックス動作などに供される。キャッシュヒット／ミス判定はヒット判定論理（ＣＭＰ）１１５で行う。特に図示は省略するが、データアレイ１０３はキャッシュ連想動作によるキャッシュヒットに係るデータの入出力、ライトバックなどのキャッシュ操作のためのデータ入出力を行うデータ入出力経路が設けられていることは言うまでもない。キャッシュコヒーレンシ操作のために、アドレスデコーダ（ＡＤＲＤＥＣ）１０９、セレクタ１１７、セレクタ１１８、コヒーレンシ制御部（ＣＯＨＥＲＥＮＴ  ＣＴＲＬ）１０８が設けられている。
【００３０】
例として「ＣＢＰ  ＠Ｒｎ」命令を実行した場合の動作を説明する。まずＩＤステージで実行した命令コード（ＯＰＣＯＤＥ）１０５を命令デコーダ（ＯＰＤＥＣ）１０６で識別し、処理内容がパージであることを示すオペレーション（ＯＰ）１０７をコヒーレンシ制御部（ＣＯＨＥＲＥＮＴ  ＣＴＲＬ）１０８に通知する。次に、ＥＸステージで決定するＲｎで指定されたアドレスのビット３１〜２４がＨ’Ｆ４かどうかをアドレスデコーダ（ＡＤＲＤＥＣ）１０９でデコードし、連想モードか非連想モードかを判断し、その判定結果（ＡＳＣ）１１０をセレクタ１１７に出力する。非連想モードの場合には、アドレスのビット１２〜５をインデックスとして示されるラインの状態を知るためにステータスアレイ１０２から４ウェイ分のステータス（ダーティ／クリーン）を読み出す。非連想モードのウェイはアドレスのビット１４〜１３に対応されるウェイ指定情報（ＷＡＹ−ＮＡ）１１１で指定され、これがセレクタ１１７で選択され、また、その出力によってセレクタ１１８の選択が行われる。これによって、操作対象のウェイ（ＷＡＹ）１１２および対象ウェイのステータス（ＳＴＡＴ）１１３がコヒーレンシ制御部１０８に通知される。コヒーレンシ制御部１０８はＯＰ１０７、ＷＡＹ１１２、ＳＴＡＴ１１３の情報からキャッシュ操作内容を判断し、対象ラインのステータス更新と必要であればデータの書き戻しを行う。
【００３１】
アドレスのビット３１〜２４がＨ’Ｆ４以外の場合には連想パージとして動作し、まずアドレスをＴＬＢ１１０５で物理アドレスに変換する。アドレス１２〜５で指定されるインデックスに従ってタグ・有効ビットアレイ１０１からタグと有効ビットを読み出し、物理アドレスＰＡＤＲとの比較をヒット判定論理（ＣＭＰ）１１５で行う。さらに、ステータスアレイ（ＳＴＡ）１０２から４ウェイ分のステータスを読み出し、ヒットウェイ（ＷＡＹ−Ａ）１１６とヒットウェイのステータスをコヒーレンシ制御部１０８に通知する。コヒーレンシ制御部１０８は非連想モードの時と同様に得られたＯＰ１０７、ＷＡＹ１１２、ＳＴＡＴ１１３の情報をもとに対象ラインの操作を行う。
【００３２】
ＣＰＷＢ，ＣＢＩ命令の実行も同様の手順で行われるが、ＯＰＤＥＣ（１０６）の命令デコード結果によってコヒーレンシ制御部１０８の動作内容がライトバック、インバリデートとなる点だけが異なる。
【００３３】
図６には図１で説明した本発明との比較のために特許文献１に基づいて本発明者が考えたキャッシュ操作方法を比較例として示す。ここでは、専用の命令を用いずに、データ転送命令である「ＭＯＶ  Ｒｎ，＠Ｒｍ」を用いて特定アドレスにデータを書き込みすることでソフトウェアからのキャッシュコヒーレンシ制御を行う。指定するアドレスＲｍのビット３１〜２４がＨ’Ｆ４の場合には通常のデータ転送ではなくキャッシュ操作として扱う。アドレスのビット３の０／１で連想・非連想を指定し、さらにデータのビット１、０で操作内容をパージ、ライトバック、インバリデートを選択する。図５に図６の機能を実現するために本発明者が考えた比較例に係るキャッシュメモリの内部を示す。ＩＤステージではＭＯＶ命令をデコードするが、この段階ではまだキャッシュ制御かどうかは決まらない。次にＥＸステージでアドレスのビット３１〜２４がＨ’Ｆ４かどうかをアドレスデコーダ（ＡＤＲＤＥＣａ）５０１でデコードし、通常のデータ転送かコヒーレンシ制御か否かを判定して制御信号（ＯＰａ）５０２をコヒーレンシ制御部（ＣＯＨＥＲＥＮＴ  ＣＴＲＬ）５０３に通知する。さらに、アドレスデコーダ（ＡＤＲＤＥＣｂ）５０４でアドレスのビット３を判定して連想・非連想を識別し、その識別結果（ＡＳＣ）１１０をセレクタ１１７に出力する。非連想モードの場合には、アドレスのビット１２〜５をインデックスとして示されるラインの状態を知るためにステータスアレイ（ＳＴＡ）１０２から４ウェイ分のステータス（ＳＴＡＴ）１１３を読み出す。操作対象ウェイはアドレスのビット１４〜１３に対応されるウェイ指定情報（ＷＡＹ−ＮＡ）１１１で指定され、操作対象のウェイおよび対象ウェイのステータスがコヒーレンシ制御部５０３に通知される。さらにＷＢステージで得られるストアデータＲｎの値をデータデコーダ（ＤＴＤＥＣ）５０５で識別し、キャッシュ操作のパージ・ライトバック・インバリデートの識別信号（ＯＰｂ）５０６をコヒーレンシ制御部５０３に通知する。コヒーレンシ制御部５０３はＯＰａ５０２、ＯＰｂ５０６、ＷＡＹ１１２、ＳＴＡＴ１１３の情報からキャッシュ操作内容を判断し、対象ラインのステータス更新と必要であればデータの書き戻しを行う。連想モードの場合にはタグ・有効ビットアレイ１０１の情報からヒット判定を行って操作対象となるウェイを決定する点が相違するだけである。  以上から明らかなように、図１及び図２の係る本発明の一例に係るキャッシュ操作では、キャッシュ操作を３種類の命令コードに割り当てることで命令空間の消費をおさえながら、６種類のキャッシュ操作を実現している。更に図５及び図６のようにアドレスを識別しなくともＩＤステージでその内容が早期に決定される命令コードによってキャッシュ操作かそうでないかを判定可能であるため、通常のキャッシュ動作のための制御論理とキャッシュ操作のためのコヒーレンシ制御部５０３とのどちらかを活性化するかを早期に決定でき、低電力動作を実現可能である。さらに、図５及び図６のようにパイプラインのライトバック（ＷＢ）ステージにならないと確定しないストアデータを用いずに命令コードに付随するアドレスを用いて処理を行うため、キャッシュ操作の開始を従来のＷＢステージからエグゼキューション（ＥＸ）ステージに早めることか可能であり、キャッシュ操作の処理性能の向上に貢献することができる。
【００３４】
図８はキャッシュ操作を実現するためのキャッシュ操作命令の別の一例を示す。キャッシュ操作用には「ＣＢ  ＠Ｒｎ」命令１つだけを割り当て、そのときに指定するアドレスで連想／非連想に加えてパージ／ライトバック／インバリデートも切り替える点が図２とは異なる。
【００３５】
図７には図８のキャッシュ操作命令によって操作対象とされるキャッシュメモリ１１０４の内部構成を例示する。まずＩＤステージで実行した命令コード（ＯＰＣＯＤＥ）１０５を命令デコーダ（ＯＰＤＥＣ）７０１で識別し、コヒーレンシ制御信号（ＯＰｃ）７０２をコヒーレンシ制御部（ＣＯＨＥＲＥＮＴ  ＣＴＲＬ）７０３に通知する。次に、ＥＸステージで決定するＲｎで指定されたアドレスのビット３１〜２８がH’Ｆかどうかをアドレスデコーダ（ＡＤＲＤＥＣｃ）７０４でデコードし、連想モードか非連想モードかを判定し、その判定結果信号（ＡＳＣ）１１０を出力する。非連想モードの場合には、アドレスのビット１２〜５をインデックスとして示されるラインの状態を知るためにステータスアレイ１０２から４ウェイ分のステータスを読み出す。操作対象ウェイはアドレスのビット１４〜１３で指定されるため、操作対象とされるウェイ指定情報(ＷＡＹ)１１２および対象ウェイのステータス(ＳＴＡＴ)１１３をコヒーレンシ制御部７０３に通知する。同時にアドレスのビット２７〜２４をアドレスデコーダ（ＡＤＲＤＥＣｄ）７０５でデコードし、キャッシュ操作のパージ、ライトバック、インバリデートの識別信号（ＯＰｄ）７０６をコヒーレンシ制御部７０３に通知する。コヒーレンシ制御部７０３はＯＰｃ７０２、ＯＰｄ７０５、ＷＡＹ１１２、ＳＴＡＴ１１３の情報からキャッシュ操作内容を判断し、対象キャッシュラインのキャッシュ操作を行う。アドレスのビット３１〜２４がＨ’Ｆ以外の場合には連想モードで動作し、その具体的なウェイ決定方法は図１の場合と同じとされ、それ以外は非連想モードと同じ動作とされる。
【００３６】
図７及び図８の第２の例では、命令コードを１つだけしか用いない点が図１及び図２の第１の例より優れているが、指定されたキャッシュ操作内容（パージ／ライトバック／インバリデート）がアドレスの決定されるＥＸステージにならないと決定できない。しかし、コヒーレンシ制御操作が開始できるのはＴＶＡ１０１、ＳＴＡ１０２からの情報読み出し後であるため、多くの実装形態では性能劣化の問題は発生しない。
【００３７】
次に、前記データプロセッサ１１０１に適用可能なＴＬＢのページ属性操作方式の例を説明する。図９にＴＬＢの内部構成が例示される。ＴＬＢ１１０５は６４エントリ分の仮想ページ番号（ＶＰＮ）アレイ（ＶＰＡ）９０１、物理ページ番号（ＰＰＮ）・ステータス（ＳＴＡＴＵＳ）アレイ（ＰＰＡ）９０２を有し、更にアドレスデコーダ（ＡＤＲＤＥＣ）９０６、アドレス比較器（ＣＭＰ）９０８、セレクタ９１０、及びＴＬＢ制御部（ＴＬＢ  ＣＴＲＬ）９０５を備える。通常動作ではＣＰＵ１１０２から入力されるアドレスＡＤＲ１１０７の仮想ページ番号（ＶＰＮ）を入力し、アドレス比較器（ＣＭＰ）９０８で全エントリとの一致比較判定を行い、ヒットしたエントリの物理ページ番号（ＰＰＮ）と属性を出力することで仮想アドレスから物理アドレスへの変換を行う。ページの属性としては、そのエントリが有効かどうかを示すＶビット、該当ページに対する書き込みが行われたかどうかを示すＤビットが存在する。このＤビットはＯＳ（Operating System）の仮想記憶システムの動作に利用され、ページイン、ページアウト動作時にそのページの内容を実記憶デバイスに書き戻す必要がある（ダーティ状態と呼ぶ）かどうかを示すダーティビットである。Ｄビットが０の状態で該当ページへの書き込みを行った際には例外を発生してソフトウェアからＤビットに１を書き込み（ダーティ化）、またページアウト時に書き戻しを行った場合には同様にソフトウェアからＤビットに０を書き込む（クリーン化）処理が行われる。また、ＯＳのページテーブルを変更する場合にはＴＬＢエントリの無効化処理（Ｖビットに０を書き込む、インバリデート）が行われる。これらの処理の指示方法はキャッシュと同様に連想・非連想があり、連想モードでは与えたＶＰＮに対してヒットしたエントリの操作が行われ、非連想モードでは操作するエントリを直接指定する。
【００３８】
図１０はＴＬＢの属性管理操作を実現するための属性管理操作命令の一例が示される。属性管理操作用には「ＴＬＢＩ  ＠Ｒｎ」、「ＴＬＢＣ  ＠Ｒｎ」、「ＴＬＢＤ  ＠Ｒｎ」の３命令３命令でインバリデート、クリーン化、ダーティ化が可能である。Ｒｎに指定するアドレスがＨ’Ｆ６か否かで、動作モードの連想・非連想の選択が可能である。尚、ＴＬＢ１１０５のページ操作では、仮想ページ番号と物理ページ番号のアドレス変換対の操作およびそれに伴うデータの管理はＯＳで行うから、ページ属性操作に対してだけ命令でサポートする。従ってＴＬＢ１１０５に関してはパージのような操作を命令でサポートすることを要しない。
【００３９】
図９に基づいてＴＬＢのページ属性操作を行うためのページ属性操作命令の一つであるＴＬＢＩ命令による処理動作を説明する。まずＩＤステージで実行した命令コード（ＯＰＣＯＤＥ）１０５を命令デコーダ（ＯＰＤＥＣ）９０３で識別し、ＴＬＢインバリデート信号（ＯＰ）９０４によってＴＬＢ制御部（ＴＬＢ  ＣＴＲＬ）９０５に動作が通知される。次に、ＥＸステージで決定するＲｎで指定されたアドレスのビット３１〜２４がＨ’Ｆ６かどうかをアドレスデコーダ（ＡＤＲＤＥＣ）９０６でデコードし、連想モードか非連想モードかを判断する。非連想モードの場合には、アドレスのビット１３〜８をエントリ指定情報（ＥＮＴ―ＮＡ）９０７として扱い、ＴＬＢ制御部９０５からの指示で物理ページ番号・ステータスアレイ（ＰＰＡ）９０２の該当するＶビットを０に書き換える。アドレスのビット３１〜２４がＨ’Ｆ６以外の場合には連想モードで動作し、Ｒｎで指定されたＶＰＮと仮想ページ番号アレイ（ＶＰＡ）９０１内の６４エントリ分のＶＰＮとの一致判定をアドレス比較器（ＣＭＰ）９０８で行い、そこで得られたエントリ番号（ＥＮＴ−Ａ）９０９をＴＬＢ制御部９０５に通知し、該当するエントリのＶビットを０に書き換える。ＴＬＢＣ命令、ＴＬＢＤ命令の場合には、書き換え内容がＤ＝０、Ｄ＝１に変わる点だけが異なる。
【００４０】
上記ＴＬＢのページ属性操作についても、複数のＴＬＢ操作を少数の命令コードに割り当てることで命令空間の消費をおさえながら、アドレスの指定で多くのＴＬＢ操作を可能にすることができる。従って、データ転送命令を用いてＴＬＢ操作を行う場合に比べて低電力動作を実現可能になり、また、ストアデータを用いないためＴＬＢ操作をパイプラインの早期に開始することで処理性能の向上に貢献することができる。
【００４１】
以上説明した各種実施の形態によれば、以下の作用効果を得ることができる。
【００４２】
〔１〕キャッシュメモリ１１０４やＴＬＢ１１０５の操作のために必要とする命令コードの数を低減し、命令コード空間を有効に利用することが可能となり、基本命令のビット数が８ビットや１６ビットのようにビット数の少ない固定長命令の命令セットとされるデータプロセッサにおいて命令コード効率を向上させることができる。
【００４３】
〔２〕キャッシュメモリ１１０４やＴＬＢ１１０５の操作を、転送命令と特殊なアドレス、データの組み合わせで指定する方法に比べて、処理内容が通常のデータ転送かキャッシュ・ＴＬＢ操作かを早期に決定することができるから、不要な論理の動作を停止することが可能となり、低電力化に貢献する。
【００４４】
〔３〕転送命令に指定するストアデータを用いてキャッシュメモリ１１０４やＴＬＢ１１０５の操作内容を決定する従来手法に比べて、早期にキャッシュメモリやＴＬＢ操作処理を開始することが可能となることから、処理性能の向上が期待できる。
【００４５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４６】
例えば、キャッシュメモリはセットアソシアティブ形態のものに限定されず、ダイレクトマップ、フルアソシアティブなどであってもよい。データプロセッサはキャッシュメモリ又はＴＬＢの何れか一方だけを備える構成であってもよい。本発明の対象はキャッシュメモリやＴＬＢに限定されず、所定の命令コードを用いて活性化されるその他の論理ブロックであってもよい。少なくとも、活性化された前記象論理ブロックの機能を命令コードと当該命令コードに付随するアドレスの一部、或いは前記命令コードに付随するアドレスの一部を用いて選択するという条件のものに広く適用することができる。
【図面の簡単な説明】
【００４７】
【図１】図２のキャッシュ操作命令によって操作対象とされるキャッシュメモリの内部構成を例示するブロック図である。
【図２】キャッシュ操作を実現するためのキャッシュ操作命令の一例を示す説明図である。
【図３】一般的なデータプロセッサのパイプラインのうち、本発明に関係する命令デコード以降のメモリアクセスパイプラインの例を示すタイミングチャートである。
【図４】データプロセッサの仮想メモリマップを示すアドレスマップである。
【図５】図６の機能を実現するために本発明者が考えた比較例に係るキャッシュメモリの内部を示すブロック図である。
【図６】図１で説明した本発明との比較のために特許文献１に基づいて本発明者が考えたキャッシュ操作方法を比較例として示す動作説明図である。
【図７】図８のキャッシュ操作命令によって操作対象とされるキャッシュメモリの内部構成を例示するブロック図である。
【図８】キャッシュ操作を実現するためのキャッシュ操作命令の別の一例を示す説明図である。
【図９】図１０の命令によってＴＬＢのページ属性操作が可能にされるＴＬＢの内部構成を例示するブロック図である。
【図１０】ＴＬＢのページ属性操作を実現するためのページ属性操作命令の一例を示す説明図である。
【図１１】本発明に係るデータプロセッサの一例を全体的に示したブロック図である。
【符号の説明】
【００４８】
１０１  タグ・有効ビットアレイ
１０２  ステータスアレイ
１０３  データアレイ
１０４、３０２、１１０７  仮想アドレス
１０５、３０１、１１０６  命令コード
１０６、７０１、９０３  命令デコーダ
１０７  キャッシュパージ指定信号
１０８、５０３、７０３  キャッシュコヒーレンシ制御部
１０９、５０１、５０４、７０４、７０５、９０６  アドレスデコーダ
１１０  連想・非連想指定信号
１１１  非連想モード用ウェイ指示信号
１１２  コヒーレンシ制御対象ウェイ
１１３  キャッシュ状態読み出し信号
１１４、３０３、１１０５  アドレス変換回路
１１５  キャッシュヒット判定回路
１１６  連想モード用ウェイ指示信号
１１０４  キャッシュメモリ
３０５、１１０９  ロードデータ
３０６、１１０８  ストアデータ
３０７  ストアバッファ
５０２、７０２  キャッシュコヒーレンシ制御指示信号
５０５  データデコーダ
５０６、７０５  キャッシュコヒーレンシ制御タイプ指示信号
９０１  仮想ページ番号アレイ
９０２  物理ページ番号・ステータスアレイ
９０４  ＴＬＢ操作指示信号
９０５  ＴＬＢ制御部
９０７  非連想モード用ＴＬＢエントリ
９０８  ＴＬＢヒット判定回路
９０９連想モード用ＴＬＢエントリ
１１０１  プロセッサ
１１０２  中央処理装置
１１０３  ロードストアユニット
１１０４  ＴＬＢ
１１１０  外部主記憶
【図１】
2006185284.tif 000003
【図２】
2006185284.tif 000004
【図３】
2006185284.tif 000005
【図４】
2006185284.tif 000006
【図５】
2006185284.tif 000007
【図６】
2006185284.tif 000008
【図７】
2006185284.tif 000009
【図８】
2006185284.tif 000010
【図９】
2006185284.tif 000011
【図１０】
2006185284.tif 000012
【図１１】
2006185284.tif 000013