WO2013046463A1 - 不揮発半導体記憶システム - Google Patents

不揮発半導体記憶システム Download PDF

Info

Publication number
WO2013046463A1
WO2013046463A1 PCT/JP2011/072653 JP2011072653W WO2013046463A1 WO 2013046463 A1 WO2013046463 A1 WO 2013046463A1 JP 2011072653 W JP2011072653 W JP 2011072653W WO 2013046463 A1 WO2013046463 A1 WO 2013046463A1
Authority
WO
WIPO (PCT)
Prior art keywords
chip
nonvolatile
data
chips
enable signal
Prior art date
Application number
PCT/JP2011/072653
Other languages
English (en)
French (fr)
Inventor
石川 篤
薗田 浩二
上原 剛
純司 小川
英通 小関
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2013535800A priority Critical patent/JP5635200B2/ja
Priority to EP20110873310 priority patent/EP2704015A4/en
Priority to CN201180071483.9A priority patent/CN103597461B/zh
Priority to PCT/JP2011/072653 priority patent/WO2013046463A1/ja
Priority to US13/379,223 priority patent/US8949511B2/en
Priority to CN201610165063.1A priority patent/CN105867840B/zh
Publication of WO2013046463A1 publication Critical patent/WO2013046463A1/ja
Priority to US14/573,269 priority patent/US9335929B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Definitions

  • nonvolatile semiconductor memory devices Even in nonvolatile semiconductor memory devices, there is a demand for an increase in storage capacity. In order to increase the storage capacity, it is necessary to increase the number of mounted non-volatile chips. However, if more non-volatile chips are mounted, a circuit including an interface device connected to the non-volatile chips (hereinafter, referred to as “non-volatile chips”). In a control circuit, for example, an ASIC (Application Specific Integrated Circuit), it is necessary to prepare a pin for connecting a bus for transmitting various signals to a plurality of nonvolatile chips.
  • ASIC Application Specific Integrated Circuit
  • the multiple storage devices include multiple types of storage devices. There may be at least one storage device. Examples of the storage device include a flash memory device 400, an SSD (Solid State Drive) device 500, an HDD (Hard Disk Drive) device (SAS: Serial Attached SCSI) 600, and an HDD device (SATA: Serial ATA) 700.
  • a flash memory device 400 an SSD (Solid State Drive) device 500
  • an HDD (Hard Disk Drive) device SAS: Serial Attached SCSI) 600
  • SAS Serial Attached SCSI
  • SATA Serial ATA
  • the FM chip 32 is connected to the SW 31 without going through another FM chip 32, but the FM chip 32 may be connected to the SW 31 through another FM chip 32. That is, two or more FM chips 32 connected in series may be connected to the SW 31.
  • the DMA 247 reads the write target data element and its error correction code stored in the buffer 244 and writes them to the FM chip 32.
  • the DMA 247 reads the read target data element and its error correction code from the FM chip 32 and writes them in the buffer 244.
  • the FM controller 20 selects a migration source block from FM chips (hereinafter referred to as “empty depleted chips” in FIG. 18) 32 in which empty blocks are depleted (step 1701).
  • the movement source block may be a block having the smallest valid page among the empty depleted chips 32 (or blocks in which data is written to the end page in the empty depleted chips 32 (erase candidate blocks)). desirable. This is because the total amount of valid data to be moved is minimized, and therefore it can be expected to reduce the time and load required for the reclamation process.
  • the source block may be selected from FM chips 32 other than the empty depleted chip 32.
  • the CPU 21 selects a free block of a plurality of FM chips 32 connected to the same control unit 24 (or bus 25 or SW 31) as a destination block ( Step 1703). Free blocks of a plurality of FM chips 32 connected to the same bus 25 or SW 31 may be preferentially selected as a destination block. If there is no predetermined number of empty blocks in the plurality of FM chips 32 connected to the same bus 25 or SW 31, the plurality of FM chips 32 connected to different buses 25 or SW 31 in the same control unit 24. An empty block may be selected as a destination block.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

 不揮発半導体記憶システムが、複数の不揮発半導体記憶媒体と、複数の不揮発半導体記憶媒体に接続された媒体インタフェース群(1以上のインタフェースデバイス)を有する制御回路と、複数のスイッチとを有する。媒体インタフェース群と複数のスイッチとがデータバスを介して接続され、各スイッチと、各2以上の不揮発チップとが、データバスを介して接続される。スイッチは、媒体インタフェース群に接続されているデータバスとそのスイッチに接続されている複数の不揮発チップのいずれかに接続されているデータバスとの接続を切り替えるよう構成されている。制御回路は、ライト対象のデータを複数のデータ要素に分割し、複数のスイッチを制御することにより接続を切り替えて、複数のデータ要素を複数の不揮発チップに分散して送信する。

Description

不揮発半導体記憶システム
 本発明は、複数の不揮発半導体記憶媒体を有する記憶システムに関する。
 ストレージシステムは、一般に、複数の記憶デバイスで構成されたRAID(Redundant Array of Independent Disks)グループに基づいて作成された論理ボリュームを、上位装置(例えばホストコンピュータ)へ提供する。近年、記憶デバイスとしては、HDD(Hard Disk Drive)に加えて又は代えて、複数の不揮発チップを有する不揮発半導体記憶装置が採用されている。不揮発半導体記憶デバイスとして、例えば、複数のフラッシュメモリチップ(以下、FMチップ)を有するフラッシュメモリが採用される(例えば特許文献1)。
特開2010-3161号公報
 不揮発半導体記憶デバイスにおいても、記憶容量の増加が要請されている。記憶容量を増加させるためには、搭載する不揮発チップを増加させることが必要であるが、より多くの不揮発チップを搭載するようにすると、不揮発チップに接続されるインタフェースデバイスを含んだ回路(以下、制御回路、例えばASIC(Application Specific Integrated Circuit))には、複数の不揮発チップに各種信号を送信するためのバスを接続するためのピンを用意しておく必要がある。
 このため、不揮発半導体記憶デバイスの記憶容量を増加させようとすると、制御回路のサイズが大きくなってしまう。一方、制御回路のサイズを小さくすると、接続可能な不揮発チップの数が少なくなり、記憶容量を増加させることが困難である。また、多数の不揮発チップを接続すると効率よくデータ転送をすることが困難である。
 本発明の目的は、制御回路のサイズを抑えつつ、搭載できる不揮発チップの数を増加させ、効率よくデータ転送することのできる技術を提供することにある。
 不揮発半導体記憶システムが、(a)複数の不揮発半導体記憶媒体と、(b)複数の不揮発半導体記憶媒体に接続された媒体インタフェース群(1以上のインタフェースデバイス)を有する制御回路と、(c)複数のスイッチとを有する。媒体インタフェース群と複数のスイッチとがデータバスを介して接続され、各スイッチと、各2以上の不揮発チップとが、データバスを介して接続される。スイッチは、媒体インタフェース群に接続されているデータバスとそのスイッチに接続されている複数の不揮発チップのいずれかに接続されているデータバスとの接続を切り替えるよう構成されている。制御回路は、ライト対象のデータを複数のデータ要素に分割し、複数のスイッチを制御することにより接続を切り替えて、複数のデータ要素を複数の不揮発チップに分散して送信する。
 不揮発半導体記憶システムは、上記(a)、(b)及び(c)の要素を有する記憶媒体グループ(例えば、後述のフラッシュメモリPKG10)であっても良いし、そのような記憶媒体グループを複数個有する記憶装置(例えば後述のフラッシュメモリデバイス400)であっても良いし、そのような記憶装置を複数個とそれらの記憶装置に接続されたコントローラとを有するシステム(例えば、後述のストレージシステム1)であっても良い。
 媒体インタフェース群は、複数の媒体インタフェースを有し、媒体インタフェースが、N個の不揮発半導体記憶媒体(Nは1以上の整数)毎に存在しても良い。1つの不揮発半導体記憶媒体を構成する複数の不揮発チップが、例えば1つのDIMMに存在して良い。DIMMが、それら複数の不揮発チップに接続される1以上のスイッチを有して良い。
