JP2013131192A - ストレージ装置及びストレージ装置の制御方法 - Google Patents

ストレージ装置及びストレージ装置の制御方法 Download PDF

Info

Publication number
JP2013131192A
JP2013131192A JP2011282334A JP2011282334A JP2013131192A JP 2013131192 A JP2013131192 A JP 2013131192A JP 2011282334 A JP2011282334 A JP 2011282334A JP 2011282334 A JP2011282334 A JP 2011282334A JP 2013131192 A JP2013131192 A JP 2013131192A
Authority
JP
Japan
Prior art keywords
data
memory
stripe
parity
nand flash
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
JP2011282334A
Other languages
English (en)
Inventor
Yoko Kono
陽子 河野
Mitsumasa Haneda
光正 羽根田
Atsushi Uchida
淳 内田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011282334A priority Critical patent/JP2013131192A/ja
Priority to US13/645,581 priority patent/US9063880B2/en
Publication of JP2013131192A publication Critical patent/JP2013131192A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】パリティデータを書き込んでもライト性能を低下させないこと。
【解決手段】ライト用DMA200は、書込部220と読出部230とパリティ生成部240とを有する。読出部230は、パリティデータを記憶する2つのNANDフラッシュ20d、20eの一方からパリティデータを読出す。パリティ生成部240は、読出されたパリティデータと、ユーザデータを分割して得られる複数のストライプとからパリティデータを生成する。書込部220は、ストライプを記憶する複数のNANDフラッシュ20a〜20cのいずれかにストライプを書込むとともに、パリティデータを読出していないNANDフラッシュ20d、20eに生成されたパリティデータを書込む。
【選択図】図2

Description

