JP7053399B2 - 情報処理システム - Google Patents
情報処理システム Download PDFInfo
- Publication number
- JP7053399B2 JP7053399B2 JP2018143750A JP2018143750A JP7053399B2 JP 7053399 B2 JP7053399 B2 JP 7053399B2 JP 2018143750 A JP2018143750 A JP 2018143750A JP 2018143750 A JP2018143750 A JP 2018143750A JP 7053399 B2 JP7053399 B2 JP 7053399B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- flash storage
- data
- storage
- host
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
SSDのようなストレージデバイスは、コンピュータのような様々な情報処理装置の外部ストレージデバイスとして使用されている。
本発明が解決しようとする課題は、書き込み性能を改善することができる情報処理システムを提供することである。
まず、図1を参照して、一実施形態に係る情報処理システム1の構成を説明する。
この情報処理システム1は、複数のフラッシュストレージデバイスと、ホスト(ホストデバイス)2とを含む。これらフラッシュストレージデバイスの各々は不揮発性メモリを含んでおり、この不揮発性メモリにデータを書き込み、この不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。図1においては、図示の簡単化のために3台のフラッシュストレージデバイス3-1、3-2、3-3がホスト2に接続されているケースが例示されているが、ホスト2に接続されるフラッシュストレージデバイスの台数は3台に限らず、例えば、5台、10台、または数十台のように幾つであってもよい。
ホスト2は、フラッシュストレージデバイス3をアクセスする情報処理装置(コンピューティングデバイス)として実現されてもよい。ホスト2は、サーバコンピュータであってもよいし、パーソナルコンピュータであってもよい。フラッシュストレージデバイス3-1、3-2、3-3の各々は、ホスト2として機能する情報処理装置の外部ストレージとして使用され得る。フラッシュストレージデバイス3-1、3-2、3-3の各々は、この情報処理装置に内蔵されてもよいし、この情報処理装置にケーブルまたはネットワークを介して接続されてもよい。
あるフラッシュストレージデバイスが寿命に到達すると、このフラッシュストレージデバイスはもはや正常に動作することができなくなる。
なお、ホスト2が、ソフトウェアRAID機能を有する情報処理装置として実現されている場合には、ホスト側ストレージコントローラ43の機能はプロセッサ41によって実現されてもよい。
フラッシュストレージデバイス3-1~3-3がホスト側ストレージコントローラ43に接続されており且つフラッシュストレージデバイス3-4がホスト側ストレージコントローラ43に接続されていない通常動作状態においては、ホスト側ストレージコントローラ43は、フラッシュストレージデバイス3-1~3-3をアクセスするための第1の論理アドレス空間に属する論理アドレスそれぞれとこれら論理アドレスそれぞれに対応するデータ部それぞれが書き込まれたフラッシュストレージデバイス3-1~3-3内の記憶位置を示すアドレスそれぞれとの間のマッピングを、アドレス変換テーブルを使用して管理する。
第1の論理アドレス空間に属する論理アドレス(グローバルLBA)それぞれに対応するデータ部それぞれが書き込まれたフラッシュストレージデバイス3-1~3-3内の記憶位置は、これらフラッシュストレージデバイス内の論理記憶位置であってもよいし、あるいは、これらフラッシュストレージデバイス内の物理記憶位置であってもよい。
この場合、ホスト側ストレージコントローラ43は、フラッシュストレージデバイス3-1をデータが書き込まれるべきフラッシュストレージデバイスとして選択せず、ライトコマンドをフラッシュストレージデバイス3-1に送出しない。ホスト側ストレージコントローラ43が特定のグローバルLBAを指定するリード要求をホスト2(ホストソフトウェア)から受信した場合には、ホスト側ストレージコントローラ43は、アドレス変換テーブルを参照して、この特定のグローバルLBAに関連付けられているローカル論理アドレス(または物理アドレス)をアドレス変換テーブルから取得する。取得されたローカル論理アドレス(または物理アドレス)がフラッシュストレージデバイス3-1を指しているならば、ホスト側ストレージコントローラ43は、このローカル論理アドレスを指定するリードコマンドをフラッシュストレージデバイス3-1に送信する。
また、第2の処理においては、フラッシュストレージデバイス3-3に既に格納されているデータ部それぞれに対応する更新データ部それぞれが、例えば、フラッシュストレージデバイス3-2、またはフラッシュストレージデバイス3-4に書き込まれる。これにより、フラッシュストレージデバイス3-3に既に格納されているデータ部それぞれに対応する更新データ部それぞれを書き込むための空き領域をフラッシュストレージデバイス3-3の不揮発性メモリ内に確保するためのガベージコレクションを行うことなく、これら更新データ部それぞれの書き込みが可能となる。したがって、フラッシュストレージデバイス3-4の空き領域を、フラッシュストレージデバイス3-3用のオーバープロビジョニング領域として利用することが可能となる。換言すれば、フラッシュストレージデバイス3-4の空き領域を、フラッシュストレージデバイス3-3のGCの必要性をなくすための記憶領域として利用することが可能となる。
このホスト2は、ラックに収容可能な薄い箱形の筐体201を備える。例えば、筐体201の前面201A側には、複数のフラッシュストレージデバイス3を収容可能な複数のスロットが設けられている。
前面201Aにおいては、これらスロットそれぞれの近くに上述のLED52がそれぞれ配置されていてもよい。
図2の筐体201の構造は、フラッシュストレージデバイス3-1、3-2、3-3(あるいは、フラッシュストレージデバイス3-1~3-4)とホスト側ストレージコントローラ43とを含むストレージアレイに適用することもできる。
フラッシュストレージデバイス3は、コントローラ4および不揮発性メモリ(NAND型フラッシュメモリ)5を備える。フラッシュストレージデバイス3は、ランダムアクセスメモリ、例えば、DRAM6も備えていてもよい。
不良ブロックとは、このブロックへのデータの書き込み、このブロックからのデータの読み出し、このブロックに対する消去動作、等が正常に実行できないブロックを意味する。
GCは、フリーブロックの個数を増やすための動作である。フリーブロックとは、有効データを含まないブロックを意味する。GCにおいては、コントローラ4は、有効データと無効データとが混在する幾つかのブロック内の有効データを別のブロック(例えばフリーブロック)にコピーする。ここで、フラッシュストレージデバイス3においては、有効データとは、ある論理アドレス(デバイスLBA)に関連付けられているデータを意味する。例えば、フラッシュストレージデバイス3のLUT31から参照されているデータ(すなわちデバイスLBAから最新のデータとして紐付けられているデータ)は有効データであり、後にホスト2からリードされる可能性がある。無効データとは、どのデバイスLBAにも関連付けられていないデータを意味する。どのデバイスLBAにも関連付けられていないデータは、もはやホスト2からリードされる可能性が無いデータである。そして、コントローラ4は、LUT31を更新して、コピーされた有効データのデバイスLBAそれぞれに、コピー先の物理アドレスそれぞれをマッピングする。有効データが別のブロックにコピーされることによって無効データのみになったブロックはフリーブロックとして解放される。これによって、このブロックは、このブロックに対する消去動作が実行された後に再利用することが可能となる。
コントローラ4は、ホストインタフェース11、CPU12、NANDインタフェース13、DRAMインタフェース14、符号化/復号回路15等を含んでもよい。これらホストインタフェース11、CPU12、NANDインタフェース13、DRAMインタフェース14、符号化/復号回路15は、バス10を介して相互接続されていてもよい。
符号化/復号回路15は、エラー訂正コード(ECC)エンコーダおよびECCデコーダとして機能し得る。NAND型フラッシュメモリ5にデータをライトすべき時、符号化/復号回路15は、データ(書き込むべきライトデータ)をエンコード(ECCエンコード)することによってこのデータにエラー訂正コード(ECC)を冗長コードとして付加する。NAND型フラッシュメモリ5からデータがリードされた時、符号化/復号回路15は、リードされたデータに付加されたECCを使用して、このデータのエラー訂正を行う(ECCデコード)。
LUT31は、フラッシュストレージデバイス3用のLBA(ここでは、LBA0~LBAx)にそれぞれ対応する複数のエントリを含む。各エントリは、このエントリに対応するLBAのデータが格納されているNAND型フラッシュメモリ5内の物理記憶位置を示す物理アドレス(PBA)を格納するために使用される。
LBA/グローバルLBA管理テーブル33は、フラッシュストレージデバイス3用のLBA(ここでは、LBA0~LBAx)にそれぞれ対応する複数のエントリを含んでいてもよい。この場合、各エントリは、このエントリに対応するLBAに対応するグローバルLBAを格納するために使用される。
上述したように、ホスト2からフラッシュストレージデバイス3に送信される各ライトコマンドは、ライトデータ部が書き込まれるべきフラッシュストレージデバイス3内の論理記憶位置を示すLBA(またはライトデータ部が書き込まれるべきフラッシュストレージデバイス3のNAND型フラッシュメモリ5内の物理記憶位置を示す物理アドレス)と、このライトデータ部に対応するグローバルLBAとを含む。フラッシュストレージデバイス3のコントローラ4(ライト制御部21)は、図6に示すように、ライトデータ部とこのライトデータ部に対応するグローバルLBAとのペアを、書き込み先ブロックBLKに書き込んでもよい。例えば、各ブロックにおいて、各ページは、ユーザデータを格納するためのユーザデータ領域(16KB)と管理データを格納するための冗長領域とを含んでもよい。ページサイズは16KB+アルファである。コントローラ4は、LUT31の上述の管理サイズ(例えば4Kバイト)と同じサイズを有するライトデータ部とこのライトデータ部に対応するグローバルLBAとの双方を書き込み先ブロックBLK内のページに書き込んでもよい。
ホスト2に接続されている各フラッシュストレージデバイスのコントローラ4(リフレッシュ制御部23)は、このフラッシュストレージデバイスが通常動作モードまたはライト禁止モードのいずれに設定されているかを判定する(ステップS11)。
ホスト側ストレージコントローラ43は、記憶位置管理部431、空き領域管理部432、および除去管理部433を含む。記憶位置管理部431は、ホスト側のアドレス変換テーブルとして機能するルックアップテーブル(LUT)431Aを管理する。ホスト側ストレージコントローラ43は、LUT431Aを使用して、第1の論理アドレス空間に属する論理アドレス(グローバルLBA)それぞれとグローバルLBAそれぞれに対応するデータ部それぞれが書き込まれたフラッシュストレージデバイス3-1~3-3(あるいはフラッシュストレージデバイス3-1~3-4)内の記憶位置それぞれとの間のマッピングを管理する。
すなわち、LUT431Aは、グローバルLBA(グローバルLBA0~グローバルLBAn)それぞれに対応する複数のエントリを含む。あるグローバルLBAに対応するエントリは、このグローバルLBAに対応するデータ部が格納されているフラッシュストレージデバイス3-1~3-3(あるいはフラッシュストレージデバイス3-1~3-4)内の特定の論理記憶位置を示すローカルLBAを格納する。各ローカルLBAは、デバイスIDとデバイスLBAとを含む。デバイスIDは、あるフラッシュストレージデバイスの識別子である。デバイスLBAは、このストレージデバイス用のLBA範囲内の一つのLBAを示す。
この場合、記憶位置管理部431は、(1)ホスト2(ホストソフトウェア)から受信されるライト要求それぞれに応じて、フラッシュストレージデバイス3-1に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、フラッシュストレージデバイス3-2に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、フラッシュストレージデバイス3-3に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれとをフラッシュストレージデバイス3-4に書き込む第1の書き込む処理と、(2)第1の書き込む処理によってフラッシュストレージデバイス3-2または3-3に空き領域が確保された後、ホスト2(ホストソフトウェア)から受信される後続のライト要求それぞれに応じて、フラッシュストレージデバイス3-1に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、フラッシュストレージデバイス3-2に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、フラッシュストレージデバイス3-3に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれとを、フラッシュストレージデバイス3-2または3-3に書き込む第2の書き込み処理とを実行する。
フラッシュストレージデバイス3-1に有効データが存在しなくなった場合、除去管理部433は、フラッシュストレージデバイス3-1のNAND型フラッシュメモリ内の各ブロックの消去動作を指示する消去コマンドをフラッシュストレージデバイス3-1に送出してもよい。さらに、除去管理部433は、フラッシュストレージデバイス3-1内の消去動作が実行された各ブロックに予め指定されたデータ(ダミーデータ)を書き込んでもよい。
フラッシュストレージデバイス3-1に格納されている有効データが無くなった場合、またはフラッシュストレージデバイス3-1の全てのブロックに対する消去動作が完了した場合、あるいは全てのブロックに対する消去動作とダミーデータ書き込み動作の双方が完了した場合に、除去管理部433は、フラッシュストレージデバイス3-1が除去可能であることをストレージ管理プログラム303に通知してもよい。
図9は、グローバルLBAそれぞれに対応するデータ部をフラッシュストレージデバイス3-1~3-3内の記憶位置に書き込む処理を示す。
図10は、グローバルLBAそれぞれに対応するデータ部の各々を、除去されるべきことが決定されたフラッシュストレージデバイス3-1以外のフラッシュストレージデバイス3-2、3-3それぞれと追加のフラッシュストレージデバイス3-4の中から選択される任意の一つのフラッシュストレージデバイス内の任意の記憶位置(論理記憶位置)に書き込む処理を示す。
フラッシュストレージデバイス3-4がホスト2に追加接続された直後(Start)においては、例えば、フラッシュストレージデバイス3-1~3-3の各々のNAND型フラッシュメモリはデータでほぼ満たされている。フラッシュストレージデバイス3-4のNAND型フラッシュメモリは大きなサイズの空き領域(多くのフリーブロック)を含む。
この場合、ホスト側ストレージコントローラ43は、ホスト2(ホストソフトウェア)から受信されるライト要求それぞれに関連付けられたデータ部それぞれをフラッシュストレージデバイス3-3のNAND型フラッシュメモリに書き込んでもよい。これにより、フラッシュストレージデバイス3-1に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれがフラッシュストレージデバイス3-3に書き込まれる。さらに、フラッシュストレージデバイス3-2~3-3に既に書き込まれているデータ部それぞれに対応する更新データ部それぞれもフラッシュストレージデバイス3-3に書き込まれる。
ホスト側ストレージコントローラ43は、例えば、フラッシュストレージデバイス3-1~3-3の各々に含まれる不良ブロックの数を監視し、不良ブロックの数がある閾値を超えたフラッシュストレージデバイスを除去されるべきフラッシュストレージデバイスとして検出する(ステップS21)。除去されるべきフラッシュストレージデバイスが検出された場合、ホスト側ストレージコントローラ43は、オペレータにフラッシュストレージデバイスの追加を促してもよい(ステップS22)。
フラッシュストレージデバイス3-1に残り有効データが存在するならば(ステップS29のYES)、ホスト側ストレージコントローラ43の処理はステップS26に戻る。
もしこのグローバルLBAに関連付けられている現在のローカルLBAがフラッシュストレージデバイス3-1を指していないならば、このグローバルLBAに対応する更新データが既に他のフラッシュストレージデバイスに書き込まれているので、ホスト側ストレージコントローラ43は、この有効データを他のフラッシュストレージデバイスにコピーする処理を実行しない。
ホスト側ストレージコントローラ43は、LUT431Aを参照して、フラッシュストレージデバイス3-1に残り有効データが存在するか否かを判定する(ステップS29)。
ホスト側ストレージコントローラ43が特定のグローバルLBAを指定するリード要求をホスト2(ホストソフトウェア)から受信した場合(ステップS34のYES)、ホスト側ストレージコントローラ43は、リードすべきデータが格納されているフラッシュストレージデバイスからこのリードすべきデータを読み出す(ステップS35)。ステップS35では、ホスト側ストレージコントローラ43は、まず、この特定のグローバルLBAに関連付けられているローカルLBA(または物理アドレス)をLUT431Aから取得する。そして、ホスト側ストレージコントローラ43は、取得されたローカルLBAに含まれるデバイスLBAを含むリードコマンドを、取得されたローカルLBAに含まれるデバイスIDによって示されるフラッシュストレージデバイスに送信する。
ステップS36では、ホスト側ストレージコントローラ43は、フラッシュストレージデバイス3-1のNAND型フラッシュメモリ内の各ブロックの消去動作を指示する消去コマンドをフラッシュストレージデバイス3-1に送出してもよい。さらに、ホスト側ストレージコントローラ43は、フラッシュストレージデバイス3-1内の消去動作が実行された各ブロックに、予め指定されたデータ(ダミーデータ)を書き込んでもよい。
図16のフローチャートによって示される手順は、図15のフローチャートで示される手順に比し、図15のステップS29の処理の代わりにステップS100の処理が実行される点と、ステップS100の処理とステップS36の処理との間にステップS101の処理が実行される点のみが異なっており、他の部分は図15のフローチャートで示される手順と同じである。
フラッシュストレージデバイス3-1の残り有効データ量が閾値Th1未満でないならば(ステップS100のNO)、ホスト側ストレージコントローラ43の処理はステップS26に戻る。
図17は、ホスト側ストレージコントローラ43の別の構成例を示す。
記憶位置管理部531は、LUT531Aを使用して、第1の論理アドレス空間に属する論理アドレス(グローバルLBA)それぞれとグローバルLBAそれぞれに対応するデータ部それぞれが書き込まれたフラッシュストレージデバイス3-1~3-3(あるいはフラッシュストレージデバイス3-1~3-4)内の物理記憶位置を示す物理アドレスそれぞれとの間のマッピングを管理する。
上述したように、ホストソフトウェアからホスト側ストレージコントローラ43に送信されるライト要求の各々に関連付けられたデータ部(つまり、各グローバルLBAに対応するデータ部)は、フラッシュストレージデバイス3-1~3-3を含むストレージシステム内の任意の物理記憶位置に書き込むことができる。図18では、グローバルLBA0に対応するデータ部がフラッシュストレージデバイス3-1内の物理アドレス(デバイスPBA)100に書き込まれ、グローバルLBA1に対応するデータ部がフラッシュストレージデバイス3-1内の物理アドレス(デバイスPBA)110に書き込まれ、グローバルLBA2に対応するデータ部がフラッシュストレージデバイス3-2内の物理アドレス(デバイスPBA)50に書き込まれ、グローバルLBA3に対応するデータ部がフラッシュストレージデバイス3-2内の物理アドレス(デバイスPBA)60に書き込まれ、グローバルLBA4に対応するデータ部がフラッシュストレージデバイス3-1内の物理アドレス(デバイスPBA)200に書き込まれ、グローバルLBA5に対応するデータ部がフラッシュストレージデバイス3-3内の物理アドレス(デバイスPBA)500に書き込まれ、グローバルLBA6に対応するデータ部がフラッシュストレージデバイス3-3内の物理アドレス(デバイスPBA)600に書き込まれ、グローバルLBA7に対応するデータ部がフラッシュストレージデバイス3-2内の物理アドレス(デバイスPBA)100に書き込まれ、グローバルLBA10に対応するデータ部がフラッシュストレージデバイス3-2内の物理アドレス(デバイスPBA)10に書き込まれ、グローバルLBA11に対応するデータ部がフラッシュストレージデバイス3-1内の物理アドレス(デバイスPBA)900に書き込まれ、そして、グローバルLBAnに対応するデータ部がフラッシュストレージデバイス3-3内の物理アドレス(デバイスPBA)70に書き込まれた場合が想定されている。
Claims (14)
- 各々が不揮発性メモリを含む複数のストレージデバイスと、
ストレージ制御部とを具備し、
前記ストレージ制御部は、
ホストから受信されるライト要求それぞれに応じて、第1の論理アドレス空間に属する論理アドレスそれぞれに対応するデータ部の各々を前記複数のストレージデバイスの中から選択される任意のストレージデバイスに書き込み、
前記論理アドレスそれぞれと前記データ部それぞれが書き込まれた前記複数のストレージデバイス内の記憶位置を示すアドレスそれぞれとの間のマッピングを、アドレス変換テーブルを使用して管理し、
前記複数のストレージデバイス内の第1のストレージデバイスが除去されるべきことが決定され且つ不揮発性メモリを含む追加のストレージデバイスが前記ストレージ制御部に接続された場合、
前記第1のストレージデバイスをデータの書き込みが禁止されデータの読み出しが許可される第1のモードで制御し、
前記ホストから受信される後続のライト要求それぞれに応じて、前記第1のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれを、前記第1のストレージデバイスを除く前記複数のストレージデバイス内の残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスに書き込む第1の処理と、前記残りの一つ以上のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれを、前記残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスに書き込む第2の処理とを実行し、
前記第1の処理によって前記第1のストレージデバイス内の有効データの量が閾値未満に減少された場合、前記第1のストレージデバイス内の前記有効データを、前記残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスにコピーするように構成されている、情報処理システム。 - 前記第1のストレージデバイスが前記第1のモードである期間中において、前記第1のストレージデバイスは、前記第1のストレージデバイス内の不揮発性メモリに含まれる複数のブロックのうち、誤りビット数が閾値を上回るデータが格納されているブロックそれぞれを検出する動作と、前記検出された各ブロック内の有効データを他のストレージデバイスにコピーするように前記ストレージ制御部に要求する動作とを含むリフレッシュ動作を実行するように構成され、
前記ストレージ制御部は、前記第1のストレージデバイスからの前記要求の受信に応じて、前記検出された各ブロック内の有効データを、前記残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスにコピーするように構成されている請求項1記載の情報処理システム。 - 前記ストレージ制御部は、書き込むべきデータ部に対応する前記第1の論理アドレス空間内の一つの論理アドレスを含むライトコマンドを、前記複数のストレージデバイスの中から選択される任意のストレージデバイスに送信するように構成され、
前記第1のストレージデバイスは、前記検出された各ブロック内の有効データに対応する前記第1の論理アドレス空間内の論理アドレスを示す情報を前記ストレージ制御部に送信するように構成されている請求項2記載の情報処理システム。 - 前記ストレージ制御部は、前記第1のストレージデバイスに有効データが存在しなくなることによって前記第1のストレージデバイスが除去可能になった場合、前記第1のストレージデバイスが除去可能であることを示すように構成されたインジケータを駆動するように構成されている請求項1記載の情報処理システム。
- 前記残りの一つ以上のストレージデバイスの一つに既に書き込まれているデータ部に対応する更新データ部が前記第2の処理によって前記残りの一つ以上のストレージデバイスの他の一つまたは前記追加のストレージデバイスに書き込まれた場合、前記データ部を無効化するためのコマンドを前記残りの一つ以上のストレージデバイスの前記一つに送信するように構成されている請求項1記載の情報処理システム。
- 前記ストレージ制御部は、前記論理アドレスそれぞれと前記複数のストレージデバイスおよび前記追加のストレージデバイスを含むストレージシステム内の論理記憶位置を示すローカル論理アドレスそれぞれとの間のマッピングを、前記アドレス変換テーブルを使用して管理し、各ローカル論理アドレスは、ストレージデバイスの識別子と、このストレージデバイス用の論理アドレス範囲内の一つの論理アドレスとを含む請求項1記載の情報処理システム。
- 前記ストレージ制御部は、前記論理アドレスそれぞれと前記複数のストレージデバイスおよび前記追加のストレージデバイスとを含むストレージシステム内の物理記憶位置を示す物理アドレスそれぞれとの間のマッピングを前記アドレス変換テーブルを使用して管理し、各物理アドレスは、ストレージデバイスの識別子と、このストレージデバイス内の不揮発性メモリの一つの物理記憶位置を示す物理アドレスとを含む請求項1記載の情報処理システム。
- 前記ストレージ制御部は、
記複数のストレージデバイスの不揮発性メモリそれぞれに含まれるフリーブロックそれぞれを前記複数のストレージデバイスによって共有される共有フリーブロックの集合として管理し、
前記第1のストレージデバイスが除去されるべきことが決定され且つ前記追加のストレージデバイスが前記ストレージ制御部に接続された場合、前記第1のストレージデバイスの各フリーブロックを前記共有フリーブロックの集合から削除し、且つ前記追加のストレージデバイスの全てのフリーブロックを前記共有フリーブロックの集合に追加するように構成されている請求項1記載の情報処理システム。 - 前記ストレージ制御部は、前記第1のストレージデバイスに有効データが存在しなくなった場合、前記第1のストレージデバイスの不揮発性メモリ内の各ブロックの消去動作を指示する消去コマンドを前記第1のストレージデバイスに送信するように構成されている請求項1記載の情報処理システム。
- 前記ストレージ制御部は、前記消去動作が実行された各ブロックに予め指定されたデータを書き込むように構成されている請求項9記載の情報処理システム。
- 前記ストレージ制御部は、
前記論理アドレスそれぞれと前記複数のストレージデバイスおよび前記追加のストレージデバイスとを含むストレージシステム内の物理記憶位置を示す物理アドレスそれぞれとの間のマッピングを前記アドレス変換テーブルを使用して管理し、
前記第1のストレージデバイス内の不揮発性メモリのブロックの一つが前記書き込み処理によって有効データを含まないブロックとなる度、有効データを含まない前記ブロックの消去動作を指示する消去コマンドを前記第1のストレージデバイスに送信するように構成されている請求項1記載の情報処理システム。 - 前記ストレージ制御部は、前記第1のストレージデバイス内の不揮発性メモリの一つのブロックの消去動作が実行される度に、この消去動作が実行されたブロックに予め指定されたデータを書き込むように構成されている請求項11記載の情報処理システム。
- 情報処理システムであって、
各々が不揮発性メモリを含む複数のストレージデバイスと、
ストレージ制御部とを具備し、
前記ストレージ制御部は、
ホストから受信されるライト要求それぞれに応じて、第1の論理アドレス区間に属する論理アドレスそれぞれに対応するデータ部の各々を前記複数のストレージデバイスの中から選択される任意のストレージデバイスに書き込み、
前記論理アドレスそれぞれと前記データ部それぞれが書き込まれた前記複数のストレージデバイス内の記憶位置を示すアドレスそれぞれとの間のマッピングを、アドレス変換テーブルを使用して管理し、
前記複数のストレージデバイス内の第1のストレージデバイスが除去されるべきことが決定され且つ不揮発性メモリを含む追加のストレージデバイスが前記ストレージ制御部に接続された場合、
前記第1のストレージデバイスをデータの書き込みが禁止されデータの読み出しが許可される第1のモードで制御し、
前記ホストから受信される後続のライト要求それぞれに応じて、前記第1のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、前記第1のストレージデバイスを除く前記複数のストレージデバイス内の残りの一つ以上のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれとを前記追加のストレージデバイスに書き込む第1の書き込み処理を実行し、前記第1の書き込み処理によって前記残りの一つ以上のストレージデバイスに所定量以上の空き領域が確保された後、前記ホストから受信されるさらに後続のライト要求それぞれに応じて、前記第1のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれと、前記残りの一つ以上のストレージデバイスに既に書き込まれているデータ部それぞれに対応する更新データ部それぞれとを前記残りの一つ以上のストレージデバイスに書き込む第2の書き込み処理を実行し、
前記第1のストレージデバイスに既に書き込まれている前記データ部それぞれに対応する前記更新データ部それぞれの書き込みによって前記第1のストレージデバイス内の有効データの量が閾値未満に減少された場合、前記第1のストレージデバイス内の前記有効データを、前記残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスにコピーするように構成されている、情報処理システム。 - 前記第1のストレージデバイスが前記第1のモードである期間中において、前記第1のストレージデバイスは、前記第1のストレージデバイス内の不揮発性メモリに含まれる複数のブロックのうち、誤りビット数が閾値を上回るデータが格納されているブロックそれぞれを検出する動作と、前記検出された各ブロック内の有効データを他のストレージデバイスにコピーするように前記ストレージ制御部に要求する動作とを含むリフレッシュ動作を実行するように構成され、
前記ストレージ制御部は、前記第1のストレージデバイスからの前記要求の受信に応じて、前記検出された各ブロック内の有効データを、前記残りの一つ以上のストレージデバイスと前記追加のストレージデバイスとの中から選択される任意のストレージデバイスにコピーするように構成されている請求項13記載の情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018143750A JP7053399B2 (ja) | 2018-07-31 | 2018-07-31 | 情報処理システム |
US16/353,274 US11385800B2 (en) | 2018-07-31 | 2019-03-14 | Information processing system for controlling storage device |
US17/833,956 US11922028B2 (en) | 2018-07-31 | 2022-06-07 | Information processing system for controlling storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018143750A JP7053399B2 (ja) | 2018-07-31 | 2018-07-31 | 情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020021232A JP2020021232A (ja) | 2020-02-06 |
JP7053399B2 true JP7053399B2 (ja) | 2022-04-12 |
Family
ID=69229756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018143750A Active JP7053399B2 (ja) | 2018-07-31 | 2018-07-31 | 情報処理システム |
Country Status (2)
Country | Link |
---|---|
US (2) | US11385800B2 (ja) |
JP (1) | JP7053399B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10509722B2 (en) | 2017-08-31 | 2019-12-17 | Micron Technology, Inc. | Memory device with dynamic cache management |
US11481119B2 (en) * | 2019-07-15 | 2022-10-25 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
KR20220049109A (ko) * | 2020-10-14 | 2022-04-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
GB2611575A (en) * | 2021-10-11 | 2023-04-12 | The Sec Dep For Business Energy And Industrial Strategy | Connection of solid-state storage devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017162260A (ja) | 2016-03-10 | 2017-09-14 | 株式会社東芝 | メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法 |
JP2017174250A (ja) | 2016-03-25 | 2017-09-28 | 日本電気株式会社 | 制御装置、ストレージ装置、制御方法及びプログラム |
JP2017199043A (ja) | 2014-07-25 | 2017-11-02 | 日本電気株式会社 | ストレージ装置とシステム及び方法とプログラム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI427476B (zh) * | 2009-02-24 | 2014-02-21 | Silicon Motion Inc | 快閃記憶體的存取方法及快閃記憶體裝置 |
US8495423B2 (en) | 2009-08-11 | 2013-07-23 | International Business Machines Corporation | Flash-based memory system with robust backup and restart features and removable modules |
JP5349256B2 (ja) * | 2009-11-06 | 2013-11-20 | 株式会社東芝 | メモリシステム |
WO2012060824A1 (en) | 2010-11-02 | 2012-05-10 | Hewlett-Packard Development Company, L.P. | Solid-state disk (ssd) management |
US9489297B2 (en) * | 2013-01-21 | 2016-11-08 | Sandisk Technologies Llc | Pregroomer for storage array |
JP6005566B2 (ja) | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
US9678839B2 (en) * | 2014-09-12 | 2017-06-13 | Microsoft Technology Licensing, Llc | Scalable data storage pools |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9747177B2 (en) * | 2014-12-30 | 2017-08-29 | International Business Machines Corporation | Data storage system employing a hot spare to store and service accesses to data having lower associated wear |
JP6414852B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
US9910773B2 (en) * | 2016-03-29 | 2018-03-06 | Sandisk Technologies Llc | Method and system for compacting data in non-volatile memory |
US20170286311A1 (en) * | 2016-04-01 | 2017-10-05 | Dale J. Juenemann | Repetitive address indirection in a memory |
US10817436B2 (en) * | 2016-07-22 | 2020-10-27 | Lenovo (Singapore) Pte. Ltd. | Removal warning for connectable devices |
US10521344B1 (en) * | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10725904B2 (en) * | 2017-12-13 | 2020-07-28 | Micron Technology, Inc. | Synchronizing NAND logical-to-physical table region tracking |
-
2018
- 2018-07-31 JP JP2018143750A patent/JP7053399B2/ja active Active
-
2019
- 2019-03-14 US US16/353,274 patent/US11385800B2/en active Active
-
2022
- 2022-06-07 US US17/833,956 patent/US11922028B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017199043A (ja) | 2014-07-25 | 2017-11-02 | 日本電気株式会社 | ストレージ装置とシステム及び方法とプログラム |
JP2017162260A (ja) | 2016-03-10 | 2017-09-14 | 株式会社東芝 | メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法 |
JP2017174250A (ja) | 2016-03-25 | 2017-09-28 | 日本電気株式会社 | 制御装置、ストレージ装置、制御方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US11922028B2 (en) | 2024-03-05 |
US20220300169A1 (en) | 2022-09-22 |
US20200042200A1 (en) | 2020-02-06 |
US11385800B2 (en) | 2022-07-12 |
JP2020021232A (ja) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11221914B2 (en) | Memory system for controlling nonvolatile memory | |
JP6967986B2 (ja) | メモリシステム | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20210406173A1 (en) | Computing system and method for controlling storage device | |
CN106874217B (zh) | 存储器系统及控制方法 | |
JP7053399B2 (ja) | 情報処理システム | |
JP2018073040A (ja) | メモリシステム | |
KR20210111527A (ko) | 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법 | |
US11042305B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10310764B2 (en) | Semiconductor memory device and storage apparatus comprising semiconductor memory device | |
US20190265910A1 (en) | Memory system | |
TW202230110A (zh) | 記憶體系統及控制方法 | |
US11893269B2 (en) | Apparatus and method for improving read performance in a system | |
KR20210124705A (ko) | 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법 | |
US20240143511A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
JP7077151B2 (ja) | メモリシステム | |
JP7475989B2 (ja) | メモリシステムおよび制御方法 | |
JP6817340B2 (ja) | 計算機 | |
KR20220090020A (ko) | 비휘발성 메모리 시스템이 생성한 메타데이터를 전송하는 장치 및 방법 | |
KR20210142863A (ko) | 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법 | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
JP2024127539A (ja) | メモリシステム | |
KR20220108342A (ko) | 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법 | |
JP2022095257A (ja) | メモリシステム | |
CN113064548A (zh) | 存储器子系统中的逻辑到物理页转译中的相干性问题解决方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20180831 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220221 |
|
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: 20220308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220331 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7053399 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |