(57)【要約】【課題】一次キャッシュメモリに格納された優先度の高いデータが優先度の低いデータで置き換えられることを防止するデータ処理装置を提供する。【解決手段】一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２と、データが一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２のそれぞれに格納可能か否かを示すキャッシュ属性の情報を格納する対応テーブル１３と、データがメインメモリ２から読み出された場合に、キャッシュ属性の情報を参照して、読み出されたデータを一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２のうち格納可能なキャッシュメモリに格納するデータ制御回路１１とを備える。【選択図】図１
2007257192.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリに格納されたデータにアクセス可能なデータ処理装置であって、
複数のキャッシュメモリと、
前記データが前記複数のキャッシュメモリのそれぞれに格納可能か否かを示すキャッシュ属性の情報を格納する対応テーブルと、
前記データが前記メインメモリから読み出された場合に、前記キャッシュ属性の情報を参照して、読み出された前記データを前記データを格納可能なキャッシュメモリに格納するデータ制御回路
とを備えることを特徴とするデータ処理装置。
【請求項２】
前記対応テーブルが、前記データに対応する前記メインメモリのメモリアドレスに関する情報として前記キャッシュ属性の情報を格納することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データが優先度の高さに応じて、前記キャッシュ属性が設定されることを特徴とする請求項１又は２に記載のデータ処理装置。  
【請求項４】
前記データ制御回路が、優先度の高いデータが格納された順に前記複数のキャッシュメモリにアクセスすることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記データ制御回路が、前記キャッシュ属性の情報を参照して、前記データが格納可能なキャッシュメモリのみに前記データを読み出すアクセスをすることを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に係り、特に複数のバッファメモリにアクセスするデータ処理装置に関する。
【背景技術】
【０００２】
メインメモリに格納されたアクセスされる頻度（以下において、「アクセス頻度」という。）の高いデータを、メインメモリより高速に動作するキャッシュメモリに転記することによって、データ処理装置がメインメモリにアクセスする回数を減らせる。その結果、データ処理装置によるデータ処理の高速化が達成される。更に、複数のキャッシュメモリを備え、データ処理速度の向上を図ったデータ処理装置が提案されている（例えば、特許文献１参照。）。
【０００３】
データ処理装置が、一次キャッシュメモリと、動作速度が一次キャッシュメモリより低速であるがメインメモリより高速な二次キャッシュメモリとを有する場合、データ処理装置は一次キャッシュメモリ、二次キャッシュメモリの順にアクセスする。一次キャッシュメモリにアクセス頻度の高いデータ格納される場合は、データ処理装置のデータ処理が高速化される。
【０００４】
要求するデータが一次キャッシュメモリ及び二次キャッシュメモリのいずれにも格納されていない場合、データ処理装置はメインメモリから要求するデータを読み出す。メインメモリから読み出されたデータは、一次キャッシュメモリ及び二次キャッシュメモリにも格納される。そのため、一次キャッシュメモリに格納された優先度の高いデータが、優先度の低いデータで置き換えられる可能性がある。ここで、「優先度の高いデータ」とは、アクセス頻度が高いデータ、或いは処理時間が短いことが要求される処理に使用される、高速にアクセスされる必要があるデータである。「優先度の低いデータ」とは、アクセス頻度が低いデータ、或いは処理時間が長くてもよい処理に使用される、高速にアクセスされる必要のないデータである。優先度の高いデータが優先度の低いデータで置き換えられた場合、優先度の高いデータに関して一次キャッシュメモリのヒット率が低下する。「ヒット率」は、データ処理装置がキャッシュメモリにアクセスした際に、要求するデータがキャッシュメモリに格納されている確率、つまりキャッシュメモリにおいてキャッシュヒットする確率である。一次キャッシュメモリのヒット率が低下する結果、データ処理装置の処理速度が低下する。
【特許文献１】特開平５−７３４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、一次キャッシュメモリに格納された優先度の高いデータが優先度の低いデータで置き換えられることを防止するデータ処理装置を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、メインメモリに格納されたデータにアクセス可能なデータ処理装置であって、複数のキャッシュメモリと、データが複数のキャッシュメモリのそれぞれに格納可能か否かを示すキャッシュ属性の情報を格納する対応テーブルと、データがメインメモリから読み出された場合に、キャッシュ属性の情報を参照して、読み出されたデータを読み出されたデータを格納可能なキャッシュメモリに格納するデータ制御回路とを備えるデータ処理装置が提供される。
【発明の効果】
【０００７】
本発明によれば、一次キャッシュメモリに格納された優先度の高いデータが優先度の低いデータで置き換えられることを防止するデータ処理装置を提供できる。
【発明を実施するための最良の形態】
【０００８】
次に、図面を参照して、本発明の第１及び第２の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第１及び第２の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００９】
（第１の実施の形態）
本発明の第１の実施の形態に係るデータ処理装置は、図１に示すように、メインメモリ２に格納されたデータにアクセス可能なデータ処理装置１であって、一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２と、データが一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２のそれぞれに格納可能か否かを示すキャッシュ属性の情報を格納する対応テーブル１３と、データがメインメモリ２から読み出された場合に、キャッシュ属性の情報を参照して、読み出されたデータを一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２のうち読み出されたデータを格納可能なキャッシュメモリに格納するデータ制御回路１１とを備える。データ処理装置１とメインメモリ２は、データバス３を介して接続される。
【００１０】
データ制御回路１１は、メインメモリ２等から命令コードを読み出し、図１に示した内部レジスタ１４に格納する。データ制御回路１１は、内部レジスタ１４に格納された命令コードをデコードして実行する。
【００１１】
一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２は、メインメモリ２より高速に動作する。又、二次キャッシュメモリ１２２の動作速度は、一次キャッシュメモリ１２１より低速であるがメインメモリ２より高速である。
【００１２】
対応テーブル１３は、キャッシュ属性の情報を格納可能なメモリ装置である。対応テーブル１３として、例えばキャッシュ属性の情報のみを格納するバッファを使用してもよいし、キャッシュ属性以外の情報も格納するバッファを対応テーブル１３として使用してもよい。例えば、データ処理装置１が管理する仮想アドレスとメインメモリ２の物理アドレスの対応表を含むアドレス情報を格納するアドレス変換バッファ（ＴＬＢ）を対応テーブル１３として使用可能である。ＴＬＢは、データ制御回路１１が一次キャッシュメモリ１２１、二次キャッシュメモリ１２２或いはメインメモリ２にアクセスする際に参照するバッファである。一般にＴＬＢに格納されるアドレス情報は、対応表に記載された各メモリアドレスに対応するデータのキャッシュメモリに関する情報（以下において、「キャッシュメモリ情報」という。）を含む。ここで、「メモリアドレスに対応するデータ」は、メモリアドレスによって定まる記憶領域に記憶されたデータである。ＴＬＢに格納されるキャッシュメモリ情報は、データがライトスルーであるかライトバックであるか等の情報である。
【００１３】
ＴＬＢを対応テーブル１３として使用する場合は、ＴＬＢが格納するキャッシュメモリ情報にキャッシュ属性の情報を含ませる。つまり、ＴＬＢが、データに対応するメインメモリ２のメモリアドレスに関する情報としてキャッシュ属性の情報を格納する。図２に、アドレス変換バッファに格納されるキャッシュメモリ情報に含まれるキャッシュ属性の情報の例を示す。図２において、「キャッシュ可」のキャッシュ属性を有するメモリアドレスは、一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２に格納可能なデータに対応するメモリアドレスであることを示す。「一次キャッシュ不可／二次キャッシュ可」のキャッシュ属性を有するメモリアドレスは、一次キャッシュメモリ１２１に格納できないが、二次キャッシュメモリ１２２には格納できるデータに対応するメモリアドレスであることを示す。例えば、属性番号「０」のメモリアドレスに対応するデータは、一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２に格納可能である。属性番号「４」のメモリアドレスに対応するデータは、一次キャッシュメモリ１２１に格納不可、且つ二次キャッシュメモリ１２２に格納可能である。属性番号「２」のメモリアドレスに対応するデータは、一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２の両方に格納不可である。
【００１４】
キャッシュ属性は、ＴＬＢに格納されるキャッシュメモリ情報と同様にして設定可能である。例えば、データ処理装置１の開発段階における動作確認作業において優先度の低いデータが抽出され、優先度の低いデータに対応するメモリアドレスのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」に設定される。つまり、データがアクセスされる頻度に応じて、データのキャッシュ属性が設定される。
【００１５】
図１に示したデータ処理装置１が、メインメモリ２に格納されたデータを一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２に転記する方法の例を、図３に示したフローチャートを参照して説明する。以下では、データ制御回路１１がデコードした命令コードが、データの読み出し命令であるとする。又、対応テーブル１３が、図２に示したキャッシュメモリ情報を格納するＴＬＢであるとする。
【００１６】
（イ）ステップＳ１０において、データ制御回路１１がメインメモリ２から読み出した命令コードをデコードする。
【００１７】
（ロ）ステップＳ２０において、データ制御回路１１が、デコードされた読み出し命令で指定されたアドレスに対応するデータ（以下において、「要求データ」という。）のキャッシュ属性を対応テーブル１３から取得する。
【００１８】
（ハ）ステップＳ３０において、データ制御回路１１が、要求データのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」であるか否かを判断する。要求データのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」である場合は、ステップＳ１００に進む。要求データのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」ではない場合、ステップＳ２００に進む。
【００１９】
（ホ）ステップＳ１００において、データ制御回路１１が二次キャッシュメモリ１２２にアクセスする。ステップＳ１１０において要求データが二次キャッシュメモリ１２２に格納されているか否か、つまり二次キャッシュメモリ１２２においてキャッシュヒットしたか否かが判断される。キャッシュヒットした場合は、ステップＳ１２０に進む。キャッシュヒットしなかった場合は、ステップＳ１３０に進む。
【００２０】
（ヘ）ステップＳ１２０において、データ制御回路１１が要求データを二次キャッシュメモリ１２２から読み出す。読み出された要求データは、ステップＳ３００において内部レジスタ１４に格納される。
【００２１】
（ト）ステップＳ１３０において、データ制御回路１１が要求データをメインメモリ２から読み出す。読み出された要求データは、ステップＳ１４０において二次キャッシュメモリ１２２に転記される。更に、読み出された要求データは、ステップＳ３００において内部レジスタ１４に格納される。
【００２２】
（チ）ステップＳ２００において、データ制御回路１１が一次キャッシュメモリ１２１にアクセスする。ステップＳ２１０において、一次キャッシュメモリ１２１においてキャッシュヒットしたか否かが判断され、キャッシュヒットした場合はステップＳ２２０に進む。キャッシュヒットしなかった場合は、ステップＳ２３０に進む。
【００２３】
（リ）ステップＳ２２０において、データ制御回路１１が要求データを一次キャッシュメモリ１２１から読み出す。読み出された要求データは、ステップＳ３００において内部レジスタ１４に格納される。
【００２４】
（ヌ）ステップＳ２３０において、データ制御回路１１が二次キャッシュメモリ１２２にアクセスする。ステップＳ２４０において、二次キャッシュメモリ１２２においてキャッシュヒットしたか否かが判断され、キャッシュヒットした場合はステップＳ２５０に進む。キャッシュヒットしなかった場合は、ステップＳ２６０に進む。
【００２５】
（ル）ステップＳ２５０において、データ制御回路１１が要求データを二次キャッシュメモリ１２２から読み出す。読み出された要求データは、ステップＳ３００において内部レジスタ１４に格納される。
【００２６】
（ヲ）ステップＳ２６０において、データ制御回路１１が要求データをメインメモリ２から読み出す。読み出された要求データは、ステップＳ２７０において一次キャッシュメモリ１２１に転記される。更に、読み出された要求データは、ステップＳ３００において内部レジスタ１４に格納される。
【００２７】
以上に説明したように、データ制御回路１１は、要求データのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」の場合は、二次キャッシュメモリ１２２のみアクセスする。つまり、要求データが格納されている可能性がない一次キャッシュメモリ１２１に目的データを読み出すためのアクセスをしない。その結果、データ処理装置１は高速にデータ読み出しを行える。要求データのキャッシュ属性が「一次キャッシュ不可／二次キャッシュ可」でない場合は、データ制御回路１１は、優先度が高いデータが格納された順に、例えばアクセス頻度が高いデータ或いは処理速度が速いことが期待されるデータが格納された順に一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２にアクセスする。つまりデータ制御回路１１は、一次キャッシュメモリ１２１、二次キャッシュメモリ１２２の順にアクセスする。
【００２８】
上記の説明では、ステップＳ２７０において要求データを一次キャッシュメモリ１２１に転記するが、同時に要求データを二次キャッシュメモリ１２２に転記してもよい。或いは、要求データを一次キャッシュメモリ１２１に転記する際に置き換えられるデータを、二次キャッシュメモリ１２２に格納してもよい。
【００２９】
一般に、新たなデータがキャッシュメモリに転記される際に、キャッシュメモリに格納された所定のデータが新たに転記されたデータで置き換えられる。置き換えられるデータは、例えばキャッシュメモリに格納されたデータのうち、アクセスされたのが最も古いデータ等である。通常、置き換えられたデータはメインメモリに書き戻される。メインメモリから読み出された後にキャッシュメモリに格納されたデータが変更されている可能性があるためである。
【００３０】
以上に説明したように、本発明の第１の実施の形態に係るデータ処理装置１では、データの読み出し命令が入力された場合に、要求されたデータが一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２それぞれに格納可能か否かを示すキャッシュ属性を参照して、データ制御回路１１が一次キャッシュメモリ１２１及び二次キャッシュメモリ１２２にアクセスする。そして、データ制御回路１１はキャッシュ属性を参照して、キャッシュヒットせずにメインメモリ２から読み出されたデータを一次キャッシュメモリ１２１或いは二次キャッシュメモリ１２２に転記する。そのため、一次キャッシュメモリ１２１に格納された「優先度の高いデータ」が「優先度の低いデータ」で置き換えられない。その結果、優先度の高いデータに関して一次キャッシュメモリ１２１のヒット率は低下せず、データ処理装置１のデータ処理速度の低下を抑制できる。
【００３１】
（第２の実施の形態）
本発明の第２の実施の形態に係るデータ処理装置１は、図４に示すように、一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎを有する（ｎ：３以上の整数）。キャッシュメモリの数が３以上である点が図１に示したデータ処理装置１と異なる。その他の構成については、第１の実施の形態と同様である。
【００３２】
一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎは、データの読み出し命令を実行する際にデータ制御回路１１がアクセスする順として優先順位が設定される。具体的には、データ制御回路１１は、一次キャッシュメモリ１２１、一次キャッシュメモリ１２１、・・・、ｎ次キャッシュメモリ１２ｎの順にアクセスする。
【００３３】
対応テーブル１３は、メインメモリ２に格納されたデータが、一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎのそれぞれに格納可能か否かを示すキャッシュ属性の情報を格納する。優先度の高いデータほど、優先順位の高いキャッシュメモリに格納可能なキャッシュ属性が付与される。
【００３４】
図４に示したデータ処理装置１では、データの読み出し命令が入力された場合に、データ制御回路１１がキャッシュ属性の情報を参照して、一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎのうち要求データが格納されている可能性のあるキャッシュメモリのみにアクセスする。そのため、データ処理装置１は高速にデータ読み出しを実行できる。
【００３５】
又、図４に示したデータ処理装置１では、キャッシュヒットせずにメインメモリ２から要求データが読み出された場合、データ制御回路１１がキャッシュ属性を参照し、一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎのうち要求データを格納可能なキャッシュメモリのみに要求データを転記する。そのため、一次キャッシュメモリ１２１〜ｎ次キャッシュメモリ１２ｎにおいて、「優先度の低いデータ」による「優先度の高いデータ」の置き換えが発生しない。その結果、優先順位の高いキャッシュメモリのヒット率は低下せず、データ処理装置１のデータ処理速度の低下を抑制できる。他は、第１の実施の形態と実質的に同様であり、重複した記載を省略する。
【００３６】
（その他の実施の形態）
上記のように、本発明は第１及び第２の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００３７】
既に述べた第１及び第２の実施の形態の説明においては、キャッシュメモリがデータ処理装置１に内蔵されている例を示したが、キャッシュメモリがデータ処理装置１の外部に存在してもよい。
【００３８】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施の形態に係るデータ処理装置の構成を示す模式図である。
【図２】本発明の第１の実施の形態に係るデータ処理装置が参照するキャリアメモリ情報の例を示す表である。
【図３】本発明の第１の実施の形態に係るデータ処理装置の動作を説明するためのフローチャートである。
【図４】本発明の第２の実施の形態に係るデータ処理装置の構成を示す模式図である。
【符号の説明】
【００４０】
１…データ処理装置
２…メインメモリ
３…データバス
１１…データ制御回路
１２１…一次キャッシュメモリ
１２２…二次キャッシュメモリ
１２ｎ…ｎ次キャッシュメモリ
１３…対応テーブル
１４…内部レジスタ
【図１】
2007257192.tif 000003
【図２】
2007257192.tif 000004
【図３】
2007257192.tif 000005
【図４】
2007257192.tif 000006