JP2010186341A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2010186341A JP2010186341A JP2009030298A JP2009030298A JP2010186341A JP 2010186341 A JP2010186341 A JP 2010186341A JP 2009030298 A JP2009030298 A JP 2009030298A JP 2009030298 A JP2009030298 A JP 2009030298A JP 2010186341 A JP2010186341 A JP 2010186341A
- Authority
- JP
- Japan
- Prior art keywords
- information
- status
- dram
- management function
- unit
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】接続インタフェース規格により記録することが規定されているステータス情報をファームウェアを複雑化することなく不揮発性メモリに書き込む。
【解決手段】第1記憶部3に、ホストインターフェース管理機能部121が更新管理するステータス情報201を記憶するステータス領域を確保し、第2記憶部5に、ステータス情報201のバックアップを記憶するバックアップ領域を確保し、ホストインターフェース管理機能部121は、ステータス情報201を更新するとともに、更新箇所を示す更新情報をデータ管理機能部120に通知し、データ管理機能部120は、ホストインターフェース管理機能部121から更新情報が通知されたとき、更新情報に基づいてステータス情報201の差分情報203を収集し、第2記憶部に蓄積記憶させる。
【選択図】図6−2
【解決手段】第1記憶部3に、ホストインターフェース管理機能部121が更新管理するステータス情報201を記憶するステータス領域を確保し、第2記憶部5に、ステータス情報201のバックアップを記憶するバックアップ領域を確保し、ホストインターフェース管理機能部121は、ステータス情報201を更新するとともに、更新箇所を示す更新情報をデータ管理機能部120に通知し、データ管理機能部120は、ホストインターフェース管理機能部121から更新情報が通知されたとき、更新情報に基づいてステータス情報201の差分情報203を収集し、第2記憶部に蓄積記憶させる。
【選択図】図6−2
Description
本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
コンピュータシステムに用いられる外部記憶装置として、不揮発性メモリであるフラッシュメモリ(フラッシュEEPROM)を搭載したSSD(Solid State Drive)が注目されている。フラッシュメモリは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
SSD内には、複数のフラッシュメモリチップ、ホスト装置からの要求に応じて不揮発性メモリのリード/ライト制御を行うコントローラ、不揮発性メモリとホスト装置との間でデータ転送を行うための揮発性のバッファメモリ、電源回路、ホスト装置に対する接続インタフェースなどを備えている(例えば、特許文献1)。
一般的に広く普及しているホスト装置に対する接続インタフェースとして、ATAインタフェース規格がある。このATAインタフェース規格における記憶装置の信頼性を向上させる手段として、SMART(Self-Monitoring Analysis and Reporting Technology)機能がある。SMART機能は、外部記憶装置内部で、リード/ライトエラーの累積回数や累積稼働時間などを記録し、除々に進行するような障害(経年劣化)を予測し、ホスト装置に事前に通知することにより、重大障害の発生によるデータの消失を未然に防止する機能である。電源遮断時におけるSMART機能のための記録は、次回の起動時に引き継がれる必要があるため、外部記憶装置自身が備える不揮発性の記憶領域に格納される。SSDにおいては、コントローラのリード/ライト制御を実行させるためのファームウェアを複雑化することなく、上述した記録のように接続インタフェース規格により記録することが規定されている各種管理情報(以下、ステータス情報という)を不揮発性メモリに書き込むことができる技術が要望されている。
本発明は、各種管理情報を、ファームウェアを複雑化することなく不揮発性メモリに書き込むことができるメモリシステムを提供する。
本願発明の一態様によれば、揮発性の第1記憶部と、不揮発性の第2記憶部と、ホスト装置と第1記憶部との間のデータ転送を制御するホストインターフェース管理機能部および前記第1記憶部と前記第2記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、を備えるメモリシステムにおいて、前記第1記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、前記第2記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、前記ホストインターフェース管理機能部は、自メモリシステムのステータスに応じて前記ステータス領域に記憶されているステータス情報を更新するとともに、この更新による更新箇所を示す更新情報を前記データ管理機能部に通知し、前記データ管理機能部は、前記ホストインターフェース管理機能部から更新情報が通知されたとき、前記通知された更新情報に基づいて前記ステータス領域から前記ステータス情報の更新前後の差分内容である差分情報を収集し、収集した差分情報を前記第2記憶部におけるバックアップ領域に蓄積記憶させる、ことを特徴とするメモリシステムが提供される。
また、本願発明の一態様によれば、揮発性の第1記憶部と、不揮発性の第2記憶部と、ホスト装置とのデータ転送を制御するホストインターフェース管理機能部および前記第1記憶部を介して前記ホストインターフェース管理機能部と前記第2記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、を備えるメモリシステムにおいて、前記第1記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、前記第2記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、前記ホストインターフェース管理機能部は、前記ステータス領域に記憶されているステータス情報と自メモリシステムの各時点におけるステータスとの差分内容である差分情報を前記ステータス領域に蓄積記憶させ、前記データ管理機能部は、所定のタイミングで前記ステータス領域に蓄積記憶された差分情報を前記ステータス領域におけるステータス情報に反映させるとともに前記差分情報を前記バックアップ記憶部に蓄積記憶させる、ことを特徴とするメモリシステムが提供される。
本発明によれば、各種管理情報を、ファームウェアを複雑化することなく不揮発性メモリに書き込むことができる。
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、第1の実施の形態のSSD100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはCPUコアなどのホスト装置1と接続され、ホスト装置1の外部記憶装置として機能する。SSD100は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)3と、コントローラとしてのドライブ制御回路4と、揮発性半導体メモリとしてのDRAM5とを備えている。ホスト装置1から書き込み要求されたデータ(ユーザデータ)は、DRAM5を介してNANDメモリ3に書き込まれる。また、ホスト装置1から読み出し要求されたユーザデータは、NANDメモリ3から読み出されてDRAM5を介してホスト装置1へ転送される。
図1は、第1の実施の形態のSSD100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはCPUコアなどのホスト装置1と接続され、ホスト装置1の外部記憶装置として機能する。SSD100は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)3と、コントローラとしてのドライブ制御回路4と、揮発性半導体メモリとしてのDRAM5とを備えている。ホスト装置1から書き込み要求されたデータ(ユーザデータ)は、DRAM5を介してNANDメモリ3に書き込まれる。また、ホスト装置1から読み出し要求されたユーザデータは、NANDメモリ3から読み出されてDRAM5を介してホスト装置1へ転送される。
NANDメモリ3は、ユーザデータを記憶するとともに、ホスト装置1から供給される論理アドレス(例えば、LBA:Logical Block Addressing)とSSD100で使用されるNANDアドレス(物理アドレス)とをユーザデータ毎に対応付ける管理情報(論理アドレス−物理アドレス変換テーブル等の各種管理テーブル)を記憶する。また、NANDメモリ3は、ATAインタフェース規格に定められる機能の一つであるSMART機能に基づく記録(ステータス情報)であるリード/ライトエラー、NANDメモリ3の温度情報、稼働時間などを記憶する領域(ステータス領域)が確保されている。
DRAM5は、ホスト装置1とNANDメモリ3間でのデータ転送用キャッシュおよび作業領域用メモリなどとして機能する。
ドライブ制御回路4は、NANDメモリ3とDRAM5を制御してホスト装置1とNANDメモリ3との間のデータ転送制御を行う。このデータ転送制御を行うための構成として、ドライブ制御回路4は以下の構成要素をさらに有する。すなわち、ドライブ制御回路4は、データアクセス用バス101および回路制御用バス102を備えている。回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ103が接続されている。回路制御用バス102には、NANDメモリ3に記憶された管理プログラム(ファームウエア)をブートするブート用プログラムが格納されたブートROM104がROMコントローラ105を介して接続されている。
ATAインタフェースコントローラ(ATAコントローラ)106、NANDコントローラ107、およびDRAMコントローラ108は、データアクセス用バス101と回路制御用バス102との両方に接続されている。ATAコントローラ106は、ATAインタフェース2を介してホスト装置1とユーザデータを送受信する。NANDコントローラ107はNANDメモリ3とデータを送受信する。データアクセス用バス101には、データ作業領域およびファームウェア展開領域として使用されるSRAM109がSRAMコントローラ110を介して接続されている。NANDメモリ3に記憶されているファームウェアは、起動時、ブートROM104に記憶されたブート用プログラムによってSRAM109に転送される。
図2は、プロセッサ103により実現されるファームウェアの機能構成を示すブロック図である。ファームウェアの各機能は、大きく、ATAコマンド処理部(ホストインターフェース管理機能部)121およびデータ管理部(データ管理機能部)120に分類される。
データ管理部120は、NANDコントローラ107、DRAMコントローラ108を介して、NANDメモリ3−DRAM5間のデータ転送の制御を実行する。データ管理部120は、NANDメモリ3にアクセスする際、NANDメモリ3におけるアクセス先を求めるために、ホスト装置1から供給される論理アドレスとNANDアドレスとをデータ毎に対応付ける情報である管理情報を使用する必要がある。管理情報は、前述したように、不揮発性のNANDメモリ3に記憶されている。NANDメモリ3に記憶されていた管理情報は、SSD100の起動時に揮発性のDRAM5の作業領域に展開される。データ管理部120は、この展開された管理情報に基づいてNANDメモリ3に対するユーザデータの読み書き制御を実行するとともに、DRAM5上に展開された管理情報を逐次更新する。
DRAM5上に展開された管理情報は、電源が切れても、電源が切れる以前の状態に復元する必要がある。データ管理部120は、DRAM5上の管理情報を不揮発性のNANDメモリ3に保存するために、スナップショット処理およびコミット処理を実行する機能を有している。スナップショットは、NANDメモリ3上の管理情報全体を指し、DRAM5に展開された管理テーブルをそのままNANDメモリ3に保存することを、スナップショットをとると表現している。ログは、管理情報の変更差分のことである。DRAM5上の管理情報の更新の度に、スナップショットをとっていたのでは、速度も遅く、NANDメモリ3への書き込み数が増えるために、通常は変更差分としてのログだけをNANDメモリ3に記録していく。ログをDRAM上の管理情報に反映し、NANDメモリ3に保存することを、コミットすると表現している。
図3に、NANDメモリ3に記憶されている管理情報がスナップショット処理およびコミット処理によりどのように更新されるかを示す。データ管理部120がDRAM5上の管理情報を更新する際に、DRAM5上の管理情報に加えた変更内容をDRAM5上のログに蓄積する。DRAM5上の管理情報を直接更新し、更新内容をDRAM5上のログに蓄積するケースと、DRAM5上の管理情報には直接変更を加えず、変更領域をDRAMログ上に確保して、その領域に更新内容を記録するケースとがある。ユーザデータの読み書き処理の際には、DRAM5上の管理情報の他に蓄積されたDRAM5上のログも参照する。
データの更新が安定したら、ログのコミットを行う。コミット処理では、DRAM5上のログの内容を必要に応じて管理情報に反映させ、さらにDRAMログの内容をNANDメモリ3に保存して不揮発化する。スナップショットをNANDメモリ3に保存するのは、正常な電源断シーケンスの際、ログの保存領域が不足した場合などである。ログまたはスナップショットをNANDメモリ3に書き終わった時点で、管理情報の不揮発化が完了する。
ATAコマンド処理部121は、ATAコントローラ106、およびDRAMコントローラ108を介して、データ管理部120と協動してDRAM4−ホスト装置1間のデータ転送処理を行う。また、ATAコマンド処理部121は、SMART機能に基づくステータス情報の書き込み元としての機能を有している。具体的には、ATAコマンド処理部121は、リード/ライトエラーが新たに発生したり、NANDメモリ3の温度情報の記録タイミングになったり、稼働時間の記録タイミングになったりしたとき、ステータス情報の更新管理を実行する。
前述したとおり、ステータス情報は、次回の起動時に引き継ぐべき情報であるため、NANDメモリ3に記憶する必要がある。また、NANDメモリ3への書き込みはデータ管理部120の制御の下に実行される。ATAコマンド処理部121が直接NANDメモリ3にステータス情報の書き込みを行うように構成すると、データ管理部120からのアクセスとの競合を引き起こすことになる。この競合を解消するための機構をファームウェアに実装するとなると、ファームウェアの構造が非常に複雑になってしまう。ファームウェアの複雑化はSSD100全体の性能低下の一因となりうる。本発明の第1の実施の形態によれば、スナップショット、ログの機構を利用することによって、ファームウェアを複雑化することなくATAコマンド処理部121がNANDメモリ3にステータス情報を書き込めるように構成したことが特徴となっている。具体的には、ATAコマンド処理部121はステータス情報をDRAM5に書き込み、データ管理部120は管理情報だけでなくDRAM5に書き込まれたステータス情報をもスナップショット、コミット対象とする。以降、データ管理部120により更新管理される管理情報をDM(Data Manager)情報、ATAコマンド処理部121により更新管理されるステータス情報をAM(ATA Manager)情報と表現することとする。
図4は、上記した特徴を実現するための第1の実施の形態のSSD100の機能構成を説明するブロック図である。DRAM5には、DRAM5上に展開された管理情報であるDM情報200と、DM情報200に加えた変更内容であるDM情報DRAMログ202と、ステータス情報であるAM情報201と、AM情報201の変更内容であるAM情報DRAMログ203と、が記憶される。DM情報200およびAM情報201はスナップショット対象となっており、DM情報DRAMログ202およびAM情報DRAMログ203がコミット対象となっている。言い換えると、DRAM5には、スナップショット対象となるデータの記憶領域およびコミット対象となる記憶領域の一部にステータス情報を記憶するステータス領域が確保されている。以下、DM情報200およびAM情報201を総称してスナップショット対象情報と表現することもある。また、以降、DRAMログというと、DM情報DRAMログ202およびAM情報DRAMログ203を含むこととする。
NANDメモリ3には、図示しないユーザデータのほか、スナップショット対象情報(DM情報200およびAM情報201)のスナップショットであるスナップショットデータ204と、コミット処理により不揮発化されたDM情報DRAMログ202であるDM情報NANDログ205と、コミット処理により不揮発化されたAM情報DRAMログ203であるAM情報NANDログ206とが記憶される。言い換えると、NANDメモリ3には、ステータス情報のバックアップであるスナップショットデータ204およびAM情報NANDログ206を記憶するバックアップ領域が確保されている。以降、NANDログというと、DM情報NANDログ205およびAM情報NANDログ206を含むこととする。
ATAコマンド処理部であるATAマネージャー121は、AM情報書き込み部210と、更新情報管理部211と、更新情報通知部212と、を有する。AM情報書き込み部210は、例えばリード/ライトエラーが新たに検出されるなど、ステータス情報が更新されるような事象が発生したとき、DRAM5に記憶されるAM情報201を更新する。更新情報管理部211は、AM情報201の更新が行われる度に、DRAM5上のアドレスおよびサイズを更新情報として記録管理する。更新情報通知部212は、所定のタイミングで後述するデータマネージャー120に更新情報管理部211が管理していた更新情報を通知する。
図5は、更新情報の一例を説明する図である。図示するように、一つの更新部分は、更新部分の先頭アドレスとサイズとからなる一つのエントリーで記録管理される。一つのエントリーは、Mビット固定長の一つのデータで管理され、このMビット長のデータのうち先頭のNビットにDRAM5におけるスナップショット対象情報の先頭アドレス(更新ベースアドレス)、その他のM−Nビットに前記先頭アドレスからの更新部分に相当するデータサイズ(1セクタあたり512バイトとしたときのセクタ数)が記述される。更新情報管理部211は、複数(ここでは8つ)の更新部分を記録管理することができるようになっている。更新情報は、例えばDRAM5の所定の領域に記憶され、逐次更新管理されるようにしてもよいし、DRAM5以外の記憶領域において記憶管理されるようにしてもよい。更新情報通知部212は、8エントリー以下の更新部分が蓄積されている状態で、更新情報をデータマネージャー120に通知する。通知後、更新情報は消去される。
図4に戻り、データ管理機能部であるデータマネージャー120は、DM情報制御部213、コミット実行部214、スナップショット実行部215を有する。DM情報制御部213は、DRAM5に記憶されているDM情報200およびDM情報200の変更差分の蓄積情報であるDM情報DRAMログ202に基づいてユーザデータの読み書き制御を行う。DM情報制御部213は、DM情報200を更新する際、DM情報200に対する更新前後の差分情報のみをDM情報DRAMログ202にさらに蓄積記憶させる。コミット実行部214は、ユーザデータの読み書きが安定したら、DM情報DRAMログ202の内容をDM情報200に反映させるとともに、DM情報DRAMログ202の内容をDM情報NANDログ205として保存して不揮発化する(第1のコミット処理)。また、コミット実行部214は、更新情報通知部212から更新情報を受信すると、受信した更新情報に基づいてAM情報201から更新差分をAM情報DRAMログ203として収集し、DM情報DRAMログ202の内容をDM情報200に反映させるとともに、AM情報DRAMログ203およびDM情報DRAMログ202を夫々AM情報NANDログ206、DM情報NANDログ205としてNANDメモリ3に書き込んで不揮発化する(第2のコミット処理)。スナップショット実行部215は、正常な電源遮断が実行される際や、DRAM5またはNANDメモリ3上のログの保存領域が不足した際、スナップショット対象情報をスナップショットしてスナップショットデータ204として不揮発化する。スナップショット処理またはコミット処理が行われると、DRAM5上に蓄積記憶されてきたDRAMログは、削除される。スナップショット処理が行われると、NANDログも削除される。
次に、図6−1および図6−2を参照して、コミット処理、スナップショット処理実行時の動作を説明する。
図6−1(a)は、通常動作時、すなわちコミット処理およびスナップショット処理のどちらの処理も実行中ではない時の動作を説明する図である。図示するように、通常動作時においては、DM情報制御部213は、DM情報200を読み出し(ステップS1)、DM情報DRAMログ202を読み出し(ステップS2)、読み出したDM情報200およびDM情報DRAMログ202に基づいてユーザデータの読み書きを実行する。そして、DM情報200を更新する場合、DM情報200の更新部分をDM情報DRAMログ202に蓄積記憶させる(ステップS3)。ステップS1〜ステップS3は、ユーザデータへのアクセスを行う毎に繰り返し実行される。なお、ここではDRAM5上のDM情報200には直接変更を加えず、DM情報DRAMログ202を記録するケースについて説明しているが、DRAM5上のDM情報100を直接更新し、更新内容をDM情報DRAMログ202に蓄積するケースもある。一方、AM情報書き込み部210は、ステータス情報の更新がある毎にAM情報201を更新し(ステップS4)、更新情報管理部211は、AM情報書き込み部210が更新した部分の情報を更新情報として管理する(ステップS5)。
図6−1(b)は、第1のコミット処理の動作を説明する図である。コミット実行部214は、DM情報DRAMログ202を読み出して(ステップS11)、読み出したDM情報DRAMログ202をDM情報200に反映させ(ステップS12)、さらに読み出したDM情報DRAMログ202をNANDメモリ3にDM情報NANDログ205として書き込む(ステップS13)。第1のコミット処理実行後は、DM情報DRAMログ202は消去される。これにより、不正な終了などが起こって電源が遮断され、DRAM5に記憶されている内容が消滅したとしても、スナップショットデータ204とDM情報NANDログ205に基づいて最新の状態のDM情報、すなわち管理情報を復元することができる。
図6−2(c)は、第2のコミット処理の動作を説明する図である。コミット実行部214は、更新情報通知部212からの更新情報を受信すると(ステップS21)、受信した更新情報に記述されている更新部分の先頭アドレスとサイズに基づいてAM情報201における更新部分のデータを読み出して(ステップS22)、読み出した更新部分のデータをAM情報DRAMログ203としてDRAM5に書き込む(ステップS23)。さらに、コミット実行部214は、DM情報DRAMログ202を読み出して(ステップS24)、読み出したDM情報DRAMログ202をDM情報200に反映させる(ステップS25)。そして、コミット実行部214は、DRAM5上の2種類のDRAMログ(DM情報DRAMログ202およびAM情報DRAMログ203)を読み出して(ステップS26)、読み出した2種類のDRAMログをNANDメモリ3に書き込んで夫々DRAM情報NANDログ205、AM情報NANDログ206とする(ステップS27)。ステップS27の動作が終了すると、コミット実行部214は、更新情報通知部212へ更新終了通知を送信する(ステップS28)。第2のコミット処理実行後、DRAMログは消去される。第2のコミット処理により、スナップショットデータ204に含まれるAM情報の差分内容が更新されるので、NANDメモリ3上のAM情報は実質的に最新の状態に等しくなる。これにより、不正な終了などが起こっても、スナップショットデータ204とAM情報NANDログ206に基づいて、最新の状態のAM情報201、すなわちステータス情報を復元できるようになる。つまり、再起動後も終了直前のステータス情報を引き継ぐことができる。
図6−2(d)は、スナップショット処理の動作を説明する図である。スナップショット実行部215は、DM情報200およびAM情報201を読み出して(ステップS31)、NANDメモリ3にスナップショットデータ204として保存する(ステップS32)。スナップショット処理実行後は、DM情報DRAMログ202は消去される。なお、スナップショット処理においてはDRAMログの反映が実行されないので、スナップショット処理前に第1のコミット処理を実行するようにするとよい。これにより、正常な終了処理により終了され、再起動された後も、終了直前のステータス情報を引き継ぐことができる。
このように、第1の実施の形態によれば、DRAM(第1記憶部)に、ATAマネージャーが更新管理するホスト装置に通知するためのAM情報(ステータス情報)を記憶するステータス領域を確保し、ATAマネージャーは、DRAM上のAM情報を更新するとともに、この更新による更新箇所を示す更新情報をデータマネージャーに通知し、データマネージャーは、ATAマネージャーから更新情報が通知されたとき、通知された更新情報に基づいてAM情報の更新前後の差分内容であるAM情報DRAMログを収集し、収集したAM情報DRAMログをNANDメモリ(第2記憶部)にAM情報NANDログとして蓄積記憶させる、不揮発化されているスナップショットデータとAM情報NANDログとの夫々に基づいて最新のAM情報を復元できるので、結果として、接続インタフェース規格により記録することが規定されているステータス情報をファームウェアを複雑化することなく不揮発性メモリに書き込むことができる。
なお、以上の説明においては、接続インタフェース規格に基づいて保存が要求される情報の例としてSMART機能に基づくステータス情報をあげて説明したが、ATAマネージャー120が書き込み元となるステータス情報は、SMART機能に関する情報に限定しない。また、スナップショット、コミットによりNANDメモリ3に保存される、ATAマネージャー121が使用する情報は、管理情報だけに限定しない。
(第2の実施の形態)
第1の実施の形態によれば、ステータス情報を更新するような事象が発生したとき、ATAマネージャーは、DRAM上に記憶されているステータス情報であるAM情報を直接更新するが、第2の実施の形態によれば、AM情報ではなく、AM情報の変更内容であるAM情報DRAMログに更新内容を蓄積記憶させるようにした。
第1の実施の形態によれば、ステータス情報を更新するような事象が発生したとき、ATAマネージャーは、DRAM上に記憶されているステータス情報であるAM情報を直接更新するが、第2の実施の形態によれば、AM情報ではなく、AM情報の変更内容であるAM情報DRAMログに更新内容を蓄積記憶させるようにした。
図7は、第2の実施の形態のSSDの機能構成を説明する図である。ここでは、第1の実施の形態と同様の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図7に示すように、第2の実施の形態のSSD100においては、ATAマネージャー131は、AM情報ログ書き込み部220と、コミット依頼通知部221とを有する。AM情報ログ書き込み部220は、ステータス情報が更新されるような事象が発生したとき、更新内容をAM情報DRAMログ203に蓄積記憶させる。コミット依頼通知部221は、後述するデータマネージャー130にコミット依頼通知を送信する。所定のタイミングとは、例えばAM情報DRAMログ203が一つの更新内容をAM情報DRAMログ203に蓄積記憶させたタイミングであってもよいし、複数の更新内容を蓄積記憶させたタイミングであってもよい。
データマネージャー130は、DM情報制御部213、コミット実行部224、スナップショット実行部215を有する。DM情報制御部213およびスナップショット実行部215の機能は第1の実施の形態と同様である。
コミット実行部224は、DRAMログを読み出してスナップショット対象情報に反映させるとともに、読み出したDRAMログをNANDメモリ3に書き込んでNANDログとして不揮発化させる(第3のコミット処理)。また、コミット実行部224は、コミット依頼通知を受信したときも、前記第3のコミット処理を実行する(第4のコミット処理)。
次に、図8を参照して、コミット処理実行時の動作を説明する。スナップショット処理の動作は実施の形態1と同様であるので、ここでは説明を省略する。図8(a)は、通常動作時の動作を説明する図である。図示するように、DM情報制御部213は、ステップS1〜ステップS3と同様の動作をステップS41〜ステップS43にて実行する。一方、AM情報ログ書き込み部220は、ステータス情報の更新がある毎にAM情報DRAMログ203を更新する(ステップS44)。
図8(b)は、第3のコミット処理の動作を説明する図である。コミット実行部224は、DRAMログを読み出して(ステップS51)、読み出したDRAMログをスナップショット対象情報に反映させ(ステップS52)、さらに読み出したDRAMログをNANDメモリ3にNANDログとして書き込む(ステップS53)。第3のコミット処理実行後は、DRAMログは消去される。
図8(c)は、第4のコミット処理の動作を説明する図である。コミット依頼通知部221からコミット依頼通知を受信すると(ステップS61)、前記したステップS51〜ステップS53の動作と同様の動作がステップS62〜ステップS64にて実行される。ステップS64の動作が終了すると、コミット実行部224は、コミット依頼通知部221へ更新終了通知を送信する(ステップS65)。
以上のように、第2の実施の形態によれば、ATAマネージャーはAM情報DRAMログをDRAMに蓄積記憶させ、データマネージャーは、所定のタイミングで蓄積記憶されているAM情報DRAMログをAM情報に反映させるとともにAM情報DRAMログをNANDメモリにAM情報NANDログとして蓄積記憶させるように構成したので、第1の実施の形態と同様の効果を得ることができる。
以上の説明においては、コミット依頼通知部221はコミット依頼通知を発行し、第4のコミット処理のトリガとしてこのコミット依頼通知を使用するように説明したが、AM情報は実質的に第3のコミット処理でも不揮発化されるので、コミット依頼通知部221を省略した構成とすることも可能である。
(第3の実施の形態)
図9は、SSD100を搭載したパーソナルコンピュータ1000の一例を示す斜視図である。パーソナルコンピュータ1000は、本体1001、及び表示ユニット1002を備えている。表示ユニット1002は、ディスプレイハウジング1003と、このディスプレイハウジング1003に収容された表示装置1004とを備えている。
図9は、SSD100を搭載したパーソナルコンピュータ1000の一例を示す斜視図である。パーソナルコンピュータ1000は、本体1001、及び表示ユニット1002を備えている。表示ユニット1002は、ディスプレイハウジング1003と、このディスプレイハウジング1003に収容された表示装置1004とを備えている。
本体1001は、筐体1005と、キーボード1006と、ポインティングデバイスであるタッチパッド1007とを備えている。筐体1005内部には、メイン回路基板、ODD(optical disk device)ユニット、カードスロット、及びSSD100等が収容されている。
カードスロットは、筐体1005の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部1008が設けられている。ユーザは、この開口部1008を通じて筐体1005の外部から追加デバイスをカードスロットに挿抜することが可能である。
SSD100は、従来のHDDの置き換えとして、パーソナルコンピュータ1000内部に実装された状態として使用してもよいし、パーソナルコンピュータ1000が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。
図10は、SSDを搭載したパーソナルコンピュータのシステム構成例を示している。パーソナルコンピュータ1000は、CPU1101、ノースブリッジ1102、主メモリ1103、ビデオコントローラ1104、オーディオコントローラ1105、サウスブリッジ1109、BIOS−ROM1110、SSD100、ODDユニット1111、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)1112、及びネットワークコントローラ1113等を備えている。
CPU1101は、パーソナルコンピュータ1000の動作を制御するために設けられたプロセッサであり、SSD100から主メモリ1103にロードされるオペレーティングシステム(OS)を実行する。更に、ODDユニット1111が、装填された光ディスクに対して読出し処理及び書込み処理の少なくとも1つの処理の実行を可能にした場合に、CPU1101は、それらの処理の実行をする。
また、CPU1101は、BIOS−ROM1110に格納されたシステムBIOS(Basic Input Output System)も実行する。尚、システムBIOSは、パーソナルコンピュータ1000内のハードウェア制御のためのプログラムである。
ノースブリッジ1102は、CPU1101のローカルバスとサウスブリッジ1109との間を接続するブリッジデバイスである。ノースブリッジ1102には、主メモリ1103をアクセス制御するメモリコントローラも内蔵されている。
また、ノースブリッジ1102は、AGP(Accelerated Graphics Port)バス等を介してビデオコントローラ1104との通信、及びオーディオコントローラ1105との通信を実行する機能も有している。
主メモリ1103は、プログラムやデータを一時的に記憶し、CPU1101のワークエリアとして機能する。主メモリ1103は、例えばDRAMから構成される。
ビデオコントローラ1104は、パーソナルコンピュータ1000のディスプレイモニタとして使用される表示ユニット1002を制御するビデオ再生コントローラである。
オーディオコントローラ1105は、パーソナルコンピュータ1000のスピーカ1106を制御するオーディオ再生コントローラである。
サウスブリッジ1109は、LPC(Low Pin Count)バス1114上の各デバイス、及びPCI(Peripheral Component Interconnect)バス1115上の各デバイスを制御する。また、サウスブリッジ1109は、各種ソフトウェア及びデータを格納する記憶装置であるSSD100を、ATAインタフェースを介して制御する。
パーソナルコンピュータ1000は、セクタ単位でSSD100へのアクセスを行う。ATAインタフェースを介して、書き込みコマンド、読出しコマンド、フラッシュコマンド等がSSD100に入力される。
また、サウスブリッジ1109は、BIOS−ROM1110、及びODDユニット1111をアクセス制御するための機能も有している。
EC/KBC1112は、電力管理のためのエンベデッドコントローラと、キーボード(KB)1006及びタッチパッド1007を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。
このEC/KBC1112は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ1000の電源をON/OFFする機能を有している。ネットワークコントローラ1113は、例えばインターネット等の外部ネットワークとの通信を実行する通信装置である。
1 ホスト装置、2 ATAインタフェース、3 NANDメモリ、4 ドライブ制御回路、5 DRAM、103 プロセッサ、106 ATAコントローラ、107 NANDコントローラ、108 DRAMコントローラ、120、130 データマネージャー(データ管理機能部)、121、131 ATAマネージャー(ATAコマンド処理部)、200 DM情報、201 AM情報、202 DM情報DRAMログ、203 AM情報DRAMログ、204 スナップショットデータ、205 DM情報NANDログ、206 AM情報NANDログ、210 AM情報書き込み部、211 更新情報管理部、212 更新情報通知部、213 DM情報制御部、214 コミット実行部、215 スナップショット実行部、220 AM情報ログ書き込み部、221 コミット依頼通知部、224 コミット実行部、1000 パーソナルコンピュータ。
Claims (2)
- 揮発性の第1記憶部と、
不揮発性の第2記憶部と、
ホスト装置と第1記憶部との間のデータ転送を制御するホストインターフェース管理機能部および前記第1記憶部と前記第2記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、
を備えるメモリシステムにおいて、
前記第1記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、
前記第2記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、
前記ホストインターフェース管理機能部は、自メモリシステムのステータスに応じて前記ステータス領域に記憶されているステータス情報を更新するとともに、この更新による更新箇所を示す更新情報を前記データ管理機能部に通知し、
前記データ管理機能部は、前記ホストインターフェース管理機能部から更新情報が通知されたとき、前記通知された更新情報に基づいて前記ステータス領域から前記ステータス情報の更新前後の差分内容である差分情報を収集し、収集した差分情報を前記第2記憶部におけるバックアップ領域に蓄積記憶させる、
ことを特徴とするメモリシステム。 - 揮発性の第1記憶部と、
不揮発性の第2記憶部と、
ホスト装置とのデータ転送を制御するホストインターフェース管理機能部および前記第1記憶部を介して前記ホストインターフェース管理機能部と前記第2記憶部との間のデータ転送を制御するデータ管理機能部を備えるコントローラと、
を備えるメモリシステムにおいて、
前記第1記憶部に、前記ホストインターフェース管理機能部が更新管理する前記ホスト装置に通知するためのステータス情報を記憶するステータス領域を確保し、
前記第2記憶部に、前記ステータス情報のバックアップを記憶するバックアップ領域を確保し、
前記ホストインターフェース管理機能部は、前記ステータス領域に記憶されているステータス情報と自メモリシステムの各時点におけるステータスとの差分内容である差分情報を前記ステータス領域に蓄積記憶させ、
前記データ管理機能部は、所定のタイミングで前記ステータス領域に蓄積記憶された差分情報を前記ステータス領域におけるステータス情報に反映させるとともに前記差分情報を前記バックアップ記憶部に蓄積記憶させる、
ことを特徴とするメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009030298A JP2010186341A (ja) | 2009-02-12 | 2009-02-12 | メモリシステム |
US12/563,624 US8370587B2 (en) | 2009-02-12 | 2009-09-21 | Memory system storing updated status information and updated address translation information and managing method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009030298A JP2010186341A (ja) | 2009-02-12 | 2009-02-12 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010186341A true JP2010186341A (ja) | 2010-08-26 |
Family
ID=42541342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009030298A Pending JP2010186341A (ja) | 2009-02-12 | 2009-02-12 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8370587B2 (ja) |
JP (1) | JP2010186341A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506135A (zh) * | 2016-06-14 | 2017-12-22 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、装置及系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4675984B2 (ja) * | 2008-02-29 | 2011-04-27 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
IL208641A0 (en) * | 2010-10-12 | 2010-12-30 | Eci Telecom Ltd | Method for accelerating start up of a computerized system |
US9329965B2 (en) * | 2014-01-31 | 2016-05-03 | Hewlett Packard Enterprise Development Lp | Extracting log files from storage devices |
US9940046B2 (en) | 2015-11-27 | 2018-04-10 | Samsung Electronics Co., Ltd. | Semiconductor memory device with operation environment information storing circuit and command storing function |
US10241713B2 (en) | 2016-09-01 | 2019-03-26 | Red Hat Israel, Ltd. | Snapshot management with an external storage service |
US10649829B2 (en) * | 2017-07-10 | 2020-05-12 | Hewlett Packard Enterprise Development Lp | Tracking errors associated with memory access operations |
KR102406666B1 (ko) * | 2017-09-20 | 2022-06-08 | 삼성전자주식회사 | 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 |
US11281483B2 (en) | 2019-10-16 | 2022-03-22 | International Business Machines Corporation | Preserving transient address translation information across a firmware assisted dump procedure |
US11880291B2 (en) | 2020-07-07 | 2024-01-23 | Micron Technology, Inc. | Monitoring and reporting a status of a memory device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63223946A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | デ−タメモリ方式 |
JP2007004271A (ja) * | 2005-06-21 | 2007-01-11 | Fuji Xerox Co Ltd | 半導体ディスク及び情報処理システム |
JP2007018399A (ja) * | 2005-07-11 | 2007-01-25 | Hitachi Ltd | 条件別スナップショット取得方法及びシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688835B2 (ja) | 1996-12-26 | 2005-08-31 | 株式会社東芝 | データ記憶システム及び同システムに適用するデータ転送方法 |
US7721040B2 (en) * | 2007-01-18 | 2010-05-18 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP4675984B2 (ja) | 2008-02-29 | 2011-04-27 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
-
2009
- 2009-02-12 JP JP2009030298A patent/JP2010186341A/ja active Pending
- 2009-09-21 US US12/563,624 patent/US8370587B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63223946A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | デ−タメモリ方式 |
JP2007004271A (ja) * | 2005-06-21 | 2007-01-11 | Fuji Xerox Co Ltd | 半導体ディスク及び情報処理システム |
JP2007018399A (ja) * | 2005-07-11 | 2007-01-25 | Hitachi Ltd | 条件別スナップショット取得方法及びシステム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506135A (zh) * | 2016-06-14 | 2017-12-22 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、装置及系统 |
US10545808B2 (en) | 2016-06-14 | 2020-01-28 | Hangzhou Hikvision Digital Technology Co., Ltd. | Method, apparatus and system for processing data |
CN107506135B (zh) * | 2016-06-14 | 2022-05-06 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100205391A1 (en) | 2010-08-12 |
US8370587B2 (en) | 2013-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5376983B2 (ja) | メモリシステム | |
JP2010186341A (ja) | メモリシステム | |
US10936394B2 (en) | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device | |
US11119661B2 (en) | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device | |
US20200034304A1 (en) | Techniques to perform power fail-safe caching without atomic metadata | |
JP4205560B2 (ja) | ディスクレスネットワークブータブルコンピュータにおける不揮発性メモリキャッシュを用いた信頼性の改善 | |
JP5317690B2 (ja) | メモリシステム | |
JP5198245B2 (ja) | メモリシステム | |
TWI471726B (zh) | 快取資料與元資料之管理 | |
US8745443B2 (en) | Memory system | |
US20110167049A1 (en) | File system management techniques for computing environments and systems | |
US20060069848A1 (en) | Flash emulation using hard disk | |
JP2012128645A (ja) | メモリシステム | |
CN114063901A (zh) | Plp备份失败之后的ssd支持只读模式 | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
JP7318367B2 (ja) | ストレージ制御装置及びストレージ制御プログラム | |
JP5025670B2 (ja) | 情報処理装置およびデータ記憶装置 | |
JP2013174976A (ja) | メモリシステムおよび制御プログラムの更新方法 | |
JP2003122644A (ja) | 計算機及びその記憶装置 | |
JP2013174977A (ja) | メモリシステムおよびポインタ情報の更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130507 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131008 |