JP2010211734A - 不揮発性メモリを用いた記憶装置 - Google Patents
不揮発性メモリを用いた記憶装置 Download PDFInfo
- Publication number
- JP2010211734A JP2010211734A JP2009059768A JP2009059768A JP2010211734A JP 2010211734 A JP2010211734 A JP 2010211734A JP 2009059768 A JP2009059768 A JP 2009059768A JP 2009059768 A JP2009059768 A JP 2009059768A JP 2010211734 A JP2010211734 A JP 2010211734A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- write data
- data
- written
- storage 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】バッファメモリのライトデータを、複数の不揮発性メモリデバイスを並列にアクセスして書き込む記憶装置に関し、電源遮断時のデータ消失を防止する。
【解決手段】複数の書き込み可能な不揮発性メモリデバイス(3−1〜3−16)を並列にアクセスするメモリコントローラ(2)が、電源遮断時に、特定の不揮発性メモリデバイス(3−A)のみを書き込み対象にし、バッファメモリ(18−1)から、不揮発性メモリデバイス(3−A)に書き込むデータを、書き込み済みでないライトデータに絞り込むことで、書き込み時に消費する電力を、抑えることが可能になる。
【選択図】図3
【解決手段】複数の書き込み可能な不揮発性メモリデバイス(3−1〜3−16)を並列にアクセスするメモリコントローラ(2)が、電源遮断時に、特定の不揮発性メモリデバイス(3−A)のみを書き込み対象にし、バッファメモリ(18−1)から、不揮発性メモリデバイス(3−A)に書き込むデータを、書き込み済みでないライトデータに絞り込むことで、書き込み時に消費する電力を、抑えることが可能になる。
【選択図】図3
Description
本発明は、ページ単位で書込みを行う不揮発性メモリを用いた記憶装置に関する。
書き込み可能な不揮発性記憶装置として、広く磁気デイスク装置が利用されてきた。このような記憶装置に、更なる高速なリード/ライト性能が要求されている。このため、不揮発性メモリの一つであるフラッシュメモリを搭載した記憶装置が、利用されている。この記憶装置は、高速で、持久性の高いSSD(Solid State Drive)として用いられる。
このフラッシュメモリにデータを書き込む時、ブロック単位にイレーズ及び書き込みを行う。このため、SSDとして、使用するには、少なくともページ単位(例えば、1ページ512Byte〜4KByte)での書き込みを行うため、数10ms程度の時間を要する。連続した書き込みが発生した場合に、そのままフラッシュメモリへの書き込みを実施してしまうと、書き込み処理に時間を奪われてしまう。このため、ホストコンピュータへの無応答時間が長くなることで、性能の低下が発生する。
ホストコンピュータへの応答を早めるために、受信したデータをバッファメモリなどに一端退避させた後に、ホストに即時応答する。バッファメモリに、一定ブロックが溜まってからか、またはSSD装置がアイドル状態になってから、フラッシュメモリに書き込み処理を行う。これにより、書き込みにかかる時間を補っている。
このような書込み処理中に、電源が遮断されてしまった場合、揮発性メモリで構成されたバッファメモリのデータは書き込まれることなく、装置は停止してしまう。又は、フラッシュメモリにおける特定の物理アドレスを書き込み中に、電源遮断が発生するため、その物理アドレスのデータが破壊されることになる。
この書き込み中の電源の遮断におけるデータの喪失を防止する方法が、提案されている。例えば、バッファメモリを、フラッシュメモリのような不揮発性メモリで構成し、データの書き込みを二重化させる。例えば、フラッシュメモリを用いた記憶装置の電源遮断時のデータ喪失防止技術は、特許文献1に記載されている。
しかしながら、不揮発性メモリに書き込むには、前述のように、時間がかかる。このため、ホストからのライトデータを、バッファメモリに書き込むための時間がかかるため、ホストへの応答が遅くなる。又、不揮発性メモリは、高価であるため、大容量のバッファメモリに使用するには、コスト的に不向きである。
又、電源遮断が発生することを考慮して、SSDに、バッテリやキャパシタを搭載して、蓄電時間内に、バッファメモリに格納されているデータを書き込む対策も可能である。しかしながら、バッファメモリ自体の容量が数百MByteと大容量化しているため、多数のフラッシュメモリに電源を供給しながら、書き込むには、蓄電時間内に、書き込みが困難となるおそれがある。
このバッテリの容量を増加すれば、良いが、SSDの装置サイズは、磁気デイスク装置の3.5インチないし2.5インチのサイズのように、小型であることが要求され、搭載可能なバッテリのサイズには限りがある。
従って、本発明の目的は、電源遮断時に、電力消費を抑えて、揮発性バッファメモリのデータの喪失を防止するためのデータ記憶装置を提供することにある。
この目的の達成のため、記憶装置は、複数の書き込み可能な不揮発性メモリデバイスと、ホストからのライトデータを一時格納するバッファメモリと、前記バッファメモリのライトデータを、前記複数の不揮発性メモリデバイスに分散して書き込むメモリコントローラと、予備用の不揮発性メモリデバイスとを有し、前記メモリコントローラは、電源断の検出に応じて、前記バッファメモリの前記複数の不揮発性メモリデバイスに書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスに、書き込み、電源回復に応じて、前記予備用の不揮発性メモリデバイスに書き込んだ前記ライトデータを、前記バッファメモリに書き込む。
複数の不揮発性メモリデバイスと異なる予備の不揮発性メモリデバイスのみを書き込み対象にすることで、バッファメモリのライトデータの書き込み時にかかる電力を抑えることが可能になる。又、予備の不揮発性メモリデバイスに書き込むデータを、未書き込みライトデータに絞り込むことで、書き込み時に消費する電力を更に抑えることが可能になる。
以下、本発明の実施の形態を、不揮発性メモリを用いた記憶装置、電源遮断時のデータ退避処理、電源回復時のデータ復旧処理、他の実施の形態の順で説明する。
(不揮発性メモリを用いた記憶装置)
図1は、本発明の記憶装置の一実施の形態の構成図、図2は、図1の記憶装置の通常時のアクセス動作の説明図、図3は、図1の記憶装置の電源遮断時の電源供給状態の説明図である。図1は、記憶装置として、不揮発性メモリにフラッシュメモリを用いたSSDを例に示す。
図1は、本発明の記憶装置の一実施の形態の構成図、図2は、図1の記憶装置の通常時のアクセス動作の説明図、図3は、図1の記憶装置の電源遮断時の電源供給状態の説明図である。図1は、記憶装置として、不揮発性メモリにフラッシュメモリを用いたSSDを例に示す。
図1に示すように、SSD(Solid State Drive)1は、I/F(インタフェース)コントローラ10と、CPU(Centralized Procesor Unit)12と、SRAM(Static Randam Access Memeory)14と、DMA(Direct Memory Access)コントローラ16と、SDRAM(Static Dynamic Randam Access Memeory)18と、フラッシュコントローラ2と、複数のフラッシュメモリ3とを有する。
I/Fコントローラ10と、CPU12と、SRAM14と、DMAコントローラ16と、SDRAM18と、フラッシュコントローラ2とは、バス19で接続される。I/Fコントローラ12は、図示しないホスト(例えば、パーソナルコンピュータのCPU)とのインタフェース制御を行う。例えば、I/Fコントローラ12は、SAS(Serial Attached SCSI)やSATA(Serial AT Attached)インタフェース制御を行う。
CPU12は、SRAM14に格納されたプログラムやパラメータを使用して、SSD1の全体の制御を行う。例えば、ホストからのコマンドを解析し、そのコマンドの処理を行う。SDRAM18は、CPU12のワーク領域と、リード/ライトデータのバッファメモリとを備える。
DMAコントローラ16は、CPU12のDMA指示により、フラッシュコントローラ2とSDRAM18のバッファメモリ間のデータ転送と、SDRAM18のバッファメモリとI/Fコントローラ10間のデータ転送を行う。
フラッシュコントローラ2は、複数のフラッシュメモリ3に接続され、フラッシュメモリ3のデータのリード/ライト制御を行う。フラッシュメモリ3は、NAND型フラッシュメモリで構成され、ブロック単位で、リード/ライトする。
図2に示すように、フラッシュメモリ3は、フラッシュコントローラ2に並列に接続された複数(ここでは、16個)のフラッシュメモリデバイス3−1〜3−16と、第2のフラッシュメモリデバイス3−Aとを有する。例えば、1つのフラッシュメモリデバイスの記憶容量を、128MByteとすると、16個のフラッシュデバイスで、128*16=2088MByte=2GByteのSSDを構成できる。
そして、通常動作時は、フラッシュコントローラ2は、LBA(Logical Block Address)単位のリード/ライトは、このフラッシュメモリデバイス3−1〜3−16の任意ブロックへアクセスする。例えば、1LBAを、1024Byteとすると、1024/16=64Byteに分割され、16個のフラッシュメモリデバイス3−1〜3−16の物理領域が割り当てられる。
このように、並列アクセスにより、リード/ライトすることにより、時間がかかるフラッシュメモリのリード/ライト、特にライトに要する時間を短縮している。このため、通常動作時は、16個のフラッシュメモリデバイス3−1〜3−16に電源を供給し続ける必要がある。
図3に示すように、電源遮断時には、電源供給がなくなるために、付属のバッテリバックアップが起動する。この時、消費電力を抑えるため、パラレルに接続している各フラッシュメモリデバイス3−1〜3−16,3−Aのうち、第2のフラッシュメモリデバイス3−A以外のフラッシュメモリデバイス3−1〜3−16は、電源供給を停止させる。このため、特定のフラッシュメモリデバイス3−Aのみに書き込みが、実施される。
この実施の形態のフラッシュメモリデバイスは、NAND型フラッシュメモリを用いているが、消費電力を要さない記憶素子で、必要な容量を満たすことが可能なものであれば、必ずしも、フラッシュメモリデバイスにこだわる必要はない。このような電源断時の電源供給により、電力消費を低減できる。
又、図2のように、並列に書き込みを行う場合には、各フラッシュメモリデバイス3−1〜3−16に書き込みを行うために、管理テーブルから、論理アドレス(LBA)を物理アドレスに変換するため、各論理アドレスから物理アドレスへの検索に、余分な電力を消費してしまう。
一方、図3の電源断時では、バッファメモリに格納されている未書き込みのデータ及び管理テーブルを、第2のフラッシュメモリデバイス3−Aに全て書き込む。このため、検索にかかる電力はほとんど生じない。
(電源遮断時のデータ退避処理)
図4は、本発明の一実施の形態の電源遮断時のデータ退避処理フロー図、図5は、図4のアドレス管理テーブルの説明図、図6は、図4のデータ退避動作の説明図、図7は、図4の管理テーブルと物理ブロックとの関係を示す図である。
図4は、本発明の一実施の形態の電源遮断時のデータ退避処理フロー図、図5は、図4のアドレス管理テーブルの説明図、図6は、図4のデータ退避動作の説明図、図7は、図4の管理テーブルと物理ブロックとの関係を示す図である。
フラッシュコントローラ2が実行する図4の処理を説明する前に、図5により、バッファメモリ18−1を説明する。SDRAM18に設けられたバッファメモリ18−1は、ライト処理で、ライトデータが格納されるライトキャッシュメモリと、リード処理で、リードデータが格納されるリードキャッシュメモリに、大別される。
図5は、バッファメモリ18−1は、データバッファ部18−2と、アドレス管理テーブル18−3を有する。データバッファ部18−2は、リードキャッシュメモリとライトキャッシュメモリで構成される。図5では、斜線部がリードデータ及び書き込み済みライトデータを示し、白抜き部分が、未書き込みのライトデータを示す。
データバッファ部18−2は、データ(リードデータ又はライトデータ)と、開始論理アドレス(LBA),転送長を格納する。例えば、図5において、データバッファ部18−2内のライトデータ1は、開始論理アドレス「0100」、転送長「0x20」である。
一方、アドレス管理テーブル18−3は、フラッシュメモリデバイス3−1〜3−16内でのデータのアドレスを管理するものである。アドレス管理テーブル18−3は、論理アドレス(LBA)、フラッシュメモリデバイス3−1〜3−16内の物理アドレス、ブロック長、冗長情報からなる。この冗長(状態)情報は、ライトデータに対し、未書き込みか、書き込み済み又は書き込み不要かを示す。
このフラッシュメモリ装置において、ライト処理は、実際にフラッシュメモリデバイスに、ライトデータを書き込まなくとも、バッファメモリ18−1のライトキャッシュメモリに、ホストからのライトデータを格納完了次第、ホストへ完了の報告をする。
特に、フラッシュメモリは、書き込みに要する時間が長いため、システムがアイドル状態にある場合などに、纏めて書き、性能を向上させている。このため、電源断が発生した時に、バッファメモリ18−1上のライトキャッシュメモリ上に、フラッシュメモリに対して、未書き込み状態になっているデータが、少なからず存在しうる。
次に、図5乃至図7を参照して、フラッシュコントローラ2が実行する図4の処理を説明する。
(S10)フラッシュコントローラ2は、電源断の発生による電源断の割り込みを検出して、データ退避処理を開始する。
(S12)フラッシュコントローラ2は、フラッシュメモリデバイス3−1〜3−16にデータを書き込み中(プログラミング中という)かを判定する。フラッシュコントローラ2が、データを書き込み中であれば、フラッシュコントローラ2は、フラッシュメモリデバイス3−1〜3−16に書き込み停止を要求する。
(S14)そして、フラッシュコントローラ2は、並列接続したフラッシュメモリデバイス3−1〜3−16の電源を遮断する。即ち、図2で説明した電源供給状態から、図3で説明した第2のフラッシュメモリデバイス3−Aのみ、バッテリから電源を供給する状態に移行する。
(S16)フラッシュコントローラ2は、バッファメモリ18−1のライトキャッシュメモリの1セグメント分の情報を取得する。即ち、フラッシュコントローラ2は、アドレス管理テーブル18−3の指定した物理アドレスの状態(冗長)情報(図5参照)を参照する。
フラッシュコントローラ2は、その状態情報の状態が、未書き込み状態(状態“01”)であるライトデータのみを書き込み(退避)対象として、抽出する。図5で示すように、フラッシュコントローラ2は、この抽出したライトデータの論理アドレス、物理アドレス、ブロック長、冗長情報からなるアドレス管理テーブル18−3を更新する。
この時、実際には、シーケンシャルな関係になりうるが、ライトキャッシュメモリ上では、別々のデータとして格納されているライトデータが存在する場合がある。例えば、図5では、ライトデータ45が、開始LBA「2A00」で、転送長が、「0x80」であり、ライトデータ46が、開始LBAが、「2A80」であるから、ライトデータ46は、ライトデータ45に続く、シーケンシャルなデータである。
このため、フラッシュコントローラ2は、抽出したライトデータの開始LBAと転送長からシーケンシャルな関係のライトデータが存在するか判定し、アドレス管理テーブル18−3上は、1つのシーケンシャルなデータとして扱う。即ち、図5の例では、ライトデータ45とライトデータ46を纏めて、論理アドレス(LBA)が、「2A00」、物理アドレスが、「9E50」、ブロック長が、「0x1000」のアドレス管理テーブル18−3に更新する。
即ち、多くのデータが、シーケンシャルアクセスで、断片的にライトキャッシュメモリに置かれている場合、図5のように、論理アドレス「0x2A00」番地である同一の管理単位に纏めることにより、管理テーブルの効率化につながる。
(S20)フラッシュコントローラ2は、バッファメモリ18−1のアドレス管理テーブル18−3の全ての未書き込みライトデータの抽出が終了したかを判定する。 フラッシュコントローラ2は、バッファメモリ18−1のアドレス管理テーブル18−3の全ての未書き込みライトデータの抽出が終了していないと判定すると、ステップS16に戻る。
(S22)フラッシュコントローラ2は、バッファメモリ18−1のアドレス管理テーブル18−3の全ての未書き込みライトデータの抽出が終了したと判定すると、図6に示すように、書き込み対象のライトデータのみを抽出した後、アドレス管理テーブル18−3を含めたデータ群を、フラッシュメモリデバイス3−Aに書き込む処理を実施する。
通常は、物理領域にデータを書き込む際には、連続した論理アドレス単位のデータのみを、同一ブロックに書き込み、ランダムな論理アドレスにおいては、別ブロックに書き込まれる。しかし、この実施の形態では、図7に示すように、連続したデータの有無に関わらず、ブロック内に可能な限りデータを詰めることで、書き込み時間を短縮している。
また、アドレス管理テーブル18−3には、通常、ホストからのアクセス毎に、データが開始論理アドレスを持っているため、シーケンシャルなアクセスが連続していた場合においても、その都度、論理アドレスと転送長を、アドレス管理テーブル18−3に登録している。
電源遮断時は、シーケンシャルアクセス時には、その管理テーブルのシーケンシャル開始アドレス(先頭物理アドレス)と総転送長(ブロック長)のみを、アドレス管理テーブル18−3として保持する。これによって、管理テーブル18−3の容量を削減することが可能になる。
図7では、管理テーブル18−3の先頭アドレスからブロック長分だけのデータが格納されていることを示し、フラッシュメモリデバイス3−Aには、連続したデータの有無に関わらず、ブロック内に可能な限りデータを詰めている。
このように、バッファメモリ18−1に格納されているデータの中から、必要なものだけを書き込むようにするため、書き込み時間によって、消費される電力を抑えることが可能になる。
(電源回復時のデータ復旧処理)
次に、電源投入時等の電源回復時の復旧処理を説明する。図8は、本発明の一実施の形態の電源回復時のデータ復旧処理フロー図、図9は、図8のデータ復旧動作の説明図である。
次に、電源投入時等の電源回復時の復旧処理を説明する。図8は、本発明の一実施の形態の電源回復時のデータ復旧処理フロー図、図9は、図8のデータ復旧動作の説明図である。
以下、図9を参照して、図8のフラッシュコントローラ2のデータ復旧処理を説明する。
(S30)フラッシュコントローラ2は、電源投入を通知されると、フラッシュメモリデバイス3−Aの先頭アドレスをチエックする。尚、図4のステップS22の書き込みにおいて、退避データをフラッシュメモリデバイス3−Aに書き込む場合、その書き込み先のアドレスを書き込んでおく。
(S32)フラッシュコントローラ2は、第2のフラッシュメモリデバイス3−Aの先頭アドレスにポインタが書かれていないと判定すると、第2のフラッシュメモリデバイス3−Aには、電源断時に退避データを書き込んでいないと判断し、通常の起動を行う。
(S34)フラッシュコントローラ2は、第2のフラッシュメモリデバイス3−Aの先頭アドレスにポインタが書かれていると判定すると、そのポインタのアドレスを参照し、退避データ群のデータ先のアドレスを確定する。そして、フラッシュコントローラ2は、第2のフラッシュメモリデバイス3−Aの退避データ群の先頭アドレスから格納されているライトデータを、管理テーブル18−3を参照して、バッファメモリ18−1のライトキャッシュメモリの先頭から、格納分だけコピーする(図9参照)。
(S36)次に、フラッシュコントローラ2は、管理テーブル18−3を、バッファメモリ18−1の所定の位置へコピーする。コピー後、第2のフラッシュメモリデバイス3−Aの領域は、フリーになる。
(S38)その後、フラッシュコントローラ2は、ブートアップし、バッファメモリ18−1のライトデータを、フラッシュメモリデバイス3−1〜3−16の正規のブロックに書き込む。
このようにして、電源断時に退避したデータを、バッファメモリ18−1に復旧できる。
以下に、本実施の形態を記述する。
(1)複数の書き込み可能な不揮発性メモリデバイスと、ホストからのライトデータを一時格納するバッファメモリと、前記バッファメモリのライトデータを、前記複数の不揮発性メモリデバイスに分散して書き込むメモリコントローラと、予備用の不揮発性メモリデバイスとを有し、前記メモリコントローラは、電源断の検出に応じて、前記バッファメモリの前記複数の不揮発性メモリデバイスに書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスに、書き込み、電源回復に応じて、前記予備用の不揮発性メモリデバイスに書き込んだ前記ライトデータを、前記バッファメモリに書き込むことを特徴とする記憶装置。
(2)前記メモリコントローラは、前記電源断の検出に応じて、予備用電力を、前記予備用の不揮発性メモリデバイスのみに供給することを特徴とする付記1の記憶装置。
(3)前記ホストとのインタフェース制御を行うインタフェース回路と、前記ホストからのコマンドを解析し、前記バッファメモリにライトデータを書き込み、その後、前記ホストに処理完了を通知する制御回路とを更に有することを特徴とする付記1の記憶装置。
(4)前記バッファメモリは、格納した前記ライトデータの論理アドレスと前記書き込み済みか否かを示す冗長情報を、前記ライトデータ単位に格納する管理テーブルを有し、前記メモリコントローラは、前記冗長情報から、前記書き込み済みでないライトデータを抽出することを特徴とする付記1の記憶装置。
(5)前記メモリコントローラは、前記管理テーブルから前記書き込み済みでないライトデータを抽出し、前記管理テーブルを、前記予備用の不揮発性メモリデバイスに書き込むことを特徴とする付記4の記憶装置。
(6)前記メモリコントローラは、前記バッファメモリのシーケンシャルな関係の前記書き込み済みでない複数のライトデータの管理情報を纏めて、前記アドレス管理テーブルを更新し、前記予備用の不揮発性メモリデバイスに書き込むことを特徴とする付記4の記憶装置。
(7)前記バッファメモリは、前記複数の不揮発性メモリデバイスのリード及びライトキャッシュメモリであることを特徴とする付記3の記憶装置。
(8)前記メモリコントローラは、前記複数の不揮発性メモリデバイスを並列にアクセスして、リード及びライトを行うことを特徴とする付記7の記憶装置。
(9)前記メモリコントローラは、複数の前記書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスの連続した領域に順次書き込み、前記複数の前記書き込み済みでないライトデータに対し、前記連続した領域の物理アドレスを格納する前記アドレス管理テーブルを更新することを特徴とする付記5の記憶装置。
(10)前記メモリコントローラは、前記電源回復時に、前記予備用の不揮発性メモリデバイスに格納された前記アドレス管理テーブルに従って、前記ライトデータを、前記バッファメモリの所定の領域に書き込むことを特徴とする付記5の記憶装置。
(11)前記不揮発性メモリデバイスは、フラッシュメモリで構成され、前記メモリコントローラが、フラッシュコントローラで構成されたことを特徴とする付記1の記憶装置。
(他の実施の形態)
前述の実施の形態では、書き込み可能な不揮発性メモリとして、フラッシュメモリを例に説明したが、他の書き込み可能な不揮発性メモリに適用できる。又、第2のフラッシュメモリデバイス3−Aは、1のフラッシュメモリに、障害が生じた場合の予備用に使用できる。
前述の実施の形態では、書き込み可能な不揮発性メモリとして、フラッシュメモリを例に説明したが、他の書き込み可能な不揮発性メモリに適用できる。又、第2のフラッシュメモリデバイス3−Aは、1のフラッシュメモリに、障害が生じた場合の予備用に使用できる。
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
(付記1)複数の書き込み可能な不揮発性メモリデバイスと、ホストからのライトデータを一時格納するバッファメモリと、前記バッファメモリのライトデータを、前記複数の不揮発性メモリデバイスに分散して書き込むメモリコントローラと、予備用の不揮発性メモリデバイスとを有し、前記メモリコントローラは、電源断の検出に応じて、前記バッファメモリの前記複数の不揮発性メモリデバイスに書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスに、書き込み、電源回復に応じて、前記予備用の不揮発性メモリデバイスに書き込んだ前記ライトデータを、前記バッファメモリに書き込むことを特徴とする記憶装置。
(付記2)前記メモリコントローラは、前記電源断の検出に応じて、予備用電力を、前記予備用の不揮発性メモリデバイスのみに供給することを特徴とする付記1の記憶装置。
(付記3)前記ホストとのインタフェース制御を行うインタフェース回路と、前記ホストからのコマンドを解析し、前記バッファメモリにライトデータを書き込み、その後、前記ホストに処理完了を通知する制御回路とを更に有することを特徴とする付記1の記憶装置。
(付記4)前記バッファメモリは、格納した前記ライトデータの論理アドレスと前記書き込み済みか否かを示す冗長情報を、前記ライトデータ単位に格納する管理テーブルを有し、前記メモリコントローラは、前記冗長情報から、前記書き込み済みでないライトデータを抽出することを特徴とする付記1の記憶装置。
(付記5)前記メモリコントローラは、前記管理テーブルから前記書き込み済みでないライトデータのアドレス管理テーブルを作成し、前記予備用の不揮発性メモリデバイスに書き込むことを特徴とする付記4の記憶装置。
(付記6)前記メモリコントローラは、前記バッファメモリのシーケンシャルな関係の前記書き込み済みでない複数のライトデータの管理情報を纏めて、前記アドレス管理テーブルを更新し、前記予備用の不揮発性メモリデバイスに書き込むことを特徴とする付記4の記憶装置。
(付記7)前記バッファメモリは、前記複数の不揮発性メモリデバイスのリード及びライトキャッシュメモリであることを特徴とする付記3の記憶装置。
(付記8)前記メモリコントローラは、前記複数の不揮発性メモリデバイスを並列にアクセスして、リード及びライトを行うことを特徴とする付記7の記憶装置。
(付記9)前記メモリコントローラは、複数の前記書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスの連続した領域に順次書き込み、前記複数の前記書き込み済みでないライトデータに対し、前記連続した領域の物理アドレスを格納する前記アドレス管理テーブルを更新することを特徴とする付記5の記憶装置。
(付記10)前記メモリコントローラは、前記電源回復時に、前記予備用の不揮発性メモリデバイスに格納された前記アドレス管理テーブルに従って、前記ライトデータを、前記バッファメモリの所定の領域に書き込むことを特徴とする付記5の記憶装置。
(付記11)前記不揮発性メモリデバイスは、フラッシュメモリで構成され、前記メモリコントローラが、フラッシュコントローラで構成されたことを特徴とする付記1の記憶装置。
複数の書き込み可能な不揮発性メモリデバイスを並列にアクセスする記憶装置において、電源遮断時に、特定の不揮発性メモリデバイスのみを書き込み対象にすることで、書き込み時にかかる電力を抑えることが可能になり、また、不揮発性メモリデバイスに書き込むデータを絞り込むことで、書き込み時に消費する電力を、より抑えることが可能になる。特に、小型なメモリ型記憶装置のデータ消失防止に有効である。
1 記憶装置(SSD)
2 フラッシュコントローラ
3−1〜3−16 フラッシュメモリデバイス
3−A 予備用フラッシュメモリデバイス
10 I/Fコントローラ
12 CPU(処理ユニット)
14 SRAM
16 DMAコントローラ
18 SDRAM
18−1 バッファメモリ
18−2 データバッファ部
18−3 アドレス管理テーブル
19 バス
2 フラッシュコントローラ
3−1〜3−16 フラッシュメモリデバイス
3−A 予備用フラッシュメモリデバイス
10 I/Fコントローラ
12 CPU(処理ユニット)
14 SRAM
16 DMAコントローラ
18 SDRAM
18−1 バッファメモリ
18−2 データバッファ部
18−3 アドレス管理テーブル
19 バス
Claims (5)
- 複数の書き込み可能な不揮発性メモリデバイスと、
ホストからのライトデータを一時格納するバッファメモリと、
前記バッファメモリのライトデータを、前記複数の不揮発性メモリデバイスに分散して書き込むメモリコントローラと、
予備用の不揮発性メモリデバイスとを有し、
前記メモリコントローラは、電源断の検出に応じて、前記バッファメモリの前記複数の不揮発性メモリデバイスに書き込み済みでないライトデータを、前記予備用の不揮発性メモリデバイスに、書き込み、電源回復に応じて、前記予備用の不揮発性メモリデバイスに書き込んだ前記ライトデータを、前記バッファメモリに書き込む
ことを特徴とする記憶装置。 - 前記メモリコントローラは、前記電源断の検出に応じて、予備用電力を、前記予備用の不揮発性メモリデバイスのみに供給する
ことを特徴とする請求項1の記憶装置。 - 前記ホストとのインタフェース制御を行うインタフェース回路と、
前記ホストからのコマンドを解析し、前記バッファメモリにライトデータを書き込み、その後、前記ホストに処理完了を通知する制御回路とを更に有する
ことを特徴とする請求項1の記憶装置。 - 前記バッファメモリは、格納した前記ライトデータの論理アドレスと前記書き込み済みか否かを示す冗長情報を、前記ライトデータ単位に格納するアドレス管理テーブルを有し、
前記メモリコントローラは、前記冗長情報から、前記書き込み済みでないライトデータを抽出する
ことを特徴とする請求項1の記憶装置。 - 前記メモリコントローラは、前記バッファメモリのシーケンシャルな関係の前記書き込み済みでない複数のライトデータの管理情報を纏めて、アドレス管理テーブルを更新し、前記予備用の不揮発性メモリデバイスに書き込む
ことを特徴とする請求項4の記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009059768A JP2010211734A (ja) | 2009-03-12 | 2009-03-12 | 不揮発性メモリを用いた記憶装置 |
US12/719,392 US20100235568A1 (en) | 2009-03-12 | 2010-03-08 | Storage device using non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009059768A JP2010211734A (ja) | 2009-03-12 | 2009-03-12 | 不揮発性メモリを用いた記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010211734A true JP2010211734A (ja) | 2010-09-24 |
Family
ID=42731610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009059768A Pending JP2010211734A (ja) | 2009-03-12 | 2009-03-12 | 不揮発性メモリを用いた記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100235568A1 (ja) |
JP (1) | JP2010211734A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012118784A (ja) * | 2010-12-01 | 2012-06-21 | Toshiba Corp | データ記憶装置、メモリ制御装置及びメモリ制御方法 |
WO2013085305A1 (ko) * | 2011-12-06 | 2013-06-13 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 및 이를 프로그램하는 방법 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110027A (zh) * | 2009-12-23 | 2011-06-29 | 威刚科技(苏州)有限公司 | 具电压异常保护的储存装置及其操作方法 |
JP5077385B2 (ja) * | 2010-04-15 | 2012-11-21 | 株式会社デンソー | 車両用ナビゲーション装置 |
US9158700B2 (en) * | 2012-01-20 | 2015-10-13 | Seagate Technology Llc | Storing cached data in over-provisioned memory in response to power loss |
JP5624578B2 (ja) * | 2012-03-23 | 2014-11-12 | 株式会社東芝 | メモリシステム |
JP5914148B2 (ja) * | 2012-05-07 | 2016-05-11 | 株式会社バッファローメモリ | Ssd(ソリッドステートドライブ)装置 |
US20140013031A1 (en) * | 2012-07-09 | 2014-01-09 | Yoko Masuo | Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus |
KR102101304B1 (ko) * | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
CN104049910B (zh) * | 2013-03-15 | 2019-02-22 | 三星电子株式会社 | 操作存储器系统的方法、存储器系统、和存储器控制器 |
TWI524179B (zh) * | 2014-04-22 | 2016-03-01 | 新唐科技股份有限公司 | 儲存單元控制器及其控制方法、以及儲存裝置 |
CN106569730B (zh) * | 2015-10-08 | 2019-03-22 | 光宝电子(广州)有限公司 | 固态储存装置及其相关资料写入方法 |
TWI564716B (zh) * | 2015-10-08 | 2017-01-01 | 光寶電子(廣州)有限公司 | 固態儲存裝置及其相關資料寫入方法 |
KR102413755B1 (ko) | 2015-11-20 | 2022-06-28 | 삼성전자주식회사 | 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법 |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
JP6708762B1 (ja) * | 2019-01-29 | 2020-06-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
-
2009
- 2009-03-12 JP JP2009059768A patent/JP2010211734A/ja active Pending
-
2010
- 2010-03-08 US US12/719,392 patent/US20100235568A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012118784A (ja) * | 2010-12-01 | 2012-06-21 | Toshiba Corp | データ記憶装置、メモリ制御装置及びメモリ制御方法 |
US8914592B2 (en) | 2010-12-01 | 2014-12-16 | Kabushiki Kaisha Toshiba | Data storage apparatus with nonvolatile memories and method for controlling nonvolatile memories |
WO2013085305A1 (ko) * | 2011-12-06 | 2013-06-13 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 및 이를 프로그램하는 방법 |
KR101342658B1 (ko) | 2011-12-06 | 2013-12-16 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 및 그 구성 방법 |
US9286996B2 (en) | 2011-12-06 | 2016-03-15 | The AiO Inc. | Non-volatile memory system and method of programming the same |
Also Published As
Publication number | Publication date |
---|---|
US20100235568A1 (en) | 2010-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010211734A (ja) | 不揮発性メモリを用いた記憶装置 | |
TWI385516B (zh) | 快閃記憶體儲存系統及其資料寫入方法 | |
US8862808B2 (en) | Control apparatus and control method | |
US8316257B2 (en) | NAND power fail recovery | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
CN109643275B (zh) | 存储级存储器的磨损均衡设备和方法 | |
TWI636396B (zh) | 固態硬碟機架構 | |
JP5353887B2 (ja) | ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法 | |
KR101176702B1 (ko) | 판독 실패 관리 방법 및 시스템 | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
JP4930555B2 (ja) | 制御装置、制御方法およびストレージシステム | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
TW202011195A (zh) | 映射表更新方法 | |
US20190324859A1 (en) | Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive | |
JPWO2007119267A1 (ja) | フラッシュメモリ用のメモリコントローラ | |
JPH07146820A (ja) | フラッシュメモリの制御方法及び、それを用いた情報処理装置 | |
JP2009276853A (ja) | フラッシュメモリ装置 | |
US10423343B2 (en) | Information processing device and memory controller | |
JP2010152747A (ja) | ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム | |
JP2020191055A (ja) | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 | |
TW202015057A (zh) | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 | |
JP5259257B2 (ja) | 記憶装置 | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
TWI718516B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |