(57)【要約】【課題】命令セットの異なる２つのコンフィギュラブルプロセッサをスリムなシステム構成でブートできる。【解決手段】マルチプロセッサシステム１０は、基本命令セットと該基本命令セットとは異なる自己に固有の第１追加命令セットとを有する第１サブプロセッサ２１と、基本命令セットと該基本命令セットとは異なる自己に固有の第２追加命令セットとを有する第２サブプロセッサ２２と、第１及び第２サブプロセッサ２１，２２に接続され第１及び第２追加命令セットを使用せず基本命令セットを使用して作成されたマシンコードのブートプログラムを格納するブートＲＯＭ３４とを備えている。そして、第１及び第２サブプロセッサ２１，２２は、ブートを実行するときに、ブートＲＯＭ３４に記憶されたマシンコードのブートプログラムにしたがってブートを実行する。【選択図】図１
2010015295.tif 000002
【特許請求の範囲】
【請求項１】
基本命令セットと該基本命令セットとは異なる自己に固有の第１追加命令セットとを有する第１コンフィギュラブルプロセッサと、
前記基本命令セットと該基本命令セットとは異なる自己に固有の第２追加命令セットとを有する第２コンフィギュラブルプロセッサと、
前記第１及び第２コンフィギュラブルプロセッサに接続され、前記第１及び第２追加命令セットを使用せず前記基本命令セットを使用して作成されたマシンコードのブートプログラムを格納する共有メモリと、
を備え、
前記第１及び第２コンフィギュラブルプロセッサは、ブートを実行するときに、前記共有メモリに記憶された前記マシンコードのブートプログラムにしたがってブートを実行する、
マルチプロセッサシステム。
【請求項２】
前記マシンコードのブートプログラムは、ソースコードのブートプログラムを、前記基本命令セットのみを有する基本のコンフィギュラブルプロセッサに対応した基本コンパイラを用いてコンパイルしたものである、
請求項１に記載のマルチプロセッサシステム。
【請求項３】
請求項１又は２に記載のマルチプロセッサシステムであって、
前記第１及び第２コンフィギュラブルプロセッサを含む複数のコンフィギュラブルプロセッサ
を備え、
前記複数のコンフィギュラブルプロセッサは、いずれも前記基本命令セットを有し、ブートを実行するときに、前記共有メモリに記憶された前記マシンコードのブートプログラムにしたがってブートを実行する、
マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関する。
【背景技術】
【０００２】
従来より、複数のプロセッサと１つのブートＲＯＭとがシステムバスを介して接続されたマルチプロセッサシステムが知られている。例えば、特許文献１では、すべてのプロセッサに対するリセット信号が解除されたあと、各プロセッサはブートプログラムが格納されたブートＲＯＭの先頭アドレスの命令をフェッチするためにシステムバス獲得要求をシステムバス調停機構に出力する。システムバス調停機構は、各プロセッサに対して、優先順位を規定するある規則に従って、システムバス獲得要求の単位でシステムバス使用許可を送出する。そして、システムバス使用許可を受信したプロセッサは、システムバスを獲得してブートを実行する。
【特許文献１】特開平８−２７２７５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
こうしたマルチプロセッサシステムでは、各プロセッサはすべて同じ命令セットを有することを前提としている。このため、ブートＲＯＭに格納されたブートプログラムのオブジェクトプログラムは、そのブートプログラムのソースプログラムをいずれのプロセッサに対応するコンパイラを用いてコンパイルしたものであったとしても、すべてのプロセッサにおいて支障なくブートが可能となる。
【０００４】
しかしながら、プロセッサとしてコンフィギュラブルプロセッサを採用した場合には、ブートを実行する際に不具合が生じることがある。すなわち、コンフィギュラブルプロセッサは、加算や減算などを含む基本命令セットのほか、オプションとして予め用意された命令セットをオペレータが選択して追加したり、オペレータが自分自身で作成した命令セットを追加したりすることができるものである。このため、例えば、あるコンフィギュラブルプロセッサが持つ命令セットには乗算が含まれるものの、他のコンフィギュラブルプロセッサが持つ命令セットには乗算が含まれない場合があり得る。その場合、前者のコンフィギュラブルプロセッサに対応するコンパイラを用いてブートプログラムのソースプログラムをコンパイルすると、ソースプログラムに加算処理があったときにその加算処理を乗算処理に置き換えた方が処理速度が速くなるのであれば乗算処理に置き換えてブートプログラムのマシンコードプログラムが生成される。そして、このマシンコードプログラムを、命令セットに乗算が含まれていないコンフィギュラブルプロセッサに実行させようとすると、このコンフィギュラブルプロセッサは乗算処理を実行できないためブートすることができない。したがって、複数のコンフィギュラブルプロセッサがシステムバスに接続されたマルチプロセッサシステムでは、各プロセッサに対応したコンパイラでブートプログラムのソースプログラムをコンパイルしたマシンコードプログラムを、各プロセッサにローカル接続した個別のブートＲＯＭに格納していた。
【０００５】
本発明は、上述した課題に鑑みなされたものであり、命令セットの異なる２つのコンフィギュラブルプロセッサをスリムなシステム構成でブートできるようにすることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明のマルチプロセッサシステムは、
基本命令セットと該基本命令セットとは異なる自己に固有の第１追加命令セットとを有する第１コンフィギュラブルプロセッサと、
前記基本命令セットと該基本命令セットとは異なる自己に固有の第２追加命令セットとを有する第２コンフィギュラブルプロセッサと、
前記第１及び第２コンフィギュラブルプロセッサに接続され、前記第１及び第２追加命令セットを使用せず前記基本命令セットを使用して作成されたマシンコードのブートプログラムを格納する共有メモリと、
を備え、
前記第１及び第２コンフィギュラブルプロセッサは、ブートを実行するときに、前記共有メモリに記憶された前記マシンコードのブートプログラムにしたがってブートを実行するものである。
【０００８】
このマルチプロセッサシステムでは、基本命令セットと第１追加命令セットとを有する第１コンフィギュラブルプロセッサも、基本命令セットと第２追加命令セットとを有する第２コンフィギュラブルプロセッサも、ブートを実行するときには、共有メモリに記憶されたマシンコードのブートプログラムにしたがってブートを実行する。ここで、マシンコードのブートプログラムは、第１及び第２追加命令セットを使用せず共通の基本命令セットを使用して作成されたものである。このため、第１及び第２コンフィギュラブルプロセッサは、支障なくブートを実行することができる。したがって、命令セットの異なる２つのコンフィギュラブルプロセッサにつき、ブート用のメモリを個別に用意したりマシンコードのブートプログラムを複数用意したりする必要がないため、スリムなシステム構成でブートを実行することができる。
【０００９】
本発明のマルチプロセッサシステムにおいて、前記マシンコードのブートプログラムは、ソースコードのブートプログラムを、前記基本命令セットのみを有する基本のコンフィギュラブルプロセッサに対応した基本コンパイラを用いてコンパイルしたものとしてもよい。こうすれば、第１及び第２コンフィギュラブルプロセッサの両方とも支障なくブートを実行することのできるマシンコードのブートプログラムを比較的容易に作成することができる。
【００１０】
本発明のマルチプロセッサシステムにおいて、前記第１及び第２コンフィギュラブルプロセッサを含む複数のコンフィギュラブルプロセッサを備え、前記複数のコンフィギュラブルプロセッサは、いずれも前記基本命令セットを有し、ブートを実行するときに、前記共有メモリに記憶された前記マシンコードのブートプログラムにしたがってブートを実行してもよい。こうすれば、マルチプロセッサシステムに備えられた複数のコンフィギュラブルプロセッサにつき、ブート用のメモリを個別に用意したりマシンコードのブートプログラムを複数用意したりする必要がないため、一層スリムなシステム構成でブートを実行することができる。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本発明の一実施形態であるマルチプロセッサシステム１０の構成の概略を示す構成図である。
【００１２】
本実施形態のマルチプロセッサシステム１０は、図１に示すように、バス１２を介して、メインプロセッサ１１と、このメインプロセッサ１１からの指示に基づいて動作する第１〜第６サブプロセッサ２１〜２６と、バス１２の使用許可を調停したり共有メモリであるＤＤＲ−ＳＤＲＡＭ（以下、ＤＤＲという）３３のアクセスを制御したり各サブプロセッサ２１〜２６のリセットを制御したりするコントローラ３１とが接続されている。また、コントローラ３１には、各サブプロセッサ２１〜２６が実行するプログラムが格納されたプログラム格納用ＲＯＭ３２、このプログラム格納用ＲＯＭ３２に格納されたジャンプテーブルや各サブプロセッサ用プログラムがロードされるＤＤＲ３３、各サブプロセッサ２１〜２６に共通のブートプログラムが格納されたブートＲＯＭ３４などが接続されている。なお、ジャンプテーブルとは、第１〜第６サブプロセッサ２１〜２６のそれぞれの識別番号ＩＤに対応するアドレスを記憶したテーブルである。
【００１３】
メインプロセッサ１１や第１〜第６サブプロセッサ２１〜２６は、図示しないが、いずれも、計算に使われるデータを一時的に記憶するレジスタ、実際に計算を実行する算術論理ユニット、バス１２に対してデータや信号の送受を行うバスインタフェース、プロセッサ内の各モジュール（レジスタ、算術論理ユニット、バスインタフェースなど）の動作を制御するシーケンサなどを備えている。
【００１４】
メインプロセッサ１１は、第１〜第６サブプロセッサ２１〜２６に指令を出力することにより、印刷制御の全体を司る役割を果たすものである。ここで、印刷制御とは、印刷対象の画像データに基づいて印刷イメージデータを生成し、その印刷イメージデータが図示しない印刷処理装置によって印刷されるよう制御することをいう。
【００１５】
第１サブプロセッサ２１は、コンフィギュラブルプロセッサであり、図２に示すように、各サブプロセッサ２１〜２６に共通の基本命令セットと該基本命令セットとは異なる自己に固有の第１追加命令セットとを有している。ここで、基本命令セットとしては、例えば、加算、減算、ループなどが挙げられる。第１追加命令セットには、予めこの第１サブプロセッサ２１に用意された命令セットの中からオペレータが選択したオプション命令セットとオペレータが自身によって作成した自由作成命令セットとが含まれる。前者としては１６ビット乗算やバイトアクセス、オーバーヘッドなしのループなどが挙げられ、後者としては加算して乗算して更に加算する処理などが挙げられる。また、第１サブプロセッサ２１が実行する第１サブプロセッサ用プログラム（ブートプログラムを除く）は、ＤＤＲ３３に格納されているが、図３に示すように、第１サブプロセッサ２１が有する命令セット（基本命令セットと第１追加命令セットとを含む命令セット）に対応する第１コンパイラによって、ソースコードプログラムがコンパイルされてマシンコードプログラムに変換されたものである。これらのプログラムは、ＤＤＲ３３のジャンプテーブルから第１サブプロセッサ２１の識別番号ＩＤに対応するアドレスを取得し、その取得したアドレスを使ってＤＤＲ３３から読み出すようになっている。
【００１６】
第２〜第６サブプロセッサ２２〜２６は、第１サブプロセッサ２１と同様の構成であり、図２に示すように、共通の基本命令セットのほか自己に固有の第２〜第６追加命令セットをそれぞれ有している。また、第２〜第６サブプロセッサ２２〜２６が実行する第２〜第６サブプロセッサ用プログラム（ブートプログラムを除く）は、ＤＤＲ３３に格納されているが、図３に示すように、第２〜第６サブプロセッサ２２〜２６が有する各命令セットに対応する第２〜第６コンパイラによって、それぞれソースコードプログラムがコンパイルされてマシンコードプログラムに変換されたものである。これらのプログラムは、第１サブプロセッサ２１と同様にしてＤＤＲ３３から読み出すようになっている。
【００１７】
プログラム格納用ＲＯＭ３２は、メインプロセッサ用プログラムや各サブプロセッサ用プログラムを格納している。例えば、第１サブプロセッサ用プログラムとしては画像処理やリサイズ、レイアウトのプログラムが格納され、第２サブプロセッサ用プログラムとしてはＪＰＥＧ展開プログラムが格納され、第３サブプロセッサ用プログラムとしてはフォーマット変換プログラムが格納され、第４サブプロセッサ用プログラムとしては画像補正プログラムが格納され、第５サブプロセッサ用プログラムとしては色変換やハーフトーンエンコードのプログラムが格納され、第６サブプロセッサ用プログラムとしてはハーフトーンデコードのプログラムが格納されている。また、プログラム格納用ＲＯＭ３２は、前出のジャンプテーブルも格納している。
【００１８】
ＤＤＲ３３は、ジャンプテーブルと、このジャンプテーブルに記憶されたアドレスを先頭アドレスとする各サブプロセッサ用プログラムとを格納している。ジャンプテーブルや各サブプロセッサ用プログラムは、初期化が終了したあとのメインプロセッサ１１によってプログラム格納用ＲＯＭ３２からＤＤＲ３３へロードされる。
【００１９】
ブートＲＯＭ３４は、第１〜第６サブプロセッサ２１〜２６の共有メモリであり、第１〜第６サブプロセッサ２１〜２６に共通のブートプログラムを格納している。このブートプログラムは、図４に示すように、第１〜第６サブプロセッサ２１〜２６に共通の基本命令セットに対応する基本コンパイラによってソースコードのブートプログラムがコンパイルされてマシンコードのブートプログラムに変換されたものである。このブートプログラムは、ブートＲＯＭ３４の先頭アドレスを使って読み出せるようになっている。
【００２０】
なお、コントローラ３１は、メインプロセッサ１１や各サブプロセッサ２１〜２６とバス１２とは別の信号線１１ａ，２１ａ〜２６ａによっても接続されている。これらの信号線１１ａ，２１ａ〜２６ａは、例えばメインプロセッサ１１や各サブプロセッサ２１〜２６から出力されたバス獲得要求ＲＥＱをコントローラ３１が入力したり、コントローラ３１から出力されたバス使用許可ＧＮＴをメインプロセッサ１１や各サブプロセッサ２１〜２６が入力したりするのに利用される。
【００２１】
次に、こうして構成された本実施形態のマルチプロセッサシステム１０の動作、特にシステムリセットを解除する場合の動作について説明する。図５及び図６は、それぞれ、メインプロセッサ１１及び第１〜第６サブプロセッサ２１〜２６により実行される処理ルーチンのフローチャートである。ここで、システムリセット信号がオンのときにはコントローラ３１がメインプロセッサ１１及び第１〜第６サブプロセッサ２１〜２６のそれぞれに対してリセット信号を出力してリセットをかけ続ける。その結果、各プロセッサ１１，２１〜２６は動作を全く実行しない状態となり、各種のフラグはすべてリセットされてオフの状態となる。一方、システムリセット信号がオフのときつまりシステムリセットが解除されると、コントローラ３１は、各プロセッサ１１，２１〜２６のそれぞれに対して出力していたリセット信号を停止することによりリセットを解除する。図５及び図６の処理ルーチンは、このようにリセットが解除されたときに開始される。
【００２２】
メインプロセッサ１１は、リセットが解除されると、まず、各種の初期設定を実行したあと、プログラム格納用ＲＯＭ３２からジャンプテーブルや各サブプロセッサ用プログラムをＤＤＲ３３にロードすると共に、図示しないＵＳＢの初期化や割り込みのプライオリティの設定などを行う（ステップＳ１００）。そして、これらの設定が終了したあと、ＤＤＲ設定終了フラグをオンにし（ステップＳ１１０）、その後、プログラム格納用ＲＯＭ３２に格納されたメインプロセッサ用のアプリプログラムを実行し（ステップＳ１２０）、アプリプログラムの実行後、この処理ルーチンを終了する。
【００２３】
一方、第１〜第６サブプロセッサ２１〜２６は、リセットが解除されると、まず、ブートＲＯＭ３４の先頭アドレスの命令をフェッチするためバス獲得要求ＲＥＱをコントローラ３１に出力する（ステップＳ２００）。コントローラ３１は、バス獲得要求ＲＥＱを出力してきた第１〜第６サブプロセッサ２１〜２６につき、予め優先順位を規定した規則にしたがって、どのサブプロセッサにバス使用許可ＧＮＴを与えるかを決定し、そのサブプロセッサにバス使用許可ＧＮＴを与える。ここでは、序数（つまり第ｎサブプロセッサの数字ｎ）が小さいほど優先順位が高いが、一度バス使用許可ＧＮＴを与えたサブプロセッサの優先順位は最下位に変更するものとする。また、コントローラ３１は、バス使用許可ＧＮＴを与えなかったサブプロセッサに対してリセット信号を出力する。このため、ここでは、動作するプロセッサは第１サブプロセッサ２１だけとなる。第１サブプロセッサ２１は、コントローラ３１からバス使用許可ＧＮＴを入力すると、ブートＲＯＭ３４からブートプログラムのコードを読み込んでプロセッサ自身の初期化などのブートを実行し（ステップＳ２１０）、その後、この処理ルーチンを終了する。
【００２４】
ここで、ブートＲＯＭ３４に格納されているマシンコードのブートプログラムは、ソースコードのブートプログラムを第１〜第６サブプロセッサ２１〜２６に共通の基本命令セットに対応するコンパイラによってコンパイルしたものであるため、第１サブプロセッサ２１が実施不能な命令は存在しない。したがって、第１サブプロセッサ２１はブートを開始したあと滞りなくブートを終了することができる。
【００２５】
さて、第１サブプロセッサ２１のブートが終了してバス１２が解放されると、コントローラ３１は第２〜第６サブプロセッサ２２〜２６へのリセット信号を停止することによりリセットを解除する。すると、第２〜第６サブプロセッサ２２〜２６はバス獲得要求ＲＥＱをコントローラ３１に出力する（ステップＳ２００）。コントローラ３１は、バス獲得要求ＲＥＱを出力してきた第２〜第６サブプロセッサ２２〜２６につき、今度は第２サブプロセッサ２２にバス使用許可ＧＮＴを与えると共に、第３〜第６サブプロセッサ２３〜２６へリセット信号を出力する。バス使用許可ＧＮＴが与えられた第２サブプロセッサ２２は、ブートＲＯＭ３４からブートプログラムのコードを読み込んでブートを実行し（ステップＳ２１０）、その後、この処理ルーチンを終了する。そして、第２サブプロセッサ２２のブートが終了してバス１２が解放されると、コントローラ３１は第３〜第６サブプロセッサ２３〜２６のリセットを解除する。このようにして、コントローラ３１は、順次、第１〜第６サブプロセッサ２１〜２６にバス使用許可ＧＮＴを与えるため、第１〜第６サブプロセッサ２２〜２６は、順次、ブートを実行する。そして、すべてのブートが終了した後、第１〜第６サブプロセッサ２２〜２６は、ＤＤＲ設定終了フラグがオンになるのを待って、適時、ＤＤＲ３３から自身のサブプロセッサ用プログラムを読み出して実行する。
【００２６】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の第１〜第６サブプロセッサ２１〜２６のいずれか２つが本発明の第１及び第２コンフィギュラブルプロセッサに相当し、ブートＲＯＭ３４が共有メモリに相当する。
【００２７】
以上詳述した本実施形態のマルチプロセッサシステム１０によれば、マシンコードのブートプログラムは共通の基本命令セットを使用して作成されたものであるため、第１〜第６サブプロセッサ２１〜２６はいずれも支障なくブートを実行することができる。したがって、命令セットの異なる第１〜第６サブプロセッサ２１〜２６につき、ブート用のメモリを個別に用意したりマシンコードのブートプログラムを複数用意したりする必要がないため、スリムなシステム構成でブートを実行することができる。
【００２８】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００２９】
例えば、上述した実施形態では、第１〜第６サブプロセッサ２１〜２６のすべてに共通のブートプログラムを作成してブートＲＯＭ３４に格納したが、例えば、第１〜第６サブプロセッサ２１〜２６のうちのｍ個のサブプロセッサ（ｍは２〜５の整数）に共通のブートプログラムを作成してブートＲＯＭ３４に格納し、残りのサブプロセッサについては個別のブートプログラムを作成してブートＲＯＭ３４（又はブートＲＯＭ３４以外のメモリ）に格納してもよい。こうしても、第１〜第６サブプロセッサ２１〜２６のそれぞれに個別のブートプログラムを作成する場合に比べて、スリムなシステム構成でブートを実行することができるという効果が得られる。なお、個別のブートプログラムとは、ソースコードのブートプログラムを、各サブプロセッサに用いる固有の命令セット（基本命令セットと追加命令セットとを含む命令セット）に対応するコンパイラによってコンパイルされたものをいう。
【００３０】
上述した実施形態では、マルチプロセッサシステム１０はメインプロセッサ１１と第１〜第６サブプロセッサ２１〜２６とを含むものとしたが、メインとサブという関係を持たない同列のプロセッサを複数含むものとしてもよい。
【００３１】
上述した実施形態の基本コンパイラとして、基本命令セットのみを有する基本のサブプロセッサを用意し、そのサブプロセッサに対応したコンパイラを用いてもよい。こうすれば、第１〜第６サブプロセッサ２１〜２６のすべてが支障なくブートを実行することのできるマシンコードのブートプログラムを比較的容易に作成することができる。
【００３２】
上述した実施形態では、各サブプロセッサ２１〜２６は図６に示す処理ルーチンを実行するものとして説明したが、図７に示す処理ルーチンを実行するとしてもよい。すなわち、各サブプロセッサ２１〜２６は、リセットが解除されると、まず、ブートＲＯＭ３４の先頭アドレスの命令をフェッチするためバス獲得要求ＲＥＱをコントローラ３１に出力し（ステップＳ３００）、コントローラ３１からバス使用許可ＧＮＴが与えられるとブートのための複数命令のうちの一つを読み出して実行する（ステップＳ３１０）。その後、ブートのための複数命令のすべてを終了したかを判定し（ステップＳ３２０）、まだ複数命令のすべてを終了していない場合には、次の命令をフェッチするために再びステップＳ３００に戻る。一方、ステップＳ３２０でブートのための複数命令のすべてを終了していた場合には、この処理ルーチンを終了する。このようにしても上述した実施形態と同様の効果が得られる。
【００３３】
上述した実施形態では、メインプロセッサ１１のバス獲得要求ＲＥＱやバス使用許可ＧＮＴに関する説明を省略したが、例えば、バスの使用許可を調停する際に用いる優先順位を規定した規則をメインプロセッサ１１が最優先になるように定めてもよいし、メインプロセッサ１１が最下位になるように定めてもよい。メインプロセッサ１１が最優先になるように定められている場合には、メインプロセッサ１１によるＤＤＲ３３の設定などの処理が終了したあと第１〜第６サブプロセッサ２１〜２６のブートが順次実行されることになる。また、メインプロセッサ１１が最下位になるように定められている場合には、第１〜第６サブプロセッサ２１〜２６のブートがすべて終了したあとメインプロセッサ１１によるＤＤＲ３３の設定などの処理が実行されることになる。
【００３４】
上述した実施形態では、印刷制御を実行するマルチプロセッサシステム１０に本発明を適用したが、印刷制御以外の制御を実行するマルチプロセッサシステムに本発明を適用してもよい。
【図面の簡単な説明】
【００３５】
【図１】マルチプロセッサシステム１０の構成の概略を示す構成図。
【図２】各サブプロセッサ２１〜２６の命令セットを示す説明図。
【図３】サブプロセッサ用プログラムのコンパイルの様子を表す説明図。
【図４】ブートプログラムのコンパイルの様子を表す説明図。
【図５】メインプロセッサ１１の処理ルーチンのフローチャート。
【図６】各サブプロセッサ２１〜２６の処理ルーチンのフローチャート。
【図７】各サブプロセッサ２１〜２６の処理ルーチン（変形例）のフローチャート。
【符号の説明】
【００３６】
１０  マルチプロセッサシステム、１１  メインプロセッサ、１１ａ  信号線、１２  バス、２１〜２６  第１〜第６サブプロセッサ、２１ａ〜２６ａ  信号線、３１  コントローラ、３２  プログラム格納用ＲＯＭ、３３  ＤＤＲ−ＳＤＲＡＭ、３４  ブートＲＯＭ。
【図１】
2010015295.tif 000003
【図２】
2010015295.tif 000004
【図３】
2010015295.tif 000005
【図４】
2010015295.tif 000006
【図５】
2010015295.tif 000007
【図６】
2010015295.tif 000008
【図７】
2010015295.tif 000009