(57)【要約】【課題】  システム固有のメモリ構成や入出力装置の構成に最適なプリフェッチ制御を行うことができるマイクロプロセッサを実現する。【解決手段】  本発明のマイクロプロセッサは、ＣＰＵ１１がデータまたは命令コードを読み出すために必要なウェイト数１６を生成するウェイト数設定レジスタ１７およびアドレスデコーダ１５と、ＣＰＵ１１のプリフェッチを許すウェイト数１６の上限を示すウェイト上限値１８を保持するウェイト上限値設定レジスタ１９と、ウェイト数設定レジスタ１７からのウェイト数１６およびウェイト上限値設定レジスタ１９からのウェイト上限値１８を比較判定し、当該判定結果に基づいてＣＰＵ１１のプリフェッチ機能を停止させるプリフェッチ禁止信号１３を出力する判定回路２０を有する。【選択図】  図１
2007188137.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがデータまたは命令コードを読み出すために必要なウェイトサイクル数を生成するウェイト数生成手段と、
前記ＣＰＵのプリフェッチを許す前記ウェイトサイクル数の上限を示すウェイト上限値を保持する保持手段と、
前記ウェイト数生成手段からの前記ウェイトサイクル数および前記保持手段からの前記ウェイト上限値を比較判定し、当該判定結果に基づいて前記ＣＰＵのプリフェッチ機能を停止させるプリフェッチ禁止信号を出力する判定手段を有することを特徴とするマイクロプロセッサ。
【請求項２】
前記ウェイト数生成手段は、あらかじめ定められた前記ウェイトサイクル数を保持する設定レジスタを備え、前記データまたは命令コードのアドレスが所定の範囲内である場合に、前記設定レジスタに保持されている前記ウェイトサイクル数を選択して出力することを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記ウェイト数生成手段は、複数に分割された前記ＣＰＵのメモリ空間に対応した前記ウェイトサイクル数を保持する複数のレジスタを備え、前記データまたは命令コードのアドレスに基づいて、前記複数のレジスタから前記データまたは命令コードに対応する前記ウェイトサイクル数を選択して出力することを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項４】
前記ウェイト数生成手段は、外部ウェイト信号に基づいてクロック信号をカウントアップすることで前記データまたは命令コードに対応する前記ウェイトサイクル数を生成することを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項５】
前記ウェイト上限値は、電源投入時またはシステムリセット時に前記保持手段に格納されることを特徴とする請求項１に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令コードもしくはデータの先読み機能を有するマイクロプロセッサに関する。
【背景技術】
【０００２】
近年、マイクロプロセッサの高速化はめざましく、主記憶装置として使用される外部メモリとマイクロプロセッサとの動作周波数の差は広がる傾向にある。このため、外部メモリへのアクセスがマイクロプロセッサの性能に大きな影響を与えないようキャッシュメモリを内蔵もしくは付加する機構を備え、命令コードおよびデータをキャッシュメモリに先読み（プリフェッチ）する機能を有したマイクロプロセッサが主流になっている。しかし、こうしたマイクロプロセッサでは、キャッシュメモリにプリフェッチされていない命令またはデータへのアクセス（キャッシュミスヒット）が発生すると、キャッシュメモリの書き換え（リロード）が必要となるため、場合によっては、処理性能が大幅に低下する。このようなキャッシュミスヒットは、ジャンプ命令やサブルーチンコール命令などで発生する確率が高く、このため、これらの命令をあらかじめ検出してキャッシュメモリへのプリフェッチを制御する方法（例えば、「特許文献１」および「特許文献２」を参照。）が開発されている。
【０００３】
一方、マイクロプロセッサは、ソフトウェアのバージョンアップにより機能追加などに柔軟に対応できるので、ゲーム機や家電製品から通信装置や情報処理装置に至るまであらゆる機器のコントローラとして採用されるようになっている。このため、このような応用では、マイクロプロセッサが実装されるシステムにおいて、主記憶装置をはじめとするメモリ構成やメモリ空間に割り付けられる入出力装置の構成をあらかじめ想定しておくことは非常に困難であるという問題があった。例えば、メモリ空間内に主記憶とは別にＥＥＰＲＯＭなどのウェイトサイクル数が多い低速な外部メモリが割り付けられた場合に、ＥＥＰＲＯＭにアクセスする時だけプリフェッチ機能を選択的に停止するなどの制御が望ましい。しかし、このような構成は、特定のユーザ仕様に基づくシステム固有のものであり、ＥＥＰＲＯＭが割り付けられるアドレスもあらかじめ固定されているとは限らない。したがって、従来のマイクロプロセッサでこれに対応するためには外部に特別な制御機構をシステムごとに用意する必要があった。
【０００４】
すなわち、命令コードもしくはデータの先読み機能を有する従来のマイクロプロセッサには、それが実装されるシステム固有のメモリ構成や入出力装置の構成に最適なプリフェッチ制御を行えないという問題があった。
【特許文献１】特開２００１−２７３１３７号公報
【特許文献２】特開平５−２７９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、システム固有のメモリ構成や入出力装置の構成に最適なプリフェッチ制御を行うことができるマイクロプロセッサを提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、ＣＰＵがデータまたは命令コードを読み出すために必要なウェイトサイクル数を生成するウェイト数生成手段と、前記ＣＰＵのプリフェッチを許す前記ウェイトサイクル数の上限を示すウェイト上限値を保持する保持手段と、前記ウェイト数生成手段からの前記ウェイトサイクル数および前記保持手段からの前記ウェイト上限値を比較判定し、当該判定結果に基づいて前記ＣＰＵのプリフェッチ機能を停止させるプリフェッチ禁止信号を出力する判定手段を有することを特徴とするマイクロプロセッサが提供される。
【発明の効果】
【０００７】
本発明によれば、システム固有の多様なメモリ構成および入出力装置の構成に柔軟に対応してプリフェッチ機能を制御することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例１】
【０００９】
図１は、本発明の実施例１に係わるマイクロプロセッサを示す回路ブロック図である。ここでは、主に、キャッシュメモリに命令コードおよびデータを先読みする機能（以下、「プリフェッチ機能」という。）の制御にかかわる部分を示した。
【００１０】
本発明の実施例１に係わるマイクロプロセッサは、命令コードに基づいて処理を行う中央演算処理装置１１（以下、「ＣＰＵ１１」という。）、次に読み出す命令コードまたはデータのアドレスがＣＰＵ１１から出力されるアドレスバス１２、およびアドレスバス１２上のアドレスに基づいてＣＰＵ１１のプリフェッチ機能を制御するためのプリフェッチ禁止信号１３を生成するプリフェッチ制御部１４を備えている。
【００１１】
ＣＰＵ１１の入力にはプリフェッチ制御部１４からのプリフェッチ禁止信号１３が入力され、ＣＰＵ１１のアドレス出力はアドレスバス１２に接続され、プリフェッチ制御部１４の入力にはアドレスバス１２が接続されている。
【００１２】
ＣＰＵ１１は、外部メモリ（図示していない。）から読み込んだ命令コードを解釈し、その結果に基づいて、その命令コードの実行に必要なデータのアドレスまたは次に実行する命令コードのアドレスをアドレスバス１２へ出力する。
【００１３】
これらのアドレスは、次にＣＰＵ１１が読み込むべき命令コードまたはデータのアドレスであり、そのアドレスがすでにプリフェッチされているアドレス範囲からはずれる場合（一般に「キャッシュミスヒット」と呼ばれる。）には、プリフェッチ制御部１４がプリフェッチ禁止信号１３を出力している場合を除いて、ＣＰＵ１１は、プログラム実行の継続を一時中断してそのアドレスが属する一連の命令コードまたはデータをデータバス（図示していない。）を介してキャッシュメモリへプリフェッチ（先読み）するよう動作する。
【００１４】
一方、プリフェッチ禁止信号１３が出力されている場合は、ＣＰＵ１１は、上述したプリフェッチ動作を行わず、逐次動作を行う。すなわち、ＣＰＵ１１は、外部メモリからの命令コードまたはデータがデータバスを介して読み込み可能になるまで待機（ウェイト）する。
【００１５】
プリフェッチ制御部１４は、図１に示したように、アドレスをデコードするアドレスデコーダ１５、メモリ空間ごとのウェイトサイクル数１６（以下、「ウェイト数１６」という。）を保持するウェイト数設定レジスタ１７、ウェイト数１６の上限値（以下、「ウェイト上限値１８」という。）を保持するウェイト上限値設定レジスタ１９、およびウェイト数１６とウェイト上限値１８を比較判定する判定回路２０を備えている。
【００１６】
アドレスデコーダ１５の入力にはアドレスバス１２が接続され、アドレスデコーダ１５の出力はウェイト数設定レジスタ１７の入力に供給されている。ウェイト数設定レジスタ１７の出力はウェイト数１６として判定回路２０の第１の入力に供給され、ウェイト上限値設定レジスタ１９の出力はウェイト上限値１８として判定回路２０の第２の入力に供給され、判定回路２０の出力はプリフェッチ禁止信号１３としてＣＰＵ１１の入力に供給されている。
【００１７】
アドレスデコーダ１５はＦＰＧＡで構成され、アドレスバス１２上のアドレスとウェイト数設定レジスタ１７との対応付けを行う。すなわち、アドレスデコーダ１５は、あらかじめ設定されている対応付けに従って、そのアドレスに対応する選択信号をウェイト数設定レジスタ１７へ出力する。
【００１８】
具体的な対応付けの一例は図２を用いて後述するが、これらは、電源投入時またはシステムリセット時に、ＣＰＵ１１がシステムプログラムに従ってＦＰＧＡを初期化することで設定される。
【００１９】
ウェイト数１６は、メモリ空間に実装される外部メモリまたは入出力装置の性能によって規定され、図２を用いて後述するように、分割されたメモリ空間ごとに設定される。
【００２０】
ウェイト数設定レジスタ１７は、ウェイト数１６を保持する複数のレジスタで構成され、アドレスデコーダ１５からの選択信号によってアドレスバス１２上のアドレスに対応したウェイト数１６を判定回路へ選択的に出力する。
【００２１】
ウェイト数設定レジスタ１７が保持するそれぞれのウェイト数１６は、電源投入時またはシステムリセット時に、システムプログラムに従ってＣＰＵ１１によって設定される。
【００２２】
ウェイト上限値１８はＣＰＵ１１のプリフェッチ動作の停止を判定する基準値で、判定回路２０は、この値に基づいて、外部メモリまたは入出力装置の性能に基づいたウェイト数設定レジスタ１７からのウェイト数１６を判定する。
【００２３】
ウェイト上限値設定レジスタ１９はウェイト上限値を保持するレジスタで、この値は、電源投入時またはシステムリセット時に、システムプログラムに従ってＣＰＵ１１によって設定される。
【００２４】
判定回路２０は、ウェイト数設定レジスタ１７からのウェイト数１６とウェイト上限値設定レジスタ１９からのウェイト上限値１８とを比較し、ウェイト数１６がウェイト上限値１８を超えている場合にプリフェッチ禁止信号１３を生成しＣＰＵ１１へ出力する。
【００２５】
図２は、本発明の実施例１に係わるマイクロプロセッサにおける設定情報の一例を示すテーブルである。  
本発明の実施例１に係わるマイクロプロセッサにおける設定情報は、分割されたメモリ空間を識別するメモリ空間番号、メモリ空間番号に対応するアドレス範囲、メモリ空間番号に対応するウェイト数１６、およびウェイト上限値１８を備えている。
【００２６】
ＣＰＵ１１のメモリ空間は、メモリ空間に割り付けられた外部メモリおよび入出力装置の種類や性能ごとに分割され、それぞれを識別するためにメモリ空間番号が付与されている。
【００２７】
アドレス範囲は、外部メモリまたは入出力装置ごとに一連のアドレスが割り付けられる。例えば、図２に示したように、メモリ空間番号“１”にはアドレス範囲“０〜０ＦＦＦＦ番地”が対応し、メモリ空間番号“２”にはアドレス範囲“１００００〜１ＦＦＦＦ番地”が対応し、メモリ空間番号“３”にはアドレス範囲“１ＦＦＦＦ〜２ＦＦＦＦ番地”が対応している。
【００２８】
ウェイト数１６は、それぞれのアドレス範囲に割り付けられた外部メモリまたは入出力装置の性能によって規定され、具体的には、ＣＰＵ１１がデータを読み込むためにリード信号を出力してから実際にそのデータをデータバスから読み込むことができるまでの待機時間をシステムクロック数で示したものである。
【００２９】
例えば、図２に示したように、メモリ空間番号“１”ではウェイト数１６は“０”であり、メモリ空間番号“２”ではウェイト数１６は“５”であり、メモリ空間番号“３”ではウェイト数１６は“２０”となっている。
【００３０】
これらは、それぞれ、ＳＲＡＭなどの高速な主記憶、ＤＲＡＭなどの低速な主記憶、およびＥＥＰＲＯＭなどの２次記憶を想定して設定されたウェイト数１６である。
【００３１】
ウェイト上限値１８は、図２では“８”に設定されている。これは、メモリ空間番号“１”および“２”の主記憶に対しては、ＣＰＵ１１のプリフェッチ動作を許可し、メモリ空間番号“３”の２次記憶に対しては、ＣＰＵ１１のプリフェッチ動作を停止させることを意味している。
【００３２】
次に、上述した構成を持つマイクロプロセッサの動作について説明する。  
図３は、本発明の実施例１に係わるマイクロプロセッサにおける動作の一例を示すテーブルである。ここでは、図２の設定情報がアドレスデコーダ１５、ウェイト数設定レジスタ１７、およびウェイト上限値設定レジスタ１９にあらかじめセットされているものとしてマイクロプロセッサの動作を説明する。
【００３３】
図３に示したテーブルの第１欄はＣＰＵ１１がアドレスバス１２へ出力するアドレスを示し、第２欄はそのアドレスでの命令コードを示し、第３欄はそのアドレスが属するメモリ空間番号を示している。
【００３４】
まず、ＣＰＵ１１は、“０２０００番地”で“ジャンプ１”命令を実行する。この時のメモリ空間番号は“１”である。そして、“ジャンプ１”命令によってＣＰＵ１１の実行は“２００００番地”へジャンプする。
【００３５】
次に、ＣＰＵ１１は、“２００００番地”で“演算１”命令を実行する。この時のメモリ空間番号は“３”になる。そして、処理が進み、ＣＰＵ１１の実行は“２０１００番地”に到達する。“２０１００番地”では、ＣＰＵ１１は、“ジャンプ２”命令を実行し、“１００００番地”へジャンプする。
【００３６】
“１００００番地”のメモリ空間番号は“２”である。すなわち、図３に示した動作では、メモリ空間番号は“１”→“３”→“２”と変化する。ここで注意することは、アドレスバス１２へＣＰＵ１１が出力するアドレスは次の命令コートのアドレスであることである。
【００３７】
したがって、ＣＰＵ１１が“０２０００番地”で“ジャンプ１”命令を解釈実行する段階で次の“２００００番地”がアドレスバス１２へ出力され、アドレスデコーダ１５は、メモリ空間番号“３”に対応する選択信号をウェイト数設定レジスタ１７へ出力する。
【００３８】
図４は、本発明の実施例１に係わるマイクロプロセッサにおけるプリフェッチ禁止信号１３の一例を示す波形図である。ここでは、図３に示した動作に従って生成されるプリフェッチ禁止信号１３を時間軸で示している。
【００３９】
プリフェッチ禁止信号１３は、“Ｈ”でＣＰＵ１１のプリフェッチ動作を停止させる。すなわち、図４に示したように、メモリ空間番号“１”および“２”では、プリフェッチ禁止信号１３は“Ｌ”であり、ＣＰＵ１１のプリフェッチ動作は許可される。また、メモリ空間番号“３”では、プリフェッチ禁止信号１３は“Ｈ”であり、ＣＰＵ１１のプリフェッチ動作は停止される。
【００４０】
図５は、本発明の実施例１に係わるマイクロプロセッサにおける詳細動作の一例を示すイメージ図である。ここでは、図３のメモリ空間番号“１”から“３”への遷移にかかわる動作を示した。
【００４１】
図５の最上段はシステムクロック（ＣＬＫ）の波形を示し、２番目の段はプリフェッチ禁止信号１３を示し、３番目の段は命令コードの読み込みタイミングを示し、４番目の段はＣＰＵ１１の内部動作タイミングを示し、最下段はＣＰＵ１１が外部メモリへ出力するリード信号の波形を示している。
【００４２】
図５に示したように、アドレスがメモリ空間番号“３”に遷移すると、ＣＰＵ１１の動作は逐次処理となり、長い待機期間に無駄なリード動作は発生しない。これにより、たとえ分岐命令があっても分岐判定後にバスサイクルを起動するので、無駄なバスサイクルは発生せず、アドレスバス１２およびデータバスの負荷が軽減される。
【００４３】
重要なことは、設定情報をあらかじめプログラムによって設定しておくことができるので、ウェイト数設定レジスタ１７およびウェイト上限値設定レジスタ１９に適宜値をセットすることで、ユーザがシステム固有の構成に応じた最適なプリフェッチ制御を行うことができるということである。
【００４４】
上記実施例１によれば、メモリ空間ごとにマイクロプロセッサのプリフェッチ機能が制御されるので、システム固有の多様なメモリ構成および入出力装置の構成に柔軟に対応することができる。
【００４５】
また、上記実施例１によれば、メモリ空間ごとのウェイト数１６およびアドレスとウェイト数設定レジスタ１７との対応付けを電源投入時またはシステムリセット時にシステムプログラムによって設定するので、システム稼働後も必要に応じてＣＰＵ１１のプリフェッチ制御を容易に変更することができる。
【００４６】
さらに、上記実施例１によれば、ウェイト数１６が大きい外部メモリまたは入出力装置に対して、ＣＰＵ１１は、キャッシュミスヒット時でもプリフェッチ動作を行わず待機状態であるので、無駄なバスサイクルは発生せず、アドレスバス１２およびデータバスの負荷が軽減される。また、同時に、ブリフェッチ動作に必要なＣＰＵ１１の負荷も軽減される。
【００４７】
上述の実施例１では、アドレスデコーダ１５は、構成の柔軟性を考慮してＦＰＧＡで構成するとしたが、本発明はこれに限られるものではなく、例えば、メモリ空間番号とアドレス範囲をあらかじめ固定しておき、それらの対応をロジック回路で構成することもできる。
【００４８】
また、上述の実施例１では、説明のためメモリ空間を３つに分割しそれぞれに外部メモリを割り当てたが、本発明はこれに限られるものではなく、原理的にはＣＰＵ１１のメモリ空間に割り付けることができる任意の数の外部メモリおよび入出力装置に対応した構成とすることができる。
【実施例２】
【００４９】
図６は、本発明の実施例２に係わるマイクロプロセッサを示す回路ブロック図である。ここでは、主に、プリフェッチ機能の制御にかかわる部分を示した。
【００５０】
本発明の実施例２に係わるマイクロプロセッサは、命令コードに基づいて処理を行うＣＰＵ６１、および外部ウェイト信号６２に基づいてＣＰＵ６１のプリフェッチ機能を制御するためのプリフェッチ禁止信号６３を生成するプリフェッチ制御部６４を備えている。
【００５１】
ＣＰＵ６１の入力にはプリフェッチ制御部６４からのプリフェッチ禁止信号６３が入力され、ＣＰＵ６１の出力はプリフェッチ制御部６４の第１の入力に供給されている。また、プリフェッチ制御部６４の第２の入力には、外部ウェイト信号６２が入力されている。
【００５２】
ＣＰＵ６１の機能および動作は、リセット信号６５の出力を除いて実施例１と同様であるので、詳しい説明は省略する。
【００５３】
プリフェッチ制御部６４は、図６に示したように、外部ウェイト信号６２に同期してシステムクロック（以下、「ＣＬＫ」という。）をカウントアップすることでウェイト数６６を生成するウェイト数カウンタ６７、ウェイト数６６の上限値であるウェイト上限値６８を保持するウェイト上限値設定レジスタ６９、およびウェイト数６６とウェイト上限値６８を比較判定する判定回路７０を備えている。
【００５４】
ウェイト数カウンタ６７の第１の入力にはＣＰＵ６１からのリセット信号６５が入力され、ウェイト数カウンタ６７の第２の入力には外部ウェイト信号６２が入力されている。ウェイト数カウンタ６７の出力はウェイト数６６として判定回路７０の第１の入力に供給され、ウェイト上限値設定レジスタ６９の出力はウェイト上限値６８として判定回路７０の第２の入力に供給され、判定回路７０の出力はプリフェッチ禁止信号６３としてＣＰＵ６１に供給されている。
【００５５】
ウェイト数カウンタ６７は、外部ウェイト信号６２によってＣＬＫのカウントアップを開始し、そのカウント数をウェイト数６６として判定回路７０へ出力する。また、ウェイト数カウンタ６７は、ＣＰＵ６１からのリセット信号６５によってカウントアップが停止され初期状態にリセットされる。
【００５６】
ＣＰＵ６１は、プリフェッチ禁止信号６３によってプリフェッチ動作を停止させられた後、データバスから次の命令コードまたはデータを読み込むとリセット信号６５を出力する。
【００５７】
ウェイト上限値設定レジスタ６９および判定回路７０の機能および動作は、実施例１と同様であるので説明は省略する。
【００５８】
実施例２では、実施例１と異なり、外部ウェイト信号６２が入力されている間はＣＰＵ６１を待機状態にすることができる。したがって、外部メモリまたは入出力装置のウェイト数６６があらかじめ固定されていない場合にも対応することができる。
【００５９】
上記実施例２によれば、外部メモリまたは入出力装置ごとにマイクロプロセッサのプリフェッチ機能が制御されるので、システム固有の多様な構成に柔軟に対応することができる。
【００６０】
また、上記実施例２によれば、ウェイト上限値６８を電源投入時またはシステムリセット時にシステムプログラムによって設定するので、システム稼働後も必要に応じてＣＰＵ６１のプリフェッチ制御を容易に変更することができる。
【００６１】
さらに、上記実施例２によれば、外部メモリまたは入出力装置のアドレスに関係なくウェイト数６６が生成されるので、システム稼働後に外部メモリおよび入出力装置のメモリ空間への割付を容易に変更することができる。
【００６２】
さらに、上記実施例２によれば、ウェイト数６６が可変の外部メモリまたは入出力装置に対して、ＣＰＵ６１は、キャッシュミスヒット時でもプリフェッチ動作を行わず待機状態であるので、無駄なバスサイクルは発生せず、アドレスバスおよびデータバスの負荷が軽減される。また、同時に、ブリフェッチ動作に必要なＣＰＵ６１の負荷も軽減される。
【００６３】
上述の実施例１および２では、説明を容易にするため、ウェイト数設定レジスタ１７を用いる構成とウェイト数カウンタ６７を用いる構成を別々に記述したが、本発明はこれに限られるものではなく、ウェイト数設定レジスタ１７とウェイト数カウンタ６７の両方を用いる構成にしても良い。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施例１に係わるマイクロプロセッサを示す回路ブロック図。
【図２】本発明の実施例１に係わるマイクロプロセッサにおける設定情報の一例を示すテーブル。
【図３】本発明の実施例１に係わるマイクロプロセッサにおける動作の一例を示すテーブル。
【図４】本発明の実施例１に係わるマイクロプロセッサにおけるプリフェッチ禁止信号１３の一例を示す波形図。
【図５】本発明の実施例１に係わるマイクロプロセッサにおける詳細動作の一例を示すイメージ図。
【図６】本発明の実施例２に係わるマイクロプロセッサを示す回路ブロック図。
【符号の説明】
【００６５】
１１、６１  ＣＰＵ
１２  アドレスバス
１３、６３  プリフェッチ禁止信号
１４、６４  プリフェッチ制御部
１５  アドレスデコーダ
１６、６６  ウェイト数
１７  ウェイト数設定レジスタ
１８、６８  ウェイト上限値
１９、６９  ウェイト上限値設定レジスタ
２０、７０  判定回路
６２  外部ウェイト信号
６５  リセット信号
６７  ウェイト数カウンタ
【図１】
2007188137.tif 000003
【図２】
2007188137.tif 000004
【図３】
2007188137.tif 000005
【図４】
2007188137.tif 000006
【図５】
2007188137.tif 000007
【図６】
2007188137.tif 000008