JP2009282678A - Flash memory module and storage system - Google Patents

Flash memory module and storage system Download PDF

Info

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
Application number
JP2008133098A
Other languages
Japanese (ja)
Inventor
Jun Kitahara
潤 北原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008133098A priority Critical patent/JP2009282678A/en
Priority to US12/168,269 priority patent/US8156277B2/en
Publication of JP2009282678A publication Critical patent/JP2009282678A/en
Priority to US13/440,792 priority patent/US8554988B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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

<P>PROBLEM TO BE SOLVED: To enable a storage controller to perform control in consideration of a storage area of a flash memory. <P>SOLUTION: The storage controller manages address conversion information representing a correspondence relation between a logical address and a physical address of a storage area (e.g. physical block) in the flash memory. The storage controller uses the address conversion information to identify a physical address corresponding to a logical address designated by an I/O request from a higher-order apparatus, and transmits an I/O command having I/O destination information based on the identified physical address to a memory controller in a flash memory module. The memory controller performs I/O to a storage area in the flash memory identified from the I/O destination information included in the I/O command from the storage controller. <P>COPYRIGHT: (C)2010,JPO&INPIT

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.

米国特許出願公開2006/0288153号明細書US Patent Application Publication No. 2006/0288153

ストレージシステムは、複数のフラッシュメモリモジュールと、それら複数のフラッシュメモリモジュールを管理する上位のコントローラ(以下、「ストレージコントローラ」と言う)を備える。ストレージコントローラは、例えば、上位装置(例えば、ホストコンピュータ、或いは他のストレージシステム)から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 storage system 2000 includes a plurality of flash memory modules 2003 and a storage controller that is above the plurality of flash memory modules.

各フラッシュメモリモジュール2003は、例えば、複数のNAND型のフラッシュメモリチップと、フラッシュメモリ制御部301(例えば図3参照)とを有する。従って、フラッシュメモリモジュール2003には、ページ単位でデータの書込み及び読出しが行われ、ブロック単位で、データの消去が行われる。以下の説明では、一つのページに記憶されるデータを「データ要素」と言い、複数のページで構成される一つのブロックに記憶されるデータを「データ要素群」と言う。また、ストレージシステムの上位装置としてのホストコンピュータ2009から受信するI/O要求で指定されているアドレスから特定されるブロックを「論理ブロック」と言うことがある。論理ブロックに割り当てられている物理ブロックを「元ブロック」と言うことがある。元ブロック内の第一の物理ページに記憶されている第一のデータ要素が第二のデータ要素に更新される場合、第二のデータ要素は、元ブロックに割り当てられている別の物理ブロック内の第二の物理ページに書き込まれるが、元ブロック内の上記第一の物理ページを「元ページ」と言い、上記第一のデータ要素を「元データ要素」と言い、上記別の物理ブロックを「更新ブロック」と言い、更新ブロック内の上記第二の物理ページを「更新ページ」と言い、上記第二のデータ要素を「更新データ要素」と言うことがある。また、論理ブロック内の論理ページに対応した最新のデータ要素を「有効データ要素」と言う。元データ要素が未更新であれば、有効データ要素はその元データ要素であり、元データ要素に対応した更新データ要素が更新ブロックに存在しているならば、有効データ要素はその更新データ要素である。   Each flash memory module 2003 includes, for example, a plurality of NAND flash memory chips and a flash memory control unit 301 (see, for example, FIG. 3). Accordingly, data is written to and read from the flash memory module 2003 in units of pages, and data is erased in units of blocks. In the following description, data stored in one page is referred to as “data element”, and data stored in one block including a plurality of pages is referred to as “data element group”. In addition, a block identified from an address specified by an I / O request received from a host computer 2009 as a host device of the storage system may be referred to as a “logical block”. A physical block assigned to a logical block may be referred to as an “original block”. When the first data element stored in the first physical page in the original block is updated to the second data element, the second data element is in another physical block assigned to the original block. The first physical page in the original block is referred to as the “original page”, the first data element is referred to as the “original data element”, and the other physical block is referred to as the second physical page. It may be called “update block”, the second physical page in the update block may be called “update page”, and the second data element may be called “update data element”. The latest data element corresponding to the logical page in the logical block is referred to as “valid data element”. If the original data element is not updated, the valid data element is the original data element. If the update data element corresponding to the original data element exists in the update block, the valid data element is the update data element. is there.

複数のフラッシュメモリモジュール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 flash memory modules 2003 of the plurality of flash memory modules 2003 (RAID is an abbreviation for Redundant Array of Independent (or Inexpensive) Disks). The RAID group is sometimes called a parity group. A plurality of logical volumes are formed by logically dividing one or a plurality of storage spaces provided by one or a plurality of RAID groups. At least one of the plurality of logical volumes is provided to the host computer 2009 as a host device of the storage system 2000. The storage controller receives an I / O request (write request or read request) designating a logical volume from the host computer 2009, and is designated by the I / O request (write request) in response to the I / O request. The write target data is written to the logical volume being read, or the read target data is read from the logical volume specified by the I / O request (read request). Writing the write target data to the logical volume means that the data element that is the basis of the write target data is written to one or a plurality of pages corresponding to the logical address representing the write destination. . Also, reading the read target data from the logical volume means that the valid data element that is the basis of the read target data is read from one or more pages corresponding to the logical address representing the read source. That is.

ストレージコントローラは、例えば、ホストアダプタ2004と、キャッシュメモリ2005と、プロセッサ2006とで構成されている。ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006は、多重化(例えば二重化)されている。ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006と、複数のフラッシュメモリモジュール2003とが、第一のスイッチ機構2001に接続されている。   The storage controller includes, for example, a host adapter 2004, a cache memory 2005, and a processor 2006. The host adapter 2004, the cache memory 2005, and the processor 2006 are multiplexed (for example, duplexed). A host adapter 2004, a cache memory 2005, a processor 2006, and a plurality of flash memory modules 2003 are connected to the first switch mechanism 2001.

第一のスイッチ機構2001は、一又は複数のスイッチデバイスで構成される。第一のスイッチ機構2001を通じて、フラッシュメモリモジュール2003、ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006同士の通信が行われる。   The first switch mechanism 2001 includes one or a plurality of switch devices. Through the first switch mechanism 2001, the flash memory module 2003, the host adapter 2004, the cache memory 2005, and the processor 2006 communicate with each other.

キャッシュメモリ2005は、論理ボリュームに書き込まれるライト対象のデータ、及び、論理ボリュームから読み出されたリード対象のデータを一時的に記憶する。キャッシュメモリ2005は、多重化されているプロセッサ2006(つまり複数のプロセッサ2006)からアクセス可能である。キャッシュメモリ2005の一部の記憶領域であるキャッシュ領域2201には、複数のフラッシュメモリモジュール2003内の複数のフラッシュメモリに関する情報(以下、「フラッシュ管理情報」と言う)が記憶される。ホストコンピュータ2009からホストアダプタ2004で受信するI/O要求では、論理ボリュームの論理ブロックのアドレス(論理アドレス範囲)が指定されているため、論理アドレス範囲に対応するデータ要素がどのページに記憶されているかを管理する必要があるが、フラッシュ管理情報は、論理アドレス範囲と物理アドレスとの対応関係を表すアドレス変換情報を含む。プロセッサ2006は、そのアドレス変換情報を用いて、所望のフラッシュメモリ内のページ或いはブロックにアクセスすることができる。アドレス変換情報は、例えば、図21に示す第一の管理テーブルと、図22に示す第二の管理テーブルとを含んでいる。第一の管理テーブルで、論理アドレス範囲と大まかな物理アドレスとの対応関係が管理されており、第二の管理テーブルで、大まかな物理アドレスと詳細な物理アドレスとの対応関係が管理されている。   The cache memory 2005 temporarily stores write target data written to the logical volume and read target data read from the logical volume. The cache memory 2005 is accessible from multiplexed processors 2006 (that is, a plurality of processors 2006). Information relating to a plurality of flash memories in the plurality of flash memory modules 2003 (hereinafter referred to as “flash management information”) is stored in a cache area 2201, which is a partial storage area of the cache memory 2005. In the I / O request received by the host adapter 2004 from the host computer 2009, the address of the logical block (logical address range) of the logical volume is specified, so the data element corresponding to the logical address range is stored in which page. However, the flash management information includes address conversion information indicating the correspondence between the logical address range and the physical address. The processor 2006 can access a desired page or block in the flash memory using the address translation information. The address conversion information includes, for example, a first management table shown in FIG. 21 and a second management table shown in FIG. The first management table manages the correspondence between the logical address range and the rough physical address, and the second management table manages the correspondence between the rough physical address and the detailed physical address. .

具体的には、第一の管理テーブルには、図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 processor 2006 stores the original page information related to the original page corresponding to a certain logical page in the original page if it is not associated with the update block allocated to the original block including the original page. It can be seen that the data element is a valid data element corresponding to the certain logical page. On the other hand, if the original page information is associated with the update block, the processor 2006 is stored in the update page with the last address among one or more update pages associated with the original page information. It can be seen that the updated data element is a valid data element corresponding to the certain logical page. For example, when reading a valid data element corresponding to the certain logical page, the processor 2006 creates a read command for each page having I / O destination information representing an original page or an updated page storing the valid data element. Then, the read command is transmitted to the flash memory control unit (see FIG. 3) in the flash memory module 2003 having the original page or the updated page. As a result, a single page read operation described later with reference to FIG. 4 is executed by the flash memory control unit. As described above, since the I / O command transmitted from the processor 2006 to the flash memory module 2003 includes I / O destination information indicating the physical page that is the I / O destination, the logical address is stored in the flash memory module 2003. There is no need to hold information indicating the correspondence between the physical address and the physical address. For this reason, the flash memory control unit to be described later does not have to have an address conversion function of specifying a physical address from a logical address.

再び図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 host adapter 2004 receives an I / O request from the host computer 2009 and transfers the I / O request to the processor 2006 through the first switch mechanism 2001. In addition, when the received I / O request is a write request, the host adapter 2004 writes the write target data in the cache memory 2005. If the received I / O request is a read request, the host adapter 2004 reads the read target data stored in the cache memory 2005 from the cache memory 2005 and transmits the read read target data to the host computer 2009. To do. In addition to the host computer 2009, a management terminal 2007 is connected to the host adapter 2004 as shown. On the display screen 2008 of the management terminal 2007, for example, the status regarding a large number of flash memory chips in the plurality of flash memory modules 2003 is displayed. Information indicating the status (hereinafter referred to as “flash memory status information”) is stored in, for example, a predetermined storage resource (for example, the cache memory 2005). The processor 2006 transmits flash memory status information to the management terminal 2007 via the host adapter 2004, and the management terminal 2007 displays the status represented by the information. The displayed status includes, for example, a status specified from the first management table and / or the second management table, and which flash memory chip in which flash memory module has a defective block.

プロセッサ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 processor 2006 processes an I / O request from the host adapter 2004. Specifically, a physical address described later corresponding to a logical address specified from the I / O request is specified, and an I / O command having I / O destination information based on the physical address is specified as the I / O command. The data is transmitted to the flash memory control unit 301 (see, for example, FIG. 3) that can access the flash memory chip having the storage area specified from the previous information. Further, the processor 2006 creates and issues a reclamation command to be described in detail later. To create an I / O command or a reclamation command, a copy of a necessary part of the first and second management tables (see FIGS. 21 and 22) described above is used. A copy of the necessary part is stored in, for example, a local memory 2202 included in the processor 2006. The I / O destination storage area is a physical page. This is because reading and writing are performed in units of pages. Therefore, the I / O destination information included in the I / O command includes, for example, the page number of the physical page corresponding to the I / O destination area, the number of the physical block including the physical page, and the physical block. The address of the accessible flash memory control unit 301 is included. That is, the I / O command is issued for each page. On the other hand, the erasure command is issued from the processor 2006 in units of blocks. The erase command has the number of the physical block to be erased.

ストレージシステム2000には、第一のスイッチ機構2001の他に、第二のスイッチ機構2002が備えられる。第二のスイッチ機構2002は、一又は複数のスイッチデバイスで構成されている。第二のスイッチ機構2002には、複数のフラッシュメモリモジュール2003が接続されるが、ホストアダプタ2004、キャッシュメモリ2005及びプロセッサ2006は接続されない。すなわち、第二のスイッチ機構2002は、フラッシュメモリモジュール2003間の通信に専用のスイッチ機構である。第二のスイッチ機構2002にフラッシュメモリモジュール2003を接続していくことで、フラッシュメモリモジュール2003をツリー状に拡張することができる。   The storage system 2000 includes a second switch mechanism 2002 in addition to the first switch mechanism 2001. The second switch mechanism 2002 includes one or a plurality of switch devices. A plurality of flash memory modules 2003 are connected to the second switch mechanism 2002, but the host adapter 2004, the cache memory 2005, and the processor 2006 are not connected. That is, the second switch mechanism 2002 is a dedicated switch mechanism for communication between the flash memory modules 2003. By connecting the flash memory module 2003 to the second switch mechanism 2002, the flash memory module 2003 can be expanded in a tree shape.

図3は、フラッシュメモリモジュール2003の構成を示す。   FIG. 3 shows the configuration of the flash memory module 2003.

フラッシュメモリモジュール2003は、メモリコントローラとしてのフラッシュメモリ制御部301と、これに接続されたフラッシュメモリである複数(又は一つ)のフラッシュメモリチップ315とを備えたモジュールである。   The flash memory module 2003 is a module including a flash memory control unit 301 as a memory controller and a plurality (or one) of flash memory chips 315 that are flash memories connected to the flash memory control unit 301.

フラッシュメモリチップ315は、複数の物理ブロック316で構成されている。一つの物理ブロック316は、複数個(例えば64個)の物理ページ317で構成されている。   The flash memory chip 315 is composed of a plurality of physical blocks 316. One physical block 316 includes a plurality of (for example, 64) physical pages 317.

フラッシュメモリ制御部301に、データバス319及び制御信号ライン318を共有する複数のフラッシュメモリチップ315が接続されている。データバス319は、データ要素が流れるバスである。制御信号ライン318は、制御信号が流れるラインである。   A plurality of flash memory chips 315 sharing a data bus 319 and a control signal line 318 are connected to the flash memory control unit 301. The data bus 319 is a bus through which data elements flow. The control signal line 318 is a line through which a control signal flows.

フラッシュメモリ制御部301と各フラッシュメモリチップ315とを結ぶラインとして、制御信号ライン318の他に、チップ選択信号が流れるライン320や、ビジー信号が流れるライン321がある。ライン320及び321は、フラッシュメモリチップ315毎に独立して配線されている。   In addition to the control signal line 318, the line 320 connecting the flash memory control unit 301 and each flash memory chip 315 includes a line 320 through which a chip selection signal flows and a line 321 through which a busy signal flows. The lines 320 and 321 are wired independently for each flash memory chip 315.

フラッシュメモリ制御部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 memory control unit 301 includes a command interpretation unit 302, a flash command generation unit 303, a first block buffer 305, a sequence / timing control unit 304, a first page buffer 306, a second page buffer 307, and a chip selection unit 308. And a busy signal monitoring unit 309. The flash memory control unit 301 is connected to the first switch mechanism 2001 (see FIG. 20) via the first data bus 312. Although not shown in FIG. 3, as shown in FIGS. 9 and 10, the flash memory control unit 301 further includes a second block buffer 903 (in FIGS. 9 and 10, the transfer source and the transfer destination). Are described as 903A and 903B). The flash memory control unit 301 is connected to the second switch mechanism 2002 (see FIG. 20) via the second data bus 904. Examples of signals that the flash memory control unit 301 receives from the processor 2006 include a command 310 and an activation signal 313. Examples of signals that the flash memory control unit 301 transmits to the processor 2006 include a status 311 and a status signal 314. The activation signal 313 is a signal for activating the flash memory control unit 301. The status signal 314 is a signal indicating the status of the flash memory control unit 301 (for example, in operation or operation end).

コマンド解釈部302は、プロセッサ2006からのコマンド310を解釈し、解釈の結果をフラッシュコマンド生成部303に伝える。また、コマンド解釈部302は、ステータス311をプロセッサ2006に送信する。   The command interpretation unit 302 interprets the command 310 from the processor 2006 and transmits the interpretation result to the flash command generation unit 303. In addition, the command interpretation unit 302 transmits a status 311 to the processor 2006.

フラッシュコマンド生成部303は、コマンド解釈部302での解釈の結果を基に、フラッシュメモリチップ315に対するコマンド(以下、「フラッシュコマンド」と言う)を生成する。フラッシュコマンドは、例えば制御信号ライン318を経由して、ターゲットのフラッシュメモリチップ315に送信される。フラッシュコマンドの種類としては、例えば、リード、ライト及び消去の3種類がある。リード及びライトのフラッシュコマンドは、ページ単位で発行され、消去のフラッシュコマンドは、ブロック単位で発行される。リード及びライトのフラッシュコマンドに従うデータ要素は、データバス319を経由する。   The flash command generation unit 303 generates a command for the flash memory chip 315 (hereinafter referred to as “flash command”) based on the result of interpretation by the command interpretation unit 302. The flash command is transmitted to the target flash memory chip 315 via the control signal line 318, for example. There are three types of flash commands, for example, read, write, and erase. The read and write flash commands are issued in units of pages, and the erase flash command is issued in units of blocks. Data elements following the read and write flash commands pass through the data bus 319.

第一のブロックバッファ305は、このバッファ305を有するフラッシュメモリモジュール2003内でリクラメーションする場合に使用されるバッファである。第一のブロックバッファ305には、更新ブロック内の更新ページから読み出された有効データ要素と、その更新ブロックに割り当てられているN個の元ブロック(Nは自然数)内の元ページから読み出された有効データ要素とが記憶される。従って、第一のブロックバッファ305の記憶容量としては、少なくともN個のブロック分の記憶容量が必要である。   The first block buffer 305 is a buffer used when reclaiming in the flash memory module 2003 having the buffer 305. The first block buffer 305 reads the valid data element read from the update page in the update block and the original page in the N original blocks (N is a natural number) allocated to the update block. The valid data elements that have been recorded are stored. Therefore, the storage capacity of the first block buffer 305 is required to be at least N blocks.

シーケンス/タイミング制御部304は、フラッシュメモリ制御部301の動作シーケンスや各信号のタイミングを制御する。シーケンス/タイミング制御部304が、プロセッサ2006から起動信号313を受信してフラッシュメモリ制御部301を起動したり、状態信号314をプロセッサ2006に送信したりする。   The sequence / timing controller 304 controls the operation sequence of the flash memory controller 301 and the timing of each signal. The sequence / timing control unit 304 receives the activation signal 313 from the processor 2006 and activates the flash memory control unit 301 or transmits the status signal 314 to the processor 2006.

第一のページバッファ306は、物理ページ317にデータ要素を書き込む場合に使用されるバッファである。具体的には、第一のページバッファ306には、物理ページ317に書き込まれるデータ要素が格納される。第一のページバッファ306の記憶容量は、1個の物理ページ分の記憶容量である。   The first page buffer 306 is a buffer used when data elements are written to the physical page 317. Specifically, the first page buffer 306 stores data elements to be written to the physical page 317. The storage capacity of the first page buffer 306 is a storage capacity for one physical page.

第二のページバッファ307は、物理ページ317からデータ要素が読み出される場合に使用されるバッファである。具体的には、第二のページバッファ306には、物理ページ317から読み出されたデータ要素が格納される。第二のページバッファ307の記憶容量も、1個の物理ページ分の記憶容量である。   The second page buffer 307 is a buffer used when a data element is read from the physical page 317. Specifically, the data element read from the physical page 317 is stored in the second page buffer 306. The storage capacity of the second page buffer 307 is also a storage capacity for one physical page.

チップ選択部308は、フラッシュコマンドに基づき、フラッシュコマンドの送信先となるフラッシュメモリチップ315を選択する。   The chip selection unit 308 selects the flash memory chip 315 that is the transmission destination of the flash command based on the flash command.

ビジー信号監視部309は、フラッシュメモリチップ315からのビジー信号の有無を監視する。   The busy signal monitoring unit 309 monitors the presence / absence of a busy signal from the flash memory chip 315.

図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 flash memory module 2003 having the buffer 903 and another flash memory module 2003. The second block buffer 903 reads the valid data element read from the update page in the update block and the original page in the M original blocks (M is a natural number) allocated to the update block. Valid data elements are stored. Accordingly, the storage capacity of the second block buffer 903 is required to be at least M blocks. The value of M and the value of N described above may be the same or different. That is, the number of original blocks allocated to a certain update block and the number of original blocks allocated to another update block may be the same or different. The effective data element group stored in the second block buffer 903 is sent to the flash memory control in another flash memory module 2003 via the second data bus 904 and the second switch mechanism 2002 (see FIG. 20). Transferred to the unit 301. The valid data element group received from the flash memory control unit 301 in another flash memory module 2003 via the second data bus 904 and the second switch mechanism 2002 (see FIG. 20) It is written in the block buffer 903.

図2は、フラッシュメモリチップ315の構成を示す。   FIG. 2 shows a configuration of the flash memory chip 315.

フラッシュメモリチップ315は、メモリセルアレイ202と、1又は2個の物理ページ分の記憶容量を有した内部バッファ205とを備える。ページ単位で、メモリセルアレイ202と内部バッファ205間でデータ要素が転送され、書き込みや読み出しが行われる。フラッシュメモリチップ315の制御には、チップ選択信号206や、データバス319に乗っている情報を識別する複数の制御信号207や、内部動作中を示すビジー信号208などが持ち用いられる。   The flash memory chip 315 includes a memory cell array 202 and an internal buffer 205 having a storage capacity for one or two physical pages. In page units, data elements are transferred between the memory cell array 202 and the internal buffer 205, and writing and reading are performed. For controlling the flash memory chip 315, a chip selection signal 206, a plurality of control signals 207 for identifying information on the data bus 319, a busy signal 208 indicating that an internal operation is in progress, and the like are used.

メモリセルアレイ202は、複数の物理ブロック316に分割されている。また、各物理ブロック316は、複数の物理ページ317で構成されている。   The memory cell array 202 is divided into a plurality of physical blocks 316. Each physical block 316 is composed of a plurality of physical pages 317.

例えば図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 memory cell array 202. FIG. 1 is a diagram showing an example in which 16896 memory cells are arranged in the horizontal direction and 16 memory cells are arranged in the vertical direction. A page, which is a unit of writing and reading, is configured by a group of memory cells that constitute one column in the horizontal direction. In one vertical column, 16 FETs (Field Effect Transistors) each having a floating gate are connected in series. When the vertical direction of the memory cell is a bit line and the horizontal direction is a word line, a page is composed of memory cells selected by one word line. In FIG. 1, 16 pages of memory cells are shown. By combining four memory cell array portions shown in FIG. 1, one physical block which is an erase unit is configured. That is, according to the example of FIG. 1, the physical block is composed of 64 physical pages. Access to the NAND flash memory is performed by giving addresses in the order of command, column address, and row address. A row address is composed of a block address and a page address. A block is specified on the upper side, and a page is specified on the lower side.

以下、本実施形態で行われる種々の処理を説明する。   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 processor 2006 transmits an activation signal 313 to the transmission destination flash memory control unit 301 of the read command designating the read source physical page, and transmits the read command 310 to the flash memory control unit 301. The command interpretation unit 302 receives the command 310 and specifies that the command 310 is a read command. The flash command generation unit 303 creates a read flash command corresponding to the read command 310. The read flash command includes address information including the following (4-1) to (4-3),
(4-1) The number of the physical page 401 of the read source,
(4-2) the number of the physical block containing the physical page 401,
(4-3) the number of the flash memory chip containing the physical block,
It is included. The read flash command created by the flash command generation unit 303 is transmitted to the flash memory chip specified from (4-3) above. In response to this, a data element is read from the read-source physical page 401, and the read data element is transferred to the second page buffer 307. Then, the data element is transferred from the second page buffer 307 to the processor 2006 via the first data bus 312. A status signal 314 indicating the end of reading is transmitted from the sequence / timing control unit 304 to the processor 2006.

次に、図5を用いて、単一ページ書き込み動作を説明する。   Next, a single page write operation will be described with reference to FIG.

プロセッサ2006が、起動信号313を、ライト先の物理ページを指定したライトコマンドの送信先フラッシュメモリ制御部301に送信し、且つ、そのライトコマンド310及びライト対象のデータ要素を、そのフラッシュメモリ制御部301に送信する。   The processor 2006 transmits the activation signal 313 to the transmission destination flash memory control unit 301 of the write command designating the write destination physical page, and the write command 310 and the write target data element are transmitted to the flash memory control unit. 301.

ライト対象のデータ要素が、第一のデータバス312を経由して、第一のページバッファ306に格納される。   The data element to be written is stored in the first page buffer 306 via the first data bus 312.

コマンド解釈部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 command interpreter 302 receives the command 310 and specifies that the command 310 is a write command. The flash command generation unit 303 creates a write flash command corresponding to the write command 310. The write flash command includes address information including the following (5-1) to (5-3),
(5-1) The number of the physical page 501 at the write destination,
(5-2) the number of the physical block containing the physical page 501;
(5-3) the number of the flash memory chip containing the physical block,
It is included. The write flash command created by the flash command generation unit 303 is transmitted to the flash memory chip identified from (5-3) above. Further, the write target data element stored in the first page buffer 306 is transmitted to the flash memory chip. As a result, the write target data element is written to the write-destination physical page 501. A status signal 314 indicating the end of the single page write operation is transmitted from the sequence / timing controller 304 to the processor 2006.

図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 original block 601. Further, it is assumed that an update block (erased block) 602 in which no valid data element is stored is assigned to the original block 601. In this case, when a valid data element stored in a certain original page in the original block 601 needs to be updated to an updated data element, the updated data element is not the certain original page in the original block 601. In the update block 602, the page with the smallest page address is written among the pages in which no valid data element is written. That is, update data elements are written in ascending order of page addresses.

具体的には、例えば、元ページ603に記憶されている有効データ要素が更新データ要素に更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ブロック602内の物理ページ604を指定したライトコマンドを、その更新ブロック602を有するフラッシュメモリモジュール2003内のフラッシュメモリ制御部301に送信する。物理ページ604は、更新ブロック602における、有効データ要素が書込まれていないページであってページアドレスが最も若いページ(図6によれば先頭ページ)である。そのライトコマンドに従って、図5を参照して説明した単一ページ書込み動作が行われることにより、更新データ要素が、物理ページ604に書き込まれる。   Specifically, for example, when a valid data element stored in the original page 603 needs to be updated to an update data element, the processor 2006 uses the physical page 604 in the update block 602 as a write destination of the update data element. Is transmitted to the flash memory control unit 301 in the flash memory module 2003 having the update block 602. The physical page 604 is a page in which no valid data element is written in the update block 602 and has the lowest page address (the first page according to FIG. 6). The update data element is written to the physical page 604 by performing the single page write operation described with reference to FIG. 5 according to the write command.

この場合、例えばフラッシュメモリ制御部301から、書込み完了を表す状態信号314がプロセッサ2006に送信される。プロセッサ2006は、例えばその状態信号314の受信に応答して、第一の管理テーブル(図21参照)における、元ブロック601が割り当てられている論理ブロックに対応した更新ページマップを更新する。具体的には、元ページ603は元ブロック601内の3番目の物理ページであるため、更新ページマップでは、3番目の物理ページに対応するビットが更新される。   In this case, for example, a status signal 314 indicating completion of writing is transmitted from the flash memory control unit 301 to the processor 2006. For example, in response to receiving the status signal 314, the processor 2006 updates the update page map corresponding to the logical block to which the original block 601 is assigned in the first management table (see FIG. 21). Specifically, since the original page 603 is the third physical page in the original block 601, the bit corresponding to the third physical page is updated in the update page map.

また、プロセッサ2006は、第二の管理テーブル(図22参照)における、更新ブロック602に対応した書込み位置情報を、1番目の更新ページまで更新データ要素が書き込まれていることを表す情報に更新する。   Further, the processor 2006 updates the write position information corresponding to the update block 602 in the second management table (see FIG. 22) to information indicating that the update data element has been written up to the first update page. .

更に、プロセッサ2006は、第二の管理テーブル(図22参照)における、更新ブロック602の1番目のページに対応する元ページ情報を、元ブロック601の3番目のページ603を表す情報に更新する。   Further, the processor 2006 updates the original page information corresponding to the first page of the update block 602 in the second management table (see FIG. 22) to information representing the third page 603 of the original block 601.

以下、第一及び第二の管理テーブルの更新の説明は省略或いは簡略するが、このような更新は、更新ブロック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 processor 2006 each time an update data element is written in the update block 602.

プロセッサ2006は、更新後の第一及び第二の管理テーブルを参照すれば、元ブロック601が割り当てられている論理ブロックにおける3番目の論理ページに対応する有効データ要素が、元ブロック601内の元ページ603ではなく更新ブロック602内の更新ページ604に存在していることを知ることができる。   If the processor 2006 refers to the updated first and second management tables, the valid data element corresponding to the third logical page in the logical block to which the original block 601 is allocated is the original data element in the original block 601. It can be known that it exists in the update page 604 in the update block 602 instead of the page 603.

さて、その後、元ブロック601内の元ページ605に記憶されている有効データ要素が更新データ要素に更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ブロック602内の更新ページ606(更新ページ604の次の更新ページ)を指定したライトコマンドを、フラッシュメモリ制御部301に送信する。これにより、その更新データ要素は、更新ページ606に書き込まれる。また、第一及び第二の管理テーブルも、前述と同様の方法で更新される。   Now, when the valid data element stored in the original page 605 in the original block 601 needs to be updated to the update data element, the processor 2006 updates the update data element in the update block 602 as the write destination of the update data element. A write command designating page 606 (update page next to update page 604) is transmitted to flash memory control unit 301. As a result, the update data element is written in the update page 606. The first and second management tables are also updated by the same method as described above.

その後、再び、同一の元ページ605が更新される必要がある場合、プロセッサ2006が、更新データ要素の書込み先として更新ページ607(更新ページ606の次の更新ページ)を指定したライトコマンドを、フラッシュメモリ制御部301に送信する。これにより、その更新データ要素は、更新ページ607に書き込まれる。また、第一及び第二の管理テーブルも、前述と同様の方法で更新される。この結果、第二の管理テーブルでは、更新ブロック602内の2番目と3番目の更新ページ606及び607にそれぞれ対応する元ページ情報が、元ブロック601の1番目の元ページ605を表す情報になっている。この第二の管理テーブルを参照することにより、プロセッサ2006は、より後側の更新ページ607に記憶されているデータ要素が、元ブロック601が割り当てられている論理ブロックにおける1番目の論理ページに対応する有効データ要素であることを知ることができる。   Thereafter, when the same original page 605 needs to be updated again, the processor 2006 flashes a write command designating the update page 607 (update page next to the update page 606) as the write destination of the update data element. It transmits to the memory control unit 301. As a result, the update data element is written in the update page 607. The first and second management tables are also updated by the same method as described above. As a result, in the second management table, the original page information respectively corresponding to the second and third update pages 606 and 607 in the update block 602 becomes information representing the first original page 605 of the original block 601. ing. By referring to the second management table, the processor 2006 corresponds to the first logical page in the logical block to which the original block 601 is assigned, with the data element stored in the update page 607 on the rear side. It is possible to know that it is a valid data element.

以下、リクラメーション処理について説明する。   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 processor 2006 detects that there is no empty update page in the update block assigned to the original block. The fact that there is no empty update page means that the write position information (see FIG. 22) corresponding to the update block represents the last update page of the update block.

本実施形態では、リクラメーションに専用のコマンドであるリクラメーションコマンドがサポートされている。プロセッサ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 processor 2006 to the flash memory control unit 301. Thereby, it is possible to suppress a decrease in performance for processing an I / O request from the host computer 2009.

すなわち、リクラメーション処理では、ページ単位でのデータ要素の読み出しと、ページ単位でのデータ要素の書込みが行われるため、例えば、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 processor 2006 will issue 64 read commands and 64 write commands. As a result, the processor 2006 becomes heavily loaded, and therefore the performance of processing an I / O request from the host computer 2009 may be reduced. In the present embodiment, as described above, a reclamation command that is a dedicated command for instructing reclamation processing is supported. This eliminates the need for the processor 2006 to issue a read command and a write command on a page basis for reclamation processing, thereby suppressing a decrease in performance of processing an I / O request from the host computer 2009.

本実施形態で行われるリクラメーション処理は、モジュール内リクラメーション処理と、モジュール間リクラメーション処理の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 first block buffer 305 in ascending order of logical page addresses in one flash memory module 2003. The sorted valid data elements are written into the erased physical block in the module 2003.

モジュール間リクラメーション処理によれば、転送元のフラッシュメモリモジュール(以下、「転送元モジュール」と言う)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 transfer source module 2003 to the transfer destination flash memory module (hereinafter referred to as “transfer destination module”) 2003 via the second switch mechanism 2002 (see FIG. 20). . The received valid data element group is once written in the second block buffer 903 in the transfer destination module 2003 and then written in the erased physical block from the second block buffer 903.

以下、各種のリクラメーション処理について詳細に説明する。   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 physical blocks 611 and 612 in which valid data elements corresponding to one logical block are stored, and a physical block 613 to which valid data elements are aggregated are one Present in the flash memory chip 614. The physical block 611 is an original block assigned to one logical block, and the physical block 612 is an update block assigned to the original block. According to the example of FIG. 7, since the number of original blocks 611 assigned to one update block 612 is one, the storage capacity of the first block buffer 305 is at least one physical block. Storage capacity is required.

図7に示すように、更新ブロック612に割り当てられている元ブロック611の個数が1個の場合、プロセッサ2006は、図13に示すリクラメーションコマンド1300を、第一及び第二の管理テーブルを基に作成する。図13に示すリクラメーションコマンド1300には、先頭から順に言うと、リードコマンド1301、ページリスト1302、消去コマンド1304、ブロック番号1305、ライトコマンド1306及びブロック番号1307が含まれている。   As shown in FIG. 7, when the number of original blocks 611 assigned to the update block 612 is one, the processor 2006 uses the reclamation command 1300 shown in FIG. 13 based on the first and second management tables. To create. The reclamation command 1300 shown in FIG. 13 includes a read command 1301, a page list 1302, an erase command 1304, a block number 1305, a write command 1306, and a block number 1307 in order from the top.

ページリスト1302は、リードコマンド1301の後続のパラメータであり、各読出し元ページを表すブロック番号及びページ番号で構成されている。各読出し元ページは、1個の論理ブロックを構成する各論理ページに対応しており、有効データ要素が存在する物理ページである。どの物理ブロックのどの物理ページに有効データ要素が存在するかは、前述したように、プロセッサ2006が第一及び第二の管理テーブル(厳密には、プロセッサ2006内のローカルメモリに記憶された、第一及び第二の管理テーブルにおける必要部分のコピー)を参照することにより特定することができる。図7の例で言えば、ページリスト1302における1行目のブロック番号及びページ番号は、更新ブロック612の3番目の更新ページを表しており、2行目のブロック番号及びページ番号は、元ブロック611の2番目の元ページを表しており、3行目のブロック番号及びページ番号は、更新ブロック612の先頭の更新ページを表している。   The page list 1302 is a parameter subsequent to the read command 1301 and includes a block number and a page number representing each reading source page. Each reading source page is a physical page corresponding to each logical page constituting one logical block and having valid data elements. As described above, which physical block has which valid data element exists in which physical block is determined by the processor 2006 in the first and second management tables (strictly, in the first memory stored in the local memory in the processor 2006). It can be specified by referring to a copy of a necessary part in the first and second management tables. In the example of FIG. 7, the block number and page number in the first row in the page list 1302 represent the third update page of the update block 612, and the block number and page number in the second row are the original block. 611 represents the second original page of 611, and the block number and page number in the third row represent the first update page of the update block 612.

ブロック番号1305は、消去コマンド1304の後続のパラメータであり、消去対象の物理ブロック613の番号を表している。ブロック番号1307は、ライトコマンド1306に後続のパラメータであり、データ要素群が消去される物理ブロック613を表している。   The block number 1305 is a parameter subsequent to the erase command 1304 and represents the number of the physical block 613 to be erased. A block number 1307 is a parameter subsequent to the write command 1306 and represents a physical block 613 from which the data element group is erased.

以上のようなリクラメーションコマンド1300をフラッシュメモリ制御部301が受信すると、以下の処理が行われる。   When the flash memory control unit 301 receives the reclamation command 1300 as described above, the following processing is performed.

すなわち、コマンド解釈部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 command interpretation unit 302 specifies that the received command 1300 is a reclamation command. As shown in FIG. 15, the flash command generation unit 303 generates a plurality of read flash commands 1500 corresponding to a plurality of read source pages based on the page list 1302 in response to the read command 1301 in the reclamation command 1300. To do. Each generated read flash command 1500 is transmitted to the flash memory chip having the read source page specified by the command 1500. One read flash command 1500 includes, for example, two page read commands 1504 and 1507, and a column address 1505 and a row address 1506 that are parameters sandwiched between the commands 1504 and 1507. The column address 1505 and the row address 1506 are calculated using the block number and page number in the page list 1302. In response to the read flash command 1500, a valid data element is read from the read source page specified by the command 1500. The read valid data element is written into the first block buffer 305. On the first block buffer 305, the read valid data elements are arranged in ascending order of logical page addresses.

次に、フラッシュメモリ制御部301は、リクラメーションコマンド1300における消去コマンド1304に応答して、ブロック番号1305から特定される物理ブロック613内のデータ要素群を消去する。具体的には、フラッシュコマンド生成部303が、物理ブロック613内のデータ要素群を消去するための消去用のフラッシュコマンドを作成する。作成された消去用のフラッシュコマンドは、物理ブロック613を有するフラッシュメモリチップに送信される。これにより物理ブロック613に記憶されているデータ要素群が消去される。   Next, in response to the erase command 1304 in the reclamation command 1300, the flash memory control unit 301 erases the data element group in the physical block 613 specified from the block number 1305. Specifically, the flash command generation unit 303 creates an erase flash command for erasing the data element group in the physical block 613. The created erase flash command is transmitted to the flash memory chip having the physical block 613. As a result, the data element group stored in the physical block 613 is deleted.

次に、フラッシュメモリ制御部301は、リクラメーションコマンド1300におけるライトコマンド1306に応答して、ブロック番号1307から特定される物理ブロック613に、第一のブロックバッファ305に格納されている有効データ要素群を書き込む。具体的には、フラッシュコマンド生成部303が、その有効データ要素群を構成する複数の有効データ要素を物理ブロック613内の複数の物理ページにそれぞれ書き込むためのページ単位の複数のライトフラッシュコマンドを作成する。作成されたライトフラッシュコマンドは、物理ブロック613を有するフラッシュメモリチップに送信される。これにより、第一のブロックバッファ305に格納されている複数の有効データ要素が物理ブロック613に書き込まれる。なお、第一のブロックバッファ305には、論理ページのアドレスが若い順に有効データ要素が並んでいるため、第一のブロックバッファ305の先頭の有効データ要素から順に、集約先の物理ブロック613の先頭ページから有効データ要素が順次に書込まれる。   Next, in response to the write command 1306 in the reclamation command 1300, the flash memory control unit 301 stores the valid data element group stored in the first block buffer 305 in the physical block 613 identified from the block number 1307. Write. Specifically, the flash command generation unit 303 creates a plurality of write flash commands in units of pages for writing a plurality of valid data elements constituting the valid data element group to a plurality of physical pages in the physical block 613, respectively. To do. The created write flash command is transmitted to the flash memory chip having the physical block 613. As a result, a plurality of valid data elements stored in the first block buffer 305 are written into the physical block 613. Since the valid data elements are arranged in the first block buffer 305 in ascending order of the logical page addresses, the top of the aggregation-destination physical block 613 starts from the top valid data element of the first block buffer 305. Valid data elements are written sequentially from the page.

フラッシュメモリ制御部301は、第一のブロックバッファ305に記憶されている有効データ要素群を物理ブロック613に書き終えた場合、リクラメーションコマンド1300の処理の終了を表す状態信号314を、プロセッサ2006に送信する。これにより、プロセッサ2006は、リクラメーション処理が終了したことを知ることができる。   When the flash memory control unit 301 finishes writing the valid data element group stored in the first block buffer 305 in the physical block 613, the flash memory control unit 301 sends a status signal 314 indicating the end of the processing of the reclamation command 1300 to the processor 2006. Send. As a result, the processor 2006 can know that the reclamation process has ended.

以上の一連の処理により、第一のモジュール内リクラメーション処理が完了する。なお、第一のモジュール内リクラメーション処理の変形例では、集約先の物理ブロック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 physical block 613 may exist in a flash memory chip different from the flash memory chip 614, or the original block 611 or the update block 612 may be The flash memory chip 614 may exist in a different flash memory chip. That is, in a modification of the first in-module reclamation process, reclamation may be performed between a plurality of flash memory chips.

1個のフラッシュメモリ制御部301は、複数のフラッシュメモリチップを制御しているので、フラッシュメモリチップで並列に処理できる処理は並列に行わせることができる。また、リクラメーション処理は、消去単位であるブロック毎に行われるが、フラッシュメモリチップに対して発行しているコマンドは、ページ単位のフラッシュコマンドである。従って、リクラメーション処理の最中でも、ホストコンピュータ2009からのI/O要求に基づく、プロセッサ2006からのページ単位のI/Oコマンドを、割り込ませることが可能である。   Since one flash memory control unit 301 controls a plurality of flash memory chips, processes that can be processed in parallel by the flash memory chips can be performed in parallel. The reclamation process is performed for each block which is an erasing unit, but the command issued to the flash memory chip is a flash command for each page. Accordingly, during the reclamation process, it is possible to interrupt a page unit I / O command from the processor 2006 based on an I / O request from the host computer 2009.

図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 physical blocks 801 to 803 in which valid data elements corresponding to two logical blocks are stored, and two aggregation destinations respectively corresponding to two logical blocks are stored. Physical blocks 804 and 805 exist on different flash memory chips 811 and 812. Specifically, a first source block 801 corresponding to the first logical block, an update block 803, and a second aggregation destination block 805 corresponding to the second logical block are included in the first flash memory chip 811. Exists. In addition, a second original block 802 corresponding to the second logical block and a first aggregation destination block 804 corresponding to the first logical block exist in the second flash memory chip 812. According to the example of FIG. 8, two original blocks 801 and 802 are allocated to one update block 803. Therefore, the storage capacity of the first block buffer 305 is equivalent to two physical blocks. Storage capacity is required.

図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 processor 2006 executes the reclamation command 1400 shown in FIG. Created based on the second management table. According to the reclamation command 1400 shown in FIG. 14, the following four points are different from the reclamation command 1300 shown in FIG.
(14-1) In the page list 1402, information representing a large number of read source pages respectively corresponding to a large number of logical pages constituting two logical blocks is recorded (the first half of the page list 1402 is Corresponds to one logical block, and the second half of the page list 1402 corresponds to the second logical block).
(14-2) The number of block numbers 1405 following the erase command 1404 is two,
(14-3) The number of block numbers 1407 following the write command 1406 is two,
(14-4) The point that the address of the flash memory chip is included in any block number of the page list 1402, block number 1405, and block number 1407 (that is, the block under management of the flash memory control unit 301 is uniquely specified Information that can be done is included in the block number),
There is.

図14のリクラメーションコマンド1400におけるページリスト1402の前半部分に基づいて、元ブロック801及び更新ブロック803から第一のブロックバッファ305の前半部分に、第一の論理ブロックに対応する各有効データ要素が読み出される。第一の論理ブロックに対応する各有効データ要素は、第一のブロックバッファ305の前半部分において、論理ページのアドレスの若い順に並ぶ。同様に、ページリスト1402の後半部分に基づいて、元ブロック802及び更新ブロック803から第一のブロックバッファ305の後半部分に、第二の論理ブロックに対応する各有効データ要素が読み出される。第二の論理ブロックに対応する各有効データ要素は、第一のブロックバッファ305の後半部分において、論理ページのアドレスの若い順に並ぶ。   Based on the first half of the page list 1402 in the reclamation command 1400 of FIG. 14, each valid data element corresponding to the first logical block is transferred from the original block 801 and the update block 803 to the first half of the first block buffer 305. Read out. Each valid data element corresponding to the first logical block is arranged in ascending order of the logical page address in the first half of the first block buffer 305. Similarly, each valid data element corresponding to the second logical block is read from the original block 802 and the update block 803 to the latter half of the first block buffer 305 based on the latter half of the page list 1402. The valid data elements corresponding to the second logical block are arranged in ascending order of logical page addresses in the second half of the first block buffer 305.

次に、フラッシュメモリ制御部301は、リクラメーションコマンド1400における消去コマンド1404に応答して、2個のブロック番号1405からそれぞれ特定される2個の物理ブロック804及び805内のデータ要素群を消去する。   Next, in response to the erase command 1404 in the reclamation command 1400, the flash memory control unit 301 erases the data element groups in the two physical blocks 804 and 805 respectively identified from the two block numbers 1405. .

次に、フラッシュメモリ制御部301は、リクラメーションコマンド1400におけるライトコマンド1406に応答して、2個のブロック番号1407からそれぞれ特定される2個の物理ブロック804及び805に、第一のブロックバッファ305に格納されている2個の有効データ要素群を書き込む。具体的には、第一のブロックバッファ305の前半部分に記憶されている有効データ要素群が、第一の集約先ブロック804に書き込まれ、第一のブロックバッファ305の後半部分に記憶されている有効データ要素群が、第二の集約先ブロック805に書き込まれる。   Next, in response to the write command 1406 in the reclamation command 1400, the flash memory control unit 301 assigns the first block buffer 305 to the two physical blocks 804 and 805 identified from the two block numbers 1407, respectively. Are written in the two valid data element groups. Specifically, the valid data element group stored in the first half of the first block buffer 305 is written into the first aggregation destination block 804 and stored in the second half of the first block buffer 305. The valid data element group is written in the second aggregation destination block 805.

以上の一連の処理により、第二のモジュール内リクラメーション処理が完了する。なお、第二のモジュール内リクラメーション処理の変形例では、第二の元ブロック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 original block 802 and the first aggregation destination physical block 804 may exist in the flash memory chip 811. That is, in the modification example of the second in-module reclamation process, data elements may be rearranged in a single flash memory chip.

<モジュール間リクラメーション処理>。   <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 original block 901 corresponding to one logical block and an update block 902 assigned to the original block 901 in one flash memory chip 871 of the transfer source module 2003A. The number of original blocks 901 assigned to the update block 902 is one. The original block 901 or the update block 902 may exist in another flash memory chip.

一方、図10の例によれば、転送先モジュール2003Bに、集約先の物理ブロック1002が存在する。   On the other hand, according to the example of FIG. 10, the transfer destination module 2003B includes a physical block 1002 that is an aggregation destination.

図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 original blocks 901 assigned to one update block 902 is one, valid data elements between modules The storage capacity of the second block buffer 903 used when the group is transferred may be a storage capacity for one physical block.

第一のモジュール間リクラメーション処理では、プロセッサ2006が、第一及び第二の管理テーブル(図21及び図22参照)を基に、図16に示す転送元用リクラメーションコマンド1600と図18に示す転送先用リクラメーションコマンド1800を作成する。プロセッサ2006は、転送元用リクラメーションコマンド1600を、転送元モジュール2003A内のフラッシュメモリ制御部301Aに送信し、転送先用リクラメーションコマンド1800を、転送先モジュール2003B内のフラッシュメモリ制御部301Bに送信する。   In the first inter-module reclamation process, the processor 2006 shows the transfer source reclamation command 1600 shown in FIG. 16 and FIG. 18 based on the first and second management tables (see FIG. 21 and FIG. 22). A transfer destination reclamation command 1800 is created. The processor 2006 transmits a transfer source reclamation command 1600 to the flash memory control unit 301A in the transfer source module 2003A, and transmits a transfer destination reclamation command 1800 to the flash memory control unit 301B in the transfer destination module 2003B. To do.

図16に示す転送元用リクラメーションコマンド1600によれば、図13に示すリクラメーションコマンド1300との共通点として、リードコマンド1601及びページリスト1602が含まれている点があり、相違点として、消去コマンド1304、ブロック番号1305、ライトコマンド1306及びブロック番号1307に代えて、転送コマンド1604及び転送先フラッシュメモリ制御部アドレス1605が含まれている点にある。転送コマンド1604は、ページリスト1603を基に読み出され論理ページのアドレスの若い順に並べられた有効データ要素群を転送先モジュール2003Bに転送することのコマンドである。転送先フラッシュメモリ制御部アドレス1605は、転送コマンド1604に後続のパラメータであり、転送先モジュール2003B内のフラッシュメモリ制御部301Bのアドレスを表す。   According to the transfer source reclamation command 1600 shown in FIG. 16, the read command 1601 and the page list 1602 are included as common points with the reclamation command 1300 shown in FIG. Instead of the command 1304, the block number 1305, the write command 1306, and the block number 1307, a transfer command 1604 and a transfer destination flash memory control unit address 1605 are included. The transfer command 1604 is a command for transferring a valid data element group read based on the page list 1603 and arranged in ascending order of logical page addresses to the transfer destination module 2003B. The transfer destination flash memory control unit address 1605 is a parameter subsequent to the transfer command 1604 and represents the address of the flash memory control unit 301B in the transfer destination module 2003B.

図18に示す転送先用リクラメーションコマンド1800によれば、図13に示すリクラメーションコマンド1300との共通点として、消去コマンド1801、消去コマンド1801に後続のブロック番号1802、ライトコマンド1803、及びライトコマンド1803に対応するブロック番号1805が含まれている点にあり、相違点として、リードコマンド1301及びページリスト1302が含まれていない点と、ライトコマンド1803について転送元フラッシュメモリ制御部アドレス1804が含まれている点にある。転送元フラッシュメモリ制御部アドレス1804は、転送元モジュール2003A内のフラッシュメモリ制御部301Aのアドレスを表す。   According to the transfer destination reclamation command 1800 shown in FIG. 18, as a common point with the reclamation command 1300 shown in FIG. 13, an erase command 1801, a block number 1802 following the erase command 1801, a write command 1803, and a write command The block number 1805 corresponding to 1803 is included. The difference is that the read command 1301 and the page list 1302 are not included, and the transfer source flash memory control unit address 1804 is included for the write command 1803. There is in point. The transfer source flash memory control unit address 1804 represents the address of the flash memory control unit 301A in the transfer source module 2003A.

転送元のフラッシュメモリ制御部301Aは、転送元用クラメーションコマンド1600を受信すると、以下の処理を行う。   Upon receiving the transfer source confirmation command 1600, the transfer source flash memory control unit 301A performs the following processing.

すなわち、図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 command 1600 is a transfer source reclamation command. As shown in FIG. 9, the flash command generation unit 303A generates a plurality of read flash commands respectively corresponding to a plurality of read source pages based on the read command 1601 and the page list 1602 in the transfer source reclamation command 1600. The read flash command is transmitted to the flash memory chip having the read source page. As a result, a plurality of valid data elements corresponding to a plurality of logical pages constituting the logical block are read, and the read valid data elements are written in the second block buffer 903A. The plurality of valid data elements are arranged in the second block buffer 903A in ascending order of logical page addresses.

次に、フラッシュメモリ制御部301Aは、転送元用リクラメーションコマンド1600における転送コマンド1604に応答して、転送先フラッシュメモリ制御部アドレス1605が表すフラッシュメモリ制御部301Bに、第二のブロックバッファ903Aに記憶されている有効データ要素群を、第二のデータバス904を通じて転送する。具体的には、例えば、コマンド解釈部302Aが、転送コマンド1604を解釈した場合に、シーケンス/タイミング制御部304Aが、第二のブロックバッファ903Aに記憶されている有効データ要素群を、第二のデータバス904を通じて転送する。なお、このとき、転送先のフラッシュメモリ制御部301Bが、ビジーなら、ビジーであることがフラッシュメモリ制御部301B内のシーケンス/タイミング制御部からプロセッサ2006に伝わり、プロセッサ2006が、転送先のフラッシュメモリ制御部301Bに中断コマンドを送信しない限り、転送先のフラッシュメモリ制御部301Bは、転送元のフラッシュメモリ制御部301Aから有効データ要素群を受け付けるまで待つ。   Next, in response to the transfer command 1604 in the transfer source reclamation command 1600, the flash memory control unit 301A transfers the flash memory control unit 301B indicated by the transfer destination flash memory control unit address 1605 to the second block buffer 903A. The stored valid data element group is transferred through the second data bus 904. Specifically, for example, when the command interpretation unit 302A interprets the transfer command 1604, the sequence / timing control unit 304A converts the valid data element group stored in the second block buffer 903A to the second data buffer group 903A. Transfer through the data bus 904. At this time, if the transfer destination flash memory control unit 301B is busy, the fact that it is busy is transmitted from the sequence / timing control unit in the flash memory control unit 301B to the processor 2006, and the processor 2006 receives the transfer destination flash memory. Unless the interruption command is transmitted to the control unit 301B, the transfer-destination flash memory control unit 301B waits until a valid data element group is received from the transfer-source flash memory control unit 301A.

フラッシュメモリ制御部301Aは、第二のブロックバッファ903Aに記憶されている有効データ要素群をフラッシュメモリ制御部301Bに転送し終えた場合(例えば、転送先のフラッシュメモリ制御部301Bから所定の応答を受信した場合)、転送元用リクラメーションコマンド1600の処理の終了を表す状態信号314Aを、プロセッサ2006に送信する。これにより、プロセッサ2006は、転送元モジュール2003Aから有効データ要素群の転送が終了したことを知ることができる。   When the flash memory control unit 301A has finished transferring the valid data element group stored in the second block buffer 903A to the flash memory control unit 301B (for example, a predetermined response is received from the transfer destination flash memory control unit 301B). If received), a status signal 314A indicating the end of processing of the transfer source reclamation command 1600 is transmitted to the processor 2006. Accordingly, the processor 2006 can know that the transfer of the valid data element group has been completed from the transfer source module 2003A.

転送された有効データ要素群は、第二のスイッチ機構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 second data bus 904, the second data in the flash memory control unit 301B. Stored in the block buffer 903B.

転送先のフラッシュメモリ制御部301Bは、受信した転送先用リクラメーションコマンド1800内の消去コマンド1801に応答して、ブロック番号1802から特定される物理ブロック1002内のデータ要素群を消去する。   In response to the erase command 1801 in the transfer destination reclamation command 1800, the transfer destination flash memory control unit 301B erases the data element group in the physical block 1002 identified from the block number 1802.

次に、フラッシュメモリ制御部301Bは、転送先用リクラメーションコマンド1800におけるライトコマンド1803に応答して、第二のブロックバッファ903Bに記憶されている有効データ要素群の送信元のフラッシュメモリ制御部301Aが、転送元フラッシュメモリ制御部アドレス1804から特定されるフラッシュメモリ制御部であるか否かを判断する。肯定的な判断結果となれば、フラッシュメモリ制御部301Bは、ブロック番号1805から特定される物理ブロック1002に、第二のブロックバッファ903Bに格納されている有効データ要素群を書き込む。その際、第二のブロックバッファ903Bにおいてアドレスが若い順から、有効データ要素が読み出され、集約先の物理ブロック1002のページアドレスの若い順に、読み出された有効データ要素が書込まれていく。   Next, in response to the write command 1803 in the transfer destination reclamation command 1800, the flash memory control unit 301B sends the flash memory control unit 301A that is the source of the valid data element group stored in the second block buffer 903B. Is a flash memory control unit specified from the transfer source flash memory control unit address 1804. If the determination result is affirmative, the flash memory control unit 301B writes the valid data element group stored in the second block buffer 903B to the physical block 1002 identified from the block number 1805. At that time, valid data elements are read from the second block buffer 903B in ascending order of addresses, and the read valid data elements are written in ascending order of page addresses of the physical block 1002 at the aggregation destination. .

フラッシュメモリ制御部301Bは、第二のブロックバッファ903Bに記憶されている有効データ要素群を物理ブロック1002に書き終えた場合、転送先用リクラメーションコマンド1800の処理の終了を表す状態信号314Bを、プロセッサ2006に送信する。これにより、プロセッサ2006は、転送先モジュール2003Bにおいて有効データ要素群の書き込み終了したことを知ることができる。   When the flash memory control unit 301B finishes writing the valid data element group stored in the second block buffer 903B in the physical block 1002, the status signal 314B indicating the end of the processing of the transfer destination reclamation command 1800 is displayed. To the processor 2006. As a result, the processor 2006 can know that the writing of the valid data element group has been completed in the transfer destination module 2003B.

以上の一連の処理により、第一のモジュール間リクラメーション処理が完了する。なお、転送先のフラッシュメモリ制御部301Bは、バッファ903Bが空いていれば、転送されてきた有効データ要素を受信するが、その際、転送元フラッシュメモリ制御部アドレス1804が表すフラッシュメモリ制御部と転送元フラッシュメモリ制御部301Aとが一致したのを確認した場合に、指定されたブロック(ブロック番号1805が表すブロック)に、バッファ903Bに記憶されている有効データ要素群を書き込む。   The first inter-module reclamation process is completed by the series of processes described above. If the buffer 903B is empty, the transfer destination flash memory control unit 301B receives the transferred valid data element. At this time, the flash memory control unit 301B indicated by the transfer source flash memory control unit address 1804 When it is confirmed that the transfer source flash memory control unit 301A matches, the valid data element group stored in the buffer 903B is written into the designated block (block represented by the block number 1805).

転送先用リクラメーションコマンド1800は、プロセッサ2006に代えて、転送先のフラッシュメモリ制御部301Aからフラッシュメモリ制御部301Bに送信されても良い。しかし、上述の説明のように、転送元用リクラメーションコマンド1600だけでなく転送先用リクラメーションコマンド1800がプロセッサ2006から送信されることで、プロセッサ2006は、転送元モジュール2003Aと転送先モジュール2003Bの両方から状態信号やステータスを受信できる。このため、プロセッサ2006は、転送元モジュール2003Aと転送先モジュール2003Bのそれぞれにおいて動作が確実に行われているかどうかを知ることができる。   The transfer destination reclamation command 1800 may be transmitted from the transfer destination flash memory control unit 301A to the flash memory control unit 301B instead of the processor 2006. However, as described above, not only the transfer source reclamation command 1600 but also the transfer destination reclamation command 1800 is transmitted from the processor 2006, so that the processor 2006 can change the transfer source module 2003A and the transfer destination module 2003B. Can receive status signals and status from both. For this reason, the processor 2006 can know whether the operation is reliably performed in each of the transfer source module 2003A and the transfer destination module 2003B.

なお、モジュール内リクラメーション処理と同様に、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 original blocks 901 respectively assigned to a plurality of logical blocks may be assigned to the update block 902 existing in the transfer source module 2003A, and a plurality of logical blocks may be assigned to the transfer destination module 2003B. There may be a plurality of aggregation-destination physical blocks 1002 corresponding to each.

この場合、第二のブロックバッファ903A及び903Bの記憶容量としては、更新ブロック902に割り当てられている複数の元ブロック分の記憶容量が必要である。   In this case, as the storage capacities of the second block buffers 903A and 903B, a storage capacity for a plurality of original blocks allocated to the update block 902 is required.

また、この場合、転送元モジュール2003Aには、図16に示す転送元用リクラメーションコマンド1600に代えて、図17に示す転送元用リクラメーションコマンド1700が送信される。一方、転送先モジュール2003Bには、図18に示す転送先用リクラメーションコマンド1800に代えて、図19に示す転送先用リクラメーションコマンド1900が送信される。   In this case, the transfer source reclamation command 1700 shown in FIG. 17 is transmitted to the transfer source module 2003A instead of the transfer source reclamation command 1600 shown in FIG. On the other hand, instead of the transfer destination reclamation command 1800 shown in FIG. 18, the transfer destination reclamation command 1900 shown in FIG. 19 is transmitted to the transfer destination module 2003B.

図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 source reclamation command 1700 shown in FIG. 17, the following two points are different from the transfer source reclamation command 1600 shown in FIG.
(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 page list 1702;
(17-2) The block number in the page list 1702 includes the address of the flash memory chip,
There is. Upon receiving this transfer source reclamation command 1700, the transfer source flash memory control unit 301A reads valid data elements from a plurality of original blocks 901 based on the page list 1702 and writes them in the second block buffer 903A. As a result, a plurality of valid data element groups corresponding to the plurality of logical blocks are stored in the second block buffer 903A. A plurality of valid data element groups are transmitted from the second block buffer 903A to the flash memory control unit 301B and written to the second block buffer 903B in the flash memory control unit 301B.

また、図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 destination reclamation command 1900 shown in FIG. 19, the following three points are different from the transfer destination reclamation command 1800 shown in FIG.
There is.
(19-1) The fact that there are a plurality of block numbers 1902 following the erase command 1901,
(19-2) A plurality of block numbers 1905 corresponding to the write command 1903 exist.
(19-3) The flash memory chip address is included in any of the block numbers 1902 and 1905,
There is. Upon receiving the transfer destination reclamation command 1900, the transfer destination flash memory control unit 301B deletes the data element group in the plurality of aggregation destination blocks 1002 identified from the plurality of block numbers 1902. Then, the transfer destination flash memory control unit 301B writes the plurality of valid data element groups stored in the second block buffer 903B to the plurality of aggregation destination blocks 1002 specified from the plurality of block numbers 1905.

以上、上述した第一の実施形態によれば、ストレージコントローラが、複数のフラッシュメモリを一元的に管理することができる。   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 host computer 2009 can be suppressed.

また、第一の実施形態によれば、ストレージコントローラが非接続の第二のスイッチ機構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 flash memory modules 2003 via the second switch mechanism 2002 to which the storage controller is not connected. In other words, in the transfer of the valid data element group between the flash memory modules 2003, the first switch mechanism 2001 connecting the storage controller and the flash memory module 2003 is not passed. For this reason, the path through which the data to be written or the data to be read according to the I / O request from the host computer 2009 is not compressed, so that it is possible to suppress a decrease in the performance of processing the I / O request from the host computer 2009. .

以下、図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 flash memory module 2003 ′ having a unified IF flash memory control unit is adopted instead of the flash memory module 2003 (“IF” is an abbreviation of interface). ).

図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 memory control unit 1106 includes IF protocol conversion units 1103 and 1104 in addition to the flash memory control unit 301. The IF protocol conversion units 1103 and 1104 are circuits that perform protocol conversion for high-speed serial communication. The IF protocol conversion unit 1103 exists between the second switch mechanism 2002 and the second block buffer 903. The IF protocol conversion unit 1104 exists between the first switch mechanism 2001, the command interpretation unit 302, the first data bus 312, and the sequence / timing control unit 304.

IFプロトコル変換部1103及び1104により、第二のスイッチ機構2002を経由する通信のIFと、第一のスイッチ機構2001を経由する通信のIFが統一される。   The IF protocol conversion units 1103 and 1104 unify the communication IF via the second switch mechanism 2002 and the communication IF via the first switch mechanism 2001.

以上、本発明の幾つかの好適な実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、上述の実施形態では、データ再配置処理としてリクラメーション処理を例に採り説明したが、ウェアレベリング処理などの他のデータ再配置処理に応用することもできる。   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.

NAND型フラッシュメモリのメモリセルアレイの一部分の模式図である。1 is a schematic diagram of a part of a memory cell array of a NAND flash memory. フラッシュメモリチップの構成例を示す。2 shows an example of the configuration of a flash memory chip. フラッシュメモリモジュールの構成例を示す。2 shows a configuration example of a flash memory module. 単一ページ読出し動作の説明図である。It is explanatory drawing of a single page read-out operation | movement. 単一ページ書込み動作の説明図である。It is explanatory drawing of a single page write operation. 元ブロック内の有効データ要素に更新が発生する場合に行われる処理の説明図である。It is explanatory drawing of the process performed when an update generate | occur | produces in the effective data element in an original block. 第一のモジュール内リクラメーション処理の説明図である。It is explanatory drawing of the 1st in-module reclamation process. 第二のモジュール内リクラメーション処理を説明図である。It is explanatory drawing of the 2nd in-module reclamation process. 第一のモジュール間リクラメーション処理における転送元のフラッシュメモリモジュールを示す。The transfer source flash memory module in the first inter-module reclamation process is shown. 第一のモジュール間リクラメーション処理における転送先のフラッシュメモリモジュールを示す。A transfer destination flash memory module in the first inter-module reclamation process is shown. 本発明の第二の実施形態に係るストレージシステムの構成例を示す。The structural example of the storage system which concerns on 2nd embodiment of this invention is shown. 本発明の第二の実施形態におけるフラッシュメモリモジュールに備えられる統一IFフラッシュメモリ制御部の構成例を示す。The structural example of the unified IF flash memory control part with which the flash memory module in 2nd embodiment of this invention is equipped is shown. 第一のモジュール内リクラメーション処理において発行されるリクラメーションコマンドを示す。The reclamation command issued in the 1st in-module reclamation process is shown. 第二のモジュール内リクラメーション処理において発行されるリクラメーションコマンドを示す。The reclamation command issued in the second in-module reclamation process is shown. リードコマンド及びページリストに基づいてリードフラッシュコマンドが作成されることの説明図である。It is explanatory drawing that a read flash command is produced based on a read command and a page list. 第一のモジュール間リクラメーション処理において発行される転送元用リクラメーションコマンドを示す。A transfer source reclamation command issued in the first inter-module reclamation process is shown. 第二のモジュール間リクラメーション処理において発行される転送元用リクラメーションコマンドを示す。A transfer source reclamation command issued in the second inter-module reclamation process is shown. 第一のモジュール間リクラメーション処理において発行される転送先用リクラメーションコマンドを示す。The transfer destination reclamation command issued in the first inter-module reclamation process is shown. 第二のモジュール間リクラメーション処理において発行される転送先用リクラメーションコマンドを示す。The transfer destination reclamation command issued in the second inter-module reclamation process is shown. 本発明の第一の実施形態に係るストレージシステムの構成例を示す。1 shows a configuration example of a storage system according to a first embodiment of the present invention. 第一の管理テーブルの構成例を示す。The structural example of a 1st management table is shown. 第二の管理テーブルの構成例を示す。The structural example of a 2nd management table is shown.

符号の説明Explanation of symbols

2000…ストレージシステム 2001…第一のスイッチ機構 2002…第二のスイッチ機構 2003…フラッシュメモリモジュール 2004…ホストアダプタ 2005…キャッシュメモリ 2006…プロセッサ 2007…管理端末 2009…ホストコンピュータ 2000 ... Storage system 2001 ... First switch mechanism 2002 ... Second switch mechanism 2003 ... Flash memory module 2004 ... Host adapter 2005 ... Cache memory 2006 ... Processor 2007 ... Management terminal 2009 ... Host computer

Claims (25)

フラッシュメモリに基づく論理的な記憶資源内の記憶領域の論理アドレスを指定したI/O要求(入出力要求)を上位装置から受け付けるストレージシステムであって、
フラッシュメモリモジュールと、
前記上位装置から前記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−A)の情報を有するリードコマンドと、前記(7−B)の情報を有する転送コマンドとを更に有し、
前記第二のリクラメーションコマンドは、前記(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−A)の情報を有するリードコマンドと、前記(19−B)の情報を有する消去コマンドと、前記(19−C)の情報を有するライトコマンドとを更に有し、
前記コマンド生成部は、前記データ再配置コマンドが有する前記リードコマンドに応答して前記(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.
JP2008133098A 2008-05-21 2008-05-21 Flash memory module and storage system Pending JP2009282678A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022051902A (en) * 2020-08-31 2022-04-01 キオクシア株式会社 Memory system

Families Citing this family (22)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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