(57)【要約】非ＸＩＰフラッシュメモリに格納される持続性ファイルは、電子デバイスの動作の間にアクセスされる。デバイス上でのアプリケーションコードの実行の間に、持続性ファイルは、ルックアップテーブルのようなアクセスディレクトリを使用してアクセスされる。アクセスディレクトリは、デバイスのプロセッサ上で走るアプリケーションまたは他のソフトウェアのコードが、非ＸＩＰフラッシュメモリデバイスの中の持続性ファイルを位置決めし、それにアクセスすることを可能にする情報を提供し、その場合、非ＸＩＰフラッシュメモリデバイスは不良ブロックを含み得る。アクセスディレクトリの作成の間、デバイス内の不良ブロックのロケーションが識別され記録される。
2009500770.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性のｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイスであって、
複数の圧縮されていない持続性ファイルを格納する持続性ファイルのセクションと、
圧縮された画像ファイルを格納する画像ファイルのセクションであって、該圧縮された画像ファイルは圧縮解除され、揮発性のｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリにコピーされ、該圧縮解除された画像ファイルのセクションは、ファームウェアを備えている、画像ファイルのセクションと、
アクセスディレクトリであって、
該持続性ファイルのセクションの中の持続性ファイルのロケーションを示すファイルのロケーションデータと、
該持続性ファイルのセクションの中の不良ブロックのロケーションを示す不良ブロックのデータと
を備えており、
該アクセスディレクトリは、該揮発性のＸＩＰメモリにコピーされ、該ＸＩＰメモリにおいて該ファームウェアを実行するときに、プロセッサが該持続性ファイルのセクションにアクセスすることを可能にする、アクセスディレクトリと
を備えている、不揮発性のｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイス。
【請求項２】
前記持続性ファイルのセクションは、前記不良ブロックを備えている複数のブロックを備えている、請求項１に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項３】
前記ファイルのロケーションデータは、前記複数の圧縮されていない持続性ファイルの各持続性ファイルに対するページナンバーとオフセット値とを含む、請求項２に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項４】
前記不良ブロックのデータは、不良ブロックの第１のページに対応する少なくとも１つの不良ブロックのページナンバーを含む不良ブロックのテーブルを含む、請求項３に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項５】
前記アクセスディレクトリは、複数のファイルのロケーションを含むルックアップテーブルであり、各ファイルのロケーションは、前記複数の圧縮されていない持続性ファイルのうちの持続性ファイルに対応し、該持続性ファイルの開始ポイントに対応するページナンバーとオフセット値とを含む、請求項１に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項６】
前記不良ブロックデータは、前記複数の圧縮されていない持続性ファイルに対応する複数の不良ブロックのインデックス値を含み、前記不揮発性の非ＸＩＰフラッシュメモリデバイスから読み取られるときに、前記各持続性ファイルに対して、遭遇する第１の不良ブロックに関する第１の不良ブロックのページナンバーを含む前記不良ブロックのテーブルの中のロケーションを示す不良ブロックのインデックスをさらに含む、請求項４に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項７】
前記アクセスディレクトリは、前記不揮発性の非ＸＩＰフラッシュメモリデバイスを利用して、電子デバイスの初期化手順の間に形成され、該不揮発性の非ＸＩＰフラッシュメモリデバイスの埋め込みファイルシステムの部分に格納される、請求項１に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項８】
前記アクセスディレクトリは、前記持続性ファイルのセクションへのアクセスを提供するアクセス手順を含む、請求項１に記載の不揮発性の非ＸＩＰフラッシュメモリデバイス。
【請求項９】
不揮発性のｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイスの中に格納される持続性ファイルにアクセスする方法であって、該方法は、
該不揮発性の非ＸＩＰフラッシュメモリデバイスに格納された画像ファイルのセクションを、揮発性のｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリにコピーすることと、
該不揮発性の非ＸＩＰフラッシュメモリデバイスに格納されたアクセスディレクトリを、該揮発性のＸＩＰメモリにコピーすることと、
該揮発性のＸＩＰメモリ内の該コピーされたアクセスディレクトリの中のファイルのロケーションデータに基づいて、該不揮発性の非ＸＩＰフラッシュメモリデバイスの持続性ファイルのセクションの中の該持続性ファイルに関するファイルのロケーションを決定することと、
該コピーされたアクセスディレクトリ内の不良ブロックのデータによって示される不良ブロックをスキップする間に、該ファイルのロケーションからの該不揮発性の非ＸＩＰフラッシュメモリデバイスから該持続性ファイルを読み取ることと
を包含する、方法。
【請求項１０】
前記読み取ることは、前記不揮発性の非ＸＩＰフラッシュメモリデバイスの現在のページを、前記コピーされたアクセスディレクトリの不良ブロックのテーブルの中の不良ブロックのページナンバーと比較することと、
該不良ブロックのページナンバーによって示される該不良ブロックをスキップする間に、前記持続性のファイルを読み取ることと
を包含する、請求項９に記載の方法。
【請求項１１】
前記読み取ることは、
前記持続性ファイルのうちの持続性ファイルに対応する現在の不良ブロックのインデックスが、次の持続性ファイルに対応する次の不良ブロックのインデックスと同じであるかどうかを決定することであって、各不良ブロックのインデックスが、該各持続性ファイルが前記不揮発性の非ＸＩＰフラッシュメモリデバイスから読み取られるときに、該持続性ファイルのうちの各持続性ファイルに対して遭遇する第１の不良ブロックに関する第１の不良ブロックのページナンバーを含む前記不良ブロックのテーブルの中のロケーションを示す、ことと、
該現在の不良ブロックのインデックスが該次の不良ブロックのインデックスと同じ場合には、該持続性ファイルを読み取ることであって、前記コピーされたアクセスディレクトリは、該現在の不良ブロックのインデックスと該次の不良ブロックのインデックスとを含む、ことと
を包含する、請求項１０に記載の方法。
【請求項１２】
前記読み取ることは、
現在のページナンバーが前記持続性ファイルに対応する現在の不良ブロックのページナンバーと同じ場合には、現在のブロックの残りのページをスキップすることを包含する、請求項１１に記載の方法。
【請求項１３】
前記読み取ることは、
前記現在のページが前記現在の不良ブロックのページナンバーと同じでない場合には、該現在のブロックにおける最後のページを除いて、該現在のブロックの前記残りのページを読み取ることをさらに包含する、請求項１２に記載の方法。
【請求項１４】
前記読み取ることは、
前記不良ブロックのテーブルによって示される不良ブロックをスキップする間に、前記持続性ファイルの最後のページの中のデータを読み取ることをさらに包含する、請求項１３に記載の方法。
【請求項１５】
ｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイスとｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリデバイスとを備えているポータブルデバイスを初期化する方法であって、該方法は、
該非ＸＩＰフラッシュメモリデバイスの中の持続性ファイルのセクションを位置決めすることであって、該非ＸＩＰフラッシュメモリは、該持続性ファイルのセクションと、圧縮された画像ファイルのセクションと、アクセスディレクトリとを備え、該持続性ファイルのセクションは、複数の圧縮されていない持続性ファイルを格納する、ことと、
不良ブロックを確認する間に、該複数の圧縮されていない持続性ファイルの各持続性ファイルのページを走査することと、
該持続性ファイルのセクションの中の不良ブロックのロケーションを示す該アクセスディレクトリの中の不良ブロックの情報を格納することと
を包含する、方法。
【請求項１６】
前記走査することは、
前記各持続性ファイルに対する開始ロケーションを決定することと、
該各持続性ファイルのサイズを引き出すことと、
該各持続性ファイルを走査する間に新たなブロックに遭遇したときに、ブロックが有効であるかどうかを決定することと
を包含する、請求項１５に記載の方法。
【請求項１７】
前記格納することは、
前記持続性ファイルの前記開始ロケーションを示すページとオフセットの値とを格納することと、
前記アクセスディレクトリの不良ブロックのテーブルにおける不良ブロックのページナンバーを格納することであって、該不良ブロックのページナンバーは、前記非ＸＩＰフラッシュメモリデバイス内の不良ブロックのロケーションを示す、ことと
を包含する、請求項１６に記載の方法。
【請求項１８】
前記各持続性ファイルに対応する不良ブロックのインデックスを格納することであって、各不良ブロックのインデックスは、該各持続性ファイルが前記非ＸＩＰフラッシュメモリデバイスから読み取られるときに、該各持続性のファイルに対して遭遇する第１の不良ブロックに関する第１の不良ブロックのページナンバーを含む前記不良ブロックのテーブルの中のロケーションを示す、ことをさらに包含する、請求項１７に記載の方法。
【請求項１９】
セルラー電話であって、
不揮発性のｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイスであって、
圧縮された電話の画像のセクションと、
持続性ファイルのセクションと、
アクセスディレクトリと
を備えている、不揮発性のｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）フラッシュメモリデバイスと、
ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリデバイスであって、
非ＸＩＰフラッシュメモリデバイスの該圧縮された電話の画像のセクションからコピーされ、圧縮解除されるファームウェアコードと、
該非ＸＩＰフラッシュメモリデバイスの該アクセスディレクトリからコピーされるコピーされたアクセスディレクトリと
を備えている、ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリデバイスと、
該ＸＩＰメモリデバイスにおいて該ファームウェアコードを実行するように構成されているプロセッサであって、該ファームウェアコードは、該コピーされたアクセスディレクトリによって示される不良ブロックをスキップすることによって、該非ＸＩＰフラッシュメモリデバイス内に格納された該持続性ファイルのセクションの持続性ファイルにアクセスするファイルアクセス手順を行うように構成されている、プロセッサと
を備えている、セルラー電話。
【請求項２０】
前記ファームウェアコードは、
前記コピーされたアクセスディレクトリの中のファイルのロケーションデータに基づいて、前記持続性ファイルのセクションの中の前記持続性ファイルに関するファイルのロケーションを決定するステップと、
前記非ＸＩＰフラッシュメモリデバイスの現在のページを、該コピーされたアクセスディレクトリの不良ブロックのテーブルの中の不良ブロックのページナンバーと比較するステップと、
該不良ブロックのページナンバーによって示される該不良ブロックをスキップする間に、該持続性ファイルを読み取るステップと
を実行するように構成されている、請求項１９に記載のセルラー電話。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、メモリデバイスに関し、さらに詳細には、ｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅフラッシュメモリ内の持続性ファイルにアクセスする装置、システムおよび方法に関する。
【背景技術】
【０００２】
ファームウェアと持続性ファイルとは、セルラー電話およびパーソナルデジタルアシスタンツのようなポータブルの電子デバイスの動作を容易にする。持続性ファイルは、一般的に、デバイスの一般的なシステム動作のために必要とされるデフォルトのコンテンツおよびデータを定義する不揮発性のデータを含む。持続性ファイルの例は、フォントファイルと、言語サポートファイルと、音楽、写真、およびビデオのようなデフォルトのマルチメディアコンテンツとを含む。従来のデバイスにおいて、ファームウェアと持続性ファイルとは、ＮＡＮＤフラッシュメモリデバイスのような不揮発性メモリ、つまりｎｏｎ−ｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（非ＸＩＰ）メモリに格納され、ＲＡＭ（ランダムアクセスメモリ）またはＳＤＲＡＭ（同期式動的ランダムアクセスメモリ）のようなｅｘｅｃｕｔｅ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリデバイスにコピーされる。ポータブルの電子デバイスの機能性および複雑さが増加するにつれ、持続性ファイルとファームウェアとに対して要求されるメモリも増加する。機能性の増加に加え、企業間競争および消費者の要求が、ポータブルのデバイスに対する製造コストが継続的に低下することを必要としている。従来のデバイスにおいて、持続性ファイルは、非ＸＩＰフラッシュメモリにあるときには、直接的にアクセスされ得ない。結果として、従来のデバイスは、ポータブルの電子デバイスの中のＸＩＰメモリデバイスが非ＸＩＰフラッシュメモリからコピーされる実行可能なコードおよび持続性ファイルに対して充分な容量を有していなければならないという点で制限されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従って、非ＸＩＰフラッシュメモリに格納されている持続性ファイルにアクセスする装置、システムおよび方法に対するニーズが存在する。
【課題を解決するための手段】
【０００４】
本発明の例示的な実施形態に従って、非ＸＩＰフラッシュメモリに格納される持続性ファイルは、電子デバイスの動作の間にアクセスされる。デバイスのプロセッサ上でのアプリケーションコードの実行の間に、持続性ファイルは、ルックアップテーブルのようなアクセスディレクトリを使用してアクセスされる。アクセスディレクトリは、デバイス上で走るアプリケーションまたは他のソフトウェアのコードが、非ＸＩＰフラッシュメモリデバイスの中の持続性ファイルを位置決めし、それにアクセスすることを可能にする情報を提供し、その場合、非ＸＩＰフラッシュメモリデバイスは不良ブロックを含み得る。アクセスディレクトリの作成の間、デバイス内の不良ブロックのロケーションが識別され記録される。アクセスディレクトリの不良ブロックのデータにおいて識別される不良ブロックを確認する間に、アクセスディレクトリにおいて識別されるファイルの開始ロケーションから読み取ることによって、ファイルは非ＸＩＰフラッシュメモリデバイスからアクセスされる。従って、持続性ファイルはＮＡＮＤデバイスのような非ＸＩＰフラッシュメモリデバイスに格納されたままであり得、ＳＤＲＡＭデバイスのようなＸＩＰメモリデバイスにコピーされない。ＸＩＰメモリデバイスの必要とされるサイズが最小化され、それにより、電子デバイスの製造コストを低下させる。
【発明を実施するための最良の形態】
【０００５】
図１は、本発明の例示的な実施形態に従ったポータブル電子デバイス１００のブロック図である。図１に描かれた様々な機能は、ハードウェア、ソフトウェアおよびファームウェアの任意の組み合わせによって行なわれ得る。単一のブロックによって行なわれるように記述された任意の機能が複数のデバイスまたはシステムによって行なわれ得、２つ以上のブロックの機能が単一のデバイスによって行なわれ得る。
【０００６】
ポータブル電子デバイス１００は、非ＸＩＰ（ｎｏｎ−ＸＩＰ）フラッシュメモリデバイス１０２と、ｅｘｅｃｕｔｉｏｎ−ｉｎ−ｐｌａｃｅ（ＸＩＰ）メモリデバイス１０４と、ポータブル電子デバイス１００の動作を容易にする持続性ファイルとを少なくとも含む任意のデバイスである。例示的な実施形態において、ポータブル電子デバイス１００はセルラー電話であり、非ＸＩＰフラッシュメモリデバイス１０２は、ＮＡＮＤフラッシュメモリであり、ｅｘｅｃｕｔｉｏｎ  ｉｎ  ｐｌａｃｅ（ＸＩＰ）メモリデバイス１０６は、ＳＤＲＡＭデバイスである。デバイス１００が使用される前に、持続性ファイルと電話の画像ファイルとが非ＸＩＰフラッシュメモリデバイス１０２にコピーされる。例示的な実施形態において、非ＸＩＰフラッシュメモリデバイス１０２にロードされるときに、電話の画像ファイルは圧縮されたフォーマットであるが、持続性ファイルは圧縮されないままである。ポータブルデバイス１００の製造プロセスの一部分として、または更新の後に、電話の画像コードと持続性ファイルとが、非ＸＩＰフラッシュメモリデバイス１０２の適切なセクション１０８、１１０にロードされる。ロードするプロセスの間、不良ブロックが識別され回避される。従って、持続性ファイルのセクション１１０のロケーションは、非ＸＩＰフラッシュメモリデバイス１０２の中の不良ブロックのロケーションに依存し得る。例示的な実施形態において、持続性ファイルのマーカが、持続性ファイルのセクション１１０のロケーションに関する情報を提供するために、持続性ファイルのセクション１１０の最初の部分にロードされる。例示的な実施形態において、電話の画像のセクション１０８にスペースを確保して、持続的なコード格調を可能にし、かつ、持続性ファイルのセクション１１０に対する一定の開始ロケーションを維持するために、電話の画像コードの後に、パッドが挿入される。従って、持続性ファイルのマーカは、持続性ファイルのセクションの意図された開始ロケーションに位置決めされ、特定のロケーションは、不良ブロックの存在および数に依存する。
【０００７】
ポータブルデバイス１００の起動手順の間、電話の画像ファイルは圧縮解除され、ＸＩＰメモリデバイス１０６にコピーされ、ファームウェアコード１１２と電話の画像データ１１４とを形成する。プロセッサ１１６は、ＸＩＰメモリデバイス１０６からファームウェアコードを実行し、ポータブルデバイスの全体的な機能性を容易にする機能を行う。ＸＩＰメモリデバイス１０６は、例えば、コードの実行を容易にするＲＡＭデバイスまたはフラッシュデバイスのような任意の格納デバイスである。適切なＲＡＭデバイスの例は、ＳＤＲＡＭデバイスである。一部の状況において、ＮＯＲフラッシュデバイスのようなフラッシュデバイスが、ＸＩＰメモリデバイス１０６に対して使用され得る。他の機能に加え、ファームウェアコード１１２は、電話の画像と持続性ファイルとがインストールまたは更新された後で、第１の起動手順の間に、持続性ファイルの初期化手順を行う。持続性ファイルの初期化手順は、非ＸＩＰフラッシュメモリデバイス１０２の中の持続性ファイルにアクセスするためのアクセスディレクトリ１１８を確立する。例示的な実施形態において、アクセスディレクトリ１１８は、ＮＡＮＤフラッシュメモリデバイス１０２の埋め込みファイルシステム（ＥＦＳ）セクション１２０に格納され、続く起動手順の間に、ＲＡＭアクセスディレクトリ１２６としてＸＩＰメモリデバイス１０６にロードされる。電話の画像と持続性ファイルとが、新たなコードバージョンによって変更される場合には、持続性ファイルの初期化手順が次のデバイスの起動時に行われ、アクセスディレクトリ１１８の修正を確立する。
【０００８】
アクセスディレクトリ１１８は、ファイルのロケーションデータ１２２と不良ブロックのロケーションデータ１２４とを含み、ファイルのロケーションデータ１２２は、非ＸＩＰフラッシュメモリデバイス１０２の持続性ファイルのセクション１１０の中の持続性ファイルのロケーションを示し、不良ブロックのデータは、持続性ファイルのセクション１１０の中の不良ブロックのロケーションを示す。以下でさらに詳細に示されるように、持続性ファイルの初期化手順は、各ファイルの開始ロケーションと、持続性ファイルのセクション１１０内の各不良ブロックのロケーションとを決定し、アクセスディレクトリ１１８を形成する。概して、不良ブロックに対するブロックの境界を確認する間に、持続性ファイルのセクションのロケーションが識別され、各持続性ファイルのサイズが決定され、持続性ファイルのセクション１１８が各持続性ファイルに対して走査される。
【０００９】
アクセスディレクトリはＸＩＰメモリデバイス１０６にコピーされ、ファームウェア１１２がプロセッサ１１６上で走ることにより、アクセスディレクトリ１１８へのアクセスを容易にする。アクセス手順はアクセスディレクトリ１１８を使用して持続性ファイルにアクセスするためにもたらされる。アクセス手順は、図５および図６を参照して以下でさらに詳細に述べられる。概して、開始ページと持続性ファイルに対するオフセットとがアクセスディレクトリから決定され、ファイルがオフセットから読み取られるが、不良ブロックはスキップされる。不良ブロックは、不良ブロックのロケーションデータ１２４の不良ブロックのテーブルにおけるページナンバーによって識別される。不良ブロックのインデックスは、ファイルを読み取るときに遭遇する第１の不良ブロックのページを示すことによって、さらなる効率を提供する。
【００１０】
一部の条件において、持続性ファイルのセクション１１０はＥＦＳ１２０内に格納され得る。しかしながら、例示的な実施形態において、持続性ファイルはＥＦＳ１２０の外側に格納され、ＥＦＳ１２０によって管理されるファイルの数を最小化する。持続性ファイルは、繰り返しては、ＥＦＳ１２０内で移動および再書き込みされないので、非ＸＩＰフラッシュメモリデバイス１０２の寿命が最大化される。
【００１１】
図２は、アクセスディレクトリ１１８と持続性ファイルのセクション１１０との間の例示的な関係を例示しているブロック図であり、ファイルのロケーションデータ１２２はロケーションのテーブルを含み、不良ブロックデータ１２４は不良ブロックのテーブルを含む。上記のように、ＮＡＮＤメモリデバイスは、多くの場合に、無効または「不良ブロック」を含む。不良ブロックは、信頼性が保証されない１ビット以上の無効なビットを含むブロックである。デバイスが送られるときに、不良ブロックは存在し得るか、またはデバイスの寿命の間に、不良ブロックは発達し得る。ロケーションのテーブルと不良ブロックのテーブルとは、アクセスディレクトリの初期化手順の間に、持続性ファイルのセクションの位置を決め、各持続性ファイルに対して非ＸＩＰフラッシュメモリデバイス１０２を走査し、各持続性ファイルと走査の間に遭遇した全ての不良ファイルとのロケーションを記録することによって作成される。不良ブロックのテーブル１２４は、持続性ファイルのセクション１１０の中の各不良ブロックに対する開始ページのページナンバーを含む。ＮＡＮＤデバイスは、デバイスと共に不良ブロックを示す不良ブロックの情報と共に送られる。一般的に、各ブロックの第１のページの予備のバイトのセクションの中のロケーションと、各ブロックの第２のページの予備のバイトのセクションとは、ブロックが不完全であるかどうかを示す不良ブロックの情報のために確保されている。アクセスディレクトリの初期化手順の間、不良ブロックは、予備のバイトのセクション内の不良ブロックの情報を使用して識別され、不良ブロックのテーブル１２４を作成するために使用される。アクセスディレクトリの初期化手順は、図３および図４を参照して以下でさらに詳細に述べられる。
【００１２】
例示的な実施形態において、ロケーションテーブル１２２は、各持続性ファイルに対する開始ロケーションと不良ブロックのインデックス２１８とを含むルックアップテーブルである。開始ロケーションは開始ページ２１４とページオフセット２１６とを含み、開始ページ２１４はページナンバーを示し、ページオフセット２１６は、ファイルが始まるそのページの中のバイトのオフセットを示す。不良ブロックのインデックス２１８は、ファイルに順次アクセスするときに遭遇する第１の不良ブロックのページナンバー２２０、２２２、２２４および２２６を含む不良ブロックのテーブル１２４の中のロケーションを示す。従って、あるファイルに対する不良ブロックのインデックス２１８が、次のファイルに対する不良ブロックのインデックス２１８と同じである場合には、そのファイルは不良ブロックを全く含まない。
【００１３】
図２を参照して述べられた例示的な状況において、持続性ファイルのセクションは、複数の不良ブロック２０２、２０４、２０６および２０８と、複数の持続性ファイル２１０、２１２とを含む。ロケーションテーブル１２２は、各持続性ファイル２１０、２１２に対する、開始ページ２１４と、ページオフセット２１６と、不良ブロックのインデックス２１８とを含む。不良ブロックのインデックス２１８は、ファイルが順次アクセスされたときに最初に遭遇する不良ブロックのページナンバーを含む不良ブロックのテーブル１２４のロケーション２２０、２２２、２２４および２２６を示す。例えば、第１の不良ブロックのインデックス２１８は、不良ブロックのテーブル内の第１のロケーション２２０を示し、列挙されたページナンバーは、「ファイル２」２１２が読み取られたときに、持続性ファイルのセクション内の第１の不良ブロック２０２に対応する。不良ブロックのテーブル内の次のロケーション２２２は、次の不良ブロック２０４の第１のページのページナンバーを含む。従って、いくつかの不良インデックス２１８は、単一の不良ブロックのロケーション２２０を示す。上記のように、現在のファイルが、以前のファイルと同じ不良ブロックのインデックスを有する場合、現在のファイル２１０は、不良ブロック２０２、２０４、２０６および２０８を全く含まない。
【００１４】
図３は、本発明の例示的な実施形態に従ってアクセスディレクトリの初期化手順を行う方法の流れ図である。アクセスディレクトリの初期化手順は、電話の画像と持続性ファイルとが最初にロードまたは更新された後で、ポータブルデバイス１００の第１の起動シーケンスの間に、プロセッサ１１６によるファームウェアコードの実行によって行われる。本方法は、持続性ファイルが非ＸＩＰフラッシュメモリデバイス１０２に格納される任意の状況で行われ得るが、例示的な方法はポータブルのセルラー電話の中で行われる。
【００１５】
ステップ３０２において、電話の画像のセクションは圧縮解除されＸＩＰデバイス１０６にロードされる。上記のように、例示的な実施形態において、電話の画像のセクション１０８は非ＸＩＰフラッシュメモリデバイス１０２にロードされたときに圧縮される。従って、電話の画像のセクション１０８は圧縮解除され、ＸＩＰデバイス１０６にロードされ、その結果、電話の画像のセクション１０８は、プロセッサ１１６によって、ファームウェアコード１１２として実行され得る。例示的な実施形態において、他のファームウェアおよびデータに加えて、ファームウェアコード１１２はアクセスディレクトリの初期化コードと持続性ファイルのアクセスコードとを含む。以下で述べられるステップ３０４〜ステップ３１４は、アクセスディレクトリの初期化を行う例示的な方法を提供する。
【００１６】
ステップ３０４において、持続性ファイルのセクション２２０は、非ＸＩＰフラッシュメモリデバイス１０２の中に位置を決められる。上記のように、例示的な実施形態において、持続性ファイルのセクション２２０は、パッドおよび持続性ファイルのマーカ２２８によって、電話の画像のセクション１０８から分離される。持続性ファイルのセクション１１０は持続性ファイルのマーカ２２８のすぐ後に置かれるので、持続性ファイルのセクション１１０は、持続性ファイルのマーカ２２８を識別することによって位置を決められる。従って、非ＸＩＰフラッシュメモリデバイス１０２は、パッドの端および持続性ファイルのセクション１１０の予期される開始ロケーションから、持続性ファイルのマーカ２２８について検索される。それに従って、持続性ファイルのマーカ２２８は、不良ブロックが存在し得る持続性ファイルのセクション１１０の明確な識別を提供する。
【００１７】
ステップ３０６において、持続性ファイルのセクション１１０は不良ブロックを確認する間に走査される。ブロックの第１のページの中の不良ブロックのインジケータのロケーションが読み取られ、そのブロックが不完全（無効）なブロックであるかどうかを決定する。電話の画像のデータ１１４内に格納されている情報に基づいて、ファイルのサイズを計算し、ファイルの全てのデータが走査されるまで開始ロケーションからファイルを読み取ることによって、各ファイルは走査される。ファイルが読み取られる間に遭遇するブロックの境界は、そのブロックが不良ブロックであるかどうかを決定するために評価される。
【００１８】
ステップ３０８において、不良ブロックが見つけられたときに、不良ブロックのテーブルが不良ブロックのロケーションによって更新される。２つ以上のブロックに及ぶファイルの部分は、１つ以上の不良ブロックによって分離され得る。不良ファイルが識別されたときに、アクセスディレクトリ１１８内の不良ブロックのテーブル１２４は、不良ブロックのページを列挙することによって更新される。
【００１９】
ステップ３１０において、現在走査されているファイルに関するファイルの末端が決定される。特定のファイルに対して読み取られたバイト数がファイルの長さと等しいときには、ファイルの末端に到達したということが決定される。
【００２０】
ステップ３１２において、アクセスディレクトリ１１８内のファイルのロケーションデータが、次のファイルの開始ロケーションを反映するように更新される。例示的な実施形態において、データは４バイトで並べられ、次のファイルに関するファイルの開始ロケーションは、次に利用可能な全４バイトのセクションである。次のファイルの開始ページとオフセットとはロケーションテーブル１２２に入力される。
【００２１】
ステップ３１４において、次のファイルに対する不良ブロックのインデックス２１８は、アクセスディレクトリ１１８のロケーションテーブル１２２内で更新される。上記のように、不良ブロックのインデックス２１８は、現在のファイルを読み込むときに遭遇する第１の不良ブロックの不良ブロックのテーブル１２４内のページナンバーのロケーション（２２０、２２２、２２４および２２６）を示す。ファイルを走査する間に不良ブロックが見つけられなかったときには、現在のファイルの不良ブロックのインデックスは、直前の不良ブロックのインデックスと同じである。
【００２２】
図４は、図３のステップ３０６〜ステップ３１４を行う例示的な方法の流れ図である。図４を参照して記述される機能および手順は、図３のステップ３０６〜ステップ３１４を実行するために、任意の順序でまたは同時に行われ得る。図４を参照して記述される任意のステップの手順が図３の複数のステップの一部分を行ない得、図３の任意の単一のステップが図４の複数のステップによって行われ得る。従って、図４のステップは、必ずしも、図３のステップに直接的に対応しない。
【００２３】
ステップ４０２において、カウンタ（Ｎ）は「１」に設定される。
【００２４】
ステップ４０４において、Ｎが、非ＸＩＰフラッシュメモリデバイス１０２内に格納される持続性ファイルの数以下になるかどうかが決定される。Ｎがファイルの数を下回るときには、手順はステップ４０６に続く。そうでなければ、手順は終了することにより中止される。従って、ファイルの数がＮを下回るときに手順は終了し、走査するべきファイルがないことを示す。
【００２５】
ステップ４０６において、ファイルＮのサイズが引き出される。電話の画像に含まれるメタデータに基づいて、現在のファイルのサイズが決定される。従って、電話の画像は持続性ファイルのサイズを含む。
【００２６】
ステップ４０８において、現在のファイルに対する開始ページが設定される。ファイルのサイズに基づいて、開始ページと開始オフセットとが現在のファイルに対して決定される。走査は開始ロケーションで始まる。
【００２７】
ステップ４１０において、ファイルのサイズが０を上回るかどうかが決定される。ファイルのサイズが０を上回らない場合には、手順はステップ４１２に続き、ここでＮは、ステップ４０４に戻る前に、１だけ増加される。そうでなければ、手順はステップ４１４に続く。以下で述べられるように、ファイルのサイズは、ページが走査された後に、ページのサイズだけ減少する。従って、ステップ４１０において、現在のファイルに対して、さらなるページが走査されるべきかどうかが決定される。
【００２８】
ステップ４１４において、新たなブロックに到達したかどうかが決定される。例示的な実施形態において、ブロックの中のページナンバーを３２で除算すると余りを生じるかどうかに基づいて、ブロックの境界に到達したかどうかが決定される（すなわち、Ｐａｇｅ％３２＝０）。ブロック内に３２ページあるので、結果はブロックの境界においてのみ０となる。新たなブロックに遭遇しない場合には、手順はステップ４２０に続く。ブロックの境界に到達した場合には、手順はステップ４１６に続く。
【００２９】
ステップ４１６において、ブロックが無効である（すなわち、ブロックが不良ブロックである）かどうかが決定される。ブロックの第１のページと第２のページとに対応する、予備のバイト内の不良ブロックの情報が読み取られる。ブロックが有効なブロックである場合には、手順は４２０に続く。不良ブロックの情報が、ブロックが無効である（すなわち、ブロックが不良ブロックである）ことを示す場合には、手順はステップ４１８へと進む。
【００３０】
ステップ４１８において、ブロック内の残りのページはスキップされ、不良ブロックのテーブルが、不良ブロックのページナンバーを用いて更新される。次に、手順はステップ４１４に戻る。
【００３１】
ステップ４２０において、ファイルのサイズがページのサイズを上回るかどうかが決定される。ファイルのサイズがページのサイズを上回る場合には、１つよりも多いデータのページが、ファイルのために残る。ステップ４２２において、ファイルのサイズはページのサイズだけ減少を示し、手順はステップ４１０に戻り、ファイルの走査を続ける。ファイルのサイズがページのサイズを上回らない場合には、手順はステップ４２６に続く。
【００３２】
ステップ４２６において、ファイルのサイズがページのサイズに等しいかどうかが決定される。ファイルのサイズがページのサイズに等しい場合には、手順はステップ４２８に続く。そうでなければ、手順は４２４に続く。
【００３３】
ステップ４２４において、ロケーションテーブル１２２は更新され、ファイルのサイズは０に設定される。次のファイルの開始ロケーション２１４、２１６は、現在のファイルの末端のロケーションおよび必要とされる任意のアライニングによって決定される。従って、テーブル１２２におけるページ２１４およびオフセット２１６の値は、次のファイルの開始ロケーション反映するように更新される。さらに、不良ブロックのインデックス２１８は、次の不良ブロックのロケーションを示すように更新される。不良ブロックに遭遇しなかった場合、次の不良ブロックのインデックス２１８は、現在の不良ブロックのインデックス２１８と同じである。次に、手順はステップ４１０に戻る。
【００３４】
ステップ４２８において、現在のページナンバーは１だけ増加される。従って、ステップ４２６において、ファイルのサイズがページのサイズに等しいということが決定される場合には、ページナンバーが増加され、手順は４３０に続く。
【００３５】
ステップ４３０において、新たなブロックに遭遇したかどうかが決定される。ブロックの境界に到達した場合には、手順はステップ４３２に続く。そうでなければ、手順はステップ４２４に続く。
【００３６】
ステップ４３２において、ブロックが無効であるかどうかが決定される。ブロックが有効であり、不良ブロックではない場合には、手順はステップ４２４に続く。そうでなければ、手順はステップ４３４に続き、ここで不良ブロックのテーブル１２４が更新され、不良ブロック内の残りのページはスキップされる。
【００３７】
図５は、本発明の例示的な実施形態に従った、持続性ファイルにアクセスする方法の流れ図である。本方法は、ファイルが非ＸＩＰフラッシュメモリデバイス１０２に格納される任意の状況において行われ得るが、例示的な方法は、ポータブルのセルラー電話の中で行われる。一部の状況においては、２つ以上のステップが同時に行われ得、ステップの順序が変更され得る。
【００３８】
ステップ５０２において、非ＸＩＰフラッシュメモリデバイス１０２から読み取られるファイルに関するファイルのロケーションが識別される。例示的な実施形態において、例示的な実施形態において、ファイルのロケーションは、アクセスディレクトリ１１８から決定される。ファイルの開始ページ２１４とオフセット２１６とはアクセスディレクトリ１１８のロケーションテーブル１２２から引き出される。
【００３９】
ステップ５０４において、読み取られるページ数とバイト数とがファイルに対して計算される。読み取られることが要求されているファイルの長さに基づいて、ページ数およびバイト数が計算される。
【００４０】
ステップ５０６において、不良ブロックのデータが引き出される。アクセスディレクトリ１１８に格納されている不良ブロックのデータが引き出される。例示的な実施形態において、不良ブロックのデータが、ロケーションテーブル１２２と不良ブロックのテーブル１２４とから読み取られる。現在の不良ブロックのインデックスと次の不良ブロックのインデックスとが、アクセスディレクトリ１１８のロケーションテーブル２１８から読み取られる。現在の不良ブロックのインデックス２１８が、次の不良ブロックのインデックス２１８と同じでないときには、現在のファイルに対応する不良ブロックのページまたは複数のページが不良ブロックのテーブルから読み取られる。
【００４１】
ステップ５０８において、ファイルは、不良ブロックをスキップすることによって、非ＸＩＰフラッシュメモリデバイス１０２から読み取られる。計算されたページ数およびバイト数が、任意の不良ブロックを確認する間に、非ＸＩＰフラッシュメモリデバイス１０２から読み取られる。ファイルを読み取る例示的な方法は、図６を参照にして以下で述べられる。
【００４２】
図６は、非ＸＩＰフラッシュメモリデバイス１０２から持続性ファイルを読み取る方法の流れ図である。従って、図６を参照して記述される方法は、図５のステップ５０８を実行する例示的な方法である。図６を参照して記述される機能および手順は、図５のステップ５０８を実行するために、任意の順序でまたは同時に行われ得る。
【００４３】
ステップ６０２において、ファイルの第１のページが、非ＸＩＰフラッシュメモリデバイス１０２から読み取られ、読み取るページ数は１だけ減少する。ファイルのオフセットと長さとに従って、ページ全体が読み取られ得るか、またはページの一部分のみが読み取られ得るかのいずれかである。
【００４４】
ステップ６０４において、読み取るページ数が０であるかどうかが決定される。読み取られるページが残されておらず、ページ数が０である場合には、方法はステップ６０８に続き、ファイルに関するデータがバッファにコピーされ、手順は完了する。読み取るページがさらにある（すなわち、読み取るページ数が０ではない）場合には、方法はステップ６０６に続き、ファイルに関するデータがバッファにコピーされる。
【００４５】
ステップ６１０において、読み取る残りのページが、最後のページを除いて、現在のブロックから読み取られる。
【００４６】
ステップ６１２において、読み取るページ数が１であるかどうかが決定される。ファイルに対する残りのデータが、１つのページまたはページの一部分を読み取ることを要求する場合には、方法はステップ６１４に続き、現在のブロックの最後のページが読み取られ、方法は終了する。そうでなければ、方法は６１６に続く。従って、ファイルに関するデータが、１つよりも多いページを読み取ることを要求する場合には、方法は６１６に続く。従って、ステップ６１６で開始する手順の残りは、ブロックの境界が交差されない場合には行われることを必要としない。ファイルの残りが現在のブロックの中にある場合、ファイルは不良ブロックを確認することなく読み取られ得る。
【００４７】
ステップ６１６において、現在の不良ブロックのインデックス２１８が、次の不良ブロックのインデックス２１８と同じであるかどうかが決定される。インデックスが同じである場合には、手順はステップ６１８に続く。インデックスが同じであるときには、現在のブロック内に不良ブロックは存在せず、ファイルの残りのデータが、ステップ６１８および６１４において読み取られる。インデックスが同じではない場合には、方法はステップ６２０に続く。
【００４８】
ステップ６２０において、ファイルの残りのデータが、１つのページを読み取ることを要求しているかどうかが決定される。従って、１つよりも多いページが、読み取られるファイルに付属する残りのデータを読み取るために、アクセスされなければならないかどうかが決定される。１つのページまたはページの一部分のみが読み取られる場合には、手順はステップ６２２に続く。そうでなければ、手順はステップ６２４に続く。
【００４９】
ステップ６２２において、不良ブロックに到達した場合には、不良ブロックはスキップされる。ステップ６２２において、読み取られるデータは１つかそれより少ないページである。しかしながら、読み取られる最後のページが、１つ以上の不良ブロックの後にあり得るということがやはり考えられる。従って、読み取られる最後のページがブロックの境界（すなわち、ブロックの第１のページ）にある場合には、ページに関する不良ブロックの情報は、不良ブロックのテーブル１２４における不良ブロックのページ２２０、２２２、２２４および２２６と比較される。ブロックが不良である場合には、次のブロックは、有効なブロックが見つけられるまで確認される。最後のページまたは最後のページの一部分が読み取られ、バッファにコピーされる。
【００５０】
ステップ６２４において、ページが現在の不良ブロックのページであるかどうかが決定される。ページは不良ブロックのテーブルにおける不良ブロックのページナンバーと比較される。ブロックが無効である場合には、ブロック内の残りのページは、ステップ２６２においてはスキップされ、手順はステップ６２０に戻り、読み取る残りのページ数を決定する。ブロックが有効である場合には、手順はステップ６２８に続く。
【００５１】
ステップ６２８において、現在のブロック内の最後のページを除いた残りのページが読み取られる。次に、手順はステップ６２０に戻る。従って、ステップ６２０、６２４、６２６および６２８は、不良ブロックをスキップする間に、ページを読み取るというよりもループを形成する。単一のページが読み取られるために残っているときに、ループは終了する。
【００５２】
従って、例示的な実施形態に従って、圧縮された電話の画像と、圧縮されていない持続性ファイルとが、ポータブルのセルラー電話または他の電子ポータブルデバイス１００のＮＡＮＤフラッシュメモリデバイス１０２にロードされるか、または更新される。アクセスディレクトリの初期化手順の間、起動シーケンスの間に、持続性ファイルは不良ブロックに対するブロックの境界を確認する間に走査される。アクセスディレクトリはロケーションテーブル１２２と不良ブロックテーブル１２４とを有して作成され、ロケーションテーブル１２２は、各ファイルに対する開始ページおよびオフセットならびに不良ブロックのインデックスを含む。不良ブロックのテーブル１２４は、持続性ファイルのセクション１１０の中の不良ブロックのページナンバー２２０、２２２、２２４および２２６を含む。ポータブルの電子デバイス１００の動作の間、持続性ファイルのセクション１１０内の不良ブロックを確認するアクセス手順を使用して、持続性ファイルは非ＸＩＰフラッシュメモリデバイス１０２上でアクセスされる。アクセスディレクトリ１１８において示された不良ブロックは、持続性ファイルのセクションからファイルを読み取る間にスキップされる。ファイルはＮＡＮＤフラッシュメモリデバイス１０２から直接的にアクセスされ得るので、ＸＩＰメモリデバイス１０６のサイズとコストとは減少される。
【００５３】
本発明の例示的な実施形態の上の記述から、本発明の範囲を逸脱することなく、本発明の概念を実装するために、様々な技術が使用され得るということが明らかである。さらに、本発明は特定の実施形態を明確に参照して記述されてきたが、本発明の精神および範囲を逸脱することなく、形状および詳細において変更が行われ得るということを、当業者は認識する。記述された例示的な実施形態は、あらゆる点において例示として考えられるべきであり、限定として考えられるべきではない。本発明は、本明細書において記述された特定の例示的な実施形態に限定されないが、本発明の範囲を逸脱することなく、様々な再配置、改変および置換が可能であるということがまた理解されるべきである。
【図面の簡単な説明】
【００５４】
【図１】図１は、本発明の例示的な実施形態に従ったポータブル電子デバイスのブロック図である。
【図２】図２は、アクセスディレクトリと持続性ファイルのセクションとの間の例示的な関係を例示しているブロック図であり、ファイルのロケーションデータはロケーションのテーブルを含み、不良ブロックデータは不良ブロックのテーブルを含む。
【図３】図３は、本発明の例示的な実施形態に従ってアクセスディレクトリの初期化手順を行う方法の流れ図である。
【図４】図４は、図３のステップ３０６〜ステップ３１４を行う例示的な方法の流れ図である。
【図５】図５は、本発明の例示的な実施形態に従った、持続性ファイルにアクセスする方法の流れ図である。
【図６】図６は、非ＸＩＰフラッシュメモリデバイスから持続性ファイルを読み取る方法の流れ図である。
【図１】
2009500770.tif 000003
【図２】
2009500770.tif 000004
【図３】
2009500770.tif 000005
【図４】
2009500770.tif 000006
【図５】
2009500770.tif 000007
【図６】
2009500770.tif 000008
【国際調査報告】
2009500770.tif 000009
2009500770.tif 000010
2009500770.tif 000011