JP2012118784A - データ記憶装置、メモリ制御装置及びメモリ制御方法 - Google Patents

データ記憶装置、メモリ制御装置及びメモリ制御方法 Download PDF

Info

Publication number
JP2012118784A
JP2012118784A JP2010268303A JP2010268303A JP2012118784A JP 2012118784 A JP2012118784 A JP 2012118784A JP 2010268303 A JP2010268303 A JP 2010268303A JP 2010268303 A JP2010268303 A JP 2010268303A JP 2012118784 A JP2012118784 A JP 2012118784A
Authority
JP
Japan
Prior art keywords
command
write
read
rmw
processing
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.)
Granted
Application number
JP2010268303A
Other languages
English (en)
Other versions
JP5414656B2 (ja
Inventor
Akinori Harasawa
昭典 原澤
Toru Fukuda
徹 福田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010268303A priority Critical patent/JP5414656B2/ja
Priority to US13/299,282 priority patent/US8914592B2/en
Publication of JP2012118784A publication Critical patent/JP2012118784A/ja
Application granted granted Critical
Publication of JP5414656B2 publication Critical patent/JP5414656B2/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】マルチチャネルプログラム方式において、リード・モディファイ・ライト動作が実行される場合でも、ライトフラッシュ処理を効率的に実行できるデータ記憶装置を提供する。
【解決手段】データ記憶装置は、ライト処理モジュールと、リード処理モジュールと、コントローラとを具備する。リード処理モジュールは、通常リードコマンドを処理し、かつリード・モディファイ・ライト動作を実行する場合にRMW用リードコマンドを処理する。コントローラは、フラッシュコマンドを処理する場合に、通常リードコマンドよりもRMW用リードコマンドの処理を優先的に実行するようにリード処理モジュールを制御し、RMW用リードコマンド処理の完了後に移行するリード・モディファイ・ライト動作のRMW用ライトコマンドの処理を含むライトフラッシュ処理をライト処理モジュールに実行させる。
【選択図】図2

Description

本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置に関する。
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)の開発が推進されている。
一般的に、SSDでは、複数のチャネル単位に設けられる各フラッシュメモリに対して、データを並列に書き込むマルチチャネルプログラム方式のライト動作が行なわれる。マルチチャネルプログラム方式のライト動作では、全チャネルに書き込むデータ(ユーザデータ)がバッファメモリに準備完了した時点で、全チャネルのフラッシュメモリに対して並列に書き込むことが可能となる。
換言すれば、全チャネルに書き込むデータの準備ができない場合には、並列での書き込みができないため、ライト動作が停滞する事態が発生することがある。このような状態で、例えばSSDに対する主電源が遮断される場合に、バッファメモリに準備されているデータの消失を回避するために、停滞しているライト動作を強制的に実行させて、フラッシュメモリに対する書き込みを完了させる機能が要求される。このような機能を、ライトフラッシュ(Write Flush)機能と呼ぶ。また、このライトフラッシュ機能を実現するライト動作(ライトフラッシュ処理)を実行させるコマンドを、フラッシュコマンドと呼ぶ。
特開2010−211734号公報
従来のSSDでは、マルチチャネルプログラム方式によりライト動作の処理効率化が図られて、ライトフラッシュ機能によりデータの消失を回避することが実現されている。ライトフラッシュ処理は、キャパシタなどの予備電源により実行されるため、効率的(または短時間)に処理を完了して保護すべきデータの消失を確実に回避することが必要である。
一方で、SSDでは、リード処理を含むリード・モディファイ・ライト(read modify write)動作と呼ばれるライト動作も、通常のライト動作と共に実行されることがある。このため、リード・モディファイ・ライト動作を含めたマルチチャネルプログラム方式でのライトフラッシュ処理を効率的に実行することにより、保護すべきデータの消失を確実に回避することが要求される。
本発明の目的は、マルチチャネルプログラム方式において、リード・モディファイ・ライト動作が実行される場合でも、ライトフラッシュ処理を効率的に実行できるデータ記憶装置を提供することにある。
実施形態によれば、データ記憶装置は、ライト処理手段と、リード処理手段と、制御手段とを具備する。前記ライト処理手段は、複数チャネルの不揮発性メモリにデータを書き込むライトコマンドを処理する。前記リード処理手段は、通常リードコマンドを処理し、かつリード・モディファイ・ライト動作を実行する場合にRMW用リードコマンドを処理する。前記制御手段は、フラッシュコマンドを処理する場合に、前記通常リードコマンドよりも前記RMW用リードコマンドの処理を優先的に実行するように前記リード処理手段を制御し、前記RMW用リードコマンド処理の完了後に移行する前記リード・モディファイ・ライト動作のRMW用ライトコマンドの処理を含むライトフラッシュ処理を前記ライト処理手段に実行させるように制御する。
実施形態に関するデータ記憶装置の構成を説明するためのブロック図。 実施形態に関するフラッシュメモリコントローラの要部を説明するためのブロック図。 実施形態に関するコマンド処理モジュールの動作を説明するためのフローチャート。
以下図面を参照して、実施形態を説明する。
[データ記憶装置の構成]
図1に示すように、実施形態のデータ記憶装置は、NAND型フラッシュメモリ(flash memory、単にフラッシュメモリと表記する)21を記憶媒体として使用するマルチチャネルプログラム方式のSSD(solid state drive)である。SSDは、フラッシュメモリコントローラ(以下、単にメモリコントローラと表記する場合がある)10と、複数のフラッシュメモリ21をチャネル毎にパッケージ化したメモリパッケージ(以下、単にチャネルと表記する)20と、DRAM(dynamic random access memory)からなるバッファメモリ22とを有する。
メモリコントローラ10は、コマンド処理モジュール11と、複数のチャネル20に対応するNANDメモリインターフェース12と、システム制御モジュール13と、DRAMインターフェース14と、ホストインターフェース15と、バス16とを有する。メモリコントローラ10は、NANDメモリインターフェース12を介して、全チャネル20分のライト動作の準備が完了した時点で、各チャネル20のフラッシュメモリ21に対してデータ(ユーザデータ)を並列に書き込みを行うマルチチャネルプログラム機能を有する。
システム制御モジュール13は、NANDメモリインターフェース12を介して、各フラッシュメモリ21に対するデータの書き込み動作及びデータの読み出し動作を制御する。DRAMインターフェース14は、バッファメモリ22とバス16間のデータ転送を制御する。即ち、システム制御モジュール13は、DRAMインターフェース14を介してバッファメモリ22にデータを書き込み、バッファメモリ22からデータを読み出す。ホストインターフェース15は、ホストデバイス30とバス16間のデータ又はコマンドの転送を制御する。ホストデバイス30は、例えばパーソナルコンピュータである。
コマンド処理モジュール11は、ホストデバイス30から発行される各種のコマンドを処理し、コマンド処理に応じてNANDメモリインターフェース12に対してライトコマンド又はリードコマンドを転送する。
本実施形態では、ライトコマンドは、通常のライト動作を実行させる通常ライトコマンド(WRITE)以外に、後述するリード・モディファイ・ライト(read modify write)動作(以下、RMW動作と表記する)のライト動作を実行させるRMW用ライトコマンド(RMW用WR)を含む。また、リードコマンドは、通常のリード動作を実行させる通常リードコマンド(READ)以外に、RMW動作に含まれるリード動作を実行させるRMW用リードコマンド(RMW用RD)を含む。
図2に示すように、コマンド処理モジュール11は、コマンド解釈モジュール40と、RMW判定モジュール41と、クレジット(credit)カウンタ(以下、C−カウンタ)42と、リードコマンドキュー43と、リードコマンドバッファ44と、RMW用リードコマンドバッファ45とを有する。
さらに、コマンド処理モジュール11は、ライトコマンドキュー50と、ライトコマンドカウンタ51と、リプライ(reply)処理モジュール52とを有する。また、コマンド処理モジュール11は、セレクタ46,49、アンドゲート47、及びオアゲート48を含むロジック回路を有する。
[ライトフラッシュ処理]
以下、図2及び図3のフローチャートを参照して、コマンド処理モジュール11の動作と共に、本実施形態のライトフラッシュ処理を説明する。
コマンド処理モジュール11は、コマンド解釈モジュール40が、ホストインターフェース15を経由して転送されるコマンド100を解釈し、ライトコマンド110、リードコマンド111、フラッシュ(flush)コマンド112のいずれかに応じたコマンド処理を実行する(ブロック300)。ライトコマンド110は、前述したように、RMW動作を実行させるRMW用ライトコマンド(RMW用WR)を含む。
ここで、フラッシュコマンド112は、SSDに供給される主電源の遮断時に、SSDのマイクロプロセッサ(MPU)から発行される。コマンド処理モジュール11は、フラッシュコマンド112に応じて、後述するライトフラッシュ処理を実行する。本実施形態では、便宜的にライトコマンド110またはリードコマンド111の実行中に、フラッシュコマンド112が割り込み的に発行される場合とする。
RMW判定モジュール41は、コマンド解釈モジュール40からのライトコマンド110が、通常ライトコマンド(WRITE)またはRMW用ライトコマンド(RMW用WR)のいずれであるかを判定する(ブロック301)。RMW判定モジュール41は、例えば、ライトコマンドに伴う書き込みデータのサイズがフラッシュメモリ21の通常書き込み単位(クラスタ:cluster)未満の場合には、RMW用ライトコマンドであると判定する(ブロック301のYES)。RMW動作は、通常書き込み単位のデータの中で一部を書き換えて、残りの部分をそのまま書き戻すライト動作である。
RMW判定モジュール41により、通常ライトコマンド(WRITE)であると判定されると、当該ライトコマンド(WRITE)120がライトコマンドキュー50にセット(キューイング)される(ブロック309)。このとき、ライトコマンドカウンタ51は、現時点でライトコマンドキュー50で待機状態のライトコマンド数をカウントアップする。
これ以降、ライトコマンド(WRITE)がライトコマンドキュー50にキューイングされて、全チャネル分のライトコマンド(WRITE)が準備されたとする。この場合、ライトコマンドカウンタ51は、WRITEキューFULL信号150を出力する(ブロック310のYES)。
図2に示すように、セレクタ49は、WRITEキューFULL信号150の出力に応じて、ライトコマンドキュー50からのライトコマンドの出力140を選択する。これにより、ライトコマンドキュー50から、各チャネルのNANDメモリインターフェース12に対して、全チャネル分のライトコマンド(WRITE)が送信される。従って、全チャネル20分のフラッシュメモリ21に対してデータ(ユーザデータ)を並列に書き込むライト処理が実行される(ブロック312)。即ち、マルチチャネルプログラムが実行される。なお、全チャネル20に書き込まれるデータ(ユーザデータ)は、バッファメモリ22に格納されている。
以上のようなマルチチャネルプログラムが実行されると、各NANDメモリインタフェース12は、正常にライト処理が完了したことを通知するリプライ(reply)信号160をリプライ処理モジュール52に出力する。リプライ処理モジュール52は、全チャネル20分のライト処理が正常に完了したと判定すると、ライトコマンドカウンタ51にリセット(reset)信号161を送る。
ライトコマンドカウンタ51は、書き込み待機のライトコマンド(WRITE)数を管理している。従って、コマンド処理モジュール11は、ライトコマンドカウンタ51のリセットにより、ライトコマンドキュー50には書き込み待機のライトコマンド(WRITE)が無いことを認識できる。
一方、RMW判定モジュール41は、コマンド100がRMW用ライトコマンドであると判定すると、RMW用リードコマンド(RMW用RD)121を生成する(ブロック301のYES)。RMW用リードコマンド(RMW用RD)131は、リードコマンドキュー43にセット(キューイング)される(ブロック302)。このとき、C−カウンタ42は、クレジット(credit)を1カウント分だけ消費(カウントダウン)する。コマンド処理モジュール11は、後述するように、C−カウンタ42の値により、実行中又は準備中の状態(fly)のRMW用リードコマンド数を認識できる。
ここで、コマンド解釈モジュール40は、ホストインターフェース15を経由して転送されるコマンド100が通常のリードコマンド(READ)111であると解釈すると、リードコマンドキュー43にキューイングする(ブロック300,302)。従って、リードコマンドキュー43には、リードコマンド(READ)とRMW用リードコマンド(RMW用RD)が到着順に格納される。
ここで、全チャネル分のライトコマンド(WRITE)が準備されておらず、マルチチャネルプログラムが実行できず、及び後述するフラッシュコマンド112も発生してない状態であるとする(ブロック303のNO)。このような状態では、リードコマンドキュー43から順番に、リードコマンド(READ)またはRMW用リードコマンド(RMW用RD)が該当チャネルのNANDメモリインターフェース12に送られる。これにより、フラッシュメモリ21からデータ(ユーザデータ)が読み出されるリード処理が実行される(ブロック304)。
具体的には、図2に示すように、リードコマンドキュー43から順に、リードコマンド(READ)またはRMW用リードコマンド(RMW用RD)がリードコマンドバッファ44にセットされる。リードコマンドバッファ44にセットされたリードコマンド(READまたはRMW用RD)は、セレクタ46,49を経由して、各チャネルのNANDメモリインターフェース12に送られる。但し、リードコマンドキュー43から送信されるリードコマンド(READまたはRMW用RD)の順番は、リード要求のアドレスに応じて追い越しが発生する場合もある。
リプライ処理モジュール52は、RMW用リードコマンド(RMW用RD)のリード処理が完了すると、NANDメモリインターフェース12からその通知であるリプライ(reply)信号160を受信する(ブロック305のYES)。リプライ処理モジュール52は、RMW用ライトコマンド(RMW用WR)162を生成する(ブロック306)。
RMW用ライトコマンド(RMW用WR)は、RMW動作の第2のフェーズであるライト処理を実行するためのライトコマンドである。即ち、RMW動作は、第1のフェーズで、書き換え対象のデータを読み出して退避する処理を実行する。この第1のフェーズでのリード処理は、RMW用リードコマンド(RMW用RD)により実行される。第2のフェーズであるライト処理は、読み出された書き換え対象のデータの一部を書き換えた後に、書き戻す処理である。
C−カウンタ42は、リプライ処理モジュール52からのRMW用WR162に応じて、クレジット(credit)を1カウント分だけ回復(カウントアップ)する。さらに、RMW用ライトコマンド(RMW用WR)は、ライトコマンドキュー50にセット(キューイング)される(ブロック309)。ライトコマンドカウンタ51は、C−カウンタ42からのRMW用WR132によりライトコマンド数をカウントアップする。
ここで、前述したように、コマンド処理モジュール11は、C−カウンタ42の値により、実行中又は準備中の状態(fly)のRMW用リードコマンド数を認識できる。但し、コマンド処理モジュール11は、C−カウンタ42を使用しない別の方法によりRMW用リードコマンドのflyを確認してもよい。
C−カウンタ42は、予めRMW用リードコマンドのfly可能な個数(例えば64個)が設定されている。C−カウンタ42は、RMW用リードコマンド(RMW用RD)がリードコマンドキュー43にセットされる度に消費(−1)される。RMW用リードコマンドが完了してRMW用ライトコマンド(RMW用WR)が生成されると、C−カウンタ42は回復(+1)される。従って、C−カウンタ42は全て回復されていれば、コマンド処理モジュール11は、全てのRMW用RDの処理が完了して、RMW動作のライト処理に移行していることを認識できる。
次に、コマンド処理モジュール11は、コマンド解釈モジュール40がフラッシュコマンド(Flushコマンド)112を受信すると、ライトフラッシュ処理を実行する(ブロック303のYES)。フラッシュコマンド(Flushコマンド)は、例えばSSDに供給される主電源の遮断時に発行される。フラッシュコマンド(Flushコマンド)は、ライトコマンドキュー50に停滞しているライトコマンド(WRITEまたはRMW用WR)を強制的に実行させるライトフラッシュ(Write Flush)処理を実行させる。これにより、キャパシタなどの予備電源に切り換えて、バッファメモリ22に準備されているデータの消失を回避することができる。
コマンド処理モジュール11は、フラッシュコマンド(Flushコマンド)を受け取ると、RMW動作のライト処理に移行する前のRMW用リードコマンド(RMW用RD)を優先的に処理する。具体的には、リードコマンドキュー43からRMW用RDを、RMW用リードコマンドバッファ45にセットする(ブロック307)。
RMW用リードコマンド(RMW用RD)は、RMW用リードコマンドバッファ45からセレクタ46,49を経由して、各チャネルのNANDメモリインターフェース12に送られる。これにより、RMW動作でのリード処理が実行される(ブロック308)。即ち、実行中又は準備中の状態(fly)のRMW用リードコマンド(RMW用RD)は、通常のリードコマンド(READ)より優先して処理される。
さらに、リプライ処理モジュール52は、RMW用リードコマンド(RMW用RD)のリード処理が完了すると、RMW用ライトコマンド(RMW用WR)162を生成する(ブロック305,306)。RMW用ライトコマンド(RMW用WR)は、ライトコマンドキュー50にキューイングされる(ブロック309)。
コマンド処理モジュール11は、WRITEキューFULL信号150が出力されていないとき、C−カウンタ42をチェックする(ブロック310のNO,311)。C−カウンタ42の値が全て回復されていれば、実行中又は準備中の全てのRMW用リードコマンド(RMW用RD)の処理が完了し、全てのRMW用ライトコマンド(RMW用WR)がライトコマンドキュー50にキューイングされていることを認識する(ブロック311のYES)。従って、コマンド処理モジュール11は、ライトコマンドキュー50に格納されているライトコマンド(WRITE)及びRMW用ライトコマンド(RMW用WR)の全てを各チャネルのNANDメモリインターフェース12に送信する。即ち、コマンド処理モジュール11は、ライトコマンドキュー50に停滞しているライトコマンド(WRITE及びRMW用WR)を強制的に実行させるライトフラッシュ(Write Flush)処理を実行する(ブロック313)。
具体的には、図2に示すように、セレクタ49は、C−カウンタ42からのクレジットフル信号130及びFlushコマンド112に応じて、ライトコマンドキュー50からのライトコマンドの出力140を選択する。これにより、ライトコマンドキュー50から、各チャネルのNANDメモリインターフェース12に対して、ライトコマンド(WRITE及びRMW用WR)が全て送信される。なお、C−カウンタ42は、全てのRMW用リードコマンド(RMW用RD)の処理が完了したことにより、クレジットの全てが回復したときにクレジットフル信号130を出力する。
以上のようにして本実施形態によれば、マルチチャネルプログラム方式のSSDにおいて、フラッシュコマンド(Flushコマンド)が発生したときに、停滞しているライトコマンド(WRITE及びRMW用WR)を強制的に実行させるライトフラッシュ(Write Flush)処理を確実に実行することができる。従って、SSDの主電源が遮断された場合に、バッファメモリ22内のデータが消去される事態を確実に回避することが可能となる。
ここで、通常ライトコマンド(WRITE)とRMW用ライトコマンド(RMW用WR)が混在している場合に、RMW用リードコマンド(RMW用RD)の処理が完了しておらず、RMW用WRが生成されていないことがある。本実施形態は、フラッシュコマンド処理時に、RMW用リードコマンド(RMW用RD)をRMW用バッファ45に移動させて優先的に処理する。これにより、RMW用ライトコマンド(RMW用WR)を効率的に準備することが可能となり、結果としてライトフラッシュ処理を高速化又は効率化を実現することができる。
このような効率的なライトフラッシュ処理を実現できることにより、バッファメモリ22内のデータが消去される前に、フラッシュメモリに書き込むことにより、確実に保護することができる。また、SSDの主電源からキャパシタなどの予備電源に移行する上で、ライトフラッシュ処理を高速化により、相対的に予備電源の容量を削減することも可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…フラッシュメモリコントローラ、11…コマンド処理モジュール、
12…NANDメモリインターフェース、13…システム制御モジュール、
14…DRAMインターフェース、15…ホストインターフェース、16…バス、
20…チャネル(メモリパッケージ)、21…NAND型フラッシュメモリ、
22…バッファメモリ(DRAM)、30…ホストデバイス、
40…コマンド解釈モジュール、41…RMW判定モジュール、
42…クレジットカウンタ(C−カウンタ)、43…リードコマンドキュー、
44…リードコマンドバッファ、45…RMW用リードコマンドバッファ、
50…ライトコマンドキュー、51…ライトコマンドカウンタ、
52…リプライ(reply)処理モジュール。

