(57)【要約】【課題】メモリコントローラにおいて、プリフェッチバッファを有効に機能させる。【解決手段】複数のマスタ２２０’〜２２３’からの要求に応じてＤＲＡＭ２３０’〜２３３’に対して読み出し動作を行うメモリコントローラ２００’に、先行読み出し動作の結果を保持するプリフェッチバッファ２０５’と、複数のマスタ２２０’〜２２３’のうち特定のマスタを設定するレジスタと、前記マスタからの読み出し要求時に、当該マスタがレジスタに設定されたマスタであるか否かを判別し、当該設定されたマスタであると判別されれば、前記先行読み出し動作の結果をプリフェッチバッファ２０５’に格納するよう制御する制御回路２０１’とを備える。【選択図】　　　　図４
2004126645.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタからの要求に応じてメモリに対して読み出し動作を行うメモリ制御装置であって、
先行読み出し動作の結果を保持するプリフェッチバッファと、
前記複数のマスタのうち特定のマスタを設定する設定手段と、
前記マスタからの読み出し要求時に、当該マスタが前記設定手段により設定されたマスタであるか否かを判別し、当該設定されたマスタであると判別されれば、前記先行読み出し動作の結果を前記プリフェッチバッファに格納するよう制御する制御手段とを備えることを特徴とするメモリ制御装置。
【請求項２】
前記設定手段は、前記複数のマスタの中から前記特定のマスタを任意に設定可能であることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記複数のマスタとは共有バスを介して接続していることを特徴とする請求項１に記載のメモリ制御装置。
【請求項４】
前記先行読み出し動作は、前記マスタからの要求に対する前記メモリからの読み出し動作と同時に行うことを特徴とする請求項１に記載のメモリ制御装置。
【請求項５】
前記プリフェッチバッファは、データと該データのアドレスと該データの有効性を示すフラグとを含む情報を１ないし複数組格納することを特徴とする請求項１に記載のメモリ制御装置。
【請求項６】
前記マスタからの読み出し要求時に、要求されたアドレスと前記プリフェッチバッファに格納されているデータのアドレスとを比較し、当該データのフラグをチェックして、前記要求されたアドレスと一致し、前記フラグが有効なデータがあれば、当該データを前記マスタのリードデータとして返し、該当するデータがない場合に、当該マスタが前記設定手段により設定されたマスタであれば、前記先行読み出し動作の結果を前記プリフェッチバッファに格納するよう制御することを特徴とする請求項５に記載のメモリ制御装置。
【請求項７】
前記マスタからの書き込み要求時に、要求されたアドレスと前記プリフェッチバッファに格納されているデータのアドレスとを比較し、必要に応じて前記フラグを無効な状態に変更することを特徴とする請求項５に記載のメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、先読み動作を実行可能なメモリ制御装置に関するものである。
【０００２】
【従来の技術】
近年においてもＣＰＵの高速化はとどまるところを知らず、年間１．５倍以上のペースで向上している。これにともない単位時間あたりに主記憶装置との間で転送されるデータ量も同様なペースで増加している。これを緩和するため、メモリアクセスの局所性を利用して高速な記憶アクセスを得るために、ＣＰＵに備えつけられるキャッシュの容量を増大したり、あるいはこれを階層化することが行われている。しかしそれでもＣＰＵの動作速度と主記憶のアクセス速度のギャップの増大を解決することは年々難しくなっている。
【０００３】
これを根本的に解決するには、主記憶それ自体のアクセス速度（メモリバンド幅）を大幅に向上させる必要がある。今日、パーソナルコンピュータ（ＰＣ）などの主記憶装置には、通常半導体メモリであるダイナミックＲＡＭ（ＤＲＡＭ）が用いられている。ＣＰＵの速度向上は半導体デバイス自体の進歩による速度の向上を超えているため、ＤＲＡＭにおいても回路構成あるいは方式面での工夫によりこれを達成しなければならない。
【０００４】
このような経緯から、過去メモリバンド幅を向上させるための様々な方式が考案され実用化されてきたが、最近新たに実用化され注目を浴びている方式としてダイレタトラムバスＤＲＡＭが挙げられる。ダイレクトラムバスＤＲＡＭではチャネルの概念を取り入れ１チャネル当たり最大毎秒１．６ＧＢの高いメモリバンド幅を実現できる。
【０００５】
図１に、ダイレタトラムバスＤＲＡＭのＲＳＬチャネルにおける転送プロトコルの一例を示す。ダイレクトラムバスでは一クロックサイクルあたりクロックの立ち上がり，立ち下がりの両タイミングでデータを転送し、４クロックで一つのパケットを構成する。
【０００６】
図１では、まずサイクル０から３においてｘで指定されるページをアクティベートするロウパケットが発行されている。ここにｘはそれぞれ特定のビット数からなるデバイスＩＤ、バンクアドレス、ロウアドレスの組を表している。次いでサイクル７から１０においてｘ０で指定されるアドレスのデータを読み出すことを指示するカラムパケットが発行されている。ここにｘ０はそれぞれ特定のビット数からなるデバイスＩＤ、バンクアドレス、カラムアドレスの組を表しており、ここにおけるデバイスＩＤ，バンクアドレスｘにおけるものと同一である。
【０００７】
カラムアドレスはページ内の１つのアドレスを指定する。さらにサイクル１１から１４においでｘ１で指定されるアドレスのデータを読み出すことを指示するカラムパケットが発行されている。ここにｘ１はそれぞれ特定のビット数からなるデバイスＩＤ、バンクアドレス、カラムアドレスの組を表しており、ここでもデバイスＩＤバンクアドレスはｘにおけるものと同一である。すなわちこれらロウパケット、カラムパケットの組により、同一デバイス、同一バンク、同一ページ内の２つのアドレスからのリードが実行される。サイクル１９からサイクル２２において、１番目（ｘ０）のリードコマンドに対応するデータがＤＲＡＭから読み出され、サイクル２３からサイクル２６において、２番目〈ｘ１）のリードコマンドに対応するデータがＤＲＡＭから読み出されている。
【０００８】
図１に示す例では、この一連のリード動作と並行して他のバンクからのリードも行われている。すなわちサイクル８から１１においてｙで指定されるページをアクティベートするロウパケットが発行されている。ここにｙは先行するｘとは別のバンク（別のデバイスか同じデバイスの干渉しないバンク）に位置するページを指している。次いでサイクル１５から１８において、ｙ０で指定されるアドレスのデータを読み出すことを指示するカラムパケットが発行されている。ここにｙ０におけるデバイスＩＤ、バンクアドレスは、ｙにおけるものと同一である。更にサイクル１９から２２において、ｙ１で指定されるアドレスのデータを読み出すことを指示するカラムパケットが発行されている。ここでもｙ１におけるデバイスＩＤ，バンクアドレスはｙにおけるものと同一である。
【０００９】
サイクル２７からサイクル３０において、３番目（ｙ０）のリードコマンドに対応するデータがＤＲＡＭから読み出され、サイクル３１からサイクル３４において、４番目（ｙｌ）のリードコマンドに対応するデータがＤＲＡＭから読み出されている。以下、ｚ，ｚ０，ｚ１，ｑ，ｑ０，ｑ１についても同様であり、ｘ，ｙとは干渉しないバンクｚのアクティベートおよびｘ，ｙ，ｚとは干渉しないバンクｑのアクティベートが行われ、５番目（ｚ０）、６番目（ｚ１）、７番目〈ｑ０〉、８番目（ｑ１）のリードコマンドの発行に応じて、それぞれのデータが読み出されている。
【００１０】
このように連続するコマンドがロウパケット、カラムパケット、データパケットの各フェーズ毎にパイプライン動作を行っている。このようにして、ダイレクトラムバスＤＲＡＭでは、４段のパイプラインで３２バイト単位でアクセスした場合に最大のバンド幅が得られる。
【００１１】
それ故、３２バイトより小さいサイズでのアクセスでは実効バンド幅が低下してしまう。例えば連続する３２バイトのデータを一度に３２バイトまとめてリードした場合と、１６バイトずつ２回に分けてリードした場合、前者の方が効率が良く短時間で終了する。
【００１２】
もし３２バイトより小さい単位のアクセスが頻繁に生じるような場合には、メモリコントローラ内にプリフェッチバッファを備えることにより、アクセス効率を向上させることが可能である。
【００１３】
図２は、プリフェッチバッファを備える従来のメモリコントローラの一構成例を説明する図である。
【００１４】
図２において、２００はメモリコントローラであり、システムバス２１０を介して、ＣＰＵやＤＭＡコントローラ、バスブリッジなどのバスマスタ２２０、２２１、２２２、２２３と接続されると共に、ＤＲＡＭ（本例においてはダイレクトＲＤＲＡＭ）２３０、２３１、２３２、２３３と接続される。前記バスマスタ２２０、２２１，２２２、２２３は、システムバス上でのアクセス競合を避けるため、図示されない調停装置によってアクセスを調停され、同時に１つのマスタのみがメモリコントローラ２００にアクセスすることができるようになっている。
【００１５】
２４１は双方向のデータ信号（ＤＱＡ〔８：０〕，ＤＱＢ〔８：０〕）線であり、ライト時はメモリコントローラからＤＲＡＭへ、リード時にはＤＲＡＭからメモリコントローラへデータを伝送する。２４２、２４３はそれぞれロウ信号（ＲＯＷ〔２：０〕）、カラム信号（ＣＯＬ〔４：０〕）線であり、メモリコントローラからＤＲＡＭへそれぞれロウパケット、カラムパケットを伝送する。２４４、２５５はチャネル上のクロック信号（ＣＴＭ，ＣＦＭ）である。
【００１６】
２０１〜２０５は前記メモリコントローラ２００の構成要素である。２０３はシステムバスと接続するためのシステムバスインターフェース回路である。２０４はリード・ライトコマンドを一時格納しておくためのバッファである。２０２はリード・ライトコマンドをメモリチャネル上のプロトコルに翻案しチャネル上に送出し、またリードデータをチャネルから受け取るためのメモリチャネルインターフェース回路である。２０５は必要に応じリードデータの一部とそのアドレスを格納し、また必要に応じ格納するデータをシステムバスインターフェース２０３に転送するプリフェッチバッファであり、保持しているアドレス・データが有効であるか無効であるかを示す図示されない有効フラグを備えている。２０１はメモリコントローラの各ブロックの動作タイミングを制御する制御装置である。
【００１７】
一般にメモリヘのアクセスには局所性があり、メモリ内のある番地からデータが読み出されたとき、連続する番地のデータが短時間のうちに読み出されることが高い確率で期待できる。バスマスタ２２０より１６バイトのリードアクセスが生じたとき、メモリコントローラ２００はその指定されたアドレスのデータとともに、後続のアドレスに存在する１６バイトのデータをも含む３２バイトのデータを、ＤＲÅＭ２３０、２３１、２３２、２３３のいずれかから読み出す。そして指定された１６バイトのデータは、前記システムバス２１０を介してデータを要求した前記バスマスタ２２０に転送し、残りの１６バイトのデータを前記プリフェッチバッファ２０５に格納し保持しておく。その後、前記いづれかのバスマスタより保持しておいた後続アドレスヘのアクセス要求が生じたとき、メモリコントローラ２００はＤＲＡＭに対するリード動作を行わず、代わりにプリフェッチバッファ２０５内に保持しているデータを、システムバスインターフェース２０３を介して、アクセス要求を出したバスマスタに転送する。
【００１８】
例えばバスマスタ２２０からアドレスｈ００１２０番地（ｈは１６進数を表す）からｈ００１２ｆ番地までに格納されている１６バイトのデータに対するリードアクセス要求があったとする。これらアドレスがＤＲＡＭ２３０に割り当てられているとすれば、メモリコントローラ２００はこの要求を受け付け、一旦バッファ２０４に格納し、その後メモリチャネルインターフェース２０２を通じてＤＲＡＭ２３０の当該番地に対するリードコマンドパケットを送出する。このときさらに当該番地の後続の１６バイトを読み出すカラムパケットも送出する。ＤＲＡＭ２３０はこれらリードコマンドに呼応し既定の遅延時間ののち、当該連続番地に格納している合計３２バイトのデータを順次チャネル上に送出する。
【００１９】
メモリコントローラ２００はチャネル上に送出された３２バイトのデータをメモリ、チャネルインターフェース２０２において受け取ると、該データ中前半の１６バイトをシステムバスインターフェース２０３からシステムバス２１０を介しバスマスタ２２０に送信する。
【００２０】
一方、後半の１６バイトについては、その先頭アドレスｈ００１３０番地とともにプリフェッチバッファ２０５に格納するとともに、プリフェッチバッファ２０５の内容が有効であることを示す有効フラグを立てる。その後、再びバスマスタ２２０よりアドレスｈ００１３０番地（ｈは１６進数を表す）からｈ００１３ｆ番地までに格納されている１６バイトのデータに対するリードアクセス要求があった場合、直ちにプリフェッチバッファ２０５内の１６バイトのデータを、システムバスインターフェース２０３からシステムバス２１０を介し、バスマスタ２２０に送信する。このようにしてメモリアクセスの効率を高めるとともに、リードレイテンシを大幅に減少させることができる。
【００２１】
また、リードアクセスが生じて、任意のアドレスのデータをプリフェッチバッファ２０５に格納した後、もし同一アドレスに対してライトアクセスが生じた場合は、メモリコントローラ２００はプリフェッチバッファ２０５の保持する内容を無効化する。前記例においては、ｈ００１３０番地からｈ００１３ｆ番地までの連続する１６バイトのデータをプリフェッチバッファ２０５に格納した後、バスマスタ２２２が同一アドレス範囲ないしはこのアドレス範囲と重複するアドレス範囲に対するライト要求を発行した場合、メモリコントローラ２００はプリフェッチバッファ２０５内の有効フラグを直ちにリセットする。
【００２２】
このようにして古いデータがバスマスタに返されるのを防ぎ、データの一貫性を保つことができる。
【００２３】
【発明が解決しようとする課題】
上述の如く、メモリコントローラにプリフェッチバッファを設けた場合、多くのエントリ（バッファに格納するアドレスとデータの対）を備えると回路規模が増大してしまう。そのため、上記例においては１エントリのみを備えている。このとき、１つのバスマスタのみが存在し、該マスタが局所的にデータをアクセスする場合には、プリフェッチバッファは有効に機能するが、もしバスマスタが複数存在し、それらが交互に異なったアドレス範囲のデータをアクセスする場合、プリフェッチバッファの内容が、参照される前に置き換えられる状況が頻繁に生じ、プリフェッチバッファの有効性が損なわれてしまう。
【００２４】
例えば、図３において、第１サイクルからバスマスタ２２０がｈ１００２０番地からｈ１００２ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行している。この結果として第５サイクルにはプリフェッチバッファ２０５にはｈ１００３０番地からｈ１００３ｆ番地までの１６バイトのデータが格納される。
【００２５】
次いで第６サイクルにおいて、バスマスタ２２３がｈ８ａ４０番地からｈ８ａ４ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行している。これにより、第１０サイクルには、プリフェッチバッファ２０５では、ｈ１００３０番地からｈ１００３ｆ番地までの１６バイトのデータが全く参照されることなくｈ８ａ５０番地からｈ８ａ５ｆ番地までの１６バイトのデータに置き換えられてしまう。
【００２６】
その後第１１サイクルで、バスマスタ２２０が、前回リードしたデータに続くｈ１００３０番地からｈ１００３ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行すると、このアドレスに対応するデータはプリフェッチバッファ２０５にはすでに存在しないので、再びメモリから読み出されることになり、第１５サイクルにはプリフェッチバッファ２０５の内容は後続アドレスｈ１００４０番地からｈ１００４ｆ番地までの１６バイトのデータに置き換えられる。その後、第１６サイクルにおいて、バスマスタ２２３が前回リードしたデータに続くｈ８ａ５０番地からｈ８ａ５ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行すると、このアドレスに対応するデータももはやプリフェッチバッファ２０５内には存在しないので、再びメモリから読み出されなければならない。
【００２７】
このように複数のバスマスタが同時に動作する場合、従来のメモリコントローラでは、少数のエントリのみを備えるプリフェッチバッファを有効に機能させることができないという問題があった。
【００２８】
【課題を解決するための手段】
上記問題点を解決するために、本発明によれば、複数のマスタからの要求に応じてメモリデバイスに対して読み出し動作を行うメモリ制御装置に、先行読み出し動作の結果を保持するプリフェッチバッファと、前記複数のマスタのうち特定のマスタを設定する設定手段と、前記マスタからの読み出し要求時に、当該マスタが前記設定手段により設定されたマスタであるか否かを判別し、当該設定されたマスタであると判別されれば、前記先行読み出し動作の結果を前記プリフェッチバッファに格納するよう制御する制御手段とを備える。
【００２９】
【発明の実施の形態】
以下、図４〜図５に基づき、本発明の１実施形態を説明する。比較のため図２と同一の構成要素については番号に’をつけて示している。
【００３０】
図４が図２と異なる個所はシステムバス２１０’にバスマスタを識別する信号２１１（バスマスタＩＤ）が明示されている点である。これはシステムバス２１０’を成す信号群の一部であるが、説明を明確にするために分離して示しているものであり、そもそもシステムバス２１０に備わる信号であってもよいし、新たに付け加えられるものであっても良い。近年では半導体の集積度が増し、システム全体を集積したシステムＬＳＩが一般化しているが、システムＬＳＩにおいては前記システムバス２１０，はＬＳＩチップ内部に入っており、少数の信号線を追加したとしてもシステム設計上問題とはならない。
【００３１】
本実施形態においては、バスマスタが２２０’〜２２３’の４つの場合を示しているため２本〈ビット〉の信号線より成る。これら４つのバスマスタと図５中のバスマスタＩＤとの関係は図６に示されている。
【００３２】
本実施形態では更に、制御回路２０１に対して、プリフェッチバッファ２０５’を置き換えることが可能なバスマスタを指定するデータを図示しないレジスタに設定するようにし、前記バスマスタを指定するレジスタの内容と前記バスマスタ識別信号２１１とを比較し、一致する場合のみプリフェッチバッファ２０５’の内容を置き換えるようにする変更が加えられている。
【００３３】
いま前記プリフェッチバッファ２０５’を置き換えることが可能なバスマスタを指定するためのレジスタに、バスマスタ２２０’のみを設定した場合を例としてシステムバス上の動作を図５に説明する。
【００３４】
第１サイクルからバスマスタ２２０’がｈ１００２０番地から，ｈ１００２ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行している。メモリコントローラ２００’は、バスマスタ識別信号２１１によりシステムバス上のこのリードアクセス要求がバスマスタ２２０’からのものであることを知ることができ、かつこのバスマスタ２２０’はプリフェツナバッファ２０５’を置き換えることを許可されているので、結果として第５サイクルにはプリフェッチバッファ２０５’にリードアクセスにおいて要求されたアドレスｈ１００２０番地からｈ１００２ｆ番地に続くｈ１００３０番地からｈ１００３ｆ番地までの１６バイトのデータが格納される。
【００３５】
次いで第６サイクルからバスマスタ２２３’がｂ８ａ５０番地から，ｂ８ａ５ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行している。メモリコントローラ２００’はバスマスタ識別信号２１１によりシステムバス上のこのリードアクセス要求がバスマスタ２２３’からのものであることを知ることができ、かつこのバスマスタ２２３’はプリフェッチバッファ２０５’を置き換えることを許可されていないので、このリードアクセスによってはプリフェッチバッファ２０５’の内容に変化はない。
【００３６】
その後第１１サイクルからバスマスタ２２０’が前回リードしたデータに続くｈ１００３０番地からｈ１００３ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行する。前記従来例とは異なり、このアドレスに対応するデータはプリフェッチバッファ２０５’になお存在するので、第１２サイクルでその内容が直ちにシステムバス２１０’を通じてバスマスタ２２０’に渡される。第１４サイクルからバスマスタ２２０’が前回リードしたデータに続くｈ１００４０番地からｈ１００４ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行している。この結果第１８サイクルにはプリフェッチバッファ２０５’はｈ１００５０番地からｈ１００５ｆ番地までの１６バイトのデータに置き換えられる。
【００３７】
以降同様にして、バスマスタ２２０’のみがプリフェッチバッファの内容を置き換えることができるため、バスマスタ２２０’はプリフェッチバッファの機能を有効に利用できる。また第１９サイクルからバスマスタ２２２’が，ｈ１００４０番地から，ｈ１００５ｆ番地まで３２バイトのデータをライトしている。このライトは現在プリフェッチバッファに保持されているアドレス範囲を包含するので、メモリコントローラ２００’はこれら３２バイトのデータを指定されたアドレスにライトするパケットをメモリチャネルに発行すると同時に有効フラグをクリアすることによりプリフェッチバッファ２０５’の内容を無効化する。第２２サイクルからバスマスタ２２０’が前回リードしたデータに続く，ｈ１００５０番地から，ｈ１００５ｆ番地までの１６バイトのデータに対するリードアクセス要求を発行するが、プリフェッチバッファ２０５’の内容はすでに無効化されているため、このリードアクセスはＤＲＡＭからデータを読み出す。従って古いデータがバスマスタ２２０’に渡されることはない。
【００３８】
以上、本実施形態ではプリフェッチバッファの持つエントリ数が１の場合について説明したが、もちろん任意の数のエントリ数の場合にも本発明が適用できることは言うまでもない。多くのエントリを備えるほど、より多くのバスマスタについてプリフェッチバッファを置き換え可能なように設定したとしてもプリフェッチバッファの有効性は低下しない。
【００３９】
また本実施形態においては、プリフェッチバッファに格納されるデータは、バスマスタによりリード要求があったアドレスの後続アドレスに格納されているデータとしているが、リード要求のあった該アドレスのデータを含む３２バイト単位のブロック毎としてもよい。
【００４０】
また本実施形態では、リード要求のあったアドレスのデータはプリフェッチバッファに格納していないが、これを含む３２バイトのデータ全てを格納するようにしても良い。
【００４１】
本実施形態では、説明を簡単にするために、３２バイトおよび１６バイト単位でのリード・ライトアクセスのみを示しているが、より小さいサイズでアクセスしてもよいことは言うまでもない。その場合３２バイト境界から該アクセスデータを含む３２バイトのデータを同時にリードし、プリフェッチバッファに格納すればよい。
【００４２】
本実施形態においては、プリフェッチバッファの保持するデータと重複するアドレス範囲へのライトが生じた場合、プリフェッチバッファの内容を無効化するようにしているが、プリフェッチバッファの内容をライトされるデータと入れ替えるようにしてももちろん良い。
【００４３】
また本実施形態においてはＤＲＡＭとしてダイレクトＲＤＲＡＭを用いる場合を例とし、３２バイト単位の転送時にバンド幅が最大になる場合を示したが、その他どのような種類のＤＲＡＭあるいは記憶デバイスにおいても、それぞれで好適な転送サイズにおいて本発明が適用できることは言うまでもない。
【００４４】
本実施形態においては、プリフェッチバッファの内容を置き換えることができるバスマスタをレジスタ設定によって変更できる場合を説明したが、プリフェッチバッファの内容を置き換えることができるバスマスタを初めから固定しておいてもよい。
【００４５】
【発明の効果】
以上説明したように、本発明によれば、プリフェッチバッファを有するメモリ制御装置において、プリフェッチバッファの内容を置き換えることのできるマスタを制限できるので、複数のバスマスタが同時にメモリにアクセスする場合にもプリフェッチバッファの機能を有効に利用することが可能になるという効果がある。
【図面の簡単な説明】
【図１】ダイレクトＲＡＭＢＵＳチャネル上のメモリアクセスプロトコルの一例を説明する図である。
【図２】従来のメモリコントローラを含むシステムの構成を説明する図である。
【図３】従来例におけるシステムバス上のアクセスタイミング及びプリフェッチバッファの内容を説明する図である。
【図４】本発明の一実施形態のメモリコントローラを含むシステムの構成を説明する図である。
【図５】本発明の一実施形態におけるシステムバス上のアクセスタイミング及びプリフェッチバッファの内容を説明するタイミング図である。
【図６】バスマスタとバスマスタＩＤとの関係表を示す図である。
【図１】
2004126645.tif 000003
【図２】
2004126645.tif 000004
【図３】
2004126645.tif 000005
【図４】
2004126645.tif 000006
【図５】
2004126645.tif 000007
【図６】
2004126645.tif 000008