(57)【要約】相対アドレッシングを効率的に取り扱う技法が、説明される。一設計においては、プロセッサは、アドレスジェネレータと、ストレージユニットと、を含む。アドレスジェネレータは、ベースアドレスとオフセットとから成る相対アドレスを受け取り、ベースアドレスについての基準値を取得し、その基準値をオフセットと加算し、そして、その相対アドレスに対応する絶対アドレスを供給する。ストレージユニットは、ベースアドレスを受け取り、基準値をアドレスジェネレータへと供給する。ストレージユニットはまた、絶対アドレスを受け取り、このアドレスにおけるデータを供給する。アドレスジェネレータは、メモリアクセスの第１のクロックサイクルにおいて絶対アドレスを導き出すことができる。ストレージユニットは、メモリアクセスの第２のクロックサイクルにおいてそのデータを供給することができる。ストレージユニットは、同時発生のアドレス生成とデータ取出しをサポートする複数の（例えば、２つの）読取りポートを有することができる。
2010503073.tif 000002
【特許請求の範囲】
【請求項１】
ベースアドレスとオフセットとから成る相対アドレスを受け取るように、前記ベースアドレスについての基準値を取得するように、前記基準値を前記オフセットと加算するように、そして前記相対アドレスに対応する絶対アドレスを供給するように、動作するアドレスジェネレータと、
前記ベースアドレスを受け取り、前記基準値を前記アドレスジェネレータへと供給するように、動作するストレージユニットと、
を備えるプロセッサ。
【請求項２】
前記アドレスジェネレータは、メモリアクセスの第１のクロックサイクルにおいて前記絶対アドレスを導き出し、前記ストレージユニットは、前記メモリアクセスの第２のクロックサイクルにおいて前記絶対アドレスにおいてアクセスされる、請求項１に記載のプロセッサ。
【請求項３】
前記アドレスジェネレータは、前記基準値と前記オフセットとを加算するように動作する加算器を備える、請求項１に記載のプロセッサ。
【請求項４】
前記アドレスジェネレータは、
前記加算器に結合され、そして、前記加算器の出力を記憶するように、そして前記絶対アドレスを供給するように動作する、ラッチ、
をさらに備える、
請求項３に記載のプロセッサ。
【請求項５】
前記アドレスジェネレータは、
前記ラッチに結合され、そして、前記ラッチからの前記絶対アドレス、または前記ベースアドレスを、前記ストレージユニットへと供給するように動作する、マルチプレクサ、
をさらに備える、
請求項４に記載のプロセッサ。
【請求項６】
前記マルチプレクサは、メモリアクセスの第１のクロックサイクルにおいて前記ベースアドレスを前記ストレージユニットへと供給するように、そして前記メモリアクセスの第２のクロックサイクルにおいて前記絶対アドレスを前記ストレージユニットへと供給するように、動作する、請求項５に記載のプロセッサ。
【請求項７】
前記アドレスジェネレータは、
ソースアドレス情報と宛先アドレス情報とを受け取るように、そして前記オフセットを前記加算器へと供給するように、動作する第１のマルチプレクサと、
前記ソースアドレス情報と前記ラッチの出力とを受け取るように、読取りオペレーションの第１のクロックサイクルにおいて前記ソースアドレス情報からの前記ベースアドレスを供給するように、そして前記読取りオペレーションの第２のクロックサイクルにおいて前記ラッチの前記出力を供給するように、動作する第２のマルチプレクサと、
をさらに備える、
請求項４に記載のプロセッサ。
【請求項８】
前記アドレスジェネレータは、
前記宛先アドレス情報と前記ラッチの前記出力とを受け取るように、そして書込みオペレーションについての前記絶対アドレスを供給するように、動作する第３のマルチプレクサ、
をさらに備える、
請求項７に記載のプロセッサ。
【請求項９】
前記アドレスジェネレータは、
前記第３のマルチプレクサの出力を受け取るように、そして前記書込みオペレーションについての書込みアドレスを供給するように、動作する遅延ユニット、
をさらに備える、
請求項８に記載のプロセッサ。
【請求項１０】
前記ストレージユニットは、第１のポートと第２のポートとを備え、前記アドレスジェネレータは、前記第１のポートまたは前記第２のポートから前記基準値を受け取るように動作する、請求項３に記載のプロセッサ。
【請求項１１】
前記ストレージユニットは、レジスタのバンクである、請求項１に記載のプロセッサ。
【請求項１２】
前記ストレージユニットは、ランダムアクセスメモリ（ＲＡＭ）、シンクロナスＲＡＭ（ＳＲＡＭ）、または、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）である、請求項１に記載のプロセッサ。
【請求項１３】
ベースアドレスとオフセットとから成る相対アドレスを受け取るように、前記ベースアドレスについての基準値を取得するように、前記基準値を前記オフセットと加算するように、そして前記相対アドレスに対応する絶対アドレスを供給するように、動作するアドレスジェネレータと、
前記ベースアドレスを受け取り、前記基準値を前記アドレスジェネレータへと供給するように、動作するストレージユニットと、
を備える集積回路。
【請求項１４】
前記アドレスジェネレータは、メモリアクセスの第１のクロックサイクルにおいて前記絶対アドレスを導き出し、前記ストレージユニットは、前記メモリアクセスの第２のクロックサイクルにおいて前記絶対アドレスにおいてアクセスされる、請求項１３に記載の集積回路。
【請求項１５】
前記アドレスジェネレータは、
前記基準値と前記オフセットとを加算するように動作する加算器と、
前記加算器に結合され、そして、前記加算器の出力を記憶するように、そして前記絶対アドレスを供給するように動作する、ラッチと、
を備える、
請求項１３に記載の集積回路。
【請求項１６】
前記アドレスジェネレータは、
前記ラッチに結合され、そして、メモリアクセスの第１のクロックサイクルにおいて前記ベースアドレスを前記ストレージユニットへと供給するように、そして前記メモリアクセスの第２のクロックサイクルにおいて前記絶対アドレスを前記ストレージユニットへと供給するように動作する、マルチプレクサ、
をさらに備える、
請求項１５に記載の集積回路。
【請求項１７】
相対アドレスを受け取り、絶対アドレスを供給する、ように動作する複数のアドレスジェネレータと、
前記複数のアドレスジェネレータに結合され、そして、前記絶対アドレスを受け取り、そして前記絶対アドレスにおけるデータを供給するように動作する、複数のレジスタバンクと、
を備えるプロセッサ。
【請求項１８】
前記複数のアドレスジェネレータは、
少なくとも２つのオペランドについての少なくとも２つの絶対アドレスを供給するように動作する少なくとも２つのアドレスジェネレータと、
結果についての絶対アドレスを供給するように動作するアドレスジェネレータと、
を備える、
請求項１７に記載のプロセッサ。
【請求項１９】
前記複数のレジスタバンクは、ベースアドレスを受け取るように、そして基準値を供給するように、動作しており、前記複数のアドレスジェネレータは、前記絶対アドレスを取得するために前記相対アドレスについてのオフセットを前記基準値と加算するように動作する、請求項１７に記載のプロセッサ。
【請求項２０】
前記複数のアドレスジェネレータの出力を前記複数のレジスタバンクに結合するように動作するクロスバー、
をさらに備える請求項１７に記載のプロセッサ。
【請求項２１】
前記複数のレジスタバンクからの前記データに対して動作するように構成された複数の算術論理演算装置（ＡＬＵ）、
をさらに備える請求項１７に記載のプロセッサ。
【請求項２２】
前記複数のＡＬＵは、複数のピクセルについてのデータに対して同時に動作するように構成されている、請求項２１に記載のプロセッサ。
【請求項２３】
前記複数のレジスタバンクからの前記データを前記複数のＡＬＵへと供給するように動作するクロスバー、
をさらに備える請求項２１に記載のプロセッサ。
【請求項２４】
各レジスタバンクは、少なくとも２つの読取りポートを備え、１つの読取りポートは、１つのメモリアクセスについての基準値を供給するように動作し、別の読取りポートは、別のメモリアクセスについてのデータを供給するように動作する、請求項１７に記載のプロセッサ。
【請求項２５】
前記複数のレジスタバンクは、ピクセルについての属性の４つの成分を記憶するように動作する４つのレジスタバンクを備え、各レジスタバンクは、前記４つの成分のうちの異なる１つを記憶する、請求項１７に記載のプロセッサ。
【請求項２６】
相対アドレスを受け取り、絶対アドレスを供給するように、動作する複数のアドレスジェネレータと、
前記複数のアドレスジェネレータに結合され、そして、前記絶対アドレスを受け取り、そして前記絶対アドレスにおけるグラフィックスデータを供給するように動作する、複数のレジスタバンクと、
前記複数のレジスタバンクからの前記グラフィックスデータに対して動作するように構成された、複数の算術論理演算装置（ＡＬＵ）と、
を備えるグラフィックスプロセッサ。
【請求項２７】
前記複数のアドレスジェネレータは、
前記複数のＡＬＵのための少なくとも２つのオペランドについての少なくとも２つの絶対アドレスを供給するように動作する少なくとも２つのアドレスジェネレータと、
前記複数のＡＬＵからの結果についての絶対アドレスを供給するように動作するアドレスジェネレータと、
を備える、
請求項２６に記載のグラフィックスプロセッサ。
【請求項２８】
複数のアドレスジェネレータと複数のレジスタバンクとを備えるグラフィックスプロセッサと、なお、前記複数のアドレスジェネレータは、相対アドレスを受け取り、絶対アドレスを受け取るように動作し、前記複数のレジスタバンクは、前記絶対アドレスを受け取り、前記絶対アドレスにおけるグラフィックスデータを供給するように動作する；
前記グラフィックスプロセッサに結合されたメモリと；
を備えるワイヤレスデバイス。
【発明の詳細な説明】
【背景】
【０００１】
［Ｉ．技術分野］
本開示は、一般にエレクトロニクスに関し、より詳細には相対アドレス(relative address)を生成するための技法に関する。
【０００２】
［ＩＩ．背景］
プロセッサは、通信、コンピューティング、データネットワーキングなど、様々なアプリケーションのために広く使用される。プロセッサは、ストレージユニット(storage unit)に記憶されるデータに対する様々な演算を実行することができ、このストレージユニットは、レジスタファイル(register file)、ランダムアクセスメモリ(random access memory)（ＲＡＭ）などとすることができる。演算のためのデータは、絶対アドレス(absolute address)または相対アドレスのいずれかによって指定されることができる。絶対アドレスは、データが記憶されるストレージユニットにおける特定のロケーションを指し示す。相対アドレスは、ベースアドレス(base address)と、オフセットとによって与えられる。ベースアドレスは、ストレージユニットにおける基準ロケーション(reference location)を指し示す。オフセットは、その基準ロケーションと、データが記憶される実際のロケーションとの間の距離を指し示す。相対アドレスは、一般的に絶対アドレスに変換され、次いで、この絶対アドレスは、ストレージユニットから望ましいデータをフェッチするために使用される。
【０００３】
一例として、２つのオペランドを加算する命令は、次式のように与えられることができる。
【０００４】
ａｄｄ  ｒ０，ｘ０［ｒ１＋１５］，ｒ２
第１のオペランドは、レジスタ／ロケーションｒ２に記憶される。第２のオペランドは、レジスタｒ１に記憶される基準値(base value)と、１５というオフセットとによって決定されるロケーションに記憶される。２つのオペランドの加算の結果は、レジスタ／ロケーションｒ０に記憶される。
【０００５】
上記命令は、以下のように２つの命令へと変換される。
【０００６】
ａｄｄ  ａ０，ｒ１，１５
ａｄｄ  ｒ０，ｘ０［ａ０］，ｒ２
第１の命令は、レジスタｒ１における基準値を１５というオフセットと加算することにより、第２のオペランドについての絶対アドレスを計算し、次いでその絶対アドレスをレジスタａ０に記憶する。第２の命令は、絶対アドレスによって決定されている第２のオペランドが、第１の命令によって計算されて、２つのオペランドの和を計算する。算術論理演算装置(arithmetic logic unit)（ＡＬＵ）は、第１の命令と、第２の命令との両方について計算を実行することができる。
【０００７】
相対アドレスを有する単一命令を２つの命令に変換することは、いくつかの理由のために望ましくない可能性がある。第１に、第１の命令による絶対アドレスの計算は、ＡＬＵリソースを消費する。第２に、第２の命令は、第１の命令の結果に依存するので、２つの命令を逐次的な順序で完了するために、より長い遅延が経験される可能性がある。この遅延ペナルティは、ＡＬＵが複数のステージを有するときに、より厳しくなる。複数のＡＬＵステージに起因したより長い遅延は、性能に悪影響を及ぼす可能性がある。
【０００８】
したがって、当技術分野においては相対アドレッシング(relative addressing)を効率的に取り扱う技法についての必要性が存在する。
【発明の概要】
【０００９】
相対アドレッシングを効率的に取り扱う技法が、ここにおいて説明される。一実施形態においては、プロセッサは、アドレスジェネレータ(address generator)と、ストレージユニット(storage unit)と、を含む。アドレスジェネレータは、ベースアドレス(base address)と、オフセット(offset)とから成る相対アドレスを受け取り、ベースアドレスについての基準値(base value)を取得し、その基準値をオフセットと加算し、そしてその相対アドレスに対応する絶対アドレスを供給する。ストレージユニットは、ベースアドレスを受け取り、基準値をアドレスジェネレータに対して供給する。ストレージユニットはまた、絶対アドレスを受け取り、このアドレスにおけるデータを供給する。アドレスジェネレータは、メモリアクセスの第１のクロックサイクルにおいて絶対アドレスを導き出す(derive)ことができる。ストレージユニットは、メモリアクセスの第２のクロックサイクルにおいてデータを供給することができる。ストレージユニットは、同時発生のアドレス生成とデータ取出し(concurrent address generation and data retrieval)をサポートする複数の（例えば、２つの）読取りポートを有することができる。
【００１０】
別の実施形態においては、プロセッサは、複数のアドレスジェネレータ(multiple address generators)と、複数のレジスタバンク(multiple register banks)と、を含む。アドレスジェネレータは、相対アドレスを受け取り、絶対アドレスを供給する。レジスタバンクは、絶対アドレスを受け取り、これらのアドレスにおけるデータを供給する。レジスタバンクはまた、相対アドレスについてのベースアドレスを受け取り、基準値を供給することもできる。ジェネレータは、絶対アドレスを取得するために、相対アドレスについてのオフセットを基準値と加算することができる。プロセッサは、アドレスクロスバー(address crossbar)と、データクロスバー(data crossbar)と、複数のＡＬＵと、をさらに含むことができる。アドレスクロスバーは、アドレスジェネレータの出力をレジスタバンクへと結合する。データクロスバーは、レジスタバンクからのデータをＡＬＵへと供給する。ＡＬＵは、レジスタバンクからの、例えば、複数のピクセルについてのデータに対して同時に(concurrently)動作する。
【００１１】
本開示の様々の態様および実施形態が、下記にさらに詳細に説明される。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、絶対アドレッシング(absolute addressing)を示している。
【図１Ｂ】図１Ｂは、相対アドレッシング(relative addressing)を示している。
【図２】図２は、相対アドレッシングをサポートするストレージ構造(storage structure)を示している。
【図３】図３は、相対アドレッシングを用いた読取りおよび書込みをサポートするストレージ構造を示している。
【図４】図４は、相対アドレッシングをサポートするデュアルポートストレージ構造(dual-port storage structure)を示している。
【図５】図５は、グラフィックスプロセッサ(graphics processor)を示している。
【図６】図６は、グラフィックスプロセッサ内のＡＬＵコアとレジスタバンクとを示している。
【図７】図７は、レジスタバンクにおけるグラフィックスデータの記憶を示している。
【図８】図８は、レジスタバンクをＡＬＵコアに結合するデータクロスバーを示している。
【図９】図９は、ワイヤレスデバイスのブロック図を示している。
【詳細な説明】
【００１３】
本開示の態様および実施形態は、図面と併せて解釈されるときに下記に述べられる詳細な説明から、より明らかになるであろう。図面において、同様な参照文字は、全体を通してそれに対応して識別する。
【００１４】
「例示的な(exemplary)」という言葉は、「１つの例、インスタンス、または例証(illustration)としての役割を果たしている(serving)」を意味するようにここにおいて使用される。「例示的な」として、ここにおいて説明される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましい、または有利であるとして解釈されるべきものとは限らない。
【００１５】
図１Ａは、絶対アドレッシングを用いた読取りオペレーションを示している。絶対アドレスは、ストレージユニットにおけるロケーションを指し示し、このストレージユニットは、メモリ、レジスタバンクなどとすることができる。このロケーションに記憶されたデータは、出力データとして供給される。
【００１６】
図１Ｂは、相対アドレッシングを用いた読取りオペレーションを示している。相対アドレスは、ベースアドレスと、オフセットとから成る。ベースアドレスは、基準値を記憶する、ストレージユニットにおけるロケーションを指し示す。基準値は、相対アドレスに対応する絶対アドレスを生成するために、オフセットと加算される。基準値またはオフセットは、負の値とすることもできるが、絶対アドレスは、一般的に正の値である。絶対アドレスによって指し示されるロケーションに記憶されるデータは、出力データとして供給される。
【００１７】
図２は、相対アドレッシングを用いたメモリアクセスを効率的にサポートするストレージ構造２００の一実施形態のブロック図を示している。ストレージ構造２００は、アドレスジェネレータ２１０と、ストレージユニット２３０と、を含む。ストレージ構造２００は、絶対アドレスまたは相対アドレスを受け取り、受け取られたアドレスによって指し示されるロケーションにおけるデータ（例えば、オペランド）を供給する。
【００１８】
アドレスジェネレータ２１０は、アドレス情報を受け取り、このアドレス情報は、ソース識別子(source identifier)（ＩＤ）と、オフセットと、を備えることができる。ソースＩＤは、命令の一部分とすることもでき、あるいは他の何らかのソース、例えば、バッファに由来することもできる。ソースＩＤは、絶対アドレスまたはベースアドレスを含むことができる。相対アドレスでは、加算器２２０は、ストレージユニット２３０からの出力と、オフセットと、を受け取り、それらの２つの入力を加算し、その結果をラッチ２２２へと供給する。マルチプレクサ（Ｍｕｘ）２２４は、２つの入力上で、ラッチ２２２の出力と、アドレス情報と、を受け取り、２つの入力のうちの一方をストレージユニット２３０へと供給する。
【００１９】
アドレス情報が、絶対アドレスを備える場合、そのときにはマルチプレクサ２２４は、絶対アドレスを直接にストレージユニット２３０へと供給し、次いで、このストレージユニットは、絶対アドレスによって指し示されるロケーションにおけるデータを供給する。アドレス情報が、相対アドレスを備える場合、そのときには対応する絶対アドレスが、計算され、そして２つのクロックサイクルで供給される。第１のクロックサイクルにおいて、マルチプレクサ２２４は、アドレス情報（例えば、ソースＩＤ）におけるベースアドレスをストレージユニット２３０へと供給し、次いで、このストレージユニットは、その基準値を加算器２２０へと供給する。次いで、加算器２２０は、アドレス情報におけるオフセットをストレージユニット２３０からの基準値と加算し、そしてその絶対アドレスをラッチ２２２へと供給する。第２のクロックサイクルにおいて、マルチプレクサ２２４は、ラッチ２２２からの絶対アドレスをストレージユニット２３０へと供給し、次いで、このストレージユニットは、絶対アドレスによって指し示されるロケーションにおけるデータを供給する。
【００２０】
加算器２２０は、２つの整数値を加算し、整数の結果を供給することができる簡単な加算器とすることができる。加算器２２０は、当技術分野において知られている任意の設計を用いてインプリメントされる(implemented)ことができ、一般的にＡＬＵに比べて複雑さがずっと少ない。ストレージユニット２３０は、異なる固有のアドレスが割り当てられたレジスタのバンクまたはアレイとすることができる。ストレージユニット２３０は、例えば、ＲＡＭ、シンクロナスＲＡＭ(synchronous RAM)（ＳＲＡＭ）、シンクロナスダイナミックＲＡＭ(synchronous dynamic RAM)（ＳＤＲＡＭ）、フラッシュメモリ(Flash memory)など、他のタイプのストレージとすることもできる。
【００２１】
図２に示される実施形態において、相対アドレッシングを用いた読取りオペレーションが、２つのクロックサイクルで実行される。絶対アドレスは、第１のクロックサイクルにおいて計算され、そしてデータは、第２のクロックサイクルにおいて取り出される。この実施形態は、読取りオペレーションについての総遅延を分割し、より高いクロック速度が、ストレージ構造２００のために使用されることを可能にする。ラッチ（図２に示されず）は、アドレス情報を受け取り、第２の入力のマルチプレクサ２２４に対してその出力を供給することができる。このラッチは、相対アドレスの遅延をマッチングさせるために絶対アドレスを遅延させることになる。代わりに、レジスタ（やはり図２に示されず）が、相対アドレスについての出力データを絶対アドレスについての出力データと時間的に位置合わせするために、ストレージユニット２３０の出力に追加されることもできる。
【００２２】
別の実施形態においては、ラッチ２２２は、存在せず、絶対アドレス計算と、データ取出しとは、１つのクロックサイクルにおいて実行される。さらに別の実施形態においては、複数のラッチが、さらに総遅延を分割し、より高いクロック速度さえサポートするために挿入されることができる。
【００２３】
ストレージ構造２００は、ある種の利点を提供することができる。第１に、絶対アドレスは、アドレス情報、例えば、命令に含まれるソースＩＤに基づいて、実行中に計算されることができる。この特徴は、各実行スレッド(thread of execution)についてのアドレスレジスタを有する必要性を取り除くことができ、これは、マルチスレッドプロセッサ(multi-threaded processor)について注目に値する節約を提供することができる。第２に、ＡＬＵリソースは、絶対アドレスを計算するために消費されない。節約されたＡＬＵリソースは、他のオペレーションのために利用されることができる。第３に、相対アドレッシングを用いた命令は、２つの命令に変換されない。これは、遅延を減少させ、スループットを改善することができる。ストレージ構造２００を使用することからの他の利点が存在する可能性がある。
【００２４】
図３は、相対アドレッシングを用いた読取りおよび書込みを効率的にサポートするストレージ構造３００の一実施形態のブロック図を示している。ストレージ構造３００は、アドレスジェネレータ３１０と、ストレージユニット３３０と、を含む。アドレスジェネレータ３１０は、ソースアドレス情報(source address information)と、宛先アドレス情報(destination address information)とを受け取る。ソースアドレス情報は、読取りオペレーションについての読取りアドレスを指し示し、ソースＩＤとオフセットとを備えることができる。ソースＩＤは、絶対アドレスまたはベースアドレスを含むことができる。宛先アドレス情報は、書込みオペレーションについての書込みアドレスを指し示し、宛先ＩＤとオフセットとを備えることができる。宛先ＩＤは、絶対アドレスまたはベースアドレスを含むことができる。ソースＩＤと宛先ＩＤとは、命令の一部分とすることができ、あるいは他のソースに由来することができる。
【００２５】
アドレスジェネレータ３１０内において、マルチプレクサ３１８は、２つの入力においてソースアドレス情報と、宛先アドレス情報と、を受け取り、そして２つの入力のうちの一方を加算器３２０へと供給する。加算器３２０はまた、ストレージユニット３３０からの出力を受け取り、２つの入力を加算し、そしてその結果をラッチ３２２へと供給する。マルチプレクサ３２４は、３つの入力上で、ラッチ３２２の出力と、ソースアドレス情報と、宛先アドレス情報と、を受け取り、そしてそれらの３つの入力のうちの１つをストレージユニット３３０へと供給する。マルチプレクサ３２６は、２つの入力上で、ラッチ３２２の出力と、宛先アドレス情報と、を受け取り、そしてそれらの２つの入力のうちの一方を遅延ユニット３２８へと供給する。ユニット３２８は、ストレージユニット３３０からのオペランドに対して動作するＡＬＵ（図３には示されず）の遅延とマッチングする(matches)遅延を提供する。例えば、ＡＬＵが４クロックサイクルの遅延を有する場合、そのときにはユニット３２８は、４クロックサイクルの遅延を提供する。ユニット３２８は、書込みアドレスをストレージユニット３３０へと供給する。
【００２６】
読取りアドレスは、以下のようにソースアドレス情報から計算されることができる。ソースアドレス情報が、絶対アドレスを備える場合、そのときにはマルチプレクサ３２４は、読取りアドレスとして絶対アドレスをストレージユニット３３０へと供給する。ソースアドレス情報が、相対アドレスを備える場合、そのときには第１のクロックサイクルにおいて、マルチプレクサ３１８は、ソースアドレス情報の中のオフセットを加算器３２０へと供給し、マルチプレクサ３２４は、ソースアドレス情報の中のベースアドレス（例えば、ソースＩＤ）をストレージユニット３３０へと供給し、そして加算器３２０は、マルチプレクサ３１８からのオフセットをストレージユニット３３０からの基準値と加算し、絶対アドレスをラッチ３２２へと供給する。第２のクロックサイクルにおいて、マルチプレクサ３２４は、読取りアドレスとしてラッチ３２２からの絶対アドレスをストレージユニット３３０へと供給する。
【００２７】
書込みアドレスは、以下のように宛先アドレス情報から計算されることができる。宛先アドレス情報が、絶対アドレスを備える場合、そのときにはマルチプレクサ３２６は、書込みアドレスとして絶対アドレスをストレージユニット３３０へと供給する。宛先アドレス情報が、相対アドレスを備える場合、そのときには第１のクロックサイクルにおいて、マルチプレクサ３１８は、宛先アドレス情報の中のオフセットを加算器３２０へと供給し、マルチプレクサ３２４は、宛先アドレス情報の中のベースアドレス（例えば、宛先ＩＤ）をストレージユニット３３０と供給し、そして加算器３２０は、マルチプレクサ３１８からのオフセットをストレージユニット３３０からの基準値と加算し、絶対アドレスをラッチ３２２へと供給する。第２のクロックサイクルにおいて、マルチプレクサ３２６は、書込みアドレスとしてラッチ３２２からの絶対アドレスをストレージユニット３３０へと供給する。
【００２８】
図４は、相対アドレッシングを効率的にサポートするデュアルポートストレージ構造４００の一実施形態のブロック図を示している。ストレージ構造４００は、アドレスジェネレータ４１０と、ストレージユニット４３０と、を含む。ストレージユニット４３０は、１つのクロックサイクルにおいて２つのロケーションにおけるデータを供給することができる２つの読取りポートを有する。アドレスジェネレータ４１０は、図２における加算器２２０と、ラッチ２２２と、マルチプレクサ２２４と同様に結合される加算器４２０と、ラッチ４２２と、マルチプレクサ４２４と、を含む。アドレスジェネレータ４１０は、２つの読取りポートに結合された２つの入力と、加算器４２０に結合された１つの出力と、を有するマルチプレクサ４２８をさらに含んでいる。コントローラまたはリソースマネージャ（図４に示されず）は、実行される命令の中のアドレス情報に基づいてマルチプレクサ４２４および４２８についての制御信号を生成することができる。
【００２９】
２つの読取りポートは、交互になるように２つのメモリアクセスについてのデータの（例えば、２つの命令による）取出しをサポートする。例えば、第１の命令についての絶対アドレスは、マルチプレクサ４２４を経由してベースアドレスをストレージユニット４３０へと供給することと、ポート０を経由して基準値を取得することと、により、第１のクロックサイクルにおいて計算されることができる。第２のクロックサイクルにおいて、第１の命令についてのデータは、ラッチ４２２からの絶対アドレスをストレージユニット４３０へと供給することと、ポート０を経由してデータを取得することと、により、取り出されることができる。また第２のクロックサイクルにおいては、第２の命令についての絶対アドレスは、マルチプレクサ４２４を経由してベースアドレスをストレージユニット４３０へと供給することと、ポート１を経由して基準値を取得することと、により、計算されることができる。第３のクロックサイクルにおいては、第２の命令についてのデータは、ラッチ４２２からの絶対アドレスをストレージユニット４３０へと供給することと、ポート１を経由してデータを取得することと、により、取り出されることができる。
【００３０】
別の実施形態においては、一方のポート（例えば、ポート０）は、相対アドレスについての基準値を供給するように指定され、そして他方のポート（例えば、ポート１）は、データを供給するように指定される。この実施形態においては、マルチプレクサ４２８は、省略されることができ、ストレージユニット４３０のポート０は、加算器４２０に直接に結合されることができる。クロスバーは、ラッチ４２２とマルチプレクサ４２４との出力をストレージユニット４３０の２つのアドレス入力に結合することができる。
【００３１】
２つの読取りポートは、各読取りオペレーションが２つのクロックサイクルの遅延を有する、クロックサイクル当たりに１つの読取りオペレーションをサポートする。図４に示される実施形態においては、単一の加算器４２０が、各クロックサイクルにおいて絶対アドレスを計算することができる。２つの読取りポートは、同時発生のアドレス生成とデータ取出しをサポートすることができる。
【００３２】
ストレージユニット４３０は、交互になるように２つのメモリアクセスについてのデータの書込みをサポートする２つの書込みポート（図４には示されず）を含むこともできる。
【００３３】
ここにおいて説明される技法は、相対アドレッシングをサポートする様々なタイプのプロセッサのために使用されることができる。例えば、本技法は、グラフィックスプロセッサ(graphics processor)、グラフィックス処理ユニット(graphics processing unit)（ＧＰＵ）、デジタル信号プロセッサ(digital signal processor)（ＤＳＰ）、縮小命令セットコンピュータ(reduced instruction set computer)（ＲＩＳＣ）、高度なＲＩＳＣマシン(advanced RISC machine)（ＡＲＭ）、コントローラ、マイクロプロセッサなどのために使用されることができる。グラフィックスプロセッサのための本技法の例示使用が、下記に説明される。
【００３４】
図５は、一般にＬ≧１となる場合のＬ個のグラフィックスアプリケーション／プログラムをサポートするグラフィックスプロセッサ５００の一実施形態のブロック図を示している。Ｌ個のグラフィックスアプリケーションは、ビデオゲーム、グラフィックスなどについてのものとすることができ、同時に実行することができる。グラフィックスプロセッサ５００は、シェーダーコア(shader core)５０２と、テクスチャエンジン(texture engine)５０４と、キャッシュメモリシステム(cache memory system)５０６と、を含む。用語「コア」、「エンジン」、「マシン」、「プロセッサ」および「処理ユニット」は、多くの場合に交換可能に使用される。シェーダーコア５０２は、シェーディング(shading)などのグラフィックスオペレーションを実行することができ、このシェーディングは、照明、陰影付けなどを伴う非常に複雑なオペレーションである。テクスチャエンジン５０４は、テクスチャマッピングなどのグラフィックスオペレーションを実行することができ、このテクスチャマッピングは、テクスチャテーブルのカラーを用いて画像のピクセルのカラーを修正することを伴う。キャッシュメモリシステム５０６は、１つまたは複数のキャッシュを含むことができ、これらのキャッシュは、シェーダーコア(shader core)５０２と、テクスチャエンジン(texture engine)５０４と、についてのデータおよび命令を記憶することができる高速のメモリである。
【００３５】
シェーダーコア５０２内において、マルチプレクサ５１０は、Ｌ個のグラフィックスアプリケーションからのスレッドを受け取り、これらのスレッドをスレッドスケジューラ(thread scheduler)／命令デコーダ(instruction decoder)５１２へと供給する。スレッドスケジューラ５１２は、スレッドの実行をスケジュールし管理するために、様々なファンクションを実行する。命令キャッシュ５１６は、それらのスレッドについての命令を記憶する。これらの命令は、各スレッドのために実行されるべき特定のオペレーションを指し示し、キャッシュメモリシステム５０６および／またはメインメモリからロードされることができる。ＡＬＵコア５２０は、算術演算、論理演算、フォーマット変換などを実行する。定数バッファ５２２は、ＡＬＵコア５２０によって使用される定数値を記憶する。ロード制御ユニット(load control unit)５１４は、シェーダーコア５０２とテクスチャエンジン５０４との内部の様々なユニットについてのデータおよび命令の流れを制御する。レジスタバンク５３０は、ＡＬＵコア５２０と、ＡＬＵ５４４と、からの中間結果および最終結果を記憶する。デマルチプレクサ(demultiplexer)（Ｄｅｍｕｘ）５３２は、実行されたスレッドについての最終結果をレジスタバンク５３０から受け取り、これらの結果をグラフィックスアプリケーションへと供給する。
【００３６】
テクスチャエンジン５０４内で、テクスチャアドレスジェネレータ(texture address generator)５４０は、テクスチャエンジン５０４によって動作させられるべき各ピクセルの位置を計算する。テクスチャキャッシュ(texture cache)５４２は、テクスチャエンジン５０４のためにピクセルを記憶する。ＡＬＵ５４４は、ピクセルに対して計算を実行し、そして中間結果を供給し、これらの中間結果は、レジスタバンク５３０に記憶して戻されることができる。
【００３７】
図６は、図５におけるシェーダーコア５０２内のＡＬＵコア５２０およびレジスタバンク５３０の一実施形態を示している。この実施形態においては、ＡＬＵコア５２０は、４つのスカラＡＬＵ６２０ａ、６２０ｂ、６２０ｃおよび６２０ｄを含む。各ＡＬＵ６２０は、データクロスバー(data crossbar)６４０から３つまでの入力オペランドを受け取り、それらの入力オペランドに対して算術演算または論理演算を実行し、そしてその結果をデータクロスバー６４０へと供給して戻すことができる。
【００３８】
図６に示される実施形態においては、レジスタバンク５３０は、４つのレジスタバンク６３０ａ、６３０ｂ、６３０ｃおよび６３０ｄを含み、これらは、下記に説明されるようにグラフィックスデータを記憶することができる。３つのアドレスジェネレータ６１０ａ、６１０ｂおよび６１０ｃは、３つのオペランドについてのソースアドレス情報を受け取り、これらのオペランドについての読取りアドレスを生成する。アドレスジェネレータ６１０ｄは、宛先アドレス情報を受け取り、その結果についての書込みアドレスを生成する。スレッドスケジューラ５１２内の命令デコーダは、アドレス情報を各アドレスジェネレータ６１０へと供給することができる。各アドレスジェネレータ６１０は、図２におけるアドレスジェネレータ２００または図４におけるアドレスジェネレータ４００を用いてインプリメントされることができる。アドレスクロスバー６１２は、３つの読取りアドレスおよび書込みアドレスを適切なレジスタバンク６３０および定数バッファ(constant buffer)５２２へと供給する。
【００３９】
各レジスタバンク６３０は、３つのアドレスジェネレータ６１０ａから６１０ｃのうちの１つから読取りアドレスを受け取ることができ、そして読取りオペレーションでは、読取りアドレスによって指し示されるロケーションにあるデータをデータクロスバー６４０へと供給する。各レジスタバンク６３０は、アドレスジェネレータ６１０ｄから書込みアドレスを受け取ることもでき、そして書込みオペレーションでは、データクロスバー６４０からのデータを書込みアドレスによって指し示されるロケーションに記憶する。
【００４０】
一実施形態においては、すべての４つのレジスタバンク６３０ａから６３０ｄは、同時にアクセスされる（それから読み取られ、かつ／またはそれに書き込まれる）ことができる。一般に、各レジスタバンク６３０は、任意数の読取りポートと、任意数の書込みポートと、を含むことができる。一実施形態においては、各レジスタバンク６３０は、２つの読取りポートと、２つの書込みポートと、を含む。２つの読取りポートは、交互になるように２つの読取りオペレーションについてのデータの取出しを可能にする。２つの書込みポートは、交互になるように２つの書込みオペレーションについてのデータの書込みを可能にする。
【００４１】
データクロスバー６４０は、レジスタバンク６３０ａから６３０ｄと、定数バッファ５２２と、からデータを受け取り、３つまでのオペランドを各ＡＬＵ６２０へと供給する。一般に、各ＡＬＵ６２０についての入力オペランドは、４つのレジスタバンク６３０ａから６３０ｄおよび／または定数バッファ５２２のうちのどれかに由来する。各ＡＬＵ６２０からの結果は、４つのレジスタバンク６３０ａから６３０ｄのうちの任意の１つに記憶されることもできる。
【００４２】
レジスタバンク５３０は、シェーダーコア５０２および／またはテクスチャエンジン５０４によって動作させられるべきピクセルについてデータを記憶することができる。２−次元（２−Ｄ）または３次元（３−Ｄ）の画像は、多角形（一般的に三角形）を用いて表されることができる。各三角形は、ピクセルから成ることができる。各ピクセルは、空間座標、カラー値、テクスチャ座標など、様々な属性(attributes)を有することができる。各属性は、４つまでの成分を有することができる。例えば、空間座標は、３つの成分ｘ、ｙ、およびｚ、あるいは４つの成分ｘ、ｙ、ｚおよびｗのいずれかによって与えられることができ、ここでｘおよびｙは、水平座標および垂直座標であり、ｚは、深さであり、ｗは、同次座標(homogeneous coordinate)である。カラー値は、３つの成分ｒ、ｇおよびｂ、あるいは４つの成分ｒ、ｇ、ｂおよびａによって与えられ、ここで、ｒは、赤であり、ｇは、緑であり、ｂは、青であり、そしてａは、ピクセルの透明度を決定する透明性ファクタである。テクスチャ座標は、一般的に水平座標ｕおよび垂直座標ｖによって与えられる。ピクセルは、他の属性に関連づけられることもできる。
【００４３】
図７は、図６におけるレジスタバンク６３０ａから６３０ｄにピクセルについてのグラフィックスデータを記憶する一実施形態を示している。この実施形態においては、各レジスタバンク６３０は、空間座標の異なる成分と、カラー値の異なる成分と、テクスチャ座標の１成分と、を記憶する。特に、レジスタバンク６３０ａは、水平（ｘ）空間座標と、赤色（ｒ）カラー値と、水平（ｕ）テクスチャ座標と、を記憶する。レジスタバンク６３０ｂは、垂直（ｙ）空間座標と、緑色（ｇ）カラー値と、垂直（ｖ）テクスチャ座標と、を記憶する。レジスタバンク６３０ｃは、深さ（ｚ）空間座標と、青色（ｂ）カラー値と、水平（ｕ）テクスチャ座標と、を記憶する。レジスタバンク６３０ｄは、同次（ｗ）空間座標と、透明度（ａ）カラー値と、垂直（ｖ）テクスチャ座標と、を記憶する。この実施形態は、ＡＬＵ６２０ａから６２０ｄについてのデータの効率的な取出しと、ＡＬＵからの結果の効率的な記憶とを可能にすることができる。一般に、ピクセルについてのデータは、任意の方法で記憶されることができ、例えば、各レジスタバンクは、ピクセルについての属性のすべての成分を記憶することができる。
【００４４】
実行されるべき各スレッドには、４つのレジスタバンク６３０ａから６３０ｄにおける十分な数のレジスタが割り付けられることができる。図７に示される例において、各スレッドは、４つのピクセルについてのデータを含み、これらのピクセルは、Ｐ０、Ｐ１、Ｐ２およびＰ３として示される。スレッド０では、４つのピクセルについての水平空間座標（Ｐ０．Ｘ、Ｐ１．Ｘ、Ｐ２．ＸおよびＰ３．Ｘ）は、レジスタバンク６３０ａのレジスタ０に記憶され、４つのピクセルについての赤色カラー値（Ｐ０．Ｒ、Ｐ１．Ｒ、Ｐ２．ＲおよびＰ３．Ｒ）は、レジスタバンク６３０ａのレジスタ１に記憶され、４つのピクセルについての水平テクスチャ座標（Ｐ０．ｕ０、Ｐ１．ｕ０、Ｐ２．ｕ０およびＰ３．ｕ０）は、レジスタバンク６３０ａのレジスタ２に記憶され、そして４つのピクセルについての水平テクスチャ座標（Ｐ０．ｕ２、Ｐ１．ｕ２、Ｐ２．ｕ２およびＰ３．ｕ２）は、レジスタバンク６３０ａのレジスタ３に記憶される。ｕ０およびｖ０と、ｕ１およびｖ１と、ｕ２およびｖ２と、ｕ３およびｖ３とは、テクスチャするために使用されることができる４つのテクスチャマップ(texture map)についてのテクスチャ座標である。スレッド０についての４つのピクセルについての他の成分は、図７に示されるようにレジスタバンク６３０ｂ、６３０ｃおよび６３０ｄのレジスタ０から３に記憶される。スレッド１、２および３についてのピクセルの成分は、図７に示されるように４つのレジスタバンク６３０ａから６３０ｄにも記憶される。
【００４５】
図８は、図６におけるデータクロスバー６４０の一実施形態を示している。この実施形態においては、データクロスバー６４０は、４つのＡＬＵ６２０ａから６２０ｄについてのそれぞれ４つのマルチプレクサの組(four multiplexer sets)８４０ａから８４０ｄを含む。マルチプレクサの組８４０(multiplexer set)ａは、ＡＬＵ６２０ａのための３つの入力オペランドについての３つのマルチプレクサ(three multiplexers)８４２ａ、８４２ｂおよび８４２ｃを含む。各マルチプレクサ８４２は、６つの入力において、４つのレジスタバンク６２０ａから６２０ｄからのデータと、定数バッファ５２２からのデータと、ＡＬＵ６２０ａからの結果と、を受け取る。各マルチプレクサ８４２は、６つの入力のうちの１つをＡＬＵ６２０ａのための１つの入力オペランドとして供給する。図８に示されるように、各レジスタバンク６２０は、ＡＬＵ６２０ａのための３つの入力オペランドのうちの任意の１つを供給することができる。マルチプレクサの組８４０ｂ、８４０ｃおよび８４０ｄは、おのおのマルチプレクサの組８４０ａと同じ方法でインプリメントされることができる。マルチプレクサの組８４０ａから８４０ｄは、異なる制御信号を受け取ることができ、これらの制御信号は、実行されている命令によって決定されることができる。
【００４６】
一般に、命令は、ベクトルベース、またはピクセルベースのものとすることができ、ＡＬＵもまた、ベクトルベース、またはピクセルベースのものとすることができる。ベクトルベースとは、一時に１ピクセルの４つまでの成分の並列のアクセスまたは処理を意味している。ピクセルベースとは、一時に４つまでのピクセルについての１成分の並列なアクセスまたは処理を意味している。一実施形態においては、命令は、ベクトルベースであり、そしてＡＬＵは、ピクセルベースである。ベクトルベースの命令は、無効なピクセルについての計算の省略を可能にする。ピクセルベースのＡＬＵは、対象となる成分だけの計算を可能にする。例えば、２つの空間成分ｘとｙとを加算するために、４つのＡＬＵは、同じクロックサイクルにおいて４つのピクセルに対してこの計算を効率的に実行することができる。それ故に、ベクトルベースの命令と、ピクセルベースのＡＬＵとは、全体的な性能を改善することができる。
【００４７】
図６から８に示される実施形態は、４つのレジスタバンク６３０ａから６３０ｄからのデータの効率的な取出しと、４つのＡＬＵ６２０ａから６２０ｄによって取り出されたデータに対する効率的なオペレーションと、をサポートする。一例として、４つのピクセルについての２つの空間成分ｘと、ｙとは、加算されることができる。アドレスジェネレータ６１０ａおよび６１０ｂは、レジスタバンク６３０ａおよび６３０ｂについての読取りアドレスを生成することができ、そしてアドレスジェネレータ６１０ｄは、その結果についての書込みアドレスを生成することができる。１つの読取りサイクルにおいて、レジスタバンク６３０ａは、４つのピクセルについてのｘ空間成分を供給し、レジスタバンク６３０ｂは、４つのピクセルについてのｙ空間成分を供給する。データクロスバー６４０は、第１のピクセル、第２のピクセル、第３のピクセル、および第４のピクセルについてのｘ成分およびｙ成分をそれぞれＡＬＵ６２０ａ、６２０ｂ、６２０ｃおよび６２０ｄへと供給する。各ＡＬＵ６２０は、１つのピクセルについてのｘ成分およびｙ成分に対して動作する。次いで、データクロスバー６４０は、４つのＡＬＵ６２０ａおよび６２０ｄからの結果を指定されたレジスタバンクへと供給し、このレジスタバンクは、アドレスジェネレータ６１０ｄによって計算される書込みアドレスにそれらの結果を記憶する。ＡＬＵ６２０によってアクセスされないレジスタバンクは、グラフィックスプロセッサ５００内の他のユニット（例えば、ロード制御ユニット５１４）によってアクセスされることができる。
【００４８】
ここにおいて説明される技法は、ワイヤレス通信、コンピューティング、ネットワーキング、パーソナルエレクトロニクスなどのために使用されることができる。ワイヤレス通信についての本技法の例示使用は、下記に説明される。
【００４９】
図９は、ワイヤレス通信システムにおけるワイヤレスデバイス９００の一実施形態のブロック図を示している。ワイヤレスデバイス９００は、セルラ電話、端末、ハンドセット、携帯型個人情報端末(personal digital assistant)（ＰＤＡ）、または他の何らかのデバイスとすることができる。ワイヤレス通信システムは、符号分割多元接続(Code Division Multiple Access)（ＣＤＭＡ）システム、移動体通信用グローバルシステム(Global System for Mobile Communication)（ＧＳＭ）システム、または他の何らかのシステムとすることができる。
【００５０】
ワイヤレスデバイス９００は、受信経路と送信経路とを経由して双方向通信を提供することができる。受信経路上では、基地局によって送信される信号は、アンテナ９１２によって受信され、そしてレシーバ（ＲＣＶＲ）９１４へと供給される。レシーバ９１４は、受信信号を条件づけしデジタル化し、そしてさらに処理するためにデジタルセクション(digital section)９２０へとサンプルを供給する。送信経路上では、トランスミッタ（ＴＭＴＲ）９１６は、デジタルセクション９２０から送信されるべきデータを受信し、そのデータを処理し条件づけし、そして被変調信号を生成し、この被変調信号は、アンテナ９１２を経由して基地局へと送信される。
【００５１】
デジタルセクション９２０は、例えば、モデムプロセッサ９２２、ビデオプロセッサ９２４、コントローラ／プロセッサ９２６、ディスプレイプロセッサ９２８、ＡＲＭ／ＤＳＰ９３２、グラフィックスプロセッサ９３４、内部メモリ９３６、外部バスインターフェース(external bus interface)（ＥＢＩ）９３８など、様々な処理ユニットと、インターフェースユニットと、メモリユニットと、を含む。モデムプロセッサ９２２は、データの送信および受信のための処理（例えば、符号化、変調、復調、および復号化）を実行する。ビデオプロセッサ９２４は、カムコーダ、ビデオ再生、ビデオ会議などのビデオアプリケーションについてのビデオコンテンツ（例えば、スチル画像、ムービングビデオ(moving video)、およびムービングテキスト(moving text)）に対して処理を実行する。コントローラ／プロセッサ９２６は、デジタルセクション９２０内の様々な処理ユニットおよびインターフェースユニットのオペレーションを指示することができる。ディスプレイプロセッサ９２８は、ディスプレイユニット９３０上で、ビデオ、グラフィックス、およびテキストの表示を容易にする処理を実行する。ＡＲＭ／ＤＳＰ９３２は、ワイヤレスデバイス９００についての様々なタイプの処理を実行することができる。グラフィックスプロセッサ９３４は、グラフィックス処理を実行し、そして図５に示されるようにインプリメントされることができる。ここにおいて説明される技法は、デジタルセクション９２０の中のプロセッサのうちの任意のもの、例えば、グラフィックスプロセッサ９３４のために使用されることができる。内部メモリ９３６は、デジタルセクション９２０内の様々なユニットのためのデータおよび／または命令を記憶する。ＥＢＩ９３８は、デジタルセクション９２０（例えば、内部メモリ９３６）と、メインメモリ９４０との間のデータの転送を容易にする。
【００５２】
デジタルセクション９２０は、１つまたは複数のＤＳＰ、マイクロプロセッサ、ＲＩＳＣなどを用いてインプリメントされることができる。デジタルセクション９２０は、１つまたは複数の特定用途向け集積回路(application specific integrated circuit)（ＡＳＩＣ）、あるいは他の何らかのタイプの集積回路(integrated circuit)（ＩＣ）の上に製造されることもできる。
【００５３】
ここにおいて説明される技法は、様々なハードウェアユニットの形でインプリメントされることができる。例えば、本技法は、ＡＳＩＣと、ＤＳＰと、ＲＩＳＣと、ＡＲＭと、デジタル信号処理デバイス(digital signal processing device)（ＤＳＰＤ）と、プログラマブルロジックデバイス(programmable logic device)（ＰＬＤ）と、フィールドプログラマブルゲートアレイ(field programmable gate array)（ＦＰＧＡ）と、プロセッサと、コントローラと、マイクロコントローラと、マイクロプロセッサと、他の電子ユニットと、の形でインプリメントされることができる。
【００５４】
開示された実施形態の上記の説明は、いずれの当業者(person skilled in the art)も本開示を作り、または使用することを可能とするように、提供されている。これらの実施形態に対する様々な修正は、当業者にとっては容易に明らかであり、そしてここにおいて定義される包括的な原理は、本開示の精神または範囲を逸脱することなしに他の実施形態に対して適用されることができる。したがって、本開示は、ここにおいて示される実施形態だけに限定されるようには意図されておらず、ここにおいて開示される原理および新規な特徴と整合する最も広い範囲が与えられるべきである。
【図１Ａ】
2010503073.tif 000003
【図１Ｂ】
2010503073.tif 000004
【図２】
2010503073.tif 000005
【図３】
2010503073.tif 000006
【図４】
2010503073.tif 000007
【図５】
2010503073.tif 000008
【図６】
2010503073.tif 000009
【図７】
2010503073.tif 000010
【図８】
2010503073.tif 000011
【図９】
2010503073.tif 000012
【国際調査報告】
2010503073.tif 000013
2010503073.tif 000014