(57)【要約】【課題】簡単にキャッシュの大容量化を図ることができるキャッシュメモリ装置を提供する。【解決手段】ハードウエア・アーキテクチュアＨＡは、プロセッサ・コア１がタグ・モード及びキャッシュ・モードを選択的に実現できるように構成されている。タグ・モードでは、二次キャッシュメモリとしてのＳＲＡＭ２のデータメモリを大容量メモリであるＤＲＡＭ４のタグメモリとして利用する。キャッシュ・モードでは、ＳＲＡＭ２をそのままキャッシュメモリとして利用する。キャッシュ・モードでは、大容量メモリであるＤＲＡＭ４を使用しない。【選択図】  図２
2010250511.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ・コアと、
順次容量が大きくなる、一次キャッシュメモリからｎ次キャッシュメモリ（ｎは２以上の整数）を備えたメモリ階層構造と、
前記プロセッサ・コアとメモリ階層構造とを接続して制御するためのハードウエア・アーキテクチュアとを有するキャッシュメモリ装置であって、
ハードウエア・アーキテクチュアが、ｍ次キャッシュメモリ（但しｍは１以上ｎ−１以下の整数）のデータメモリを前記ｍ＋１次キャッシュメモリのタグメモリとして利用して前記ｍ＋１次キャッシュメモリへのデータの書込動作及び読み出し動作を、前記プロセッサ・コアが実行することを可能にするタグ・モードと、前記ｍ＋１〜ｎ次キャッシュメモリを利用せず且つ前記１次キャッシュメモリから前記ｍ次キャッシュメモリをそのままキャッシュメモリとして利用して前記１次キャッシュメモリから前記ｍ次キャッシュメモリへのデータの書込動作及び読み出し動作を、前記プロセッサ・コアが実行することを可能にするキャッシュ・モードとを選択的に実現できるように構成されていることを特徴とするキャッシュメモリ装置。
【請求項２】
一次キャッシュメモリを備えたプロセッサ・コアと、
タグメモリ及びデータメモリを含んで前記一次キャッシュメモリよりも容量が大きい二次キャッシュメモリと、
前記二次キャッシュメモリよりも容量が大きい大容量メモリと、
前記プロセッサ・コアとメモリ階層構造とを接続して制御するためのハードウエア・アーキテクチュアとを
を具備し、
前記ハードウエア・アーキテクチュアは、前記二次キャッシュメモリの前記データメモリを前記大容量メモリのタグメモリとして利用して前記大容量メモリへのデータの書込動作及び読み出し動作を、前記プロセッサ・コアが実行することを可能にするタグ・モードと、前記二次キャッシュメモリをそのままキャッシュメモリとして利用して前記二次キャッシュメモリへのデータの書込動作及び読み出し動作を、前記プロセッサ・コアが実行することを可能にするキャッシュ・モードとを選択的に実現できるように構成されていることを特徴とするキャッシュメモリ装置。
【請求項３】
前記ハードウエア・アーキテクチュアは、前記プロセッサ・コアで処理する実行対象プログラムが有するワーキングセット・サイズに応じて定められた前記タグ・モードまたは前記キャッシュ・モードのいずれを実現するかを判定するモード判定部を備えている請求項１に記載のキャッシュメモリ装置。
【請求項４】
前記ハードウエア・アーキテクチュアは、前記プロセッサ・コアで処理する実行対象プログラムが有するワーキングセット・サイズに応じて、前記タグ・モード及びキャッシュ・モードのいずれか一方を選択するモード選択部を更に備えている請求項３に記載のキャッシュメモリ装置。
【請求項５】
前記モード判定部が前記キャッシュ・モードを判定すると、前記プロセッサ・コアは、前記ｍ次キャッシュメモリをそのままキャッシュメモリとして利用し、前記ｍ＋１〜ｎ次キャッシュメモリを利用しないようにフィールドが構成されたメモリ参照アドレスを発生し、
前記モード判定部が前記タグ・モードを選択すると、前記プロセッサ・コアは、前記ｍ次キャッシュメモリのデータメモリを前記ｍ＋１次キャッシュメモリのタグメモリとして利用し、前記ｍ＋１次キャッシュメモリをデータメモリとして利用することを可能にするようにフィールドが構成されたメモリ参照アドレスを発生する請求項３に記載のキャッシュメモリ装置。
【請求項６】
該メモリ参照アドレス中のインデックス・フィールドは、前記ｍ次キャッシュメモリの前記データメモリに含まれる１つのキャッシュラインに、前記ｍ＋１次キャッシュメモリに含まれる２以上のデータに対応する複数のタグが格納されるように構成されている請求項４に記載のキャッシュメモリ装置。
【請求項７】
前記ハードウエア・アーキテクチュアは、
前記タグ・モードにおいては、前記メモリ参照アドレスに含まれる前記タグフィールド中のタグと同じタグが、前記インデックスにより指定された前記ｍ次キャッシュメモリの前記データメモリの前記キャッシュラインに格納されているか否かを判定し、前記キャッシュ・モードにおいては、前記メモリ参照アドレスに含まれる前記タグフィールドに含まれるタグと同じタグが、前記インデックスにより指定された前記ｍ次キャッシュメモリの前記タグメモリ中のキャッシュラインに格納されているか否かを判定する判定回路と、
前記タグ・モードにおいては、前記判定回路が前記タグが格納されていることを判定すると、前記ｍ＋１次キャッシュメモリから前記タグに対応するデータを検索して出力し、前記キャッシュ・モードにおいては、前記判定回路が前記タグが格納されていることを判定すると、前記データメモリから前記タグに対応するデータを検索して出力するデータ出力回路とを含んでいる請求項６に記載のキャッシュメモリ装置。
【請求項８】
前記プロセッサ・コアと前記一次キャッシュメモリから前記２次キャッシュメモリまでが第１のダイに実装され、前記大容量メモリが前記第１のダイとは別の第２のダイに実装され、前記第１のダイと前記第２のダイとが３次元実装によりスタックを構成している請求項２に記載のキャッシュメモリ装置。
【請求項９】
前記二次キャッシュメモリがＳＲＡＭによって構成され、前記大容量メモリがＤＲＡＭによって構成されている請求項８に記載のキャッシュメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、選択的に大容量化が可能なキャッシュメモリ装置に関するものである。
【背景技術】
【０００２】
特開２００５−２０２９８６号公報（特許文献１）等には、キャッシュメモリ装置の大容量化のために、キャッシングタグを別の専用の構造に格納する必要性を無くした発明が開示されている。
【０００３】
また最近は、キャッシュメモリ装置の大容量化のために、半導体チップの実現法として３次元実装が注目されている。これまでの２次元実装ＬＳＩにおいては、回路の大規模化に伴いブロック間接続のための配線が長くなり、ひいては、動作周波数の低下や消費電力の増大を招くといった問題があった。これに対し、３次元実装ＬＳＩでは、３次元方向へ回路を集積することで配線長を短い状態に維持しつつ、回路を大規模化できるといった利点がある。また、たとえばＤＲＡＭとロジックのように異なる製造プロセスを経て作成した複数のダイを積層することも比較的容易になる。例えば、非特許文献１には、個別の製造プロセスを得て完成した大容量ＤＲＡＭダイとプロセッサ・ダイを積層し、これらの間をTSV （Through Silicon Via）で接続するキャッシュメモリ装置の構造が開示されている。この構造では、プロセッサ・コアと大容量メモリを１個のＬＳＩチップに混載することで大容量オンチップ・メモリを実現する。また非特許文献１に示された構造では、積層したＤＲＡＭをＬ２キャッシュとして活用する。このようなＤＲＡＭキャッシュ・スタック法（以降、ＤＲＡＭスタック法と略す）では、高速なタグ検索を実現するために、ＳＲＡＭ実装されたタグＲＡＭをプロセッサ・コアと同一レイヤに有する。このキャッシュメモリ装置では、３２〜６４ＭＢ程度のＤＲＡＭをラストレベル・キャッシュとして使用するため、オフチップ・アクセス回数を劇的に削減できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２０２９８６号公報
【非特許文献】
【０００５】
【非特許文献１】Black, B., Annavaram, M., Brekelbaum, N., DeVale, J., Jiang, L., Loh, G. H., McCaule,D., Morrow, P., Nelson, D.W., Pantuso, D., Reed, P., Rupley, J., Shankar, S., Shen, J. and Webb, C.: Die Stacking (3D) Microarchitecture, MICRO 39: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, IEEE Computer Society, pp.469−479 (2006).
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載のキャッシュメモリ装置では、構造が複雑になる問題がある。また非引用文献１に記載されたキャッシュメモリ装置では、キャッシュの大容量化は図れるものの、アクセス時間の増加を招くため、場合によっては性能が低下するといった問題が生じる。
【０００７】
本発明の目的は、簡単にキャッシュの大容量化を図ることができるキャッシュメモリ装置を提供することにある。
【０００８】
本発明の他の目的は、上記目的に加えて、アクセス時間を増加させることがない高性能のキャッシュメモリ装置を提供することにある。
【０００９】
本発明の他の目的は、上記目的に加えて、オンチップ・キャッシュの消費エネルギーを削減することができるキャッシュメモリ装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のキャッシュメモリ装置は、プロセッサ・コアと、順次容量が大きくなる、一次キャッシュメモリからｎ次キャッシュメモリ（ｎは２以上の整数）を備えたメモリ階層構造と、プロセッサ・コアとメモリ階層構造とを接続して制御するためのハードウエア・アーキテクチュアとを有する。本発明のハードウエア・アーキテクチュアは、ｍ次キャッシュメモリ（但しｍは１以上ｎ−１以下の整数）のデータメモリをｍ＋１次キャッシュメモリのタグメモリとして利用してｍ＋１次キャッシュメモリへのデータの書込動作及び読み出し動作を、プロセッサ・コアが実行することを可能にするタグ・モードと、ｍ＋１〜ｎ次キャッシュメモリを利用せず且つ１次キャッシュメモリからｍ次キャッシュメモリをそのままキャッシュメモリとして利用して１次キャッシュメモリからｍ次キャッシュメモリへのデータの書込動作及び読み出し動作を、プロセッサ・コアが実行することを可能にするキャッシュ・モードとを選択的に実現きるように構成されている。
【００１１】
最小規模の構成で本発明を説明すると、本発明に係わるキャッシュメモリ装置は、一次キャッシュメモリを備えたプロセッサ・コアと、タグメモリ及びデータメモリを含んで一次キャッシュメモリよりも容量が大きい二次キャッシュメモリと、二次キャッシュメモリよりも容量が大きい大容量メモリ（三次キャッシュメモリに相当）と、ハードウエア・アーキテクチュアとを備えている。ハードウエア・アーキテクチュアは、プロセッサ・コアがタグ・モード及びキャッシュ・モードを選択的に実現できるように構成されている。すなわちタグ・モードは、二次キャッシュメモリのデータメモリを大容量メモリのタグメモリとして利用して、大容量メモリへのデータの書込動作及び読み出し動作をプロセッサ・コアが実行することを可能にするモードである。またキャッシュ・モードは、二次キャッシュメモリをそのままキャッシュメモリとして利用して、二次キャッシュメモリへのデータの書込動作及び読み出し動作をプロセッサ・コアが実行することを可能にするモードである。
【００１２】
本発明によれば、プロセッサ・コアが実行する実行対象プログラムが有するワーキングセット・サイズが小さいときには、ｍ次キャッシュメモリをそのままキャッシュメモリとして利用し、ｍ＋１次以上のキャッシュメモリは利用しない。そしてプロセッサ・コアが実行する実行対象プログラムが有するワーキングセット・サイズが大きくなると、ｍ次キャッシュメモリのデータメモリをｍ＋１次キャッシュメモリのタグメモリとして利用して、ｍ＋１次キャッシュメモリへのデータの書込動作及び読み出し動作をプロセッサ・コアが実行する。そのため本発明によれば、実行対象プログラムが有するワーキングセット・サイズに応じた適切な容量のキャッシュメモリ装置を簡単に構成することができる。
【００１３】
本発明で用いるハードウエア・アーキテクチュアは、プロセッサ・コアで処理する実行対象プログラムが有するワーキングセット・サイズに応じて定められたタグ・モードまたはキャッシュ・モードのいずれを実現するのかを判定するモード判定部を備えている。モード判定部は、事前に定めたモードを指定する指令の有無に基づいてモードを判定するものでもよい。本発明のキャッシュメモリ装置では、モード判定部がタグ・モードまたはキャッシュ・モードを判定すると、ハードウエア・アーキテクチュアがタグ・モードまたはキャッシュ・モードを実現できる構成となる。したがってキャッシュメモリの容量の変更を簡単に実現できる。
【００１４】
なおモード判定部がキャッシュ・モードを判定すると、プロセッサ・コアは、ｍ次キャッシュメモリをそのままキャッシュメモリとして利用し、ｍ＋１次キャッシュメモリ〜ｎ次キャッシュメモリを利用しないようにフィールドが構成されたメモリ参照アドレスを発生するようにする。またモード判定部がタグ・モードを選択すると、プロセッサ・コアは、ｍ次キャッシュメモリのデータメモリをｍ＋１次キャッシュメモリのタグメモリとして利用し、ｍ＋１次キャッシュメモリをデータメモリとして利用することを可能にするようにフィールドが構成されたメモリ参照アドレスを発生するようにする。プロセッサ・コアがこのようなメモリ参照アドレスを発生することにより、前述のハードウエア・アーキテクチュアが有効に機能する。
【００１５】
なおハードウエア・アーキテクチュアは、プロセッサ・コアで処理する実行対象プログラムが有するワーキングセット・サイズに応じて、タグ・モード及びキャッシュ・モードのいずれか一方を選択するモード選択部を更に備えていてもよい。このようなモード選択部を備えていると、ワーキングセット・サイズに応じてキャッシュメモリ装置の容量を自動的に設定することができる。
【００１６】
なおｍ＋１次キャッシュメモリを大容量メモリとして使用する場合には、前述のメモリ参照アドレス中のインデックス・フィールドは、ｍ次キャッシュメモリのデータメモリに含まれる１つのキャッシュラインに、ｍ＋１次キャッシュメモリに含まれる２以上のデータに対応する複数のタグが格納されることを許容するように構成されているのが好ましい。このようにするとｍ次キャッシュメモリのデータメモリをｍ＋１次キャッシュメモリのタグメモリとして最大限利用することができる。
【００１７】
ハードウエア・アーキテクチュアは、判定回路とデータ出力回路とを含んでいる。判定回路は、タグ・モードにおいては、メモリ参照アドレスに含まれるタグフィールドに含まれるタグと同じタグが、インデックスにより指定されたｍ次キャッシュメモリのデータメモリのキャッシュラインに格納されているか否かを判定する。そして判定回路は、キャッシュ・モードにおいては、メモリ参照アドレスに含まれるタグフィールドに含まれるタグと同じタグが、インデックスにより指定されたｍ次キャッシュメモリのタグメモリに格納されているか否かを判定する。またデータ出力回路は、タグ・モードにおいて、タグが格納されていることを判定回路が判定すると、ｍ＋１次キャッシュメモリからタグに対応するデータを検索して出力する。またデータ出力回路は、キャッシュ・モードにおいても、判定回路がタグが格納されていることを判定すると、データメモリからタグに対応するデータを検索して出力する。ハードウエア・アーキテクチュアが、このような判定回路とデータ出力回路とを含むことより、タグ・モードまたはキャッシュ・モードのいずれにおいても、キャッシュメモリ装置の読み取り動作を確実に実現することができる。
【００１８】
プロセッサ・コアと二次キャッシュメモリとを第１のダイに実装し、三次キャッシュメモリを第１のダイとは別の第２のダイに実装し、第１のダイと第２のダイとを３次元実装によりスタックを構成するようにしてもよい。このような３次元実装で本発明を実現すれば、キャッシュメモリ装置の寸法を小さくすることができて、しかもアクセス時間の増加を抑制することができる。この場合に、特に、二次キャッシュメモリをＳＲＡＭによって構成し、大容量メモリをＤＲＡＭによって構成すると、現時点の技術では、アクセス時間を最小のものとして大容量化を実現することができる。すなわちこのような構成を採用すると、非特許文献１に示された従来のＤＲＡＭスタック法が有する問題点を解決し、さらなる高性能化と低消費エネルギー化を実現する新しいキャッシュメモリ装置を実現できる。また本発明のキャッシュメモリ装置では、通常のキャッシュメモリ、ならびに、大容量ＤＲＡＭ用タグＲＡＭとしての動作が可能であり、実行対象プログラムのワーキングセット・サイズに応じて適応的に動作モードを変更する。具体的には、ワーキングセット・サイズが小さい場合には通常のＬ２キャッシュメモリとして動作し、ＤＲＡＭキャッシュへのアクセスは禁止する。一方、より大きなＬ２キャッシュが必要だと判断した場合にはＤＲＡＭキャッシュ用タグＲＡＭとして動作する。このように、選択的に大容量ＤＲＡＭを活用することで、高速アクセスとキャッシュ・ミス率の改善の両立を可能にする。また３次元実装されたＤＲＡＭを大容量キャッシュとして活用することで、オフチップメモリ参照回数の劇的な削減が期待できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態の概念を説明するために用いる図である。
【図２】ハードウエア・アーキテクチャの構成を示す図である。
【図３】タグ・モードにおけるタグの格納を説明するために用いる図である。
【図４】モード切替を実行するプログラムのアルゴリズムの一例を示す図である。
【図５】（Ａ）乃至（Ｃ）は、本発明の概念を説明するために用いる図である。
【図６】Ｌ２キャッシュ以外のシミュレータの設定条件を示す図である。
【図７】Ｌ２キャッシュに関するシミュレータの設定条件を示す図である。
【図８】Ｓｐｌａｓｈベンチマークプログラムの入力を示す図である。
【図９】評価結果を示す図である。
【図１０】評価結果を示す図である。
【図１１】ＳｐｌａｓｈベンチマークプログラムのＲａｔｅｔａｇを示す図である。
【発明を実施するための形態】
【００２０】
以下図面を参照して、本発明を３次元実装プロセッサ向けのキャッシュメモリ装置に適用した実施の形態について詳細に説明する。非特許文献１に示されるような従来のＤＲＡＭスタック法を採用したキャッシュメモリ装置では、十分なＬ２キャッシュ・ミス削減率を達成できなければ性能が低下する。そこで本発明の実施の形態のキャッシュメモリ装置は、図１に示すように、キャッシュ・モードとタグ・モードとを選択できるように構成されている。図１に示す構造では、プロセッサ・コア１とＳＲＡＭ２が実装されたダイを下層ダイ３、ＤＲＡＭ４が実装されたダイを上層ダイ５と呼ぶ。ベースプロセッサは下層ダイ３のみで構成されている。１個のプロセッサ・コア１は、一次キャッシュメモリを内蔵している。そしてＳＲＡＭ２は、Ｌ２キャッシュまたは二次キャッシュメモリとして利用される。３次元実装技術により下層ダイ３の上にＤＲＡＭ４が上層ダイ５として積載されている。本実施の形態において、ＤＲＡＭ４が大容量メモリ（三次キャッシュメモリ）を構成している。
【００２１】
単純な方法として、ベースプロセッサと同様、ＳＲＡＭで構成されるＬ２キャッシュを下層タグに実装し、上層ダイ５のＤＲＡＭ４をＬ３キャッシュメモリとして活用することが考えられる。しかしながら、この場合、下層ダイ３に実装される上層ダイ５のＤＲＡＭ４のためのタグメモリはベースプロセッサのＬ２キャッシュと同程度の容量が必要となるため、下層ダイ３の面積オーバヘッドが大きくなる。上層ダイ５のＤＲＡＭ４の容量が64MB、アドレス長64ビット、ブロックサイズ64B、連想度が16の場合、そのタグ領域には約5MBの容量が必要となる。これは、デュアルコアプロセッサ・チップに搭載されるＬ２キャッシュメモリとして用いられるＳＲＡＭ２の容量とほぼ同程度の実装面積を要する。そこで本実施の形態では、タグ・モードでは、ベースプロセッサにおいてＬ２キャッシュ（二次キャッシュメモリ）として使用していたＳＲＡＭのデータメモリ領域を利用してタグメモリを搭載する。すなわち下層ダイ３に実装するＳＲＡＭ２（二次キャッシュメモリ）をハイブリット・キャッシュとして利用する。
【００２２】
ハイブリッド・キャッシュとして用いられる下層ダイ３のＳＲＡＭ２のメモリ領域は、以下２つの動作モードで使用される。
【００２３】
［キャッシュ・モード］：ＳＲＡＭ２が、通常の二次キャッシュメモリとして動作する。すなわちＳＲＡＭ２のメモリ領域は、タグメモリとデータメモリとして利用されて二次キャッシュメモリとなる。このとき、上層ダイ５のＤＲＡＭ４は使用されず、オンチップ・メモリアーキテクチャ（ハードウエア・アーキテクチュア）はベースプロセッサと同様になる。
【００２４】
［タグ・モード］：ＳＲＡＭ２が、上層タグ５の大容量メモリ（三次キャッシュメモリ）としてのＤＲＡＭ４用のタグＲＡＭ（タグメモリ）として動作する。このとき、従来のＤＲＡＭと同様に上層タグ５のＤＲＡＭ４はＬ２キャッシュとして使用される。
【００２５】
つまり、実行対象プログラムのワーキングセット・サイズが小さい場合には、ハイブリッド・キャッシュとしてのＳＲＡＭ２は通常のＬ２キャッシュメモリとして動作し、上層ダイ５のＤＲＡＭ４へのアクセスを禁止する。一方、より大きなＬ２キャッシュが必要だと判断した場合には、上層ダイ５のＤＲＡＭ４をＬ２キャッシュとして使用するために、ＳＲＡＭ２はタグメモリ（タグＲＡＭ）として動作する。このように、選択的に大容量メモリとしてのＤＲＡＭを活用することで、高速アクセスとキャッシュ・ミス率改善の両立を可能にした。
【００２６】
ハイブリッド・キャッシュでは、ＳＲＡＭ２は、通常のデータキャッシュ（データメモリ）とタグＲＡＭ（タグメモリ）としての動作切り替えが可能でなければならない。そこで、プロセッサ・コア１とメモリ階層構造（ＳＲＡＭ２，ＤＲＡＭ４）とを接続して制御するためのハードウエア・アーキテクチュアは、プロセッサ・コア１がタグ・モード及びキャッシュ・モードを選択的に実現できるように構成されている。すなわちハードウエア・アーキテクチュアは、タグ・モードでは、ＳＲＡＭ（二次キャッシュメモリ）２のデータメモリをＤＲＡＭ（大容量メモリまたは三次キャッシュメモリ）４のタグメモリとして利用して、ＤＲＡＭ４へのデータの書込動作及び読み出し動作をプロセッサ・コア１が実行することを可能にする。またハードウエア・アーキテクチュアは、キャッシュ・モードでは、ＳＲＡＭ（二次キャッシュメモリ）２をそのままキャッシュメモリとして利用して、ＳＲＡＭ２（二次キャッシュメモリ）へのデータの書込動作及び読み出し動作をプロセッサ・コアが実行することを可能にする。
【００２７】
図２には、図１の実施の形態に対するハードウエア・アーキテクチュアＨＡの構成の一例を示してある。タグ・モード動作時、ハイブリッド・キャッシュとしてのＳＲＡＭ２は自身のデータメモリに上層ダイ５のＤＲＡＭ４のためのキャッシュ用タグを格納する。ここで、ＳＲＡＭ（ハイブリッド・キャッシュ）２を実装するためには以下の２点を考慮する必要がある。
【００２８】
［下層ダイ３中のＳＲＡＭ２（ハイブリッド・キャッシュ）に対するタグ情報のマッピング］
一般に上層ダイ５のＤＲＡＭ４は、ＳＲＡＭ２より大きな容量を有する。したがって、ラインサイズが同じ場合には、上層ダイ５のＤＲＡＭ４と比較して、下層ダイ３のＳＲＡＭ２からなるキャッシュの総キャッシュライン数は少なくなる。そのため、ＳＲＡＭ２では1 個のキャッシュラインに複数タグを格納しなければならない。この様子を図３に示す。上層ダイ５のＤＲＡＭ４の各ウェイに対応するタグに関して、ＳＲＡＭ２（ハイブリッド・キャッシュ）のデータメモリのキャッシュラインには垂直方向にマッピングする。この際に、ＳＲＡＭ２のためのタグメモリの領域は使用しない。具体的には、ＤＲＡＭ４の各ウェイに対応するタグを、ＳＲＡＭ２中の複数のデータメモリの領域にあるキャッシュラインに１つずつ垂直方向に格納し、最も下のキャッシュラインへの格納が終了すると、再度最も上のキャッシュラインに次のタグを収納し、全てのキャッシュラインがタグで一杯になると、ＳＲＡＭ２の次のウエイ（Ｗａｙ）に、同様にしてタグを格納する。このような方法でタグを格納することができるＳＲＡＭキャッシュを２ウエイ・セットアソシアティブＳＲＡＭキャッシュと呼び、またＤＲＡＭキャッシュを２ウエイ・セットアソシアティブＤＲＡＭキャッシュと呼ぶ。図３の例では、上層ダイ５のＤＲＡＭ４（三次キャッシュメモリ）と下層ダイ３のＳＲＡＭ２（ハイブリッド・キャッシュ）の連想度は共に２と仮定している。しかし、実際には異なる連想度の場合でも対応可能である。
【００２９】
［ＳＲＡＭのデータアレイに格納されたタグ読出しのためのハードウェア・サポート］
図２に示すハードウエア・アーキテクチャＨＡの構成では、ＳＲＡＭ２とＤＲＡＭ４に関して、それぞれの容量をＣＳとＣＤ、ラインサイズをＬＳ とＬＤと、連想度をＷＳとＷＤで表す。そしてアドレス長は６４ビットと仮定する。連想度とラインサイズが同じ場合、ＳＲＡＭ２（ハイブリッド・キャッシュ）のセット数は上層ダイ５のＤＲＡＭ４のセット数と比較して少ない。そのため、図３を用いて説明したように、ＳＲＡＭ２は上層ダイ５のＤＲＡＭ４の全てのタグを、垂直方向に複数のキャッシュラインに折り畳んで格納する。したがって、ＳＲＡＭ２のデータアレイの１つのキャッシュラインから読出したデータの中から該当するタグを選択し、選択したタグに該当するデータをＤＲＡＭから読み出すための専用マルチプレクサＭＵＸ２及びＭＵＸ３が必要となる。また、タグ比較を行うための比較回路ＣＣ１及びＣＣ２が必要となる。さらにタグ・モードが選択されている場合と、キャッシュ・モードが選択されている場合とで、読み出されたタグとこのタグに対応するデータを正しく読み出した出力するための専用マルチプレクサＭＵＸ１，ＭＵＸ４及びＭＵＸ５が必要となる。また本実施の形態では、ハードウエア・アーキテクチャＨＡが、モード判定部ＭＤとモード選択部ＭＳとを備えている。本実施の形態では、比較回路ＣＣ１及びＣＣ２並びに専用マルチプレクサＭＵＸ２によって判定回路が構成されている。また専用マルチプレクサＭＵＸ１、ＭＵＸ３、ＭＵＸ４及びＭＵＸ５によってデータ出力回路が構成されている。
【００３０】
モード判定部ＭＤは、モードがタグ・モードからキャッシュ・モードかを判定し、判定結果に基づいて、専用マルチプレクサＭＵＸ１乃至ＭＵＸ５にモードに応じた動作をすることを指令する。なおモード判定部ＭＤは、事前に定めたモードを指定する指令の有無に基づいてモードを判定するものでもよいが、本実施の形態では、モード選択部ＭＳが選択したモードがタグ・モードかキャッシュ・モードかを判定する。本実施の形態のキャッシュメモリ装置では、モード判定部ＭＤがタグ・モードまたはキャッシュ・モードを判定すると、モード判定部からの指令に基づいて、ハードウエア・アーキテクチュアがタグ・モードまたはキャッシュ・モードを実現できる構成となる。したがってキャッシュメモリの容量の変更を簡単に実現できる。
【００３１】
なおモード判定部ＭＤがキャッシュ・モードを判定すると、プロセッサ・コア１は、ＳＲＡＭ２をそのままキャッシュメモリとして利用し、ＤＲＡＭ４を利用しないようにフィールドが構成されたメモリ参照アドレス（図２に示した物理アドレスの上段のアドレス）を発生する。またモード判定部ＭＤがタグ・モードを選択すると、プロセッサ・コア１は、ＳＲＡＭ２のデータメモリＤＭをＤＲＡＭ４のタグメモリとして利用し、ＤＲＡＭ４をＬ２キャッシュとして利用することを可能にするようにフィールドが構成されたメモリ参照アドレス（図２に示した物理アドレスの下段のアドレス）を発生する。プロセッサ・コア１がこのようなメモリ参照アドレスを発生することにより、ハードウエア・アーキテクチュアＨＡが有効に機能するようになる。モード選択部ＭＳは、プロセッサ・コア１で処理する実行対象プログラムが有するワーキングセット・サイズに応じて、タグ・モード及びキャッシュ・モードのいずれか一方を選択する。このようなモード選択部ＭＳを備えていると、ワーキングセット・サイズに応じてキャッシュメモリ装置の容量を自動的に設定することができる。ハードウエア・アーキテクチュアＨＡの一部を構成するこれらの専用の構成要素は小規模かつ容易に実装でき、アクセス時間や実装面積に与える影響は無視できるほど小さい。なお図２には、タグの参照とデータの読み取りのために必要なハードウエア・アーキテクチュアＨＡの構成を示してあるが、データの書込のためのハードウエア・アーキテクチュアＨＡの構成については公知技術を援用または利用しているため図示を省略してある。図示しないデータの書込のためのハードウエア・アーキテクチュアＨＡは、次の書込動作を実行するように構成されている。まずキャッシュ・モードでは、ＳＲＡＭ２のデータメモリＤＭにデータを格納するとともに、タグメモリＴＭにデータメモリＤＭに格納したデータのタグを格納し、ＤＲＡＭ４は使用しない。そしてタグ・モードでは、ＤＲＡＭ４をＬ２キャッシュとしてデータをＤＲＡＭ４に格納し、ＳＲＡＭ２のデータメモリＤＭにＤＲＡＭ４に格納したデータのタグを格納する。ＳＲＡＭ２のタグメモリＴＭは使用しない。
【００３２】
タグ・モード時のデータ読出しは以下の流れで行われる。インデックスＩＤは上位のＣＤＬＳＷＳ／ＣＳＬＤＷＤビットと下位ＩＳビットの２つに分割される。まず、デコーダＤを用いて、下位ＩＳビットでＳＲＡＭ２の1 セット（全てのキャッシュライン）に格納されている全タグを読出す。次に、上位ＣＤＬＳＷＳ／ＣＳＬＤＷＤビットで1 セット（全てのキャッシュライン）に格納されているすべてのタグからＷＤ個のタグを選択する。以降は通常のキャッシュと同様、メモリ参照アドレスより得たタグとＷＤ個のタグを比較回路ＣＣ２で比較し、一致するものが存在すればヒット、存在しなければミスとなる。ヒットの場合には、比較回路ＣＣ２の出力は、専用マルチプレクサＭＵＸ４により選択されて出力許可信号として出力される。出力許可信号を受けて、専用マルチプレクサＭＵＸ３が、インデックスＩＤを用いて上層ダイ５のＤＲＡＭ４から読出されたデータから当該タグに対応するデータを選択する。そして専用マルチプレクサＭＵＸ５は、専用マルチプレクサＭＵＸ３が選択したデータをプロセッサ・コア１に出力する。
【００３３】
キャッシュ・モードにおいては、通常のキャッシュ動作と同じである。まず、デコーダＤを用いて、インデックスＩＳビットでＳＲＡＭ２のタグメモリＴＭに格納されている全タグを読出す。次に、インデックスＩＳビットですべてのタグからＷＳ個のタグを選択する。以降は通常のキャッシュと同様、メモリ参照アドレスより得たタグとＷＳ個のタグを比較回路ＣＣ１で比較し、一致するものが存在すればヒット、存在しなければミスとなる。ヒットの場合には、比較回路ＣＣ１の出力は、専用マルチプレクサＭＵＸ４により選択されて出力許可信号として出力される。出力許可信号を受けて、専用マルチプレクサＭＵＸ１が、インデックスＩＳを用いてＳＲＡＭ２のデータメモリＤＭから読出されたデータから当該タグに対応するデータを選択する。そして専用マルチプレクサＭＵＸ５は、専用マルチプレクサＭＵＸ１が選択したデータをプロセッサ・コア１に出力する。
【００３４】
ただし、図３で示したタグ情報のマッピング、ならびに、図２のハードウエア・アーキテクチャを前提とした場合、ＳＲＡＭ２が正しく動作するためには以下の条件を満足する必要がある。
【００３５】
＊下層タグ３のＳＲＡＭ２と上層タグ５のＤＲＡＭ４の連想度が２のべき乗であること。この条件を満たさない場合、インデックスの上位ビットではビット数が不足し、１つのキャッシュラインに格納されている複数のタグから正しくタグを選択できないためである。
【００３６】
＊下記の条件式を満たすこと。
【数１】
2010250511.tif 000003
【００３７】
この条件を満たさない場合には、タグ・モード動作時において、ＤＲＡＭ４のタグ読出しのためにＳＲＡＭ２の複数セットにアクセスする必要が生じる。
【００３８】
＊下記条件式を満たすこと。
【数２】
2010250511.tif 000004
【００３９】
この条件を満たさない場合は、ＤＲＡＭ４の全てのタグをＳＲＡＭ２のデータメモリに格納できない。
【００４０】
次に、動作モード切り替え方針について説明する。プログラムが必要とするキャッシュ容量は、プログラム間ならびにプログラム内にて変化する。これに対し、本実施の形態のキャッシュメモリ装置では、動作モードの変更によりＤＲＡＭ４を選択的に活用し、プログラム実行に応じた適切なＬ２キャッシュサイズを実現する。したがって、本実施の形態の有効性は、「如何に適切に動作モードを切り替え可能か？」に大きく依存する。動作モード選択に関しては、少なくとも以下２つの選択肢が考えられる。
【００４１】
＊静的切り替え：プログラムの実行前にいずれの動作モードがより高性能となるかを予測し、それに基づきプログラム実行開始時に動作モードを設定する。また、プログラム実行中は動作モードを変更しない。動作モード切り替えに要するオーバヘッドは殆ど発生しないという利点がある。しかしながら、同一プログラムにおいても入力データによって２つの動作モードの優劣が大きく異なる場合には適切な動作モードの予測が難しい。また、プログラム実行におけるメモリ参照の振舞いの変化には対応できない。
【００４２】
＊動的切り替え：プログラム実行中に動作モードを切り替える。プログラム実行におけるメモリ参照の振舞いの変化にも追従できるため、静的切り替えよりも大きな性能向上を期待できる。図４は、モード選択手段ＭＳを、プログラムを利用して実現する場合のプログラムのアルゴリズムの一例を示している。このアルゴリズムでは、ステップＳＴ１で最初にキャッシュ・モードを選択する。次にステップＳＴ２で、予め定めた時間内においてＳＲＡＭ２のデータメモリの読み取り回数（アクセスしてデータが読み取られた回数）が予め定めた回数（Ｎ）に達するか否かが判定される。予め定めた時間内の読み取り回数が少ないことは、プログラムが必要とするデータが、ＳＲＡＭ２のデータメモリに殆ど格納されておらず、主メモリからの読み取り回数が多いことを意味する。このような状態では、大容量のキャッシュメモリを用意しないとキャッシュメモリが直ぐに満杯状態になる。読み取り回数が多い場合には、ステップＳＴ３でキャッシュ・モードが継続される。読み取り回数が多い場合には、ステップＳＴ５でタグ・モードを選択する。以後タグ・モードでキャッシュメモリ装置は動作する。タグ・モードを選択した後、ステップＳＴ６で予め定めた時間内においてタグ・モードの利用条件が満たされているか否かの判定が行われる。ここで利用条件を満たさない場合とは、例えば、書込回数が少なくなり且つ読み出されるデータの種類が少なくなった場合や、実行されているプログラムの種類が大容量のキャッシュを必要としないものに変わった場合等のように、大容量のキャッシュメモリが必要なくなる状況ができた場合である。この場合には、ステップＳＴ１へと戻ってキャッシュ・モードとなる。なおモードが変わる際には、それまでメモリに記憶されていた状態は、一度キャンセルさせる。ステップＳＴ４及びステップＳＴ７で終了が判断されると、動作は終了する。
【００４３】
上記実施の形態のキャッシュメモリ装置によれば、実行対象プログラムが有するワーキングセット・サイズに応じて上層ダイ５のＤＲＡＭ４を選択的に活用することで、小容量かつ高速のＬ２キャッシュと大容量の低速Ｌ２キャッシュの使い分けを可能にする。これにより、従来のＤＲＡＭスタック法と比較して、より高いメモリ性能を実現することができる。これに加えて、下層ダイ３のＳＲＡＭ２がキャッシュ・モードとして動作する際にはＤＲＡＭ４は使用されない。そのため、消費エネルギー削減効果も期待できる。一方実際の実装においては、下層ダイ３の面積が増加するといった問題がある。原因は次の２つである。まず、マルチプレクサ等の追加により回路規模が増大する。しかしながら、通常、キャッシュ面積の殆どはメモリアレイが占める。したがって、この面積拡大による影響は無視できる程度に小さいと考えられるので大きな問題は生じない。
【００４４】
図１乃至図４で説明した実施の形態を上位概念で一般化した場合について、図５（Ａ）を用いて説明する。本発明のキャッシュメモリ装置を一般化すると、プロセッサ・コアと、順次容量が大きくなる、一次キャッシュメモリＭ１からｎ次キャッシュメモリ（ｎは２以上の整数）Ｍｎを備えたメモリ階層構造と、図示しないプロセッサ・コア１０とメモリ階層構造ＭＬとを接続して制御するための図示しないハードウエア・アーキテクチュアＨＡとを有する。ハードウエア・アーキテクチュアＨＡは、ｍ次キャッシュメモリ（但しｍは１以上ｎ−１以下の整数）Ｍｍのデータメモリをｍ＋１次キャッシュメモリＭｍ＋１のタグメモリとして利用してｍ＋１次キャッシュメモリへのデータの書込動作及び読み出し動作を、プロセッサ・コア１０が実行することを可能にするタグ・モードと、ｍ＋１〜ｎ次キャッシュメモリＭｍ＋１を利用せず且つ１次キャッシュメモリＭ１からｍ次キャッシュメモリＭｍをそのままキャッシュメモリとして利用して１次キャッシュメモリＭ１からｍ次キャッシュメモリＭｍへのデータの書込動作及び読み出し動作を、プロセッサ・コア１０が実行することを可能にするキャッシュ・モードとを選択的に実現きるように構成されている。プロセッサ・コア１０が実行する実行対象プログラムが有するワーキングセット・サイズが小さいときには、ｍ次キャッシュメモリＭｍまでのキャッシュメモリをそのままキャッシュメモリとして利用し、ｍ＋１次以上のキャッシュメモリは利用しない。そしてプロセッサ・コア１０が実行する実行対象プログラムが有するワーキングセット・サイズが大きくなると、ｍ次キャッシュメモリのデータメモリをｍ＋１次キャッシュメモリＭｍ＋１のタグメモリとして利用して、ｍ＋１次キャッシュメモリＭｍ＋１へのデータの書込動作及び読み出し動作をプロセッサ・コア１０が実行する。
【００４５】
一般化した場合においても、ハードウエア・アーキテクチュアＨＡは、プロセッサ・コア１０で処理する実行対象プログラムが有するワーキングセット・サイズに応じて定められたタグ・モードまたはキャッシュ・モードのいずれを実現するのかを判定するモード判定部ＭＤを備えている。キャッシュメモリ装置では、モード判定部ＭＤがタグ・モードまたはキャッシュ・モードを判定すると、ハードウエア・アーキテクチュアＨＡがタグ・モードまたはキャッシュ・モードを実現できる構成となる。したがってキャッシュメモリの容量の変更を簡単に実現できる。
【００４６】
なおモード判定部ＭＤがキャッシュ・モードを判定すると、プロセッサ・コア１０は、ｍ次キャッシュメモリをそのままキャッシュメモリとして利用し、ｍ＋１次キャッシュメモリ〜ｎ次キャッシュメモリＭｍ〜Ｍｎを利用しないようにフィールドが構成されたメモリ参照アドレスを発生するようにする。またモード判定部がタグ・モードを選択すると、プロセッサ・コアは、ｍ次キャッシュメモリＭｍのデータメモリをｍ＋１次キャッシュメモリＭｍ＋１のタグメモリとして利用し、ｍ＋１次キャッシュメモリをデータメモリとして利用することを可能にするようにフィールドが構成されたメモリ参照アドレスを発生するようにする。
【００４７】
なおハードウエア・アーキテクチュアＨＡは、プロセッサ・コア１０で処理する実行対象プログラムが有するワーキングセット・サイズに応じて、タグ・モード及びキャッシュ・モードのいずれか一方を選択するモード選択部ＭＳを更に備えている。このようなモード選択部ＭＳを備えていると、ワーキングセット・サイズに応じてキャッシュメモリ装置の容量を自動的に設定することができる。
【００４８】
なお、ｍ＋１次キャッシュメモリＭｍ＋１を大容量メモリとして使用する場合には、前述のメモリ参照アドレス中のインデックス・フィールドは、ｍ次キャッシュメモリＭｍのデータメモリに含まれる１つのキャッシュラインに、ｍ＋１次キャッシュメモリＭｍ＋１に含まれる２以上のデータに対応する複数のタグが格納されることを許容するように構成されているのが好ましい。このようにするとｍ次キャッシュメモリＭｍのデータメモリをｍ＋１次キャッシュメモリＭｍ＋１のタグメモリとして最大限利用することができる。
【００４９】
図５（Ｂ）は、図５（Ａ）に示した一般化した本発明において、ｍ＝１、ｎ＝２とした場合［一次キャッシュメモリＭ１（Ｌ１キャッシュ）及び二次キャッシュメモリＭ２（Ｌ２キャッシュ）を備える場合］に本発明を適用したキャッシュメモリ装置の構成を示している。図５（Ｃ）は、ｍ＝ｎ−１、ｎ＝ｎとした場合［一次キャッシュメモリＭ１（Ｌ１キャッシュ）〜ｎ次キャッシュメモリＭｎ（Ｌｎキャッシュ）を備える場合］に本発明を適用したキャッシュメモリ装置の構成を示している。図５（Ｂ）及び（Ｃ）に示すように、ハードウエア・アーキテクチュアＨＡはｎ−１次キャッシュメモリＭｎ−１が実装されるダイに構築される。
【００５０】
次に、図１乃至図４で説明した実施の形態により従来よりも性能が向上することを確認するためにシミュレーションした結果について説明する。シミュレーションには下記の４種類のキャッシュメモリ装置を用いた。
【００５１】
「2D-BASE」：ベースプロセッサとＬ１キャッシュとＬ２キャッシュを用いる従来のキャッシュメモリ装置。Ｌ１キャッシュ・ミスが発生した際には、常にＳＲＡＭ実装されたＬ２キャッシュにアクセスする。
【００５２】
「3D-CONV」：従来のＤＲＡＭスタック法によりスタックしたキャッシュメモリ装置。上層ダイのＤＲＡＭはＬ２キャッシュとして動作する。Ｌ１キャッシュ・ミスが発生した際には、ＳＲＡＭで実装されたタグメモリにアクセスしヒット/ミス判定を行うと同時に、上層ダイのＤＲＡＭより当該データを読出す（読出しアクセスの場合）。
【００５３】
「3D-HYBRID-STATIC」：静的モード切り替えに基づく本発明の実施の形態のキャッシュメモリ装置。図２で示すように、実行対象プログラムのワーキングセット・サイズに応じてプログラム実行開始時にタグ・モードもしくはキャッシュ・モードのいずれかを設定する。プログラム実行中には動作モードの変更は行わない。ここで、より高い性能を達成できる動作モードは既知であると仮定する。具体的には、各ベンチマーク・プログラムにおいて評価時と同一入力を用いた事前解析を行い、ハイブリッド・キャッシュの動作モードを決定した。
【００５４】
「3D-HYBRID-DYNAMIC」：動的モード切り替えに基づく本発明の実施の形態のキャッシュメモリ装置。図２で示すように、実行対象プログラムのワーキングセット・サイズに応じてプログラム実行中にタグ・モードもしくはキャッシュ・モードのいずれかを選択する。また、動作モード切り替えに要する性能オーバヘッドは発生しない。ここで、プログラム実行での各区間（１区間は１０万Ｌ２キャッシュ・アクセス）それぞれにおいて、より高い性能を達成できる動作モードは既知であると仮定する。具体的には、タグ・モードならびにキャッシュ・モードそれぞれに関して評価時と同一入力を使用した事前実行を行い、より高い性能を達成可能な動作モードを解析した。評価にはミシガン大学で開発されたＭ５シミュレータ [Puttaswamy, K. and Loh, G.H.: Implementing Caches in a 3D Technology for High Performance Processors, ICCD ’05: Proceedings of the 2005 International Conference on Computer Design, IEEE Computer Society, pp.525−532 (2005)] を用いた。
【００５５】
また、評価指標は下記の式（１） で表される平均メモリアクセス時間ＡＭＡＴ（Average Memory Access Time） とする。
【数３】
2010250511.tif 000005
【００５６】
上記式においては、
HTL1/HTL2：L1/L2キャッシュ・ヒット時間[cycles]
MRL1/MRL2：L1/L2キャッシュ・ミスの割合
MMAT：主記憶のアクセス時間[cycles]
である。各種コンフィギュレーション設定値を図６の表及び図７の表にまとめて表示した。ベンチマークプログラムは、SPEC-CPU2000 ベンチマークセット（Jin, Z. and Cheng, A.C.: Evolutionary Benchmark Subsetting, IEEE Micro, Vol.28, No.6,pp.20−36 (2008)) から１３個（入力はtrain）、Splash２ベンチマークセット（Woo, S.C., Ohara, M., Torrie, E., Singh, J.P. and Gupta, A.: The SPLASH-2 programs: characterization and methodological considerations, ISCA ’95: Proceedings of the 22nd annual international symposium on Computer architecture, ACM, pp.24−36 (1995)) から８個（入力は図８の表）を選択した。
【００５７】
評価結果を図９及び図１０ に示す。それぞれの図において、横軸はベンチマークプログラム、縦軸はベースプロセッサに対するメモリ性能向上比である。各ベンチマークプログラムにおいて、左から2D-BASE、3D-CONV、3D-HYBRID-STATIC、ならびに、3D-HYBRIDDYNAMICの性能向上比を表す。本実施の形態のキャッシュメモリ装置の性能向上効果について考察する。静的動作モード選択方式である3D-HYBRID-STATIC では、上層ＤＲＡＭの活用により性能が低下するプログラムを実行する際にはキャッシュ・モードとして動作する。そのため、3D-CONV において性能低下が発生するプログラムに関しては、2D-BASE と同じ性能になる。これにより、全ベンチマークの平均では、2D-BASE に対して約31%、3D-CONV に対して約35%の性能向上を実現している。一方、動的動作モード選択方式である3D-HYBRID-DYNAMICでは、全てのベンチマーク・プログラムにおいて性能向上を達成している。また、181．mcf、188．ammp、ならびに、Ocean に関しては、3D-HYBRID-STATIC よりも更なる高性能化を実現する。平均すると、2D-BASE に対して約38%、3D-CONV に対して約43%の性能向上となる。しかしながら、181．mcf 等を除く多くのベンチマークにおいて、3D-HYBRID-STATICからの性能改善は平均で約5%と低かった。これは、181．mcf 等を除く多くのベンチマークプログラムがプログラム実行中殆どの区間においてキャッシュ・モードが高性能となる、もしくはタグ・モードが高性能となるためである。図１１ にSplash２ベンチマークプログラムの3D-HYBRID-DYNAMIC においてタグ・モードが高性能となる区間の割合Ratetag を示す。図１１の表から分かるように、Ocean やFMM 以外のプログラムはタグ・モードが高性能となる区間が0%、もしくは100% に近い。FMM は50%に近いが、キャッシュ・モードが高性能となる区間では、タグ・モードの性能に対し性能向上が低いため、3D-HYBRID-STATIC に対する性能向上が低い。
【産業上の利用可能性】
【００５８】
本発明によれば、実行対象プログラムが有するワーキングセット・サイズに応じた適切な容量のキャッシュメモリ装置を簡単に構成することができる。
【符号の説明】
【００５９】
１  プロセッサ・コア
２  ＳＲＡＭ
３  下層ダイ
４  ＤＲＡＭ
５  上層ダイ
【図１】
2010250511.tif 000006
【図２】
2010250511.tif 000007
【図３】
2010250511.tif 000008
【図４】
2010250511.tif 000009
【図５】
2010250511.tif 000010
【図６】
2010250511.tif 000011
【図７】
2010250511.tif 000012
【図８】
2010250511.tif 000013
【図９】
2010250511.tif 000014
【図１０】
2010250511.tif 000015
【図１１】
2010250511.tif 000016