本発明は、ストレージ装置及びストレージ装置の制御方法に関する。
NANDフラッシュは、電力の供給を受けずにデータを保存する半導体の記憶装置である。このため、NANDフラッシュは、ストレージ装置において、例えば停電時に、キャッシュメモリ内のデータのバックアップに用いられる。
また、ストレージ装置では、データをバックアップする場合、バックアップしたデータにパリティデータを付加することで、データにエラーが生じた場合、データの復元を可能にする。図8を用いて、NANDフラッシュへのデータバックアップを説明する。
図8は、従来技術に係るNANDフラッシュ制御装置の一例を示す図である。図8に示すように、NANDフラッシュ制御装置800は、RAID(Redundant Arrays of Inexpensive Disks)を構成するNANDフラッシュ910〜940それぞれと接続する。また、各NANDフラッシュ910〜940は、バッファとアレイとを有する。ここで、NANDフラッシュ910〜930は、ユーザデータを記憶する。また、NANDフラッシュ940は、パリティデータを記憶する。
また、図8に示す例では、NANDフラッシュ制御装置800が有するDMA(Direct Memory Access)のうちライト用DMA810のみを図示している。このライト用DMA810は、書込部811、パリティ生成部812、パリティ計算用RAM(Random Access Memory)813を有する。
次に、図9を用いて、このようなNANDフラッシュ制御装置800において、ユーザデータを3つのストライプに分割してNANDフラッシュ910〜930に書込み、パリティデータをNANDフラッシュ940に書込む場合を例に説明する。図9は、NANDフラッシュ制御装置によりデータの書込み動作を示すシーケンス図である。
NANDフラッシュ制御装置800では、書込部811とパリティ生成部812とに1番目のストライプが入力される。書込部811は、1番目のストライプをNANDフラッシュ910のバッファ911に書込む(ステップS901)と同時に、パリティ生成部812は、パリティ計算用RAM813に1番目のストライプを書込む。続いて、NANDフラッシュ910では、バッファ911に書込まれたストライプがアレイ912に書込まれる(ステップS902)。
また、NANDフラッシュ制御装置800では、書込部811とパリティ生成部812とに2番目のストライプが入力される。書込部811は、2番目のストライプをNANDフラッシュ920のバッファ921に書込む(ステップS903)と同時に、パリティ生成部812が以下の処理を実行する。すなわち、パリティ生成部812は、パリティ計算用RAM813から1番目のストライプを読み出して2番目のストライプとの排他的論理和からパリティデータを算出し、パリティ計算用RAM813に書込む。続いて、NANDフラッシュ920では、バッファ921に書込まれたストライプがアレイ922に書込まれる(ステップS904)。
続いて、NANDフラッシュ制御装置800では、書込部811とパリティ生成部812とに3番目のストライプが入力される。書込部811は、3番目のストライプをNANDフラッシュ930のバッファ931に書込む(ステップS905)と同時に、パリティ生成部812が以下の処理を実行する。すなわち、パリティ生成部812は、パリティ計算用RAM813からパリティデータを読み出して3番目のストライプとの排他的論理和からパリティデータを算出し、パリティ計算用RAM813に書込む。続いて、NANDフラッシュ930では、バッファ931に書込まれたストライプがアレイ932に書込まれる(ステップS906)。
3つのストライプを各NANDフラッシュのアレイに書込み終了後、書込部811は、パリティ計算用RAM813からパリティデータを読み出して、パリティデータをNANDフラッシュ940のバッファ941に書込む(ステップS907)。そして、NANDフラッシュ940では、バッファ941に書込まれたパリティデータがアレイ942に書込まれる(ステップS908)。
このようにして、ストレージ装置では、停電時に、キャッシュメモリ内のデータをNAND型フラッシュに退避させてバックアップする。また、このような停電処理を実施している途中に復電した場合には、無駄な停電処理や復電処理を省くことに関する技術も知られている。
国際公開第2009/098776号 特開2005−182983号公報
しかしながら、上述した従来の技術では、パリティデータを書き込むことによりライト性能が低下するという課題がある。
図9に示す例では、NANDフラッシュ制御装置800は、3番目のストライプをNANDフラッシュ930のアレイ932に書込んだ後に、パリティデータをNANDフラッシュ940に書込むことになる。このため、パリティデータの書込みに要する時間分、ユーザデータの書込み終了時間が遅延する。
1つの側面では、パリティデータを書き込んでもライト性能が低下することを抑制することができるストレージ装置及びストレージ装置の制御方法を提供することを目的とする。
第1の案では、ストレージ装置は、パリティデータを記憶する第1のメモリ及び第2のメモリからパリティデータを読出す。そして、ストレージ装置は、読出したパリティデータと、部分データとからパリティデータを生成する。また、ストレージ装置は、第1メモリ群に含まれ、データを分割して得られる複数の部分データをそれぞれ記憶する複数のメモリに部分データを書込むとともに、以下の処理を実行する。すなわち、ストレージ装置は、第1のメモリからパリティデータを読出した場合には、第2のメモリに、第2のメモリからパリティデータを読出した場合には、第1のメモリに、生成されたパリティデータを書込む。
パリティデータを書き込んでもライト性能が低下することを抑制することができる。
図1は、実施例1に係るストレージ装置の構成を示すブロック図である。 図2は、実施例1に係るライト用DMAの構成を示すブロック図である。 図3は、実施例1に係るライト用DMAによるデータの書込み動作を示すシーケンス図である。 図4は、実施例1に係るライト用DMAによるデータの書込み処理の処理手順を示すフローチャートである。 図5は、実施例2に係るライト用DMAの構成を示すブロック図である。 図6は、実施例2に係るライト用DMAによるデータの書込み動作を示すシーケンス図である。 図7は、実施例2に係るライト用DMAによるデータの書込み処理の処理手順を示すフローチャートである。 図8は、従来技術に係るNANDフラッシュ制御装置の一例を示す図である。 図9は、NANDフラッシュ制御装置によるデータの書込み動作を示すシーケンス図である。
以下に、本願の開示するストレージ装置及びストレージ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[実施例1に係るストレージ装置の構成]
図1は、実施例1に係るストレージ装置の構成を示すブロック図である。図1に示すように、ストレージ装置1は、電源供給ユニット2、HDD(Hard Disk Drive)3a〜3c、CM(Controller Module)10を有する。
電源供給ユニット2は、通常時、CM10に電力を供給する。HDD3a〜3cは、RAID(Redundant Arrays of Independent(Inexpensive)Disks)を構成し、ユーザデータやプログラムを記憶する。なお、ここでいう、通常時とは、ストレージ装置1に電源が投入された後、停電が発生せずに運転している状態を指す。
CM10は、ストレージ装置1と接続する図示しないサーバなどの情報処理装置によるHDD3a〜3cへのデータの入出力を制御する。例えば、CM10は、キャッシュメモリ11と、RoC(RAID-on-Chip)12と、Exp(Expander)13と、停電時給電ユニット14と、NANDフラッシュ20と、FPGA(Field Programmable Gate Array)100とを有する。
キャッシュメモリ11は、例えば、DIMM(Dual Inline Memory Module)やDDR SDRAM(Double Date Rate Synchronous DRAM)などの揮発性メモリであり、HDD3a〜3cに書き込むユーザデータを一時的に記憶する。
RoC(RAID−on―Chip)12は、CPU(Central Processing Unit)とメモリコントローラとを有し、CM10を全体制御する。例えば、RoC12は、キャッシュメモリ11のバックアップ処理や、図示しないサーバなどの情報処理装置とのインターフェース制御や、キャッシュメモリ11の管理を実行する。
Exp13は、RoC12とHDD3a〜3cとの間で送受信されるユーザデータを中継する。停電時給電ユニット14は、停電発生時にRoC12、キャッシュメモリ11、
FPGA100、NANDフラッシュ20へ電力を供給する。
NANDフラッシュ20は、不揮発性の半導体記憶装置であり、ストレージ装置1に停電が発生した場合、キャッシュメモリ11が記憶するデータを退避させるためのバックアップ用の記憶装置として機能する。なお、NANDフラッシュ20には、ユーザデータを分割して得られる複数のストライプをそれぞれ記憶する複数のストライプ用NANDフラッシュと、パリティデータを記憶する2つのパリティ用NANDフラッシュとが含まれる。
FPGA100は、CPUを介さずにキャッシュメモリ11とNANDフラッシュ20とのデータ転送を制御するライト用DMA(Direct Memory Access)やリード用DMAを有する。なお、図1に示す例では、FPGA100が有するDMAのうち、ライト用DMA200のみを図示している。また、ライト用DMA200の詳細な構成については後述する。
このようなストレージ装置1において、FPGA100は、停電時において、キャッシュメモリ11からNANDフラッシュ20へデータを退避させる。例えば、FPGA100では、ライト用DMA200は、キャッシュメモリ11からユーザデータを読出し、ユーザデータを所定の単位に分割したストライプを生成する。そして、ライト用DMA200は、ストライプを複数のストライプ用NANDフラッシュのいずれかと、2つのパリティ用NANDフラッシュのいずれか一方とに書込む。
また、ライト用DMA200は、パリティ用NANDフラッシュの一方からパリティデータを読出す。そして、ライト用DMA200は、読出したパリティデータと、ストライプとからパリティデータを生成する。続いて、ライト用DMA200は、ストライプをストライプ用NANDフラッシュに書込むとともに、生成されたパリティデータをパリティ用NANDフラッシュの他方に書込む。すなわち、ライト用DMA200は、パリティデータを読出したNANDフラッシュとは異なるパリティ用NANDフラッシュに、パリティデータを書込む。この結果、ライト用DMA200は、パリティデータを書き込んでもライト性能を低下させない。
[実施例1に係るライト用DMAの構成]
図2は、実施例1に係るライト用DMAの構成を示すブロック図である。図2に示すように、ライト用DMA200は、転送部210、書込部220、読出部230、パリティ生成部240を有する。また、ライト用DMA200は、NANDフラッシュ20a〜20eと接続する。ここで、NANDフラッシュ20a〜20cをストライプ用NANDフラッシュとし、NANDフラッシュ20d、20eをパリティ用NANDフラッシュとして説明する。また、各NANDフラッシュ20a〜20eは、バッファ21a〜21eとアレイ22a〜22eとを有する。
転送部210は、キャッシュメモリ11からユーザデータを所定の単位に分割したストライプとして読出し、書込部220とパリティ生成部240とにストライプを転送する。また、転送部210は、読出したストライプがユーザデータの最後のストライプである場合、転送するストライプが最後のストライプである旨を書込部220に通知する。
書込部220は、転送部210から転送されたユーザデータを指定されたNANDフラッシュ20a〜20cの各バッファに書込む。ここで、書込部220は、ユーザデータを所定の単位に分割したストライプ毎に各NANDフラッシュへ書込みを実行する。
例えば、書込部220は、ユーザデータの1番目のストライプをNANDフラッシュ20aのバッファ21aに書込む。続いて、書込部220は、2番目のストライプをNANDフラッシュ20bのバッファ21bに書込み、3番目のストライプをNANDフラッシュ20cのバッファ21cに書込む。なお、書込部220は、4番目以降のストライプについては、1番目のストライプから3番目のストライプのNANDフラッシュのバッファへの書込みと同様の処理を繰り返し実行する。
また、書込部220は、選択回路221を有しており、1番目のストライプを選択回路221に入力する。これにより、書込部220は、ユーザデータの1番目のストライプをNANDフラッシュ20aのバッファ21aに書込むと同時に、NANDフラッシュ20dのバッファ21dに1番目のストライプを書込む。なお、パリティ用NANDフラッシュに書込まれた1番目のストライプは、パリティデータとして扱うものとして説明する。
また、書込部220は、ストライプを指定されたNANDフラッシュ20a〜20cの各バッファに書込むと同時に、パリティ生成部240により生成されたパリティデータをNANDフラッシュ20d、20eの各バッファに交互に書込む。
例えば、書込部220は、2番目のストライプをNANDフラッシュ20bのバッファ21bに書込むと同時に、NANDフラッシュ20eのバッファ21eにパリティデータを書込む。そして、書込部220は、3番目のストライプをNANDフラッシュ20cのバッファ21cに書込むと同時に、NANDフラッシュ20dのバッファ21dにパリティデータを書込む。
また、書込部220は、ストライプをストライプ用NANDフラッシュのバッファに書込んだ後、ストライプ用NANDフラッシュのバッファからアレイに書込む。そして、書込部220は、最後のストライプをストライプ用NANDフラッシュのバッファからアレイに書込むと同時に、パリティ用NANDフラッシュのバッファからアレイにパリティデータを書込む。
読出部230は、選択回路231を有し、NANDフラッシュ20d、20eの各バッファが記憶するパリティデータを交互に読出して、パリティ生成部240に出力する。
例えば、読出部230は、2番目のストライプがパリティ生成部240に入力されるタイミングで、NANDフラッシュ20dから1番目のストライプを読出し、パリティ生成部240に出力する。また、読出部230は、3番目のストライプがパリティ生成部240に入力されるタイミングで、NANDフラッシュ20eからパリティデータを読出し、パリティ生成部240に出力する。なお、1番目のストライプがパリティ生成部240に入力されるタイミングにおいて、NANDフラッシュ20d、20eの各バッファには、データが記憶されていないものとする。
パリティ生成部240は、XOR回路241を有し、読出部230から出力されたパリティデータと転送部210から転送されたストライプとを受付け、パリティデータとストライプとの排他的論理和を算出してパリティデータを生成する。そして、パリティ生成部240は、生成したパリティデータを書込部220に出力する。
[実施例1に係るライト用DMAによる処理動作]
次に図3を用いて、実施例1に係るライト用DMA200によるデータの書込み動作を説明する。図3は、実施例1に係るライト用DMAによるデータの書込み動作を示すシーケンス図である。なお、ここでは、ライト用DMA200が、3つのストライプをNANDフラッシュに書込む場合を例に説明する。また、ここでは、3番目のストライプが最後のストライプである。
図3に示すように、ライト用DMA200は、1番目のストライプをNANDフラッシュ20aが有するバッファ21aに書込む(ステップS101)。このステップS101の処理と同時に、ライト用DMA200は、1番目のストライプをNANDフラッシュ20dが有するバッファ21dに書込む(ステップS102)。続いて、NANDフラッシュ20aでは、バッファ21aに書込まれたストライプがアレイ22aに書込まれる(ステップS103)。
また、ライト用DMA200は、2番目のストライプをNANDフラッシュ20bが有するバッファ21bに書込む(ステップS104)。このステップS104の処理と同時に、ライト用DMA200は、バッファ21dから1番目のストライプを読み出して2番目のストライプとの排他的論理和からパリティデータ算出し、バッファ21eに書込む(ステップS105)。続いて、NANDフラッシュ20bでは、バッファ21bに書込まれたストライプがアレイ22bに書込まれる(ステップS106)。
そして、ライト用DMA200は、3番目のストライプをNANDフラッシュ20cが有するバッファ21cに書込む(ステップS107)。このステップS107の処理と同時に、ライト用DMA200は、バッファ21eからパリティデータを読み出して3番目のストライプとの排他的論理和からパリティデータ算出し、バッファ21dに書込む(ステップS108)。続いて、NANDフラッシュ20cでは、バッファ21cに書込まれたストライプがアレイ22cに書込まれると同時に、NANDフラッシュ20dでは、バッファ21dに書込まれたストライプがアレイ22dに書込まれる(ステップS109)。
[実施例1に係るライト用DMAによる処理の処理手順]
次に図4を用いて、実施例1に係るライト用DMAによる処理の処理手順を説明する。図4は、実施例1に係るライト用DMAによるデータの書込み処理の処理手順を示すフローチャートである。なお、ここでは、ライト用DMA200が、3つのストライプをNANDフラッシュに書込む場合を例に説明する。また、ここでは、3番目のストライプが最後のストライプである。
図4に示すように、書込部220は、1番目のストライプをNANDフラッシュ20aが有するバッファ21aに書込む(ステップS201)。このステップS201の処理と同時に、書込部220は、1番目のストライプをNANDフラッシュ20dが有するバッファ21dに書込む(ステップS202)。続いて、NANDフラッシュ20aでは、バッファ21aに書込まれたストライプがアレイ22aに書込まれる(ステップS203)。
また、書込部220は、2番目のストライプをNANDフラッシュ20bが有するバッファ21bに書込む(ステップS204)。また、読出部230は、バッファ21dから1番目のストライプを読み出す(ステップS205)。そして、パリティ生成部240は、読出部230により読み出されたストライプと、2番目のストライプとの排他的論理和からパリティデータ算出する(ステップS206)。また、書込部220は、パリティデータをバッファ21eに書込む(ステップS207)。このステップS205からステップS207の処理は、ステップS204の処理と同時に実行される。続いて、NANDフラッシュ20bでは、バッファ21bに書込まれたストライプがアレイ22bに書込まれる(ステップS208)。
そして、書込部220は、3番目のストライプをNANDフラッシュ20cが有するバッファ21cに書込む(ステップS209)。また、読出部230は、バッファ21eからパリティデータを読み出す(ステップS210)。そして、パリティ生成部240は、読出部230により読み出されたパリティデータと、3番目のストライプとの排他的論理和からパリティデータ算出する(ステップS211)。また、書込部220は、パリティデータをバッファ21dに書込む(ステップS212)。このステップS210からステップS212の処理は、ステップS209の処理と同時に実行される。
続いて、NANDフラッシュ20cでは、バッファ21cに書込まれたストライプがアレイ22cに書込まれる(ステップS213)。また、このステップS213の処理と同時に、NANDフラッシュ20dでは、バッファ21dに書込まれたストライプがアレイ22dに書込まれる(ステップS214)。
[実施例1に係るストレージ装置による効果]
実施例1に係るストレージ装置1は、パリティ用NANDフラッシュを2つ有し、このパリティ用NANDフラッシュのバッファに交互にパリティデータを書込む。これにより、実施例1に係るストレージ装置1は、最後のストライプをNANDフラッシュのアレイへ書込むタイミングと同時にパリティデータをNANDフラッシュのアレイへ書込む。この結果、実施例1に係るストレージ装置1では、パリティデータを書き込んでもライト性能を低下させない。
また、従来の技術では、パリティデータの計算にライト用DMA内のRAMを使用する。このRAMは、書込み単位分のパリティデータの途中計算値を保持することになる。このため、書込み単位が増加すると、ライト用DMA内のRAMのサイズも増加することになり、リソースを圧迫していた。また、NANDフラッシュの書込み単位が変更された場合、ライト用DMAを修正することになる。
一方、実施例1に係るストレージ装置1は、2つのNANDフラッシュを交互に使用し、パリティデータを計算する。これにより、実施例1に係るストレージ装置1は、ライト用DMA内にパリティ計算用RAMを設けなくてもよい。この結果、実施例1に係るストレージ装置1は、NANDフラッシュの書込み単位が変更されても、ライト用DMAの修正を必要としない。
実施例1に係るストレージ装置1は、パリティ用NANDフラッシュを2つ有し、このパリティ用NANDフラッシュのバッファにパリティデータを交互に書込む。そして、最後のストライプをNANDフラッシュのアレイへ書込むタイミングと同時にパリティデータを一方のNANDフラッシュのアレイへ書込む。このような場合、一方のNANDフラッシュのアレイには、パリティデータが記憶されるが、他方のNANDフラッシュのアレイには、パリティデータが記憶されない。このため、実施例1に係るストレージ装置1は、パリティ用NANDフラッシュのアレイを有効に活用できていない。このため、パリティ用NANDフラッシュを有効に活用してもよいものである。
そこで、実施例2では、グループ1とグループ2とからなる2つのユーザデータを連続してストライプ用NANDフラッシュに書込む際に、2つのパリティ用NANDフラッシュのアレイにパリティデータを交互に書込む場合を例に説明する。また、ここでは、グループ1のユーザデータには偶数個のストライプが含まれ、グループ2のユーザデータには、奇数個のストライプが含まれるものとする。
[実施例2に係るストレージ装置の構成]
次に、実施例2に係るストレージ装置の構成を説明する。実施例2に係るストレージ装置の構成は、図1に示すストレージ装置のライト用DMAが有する機能が異なる点を除いて、実施例1に係るストレージ装置の構成と同様である。このため、以下では、実施例1とは異なるライト用DMAについてのみ説明する。なお、実施例2に係るストレージ装置では、NANDフラッシュの数が変更されるが、この点についても併せて説明する。
[実施例2に係るライト用DMAの構成]
次に、図5を用いて、実施例2に係るライト用DMAの構成を説明する。図5は、実施例2に係るライト用DMAの構成を示すブロック図である。図5に示すように、実施例2に係るライト用DMAは、転送部310、書込部320、読出部330、パリティ生成部340を有する。
また、ライト用DMA300は、NANDフラッシュ30a〜30gと接続する。ここで、NANDフラッシュ30a〜30eをストライプ用NANDフラッシュとし、NANDフラッシュ30f、30gをパリティ用NANDフラッシュとして説明する。また、各NANDフラッシュ30a〜30gは、バッファとアレイとを有する。
また、実施例2では、NANDフラッシュ30a、30bをグループ1用のNANDフラッシュとして用いるものとし、NANDフラッシュ30c〜30eをグループ2用のNANDフラッシュとして用いるものとする。また、グループ1のユーザデータの書込みに続いて、グループ2のユーザデータを書込むものとするが、この書込み順序に限定されるものではない。例えば、グループ2のユーザデータの書込みに続いて、グループ1のユーザデータを書込んでもよい。
転送部310は、キャッシュメモリ11からユーザデータを所定の単位に分割したストライプとして読出し、書込部320とパリティ生成部340とにストライプを転送する。ここで、転送部310は、例えば、ユーザデータを偶数個のストライプが含まれるグループ1のユーザデータと、奇数個のストライプが含まれるグループ2のユーザデータとに分割して転送するものとする。
また、転送部310は、読出したストライプがグループ1のユーザデータである場合、転送するストライプがグループ1のストライプである旨を書込部320に通知する。また、転送部310は、読出したストライプがグループ2のユーザデータである場合、転送するストライプがグループ2のストライプである旨を書込部320に通知する。また、転送部310は、読出したストライプが各グループの最後のストライプである場合、転送するストライプが最後のストライプである旨を書込部320に通知する。
書込部320は、転送部310から転送されたユーザデータを指定されたNANDフラッシュ30a〜30eの各バッファに書込む。例えば、書込部320は、グループ1のストライプをNANDフラッシュ30a、30bに書き込み、グループ2のストライプをNANDフラッシュ30c〜30eに書き込む。
一例を示すと、書込部320は、グループ1の1番目のストライプをNANDフラッシュ30aに書込む。続いて、書込部320は、グループ1の2番目のストライプをNANDフラッシュ30bに書込む。なお、書込部320は、グループ1の3番目以降のストライプについては、グループ1の1番目のストライプからグループ1の2番目のストライプのNANDフラッシュへの書込みと同様の処理を繰り返し実行する。
また、書込部320は、グループ2の1番目のストライプをNANDフラッシュ30cに書込む。そして、書込部320は、グループ2の2番目のストライプをNANDフラッシュ30dに書込む。続いて、書込部320は、グループ2の3番目のストライプをNANDフラッシュ30eに書込む。なお、書込部320は、グループ2の4番目以降のストライプについては、グループ2の1番目のストライプからグループ2の3番目のストライプのNANDフラッシュへの書込みと同様の処理を繰り返し実行する。
例えば、書込部320は、選択回路321、322を有しており、グループ1の1番目のストライプを選択回路321に入力する。これにより、書込部320は、グループ1の1番目のストライプをNANDフラッシュ30aに書込むと同時に、NANDフラッシュ30fにグループ1の1番目のストライプを書込む。
また、書込部320は、ユーザデータを指定されたNANDフラッシュ30a〜30b、または30c〜30eの各バッファに書込むと同時に、パリティ生成部340により生成されたパリティデータをNANDフラッシュ30f、30gの各バッファに交互に書込む。
また、書込部320は、パリティ生成部340により出力されたパリティデータを選択回路321と322とに交互に入力する。これにより、書込部320は、グループ1の2番目のストライプをNANDフラッシュ30bに書込むと同時に、NANDフラッシュ30gにパリティデータを書込む。
続いて、書込部320は、グループ2の1番目のストライプを選択回路322に入力する。これにより、書込部320は、グループ2の1番目のストライプをNANDフラッシュ30cに書込むと同時に、NANDフラッシュ30gにグループ1の1番目のストライプを書込む。
また、書込部320は、パリティ生成部340により出力されたパリティデータを選択回路321と322とに交互に入力する。これにより、書込部320は、グループ2の2番目のストライプをNANDフラッシュ30dに書込むと同時に、NANDフラッシュ30fにパリティデータを書込む。そして、書込部320は、グループ2の3番目のストライプをNANDフラッシュ30eに書込むと同時に、NANDフラッシュ30gにパリティデータを書込む。
また、書込部320は、ストライプをストライプ用NANDフラッシュのバッファに書込んだ後、ストライプ用NANDフラッシュのバッファからアレイに書込む。そして、書込部320は、各グループの最後のストライプをストライプ用NANDフラッシュのバッファからアレイに書込むと同時に、パリティ用NANDフラッシュのバッファからアレイにパリティデータを書込む。
読出部330の機能は、実施例1に係る読出部230の機能と同様である。また、パリティ生成部340の機能は、実施例1に係るパリティ生成部240の機能と同様である。
[実施例2に係るライト用DMAによる処理動作]
次に図6を用いて、実施例2に係るライト用DMAによるデータの書込み動作を説明する。図6は、実施例2に係るライト用DMAによるデータの書込み動作を示すシーケンス図である。なお、ここでは、ライト用DMA300が、2つのストライプを含むグループ1と3つのストライプを含むグループ2の順でNANDフラッシュに書込む場合を例に説明する。また、ここでは、グループ1の2番目のストライプとグループ2の3番目のストライプとが最後のストライプである。
図6に示すように、ライト用DMA300は、グループ1の1番目のストライプをNANDフラッシュ30aが有するバッファ31aに書込む(ステップS301)。このステップS301の処理と同時に、ライト用DMA300は、グループ1の1番目のストライプをNANDフラッシュ30fが有するバッファ31fに書込む(ステップS302)。続いて、NANDフラッシュ30aでは、バッファ31aに書込まれたストライプがアレイ32aに書込まれる(ステップS303)。
また、ライト用DMA300は、グループ1の2番目のストライプをNANDフラッシュ30bが有するバッファ31bに書込む(ステップS304)。このステップS104の処理と同時に、ライト用DMA300は、バッファ31fからグループ1の1番目のストライプを読み出してグループ1の2番目のストライプとの排他的論理和からパリティデータ算出し、バッファ31gに書込む(ステップS305)。
続いて、NANDフラッシュ30bでは、バッファ31bに書込まれたストライプがアレイ32bに書込まれる(ステップS306)。このステップS306の処理と同時に、NANDフラッシュ30gでは、バッファ31gに書込まれたストライプがアレイ32gに書込まれる(ステップS307)。
そして、ライト用DMA300は、グループ2の1番目のストライプをNANDフラッシュ30cが有するバッファ31cに書込む(ステップS308)。このステップS308の処理と同時に、ライト用DMA300は、グループ2の1番目のストライプをNANDフラッシュ30fが有するバッファ31fに書込む(ステップS309)。続いて、NANDフラッシュ30cでは、バッファ31cに書込まれたストライプがアレイ32cに書込まれる(ステップS310)。
また、ライト用DMA300は、グループ2の2番目のストライプをNANDフラッシュ30dが有するバッファ31dに書込む(ステップS311)。このステップS311の処理と同時に、ライト用DMA300は、バッファ31fからグループ2の1番目のストライプを読み出してグループ2の2番目のストライプとの排他的論理和からパリティデータ算出し、バッファ31gに書込む(ステップS312)。続いて、NANDフラッシュ30dでは、バッファ31dに書込まれたストライプがアレイ32dに書込まれる(ステップS313)。
そして、ライト用DMA300は、グループ2の3番目のストライプをNANDフラッシュ30eが有するバッファ31eに書込む(ステップS314)。このステップS314の処理と同時に、ライト用DMA300は、バッファ31gからパリティデータを読み出してグループ2の3番目のストライプとの排他的論理和からパリティデータ算出し、バッファ31fに書込む(ステップS315)。続いて、NANDフラッシュ30eでは、バッファ31eに書込まれたストライプがアレイ32eに書込まれる(ステップS316)。このステップS316の処理と同時に、NANDフラッシュ30fでは、バッファ31fに書込まれたストライプがアレイ32fに書込まれる(ステップS317)。
[実施例2に係るライト用DMAによる処理の処理手順]
次に図7を用いて、実施例2に係るライト用DMAによる処理の処理手順を説明する。図7は、実施例2に係るライト用DMAによるデータの書込み処理の処理手順を示すフローチャートである。なお、ここでは、ライト用DMA300が、2つのストライプを含むグループ1と3つのストライプを含むグループ2の順でNANDフラッシュに書込む場合を例に説明する。また、ここでは、グループ1の2番目のストライプとグループ2の3番目のストライプとが最後のストライプである。
図7に示すように、書込部320は、グループ1の1番目のストライプをNANDフラッシュ30aが有するバッファ31aに書込む(ステップS401)。このステップS401の処理と同時に、書込部320は、グループ1の1番目のストライプをNANDフラッシュ30fが有するバッファ31fに書込む(ステップS402)。続いて、NANDフラッシュ30aでは、バッファ31aに書込まれたストライプがアレイ32aに書込まれる(ステップS403)。
そして、書込部320は、グループ1の2番目のストライプをNANDフラッシュ30bが有するバッファ31bに書込む(ステップS404)。また、読出部330は、バッファ31fからグループ1の1番目のストライプを読み出す(ステップS405)。そして、パリティ生成部340は、読出部330により読み出されたグループ1の1番目のストライプと、グループ1の2番目のストライプとの排他的論理和からパリティデータを算出する(ステップS406)。また、書込部320は、パリティデータをバッファ31gに書込む(ステップS407)。このステップS405からステップS407の処理は、ステップS404の処理と同時に実行される。
続いて、NANDフラッシュ30bでは、バッファ31bに書込まれたストライプがアレイ32bに書込まれる(ステップS408)。また、このステップS408の処理と同時に、NANDフラッシュ30gでは、バッファ31gに書込まれたストライプがアレイ32gに書込まれる(ステップS409)。
そして、書込部320は、グループ2の1番目のストライプをNANDフラッシュ30cが有するバッファ31cに書込む(ステップS410)。このステップS410の処理と同時に、書込部320は、グループ2の1番目のストライプをNANDフラッシュ30fが有するバッファ31fに書込む(ステップS411)。続いて、NANDフラッシュ30cでは、バッファ31cに書込まれたストライプがアレイ32cに書込まれる(ステップS412)。
また、書込部320は、グループ2の2番目のストライプをNANDフラッシュ30dが有するバッファ31dに書込む(ステップS413)。また、読出部330は、バッファ31fからグループ2の1番目のストライプを読み出す(ステップS414)。そして、パリティ生成部340は、読出部330により読み出されたグループ2の1番目のストライプと、グループ2の2番目のストライプとの排他的論理和からパリティデータ算出する(ステップS415)。また、書込部320は、パリティデータをバッファ31gに書込む(ステップS416)。このステップS414からステップS416の処理は、ステップS413の処理と同時に実行される。続いて、NANDフラッシュ30dでは、バッファ31dに書込まれたストライプがアレイ32dに書込まれる(ステップS417)。
そして、書込部320は、グループ2の3番目のストライプをNANDフラッシュ30eが有するバッファ31eに書込む(ステップS418)。また、読出部330は、バッファ31gからパリティデータを読み出す(ステップS419)。そして、パリティ生成部340は、読出部330により読み出されたパリティデータと、グループ2の3番目のストライプとの排他的論理和からパリティデータ算出する(ステップS420)。また、書込部320は、パリティデータをバッファ31fに書込む(ステップS421)。このステップS419からステップS421の処理は、ステップS418の処理と同時に実行される。
続いて、NANDフラッシュ30eでは、バッファ31eに書込まれたストライプがアレイ32eに書込まれる(ステップS422)。また、このステップS422の処理と同時に、NANDフラッシュ30fでは、バッファ31fに書込まれたストライプがアレイ32fに書込まれる(ステップS423)。
[実施例2の効果]
上述してきたように、実施例2に係るストレージ装置では、パリティデータを書き込んでもライト性能を低下させない。さらに、実施例2に係るストレージ装置では、パリティ用NANDフラッシュのアレイを有効に活用することができる。この結果、例えば、ユーザデータに対してパリティデータを2つ生成できるので、ユーザデータにエラーが生じた場合の復元の精度を向上することができる。
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、実施例1及び2では、ストレージ装置が、停電時においてキャッシュメモリ11からNANDフラッシュへデータを退避する場合を例に説明したが、これに限定されるものではない。例えば、ストレージ装置は、通常時のデータの記憶用としてNANDフラッシュを用いてもよい。そして、この場合にも、ストレージ装置は、パリティデータを書き込んでもライト性能を低下させない。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。例えば、図7に示すステップS401からステップS409までの処理とステップS410からステップS423までの処理の順番を入れ替えても良い。
また、実施例1及び実施例2では、不揮発性のメモリとしてNANDフラッシュを例に説明したが、これに限定されるものではない。例えば、不揮発性のメモリとしてHDDやROM(Read Only Memory)などであってもよい。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、実施例1におけるライト用DMA200では、読出部230とパリティ生成部240とが統合されてもよい。
1 ストレージ装置
2 電源供給ユニット
3a〜3c HDD
10 CM
11 キャッシュメモリ
12 RoC
13 Exp
14 停電時給電ユニット
20、20a〜20e、30a〜30g NANDフラッシュ
100 FPGA
200、300 ライト用DMA
210、310 転送部
220、320 書込部
221、231、321、322、331 選択回路
230、330 読出部
240、340 パリティ生成部
241、341 XOR回路

