(57)【特許請求の範囲】
【請求項１】
ＣＰＵとメモリに接続され、ローカルバス上のデバイスから前記メモリに対してダイレクトメモリアクセス（ＤＭＡ）を行うＤＭＡコントローラ回路において、
前記ＣＰＵからのメモリアクセスのアドレスを保持する手段と、前記ＣＰＵのメモリアクセスとＤＭＡのアクセスのアドレスを比較する比較手段を備え、前記アドレスの比較を、ＣＰＵからのアクセス中は、ＤＭＡのリクエストが発生していることを示すリクエスト検出信号が有効である時のみ行い、ＤＭＡのアクセス中は常に行い、前記ＣＰＵのメモリアクセスとＤＭＡのアクセスのアドレスが一致しない場合に、前記メモリに対するプリチャージコマンドの発行をスタートフラグの前に行い、一致する場合には前記プリチャージコマンドを発行せず、
前記ＣＰＵをＤＭＡのアクセス中にホールドすることなく、ＣＰＵからのアクセスを受け付けておいて、ウエイトさせることを特徴とするＤＭＡコントローラ回路。
【請求項２】
前記ローカルバスとメモリバスの調停を別々に行うことにより、ＣＰＵとＤＭＡの処理を並列に行うことを特徴とする請求項１に記載のＤＭＡコントローラ回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリに対してデータのリード、ライトを行うＤＭＡコントローラ回路に関する。
【０００２】
【従来の技術】
ＤＭＡ（ダイレクトメモリアクセス）コントローラ回路は、ＩＯデバイスからのデータを高速にメモリに書き込むために用いられている。従来のＤＭＡコントローラ回路について、図１の回路ブロック図および図８のタイミング図を参照して説明する。図８は、ＣＰＵのメモリライト発生後にＩＯ ｔｏ メモリのＤＭＡが発生し、再びＣＰＵのメモリライトが発生する場合で、ＣＰＵのアクセスとＤＭＡのアクセスのロウアドレスが一致しない場合の動作を説明するタイミング図である。
【０００３】
まず、ＣＰＵのメモリへのライト要求が発生後、ＣＰＵ制御回路は、ＣＰＵアクセススタートフラグを有効にする。また、同時にＣＰＵへのレディ信号を無効にする（Ｔ５１）。
【０００４】
メモリ制御回路は、スタート信号を確認し、この場合初回のアクセスであるのでアクティブコマンドを発行する（Ｔ５２）。同時にＤＭＡリクエストが発生し、ＤＭＡ制御回路は、バスリクエストを有効にし、バス調停回路は、ＣＰＵへのホールドリクエストを有効にする（Ｔ５３）。
【０００５】
ライトコマンド発行後、メモリ制御回路は、メモリアクセス終了フラグ１を有効にする（Ｔ５４）。それを確認したＣＰＵ制御回路は、レディ信号を有効にする（Ｔ５５）。ＣＰＵからのホールドアクノリッジが有効になったことを確認後、バス調停回路は、ＤＭＡ制御回路へのバスアクノリッジを有効にする（Ｔ５６）。それを認識したＤＭＡ制御回路は、ＤＭＡアクセススタートフラグを有効にする（Ｔ５７）。
【０００６】
メモリ制御回路は、ここでロウアドレスが一致していないことを認識し、プリチャージコマンドを発行する。（Ｔ５８）。ライトコマンド発行後、メモリ制御回路は、メモリアクセス終了フラグ２を有効にし（Ｔ５９）、それを認識したバス調停回路は、ＣＰＵへのバスリクエストを無効にする（Ｔ５ａ）。
【０００７】
その直後、再びＣＰＵのメモリライト要求が発生し、ＣＰＵ制御回路は、ＣＰＵアクセススタートフラグを有効にする（Ｔ５ｂ）。ここでメモリ制御回路は、ロウアドレスが一致していないことを確認し、プリチャージコマンドを発行する（Ｔ５ｃ）。ライトコマンド発行後、メモリ制御回路は、メモリアクセス終了フラグ１を有効にする（Ｔ５ｄ）。
【０００８】
従来の動作では、ＤＭＡを行う際にＣＰＵをホールドするというデメリットがある。
【０００９】
また、アドレスの比較を各スタートフラグが発生してから行うので、プリチャージコマンドの発行がスタートフラグの後になってしまい、冗長的な動作をしてしまう。
【００１０】
【発明が解決しようとする課題】
上述したように、従来のＤＭＡコントローラ回路には、ＤＭＡ中はＣＰＵがホールドされるため、ＣＰＵの処理が止められ、調停にも時間がかかるという問題があった。
【００１１】
また、ＣＰＵのメモリアクセスのアドレスとＤＭＡアクセスのアドレスを比較する手段がなかったため、無駄なプリチャージコマンドの発行やコマンド発行の遅れがあり、メモリのアクセス動作に冗長な部分があった。
【００１２】
さらに、ローカルバスとメモリバスの調停を一括で行っていたために、ＣＰＵのアクセスとＤＭＡアクセスの処理は、並列には行われず排他的なものであった。
【００１３】
この発明の目的は、以上のような問題点を解決する、ＤＭＡコントローラ回路を提供することにある。
【００１４】
【課題を解決するための手段】
この発明は、ＤＭＡコントローラ回路内のメモリ制御回路における制御コマンド発生手段の部分に、アドレス比較回路を設けることによりメモリアクセスを高速化し、バスの使用効率を高めることを特徴としている。
【００１５】
ＣＰＵとダイレクトメモリアクセス（ＤＭＡ）を行うＤＭＡコントローラ回路がメモリを共通にリード／ライトするという構成に対し、ＣＰＵ制御回路とＤＭＡ制御回路とバス調停回路とメモリ制御回路を設けている。
【００１６】
バス調停回路は、ＣＰＵ制御回路とＤＭＡ制御回路を介して、ＣＰＵとローカルバス上の動きを監視し、ＤＭＡ中でもＣＰＵをホールドすることなくバスの調停を行う。
【００１７】
ＣＰＵのメモリへのアクセス中にＤＭＡ制御回路からバスリクエストが発生した場合、バス調停回路は、リクエスト検出信号を有効にし、それを受けたメモリ制御回路は、ＣＰＵ制御回路とＤＭＡ制御回路からのアドレスを比較し、メモリに対する無駄なコマンドの発生を防ぎ、効率的な動作を実行する。
【００１８】
従って、バスの使用効率を向上させ、さらに、メモリのアクセス時間を短縮させるという効果が得られる。
【００１９】
【発明の実施の形態】
次に、この発明の実施の形態について図面を参照して説明する。
【００２０】
図１は、この発明のＤＭＡコントローラ回路の実施の形態を示す回路ブロック図である。図１を参照すると、ＤＭＡコントローラ回路１は、ＣＰＵ８とメモリ９に接続されている。ＣＰＵ８は、ＤＭＡコントローラ回路１内のＣＰＵ制御回路２を介してメモリ９へのアクセスを行い、ＤＭＡ制御回路３は、自らバスマスタとなり、メモリ９へのアクセスを行う。メモリ９は、ここでは、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）で構成されている。
【００２１】
ＳＤＲＡＭには、ロウアドレスを設定するコマンド（アクティブコマンド），カラムアドレスを設定すると同時にリードであるかライトであるかを設定するコマンド（リードコマンドおよびライトコマンド）、ロウアドレスをリセットするコマンド（プリチャージコマンド）があり、それらのコマンドを使用して、データのリード／ライトを行う。コマンドの識別は、ＲＡＳ，ＣＡＳ，ＷＥＮの信号で行う。
【００２２】
次に、ＤＭＡコントローラ回路１の内部の構成についての説明をする。
【００２３】
ＣＰＵ制御回路２は、他のブロックとの制御信号によってＣＰＵ８のアクセスのタイミングを決定し、ＣＰＵ８とメモリ９間のデータの授受を行う。ＣＰＵ８からアクセス要求が発生した場合、ＣＰＵ制御回路２は、ＣＰＵ８からのアドレス、およびライトアクセスの場合はライトデータを保持する。
【００２４】
同時に、バス調停回路４からのウエイト要求信号の状態を確認し、ウエイト要求信号の状態が無効であれば直ちにＣＰＵアクセススタートフラグを有効にし、データの転送を行う。ウエイト要求信号の状態が有効であれば、無効になるまでＣＰＵアクセススタートフラグを有効にしないで、ＣＰＵ８に対してはウエイトを挿入したようにする。
【００２５】
メモリアクセスの終了は、メモリ制御回路５からのメモリアクセス終了フラグ１をもって確認し、ＣＰＵ８からの次の要求を受け付けられる状態に戻る（レディ信号を有効にする）。
【００２６】
ＤＭＡ制御回路３は、ローカルバス上のデバイスからの要求と他のブロックとの制御信号によって、ローカルバスとメモリ９間のデータの授受を行う。ＤＭＡ制御回路３には、メモリ９へのアクセスのためのアドレスと転送回数、転送方向を設定できるレジスタを備えている。
【００２７】
ＤＭＡ制御回路３は、ローカルバス上のデバイスからのＤＭＡリクエストを受けて、バス調停回路４に対してバスリクエストを有効にする。バス調停回路４からのバスアクノリッジが有効であることを確認した後、ローカルバス上のデバイスへのＤＭＡアクノリッジ信号を有効にする。その後、ＤＭＡアクセススタートフラグを有効にし、データの転送を行う。転送の終了はメモリ制御回路５からのメモリアクセス終了フラグ２で確認する。
【００２８】
バス調停回路４は、ＣＰＵ制御回路２とＤＭＡ制御回路３メモリ制御回路５のスタートフラグや終了フラグによってバスの使用状況を監視し、ＤＭＡ中にＣＰＵ８からのアクセス要求が発生した場合には、ＣＰＵ８のアクセスに対してウエイトを挿入するようにＣＰＵ制御回路２にウエイト要求する。
【００２９】
また、ＣＰＵ８のアクセス中にＤＭＡが発生した場合は、メモリ制御回路５に対して、ＤＭＡのバスリクエストが発生していることをリクエスト検出信号によって通知する。
【００３０】
メモリ制御回路５は、ＣＰＵ制御回路２とＤＭＡ制御回路３からスタートフラグを受け、メモリ９へのアクセスを開始し、終了フラグによって、アクセスが終了したことを通知する。
【００３１】
メモリ９へのアクセス方法としては、初回はアクティブコマンド、リードあるいはライトコマンドの発行で終了し、次回からはロウアドレスが前回のアクセスと一致すれば、ロウアドレスを設定するアクティブコマンドは不要なので、リードあるいはライトコマンドの発行のみとなる。
【００３２】
前回とロウアドレスが異なった場合には、プリチャージコマンド、アクティブコマンド、リードあるいはライトコマンドの発行という順番で、コマンドの発行を行う。ロウアドレスが変化しない場合が多いと考えられるため、それぞれのアクセス毎にプリチャージコマンドを発行しないというアクセス方法が一般的に用いられている。
【００３３】
しかし、ＣＰＵアクセスとＤＭＡのアクセスは、ロウアドレスが一致しない場合が多いと考えられ、ＣＰＵアクセスとＤＭＡアクセスが交互に発生した場合には、無駄なプリチャージコマンドの発行がそれぞれのアクセスの先頭に発行されてしまい、性能の劣化に繋がってしまう。
【００３４】
この発明のメモリ制御回路５は、性能の劣化を防ぐために、それぞれのアクセスのアドレスを比較することによって、メモリ９へのＣＰＵアクセスとＤＭＡアクセスの切り替わりでの冗長なコマンドの発行を防ぐことができる。アドレスの比較は、ＣＰＵアクセス中は、バス調停回路４からのリクエスト検出信号が有効の時のみ行う。ＤＭＡアクセス中は常に行う。
【００３５】
図２は、ＣＰＵ制御回路２の回路ブロック図である。図２を参照すると、ＣＰＵ制御回路２は、ＣＰＵ８からのライトデータを保持するためのＣＰＵデータ保持手段２１と、アドレスを保持するためのＣＰＵアドレス保持手段２２と、システムバスへの出力データの選択や、タイミング制御を行うシステムデータ制御回路２３と、ＣＰＵ８のアクセスのスタートフラグを出力し、終了フラグを受け取ることにより、ＣＰＵ８へのレディ信号をレディ状態にするＣＰＵアクセス制御手段２４で構成される。
【００３６】
ＣＰＵアドレス保持手段２２から出力されるアドレスは、メモリ制御回路５で行われるアドレスの比較に使用され、次のＣＰＵ要求が発生するまでは更新されない。ＣＰＵアクセス制御手段２４は、ＣＰＵ８からのアクセス要求で通常は直ちにＣＰＵアクセススタートフラグを有効にするが、バス調停回路４からのウエイト要求信号が有効である場合は、無効になるまでフラグを有効にしない。このようにして、前述した処理を実行する。
【００３７】
図３は、メモリ制御回路５の回路ブロック図である。図３を参照すると、メモリ制御回路５は、ＣＰＵアドレスとＤＭＡアドレスの比較を行うアドレス比較手段５１と、スタートフラグによりメモリアクセスをスタートさせ、メモリのアクセスタイミングに合わせて、コマンドやアドレスの切替タイミングを生成するタイミング制御手段５２と、アクティブコマンド等のコマンドを制御するコマンド生成手段５３と、メモリアドレスの選択やロウ／カラムの切り替えを行うメモリアドレス制御手段５４と、メモリ９へのライトデータの選択等を行うメモリデータ制御手段５５で構成される。
【００３８】
アドレス比較手段は５１は、ＣＰＵアドレスとＤＭＡアドレスの比較を行い、さらに、バス調停回路４からのリクエスト検出信号を確認し、各ブロックに冗長なコマンドの発行を無くすように情報を提供する。コマンド生成回路５３は、その情報を元に、ＲＡＳ，ＣＡＳ，ＷＥＮの信号を制御し、メモリ９へコマンドを発行する。
【００３９】
次に、この実施の形態の動作について説明する。
【００４０】
図１に示すこの発明の実施の形態では、従来のＤＭＡコントローラ回路のデメリットを回避するために、次のような動作を実行する。
【００４１】
まず、従来の動作を説明したときと同様に、ＣＰＵ８のアクセスとＤＭＡのアクセスのロウアドレスが一致しない場合の動作の説明を図４のタイミング図を用いて説明する。
【００４２】
ＣＰＵ８のメモリ９へのライト要求が発生後、ＣＰＵ制御回路２は、バス調停回路４からのウエイト要求信号が無効であることを確認後、ＣＰＵアクセススタートフラグを有効にする。また、同時にＣＰＵ８へのレディ信号を無効にする（Ｔ１１）。
【００４３】
メモリ制御回路５は、スタート信号を確認し、この場合、初回のアクセスであるのでアクティブコマンドを発行する（Ｔ１２）。同時にＤＭＡリクエストが発生したものとし、ＤＭＡ制御回路３は、バスリクエストを有効にし（Ｔ１３）、バス調停回路４は、ウエイト要求信号と、ＣＰＵアクセス中にバスリクエストが発生したことを示すリクエスト検出信号を有効にする（Ｔ１４）。
【００４４】
メモリ制御回路５は、リクエスト検出信号の有効であることを確認し、現在のＣＰＵアクセスと、バスアクノリッジを待っているＤＭＡアクセスのアドレスの比較を開始する。ライトコマンド発行後、メモリ制御回路５は、メモリアクセス終了フラグ１を有効にする（Ｔ１５）。
【００４５】
終了フラグを確認したＣＰＵ制御回路２は、ＣＰＵ８へのレディ信号を有効にし、次のＣＰＵの要求を受け付けられるようにする。
【００４６】
バス調停回路４は、ＤＭＡ制御回路３へのバスアクノリッジを有効にする。また、アドレスの比較の結果、ロウアドレスが一致しないことがわかっているので、メモリ制御回路５は、プリチャージコマンドを発行する（Ｔ１６）。
【００４７】
バスアクノリッジを受けたＤＭＡ制御回路３は、ＤＭＡアクセススタートフラグを有効にし（Ｔ１７）、それを認識したメモリ制御回路５は、すでにプリチャージが実行されているので、アクティブコマンドを発行し、リクエスト検出信号を無効にする（Ｔ１８）。
【００４８】
ここで、ＣＰＵ８からのメモリライト要求が再び発生したものとする。ＣＰＵ８の要求を受けて、ＣＰＵ制御回路２は、レディ信号は無効にするが、ウエイト要求信号がアクティブなので、ＣＰＵアクセススタートフラグは有効にしない。ＣＰＵ８からのアドレスおよびデータはラッチしておく（Ｔ１９）。
【００４９】
ライトコマンド発行後、メモリ制御回路５は、メモリアクセス終了フラグ２を有効にし（Ｔ１ａ）、それを受けたバス調停回路４は、ウエイト要求信号とバスアクノリッジを無効にする。この時、現在のＤＭＡアクセスのアドレスと、次のＣＰＵアクセスのアドレスが一致していないことがわかっているので、メモリ制御回路５は、プリチャージコマンドを発行する（Ｔ１ｂ）。
【００５０】
ウエイト要求信号の無効を確認すると、ＣＰＵ制御回路２は、ＣＰＵアクセススタートフラグを有効にする（Ｔ１ｃ）。それを認識したメモリ制御回路５は、すでにプリチャージが実行されているので、アクティブコマンドを発行する（Ｔ１ｄ）。以降は、従来と同様な動作を実行し、終了する。
【００５１】
次に、ＣＰＵ８のアクセスとＤＭＡのアクセスのロウアドレスが一致している場合の動作の説明を図５のタイミング図を用いて説明する。
【００５２】
Ｔ２１からＴ２５までは、図４のＴ１１からＴ１５と同様の動作を行う。Ｔ２６では、アドレスの比較の結果、ロウアドレスが一致することがわかっているので、メモリ制御回路５は、プリチャージコマンドを発行しない。それ以外はＴ１６と同様の動作を行う。
【００５３】
Ｔ２８ではプリチャージコマンドが発行されていないので、アクティブコマンドを発行する必要もなく、直ちにライトコマンドの発行を行う。また、Ｔ２ａについてもロウアドレスが一致することがわかっているので、メモリ制御回路５は、プリチャージコマンドを発行しない。Ｔ２ｃではプリチャージコマンドが発行されていないので、アクティブコマンドを発行する必要もなく、直ちにライトコマンドの発行を行う。
【００５４】
次に、この発明の他の実施の形態について説明する。
【００５５】
図６は、この発明の他の実施の形態を示す回路ブロック図である。その基本的構成は図１に示す実施の形態と同様であるが、ローカルバスとメモリバスの調停方法についてさらに工夫している。
【００５６】
図６を参照すると、ＤＭＡ制御回路３とバス調停回路４の間のバスリクエストとアクノリッジがローカルバス用のローカルバスリクエストとローカルバスアクノリッジ，メモリバス用のメモリバスリクエストとメモリバスアクノリッジに分けられている。
【００５７】
また、ＣＰＵ制御回路２とバス調停回路４の間のウエイト要求信号がメモリアクセス用のメモリウエイト要求信号とローカルアクセス用のローカルウエイト要求信号に分けられている。
【００５８】
更に、ＣＰＵ制御回路２から出力されるアクセススタートフラグがメモリアクセス用のＣＰＵメモリアクセススタートフラグとＣＰＵ ＩＯスタートフラグに分けられている。つまり、メモリバスとローカルバスを別々に調停する。
【００５９】
次に、図６に示す他の実施の形態の動作を図７のタイミング図を用いて説明する。ＣＰＵ８のメモリライト要求と同時にＤＭＡリクエストによるローカルバスリクエストが発生し、その後ＣＰＵ８のローカルバスへのＩＯアクセスがあった場合を示す。ここでＤＭＡはＩＯ ｔｏ メモリとする。
【００６０】
まず、ＣＰＵ８のメモリアクセス要求とＤＭＡリクエストによるローカルバスリクエストが同時に発生する。ＣＰＵ制御回路２は、メモリウエイト要求信号が無効であることを確認し、ＣＰＵメモリアクセススタートフラグを有効にする。また、バス調停回路４は、ローカルウエイト要求信号を有効にする（Ｔ４１）。
【００６１】
ＣＰＵメモリアクセススタートフラグを受けて、メモリ制御回路５は、アクティブコマンドを発行する。同時にバス調停回路４は、ＣＰＵＩＯアクセススタートフラグとＩＯアクセス終了フラグの状態からＣＰＵ８のＩＯアクセスが発生していないことを確認し、ローカルバスアクノリッジを有効にする（Ｔ４２）。
【００６２】
ＩＯ制御回路７は、ローカルバスより転送データを受け取り保持する（Ｔ４３）。その後、ＤＭＡ制御回路３は、ローカルバスリクエストを無効にする（Ｔ４４）。メモリ制御回路５は、ライトコマンド発行後、メモリアクセス終了フラグ１を有効にする。その時ＤＭＡ制御回路３は、メモリバスリクエストを有効にする（Ｔ４５）。
【００６３】
それを受けてバス調停回路４は、メモリウエイト要求信号を有効にする（Ｔ４６）。そして、ＣＰＵメモリスタートフラグと終了フラグの状態からＣＰＵ８のメモリアクセスが発生していないことを確認し、メモリバスアクノリッジを有効にする（Ｔ４７）。それを受けてＤＭＡ制御回路３は、ＤＭＡアクセススタートフラグを有効にする。
【００６４】
ここで、ＣＰＵ８のローカルバスへのＩＯアクセス要求が発生したとする（Ｔ４８）。ＤＭＡアクセススタートフラグを受けてメモリ制御回路５は、ライトコマンドを発行する。同時に、ＣＰＵ制御回路は、ローカルウエイト要求信号が無効であることを確認し、ＣＰＵＩＯアクセススタートフラグを有効にし、ＩＯアクセスを開始する（Ｔ４９）。その後、ＤＭＡのメモリアクセスとＣＰＵ８のＩＯアクセスは、それぞれ終了する。
【００６５】
従って、ＤＭＡをローカルバスとメモリバスで別に調停することにより、ＣＰＵ８のアクセスと並列に処理することが可能になる。よって、ＤＭＡによるＣＰＵアクセスの停止期間が最小限にできるという相乗的（格別）な効果を奏することができる。
【００６６】
なお、特開平１１−１６３３９号公報には、ＳＤＲＡＭのオートプリチャージ機能を使用して、メモリアクセスの高速化を図るメモリ制御回路が記載されている。特開平１１−１６３３９号公報に記載の発明は、この発明と異なり、メモリに対すロウアドレスの記憶手段がないため、複数のメモリアクセス源からのメモリアクセスリクエストが重ならないとロウアドレスの比較ができない。また、オートプリチャージ付きリードコマンドを使用するため、リードライトコマンドを発行するよりも以前に、後続のメモリリクエストが発生し、アドレスの比較が終了していなければならない。
【００６７】
これに対し、この発明は、通常のプリチャージコマンドを使用するので、リードライトコマンド発行後にメモリリクエストが発生しても、プリチャージが実行可能である。
【００６８】
【発明の効果】
以上説明したように、この発明は、ＣＰＵアクセス時のアドレスと、ＤＭＡアクセス時のアドレスを予め比較しているため、メモリに対する無駄なコマンドの発行を省き、システムの高速化を図ることができる。
【００６９】
また、この発明は、ＣＰＵをホールドすることなく、バスの調停を行うことができるため、ＣＰＵアクセスとＤＭＡの切り替え（調停）を高速化することができる。
【図面の簡単な説明】
【図１】この発明のＤＭＡコントローラ回路の実施の形態を示す回路ブロック図である。
【図２】ＣＰＵ制御回路の回路ブロック図である。
【図３】メモリ制御回路の回路ブロック図である。
【図４】ＣＰＵのアクセスとＤＭＡのアクセスのロウアドレスが一致していない場合の動作を説明するタイミング図である。
【図５】ＣＰＵのアクセスとＤＭＡのアクセスのロウアドレスが一致している場合の動作を説明するタイミング図である。
【図６】この発明の他の実施の形態を示す回路ブロック図である。
【図７】図６に示す他の実施の形態の動作を説明するタイミング図である。
【図８】従来の動作を説明するタイミング図である。
【符号の説明】
１  ＤＭＡコントローラ回路
２  ＣＰＵ制御回路
３  ＤＭＡ制御回路
４  バス調停回路
５  メモリ制御回路
６  デコーダ
７  ＩＯ制御回路
８  ＣＰＵ
９  メモリ
２１  ＣＰＵデータ保持手段
２２  ＣＰＵアドレス保持手段
２３  システムデータ制御回路
２４  ＣＰＵアクセス制御手段
５１  アドレス比較手段
５２  タイミング制御手段
５３  コマンド生成手段
５４  メモリアドレス制御手段
５５  メモリデータ制御手段
【図１】
0003838830.tif 000002
【図２】
0003838830.tif 000003
【図３】
0003838830.tif 000004
【図４】
0003838830.tif 000005
【図５】
0003838830.tif 000006
【図６】
0003838830.tif 000007
【図７】
0003838830.tif 000008
【図８】
0003838830.tif 000009