(57)【特許請求の範囲】
【請求項１】
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリである第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリと、
前記第１メモリ、前記第２メモリ及び前記第３メモリに対する入出力の制御を行う制御部と、を備え、
前記第２メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第３メモリは、前記複数のデータ列内の全てのデータを格納し、
前記制御部は、
前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行い、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答し、
特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第２メモリへ書き込み、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第３メモリへ書き込み、
当該第３メモリへの書き込み後、前記第２メモリへ書き込まれた一部のデータを前記第３メモリへ書き込む
メモリ制御装置。
【請求項２】
前記一部のデータは、前記第３メモリにおけるアクセス開始から最初のデータが読み出されるまでの間に、前記第２メモリから読み出し続けられるデータ量であることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記第２メモリは、各データ列の全てのデータを格納した場合に比べて多くのデータ列についての前記一部のデータを格納することを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記第３メモリは、アクセスを開始するための第１要求と、前記データ列内で当該アクセスにおける読み出し対象のデータ位置を指定する第２要求とに基づいてデータを読み出すものであり、
前記制御部は、
前記第２メモリにおける前記ヒット判定と同時に、前記第３メモリに対して前記第１要求を発行し、
前記ヒット判定の結果がキャッシュヒットである場合、前記第３メモリに対して、当該キャッシュヒットに該当するデータ列のうち前記一部のデータ以後のデータを前記データ位置として指定して前記第２要求を発行し、
前記ヒット判定の結果がキャッシュミスである場合、前記第３メモリに対して、当該キャッシュミスに該当するデータ列の全てを前記データ位置として指定して前記第２要求を発行する
ことを特徴とする請求項１乃至３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記第２メモリは、前記一部のデータについての前記データ列内でのデータ位置を示す部分タグ情報をさらに格納し、
前記制御部は、
データ列内で優先して出力すべき特定のデータ位置の指定を含むアクセス要求に応じて、前記ヒット判定において前記部分タグ情報が当該指定されたデータ位置に該当する場合にキャッシュヒットと判定し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記部分タグ情報に対応する前記一部のデータを前記第２メモリから読み出して前記先頭データとする、
ことを特徴とする請求項１乃至４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記制御部は、
第１のプロセッサコアから第１のアクセス要求を受け付けた後に第２のプロセッサコアから受け付けた第２のアクセス要求に応じて前記ヒット判定を行い、
当該第２のアクセス要求に応じた前記ヒット判定の結果がキャッシュヒットである場合、前記第３メモリからデータを読み出して当該第１のプロセッサコアに対して出力している最中に、前記第２メモリから当該第２のアクセス要求に基づく前記一部のデータを読み出して当該第２のプロセッサコアに対して出力する
ことを特徴とする請求項１乃至５のいずれか１項に記載のメモリ制御装置。
【請求項７】
前記第３メモリは、ＤＲＡＭであることを特徴とする請求項１乃至６のいずれか１項に記載のメモリ制御装置。
【請求項８】
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリであり、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長く、前記複数のデータ列内の全てのデータを格納する第３メモリと、
を備えるメモリ制御装置におけるメモリ制御方法であって、
前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行い、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答し、
特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第２メモリへ書き込み、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第３メモリへ書き込み、
当該第３メモリへの書き込み後、前記第２メモリへ書き込まれた一部のデータを前記第３メモリへ書き込む
メモリ制御方法。
【請求項９】
プロセッサコアと、
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリである第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリと、
前記第１メモリ、前記第２メモリ及び前記第３メモリに対する入出力の制御を行うメモリ制御部と、を備え、
前記第２メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第３メモリは、前記複数のデータ列内の全てのデータを格納し、
前記メモリ制御部は、
前記プロセッサコアからのアクセス要求により前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行い、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答し、
特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第２メモリへ書き込み、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第３メモリへ書き込み、
当該第３メモリへの書き込み後、前記第２メモリへ書き込まれた一部のデータを前記第３メモリへ書き込む
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置及び制御方法並びに情報処理装置に関し、特に、階層メモリへのアクセスを制御するメモリ制御装置及び制御方法並びに情報処理装置に関する。
【背景技術】
【０００２】
プロセッサの速度向上に対して、外部メモリの速度向上は限られる。そのため、プロセッサコアは、キャッシュメモリと密接に結合して高速にデータの入出力を行うことにより、データ処理を行うことが一般的である。しかしながら、このようなキャッシュメモリは、高速動作を要求されるため、容量が限られる。また、単一のプロセッサコアに対しては専用のキャッシュメモリを持つことが一般的である。通常、このようなキャッシュメモリは、１次キャッシュと呼ばれる。さらに、より大容量なキャッシュとして、２次キャッシュや３次キャッシュなどの階層キャッシュ（階層メモリ）をプロセッサに内蔵する例が増えてきた。これは、ある程度高速性を犠牲としつつ、一定の容量を確保することによって、外部メモリのレイテンシやスループットと、内部の処理能力のギャップを埋める役割を担う。
【０００３】
ここで、階層キャッシュは、キャッシュのヒット率向上のための容量拡大とその際に生じるアクセス速度低下、電力増加に関するひとつの解決策である。一般に、階層キャッシュは、階層が上位であるほど高速動作する代わりに容量を小さくし、逆に階層が下位であるほど低速動作する代わりに容量を大きくするものである。非特許文献１には、図２４に示すように階層キャッシュの基本的な構造が開示されている。図２４に示す階層キャッシュは、小容量高速のＬ１キャッシュに対して、大容量中速のＬ２キャッシュを併せて備える。これにより、Ｌ１キャッシュのミスが発生した場合でも、（Ｌ２キャッシュに比べて低速の）主記憶にアクセスすることなくＬ２キャッシュからのデータ供給を受けることにより、レイテンシの短縮を図るものである。
【０００４】
また、１次キャッシュと２次及び３次キャッシュの間や、２次及び３次キャッシュと外部メモリを制御するインタフェースは、チップの内部接続網（Ｏｎ  Ｃｈｉｐ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）によって接続される。さらに、チップの構成によっては、２次及び３次キャッシュを複数のコアの共有リソースとして構成されることもある。このような２次及び３次キャッシュは、１次キャッシュでミスが生じた場合にアクセスが生じることから、１次キャッシュよりも十分大きなメモリ容量を確保しないと効果が得られにくい。一方で、このような２次及び３次キャッシュは、１次キャッシュほどの高速なアクセス性能を要求されない。このため、携帯端末などに用いられる組み込みシステムなどのＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）では、２次キャッシュは、大きなメモリ容量を必要とし、かつ、コストやリーク電力などが増加するという課題が生じていた。
【０００５】
特許文献１には、キャッシュメモリ制御装置に関する技術が開示されている。図２５は、特許文献１にかかるキャッシュメモリ制御装置９１の構成を示すブロック図である。尚、ここでは、本願発明の先行技術部分についてのみ説明する。まず、コア９１０１は、ＭＩポート９１１０を介して制御部９１０２に対して必要なデータのリード要求を行う。そして、制御部９１０２は、リード要求に応じてキャッシュメモリであるタグメモリ９１１２を検索する。キャッシュミスが発生すると、制御部９１０２は、ＭＩバッファ９１１３を介してＭＡＣ９１１５へデータ転送の指示を行う。ＭＡＣ９１１５は、指示されたデータを主記憶部（不図示）から取得し、ＭＩＤＱ９１０４に格納される（ムーブイン（ＭＯＶＥ−ＩＮ））。ＭＩＤＱ９１０４に保持されたデータは、データメモリ９１０６に書き込まれ、書き込み終了後にラインＬＯ、セレクタ９１０７、セレクタ９１０８及びデータバス９１０９を介してコア９１０１へ出力される。そのため、ムーブイン後にデータメモリ９１０６からデータを読み出すリード要求が不要となり、キャッシュミス時のレイテンシを短縮することができる。
【０００６】
また、プロセッサチップの外部ピンネックの解消、外部メモリのスループット拡大のために、貫通ビア（ＴＳＶ：  Ｔｈｒｏｕｇｈ  Ｓｉｌｉｃｏｎ  Ｖｉａ）や、リアクタンス結合を用いた３次元積層技術が注目を集めている。これにより、プロセッサチップと外部メモリを３次元で接続し、バスビット幅を従来よりも大幅に拡大するとともに、チャネル数の拡大を図ることが可能である。
【０００７】
このような３次元積層を用いて、高ビット幅の転送が可能になれば、１次キャッシュと２次キャッシュの間の接続に用いられるチップの内部接続網とほぼ同等のスループットで外部メモリとのデータの授受が可能になると考えられる。この外部メモリは、集積度、コストの観点からＤＲＡＭなどの構成をとることが多い。
【０００８】
ここで、３次元積層化の一例として、特許文献２が挙げられる。特許文献２には、複数のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）でプロセッサを構成する際に、回路構成を簡素にしながらキャッシュメモリの容量が異なるプロセッサを容易に構成する技術が開示されている。
【０００９】
また、特許文献３には、３次元積層化の他の例が挙げられる。図２６は、特許文献３にかかるハードウエア・アーキテクチュアの構成を示すブロック図である。特許文献３にかかるハードウエア・アーキテクチュアは、下層ダイ９２３に上層ダイ９２５が積層されている３次元積層化された半導体集積回路である。下層ダイ９２３は、プロセッサコア９２１と、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９２２とを備える１チップＳｏＣである。上層ダイ９２５は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９２４を備える。そして、プロセッサコア９２１は、タグモード及びキャッシュモードを選択的に実現できるものである。
【００１０】
特許文献３における目的は、プロセッサコア９２１の実行状況（実行アプリケーション）の特性に合わせて、メモリの有効活用を図りつつ、省電力化をあわせて実現するものである。キャッシュモードは、キャッシュメモリの容量に対する負荷の小さいアプリケーションを実行する状況で選択される。この場合、積層したＤＲＡＭ９２４の電源をオフにして省電力化を図る。これにより、プロセッサコア９２１に対するＬ２キャッシュはＳＲＡＭ９２２が担うことになり、小容量の高速なＬ２キャッシュとして動作する。
【００１１】
一方、タグモードは、キャッシュメモリの容量に対する負荷の大きなアプリケーションを実行する状況で選択される。この場合、Ｌ２キャッシュは大容量であることが望ましいからである。この場合、ＤＲＡＭ９２４の電源をオンにし、ＤＲＡＭ９２４をＬ２キャッシュのデータアレイとして利用される。このＬ２キャッシュ構成の場合、キャッシュのデータアレイが大容量となるため、キャッシュのエントリ数が増える。よって、キャッシュのタグメモリのメモリ要求量も大きくなる。そこで、タグモードの場合、ＳＲＡＭ９２２をキャッシュタグメモリとして利用する。すなわち、ＳＲＡＭ９２２は、状況に応じてキャッシュデータメモリとキャッシュタグメモリという２種類の役割を切り替えて利用することになる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−２８８９７７号公報
【特許文献２】特開２００９−１５７７７５号公報
【特許文献３】特開２０１０−２５０５１１号公報
【非特許文献】
【００１３】
【非特許文献１】John L. Hennessy, David A. Patterson, Computer architecture: a quantitative approach Fourth Edition, pp291 sec.4, P292, fig5.3
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ここで、一般的なメモリ制御装置における構成を説明し、本願発明が解決しようとする課題を説明する。図２７は、関連技術にかかるメモリ制御装置９３の構成を示すブロック図である。メモリ制御装置９３は、プロセッサコア９３１と、Ｌ１キャッシュ９３２と、Ｌ２キャッシュ９３３と、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１と、応答データセレクタ９３４２と、ＳＤＲＡＭコントローラ９３５と、ＳＤＲＡＭ９３６とを備える。メモリ制御装置９３は、階層メモリに対するアクセス制御を行うものである。ここでは、階層メモリは、最上位階層のＬ１キャッシュ９３２と、その次の階層のＬ２キャッシュ９３３と、最下位階層のＳＤＲＡＭ１６とを用いて実現されるものとする。
【００１５】
プロセッサコア９３１は、データの読み出しや書き込みをするためのアクセス要求を階層メモリに対して行う。以下では説明のためアクセス要求をデータの読み出しにかかるものとする。まず、プロセッサコア９３１は、アクセス要求を行う場合、Ｌ１キャッシュ９３２におけるキャッシュのヒット判定を行う。キャッシュヒットと判定した場合、プロセッサコア９３１は、Ｌ１キャッシュ９３２に格納されたデータ列を読み出し、当該アクセス要求の応答データとして処理を行う。このとき、Ｌ２キャッシュ９３３及びＳＤＲＡＭ９３６にはアクセスが行われない。一方、Ｌ１キャッシュ９３２のヒット判定がキャッシュミスである場合、プロセッサコア９３１は、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１に対してアクセス要求ｘ１を行う。
【００１６】
Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１は、アクセス要求ｘ１に応じてＬ２キャッシュ９３３におけるキャッシュのヒット判定を行う。具体的には、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１は、アクセス要求ｘ１に含まれるアドレスとタグ９３３１とを照合し、一致するか否かを判定し、一致する場合にはキャッシュヒットと判定する。キャッシュヒットと判定した場合、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１は、応答データセレクタ９３４２に対してＬ２キャッシュ９３３からの出力を選択するための選択指示ｘ４を行う。また、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１は、データアレイ９３３２のうちヒットしたタグ９３３１に対応するデータ列を読み出し、応答データセレクタ９３４３へ出力する。そして、応答データセレクタ９３４２は、Ｌ２キャッシュ９３３から出力されたデータ列をアクセス要求ｘ１の応答データｘ５としてプロセッサコア９３１に対して出力する。このとき、ＳＤＲＡＭ９３６にはアクセスが行われない。一方、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１のヒット判定がキャッシュミスである場合、応答データセレクタ９３４２に対してＳＤＲＡＭコントローラ９３５からの出力を選択するための選択指示ｘ４を行う。また、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１は、ＳＤＲＡＭコントローラ９３５に対してアクセス要求ｘ６を行う。
【００１７】
ＳＤＲＡＭコントローラ９３５は、アクセス要求ｘ６に応じてＳＤＲＡＭ９３６へのアクセスを制御し、応答データセレクタ９３４２に対して応答する。ＳＤＲＡＭコントローラ９３５は、シーケンサ９３５１と、ＲＯＷアドレス生成部９３５２と、ＣＯＬ（Ｃｏｌｕｍｎ）アドレス生成部９３５３と、同期化バッファ９３５４とを備える。シーケンサ９３５１は、アクセス要求ｘ６に応じてＲＯＷアドレス生成部９３５２を介して、ＳＤＲＡＭ９３６に対してＲｏｗＯｐｅｎ要求を発行する。続いて、シーケンサ９３５１は、ＣＯＬアドレス生成部９３５３を介してＣｏｌＲｅａｄ要求を発行する。そして、同期化バッファ９３５４は、ＳＤＲＡＭ９３６から読み出されたデータ列を格納し、応答データセレクタ９３４２へ出力する。そして、応答データセレクタ９３４２は、ＳＤＲＡＭコントローラ９３５から出力されたデータ列をアクセス要求ｘ１の応答データｘ５としてプロセッサコア９３１に対して出力する。
【００１８】
ここで、Ｌ２キャッシュ９３３に十分な容量がないと、Ｌ２キャッシュのヒット率が上がらず、レイテンシ短縮効果を得ることが難しい。しかし、コストや消費電力制約が厳しい組み込みシステムにおいては、なかなか大容量化することが難しかった。例えば、Ｌ２キャッシュ９３３の容量を削減するには、メモリ制御装置９３において、タグ９３３１及びデータアレイ９３３２のデータ列数を削減することが考えられる。しかし、単純にＬ２キャッシュ９３３の容量を削減してしまうと、Ｌ２キャッシュ９３３におけるヒット判定率が低下し、相対的にＳＤＲＡＭ９３６へのアクセス回数が増加する。ＳＤＲＡＭ９３６の応答速度は、Ｌ２キャッシュ９３３に比べて遅いため、メモリ制御装置９３全体としての平均レンテンシが増加してしまう。
【００１９】
一方で、今後は、特に３次元積層化技術の進展により、多ビット幅のＩ／Ｏが実現され、外部メモリのスループットは向上することが期待できる。例えば、ＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）で規格化が進んでいるｗｉｄｅ−Ｉ／Ｏ  ｍｅｍｏｒｙでは、１２８ｂｉｔのＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）を４チャネル分１つのダイに集積しており、１２．８ＧＢ／ｓのスループットを実現している。したがって、内部バスが６４ｂｉｔ幅の場合や、内部バスが１２８ｂｉｔ幅の場合でも、複数のチャネルを同一バスに接続した場合には、内部バス速度と同等以上のスループットが期待できる。そのため、上記のように単純にＬ２キャッシュ９３３の容量を削減し、相対的にＳＤＲＡＭ９３６へのアクセス回数が増加してもスループットを維持できるとも考えられる。
【００２０】
しかしながら、このようにプロセッサコアとは別のダイに搭載される外部メモリを用いた場合であっても、外部メモリにリード／ライトのコマンドを発行してから、メモリセルからのデータを読み出したり、書き込んだりすることには、一定の時間を要する。例えば、外部メモリがＳＤＲＡＭ９３６の場合、その構造、制御仕様上ＳＤＲＡＭコントローラ９３５は、アクセス要求ｘ６を受け付けてからＲｏｗＯｐｅｎ要求を発行し、ＳＤＲＡＭ９３６を起動した後に、ＣｏｌＲｅａｄ要求を発行することで初めて所望のデータ列を読み出すことができるからである。このため、メモリアクセスのレイテンシは大幅な短縮は難しく、レイテンシ短縮のためには依然として大容量の２次キャッシュが必要であった。つまり、レイテンシの短縮を維持しつつ、２次キャッシュの容量を削減することが困難であるという問題点があった。
【００２１】
特許文献１は、キャッシュミス時のレイテンシを短縮するものであるが、Ｌ２キャッシュメモリの容量を削減するための技術ではない。また、特許文献２も、同一階層であるＬ２キャッシュを複数のＬＳＩ上に分散するためのものであるが、Ｌ２キャッシュメモリの容量を削減するための技術ではない。
【００２２】
また、特許文献３におけるタグモードでは、ＳＲＡＭ９２２に対するタグのヒットミス判定の結果に関わらず、その後に必ず、ＤＲＡＭ９２４へのアクセスが発生する。タグモードでは、３次元積層化したＤＲＡＭ９２４から大容量のデータをまとめて読み出すことは可能となる。しかしながら、一般にＤＲＡＭを含む外部メモリ装置は、その構造上、その構成からアクセスを開始するコマンドを発行してから最初のデータが出力されるまでに、数サイクルの遅延が生じる。したがって、３次元積層化したＤＲＡＭによるタグモードを用いた場合、キャッシュモードにおけるＬ２キャッシュのレイテンシには及ばない。一方、キャッシュモードではＬ２キャッシュのヒット率がタグモードに比べて低くなってしまう。そのため、特許文献３によっても、レイテンシの短縮を維持しつつ、２次キャッシュの容量を削減することは実現できない。
【課題を解決するための手段】
【００２３】
本発明の第１の態様にかかるメモリ制御装置は、
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリである第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリと、
前記第１メモリ、前記第２メモリ及び前記第３メモリに対する入出力の制御を行う制御部と、を備え、
前記第２メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第３メモリは、前記複数のデータ列内の全てのデータを格納し、
前記制御部は、
前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行うと共に、前記第３メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答する。
【００２４】
本発明の第２の態様にかかるメモリ制御方法は、
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリであり、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長く、前記複数のデータ列内の全てのデータを格納する第３メモリと、
を備えるメモリ制御装置におけるメモリ制御方法であって、
前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行い、
前記ヒット判定と共に、前記第３メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答する。
【００２５】
本発明の第３の態様にかかる情報処理装置は、
プロセッサコアと、
所定階層のキャッシュメモリである第１メモリと、
前記第１メモリより少なくとも下位階層のキャッシュメモリである第２メモリと、
前記第２メモリより少なくとも下位階層であり、前記第１メモリ及び前記第２メモリに比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリと、
前記第１メモリ、前記第２メモリ及び前記第３メモリに対する入出力の制御を行うメモリ制御部と、を備え、
前記第２メモリは、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納し、
前記第３メモリは、前記複数のデータ列内の全てのデータを格納し、
前記メモリ制御部は、
前記プロセッサコアからのアクセス要求により前記第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行うと共に、前記第３メモリへのアクセスを開始し、
前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答する。
【００２６】
本発明の第４の態様にかかるメモリ制御装置は、
第１キャッシュメモリと、
少なくとも前記第１キャッシュメモリの下位階層である第２キャッシュメモリと、
少なくとも前記第１キャッシュメモリの下位階層である外部メモリと、を備え、
前記第２キャッシュメモリにおけるキャッシュのヒット判定結果がキャッシュヒットである場合、当該第２キャッシュメモリと前記外部メモリとを同一階層のメモリとし、
前記ヒット判定結果がキャッシュミスである場合、前記外部メモリを前記第２キャッシュメモリの下位階層とする。
【００２７】
本発明の第５の態様にかかるメモリ制御装置は、
３以上のメモリ階層を有するメモリ制御装置であって、
上位階層のキャッシュメモリにおいてキャッシュミスであった場合に、当該キャッシュメモリより下位階層である複数の階層のメモリに対して同時にアクセス要求を行い、
データの応答があった順番に応じて前記アクセス要求に対する応答データとする。
【００２８】
本発明の第１乃至第３の態様により、第２メモリにおいてキャッシュヒットした場合には、第２メモリ内の一部のデータを先頭データとし、第３メモリ内の同一のデータ列内の残りのデータをその後続データとすることで、応答データとしての整合性を取ることができる。ここで、第２メモリと第３メモリとは応答速度が異なる。そのため、第２メモリからの一部のデータについては、従来と同様に高速に応答できるが、第３メモリからの残りのデータについてはレイテンシがある。そこで、第２メモリのヒット判定と同時に第３メモリのアクセスを開始することで、第３メモリの応答時間の遅れを第２メモリから一部のデータが読み出される時間により補完することができる。これにより、応答速度の異なる第２メモリと第３メモリを用いて、第２メモリのみで応答しているときと同様のレイテンシを維持できる。そして、この場合には第２メモリには最低限、キャッシュヒットしたデータ列のうち一部のデータ、つまり、応答時に先頭部分となるデータのみを格納していれば十分である。よって、第２メモリにおけるキャッシュヒット率を従来と同様に維持しつつ、格納データ量を削減できる。すなわち、第２メモリのメモリ容量を削減することができる。
【００２９】
また、本発明の第４の態様により、ヒット判定結果に基づいて外部メモリの階層を変化させることができる。そのため、第２キャッシュメモリにおけるキャッシュヒットの場合に、同一階層の外部メモリからのデータを用いて応答することが可能となる。よって、第２キャッシュメモリにキャッシュヒットにかかるデータ列の全てのデータを格納しておく必要がなく、第２キャッシュメモリの容量を削減できる。
【００３０】
また、本発明の第５の態様により、Ｌ２キャッシュメモリにおけるキャッシュヒットの場合には、Ｌ２キャッシュメモリからの応答があり、その後、Ｌ２キャッシュメモリより階層の外部メモリ等からの応答という順番となる。そこで、Ｌ２キャッシュメモリから読み出されたデータを優先して、外部メモリ等から読み出されたデータをその後続データとして応答データとすることができる。そのため、Ｌ２キャッシュメモリに、最初に必要となる優先度の高いデータのみを格納しておけば、Ｌ２キャッシュメモリによるレイテンシ短縮の効果を維持しつつ、その容量を削減できる。
【発明の効果】
【００３１】
本発明により、２次キャッシュによるレイテンシの短縮を維持しつつ、２次キャッシュの容量を削減するためのメモリ制御装置及び制御方法並びに情報処理装置を提供することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態１にかかるメモリ制御装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるデータ読出処理の流れを示すフローチャートである。
【図３】本発明の実施の形態１にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。
【図４】本発明の実施の形態１にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。
【図５】本発明の実施の形態１にかかるＬ２キャッシュヒット時の効果を説明する図である。
【図６】本発明の実施の形態１にかかるＬ２キャッシュミス時の効果を説明する図である。
【図７】本発明の実施の形態１にかかるＬ２キャッシュヒット時（レイテンシが長い場合）の効果を説明する図である。
【図８】本発明の実施の形態１にかかるＬ２キャッシュヒット時（レイテンシが短い場合）の効果を説明する図である。
【図９】本発明の実施の形態１にかかるＬ２キャッシュヒット時（スループットが低い場合）の効果を説明する図である。
【図１０】本発明の実施の形態１にかかる各メモリ階層に格納されるデータの関係の概念を説明する図である。
【図１１】本発明の実施の形態１にかかるＬ１キャッシュとＬ２キャッシュに格納されるデータの関係の概念を説明する図である。
【図１２】本発明の実施の形態２にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態２にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。
【図１４】本発明の実施の形態２にかかるＬ２キャッシュヒット時の効果を説明する図である。
【図１５】本発明の実施の形態３にかかるメモリ制御装置の構成を示すブロック図である。
【図１６】本発明の実施の形態３にかかるデータ読出処理の流れを示すフローチャートである。
【図１７】本発明の実施の形態３にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。
【図１８】本発明の実施の形態３にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。
【図１９】本発明の実施の形態３にかかるＬ２キャッシュヒット時の効果を説明する図である。
【図２０】本発明の実施の形態４にかかるマルチプロセッサにおけるメモリ制御装置の構成を示すブロック図である。
【図２１】本発明の実施の形態４にかかるＬ２キャッシュヒット時の効果を説明する図である。
【図２２】本発明の実施の形態５にかかるメモリ制御装置の構成を示すブロック図である。
【図２３】本発明の実施の形態６にかかる情報処理装置の構成を示すブロック図である。
【図２４】関連技術にかかる階層キャッシュの基本的な構造の例を示す図である。
【図２５】関連技術にかかるキャッシュメモリ制御装置の構成を示すブロック図である。
【図２６】関連技術にかかるハードウエア・アーキテクチュアの構成を示すブロック図である。
【図２７】関連技術にかかるメモリ制御装置の構成を示すブロック図である。
【図２８】関連技術にかかるＬ１キャッシュとＬ２キャッシュに格納されるデータの関係
【図２９】関連技術にかかるマルチプロセッサにおけるメモリ制御装置の構成を示すブロック図である。の概念を説明する図である。
【発明を実施するための形態】
【００３３】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００３４】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかるメモリ制御装置１の構成を示すブロック図である。メモリ制御装置１は、プロセッサコア１１と、Ｌ１キャッシュ１２と、Ｌ２キャッシュ１３と、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１と、転送回数カウンタ１４２と、応答データセレクタ１４３と、ＳＤＲＡＭコントローラ１５と、ＳＤＲＡＭ１６とを備える。メモリ制御装置１は、階層メモリに対するアクセス制御を行うものである。ここでは、階層メモリは、最上位階層のＬ１キャッシュ１２と、その次の階層のＬ２キャッシュ１３と、最下位階層のＳＤＲＡＭ１６とを用いて実現されるものとする。
【００３５】
Ｌ１キャッシュ１２は、最上位階層のキャッシュメモリであり、当該階層メモリの中では、最高速で動作し、容量は最も少ない。Ｌ２キャッシュ１３は、Ｌ１キャッシュ１２より下位階層のキャッシュメモリであり、Ｌ１キャッシュ１２に比べて低速かつ大容量であり、一方ＳＤＲＡＭ１６に比べて高速かつ少容量である。尚、Ｌ１キャッシュ１２及びＬ２キャッシュ１３は、例えば、ＳＲＡＭで実現可能である。ＳＤＲＡＭ１６は、Ｌ２キャッシュ１３より下位階層であり、Ｌ２キャッシュ１３に比べて低速、つまり応答速度が遅くかつ大容量である。
【００３６】
Ｌ２キャッシュ１３は、タグ１３１と、部分データアレイ１３２とを格納する。部分データアレイ１３２は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータである。また、部分データアレイ１３２は、少なくともＬ１キャッシュ１２に格納されているデータ列以外のデータ列のうち、一部のデータである。タグ１３１は、部分データアレイ１３２の各データ列に対応するアドレス情報である。尚、一般に、タグ１３１は、Ｌ１キャッシュ１２内のタグを包含するものである。また、Ｌ２キャッシュ１３は、メモリの階層が第２番目である必要はなく、例えば、最下層のメモリの直前のＬＬＣ（Ｌａｓｔ  Ｌｅｖｅｌ  Ｃａｃｈｅ）であってもよい。
【００３７】
ＳＤＲＡＭ１６は、少なくとも部分データアレイ１３２が属するデータ列内の全てのデータを格納する。尚、一般に、ＳＤＲＡＭ１６は、Ｌ１キャッシュ１２及びＬ２キャッシュ１３に格納されているデータを包含し、それ以外のデータ列も含めて格納されているものである。
【００３８】
図１０は、本発明の実施の形態１にかかる各メモリ階層に格納されるデータの関係の概念を説明する図である。まず、ＳＤＲＡＭ１６には、データ集合Ｌ３Ｄが格納されているものとする。ここで、データ集合Ｌ３Ｄは、データ列ＤＡ０、ＤＡ１、ＤＡ２、・・・ＤＡＮを含む。例えば、データ列ＤＡ０には、データＤ０００、Ｄ００１、Ｄ００２、・・・Ｄ０１５が属している。データ列ＤＡ１〜ＤＡＮについても同様である。
【００３９】
また、Ｌ１キャッシュ１２には、データ集合Ｌ１Ｄが格納されているものとする。データ集合Ｌ１Ｄは、データ列ＤＡ０及びＤＡ１を含む。つまり、データ集合Ｌ１Ｄは、データ集合Ｌ３Ｄの部分集合である。
【００４０】
ここで、本発明の実施の形態１にかかるＬ２キャッシュ１３には、データ集合Ｌ２Ｄが格納されているものとする。データ集合Ｌ２Ｄは、データＤ０００〜Ｄ００３、データＤ１００〜Ｄ１０３、データＤ２００〜Ｄ２０３及びデータＤ３００〜Ｄ３０２を含む。つまり、データ集合Ｌ２Ｄは、データ列ＤＡ０〜ＤＡ３の各データ列の一部のデータである。尚、データ集合Ｌ２Ｄは、Ｌ１キャッシュ１２に格納されているデータ列ＤＡ０及びＤＡ１以外のデータ列ＤＡ２及びＤＡ３のうち、一部のデータＤ２００〜Ｄ２０３及びＤ３００〜Ｄ３０３を少なくとも含めば良い。
【００４１】
さらに、Ｌ２キャッシュ１３は、各データ列の全てのデータを格納した場合に比べて多くのデータ列についての一部のデータを格納するようにしてもよい。つまり、通常のＬ２キャッシュは、データ列ＤＡ０〜ＤＡ３の各データ列の全てを格納しており、その範囲内であれば、データＤ４００〜Ｄ４０３及びデータＤ５００〜Ｄ５０３等をさらに格納することが可能である。これにより、Ｌ２キャッシュにおけるヒット率を向上させることができる。
【００４２】
図１に戻り説明する。プロセッサコア１１は、データの読み出しや書き込みをするためのアクセス要求を階層メモリに対して行う。特に、プロセッサコア１１は、Ｌ１キャッシュ１２におけるキャッシュミスが発生した場合、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１及びＳＤＲＡＭコントローラ１５に対して同時にアクセス要求ｘ１を発行する。尚、本発明の実施の形態１ではアクセス要求をデータの読み出しにかかるものとする。また、プロセッサコア１１の代わりに、Ｌ１キャッシュコントローラを用いても構わない。
【００４３】
Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、アクセス要求ｘ１に応じてＬ２キャッシュ１３におけるキャッシュのヒット判定を行う。具体的には、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、アクセス要求ｘ１に含まれるアドレスとタグ１３１とを照合し、一致するか否かを判定し、一致する場合にはキャッシュヒットと判定する。キャッシュヒットと判定した場合、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２がキャッシュヒットである旨及びＳＤＲＡＭ１６における読出し対象アドレスを判定結果ｘ２に含めてシーケンサ１５１及びＣＯＬアドレス生成部１５３へ出力する。このとき、読出し対象アドレスは、部分データアレイ１３２のデータ列あたりのデータ数の直後を示す値となる。また、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、部分データアレイ１３２のうちヒットしたタグ１３１に対応する部分データを読み出し、応答データセレクタ１４３へ出力する。一方、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１のヒット判定がキャッシュミスである場合、Ｌ２がキャッシュミスである旨及びＳＤＲＡＭ１６における読出し対象アドレスを判定結果ｘ２に含めてシーケンサ１５１及びＣＯＬアドレス生成部１５３へ出力する。このとき、読出し対象アドレスは、データ列あたりの先頭アドレスとなる。
【００４４】
転送回数カウンタ１４２は、Ｌ２キャッシュ１３又はＳＤＲＡＭ１６から読み出されたデータの転送回数を計測するカウンタである。また、転送回数カウンタ１４２は、シーケンサ１５１からの転送回数ｘ３に応じて応答データセレクタ１４３に対して選択指示ｘ４を行う。例えば、部分データアレイ１３２のデータ数が"４"の場合で説明する。Ｌ２がキャッシュヒットである旨がシーケンサ１５１から通知された場合、転送回数カウンタ１４２は、転送回数が"０"の時点でＬ２キャッシュ１３からのデータを選択するように選択指示ｘ４を行う。そして、転送回数が"４"の時点で、転送回数カウンタ１４２は、ＳＤＲＡＭ１６からのデータを選択するように選択指示ｘ４を行う。また、Ｌ２がキャッシュミスである旨がシーケンサ１５１から通知された場合、転送回数カウンタ１４２は、転送回数が"０"の時点でＳＤＲＡＭ１６からのデータを選択するように選択指示ｘ４を行う。
【００４５】
応答データセレクタ１４３は、Ｌ２キャッシュ１３又は同期化バッファ１５４から転送されるデータを選択指示ｘ４に応じて選択して、応答データｘ５としてプロセッサコア１１へ出力する選択回路である。
【００４６】
ＳＤＲＡＭコントローラ１５は、アクセス要求ｘ１に応じてＳＤＲＡＭ１６へのアクセスを制御し、応答データセレクタ１４３に対して応答する。ＳＤＲＡＭコントローラ１５は、シーケンサ１５１と、ＲＯＷアドレス生成部１５２と、ＣＯＬアドレス生成部１５３と、同期化バッファ１５４とを備える。シーケンサ１５１は、プロセッサコア１１からアクセス要求ｘ１を受け付けると、ＲＯＷアドレス生成部１５２を介してＳＤＲＡＭ１６に対してＲｏｗＯｐｅｎ要求を発行する。ここで、アクセス要求ｘ１は、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１へ同時に発行されているため、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１におけるヒット判定と同時に、ＲｏｗＯｐｅｎ要求が発行されることとなる。つまり、当該ヒット判定中に、ＳＤＲＡＭ１６へのアクセスが開始される。そして、ヒット判定結果を待たずにＳＤＲＡＭ１６が起動され、データの読み出しの準備が進められる。
【００４７】
また、シーケンサ１５１は、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１から判定結果ｘ２を受け付けると、判定結果ｘ２に含まれているＬ２がキャッシュヒット又はキャッシュミスである旨について転送回数カウンタ１４２へ通知する。同時に、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対してＣｏｌＲｅａｄ要求を発行する。このとき、既にＳＤＲＡＭ１６は起動済みであるため、ＣｏｌＲｅａｄ要求で指定されたアドレスに基づいて、即座にデータが読み出される。
【００４８】
ＲＯＷアドレス生成部１５２は、シーケンサ１５１からの指示に応じてＳＤＲＡＭ１６に対するＲｏｗＯｐｅｎ要求を生成し、出力する。ＣＯＬアドレス生成部１５３は、シーケンサ１５１からの指示に応じて、判定結果ｘ２に含まれる読出し対象アドレスを読み出し開始アドレスとしてＣｏｌＲｅａｄ要求を生成し、出力する。同期化バッファ１５４は、ＳＤＲＡＭ１６から読み出されたデータ列を格納し、応答データセレクタ１４３へ出力する。
【００４９】
尚、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１、転送回数カウンタ１４２、応答データセレクタ１４３及びＳＤＲＡＭコントローラ１５は、Ｌ２キャッシュ１３及びＳＤＲＡＭ１６に対する入出力の制御を行う制御部と呼ぶことができる。
【００５０】
図２は、本発明の実施の形態１にかかるデータ読出処理の流れを示すフローチャートである。ここでは、読み出し要求に対してＬ１キャッシュ１２においてキャッシュミスが発生した場合について説明する。つまり、プロセッサコア１１からＬ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１に対してアクセス要求ｘ１が発行された場合となる。
【００５１】
まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、アクセス要求ｘ１に応じてＬ２キャッシュ１３のタグ照合を行う（Ｓ１０１）。このとき並行して、シーケンサ１５１は、ＳＤＲＡＭ１６に対して、上位アドレスに基づきＲｏｗＯｐｅｎ要求を発行する（Ｓ１０２）。つまり、シーケンサ１５１は、アクセス要求ｘ１に含まれるアクセス対象を指定したアドレスのうち、上位アドレスを用いる。
【００５２】
次に、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２キャッシュがヒットしたか否かを判定する（Ｓ１０３）。ヒットした場合、Ｌ２キャッシュヒット処理を行う（Ｓ１０４）。また、ミスした場合、Ｌ２キャッシュミス処理を行う（Ｓ１０５）。
【００５３】
図３は、本発明の実施の形態１にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２がキャッシュヒットである旨及びＳＤＲＡＭ１６における読出し対象アドレスを部分データアレイ１３２のデータ列あたりのデータ数の直後を示す値とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレス＋Ｌ２サイズに基づきＣｏｌＲｅａｄ要求を発行する（Ｓ１１１）。これと並行して、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１を経由して転送回数カウンタ１４２は、応答データセレクタ１４３の出力を、Ｌ２キャッシュ１３に切り替える（Ｓ１１２）。そして、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、部分データアレイ１３２から該当するタグに対応する一部のデータを読み出して、応答データセレクタ１４３へ出力する。応答データセレクタ１４３は、Ｌ２キャッシュ１３から読み出されたデータを先頭データとしてプロセッサコア１１へ供給する（Ｓ１１３）。すなわち、応答データセレクタ１４３は、応答データｘ５の先頭データをプロセッサコア１１へ出力する。
【００５４】
その後、転送回数が"４"に達したとき、転送回数カウンタ１４２は、応答データセレクタ１４３の出力をＳＤＲＡＭ１６に切り替える（Ｓ１１４）。そして、ＳＤＲＡＭ１６から後続データを供給する（Ｓ１１５）。すなわち、ステップＳ１１１におけるＣｏｌＲｅａｄ要求に基づいてＳＤＲＡＭ１６から該当データとして、キャッシュヒットしたデータ列のうち、部分データアレイ１３２以外のデータが読み出されて、同期化バッファ１５４に格納される。そして、同期化バッファ１５４は、応答データセレクタ１４３へ出力する。その後、応答データセレクタ１４３は、応答データｘ５の後続データとしてプロセッサコア１１へ出力する。
【００５５】
最後に、シーケンサ１５１は、ＳＤＲＡＭ１６に対して先頭データの転送中止要求を発行する（Ｓ１１６）ことも可能である。ＳＤＲＡＭ１６からはＤ１５の出力後ｗｒａｐ処理が行われ、Ｄ０−Ｄ３が続いて出力されるため、部分データアレイ１３２のデータと重複するデータについて、ＳＤＲＡＭ１６からＷｒａｐ読み出しがされることを防ぐことができる。そのまま、Ｗｒａｐ読み出しされて、そのデータを破棄するという実装も取りうる選択肢である。
【００５６】
図４は、本発明の実施の形態１にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２がキャッシュミスである旨及びＳＤＲＡＭ１６における読出し対象アドレスをデータ列あたりの先頭とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレスに基づきＣｏｌＲｅａｄ要求を発行する（Ｓ１２１）。これと並行して、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１を経由して転送回数カウンタ１４２は、応答データセレクタ１４３の出力を、ＳＤＲＡＭ１６に切り替える（Ｓ１２２）。
【００５７】
その後、ＳＤＲＡＭ１６から先頭データを供給する（Ｓ１２３）。すなわち、ステップＳ１２１におけるＣｏｌＲｅａｄ要求に基づいてＳＤＲＡＭ１６から該当データとして、キャッシュミスしたデータ列のうち先頭のデータから読み出されて、同期化バッファ１５４に格納される。そして、同期化バッファ１５４は、応答データセレクタ１４３へ出力する。その後、応答データセレクタ１４３は、応答データｘ５の先頭データとしてプロセッサコア１１へ出力する。これと並行して、当該先頭データをＬ２キャッシュへ格納する（Ｓ１２４）。そして、ＳＤＲＡＭ１６から後続データを供給する（Ｓ１２５）。
【００５８】
このように、ＣＰＵなどのＩＰコアのＬ１キャッシュには、最もアクセス頻度の高いデータがデータ列単位で格納される。そして、Ｌ２キャッシュは、レイテンシの隠蔽に用いるキャッシュとしての役割を担う。但し、本発明の実施の形態１にかかるＬ２キャッシュは、データ列のうち先頭の一部分のみを格納する。また、外部メモリには、アクセス要求にかかるデータ列の全てが格納されている。そこで、ＩＰコアはＬ１キャッシュミスが生じた際に、Ｌ２キャッシュと外部メモリの両者からデータの供給を受けることができる。
【００５９】
本発明の実施の形態１では上述したように、まず、プロセッサコア１１がＬ１キャッシュのキャッシュミスによってデータを要求すると、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は自らのキャッシュのヒットミスを判定するとともに、外部メモリ（例えば、ＳＤＲＡＭ１６）の活性化がされる。
【００６０】
ここで、図５は、本発明の実施の形態１にかかるＬ２キャッシュヒット時の効果を説明する図である。Ｌ２キャッシュヒットであれば、Ｌ２キャッシュのレイテンシＴ１後に、Ｌ２キャッシュからデータ群ＲＤ１が供給される。また、Ｌ１キャッシュミスが発生後に、ＳＤＲＡＭのＲｏｗＯｐｅｎ要求を開始し、Ｌ２ＨＩＴ／ＭＩＳＳ判定後に、Ｄ４以降についてＣｏｌＲｅａｄ要求を行っている。そのため、ＲＡＳレイテンシＴ２＋ＣＡＳレイテンシＴ３の経過後に、データ群ＲＤ２が供給できる。
【００６１】
そのため、データ群ＲＤ１が外部メモリのレイテンシに相当する数サイクル分のデータである場合には、図５のように、Ｌ２キャッシュからデータ群ＲＤ１を供給後、続けてＳＤＲＡＭからデータ群ＲＤ２が供給される。言い換えると、図１０に示したデータ集合Ｌ２Ｄは、ＳＤＲＡＭ１６におけるアクセス開始から最初のデータが読み出されるまでの間に、Ｌ２キャッシュ１３から読み出し続けられるデータ量であることが望ましい。これにより、レイテンシのタイミングが整合し、Ｌ２ヒット時の応答速度が維持できる。
【００６２】
また、図６は、本発明の実施の形態１にかかるＬ２キャッシュミス時の効果を説明する図である。Ｌ２キャッシュミスの場合、ＲＡＳレイテンシＴ２＋ＣＡＳレイテンシＴ３の経過後に、ＳＤＲＡＭ１６からデータ群ＲＤ３が供給できる。これは、Ｌ２キャッシュのヒット／ミスに関わらず、外部ＤＲＡＭの起動を開始するためである。関連技術の場合には、Ｌ２キャッシュがヒットした場合には、ＤＲＡＭを起動すると無駄になるため、省電力化が重要なシステムにおいては、通常、ＤＲＡＭの起動はＬ２キャッシュがミスした後となり、ミス時のレイテンシが図６の場合よりも長くなる。よって、本Ｌ２ＨＩＴ／ＭＩＳＳ判定後にＲｏｗＯｐｅｎ要求を行う関連技術に比べて、発明の実施の形態１によりＲＡＳレイテンシＴ２分の応答時間を短縮することができる。
【００６３】
また、上述したように本発明の実施の形態１では、第３メモリを外部メモリとし、特にＤＲＡＭを想定している。ＤＲＡＭの場合、リードアクセスはＲｏｗアドレスのオープンとＣＯＬアドレス及びコマンド発行という２段階のステップが必要である。ここで、Ｒｏｗのオープンでは、Ｌ１キャッシュミスが生じたアクセスアドレスの上位アドレスを指定する。すなわち、図５及び図６のいずれの場合であっても、上位アドレスは同一である。したがって、Ｒｏｗアドレスのオープン時には、Ｌ２キャッシュのヒット／ミスの結果が判明している必要はない。その後、Ｌ２キャッシュのヒット／ミスの結果により、ヒットの場合Ｄ０からのデータ転送、ミスの場合Ｄ４からのデータ転送かをＣＯＬアドレスとして発行することで実現可能となる。
【００６４】
言い換えると、第３メモリは、アクセスを開始するための第１要求と、前記データ列内で当該アクセスにおける読み出し対象のデータ位置を指定する第２要求とに基づいてデータを読み出すものであり、前記制御部は、前記第２メモリにおける前記ヒット判定と同時に、前記第３メモリに対して前記第１要求を発行し、前記ヒット判定の結果がキャッシュヒットである場合、前記第３メモリに対して、当該キャッシュヒットに該当するデータ列のうち前記一部のデータ以後のデータを前記データ位置として指定して前記第２要求を発行し、前記ヒット判定の結果がキャッシュミスである場合、前記第３メモリに対して、当該キャッシュミスに該当するデータ列の全てを前記データ位置として指定して前記第２要求を発行することが望ましい。これにより、第３メモリがＤＲＡＭ等の場合、予めＲｏｗＯｐｅｎ要求を発行しておき、Ｌ２ヒット判定結果に応じてＣＯＬアドレスを変更することに拠って、読み出すデータ位置の指定を変更して、ＲＡＳレイテンシ時間を短縮することができる。特に、第３メモリは、ｗｉｄｅ−Ｉ／Ｏ  ｍｅｍｏｒｙ規格に基づくＤＲＡＭに適用可能である。
【００６５】
図７は、本発明の実施の形態１にかかるＬ２キャッシュヒット時（レイテンシが長い場合）の効果を説明する図である。ここでは、図５のＣＡＳレイテンシＴ３よりも図７のＣＡＳレイテンシＴ３ａが長い場合を示す。このとき、Ｌ２キャッシュからデータ群ＲＤ１を供給後、ＳＤＲＡＭからのデータ群ＲＤ２の供給までの間に、転送空きサイクルＴ４が生じる。このような場合であっても、ＩＰコアが届いたデータから先に処理を行える機構を持っていれば、十分効果を発揮することが可能であるし、このような機構を有してなくとも少なくとも、データ群ＲＤ１分のレイテンシ短縮は実現可能である。
【００６６】
図８は、本発明の実施の形態１にかかるＬ２キャッシュヒット時（レイテンシが短い場合）の効果を説明する図である。ここでは、図５のＣＡＳレイテンシＴ３よりも図７のＣＡＳレイテンシＴ３ｂが短い場合を示す。このとき、Ｌ２キャッシュの部分データアレイサイズを縮小して、ハードウェアを設計することが有効なコスト削減方法である。しかしながら、さまざまなＳＤＲＡＭパラメタが存在することも十分想定される。そこで、図８に示したように、ＣＡＳ発行調整サイクルＴ５を挿入して、ＣＡＳ発行を遅延させることにより、ＳＤＲＡＭから供給するＤ４のデータがＬ２キャッシュから供給するＤ３のデータよりも後に出力される様にする。これにより、追加のデータバッファを挿入することなく、本発明を適用可能である。
【００６７】
図９は、本発明の実施の形態１にかかるＬ２キャッシュヒット時（スループットが低い場合）の効果を説明する図である。ここでは、ＳＤＲＡＭのスループットがＬ２キャッシュに比べて低い場合の例を示す。このとき、データ群ＲＤ４の供給の間に、転送空きサイクルＴ６及びＴ７等が発生することになる。しかし、この場合であっても図７と同様に少なくとも、データ群ＲＤ１分のレイテンシ短縮は実現可能である。
【００６８】
ここで、図２７に示す関連技術と図１に示す本願発明との相違点について説明する。関連技術では、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９３４１によるＬ２キャッシュ９３３のヒットミス判定終了後、キャッシュミスとなった場合に、ＳＤＲＡＭコントローラ９３５にＳＤＲＡＭへのアクセスを開始するための要求を送る。これによって、無駄にＳＤＲＡＭ９３６がアクセスされないという効果が期待できる。一方、キャッシュミスの場合のアクセスレイテンシが長くなるという課題も生じる。
【００６９】
一方、本願発明では、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１によるＬ２キャッシュ１３のヒットミス判定とＳＤＲＡＭコントローラ１５へのＳＤＲＡＭ１６のアクセス開始要求とが同時に行われる。これは、本願発明によるキャッシュが、Ｌ２キャッシュを用いたレイテンシ短縮の効果を狙ったものであるためである。そのため、ＳＤＲＡＭ１６に対しても常にアクセスすることとなるが、ＳＤＲＡＭ１６へのアクセス開始要求は、Ｌ２キャッシュヒット時にも無駄にならない。これは、Ｌ２キャッシュ１３が保持する部分データアレイ１３２が、ＳＤＲＡＭ１６が保持するデータ列のうちの一部であるためである。
【００７０】
もし、関連技術において、Ｌ２キャッシュ９３３のヒットミス判定と、ＳＤＲＡＭ９３６のアクセス開始要求とを単純に同時に行ったとしても、Ｌ２キャッシュヒットの場合、ＳＤＲＡＭ９３６のアクセス開始要求を取り消す必要が生じる。そのため、関連技術では、無駄な処理が発生し、レイテンシを維持できない。
【００７１】
また、本願発明では、Ｌ２ヒットミス判定の結果が、ＣＡＳアクセス（ＣＯＬアドレスとリードコマンドの発行）に影響することから、Ｌ２キャッシュのヒットミス判定結果を、ＣＡＳアクセス生成論理に通知する様に設計される。Ｌ２がヒットした場合には、ＳＤＲＡＭのデータ取得開始地点をＬ１からの要求アドレスに対して、Ｌ２キャッシュのラインサイズ分だけ加算して、ＣＡＳアドレスを発行し、ミスの場合には、Ｌ１からの要求アドレスをそのままＣＡＳアドレスとして発行する。また、応答データセレクタは、同一のアクセス内で、転送回数カウンタでデータ転送量を計時して、Ｌ２キャッシュ相当分のみデータ転送が終了した時点で、ＳＤＲＡＭからのデータ転送に切り替える役割を担う。
【００７２】
言い換えると、第１メモリにおいてキャッシュミスが発生した場合、前記第２メモリにおけるキャッシュのヒット判定を行うと共に、前記第３メモリへのアクセスを開始し、前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを前記第２メモリから読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを前記第３メモリから読み出して当該先頭データの後続データとして応答する。
【００７３】
図２８は、関連技術にかかるＬ１キャッシュとＬ２キャッシュに格納されるデータの関係の概念を説明する図である。Ｌ１キャッシュ９３２には、タグＬ１Ｔと、データアレイＬ１ＤＡとが格納されている。タグＬ１Ｔ及びデータアレイＬ１ＤＡは、アレイ数Ｌｄ１である。また、データアレイＬ１ＤＡは、ラインサイズＬｓ１である。また、Ｌ２キャッシュ９３３は、タグＬ２Ｔと、データアレイＬ２ＤＡとが格納される。タグＬ２Ｔ及びデータアレイＬ２ＤＡは、アレイ数Ｌｄ２である。また、データアレイＬ２ＤＡは、ラインサイズＬｓ２である。そして、データアレイＬ１ＤＡは、データアレイＬ２ＤＡに包含されており、データアレイＬ２ＤＡは、ＳＤＲＡＭ９３６に包含されている。
【００７４】
Ｌ２キャッシュ９３３にヒットした場合にはＳＤＲＡＭ９３６へのアクセスは生じない。Ｌ２キャッシュ９３３の効果を得るためには、データアレイＬ１ＤＡに比べて十分な容量のデータアレイＬ２ＤＡをＬ２キャッシュ９３３に確保する必要がある。しかし、組み込みシステムではそのコストが大きく実現が困難であった。
【００７５】
図１１は、本発明の実施の形態１にかかるＬ１キャッシュとＬ２キャッシュに格納されるデータの関係の概念を説明する図である。Ｌ１キャッシュ１２は、Ｌ１キャッシュ９３２と同等の構成である。但し、Ｌ１キャッシュ１２でキャッシュミスとなった場合には、Ｌ２キャッシュ１３及びＳＤＲＡＭ１６に格納された内容で応答される場合がある。
【００７６】
Ｌ２キャッシュ１３は、タグＬ２Ｔと、部分データアレイＬ２ＤＡａとが格納されている。タグＬ２Ｔ及び部分データアレイＬ２ＤＡａは、アレイ数Ｌｄ２であり、図２８と同等である。一方、部分データアレイＬ２ＤＡａは、ラインサイズＬｓ２ａであり、図２８と異なる。
【００７７】
ここで、図２８では、Ｌ２キャッシュ９３３における個々のキャッシュエントリのラインサイズＬｓ２は、Ｌ１キャッシュ９３２のラインサイズＬｓ１と同等か、それを上回るようにする必要がある。一方、図１１では、Ｌ２キャッシュ１３のラインサイズＬｓ２ａは、Ｌ１キャッシュ１２のラインサイズＬｓ１よりも十分に小さくできる。これによって、外部メモリのレイテンシを効果的に削減するとともに、Ｌ２キャッシュの問題点であったメモリ容量を大幅に削減することが可能になる。
【００７８】
一方で、Ｌ２キャッシュ１３がヒットした際にもＳＤＲＡＭ１６へのアクセスが必ず発生することになるが、背景で述べたように、３次元積層によるＩ／Ｏ電力の減少やバンド幅の拡大を有効に活用することにより、このことによるデメリットは従来外付けチップによる外部メモリ接続より軽減できると考えられる。
【００７９】
尚、本発明の実施の形態１は、次のように表現することができる。すなわち、第１キャッシュメモリと、少なくとも前記第１キャッシュメモリの下位階層である第２キャッシュメモリと、少なくとも前記第１キャッシュメモリの下位階層である外部メモリと、を備え、前記第２キャッシュメモリにおけるキャッシュのヒット判定結果がキャッシュヒットである場合、当該第２キャッシュメモリと前記外部メモリとを同一階層のメモリとし、前記ヒット判定結果がキャッシュミスである場合、前記外部メモリを前記第２キャッシュメモリの下位階層とするメモリ制御装置。これにより、ヒット判定結果に基づいて外部メモリの階層を変化させることができる。そのため、第２キャッシュメモリにおけるキャッシュヒットの場合に、同一階層の外部メモリからのデータを用いて応答することが可能となる。よって、第２キャッシュメモリにキャッシュヒットにかかるデータ列の全てのデータを格納しておく必要がなく、第２キャッシュメモリの容量を削減できる。
【００８０】
または、本発明の実施の形態１は、次のように表現することもできる。すなわち、３以上のメモリ階層を有するメモリ制御装置であって、上位階層のキャッシュメモリにおいてキャッシュミスであった場合に、当該キャッシュメモリより下位階層である複数の階層のメモリに対して同時にアクセス要求を行い、データの応答があった順番に応じて前記アクセス要求に対する応答データとするメモリ制御装置。これにより、Ｌ２キャッシュメモリにおけるキャッシュヒットの場合には、Ｌ２キャッシュメモリからの応答があり、その後、Ｌ２キャッシュメモリより階層の外部メモリ等からの応答という順番となる。そこで、Ｌ２キャッシュメモリから読み出されたデータを優先して、外部メモリ等から読み出されたデータをその後続データとして応答データとすることができる。そのため、Ｌ２キャッシュメモリに優先度の高いデータのみを格納しておけば、Ｌ２キャッシュメモリの容量を削減できる。
【００８１】
＜発明の実施の形態２＞
上述した発明の実施の形態１では、Ｌ１キャッシュミスが生じた際に、ミスしたラインをＬ２キャッシュ又は外部メモリから読み出す場合について説明した。一方、書き込みの場合、すなわちＬ１キャッシュの特定キャッシュラインのデータが主記憶と不一致状態であり、そのキャッシュラインをＬ１キャッシュから追い出す際にも、外部メモリには、遅延が生じる。この場合も、読み出しの場合同様、Ｒｏｗアドレスのオープンをした後に、ＣＯＬアドレス、コマンド発行となるため、この間の時間が遅延時間となり、Ｌ１キャッシュからのキャッシュラインの追い出しが遅延させられることになる。
【００８２】
そこで、本発明の実施の形態２では、Ｌ１キャッシュからの追い出しの最初の部分のみをＬ２キャッシュに取り込むものについて説明する。これにより、ＤＲＡＭのレイテンシを隠蔽する。ＤＲＡＭは１ページ分のデータを循環して書き込むことができるので、Ｌ２キャッシュに取り込んだデータはＬ１キャッシュからのデータの書き込み後に、連続してＤＲＡＭに書き込む。したがって、本発明におけるＬ２キャッシュに格納されたデータは、常にＤＲＡＭメモリと一致した状態を維持し、Ｌ２キャッシュのエントリの追い出しによる書き戻しは発生しない。これらの処理により、Ｌ１キャッシュの書き戻し時にも外部メモリの遅延を隠蔽することが可能になる。
【００８３】
つまり、本発明の実施の形態２にかかる制御部は、特定のデータ列を書き込む要求に応じて、当該特定のデータ列のうち一部のデータを前記第２メモリへ書き込むと共に、当該特定のデータ列のうち当該一部のデータ以外のデータを前記第３メモリへ書き込み、当該第３メモリへの書き込み後、前記第２メモリへ書き込まれた一部のデータを前記第３メモリへ書き込む。これにより、第２メモリ（例えば、Ｌ２キャッシュ）への書き込みが完了する前に第３メモリへの書き込みを開始しており、第２メモリと第３メモリの同期が速くなる。尚、本発明の実施の形態２にかかるメモリ制御装置の構成は、図１と同等であるため、図示及び説明を省略する。
【００８４】
本発明の実施の形態２にかかるデータ書込処理における全体の流れは、上述した図２と同等であるため、以下では、Ｌ２キャッシュヒット処理及びＬ２キャッシュミス処理について説明する。
【００８５】
図１２は、本発明の実施の形態２にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２がキャッシュヒットである旨及びＳＤＲＡＭ１６における書き込み対象アドレスを部分データアレイ１３２のデータ列あたりのデータ数の直後を示す値とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレス＋Ｌ２サイズに基づきＣｏｌＷｒｉｔｅ要求を発行する（Ｓ２１１）。これと並行して、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２キャッシュ１３に先頭データを書き込む（Ｓ２１３）。ここで、書き込むデータ数は、分データアレイ１３２のデータ数分である。また、ステップＳ２１１後、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に後続データを書き込む（Ｓ２１２）。
【００８６】
その後、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２キャッシュ１６から先頭データを読み出す（Ｓ２１４）。そして、シーケンサ１５１は、ＳＤＲＡＭ１６にＬ２キャッシュ１３からの先頭データを書き込む（Ｓ２１５）。
【００８７】
図１３は、本発明の実施の形態２にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１は、Ｌ２がキャッシュミスである旨及びＳＤＲＡＭ１６における書き込み対象アドレスをデータ列あたりの先頭とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレスに基づきＣｏｌＷｒｉｔｅ要求を発行する（Ｓ２２１）。続いて、シーケンサ１５１は、ＳＤＲＡＭ１６に全データを書き込む（Ｓ２２２）。
【００８８】
ここで、図１４は、本発明の実施の形態２にかかるＬ２キャッシュヒット時の効果を説明する図である。Ｌ１キャッシュにおいて追い出しが発生した場合、まず、プロセッサコア１１は、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１に対してデータ書き込みに関するアクセス要求ｘ１を発行する。そして、Ｌ２キャッシュヒットであれば、Ｌ２キャッシュ１３にデータ群ＷＤ１が書き込まれる。一方、並行してＳＤＲＡＭ１６に対してＲｏｗＯｐｅｎ要求及びＤ４からのＣｏｌＷｒｉｔｅ要求が発行され、ＲＡＳレイテンシＴ２＋ＣＡＳレイテンシＴ３の経過後に、データ群ＷＤ２が書き込まれる。そして、データ群ＷＤ２の書き込みが完了する前にＬ２キャッシュ１３からデータ群ＷＤ１が読み出され、データ群ＷＤ２の書き込み完了後に続けてデータ群ＷＤ３が書き込まれる。ここで、データ群ＷＤ３は、Ｌ２キャッシュ１３から読み出されたデータ群ＷＤ１である。
【００８９】
＜発明の実施の形態３＞
ＩＰコアの一形態である汎用のマイクロプロセッサの中には、キャッシュミスにおける遅延時間短縮のため、必要なデータを最初に転送するようにして、そのデータの到着次第、キャッシュミスが完全に解消していなくても処理を再開するＣｒｉｔｉｃａｌ  Ｗｏｒｄ  Ｆｉｒｓｔ転送を備えたものがある。上述したＬ２キャッシュ１３は、Ｌ１キャッシュラインの一部分をキャッシングするものであるが、このような場合には、先頭の数サイクル分だけを保持することに限定する必要はない。ここで、ＩＰコアにおいて、Ｌ１キャッシュミスを引き起こすデータ参照のパターンは、再現性がある場合も多い。したがって、Ｃｒｉｔｉｃａｌ  Ｗｏｒｄ  Ｆｉｒｓｔ転送によるデータ転送のパターンは同じように繰り返される場合もある。よって、本発明の実施の形態３にかかるＬ２キャッシュ１３ａに格納されるデータの位置を、この最初に転送される一部分にすることによって、本発明によるレイテンシ短縮の効果を得ることができる。
【００９０】
つまり、第２メモリは、前記一部のデータについての前記データ列内でのデータ位置を示す部分タグ情報をさらに格納し、前記制御部は、データ列内で優先して出力すべき特定のデータ位置の指定を含むアクセス要求に応じて、前記ヒット判定において前記部分タグ情報が当該指定されたデータ位置に該当する場合にキャッシュヒットと判定し、前記ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記部分タグ情報に対応する前記一部のデータを前記第２メモリから読み出して前記先頭データとする。これにより、Ｃｒｉｔｉｃａｌ  Ｗｏｒｄ  Ｆｉｒｓｔ転送であっても同様の効果を得ることができる。
【００９１】
図１５は、本発明の実施の形態３にかかるメモリ制御装置１ａの構成を示すブロック図である。尚、本発明の実施の形態３にかかるメモリ制御装置１ａの構成のうち、図１と同等のものについては同一の符号を付し、図示及び説明を省略する。Ｌ２キャッシュ１３ａは、Ｌ２キャッシュ１３に加えて、部分タグ１３３が追加されている。これは、部分データアレイ１３２がアクセス要求ｘ１にかかるデータ列のうちどの部分に相当するデータを格納しているかを示すものである。
【００９２】
図１６は、本発明の実施の形態３にかかるデータ読出処理の流れを示すフローチャートである。ここでは、読み出し要求に対してＬ１キャッシュ１２においてキャッシュミスが発生した場合について説明する。つまり、プロセッサコア１１からＬ２ＨＩＴ／ＭＩＳＳ判定部１４１及びシーケンサ１５１に対してアクセス要求ｘ１が発行された場合となる。
【００９３】
まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、アクセス要求ｘ１に応じてＬ２キャッシュ１３ａのタグ照合及び部分タグ照合を行う（Ｓ３０１）。このとき並行して、シーケンサ１５１は、ＳＤＲＡＭ１６に対して、上位アドレスに基づきＲｏｗＯｐｅｎ要求を発行する（Ｓ３０２）。
【００９４】
次に、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、Ｌ２キャッシュがヒットしたか否かを判定する（Ｓ３０３）。ヒットした場合、Ｌ２キャッシュヒット処理を行う（Ｓ３０４）。また、ミスした場合、Ｌ２キャッシュミス処理を行う（Ｓ３０５）。
【００９５】
図１７は、本発明の実施の形態３にかかるＬ２キャッシュヒット処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、Ｌ２がキャッシュヒットである旨及びＳＤＲＡＭ１６における読出し対象アドレスを部分データアレイ１３２のデータ列あたりのデータ数の直後を示す値とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレス＋Ｌ２サイズに基づきＣｏｌＲｅａｄ要求を発行する（Ｓ３１１）。これと並行して、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａ及びシーケンサ１５１を経由して転送回数カウンタ１４２は、応答データセレクタ１４３の出力を、Ｌ２キャッシュ１３に切り替える（Ｓ３１２）。そして、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、Ｌ２キャッシュ１３ａから要求データを供給する（Ｓ３１３）。つまり、アクセス要求ｘ１で指定されたデータ位置をＬ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、該当する部分タグ１３３に対応する一部のデータを読み出して、応答データセレクタ１４３へ出力する。応答データセレクタ１４３は、応答データｘ５の先頭データをプロセッサコア１１へ出力する。
【００９６】
その後、転送回数が"４"に達したとき、転送回数カウンタ１４２は、応答データセレクタ１４３の出力をＳＤＲＡＭ１６に切り替える（Ｓ３１４）。そして、ＳＤＲＡＭ１６から要求データの後続データを供給する（Ｓ３１５）。最後に、シーケンサ１５１は、ＳＤＲＡＭ１６に対して先頭データの転送中止要求する（Ｓ３１６）。
【００９７】
図１８は、本発明の実施の形態３にかかるＬ２キャッシュミス処理の流れを示すフローチャートである。まず、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａは、Ｌ２がキャッシュミスである旨及びＳＤＲＡＭ１６における読出し対象アドレスをデータ列あたりの先頭とした判定結果ｘ２をシーケンサ１５１及びＣＯＬアドレス生成部１５３へ通知する。そして、シーケンサ１５１は、ＣＯＬアドレス生成部１５３を介してＳＤＲＡＭ１６に対して下位アドレスに基づきＣｏｌＲｅａｄ要求を発行する（Ｓ３２１）。これと並行して、Ｌ２ＨＩＴ／ＭＩＳＳ判定部１４１ａ及びシーケンサ１５１を経由して転送回数カウンタ１４２は、応答データセレクタ１４３の出力を、ＳＤＲＡＭ１６に切り替える（Ｓ３２２）。
【００９８】
その後、ＳＤＲＡＭ１６から要求データを供給する（Ｓ３２３）。これと並行して、要求データをＬ２キャッシュ１３ａへ格納する（Ｓ３２４）。そして、部分タグ１３３を更新する（Ｓ３２５）。その後、ＳＤＲＡＭ１６から要求データの後続データを供給する（Ｓ３２６）。
【００９９】
図１９は、本発明の実施の形態３にかかるＬ２キャッシュヒット時の効果を説明する図である。ここでは、データＤ８がキャッシュミスを引き起こしたデータ、すなわちＣｒｉｔｉｃａｌ  Ｗｏｒｄである。Ｌ１キャッシュにデータＤ８を含むデータ群ＲＤ５が到着次第、ＩＰコアは処理を再開できる。もし、Ｌ２キャッシュにデータＤ８を含む部分データが格納されている場合には、Ｌ２キャッシュから当該データを供給後、外部メモリからそれ以外のデータを供給するような制御を行う。
【０１００】
これにより、本発明の実施の形態１と同等の効果を得ることができる。しかしながら、Ｌ２キャッシュのヒット率は若干低下することも想定されるため、同じＬ１キャッシュエントリに位置する異なった部分データを複数のＬ２キャッシュエントリに格納することも可能とし、アクセスの開始アドレスに反復性が少ないものにも対応させることが考えられる。
【０１０１】
＜発明の実施の形態４＞
本発明の実施の形態４では、マルチコア構成でも共有メモリとしてのＳＤＲＡＭコントローラ、共有Ｌ２キャッシュとして利用する場合について説明する。図２９は、関連技術にかかるマルチプロセッサにおけるメモリ制御装置２の構成を示すブロック図である。メモリ制御装置９４は、ＩＰコア２１１〜２１４と、Ｌ１キャッシュ２２１〜２２４と、Ｌ２キャッシュ９４３と、アービタスケジューラ９４４０と、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９４４１と、応答データセレクタ９４４２と、ＳＤＲＡＭコントローラ２５と、ＳＤＲＡＭ２６とを備える。
【０１０２】
ＩＰコア２１１〜２１４は、それぞれＬ１キャッシュ２２１〜２２４を備え、Ｌ１キャッシュミスの場合、アービタスケジューラ９４４０へアクセス要求を発行する。Ｌ２キャッシュ９４３は、タグ９３３１と、データアレイ９３３２とを格納している。アービタスケジューラ９４４０は、複数のアクセス要求を受け付け、調停を行った上で、Ｌ２ＨＩＴ／ＭＩＳＳ判定部９４４１に対して一つずつアクセス要求ｘ１を発行する。
【０１０３】
Ｌ２ＨＩＴ／ＭＩＳＳ判定部９４４１は、アクセス要求ｘ１に応じてＬ２キャッシュ９３３におけるキャッシュのヒット判定を行う。この後は、アクセス要求ｘ１から応答バス２７０を解したその応答データの出力を一単位として図２７と同様の処理であるため、詳細な説明を省略する。
【０１０４】
図２０は、本発明の実施の形態４にかかるマルチプロセッサにおけるメモリ制御装置２の構成を示すブロック図である。メモリ制御装置２は、ＩＰコア２１１〜２１４と、Ｌ１キャッシュ２２１〜２２４と、Ｌ２キャッシュ２３と、アービタスケジューラ２４０と、Ｌ２ＨＩＴ／ＭＩＳＳ判定部２４１と、転送回数カウンタ２４２と、応答データセレクタ２４３１及び２４３２と、ＳＤＲＡＭコントローラ２５と、ＳＤＲＡＭ２６とを備える。
【０１０５】
Ｌ２キャッシュ２３は、図１と同様に、タグ２３１と、部分データアレイ２３２とを格納する。ここで、図２０では、図２９と比べて応答データセレクタが二重化されており、それぞれ応答バス２７１及び２７２に接続されている。
【０１０６】
つまり、図２０では、Ｌ２キャッシュ２３からのデータ転送とＳＤＲＡＭ２６からのデータ転送を畳み込んで、２重に応答し、メモリ制御装置２全体のスループットを向上させることが可能である。この場合は、応答データセレクタ２４３１及び２４３２や、応答バス２７１及び２７２のように二重化することによって、同時に複数ＩＰに異なったデータの供給を行える構成にする必要がある。
【０１０７】
このように、本発明の実施の形態４では、図２０に示すような、複数のＩＰコアを持ったマルチコアＳｏＣを仮定している。この構成では、ＩＰコア２１１〜２１４がそれぞれ独立にメモリアクセス要求を行うことができる。ここで、図２０のメモリ制御装置２は、これらの要求を図２１に示すようにパイプライン的にＬ２キャッシュと外部メモリから供給することができる。
【０１０８】
メモリ制御装置２は、各ＩＰコアからの要求それぞれに対して、Ｌ２キャッシュ２３のヒットミスを判定し、ヒットした場合には、Ｌ２キャッシュ２３から外部メモリレイテンシ分のデータを供給する。その後は外部メモリからのデータ供給となるため、Ｌ２キャッシュ２３のアクセスポートには空きが生じる。
【０１０９】
図２１は、本発明の実施の形態４にかかるＬ２キャッシュヒット時の効果を説明する図である。図２１の例では、メモリ制御装置２は、まずＩＰコア２１１の要求に応答し、Ｌ２キャッシュ２３からデータＤ０−Ｄ３（データ群ＲＤ１１）を供給する。その後、Ｄ４以降（データ群ＲＤ１２）は外部メモリ（ＳＤＲＡＭ２６）からの供給となるので、ＩＰコア２１２の要求に対して、Ｌ２キャッシュ２３からデータＤ０−Ｄ３（データ群ＲＤ２１）を供給することが可能となる。すなわち、ＩＰコア２１１に対してデータ群ＲＤ１２の供給中に、ＩＰコア２１２に対しては、Ｌ２キャッシュ２３の部分データアレイ２３２から読み出されたデータ群ＲＤ２１及びＳＤＲＡＭ２６から読み出されたデータ群ＲＤ２２との供給を開始する。したがって、この時間では、外部メモリからＩＰコア２１１へ、Ｌ２キャッシュ２３からＩＰコア２１２への同時データ供給が可能となる。よって、外部メモリのレイテンシを隠蔽しつつ、メモリスループットを２倍にできる。同様に、ＩＰコア２１２が外部メモリ供給の際に、ＩＰコア２１３がＬ２キャッシュ２３からのデータ群ＲＤ３１を供給することも可能である。
【０１１０】
言い換えると、本発明の実施の形態４にかかる制御部は、第１のプロセッサコアから第１のアクセス要求を受け付けた後に第２のプロセッサコアから受け付けた第２のアクセス要求に応じて前記ヒット判定を行い、当該第２のアクセス要求に応じた前記ヒット判定の結果がキャッシュヒットである場合、前記第３メモリからデータを読み出して当該第１のプロセッサコアに対して出力している最中に、前記第２メモリから当該第２のアクセス要求に基づく前記一部のデータを読み出して当該第２のプロセッサコアに対して出力する。
【０１１１】
＜発明の実施の形態５＞
本発明の実施の形態５では、本発明の必要最小限の構成について説明する。図２２は、本発明の実施の形態５にかかるメモリ制御装置３の構成を示すブロック図である。メモリ制御装置３は、所定階層のキャッシュメモリである第１メモリ３１と、第１メモリ３１より少なくとも下位階層のキャッシュメモリである第２メモリ３２と、第２メモリ３２より少なくとも下位階層であり、第１メモリ３１及び第２メモリ３２に比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリ３３と、第１メモリ３１、第２メモリ３２及び第３メモリ３３に対する入出力の制御を行う制御部３４と、を備える。ここで、第２メモリ３２は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する。また、第３メモリ３３は、複数のデータ列内の全てのデータを格納する。制御部３４は、第１メモリ３１においてキャッシュミスが発生した場合、第２メモリ３２におけるキャッシュのヒット判定を行うと共に、第３メモリ３３へのアクセスを開始する。そして、制御部３４は、ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを第２メモリ３２から読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを第３メモリ３３から読み出して当該先頭データの後続データとして応答する。
【０１１２】
つまり、メインメモリ（第３メモリ３３）前に位置する最終段階に位置するＬ２キャッシュ又はラストレベルキャッシュ（ＬＬＣ）（第２メモリ３２）は、メインメモリ、例えば外部ＤＲＡＭのアクセスレイテンシ隠蔽の役割を担う。この第２メモリ３２は、リードの際もライトの際もＣＰＵなどのＩＰコアのＬ１キャッシュ（第１メモリ３１）に格納するデータの一部分のみを格納する。この一部分は、主に、キャッシュの先頭に位置するデータとなるが、基本的にアクセスが最初に行われる部分として定義され、必ずしもキャッシュの先頭に位置するデータのみを格納する訳ではない。
【０１１３】
ＩＰコア各々が持つＬ１キャッシュミスが生じた際には、同時にＬ２キャッシュと外部ＤＲＡＭの両者にアクセスを開始する。そこで、外部ＤＲＡＭのレイテンシに相当する時間はＬ２キャッシュから、それ以降は外部ＤＲＡＭからデータをリレー的に供給することによって、Ｌ１キャッシュミスの際のメモリアクセスのレイテンシを短縮しつつ、同時にＬ２キャッシュに要求されるメモリ容量を削減する。
【０１１４】
当該Ｌ２キャッシュは、リードの際もライトの際もＣＰＵなどのＩＰコアのＬ１キャッシュに格納するデータの一部分のみを格納する。Ｌ１キャッシュミスが生じた際には、同時にＬ２キャッシュと外部ＤＲＡＭの両者を起動し、外部ＤＲＡＭのレイテンシに相当する時間はＬ２キャッシュから、それ以降は外部ＤＲＡＭからデータをリレー的に供給する。これによりメモリアクセスのレイテンシを短縮し、ラストレベルキャッシュに要求されるメモリ容量を削減する。
【０１１５】
このように、第２メモリにおいてキャッシュヒットした場合には、第２メモリ内の一部のデータを先頭データとし、第３メモリ内の同一のデータ列内の残りのデータをその後続データとすることで、応答データとしての整合性を取ることができる。ここで、第２メモリと第３メモリとは応答速度が異なる。第２メモリからの一部のデータについては、従来と同様に高速に応答するが、第３メモリからの残りのデータについてはレイテンシがある。そこで、第２メモリのヒット判定と同時に第３メモリのアクセスを開始することで、第３メモリの応答時間の遅れを第２メモリから一部のデータが読み出される時間により補完することができる。これにより、応答速度の異なる第２メモリと第３メモリを用いて、第２メモリのみで応答しているときと同様のレイテンシを維持できる。そして、この場合には第２メモリには最低限、キャッシュヒットしたデータ列のうち一部のデータ、つまり、応答時に先頭部分となるデータのみを格納していれば十分である。よって、第２メモリにおけるキャッシュヒット率を従来と同様に維持しつつ、格納データ量を削減できる。すなわち、第２メモリのメモリ容量を削減することができる。
【０１１６】
尚、上述した第３メモリ３３の種類は問わない。例えば、第３メモリ３３は、ＳＲＡＭ、ＤＲＡＭ、ＨＤＤ、フラッシュメモリ等であってもよい。
【０１１７】
＜発明の実施の形態６＞
図２３は、本発明の実施の形態６にかかる情報処理装置４の構成を示すブロック図である。情報処理装置４は、プロセッサコア４０と、所定階層のキャッシュメモリである第１メモリ４１と、第１メモリ４１より少なくとも下位階層のキャッシュメモリである第２メモリ４２と、第２メモリ４２より少なくとも下位階層であり、第１メモリ４１及び第２メモリ４２に比べて起動してから実際のデータアクセスまでの遅延時間が長い第３メモリ４３と、第１メモリ４１、第２メモリ４２及び第３メモリ４３に対する入出力の制御を行うメモリ制御部４４と、を備える。ここで、第２メモリ４２は、所定数のデータを単位とする複数のデータ列のうち、各データ列の一部のデータを少なくとも格納する。第３メモリ４３は、複数のデータ列内の全てのデータを格納する。メモリ制御部４４は、プロセッサコア４０からのアクセス要求により第１メモリ４１においてキャッシュミスが発生した場合、第２メモリ４２におけるキャッシュのヒット判定を行うと共に、第３メモリ４３へのアクセスを開始する。ヒット判定の結果がキャッシュヒットである場合、当該キャッシュヒットに該当する前記一部のデータを第２メモリ４２から読み出して先頭データとし、当該一部のデータが属するデータ列のうち当該一部のデータ以外のデータを第３メモリ４３から読み出して当該先頭データの後続データとして応答する。
【０１１８】
本発明の実施の形態６では、２次キャッシュ（第２メモリ４２）にヒットした場合には、ヒットしたデータ列のうち先頭部分のデータを２次キャッシュから出力し、その間に、残りのデータについて外部メモリ（第３メモリ４３）から出力を行う。そのため、プロセッサコア４０に対しては、２次キャッシュから出力されたデータと、外部メモリから出力されたデータとにより、当初１次キャッシュでミスとなったデータ列を出力することができる。そして、外部メモリは読出しに時間のかかるため、その読み出し時間分について外部メモリより読出しが高速な２次キャッシュからデータを読み出すため、データ列の全ての２次キャッシュから読み出されているかのようなレイテンシの短縮を実現できる。そして、２次キャッシュには予め各データ列の一部分のみを保持するため、２次キャッシュの容量の削減も同時に実現できる。この削減量は、２次キャッシュのタグメモリのサイズには影響ないため、２次キャッシュのヒット率も維持でき、全体としてレイテンシの短縮を実現できる。
【０１１９】
＜その他の発明の実施の形態＞
本発明は、階層キャッシュメモリを備えるプロセッサおよびプロセッサや他のハードウェアIPを集積したSoC(System on a Chip)に対して適用可能である。
【０１２０】
また、本発明のその他の実施の形態として、次のように表現することもできる。すなわち、複数のメモリ階層から構成される情報処理装置において、上位階層のメモリから、下位階層のメモリに対して読み出し要求が生じた際に、下位階層に位置する複数のメモリ階層に対して、同時に読み出し要求を行い、応答のあった順にデータを構成して、上位階層のメモリ読み出し要求に応答することを特徴とした情報処理装置。
【０１２１】
また、上記情報処理装置において、特定のメモリ階層がそれよりも下位階層の一部のデータ階層のデータのコピーを保持しているか否かによって、下位階層のメモリアクセス順序を決定することを特徴とした情報処理装置。
【０１２２】
さらに、上記情報処理装置において、上位階層のメモリから、下位階層のメモリに対して書き込み要求が生じた際に、下位階層のメモリにデータを注入できるタイミングまで、特定階層のメモリにデータを蓄え、前期タイミング以降は、下位階層メモリに直接データを書きこむことを特徴とし、上記特定階層のメモリから、当該データが追い出される際には、改めて下位階層のメモリにデータの一部分を書き込むことを特徴とした情報処理装置。さらにまた、上記情報処理装置において、特に下位階層のメモリがDRAMであることを特徴とした情報処理装置。
【０１２３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１２４】
１  メモリ制御装置
１ａ  メモリ制御装置
１１  プロセッサコア
１２  Ｌ１キャッシュ
１３  Ｌ２キャッシュ
１３ａ  Ｌ２キャッシュ
１３１  タグ
１３２  部分データアレイ
１３３  部分タグ
１４１  Ｌ２ＨＩＴ／ＭＩＳＳ判定部
１４１ａ  Ｌ２ＨＩＴ／ＭＩＳＳ判定部
１４２  転送回数カウンタ
１４３  応答データセレクタ
１５  ＳＤＲＡＭコントローラ
１５１  シーケンサ
１５２  ＲＯＷアドレス生成部
１５３  ＣＯＬアドレス生成部
１５４  同期化バッファ
１６  ＳＤＲＡＭ
２  メモリ制御装置
２１１  ＩＰコア
２１２  ＩＰコア
２１３  ＩＰコア
２１４  ＩＰコア
２２１  Ｌ１キャッシュ
２２２  Ｌ１キャッシュ
２２３  Ｌ１キャッシュ
２２４  Ｌ１キャッシュ
２３  Ｌ２キャッシュ
２３１  タグ
２３２  部分データアレイ
２４０  アービタスケジューラ
２４１  Ｌ２ＨＩＴ／ＭＩＳＳ判定部
２４２  転送回数カウンタ
２４３１  応答データセレクタ
２４３２  応答データセレクタ
２５  ＳＤＲＡＭコントローラ
２６  ＳＤＲＡＭ
２７０  応答バス
２７１  応答バス
２７２  応答バス
ｘ１  アクセス要求
ｘ２  判定結果
ｘ３  転送回数
ｘ４  選択指示
ｘ５  応答データ
ｘ５１  応答データ
ｘ５２  応答データ
ｘ６  アクセス要求
ＲＤ１  データ群
ＲＤ２  データ群
ＲＤ３  データ群
ＲＤ４  データ群
ＲＤ５  データ群
ＲＤ６  データ群
ＲＤ１１  データ群
ＲＤ１２  データ群
ＲＤ２１  データ群
ＲＤ２２  データ群
ＲＤ３１  データ群
ＲＤ３２  データ群
３  メモリ制御装置
３１  第１メモリ
３２  第２メモリ
３３  第３メモリ
３４  制御部
４  情報処理装置
４０  プロセッサコア
４１  第１メモリ
４２  第２メモリ
４３  第３メモリ
４４  メモリ制御部
Ｔ１  レイテンシ
Ｔ２  ＲＡＳレイテンシ
Ｔ２ａ  ＲＡＳレイテンシ
Ｔ２ｂ  ＲＡＳレイテンシ
Ｔ３  ＣＡＳレイテンシ
Ｔ３ａ  ＣＡＳレイテンシ
Ｔ３ｂ  ＣＡＳレイテンシ
Ｔ４  転送空きサイクル
Ｔ５  ＲＡＳ発行調整サイクル
Ｔ６  転送空きサイクル
Ｔ７  転送空きサイクル
ＤＡ０  データ列
ＤＡ１  データ列
ＤＡ２  データ列
ＤＡ３  データ列
ＤＡ４  データ列
ＤＡ５  データ列
ＤＡＮ  データ列
Ｌ１ＤＡ  データアレイ
Ｌ２ＤＡ  データアレイ
Ｌ２ＤＡａ  部分データアレイ
Ｌ３ＤＡ  データアレイ
Ｌ１Ｄ  データ集合
Ｌ２Ｄ  データ集合
Ｌ３Ｄ  データ集合
Ｌ１Ｔ  タグ
Ｌ２Ｔ  タグ
Ｌｓ１  ラインサイズ
Ｌｓ２  ラインサイズ
Ｌｓ２ａ  ラインサイズ
Ｌｄ１  アレイ数
Ｌｄ２  アレイ数
ＷＤ１  データ群
ＷＤ２  データ群
ＷＤ３  データ群
９１  キャッシュメモリ制御装置
９１０１  コア
９１０２  制御部
９１０３  ＷＢＤＱ
９１０４  ＭＩＤＱ
９１０５  セレクタ
９１０６  データメモリ
９１０７  セレクタ
９１０８  セレクタ
９１０９  データバス
９１１０  ＭＩポート
９１１１  セレクタ
９１１２  タグメモリ
９１１３  ＭＩバッファ
９１１４  ＭＯＤＱ
９１１５  ＭＡＣ
ＬＯ  ライン
９２１  プロセッサコア
９２２  ＳＲＡＭ
９２３  下層ダイ
９２４  ＤＲＡＭ
９２５  上層ダイ
９３  メモリ制御装置
９３１  プロセッサコア
９３２  Ｌ１キャッシュ
９３３  Ｌ２キャッシュ
９３３１  タグ
９３３２  データアレイ
９３４１  Ｌ２ＨＩＴ／ＭＩＳＳ判定部
９３４２  応答データセレクタ
９３５  ＳＤＲＡＭコントローラ
９３５１  シーケンサ
９３５２  ＲＯＷアドレス生成部
９３５３  ＣＯＬアドレス生成部
９３５４  同期化バッファ
９３６  ＳＤＲＡＭ
９４  メモリ制御装置
９４３  Ｌ２キャッシュ
９４４０  アービタスケジューラ
９４４１  Ｌ２ＨＩＴ／ＭＩＳＳ判定部
９４４２  応答データセレクタ
９４５  ＳＤＲＡＭコントローラ
９４６  ＳＤＲＡＭ
【図１】
0005791529.tif 000002
【図２】
0005791529.tif 000003
【図３】
0005791529.tif 000004
【図４】
0005791529.tif 000005
【図５】
0005791529.tif 000006
【図６】
0005791529.tif 000007
【図７】
0005791529.tif 000008
【図８】
0005791529.tif 000009
【図９】
0005791529.tif 000010
【図１０】
0005791529.tif 000011
【図１１】
0005791529.tif 000012
【図１２】
0005791529.tif 000013
【図１３】
0005791529.tif 000014
【図１４】
0005791529.tif 000015
【図１５】
0005791529.tif 000016
【図１６】
0005791529.tif 000017
【図１７】
0005791529.tif 000018
【図１８】
0005791529.tif 000019
【図１９】
0005791529.tif 000020
【図２０】
0005791529.tif 000021
【図２１】
0005791529.tif 000022
【図２２】
0005791529.tif 000023
【図２３】
0005791529.tif 000024
【図２４】
0005791529.tif 000025
【図２５】
0005791529.tif 000026
【図２６】
0005791529.tif 000027
【図２７】
0005791529.tif 000028
【図２８】
0005791529.tif 000029
【図２９】
0005791529.tif 000030