JP4829365B1 - データ記憶装置及びデータ書き込み方法 - Google Patents
データ記憶装置及びデータ書き込み方法 Download PDFInfo
- Publication number
- JP4829365B1 JP4829365B1 JP2010125136A JP2010125136A JP4829365B1 JP 4829365 B1 JP4829365 B1 JP 4829365B1 JP 2010125136 A JP2010125136 A JP 2010125136A JP 2010125136 A JP2010125136 A JP 2010125136A JP 4829365 B1 JP4829365 B1 JP 4829365B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- flash memory
- saved
- user data
- attribute information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】退避データの処理効率の向上を図ることができるデータ記憶装置を提供することにある。
【解決手段】本実施形態によれば、データ記憶装置は、所定のサイズ単位でデータの書き込みと読み出しを行なうフラッシュメモリと、前記フラッシュメモリを制御する制御モジュールとを備えた構成である。前記制御モジュールは、前記サイズ単位未満のデータの書き換えを含む書き込み動作時に、前記フラッシュメモリから読み出した前記サイズ単位の退避データから属性情報を分離して属性情報格納用バッファに格納し、前記退避データに含まれるユーザデータを退避データ格納領域に転送する構成である。
【選択図】図1
【解決手段】本実施形態によれば、データ記憶装置は、所定のサイズ単位でデータの書き込みと読み出しを行なうフラッシュメモリと、前記フラッシュメモリを制御する制御モジュールとを備えた構成である。前記制御モジュールは、前記サイズ単位未満のデータの書き換えを含む書き込み動作時に、前記フラッシュメモリから読み出した前記サイズ単位の退避データから属性情報を分離して属性情報格納用バッファに格納し、前記退避データに含まれるユーザデータを退避データ格納領域に転送する構成である。
【選択図】図1
Description
本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置に関する。
従来から、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)が開発されている。また、サーバ用またはエンタープライズ向けのデータ記憶装置として、大容量のSSDも実現されている。
SSDでは、クラスタ(cluster)と呼ぶ論理的なアクセス単位でデータの書き込み、読み出し動作が実行される。即ち、クラスタは、フラッシュメモリに一度にアクセスできるデータサイズの単位である。通常では、1クラスタは、物理的なアクセス単位であるセクタを複数セクタ分まとめたものであり、例えば8セクタ分から構成される。SSDには、セクタ単位でのデータの書き込み、読み出し動作を可能とする仕組みを有するものがある。
従来のSSDの書き込み動作には、1クラスタのデータの中で、セクタ単位の一部のデータ(例えば3セクタ分のデータ)のみを書き換える(修正する)書き込み動作がある。この書き込み動作は、RMW(read modify write)動作と呼ぶことがある。
RMW動作では、書き込み対象アドレスのクラスタデータ(1クラスタ分のデータ)をフラッシュメモリから読み出してバッファメモリに退避させる。この退避させたデータの中で、書き換え対象のデータ(例えば3セクタ分のデータ)を書き換えて、新たなクラスタデータを生成し、フラッシュメモリの書き込み対象アドレスに書き込む。
RMW動作では、退避データをフラッシュメモリから読み出して、バッファメモリまで転送する処理が必要となる。従って、データ記憶装置のパフォーマンスの向上を図るためには、RMW動作時の退避データの転送及びバッファメモリのアクセスの処理、即ち退避データの処理効率の向上を図ることが有効である。
発明の目的は、退避データの処理効率の向上を図ることができるデータ記憶装置を提供することにある。
本実施形態によれば、データ記憶装置は、ユーザデータとデータの属性を示す属性情報とを含む最小単位データの複数分からなる所定サイズの単位でデータの書き込みと読み出しを行なうフラッシュメモリと、前記フラッシュメモリの対象アドレスにデータを書き込む場合に、前記所定サイズ未満のデータを書き換える制御を行う制御手段とを有する。前記制御手段は、前記対象アドレスから前記所定サイズのデータを退避データとして読み出し、前記属性情報と前記ユーザデータとを分離して記憶し、前記退避データに含まれる書き換え対象ユーザデータを書き換えた書き換え用ユーザデータを記憶し、前記退避データに含まれるユーザデータの中で前記書き換え対象ユーザデータを除くユーザデータ、前記書き換え用ユーザデータ及び前記属性情報を含む前記所定サイズのデータを生成して前記フラッシュメモリに書き込むように制御する構成である。
以下図面を参照して、実施形態を説明する。
[データ記憶装置の構成]
図1は、実施形態のデータ記憶装置の構成を示すブロック図である。
図1は、実施形態のデータ記憶装置の構成を示すブロック図である。
実施形態のデータ記憶装置は、NAND型フラッシュメモリ(フラッシュメモリ)を記憶媒体として使用するSSD(solid state drive)である。図1に示すように、データ記憶装置は、NANDメモリコントローラチップ(以下、単にコントローラと表記する)1と、複数のフラッシュメモリ2と、ブート用ROM(read only memory)4とを有する。ブート用ROM4はフラッシュメモリからなり、SSDに対して外部からのアクセスを可能とするための起動用プログラムが格納されている。
コントローラ1は大別して、フラッシュメモリ2に対してアドレスやデータ制御を行なうNANDフラッシュ制御モジュール(以下、フラッシュ制御モジュールと略す)10と、メモリインターフェース20と、ホストインターフェース21と、データフロー制御モジュール22と、マイクロプロセッサ(CPU)23と、DRAM(dynamic random access memory)24と、内部バス25とを有する。
CPU23はファームウェアであり、ホストデバイス3からのコマンドに応じて、データの書き込み動作及び読み出し動作に必要なコマンドをフラッシュ制御モジュール10に出力する。DRAM24は、CPU23のアクセス制御により、退避データ、書き換えデータ(modifyデータ)及びテーブル情報などを格納するバッファメモリである。DRAM24は、図2に示すように、退避データを格納する退避データ格納領域241及び書き換えデータを格納する書き換えデータ格納領域242を有する。
メモリインターフェース20は入出力(I/O)バッファを含み、フラッシュメモリ2との間でアドレスやデータの入出力を制御する。ホストインターフェース21は、ホストデバイス3との間でデータ又はコマンドを転送する。ホストデバイス3は、例えばパーソナルコンピュータとSSDとを接続する。ホストデバイス3は、例えばSAS(Serial Attached SCSI)規格やSATA(Serial ATA)規格のインターフェースコントローラである。データフロー制御モジュール22は、ホストインターフェース21により転送するデータのバッファ制御を行なう。なお、ホストデバイス3は、論理ブロックアドレス(LBA)によりアクセスを行なう。
フラッシュ制御モジュール10は、データ処理モジュール11と、コマンド処理モジュール12と、コマンドキュー(Queue)13と、NANDフラッシュ・コマンドシーケンサ(以下、コマンドシーケンサと略す)14と、テーブル管理モジュール15と、レスポンスキュー(Queue)16とを有する。
データ処理モジュール11は、データのエラー検出処理やエラー訂正処理(ECC処理など)を行なう。コマンド処理モジュール12は、コマンドキュー(Queue)13に格納されているライトコマンドなどのコマンドを解読して実行する。コマンドキュー(Queue)13は待ち行列バッファであり、CPU23からの命令やリードシーケンス処理後のライトコマンドなどを格納する。
コマンドシーケンサ14は、複数のフラッシュメモリ2の選択処理及びフラッシュメモリ2のアクセスコマンドを発行する。テーブル管理モジュール15は、DRAM24に格納されているテーブル情報(LBAと物理アドレスの変換用テーブルなど)を更新する。レスポンスキュー16は、CPU23にコマンド終了情報とステータス情報を提供する。
[データ記憶装置の動作]
以下、図2から図5を参照して、実施形態のデータ記憶装置の動作を説明する。
以下、図2から図5を参照して、実施形態のデータ記憶装置の動作を説明する。
本実施形態では、フラッシュメモリ2に対しては、アクセス単位としてクラスタ(cluster)単位でデータの書き込み、読み出し動作が実行される。1クラスタは、例えば8セクタ分のデータサイズ単位である。なお、セクタは物理的なアクセス単位であり、例えば512バイトのデータサイズである。
さらに、本実施形態では、クラスタ単位でデータをフラッシュメモリ2に書き込む場合に、クラスタ未満のサイズ(例えば3セクタ分)のデータを書き換える(modify:修正する)書き込み動作を、RMW(read modify write)動作と呼ぶ。
まず、システム電源の投入後の起動時に、ブート用ROM4から起動用プログラムが、CPU23の内部メモリまたはDRAM24に転送された後に、データ記憶装置はソフトウエアからのアクセスが可能となる。次に、図2及び図3のフローチャートを参照して、主としてフラッシュ制御モジュール10の動作を説明する。
CPU23は、ホストデバイス3から転送されたコマンドに応じて、ライトコマンドを発行する(ブロック300)。フラッシュ制御モジュール10は、CPU23からの命令を受理することで、フラッシュメモリ2とDRAM24間のデータ転送を開始する。
フラッシュ制御モジュール10は、CPU23からライトコマンドを受信すると、コマンドキュー13に格納する(ブロック100)。コマンド処理モジュール12は、コマンドキュー13からライトコマンドを取り出し、データ転送長がクラスタ未満の書き換えを検知して、RMW動作であるか否かを判定する(ブロック101)。即ち、コマンド処理モジュール12は、書き込み対象のクラスタの中で、書き換え対象のデータがクラスタ未満のサイズ(例えば3セクタ分)の場合に、RMW動作であると判定する。
テーブル管理モジュール15は、ライトコマンドに伴う論理ブロックアドレスLBAをインデックスとしてDRAM24のテーブル(アドレス管理テーブル)を参照し、退避データの物理ブロック番号(物理ページ番号)や、フラッシュメモリ2のチップ番号を算出する(ブロック102,103)。
本実施形態では、図2に示すように、フラッシュメモリ2に格納されているデータの中で、論理ブロックアドレスLBAにより指定される書き込み対象のクラスタが、便宜的に物理アドレス(物理ブロック番号)SD0〜SD7の各セクタデータから構成されている。
従って、フラッシュ制御モジュール10は、当該セクタデータSD0〜SD7を退避データとして認識する。
次に、コマンドシーケンサ14は、コマンド処理モジュール12からのリードアクセスのコマンド30に応じて、退避データをリードするためのリードコマンド31をフラッシュメモリ2に発行する(ブロック104)。コマンド処理モジュール12からのコマンド30には、物理アドレスSD0〜SD7及びDRAM24上の退避データ格納領域241の格納先アドレスが含まれる。
図2に示すように、フラッシュ制御モジュール10は、フラッシュメモリ2から退避データ(セクタデータSD0〜SD7)を読み出し、DRAM24上の退避データ格納領域241に転送する(ブロック105)。ここで、データ処理モジュール11は、読み出された退避データ(クラスタデータ)中に、ECC処理によりエラーを検出するとコマンド処理モジュール12に通知する(ブロック106のYES)。コマンド処理モジュール12は、データ処理モジュール11からの通知32に応じて、レスポンスキュー16を介してCPU23にレスポンスを発行する(ブロック113)。これにより、CPU23は、RMW動作を中断する。
一方、コマンドシーケンサ14は、フラッシュメモリ2からの退避データの読み出し動作が終了すると、コマンド処理モジュール12に対してリード終了通知を行なう。このとき、コマンドシーケンサ14は、退避データからユーザデータ200と属性情報とを分離して属性情報をコマンド処理モジュール12に出力する(図1に示す転送33)。
ここで、図5に示すように、フラッシュメモリ2に格納されているセクタデータ(SD0〜SD7)は、論理ブロックアドレス(LBA)、属性情報、ユーザデータ、及びECCデータのフォーマットから構成されている。この属性情報とは、後続のライト処理において、例えばユーザデータに対してECC処理を行なうか否かを示すフラグ情報である。
図2に示すように、コマンド処理モジュール12は、受信した属性情報を属性情報格納バッファ201に格納しポインタ管理する(ブロック107)。属性情報格納用バッファ201は、フラッシュ制御モジュール10の内部メモリに確保されたバッファ領域である。図2に示すように、コマンド処理モジュール12は、ポインタとして便宜的にフラッシュメモリ2のチップ番号(Ch00)及びクラスタ番号(Cluster00)を使用して管理する。
一方、コマンド処理モジュール12は、退避データからユーザデータ200を分離して、DRAM24上の退避データ格納領域241に転送する。コマンド処理モジュール12は、退避データ格納領域241のアドレスを保持して管理する。
次に、図3のブロック108からを参照し、後続のライト処理について説明する。
まず、コマンド処理モジュール12は、予めCPU23経由で、フラッシュ制御モジュール10の内部メモリに確保されたレジスタ領域にセットされているフラッシュメモリ2の書き込み先物理アドレスを取得する(ブロック108)。
実施形態では、図2に示すように、RMW動作による書き込み動作時のクラスタデータは、退避データ格納領域241に格納されているユーザデータ(SD0,SD1)210、ユーザデータ(SD5〜SD7)211、及び書き換えデータ格納領域242に格納されている書き換えデータ(Modifyデータ)212からなる。
コマンド処理モジュール12は、コマンドシーケンサ14に対して、DRAM24上の退避データ格納領域241のアドレス(A)を含むライトコマンド(30)を発行する(ブロック109)。このライトコマンド(30)は、書き込み対象チャネルのフラッシュメモリ2を指定する。また、コマンド処理モジュール12は、属性情報格納バッファ201に格納されたセクタSD0,SD1分の属性情報のアドレスをコマンドシーケンサ14に指示する。
コマンドシーケンサ14は、退避データ格納領域241のアドレス(A)からコマンドの引数で与えられた転送開始セクタSD0とセクタ転送数2を算出し、指定されたセクタSD0,SD1分のユーザデータを読み出す。コマンドシーケンサ14は、フラッシュメモリ2に対してライトコマンド(31)を発行し、フラッシュメモリ2に書き込む(ブロック110)。このとき、コマンドシーケンサ14は、読み出したセクタSD0,SD1分のユーザデータに、属性情報格納バッファ201に格納されている属性情報213を付加してフラッシュメモリ2に書き込む。また、データ処理モジュール11は、ECCデータも付加する。
次に、コマンド処理モジュール12は、コマンドシーケンサ14に対して、コマンドキュー13から取得したDRAM24上の書き換えデータ格納領域242のアドレス(B)と転送セクタ数(3)を含むライトコマンド(30)を発行する(ブロック111のNO,109)。また、コマンド処理モジュール12は、属性情報生成モジュール202により生成された書き換えデータSD2〜SD4分の属性情報をコマンドシーケンサ14に出力する。
コマンドシーケンサ14は、書き換えデータ格納領域242のアドレス(B)からコマンドの引数で与えられた転送開始セクタSD2とセクタ転送数3を算出し、指定されたセクタSD2〜SD4分のユーザデータ(書き換えデータ)を読み出す。コマンドシーケンサ14は、フラッシュメモリ2に対してライトコマンド(31)を発行し、フラッシュメモリ2に書き込む(ブロック110)。このとき、コマンドシーケンサ14は、読み出したセクタSD2〜SD4分の書き換えデータに、属性情報生成モジュール202により生成された属性情報214を付加してフラッシュメモリ2に書き込む(書き換えデータ220)。また、データ処理モジュール11は、ECCデータも付加する。
さらに、コマンド処理モジュール12は、コマンドシーケンサ14に対して、DRAM24上の退避データ格納領域241のアドレス(C)を含むライトコマンド(30)を発行する(ブロック111のNO,109)。また、コマンド処理モジュール12は、属性情報格納バッファ201に格納されたセクタSD5〜SD7分の属性情報のアドレスをコマンドシーケンサ14に指示する。
コマンドシーケンサ14は、退避データ格納領域241のアドレス(C)からコマンドの引数で与えられた転送開始セクタSD5とセクタ転送数3を算出し、指定されたセクタSD5〜SD7分のユーザデータを読み出す。コマンドシーケンサ14は、フラッシュメモリ2に対してライトコマンド(31)を発行し、フラッシュメモリ2に書き込む(ブロック110)。このとき、コマンドシーケンサ14は、読み出したセクタSD5〜SD7分のユーザデータに、属性情報格納バッファ201に格納されている属性情報213を付加してフラッシュメモリ2に書き込む。また、データ処理モジュール11は、ECCデータも付加する。
なお、コマンド処理モジュール12は、書き換えデータの範囲に応じて、2回または4回以上のコマンド発行を行なう。コマンド処理モジュール12は、クラスタデータの書き込み動作が終了すると、終了通知と各種テーブル更新に必要な情報をテーブル管理モジュール15に提供する(ブロック111のYES)。テーブル管理モジュール15は、DRAM24上のテーブル情報を更新し、レスポンスキュー16に終了情報とステータスを発行する(ブロック112,113)。CPU23は、レスポンスキュー16からの情報に基づいて、書き込み動作が正常に終了したことかを判断する。
以上のように本実施形態によれば、クラスタ未満の書き換えデータがあるRMW動作において、リード動作では、フラッシュメモリから退避データを退避させるときに、ユーザデータと属性情報を分離する。コントローラ1は、属性情報を属性情報格納バッファ201に格納し、ユーザデータを退避データ格納領域241に転送する。ライト動作では、退避データ格納領域241に格納されている退避データ(ユーザデータ)と書き換えデータ(Modifyデータ)とをマージ(merge:合併)して、フラッシュメモリに書き込む。
従って、属性情報を含めて退避データを退避データ格納領域241に転送する場合と比較して、本実施形態は、ユーザデータを退避データ格納領域241に転送するため、DRAM24に対して、属性情報の書き換えに伴うアクセスを削減することができる。即ち、退避データに伴うDRAM24のアクセスを低減できるため、結果としてCPU23の負荷を削減できる。
また、通常のリード動作では、コントローラ1は、フラッシュメモリから読み出したデータから属性情報を含まないデータをホストデバイス3に転送する。従って、本実施形態のRMW動作時の退避データ(属性情報を含まないデータ)の転送パスと、通常のリード動作時のデータの転送パスとを共用することができる。これにより、コントローラ1を構成する回路規模の低減化、及び回路動作の検証コストなどを抑制することが可能となる。
さらに、RMW動作時のリード動作(フラッシュメモリ2から退避データの読み出し)とライト動作(フラッシュメモリ2への書き込み)の処理において、CPU23は最初のライトコマンドを発行するだけである。従って、CPU23の負荷を削減できる効果があり、システムとしてのパフォーマンスを向上することができる。
なお、フラッシュメモリの未書き込み領域に対するRMW動作時に、退避データが存在しない場合は、ホストデバイス3からDRAM24の退避データ格納領域241に固定値データを書き込むことで、本実施形態を適用することができる。この際の属性情報は、コマンドキュー13でセットされたライト動作時のコマンド情報と同じものとすればよい。
[本実施形態の応用例]
図4は、本実施形態の応用例を説明するためのフローチャートである。
図4は、本実施形態の応用例を説明するためのフローチャートである。
本実施形態では、コントローラ1は、RMW動作時に、フラッシュメモリ2から退避データ(属性情報を分離)を読み出して、DRAM24の退避データ格納領域241に転送する(ブロック105)。
ここで、コントローラ1は、ホストデバイス3からリードコマンドを受信したときに、当該リードコマンドで要求されているデータが退避データ格納領域241に格納されているデータであるか否かをLBAに基づいて判定する(ブロック300)。
コントローラ1は、要求に該当するデータが存在する場合に、DRAM24上の退避データ格納領域241に格納されたユーザデータ(指定のセクタ分データ)を読み出す(ブロック301)。コントローラ1は、DRAM24から読み出した当該データを、ホストインターフェース21に転送する(ブロック302)。ホストインターフェース21は、リードコマンドにより要求されたデータをホストデバイス3に転送する(ブロック303)。
以上のようにして、本実施形態のRMW動作時に、フラッシュメモリ2からDRAM24の退避データ格納領域241に転送した退避データの中で、ホストデバイス3からリード要求されたデータを転送することができる。本実施形態では、退避データ格納領域241に格納される退避データは、通常のリード動作時と同様に属性情報を含まないデータである。
従って、本実施形態では、RMW動作時にホストからリードコマンドを受信した場合に、フラッシュメモリ2をアクセスすることなく、バッファメモリであるDRAM24から高速に要求データをホストに転送できる。換言すれば、DRAM24の退避データ格納領域241をキャッシュメモリとして機能させて、高速にリード要求データをホストに転送するキャッシュ処理を実現することが可能である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1…NANDメモリコントローラチップ(コントローラ)、2…フラッシュメモリ、
3…ホストデバイス、4…ブート用ROM、
10…NANDフラッシュ制御モジュール、11…データ処理モジュール、
12…コマンド処理モジュール、13…コマンドキュー、
14…NANDフラッシュ・コマンドシーケンサ、15…テーブル管理モジュール、
16…レスポンスキュー、20…メモリインターフェース、
21…ホストインターフェース、22…データフロー制御モジュール、
23…マイクロプロセッサ(CPU)、24…DRAM、25…内部バス。
3…ホストデバイス、4…ブート用ROM、
10…NANDフラッシュ制御モジュール、11…データ処理モジュール、
12…コマンド処理モジュール、13…コマンドキュー、
14…NANDフラッシュ・コマンドシーケンサ、15…テーブル管理モジュール、
16…レスポンスキュー、20…メモリインターフェース、
21…ホストインターフェース、22…データフロー制御モジュール、
23…マイクロプロセッサ(CPU)、24…DRAM、25…内部バス。
Claims (10)
- ユーザデータとデータの属性を示す属性情報とを含む最小単位データの複数分からなる所定サイズの単位でデータの書き込みと読み出しを行なうフラッシュメモリと、
前記フラッシュメモリの対象アドレスにデータを書き込む場合に、前記所定サイズ未満のデータを書き換える制御を行う制御手段とを有し、
前記制御手段は、
前記対象アドレスから前記所定サイズのデータを退避データとして読み出し、
前記退避データに含まれる前記属性情報と前記ユーザデータとを分離して記憶し、
前記退避データに含まれる書き換え対象ユーザデータを書き換えた書き換え用ユーザデータを記憶し、
前記退避データに含まれるユーザデータの中で前記書き換え対象ユーザデータを除くユーザデータ、前記書き換え用ユーザデータ及び前記属性情報を含む前記所定サイズのデータを生成して前記フラッシュメモリに書き込むように制御するデータ記憶装置。 - 前記制御手段は、
前記書き換え用ユーザデータの属性情報を生成し、前記所定サイズのデータに含ませて前記フラッシュメモリに書き込むように制御する請求項1に記載のデータ記憶装置。 - 前記最小単位データは物理ブロック単位データであり、
前記所定サイズは、複数の物理ブロックから構成されるクラスタであり、
前記所定サイズ未満のデータは、物理ブロック単位で前記クラスタ未満である請求項1又は請求項2のいずれか1項に記載のデータ記憶装置。 - 前記制御手段は、
ファームウェアからのライトコマンドの処理時に前記フラッシュメモリの対象アドレスにデータを書き込む書き込み動作がRMW動作であるか否かを判定し、
前記RMW動作であると判定した場合に、前記所定サイズ未満のデータを書き換える制御を実行する請求項1に記載のデータ記憶装置。 - 前記制御手段は、
前記フラッシュメモリから読み出した前記退避データのエラー検出処理を実行し、
前記エラー検出処理によりエラーが検出されたときには、前記書き込み動作を中断する請求項1から請求項4のいずれか1項に記載のデータ記憶装置。 - 前記制御手段は、
前記退避データ、前記属性情報、前記書き換え用ユーザデータのそれぞれを、内部のバッファメモリに確保されている各記憶領域に記憶する請求項1から請求項5のいずれか1項に記載のデータ記憶装置。 - 前記制御手段は、
前記退避データに含まれるユーザデータを内部のメモリに記憶した後で、ホストデバイスからのリードコマンドを受信したときに、
前記リードコマンドにより要求されたデータを前記内部のメモリから読み出して前記ホストデバイスに転送する手段を具備する請求項1から請求項6のいずれか1項に記載のデータ記憶装置。 - フラッシュメモリに対して、ユーザデータとデータの属性を示す属性情報とを含む最小単位データの複数分からなる所定サイズの単位でデータの書き込みと読み出しを行なうデータ制御装置であって、
前記フラッシュメモリの対象アドレスにデータを書き込む場合に、前記所定サイズ未満のデータを書き換える制御を行う制御手段を有し、
前記制御手段は、
前記対象アドレスから前記所定サイズのデータを退避データとして読み出し、
前記退避データに含まれる前記属性情報と前記ユーザデータとを分離して記憶し、
前記退避データに含まれる書き換え対象ユーザデータを書き換えた書き換え用ユーザデータを記憶し、
前記退避データに含まれるユーザデータの中で前記書き換え対象ユーザデータを除くユーザデータ、前記書き換え用ユーザデータ及び前記属性情報を含む前記所定サイズのデータを生成して前記フラッシュメモリに書き込むように制御するデータ制御装置。 - ユーザデータとデータの属性を示す属性情報とを含む最小単位データの複数分からなる所定サイズの単位でデータの書き込みと読み出しを行なうフラッシュメモリを有するデータ記憶装置に適用するデータ書き込み方法であって、
前記フラッシュメモリの対象アドレスにデータを書き込む場合に、前記所定サイズ未満のデータを書き換える制御において、
前記対象アドレスから前記所定サイズのデータを退避データとして読み出し、
前記退避データに含まれる前記属性情報と前記ユーザデータとを分離して記憶し、
前記退避データに含まれる書き換え対象ユーザデータを書き換えた書き換え用ユーザデータを記憶し、
前記退避データに含まれるユーザデータの中で前記書き換え対象ユーザデータを除くユーザデータ、前記書き換え用ユーザデータ及び前記属性情報を含む前記所定サイズのデータを生成して前記フラッシュメモリに書き込むように制御するデータ書き込み方法。 - 前記退避データに含まれるユーザデータを内部のメモリに記憶した後で、ホストデバイスからのリードコマンドを受信したときに、
前記リードコマンドにより要求されたデータを前記内部のメモリから読み出して前記ホストデバイスに転送する請求項9に記載のデータ書き込み方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125136A JP4829365B1 (ja) | 2010-05-31 | 2010-05-31 | データ記憶装置及びデータ書き込み方法 |
US13/077,283 US8332579B2 (en) | 2010-05-31 | 2011-03-31 | Data storage apparatus and method of writing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125136A JP4829365B1 (ja) | 2010-05-31 | 2010-05-31 | データ記憶装置及びデータ書き込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4829365B1 true JP4829365B1 (ja) | 2011-12-07 |
JP2011253251A JP2011253251A (ja) | 2011-12-15 |
Family
ID=45023071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010125136A Expired - Fee Related JP4829365B1 (ja) | 2010-05-31 | 2010-05-31 | データ記憶装置及びデータ書き込み方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8332579B2 (ja) |
JP (1) | JP4829365B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12033700B2 (en) | 2021-02-17 | 2024-07-09 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5318076B2 (ja) * | 2010-11-30 | 2013-10-16 | 株式会社東芝 | 複数のアクセスコマンドを並行して実行するメモリ装置及び同装置におけるメモリアクセス方法 |
US8694855B1 (en) * | 2011-11-02 | 2014-04-08 | Pmc-Sierra Us, Inc. | Error correction code technique for improving read stress endurance |
US8694849B1 (en) | 2011-12-19 | 2014-04-08 | Pmc-Sierra Us, Inc. | Shuffler error correction code system and method |
US9350386B2 (en) | 2012-04-12 | 2016-05-24 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of operating the same |
KR102142588B1 (ko) * | 2012-04-12 | 2020-08-07 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 이의 동작 방법 |
US20130318285A1 (en) * | 2012-05-23 | 2013-11-28 | Violin Memory Inc | Flash memory controller |
KR101374065B1 (ko) * | 2012-05-23 | 2014-03-13 | 아주대학교산학협력단 | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 |
US8995302B1 (en) | 2013-01-16 | 2015-03-31 | Pmc-Sierra Us, Inc. | Method and apparatus for translated routing in an interconnect switch |
US9128858B1 (en) | 2013-01-29 | 2015-09-08 | Pmc-Sierra Us, Inc. | Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US8990661B1 (en) | 2013-03-05 | 2015-03-24 | Pmc-Sierra Us, Inc. | Layer specific attenuation factor LDPC decoder |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9397701B1 (en) | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
US8935598B1 (en) | 2013-03-12 | 2015-01-13 | Pmc-Sierra Us, Inc. | System and method for adaptive check node approximation in LDPC decoding |
US8984365B1 (en) | 2013-03-14 | 2015-03-17 | Pmc-Sierra Us, Inc. | System and method for reduced memory storage in LDPC decoding |
US8984376B1 (en) | 2013-03-14 | 2015-03-17 | Pmc-Sierra Us, Inc. | System and method for avoiding error mechanisms in layered iterative decoding |
US9235467B2 (en) | 2013-03-15 | 2016-01-12 | Pmc-Sierra Us, Inc. | System and method with reference voltage partitioning for low density parity check decoding |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
CN105094691B (zh) * | 2014-05-21 | 2019-05-21 | 华为技术有限公司 | 一种数据操作的方法、设备和系统 |
US9417804B2 (en) | 2014-07-07 | 2016-08-16 | Microsemi Storage Solutions (Us), Inc. | System and method for memory block pool wear leveling |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
JP2017068634A (ja) * | 2015-09-30 | 2017-04-06 | 株式会社東芝 | 記憶装置及び方法 |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
US11934270B2 (en) * | 2022-06-02 | 2024-03-19 | Micron Technology, Inc. | Write command execution for data protection and recovery schemes |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3539752B2 (ja) | 1994-03-02 | 2004-07-07 | 沖電気工業株式会社 | 半導体記憶装置とメモリ制御方法 |
JP2002222120A (ja) * | 2001-01-26 | 2002-08-09 | Sony Corp | メモリ・アクセス管理装置並びに管理方法 |
JP2003297088A (ja) | 2002-03-28 | 2003-10-17 | Seiko Epson Corp | 半導体記憶装置 |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
JP4863681B2 (ja) | 2005-10-04 | 2012-01-25 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置およびメモリコントローラ |
JP2007140733A (ja) | 2005-11-16 | 2007-06-07 | Renesas Technology Corp | 半導体処理装置及び半導体集積回路 |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
US20080140724A1 (en) * | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
JP4743174B2 (ja) * | 2007-06-29 | 2011-08-10 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2009289170A (ja) * | 2008-05-30 | 2009-12-10 | Nec Electronics Corp | データ処理装置、メモリコントローラ及びそのアクセス制御方法 |
-
2010
- 2010-05-31 JP JP2010125136A patent/JP4829365B1/ja not_active Expired - Fee Related
-
2011
- 2011-03-31 US US13/077,283 patent/US8332579B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12033700B2 (en) | 2021-02-17 | 2024-07-09 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
US20110296084A1 (en) | 2011-12-01 |
JP2011253251A (ja) | 2011-12-15 |
US8332579B2 (en) | 2012-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4829365B1 (ja) | データ記憶装置及びデータ書き込み方法 | |
US9697116B2 (en) | Storage system and writing method thereof | |
TWI531963B (zh) | Data storage systems and their specific instruction enforcement methods | |
US20160054936A1 (en) | Information processing system and nonvolatile storage unit | |
US20180275921A1 (en) | Storage device | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9423977B2 (en) | Lock-free communication storage request reordering | |
TWI766207B (zh) | 多命名空間的資料存取方法及電腦程式產品 | |
CN102915208A (zh) | 信息处理装置、半导体存储装置及半导体存储装置的控制方法 | |
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
JP2007310636A (ja) | データ記憶装置およびデータ記憶方法 | |
US8185687B2 (en) | Semiconductor storage device and method of controlling semiconductor storage device | |
US8433847B2 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
US20150052329A1 (en) | Memory control device, host computer, information processing system and method of controlling memory control device | |
US20180004454A1 (en) | Implementing scattered atomic i/o writes | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
JP2013065060A (ja) | 情報処理装置およびキャッシュ方法 | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
KR20190048453A (ko) | 저장 장치 및 메모리 시스템 | |
JP2009015364A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR20100035408A (ko) | 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법 | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
US9047959B1 (en) | Data storage device, memory control method, and electronic device with data storage device | |
JP5204265B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
TW202240390A (zh) | 儲存系統及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20110823 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110915 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140922 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140922 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |