(57)【特許請求の範囲】
【請求項１】
データを記憶する主記憶装置に接続する演算処理装置において、
メモリアクセス命令をそれぞれ実行する複数の演算処理部と、
前記主記憶装置から読みだしたデータを複数のバンクに分割された前記主記憶装置に対応してそれぞれ保持する複数のキャッシュメモリと、
前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択する選択部と、
前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送する転送部と、
前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記複数のキャッシュメモリのいずれかに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置の複数のバンクのいずれかから読みだしたデータを前記複数のキャッシュメモリのうち前記主記憶装置の複数のバンクのいずれかに対応するキャッシュメモリに保持させるとともに、前記主記憶装置の複数のバンクのいずれかから読みだした前記データを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に対して転送させる制御部と、を有し、
前記制御部は、
前記メモリアクセス命令を複数のステージを有するパイプラインで処理するとともに、前記キャッシュメモリからデータを読み出す場合の前記パイプラインにおける前記キャッシュメモリからデータを読み出すタイミングと、前記複数の演算処理部のいずれかが前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合の前記パイプラインにおける前記主記憶装置から読みだしたデータを前記選択部に出力させるタイミングとを一致させるとともに、メモリアクセスの実行を開始した後、前記キャッシュメモリに対するアクセスに必要な期間、または前記転送部によるデータ転送に必要な期間、だけ後続のメモリアクセス命令の実行を待機させる
ことを特徴とする演算処理装置。
【請求項２】
前記演算処理装置はさらに、
前記主記憶装置から読みだしたデータを保持して前記キャッシュメモリに出力するキューを有し、
前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを、前記キューを介して前記キャッシュメモリに保持させるとともに、前記キューから読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させる制御部を有することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御部は、
前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させた後に、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させることを特徴とする請求項１または２に記載の演算処理装置。
【請求項４】
データを記憶する主記憶装置に接続するとともに、前記主記憶装置から読みだしたデータを複数のバンクに分割された前記主記憶装置に対応してそれぞれ保持する複数のキャッシュメモリを有する演算処理装置の制御方法において、
前記演算処理装置が有する複数の演算処理部が、メモリアクセス命令をそれぞれ実行し、
前記演算処理装置が有する選択部が、前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択し、
前記演算処理装置が有する転送部が、前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送し、
前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記複数のキャッシュメモリのいずれかに対して要求したデータがキャッシュミスを発生させた場合、前記演算処理装置が有する制御部が、前記キャッシュミスの発生に応じて前記主記憶装置の複数のバンクのいずれかから読みだしたデータを前記複数のキャッシュメモリのうち前記主記憶装置の複数のバンクのいずれかに対応するキャッシュメモリに保持させ、
前記制御部が、前記主記憶装置の複数のバンクのいずれかから読みだした前記データを前記選択部に選択させ、
前記制御部が、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に対して転送させ、
前記制御部が、前記メモリアクセス命令を複数のステージを有するパイプラインで処理するとともに、前記キャッシュメモリからデータを読み出す場合の前記パイプラインにおける前記キャッシュメモリからデータを読み出すタイミングと、前記複数の演算処理部のいずれかが前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合の前記パイプラインにおける前記主記憶装置から読みだしたデータを前記選択部に出力させるタイミングとを一致させ、
前記制御部が、メモリアクセスの実行を開始した後、前記キャッシュメモリに対するアクセスに必要な期間、または前記転送部によるデータ転送に必要な期間、だけ後続のメモリアクセス命令の実行を待機させる
ことを特徴とする演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。本発明は、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる演算処理装置及び演算処理装置の制御方法を含む。
【背景技術】
【０００２】
通常、ＣＰＵ（Central Processing Unit）などのプロセッサコアを備えた情報処理装置には、処理の高速化を図るために、キャッシュメモリが設けられる。キャッシュメモリは、メインメモリなどの主記憶部よりも高速にアクセス可能なメモリであり、主記憶部に記憶されたデータのうちＣＰＵが頻繁に使用するデータのみを記憶している。このため、ＣＰＵは、様々な演算処理を実行する際、最初にキャッシュメモリにアクセスし、必要なデータを要求する。このとき、必要なデータがキャッシュメモリに記憶されていなければ、キャッシュミスが発生したこととなり、必要なデータは主記憶部からキャッシュメモリへ転送される。すなわち、キャッシュメモリに対するリード（READ）が実行された結果、キャッシュミスが発生すると、ムーブイン（MOVE-IN）により主記憶部からキャッシュメモリへデータが転送される。
【０００３】
このように、キャッシュミスが発生する場合には、ムーブインによって必要なデータがキャッシュメモリに格納されるため、ＣＰＵは、再度リードを実行して、キャッシュメモリからデータを読み出すことになる。このため、ＣＰＵがデータを取得するまでには、２つのリードと１つのムーブインとが実行されることとなり、遅延時間（以下「レイテンシ」という）が長くなる。そこで、データ取得までの遅延を低減して情報処理装置の性能を向上するために、主記憶部からキャッシュメモリへデータが転送されるのと同時に、データをＣＰＵへも転送することが検討されている（例えば特許文献１参照）。
【０００４】
図７は、特許文献１に記載された情報処理装置の構成を示す図である。図７に示す情報処理装置は、主記憶部１、命令制御部２、および記憶制御部３を有している。命令制御部２がデータを要求すると、記憶制御部３においてデータのリードが実行される。すなわち、命令制御部２からのデータ要求が記憶制御部３内のセレクタ７を介してキャッシュ４へ送られ、要求されたデータがキャッシュ４に記憶されている場合は（キャッシュヒット）、該当するデータがセレクタ５を介して命令制御部２内のバッファ８へ読み出される。この場合は、図８の上段に示すように、命令制御部２がデータを記憶制御部３から取得することができ、データ取得までは１つのリード（図中「ＲＤ」と示す）が実行されるのみである。したがって、命令制御部２がデータを取得するまでのレイテンシはほとんどない。
【０００５】
一方、命令制御部２によって要求されたデータがキャッシュ４に記憶されていない場合は（キャッシュミス）、主記憶部１に記憶されたデータをキャッシュ４へ転送するムーブインが実行される。すなわち、命令制御部２からのデータ要求がセレクタ７を介して主記憶部１へ送られ、要求されたデータがセレクタ６を介してキャッシュ４へ転送される。通常であれば、以後、再び命令制御部２がデータを要求し、記憶制御部３においてリードが実行され、要求されたデータがキャッシュ４からセレクタ５を介してバッファ８へ読み出されることになる。この場合は、図８の中段に示すように、命令制御部２がデータを取得するまでに、２つのリード（ＲＤ）と１つのムーブイン（図中「ＭＩ」と示す）が実行される。したがって、命令制御部２がデータを取得するまでのレイテンシが長くなる。
【０００６】
しかし、特許文献１においては、主記憶部１からセレクタ５を介して命令制御部２のバッファ８へ直接接続するラインＬが設けられており、データが主記憶部１からセレクタ６を介してキャッシュ４へ転送されるのと同時に、ラインＬを経由してバッファ８へ読み出される。このため、図８の下段に示すように、命令制御部２は、キャッシュ４へのムーブイン（ＭＩ）と同時にデータを取得することができ、レイテンシを短縮することができる。
【０００７】
【特許文献１】特開平１０−１１１７９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、近年、１つのプロセッサコア（以下、単に「コア」という）を備えるシングルコアの半導体集積回路においては、消費電力の増大などの問題が無視できないものとなっており、性能向上の限界が近づいている。そこで、１つの基板上に複数のコアを備えるマルチコア化によって、半導体集積回路のさらなる性能向上が図られることがある。また、マルチコア化と同時に、キャッシュメモリや主記憶部を複数のバンクに分割することにより、各コアとキャッシュメモリや主記憶部との間のスループットの向上が図られることがある。
【０００９】
このようにマルチコア化およびバンク分けされた半導体集積回路においては、複数のコア、キャッシュメモリ、および主記憶部に接続する主記憶制御部が基板の外縁に配置され、基板の中央には、全体のデータの転送を制御する制御部が配置される。そして、バンク分けされたそれぞれの主記憶部は、アドレスが異なるデータを記憶しているため、各コアは、基板上のすべての主記憶制御部に対してデータを要求することがある。したがって、上述した特許文献１のように、主記憶部とコアを直接接続する場合には、すべてのコアと主記憶制御部を互いに接続する必要があり、基板上の配線が複雑になってしまうという問題がある。
【００１０】
すなわち、各主記憶制御部は、基板の中央に配置された制御部を挟んで対向するコアからもデータを要求される可能性があるため、コアによるデータ取得までのレイテンシを短縮するためには、基板上で遠く離れた主記憶制御部とコアについても直接接続する必要がある。結果として、基板上の配線を大幅に変更・増設する必要が生じ、半導体集積回路の大型化を招いてしまう。最近では、半導体集積回路を搭載する装置は、小型化の一途をたどっており、コアのデータ取得におけるレイテンシを短縮するために半導体集積回路が大型化するのは現実的ではない。
【００１１】
本発明はかかる点に鑑みてなされたものであり、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる演算処理装置及び演算処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、演算処理装置は、データを記憶する主記憶装置に接続する演算処理装置において、メモリアクセス命令をそれぞれ実行する複数の演算処理部と、前記主記憶装置から読みだしたデータを保持するキャッシュメモリと、前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択する選択部と、前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送する転送部と、前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させるとともに、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させる制御部を有する構成を採る。
【００１４】
また、演算処理装置の制御方法は、データを記憶する主記憶装置に接続するとともに、前記主記憶装置から読みだしたデータを保持するキャッシュメモリを有する演算処理装置の制御方法において、前記演算処理装置が有する複数の演算処理部が、メモリアクセス命令をそれぞれ実行し、前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記演算処理装置が有する制御部が、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させ、前記制御部が、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記制御部が、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させるようにした。
【発明の効果】
【００１５】
本明細書に開示された演算処理装置及び演算処理装置の制御方法によれば、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、１つの基板上にコア、キャッシュメモリ、および主記憶制御部がそれぞれ複数配置される半導体集積回路について説明する。ただし、１つの基板上にコア、キャッシュメモリ、または主記憶制御部が１つのみ配置される半導体集積回路にも本発明を同様に適用することができる。
【００１７】
図１は、本実施の形態に係る半導体集積回路１００の概略構成を示す図である。図１に示す半導体集積回路１００は、８つのコア＃０〜＃７を有している。また、半導体集積回路１００においては、図示しない４つにバンク分けされた主記憶部に対応して、キャッシュメモリおよび主記憶制御部が４つのデータメモリ＃０〜＃３および４つのＭＡＣ（Memory Access Controller）＃０〜＃３に分割されている。そして、コア＃０〜＃７、データメモリ＃０〜＃３、およびＭＡＣ＃０〜＃３は、基板の外縁に配置されており、基板の中央には、制御部が配置されている。また、図１に示す半導体集積回路１００は、各ＭＡＣ＃０〜＃３から各データメモリ＃０〜＃３へのデータ転送や、各データメモリ＃０〜＃３から各コア＃０〜＃７へのデータ転送を制御するキャッシュメモリ制御装置を含んでいる。
【００１８】
コア＃０〜＃７は、制御部におけるリード（READ）の実行によって、データメモリ＃０〜＃３に一時的に保持されたデータを取得し、様々な演算処理を実行する。また、コア＃０〜＃７は、データメモリ＃０〜＃３に必要なデータが保持されていない場合（キャッシュミス）、該当するデータを記憶している主記憶部のバンクに対応するＭＡＣ＃０〜＃３に対してデータを要求する。そして、コア＃０〜＃７は、制御部におけるムーブイン（MOVE-IN）の実行によって、ＭＡＣ＃０〜＃３からデータメモリ＃０〜＃３へデータが転送される際、データメモリ＃０〜＃３へ入力されるデータと同一のデータを取得する。すなわち、コア＃０〜＃７は、データメモリ＃０〜＃３への入力部分から、データメモリ＃０〜＃３に書き込まれるデータと同一のデータを取得する。
【００１９】
データメモリ＃０〜＃３は、それぞれキャッシュメモリの一部を構成しており、コア＃０〜＃７が使用するデータを一時的に保持する。具体的には、データメモリ＃０〜＃３は、制御部においてリードが実行されると、コア＃０〜＃７が要求するデータを出力する。また、データメモリ＃０〜＃３は、制御部においてムーブインが実行されると、コア＃０〜＃７が要求したデータをＭＡＣ＃０〜＃３から取得して記憶する。
【００２０】
ＭＡＣ＃０〜＃３は、それぞれアドレスが異なるデータを記憶する図示しない主記憶部の４つのバンクに対応している。そして、ＭＡＣ＃０〜＃３は、キャッシュミスが生じた場合に、コア＃０〜＃７が要求するデータを図示しない主記憶部から取得してデータメモリ＃０〜＃３へ転送する。
【００２１】
制御部は、パイプライン処理によってリードやムーブインなどを実行する。すなわち、制御部は、コア＃０〜＃７がデータを要求した場合、パイプラインにリード要求を投入し、図示しないタグメモリを検索して、要求されたデータがデータメモリ＃０〜＃３に記憶されているか否かを判断する。そして、要求されたデータがデータメモリ＃０〜＃３に記憶されていれば（キャッシュヒット）、制御部は、該当するデータをデータメモリ＃０〜＃３からコア＃０〜＃７へ出力させる。一方、要求されたデータがデータメモリ＃０〜＃３に記憶されていなければ（キャッシュミス）、制御部は、パイプラインにムーブイン要求を投入し、該当するデータをＭＡＣ＃０〜＃３からデータメモリ＃０〜＃３へ転送させる。
【００２２】
なお、制御部は、リードおよびムーブイン以外にも、コア＃０〜＃７によって演算処理されたデータをデータメモリ＃０〜＃３に書き戻すライトバック（WRITE-BACK）や、データをデータメモリ＃０〜＃３から図示しない主記憶部へ排出するムーブアウト（MOVE-OUT）などを実行する。また、制御部は、リード要求やムーブイン要求などの命令をパイプラインに投入する際、複数の命令が同時にデータメモリ＃０〜＃３などの資源を使用する干渉が生じないように、適切な間隔をあけて命令をパイプラインに投入する。
【００２３】
図２は、本実施の形態に係る半導体集積回路１００の要部構成を示す図である。図２においては、特に、図１に示した半導体集積回路１００のコア＃０〜＃３、データメモリ＃０、＃１、およびＭＡＣ＃０、＃１に対応する部分を拡大して示している。図２に示す半導体集積回路１００は、コア１０１−０、１０１−１、制御部１０２、ライトバックデータキュー（以下「ＷＢＤＱ」と略記する）１０３、ムーブインデータキュー（以下「ＭＩＤＱ」と略記する）１０４、セレクタ１０５、データメモリ１０６、セレクタ１０７、１０８、データバス１０９、およびＭＡＣ１１５を備えている。なお、図２に示す半導体集積回路１００は、左右対称に構成されているため、左半分についてのみ符号を付している。また、図２においては、主にデータメモリ１０６付近におけるデータの移動を矢印で示している。
【００２４】
コア１０１−０、１０１−１は、データメモリ１０６または図示しない主記憶部に記憶されたデータを使用して様々な演算処理を実行する。このとき、コア１０１−０、１０１−１は、演算処理に必要なデータを制御部１０２に対して要求し、該当するデータがデータメモリ１０６に記憶されていれば（キャッシュヒット）、リードの実行によりデータメモリ１０６から読み出されたデータを取得する。また、コア１０１−０、１０１−１は、必要なデータがデータメモリ１０６に記憶されていなければ（キャッシュミス）、ムーブインの実行により主記憶部からＭＡＣ１１５を介してデータメモリ１０６へ転送されるデータを取得する。より具体的には、コア１０１−０、１０１−１は、ムーブインの実行によりデータメモリ１０６の入力部分に設けられたＭＩＤＱ１０４へ転送されたデータを、データメモリ１０６への書き込み終了後に取得する。
【００２５】
制御部１０２は、パイプライン処理によりコア１０１−０、１０１−１が要求するデータのリードやムーブインを実行する。すなわち、制御部１０２は、コア１０１−０、１０１−１がデータを要求すると、パイプラインにリード要求を投入し、キャッシュヒットの場合には、データメモリ１０６からコア１０１−０、１０１−１へデータを転送させる。また、制御部１０２は、キャッシュミスの場合には、要求されたデータを記憶する主記憶部に対応するＭＡＣ１１５からＭＩＤＱ１０４へデータを転送させた後、パイプラインにムーブイン要求を投入し、要求されたデータをＭＩＤＱ１０４からデータメモリ１０６へ転送させる。
【００２６】
ＷＢＤＱ１０３は、ライトバックの実行時に、コア１０１−０、１０１−１からデータメモリ１０６へ書き戻されるデータを一時的に保持するキューである。すなわち、ＷＢＤＱ１０３は、コア１０１−０、１０１−１によって加工されたデータを一時的に保持し、セレクタ１０５を介してデータメモリ１０６へ出力する。
【００２７】
ＭＩＤＱ１０４は、データメモリ１０６の入力部分に設けられ、キャッシュミスが生じた場合のムーブインの実行時に、ＭＡＣ１１５からデータメモリ１０６へ転送されるデータを一時的に保持するキューである。すなわち、ＭＩＤＱ１０４は、コア１０１−０、１０１−１によって要求されたＭＡＣ１１５からのデータを一時的に保持し、セレクタ１０５を介してデータメモリ１０６へ出力する。また、ＭＩＤＱ１０４は、データがデータメモリ１０６に書き込まれた後、同一のデータをセレクタ１０７へも出力する。
【００２８】
セレクタ１０５は、ＷＢＤＱ１０３およびＭＩＤＱ１０４に保持されたデータのいずれか一方を選択してデータメモリ１０６へ出力する。具体的には、セレクタ１０５は、制御部１０２のパイプラインによってライトバックが実行されている場合は、ＷＢＤＱ１０３に保持されたデータを選択する。また、セレクタ１０５は、制御部１０２のパイプラインによってムーブインが実行されている場合は、ＭＩＤＱ１０４に保持されたデータを選択する。
【００２９】
さらに、セレクタ１０５は、ムーブインが実行されている場合は、ＭＩＤＱ１０４に保持されたデータがデータメモリ１０６に書き込まれた後、同一のデータをラインＬ０を介してセレクタ１０７へも出力する。つまり、セレクタ１０５は、ムーブインの実行によりデータメモリ１０６に書き込まれたデータと同一のデータをラインＬ０へ出力し、セレクタ１０７からコア１０１−０、１０１−１へ転送させる。
【００３０】
ここで、ラインＬ０は、ＭＩＤＱ１０４およびデータメモリ１０６の中間とセレクタ１０７とを接続する配線であり、データメモリ１０６の入力部分と出力部分を結んでいる。したがって、ラインＬ０は、データメモリ１０６の周囲にのみ設けられる非常に短いラインであり、新規にラインＬ０を設けても、周辺の配線に与える影響はほとんどない。そして、ラインＬ０は、データメモリ１０６へ入力するデータと同一のデータを、リードが実行された場合にデータメモリ１０６から出力するデータが経由するデータメモリ１０６の出力部分へ転送する。
【００３１】
データメモリ１０６は、キャッシュメモリの一部を構成するメモリであり、コア１０１−０、１０１−１によって頻繁に使用されるデータを一時的に記憶する。本実施の形態においては、キャッシュメモリは、バンク分けされたデータメモリとタグメモリとを備えており、それぞれのメモリとしては、例えばＲＡＭ（Random Access Memory）などを使用することが可能である。
【００３２】
セレクタ１０７は、データメモリ１０６の出力部分に設けられ、ＭＩＤＱ１０４から出力されたデータとデータメモリ１０６から出力されたデータとのいずれか一方を選択して、セレクタ１０８およびコア１０１−０、１０１-１以外のコアへ出力する。具体的には、セレクタ１０７は、制御部１０２のパイプラインによってムーブインが実行されている場合は、ＭＩＤＱ１０４から出力されたデータを選択する。また、セレクタ１０７は、制御部１０２のパイプラインによってリードが実行されている場合は、データメモリ１０６から出力されたデータを選択する。
【００３３】
換言すれば、セレクタ１０７は、キャッシュヒット時にリードされるデータおよびキャッシュミス時にムーブインされるデータのいずれか一方をコア１０１−０、１０１−１へ転送するデータとして選択する。そして、キャッシュミス時には、セレクタ１０７は、ムーブインの実行によりデータがデータメモリ１０６に書き込まれたとき、同一のデータをラインＬ０から取得して、コア１０１−０、１０１−１へ転送する。このように、セレクタ１０７は、ムーブインの実行時にデータメモリ１０６へ入力するデータと同一のデータを、リードの実行時にデータメモリ１０６から出力するデータと同等に扱ってコア１０１−０、１０１−１へ転送する。これにより、ムーブインの実行によってデータメモリ１０６に入力したデータを、リードの実行により改めてデータメモリ１０６から出力しなくても、要求されたデータを迅速にコア１０１−０、１０１−１へ転送することが可能となる。
【００３４】
なお、セレクタ１０７は、リードが実行されている場合であってもムーブインが実行されている場合であっても、パイプライン処理の同じサイクルでデータを出力する。すなわち、ムーブイン時には、データメモリ１０６に対するデータ書き込みアクセス後に、データメモリ１０６に書き込まれたのと同一のデータがＭＩＤＱ１０４からセレクタ１０７へ出力される。また、リード時には、データメモリ１０６に対するデータ読み出しアクセス後に、データメモリ１０６から読み出されたデータがデータメモリ１０６からセレクタ１０７へ出力される。したがって、ムーブイン時でもリード時でも、セレクタ１０７にデータが到達するパイプライン処理のサイクルが同じになり、セレクタ１０７からコア１０１−０、１０１−１へのデータ転送は、まったく同じ処理となる。
【００３５】
セレクタ１０８は、セレクタ１０７から出力されたデータとデータメモリ１０６以外のデータメモリから出力されたデータとのいずれか１つを選択して、コア１０１−０、１０１−１へ出力する。具体的には、セレクタ１０８は、コア１０１−０、１０１−１がデータメモリ１０６に記憶されたデータを要求した場合は、セレクタ１０７から出力されたデータを選択する。また、セレクタ１０８は、コア１０１−０、１０１−１がデータメモリ１０６以外のデータメモリに記憶されたデータを要求した場合は、データ要求先のデータメモリから出力されたデータを選択する。
【００３６】
データバス１０９は、セレクタ１０８とコア１０１−０、１０１−１とを接続し、データメモリ１０６またはＭＩＤＱ１０４から出力されてセレクタ１０７およびセレクタ１０８を経由したデータをコア１０１−０、１０１−１へ転送する。つまり、データバス１０９は、制御部１０２のパイプラインによってリードが実行される場合にもムーブインが実行される場合にも共通して使用されるため、それぞれの命令の実行期間中において所定サイクルの間占有されることになる。
【００３７】
ＭＡＣ１１５は、コア１０１−０、１０１−１が使用し得るすべてのデータを記憶する図示しない主記憶部に接続しており、キャッシュミスが生じた場合、キャッシュミスしたデータを主記憶部から取得し、ＭＩＤＱ１０４へ転送する。ＭＩＤＱ１０４へ転送されたデータは、ムーブインの実行により、ＭＩＤＱ１０４からデータメモリ１０６へ転送される。
【００３８】
次いで、本実施の形態に係るコア、キャッシュメモリ、およびＭＡＣの接続関係について、図３を参照しながらより詳細に説明する。図３は、コア１０１、データメモリ１０６とタグメモリ１１２を備えるキャッシュメモリ、およびＭＡＣ１１５の接続関係を模式的に示す図である。同図において、図２と同じ部分には同じ符号を付している。図３においては、図２に示した構成に加えてムーブインポート（以下「ＭＩポート」と略記する）１１０、セレクタ１１１、タグメモリ１１２、ムーブインバッファ（以下「ＭＩバッファ」と略記する）１１３、およびムーブアウトデータキュー（以下「ＭＯＤＱ」と略記する）１１４を図示している。
【００３９】
ＭＩポート１１０は、コア１０１からデータの要求を受信し、制御部１０２に対してリードの実行を要求する。セレクタ１１１は、リードの実行またはムーブインの実行を制御部１０２に要求する。すなわち、セレクタ１１１は、ＭＩポート１１０からリードの実行が要求された場合は、制御部１０２に対してリードの実行を要求し、ＭＩバッファ１１３からムーブインの実行が要求された場合は、制御部１０２に対してムーブインの実行を要求する。
【００４０】
タグメモリ１１２は、データメモリ１０６に記憶されたデータのアドレスを保持しており、制御部１０２のパイプラインにリード要求が投入されると、コア１０１が要求したデータがデータメモリ１０６に記憶されているか否かを判断する。つまり、要求されたデータのアドレスをタグメモリ１１２が保持していればキャッシュヒットとなり、要求されたデータのアドレスをタグメモリ１１２が保持していなければキャッシュミスとなる。
【００４１】
ＭＩバッファ１１３は、キャッシュミスが生じた場合、キャッシュミスしたデータをＭＩＤＱ１０４へ転送するようにＭＡＣ１１５に対して指示する。そして、ＭＩバッファ１１３は、キャッシュミスしたデータがＭＩＤＱ１０４へ転送された後、制御部１０２に対してムーブインの実行を要求する。
【００４２】
ＭＯＤＱ１１４は、キャッシュリプレース時に、データメモリ１０６からＭＡＣ１１５を介して図示しない主記憶部へ書き戻されるデータを一時的に保持する。
【００４３】
以上のような構成において、コア１０１がデータを要求する際、データの要求は、ＭＩポート１１０によって受信され、リード実行の要求がセレクタ１１１を介して制御部１０２へ入力する。そして、制御部１０２においては、パイプラインにリード要求が投入され、タグメモリ１１２の検索により、要求されたデータがデータメモリ１０６に記憶されているか否かが判断される。判断の結果、要求されたデータがデータメモリ１０６に記憶されており、キャッシュヒットした場合は、該当するデータがデータメモリ１０６から出力され、セレクタ１０７、１０８、およびデータバス１０９を介してコア１０１へ転送される。これにより、リードのパイプライン処理が完了する。
【００４４】
一方、コア１０１が要求したデータのアドレスがタグメモリ１１２に保持されておらず、キャッシュミスした場合は、キャッシュミスしたデータのアドレスがタグメモリ１１２からＭＩバッファ１１３へ通知される。そして、ＭＩバッファ１１３からＭＡＣ１１５に対して、キャッシュミスしたデータをＭＩＤＱ１０４へ転送するように指示される。すなわち、コア１０１が要求したデータのアドレスがタグメモリ１１２に保持されていない場合、ＭＩバッファ１１３は、コア１０１が要求したデータをＭＩＤＱ１０４へ転送するようにＭＡＣ１１５へ指示する。
【００４５】
ＭＡＣ１１５は、ＭＩバッファ１１３からの指示を受け、コア１０１が要求したデータを主記憶部から取得してＭＩＤＱ１０４へ転送する。コア１０１が要求したデータがＭＩＤＱ１０４へ転送された後、ＭＩバッファ１１３によって、ムーブイン実行の要求がセレクタ１１１を介して制御部１１２へ入力される。制御部１０２においては、パイプラインにムーブイン要求が投入され、ムーブイン要求のパイプライン処理に応じて、ＭＩＤＱ１０４に一時的に保持されたデータがセレクタ１０５を介してデータメモリ１０６へ出力され、データメモリ１０６に書き込まれる。ＭＩＤＱ１０４から出力されたデータがデータメモリ１０６に書き込まれた後、同一のデータがＭＩＤＱ１０４からラインＬ０を介してセレクタ１０７へ出力される。
【００４６】
ここで、ラインＬ０を介してＭＩＤＱ１０４からセレクタ１０７へデータが出力されるサイクルは、リード実行時にデータメモリ１０６からデータが出力されるのと同じサイクルである。つまり、本実施の形態においては、ＭＩＤＱ１０４から出力されたデータがデータメモリ１０６に書き込まれるのと同時にラインＬ０を介してセレクタ１０７へ出力されるのではなく、データの書き込み終了後にセレクタ１０７へデータが出力される。これにより、リード実行時およびムーブイン実行時でセレクタ１０７にデータが到達するパイプライン処理のサイクルが同じになり、セレクタ１０７からコア１０１へのデータ転送を共通の制御で実現することができる。
【００４７】
ＭＩＤＱ１０４からのデータがラインＬ０を介してセレクタ１０７に到達すると、データは、リード実行時と同様に、セレクタ１０７、１０８、およびデータバス１０９を介してコア１０１へ転送される。これにより、ムーブインのパイプライン処理が完了する。つまり、本実施の形態においては、キャッシュミスが生じた場合でも、ムーブインの完了と同時に、要求されたデータがコア１０１によって取得される。換言すれば、ムーブインによってデータメモリ１０６に書き込まれたデータを、再度リードによって読み出してコア１０１へ転送する必要がない。結果として、キャッシュミス時にコア１０１がデータを取得するまでのレイテンシを１つのリード実行に相当する時間だけ短縮することができる。
【００４８】
次に、キャッシュミス時のレイテンシの短縮について、図４および図５を参照しながら説明する。図４は、本実施の形態に係るキャッシュミス時の動作を示すシーケンス図である。
【００４９】
コア１０１による演算などのためにデータが必要となると、ＭＩポート１１０およびセレクタ１１１を介してコア１０１から制御部１０２に対してリードの実行が要求される（ステップＳ１０１）。制御部１０２においては、パイプラインにリード要求が投入され、リード要求が処理されるとタグメモリ１１２の検索などが行われる。図４の例では、コア１０１によって要求されたデータがデータメモリ１０６に記憶されておらず、データのアドレスがタグメモリ１１２に保持されていない。すなわち、キャッシュミスが生じるため、制御部１０２からＭＩバッファ１１３を介してＭＡＣ１１５へデータの転送が指示される（ステップＳ１０２）。そして、コア１０１によって要求されたデータは、ＭＡＣ１１５によって図示しない主記憶部から取得され、ＭＩＤＱ１０４へ転送され（ステップＳ１０３）、ＭＩＤＱ１０４に一時的に保持される。
【００５０】
また、制御部１０２においては、リード要求が投入された後、所定サイクルの間隔をあけて、ＭＩバッファ１１３からパイプラインにムーブイン要求が投入される。パイプラインへのリード要求の投入後、ムーブイン要求の投入までに所定サイクルの間隔をあけるのは、データメモリ１０６やデータバス１０９などの資源が複数の命令によって同時に使用されることを防ぐためである。
【００５１】
なお、実際にキャッシュミスが生じた場合には、上述したように、ＭＩバッファ１１３からＭＡＣ１１５に対してキャッシュミスしたデータをＭＩＤＱ１０４へ転送するように指示され、該当するデータがＭＡＣ１１５によってＭＩＤＱ１０４へ転送された後に、ムーブイン要求が投入される。したがって、パイプラインへムーブイン要求が投入される前に、ＭＩＤＱ１０４へのムーブイン対象のデータの転送を完了する必要がある。このため、パイプラインへのリード要求の投入からムーブイン要求の投入までの間隔は、データメモリ１０６やデータバス１０９などの資源が複数の命令によって同時に使用されることを防ぐために必要な間隔よりも長く（例えば１００サイクル以上）なる。
【００５２】
キャッシュミスしたデータがＭＩＤＱ１０４に保持され、制御部１０２のパイプラインにムーブイン要求が投入されると、ＭＩＤＱ１０４に保持されたデータは、セレクタ１０５を介してデータメモリ１０６へ出力され（ステップＳ１０４）、データメモリ１０６に書き込まれる。データがデータメモリ１０６に書き込まれると、同一のデータがＭＩＤＱ１０４からラインＬ０を介してセレクタ１０７へ出力され、セレクタ１０７、１０８、およびデータバス１０９を介してコア１０１へ転送される（ステップＳ１０５）。これにより、コア１０１は、ムーブインの完了と同時に要求したデータを取得することができる。ここで、もし、ラインＬ０およびセレクタ１０７が配設されていなければ、ステップＳ１０５の工程は実行不可能であり、コア１０１がデータを取得するまでには、ムーブインの完了後、さらに図４に破線で示した工程が必要となる。
【００５３】
すなわち、ステップＳ１０５の処理が実行されることなく、ＭＩバッファ１１３から制御部１０２に対して、再度リードの実行が要求される。制御部１０２においては、パイプラインにリード要求が投入され、リード要求が処理されるとタグメモリ１１２の検索などが行われる。ここでは、既に完了したムーブインにより、コア１０１によって要求されたデータがデータメモリ１０６に記憶されている。すなわち、キャッシュヒットするため、データメモリ１０６に対して、要求されたデータを出力するように指示される（ステップＳ２０１）。そして、データメモリ１０６からコア１０１へ要求されたデータが転送されることになる（ステップＳ２０２）。
【００５４】
以上のステップＳ２０１〜Ｓ２０２の工程は、ラインＬ０およびセレクタ１０７を設けることにより、省略することが可能となり、制御部１０２のパイプラインにおいてリード１つを実行する時間だけレイテンシを短縮することができる。つまり、ラインＬ０およびセレクタ１０７がない場合には、図５の上段に示すように、コア１０１がデータを取得するまでに、パイプラインにおいて２つのリード（ＲＤ）と１つのムーブイン（ＭＩ）が実行される。これに対して、本実施の形態に係るラインＬ０およびセレクタ１０７がある場合には、図５の下段に示すように、コア１０１は、１つのリード（ＲＤ）と１つのムーブイン（ＭＩ）の実行のみで、要求したデータを取得することができる。
【００５５】
したがって、本実施の形態においては、リード１つ分の時間だけレイテンシを短縮することができると同時に、パイプラインに投入されるリード要求の数が削減されるため、結果として、パイプラインの使用回数を削減することができる。
【００５６】
次に、制御部１０２におけるパイプライン処理の具体例について、図６を参照しながら説明する。図６は、リード要求、ムーブイン要求、リード要求の順で制御部１０２のパイプラインに命令が投入される場合のパイプライン処理の一例を示す図である。図６において、上部の数字は、サイクル数を示している。また、各サイクルを横切る太線は、それぞれのサイクルにおいて、データメモリ１０６およびデータバス１０９などの資源を使用した処理が実行されることを示している。ただし、図６に示すサイクル数は、説明の便宜上用いる数字であるため、実際のパイプライン処理におけるサイクル数は、図６と異なっていても良い。また、以下においては、データの書き込みおよび読み出し時のデータメモリ１０６に対するアクセスには４サイクルが必要であるものとする。同様に、データバス１０９によるコア１０１へのデータの転送にも４サイクルが必要であるものとする。
【００５７】
第０サイクルで制御部１０２のパイプラインにリード要求が投入されると、データメモリ１０６およびデータバス１０９などの資源に関して、投入されたリード要求と次の命令とが干渉しないように、第０サイクルから第３サイクルの４サイクルの間パイプラインへの命令の投入が禁止される。すなわち、上述したように、リードの実行中におけるデータメモリ１０６からのデータの読み出しには４サイクルが必要であるため、リードの実行によって４サイクルの間はデータメモリ１０６が占有される。同様に、リードの実行に伴うデータの転送によって、４サイクルの間はデータバス１０９が占有される。したがって、次に投入される命令との干渉が生じないように、第０サイクルから第３サイクルの４サイクルの間は、パイプラインによる新たな命令の実行開始が待機される。
【００５８】
また、第０サイクルでリード要求が投入されると、第１サイクルから第４サイクルにおいて、タグメモリ１１２におけるアドレスの検索などが実行され、第５サイクルから第８サイクルの４サイクルにおいて、データメモリ１０６からのデータの読み出しが実行される。そして、第９サイクルでは、データがデータメモリ１０６からセレクタ１０７へ出力される。以後、第１０サイクルから第１１サイクルでデータがセレクタ１０７からセレクタ１０８へ転送され、第１２サイクルから第１５サイクルの４サイクルにおいて、データバス１０９によってデータがコア１０１へ転送される。これにより、最初のリードが完了する。
【００５９】
ところで、第０サイクルにおけるリード要求の投入により、第０サイクルから第３サイクルではパイプラインへの命令の投入が禁止されているが、第４サイクルになると、パイプラインに新たなムーブイン要求が投入される。ここでも、リード要求投入時と同様に、４サイクルの間パイプラインへの命令の投入が禁止される。すなわち、上述したように、ムーブインの実行中におけるデータメモリ１０６へのデータの書き込みには、４サイクルが必要であるため、ムーブインの実行によって、４サイクルの間はデータメモリ１０６が占有される。同様に、ムーブインの実行に伴うデータの転送によって、４サイクルの間はデータバス１０９が占有される。したがって、次に投入される命令のとの干渉が生じないように、第４サイクルから第７サイクルの４サイクルの間は、パイプラインによる新たな命令の実行開始が待機される。
【００６０】
また、第４サイクルでムーブイン要求が投入されると、第５サイクルから第７サイクルにおいて、タグメモリ１１２におけるアドレスの新規登録などが実行され、第８サイクルにおいて、ＭＩＤＱ１０４に保持されたデータがセレクタ１０５を介してデータメモリ１０６へ出力される。そして、第９サイクルから第１２サイクルの４サイクルにおいて、データメモリ１０６へのデータの書き込みが実行される。また、第１３サイクルでは、データメモリ１０６に書き込まれたデータと同一のデータが、ＭＩＤＱ１０４からラインＬ０を介してセレクタ１０７へ出力される。以後、第１４サイクルから第１５サイクルでデータがセレクタ１０７からセレクタ１０８へ転送され、第１６サイクルから第１９サイクルの４サイクルにおいて、データバス１０９によってデータがコア１０１へ転送される。これにより、ムーブインが完了する。
【００６１】
ここで注目すべきなのは、最初のリード実行時およびムーブイン実行時の両方において、命令が投入されてから９サイクル目でセレクタ１０７へデータが出力されていることである。つまり、リード実行時には第０サイクルでリード要求が投入され、第９サイクルでデータがセレクタ１０７へ出力されている。一方、ムーブイン実行時には第４サイクルでムーブイン要求が投入され、第１３サイクルでデータがセレクタ１０７へ出力されている。したがって、セレクタ１０７からコア１０１までのデータ転送に関しては、リード実行時およびムーブイン実行時の両方に共通した制御を実行すれば良い。
【００６２】
このように、データメモリ１０６の入力部分と出力部分とを接続するラインＬ０を設けることにより、ＭＩＤＱ１０４から出力されたデータをデータメモリ１０６から出力されたデータと同等に扱うことが可能となる。すなわち、データメモリ１０６の入力部分からラインＬ０経由で出力部分へデータを転送するタイミングを、リード実行時にデータメモリ１０６から実際にデータが出力されるタイミングと一致させることができる。そして、結果として、リード実行時およびムーブイン実行時のセレクタ１０７からコア１０１までのデータ転送に関する制御を共通化することができる。
【００６３】
ところで、第４サイクルにおけるムーブイン要求の投入により、第４サイクルから第７サイクルではパイプラインへの命令の投入が禁止されているが、第８サイクルになると、パイプラインに新たなリード要求が投入される。以降、最初のリードと同様に、第１３サイクルから第１６サイクルにおいて、データメモリ１０６からデータが読み出され、リード要求の投入から９サイクル目に当たる第１７サイクルでは、データメモリ１０６から読み出されたデータがセレクタ１０７へ出力される。そして、第２０サイクルから第２３サイクルにおいて、データバス１０９によってデータがコア１０１へ転送される。これにより、２つ目のリードが完了する。
【００６４】
以上の２つのリードおよび１つのムーブインは、互いに４サイクルの間隔があけられてパイプラインに投入されている。このため、図６に示すように、データメモリ１０６およびデータバス１０９は、３つの命令によって途切れることなく連続して使用されることになる。すなわち、データメモリ１０６は、最初のリードによって第５サイクルから第８サイクルにアクセスされており、ムーブインによって第９サイクルから第１２サイクルでアクセスされており、２つ目のリードによって第１３サイクルから第１６サイクルにアクセスされている。また、データバス１０９は、最初のリードによって第１２サイクルから第１５サイクルにデータを転送し、ムーブインによって第１６サイクルから第１９サイクルでデータを転送し、２つ目のリードによって第２０サイクルから第２３サイクルでデータを転送している。
【００６５】
このように、本実施の形態においては、データメモリ１０６およびデータバス１０９などの資源における命令間の干渉がなく、かつ、資源が途切れることなく連続して使用されており、資源利用の効率化を図ることができる。なお、図６に示した例では、リードおよびムーブインの双方がデータメモリ１０６およびデータバス１０９を４サイクルずつ占有するものとしたが、占有するサイクル数は、４サイクルに限定されない。また、必ずしもデータメモリ１０６およびデータバス１０９が占有されるサイクル数が等しくなくても良い。これらの場合には、連続する２つの命令間で資源の使用に関する干渉が発生しないように、最も長い資源の占有サイクル数をパイプラインへの命令投入禁止期間とすれば良い。
【００６６】
以上のように、本実施の形態によれば、キャッシュメモリの一部を構成するデータメモリの入力部分と出力部分とを接続し、ムーブイン実行時に入力部分からデータメモリへ入力されるデータと同一のデータをデータメモリの出力部分にも転送する。このため、ムーブインによってデータメモリに書き込まれたデータをリード実行時にデータメモリから読み出されたデータと同等に扱うことができる。すなわち、ムーブインによってデータメモリに書き込まれたデータを改めてリードによって読み出す必要がなく、リードの実行を省略することができる。結果として、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる。
【００６７】
以上の実施の形態に関して、さらに以下の付記を開示する。
【００６８】
（付記１）データを使用した演算処理を実行する演算処理手段と、
主記憶部によって記憶されるデータのうち前記演算処理手段によって使用されるデータを記憶するキャッシュメモリと、
前記キャッシュメモリの入力部分と出力部分とを接続する接続手段と、
主記憶部のデータが前記キャッシュメモリの入力部分から前記キャッシュメモリに入力される場合に、当該データを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させる制御手段と、
前記制御手段の制御により前記キャッシュメモリの出力部分へ転送されたデータを前記演算処理手段へ転送する転送手段と
を有することを特徴とするキャッシュメモリ制御装置。
【００６９】
（付記２）前記キャッシュメモリの入力部分に設けられ、主記憶部のデータを前記キャッシュメモリに書き込む際に一時的に保持するキュー手段をさらに有し、
前記制御手段は、
前記キュー手段から出力されるデータを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させることを特徴とする付記１記載のキャッシュメモリ制御装置。
【００７０】
（付記３）前記キャッシュメモリの出力部分に設けられ、前記キャッシュメモリから実際に出力されるデータおよび前記接続手段経由で転送されたデータのいずれか一方を選択する選択手段をさらに有し、
前記転送手段は、
前記選択手段によって選択されたデータを前記演算処理手段へ転送することを特徴とする付記１記載のキャッシュメモリ制御装置。
【００７１】
（付記４）前記選択手段は、
前記演算処理手段によって要求されるデータが前記キャッシュメモリに記憶されておらず、当該データが主記憶部から前記キャッシュメモリへ転送される場合に、前記接続手段経由で転送されたデータを選択することを特徴とする付記３記載のキャッシュメモリ制御装置。
【００７２】
（付記５）前記制御手段は、
前記キャッシュメモリに入力されたデータが前記キャッシュメモリに書き込まれた後に、当該データと同一のデータを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させることを特徴とする付記１記載のキャッシュメモリ制御装置。
【００７３】
（付記６）前記制御手段は、
データの転送に関する命令をパイプライン処理するパイプライン処理手段を含み、
前記パイプライン処理手段のパイプライン処理において、前記キャッシュメモリから実際にデータが出力されるサイクルと、前記接続手段経由で前記キャッシュメモリの出力部分へデータが転送されるサイクルとを一致させることを特徴とする付記１記載のキャッシュメモリ制御装置。
【００７４】
（付記７）前記パイプライン処理手段は、
１つの命令の実行が開始された後、前記キャッシュメモリに対するアクセスが継続するサイクル数だけ次の命令の実行開始を待機することを特徴とする付記６記載のキャッシュメモリ制御装置。
【００７５】
（付記８）前記パイプライン処理手段は、
１つの命令の実行が開始された後、前記転送手段によるデータ転送に必要なサイクル数だけ次の命令の実行開始を待機することを特徴とする付記６記載のキャッシュメモリ制御装置。
【００７６】
（付記９）データを使用した演算処理を実行するプロセッサコアと、
メインメモリに記憶されるデータを記憶するキャッシュメモリと、
前記キャッシュメモリの入力部分と出力部分とを接続する接続ラインと、
前記メインメモリのデータを前記キャッシュメモリに入力する場合に、当該データを前記接続ライン経由で前記キャッシュメモリの出力部分へ転送させる制御手段と、
前記制御手段の制御により前記キャッシュメモリの出力部分へ転送されたデータを前記プロセッサコアへ転送するデータバスと
を有することを特徴とする半導体集積回路。
【００７７】
（付記１０）前記プロセッサコアを複数有し、
前記キャッシュメモリは、
それぞれ記憶するデータのアドレスが異なる前記メインメモリの複数のバンクに対応して分割されることを特徴とする付記９記載の半導体集積回路。
【００７８】
（付記１１）データを使用した演算処理を実行する演算処理手段と、主記憶部によって記憶されるデータのうち前記演算処理手段によって使用されるデータを記憶するキャッシュメモリとを備えるキャッシュメモリ制御装置におけるキャッシュメモリ制御方法であって、
主記憶部のデータを前記キャッシュメモリの入力部分から入力して前記キャッシュメモリに書き込む書込ステップと、
前記書込ステップにて前記キャッシュメモリに書き込まれたデータを前記キャッシュメモリの入力部分から前記キャッシュメモリの出力部分へ転送する第１転送ステップと、
前記第１転送ステップにて転送されたデータを前記キャッシュメモリの出力部分から前記演算処理手段へ転送する第２転送ステップと
を有することを特徴とするキャッシュメモリ制御方法。
【図面の簡単な説明】
【００７９】
【図１】一実施の形態に係る半導体集積回路の概略構成を示す図である。
【図２】一実施の形態に係る半導体集積回路の要部構成を示す図である。
【図３】一実施の形態に係るキャッシュメモリ制御装置における接続関係を示す図である。
【図４】一実施の形態に係るキャッシュミス時の動作を示すシーケンス図である。
【図５】一実施の形態に係るレイテンシの短縮を説明する図である。
【図６】一実施の形態に係るパイプライン処理の一例を示す図である。
【図７】情報処理装置の構成の一例を示す図である。
【図８】情報処理装置におけるレイテンシを説明する図である。
【符号の説明】
【００８０】
１００  半導体集積回路
１０１、１０１−０、１０１−１  コア
１０２  制御部
１０３  ＷＢＤＱ
１０４  ＭＩＤＱ
１０５、１０７、１０８、１１１  セレクタ
１０６  データメモリ
１０９  データバス
１１０  ＭＩポート
１１２  タグメモリ
１１３  ＭＩバッファ
１１４  ＭＯＤＱ
１１５  ＭＡＣ
Ｌ０  ライン
【図１】
0005583893.tif 000002
【図２】
0005583893.tif 000003
【図３】
0005583893.tif 000004
【図４】
0005583893.tif 000005
【図５】
0005583893.tif 000006
【図６】
0005583893.tif 000007
【図７】
0005583893.tif 000008
【図８】
0005583893.tif 000009