(57)【要約】  複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制すること。ＭＩ要求アドレス保持部（１０５）は、Ｌ１キャッシュ（２００）へＭＩされるデータのＭＩ要求アドレスを保持する。カウンタ（１０６）は、ＭＩ要求アドレスが保持されると、カウンタ値が所定のしきい値に到達するまでカウントアップする。比較部（１０９）は、Ｌ２キャッシュ制御部（５００）からＭＯ要求アドレスが取得されると、このＭＯ要求アドレスをＭＩ要求アドレスと比較する。ＭＯ要求アドレスとＭＩ要求アドレスとが一致する場合、比較部（１０９）は、カウンタ（１０６）が稼働中であれば、ＭＯ要求生成部（１０７）へＭＯの中止を指示する。
2007105256.tif 000002
【特許請求の範囲】
【請求項１】
各々１次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共有される２次キャッシュとを有するマルチプロセッサシステムであって、
前記プロセッサは、
自プロセッサ内の１次キャッシュからデータを読み出す読出手段と、
前記１次キャッシュに読み出し対象のデータが記憶されていない場合に前記１次キャッシュへの当該データの書き込みを外部に要求する要求手段と、
前記要求手段による書き込み要求後の経過時間を計測する計測手段と、
前記１次キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付手段と、
前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前記要求手段によって書き込みが要求されたデータを特定する特定情報とを比較する比較手段と、
前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段によって計測される経過時間が所定時間未満の場合に、前記読出手段による前記読出命令に応じたデータの読み出しを中止させる制御手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項２】
前記制御手段は、
前記比較手段による比較の結果、特定情報が同一でない場合に、前記読出命令に応じたデータの読み出しを前記読出手段に対して要求する読出要求を生成する生成手段を含むことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記生成手段は、
前記比較手段による比較の結果、特定情報が同一であっても、前記計測手段によって計測される経過時間が所定時間以上の場合に、前記読出命令に応じたデータの読出要求を生成することを特徴とする請求項２記載のマルチプロセッサシステム。
【請求項４】
前記制御手段は、
前記計測手段によって計測される経過時間が所定時間に達した場合に、読み出しを中止させたデータの読み出しを前記読出手段に行わせることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項５】
前記比較手段は、
データのメインメモリにおけるアドレスを特定情報として比較することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項６】
前記比較手段は、
データに対応するアドレスの一部および前記１次キャッシュにおけるウェイを特定情報として比較することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項７】
前記計測手段は、
前記書込手段による書き込み要求に応じてデータが書き込まれてからの経過時間を計測することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項８】
データを記憶するキャッシュを備えたプロセッサであって、
前記キャッシュにデータを書き込む書込手段と、
前記書込手段によって前記キャッシュにデータが書き込まれてからの経過時間を計測する計測手段と、
前記キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付手段と、
前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前記書込手段によって書き込まれたデータを特定する特定情報とを比較する比較手段と、
前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段によって計測される経過時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出しを中止する読出制御手段と
を有することを特徴とするプロセッサ。
【請求項９】
各々１次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共有される２次キャッシュとを有するマルチプロセッサシステムにおけるキャッシュ制御方法であって、
前記１次キャッシュに読み出し対象のデータが記憶されていない場合に前記１次キャッシュへの当該データの書き込みを外部に要求する要求工程と、
前記要求工程における書き込み要求後、経過時間の計測を開始する計測工程と、
前記１次キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付工程と、
前記受付工程にて読出命令が受け付けられたデータを特定する特定情報と前記要求工程にて書き込みが要求されたデータを特定する特定情報とを比較する比較工程と、
前記比較工程における比較の結果、特定情報が同一であり、かつ、前記計測工程からの経過時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出しを中止させる制御工程と
を有することを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各々１次キャッシュを備える複数のプロセッサと、複数のプロセッサによって共有される２次キャッシュとを有するマルチプロセッサシステムおよびキャッシュ制御方法に関し、特に、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制することができるマルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法に関する。
【背景技術】
【０００２】
一般に、情報処理装置においては、処理速度を向上させるため、使用頻度が高いデータをメインメモリとは別のキャッシュメモリに記憶することが行われる。キャッシュメモリは、メインメモリよりも容量は小さいが高速アクセスが可能であるため、使用頻度が高いデータを随時置き換えながらキャッシュメモリに記憶させておくことで、処理の高速化を図ることができる。【０００３】
また、より処理の高速化を図るためには、階層的にキャッシュメモリを設け、処理が行われる際には、まず最も高速な１次キャッシュ（以下「Ｌ１キャッシュ」という）にアクセスし、Ｌ１キャッシュに所望のデータがなければ次に高速な２次キャッシュ（以下「Ｌ２キャッシュ」という）にアクセスするというようにすれば良い。【０００４】
一方、情報処理装置の処理性能を向上させるため、１つの情報処理装置に複数のプロセッサが搭載されることがある。近年では、このようなマルチプロセッサシステムの一種として、１チップ上に複数のプロセッサを実装するオンチップマルチプロセッサシステムが実現可能となっている。【０００５】
マルチプロセッサシステムが採用される場合、各プロセッサ内のＬ１キャッシュとは別に、各プロセッサが共有するＬ２キャッシュが設けられることがある（例えば特許文献１参照）。【０００６】
【特許文献１】特開２００２−３７３１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のようなマルチプロセッサシステムにおいて、各プロセッサ内のＬ１キャッシュにおいて同一データに関するキャッシュミスが同時に生じると、複数のプロセッサが共有するＬ２キャッシュに同時にアクセスし、データの取り合いが発生することがある。【０００８】
以下、図４−１〜４−６を参照して、Ｌ１キャッシュ＃１およびＬ２キャッシュ＃２がデータＡを取り合う状態について説明する。ここでは、各プロセッサ内の図示しない命令制御部などからＬ１キャッシュ＃１およびＬ１キャッシュ＃２のそれぞれへ、データＡの書き換えを行う旨のストア要求が発行されたものとする。【０００９】
図４−１に示すように、Ｌ１キャッシュ＃１およびＬ１キャッシュ＃２には、いずれもデータＡが記憶されていないためキャッシュミスとなり、Ｌ２キャッシュを制御するＬ２キャッシュ制御部に対してデータＡのムーブイン（Move  In：以下「ＭＩ」と略記する）を要求するＭＩ要求が同時に行われる。【００１０】
このとき、例えばＬ１キャッシュ＃１の優先度が高ければ、図４−２に示すように、データＡはＬ２キャッシュ制御部からＬ１キャッシュ＃１へ転送される。また、Ｌ１キャッシュ＃２からＬ２キャッシュ制御部へもデータＡのＭＩ要求が行われていることから、データＡがＬ１キャッシュ＃１へ転送されると同時に、このデータＡをＬ１キャッシュ＃１からムーブアウト（Move  Out：以下「ＭＯ」と略記する）させるためのＭＯ命令が発行される。【００１１】
Ｌ１キャッシュ＃１では、データＡのストア処理が完了していないが、Ｌ２キャッシュ制御部からのＭＯ命令に従って、図４−３に示すように、データＡのＭＯを要求するＭＯ要求を行い、Ｌ２キャッシュ制御部へデータＡを転送する。同時に、Ｌ２キャッシュ制御部は、Ｌ１キャッシュ＃２へデータＡを転送する。【００１２】
そして、データＡが転送されていたはずのＬ１キャッシュ＃１では、データＡのストア要求が再び発行されるが、データＡは既にＬ１キャッシュ＃２へ転送されているため、Ｌ１キャッシュ＃１では再度キャッシュミスが発生する。このため、図４−４に示すように、Ｌ１キャッシュ＃１からＬ２キャッシュ制御部へＭＩ要求が行われ、Ｌ２キャッシュ制御部からＬ１キャッシュ＃２へＭＯ命令が発行される。【００１３】
Ｌ１キャッシュ＃２では、データＡのストア処理が完了していないが、Ｌ２キャッシュ制御部からのＭＯ命令に従って、図４−５に示すように、データＡのＭＯを要求するＭＯ要求を行い、Ｌ２キャッシュ制御部へデータＡを転送する。同時に、Ｌ２キャッシュ制御部は、Ｌ１キャッシュ＃１へデータＡを転送する。【００１４】
そして、データＡが転送されていたはずのＬ１キャッシュ＃２では、データＡのストア要求が再び発行されるが、データＡは既にＬ１キャッシュ＃１へ転送されているため、Ｌ１キャッシュ＃２では再度キャッシュミスが発生する。このため、図４−６に示すように、Ｌ１キャッシュ＃２からＬ２キャッシュ制御部へＭＩ要求が行われ、Ｌ２キャッシュ制御部からＬ１キャッシュ＃１へＭＯ命令が発行される。【００１５】
以後、再び図４−３の状態に戻り、Ｌ１キャッシュ＃１を有するプロセッサおよびＬ１キャッシュ＃２を有するプロセッサのいずれもデータＡのストア処理を完了させることができない。【００１６】
このような状態を防ぐため、一度ＭＩ要求されてＬ１キャッシュにデータが転送された後は、しばらくＬ１キャッシュにおけるＭＯを禁止するという方法が考えられる。すなわち、例えば図５に示すように、ＭＩ要求がパイプライン処理の優先権を獲得し、所定のＰサイクルの処理が完了すると、カウンタが所定サイクル（図５では３１サイクル）のカウントアップを開始する。その後、ＭＩ要求に関しては、所定のＴサイクルの処理、Ｍサイクルの処理、Ｂサイクルの処理、およびＲサイクルの処理が行われ、Ｌ１キャッシュにデータが記憶される。【００１７】
このとき、ＭＩ要求の直後にＭＯ要求がパイプライン処理の優先権を獲得した場合、ＭＯ要求に関しては、カウンタがカウントアップを実行している最中であるため、Ｂサイクルで処理が中止される。したがって、カウンタがカウントアップを実行している間は、Ｌ１キャッシュからデータが転送されることはなく、この間にデータのストア処理を行うことが可能となる。【００１８】
しかしながら、この方法においては、カウンタがカウントアップを実行している間のＬ１キャッシュからのデータの転送が禁止されているため、ストア処理とは無関係のデータについてもＭＯが実行されず、キャッシュ間のデータ転送の遅延が発生するという問題がある。【００１９】
本発明はかかる点に鑑みてなされたものであり、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制することができるマルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、本発明は、各々１次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共有される２次キャッシュとを有するマルチプロセッサシステムであって、前記プロセッサは、自プロセッサ内の１次キャッシュからデータを読み出す読出手段と、前記１次キャッシュに読み出し対象のデータが記憶されていない場合に前記１次キャッシュへの当該データの書き込みを外部に要求する要求手段と、前記要求手段による書き込み要求後の経過時間を計測する計測手段と、前記１次キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付手段と、前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前記要求手段によって書き込みが要求されたデータを特定する特定情報とを比較する比較手段と、前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段によって計測される経過時間が所定時間未満の場合に、前記読出手段による前記読出命令に応じたデータの読み出しを中止させる制御手段とを有することを特徴とする。【００２１】
また、本発明は、上記発明において、前記制御手段は、前記比較手段による比較の結果、特定情報が同一でない場合に、前記読出命令に応じたデータの読み出しを前記読出手段に対して要求する読出要求を生成する生成手段を含むことを特徴とする。【００２２】
また、本発明は、上記発明において、前記生成手段は、前記比較手段による比較の結果、特定情報が同一であっても、前記計測手段によって計測される経過時間が所定時間以上の場合に、前記読出命令に応じたデータの読出要求を生成することを特徴とする。【００２３】
また、本発明は、上記発明において、前記制御手段は、前記計測手段によって計測される経過時間が所定時間に達した場合に、読み出しを中止させたデータの読み出しを前記読出手段に行わせることを特徴とする。【００２４】
また、本発明は、上記発明において、前記比較手段は、データのメインメモリにおけるアドレスを特定情報として比較することを特徴とする。【００２５】
また、本発明は、上記発明において、データに対応するアドレスの一部および前記１次キャッシュにおけるウェイを特定情報として比較することを特徴とする。【００２６】
また、本発明は、上記発明において、前記計測手段は、前記書込手段による書き込み要求に応じてデータが書き込まれてからの経過時間を計測することを特徴とする。【００２７】
また、本発明は、データを記憶するキャッシュを備えたプロセッサであって、前記キャッシュにデータを書き込む書込手段と、前記書込手段によって前記キャッシュにデータが書き込まれてからの経過時間を計測する計測手段と、前記キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付手段と、前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前記書込手段によって書き込まれたデータを特定する特定情報とを比較する比較手段と、前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段によって計測される経過時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出しを中止する読出制御手段とを有することを特徴とする。【００２８】
また、本発明は、各々１次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共有される２次キャッシュとを有するマルチプロセッサシステムにおけるキャッシュ制御方法であって、前記１次キャッシュに読み出し対象のデータが記憶されていない場合に前記１次キャッシュへの当該データの書き込みを外部に要求する要求工程と、前記要求工程における書き込み要求後、経過時間の計測を開始する計測工程と、前記１次キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付工程と、前記受付工程にて読出命令が受け付けられたデータを特定する特定情報と前記要求工程にて書き込みが要求されたデータを特定する特定情報とを比較する比較工程と、前記比較工程における比較の結果、特定情報が同一であり、かつ、前記計測工程からの経過時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出しを中止させる制御工程とを有することを特徴とする。
【発明の効果】
【００２９】
本発明によれば、１次キャッシュに読み出し対象のデータが記憶されていない場合に１次キャッシュへの当該データの書き込みを外部に要求し、書き込み要求後の経過時間を計測し、１次キャッシュのデータを読み出す旨の読出命令を外部から受け付け、読出命令が受け付けられたデータを特定する特定情報と書き込みを要求したデータを特定する特定情報とを比較し、比較の結果、特定情報が同一であり、かつ、計測される経過時間が所定時間未満の場合に、読出命令に応じたデータの読み出しを中止させる。このため、１次キャッシュに書き込まれたばかりのデータが読み出されることがなく、このデータに対する処理のための時間を確保することができ、複数のキャッシュによるデータの取り合いを防止するとともに、書き込まれたばかりのデータ以外のデータは通常通り読み出して、キャッシュ間のデータ転送の遅延を抑制することができる。【００３０】
また、本発明によれば、比較の結果、特定情報が同一でない場合に、読出命令に応じたデータの読み出しを要求する読出要求を生成するため、書き込まれたばかりのデータと一致しないデータは、読出命令が受け付けられた後すぐに１次キャッシュから読み出すことができる。【００３１】
また、本発明によれば、比較の結果、特定情報が同一であっても、計測される経過時間が所定時間以上の場合に、読出命令に応じたデータの読出要求を生成するため、直近に書き込まれたデータであっても、書き込まれてから処理に要する時間が経過していれば、読出命令が受け付けられた後すぐに１次キャッシュから読み出すことになり、データ転送の遅延をさらに抑制することができる。【００３２】
また、本発明によれば、計測される経過時間が所定時間に達した場合に、読み出しを中止させたデータの読み出しを行わせるため、１次キャッシュからの読み出しが一度中止されたデータについても、データ転送の遅延を最低限に抑制することができる。【００３３】
また、本発明によれば、データのメインメモリにおけるアドレスを特定情報として比較するため、データの一致・不一致を確実に判定することができる。【００３４】
また、本発明によれば、データに対応するアドレスの一部および前記１次キャッシュにおけるウェイを特定情報として比較するため、キャッシュがセットアソシアティブ方式で構成される場合にも、データの一致・不一致を確実に判定することができる。【００３５】
また、本発明によれば、書き込み要求に応じてデータが書き込まれてからの経過時間を計測するため、１次キャッシュに確実にデータが書き込まれてから処理に要する時間を確保することができる。【００３６】
また、本発明によれば、キャッシュにデータを書き込み、キャッシュにデータが書き込まれてからの経過時間を計測し、キャッシュのデータを読み出す旨の読出命令を外部から受け付け、読出命令が受け付けられたデータを特定する特定情報と書き込まれたデータを特定する特定情報とを比較し、比較の結果、特定情報が同一であり、かつ、計測される経過時間が所定時間未満の場合に、読出命令に応じたデータの読み出しを中止する。このため、キャッシュに書き込まれたばかりのデータが読み出されることがなく、このデータに対する処理のための時間を確保することができ、複数のキャッシュによるデータの取り合いを防止するとともに、書き込まれたばかりのデータ以外のデータは通常通り読み出して、キャッシュ間のデータ転送の遅延を抑制することができる。
【図面の簡単な説明】
【００３７】
【図１】図１は、本発明の一実施の形態に係るマルチプロセッサシステムの要部構成を示すブロック図である。
【図２】図２は、一実施の形態に係るＬ１キャッシュ制御部の内部構成を示すブロック図である。
【図３】図３は、一実施の形態に係るＬ１キャッシュ制御部の動作を示すフロー図である。
【図４−１】図４−１は、ストア処理時のキャッシュの状態を示す図である。
【図４−２】図４−２は、図４−１に続く図である。
【図４−３】図４−３は、図４−２に続く図である。
【図４−４】図４−４は、図４−３に続く図である。
【図４−５】図４−５は、図４−４に続く図である。
【図４−６】図４−６は、図４−５に続く図である。
【図５】図５は、パイプライン処理の処理サイクルの一例を示す図である。
【符号の説明】
【００３８】
１００  Ｌ１キャッシュ制御部
１０１  書込／読出部
１０２  ＭＩ要求生成部
１０３  接続部
１０４  ＭＩデータ送出部
１０５  ＭＩ要求アドレス保持部
１０６  カウンタ
１０７  ＭＯ要求生成部
１０８  ＭＯ要求アドレス取得部
１０９  比較部
１１０  ＭＯデータ送出部
２００  Ｌ１キャッシュ
３００  命令制御部
４００  演算処理部
５００  Ｌ２キャッシュ制御部
６００  Ｌ２キャッシュ
７００  メインメモリ
【発明を実施するための最良の形態】
【００３９】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。なお、以下においては、情報処理装置がプロセッサとしてＣＰＵを２つ備えている場合を例に挙げて説明するが、本発明は、プロセッサを３つ以上備えている場合にも適用することができる。【００４０】
図１は、本発明の一実施の形態に係るマルチプロセッサシステムの要部構成を示すブロック図である。同図に示すマルチプロセッサシステムはＣＰＵを２つ備え、各ＣＰＵは、Ｌ１キャッシュ制御部１００、Ｌ１キャッシュ２００、命令制御部３００、および演算処理部４００を有している。また、各ＣＰＵのＬ１キャッシュ制御部１００には、Ｌ２キャッシュ制御部５００が接続されており、Ｌ２キャッシュ制御部５００はＬ２キャッシュ６００に、Ｌ２キャッシュ６００はメインメモリ７００にそれぞれ接続されている。【００４１】
Ｌ１キャッシュ制御部１００は、命令制御部３００およびＬ２キャッシュ制御部５００からの要求・命令に応じて、Ｌ１キャッシュにおけるデータのムーブイン（ＭＩ）およびムーブアウト（ＭＯ）を制御する。また、本実施の形態においては、Ｌ１キャッシュ制御部１００は、ＭＩ要求するデータのアドレスを保持しておき、Ｌ２キャッシュ制御部５００からＭＯ命令が発行された場合、ＭＯするデータのアドレスと保持されたアドレスとを比較し、ＭＩ要求から一定期間内はアドレスが一致する場合のＭＯを中止する。Ｌ１キャッシュ制御部１００の具体的な構成・動作については、後に詳述する。【００４２】
Ｌ１キャッシュ２００は、高速なキャッシュメモリであって、Ｌ１キャッシュ制御部１００の制御に従って、ＭＩされるデータを記憶し、ＭＯされるデータを出力する。命令制御部３００は、演算処理部４００における演算処理に応じてデータの書き込みおよび読み出しに関する命令を出し、必要なデータをＬ１キャッシュ２００、Ｌ２キャッシュ６００、またはメインメモリ７００から取得する。演算処理部４００は、命令制御部３００によって取得されたデータに対する演算処理を行う。【００４３】
Ｌ２キャッシュ制御部５００は、Ｌ１キャッシュ制御部１００からデータのＭＩ要求が発行された場合、このデータが記憶されているＬ２キャッシュ６００または他のＣＰＵのＬ１キャッシュ２００を制御するＬ１キャッシュ制御部１００へデータのＭＯ命令を発行する。Ｌ２キャッシュ６００は、Ｌ１キャッシュ２００よりも大容量かつ低速なキャッシュメモリであり、２つのＣＰＵによって共有されている。メインメモリ７００は、主記憶装置であって、Ｌ２キャッシュ６００よりも大容量かつ低速な記憶装置である。【００４４】
図２は、本実施の形態に係るＬ１キャッシュ制御部１００の内部構成を示すブロック図である。同図に示すように、Ｌ１キャッシュ制御部１００は、書込／読出部１０１、ＭＩ要求生成部１０２、接続部１０３、ＭＩデータ送出部１０４、ＭＩ要求アドレス保持部１０５、カウンタ１０６、ＭＯ要求生成部１０７、ＭＯ要求アドレス取得部１０８、比較部１０９、およびＭＯデータ送出部１１０を有している。【００４５】
書込／読出部１０１は、命令制御部３００から例えばデータのストア要求などの命令が出されるとＬ１キャッシュ２００を検索し、対象のデータがＬ１キャッシュ２００内に記憶されていれば（キャッシュヒット）、このデータを読み出して命令制御部３００へ出力し、対象のデータがＬ１キャッシュ２００内に記憶されていなければ（キャッシュミス）、その旨をＭＩ要求生成部１０２へ通知する。そして、書込／読出部１０１は、ＭＩデータ送出部１０４から送出されるＭＩすべきＭＩデータをＬ１キャッシュ２００へ書き込む。また、書込／読出部１０１は、ＭＯ要求生成部１０７からデータのＭＯ要求が出力されると、Ｌ１キャッシュ２００から対象のデータを読み出し、ＭＯデータ送出部１１０へ出力する。【００４６】
ＭＩ要求生成部１０２は、書込／読出部１０１からキャッシュミスが生じた旨が通知されると、このデータＬ１キャッシュ２００にＭＩするために、データのアドレスを含むＭＩ要求を生成し、接続部１０３およびＭＩ要求アドレス保持部１０５へ出力する。【００４７】
接続部１０３は、Ｌ１キャッシュ制御部１００とＬ２キャッシュ制御部５００とを接続しており、ＭＩ要求生成部１０２から出力されるＭＩ要求をＬ２キャッシュ制御部５００へ転送し、このＭＩ要求に応じてＭＩすべきＭＩデータがＬ２キャッシュ制御部５００から転送されると、このＭＩデータをＭＩデータ送出部１０４へ出力する。また、接続部１０３は、Ｌ２キャッシュ制御部５００によってＬ１キャッシュ２００からのデータのＭＯ命令が発行されると、その旨をＭＯ要求生成部１０７へ通知し、ＭＯデータ送出部１１０から送出されるＭＯされたＭＯデータをＬ２キャッシュ制御部５００へ転送する。【００４８】
ＭＩデータ送出部１０４は、ＭＩ要求に応じてＬ２キャッシュ６００また他のＣＰＵのＬ１キャッシュ２００などから転送されたＭＩデータをＬ１キャッシュ２００へＭＩするために、ＭＩデータをＭＩ要求とともに書込／読出部１０１へ送出する。【００４９】
ＭＩ要求アドレス保持部１０５は、キャッシュミスが生じた場合に、ＭＩ要求生成部１０２によってＭＩ要求が生成されると、生成されたＭＩ要求に含まれるデータのアドレス（ＭＩ要求アドレス）を保持し、ＭＩ要求アドレスが保持されるとカウンタ１０６へ始動を指示する。すなわち、ＭＩ要求アドレス保持部１０５は、Ｌ１キャッシュ２００へＭＩされるデータのアドレスを保持するとともに、カウンタ１０６のカウントアップを開始させる。【００５０】
カウンタ１０６は、ＭＩ要求アドレス保持部１０５から始動を指示されると、カウントアップを開始し、カウンタ値が所定のしきい値に到達するとカウンタ値を０にリセットする。また、カウンタ１０６は、始動のタイミングとリセットのタイミングとを比較部１０９へ通知する。【００５１】
ＭＯ要求生成部１０７は、接続部１０３にＭＯ命令が到達すると、ＭＯを要求されているデータのアドレス（ＭＯ要求アドレス）をＭＯ要求アドレス取得部１０８へ出力する。そして、ＭＯ要求生成部１０７は、比較部１０９からＭＯの実行が指示された場合は、ＭＯ要求アドレスを含むＭＯ要求を生成し、書込／読出部１０１へ出力する。一方、比較部１０９からＭＯの中止が指示された場合は、ＭＯ要求アドレスを一時的に保持し、一定時間が経過して比較部１０９からＭＯの実行が許可されると、保持されたＭＯ要求アドレスを含むＭＯ要求を生成し、書込／読出部１０１へ出力する。【００５２】
ＭＯ要求アドレス取得部１０８は、Ｌ２キャッシュ制御部５００によってＭＯ命令が発行された場合に、ＭＯ要求生成部１０７からＭＯ命令に含まれているＭＯ要求アドレスを取得して保持する。【００５３】
比較部１０９は、ＭＯ要求アドレス取得部１０８によってＭＯ要求アドレスが取得されると、このＭＯ要求アドレスをＭＩ要求アドレス保持部１０５によって保持されているＭＩ要求アドレスと比較する。そして、比較部１０９は、ＭＯ要求アドレスとＭＩ要求アドレスとが一致しない場合は、ＭＯが要求されているデータに対するストア処理などが予定されていないと判断し、ＭＯ要求生成部１０７へＭＯの実行を指示する。【００５４】
一方、ＭＯ要求アドレスとＭＩ要求アドレスとが一致する場合、比較部１０９は、さらにカウンタ１０６がリセットされておらず稼働中であるか否か判定する。そして、比較部１０９は、カウンタ１０６が稼働中であれば、ＭＩ要求が発行されてからの経過時間が短いため、このアドレスのデータに対するストア処理などが予定されていると判断し、ＭＯ要求生成部１０７へＭＯの中止を指示する。また、カウンタ１０６がリセットされておりカウンタ値が０であれば、比較部１０９は、ＭＩ要求が発行されてから十分時間が経過しており、このアドレスのデータに対するストア処理などが完了していると判断し、ＭＯ要求生成部１０７へＭＯの実行を指示する。【００５５】
また、比較部１０９は、ＭＯ要求生成部１０７へＭＯの中止を指示した場合、カウンタ１０６からカウンタ値のリセットのタイミングが通知されると、中止していたＭＯの実行を許可する。【００５６】
ＭＯデータ送出部１１０は、ＭＯ要求に応じてＬ１キャッシュ２００から読み出されたＭＯデータをＬ２キャッシュ制御部５００へ出力するために、接続部１０３へ送出する。【００５７】
次いで、ストア要求が発行された場合の、上記のように構成されたＬ１キャッシュ制御部１００の動作について、図３に示すフロー図を参照しながら説明する。【００５８】
まず、命令制御部３００によってデータの書き換えを要求するストア要求が発行される（ステップＳ１０１）。発行されたストア要求は、Ｌ１キャッシュ制御部１００の書込／読出部１０１によって受け取られ、書込／読出部１０１によって、ストア対象のデータがＬ１キャッシュ２００から検索される（ステップＳ１０２）。検索の結果、Ｌ１キャッシュ２００にデータが記憶されておりキャッシュヒットすれば（ステップＳ１０２Ｎｏ）、このデータがＬ１キャッシュ２００から読み出され、命令制御部３００へ出力されて、演算処理部４００によるストア処理が実行される（ステップＳ１０７）。【００５９】
一方、検索の結果、Ｌ１キャッシュ２００にデータが記憶されておらずキャッシュミスすれば（ステップＳ１０２Ｙｅｓ）、書込／読出部１０１からＭＩ要求生成部１０２へその旨が通知され、ＭＩ要求生成部１０２によってストア対象のデータのアドレスを含むＭＩ要求が生成される（ステップＳ１０３）。生成されたＭＩ要求は、ＭＩ要求アドレス保持部１０５へ出力され、ＭＩ要求アドレス保持部１０５によって、ＭＩ要求アドレス（すなわち、ストア対象のデータのアドレス）が保持されるとともに、カウンタ１０６の始動が指示される（ステップＳ１０４）。【００６０】
また、ＭＩ要求生成部１０２によって生成されたＭＩ要求は、接続部１０３経由でＬ２キャッシュ制御部５００へ伝達され、Ｌ２キャッシュ制御部５００がＬ２キャッシュ６００または他のＣＰＵのＬ１キャッシュ２００からＭＩ要求アドレスのデータを取得し、Ｌ１キャッシュ制御部１００へ転送する。このデータは、Ｌ１キャッシュ２００にＭＩすべきＭＩデータとして、ＭＩデータ送出部１０４からＭＩ要求とともに書込／読出部１０１へ出力され、書込／読出部１０１によってＬ１キャッシュ２００に書き込まれる（ステップＳ１０５）。【００６１】
その後、Ｌ１キャッシュ制御部１００では、Ｌ２キャッシュ制御部５００からのＭＯ命令が随時受け付けられており（ステップＳ１０６）、接続部１０３にＭＯ命令が到達しない場合は（ステップＳ１０６Ｎｏ）、Ｌ１キャッシュ２００におけるキャッシュミスに応じてＭＩされたデータのストア処理が行われる（ステップＳ１０７）。また、接続部１０３にＭＯ命令が到達した場合は（ステップＳ１０６Ｙｅｓ）、ＭＯ要求生成部１０７によって、ＭＯ命令に含まれるＭＯ要求アドレスがＭＯ要求アドレス取得部１０８へ出力される。【００６２】
そして、ＭＯ要求アドレス取得部１０８によってＭＯ要求アドレスが取得されると、比較部１０９によって、ＭＯ要求アドレスとＭＩ要求アドレス保持部１０５によって保持されているＭＩ要求アドレスとが一致するか否か比較される（ステップＳ１０８）。ここで、比較されたアドレスが一致するということは、今回ストア処理のためにＬ１キャッシュ２００にＭＩされたデータに対するＭＯが要求されていることを意味している。また、比較されたアドレスが一致しないということは、今回ストア処理のためにＬ１キャッシュ２００にＭＩされたデータ以外のデータに対するＭＯが要求されていることを意味している。【００６３】
そこで、ＭＯ要求アドレスとＭＩ要求アドレスとが一致していなければ、比較部１０９によってＭＯの実行がＭＯ要求生成部１０７へ指示され、ＭＯ要求生成部１０７によってＭＯ要求アドレスを含むＭＯ要求が生成され、書込／読出部１０１へ出力される。そして、書込／読出部１０１によってＭＯ要求アドレスのデータがＬ１キャッシュ２００から読み出され、ＭＯデータ送出部１１０および接続部１０３を介してＬ２キャッシュ制御部５００へ出力され、データのＭＯが実行される（ステップＳ１１２）。【００６４】
また、ＭＯ要求アドレスとＭＩ要求アドレスとが一致していれば、比較部１０９によって、カウンタ１０６が稼働中であるか否か、換言すれば、カウンタ値が０であるか否かが判定される（ステップＳ１０９）。ここで、カウンタ１０６が稼働中ではなくカウンタ値が０であれば（ステップＳ１０９Ｙｅｓ）、今回ストア処理のためにＬ１キャッシュ２００にＭＩされたデータについて、ＭＩされてから十分な時間が経過しているためストア処理が完了していると判断され、比較部１０９によってＭＯの実行がＭＯ要求生成部１０７へ指示される。【００６５】
反対に、カウンタ１０６が稼働中でカウンタ値が０でなければ（ステップＳ１０９Ｎｏ）、今回ストア処理のためにＬ１キャッシュ２００にＭＩされたデータについて、ＭＩされてからまだ十分な時間が経過していないと判断され、比較部１０９によってＭＯの中止がＭＯ要求生成部１０７へ指示される。そして、ＭＯ要求生成部１０７によって、ＭＯ要求アドレスからＭＯ要求が生成されることなく、ＭＯは中止される（ステップＳ１１０）。また、このとき、ＭＯ要求アドレスは、ＭＯ要求生成部１０７によって一時的に保持される。【００６６】
そして、ＭＯが中止されるため、Ｌ１キャッシュ２００にＭＩされたばかりのデータがＭＯされることはなく、この間に命令制御部３００からのストア要求に従ったストア処理が実行される（ステップＳ１１１）。その後、カウンタ１０６がカウンタ値を所定のしきい値までカウントアップして０にリセットすると、その旨が比較部１０９へ通知される。そして、比較部１０９は、カウンタ値が０になったことから（ステップＳ１０９Ｙｅｓ）、ＭＯ要求生成部１０７へ中止したＭＯの実行を指示する。【００６７】
ＭＯの実行を指示されたＭＯ要求生成部１０７は、保持していたＭＯ要求アドレスからＭＯ要求を生成して書込／読出部１０１へ出力し、Ｌ１キャッシュ２００からデータが読み出されてＭＯが実行される（ステップＳ１１２）。【００６８】
以上のように、本実施の形態によれば、Ｌ１キャッシュへのＭＩが要求された後にデータのＭＯが要求された場合、ＭＯが要求されているデータのアドレスと直近にＭＩが要求されたデータのアドレスとを比較し、アドレスが一致しており、かつ、ＭＩが要求されてから一定期間が経過していなければ、データのＭＯを中止する。このため、キャッシュにＭＩされたばかりのデータはＭＯすることなく、その他のデータはＭＯすることになり、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制することができる。【００６９】
なお、上記一実施の形態において、キャッシュが例えばセットアソシアティブ方式で構成される場合には、ＭＩ要求アドレスとＭＯ要求アドレスの比較と同時に、ＭＩするデータのウェイとＭＯが要求されるデータのウェイとを比較するようにしても良い。ウェイについての比較を行う場合、アドレスおよびウェイが一致し、かつ、ＭＩが要求されてから一定期間が経過していなければ、データのＭＯを中止する。このとき、セットアソシアティブ方式であれば、アドレスの比較は、アドレスの一部であるインデックス部分のみについて行えば十分であるため、アドレス全体を比較する場合に比べて回路規模を縮小することができる。【００７０】
また、上記一実施の形態においては、ＭＩ要求アドレスが保持されるとカウンタが始動するものとしたが、カウンタ始動のタイミングは、ＭＩ要求に応じてデータがＭＩされたタイミングとしても良い。こうすることにより、ＭＩ要求後、すぐにデータのＭＩが行われない場合でも、確実にストア処理に要する時間を確保することができる。
【産業上の利用可能性】
【００７１】
本発明は、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制する場合に適用することができる。
【図１】
2007105256.tif 000003
【図２】
2007105256.tif 000004
【図３】
2007105256.tif 000005
【図４−１】
2007105256.tif 000006
【図４−２】
2007105256.tif 000007
【図４−３】
2007105256.tif 000008
【図４−４】
2007105256.tif 000009
【図４−５】
2007105256.tif 000010
【図４−６】
2007105256.tif 000011
【図５】
2007105256.tif 000012
【国際調査報告】
2007105256.tif 000013
2007105256.tif 000014
2007105256.tif 000015
2007105256.tif 000016