JP7457248B2 - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP7457248B2
JP7457248B2 JP2020092573A JP2020092573A JP7457248B2 JP 7457248 B2 JP7457248 B2 JP 7457248B2 JP 2020092573 A JP2020092573 A JP 2020092573A JP 2020092573 A JP2020092573 A JP 2020092573A JP 7457248 B2 JP7457248 B2 JP 7457248B2
Authority
JP
Japan
Prior art keywords
management information
storage device
preliminary
main
usage
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.)
Active
Application number
JP2020092573A
Other languages
English (en)
Other versions
JP2021189619A (ja
Inventor
一起 真国
修一郎 東
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.)
Buffalo Inc
Original Assignee
Buffalo Inc
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 Buffalo Inc filed Critical Buffalo Inc
Priority to JP2020092573A priority Critical patent/JP7457248B2/ja
Priority to US17/322,902 priority patent/US11681612B2/en
Priority to CN202110576149.4A priority patent/CN113741803A/zh
Publication of JP2021189619A publication Critical patent/JP2021189619A/ja
Application granted granted Critical
Publication of JP7457248B2 publication Critical patent/JP7457248B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Description

本発明は、データを記憶する記憶装置に関する。
データに対応する冗長データを、複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置が知られている(特許文献1)。このディスクアレイ制御装置では、論理ディスクへのリードアクセス時に、復元不能なデータ欠損のある不良セクタが検出されると、当該不良セクタに代替する代替セクタを用意し、当該代替セクタの欠損情報領域にデータ欠損があることを示す欠損情報を記録している。
特開2005-293119号公報
しかしながら、SSD(Solid State Drive)等の記憶装置では、論理アドレスから物理アドレスへの変換テーブル等を含む管理情報が破損すると、記憶されたデータへのアクセスができなくなるという問題点があった。
本発明は上記実情に鑑みて為されたもので、管理情報の破損時にも、データの読み出しを可能とする記憶装置を提供することを、その目的の一つとする。
上記従来例の問題点を解決する本発明の一態様は、記憶装置であって、データと主管理情報とを格納するストレージデバイスを含む記憶手段と、前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われることとしたものである。
この記憶装置によると、主に利用する主管理情報のほかに予備管理情報を生成しておくので、主管理情報の破損時にも、予備管理情報を用いたデータのアクセスが可能となる。
またここで、前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行うこととしてもよい。
この例では、予備管理情報を用いて行われる、ホストからのコマンドに基づくデータの書き込みや、バックグラウンドでのデータの書き換えなど、全てのデータの書き込みを許容しないので、予備管理情報の書き換えが生じず、予備管理情報まで破損することを予防できる。
さらに前記選択手段は、起動時に所定の回路配線が接続されているか否かを判断し、当該判断の結果に基づいて、前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択してもよい。
この例によると、上記所定の回路配線の脱着により主管理情報と予備管理情報との利用を切り替えることができる。
さらに、複数の配線を有する外部インタフェースを備え、前記選択手段は、当該外部インタフェースの前記配線の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
この例によると、外部インタフェースへの配線の接続状態により、主管理情報と予備管理情報との利用を切り替えることができる。
さらに、複数のピンを有する外部インタフェースを備え、前記選択手段は、当該外部インタフェースの起動時の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
この例によると、外部インタフェースの接続状態により、主管理情報と予備管理情報との利用を切り替えることができる。
さらに本発明の別の態様では、切り替えコマンドを受け入れるコマンド受入手段をさらに含み、前記コマンド受入手段が切り替えコマンドを受け入れたときに、記憶装置を再起動して、予備管理情報を使用管理情報として選択するよう、前記選択手段を制御することとしてもよい。
この例では、切り替えコマンドにより、主管理情報と予備管理情報との利用を切り替えることができる。
さらに本発明のもう一つの態様では、前記記憶手段は、前記ストレージデバイスと、当該ストレージデバイスとは異なる記憶部を備え、前記予備管理情報は、主管理情報が格納される前記ストレージデバイスとは異なる前記記憶部に格納されることとした。
この例によると、予備管理情報が主管理情報とは異なる記憶部に格納されるので、管理情報の冗長性をさらに向上できる。
本発明によると、通常使用する管理情報が破損した時にも、データのアクセスが可能となる。
本発明の実施の形態に係る記憶装置の構成例を表すブロック図である。 本発明の実施の形態に係る記憶装置が保持する管理情報の一例を表す説明図である。 本発明の実施の形態に係る記憶装置の例を表す機能ブロック図である。 本発明の実施の形態に係る記憶装置の動作例を表すフローチャート図である。 本発明の実施の形態に係る記憶装置の動作例を表すもう一つのフローチャート図である。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る記憶装置1は、例えば図1に例示するように、ホスト2に接続され、制御部11と、インタフェース部12と、記憶部13と、フラッシュメモリ部14とを含んで構成される。ここでホスト2は一般的なパーソナルコンピュータ(PC)等である。
制御部11は、CPU等のプログラム制御デバイスであり、フラッシュメモリ部14に格納されるファームウェアに従って動作する。この制御部11は、起動時にフラッシュメモリ部14からファームウェアを読み出し、当該読み出したファームウェアに従って動作する。
本実施の形態の一例では、記憶装置1は、SSD(Solid State Drive)であり、記憶領域が複数のブロックに分割され、各ブロックはさらにページに分割されて管理される。また各ブロックには物理ブロック識別子が割り当てられ、各ブロック内のページにはそれぞれ固有の物理ページアドレスが割り当てられる。すなわち、データが格納される場所は、本実施の形態では物理ブロック識別子と物理ページアドレスとによって特定されることとなる。つまり、本実施の形態ではこれらの物理ブロック識別子と物理ページアドレスとが物理アドレスに相当する。
またホスト2は、記憶装置1の各記憶領域を、論理アドレス(LBA)によって特定する。記憶装置1は、図2に例示するように、ホスト2が管理する論理アドレスに対し、対応する物理アドレスを特定するための変換テーブル(論物テーブル)を保持する。記憶装置1は、ホスト2から論理アドレスを指定した、データの読み出しや書き込みの指示を受け入れると、当該指定された論理アドレスを、対応する物理アドレスに変換する。そして記憶装置1は、変換して得られた物理アドレスで特定される記憶領域からデータを読み出し、あるいは当該記憶領域にデータを書き込む。このような記憶装置1の動作については広く知られているので、ここでの詳しい説明は省略する。
本実施の形態において特徴的なことの一つは、記憶装置1が、この論理アドレスから物理アドレスへの変換テーブル等を含む管理情報として、主管理情報と、予備管理情報とを含む、複数の管理情報を保持することである。ここで予備管理情報は、主管理情報と同一の内容の情報を含むものであり、詳しくは後述する。
そして本実施の形態の一例では、制御部11は、起動時に、主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する。そして、制御部11は、選択された使用管理情報を用いて、フラッシュメモリ部14に格納したデータへのアクセスを行う。また制御部11は、少なくとも主管理情報を使用管理情報として選択している間、フラッシュメモリ部14に格納したデータへのアクセスを行っている間、主管理情報と同一の内容の情報を含む予備管理情報を生成する。この制御部11の詳しい動作の内容については後に説明する。
インタフェース部12は、例えばSATA(Serial AT Attachment)インタフェースなどの複数の信号線(信号ピン)を有する外部インタフェースであり、ホスト2との間で接続される。記憶装置1は、このインタフェース部12を介して、ホスト2からデータの読み出しや書き込みの指示を受け入れる。また記憶装置1は、このインタフェース部12を介して読み出したデータ等をホスト2に対して出力する。
記憶部13は、本実施の形態の記憶装置1が備える記憶デバイスの一つであり、例えばDRAM(Dynamic RAM)を含む。この記憶部13は、制御部11のワークメモリとして動作するとともに、フラッシュメモリ部14のキャッシュメモリとしても動作する。またこの記憶部13は、SRAM(Static RAM)を含んでもよい。さらに記憶部13は、不揮発性の記憶素子や不揮発性のメモリデバイスとして、例えばNORフラッシュメモリや、シリアルNAND、MRAM等を含んでもよい。
フラッシュメモリ部14は、本実施の形態の記憶装置1が備えるもう一つの記憶デバイスであり、本発明のストレージデバイスに相当する。本実施の形態の例では、このフラッシュメモリ部14は、NANDフラッシュメモリデバイスであるものとする。既に述べたように、このフラッシュメモリ部14は、データの格納先となる記憶領域を、物理アドレスによって識別する。
また、このフラッシュメモリ部14には、起動時に制御部11によって実行されるファームウェア等のプログラムが格納される。ここでプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納され、このフラッシュメモリ部14に複写されたものであってもよい。さらに、フラッシュメモリ部14は、記憶領域を、主管理情報を記憶する主管理情報記憶領域、及びユーザデータを格納するユーザエリアなどに区別して管理する。
なお、このファームウェアは、記憶部13の不揮発性の記憶素子や不揮発性のメモリデバイスにも格納されていてもよい。この場合、記憶装置1は、フラッシュメモリ部14に格納されたファームウェアを用いて起動できない場合(フラッシュメモリ部14のファームウェアの記憶領域が破損しているなどの場合)に、記憶部13(ROMであってもよい)に格納されたファームウェアを用いて起動する。
次に、制御部11の動作について説明する。本実施の形態の一例に係る制御部11は、ファームウェアを実行することで、図3に例示するように、アクセス処理部21と、予備生成部22と、選択部23とを機能的に含む構成を実現する。
ここでアクセス処理部21は、ホスト2からインタフェース部12を介してデータの読み出しや書き込みの指示を受け入れる。アクセス処理部21は、当該受け入れた指示に従い、フラッシュメモリ部14にアクセスする。具体的にアクセス処理部21は、データの読み出しの指示をホスト2から受け入れる。この指示には、読み出すべきデータが格納されている位置を表す論理アドレスの指定が含まれる。
アクセス処理部21は、選択部23が選択した使用管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する。そしてアクセス処理部21は、取得した物理アドレスで表される格納先からデータを読み出し、当該読み出したデータを、ホスト2に対して送出する。
またアクセス処理部21は、書き込み先を表す論理アドレスの指定とともにデータを書き込むべき指示をホスト2から受け入れると、選択部24が選択した使用管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する。
そしてアクセス処理部21は、取得した物理アドレスで特定されるブロックに既にデータが格納されているか否かを調べ、データが格納されていれば、当該ブロック(以下、対象ブロックと呼ぶ)内のデータをキャッシュに読み出す。またアクセス処理部21は、その時点でデータが格納されていない空きブロックの物理アドレス(新アドレスと呼ぶ)を特定しておく。アクセス処理部21は、キャッシュしたデータのうち、取得した物理アドレスで特定される部分を、指示されたデータで上書きし、少なくとも一部が上書きされた当該データを、空きブロックに書き込む。そしてアクセス処理部21は、対象ブロック内のデータを無効なものとする(対象ブロックを空きブロックとする)。またアクセス処理部21は、使用管理情報のうち、ホスト2から受け入れた論理アドレスに対応する物理アドレスを、新アドレスに書き換える。この動作は、Read-Modify-Write処理(RMW処理)などとして広く知られているので、これ以上の詳しい説明は省略する。
一方、アクセス処理部21は、上記使用管理情報を参照して、取得した物理アドレスで特定されるブロックが空きブロックであれば、当該空きブロックに指示されたデータを格納する。
予備生成部22は、上述のRMW処理等により主管理情報が書き換えられたときに、書き換えられた主管理情報を複写して予備管理情報を生成する。あるいは予備生成部22は、予備管理情報に対して、上記主管理情報で行われた書き換えと同じ書き換えを行うことにより、予備管理情報を更新することとしてもよい。
この予備生成部22は、生成ないし更新した予備管理情報を、主管理情報と同様に、フラッシュメモリ部14に格納してもよい。また、記憶部13が不揮発性の記憶素子や、不揮発性のメモリデバイスを備える場合は、生成ないし更新した予備管理情報を、主管理情報とは別に、記憶部13の不揮発性の記憶素子や不揮発性のメモリデバイスに格納してもよい。
また本実施の形態では、この予備生成部22が予備管理情報を生成または更新するタイミングは、主管理情報が更新されたタイミングに限られず、所定の時間が経過するごと、あるいは主管理情報が所定回数だけ更新されるごととしてもよい。
さらに本実施の形態の一例では、記憶装置1は、予備管理情報を使用管理情報としているとき(非常モードで起動中)に上述のRMW処理を行うこと等により予備管理情報が書き換えられたときには、当該書き換えられた予備管理情報を複写して主管理情報を生成する。あるいは記憶装置1は、主管理情報に対して、上記予備管理情報で行われた書き換えと同じ書き換えを行うことにより、主管理情報を更新することとしてもよい。
もっとも、予備管理情報を使用管理情報としたとき(非常モードで起動しているとき)には、アクセス処理部21があらゆるデータの書き込み指示を受け入れない(書き込み禁止とする)こととしてもよい。この場合、予備管理情報や主管理情報の更新は行われないので、この処理は必要でない。ここでデータの書き込み指示は、ホスト2からのコマンドに基づくもののほか、記憶装置1におけるバックグラウンドの処理(ガーベジコレクションの処理など)において、書き換えを行う際になされる指示も含まれる。本実施の形態の一例では、このように、非常モードで起動している間は、全てのデータの書き込みや書き換えを行わないよう制御する。
選択部23は、記憶装置1の起動時に、所定の判断基準に基づいて、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動するか、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)で起動するかを決定する。
ここで所定の判断基準は例えば、予め定めた回路配線が接続されているか否かとしてもよい。具体的には、インタフェース部12の所定の信号線(例えばGPIO(General Purpose I/O))が電気的にハイ(High)となっているか否か(GPIOが電気的にハイとなるラインに接続されているか否か)としてよい。一例として選択部23は、記憶装置1の起動時に、インタフェース部12のGPIOが電気的にハイとなっているか否かを調べる。そしてインタフェース部12のGPIOが電気的にハイとなっていれば、選択部23は、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動することとして、使用管理情報を、主管理情報に設定する。またこの例では選択部23は、記憶装置1の起動時に、インタフェース部12のGPIOが電気的にハイとなっていなければ、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)起動することとして、使用管理情報を、予備管理情報に設定する。
[動作]
本実施の形態は以上の例の構成を備えてなり、次のように動作する。本実施の形態の記憶装置1は、起動されると、図4に例示する処理を開始し、所定の判断基準に基づいて、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動するか、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)で起動するかを決定する(S11:モード決定)。
具体的には記憶装置1は、ステップS11において、インタフェース部12のGPIOが電気的にハイ(High)となっているか否かを調べて、電気的にハイとなっていれば、主管理情報を使用してフラッシュメモリ部14へのアクセスを行うモード(通常モード)で起動することとして(S11:通常モード)、使用管理情報を、主管理情報に設定する(S12)。また記憶装置1はこのステップS11において、インタフェース部12のGPIOが電気的にハイとなっていなければ、予備管理情報を使用してフラッシュメモリ部14へアクセスを行うモード(非常モード)起動することとして(S11:非常モード)、使用管理情報を、予備管理情報に設定する(S13)。
記憶装置1は、以下、ホスト2から入力される指示に従って動作し、ホスト2からインタフェース部12を介してデータの読み出し指示を受け入れると(S14)、ステップS12またはS13にて選択された使用管理情報を参照して、読み出し指示において指定された論理アドレスに対応する物理アドレスを取得する(S15)。記憶装置1は、当該取得した物理アドレスで表される格納先からデータを読み出して(S16)、当該読み出したデータを、ホスト2に対して送出する(S17)。
また記憶装置1は、図5に示すように、ステップS12またはS13の後、書き込み先を表す論理アドレスの指定とともにデータを書き込むべき指示をホスト2から受け入れると(S21:書き込み指示受け入れ)、使用管理情報が主管理情報と予備管理情報とのいずれに設定されているかを判断する(S22)。つまり記憶装置1は、ステップS11で選択したモードが通常モードであるか非常モードであるかを調べればよい。
ここで使用管理情報が予備管理情報に設定されていたときには(S22:予備管理情報)、記憶装置1は、ホスト2に対して書き込みが禁止されている旨のエラーを報知して(S23)、処理を続ける。
この例では、ホスト2は、この報知を受けて、データの書き込み指示を行ったユーザに対して、データ書き込みができない旨のエラーを提示することとなる。
また記憶装置1は、ステップS22において、使用管理情報が主管理情報に設定されていたときには(S22:主管理情報)、使用管理情報となっている主管理情報を参照して、指定された論理アドレスに対応する物理アドレスを取得する(S24)。
記憶装置1は、当該取得した物理アドレスで特定されるブロック(対象ブロック)内のデータに対して、RMW処理を実行する(S25)。すなわち記憶装置1は、この対象ブロック内のデータをキャッシュに読み出す。また記憶装置1は、空きブロックとなっているブロックの物理アドレス(新アドレス)を特定しておく。そして記憶装置1はキャッシュしたデータのうち、取得した物理アドレスで特定される部分を、指示されたデータで上書きし、当該少なくとも一部が上書きされたデータ(1ブロック分のデータ)を、新アドレスで特定されるブロックに書き込む。また記憶装置1は、対象ブロック内のデータを無効なものに設定して対象ブロックを空きブロックとする。
記憶装置1は、このとき、使用管理情報である主管理情報のうち、ホスト2から受け入れた論理アドレスに対応する物理アドレスを、上記新アドレスに書き換える(S26:主管理情報の更新)。
その後、記憶装置1は、主管理情報を複写して、予備管理情報として、記憶部13に格納する(S27)。
この記憶装置1の動作により、通常モードで動作している間、データの書き込み等の処理によって更新された主管理情報が予備管理情報として別途記録される。
そして主管理情報の読み出しができなくなったときには、ユーザは、インタフェース部12のGPIOを、電気的にハイとなっているラインに接続して記憶装置1を起動する。ここでの接続は、ジャンパ線を差し込む方法でもよいし、ディップスイッチを用いて回路を接続する方法でもよい。
記憶装置1は、起動時にインタフェース部12のGPIOが電気的にハイとなっているか否かを調べ、ハイとなっていれば非常モードで起動し、使用管理情報を予備管理情報として動作する。
本実施の形態のここでの例では、別途記録された予備管理情報を参照してデータの読み出しを行うので、主管理情報が破損していた場合であってもデータの読み出しを行うことが可能となる。またこのように予備管理情報を使用管理情報としている間は、書き込みを禁止する(リードオンリーとする)ので、例えばフラッシュメモリ部14に不良セクタが多発している場合等であっても、それ以上の破損の進行を遅らせることができ、読み出しの可能性を増大させる。
[モード切り替えの別の例]
またここまでの説明では、通常モードと非常モードとの切り替えが、インタフェース部12のGPIOがハイであるか否かにより行われていたが、本実施の形態はこれに限られない。例えば記憶装置1は、起動時にインタフェース部12のGPIOが電気的にローであるときに通常モードで起動し、GPIOが電気的にハイであるときに非常モードで起動してもよい。
またGPIOを用いるのではなく、制御部11の所定の一対の信号線が短絡されているか、開放されているかにより通常モードと非常モードとを切り替えてもよい。ここで信号線は、周辺回路に対してコマンドを出力するコマンド出力信号線と、周辺回路からの応答の入力を受け入れる応答入力信号線とを用いてもよい。この例の場合、制御部11は、起動時にコマンド出力信号線を介して所定のコマンドを出力し、応答入力信号線からの入力を調べる。ここで、出力した上記所定のコマンドがそのまま応答入力信号線から入力された場合、制御部11は、信号線が短絡されていると判断して、非常モードで起動する。つまり、使用管理情報を予備管理情報とする。一方、制御部11は、起動時にコマンド出力信号線を介して所定のコマンドを出力したときに、応答入力信号線からの入力が、当該所定のコマンドとは異なっているときには、制御部11は、信号線が開放されていると判断して、通常モードで起動する。つまり、使用管理情報を主管理情報とする。
さらに本実施の形態のある例では、記憶装置1は、複数のピンを有する外部インタフェースであるインタフェース部12の、記憶装置1の起動時のピンの接続状態に基づいて、通常モードと非常モードとを切り替え、主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択することとしてもよい。
具体的に、記憶装置1は、インタフェース部12であるSATAの電源ラインまたは信号ラインの接続状態によって通常モードと非常モードとを切り替える。一例として、記憶装置1の備えるSATAの電源ラインのうち、12Vの入力を受ける12V電源ライン(SSDでは一般的に利用されていない)が、記憶装置1の起動時にGNDレベルとなっているか、開放(NC)となっているかによって通常モードと非常モードとを切り替えることとしてもよい。この例では、12V電源ラインがGNDレベルであるか開放端となっているかを検出する検出回路をインタフェース部12が備えればよい。記憶装置1は、起動時に、この検出回路の出力を調べて、12V電源ラインがGNDレベルであるか開放端となっているかを認識し、例えば12V電源ラインがGNDレベルである(12V電源ラインがGNDと短絡するようジャンパ線等が接続されている)ときに、非常モードで起動して、使用管理情報を予備管理情報に設定する。
また記憶装置1は、起動時に、この検出回路の出力により、12V電源ラインが開放されているとき(12V電源ラインがGNDと短絡するようジャンパ線等が接続されていないとき)や所定の電圧(12Vである場合を含む)が印加されているときなど、GNDレベルでないときには、通常モードで起動して、使用管理情報を主管理情報に設定する。
また、SATAでは、電源ラインと信号線とのコネクタが分かれたポートが規定されていることから、記憶装置1は起動時(電源ラインが接続され、電源がオンとなったとき)に、信号線のコネクタが接続されているか否かにより、通常モードと非常モードとを切り替えてもよい。
この例では、非常モードで起動しようとするユーザは、インタフェース部12のコネクタのうち信号線のコネクタを引き抜いた状態で、ホスト2の電源を投入して、記憶装置1を起動する。記憶装置1は、起動時に信号線が接続されていないことを検出し、非常モードで起動して、使用管理情報を予備管理情報に設定する。
また通常モードで起動しようとする場合、ユーザは、通常通り、インタフェース部12の電源ラインのコネクタと信号線のコネクタとの双方をホスト2に接続した状態で、ホスト2の電源を投入して記憶装置1を起動する。記憶装置1は、起動時に信号線が接続されていることを検出し、通常モードで起動して、使用管理情報を主管理情報に設定する。
さらに記憶装置1は、ホスト2から入力されるコマンド(モード切り替えコマンド)により、次回起動時のモードを、通常モードと非常モードとのいずれかに設定してもよい。
この例では、記憶装置1は、電源が供給されていない間でも、前回ホスト2から入力されたモード切り替えコマンドの内容を保持する、不揮発性の記憶部(レジスタ)を備えておく。
記憶装置1は、ホスト2からモード切り替えコマンドの入力を受けると、当該モード切り替えコマンドの内容を上記レジスタに保持する。このとき記憶装置1は、再起動を行ってもよい。記憶装置1は、再起動後など、次回の起動時にこのレジスタの内容を調べ、レジスタが空である(モード切り替えコマンドの入力を受けていない)か、または、レジスタに保持されたモード切り替えコマンドが「通常モード」での起動を指示するものである場合は、通常モードで起動して、使用管理情報を主管理情報に設定する。
一方、記憶装置1は、再起動後などの起動時に上記レジスタに保持されたモード切り替えコマンドが「非常モード」での起動を指示するものである場合は、非常モードで起動して、使用管理情報を予備管理情報に設定する。
この例では、ユーザは記憶装置1のモードを変更しようとするときには、ホスト2に記憶装置1を接続して動作させている状態で、ホスト2に、所望のモードでの起動を指示するモード切り替えコマンドを出力させる。このホスト2の動作は、ホスト2にインストールしたドライバソフトウエア等で行わせればよい。
またこの例では、記憶装置1は、起動時にレジスタにモード切り替えコマンドが保持されていたときには、当該保持されたモード切り替えコマンドに対応したモードで起動するとともに、当該レジスタの内容を空に戻しておいてもよい。
[実施形態の効果]
本実施の形態によると、通常使用する主管理情報が破損した時にも、予備管理情報を利用してデータのアクセスが可能となる。また、主管理情報と予備管理情報のいずれを使用して起動するかを、ユーザが明示的に指示可能となる。
1 記憶装置、2 ホスト、11 制御部、12 インタフェース部、13 記憶部、14 フラッシュメモリ部、21 アクセス処理部、22 予備生成部、23 選択部。

Claims (7)

  1. データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
    前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
    起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
    前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
    前記選択手段は、起動時に所定の回路配線が接続されているか否かを判断し、当該判断の結果に基づいて、前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
  2. データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
    前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
    起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
    前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
    さらに、複数の配線を有する外部インタフェースを備え、
    前記選択手段は、当該外部インタフェースの前記配線の接続状態に基づいて前記主管理
    情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
  3. データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
    前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
    起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
    前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
    さらに、複数のピンを有する外部インタフェースを備え、
    前記選択手段は、当該外部インタフェースの起動時の接続状態に基づいて前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する記憶装置。
  4. データと主管理情報とを格納するストレージデバイスを含む記憶手段と、
    前記主管理情報と同一の内容の情報を含む予備管理情報を生成する予備生成手段と、
    起動時に前記主管理情報と、予備管理情報とのいずれか一方を使用管理情報として選択する選択手段と、を含み、
    前記選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスが行われる記憶装置であって、
    切り替えコマンドを受け入れるコマンド受入手段をさらに含み、
    前記コマンド受入手段が切り替えコマンドを受け入れたときに、記憶装置を再起動して、予備管理情報を使用管理情報として選択するよう、前記選択手段を制御する記憶装置。
  5. 請求項1からのいずれか一項に記載の記憶装置であって、
    前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行う記憶装置。
  6. 請求項1からのいずれか一項に記載の記憶装置であって、
    前記記憶手段は、前記ストレージデバイスと、当該ストレージデバイスとは異なる記憶部を備え、
    前記予備管理情報は、主管理情報が格納される前記ストレージデバイスとは異なる前記記憶部に格納される記憶装置。
  7. 請求項6に記載の記憶装置であって、
    前記選択手段が、予備管理情報を使用管理情報として選択したときには、当該選択された使用管理情報を用いて、前記ストレージデバイスに格納されたデータへのアクセスとして読出専用のアクセスのみを行う記憶装置。
JP2020092573A 2020-05-27 2020-05-27 記憶装置 Active JP7457248B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020092573A JP7457248B2 (ja) 2020-05-27 2020-05-27 記憶装置
US17/322,902 US11681612B2 (en) 2020-05-27 2021-05-18 Storage apparatus and method that generates preliminary management information including the same content as main management information for identifying physical address of data
CN202110576149.4A CN113741803A (zh) 2020-05-27 2021-05-26 存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020092573A JP7457248B2 (ja) 2020-05-27 2020-05-27 記憶装置

Publications (2)

Publication Number Publication Date
JP2021189619A JP2021189619A (ja) 2021-12-13
JP7457248B2 true JP7457248B2 (ja) 2024-03-28

Family

ID=78706234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020092573A Active JP7457248B2 (ja) 2020-05-27 2020-05-27 記憶装置

Country Status (3)

Country Link
US (1) US11681612B2 (ja)
JP (1) JP7457248B2 (ja)
CN (1) CN113741803A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233638A (ja) 2006-02-28 2007-09-13 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010152703A (ja) 2008-12-25 2010-07-08 Sony Corp 不揮発性記憶装置、情報記録システム、及び情報記録方法
JP2012517627A (ja) 2009-02-12 2012-08-02 株式会社東芝 メモリシステム及びメモリシステムの制御方法
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
JP2013246479A (ja) 2012-05-23 2013-12-09 Fujitsu Ltd 処理装置,処理方法,処理プログラム及び管理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4143040B2 (ja) 2004-03-31 2008-09-03 東芝ソリューション株式会社 ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP2010146087A (ja) 2008-12-16 2010-07-01 Hitachi Ltd 系切替計算機システムの管理方法
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
US9348783B2 (en) * 2012-04-19 2016-05-24 Lockheed Martin Corporation Apparatus and method emulating a parallel interface to effect parallel data transfer from serial flash memory
US9047172B2 (en) * 2012-11-29 2015-06-02 Intel Corporation Adaptive power control of memory map storage devices
US9471485B2 (en) * 2013-03-12 2016-10-18 Macronix International Co., Ltd. Difference L2P method
US10114550B2 (en) * 2016-01-07 2018-10-30 Samsung Electronics Co., Ltd. Data storage device and data processing system including the data storage device
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233638A (ja) 2006-02-28 2007-09-13 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010152703A (ja) 2008-12-25 2010-07-08 Sony Corp 不揮発性記憶装置、情報記録システム、及び情報記録方法
JP2012517627A (ja) 2009-02-12 2012-08-02 株式会社東芝 メモリシステム及びメモリシステムの制御方法
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
JP2013246479A (ja) 2012-05-23 2013-12-09 Fujitsu Ltd 処理装置,処理方法,処理プログラム及び管理装置

Also Published As

Publication number Publication date
US20210374051A1 (en) 2021-12-02
CN113741803A (zh) 2021-12-03
JP2021189619A (ja) 2021-12-13
US11681612B2 (en) 2023-06-20

Similar Documents

Publication Publication Date Title
TWI678613B (zh) 系統開機碼記憶體管理方法、記憶體裝置及其製造方法
TWI636396B (zh) 固態硬碟機架構
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US6754765B1 (en) Flash memory controller with updateable microcode
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
JP3906825B2 (ja) 計算機システム、計算機システム起動方法およびプログラム
KR101552207B1 (ko) 예비 영역을 가지는 반도체 메모리 장치
US20050172068A1 (en) Memory card and semiconductor device
US20070130442A1 (en) Apparatus and Methods Using Invalidity Indicators for Buffered Memory
JP2010152913A (ja) セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
US20130212320A1 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20080307152A1 (en) Memory Module, Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Read/Write Method
JP2007272635A (ja) メモリシステム及びコントローラ
JP2006331378A (ja) フラッシュメモリ保存システム
KR20080084082A (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
JP2007011872A (ja) メモリカードとその制御方法
JP2005115561A (ja) フラッシュrom制御装置
JP4661369B2 (ja) メモリコントローラ
JP7457248B2 (ja) 記憶装置
JP3808842B2 (ja) 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240226

R150 Certificate of patent or registration of utility model

Ref document number: 7457248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150