(57)【特許請求の範囲】
【請求項１】
データへのアクセスに対して、主記憶キーによるキー制御保護が提供される情報処理装置のためのキャッシュ制御装置であって、
前記データを格納するキャッシュ手段と、
前記主記憶キーを要求する要求手段と、
要求された主記憶キーの到着を待たずに、前記キャッシュ手段のデータの検索を開始する制御手段と、
前記要求された主記憶キーの到着を待たずに、検索されたデータを送出する送出手段とを備えることを特徴とするキャッシュ制御装置。
【請求項２】
論理アドレスと物理アドレスの対応関係を登録する変換索引バッファ手段と、論理アドレスを物理アドレスに変換するアドレス変換手段をさらに備え、前記アクセスの論理アドレスが該変換索引バッファ手段に登録されていなかったとき、前記制御手段は、該アクセスの論理アドレスの変換を該アドレス変換手段に要求し、変換結果を該変換索引バッファ手段に登録した後、前記要求された主記憶キーの到着を待たずに、該変換索引バッファ手段を検索することを特徴とする請求項１記載のキャッシュ制御装置。
【請求項３】
論理アドレスと物理アドレスの対応関係を登録する変換索引バッファ手段と、論理アドレスを物理アドレスに変換するアドレス変換手段をさらに備え、前記アクセスの論理アドレスが該変換索引バッファ手段に登録されていなかったとき、前記制御手段は、該アクセスの論理アドレスの変換を該アドレス変換手段に要求し、変換結果を該変換索引バッファ手段に登録した後、前記要求された主記憶キーの到着を待たずに、該アドレス変換手段を開放することを特徴とする請求項１記載のキャッシュ制御装置。
【請求項４】
到着した主記憶キーを保持する複数のキーアクセスポート手段をさらに備え、前記アドレス変換手段は、複数のアクセスに伴う複数の論理アドレスを連続して変換し、前記要求手段は、変換が完了する度に対応する主記憶キーを要求することを特徴とする請求項３記載のキャッシュ制御装置。
【請求項５】
前記制御手段は、前記キー制御保護を必要としないアクセスに対して、前記要求された主記憶キーの到着を待たずに、アクセス処理を完了することを特徴とする請求項１記載のキャッシュ制御装置。
【請求項６】
データへのアクセスに対して、主記憶キーによるキー制御保護が提供される情報処理装置のためのキャッシュ制御方法であって、
前記アクセスの論理アドレスで変換索引バッファを検索し、
前記論理アドレスが前記変換索引バッファに登録されていなかったとき、該論理アドレスを物理アドレスに変換し、
前記主記憶キーを要求し、
前記論理アドレスの変換結果を前記変換索引バッファに登録し、
要求された主記憶キーの到着を待たずに、再び前記変換索引バッファを検索し、
前記論理アドレスに対応するキャッシュ内のデータを送出する
ことを特徴とするキャッシュ制御方法。
【請求項７】
データへのアクセスに対して、主記憶キーによるキー制御保護が提供される情報処理装置のためのキャッシュ制御装置であって、
前記データを格納するキャッシュ手段と、
前記主記憶キーを要求する要求手段と、
論理アドレスと物理アドレスの対応関係を登録する変換索引バッファ手段と、
論理アドレスを物理アドレスに変換するアドレス変換手段と、
前記アクセスの論理アドレスが前記変換索引バッファ手段に登録されていなかったとき、該アクセスの論理アドレスの変換を前記アドレス変換手段に要求し、変換結果を該変換索引バッファ手段に登録した後、要求された主記憶キーの到着を待たずに、該変換索引バッファ手段を検索するとともに前記キャッシュ手段のデータの検索を開始する制御手段と、
検索されたデータを送出する送出手段と
を備えることを特徴とするキャッシュ制御装置。
【請求項８】
データへのアクセスに対して、主記憶キーによるキー制御保護が提供される情報処理装置のためのキャッシュ制御装置であって、
前記データを格納するキャッシュ手段と、
前記主記憶キーを要求する要求手段と、
論理アドレスと物理アドレスの対応関係を登録する変換索引バッファ手段と、
論理アドレスを物理アドレスに変換するアドレス変換手段と、
前記アクセスの論理アドレスが前記変換索引バッファ手段に登録されていなかったとき、該アクセスの論理アドレスの変換を前記アドレス変換手段に要求し、変換結果を該変換索引バッファ手段に登録した後、要求された主記憶キーの到着を待たずに、該アドレス変換手段を開放するとともに前記キャッシュ手段のデータの検索を開始する制御手段と、
検索されたデータを送出する送出手段と
を備えることを特徴とするキャッシュ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶キー（ストレージキー）によるキー制御保護が提供される計算機システムに係り、キャッシュ装置の動作を制御するキャッシュ制御装置およびその方法に関する。
【０００２】
【従来の技術】
主記憶キーは、情報処理装置における主記憶装置の内容を不当なアクセスから保護するための情報であり、主記憶装置の各ページ毎に設定される。この主記憶キーは、例えば、アクセス制御ビット（４ビット）、取り出し防止ビット、参照ビット、および変更ビットから構成される。
【０００３】
図１８は、主記憶キーを有する従来の情報処理装置の構成図である。図１８の情報処理装置は、ＣＰＵ（中央処理装置）命令演算部３１、ＣＰＵ記憶部３２、主記憶装置３３、およびキーストレージ４１を含む。ＣＰＵ記憶部３２は、２つのキャッシュ装置３４、制御装置３５、主記憶アクセス正当性検出回路３６、２つの変換索引バッファ（Translation Lookaside Buffer，ＴＬＢ）３７、２つのキーバッファ３８、アドレス変換部（DynamicAddress Translation，ＤＡＴ）３９、およびキーアクセスポート４０を含む。
【０００４】
ＴＬＢ３７は、アドレス変換を高速化するために設けられ、論理アドレスと物理アドレスの対応関係がＴＬＢ３７に登録される。キーバッファ３８は、キーアクセスを高速化するために設けられ、主記憶キーがキーバッファ３８に登録される。ここで、キーアクセスとは、キーストレージ４１に格納されている主記憶キーを要求し、それを取得する動作を表す。また、キャッシュ装置３４は、主記憶アクセスを高速化するために設けられ、データを格納する。
【０００５】
２つのキャッシュ装置３４のうち、一方はデータとして命令を格納し、他方はデータとしてオペランドを格納する。ＴＬＢ３７およびキーバッファ３８についても、一方は命令用であり、他方はオペランド用である。ＤＡＴ３９は、与えられた論理アドレスを物理アドレスに変換する処理を行う。
【０００６】
また、正当性検出回路３６は、キーバッファ３８に登録された主記憶キーと、ＣＰＵ命令演算部３１から送られたアクセスキーを用いて、主記憶アクセスの正当性をチェックする。キーアクセスポート４０は、キーストレージ４１から送られた主記憶キーを保持し、キーバッファ３８に転送する。
【０００７】
図１９は、図１８の情報処理装置におけるキャッシュ制御のタイミングチャートであり、図２０は、キャッシュ制御の概要を示すフローチャートである。まず、ＣＰＵ命令演算部３１から主記憶アクセス要求（リクエスト）が発行されると、その要求に伴う論理アドレスの変換結果である物理アドレスがＴＬＢ３７に登録されているか否か（ヒットまたはミス）が判定される（ステップＳ１１）。
【０００８】
その物理アドレスが登録されていない場合、ＴＬＢ３７は、ＴＬＢミスを制御装置３５に報告し、制御装置３５は、ＤＡＴ３９にアドレス変換を要求する（ステップＳ１２）。ＤＡＴ３９においてアドレス変換処理が行われた後、制御装置３５は、キーストレージ４１に対して主記憶キーを要求して（ステップＳ１３）、キー到着報告を待つ（ステップＳ１４）。
【０００９】
主記憶キーがキーアクセスポート４０に到着すると、その到着をトリガとして、ＤＡＴ３９の変換結果である物理アドレスがＴＬＢ３７に登録され、キーアクセスポート４０の主記憶キーがキーバッファ３８に登録される（ステップＳ１５）。そして、ＤＡＴ３９が開放される（ステップＳ１６）。
【００１０】
ここで、制御装置３５は、主記憶アクセス要求の処理を再開する。物理アドレスがＴＬＢ３７に登録されたため、ＴＬＢ３７は、制御装置３５に対してＴＬＢヒットを報告し、制御装置３５は、ＴＬＢ３７から読み出された物理アドレスで、キャッシュ装置３４を検索する。これにより、データ（命令またはオペランド）がキャッシュ装置３４に登録されているか否か（ヒットまたはミス）が判定される（ステップＳ１７）。
【００１１】
ここで、データが登録されていなければ、主記憶装置３３に対してデータ要求が発行され、到着したデータがキャッシュ装置３４に登録される（ステップＳ１８）。そして、主記憶アクセス要求の処理が再開される。データが登録されていれば、キャッシュ装置３４はデータを送出し、制御装置３５にキャッシュヒットを報告する。
【００１２】
また、ＣＰＵ命令演算部３１は、あらかじめ、主記憶アクセス要求が主記憶キーによる保護（キー制御保護）を必要とするか否かを判定し、判定結果に応じて異なる要求をＣＰＵ記憶部３２に送る。そして、ＣＰＵ記憶部３２は、要求の種類に基づいて正当性検出回路３６によるキーチェックが必要か否かを判定する（ステップＳ１９）。ＴＬＢヒットと同時に、正当性検出回路３６は、キーバッファ３８に登録された主記憶キーを読み出して、ＣＰＵ命令演算部３１から受け取ったアクセスキーと比較することで、アクセスの正当性をチェックする（ステップＳ２０）。
【００１３】
具体的には、キー制御保護を必要としない場合、ＣＰＵ命令演算部３１は、正当性検出回路３６のチェック結果を無視する信号ＩＮＨ＿ＫＥＹ＿ＣＨＥＣＫを、ＣＰＵ記憶部３２に送る。ＣＰＵ記憶部３２は、この信号がオン（論理１）のときにチェック結果を無視するような回路構成になっている。
【００１４】
主記憶アクセス要求がキャッシュにヒットし、アクセスの正当性が認められれば、ＣＰＵ命令演算部３１に対してデータが送出される（ステップＳ２１）。そして、制御装置３５は、ＣＰＵ命令演算部３１に対してデータ送出報告および完了報告を送出して、主記憶アクセス処理を完了する。このとき、正当性検出回路３６のチェック結果は、キー保護例外信号として、ＣＰＵ命令演算部３１に送出される。完了報告の送出時にキー保護例外信号がオフ（論理０）であれば、送出されたデータは有効となる。
【００１５】
また、ステップＳ２０において、アクセスの正当性が認められなければ、キー保護例外信号がオンになり、ＣＰＵ命令演算部３１に対して例外報告が送出される（ステップＳ２２）。
【００１６】
【発明が解決しようとする課題】
しかしながら、上述した従来のキャッシュ制御には、次のような問題がある。
従来の制御では、キー制御保護を必要とする主記憶アクセス要求に対して、主記憶アクセスを行い、得られたデータに対して、アクセスの正当性をチェックし、正当性が認められてから、データを送出している。このため、主記憶装置に対してキーアクセスを必要とする場合、主記憶キーの到着を待つ必要があり、データを送出するまでに時間がかかる。
【００１７】
また、主記憶装置に対して要求した主記憶キーがキーアクセスポートに到着したことをトリガとして、ＤＡＴによるアドレス変換の結果をＴＬＢに登録し、ＤＡＴの開放を行っている。このため、ＤＡＴがアドレス変換を終了しても、変換結果の登録およびＤＡＴの開放を行うことができない。
【００１８】
また、キー制御保護を必要としない主記憶アクセス要求においては、本来、アクセスの正当性チェックは不要である。それにもかかわらず、このような要求においてＴＬＢミスが発生すると、主記憶装置に対してキーアクセスを行い、到着した主記憶キーを用いてチェックを行ってから、データを送出している。このため、無駄な待ち時間が発生する。
【００１９】
本発明の課題は、主記憶キーによるキー制御保護が提供される情報処理装置において、データアクセスの性能を向上させるキャッシュ制御装置およびその方法を提供することである。
【００２０】
【課題を解決するための手段】
図１は、本発明のキャッシュ制御装置の原理図である。図１のキャッシュ制御装置は、キャッシュ手段５１、要求手段５２、制御手段５３、および送出手段５４を備える。
【００２１】
キャッシュ手段５１は、データを格納し、要求手段５２は、主記憶キーを要求し、制御手段５３は、要求された主記憶キーの到着を待たずに、キャッシュ手段５１のデータの検索を開始する。そして、送出手段５４は、検索されたデータを送出する。
【００２２】
データアクセス要求に対してＴＬＢ検索が行われ、ＴＬＢミスの発生により、主記憶キーを取得する必要が生じた場合、要求手段５２は、キーストレージ４１のような主記憶キーの格納部に対してキー要求を発行し、対応する主記憶キーを要求する。主記憶キーが要求されると、制御手段５３は、要求された主記憶キーが到着する前に、再びＴＬＢ検索を行うことで、キャッシュ手段５１の検索を開始する。そして、送出手段５４は、データアクセス要求の要求元に対して、検索されたデータを直ちに送出する。
【００２３】
このような構成によれば、主記憶装置に対してキーアクセスを必要とする場合、到着した主記憶キーを用いた正当性チェックが完了するのを待つことなく、主記憶アクセス要求の処理を再開することができる。これにより、主記憶アクセス要求の処理時間を短縮することができる。また、送出手段５４は、要求された主記憶キーの到着を待たずに、検索されたデータを送出することも可能となり、主記憶アクセス要求からデータ送出までの時間が短縮される。
【００２４】
図１のキャッシュ手段５１は、例えば、後述する図２のキャッシュ装置３４に対応し、図１の要求手段５２および制御手段５３は、例えば、図２の制御装置６１に対応し、図１の送出手段５４は、例えば、後述する図６のＡＮＤゲート８４に対応する。
【００２５】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態のキャッシュ制御装置は、次のような特徴を有する。
（１）主記憶アクセスの正当性チェックとキャッシュアクセスとを分離し、データの処理を正当性チェックに先行して行う。具体的には、主記憶装置に対してキーアクセスを必要とする場合、主記憶キーのキーアクセスポートへの到着と正当性チェックを待つことなく、データを送出するように、ＣＰＵ記憶部を制御する。これにより、主記憶アクセス要求からデータ送出までに要する時間が短縮される。
（２）主記憶アクセスのＴＬＢミスが発生した場合、ＤＡＴにアドレス変換を要求し、主記憶装置に対して主記憶キーを要求したことをトリガとして、ＤＡＴによるアドレス変換の結果をＴＬＢに登録する。これにより、アドレス変換の開始からＴＬＢ登録までの時間が短縮され、主記憶キーの到着を待たずに、ＴＬＢを再検索することができる。言い換えれば、キーアクセスを待たずに主記憶アクセス要求の処理を再開することが可能となる。
（３）ＤＡＴによるアドレス変換の結果がＴＬＢに登録された後、主記憶キーの登録を待たずにＤＡＴを開放して、後続のアドレス変換要求を処理する。この場合、主記憶装置に対して主記憶キーを要求したことをトリガとして、ＤＡＴの開放を行う。これにより、アドレス変換処理後、主記憶キーの到着を待たずに、直ちにＤＡＴを開放して、後続のアドレス変換処理を行えるようになる。
（４）キー制御保護を必要としない主記憶アクセス要求に対して、キーアクセスおよび正当性チェックを待たずに、主記憶アクセス処理を完了する。この場合、ＴＬＢミスが発生しても、キャッシュ装置に要求されたデータが存在すれば、直ちにデータと完了報告が送出され、その後、主記憶装置から到着した主記憶キーがキーバッファに登録される。このため、主記憶アクセス要求から完了報告までの時間が短縮される。
（５）上記（３）の制御を行うだけでは、複数の主記憶キー要求が連続して発生した場合、キーアクセスポートが空くまで後続の要求が待たされるので、キーアクセスを連続して行うことができない。そこで、キーアクセスポートを複数用意し、複数のキーアクセスを同時に処理することで、ＤＡＴの開放を効率的に行う。これにより、ＤＡＴによるアドレス変換が連続して行われ、変換が完了する度に対応する主記憶キーを要求することができるので、主記憶装置に対するキー要求も連続して発行される。したがって、ＤＡＴが効率良く動作するようになる。
【００２６】
図２は、本発明のキャッシュ制御装置を備えた情報処理装置の構成図である。図２において、図１８と同じ符号の構成要素については、基本的に、図１８の構成要素と同様の機能を有する。制御装置６１は、上述したように、ＣＰＵ命令演算部３１のデータアクセスを効率化する制御を行い、キーアクセスポート６２は２つ設けられている。
【００２７】
図３および図４は、図２の情報処理装置におけるキャッシュ制御のタイミングチャートであり、図５は、キャッシュ制御の概要を示すフローチャートである。図３のタイミングチャートは、キー制御保護を必要とする場合に対応し、図４のタイミングチャートは、キー制御保護を必要としない場合に対応する。
【００２８】
まず、ＣＰＵ命令演算部３１から主記憶アクセス要求が発行され、その要求に伴う論理アドレスが制御装置６１に送られてくる。制御装置６１は、その論理アドレスの変換結果である物理アドレスがＴＬＢ３７に登録されているかどうかを調べるため、ＴＬＢ３７をアクセスする（ステップＳ３１）。物理アドレスがＴＬＢ３７に登録されていれば、ＴＬＢ３７は、制御装置６１にＴＬＢヒットを報告する。
【００２９】
物理アドレスが登録されていなければ、ＴＬＢ３７は、制御装置６１にＴＬＢミスを報告し、制御装置６１は、ＤＡＴ３９にアドレス変換を要求する（ステップＳ３２）。これを受けて、ＤＡＴ３９は、論理アドレスのアドレス変換を開始し、アドレス変換処理が完了すると、論理アドレスおよび物理アドレスを制御装置６１内のレジスタに格納する。
【００３０】
また、制御装置６１は、キーストレージ４１に対して主記憶キー要求を発行し（ステップＳ３３）、キー到着報告を待つ（ステップＳ３６）。さらに、この主記憶キー要求をトリガとして、ＤＡＴ３９の変換結果である物理アドレスをＴＬＢ３７に登録する要求（ＴＬＢ登録要求）を発行し（ステップＳ３４）、変換結果をＴＬＢ３７に登録して、ＤＡＴ３９を開放する（ステップＳ３５）。
【００３１】
次に、制御装置６１は、ＴＬＢ登録要求をトリガとして、主記憶アクセス要求の処理を再開し、ＣＰＵ記憶部３２内に保持されている論理アドレスで、再びＴＬＢ３７をアクセスする。今度は、変換結果がＴＬＢ３７に登録されているので、ＴＬＢ３７は、制御装置６１にＴＬＢヒットを報告する。ＴＬＢヒットの報告を受けた制御装置６１は、ヒットした物理アドレスを用いてキャッシュ装置３４を検索する（ステップＳ３８）。
【００３２】
ここで、要求されたデータがキャッシュ装置３４に登録されていなければ、主記憶装置３３に対してデータ要求が発行され、到着したデータがキャッシュ装置３４に登録される（ステップＳ３９）。データが登録されていれば、正当性検出回路３６によるキーチェックが必要か否か（キー制御保護が必要か否か）が判定される（ステップＳ４０）とともに、データが送出済みか否かが判定される（ステップＳ４５）。
【００３３】
キーチェックが必要であれば、キーバッファ３８のバリッド信号ＶＬＤがオンか否かが判定される（ステップＳ４１）。そして、ＶＬＤがオフであれば、主記憶キーがまだ到着していないので、その到着が待ち合わされる（ステップＳ３６）。
【００３４】
また、データが送出済みでなければ、キャッシュ装置３４は、ＣＰＵ命令演算部３１にデータを送出し、制御装置６１にキャッシュヒットを報告する（ステップＳ４６）。キャッシュヒットの報告を受けた制御装置６１は、ＣＰＵ命令演算部３１にデータ送出報告を送出する。
【００３５】
その後、主記憶装置３３からキーアクセスポート６２に主記憶キーが送られてくる。そこで、その到着をトリガとして、制御装置６１は、主記憶キーをキーバッファ３８に登録する要求（ＫＥＹ登録要求）を発行し、キーアクセスポート６２の主記憶キーがキーバッファ３８に登録される（ステップＳ３７）。これにより、キーバッファ３８のＶＬＤがオンになる。
【００３６】
このとき、主記憶キーと、ＴＬＢ３７に登録された論理アドレスおよび物理アドレスの対応付けを行う必要がある。そこで、制御装置６１は、制御装置６１内のレジスタに保持されている論理アドレスおよび物理アドレスを、主記憶キーの登録と同時に、ＴＬＢ３７に上書き登録する。
【００３７】
図３に示すように、主記憶キーの登録をトリガとして、再び、主記憶アクセス要求の処理がＣＰＵ記憶部３２内で開始される。そして、上述した手順と同様にして、ＴＬＢヒットおよびキャッシュヒットが発生する。この場合、ＶＬＤがオンとなっているので、キーバッファ３８がアクセスされ、登録された主記憶キーが読み出されて、正当性検出回路３６によりアクセスの正当性がチェックされる（ステップＳ４２）。
【００３８】
正当性検出回路３６によるキーチェックの結果、アクセスの正当性が認められなければ、制御装置６１は、キー保護例外信号をオンにして、ＣＰＵ命令演算部３１に対して例外報告を送出し（ステップＳ４３）、完了報告を送出して（ステップＳ４４）、主記憶アクセス処理を完了する。また、アクセスの正当性が認められれば、制御装置６１は、キー保護例外信号をオフにして、ステップＳ４４の動作を行う。
【００３９】
正当性検出回路３６によるキーチェックが必要でない場合は、図４に示すように、データ送出報告と同時に、完了報告がＣＰＵ命令演算部３１に送出される（ステップＳ４４、Ｓ４６）。この場合、キーチェックの結果は参照されず、主記憶キーの登録後は、主記憶アクセス要求の処理は再開されない。
【００４０】
次に、図６から図１２までを参照しながら、図３のようなキャッシュ制御が行われる場合について、図２のＣＰＵ記憶部３２の回路構成をより詳細に説明する。
【００４１】
図６は、ＣＰＵ記憶部３２の回路の接続関係を示している。図６のインバータ７７、７９とＡＮＤゲート７８、８０、８１とＯＲゲート８２は、制御装置６１に属する。
【００４２】
信号ＬＡ＿ＴＯ＿ＴＬＢは、制御装置６１からＴＬＢ３７に送られる論理アドレスを表し、信号ＬＡ＿ＦＲＯＭ＿ＤＡＴは、ＤＡＴ３９から出力される論理アドレスを表し、信号ＡＡ＿ＦＲＯＭ＿ＤＡＴは、ＤＡＴ３９から出力される物理アドレスを表す。
【００４３】
ＯＲゲート７１は、制御装置６１からのＴＬＢ登録要求信号とキー登録要求信号の論理和をＴＬＢ３７に出力する。比較器７２は、ＬＡ＿ＴＯ＿ＴＬＢとＴＬＢ３７から出力される論理アドレスＬＡを比較して、両者が一致したときにオンとなる信号を出力する。インバータ７３は、比較器７２の出力を反転して、ＴＬＢミスの場合にオンとなる信号ＴＬＢ＿ＭＩＳＳを生成する。ＡＮＤゲート７４は、比較器７２の出力とＴＬＢ３７から出力される物理アドレスＡＡの論理積を出力する。
【００４４】
また、信号ＩＮＨ＿ＫＥＹ＿ＣＨＥＣＫは、前述したように、ＣＰＵ命令演算部３１からＣＰＵ記憶部３２に送られる信号であり、キー制御保護を必要としない場合にオンとなる。信号ＡＣＣＥＳＳ＿ＫＥＹは、ＣＰＵ命令演算部３１からＣＰＵ記憶部３２に送られるアクセスキーを表し、信号ＬＡ＿ＴＯ＿ＫＥＹ＿ＢＵＦＦＥＲは、制御装置６１からキーバッファ３８に送られる論理アドレスを表し、信号ＫＥＹ＿ＦＲＯＭ＿ＫＥＹ＿ＰＯＲＴは、キーアクセスポート６２から出力される主記憶キーを表す。
【００４５】
正当性検出回路３６は、比較器７５とＯＲゲート７６を含む。比較器７５は、ＡＣＣＥＳＳ＿ＫＥＹとキーバッファ３８から出力される主記憶キーＫＥＹを比較して、両者が一致したときにオンとなる信号を出力する。ＯＲゲート７６は、ＩＮＨ＿ＫＥＹ＿ＣＨＥＣＫと比較器７５の出力の論理和を出力し、インバータ７７は、ＯＲゲート７６の出力を反転して、送出されたデータが有効の場合にオフとなるキー保護例外信号を生成する。
【００４６】
また、信号ＬＡ＿ＴＯ＿ＣＡＣＨＥは、制御装置６１からキャッシュ装置３４に送られる論理アドレスを表す。比較器８３は、ＡＮＤゲート７４の出力とキャッシュ装置３４から出力される物理アドレスＡＡを比較して、両者が一致したときにオンとなる信号を出力する。ＡＮＤゲート７８は、キーバッファ３８から出力されるバリッド信号ＶＬＤと比較器８３の出力の論理積を、完了報告として出力する。
【００４７】
また、インバータ７９は、ＶＬＤを反転して出力する。ＡＮＤゲート８０は、ＶＬＤと比較器８３の出力とデータ未送出信号の論理積を出力し、ＡＮＤゲート８１は、インバータ７９の出力と比較器８３の出力とデータ未送出信号の論理積を出力する。データ未送出信号は、データの送出前はオンになっており、一旦データが送出されるとオフになる。そして、ＯＲゲート８２は、ＡＮＤゲート８０および８１の出力の論理和を、データ送出報告として出力する。
【００４８】
また、ＡＮＤゲート８４は、比較器８３の出力と、キャッシュ装置３４から出力されるデータ（ＤＡＴＡ）およびバリッド信号ＶＬＤの論理積を、データとして出力する。
【００４９】
このような回路構成によれば、ＴＬＢヒットにより読み出された物理アドレスが、対応するキャッシュ装置３４の物理アドレスと一致すれば、直ちにデータがＣＰＵ命令演算部３１に送出される。それと同時に、キーバッファ３８に主記憶キーが登録されたか否かにかかわらずに、データ送出報告が送出される。また、キーバッファ３８に主記憶キーが登録されてＶＬＤがオンになると、直ちに完了報告が送出される。
【００５０】
図７は、ＤＡＴ３９の入出力信号を示している。アドレス変換要求信号は、制御装置６１から出力され、信号ＬＡ＿ＴＯ＿ＤＡＴは、制御装置６１からＤＡＴ３９に送られる論理アドレスを表す。ＤＡＴ３９は、アドレス変換要求がオンになると、ＬＡ＿ＴＯ＿ＤＡＴを物理アドレスＡＡに変換して出力し、アドレス変換完了信号をオンにする。
【００５１】
変換結果の物理アドレスＡＡは、制御装置６１内のレジスタ８５に保持され、ＡＡ＿ＦＲＯＭ＿ＤＡＴとして出力される。このとき、ＬＡ＿ＴＯ＿ＤＡＴもレジスタ８５に保持され、ＬＡ＿ＦＲＯＭ＿ＤＡＴとして出力される。信号ＤＡＴ＿ＢＵＳＹは、ＤＡＴ３９の使用中はオンとなり、変換結果がＴＬＢ３７に登録されるとオフとなる。
【００５２】
図８は、キーアクセスポート６２の入出力信号を示している。信号ＫＥＹ＿ＰＯＲＴ＿ＶＡＬＩＤは、制御装置６１から出力され、信号ＫＥＹ＿ＦＲＯＭ＿ＫＥＹ＿ＳＴＯＲＡＧＥは、キーストレージ４１から送出される主記憶キーを表す。キーアクセスポート６２は、ＫＥＹ＿ＦＲＯＭ＿ＫＥＹ＿ＳＴＯＲＡＧＥを信号ＫＥＹ＿ＦＲＯＭ＿ＫＥＹ＿ＰＯＲＴとして出力する。信号ＫＥＹ＿ＰＯＲＴ＿ＢＵＳＹは、キーアクセスポート６２の使用中はオンとなり、主記憶キーが出力されるとオフとなる。
【００５３】
図９は、制御装置６１の構成図である。信号ＬＡは、ＣＰＵ命令演算部３１から送出される論理アドレスを表す。インバータ９１は、ＣＰＵ命令演算部３１からの主記憶アクセス要求信号を反転して出力し、ＡＮＤゲート９２は、ＬＡと主記憶アクセス要求の論理積を出力する。ＡＮＤゲート９３は、レジスタ９５に保持されたＯＲゲート９４の出力と、インバータ９１の出力の論理積を出力する。ＯＲゲート９４は、ＡＮＤゲート９２および９３の出力の論理和を、ＬＡ＿ＴＯ＿ＴＬＢ、ＬＡ＿ＴＯ＿ＣＡＣＨＥ、ＬＡ＿ＴＯ＿ＫＥＹ＿ＢＵＦＦＥＲ、およびＬＡ＿ＴＯ＿ＤＡＴとして出力する。
【００５４】
このような回路構成によれば、主記憶アクセス要求がオンとなって論理アドレスが送られてくると、その論理アドレスがＴＬＢ３７、キャッシュ装置３４、キーバッファ３８、およびＤＡＴ３９に送られる。その後、主記憶アクセス要求がオフになっても、レジスタ９５に論理アドレスが保持されているので、論理アドレスを繰り返し送出することができる。
【００５５】
また、インバータ９６および９７は、それぞれ、ＤＡＴ＿ＢＵＳＹおよびＫＥＹ＿ＰＯＲＴ＿ＢＵＳＹを反転して出力し、ＡＮＤゲート９２は、ＴＬＢ＿ＭＩＳＳと、インバータ９６および９７の出力の論理積を、アドレス変換要求として出力する。
【００５６】
また、ＤＡＴ３９からのアドレス変換完了信号は、キーストレージ４１に対するキー要求信号として出力される。キー要求信号を受け取ったキーストレージ４１は、キー要求受け付け信号を返送し、この信号はＴＬＢ登録要求信号として出力される。ＴＬＢ３７は、ＤＡＴ３９による変換結果の登録が完了すると、ＴＬＢ登録完了信号を出力し、この信号によりＤＡＴ＿ＢＵＳＹがオフとなって、ＤＡＴ３９が開放される。
【００５７】
このような回路構成によれば、アドレス変換の完了後、直ちにキー要求が発行され、それをトリガとして、直ちにＴＬＢ登録およびＤＡＴ開放が行われる。
また、キーストレージ４１からのキー到着報告信号は、キー登録要求信号として出力され、キーバッファ３８は、主記憶キーの登録が完了すると、キー登録完了信号を出力する。このキー登録完了信号を受け取ると、制御装置６１は、主記憶アクセス要求の処理を再開する。
【００５８】
また、インバータ９９は、キー要求信号を反転して出力し、ＯＲゲート１００は、インバータ９７および９９の出力の否定の論理和を、反転して出力する。ＡＮＤゲート１０１は、ＯＲゲート１００の出力とキー登録要求信号の論理積を、ＫＥＹ＿ＰＯＲＴ＿ＶＡＬＩＤとして出力する。
【００５９】
ところで、ＣＰＵ命令演算部３１とＣＰＵ記憶部３２の間には、前述したように、命令フェッチ用およびオペランドフェッチ用の２つのデータパスが存在し、ＣＰＵ記憶部３２内のＴＬＢ３７、キーバッファ３８、およびキャッシュ装置３４は、２つのデータパスに対応して２つずつ設けられている。したがって、ＤＡＴ３９は、命令フェッチとオペランドフェッチのどちらからアドレス変換要求が発行されたかを認識する必要がある。
【００６０】
そこで、ＤＡＴ３９は、図１０に示すように、命令フェッチとオペランドフェッチのそれぞれについて、アドレス変換要求信号を受け取り、アドレス変換完了信号を出力する。また、制御装置６１は、図１１に示すように、命令フェッチとオペランドフェッチのそれぞれについて、ＫＥＹ＿ＰＯＲＴ＿ＶＡＬＩＤを生成する。
【００６１】
この場合、図１２に示すように、２つのキーアクセスポート６２のうち、一方は命令フェッチ用に使用され、他方はオペランドフェッチ用に使用される。これらのキーアクセスポート６２は、それぞれ命令フェッチおよびオペランドフェッチに関するＫＥＹ＿ＰＯＲＴ＿ＶＡＬＩＤを受け取って、ＫＥＹ＿ＰＯＲＴ＿ＢＵＳＹを出力する。
【００６２】
ＡＮＤゲート１１１は、命令フェッチ用のキーアクセスポート６２からのＫＥＹ＿ＰＯＲＴ＿ＢＵＳＹとキー要求信号の論理積を出力し、ＡＮＤゲート１１２は、オペランドフェッチ用のキーアクセスポート６２からのＫＥＹ＿ＰＯＲＴ＿ＢＵＳＹとキー要求信号の論理積を出力する。そして、ＯＲゲート１１３は、ＡＮＤゲート１１１および１１２の出力の論理和を、キー要求＿ＴＯ＿ＫＥＹ＿ＳＴＯＲＡＧＥとして、キーストレージ４１に送出する。
【００６３】
ここでは、２つのキーアクセスポート６２が設けられた場合について説明したが、一般には、２つ以上のキーアクセスポート６２を設けることができる。キーアクセスポート６２の数が多いほど、多くのキーアクセスを同時に処理することができる。
【００６４】
次に、図１３から図１７までを参照しながら、本発明のキャッシュ制御の特徴について補足する。
命令の実行において、図１３のようなステージがある場合を考える。この場合、ＣＰＵが１つの命令を実行するためには、以下の手順で動作が行われる。
（１）命令フェッチ部
Ｔ1：命令アドレスの生成
Ｔ2：命令アドレスの変換（仮想アドレス→物理アドレス）
Ｔ3：命令アドレスに対する命令の読み出し
Ｔ4：チェック、命令コードの解読
（２）命令実行部
Ｔ5：オペランドアドレスの生成
Ｔ6：オペランドアドレスの変換
Ｔ7：オペランドの読み出し
Ｔ8：演算
Ｔ9：結果のチェック
Ｔ10：結果をレジスタまたは記憶装置へ書き込む
このような手順を単一のフローで制御すると、図１４に示すように、先行する命令Ｉ１の実行が終了してから、後続する命令Ｉ２のフェッチが行われることになる。連続する命令の処理を高速化する方法としては、図１５に示すようなパイプライン制御が知られている。この制御によれば、命令Ｉ１のフェッチが終了すれば、直ちに命令Ｉ２のフェッチを開始することができる。
【００６５】
この場合、命令Ｉ１の実行と命令Ｉ２のフェッチが同時に行われるため、ハードウェアは別々に必要になる。つまり、命令フェッチと命令実行の両方に存在するアドレス変換とデータ読み出しのために、ハードウェアはそれぞれ必要になる。このため、図２の情報処理装置では、ＴＬＢ、キャッシュ装置等が別々に用意されている。
【００６６】
しかし、ＤＡＴについては、アドレス変換用テーブルをそれぞれのキャッシュ装置毎に設けると、必要なハードウェアが大幅に増加し、回路規模の増大につながる。そこで、本実施形態では、命令フェッチとオペランドフェッチで１つのＤＡＴを共用している。
【００６７】
このような構成を前提として、ＤＡＴ開放のための従来および本発明の制御方法を比較すると、図１６のようになる。オペランドフェッチでＴＬＢミスが発生した後、命令フェッチでＴＬＢミスが発生した場合、従来の制御方法では、まず、ＤＡＴによるオペランドアドレスの変換（ＯＰ−ＤＡＴ）に続いて、オペランドフェッチのキーアクセス（ＯＰ−ＫＥＹ−ＷＡＩＴ）が行われる。次に、主記憶キーの到着を待ってＤＡＴが開放され、ＤＡＴによる命令アドレスの変換（ＩＦ−ＤＡＴ）と命令フェッチのキーアクセス（ＩＦ−ＫＥＹ−ＷＡＩＴ）が行われる。
【００６８】
これに対して、本発明の制御方法では、ＯＰ−ＤＡＴの後、直ちにＤＡＴが開放されて、ＯＰ−ＫＥＹ−ＷＡＩＴとＩＦ−ＤＡＴが同時に行われるため、全体として処理が高速化される。
【００６９】
また、ＴＬＢ登録のための従来および本発明の制御方法を比較すると、図１７のようになる。オペランドフェッチでＴＬＢミス（ＯＰ−ＡＣＣ１）が発生した場合、従来の制御方法では、まず、ＯＰ−ＤＡＴに続いてＯＰ−ＫＥＹ−ＷＡＩＴが行われ、主記憶キーの到着を待って、アドレス変換結果のＴＬＢへの登録（ＯＰ−ＴＬＢ−ＷＴ）と主記憶キーのキーバッファへの登録（ＯＰ−ＫＥＹ−ＷＴ）が行われる。そして、オペランドフェッチの処理（ＯＰ−ＡＣＣ１）が再開され、ＴＬＢヒットが発生し、続いて次のオペランドフェッチ（ＯＰ−ＡＣＣ２）が開始される。
【００７０】
これに対して、本発明の制御方法では、ＯＰ−ＤＡＴの後、直ちにＯＰ−ＴＬＢ−ＷＴが行われるため、ＯＰ−ＫＥＹ−ＷＡＩＴの間にＯＰ−ＡＣＣ１とＯＰ−ＡＣＣ２を開始することができる。
【００７１】
【発明の効果】
本発明によれば、主記憶キーによるキー制御保護が提供される情報処理装置において、命令やオペランドへのアクセスが効率化される。
【００７２】
特に、ＣＰＵ命令演算部へのデータ送出処理において、従来は、キーアクセスを行ってからデータを送出していたが、本発明では、キーアクセスを行っている最中にデータを送出するため、データ送出処理に要する時間を短縮することができる。また、キー制御保護を必要としない要求に対しても、キーアクセスを行っている最中にデータを送出し、完了報告を行うため、同様に、データ送出処理に要する時間を短縮することができる。
【００７３】
また、ＴＬＢ登録処理において、従来は、キーアクセスを行ってからＴＬＢ登録を行っていたが、本発明では、キーアクセスを行っている最中にＴＬＢ登録を行う。このため、アウトオブオーダー処理を行うスーパースカラプロセッサにおいて、後続の要求がＴＬＢを参照する場合に、キーアクセス中の先行する要求の処理を待たずにＴＬＢを参照することができ、処理時間が短縮される。
【００７４】
また、ＤＡＴ開放処理において、従来は、キーアクセスを行ってからＤＡＴを開放していたが、本発明では、キーアクセスを行っている最中にＤＡＴを開放する。このため、アウトオブオーダー処理を行うスーパースカラプロセッサにおいて、後続のＤＡＴ要求に対して、キーアクセス中の先行する要求の処理を待たずにＤＡＴを起動できる。したがって、アドレス変換処理の時間が短縮されるとともに、回路規模の増大を抑えることができる。
【００７５】
さらに、キーアクセスポートを複数用意することによって、先行するキーアクセスを行っている最中に、後続のキーアクセスを行うことができるようになる。したがって、ＤＡＴによるアドレス変換処理と、キーアクセスの一連の処理を、それぞれ連続して行うことができ、処理時間が短縮される。
【図面の簡単な説明】
【図１】本発明のキャッシュ制御装置の原理図である。
【図２】情報処理装置の構成図である。
【図３】第１のキャッシュ制御のタイミングチャートである。
【図４】第２のキャッシュ制御のタイミングチャートである。
【図５】キャッシュ制御のフローチャートである。
【図６】ＣＰＵ記憶部の回路を示す図である。
【図７】ＤＡＴの第１の入出力信号を示す図である。
【図８】キーアクセスポートの第１の入出力信号を示す図である。
【図９】制御装置の構成図である。
【図１０】ＤＡＴの第２の入出力信号を示す図である。
【図１１】制御装置の入出力信号を示す図である。
【図１２】キーアクセスポートの第２の入出力信号を示す図である。
【図１３】命令処理のステージを示す図である。
【図１４】単一制御を示す図である。
【図１５】パイプライン制御を示す図である。
【図１６】ＤＡＴ開放を示す図である。
【図１７】ＴＬＢ登録を示す図である。
【図１８】従来の情報処理装置の構成図である。
【図１９】従来のキャッシュ制御のタイミングチャートである。
【図２０】従来のキャッシュ制御のフローチャートである。
【符号の説明】
３１  ＣＰＵ命令演算部
３２  ＣＰＵ記憶部
３３  主記憶装置
３４  キャッシュ記憶装置
３５、６１  制御装置
３６  正当性検出回路
３７  ＴＬＢ
３８  キーバッファ
３９  ＤＡＴ
４０、６２  キーアクセスポート
４１  キーストレージ
５１  キャッシュ手段
５２  要求手段
５３  制御手段
５４  送出手段
７１、７６、８２、９４、１００、１１３  ＯＲゲート
７４、７８、８０、８１、８４、９２、９３、９８、１０１、１１１、１１２
ＡＮＤゲート
７２、７５、８３  比較器
７３、７７、７９、９１、９６、９７、９９  インバータ
８５、９５  レジスタ
【図１】
0004131789.tif 000002
【図２】
0004131789.tif 000003
【図３】
0004131789.tif 000004
【図４】
0004131789.tif 000005
【図５】
0004131789.tif 000006
【図６】
0004131789.tif 000007
【図７】
0004131789.tif 000008
【図８】
0004131789.tif 000009
【図９】
0004131789.tif 000010
【図１０】
0004131789.tif 000011
【図１１】
0004131789.tif 000012
【図１２】
0004131789.tif 000013
【図１３】
0004131789.tif 000014
【図１４】
0004131789.tif 000015
【図１５】
0004131789.tif 000016
【図１６】
0004131789.tif 000017
【図１７】
0004131789.tif 000018
【図１８】
0004131789.tif 000019
【図１９】
0004131789.tif 000020
【図２０】
0004131789.tif 000021