Claims (5)

  1. データを分割して得られる複数の部分データをそれぞれ記憶する複数のメモリを含む第1メモリ群と、
    パリティデータを記憶する第1のメモリ及び第2のメモリと、
    前記第1のメモリまたは前記第2のメモリからパリティデータを読出す読出部と、
    前記読出されたパリティデータと、部分データとからパリティデータを生成する生成部と、
    前記第1メモリ群に含まれるいずれかのメモリに前記部分データを書込むとともに、前記第1のメモリからパリティデータを読出した場合には、前記第2のメモリに、前記第2のメモリからパリティデータを読出した場合には、前記第1のメモリに、生成されたパリティデータを書込む書込部と
    を有することを特徴とするストレージ装置。
  2. 前記第1メモリ群に含まれる複数のメモリは、一時保存領域と保存領域とを有し、
    前記第1のメモリ及び前記第2のメモリは、一時保存領域と保存領域とを有し、
    前記読出部は、前記第1のメモリの一時保存領域または前記第2のメモリの一時保存領域からパリティデータを読出し、
    前記書込部は、前記第1メモリ群に含まれる複数のメモリの一時保存領域に前記部分データを書込むとともに、前記第1のメモリからパリティデータを読出した場合には、前記第2のメモリの一時保存領域に、前記第2のメモリからパリティデータを読出した場合には、前記第1のメモリの一時保存領域に、生成されたパリティデータを書込む
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記書込部は、部分データを前記第1メモリ群に含まれる複数のメモリの一時保存領域から保存領域に書込み、書込む部分データが最後の部分データである場合、該最後の部分データを前記第1メモリ群に含まれる複数のメモリの一時保存領域から保存領域に書込むと同時に、パリティデータを前記第1のメモリの一時保存領域から保存領域または前記第2のメモリの一時保存領域から保存領域に書込む
    ことを特徴とする請求項2に記載のストレージ装置。
  4. 前記書込部は、奇数個の部分データに分割された第1のデータと偶数個の部分データに分割された第2のデータとを前記第1メモリ群に含まれる複数のメモリに書込む場合、前記第1のデータに対するパリティデータを前記第1のメモリの保存領域または前記第2のメモリの保存領域に書込み、前記第1のメモリに前記第1のデータに対するパリティデータを書込んだ場合には前記第2のメモリに、前記第2のメモリに前記第1のデータに対するパリティデータを書込んだ場合には前記第1のメモリに、前記第2のデータに対するパリティデータを書込むことを特徴とする請求項3に記載のストレージ装置。
  5. ストレージ装置が、
    データを分割して得られる複数の部分データを第1メモリ群に含まれる複数のメモリのいずれかに書込むとともに、パリティデータを第1のメモリまたは第2のメモリに書込み、
    前記第1のメモリまたは前記第2のメモリからパリティデータを読出し、
    前記読出したパリティデータと、部分データとからパリティデータを生成し、
    前記第1メモリ群に含まれる複数のメモリに前記部分データを書込むとともに、前記第1のメモリからパリティデータを読出した場合には前記第2のメモリに、前記第2のメモリからパリティデータを読出した場合には前記第1のメモリに、生成されたパリティデータを書込む
    各処理を含んだことを特徴とするストレージ装置の制御方法。
