JP2009282678A - Flash memory module and storage system - Google Patents
Flash memory module and storage system Download PDFInfo
- Publication number
- JP2009282678A JP2009282678A JP2008133098A JP2008133098A JP2009282678A JP 2009282678 A JP2009282678 A JP 2009282678A JP 2008133098 A JP2008133098 A JP 2008133098A JP 2008133098 A JP2008133098 A JP 2008133098A JP 2009282678 A JP2009282678 A JP 2009282678A
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- block
- physical
- command
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
本発明は、メモリコントローラとフラッシュメモリを備えたフラッシュメモリモジュール、及び、フラッシュメモリモジュールを備えたストレージシステムに関する。 The present invention relates to a flash memory module including a memory controller and a flash memory, and a storage system including the flash memory module.
例えば、フラッシュメモリモジュールを備えるストレージシステムとして、特許文献1に開示のストレージシステムがある。特許文献1によれば、フラッシュメモリモジュール内のメモリコントローラが、ウェアレベリング処理やリクラメーション処理を行う。 For example, there is a storage system disclosed in Patent Document 1 as a storage system including a flash memory module. According to Patent Document 1, a memory controller in a flash memory module performs wear leveling processing and reclamation processing.
ストレージシステムは、複数のフラッシュメモリモジュールと、それら複数のフラッシュメモリモジュールを管理する上位のコントローラ(以下、「ストレージコントローラ」と言う)を備える。ストレージコントローラは、例えば、上位装置(例えば、ホストコンピュータ、或いは他のストレージシステム)からI/O要求を受け付け、そのI/O要求に従って、複数のフラッシュメモリモジュールのうちの一以上のフラッシュメモリモジュールにアクセスする。 The storage system includes a plurality of flash memory modules and a host controller (hereinafter referred to as “storage controller”) that manages the plurality of flash memory modules. For example, the storage controller receives an I / O request from a higher-level device (for example, a host computer or other storage system), and sends it to one or more flash memory modules among a plurality of flash memory modules according to the I / O request. to access.
フラッシュメモリモジュールとして、一般に、SSD(Solid State Device)が知られている。SSDには、例えばNAND型フラッシュメモリが搭載されている。NAND型フラッシュメモリでは、データの読み出し及び書き込みは、ページ単位で行われ、データの消去は、ブロック単位で行われる。NAND型フラッシュメモリでは、ブロック単位で使用不能になっていく。 As a flash memory module, an SSD (Solid State Device) is generally known. For example, a NAND flash memory is mounted on the SSD. In the NAND flash memory, data reading and writing are performed in page units, and data erasing is performed in block units. In the NAND flash memory, it becomes unusable in units of blocks.
フラッシュメモリの管理は、SSD内のメモリコントローラによって行われる。このため、SSDの上位にあるストレージコントローラが、フラッシュメモリのブロックを意識した制御を行うことができない。 Management of the flash memory is performed by a memory controller in the SSD. For this reason, the storage controller above the SSD cannot perform control in consideration of the block of the flash memory.
また、SSDは、ハードディスクドライブ(HDD)のインタフェースとの互換性を有するが、SSD間で通信するインタフェースは無い。 The SSD is compatible with a hard disk drive (HDD) interface, but there is no interface for communication between SSDs.
そこで、本発明の一つの目的は、ストレージコントローラがフラッシュメモリの記憶領域を意識した制御を行えるようにすることにある。 Accordingly, an object of the present invention is to enable a storage controller to perform control in consideration of a storage area of a flash memory.
本発明の別の目的は、フラッシュメモリモジュール同士でデータの受け渡しを行えるようにすることにある。 Another object of the present invention is to enable data exchange between flash memory modules.
本発明の他の目的は、後の説明から明らかになるであろう。 Other objects of the present invention will become clear from the following description.
ストレージコントローラが、論理アドレスと前記フラッシュメモリ内の記憶領域(例えば物理ブロック)の物理アドレスとの対応関係を表すアドレス変換情報を管理する。ストレージコントローラが、上位装置からのI/O要求が指定する論理アドレスに対応した物理アドレスを、上記アドレス変換情報を用いて特定し、特定された物理アドレスに基づくI/O先情報を有したI/Oコマンドを、フラッシュメモリモジュール内のメモリコントローラに送信する。メモリコントローラは、ストレージコントローラからのI/Oコマンドが有するI/O先情報から特定される、フラッシュメモリ内の記憶領域に対してI/Oを行う。 A storage controller manages address conversion information indicating a correspondence relationship between a logical address and a physical address of a storage area (for example, a physical block) in the flash memory. The storage controller specifies the physical address corresponding to the logical address specified by the I / O request from the higher-level device using the address conversion information, and has the I / O destination information based on the specified physical address. The / O command is transmitted to the memory controller in the flash memory module. The memory controller performs I / O with respect to the storage area in the flash memory specified from the I / O destination information included in the I / O command from the storage controller.
好適な実施形態では、ストレージコントローラと複数のフラッシュメモリモジュールとの両方が接続される第一のスイッチ機構に加えて、複数のフラッシュメモリモジュールが接続されるがストレージコントローラは接続されない第二のスイッチ機構を備える。フラッシュメモリモジュール間でのデータ転送は、第二のスイッチ機構を介して行われる。 In a preferred embodiment, in addition to the first switch mechanism to which both the storage controller and the plurality of flash memory modules are connected, the second switch mechanism to which the plurality of flash memory modules are connected but the storage controller is not connected. Is provided. Data transfer between the flash memory modules is performed via the second switch mechanism.
以下、図面を参照して、本発明の幾つかの実施形態を説明する。 Hereinafter, several embodiments of the present invention will be described with reference to the drawings.
図20は、本発明の第一の実施形態に係るストレージシステムの構成を示す。 FIG. 20 shows the configuration of the storage system according to the first embodiment of the present invention.
ストレージシステム2000は、複数のフラッシュメモリモジュール2003と、複数のフラッシュメモリモジュールの上位にあるストレージコントローラとを備えている。
The
各フラッシュメモリモジュール2003は、例えば、複数のNAND型のフラッシュメモリチップと、フラッシュメモリ制御部301(例えば図3参照)とを有する。従って、フラッシュメモリモジュール2003には、ページ単位でデータの書込み及び読出しが行われ、ブロック単位で、データの消去が行われる。以下の説明では、一つのページに記憶されるデータを「データ要素」と言い、複数のページで構成される一つのブロックに記憶されるデータを「データ要素群」と言う。また、ストレージシステムの上位装置としてのホストコンピュータ2009から受信するI/O要求で指定されているアドレスから特定されるブロックを「論理ブロック」と言うことがある。論理ブロックに割り当てられている物理ブロックを「元ブロック」と言うことがある。元ブロック内の第一の物理ページに記憶されている第一のデータ要素が第二のデータ要素に更新される場合、第二のデータ要素は、元ブロックに割り当てられている別の物理ブロック内の第二の物理ページに書き込まれるが、元ブロック内の上記第一の物理ページを「元ページ」と言い、上記第一のデータ要素を「元データ要素」と言い、上記別の物理ブロックを「更新ブロック」と言い、更新ブロック内の上記第二の物理ページを「更新ページ」と言い、上記第二のデータ要素を「更新データ要素」と言うことがある。また、論理ブロック内の論理ページに対応した最新のデータ要素を「有効データ要素」と言う。元データ要素が未更新であれば、有効データ要素はその元データ要素であり、元データ要素に対応した更新データ要素が更新ブロックに存在しているならば、有効データ要素はその更新データ要素である。
Each
複数のフラッシュメモリモジュール2003のうちの各二以上のフラッシュメモリモジュール2003により、RAIDグループが構成される(RAIDは、Redundant Array of Independent (or Inexpensive) Disksの略である)。RAIDグループは、パリティグループと呼ばれることもある。一又は複数のRAIDグループが提供する一又は複数の記憶空間を論理的に区切ることで、複数の論理ボリュームが形成される。複数の論理ボリュームのうちの少なくとも一つが、ストレージシステム2000の上位装置としてのホストコンピュータ2009に提供される。ストレージコントローラは、論理ボリュームを指定したI/O要求(ライト要求或いはリード要求)をホストコンピュータ2009から受けて、そのI/O要求に応答して、そのI/O要求(ライト要求)で指定されている論理ボリュームにライト対象のデータを書き込む、或いは、そのI/O要求(リード要求)で指定されている論理ボリュームからリード対象のデータを読み出す。論理ボリュームにライト対象のデータが書き込まれるということは、その書込み先を表す論理アドレスに対応した一又は複数のページに、ライト対象のデータの基になっているデータ要素が書き込まれるということである。また、論理ボリュームからリード対象のデータが読み出されるということは、その読出し元を表す論理アドレスに対応した一又は複数のページから、リード対象のデータの基になっている有効データ要素が読み出されるということである。
A RAID group is constituted by two or more
ストレージコントローラは、例えば、ホストアダプタ2004と、キャッシュメモリ2005と、プロセッサ2006とで構成されている。ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006は、多重化(例えば二重化)されている。ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006と、複数のフラッシュメモリモジュール2003とが、第一のスイッチ機構2001に接続されている。
The storage controller includes, for example, a
第一のスイッチ機構2001は、一又は複数のスイッチデバイスで構成される。第一のスイッチ機構2001を通じて、フラッシュメモリモジュール2003、ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006同士の通信が行われる。
The
キャッシュメモリ2005は、論理ボリュームに書き込まれるライト対象のデータ、及び、論理ボリュームから読み出されたリード対象のデータを一時的に記憶する。キャッシュメモリ2005は、多重化されているプロセッサ2006(つまり複数のプロセッサ2006)からアクセス可能である。キャッシュメモリ2005の一部の記憶領域であるキャッシュ領域2201には、複数のフラッシュメモリモジュール2003内の複数のフラッシュメモリに関する情報(以下、「フラッシュ管理情報」と言う)が記憶される。ホストコンピュータ2009からホストアダプタ2004で受信するI/O要求では、論理ボリュームの論理ブロックのアドレス(論理アドレス範囲)が指定されているため、論理アドレス範囲に対応するデータ要素がどのページに記憶されているかを管理する必要があるが、フラッシュ管理情報は、論理アドレス範囲と物理アドレスとの対応関係を表すアドレス変換情報を含む。プロセッサ2006は、そのアドレス変換情報を用いて、所望のフラッシュメモリ内のページ或いはブロックにアクセスすることができる。アドレス変換情報は、例えば、図21に示す第一の管理テーブルと、図22に示す第二の管理テーブルとを含んでいる。第一の管理テーブルで、論理アドレス範囲と大まかな物理アドレスとの対応関係が管理されており、第二の管理テーブルで、大まかな物理アドレスと詳細な物理アドレスとの対応関係が管理されている。
The
具体的には、第一の管理テーブルには、図21に示すように、論理アドレス範囲毎に、大まかな物理アドレスが対応付けられている。大まかな物理アドレスは、例えば、フラッシュメモリ制御部アドレス、ブロック番号、更新ページマップ、及び、更新ブロックアドレスで構成されている。論理アドレス範囲は、論理ブロックのアドレスである。その論理ブロックに対応した元ブロックを特定するために、その元ブロックの番号と、その元ブロックにアクセス可能なフラッシュメモリ制御部のアドレスが対応付けられている。ブロック番号内には、元ブロックを含んだフラッシュメモリチップのアドレスであって、その元ブロックにアクセス可能なフラッシュメモリ制御部が指定できるアドレスも含まれる。更新ページマップは、元ブロック内の元ページ(つまり更新されたページ)の位置を示すマップ(例えばビットマップ)である。更新ブロックアドレスは、論理アドレス範囲から同定される論理ブロックに対応した元ブロックに割り当てられている更新ブロックのアドレスである。更新ブロックアドレスは、例えば、フラッシュメモリ制御部アドレスとブロック番号で構成されている。 Specifically, as shown in FIG. 21, a rough physical address is associated with the first management table for each logical address range. The rough physical address includes, for example, a flash memory control unit address, a block number, an update page map, and an update block address. A logical address range is an address of a logical block. In order to identify the original block corresponding to the logical block, the number of the original block is associated with the address of the flash memory control unit that can access the original block. The block number includes an address of the flash memory chip including the original block, which can be designated by the flash memory control unit that can access the original block. The updated page map is a map (for example, a bitmap) indicating the position of the original page (that is, the updated page) in the original block. The update block address is the address of the update block assigned to the original block corresponding to the logical block identified from the logical address range. The update block address includes, for example, a flash memory control unit address and a block number.
第二の管理テーブルには、図22に示すように、更新ブロックアドレス毎に、書込み位置情報及び元ページ情報が記録される。書込み位置情報は、更新ブロックのどのページまでが更新ページとなっているか(更新データ要素が書き込まれているページであるか)を表す情報である。元ページ情報は、元ページを同定するための情報であり、更新ページ毎に対応付けられる情報である。元ページ情報は、例えば、元ページに対応するページ番号と、その元ページを有する元ブロックの番号と、その元ブロックにアクセスするフラッシュメモリ制御部のアドレスとで構成されている。 In the second management table, as shown in FIG. 22, write position information and original page information are recorded for each update block address. The write position information is information indicating up to which page of the update block is an update page (whether it is a page in which an update data element is written). The original page information is information for identifying the original page, and is information associated with each updated page. The original page information includes, for example, a page number corresponding to the original page, the number of the original block having the original page, and the address of the flash memory control unit that accesses the original block.
以上のことから、第一及び第二の管理テーブルで構成されるアドレス変換情報は、論理ブロック内の論理ページに対応した有効データ要素が記憶されている物理ページの在り処を示す情報と言うことができる。例えば、プロセッサ2006は、或る論理ページに対応する元ページに関する元ページ情報が、その元ページを含んだ元ブロックに割り当てられている更新ブロックに対応付けられていなければ、その元ページに記憶されているデータ要素が、その或る論理ページに対応する有効データ要素であることがわかる。一方、上記元ページ情報が上記更新ブロックに対応付けられていれば、プロセッサ2006は、その元ページ情報が対応付けられている一以上の更新ページのうちアドレスが最も後ろである更新ページに記憶されている更新データ要素が、上記或る論理ページに対応した有効データ要素であることがわかる。プロセッサ2006は、例えば上記或る論理ページに対応した有効データ要素を読み出す場合には、有効データ要素を記憶する元ページ又は更新ページを表すI/O先情報を有したページ単位のリードコマンドを作成し、そのリードコマンドを、その元ページ又は更新ページを有するフラッシュメモリモジュール2003内のフラッシュメモリ制御部(図3参照)に送信する。これにより、そのフラッシュメモリ制御部によって、図4を参照して後に説明する単一ページ読出し動作が実行される。以上のように、プロセッサ2006からフラッシュメモリモジュール2003に送信されるI/Oコマンドが、I/O先となる物理ページを表すI/O先情報を有するので、フラッシュメモリモジュール2003内で、論理アドレスと物理アドレスの対応関係を表す情報を保持する必要がない。このため、後述のフラッシュメモリ制御部は、論理アドレスから物理アドレスを特定するというアドレス変換機能を有していなくて良い。
From the above, the address conversion information configured by the first and second management tables is information indicating the location of a physical page in which valid data elements corresponding to the logical page in the logical block are stored. Can do. For example, the
再び図20を参照する。ホストアダプタ2004は、ホストコンピュータ2009からI/O要求を受け付け、I/O要求を、第一のスイッチ機構2001を通じてプロセッサ2006に転送する。また、ホストアダプタ2004は、受け付けたI/O要求がライト要求の場合、ライト対象のデータをキャッシュメモリ2005に書き込む。また、ホストアダプタ2004は、受け付けたI/O要求がリード要求の場合、キャッシュメモリ2005に記憶されているリード対象のデータをキャッシュメモリ2005から読み出し、読み出したリード対象のデータをホストコンピュータ2009に送信する。ホストアダプタ2004には、ホストコンピュータ2009の他に、図示のように管理端末2007が接続される。管理端末2007のディスプレイ画面2008には、例えば、複数のフラッシュメモリモジュール2003における多数のフラッシュメモリチップに関する状況が表示される。その状況を表す情報(以下、「フラッシュメモリ状況情報」と言う)は、例えば、所定の記憶資源(例えばキャッシュメモリ2005)に蓄積される。プロセッサ2006が、ホストアダプタ2004を通じて、フラッシュメモリ状況情報を管理端末2007に送信し、管理端末2007が、その情報が表す状況を表示する。表示される状況としては、例えば、第一の管理テーブル及び/又は第二の管理テーブルから特定される状況や、どのフラッシュメモリモジュール内のどのフラッシュメモリチップで不良ブロックが存在するか等がある。
Refer to FIG. 20 again. The
プロセッサ2006は、ホストアダプタ2004からのI/O要求を処理する。具体的には、そのI/O要求から特定される論理アドレスに対応した後述の物理アドレスを特定し、その物理アドレスに基づくI/O先情報を有したI/Oコマンドを、そのI/O先情報から特定される記憶領域を有するフラッシュメモリチップにアクセス可能なフラッシュメモリ制御部301(例えば図3参照)に送信する。また、プロセッサ2006は、後に詳述するリクラメーションコマンドを作成して発行する。I/Oコマンドの作成や、リクラメーションコマンドの作成には、前述した第一及び第二の管理テーブル(図21及び図22参照)のうちの必要部分のコピーが使用される。その必要部分のコピーは、例えば、プロセッサ2006が有するローカルメモリ2202に記憶される。なお、I/O先の記憶領域は、物理ページである。リードやライトがページ単位で行われるためである。従って、I/Oコマンドに含まれるI/O先情報には、例えば、I/O先領域に対応した物理ページのページ番号と、その物理ページを含んだ物理ブロックの番号と、その物理ブロックにアクセス可能なフラッシュメモリ制御部301のアドレスとが含まれている。つまり、I/Oコマンドは、ページ単位で発行される。一方、消去用のコマンドは、ブロック単位でプロセッサ2006から発行される。消去用のコマンドは、消去対象の物理ブロックの番号を有する。
The
ストレージシステム2000には、第一のスイッチ機構2001の他に、第二のスイッチ機構2002が備えられる。第二のスイッチ機構2002は、一又は複数のスイッチデバイスで構成されている。第二のスイッチ機構2002には、複数のフラッシュメモリモジュール2003が接続されるが、ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006は接続されない。すなわち、第二のスイッチ機構2002は、フラッシュメモリモジュール2003間の通信に専用のスイッチ機構である。第二のスイッチ機構2002にフラッシュメモリモジュール2003を接続していくことで、フラッシュメモリモジュール2003をツリー状に拡張することができる。
The
図3は、フラッシュメモリモジュール2003の構成を示す。
FIG. 3 shows the configuration of the
フラッシュメモリモジュール2003は、メモリコントローラとしてのフラッシュメモリ制御部301と、これに接続されたフラッシュメモリである複数(又は一つ)のフラッシュメモリチップ315とを備えたモジュールである。
The
フラッシュメモリチップ315は、複数の物理ブロック316で構成されている。一つの物理ブロック316は、複数個(例えば64個)の物理ページ317で構成されている。
The
フラッシュメモリ制御部301に、データバス319及び制御信号ライン318を共有する複数のフラッシュメモリチップ315が接続されている。データバス319は、データ要素が流れるバスである。制御信号ライン318は、制御信号が流れるラインである。
A plurality of
フラッシュメモリ制御部301と各フラッシュメモリチップ315とを結ぶラインとして、制御信号ライン318の他に、チップ選択信号が流れるライン320や、ビジー信号が流れるライン321がある。ライン320及び321は、フラッシュメモリチップ315毎に独立して配線されている。
In addition to the
フラッシュメモリ制御部301は、コマンド解釈部302、フラッシュコマンド生成部303、第一のブロックバッファ305、シーケンス/タイミング制御部304、第一のページバッファ306、第二のページバッファ307、チップ選択部308及びビジー信号監視部309を備える。フラッシュメモリ制御部301は、第一のデータバス312を経由して第一のスイッチ機構2001(図20参照)に接続されている。また、図3には示されていないが、図9及び図10に示すように、フラッシュメモリ制御部301は、更に、第二のブロックバッファ903(図9及び図10では、転送元と転送先を区別するために903A、903Bと記載している)を備えている。フラッシュメモリ制御部301が、第二のデータバス904を経由して第二のスイッチ機構2002(図20参照)に接続されている。フラッシュメモリ制御部301がプロセッサ2006から受信する信号として、例えば、コマンド310及び起動信号313がある。フラッシュメモリ制御部301がプロセッサ2006に送信する信号として、例えば、ステータス311及び状態信号314がある。起動信号313は、フラッシュメモリ制御部301を起動させるための信号である。状態信号314は、フラッシュメモリ制御部301の状態(例えば、動作中又は動作終了)を示す信号である。
The flash
コマンド解釈部302は、プロセッサ2006からのコマンド310を解釈し、解釈の結果をフラッシュコマンド生成部303に伝える。また、コマンド解釈部302は、ステータス311をプロセッサ2006に送信する。
The
フラッシュコマンド生成部303は、コマンド解釈部302での解釈の結果を基に、フラッシュメモリチップ315に対するコマンド(以下、「フラッシュコマンド」と言う)を生成する。フラッシュコマンドは、例えば制御信号ライン318を経由して、ターゲットのフラッシュメモリチップ315に送信される。フラッシュコマンドの種類としては、例えば、リード、ライト及び消去の3種類がある。リード及びライトのフラッシュコマンドは、ページ単位で発行され、消去のフラッシュコマンドは、ブロック単位で発行される。リード及びライトのフラッシュコマンドに従うデータ要素は、データバス319を経由する。
The flash
第一のブロックバッファ305は、このバッファ305を有するフラッシュメモリモジュール2003内でリクラメーションする場合に使用されるバッファである。第一のブロックバッファ305には、更新ブロック内の更新ページから読み出された有効データ要素と、その更新ブロックに割り当てられているN個の元ブロック(Nは自然数)内の元ページから読み出された有効データ要素とが記憶される。従って、第一のブロックバッファ305の記憶容量としては、少なくともN個のブロック分の記憶容量が必要である。
The
シーケンス/タイミング制御部304は、フラッシュメモリ制御部301の動作シーケンスや各信号のタイミングを制御する。シーケンス/タイミング制御部304が、プロセッサ2006から起動信号313を受信してフラッシュメモリ制御部301を起動したり、状態信号314をプロセッサ2006に送信したりする。
The sequence /
第一のページバッファ306は、物理ページ317にデータ要素を書き込む場合に使用されるバッファである。具体的には、第一のページバッファ306には、物理ページ317に書き込まれるデータ要素が格納される。第一のページバッファ306の記憶容量は、1個の物理ページ分の記憶容量である。
The
第二のページバッファ307は、物理ページ317からデータ要素が読み出される場合に使用されるバッファである。具体的には、第二のページバッファ306には、物理ページ317から読み出されたデータ要素が格納される。第二のページバッファ307の記憶容量も、1個の物理ページ分の記憶容量である。
The
チップ選択部308は、フラッシュコマンドに基づき、フラッシュコマンドの送信先となるフラッシュメモリチップ315を選択する。
The
ビジー信号監視部309は、フラッシュメモリチップ315からのビジー信号の有無を監視する。
The busy
図9に示す第二のブロックバッファ903は、このバッファ903を有するフラッシュメモリモジュール2003と別のフラッシュメモリモジュール2003間でリクラメーションする場合に使用されるバッファである。第二のブロックバッファ903には、更新ブロック内の更新ページから読み出された有効データ要素と、その更新ブロックに割り当てられているMの元ブロック(Mは自然数)内の元ページから読み出された有効データ要素とが記憶される。従って、第二のブロックバッファ903の記憶容量としては、少なくともM個のブロック分の記憶容量が必要である。Mの値と前述したNの値は、同じであっても異なっていても良い。すなわち、或る更新ブロックに割り当てられている元ブロックの個数と、別の更新ブロックに割り当てられている元ブロックの個数は、同じであっても異なっていても良い。第二のブロックバッファ903に記憶されている有効データ要素群が、第二のデータバス904及び第二のスイッチ機構2002(図20参照)を介して、別のフラッシュメモリモジュール2003内のフラッシュメモリ制御部301に転送される。また、別のフラッシュメモリモジュール2003内のフラッシュメモリ制御部301から、第二のデータバス904及び第二のスイッチ機構2002(図20参照)を介して受信された有効データ要素群が、第二のブロックバッファ903に書き込まれる。
The second block buffer 903 shown in FIG. 9 is a buffer used when reclaiming between the
図2は、フラッシュメモリチップ315の構成を示す。
FIG. 2 shows a configuration of the
フラッシュメモリチップ315は、メモリセルアレイ202と、1又は2個の物理ページ分の記憶容量を有した内部バッファ205とを備える。ページ単位で、メモリセルアレイ202と内部バッファ205間でデータ要素が転送され、書き込みや読み出しが行われる。フラッシュメモリチップ315の制御には、チップ選択信号206や、データバス319に乗っている情報を識別する複数の制御信号207や、内部動作中を示すビジー信号208などが持ち用いられる。
The
メモリセルアレイ202は、複数の物理ブロック316に分割されている。また、各物理ブロック316は、複数の物理ページ317で構成されている。
The
例えば図1に、メモリセルアレイ202の一部分を示す。図1は、メモリセルが、横方向に16896個、縦方向に16個並んでいる例を示す図である。横方向の1列を構成するメモリセル群で、書込み及び読出しの単位であるページが構成されている。縦方向の1列では、フローティングゲートを備えるFET(Field Effect Transistor)が、16個直列に接続されている。メモリセルの縦方向をビット線とし、横方向をワード線としたときに、1本のワード線で選択されるメモリセルで、ページが構成されているということになる。また、図1では、16ページ分のメモリセルが示されていることになる。図1に示すメモリセルアレイ部分を4個まとめることで、消去単位である1個の物理ブロックが構成される。すなわち、図1の例によれば、物理ブロックが64個の物理ページで構成されていることになる。NAND型フラッシュメモリのアクセスは、コマンド、カラムアドレス、ローアドレスの順にアドレスが与えられて行われる。ローアドレスは、ブロックアドレスとページアドレスで構成される。上位側でブロックが指定され、下位側でページが指定される。
For example, FIG. 1 shows a part of the
以下、本実施形態で行われる種々の処理を説明する。 Hereinafter, various processes performed in the present embodiment will be described.
まず、図4を用いて、単一ページ読出し動作を説明する。 First, a single page read operation will be described with reference to FIG.
プロセッサ2006が、起動信号313を、リード元の物理ページを指定したリードコマンドの送信先フラッシュメモリ制御部301に送信し、且つ、そのリードコマンド310を、そのフラッシュメモリ制御部301に送信する。コマンド解釈部302は、コマンド310を受信し、そのコマンド310がリードコマンドであることを特定する。フラッシュコマンド生成部303が、そのリードコマンド310に対応したリードフラッシュコマンドを作成する。そのリードフラッシュコマンドには、以下の(4−1)乃至(4−3)を含んだアドレス情報、
(4−1)リード元の物理ページ401の番号、
(4−2)その物理ページ401を含んだ物理ブロックの番号、
(4−3)その物理ブロックを含んだフラッシュメモリチップの番号、
が含まれている。フラッシュコマンド生成部303が作成したリードフラッシュコマンドが、上記(4−3)から特定されるフラッシュメモリチップに送信される。それに応答して、リード元の物理ページ401からデータ要素が読み出され、読み出されたデータ要素が、第二のページバッファ307に転送される。そして、第二のページバッファ307から、第一のデータバス312を経由して、プロセッサ2006にそのデータ要素が転送される。リードの終了を表す状態信号314が、シーケンス/タイミング制御部304からプロセッサ2006に送信される。
The
(4-1) The number of the
(4-2) the number of the physical block containing the
(4-3) the number of the flash memory chip containing the physical block,
It is included. The read flash command created by the flash
次に、図5を用いて、単一ページ書き込み動作を説明する。 Next, a single page write operation will be described with reference to FIG.
プロセッサ2006が、起動信号313を、ライト先の物理ページを指定したライトコマンドの送信先フラッシュメモリ制御部301に送信し、且つ、そのライトコマンド310及びライト対象のデータ要素を、そのフラッシュメモリ制御部301に送信する。
The
ライト対象のデータ要素が、第一のデータバス312を経由して、第一のページバッファ306に格納される。
The data element to be written is stored in the
コマンド解釈部302は、コマンド310を受信し、そのコマンド310がライトコマンドであることを特定する。フラッシュコマンド生成部303が、そのライトコマンド310に対応したライトフラッシュコマンドを作成する。そのライトフラッシュコマンドには、以下の(5−1)乃至(5−3)を含んだアドレス情報、
(5−1)ライト先の物理ページ501の番号、
(5−2)その物理ページ501を含んだ物理ブロックの番号、
(5−3)その物理ブロックを含んだフラッシュメモリチップの番号、
が含まれている。フラッシュコマンド生成部303が作成したライトフラッシュコマンドが、上記(5−3)から特定されるフラッシュメモリチップに送信される。また、第一のページバッファ306に格納されているライト対象のデータ要素が、そのフラッシュメモリチップに送信される。その結果、ライト先の物理ページ501に、ライト対象のデータ要素が書き込まれる。単一ページ書込み動作の終了を表す状態信号314が、シーケンス/タイミング制御部304からプロセッサ2006に送信される。
The
(5-1) The number of the
(5-2) the number of the physical block containing the
(5-3) the number of the flash memory chip containing the physical block,
It is included. The write flash command created by the flash
図6を参照して、元ブロック内の有効データ要素に更新が発生する場合に行われる処理を説明する。 With reference to FIG. 6, the process performed when the valid data element in the original block is updated will be described.
元ブロック601の全ての元ページに有効データ要素が格納されているとする。また、元ブロック601に、有効データ要素が記憶されていない更新ブロック(消去済みブロック)602が割り当てられているとする。この場合、元ブロック601内の或る元ページに記憶されている有効データ要素が更新データ要素に更新される必要が生じると、その更新データ要素は、元ブロック601のその或る元ページではなく、更新ブロック602における、有効データ要素が書込まれていないページのうちページアドレスが最も若いページに書き込まれる。すなわち、更新データ要素は、ページアドレスの若い順に書き込まれる。
It is assumed that valid data elements are stored in all original pages of the
具体的には、例えば、元ページ603に記憶されている有効データ要素が更新データ要素に更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ブロック602内の物理ページ604を指定したライトコマンドを、その更新ブロック602を有するフラッシュメモリモジュール2003内のフラッシュメモリ制御部301に送信する。物理ページ604は、更新ブロック602における、有効データ要素が書込まれていないページであってページアドレスが最も若いページ(図6によれば先頭ページ)である。そのライトコマンドに従って、図5を参照して説明した単一ページ書込み動作が行われることにより、更新データ要素が、物理ページ604に書き込まれる。
Specifically, for example, when a valid data element stored in the
この場合、例えばフラッシュメモリ制御部301から、書込み完了を表す状態信号314がプロセッサ2006に送信される。プロセッサ2006は、例えばその状態信号314の受信に応答して、第一の管理テーブル(図21参照)における、元ブロック601が割り当てられている論理ブロックに対応した更新ページマップを更新する。具体的には、元ページ603は元ブロック601内の3番目の物理ページであるため、更新ページマップでは、3番目の物理ページに対応するビットが更新される。
In this case, for example, a
また、プロセッサ2006は、第二の管理テーブル(図22参照)における、更新ブロック602に対応した書込み位置情報を、1番目の更新ページまで更新データ要素が書き込まれていることを表す情報に更新する。
Further, the
更に、プロセッサ2006は、第二の管理テーブル(図22参照)における、更新ブロック602の1番目のページに対応する元ページ情報を、元ブロック601の3番目のページ603を表す情報に更新する。
Further, the
以下、第一及び第二の管理テーブルの更新の説明は省略或いは簡略するが、このような更新は、更新ブロック602に更新データ要素が書き込まれる都度に、プロセッサ2006によって行われる。
Hereinafter, the description of the update of the first and second management tables is omitted or simplified, but such an update is performed by the
プロセッサ2006は、更新後の第一及び第二の管理テーブルを参照すれば、元ブロック601が割り当てられている論理ブロックにおける3番目の論理ページに対応する有効データ要素が、元ブロック601内の元ページ603ではなく更新ブロック602内の更新ページ604に存在していることを知ることができる。
If the
さて、その後、元ブロック601内の元ページ605に記憶されている有効データ要素が更新データ要素に更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ブロック602内の更新ページ606(更新ページ604の次の更新ページ)を指定したライトコマンドを、フラッシュメモリ制御部301に送信する。これにより、その更新データ要素は、更新ページ606に書き込まれる。また、第一及び第二の管理テーブルも、前述と同様の方法で更新される。
Now, when the valid data element stored in the
その後、再び、同一の元ページ605が更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ページ607(更新ページ606の次の更新ページ)を指定したライトコマンドを、フラッシュメモリ制御部301に送信する。これにより、その更新データ要素は、更新ページ607に書き込まれる。また、第一及び第二の管理テーブルも、前述と同様の方法で更新される。この結果、第二の管理テーブルでは、更新ブロック602内の2番目と3番目の更新ページ606及び607にそれぞれ対応する元ページ情報が、元ブロック601の1番目の元ページ605を表す情報になっている。この第二の管理テーブルを参照することにより、プロセッサ2006は、より後側の更新ページ607に記憶されているデータ要素が、元ブロック601が割り当てられている論理ブロックにおける1番目の論理ページに対応する有効データ要素であることを知ることができる。
Thereafter, when the same
以下、リクラメーション処理について説明する。 Hereinafter, the reclamation process will be described.
リクラメーション処理とは、1個の論理ブロックに対応した有効データ要素が複数の物理ブロックに分散して存在する場合に、それら複数の物理ブロックに分散している有効データ要素を1個の物理ブロックに集約する処理である。リクラメーション処理は、例えば、元ブロックに割り当てられている更新ブロックに空きの更新ページが無くなったことがプロセッサ2006によって検出された場合に実行される。空きの更新ページが無くなったこととは、具体的には、更新ブロックに対応する書込み位置情報(図22参照)がその更新ブロックの最後の更新ページを表していることである。
Reclamation processing means that when valid data elements corresponding to one logical block are distributed in a plurality of physical blocks, the valid data elements distributed in the plurality of physical blocks are converted into one physical block. It is a process to consolidate. The reclamation process is executed, for example, when the
本実施形態では、リクラメーションに専用のコマンドであるリクラメーションコマンドがサポートされている。プロセッサ2006からフラッシュメモリ制御部301に発行されるリクラメーションコマンドに従って、リクラメーション処理が実行される。これにより、ホストコンピュータ2009からのI/O要求を処理する性能の低下を抑えることができる。
In this embodiment, a reclamation command that is a command dedicated to reclamation is supported. Reclamation processing is executed in accordance with a reclamation command issued from the
すなわち、リクラメーション処理では、ページ単位でのデータ要素の読み出しと、ページ単位でのデータ要素の書込みが行われるため、例えば、1個の物理ブロックが64個のページで構成されているとすると、プロセッサ2006が、64個のリードコマンドと64個のライトコマンドを発行することになると考えられる。これでは、プロセッサ2006が高負荷になり、故に、ホストコンピュータ2009からのI/O要求を処理する性能が低下するおそれがある。本実施形態では、前述の通り、リクラメーション処理を指示する専用のコマンドであるリクラメーションコマンドがサポートされている。このため、リクラメーション処理のためにプロセッサ2006がページ単位でリードコマンド及びライトコマンドを発行する必要が無くなるので、ホストコンピュータ2009からのI/O要求を処理する性能の低下を抑えることができる。
That is, in the reclamation process, data elements are read in units of pages and data elements are written in units of pages. For example, if one physical block is composed of 64 pages, It is considered that the
本実施形態で行われるリクラメーション処理は、モジュール内リクラメーション処理と、モジュール間リクラメーション処理の2種類に大別することができる。 The reclamation process performed in the present embodiment can be broadly classified into two types: an intra-module reclamation process and an inter-module reclamation process.
モジュール内リクラメーション処理によれば、1個のフラッシュメモリモジュール2003内で、1個の論理ブロックに対応する有効データ要素が、第一のブロックバッファ305上に、論理ページのアドレスが若い順に並べられ、並び替えられた有効データ要素が、そのモジュール2003内の消去済みの物理ブロックに書き込まれる。
According to the intra-module reclamation process, valid data elements corresponding to one logical block are arranged in the
モジュール間リクラメーション処理によれば、転送元のフラッシュメモリモジュール(以下、「転送元モジュール」と言う)2003内で、1個の論理ブロックに対応する有効データ要素が、第二のブロックバッファ903上に、論理ページのアドレスが若い順に並べられる。並べられた有効データ要素群が、転送元モジュール2003から転送先のフラッシュメモリモジュール(以下、「転送先モジュール」と言う)2003に第二のスイッチ機構2002(図20参照)を介して転送される。受信された有効データ要素群は、転送先モジュール2003内の第二のブロックバッファ903に一旦書き込まれた後、その第二のブロックバッファ903から消去済みの物理ブロックに書き込まれる。
According to the inter-module reclamation process, an effective data element corresponding to one logical block is stored in the second block buffer 903 in the transfer source flash memory module (hereinafter referred to as “transfer source module”) 2003. The logical page addresses are arranged in ascending order. The arranged valid data element groups are transferred from the
以下、各種のリクラメーション処理について詳細に説明する。 Hereinafter, various reclamation processes will be described in detail.
<モジュール内リクラメーション処理>。 <In-module reclamation process>.
図7を参照して、第一のモジュール内リクラメーション処理を説明する。 The first in-module reclamation process will be described with reference to FIG.
第一のモジュール内リクラメーション処理では、1個の論理ブロックに対応した有効データ要素が格納されている複数の物理ブロック611及び612と、有効データ要素の集約先の物理ブロック613が、1個のフラッシュメモリチップ614に存在する。物理ブロック611は、1個の論理ブロックに割り当てられている元ブロックであり、物理ブロック612は、その元ブロックに割り当てられている更新ブロックである。図7の例によれば、1個の更新ブロック612に割り当てられている元ブロック611の個数は1個のため、第一のブロックバッファ305の記憶容量としては、少なくとも1個の物理ブロック分の記憶容量が必要である。
In the first intra-module reclamation process, a plurality of
図7に示すように、更新ブロック612に割り当てられている元ブロック611の個数が1個の場合、プロセッサ2006は、図13に示すリクラメーションコマンド1300を、第一及び第二の管理テーブルを基に作成する。図13に示すリクラメーションコマンド1300には、先頭から順に言うと、リードコマンド1301、ページリスト1302、消去コマンド1304、ブロック番号1305、ライトコマンド1306及びブロック番号1307が含まれている。
As shown in FIG. 7, when the number of
ページリスト1302は、リードコマンド1301の後続のパラメータであり、各読出し元ページを表すブロック番号及びページ番号で構成されている。各読出し元ページは、1個の論理ブロックを構成する各論理ページに対応しており、有効データ要素が存在する物理ページである。どの物理ブロックのどの物理ページに有効データ要素が存在するかは、前述したように、プロセッサ2006が第一及び第二の管理テーブル(厳密には、プロセッサ2006内のローカルメモリに記憶された、第一及び第二の管理テーブルにおける必要部分のコピー)を参照することにより特定することができる。図7の例で言えば、ページリスト1302における1行目のブロック番号及びページ番号は、更新ブロック612の3番目の更新ページを表しており、2行目のブロック番号及びページ番号は、元ブロック611の2番目の元ページを表しており、3行目のブロック番号及びページ番号は、更新ブロック612の先頭の更新ページを表している。
The
ブロック番号1305は、消去コマンド1304の後続のパラメータであり、消去対象の物理ブロック613の番号を表している。ブロック番号1307は、ライトコマンド1306に後続のパラメータであり、データ要素群が消去される物理ブロック613を表している。
The
以上のようなリクラメーションコマンド1300をフラッシュメモリ制御部301が受信すると、以下の処理が行われる。
When the flash
すなわち、コマンド解釈部302が、受信したコマンド1300がリクラメーションコマンドであることを特定する。フラッシュコマンド生成部303が、図15に示すように、リクラメーションコマンド1300におけるリードコマンド1301に応答して、ページリスト1302に基づき、複数の読出し元ページにそれぞれ対応する複数のリードフラッシュコマンド1500を生成する。生成された各リードフラッシュコマンド1500は、そのコマンド1500で指定されている読出し元ページを有するフラッシュメモリチップに送信される。1個のリードフラッシュコマンド1500は、例えば、2個のページリードコマンド1504及び1507と、それらのコマンド1504及び1507に挟まれているパラメータであるカラムアドレス1505及びローアドレス1506とで構成されている。カラムアドレス1505及びローアドレス1506は、ページリスト1302におけるブロック番号及びページ番号を用いて算出される。リードフラッシュコマンド1500に応答して、このコマンド1500が指定する読出し元ページから、有効データ要素が読み出される。読み出された有効データ要素は、第一のブロックバッファ305に書き込まれる。第一のブロックバッファ305上には、読み出された有効データ要素が、論理ページのアドレスが若い順に並ぶ。
That is, the
次に、フラッシュメモリ制御部301は、リクラメーションコマンド1300における消去コマンド1304に応答して、ブロック番号1305から特定される物理ブロック613内のデータ要素群を消去する。具体的には、フラッシュコマンド生成部303が、物理ブロック613内のデータ要素群を消去するための消去用のフラッシュコマンドを作成する。作成された消去用のフラッシュコマンドは、物理ブロック613を有するフラッシュメモリチップに送信される。これにより物理ブロック613に記憶されているデータ要素群が消去される。
Next, in response to the erase
次に、フラッシュメモリ制御部301は、リクラメーションコマンド1300におけるライトコマンド1306に応答して、ブロック番号1307から特定される物理ブロック613に、第一のブロックバッファ305に格納されている有効データ要素群を書き込む。具体的には、フラッシュコマンド生成部303が、その有効データ要素群を構成する複数の有効データ要素を物理ブロック613内の複数の物理ページにそれぞれ書き込むためのページ単位の複数のライトフラッシュコマンドを作成する。作成されたライトフラッシュコマンドは、物理ブロック613を有するフラッシュメモリチップに送信される。これにより、第一のブロックバッファ305に格納されている複数の有効データ要素が物理ブロック613に書き込まれる。なお、第一のブロックバッファ305には、論理ページのアドレスが若い順に有効データ要素が並んでいるため、第一のブロックバッファ305の先頭の有効データ要素から順に、集約先の物理ブロック613の先頭ページから有効データ要素が順次に書込まれる。
Next, in response to the
フラッシュメモリ制御部301は、第一のブロックバッファ305に記憶されている有効データ要素群を物理ブロック613に書き終えた場合、リクラメーションコマンド1300の処理の終了を表す状態信号314を、プロセッサ2006に送信する。これにより、プロセッサ2006は、リクラメーション処理が終了したことを知ることができる。
When the flash
以上の一連の処理により、第一のモジュール内リクラメーション処理が完了する。なお、第一のモジュール内リクラメーション処理の変形例では、集約先の物理ブロック613が、フラッシュメモリチップ614とは異なるフラッシュメモリチップに存在しても良いし、元ブロック611又は更新ブロック612が、フラッシュメモリチップ614とは異なるフラッシュメモリチップに存在しても良い。つまり、第一のモジュール内リクラメーション処理の変形例では、複数のフラッシュメモリチップ間でリクラメーションが行われても良い。
The first in-module reclamation process is completed by the series of processes described above. In the modification example of the first in-module reclamation process, the aggregation-destination
1個のフラッシュメモリ制御部301は、複数のフラッシュメモリチップを制御しているので、フラッシュメモリチップで並列に処理できる処理は並列に行わせることができる。また、リクラメーション処理は、消去単位であるブロック毎に行われるが、フラッシュメモリチップに対して発行しているコマンドは、ページ単位のフラッシュコマンドである。従って、リクラメーション処理の最中でも、ホストコンピュータ2009からのI/O要求に基づく、プロセッサ2006からのページ単位のI/Oコマンドを、割り込ませることが可能である。
Since one flash
図8を参照して、第二のモジュール内リクラメーション処理を説明する。 The second in-module reclamation process will be described with reference to FIG.
第二のモジュール内リクラメーション処理では、2個の論理ブロックに対応した有効データ要素が格納されている複数の物理ブロック801〜803と、2個の論理ブロックにそれぞれ対応した2個の集約先の物理ブロック804及び805が、異なるフラッシュメモリチップ811及び812に存在する。具体的には、第一の論理ブロックに対応した第一の元ブロック801、更新ブロック803、及び、第二の論理ブロックに対応した第二の集約先ブロック805が、第一のフラッシュメモリチップ811に存在する。また、第二の論理ブロックに対応した第二の元ブロック802、及び、第一の論理ブロックに対応した第一の集約先ブロック804が、第二のフラッシュメモリチップ812に存在する。図8の例によれば、1個の更新ブロック803には、2個の元ブロック801及び802が割り当てられており、そのため、第一のブロックバッファ305の記憶容量は、2個の物理ブロック分の記憶容量が必要である。
In the second in-module reclamation process, a plurality of
図8に示すように、1個の更新ブロックに2個(又はそれより多くの個数)の元ブロックが割り当てられている場合、プロセッサ2006は、図14に示すリクラメーションコマンド1400を、第一及び第二の管理テーブルを基に作成する。図14に示すリクラメーションコマンド1400によれば、図13に示すリクラメーションコマンド1300との相違点として、下記4点、
(14−1)ページリスト1402に、2個の論理ブロックを構成する多数の論理ページにそれぞれ対応した多数の読出し元ページを表す情報が記録されている点(ページリスト1402の前半部分は、第一の論理ブロックに対応しており、ページリスト1402の後半部分は、第二の論理ブロックに対応している)、
(14−2)消去コマンド1404の後続のブロック番号1405の個数が2個である点、
(14−3)ライトコマンド1406の後続のブロック番号1407の個数が2個である点、
(14−4)ページリスト1402、ブロック番号1405及びブロック番号1407のいずれのブロック番号に、フラッシュメモリチップのアドレスも含まれる点(すなわち、フラッシュメモリ制御部301の管理下のブロックを一義的に特定することが可能な情報がブロック番号に含まれている点)、
がある。
As shown in FIG. 8, when two (or more) original blocks are assigned to one update block, the
(14-1) In the
(14-2) The number of
(14-3) The number of
(14-4) The point that the address of the flash memory chip is included in any block number of the
There is.
図14のリクラメーションコマンド1400におけるページリスト1402の前半部分に基づいて、元ブロック801及び更新ブロック803から第一のブロックバッファ305の前半部分に、第一の論理ブロックに対応する各有効データ要素が読み出される。第一の論理ブロックに対応する各有効データ要素は、第一のブロックバッファ305の前半部分において、論理ページのアドレスの若い順に並ぶ。同様に、ページリスト1402の後半部分に基づいて、元ブロック802及び更新ブロック803から第一のブロックバッファ305の後半部分に、第二の論理ブロックに対応する各有効データ要素が読み出される。第二の論理ブロックに対応する各有効データ要素は、第一のブロックバッファ305の後半部分において、論理ページのアドレスの若い順に並ぶ。
Based on the first half of the
次に、フラッシュメモリ制御部301は、リクラメーションコマンド1400における消去コマンド1404に応答して、2個のブロック番号1405からそれぞれ特定される2個の物理ブロック804及び805内のデータ要素群を消去する。
Next, in response to the erase
次に、フラッシュメモリ制御部301は、リクラメーションコマンド1400におけるライトコマンド1406に応答して、2個のブロック番号1407からそれぞれ特定される2個の物理ブロック804及び805に、第一のブロックバッファ305に格納されている2個の有効データ要素群を書き込む。具体的には、第一のブロックバッファ305の前半部分に記憶されている有効データ要素群が、第一の集約先ブロック804に書き込まれ、第一のブロックバッファ305の後半部分に記憶されている有効データ要素群が、第二の集約先ブロック805に書き込まれる。
Next, in response to the
以上の一連の処理により、第二のモジュール内リクラメーション処理が完了する。なお、第二のモジュール内リクラメーション処理の変形例では、第二の元ブロック802及び第一の集約先の物理ブロック804が、フラッシュメモリチップ811に存在しても良い。つまり、第二のモジュール内リクラメーション処理の変形例では、単一のフラッシュメモリチップ内でデータ要素が再配置されても良い。
The second in-module reclamation process is completed by the series of processes described above. Note that, in a modification of the second intra-module reclamation process, the second
<モジュール間リクラメーション処理>。 <Inter-module reclamation process>.
図9及び図10を参照して、第一のモジュール間リクラメーション処理を説明する。図9は、第一のフラッシュメモリモジュール(以下、「転送元モジュール」と言う)2003Aを示し、図10は、第二のフラッシュメモリモジュール(以下、「転送先モジュール」と言う)2003Bを示す。 The first inter-module reclamation process will be described with reference to FIGS. 9 and 10. 9 shows a first flash memory module (hereinafter referred to as “transfer source module”) 2003A, and FIG. 10 shows a second flash memory module (hereinafter referred to as “transfer destination module”) 2003B.
図9の例によれば、転送元モジュール2003Aの1個のフラッシュメモリチップ871に、1個の論理ブロックに対応した元ブロック901と、元ブロック901に割り当てられている更新ブロック902が存在する。更新ブロック902に割り当てられている元ブロック901の個数は1個である。元ブロック901又は更新ブロック902が、別のフラッシュメモリチップに存在しても良い。
According to the example of FIG. 9, there are an
一方、図10の例によれば、転送先モジュール2003Bに、集約先の物理ブロック1002が存在する。
On the other hand, according to the example of FIG. 10, the
図9及び図10に示す、第一のモジュール間リクラメーション処理の例によれば、1個の更新ブロック902に割り当てられている元ブロック901の個数は1個のため、モジュール間で有効データ要素群が転送される際に使用される第二のブロックバッファ903の記憶容量は、1個の物理ブロック分の記憶容量で良い。
According to the example of the first inter-module reclamation process shown in FIG. 9 and FIG. 10, since the number of
第一のモジュール間リクラメーション処理では、プロセッサ2006が、第一及び第二の管理テーブル(図21及び図22参照)を基に、図16に示す転送元用リクラメーションコマンド1600と図18に示す転送先用リクラメーションコマンド1800を作成する。プロセッサ2006は、転送元用リクラメーションコマンド1600を、転送元モジュール2003A内のフラッシュメモリ制御部301Aに送信し、転送先用リクラメーションコマンド1800を、転送先モジュール2003B内のフラッシュメモリ制御部301Bに送信する。
In the first inter-module reclamation process, the
図16に示す転送元用リクラメーションコマンド1600によれば、図13に示すリクラメーションコマンド1300との共通点として、リードコマンド1601及びページリスト1602が含まれている点があり、相違点として、消去コマンド1304、ブロック番号1305、ライトコマンド1306及びブロック番号1307に代えて、転送コマンド1604及び転送先フラッシュメモリ制御部アドレス1605が含まれている点にある。転送コマンド1604は、ページリスト1603を基に読み出され論理ページのアドレスの若い順に並べられた有効データ要素群を転送先モジュール2003Bに転送することのコマンドである。転送先フラッシュメモリ制御部アドレス1605は、転送コマンド1604に後続のパラメータであり、転送先モジュール2003B内のフラッシュメモリ制御部301Bのアドレスを表す。
According to the transfer
図18に示す転送先用リクラメーションコマンド1800によれば、図13に示すリクラメーションコマンド1300との共通点として、消去コマンド1801、消去コマンド1801に後続のブロック番号1802、ライトコマンド1803、及びライトコマンド1803に対応するブロック番号1805が含まれている点にあり、相違点として、リードコマンド1301及びページリスト1302が含まれていない点と、ライトコマンド1803について転送元フラッシュメモリ制御部アドレス1804が含まれている点にある。転送元フラッシュメモリ制御部アドレス1804は、転送元モジュール2003A内のフラッシュメモリ制御部301Aのアドレスを表す。
According to the transfer
転送元のフラッシュメモリ制御部301Aは、転送元用クラメーションコマンド1600を受信すると、以下の処理を行う。
Upon receiving the transfer
すなわち、図9に示すように、コマンド解釈部302Aが、受信したコマンド1600が転送元用リクラメーションコマンドであることを特定する。フラッシュコマンド生成部303Aが、図9に示すように、転送元用リクラメーションコマンド1600におけるリードコマンド1601及びページリスト1602に基づいて、複数の読出し元ページにそれぞれ対応する複数のリードフラッシュコマンドを生成し、読出し元ページを有するフラッシュメモリチップにリードフラッシュコマンドをそれぞれ送信する。これにより、論理ブロックを構成する複数の論理ページに対応した複数の有効データ要素が読み出され、読み出された有効データ要素は、第二のブロックバッファ903Aに書き込まれる。それら複数の有効データ要素は、論理ページのアドレスの若い順に第二のブロックバッファ903Aに並んでいる。
That is, as shown in FIG. 9, the command interpretation unit 302A specifies that the received
次に、フラッシュメモリ制御部301Aは、転送元用リクラメーションコマンド1600における転送コマンド1604に応答して、転送先フラッシュメモリ制御部アドレス1605が表すフラッシュメモリ制御部301Bに、第二のブロックバッファ903Aに記憶されている有効データ要素群を、第二のデータバス904を通じて転送する。具体的には、例えば、コマンド解釈部302Aが、転送コマンド1604を解釈した場合に、シーケンス/タイミング制御部304Aが、第二のブロックバッファ903Aに記憶されている有効データ要素群を、第二のデータバス904を通じて転送する。なお、このとき、転送先のフラッシュメモリ制御部301Bが、ビジーなら、ビジーであることがフラッシュメモリ制御部301B内のシーケンス/タイミング制御部からプロセッサ2006に伝わり、プロセッサ2006が、転送先のフラッシュメモリ制御部301Bに中断コマンドを送信しない限り、転送先のフラッシュメモリ制御部301Bは、転送元のフラッシュメモリ制御部301Aから有効データ要素群を受け付けるまで待つ。
Next, in response to the
フラッシュメモリ制御部301Aは、第二のブロックバッファ903Aに記憶されている有効データ要素群をフラッシュメモリ制御部301Bに転送し終えた場合(例えば、転送先のフラッシュメモリ制御部301Bから所定の応答を受信した場合)、転送元用リクラメーションコマンド1600の処理の終了を表す状態信号314Aを、プロセッサ2006に送信する。これにより、プロセッサ2006は、転送元モジュール2003Aから有効データ要素群の転送が終了したことを知ることができる。
When the flash
転送された有効データ要素群は、第二のスイッチ機構2002(図20参照)を経由し、図10に示すように、第二のデータバス904を介して、フラッシュメモリ制御部301B内の第二のブロックバッファ903Bに格納される。
The transferred valid data element group passes through the second switch mechanism 2002 (see FIG. 20) and, as shown in FIG. 10, through the
転送先のフラッシュメモリ制御部301Bは、受信した転送先用リクラメーションコマンド1800内の消去コマンド1801に応答して、ブロック番号1802から特定される物理ブロック1002内のデータ要素群を消去する。
In response to the erase
次に、フラッシュメモリ制御部301Bは、転送先用リクラメーションコマンド1800におけるライトコマンド1803に応答して、第二のブロックバッファ903Bに記憶されている有効データ要素群の送信元のフラッシュメモリ制御部301Aが、転送元フラッシュメモリ制御部アドレス1804から特定されるフラッシュメモリ制御部であるか否かを判断する。肯定的な判断結果となれば、フラッシュメモリ制御部301Bは、ブロック番号1805から特定される物理ブロック1002に、第二のブロックバッファ903Bに格納されている有効データ要素群を書き込む。その際、第二のブロックバッファ903Bにおいてアドレスが若い順から、有効データ要素が読み出され、集約先の物理ブロック1002のページアドレスの若い順に、読み出された有効データ要素が書込まれていく。
Next, in response to the
フラッシュメモリ制御部301Bは、第二のブロックバッファ903Bに記憶されている有効データ要素群を物理ブロック1002に書き終えた場合、転送先用リクラメーションコマンド1800の処理の終了を表す状態信号314Bを、プロセッサ2006に送信する。これにより、プロセッサ2006は、転送先モジュール2003Bにおいて有効データ要素群の書き込み終了したことを知ることができる。
When the flash
以上の一連の処理により、第一のモジュール間リクラメーション処理が完了する。なお、転送先のフラッシュメモリ制御部301Bは、バッファ903Bが空いていれば、転送されてきた有効データ要素を受信するが、その際、転送元フラッシュメモリ制御部アドレス1804が表すフラッシュメモリ制御部と転送元フラッシュメモリ制御部301Aとが一致したのを確認した場合に、指定されたブロック(ブロック番号1805が表すブロック)に、バッファ903Bに記憶されている有効データ要素群を書き込む。
The first inter-module reclamation process is completed by the series of processes described above. If the
転送先用リクラメーションコマンド1800は、プロセッサ2006に代えて、転送先のフラッシュメモリ制御部301Aからフラッシュメモリ制御部301Bに送信されても良い。しかし、上述の説明のように、転送元用リクラメーションコマンド1600だけでなく転送先用リクラメーションコマンド1800がプロセッサ2006から送信されることで、プロセッサ2006は、転送元モジュール2003Aと転送先モジュール2003Bの両方から状態信号やステータスを受信できる。このため、プロセッサ2006は、転送元モジュール2003Aと転送先モジュール2003Bのそれぞれにおいて動作が確実に行われているかどうかを知ることができる。
The transfer
なお、モジュール内リクラメーション処理と同様に、1個の更新ブロックに複数個の元ブロックが割り当てられている第二のモジュール間リクラメーション処理を行うこともできる。すなわち、転送元モジュール2003Aに存在する更新ブロック902に、複数個の論理ブロックにそれぞれ割り当てられている複数個の元ブロック901が割り当てられても良く、転送先モジュール2003Bに、複数個の論理ブロックにそれぞれ対応した複数個の集約先の物理ブロック1002が存在しても良い。
Similar to the intra-module reclamation process, the second inter-module reclamation process in which a plurality of original blocks are assigned to one update block can also be performed. That is, a plurality of
この場合、第二のブロックバッファ903A及び903Bの記憶容量としては、更新ブロック902に割り当てられている複数の元ブロック分の記憶容量が必要である。
In this case, as the storage capacities of the
また、この場合、転送元モジュール2003Aには、図16に示す転送元用リクラメーションコマンド1600に代えて、図17に示す転送元用リクラメーションコマンド1700が送信される。一方、転送先モジュール2003Bには、図18に示す転送先用リクラメーションコマンド1800に代えて、図19に示す転送先用リクラメーションコマンド1900が送信される。
In this case, the transfer
図17に示す転送元用リクラメーションコマンド1700によれば、図16に示す転送元用リクラメーションコマンド1600との相違点として、下記2点、
(17−1)複数個の論理ブロックを構成する多数の論理ページにそれぞれ対応した多数の読出し元ページを表す情報がページリスト1702に記録されている点、
(17−2)ページリスト1702内のブロック番号にフラッシュメモリチップのアドレスも含まれる点、
がある。この転送元用リクラメーションコマンド1700を受けた転送元フラッシュメモリ制御部301Aは、ページリスト1702を基に、複数の元ブロック901から有効データ要素を読み出して第二のブロックバッファ903Aに書き込む。この結果、複数の論理ブロックに対応した複数の有効データ要素群が、第二のブロックバッファ903Aに記憶される。第二のブロックバッファ903Aから、複数の有効データ要素群が、フラッシュメモリ制御部301Bに送信され、フラッシュメモリ制御部301B内の第二のブロックバッファ903Bに書き込まれる。
According to the transfer
(17-1) Information representing a large number of read source pages respectively corresponding to a large number of logical pages constituting a plurality of logical blocks is recorded in the
(17-2) The block number in the
There is. Upon receiving this transfer
また、図19に示す転送先用リクラメーションコマンド1900によれば、図18に示す転送先用リクラメーションコマンド1800との相違点として、下記3点、
がある。
(19−1)消去コマンド1901の後続のブロック番号1902が複数個存在する点、
(19−2)ライトコマンド1903に対応したブロック番号1905が複数個存在する点、
(19−3)ブロック番号1902及びブロック番号1905のいずれのブロック番号にも、フラッシュメモリチップのアドレスが含まれる点、
がある。この転送先用リクラメーションコマンド1900を受けた転送先フラッシュメモリ制御部301Bは、複数個のブロック番号1902から特定される複数の集約先ブロック1002内のデータ要素群を消去する。そして、転送先フラッシュメモリ制御部301Bは、第二のブロックバッファ903Bに記憶されている複数の有効データ要素群を、複数個のブロック番号1905から特定される複数の集約先ブロック1002に書き込む。
Further, according to the transfer
There is.
(19-1) The fact that there are a plurality of
(19-2) A plurality of
(19-3) The flash memory chip address is included in any of the
There is. Upon receiving the transfer
以上、上述した第一の実施形態によれば、ストレージコントローラが、複数のフラッシュメモリを一元的に管理することができる。 As described above, according to the first embodiment described above, the storage controller can centrally manage a plurality of flash memories.
また、第一の実施形態によれば、ストレージコントローラが、リクラメーションコマンドをフラッシュメモリ制御部に発行すれば、フラッシュメモリ制御部が、そのリクラメーションコマンドに応答して、ページ単位での読出しや書込みが発生するリクラメーションを実行する。このため、ストレージコントローラがページ単位でリードコマンド及びライトコマンドを発行しなくて良いので、ホストコンピュータ2009からのI/O要求を処理する性能の低下を抑えることができる。
Further, according to the first embodiment, when the storage controller issues a reclamation command to the flash memory control unit, the flash memory control unit reads and writes in units of pages in response to the reclamation command. Execute reclamation that occurs. For this reason, the storage controller does not have to issue a read command and a write command in units of pages, so that a decrease in performance for processing an I / O request from the
また、第一の実施形態によれば、ストレージコントローラが非接続の第二のスイッチ機構2002を介して、フラッシュメモリモジュール2003間で有効データ要素群が転送される。言い換えれば、フラッシュメモリモジュール2003間での有効データ要素群の転送では、ストレージコントローラとフラッシュメモリモジュール2003とを繋ぐ第一のスイッチ機構2001は経由されない。このため、ホストコンピュータ2009からのI/O要求に従うライト対象のデータ又はリード対象のデータが通るパスが圧迫されないので、ホストコンピュータ2009からのI/O要求を処理する性能の低下を抑えることができる。
Further, according to the first embodiment, the valid data element group is transferred between the
以下、図11及び図12を参照して、本発明の第二の実施形態を説明する。 Hereinafter, a second embodiment of the present invention will be described with reference to FIGS. 11 and 12.
図12に示すように、第二の実施形態では、フラッシュメモリモジュール2003に代えて、統一IFフラッシュメモリ制御部を備えたフラッシュメモリモジュール2003´が採用される(“IF”はインタフェースの略である)。
As shown in FIG. 12, in the second embodiment, a
図11に示すように、統一IFフラッシュメモリ制御部1106は、フラッシュメモリ制御部301に加えて、IFプロトコル変換部1103及び1104を備える。IFプロトコル変換部1103及び1104は、高速シリアル通信のためのプロトコル変換を行う回路である。IFプロトコル変換部1103は、第二のスイッチ機構2002と第二のブロックバッファ903との間に存在する。IFプロトコル変換部1104は、第一のスイッチ機構2001と、コマンド解釈部302、第一のデータバス312及びシーケンス/タイミング制御部304との間に存在する。
As shown in FIG. 11, the unified IF flash
IFプロトコル変換部1103及び1104により、第二のスイッチ機構2002を経由する通信のIFと、第一のスイッチ機構2001を経由する通信のIFが統一される。
The IF
以上、本発明の幾つかの好適な実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、上述の実施形態では、データ再配置処理としてリクラメーション処理を例に採り説明したが、ウェアレベリング処理などの他のデータ再配置処理に応用することもできる。 As mentioned above, although several suitable embodiment of this invention was described, these are the illustrations for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention only to these embodiment. The present invention can be implemented in various other forms. For example, in the above-described embodiment, the reclamation process is taken as an example of the data rearrangement process, but the present invention can be applied to other data rearrangement processes such as a wear leveling process.
2000…ストレージシステム 2001…第一のスイッチ機構 2002…第二のスイッチ機構 2003…フラッシュメモリモジュール 2004…ホストアダプタ 2005…キャッシュメモリ 2006…プロセッサ 2007…管理端末 2009…ホストコンピュータ
2000 ...
Claims (25)
フラッシュメモリモジュールと、
前記上位装置から前記I/O要求を受け付け前記I/O要求に応答して前記フラッシュメモリモジュールにアクセスするストレージコントローラと
を備え、
前記ストレージコントローラが、
論理アドレスと前記フラッシュメモリ内の記憶領域の物理アドレスとの対応関係を表すアドレス変換情報を記憶する記憶資源と、
受け付けた前記I/O要求が指定する論理アドレスに対応した物理アドレスを前記アドレス変換情報を用いて特定し、前記特定された物理アドレスに基づくI/O先情報を有したI/Oコマンドを、前記メモリコントローラに送信するプロセッサと
を備え、
前記フラッシュメモリモジュールが、
フラッシュメモリと、
前記I/Oコマンドを受信し、前記I/Oコマンドが有するI/O先情報から特定される、前記フラッシュメモリ内の記憶領域へのI/Oを行うメモリコントローラと
を有する、
ストレージシステム。 A storage system that accepts an I / O request (input / output request) specifying a logical address of a storage area in a logical storage resource based on flash memory from a host device,
A flash memory module;
A storage controller that receives the I / O request from the host device and accesses the flash memory module in response to the I / O request;
The storage controller is
A storage resource for storing address conversion information representing a correspondence relationship between a logical address and a physical address of a storage area in the flash memory;
A physical address corresponding to a logical address designated by the received I / O request is specified using the address conversion information, and an I / O command having I / O destination information based on the specified physical address is A processor for transmitting to the memory controller,
The flash memory module is
Flash memory,
A memory controller that receives the I / O command and performs I / O to a storage area in the flash memory that is specified from I / O destination information included in the I / O command.
Storage system.
前記アドレス変換情報は、論理アドレスに対応する記憶領域が属する論理ブロックに対応した各有効データ要素の在り処を表す情報であって、第一の論理ブロックに対応する前記第一の物理ブロックに割り当てられている前記第二の物理ブロック内の物理ページに更新データ要素が書き込まれた場合に、前記プロセッサによって更新される情報であり、
前記プロセッサは、リクラメーションコマンドを作成して、前記フラッシュメモリモジュールが有する前記メモリコントローラに前記リクラメーションコマンドを送信し、
前記リクラメーションコマンドは、
前記第一の論理ブロックに対応した有効データ要素群を構成する複数の有効データ要素がそれぞれ記憶されている複数のリード元物理ページを表す複数のページ情報要素であって、前記アドレス変換情報を用いて作成されたページリストと、
データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報と、
前記有効データ要素群の書込み先となる前記消去ブロックを表す書込み先ブロック情報と
を有し、
前記複数のリード元物理ページは、前記第一の物理ブロック及び/又は前記第二の物理ブロックに存在しており、
前記メモリコントローラは、第一のバッファを有しており、以下の(3−1)乃至(3−3)を実行する、
(3−1)前記ページリストから特定される前記複数のリード元物理ページから、複数の有効データ要素を読出し、前記第一の論理ブロックに対応した論理アドレスの順に有効データ要素が並ぶように前記第一のバッファに前記複数の有効データ要素を書込む、
(3−2)前記消去ブロック情報から特定される前記消去ブロック内のデータ要素群を消去する、
(3−3)前記書込み先ブロック情報から特定される前記消去ブロックに、前記第一のバッファに記憶されている複数の有効データ要素を書き込む、
請求項1記載のストレージシステム。 The flash memory has a plurality of physical blocks composed of a plurality of physical pages, and a data element stored in a physical page in the first physical block is updated to an update data element A memory in which the update data element is written to a physical page in a second physical block that is an erased physical block assigned to the first physical block;
The address conversion information is information indicating the location of each valid data element corresponding to the logical block to which the storage area corresponding to the logical address belongs, and is assigned to the first physical block corresponding to the first logical block. Information that is updated by the processor when an update data element is written to a physical page in the second physical block being
The processor creates a reclamation command and sends the reclamation command to the memory controller of the flash memory module;
The reclamation command is
A plurality of page information elements representing a plurality of read source physical pages each storing a plurality of valid data elements constituting a valid data element group corresponding to the first logical block, and using the address conversion information Page list created
Erase block information representing erase blocks, which are physical blocks from which data elements are erased, and
Write destination block information representing the erase block to be the write destination of the valid data element group,
The plurality of read source physical pages exist in the first physical block and / or the second physical block,
The memory controller has a first buffer and executes the following (3-1) to (3-3).
(3-1) The plurality of valid data elements are read from the plurality of read source physical pages specified from the page list, and the valid data elements are arranged in the order of logical addresses corresponding to the first logical block. Writing the plurality of valid data elements into a first buffer;
(3-2) erasing a data element group in the erase block specified from the erase block information;
(3-3) Write a plurality of valid data elements stored in the first buffer to the erase block identified from the write destination block information.
The storage system according to claim 1.
前記メモリコントローラは、前記リクラメーションコマンドが有する前記リードコマンドに応答して前記(3−1)を実行し、前記リクラメーションコマンドが有する前記消去コマンドに応答して前記(3−2)を実行し、前記リクラメーションコマンドが有する前記ライトコマンドに応答して前記(3−3)を実行する、
請求項2記載のストレージシステム。 The reclamation command further includes a read command having the page list, an erase command having the erase block information, and a write command having the write destination block information,
The memory controller executes (3-1) in response to the read command included in the reclamation command, and executes (3-2) in response to the erase command included in the reclamation command. , Executing (3-3) in response to the write command of the reclamation command,
The storage system according to claim 2.
各フラッシュメモリチップが、複数の物理ブロックを有しており、
前記第二の物理ブロックに複数個の前記第一の物理ブロックが割り当てられており、
前記ページリストを構成する各ページ情報要素は、読出し元の物理ページを表す情報と、その読出し元の物理ページを有した物理ブロックを表す情報とを含んでおり、
読出し元の物理ページを有した物理ブロックを表す情報と、前記消去ブロック情報と、前記書込み先ブロック情報には、それぞれ、その情報が物理ブロックを含んだフラッシュメモリチップを表す情報が含まれている、
請求項2又は3記載のストレージシステム。 The flash memory has a plurality of flash memory chips,
Each flash memory chip has a plurality of physical blocks,
A plurality of the first physical blocks are assigned to the second physical block;
Each page information element constituting the page list includes information representing the physical page of the read source, and information representing the physical block having the physical page of the read source,
The information representing the physical block having the physical page of the read source, the erase block information, and the write destination block information each include information representing the flash memory chip including the physical block. ,
The storage system according to claim 2 or 3.
各フラッシュメモリチップが、複数の物理ブロックを有しており、
前記複数のリード元物理ページを有する物理ブロックと、前記消去ブロックが、異なるフラッシュメモリチップに存在する、
請求項2乃至4のうちのいずれか1項に記載のストレージシステム。 The flash memory has a plurality of flash memory chips,
Each flash memory chip has a plurality of physical blocks,
The physical block having the plurality of read source physical pages and the erase block exist in different flash memory chips,
The storage system according to any one of claims 2 to 4.
前記第一のバッファの記憶容量が、前記複数個の第一の物理ブロックの記憶容量である、
請求項2乃至5のうちのいずれか1項に記載のストレージシステム。 A plurality of the first physical blocks are assigned to the second physical block;
The storage capacity of the first buffer is the storage capacity of the plurality of first physical blocks;
The storage system according to any one of claims 2 to 5.
前記アドレス変換情報は、論理アドレスに対応する記憶領域が属する論理ブロックに対応した各有効データ要素の在り処を表す情報であって、第一の論理ブロックに対応する前記第一の物理ブロックに割り当てられている前記第二の物理ブロック内の物理ページに更新データ要素が書き込まれた場合に、前記プロセッサによって更新される情報であり、
複数の前記フラッシュメモリモジュールに、第一及び第二のフラッシュメモリモジュールが含まれており、
前記第一のフラッシュメモリモジュール内のフラッシュメモリに、前記第一の物理ブロック及び前記第二の物理ブロックが含まれており、
前記第二のフラッシュメモリモジュール内のフラッシュメモリに、データ要素群が消去される物理ブロックである消去ブロックが含まれており、
前記プロセッサは、第一のリクラメーションコマンドを作成して、前記第一のフラッシュメモリモジュールが有する前記第一のメモリコントローラに前記第一のリクラメーションコマンド送信し、
前記第一のリクラメーションコマンドは、以下の(7−A)乃至(7−D)のうち少なくとも(7−A)及び(7−B)を有し、
(7−A)前記第一の論理ブロックに対応した有効データ要素群を構成する複数の有効データ要素がそれぞれ記憶されている複数のリード元物理ページを表す複数のページ情報要素であって、前記アドレス変換情報を用いて作成されたページリスト、
(7−B)前記第二のフラッシュメモリモジュールが有する第二のメモリコントローラを表す情報、
(7−C)データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報、
(7−D)前記有効データ要素群の書込み先となる前記消去ブロックを表す書込み先ブロック情報、
前記複数のリード元物理ページは、前記第一の物理ブロック及び/又は前記第二の物理ブロックに存在しており、
前記第一のメモリコントローラは、第二のバッファAを有しており、以下の(7−1)及び(7−2)を実行し、
(7−1)前記(7−A)の情報から特定される前記複数のリード元物理ページから、複数の有効データ要素を読出し、前記第一の論理ブロックに対応した論理アドレスの順に有効データ要素が並ぶように前記第二のバッファAに前記複数の有効データ要素を書込み、
(7−2)前記(7−B)の情報から特定される前記第二のメモリコントローラに、前記第二のバッファAに記憶されている複数の有効データ要素を転送する、
前記(7−C)及び(7−D)の情報は、前記第一のメモリコントローラ又は前記プロセッサから前記第二のメモリコントローラに送信され、
前記第二のメモリコントローラは、第二のバッファBを有しており、以下の(7−3)乃至(7−5)を実行する、
(7−3)前記第一のメモリコントローラから転送された前記複数の有効データ要素群を前記第二のバッファBに書き込む、
(7−4)前記(7−C)の情報から特定される前記消去ブロック内のデータ要素群を消去する、
(7−5)前記(7−D)の情報から特定される前記消去ブロックに、前記第二のバッファBに記憶されている複数の有効データ要素を書き込む、
請求項1乃至6のうちのいずれか1項に記載のストレージシステム。 The flash memory has a plurality of physical blocks composed of a plurality of physical pages, and a data element stored in a physical page in the first physical block is updated to an update data element A memory in which the update data element is written to a physical page in a second physical block that is an erased physical block assigned to the first physical block;
The address conversion information is information indicating the location of each valid data element corresponding to the logical block to which the storage area corresponding to the logical address belongs, and is assigned to the first physical block corresponding to the first logical block. Information that is updated by the processor when an update data element is written to a physical page in the second physical block being
The plurality of flash memory modules include first and second flash memory modules,
The flash memory in the first flash memory module includes the first physical block and the second physical block,
The flash memory in the second flash memory module includes an erase block that is a physical block from which a data element group is erased,
The processor creates a first reclamation command, sends the first reclamation command to the first memory controller of the first flash memory module,
The first reclamation command has at least (7-A) and (7-B) among the following (7-A) to (7-D):
(7-A) A plurality of page information elements representing a plurality of read source physical pages each storing a plurality of valid data elements constituting a valid data element group corresponding to the first logical block, A page list created using address translation information,
(7-B) Information representing a second memory controller included in the second flash memory module;
(7-C) Erase block information representing an erase block which is a physical block from which the data element group is erased,
(7-D) Write destination block information indicating the erase block to be a write destination of the valid data element group,
The plurality of read source physical pages exist in the first physical block and / or the second physical block,
The first memory controller has a second buffer A, executes the following (7-1) and (7-2),
(7-1) A plurality of valid data elements are read from the plurality of read source physical pages specified from the information of (7-A), and valid data elements are in order of logical addresses corresponding to the first logical block. Write the plurality of valid data elements in the second buffer A so that
(7-2) transferring a plurality of valid data elements stored in the second buffer A to the second memory controller identified from the information of (7-B);
The information of (7-C) and (7-D) is transmitted from the first memory controller or the processor to the second memory controller,
The second memory controller has a second buffer B and executes the following (7-3) to (7-5).
(7-3) Write the plurality of valid data element groups transferred from the first memory controller to the second buffer B.
(7-4) erasing the data element group in the erase block identified from the information of (7-C),
(7-5) Write a plurality of valid data elements stored in the second buffer B to the erase block identified from the information of (7-D).
The storage system according to any one of claims 1 to 6.
前記第一のリクラメーションコマンドに、前記(7−C)及び(7−D)の情報は含まれておらず、
前記第二のリクラメーションコマンドに、前記(7−C)及び(7−D)の情報が含まれている、
請求項7記載のストレージシステム。 The processor creates a second reclamation command and sends the second reclamation command to the second memory controller;
The information of (7-C) and (7-D) is not included in the first reclamation command,
The second reclamation command includes the information (7-C) and (7-D).
The storage system according to claim 7.
前記第二のリクラメーションコマンドは、前記(7−C)の情報を有する消去コマンドと、前記(7−D)の情報を有するライトコマンドを更に有し、
前記第一のメモリコントローラが、前記第一のリクラメーションコマンドが有する前記リードコマンドに応答して前記(7−1)を実行し、前記リクラメーションコマンドが有する前記転送コマンドに応答して前記(7−2)を実行し、
前記第二のメモリコントローラが、前記リクラメーションコマンドが有する前記消去コマンドに応答して前記(7−4)を実行し、前記リクラメーションコマンドが有する前記ライトコマンドに応答して前記(7−5)を実行する、
請求項8記載のストレージシステム。 The first reclamation command further includes a read command having the information (7-A) and a transfer command having the information (7-B),
The second reclamation command further includes an erase command having the information (7-C) and a write command having the information (7-D),
The first memory controller executes (7-1) in response to the read command included in the first reclamation command, and (7) in response to the transfer command included in the reclamation command. -2)
The second memory controller executes the (7-4) in response to the erase command included in the reclamation command, and the (7-5) in response to the write command included in the reclamation command. Run the
The storage system according to claim 8.
前記第一のフラッシュメモリモジュールから前記第二のフラッシュメモリモジュールへの前記複数の有効データ要素の転送は、前記第二のスイッチ機構を経由して行われる、
請求項7乃至9のうちのいずれか1項に記載のストレージシステム。 In addition to the first switch mechanism to which both the storage controller and the plurality of flash memory modules are connected, the storage controller and the second flash memory module among the plurality of flash memory modules are connected to the second switch mechanism. With a switch mechanism
The transfer of the plurality of valid data elements from the first flash memory module to the second flash memory module is performed via the second switch mechanism.
The storage system according to any one of claims 7 to 9.
各フラッシュメモリチップが、複数の物理ブロックを有しており、
前記第二の物理ブロックに複数個の前記第一の物理ブロックが割り当てられており、
前記ページリストを構成する各ページ情報要素は、読出し元の物理ページを表す情報と、その読出し元の物理ページを有した物理ブロックを表す情報とを含んでおり、
読出し元の物理ページを有した物理ブロックを表す情報と、前記消去ブロック情報と、前記書込み先ブロック情報には、それぞれ、その情報が物理ブロックを含んだフラッシュメモリチップを表す情報が含まれている、
請求項7乃至10のうちのいずれか1項に記載のストレージシステム。 The flash memory has a plurality of flash memory chips,
Each flash memory chip has a plurality of physical blocks,
A plurality of the first physical blocks are assigned to the second physical block;
Each page information element constituting the page list includes information representing the physical page of the read source, and information representing the physical block having the physical page of the read source,
The information representing the physical block having the physical page of the read source, the erase block information, and the write destination block information each include information representing the flash memory chip including the physical block. ,
The storage system according to any one of claims 7 to 10.
前記第二のバッファA及びBの記憶容量が、それぞれ、前記複数個の第一の物理ブロックの記憶容量である、
請求項7乃至11のうちのいずれか1項に記載のストレージシステム。 A plurality of the first physical blocks are assigned to the second physical block;
The storage capacities of the second buffers A and B are the storage capacities of the plurality of first physical blocks, respectively.
The storage system according to any one of claims 7 to 11.
前記データ再配置コマンドは、
第一の論理ブロックに対応したデータ要素群を構成する複数のデータ要素の複数のリード元物理ページを表す複数のページ情報要素であるページリストと、
データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報と、
書込み先となる前記消去ブロックを表す書込み先ブロック情報と
を有し、
前記メモリコントローラは、第一のバッファを有しており、以下の(13−1)乃至(13−3)を実行する、
(13−1)前記ページリストから特定される前記複数のリード元物理ページから、複数のデータ要素を読出し、前記第一のバッファに前記複数のデータ要素を書込む、
(13−2)前記消去ブロック情報から特定される前記消去ブロック内のデータ要素群を消去する、
(13−3)前記書込み先ブロック情報から特定される前記消去ブロックに、前記第一のバッファに記憶されている複数のデータ要素を書き込む、
請求項1記載のストレージシステム。 The processor creates a data rearrangement command and sends the data rearrangement command to the memory controller included in the flash memory module;
The data rearrangement command is:
A page list that is a plurality of page information elements representing a plurality of read source physical pages of a plurality of data elements constituting a data element group corresponding to the first logical block;
Erase block information representing erase blocks, which are physical blocks from which data elements are erased, and
Write block information representing the erase block to be written to, and
The memory controller has a first buffer and executes the following (13-1) to (13-3).
(13-1) Reading a plurality of data elements from the plurality of read source physical pages specified from the page list, and writing the plurality of data elements into the first buffer.
(13-2) erasing a data element group in the erase block specified from the erase block information;
(13-3) Write a plurality of data elements stored in the first buffer to the erase block specified from the write destination block information.
The storage system according to claim 1.
前記第一のフラッシュメモリモジュール内のフラッシュメモリに、第一の論理ブロックに対応したデータ要素群を構成する複数のデータ要素の複数のリード元物理ページを有した1又は複数の物理ブロックが含まれており、
前記第二のフラッシュメモリモジュール内のフラッシュメモリに、データ要素群が消去される物理ブロックである消去ブロックが含まれており、
前記プロセッサは、第一のデータ再配置コマンドを作成して、前記第一のフラッシュメモリモジュールが有する前記第一のメモリコントローラに前記第一のデータ再配置コマンド送信し、
前記第一のデータ再配置コマンドは、以下の(14−A)乃至(14−D)のうち少なくとも(14−A)及び(14−B)を有し、
(14−A)前記複数のリード元物理ページを表す複数のページ情報要素であるページリスト、
(14−B)前記第二のフラッシュメモリモジュールが有する第二のメモリコントローラを表す情報、
(14−C)データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報、
(14−D)前記データ要素群の書込み先となる前記消去ブロックを表す書込み先ブロック情報、
前記第一のメモリコントローラは、第二のバッファAを有しており、以下の(14−1)及び(14−2)を実行し、
(14−1)前記(14−A)の情報から特定される前記複数のリード元物理ページから、複数のデータ要素を読出し、前記第二のバッファAに前記複数のデータ要素を書込み、
(14−2)前記(14−B)の情報から特定される前記第二のメモリコントローラに、前記第二のバッファAに記憶されている複数のデータ要素を転送する、
前記(14−C)及び(14−D)の情報は、前記第一のメモリコントローラ又は前記プロセッサから前記第二のメモリコントローラに送信され、
前記第二のメモリコントローラは、第二のバッファBを有しており、以下の(14−3)乃至(14−5)を実行する、
(14−3)前記第一のメモリコントローラから転送された前記複数のデータ要素群を前記第二のバッファBに書き込む、
(14−4)前記(14−C)の情報から特定される前記消去ブロック内のデータ要素群を消去する、
(14−5)前記(14−D)の情報から特定される前記消去ブロックに、前記第二のバッファBに記憶されている複数のデータ要素を書き込む、
請求項1又は13記載のストレージシステム。 The plurality of flash memory modules include first and second flash memory modules,
The flash memory in the first flash memory module includes one or a plurality of physical blocks having a plurality of read source physical pages of a plurality of data elements constituting a data element group corresponding to the first logical block. And
The flash memory in the second flash memory module includes an erase block that is a physical block from which a data element group is erased,
The processor creates a first data rearrangement command, sends the first data rearrangement command to the first memory controller of the first flash memory module,
The first data rearrangement command has at least (14-A) and (14-B) among the following (14-A) to (14-D):
(14-A) a page list which is a plurality of page information elements representing the plurality of read source physical pages;
(14-B) Information representing a second memory controller included in the second flash memory module;
(14-C) erase block information representing an erase block which is a physical block from which the data element group is erased;
(14-D) Write destination block information representing the erase block to be a write destination of the data element group,
The first memory controller has a second buffer A and executes the following (14-1) and (14-2):
(14-1) Reading a plurality of data elements from the plurality of read source physical pages specified from the information of (14-A), and writing the plurality of data elements to the second buffer A,
(14-2) transferring a plurality of data elements stored in the second buffer A to the second memory controller identified from the information of (14-B);
The information of (14-C) and (14-D) is transmitted from the first memory controller or the processor to the second memory controller,
The second memory controller has a second buffer B, and executes the following (14-3) to (14-5).
(14-3) Write the plurality of data element groups transferred from the first memory controller to the second buffer B.
(14-4) erasing the data element group in the erase block identified from the information of (14-C),
(14-5) Write a plurality of data elements stored in the second buffer B to the erase block identified from the information of (14-D).
The storage system according to claim 1 or 13.
前記第一のデータ再配置コマンドに、前記(14−C)及び(14−D)の情報は含まれておらず、
前記第二のデータ再配置コマンドに、前記(14−C)及び(14−D)の情報が含まれている、
請求項14記載のストレージシステム。 The processor creates a second data relocation command and sends the second data relocation command to the second memory controller;
The information of (14-C) and (14-D) is not included in the first data rearrangement command,
The second data rearrangement command includes the information (14-C) and (14-D).
The storage system according to claim 14.
前記第一のフラッシュメモリモジュールから前記第二のフラッシュメモリモジュールへの前記複数のデータ要素の転送は、前記第二のスイッチ機構を経由して行われる、
請求項14又は15記載のストレージシステム。 In addition to the first switch mechanism to which both the storage controller and the plurality of flash memory modules are connected, the storage controller and the second flash memory module among the plurality of flash memory modules are connected to the second switch mechanism. With a switch mechanism
Transfer of the plurality of data elements from the first flash memory module to the second flash memory module is performed via the second switch mechanism.
The storage system according to claim 14 or 15.
請求項16記載のストレージシステム。 The memory controller has a unified interface unit that unifies communication interfaces via the first switch mechanism and communication via the second switch mechanism.
The storage system according to claim 16.
前記フラッシュメモリに対するI/O(入出力)を制御するメモリコントローラと
を備え、
前記メモリコントローラが、
外部から受信したコマンドを解釈するコマンド解釈部と、
前記コマンド解釈部が解釈したコマンドがデータ再配置コマンドである場合、前記データ再配置コマンドに含まれている物理アドレス情報を用いて、データ再配置に関わるリードコマンド及び/又はライトコマンドを作成し、作成されたリードコマンド及び/又はライトコマンドを前記フラッシュメモリに送信するコマンド生成部と
を有する、
フラッシュメモリモジュール。 Flash memory,
A memory controller that controls I / O (input / output) to the flash memory,
The memory controller is
A command interpreter that interprets commands received from outside;
When the command interpreted by the command interpreter is a data relocation command, the physical address information included in the data relocation command is used to create a read command and / or a write command related to data relocation, A command generation unit that transmits the created read command and / or write command to the flash memory,
Flash memory module.
前記データ再配置コマンドが、以下の(19−A)乃至(19−C)の物理アドレス情報を有し、
(19−A)前記第一の論理ブロックに対応したデータ要素群を構成する複数のデータ要素がそれぞれ記憶されている複数のリード元物理ページを表す複数のページ情報要素であるページリスト、
(19−B)データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報、
(19−C)前記データ要素群の書込み先となる前記消去ブロックを表す書込み先ブロック情報、
を有し、
前記メモリコントローラは、第一のバッファを更に有しており、
前記メモリコントローラでは、以下の(19−1)乃至(19−4)を実行する、
(19−1)前記コマンド生成部が、前記ページリストから特定される前記複数のリード元物理ページから複数のデータ要素を読出すためのページ単位の複数のリードコマンドを作成し、前記複数のリードコマンドを前記フラッシュメモリに送信する、
(19−2)前記第一のバッファが、前記ページ単位の複数のリードコマンドに応答して読み出された前記複数のデータ要素を記憶する、
(19−3)前記コマンド生成部が、前記消去ブロック情報から特定される前記消去ブロック内のデータ要素群を消去する消去コマンドを前記フラッシュメモリに送信する、
(19−4)前記書込み先ブロック情報から特定される前記消去ブロック内の複数の物理ページに前記第一のバッファに記憶されている複数のデータ要素を書き込むためのページ単位の複数のライトコマンドを前記フラッシュメモリに送信する、
請求項18記載のフラッシュメモリモジュール。 The flash memory has a plurality of physical blocks composed of a plurality of physical pages,
The data rearrangement command has the following physical address information (19-A) to (19-C):
(19-A) A page list which is a plurality of page information elements representing a plurality of read source physical pages each storing a plurality of data elements constituting a data element group corresponding to the first logical block.
(19-B) Erase block information representing an erase block which is a physical block from which a data element group is erased,
(19-C) Write destination block information indicating the erase block to be a write destination of the data element group,
Have
The memory controller further includes a first buffer;
The memory controller executes the following (19-1) to (19-4).
(19-1) The command generation unit creates a plurality of read commands in units of pages for reading a plurality of data elements from the plurality of read source physical pages specified from the page list, and the plurality of reads Send a command to the flash memory,
(19-2) The first buffer stores the plurality of data elements read in response to the plurality of read commands in page units.
(19-3) The command generation unit transmits an erase command for erasing a data element group in the erase block specified from the erase block information to the flash memory.
(19-4) A plurality of page-by-page write commands for writing a plurality of data elements stored in the first buffer to a plurality of physical pages in the erase block specified from the write destination block information Send to the flash memory,
The flash memory module according to claim 18.
前記コマンド生成部は、前記データ再配置コマンドが有する前記リードコマンドに応答して前記(19−1)を実行し、前記データ再配置コマンドが有する前記消去コマンドに応答して前記(19−3)を実行し、前記データ再配置が有する前記ライトコマンドに応答して前記(19−4)を実行する、
請求項19記載のフラッシュメモリモジュール。 The data rearrangement command further includes a read command having the information (19-A), an erase command having the information (19-B), and a write command having the information (19-C). Have
The command generation unit executes (19-1) in response to the read command included in the data rearrangement command, and (19-3) in response to the erase command included in the data rearrangement command. And (19-4) is executed in response to the write command included in the data rearrangement.
The flash memory module according to claim 19.
各フラッシュメモリチップが、複数の物理ブロックを有しており、
前記第二の物理ブロックに複数個の前記第一の物理ブロックが割り当てられており、
前記ページリストを構成する各ページ情報要素は、読出し元の物理ページを表す情報と、その読出し元の物理ページを有した物理ブロックを表す情報とを含んでおり、
読出し元の物理ページを有した物理ブロックを表す情報と、前記消去ブロック情報と、前記書込み先ブロック情報には、それぞれ、その情報が物理ブロックを含んだフラッシュメモリチップを表す情報が含まれている、
請求項19又は20記載のフラッシュメモリモジュール。 The flash memory has a plurality of flash memory chips, and when the data element stored in the physical page in the first physical block is updated to the update data element, the flash memory has the first physical block. A memory in which the updated data element is written to a physical page in a second physical block that is an allocated erased physical block;
Each flash memory chip has a plurality of physical blocks,
A plurality of the first physical blocks are assigned to the second physical block;
Each page information element constituting the page list includes information representing the physical page of the read source, and information representing the physical block having the physical page of the read source,
The information representing the physical block having the physical page of the read source, the erase block information, and the write destination block information each include information representing the flash memory chip including the physical block. ,
The flash memory module according to claim 19 or 20.
各フラッシュメモリチップが、複数の物理ブロックを有しており、
前記複数のリード元物理ページを有する物理ブロックと、前記消去ブロックが、異なるフラッシュメモリチップに存在する、
請求項19乃至21のうちのいずれか1項に記載のフラッシュメモリモジュール。 The flash memory has a plurality of flash memory chips,
Each flash memory chip has a plurality of physical blocks,
The physical block having the plurality of read source physical pages and the erase block exist in different flash memory chips,
The flash memory module according to any one of claims 19 to 21.
前記第二の物理ブロックに複数個の前記第一の物理ブロックが割り当てられており、
前記第一のバッファの記憶容量が、前記複数個の第一の物理ブロックの記憶容量である、
請求項19乃至22のうちのいずれか1項に記載のフラッシュメモリモジュール。 The flash memory is an erased physical block assigned to the first physical block when a data element stored in a physical page in the first physical block is updated to an updated data element. A memory in which the update data element is written to a physical page in a second physical block;
A plurality of the first physical blocks are assigned to the second physical block;
The storage capacity of the first buffer is the storage capacity of the plurality of first physical blocks;
The flash memory module according to any one of claims 19 to 22.
前記メモリコントローラは、第二のバッファを有しており、
前記データ再配置コマンドは、以下の(24−A)及び(24−B)を有する第一のデータ再配置コマンドであり、
(24−A)前記第一の論理ブロックに対応したデータ要素群を構成する複数のデータ要素がそれぞれ記憶されている複数のリード元物理ページを表す複数のページ情報要素であって、前記アドレス変換情報を用いて作成されたページリスト、
(24−B)前記第二のフラッシュメモリモジュールが有する第二のメモリコントローラを表す情報、
前記コマンド解釈部が解釈したコマンドが前記第一のデータ再配置コマンドの場合、前記メモリコントローラでは、以下の(24−1)乃至(24−3)を実行する、
(24−1)前記コマンド生成部が、前記(24−A)の情報から特定される前記複数のリード元物理ページから複数のデータ要素を読出すためのページ単位の複数のリードコマンドを前記フラッシュメモリに送信する、
(24−2)前記第二のバッファが、前記ページ単位の複数のリードコマンドに応答して読み出された前記複数のデータ要素を記憶する、
(24−3)前記(24−B)の情報から特定される別のメモリコントローラに、前記第二のバッファに記憶されている複数のデータ要素を転送する、
請求項18乃至23のうちのいずれか1項に記載のフラッシュメモリモジュール。 The flash memory has a plurality of physical blocks composed of a plurality of physical pages,
The memory controller has a second buffer;
The data rearrangement command is a first data rearrangement command having the following (24-A) and (24-B):
(24-A) A plurality of page information elements representing a plurality of read source physical pages each storing a plurality of data elements constituting a data element group corresponding to the first logical block, wherein the address conversion A page list created using information,
(24-B) Information representing a second memory controller included in the second flash memory module;
When the command interpreted by the command interpreter is the first data rearrangement command, the memory controller executes the following (24-1) to (24-3).
(24-1) The command generation unit flushes a plurality of read commands in units of pages for reading a plurality of data elements from the plurality of read source physical pages specified from the information of (24-A). Send to memory,
(24-2) The second buffer stores the plurality of data elements read in response to the plurality of read commands in page units.
(24-3) transferring a plurality of data elements stored in the second buffer to another memory controller identified from the information of (24-B);
24. The flash memory module according to any one of claims 18 to 23.
前記メモリコントローラは、第二のバッファを有しており、
前記データ再配置コマンドは、以下の(25−A)及び(25−B)を有する第二のデータ再配置コマンドであり、
(25−A)データ要素群が消去される物理ブロックである消去ブロックを表す消去ブロック情報、
(25−B)前記データ要素群の書込み先となる前記消去ブロックを表す書込み先ブロック情報、
前記メモリコントローラでは、以下の(25−1)乃至(25−3)を実行する、
(25−1)前記第二のバッファが、別のメモリコントローラから転送されて来た複数のデータ要素群を前記第二のバッファに書き込む、
(25−2)前記コマンド生成部が、前記(25−A)の情報から特定される前記消去ブロック内のデータ要素群を消去するための消去コマンドを前記フラッシュメモリに送信する、
(25−3)前記コマンド生成部が、前記(25−B)の情報から特定される前記消去ブロック内の複数の物理ページに前記第二のバッファに記憶されている複数のデータ要素をそれぞれ書き込むためのページ単位の複数のライトコマンドを前記フラッシュメモリに送信する、
請求項18乃至24のうちのいずれか1項に記載のフラッシュメモリモジュール。 The flash memory has a plurality of physical blocks composed of a plurality of physical pages,
The memory controller has a second buffer;
The data rearrangement command is a second data rearrangement command having the following (25-A) and (25-B):
(25-A) erase block information representing an erase block which is a physical block from which the data element group is erased,
(25-B) write destination block information representing the erase block that is the write destination of the data element group;
The memory controller executes the following (25-1) to (25-3).
(25-1) The second buffer writes a plurality of data element groups transferred from another memory controller to the second buffer.
(25-2) The command generation unit transmits an erase command for erasing a data element group in the erase block specified from the information of (25-A) to the flash memory.
(25-3) The command generation unit writes a plurality of data elements stored in the second buffer to a plurality of physical pages in the erase block specified from the information of (25-B), respectively. Transmitting a plurality of page-by-page write commands to the flash memory,
The flash memory module according to any one of claims 18 to 24.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008133098A JP2009282678A (en) | 2008-05-21 | 2008-05-21 | Flash memory module and storage system |
US12/168,269 US8156277B2 (en) | 2008-05-21 | 2008-07-07 | Flash memory module and storage system |
US13/440,792 US8554988B2 (en) | 2008-05-21 | 2012-04-05 | Flash memory module and storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008133098A JP2009282678A (en) | 2008-05-21 | 2008-05-21 | Flash memory module and storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009282678A true JP2009282678A (en) | 2009-12-03 |
Family
ID=41342917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008133098A Pending JP2009282678A (en) | 2008-05-21 | 2008-05-21 | Flash memory module and storage system |
Country Status (2)
Country | Link |
---|---|
US (2) | US8156277B2 (en) |
JP (1) | JP2009282678A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022051902A (en) * | 2020-08-31 | 2022-04-01 | キオクシア株式会社 | Memory system |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI370969B (en) * | 2008-07-09 | 2012-08-21 | Phison Electronics Corp | Data accessing method, and storage system and controller using the same |
JP5367357B2 (en) * | 2008-12-24 | 2013-12-11 | 株式会社メガチップス | Memory system and computer system |
KR101627321B1 (en) * | 2009-01-13 | 2016-06-03 | 삼성전자주식회사 | I/O request handling method and solid state drive using this |
US20110010485A1 (en) * | 2009-07-08 | 2011-01-13 | Hou-Yuan Lin | Flash Memory Control Device |
JP5464066B2 (en) * | 2010-06-10 | 2014-04-09 | ソニー株式会社 | Communication device and communication method |
JP2012008651A (en) * | 2010-06-22 | 2012-01-12 | Toshiba Corp | Semiconductor memory device, its control method, and information processor |
EP2652587B1 (en) | 2011-06-07 | 2017-11-15 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
US20130019057A1 (en) * | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
KR20130072669A (en) * | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | Semiconductor memory device and method of operating thesame |
JP5624578B2 (en) * | 2012-03-23 | 2014-11-12 | 株式会社東芝 | Memory system |
US9606730B2 (en) | 2012-05-04 | 2017-03-28 | Samsung Electronics Co., Ltd. | System and method including three dimensional nonvolatile memory device and random access memory |
US20140289454A1 (en) * | 2013-03-21 | 2014-09-25 | Kabushiki Kaisha Toshiba | Storage device and controller |
US9933980B2 (en) | 2014-02-24 | 2018-04-03 | Toshiba Memory Corporation | NAND raid controller for connection between an SSD controller and multiple non-volatile storage units |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9959203B2 (en) | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
TWI537816B (en) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | Non-volatile memory device and control method for controller |
KR102368071B1 (en) | 2014-12-29 | 2022-02-25 | 삼성전자주식회사 | Method for regrouping stripe on RAID storage system, garbage collection operating method and RAID storage system adopting the same |
US10466908B2 (en) * | 2015-08-25 | 2019-11-05 | Toshiba Memory Corporation | Memory system that buffers data before writing to nonvolatile memory |
US20170147499A1 (en) * | 2015-11-25 | 2017-05-25 | Sandisk Technologies Llc | Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device |
US10275385B2 (en) * | 2016-02-25 | 2019-04-30 | SK Hynix Inc. | Integrated circuit system |
US11188496B2 (en) | 2018-09-13 | 2021-11-30 | Toshiba Memory Corporation | System and method for storing data using ethernet drives and ethernet open-channel drives |
CN111611196A (en) * | 2019-02-26 | 2020-09-01 | 北京知存科技有限公司 | Storage and calculation integrated chip and DAC multiplexing control method thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5742818A (en) * | 1995-12-15 | 1998-04-21 | Microsoft Corporation | Method and system of converting data from a source file system to a target file system |
SE9702733L (en) * | 1997-07-16 | 1999-01-17 | Axis Ab | Digital memory management system |
US6477612B1 (en) * | 2000-02-08 | 2002-11-05 | Microsoft Corporation | Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process |
US6763423B2 (en) * | 2001-11-30 | 2004-07-13 | International Business Machines Corporation | Storage area network methods and apparatus for logical-to-physical block address mapping |
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
KR100526188B1 (en) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | Method for address mapping and managing mapping information, and flash memory thereof |
US7788460B2 (en) * | 2004-04-13 | 2010-08-31 | Intel Corporation | Defragmenting objects in a storage medium |
JP4688584B2 (en) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | Storage device |
US7660814B2 (en) * | 2005-12-21 | 2010-02-09 | Teradata Us, Inc. | Techniques for mapping a physical table to multiple virtual tables |
KR101774496B1 (en) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | Non-volatile memory device, devices having the same, method of operating the same |
-
2008
- 2008-05-21 JP JP2008133098A patent/JP2009282678A/en active Pending
- 2008-07-07 US US12/168,269 patent/US8156277B2/en not_active Expired - Fee Related
-
2012
- 2012-04-05 US US13/440,792 patent/US8554988B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022051902A (en) * | 2020-08-31 | 2022-04-01 | キオクシア株式会社 | Memory system |
JP7342163B2 (en) | 2020-08-31 | 2023-09-11 | キオクシア株式会社 | memory system |
Also Published As
Publication number | Publication date |
---|---|
US20090292862A1 (en) | 2009-11-26 |
US8554988B2 (en) | 2013-10-08 |
US20120191906A1 (en) | 2012-07-26 |
US8156277B2 (en) | 2012-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009282678A (en) | Flash memory module and storage system | |
KR100673013B1 (en) | Memory controller and data processing system with the same | |
CN103176746B (en) | Systems and methods for enhanced controller architecture in data storage systems | |
US11630766B2 (en) | Memory system and operating method thereof | |
TWI454906B (en) | Data read method, and flash memory controller and storage system using the same | |
JP5635200B2 (en) | Nonvolatile semiconductor memory system | |
US9015445B2 (en) | Method and system for manipulating data | |
US20080046639A1 (en) | Memory system with nonvolatile semiconductor memory | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
KR20100011698A (en) | Solid state storage system for data merging and method of controlling the same | |
US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
CN102279712A (en) | Storage control method, system and device applied to network storage system | |
WO2015008358A1 (en) | Information processing device | |
CN100433195C (en) | Flash memory medium data writing method | |
US10365834B2 (en) | Memory system controlling interleaving write to memory chips | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
JP3928500B2 (en) | Memory device | |
JP6100927B2 (en) | Information processing device | |
US9798470B2 (en) | Memory system for storing and processing translation information | |
JPH07200187A (en) | Disk array device | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN110069427A (en) | The operating method of Memory Controller and Memory Controller | |
CN107844265A (en) | The method of Memory Controller in the method and Operations Computing System of Operations Computing System | |
JP5838652B2 (en) | Data copy processing system | |
JP2007249662A (en) | Memory card and control method of memory card |