図1は、実施形態に係る計算機システムの構成例を示す。 図2は、実施形態に係るフラッシュメモリデバイスの構成例を示す。 図3は、実施形態に係るフラッシュメモリパッケージの構成例を示す。 図4は、実施形態に係るフラッシュメモリパッケージの一部の詳細な構成例を示す。 図5は、実施形態に係る書込み処理の第1の例を説明する図である。 図6は、実施形態に係る書込み処理の第2の例を説明する図である。 図7は、実施形態に係るフラッシュメモリデバイスの正面上方からの斜視図の一例である。 図8は、実施形態に係るフラッシュメモリPKGの上面側からの斜視図の一例である。 図9は、実施形態に係るフラッシュメモリPKGの下面側からの斜視図の一例である。 図10は、実施形態に係るDIMMの概略構成の一例を示す。 図11は、実施形態に係るチップリード処理のフローチャートの一例である。 図12は、実施形態に係るチップライト処理のフローチャートの一例である。 図13は、実施形態に係るチップ多重ライト処理のフローチャートの一例である。 図14は、実施形態の一変形例に係るフラッシュメモリパッケージの一部の詳細な構成例を示す。 図15は、実施形態に係る論理アドレス層と物理層との関係の一例を示す。 図16は、実施形態に係るユーザアドレス空間とフラッシュストレージ論理空間との関係の一例を示す。 図17は、実施形態に係る論理物理変換情報の構成例を示す。 図18は、実施形態に係るリクラメーション処理のフローチャートの一例を示す。 図19は、実施形態に係る消去管理情報の構成例を示す。
 以下、一実施形態を、図面を参照して説明する。
 なお、以下の説明では、要素(例えば、ページ、フラッシュメモリチップ(FMチップ)、スイッチ(SW))を特定するために番号を含む識別情報が使用されるが、識別情報として、番号を含まない情報が使用されても良い。
 また、以下の説明では、同種の要素を区別して説明する場合、要素名と参照符号との組合せに代えて、要素名と識別情報との組合せが使用されることがある。例えば、識別情報(識別番号)「0」のスイッチを、「スイッチ#0」と表記することがある。
 また、以下の説明では、インタフェースデバイスを「I/F」と略記することがある。
 また、以下の説明では、不揮発半導体記憶媒体は、フラッシュメモリ(FM)であるとする。そのフラッシュメモリは、ブロック単位で消去が行われ、ページ単位でアクセスが行われる種類のフラッシュメモリ、典型的にはNAND型のフラッシュメモリであるとする。しかし、フラッシュメモリは、NAND型に代えて他種のフラッシュメモリ(例えばNOR型)でも良い。また、フラッシュメモリに代えて、他種の不揮発半導体記憶媒体、例えば相変化メモリが採用されても良い。
 また、以下の説明では、不揮発半導体記憶媒体は、前述したように、NAND型フラッシュメモリである。このため、ページとブロックという用語が使用される。また、或る論理領域(この段落において「対象論理領域」と言う)がライト先であり、且つ、対象論理領域に既にページ(この段落において「第1のページ」と言う)が割り当てられていて第1のページにデータが格納されている場合、対象論理領域には、第1のページに代えて、空きのページ(この段落において「第2のページ」と言う)が割り当てられ、第2のページにデータが書き込まれることになる。第2のページに書き込まれたデータが、対象論理領域にとって最新のデータであり、第1のページに格納されているデータは、対象論理領域にとって旧いデータとなる。以下、各論理領域について、最新のデータを「有効データ」と言い、旧いデータを「無効データ」と言うことがある。また、有効データを格納しているページを「有効ページ」と言い、無効データを格納しているページを「無効ページ」と言うことがある。
 さて、まず、本実施形態の概要を説明する。
 フラッシュメモリデバイス400は、図2に示すように、例えば、1以上のフラッシュメモリパッケージ(フラッシュメモリPKG)10を備える。フラッシュメモリPKG10は、図3に示すように、複数のフラッシュメモリチップ(FMチップ)32を有する。
 フラッシュメモリPKG10の媒体インタフェースの一例であるFM I/F制御部24は、FMチップ32に対して、チップイネーブル信号(CE信号)、及び、そのFMチップ32に書き込むデータ、そのデータのライト先とするアドレスを出力する。本実施形態においては、図4に示すように、FM I/F制御部24から出力されるCE信号用の信号線27は、複数のFMチップ32に接続されるように配されている。FM I/F制御部24では、一つのCE信号線27に対して、一つの出力端子(ピン)があればよいので、FMチップ32の個数よりも少ない数のピンがあればよい。このため、FM I/F制御部24を含むASIC等の回路におけるピンの配置に必要な領域を低減することができる。
 また、本実施形態においては、図4に示すように、FM I/F制御部24から出力されるデータ、アドレス等の信号(CE信号以外の信号)が流れるバス(バス:制御線が含まれてないがバスということとする)25は、それぞれスイッチ31に接続されている。また、スイッチ31には、M個(Mは2以上の整数、例えば、M=4)のFMチップ32がバス28を介して接続されている。スイッチ31は、バス25と、いずれかのバス28との接続を切り替えることができるようになっている。複数のFMチップ32に対するリードとライトにおいては、バス25を介してデータ、アドレス等がやり取りされるので、FM I/F制御部24では、バス25が接続されるピンが確保されていればよい。したがって、FM I/F制御部24を含むASIC等の回路におけるピンの配置に必要な領域を低減することができる。また、バス25と、複数のバス28のいずれかをスイッチ31により接続させるので、複数のバス28が電気的に接続されている状態とはならない。このため、バス25を介してFMチップ32に接続される全体の配線における負荷容量を抑えることができ、FMチップ32との間のデータ交換の品質を比較的高くすることができる。
 次に、本実施形態を詳細に説明する。
 図1は、本実施形態に係る計算機システムの構成例を示す。
 計算機システムは、ストレージシステム1と、ホストコンピュータ(ホストともいう)200とを有する。ストレージシステム1、ホスト200の数は、それぞれ、1以上とすることができる。ストレージシステム1と、ホスト200とは、通信ネットワーク(例えば、SAN(Storage Area Network))を介して相互に接続されている。ストレージシステム1は、ホスト200で利用されるデータを記憶する。ホスト200は、各種処理を実行し、ストレージシステム1からデータを読み出したり、ストレージシステム1へデータを書き込んだりする。
 ストレージシステム1は、複数の記憶デバイスと、それら複数の記憶デバイスに接続されたRAID(Redundant Array of Independent (or Inexpensive) Disksの略))コントローラデバイス300とを有する。
 複数の記憶デバイスは、複数種類の記憶デバイスを含む。少なくとも1種類の記憶デバイスは、1以上存在して良い。記憶デバイスとして、例えば、フラッシュメモリデバイス400、SSD(Solid State Drive)デバイス500、HDD(Hard Disk Drive)デバイス(SAS:Serial Attached SCSI)600及びHDDデバイス(SATA:Serial ATA)700がある。
 RAIDコントローラデバイス300は、複数のRAIDコントローラ301を有する。各RAIDコントローラ301は、フラッシュメモリデバイス400、SSDデバイス500、HDDデバイス(SAS)600及びHDDデバイス(SATA)700と内部バスを介して接続されている。
 なお、RAIDコントローラ301は、フラッシュメモリデバイス400、SSDデバイス500、HDDデバイス(SAS)600及びHDDデバイス(SATA)700にとっての上位装置の一例である。RAIDコントローラ301は、RAIDコントローラ301にとっての上位装置(例えば、ホスト200)からI/Oコマンドを受け、そのI/Oコマンドに従い、フラッシュメモリデバイス400、SSDデバイス500、HDDデバイス(SAS)600又はHDDデバイス(SATA)700へのアクセス制御を行う。RAIDコントローラ301は、フラッシュメモリデバイス400、SSDデバイス500、HDDデバイス(SAS)600、HDDデバイス(SATA)700のそれぞれの記憶領域をそれぞれ異なる記憶階層として管理し、データのライト先の論理領域に対して、いずれかの記憶階層の記憶領域を割当てる処理を行うようにしてもよい。
 ここで、SSDデバイス500の方がフラッシュメモリデバイス400よりもフラッシュメモリの書き込み可能回数が多い、一方、読み出し速度及びコスト面では、フラッシュメモリデバイス400の方が優れているという特徴があるとする。このため、RAIDコントローラ301は、リードが比較的頻繁に行われるデータを、フラッシュメモリデバイス400に格納し、ライトが比較的頻繁に行われるデータを、SSDデバイス500に格納してもよい。
 図2は、本実施形態に係るフラッシュメモリデバイスの構成例を示す。
 フラッシュメモリデバイス400は、1以上の上位I/Fスイッチ(上位I/F Switch)401と、1以上のフラッシュメモリパッケージ(PKG)10とを有する。上位I/Fスイッチ401は、RAIDコントローラ301と、複数のフラッシュメモリPKG10との間のデータの中継を行う。
 図3は、本実施形態に係るフラッシュメモリパッケージの構成例を示す。
 フラッシュメモリPKG10は、主記憶メモリの一例としてDRAM(Dynamic Random Access Memory)11を有し、また、FMコントローラ20と、複数(又は1つ)のDIMM(Dual Inline Memory Module)30とを有する。DRAM11は、FMコントローラ20で使用するデータ等を記憶する。DRAM11は、FMコントローラ20に搭載されていても良いし、FMコントローラ20とは別の部材に搭載されていても良い。
 FMコントローラ20は、例えば、1つのASIC(Application Specific Integrated Circuit)で構成されており、CPU21と、内部バス22と、上位I/F(インタフェース)23と、複数(又は1つ)のFM I/F制御部24とを有する。内部バス22は、CPU21と、上位I/F23と、DRAM11と、FM I/F制御部24とを通信可能に接続する。
 上位I/F23は、上位I/F Switch401に接続され、上位装置との通信を仲介する。上位I/F23は、例えば、SASのI/Fである。FM I/F制御部24は、複数のFMチップ32とのデータのやり取りを仲介する。本実施形態では、FM I/F制御部24は、FMチップ32とのやり取りを実行するバス(データバス等)を複数組有し、複数のバスを用いて、複数のFMチップ32とのデータのやり取りを仲介する。本実施形態では、DIMM30毎にFM I/F制御部24が設けられ、FM I/F制御部24は、その制御部24に接続されたDIMM30が有する複数のFMチップ32との通信を仲介する。なお、FM I/F制御部24が担当するDIMM30の枚数は、2以上であってもよい。CPU21は、DRAM11(又は図示しない他の記憶領域)に記憶されるプログラムを実行することによって、各種処理を実行することができる。CPU21は複数あってもよく、複数のCPU21が各種処理を分担してもよい。CPU21による具体的な処理については、後述する。
 DIMM30は、1以上のSW31と、複数のFMチップ32とを有する。FMチップ32は、例えば、MLC(Multi Level Cell)型のNANDフラッシュメモリチップである。MLC型のFMチップは、SLC型のFMチップと比べて書き換え可能な回数が劣るが、1セルあたりの記憶容量が多いという特徴を有している。
 SW31は、FM I/F制御部24と、データバスを含むバス25を介して接続されている。本実施形態では、SW31は、FM I/F制御部24に接続されるデータバスを含む一組のバス25に対して、一つ対応するように設けられている。また、SW31は、複数のFMチップ32とデータバスを含むバス28を介して接続されている。SW31は、FM I/F制御部24からのバス25と、いずれかのFMチップ32のバス28とを選択的に切り替えて接続できるようになっている。ここで、DIMM30に、SW31と、複数のFMチップ32とが設けられ、配線がされているので、これらを接続するためのコネクタを別に用意せずともよく、必要なコネクタ数を低減することが期待できる。
 なお、図3によれば、FMチップ32が別のFMチップ32を介することなくSW31に接続されているが、FMチップ32が別のFMチップ32を介してSW31に接続されても良い。すなわち、SW31に、直列になった2以上のFMチップ32が接続されても良い。
 図4は、本実施形態に係るフラッシュメモリパッケージの一部の詳細な構成例を示す。
 FM I/F制御部24は、ECC(Error Correcting Code)回路241と、制御レジスタ242と、FM/SW制御部243と、バッファ244と、FMバスプロトコル制御部(図では「プロトコル1、プロトコル2」のように表記)246と、DMA(Direct Memory Access)部247とを有する。本実施形態では、バッファ244、FMバスプロトコル制御部246、及びDMA部247の組を、FMI/F制御部24が担当するデータバスの数分(例えば、2組)備えている。
 DRAM11では、後述するように、ライト対象のデータが複数のデータ要素に分割される。ECC回路241は、DRAM11からライト対象のデータ要素を読み出し、ライト対象のデータ要素に対応する(例えば付加される)誤り訂正符号を生成する誤り訂正処理を実行し、ライト対象のデータ要素と、そのデータ要素に対応する誤り訂正符号とをバッファ244に書き込む。
 また、ECC回路241は、バッファ244からリード対象のデータ要素とそのデータ要素に対応する誤り訂正符号とを含むデータを読み出し、リード対象データ要素に誤りが発生しているか否かをそのデータ要素に対応する誤り訂正符号を用いて判断する。その判断の結果が肯定の場合、ECC回路241は、リード対象データ要素の誤りを訂正する誤り訂正処理を実行する。ECC回路241は、DRAM11に、リード対象のデータを格納する。
 本実施形態では、ECC回路241は、複数のデータバスに接続される複数のFMチップ32に対する誤り訂正符号生成処理、誤り訂正処理を担当する。なお、誤り訂正符号生成処理を実行する符号生成回路部、誤り訂正処理を実行する誤り訂正回路部は、一つであってもよく、複数であってもよい。符号生成回路部及び/又は誤り訂正回路部の数を抑えると、FM I/F制御部24の大きさを抑えることができる。なお、符号生成回路部については、回路規模が比較的小さいので、符号生成回路部は複数存在してもよい。いずれのケースでも、少なくとも誤り訂正回路部が、複数のデータバスについて共通なので、回路規模の軽減を期待することができる。
 制御レジスタ242は、FMチップ32に対するアクセスを制御するために必要な情報を記憶する。アクセスを制御するために必要な情報は、例えば、CPU21の制御、FMバスプロトコル制御部246により設定される。
 FM/SW制御部243は、制御レジスタ242の設定に応じて、DIMM30の複数のSW26を切り替える信号(切替信号)と、アクセス対象のFMチップ32を選択するチップイネーブル信号(CE信号)とを出力する。本実施形態では、FM/SW制御部243には、複数のCE信号線27(27-1、27-2、27-3)と、それら複数のCE信号線27に共通の、切替信号用の信号線26(切替信号線)が接続されている。各CE信号線27は、異なるSW31の配下にある異なるFMチップ32に接続される。
 FM/SW制御部243に接続された切替信号線26は、DIMM30の複数のSW31(SW1、SW2)に接続される。これにより、複数のSW31には、同じ切替信号が供給されることとなる。例えば、同一のDIMM30における複数のSW31の全てについて、同一番号のピンには、同一のCE信号線27に接続されたFMチップ32が接続されているとする。このケースでは、それら複数のSW31が同じ切替信号を受信すれば、各SW31の接続先を、同一のCE信号線27に接続されたFMチップ32とすることができる。故に、複数のデータ要素の書込み先を、同一のCE信号線27に接続された複数のFMチップ32にすることができ、以って、それら複数のデータ要素を並行して書き込むことが期待できる。
 FM/SW制御部243に接続されたCE信号線27は、複数のSW31が担当する複数のFMチップ32に対して接続されている。本実施形態では、CE信号線27-1は、FM#1-1と、FM#2-1とに接続され、CE信号線27-2は、FM#1-2と、FM#2-2とに接続され、同様に、CE信号線27-Nは、FM#1-Nと、FM#2-Nとに接続されている。このような構成により、同一のCE信号線27に接続された複数のFMチップ32には、CE信号が、ほぼ同時に供給されることとなる。このため、これらFMチップ32は、略同時に並行して動作することができる。本実施形態においては、切替信号が供給されると、SW#1及び#2では、それぞれ同一のCE信号線27に接続されているFMチップ32のデータバスを含むバスが、FM I/F制御部24に接続されるように切り替えられる。
 バッファ244は、FMチップ32へのライト対象データ要素及びそれの誤り訂正符号を一時的に記憶する。また、バッファ244は、FMチップ32から読み出したリード対象データ要素及びそれの誤り訂正符号を一時的に記憶する。
 DMA247は、バッファ244に記憶されたライト対象データ要素及びそれの誤り訂正符号を読み出して、それらをFMチップ32に書き込む。また、DMA247は、FMチップ32からリード対象データ要素及びそれの誤り訂正符号を読み出して、それらをバッファ244に書き込む。
 FMバスプロトコル制御部246は、制御レジスタ242の設定に従って、FMチップ32に、コマンド(リードコマンド、プログラムコマンド)を発行(出力)する。また、FMバスプロトコル制御部246は、コマンドに対するFMチップ32の動作結果(ステータス)を確認し、動作結果を制御レジスタ242に設定する。
 DMA247には、データバスが接続され、FMバスプロトコル制御部246には、コマンド用の信号線が接続され、データバス、コマンド用の信号線等を含むバス25が、SW31に接続される。
 SW31には、切替信号線26が接続されるとともに、データバスを含むバス25が接続される。本実施形態では、SW#1及び#2には、同一の切替信号線26が接続される。また、SW31には、複数のFMチップ32に繋がるデータバスを含むバス28が接続されている。SW31は、切替信号線26により供給される切替信号に基づいて、複数のバス28のいずれか1つを選択的にバス25に接続する。このSW31によると、1つのバス25により複数のFMチップ32に対するアクセスを実行することができようになる。また、SW31は、複数のバス28のいずれか1つを選択的にバス25に接続するので、信号を送信する際におけるバスの負荷容量を抑えることができ、信号の品質を高品質に維持することができる。本実施形態においては、切替信号が供給されると、SW#1及び#2では、それぞれ同一のCE信号線27に接続されているFMチップ32のデータバスを含むバス28が、FM I/F制御部24に繋がるバス25に接続されるように切り替えられる。
 図5は、本実施形態に係る書込み処理の第1の例を説明する図である。
 FMコントローラ20が、ライト対象のデータ(ライトデータ)を、DRAM11へ格納し、ライトデータを、複数のデータ要素(#0~#6等)に分割し、それら複数のデータ要素を複数のFMチップ32へ転送する。ここで言う「ライトデータ」は、典型的には、ホスト200からRAIDコントローラ301が受けたデータの一部又は全部である。また、データ要素のサイズは、FMチップ32のページサイズと、ECCのサイズとに基づくサイズである。データ要素が圧縮されてページに格納される場合には、データ要素のサイズはページサイズ以上であっても良い。ページには、データ要素とECCが格納される。
 以下、書込み処理の具体例を詳細に説明する。
 まず、FMコントローラ20(例えばCPU21)は、SW#1を切り替えて、FMチップ#1-1とバス25-1とを接続し、バス25-1を介して、FMチップ#1-1へデータ要素#0を転送する。データ要素#0は、FMチップ#1-1のページ#000に書き込まれる。また、FMコントローラ20(例えばCPU21)は、SW#2を切り替えて、FMチップ#2-1とバス25-2とを接続し、バス25-2を介してFMチップ#2-1へデータ要素#1を転送する。データ要素#1はFMチップ#2-1のページ#100へ書き込まれる。なお、FMコントローラ20は、FMチップ#1-1及び#2-1に接続されたCE信号線27-1を介してCE信号を送信して良い。これにより、FMチップ#1-1及び#2-1にデータ要素#0及び#1を並行して書き込むことができる。
 同様にして、FMコントローラ20は、SW#3を切り替えて、FMチップ#3-1へデータ要素#2を転送し、SW#4を切り替えて、FMチップ#4-1へデータ要素#3を転送する。なお、FMコントローラ20は、FMチップ#3-1及び#4-1が接続されたCE信号線27を介してCE信号を送信して良い。これにより、FMチップ#3-1及び#4-1にデータ要素#2及び#3を並行して書き込むことができる。
 続いて、FMコントローラ20は、バス25-1を介して、FMチップ#1-1へデータ要素#4を転送する。データ要素#4はFMチップ#1-1のページ001に書き込まれる。同様に、FMコントローラ20は、FMチップ#2-1へデータ要素#5を転送し、FM#3-1へデータ要素#6を転送する。
 ここで、FMコントローラ20がFMチップ#1-1へデータ要素#0を転送すると、バス25-1がビジー状態となり、ビジー状態の間はバス25-1を介してデータを転送することはできない。また、FMチップ#1-1へ転送されたデータ要素#0は、FM#1-1内のバッファ(図示せず)へ格納された後に、ページ#000へ書き込まれる。FM#1-1は、バッファに格納されたデータ要素#0の書き込みが完了するまで、ビジー状態となる。一般に、ライト処理の場合、FMチップ32のビジー状態の時間は、バス25のビジー状態の時間よりも長い。このため、FMコントローラ20がデータ要素#4をFMチップ#1-1に転送する際、FMチップ#1-1がビジー状態である場合もあるが、この場合には、FMコントローラ20は、FMチップ#1-1のビジー状態が解除されてからデータ要素#4を転送する。
 なお、上記の流れにおいて、DRAM11上のデータ要素(例えば#0)は、そのデータ要素の転送先のFMチップ32(例えば#1-1)が接続されているSW31(例えば#1)に接続されているバッファ244(例えば#1)に格納される。CPU21からの指令により、プロトコル制御部246(例えば#1)が、DMA247(例えば#1)に起動をかける。起動したDMA247が、バッファ244(例えば#1)内のデータ要素(例えば#0)を、そのデータ要素の格納先のFMチップ32(例えば#1-1)に転送する。データ要素(例えば#0)がFMチップ32(例えば#1-1)に書きこまれれば、そのFMチップ32(例えば#1-1)から完了ステータスがプロトコル制御部246(例えば#1)に送られる。プロトコル制御部246(例えば#1)は、その完了ステータスを受けたことを表す情報を、制御レジスタ242に書き込んで良い。CPU21は、制御レジスタ242を参照することで、FMチップ32(例えば#1-1)にデータ要素(例えば#0)が書き込まれたことを知ることができる。
 以上のように、FMコントローラ20は、ライトデータを複数のデータ要素に分割し、連続した2以上のデータ要素を順次異なるFMチップ32に転送する。このため、バス25及びFMチップ32がビジー状態の時間を利用して、他のバス及び他のFMチップ32に対してデータを転送することができるので、効率的にデータを転送することが可能となる。
 なお、さらに別のライトデータがDRAM11に格納された場合には、FMコントローラ20は、直前回のライトデータの末端のデータ要素が格納されるページを含んだFMチップ32(例えば#1-1)の次のFMチップ32(例えば#2-1)から、その別のライトデータを格納していく。別のライトデータも、複数のデータ要素に分割され、それら複数のデータ要素が並行して書き込まれる。そして、FMチップ#1-1、#2-1、#3-1及び#4-1(つまり1段目のFMチップ群)の末端ページまでデータ要素が書き込まれた場合には、FMコントローラ20は、各SW31の接続先を、1段目のFMチップ群に属するFMチップ32から別の段のFMチップ群に属するFMチップ(例えば、2段目のFMチップ群に属するFMチップ#1-2、#2-2、#3-2、4-2)に切り替え、そのFMチップ32にデータ要素を転送する。この後、格納されたライトデータに対する上書きライト(フラッシュメモリデバイス400が提供する論理アドレス空間の同一の論理領域をライト先としたライト)が発生した場合には、FMコントローラ20は、SW31を切り替えて、n段目のFMチップ群、(n+1)段目のFMチップ群、…にデータを分散して転送することとなる(nは1以上の整数)。この処理において、FMコントローラ20は、n段目のFMチップ群のFMチップ32がビジー状態であるときに、(n+1)段目のFMチップ群のFMチップ32にデータ要素を転送して良い。
 本実施形態では、前述したように、CE信号線27が、複数のFMチップ32(正確には、異なるSW31に接続された複数のFMチップ32)で共有されている。FMコントローラ20は、SW#1を切り替えてFMチップ#1-1とバス25-1を接続し、SW#2を切り替えてFMチップ#2-1とバス25-2とを接続することで、FM#1-1とFM#2-1に並行して連続した2つのデータ要素#0及び#1を転送することができる。さらに、FMコントローラ20は、データ要素#0をFMチップ#1-1へ、データ要素#1をFMチップ#2-1へ転送した後、CE信号線27-1を介しCE信号を送信することで、FMチップ#1-1とFMチップ#2-1を同時に(並行して)起動する。これにより、FMチップ#1-1(#2-2)は、受信したデータ要素#0(#1)を書き込む。
 つまり、FMコントローラ20は、ライトデータを複数のデータ要素に分割し、SWを順次に選択し、SWの接続先を同一のCE信号線に接続されたFMチップ32とし、連続した2以上のデータ要素を、同一のCE信号に接続された2以上のFMチップ32にそれぞれ並行して転送し、その同一のCE信号線を介してCE信号を送信する。これにより、より効率良くライトデータを書き込むことができる。FMコントローラ20が複数のデータ要素を転送する際、各SWを、それぞれ独立して切り替えるよう制御してもよいし、同期して切り替えるよう制御してもよい。
 図15は、本実施形態に係る論理アドレス層と物理層との関係の一例を示す。
 論理アドレス層1401は、フラッシュメモリデバイス400が上位装置(例えば、RAIDコントローラ301又はホスト200)に提供する論理アドレス空間である。ここで、論理アドレスとは、例えば、LBA(Logical Block Address)で良い。論理アドレス空間1401は、複数の論理領域1411に分割されて管理される。
 物理層1405は、複数のFMチップ32が有する記憶空間であり、複数のブロック1452で構成されている。各ブロック1452は、複数のページ1453で構成されている。
 論理領域1411は、物理ページ1453に関連付けられる。どの論理領域1411にどのページ1453が対応しているかを表す論理物理変換情報は、例えば、FMコントローラ20が有する記憶領域(例えばDRAM11)に記憶される。その情報は、1以上のFMチップ32にバックアップされても良い。
 例えば、図15においては、LBA0x00から0x07までの論理領域1411は、FMチップ#1-1のブロック#00のページ#000に割り当てられ、LBA0x08から0x0Fまでの論理領域1411は、FMチップ#2-1のブロック#10のページ#100に割り当てられている。このように、フラッシュメモリデバイス20にとっての上位装置の1つであるRAIDコントローラ301から、LBA0x00から0x07までのいずれかのLBAを指定したリード要求が発行された場合は、FMコントローラ20は、そのリード要求を受け、そのリード要求に従い、論理物理変換情報に基づいて、ページ#000からデータ要素をリードし、そのリードしたデータ要素を上位装置に返す。
 図17は、論理物理変換情報の構成例を示す。
 論理物理変換情報T601は、ページ毎に、ページを有するブロックの番号、ページの番号、ページの属性(有効ページ、無効ページ又は空きページ)、及び、ページの割当て先の論理領域の論理アドレス(例えば先頭アドレス)を含む。CPU21は、この情報T601を参照することにより、どのFMチップに空きブロックがあるか、どのFMチップ群におけるブロックが最も有効ページが少ないブロックであるか、及び、どの論理領域にどのページが割り当てられているか等を特定することができる。なお、この段落で言う「FMチップ群」は、1以上のFMチップ32であり、例えば、同一のFM I/F制御部24に接続されている複数のFMチップ32、同一のSW31に接続されている複数のFMチップ32、或いは、特定のFMチップ32である。
 ところで、RAIDコントローラ301がホスト200から指定される論理アドレスと、RAIDコントローラ301がフラッシュメモリデバイス400に指定する論理アドレスは同一であっても良いが、本実施形態では、それらは異なる。
 以下、FMコントローラ20によるライトデータの分散ライトと、RAIDコントローラ301によるRAIDのストライピングとの違いの一例を、図16を参照して説明する。
 図16は、本実施形態に係るユーザアドレス空間と論理アドレス空間との関係の一例を示す。
 ユーザアドレス空間3001は、LU(Logical Unit)番号とその論理アドレス(LBA)によって決定される。同図においては、LU3011が複数あり、各LU3011は、複数の論理ブロック3021で構成されている。論理ブロック3021は、異なる複数のフラッシュストレージ論理空間3002の同一論理アドレスの複数の論理ブロック3022に割り当てられている。1以上の論理ブロック3022で前述した論理領域1411(図15参照)が構成されている。フラッシュストレージ論理空間3002は、典型的には、フラッシュメモリデバイス400が提供する論理アドレス空間1401である。
 同図によれば、ユーザアドレス空間3001に関してのストライピングは、1つの論理ブロック3021が、異なる複数のフラッシュストレージ論理空間3002に跨っていることを意味する。一方、フラッシュストレージ論理空間3002(論理アドレス空間1401)に関してのストライピングは、図15によれば、アドレスの連続する2以上の論理領域1411が、CE信号線27を共通にする異なる2以上のFMチップ32に跨っていることを意味する。
 なお、LU3011は、Thin Provioningに従う仮想的なLU(TP-LU)の領域に割り当てられるセグメントを含んだプールLUでも良い。プールLUは、容量プールを構成するLUであって、複数のセグメントに分割して管理される。TP-LUの領域に対してセグメントが割り当てられる。この場合、セグメントが、1以上の論理ブロック3021で構成されていて良い。
 図6は、本実施形態に係る書込み処理の第2の例を説明する図である。
 ホスト#Aのデータ要素#A(例えば、ページサイズ以下のライトデータ、又は、ライトデータにおける末尾のデータ要素)を書き込む処理と、ホスト#Bのデータ要素#B(例えば、ページサイズ以下のライトデータ、又は、ライトデータにおける先頭のデータ要素)を書き込む処理とが発生した場合には、FMコントローラ20は、FMチップ32にデータ要素#Aを格納させ、そのFMチップ32と同一のCE信号線27に接続されている別のFMチップ32にデータ要素#Bを格納させるように決定し、データ要素#A及び#BをそれらのFMチップ32にほぼ同時に(並行して)書き込ませる。これにより、複数のホストからのデータを迅速に書き込むことができる。
 図7は、フラッシュメモリデバイス400の正面上方からの斜視図の一例である。
 フラッシュメモリデバイス400は、規格化された幅19インチのラックにマウントできる形状となっているフラッシュメモリデバイス400の高さは、例えば、2Uとなっている。フラッシュメモリデバイス400は、例えば、フラッシュメモリPKG10を12個(3列×4段)装填できるようになっている。
 図8は、フラッシュメモリPKG10の上面側からの斜視図の一例であり、図9は、フラッシュメモリPKG10の下面側からの斜視図の一例である。
 フラッシュメモリPKG10の上面側においては、ASICであるFMコントローラ20がそのPKG10の平面方向においてほぼ中央に配置され、その手前側及び奥側に、それぞれ2個ずつDIMM30が配置されている。また、フラッシュメモリPKG10の下面側においては、FMコントローラ20の下面の領域に対して、その手前側及び奥側にそれぞれ2個のDIMM30が配置されている。従って、フラッシュメモリPKG10には、8個のDIMMが配置されている。このように、FMコントローラ20をほぼ中央に配置しているので、FMコントローラ20から各DIMM30への配線の長さをほぼ均等にすることができる。
 図10は、DIMM30の概略構成の一例を示す。
 DIMM30は、例えば、8個のFMチップ32と、2個のSW31とを備える。1個のSW31が4個のFMチップ32へのバスの切替を行うようになっている。
 なお、DIMM30が有するFMチップ32の数及びSW31の数は、図10に示す数に限られない。
 また、DIMM30は、ECC回路34が備えてもよい。また、FM32毎にECC回路35が備えられてもよい。DIMM30または、FM32がECC回路を備える場合は、FM IF制御部24がECC回路241を備えなくてもよい。
 次に、フラッシュメモリPKG10における動作を説明する。以下では、FM IF制御部24がECC回路241を備える場合の処理を説明するが、DIMM30またはFM32がECC回路を備える場合は、DIMM30またはFM32のECC回路が誤り訂正処理を行う。
 図11は、チップリード処理のフローチャートの一例である。
 チップリード処理とは、FMチップ32からデータ要素を読み出す処理である。ここで、チップリード処理の前においては、FMコントローラ20のCPU21が、リード対象のFMチップ32を特定し、その特定したFMチップ32からデータ要素を読み出すための制御用の設定をFM I/F制御部24の制御レジスタ242に対して行う。
 まず、FM/SW制御部243が、リード元のFMチップ32にバス25が接続されるように、SW31の切替信号を切替信号線26により送信する。これにより、SW31が接続を切り替えて、リード元のFMチップ32がバス25に接続されるようにする(ステップ1201)。
 FM/SW制御部243が、リード元のFMチップ32に繋がるCE信号線27を介してCE信号を駆動して、リード対象のFMチップ32をアクティブにする(ステップ1202)。次いで、FMバスプロトコル制御部246は、バス25を介してリードコマンドを発行する(ステップ1203)。これにより、リードコマンドは、バス25、SW31、バス28を介してリード元のFMチップ32に送信される。次いで、DMA247が、リード元のFMチップ32からリード対象のデータ要素を読み出して、そのデータ要素をバッファ244に格納する(ステップ1204)。
 次いで、FMバスプロトコル制御部246は、FMチップ32からコマンドに対するステータスを取得し、ステータスを制御レジスタ242に格納する。CPU21は、制御レジスタ242を参照して、リードが正常に終了していることをチェックし(ステップ1205)、正常終了している場合には、ECC回路241により、バッファ244に読み出したデータ要素に対して誤り訂正処理を行わせ、DRAM11に転送させる(ステップ1206)。これにより、DRAM11には、読み出し対象のデータ要素が格納される。なお、これ以降に、CPU21がDRAM11からリード対象のデータを読み出して、上位の装置に送信することとなる。
 図12は、チップライト処理のフローチャートの一例である。
 チップライト処理とは、FMチップ32にデータ要素を書き込む処理である。ここで、チップライト処理の前においては、FMコントローラ20のCPU21が、ライト対象のFMチップ32を特定し、その特定したFMチップ32にデータ要素をライトするための制御用の設定を、FM I/F制御部24の制御レジスタ242に対して行う。また、ライト対象のデータ要素は、CPU21により、DRAM11に格納されている。
 CPU21は、DRAM11からライト対象のデータ要素を読み出し、そのデータ要素をECC回路241に渡す。ECC回路241は、ライト対象のデータ要素に対応するECCを生成し、ライト対象のデータ要素とECCとを含むデータ(ここで、この処理フローにおいては、ライトデータという)をバッファ244へ格納する(ステップ1301)。
 次いで、FM/SW制御部243が、ライト先のFMチップ32にバス25が接続されるように、SW31の切替信号を切替信号線26により送信する。これにより、SW31が接続を切り替えて、ライト先のFMチップ32がバス25に接続されるようにする(ステップ1302)。
 FM/SW制御部243が、ライト先のFMチップ32に繋がるCE信号線を介してCE信号を駆動して、ライト先のFMチップ32をアクティブにする(ステップ1303)。次いで、FM I/Fサブ制御部246は、バス25を介してプログラムコマンド(ライトコマンド)を発行する(ステップ1304)。これにより、プログラムコマンドは、バス25、SW31、バス28を介してライト先のFMチップ32に送信される。次いで、DMA247が、バッファ244からライトデータを読み出して、そのデータをFMチップ32に転送する(ステップ1305)。
 次いで、FMバスプロトコル制御部246は、FMチップ32からコマンドに対するステータスを取得し、ステータスを制御レジスタ242に格納する。CPU21は、制御レジスタ242を参照して、ライトが正常に終了していることをチェックし(ステップ1306)、正常終了している場合には、処理を終了する。
 図13は、チップ多重ライト処理のフローチャートの一例である。
 チップ多重ライト処理とは、複数のFMチップに複数のデータ要素を並行して書き込む処理である。ここで、チップ多重ライト処理の前においては、FMコントローラ20のCPU21が、ライト先の複数のFMチップ32を特定し、それらのFMチップ32にライトするための制御用の設定を、FM I/F制御部24の制御レジスタ242に対して行う。本実施形態では、同一のCE信号線27に接続されている複数のFMチップ32がライト先として特定される。また、ライト対象のデータ要素は、CPU21により、DRAM11に格納されている。
 CPU21は、FMチップ32(ここでは、例えば、SW#1に接続されているFMチップ#1-1とする)にライトするライト対象のデータ要素をDRAM11から読み出して、そのデータ要素をECC回路241に渡す。ECC回路241は、そのライト対象のデータ要素に対応するECCを生成し、ライト対象のデータ要素とECCとを含むデータ(この処理フローにおいては、ライトデータという)をバッファ#1へ格納する(ステップ1401)。次いで、FMチップ#1-1と同じCE信号線27-1に接続されているFMチップ32(例えば、SW#2に接続されているFMチップ#2-1)にライトするライト対象のデータ要素をDRAM11から読み出して、そのデータ要素をECC回路241に渡す。ECC回路241は、そのライト対象のデータ要素に対応するECCを生成し、そのライト対象のデータ要素とECCとを含むデータ(ライトデータ)をバッファ#2へ格納する(ステップ1402)。
 次いで、FM/SW制御部243が、ライト先の複数のFMチップ#1-1及び#2-1にバス25-1及び25-2が接続されるように、SW#1及び#2の切替信号を切替信号線26により送信する。これにより、SW#1及び#2が、接続を切り替えて、ライト先の複数のFMチップ#1-1及び#2-1が、バス25-1及び25-2に接続されるようにする(ステップ1403)。
 FM/SW制御部243が、ライト先のFMチップ#1-1及び#2-1に繋がるCE信号線27-1を介してCE信号を駆動して、そのCE信号線27-1に接続されている複数のFMチップ32をアクティブにする(ステップ1404)。
 次いで、FM I/Fサブ制御部#1は、バス25-1を介してプログラムコマンド(ライトコマンド)を発行する(ステップ1405)。これにより、プログラムコマンドは、バス25-1、SW#1、バス28を介して、ライト先のFMチップ#1-1に送信される。また、これと並行して、FM I/Fサブ制御部#2は、バス25-2を介してプログラムコマンド(ライトコマンド)を発行する(ステップ1406)。これにより、プログラムコマンドは、バス25-2、SW#2、バス28を介して、ライト先のFMチップ#2-1に送信される。
 次いで、DMA#1が、バッファ#1からライトデータを読み出し、そのデータをFMチップ#1-1に転送するとともに、ほぼ同時に(並行して)、DMA#2が、バッファ#2からライトデータを読み出し、そのデータをFMチップ#2-1に転送する(ステップ1307)。
 次いで、FMバスプロトコル制御部246は、FMチップ#1-1及び#2-1からコマンドに対するステータスを取得し、ステータスを制御レジスタ242に格納する。CPU21は、制御レジスタ242を参照して、ライトが正常に終了していることをチェックし(ステップ1308)、正常終了している場合には、処理を終了する。
 この多重ライト処理によると、複数のFMチップ32に対して、ほぼ同時に(並行して)、複数のデータ要素をライトすることができるので、ライト処理に要する時間を短縮することができる。
 なお、チップライト処理及びチップ多重ライト処理のいずれにおいても、消去回数を均等にするべくウェアレベリング処理を行うことができる。ウェアレベリング処理は、それらのライト処理とは非同期に行われても良い。
 ライト処理と非同期に行われるウェアレベリング処理によれば、例えば、任意のタイミングで、FMコントローラ20(例えばCPU21)が、消去回数が最も多いブロックを選択し、その選択したブロック内の有効ページから、消去回数が最も少ないブロックに有効データを移動する。移動元のブロックと移動先のブロックは、同一のFMチップ32にあっても良いし、異なるFMチップ32にあっても良い。後者の場合、異なるFMチップ32は、CE信号線27が共通であることが望ましい。
 ライト処理において行われるウェアレベリング処理によれば、FMコントローラ20は、ライト先のFMチップ32から消去回数の最も少ないブロックを書き込み先として選択し、そのブロックにデータ要素を書き込む。なお、この処理では、例えば、図13或いは図14において、FMコントローラ20は、CE信号線27を選択する段階で、最も消去回数合計が少ないCE信号線27を選択し、そのCE信号線27に接続されているFMチップ32から、そのFMチップ32において最も消去回数が少ないブロックが選択して良い。FMコントローラ20の記憶領域(例えばDRAM11)は、図19に例示する消去管理情報1901を記憶して良い。この情報1901は、CE信号線27毎及びブロック毎に、ブロックの消去回数を表す。CE信号線27の消去回数合計とは、そのCE信号線27を共通にする全てのFMチップ32の全てのブロックの消去回数の合計である。ブロックに対して消去処理を行った場合、FMコントローラ20は、そのブロックに対応する消去回数と、そのブロックを有するFMチップ32が接続されているCE信号線27に対応する消去回数合計とを更新して良い。この情報1901から、各ブロックの消去回数と、各CE信号線27についての消去回数合計とを特定することができる。
 次に、リクラメーション処理、すなわち、消去処理可能なブロックを生成する処理を説明する。
 図18は、リクラメーション処理のフローチャートの一例である。
 リクラメーション処理は、例えば、FMチップ32における利用可能な容量の枯渇をFMコントローラ20が検出したことを契機として、FMコントローラ20により実行される。容量の枯渇とは、空きブロックの数が所定割合(所定数)未満になったことを意味する。容量枯渇の検出は、任意の単位でよく、或るDIMM上の複数のFM毎でもよい。リクラメーション処理は、ライト処理において空きブロックが枯渇していることが検出されたときに開始されても良いし、ライト処理とは非同期に行われても良い。
 FMコントローラ20は、空きブロックが枯渇しているFMチップ(以下、図18において「空き枯渇チップ」と言う)32から、移動元のブロックを選択する(ステップ1701)。ここで、移動元のブロックは、空き枯渇チップ32(或いは、空き枯渇チップ32において末端ページまでデータが書き込まれているブロック(消去候補ブロック))のうち、有効ページが最も少ないブロックであることが望ましい。なぜなら、移動させる有効データの総量が最も少なくて済み、以って、リクラメーション処理にかかる時間及び負荷を抑えることが期待できるからである。なお、移動元ブロックは、空き枯渇チップ32以外のFMチップ32から選択されても良い。
 CPU21は、ステップ1701で選択した移動元ブロックを有するFMチップ32とデータ通信可能なFM IF制御部24(又は、バス25或いはSW31)と同一の制御部24(又は、バス25或いはSW31)に接続されている複数のFMチップ32に空きブロックが所定数以上あるか否かを判断する(ステップ1702)。ここで言う「所定数」は、全てのFMチップ32で一律であっても良いし異なっていても良い。
 ステップ1702の判断の結果が肯定的であれば、CPU21は、同一の制御部24(又は、バス25或いはSW31)に接続されている複数のFMチップ32の空きブロックを移動先ブロックとして選択する(ステップ1703)。同一のバス25或いはSW31に接続されている複数のFMチップ32の空きブロックが優先的に移動先ブロックとして選択されて良い。もし、同一のバス25或いはSW31に接続されている複数のFMチップ32に所定数の空きブロックが無ければ、同一の制御部24における異なるバス25或いはSW31に接続されている複数のFMチップ32の空きブロックが移動先ブロックとして選択されても良い。その方が、ストライプ(アドレスの連続した2以上のデータ要素が同一CE信号線27の異なるFMチップ32(バス25が異なるFMチップ32)に配置されること)をより維持し易いと考えられる。例えば、図5において、リクラメーション処理により、FM#1-1に格納されたデータ要素#0がFM#3-1に格納されると、データ要素#0とデータ要素#2が同じFMに存在することになる。この状態で、データ要素のリード/ライトが発生すると、バス25-3及びFM#3-1のビジー時間が重なるためリード/ライトに時間がかかる。リクラメーションの範囲を制限することで、データ要素のストライプ状態が維持され、以降のリード/ライト処理においても効率の良いデータ転送ができる。
 ステップ1703の判断の結果が否定的であれば、CPU21は、異なる制御部24(又は、バス25或いはSW31)に接続されている複数のFMチップ32の空きブロックを移動先ブロックとして選択する(ステップ1704)。
 ステップ1703又は1704の後、すなわち、移動元ブロックと移動先ブロックとが決定した後、CPU21は、移動元ブロック内の有効データを移動先ブロックに移動する(ステップ1705)。すなわち、CPU21は、移動元ブロックから有効データを読み出してDRAM11に書き込み、その有効データをDRAM11から移動先ブロックに書き込む。この際、ECC回路241が誤り訂正処理を行う。なお、CPU21は、移動先ブロックを決定する前に移動元ブロックから有効データを読み出しDRAM11に書き込んでも良い。また、DIMM30がECC回路を備える場合、DIMM30において誤り訂正処理が可能であるため、移動元ブロックのデータをDRAM11に格納することなく移動先ブロックにデータを転送することができる。同様に、FM32がECC回路を備える場合、FM32において誤り訂正処理が可能であるため、移動元ブロックのデータをDRAM11に格納することなく移動先ブロックにデータを転送することができる。このように、DIMM30またはFM32にECC回路がある場合は、FM I/F制御部24がデータ転送を実行するため、CPU21の処理負荷を低減することができる。
 移動元ブロックから読み出された有効データが移動先ブロックに書き込まれると、移動元ブロック内のデータは全て無効データとなる。CPU21は、移動元ブロックに対して消去処理を行う(ステップ1706)。これにより、移動元ブロックが空きブロックとして管理され、再びライト先として選択され得る状態となる。なお、その消去処理の際、図19に例示した情報1900が更新されて良い。すなわち、移動元ブロックに対応する消去回数と、移動元ブロックを有するFMチップ32が接続されているCE信号線27に対応する消去回数合計とが更新されて良い。
 以上が、本実施形態に係るリクラメーション処理である。
 なお、ステップ1703又は1704では、選択されたFMチップ32のうち消去回数が最も少ない空きブロックが移動先ブロックとして選択されることが望ましい。これにより、精度の高い消去回数の平準化が可能となる。また、複数のブロックを消去回数に応じて複数のグループに分けて、消去回数が少ないグループからブロックを選択することとしてもよい。この場合、ブロックを検索する時間が短縮される。
 また、ステップ1701で、複数のブロックが移動元ブロックとして選択されても良いし、ステップ1703及び1704で、複数の空きブロックが移動先ブロックとして選択されても良い。この場合、複数の移動元ブロックは、CE信号線27を共通にする複数のFMチップ32から選択されることが望ましいが、異なるCE信号線27に接続されている複数のFMチップ32から選択されても良い。なぜなら、チップリード処理はチップライト処理と比べてチップビジーとなる時間が短いから、つまり、性能への影響が小さいからである。一方、複数の移動先ブロックは、CE信号線27を共通にする複数のFMチップ32から選択されることが望ましい。そして、有効データの移動(ステップ1705)の際には、CE信号線27を共通にする複数のFMチップ32に複数の有効データが並行して書き込まれることが望ましい。また、ステップ1706において消去処理を実行する際、同一CE27上に消去可能なブロックが存在する場合、それらも同時に(並行して)消去することができる。一般に消去処理は時間がかかるため、複数ブロックに対してまとめて消去処理を実行するのが効率的である。
 次に、本実施形態に係るリフレッシュ処理を説明する。
 リフレッシュ処理は、有効ページを有するブロックに対して定期的(例えば、そのブロックの前回のリフレッシュ処理から30日経過した場合)に行われても良いし、リード時のECCエラーが所定bit数以上のブロックがある場合にそのブロックを対象に行われても良い。リフレッシュ処理は、FMコントローラ20により実行される。
 リフレッシュ処理では、FMコントローラ20は、リフレッシュ処理の対象のブロックを移動元のブロックとする。その後、(1)移動先のブロックの決定、(2)移動元ブロックから移動先ブロックへの有効データの移動、及び(3)移動元ブロックに対する消去処理が行われる。これら(1)~(3)については、上述したリクラメーション処理と同様である。
 以上、一実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
 例えば、上記実施形態では、不揮発半導体記憶媒体の一例として、NAND型のフラッシュメモリが採用されているが、不揮発半導体記憶媒体は、これに限られない。例えば、記憶媒体は、相変換メモリでもよい。
 また、上記実施形態では、複数のFMチップ32を搭載するメモリモジュールは、DIMM30であるが、DIMM以外のメモリモジュールが採用されもよい。
 また、上記実施形態では、同一のDIMM30における複数のFMチップ32が同一のCE信号線27で接続されるが、異なるDIMM30の複数のFMチップ32が同一のCE信号線27で接続されても良い。
 また、上記実施形態では、フラッシュメモリデバイス400では、並行して複数のFMチップ32に複数のデータ要素を書き込むことができる。すなわち、時間当たりに書き込めるデータの量が大きい。このため、RAIDコントローラ301は、フラッシュメモリデバイス400内のデータ量(又は、フラッシュメモリデバイス400間におけるデータ転送における転送単位のデータ量)を、フラッシュメモリデバイス400以外の種類の記憶デバイス(例えば、SSDデバイス500、HDDデバイス(SAS)600、又はHDDデバイス(SATA)700)が関わるデータ転送における転送単位のデータ量よりも大きくするように制御してもよい。
 また、例えば、フラッシュメモリPKG10の構成は、図14に示す構成でも良い。図14に示すフラッシュメモリPKGは、CE信号線27についてもSW33で切り替えることができるようになっている。FM/SW248には、CE信号線27が接続されている。CE信号線27は、バス25とともに、SW#1に接続されている。CE信号線27は、SW#2にも接続されている。SW33(#1、#2)は、CE信号線及びデータバスを含むバス29により複数のFMチップ32に接続されている。SW33は、切替信号線26により供給される切替信号に基づいて、複数のバス29のいずれか一つを選択的にバス25及びCE信号線27に接続する。この構成によれば、FM I/F制御部24において出力するCE信号線27の本数を低減することができ、FM I/F制御部24のチップサイズを小型化することができる。
1…ストレージシステム、10…フラッシュメモリPKG、400…フラッシュメモリデバイス

Claims (15)

  1.  複数の不揮発半導体記憶媒体と、
     前記複数の不揮発半導体記憶媒体に接続された1以上のインタフェースデバイスである媒体インタフェース群を有する制御回路と、
     複数のスイッチと
    を有し、
     各不揮発半導体記憶媒体は、複数の不揮発チップを有し、
     前記媒体インタフェース群と前記複数のスイッチとがデータバスを介して接続され、
     各スイッチと、各2以上の不揮発チップとが、データバスを介して接続され、
     前記スイッチは、前記媒体インタフェース群に接続されているデータバスとそのスイッチに接続されている複数の不揮発チップのいずれかに接続されているデータバスとの接続を切り替えるよう構成されており、
     前記制御回路は、ライト対象のデータを複数のデータ要素に分割し、前記複数のスイッチを制御することにより接続を切り替えて、前記複数のデータ要素を複数の不揮発チップに分散して送信し、
    不揮発半導体記憶システム。
  2.  請求項1記載の不揮発半導体記憶システムであって、
     前記媒体インタフェース群に、複数のチップイネーブル信号線が接続され、
     各チップイネーブル信号線が、2以上の不揮発チップに共通となっている、
    不揮発半導体記憶システム。
  3.  請求項2記載の不揮発半導体記憶システムであって、
     前記チップイネーブル信号線を共通とする前記複数の不揮発チップは、異なるスイッチに接続された2以上の不揮発チップである、
    不揮発半導体記憶システム。
  4.  請求項3記載の不揮発半導体記憶システムであって、
     前記複数のチップイネーブル信号は、第1及び第2のチップイネーブル信号線を含み、
     (A)前記制御回路は、前記第1のチップイネーブル信号線を介してチップイネーブル信号を送信し、且つ、前記異なるスイッチのそれぞれを、前記第1のチップイネーブル信号線を介してチップイネーブル信号を受ける不揮発チップが接続先となるよう制御し、
     (B)前記制御回路は、前記複数のデータ要素のうちの連続する2以上のデータ要素を、前記第1のチップイネーブル信号線を共通とする2以上の不揮発チップに並行して送信し、
     (C)前記制御回路は、前記(B)でデータ要素を受けた不揮発チップに接続されているスイッチの接続先を、前記第2のチップイネーブル信号線を介してチップイネーブル信号を受けることになる不揮発チップに切り替え、
     (D)前記制御回路は、前記第2のチップイネーブル信号線を介してチップイネーブル信号を送信し、
     (E)前記制御回路は、前記複数のデータ要素のうちの残りのうちの連続する2以上のデータ要素を、前記第2のチップイネーブル信号線を共通とする2以上の不揮発チップに並行して送信する、
    不揮発半導体記憶システム。
  5.  請求項4記載の不揮発半導体記憶システムであって、
     前記不揮発半導体記憶媒体が、NAND型のフラッシュメモリである、
    不揮発半導体記憶システム。
  6.  請求項5記載の不揮発半導体記憶システムであって、
     前記制御回路が、チップイネーブル信号線毎に、ブロックに対して行われた消去処理の回数の合計を管理し、
     複数のデータ要素の転送先として選択される不揮発チップは、消去処理が最も少ないチップイネーブル信号を共通にする複数の不揮発チップであり、
     不揮発チップにおいてデータ要素の書込み先となるブロックは、消去回数が最も少ないブロックである、
    不揮発半導体記憶システム。
  7.  請求項6記載の不揮発半導体記憶システムであって、
     N個の不揮発半導体記憶媒体(Nは1以上の整数)毎に、前記媒体インタフェースがあり、
     各不揮発チップは、複数のブロックを有しており、
     前記制御回路は、リクラメーション処理を行うように構成されており、
     前記リクラメーション処理において、前記制御回路は、
    (r1)複数のブロックから移動元のブロックを選択し、
    (r2)前記複数のブロックから移動先のブロックを決定し、
    (r3)前記移動先ブロックに、前記移動元ブロックのページ内の有効データを移動し、
    (r4)前記移動元ブロックからデータを消去する消去処理を行い、
     前記(r2)において、前記移動先ブロックは、前記移動元ブロックを有する不揮発チップとデータ通信可能な媒体インタフェースとデータ通信可能な不揮発チップから決定される、
    不揮発半導体記憶システム。
  8.  請求項2記載の不揮発半導体記憶システムであって、
     チップイネーブルスイッチを更に有し、
     前記チップイネーブルスイッチに、前記媒体インタフェース群に接続されたチップイネーブル信号線と、前記媒体インタフェースの配下にある2以上の不揮発チップに接続された複数のチップイネーブル信号線とが接続されており、
     前記チップイネーブルスイッチは、前記媒体インタフェース群に接続されている前記チップイネーブル信号線と、前記2以上の不揮発チップのいずれかに接続されているチップイネーブル信号線との接続を切り替えるスイッチである、
    不揮発半導体記憶システム。
  9.  請求項1記載の不揮発半導体記憶システムであって、
     各不揮発チップは、複数の記憶領域である複数のチップ領域で構成されており、
     N個の不揮発半導体記憶媒体(Nは1以上の整数)毎に、前記媒体インタフェースがあり、
     前記制御回路は、リクラメーション処理を行うように構成されており、
     前記リクラメーション処理において、前記制御回路は、
    (r1)複数のチップ領域から移動元のチップ領域を選択し、
    (r2)前記複数のチップ領域から移動先のチップ領域を決定し、
    (r3)前記移動先チップ領域に、前記移動元チップ領域の有効なデータを移動し、
    (r4)前記移動元チップ領域からデータを消去する消去処理を行い、
     前記(r2)において、前記移動先チップ領域は、前記移動元チップ領域を有する不揮発チップとデータ通信可能な媒体インタフェースとデータ通信可能な不揮発チップから決定される、
    不揮発半導体記憶システム。
  10.  請求項9記載の不揮発半導体記憶システムであって、
     各媒体インタフェースに、2以上のデータバスを介して2以上の前記スイッチが接続され、
     前記移動元ブロックと前記移動先ブロックが、同一のデータバスを介してデータ通信可能な1以上の不揮発チップに存在する、
    不揮発半導体記憶システム。
  11.  請求項9記載の不揮発半導体記憶システムであって、
     前記(r2)で、前記制御回路は、前記移動元チップ領域を有する不揮発チップとデータ通信するためのデータバスと同じデータバスを介してデータ通信可能な1以上の不揮発チップに空きのチップ領域が所定数以上あるか否か判断し、その判断の結果が肯定的であれば、その1以上の不揮発チップからいずれかの空きのチップ領域を移動先チップ領域として決定し、その判断の結果が否定的であれば、前記移動元チップ領域を有する不揮発チップとデータ通信可能な媒体インタフェースと異なる媒体インタフェースとデータ通信可能な2以上の不揮発チップから空きのチップ領域を移動先チップ領域として決定する、
    不揮発半導体記憶システム。
  12.  請求項9記載の不揮発半導体記憶システムであって、
     前記媒体インタフェース群に、複数のチップイネーブル信号線が接続され、
     各チップイネーブル信号線が、2以上の不揮発チップに共通となっており、
     前記(r1)で、前記移行元ブロックとして、同一のチップイネーブル信号線に接続された複数の不揮発チップから複数のチップ領域が選択され、
     前記(r2)で、複数の移行元ブロックについて、同一のチップイネーブル信号線に接続された複数のチップ領域が移行先チップ領域として選択され、
     前記(r3)で、チップイネーブル信号を共通とする複数の移行元チップ領域から、チップイネーブル信号を共通とする複数の移行先チップ領域に、有効データが移動される、
    不揮発半導体記憶システム。
  13.  請求項1記載の不揮発半導体記憶システムであって、
     前記媒体インタフェース群に、複数のチップイネーブル信号線が接続され、
     各チップイネーブル信号線が、2以上の不揮発チップに共通となっており、
     前記制御回路が、チップイネーブル信号線毎に、チップ領域に対して行われた消去処理の回数の合計を管理し、
     複数のデータ要素の転送先として選択される不揮発チップは、消去処理が最も少ないチップイネーブル信号を共通にする複数の不揮発チップであり、
     不揮発チップにおいてデータ要素の書込み先となるチップ領域は、消去回数が最も少ないチップ領域である、
    不揮発半導体記憶システム。
  14.  請求項1記載の不揮発半導体記憶システムであって、
     1以上の第1種の不揮発記憶装置と、
     1以上の第2種の不揮発記憶装置と、
     前記第1種及び第2種の不揮発記憶装置とホスト装置とに接続され、前記ホスト装置からライトコマンドを受信し、そのライトコマンドに従うライト対象のデータを、前記第1種の不揮発記憶装置に送信する上位のコントローラと
    を有し、
     前記第1種の不揮発記憶装置が、前記複数の不揮発半導体記憶媒体と、前記制御回路と、前記複数のスイッチとを有し、
     前記第2種の不揮発記憶装置は、前記第1種の不揮発記憶装置と種類の異なる記憶装置であり、
     前記上位のコントローラは、前記第1種の不揮発記憶装置内、又は、複数の前記第1種の不揮発記憶装置間でのデータ転送における転送単位のデータ量を、前記第2種の不揮発記憶装置が関わるデータ転送の転送単位のデータ量よりも大きくするように制御する、
    不揮発半導体記憶システム。
  15.  請求項1記載の不揮発半導体記憶システムであって、
     複数の媒体パッケージを有し、
     各媒体パッケージが、前記複数の不揮発半導体記憶媒体と、前記制御回路と、前記複数のスイッチとを有し、
     不揮発半導体記憶媒体毎に、媒体回路が存在し、前記媒体回路が、2以上の不揮発チップと1以上のスイッチとを有し、
     前記制御回路が、前記媒体パッケージの中央に配置され、
     前記制御回路の第1の側に、媒体回路が存在し、
     前記制御回路の第2の側に、別の媒体回路が存在し、
     前記第2の側は、前記第1の側の反対側である、
    不揮発半導体記憶システム。
PCT/JP2011/072653 2011-09-30 2011-09-30 不揮発半導体記憶システム WO2013046463A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2013535800A JP5635200B2 (ja) 2011-09-30 2011-09-30 不揮発半導体記憶システム
EP20110873310 EP2704015A4 (en) 2011-09-30 2011-09-30 NON-VOLATILE SEMICONDUCTOR MEMORY SYSTEM
CN201180071483.9A CN103597461B (zh) 2011-09-30 2011-09-30 闪存组件
PCT/JP2011/072653 WO2013046463A1 (ja) 2011-09-30 2011-09-30 不揮発半導体記憶システム
US13/379,223 US8949511B2 (en) 2011-09-30 2011-09-30 Nonvolatile semiconductor storage system
CN201610165063.1A CN105867840B (zh) 2011-09-30 2011-09-30 闪存组件及非易失性半导体存储器组件
US14/573,269 US9335929B2 (en) 2011-09-30 2014-12-17 Nonvolatile semiconductor storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/072653 WO2013046463A1 (ja) 2011-09-30 2011-09-30 不揮発半導体記憶システム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/379,223 A-371-Of-International US8949511B2 (en) 2011-09-30 2011-09-30 Nonvolatile semiconductor storage system
US14/573,269 Continuation US9335929B2 (en) 2011-09-30 2014-12-17 Nonvolatile semiconductor storage system

Publications (1)

Publication Number Publication Date
WO2013046463A1 true WO2013046463A1 (ja) 2013-04-04

Family

ID=47993759

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/072653 WO2013046463A1 (ja) 2011-09-30 2011-09-30 不揮発半導体記憶システム

Country Status (5)

Country Link
US (2) US8949511B2 (ja)
EP (1) EP2704015A4 (ja)
JP (1) JP5635200B2 (ja)
CN (2) CN103597461B (ja)
WO (1) WO2013046463A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211875A (ja) * 2013-04-19 2014-11-13 創惟科技股▲ふん▼有限公司 データアクセスシステム、データアクセス装置及びデータアクセスコントローラ
WO2014196000A1 (ja) * 2013-06-03 2014-12-11 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
WO2016030992A1 (ja) * 2014-08-27 2016-03-03 株式会社日立製作所 記憶デバイスおよびストレージ装置
WO2016072007A1 (ja) * 2014-11-07 2016-05-12 株式会社日立製作所 半導体メモリデバイス、ストレージシステム及び計算機

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015086846A2 (fr) * 2013-12-12 2015-06-18 Commissariat A L'energie Atomique Et Aux Energies Alternatives Systeme de gestion de l'usure d'une memoire electronique
US10521387B2 (en) 2014-02-07 2019-12-31 Toshiba Memory Corporation NAND switch
CN104679682B (zh) * 2015-03-18 2017-12-01 四川特伦特科技股份有限公司 基于高速dsp的通信板
CN109348730B (zh) * 2015-09-18 2022-05-24 株式会社日立制作所 存储器控制器、存储器控制方法以及半导体存储装置
JP6517685B2 (ja) * 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6847797B2 (ja) * 2017-09-21 2021-03-24 キオクシア株式会社 半導体記憶装置
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN108610384B (zh) * 2018-05-31 2022-02-22 沈阳药科大学 基于肠道mct1载体蛋白设计的前药及其制备方法
JP6716757B2 (ja) * 2019-06-19 2020-07-01 キオクシア株式会社 メモリシステムおよび制御方法
US11513976B2 (en) * 2020-03-31 2022-11-29 Western Digital Technologies, Inc. Advanced CE encoding for bus multiplexer grid for SSD
US11392325B2 (en) * 2020-09-28 2022-07-19 Quanta Computer Inc. Method and system for parallel flash memory programming

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258874A (ja) * 2004-03-12 2005-09-22 Nec Corp Cpuとの対応を制御する主記憶システム及び主記憶装置
JP2008523528A (ja) * 2004-12-04 2008-07-03 ハイパーストーン・ゲゼルシヤフト・ミツト・ベシユレンクテル・ハフツング セクタバッファを持つメモリシステム
JP2010003161A (ja) 2008-06-20 2010-01-07 Toshiba Corp メモリシステム
JP2010049586A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd フラッシュメモリ搭載ストレージ装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127564B2 (en) * 2003-02-28 2006-10-24 Standard Microsystems Corporation Double buffered flash programming
KR100703357B1 (ko) * 2003-08-16 2007-04-03 삼성전자주식회사 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법
US8176238B2 (en) * 2003-12-02 2012-05-08 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
DE102006035612B4 (de) * 2006-07-31 2011-05-05 Qimonda Ag Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
US7676625B2 (en) * 2006-08-23 2010-03-09 Sun Microsystems, Inc. Cross-coupled peripheral component interconnect express switch
CN100501702C (zh) * 2007-01-17 2009-06-17 晶天电子(深圳)有限公司 一种闪存卡及其缓存、恢复数据的方法
US8689508B2 (en) * 2008-05-28 2014-04-08 Steeltec Supply, Inc. Extra strength backing stud having notched flanges
WO2010137178A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
US8447917B2 (en) * 2009-06-25 2013-05-21 Mediatek Inc. Flash memory devices and methods for controlling a flash memory device
CN101930798B (zh) * 2009-06-25 2014-04-16 联发科技股份有限公司 闪存装置、存储器装置以及控制闪存装置的方法
US8463979B2 (en) * 2009-09-08 2013-06-11 Ocz Technology Group Inc. Non-volatile storage devices, methods of addressing, and control logic therefor
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258874A (ja) * 2004-03-12 2005-09-22 Nec Corp Cpuとの対応を制御する主記憶システム及び主記憶装置
JP2008523528A (ja) * 2004-12-04 2008-07-03 ハイパーストーン・ゲゼルシヤフト・ミツト・ベシユレンクテル・ハフツング セクタバッファを持つメモリシステム
JP2010003161A (ja) 2008-06-20 2010-01-07 Toshiba Corp メモリシステム
JP2010049586A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd フラッシュメモリ搭載ストレージ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2704015A4

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014211875A (ja) * 2013-04-19 2014-11-13 創惟科技股▲ふん▼有限公司 データアクセスシステム、データアクセス装置及びデータアクセスコントローラ
WO2014196000A1 (ja) * 2013-06-03 2014-12-11 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
WO2016030992A1 (ja) * 2014-08-27 2016-03-03 株式会社日立製作所 記憶デバイスおよびストレージ装置
US10204003B2 (en) 2014-08-27 2019-02-12 Hitachi, Ltd. Memory device and storage apparatus
WO2016072007A1 (ja) * 2014-11-07 2016-05-12 株式会社日立製作所 半導体メモリデバイス、ストレージシステム及び計算機
US10157159B2 (en) 2014-11-07 2018-12-18 Hitachi, Ltd. Semiconductor memory device, storage system, and computer

Also Published As

Publication number Publication date
US9335929B2 (en) 2016-05-10
CN103597461B (zh) 2016-04-27
JPWO2013046463A1 (ja) 2015-03-26
US8949511B2 (en) 2015-02-03
CN105867840A (zh) 2016-08-17
JP5635200B2 (ja) 2014-12-03
CN103597461A (zh) 2014-02-19
US20130086305A1 (en) 2013-04-04
EP2704015A4 (en) 2014-11-05
EP2704015A1 (en) 2014-03-05
US20150106555A1 (en) 2015-04-16
CN105867840B (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
JP5635200B2 (ja) 不揮発半導体記憶システム
JP6163532B2 (ja) メモリシステムコントローラを含む装置
JP5918359B2 (ja) メモリシステムコントローラを含む装置および関連する方法
JP5759623B2 (ja) メモリシステムコントローラを含む装置および関連する方法
CN108874303B (zh) 非易失性存储器命令冲突避免的储存系统和方法
US9092320B2 (en) Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system
US9870153B2 (en) Non-volatile memory systems utilizing storage address tables
US8738866B2 (en) Storage system and control method therefor
US9251059B2 (en) Storage system employing MRAM and redundant array of solid state disk
WO2010111071A2 (en) Solid state drive with improved read variability
US10713157B2 (en) Storage system and method for improving read performance using multiple copies of a logical-to-physical address table
JP2011070365A (ja) メモリシステム
JP5782556B2 (ja) 不揮発半導体記憶システム
US20150161038A1 (en) System and Method of Operation for High Capacity Solid-State Drive
JP5968508B2 (ja) 不揮発半導体記憶システム
US20230134639A1 (en) Storage device and operating method thereof
US11847323B1 (en) Data storage device and method for host buffer management
US11550487B2 (en) Data storage device and method for enabling endurance re-evaluation

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180071483.9

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 13379223

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11873310

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013535800

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2011873310

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE