特許第5774838号(P5774838)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トムソン ライセンシングの特許一覧

特許5774838部分的に埋められたページの数が削減された固体メモリ
<>
  • 特許5774838-部分的に埋められたページの数が削減された固体メモリ 図000006
  • 特許5774838-部分的に埋められたページの数が削減された固体メモリ 図000007
  • 特許5774838-部分的に埋められたページの数が削減された固体メモリ 図000008
  • 特許5774838-部分的に埋められたページの数が削減された固体メモリ 図000009
  • 特許5774838-部分的に埋められたページの数が削減された固体メモリ 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5774838
(24)【登録日】2015年7月10日
(45)【発行日】2015年9月9日
(54)【発明の名称】部分的に埋められたページの数が削減された固体メモリ
(51)【国際特許分類】
   G06F 12/00 20060101AFI20150820BHJP
【FI】
   G06F12/00 560B
   G06F12/00 597U
【請求項の数】9
【外国語出願】
【全頁数】19
(21)【出願番号】特願2010-242561(P2010-242561)
(22)【出願日】2010年10月28日
(65)【公開番号】特開2011-96257(P2011-96257A)
(43)【公開日】2011年5月12日
【審査請求日】2013年8月1日
(31)【優先権主張番号】09306027.5
(32)【優先日】2009年10月29日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】501263810
【氏名又は名称】トムソン ライセンシング
【氏名又は名称原語表記】Thomson Licensing
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】オリバー カンフェンケル
(72)【発明者】
【氏名】ミカエル ドレクスレル
(72)【発明者】
【氏名】トーマス ブルーン
【審査官】 塩澤 如正
(56)【参考文献】
【文献】 特開2007−080475(JP,A)
【文献】 特開2007−305284(JP,A)
【文献】 特表2009−510656(JP,A)
【文献】 国際公開第2009/092152(WO,A1)
【文献】 国際公開第2009/079014(WO,A1)
【文献】 米国特許出願公開第2008/0250195(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − G06F 12/06
G11C 16/02 − G11C 17/18
(57)【特許請求の範囲】
【請求項1】
複数の論理ユニットを有する、少なくとも1つの入来データストリームを格納するための固体メモリであって、前記論理ユニットのそれぞれは、少なくとも1つのページを有し、前記論理ユニットのそれぞれは、前記入来データが少なくとも1つのページにプログラムされる前に、前記入来データストリームを一時的に格納するための内部バッファメモリを含み、前記内部バッファメモリにおいて前記データを受信した後、Page Program Interleavedコマンド11hを使用して、ターゲットが状態T_PP_Ilv_Waitに設定され、前記論理ユニットが状態L_PP_Ilv_Waitに設定され、前記論理ユニットの前記内部バッファメモリがフルページで埋められるまで前記ターゲットを状態T_PP_Ilv_Waitに保持し前記論理ユニットを状態L_PP_Ilv_Waitに保持しコマンド10hまたは15hを使用してこれらの前記データをページにプログラムする、ようにして、他の論理ユニットへの切り替え操作が実行されるときに、前記内部バッファメモリは、まだプログラムされていないデータを保持し、これらの状態およびコマンドはONFI標準に準拠する、前記固体メモリ。
【請求項2】
前記論理ユニットのそれぞれは、前記メモリの消去可能な最小単位である少なくとも1つのブロックを含み、前記ブロックのそれぞれは、前記メモリのプログラム可能な最小単位である少なくとも1つのページを含む、請求項1に記載の固体メモリ。
【請求項3】
前記論理ユニットの前記内部バッファメモリのうちの少なくとも1つは、ページ全体、および最高許容入力ビットレートでページの前記プログラムのサイクル中に受信された前記データを格納するための最小サイズを有する、請求項1または2に記載の固体メモリ。
【請求項4】
Open NAND Flash Interface仕様に従って動作するNANDフラッシュ装置として構成される、請求項1乃至3のうちのいずれか一項に記載の固体メモリ。
【請求項5】
1つまたは複数のカメラを含むカメラシステムであって、請求項1乃至4のいずれか一項による固体メモリを含む、前記カメラシステム。
【請求項6】
少なくとも2つのカメラを含み、異なるカメラによって捕捉されるデータストリームが異なる論理ユニットに格納される、請求項5に記載のカメラシステム。
【請求項7】
少なくとも1つのデータストリームを固体メモリにプログラムするための方法であって、前記固体メモリは、少なくとも1つの論理ユニットを含み、前記論理ユニットのそれぞれは、少なくとも1つのページを含み、ページは、一度にプログラムされる方法において、
少なくとも1つの入来データストリームを前記固体メモリに順次入力するステップと、
前記論理ユニットに含まれる内部バッファメモリに、論理ユニットに関連付けられたデータを格納するステップと
異なる論理ユニット間で切り替え操作が行われる場合、前記内部バッファメモリ内にまだプログラムされていない前記データを保持するステップと、
前記内部バッファメモリにおいて前記データを受信した後、Page Program Interleavedコマンド11hを使用して、ターゲットを状態T_PP_Ilv_Waitに設定し、論理ユニットを状態L_PP_Ilv_Waitに設定するステップと、
前記論理ユニットの前記内部バッファメモリがフルページで埋められるまで、前記ターゲットを状態T_PP_Ilv_Waitに保持し、前記論理ユニットを状態L_PP_Ilv_Waitに保持するステップと、
前記内部バッファメモリが少なくとも1つの完全なページをプログラムするためのデータを含むかどうかをチェックするステップと、前記チェックするステップが肯定である場合、前記内部バッファメモリ内の前記データをコマンド10hまたは15hを使用してページにプログラムするステップと、を含み、
これらの状態およびコマンドはONFI標準に準拠する、前記方法。
【請求項8】
異なるカメラを有するカメラシステムによって捕捉された前記入力データストリームを異なる論理ユニットに格納するステップ
をさらに含む、請求項7に記載の方法。
【請求項9】
前記コマンド10hまたは15hを使用して前記論理ユニットにフルページをプログラムした後、前記ターゲットを状態T_PP_LUN_DataWaitに設定し、前記論理ユニットを状態L_PP_WaitForDataに設定して、前記ターゲットが、アドレス指定された前記論理ユニットの前記内部バッファメモリから前記データを削除するのを防ぐステップをさらに含む、請求項7又は8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は固体メモリに関し、固体メモリは例えば複数のターゲットで構成され、各ターゲットが1つまたは複数の論理ユニット(LUN)を含み、各論理ユニットが1つまたは複数のブロックを含み、各ブロックが1つまたは複数のページを含む。こうした装置は、例えば、Open NAND Flash Interface(ONFI)仕様に従って設計されるNANDフラッシュメモリ装置である。
【背景技術】
【0002】
こうした装置は、フラッシュメモリをプログラムするための方法を記載する特許文献1で知られている。この背景におけるプログラミングは、当業者には、フラッシュメモリセルにビットを書き込み、または格納するものと理解されている。フラッシュメモリにおけるデータのプログラミングは、一度に1ページのデータをプログラムすることによって行われる。データストリームの最後にフルページをプログラムするのに十分なデータが提供されない場合、データストリームの最後にプログラムされたページは、部分的にしか埋められない。プログラムすべきデータストリームが後で続く場合、完全に埋められた他のページの間に部分的に埋められたページが存在する。これは、不十分と見なすことができる。部分的に埋められたデータページを再度読み出し、このデータページを、書き込まれるように後で提供されたデータで完全なものにし、次いでフルデータページをフラッシュメモリにプログラムすることによって、よりよい解決策が提供される。部分的に埋められたページは、追加の読み出しおよびプログラミングサイクルを犠牲にして低減される。
【0003】
特許文献2は、ブロックをフラッシュメモリの消去可能な最小単位として記載している。さらに、消去可能な最小単位はページではなくブロックであるため、容易には消去できない部分的に埋められたページの問題を記載している。したがって、フラッシュメモリは、不必要に摩滅する。
【0004】
部分的に埋められたページの影響は、2つの論理ユニットの間で切り替え操作が行われるときにも起こる。第1の論理ユニットから第2の論理ユニットへの切り替えが行われると、入力バッファに残されたデータは、第1の論理ユニットにプログラムされ、その後、第2の論理ユニットへの切り替えが行われる。後にデータが第1の論理ユニットにプログラムされる場合、データをプログラムするために新しいページが使用され、したがって、この論理ユニットにおいて部分的に使用されるページが生じる。
【0005】
Open NAND Flash Interface(ONFI)仕様によれば、NANDフラッシュ装置にデータを書き込むことは、ターゲットに対して、対応する論理ユニット番号(LUN)、ブロックアドレス、およびページアドレスと共にPROGRAM PAGEコマンドを発行することによって行われる。その後、通常数キロバイトの完全なメモリページのデータが、選択された論理ユニットのページレジスタに書き込まれる。フルページがページレジスタに書き込まれると、論理ユニットは、このメモリアレイに対するデータのプログラムを開始する。プログラミング中、論理ユニットはビジーであり、最初のページのプログラミングが終了した後、次のページを論理ユニットのページレジスタに書き込むことができる。完全なページがページレジスタに書き込まれ、ページプログラムが開始した後、ターゲットの他の論理ユニットを選択し、使用することができる。ONFI仕様では、部分的なページをプログラムする可能性も提供するが、追加のプログラミング時間がかかり、到達可能な帯域幅が低減することになる。
【0006】
ONFI仕様に従って、以下のプログラミング命令が定義される。
【0007】
PAGE PROGRAM:データがデータレジスタに書き込まれ、データフェーズが終了した後、プログラミングが開始する。
【0008】
PAGE CACHE PROGRAM:データがデータレジスタに書き込まれ、データフェーズが終了した後、データレジスタの中身がキャッシュレジスタにコピーされ、プログラミングが開始する。
【0009】
PAGE PROGRAM INTERLEAVED:データが1つのLUNの複数のデータレジスタに書き込まれ、最後のデータレジスタが埋められるとプログラミングが開始する。
【0010】
完全なデータページをNAND装置のページレジスタに書き込み、メモリアレイへのプログラミングを開始するために、既知のページプログラムフローが使用される。各手順によって、ターゲットの状態機械および論理ユニットの状態機械のいくつかの状態の切り替えがもたらされる。手順に依存する状態機械の状態の切り替えを以下に示す。
【0011】
【表1】
【0012】
インターリーブ動作(Interleaved operation)によって、同じ論理ユニットの異なるブロックに同じタイプの複数のコマンドを発行することができる。論理ユニットの複数の独立したページレジスタに完全なデータページを書き込み、すべてのレジスタが埋められるとメモリアレイに対するプログラムを開始するために、既知のインターリーブページプログラムフロー(interleaved page program flow)が使用される。
【0013】
【表2】
【0014】
2つの独立したソースのデータがターゲットの独立したLUNに記録される場合、まず上述したプロセスのうちの1つが第1の独立したソースのための第1のLUNに発行され、書き込みプロセスを終了した後、上述したプロセスのうちの1つが第2のLUNに第2の独立したソースのデータを書き込むための第2のLUNに発行される。
【0015】
独立した並行するストリームをフラッシュ装置に記録すべきとき、異なる論理ユニットに異なるストリームを書き込むことが有利である。ファイル管理は、こうした通常の戦略でより簡単であり、入来データストリームの記録のために、論理ユニットの全帯域幅が保証される。ストリームのデータがページサイズより小さいサイズのブロックに到達した場合、1つの論理ユニットのフルページがプログラムの用意ができているとき、フラッシュ装置の外部に配置されているキャッシュに各ストリームのデータをキャッシュし、それをNANDフラッシュ装置に書き込む必要がある。ストリームおよび論理ユニットの量によって、メモリ装置の外部にたくさんのキャッシュメモリが必要であるが、装置内の使用可能なページレジスタは、未使用のままである。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】米国特許出願公開第2008/0183949号明細書
【特許文献2】米国特許出願公開第2006/0136656号明細書
【発明の概要】
【0017】
本発明の1つの目的は、固体メモリ、および部分的に埋められたページの問題を低減する固体メモリを動作させるための方法を提供することである。本発明のさらなる目的は、固体メモリ、および外部のキャッシュメモリの必要性を低減し、複数の入来データストリームがフラッシュ装置にプログラムされる場合、内部ページレジスタを使用する固体メモリを動作させるための方法を提供することである。
【0018】
論理ユニットのページレジスタを対応する入来データストリームの入力バッファとして使用するために、他の論理ユニットにおけるページをまだ完全に埋めることができない場合でさえ、現在の入来ストリームの性質に応じて、アクティブな論理ユニットを切り替える必要がある。ONFI仕様は、この問題に対応しておらず、また専用の機構を提供していない。
【0019】
本発明によれば、少なくとも1つの入来データストリームを格納するための固体メモリは、1つのターゲット内に複数の論理ユニットを有する。各論理ユニットは、メモリにデータをプログラムするための少なくとも1つのページを有する。固体メモリは、入来データが少なくとも1つのページにプログラムされる前に入来データストリームを一時的に格納するための、しばしばページレジスタと呼ばれる内部バッファメモリを含む。さらに、内部バッファメモリは、異なる論理ユニット間の切り替え操作が実行されるとき、まだプログラミングされていないデータを保持する。これは、第1の論理ユニットから第2の論理ユニットに切り替える場合、ページを完全に埋めるにはまだ十分ではない残りのデータがプログラムされる必要なく、ページレジスタに保持されるという利点を有する。後に、この論理ユニットのためのより多くのデータが提供された場合、このデータは残りのデータに追加され、残りのデータおよび新しいデータが一緒にフルページとしてプログラムされる。これによって、部分的にすぎないページのプログラミングが省かれるため、特定の論理ユニットをプログラムするための全ビットレートが向上する。フルページおよび部分的なページのプログラミングは、ほぼ同じ時間を必要とするので、いかなるときでもフルページのみのプログラムに注意が払われる場合、特定の量のデータをプログラムするために必要なプログラミングサイクルは少なくてすむ。さらに、固体メモリ装置におけるデータで部分的にしか埋められていない固体メモリ装置におけるページの問題が省かれる。固体メモリは、より効率的に使用される。
【0020】
有利には、固体メモリは、ターゲットのグループとして構成され、各ターゲットは、少なくとも1つの論理ユニットを含む。各論理ユニットは、この論理ユニットにプログラムすべき入来データを一時的に格納するためのページレジスタを備える。さらに、各論理ユニットは、少なくとも1つのブロックを含む。メモリの消去は、ブロック単位で行われる。各ブロックは、少なくとも1つのページを含む。1つのページになるように格納されるデータは、一度にプログラムされる。
【0021】
固体メモリの各論理ユニットは、データがページにプログラムされる前に入来データストリームを一時的に格納するための内部バッファを有するのが好ましい。内部バッファのサイズは、少なくとも1ページのサイズ+最高許容入力ビットレートでページのプログラミングサイクル中に受信されたデータのサイズである。したがって、以下の通りである。
SizeinternalBuffer≧SizePage+TimePageProgramCycle*BitrateInputData
これには、ページのプログラミング中に内部バッファにおいて次のページをプログラムするためのデータを受信することもできるという利点がある。例えば2ページのサイズの内部バッファは、入力データのビットレートが十分高い場合、別のページのプログラミングサイクル中にプログラムされるページ全体のためのデータを受信することができる。したがって、全待ち時間が低減し、固体メモリのビットレートがさらに向上する。
【0022】
有利には、記憶装置は、Open NAND Flash Interface(ONFI)仕様に従って動作するNANDフラッシュ装置である。ONFI仕様は、異なる論理ユニット間の切り替えが実行される場合、部分的にプログラムされたページを省き、プログラミング時間を低減し、したがって部分的なページのプログラミングの場合にプログラミングビットレートを低減するための固有のアルゴリズムを見越していない。提案されたメモリ装置には、本質的にONFI仕様に従っており、同時に部分的なページを省くという利点がある。本発明による装置は、ONFI標準の既知の実施例から逸脱するだけである。依然としてONFI標準のプログラム命令が使用される。当分野で知られている実施ルールからの逸脱は、ONFI標準に反していない。したがって、本発明による装置は、依然としてONFI標準に準拠すると見なすことができる。さらに、適当なときはいつでも完全なページがプログラムされるため、プログラミング時間が低減される。その上、本発明は、ページ指向の方法で動作し、研究環境の測定データを捕捉するための、特にいくつかの測定データストリームを並列または類似の環境で捕捉するための中央記憶装置として、例えばストリーミングの用途、特にいくつかの映像ソースの並列したストリーミングに適用可能な固体記憶装置に関する。
【0023】
固体メモリは、1つまたは複数のカメラを含む映像捕捉カメラシステムの一部であるのが好ましい。カメラによって発行されるデータが固体メモリ装置に提供される。有利には、固体メモリは、異なるカメラによって捕捉されるデータストリームを異なる論理ユニットに格納する。カメラシステムは、3D映像捕捉のために提供されるのが好ましい。この場合、いくつかの映像ストリームが生成され、そのうちの少なくとも1つは高データレートである。その映像データストリームは、リアルタイムで並列に格納されなければならない。固体メモリは、上述したように、カメラシステムにいくつかの利点を提供する。異なるカメラのデータストリームを異なる論理ユニットに格納することには、容易なファイル構成が提供され、階層型のメモリ構造に従ってデータがまとめられるという利点がある。したがって、特に複数のカメラを含むカメラシステムを使用することは、例えば3D捕捉には必須であるので、複数のデータストリームが同時に格納されなければならない。さらに、カメラから出力されるデータストリームは、通常、高データレートを有する。HD(高精細度)カメラを使用すると、1つのカメラのデータストリームは、例えば、最高2Gbit/sである。本発明による固体ストレージは、こうしたシステムには特に有利である。というのは、記憶装置の入力データレートは、部分的に埋められたページを書き込み、読み取ることによって不必要に低減されないからである。異なるカメラのデータストリームが異なる論理ユニットに格納される、複数のカメラを含むシステムにおいて恩恵が高い。というのは、こうしたシステムにおいて、異なる論理ユニット間の切り替えが定期的に行われ、1サイクルで書き込まれない、または部分的にしか書き込まれないページの問題が頻繁に生じるからである。3D捕捉に加えて、多次元の捕捉も映画業界の注目の的である。本発明は、多次元環境のリアルタイムのシーンの捕捉も対象とする。
【0024】
少なくとも1つの論理ユニットを含む固体記憶装置を動作させるための方法が実施されるのが好ましい。各論理ユニットは、少なくとも1ページ、および一度にプログラムされるページを含む。本発明による方法において、少なくとも1つの入来データストリームが固体メモリに順次入力される。データは、内部バッファ、すなわちページレジスタに一時的に格納される。内部バッファは、例えば、1つの論理ユニットに割り振られる上述したようなバッファである。1つの完全なページをプログラムするのに十分なデータの量を内部バッファが含むかどうかのチェックステップが行われる。内部バッファが1つの完全なページをプログラムするのに十分なデータを含んでいる場合、少なくとも1つの完全なぺージがプログラムされる。1つの完全なページに十分なデータは、1つの完全なページに必要なものよりほんのわずかに多いデータであり得るが、いくつかの完全なページを埋めるのに十分なデータである可能性もある。異なる論理ユニット間での切り替え操作が行われる場合、現在アクティブな論理ユニットの内部バッファのまだプログラムされていないデータが内部バッファに保持される。次いで、論理ユニット間の切り替えが行われる。これには、第1の論理ユニットから第2の論理ユニットに切り替える前に、完全なページを埋めない残りのデータがプログラムされる必要はなく、内部バッファに保持され、切り替えが終了した後、依然として保持されるという利点がある。後に、この論理ユニットのためのより多くのデータが提供された場合、このデータは残りのデータに追加され、残りのデータおよび新しいデータが一緒にフルページとしてプログラムされる。これによって、全プログラミング時間が低減する。というのは、部分的なページのプログラミングは、フルページのプログラミングとほぼ同じ処理時間を必要とするからである。したがって、フルページのみをプログラムすることによって、プログラミングの帯域幅が向上する。さらに、固体メモリ装置における1つのプログラミングサイクル中にデータで部分的にしか埋められていないページの問題が省かれる。固体メモリは、より効率的に使用される。
【0025】
有利には、この方法は、異なるカメラによって捕捉される入力データストリームを異なる論理ユニットに格納するために使用される。異なるカメラのデータストリームを異なる論理ユニットに格納することには、容易なファイル構成が提供され、階層型のメモリ構造に従ってデータがまとめられるという利点がある。したがって、特に複数のカメラを含むカメラシステムを使用することは、例えば3D捕捉には必須であるので、複数のデータストリームが同時に格納されなければならない。さらに、カメラから出力されるデータストリームは、通常、高データレートを有する。HD(高精細度)カメラを使用すると、1つのカメラのデータストリームは、例えば、最高2Gbit/sである。提供される固体ストレージは、こうしたシステムには特に有利である。というのは、ストレージの入力データレートは、部分的なページを読み取り、書き込むことによって不必要に低減されないからである。異なるカメラのデータストリームが異なる論理ユニットに格納される、複数のカメラを含むシステムにおいて恩恵が高い。というのは、こうしたシステムにおいて、異なる論理ユニット間の切り替えが定期的に行われ、部分的なページの問題が頻繁に生じるからである。3D捕捉に加えて、多次元の捕捉も映画業界の注目の的である。本発明は、多次元環境のシーンの捕捉も対象とする。
【0026】
この方法は、Open NAND Flash Interface(ONFI)仕様に従って動作するのが好ましい。有利には、1つの論理ユニットのデータがデータレジスタで受信された後、論理ユニットの切り替えが実行される場合、ターゲットは、Page Program Interleavedコマンド11hを使用して状態T_PP_Ilv_Waitに設定される。このコマンドを使用して、論理ユニットは、状態L_PP_Ilv_Waitに設定される。その後、LUNのデータレジスタがフルページで埋められるまで、ターゲットは、状態T_PP_Ilv_Waitに保持され、論理ユニットは、状態L_PP_Ilv_Waitに保持される。次いで、これらのデータは、コマンド10hまたは15hを使用して1ページにプログラムされる。コマンド10hまたは15hを使用して論理ユニットにフルページをプログラムした後、ターゲットを状態T_PP_LUN_DataWaitに設定し、論理ユニットを状態L_PP_WaitForDataに設定して、ターゲットがアドレス指定された論理ユニットのページレジスタからデータを削除するのを防ぐ。
【0027】
よりよく理解するために、次に、本発明について、図を参照して以下の説明でより詳しく説明する。本発明は、これらの実施形態例に限定されず、指定された特徴は、本発明の範囲から逸脱することなく、便宜上結合する、および/または変更することもできることを理解されたい。
【図面の簡単な説明】
【0028】
図1】固体メモリ装置の階層型の構造を示す図である。
図2】本発明による固体メモリ装置を動作させるための方法を示す図である。
図3】本発明によるターゲットの状態図である。
図4】本発明による論理ユニットの状態図である。
図5】本発明による1つのターゲットおよび2つの論理ユニットを含む固体メモリの状態図である。
【発明を実施するための形態】
【0029】
図1は、本発明によるONFI仕様コマンドセットによって動作するNANDフラッシュメモリの構造を示す。NANDフラッシュメモリは、ターゲットとして構成される。ターゲットは、1つまたは複数の論理ユニットLOGICAL UNIT 0、LOGICAL UNIT 1、...、LOGICAL UNIT Lを含み、各論理ユニットLOGICAL UNIT 0、LOGICAL UNIT 1、...、LOGICAL UNIT Lは、複数のブロックBLOCK 0、BLOCK 1、...、BLOCK Mを含み、1つのブロックBLOCK 0、BLOCK 1、...、BLOCK Mは、複数のページPAGE 0、PAGE 1、...、PAGE Nを含む。ページPAGE 0、PAGE 1、...、PAGE Nは、通常、読み取りまたは書き込み単位である。これは、1ページが一回のステップで読み取るまたは書き込むことができる最小データ数を含むことを意味する。ブロックBLOCK 0、BLOCK 1、...、BLOCK Mは、通常、消去単位である。これは、ブロックが一回のステップで消去することができる最小データ数を含むことを意味する。論理ユニットLOGICAL UNIT 0、LOGICAL UNIT 1、...、LOGICAL UNIT Lは、独立して動作する動作単位である。各論理ユニットLOGICAL UNIT 0、LOGICAL UNIT 1、...、LOGICAL UNIT Lは、書き込まれるまたは読み取られるデータを一時的に格納するためのページレジスタPAGE REGISTERを含む。さらに、各論理ユニットは、論理ユニットLOGICAL UNIT 0、LOGICAL UNIT 1、...、LOGICAL UNIT Lを動作させるためのコントローラユニットCU_LU_0、CU_LU_1、...、CU_LU_Lを含む。ターゲットTARGETは、さらに、ターゲットレベルで装置を制御するターゲット制御ユニットCU_TRGを含む。
【0030】
図2は、本発明による装置のプログラムフローを示す。ステップS1において、入来データが使用可能であるかどうかのチェックが行われる。
【0031】
入来データが使用可能である場合(YES)、ステップS2でページプログラムコマンド80hがターゲットに書き込まれる。ステップS3で、LUNアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがNANDフラッシュターゲットのページレジスタに書き込まれる。ステップS4で、次のデータワードがNANDフラッシュターゲットに書き込まれる。次いで、ステップS5で、完全なページがフラッシュターゲットのページレジスタにおいて使用可能かどうかのチェックが行われる。
【0032】
完全なページが使用可能である場合(YES)、ステップ8で、ページプログラム10hまたはページキャッシュプログラム15hコマンドを使用して、ターゲットのそれぞれのページにデータが格納される。ステップS9で、ページアドレスおよびブロックアドレスが増分される。次いで、ステップ10で、さらなるページプログラムコマンド80hがターゲットに書き込まれる。ステップS11において、LUNアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがNANDフラッシュターゲットのページレジスタに書き込まれる。
【0033】
ステップ6は、ステップS5で完全なページが使用可能でない場合(NO)に実行される。ステップ6は、ステップS11の後にも実行される。ステップ6において、使用可能な残りのバイトがあるかどうかのチェックが行われる。使用可能な残りのバイトがある場合(YES)、方法はステップS4を続行する。使用可能な残りのバイトがない場合(NO)、ステップ7でインターリーブコマンド11hがNANDターゲットに書き込まれ、方法はステップS1を続行する。
【0034】
ステップS1で入来データが使用可能でない場合(NO)、ステップS12で記録の最後に到達したかどうかのチェックが行われる。記録の最後に到達していない場合(NO)、方法はさらにステップS1を続行する。記録の最後に到達した場合(YES)、方法は、ステップS13で、レジスタに終了していないページが残っているかどうかをチェックする。
【0035】
レジスタに終了していないページが残っている場合(YES)、ステップS14で、ページプログラム80hコマンドがNANDターゲットに書き込まれ、ステップS15で、LUNアドレス、ブロックアドレス、ページアドレス、およびコラムアドレスがNANDフラッシュ装置に書き込まれる。次いで、方法はさらにステップS8を続行する。
【0036】
ステップS13でレジスタに終了していないページが残っていない場合(NO)、ステップS16で、方法は、ページプログラム10hまたはページキャッシュプログラム15hコマンドを使用してターゲットのそれぞれのページへのデータの格納を続行する。次いで方法は、ステップS1で再開する。
【0037】
ページプログラムコマンドまたはキャッシュページプログラムコマンドを使用して論理ユニットのページにデータを格納することは、2つのサイクルを必要とすることに留意されたい。第1のサイクルにおいて、80hコマンドを使用してページプログラムおよびキャッシュページプログラムの両方が開始される。第2のサイクルにおいて、ページプログラムには10hコマンドが発行され、キャッシュページプログラムには15hコマンドが発行される。
【0038】
図3は、本発明によるターゲット状態図を示す。別途に考慮される本発明によるターゲット状態図は、ONFI標準によるターゲット状態図に対応する。初期状態はT_Idleである。コマンドが受信された後、ターゲットは、受信されたコマンドを状態T_Cmd_Decodeで復号する。復号されたコマンドがページプログラム80hコマンドである場合、ターゲットは、状態T_PP_Executeに切り替わる。次いで、ターゲットはtLastCmdを80hに設定する。R/B#がゼロにクリアされた場合、tbStatus78hReqがTRUEに設定される。さらに、すべてのLUNは、そのページレジスタをクリアするよう要求される。次いで、状態T_PP_AddrWaitで、ターゲットは、アドレスサイクルを待つ。アドレスサイクルが受信された後、受信されたアドレスサイクルが状態T_PP_Addrで格納される。さらなるアドレスサイクルが必要である場合、ターゲットは、再度T_PP_AddrWaitに切り替わって、次のアドレスサイクルを受信する。さらなるアドレスサイクルが必要ない場合、ターゲットは、状態T_PP_LUN_Executeに切り替わる。受信された行アドレスによって示されるLUNが選択され、ターゲットは、プログラムをLUNに発行する。次いで、ターゲットは、状態T_PP_LUN_DataWaitでホストから受信されるデータワードまたはコマンドサイクルを待ち、状態T_PP_LUN_DataPassでデータワードを選択されたLUNに渡す。コマンドがT_PP_LUN_DataWaitで受信されると、ターゲットは、状態T_PP_Cmd_Passに切り替わる。次いで、コマンドがそれぞれのLUNに渡される。コマンドが11hコマンドである場合、ターゲットは、状態T_PP_IlvWaitに切り替わって、次のコマンドが発行されるのを待つ。このコマンドがページプログラム80hである場合、上記の方法に従って、次のバイトがLUNに書き込まれる。一方、コマンドが10hまたは15hのコマンドである場合、ターゲットは、初期状態T_Idleに戻る。
【0039】
図4は、本発明による論理ユニット状態図を示す。別途に考慮される本発明による論理ユニット状態図は、ONFI標準による論理ユニット状態図に対応する。初期状態はL_Idleである。このLUNについてターゲット要求が受信された後、LUNは、状態L_Idle_TargetRequestに切り替わり、ターゲットによって発行されるコマンドを待つ。ターゲットがプログラム要求を示す場合、LUNはL_PP_Executeに切り替わり、次いでL_PP_Addrに切り替わって、ターゲットによって受信されるアドレスを記録する。さらに、インターリーブアドレスに基づいて適切なページレジスタが選択され、受信されたコラムアドレスに従ってページレジスタにおけるコラムが選択される。次いで、LUNは、状態L_PP_WaitForDataおよびL_PP_AcceptDataでターゲットによって渡されるデータを受信する。LUNが次いで11hコマンドを受信する場合、LUNは、ターゲットがこのLUNについてのさらなるプログラムコマンドを要求するまで、状態L_PP_IlvWaitに切り替わる。LUNが状態L_PP_WaitForDataで10hまたは15hコマンドを受信する場合、LUNは、状態L_PP_Prog、L_PP_ProgWait、およびL_PP_Stsに切り替わり、それぞれのデータをそれぞれのページにプログラムする。
【0040】
発明の方法をより詳しく説明するために、図5は、本発明による1つのターゲットおよび2つの論理ユニットを含む固体メモリの状態図を示す。したがって、ターゲット状態および対応する論理ユニットLU1、LU2の許容可能な組み合わせが示される。発明の方法は、複数の論理ユニットを含む少なくとも1つのターゲットにも適用可能であることを理解されたい。簡潔にするために、第1のサイクル80h、または第2のサイクル10h/15hのページプログラムコマンドまたはページキャッシュプログラムコマンドまたはインターリーブドコマンド11hが発行される状態のみが示されている。ターゲットおよびそれぞれのLUNの第1の状態から第2の状態への切り替えのために、第1の状態と第2の状態との間の図3および図4による状態の切り替えも行われなければならないことを理解されたい。状態の切り替えは、ONFI仕様に記載されるように実行される。
【0041】
初期状態S50において、ターゲットは、アイドル状態T_Idleである。LUNもアイドル状態L_Idleである。LU1について、第1のサイクル80hのページプログラムコマンドが受信された場合、状態S51が起動される。したがって、ターゲットは、T_PP_LUN_DataWaitに切り替えられ、LU1は、L_PP_WaitForDataに切り替えられる。LU2はその状態を変更していない。したがって、LU1は、現在、データの受信の用意ができている。LU1でのデータの受信後、第2のサイクルのページプログラム10hまたはページキャッシュプログラム15hが発行されたかどうかのチェックが行われる。この場合、データは、第1の論理ユニットLU1のページにプログラムされ、状態機械は、再度アイドル状態S50に切り替えられる。LU1についてインターリーブコマンド11hが発行された場合、ターゲットはT_PP_IlvWaitに切り替わり、LU1は、L_PP_IlvWaitに切り替わる。LU2は、L_idle状態のままである。これは、図5のS52に対応する。したがって、論理ユニットLU1またはLU2のいずれかについて、第1のサイクルのさらなるページプログラムコマンド80hを発行することができる。LU1についてページプログラムコマンド80hが発行された場合、状態機械は、再度状態S51に切り替わる。LU2についてページプログラムコマンド80hが発行された場合、状態機械は、状態S53に切り替わる。インターリーブ11hコマンドが以前第1の論理ユニットに発行されているが、第1のサイクルのページプログラム80hコマンドを第2の論理ユニットに発行することは、この方法の発明性の一部を形成する。したがって、状態遷移は、太い矢印によって示される。次いでターゲットは、状態T_PP_LUN_DataWaitでホストからの新しいデータまたは新しいコマンドを待っており、LU1は、状態L_PP_IlvWaitで待っており、LU2は、状態L_PP_WaitForDataでデータが受信されるのを待っている。結果として、LU1は、LU2がデータを待つ状態に切り替えられる前にアイドル状態にリセットされない。したがって、発明の方法に従ってLU1からLU2に切り替わるとき、LU1からのページレジスタにおけるデータは失われず、これは、発明の方法の利点の1つである。
【0042】
第1のサイクルのコマンドがLU2に発行された後で状態S53になり、したがって、状態S53で、LU2専用の第2のサイクルのページプログラムコマンド10h、ページキャッシュプログラムコマンド15h、またはインターリーブコマンド11hが許容される。LU2専用のページプログラムコマンド10hまたはページキャッシュプログラムコマンド15hを発行することによって、ターゲットのT_Idle状態およびLU2のL_Idle状態をもたらす。これは、図5の状態S54に対応する。状態S54から、LU1またはLU2についての第1のサイクルのページプログラム80hまたはページキャッシュプログラム80hコマンドを発行することができる。80hコマンドがLU1に発行される場合、状態機械は状態S51に切り替わる。80hコマンドがLU2に発行される場合、状態機械は、S53に切り替わる。
【0043】
インターリーブ11hコマンドが状態S53でLU2に発行される場合、ターゲットは、T_PP_IlvWaitに切り替わり、LU2は、L_PP_IlvWaitに切り替わる。LU1がL_PP_IlvWaitのままであるので、状態機械は、状態S59であり、LU1またはLU2のいずれかについて、第1のサイクルの次の要求を受信する用意ができている。80hコマンドがLU1に発行された場合、状態機械は、LU1についてのコマンドを待つために、状態S57に切り替わる。LU2についてのインターリーブコマンドを受信した後到達した状態S59から、状態機械がLU1専用の第2のサイクルのページプログラムコマンド10h、ページキャッシュプログラムコマンド15hまたはインターリーブコマンド11hを待つ状態S57に切り替わることは、本発明の一部である。既知の方法は、LU2についてのインターリーブコマンド11hによって状態S59に到達した場合、状態S59でLU1についての第1のサイクルのページプログラムコマンド80hを受信することである。次いで状態機械は、すでに上述したようにLU2についてのコマンドを待つために、再度状態S53に切り替わる。
【0044】
コマンドが他の論理ユニットのために対応するように発行される場合、状態S55、S56、S57、およびS58、およびその状態の切り替えは、状態S51、S52、S53、およびS54およびその状態の切り替えに対応する。したがって、詳細な説明は省略する。
【0045】
したがって、本発明によるプログラムフローは、インターリーブページプログラム11hを使用して、ターゲットおよびLUNを、それぞれ追加のデータを待つ状態T_PP_IlvWait、およびL_PP_IlvWaitにする。これは、図5による状態S52、S56、およびS59の場合である。本発明によれば、1ページサイズより小さいデータブロックを第1の論理ユニットのページレジスタに書き込み、別の論理ユニットに切り替え、再度第1の論理ユニットへの切り替えが行われた後で第1の論理ユニットのページレジスタへの書き込みを引き続き行い、次いで完全なページを第1の論理ユニットにプログラムすることが可能にされる。
【0046】
例えば異なるデータソースのデータを異なるLUNに書き込むためのプログラムフローは、以下の通りである。
【0047】
【表3】
【0048】
【表4】
(付記1)
少なくとも1つの入来データストリームを格納するための固体メモリであって、複数の論理ユニットを有し、前記論理ユニットのそれぞれは、少なくとも1つのページを有し、前記論理ユニットのそれぞれは、前記入来データが少なくとも1つのページにプログラムされる前に、前記入来データストリームを一時的に格納するための内部バッファメモリを含み、前記内部バッファメモリは、他の前記論理ユニットへの切り替え操作が実行されると、まだプログラムされていないデータを保持する、前記固体メモリ。
(付記2)
前記論理ユニットのそれぞれは、前記メモリの消去可能な最小単位である少なくとも1つのブロックを含み、前記ブロックのそれぞれは、前記メモリのプログラム可能な最小単位である少なくとも1つのページを含む、付記1に記載の固体メモリ。
(付記3)
複数の前記論理ユニットの複数の前記内部バッファのうちの少なくとも1つは、ページ全体、および最高許容入力ビットレートでページの前記プログラムのサイクル中に受信された前記データを格納するための最小サイズを有する、付記1または2に記載の固体メモリ。
(付記4)
前記記憶装置は、Open NAND Flash Interface仕様に従って動作するNANDフラッシュ装置である、付記1乃至3の一項に記載の固体メモリ。
(付記5)
1つまたは複数のカメラを含むカメラシステムであって、請求項1乃至4のいずれか一項による固体メモリを含む、カメラシステム。
(付記6)
少なくとも2つのカメラを含み、異なるカメラによって捕捉されるデータストリームが異なる論理ユニットに格納される、付記5に記載のカメラシステム。
(付記7)
少なくとも1つのデータストリームを固体メモリにプログラムするための方法であって、前記固体メモリは、少なくとも1つの論理ユニットを含み、前記論理ユニットのそれぞれは、少なくとも1つのページを含み、ページは、一度にプログラミングされる方法において、
少なくとも1つの入来データストリームを前記固体メモリに順次入力するステップと、
1つの前記論理ユニットに含まれる内部バッファに前記1つの前記論理ユニットに関連付けられたデータを格納するステップと、
前記バッファは少なくとも1つの完全なページをプログラムするためのデータを含むかどうかのチェックを行うステップと、
前記チェックステップが肯定である場合、少なくとも1つのページをプログラムするステップと、
異なる前記論理ユニット間で切り替え操作が行われる場合、前記内部バッファメモリ内にまだプログラムされていない前記データを保持するステップと
を含む、前記方法。
(付記8)
異なるカメラを有するカメラシステムによって捕捉される前記入力データストリームを異なる複数の前記論理ユニットに格納するステップ
をさらに含む、付記7に記載の方法。
(付記9)
データレジスタ内の前記データを受信した後、Page Program Interleavedコマンド11hを使用して、ターゲットを状態T_PP_IlvWaitに設定し、論理ユニットを状態L_PP_IlvWaitに設定するステップと、
LUNの前記データレジスタがフルページで埋められるまで、前記ターゲットを状態T_PP_IlvWaitに保持し、前記論理ユニットを状態L_PP_IlvWaitに保持するステップと、
前記コマンド10hまたは15hを使用してこれらの前記データをページにプログラするステップであって、これらの状態およびコマンドはONFI標準に準拠する、ステップと
をさらに含む、付記7または8に記載の方法。
(付記10)
前記コマンド10hまたは15hを使用して前記論理ユニットにフルページをプログラムした後、ターゲットを状態T_PP_LUN_DataWaitに設定し、論理ユニットを状態L_PP_WaitForDataに設定して、前記ターゲットが前記アドレス指定された論理ユニットの前記ページレジスタから前記データを削除するのを防ぐステップであって、これらの状態およびコマンドはONFI標準に準拠する、ステップ
をさらに含む、付記7乃至9のいずれか一項に記載の方法。
図1
図2
図3
図4
図5