(57)【要約】  データの不揮発性の格納のための第１の記憶手段（2）、第１の記憶手段（2）に格納されるプログラムコードデータ（100、101、100’、103、101’）及びプログラムコードデータの実行可能なインスタンスを実行できる第２の記憶手段（3）を含む電子機器（1）を提供することにより、プログラムコードのメモリ空間を節約する記憶が、無線通信用電子機器に提供される。ここで、第１の記憶手段（2）に格納されるプログラムコードデータ（100、101、100’、103、101’）は、圧縮形式の第１のプログラムコードデータ（101、101’）及び非圧縮形式の別のコードデータ（100、100’、103）を含み、別のコードデータは、第１のプログラムコードデータ（101、101’）を第１のプログラムコードデータ（101、101’）の実行可能なインスタンス（101*、101’*）に変換し且つ前記実行可能なインスタンスを第２の記憶手段（3）に転送できる第２のプログラムコードデータ（101、101’）を含む。
2008509461.tif 000002
【特許請求の範囲】
【請求項１】
データの不揮発性記憶を行う第１の記憶手段（2）と、
前記第１の記憶手段（2）に格納されるプログラムコードデータ（100、101、100'、103、101'）と、
プログラムコードデータの実行可能なインスタンス（101*、101'*、103）の実行が可能である第２の記憶手段（3）と、を具備する無線通信用電子機器であって、
前記第１の記憶手段（2）に格納される前記プログラムコードデータ（100、101、103、100'、101'）は、圧縮形式の第１のプログラムコードデータ（101、101'）及び非圧縮形式の別のコードデータ（100、100'、103）を含み、前記別のコードデータは、前記第１のプログラムコードデータ（101、101'）を前記第１のプログラムコードデータ（101、101'）の実行可能なインスタンス（101*、101'*）に変換し且つ前記実行可能なインスタンスを前記第２の記憶手段（3）に転送するように構成された第２のプログラムコードデータ（101、101'）を含むことを特徴とする電子機器。
【請求項２】
前記第２の記憶手段（3）の少なくとも第１の部分は、揮発性メモリ内に配置されることを特徴とする請求項１記載の電子機器。
【請求項３】
前記第１の記憶手段（2）は、順次アクセスされるメモリに配置されることを特徴とする請求項１又は２記載の電子機器。
【請求項４】
前記第１の記憶手段（2）は、ランダムアクセスされるメモリに配置されることを特徴とする請求項１又は２記載の電子機器。
【請求項５】
前記第２の記憶手段（3）の別の部分は、前記第１の記憶手段（2）と同一の物理記憶素子内に配置されることを特徴とする請求項４記載の電子機器。
【請求項６】
前記別のコードデータは、前記第２の記憶手段（3）の前記別の部分に格納され且つ所定の場所で実行される第３のプログラムコードデータ（103）を更に含むことを特徴とする請求項５記載の電子機器。
【請求項７】
前記第２のプログラムコードデータ（100、100'）は、前記電子機器の読み出し専用メモリ（4）に提供される初期ブートコードを使用することにより起動されることを特徴とする請求項１から６までのいずれか１項に記載の電子機器。
【請求項８】
前記第２のプログラムコードデータ（100、100'）は、コントローラ（5）内に格納され且つ前記第２のプログラムコードデータの起動を可能にするコードセグメントを実行できる前記コントローラを使用することにより起動されることを特徴とする請求項１から６までのいずれか１項に記載の電子機器。
【請求項９】
前記電子機器（1）は、移動無線端末により構成されることを特徴とする請求項１から８までのいずれか１項に記載の電子機器。
【請求項１０】
無線通信用電子機器におけるプログラムコードのメモリ空間を節約する記憶方法であって、
第１のプログラムコードを表す第１のプログラムコードデータ（101*、101'*）を作成するステップ（S2、S22）と、
第２のプログラムコードを表す第２のプログラムコードデータ（100、100'）を含む別のコードデータ（100、100'、103）を作成するステップ（S1、S21）と、
前記第１のプログラムコードデータを圧縮するステップ（S3、S23）と、
前記圧縮された第１のプログラムコードデータ（101、101'）及び前記別のコードデータ（100、100'）を無線通信用電子機器（1）の不揮発性メモリに転送するステップ（S5、S25）とを有し、
前記第２のプログラムコードデータ（100、100'）は、無線通信用電子機器において実行される際に、前記圧縮された第１のプログラムコードデータ（101、101'）を前記第１のプログラムコードデータの実行可能なインスタンス（101*、101'*）に変換すること及びデータに対する前記第１のプログラムコードデータの前記実行可能なインスタンス（101*、101'*）をプログラムコードの実行が可能なメモリに転送することを実行するロジックを含むことを特徴とする方法。
【請求項１１】
別のコードデータ（100、100'、103）を作成する前記ステップ（S21）は、前記不揮発性メモリ内の所定の場所において実行できる第３のプログラムコードデータ（100、100'、103）を含むことから構成されることを特徴とする請求項１０記載の方法。
【請求項１２】
前記方法は、前記圧縮された第１のプログラムコードデータ（101、101'）及び前記別のコードデータ（100、100'、103）を連結してプログラムデータセットとし且つ前記圧縮された第１のプログラムコードデータ及び前記別のコードデータを前記プログラムデータセットの形式で前記無線通信用電子機器（1）の前記不揮発性メモリに転送する更なるステップ（S4、S24）を含むことを特徴とする請求項１０又は１１記載の方法。
【請求項１３】
前記第１のプログラムコードデータ及び前記別のコードデータ、あるいは前記プログラムデータセットは、証明書を使用して署名されることを特徴とする請求項１０から１２までのいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信用電子機器に関し、特に、プログラムデータを記憶するのに不揮発性メモリを利用する無線通信用電子機器に関する。
【背景技術】
【０００２】
移動電話、ページャ、あるいは、例えば電子オーガナイザ、スマートフォン、PDA（パーソナルデジタルアシスタント）のような通信機、その他の無線通信装置といった携帯無線通信機器などの、今日の無線通信用電子機器は、その電子機器を動作させるのに必要とされるプログラムコードデータを記憶するために、電源が切られた状態においてもデータを保持する不揮発性メモリ素子を有する。通常、実行可能なプログラムコードのサイズは非常に大きい。したがって、フラッシュメモリ等の不揮発性メモリにプログラムコードを記憶することは、移動端末の製造コストを増加させる原因となると考えられる。本明細書において使用する「移動端末」の用語は、「無線通信用電子機器」と同義であり、その機器は通信システムにおける端末として動作することを強調しておく。移動端末において不揮発性記憶手段として使用されるメモリ素子としては、例えば16MB、32MB及びそれら値の倍数の記憶容量を有するユニット等、特定のサイズのメモリ素子が入手可能である。記憶されるプログラムバージョンのエクステントが予定されたメモリ素子の容量を超え且つその次に大きなメモリが代わりに使用される必要がある場合、製造コストは非常に増加するだろう。16MBに近いプログラムコードが約50％圧縮可能であると仮定すると、8MBのNANDフラッシュメモリが使用可能である。これにより、移動端末1台当たりの製造コストは約1USドル節約される。
【０００３】
したがって、本発明の目的は、無線通信用電子機器におけるプログラムコードの圧縮記憶を提供することである。
【発明の開示】
【０００４】
本発明は、添付の請求の範囲において定義されるように、無線通信用電子機器及び無線通信用電子機器におけるプログラムコードのメモリ空間を節約する記憶方法により達成される。
【０００５】
特に、本発明は、データの不揮発性記憶を行う第１の記憶手段と、第１の記憶手段に格納されるプログラムコードデータと、プログラムコードデータの実行可能なインスタンスの実行が可能である第２の記憶手段とを具備する無線通信用電子機器により達成される。これにより、第１の記憶手段に格納されるプログラムコードデータは、圧縮形式の第１のプログラムコードデータ及び非圧縮形式の別のプログラムコードデータを含み、別のコードデータは、第１のプログラムコードデータを第１のプログラムコードデータの実行可能なインスタンスに変換し且つ前記実行可能なインスタンスを第２の記憶手段に転送するように構成された第２のプログラムコードデータを含む。
【０００６】
なお、「具備する」（comprises, comprising）の用語は、本明細書において使用される場合、記載される特徴、数字、ステップ又は構成要素の存在を特定するために使用されるが、１つ以上の他の特徴、数字、ステップ、構成要素又はそれらの集合の存在又は追加を除外するわけではない。
【０００７】
また、上記目的を達成する、無線通信用電子機器におけるプログラムコードのメモリ空間を節約する記憶方法は、第１のプログラムコードを表す第１のプログラムコードデータを作成するステップと、第２のプログラムコードを表す第２のプログラムコードデータを含む別のコードデータを作成するステップと、第１のプログラムコードデータを圧縮するステップと、圧縮された第１のプログラムコードデータ及び別のコードデータを無線通信用電子機器の不揮発性メモリに転送するステップとを有する。第２のプログラムコードは、無線通信用電子機器において実行される際に、圧縮された第１のプログラムコードデータを第１のプログラムコードデータの実行可能なインスタンスに変換すること及び第１のプログラムコードデータの実行可能なインスタンスをプログラムコードの実行が可能なメモリに転送することを実行するロジックを含む。
【０００８】
本発明により、移動端末における高価な不揮発性記憶空間の効率的な使用が可能になり、メモリの総コストを最適化する可能性が得られる。本発明は、より大きい容量を有するメモリ素子に切り換える必要なく、実行可能なインスタンスが利用可能な不揮発性記憶空間のサイズを超えるサイズのプログラムコードの格納を可能にする。
【０００９】
更なる利点については、従属請求項において定義される。
【００１０】
有利な実施形態において、コストの節約は、第２の記憶手段の少なくとも第１の部分を配置するための揮発性メモリを提供することにより達成される。各メモリ素子が非常に妥当な価格で入手可能であるため、第１の記憶手段は、順次アクセスされるメモリに経済的に配置される。あるいは、格納されたプログラムコード又は他のデータにより占有されないメモリ素子の残りの空間にあるプログラムコードの少なくとも一部分を実行することが可能になるため、メモリのコストの最適化は、ランダムアクセスされるメモリに第１の記憶手段を配置することにより達成される。
【００１１】
特に第１の記憶手段がランダムアクセスされるメモリにより形成される場合、利用可能なメモリ空間全体の最も効果的な使用を可能にするために、第１の記憶手段及び第２の記憶手段の別の部分は同一の物理記憶素子内に配置されるとよい。これにより、別のコードデータは、第３のプログラムコードデータを更に含み、第３のプログラムコードデータは、第２の記憶手段のその別の部分に格納され、利用可能な記憶容量全体を十分に使用するために所定の場所で実行される。第３のプログラムコードデータは、不揮発性メモリ内の所定の場所で実行される別のコードデータに含まれるのが好ましい。
【００１２】
第２のプログラムコードデータは、無線通信用電子機器の読み出し専用メモリ（ROM）に提供される初期ブートコードを使用することにより効果的に起動される。更に、第２のプログラムコードデータは、コントローラ内に格納され且つ第２のプログラムコードデータの起動を可能にするコードセグメントを実行できるコントローラを使用することにより有利に起動されてもよい。
【００１３】
製造コストの削減は、移動無線端末の形態で電子機器を実現する際に最も効果的となる。それら装置は、低容量の不揮発性メモリに格納される割合が大きいプログラムコードを必要とするオーガナイザ、ゲーム及びシンセサイザ等の非常に多くの異なる特徴を提供するからである。
【００１４】
プログラムコードのメモリ空間を節約する格納は、圧縮された第１のプログラムコードデータ及び別のコードデータを連結してプログラムデータセットとし且つ圧縮された第１のプログラムコードデータ及び第２のプログラムコードデータをプログラムデータセットの形式で無線通信用電子機器の不揮発性メモリに転送する更なる方法のステップにより有利に向上される。
【００１５】
証明するために、第１のプログラムコードデータ及び第２のプログラムコードデータ、あるいは利用可能である場合にはプログラムデータセットが、証明書を使用して署名される。
【発明を実施するための最良の形態】
【００１６】
本発明による移動端末1は、図1のブロック図により示される。移動端末1は、携帯移動端末又は移動電話、ページャ、あるいは例えば電子オーガナイザ、スマートフォン、PDA又は他の無線通信装置のような任意の他の種類の通信機等の携帯無線通信機器であってもよい。本発明を理解するのに極めて重要な移動端末の要素のみが図1に示される。電子機器1の動作に必要な符号化手段及び変調手段等の更なる要素は、動作手段6によりそれら全部が表され、理解し易いように直接説明は行なわない。
【００１７】
本発明による移動端末は、第１の記憶手段2及び第２の記憶手段3を具備する。第１の記憶手段2は、移動端末1の不揮発性メモリ素子内に形成される。第２の記憶手段3は、好ましくはランダムアクセスを提供するメモリ素子に形成される。以下に詳細に説明されるように、第２の記憶手段2が異なるメモリ素子に分散されてもよく、例えば、第２の記憶手段の一部分は不揮発性メモリ素子内に形成され、他の部分はDRAM等の揮発性ランダムアクセスメモリ内に形成される。無線通信用電子機器1は、移動端末1におけるデータ処理システムの初期ブートに必要なROM4を備えるとともに、コントローラ5を更に備えることが可能である。
【００１８】
現在、移動端末1においてプログラムコードを実行するために、2つの異なる方法が一般に使用される。第１の方法は、所定の場所（XIP）、すなわち、一般にはフラッシュメモリのような不揮発性メモリ、においてプログラムを実行する方法である。近年、別の方法が重要になってきている。実行可能なプログラムコードデータは、その方法に従ってNANDメモリのような不揮発性メモリに格納され、プログラムコードの実行可能なインスタンスは、その不揮発性メモリからランダムアクセスメモリ（RAM）に作成される。プログラムコードの実行は、RAMから開始される。
【００１９】
NANDフラッシュメモリは、移動端末に対して現在利用可能である他の不揮発性メモリと比較して安価な種類のメモリである。しかし、データに順次アクセスする方法により、ランダムアクセスされるメモリと比較してプログラムの実行が著しく遅くなるため、現在、NANDフラッシュメモリはプログラムコードを実行するのに適していない。移動端末1において一般に使用される他の種類の不揮発性メモリは、NORフラッシュメモリである。これは、並列NORメモリセル構造を使用して高速ランダムアクセスをサポートする。その主な欠点は、相対的に価格が高いことであり、現在のところ、その価格は同一容量のNANDフラッシュメモリの価格より相当に高い。
【００２０】
移動端末1に提供される機能が増加するのに伴い、無線通信用電子機器上の実行可能なプログラムコードのサイズは非常に大きくなる。フラッシュメモリにプログラムコードを格納することにより、各移動端末1の製造コストは相当に高くなる。通常、先の小さいサイズの2倍である次に大きいサイズの容量を有する異なるサイズのフラッシュメモリが入手可能である。実行可能なプログラムコードが最初にコードを格納することを意図したメモリ素子のサイズを超える場合、次に大きなメモリに切り換えることは、移動端末1の製造コストを著しく増加させる原因となる。利用可能なメモリ空間をより効果的に使用するために、プログラムコードデータは、フラッシュされる前に、すなわち移動端末の不揮発性メモリに格納される前に圧縮される。圧縮されたプログラムコードを直接実行することは不可能であるため、圧縮されたコードはまず伸張され、実行の準備が整うとRAMにロードされる。使用される不揮発性メモリに依存して、移動端末で利用可能なメモリ空間を効果的に使用する2つの例を説明する。
【００２１】
プログラムコードデータの圧縮記憶を提供する本発明の第１の実施形態の基本的なステップを、図2のフローチャートに示す。実行可能なプログラムコードデータの圧縮は、移動端末1に対するソフトウェア開発及び製造工程の一部である。ステップS0において、移動端末で使用されるソフトウェアプログラムコードの圧縮形式を提供する方法が初期化された後、ステップS1において、実行前のイメージが作成される。「イメージ」又は「ソフトウェアイメージ」の用語は、ソフトウェアの実行可能なバイナリインスタンス、すなわちプログラムコードデータの実行可能なインスタンスを説明するために使用される。実行前のソフトウェアイメージは、圧縮プログラムコードを伸張し且つRAMから起動するために伸張コードをRAMにコピーするロジックから成る初期化部分を含む。実行前のソフトウェアイメージは、オペレーティングシステムにアクセスすることなくプログラムコードを実行する。
【００２２】
オペレーティングシステム及びオペレーティングシステム上で実行する全てのアプリケーションは、ステップS2で作成されるメインソフトウェアイメージの一部である。メインイメージは、ステップS3において圧縮され、圧縮されたメインイメージは、ステップS5において移動端末1の不揮発性メモリにフラッシュされる前に、ステップS4において実行前のイメージと連結される。更に、ソフトウェアイメージは証明書を使用して署名され、それにより、実行前のイメージ及びメインソフトウェアイメージが署名されるか、あるいは実行前のイメージ及び圧縮されたメインソフトウェアイメージの連結により形成されるプログラムデータセットが証明書を使用して署名される。
【００２３】
移動端末1の連結イメージに含まれるプログラムコードの実行可能なインスタンスを形成するのに必要な手順を図3に示す。手順は、ステップS10において、移動端末1のROM4に提供される初期ブートコードを実行することにより開始する。ステップS11において、ROMブートコードは、実行前のイメージをRAMにコピーし、実行前のプログラムコードの実行をRAMから起動する。次のステップS12において、実行前のイメージの伸張ロジックはメインイメージを伸張し、ステップS13において、伸張されたメインコードはRAMにコピーされ、ステップS14において、メインコードの実行は最終的にRAMから開始される。最後に、必要なくなった実行前のコードは、ステップS15においてRAMから除去される。
【００２４】
移動端末1に連結イメージを格納するためにNANDフラッシュメモリの一部分を使用する場合、ブートシーケンスは、一部のNANDの製造業者が提供するコントローラにより少なくとも部分的に実行されてもよい。それらの種類のコントローラにより、より大きなコードセグメントをNANDフラッシュメモリからRAMにコピーすることを可能にする小さなコードセグメントを格納できる。これにより、より複雑なスタートアップロジックをRAMから実行できる。
【００２５】
図4a〜図4dは、図3に示される処理によるメモリ管理を示す。図4aの左側に示される不揮発性メモリは、図1の第１の記憶手段に対応する。通常、NANDフラッシュメモリはそのように使用される。メモリは、実行前のコード100及び圧縮されたメインイメージ101を含み、それらは連結イメージを形成する。不揮発性メモリの残りの部分102は、ファイルシステム等の他のデータに対して使用される。右側においては、図1の第２の記憶手段3に対応する揮発性RAMが示される。移動端末の電源が切られると、第２の記憶手段3は空になる。移動端末の電源が入れられると、図4bに示すように、実行前のコード100のコピー100*は、ROM又はコントローラの初期ブートコードによりRAMに入れられる。次に図4cに示すように、圧縮されたメインイメージ101を伸張し且つ伸張されたメインイメージのコピー101*を揮発性RAMの別のセクションに格納するために、実行前のコード100*は実行される。最後に、実行前のコードのコピー100*は揮発性RAMから除去され、メインイメージは図4dに示すように実行される。RAMの残りの空間104は、スタック及びヒープ等を格納するなどの他の目的で使用される。
【００２６】
NORフラッシュメモリ等の不揮発性メモリ素子の中には、所定の場所で、すなわち不揮発性メモリ素子自体の内部でプログラムコードを実行することを可能にするものがある。不揮発性メモリ上の利用可能な空間を利用することにより、移動端末1で利用可能な全メモリ空間を最も効果的に使用できる。図5を参照すると、ステップS20においてソフトウェアの準備が開始される場合、ステップS21において、実行前のイメージ100'に加え、実行前のイメージ100'を含む不揮発性ソフトウェアイメージ及び不揮発性メモリにおいて利用可能なメモリ空間内で実行されることが意図されるいくつかのプログラムコードデータ103が作成される。図7a及び図7bに示すように、実行前のイメージは、揮発性RAM領域にコピーされ且つ実行されることが意図されるコードを伸張する方法、並びに不揮発性メモリと揮発性RAMとの間に分散されるプログラムコード103及び101'*の全体を起動する方法に関するロジックを含む。次のステップS22において、RAMイメージ101'*が作成される。RAMイメージ101'*は、移動端末の揮発性RAM領域において実行されるメインプログラムコードの一部分を含む。このRAMイメージは、ステップS23において圧縮され、ステップS24において不揮発性イメージと連結される。その後、ステップS25において、連結イメージ100'+103+101'は移動端末にフラッシュされる。
【００２７】
図6は、移動端末1の不揮発性メモリに格納される連結イメージに含まれるプログラムコードを実行するのに必要とされるステップを示す。例えば移動端末のROM領域に提供されるブートコードは、ステップS30において起動され、ステップS31において、実行前のロジックに制御を移す。ここで、実行前のロジックは、不揮発性の第１の記憶手段2内で実行される。実行前のコードに存在する伸張ロジックは、ステップS32においてRAMイメージを伸張し、ステップS33において、伸張されたRAMイメージ101'*を徐々に揮発性RAMにダウンロードする。最後に、ステップS34において、実行前のコードは、不揮発性メモリ及び揮発性RAMにあるメインコード実行103+101'*を起動する。
【００２８】
図6の方法に従うメモリ管理は、図7a及び図7bに示される。図7aは、電源が切られている移動端末に対するメモリ占有を示し、図7bは、電源が入れられている時の移動端末に対するメモリ占有を示す。電源が切られている状態において、所定の場所におけるプログラム実行に適応された移動端末の不揮発性メモリは、連結ソフトウェアイメージ100'+103+101'と、ファイルシステム等の他のデータに対して利用可能である部分102'とを含む。連結ソフトウェアイメージは、実行前のコード100'、メインソフトウェアイメージの圧縮部分101'及びメインソフトウェアイメージの非圧縮部分103の3つのセクションから成る。非圧縮部分103は、不揮発性メモリ内から実行される。この段階において、揮発性メモリは空である。移動端末の電源が入れられると、メインイメージの圧縮部分101'は伸張され、図1に示される第２の記憶手段3の一部分を形成する揮発性RAMの領域にコピーされる。RAMの占有されていない残りの部分104は、通常、スタック及びヒープ等を格納するのに使用される。メインイメージの非圧縮部分103は、不揮発性メモリの所定の場所で実行され、不揮発性メモリの非圧縮部分103により占有される空間は、図1に概略的に示される第１の記憶手段2の一部分から第２の記憶手段3の一部分に変更される。メインプログラムコードデータの実行は、不揮発性メモリ、不揮発性メモリ及び揮発性RAMの間で分割され、メインプログラムコードの分割実行を可能にする。
【００２９】
本発明は、各装置の不揮発性メモリにおいて、無線通信用電子機器の動作に必要とされるソフトウェアの圧縮記憶を可能にする。例えばNANDフラッシュメモリを使用する場合、実行可能なプログラムコードを取り入れるのに必要とされる記憶空間は、約50％減少される。プログラムコードのサイズが約16MBであり且つコードを50％圧縮できるという仮定の下、8MBのNANDフラッシュメモリが使用できる。これは、移動端末1台当たりの製造コストが少なくとも1USドル節約されることに相当する。
【００３０】
NORフラッシュメモリを使用する場合、本発明による圧縮技術は、実行されるプログラムコードをフラッシュメモリと揮発性RAMとの間で分割する際に十分な融通性を提供する。これにより、メモリの総コストが最適化される。
【図面の簡単な説明】
【００３１】
【図１】本発明による無線通信用電子機器の機能構成を示すブロック図である。
【図２】本発明の一実施形態によるプログラムコードの圧縮記憶の基本的なステップを示すフローチャートである。
【図３】図2の方法に従って格納されたプログラムコードを実行するのに必要とされる基本的なステップを示すフローチャートである。
【図４ａ】、
【図４ｂ】、
【図４ｃ】、
【図４ｄ】図3の方法に従うメモリ管理を示す図である。
【図５】本発明の別の実施形態によるプログラムコードの圧縮記憶の基本的なステップを示すフローチャートである。
【図６】図5の方法に従って格納されたプログラムコードを実行するのに必要とされる基本的なステップを示すフローチャートである。
【図７ａ】、
【図７ｂ】図6の方法に従うメモリ管理を示す図である。
【図１】
2008509461.tif 000003
【図２】
2008509461.tif 000004
【図３】
2008509461.tif 000005
【図４ａ】
2008509461.tif 000006
【図４ｂ】
2008509461.tif 000007
【図４ｃ】
2008509461.tif 000008
【図４ｄ】
2008509461.tif 000009
【図５】
2008509461.tif 000010
【図６】
2008509461.tif 000011
【図７ａ】
2008509461.tif 000012
【図７ｂ】
2008509461.tif 000013
【国際調査報告】
2008509461.tif 000014
2008509461.tif 000015
2008509461.tif 000016
2008509461.tif 000017