JP4777426B2 - Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法 - Google Patents

Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法 Download PDF

Info

Publication number
JP4777426B2
JP4777426B2 JP2008521622A JP2008521622A JP4777426B2 JP 4777426 B2 JP4777426 B2 JP 4777426B2 JP 2008521622 A JP2008521622 A JP 2008521622A JP 2008521622 A JP2008521622 A JP 2008521622A JP 4777426 B2 JP4777426 B2 JP 4777426B2
Authority
JP
Japan
Prior art keywords
file
persistent
block
bad block
xip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008521622A
Other languages
English (en)
Other versions
JP2009500770A (ja
Inventor
アリ ダミム パッカー,
チアン チャン,
Original Assignee
キョウセラ ワイヤレス コープ.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by キョウセラ ワイヤレス コープ. filed Critical キョウセラ ワイヤレス コープ.
Publication of JP2009500770A publication Critical patent/JP2009500770A/ja
Application granted granted Critical
Publication of JP4777426B2 publication Critical patent/JP4777426B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、概して、メモリデバイスに関し、さらに詳細には、non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスする装置、システムおよび方法に関する。
ファームウェアと持続性ファイルとは、セルラー電話およびパーソナルデジタルアシスタンツのようなポータブルの電子デバイスの動作を容易にする。持続性ファイルは、一般的に、デバイスの一般的なシステム動作のために必要とされるデフォルトのコンテンツおよびデータを定義する不揮発性のデータを含む。持続性ファイルの例は、フォントファイルと、言語サポートファイルと、音楽、写真、およびビデオのようなデフォルトのマルチメディアコンテンツとを含む。従来のデバイスにおいて、ファームウェアと持続性ファイルとは、NANDフラッシュメモリデバイスのような不揮発性メモリ、つまりnon−execute−in−place(非XIP)メモリに格納され、RAM(ランダムアクセスメモリ)またはSDRAM(同期式動的ランダムアクセスメモリ)のようなexecute−in−place(XIP)メモリデバイスにコピーされる。ポータブルの電子デバイスの機能性および複雑さが増加するにつれ、持続性ファイルとファームウェアとに対して要求されるメモリも増加する。機能性の増加に加え、企業間競争および消費者の要求が、ポータブルのデバイスに対する製造コストが継続的に低下することを必要としている。従来のデバイスにおいて、持続性ファイルは、非XIPフラッシュメモリにあるときには、直接的にアクセスされ得ない。結果として、従来のデバイスは、ポータブルの電子デバイスの中のXIPメモリデバイスが非XIPフラッシュメモリからコピーされる実行可能なコードおよび持続性ファイルに対して充分な容量を有していなければならないという点で制限されている。
従って、非XIPフラッシュメモリに格納されている持続性ファイルにアクセスする装置、システムおよび方法に対するニーズが存在する。
本発明の例示的な実施形態に従って、非XIPフラッシュメモリに格納される持続性ファイルは、電子デバイスの動作の間にアクセスされる。デバイスのプロセッサ上でのアプリケーションコードの実行の間に、持続性ファイルは、ルックアップテーブルのようなアクセスディレクトリを使用してアクセスされる。アクセスディレクトリは、デバイス上で走るアプリケーションまたは他のソフトウェアのコードが、非XIPフラッシュメモリデバイスの中の持続性ファイルを位置決めし、それにアクセスすることを可能にする情報を提供し、その場合、非XIPフラッシュメモリデバイスは不良ブロックを含み得る。アクセスディレクトリの作成の間、デバイス内の不良ブロックのロケーションが識別され記録される。アクセスディレクトリの不良ブロックのデータにおいて識別される不良ブロックを確認する間に、アクセスディレクトリにおいて識別されるファイルの開始ロケーションから読み取ることによって、ファイルは非XIPフラッシュメモリデバイスからアクセスされる。従って、持続性ファイルはNANDデバイスのような非XIPフラッシュメモリデバイスに格納されたままであり得、SDRAMデバイスのようなXIPメモリデバイスにコピーされない。XIPメモリデバイスの必要とされるサイズが最小化され、それにより、電子デバイスの製造コストを低下させる。
図1は、本発明の例示的な実施形態に従ったポータブル電子デバイス100のブロック図である。図1に描かれた様々な機能は、ハードウェア、ソフトウェアおよびファームウェアの任意の組み合わせによって行なわれ得る。単一のブロックによって行なわれるように記述された任意の機能が複数のデバイスまたはシステムによって行なわれ得、2つ以上のブロックの機能が単一のデバイスによって行なわれ得る。
ポータブル電子デバイス100は、非XIP(non−XIP)フラッシュメモリデバイス102と、execution−in−place(XIP)メモリデバイス104と、ポータブル電子デバイス100の動作を容易にする持続性ファイルとを少なくとも含む任意のデバイスである。例示的な実施形態において、ポータブル電子デバイス100はセルラー電話であり、非XIPフラッシュメモリデバイス102は、NANDフラッシュメモリであり、execution in place(XIP)メモリデバイス106は、SDRAMデバイスである。デバイス100が使用される前に、持続性ファイルと電話の画像ファイルとが非XIPフラッシュメモリデバイス102にコピーされる。例示的な実施形態において、非XIPフラッシュメモリデバイス102にロードされるときに、電話の画像ファイルは圧縮されたフォーマットであるが、持続性ファイルは圧縮されないままである。ポータブルデバイス100の製造プロセスの一部分として、または更新の後に、電話の画像コードと持続性ファイルとが、非XIPフラッシュメモリデバイス102の適切なセクション108、110にロードされる。ロードするプロセスの間、不良ブロックが識別され回避される。従って、持続性ファイルのセクション110のロケーションは、非XIPフラッシュメモリデバイス102の中の不良ブロックのロケーションに依存し得る。例示的な実施形態において、持続性ファイルのマーカが、持続性ファイルのセクション110のロケーションに関する情報を提供するために、持続性ファイルのセクション110の最初の部分にロードされる。例示的な実施形態において、電話の画像のセクション108にスペースを確保して、持続的なコード格調を可能にし、かつ、持続性ファイルのセクション110に対する一定の開始ロケーションを維持するために、電話の画像コードの後に、パッドが挿入される。従って、持続性ファイルのマーカは、持続性ファイルのセクションの意図された開始ロケーションに位置決めされ、特定のロケーションは、不良ブロックの存在および数に依存する。
ポータブルデバイス100の起動手順の間、電話の画像ファイルは圧縮解除され、XIPメモリデバイス106にコピーされ、ファームウェアコード112と電話の画像データ114とを形成する。プロセッサ116は、XIPメモリデバイス106からファームウェアコードを実行し、ポータブルデバイスの全体的な機能性を容易にする機能を行う。XIPメモリデバイス106は、例えば、コードの実行を容易にするRAMデバイスまたはフラッシュデバイスのような任意の格納デバイスである。適切なRAMデバイスの例は、SDRAMデバイスである。一部の状況において、NORフラッシュデバイスのようなフラッシュデバイスが、XIPメモリデバイス106に対して使用され得る。他の機能に加え、ファームウェアコード112は、電話の画像と持続性ファイルとがインストールまたは更新された後で、第1の起動手順の間に、持続性ファイルの初期化手順を行う。持続性ファイルの初期化手順は、非XIPフラッシュメモリデバイス102の中の持続性ファイルにアクセスするためのアクセスディレクトリ118を確立する。例示的な実施形態において、アクセスディレクトリ118は、NANDフラッシュメモリデバイス102の埋め込みファイルシステム(EFS)セクション120に格納され、続く起動手順の間に、RAMアクセスディレクトリ126としてXIPメモリデバイス106にロードされる。電話の画像と持続性ファイルとが、新たなコードバージョンによって変更される場合には、持続性ファイルの初期化手順が次のデバイスの起動時に行われ、アクセスディレクトリ118の修正を確立する。
アクセスディレクトリ118は、ファイルのロケーションデータ122と不良ブロックのロケーションデータ124とを含み、ファイルのロケーションデータ122は、非XIPフラッシュメモリデバイス102の持続性ファイルのセクション110の中の持続性ファイルのロケーションを示し、不良ブロックのデータは、持続性ファイルのセクション110の中の不良ブロックのロケーションを示す。以下でさらに詳細に示されるように、持続性ファイルの初期化手順は、各ファイルの開始ロケーションと、持続性ファイルのセクション110内の各不良ブロックのロケーションとを決定し、アクセスディレクトリ118を形成する。概して、不良ブロックに対するブロックの境界を確認する間に、持続性ファイルのセクションのロケーションが識別され、各持続性ファイルのサイズが決定され、持続性ファイルのセクション118が各持続性ファイルに対して走査される。
アクセスディレクトリはXIPメモリデバイス106にコピーされ、ファームウェア112がプロセッサ116上で走ることにより、アクセスディレクトリ118へのアクセスを容易にする。アクセス手順はアクセスディレクトリ118を使用して持続性ファイルにアクセスするためにもたらされる。アクセス手順は、図5および図6を参照して以下でさらに詳細に述べられる。概して、開始ページと持続性ファイルに対するオフセットとがアクセスディレクトリから決定され、ファイルがオフセットから読み取られるが、不良ブロックはスキップされる。不良ブロックは、不良ブロックのロケーションデータ124の不良ブロックのテーブルにおけるページナンバーによって識別される。不良ブロックのインデックスは、ファイルを読み取るときに遭遇する第1の不良ブロックのページを示すことによって、さらなる効率を提供する。
一部の条件において、持続性ファイルのセクション110はEFS120内に格納され得る。しかしながら、例示的な実施形態において、持続性ファイルはEFS120の外側に格納され、EFS120によって管理されるファイルの数を最小化する。持続性ファイルは、繰り返しては、EFS120内で移動および再書き込みされないので、非XIPフラッシュメモリデバイス102の寿命が最大化される。
図2は、アクセスディレクトリ118と持続性ファイルのセクション110との間の例示的な関係を例示しているブロック図であり、ファイルのロケーションデータ122はロケーションのテーブルを含み、不良ブロックデータ124は不良ブロックのテーブルを含む。上記のように、NANDメモリデバイスは、多くの場合に、無効または「不良ブロック」を含む。不良ブロックは、信頼性が保証されない1ビット以上の無効なビットを含むブロックである。デバイスが送られるときに、不良ブロックは存在し得るか、またはデバイスの寿命の間に、不良ブロックは発達し得る。ロケーションのテーブルと不良ブロックのテーブルとは、アクセスディレクトリの初期化手順の間に、持続性ファイルのセクションの位置を決め、各持続性ファイルに対して非XIPフラッシュメモリデバイス102を走査し、各持続性ファイルと走査の間に遭遇した全ての不良ファイルとのロケーションを記録することによって作成される。不良ブロックのテーブル124は、持続性ファイルのセクション110の中の各不良ブロックに対する開始ページのページナンバーを含む。NANDデバイスは、デバイスと共に不良ブロックを示す不良ブロックの情報と共に送られる。一般的に、各ブロックの第1のページの予備のバイトのセクションの中のロケーションと、各ブロックの第2のページの予備のバイトのセクションとは、ブロックが不完全であるかどうかを示す不良ブロックの情報のために確保されている。アクセスディレクトリの初期化手順の間、不良ブロックは、予備のバイトのセクション内の不良ブロックの情報を使用して識別され、不良ブロックのテーブル124を作成するために使用される。アクセスディレクトリの初期化手順は、図3および図4を参照して以下でさらに詳細に述べられる。
例示的な実施形態において、ロケーションテーブル122は、各持続性ファイルに対する開始ロケーションと不良ブロックのインデックス218とを含むルックアップテーブルである。開始ロケーションは開始ページ214とページオフセット216とを含み、開始ページ214はページナンバーを示し、ページオフセット216は、ファイルが始まるそのページの中のバイトのオフセットを示す。不良ブロックのインデックス218は、ファイルに順次アクセスするときに遭遇する第1の不良ブロックのページナンバー220、222、224および226を含む不良ブロックのテーブル124の中のロケーションを示す。従って、あるファイルに対する不良ブロックのインデックス218が、次のファイルに対する不良ブロックのインデックス218と同じである場合には、そのファイルは不良ブロックを全く含まない。
図2を参照して述べられた例示的な状況において、持続性ファイルのセクションは、複数の不良ブロック202、204、206および208と、複数の持続性ファイル210、212とを含む。ロケーションテーブル122は、各持続性ファイル210、212に対する、開始ページ214と、ページオフセット216と、不良ブロックのインデックス218とを含む。不良ブロックのインデックス218は、ファイルが順次アクセスされたときに最初に遭遇する不良ブロックのページナンバーを含む不良ブロックのテーブル124のロケーション220、222、224および226を示す。例えば、第1の不良ブロックのインデックス218は、不良ブロックのテーブル内の第1のロケーション220を示し、列挙されたページナンバーは、「ファイル2」212が読み取られたときに、持続性ファイルのセクション内の第1の不良ブロック202に対応する。不良ブロックのテーブル内の次のロケーション222は、次の不良ブロック204の第1のページのページナンバーを含む。従って、いくつかの不良インデックス218は、単一の不良ブロックのロケーション220を示す。上記のように、現在のファイルが、以前のファイルと同じ不良ブロックのインデックスを有する場合、現在のファイル210は、不良ブロック202、204、206および208を全く含まない。
図3は、本発明の例示的な実施形態に従ってアクセスディレクトリの初期化手順を行う方法の流れ図である。アクセスディレクトリの初期化手順は、電話の画像と持続性ファイルとが最初にロードまたは更新された後で、ポータブルデバイス100の第1の起動シーケンスの間に、プロセッサ116によるファームウェアコードの実行によって行われる。本方法は、持続性ファイルが非XIPフラッシュメモリデバイス102に格納される任意の状況で行われ得るが、例示的な方法はポータブルのセルラー電話の中で行われる。
ステップ302において、電話の画像のセクションは圧縮解除されXIPデバイス106にロードされる。上記のように、例示的な実施形態において、電話の画像のセクション108は非XIPフラッシュメモリデバイス102にロードされたときに圧縮される。従って、電話の画像のセクション108は圧縮解除され、XIPデバイス106にロードされ、その結果、電話の画像のセクション108は、プロセッサ116によって、ファームウェアコード112として実行され得る。例示的な実施形態において、他のファームウェアおよびデータに加えて、ファームウェアコード112はアクセスディレクトリの初期化コードと持続性ファイルのアクセスコードとを含む。以下で述べられるステップ304〜ステップ314は、アクセスディレクトリの初期化を行う例示的な方法を提供する。
ステップ304において、持続性ファイルのセクション220は、非XIPフラッシュメモリデバイス102の中に位置を決められる。上記のように、例示的な実施形態において、持続性ファイルのセクション220は、パッドおよび持続性ファイルのマーカ228によって、電話の画像のセクション108から分離される。持続性ファイルのセクション110は持続性ファイルのマーカ228のすぐ後に置かれるので、持続性ファイルのセクション110は、持続性ファイルのマーカ228を識別することによって位置を決められる。従って、非XIPフラッシュメモリデバイス102は、パッドの端および持続性ファイルのセクション110の予期される開始ロケーションから、持続性ファイルのマーカ228について検索される。それに従って、持続性ファイルのマーカ228は、不良ブロックが存在し得る持続性ファイルのセクション110の明確な識別を提供する。
ステップ306において、持続性ファイルのセクション110は不良ブロックを確認する間に走査される。ブロックの第1のページの中の不良ブロックのインジケータのロケーションが読み取られ、そのブロックが不完全(無効)なブロックであるかどうかを決定する。電話の画像のデータ114内に格納されている情報に基づいて、ファイルのサイズを計算し、ファイルの全てのデータが走査されるまで開始ロケーションからファイルを読み取ることによって、各ファイルは走査される。ファイルが読み取られる間に遭遇するブロックの境界は、そのブロックが不良ブロックであるかどうかを決定するために評価される。
ステップ308において、不良ブロックが見つけられたときに、不良ブロックのテーブルが不良ブロックのロケーションによって更新される。2つ以上のブロックに及ぶファイルの部分は、1つ以上の不良ブロックによって分離され得る。不良ファイルが識別されたときに、アクセスディレクトリ118内の不良ブロックのテーブル124は、不良ブロックのページを列挙することによって更新される。
ステップ310において、現在走査されているファイルに関するファイルの末端が決定される。特定のファイルに対して読み取られたバイト数がファイルの長さと等しいときには、ファイルの末端に到達したということが決定される。
ステップ312において、アクセスディレクトリ118内のファイルのロケーションデータが、次のファイルの開始ロケーションを反映するように更新される。例示的な実施形態において、データは4バイトで並べられ、次のファイルに関するファイルの開始ロケーションは、次に利用可能な全4バイトのセクションである。次のファイルの開始ページとオフセットとはロケーションテーブル122に入力される。
ステップ314において、次のファイルに対する不良ブロックのインデックス218は、アクセスディレクトリ118のロケーションテーブル122内で更新される。上記のように、不良ブロックのインデックス218は、現在のファイルを読み込むときに遭遇する第1の不良ブロックの不良ブロックのテーブル124内のページナンバーのロケーション(220、222、224および226)を示す。ファイルを走査する間に不良ブロックが見つけられなかったときには、現在のファイルの不良ブロックのインデックスは、直前の不良ブロックのインデックスと同じである。
図4は、図3のステップ306〜ステップ314を行う例示的な方法の流れ図である。図4を参照して記述される機能および手順は、図3のステップ306〜ステップ314を実行するために、任意の順序でまたは同時に行われ得る。図4を参照して記述される任意のステップの手順が図3の複数のステップの一部分を行ない得、図3の任意の単一のステップが図4の複数のステップによって行われ得る。従って、図4のステップは、必ずしも、図3のステップに直接的に対応しない。
ステップ402において、カウンタ(N)は「1」に設定される。
ステップ404において、Nが、非XIPフラッシュメモリデバイス102内に格納される持続性ファイルの数以下になるかどうかが決定される。Nがファイルの数を下回るときには、手順はステップ406に続く。そうでなければ、手順は終了することにより中止される。従って、ファイルの数がNを下回るときに手順は終了し、走査するべきファイルがないことを示す。
ステップ406において、ファイルNのサイズが引き出される。電話の画像に含まれるメタデータに基づいて、現在のファイルのサイズが決定される。従って、電話の画像は持続性ファイルのサイズを含む。
ステップ408において、現在のファイルに対する開始ページが設定される。ファイルのサイズに基づいて、開始ページと開始オフセットとが現在のファイルに対して決定される。走査は開始ロケーションで始まる。
ステップ410において、ファイルのサイズが0を上回るかどうかが決定される。ファイルのサイズが0を上回らない場合には、手順はステップ412に続き、ここでNは、ステップ404に戻る前に、1だけ増加される。そうでなければ、手順はステップ414に続く。以下で述べられるように、ファイルのサイズは、ページが走査された後に、ページのサイズだけ減少する。従って、ステップ410において、現在のファイルに対して、さらなるページが走査されるべきかどうかが決定される。
ステップ414において、新たなブロックに到達したかどうかが決定される。例示的な実施形態において、ブロックの中のページナンバーを32で除算すると余りを生じるかどうかに基づいて、ブロックの境界に到達したかどうかが決定される(すなわち、Page%32=0)。ブロック内に32ページあるので、結果はブロックの境界においてのみ0となる。新たなブロックに遭遇しない場合には、手順はステップ420に続く。ブロックの境界に到達した場合には、手順はステップ416に続く。
ステップ416において、ブロックが無効である(すなわち、ブロックが不良ブロックである)かどうかが決定される。ブロックの第1のページと第2のページとに対応する、予備のバイト内の不良ブロックの情報が読み取られる。ブロックが有効なブロックである場合には、手順は420に続く。不良ブロックの情報が、ブロックが無効である(すなわち、ブロックが不良ブロックである)ことを示す場合には、手順はステップ418へと進む。
ステップ418において、ブロック内の残りのページはスキップされ、不良ブロックのテーブルが、不良ブロックのページナンバーを用いて更新される。次に、手順はステップ414に戻る。
ステップ420において、ファイルのサイズがページのサイズを上回るかどうかが決定される。ファイルのサイズがページのサイズを上回る場合には、1つよりも多いデータのページが、ファイルのために残る。ステップ422において、ファイルのサイズはページのサイズだけ減少を示し、手順はステップ410に戻り、ファイルの走査を続ける。ファイルのサイズがページのサイズを上回らない場合には、手順はステップ426に続く。
ステップ426において、ファイルのサイズがページのサイズに等しいかどうかが決定される。ファイルのサイズがページのサイズに等しい場合には、手順はステップ428に続く。そうでなければ、手順は424に続く。
ステップ424において、ロケーションテーブル122は更新され、ファイルのサイズは0に設定される。次のファイルの開始ロケーション214、216は、現在のファイルの末端のロケーションおよび必要とされる任意のアライニングによって決定される。従って、テーブル122におけるページ214およびオフセット216の値は、次のファイルの開始ロケーション反映するように更新される。さらに、不良ブロックのインデックス218は、次の不良ブロックのロケーションを示すように更新される。不良ブロックに遭遇しなかった場合、次の不良ブロックのインデックス218は、現在の不良ブロックのインデックス218と同じである。次に、手順はステップ410に戻る。
ステップ428において、現在のページナンバーは1だけ増加される。従って、ステップ426において、ファイルのサイズがページのサイズに等しいということが決定される場合には、ページナンバーが増加され、手順は430に続く。
ステップ430において、新たなブロックに遭遇したかどうかが決定される。ブロックの境界に到達した場合には、手順はステップ432に続く。そうでなければ、手順はステップ424に続く。
ステップ432において、ブロックが無効であるかどうかが決定される。ブロックが有効であり、不良ブロックではない場合には、手順はステップ424に続く。そうでなければ、手順はステップ434に続き、ここで不良ブロックのテーブル124が更新され、不良ブロック内の残りのページはスキップされる。
図5は、本発明の例示的な実施形態に従った、持続性ファイルにアクセスする方法の流れ図である。本方法は、ファイルが非XIPフラッシュメモリデバイス102に格納される任意の状況において行われ得るが、例示的な方法は、ポータブルのセルラー電話の中で行われる。一部の状況においては、2つ以上のステップが同時に行われ得、ステップの順序が変更され得る。
ステップ502において、非XIPフラッシュメモリデバイス102から読み取られるファイルに関するファイルのロケーションが識別される。例示的な実施形態において、例示的な実施形態において、ファイルのロケーションは、アクセスディレクトリ118から決定される。ファイルの開始ページ214とオフセット216とはアクセスディレクトリ118のロケーションテーブル122から引き出される。
ステップ504において、読み取られるページ数とバイト数とがファイルに対して計算される。読み取られることが要求されているファイルの長さに基づいて、ページ数およびバイト数が計算される。
ステップ506において、不良ブロックのデータが引き出される。アクセスディレクトリ118に格納されている不良ブロックのデータが引き出される。例示的な実施形態において、不良ブロックのデータが、ロケーションテーブル122と不良ブロックのテーブル124とから読み取られる。現在の不良ブロックのインデックスと次の不良ブロックのインデックスとが、アクセスディレクトリ118のロケーションテーブル218から読み取られる。現在の不良ブロックのインデックス218が、次の不良ブロックのインデックス218と同じでないときには、現在のファイルに対応する不良ブロックのページまたは複数のページが不良ブロックのテーブルから読み取られる。
ステップ508において、ファイルは、不良ブロックをスキップすることによって、非XIPフラッシュメモリデバイス102から読み取られる。計算されたページ数およびバイト数が、任意の不良ブロックを確認する間に、非XIPフラッシュメモリデバイス102から読み取られる。ファイルを読み取る例示的な方法は、図6を参照にして以下で述べられる。
図6は、非XIPフラッシュメモリデバイス102から持続性ファイルを読み取る方法の流れ図である。従って、図6を参照して記述される方法は、図5のステップ508を実行する例示的な方法である。図6を参照して記述される機能および手順は、図5のステップ508を実行するために、任意の順序でまたは同時に行われ得る。
ステップ602において、ファイルの第1のページが、非XIPフラッシュメモリデバイス102から読み取られ、読み取るページ数は1だけ減少する。ファイルのオフセットと長さとに従って、ページ全体が読み取られ得るか、またはページの一部分のみが読み取られ得るかのいずれかである。
ステップ604において、読み取るページ数が0であるかどうかが決定される。読み取られるページが残されておらず、ページ数が0である場合には、方法はステップ608に続き、ファイルに関するデータがバッファにコピーされ、手順は完了する。読み取るページがさらにある(すなわち、読み取るページ数が0ではない)場合には、方法はステップ606に続き、ファイルに関するデータがバッファにコピーされる。
ステップ610において、読み取る残りのページが、最後のページを除いて、現在のブロックから読み取られる。
ステップ612において、読み取るページ数が1であるかどうかが決定される。ファイルに対する残りのデータが、1つのページまたはページの一部分を読み取ることを要求する場合には、方法はステップ614に続き、現在のブロックの最後のページが読み取られ、方法は終了する。そうでなければ、方法は616に続く。従って、ファイルに関するデータが、1つよりも多いページを読み取ることを要求する場合には、方法は616に続く。従って、ステップ616で開始する手順の残りは、ブロックの境界が交差されない場合には行われることを必要としない。ファイルの残りが現在のブロックの中にある場合、ファイルは不良ブロックを確認することなく読み取られ得る。
ステップ616において、現在の不良ブロックのインデックス218が、次の不良ブロックのインデックス218と同じであるかどうかが決定される。インデックスが同じである場合には、手順はステップ618に続く。インデックスが同じであるときには、現在のブロック内に不良ブロックは存在せず、ファイルの残りのデータが、ステップ618および614において読み取られる。インデックスが同じではない場合には、方法はステップ620に続く。
ステップ620において、ファイルの残りのデータが、1つのページを読み取ることを要求しているかどうかが決定される。従って、1つよりも多いページが、読み取られるファイルに付属する残りのデータを読み取るために、アクセスされなければならないかどうかが決定される。1つのページまたはページの一部分のみが読み取られる場合には、手順はステップ622に続く。そうでなければ、手順はステップ624に続く。
ステップ622において、不良ブロックに到達した場合には、不良ブロックはスキップされる。ステップ622において、読み取られるデータは1つかそれより少ないページである。しかしながら、読み取られる最後のページが、1つ以上の不良ブロックの後にあり得るということがやはり考えられる。従って、読み取られる最後のページがブロックの境界(すなわち、ブロックの第1のページ)にある場合には、ページに関する不良ブロックの情報は、不良ブロックのテーブル124における不良ブロックのページ220、222、224および226と比較される。ブロックが不良である場合には、次のブロックは、有効なブロックが見つけられるまで確認される。最後のページまたは最後のページの一部分が読み取られ、バッファにコピーされる。
ステップ624において、ページが現在の不良ブロックのページであるかどうかが決定される。ページは不良ブロックのテーブルにおける不良ブロックのページナンバーと比較される。ブロックが無効である場合には、ブロック内の残りのページは、ステップ262においてはスキップされ、手順はステップ620に戻り、読み取る残りのページ数を決定する。ブロックが有効である場合には、手順はステップ628に続く。
ステップ628において、現在のブロック内の最後のページを除いた残りのページが読み取られる。次に、手順はステップ620に戻る。従って、ステップ620、624、626および628は、不良ブロックをスキップする間に、ページを読み取るというよりもループを形成する。単一のページが読み取られるために残っているときに、ループは終了する。
従って、例示的な実施形態に従って、圧縮された電話の画像と、圧縮されていない持続性ファイルとが、ポータブルのセルラー電話または他の電子ポータブルデバイス100のNANDフラッシュメモリデバイス102にロードされるか、または更新される。アクセスディレクトリの初期化手順の間、起動シーケンスの間に、持続性ファイルは不良ブロックに対するブロックの境界を確認する間に走査される。アクセスディレクトリはロケーションテーブル122と不良ブロックテーブル124とを有して作成され、ロケーションテーブル122は、各ファイルに対する開始ページおよびオフセットならびに不良ブロックのインデックスを含む。不良ブロックのテーブル124は、持続性ファイルのセクション110の中の不良ブロックのページナンバー220、222、224および226を含む。ポータブルの電子デバイス100の動作の間、持続性ファイルのセクション110内の不良ブロックを確認するアクセス手順を使用して、持続性ファイルは非XIPフラッシュメモリデバイス102上でアクセスされる。アクセスディレクトリ118において示された不良ブロックは、持続性ファイルのセクションからファイルを読み取る間にスキップされる。ファイルはNANDフラッシュメモリデバイス102から直接的にアクセスされ得るので、XIPメモリデバイス106のサイズとコストとは減少される。
本発明の例示的な実施形態の上の記述から、本発明の範囲を逸脱することなく、本発明の概念を実装するために、様々な技術が使用され得るということが明らかである。さらに、本発明は特定の実施形態を明確に参照して記述されてきたが、本発明の精神および範囲を逸脱することなく、形状および詳細において変更が行われ得るということを、当業者は認識する。記述された例示的な実施形態は、あらゆる点において例示として考えられるべきであり、限定として考えられるべきではない。本発明は、本明細書において記述された特定の例示的な実施形態に限定されないが、本発明の範囲を逸脱することなく、様々な再配置、改変および置換が可能であるということがまた理解されるべきである。
図1は、本発明の例示的な実施形態に従ったポータブル電子デバイスのブロック図である。 図2は、アクセスディレクトリと持続性ファイルのセクションとの間の例示的な関係を例示しているブロック図であり、ファイルのロケーションデータはロケーションのテーブルを含み、不良ブロックデータは不良ブロックのテーブルを含む。 図3は、本発明の例示的な実施形態に従ってアクセスディレクトリの初期化手順を行う方法の流れ図である。 図4は、図3のステップ306〜ステップ314を行う例示的な方法の流れ図である。 図5は、本発明の例示的な実施形態に従った、持続性ファイルにアクセスする方法の流れ図である。 図6は、非XIPフラッシュメモリデバイスから持続性ファイルを読み取る方法の流れ図である。

Claims (10)

  1. 電子デバイス内に格納され持続性ファイルにアクセスする方法であって、該電子デバイスは、不揮発性のnon−execute−in−place(非XIP)フラッシュメモリと、揮発性のexecute−in−place(XIP)メモリと、プロセッサとを含み、
    該方法は、
    該プロセッサが、該不揮発性の非XIPフラッシュメモリ格納された画像ファイルのセクションを揮発性のexecute−in−place(XIP)メモリにコピーすることと、
    該プロセッサが、該不揮発性の非XIPフラッシュメモリ格納されたアクセスディレクトリを揮発性のXIPメモリにコピーすることと、
    該プロセッサが、該揮発性のXIPメモリ内の該コピーされたアクセスディレクトリの中のファイルのロケーションデータを読み取ることにより、該不揮発性の非XIPフラッシュメモリ持続性ファイルのセクションの中の該持続性ファイルに関するファイルのロケーションを決定することと、
    該プロセッサが、該コピーされたアクセスディレクトリ内の不良ブロックのデータによって示される不良ブロックを読み取ることなしに、該ファイルのロケーションからの該不揮発性の非XIPフラッシュメモリら該持続性ファイルを読み取ることと
    を包含する、方法。
  2. 前記読み取ることは、
    前記プロセッサが、前記不揮発性の非XIPフラッシュメモリ現在のページと、前記コピーされたアクセスディレクトリの不良ブロックのテーブルの中の不良ブロックのページナンバーと比較することにより、不良ブロックを識別することと、
    該プロセッサが、該識別された不良ブロックを読み取ることなしに、前記持続性のファイルを読み取ることと
    を包含する、請求項に記載の方法。
  3. 前記読み取ることは、
    前記プロセッサが、前記持続性ファイルのうちの持続性ファイルに対応する現在の不良ブロックのインデックスが、次の持続性ファイルに対応する次の不良ブロックのインデックスと同じであるかどうかを判定することであって、各不良ブロックのインデックスが、該各持続性ファイルが前記不揮発性の非XIPフラッシュメモリら読み取られるときに、該持続性ファイルのうちの各持続性ファイルに対して遭遇する第1の不良ブロックに関する第1の不良ブロックのページナンバーを含む前記不良ブロックのテーブルの中のロケーションを示す、ことと、
    該プロセッサが、該現在の不良ブロックのインデックスが該次の不良ブロックのインデックスと同じ場合には、該持続性ファイルを読み取ること
    を包含し、
    前記コピーされたアクセスディレクトリは、該現在の不良ブロックのインデックスと該次の不良ブロックのインデックスとを含む請求項に記載の方法。
  4. 前記読み取ることは、
    現在のページナンバーが前記持続性ファイルに対応する現在の不良ブロックのページナンバーと同じ場合には、現在のブロックの残りのページをスキップすることを包含する、請求項に記載の方法。
  5. 前記読み取ることは、
    前記現在のページが前記現在の不良ブロックのページナンバーと同じでない場合には、該現在のブロックにおける最後のページを除いて、該現在のブロックの前記残りのページを読み取ることをさらに包含する、請求項に記載の方法。
  6. 前記読み取ることは、
    前記不良ブロックのテーブルを読み取ることによって識別される不良ブロックを読み取ることなしに、前記持続性ファイルの最後のページの中のデータを読み取ることをさらに包含する、請求項に記載の方法。
  7. ータブルデバイスを初期化する方法であって、該ポータブルデバイスは、non−execute−in−place(非XIP)フラッシュメモリと、execute−in−place(XIP)メモリと、プロセッサとを含み、
    該方法は、
    該プロセッサが、該非XIPフラッシュメモリにアクセスすることにより、該非XIPフラッシュメモリ中の持続性ファイルのセクションを位置決めすることと、
    該プロセッサが、複数の圧縮されていない持続性ファイルの各持続性ファイルのページを走査することにより、不良ブロックを確認することと、
    該プロセッサが、該持続性ファイルのセクションの中の不良ブロックのロケーションを示す該アクセスディレクトリの中の不良ブロックの情報を格納することと
    を包含し、
    該非XIPフラッシュメモリは、該持続性ファイルのセクションと、圧縮された画像ファイルのセクションと、アクセスディレクトリとを含み、該持続性ファイルのセクションは、複数の圧縮されていない持続性ファイルを含む、方法。
  8. 前記走査することは、
    前記プロセッサが、前記画像ファイルセクション内の情報を読み取ることにより、前記各持続性ファイルに対する開始ロケーションを決定することと、
    該プロセッサが、該画像ファイルセクション内の情報を読み取ることにより、該各持続性ファイルのサイズを引き出すことと、
    該プロセッサが、該各持続性ファイルを走査する間に新たなブロックに遭遇したときに、該遭遇したブロック内の不良ブロック情報を読み取ることにより、ブロックが有効であるかどうかを判定することであって、該不良ブロック情報は、該遭遇したブロックが無効であるかどうかを示す、こと
    を包含する、請求項に記載の方法。
  9. 前記格納することは、
    前記プロセッサが、前記持続性ファイルの前記開始ロケーションを示すページとオフセットの値とを格納することと、
    該プロセッサが、前記アクセスディレクトリの不良ブロックのテーブルにおける不良ブロックのページナンバーを格納することであって、該格納された不良ブロックのページナンバーは、該プロセッサによって読み取られるときに、前記非XIPフラッシュメモリの不良ブロックのロケーションを示す、ことと
    を包含する、請求項に記載の方法。
  10. 前記プロセッサが、前記各持続性ファイルに対応する不良ブロックのインデックスを前記execute−in−place(XIP)メモリ上に格納することであって、該プロセッサによって読み取られるときに、各不良ブロックのインデックスは、該各持続性ファイルが前記非XIPフラッシュメモリら読み取られるときに、該各持続性のファイルに対して遭遇する第1の不良ブロックに関する第1の不良ブロックのページナンバーを含む前記不良ブロックのテーブルの中のロケーションを示す、こと
    をさらに包含する、請求項に記載の方法。
JP2008521622A 2005-07-15 2006-07-13 Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法 Expired - Fee Related JP4777426B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/182,173 US7454673B2 (en) 2005-07-15 2005-07-15 Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory
US11/182,173 2005-07-15
PCT/US2006/027271 WO2007011677A1 (en) 2005-07-15 2006-07-13 Apparatus, system and method for accessing persistent files in non-execute-in-place flash memory

Publications (2)

Publication Number Publication Date
JP2009500770A JP2009500770A (ja) 2009-01-08
JP4777426B2 true JP4777426B2 (ja) 2011-09-21

Family

ID=37397360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521622A Expired - Fee Related JP4777426B2 (ja) 2005-07-15 2006-07-13 Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法

Country Status (7)

Country Link
US (1) US7454673B2 (ja)
EP (1) EP1905044B1 (ja)
JP (1) JP4777426B2 (ja)
KR (1) KR100975748B1 (ja)
CN (1) CN101208755B (ja)
AT (1) ATE525728T1 (ja)
WO (1) WO2007011677A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US8065563B2 (en) * 2006-03-23 2011-11-22 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US7555678B2 (en) * 2006-03-23 2009-06-30 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US8060685B2 (en) * 2007-07-31 2011-11-15 Hewlett-Packard Development Company, L.P. Electronic device data access system and method
US8635398B2 (en) 2008-12-30 2014-01-21 Micron Technology, Inc. Execute-in-place mode configuration for serial non-volatile memory
KR20100089288A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 휴대용 단말기에서 보안 정보를 관리하기 위한 장치 및 방법
US9442840B2 (en) 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device
US9128824B2 (en) 2012-12-24 2015-09-08 Intel Corporation In-place change between transient and persistent state for data structures on non-volatile memory
US9547489B2 (en) * 2014-03-31 2017-01-17 Qualcomm Incorporated System and method for modifying a sequence of instructions in a read-only memory of a computing device
US10289321B1 (en) * 2017-05-05 2019-05-14 Amazon Technologies, Inc. Bad block table recovery in a solid state drives
CN111179997B (zh) * 2019-12-26 2021-09-14 武汉精鸿电子技术有限公司 一种半导体存储器测试数据的存储方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03167644A (ja) * 1989-10-17 1991-07-19 Sundisk Corp 半導体メモリにおいて欠陥を取り扱うデバイスと方法
JPH04321128A (ja) * 1991-04-01 1992-11-11 Xerox Corp 電子印刷システム内に不良ディスクページを収容する方法
JP2001195892A (ja) * 2000-01-06 2001-07-19 Fujitsu Ltd 不揮発性半導体記憶装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479656A (en) * 1992-05-13 1995-12-26 Rawlings, Iii; Joseph H. Method and system for maximizing data files stored in a random access memory of a computer file system and optimization therefor
JPH11184699A (ja) 1997-11-26 1999-07-09 Internatl Business Mach Corp <Ibm> 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体
US6434695B1 (en) * 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
TWI220469B (en) 2003-03-25 2004-08-21 Icp Electronics Inc Automatic booting system and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03167644A (ja) * 1989-10-17 1991-07-19 Sundisk Corp 半導体メモリにおいて欠陥を取り扱うデバイスと方法
JPH04321128A (ja) * 1991-04-01 1992-11-11 Xerox Corp 電子印刷システム内に不良ディスクページを収容する方法
JP2001195892A (ja) * 2000-01-06 2001-07-19 Fujitsu Ltd 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
JP2009500770A (ja) 2009-01-08
CN101208755A (zh) 2008-06-25
EP1905044B1 (en) 2011-09-21
US20070014136A1 (en) 2007-01-18
US7454673B2 (en) 2008-11-18
KR100975748B1 (ko) 2010-08-12
KR20080024187A (ko) 2008-03-17
WO2007011677A1 (en) 2007-01-25
CN101208755B (zh) 2012-09-19
EP1905044A1 (en) 2008-04-02
ATE525728T1 (de) 2011-10-15
WO2007011677B1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
JP4777426B2 (ja) Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法
KR100844058B1 (ko) 파일 삭제 방법, 파일·오픈 방법, 파일 삭제 프로그램, 및파일·오픈·프로그램
US8392690B2 (en) Management method for reducing utilization rate of random access memory (RAM) used in flash memory
KR101451482B1 (ko) 데이터 이용가능성의 마운트타임 조정
US20060064576A1 (en) Boot systems and methods
US20180225058A1 (en) Write filter with dynamically expandable overlay
US20050278480A1 (en) Method of writing data into flash memory
US20090172252A1 (en) Memory device and method for performing a write-abort-safe firmware update
US20030226006A1 (en) Method and system of locating a firmware image in non-volatile memory
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
JPWO2007026484A6 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
US8423730B2 (en) Method and apparatus for supporting diverse memory access schemes
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
US9003354B2 (en) Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data
KR100977709B1 (ko) 플래시메모리 저장장치 및 그에 따른 관리 방법
US20050149493A1 (en) Data recording apparatus and data recording method
CN113327639B (zh) 一种基于lvgl的固件存储读取方法及装置
US20060230190A1 (en) Method and apparatus for executing application in system having NAND flash memory
EP1785874A2 (en) Information processing device, image pickup device, information processing method and computer program
US20070089023A1 (en) System and method for system resource access
CN110825714A (zh) 文件存储控制方法及其装置、文件存储装置、电子装置
CN111831224B (zh) 一种擦除exFAT分区文件剩余空间的方法,系统及设备
US6886158B2 (en) Componentware creating method and recording medium
CN115599406A (zh) 一种软件烧写方法、装置及计算机可读存储介质
JP2003331586A (ja) データ記憶方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees