(57)【特許請求の範囲】
【請求項１】
クリティカルワードファーストに対応しない外部バスを介して接続された主記憶装置から前記クリティカルワードファーストに対応する内部バスに接続された第１ラインサイズを有する１次キャッシュにデータを転送するキャッシュユニットにおいて、
前記第１ラインサイズ以上の第２ラインサイズを有する２次キャッシュと、前記１次キャッシュの第１リフィル要求のバースト転送の先頭アドレスが前記２次キャッシュに存在していない場合に、前記第１リフィル要求を、前記バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が前記第１ラインサイズ未満である第２リフィル要求に変換する要求変換部と、を備えるキャッシュ制御部と、
前記要求変換部により変換された第２リフィル要求を前記主記憶装置に転送し、前記第２リフィル要求に対応する処理データを前記主記憶装置から受け取り、受け取った処理データを前記１次キャッシュに転送する非キャッシュ制御部と、
を備えることを特徴とするキャッシュユニット。
【請求項２】
前記処理データのアドレスが所定の閾値アドレス以上である場合に、前記要求変換部をオンにする切換部をさらに備える、
請求項１記載のキャッシュユニット。
【請求項３】
前記切換部は、前記第１リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合、又は前記第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、前記閾値アドレスをアドレス順が小さい方向にシフトする、
請求項２記載のキャッシュユニット。
【請求項４】
データを変換するデータ変換部をさらに備え、
前記キャッシュ制御部は、前記処理データを含む第２ラインサイズのデータを前記主記憶装置に要求し、
前記データ変換部は、前記キャッシュ制御部により要求された前記処理データを含む第２ラインサイズのデータを、前記１次キャッシュのリフィルを実行するときに前記処理データの後方に配置すべきリフィルデータに変換し、変換したリフィルデータを前記プロセッシングユニットに転送する、
請求項１乃至３の何れか１項記載のキャッシュユニット。
【請求項５】
前記非キャッシュ制御部は、前記２次キャッシュのリフィル要求を前記キャッシュ制御部に許可する、
請求項１乃至４の何れか１項記載のキャッシュユニット。
【請求項６】
主記憶装置と、
第１ラインサイズを有する１次キャッシュと、
前記主記憶装置から前記１次キャッシュにデータを転送するキャッシュユニットと、
前記１次キャッシュと前記キャッシュユニットとを接続するクリティカルワードファーストに対応しない外部バスと、
前記主記憶装置と前記キャッシュユニットとを接続するクリティカルワードファーストに対応する内部バスと、を備え、
前記キャッシュユニットは、
前記第１ラインサイズ以上の第２ラインサイズを有する２次キャッシュと、前記１次キャッシュの第１リフィル要求のバースト転送の先頭アドレスが前記２次キャッシュに存在していない場合に、前記第１リフィル要求を、前記バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が前記第１ラインサイズ未満である第２リフィル要求に変換する要求変換部と、を備えるキャッシュ制御部と、
前記要求変換部により変換された第２リフィル要求を前記主記憶装置に転送し、前記第２リフィル要求に対応する処理データを前記主記憶装置から受け取り、受け取った処理データを前記１次キャッシュに転送する非キャッシュ制御部と、
を備えることを特徴とするプロセッシングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キャッシュユニット及びプロセッシングシステムに関する。
【背景技術】
【０００２】
従来、クリティカルワードファースト（以下、「ＣＷＦ（Critical Word First）」という）対応バスとＣＷＦ非対応バスとが混在するシステムオンチップ（以下、「ＳｏＣ（System on Chip）」という）などのチップセットにおいて、ＣＷＦ対応バスに接続されたプロセッシングユニットが要求するデータがＣＷＦ非対応バスに接続されたＤＲＡＭ（Dynamic Random Access Memory）等の主記憶装置に格納されている場合には、主記憶装置からプロセッシングユニットにＣＷＦ非対応バスを介してデータが転送される。
【０００３】
しかしながら、プロセッシングユニットが処理しようとしているデータ（以下、「クリティカルワード」という）は、主記憶装置から転送されたデータの任意の位置に含まれている。この場合には、プロセッシングユニットは、クリティカルワードを受け取るまでストール状態を維持する。その結果、プロセッシングユニットの処理効率が低下する。
【０００４】
従来、ＣＷＦ非対応バスに接続された主記憶装置からＣＷＦ対応バスに接続されたプロセッシングユニットにデータが転送される場合のプロセッシングユニットの処理効率を改善することが望まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−５１０２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ＣＷＦ非対応バスに接続されたユニットからＣＷＦ対応バスに接続されたユニットにデータが転送される場合のＣＷＦ対応バスに接続されたユニットの処理効率を改善することである。
【課題を解決するための手段】
【０００７】
本実施形態に係るキャッシュユニットは、クリティカルワードファーストに対応しない外部バスを介して接続された主記憶装置からクリティカルワードファーストに対応する内部バスに接続された第１ラインサイズを有する１次キャッシュにデータを転送するモジュールである。キャッシュユニットは、キャッシュ制御部と、非キャッシュ制御部と、を備える。キャッシュ制御部は、第１ラインサイズ以上の第２ラインサイズを有する２次キャッシュと、１次キャッシュの第１リフィル要求のバースト転送の先頭アドレスが２次キャッシュに存在していない場合に、第１リフィル要求を、バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が第１ラインサイズ未満である第２リフィル要求に変換する要求変換部と、を備える。非キャッシュ制御部は、要求変換部により変換された第２リフィル要求を主記憶装置に転送し、第２リフィル要求に対応する処理データを主記憶装置から受け取り、受け取った処理データを１次キャッシュに転送するモジュールである。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係るプロセッシングシステム１の構成を示すブロック図。
【図２】キャッシュユニット１０の構成を示すブロック図。
【図３】プロセッシングシステム１のデータ処理の手順を示すフローチャート。
【図４】図３のデータ処理において取り扱われるデータの構造を示す概略図。
【図５】図３のデータ処理におけるキャッシュユニット１０内のデータフローを示すブロック図。
【図６】第２実施形態に係るキャッシュユニット１０の構成を示すブロック図。
【図７】切換部１４６の切換処理（第１例）の手順を示すフローチャート。
【図８】Ｓ７０１を説明するための概略図。
【図９】切換部１４６の切換処理（第２例）の手順を示すフローチャート。
【図１０】図９の切換処理において用いられる要求テーブルの概略図。
【図１１】切換部１４６の切換処理（第３例）の手順を示すフローチャート。
【図１２】図１１の切換処理において用いられる優先テーブルの概略図。
【図１３】切換部１４６の切換処理（第４例）の手順を示すフローチャート。
【図１４】シフトステップ（Ｓ１３０３）を説明するための概略図。
【図１５】切換部１４６の切換処理（第５例）の手順を示すフローチャート。
【発明を実施するための形態】
【０００９】
本実施形態について図面を参照して説明する。
（第１実施形態）
第１実施形態について説明する。
第１実施形態に係るプロセッシングシステムの構成について説明する。図１は、第１実施形態に係るプロセッシングシステム１の構成を示すブロック図である。
【００１０】
プロセッシングシステム１は、データ処理を実行するシステムである。プロセッシングシステム１は、複数のプロセッシングユニットＰＵ０〜ＰＵ３と、キャッシュユニット１０と、主記憶装置２０と、内部バス３０と、外部バス４０と、を備える。
【００１１】
各プロセッシングユニットＰＵ０〜ＰＵ３は、１次キャッシュＬ１を備える。各プロセッシングユニットＰＵ０〜ＰＵ３は、処理対象となるデータ（以下、「処理データ」という）にデータ処理を実行するモジュールである。１次キャッシュＬ１は、複数ワードのデータを記憶可能な第１ラインサイズを有するメモリである。例えば、第１ラインサイズは８ワード（６４バイト）である。
【００１２】
キャッシュユニット１０は、ＣＷＦに対応しない外部バス４０を介して接続された主記憶装置２０からＣＷＦに対応する内部バス３０に接続された第１ラインサイズを有する１次キャッシュＬ１にデータを転送するモジュールである。
【００１３】
主記憶装置２０は、データを記憶可能な記憶媒体である。例えば、主記憶装置２０はＤＲＡＭである。
内部バス３０は、ＣＷＦに対応するデータバスである。
外部バス４０は、インクリメンタル（以下、「ＩＮＣＲ」という）バーストに対応するデータバスである。外部バス４０は、ＣＷＦに対応していない。
【００１４】
なお、図１には、４つのプロセッシングユニットＰＵ０〜ＰＵ３が１次キャッシュＬ１を備えるプロセッシングシステム１が図示されるが、プロセッシングユニットの数は幾つでも良いし、プロセッシングユニットは１次キャッシュＬ１を備えていなくても良い。
【００１５】
図２は、キャッシュユニット１０の構成を示すブロック図である。
キャッシュユニット１０は、内部バスインタフェース１２と、キャッシュ制御部１４と、非キャッシュ制御部１６と、外部バスインタフェース１８と、を備える。
【００１６】
内部バスインタフェース１２は、内部バス３０の転送方式であるＣＷＦに従ってデータを転送するモジュールである。内部バスインタフェース１２は、キャッシュ制御部１４、及び非キャッシュ制御部１６と、内部バス３０との間に設けられる。
【００１７】
キャッシュ制御部１４は、２次キャッシュＬ２と、要求変換部１４２と、データ変換部１４４と、を備える。キャッシュ制御部１４は、２次キャッシュＬ２へのアクセスを制御するとともに、２次キャッシュＬ２のリフィルを実行するモジュールである。
【００１８】
２次キャッシュＬ２は、複数ワードのデータを記憶可能な第２ラインサイズを有するメモリである。第２ラインサイズは、第１ラインサイズ以上である。例えば、第２ラインサイズは３２ワード（２５６バイト）である。
要求変換部１４２は、第１リフィル要求を第２リフィル要求に変換するモジュールである。
データ変換部１４４は、データを変換するモジュールである。
【００１９】
非キャッシュ制御部１６は、主記憶装置２０を含む２次キャッシュＬ２以外のモジュールへのアクセスを制御するモジュールである。
外部バスインタフェース１８は、キャッシュ制御部１４、非キャッシュ制御部１６と外部バス４０との間に設けられる。
【００２０】
プロセッシングシステム１の動作について説明する。以下、プロセッシングユニットＰＵ０が、１次キャッシュＬ１に記憶されていない処理データにデータ処理を実行する例について説明する。
図３は、プロセッシングシステム１のデータ処理の手順を示すフローチャートである。図４は、図３のデータ処理において取り扱われるデータの構造を示す概略図である。図５は、図３のデータ処理におけるキャッシュユニット１０内のデータフローを示すブロック図である。
【００２１】
＜第１リフィル要求発行ステップ（Ｓ３０１）＞  プロセッシングユニットＰＵ０が、１次キャッシュＬ１のリフィルを要求するための第１リフィル要求（図４（１））を発行し、発行した第１リフィル要求を内部バスインタフェース１２に送信する（図５（１））。図４（１）に示すように、第１リフィル要求では、要求内容を示すコマンドは読み出し（Ｒｄ）であり、バースト長は第１ラインサイズ（８ワード）であり、バースト転送の先頭アドレスは処理データのアドレス（0x1000_00F0）であり、バーストパターンは内部バス３０の転送方式（ＣＷＦ）である。すなわち、図４（１）の第１リフィル要求は、アドレス“0x1000_00F0”のデータ、アドレス“0x1000_00F8”のデータ、アドレス“0x1000_00C0”のデータ、アドレス“0x1000_00C8”のデータ、アドレス“0x1000_00D0”のデータ、アドレス“0x1000_00D8”のデータ、アドレス“0x1000_00E0”のデータ、及びアドレス“0x1000_00E8”のデータをＣＷＦで順番に転送するための要求である。
【００２２】
＜Ｓ３０２＞  内部バスインタフェース１２が、第１リフィル要求のアドレスに基づいて、キャッシュ制御部１４へのアクセス（以下、「キャッシュアクセス」という）か、非キャッシュ制御部１６へのアクセス（以下、「非キャッシュアクセス」という）か、を判定する。例えば、内部バスインタフェース１２は、キャッシュアクセスのメモリ空間アドレスのリストと第１リフィル要求のアドレスとを比較し、第１リフィル要求のアドレスがそのリストに含まれる場合にキャッシュアクセスと判定し、含まれない場合に非キャッシュアクセスと判定する。キャッシュアクセスと判定された場合には（Ｓ３０２−ＹＥＳ）、第１リフィル要求が要求変換部１４２へ送信され（図５（２））、Ｓ３０３が実行される。非キャッシュアクセスと判定された場合には（Ｓ３０２−ＮＯ）、第１リフィル要求が非キャッシュ制御部１６へ送信され、非キャッシュアクセスステップ（Ｓ３２１）が実行される。
【００２３】
＜Ｓ３０３＞  要求変換部１４２が、２次キャッシュＬ２に処理データが記憶されているか否かを判定する。すなわち、要求変換部１４２は、第１リフィル要求のバースト転送の先頭アドレスが２次キャッシュＬ２に存在しているか否かを判定する。例えば、内部バスインタフェース１２は、２次キャッシュＬ２に記憶されたデータのアドレスリストと第１リフィル要求のアドレスとを比較する。第１リフィル要求のアドレスがアドレスリストに含まれる（すなわち、第１リフィル要求のバースト転送の先頭アドレスが２次キャッシュＬ２に存在している）場合には、２次キャッシュＬ２に処理データが記憶されていると判定し、第１リフィル要求のアドレスがアドレスリストに含まれない（すなわち、第１リフィル要求のバースト転送の先頭アドレスが２次キャッシュＬ２に存在していない）場合には、２次キャッシュＬ２に処理データが記憶されていないと判定する。２次キャッシュＬ２に処理データが記憶されていると判定された場合には（Ｓ３０３−ＹＥＳ）、１次キャッシュリフィルステップ（Ｓ３１２）が実行される。２次キャッシュＬ２に処理データが記憶されていないと判定された場合には（Ｓ３０３−ＮＯ）、要求変換ステップ（Ｓ３０４）が実行される。
【００２４】
＜要求変換ステップ（Ｓ３０４）＞  要求変換部１４２が、第１リフィル要求を第２リフィル要求（図４（２））に変換し、変換した第２リフィル要求を非キャッシュ制御部１６に送信する（図５（３））。より具体的には、要求変換部１４２は、第１リフィル要求のバースト転送の先頭アドレスが２次キャッシュＬ２に存在していない場合に、第１リフィル要求のバースト長を短縮する（例えば、１ワードに変更する）ことにより、第１リフィル要求を第２リフィル要求に変換する。第２リフィル要求では、バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が第１ラインサイズ未満である。図４（２）に示すように、第２リフィル要求では、要求内容は読み出し（Ｒｄ）であり、バースト転送の先頭アドレスは処理データのアドレス（0x1000_00F0）であり、バースト長は１ワードであり、バーストパターンは外部バス４０の転送方式（ＩＮＣＲ）である。すなわち、図４（２）の第２リフィル要求は、アドレス“0x1000_00F0”のデータをＩＮＣＲで転送するための要求である。
【００２５】
＜第２リフィル要求転送ステップ（Ｓ３０５）＞  非キャッシュ制御部１６が、第２リフィル要求を外部バスインタフェース１８に転送する（図５（４））。次いで、外部バスインタフェース１８が、外部バス４０を介して、第２リフィル要求を主記憶装置２０に転送する（図５（５））。すなわち、非キャッシュ制御部１６は、外部バスインタフェース１８を介して、要求変換部１４２により変換された第２リフィル要求を主記憶装置２０に転送する。
【００２６】
＜許可ステップ（Ｓ３０６）＞  非キャッシュ制御部１６が、所定のタイミングで、２次キャッシュＬ２のリフィル要求を許可するための許可通知をキャッシュ制御部１４に送信する（図５（６））。例えば、許可通知は、第２リフィル要求が外部バス４０により受理されたことを示すフラグ等の１ビット情報である。例えば、所定のタイミングは、外部バス４０が第２リフィル要求を受理したタイミング、又は要求変換ステップ（Ｓ３０４）の後にキャッシュユニット１０が発行するコマンドが第２リフィル要求を追い越さないことが確定したタイミングである。これにより、１次キャッシュ向けのリフィルデータが処理データより先にプロセッシングユニットＰＵ０に転送されることを確実に防ぐことができる。
【００２７】
＜２次キャッシュリフィル要求転送ステップ（Ｓ３０７）＞  キャッシュ制御部１４が、許可通知を受け取った後、２次キャッシュＬ２のリフィル要求（図４（３））を発行し、発行した２次キャッシュＬ２のリフィル要求を外部バスインタフェース１８に送信する（図５（７））。次いで、外部バスインタフェース１８が、２次キャッシュＬ２のリフィル要求を主記憶装置２０に転送する（図５（８））。すなわち、キャッシュ制御部１４は、外部バスインタフェース１８を介して、処理データを含む第２ラインサイズのデータを主記憶装置２０に要求する。
【００２８】
＜処理データ転送ステップ（Ｓ３０８）＞  外部バスインタフェース１８が、外部バス４０を介して、第２リフィル要求に対応する１ワードの処理データ（図４（４））を主記憶装置２０から受け取る（図５（９））。次いで、外部バスインタフェース１８が、処理データを非キャッシュ制御部１６に転送する（図５（１０））。次いで、非キャッシュ制御部１６が、処理データを内部バスインタフェース１２に転送する（図５（１１））。次いで、内部バスインタフェース１２が処理データをプロセッシングユニットＰＵ０に転送する（図５（１２））。すなわち、非キャッシュ制御部１６は、外部バスインタフェース１８を介して主記憶装置２０から受け取った処理データを、内部バスインタフェース１２を介して１次キャッシュＬ１に転送する。これにより、プロセッシングユニットＰＵ０は、１ワードの処理データのみを先に受け取ることができる。換言すると、プロセッシングユニットＰＵ０は、バーストパターンがＣＷＦである第１リフィル要求に対応する処理データを、ＣＷＦに対応しない外部バス４０を介して接続された主記憶装置２０から受け取る。その後、プロセッシングユニットＰＵ０は、ストール状態を解除し、処理データにデータ処理を実行する。
【００２９】
＜２次キャッシュリフィルステップ（Ｓ３０９）＞  外部バスインタフェース１８が、外部バス４０を介して、２次キャッシュＬ２のリフィル要求に対応する３２ワードのデータ（図４（５））を主記憶装置２０から受け取る（図５（１３））。図４（５）に示すように、２次キャッシュＬ２のリフィル要求に対応するデータは、２４ワードの先頭データと、処理データの前方に位置する６ワードの第１リフィルパートと、１ワードの処理データと、処理データの後方に位置する１ワードの第２リフィルパートと、を備える。次いで、外部バスインタフェース１８が、２次キャッシュＬ２のリフィル要求に対応するデータをキャッシュ制御部１４に転送する（図５（１４））。次いで、キャッシュ制御部１４が、２次キャッシュＬ２のリフィル要求に対応するデータに基づいて２次キャッシュＬ２のリフィルを実行する。
【００３０】
＜データ変換ステップ（Ｓ３１０）＞  データ変換部１４４が、２次キャッシュＬ２のリフィル要求に対応するデータを７ワードのリフィルデータ（図４（６））に変換し、変換したリフィルデータを非キャッシュ制御部１６に送信する（図５（１５））。図４（６）に示すように、７ワードのリフィルデータは、１ワードの第２リフィルパートと、第２リフィルパートの後方に位置する６ワードの第１リフィルパートと、を備える。１ワードの第２リフィルパートは、図４（５）の２次キャッシュＬ２のリフィル要求に対応するデータにおいて処理データの後方に位置していたデータである。６ワードの第１リフィルパートは、図４（５）の２次キャッシュＬ２のリフィル要求に対応するデータにおいて処理データの前方に位置していたデータである。
【００３１】
例えば、データ変換部１４４は、２次キャッシュＬ２のリフィル要求に対応するデータにおいて１ワードの処理データの前後に合計７ワードのリフィルパートが存在する場合（図４（５）の場合）には、処理データの前方に位置するデータ（第１リフィルパート）の位置を処理データの後方に位置するデータ（第２リフィルパート）の後方に変更することにより、２次キャッシュＬ２のリフィル要求に対応するデータを７ワードの１次キャッシュＬ１向けのリフィルデータに変換する。例えば、データ変換部１４４は、処理データが２次キャッシュＬ２のリフィル要求に対応するデータの最後尾に位置する場合には、処理データの前方に位置する７ワードのデータ（リフィルパート）の位置を処理データの後方に変更することにより、２次キャッシュＬ２のリフィル要求に対応するデータを７ワードのリフィルデータに変換する。例えば、データ変換部１４４は、処理データの後方に７ワードのデータ（リフィルパート）が存在する場合には、処理データの後方に位置する７ワードのデータ（リフィルパート）を抽出することにより、２次キャッシュＬ２のリフィル要求に対応するデータを７ワードのリフィルデータに変換する。
【００３２】
＜リフィルデータ転送ステップ（Ｓ３１１）＞  非キャッシュ制御部１６が、リフィルデータを内部バスインタフェース１２に転送する（図５（１６））。次いで、内部バスインタフェース１２が、内部バス３０を介して、リフィルデータをプロセッシングユニットＰＵ０に転送する（図５（１７））。すなわち、データ変換部１４４は、キャッシュ制御部１４により要求された処理データを含む第２ラインサイズのデータを、１次キャッシュＬ１のリフィルを実行するときに処理データの後方に配置すべきリフィルデータに変換し、非キャッシュ制御部１６及び内部バスインタフェース１２を介して、変換したリフィルデータをプロセッシングユニットＰＵ０に転送する。なお、２次キャッシュＬ２のリフィルを実行する前にデータのバイパス転送が可能な場合には、データ変換ステップ（Ｓ３１０）及びリフィルデータ転送ステップ（Ｓ３１１）の組み合わせは、２次キャッシュリフィルステップ（Ｓ３０９）の前に実行されても良いし、２次キャッシュリフィルステップ（Ｓ３０９）と並列に実行されても良い。
【００３３】
＜１次キャッシュリフィルステップ（Ｓ３１２）＞  プロセッシングユニットＰＵ０は、１ワードの処理データ及び７ワードのリフィルデータから構成される８ワードのデータセット（図４（７））に基づいて１次キャッシュＬ１のリフィルを実行する。換言すると、プロセッシングユニットＰＵ０は、ＣＷＦに対応しない外部バス４０を介して接続された主記憶装置２０から受け取ったＣＷＦに対応するデータ構造のデータに基づいて、１次キャッシュＬ１のリフィルを実行する。１次キャッシュリフィルステップ（Ｓ３１２）の後は、図３のデータ処理が終了する。
【００３４】
＜非キャッシュアクセスステップ（Ｓ３２１）＞  非キャッシュ制御部１６が、２次キャッシュＬ２以外のモジュール（例えば、主記憶装置２０）へのアクセスを制御する。非キャッシュアクセスステップ（Ｓ３２１）の後は、図３のデータ処理が終了する。
【００３５】
第１実施形態によれば、ＣＷＦ非対応バス（外部バス４０）に接続されたユニット（主記憶装置２０）からＣＷＦ対応バス（内部バス３０）に接続されたユニット（プロセッシングユニットＰＵ０〜ＰＵ３）にデータが転送される場合に、ＣＷＦ対応バスに接続されたユニットの処理効率を改善することができる。
【００３６】
（第２実施形態）
第２実施形態について説明する。第２実施形態は、切換部を備えるキャッシュ制御部の例である。なお、第２実施形態に係るプロセッシングシステムの構成は、第１実施形態と同様であり、第１実施形態と同様の説明については省略する。
【００３７】
図６は、第２実施形態に係るキャッシュユニット１０の構成を示すブロック図である。
キャッシュユニット１０は、内部バスインタフェース１２と、キャッシュ制御部１４と、非キャッシュ制御部１６と、外部バスインタフェース１８と、を備える。内部バスインタフェース１２、非キャッシュ制御部１６、及び外部バスインタフェース１８は、第１実施形態と同様である。
【００３８】
キャッシュ制御部１４は、２次キャッシュＬ２と、要求変換部１４２と、データ変換部１４４と、切換部１４６と、を備える。キャッシュ制御部１４は、２次キャッシュＬ２へのアクセスを制御するとともに、２次キャッシュＬ２のリフィルを実行するモジュールである。２次キャッシュＬ２、要求変換部１４２、及びデータ変換部１４４は、第１実施形態と同様である。
【００３９】
切換部１４６は、要求変換部１４２のオン及びオフを切り換えるモジュールである。
切換部１４６の動作の第１例について説明する。図７は、切換部１４６の切換処理（第１例）の手順を示すフローチャートである。図８は、Ｓ７０１を説明するための概略図である。
図７の切替処理は、Ｓ３０２においてキャッシュアクセスと判定された場合に実行される。
【００４０】
＜Ｓ７０１＞  切換部１４６が、第２ラインサイズに相当する３２ワードのアドレス空間における第１リフィル要求のアドレスと所定の閾値アドレスとを比較する。例えば、閾値アドレスは、ユーザにより設定される任意の値であって、切換部１４６のレジスタ（図示せず）に格納されている。第１リフィル要求のアドレスが閾値アドレス以上（図８（１））である場合には（Ｓ７０１−ＹＥＳ）、Ｓ７０２が実行される。第１リフィル要求のアドレスが閾値アドレスより小さい（図８（２））（すなわち、処理データのアドレスが閾値アドレスより前のアドレスである）場合には（Ｓ７０１−ＮＯ）、Ｓ７１１が実行される。
【００４１】
＜Ｓ７０２＞  切換部１４６が、要求変換部１４２をオンにする。すなわち、切換部１４６は、処理データのアドレスが所定の閾値アドレス以上である場合に、要求変換部１４２をオンにする。これにより、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行可能になる。Ｓ７０２の後に、図７の切換処理が終了する。
【００４２】
＜Ｓ７１１＞  切換部１４６が、要求変換部１４２をオフにする。これにより、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行不可能になる。この場合には、第２リフィル要求転送ステップ（Ｓ３０５）〜リフィルデータ転送ステップ（Ｓ３１１）は実行されず、一般的な２次キャッシュＬ２のリフィル及び１次キャッシュＬ１のリフィルが実行される。Ｓ７１１の後に、図７の切換処理が終了する。
【００４３】
切換部１４６の動作の第１例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部１４２のオン及びオフが切り換えられるので、キャッシュユニット１０の消費電力を低減するとともに、要求変換部１４２のオン及びオフを切り換える条件をユーザが任意に設定することができる。
【００４４】
切換部１４６の動作の第２例について説明する。図９は、切換部１４６の切換処理（第２例）の手順を示すフローチャートである。図１０は、図９の切換処理において用いられる要求テーブルの概略図である。
図９の切替処理は、Ｓ３０２においてキャッシュアクセスと判定された場合に実行される。
【００４５】
＜タイムスタンプ記録ステップ（Ｓ９０１）＞  切換部１４６が、第１リフィル要求を発行したプロセッシングユニット（以下、「発行元プロセッシングユニット」という）の識別情報（以下、「ＰＵＩＤ（Processing Unit Identification）」という）と、第１リフィル要求が内部バスインタフェース１２により受け付けられた時刻（以下、「タイムスタンプ」という）と、を要求テーブルに記録する。ＰＵＩＤは、第１リフィル要求に含まれる情報である。タイムスタンプは、内部バスインタフェース１２により発行される情報である。要求テーブルは、切換部１４６のレジスタに格納されている。図１０は、プロセッシングユニットＰＵ０が発行した第１リフィル要求がバスインタフェース１２により受け付けられた時刻がＴ１であり、プロセッシングユニットＰＵ３が発行した第１リフィル要求がバスインタフェース１２により受け付けられた時刻がＴ２であり、プロセッシングユニットＰＵ１が発行した第１リフィル要求がバスインタフェース１２により受け付けられた時刻がＴ３であり、プロセッシングユニットＰＵ２が発行した第１リフィル要求がバスインタフェース１２により受け付けられた時刻がＴ４である、ことを示している。
【００４６】
＜Ｓ９０２＞  切換部１４６が、要求テーブルに記録されたタイムスタンプと閾値時間とを比較する。例えば、閾値時間は、ユーザにより設定される任意の値であって、切換部１４６のレジスタに格納されている。要求テーブルのタイムスタンプが閾値時間以上である（すなわち、内部バスインタフェース１２が第１リフィル要求を受け付けてから閾値時間以上の時間が経過した）場合には（Ｓ９０２−ＹＥＳ）、Ｓ９０３が実行される。要求テーブルのタイムスタンプが閾値時間より小さい（すなわち、内部バスインタフェース１２が第１リフィル要求を受け付けてから閾値時間以上の時間が経過していない）場合には（Ｓ９０２−ＮＯ）、Ｓ９１１が実行される。
【００４７】
＜Ｓ９０３＞  Ｓ７０２と同様である。すなわち、切換部１４６は、第１リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合に、要求変換部１４２をオンにする。これにより、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行可能になる。Ｓ９０３の後に、図９の切換処理が終了する。
＜Ｓ９１１＞  Ｓ７１１と同様である。Ｓ９１１の後に、図９の切換処理が終了する。
【００４８】
切換部１４６の動作の第２例では、第１リフィル要求が発行された時刻からの経過時間に基づいて要求変換部１４２のオン及びオフが切り換えられるので、キャッシュユニット１０の消費電力を低減するとともに、プロセッシングユニットのストール時間を一定時間以内に抑えることができる。
【００４９】
切換部１４６の動作の第３例について説明する。図１１は、切換部１４６の切換処理（第３例）の手順を示すフローチャートである。図１２は、図１１の切換処理において用いられる優先テーブルの概略図である。
図１１の切替処理は、Ｓ３０２においてキャッシュアクセスと判定された場合に実行される。
【００５０】
＜Ｓ１１０１＞  切換部１４６が、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるか否かを判定する。例えば、第１リフィル要求の発行元プロセッシングユニットのＰＵＩＤが優先テーブルに含まれている場合には、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定される。第１リフィル要求の発行元プロセッシングユニットのＰＵＩＤが優先テーブルに含まれていない場合には、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定される。図１２は、プロセッシングユニットＰＵ０が優先プロセッシングユニットであることを示している。例えば、優先テーブルは、ユーザにより任意に設定される情報であって、切換部１４６のレジスタに格納されている。第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定された場合には（Ｓ１１０１−ＹＥＳ）、Ｓ１１０２が実行される。第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定された場合には（Ｓ１１０１−ＮＯ）、Ｓ１１１１が実行される。
【００５１】
＜Ｓ１１０２＞  Ｓ７０２と同様である。すなわち、切換部１４６は、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、要求変換部１４２をオンにする。図１２の場合には、第１リフィル要求の発行元プロセッシングユニットがプロセッシングユニットＰＵ０である場合に、切換部１４６は要求変換部１４２をオンにする。これにより、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行可能になる。Ｓ１１０２の後に、図１１の切換処理が終了する。
＜Ｓ１１１１＞  Ｓ７１１と同様である。Ｓ１１１１の後に、図１１の切換処理が終了する。
【００５２】
切換部１４６の動作の第３例では、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるか否かに基づいて要求変換部１４２のオン及びオフが切り換えられるので、キャッシュユニット１０の消費電力を低減するとともに、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
【００５３】
切換部１４６の動作の第４例について説明する。図１３は、切換部１４６の切換処理（第４例）の手順を示すフローチャートである。図１４は、図１３のシフトステップ（Ｓ１３０３）を説明するための概略図である。
図１３の切替処理は、Ｓ３０２においてキャッシュアクセスと判定された場合に実行される。
【００５４】
＜タイムスタンプ記録ステップ（Ｓ１３０１）＞  タイムスタンプ記録ステップ（Ｓ９０１）と同様である。
【００５５】
＜Ｓ１３０２＞  切換部１４６が、要求テーブルに記録されたタイムスタンプと閾値時間とを比較する。例えば、閾値時間は、ユーザにより任意に設定される情報であって、切換部１４６のレジスタに格納されている。要求テーブルのタイムスタンプが閾値時間以上である（すなわち、内部バスインタフェース１２が第１リフィル要求を受け付けてから閾値時間以上の時間が経過した）場合には（Ｓ１３０２−ＹＥＳ）、シフトステップ（Ｓ１３０３）が実行される。要求テーブルのタイムスタンプが閾値時間より小さい（すなわち、内部バスインタフェース１２が第１リフィル要求を受け付けてから閾値時間以上の時間が経過していない）場合には（Ｓ１３０２−ＮＯ）、Ｓ１３０４が実行される。
【００５６】
＜シフトステップ（Ｓ１３０３）＞  切換部１４６が、閾値アドレスをアドレス順が小さい方にシフトする。すなわち、切換部１４６は、第１リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合に、第１リフィル要求のアドレスより大きな閾値アドレスをアドレス順が小さい方向にシフトする（図１４（１），（２））。これにより、第１リフィル要求のアドレスが閾値アドレス以上となる（図１４（３））。
【００５７】
＜Ｓ１３０４＞  Ｓ７０１と同様である。
＜Ｓ１３０５＞  Ｓ７０２と同様である。これにより、第１リフィル要求のアドレスが閾値アドレスより小さい場合であっても、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行可能になる。Ｓ１３０５の後に、図１３の切換処理が終了する。
＜Ｓ１３１１＞  Ｓ７１１と同様である。Ｓ１３１１の後に、図１３の切換処理が終了する。
【００５８】
切換部１４６の動作の第４例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部１４２のオン及びオフが切り換えられる際に、第１リフィル要求が発行された時刻からの経過時間が所定時間を超えると要求変換部１４２のオン及びオフを切り換えるための条件が緩和されるので、キャッシュユニット１０の消費電力を低減するとともに、ストール時間が一定時間を超えたプロセッシングユニットに対して要求変換部１４２がオンになり易くすることができる。
【００５９】
切換部１４６の動作の第５例について説明する。図１５は、切換部１４６の切換処理（第５例）の手順を示すフローチャートである。
図１５の切替処理は、Ｓ３０２においてキャッシュアクセスと判定された場合に実行される。
【００６０】
＜Ｓ１５０１＞  Ｓ１１０１と同様である。第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定された場合には（Ｓ１５０１−ＹＥＳ）、シフトステップ（Ｓ１５０２）が実行される。第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定された場合には（Ｓ１５０１−ＮＯ）、Ｓ１５０３が実行される。
【００６１】
＜シフトステップ（Ｓ１５０２）＞  シフトステップ（Ｓ１３０３）と同様である。すなわち、切替部１４６は、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、第１リフィル要求のアドレスより大きな閾値アドレス（図１４（１））をアドレス順が小さい方向にシフトする（図１４（２））。これにより、第１リフィル要求のアドレスが閾値アドレス以上となる（図１４（３））。
【００６２】
＜Ｓ１５０４＞  Ｓ７０１と同様である。これにより、第１リフィル要求のアドレスが閾値アドレスより小さい場合であっても、要求変換部１４２は、要求変換ステップ（Ｓ３０４）を実行可能になる。Ｓ１５０４の後に、図１５の切換処理が終了する。
＜Ｓ１５１１＞  Ｓ７１１と同様である。Ｓ１５１１の後に、図１５の切換処理が終了する。
【００６３】
切換部１４６の動作の第５例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部１４２のオン及びオフが切り換えられる際に、プロセッシングユニットが優先プロセッシングユニットであれば要求変換部１４２のオン及びオフを切り換えるための条件が緩和されるので、キャッシュユニット１０の消費電力を低減するとともに、優先度の高いプロセッシングユニットに対して要求変換部１４２がオンになり易くすることができる。
【００６４】
切換部１４６の動作の第１例〜第３例は、それぞれ、組み合わされても良い。
例えば、切換部１４６の動作の第１例と第２例とを組み合わせた場合には、第１リフィル要求のアドレスが閾値アドレスより小さかったとしても、要求テーブルに記録された時刻Ｔｉが閾値時刻以上であれば、要求変換部１４２がオンになる。これにより、ユーザが設定した要求変換部１４２のオン及びオフを切り換える条件にかかわらず、プロセッシングユニットのストール時間を一定時間以内に抑えることができる。
【００６５】
例えば、切換部１４６の動作の第２例と第３例とを組み合わせた場合には、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるときには要求テーブルに記録された時刻Ｔｉにかかわらず要求変換部１４２がオンにされ、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないときには要求テーブルに記録された時刻Ｔｉが閾値時刻以上になった後に要求変換部１４２がオンになる。これにより、第１リフィル要求が発行された時刻からの経過時間にかかわらず、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
【００６６】
例えば、切換部１４６の動作の第３例と第１例とを組み合わせた場合には、第１リフィル要求のアドレスが閾値アドレスより小さかったとしても、第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるときには、要求変換部１４２がオンになる。これにより、ユーザが設定した要求変換部１４２のオン及びオフを切り換える条件にかかわらず、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
【００６７】
切換部１４６の動作の第４例及び第５例は、組み合わされても良い。例えば、タイムスタンプが閾値時間以上であること及び第１リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであることの両方を満たすと、シフトステップ（Ｓ１３０３）が実行される。これにより、キャッシュユニット１０の消費電力をさらに低減するとともに、優先プロセッシングユニットのストール時間が一定時間を超えたアクセス（すなわち、緊急度の高いアクセス）を優先的に高速化することができる。
【００６８】
なお、本実施形態では、データ変換部１４４がキャッシュ制御部１４に設けられる例について説明したが、データ変換部１４４は、外部バスインタフェース１８又は非キャッシュ制御部１６に設けられても良い。
【００６９】
また、本実施形態では、データ変換ステップ（Ｓ３１０）において、データ変換部１４４がリフィルデータを非キャッシュ制御部１６に送信し、リフィルデータ転送ステップ（Ｓ３１１）において、非キャッシュ制御部１６が、リフィルデータをプロセッシングユニットＰＵ０に転送する例について説明したが、本実施形態の範囲はこれに限られるものではない。例えば、本実施形態は、データ変換ステップ（Ｓ３１０）において、データ変換部１４４がリフィルデータを保持し、リフィルデータ転送ステップ（Ｓ３１１）において、データ変換部１４４がリフィルデータをプロセッシングユニットＰＵ０に送信する場合についても適用可能である。
【００７０】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００７１】
１  プロセッシングシステム
１０  キャッシュユニット
１２  内部バス
１４  キャッシュ制御部
１４２  要求変換部
１４４  データ変換部
１４６  切換部
１６  非キャッシュ制御部
１８  外部バスインタフェース
２０  主記憶装置
３０  内部バス
４０  外部バス
Ｌ１  １次キャッシュ
Ｌ２  ２次キャッシュ
【図１】
0005118731.tif 000002
【図２】
0005118731.tif 000003
【図３】
0005118731.tif 000004
【図４】
0005118731.tif 000005
【図５】
0005118731.tif 000006
【図６】
0005118731.tif 000007
【図７】
0005118731.tif 000008
【図８】
0005118731.tif 000009
【図９】
0005118731.tif 000010
【図１０】
0005118731.tif 000011
【図１１】
0005118731.tif 000012
【図１２】
0005118731.tif 000013
【図１３】
0005118731.tif 000014
【図１４】
0005118731.tif 000015
【図１５】
0005118731.tif 000016