JP2010009548A - 記憶装置、制御装置、記憶システム、および記憶方法 - Google Patents

記憶装置、制御装置、記憶システム、および記憶方法 Download PDF

Info

Publication number
JP2010009548A
JP2010009548A JP2008171579A JP2008171579A JP2010009548A JP 2010009548 A JP2010009548 A JP 2010009548A JP 2008171579 A JP2008171579 A JP 2008171579A JP 2008171579 A JP2008171579 A JP 2008171579A JP 2010009548 A JP2010009548 A JP 2010009548A
Authority
JP
Japan
Prior art keywords
size
unit
block size
storage
control device
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
JP2008171579A
Other languages
English (en)
Inventor
Hideaki Sato
英昭 佐藤
Kazuhiro Fukutomi
和弘 福冨
Shinichi Sugano
伸一 菅野
Shigehiro Asano
滋博 浅野
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 JP2008171579A priority Critical patent/JP2010009548A/ja
Priority to US12/396,006 priority patent/US8065482B2/en
Publication of JP2010009548A publication Critical patent/JP2010009548A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

【課題】メモリ素子の利用効率を向上する記憶装置を提供すること。
【解決手段】メモリ素子と、メモリ素子のブロックサイズを記憶するサイズ記憶部201と、RAIDコントローラから受信したデータをバッファ204に保存し、バッファ204に保存したデータをメモリ素子に書き込むバッファ処理を実行可能なバッファ処理部205と、RAIDコントローラがメモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを受信するストライプサイズ受信部202bと、ストライプサイズがブロックサイズのn倍(nは正の整数)の場合に、バッファ処理部205によるバッファ処理を実行せず、RAIDコントローラから受信したデータをメモリ素子に書き込む書き込み処理部207と、を備えた。
【選択図】 図3

Description

