JP2004523049A - フラッシュベース記憶システムにおいて多重アクセスを用いたramバッファを使用する方法 - Google Patents

フラッシュベース記憶システムにおいて多重アクセスを用いたramバッファを使用する方法 Download PDF

Info

Publication number
JP2004523049A
JP2004523049A JP2002570084A JP2002570084A JP2004523049A JP 2004523049 A JP2004523049 A JP 2004523049A JP 2002570084 A JP2002570084 A JP 2002570084A JP 2002570084 A JP2002570084 A JP 2002570084A JP 2004523049 A JP2004523049 A JP 2004523049A
Authority
JP
Japan
Prior art keywords
memory
data
flash
host
logical block
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.)
Pending
Application number
JP2002570084A
Other languages
English (en)
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.)
Western Digital Israel Ltd
Original Assignee
M Systems Flash Disk Pionners Ltd
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 M Systems Flash Disk Pionners Ltd filed Critical M Systems Flash Disk Pionners Ltd
Publication of JP2004523049A publication Critical patent/JP2004523049A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

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)

Abstract

多重アクセスを用いたRAMバッファを使用することにより、フラッシュベース記憶システムの読み書き性能を向上させる方法およびシステムに関する。フラッシュベース記憶システムの読み書き性能の向上は、「RAMから」および「RAMへ」の転送操作を同時に行うことにより達成される。本発明の好ましい実施形態によれば、本発明は、ホストインタフェースからフラッシュ媒体へおよびフラッシュ媒体からホストインタフェースへの同時データ転送を可能にするシステムを提供する。また、本発明は、ホスト読取り操作中にメモリ/ホスト間およびフラッシュ/メモリ間転送を同期化するシステムを提供する。さらに、ホスト書込み操作中にホスト/メモリ間およびメモリ/フラッシュ間転送を同期化するシステムを提供する。

Description