JP2011282334A 2011-12-22 2011-12-22 ストレージ装置及びストレージ装置の制御方法 Pending JP2013131192A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011282334A JP2013131192A (ja) 2011-12-22 2011-12-22 ストレージ装置及びストレージ装置の制御方法
US13/645,581 US9063880B2 (en) 2011-12-22 2012-10-05 Storage device and method for controlling storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011282334A JP2013131192A (ja) 2011-12-22 2011-12-22 ストレージ装置及びストレージ装置の制御方法

Publications (1)

Publication Number Publication Date
JP2013131192A true JP2013131192A (ja) 2013-07-04

Family

ID=48655729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011282334A Pending JP2013131192A (ja) 2011-12-22 2011-12-22 ストレージ装置及びストレージ装置の制御方法

Country Status (2)

Country Link
US (1) US9063880B2 (ja)
JP (1) JP2013131192A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
KR102248207B1 (ko) * 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR102549605B1 (ko) * 2016-03-04 2023-06-30 삼성전자주식회사 Raid 스토리지 장치의 리커버리 방법
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US11422740B2 (en) * 2019-09-27 2022-08-23 Dell Products L.P. Raid storage-device-assisted data update system
US11347609B1 (en) * 2021-04-29 2022-05-31 International Business Machines Corporation Failed media channel recovery throttling

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH10105476A (ja) * 1996-08-13 1998-04-24 Hewlett Packard Co <Hp> パリティブロックの生成装置
JPH11282633A (ja) * 1998-03-27 1999-10-15 Matsushita Electric Ind Co Ltd 磁気ディスク装置
JP2000215679A (ja) * 1999-01-18 2000-08-04 Taito Corp 半導体記憶装置
WO2009098776A1 (ja) * 2008-02-08 2009-08-13 Fujitsu Limited バックアップ方法、ディスクアレイ装置及びコントローラ

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250274A (ja) * 1992-03-04 1993-09-28 Mitsubishi Electric Corp ディスクキャッシュ装置
JPH06309234A (ja) * 1993-02-15 1994-11-04 Toshiba Corp ディスク制御装置
JPH08220198A (ja) 1995-02-13 1996-08-30 Nec Corp 電池バックアップメモリユニットおよびバックアップ機能試験方法
JP3618529B2 (ja) * 1997-11-04 2005-02-09 富士通株式会社 ディスクアレイ装置
JP2000357059A (ja) 1999-06-14 2000-12-26 Toshiba Corp ディスクアレイ装置
JP3866478B2 (ja) * 2000-03-28 2007-01-10 株式会社東芝 半導体集積回路
JP3514217B2 (ja) * 2000-06-29 2004-03-31 日本電気株式会社 ターボ復号方法及び受信機
US6996739B2 (en) * 2001-07-11 2006-02-07 Sun Microsystems, Inc. Accumulator memory for performing operations on block operands
JP4034949B2 (ja) * 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
CN100361222C (zh) * 2003-09-05 2008-01-09 三洋电机株式会社 纠错码产生电路及其方法
US20050132128A1 (en) 2003-12-15 2005-06-16 Jin-Yub Lee Flash memory device and flash memory system including buffer memory
JP2005332471A (ja) 2004-05-19 2005-12-02 Hitachi Ltd ディスクアレイ装置
US20090113235A1 (en) * 2007-10-30 2009-04-30 Selinger Robert D Raid with redundant parity
WO2009107213A1 (ja) * 2008-02-28 2009-09-03 富士通株式会社 ストレージ装置、ストレージ制御装置、データ転送集積回路、および、ストレージ制御方法
US20090300282A1 (en) * 2008-05-30 2009-12-03 Promise Technology, Inc. Redundant array of independent disks write recovery system
JP5286956B2 (ja) * 2008-06-13 2013-09-11 富士通株式会社 制御方法、ディスクアレイ装置
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
KR101056876B1 (ko) * 2009-06-30 2011-08-12 주식회사 하이닉스반도체 불휘발성 메모리 장치의 동작 방법 및 이를 구현하는 불휘발성 메모리 장치
KR101694984B1 (ko) * 2010-12-08 2017-01-11 한국전자통신연구원 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH10105476A (ja) * 1996-08-13 1998-04-24 Hewlett Packard Co <Hp> パリティブロックの生成装置
JPH11282633A (ja) * 1998-03-27 1999-10-15 Matsushita Electric Ind Co Ltd 磁気ディスク装置
JP2000215679A (ja) * 1999-01-18 2000-08-04 Taito Corp 半導体記憶装置
WO2009098776A1 (ja) * 2008-02-08 2009-08-13 Fujitsu Limited バックアップ方法、ディスクアレイ装置及びコントローラ

