(57)【要約】  プログラムコード及びユーザデータを記憶するためのＮＡＮＤフラッシュメモリを有するコンピュータ装置を動作する方法。起動時、コンピュータ装置のコアオペレーティングシステムの選択された構成要素のみがＲＡＭにシャドウされる。コアオペレーティングシステムに関連付けられた読み取り専用のシステムファイル等の他の構成要素は、ＮＡＮＤフラッシュメモリに保存され、要求に応じてのみＲＡＭにシャドウされる。起動時にＲＡＭにシャドウされたプログラムコード及び要求に応じてＲＡＭにシャドウされたプログラムコードは、コンピュータ装置のファイルサーバに複合ファイルシステムとして提供される。複合ファイルシステムを使用することにより、装置の動作中にコアオペレーティングシステムコードにより固定的に占有されるＲＡＭの量が低減され、ＮＡＮＤフラッシュメモリがより電力効率よく使用される。更に、装置のブートアップ時間が大幅に減少される。【選択図】  図１
2007501450.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置の実行不可能なメモリのデータにアクセスする方法において、
前記実行不可能なメモリに残存する別のデータと組み合わせて、前記実行不可能なメモリから実行可能なメモリにコピーされた選択されたデータを含む複合データファイルシステムを提供し、
前記実行可能なメモリの前記選択されたデータにアクセスし、前記実行可能なメモリに前記別のデータを選択的にコピーして前記別のデータにアクセスすることにより、前記複合データファイルシステムのデータにアクセスすることを含む方法。
【請求項２】
前記選択されたデータは、前記実行可能なメモリにコピーされた時に伸張される圧縮データを含む請求項１又は２に記載の方法。
【請求項３】
前記選択されたデータは、前記実行可能なメモリにコピーされた時に全体的に伸張される請求項３に記載の方法。
【請求項４】
前記選択されたデータの一部は、前記選択されたデータの別の部分とは無関係に前記実行可能なメモリにコピーされる請求項１又は２に記載の方法。
【請求項５】
前記別のデータは、前記実行可能なメモリに選択的にコピーされた時に伸張される圧縮データを含む請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記別のデータは、複数の構成要素を含み、前記実行可能なメモリに選択的にコピーされた時に構成要素毎に伸張される請求項５に記載の方法。
【請求項７】
前記選択されたデータは、前記コンピュータ装置に対するコアオペレーティングシステムデータを含む請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記コアオペレーティングシステムデータは、前記コンピュータ装置のブートアップ及び前記コンピュータ装置に対する読み取り専用ファイルシステム（ＲＯＦＳ）データへのアクセスを可能にするプログラムコードを含む請求項７に記載の方法。
【請求項９】
前記選択されたデータは、読み取り専用ファイルシステムデータの選択された構成要素を更に含む請求項８記載の方法。
【請求項１０】
前記別のデータは、読み取り専用ファイルシステムデータを含む請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記別のデータは、実行可能プログラムを含む請求項１０に記載の方法。
【請求項１２】
前記別のデータは、ダイナミックリンクライブラリを含む請求項１０又は１１に記載の方法。
【請求項１３】
前記選択されたデータは、１つ以上のＲＯＭイメージの形式である請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記実行不可能なメモリ内の前記選択されたデータ及び前記別のデータのうち少なくとも一方の場所が、前記実行不可能なメモリのセクションからアドレスを読み出すことにより判定される請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
追加のデータが、前記複合データファイルの前記データに加え、前記実行可能なメモリに選択的にコピーされる請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
前記追加のデータは、前記複合ファイルシステムに選択的にコピーされる請求項１５に記載の方法。
【請求項１７】
前記追加のデータは、言語パックイメージを含む請求項１５又は１６に記載の方法。
【請求項１８】
共通のドライバが、前記別のデータ及び前記追加のデータを前記実行可能なメモリに選択的にコピーするために使用される請求項１５から１７のいずれか１項に記載の方法。
【請求項１９】
前記選択されたデータ、前記別のデータ及び前記追加のデータは、ユーザに対してロックされた前記実行不可能なメモリのセクションに格納される請求項１５から１８のいずれか１項に記載の方法。
【請求項２０】
前記実行不可能なメモリは、ＮＡＮＤフラッシュメモリを含むように選択される請求項１から１９のいずれか１項に記載の方法。
【請求項２１】
前記実行可能なメモリは、ランダムアクセスメモリ（ＲＡＭ）を含むように選択される請求項１から２０のいずれか１項に記載の方法。
【請求項２２】
請求項１から２１のいずれか１項に記載の方法に従って動作するようにプログラムされたコンピュータ装置。
【請求項２３】
コンピュータ装置が請求項１から２１のいずれか１項に記載の方法に従って動作するように構成されたコンピュータソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ装置のデータにアクセスする方法に関し、特に、ＮＡＮＤフラッシュメモリ等の実行不可能なメモリを内蔵するコンピュータ装置のデータにアクセスする方法に関する。更に、本発明は、その方法により制御されるコンピュータ装置に関する。
【０００２】
ここで使用される用語「コンピュータ装置」は、任意の形態の電気装置を含むように、広範囲に解釈されるべきである。「コンピュータ装置」は、任意の形態のデジタルスチルカメラ及びビデオカメラ等の記録装置、ハンドヘルドコンピュータ及びパーソナルコンピュータを含む任意の種類又は形態のコンピュータ、並びに、単一装置内で通信、画像の記録及び／又は再生及び演算機能性を組み合わせた移動電話、スマートフォン、通信機及び他の形態の無線／有線情報装置を含む任意の形態の通信装置を含む。
【背景技術】
【０００３】
コンピュータ装置のメモリは、プログラムコードを実行する能力により分類されてもよい。ランダムアクセスメモリ（ＲＡＭ）及び読み出し専用メモリ（ＲＯＭ）等の特定の種類のメモリは、メモリに格納されたプログラムコード又はデータの実行又は使用を必要とするコンピュータ装置の中央処理装置又はファイルサーバ、或は、その装置上で実行するアプリケーションプログラム等のアドレシング装置に対して、メモリアドレスの場所（装置内のメモリ空間のメモリセル）の完全な可視性を提供する。従って、これらの種類のメモリは、「ランダムアクセスの能力」を有する。これらの種類のメモリは、実行可能なメモリとして使用される。これは、例えば、メモリに格納されたプログラムコードがメモリから直接実行できることを意味する。この種類のプログラムコード実行は、一般に、直接実行（ＸＩＰ）として知られる。
【０００４】
しかし、上記の特徴を示さず、実行可能なメモリとして直接機能できない他の形態のメモリが存在する。これらは実行不可能なメモリとして知られる。実行不可能なメモリの一例として、ＮＡＮＤフラッシュメモリがある。これは、主に、プログラムコードの実行等のデータアクセスのために開発されたのではなく、データ記憶アプリケーションのために開発された。これにより、小型セルを提供する別の種類の内部アーキテクチャをメモリ空間に対して採用することが可能となった。このアーキテクチャは、格納されたデータに対して高速バーストアクセスを許可するが、全てのメモリセル、即ち、メモリ空間に格納されたデータに対して直接アクセス（ランダムアクセス）を許可しない。このアーキテクチャは、ＮＯＲフラッシュメモリ等の実行可能なメモリにおいて必要とされるインタフェースと比較して、メモリ空間内で更に複雑なインタフェースをメモリセルに対して提供するが、メモリアクセスのためには簡単化された入出力インタフェースのみを必要とする。従って、ＮＡＮＤフラッシュメモリは、ＮＯＲフラッシュメモリ等の同等のサイズの実行可能なメモリと比較して、格納される各コードビットに対して安価であり、サイズが小さく、電力消費も相対的に少ない。
【０００５】
ＮＡＮＤフラッシュメモリデバイスは多数のブロックで構成され、通常、１２８Ｍｂアレイは１０２４個のブロックを含む。１ブロックは、メモリ空間内で随時消去される最小単位と考えられる。各ブロックは多数のページ（通常、３２ページ）から構成され、このページは、プログラムする時、データをメモリに格納する時、又はデータをメモリから読み出す時の基本単位と考えられる。各ページは、通常、５１２バイトのデータを含む。メモリデバイスを製造するために使用される製造工程のため、メモリデバイスは、有効ブロック及び不良ブロックの双方を含む可能性がある。これについては、以下の説明から明らかとなるだろう。
【０００６】
ＮＡＮＤフラッシュメモリは、コンピュータ装置又は他の電子装置、特に、移動電話及び他の携帯装置において、次第に使用されるようになってきている。これは、相対的に安価で、また、電池駆動式の携帯装置にとっては最も好都合なことに、相対的に電力消費が少ないためである。しかし、このＮＡＮＤフラッシュメモリの欠点は、読み出しコマンド又は書き込みコマンドが発行される度に、転送されるデータ量が常に５１２バイトで構成される１ページであるため、格納されたデータへのアクセスが完全なランダムアクセスではなく、相対的に順次アクセスであることである。ページ内の選択された数バイトにランダムにアクセスする能力がない。これは、アプリケーションプログラムがＸＩＰプログラムとして使用される必要があるため、それらアプリケーションプログラムを携帯型のコンピュータ装置上で実行するためにＮＡＮＤフラッシュメモリが直接使用されないことを意味する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この欠点を克服する１つの方法は、任意のプログラムコードが実行される前に、そのコンピュータ装置が電源投入時に起動するのに必要なコアＯＳコードを含むコンピュータ装置上のブートローダプログラムが、実行不可能なＮＡＮＤフラッシュメモリに格納されたコアオペレーティングシステム（コアＯＳ）の全てのプログラムコードを実行可能なダイナミックＲＡＭにコピー又はシャドウするという方法である。
【０００８】
以下に説明される本発明の例において、選択されたプログラムコードがコード実行の前にダイナミックＲＡＭにコピー又はシャドウされ、元のコードはＮＡＮＤフラッシュメモリに保存されていることが強調される。何らかの理由により、ダイナミックＲＡＭに格納されたコードが失われる原因となる装置に対する電力損失がある場合、選択されたコードがＮＡＮＤフラッシュメモリから再びシャドウするために継続して利用可能であるため、これは、移動型のコンピュータ装置、特に、選択されたプログラムコードがコアＯＳである移動型のコンピュータ装置に対して好ましい方法である。
【０００９】
一方、ダイナミックＲＡＭからのコード損失が致命的でないとするアプリケーションが存在する。この状況において、ＮＡＮＤフラッシュメモリのコードは、ＮＡＮＤフラッシュメモリに元のコードを保存せずに、ダイナミックＲＡＭにシャドウ又はコピーされてもよい。誤解を回避するため、本発明の説明においては、用語「コピー」は、選択された元のコードを実行不可能なメモリに保存しているか否かに関わらず、選択されたコードが実行可能なメモリにシャドウされる場合を含むこととする。
【００１０】
通常、コアＯＳだけでなく、装置の動作中に使用される追加のプログラムファイルも含むために、大量のコードを含む可能性があるＮＡＮＤフラッシュメモリ中のプログラムコードの内容全体がダイナミックＲＡＭにシャドウされる場合、これは、コンピュータ装置をブートアップするのに必要な時間に関して非常に負担となる。更に、シャドウされたコードは、装置の動作中、装置のダイナミックメモリの大部分を固定的に占有するだろう。無線通信装置等の携帯装置において、このダイナミックメモリは、制限される貴重なリソースであると考えられ、装置は、通常、８ＭＢ又は１６ＭＢのダイナミックＲＡＭを含む。一方で、ＮＡＮＤフラッシュプログラムコードの一部のみがコピーされる場合、プログラムコードの使用を必要とするアプリケーションがダイナミックＲＡＭにコピーされたため利用可能であるコードの構成要素及びダイナミックＲＡＭにコピーされなかったため利用不可能である構成要素を認識する必要があるため、通常、非常に複雑となる。
【００１１】
更に、ＮＡＮＤフラッシュメモリに格納されたデータがコアＯＳである場合、メモリに含まれるプログラムの構成要素数は、デバイスシステムのオペレーティングプラットフォーム及び同一プラットフォーム内の装置により異なる可能性がある。これは、特に、コアＯＳが複数の異なるユーザを有している場合であり、通常、無線通信装置において発生する可能性がある。この無線通信装置において、種々の製造者及び装置納入業者は、１つ以上のシステム構成要素を固定的にダイナミックＲＡＭにシャドウする際の高速化と貴重なＲＡＭメモリの消費量との兼ね合いを様々に選択することにより、コアＯＳの特定の構成要素を共通の構成要素として採用し、コアＯＳの他の構成要素を各装置の要求に適応させる。
【００１２】
本発明の目的は、実行不可能なメモリの低価格化及び省電力化がより完全に実現されるようにコンピュータ装置を動作する改良された方法を提供し、装置に対して、より迅速なブート時間を提供することである。
【課題を解決するための手段】
【００１３】
本発明の第１の態様によると、コンピュータ装置の実行不可能なメモリのデータにアクセスする方法が提供される。この方法は、前記実行不可能なメモリに残存する別のデータと組み合わせて、前記実行不可能なメモリからコピーされ且つ実行可能なメモリに格納された選択されたデータを含む複合データファイルシステムを提供し、前記実行可能なメモリの前記選択されたデータにアクセスし、前記実行可能なメモリに前記別のデータを選択的にコピーして前記別のデータにアクセスすることにより、前記複合データファイルシステムのデータにアクセスすることとを含む。
【００１４】
本発明の第２の態様によると、第１の態様の方法に従って動作するように構成されたコンピュータ装置が提供される。
【００１５】
本発明の第３の態様によると、コンピュータ装置が第１の態様に従って動作するように構成されたコンピュータソフトウェアが提供される。
【発明を実施するための最良の形態】
【００１６】
添付の図面を参照し、単に例として、本発明の一実施形態を以下に説明する。
【００１７】
図１は、本発明の一実施形態に係るコンピュータ装置のメモリリソースにアクセスする方法を示す図である；
図２は、本発明の別の実施形態に係るコンピュータ装置のメモリリソースを分割する方法を示す図である。
【００１８】
無線情報装置の形態のコンピュータ装置に対するオペレーティングシステムの一例は、英国、LondonのSymbian Limitedにより提供されるSymbian OSTMとして知られるＯＳである。オペレーティングシステムプログラムコード及びユーザデータ双方の格納時に使用される場合においてSymbian OSTMを使用する無線情報装置のＮＡＮＤフラッシュメモリの分割及びアクセスに関して、且つ、システムコードイメージ及びユーザデータ領域の双方の形式に関して、本発明を説明する。
【００１９】
図１及び図２は、オペレーティングシステムプログラムコード、ユーザデータ及びメタデータ領域がＮＡＮＤフラッシュメモリ内で分割される方法を示す。各図の左側には、ＮＡＮＤフラッシュメモリの上記の各領域のインタフェースとなるSymbian OSTMのソフトウェア構成要素を示す。各図の右側には、異なるコード、データ及びメタデータイメージを生成する役割を果たすツール又はソフトウェア構成要素を示す。
【００２０】
コード及びデータの双方を記憶する方法で使用されるＮＡＮＤフラッシュメモリに対して、メモリが複数のセクションに分割されることが図から分かる。コンピュータ装置に対するオペレーティングシステム全体の重大な部分は、一般にコアオペレーティングシステム（コアＯＳ）として知られる。このコアＯＳは、オペレーティングシステム全体のうち、装置の電源投入時に装置がブートアップし、動作するのに必要な部分のみを含むように構成される。以下の説明から明らかとなる理由により、コアＯＳは、ＮＡＮＤフラッシュメモリに単一イメージとして格納される。ＮＡＮＤフラッシュメモリが、コアＯＳイメージの格納及びユーザにより変更されるべきではない他のオペレーティングシステムイメージの格納に使用されるため、メモリのセクションのうち少なくとも１つのセクションはロックされる。従って、メモリは、以下の５つのセクションに分割されるのが好ましい。
【００２１】
・ブートセクション（Boot Section）
・ロックセクション（Locked Section）
・アンロックセクション（Unlocked Section）
・ブロック置換セクション（Block replacement Section）
・パーティション情報セクション（Partition Information Section）
これら５つのセクションについて、次に更に詳細に説明する。
ブートセクション
このセクションは、ＮＡＮＤフラッシュメモリの第１のブロックを占有し、長さがわずか１メモリブロックである。ＮＡＮＤフラッシュメモリの製造者は、第１のブロックは常に有効であり、ブートセクションに格納されたコードイメージがこのブロックが不良である場合に対処する必要がないことを保証する。図１に示される実施形態において、ブートセクションは、ミニブート（MiniBoot）イメージ及びコアローダ（Core Loader）イメージを含む。
ミニブート
ＮＡＮＤフラッシュメモリが実行不可能なメモリ（非ＸＩＰ）であるため、装置がブートアップ時にＮＡＮＤフラッシュメモリからブートし、次に、コアＯＳイメージをロードすることを可能にするハードウェア機構を、プログラムコードの記憶にＮＡＮＤフラッシュメモリを使用する任意の無線情報装置に提供する必要がある。採用されるオプションは、ハードウェアブートローダを含む。即ち、起動時にＮＡＮＤフラッシュメモリのごく一部をＸＩＰに「効果的に」変換した結果を有する小さなＲＡＭバッファを含むＮＡＮＤフラッシュメモリに関するロジックを含む。或は、小さなブートＲＯＭが使用されてもよい。即ち、ＮＡＮＤフラッシュメモリに格納されたコードデータの第１の部分をＲＡＭにシャドウするプログラムコードを含む個別のＸＩＰ ＲＯＭが使用されてもよい。これらオプションは、単独で使用されてもよく、或は、組み合わせて使用されてもよい。
【００２２】
上記のオプションのいずれにおいても、装置の起動時にＸＩＰメモリの僅かな領域（通常、１Ｋバイトより少ない容量である可能性がある）がブートアッププログラムを実行できる機構が提供される。このプログラムは、ミニブートと呼ばれ、通常、アセンブラコードで書かれる。このプログラムの機能は、コアローダイメージの位置を特定し、そのイメージをＲＡＭにコピーし、実行することである。
【００２３】
従って、ＮＡＮＤフラッシュメモリの第１の部分はミニブートイメージを含み、ミニブートイメージは、通常、いかなる種類の標準のヘッダ情報も含まない。ミニブートイメージは、実行可能コードの僅か一部分のみを含むのが好ましい。図１の実施形態において、ミニブートイメージは、ＮＡＮＤフラッシュメモリ内のパーティション情報ブロック（Partition Information Block）（ＰＩＢ）に保持されるデータテーブルの拡張から、コアローダイメージの場所及び長さを取得する。ＰＩＢについて、以下に更に詳細に説明する。
コアローダ
コアローダイメージの機能は、コアＯＳイメージの位置を特定し、そのイメージをＲＡＭにコピーし、更に、そのイメージに含まれるオペレーティングシステムブートストラップルーチンを実行することである。コアローダイメージは、ミニブートイメージによりＲＡＭにコピーされ、格納される。
【００２４】
コアＯＳイメージは、ＮＡＮＤフラッシュメモリ内のロックセクションに格納される。メモリのこのセクションは、不良ブロックを含む可能性がある。不良ブロックがロックセクションに存在することが発見された場合に、コアローダイメージがブロック置換セクションからコアＯＳデータの特定のブロックを読み出す必要がある可能性があるため、コアローダイメージは、ロックセクションに対するブロック置換テーブル（Block Replacement Table）（ＢＲＴ）を翻訳するように構成される。
【００２５】
コアＯＳイメージは、圧縮形式で格納されるのが好ましい。従って、コアローダイメージは、そのことを検出し、必要に応じて、コアＯＳイメージコードを伸張する必要がある。これについては、ロックセクションを参照して、以下に更に詳細に説明する。コアローダイメージは、通常、ミニブートイメージの直後に開始し、また、メモリの第１のブロックを超えて拡張しないことが好ましい。これは、ミニブートイメージが不良ブロック検出を実行する必要がないことを保証するため、ミニブートイメージのサイズを最小化することを助ける。通常、コアローダイメージは、アセンブラコードで書かれ、いかなる標準のヘッダも含まない。
ロックセクション
このセクションは、ミニブートイメージ及びコアローダイメージとは異なり、装置を動作するのに必要な全体コードのイメージを含む。このコードイメージは、コアＯＳイメージ、１つ或はそれ以上の読み取り専用ファイルシステム（Read Only File System）（ＲＯＦＳ）イメージ及び１つ以上の言語パック（Language Pack）イメージから構成され、その全体のサイズは、それらイメージを表現するのに必要なコードのサイズに依存する。ＮＡＮＤフラッシュメモリのロックセクションのいずれの部分も、不良ブロックを含む可能性がある。
コアＯＳイメージ
ＮＡＮＤフラッシュメモリが実行不可能なメモリであり、ＸＩＰとして機能できないため、このイメージは、システムの起動時に実行可能なメモリ、通常はＲＡＭに自動的にシャドウされる。これは、コアローダイメージにより達成される。コアＯＳイメージの開始は、コアローダイメージの終了直後、即ち、ＮＡＮＤフラッシュメモリの第１のブロック内に位置付けられてもよい。或は、このイメージは、ＮＡＮＤフラッシュメモリの第２の有効ブロックの最初に開始するように構成されてもよい。図１に示される実施形態において、コアローダイメージは、パーティション情報ブロックに保持されるテーブルに対する拡張から、コアＯＳイメージの場所を読み出すことにより、コアＯＳイメージの位置を特定する。
【００２６】
ＲＯＭＢＵＩＬＤソフトウェアツールは、ＮＡＮＤフラッシュメモリに格納されるコアＯＳイメージを生成するために最初に使用され、実質的には、このイメージは、標準ＲＯＭイメージとしてフォーマットされる。通常、このイメージは、ＲＯＭヘッダ、ブートストラップバイナリイメージ、全てのルートディレクトリを列挙したルートディレクトリリスト、ＲＯＭイメージによりサポートされる１つの変形、ＲＯＭイメージのディレクトリ構造、並びに、ＲＯＭイメージを構成する実行ファイル及びデータを構成する多数のファイルを含んでもよい。上述のように、コアＯＳイメージは、通常、無線情報装置を動作するのに必要であると考えられるそれらオペレーティングシステムの構成要素に限定される。
【００２７】
しかし、通常、コアＯＳイメージは、メモリ空間を節約するために、圧縮形式でＮＡＮＤフラッシュメモリに格納される。通常、コアＯＳイメージの構成要素は、グループとして使用され、個別に使用される必要はない。従って、このイメージの各構成要素が構成要素毎に圧縮されるのではなく、通常、コアＯＳイメージ全体が、ＲＯＭヘッダの次に単一イメージとして圧縮される。ＲＯＭヘッダは、通常、圧縮されない。このイメージの圧縮は、イメージがＮＡＮＤフラッシュメモリに格納されると、ＲＯＭＢＵＩＬＤソフトウェアにより実行される。ＲＯＭヘッダは、コアＯＳイメージの圧縮の種類、圧縮サイズ及び伸張サイズを示すフィールドを含む。
【００２８】
このイメージは、ＲＡＭにシャドウされると、コアローダイメージにより伸張される。コアＯＳイメージの全ての構成要素が全体的に、即ち、単一イメージとして圧縮されるため、伸張も構成要素毎に直列に実行されるのではなく、単一イメージ単位で実行される。ＸＩＰとしてアクセスするために、そのイメージ内の構成要素を実行可能なＲＡＭメモリに高速ダウンロードするという仮定の下、イメージの伸張は、効率的に、比較的迅速に達成される。従って、特に、コアＯＳイメージが、ＸＩＰのために、実行不可能なＮＡＮＤフラッシュメモリから実行可能なダイナミックＲＡＭに比較的迅速にシャドウするのに適切であることが理解されるであろう。
主読み取り専用ファイルシステム（Primary Read Only File System）（ＲＯＦＳ）
コアＯＳイメージに含まれないオペレーティングシステムコードの殆どが、通常、多数の構成要素から構成される主ＲＯＦＳイメージに位置付けられる。装置のファイルサーバは、このイメージにアクセスするために読み取り専用ディスクファイルシステム（ＲＯＦＳ）を使用する。このＲＯＦＳイメージは、メディアドライバを使用して、ＮＡＮＤフラッシュメモリからコードを読み出し、アクセス又は実行するためにコードをＲＡＭにロードする。これは、パーティション情報ブロックから主ＲＯＦＳイメージの場所を読み出すことにより、主ＲＯＦＳイメージの位置を特定するメディアドライバにより達成される。
【００２９】
ＲＯＦＳイメージの各構成要素は、標準ＲＯＭイメージと同一ではないが、これに非常に類似する形式を有し、ＲＯＦＳＢＵＩＬＤソフトウェアツールにより生成される。標準ＲＯＭファイルシステムイメージと同様に、ＲＯＦＳイメージは、コアオペレーティングシステム内で使用する実行可能プログラム及びダイナミックリンクライブラリ（ＤＬＬ）を含む。コアＯＳイメージとの共通点は、通常、ＲＯＦＳイメージの構成要素がＮＡＮＤフラッシュメモリに格納されると、ＲＯＦＳＢＵＩＬＤツールにより圧縮されることである。しかし、ＲＯＦＳイメージの構成要素は、全体的に使用されることは殆どない。例えば、多くのＤＬＬが、１つ以上の実行可能プログラムにより使用されるプログラムコードの離散ライブラリとして使用されてもよい。これにより、実行可能プログラムがファイルサーバによりロードされる場合、プログラムが必要とする特定のＤＬＬは自動的にロードされ、プログラムが必要としないＤＬＬはロードされない。従って、ＲＯＦＳイメージの全ての個々の構成要素が、ＮＡＮＤフラッシュメモリに格納されると単一イメージとして圧縮されるのではなく、構成要素毎に圧縮される。ＲＯＦＳイメージの構成要素を圧縮するために、任意の適切な圧縮の種類及び技術が使用されてもよい。
【００３０】
ＲＯＦＳイメージの構成要素を装置で実行する必要がある場合、それら構成要素は、伸張され、実行可能なダイナミックＲＡＭに格納される必要がある。しかし、ＲＯＦＳイメージが構成要素毎に圧縮されたため、ＲＯＦＳイメージは、ＲＡＭにシャドウされると、構成要素毎に伸張される必要がある。同等サイズのイメージに対して、構成要素毎に伸張するのは、イメージを全体的に伸張するより相当に長い時間がかかる。従って、相対的に、ＲＯＦＳイメージの全ての構成要素を伸張し、ＲＡＭにシャドウすることは、コアＯＳイメージを伸張し、ＲＡＭにシャドウするより相当に長い時間がかかる。ＲＯＦＳイメージ全体が装置のブートアップ時にＲＡＭに自動的にシャドウされる場合、装置が動作可能になる前に相対的に長い遅延を発生し、この遅延は装置のユーザにとって顕著なものとなる。
【００３１】
従って、本発明において、装置のブートアップ時に全てがＲＡＭに固定的にシャドウされるコアＯＳイメージとは異なり、ＮＡＮＤフラッシュメモリに格納されたＲＯＦＳイメージ領域の構成要素は、要求に応じてのみＲＡＭにシャドウされる。オペレーティングシステムの選択した部分のみ、例えば、ＲＯＦＳイメージの選択した数の構成要素と共にコアＯＳイメージをＲＡＭにシャドウし、それらを複合ファイルシステムとして提供することにより、複合ファイルシステムイメージは、ＲＯＦＳイメージ全体がブートアップ時にコアＯＳイメージと共にＲＡＭにシャドウされる場合と比較して、より迅速な実行のために利用できる。
【００３２】
上述のように、イメージの構成要素を固定的にシャドウする場合の高速化とＲＡＭの消費量との兼ね合いがあるため、コアＯＳイメージに含まれる構成要素数は、装置のプラットフォーム毎に異なってもよい。しかし、コアＯＳイメージは、ＲＯＦＳを起動するのに必要とされる最小の構成要素群を常に含む必要がある。これら構成要素は、コアオペレーティングシステムのメディア領域として知られる。Symbian OSTMにおいて、この最小の要素群は、通常、以下の構成要素を含むだろう：
・ブートストラップ
・カーネル、カーネル拡張及びメディアドライバ
・ユーザライブラリ
・ファイルサーバ、ファイルシステム（.FSY）及びＥＳＴＡＲＴ（既存のアプリケーションにより想定されるサービスをロードするファイル）
これら構成要素がＲＡＭにロードされると、構成要素は、標準ＲＯＭイメージの外観を有し、装置のファイルサーバは、アクセスするために標準ＲＯＭファイルシステムを内部で使用する。
【００３３】
しかし、本発明において、Symbian OSTMでは標準ＲＯＭファイルシステムの形式であるコアオペレーティングシステムのメディア領域は、主ＲＯＦＳのメディア領域と組み合わされ、その組合せは、単一の複合読み取り専用ファイルシステムとして提供される。このように、一方が実行可能なＲＡＭに保持され、他方が実行不可能なＮＡＮＤフラッシュメモリに保持される２つのメディア領域は、装置のファイルサーバ、即ち、システムのその他の部分に対して、添付の図面においてドライブＺ：で示される単一の読み取り専用ドライブとして提供される。
【００３４】
コアオペレーティングシステムの重要な構成要素をＲＡＭにロードするのに要する時間はより短く、装置の動作中、小型のハンドヘルド無線通信装置において比較的乏しいリソースであるＲＡＭをより少なく固定的に占有する。これにより、ＲＡＭのより多くの部分が、他のアプリケーションに対して、選択的に使用可能となる。ＲＯＦＳイメージの特定の実行ファイル及びライブラリファイルは、コアＯＳイメージと共に全体的にＲＡＭにシャドウされるのが好ましい。しかし、ＲＯＦＳイメージのデータファイルからのファイル読み出し動作、例えば、ビットマップファイルの読み出しに対して、ファイルシステムは、読み出される部分のみをＲＡＭにロードする。
【００３５】
この複合ファイルシステムは、装置のブートアップ時にオペレーティングシステムの必須の構成要素のみがＲＡＭにシャドウされ、装置の動作中に周期的にアクセスされるＲＯＦＳイメージの構成要素が要求に応じてのみＲＡＭにシャドウされることを保証するため、ＲＡＭを非常に効率的に使用する。しかし、固定的にシャドウされた構成要素及び要求に応じてシャドウされた構成要素が単一の複合ファイルシステムとして提供されるため、オペレーティングシステムの特定の構成要素がＲＡＭから直接読み出され（コアＯＳイメージ）、他の頻繁に使用されない構成要素（ＲＯＦＳイメージの構成要素）が要求に応じてＲＡＭにシャドウされることを介してＮＡＮＤフラッシュメモリから読み出されることが、装置の動作中、透過的である。
【００３６】
コアＯＳイメージを主イメージに後続する拡張ＲＯＭイメージと分割することが可能である。これにより、コアＯＳイメージの主要な部分が拡張イメージから独立してＮＡＮＤフラッシュメモリにプログラムされるのを可能にする。これは、例えば、無線情報装置の製造者がコアオペレーティングシステムの特定の構成要素を採用し、それら特定の構成要素を製造者に固有の他の構成要素と組み合わせ、無線情報装置にコアＯＳイメージを提供したい場合に利点となる可能性がある。実質上、主イメージ及び拡張イメージを含むこの特定のコアＯＳイメージは、装置のブートアップ時に、組み合わされて、ＲＡＭにシャドウされる。このような場合、拡張ＲＯＭイメージは、主イメージとは個別に圧縮され、また、圧縮されず且つ上述と同様の圧縮情報に関する３つのフィールドを含む拡張ＲＯＭイメージのヘッダ（TExtensionRomHeader）を有する。本実施形態において、コアローダイメージは、拡張ＲＯＭイメージの伸張及びロードを処理するように変更されるだろう。
言語パック
コアオペレーティングシステムのその他の部分から独立して、ローカライズファイルをプログラムすることが必要な場合、第２のＲＯＦＳイメージが使用されてもよい。このイメージは、主ＲＯＦＳイメージに後続するＲＯＦＳ拡張イメージとして構成されてもよい。しかし、固定的にＲＡＭにシャドウされるＲＯＭ拡張とは異なり、ＲＯＦＳ拡張イメージは、要求に応じてＲＡＭにシャドウされる。図１に示される実施形態において、ＲＯＦＳ拡張イメージは、複合ファイルシステムの一部、即ち、Ｚ：ドライブの一部として提供される。拡張ＲＯＭのいずれのデータも固定的にＲＡＭにシャドウされる必要があるため、拡張ＲＯＭイメージは、ローカライズを保持するのに使用されるとは考えられない。
【００３７】
しかし、図２に示される実施形態において、ＲＯＦＳ拡張イメージは、複合ファイルシステムの一部ではなく、個別のドライブＹ：として提供される。このドライブＹ：に対して、ＲＯＦＳは、メディアドライバを使用して、ＮＡＮＤフラッシュメモリからデータを読み出す。このドライブと複合ドライブＺ：のＲＯＦＳイメージとの双方に対して、同一のメディアドライバが使用される。図の実施形態において、メディアドライバは、言語パックＲＯＦＳ領域の場所をパーティション情報ブロックから読み出すことにより、言語パックＲＯＦＳ領域の位置を特定する。
アンロックセクション
このセクションは、ユーザデータ領域全体を含み、２つ以上のユーザデータのパーティションを含んでもよい。図１の実施形態において、アンロックセクションの開始時にマスタブートレコード（Master Boot Record）を実現するのではなく、各パーティションに対する情報がパーティション情報ブロック内に格納されるのが好ましい。アンロックセクションのいずれの部分も、不良ブロックを含む可能性がある。
【００３８】
ユーザ領域の各パーティションは、パーティションを管理するために標準の仮想ＦＡＴ（virtual file allocation table）（ＶＦＡＴ）ファイルシステムを使用するファイルサーバにより、通常のＶＦＡＴドライブとしてフォーマットされてもよい。不良ブロック管理ソフトウェア（bad file management software）（ＧＢＢＭ）と共にフラッシュメモリ変換層（Flash Translation Layer）（ＦＴＬ）ソフトウェアが、メディアドライバにおいて実現される。これは、同一のメディアドライバ及びＲＯＦＳに使用されるＧＢＢＭソフトウェアであってもよい。しかし、ＲＯＦＳが読み取り専用であるため、ＲＯＦＳは、効率化のために、メディアドライバのＦＴＬソフトウェアを無視するように構成される。
ブロック置換セクション
このセクションは、ＮＡＮＤフラッシュメモリ内に予備ブロックのリザーバを含む。これは、ＮＡＮＤフラッシュメモリのロックセクション及びアンロックセクション内で、不良ブロックを置換するために、ＧＢＢＭソフトウェアにより使用される。従って、ブロック置換セクションのリザーバは、ロックセクション及びアンロックセクション間で共用される。アンロックセクションに対する置換ブロックは、リザーバの最上部（最下位アドレス）から割り当てられ、ロックセクションに対する置換ブロックは、リザーバの最低部（最上位アドレス）から割り当てられる。リザーバの２つの領域が衝突することを許可しないのが好ましく、これは、ブロック置換セクションの全ての予備ブロックが使用中であることを示すだろう。この場合、アンロックセクションで発生する不良ブロックは、アンロック領域の容量を減少する原因となるだろう。ロック領域は、ＮＡＮＤフラッシュメモリの読み取り専用領域であるため、ロック領域で新たな不良ブロックが発生すべきではない。従って、ロックセクションに必要な置換ブロック数が判定されると、アンロックセクションに対して置換ブロックとして割り当てる置換ブロック数を最大限にできる。これにより、ユーザデータを格納するために使用されるアンロックセクションの記憶容量が不良ブロックの発生により不必要に減少されないことが保証される。
【００３９】
ＮＡＮＤフラッシュメモリのこのセクションは、ブロック置換テーブル（ＢＲＴ）を格納するためにも使用される。これは、ロック／アンロックセクションの不良ブロックとそれを置換するリザーバのブロックとの相関関係又はマッピング情報を保持する。アンロック領域に対する置換テーブルは、セクションの最上部（最下位アドレス）に位置付けられ、ロック領域に対する置換テーブルは、セクションの最低部（最上位アドレス）に位置付けられるのが好ましい。各置換テーブルは、ブロック全体を占有し、各セクションに２つのテーブルが割り当てられるのが好ましい。ブロック置換テーブルは、任意の適切な形式で構成される。
【００４０】
上述のように、各ＢＲＴは、ブロック全体を占有するが、５１２バイトのデータ（１ページのデータに同等）のみ格納し、１２７個までのブロックのマッピングを可能にする。従って、追加のブロックがロックセクション又はアンロックセクションのいずれかにおいてマップされる必要がある場合、各セクションに対する第２のＢＲＴが使用される。ロックセクション及びアンロックセクションに対するＢＲＴは、同一の形式であることが好ましい。
【００４１】
更に、ＧＢＢＭソフトウェアは、アンロックブロック置換テーブルの下に位置付けられる転送ブロックを必要とする。従って、リザーバのサイズは、ブロック置換セクションのサイズ−５ブロックに設定されるのが好ましい。ブロック置換セクションは、以下のように構成されてもよい：
【００４２】
【表１】
2007501450.tif 000003
【００４３】
通常、フラッシュプログラムがＧＢＢＭソフトウェア構成要素を使用するため、双方のＢＲＴは、ロック領域のコードのフラッシュ中に、ＮＡＮＤフラッシュメモリに最初にプログラムされる。ブロック置換セクションが初期化されていないことをＧＢＢＭソフトウェアが検出する場合、ＧＢＢＭソフトウェアは、フラッシュメモリ全体を走査し、不良ブロックを検出し、適切なＢＲＴを更新する。ブロック置換セクションの場所に関する情報は、パーティション情報ブロック内にも格納される。
パーティション情報ブロック（ＰＩＢ）
このセクションは、ＮＡＮＤフラッシュメモリ内の全てのセクション及びサブセクションの場所及びサイズに関する情報を保持する多数のテーブル含む。ＰＩＢは、長さが１ブロックであり、ＮＡＮＤフラッシュメモリの最後の有効ブロックを占有する。即ち、最後の有効ブロックとは、最終ブロックが不良ブロックでない限り最終ブロックである。従って、ＰＩＢの場所は異なってもよい。ブートセクションの８バイトダブルワードは、ＰＩＢの開始オフセットをバイトで記述するために使用されてもよい。これをＰＩＢオフセットダブルワードと呼んでもよい。ブロック内に保持される情報がＮＡＮＤフラッシュメモリのセクションの位置を特定するために使用されるため、ＰＩＢの場所は、装置全体の動作にとって重要であることが理解されるだろう。従って、８バイトダブルワードは、オフセットワードの前に使用されてもよく、オフセットワードは、６４ビットの署名を含むことができる。この署名は、ＰＩＢオフセットダブルワードが読み出される前に、最初に有効化される必要がある。これは、オフセットワードを改竄する有害ソフトに対する保護を支援する。ミニブートイメージは、ＰＩＢオフセットダブルワード及び６４ビット署名の周囲を移動するように構成されるのが好ましい。
【００４４】
図２に示される実施形態において、ブートセクションは、フラッシュブートレコード（Flash Boot Record）（ＦＢＲ）イメージを更に含む。フラッシュブートレコードイメージは、メモリ上の他のセクション及びサブセクションの各々の場所及びサイズに関する情報を保持する。実質上、フラッシュブートレコードイメージは、パーティション情報ブロックに保持される一部の情報の代わりとして使用される。
フラッシュブートレコード（ＦＢＲ）
フラッシュブートレコード（ＦＢＲ）イメージは、ＮＡＮＤフラッシュメモリ内で、ミニブートイメージとコアローダイメージとの間に位置付けられる。ミニブートイメージのサイズが可変であるため、任意の適切な方法を使用して、予約ワード等のフラッシュブートレコードの位置を特定してもよい。予約ワードをＦＢＲオフセットワードと呼んでもよい。また、予約ワードは、ＮＡＮＤフラッシュメモリのブートセクションの特定のオフセットにおけるフラッシュブートレコードイメージのオフセット（バイト単位）を含む。動作効率のため、ミニブートイメージは、通常、ＦＢＲオフセットワードをスキップするように構成されるだろう。
【００４５】
ロックセクション、アンロックセクション及びブロック置換セクション等のＮＡＮＤフラッシュメモリの各パーティションに対する情報は、フラッシュブートレコードイメージ内に格納される。
【００４６】
本実施形態において、ローカライズファイルは、コードデータのその他の部分とは独立して、第２のＲＯＦＳイメージとして格納される。しかし、図２に示すように、このイメージは、複合ドライブＺ：を介してアクセスされず、個別のドライブＹ：として提供される。
【００４７】
このドライブに対して、コンピュータ装置の読み取り専用ファイルシステムは、メディアドライバを使用して、ＮＡＮＤフラッシュメモリからデータを読み出す。実際には、ドライブＹ：のローカライズファイルイメージ及び複合ドライブＺ：のＲＯＦＳイメージを読み出すために、同一のメディアドライバが使用される。メディアドライバは、フラッシュブートレコードイメージから言語パックＲＯＦＳ領域の場所を読み出すことにより、言語パックＲＯＦＳ領域の位置を特定する。
【００４８】
複合ファイルシステムを使用することにより、最低限の数のコアオペレーティングシステムの構成要素が、装置の動作中に、実行不可能なＮＡＮＤフラッシュメモリから実行可能なＲＡＭに固定的にシャドウされることが先の説明から分かるだろう。従って、装置の動作中にコアオペレーティングシステムの構成要素により固定的に占有されるＲＡＭの容量を最小とすることにより、ＮＡＮＤフラッシュメモリをエネルギー効率よく最大限に使用する。これにより、装置全体の電力消費を低減する。更に、装置のブートアップは、より迅速になる。これは、ＮＡＮＤフラッシュメモリからＲＡＭにシャドウされるコアオペレーティングシステムの構成要素がより少なく、また、実質上、自動的にＲＡＭにシャドウされる構成要素が、必要に応じて、構成要素毎に伸張及びシャドウされるＲＯＦＳイメージの比較的制限された数の構成要素と組み合わされて、単一ＲＯＭイメージとして伸張及びシャドウされる単一コアＯＳイメージを含むからである。
【００４９】
更に、複合ファイルシステムが「固定的にシャドウされる」構成要素及び「要求に応じてシャドウされる」構成要素に対して使用されるため、構成要素のソースは、プログラムコードが実行される時、装置内の動作として透過的であり、従って、ユーザに対しても透過的である。
【００５０】
特定の実施形態を参照して本発明を説明したが、添付の特許請求の範囲により規定されるように、本発明の範囲内である限り、変形が可能であることは理解されるであろう。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態に係るコンピュータ装置のメモリリソースにアクセスする方法を示す図である。
【図２】本発明の別の実施形態に係るコンピュータ装置のメモリリソースを分割する方法を示す図である。
【図１】
2007501450.tif 000004
【図２】
2007501450.tif 000005
【手続補正書】
【提出日】平成18年7月4日(2006.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
前記選択されたデータは、前記実行可能なメモリにコピーされた時に伸張される圧縮データを含む請求項１に記載の方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
前記選択されたデータは、前記実行可能なメモリにコピーされた時に全体的に伸張される請求項２に記載の方法。
【国際調査報告】
2007501450.tif 000006
2007501450.tif 000007
2007501450.tif 000008