【技術分野】
【0001】
序論および分野
本発明は、フラッシュベース記憶システムにおいて多重アクセスを用いたRAMバッファを使用する方法に関する。そのようなRAMバッファは、読み書き操作をRAMにオーバーラップさせることにより達成される、フラッシュベース記憶システムの読み書き性能の向上を可能にする。
【背景技術】
【0002】
記憶媒体としてフラッシュメモリを使用することは通常、下記の2つの特徴を有する。
【0003】
1.フラッシュに書込まれたデータは一般に、誤り検出符号および/又は誤り訂正符号(EDC/ECC)により保護されるべきである。前記データを前記フラッシュから読取ると、EDC/ECCにより、システムは、誤りが存在するか否か、およびオプションとしてその誤りを訂正すべきか否かを判定することができる。訂正は、前記EDC/ECC保護データの任意の部分で行われることがあり、従ってランダムアクセスメモリで行われるべきである。従って、データを、ホストインタフェース(例えば、SCSI又はATAバス)に直接送信することができず、最初にRAMに読取るべきである。この処理に続いて、EDC/ECC状態を調べるべきである。誤りがないことを前記EDC/ECC状態が示す場合、前記データを手渡すことができる。EDC/ECC機構が訂正可能な誤りを示す場合、データをさらに渡す前に訂正作業を行うべきである。前記EDC/ECC機構が訂正不可能な誤りを示す場合、オプションとしてこの誤りを前記ホストインタフェースに渡すこともできる。
【0004】
2.前記フラッシュへの書込み操作が、失敗する場合もある。しかし、データを別の位置に書込むことにより、この失敗をホストインタフェース(例えば、SCSI又はATA)から隠すことができる。前記書込み操作を繰り返すために、前記ホストインタフェースから到来するデータを、前記書込み操作を開始する前にRAMバッファに入れるべきである。
【0005】
これらの2つの特徴により、前記ホストインタフェースと前記フラッシュ媒体との間の直接データ転送が阻止される。媒体としてメモリバッファを使用することは通常、2つの連続転送操作、すなわち、メモリへの操作およびメモリからの操作を行う。これらの2つの連続データ転送の必要性は、必要悪として通常容認され、従って、ほとんどのフラッシュベース記憶システムにおいて有効である。
【0006】
従って、前記メモリバッファへの操作および同メモリバッファからの操作の両方を同時に可能にするシステムに対して広く認められた必要性があり、前記システムを有することは非常に有利である。
【0007】
本発明は、フラッシュベース記憶システムにおいてこれらの2つの転送操作を同時に行うことにより、前記システムの読み書き性能を向上させる方法を記載する。本発明の前記システムは、下記の要因のために既知の代替技術および解決策と区別される。
i)ホストメモリ間およびメモリフラッシュ間転送の同期化、および異なるフラッシュ関連失敗操作からの訂正回復は、本発明で記載のように実現するのが困難である。
ii)読み書き操作のために媒体としてRAMバッファを使用することは一般的なことであるのに対して、複数のRAMバッファを用いたこれらの転送操作を同時に行う具体的な記載の方法は、フラッシュベースシステムにおいて特有であり、従って革新的である。
iii)本発明は、持続読み書き性能をほぼ2倍向上させることができる。
【0008】
ほんの一例として添付図面を参照して、本発明をここに説明する。
【発明の開示】
【課題を解決するための手段】
【0009】
本発明は、多重アクセスを用いた複数のRAMバッファを使用して、フラッシュベース記憶システムの読み書き性能を大幅に向上させる方法およびシステムに関する。フラッシュベース記憶システムの読み書き性能の向上は、「RAMから」および「RAMへ」の転送操作を同時に行うことにより達成される。
【0010】
本発明の好ましい実施形態によれば、本発明は、
1.ホストシステムとの対話を可能にする処理システムと、
2.データ記憶用の少なくとも1つのフラッシュメモリ素子と、
3.フラッシュメモリに書込まれたデータおよびフラッシュから読取られたデータのシンドローム又は検査合計又はCRC(巡回冗長検査)を計算することにより誤り検出を行うオプション手段と、
4.フラッシュメモリから読取られたデータの誤り訂正を行うオプション手段と、
5.各RAM構成要素上で同時読み書き操作を可能にする別々のデータバスを有する少なくとも2つのRAM構成要素と、
を含む、ホストインタフェースと中間RAMバッファとの間および前記中間RAMバッファとフラッシュ媒体との間の同時データ転送を可能にするシステムを提供する。
【0011】
本発明の更なる特徴によれば、ホスト読取り操作中にメモリ/ホスト間およびフラッシュ/メモリ間転送を同期化するシステムを提供する。
【0012】
さらに、ホスト書込み操作中にホスト/メモリ間およびメモリ/フラッシュ間転送を同期化するシステムを提供する。
【0013】
本発明の更なる特徴によれば、ホスト読取り操作中に固体記憶システムにおいてメモリ/ホスト間およびフラッシュ/メモリ間転送を同期化する方法を提供する。
【0014】
さらに、ホスト書込み操作中に固体記憶システムにおいてホスト/メモリ間およびメモリ/フラッシュ間転送を同期化する方法を提供する。
【0015】
明細書に記載の本発明の方法およびシステムを用いてさらに実施形態を展開することができることは、固体記憶システム開発の当業者に理解されるはずである。上述の実施形態は、例として理解されるべきであり、ここに記載の技術をこれらの例だけに制限することを決して意味しない。
【発明を実施するための最良の形態】
【0016】
本発明は、多重アクセスを用いた複数のRAMバッファを使用することにより、フラッシュベース記憶システムの性能を向上させる方法およびシステムに関する。
【0017】
より詳しくは、本発明は、「RAMから」および「RAMへ」の転送操作を同時に行うシステムに関する。
【0018】
本発明による前記システムおよび方法の原理および動作は、図面および付随する説明を参照してよく分かるであろうが、これらの図面は、あくまでも例示の目的で与えられたものであり、限定を意味するものではない。
【0019】
図1および図2は、本発明によるそのようなシステムの動作を示す。図1は、ホストインタフェース10から1つのメモリバッファ12に新しいデータを受信すると同時に、前記新しいデータの前の部分を別のメモリバッファ14からフラッシュメモリ16に書込むシステムの例である。図2は、1つのメモリバッファ22からホストインタフェース20にデータを送信すると同時に、(送信されるべき)前記データの次の部分をフラッシュ26から別のメモリバッファ24に受信するシステムの例である。
【0020】
図1および図2について、中間メモリは、論理的に独立した2つ以上(A、B、C...)のメモリバッファの何れかから成る。論理的独立性により、一方のバッファに書込むことができると同時に、他方のバッファから読取ることができるようになっている。物理的に、これらのバッファは、多重化バスを有するメモリ構成要素又はデュアルポートRAM構成要素の何れかであってもよい。前記メモリ構成要素は、個別チップ又は大規模集積構成要素の一部の何れかであってもよい。デュアルポートRAMの実装の場合、メモリバッファは、デュアルポートRAM内部のメモリの指定された重複しない領域である。
【0021】
システムの論理ブロックNのデータをメモリバッファAからフラッシュ媒体に書込む(図1)場合、論理ブロックN+1のデータをホストインタフェースからメモリバッファBに同時に受信している。ここで次の説明において、「論理ブロック」は、1つ以上のホストシステム転送単位(セクタ)を表す。「論理ブロック」のサイズは、フラッシュ操作の便宜および性能により決められる。例えば、AND又はNAND技術フラッシュの場合、そのサイズを、使用されるフラッシュアレイのページサイズに設定することもできる。ホストから転送されるデータのストリームは、一連の論理ブロックN、N+1、N+2等として前記記憶システムにより見られる。
【0022】
論理的に独立したメモリバッファが2つだけある場合、Bへのデータ転送の完了時に、ソフトウェアは、Aからのフラッシュ書込み操作の完了を待ってフラッシュ書込み状態を検査すべきである。前記書込み操作が失敗している場合、フラッシュ媒体の別の場所で再試行することができる。前記書込み操作が成功している場合、メモリバッファAが空であると考えることができ、2つの新しい同時転送(メモリバッファBからフラッシュ媒体へのブロックN+1およびホストインタフェースからメモリバッファAへのブロックN+2)を開始することができる。
【0023】
2つを超える論理的に独立したメモリバッファがある場合、フラッシュ書込み又は再試行操作の完了を待つことなく、メモリへの新しい転送を開始することができる。新しいデータは、図5から分かるように、使用可能な空メモリバッファC56、D58等に収容される。すべての空メモリバッファが使用されている場合、新しいデータをさらに受信するのに別のメモリバッファを空にするために、フラッシュ書込み又は再試行操作の完了の待ちを実行するものとする。
【0024】
フラッシュ媒体にまだうまく書込まれていない(即ち、書込み状態がまだ受信されていない)データは、失敗書込み操作を再試行するのにそのデータを必要とする場合があるので、交換されるべきでない。
【0025】
ホストシステム転送単位(セクタ)のサイズがフラッシュアレイのアクセス単位サイズ(あるフラッシュ技術における「ページ」)と異なる場合、前記システムは、データのどの部分が書込み工程中にホストから転送されていないかを記録する、又はこの部分を転送前にフラッシュ媒体から多分メモリバッファに読取るべきであることにも留意すべきである。
【0026】
システムの論理ブロックN+1のデータをフラッシュ媒体26からメモリバッファA24に読取る(図2)場合、論理ブロックNのデータをメモリバッファB22からホストインタフェース20に同時に送信している。
【0027】
論理的に独立したメモリバッファが2つだけある場合、Bからのデータ転送の完了時に、ソフトウェアは、Aへの読取り操作の完了を待って読取りデータのEDC/ECC状態を検査すべきである。(ソフトウェア又は回路である)EDC/ECC機構が訂正可能な誤りを示す場合、メモリバッファA内のデータに関して訂正作業を行うことができ、前記EDC/ECC機構が訂正不可能な誤りを示す場合、オプションとしてその誤りをホストインタフェースに渡すこともできる。正しいデータが読取られている場合、又は破損データがうまく訂正されている場合、「読取り」指令を、次の論理ブロックのためにフラッシュ媒体に出すべきであり、フラッシュシステムは、必要ならば転送の準備ができるようにするために新しいデータを待つべきである。次に、2つの新しい同時転送(メモリバッファA(メモリモジュールA)からホストインタフェースへのブロックN+1およびフラッシュ媒体からメモリバッファB(メモリモジュールB)へのブロックN+2)を開始することができる。
【0028】
2つを超える論理的に独立したメモリバッファがある場合、ホストへの転送の完了を待つことなく、メモリへの新しい転送を開始することができる。新しいデータは、図6から分かるように、使用可能な空メモリバッファC66、D68等に入れられる。すべての空メモリバッファが使用されている場合、次のユーザデータを読取るのに別のメモリバッファを空にするために、ホスト操作への転送の完了の待ちを実行するものとする。ホストにまだうまく転送されていないデータを交換すべきでない。
【0029】
前記システムの読み書き性能を向上させるために、(メモリバッファへおよび同メモリバッファからの)2つの転送操作は、正確に同時であるべきであり、2つの異なるデータバスが同時に動作可能であることを意味する。当然、それは、特定の読取り又は書込み操作中にホストへ又は同ホストから転送される論理ブロックの数が1つを超える場合に可能なだけである。
【0030】
図3は、1つのメモリモジュール32からホストインタフェース30にデータを送信すると同時に、(送信されるべき)前記データの次の部分をフラッシュ36から別のメモリモジュール34に受信するシステムの例である。このシステムは、図1における前記システムと同様であるが、メモリモジュールがフラッシュメモリ制御器38内に位置するという点が異なる。
【0031】
図4は、ホストインタフェース40から1つのメモリモジュール42に新しいデータを受信すると同時に、前記新しいデータの前の部分を別のメモリモジュール44からフラッシュメモリ46に書込むシステムの例である。このシステムは、図2における前記システムと同様であるが、メモリモジュールがフラッシュメモリ制御器48内に位置するという点が異なる。
【0032】
本発明の好ましい実施形態では、ホスト読取り操作中にメモリ/ホスト間およびフラッシュ/メモリ間転送を同期化するシステムを組み込む。このシステムは、下記を含む。
i.各メモリバッファ用のメモリレジスタ又は変数(この文脈における用語「メモリレジスタ」は、用語「変数」の使用を含んでもよい)であって、前記バッファの状態を示し、前記状態は、「空」、「データ受信の処理中」、「論理ブロックNのデータを含む」および「論理ブロックNの破損データを含む」であることもできる。
ii.メモリ/ホスト間制御スレッドであって、各論理ブロックNのデータに関して、ホストに転送されるべきそのデータの一部があるメモリバッファを待って「論理ブロックNのデータを含む」状態を取得してから、前記ホストへのユーザデータのデータ転送を開始し、前記転送の完了時にそのメモリバッファに「空」のマークを付ける。ここでおよび他の場合、用語「制御スレッド」は、特定のタスクに関するソフトウェア又はハードウェア制御流れをさす。
iii.フラッシュ/メモリ間制御スレッドであって、各論理ブロックNのデータに関して、ホストに転送されるべきそのデータの一部があるメモリバッファを待って「空」の状態を取得し、オプションとしてそのメモリバッファに「データ受信の処理中」のマークを付けてから、前記データを含むフラッシュメモリ素子に読取り指令を出す。前記フラッシュ素子が前記データを生成する準備ができた場合、前記制御スレッドがフラッシュから前記メモリバッファに前記ユーザデータの前記データ転送を開始する。前記転送の完了時に、前記スレッドがECC/EDC機構(ソフトウェア又は回路)により計算されたデータ正当性状態を調べる。前記データが破損しているが、訂正可能である場合、訂正アルゴリズムを使用することができる。前記バッファに存在する前記データが正しい又は訂正されている場合、前記スレッドが、そのメモリバッファに「論理ブロックNのデータを含む」のマークを付け、それ以外の場合、そのメモリバッファに「論理ブロックNの破損データを含む」のマークを付ける。
iv.前記フラッシュ/メモリ間制御スレッドは、全く同時に又は制御の先取りで前記メモリ/ホスト間制御スレッドとは無関係に動作する。前記制御スレッド間の同期化は、RAMバッファ状態のレジスタ又は変数を用いて行われる。スレッドによりこのメモリレジスタ又は変数を変更する処理は、他のスレッドが前記変更の結果全体を知るだけであり、部分的に変更された状態を知ることができないという意味で、微小であるべきである。
【0033】
本発明の好ましい実施形態では、ホスト書込み操作中にホスト/メモリ間およびメモリ/フラッシュ間転送を同期化するシステムをさらに組み込む。このシステムは、下記を含む。
i.各メモリバッファ用のメモリレジスタ又は変数であって、前記バッファの状態を示し、前記状態は、「空」、「データ受信の処理中」又は「論理ブロックNのデータを含む」であることもできる。
ii.ホスト/メモリ間制御スレッドであって、各論理ブロックNのデータに関して、ホストから転送されるべきそのデータの一部があるメモリバッファを待って「空」の状態を取得し、オプションとしてそのメモリバッファに「データ受信の処理中」のマークを付けてから、前記ホストからのユーザデータのデータ転送を開始し、前記転送の完了時にそのメモリバッファに「論理ブロックNのデータを含む」のマークを付ける。ホストから転送された前記データがフラッシュアレイのアクセス単位サイズ(あるフラッシュ技術では「ページ」)と一致しない場合、前記ホストから転送されていない前記ページの一部の内容を前記スレッドが前記フラッシュから読取る。
iii.メモリ/フラッシュ間制御スレッドであって、各論理ブロックNのデータに関して、ホストから転送されているそのデータの一部があるメモリバッファを待って「論理ブロックNのデータを含む」状態を取得してから、フラッシュ記憶アルゴリズムに従って(複数の)フラッシュメモリ素子に(複数の)書込み指令を出す。前記書込み指令が失敗した場合、前記データを、前記フラッシュ記憶アルゴリズムに従って多分フラッシュ媒体の異なる位置に多分複数回再度書込むことができる。前記ユーザデータがフラッシュ上にうまく書込まれている場合、前記スレッドは、そのメモリバッファに「空」のマークを付け、それ以外の場合、前記ホストにホスト書込み指令失敗を通知すべきである。
iv.このメモリ/フラッシュ間制御スレッドは、全く同時に又は制御の先取りで前記ホスト/メモリ間制御スレッドとは無関係に動作する。前記制御スレッド間の同期化は、RAMバッファ状態のレジスタ又は変数を用いて行われる。スレッドによりこのメモリレジスタ又は変数を変更する処理は、他のスレッドが前記変更の結果全体を知るだけであり、部分的に変更された状態を知ることができないという意味で、微小であるべきである。
【0034】
本発明のさらに好ましい実施形態では、図3および図4に示すように、そのようなシステムに関する構成は各フラッシュメモリ制御器内にメモリモジュールを含む。図3は、1つのメモリモジュールからディスクインタフェースにデータを送信すると同時に、(送信されるべき)前記データの次の部分をフラッシュから別のメモリモジュールに受信するシステムの例である。前記システムは、図1における前記システムと同様であるが、メモリモジュールがフラッシュメモリ制御器内に位置するという点が異なる。図4は、ディスクインタフェースから1つのメモリモジュールに新しいデータを受信すると同時に、前記新しいデータの前の部分を別のメモリモジュールからフラッシュメモリに書込むシステムの例である。このシステムは、図2における前記システムと同様であるが、メモリモジュールがフラッシュメモリ制御器内に位置するという点が異なる。これは、前記システムの設計をかなり単純化できる。当然、すべての上記構成の組合せを実現することもできる。
【0035】
本発明の別の好ましい実施形態によれば、これらのメモリバッファはデータキャッシュシステムの一部の役割を果たすこともできる。例えば、データが読取り操作中にホストに転送された又は書込み操作中にホストから受信された後、次の読取り操作中に前記ホストが同じデータを要求した場合、前記バッファに残された同じデータを、フラッシュメモリにアクセスすることなく前記ホストに転送することもできる。代わりに、データが書込み操作中にホストから受信された後、前記データを、そのデータをフラッシュ媒体に書込むことなくある時間の間前記バッファに残すこともできる。これは、前記ホストへ/からの直接転送と呼ばれる。
【0036】
本発明は制限された数の実施形態について説明されているが、本発明の多くの変更、修正および他の応用を行うことができることが分かるであろう。
【図面の簡単な説明】
【0037】
【図1】ホストインタフェースから1つのメモリバッファに新しいデータを受信すると同時に、新しいデータの前の部分を別のメモリバッファからフラッシュメモリに書込むシステムの例である。
【図2】1つのメモリバッファからホストインタフェースにデータを送信すると同時に、(送信されるべき)データの次の部分をフラッシュから別のメモリバッファに受信するシステムの例である。
【図3】1つのメモリモジュールからディスクインタフェースにデータを送信すると同時に、(送信されるべき)データの次の部分をフラッシュから別のメモリモジュールに受信するシステムの例である。このシステムは、図1におけるシステムと同様であるが、メモリモジュールがフラッシュメモリ制御器内に位置するという点が異なる。
【図4】ディスクインタフェースから1つのメモリモジュールに新しいデータを受信すると同時に、新しいデータの前の部分を別のメモリモジュールからフラッシュメモリに書込むシステムの例である。このシステムは、図2におけるシステムと同様であるが、メモリモジュールがフラッシュメモリ制御器内に位置するという点が異なる。
【図5】図示されたシステムが2つを超えるメモリバッファを有するという点を除いて、図1と同様である。
【図6】図示されたシステムが2つを超えるメモリバッファを有するという点を除いて、図2と同様である。

