(57)【要約】データ処理装置は、複数の命令を含むことができる命令ワードを出力するようになっている命令メモリシステムを有しており、各命令ワードは対応する命令アドレスに応じて出力される。命令実行ユニットは複数の機能ユニットを有しており、各機能ユニットは、命令ワードからの他の命令を他の機能ユニットが実行するのと並行して、命令ワードからの対応する命令を実行することができる。節電回路は、機能ユニットおよび／または命令メモリの一部の選択可能なサブセットを節電状態に切り換えるために設けられている。一方、他の機能ユニットおよび命令メモリの一部は、通常の電力消費状態で命令を処理し続ける。節電回路は、プログラム実行に応じて機能ユニットおよび／または命令メモリの一部を選択する。
2006502488.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令を含むことができる命令ワードを出力する命令メモリシステムであって、前記各命令ワードが対応する命令アドレスに応じて出力される命令メモリシステムと、
複数の機能ユニットを備える命令実行ユニットであって、前記各機能ユニットは、前記命令ワードからの他の命令を他の機能ユニットが実行するのと並行して、前記命令ワードからの対応する命令を実行することができる命令実行ユニットと、
前記機能ユニット、および／または前記命令ワードからの命令を前記機能ユニットに対して供給する前記命令メモリの一部、の選択可能なサブセットをプログラム実行中に節電状態に切り換える節電回路であって、プログラム実行に応じて前記サブセットの機能ユニットおよび／または命令メモリの一部を選択する節電回路と、
を備えるデータ処理装置。
【請求項２】
前記節電状態においては、前記サブセットの機能ユニットおよび／または命令メモリの一部に対するクロック信号が無効にされる、請求項１に記載のデータ処理装置。
【請求項３】
前記機能ユニットが１または複数の機能ユニットから成るグループに編成され、対応する各グループの１または複数の機能ユニットが命令ワード内の対応する命令領域から命令を受け、グループ内の機能ユニットのうちの１つによって実行される度に、前記節電回路は、節電状態に切り換えられる機能ユニットをグループ毎に選択する、請求項１に記載のデータ処理装置。
【請求項４】
前記命令メモリシステムが複数のメモリユニットを備え、各メモリユニットは、命令のための命令ワード内の命令領域を対応する機能ユニットまたは機能ユニットから成るグループに供給し、クロックゲート回路は、節電状態に切り換えられる選択可能な機能ユニットにその命令領域を供給するメモリユニットを節電状態に切り換えるようになっている、請求項１に記載のデータ処理装置。
【請求項５】
前記各メモリユニットは、命令アドレスの対応する範囲の複数の命令ワードにおける各命令ワードの少なくとも一部だけのための記憶場所を備え、前記命令メモリシステムは、異なる前記メモリユニットの各範囲の部分的な重なり合いを許容する、請求項４に記載のデータ処理装置。
【請求項６】
前記節電回路は、前記命令ワードに関連付けられた命令アドレスに応じて前記サブセットを選択するようになっている、請求項１に記載のデータ処理装置。
【請求項７】
前記節電回路は、データ処理装置によって実行されるプログラム内に含まれる１または複数の命令の制御下で前記サブセットを選択するようになっている、請求項１に記載のデータ処理装置。
【請求項８】
前記１または複数の命令が前記サブセットを特定する、請求項７に記載のデータ処理装置。
【請求項９】
請求項１に記載のデータ処理装置を使用して命令プログラムを実行する方法であって、前記グループのうちの特定の１つのグループ内の機能ユニットのための命令を前記命令ワードが含まないプログラムの部分を特定するとともに、前記節電回路を使用することにより、前記特定されたプログラムの部分の実行中に、前記特定の１つのグループ内に含まれない機能ユニットおよび／または前記特定の１つのグループに結合されたメモリユニットを節電状態に切り換えることを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令ワードからの複数の命令を並行して実行することができるＶＬＩＷ（超長命令語）プロセッサ等のデータ処理装置に関する。
【背景技術】
【０００２】
ＶＬＩＷプロセッサによれば、高い命令並行度をもってプログラムを実行することができる。従来、各命令サイクルにおいて、ＶＬＩＷプロセッサは、複数の所定の数の命令（多くの場合、演算と呼ばれる）を含む命令ワードをフェッチする（呼び出す）。ＶＬＩＷプロセッサは、これらの演算を同じ命令サイクル（または複数のサイクル）内で並行して実行する。この目的のため、ＶＬＩＷプロセッサは複数の機能ユニットを有しており、各機能ユニットは命令ワードからの演算のうちの１つを同時に実行することができる。ＡＬＵ（演算論理回路）、乗算器、ブランチ制御ユニット、メモリアクセスユニット等の様々な種類の機能ユニットが一般に設けられる。多くの場合、特定の用途のためプログラムの速度を上げるように設計された専用の機能ユニットも含まれる。したがって、例えばＭＰＥＧエンコーディングまたはデコーディングの一部を実行するための機能ユニットが加えられる場合もある。
【０００３】
高性能ＶＬＩＷプロセッサにおいては、数百個の機能ユニットが存在する場合もある。基本的に、命令ワードは、これらの機能ユニットの全てのための命令を同時に含んでいても良い。多くの場合、機能ユニットは１または複数の機能ユニットから成るグループに編成され、１つの命令ワードはグループ毎に１つの命令を与える。少なくとも幾つかのグループが複数の機能ユニットを含んでいる場合には、グループ分けにより、機能ユニットの数を減らすことなく命令ワードの長さが抑えられる。
【０００４】
全ての機能ユニットは必然的に電源電流を消費する。したがって、ＶＬＩＷプロセッサが同時に動作する多くの機能ユニットを有している場合、かなりの消費電力が生じる。このことは、バッテリ作動の装置における要件と矛盾する。また、それにより、消費電力に伴う熱に起因して１つのパッケージ内でＶＬＩＷプロセッサを動作させるために必要な冷却手段のコストも増大する。
【０００５】
米国特許第５，８１５，７２５号は、クロックゲートを使用してマイクロプロセッサにおける電力消費量を減少させることについて記載している。モニタ回路は、マイクロプロセッサが低アクティビティ動作状態に入るか否かを監視し、低アクティビティ動作状態に入る場合にはクロック信号をマイクロプロセッサに対して送信する。米国特許第５，８１５，７２５号において、クロックゲートは、クロックサイクルの一部だけにおいてクロック信号を無効にすることを伴う。これは、マイクロプロセッサが動作し続けなければならないからである。米国特許第５，６６１，７５１号は、その間にマイクロプロセッサの周辺機器（ＵＡＲＴ）に対するクロック信号が完全に無効にされるクロックゲートについて記載している。同様に、米国特許第６，３４５，３３６号は、キャッシュメモリの一部のクロック信号を無効にすることについて記載している。
【０００６】
クロックゲートは電力消費量を減少させるが、プロセッサの命令実行部分に適用される場合、クロックゲートは、命令を実行する能力を低下させてしまうという欠点を有している。注目に値すべき点は、米国特許第５，６６１，７５１号および米国特許第６，３４５，３３６号が、周辺回路や補助回路に対してクロックゲートを適用し、命令実行回路や命令メモリ全体に対してクロックゲートを適用しないという点である。米国特許第５，８１５，７２５号は、クロックサイクルの一部だけでクロック信号を無効にすることにより、マイクロプロセッサのクロック信号の完全無効の問題を緩和しようとしている。しかしながら、命令実行の速度が低下してしまう。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特に、本発明の目的は、命令実行中に節電手段を使用して、命令を実行できる速度を低下させることなく電力消費量を減少させるデータ処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は請求項１に係るデータ処理装置を提供する。このデータ処理装置は、それぞれが複数の命令を含む複数の命令ワードを処理するタイプのもの、例えばＶＬＩＷプロセッサである。異なる機能ユニットは、命令ワードからの命令を並行して実行する。本発明において、処理装置は、機能ユニットの一部および／または対応する機能ユニットまたは機能ユニットから成るグループに命令を供給するメモリユニットに対して選択的にクロックゲート等の節電手段をプログラム実行に応じて適用することができるように構成されている。特にメモリユニットにおいては多くの電力を節約できる。
【０００９】
本発明は、機能ユニットの稼動率がプログラムセクション間で異なる有用なアプリケーションプログラムが存在するという見識に基づいている。そのようなアプリケーションにおいては、どの機能ユニットがどのセクションで使用されるのかを予め決定することができる。例えば、ＭＰＥＧエンコーディングを含むプログラムにおいては、そのようなエンコーディングにおける特定のタスクのための専用の機能ユニットだけが特定のセクションで使用される。プロセッサがプログラムセクションからの命令ワードを実行する際には、そのセクションで使用されないことが分かっている機能ユニットおよび／またはメモリユニットのクロック信号を無効にするために節電が使用されても良い。
【００１０】
節電手段が適用される機能ユニットのための命令における専用の領域を命令ワードが含んでいる場合、装置は、クロックゲートがその機能ユニットに対して適用される際に上記専用の領域を与える命令メモリの部分に対しても節電手段を自動的に適用しても良い。更に一般的には、処理装置は、節電手段が適用される機能ユニットに専用のレジスタファイルや周辺回路等の任意のリソースに対して節電手段を適用しても良い。
【００１１】
また、多くの有用なアプリケーションプログラムにおいては様々な機能ユニットの稼動率が互いに関連付けられていることに気付いた。１つの機能ユニットが使用されないプログラムセクションにおいては、特定の関連付けられた機能ユニットも使用されない。したがって、そのような機能ユニットを組み合わせて１つのグループとし、クロックゲートがグループ内の全ての機能ユニットへのクロック信号を無効にするように回路を設けることが有益である。１つのプログラムセクションで使用される機能ユニットをグループが全く含んでいない場合には、クロックゲートを使用して、グループの全ての機能ユニットへのクロック信号を無効にすることができる。また、リソースがプロセッサのグループ毎に共有されている場合、クロックゲートをリソースにも適用することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図１を参照しながら、本発明に係る処理装置および処理方法のこれらの目的および他の目的並びに有利な態様について詳細に説明する。
【００１３】
図１は、メモリユニット１２ａ〜１２ｇを有するメモリシステム１０と、コントローラ１４と、命令実行ユニット７とを備える処理装置を示している。命令実行ユニット７は、機能ユニット１８ａ〜１８ｃから成るグループ７０ａ〜７０ｇと、レジスタファイル７２と、命令アドレスカウンタユニット７４とを有している。命令アドレスカウンタユニット７４は、コントローラ１４に結合された命令アドレス出力部を有している。コントローラ１４は、メモリユニット１２ａ〜１２ｇとグループ７０ａ〜７０ｇとに対して結合された選択出力部１６を有している。また、コントローラ１４は、メモリユニット１２ａ〜１２ｇに対して結合されたアドレス出力部を有している。メモリユニット１２ａ〜１２ｇは、グループ７０ａ〜７０ｇのうちの対応する１つとレジスタファイル７２とに対して結合された命令出力部を有している。レジスタファイルは、グループ７０ａ〜７０ｇに結合されたオペランド／結果出力／入力ポート（別個に図示せず）を有している。各グループ７０ａ〜７０ｇは１または複数の機能ユニット１８ａ〜１８ｃを有しており（１つのグループの機能ユニットだけが明示されている）、これらの機能ユニットは全て、コントローラ１４の選択出力部１６に結合されたクロックゲート入力部と、メモリユニット１２ａ〜１２ｇに結合された演算コード入力部と、レジスタファイル７２に結合されたオペランド入力部と、レジスタファイル７２に結合された結果出力部とを有している（これらの全ては、クロックゲート入力部を除き、メモリユニット１２ａ〜１２ｇと機能ユニット１８ａ〜１８ｃから成るグループ７０ａ〜７０ｇとレジスタファイル７２との間の１つの接続部によって象徴されている）。グループ７０ａ〜７０ｇのうちの１つは、命令アドレスカウンタユニット７４に結合されたブランチアドレス出力部を有している。
【００１４】
動作時、処理装置は一連の命令サイクルで動作する。一連の命令サイクルにおいて、アドレスカウンタユニット７４は連続する命令から成るアドレスをコントローラ１４に出力する（これらの命令は、対応する命令が連続的に実行されるため“連続する”と呼ばれる。しかしながら、ブランチの場合には、アドレスが連続的でない場合もある）。コントローラは、命令アドレスから得られる更なる命令アドレスをメモリユニット１２ａ〜１２ｇに出力する。更なる命令アドレスは、メモリユニット１２ａ〜１２ｇ内の命令記憶場所をアドレス指定する。メモリユニット１２ａ〜１２ｇは、そのアドレスからの命令を命令実行ユニット７に対して出力する。メモリユニット１２ａ〜１２ｇから出力された命令の組み合わせは、様々な命令のための領域を有する命令ワードを形成する。
【００１５】
また、コントローラ１４は、メモリユニット１２ａ〜１２ｇに加えられる選択信号を出力する。各選択信号は、対応するメモリユニット１２ａ〜１２ｇからの命令が現在の命令サイクルにおいて必要かどうかを示している。特定のメモリユニット１２ａ〜１２ｇからの命令が必要でないことを選択信号が示している場合には、例えばその特定のメモリユニット１２ａ〜１２ｇ内でクロック信号を無効にすることにより、そのメモリユニットが節電（省電力）状態に切り換えられる。これらのクロック信号は、例えば、特定のメモリユニット１２ａ〜１２ｇから出力された命令を変更するためにメモリユニットの出力ドライバに信号を送るクロック信号、または、ビットラインおよび／またはワードライン等をプリチャージするために使用されるクロック信号を含んでいる。これらのクロック信号が無効にされると、例えば出力部、ビットラインおよび／またはワードラインのための充電電流が必要ないため、電力が節約される。電力を節約する他の方法としては、節電中に状態を保持する必要がない回路から電力供給源を切り離すことが挙げられる。
【００１６】
機能ユニット１８ａ〜１８ｃから成る各グループ７０ａ〜７０ｇは、メモリユニット１２ａ〜１２ｇのうちの対応する１つから命令を受けるとともに、その対応するメモリユニット１２ａ〜１２ｇに加えられる選択信号を受ける。選択信号は、例えばグループ７０ａ〜７０ｇ内の機能ユニット１８ａ〜１８ｃ内でクロック信号を無効にすることにより、機能ユニットから成るグループが節電状態に切り換えられるかどうかを制御する。無効にされたクロック信号は、例えば、機能ユニット１８ａ〜１８ｃの出力ドライバからの出力信号に論理的な移行を引き起こすクロック信号、または、信号ラインのプリチャージに関与するクロック信号を含んでいる。また、幾つかの機能ユニットは、クロックが無効にされるときに電力を殆ど消費しないデータメモリを有している。これらのクロック信号が無効にされると、例えば出力部や信号ラインのための充電電流が必要ないため、電力が節約される。
【００１７】
クロック信号が無効にされるべきことを選択信号が示さないグループにおいて、グループ７０ａ〜７０ｇの機能ユニット１８ａ〜１８ｃは、グループ７０ａ〜７０ｇの機能ユニット１８ａ〜１８ｃのうちのどれが対応するメモリユニット１２ａ〜１２ｇからの命令を実行しなければならないのかを決定するとともに、その機能ユニットは、命令によってアドレス指定されたオペランドをレジスタファイル７２から読み取る（もしあれば）とともに、結果をレジスタファイル７２に対して供給する（もしあれば）。
【００１８】
協働するメモリユニット１２ａ〜１２ｇおよびグループ７０ａ〜７０ｇの両方においてクロックが無効にされることが好ましいが、これらの一方だけでクロック信号が無効にされる場合でも電力の利点が得られることは言うまでもない。
【００１９】
コントローラ１４は、他のメモリユニット１２ａ〜１２ｇおよび／またはグループ７０ａ〜７０ｇとは無関係に、メモリユニット１２ａ〜１２ｇおよび／またはグループ７０ａ〜７０ｇを選択しおよびその選択を解除することができる。選択は様々な方法で制御されても良い。１つの実施形態においては、メモリユニット１２ａ〜１２ｇからの命令ワードのプログラムを実行する前にコントローラ１４の制御メモリ（図示せず）内にロードされるメモリマッピング情報が使用される。この場合、メモリマッピング情報は、命令アドレスカウンタユニット７４からの命令アドレスの多くのアドレス範囲に関して、選択信号のうちのどれがアクティブにされるべきかを示す。コントローラ１４は、命令アドレスカウンタユニット７４から命令アドレスを受けると、命令アドレスを含み且つそのアドレスのために記憶された選択信号を供給するアドレス範囲を検知する。
【００２０】
他の実施形態において、選択された選択信号のその後のＯＦＦ／ＯＮ切り換えは、実行ユニット７によって実行される命令ワードから命令される。この目的のため、選択信号を受けなければならないグループ７０ａ〜７０ｇの表示を含む命令を実行する特定の選択制御機能ユニットがグループ７０ａ〜７０ｃのうちの１つに設けられても良い。そのような命令は、例えば、グループが選択されるべきか否かを示すために異なるグループ毎に対応するビットを有するマスクの形態を成していても良く、あるいは、その選択がアクティブにされまたは非アクティブにされるグループを示す数（番号）の形態を成していても良い。したがって、クロック信号が無効にされる機能ユニットの様々な部分集合（グループ）を選択することができる。そのような１つの部分集合においてのみクロック信号を無効にできる極めて簡単な実施形態においては、コマンドが部分集合を特定する必要がない。
【００２１】
図１は、全てのグループ７０ａ〜７０ｇが選択信号を受ける形態を示しているが、全てのグループにおいて選択信号を使用することに本発明が限定されるものではないことは言うまでもない。実際には、コントローラ１４がグループ７０ａ〜７０ｇのうちの幾つかに関して選択出力部を有していなくても良く、また、グループのうちのこれらの幾つかが選択入力部を有していなくても良い。したがって、これらのグループは常にアクティブである。少なくとも１つのグループが常にアクティブであることが好ましい。また、各グループがそれ自体の独立に設定可能な選択信号を受けるように示されているが、実際には、幾つかのグループが共有の選択信号を受けても良いことは言うまでもない。また、全てのグループが差異無く示されているが、実際には、グループが異なっていても良いことは言うまでもない。すなわち、幾つかのグループ内の機能ユニットがメモリユニット１２ａ〜１２ｇから例えばブランチアドレスや定数等の文字データを受けても良い。これに対し、他のグループ内の機能ユニットだけが演算コードを受けても良い。このデータはレジスタファイル７２から供給される。また、幾つかのグループは、他のグループよりも多い数のオペランドを受けても良く、あるいは、他のグループよりも多い数の結果を生成しても良い。
【００２２】
図示のように、グループ７０ａ〜７０ｇのうちの１つは、命令に応じて命令アドレスカウンタユニット７４内の命令アドレスを更新するために、ブランチ機能ユニット（図示せず）からの接続部を有している。ブランチ機能ユニットは、例えばある条件が満たされたことを決定する際に、この更新を実行する。更新は、絶対的（アドレスカウンタユニット７４内のプログラムカウンタ値の交換）であっても、あるいは、相対的（プログラムカウンタ値への付加）であっても良い。これは一例として示されている。実際には、複数のグループ７０ａ〜７０ｇが命令アドレスカウンタユニット７４に結合された１または複数のブランチ機能ユニットを有していても良い。
【００２３】
また、機能ユニットから成る各グループ７０ａ〜７０ｇ毎に別個のメモリユニット１２ａ〜１２ｇが示されているが、幾つかのグループが１つのメモリユニット１２ａ〜１２ｇを共有し、それにより、そのメモリユニットがこれらのグループのための命令を並行して生成しても良い（一般に、これらのメモリユニットは、他のメモリユニット１２ａ〜１２ｇよりも幅広い命令出力部を有している）ことは言うまでもない。無論、そのようなメモリユニットが仮にあったとしても、メモリユニット１２ａ〜１２ｇに接続された機能ユニットから成るグループ７０ａ〜７０ｇのいずれもが命令を必要としない場合にだけ、そのようなメモリユニット内でクロック信号が無効にされる。これは、関連する機能ユニットのグループのいずれもが命令を必要としないかどうかを決定するための検出器を使用して実施することができ、あるいは、それはプログラムからの命令によって示されても良い。
【００２４】
また、幾つかの構成においては、レジスタファイル７２が多数のレジスタファイルに分割されても良く、これらのレジスタファイルの幾つかは機能ユニット１８ａ〜１８ｃから成るグループ７０ａ〜７０ｇの一部に対してだけ結合される。また、時として、これらのレジスタファイルの幾つかは１つのグループ７０ａ〜７０ｇに対してだけ結合される。この場合、レジスタファイルは関連するグループの一部として見なすことができる。後者の場合、現在選択されていないグループ７０ａ〜７０ｇのうちの１つにだけ接続されるレジスタファイルに対して、例えばそのレジスタファイル内のクロック信号を無効にすることにより節電が適用されても良い。複数のグループが１つのレジスタファイルにアクセスした場合には、そのレジスタファイルにアクセスした全てのグループ内のクロック信号をコントローラ１４からの選択信号が無効にする際に、そのレジスタファイルに対して節電が適用されても良い。この目的のため、このレジスタファイルのための別個の選択出力部がコントローラ１４に設けられ、それにより、レジスタファイルの節電を明確に制御できるようにしても良い。また、関連する全てのグループ７０ａ〜７０ｇの選択信号が節電を適用しなければならない旨の信号を送っているかどうかを検知するための検知回路が設けられても良く、関連する全てのグループ７０ａ〜７０ｇの選択信号が節電を適用しなければならない旨の信号を送っている場合には、検知回路は、節電がレジスタファイルにも同様に適用されなければならない旨の信号を送る。
【００２５】
実際には、処理装置は命令実行のパイプライン処理を使用しても良い。すなわち、同じ命令サイクルにおいて、コントローラ１４が１つの命令アドレスを処理しても良く、メモリユニット１２ａ〜１２ｇが前回の命令アドレスのための命令を取り出しても良く、機能ユニット１８ａ〜１８ｃが１または複数の前々回の命令アドレスのための１または複数の処理段階を処理していても良い。この場合、例えばメモリユニット１２ａ〜１２ｇのための異なる数の命令サイクルおよび機能ユニット１８ａ〜１８ｃの異なるパイプライン段階によってコントローラ１４からの選択信号を遅延させることにより、節電すなわちクロック信号の無効もパイプライン処理されても良い。
【００２６】
プログラムの実行前に、どのプログラム部分が機能ユニットから成るグループ７０ａ〜７０ｇのどれを必要としているかを決定することが好ましい。これは、機能ユニット１８ａ〜１８ｃの特有の機能を考慮するという問題であるが、プログラムの様々な部分における様々な必要な大きさの並行度に依存していても良い。例えば、内側ループの内部で高い並行度が必要とされても良い。
【００２７】
データ処理装置のプログラミングは、実行されるべき演算の種類(description)、例えばプログラムからハイレベルなコンピュータ言語にコンパイルされるべき演算の種類を決定することにより始まる。その後、演算を機能ユニットに対してマッピングするためのステップが行なわれる。このマッピングステップは、ある程度の自由なマッピングを可能にする。例えば、幾つかの算術演算および論理演算は、１つの算術論理機能ユニットで連続して行なうことができ、あるいは、異なる算術論理機能ユニットで並行して行なうことができる。マッピングステップ中に、内側ループおよびプログラムの周囲の部分が特定されても良い（これらは、プログラムが実行される度に何度も、１回だけ、または、数回それぞれ実行される）。この場合、異なる機能ユニットで並行に実行できるように、内側ループの演算がマッピングされることが好ましい。これに対し、周囲の部分からの演算は、順次実行を使用して、１つまたは限られた一部の機能ユニットに対してマッピングされることが好ましい。更に、マッピングステップ中、幾つかの演算を特定の機能ユニットまたは機能ユニットから成る１つのグループに対してのみマッピングすることができる。特定のＭＰＥＧエンコーディングまたはエンコーディング機能がこの例である。
【００２８】
選択ステップにおいては、プログラムの各選択で使用される機能ユニットの組み合わせ（グループ）が特定され、どの組み合わせをどのセクションで使用するかを示す情報がコンパイルされる。この情報は、その後、セクションからの命令が実行される時にそのセクションで使用されない機能ユニット（のグループ）内で選択的にクロック信号を無効にするために、例えばメモリマッピング情報の形態または選択された機能ユニット内でクロック信号を無効または有効にするためのコマンドの形態を成して、プログラムの実行中に使用される。
【図面の簡単な説明】
【００２９】
【図１】処理装置を示している。
2006502488.tif 000003
【国際調査報告】
2006502488.tif 000004
2006502488.tif 000005
2006502488.tif 000006