(57)【特許請求の範囲】
【請求項１】
Ｎ個のプロセッサと、主記憶と、プロセッサと主記憶を結合する相互結合網と、当該Ｎ個のプロセッサおよび相互結合網とバスまたはパスを介して接続されたＮ個の通信レジスタモジュールとを備え、当該通信レジスタモジュールは複数の通信レジスタを有し、該通信レジスタの各々は、相異なる通信レジスタモジュール内の対応するレジスタと同一の内容を保持するマルチプロセッサシステムであって、
前記Ｎ個の通信レジスタモジュールを結合するインターフェースを有し、
前記プロセッサからのロック処理要求を当該プロセッサから前記バスまたはパスを介して要求されるロード命令によって実現し、
当該ロード命令がプロセッサからのロック処理要求に相当する場合には、要求元のプロセッサに対応する通信レジスタモジュール内の通信レジスタの値を参照し、
当該レジスタの値がロック可能を示す際には前記インターフェースを介して全通信レジスタモジュール内の対応する通信レジスタに同一のロック値を設定し、
前記ロード命令へのリプライとしてロック成功を示す値を前記バスまたはパスを介して返すことを特徴とするマルチプロセッサシステム。
【請求項２】
前記インターフェースは、前記通信レジスタモジュールへの同一値書き込み要求は全通信レジスタモジュールで同時に受け付けられるように制御され、前記通信レジスタモジュール内に、前記インターフェースからの要求を受け付ける入力制御回路と前記インターフェースに要求を出力する出力制御回路と、前記プロセッサからのリクエストを受け付けるリクエスト制御回路と、前記リクエスト制御回路の出力と前記入力制御回路の出力のいずれかを選択するセレクタとをさらに有し、
前記セレクタは、前記入力制御回路からの出力を常に優先して選択するよう制御され、  また前記入力制御回路は、前記インターフェースからの入力要求を監視し、前記出力制御回路がロック値を前記インターフェースに出力する前に前記インターフェースから前記通信レジスタへの設定指示を入力した場合は、前記出力制御回路からのロック値出力を取り消すよう制御されることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
プロセッサからのアンロック処理要求に対しては、前記インターフェースを介して全通信レジスタモジュール内の対応する通信レジスタに同一のアンロック値を設定することを特徴とする、請求項１に記載のマルチプロセッサシステム。
【請求項４】
前記通信レジスタモジュールはデコーダをさらに有し、
該デコーダは、プロセッサからのロード要求のアクセスアドレスが第１の特定の値である時、該ロード要求をある通信レジスタへのロック要求とみなし、またロード要求のアクセスアドレスが第２の特定の値である時、該ロード要求を前記通信レジスタへのリード要求であるとみなし、
プロセッサからのストア要求のアクセスアドレスが前記第１の特定の値である時、該ストア要求を前記通信レジスタへのアンロック要求とみなし、
またストア要求のアクセスアドレスが前記第２の特定の値である時、該ストア要求を前記通信レジスタへのライト要求であるとみなすことを特徴とする請求項１に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサシステムにおける通信制御機構に関し、特にロック／アンロック処理を高速化する通信制御機構に関する。
【０００２】
【従来の技術】
マルチプロセッサシステムにおいて効率よいマルチプロセス制御または並列プロセス制御を行うためには、プロセッサ間の高速な同期、排他、通信制御が必要である。そのために通信レジスタと呼ばれる主記憶より高速な共有のレジスタを使用する場合がある。
【０００３】
特開平８−２３５１３７においては、図１に示す構成のマルチプロセッサシステムにおいて、図２に示す構成の通信レジスタを用いたプロセッサ間の高速な同期の例が開示されている。
【０００４】
本従来例では、複数のプロセッサ１０〜１２、主記憶３０、通信レジスタ４０が相互結合網２０で結合されている。通信レジスタ４０はさらにプロセッサ数と同数の通信レジスタモジュール４００〜４０２から構成され、通信レジスタモジュール４００とプロセッサ１０、４０１と１１、４０２と１２は１対１に対応している。各通信レジスタモジュール４００〜４０２は各々複数レジスタから構成される通信レジスタ群５００〜５０２を有する。通信レジスタ群５００〜５０２の相対応する番号のレジスタは通信レジスタモジュール間で同一の値を保持するように制御される。具体的には、プロセッサからの書き込み要求が来た場合は、全通信モジュールに対して同一の値を書き込むよう相互結合網２０、または通信モジュール間インターフェース６００が制御し、プロセッサからの読み出し要求に対しては、各プロセッサに対応する通信レジスタモジュール内のレジスタから値を読み出す。また通信レジスタ群内の相対応する番号のレジスタのうち１つが実体レジスタとしてあらかじめ定められており、たとえばプロセッサ１１からの通信レジスタｒ０へのテストアンドセット要求に対しては、実体レジスタ（たとえば通信レジスタ群５００内のｒ０）の値をテスト後、条件成立であれば全通信レジスタ群５００〜５０２内のｒ０に同一の値をセットする。テスト時に条件不成立であればプロセッサにその旨通知し、プロセッサは条件成立するまでテストアンドセット要求を繰り返す。
【０００５】
また、近年は既存のプロセッサチップを使用し、プロセッサ外に高速化機構を設けることが一般に行われている。プロセッサ外にプロセッサからアクセスするレジスタを設ける方法として、メモリマップドレジスタ方式（MMR方式）を用いることがよく知られている。MMR方式とは、メモリへのアクセスを行うロードストア等の命令で、オペランドアドレスがあらかじめ定められたアドレスである場合に、そのアクセスをプロセッサ外のレジスタのアドレスとみなすものである。
【０００６】
【発明が解決しようとする課題】
特開平８−２３５１３７では、プロセッサ１１はテスト動作を行うために相互結合網２０または通信モジュール間インターフェース６００を介して一旦通信レジスタ群５０１内のｒ０をアクセスし、条件成立であれば再び相互結合網２０または通信モジュール間インターフェース６００を介して全通信レジスタ群へセット値をブロードキャストする。またテスト条件不成立であれば、何回も相互結合網２０または通信モジュール間インターフェース６００を介してテスト動作を繰り返す。これらのアクセスが繰り返されると他のプロセッサによる通信レジスタへのアクセスが阻害される。
【０００７】
解決策として、テスト動作は各プロセッサに対応する通信レジスタモジュールを参照し、テスト条件成立時にのみ相互結合網または通信モジュール間インターフェースを介してセット値をブロードキャストすることが考えられるが、異なるプロセッサでほとんど同時に同一の通信レジスタに対してテストアンドセット命令を実行したときの処理のすり抜けをどうふせぐか、という課題が発生する。本発明では上記を解決する手段を開示する。
【０００８】
また、特開平８−２３１５３７では、プロセッサ外にある通信レジスタへのリード、ライト、テストアンドセット命令をプロセッサがサポートしている場合の技術を開示している。本発明では、上記命令がサポートされていない場合に、プロセッサを変更せずに、ロック処理を高速化する通信レジスタをプロセッサ外に構成する手段を開示する。プロセッサを変更しないと、プロセッサはロード要求にはデータのリプライがあるものとして動作し、ストア要求にはデータのリプライは無いものとして動作する。本条件を守ったて高速にロック処理を行なうと共に、マルチプロセス実行にも対応する通信レジスタ構成手段を開示する。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明のマルチプロセッサシステムは、Ｎ個のプロセッサと、主記憶と、プロセッサと主記憶を結合する相互結合網と、上記プロセッサの各々と対応するＮ個の通信レジスタモジュールから構成され、各通信レジスタモジュールは複数の通信レジスタを有し、該通信レジスタの各々は、相異なる通信レジスタモジュール内の対応するレジスタと同一の内容を保持し、該Ｎ個の通信レジスタモジュールを結合するインターフェースを有し、プロセッサからのロック処理要求に対しては該プロセッサに対応する通信レジスタモジュール内の通信レジスタの値を参照し、ロック可能時には前記インターフェースを介して全通信レジスタモジュール内の対応する通信レジスタに同一のロック値を設定し、またプロセッサからのアンロック処理要求に対しては、前記インターフェースを介して全通信レジスタモジュール内の対応する通信レジスタに同一のアンロック値を設定する。
【００１０】
さらに、前記インターフェースは、前記通信レジスタモジュールへの同一値書き込み要求は全通信レジスタモジュールで同時に受け付けられるように制御され（たとえばバスで構成する）、前記通信レジスタモジュール内に、該インターフェースからの要求を受け付ける入力制御回路と該インターフェースに要求を出力する出力制御回路と、前記プロセッサからのリクエストを受け付けるリクエスト制御回路と、前記リクエスト制御回路の出力と前記入力制御回路の出力のいずれかを選択するセレクタとをさらに有し、前記セレクタは、入力制御回路からの出力を常に優先して選択するよう制御され、また入力制御回路は、インターフェースからの入力要求を監視し、出力制御回路がロック値をインターフェースに出力する前にインターフェースから該通信レジスタへの設定指示を入力した場合は、出力制御回路からのロック値出力を取り消すよう制御する。
【００１１】
前記通信レジスタモジュールはデコーダをさらに有し、該デコーダは、プロセッサからのロード要求のアクセスアドレスが第一の特定の値である時、該ロード要求をある通信レジスタへのロック要求とみなし、またロード要求のアクセスアドレスが第二の特定の値である時、該ロード要求を前記通信レジスタへのリード要求であるとみなし、プロセッサからのストア要求のアクセスアドレスが前記第一の特定の値である時、該ストア要求を前記通信レジスタへのアンロック要求とみなし、またストア要求のアクセスアドレスが前記第二の特定の値である時、該ストア要求を前記通信レジスタへのライト要求であるとみなす。
【００１２】
【発明の実施の形態】
図３に本発明のマルチプロセッサシステムの構成図、図４に通信レジスタの構成図を示す。
【００１３】
通信レジスタモジュール４０１〜４０２は各々プロセッサ１０〜１２と信号線L８０〜８２を介して１対１に接続される。信号線L８０〜L８２は、主記憶をアクセスするためにプロセッサに通常設けられているパスまたはバスである。各プロセッサはアドレス変換機構(図示せず)を備え、信号線L８０〜８２にロードストア要求および主記憶の実アドレスを出力する。通信レジスタモジュール４００〜４０２は各々複数のレジスタから構成される通信レジスタ群５００〜５０２を有し、通信レジスタモジュール間は通信モジュール間バス７００で結合される。通信レジスタ群５００〜５０２内の相対応する番号のレジスタは通信レジスタモジュール間で同一の値を保持するよう制御されている。信号線L８０〜８２上のロードストア要求は、通信レジスタモジュール内のデコーダ４３０〜４３２でデコードされ、要求が主記憶へのアクセス要求である場合は、相互結合網２０を介して主記憶３０をアクセスするよう制御され、要求が通信レジスタへのアクセス要求である場合は、通信モジュール間バス７００を介して通信レジスタ群５００をアクセスするよう制御される。
【００１４】
なお、通信モジュール間バス７００は、全通信レジスタモジュール４００〜４０２へのブロードキャスト書き込み要求が、同時に全通信レジスタモジュールにつくことが保証できれば、バスではなく結合網で構成してもよい。
【００１５】
図６に、通信レジスタの実アドレスマッピング（１６進）の例を示す。プロセッサ１０〜１２は4キロバイトページごとのアドレス変換を行うと仮定する。異なる通信レジスタを異なる４キロバイトごとに１本配置することにより、アドレス変換機構による、プロセスごとのアクセス権限の保護を行うことができる。また、１本の通信レジスタに対し、2種類のアドレスをマッピングする。
【００１６】
図５（１）に信号線L８０〜８２上のロードストア要求リクエストの構成図を、（２）にデコーダ４３０〜４３２によりデコードされた通信レジスタアクセス要求リクエストの構成図を、（３）にL８０〜８２に返るリプライデータの内容を示す。
【００１７】
なお、通信レジスタの内容が、あるプロセッサ番号と一致するとき、そのレジスタはそのプロセッサによりロックされていることを示し、あらかじめ定められた固定値と一致するとき、そのレジスタは非ロック状態であることを示す。
【００１８】
図５（１）のリクエストを（２）の形式にデコードする手順を、デコーダ４３０を例に説明する。デコーダ４３０は、主記憶アクセスリクエスト８００がロード要求の場合、主記憶アドレスを表９００のアドレス１およびアドレス２と比較する。いずれかの通信レジスタのアドレス１（たとえばFF01 0000）と一致した場合、ロック要求を示すリクエストを生成する。Ｒ＃には通信レジスタ番号ｒ０を設定し、ｄａｔａには本要求を発生したプロセッサ番号、この場合は１０を設定する。またいずれかの通信レジスタのアドレス２（たとえばFF02 0000）と一致した場合は、リード要求を示すリクエストを生成する。Ｒ＃には通信レジスタ番号ｒ０を設定し、ｄａｔａには何も設定しない。デコーダ４３０は、主記憶アクセスリクエスト８００がストア要求の場合、主記憶アドレスを表９００のアドレス１およびアドレス２と比較する。いずれかの通信レジスタのアドレス１（たとえばFF01 0000）と一致した場合、アンロック要求を示すリクエストを生成する。Ｒ＃には通信レジスタ番号ｒ０を設定し、ｄａｔａには非ロック状態を示す固定値を設定する。またいずれかの通信レジスタのアドレス２（たとえばFF02 0000）と一致した場合は、ライト要求を示すリクエストを生成する。Ｒ＃には通信レジスタ番号ｒ０を設定し、ｄａｔａにはリクエスト８００のｄａｔａフィールドの値（書き込みデータ）を設定する。
【００１９】
上記のように、ロード要求がロック要求または通信レジスタ読み出し要求に、ストア要求がアンロック要求または通信レジスタ書き込み要求に変化する。プロセッサはロード要求に対してはリプライデータが返ってくるものとして動作し、ストア要求に対しては何も返らないものとして動作する。後述するように、通信レジスタモジュール４００は、（３）に示すリプライデータ形式で、ロック要求に対してはロック要求処理後の通信レジスタ設定値を返し、通信レジスタ読み出し要求に対しては通信レジスタの内容を返す。プロセッサは、返ってきた値が自プロセッサ番号であればロック処理成功、その他の値であればロック処理失敗を検知することができ、プロセッサの変更なしにロック成功、失敗をプロセッサに通知することが可能となる。また、アンロックに対しては、プログラムが正しければ、ロックを確保しているプロセッサのみがアンロック要求をだすはずであり、それに対するリプライがなくても問題は発生しない。さらに、同一の通信レジスタに対し、アドレス１でアクセスするとロック／アンロック要求となるが、アドレス２でアクセスすれば通常のリード／ライト動作となるため、マルチプロセス時の通信レジスタの退避回復も可能となる。
【００２０】
図７に通信レジスタモジュール４００の構成を示す。
【００２１】
L８０から入力された要求はデコーダ４３０により図５（２）に示す形式にデコードされ、リクエスト制御回路４１０に送られる。以下、要求ごとの動作を説明する。
【００２２】
(ａ)ロック要求
ロック要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４４０に送り、それに基づき通信レジスタ群５００内のレジスタの値が読み出され、セレクタ４５０から出力される。比較器４６０は、要求がロック要求の場合、読み出された値が非ロック状態を示す固定値であるか調べる。非ロック状態でなければ、リプライ制御回路４７０に、セレクタ４５０から読み出された値をｄａｔａフィールドに入れてリプライデータを返すよう指示する（ロック失敗）。
【００２３】
非ロック状態であれば、比較器４６０は、セレクタ４８０にセレクタ４５０の出力を選ぶように指示する。それに基づきバス出力制御回路４９０は、バス７００に書き込み値（この場合プロセッサ番号１０）を出力するためのバス権を確保する。確保したら、リプライ制御回路４７０にロック成功状態（プロセッサ番号１０）をｄａｔａフィールドに入れてリプライデータを返すよう指示する。本指示により、バスから通信レジスタ５００に実際に書き込みが行われるより早くプロセッサに結果を返すことが可能となる。バス権を確保し書き込み値をブロードキャストすると、自モジュールを含む全通信レジスタモジュールのバス入力回路４２０に同時に書き込み要求が積まれることになる。セレクタ４４０内の優先制御回路は、バス入力制御回路４２０内の書き込み要求をリクエスト制御回路４１０内の要求より常に優先して選択する。これにより、全通信レジスタモジュールで同時に同一の値を書きこむことが保証される。
【００２４】
バス入力回路４２０は、バス７００からの入力を監視している。バス出力回路４９０がバス権を確保する前に該通信レジスタへの書き込み要求がバス７００から入力されると、信号線L９０を介してバス出力制御回路４９０にロック成功取り消しを指示し、バス出力制御回路４９０はリプライ制御回路４７０にバス７００から入力された書き込み値をｄａｔａフィールドに入れてリプライデータを返すよう指示する。すでに該通信レジスタは非ロック状態なので、バス７００から書き込み要求があるということは、他の通信レジスタモジュールにおいて先にロックが成立したことを意味するので、バス７００から入力された書き込み値は他のプロセッサ＃であり、本リプライデータはロック失敗を示すことになる。
【００２５】
（ｂ）アンロック要求
アンロック要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４４０に送り、それに基づき通信レジスタ群５００内のレジスタの値が読み出され、セレクタ４５０から出力される。比較器４６０は、要求がアンロック要求の場合、読み出された値が自プロセッサ番号１０であるか調べる。自プロセッサ番号でなければ処理は終了する。
【００２６】
自プロセッサ番号であれば、セレクタ４８０にセレクタ４５０の出力を選ぶように指示する。それに基づきバス出力制御回路４９０は、バス７００に書き込み値（この場合非ロック状態を示す固定値）を出力するためのバス権を確保する。バス権を確保し書き込み値をブロードキャストすると、自モジュールを含む全通信レジスタモジュールのバス入力回路４２０に同時に書き込み要求が積まれることになる。セレクタ４４０内の優先回路は、バス入力制御回路４２０内の書き込み要求を常にリクエスト制御回路４１０内の要求より優先して選択するため、全通信レジスタモジュールで同時に同一の値を書きこむことが保証される。
【００２７】
本レジスタに対し、バス権確保までの間に他モジュールから書き込みがくることはない
（ｃ）リード要求
リード要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４４０に送り、それに基づき通信レジスタ群５００内のレジスタの値が読み出され、セレクタ４５０から出力される。リプライ制御回路４７０は出力された値をプロセッサに返す。常にバス入力制御回路４２０の書き込み要求が優先なので、他通信モジュールからの値変更要求とすり抜けることはない。
【００２８】
（ｄ）ライト要求
ライト要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４８０に送り、それに基づきバス出力制御回路４９０は、バス７００に書き込み値（この場合ｄａｔａフィールドで指定された書き込みデータ）を出力するためのバス権を確保する。バス権を確保し書き込み値をブロードキャストすると、自モジュールを含む全通信レジスタモジュールのバス入力回路４２０に同時に書き込み要求が積まれ、同時に通信レジスタ群５００に書き込みが行われる
＜その他の実施の形態＞
上記実施の形態では、あるプロセッサで動作するプロセスは常にプロセッサ番号をロック値とする必要があり、マルチプロセスでプロセスごとに異なるロック値を持ちたい場合には、適用ができない。以下その場合の実施の形態例を示す。
【００２９】
図８は通信レジスタモジュール４００の構成図である。図７との相違はプロセス番号レジスタ１０００が追加されていることである。プロセス番号レジスタ１０００は、通信レジスタと同様メモリマップド方式でロードストア命令によりアクセスする。プロセス番号レジスタに対してはリード要求とライト要求しかなく、アドレスは１つマップすればよい。デコーダ４３０は主記憶アクセス要求８００がロード要求で、主記憶アドレスがプロセス番号レジスタを示す場合は、プロセス番号レジスタリード要求を生成し、主記憶アクセス要求８００がストア要求で、主記憶アドレスがプロセス番号レジスタを示す場合は、プロセス番号レジスタライト要求を生成する。
【００３０】
通信レジスタの値がいずれかの通信レジスタモジュール内のプロセス番号レジスタ１０００と同じである時、その通信レジスタはロックされていることを示し、予め定められた固定値と一致する時、そのレジスタは非ロック状態であることを示す。
【００３１】
（ａ）プロセッサ番号レジスタリード要求
リード要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４４０に送り、それに基づきプロセス番号レジスタ１０００の値が読み出され、セレクタ４５０から出力される。リプライ制御回路４７０は出力された値をプロセッサに返す。
【００３２】
（ｂ）プロセッサ番号レジスタライト要求
ライト要求が入力された場合、リクエスト制御回路４１０は、要求をセレクタ４４０に送り、それに基づきプロセス番号レジスタ１０００に値が書き込まれる。プロセス番号レジスタの変更は、対応するプロセッサ上で動作するソフトがおこなうので、他の通信モジュールの動作とは独立に行なうことができる。
【００３３】
（ｃ）ロック要求
ロック要求がリクエスト制御回路４１０に入力された場合の動作は、図７とほとんど同じであるが、ロック処理成功した時に通信レジスタに書き込まれる値は、プロセッサ番号でなくプロセス番号レジスタ１０００の内容である。
【００３４】
プロセッサは、ロック処理要求にたいするリプライデータとして、予めプロセス番号レジスタに設定した値と異なる値が返った場合、ロック失敗と判断することができる。
【００３５】
（ｄ）アンロック要求
アンロック要求がリクエスト制御回路４１０に入力された場合の動作は、図７とほとんど同じであるが、比較器４６０は通信レジスタ群５００から読み出された値がプロセス番号レジスタ１０００の内容と一致しているかを調べる。調べた跡の動作は図７と同様である。
【００３６】
（ｅ）通信レジスタのリード要求、ライト要求
通信レジスタのリード要求もしくはライト要求がリクエスト制御回路４１０に入力された場合の動作は、図７と全く同じである。
【００３７】
【発明の効果】
以上により、以下のことが可能となる。
【００３８】
（１）ロック処理時のテスト動作は自プロセッサに対応する通信レジスタモジュールをアクセスし、テスト条件成立時のみ通信モジュール間バスを介して全通信レジスタに値をセットするので、通信モジュール間バスの使用頻度が低くなり、他プロセッサによる通信レジスタのアクセスを阻害しなくなる。
【００３９】
（２）条件成立後、通信モジュール間バスのバス権を確保したらただちにプロセッサにロック成功を通知することができるので、実際に通信レジスタに値をセットするより前に結果をプロセッサに通知できる。
【００４０】
（３）ロード要求によりロック処理を起動し、ロードリプライデータとしてロック成功／不成功を通知するので、プロセッサの通常のロードストア命令動作を変えることなく、ロック処理を実現できる。
【００４１】
（４）通信レジスタをページごとに１本マップすることにより、プロセスごとのアクセス権限の保護を行なうことができる。また１本のレジスタに２種類のアドレスをマップすることにより、ロードストア命令のみを使用して、ロック要求、アンロック要求、リード要求、ライト要求を実現でき、マルチプロセス動作時の待避回復が可能となる。
【００４２】
（５）ロック状態を示す値を保持するプロセス番号レジスタを設けることにより、マルチプロセス動作時、複数のプロセスが複数のロック値を使ってロック処理を行なうことができる。
【図面の簡単な説明】
【図１】通信レジスタ装置を持つ従来のマルチプロセッサシステムである。
【図２】従来の通信レジスタ装置の構成図である。
【図３】本発明のマルチプロセッサシステムである。
【図４】本発明の通信レジスタ装置の構成図である。
【図５】プロセッサからのリクエストおよびデコーダ４３０によるデコード後のリクエストの構成例である。
【図６】通信レジスタのアドレスマッピングの例である。
【図７】本発明の通信レジスタモジュールの構成図である。
【図８】その他の実施の形態における通信レジスタモジュールの構成図である。
【符号の説明】
１０〜１２：プロセッサ
２０：相互結合網
３０：主記憶
４００〜４０２：通信レジスタモジュール
５００〜５０２：通信レジスタ群
７００：通信モジュール間バス
４３０：デコーダ
４２０：バス入力制御回路
４６０：比較器
４９０：バス出力制御回路
１０００：プロセス番号レジスタ。
【図１】
0004051788.tif 000002
【図２】
0004051788.tif 000003
【図３】
0004051788.tif 000004
【図４】
0004051788.tif 000005
【図５】
0004051788.tif 000006
【図６】
0004051788.tif 000007
【図７】
0004051788.tif 000008
【図８】
0004051788.tif 000009