この発明は、不揮発性半導体記憶素子を備えた記憶装置、当該記憶装置を制御する制御装置、記憶システム、および記憶方法に関する。
不揮発性半導体記憶素子には、NAND型フラッシュメモリのように、データを記憶させる場合に、ブロックと呼ばれる単位で一度データを消去してからその後に書き込みを行う素子、ページと呼ばれる単位で読み出し/書き込みを行う素子、および、消去/読み出し/書き込みの単位が固定されている素子などが存在する。読み出しや書き込みの単位は、半導体記憶装置ごとに決められており、記憶装置の寿命や特性を決める一つの要因となっている。
また、NAND型フラッシュメモリは、データの書き込みに先立って行うブロックの消去回数の増加に応じてメモリセル(メモリ素子)の劣化が進行していく性質を有する。
一方、パーソナルコンピュータなどのホスト機器がハードディスクをはじめとする二次記憶装置に対してデータの読み出し/書き込みを行う単位は、セクタと呼ばれる。セクタは、半導体記憶素子の消去/読み出し/書き込みの単位とは独立に定められる。
例えば、半導体記憶素子のブロックの大きさ(ブロックサイズ)が512キロバイト、ページの大きさ(ページサイズ)が4キロバイトであるのに対して、ホスト機器のセクタの大きさ(セクタサイズ)は512バイトのように定められる。
また、サーバー環境で使用されるディスクアレイなどのストレージシステムでは、信頼性を向上するために、非特許文献1に示すようなRAID(Redundant Arrays of Independent/Inexpensive Disks)を構成することが多い。RAIDでは、RAIDコントローラが、ストライプと呼ばれる単位で複数のディスクにデータを保存する。ストライプの大きさ(ストライプサイズ)は、ディスクの読み出し/書き込み単位とは独立に定められる。RAIDを構成するストレージシステムには、通常ハードディスクなどの磁気記憶装置を用いるが、最近では、上記不揮発性半導体記憶素子を用いたSSD(Solid State Drive)などを用いる場合も増えている。この場合でも、ストライプサイズは、不揮発性半導体記憶素子の消去/読み出し/書き込みの単位とは独立に定められる。
D. Patterson, G. Gibsonand R. Katz. "A Case for Redundant Arrays of Inexpensive Disks (RAID)",Proceedings of the 1988 ACM SIGMOD, pp.109-116, June 1988.
しかしながら、上記のように不揮発性半導体記憶素子を用いた記憶装置では、メモリ素子の劣化に対して最適なデータのアクセス単位が存在するが、このアクセス単位はホスト機器のデータアクセス単位とは必ずしも一致していないため、メモリ素子を効率的に使用できない場合があるという問題があった。
本発明は、上記に鑑みてなされたものであって、メモリ素子の利用効率を向上することができる記憶装置、制御装置、記憶システム、および記憶方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、制御装置によって制御される記憶装置であって、メモリ素子と、前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、前記ブロックサイズのデータを記憶可能なデータ記憶部と、前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、前記制御装置が前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを前記制御装置から受信するストライプサイズ受信部と、前記ストライプサイズが前記ブロックサイズのn倍(nは正の整数)であるか否かを判定する判定部と、を備え、前記バッファ処理部は、前記ストライプサイズが前記ブロックサイズのn倍である場合にバッファ処理を実行しないこと、を特徴とする。
また、本発明は、アクセス単位であるブロックのサイズを表すブロックサイズが予め定められたメモリ素子を有する記憶装置を制御する制御装置であって、前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信部と、前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信部と、前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍(nは正の整数)に決定するサイズ決定部と、決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信部と、を備えたこと特徴とする。
また、本発明は、記憶装置と、前記記憶装置を制御する制御装置とを備えた記憶システムであって、前記記憶装置は、メモリ素子と、前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、前記ブロックサイズのデータを記憶可能なデータ記憶部と、前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、前記ブロックサイズの取得要求を前記制御装置から受信する要求受信部と、前記取得要求を受信したときに、前記ブロックサイズを前記サイズ記憶部から取得し、取得した前記ブロックサイズを前記制御装置に送信する送信部と、前記制御装置が前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを前記制御装置から受信するストライプサイズ受信部と、前記ストライプサイズが前記ブロックサイズのn倍(nは正の整数)であるか否かを判定する判定部と、を備え、前記バッファ処理部は、前記ストライプサイズが前記ブロックサイズのn倍である場合にバッファ処理を実行せず、前記制御装置は、前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信部と、前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信部と、前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍に決定するサイズ決定部と、決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信部と、を備えたこと、を特徴とする。
また、本発明は、記憶装置と、前記記憶装置を制御する制御装置とを備えた記憶システムで実行される記憶方法であって、前記記憶装置は、メモリ素子と、前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、前記ブロックサイズのデータを記憶可能なデータ記憶部と、前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、を備え、前記制御装置が、前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信ステップと、前記記憶装置が、前記取得要求を前記制御装置から受信する要求受信ステップと、前記記憶装置が、前記取得要求を受信したときに、前記ブロックサイズを前記サイズ記憶部から取得し、取得した前記ブロックサイズを前記制御装置に送信する送信ステップと、前記制御装置が、前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信ステップと、前記制御装置が、前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍(nは正の整数)に決定するサイズ決定ステップと、前記制御装置が、決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信ステップと、前記記憶装置が、前記ストライプサイズを前記制御装置から受信するストライプサイズ受信ステップと、前記記憶装置が、前記ストライプサイズが前記ブロックサイズのn倍であるか否かを判定する判定ステップと、前記記憶装置が、前記ストライプサイズが前記ブロックサイズのn倍である場合に、前記バッファ処理部によるバッファ処理を実行せず、前記制御装置から受信したデータを前記メモリ素子に書き込む書き込み処理ステップと、を備えたことを特徴とする。
本発明によれば、メモリ素子の利用効率を向上することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる記憶装置、制御装置、記憶システム、および記憶方法の最良な実施の形態を詳細に説明する。
本実施の形態にかかる記憶システムは、NAND型フラッシュメモリなどの不揮発性半導体記憶素子によって構成された複数の記憶装置(メモリ装置)と、これらの記憶装置でRAIDを構成して制御する制御装置(RAIDコントローラ)とを備える。そして、RAIDコントローラが各記憶装置を構成する記憶素子のブロックサイズを各記憶装置から取得し、RAIDのストライプサイズを、取得したブロックサイズの最小公倍数となるように決定する。
図1は、本実施の形態にかかる記憶システムの構成を示すブロック図である。図1は、記憶システムをRAID構成にした場合の構成例を示している。同図に示すように、本実施の形態の記憶システムは、RAIDコントローラ10と、複数のメモリ装置20a〜20cと、ホスト機器30とを備えている。
ホスト機器30は、PC(Personal Computer)等であって、RAIDコントローラ10に対してデータの書き込みや読み込みを要求する。
RAIDコントローラ10は、決められたストライプ単位でのアクセスなどRAID機能に関する制御を行う。RAIDコントローラ10は、例えば、データと誤り訂正符号とを3台のメモリ装置20a〜20cに分散して記憶するRAID5を構成する。これにより、保存データの信頼性を高めることができる。
なお、RAID構成はRAID5に限られず、複数のメモリ装置に所定のストライプサイズでデータを書き込む構成であればあらゆるRAID構成を適用できる。また、制御装置は、複数のメモリ装置でRAIDを構成して制御するRAIDコントローラに限られず、メモリ装置固有のアクセス単位のサイズと異なる所定のサイズ(ストライプサイズ)で当該メモリ装置をアクセスするように制御する装置であればあらゆる装置に適用できる。
メモリ装置20a〜20cは、ブロック単位でデータをアクセスするメモリ素子で構成される記憶装置である。メモリ装置20a〜20cは、例えば、NAND型フラッシュメモリをメモリ素子として用いるSSD(Solid State Drive)によって構成する。なお、メモリ装置20a〜20cは、同様の構成を備えるため、以下では単にメモリ装置20という場合がある。また、同図では3台のメモリ装置20を備える構成を記載しているが、接続するメモリ装置20の台数は3台に限られるものではない。
次に、RAIDコントローラ10およびメモリ装置20の詳細な構成について説明する。最初に、メモリ装置20の構成について図2を用いて説明する。図2は、本実施の形態にかかるメモリ装置20の構成を示すブロック図である。同図に示すように、メモリ装置20は、メモリ制御部21と、複数のメモリ素子22a〜22cとを備えている。
メモリ素子22a〜22cは、予め定められたサイズ(ブロックサイズ)のブロック単位でアクセスするメモリ素子である。メモリ素子22a〜22cは、例えば、NAND型フラッシュメモリによって構成することができる。なお、適用可能な素子はNAND型フラッシュメモリに限られず、所定のブロックサイズでアクセスする素子であればあらゆるメモリ素子を適用できる。
なお、メモリ素子22a〜22cは同様の構成を備えるため、以下では単にメモリ素子22という場合がある。また、同図では、メモリ素子22を3つ備える構成例を示しているが、メモリ素子22の個数は3つに限られるものではない。
メモリ制御部21は、RAIDコントローラ10からの命令を処理してメモリ素子22へのアクセスを制御する。図3は、メモリ制御部21の詳細な構成を示すブロック図である。図3に示すように、メモリ制御部21は、サイズ記憶部201と、要求処理部202と、応答送信部203と、バッファ204と、バッファ処理部205と、処理モード変更部206と、書き込み処理部207と、を備えている。
サイズ記憶部201は、メモリ装置20の各メモリ素子22のアクセス単位であるブロックサイズを記憶する。なお、サイズ記憶部201は、一つのブロックサイズだけを保存してもよいし、例えば読み書き時のブロックサイズ(読み書きブロックサイズ)と消去時のブロックサイズ(消去ブロックサイズ)などのように複数のブロックサイズを保存してもよい。
要求処理部202は、RAIDコントローラ10から各種要求やデータを受信し、受信した要求やデータに応じた処理を実行する。例えば、要求処理部202は、RAIDコントローラ10からデータの読み書きの要求を受信し、要求に応じてメモリ素子22に対するデータの読み書きを実行する。
要求処理部202は、さらに詳細な構成として、要求受信部202aと、ストライプサイズ受信部202bとを備えている。
要求受信部202aは、RAIDコントローラ10から、ブロックサイズの取得要求などの各種要求を受信する。ストライプサイズ受信部202bは、RAIDコントローラ10から、RAIDコントローラ10が決定したストライプサイズを受信する。
要求処理部202は、さらに、要求受信部202aが受信した取得要求に応じて、ブロックサイズをサイズ記憶部201から取得する。
応答送信部203は、要求処理部202によって取得されたブロックサイズをRAIDコントローラ10に送信する。
バッファ204は、RAIDコントローラ10から書き込みが要求されたデータを一時的に保存する記憶部である。バッファ204は、少なくともブロックサイズ分のデータを記憶可能である。
バッファ処理部205は、バッファ204を用いて、メモリ素子22にアクセスするときのバッファ処理を行う。バッファ処理とは、メモリ素子22のブロックサイズより小さいサイズのデータをバッファ204に保存し、データがブロックサイズに達したときにメモリ素子22に書き込む処理をいう。
処理モード変更部206は、後述する書き込み処理部207の処理モードを設定・変更する。処理モードには、バッファ処理部205によるバッファ処理を実行する通常モードと、バッファ処理を実行せずにRAIDコントローラ10から受信したデータをそのままメモリ素子22に書き込む高速処理モードとが含まれる。
処理モード変更部206は、RAIDコントローラ10から受信したストライプサイズが、メモリ素子22のブロックサイズと等しいか整数倍であるか否かを判定する判定部206aを備えている。そして、処理モード変更部206は、ストライプサイズがブロックサイズと等しいか整数倍である場合に、処理モードを高速処理モードに設定する。
例えば、ブロックサイズが2KBのメモリ装置20の場合、処理モード変更部206は、ストライプサイズが2KBかその整数倍(4KB、8KB、・・・)であるときに高速処理モードに移行可能とする。この条件が成り立つときは、バッファ処理部205によるバッファリング(バッファ処理)を省略しても、常にブロックサイズ単位での書き込みとなるためである。
書き込み処理部207は、処理モード変更部206が設定・変更した処理モードでメモリ素子22に対するデータを書き込む。例えば、通常モードの場合は、書き込み処理部207は、バッファ処理部205によるバッファ処理を実行することにより、RAIDコントローラ10から受信したデータをバッファ204に保存し、バッファ204に保存されたデータをメモリ素子22に書き込む。
また、高速処理モードの場合は、書き込み処理部207は、バッファ処理部205によるバッファ処理を実行せず、RAIDコントローラ10から受信したデータを直接メモリ素子22に書き込む。
次に、RAIDコントローラ10の構成について図4を用いて説明する。図4は、本実施の形態にかかるRAIDコントローラ10の構成を示すブロック図である。同図に示すように、RAIDコントローラ10は、制御用プロセッサ11と、キャッシュ12とを備えている。
キャッシュ12は、メモリ装置20に書き込むデータの一時的な保存が可能な記憶部である。キャッシュ12は、例えば、DRAMなど揮発性半導体を用いて構成することができる。
制御用プロセッサ11は、ストライプ単位でのデータの読み書きや、エラー訂正用データの生成などを行う。図5は、制御用プロセッサ11の機能構成を示すブロック図である。図5に示すように、制御用プロセッサ11は、要求送信部101と、ブロックサイズ受信部102と、サイズ決定部103と、ストライプサイズ送信部104と、書き込み処理部105と、を備えている。
要求送信部101は、ブロックサイズの取得要求をメモリ装置20に送信する。要求送信部101は、例えば、メモリ装置20がRAIDコントローラ10に接続され、接続された各メモリ装置20でRAIDを構成する構成処理を開始したときに、取得要求を送信する。
ブロックサイズ受信部102は、ブロックサイズの取得要求に応じて各メモリ装置20から送信されたブロックサイズを受信する。
サイズ決定部103は、各メモリ装置20から受信したブロックサイズを元に、RAIDを構成する各メモリ装置20に対するアクセス単位のサイズであるストライプサイズを決定する。具体的には、サイズ決定部103は、ストライプサイズを、各メモリ装置20のブロックサイズのn倍(nは正の整数)となるように決定する。
例えば、各メモリ装置20のブロックサイズがすべて一致する場合は、サイズ決定部103は、受信したブロックサイズをストライプサイズに決定する(n=1)。また、例えば、各メモリ装置20のブロックサイズが一致しない場合は、サイズ決定部103は、受信した複数のブロックサイズの最小公倍数を、ストライプサイズとして決定する。
なお、最小公倍数の上限となる閾値を予め定めておき、サイズ決定部103が、当該閾値を超えない範囲でストライプサイズとする最小公倍数を決定するように構成してもよい。例えば、サイズ決定部103が、受信したすべてのブロックサイズの最小公倍数を求め、求めた最小公倍数が閾値を超えた場合には、いずれかのブロックサイズを除いたブロックサイズの最小公倍数であって閾値を超えない最小公倍数を求めるように構成する。
ストライプサイズ送信部104は、サイズ決定部103が決定したストライプサイズを、各メモリ装置20に送信する。
書き込み処理部105は、決定したストライプサイズで、各メモリ装置20に対してデータを書き込む書き込み処理を実行する。書き込み処理部105は、メモリ装置20の書き込み処理部207と同様に、キャッシュ12を用いたバッファ処理を実行してデータをメモリ装置20に書き込む。
具体的には、書き込み処理部105は、キャッシュ12をストライプサイズ単位で区切った複数のセグメントに分割して管理する。図6は、セグメントに分割したキャッシュ12の一例を示す図である。書き込み処理部105は、図6のように分割した各セグメントにホスト機器30からの書き込みデータを一時的に保存し、データがセグメントの容量であるストライプサイズに達したときに、セグメントに保存されたデータをメモリ装置20に書き込む。
なお、キャッシュ12の空き領域が無くなった場合、書き込み処理部105は、空き領域を確保するために、ストライプサイズに満たないセグメントのデータを書き出す。本実施の形態では、このような場合、書き込み処理部105が、できる限りストライプサイズに近いデータから優先的にメモリ装置20へ書き出す。これにより、メモリ装置20の1ブロックに書き込まれる有効なデータが大きくなるため、書換え効率を向上させることができる。
次に、このように構成された本実施の形態にかかる記憶システムによるストライプサイズ決定処理について図7を用いて説明する。図7は、本実施の形態におけるストライプサイズ決定処理の全体の流れを示すシーケンス図である。
まず、RAIDコントローラ10の要求送信部101は、接続されたメモリ装置20に対してブロックサイズの取得要求を送信する(ステップS41)。次に、メモリ装置20は、サイズ記憶部201からブロックサイズを取得して返信するサイズ取得・返信処理を実行する(ステップS42)。サイズ取得・返信処理の詳細については後述する。RAIDコントローラ10のブロックサイズ受信部102は、各メモリ装置20から返信されたブロックサイズを受信する。
メモリ装置20が複数接続されている場合、RAIDコントローラ10は、すべてのメモリ装置20に対して上記処理を繰り返し行い、各メモリ装置20からブロックサイズをそれぞれ取得する。同一のメモリ装置20が複数接続されている場合は、取得したすべてのブロックサイズは同じになるが、異なるメモリ装置20が接続されている場合は、取得したブロックサイズが異なる場合がある。
RAIDコントローラ10のサイズ決定部103は、受信したブロックサイズから適切なストライプサイズを決定する(ステップS43)。具体的には、すべてのメモリ装置20のブロックサイズの最小公倍数をストライプサイズに決定する。例えば、それぞれ1KB、2KB、4KBのブロックサイズの3つのメモリ装置20から構成される場合、サイズ決定部103は、ストライプサイズを4KBとする。
RAIDコントローラ10のストライプサイズ送信部104は、決定したストライプサイズをすべてのメモリ装置20へ通知する(ステップS44)。次に、メモリ装置20は、受け取ったストライプサイズに応じて処理モードを設定する処理モード設定処理を実行する(ステップS45)。処理モード設定処理の詳細については後述する。
処理モード設定処理の後、各メモリ装置20は、処理モード設定の完了をRAIDコントローラ10に送信する(ステップS46)。これ以降、RAIDコントローラ10は、決定したストライプサイズでメモリ装置20へアクセスする(ステップS47)。
次に、ステップS42のサイズ取得・返信処理の詳細について図8を用いて説明する。図8は、サイズ取得・返信処理の全体の流れを示すフローチャートである。
まず、メモリ装置20の要求受信部202aがRAIDコントローラ10からブロックサイズの取得要求を取得する(ステップS51)。次に、要求処理部202が、メモリ素子22に対するアクセスに用いるブロックサイズをサイズ記憶部201から取得する(ステップS52)。要求処理部202は、取得したブロックサイズが正常に取得できたか否かを判断する(ステップS53)。正常に取得できた場合は(ステップS53:YES)、応答送信部203が、取得したブロックサイズをRAIDコントローラ10に対して返答する(ステップS54)。
なお、サイズ記憶部201に複数のブロックサイズが保存されている場合は、要求処理部202は、例えばいずれかのブロックサイズを優先して、返答すべきブロックサイズとして決定する。また、要求処理部202が、複数のブロックサイズの最小公倍数を返答すべきブロックサイズとして決定するように構成してもよい。
ブロックサイズが正常に取得できなかった場合は(ステップS53:NO)、応答送信部203は、RAIDコントローラ10にエラーを返信する(ステップS55)。
次に、ステップS45の処理モード設定処理の詳細について図9を用いて説明する。図9は、処理モード設定処理の全体の流れを示すフローチャートである。
まず、メモリ装置20のストライプサイズ受信部202bが、RAIDコントローラ10からストライプサイズを受信する(ステップS61)。次に、判定部206aが、サイズ記憶部201からブロックサイズを取得してストライプサイズと比較することにより、バッファ処理を行わない高速処理モードに移行可能か否かを判断する(ステップS62)。具体的には、判定部206aは、受信したストライプサイズがブロックサイズと等しいか整数倍のときに、処理モードを高速処理モードに移行可能と判断する。
高速処理モードに移行可能である場合は(ステップS62:YES)、処理モード変更部206は、バッファ処理部205のバッファ処理を停止する高速処理モードに変更する(ステップS63)。高速処理モードに移行可能でない場合は(ステップS62:NO)、処理モード変更部206は処理モードを変更せずに、処理モード設定処理を終了する。
なお、同図の例では、処理モードが予め通常モードに設定されているものとしている。これに対し、処理モード変更部206が、判定結果に応じて、処理モードを通常モードまたは高速処理モードのいずれかに設定するように構成してもよい。
また、メモリ装置20で処理モードを判定して処理モードを設定・変更するのではなく、RAIDコントローラ10から処理モードを変更するための移行コマンド等を送信し、受信したコマンドに応じてメモリ装置20が処理モードを設定・変更するように構成してもよい。
図7で説明したように、ストライプサイズ決定処理の後、RAIDコントローラ10は、決定したストライプサイズでメモリ装置20へアクセス可能となる。以下に、RAIDコントローラ10によるメモリ装置20に対するデータ書き込み処理について説明する。
制御用プロセッサ11の書き込み処理部105は、図6に示すようなキャッシュ12を分割した複数のセグメントのうち、ホスト機器30から指定された書き込み先の論理アドレスに対応するセグメントにデータを書き込み、書き込みが完了したことをホスト機器30へ返す。
次に、データ書き込み処理を繰り返し行い、キャッシュ12に空き領域が無くなったときにキャッシュデータをメモリ装置20に追い出すキャッシュデータ追い出し処理について説明する。図10は、キャッシュデータ追い出し処理の全体の流れを示すフローチャートである。
まず、制御用プロセッサ11の書き込み処理部105は、図6に示すようなキャッシュ12を分割した複数のセグメントのうち、一つのセグメントに保存しているデータのサイズ(保存データサイズ)を取得する(ステップS91)。次に、書き込み処理部105は、取得した保存データサイズとストライプサイズとが等しいか否かを判断する(ステップS92)。等しい場合は(ステップS92:YES)、書き込み処理部105は、このセグメントのデータをメモリ装置20に書き出す(ステップS93)。
取得した保存データサイズとストライプサイズとが等しくない場合は(ステップS92:NO)、書き込み処理部105は、保存データサイズの大きい順になるようセグメントをソートして保存する(ステップS94)。例えば、書き込み処理部105は、セグメントを識別するセグメント番号を保存データサイズ順にソートし、図示しない記憶部等に保存する。
次に、書き込み処理部105は、例えばキャッシュ12を分割したときに定められるセグメント数を参照することにより、全セグメントの保存データサイズを確認したか否かを判断する(ステップS95)。全セグメントを確認していない場合は(ステップS95:NO)、書き込み処理部105は、他の未処理のセグメントの保存データサイズを確認して処理を繰り返す(ステップS91)。
全セグメントを確認した場合は(ステップS95:YES)、書き込み処理部105は、ソートして保存したセグメントの情報を参照し、保存データサイズの大きなセグメントから順にメモリ装置20に対してデータを書き出す(ステップS96)。
このような処理により、メモリ装置20の1ブロックに書き込まれる有効なデータが大きくなり、メモリ素子22の書換え効率を向上させることができる。また、保存データサイズの小さいセグメントの書き出しを遅らせることになるため、その間に別の書き込み要求により当該セグメントの保存データサイズが増加する可能性が高くなる。これにより、メモリ素子22の書換え効率をさらに向上させることが期待できる。
以上のように、本実施の形態にかかる記憶システムでは、記憶装置を制御する制御装置が、記憶装置を構成する不揮発性半導体記憶素子に対して最適なアクセス単位のサイズを記憶装置から取得し、制御装置が記憶装置にアクセスするときのアクセス単位のサイズを、取得したブロックサイズと等しいかn倍となるように決定する。
これにより、記憶装置のメモリ素子に対する書き込み/消去効率が向上し、記憶素子の寿命を伸ばすことができる。また、記憶装置内部でバッファ処理等によりデータをまとめ上げる処理が不要となるため、書き込み処理を高速化することが可能となる。
本実施の形態にかかる記憶装置(メモリ装置)のメモリ制御部、および、本実施の形態にかかる制御装置(RAIDコントローラ)の制御プロセッサで実行される上記機能は、プログラムとして提供してもよい。これらの各プログラムは、例えば、ROM(Read Only Memory)等に予め組み込まれて提供される。
また、各プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、各プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、各プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施の形態にかかる記憶装置で実行されるプログラムは、上述した各部(要求処理部、応答送信部、バッファ処理部、処理モード変更部、書き込み処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
また、本実施の形態にかかる制御装置で実行されるプログラムは、上述した各部(要求送信部、ブロックサイズ受信部、サイズ決定部、ストライプサイズ送信部、書き込み処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(制御用プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる記憶装置、制御装置、記憶システム、および記憶方法は、SSDを記憶装置として構成したRAIDシステム等に適している。
本実施の形態にかかる記憶システムの構成を示すブロック図である。 本実施の形態にかかるメモリ装置の構成を示すブロック図である。 メモリ制御部の詳細な構成を示すブロック図である。 本実施の形態にかかるRAIDコントローラの構成を示すブロック図である。 制御用プロセッサの機能構成を示すブロック図である。 セグメントに分割したキャッシュの一例を示す図である。 本実施の形態におけるストライプサイズ決定処理の全体の流れを示すシーケンス図である。 サイズ取得・返信処理の全体の流れを示すフローチャートである。 処理モード設定処理の全体の流れを示すフローチャートである。 キャッシュデータ追い出し処理の全体の流れを示すフローチャートである。
符号の説明
10 RAIDコントローラ
11 制御用プロセッサ
12 キャッシュ
20a〜20c メモリ装置
21 メモリ制御部
22a〜22c メモリ素子
30 ホスト機器
101 要求送信部
102 ブロックサイズ受信部
103 サイズ決定部
104 ストライプサイズ送信部
105 書き込み処理部
201 サイズ記憶部
202 要求処理部
202a 要求受信部
202b ストライプサイズ受信部
203 応答送信部
204 バッファ
205 バッファ処理部
206 処理モード変更部
206a 判定部
207 書き込み処理部

Claims (10)

  1. 制御装置によって制御される記憶装置であって、
    メモリ素子と、
    前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、
    前記ブロックサイズのデータを記憶可能なデータ記憶部と、
    前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、
    前記制御装置が前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを前記制御装置から受信するストライプサイズ受信部と、
    前記ストライプサイズが前記ブロックサイズのn倍(nは正の整数)であるか否かを判定する判定部と、を備え、
    前記バッファ処理部は、前記ストライプサイズが前記ブロックサイズのn倍である場合にバッファ処理を実行しないこと、
    を特徴とする記憶装置。
  2. 前記ブロックサイズの取得要求を前記制御装置から受信し、受信した前記取得要求に応じて前記ブロックサイズを前記サイズ記憶部から取得する要求処理部と、
    取得された前記ブロックサイズを前記制御装置に送信する送信部と、をさらに備え、
    前記ストライプサイズ受信部は、送信した前記ブロックサイズに応じて前記制御装置から送信された前記ストライプサイズを受信すること、
    を特徴とする請求項1に記載の記憶装置。
  3. 前記サイズ記憶部は、前記メモリ素子ごとに予め定められたデータ読み書き時のアクセス単位であるブロックのサイズを表す読み書きブロックサイズ、および、前記メモリ素子ごとに予め定められたデータ消去時のアクセス単位であるブロックのサイズを表す消去ブロックサイズの少なくとも一方を記憶し、
    前記要求処理部は、前記取得要求を受信したときに、前記読み書きブロックサイズおよび前記消去ブロックサイズのうちいずれかを前記サイズ記憶部から取得し、
    前記送信部は、取得された前記読み書きブロックサイズおよび前記消去ブロックサイズのうちいずれかを前記制御装置に送信すること、
    を特徴とする請求項2に記載の記憶装置。
  4. 前記サイズ記憶部は、前記メモリ素子ごとに予め定められたデータ読み書き時のアクセス単位であるブロックのサイズを表す読み書きブロックサイズ、および、前記メモリ素子ごとに予め定められたデータ消去時のアクセス単位であるブロックのサイズを表す消去ブロックサイズを記憶し、
    前記要求処理部は、前記取得要求を受信したときに、前記読み書きブロックサイズおよび前記消去ブロックサイズを前記サイズ記憶部から取得し、取得した前記読み書きブロックサイズおよび前記消去ブロックサイズの最小公倍数を求め、
    前記送信部は、求められた最小公倍数をブロックサイズとして前記制御装置に送信すること、
    を特徴とする請求項2に記載の記憶装置。
  5. アクセス単位であるブロックのサイズを表すブロックサイズが予め定められたメモリ素子を有する記憶装置を制御する制御装置であって、
    前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信部と、
    前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信部と、
    前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍に決定するサイズ決定部と、
    決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信部と、
    を備えたこと特徴とする制御装置。
  6. 前記要求送信部は、前記取得要求を複数の前記記憶装置に送信し、
    前記ブロックサイズ受信部は、複数の前記記憶装置のそれぞれから前記ブロックサイズを受信し、
    前記サイズ決定部は、複数の前記記憶装置から受信した複数の前記ブロックサイズの最小公倍数を求め、求めた最小公倍数を前記ストライプサイズとして決定すること、
    を特徴とする請求項5に記載の制御装置。
  7. 前記サイズ決定部は、複数の前記記憶装置から受信した複数の前記ブロックサイズのうち、最小公倍数が予め定められた閾値以下となるいずれか2つ以上の前記ブロックサイズの最小公倍数を求め、求めた最小公倍数を前記ストライプサイズとして決定すること、
    を特徴とする請求項6に記載の制御装置。
  8. 前記メモリ素子に書き込むデータを記憶可能な複数のデータ記憶部と、
    複数の前記データ記憶部に記憶されたデータのうち、サイズが大きいデータを優先して前記記憶装置に書き込む書き込み処理部と、をさらに備えたこと、
    を特徴とする請求項5に記載の制御装置。
  9. 記憶装置と、前記記憶装置を制御する制御装置とを備えた記憶システムであって、
    前記記憶装置は、
    メモリ素子と、
    前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、
    前記ブロックサイズのデータを記憶可能なデータ記憶部と、
    前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、
    前記ブロックサイズの取得要求を前記制御装置から受信する要求受信部と、
    前記取得要求を受信したときに、前記ブロックサイズを前記サイズ記憶部から取得し、取得した前記ブロックサイズを前記制御装置に送信する送信部と、
    前記制御装置が前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを前記制御装置から受信するストライプサイズ受信部と、
    前記ストライプサイズが前記ブロックサイズのn倍(nは正の整数)であるか否かを判定する判定部と、を備え、
    前記バッファ処理部は、前記ストライプサイズが前記ブロックサイズのn倍である場合にバッファ処理を実行せず、
    前記制御装置は、
    前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信部と、
    前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信部と、
    前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍に決定するサイズ決定部と、
    決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信部と、を備えたこと、
    を特徴とする記憶システム。
  10. 記憶装置と、前記記憶装置を制御する制御装置とを備えた記憶システムで実行される記憶方法であって、
    前記記憶装置は、
    メモリ素子と、
    前記メモリ素子ごとに予め定められたアクセス単位であるブロックのサイズを表すブロックサイズを記憶するサイズ記憶部と、
    前記ブロックサイズのデータを記憶可能なデータ記憶部と、
    前記制御装置から受信したデータを前記データ記憶部に保存し、前記データ記憶部に保存したデータを前記メモリ素子に書き込むバッファ処理を実行可能なバッファ処理部と、を備え、
    前記制御装置が、前記ブロックサイズの取得要求を前記記憶装置に送信する要求送信ステップと、
    前記記憶装置が、前記取得要求を前記制御装置から受信する要求受信ステップと、
    前記記憶装置が、前記取得要求を受信したときに、前記ブロックサイズを前記サイズ記憶部から取得し、取得した前記ブロックサイズを前記制御装置に送信する送信ステップと、
    前記制御装置が、前記取得要求に応じて前記記憶装置から送信された前記ブロックサイズを受信するブロックサイズ受信ステップと、
    前記制御装置が、前記メモリ素子にアクセスするときのアクセス単位のサイズを表すストライプサイズを、受信した前記ブロックサイズのn倍(nは正の整数)に決定するサイズ決定ステップと、
    前記制御装置が、決定した前記ストライプサイズを前記記憶装置に送信するストライプサイズ送信ステップと、
    前記記憶装置が、前記ストライプサイズを前記制御装置から受信するストライプサイズ受信ステップと、
    前記記憶装置が、前記ストライプサイズが前記ブロックサイズのn倍であるか否かを判定する判定ステップと、
    前記記憶装置が、前記ストライプサイズが前記ブロックサイズのn倍である場合に、前記バッファ処理部によるバッファ処理を実行せず、前記制御装置から受信したデータを前記メモリ素子に書き込む書き込み処理ステップと、
    を備えたことを特徴とする記憶方法。
JP2008171579A 2008-06-30 2008-06-30 記憶装置、制御装置、記憶システム、および記憶方法 Pending JP2010009548A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008171579A JP2010009548A (ja) 2008-06-30 2008-06-30 記憶装置、制御装置、記憶システム、および記憶方法
US12/396,006 US8065482B2 (en) 2008-06-30 2009-03-02 Storage system and method for striping data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008171579A JP2010009548A (ja) 2008-06-30 2008-06-30 記憶装置、制御装置、記憶システム、および記憶方法

Publications (1)

Publication Number Publication Date
JP2010009548A true JP2010009548A (ja) 2010-01-14

Family

ID=41448941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008171579A Pending JP2010009548A (ja) 2008-06-30 2008-06-30 記憶装置、制御装置、記憶システム、および記憶方法

Country Status (2)

Country Link
US (1) US8065482B2 (ja)
JP (1) JP2010009548A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012002428A1 (ja) * 2010-07-01 2012-01-05 日本電気株式会社 記憶装置、解放優先順位決定方法およびプログラム
JP2012252485A (ja) * 2011-06-02 2012-12-20 Nec Corp 記憶制御装置、及び、記憶制御方法
JP2013542541A (ja) * 2010-11-08 2013-11-21 グリーンライアント リミテッド ライアビリティ カンパニー データのブロックを不揮発性メモリデバイスに冗長方式で格納するためのメモリコントローラ及びメモリシステム
US10853321B2 (en) 2016-11-18 2020-12-01 Toshiba Memory Corporation Storage system

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4533968B2 (ja) 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
JP2013178696A (ja) * 2012-02-29 2013-09-09 Hitachi-Lg Data Storage Inc アーカイブシステムおよび処理方法
KR20150067583A (ko) * 2013-12-10 2015-06-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
JP6225731B2 (ja) * 2014-01-31 2017-11-08 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9830110B2 (en) * 2014-06-20 2017-11-28 Dell Products, Lp System and method to enable dynamic changes to virtual disk stripe element sizes on a storage controller
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10620983B2 (en) 2016-11-08 2020-04-14 International Business Machines Corporation Memory stripe with selectable size
US10235202B2 (en) 2016-11-08 2019-03-19 International Business Machines Corporation Thread interrupt offload re-prioritization
JP2020095548A (ja) * 2018-12-13 2020-06-18 株式会社日立製作所 不揮発性メモリドライブを備えたシステム
CN113608695A (zh) * 2021-07-29 2021-11-05 济南浪潮数据技术有限公司 一种数据处理方法、系统、设备以及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290681A (ja) * 2000-04-05 2001-10-19 Nec Corp ファイルデータ格納装置及び方法並びに記録媒体
JP2004326759A (ja) * 2003-04-26 2004-11-18 Internatl Business Mach Corp <Ibm> Raidストレージ・システム用にメモリを構成すること
JP2006018419A (ja) * 2004-06-30 2006-01-19 Matsushita Electric Ind Co Ltd 記憶装置
WO2007134277A2 (en) * 2006-05-15 2007-11-22 Apple Inc. Maintenance operations for multi-level data storage cells
JP2007323224A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd フラッシュメモリストレージシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
JP4413840B2 (ja) * 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4660353B2 (ja) * 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
EP1858227A1 (en) * 2006-05-16 2007-11-21 THOMSON Licensing Network storage device with separated control and storage data interfaces
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290681A (ja) * 2000-04-05 2001-10-19 Nec Corp ファイルデータ格納装置及び方法並びに記録媒体
JP2004326759A (ja) * 2003-04-26 2004-11-18 Internatl Business Mach Corp <Ibm> Raidストレージ・システム用にメモリを構成すること
JP2006018419A (ja) * 2004-06-30 2006-01-19 Matsushita Electric Ind Co Ltd 記憶装置
WO2007134277A2 (en) * 2006-05-15 2007-11-22 Apple Inc. Maintenance operations for multi-level data storage cells
JP2007323224A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd フラッシュメモリストレージシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012002428A1 (ja) * 2010-07-01 2012-01-05 日本電気株式会社 記憶装置、解放優先順位決定方法およびプログラム
JP5541361B2 (ja) * 2010-07-01 2014-07-09 日本電気株式会社 記憶装置、解放優先順位決定方法およびプログラム
JP2013542541A (ja) * 2010-11-08 2013-11-21 グリーンライアント リミテッド ライアビリティ カンパニー データのブロックを不揮発性メモリデバイスに冗長方式で格納するためのメモリコントローラ及びメモリシステム
JP2012252485A (ja) * 2011-06-02 2012-12-20 Nec Corp 記憶制御装置、及び、記憶制御方法
US10853321B2 (en) 2016-11-18 2020-12-01 Toshiba Memory Corporation Storage system

Also Published As

Publication number Publication date
US20090327604A1 (en) 2009-12-31
US8065482B2 (en) 2011-11-22

Similar Documents

Publication Publication Date Title
JP2010009548A (ja) 記憶装置、制御装置、記憶システム、および記憶方法
US11854612B1 (en) Lifetime mixed level non-volatile memory system
US11704210B2 (en) Custom error recovery in selected regions of a data storage device
KR100923990B1 (ko) 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
JP5823875B2 (ja) 固体メモリフォーマッティング
US8738987B2 (en) Memory controller and memory management method
KR102413755B1 (ko) 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법
JP2008102900A (ja) メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
US8819350B2 (en) Memory system
US11360903B2 (en) Data placement in write cache architecture supporting read heat data separation
US10346051B2 (en) Storage media performance management
US11797221B2 (en) Method of operating storage device for improving QoS latency and storage device performing the same
US9123443B2 (en) Memory device, memory management device, and memory management method
US9886399B2 (en) Storage control device, storage device, information processing system, and storage control method therefor
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
JP5594647B2 (ja) ストレージ装置及びその制御方法
US11709781B2 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
KR20100106109A (ko) 플래시 메모리장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131126