Claims (21)

  1. i.ホストとの対話を可能にする処理システムと、
    ii.前記処理システムのデータを記憶する少なくとも1つのフラッシュメモリ素子と、
    iii.少なくとも2つのRAM構成要素であって、別々のデータバスを有する前記RAM構成要素の各々が前記処理システムと前記フラッシュメモリ素子との間の同時読み書き操作を可能にするRAM構成要素と、
    を含む、ホストインタフェースとフラッシュ媒体との間の同時データ転送を可能にするシステム。
  2. 前記フラッシュメモリ素子に書込まれたデータおよび前記フラッシュメモリ素子から読取られたデータのシンドロームを計算する誤り検出(EDC)回路をさらに含む、請求項1に記載のシステム。
  3. 前記フラッシュメモリ素子から読取られたデータを訂正する誤り訂正(ECC)回路をさらに含む、請求項1に記載のシステム。
  4. 前記RAM構成要素のうち少なくとも1つが各フラッシュメモリ制御器の内部に存在するように少なくとも2つのフラッシュメモリ制御器を含む、請求項1に記載のシステム。
  5. 前記RAM構成要素が少なくとも1つのデュアルポートメモリ構成要素の代わりに使用される、請求項1に記載のシステム。
  6. 前記RAM構成要素が大規模集積回路の一部になっている、請求項1に記載のシステム。
  7. 前記データが読取り操作中にホストに転送された後、次の読取り操作中に前記ホストが同じ前記データを要求した場合、前記RAM構成要素に残された同じ前記データが前記ホストシステムに直接転送されるように、前記RAM構成要素がデータキャッシュシステムの少なくとも一部を形成する、請求項1に記載のシステム。
  8. 前記データが書込み操作中にホストから受信された後、次の読取り操作中に前記ホストが同じ前記データを要求した場合、前記RAM構成要素に残された同じ前記データが前記ホストシステムから直接転送されるように、前記RAM構成要素がデータキャッシュシステムの少なくとも一部である、請求項1に記載のシステム。
  9. i.ホストシステムとフラッシュ素子との間のデータを記憶する複数のメモリバッファと、
    ii.メモリ/ホスト間およびフラッシュ/メモリ間の制御スレッドを同期化するために状態が使用されるように前記バッファの状態を示す、各々の前記メモリバッファ用のメモリレジスタと、
    iii.ホストへのユーザデータのデータ転送を開始し、前記データ転送の完了時に前記メモリバッファに空のマークを付ける、メモリ/ホスト間データ転送制御スレッドと、
    iv.前記データを含むフラッシュメモリ素子に読取り指令を出し、続いて前記フラッシュ素子が前記データを生成する準備ができた場合、フラッシュから前記メモリバッファにユーザデータの前記データ転送を開始する、フラッシュ/メモリ間制御スレッドと、
    を含む、ホスト読取り操作中に固体記憶システムにおいてメモリ/ホスト間およびフラッシュ素子/メモリ間データ転送を同期化するシステム。
  10. 前記フラッシュ/メモリ間制御スレッドが前記メモリ/ホスト間制御スレッドとは無関係に動作する、請求項9に記載のシステム。
  11. ステップiii.が、
    a)前記転送の完了時に、誤り検出機構により計算されたデータ正当性状態を調べるステップと、
    b)前記データが破損され、訂正可能である場合、訂正アルゴリズムを使用するステップと、
    c)前記メモリバッファに存在する前記データが正しい場合、特定の論理ブロックのデータを含むものとしてそのメモリバッファにマークを付けるステップと、
    d)前記メモリバッファに存在する前記データが正しくない場合、破損データを含むものとしてそのメモリバッファにマークを付けるステップと、
    を含む、請求項9に記載のシステム。
  12. 前記状態が、
    (a)新しいデータの受信が可能である空状態と、
    (b)前記システムが特定の論理ブロックのデータを含む状態と、
    (c)前記システムが前記論理ブロックの破損データを含む状態と、
    を含む、前記各メモリバッファの現状態を示す、請求項9に記載のメモリレジスタ。
  13. i.ホストシステムとフラッシュ素子との間のデータを記憶する複数のメモリバッファと、
    ii.ホスト/メモリ間およびメモリ/フラッシュ間の制御スレッドを同期化するために状態が使用されるように各々の前記メモリバッファ用の状態を示すメモリレジスタと、
    iii.ホスト/メモリ間データ転送制御スレッドであって、各々の特定の論理ブロックのデータに関して、ホストから転送されるべきそのデータの一部があるメモリバッファを待って空状態を取得してから、データ転送の完了時に前記データ転送制御スレッドが前記特定の論理ブロックの前記データを含むものとして前記メモリバッファにマークを付けるように前記ホストからのユーザデータのデータ転送を開始するホスト/メモリ間データ転送制御スレッドと、
    iv.メモリ/フラッシュ間データ転送制御スレッドであって、各々の特定の論理ブロックのデータに関して、前記ホストから転送されているそのデータの一部があるメモリバッファを待って前記特定の論理ブロックの前記データを含む状態を取得し、フラッシュ記憶アルゴリズムに従って少なくとも1つのフラッシュメモリ素子に少なくとも1つの書込み指令を出すメモリ/フラッシュ間データ転送制御スレッドと、
    を含む、ホスト書込み操作中に固体記憶システムにおいてホスト/メモリ間およびメモリ/フラッシュ素子間データ転送を同期化するシステム。
  14. 前記メモリ/フラッシュ間制御スレッドが前記ホスト/メモリ間制御スレッドとは無関係に動作する、請求項13に記載のシステム。
  15. 前記状態が、
    (a)新しいデータの受信が可能である空状態と、
    (b)前記システムが特定の論理ブロックのデータを含む状態と、
    を含む、前記各メモリバッファの現状態を示す、請求項13に記載のメモリレジスタ。
  16. 前記ホスト/メモリ間データ転送制御スレッドの機能が、前記ホストから転送された前記データが前記フラッシュアレイのアクセス単位サイズと一致しない場合に前記ホストから転送されていない内容を前記データのフラッシュ部分から読取るステップをさらに含む、請求項13に記載のシステム。
  17. i.ホストシステムとフラッシュ素子との間のデータを記憶する複数のメモリバッファを設けるステップと、
    ii.前記メモリバッファの状態を示す、各々の前記メモリバッファ用のメモリレジスタに指令するステップと、
    iii.メモリ/ホスト間データ転送制御スレッドに指令するステップであって、転送される各論理ブロックが前記メモリバッファを待って論理ブロックのデータを含む状態を取得し、続いて前記ホストへの前記論理ブロックのデータ転送を開始し、そのデータ転送の完了時に前記制御スレッドが前記メモリバッファに空のマークを付けるステップと、
    iv.フラッシュ/メモリ間データ転送制御スレッドに指令するステップであって、各論理ブロックのデータがある前記メモリバッファを待って空である状態を取得し、前記データを含むフラッシュメモリ素子に読取り指令を出すステップと、
    v.前記読取り指令が完了した場合、および前記フラッシュメモリ素子が前記データを生成する準備ができた場合、前記フラッシュ/メモリ間データ転送制御スレッドにより前記メモリバッファへの前記ユーザデータのデータ転送を開始するステップと、
    を含む、ホスト読取り操作中に固体記憶システムにおいてメモリ/ホスト間およびフラッシュ素子/メモリ間データ転送を同期化する方法。
  18. メモリレジスタに指令するステップが、各々の前記メモリバッファ用の変数に指令するステップをさらに伴う、請求項17に記載の方法。
  19. a)前記データの正当性状態を調べるステップと、
    b)前記データが破損しているが、訂正可能である場合、訂正機構を使用するステップと、
    c)前記バッファに存在する前記データが正しい場合、前記論理ブロックのデータを含むものとして前記メモリバッファにマークを付けるステップと、
    d)前記データが破損している場合、前記論理ブロックの破損データを含むものとして前記メモリバッファにマークを付けるステップと、
    をさらに含む、請求項17に記載の方法。
  20. i.ホストシステムとフラッシュ素子との間のデータを記憶する複数のメモリバッファを設けるステップと、
    ii.前記メモリバッファの状態を示す、各メモリバッファ用のメモリレジスタに指令するステップと、
    iii.ホスト/メモリ間データ転送制御スレッドに指令するステップであって、各論理ブロックがある前記メモリバッファを待って空状態を取得してから、前記ホストからのユーザデータのデータ転送を開始し、前記データ転送の完了時に前記論理ブロックの前記データを含むものとしてその前記メモリバッファにマークを付け、その後、前記ホストから転送された前記データがフラッシュアレイのアクセス単位サイズと一致しない場合に前記スレッドが前記ホストから転送されていないページの一部の内容を前記フラッシュ素子から読取るステップと、
    iv.メモリ/フラッシュ間データ転送制御スレッドに指令するステップであって、各論理ブロックのデータがある前記メモリバッファを待って特定の論理ブロックのデータを含む状態を取得してから、フラッシュ素子記憶アルゴリズムに従って少なくとも1つのフラッシュメモリ素子に少なくとも1つの書込み指令を出し、その後、前記ユーザデータがフラッシュ上にうまく書込まれている場合に前記スレッドが前記メモリバッファに空のマークを付け、それ以外の場合に前記スレッドが前記ホストに書込み指令失敗を通知するように、書込み指令が失敗した場合にオプションとして前記データを前記フラッシュ素子記憶アルゴリズムに従って異なる位置に再度書込むことができるステップと、
    を含む、ホスト書込み操作中に固体記憶システムにおいてホスト/メモリ間およびメモリ/フラッシュ間転送を同期化する方法。
  21. メモリレジスタに指令するステップが、各々の前記メモリバッファ用の変数に指令するステップをさらに伴う、請求項20に記載の方法。
