JP2013182283A - 記憶装置及び記憶方法 - Google Patents

記憶装置及び記憶方法 Download PDF

Info

Publication number
JP2013182283A
JP2013182283A JP2012043523A JP2012043523A JP2013182283A JP 2013182283 A JP2013182283 A JP 2013182283A JP 2012043523 A JP2012043523 A JP 2012043523A JP 2012043523 A JP2012043523 A JP 2012043523A JP 2013182283 A JP2013182283 A JP 2013182283A
Authority
JP
Japan
Prior art keywords
data
stored
power
control circuit
access control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012043523A
Other languages
English (en)
Other versions
JP5814825B2 (ja
Inventor
Tatsunori Tsujimura
達徳 辻村
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012043523A priority Critical patent/JP5814825B2/ja
Publication of JP2013182283A publication Critical patent/JP2013182283A/ja
Application granted granted Critical
Publication of JP5814825B2 publication Critical patent/JP5814825B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】蓄電池に蓄積された電力が十分でない場合でも、データが失われるのを防ぎ、信頼性を向上させる。
【解決手段】上位装置10から書込み指示を受けた場合、アクセス制御回路108(書込み制御部)は、指定されたデータをキャッシュメモリ103(不揮発記憶部)に記憶させる。キャッシュメモリ103に記憶させたデータのうち、まだフラッシュメモリ102に記憶させていないデータの量が、バッテリユニット115(蓄電池)に蓄積された電力の残量によって定まる閾値より多い場合、アクセス制御回路108(退避制御部)は、キャッシュメモリ103に記憶させたデータであって、まだフラッシュメモリ102に記憶させていないデータを、フラッシュメモリ102に記憶させる。
【選択図】図1

Description

この発明は、外部記憶装置などの記憶装置に関する。
半導体メモリや磁気ディスクなどの不揮発性の記憶部を用いた記憶装置において、アクセス速度の向上などを目的として、キャッシュメモリなどの揮発性の記憶部が設けられる場合がある。
例えば、不揮発性の記憶部から読み出したデータを、揮発性の記憶部に記憶しておき、同じデータに対する読出しがあった場合、揮発性の記憶部からデータを読み出す。
あるいは、不揮発性の記憶部に書き込むデータを、不揮発性の記憶部にすぐに書き込むのではなく、揮発性の記憶部に一時的に記憶しておく。記憶装置は、アクセスのないアイドル状態になったとき、揮発性の記憶部に記憶しておいたデータを、不揮発性の記憶部に書き込む。
揮発性の記憶部は、停電などによって電源を失うと、記憶しているデータが消えてしまう場合がある。このため、停電時のバックアップ用のバッテリなどを設け、バッテリからの電源がある間に、不揮発性の記憶部に書き込まなければならないデータの書き込みなどの処理をする。
特開平9−330277号公報 特開2010−152747号公報
しかし、停電が頻発するなどしてバッテリが十分に充電されてない場合や、経年劣化などによってバッテリの容量が少なくなった場合は、バッテリからの電源がある間に、必要な処理を終えることができず、その結果として、データが失われる可能性がある。
この発明は、例えば、バッテリなどの蓄電池に蓄積された電力が十分でない場合でも、データが失われるのを防ぎ、信頼性を向上させることを目的とする。
この発明にかかる記憶装置は、
蓄電池から得た電力により動作する記憶装置において、
データを記憶する不揮発記憶部と、データを記憶する揮発記憶部と、書込み制御部と、退避制御部とを有し、
上記書込み制御部は、指定したデータを上記不揮発記憶部に記憶させることを指示する書込み指示を上位装置から受けた場合、上記書込み指示によって指定されたデータを上記揮発記憶部に記憶させ、
上記退避制御部は、上記書込み制御部が上記揮発記憶部に記憶させたデータのうち、上記不揮発記憶部に記憶させていないデータの量が、上記蓄電池に充電されている電力の残量によって定まる閾値より多い場合、上記書込み制御部が上記揮発記憶部に記憶させたデータであって上記不揮発記憶部に記憶させていないデータのうち少なくとも一部のデータを、上記不揮発記憶部に記憶させることを特徴とする。
この発明にかかる記憶装置によれば、例えば、バッテリなどの蓄電池に蓄積された電力が十分でない場合でも、データが失われるのを防ぎ、信頼性を向上させることができる。
実施の形態1における記憶装置100の構成の一例を示す構成図。 実施の形態1における記憶装置100の動作の流れの一例を示すフロー図。 実施の形態1における読出し処理S60の流れの一例を示すフロー図。 実施の形態1における書込み処理S70の流れの一例を示すフロー図。 実施の形態1における平常退避処理S80の流れの一例を示すフロー図。 実施の形態1における停電退避処理S90の流れの一例を示すフロー図。 実施の形態1におけるバッテリユニット115に蓄積された電力の残量と、フラッシュメモリ102に書き戻すべきページ数との関係の一例を示す図。 実施の形態2における書込み処理S70の流れの一例を示すフロー図。 実施の形態3における記憶装置100の動作の流れの一例を示すフロー図。 実施の形態3における停電退避処理S90の流れの一例を示すフロー図。 実施の形態3におけるバッテリユニット115に蓄積された電力の残量と、フラッシュメモリ102に書き戻すべきページ数との関係の一例を示す図。 実施の形態4における記憶装置100の動作の流れの一例を示すフロー図。
実施の形態1.
実施の形態1について、図1〜図7を用いて説明する。
図1は、この実施の形態における記憶装置100の構成の一例を示す構成図である。
記憶装置100は、データを記憶する外部記憶装置である。記憶装置100は、例えば、ホストコンピュータなどの上位装置10からの書込み指示にしたがって、上位装置10から送られたデータを、指定されたアドレスに記憶する。あるいは、上位装置10からの読出し指示にしたがって、指定されたアドレスに記憶したデータを読み出して、上位装置10に対して通知する。
記憶装置100は、例えば商用電源などの外部電源20から供給される電力によって動作する。
記憶装置100は、例えば、フラッシュメモリ102と、キャッシュメモリ103と、アクセス制御回路108と、電源装置110とを有する。
フラッシュメモリ102は、不揮発性の半導体メモリである。フラッシュメモリ102は、不揮発記憶部の一例である。フラッシュメモリ102は、複数のデータを記憶する。フラッシュメモリ102がデータを記憶する領域には、それぞれ、その領域を識別するアドレスが割り振られている。また、フラッシュメモリ102がデータを記憶する領域は、複数のページに分けられている。
フラッシュメモリ102は、アクセス制御回路108とデータバスなどによって接続されている。フラッシュメモリ102は、アクセス制御回路108からの指示にしたがって、指定されたページのデータを読み出し、あるいは、指定されたページにデータを書き込むことができる。フラッシュメモリ102からのデータ読出しや、フラッシュメモリ102へのデータ書込みは、ページ単位で行われる。
キャッシュメモリ103は、揮発性の半導体メモリである。キャッシュメモリ103は、揮発記憶部の一例である。キャッシュメモリ103は、複数のデータを記憶する。キャッシュメモリ103がデータを記憶する領域の大きさは、フラッシュメモリ102よりも小さい。すなわち、キャッシュメモリ103は、フラッシュメモリ102よりも少ない数のデータを記憶する。
キャッシュメモリ103は、アクセス制御回路108とデータバスなどによって接続されている。キャッシュメモリ103は、アクセス制御回路108からの指示にしたがって、指定されたアドレスのデータを読み出し、あるいは、指定されたアドレスにデータを書き込むことができる。キャッシュメモリ103が記憶しているデータを読み出すのにかかる時間は、フラッシュメモリ102が記憶しているデータを読み出すのにかかる時間より短い。また、キャッシュメモリ103にデータを記憶させるのにかかる時間は、フラッシュメモリ102にデータを記憶させるのにかかる時間よりも短い。
アクセス制御回路108は、フラッシュメモリ102やキャッシュメモリ103が記憶しているデータを管理する。アクセス制御回路108は、上位装置10とデータバスなどによって接続されている。アクセス制御回路108は、上位装置10からの指示(アクセス要求)にしたがって、データを読み出したり、データを書き込んだりする。アクセス制御回路108は、読出し制御部及び書込み制御部及び退避制御部の一例である。
例えば、上位装置10から読出し指示(リード)を受けた場合、アクセス制御回路108は、フラッシュメモリ102からデータを読み出して、上位装置10に対して通知する。アクセス制御回路108は、フラッシュメモリ102から読み出したデータをキャッシュメモリ103に記憶させる。上位装置10から同じアドレスのデータに対する読出し指示を受けた場合、アクセス制御回路108は、フラッシュメモリ102ではなく、キャッシュメモリ103からデータを読み出して、上位装置10に対して通知する。これにより、データの読出しにかかる時間を短縮する。
あるいは、上位装置10から書込み指示(ライト)を受けた場合、アクセス制御回路108は、指定されたデータをフラッシュメモリ102ではなくキャッシュメモリ103に記憶させる。これにより、データの書込みにかかる時間を短縮する。アクセス制御回路108は、その後の適切な時期に、キャッシュメモリ103に記憶させたデータを読み出して、フラッシュメモリ102に記憶させる。
電源装置110は、フラッシュメモリ102やキャッシュメモリ103やアクセス制御回路108に対して、動作に必要な電力を供給する。
電源装置110は、外部電源20から供給された電力を変換して、アクセス制御回路108などに対して供給する。例えば、外部電源20から供給された交流電力を、直流電力に変換する。
電源装置110は、例えば、電源回路114と、バッテリユニット115と、スイッチ回路116と、電源残量チェック回路117とを有する。
電源回路114は、外部電源20から供給された電力を、アクセス制御回路108などに対して供給する電力に変換する。電源回路114は、外部電源20と給電ラインなどによって接続されている。電源回路114は、電力変換回路の一例である。
バッテリユニット115は、外部電源20から供給された電力を蓄積する。バッテリユニット115は、外部電源20と給電ラインなどによって接続されている。バッテリユニット115は、蓄電池の一例である。外部電源20からの電力供給が停止すると、バッテリユニット115は、蓄積した電力を放電して、アクセス制御回路108などに対して供給する電力を出力する。
スイッチ回路116は、外部電源20から電力が供給されているか否かに基づいて、アクセス制御回路108などに対して供給する電力の供給元を切り換える。スイッチ回路116は、電源回路114及びバッテリユニット115と給電ラインなどによって接続されている。
外部電源20から電力が供給されている場合には、電源回路114が出力した電力をアクセス制御回路108などに対して供給し、外部電源20から電力が供給されていない場合には、バッテリユニット115が出力した電力をアクセス制御回路108などに対して供給する。スイッチ回路116は、フラッシュメモリ102、キャッシュメモリ103、アクセス制御回路108などとも給電ラインなどによって接続されている。
更に、スイッチ回路116は、外部電源20から電力が供給されているか否か表わす信号(以下「供給元信号」と呼ぶ。)を出力する。スイッチ回路116は、供給元検出部の一例である。スイッチ回路116は、アクセス制御回路108と信号線などによって接続されている。スイッチ回路116が出力した供給元信号は、信号線などを介して、アクセス制御回路108に伝達される。
電源残量チェック回路117は、バッテリユニット115に蓄積されている電力の残量を検出する。電源残量チェック回路117は、電力残量検出部の一例である。電源残量チェック回路117は、検出した残量を表わす信号(以下「電力残量信号」と呼ぶ。)を出力する。電源残量チェック回路117は、アクセス制御回路108と信号線などによって接続されている。電源残量チェック回路117が出力した電力残量信号は、信号線などを介して、アクセス制御回路108に伝達される。
停電などにより外部電源20からの電力供給が途絶えた場合、電源装置110は、バッテリユニット115に蓄積した電力を使って、ある程度の時間、アクセス制御回路108などに対する電力の供給を続ける。キャッシュメモリ103は、揮発性であるため、電源を失うと記憶しているデータが消えてしまう。電源装置110からの電力供給が続いている間に、アクセス制御回路108は、キャッシュメモリ103に記憶させただけで、フラッシュメモリ102にまだ記憶させていないデータを、フラッシュメモリ102に記憶させる。キャッシュメモリ103は、不揮発性であるため、電源を失っても記憶しているデータは消えない。これにより、データの損失を防ぐ。
ただし、バッテリユニット115にまだ十分な電力が蓄積されていない場合、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていない(ライトデータ属性の)データの数(カウント)が多いと、すべてのデータをフラッシュメモリ102に記憶させ終わる前に、バッテリユニット115に蓄積された電力を使い果たす可能性がある。
これを防ぐため、アクセス制御回路108は、あらかじめ、電源残量チェック回路117が検出した電力残量に基づいて、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータの量の上限(閾値)を定める。キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータの量が上限を超えた場合、アクセス制御回路108は、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータのうち少なくとも一部をフラッシュメモリ102に記憶させ、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータの量を減らす。
これにより、外部電源20からの電力供給が途絶えた時点で、バッテリユニット115に蓄積されている電力で、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないすべてのデータを、フラッシュメモリ102に記憶させることができる。
このため、バッテリユニット115にまだ十分な電力が蓄積されていない状態で、外部電源20からの電力供給が停止した場合でも、データの損失を防ぐことができる。
図2は、この実施の形態における記憶装置100の動作の流れの一例を示すフロー図である。
記憶装置100は、例えば、供給元判定工程S51と、指示受付工程S52と、読出し処理S60と、書込み処理S70と、平常退避処理S80と、停電退避処理S90と、復旧待ち工程S53とを実行する。
供給元判定工程S51において、アクセス制御回路108(供給元取得部)は、スイッチ回路116が出力した供給元信号に基づいて、外部電源20から電力が供給されているか否かを判定する。
外部電源20から電力が供給されていると判定した場合、アクセス制御回路108は、指示受付工程S52へ処理を進める。
外部電源20からの電力供給が停止していて、内部の電源であるバッテリユニット115から電力が供給されていると判定した場合、アクセス制御回路108は、停電退避処理S90へ処理を進める。
指示受付工程S52において、アクセス制御回路108は、上位装置10からの指示を受け付ける。
上位装置10から読出し指示を受けた場合、アクセス制御回路108は、読出し処理S60へ処理を進める。
上位装置10から書込み指示を受けた場合、アクセス制御回路108は、書込み処理S70へ処理を進める。
上位装置10から読出し指示も書き込み指示も受けず、アイドル状態である場合、アクセス制御回路108は、平常退避処理S80へ処理を進める。
読出し処理S60において、アクセス制御回路108(読出し制御部)は、読出し指示によって指定されたデータをフラッシュメモリ102やキャッシュメモリ103から読み出して、上位装置10に対して通知する。
アクセス制御回路108は、供給元判定工程S51に処理を戻す。
書込み処理S70において、アクセス制御回路108(書込み制御部)は、書込み指示によって指定されたデータをフラッシュメモリ102やキャッシュメモリ103に記憶させる。
アクセス制御回路108は、供給元判定工程S51に処理を戻す。
平常退避処理S80において、アクセス制御回路108(退避制御部)は、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータを、フラッシュメモリ102に記憶させる。
アクセス制御回路108は、供給元判定工程S51に処理を戻す。
停電退避処理S90において、アクセス制御回路108(退避制御部)は、キャッシュメモリ103に記憶させただけでフラッシュメモリ102にまだ記憶させていないデータを、すべて、フラッシュメモリ102に記憶させる。
復旧待ち工程S53において、アクセス制御回路108は、スイッチ回路116が出力した供給元信号を監視して、外部電源20からの電力供給が復旧するのを待つ。
外部電源20からの電力供給が復旧した場合、アクセス制御回路108は、供給元判定工程S51に処理を戻す。
外部電源20からの電力供給が復旧せず、バッテリユニット115に蓄積した電力を使い果たした場合、記憶装置100は、動作を停止する。
図3は、この実施の形態における読出し処理S60の流れの一例を示すフロー図である。
読出し処理S60は、例えば、キャッシュ判定工程S61と、キャッシュ読出し工程S62と、データ通知工程S63と、フラッシュ読出し工程S64と、データ通知工程S65と、キャッシュ書込み工程S66とを有する。
キャッシュ判定工程S61において、アクセス制御回路108は、読出し指示で指定されたデータを、キャッシュメモリ103が記憶しているか否かを判定する。
例えば、読出し指示は、読み出すべきデータをフラッシュメモリ102が記憶した記憶領域のアドレスを含む。キャッシュメモリ103の記憶領域は、フラッシュメモリ102の記憶領域のページ単位に分割された複数のページ記憶領域と、それぞれのページ記憶領域に対応づけられたページ番号記憶領域及び変更フラグ記憶領域及びアクセス日時記憶領域とに分けられている。ページ記憶領域は、フラッシュメモリ102のいずれかのページに対応するデータを記憶する。ページ番号記憶領域は、対応づけられたページ記憶領域に記憶されたデータが、フラッシュメモリ102のどのページに対応するデータであるかを表わすページ番号を記憶する。変更フラグ記憶領域は、対応づけられたページ記憶領域に記憶されたデータが、フラッシュメモリ102の対応するページに記憶されたデータと一致しているか否かを表わす変更フラグ(データ属性)を記憶する。アクセス日時記憶領域は、対応づけられたページ記憶領域に記憶されたデータに、上位装置10が最後にアクセス(読出しあるいは書込み)した日時を表わすアクセス日時を記憶する。アクセス日時記憶領域が記憶するアクセス日時は、データにアクセスした順序がわかればよいので、正確な時刻である必要はなく、例えば、アクセスがあるたびにカウントアップするカウンタの値であってもよい。
アクセス制御回路108は、読出し指示で指定されたアドレスから、そのアドレスのデータを含むページのページ番号を算出する。アクセス制御回路108は、キャッシュメモリ103のページ番号記憶領域を検索して、算出したページ番号を探す。
そのページ番号がページ番号記憶領域にない場合、読出し指示で指定されたデータを、キャッシュメモリ103が記憶していない。アクセス制御回路108は、フラッシュ読出し工程S64へ処理を進める。
そのページ番号がページ番号記憶領域にある場合、読出し指示で指定されたデータを、キャッシュメモリ103が記憶している。アクセス制御回路108は、キャッシュ読出し工程S62へ処理を進める。
キャッシュ読出し工程S62において、アクセス制御回路108は、キャッシュメモリ103のページ記憶領域から、読出し指示で指定されたデータを読み出す。アクセス制御回路108は、対応するアクセス日時記憶領域に、現在時刻を記憶させる。
データ通知工程S63において、アクセス制御回路108は、キャッシュ読出し工程S62で読み出したデータを、上位装置10に対して通知する。
アクセス制御回路108は、読出し処理S60を終了する。
フラッシュ読出し工程S64において、アクセス制御回路108は、フラッシュメモリ102の記憶領域のうち、読出し指示で指定されたデータを含むページから、データを読み出す。
データ通知工程S65において、アクセス制御回路108は、フラッシュ読出し工程S64で読み出したデータのなかから、読出し指示で指定されたデータを、上位装置10に対して通知する。
キャッシュ書込み工程S66において、アクセス制御回路108(揮発管理部)は、フラッシュ読出し工程S64で読み出したデータを、キャッシュメモリ103に記憶させる。
例えば、アクセス制御回路108は、キャッシュメモリ103のページ記憶領域のなかから、フラッシュ読出し工程S64で読み出したデータを記憶させるページ記憶領域を選択する。
キャッシュメモリ103のページ記憶領域のなかに、まだデータを記憶していないページ記憶領域があれば、アクセス制御回路108は、そのページ記憶領域を選択する。
キャッシュメモリ103のページ記憶領域がすべて、データを記憶している場合、アクセス制御回路108は、アクセス日時記憶領域に記憶されたアクセス日時に基づいて、選択するページ記憶領域を決定する。例えば、アクセス制御回路108は、アクセス日時が最も古いページ記憶領域を選択する。
選択したページ記憶領域に記憶されたデータと、対応するフラッシュメモリ102のページに記憶されたデータとが同じであれば、選択したページ記憶領域に記憶されたデータを破棄して、新しくキャッシュメモリ103から読み出したデータを記憶させることができる。しかし、選択したページ記憶領域に記憶されたデータと、対応するフラッシュメモリ102のページに記憶されたデータとが異なる場合は、新しくキャッシュメモリ103から読み出したデータを記憶させる前に、選択したページ記憶領域に記憶されたデータを、対応するフラッシュメモリ102のページに書き戻す必要がある。
アクセス制御回路108は、選択したページ記憶領域に対応づけられた変更フラグ記憶領域に記憶された変更フラグに基づいて、フラッシュメモリ102の選択したページ記憶領域が記憶したデータとキャッシュメモリ103の対応するページが記憶したデータとが一致しているか否かを判定する。一致していないと判定した場合、アクセス制御回路108は、選択したページ記憶領域に記憶されたデータを、フラッシュメモリ102の記憶領域のうち、そのページ記憶領域に対応づけられたページ番号記憶領域に記憶されたページ番号によって表わされるページに記憶させる。これで、選択したページ記憶領域に新しいデータを記憶させることができるようになる。
アクセス制御回路108は、キャッシュメモリ103の選択したページ記憶領域に、フラッシュ読出し工程S64で読み出したデータを記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられたアクセス日時記憶領域に、現在時刻を記憶させる。
図4は、この実施の形態における書込み処理S70の流れの一例を示すフロー図である。
書込み処理S70は、例えば、キャッシュ判定工程S71と、キャッシュ書き換え工程S72と、フラッシュ読出し工程S73と、キャッシュ書込み工程S74と、残量判定工程S75と、フラッシュ書込み工程S76とを有する。
キャッシュ判定工程S71において、アクセス制御回路108は、書込み指示で指定されたデータを記憶させるページを、キャッシュメモリ103が記憶しているか否かを判定する。
例えば、書込み指示は、書き込むべきデータと、そのデータを書き込むべきフラッシュメモリ102の記憶領域のアドレスとを含む。
アクセス制御回路108は、書込み指示で指定されたアドレスから、そのアドレスを含むページのページ番号を算出する。アクセス制御回路108は、キャッシュメモリ103のページ番号記憶領域を検索して、算出したページ番号を探す。
そのページ番号がページ番号記憶領域にない場合、アクセス制御回路108は、フラッシュ読出し工程S73へ処理を進める。
そのページ番号がページ番号記憶領域にある場合、アクセス制御回路108は、キャッシュ書き換え工程S72へ処理を進める。
キャッシュ書き換え工程S72において、アクセス制御回路108は、そのページ番号記憶領域に対応づけられたページ記憶領域の、書込み指示で指定されたアドレスに対応する記憶領域に、書込み指示で指定されたデータを記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられたアクセス日時記憶領域に、現在時刻を記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なることを表わす値(例えば「1」)を記憶させる。
アクセス制御回路108は、残量判定工程S75へ処理を進める。
フラッシュ読出し工程S73において、アクセス制御回路108は、フラッシュメモリ102の記憶領域のうち、キャッシュ判定工程S61で算出したページ番号によって表わされるページから、データを読み出す。なお、書込み指示がページ全体にデータを書き込むことを指示するものである場合には、フラッシュ読出し工程S73は、省略可能である。
キャッシュ書込み工程S74において、アクセス制御回路108は、フラッシュ読出し工程S73が読み出したデータのうち、書込み指示で指定されたアドレスに対応するデータを、書込み指示で指定されたデータに書き換える。アクセス制御回路108は、書き換えたデータを、キャッシュメモリ103のページ記憶領域に記憶させる。なお、アクセス制御回路108(揮発管理部)は、キャッシュ書込み工程S66と同様、必要なら、キャッシュメモリ103のページ記憶領域に記憶されたデータを、フラッシュメモリ102に書き戻して、キャッシュメモリ103のページ記憶領域に空きを作り、空けたページ記憶領域にデータを記憶させる。
アクセス制御回路108は、データを記憶させたページ記憶領域に対応づけられたページ番号記憶領域に、キャッシュ判定工程S61で算出したページ番号を記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なることを表わす値(例えば「1」)を記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられたアクセス日時記憶領域に、現在時刻を記憶させる。
残量判定工程S75において、アクセス制御回路108(電力残量取得部)は、電源残量チェック回路117が出力した電力残量信号に基づいて、バッテリユニット115に蓄積された電力の残量を取得する。アクセス制御回路108は、取得した残量と、所定の閾値とを比較する。
バッテリユニット115に蓄積された電力が閾値より多いと判定した場合、アクセス制御回路108は、書込み処理S70を終了する。
バッテリユニット115に蓄積された電力が閾値より少ないと判定した場合、アクセス制御回路108は、フラッシュ書込み工程S76へ処理を進める。
フラッシュ書込み工程S76において、アクセス制御回路108は、キャッシュ書込み工程S74でキャッシュメモリ103のページ記憶領域に記憶させたデータを、フラッシュメモリ102の記憶領域のうち、キャッシュ判定工程S71で算出したページ番号によって表わされるページに記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。
このように、バッテリユニット115に蓄積された電力が少ない場合は、書込み指示を受けたデータをすぐにフラッシュメモリ102に書き込む。
これにより、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なるページの数が増えないので、バッテリユニット115にまだ十分な電力が蓄積されていない状態で、外部電源20からの電力供給が停止した場合でも、データの損失を防ぐことができる。
図5は、この実施の形態における平常退避処理S80の流れの一例を示すフロー図である。
平常退避処理S80は、例えば、残数判定工程S81と、フラッシュ書込み工程S82とを有する。
残数判定工程S81において、アクセス制御回路108は、フラッシュメモリ102の変更フラグ記憶領域を参照して、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数を数える。
アクセス制御回路108(電力残量取得部)は、電源残量チェック回路117が出力した電源残量信号に基づいて、バッテリユニット115に蓄積された電力の残量を取得する。アクセス制御回路108は、取得した残量から、ページ数の上限値(閾値)を算出する。例えば、アクセス制御回路108は、1ページ分のデータを、キャッシュメモリ103から読み出してフラッシュメモリ102に記憶させる処理に必要な電力で、バッテリユニット115に蓄積された電力の残量を割った商を算出して、ページ数の上限値とする。あるいは、確実性を高めるため、アクセス制御回路108は、算出した商から所定の値(0より大きい実数)を差し引いた値をページ数の上限値とする構成であってもよいし、あるいは、算出した商に所定の値(0より大きく1より小さい実数)を乗じた値をページ数の上限値とする構成であってもよい。なお、算出した値が負になった場合、アクセス制御回路108は、0を上限値とする。
アクセス制御回路108は、数えたページ数と、算出した上限値とを比較する。
ページ数が上限値以内である場合、アクセス制御回路108は、平常退避処理S80を終了する。
ページ数が上限値を超えている場合、アクセス制御回路108は、フラッシュ書込み工程S82へ処理を進める。
フラッシュ書込み工程S82において、アクセス制御回路108は、キャッシュメモリ103のページ記憶領域のなかから、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域を1つ選択する。例えば、アクセス制御回路108は、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域のなかから、アクセス日時がもっとも古いページ記憶領域を選択する。
アクセス制御回路108は、キャッシュメモリ103の選択したページ記憶領域に記憶されたデータを読み出す。アクセス制御回路108は、そのページ記憶領域に対応づけられたページ番号記憶領域に記憶されたページ番号に基づいて、読み出したデータをフラッシュメモリ102の対応するページに記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。
この例における平常退避処理S80では、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が1つしか減らないが、上位装置10からの指示がないアイドル状態が続いていれば、アクセス制御回路108は、平常退避処理S80を繰り返し実行するので、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数は、上限値以内になる。
なお、1回の平常退避処理S80で、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が上限値以下となるよう、フラッシュ書込み工程S82で複数のページ記憶領域を選択する構成であってもよい。
このように、バッテリユニット115に蓄積された電力が少ない場合は、それに比例して、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数の上限値を減らす。これにより、バッテリユニット115にまだ十分な電力が蓄積されていない状態で、外部電源20からの電力供給が停止した場合でも、データの損失を防ぐことができる。
図6は、この実施の形態における停電退避処理S90の流れの一例を示すフロー図である。
停電退避処理S90は、例えば、残数判定工程S91と、フラッシュ書込み工程S92とを有する。
残数判定工程S91において、アクセス制御回路108は、フラッシュメモリ102の変更フラグ記憶領域を参照して、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページがあるか否かを判定する。
フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページがあると判定した場合、アクセス制御回路108は、フラッシュ書込み工程S92へ処理を進める。
フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページがないと判定した場合、アクセス制御回路108は、停電退避処理S90を終了する。
フラッシュ書込み工程S92において、アクセス制御回路108は、キャッシュメモリ103のページ記憶領域のなかから、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域をすべて選択する。
アクセス制御回路108は、キャッシュメモリ103の選択したページ記憶領域に記憶されたデータを読み出す。アクセス制御回路108は、それぞれのページ記憶領域に対応づけられたページ番号記憶領域に記憶されたページ番号に基づいて、読み出したデータをフラッシュメモリ102の対応するページに記憶させる。アクセス制御回路108は、それぞれのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。
このように、外部電源20からの電力供給が停止した場合、フラッシュメモリ102が記憶したデータのうち、キャッシュメモリ103が記憶しているデータと異なるデータをキャッシュメモリ103に書き戻す。停電になる前に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なるページの数を、バッテリユニット115に蓄積された電力で、書き戻し可能なページ数以下に抑えてあるので、バッテリユニット115に蓄積された電力を使い果たす前に、すべてのデータを書き戻すことができる。これにより、データの損失を防ぐことができる。
図7は、この実施の形態におけるバッテリユニット115に蓄積された電力の残量と、フラッシュメモリ102に書き戻すべきページ数との関係の一例を示す図である。
横軸は、バッテリユニット115に蓄積された電力の残量を示す。縦軸は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっていて、キャッシュメモリ103が記憶しているデータをフラッシュメモリ102に記憶させる必要があるページの数を示す。
実線41は、バッテリユニット115に蓄積された電力で、フラッシュメモリ102に書き戻すことができるページ数の最大値を表わす。破線42は、アクセス制御回路108が平常退避処理S80で算出する上限ページ数を表わす。細破線43は、アクセス制御回路108が書込み処理S70で用いる電力の閾値を表わす。網掛け44は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数を表わし、網が荒いほど、その確率が低いことを表わす。
アクセス制御回路108がアイドル状態になって平常退避処理S80を実行すると、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数は、破線42で示した上限ページ数以下になる。
バッテリユニット115に蓄積された電力が、細破線43で示した閾値より少ない場合(すなわち、細破線43よりも左側)、アクセス制御回路108が書込み処理S70を実行しても、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数は増えないので、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数は、常に、破線42で示した上限ページ数以下である。
バッテリユニット115に蓄積された電力が、細破線43で示した閾値より多い場合(すなわち、細破線43よりも右側)、アクセス制御回路108が書込み処理S70を実行すると、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数が増える場合がある。
このため、アクセス制御回路108がアイドル状態になって平常退避処理S80を実行するまでの間は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数が、破線42で示した上限ページ数を超える可能性がある。
しかし、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数と上限ページ数との差が大きいほど、その確率は低くなるので、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数が、実線41で示した最大ページ数を超える可能性は非常に低く、無視できる。
なお、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なってるページの数が、実線41で示した最大ページ数を超える可能性を完全に0にしたければ、実線41で示した最大ページ数が、キャッシュメモリ103のページ記憶領域が記憶できるページ数を超える点45よりも、細破線43が右側になるように、閾値を設定すればよい。
この実施の形態における記憶装置100(半導体記憶装置)は、
データを記憶する不揮発性記憶部であるフラッシュメモリ102(不揮発記憶部)と、
ホストコンピュータなどの上位装置10からのアクセス速度を向上させるため参照頻度の高いデータを複写しておくキャッシュメモリ103(揮発記憶部)と、
外部電源20からの給電を受ける電源回路114と、
停電時に電力を一時的に供給するバッテリユニット115(蓄電池)と、
電源回路114の給電を受けて、フラッシュメモリ102等に給電し、更に、停電により、外部電源20と電源回路114からの給電が停止した場合はバッテリユニット115から給電するスイッチ回路116と、
バッテリユニット115の残電力量を監視して通知する電源残量チェック回路117と、
電源残量チェック回路117から残電力量の通知を受けて、上位装置10からのデータ書込み先を、残電力量が無い場合はフラッシュメモリ102、有る場合はキャッシュメモリ103に切り換えるとともに、残電力量に応じて、キャッシュメモリ103上のデータをフラッシュメモリ102に退避するアクセス制御回路108とで構成される。
バッテリユニット115の残電力量を監視し、上位装置10からのデータ書込み先を、残電力量が無い場合はフラッシュメモリ102、有る場合はキャッシュメモリ103に切り換えるとともに、残電力量に応じて、キャッシュメモリ103上のデータをフラッシュメモリ102に退避する。これにより、停電が短時間に連続して発生し、バッテリユニット115の残電力量が無い場合は、キャッシュメモリ103上にデータを蓄積しないので、データ保持の信頼性が向上する。
実施の形態2.
実施の形態2について、図8を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
図8は、この実施の形態における書込み処理S70の流れの一例を示すフロー図である。
書込み処理S70は、実施の形態1で説明した工程のうち、残量判定工程S75がなく、その代わりとして、残数判定工程S77を有する。
アクセス制御回路108は、キャッシュ書き換え工程S72あるいはキャッシュ書込み工程S74が終了すると、残数判定工程S77へ処理を進める。
残数判定工程S77において、アクセス制御回路108(退避制御部)は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数を数える。アクセス制御回路108は、バッテリユニット115に蓄積された電力の残量に基づいて、ページ数の上限値を算出する。ここで算出する上限値は、平常退避処理S80における残数判定工程S81で算出する上限値と同じ値である。アクセス制御回路108は、数えたページ数と、算出した上限値とを比較する。
ページ数が上限以内である場合、アクセス制御回路108は、書込み処理S70を終了する。
ページ数が上限を超えている場合、アクセス制御回路108は、フラッシュ書込み工程S76へ処理を進める。
フラッシュ書込み工程S76において、アクセス制御回路108(退避制御部)は、キャッシュメモリ103のページ記憶領域のなかから、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域を1つ選択する。例えば、平常退避処理S80におけるフラッシュ書込み工程S82と同様、アクセス制御回路108は、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域のなかから、アクセス日時がもっとも古いページ記憶領域を選択する。
アクセス制御回路108は、キャッシュメモリ103の選択したページ記憶領域に記憶されたデータを読み出し、フラッシュメモリ102の対応するページに記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。
なお、フラッシュ書込み工程S76において、アクセス制御回路108は、キャッシュ書き換え工程S72またはキャッシュ書込み工程S74でデータを記憶させたページ記憶領域を選択する構成であってもよい。
キャッシュ書き換え工程S72を実行することにより、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が増える。また、キャッシュ書込み工程S74を実行することにより、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページを書き戻したのであれば、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数は変わらず、そうでなければ、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が増える。
その結果として、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が、バッテリユニット115に蓄積された電力の残量から算出した上限値を超えた場合、アクセス制御回路108は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページを書き戻す。これにより、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数は、常に、上限値以下となる。
実施の形態3.
実施の形態3について、図9〜図11を用いて説明する。
なお、実施の形態1または実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
図9は、この実施の形態における記憶装置100の動作の流れの一例を示すフロー図である。
停電退避処理S90において、アクセス制御回路108は、バッテリユニット115が蓄積している電力の残量が少なければ、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページをすべて、キャッシュメモリ103に書き戻すが、バッテリユニット115が蓄積している電力の残量が多ければ、必ずしも、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページをすべてキャッシュメモリ103に書き戻さない。
フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページがまだ残っている場合、アクセス制御回路108は、供給元判定工程S51に処理を戻す。
フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページがなくなった場合、アクセス制御回路108は、復旧待ち工程S53へ処理を進める。
図10は、この実施の形態における停電退避処理S90の流れの一例を示すフロー図である。
残数判定工程S91において、アクセス制御回路108(退避制御部)は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数を数える。アクセス制御回路108は、バッテリユニット115に蓄積された電力の残量に基づいて、ページ数の上限値を算出する。ここで算出する上限値は、平常退避処理S80における残数判定工程S81で算出する上限値よりも少ない値である。アクセス制御回路108は、数えたページ数と、算出した上限値とを比較する。
ページ数が上限以内である場合、アクセス制御回路108は、停電退避処理S90を終了する。
ページ数が上限を超えている場合、アクセス制御回路108は、フラッシュ書込み工程S92へ処理を進める。
フラッシュ書込み工程S92において、アクセス制御回路108(退避制御部)は、キャッシュメモリ103のページ記憶領域のなかから、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域を1つ選択する。例えば、平常退避処理S80におけるフラッシュ書込み工程S82と同様、アクセス制御回路108は、フラッシュメモリ102の対応するページと異なるデータを記憶しているページ記憶領域のなかから、アクセス日時がもっとも古いページ記憶領域を選択する。
アクセス制御回路108は、キャッシュメモリ103の選択したページ記憶領域に記憶されたデータを読み出し、フラッシュメモリ102の対応するページに記憶させる。アクセス制御回路108は、そのページ記憶領域に対応づけられた変更フラグ記憶領域に、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが一致していることを表わす値(例えば「0」)を記憶させる。
この例における停電退避処理S90では、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が1つしか減らないが、バッテリユニット115からの電力供給がない停電状態が続いていれば、アクセス制御回路108は、停電退避処理S90を繰り返し実行するので、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数は、上限値以内になる。
なお、1回の停電退避処理S90で、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページの数が上限値以下となるよう、フラッシュ書込み工程S92で複数のページ記憶領域を選択する構成であってもよい。
図11は、この実施の形態におけるバッテリユニット115に蓄積された電力の残量と、フラッシュメモリ102に書き戻すべきページ数との関係の一例を示す図である。
破線46は、アクセス制御回路108が停電退避処理S90で算出する上限ページ数を表わす。停電退避処理S90で算出する上限ページ数は、破線42で示した平常退避処理S80で算出する上限ページ数よりも少ない。
例えば、アクセス制御回路108は、平常退避処理S80と同じ計算式で上限ページ数を算出し、算出した上限ページ数から所定の値(0より大きい実数。)を差し引いて、停電退避処理S90における上限ページ数とする。なお、算出した値が負になった場合、アクセス制御回路108は、0を上限ページ数とする。
アクセス制御回路108が算出する上限ページ数が0になる点47における電力残量よりも、バッテリユニット115に蓄積された電力の残量が少ない場合、アクセス制御回路108は、フラッシュメモリ102が記憶したデータとキャッシュメモリ103が記憶したデータとが異なっているページをすべて、フラッシュメモリ102に書き戻す。
これに対し、点47における電力残量よりもバッテリユニット115に蓄積された電力の残量が多い場合、アクセス制御回路108は、一部のデータをフラッシュメモリ102に書き戻し、一部のデータを書き戻さずに残す。これにより、短時間の停電ののち、バッテリユニット115からの電力供給が復旧した場合、記憶装置100は、通常の処理に素早く復帰することができる。
なお、バッテリユニット115からの電力供給がそのまま復旧しない場合、バッテリユニット115に蓄積された電力の残量が徐々に減っていく。バッテリユニット115が減ったことにより上限ページ数が下がれば、アクセス制御回路108は、その分のデータをフラッシュメモリ102に書き戻す。そして、上限ページ数が0になれば、アクセス制御回路108は、すべてのデータをフラッシュメモリ102に書き戻す。
実施の形態4.
実施の形態4について、図12を用いて説明する。
なお、実施の形態1〜実施の形態3と共通する部分については、同一の符号を付し、説明を省略する。
図12は、この実施の形態における記憶装置100の動作の流れの一例を示すフロー図である。
記憶装置100は、実施の形態1で説明した動作のうち、供給元判定工程S51を実行せず、その代わりとして、残量判定工程S54を実行する。
残量判定工程S54において、アクセス制御回路108(電力残量取得部)は、電源残量チェック回路117が出力した電力残量信号に基づいて、バッテリユニット115に蓄積された電力の残量を取得する。アクセス制御回路108は、取得した残量と、所定の閾値とを比較する。
バッテリユニット115に蓄積された電力の残量が閾値より多い場合、アクセス制御回路108は、指示受付工程S52へ処理を進める。
バッテリユニット115に蓄積された電力の残量が閾値より少ない場合、アクセス制御回路108は、停電退避処理S90へ処理を進める。
このように、外部電源20からの電力供給があるか否かによって、平常時の処理と、停電時の処理とを分けるのではなく、バッテリユニット115に蓄積された電力の残量が多いか少ないかによって、平常時の処理と、停電時の処理とを分ける。これにより、外部電源20からの電力供給が停止している場合でも、バッテリユニット115に蓄積された電力の残量が多ければ、記憶装置100は、上位装置10からの指示を受け付ける。
停電などにより、外部電源20からの電力供給が停止した場合でも、上位装置10は、無停電電源などにより動作を続けている場合がある。上位装置10は、上位装置10が記憶しているデータを退避するため、記憶装置100に対して書込み指示をする可能性がある。
記憶装置100は、外部電源20からの電力供給が停止した場合でも、バッテリユニット115に蓄積された電力に余裕があれば、上位装置10からの指示を受け付けるので、上位装置10が記憶しているデータの退避など、上位装置10が停電時に必要な処理をすることができる。
書込み処理S70における処理の流れは、実施の形態2で説明したものと同様なので、図8を参照して説明する。
残数判定工程S77において、アクセス制御回路108(退避制御部)は、アクセス制御回路108は、バッテリユニット115に蓄積された電力の残量と、外部電源20から電力が供給されているか否かとに基づいて、ページ数の上限値を算出する。
外部電源20からの電力供給が停止している場合、アクセス制御回路108は、ページ数の上限値を、外部電源20から電力が供給されている場合の上限値よりも小さい値とする。例えば、外部電源20から電力が供給されている場合は、実施の形態3で説明した残数判定工程S81において算出する上限値を使い、外部電源20からの電力供給が停止している場合は、実施の形態3で説明した残数判定工程S91において算出する上限値を使う。
平常退避処理S80の残数判定工程S81においても同様に、アクセス制御回路108は、外部電源20からの電力供給が停止している場合、外部電源20から電力が供給されている場合の上限値よりも小さい値を、ページ数の上限値とする。
このように、外部電源20からの電力供給が停止した場合でも、バッテリユニット115に蓄積された電力に余裕があれば、上位装置10からの指示を受け付けつつ、バッテリユニット115に蓄積された電力がいよいよ減ってきたときに書き戻さなければならないページ数を減らす。これにより、データ保持の信頼性が向上する。
なお、残数判定工程S77や残数判定工程S81において、外部電源20からの電力供給が停止している場合、アクセス制御回路108は、ページ数の上限値を「0」にする構成であってもよい。
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
例えば、電源装置110は、記憶装置100の一部ではなく、記憶装置100の外部に存在する構成であってもよい。
また、蓄電池は、バッテリユニット115ではなく、例えば電気二重層キャパシタなどのキャパシタ(コンデンサ)であってもよい。蓄電池は、電源装置110の一部ではなく、電源装置110の外部に存在する構成であってもよい。例えば、蓄電池は、電源装置110に着脱自在に接続される構成であってもよい。
また、キャッシュ書込み工程S66,S74で新たなデータを記憶させるページ記憶領域を選択する選択方式は、一例であり、他の選択方式であってもよい。
また、不揮発記憶部の記憶領域へのアクセスは、ページ単位ではなく、ビット単位、バイト単位、ワード単位、セクタ単位、クラスタ単位、トラック単位など他の単位であってもよい。
以上説明した記憶装置(100)は、蓄電池(バッテリユニット115)から得た電力により動作する。
上記記憶装置は、データを記憶する不揮発記憶部(フラッシュメモリ102)と、データを記憶する揮発記憶部(キャッシュメモリ103)と、書込み制御部(アクセス制御回路108)と、退避制御部(アクセス制御回路108)とを有する。
上記書込み制御部は、指定したデータを上記不揮発記憶部に記憶させることを指示する書込み指示を上位装置(10)から受けた場合、上記書込み指示によって指定されたデータを上記揮発記憶部に記憶させる。
上記退避制御部は、上記書込み制御部が上記揮発記憶部に記憶させたデータのうち、上記不揮発記憶部に記憶させていないデータの量が、上記蓄電池に充電されている電力の残量によって定まる閾値より多い場合、上記書込み制御部が上記揮発記憶部に記憶させたデータであって上記不揮発記憶部に記憶させていないデータのうち少なくとも一部のデータを、上記不揮発記憶部に記憶させる。
蓄電池に蓄積された電力の残量にしたがって、上限を超える量のデータをあらかじめ退避するので、蓄電池に蓄積された電力の残量が少ない場合でも、蓄電池から電力が供給されている間に、すべてのデータを退避することができる。
上記書込み制御部(108)は、上記蓄電池(115)に充電されている電力の残量が所定の閾値より少ない場合、上記書込み指示によって指定されたデータを上記不揮発記憶部(102)に記憶させる。
蓄電池に蓄積された電力の残量が少ない場合、まだ退避されていないデータの量が増えないので、蓄電池に蓄積された電力の残量が少ない場合でも、蓄電池から電力が供給されている間に、すべてのデータを退避することができる。
上記記憶装置(100)は、外部電源(20)から電力が供給されている場合、上記外部電源から供給された電力により動作し、上記外部電源から電力が供給されていない場合、上記蓄電池(115)から供給された電力により動作する。
上記退避制御部(108)は、上記外部電源から電力が供給されていない場合、上記書込み制御部(108)が上記揮発記憶部(103)に記憶させたデータのうち上記不揮発記憶部(102)に記憶させていないデータの量が多いか否かを判定するための上記閾値として、上記外部電源から電力が供給されている場合の閾値よりも小さい閾値を使う。
外部電源からの電力供給が停止している場合は、まだ退避されていないデータの量の上限値を小さくするので、蓄電池に蓄積された電力の残量が少ない場合でも、蓄電池から電力が供給されている間に、すべてのデータを退避することができる。
上記退避制御部(108)は、上記外部電源(20)から電力が供給されていない場合、上記書込み制御部(108)が上記揮発記憶部(103)に記憶させたデータのうち上記不揮発記憶部(102)に記憶させていないデータの量が多いか否かを判定するための上記閾値として、0を使う。
外部電源からの電力供給が停止している場合は、すべてのデータをあらかじめ退避するので、蓄電池に蓄積された電力の残量が少ない場合でも、蓄電池から電力が供給されている間に、すべてのデータを退避することができる。
上記読出し制御部(アクセス制御回路108)は、上記不揮発記憶部(102)が記憶したデータを読み出すことを指示する読出し指示を上記上位装置(10)から受けた場合、上記読出し指示によって指定されたデータを上記揮発記憶部(103)が記憶しているか否かを判定し、上記読出し指示によって指定されたデータを上記揮発記憶部が記憶していると判定した場合、上記読出し指示によって指定されたデータを上記揮発記憶部から取得して、上記上位装置に対して通知し、上記読出し指示によって指定されたデータを上記揮発記憶部が記憶していないと判定した場合、上記読出し指示によって指定されたデータを上記不揮発記憶部から取得して、上記上位装置に対して通知するとともに、上記揮発記憶部に記憶させる。
これにより、不揮発記憶部が記憶したデータの読出しにかかる時間を短縮することができる。
上記記憶装置(100)は、更に、電源装置(110)を有する。
上記電源装置は、外部電源(20)から電力が供給されている場合に、上記蓄電池(115)を充電し、上記外部電源から電力が供給されていない場合に、上記蓄電池を放電して、上記記憶装置を動作させる電力を得る。
外部電源からの電力供給が頻繁に停止するなどして蓄電池に十分な電力が蓄積されない場合や、経年劣化などにより蓄電池の容量が低下した場合であっても、蓄電池から電力が供給されている間に、すべてのデータを退避することができる。
10 上位装置、100 記憶装置、102 フラッシュメモリ、103 キャッシュメモリ、108 アクセス制御回路、110 電源装置、114 電源回路、115 バッテリユニット、116 スイッチ回路、117 電源残量チェック回路、20 外部電源、41 実線、42,46 破線、43 細破線、44 網掛け、45,47 点、S51 供給元判定工程、S52 指示受付工程、S53 復旧待ち工程、S54,S75 残量判定工程、S60 読出し処理、S61,S71 キャッシュ判定工程、S62 キャッシュ読出し工程、S63,S65 データ通知工程、S64,S73 フラッシュ読出し工程、S66,S74 キャッシュ書込み工程、S70 書込み処理、S72 キャッシュ書き換え工程、S76,S82,S92 フラッシュ書込み工程、S77,S81,S91 残数判定工程、S80 平常退避処理、S90 停電退避処理。

Claims (6)

  1. 蓄電池から得た電力により動作する記憶装置において、
    データを記憶する不揮発記憶部と、データを記憶する揮発記憶部と、書込み制御部と、退避制御部とを有し、
    上記書込み制御部は、指定したデータを上記不揮発記憶部に記憶させることを指示する書込み指示を上位装置から受けた場合、上記書込み指示によって指定されたデータを上記揮発記憶部に記憶させ、
    上記退避制御部は、上記書込み制御部が上記揮発記憶部に記憶させたデータのうち、上記不揮発記憶部に記憶させていないデータの量が、上記蓄電池に充電されている電力の残量によって定まる閾値より多い場合、上記書込み制御部が上記揮発記憶部に記憶させたデータであって上記不揮発記憶部に記憶させていないデータのうち少なくとも一部のデータを、上記不揮発記憶部に記憶させる
    ことを特徴とする記憶装置。
  2. 上記書込み制御部は、上記蓄電池に充電されている電力の残量が所定の閾値より少ない場合、上記書込み指示によって指定されたデータを上記不揮発記憶部に記憶させる
    ことを特徴とする請求項1に記載の記憶装置。
  3. 上記記憶装置は、外部電源から電力が供給されている場合、上記外部電源から供給された電力により動作し、上記外部電源から電力が供給されていない場合、上記蓄電池から供給された電力により動作し、
    上記退避制御部は、上記外部電源から電力が供給されていない場合、上記書込み制御部が上記揮発記憶部に記憶させたデータのうち上記不揮発記憶部に記憶させていないデータの量が多いか否かを判定するための上記閾値として、上記外部電源から電力が供給されている場合の閾値よりも小さい閾値を使う
    ことを特徴とする請求項1または請求項2に記載の記憶装置。
  4. 上記退避制御部は、上記外部電源から電力が供給されていない場合、上記書込み制御部が上記揮発記憶部に記憶させたデータのうち上記不揮発記憶部に記憶させていないデータの量が多いか否かを判定するための上記閾値として、0を使う
    ことを特徴とする請求項3に記載の記憶装置。
  5. 上記記憶装置は、更に、電源装置を有し、
    上記電源装置は、外部電源から電力が供給されている場合に、上記蓄電池を充電し、上記外部電源から電力が供給されていない場合に、上記蓄電池を放電して、上記記憶装置を動作させる電力を得る
    ことを特徴とする請求項1乃至請求項4のいずれかに記載の記憶装置。
  6. データを記憶する不揮発記憶部と、データを記憶する揮発記憶部とを有し、蓄電池から得た電力により動作する記憶装置を使った記憶方法において、
    指定したデータを上記不揮発記憶部に記憶させることを指示する書込み指示を上位装置から受けた場合に、上記書込み指示によって指定されたデータを上記揮発記憶部に記憶させ、
    上記書込み指示に基づいて上記揮発記憶部に記憶させたデータのうち上記不揮発記憶部に記憶させていないデータの量が、上記蓄電池に充電されている電力の残量によって定まる閾値より多いか否かを判定し、
    上記書込み指示に基づいて上記揮発記憶部に記憶させたデータのうち上記不揮発記憶部に記憶させていないデータの量が上記閾値より多いと判定した場合、上記書込み指示に基づいて上記揮発記憶部に記憶させたデータであって上記不揮発記憶部に記憶させていないデータのうち少なくともいずれかのデータを、上記不揮発記憶部に記憶させる
    ことを特徴とする記憶方法。
JP2012043523A 2012-02-29 2012-02-29 記憶装置及び記憶方法 Expired - Fee Related JP5814825B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012043523A JP5814825B2 (ja) 2012-02-29 2012-02-29 記憶装置及び記憶方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012043523A JP5814825B2 (ja) 2012-02-29 2012-02-29 記憶装置及び記憶方法

Publications (2)

Publication Number Publication Date
JP2013182283A true JP2013182283A (ja) 2013-09-12
JP5814825B2 JP5814825B2 (ja) 2015-11-17

Family

ID=49272919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012043523A Expired - Fee Related JP5814825B2 (ja) 2012-02-29 2012-02-29 記憶装置及び記憶方法

Country Status (1)

Country Link
JP (1) JP5814825B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891974B2 (en) 2014-09-10 2018-02-13 Toshiba Memory Corporation Memory system
US10649896B2 (en) 2016-11-04 2020-05-12 Samsung Electronics Co., Ltd. Storage device and data processing system including the same
JP2020154741A (ja) * 2019-03-20 2020-09-24 株式会社リコー 電子機器、データ退避制御方法、およびデータ退避制御プログラム
JP7092908B1 (ja) 2021-02-24 2022-06-28 Necプラットフォームズ株式会社 データ制御装置、データ制御方法、データ制御システム、およびデータ制御プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172355A (ja) * 2004-12-20 2006-06-29 Nec Corp 磁気ディスク装置および制御方法
JP2009237881A (ja) * 2008-03-27 2009-10-15 Hitachi Ltd ディスクアレイ装置
JP2011524555A (ja) * 2008-12-04 2011-09-01 株式会社日立製作所 揮発性メモリと不揮発性メモリとを備えたストレージシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172355A (ja) * 2004-12-20 2006-06-29 Nec Corp 磁気ディスク装置および制御方法
JP2009237881A (ja) * 2008-03-27 2009-10-15 Hitachi Ltd ディスクアレイ装置
JP2011524555A (ja) * 2008-12-04 2011-09-01 株式会社日立製作所 揮発性メモリと不揮発性メモリとを備えたストレージシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891974B2 (en) 2014-09-10 2018-02-13 Toshiba Memory Corporation Memory system
US10489227B2 (en) 2014-09-10 2019-11-26 Toshiba Memory Corporation Memory system
US10649896B2 (en) 2016-11-04 2020-05-12 Samsung Electronics Co., Ltd. Storage device and data processing system including the same
JP2020154741A (ja) * 2019-03-20 2020-09-24 株式会社リコー 電子機器、データ退避制御方法、およびデータ退避制御プログラム
JP7092908B1 (ja) 2021-02-24 2022-06-28 Necプラットフォームズ株式会社 データ制御装置、データ制御方法、データ制御システム、およびデータ制御プログラム
JP2022128621A (ja) * 2021-02-24 2022-09-05 Necプラットフォームズ株式会社 データ制御装置、データ制御方法、データ制御システム、およびデータ制御プログラム

Also Published As

Publication number Publication date
JP5814825B2 (ja) 2015-11-17

Similar Documents

Publication Publication Date Title
US10229019B2 (en) Power fail circuit for multi-storage-device arrays
JP5402693B2 (ja) ディスクアレイ装置の制御方法及びディスクアレイ装置
US8707096B2 (en) Storage system, data backup method, and system restarting method of a storage system incorporating volatile and nonvolatile memory devices
CN105556416B (zh) 数据存储设备/系统中利用低功率状态的停电保护和恢复
CN108733537B (zh) 用于智能备用电容器管理的方法和装置
JP5232516B2 (ja) ディスクアレイ装置
US20160291887A1 (en) Solid-state drive with non-volatile random access memory
CN109189605A (zh) 一种固态硬盘掉电保护方法
KR20110015273A (ko) 보조 전원 장치를 포함하는 사용자 장치
JP5814825B2 (ja) 記憶装置及び記憶方法
CN110780811B (zh) 数据保护方法、装置及存储介质
WO2017114236A1 (zh) 充电方法、装置及固态硬盘
CN106294217A (zh) 一种ssd系统及其掉电保护方法
KR20140134497A (ko) 메모리 시스템 및 그것의 캐시 관리 방법
US11262830B2 (en) Managing ephemeral storage on a computing node
CN107229421B (zh) 视频数据存储系统的创建、文件写入和读取方法及装置
US10324959B2 (en) Garbage collection in storage system
WO2015139432A1 (zh) 一种磁盘掉电保护电路及方法
CN108762989B (zh) 固态硬盘的数据存储方法、装置、设备及可读存储介质
US10489227B2 (en) Memory system
CN111984650A (zh) 一种树结构数据的存储方法、系统及相关装置
CN108038024B (zh) 一种面向NandFlash的可靠型静态规划文件系统
JP6966361B2 (ja) 電圧低下検知システム
TW201308082A (zh) 動態存取記憶體的更新裝置與方法
CN109213446B (zh) 写缓存模式的切换方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141106

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: 20150616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150918

R150 Certificate of patent or registration of utility model

Ref document number: 5814825

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees