(57)【要約】　　　（修正有）【課題】仮想メモリを管理するための方法およびプロファイリング・キャッシュを提供すること。【解決手段】プロファイリング・キャッシュの各エントリは、ページ・アドレス、タイム・スタンプ、および最長時間未使用（ＬＲＵ）カウントを含み、ＬＲＵカウントはページ・アドレスのアクセスごとに更新され、各エントリはＬＲＵカウントを使用して放出される。変換索引バッファ（ＴＬＢ）は、一時的にピン固定される複数のエントリを格納する第１のＴＬＢセクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含む。ＴＬＢの割込みに応答して、先入れ先出しアルゴリズムを使用してピン固定されていないエントリを置き換えて、１つのエントリが第２のＴＬＢセクションにロードされる。第１のＴＬＢ部分は、最も古いタイム・スタンプを有するプロファイリング・キャッシュ内の１組のエントリを使用して定期的に更新される。【選択図】図１
2004133933.tif 000002
【特許請求の範囲】
【請求項１】
　各エントリがページ・アドレス、前記ページ・アドレスのタイム・スタンプ、および前記ページ・アドレスのアクセスごとに更新される最長時間未使用（ＬＲＵ）カウントを含む１組のエントリをプロファイリング・キャッシュ内に格納するステップと、
　前記ＬＲＵカウントを使用して前記プロファイリング・キャッシュ内のエントリを放出するステップと、
　一時的にピン固定される複数のエントリを格納する第１の変換索引バッファ（ＴＬＢ）セクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含むＴＬＢを提供するステップと、
　ＴＬＢの割込みに応答して、先入れ先出しアルゴリズムを使用して前記ピン固定されないエントリのうちの１つを置き換えて前記第２のＴＬＢセクション内にエントリをロードするステップと、
　最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリを使用して前記第１のＴＬＢセクションを定期的に更新するステップと
　を備える仮想メモリを管理するためのプロファイリング・キャッシュを使用する方法。
【請求項２】
　最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリが最も頻繁に使用されるページ・テーブル・エントリを表す請求項１に記載の方法。
【請求項３】
　前記第１のＴＬＢセクションを定期的に更新するステップが、満了した下方カウンタを識別するステップと、前記第１のＴＬＢセクションを更新するステップと、前記プロファイリング・キャッシュをクリアするステップと、下方カウンタを再開するステップとを含む請求項１に記載の方法。
【請求項４】
　前記第１のＴＬＢセクションの更新に応答して、前記第２のＴＬＢセクション内の前記ピン固定されない複数のエントリをクリアするステップを含む請求項１に記載の方法。
【請求項５】
　前記第１のＴＬＢセクションを定期的に更新するステップが、最も古いタイム・スタンプを有する前記識別されたプロファイリング・キャッシュ・エントリ内に含まれる前記第２のＴＬＢセクション内のエントリを識別し、前記第２のＴＬＢセクションから前記エントリを取り除き、前記第１のＴＬＢセクション内に前記エントリを入れるステップを含む請求項１に記載の方法。
【請求項６】
　一時的にピン固定される複数のエントリを格納する第１のＴＬＢセクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含むＴＬＢと、
　各エントリがページ・アドレス、前記ページ・アドレスのタイム・スタンプ、および前記ページ・アドレスのアクセスごとに更新される最長時間未使用（ＬＲＵ）カウントを含む１組のエントリを格納するプロファイリング・キャッシュと、
　最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリを使用して前記第１のＴＬＢセクションを定期的に更新する仮想メモリ管理プログラムと
　を備える仮想メモリを管理するための装置。
【請求項７】
　前記ピン固定されない複数のエントリを格納する前記第２のＴＬＢセクションが先入れ先出し（ＦＩＦＯ）アルゴリズムを使用して更新される請求項６に記載の仮想メモリを管理するための装置。
【請求項８】
　前記プロファイリング・キャッシュが前記最長時間未使用（ＬＲＵ）カウントを使用して更新される請求項６に記載の仮想メモリを管理するための装置。
【請求項９】
　ＴＬＢの割込みに応答してエントリが前記第２のＴＬＢセクションにロードされる請求項６に記載の仮想メモリを管理するための装置。
【請求項１０】
　先入れ先出しアルゴリズムを使用して前記ピン固定されないエントリの１つを置き換えて前記エントリをロードする請求項９に記載の仮想メモリを管理するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般にデータ処理分野に関し、より詳細には、仮想メモリを管理するための方法およびプロファイリング・キャッシュに関する。
【背景技術】
【０００２】
　データ・アクセス時間を低減するために、キャッシュと呼ばれる静的ランダム・アクセス・メモリ（ＲＡＭ）の専用高速メモリ・スペースを使用して現在使用中のデータを一時的に格納する。例えば、キャッシュされたデータには、プロセッサから迅速にアクセスできるようにするために主記憶装置から取得された命令またはデータあるいはその両方のコピーなどがある。プロセッサ・キャッシュは、一般にプロセッサの近くに配置されているか、プロセッサに一体化されている。プロセッサは、停止してより高レベルのキャッシュ・メモリなどの補助メモリまたはメイン・メモリからデータの取出しを待つ必要なく、処理の続行に必要なデータを取り出す１回のプロセッサ・サイクルのみでキャッシュに格納されているデータにアクセスすることができるので有利である。
【０００３】
　プログラムは、ロード命令、ストア命令、ブランチ命令、またはキャッシュ命令を実行するとき、および次の順次命令を取り出すときに、プロセッサによって算出された有効アドレスを使用して記憶装置を参照する。有効アドレスは、あらかじめ定義されている変換手順に従って実アドレスに変換される。アドレス変換時間を最小限に抑えるために、一般に変換索引バッファ（ＴＬＢ）と呼ばれるアドレス変換専用の特殊キャッシュがアドレス変換に使用される。
【０００４】
　一部の既知のプロセッサ設計では、ページ記述またはページ・テーブル・エントリ（ＰＴＥ）が変換索引バッファ（ＴＬＢ）に格納される。ＴＬＢ内にないページにアクセスすると、割込みが起こり、ファームウェアがページ・テーブル・エントリをＴＬＢにロードしなければならない。
【０００５】
　一部の既知のハードウェアでは、ファームウェアにはどのページが頻繁に使用されているかを知らせる方法がない。ページ記述は一般に、先入れ先出しアルゴリズムを使用してロードされ、置き換えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
　仮想メモリを管理するための改良された機構が必要である。
【０００７】
　本発明の主な目的は、仮想メモリを管理するための方法およびプロファイリング・キャッシュを提供することである。本発明の他の重要な目的は、実質的に悪影響がなく、従来技術の構成の多くの欠点を克服するこうした仮想メモリを管理するための方法およびプロファイリング・キャッシュを提供することである。
【課題を解決するための手段】
【０００８】
　簡単に言えば、仮想メモリを管理するための方法およびプロファイリング・キャッシュが提供される。１組のエントリがプロファイリング・キャッシュに格納される。１組のエントリの各エントリは、ページ・アドレス、ページ・アドレスのタイム・スタンプ、および最長時間未使用（ＬＲＵ）カウントを含む。ＬＲＵカウントは、ページ・アドレスのアクセスごとに更新される。プロファイリング・キャッシュ内のエントリは、格納されたＬＲＵカウントを使用して放出される。変換索引バッファ（ＴＬＢ）は、一時的にピン固定される複数のエントリを格納する第１のＴＬＢセクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含む。ＴＬＢの割込みに応答して、先入れ先出しアルゴリズムを使用してピン固定されないエントリの１つを置き換えて、１つのエントリが第２のＴＬＢセクションにロードされる。第１のＴＬＢ部分は、最も古いタイム・スタンプを有するプロファイリング・キャッシュ内の１組のエントリのうちの識別されたエントリを使用して定期的に更新される。
【０００９】
　本発明の特徴によれば、プロファイリング・キャッシュ・ハードウェアはメモリ・プロファイリング情報を提供して、効率的なメモリ管理を行えるようにする。最も古いタイム・スタンプを有するプロファイリング・キャッシュ・エントリは、最も頻繁に使用されたページを表す。カウントダウン式の下方カウンタ（downward counter）が満了すると、第１のＴＬＢ部分が更新され、次いでプロファイリング・キャッシュがクリアされ、下方カウンタが再開される。
【００１０】
　本発明は、上記および他の目的および利点とともに、図面に示した本発明の好ましい実施形態の以下の詳細な説明から最もよく理解することができる。
【発明を実施するための最良の形態】
【００１１】
　ここで図１の図面を参照すると、参照記号１００でおおまかに示した好ましい実施形態の仮想メモリ管理を実装するコンピュータ・システムを示している。コンピュータ・システム１００は、プロセッサ１０２および変換索引バッファ（ＴＬＢ）１０４を含む。コンピュータ・システム１００は、プロセッサＬ１キャッシュ１０６と、最長時間未使用（ＬＲＵ）テーブル１１０およびタイム・スタンプ・テーブル１１２とを含むプロファイリング・ページ・アドレス・キャッシュ１０８を含む。コンピュータ・システム１００は、下方カウンタ１１４を含む。下方カウンタ１１４は、０に達すると、プロセッサ１０２に対して割込みを引き起こし、プロファイリング・ページ・アドレス・キャッシュ１０８にフリーズするように合図する。コンピュータ・システム１００は、好ましい実施形態のオペレーティング・システム１２０および仮想メモリ管理プログラム１２２を含む。コンピュータ・システム１００は簡略化して示されているが、本発明を理解するには十分である。本発明は、例えば図１で示したような単一のＣＰＵなど、図示したコンピュータ・モデルとの併用に限定されるものではないことを理解されたい。
【００１２】
　本発明の特徴によれば、オペレーティング・システム１２０は、ファームウェアの過度のオーバーヘッドを要することなくどのページをＴＬＢ１０４内で一時的にピン固定するかを決定することができる。本発明のハードウェア部分すなわちプロファイリング・キャッシュ１０８は、Ｌ１キャッシュ・インターフェース１０６にあるプロセッサ・バスを監視し、最もアクセスされたページを追跡して効率的なメモリ管理を行う。ＴＬＢ１０４内で一時的にピン固定されるべきページ・テーブル・エントリ（ＰＴＥ）は、プロファイリング・キャッシュ１０８に格納されている最も頻繁に使用されるページに基づいて識別される。
【００１３】
　本発明の特徴によれば、ＴＬＢ１０４は、２つの部分、つまりセクション１３０および１３２に分割される。ＴＬＢ１０４の第１のＴＬＢセクション１３０内にあるエントリは、アクセス度の高いページ用に使用され、定期的に評価される。ＰＴＥは、第１のＴＬＢセクション１３０内で一時的にピン固定される。残りのエントリを含むＴＬＢ１０４の第２のＴＬＢセクション１３２は、ファームウェアのオーバーヘッドの低減のためにＦＩＦＯとして管理され、これらのページはピン固定されないものとみなされる。ＴＬＢの割込みが受信されると、非ピン固定部分１３２内のエントリのみが置き換えられる。図２および図３に関連して示し説明するように、好ましい実施形態によれば、一時ピン固定エリア内のＰＴＥは定期的に置き換えられる。
【００１４】
　本発明の特徴によれば、各ページへのアクセスをカウントすることは現実的ではないため、最長時間未使用（ＬＲＵ）アルゴリズムを使用してエントリを放出するページ・アドレス・キャッシュ１０８に事前に設定されている数のアドレスが格納される。例えば３２個のアドレスなど、プロファイリング・ページ・アドレス・キャッシュ１０８のキャッシュ・サイズは、ＡＳＩＣハードウェア・セル・カウントおよび性能の実用上の限界に基づいている。プロファイリングは、最も頻繁にアクセスされるページはキャッシュ１０８から放出されないという仮定に基づいている。図１に示すように、ページ・アドレス・キャッシュ１０８のキャッシュ・サイズは３２であり、１６ページのみがＴＬＢ１０４のピン固定部分１３０に使用されているので、キャッシュ１０８のＬＲＵ挙動によってノイズを取り除くことができる。
【００１５】
　エントリが初めてページ・アドレス・キャッシュ１０８に入れられると、時間値がタイム・スタンプ・テーブル１１２に保存され、ＬＲＵテーブル１１０のＬＲＵカウントがアクセスごとに更新される。ＬＲＵによってキャッシュ１０８内で最も長く続く（最も古いタイム・スタンプの）エントリ０〜３１が最も頻繁にアクセスされたページである。あるページが強制的に放出されてキャッシュ１０８に戻ってきた場合、そのページには新しいタイム・スタンプ１１２が割り当てられる。カウントダウン・タイマとして働く下方カウンタ１１４が満了すると、ファームウェアは、ＴＬＢ１０４内のすべてのエントリを無効にし、あるいは第２のＴＬＢセクション１３２内のエントリが第１のＴＬＢセクション１３０に移動されるときにそれらを無効にする。次いで、最も古いタイム・スタンプの付いた１６のページをマップするＰＴＥが、一時的にピン固定されるページのために確保されているＴＬＢの第１のセクション１３０にロードされる。現時点でページがキャッシュ１０８内で費やした時間は、使用頻度、およびＴＬＢ１０４のピン固定セクション１３０でのこのページのピン固定の重要度を示す。新しいエントリがピン固定されると、キャッシュ１０８はクリアされ、下方カウンタ１１４が再開する。
【００１６】
　図２を参照すると、ブロック２００で開始する好ましい実施形態による変換索引バッファ（ＴＬＢ）１０４の一時ピン固定セクション１３０を定期的に更新するための順次ステップの例を示している。まず、ブロック２０２で示すように、下方カウンタ１１４の満了を待つ。
【００１７】
　また図３を参照すると、ＴＬＢ１０４内にないページにアクセスしたとき、適切なページ・テーブル・エントリを見つけるオペレーティング・システム１２０に対して割込みが起こる。ページ・テーブル・エントリは、先入れ先出し（ＦＩＦＯ）アルゴリズムに基づいてＴＬＢの非ピン固定セクション１３２にロードされる。プロファイリング・ページ・アドレス・キャッシュ１０８は、ページのアドレスを格納する。アドレスが初めてページ・アドレス・キャッシュ１０８に格納されると、カウンタ値がタイム・スタンプ・テーブル１１２に格納される。プロファイリング・キャッシュ１０８は、特定のページ・アドレスにアクセスするたびに更新されるＬＲＵフィールド１１０を含む。ＬＲＵアルゴリズムを使用して、プロファイリング・ページ・アドレス・キャッシュ１０８からエントリを放出する。下方カウンタ１１４が満了すると、キャッシュ・ソート機能３００が３つのフィールド、アドレス１０８、ＬＲＵ１１０、およびタイム・スタンプ１１２のすべてに対して実行される。キャッシュ・ソート機能３００は、格納されている各ページ・アドレスのタイム・スタンプ１１２に基づいている。図３で、プロファイリング・キャッシュ１０８は、格納されているアドレスを示す。
【００１８】
　下方カウンタ１１４が満了すると、図２のブロック２０４で示すように、タイム・スタンプ・テーブル１１２に格納されている最も古いタイム・スタンプの付いた事前に設定されている数のページが識別される。
【００１９】
　決定ブロック２０６に示すように、ブロック２０４で識別されたページごとに、ページをマップするＰＴＥがＴＬＢ１０４の非ピン固定部分１３２にすでにあるかどうかをチェックする。ＰＴＥがＴＬＢ１０４の非ピン固定部分１３２にすでにある場合、決定ブロック２０８に示すように、ＰＴＥは、ＴＬＢ１０４の非ピン固定部分１３２から取り除かれる。次いでＰＴＥは、ブロック２１０に示すように、ＴＬＢ１０４のピン固定部分１３０に入れられる。決定ブロック２１２に示すように、ＴＬＢ１０４のピン固定エリア１３０に追加するＰＴＥがさらにあるかどうかのチェックが行われる。さらにＰＴＥをＴＬＢ１０４のピン固定エリア１３０に追加する場合は、順次ステップがブロック２０６に戻って、ＴＬＢ１０４の非ピン固定部分１３２内にすでにＰＴＥがあるかどうかをチェックする。ＴＬＢ１０４のピン固定エリア１３０に追加するＰＴＥがこれ以上ないときは、ブロック２１４に示すように、プロファイリング・キャッシュ１０８がクリアされる。次いでブロック２１６に示すように、下方カウンタ１１４が再開される。非ピン固定セクション１３２のＴＬＢエントリは、ＴＬＢ１０４のピン固定セクション１３０に移動するまで、あるいは通常のＦＩＦＯまたはラウンド・ロビン置換アルゴリズムによって放出されるまでそのままである。次いで、順次動作がブロック２０２に戻って下方カウンタ１１４が満了するのを待つ。
【００２０】
　本発明に従って代替のステップを実行することができることを理解されたい。例えば、代替の置換ステップ２０６、２０８、２１０、２１２では、ＴＬＢ１０４のピン固定セクション１３０および残りのエリア１３２内のすべてのページ・エントリをクリアすることができ、プロファイリング・キャッシュ１０８内の最も古いタイム・スタンプの付いたページを表すＰＴＥがＴＬＢ１０４のピン固定セクション１３０内に入れられ、ＴＬＢ１０４の非ピン固定セクション１３２は、ミスが起こったときに再度埋められるまでクリアされたままである。
【００２１】
　従来技術のミスをカウントする解決法では、一括してアクセスされるページおよび常にアクセスされるページの優先度は等しい。ミスのカウントは、ＴＬＢ内であるページが何回ミスしたかを知らせるだけであって、ファームウェアが何回特定のページにアクセスしているかを知らせるのではない。ＴＬＢミスは、あるページへの単一のアクセスについて生じる場合もあるが、この単一のアクセスがそのページを重要にすることはない。好ましい実施形態のプロファイリング・キャッシュ方法によって、ＴＬＢ１０４の第１のセクション１３０内で一時的にピン固定されるアクセス度の高いページのＰＴＥで有効なメモリ管理を行うことができる。
【００２２】
　次に図４を参照すると、本発明のコンピュータ・プログラム製品４００を示している。コンピュータ・プログラム製品４００は、フロッピー（Ｒ）・ディスク、光学読取りコンパクト・ディスクまたはＣＤ−ＲＯＭの形の大容量読取専用メモリ、テープ、デジタルまたはアナログ式の通信リンクなど伝送タイプの媒体などの記録媒体４０２を含む。記録媒体４０２は、プログラム手段４０４、４０６、４０８、４１０を媒体４０２に格納して、図１のシステム１００の好ましい実施形態の仮想メモリ管理を実装する方法を実行する。
【００２３】
　一続きのプログラム命令または記録されているプログラム手段４０４、４０６、４０８、４１０によって定義された１つまたは複数の相互関係のあるモジュールの論理アセンブリは、好ましい実施形態の仮想メモリ管理を実施するようコンピュータ・システム１００に命令する。
【００２４】
　本発明は、図面に示した本発明の実施形態の詳細に関連して説明してきたが、これらの詳細は、添付の特許請求の範囲で請求した本発明の範囲を限定するものではない。
【００２５】
　まとめとして、本発明の構成に関して以下の事項を開示する。
【００２６】
（１）各エントリがページ・アドレス、前記ページ・アドレスのタイム・スタンプ、および前記ページ・アドレスのアクセスごとに更新される最長時間未使用（ＬＲＵ）カウントを含む１組のエントリをプロファイリング・キャッシュ内に格納するステップと、
　前記ＬＲＵカウントを使用して前記プロファイリング・キャッシュ内のエントリを放出するステップと、
　一時的にピン固定される複数のエントリを格納する第１の変換索引バッファ（ＴＬＢ）セクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含むＴＬＢを提供するステップと、
　ＴＬＢの割込みに応答して、先入れ先出しアルゴリズムを使用して前記ピン固定されないエントリのうちの１つを置き換えて前記第２のＴＬＢセクション内にエントリをロードするステップと、
　最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリを使用して前記第１のＴＬＢセクションを定期的に更新するステップと
　を備える仮想メモリを管理するためのプロファイリング・キャッシュを使用する方法。
（２）最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリが最も頻繁に使用されるページ・テーブル・エントリを表す上記（１）に記載の方法。
（３）前記第１のＴＬＢセクションを定期的に更新するステップが、満了した下方カウンタを識別するステップと、前記第１のＴＬＢセクションを更新するステップと、前記プロファイリング・キャッシュをクリアするステップと、下方カウンタを再開するステップとを含む上記（１）に記載の方法。
（４）前記第１のＴＬＢセクションの更新に応答して、前記第２のＴＬＢセクション内の前記ピン固定されない複数のエントリをクリアするステップを含む上記（１）に記載の方法。
（５）前記第１のＴＬＢセクションを定期的に更新するステップが、最も古いタイム・スタンプを有する前記識別されたプロファイリング・キャッシュ・エントリ内に含まれる前記第２のＴＬＢセクション内のエントリを識別し、前記第２のＴＬＢセクションから前記エントリを取り除き、前記第１のＴＬＢセクション内に前記エントリを入れるステップを含む上記（１）に記載の方法。
（６）一時的にピン固定される複数のエントリを格納する第１のＴＬＢセクション、およびピン固定されない複数のエントリを格納する第２のＴＬＢセクションを含むＴＬＢと、
　各エントリがページ・アドレス、前記ページ・アドレスのタイム・スタンプ、および前記ページ・アドレスのアクセスごとに更新される最長時間未使用（ＬＲＵ）カウントを含む１組のエントリを格納するプロファイリング・キャッシュと、
　最も古いタイム・スタンプを有する前記プロファイリング・キャッシュ内の前記１組のエントリのうちの識別されたエントリを使用して前記第１のＴＬＢセクションを定期的に更新する仮想メモリ管理プログラムと
　を備える仮想メモリを管理するための装置。
（７）前記ピン固定されない複数のエントリを格納する前記第２のＴＬＢセクションが先入れ先出し（ＦＩＦＯ）アルゴリズムを使用して更新される上記（６）に記載の仮想メモリを管理するための装置。
（８）前記プロファイリング・キャッシュが前記最長時間未使用（ＬＲＵ）カウントを使用して更新される上記（６）に記載の仮想メモリを管理するための装置。
（９）ＴＬＢの割込みに応答してエントリが前記第２のＴＬＢセクションにロードされる上記（６）に記載の仮想メモリを管理するための装置。
（１０）先入れ先出しアルゴリズムを使用して前記ピン固定されないエントリの１つを置き換えて前記エントリをロードする上記（９）に記載の仮想メモリを管理するための装置。
【図面の簡単な説明】
【００２７】
【図１】好ましい実施形態によるコンピュータ・システムを示すブロック図である。
【図２】好ましい実施形態による図１の変換索引バッファの一時ピン固定部分を更新する順次ステップの例を示すフロー図である。
【図３】好ましい実施形態による変換索引バッファの一時ピン固定部分を実装するハードウェアの更新を示す論理フロー略図である。
【図４】好ましい実施形態によるコンピュータ・プログラム製品を示すブロック図である。
【符号の説明】
【００２８】
　１００　コンピュータ・システム
　１０２　プロセッサ
　１０４　変換索引バッファ（ＴＬＢ）
　１０６　プロセッサＬ１キャッシュ
　１０８　プロファイリング・ページ・アドレス・キャッシュ
　１１０　最長時間未使用（ＬＲＵ）テーブル
　１１２　タイム・スタンプ・テーブル
　１１４　下方カウンタ
　１２０　オペレーティング・システム
　１２２　仮想メモリ管理プログラム
　１３０　第１のＴＬＢセクション
　１３２　第２のＴＬＢセクション
　３００　キャッシュ・ソート機能
　４００　コンピュータ・プログラム製品
　４０２　記録媒体
　４０４　プログラム手段
　４０６　プログラム手段
　４０８　プログラム手段
　４１０　プログラム手段
【図１】
2004133933.tif 000003
【図２】
2004133933.tif 000004
【図３】
2004133933.tif 000005
【図４】
2004133933.tif 000006