JP2002570084A 2001-03-05 2002-03-04 フラッシュベース記憶システムにおいて多重アクセスを用いたramバッファを使用する方法 Pending JP2004523049A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/797,580 US6691205B2 (en) 2001-03-05 2001-03-05 Method for using RAM buffers with simultaneous accesses in flash based storage systems
PCT/US2002/006454 WO2002071228A1 (en) 2001-03-05 2002-03-04 A method for using ram buffers with multiple accesses in flash-based storage systems

Publications (1)

Publication Number Publication Date
JP2004523049A true JP2004523049A (ja) 2004-07-29

Family

ID=25171233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002570084A Pending JP2004523049A (ja) 2001-03-05 2002-03-04 フラッシュベース記憶システムにおいて多重アクセスを用いたramバッファを使用する方法

Country Status (3)

Country Link
US (1) US6691205B2 (ja)
JP (1) JP2004523049A (ja)
WO (1) WO2002071228A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091234A1 (ko) * 2010-12-31 2012-07-05 세종대학교산학협력단 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954929B2 (en) * 2001-07-30 2005-10-11 Hewlett-Packard Development Company, L.P. Method for just-in-time updating of programming parts
US6918027B2 (en) * 2001-07-30 2005-07-12 Hewlett-Packard Development Company, L.P. System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system
US20040225783A1 (en) * 2001-07-30 2004-11-11 Erickson Michael John Bus to multiple jtag bus bridge
US6883109B2 (en) * 2001-07-30 2005-04-19 Hewlett-Packard Development Company, L.P. Method for accessing scan chains and updating EEPROM-resident FPGA code through a system management processor and JTAG bus
KR100498508B1 (ko) * 2003-09-16 2005-07-01 삼성전자주식회사 데이터 전송시간을 감소시키는 듀얼 버퍼링(Dualbuffering) 메모리 시스템 및 이에 대한 제어방법
WO2005050453A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. ファイル記録装置
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
KR100606242B1 (ko) * 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
DE102004055013A1 (de) * 2004-11-15 2006-05-24 Infineon Technologies Ag Computereinrichtung
JP4695385B2 (ja) 2004-11-30 2011-06-08 株式会社東芝 メモリカードおよびカードコントローラ
DE102004058528B3 (de) 2004-12-04 2006-05-04 Hyperstone Ag Speichersystem mit Sektorbuffern
US7245527B2 (en) * 2005-05-16 2007-07-17 Freescale Semiconductor, Inc. Nonvolatile memory system using magneto-resistive random access memory (MRAM)
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US7441102B2 (en) * 2006-02-28 2008-10-21 Freescale Semiconductor, Inc. Integrated circuit with functional state configurable memory and method of configuring functional states of the integrated circuit memory
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US8230154B2 (en) * 2007-01-19 2012-07-24 Spansion Llc Fully associative banking for memory
WO2008101316A1 (en) * 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8086785B2 (en) * 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
US8694714B2 (en) * 2008-01-18 2014-04-08 Spansion Llc Retargeting of a write operation retry in the event of a write operation failure
US20090254705A1 (en) * 2008-04-07 2009-10-08 International Business Machines Corporation Bus attached compressed random access memory
US8423592B2 (en) * 2008-04-11 2013-04-16 Sandisk Technologies Inc. Method and system for accessing a storage system with multiple file systems
US20090327535A1 (en) * 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
KR101175250B1 (ko) 2009-06-29 2012-08-21 에스케이하이닉스 주식회사 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
US8683456B2 (en) 2009-07-13 2014-03-25 Apple Inc. Test partitioning for a non-volatile memory
JP5209793B2 (ja) * 2009-08-21 2013-06-12 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
WO2011036230A2 (en) * 2009-09-23 2011-03-31 St-Ericsson Sa Data transfer method
US8725977B2 (en) 2010-02-17 2014-05-13 Seagate Technology Llc NVMHCI attached hybrid data storage
US8650446B2 (en) * 2010-03-24 2014-02-11 Apple Inc. Management of a non-volatile memory based on test quality
US8645776B2 (en) * 2010-03-24 2014-02-04 Apple Inc. Run-time testing of memory locations in a non-volatile memory
US8751903B2 (en) * 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
EP2418584A1 (en) 2010-08-13 2012-02-15 Thomson Licensing Method and apparatus for storing at least two data streams into an array of memories, or for reading at least two data streams from an array of memories
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
KR101934519B1 (ko) * 2012-11-26 2019-01-02 삼성전자주식회사 저장 장치 및 그것의 데이터 전송 방법
WO2016054640A1 (en) * 2014-10-03 2016-04-07 Ezuniverse Inc. Data management system
KR102461453B1 (ko) 2015-06-10 2022-11-02 삼성전자주식회사 스토리지 장치
US10521118B2 (en) * 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
JP7155028B2 (ja) * 2019-01-29 2022-10-18 キオクシア株式会社 メモリシステムおよび制御方法
CN116931842B (zh) * 2023-09-12 2023-12-08 合肥康芯威存储技术有限公司 一种存储器、数据处理方法、电子设备及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6474649A (en) * 1987-09-16 1989-03-20 Nec Corp Sector buffer control system
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
JPH06195258A (ja) * 1992-07-08 1994-07-15 Nec Corp 半導体記憶装置
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5539345A (en) * 1992-12-30 1996-07-23 Digital Equipment Corporation Phase detector apparatus
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5438549A (en) * 1994-02-28 1995-08-01 Intel Corporation Nonvolatile memory with volatile memory buffer and a backup power supply system
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JPH08235852A (ja) * 1995-02-28 1996-09-13 Mitsubishi Electric Corp 半導体記憶装置
US5884055A (en) * 1996-11-27 1999-03-16 Emc Corporation Method and apparatus including a shared resource and multiple processors running a common control program accessing the shared resource
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US5928370A (en) * 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
US6016472A (en) * 1997-09-29 2000-01-18 Lucent Technologies Inc. System and method for interfacing a digital audio processor to a low-speed serially addressable storage device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091234A1 (ko) * 2010-12-31 2012-07-05 세종대학교산학협력단 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법
US9411719B2 (en) 2010-12-31 2016-08-09 Seong University Industry Academy Cooperation Foundation Memory system including nonvolatile and volatile memory and operating method thereof
US10140060B2 (en) 2010-12-31 2018-11-27 Sejong University Industry Academy Cooperation Foundation Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
US10558395B2 (en) 2010-12-31 2020-02-11 Sejong University Industry Academy Cooperation Foundation Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
US11188262B2 (en) 2010-12-31 2021-11-30 SK Hynix Inc. Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system

