(57)【要約】【課題】  処理数を減らして処理時間を短縮した，効率良い，任意の規則に対応するデータ並び替え方法を提供する。【解決手段】  本発明のデータ並び替え方法は，ａ）第１のデータ格納部にデータを格納するステップと，ｂ）スタックにデータ並べ替え情報を格納するステップと，ｃ）第１のデータ格納部に格納されたデータを読み出し，このデータをスタックに格納されたデータ並び替え情報に基づいて第２のデータ格納部に格納するステップとを有することを特徴とする。【選択図】  図１
2005085125.tif 000002
【特許請求の範囲】
【請求項１】
ａ）第１のデータ格納部にデータを格納するステップと，
ｂ）スタックにデータ並べ替え情報を格納するステップと，
ｃ）前記第１のデータ格納部に格納された前記データを読み出し，該データを前記スタックに格納された前記データ並び替え情報に基づいて第２のデータ格納部に格納するステップとを有することを特徴とするデータ並び替え方法。
【請求項２】
前記データ並び替え情報は，前記第２のデータ格納部のアドレスで構成されることを特徴とする請求項１記載のデータ並び替え方法。
【請求項３】
前記第１のデータ格納部は，レジスタであり，
前記第２のデータ格納部は，ランダムアクセスメモリであることを特徴とする請求項２記載のデータ並び替え方法。
【請求項４】
ａ）第１のデータ格納部に複数のデータを格納するステップと，
ｂ）スタックにデータ並べ替え情報を格納するステップと，
ｃ）前記第１のデータ格納部に格納された前記複数のデータ各々を前記スタックに格納された前記データ並び替え情報に基づく順序で読み出し，該データを第２のデータ格納部に格納するステップとを有することを特徴とするデータ並び替え方法。
【請求項５】
前記データ並び替え情報は，前記第１のデータ格納部のアドレスで構成されることを特徴とする請求項４記載のデータ並び替え方法。
【請求項６】
前記第１のデータ格納部は，ランダムアクセスメモリであり，
前記第２のデータ格納部は，レジスタであることを特徴とする請求項５記載のデータ並び替え方法。
【請求項７】
前記第１のデータ格納部及び前記第２のデータ格納部は，ランダムアクセスメモリであることを特徴とする請求項５記載のデータ並び替え方法。
【請求項８】
ａ）第１のデータ格納部に複数のデータを格納するステップと，
ｂ）スタックにデータ並べ替え情報を格納するステップと，
ｃ）前記第１のデータ格納部に格納された前記複数のデータの各々を読み出し，前記スタックに格納された前記データ並び替え情報に基づいて第２のデータ格納部に格納するステップとを有することを特徴とするデータ並び替え方法。
【請求項９】
前記データ並び替え情報は，前記第２のデータ格納部のアドレスで構成されることを特徴とする請求項８記載のデータ並び替え方法。
【請求項１０】
前記第１のデータ格納部及び前記第２のデータ格納部は，ランダムアクセスメモリであることを特徴とする請求項９記載のデータ並び替え方法。
【請求項１１】
アドレス変換テーブルと，それに対応するスタックポインタとを用いて，前記読み出しと前記格納とを行うことを特徴とする請求項１，４，または８のうちのいずれか１項記載のデータ並び替え方法。
【請求項１２】
読み出したアドレスとオフセットレジスタとの論理和または加算を演算するステップをさらに含むことを特徴とする請求項１，４，または８のうちのいずれか１項記載のデータ並び替え方法。
【請求項１３】
前記スタックポインタの代わりに専用レジスタを用いることを特徴とする請求項１１記載のデータ並び替え方法。
【請求項１４】
前記アドレス変換テーブルに格納するデータに，バイトライト情報を含めることを特徴とする請求項１１記載のデータ並び替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，デジタル通信やデジタル信号処理におけるデータ処理方法に関し，特に，データ並び替え方法に関するものである。
【背景技術】
【０００２】
デジタル通信やデジタル信号処理の分野では，インターリーブ処理が行われる。インターリーブ処理とは，複数のグループに分割したデータを特定の規則に従って並び替えて，読み・書き・送受信などの処理を行うものである。
【０００３】
例えば，Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（デジタル信号処理を行うための演算処理装置。以下，「ＤＳＰ」という）におけるインターリーブ処理では，ＤＳＰが演算処理するデータの順番は，メモリに書き込まれたデータの順番とは異なることがある。そして，ＤＳＰで使用するデータを演算処理順に並び替えるためには，多くの処理時間，多くの記憶容量を必要とする。
【０００４】
データを並び替えるための従来の方法には，アドレス変換テーブルを用いるものがある。ここでは説明の簡略化のため，一次元の並び替えについて説明する。図８は，アドレス変換テーブルを用いた従来のデータ並び替え方法を説明するための，データ並び替え前後のデータ配置状態と，アドレス変換テーブルの状態を示す図である。図８において，「アドレス：０ｘ００００」などはメモリの１６進数表示によるアドレス番地を示し，Ａ〜Ｅは，メモリに格納され，並び替えが実行されて演算処理される，所定長さのデータを示す。
【０００５】
図８に示すように，メモリには，アドレス（０ｘ００００番地）からアドレス（０ｘ０００４番地）まで，５つのデータがＡ，Ｂ，Ｃ，Ｄ，Ｅの順に格納されている。そして，アドレス（０ｘ２０００番地）からアドレス（０ｘ２００４番地）までの「アドレス変換テーブル」には，データ並び替えの順が格納されている。このアドレス変換テーブルに格納された並び替え規則（（１）〜（５））に従えば，データＡ，Ｂ，Ｃ，Ｄ，Ｅは，Ｄ，Ｂ，Ｅ，Ａ，Ｃの順に，アドレス（０ｘ１０００番地）からアドレス（０ｘ１００４番地）の格納場所に並び替えられる（図８）。
【０００６】
図９は，この従来の並べ替え方法を実現するための流れ図と，プログラム例である。ここでは，３つのアドレス格納用のレジスタｒ０，ｒ１，ｒ２と，１つのデータ格納用レジスタａ０を用いている。プログラム例において，「ｍｏｖ」は，「，」の左の値を「，」の右の値にコピーする命令であり，「（）」付きの文字／数は，そのアドレスやレジスタに格納されるデータの値を，「（）」無しの文字／数は，そのアドレス番地やレジスタそのものを示している。また，文字／数の右の「＋」は，値を＋１だけインクリメントすることを示している。
【０００７】
図９において，まずＳ１で，アドレス変換テーブルの先頭アドレス（０ｘ２０００番地）をｒ０レジスタにセットする（Ｓ１）。次に，Ｓ２で，並び替え前のデータが格納される先頭アドレス（０ｘ００００番地）を，ｒ１レジスタにセットする（Ｓ２）。次に，Ｓ３で，ｒ１レジスタに格納されたメモリ（Ｉ）のアドレス（０ｘ００００）に，格納されているデータＡを，ａ０レジスタにセットし，ｒ１レジスタの値をインクリメント（＋１）する（Ｓ３）。次に，Ｓ４で，ｒ０レジスタのアドレスに格納されるアドレス値を，ｒ２レジスタにセットし，ｒ０レジスタの値をインクリメント（＋１）する（Ｓ４）。次に，Ｓ５で，ａ０レジスタに格納されるデータ値を，ｒ２レジスタに格納されるアドレス先にセットする（Ｓ５）。
【０００８】
Ｓ３〜Ｓ５の操作を５回繰り返すと，並び替え前のアドレス（０ｘ００００番地）から（０ｘ０００４番地）までに格納されたデータが，（０ｘ２０００番地）から（０ｘ２００４番地）までのアドレス変換テーブルに従って並び替えられ，それらがアドレス（０ｘ１０００番地）からアドレス（０ｘ１００４番地）までに格納される（図９）。
【０００９】
【特許文献１】特開２００１−１９６９４０
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このような従来の並べ替え方法では，多くの処理が必要であり，また，多くのメモリ容量を必要とする問題があった。
【００１１】
本発明は，従来のデータ並び替え方法が有する上記問題点に鑑みてなされたものであり，本発明の目的は，処理数（命令数）を減らして処理時間を短縮し，しかも少ないメモリ容量で実現できる，効率良いデータ並び替え方法を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するための本発明のデータ並び替え方法は，ａ）第１のデータ格納部にデータを格納するステップと，ｂ）スタックにデータ並べ替え情報を格納するステップと，ｃ）第１のデータ格納部に格納されたデータを読み出し，このデータをスタックに格納されたデータ並び替え情報に基づいて第２のデータ格納部に格納するステップとを有することを特徴とする。
【００１３】
このような方法により，処理数を減らして処理時間を短縮し，しかも少ないメモリ容量で，効率良いデータの並び替えが実現できる。また，任意の規則による並べ替えが可能になる。
【００１４】
データ並び替え情報は，第２のデータ格納部のアドレスで構成してもよい。また，第１のデータ格納部をレジスタとし，第２のデータ格納部をランダムアクセスメモリとしてもよい。また，並び替えた結果を順次メモリに格納してもよく，ＤＳＰなどにより演算処理した結果を順次メモリに格納してもよい。
【００１５】
また，アドレス変換テーブルと，これに対応するスタックポインタとを用いて，読み出しと前記格納とを行ってもよい。アドレス変換テーブルと，これに対応するスタックポインタは複数用いてもよく，読み出しと，並び替え結果または演算結果の格納とをパイプライン処理することで，より一層の処理速度の高速化が図れる。
【００１６】
また，読み出したアドレスとオフセットレジスタとの論理和（ＯＲ）または加算（ＡＤＤ）を演算するステップをさらに含むことで，複数のデータ列の並べ替えが可能になる。特に，使用するアドレス空間を縮小させるためには，論理和演算の利用が有効であり，また，きめ細かくアドレス空間を利用するためには加算演算の利用が有効である。
【００１７】
また，スタックポインタの代わりに，並べ替え専用のレジスタを用いることもできる。並べ替え専用のレジスタを用いることにより，任意のポインタ更新が可能になり，より効率の良いデータの並び替えが可能になる。
【発明の効果】
【００１８】
以上説明したように，本発明によれば，従来の方法より処理数（命令数）を減らして処理時間を短縮して効率よく，しかも少ないメモリ容量で実現でき，任意の並び替え規則に対応できる，データ並び替え方法が提供できた。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照しながら，本発明にかかるデータ並べ替え方法の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２０】
（第１の実施の形態）
第１の実施の形態によるデータ並び替え方法は，特定の規則をアドレス変換テーブルに格納する段階と，演算処理のためのデータが格納されるアドレスを，スタックポインタを用いてアドレス変換テーブルから順次読み出す段階とを含む。ここでも説明の簡略化のため，一次元の並び替えについて説明するが，本発明はこれに限定されるものではない。
【００２１】
図１は，アドレス変換テーブルとスタックポインタを用いた第１の実施の形態のデータ並び替え方法を説明するための，アドレス変換テーブルの状態とスタックポインタの位置を示す図である。スタックポインタは，スタックの先頭アドレスを保持するためのレジスタで，一般的にはデータをプッシュダウン（格納）するとインクリメント（＋１）され，データをポップアップ（読み出し）するとデクリメント（−１）される。スタックでは，最後に格納されたデータが最初に読み出される，ＬＩＦＯ（Last-In-First-Out；後入れ先出し）構造をとる。
【００２２】
図１において，「アドレス：０ｘ８０００」などはメモリの１６進数表示によるアドレスを示す。まず，並び替えの情報は，スタックにてプッシュダウンされ，アドレス変換テーブルとして格納される。例えば，メモリ１０のアドレス（０ｘ８０００番地）には，アドレス（０ｘ１００２番地）が，メモリ１０のアドレス（０ｘ８００１番地）には，アドレス（０ｘ１０００番地）が，順次格納される。
【００２３】
ＤＳＰにより順次演算処理を行う場合は，スタックをポップアップし，スタックポインタの示すアドレス（０ｘ８００４番地）に格納されるアドレス（０ｘ１００３番地）が参照され，メモリ１０のアドレス（０ｘ１００３番地）に格納されるデータが読み出される。ＤＳＰによるそのデータの演算処理が終了すると，スタックポインタ３０はポップアップによりデクリメントされているので，今度はアドレス（０ｘ８００３番地）を示し，ここに格納されるアドレス（０ｘ１００１番地）が参照される。以下，同様にして，アドレス変換テーブルが参照される（図１）。
【００２４】
図２は，第１の実施の形態の並べ替え方法を実現するための流れ図と，プログラム例である。図２の流れ図及びプログラム例は，アドレス変換テーブル（スタック）に予め変換用のアドレスが格納され，スタックポインタが所定のポインタ位置に移動した以後の処理について示している。ここでは，１つのアドレス格納用のレジスタｒ０と，１つのデータ格納用レジスタａ０を用いている。プログラム例において，「ｐｏｐ」はスタックの先頭アドレスの値を，右のレジスタにコピーする命令であり，「ｍｏｖ」は前述の通りであり，「（）」付きの文字／数は，そのアドレスやレジスタに格納されるデータの値を，「（）」無しの文字／数は，そのアドレス値やレジスタそのものを示している。
【００２５】
まず，Ｓ１０で，ＤＳＰが演算処理を開始し，その結果をａ０レジスタに格納する（Ｓ１０）。次に，Ｓ１１で，スタックからポップアップして，スタックポインタが示すアドレス変換テーブルのアドレス（０ｘ８００４番地）に格納されるアドレス（０ｘ１００３番地）を，ｒ０レジスタにセットする（Ｓ１１）。次に，Ｓ１２で，ａ０レジスタに格納された演算結果を，ｒ０レジスタに格納されたアドレス（０ｘ１００３番地）に格納する（Ｓ１２）。次に，Ｓ１３で，ｒ０レジスタがアドレス変換テーブル領域からはずれたか否かを判断する（Ｓ１３）。判断の結果，領域からはずれていたら，スタックポインタを初期領域に戻し，はずれていなかったら次の演算処理に進む（図２）。なお，演算の区切りなどにおいて，スタックポインタを初期状態に戻す場合は，Ｓ１３，Ｓ１４の処理は省略可能である。
【００２６】
スタックポインタが，アドレス（０ｘ８００４番地）からアドレス（０ｘ８０００番地）まで進むと，あらかじめスタックにプッシュダウンした順序で演算処理が実行される。
【００２７】
以上示したように，スタックポインタを用いることにより，少ない処理数で所定のアドレスにデータを書き込むことが可能になる。また，スタックに任意の並び替え情報を書き込むことができるため，任意の並び替えに対応可能である。このようなことは，ハードウェアのみによる処理では困難である。
【００２８】
上記説明では，データの格納（書き込み）に関して説明したが，データの読み出しにおいても同様の方法で実現可能である。この場合，図２のプログラム例は，
ｐｏｐ  ｒ０
ｍｏｖ  （ｒ０），ａ０
のようになる。
【００２９】
また，図２のプログラム例では，ｐｏｐ命令とｍｏｖ命令を別々に実行しているが，ｐｏｐ命令とｍｏｖ命令とを１命令で実行できるシステムにおいては，１命令で実行可能になる。
【００３０】
また，図２のプログラム例では，ｐｏｐ命令によってメモリからの読み出しが行われ，ｍｏｖ命令によってメモリへの書き込みが行われているが，メモリへの読み出しと書き込みが別ステージのシステムの場合は，これをパイプライン処理することによって，１命令で実行が可能になる。その例を，図３に示す。
【００３１】
図３に示すデータ読み出し時の並べ替えの際に，「ｐｏｐ  ｒ０」と「ｍｏｖ  （ｒ０），ａ０」とが１命令の場合は，ｐｏｐ命令においてメモリからの読み出しが行われ，ｍｏｖ命令においてもメモリからの読み出しが行われるため，ステージｔ３のＲｅａｄにおいて競合が発生する。但し，競合を回避するシステムである場合は，データ読み出しの場合でも１命令で実行可能である。競合の回避策としては，同時読み出しが発生した場合に，一方の読み出しを優先して実行し，他方の読み出しを遅らせるなどの処理により実現すればよい。また，独立のメモリから読み出しを行う場合は競合が発生しないため，１命令で実行することが可能である。
【００３２】
第１の実施の形態では，スタック領域が１つのみの場合について説明したが，複数の並び替え情報を使用する場合は，複数のスタック処理ができるように，スタックプポインタを複数用意すればよい。なお，この場合は，スタックを操作するｐｕｓｈ命令，ｐｏｐ命令，及び，「スタックポインタを初期化」するためのスタックポインタへのｍｏｖ命令は，複数用意することになる。
【００３３】
（第２の実施の形態）
第２の実施の形態によるデータ並び替え方法では，第１の実施の形態による方法に加えて，読み出したアドレスとオフセットレジスタとの論理和（ＯＲ）または加算（ＡＤＤ）を演算する段階をさらに加える。
【００３４】
オフセットレジスタを設けて，スタックには並び替えアドレスの下位ビットを格納し，読み出したアドレスとオフセットレジスタとの論理和（ＯＲ）または加算（ＡＤＤ）を演算して並び替えのアドレスを生成することで，複数のデータ列の並べ替えを可能にする。
【００３５】
ここで，「ＯＲ」演算は，ビット毎の「ｏｒ」演算を意味し，「ＡＤＤ」演算は，「加算」演算を意味する。「ＯＲ」または「ＡＤＤ」の選択は，例えば制御レジスタを設けて，任意に制御するようにすればよい。
【００３６】
第２の実施の形態によれば，第１の実施の形態による効果に加え，複数のデータ列の並び替えが可能になる。
【００３７】
（第３の実施の形態）
第３の実施の形態によるデータ並び替え方法では，第１の実施の形態におけるスタックポインタの代わりに，並べ替え専用のレジスタを用いる。並べ替え専用のレジスタを用いることにより，任意のポインタ更新が可能になり，より効率の良いデータの並び替えが可能になる。
【００３８】
図４は，アドレス変換テーブルと並び替え専用レジスタ（ｒｒ）を用いた第３の実施の形態のデータ並び替え方法を説明するための，アドレス変換テーブルの状態と，並び替え専用レジスタ（ｒｒ）の内容を示す図である。
【００３９】
図５は，第３の実施の形態の並べ替え方法を実現するための流れ図と，プログラム例である。図５の流れ図及びプログラム例は，アドレス変換テーブルに予め変換用のアドレスが格納され，並び替え専用レジスタｒｒには所定のポインタ初期値が格納された状態後の処理について示している。ここでは並び替え専用レジスタｒｒの他に，１つのアドレス格納用のレジスタｒ０と，１つのデータ格納用レジスタａ０を用いている。プログラム例において，「ｍｏｖ」などは前述の通りである。
【００４０】
まず，Ｓ３０で，ＤＳＰが演算処理を開始し，その結果をａ０レジスタに格納する（Ｓ３０）。次に，Ｓ３１で，並べ替え専用レジスタｒｒに格納されたアドレス値が示すアドレス変換テーブルのアドレス（０ｘ８００４番地）に格納されるアドレス（０ｘ０００３番地）を読み出し，ｒ０レジスタにセットし，並べ替え専用レジスタｒｒをデクリメント（−１）する（Ｓ３１）。次に，Ｓ３２で，ａ０レジスタに格納された演算結果を，ｒ０レジスタに格納されたアドレス（０ｘ０００３番地）に格納する（Ｓ３２）。次に，Ｓ３３で，ｒ０レジスタがアドレス変換テーブル領域からはずれたか否かを判断する（Ｓ３３）。判断の結果，領域からはずれていたら，並べ替え専用レジスタｒｒを初期状態に戻し，はずれていなかったら次の演算処理に進む（図５）。
【００４１】
並べ替え専用レジスタｒｒの内容が，アドレス（０ｘ８００４番地）からアドレス（０ｘ８０００番地）まで変化すると，あらかじめメモリに格納された順序どおりに演算処理が実行される。
【００４２】
第３の実施の形態によれば，第１の実施の形態による効果と同様の効果が得られる。並び替え専用レジスタｒｒからデータを読み出した際に，並び替え用レジスタｒｒを−１する説明をしたが，用途に応じて任意のｍｏｄｉｆｙを可能とする。例えば，ｍｏｄｉｆｙとしては，任意の＋または−，モジュールアドレッシングなどが挙げられる。ｍｏｄｉｆｙは，一般的なアドレスレジスタに備わる全てのアドレッシングに関してサポートするものを用いることができる。モジュールアドレッシングの場合は，並び替え専用レジスタと同様に，モジュール幅などを指定するためのレジスタを専用に用意し，その他のアドレッシングについても必要なレジスタを用意すればよい。このように，モジュールアドレッシングを用いることにより，定期的なポインタの再設定が不要となり，効率的な並び替えが可能となる。
【００４３】
（第４の実施の形態）
第４の実施の形態によるデータ並び替え方法は，アドレス変換テーブルに格納するデータに，バイトライト情報を含める。図６は，第４の実施の形態における，アドレス変換テーブルの状態，スタックポインタの位置，制御レジスタ４０とオフセットレジスタ５０の機能を示す図である。第１〜第３の実施の形態では，データの書き込みを固定のビット長（例えば，３２ｂｉｔなど）に対して行っている。しかし，演算処理によっては，３２ｂｉｔ中の任意のｂｉｔ（例えば，８ｂｉｔなど）に対してのみ，書き込みを行う必要がある。
【００４４】
第４の実施の形態では，アドレス変換テーブルに並び替え情報を格納する際に，下位のビットをバイトライト制御ｂｉｔにすることにより，任意の場所に書き込むことを可能にする。
【００４５】
例えば，表１，図７に示すように，並び替え情報の下位２ｂｉｔを，バイトライト情報とする。
【００４６】
【表１】
2005085125.tif 000003
【００４７】
さらに，バイトライト制御レジスタを設けて，バイトライト可の場合は，アドレスの下位２ｂｉｔをバイトライト情報としてメモリに供給する。残りの上位１４ｂｉｔは，アドレスとしてメモリに供給する（図７参照）。
【００４８】
このように，第４の実施の形態によれば，並び替え情報の下位ｂｉｔをバイトライト情報とすることにより，所定のｂｉｔに対してのみ書き込みが可能になる。上記の例では，３２ｂｉｔを８ｂｉｔずつに分割した例であるが，分割の仕方に関しては限定されない。分割の際，バイトライト情報のｂｉｔ数は，必要ｂｉｔ数とすればよい。また，バイトライト制御レジスタを設置することにより，並び替えのために使用しているメモリを，一般的な用途のために使用することも可能になる。
【００４９】
以上，添付図面を参照しながら本発明にかかるデータ並び替え方法の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【００５０】
例えば，多次元の並べ替えについても適用できる。
【産業上の利用可能性】
【００５１】
本発明は，デジタル通信やデジタル信号処理におけるデータ処理方法に関し，特に，データ並び替え方法に利用可能である。
【図面の簡単な説明】
【００５２】
【図１】第１の実施の形態における，アドレス変換テーブルの状態とスタックポインタの位置を示す説明図である。
【図２】第１の実施の形態の並べ替え方法を実現するための流れ図と，プログラム例を示す説明図である。
【図３】第１の実施の形態における，パイプライン処理する場合のステージ表を示す説明図である。
【図４】第３の実施の形態における，アドレス変換テーブルの状態と並び替え専用レジスタ（ｒｒ）の内容を示す説明図である。
【図５】第３の実施の形態の並べ替え方法を実現するための流れ図と，プログラム例を示す説明図である。
【図６】第４の実施の形態における，アドレス変換テーブルの状態，スタックポインタの位置，制御レジスタ４０とオフセットレジスタ５０の機能を示す説明図である。
【図７】第４の実施の形態における，バイトライト信号を説明する説明図である。
【図８】従来のデータ並び替え方法を説明するための，データ並び替え前後のデータ配置状態と，アドレス変換テーブルの状態を示す説明図である。
【図９】従来の並べ替え方法を実現するための流れ図と，プログラム例を示す説明図である。
【符号の説明】
【００５３】
１０  メモリ
２０  アドレス変換テーブル
３０  スタックポインタ
ｒｒ  並び替え専用レジスタ
４０  制御レジスタ
５０  オフセットレジスタ
【図１】
2005085125.tif 000004
【図２】
2005085125.tif 000005
【図３】
2005085125.tif 000006
【図４】
2005085125.tif 000007
【図５】
2005085125.tif 000008
【図６】
2005085125.tif 000009
【図７】
2005085125.tif 000010
【図８】
2005085125.tif 000011
【図９】
2005085125.tif 000012