Claims (10)

  1. 複数チャネルの不揮発性メモリにデータを書き込むライトコマンドを処理するライト処理手段と、
    通常リードコマンドを処理し、かつリード・モディファイ・ライト動作を実行する場合にRMW用リードコマンドを処理するリード処理手段と、
    前記リード処理手段及び前記ライト処理手段を制御する制御手段とを具備し、
    前記制御手段は、
    フラッシュコマンドを処理する場合に、前記通常リードコマンドよりも前記RMW用リードコマンドの処理を優先的に実行するように前記リード処理手段を制御し、
    前記RMW用リードコマンド処理の完了後に移行する前記リード・モディファイ・ライト動作のRMW用ライトコマンドの処理を含むライトフラッシュ処理を前記ライト処理手段に実行させるように制御するデータ記憶装置。
  2. 前記リード処理手段は、
    前記通常リードコマンド及び前記RMW用リードコマンドを格納するリードコマンドキュー手段を有し、
    通常リード処理では、前記リードコマンドキュー手段から実行順に前記RMW用リードコマンドまたは前記通常リードコマンドを取り出して処理し、
    前記フラッシュコマンドを処理する場合には、前記リードコマンドキュー手段から前記RMW用リードコマンドを優先的に取り出して処理するように構成されている請求項1に記載のデータ記憶装置。
  3. 前記ライト処理手段は、
    通常ライト処理を実行する場合に、マルチチャネルプログラム方式のライトコマンド処理を実行し、
    前記フラッシュコマンドを処理する場合に、準備完了した前記RMW用ライトコマンドを含むライトコマンドを強制的に処理する前記ライトフラッシュ処理を実行するように構成されている請求項1または請求項2のいずれか1項に記載のデータ記憶装置。
  4. 前記制御手段は、
    前記RMW用リードコマンドの中で処理完了前のコマンドを検知する手段と、
    前記フラッシュコマンドを処理する場合に、検知された処理完了前の前記RMW用リードコマンドの全てを処理完了させて、該当する全ての前記RMW用ライトコマンドを生成する手段と
    を含む請求項1から請求項3のいずれか1項に記載のデータ記憶装置。
  5. 前記リード処理手段は、
    通常リード処理では、前記リードコマンドキュー手段から実行順に前記RMW用リードコマンドまたは前記通常リードコマンドを取り出して格納する第1のバッファ手段と、
    前記フラッシュコマンドを処理する場合には、優先的に実行するために、前記リードコマンドキュー手段から前記RMW用リードコマンドを取り出して格納する第2のバッファ手段とを有する請求項2に記載のデータ記憶装置。
  6. 前記ライト処理手段は、
    前記RMW用ライトコマンド及び通常ライトコマンドを格納するライトコマンドキュー手段を有し、
    通常ライト処理では、前記ライトコマンドキュー手段において全てのチャネル分の前記RMW用ライトコマンドまたは前記通常ライトコマンドが準備された場合に、前記マルチチャネルプログラム方式のライトコマンド処理を実行する請求項3に記載のデータ記憶装置。
  7. 前記ライト処理手段は、
    前記フラッシュコマンドを処理する場合に、準備完了して前記ライトコマンドキュー手段に格納された前記RMW用ライトコマンド又は前記通常ライトコマンドを強制的に処理する前記ライトフラッシュ処理を実行する請求項6に記載のデータ記憶装置。
  8. 複数チャネルの不揮発性メモリを有するデータ記憶装置に適用するメモリ制御装置であって、
    前記複数チャネルの不揮発性メモリにデータを書き込むライトコマンドを処理するライト処理手段と、
    通常リードコマンドを処理し、かつリード・モディファイ・ライト動作を実行する場合にRMW用リードコマンドを処理するリード処理手段と、
    前記リード処理手段及び前記ライト処理手段を制御する制御手段とを具備し、
    前記制御手段は、
    フラッシュコマンドを処理する場合に、前記通常リードコマンドよりも前記RMW用リードコマンドの処理を優先的に実行するように前記リード処理手段を制御し、
    前記RMW用リードコマンド処理の完了後に移行する前記リード・モディファイ・ライト動作のRMW用ライトコマンドの処理を含むライトフラッシュ処理を前記ライト処理手段に実行させるように制御するメモリ制御装置。
  9. 前記リード処理手段は、
    前記通常リードコマンド及び前記RMW用リードコマンドを格納するリードコマンドキュー手段を有し、
    通常リード処理では、前記リードコマンドキュー手段から実行順に前記RMW用リードコマンドまたは前記通常リードコマンドを取り出して処理し、
    前記フラッシュコマンドを処理する場合には、前記リードコマンドキュー手段から前記RMW用リードコマンドを優先的に取り出して処理するように構成されている請求項8に記載のメモリ制御装置。
  10. 複数チャネルの不揮発性メモリを有するデータ記憶装置に適用するメモリ制御方法であって、
    通常ライト動作では、前記複数チャネルの不揮発性メモリにデータを書き込むライトコマンドを処理し、
    リード・モディファイ・ライト動作を実行する場合に、当該リード・モディファイ・ライト動作のRMW用リードコマンドを処理し、
    フラッシュコマンドを処理する場合に、通常リードコマンドよりも前記RMW用リードコマンドの処理を優先的に実行し、
    前記RMW用リードコマンド処理の完了後に移行する前記リード・モディファイ・ライト動作のRMW用ライトコマンドの処理を含むライトフラッシュ処理を実行するメモリ制御方法。
