JP5378360B2 - メモリページサイズの自動検出 - Google Patents

メモリページサイズの自動検出 Download PDF

Info

Publication number
JP5378360B2
JP5378360B2 JP2010508430A JP2010508430A JP5378360B2 JP 5378360 B2 JP5378360 B2 JP 5378360B2 JP 2010508430 A JP2010508430 A JP 2010508430A JP 2010508430 A JP2010508430 A JP 2010508430A JP 5378360 B2 JP5378360 B2 JP 5378360B2
Authority
JP
Japan
Prior art keywords
memory device
page size
page
determining
memory
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
JP2010508430A
Other languages
English (en)
Other versions
JP2010527484A (ja
Inventor
マッダリ、スリニバス
ベバル、アーシャド
クオ、トム・ト・ウェイ
ヤン、ツン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010527484A publication Critical patent/JP2010527484A/ja
Application granted granted Critical
Publication of JP5378360B2 publication Critical patent/JP5378360B2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storing Facsimile Image Data (AREA)

Description

関連出願の表示
この特許出願は、2007年5月14日に”フラッシュデバイスページサイズの自動検出”の題目で出願された米国仮特許出願番号60/917,901、および2007年10月1日に”メモリページサイズ自動検出”の題目で出願された米国仮特許出願番号60/976,543の利益を要求する。前述の出願の全体は、参照によって本明細書に組込まれる。
実施例の開示は、記憶装置の構成の分野一般に関し、特に、独立して記憶装置の濃度(即ち、記憶容量のサイズ)を決定することをサポートすること可能にするために、自動的に不揮発性記憶装置のページサイズを決定することに関する。
情報処理装置(IPD:Information Processing Device)に電源が投入されると、その装置の様々なハードウェアおよび/またはソフトウェア構成要素を初期化するために、その装置は、まずブートシーケンス(boot sequence)を受け得る。そのブートシーケンスは、別々に編集され得られる複数のコードイメージを含むことができるマルチイメージブートアーキテクチャ(multi-image boot architecture)を有するソフトウェアにより実行され得る。一般に、第一的なブートシーケンスはチップ上の不揮発性メモリに記憶され得、その情報処理装置の製造時に組み込まれ得る。いくつかの場合では、その第一的なブートコードは、チップ上でない不揮発性メモリに記憶されることができる。
電源サイクルの後(完全にオフ状態からオン状態または半オフ状態からオン状態になった場合)、その情報処理装置は第一的なブートコードの実行を開始し得る。第一的なブートコードの実行の一部として、情報処理装置は、その装置のブートアッププロセスにおいて次のステップに用いられる第二的なブートコードまたはイメージをダウンロードし得る。その第二的なブートコードは、チップ上でない不揮発性メモリに存在し得、製品または製品構造に伴って変化し得る。異なった形式の記憶装置は、第二的なブートコードを記憶するものとして用いられ得る、例えば、NANDフラッシュ,oneNANDフラッシュ,m−systemフラッシュ,NORフラッシュ,EEPROM,ROM等がある。その第二的なブートコードイメージをダウンロードするために、情報処理装置は、記憶デバイスにある第二的なブートコードの詳細(デバイスタイプ)、およびそれをどのようにダウンロードするか(そのデバイスにアクセスするためのプロトコル,そのデバイスにアクセスの仕方,そのデバイスにどのようにそのデータが記憶されているのか)を知る必要がある。第一的なブートコードの実行がされている間に、第二的なブートコードのダインロードが発生すると、情報処理装置は、第一的なブートコードそれ自体における情報(第二的なブートコードがそのデバイスに存在するとみなして、第二的なブートコードをどのようにダウンロードするか)を持つ必要がある。その代わりに、情報処理装置は、第一的なブートコードの実行がされている間に、その情報を駆動することができ得る。
一旦その情報処理装置が第一的なブートコードの実行を終了すると、そのデバイスの詳細(第二的なコードを持つこと,そのデバイスにおける第二的なコードの位置(即ち、アドレス),および第二的なコードのアクセスの仕方)を終了する。いくつかの場合において情報処理装置は、チップ上のまたはチップ上でないメモリから第二的なコードをダウンロードし得、その他の場合において情報処理装置は、ただコードの位置およびそのアクセスの仕方を示し得る。第一的なブートコードの実行を終了した後、情報処理装置は、第二的なコードの実行を開始する。第二的なブートイメージが実行される間、情報処理装置は、そのシステムのハードウェア構成のより詳細(システムのタイプ,デバイスの接続,システムの特徴,システムメモリサイズ,幅,位置,システムメモリへアクセスするためのプロトコル,等)そしてまたいくつかのレベルSW構成を示し/学び得る。
上記に示したように、第二的なコードをダウンロードするために、情報処理装置はそのデバイスタイプとそのアクセス方法とを決定する必要がある。第一的なブートの間にアクセスされることが必要な異なったタイプのデバイスがあり得ると、情報処理装置は、メモリデバイスへのアクセスを実現するための3つの一般的なステップを実行し得る:(i)デバイスタイプの検出;(ii)バスインターフェイス幅の検出;(iii)デバイスのページ/セクタサイズの決定(デバイスがページ/セクタに方向付けられたときに)。情報処理装置は、情報処理装置がデバイスにおける第二的なコードをアクセスする前にこれらのステップを終了する必要がある。
従ってより適切な動作のためには、情報処理装置は、この情報処理装置にアクセスされる不揮発性フラッシュメモリデバイスのページ/セクタサイズを示し得る。情報処理装置が、第二的なブートコードが記憶されているデバイスタイプを示したと仮定すると、それはその後においてデータが記憶されているフォーマットを検出することができる。フラッシュデバイスのあるタイプ(即ち:NAND,oneNAND,m−system,superAND,等)は、ページフォーマットにおいてデータを記憶する。デバイスのページサイズはその密度やデバイスのタイプに伴って変化し得る。与えられるフラッシュメモリのページサイズはできるだけ低く、例えば、128バイトや、できるだけ高い8kバイト、またはそれよりも高くに設定される。
フラッシュデバイスの密度が増加するのに伴って、そのページサイズもこれに対応して増加する。様々な技術が、ページサイズやインターフェイスのバス幅を検出するために、情報処理装置により用いられ得る。一つの従来の技術は、情報処理装置の外部ピンより検出されるページサイズおよび/またはバス幅をエンコードすることであり、これらピンにより転送される値はそのデバイスのページサイズおよび/またはバス幅を示すことができる。このアプローチはシンプルである;しかしながら、異なったページサイズの全てをサポートするために要求される検出ピンの数が増大する。
その他の解決手段は、ページサイズとバス幅との情報をフラッシュデバイスの第一のページに記憶することである、そしてハードウェア論理は、第一的なブート実行の間(情報処理装置はそのハードウェアにこの機能を実行させることもなく、そのハードウェハ論理は自動的にその第一のページを検出し読み出すこともない)フラッシュデバイスからその第一のページを読み出すことができる。この解決手段は、第一のページを読み出す間に発生する可能性があるランダムエラーに対して何の防御手段も持ち得ない。フラッシュデバイスはランダムエラーが発生する傾向があり、もし第一のページにありフラッシュメモリまたは情報処理装置間の破壊されたデータがフラッシュメモリからそのデータが読み出されると、情報処理装置が非常に間違った結果のページサイズを検出するという可能性がある。エラー防御は、従来的にページとしてのこのストレージに加えることができず、データフォーマットはブートアップ時において情報処理装置側で知ることができない。
読み出しエラーに対する防御を改善するために、ページサイズおよびバス幅は、マジックナンバーとして知られ、ランダムエラーに対する防御を与える、唯一のナンバーにエンコードされる。情報処理装置は、第一のページに記憶されるマジックナンバーに続きページサイズを検出し、その後ページサイズに基づき第二的なブートコードにアクセスする。この第二的なブートコード/イメージを含むことは、それぞれのフラッシュデバイス(ページおよびバス幅のサイズ)にとって、必要不可欠なものである。フラッシュメモリデバイスの様々なタイプの数が拡大し続けるにつれて、様々なフラッシュデバイスに対応して別々のソフトウェアを構築することを発展させ,管理し,含むことのコストが増大している。
従って、新たなページサイズを自動的に検出するアプローチのために、発展および含むためのコストを低減するための共通のソフトウェアを活用してフラッシュデバイスをサポートし得る必要がある。
以下に開示する例示的な実施例は、メモリページサイズの自動検出のための装置およびその方法に係るものである。
本発明の実施例は、メモリデバイスのページサイズの自動検出のための方法を含み、その方法は:メモリデバイスのページサイズ範囲を受け;上記メモリデバイスのバス幅を決定し;自動決定マーカーを有するページの数を決定し;上記検出されたページサイズの範囲と受けた上記自動検出マーカーを有するページ数とに基づいて上記メモリデバイスのページサイズを決定すること、を具備し得る。
その他の本発明の実施例は、メモリデバイスのページサイズの自動検出のための装置を含み、その装置は:メモリデバイスのページサイズ範囲を受けるように構成されるロジック;上記メモリデバイスのバス幅を決定するように構成されるロジック;自動決定マーカーを有するページの数を決定するように構成されるロジック;上記自動的に検出されるマーカーおよび上記受信したページサイズ範囲を持って決定されるページの数に基づいて上記メモリデバイスのページサイズを決定するように構成されるロジック、を具備し得る。
さらにその他の本発明の実施例は、メモリデバイスのページサイズの自動検出のための装置を含み、その装置は:メモリデバイスのページサイズ範囲を受ける手段;上記メモリデバイスのバス幅を決定する手段;自動決定マーカーを有するページの数を決定する手段;上記自動的に検出されるマーカーおよび上記受信したページサイズ範囲を持って決定されるページの数に基づいて上記メモリデバイスのページサイズを決定する手段、を具備し得る。
添付の図面は開示の実施例の記載の理解の助けのために表されたものであり、実施例の一例の図面として示されるものであり、これに限定されるものではない。
図1は、プロセッサ,メモリコントローラ,および様々な異なったタイプのメモリデバイスを含む情報処理装置のブロック図である。 図2Aは、メモリデバイスのバス幅を決定するために用いられることができ、そのメモリデバイスに格納される例示的な第1ページを示す図である。 図2Bは、例示的な第1ページにあるデータが、どのように8ビットバス幅および16ビットバス幅を有するメモリデバイスから読み出されるかを示す図である。 図3は、メモリデバイスのバス幅およびページサイズを決定するために用いられる例示的なデータ構造を示す図である。 図4は、メモリデバイス内に含まれる図3に示される例示的なデータ構造が、どのように異なったページサイズを有するのかを示す図。 図5は、フラッシュデバイスのページサイズを決定するための例示的なプロセスを描写するフローチャートである。 図6は、自動的に決定されるマーカーの数を含むその他例示的なプロセスを示す図である。 図7は、メモリデバイスと結びついたパラメータを決定するための例示的なプロセスを描写するフローチャートである。 図8は、フラッシュデバイスにおけるデータ構成機構を描写する図である。
本発明の一例は、以下の図面および本発明の具体的な実施例に関する図面において開示される。置換可能な実施例は、本発明の範囲を超えることなく創作し得る。加えて、本発明に係る良く知られた要件は、詳細に記載せず、または本発明の関連する詳細を不明確にしないように省略される。
ここで、”見本的に(exemplary)”の語は、ここでは”例示、事例、又は実例として働く”という意味に用いられる。”見本的に(exemplary)”本明細書において記述されたいずれの実施例又は図面も、必ずしも、望ましいもの、他の実施例又はデザインよりも効果的なものと考慮されるべきではない。同様に、”本発明の実施例(embodiments of the invention)”の語は、本発明の全ての実施例が含む議論に関する特徴,効果,または動作モードに限定されない。”マジックナンバー(magic numbers)”の語は、ここでは、最小限度のアルゴリズムに基づいて決定される数により定義されるように用いられ、様々な実施例におけるメモリ読み出しエラーと関係ないように用いられる。”外部メモリ(external memory)”の語は、ここでは、処理装置の領域以内に配置されないメモリデバイスの意味に用いられ、それは換言すると処理装置と同じダイ上に形成されていないメモリデバイスを意味する。”内部メモリ(internal memory)”の語は、ここでは処理装置と同じダイ上に形成されるメモリデバイスの意味に用いられる。
さらに、多数の実施例は、例えば、コンピュータデバイスの構成により実行される、シーケンスの表現として記述される。ここで記述される種々の動作は、特定の回路(即ち、特定用途向け集積回路(ASICs)),単一または複数のプロセッサにより実行されるプログラム命令,またはこれらの組み合わせ、により実施可能であることが認められる。加えて、ここで記述される動作のシーケンスは、対応するプロセッサにここで記述する機能性を実行させる1セットのコンピュータ命令に対応するように記憶されるどのような形のコンピュータ読取記憶媒体の内だけで実施可能であるものと認められる。従って、本発明の種々の側面は、異なった形式において実施可能であり、これらの全ては請求の趣旨の範囲内に含まれる。加えて、ここでは実施例のそれぞれを記述するために、どのような実施形態に対応する形式も記述されている、例えば、”するように構成されるロジック(回路)(logic configured to)”は記述される動作を実行する。
図1は、プロセッサユニット110,メモリコントローラ120,外部メモリ130を含み得る情報処理装置(IPD:Information Processing Device)100のブロック図である。外部メモリ130は、さまざまな異なったタイプの外部メモリを含み得る,それはNANDフラッシュメモリ132,OneNANDフラッシュメモリ134,および/またはその他の知られたタイプのメモリデバイス136(例えば、m−systemフラッシュ,NORフラッシュメモリ,EEPROM,ROM,SDRAM,等のような)。メモリコントローラ120は、上述のようなメモリデバイスの異なったタイプのインターフェイスを持った複数のメモリデバイスのコントローラの組み合わせで構成し得る。ブートシーケンスが終了した後の通常動作の間、プロセッサユニット110は、メモリコントローラ120を介して、外部メモリデバイス130との間で読み出しおよび/または書込みデータのやり取りを行い得る。ブートシーケンスが終了した後のこのような通信は、一般的な方法において発生され得る。
情報処理装置100は、例えば、画像,ビデオ,音響,CDMA,および/またはGSM/GPRSプロセッサ;I/Oインターフェイス;等の図1に図示しないその他のデバイスを更に含み得る。情報処理装置100は、ポータブルおよび/またはラップトップコンピュータ,パーソナルデジタルアシスタント(PDAs)として用いられる組み込みシステム、および/または移動通信デバイスコンピュータベースシステムのようなどのようなタイプの一部でも良い。例えば、移動通信デバイスは、移動通信システムにおいて用いられるための携帯電話でも良いし、情報処理装置100は、携帯電話内に用いられる移動基地モデム(MSM(登録商標))でも良い。プロセッサは、例えば、ARM9ファミリーからのプロセッサ等のようなマイクロプロセッサおよび/またはマイクロコンローラのどのようなタイプでも良い。メモリコンローラは、単一または複数のバスインターフェイス、および/またはマルチメモリコントローラ異なった様々なメモリタイプのためのマルチメモリコントローラを含み得る。この実施例に係る図1に示すように、情報処理装置100は、NAND132,OneNANDフラッシュメモリ134,および/またはその他のタイプのメモリ136(即ち、m−systemフラッシュ,NORフラッシュメモリ,等)のインターフェイスを有し得る。
情報処理装置100に電源が投入されるかまたは電源サイクルが行われると、プロセッサユニット110は、その種々のハードウェアおよび/またはソフトウェアを初期化するためのコールドブートシーケンスを実行する。そのブートシーケンスが行われたソフトウェア/ファームウェアは複数の別々に応じたルーチンを含む得、それぞれのルーチンはブートシーケンスにおいて異なった機能を実行する。ブートシーケンスにおける最初のルーチンは第一的なブートローダー(PBL:primary boot loader)であって、それは情報処理装置100を、不揮発性の外部メモリデバイス130からのコードをアクセスしまたは/およびダウンロードするようにセットアップさせる。セットアップされた情報処理装置100は、識別マーカーを含み得る。PBLは、MSM(登録商標)における様々なチップセットのためのチップ上のブートROMに格納され得る。PBLは、プロセッサユニット110がリセットから開放される時に、方向づけられ得る。コールドブートの間にプロセッサユニット110により実行されると、PBLはハードウェアの情報処理装置100を初期化し,プロセッサユニット110内の内部RAMまたは外部RAMを初期化し,不揮発性外部メモリデバイス130を検出し,不揮発性外部メモリから構成データをロードし入力し,サブシーケンスブートルーチンをロードする。
一実施例において、PBL100は、NANDフラッシュメモリ132,OneNANDフラッシュメモリ134,および/またはNORフラッシュメモリ(図示せず)を含む不揮発性外部メモリ130において構成情報として用いられるメモリインターフェイスを構成する。メモリコントローラ120は、NANDデバイスおよびOneNANDデバイスを含む種々のメモリデバイスが有する異なるインターフェイスデータをサポートすることが可能である。外部メモリデバイス130においてどのようなデータに対しても対応するために、メモリコントローラ120は外部メモリデバイスのタイプおよびそのアクセスの仕方を認識する必要がある。情報処理装置100は、使用される不揮発性メモリデバイスのタイプ,そのデバイスにあるデータにアクセスするためのプロトコル、およびデバイスのインターフェイスのバス幅を認識し得る。例えば、もし外部不揮発性メモリがNORフラッシュメモリである場合、情報処理装置100は、NORフラッシュメモリのサイズ(NORフラッシュメモリにアクセスするために必要とされるアドレスの数を検出するため),インターフェイスのデータバス幅,およびデバイスにあるデータのアクセスの仕方について知る必要がある。NAND,oneNAND,m−system,およびsuperANDフラッシュデバイスについても、情報処理装置100は、ページ/セクタサイズ,ブロックサイズ,インターフェイスのバス幅,およびデータにアクセスするためのプロトコルについて知る必要がある。このことは、外部メモリデバイス130のページサイズおよびバス幅を検出することにより達成し得る。一旦これが行われると、メモリコントローラ120は適切に構成されるため、プロセッサ110を外部メモリデバイス130のどのようなページに対してもアドレスさせることができる。開示の様々な実施例は、情報処理装置100が130に接続されるフラッシュデバイスに適切にアクセスするようにメモリコントローラ120を構成し得るように、フラッシュデバイスに基づくページ/セクタのページ/セクタサイズの検出を実行し得る。このことは、接続されるフラッシュサイズ(即ち、ページサイズ,ブロックサイズ,およびインターフェイス幅)のために、実行され得る。
アクセスプロトコルは、ページサイズ512バイト以下であるか512バイト以上であるかのように、NANDおよびsuperANDデバイスにおいて相違し得る。NANDフラッシュデバイスにアクセスするために、情報処理装置100は、それがそのデバイスにアクセスするためのプロトコルを訂正することを使用できるように、そのデバイスのページサイズが512バイト以上であるか否かを知る必要がある。このステップは、もし情報処理装置100がサポートする必要があるNAND/superNANDフラッシュデバイスのページサイズが512バイトよりも大きい場合だけであるときには、省略することができる。情報処理装置100が訂正的にデータにアクセスすることができるように、インターフェイスバス幅(8−ビット/16−ビット,またはこれ以上)を検出することも、同様に、実行し得る。もし情報処理装置100がフラッシュデバイスのバス幅の固定値だけをサポートする必要がある場合には、このステップも省略することができる。NANDフラッシュデバイスサイズの検出のためのアプローチの一例、512バイト以上であることおよびインターフェイスバス幅を検出することは、2005年9月20日に出願された米国特許出願11/231,389号に開示され、米国特許公報2007/0067529号として発行されたものの全体に組み込まれている。この詳細は、簡単には下記のように記載される通りである。
ハードウェアページサイズ検出
この発明の様々な実施例は、ハードウェアへのアプローチに基づいて、外部メモリ130のページサイズを評価することを含み得る。このアプローチは、ページサイズがより小さいページサイズ(512バイトより小さいか)であるか、より大きいか、同じであるか、より大きいページサイズ(512バイトより大きいか)であるかを検出することができる。ハードウェアページサイズ検出は、メモリコントローラ120により実行され得、これは、外部メモリ130にある初期化コマンドを読み出すことを第一的に実行することに実行され得る。その後、メモリコントローラ120は、ビジィ(BSY)信号をチェックすることによりメモリデバイス130が読み出しコマンドを実行しているか否かを検出し得る。もしメモリデバイス130がビジィである場合、メモリデバイスはより小さいページサイズを有する。一方、もしメモリデバイス130がビジィでない場合、メモリデバイスはより大きなページサイズを有する。この振る舞いは、大きなページサイズのデバイスが読み出し動作のために2つの読み出しコマンド(読み出し初期化コマンドおよび読み出し開始コマンド)を必要であって、より小さいページサイズを有するメモリデバイスが信号コマンドまたはオプコード(読み出し初期化コマンド)を読み出すために反応することができるために、発生する。ビジィ状態に移行するまでに、大きなページサイズのデバイスは、読み出し開始コマンドが発行されるまで、その読み出し開始コマンドを待つ。メモリコントローラ120は、その相違を検出し、および接続されるNAND/superANDフラッシュデバイスが大きなページであるか否かを判定する。
ハードウェアページサイズ検出の一例は、以下のようなNAND型フラッシュメモリの情報に示される。外部メモリデバイス130がNAND型フラッシュメモリ132である場合、より小さなページサイズは512バイトかそれよりも小さく、より大きなページサイズは512バイトよりも大きい(即ち、2Kバイトかそれよりも大きい)。
512バイトのページを有するNANDメモリは、次の一般的な読み出しコマンドシーケンスを用いる:
・読み出し初期化コマンド(1サイクルコマンド);および
・データ/ページアドレスコマンド(3,4,5,またはこれ以上のサイクル)(もしこれ以上のアドレスサイクルがデバイスにより発行されると、デバイスはまず始めに要求されるアドレスを受け取り、過去のアドレスサイクルを無視する)
ある期間の内でアドレスサイクルが発行される後でマイクロ秒後しかなかったとしても、デバイスは、それがリードコマンドを実行するためのビジィ信号を主張することによりビジィ状態に移行する。もしデバイスがビジィ信号による反応を示すなら、それはより小さなページ(512バイトより小さい)のデバイスである。
512バイトよりも大きな(即ち、2Kバイトページサイズよりも大きな)NANDメモリは、アドレスサイクルの後、ビジィ状態に移行することはない。これらのデバイスは、第2読み出しコマンド、またはビジィ状態に移行するためのオプコードを必要とする。さらに、これらのデバイスの読み出しコマンドシーケンスは:
・読み出し初期化コマンド(1サイクルコマンド);
・データ/ページアドレスコマンド(3,4,5,またはこれ以上のサイクル)(もしこれ以上のアドレスサイクルがデバイスにより発行されると、デバイスはまず始めに要求されるアドレスを受け取り、過去のアドレスサイクルを無視する);および
・読み出し開始コマンド(1サイクルコマンド)、である。
ある期間の内でアドレスサイクルが発行される後でマイクロ秒後しかなかったとしても、デバイスは、それがリードコマンドを実行するためのビジィ信号を主張することによりビジィ状態に移行する。
メモリコントローラ120は、NAND/superANDデバイスページサイズを検出するために、上記の機構を使用し得る。コントローラはステートマシン内で次のようなプロセスを実行し得る:1)デバイスをリセットする;2)読み出しコマンドを発行する;3)アドレスサイクルを発行する;4)わずかマイクロ秒以下の時間の間待機する;5)デバイスがビジィ状態に移行しているか否かの決定をチェックし、そしてもしビジィ状態に移行した場合には、デバイスは512バイトまたはそれより小さなページサイズを有する;6)もしデバイスがビジィ状態に移行していない場合には、スタートコマンドを発行する;7)わずかマイクロ秒以下の時間の間待機する;8)デバイスがビジィ状態に移行しているか否かの決定をチェックし、そしてもしビジィ状態に移行した場合には、デバイスは512バイトより大きな(即ち、2Kバイトより大きな)ページサイズを有する。
ページサイズの検出の後、メモリコントローラ120はすぐに、8−ビットモードにおいて(例えば、接続されるデバイスが16−ビットかそれよりも大きい場合であっても、コントローラはデバイスから8−ビット以下のデータを用いる)読み出しデータ転送を行い得る。フラッシュデバイスからのデータ読み出しは、バスサイズおよびフラッシュのあらゆる他のパラメータの検出に用いることができる。バス幅の検出は、以下のさらに細かく説明される。上述したように、第1ページにおけるデータは、ランダムエラーの確立を低減させるための固有の数のフォーマット(即ち、マジックナンバー)において記憶される。マジックナンバーは、たとえエラー結果の数が他のマジックナンバーでないような場合であっても、選択される。情報処理装置は、そのようなランダムエラーを、あたかも実行されるマジックナンバーを認識しているかのように検出し、もしデータが第1ページ(ページサイズ検出によりデータ転送された)において訂正されない場合には、第一的なブートローダー(PBL)はそのデバイス(そのデバイスの異なった位置における冗長ページ)から他のページを読み出すことができる。ページサイズ検出なしに、第一的なブートローダーは、更に進行することができず、エラー状態が発生したことを報告する。
ハードウェアページサイズ検出は、外部メモリデバイス130のページサイズが小さい(即ち、512バイトかそれよりも小さいか)か,大きいか,それ以上のページサイズか(即ち、2Kバイトかそれよりも大きいか)どうかを判断することができるだけである点で、制限される。実施例は、ここでは、ソフトウェアによるページサイズ検出技術を活用する場合を説明するが、これはこの問題を解決するためのハードウェアにおけるアプローチとの組み合わせにおいても適用可能である。
バス幅検出
図2Aは、バス幅を決定するために用いることができ、メモリデバイスに格納されるデータ構造の一例の図である。外部メモリの様々なタイプは異なったワードサイズを活用するため、バス幅は、第一的なブートローダーにおけるブートシーケンスの間に、決定される必要がある。バス幅は、メモリデバイス130上のデータ構造において記憶されるデータを用いて、決定されても良い。この決定は、与えられるバス幅を用いて読み出した後、コードワードをチェックすることにより実行される。用いられる狭いバス幅を読み出したとき、第1コードワードはそのままで返信される。しかしながら、広いバス幅が用いられるときには、そのコードは、変更され得る(例えば、図2Bにおいて示すように、第1コードワードは、第2コードワードに交換配置され得る)。生成されたリードコマンドの数がいくつであるのかをチェックすることにより、メモリデバイス130のバス幅が決定され得る。
さらに、図2Aに示すように、データ構造は、一つまたはそれ以上のコードワード210,220を含み得る。コードワードは、外部メモリ130の第1ブロック内の第1ページ200の第1の8バイトにおいて書き込まれ得る。コードワード210は、8_ビット_マジックナンバー(8_bit_MagicNumber)として記述され、コードワード220は、参照マジックナンバー(Config Magic Number)として記述される。ページの残りは、全てのページ(0xFF)を含む。エラー訂正符号(ECC)はこのプロセスの間実行することができないので、そのコードワードは、特にエラー読み出しを最小化するために、数を選択され得る。それらとして用いられる数のあるクラスは、最小の重さのアルゴリズムとして用いられるように生成される。これらの数は”マジックナンバー”として知られ、エラー読み出し訂正を低減することができる。エラー読み出しを回避することができるその他の数も用いられる。
外部デバイス130としてNANDおよび/またはOneNANDデバイスを挙げるこの発明の実施例において、以下の例を挙げて説明する。現状のOneNANDフラッシュデバイスは、16ビットが利用できるだけであり、メモリコントローラ120は、OneNANDデバイスのインターフェイスの設定により16ビットに設定されている。この実施例において開示された技術は、必要な場合にはOneNANDデバイスのページサイズの検出として適用することが可能である。しかしながら、メモリコントローラは、初期設定の間では8ビットに設定されている。フラッシュデバイスのバス幅が8または16ビットまたはそれ以上であるかを検出するために、マジックナンバーとして記述される8バイトの固有のナンバーが、参照データを含むページのまず始めに配置される。図2Aに示すように、始めの4バイトデータ構造210(8_bit_MagicNumber)はマジックナンバー0x83838383を包含し、次の4バイトデータ構造220(参照マジックナンバー)はマジックナンバー0x73D71034を包含し、一方でページ残りはデータ0XFFを包含する。(上述した)ハードウェアページサイズ方法の間、ソフトウェアは、参照データ中のブロック0のページ0から読み出したデータの4バイトを読み出すように、コンローラ120を実行させる。データのその4バイトが読み出されると、ECCエンジンは無効とされる。マジックナンバー(最小の重さのアルゴリズムとして使用される)は、データが読み出されるときに選択され、そのエラーは相関関係がない。
図2Bは、データ構造200にあるデータが、どのように8ビットバス幅および16ビットバス幅を有するメモリデバイスから読み出されるかを示す図である。データ読み出しされた4バイトが異なったデバイス幅のデバイスのために異なったものであるために、読み出し動作の後、受け取られたそのデータは、メモリデバイス130のバス幅を決定するものとして用いられ得る。デバイスが8−ビットバス幅として用いるための第1の4バイトを読み出したとき、第1コードワードは変更されることなく読み出される。しかしながら、デバイスが16ビットバス幅を有するときには、読み出しコマンドは配置転換される。
さらに特には、8−ビットフラッシュデバイスのために、オリジナルの8_ビット_マジックナンバーの値0x83838383は返信される必要がある。16−ビットフラッシュデバイスのために、そのフラッシュメモリは、読み出し動作の間、16ビットの値を返信する必要がある。この交換配置は、メモリコントローラ130が8−ビット幅バスを有するように設定されるため、最小の有用な8ビットを読み出すだけおよび最大の有用な8ビットを無視するように、16−ビットデバイスにおいて発生する。従って、コントローラは、0x73D71034の配置変換された値を読み出す。返信されたデータに基づいて、情報処理装置は、バスインターフェイス幅を検出する。この実施例で与えられる例においては8−ビットおよび16−ビットだけについて開示したが、同様な技術は、より多ビット幅を有するインターフェイスについても適用可能である。
ソフトウェアページサイズ検出
図3は、メモリデバイス130のバス幅およびページサイズの決定に用いられるメモリデバイス内のデータ構造300の一例を示す図である。自動的なページサイズの決定を実行するために、メモリデバイス130は、メモリデバイス130のページサイズを決定するために加えられる”ダミーデータ”のセクションを有する。それぞれのセクション305は、ダミーデータをセクションの残りを持って、3つのコードワード310〜130を含み得る。ダミーデータは、フラッシュデバイスが製造された後に、全てが”1”のデータまたは初期状態のデータとして設定される。その状態は、データとして記憶されるだけの3つマジックナンバー(8_BIT_MagicNumber, Config Magic Number, Auto Detection Magic Number)がエラー訂正を行うことができるようにその値であることを認識される必要がある。コードワード310、320は、上述のように、バス幅を決定するために用いられる。第3コードワードは、メモリデバイス130のページサイズを決定するためにアルゴリズムを用いることにより、自動的に検出製造される。その上、図3は、4バイトとしてのコードワードのページサイズの一例を示している。様々な実施例において、コードワードのそれぞれは読み出しエラーを最小化するためにマジックナンバーとされ得る。アルゴリズムの詳細は、以下の図5の説明において説明する。
第一的なブートローダー100によりエンコードされるページサイズの内容は、情報処理装置の製造時において固定される最大(MAX)および最小(MIN)許容ページサイズとして表されるものとして認識され、いくつかの場合のおいてこれらのナンバーは情報処理装置が製造後にプログラム可能であるが、顧客に送られた後において固定化される。MAXおよびMIN許容ページサイズは、加えられることが必要なセクションのナンバーを決定するようにサポートされる。セクションのナンバーは、次のように表される:
セクションのナンバー= (MAX PAGE SIZE / MIN PAGE SIZE)
本発明の実施例において、それぞれのセクション305の第1の12バイトは、図3に示すように、マジックナンバーとして記号化される。セクション305の第1の8バイトは、8_Bit_Magic number 310 および Config Magic Number 320を包含し、バス幅検出も上述したものと同様である。マジックナンバーの他の4バイトは自動検出マジックナンバーであり、第1の8バイトの後に配置される。ページサイズ検出ソフトウェア方法は、自動検出マジックナンバーを、以下に説明するアルゴリズムを用いてページサイズをドライブさせるために、チェックするものである。
図4は、メモリデバイス内に含まれる図3に示される例示的なデータ構造が、どのように異なったページサイズを有するのかを示す図である。メモリデバイス130のページサイズが変化すると、それぞれのページに記憶されるセクションのナンバーも変化する。全てのページに適切なページのナンバー(ページ数)(Number of pages)は、適用されるページサイズの次の式を用いて決定され得る:
ページのナンバー = (Number of sections) * (MIN Page Size)
(Device Page Size)
ナンバーの一例は、異なるページサイズのために与えられる。それぞれの例は、図4に示されるように、データ構造は、3つのページサイズ,512Kバイト(410),2Kバイト(420),4Kバイト(430)と結びついて示される。数値の例は、次のように示される。
MAXページサイズ=4Kバイト,MINページサイズ=512バイト,セクションのナンバーは8として与えられる。これは、全ての8セクションが合致するためにページのナンバーを示される:
512バイトページサイズのための8ページ(デバイスのページサイズは51 2バイトであるので、データの512バイトの8セクションが合致するために8 ページが必要である);
2Kバイトページサイズのための2ページ(デバイスのページサイズは2Kバ イトであるので、データ(ページあたり4512バイト)の512バイトの8セ クションが合致するために2ページが必要である);さらに、
4Kバイトページサイズメモリデバイスのための1ページ(データの512バ イトの8セクションは4Kバイトページデバイスのためのシングルページにおい て)
以下の図5に示すように、ページサイズのナンバーは、プロセッサユニット110により自動検出マーカー(図4において、”自動検出ナンバー”として示されている)をカウントすることにより直接的に決定される。
図5は、フラッシュデバイスのページサイズを決定するための例示的なプロセス500を描写するフローチャートである。このプロセスは、メモリデバイス130をサポートするためのページサイズの範囲を決定する(即ち、MIN値およびMAX値を決定する)ことにより、開始する。MIN値およびMAX値は前もって与えられ得る値である。続いて、マークされるセクションのナンバーは、MAXからMINページサイズの値を取得することにより決定される(ブロック510)。続いて、ハードウェアページサイズ検出は、メモリコントローラ120が、メモリデバイス130が512バイトよりも大きいページサイズを有するか否かを決定することにより、実行される(ブロック520)。続いて、メモリデバイス130のバス幅は、プロセッサユニット110により検出される(ブロック530)。続いて、プロセッサユニット110は、自動検出マーカーを有するページのナンバーを検出する。プロセッサユニット110は、自動検出マーカーを有するページのナンバーを検出するために、読み出し動作のシーケンスを実行する(ブロック540)。続いて、プロセッサユニット110は、マークされた自動検出を有する読み出しページのナンバーに基づき、メモリデバイス130のページサイズを計算する(ブロック550)。ここでは、情報処理装置100がNANDフラッシュデバイスにアクセスする際には、ハードウェアページサイズ検出は、ページサイズが512バイトよりも大きいか否かおよびデバイスに読み出しコマンドを発行する情報としてこれを用いることを検出することとして用いる点に留意すべきである。
メモリデバイス130にあるデータはページに格納されているため、メモリコントローラ120からメモリデバイス130へアクセスすることは、全体のページにアクセスする結果となる。その結果、メモリデバイス130と関連する書込みまたは読み出しは、単位で行われる。大きなページサイズを有するメモリデバイス130は、より大きなセクション305のナンバーを格納することができるので、メモリデバイス130からデータを読み出すメモリコントローラ120は、マジックナンバーを包含するいくつかのページを読み出す。もしメモリデバイス130の第1の2つページがマークされる訂正自動検出(即ち、マジックナンバー)としてマークされると、その後にプロセッサユニット110は、下記に示す式(512 * 8/2 = 2 K)で用いられる2Kページサイズを有するデバイスであるということを結論づける。もしマークされた自動検出が第1ページにだけには表されているが、第2ページにはない場合、デバイスは、下記に示す式(512 * 8/1 = 2 K)に基づき、4Kバイト以上のページサイズを有することを結論づける。
デバイスのページサイズ(Device Page Size)は、下記の式を用いて発見することができる:
デバイスのページサイズ = (Min Page Size) * (No of Sections Marked)
No of Pages Read
一旦、メモリデバイスのページサイズおよびバス幅が決定されると、メモリコントローラ120は、訂正された設定で構成される。
図6は、メモリデバイスと関連するパラメータを決定するためのその他例示的なプロセス600を示すフローチャートである。まずはじめに、最大(MAX)ページサイズおよび最小(MIN)ページサイズが、典型的な事前に定義される値として取得される(ブロック615)。続いて、自動的なページ決定マーカーとしてマークされたセクション数が計算される(ブロック620)。続いて、必要な場合に、ハードウェアページサイズ決定が、ページサイズが512バイトよりも大きいか否かを決定するように実行され(ブロック625)。必要でない場合には、このステップは、省略することも可能である。
続いて、ブロック630が、次のアクションを実行する:マジックナンバーとしてマークされた最大ページを、マークされた最大ページ(MAX pages marked)としてセットする;マジックナンバーのためのバイトロケーションを、8にセットする;そして、ポインタロケーションをデバイスからの記憶データにセットする。続いて、マジックナンバーとしてマークされるページ数を決定するファンクションコール(この詳細は、図7において示され関連して説明される)がコールされる。(ブロック635)。続いて、ファンクションコールは、自動検出マジックナンバーを有するページ読み出しのナンバーを、返信する。続いて、条件文は、ファンクションコールにより返信されるページ数がゼロか否かをチェックすることを実行する(ブロック640)。続いて、だから、もし読み出されたデータ構成としてのページ数がゼロ(0)にセットされた場合(ブロック645)、プロセスは元に戻る。もしブロック645においてマークされたページ数がゼロでない場合、デバイスページサイズが計算され(ブロック650)、そしてその後プロセスは繰り返される。
図7は、メモリデバイスと結びついたパラメータをカウントするための例示的なプロセスを描写するフローチャートである。まずはじめに、次のパラメータが取得される:マジックナンバーとして検出される最大ページ、マジックナンバーのためのバイトロケーション(この値を”x”としてセット(例えば、そのロケーションは8として示される))、データを記憶するポンタロケーションがデバイスから読み出される(ブロック715)。続いて、読み出されたページ数が、0に初期化される(ブロック720)。続いて、条件文は、読み出されたページ数がマジックナンバーとしてマークされた最大ページ以下であるか否かを判断するために、実行する(ブロック725)。続いて、もそうであればページが読み出され(ブロック730)、続いて他の条件文は、読み出しページのバイト”x”がコードワードとしてマークされたものであるか否かをチェックするように実行する(ブロック735)。続いて、もそうであれば、ページカウンタがインクリメントされ(ブロック755)、プロセスはブロック725に戻って繰り返される。もしブロック735における条件がNoである場合、読み出されたページ数がマジックナンバーとしてマークされた最大ページ以下であるか否かという他の条件によるチェック実行される(ブロック740)。もし、ブロック740における実行された条件がYesの場合、プロセス700は、読み出しページ数を繰り返す(ブロック750);そしてもし、ブロック740における実行された条件がNoの場合、誤り制御ハンドラーが呼び出される。また、その誤りハンドラーは、ブロック725において実行された条件がNoの場合であっても、呼び出される。
メモリコントローラ120は、ブロック735におけるマジックナンバーのためのバイトxをチェックする前に、ブロック730における読み出しデータにおいてエラー訂正を実行し得る。メモリコントローラ120は、エラー訂正をチェックの間、データを全体的にチェックする。エラー訂正のチェックの結果は、次のことを含む。コントローラはデバイスからの読み出しデータに傷がないかおよびエラーがないとして検出されたかを検出する。この場合、プロセスは正しく続けられる。その代わりに、コントローラ120は、検出がされたエラー数が、エラー訂正可能な数の最大よりも小さいか否かを(ECCアルゴリズムに基づいて)検出することも可能である。その代わりに、コントローラ120は、訂正できないエラーを検出することも可能である。この場合、コントローラ120は、エラーハンドラーにプロセッシングコントロールを返す。エラー訂正は、ランダムエラーに対してデバイスに格納されるマジックナンバーのために、特別なプロテクションが与えられる。
開示される様々な実施例は、ページ検出プロセスの全体が一般的なECCアルゴリズムと同様にマジックナンバーによりプロテクトされるように、ECC動作を実行可能である。このアプローチの組み合わせは、フラッシュデバイスのページサイズを決定するより有効な方法を提供することが可能である。
図8は、フラッシュデバイスにおけるダミーデータを有するデータ構造800を描写する図である。このシステム要件に基づいて、参照データは、図8に示すように、最後の自動検出マジックナンバーと参照データとの間に、ページ自動検出マジックナンバーまたはダミーデータの複数ページが加えられた次の最後のページに格納される。ダミーデータを有するページ数は、ページサイズを決定した後、情報処理装置がダミーデータページを省略でき、参照データを読み出すことができるように、情報処理装置のために事前に決定される。図8において、始めの2ページ(ページ0およびページ1)のみを検出した情報処理装置は、自動検出マジックナンバーを有する。上記の例に説明したように、もし最小ページサイズが512バイトである場合(the MIN page size = 512 Bytes)、自動検出マジックナンバーを有するセクション数は8,上記式(512 * 8/2)に基づきデバイスページサイズは2Kバイト、となる。それはまた、ダミーデータの2ページを有し、そのため情報処理装置は、第2的なブートコードを読み出すためにページ数4を飛び越える。情報処理装置は自動検出マジックナンバーを有する最後のページの後にダミーがないデータを挿入することが可能であり、この場合、図8に示すように、情報処理装置は、ページ2から第2的なコードの読み出しを開始する。
当業者であれば、情報や信号がどのように様々に異なったテクノロジーや技術を用いて表されても、十分に理解するであろう。上記開示を通じて記述される、例えば、データ,装置,コマンド,情報,信号,ビット,シンボル,およびチップ等は、電圧,電流,電磁気,波長,磁気,磁場,または粒子,光学,または粒子,またはこれらのどのような組み合わせ等であっても表現され得る。
さらに、当業者であれば、この実施例に関連して開示された様々な実施に係る論理ブロック,モジュール,回路,およびアルゴリズムが、電気的ハードウェア,コンピュータソフトウェア,またはこれらの組み合わせ、として実施可能であることを十分に理解するであろう。簡単に説明するために、ハードウェアおよびソフトウェア,様々な図中の要素,ブロック,モジュール,およびステップの構造は、一般的な機能な表現において上記のように記述した。そのような機能が、特別なアプリケーションやデザインに依存するハードウェアかまたはソフトウェアとして実施されているか否かにかかわらず、利用されるシステム全体を含む。当業者は、それぞれの特別なアプリケーションのための様々な方法において機能的な上記内容を実施可能であるが、そのような実施例は、この発明の範囲として無関係であるとされるべきではない。
ここで開示された実施例との関連として記載された方法,および/またはシーケンスは、ハードウェアにおいて,プロセッサにより実行されるソフトウェアモジュールにおいて,またはこれら2つの組み合わせにおいて直接的に具体化することが可能である。ソフトウェアモジュールは、RAMメモリ,フラッシュメモリ,ROMメモリ,EPROMメモリ,EEPROMメモリ,レジスタ,またはこの分野において知られるいずれの記憶媒体内に格納され得る。記憶媒体の一例は、プロセッサが読み出しおよび書込み可能な情報フォームでプロセッサへ組み込まれた記憶媒体がある。換言すれば、記憶媒体は、プロセッサに不可欠なものである。
従って、この発明に係る実施例は、メモリページサイズの自動検出方法を具体化するコンピュータ記憶媒体を含み得るものである。従って、本発明は、上記の説明した実施例に限定されることはなく、ここで説明した機能を実行するためのいかなる手段も本発明の実施例において含まれる。
本発明の実施例として示した上記開示の全体は、添付の特許請求の範囲により区画され本発明の範囲から外れることなく様々な変形や修正が可能である点を留意すべきである。ここで説明した発明と関連する実施例における特許請求の範囲に係る方法の機能,ステップおよび/または動作は、この特別な順序において、必ずしも実行される必要はない。さらに、本発明の要素は、一例において説明されクレームされているが、もしその一例の限定が明確に記載されていないのであれば、複数例は考えられる。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
[付記1]
メモリデバイスのページサイズの範囲を受け;
前記メモリデバイスのバス幅を決定し;
自動検出マーカーを有するページ数を検出し;
前記検出された前記自動検出マーカーを有するページ数と受けたページサイズの範囲とに基づき、前記メモリデバイスのページサイズを決定する
ことを具備するメモリデバイスのページサイズを自動的に決定する方法。
[付記2]
前記ページサイズの範囲は、前記メモリデバイスのための最大可能ページサイズおよび最小可能ページサイズを備え、
前記最大可能ページサイズおよび前記最小可能ページサイズの割合を計算することにより、セクション数を決定する
ことを更に具備する付記1に記載の方法。
[付記3]
前記バス幅を決定することは、
第1の4バイトワードおよび第2の4バイトワードを、前記メモリデバイスにおいて隣接して与え;
メモリコントローラが8ビットモードで構成されるときに、前記メモリデバイスから第1の4バイトワードを読み出し;
読み出したバイトが第1の4バイトワードか第2の4バイトワードに対応する置換かを決定することであって、前記置換は16ビットバス幅を有するメモリデバイスに対応すること、を更に備える
付記1に記載の方法。
[付記4]
前記第1の4バイトワードは第1マジックナンバーに対応し、前記第2の4バイトワードは第2マジックナンバーに対応する
付記3に記載の方法。
[付記5]
前記ページ数を検出することは、
前記メモリデバイスからページのセクションを順次読み出し;
自動検出マーカーを含むページ数をカウントすること、を更に備える
付記1に記載の方法。
[付記6]
前記メモリデバイスからページデータを読み出し;
前記自動検出マーカーを含むデータであるか否かをテストする
ことを更に具備する付記5に記載の方法。
[付記7]
前記自動検出マーカーを含むデータであるか否かを検出するときには:
ページ読み出しの数に対応するカウンタをインクリメントし;
前記ページを読み出すこと、および前記自動検出マーカーを含むことを有効でなくなるデータまで前記テストを行うことを繰り返す、ことを更に備える
付記6に記載の方法。
[付記8]
前記自動検出マーカーを含まないデータを決定するときには:
カウンタが自動決定マーカーとしてマークされた最小ページ数を超えるか否かを決定し、超える場合は、エラー状態を発信する、ことを更に備える
付記7に記載の方法。
[付記9]
前記自動検出マーカーは、マジックナンバーである
付記1に記載の方法。
[付記10]
マークされたセクション数の生成を決定することにより前記メモリデバイスのページサイズおよび前記最小可能ページサイズを計算し、前記自動決定マーカーを有するページ数により前記生成を分割する
ことを更に具備する付記2に記載の方法。
[付記11]
ハードウェアにおいて、前記メモリデバイスがより小さなページサイズを利用するのか、より大きなページサイズを利用するのかを決定する
ことを更に具備する付記1に記載の方法。
[付記12]
初期化コマンドの読み出しを実行し;
事前に決定された期間の後、前記メモリデバイスがビジィであるか否かを決定することをチェックする
ことを更に具備する付記1に記載の方法。
[付記13]
セクション数に分割されたメモリデバイス上のデータを与えることであって、それぞれのセクションは少なくとも、一つのコードワード,自動決定マーカー,およびダミーデータ、の一つを含む
ことを更に具備する付記2に記載の方法。
[付記14]
前記少なくとも一つのコードワードは、NAND_8_BIT コードワードおよび参照ナンバーを含む
付記13に記載の方法。
[付記15]
前記少なくとも一つのコードワードおよび自動決定マーカーは、マジックナンバーである
付記14に記載の方法。
[付記16]
前記メモリデバイスは、NANDフラッシュメモリ,m−systemフラッシュメモリ,またはOneNANDフラッシュメモリを含む
付記1に記載の方法。
[付記17]
メモリデバイスのページサイズの範囲を受けるように構成されるロジック;
前記メモリデバイスのバス幅を決定するように構成されるロジック;
自動検出マーカーを有するページ数を検出するように構成されるロジック;
前記検出されたページサイズの範囲と受けた前記自動検出マーカーを有するページ数とに基づき、前記メモリデバイスのページサイズを決定するように構成されるロジック
を具備するメモリデバイスのページサイズを自動的に決定する装置。
[付記18]
前記ページサイズの範囲は、前記メモリデバイスのための最大可能ページサイズおよび最小可能ページサイズを備え、
前記最大可能ページサイズおよび前記最小可能ページサイズの割合を計算することにより、セクション数を決定するように構成されるロジックを更に具備する
付記17に記載の装置。
[付記19]
前記バス幅を決定するように構成されるロジックは、
第1の4バイトワードおよび第2の4バイトワードを、前記メモリデバイスにおいて隣接して与えるように構成されるロジック;
メモリコントローラが8ビットモードで構成されるときに、前記メモリデバイスから第1の4バイトワードを読み出すように構成されるロジック;
読み出したバイトが第1の4バイトワードか第2の4バイトワードに対応する置換かを決定することであって、前記置換は16ビットバス幅を有するメモリデバイスに対応するように構成されるロジック、を更に備え、
前記第1の4バイトワードは第1マジックナンバーに対応し、前記第2の4バイトワードは第2マジックナンバーに対応し、前記自動検出マーカーはマジックナンバーである
付記17に記載の装置。
[付記20]
前記ページ数を検出するためのロジックは、
前記メモリデバイスからページのセクションを順次読み出すように構成されるロジック;
自動検出マーカーを含むページ数をカウントするように構成されるロジック;
前記メモリデバイスからページデータを読み出すように構成されるロジック;
前記自動検出マーカーを含むデータであるか否かをテストするように構成されるロジック、を更に備える
付記17に記載の装置。
[付記21]
前記自動検出マーカーを含むデータであることを決定するときには:
ページ読み出しの数に対応するカウンタをインクリメントするように構成されるロジック;
前記ページを読み出すこと、および前記自動検出マーカーを含むことを有効でなくなるデータまで前記テストを行うことを繰り返すように構成されるロジックを更に備え、
前記自動検出マーカーを含まないデータを決定するときには:
カウンタが自動決定マーカーとしてマークされた最小ページ数を超えるか否かを決定し、超える場合は、エラー状態を発信するように構成されるロジックを更に備える
付記20に記載の装置。
[付記22]
マークされたセクション数の生成を決定することにより前記メモリデバイスのページサイズおよび前記最小可能ページサイズを計算し、前記自動決定マーカーを有するページ数により前記生成を分割することを更に具備する
付記18に記載の装置。
[付記23]
メモリデバイスのページサイズの範囲を受けるための手段;
前記メモリデバイスのバス幅を決定するための手段;
自動検出マーカーを有するページ数を検出するための手段;
前記検出されたページサイズの範囲と受けた前記自動検出マーカーを有するページ数とに基づき、前記メモリデバイスのページサイズを決定するための手段
を具備するメモリデバイスのページサイズを自動的に決定する装置。
[付記24]
前記ページサイズの範囲は、前記メモリデバイスのための最大可能ページサイズおよび最小可能ページサイズを備え、
前記最大可能ページサイズおよび前記最小可能ページサイズの割合を計算することにより、セクション数を決定するための手段を更に具備する
付記23に記載の装置。
[付記25]
前記メモリデバイスからページのセクションを順次読み出すための手段;
自動検出マーカーを含むページ数をカウントするための手段、を更に具備する
付記23に記載の装置。

Claims (12)

  1. モリデバイスのバス幅を決定することと;
    前記メモリデバイスのページサイズを決定することと;
    を備え、
    前記メモリデバイスは複数セクションに分割され、各々のセクションは、互いに隣接し、第1の4バイトワードを有する第1領域、及び第2の4バイトワードを有する第2領域、並びにこれら第1、第2領域に後続する第3領域を有し、前記第1領域は8ビットマジックナンバーを有し、前記第2領域は設定マジックナンバーを有し、並びに前記第3領域は自動検出マジックナンバーを有し、前記自動検出マジックナンバーは前記セクション毎に付され、前記ページサイズを決定するために使用され得、
    前記バス幅を決定することは、
    8ビットモードにおいて前記メモリデバイスから第1の4バイトを読み出すことと、
    前記メモリデバイスから読み出した前記第1の4バイトが、前記第1の4バイトワードと前記第2の4バイトワードとの交互配置に一致するか否かを判断することと、
    を備え、
    前記メモリデバイスのページサイズを決定することは、
    前記メモリデバイスの最小及び最大のページサイズを受信することと、
    前記最大ページサイズ及び前記最小ページサイズの比を算出することによってマークが付されたセクション数を算出することと、
    ダミーデータを含むページの直前まで、前記メモリデバイスから連続する一連のページを読み出しつつ、前記自動検出マジックナンバーを含むページ数をカウントすることで前記自動検出マジックナンバーを有するデバイスページ数を検出することと、及び
    前記最小ページサイズを、マークが付された前記セクション数倍した値と、前記デバイスページ数と、の比を算出することで、前記メモリデバイスの前記ページサイズを決定すること
    とを具備するメモリデバイスのアクセスパラメータを自動的に決定する方法。
  2. 前記メモリデバイスから読み出した前記第1の4バイトが、前記第1の4バイトワードと前記第2の4バイトワードとの交互配置に一致しないとの判断は、8ビットのバス幅を有する前記メモリデバイスであることを示す
    請求項1に記載の方法。
  3. 前記メモリデバイスから読み出した前記第1の4バイトが、前記第1の4バイトワードと前記第2の4バイトワードとの交互配置に一致するとの判断は、16ビットのバス幅を有する前記メモリデバイスであることを示す
    請求項1に記載の方法。
  4. 前記メモリデバイスからページデータを読み出すことと;
    前記自動検出マジックナンバーを含むデータであるか否かをテストすること
    と、を更に具備する請求項1に記載の方法。
  5. 前記自動検出マジックナンバーを含むデータであると判断するときには:
    読み出した前記ページ数に対応するカウンタをインクリメントし;
    前記自動検出マジックナンバーを含むデータがなくなるまで、前記ページを読み出すこと、および前記テストを行うことを繰り返す、ことを更に備える
    請求項4に記載の方法。
  6. 前記データが前記自動検出マジックナンバーを含まないと判断されたときには:
    カウンタが自動検出マジックナンバーを有する、マークが付された最大ページ数を超えているか否かを判断し、超えている場合は、エラー状態を発信する、ことを更に備える
    請求項5に記載の方法。
  7. ハードウェアにおいて、前記メモリデバイスがより小さなページサイズを利用するのか、より大きなページサイズを利用するのかを決定する
    ことを更に具備する請求項1に記載の方法。
  8. 初期化コマンドの読み出しを実行することと;
    事前に決定された期間の後、前記メモリデバイスがビジィであるか否かを決定するためにチェックすることと
    を更に具備する請求項1に記載の方法。
  9. それぞれのセクションはダミーデータを含む
    ことを更に具備する請求項1に記載の方法。
  10. 前記ダミーデータは、エラー訂正を実行させるための既知の値である
    請求項9に記載の方法。
  11. 前記メモリデバイスは、NANDフラッシュメモリ,m−systemフラッシュメモリ,またはOneNANDフラッシュメモリを含む
    請求項1に記載の方法。
  12. モリデバイス手段のバス幅を決定する手段と;
    前記メモリデバイス手段のページサイズを決定する手段と;
    を具備し、
    前記メモリデバイス手段は複数セクションに分割され、各々のセクションは、互いに隣接し、第1の4バイトワードを有する第1領域、及び第2の4バイトワードを有する第2領域、並びにこれら第1、第2領域に後続する第3領域を有し、前記第1領域は8ビットマジックナンバーを有し、前記第2領域は設定マジックナンバーを有し、並びに前記第3領域は自動検出マジックナンバーを有し、前記自動検出マジックナンバーは前記セクション毎に付され、前記ページサイズを決定するために使用され得、
    前記バス幅を決定する手段は、
    8ビットモードにおいて、前記メモリデバイス手段から第1の4バイトを読み出す手段と、
    前記メモリデバイス手段から読み出した第1の4バイトが、前記第1の4バイトワードと前記第2の4バイトワードとの交互配置に一致するかどうかを判断する手段と、
    を具備し、
    前記メモリデバイス手段のページサイズを決定する前記手段は、
    前記メモリデバイス手段の最小及び最大ページサイズを受信する手段と、
    前記最大ページサイズ及び最小ページサイズの比を算出することで、マークが付されたセクション数を決定する手段と、
    ダミーデータを含むページの直前まで、前記メモリデバイスから連続する一連のページを読み出しつつ、自動検出マジックナンバーを含むページ数をカウントすることで前記自動検知マジックナンバーを有するページ数を検知する手段と、
    前記最小ページサイズを、マークが付された前記セクション数倍した値と、前記デバイスページ数と、の比を算出することによって前記メモリデバイス手段の前記ページサイズを決定する手段と
    を具備するメモリデバイス手段のアクセスパラメータを自動的に決定する装置。
JP2010508430A 2007-05-14 2008-05-14 メモリページサイズの自動検出 Expired - Fee Related JP5378360B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US91790107P 2007-05-14 2007-05-14
US60/917,901 2007-05-14
US97654307P 2007-10-01 2007-10-01
US60/976,543 2007-10-01
US12/119,587 US7873779B2 (en) 2007-05-14 2008-05-13 Memory page size auto detection
US12/119,587 2008-05-13
PCT/US2008/006256 WO2008143950A2 (en) 2007-05-14 2008-05-14 Memory page size auto detection

Publications (2)

Publication Number Publication Date
JP2010527484A JP2010527484A (ja) 2010-08-12
JP5378360B2 true JP5378360B2 (ja) 2013-12-25

Family

ID=40028695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010508430A Expired - Fee Related JP5378360B2 (ja) 2007-05-14 2008-05-14 メモリページサイズの自動検出

Country Status (7)

Country Link
US (1) US7873779B2 (ja)
EP (1) EP2156300B1 (ja)
JP (1) JP5378360B2 (ja)
KR (1) KR101026633B1 (ja)
CN (1) CN101681301B (ja)
TW (1) TW200903252A (ja)
WO (1) WO2008143950A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370718B2 (en) * 2009-04-08 2013-02-05 Stmicroelectronics S.R.L. Method for identifying a flash memory device and related hosting device
US8112551B2 (en) * 2009-05-07 2012-02-07 Cypress Semiconductor Corporation Addressing scheme to allow flexible mapping of functions in a programmable logic array
US8281065B2 (en) * 2009-09-01 2012-10-02 Apple Inc. Systems and methods for determining the status of memory locations in a non-volatile memory
US8375173B2 (en) * 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
CN102402485B (zh) * 2010-09-16 2014-05-28 安凯(广州)微电子技术有限公司 Nandflash参数探测方法
US8417880B2 (en) 2010-11-01 2013-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited System for NAND flash parameter auto-detection
TWI467579B (zh) * 2011-01-14 2015-01-01 Mstar Semiconductor Inc 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體
KR20130096881A (ko) * 2012-02-23 2013-09-02 삼성전자주식회사 플래시 메모리 장치
US9026887B2 (en) 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US8719519B2 (en) * 2012-03-30 2014-05-06 Intel Corporation Split-word memory
US8856431B2 (en) * 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
KR102065665B1 (ko) 2013-10-17 2020-01-13 삼성전자 주식회사 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR101482971B1 (ko) * 2014-06-25 2015-01-16 주식회사 엔트리브 듀얼 에뮬레이터를 이용한 실시간 데이터 백업시스템 및 백업방법
KR102265052B1 (ko) 2014-12-17 2021-06-15 삼성전자주식회사 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치
TWI684915B (zh) 2018-11-28 2020-02-11 智微科技股份有限公司 記憶體區塊大小判定方法
CN111273852A (zh) * 2018-12-04 2020-06-12 智微科技股份有限公司 存储器区块大小判定方法
US11113007B2 (en) 2019-05-13 2021-09-07 Micron Technology, Inc. Partial execution of a write command from a host system
TWI779610B (zh) * 2021-05-17 2022-10-01 瑞昱半導體股份有限公司 偵測快閃記憶體模組的方法及相關的系統晶片

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04346153A (ja) * 1991-05-24 1992-12-02 Canon Inc メモリアクセスバス制御方法とその情報処理装置
JPH1145206A (ja) * 1997-07-29 1999-02-16 Casio Comput Co Ltd 電子装置、メモリ起動方法及びメモリ起動プログラムを記録した記録媒体
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US8171192B2 (en) 2005-09-20 2012-05-01 Qualcomm Incorporated Hardware-assisted device configuration detection