Also Published As

Publication number Publication date
US20020124129A1 (en) 2002-09-05
US6691205B2 (en) 2004-02-10
WO2002071228A1 (en) 2002-09-12

Similar Documents

Publication Publication Date Title
JP2004523049A (ja) フラッシュベース記憶システムにおいて多重アクセスを用いたramバッファを使用する方法
JP6882115B2 (ja) Ddr sdramインタフェイスのためのdram支援エラー訂正方法
US5195100A (en) Non-volatile memory storage of write operation identifier in data sotrage device
TWI509623B (zh) 用於內建錯誤更正的儲存架構
US6151641A (en) DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US11157357B2 (en) Operation methods of memory system and host, and computing system
US7676729B2 (en) Data corruption avoidance in DRAM chip sparing
JP2008226245A (ja) フラッシュメモリに基づくメモリシステム
JP2003516598A (ja) 誤り訂正装置
US20130304970A1 (en) Systems and methods for providing high performance redundant array of independent disks in a solid-state device
US7076686B2 (en) Hot swapping memory method and system
US8713410B2 (en) Data storage apparatus, memory control apparatus and method for controlling flash memories
US7308601B2 (en) Program, method and apparatus for disk array control
US20190312600A1 (en) Area efficient implementation of a product code error correcting code decoder
JPS6230664B2 (ja)
JP4390694B2 (ja) Dma回路及びこれを用いたディスクアレイ装置
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
US20080155193A1 (en) Staging method for disk array apparatus
JPH10240453A (ja) ディスクアレイ装置
JP3281980B2 (ja) 磁気ディスク装置
KR100328818B1 (ko) 플래시 메모리의 데이타 저장방법
JP3798773B2 (ja) ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法
JP2003296199A (ja) 記憶装置、データ処理方法及びデータ処理プログラム
JP3615250B2 (ja) ディスクアレイ装置
JPH0528667A (ja) 磁気デイスク制御部