Also Published As

Publication number Publication date
US20130166857A1 (en) 2013-06-27
US9063880B2 (en) 2015-06-23

Similar Documents

Publication Publication Date Title
CN104350546B (zh) 行锤击刷新命令
JP2013131192A (ja) ストレージ装置及びストレージ装置の制御方法
US20140189215A1 (en) Memory modules and memory systems
TW201603037A (zh) 記憶體對映
JP2016035795A (ja) 内部ecc処理を有するnand型フラッシュメモリおよびその動作方法
KR101736944B1 (ko) Nand 메모리 디바이스에 저장되는 데이터의 페일 세이프 리프레시
US20080263369A1 (en) Method and apparatus for encrypting and processing data in flash translation layer
KR20170054182A (ko) 반도체 장치
JPWO2008149458A1 (ja) 暗号化装置、暗号化方法および暗号化プログラム
JP2012230621A (ja) メモリ装置、メモリ制御装置、メモリ制御方法
KR20130069364A (ko) 비휘발성 반도체 기억 장치 및 그 관리 방법
JP2016118815A (ja) 不揮発性メモリ装置
JP2005302250A (ja) 半導体装置
JP2010015665A (ja) Nandフラッシュメモリのリフレッシュ方法及びnand型フラッシュメモリデバイス
JP2006039772A (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
KR20190106274A (ko) 메모리 칩 및 그것을 포함하는 테스트 시스템
CN102929784A (zh) 非挥发性内存的写入方法
US9875051B2 (en) Memory system that controls power state of buffer memory
JP2008310896A (ja) 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
US9747035B2 (en) Reducing memory overhead associated with memory protected by a fault protection scheme
TW201526011A (zh) 電子裝置及其資料維護方法
JP2019028572A (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP6399755B2 (ja) ミラーリング装置及びその制御方法
JP2011013736A (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
JP3198192U (ja) 読取装置、書込み装置及び複写装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160322