(57)【要約】【課題】  整数加算演算等において、少ないサイクルでオーバーフローを検出する。【解決手段】  前記第１符号と前記第２符号との論理和を求めるステップと、前記第１符号と前記第２符号の論理積を求めるステップと、前記論理和の値が０であるならば第１予測フラグをＯＮにするステップと、前記論理積の値が１であるならば第２予測フラグをＯＮにするステップと、前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断するステップを備える。【選択図】        図３
2006277019.tif 000002
【特許請求の範囲】
【請求項１】
第１符号付き第１データの前記第１符号と第２符号付き第２データの前記第２符号との論理的な組合せ値を求めるステップと、
前記第１データと前記第２データの演算結果の符号と前記組合せ値とを基に、前記演算結果にオーバーフローがあるか否かを判断するステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項２】
請求項１に記載のオーバーフロー検出方法において、
前記第１符号と前記第２符号との論理和を求めるステップと、
前記第１符号と前記第２符号の論理積を求めるステップと、
前記論理和の値が０であるならば第１予測フラグをＯＮにするステップと、
前記論理積の値が１であるならば第２予測フラグをＯＮにするステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項３】
請求項２に記載のオーバーフロー検出方法において、
前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断するステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項４】
請求項２に記載のオーバーフロー検出方法において、
前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断するステップを更に備えることを特徴とするオーバーフロー検出方法。
【請求項５】
請求項１に記載のオーバーフロー検出方法において、
前記第１符号と前記第２符号との論理和を求めるステップと、
前記第１符号と前記第２符号の論理積を求めるステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項６】
請求項５に記載のオーバーフロー検出方法において、
前記論理和の値が０であり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断するステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項７】
請求項５に記載のオーバーフロー検出方法において、
前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断するステップを更に備えることを特徴とするオーバーフロー検出方法。
【請求項８】
請求項１に記載のオーバーフロー検出方法において、
前記第１符号と前記第２符号の反転値との論理和を求めるステップと、
前記第１符号と前記第２符号の反転値の論理積を求めるステップと、
前記論理和の値が０であるならば第１予測フラグをＯＮにするステップと、
前記論理積の値が１であるならば第２予測フラグをＯＮにするステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項９】
請求項８に記載のオーバーフロー検出方法において、
前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断するステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項１０】
請求項８に記載のオーバーフロー検出方法において、
前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断するステップを更に備えることを特徴とするオーバーフロー検出方法。
【請求項１１】
請求項１に記載のオーバーフロー検出方法において、
前記第１符号と前記第２符号の反転値との論理和を求めるステップと、
前記第１符号と前記第２符号の反転値の論理積を求めるステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項１２】
請求項１１に記載のオーバーフロー検出方法において、
前記論理和の値が０であり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断するステップと、
を備えることを特徴とするオーバーフロー検出方法。
【請求項１３】
請求項１１に記載のオーバーフロー検出方法において、
前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断するステップを更に備えることを特徴とするオーバーフロー検出方法。
【請求項１４】
第１符号付き第１データの前記第１符号と第２符号付き第２データの前記第２符号との論理的な組合せ値を求める手段と、
前記第１データと前記第２データの演算結果の符号と前記組合せ値とを基に、前記演算結果にオーバーフローがあるか否かを判断する手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項１５】
請求項１４に記載のオーバーフロー検出装置において、
前記第１符号と前記第２符号との論理和を求める手段と、
前記第１符号と前記第２符号の論理積を求める手段と、
前記論理和の値が０であるならば第１予測フラグをＯＮにする手段と、
前記論理積の値が１であるならば第２予測フラグをＯＮにする手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項１６】
請求項１５に記載のオーバーフロー検出装置において、
前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断する手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項１７】
請求項１５に記載のオーバーフロー検出装置において、
前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断する手段を更に備えることを特徴とするオーバーフロー検出装置。
【請求項１８】
請求項１４に記載のオーバーフロー検出装置において、
前記第１符号と前記第２符号との論理和を求める手段と、
前記第１符号と前記第２符号の論理積を求める手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項１９】
請求項１８に記載のオーバーフロー検出装置において、
前記論理和の値が０であり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断する手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項２０】
請求項１８に記載のオーバーフロー検出装置において、
前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断する手段を更に備えることを特徴とするオーバーフロー検出装置。
【請求項２１】
請求項１４に記載のオーバーフロー検出装置において、
前記第１符号と前記第２符号の反転値との論理和を求める手段と、
前記第１符号と前記第２符号の反転値の論理積を求める手段と、
前記論理和の値が０であるならば第１予測フラグをＯＮにする手段と、
前記論理積の値が１であるならば第２予測フラグをＯＮにする手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項２２】
請求項２１に記載のオーバーフロー検出装置において、
前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断する手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項２３】
請求項２１に記載のオーバーフロー検出装置において、
前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断する手段を更に備えることを特徴とするオーバーフロー検出装置。
【請求項２４】
請求項１４に記載のオーバーフロー検出装置において、
前記第１符号と前記第２符号の反転値との論理和を求める手段と、
前記第１符号と前記第２符号の反転値の論理積を求める手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項２５】
請求項２４に記載のオーバーフロー検出装置において、
前記論理和の値が０であり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断する手段と、
を備えることを特徴とするオーバーフロー検出装置。
【請求項２６】
請求項２４に記載のオーバーフロー検出装置において、
前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断する手段を更に備えることを特徴とするオーバーフロー検出装置。
【請求項２７】
コンピュータに請求項１乃至１３の何れか１項に記載のオーバーフロー検出方法を行わせるためのオーバーフロー検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算結果にオーバーフローが発生しているか否かを検出するためのオーバーフロー検出方法、オーバーフロー検出装置及びオーバーフロー検出プログラムに関し、特に、整数演算の結果にオーバーフローが発生しているか否かを検出するためのオーバーフロー検出方法、オーバーフロー検出装置及びオーバーフロー検出プログラムに関する。
【背景技術】
【０００２】
コンピュータ等においては、整数演算が行われるが、整数演算の結果オーバーフローが発生することがある。オーバーフローが発生した場合には、演算結果が正しくないため、オーバーフローを検出する必要がある。
【０００３】
図１は、整数演算（特に、加算又は減算）の結果のオーバーフローを検出するための原理図である。
【０００４】
図１を参照すると、符号Ｓから上位桁へのキャリー（「符号ビットからの桁上がり」）と演算結果より決まる符号Ｓ（「符号ビットへの桁上がり」）とが一致するか否かを見て、両者が一致しない場合に、オーバーフローが発生していると判断する。
【０００５】
図２は、オーバーフローの検出を複数命令同時実行可能なＣＰＵにより行った場合のオーバーフロー検出の方法を示すフローチャートである。
【０００６】
図２を参照すると、サイクル１では、符号付きデータ１と符号付きデータ２を用意し、サイクル２では、データ１とデータ２の加算を行い、データ１とデータ２の符号ビットをマスクして、データ３とデータ４を作成し、サイクル３では、データ１とデータ２の加算の結果、「符号ビットからの桁上がり」を取り出して保持し、データ３とデータ４の加算を行い、サイクル４では、データ３とデータ４の加算の結果、「符号ビットへの桁上がり」を取り出して保持し、サイクル５では、「符号ビットからの桁上がり」と「符号ビットへの桁上がり」が等しくなければ、オーバーフローを検出する。なお、この処理において、加算を減算に置き換えても良い。
【０００７】
特許文献１には、指数部中間値と有限最大値とを比較し、その結果によりオーバーフローの有無を検出する発明が記載されている。
【特許文献１】特開平６−２５０８４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
オーバーフローの検出をハードウエアで実施した場合、演算と並行して桁上がりの算出を行っていたため３サイクルで実現できたのだが、これをファームウエアやソフトウエアで実施した場合、図２のように演算後の結果によりオーバーフローの検出を行うため、５サイクルを要するという問題があった。よって加減算命令は使用頻度が高いため、これによりプログラムの処理性能が悪化してしまうという問題があった。
【０００９】
そこで、本発明は、少ないサイクルでオーバーフローを検出することを可能とするオーバーフロー検出方法、オーバーフロー検出装置及びオーバーフロー検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、第１符号付き第１データの前記第１符号と第２符号付き第２データの前記第２符号との論理的な組合せ値を求めるステップと、前記第１データと前記第２データの演算結果の符号と前記組合せ値とを基に、前記演算結果にオーバーフローがあるか否かを判断するステップと、を備えることを特徴とするオーバーフロー検出方法が提供される。
【００１１】
上記のオーバーフロー検出方法において、前記第１符号と前記第２符号との論理和を求めるステップと、前記第１符号と前記第２符号の論理積を求めるステップと、前記論理和の値が０であるならば第１予測フラグをＯＮにするステップと、前記論理積の値が１であるならば第２予測フラグをＯＮにするステップと、を備えるようにしてもよい。
【００１２】
上記のオーバーフロー検出方法において、前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断するステップと、を備えるようにしてもよい。
【００１３】
上記のオーバーフロー検出方法において、前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断するステップを更に備えるようにしてもよい。
【００１４】
上記のオーバーフロー検出方法において、前記第１符号と前記第２符号との論理和を求めるステップと、前記第１符号と前記第２符号の論理積を求めるステップと、を備えるようにしてもよい。
【００１５】
上記のオーバーフロー検出方法において、前記論理和の値が０であり、且つ、前記第１データと前記第２データの加算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記加算結果の符号が０である場合には、オーバーフローがあると判断するステップと、を備えるようにしてもよい。
【００１６】
上記のオーバーフロー検出方法において、前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断するステップを更に備えるようにしてもよい。
【００１７】
上記のオーバーフロー検出方法において、前記第１符号と前記第２符号の反転値との論理和を求めるステップと、前記第１符号と前記第２符号の反転値の論理積を求めるステップと、前記論理和の値が０であるならば第１予測フラグをＯＮにするステップと、前記論理積の値が１であるならば第２予測フラグをＯＮにするステップと、を備えるようにしてもよい。
【００１８】
上記のオーバーフロー検出方法において、前記第１予測フラグがＯＮであり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記第２予測フラグがＯＮであり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断するステップと、を備えるようにしてもよい。
【００１９】
上記のオーバーフロー検出方法において、前記第１予測フラグがＯＦＦであり、且つ、前記第２予測フラグがＯＦＦである場合、オーバーフローの発生があり得ないと判断するステップを更に備えるようにしてもよい。
【００２０】
上記のオーバーフロー検出方法において、前記第１符号と前記第２符号の反転値との論理和を求めるステップと、前記第１符号と前記第２符号の反転値の論理積を求めるステップと、を備えるようにしてもよい。
【００２１】
上記のオーバーフロー検出方法において、前記論理和の値が０であり、且つ、前記第１データと前記第２データの減算結果の符号が１である場合、又は、前記論理積の値が１であり、且つ、前記減算結果の符号が０である場合には、オーバーフローがあると判断するステップと、を備えるようにしてもよい。
【００２２】
上記のオーバーフロー検出方法において、前記論理和の値が１であり、且つ前記論理積の値が０である場合、オーバーフローの発生があり得ないと判断するステップを更に備えるようにしてもよい。
【発明の効果】
【００２３】
本発明によれば、第１符号付き第１データの前記第１符号と第２符号付き第２データの前記第２符号との論理的な組合せ値を求めるステップと、前記第１データと前記第２データの演算結果の符号と前記組合せ値とを基に、前記演算結果にオーバーフローがあるか否かを判断するステップとを備えるので、オーバーフローをあらかじめ予測することにより検出を高速化し、演算時間の短縮を図ることができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００２５】
［実施形態１］
まず、本発明の原理について説明すると、データ１とデータ２が共に正の数である場合、又は、データ１とデータ２が共に負の数である場合にのみ加算によりオーバーフローが発生する可能性があり、他方、データ１とデータ２のうちの一方が正の数であり、他方が負の数である場合には、加算によりオーバーフローが発生する可能性はない。
【００２６】
データ１とデータ２が共に正の数である場合には、符号１と符号２は共に０であり、従って、「符号ビットからの桁上がり」は常に発生しない。従って、この場合には、「符号ビットへの桁上がり」が発生した場合に、オーバーフローが発生することとなる。
【００２７】
また、データ１とデータ２が共に負の数である場合には、符号１と符号２は共に１であり、従って、「符号ビットからの桁上がり」は常に発生する。従って、この場合には、「符号ビットへの桁上がり」が発生しない場合に、オーバーフローが発生することとなる。
【００２８】
この原理に従ったファームウェア又はソフトウェアによる処理を図３に示す。これは、例えば、アッセンブラにより作成されたプログラムを実行することにより実現される。
【００２９】
図３を参照すると、サイクル１では、符号付きデータ１と符号付きデータ２を用意する。サイクル２では、データ１とデータ２の加算を行い、符号１と符号２の論理和を算出し、符号１と符号２の論理積を算出する。サイクル３では、論理和の値が０ならば、予測フラグ１をＯＮにして、論理積の値が１ならば、予測フラグ２をＯＮにする。サイクル４では、予測フラグ１がＯＮであり、且つ、加算結果の符号（「符号ビットへの桁上がり」）が１ならば、オーバーフローを検出し、予測フラグ２がＯＮであり、且つ、加算結果の符号（「符号ビットへの桁上がり」）が０ならば、オーバーフローを検出する。
【００３０】
また、サイクル３を行わずに、サイクル４において、論理和が０であり、且つ、加算結果の符号（「符号ビットへの桁上がり」）が１ならば、オーバーフローを検出し、論理積が１であり、且つ、加算結果の符号（「符号ビットへの桁上がり」）が０ならば、オーバーフローを検出するようにしてもよい。
【００３１】
予測フラグ１と予測フラグ２が共にＯＦＦである場合には、直ちに、加算によるオーバーフローの発生はありえないと判断しても良い。又は、論理和が１であり、且つ、論理積が０である場合には、直ちに、加算によるオーバーフローの発生はありえないと判断しても良い。
【００３２】
図４は、上記の方法をハードウェアを用いて行う場合のオーバーフロー検出装置の構成を示す。
【００３３】
図３と図４を参照すると、サイクル２の加算は、加算器１０１が行う。サイクル２の論理和の算出は、論理和ゲート１０３が行う。サイクル２の論理積の算出は、論理積ゲート１０５が行う。
【００３４】
サイクル３の予測フラグ１の設定は、予測フラグ１設定部１０７が行う。予測フラグ１設定部１０７は、具体的には、反転ゲートを備える。サイクル３の予測フラグ２の設定は、予測フラグ２設定部１０９が行う。予測フラグ２設定部１０９は、非反転ゲートを備える。
【００３５】
サイクル４の１つめのオーバーフローの検出は、論理積ゲート１１１が行う。サイクル４の２つめのオーバーフローの検出は、反転ゲート１１３と論理積ゲート１１５が行う。２つのオーバーフロー検出フラグを１つにまとめることは論理和ゲート１１７が行う。
【００３６】
オーバーフローがあり得ないことを示すオーバーフロー不検出予測信号は、反転ゲート１１９、１２１及び論理積ゲート１２３が行う。
【００３７】
［実施形態２］
まず、本発明の原理について説明すると、データ１とデータ２のうちの一方が正の数であり、他方が負の数である場合、データ１からデータ２を引く減算によりオーバーフローが発生する可能性があり、他方、データ１とデータ２が共に正の数である場合、又は、データ１とデータ２が共に負の数である場合には、データ１からデータ２を引く減算によりオーバーフローが発生する可能性はない。
【００３８】
データ１が正の数であり、データ２が負の数である場合には、”符号１”と”符号２の反転値”は共に０であり、従って、「符号ビットからの桁上がり」は常に発生しない。従って、この場合には、「符号ビットへの桁上がり」が発生した場合に、オーバーフローが発生することとなる。
【００３９】
また、データ１が負の数でありデータ２が正の数である場合には、”符号１”と”符号２の反転値”は共に１であり、従って、「符号ビットからの桁上がり」は常に発生する。従って、この場合には、「符号ビットへの桁上がり」が発生しない場合に、オーバーフローが発生することとなる。
【００４０】
この原理に従ったファームウェア又はソフトウェアによる処理を図５に示す。これは、例えば、アッセンブラにより作成されたプログラムを実行することにより実現される。
【００４１】
図５を参照すると、サイクル１では、符号付きデータ１と符号付きデータ２を用意する。サイクル２では、データ１からデータ２を引く減算を行い、”符号１”と”符号２の反転値”の論理和を算出し、”符号１”と”符号２の反転値”の論理積を算出する。サイクル３では、論理和の値が０ならば、予測フラグ１をＯＮにして、論理積の値が１ならば、予測フラグをＯＮにする。サイクル４では、予測フラグ１がＯＮであり、且つ、減算結果の符号（「符号ビットへの桁上がり」）が１ならば、オーバーフローを検出し、予測フラグ２がＯＮであり、且つ、減算結果の符号（「符号ビットへの桁上がり」）が０ならば、オーバーフローを検出する。
【００４２】
また、サイクル３を行わずに、サイクル４において、論理和が０であり、且つ、減算結果の符号（「符号ビットへの桁上がり」）が１ならば、オーバーフローを検出し、論理積が１であり、且つ、減算結果の符号（「符号ビットへの桁上がり」）が０ならば、オーバーフローを検出するようにしてもよい。
【００４３】
予測フラグ１と予測フラグ２が共にＯＦＦである場合には、直ちに、減算によるオーバーフローの発生はありえないと判断しても良い。又は、論理和が１であり、且つ、論理積が０である場合には、直ちに、減算によるオーバーフローの発生はありえないと判断しても良い。
【００４４】
図６は、上記の方法をハードウェアを用いて行う場合のオーバーフロー検出装置の構成を示す。
【００４５】
図５と図６を参照すると、サイクル２の減算は、加算器１０１が行う。サイクル２の論理和の算出は、反転ゲート１２５と論理和ゲート１０３が行う。サイクル２の論理積の算出は、反転ゲート１２５と論理積ゲート１０５が行う。
【００４６】
サイクル３の予測フラグ１の設定は、予測フラグ１設定部１０７が行う。予測フラグ１設定部１０７は、具体的には、反転ゲートを備える。サイクル３の予測フラグ２の設定は、予測フラグ２設定部１０９が行う。予測フラグ２設定部１０９は、非反転ゲートを備える。
【００４７】
サイクル４の１つめのオーバーフローの検出は、論理積ゲート１１１が行う。サイクル４の２つめのオーバーフローの検出は、反転ゲート１１３と論理積ゲート１１５が行う。２つのオーバーフロー検出フラグを１つにまとめることは論理和ゲート１１７が行う。
【００４８】
オーバーフローがあり得ないことを示すオーバーフロー不検出予測信号は、反転ゲート１１９、１２１及び論理積ゲート１２３が行う。
【産業上の利用可能性】
【００４９】
本発明は、コンピュータ等において整数演算のオーバーフローを検出するために利用することができる。
【図面の簡単な説明】
【００５０】
【図１】オーバーフロー検出の原理を説明するための図である。
【図２】従来例によるオーバーフロー検出方法を示すフローチャートである。
【図３】本発明の実施形態１によるオーバーフロー検出方法を示すフローチャートである。
【図４】図３に示すオーバーフロー検出方法をハードウェアにより行う場合のオーバーフロー検出装置の構成を示すブロック図である。
【図５】本発明の実施形態２によるオーバーフロー検出方法を示すフローチャートである。
【図６】図５に示すオーバーフロー検出方法をハードウェアにより行う場合のオーバーフロー検出装置の構成を示すブロック図である。
【符号の説明】
【００５１】
１０１  加算器
１０３  論理和ゲート
１０５  論理積ゲート
１０７  予測フラグ１設定部
１０９  予測フラグ２設定部
１１１  論理積ゲート
１１３  反転ゲート
１１５  論理積ゲート
１１７  論理和ゲート
１１９  反転ゲート
１２１  反転ゲート
１２３  論理積ゲート
１２５  反転ゲート
【図１】
2006277019.tif 000003
【図２】
2006277019.tif 000004
【図３】
2006277019.tif 000005
【図４】
2006277019.tif 000006
【図５】
2006277019.tif 000007
【図６】
2006277019.tif 000008