(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-19
(45)【発行日】2024-03-28
(54)【発明の名称】記憶装置
(51)【国際特許分類】
G06F 3/06 20060101AFI20240321BHJP
G06F 3/08 20060101ALI20240321BHJP
G06F 13/10 20060101ALI20240321BHJP
G06F 13/14 20060101ALI20240321BHJP
G06F 11/20 20060101ALI20240321BHJP
【FI】
G06F3/06 305Z
G06F3/06 304F
G06F3/08 H
G06F13/10 340A
G06F13/14 330A
G06F11/20 669
(21)【出願番号】P 2020092573
(22)【出願日】2020-05-27
【審査請求日】2023-01-16
(73)【特許権者】
【識別番号】390040187
【氏名又は名称】株式会社バッファロー
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】真国 一起
(72)【発明者】
【氏名】東 修一郎
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特表2012-517627(JP,A)
【文献】特開2013-246479(JP,A)
【文献】特許第5002719(JP,B1)
【文献】特開平07-210438(JP,A)
【文献】特開2007-233638(JP,A)
【文献】特開2010-152703(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
G06F 13/10-13/14
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われ
る記憶装置であって、
前記選択手段は、起動時に所定の回路配線が接続されているか否かを判断し、当該判断の結果に基づいて、前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
【請求項2】
データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
さらに、複数の配線を有する外部インタフェースを備え、
前記選択手段は、当該外部インタフェースの前記配線の接続状態に基づいて前記主管理
情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
【請求項3】
データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
さらに、複数のピンを有する外部インタフェースを備え、
前記選択手段は、当該外部インタフェースの起動時の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
【請求項4】
データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
切り替えコマンドを受け入れるコマンド受入手段をさらに含み、
前記コマンド受入手段が切り替えコマンドを受け入れたときに、記憶装置を再起動して、予備管理情報を使用管理情報として選択するよう、前記選択手段を制御する記憶装置。
【請求項5】
請求項1から
4のいずれか一項に記載の記憶装置であって、
前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行う記憶装置。
【請求項6】
請求項1から
4のいずれか一項に記載の記憶装置であって、
前記記憶手段は、前記ストレージデバイスと、当該ストレージデバイスとは異なる記憶部を備え、
前記予備管理情報は、主管理情報が格納される前記ストレージデバイスとは異なる前記記憶部に格納される記憶装置。
【請求項7】
請求項6に記載の記憶装置であって、
前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行う記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを記憶する記憶装置に関する。
【背景技術】
【0002】
データに対応する冗長データを、複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置が知られている(特許文献1)。このディスクアレイ制御装置では、論理ディスクへのリードアクセス時に、復元不能なデータ欠損のある不良セクタが検出されると、当該不良セクタに代替する代替セクタを用意し、当該代替セクタの欠損情報領域にデータ欠損があることを示す欠損情報を記録している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、SSD(Solid State Drive)等の記憶装置では、論理アドレスから物理アドレスへの変換テーブル等を含む管理情報が破損すると、記憶されたデータへのアクセスができなくなるという問題点があった。
【0005】
本発明は上記実情に鑑みて為されたもので、管理情報の破損時にも、データの読み出しを可能とする記憶装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明の一態様は、記憶装置であって、データと主管理情報とを格納するストレージデバイスを含む記憶手段と、前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われることとしたものである。
【0007】
この記憶装置によると、主に利用する主管理情報のほかに予備管理情報を生成しておくので、主管理情報の破損時にも、予備管理情報を用いたデータのアクセスが可能となる。
【0008】
またここで、前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行うこととしてもよい。
【0009】
この例では、予備管理情報を用いて行われる、ホストからのコマンドに基づくデータの書き込みや、バックグラウンドでのデータの書き換えなど、全てのデータの書き込みを許容しないので、予備管理情報の書き換えが生じず、予備管理情報まで破損することを予防できる。
【0010】
さらに前記選択手段は、起動時に所定の回路配線が接続されているか否かを判断し、当該判断の結果に基づいて、前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択してもよい。
【0011】
この例によると、上記所定の回路配線の脱着により主管理情報と予備管理情報との利用を切り替えることができる。
【0012】
さらに、複数の配線を有する外部インタフェースを備え、前記選択手段は、当該外部インタフェースの前記配線の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
【0013】
この例によると、外部インタフェースへの配線の接続状態により、主管理情報と予備管理情報との利用を切り替えることができる。
【0014】
さらに、複数のピンを有する外部インタフェースを備え、前記選択手段は、当該外部インタフェースの起動時の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
【0015】
この例によると、外部インタフェースの接続状態により、主管理情報と予備管理情報との利用を切り替えることができる。
【0016】
さらに本発明の別の態様では、切り替えコマンドを受け入れるコマンド受入手段をさらに含み、前記コマンド受入手段が切り替えコマンドを受け入れたときに、記憶装置を再起動して、予備管理情報を使用管理情報として選択するよう、前記選択手段を制御することとしてもよい。
【0017】
この例では、切り替えコマンドにより、主管理情報と予備管理情報との利用を切り替えることができる。
【0018】
さらに本発明のもう一つの態様では、前記記憶手段は、前記ストレージデバイスと、当該ストレージデバイスとは異なる記憶部を備え、前記予備管理情報は、主管理情報が格納される前記ストレージデバイスとは異なる前記記憶部に格納されることとした。
【0019】
この例によると、予備管理情報が主管理情報とは異なる記憶部に格納されるので、管理情報の冗長性をさらに向上できる。
【発明の効果】
【0020】
本発明によると、通常使用する管理情報が破損した時にも、データのアクセスが可能となる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施の形態に係る記憶装置の構成例を表すブロック図である。
【
図2】本発明の実施の形態に係る記憶装置が保持する管理情報の一例を表す説明図である。
【
図3】本発明の実施の形態に係る記憶装置の例を表す機能ブロック図である。
【
図4】本発明の実施の形態に係る記憶装置の動作例を表すフローチャート図である。
【
図5】本発明の実施の形態に係る記憶装置の動作例を表すもう一つのフローチャート図である。
【発明を実施するための形態】
【0022】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る記憶装置1は、例えば
図1に例示するように、ホスト2に接続され、制御部11と、インタフェース部12と、記憶部13と、フラッシュメモリ部14とを含んで構成される。ここでホスト2は一般的なパーソナルコンピュータ(PC)等である。
【0023】
制御部11は、CPU等のプログラム制御デバイスであり、フラッシュメモリ部14に格納されるファームウェアに従って動作する。この制御部11は、起動時にフラッシュメモリ部14からファームウェアを読み出し、当該読み出したファームウェアに従って動作する。
【0024】
本実施の形態の一例では、記憶装置1は、SSD(Solid State Drive)であり、記憶領域が複数のブロックに分割され、各ブロックはさらにページに分割されて管理される。また各ブロックには物理ブロック識別子が割り当てられ、各ブロック内のページにはそれぞれ固有の物理ページアドレスが割り当てられる。すなわち、データが格納される場所は、本実施の形態では物理ブロック識別子と物理ページアドレスとによって特定されることとなる。つまり、本実施の形態ではこれらの物理ブロック識別子と物理ページアドレスとが物理アドレスに相当する。
【0025】
またホスト2は、記憶装置1の各記憶領域を、論理アドレス(LBA)によって特定する。記憶装置1は、
図2に例示するように、ホスト2が管理する論理アドレスに対し、対応する物理アドレスを特定するための変換テーブル(論物テーブル)を保持する。記憶装置1は、ホスト2から論理アドレスを指定した、データの読み出しや書き込みの指示を受け入れると、当該指定された論理アドレスを、対応する物理アドレスに変換する。そして記憶装置1は、変換して得られた物理アドレスで特定される記憶領域からデータを読み出し、あるいは当該記憶領域にデータを書き込む。このような記憶装置1の動作については広く知られているので、ここでの詳しい説明は省略する。
【0026】
本実施の形態において特徴的なことの一つは、記憶装置1が、この論理アドレスから物理アドレスへの変換テーブル等を含む管理情報として、主管理情報と、予備管理情報とを含む、複数の管理情報を保持することである。ここで予備管理情報は、主管理情報と同一の内容の情報を含むものであり、詳しくは後述する。
【0027】
そして本実施の形態の一例では、制御部11は、起動時に、主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する。そして、制御部11は、選択された使用管理情報を用いて、フラッシュメモリ部14に格納したデータへのアクセスを行う。また制御部11は、少なくとも主管理情報を使用管理情報として選択している間、フラッシュメモリ部14に格納したデータへのアクセスを行っている間、主管理情報と同一の内容の情報を含む予備管理情報を生成する。この制御部11の詳しい動作の内容については後に説明する。
【0028】
インタフェース部12は、例えばSATA(Serial AT Attachment)インタフェースなどの複数の信号線(信号ピン)を有する外部インタフェースであり、ホスト2との間で接続される。記憶装置1は、このインタフェース部12を介して、ホスト2からデータの読み出しや書き込みの指示を受け入れる。また記憶装置1は、このインタフェース部12を介して読み出したデータ等をホスト2に対して出力する。
【0029】
記憶部13は、本実施の形態の記憶装置1が備える記憶デバイスの一つであり、例えばDRAM(Dynamic RAM)を含む。この記憶部13は、制御部11のワークメモリとして動作するとともに、フラッシュメモリ部14のキャッシュメモリとしても動作する。またこの記憶部13は、SRAM(Static RAM)を含んでもよい。さらに記憶部13は、不揮発性の記憶素子や不揮発性のメモリデバイスとして、例えばNORフラッシュメモリや、シリアルNAND、MRAM等を含んでもよい。
【0030】
フラッシュメモリ部14は、本実施の形態の記憶装置1が備えるもう一つの記憶デバイスであり、本発明のストレージデバイスに相当する。本実施の形態の例では、このフラッシュメモリ部14は、NANDフラッシュメモリデバイスであるものとする。既に述べたように、このフラッシュメモリ部14は、データの格納先となる記憶領域を、物理アドレスによって識別する。
【0031】
また、このフラッシュメモリ部14には、起動時に制御部11によって実行されるファームウェア等のプログラムが格納される。ここでプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納され、このフラッシュメモリ部14に複写されたものであってもよい。さらに、フラッシュメモリ部14は、記憶領域を、主管理情報を記憶する主管理情報記憶領域、及びユーザデータを格納するユーザエリアなどに区別して管理する。
【0032】
なお、このファームウェアは、記憶部13の不揮発性の記憶素子や不揮発性のメモリデバイスにも格納されていてもよい。この場合、記憶装置1は、フラッシュメモリ部14に格納されたファームウェアを用いて起動できない場合(フラッシュメモリ部14のファームウェアの記憶領域が破損しているなどの場合)に、記憶部13(ROMであってもよい)に格納されたファームウェアを用いて起動する。
【0033】
次に、制御部11の動作について説明する。本実施の形態の一例に係る制御部11は、ファームウェアを実行することで、
図3に例示するように、アクセス処理部21と、予備生成部22と、選択部23とを機能的に含む構成を実現する。
【0034】
ここでアクセス処理部21は、ホスト2からインタフェース部12を介してデータの読み出しや書き込みの指示を受け入れる。アクセス処理部21は、当該受け入れた指示に従い、フラッシュメモリ部14にアクセスする。具体的にアクセス処理部21は、データの読み出しの指示をホスト2から受け入れる。この指示には、読み出すべきデータが格納されている位置を表す論理アドレスの指定が含まれる。
【0035】
アクセス処理部21は、選択部23が選択した使用管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する。そしてアクセス処理部21は、取得した物理アドレスで表される格納先からデータを読み出し、当該読み出したデータを、ホスト2に対して送出する。
【0036】
またアクセス処理部21は、書き込み先を表す論理アドレスの指定とともにデータを書き込むべき指示をホスト2から受け入れると、選択部24が選択した使用管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する。
【0037】
そしてアクセス処理部21は、取得した物理アドレスで特定されるブロックに既にデータが格納されているか否かを調べ、データが格納されていれば、当該ブロック(以下、対象ブロックと呼ぶ)内のデータをキャッシュに読み出す。またアクセス処理部21は、その時点でデータが格納されていない空きブロックの物理アドレス(新アドレスと呼ぶ)を特定しておく。アクセス処理部21は、キャッシュしたデータのうち、取得した物理アドレスで特定される部分を、指示されたデータで上書きし、少なくとも一部が上書きされた当該データを、空きブロックに書き込む。そしてアクセス処理部21は、対象ブロック内のデータを無効なものとする(対象ブロックを空きブロックとする)。またアクセス処理部21は、使用管理情報のうち、ホスト2から受け入れた論理アドレスに対応する物理アドレスを、新アドレスに書き換える。この動作は、Read-Modify-Write処理(RMW処理)などとして広く知られているので、これ以上の詳しい説明は省略する。
【0038】
一方、アクセス処理部21は、上記使用管理情報を参照して、取得した物理アドレスで特定されるブロックが空きブロックであれば、当該空きブロックに指示されたデータを格納する。
【0039】
予備生成部22は、上述のRMW処理等により主管理情報が書き換えられたときに、書き換えられた主管理情報を複写して予備管理情報を生成する。あるいは予備生成部22は、予備管理情報に対して、上記主管理情報で行われた書き換えと同じ書き換えを行うことにより、予備管理情報を更新することとしてもよい。
【0040】
この予備生成部22は、生成ないし更新した予備管理情報を、主管理情報と同様に、フラッシュメモリ部14に格納してもよい。また、記憶部13が不揮発性の記憶素子や、不揮発性のメモリデバイスを備える場合は、生成ないし更新した予備管理情報を、主管理情報とは別に、記憶部13の不揮発性の記憶素子や不揮発性のメモリデバイスに格納してもよい。
【0041】
また本実施の形態では、この予備生成部22が予備管理情報を生成または更新するタイミングは、主管理情報が更新されたタイミングに限られず、所定の時間が経過するごと、あるいは主管理情報が所定回数だけ更新されるごととしてもよい。
【0042】
さらに本実施の形態の一例では、記憶装置1は、予備管理情報を使用管理情報としているとき(非常モードで起動中)に上述のRMW処理を行うこと等により予備管理情報が書き換えられたときには、当該書き換えられた予備管理情報を複写して主管理情報を生成する。あるいは記憶装置1は、主管理情報に対して、上記予備管理情報で行われた書き換えと同じ書き換えを行うことにより、主管理情報を更新することとしてもよい。
【0043】
もっとも、予備管理情報を使用管理情報としたとき(非常モードで起動しているとき)には、アクセス処理部21があらゆるデータの書き込み指示を受け入れない(書き込み禁止とする)こととしてもよい。この場合、予備管理情報や主管理情報の更新は行われないので、この処理は必要でない。ここでデータの書き込み指示は、ホスト2からのコマンドに基づくもののほか、記憶装置1におけるバックグラウンドの処理(ガーベジコレクションの処理など)において、書き換えを行う際になされる指示も含まれる。本実施の形態の一例では、このように、非常モードで起動している間は、全てのデータの書き込みや書き換えを行わないよう制御する。
【0044】
選択部23は、記憶装置1の起動時に、所定の判断基準に基づいて、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動するか、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)で起動するかを決定する。
【0045】
ここで所定の判断基準は例えば、予め定めた回路配線が接続されているか否かとしてもよい。具体的には、インタフェース部12の所定の信号線(例えばGPIO(General Purpose I/O))が電気的にハイ(High)となっているか否か(GPIOが電気的にハイとなるラインに接続されているか否か)としてよい。一例として選択部23は、記憶装置1の起動時に、インタフェース部12のGPIOが電気的にハイとなっているか否かを調べる。そしてインタフェース部12のGPIOが電気的にハイとなっていれば、選択部23は、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動することとして、使用管理情報を、主管理情報に設定する。またこの例では選択部23は、記憶装置1の起動時に、インタフェース部12のGPIOが電気的にハイとなっていなければ、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)起動することとして、使用管理情報を、予備管理情報に設定する。
【0046】
[動作]
本実施の形態は以上の例の構成を備えてなり、次のように動作する。本実施の形態の記憶装置1は、起動されると、
図4に例示する処理を開始し、所定の判断基準に基づいて、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動するか、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)で起動するかを決定する(S11:モード決定)。
【0047】
具体的には記憶装置1は、ステップS11において、インタフェース部12のGPIOが電気的にハイ(High)となっているか否かを調べて、電気的にハイとなっていれば、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動することとして(S11:通常モード)、使用管理情報を、主管理情報に設定する(S12)。また記憶装置1はこのステップS11において、インタフェース部12のGPIOが電気的にハイとなっていなければ、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)起動することとして(S11:非常モード)、使用管理情報を、予備管理情報に設定する(S13)。
【0048】
記憶装置1は、以下、ホスト2から入力される指示に従って動作し、ホスト2からインタフェース部12を介してデータの読み出し指示を受け入れると(S14)、ステップS12またはS13にて選択された使用管理情報を参照して、読み出し指示において指定された論理アドレスに対応する物理アドレスを取得する(S15)。記憶装置1は、当該取得した物理アドレスで表される格納先からデータを読み出して(S16)、当該読み出したデータを、ホスト2に対して送出する(S17)。
【0049】
また記憶装置1は、
図5に示すように、ステップS12またはS13の後、書き込み先を表す論理アドレスの指定とともにデータを書き込むべき指示をホスト2から受け入れると(S21:書き込み指示受け入れ)、使用管理情報が主管理情報と予備管理情報とのいずれに設定されているかを判断する(S22)。つまり記憶装置1は、ステップS11で選択したモードが通常モードであるか非常モードであるかを調べればよい。
【0050】
ここで使用管理情報が予備管理情報に設定されていたときには(S22:予備管理情報)、記憶装置1は、ホスト2に対して書き込みが禁止されている旨のエラーを報知して(S23)、処理を続ける。
【0051】
この例では、ホスト2は、この報知を受けて、データの書き込み指示を行ったユーザに対して、データ書き込みができない旨のエラーを提示することとなる。
【0052】
また記憶装置1は、ステップS22において、使用管理情報が主管理情報に設定されていたときには(S22:主管理情報)、使用管理情報となっている主管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する(S24)。
【0053】
記憶装置1は、当該取得した物理アドレスで特定されるブロック(対象ブロック)内のデータに対して、RMW処理を実行する(S25)。すなわち記憶装置1は、この対象ブロック内のデータをキャッシュに読み出す。また記憶装置1は、空きブロックとなっているブロックの物理アドレス(新アドレス)を特定しておく。そして記憶装置1はキャッシュしたデータのうち、取得した物理アドレスで特定される部分を、指示されたデータで上書きし、当該少なくとも一部が上書きされたデータ(1ブロック分のデータ)を、新アドレスで特定されるブロックに書き込む。また記憶装置1は、対象ブロック内のデータを無効なものに設定して対象ブロックを空きブロックとする。
【0054】
記憶装置1は、このとき、使用管理情報である主管理情報のうち、ホスト2から受け入れた論理アドレスに対応する物理アドレスを、上記新アドレスに書き換える(S26:主管理情報の更新)。
【0055】
その後、記憶装置1は、主管理情報を複写して、予備管理情報として、記憶部13に格納する(S27)。
【0056】
この記憶装置1の動作により、通常モードで動作している間、データの書き込み等の処理によって更新された主管理情報が予備管理情報として別途記録される。
【0057】
そして主管理情報の読み出しができなくなったときには、ユーザは、インタフェース部12のGPIOを、電気的にハイとなっているラインに接続して記憶装置1を起動する。ここでの接続は、ジャンパ線を差し込む方法でもよいし、ディップスイッチを用いて回路を接続する方法でもよい。
【0058】
記憶装置1は、起動時にインタフェース部12のGPIOが電気的にハイとなっているか否かを調べ、ハイとなっていれば非常モードで起動し、使用管理情報を予備管理情報として動作する。
【0059】
本実施の形態のここでの例では、別途記録された予備管理情報を参照してデータの読み出しを行うので、主管理情報が破損していた場合であってもデータの読み出しを行うことが可能となる。またこのように予備管理情報を使用管理情報としている間は、書き込みを禁止する(リードオンリーとする)ので、例えばフラッシュメモリ部14に不良セクタが多発している場合等であっても、それ以上の破損の進行を遅らせることができ、読み出しの可能性を増大させる。
【0060】
[モード切り替えの別の例]
またここまでの説明では、通常モードと非常モードとの切り替えが、インタフェース部12のGPIOがハイであるか否かにより行われていたが、本実施の形態はこれに限られない。例えば記憶装置1は、起動時にインタフェース部12のGPIOが電気的にローであるときに通常モードで起動し、GPIOが電気的にハイであるときに非常モードで起動してもよい。
【0061】
またGPIOを用いるのではなく、制御部11の所定の一対の信号線が短絡されているか、開放されているかにより通常モードと非常モードとを切り替えてもよい。ここで信号線は、周辺回路に対してコマンドを出力するコマンド出力信号線と、周辺回路からの応答の入力を受け入れる応答入力信号線とを用いてもよい。この例の場合、制御部11は、起動時にコマンド出力信号線を介して所定のコマンドを出力し、応答入力信号線からの入力を調べる。ここで、出力した上記所定のコマンドがそのまま応答入力信号線から入力された場合、制御部11は、信号線が短絡されていると判断して、非常モードで起動する。つまり、使用管理情報を予備管理情報とする。一方、制御部11は、起動時にコマンド出力信号線を介して所定のコマンドを出力したときに、応答入力信号線からの入力が、当該所定のコマンドとは異なっているときには、制御部11は、信号線が開放されていると判断して、通常モードで起動する。つまり、使用管理情報を主管理情報とする。
【0062】
さらに本実施の形態のある例では、記憶装置1は、複数のピンを有する外部インタフェースであるインタフェース部12の、記憶装置1の起動時のピンの接続状態に基づいて、通常モードと非常モードとを切り替え、主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
【0063】
具体的に、記憶装置1は、インタフェース部12であるSATAの電源ラインまたは信号ラインの接続状態によって通常モードと非常モードとを切り替える。一例として、記憶装置1の備えるSATAの電源ラインのうち、12Vの入力を受ける12V電源ライン(SSDでは一般的に利用されていない)が、記憶装置1の起動時にGNDレベルとなっているか、開放(NC)となっているかによって通常モードと非常モードとを切り替えることとしてもよい。この例では、12V電源ラインがGNDレベルであるか開放端となっているかを検出する検出回路をインタフェース部12が備えればよい。記憶装置1は、起動時に、この検出回路の出力を調べて、12V電源ラインがGNDレベルであるか開放端となっているかを認識し、例えば12V電源ラインがGNDレベルである(12V電源ラインがGNDと短絡するようジャンパ線等が接続されている)ときに、非常モードで起動して、使用管理情報を予備管理情報に設定する。
【0064】
また記憶装置1は、起動時に、この検出回路の出力により、12V電源ラインが開放されているとき(12V電源ラインがGNDと短絡するようジャンパ線等が接続されていないとき)や所定の電圧(12Vである場合を含む)が印加されているときなど、GNDレベルでないときには、通常モードで起動して、使用管理情報を主管理情報に設定する。
【0065】
また、SATAでは、電源ラインと信号線とのコネクタが分かれたポートが規定されていることから、記憶装置1は起動時(電源ラインが接続され、電源がオンとなったとき)に、信号線のコネクタが接続されているか否かにより、通常モードと非常モードとを切り替えてもよい。
【0066】
この例では、非常モードで起動しようとするユーザは、インタフェース部12のコネクタのうち信号線のコネクタを引き抜いた状態で、ホスト2の電源を投入して、記憶装置1を起動する。記憶装置1は、起動時に信号線が接続されていないことを検出し、非常モードで起動して、使用管理情報を予備管理情報に設定する。
【0067】
また通常モードで起動しようとする場合、ユーザは、通常通り、インタフェース部12の電源ラインのコネクタと信号線のコネクタとの双方をホスト2に接続した状態で、ホスト2の電源を投入して記憶装置1を起動する。記憶装置1は、起動時に信号線が接続されていることを検出し、通常モードで起動して、使用管理情報を主管理情報に設定する。
【0068】
さらに記憶装置1は、ホスト2から入力されるコマンド(モード切り替えコマンド)により、次回起動時のモードを、通常モードと非常モードとのいずれかに設定してもよい。
【0069】
この例では、記憶装置1は、電源が供給されていない間でも、前回ホスト2から入力されたモード切り替えコマンドの内容を保持する、不揮発性の記憶部(レジスタ)を備えておく。
【0070】
記憶装置1は、ホスト2からモード切り替えコマンドの入力を受けると、当該モード切り替えコマンドの内容を上記レジスタに保持する。このとき記憶装置1は、再起動を行ってもよい。記憶装置1は、再起動後など、次回の起動時にこのレジスタの内容を調べ、レジスタが空である(モード切り替えコマンドの入力を受けていない)か、または、レジスタに保持されたモード切り替えコマンドが「通常モード」での起動を指示するものである場合は、通常モードで起動して、使用管理情報を主管理情報に設定する。
【0071】
一方、記憶装置1は、再起動後などの起動時に上記レジスタに保持されたモード切り替えコマンドが「非常モード」での起動を指示するものである場合は、非常モードで起動して、使用管理情報を予備管理情報に設定する。
【0072】
この例では、ユーザは記憶装置1のモードを変更しようとするときには、ホスト2に記憶装置1を接続して動作させている状態で、ホスト2に、所望のモードでの起動を指示するモード切り替えコマンドを出力させる。このホスト2の動作は、ホスト2にインストールしたドライバソフトウエア等で行わせればよい。
【0073】
またこの例では、記憶装置1は、起動時にレジスタにモード切り替えコマンドが保持されていたときには、当該保持されたモード切り替えコマンドに対応したモードで起動するとともに、当該レジスタの内容を空に戻しておいてもよい。
【0074】
[実施形態の効果]
本実施の形態によると、通常使用する主管理情報が破損した時にも、予備管理情報を利用してデータのアクセスが可能となる。また、主管理情報と予備管理情報のいずれを使用して起動するかを、ユーザが明示的に指示可能となる。
【符号の説明】
【0075】
1 記憶装置、2 ホスト、11 制御部、12 インタフェース部、13 記憶部、14 フラッシュメモリ部、21 アクセス処理部、22 予備生成部、23 選択部。