JP2010268303A 2010-12-01 2010-12-01 データ記憶装置、メモリ制御装置及びメモリ制御方法 Expired - Fee Related JP5414656B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010268303A JP5414656B2 (ja) 2010-12-01 2010-12-01 データ記憶装置、メモリ制御装置及びメモリ制御方法
US13/299,282 US8914592B2 (en) 2010-12-01 2011-11-17 Data storage apparatus with nonvolatile memories and method for controlling nonvolatile memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010268303A JP5414656B2 (ja) 2010-12-01 2010-12-01 データ記憶装置、メモリ制御装置及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2012118784A true JP2012118784A (ja) 2012-06-21
JP5414656B2 JP5414656B2 (ja) 2014-02-12

Family

ID=46163328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010268303A Expired - Fee Related JP5414656B2 (ja) 2010-12-01 2010-12-01 データ記憶装置、メモリ制御装置及びメモリ制御方法

Country Status (2)

Country Link
US (1) US8914592B2 (ja)
JP (1) JP5414656B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413569A (zh) * 2013-07-22 2013-11-27 华为技术有限公司 一读且一写静态随机存储器
JP2014194689A (ja) * 2013-03-29 2014-10-09 Mega Chips Corp 不揮発性記憶システム、不揮発性記憶装置、および、メモリコントローラ
US9792989B2 (en) 2013-02-07 2017-10-17 Toshiba Memory Corporation Memory system including nonvolatile memory
CN110321070A (zh) * 2018-03-28 2019-10-11 爱思开海力士有限公司 存储器控制器及其操作方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135945B (zh) * 2013-03-25 2014-11-26 中国人民解放军国防科学技术大学 用于ssd的多通道动态读写调度方法
JP2015128207A (ja) * 2013-12-27 2015-07-09 株式会社リコー 画像読取装置、画像読取方法及びプログラム
TWI582776B (zh) * 2016-01-04 2017-05-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US10901898B2 (en) * 2018-02-14 2021-01-26 Samsung Electronics Co., Ltd. Cost-effective solid state disk data-protection method for power outages
CN110989918B (zh) * 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211734A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp 不揮発性メモリを用いた記憶装置
JP2012113476A (ja) * 2010-11-24 2012-06-14 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332623A (ja) 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
US6295581B1 (en) * 1998-02-20 2001-09-25 Ati Technologies, Inc. Method and apparatus for assuring cache coherency
US6549977B1 (en) * 2001-05-23 2003-04-15 3Ware, Inc. Use of deferred write completion interrupts to increase the performance of disk operations
US7328317B2 (en) * 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
US7882299B2 (en) 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211734A (ja) * 2009-03-12 2010-09-24 Toshiba Storage Device Corp 不揮発性メモリを用いた記憶装置
JP2012113476A (ja) * 2010-11-24 2012-06-14 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792989B2 (en) 2013-02-07 2017-10-17 Toshiba Memory Corporation Memory system including nonvolatile memory
JP2014194689A (ja) * 2013-03-29 2014-10-09 Mega Chips Corp 不揮発性記憶システム、不揮発性記憶装置、および、メモリコントローラ
CN103413569A (zh) * 2013-07-22 2013-11-27 华为技术有限公司 一读且一写静态随机存储器
CN103413569B (zh) * 2013-07-22 2016-03-09 华为技术有限公司 一读且一写静态随机存储器
CN110321070A (zh) * 2018-03-28 2019-10-11 爱思开海力士有限公司 存储器控制器及其操作方法
CN110321070B (zh) * 2018-03-28 2023-11-03 爱思开海力士有限公司 存储器控制器及其操作方法

Also Published As

Publication number Publication date
JP5414656B2 (ja) 2014-02-12
US20120144094A1 (en) 2012-06-07
US8914592B2 (en) 2014-12-16

Similar Documents

Publication Publication Date Title
JP5414656B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
US10025522B2 (en) Memory interface command queue throttling
KR101366960B1 (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
TWI512476B (zh) 用以控制非依電性記憶體裝置中之操作之方法以及相關電腦程式產品、電腦可讀儲存媒體、記憶體裝置、及主機裝置
US8996782B2 (en) Memory system and bank interleaving method
US8429374B2 (en) System and method for read-while-write with NAND memory device
US20180275921A1 (en) Storage device
US20200379684A1 (en) Predictive Data Transfer based on Availability of Media Units in Memory Sub-Systems
KR20060113248A (ko) 낸드 플래시 메모리 제어 장치 및 방법
US9304952B2 (en) Memory control device, storage device, and memory control method
JP2011118469A (ja) メモリ管理装置およびメモリ管理方法
US9575887B2 (en) Memory device, information-processing device and information-processing method
US20190155765A1 (en) Operation method of host system including storage device and operation method of storage device controller
JP2017033501A (ja) 記憶装置および制御方法
US9792989B2 (en) Memory system including nonvolatile memory
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
CN109901785B (zh) 命令排序方法、降低读时延方法及固态硬盘ssd控制器
KR102471151B1 (ko) 메모리 시스템 및 그것을 제어하는 방법
US20150071003A1 (en) Data write control device and data storage device
JP2013200692A (ja) メモリシステム
US20150055419A1 (en) Controller, memory system, and method
JP2016026345A (ja) メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止
JP6844895B1 (ja) ストレージ装置およびストレージ方法
US20200310681A1 (en) Memory controller, memory system, and information processing system
US9208076B2 (en) Nonvolatile storage device and method of storing data thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130225

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130305

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

LAPS Cancellation because of no payment of annual fees