(57)【要約】      （修正有）【課題】固体メモリ、および部分的に埋められたページの問題を低減する固体メモリを動作させるための方法を提供する。さらに固体メモリ、および外部のキャッシュメモリの必要性を低減し、複数の入来データストリームがフラッシュ装置にプログラムされる場合、内部ページレジスタを使用する固体メモリを動作させるための方法を提供する。【解決手段】固体メモリは、入来データが少なくとも１つのページにプログラミングされる前に入来データストリームを一時的に格納するための内部バッファを含む。内部バッファは、ある論理ユニットから別の論理ユニットへの切り替えが行われる場合、まだプログラミングされていないデータを保持する。【選択図】図５
2011096257.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの入来データストリームを格納するための固体メモリであって、複数の論理ユニットを有し、前記論理ユニットのそれぞれは、少なくとも１つのページを有し、前記論理ユニットのそれぞれは、前記入来データが少なくとも１つのページにプログラムされる前に、前記入来データストリームを一時的に格納するための内部バッファメモリを含み、前記内部バッファメモリは、他の前記論理ユニットへの切り替え操作が実行されると、まだプログラムされていないデータを保持することを特徴とする固体メモリ。
【請求項２】
前記論理ユニットのそれぞれは、前記メモリの消去可能な最小単位である少なくとも１つのブロックを含み、前記ブロックのそれぞれは、前記メモリのプログラム可能な最小単位である少なくとも１つのページを含むことを特徴とする請求項１に記載の固体メモリ。
【請求項３】
複数の前記論理ユニットの複数の前記内部バッファのうちの少なくとも１つは、ページ全体、および最高許容入力ビットレートでページの前記プログラムのサイクル中に受信された前記データを格納するための最小サイズを有することを特徴とする請求項１または２に記載の固体メモリ。
【請求項４】
前記記憶装置は、Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ仕様に従って動作するＮＡＮＤフラッシュ装置であることを特徴とする請求項１乃至３の一項に記載の固体メモリ。
【請求項５】
１つまたは複数のカメラを含むカメラシステムであって、請求項１乃至４のいずれか一項による固体メモリを含むことを特徴とするカメラシステム。
【請求項６】
少なくとも２つのカメラを含み、異なるカメラによって捕捉されるデータストリームが異なる論理ユニットに格納されることを特徴とする請求項５に記載のカメラシステム。
【請求項７】
少なくとも１つのデータストリームを固体メモリにプログラムするための方法であって、前記固体メモリは、少なくとも１つの論理ユニットを含み、前記論理ユニットのそれぞれは、少なくとも１つのページを含み、ページは、一度にプログラミングされる方法において、
少なくとも１つの入来データストリームを前記固体メモリに順次入力するステップと、
１つの前記論理ユニットに含まれる内部バッファに前記１つの前記論理ユニットに関連付けられたデータを格納するステップと、
前記バッファは少なくとも１つの完全なページをプログラムするためのデータを含むかどうかのチェックを行うステップと、
前記チェックステップが肯定である場合、少なくとも１つのページをプログラムするステップと、
異なる前記論理ユニット間で切り替え操作が行われる場合、前記内部バッファメモリ内にまだプログラムされていない前記データを保持するステップと
を含むことを特徴とする方法。
【請求項８】
異なるカメラを有するカメラシステムによって捕捉される前記入力データストリームを異なる複数の前記論理ユニットに格納するステップ
をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
データレジスタ内の前記データを受信した後、Ｐａｇｅ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｌｅａｖｅｄコマンド１１ｈを使用して、ターゲットを状態Ｔ＿ＰＰ＿ＩｌｖＷａｉｔに設定し、論理ユニットを状態Ｌ＿ＰＰ＿ＩｌｖＷａｉｔに設定するステップと、
ＬＵＮの前記データレジスタがフルページで埋められるまで、前記ターゲットを状態Ｔ＿ＰＰ＿ＩｌｖＷａｉｔに保持し、前記論理ユニットを状態Ｌ＿ＰＰ＿ＩｌｖＷａｉｔに保持するステップと、
前記コマンド１０ｈまたは１５ｈを使用してこれらの前記データをページにプログラムするステップであって、これらの状態およびコマンドはＯＮＦＩ標準に準拠する、ステップと
をさらに含むことを特徴とする請求項７または８に記載の方法。
【請求項１０】
前記コマンド１０ｈまたは１５ｈを使用して前記論理ユニットにフルページをプログラムした後、ターゲットを状態Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔに設定し、論理ユニットを状態Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａに設定して、前記ターゲットが前記アドレス指定された論理ユニットの前記ページレジスタから前記データを削除するのを防ぐステップであって、これらの状態およびコマンドはＯＮＦＩ標準に準拠する、ステップ
をさらに含むことを特徴とする請求項７乃至９のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は固体メモリに関し、固体メモリは例えば複数のターゲットで構成され、各ターゲットが１つまたは複数の論理ユニット（ＬＵＮ）を含み、各論理ユニットが１つまたは複数のブロックを含み、各ブロックが１つまたは複数のページを含む。こうした装置は、例えば、Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ（ＯＮＦＩ）仕様に従って設計されるＮＡＮＤフラッシュメモリ装置である。
【背景技術】
【０００２】
こうした装置は、フラッシュメモリをプログラムするための方法を記載する特許文献１で知られている。この背景におけるプログラミングは、当業者には、フラッシュメモリセルにビットを書き込み、または格納するものと理解されている。フラッシュメモリにおけるデータのプログラミングは、一度に１ページのデータをプログラムすることによって行われる。データストリームの最後にフルページをプログラムするのに十分なデータが提供されない場合、データストリームの最後にプログラムされたページは、部分的にしか埋められない。プログラムすべきデータストリームが後で続く場合、完全に埋められた他のページの間に部分的に埋められたページが存在する。これは、不十分と見なすことができる。部分的に埋められたデータページを再度読み出し、このデータページを、書き込まれるように後で提供されたデータで完全なものにし、次いでフルデータページをフラッシュメモリにプログラムすることによって、よりよい解決策が提供される。部分的に埋められたページは、追加の読み出しおよびプログラミングサイクルを犠牲にして低減される。
【０００３】
特許文献２は、ブロックをフラッシュメモリの消去可能な最小単位として記載している。さらに、消去可能な最小単位はページではなくブロックであるため、容易には消去できない部分的に埋められたページの問題を記載している。したがって、フラッシュメモリは、不必要に摩滅する。
【０００４】
部分的に埋められたページの影響は、２つの論理ユニットの間で切り替え操作が行われるときにも起こる。第１の論理ユニットから第２の論理ユニットへの切り替えが行われると、入力バッファに残されたデータは、第１の論理ユニットにプログラムされ、その後、第２の論理ユニットへの切り替えが行われる。後にデータが第１の論理ユニットにプログラムされる場合、データをプログラムするために新しいページが使用され、したがって、この論理ユニットにおいて部分的に使用されるページが生じる。
【０００５】
Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ（ＯＮＦＩ）仕様によれば、ＮＡＮＤフラッシュ装置にデータを書き込むことは、ターゲットに対して、対応する論理ユニット番号（ＬＵＮ）、ブロックアドレス、およびページアドレスと共にＰＲＯＧＲＡＭ  ＰＡＧＥコマンドを発行することによって行われる。その後、通常数キロバイトの完全なメモリページのデータが、選択された論理ユニットのページレジスタに書き込まれる。フルページがページレジスタに書き込まれると、論理ユニットは、このメモリアレイに対するデータのプログラムを開始する。プログラミング中、論理ユニットはビジーであり、最初のページのプログラミングが終了した後、次のページを論理ユニットのページレジスタに書き込むことができる。完全なページがページレジスタに書き込まれ、ページプログラムが開始した後、ターゲットの他の論理ユニットを選択し、使用することができる。ＯＮＦＩ仕様では、部分的なページをプログラムする可能性も提供するが、追加のプログラミング時間がかかり、到達可能な帯域幅が低減することになる。
【０００６】
ＯＮＦＩ仕様に従って、以下のプログラミング命令が定義される。
【０００７】
ＰＡＧＥ  ＰＲＯＧＲＡＭ：データがデータレジスタに書き込まれ、データフェーズが終了した後、プログラミングが開始する。
【０００８】
ＰＡＧＥ  ＣＡＣＨＥ  ＰＲＯＧＲＡＭ：データがデータレジスタに書き込まれ、データフェーズが終了した後、データレジスタの中身がキャッシュレジスタにコピーされ、プログラミングが開始する。
【０００９】
ＰＡＧＥ  ＰＲＯＧＲＡＭ  ＩＮＴＥＲＬＥＡＶＥＤ：データが１つのＬＵＮの複数のデータレジスタに書き込まれ、最後のデータレジスタが埋められるとプログラミングが開始する。
【００１０】
完全なデータページをＮＡＮＤ装置のページレジスタに書き込み、メモリアレイへのプログラミングを開始するために、既知のページプログラムフローが使用される。各手順によって、ターゲットの状態機械および論理ユニットの状態機械のいくつかの状態の切り替えがもたらされる。手順に依存する状態機械の状態の切り替えを以下に示す。
【００１１】
【表１】
2011096257.tif 000003
【００１２】
インターリーブ動作（Interleaved operation）によって、同じ論理ユニットの異なるブロックに同じタイプの複数のコマンドを発行することができる。論理ユニットの複数の独立したページレジスタに完全なデータページを書き込み、すべてのレジスタが埋められるとメモリアレイに対するプログラムを開始するために、既知のインターリーブページプログラムフロー（interleaved page program flow）が使用される。
【００１３】
【表２】
2011096257.tif 000004
【００１４】
２つの独立したソースのデータがターゲットの独立したＬＵＮに記録される場合、まず上述したプロセスのうちの１つが第１の独立したソースのための第１のＬＵＮに発行され、書き込みプロセスを終了した後、上述したプロセスのうちの１つが第２のＬＵＮに第２の独立したソースのデータを書き込むための第２のＬＵＮに発行される。
【００１５】
独立した並行するストリームをフラッシュ装置に記録すべきとき、異なる論理ユニットに異なるストリームを書き込むことが有利である。ファイル管理は、こうした通常の戦略でより簡単であり、入来データストリームの記録のために、論理ユニットの全帯域幅が保証される。ストリームのデータがページサイズより小さいサイズのブロックに到達した場合、１つの論理ユニットのフルページがプログラムの用意ができているとき、フラッシュ装置の外部に配置されているキャッシュに各ストリームのデータをキャッシュし、それをＮＡＮＤフラッシュ装置に書き込む必要がある。ストリームおよび論理ユニットの量によって、メモリ装置の外部にたくさんのキャッシュメモリが必要であるが、装置内の使用可能なページレジスタは、未使用のままである。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】米国特許出願公開第２００８／０１８３９４９号明細書
【特許文献２】米国特許出願公開第２００６／０１３６６５６号明細書
【発明の概要】
【００１７】
本発明の１つの目的は、固体メモリ、および部分的に埋められたページの問題を低減する固体メモリを動作させるための方法を提供することである。本発明のさらなる目的は、固体メモリ、および外部のキャッシュメモリの必要性を低減し、複数の入来データストリームがフラッシュ装置にプログラムされる場合、内部ページレジスタを使用する固体メモリを動作させるための方法を提供することである。
【００１８】
論理ユニットのページレジスタを対応する入来データストリームの入力バッファとして使用するために、他の論理ユニットにおけるページをまだ完全に埋めることができない場合でさえ、現在の入来ストリームの性質に応じて、アクティブな論理ユニットを切り替える必要がある。ＯＮＦＩ仕様は、この問題に対応しておらず、また専用の機構を提供していない。
【００１９】
本発明によれば、少なくとも１つの入来データストリームを格納するための固体メモリは、１つのターゲット内に複数の論理ユニットを有する。各論理ユニットは、メモリにデータをプログラムするための少なくとも１つのページを有する。固体メモリは、入来データが少なくとも１つのページにプログラムされる前に入来データストリームを一時的に格納するための、しばしばページレジスタと呼ばれる内部バッファメモリを含む。さらに、内部バッファメモリは、異なる論理ユニット間の切り替え操作が実行されるとき、まだプログラミングされていないデータを保持する。これは、第１の論理ユニットから第２の論理ユニットに切り替える場合、ページを完全に埋めるにはまだ十分ではない残りのデータがプログラムされる必要なく、ページレジスタに保持されるという利点を有する。後に、この論理ユニットのためのより多くのデータが提供された場合、このデータは残りのデータに追加され、残りのデータおよび新しいデータが一緒にフルページとしてプログラムされる。これによって、部分的にすぎないページのプログラミングが省かれるため、特定の論理ユニットをプログラムするための全ビットレートが向上する。フルページおよび部分的なページのプログラミングは、ほぼ同じ時間を必要とするので、いかなるときでもフルページのみのプログラムに注意が払われる場合、特定の量のデータをプログラムするために必要なプログラミングサイクルは少なくてすむ。さらに、固体メモリ装置におけるデータで部分的にしか埋められていない固体メモリ装置におけるページの問題が省かれる。固体メモリは、より効率的に使用される。
【００２０】
有利には、固体メモリは、ターゲットのグループとして構成され、各ターゲットは、少なくとも１つの論理ユニットを含む。各論理ユニットは、この論理ユニットにプログラムすべき入来データを一時的に格納するためのページレジスタを備える。さらに、各論理ユニットは、少なくとも１つのブロックを含む。メモリの消去は、ブロック単位で行われる。各ブロックは、少なくとも１つのページを含む。１つのページになるように格納されるデータは、一度にプログラムされる。
【００２１】
固体メモリの各論理ユニットは、データがページにプログラムされる前に入来データストリームを一時的に格納するための内部バッファを有するのが好ましい。内部バッファのサイズは、少なくとも１ページのサイズ＋最高許容入力ビットレートでページのプログラミングサイクル中に受信されたデータのサイズである。したがって、以下の通りである。
ＳｉｚｅinternalBuffer≧ＳｉｚｅPage＋ＴｉｍｅPageProgramCycle＊ＢｉｔｒａｔｅInputData
これには、ページのプログラミング中に内部バッファにおいて次のページをプログラムするためのデータを受信することもできるという利点がある。例えば２ページのサイズの内部バッファは、入力データのビットレートが十分高い場合、別のページのプログラミングサイクル中にプログラムされるページ全体のためのデータを受信することができる。したがって、全待ち時間が低減し、固体メモリのビットレートがさらに向上する。
【００２２】
有利には、記憶装置は、Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ（ＯＮＦＩ）仕様に従って動作するＮＡＮＤフラッシュ装置である。ＯＮＦＩ仕様は、異なる論理ユニット間の切り替えが実行される場合、部分的にプログラムされたページを省き、プログラミング時間を低減し、したがって部分的なページのプログラミングの場合にプログラミングビットレートを低減するための固有のアルゴリズムを見越していない。提案されたメモリ装置には、本質的にＯＮＦＩ仕様に従っており、同時に部分的なページを省くという利点がある。本発明による装置は、ＯＮＦＩ標準の既知の実施例から逸脱するだけである。依然としてＯＮＦＩ標準のプログラム命令が使用される。当分野で知られている実施ルールからの逸脱は、ＯＮＦＩ標準に反していない。したがって、本発明による装置は、依然としてＯＮＦＩ標準に準拠すると見なすことができる。さらに、適当なときはいつでも完全なページがプログラムされるため、プログラミング時間が低減される。その上、本発明は、ページ指向の方法で動作し、研究環境の測定データを捕捉するための、特にいくつかの測定データストリームを並列または類似の環境で捕捉するための中央記憶装置として、例えばストリーミングの用途、特にいくつかの映像ソースの並列したストリーミングに適用可能な固体記憶装置に関する。
【００２３】
固体メモリは、１つまたは複数のカメラを含む映像捕捉カメラシステムの一部であるのが好ましい。カメラによって発行されるデータが固体メモリ装置に提供される。有利には、固体メモリは、異なるカメラによって捕捉されるデータストリームを異なる論理ユニットに格納する。カメラシステムは、３Ｄ映像捕捉のために提供されるのが好ましい。この場合、いくつかの映像ストリームが生成され、そのうちの少なくとも１つは高データレートである。その映像データストリームは、リアルタイムで並列に格納されなければならない。固体メモリは、上述したように、カメラシステムにいくつかの利点を提供する。異なるカメラのデータストリームを異なる論理ユニットに格納することには、容易なファイル構成が提供され、階層型のメモリ構造に従ってデータがまとめられるという利点がある。したがって、特に複数のカメラを含むカメラシステムを使用することは、例えば３Ｄ捕捉には必須であるので、複数のデータストリームが同時に格納されなければならない。さらに、カメラから出力されるデータストリームは、通常、高データレートを有する。ＨＤ（高精細度）カメラを使用すると、１つのカメラのデータストリームは、例えば、最高２Ｇｂｉｔ／ｓである。本発明による固体ストレージは、こうしたシステムには特に有利である。というのは、記憶装置の入力データレートは、部分的に埋められたページを書き込み、読み取ることによって不必要に低減されないからである。異なるカメラのデータストリームが異なる論理ユニットに格納される、複数のカメラを含むシステムにおいて恩恵が高い。というのは、こうしたシステムにおいて、異なる論理ユニット間の切り替えが定期的に行われ、１サイクルで書き込まれない、または部分的にしか書き込まれないページの問題が頻繁に生じるからである。３Ｄ捕捉に加えて、多次元の捕捉も映画業界の注目の的である。本発明は、多次元環境のリアルタイムのシーンの捕捉も対象とする。
【００２４】
少なくとも１つの論理ユニットを含む固体記憶装置を動作させるための方法が実施されるのが好ましい。各論理ユニットは、少なくとも１ページ、および一度にプログラムされるページを含む。本発明による方法において、少なくとも１つの入来データストリームが固体メモリに順次入力される。データは、内部バッファ、すなわちページレジスタに一時的に格納される。内部バッファは、例えば、１つの論理ユニットに割り振られる上述したようなバッファである。１つの完全なページをプログラムするのに十分なデータの量を内部バッファが含むかどうかのチェックステップが行われる。内部バッファが１つの完全なページをプログラムするのに十分なデータを含んでいる場合、少なくとも１つの完全なぺージがプログラムされる。１つの完全なページに十分なデータは、１つの完全なページに必要なものよりほんのわずかに多いデータであり得るが、いくつかの完全なページを埋めるのに十分なデータである可能性もある。異なる論理ユニット間での切り替え操作が行われる場合、現在アクティブな論理ユニットの内部バッファのまだプログラムされていないデータが内部バッファに保持される。次いで、論理ユニット間の切り替えが行われる。これには、第１の論理ユニットから第２の論理ユニットに切り替える前に、完全なページを埋めない残りのデータがプログラムされる必要はなく、内部バッファに保持され、切り替えが終了した後、依然として保持されるという利点がある。後に、この論理ユニットのためのより多くのデータが提供された場合、このデータは残りのデータに追加され、残りのデータおよび新しいデータが一緒にフルページとしてプログラムされる。これによって、全プログラミング時間が低減する。というのは、部分的なページのプログラミングは、フルページのプログラミングとほぼ同じ処理時間を必要とするからである。したがって、フルページのみをプログラムすることによって、プログラミングの帯域幅が向上する。さらに、固体メモリ装置における１つのプログラミングサイクル中にデータで部分的にしか埋められていないページの問題が省かれる。固体メモリは、より効率的に使用される。
【００２５】
有利には、この方法は、異なるカメラによって捕捉される入力データストリームを異なる論理ユニットに格納するために使用される。異なるカメラのデータストリームを異なる論理ユニットに格納することには、容易なファイル構成が提供され、階層型のメモリ構造に従ってデータがまとめられるという利点がある。したがって、特に複数のカメラを含むカメラシステムを使用することは、例えば３Ｄ捕捉には必須であるので、複数のデータストリームが同時に格納されなければならない。さらに、カメラから出力されるデータストリームは、通常、高データレートを有する。ＨＤ（高精細度）カメラを使用すると、１つのカメラのデータストリームは、例えば、最高２Ｇｂｉｔ／ｓである。提供される固体ストレージは、こうしたシステムには特に有利である。というのは、ストレージの入力データレートは、部分的なページを読み取り、書き込むことによって不必要に低減されないからである。異なるカメラのデータストリームが異なる論理ユニットに格納される、複数のカメラを含むシステムにおいて恩恵が高い。というのは、こうしたシステムにおいて、異なる論理ユニット間の切り替えが定期的に行われ、部分的なページの問題が頻繁に生じるからである。３Ｄ捕捉に加えて、多次元の捕捉も映画業界の注目の的である。本発明は、多次元環境のシーンの捕捉も対象とする。
【００２６】
この方法は、Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ（ＯＮＦＩ）仕様に従って動作するのが好ましい。有利には、１つの論理ユニットのデータがデータレジスタで受信された後、論理ユニットの切り替えが実行される場合、ターゲットは、Ｐａｇｅ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｌｅａｖｅｄコマンド１１ｈを使用して状態Ｔ＿ＰＰ＿Ｉｌｖ＿Ｗａｉｔに設定される。このコマンドを使用して、論理ユニットは、状態Ｌ＿ＰＰ＿Ｉｌｖ＿Ｗａｉｔに設定される。その後、ＬＵＮのデータレジスタがフルページで埋められるまで、ターゲットは、状態Ｔ＿ＰＰ＿Ｉｌｖ＿Ｗａｉｔに保持され、論理ユニットは、状態Ｌ＿ＰＰ＿Ｉｌｖ＿Ｗａｉｔに保持される。次いで、これらのデータは、コマンド１０ｈまたは１５ｈを使用して１ページにプログラムされる。コマンド１０ｈまたは１５ｈを使用して論理ユニットにフルページをプログラムした後、ターゲットを状態Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔに設定し、論理ユニットを状態Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａに設定して、ターゲットがアドレス指定された論理ユニットのページレジスタからデータを削除するのを防ぐ。
【００２７】
よりよく理解するために、次に、本発明について、図を参照して以下の説明でより詳しく説明する。本発明は、これらの実施形態例に限定されず、指定された特徴は、本発明の範囲から逸脱することなく、便宜上結合する、および／または変更することもできることを理解されたい。
【図面の簡単な説明】
【００２８】
【図１】固体メモリ装置の階層型の構造を示す図である。
【図２】本発明による固体メモリ装置を動作させるための方法を示す図である。
【図３】本発明によるターゲットの状態図である。
【図４】本発明による論理ユニットの状態図である。
【図５】本発明による１つのターゲットおよび２つの論理ユニットを含む固体メモリの状態図である。
【発明を実施するための形態】
【００２９】
図１は、本発明によるＯＮＦＩ仕様コマンドセットによって動作するＮＡＮＤフラッシュメモリの構造を示す。ＮＡＮＤフラッシュメモリは、ターゲットとして構成される。ターゲットは、１つまたは複数の論理ユニットＬＯＧＩＣＡＬ  ＵＮＩＴ  ０、ＬＯＧＩＣＡＬ  ＵＮＩＴ  １、．．．、ＬＯＧＩＣＡＬ  ＵＮＩＴ  Ｌを含み、各論理ユニットＬＯＧＩＣＡＬ  ＵＮＩＴ  ０、ＬＯＧＩＣＡＬ  ＵＮＩＴ  １、．．．、ＬＯＧＩＣＡＬ  ＵＮＩＴ  Ｌは、複数のブロックＢＬＯＣＫ  ０、ＢＬＯＣＫ  １、．．．、ＢＬＯＣＫ  Ｍを含み、１つのブロックＢＬＯＣＫ  ０、ＢＬＯＣＫ  １、．．．、ＢＬＯＣＫ  Ｍは、複数のページＰＡＧＥ  ０、ＰＡＧＥ  １、．．．、ＰＡＧＥ  Ｎを含む。ページＰＡＧＥ  ０、ＰＡＧＥ  １、．．．、ＰＡＧＥ  Ｎは、通常、読み取りまたは書き込み単位である。これは、１ページが一回のステップで読み取るまたは書き込むことができる最小データ数を含むことを意味する。ブロックＢＬＯＣＫ  ０、ＢＬＯＣＫ  １、．．．、ＢＬＯＣＫ  Ｍは、通常、消去単位である。これは、ブロックが一回のステップで消去することができる最小データ数を含むことを意味する。論理ユニットＬＯＧＩＣＡＬ  ＵＮＩＴ  ０、ＬＯＧＩＣＡＬ  ＵＮＩＴ  １、．．．、ＬＯＧＩＣＡＬ  ＵＮＩＴ  Ｌは、独立して動作する動作単位である。各論理ユニットＬＯＧＩＣＡＬ  ＵＮＩＴ  ０、ＬＯＧＩＣＡＬ  ＵＮＩＴ  １、．．．、ＬＯＧＩＣＡＬ  ＵＮＩＴ  Ｌは、書き込まれるまたは読み取られるデータを一時的に格納するためのページレジスタＰＡＧＥ  ＲＥＧＩＳＴＥＲを含む。さらに、各論理ユニットは、論理ユニットＬＯＧＩＣＡＬ  ＵＮＩＴ  ０、ＬＯＧＩＣＡＬ  ＵＮＩＴ  １、．．．、ＬＯＧＩＣＡＬ  ＵＮＩＴ  Ｌを動作させるためのコントローラユニットＣＵ＿ＬＵ＿０、ＣＵ＿ＬＵ＿１、．．．、ＣＵ＿ＬＵ＿Ｌを含む。ターゲットＴＡＲＧＥＴは、さらに、ターゲットレベルで装置を制御するターゲット制御ユニットＣＵ＿ＴＲＧを含む。
【００３０】
図２は、本発明による装置のプログラムフローを示す。ステップＳ１において、入来データが使用可能であるかどうかのチェックが行われる。
【００３１】
入来データが使用可能である場合（ＹＥＳ）、ステップＳ２でページプログラムコマンド８０ｈがターゲットに書き込まれる。ステップＳ３で、ＬＵＮアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがＮＡＮＤフラッシュターゲットのページレジスタに書き込まれる。ステップＳ４で、次のデータワードがＮＡＮＤフラッシュターゲットに書き込まれる。次いで、ステップＳ５で、完全なページがフラッシュターゲットのページレジスタにおいて使用可能かどうかのチェックが行われる。
【００３２】
完全なページが使用可能である場合（ＹＥＳ）、ステップ８で、ページプログラム１０ｈまたはページキャッシュプログラム１５ｈコマンドを使用して、ターゲットのそれぞれのページにデータが格納される。ステップＳ９で、ページアドレスおよびブロックアドレスが増分される。次いで、ステップ１０で、さらなるページプログラムコマンド８０ｈがターゲットに書き込まれる。ステップＳ１１において、ＬＵＮアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがＮＡＮＤフラッシュターゲットのページレジスタに書き込まれる。
【００３３】
ステップ６は、ステップＳ５で完全なページが使用可能でない場合（ＮＯ）に実行される。ステップ６は、ステップＳ１１の後にも実行される。ステップ６において、使用可能な残りのバイトがあるかどうかのチェックが行われる。使用可能な残りのバイトがある場合（ＹＥＳ）、方法はステップＳ４を続行する。使用可能な残りのバイトがない場合（ＮＯ）、ステップ７でインターリーブコマンド１１ｈがＮＡＮＤターゲットに書き込まれ、方法はステップＳ１を続行する。
【００３４】
ステップＳ１で入来データが使用可能でない場合（ＮＯ）、ステップＳ１２で記録の最後に到達したかどうかのチェックが行われる。記録の最後に到達していない場合（ＮＯ）、方法はさらにステップＳ１を続行する。記録の最後に到達した場合（ＹＥＳ）、方法は、ステップＳ１３で、レジスタに終了していないページが残っているかどうかをチェックする。
【００３５】
レジスタに終了していないページが残っている場合（ＹＥＳ）、ステップＳ１４で、ページプログラム８０ｈコマンドがＮＡＮＤターゲットに書き込まれ、ステップＳ１５で、ＬＵＮアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがＮＡＮＤフラッシュ装置に書き込まれる。次いで、方法はさらにステップＳ８を続行する。
【００３６】
ステップＳ１３でレジスタに終了していないページが残っていない場合（ＮＯ）、ステップＳ１６で、方法は、ページプログラム１０ｈまたはページキャッシュプログラム１５ｈコマンドを使用してターゲットのそれぞれのページへのデータの格納を続行する。次いで方法は、ステップＳ１で再開する。
【００３７】
ページプログラムコマンドまたはキャッシュページプログラムコマンドを使用して論理ユニットのページにデータを格納することは、２つのサイクルを必要とすることに留意されたい。第１のサイクルにおいて、８０ｈコマンドを使用してページプログラムおよびキャッシュページプログラムの両方が開始される。第２のサイクルにおいて、ページプログラムには１０ｈコマンドが発行され、キャッシュページプログラムには１５ｈコマンドが発行される。
【００３８】
図３は、本発明によるターゲット状態図を示す。別途に考慮される本発明によるターゲット状態図は、ＯＮＦＩ標準によるターゲット状態図に対応する。初期状態はＴ＿Ｉｄｌｅである。コマンドが受信された後、ターゲットは、受信されたコマンドを状態Ｔ＿Ｃｍｄ＿Ｄｅｃｏｄｅで復号する。復号されたコマンドがページプログラム８０ｈコマンドである場合、ターゲットは、状態Ｔ＿ＰＰ＿Ｅｘｅｃｕｔｅに切り替わる。次いで、ターゲットはｔＬａｓｔＣｍｄを８０ｈに設定する。Ｒ／Ｂ＃がゼロにクリアされた場合、ｔｂＳｔａｔｕｓ７８ｈＲｅｑがＴＲＵＥに設定される。さらに、すべてのＬＵＮは、そのページレジスタをクリアするよう要求される。次いで、状態Ｔ＿ＰＰ＿ＡｄｄｒＷａｉｔで、ターゲットは、アドレスサイクルを待つ。アドレスサイクルが受信された後、受信されたアドレスサイクルが状態Ｔ＿ＰＰ＿Ａｄｄｒで格納される。さらなるアドレスサイクルが必要である場合、ターゲットは、再度Ｔ＿ＰＰ＿ＡｄｄｒＷａｉｔに切り替わって、次のアドレスサイクルを受信する。さらなるアドレスサイクルが必要ない場合、ターゲットは、状態Ｔ＿ＰＰ＿ＬＵＮ＿Ｅｘｅｃｕｔｅに切り替わる。受信された行アドレスによって示されるＬＵＮが選択され、ターゲットは、プログラムをＬＵＮに発行する。次いで、ターゲットは、状態Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔでホストから受信されるデータワードまたはコマンドサイクルを待ち、状態Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＰａｓｓでデータワードを選択されたＬＵＮに渡す。コマンドがＴ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔで受信されると、ターゲットは、状態Ｔ＿ＰＰ＿Ｃｍｄ＿Ｐａｓｓに切り替わる。次いで、コマンドがそれぞれのＬＵＮに渡される。コマンドが１１ｈコマンドである場合、ターゲットは、状態Ｔ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わって、次のコマンドが発行されるのを待つ。このコマンドがページプログラム８０ｈである場合、上記の方法に従って、次のバイトがＬＵＮに書き込まれる。一方、コマンドが１０ｈまたは１５ｈのコマンドである場合、ターゲットは、初期状態Ｔ＿Ｉｄｌｅに戻る。
【００３９】
図４は、本発明による論理ユニット状態図を示す。別途に考慮される本発明による論理ユニット状態図は、ＯＮＦＩ標準による論理ユニット状態図に対応する。初期状態はＬ＿Ｉｄｌｅである。このＬＵＮについてターゲット要求が受信された後、ＬＵＮは、状態Ｌ＿Ｉｄｌｅ＿ＴａｒｇｅｔＲｅｑｕｅｓｔに切り替わり、ターゲットによって発行されるコマンドを待つ。ターゲットがプログラム要求を示す場合、ＬＵＮはＬ＿ＰＰ＿Ｅｘｅｃｕｔｅに切り替わり、次いでＬ＿ＰＰ＿Ａｄｄｒに切り替わって、ターゲットによって受信されるアドレスを記録する。さらに、インターリーブアドレスに基づいて適切なページレジスタが選択され、受信されたコラムアドレスに従ってページレジスタにおけるコラムが選択される。次いで、ＬＵＮは、状態Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａおよびＬ＿ＰＰ＿ＡｃｃｅｐｔＤａｔａでターゲットによって渡されるデータを受信する。ＬＵＮが次いで１１ｈコマンドを受信する場合、ＬＵＮは、ターゲットがこのＬＵＮについてのさらなるプログラムコマンドを要求するまで、状態Ｌ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わる。ＬＵＮが状態Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａで１０ｈまたは１５ｈコマンドを受信する場合、ＬＵＮは、状態Ｌ＿ＰＰ＿Ｐｒｏｇ、Ｌ＿ＰＰ＿ＰｒｏｇＷａｉｔ、およびＬ＿ＰＰ＿Ｓｔｓに切り替わり、それぞれのデータをそれぞれのページにプログラムする。
【００４０】
発明の方法をより詳しく説明するために、図５は、本発明による１つのターゲットおよび２つの論理ユニットを含む固体メモリの状態図を示す。したがって、ターゲット状態および対応する論理ユニットＬＵ１、ＬＵ２の許容可能な組み合わせが示される。発明の方法は、複数の論理ユニットを含む少なくとも１つのターゲットにも適用可能であることを理解されたい。簡潔にするために、第１のサイクル８０ｈ、または第２のサイクル１０ｈ／１５ｈのページプログラムコマンドまたはページキャッシュプログラムコマンドまたはインターリーブドコマンド１１ｈが発行される状態のみが示されている。ターゲットおよびそれぞれのＬＵＮの第１の状態から第２の状態への切り替えのために、第１の状態と第２の状態との間の図３および図４による状態の切り替えも行われなければならないことを理解されたい。状態の切り替えは、ＯＮＦＩ仕様に記載されるように実行される。
【００４１】
初期状態Ｓ５０において、ターゲットは、アイドル状態Ｔ＿Ｉｄｌｅである。ＬＵＮもアイドル状態Ｌ＿Ｉｄｌｅである。ＬＵ１について、第１のサイクル８０ｈのページプログラムコマンドが受信された場合、状態Ｓ５１が起動される。したがって、ターゲットは、Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔに切り替えられ、ＬＵ１は、Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａに切り替えられる。ＬＵ２はその状態を変更していない。したがって、ＬＵ１は、現在、データの受信の用意ができている。ＬＵ１でのデータの受信後、第２のサイクルのページプログラム１０ｈまたはページキャッシュプログラム１５ｈが発行されたかどうかのチェックが行われる。この場合、データは、第１の論理ユニットＬＵ１のページにプログラムされ、状態機械は、再度アイドル状態Ｓ５０に切り替えられる。ＬＵ１についてインターリーブコマンド１１ｈが発行された場合、ターゲットはＴ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わり、ＬＵ１は、Ｌ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わる。ＬＵ２は、Ｌ＿ｉｄｌｅ状態のままである。これは、図５のＳ５２に対応する。したがって、論理ユニットＬＵ１またはＬＵ２のいずれかについて、第１のサイクルのさらなるページプログラムコマンド８０ｈを発行することができる。ＬＵ１についてページプログラムコマンド８０ｈが発行された場合、状態機械は、再度状態Ｓ５１に切り替わる。ＬＵ２についてページプログラムコマンド８０ｈが発行された場合、状態機械は、状態Ｓ５３に切り替わる。インターリーブ１１ｈコマンドが以前第１の論理ユニットに発行されているが、第１のサイクルのページプログラム８０ｈコマンドを第２の論理ユニットに発行することは、この方法の発明性の一部を形成する。したがって、状態遷移は、太い矢印によって示される。次いでターゲットは、状態Ｔ＿ＰＰ＿ＬＵＮ＿ＤａｔａＷａｉｔでホストからの新しいデータまたは新しいコマンドを待っており、ＬＵ１は、状態Ｌ＿ＰＰ＿ＩｌｖＷａｉｔで待っており、ＬＵ２は、状態Ｌ＿ＰＰ＿ＷａｉｔＦｏｒＤａｔａでデータが受信されるのを待っている。結果として、ＬＵ１は、ＬＵ２がデータを待つ状態に切り替えられる前にアイドル状態にリセットされない。したがって、発明の方法に従ってＬＵ１からＬＵ２に切り替わるとき、ＬＵ１からのページレジスタにおけるデータは失われず、これは、発明の方法の利点の１つである。
【００４２】
第１のサイクルのコマンドがＬＵ２に発行された後で状態Ｓ５３になり、したがって、状態Ｓ５３で、ＬＵ２専用の第２のサイクルのページプログラムコマンド１０ｈ、ページキャッシュプログラムコマンド１５ｈ、またはインターリーブコマンド１１ｈが許容される。ＬＵ２専用のページプログラムコマンド１０ｈまたはページキャッシュプログラムコマンド１５ｈを発行することによって、ターゲットのＴ＿Ｉｄｌｅ状態およびＬＵ２のＬ＿Ｉｄｌｅ状態をもたらす。これは、図５の状態Ｓ５４に対応する。状態Ｓ５４から、ＬＵ１またはＬＵ２についての第１のサイクルのページプログラム８０ｈまたはページキャッシュプログラム８０ｈコマンドを発行することができる。８０ｈコマンドがＬＵ１に発行される場合、状態機械は状態Ｓ５１に切り替わる。８０ｈコマンドがＬＵ２に発行される場合、状態機械は、Ｓ５３に切り替わる。
【００４３】
インターリーブ１１ｈコマンドが状態Ｓ５３でＬＵ２に発行される場合、ターゲットは、Ｔ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わり、ＬＵ２は、Ｌ＿ＰＰ＿ＩｌｖＷａｉｔに切り替わる。ＬＵ１がＬ＿ＰＰ＿ＩｌｖＷａｉｔのままであるので、状態機械は、状態Ｓ５９であり、ＬＵ１またはＬＵ２のいずれかについて、第１のサイクルの次の要求を受信する用意ができている。８０ｈコマンドがＬＵ１に発行された場合、状態機械は、ＬＵ１についてのコマンドを待つために、状態Ｓ５７に切り替わる。ＬＵ２についてのインターリーブコマンドを受信した後到達した状態Ｓ５９から、状態機械がＬＵ１専用の第２のサイクルのページプログラムコマンド１０ｈ、ページキャッシュプログラムコマンド１５ｈまたはインターリーブコマンド１１ｈを待つ状態Ｓ５７に切り替わることは、本発明の一部である。既知の方法は、ＬＵ２についてのインターリーブコマンド１１ｈによって状態Ｓ５９に到達した場合、状態Ｓ５９でＬＵ１についての第１のサイクルのページプログラムコマンド８０ｈを受信することである。次いで状態機械は、すでに上述したようにＬＵ２についてのコマンドを待つために、再度状態Ｓ５３に切り替わる。
【００４４】
コマンドが他の論理ユニットのために対応するように発行される場合、状態Ｓ５５、Ｓ５６、Ｓ５７、およびＳ５８、およびその状態の切り替えは、状態Ｓ５１、Ｓ５２、Ｓ５３、およびＳ５４およびその状態の切り替えに対応する。したがって、詳細な説明は省略する。
【００４５】
したがって、本発明によるプログラムフローは、インターリーブページプログラム１１ｈを使用して、ターゲットおよびＬＵＮを、それぞれ追加のデータを待つ状態Ｔ＿ＰＰ＿ＩｌｖＷａｉｔ、およびＬ＿ＰＰ＿ＩｌｖＷａｉｔにする。これは、図５による状態Ｓ５２、Ｓ５６、およびＳ５９の場合である。本発明によれば、１ページサイズより小さいデータブロックを第１の論理ユニットのページレジスタに書き込み、別の論理ユニットに切り替え、再度第１の論理ユニットへの切り替えが行われた後で第１の論理ユニットのページレジスタへの書き込みを引き続き行い、次いで完全なページを第１の論理ユニットにプログラムすることが可能にされる。
【００４６】
例えば異なるデータソースのデータを異なるＬＵＮに書き込むためのプログラムフローは、以下の通りである。
【００４７】
【表３】
2011096257.tif 000005
【００４８】
【表４】
2011096257.tif 000006
【図１】
2011096257.tif 000007
【図２】
2011096257.tif 000008
【図３】
2011096257.tif 000009
【図４】
2011096257.tif 000010
【図５】
2011096257.tif 000011
【外国語明細書】
2011096257000001.pdf