Also Published As

Publication number Publication date
EP2156300B1 (en) 2018-06-13
KR101026633B1 (ko) 2011-04-04
CN101681301A (zh) 2010-03-24
KR20100013323A (ko) 2010-02-09
TW200903252A (en) 2009-01-16
US7873779B2 (en) 2011-01-18
WO2008143950A3 (en) 2009-01-29
JP2010527484A (ja) 2010-08-12
EP2156300A2 (en) 2010-02-24
CN101681301B (zh) 2012-06-27
US20080288715A1 (en) 2008-11-20
WO2008143950A2 (en) 2008-11-27

Similar Documents

Publication Publication Date Title
JP5378360B2 (ja) メモリページサイズの自動検出
US8375257B2 (en) ECC control circuits, multi-channel memory systems including the same, and related methods of operation
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US9037812B2 (en) Method, apparatus and system for memory validation
US8335960B2 (en) Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7873778B2 (en) Apparatus for storing page data
US9240235B2 (en) Mitigating disturb effects for non-volatile memory
US7822965B2 (en) BIOS file switching method and controller device thereof
US8572364B2 (en) Method and apparatus for booting from a flash memory
US10824523B2 (en) Data storage device and operating method thereof
CN109686391B (zh) 非易失性存储器装置及其操作方法及非易失性存储器封装
JP2014506698A (ja) メインメモリシステムを介して、コプロセッサ及び入出力(i/o)デバイスとインターフェースするシステム及び方法
KR20120014939A (ko) 고체상태 소자들의 객체 지향 메모리
JP2004311010A (ja) エラー訂正機能を有したフラッシュメモリ装置
US20080072119A1 (en) Allowable bit errors per sector in memory devices
KR20190029316A (ko) 마이크로 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작방법
KR20170114438A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10942803B2 (en) Method for performing data processing for error handling in memory device, associated memory device and controller thereof, and associated electronic device
US11817154B2 (en) Optimized threshold translation from serialized pipeline
US8516190B1 (en) Reporting logical sector alignment for ATA mass storage devices
CN117608501B (zh) 电压调整方法、存储器存储装置及存储器控制电路单元
US20230214297A1 (en) Storage device including mapping memory and method of operating the same
CN112148201A (zh) 数据写入方法、装置及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

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: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130925

R150 Certificate of patent or registration of utility model

Ref document number: 5378360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees