[go: up one dir, main page]

JP2010152778A - Semiconductor storage device - Google Patents

Semiconductor storage device Download PDF

Info

Publication number
JP2010152778A
JP2010152778A JP2008331865A JP2008331865A JP2010152778A JP 2010152778 A JP2010152778 A JP 2010152778A JP 2008331865 A JP2008331865 A JP 2008331865A JP 2008331865 A JP2008331865 A JP 2008331865A JP 2010152778 A JP2010152778 A JP 2010152778A
Authority
JP
Japan
Prior art keywords
data
page
write
flash memory
cache
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
JP2008331865A
Other languages
Japanese (ja)
Inventor
Eiga Mizushima
永雅 水島
Noriyuki Iwasaki
宣之 岩▲崎▼
Hirotaka Kuroki
広隆 黒木
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 Solutions Technology Ltd
Original Assignee
Hitachi ULSI Systems Co 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 ULSI Systems Co Ltd filed Critical Hitachi ULSI Systems Co Ltd
Priority to JP2008331865A priority Critical patent/JP2010152778A/en
Publication of JP2010152778A publication Critical patent/JP2010152778A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To attain improvement in writing speed and a longer life in a multivalue flash memory. <P>SOLUTION: In the semiconductor storage device, a nonvolatile memory includes a plurality of blocks, each of the blocks includes a plurality of pages, and each of the pages includes a plurality of cells. The page is writable in a first mode for recording a plurality of bits in one cell, and the page is also writable in a second mode for recording bits smaller in number of the plurality of bits in one sell in a time shorter than the time required for writing in the first mode. A controller writes data to a first page by use of the second mode in response to a write request of data from the outside of the semiconductor storage device, and writes a part of data in the first page to the second page by use of the first mode. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、半導体記憶装置に関し、特に不揮発性メモリとして多値フラッシュメモリを用い、ライトするユーザデータのキャッシュ方法に関する。   The present invention relates to a semiconductor memory device, and more particularly to a method for caching user data to be written using a multi-value flash memory as a nonvolatile memory.

特許文献1には、1つのメモリセルに1ビットを記録可能な2値フラッシュメモリ領域と1つのメモリセルに複数ビットを記録可能な多値フラッシュメモリ領域とを持つ不揮発性メモリを搭載し、多値フラッシュメモリ領域に格納されたユーザデータに対するアドレスマッピングデータを2値フラッシュメモリ領域内に格納し、書き込み演算性能を向上させるという半導体記憶装置が記載されている。   Patent Document 1 includes a nonvolatile memory having a binary flash memory area capable of recording 1 bit in one memory cell and a multi-value flash memory area capable of recording a plurality of bits in one memory cell. A semiconductor memory device is described in which address mapping data for user data stored in the value flash memory area is stored in the binary flash memory area to improve the write operation performance.

特開2008−84316号公報JP 2008-84316 A

特許文献1では、格納データの種類に応じて異なる記録方式を使い分けるマッピング管理方法とそれを搭載した記憶装置を開示している。しかしながら、格納データをキャッシュとしてライトするか否かに応じて異なる記録方式を使い分けるキャッシュ管理方法を搭載した記憶装置は提案されていない。 多値フラッシュメモリは、2値フラッシュメモリと比較してビット単価が安いという長所があるが、書き込み時間が長く、消去可能回数も少ないという短所を持つ。ビットコスト削減を優先して多値フラッシュメモリを用いて構成された半導体記憶装置を設計する場合において、ホストライト性能と書き換え寿命をできる限り向上することが課題である。   Patent Document 1 discloses a mapping management method that uses different recording methods depending on the type of stored data, and a storage device equipped with the mapping management method. However, there has not been proposed a storage device equipped with a cache management method that uses different recording methods depending on whether or not the stored data is written as a cache. The multi-level flash memory has the advantage that the bit unit price is lower than that of the binary flash memory, but has the disadvantage that the write time is long and the number of erasable times is small. In designing a semiconductor memory device configured using a multi-level flash memory with priority on bit cost reduction, it is a problem to improve the host write performance and the rewrite life as much as possible.

本発明の半導体記憶装置は、不揮発性メモリと、不揮発性メモリを制御するコントローラとを搭載し、不揮発性メモリは、複数のブロックで構成され、ブロックはそれぞれ複数のページで構成され、ページはそれぞれ複数のセルで構成され、ページは、1つのセルに複数ビットを記録する第1のモードでライト可能であり、ページはまた、1つのセルに前記複数ビットよりも少数のビットを、第1のモードでのライトに要する時間よりも短い時間で記録する第2のモードでライト可能である。コントローラは、半導体記憶装置の外部からのデータのライト要求に応答して、第2のモードを用いてデータを第1のページに書いたのち、第1のモードを用いて第1のページ内のデータの一部を第2のページに書くことを特徴とする。   A semiconductor memory device according to the present invention includes a nonvolatile memory and a controller that controls the nonvolatile memory. The nonvolatile memory includes a plurality of blocks, each of which includes a plurality of pages, and each page includes The page is writable in a first mode that records multiple bits in one cell, and the page can also write fewer bits than the multiple bits in the first cell Writing is possible in the second mode in which recording is performed in a time shorter than the time required for writing in the mode. In response to a data write request from the outside of the semiconductor memory device, the controller writes data on the first page using the second mode, and then uses the first mode to write the data in the first page. A part of the data is written on the second page.

本発明によれば、半導体記憶装置における書き込み速度の向上および長寿命化を図ることが出来る。   According to the present invention, it is possible to improve the writing speed and extend the life of a semiconductor memory device.

以下、本発明の第1の実施形態について説明する。   Hereinafter, a first embodiment of the present invention will be described.

図1には、この発明に係る記憶装置SSD(Solid State Drive)の一実施例が示されている。このSSD1000は、多値(4値)不揮発性メモリ(フラッシュメモリ)を1つのパッケージの中に多数個搭載し、HDD(ハードディスクドライブ)互換記憶装置として、複数ページ分の記憶容量を持つようなファイルストレージを構成する。   FIG. 1 shows an embodiment of a storage device SSD (Solid State Drive) according to the present invention. The SSD 1000 has a large number of multi-value (four-value) nonvolatile memories (flash memories) mounted in one package, and a file having a storage capacity for a plurality of pages as an HDD (hard disk drive) compatible storage device. Configure storage.

このSSD1000は、例えば2.5インチのHDD装置と同様な外形サイズ(70.0×100.0×9.5mm)又は3.5インチのHDD装置と同様な外形サイズ(101.6×146.0×25.4mm)のパッケージに搭載され、外部のホスト1500とのインターフェイスに接続されるコネクタピンも上記2.5インチのHDD装置又は3.5インチのHDD装置と同様なものが用いられる。これにより、SSD1000はHDD互換性記憶装置とされる。   The SSD 1000 has, for example, the same outer size (70.0 × 100.0 × 9.5 mm) as a 2.5-inch HDD device or the same outer size (101.6 × 146.146) as a 3.5-inch HDD device. A connector pin mounted in a package of 0 × 25.4 mm and connected to the interface with the external host 1500 is the same as the 2.5 inch HDD device or the 3.5 inch HDD device. As a result, the SSD 1000 is an HDD compatible storage device.

多値(4値)フラッシュメモリは、1つのメモリセルに最大2ビットの記憶が可能とされ、基本的には、2ビットの書き込み情報に応じて4種類のしきい値電圧の分布のうちの1つに対応したしきい値電圧を保持するように構成されたものである。このような複数ビット記憶可能なメモリセルを一般にMLC(Multi Level Cell)と呼ぶ。このSSD1000では、22MHzのクロックでデータを入出力するフラッシュメモリチップが4個並列形態にされた構成を最小単位として、例えば1100〜1107のように2単位(8チップ)が搭載される。   A multi-level (4-level) flash memory can store a maximum of 2 bits in one memory cell. Basically, a multi-level (4-level) flash memory is one of four types of threshold voltage distributions according to 2-bit write information. The threshold voltage corresponding to one is held. Such a memory cell capable of storing a plurality of bits is generally called an MLC (Multi Level Cell). In this SSD 1000, 2 units (8 chips) such as 1100 to 1107 are mounted as a minimum unit with a configuration in which four flash memory chips that input and output data with a 22 MHz clock are arranged in parallel.

4値フラッシュメモリは、1つのメモリセルに2ビットの記憶が可能とされるが、1つのメモリセルに記憶される2ビットは、異なるページのデータとして割り付けられる。例えば、NANDフラッシュメモリでは、4キロバイト等のページ単位毎にデータの書き込みと読み出しが行われるが、2ビットを記憶させる場合、1つのメモリセルに2つのロウアドレス(ページアドレス)の各1ビットに対応するデータが多重に記憶される。そのようなページペアはそれぞれ、下位ページ及び上位ページというように2つに分けられる。製品によっては、Aページ、Bページというように呼ぶ場合もある。   The quaternary flash memory can store 2 bits in one memory cell, but 2 bits stored in one memory cell are allocated as data of different pages. For example, in a NAND flash memory, data is written and read out for each page unit such as 4 kilobytes. However, when storing 2 bits, 1 bit of each of two row addresses (page addresses) is stored in one memory cell. Corresponding data is stored in multiple. Each such page pair is divided into two, such as a lower page and an upper page. Depending on the product, it may be called A page or B page.

このSSD1000には、4値フラッシュメモリに対して、下位ページのみでフラッシュメモリをアクセスする手段も設けられる。下位ページのみでフラッシュメモリをアクセスすると2値のメモリセル(一般にSLC(Single Level Cell)と呼ぶ)として使用することができる。メモリセルを2値で書き込み動作させた場合、その動作速度は4値での記録(下位ページと上位ページを用いた記録)の場合に比べて書き込み時間を20%程度に短縮することが知られている。例えば、4値での書き込み時間が1ミリ秒であり、2値での書き込み時間が200マイクロ秒である。   The SSD 1000 is also provided with means for accessing the flash memory only with the lower page for the quaternary flash memory. When the flash memory is accessed only in the lower page, it can be used as a binary memory cell (generally called SLC (Single Level Cell)). It is known that when a memory cell is operated to write in binary, the operation speed is reduced to about 20% compared to the case of recording in four values (recording using lower page and upper page). ing. For example, the write time with 4 values is 1 millisecond, and the write time with 2 values is 200 microseconds.

このSSD1000では、半導体揮発性メモリも設けられる。半導体揮発性メモリは、例えば66MHz×16ビットで動作するSDRAM(シンクロナス・ダイナミック・ランダム・アクセス・メモリ)1252からなり、上記多値フラッシュメモリの書き換え耐性を向上させる為、ホスト1500からの書き込みデータ、およびそれらを管理などする非ホストデータを維持したり、キャッシュしたりするため等に用いられる。   In the SSD 1000, a semiconductor volatile memory is also provided. The semiconductor volatile memory is composed of, for example, an SDRAM (Synchronous Dynamic Random Access Memory) 1252 that operates at 66 MHz × 16 bits. In order to improve the rewrite endurance of the multi-level flash memory, write data from the host 1500 is written. , And non-host data that manages them, and is used for caching.

図1の点線で囲まれた部分1020はSSD専用コントローラとして1つの半導体集積回路装置(システムLSI)により構成される。つまり、SSD1000は、1つのコントローラチップ1020と、1つのSDRAMチップ1252、及び複数の多値フラッシュメモリチップ1100〜1107及びスイッチSW1040とコンデンサCP1030から構成される。   A portion 1020 surrounded by a dotted line in FIG. 1 is configured by one semiconductor integrated circuit device (system LSI) as a dedicated SSD controller. That is, the SSD 1000 includes one controller chip 1020, one SDRAM chip 1252, a plurality of multi-value flash memory chips 1100 to 1107, a switch SW1040, and a capacitor CP1030.

コントローラチップ1020は、特に制限されないが、SATA(Serial AT Attachment)のようなインターフェイス1010により、外部のホスト1500とのデータの入出力を行う。コントローラチップ1020は、中央処理装置CPU1270と、論理回路(SATA制御部1200、レジスタ部1210、ECC部1220、ルーティング部1230、FLASH制御部1240、SDRAM制御部1250、SRAM(スタティック・ランダム・アクセス・メモリ)制御部1260)、電源検出部1280などにより構成される。   Although not particularly limited, the controller chip 1020 inputs and outputs data to and from the external host 1500 through an interface 1010 such as SATA (Serial AT Attachment). The controller chip 1020 includes a central processing unit CPU 1270 and logic circuits (SATA control unit 1200, register unit 1210, ECC unit 1220, routing unit 1230, FLASH control unit 1240, SDRAM control unit 1250, SRAM (static random access memory). ) Control unit 1260), power source detection unit 1280, and the like.

多値フラッシュメモリチップ1100〜1107は、半導体不揮発性メモリI/F(インターフェイス)を通してコントローラチップ1020に接続される。なお、多値フラッシュメモリチップ1100〜1107の大部分は、HDD互換記憶装置としての記憶容量に相当する量のファイルデータを格納するための領域として使用されるが、その他の一部は、ホスト1500から書き込まれたデータを一時的に不揮発にキャッシュしたりするためにも用いられる。   The multi-value flash memory chips 1100 to 1107 are connected to the controller chip 1020 through a semiconductor nonvolatile memory I / F (interface). Note that most of the multi-value flash memory chips 1100 to 1107 are used as an area for storing an amount of file data corresponding to the storage capacity of the HDD compatible storage device, but the other part is the host 1500. It is also used to temporarily cache the data written from above.

一般に多値フラッシュメモリは、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスである。データの書き換え及び消去を繰り返していくうちにメモリセルのデータ記憶特性が劣化し、リード時に正常データがリードできなくなることがある。そのために、記憶媒体に半導体不揮発性メモリを使用したSSDを構成する場合、誤り検出・訂正回路が必須となる。誤り検出・訂正回路であるECC部1220は、ハミング符号/リード・ソロモン符号/BCH符号などの符号化、復号化を行うことによって、多値フラッシュメモリチップ1100〜1107に書き込むデータに付すパリティの生成や、読みだしたデータの誤り検出・訂正を実行する。   In general, a multi-level flash memory is a device that is premised on that error bits are generated more frequently than other memory devices. As data rewrite and erase are repeated, the data storage characteristics of the memory cell may deteriorate, and normal data may not be read at the time of reading. Therefore, when an SSD using a semiconductor nonvolatile memory is configured as a storage medium, an error detection / correction circuit is essential. The ECC unit 1220, which is an error detection / correction circuit, generates parity to be attached to data to be written to the multilevel flash memory chips 1100 to 1107 by encoding / decoding such as a Hamming code / Reed-Solomon code / BCH code. And error detection / correction of the read data.

このSSD1000は、電源検出部1280と、電源遮断時の動作電圧を確保するためのコンデンサCP1030及びスイッチSW1040を更に備えている。このコンデンサCP1030は、ホスト1050からのSATAインターフェース1010を通じた電源供給において予期しない電源遮断が生じた場合でも、その蓄積電荷によってコントローラチップ1020、SATA−I/F1010、多値フラッシュメモリチップ1100〜1107及びSDRAMチップ1252に動作電圧Vddを供給して、多値フラッシュメモリチップの読み書きの中断処理を含めた正常終了状態までの動作を確保し、SDRAMチップ1252内の退避させるべきデータを多値フラッシュメモリチップ1100〜1107に退避させるに十分な時間を確保するように作用する。コンデンサCP1030は、上記のような中断処理やデータ退避が行われるような動作電圧確保のために必要な容量値を持つように構成される。   The SSD 1000 further includes a power supply detection unit 1280, a capacitor CP1030 and a switch SW1040 for securing an operating voltage when the power is shut off. The capacitor CP1030 has a controller chip 1020, a SATA-I / F 1010, a multi-value flash memory chip 1100 to 1107, and a multi-value flash memory chip 1100 to 1107 even when an unexpected power interruption occurs in power supply from the host 1050 through the SATA interface 1010. The operation voltage Vdd is supplied to the SDRAM chip 1252 to ensure the operation up to the normal end state including the read / write interruption processing of the multi-value flash memory chip, and the data to be saved in the SDRAM chip 1252 is stored in the multi-value flash memory chip. It acts to ensure a sufficient time for retreating to 1100 to 1107. Capacitor CP1030 is configured to have a capacitance value necessary for securing an operating voltage such that the above interruption processing and data saving are performed.

電源検出部1280は、マイクロコンピュータ等のホスト1500からの電源電圧を受けて、その電源投入と電源遮断を検出する。検出した電源投入又は電源遮断に応答して、スイッチSW1040の切り替え制御や、多値フラッシュメモリチップ1100〜1107とSDRAMチップ1252との間でのデータ転送動作が行われる。   The power detection unit 1280 receives a power supply voltage from a host 1500 such as a microcomputer, and detects power on and power off. In response to the detected power-on or power-off, switching control of the switch SW1040 and data transfer operation between the multi-value flash memory chips 1100 to 1107 and the SDRAM chip 1252 are performed.

スイッチSW1040は、電源投入と電源遮断を検出信号により切り替えられる。ホスト1500からの電源投入が発生した場合、コンデンサCP1030が電源電圧による充電動作を行い、その保持電圧をSSD1000の各構成部の動作電圧として供給する動作を行う。上記コンデンサCP1030の保持電圧が有効に利用できるように、コンデンサCP1030で形成された動作電圧がホスト1500側に逆流してしまうのを防止するように構成する。最も簡単な構成は、ダイオード等の一方向性素子を通してホスト1500側からの電源電圧が、SSD1000の電源電圧として上記スイッチSW1040を通してコンデンサCP1030にチャージアップされるとともに、コントローラチップ1020、SATA−I/F1010、多値フラッシュメモリチップ1100〜1107、SDRAMチップ1252に伝えられるように構成する。   The switch SW1040 can be switched on and off by a detection signal. When power is turned on from the host 1500, the capacitor CP1030 performs a charging operation using the power supply voltage, and performs an operation of supplying the held voltage as an operating voltage for each component of the SSD 1000. The operation voltage formed by the capacitor CP1030 is prevented from flowing back to the host 1500 side so that the holding voltage of the capacitor CP1030 can be used effectively. In the simplest configuration, the power supply voltage from the host 1500 side is charged up to the capacitor CP1030 through the switch SW1040 as the power supply voltage of the SSD 1000 through a unidirectional element such as a diode, and the controller chip 1020, SATA-I / F1010. The multi-value flash memory chips 1100 to 1107 and the SDRAM chip 1252 are transmitted.

ホスト1500側において電源遮断等が発生した場合、コントローラチップ1020及び多値フラッシュメモリチップ1100〜1107にはコンデンサCP1030から動作電圧が維持される逆流防止が行われるとともに、SATA−I/F1010がホスト1500側からの信号(コマンド等)に応答しないように制御され、SDRAMチップ1252に退避データが存在するときには多値フラッシュメモリチップ1100〜1107の予め決められた退避領域にかかる退避データの退避が行われる。もしも多値フラッシュメモリチップ1100〜1107への書き込み動作中の電源遮断ならば、各多値フラッシュメモリチップへリセットコマンドが発行されて書き込み動作が中断処理される。同様に、多値フラッシュメモリチップ1100〜1107の消去動作中ならばリセットコマンドが発行されて消去動作も中断処理される。   In the case where a power shutdown or the like occurs on the host 1500 side, the controller chip 1020 and the multi-value flash memory chips 1100 to 1107 are prevented from backflow in which the operating voltage is maintained from the capacitor CP1030 and the SATA-I / F 1010 is connected to the host 1500 Is controlled so as not to respond to a signal (command or the like) from the side, and when saved data exists in the SDRAM chip 1252, the saved data related to a predetermined saved area of the multilevel flash memory chips 1100 to 1107 is saved. . If the power is cut off during the write operation to the multi-level flash memory chips 1100 to 1107, a reset command is issued to each multi-level flash memory chip, and the write operation is interrupted. Similarly, if the multilevel flash memory chips 1100 to 1107 are being erased, a reset command is issued and the erase operation is also interrupted.

ルーティング部1230は、SSD1000内部のデータ転送の高速化・安定化を実現するために設けられた回路であり、多値フラッシュメモリチップ1100〜1107の読み・書き・消去等を制御するFLASH制御部1240、SDRAM1252のデータ入出力を制御するSDRAM制御部1250、SRAM1261のデータ入出力を制御するSRAM制御部1260、ECC部1220、SATA制御部1200との間の、単純だが高速で安定したデータ転送に特化した経路制御を担当する。一方、外部ホスト1500から入力されるATAコマンド等の判別や、記憶装置としての全体の管理のように、速度安定性はそれほど要求されないが複雑な制御については中央処理装置CPU1270が担当する。   The routing unit 1230 is a circuit provided to realize high speed / stabilization of data transfer inside the SSD 1000, and a FLASH control unit 1240 for controlling reading / writing / erasing of the multilevel flash memory chips 1100 to 1107. Specially for simple, high-speed and stable data transfer between the SDRAM control unit 1250 for controlling data input / output of the SDRAM 1252, the SRAM control unit 1260 for controlling data input / output of the SRAM 1261, the ECC unit 1220, and the SATA control unit 1200. Responsible for integrated route control. On the other hand, the central processing unit CPU 1270 is in charge of complicated control although speed stability is not so required, such as determination of ATA commands input from the external host 1500 and overall management as a storage device.

FLASH制御部1240は、4チャネル分のインターフェース回路とデータバッファBUF0〜3を有する。1チャネルにつき8ビットのデータバスを持つ。FLASH制御部1240は、8個の多値フラッシュメモリチップ1100〜1107と4チャネル×2イネーブルの並列形態で接続することによりデータの入出力を行う。チップ0と4、チップ1と5、チップ2と6、チップ3と7はそれぞれデータバッファBUF0、1、2、3と各データバスを共有しており、2本のイネーブル信号の1本をアサートすることにより、データバッファやデータバスを利用できるチップを{0、1、2、3}または{4、5、6、7}に切り替える。フラッシュメモリから読み出されたデータストリームは、FLASH制御部1240のバッファBUF0〜3にセクタサイズ(512B)まで蓄積されたのち、ルーティング部1230に出力される。   The FLASH control unit 1240 includes an interface circuit for four channels and data buffers BUF0 to BUF3. Each channel has an 8-bit data bus. The FLASH control unit 1240 inputs / outputs data by connecting the eight multi-level flash memory chips 1100 to 1107 in a parallel form of 4 channels × 2 enables. Chips 0 and 4, Chips 1 and 5, Chips 2 and 6, and Chips 3 and 7 share data buses with data buffers BUF0, 1, 2, and 3, respectively, and assert one of the two enable signals. As a result, the chip that can use the data buffer or the data bus is switched to {0, 1, 2, 3} or {4, 5, 6, 7}. The data stream read from the flash memory is accumulated up to the sector size (512 B) in the buffers BUF 0 to 3 of the FLASH control unit 1240 and then output to the routing unit 1230.

ルーティング部1230は複数のデータバスセレクタ回路を有し、中央処理装置CPU1270内に記録されたファームウェアにより、レジスタ部1210を通じて、当該セレクタを必要に応じて切り替える。これによって、SDRAMとフラッシュメモリとの間で直接的にデータを転送する信号経路、SDRAMからのデータをECC部に送り、そこで生成されたパリティをそのデータに付加してフラッシュメモリに転送する信号経路、フラッシュメモリから読み出されたデータ(パリティ付き)をECC部に送り、誤りの検出・訂正を行ったデータをSDRAMに転送する信号経路、あるいはそれを直接的にSATA−I/Fを介して外部ホストに出力する信号経路等を形成する。経路上の各部にはバッファが備えられており、そのバッファを通してデータのやり取りを行う。ルーティング部1230は、そこに接続している各部からの処理終了フラグ及びエラー有無の判定通知をもらう。転送処理を何等かの要因で中断する場合には、各部へ中断信号を送信する。ルーティング部1230から中央処理装置CPU1270への処理終了やエラーの通知は、中央処理装置CPUによるレジスタ部1210に対するレジスタポーリングで行う。レジスタ部1210は、ルーティング部1230や経路上の各部と管理信号バス1290で接続されており、中央処理装置CPU1270のファームウェアからアクセス可能なレジスタのライトやリードにより、上記の信号経路選択や転送状態通知を行えるように構成される。   The routing unit 1230 has a plurality of data bus selector circuits, and switches the selectors as necessary through the register unit 1210 by firmware recorded in the central processing unit CPU 1270. Thus, a signal path for directly transferring data between the SDRAM and the flash memory, a signal path for sending data from the SDRAM to the ECC unit, adding the generated parity to the data, and transferring the data to the flash memory. A signal path for sending data (with parity) read from the flash memory to the ECC unit and transferring the error-detected / corrected data to the SDRAM, or directly via the SATA-I / F A signal path to be output to an external host is formed. Each part on the path is provided with a buffer, and data is exchanged through the buffer. The routing unit 1230 receives a processing end flag and an error presence / absence notification from each unit connected thereto. When the transfer process is interrupted for some reason, an interrupt signal is transmitted to each unit. The processing end or error notification from the routing unit 1230 to the central processing unit CPU 1270 is performed by register polling of the register unit 1210 by the central processing unit CPU. The register unit 1210 is connected to the routing unit 1230 and each unit on the path through the management signal bus 1290, and the above-described signal path selection and transfer state notification are performed by writing and reading the register accessible from the firmware of the central processing unit CPU 1270. It is comprised so that it can do.

電源検出部1280は、電源電圧がある一定値より低下すると、上記電源遮断処理を行うための割り込み信号及びトリガ信号を、それぞれ中央処理装置CPU1270及びルーティング部1230に通知するように構成されている。   The power supply detection unit 1280 is configured to notify the central processing unit CPU 1270 and the routing unit 1230 of an interrupt signal and a trigger signal for performing the power supply cutoff process when the power supply voltage drops below a certain value.

SDRAMチップ1252に小容量なものを適用することは、電源遮断時のデータ退避量(すなわち必要な電力)を小さくできるので、搭載するコンデンサCPの容量値を小さくすることができ、SSD1000の小型化や低コスト化が可能となる。   Applying a small capacity to the SDRAM chip 1252 can reduce the amount of data saved (ie, necessary power) when the power is shut down, so that the capacity value of the mounted capacitor CP can be reduced and the SSD 1000 can be downsized. And cost reduction.

中央処理装置CPU1270は、図1で斜線で塗られた矢印で示したCPUバス1271により他部と接続されている。中央処理装置CPU1270は、ホスト1500からのユーザデータの読み書き動作指示等のコマンドをレジスタ部1210を介して受け取り、ユーザデータの論理アドレスを取得し、それに応じたユーザデータの読み書き動作を実行する。   The central processing unit CPU 1270 is connected to other parts by a CPU bus 1271 indicated by the hatched arrows in FIG. The central processing unit CPU 1270 receives a command such as a user data read / write operation instruction from the host 1500 via the register unit 1210, acquires a logical address of the user data, and executes a read / write operation of the user data according to the command.

SRAM1261は、基本的に中央処理装置CPU1270のワークメモリとして動作する。また、中央処理装置CPU1270からSRAM1261に書き込まれた情報は、SRAM制御部1260を介してルーティング部1230から読み出すことができるように構成されている。これにより、中央処理装置CPU1270は、ルーティング部1230を経由して、SDRAMチップ1252や多値フラッシュメモリチップ1100〜1107に書き込みたい情報を送信することができる。その情報とは、例えば、ユーザデータの論理アドレスや、フラッシュメモリのブロック消去回数などである。   The SRAM 1261 basically operates as a work memory for the central processing unit CPU 1270. Information written in the SRAM 1261 from the central processing unit CPU 1270 can be read out from the routing unit 1230 via the SRAM control unit 1260. As a result, the central processing unit CPU 1270 can transmit information to be written to the SDRAM chip 1252 and the multilevel flash memory chips 1100 to 1107 via the routing unit 1230. The information includes, for example, a logical address of user data, the number of block erases of the flash memory, and the like.

次に、図2を参照しながら、多値フラッシュメモリチップ1100〜1107のブロック構成、ページ構成及びアクセス方式を説明する。   Next, the block configuration, page configuration, and access method of the multilevel flash memory chips 1100 to 1107 will be described with reference to FIG.

多値フラッシュメモリチップ1100〜1107は、図2(a)のように、いずれも多数個、例えば4096個のブロック2100〜2111で構成されている。ブロックはそれぞれ0〜4095の番号が付されている。ブロックは、多値フラッシュメモリを消去する際の最小単位である。そのサイズは、例えば512KBである。なお、ブロックの消去に費やされる時間は、例えば2ミリ秒である。なお、多値フラッシュメモリチップでは、ブロックの一部(例えば全体の3%)に、全く使用できない先天的不良ブロックが含まれる。それ以外(正常ブロック)の各々についても、ブロック消去は有限な回数、例えば1万回までの成功しか保証されない。それ以上の回数を消去すると、メモリセルが劣化して、消去が不完全になることがある。消去が不完全な(失敗した)ブロックは以後、書き換えが許されない。このような現象を後天的ブロック不良という。   As shown in FIG. 2A, each of the multi-value flash memory chips 1100 to 1107 includes a large number, for example, 4096 blocks 2100 to 2111. Each block is numbered from 0 to 4095. A block is a minimum unit for erasing the multi-level flash memory. The size is, for example, 512 KB. Note that the time spent for erasing the block is, for example, 2 milliseconds. In the multi-level flash memory chip, a part of the block (for example, 3% of the whole) includes a congenital defective block that cannot be used at all. For each of the other (normal blocks), block erasure is guaranteed only a limited number of times, for example, up to 10,000 times. If more times are erased, the memory cell may deteriorate and erasure may be incomplete. A block that is incompletely erased (failed) cannot be rewritten thereafter. Such a phenomenon is called acquired block failure.

ブロック2100〜2111は、図2(b)のように、いずれも複数個、例えば128個のページ2120で構成されている。ページはそれぞれ0〜127の番号が付されている。ブロックは、多値フラッシュメモリを読み書きする際の最小単位である。そのサイズは、例えば4KBである。ある1つのブロックにMLCとしてページ単位でデータを書くときには、ブロック消去後の未書込みページに行わねばならず、ページ番号の昇順(0→1→…→127)で行わねばならない。また、ある1つのブロックにSLCとしてページ単位(MLCで換算すれば2ページ単位)でデータを書くときにも、ブロック消去後の未書込みページに行わねばならず、ページペア番号の昇順で行わねばならない。1ブロック(128ページ)の中に64個のページペアが存在するが、どのページとどのページがペア関係なのかや、ページペア番号の付け方の順番がどうなっているかは、フラッシュメモリチップ製品によって様々である。ここでは、その一例として、ページ2Yとページ2Y+1(Y=0〜63)がペア関係で、ページペア番号がYであるフラッシュメモリチップを想定する。その場合、SLCとしてのページライト、図の矢印2130、2131、…、2134の順でデータを書かねばならない。   Each of the blocks 2100 to 2111 includes a plurality of, for example, 128 pages 2120 as shown in FIG. Each page is numbered 0-127. A block is a minimum unit for reading from and writing to a multilevel flash memory. The size is, for example, 4 KB. When data is written in units of pages as MLC in one block, it must be performed on an unwritten page after block erasure, and must be performed in ascending order of page numbers (0 → 1 →... → 127). In addition, when data is written in one block as an SLC in page units (2 pages in terms of MLC), it must be performed on an unwritten page after block erasure, and in ascending order of page pair numbers. Don't be. There are 64 page pairs in one block (128 pages). Which page is associated with which page and the order of page pair numbering depends on the flash memory chip product. There are various. Here, as an example, a flash memory chip in which page 2Y and page 2Y + 1 (Y = 0 to 63) are in a pair relationship and the page pair number is Y is assumed. In that case, data must be written in the order of page write as SLC and arrows 2130, 2131,.

前記2つのライト方式(MLC方式・SLC方式)に関係なく、書き込み済みのページに再度データを書き込みたい場合は、その前にその所属ブロック自体を消去しなければならない。また、消去回数が保証値を超えたブロックでは、メモリセルが劣化して、書き込みが不完全になることがある。書き込みが不完全な(失敗した)ブロックは以後、書き換えが許されない。この現象も後天的ブロック不良の1つである。   Regardless of the two write methods (MLC method / SLC method), if data is to be written again on a written page, the block itself must be erased before that. In addition, in a block where the number of erases exceeds the guaranteed value, the memory cell may deteriorate and writing may be incomplete. Blocks that are incompletely written (failed) are not allowed to be rewritten thereafter. This phenomenon is also one of acquired block failures.

多値フラッシュメモリは、ページの書き込みやブロックの消去を高速におこなうために2ページ同時書き込み、2ブロック同時消去の機能を持つ。図2(c)のように、Xを0〜2047の整数として、2X番と2X+1番の2ブロック2300について、同じ番号の2ページ(例えば2200)は同時に書き込み(ただし、MLCとして)が可能である。また、2300のような隣接関係にある2ブロックはいずれも同時に消去が可能である。   The multi-level flash memory has a function of two page simultaneous writing and two block simultaneous erasing in order to perform page writing and block erasing at high speed. As shown in FIG. 2C, with X being an integer from 0 to 2047, two pages (for example, 2200) of the same number can be written simultaneously (but as MLC) for 2X number and 2X + 1 number 2 blocks 2300. is there. Further, two blocks having an adjacent relationship such as 2300 can be erased simultaneously.

次に、図3および図8(a)を参照しながら、SSD1000においてユーザデータを格納するためのフラッシュメモリのブロックやページの物理的な管理仕様を説明する。   Next, physical management specifications of blocks and pages of a flash memory for storing user data in the SSD 1000 will be described with reference to FIGS. 3 and 8A.

図3のように、Aを0〜2047の整数として、メモリチップ0番から2A番と2A+1番の2ブロック3210、3220を選び、Bを0〜2047の整数として、メモリチップ1番から2B番と2B+1番の2ブロック3211、3221を選び、Cを0〜2047の整数として、メモリチップ2番から2C番と2C+1番の2ブロック3212、3222を選び、Dを0〜2047の整数として、メモリチップ3番から2D番と2D+1番の2ブロック3213、3223を選び、Eを0〜2047の整数として、メモリチップ4番から2E番と2E+1番の2ブロック3214、3224を選び、Fを0〜2047の整数として、メモリチップ5番から2F番と2F+1番の2ブロック3215、3225を選び、Gを0〜2047の整数として、メモリチップ6番から2G番と2G+1番の2ブロック3216、3226を選び、Hを0〜2047の整数として、メモリチップ7番から2H番と2H+1番の2ブロック3217、3227を選び、それら16ブロックをまとめた消去単位EU3200を構成する。そのサイズは、例えば8MBである。このようなEUの組を、多値フラッシュメモリチップ1100〜1107上の全ての正常ブロック(先天的不良でないブロック)を使って多数組作成する。SSD1000においてブロック消去を実施するときは、このEUを単位として行う。   As shown in FIG. 3, memory blocks 0 to 2A and 2A + 1, 2 blocks 3210 and 3220 are selected with A being an integer from 0 to 2047, and B is an integer from 0 to 2047, and memory chips 1 to 2B are selected. 2B + 1 No. 2 blocks 3211 and 3221, C is an integer from 0 to 2047, 2C No. 2C and 2C + 1 No. 2 blocks 3212 and 3222 are selected, and D is an integer from 0 to 2047 Select 2 blocks 3213 and 3223 from chip 3 to 2D and 2D + 1, select 2 blocks 3214 and 3224 from memory chip 4 to 2E and 2E + 1, and set E to an integer from 0 to 2047, and set F to 0 As an integer of 2047, 2 blocks 3215 and 3225 of memory chip 5 to 2F and 2F + 1 are selected, and G is set to 0 to 2047. As an integer, 2 blocks 3216 and 3226 of memory chip 6 to 2G and 2G + 1 are selected, and 2 blocks 3217 and 3227 of memory chip 7 to 2H and 2H + 1 are selected as an integer of 0 to 2047, An erase unit EU3200 is formed by collecting these 16 blocks. The size is, for example, 8 MB. A large number of such EU sets are created using all normal blocks (blocks that are not inherently defective) on the multilevel flash memory chips 1100 to 1107. When executing block erase in the SSD 1000, this EU is used as a unit.

多値フラッシュメモリチップ1100〜1107上のEUは、その利用方法に応じて5つのタイプに区分される。図8(a)はそれらのタイプ名と配分を示したものである。   EUs on the multi-level flash memory chips 1100 to 1107 are classified into five types according to their usage. FIG. 8A shows their type names and distribution.

ブロックアドレスの若い方から16組のEUは、退避&テーブル8110というタイプに割り当てる。ここには電源遮断時にSDRAMチップ1252から退避されるユーザデータや当該データのアドレス情報等を記録したり、他のEUの割り付け状態やユーザデータの格納状態などを含むテーブルを記録する。これらのEUは割り付け先が8110に固定されるが、その他のEUはSSD1000におけるデータ書き換えの実施に従って割り付け先が8120〜8140の間で変化する。   The 16 sets of EUs from the youngest block address are assigned to the save & table 8110 type. Here, user data saved from the SDRAM chip 1252 when the power is shut down, address information of the data, and the like, and a table including other EU allocation states and user data storage states are recorded. The allocation destination of these EUs is fixed at 8110, but the allocation destinations of other EUs vary between 8120 and 8140 in accordance with the data rewrite in the SSD 1000.

その他のEUのうち、3組のEUは2次キャッシュ8120というタイプに割り当てる。また、少なくとも1884組のEUはデータ&3次キャッシュ8130というタイプに割り当てる。また、多くとも145組のEUはフリー8140というタイプに割り当てる。   Of the other EUs, three sets of EUs are assigned to the type of secondary cache 8120. Further, at least 1884 EUs are assigned to the type of data & tertiary cache 8130. Also, at most 145 sets of EUs are assigned to a type of free 8140.

消去単位EU3200が、2次キャッシュ8120として割り付けられた場合、そのEUはユーザデータの一時的な格納場所として利用する。ただし、そのデータの読み書きはSLC方式で行う。よって、そのEU1組の実質的な記憶容量は8MBの半分の4MBとなる。   When the erase unit EU3200 is allocated as the secondary cache 8120, the EU is used as a temporary storage location for user data. However, reading and writing of the data is performed by the SLC method. Therefore, the substantial storage capacity of the EU1 set is 4 MB, which is half of 8 MB.

消去単位EU3200が、データ&3次キャッシュ8130として割り付けられた場合、図3のようにそのメモリ空間を大きく2つの領域3231、3232に分けて管理する。それぞれデータ領域3231、3次キャッシュ領域3232と呼ぶ。両領域ともデータの読み書きはMLC方式で行う。データ領域3231は各構成ブロックのページ番号0〜119をまとめたものであり、3次キャッシュ領域3232は各構成ブロックのページ番号120〜127をまとめたものである。データ領域3231は、サイズが7680KBで、ユーザデータのスタティックは格納場所として利用し、3次キャッシュ領域3232は、サイズが512KBで、ユーザデータの一時的な格納場所として利用する。データ領域3231はさらに60個のサブ領域に等分される。それらの1つ1つは、図3の斜線部分3240のように、各構成ブロックから2ページずつ集めて構成された128KBの領域である。これらを物理管理単位PMUと呼ぶ。データ&3次キャッシュ8130として割り付けられるEUの組数は、SSD1000におけるデータ書き換えの実施に従って変化する。   When the erase unit EU3200 is allocated as the data & tertiary cache 8130, the memory space is divided into two areas 3231 and 3232 and managed as shown in FIG. They are called a data area 3231 and a tertiary cache area 3232, respectively. In both areas, data is read and written by the MLC method. The data area 3231 is a collection of page numbers 0 to 119 of each constituent block, and the tertiary cache area 3232 is a collection of page numbers 120 to 127 of each constituent block. The data area 3231 has a size of 7680 KB and user data static is used as a storage location, and the tertiary cache area 3232 has a size of 512 KB and is used as a temporary storage location for user data. The data area 3231 is further divided into 60 sub-areas. Each of them is a 128 KB area configured by collecting two pages from each component block, as indicated by the hatched portion 3240 in FIG. These are called physical management units PMU. The number of EU groups allocated as the data & tertiary cache 8130 varies according to the data rewrite performed in the SSD 1000.

消去単位EU3200が、フリー8140として割り付けられた場合、そのEUは8120や8130として割り付けられるEUの予備となる。フリー8140として割り付けられるEUの組数は、SSD1000におけるデータ書き換えの実施に従って変化する。また、そのEUは8120や8130として割り付けられたEUが後天的に不良化したときの予備としても利用される。フラッシュメモリチップ内に先天的不良ブロックがない場合は、初期状態で145組のEUがフリー8140として割り付けられる。フリー8140として割り付けられるEUの組数は、後天的に不良が起こるたびにも減少していく。この組数が小さな値(例えば、ゼロ)になった時点でSSD1000は後天的ブロック不良に対する耐性を失うため、読み出し専用の記憶装置として動作するモードに変化する。例えば、ホストからのライトコマンドに対してデータをライトせずにエラーを返す。   When the erasing unit EU3200 is allocated as free 8140, the EU becomes a spare for the EU allocated as 8120 or 8130. The number of EU groups allocated as free 8140 changes according to the execution of data rewriting in the SSD 1000. The EU is also used as a spare when the EU assigned as 8120 or 8130 is acquired later. If there is no congenital bad block in the flash memory chip, 145 EU groups are allocated as free 8140 in the initial state. The number of EU groups allocated as free 8140 also decreases every time an acquired failure occurs. When the number of sets becomes a small value (for example, zero), the SSD 1000 loses tolerance for acquired block failure, and therefore changes to a mode in which it operates as a read-only storage device. For example, an error is returned without writing data in response to a write command from the host.

次に、図4を参照しながら、データ&3次キャッシュ8130として割り付けられた消去単位EU3200における、ユーザデータの格納方式を説明する。   Next, a user data storage method in the erase unit EU 3200 allocated as the data & tertiary cache 8130 will be described with reference to FIG.

図4(a)は、ホスト1500がユーザデータを管理するための論理アドレス空間(LBA空間)を、物理アドレス空間にどのように割り付けるかを示している。   FIG. 4A shows how a logical address space (LBA space) for managing user data by the host 1500 is allocated to the physical address space.

図4(a)のように、まずユーザデータのLBA空間4000を、4010、4020、4030のような7680KB単位の論理ブロックに分割する。次に論理ブロックのそれぞれを60個のサブ領域(各128KB)に等分する。これらを論理管理単位LMUと呼ぶ。このLMUと上記PMUを1対1の関係で割り付けることによって、ユーザデータをフラッシュメモリ上に格納する。例えば、LMU4110のデータはPMU4210に格納し、LMU4120のデータはPMU4220に格納し、LMU4130のデータはPMU4230に格納する。図に示すように、LMUからPMUへの対応はランダムでよく、必ずしもアドレス順でなくてよい。   As shown in FIG. 4A, the LBA space 4000 of user data is first divided into logical blocks of 7680 KB units such as 4010, 4020, and 4030. Next, each logical block is equally divided into 60 sub-regions (128 KB each). These are called logical management units LMU. User data is stored in the flash memory by allocating the LMU and the PMU in a one-to-one relationship. For example, LMU 4110 data is stored in the PMU 4210, LMU 4120 data is stored in the PMU 4220, and LMU 4130 data is stored in the PMU 4230. As shown in the figure, the correspondence from the LMU to the PMU may be random and not necessarily in the address order.

図4(a)のように、論理ブロック4020内の60個のLMUが、いずれも1つのEU3200内のデータ領域3231の60個のPMUのいずれかに割り付けられている状態は、SSD1000の初期状態か、ガベッジコレクション実施直後の状態などに限られる。ホスト1500からのユーザデータ書き込みにより、図4(b)のように、60個のLMU群4020が2つのEU3200、3201にまたがってPMUに割り付けられる状態が生成される。例えば、LMU4120に含まれるユーザデータがホスト1500により2回更新(ライト)された場合を説明する。1回目の更新では、フリー8140として割り付けられたEUの中からEU3201が調達され、LMU4120の割り付け先は、更新前の状態を記録したPMU4220が無効化され、更新後の状態を記録したPMU4221が有効になる。次に2回目の更新では、更新前の状態を記録したPMU4221が無効化され、更新後の状態を記録したPMU4222が有効になる。このようなデータ更新で新たに調達されるEU3201を更新EUと呼ぶ。更新EU3201では、ホスト1500から書き込むデータのLMUアドレスパターンに影響され、必ずしもLMUとPMUが1対1の関係で割り付けられない。以下、LMUとPMUが1対1の関係で割り付けられたEU3200を基本EUと呼び、両者を区別する。   As shown in FIG. 4A, the state in which 60 LMUs in the logical block 4020 are allotted to one of 60 PMUs in the data area 3231 in one EU 3200 is the initial state of the SSD 1000. Or it is limited to the state immediately after the garbage collection. By writing user data from the host 1500, a state in which 60 LMU groups 4020 are allocated to PMUs across two EUs 3200 and 3201 as shown in FIG. 4B is generated. For example, a case where user data included in the LMU 4120 is updated (written) twice by the host 1500 will be described. In the first update, the EU 3201 is procured from among the EUs allocated as free 8140, and the allocation destination of the LMU 4120 is invalidated by the PMU 4220 that records the state before the update, and the PMU 4221 that records the state after the update is valid. become. Next, in the second update, the PMU 4221 that records the state before the update is invalidated, and the PMU 4222 that records the state after the update becomes valid. EU 3201 newly procured by such data update is referred to as update EU. The update EU3201 is affected by the LMU address pattern of data written from the host 1500, and the LMU and the PMU are not necessarily allocated in a one-to-one relationship. Hereinafter, the EU 3200 in which the LMU and the PMU are allocated in a one-to-one relationship is referred to as a basic EU, and the two are distinguished.

図4(b)のようなLMUの割り付け状態がN件存在している時、データ&3次キャッシュ8130として割り付けられたEUの組数はN組増えて1884+N組となり、フリー8140として割り付けられたEUの組数はN組減って145−N組となる。一般に、ホスト1500からのユーザデータの書き込みを続けると、Nは単調に増加してしまい、フリー8140のEUが枯渇してしまう。そこで、フリー8140のEUの組数を増やすために行う処理が、ガベッジコレクションである。これは、中央処理装置CPU1270の判断により、図4(b)のような割り付け状態を強制的に図4(a)のような割り付け状態にするため、基本EUや更新EUなどから最新のユーザデータのみを集めて作った論理ブロック(7680KB)を未書込みの1つのEUに移設し、それを基本EUにする処理である。   When there are N LMU allocation states as shown in FIG. 4B, the number of EU groups allocated as data & tertiary cache 8130 is increased by N groups to 1884 + N groups, and EUs allocated as free 8140 The number of sets decreases by N sets to 145-N sets. In general, if user data is continuously written from the host 1500, N increases monotonously and the free 8140 EU is exhausted. Therefore, garbage collection is a process performed to increase the number of free 8140 EU groups. This is because the central processing unit CPU 1270 determines that the allocation state as shown in FIG. 4B is forcibly changed to the allocation state as shown in FIG. This is a process in which a logical block (7680 KB) created by collecting only these is moved to one unwritten EU and made a basic EU.

次に、図5および図6を参照しながら、ホスト1500からのライトデータをSSD1000がどのような手続きで内部に格納するかを説明する。   Next, the procedure by which the SSD 1000 stores write data from the host 1500 will be described with reference to FIGS. 5 and 6. FIG.

SSD1000は、ライトデータを揮発的に一時記憶するため、SDRAMチップ1252上に2種類のキャッシュ領域を確保する。1つは128KBの容量を持つLMUキャッシュ、もう1つは128KBの容量を持つランダム1次キャッシュである。ホスト1500からのライトコマンドで受信されたデータが、16KBよりも大きい場合はLMUキャッシュにキャッシュされ、16KB以下である場合はランダム1次キャッシュにキャッシュされる。   The SSD 1000 secures two types of cache areas on the SDRAM chip 1252 in order to temporarily store write data in a volatile manner. One is an LMU cache having a capacity of 128 KB, and the other is a random primary cache having a capacity of 128 KB. When the data received by the write command from the host 1500 is larger than 16 KB, it is cached in the LMU cache, and when it is 16 KB or less, it is cached in the random primary cache.

図5を用いて、ライトデータが16KBよりも大きい場合のライト処理を説明する。   The write process when the write data is larger than 16 KB will be described with reference to FIG.

LMUキャッシュ5000には、ライトデータのアドレス範囲を含む論理管理単位LMUがズレなく収まるようにデータキャッシュされる。すなわち、当該LMU内の先頭セクタ(00h)はLMUキャッシュ5000の先頭セクタに配置され、当該LMU内の末尾セクタ(FFh)はLMUキャッシュ5000の末尾セクタに配置される。論理管理単位LMUはLBA空間を128KBずつ、つまり256セクタずつ区分しているため、図5(b)のようにLBA48ビットのうち、上位40ビットはLMUアドレス、下位8ビットはそのLMU内でのセクタアドレスを表す。よって、ライトコマンドで指定されたLBAの下位8ビットは、ライトデータがLMUキャッシュ5000内にキャッシュされる時の先頭セクタアドレスとなる。   Data is cached in the LMU cache 5000 so that the logical management unit LMU including the address range of the write data can be accommodated without deviation. That is, the first sector (00h) in the LMU is arranged in the first sector of the LMU cache 5000, and the last sector (FFh) in the LMU is arranged in the last sector of the LMU cache 5000. Since the logical management unit LMU divides the LBA space by 128 KB, that is, by 256 sectors, as shown in FIG. 5B, the upper 40 bits are the LMU address and the lower 8 bits are the LMU address in the LMU as shown in FIG. Represents a sector address. Therefore, the lower 8 bits of the LBA specified by the write command are the head sector address when the write data is cached in the LMU cache 5000.

LMUキャッシュ5000に格納された128KBのデータは、いずれフラッシュメモリ上のPMUの1つにライトされる。そのときのライトは32KBずつ4回に分けて行われる。FLASH制御部1240は4チャネルを同時に利用して、4つのチップに対して2ページ(8KB)同時ライト(図2(c)参照)を行うため、1回のライトサイズは8×4=32KBとなる。LMUキャッシュ5000を4つの32KB領域5010〜5040に分けたとき、その領域1つ1つを単位としてフラッシュメモリのPMUにライトされる。なお、このライトはMLC方式である。   The 128 KB data stored in the LMU cache 5000 will eventually be written to one of the PMUs on the flash memory. At that time, the writing is performed four times by 32 KB. Since the FLASH control unit 1240 performs simultaneous writing of two pages (8 KB) to four chips using four channels simultaneously (see FIG. 2C), the size of one write is 8 × 4 = 32 KB. Become. When the LMU cache 5000 is divided into four 32 KB areas 5010 to 5040, each area is written to the PMU of the flash memory as a unit. This light is an MLC method.

例えば、ライトコマンドで指定されたLBAの下位8ビットが30h(=48)で、ライトデータサイズが130セクタであるとする。このとき、LMUキャッシュ5000内のセクタ範囲5110に当該ライトデータが一時的に格納される(5220)。上記のように、フラッシュメモリのPMUへのライトは32KB単位であるため、領域5010のライト5240を実施するためには先頭から48セクタ(アドレス範囲5100)のデータが不足である。そこで、当該データを格納している現PMUをリードしてそのデータを領域5010に補充する(5210)。その後、新PMUへの領域5010のライト5240を実施する。このときの現PMUと新PMUの状態は、図4(b)で言えば、4221の無効化と4222の有効化が発生する直前の状態に等しい。次に、データ不足のない領域5020のライト5241を実施する。次に、領域5030のライト5242を実施するが、後方14セクタのデータが不足する。その不足データの補充方法には2通りある。1つは、次回のホスト1500のライトコマンドを待ってデータを補充する方法(5230)である。経験的にホスト1500はシーケンシャルライトの継続中である可能性があり、アドレス範囲5120のデータライトが期待できるため、このような方法を適用する。もう1つは、前者の期待が外れた場合に、領域5010と同様に当該データを格納している現PMUをリードしてデータを領域5030に補充する方法(5231)である。最後に、領域5040のライト5243も同様に実施して、新PMUへの128KBライトが完成する。図4(b)で言えば、4221の無効化と4222の有効化が成立したことを意味する。   For example, it is assumed that the lower 8 bits of the LBA specified by the write command are 30h (= 48) and the write data size is 130 sectors. At this time, the write data is temporarily stored in the sector range 5110 in the LMU cache 5000 (5220). As described above, since writing to the PMU of the flash memory is performed in units of 32 KB, data of 48 sectors (address range 5100) from the head is insufficient to perform the writing 5240 of the area 5010. Therefore, the current PMU storing the data is read to supplement the area 5010 with the data (5210). Thereafter, the write 5240 of the area 5010 to the new PMU is performed. The states of the current PMU and the new PMU at this time are equal to the state immediately before the invalidation of 4221 and the validation of 4222 occur in FIG. 4B. Next, the write 5241 of the area 5020 without data shortage is performed. Next, the write 5242 of the area 5030 is executed, but the data in the rear 14 sectors is insufficient. There are two methods for replenishing the missing data. One is a method of replenishing data after waiting for the next write command of the host 1500 (5230). Empirically, there is a possibility that the host 1500 is continuing the sequential write, and data write in the address range 5120 can be expected. Therefore, such a method is applied. The other is a method (5231) of reading the current PMU storing the data and replenishing the data in the area 5030 in the same way as the area 5010 when the former expectation is lost. Finally, the light 5243 in the area 5040 is similarly executed to complete the 128 KB light to the new PMU. In FIG. 4B, this means that the invalidation of 4221 and the validation of 4222 have been established.

以上のようなLBAの連続性を期待するライトキャッシュ方式により、フラッシュメモリライトデータに対してホストライトデータが占める割合が増加し、SSD1000の書き換え効率が向上する。   With the write cache method that expects LBA continuity as described above, the ratio of the host write data to the flash memory write data increases, and the rewrite efficiency of the SSD 1000 is improved.

なお、以上の説明では、32KBの領域に不足データを補充したら即座にフラッシュメモリにライトするようなライトキャッシュ方式を示したが、ホスト1500のライトコマンドを数回待ってからフラッシュメモリにライトする別方式でもよい。この別方式は、複数回のライトコマンドで指定されたLBA範囲に重複がある場合に効果がある。SDRAMは上書き更新可能で書き換え寿命が実質的に無限なメモリである。ライトコマンドの度に、LMUキャッシュ5000を上書きして最新データのみを残すようにすれば、結果としてフラッシュメモリ上のPMUへのライト回数を削減でき、SSD1000の書き換え寿命が向上する。   In the above description, a write cache method has been described in which when the insufficient data is replenished in the 32 KB area, the write cache method is immediately written to the flash memory. The method may be used. This alternative method is effective when there is an overlap in the LBA range specified by a plurality of write commands. The SDRAM is a memory that can be overwritten and updated and has a substantially unlimited rewrite life. If the LMU cache 5000 is overwritten for each write command and only the latest data is left, the number of writes to the PMU on the flash memory can be reduced as a result, and the rewrite life of the SSD 1000 is improved.

図6を用いて、ライトデータが16KB以下である場合のライト処理を説明する。   The write process when the write data is 16 KB or less will be described with reference to FIG.

ランダム1次キャッシュ6000は、ライトデータを16KB単位でキャッシュすることができる8つの領域6010〜6080を持つ。この領域へのデータキャッシュ方法を以下に述べる。例えば、ライトコマンドで指定されたライトデータサイズが20セクタ(10KB)であるとする。このとき、ランダム1次キャッシュ6000内の領域6020が空きであるとすると、その領域内の10KB範囲(例えば6120)に当該ライトデータが一時的に格納される(6420)。領域6020は先頭から12セクタ(アドレス範囲6110)のデータが不足している。そこで、当該範囲の最新データを格納しているメモリ(フラッシュメモリだけでなくSDRAMも含む)をリードしてそのデータをアドレス範囲6110に補充する(6410)。   The random primary cache 6000 has eight areas 6010 to 6080 in which write data can be cached in units of 16 KB. A data cache method for this area will be described below. For example, it is assumed that the write data size specified by the write command is 20 sectors (10 KB). At this time, if the area 6020 in the random primary cache 6000 is empty, the write data is temporarily stored in the 10 KB range (for example, 6120) in the area (6420). The area 6020 lacks data of 12 sectors (address range 6110) from the beginning. Therefore, the memory (including not only the flash memory but also the SDRAM) storing the latest data in the range is read and the data is replenished to the address range 6110 (6410).

以上のように、ランダム1次キャッシュ6000にデータがキャッシュされていき、空き領域がなくなると、最もアクセス頻度の低い16KBデータをランダム1次キャッシュ6000から追い出して、空き領域を確保する。追い出されたデータは、フラッシュメモリ上にあるランダム2次キャッシュ6300の1つに移動する。   As described above, when data is cached in the random primary cache 6000 and there is no free space, 16 KB data with the lowest access frequency is expelled from the random primary cache 6000 to secure free space. The evicted data moves to one of the random secondary caches 6300 on the flash memory.

ランダム2次キャッシュ6300は、図8(a)の8120のようにフラッシュメモリ上の3組のEUに割りつけられている。LBA空間4000を3つの区間に分割し、各区間が1つずつランダム2次キャッシュ6300を使うように構成する。これらのEU内のページはSLC方式で記録する。そのため、各ランダム2次キャッシュの実効容量は4MBであり、256個の16KB領域6210〜6250で構成される。   The random secondary cache 6300 is allocated to three sets of EUs on the flash memory as indicated by 8120 in FIG. The LBA space 4000 is divided into three sections, and each section is configured to use a random secondary cache 6300 one by one. These pages in the EU are recorded by the SLC method. Therefore, the effective capacity of each random secondary cache is 4 MB, and is composed of 256 16 KB areas 6210 to 6250.

例えば、領域6070に格納されたデータが過去32回のアクセスにおいて最もアクセス頻度が低かったとき、その格納データをランダム2次キャッシュ6300内の未書込みの16KB領域(例えば6220)にSLC方式でライトする(6430)。   For example, when the data stored in the area 6070 has the lowest access frequency in the past 32 accesses, the stored data is written to the unwritten 16 KB area (for example, 6220) in the random secondary cache 6300 by the SLC method. (6430).

以上のように、ランダム2次キャッシュ6300にデータがキャッシュされていき、空き領域がなくなると、全ての16KBデータをランダム2次キャッシュ6300から追い出し、当該EUを消去して256個の空き領域を確保する。追い出されたデータ(LBAが重複する場合は最新データのみ)は、更新EU(図4の3201参照)のPMU、あるいは基本EU(図4の3200参照)のランダム3次キャッシュに移動する。どちらに移動するかは条件によって異なり、詳細は図7のフローチャートを用いて後述する。   As described above, when data is cached in the random secondary cache 6300 and there is no free space, all 16 KB data is expelled from the random secondary cache 6300 and the EU is deleted to secure 256 free spaces. To do. The evicted data (only the latest data when the LBA overlaps) moves to the PMU of the update EU (see 3201 in FIG. 4) or the random tertiary cache of the basic EU (see 3200 in FIG. 4). The movement depends on conditions, and details will be described later with reference to the flowchart of FIG.

前記ランダム3次キャッシュとは、図8(a)の8130のようなデータ&3次キャッシュとして割りつけられたEU(例えば6310)内にある512KBの3次キャッシュ領域(例えば6312)を指す。3次キャッシュ領域にデータを書くとき、FLASH制御部1240は4チャネルを同時に利用して、4つのチップの各偶数番ブロック、あるいは4つのチップの各奇数番ブロックに対して、1ページ(4KB)ライトを行うため、1回のライトサイズは4×4=16KBとなる。なお、このライトはMLC方式である。このライトサイズに合わせて、3次キャッシュ領域は32個の16KB領域で構成されている。   The random tertiary cache indicates a 512 KB tertiary cache area (for example, 6312) in the EU (for example, 6310) allocated as data & tertiary cache such as 8130 in FIG. 8A. When writing data in the tertiary cache area, the FLASH control unit 1240 uses 4 channels simultaneously, and each page is 4 pages (4 KB) for each even-numbered block of 4 chips or each odd-numbered block of 4 chips. Since writing is performed, the size of one write is 4 × 4 = 16 KB. This light is an MLC method. According to this write size, the tertiary cache area is composed of 32 16 KB areas.

ランダム2次キャッシュ6300から追い出されるデータのうち、例えば領域6240に含まれる16KBデータに関して、ランダム3次キャッシュへの追い出し方法を説明する。まず、この追い出しデータの論理アドレスが属する論理ブロック(図4の4020等)を調べる。次に、その論理ブロックのLMUが割り付けられているPMUが存在するEU(図4の3200等)を調べる。なお、図4(b)の3200、3201のように2つのEUにまたがって割り付けられている場合は、基本EU(図4では3200)を選択する。選択されたEUが図6の6310であるとすれば、そのEU内の3次キャッシュ領域6312内の空き領域に追い出しデータを記録する(6460)。   Of the data evicted from the random secondary cache 6300, a method of evicting to the random tertiary cache will be described with respect to 16 KB data included in the area 6240, for example. First, the logical block (such as 4020 in FIG. 4) to which the logical address of the eviction data belongs is examined. Next, the EU (such as 3200 in FIG. 4) in which the PMU to which the LMU of the logical block is allocated exists is examined. In addition, when it is assigned across two EUs as in 3200 and 3201 in FIG. 4B, the basic EU (3200 in FIG. 4) is selected. If the selected EU is 6310 in FIG. 6, the eviction data is recorded in a free area in the tertiary cache area 6312 in the EU (6460).

ランダム2次キャッシュ6300から追い出されるデータのうち、例えば領域6240に含まれる16KBデータに関して、PMUへの追い出し方法を説明する。まず、この追い出しデータの論理アドレスが属する論理ブロック(図4の4020等)を調べる。次に、その論理ブロックのLMUが割りつけられているPMUを含むEU(図4の3200等)を調べる。なお、図4(b)の3200、3201のように2つのEUにまたがって割りつけられている場合は、更新EU(図4では3201)を選択する。選択されたEUが図6の6320であるとすれば、そのEU内の未書込みのPMU6321に追い出しデータを含むLMUデータを記録する(6440)。なお、このLMUデータ(128KB)のうち追い出しデータ以外の範囲(112KB)は、当該範囲の最新データを格納しているメモリ(フラッシュメモリだけでなくSDRAMも含む)をリードして補充する(6450)。PMU6321は、図4(b)の4222のように、このLMUに割り付けられた新しいPMUとなる。   Of the data evicted from the random secondary cache 6300, for example, the evicting method to the PMU will be described with respect to 16 KB data included in the area 6240. First, the logical block (such as 4020 in FIG. 4) to which the logical address of the eviction data belongs is examined. Next, the EU (such as 3200 in FIG. 4) including the PMU to which the LMU of the logical block is allocated is examined. In addition, when it is assigned across two EUs as in 3200 and 3201 in FIG. 4B, the update EU (3201 in FIG. 4) is selected. If the selected EU is 6320 in FIG. 6, the LMU data including the eviction data is recorded in the unwritten PMU 6321 in the EU (6440). The range (112 KB) other than the eviction data in the LMU data (128 KB) is replenished by reading the memory (including not only the flash memory but also the SDRAM) storing the latest data in the range (6450). . The PMU 6321 becomes a new PMU assigned to the LMU as indicated by 4222 in FIG.

ランダム2次キャッシュからランダム3次キャッシュにデータを追い出した結果、3次キャッシュ領域(例えば6312)内の空き領域がゼロになった場合、次回のランダム3次キャッシュへの追い出しの際に、追い出しデータを含む論理ブロックのガベッジコレクションを実施して3次キャッシュ領域を再確保する。具体的には、フリーとして割り付けられたEUから1組を新しい基本EUの候補として取得し、そのデータ領域(PMU60個分)に当該論理ブロックの最新LMUデータ60個をライトする。それらの最新LMUデータは、元の基本EUのデータ領域・3次キャッシュ領域内のデータや、更新EUのデータ領域や、SDRAM上のキャッシュデータを集めて構成する。結果として、新しい基本EUの3次キャッシュ領域は16KB×32個の空き領域となっているため、再びランダム2次キャッシュからランダム3次キャッシュへのデータ追い出しが可能となる。なお、元の基本EUや更新EUは消去されて、フリーとして割り付けられる。ガベッジコレクション直前のLMU割り付け状態は、図4(b)で示したように2つのEUにまたがる場合が多く、消去するEUは2つ存在する。ゆえに、ガベッジコレクションによってフリーのEUが1組消費→2組生成となるため、結果的にフリーのEUを1組増やせることになる。   As a result of expelling data from the random secondary cache to the random tertiary cache, if the free area in the tertiary cache area (for example, 6312) becomes zero, the expelled data will be ejected to the next random tertiary cache. The third cache area is re-allocated by performing garbage collection of the logical block including Specifically, one set is obtained as a candidate for a new basic EU from EUs allocated as free, and 60 latest LMU data of the logical block are written in the data area (for 60 PMUs). The latest LMU data is configured by collecting data in the original basic EU data area and tertiary cache area, an updated EU data area, and cache data on the SDRAM. As a result, since the tertiary cache area of the new basic EU is 16 KB × 32 free areas, data can be evicted from the random secondary cache to the random tertiary cache again. The original basic EU and updated EU are deleted and assigned as free. As shown in FIG. 4B, the LMU allocation state immediately before garbage collection often spans two EUs, and there are two EUs to be erased. Therefore, one set of free EU is consumed → 2 sets are generated by garbage collection, and as a result, one set of free EU can be increased.

SSD1000にとって、ガベッジコレクションが頻繁に発生することはライト性能低下の要因となる。ガベッジコレクションは、8個のフラッシュメモリチップを並列動作させても、一度の実施について240回のページライト(データ領域への移動)と2回の消去(フリーEUの生成)が必要な処理だからである。これは、少なくとも240×1ミリ秒+2×2ミリ秒=244ミリ秒もの時間が必要となる。したがって、ガベッジコレクションの発生をできるだけ実施しないことがコマンド応答時間を短縮し、ライト性能の向上となる。また、一定量のホストライトに対するガベッジコレクションの発生数(つまり発生頻度)をできるだけ小さくすることはメモリセル劣化を遅らせ、書き換え寿命の向上となる。詳細は後述するが、本実施形態を適用したSSD1000は、ランダム2次キャッシュを利用することで、それを持たない従来のSSDに比べてガベッジコレクションの発生を抑制している。   For the SSD 1000, the frequent occurrence of garbage collection is a cause of a decrease in write performance. Garbage collection is a process that requires 240 page writes (moving to the data area) and 2 erasures (free EU generation) even if 8 flash memory chips are operated in parallel. It is. This requires at least 240 × 1 milliseconds + 2 × 2 milliseconds = 244 milliseconds. Therefore, not performing garbage collection as much as possible reduces the command response time and improves the write performance. Further, reducing the number of occurrences of garbage collection (that is, the occurrence frequency) for a certain amount of host write as much as possible delays the deterioration of memory cells and improves the rewrite life. Although details will be described later, the SSD 1000 to which the present embodiment is applied uses a random secondary cache to suppress the occurrence of garbage collection as compared with a conventional SSD that does not have this.

次に、図7を参照しながら、16KB以下のホストライトにおいて、ランダム2次キャッシュからのデータ追い出しが必要となった時に、中央処理装置CPU1270が実行する追い出し処理(図6の6440/6460の選択を含む)の詳細を説明する。   Next, referring to FIG. 7, in the host write of 16 KB or less, the eviction process executed by the central processing unit CPU 1270 when the data eviction from the random secondary cache becomes necessary (selection of 6440/6460 in FIG. 6). Details).

まず、中央処理装置CPU1270は、基本EUの3次キャッシュ領域に空きがあるかを判定する(7010)。その結果が真ならば、基本EUの3次キャッシュ領域に当該追い出しデータを追記し(7060)、処理を終える。   First, the central processing unit CPU 1270 determines whether there is a vacancy in the tertiary cache area of the basic EU (7010). If the result is true, the eviction data is added to the tertiary cache area of the basic EU (7060), and the process ends.

一方、ステップ7010の結果が偽ならば、ランダム2次キャッシュから追い出されたデータの属する論理ブロックの割り付け先PMU群が2つの消去単位EUにまたがっているか、つまり当該論理ブロックに更新EUが与えられているかを判定する(7020)。   On the other hand, if the result of step 7010 is false, the allocation destination PMU group of the logical block to which the data evicted from the random secondary cache belongs extends over two erase units EU, that is, the update EU is given to the logical block. (7020).

ステップ7020の結果が真ならば、その更新EUのデータ領域に空きPMUがあるかを判定する(7030)。その結果が偽ならば、その更新EUに当該追い出しデータを記録することは不可能であるため、フリーとして割り付けられたEUから1組のEUを取得し(7040)、当該EUをデータ移動先とするガベッジコレクション処理を実施し(7050)、処理を終える。以後、当該移動先EUが当該論理ブロックの新しい基本EUになる。なお、ステップ7050では、元の基本EUと更新EUは消去されてフリーとして割り付けられる。   If the result of step 7020 is true, it is determined whether there is an empty PMU in the data area of the updated EU (7030). If the result is false, it is impossible to record the eviction data in the updated EU. Therefore, a set of EUs is obtained from the EUs allocated as free (7040), and the EUs are designated as data destinations. The garbage collection process is executed (7050), and the process ends. Thereafter, the destination EU becomes the new basic EU of the logical block. In step 7050, the original basic EU and the updated EU are deleted and allocated as free.

一方、ステップ7020の結果が偽ならば、フリーとして割り付けられたEUから1組のEUを取得し、当該論理ブロックの更新EUとし(7070)、下記ステップ7080に遷移する。   On the other hand, if the result of step 7020 is false, a set of EUs is acquired from the EUs allocated as free, set as the update EU of the logical block (7070), and the process proceeds to the following step 7080.

上記ステップ7030の結果が真ならば、更新EUに当該追い出しデータを記録するため、当該追い出しデータ16KBに対してその周辺アドレスの最新データ(112KB)をマージして128KBに拡張したものを、更新EUの空きPMUに追記する(7080)。以上で処理を終える。   If the result of the above step 7030 is true, in order to record the eviction data in the update EU, the update EU is obtained by merging the eviction data 16 KB with the latest data (112 KB) of its peripheral address and expanding it to 128 KB. (7080). This is the end of the process.

次に、図8(b)を参照しながら、消去単位EUの割り付け先タイプの遷移(ライフサイクル)について説明する。   Next, the transition (life cycle) of the allocation destination type of the erasing unit EU will be described with reference to FIG.

ホストからのデータライトに伴い、フリーとして割り付けられたEUが更新EUとして調達されることがある。このような場合、そのEUのタイプは矢印8220のように遷移する。   Along with data write from the host, EU allocated as free may be procured as updated EU. In such a case, the EU type changes as indicated by an arrow 8220.

ガベッジコレクションが発生したときには、データ&3次キャッシュとして割り付けられた基本EUや更新EUが消去され、フリーとして割り付けられたEUが新しい基本EUとして調達される。このような場合、新しい基本EUのタイプは矢印8220のように遷移し、消去されるEUのタイプは矢印8230のように遷移する。   When garbage collection occurs, the basic EU and update EU allocated as data & tertiary cache are erased, and the EU allocated as free is procured as a new basic EU. In such a case, the new basic EU type transitions as indicated by arrow 8220 and the erased EU type changes as indicated by arrow 8230.

データ&3次キャッシュとして割り付けられたEUがアクセス中に後天的不良となったときには、フリーとして割り付けられたEUが代替先として調達される。このような場合、代替先EUのタイプは矢印8220のように遷移し、不良となったEUは矢印8240のように廃棄EUへ遷移する。   When an EU allocated as data & tertiary cache becomes an acquired defect during access, an EU allocated as free is procured as an alternative destination. In such a case, the type of the substitution destination EU transitions as indicated by an arrow 8220, and the failed EU changes to a discarding EU as indicated by an arrow 8240.

ランダム2次キャッシュとして割り付けられたEUが末尾ページまで追記された後、そのEUは消去され、フリーとして割り付けられたEUが新しいランダム2次キャッシュとして調達される。このような場合、調達されたEUのタイプは矢印8221のように遷移し、消去されるEUのタイプは矢印8231のように遷移する。   After the EU allocated as a random secondary cache is appended to the last page, the EU is deleted, and the EU allocated as free is procured as a new random secondary cache. In such a case, the procured EU type changes as indicated by an arrow 8221, and the deleted EU type changes as indicated by an arrow 8231.

ランダム2次キャッシュとして割り付けられたEUがアクセス中に後天的不良となったときには、フリーとして割り付けられたEUが代替先として調達される。このような場合、代替先EUのタイプは矢印8221のように遷移し、不良となったEUは矢印8241のように廃棄EUへ遷移する。   When an EU allocated as a random secondary cache becomes an acquired defect during access, an EU allocated as free is procured as an alternative destination. In such a case, the type of the substitution destination EU changes as indicated by an arrow 8221, and the defective EU changes to a discarding EU as indicated by an arrow 8241.

次に、図9を参照しながら、SSD1000がランダム2次キャッシュを利用することで、それを持たない従来のSSDに比べてライト性能がより向上し、書き換え寿命が向上することを具体例を挙げて示す。   Next, referring to FIG. 9, the SSD 1000 uses a random secondary cache to give a specific example that the write performance is improved and the rewrite life is improved as compared with a conventional SSD that does not have it. Show.

例えば、LBAで0000h〜01FFh(先頭から512セクタ)の範囲で、ホスト1500から16KB(32セクタ)単位でランダムにデータライトを十分大量に実施した場合に、SSD1000内でのライトキャッシュ動作を考える。   For example, a write cache operation in the SSD 1000 is considered when a large amount of data is randomly written in units of 16 KB (32 sectors) from the host 1500 within a range of 0000h to 01FFh (512 sectors from the head) in LBA.

まず、本例でのライトデータは16KB単位のため、必ずランダム1次キャッシュに入る。ランダム1次キャッシュの容量は上記アドレス範囲の半分に当たる128KB(256セクタ)であるから、ヒット率は平均50%である。すなわち、約半数のライトデータはランダム2次キャッシュへ追い出される。   First, since the write data in this example is a unit of 16 KB, it always enters the random primary cache. Since the capacity of the random primary cache is 128 KB (256 sectors), which is half the address range, the hit rate is 50% on average. That is, about half of the write data is evicted to the random secondary cache.

ランダム1次キャッシュから移されたデータのアドレス範囲のサイズは256KB、つまり16KBデータが16個分である。また、ランダム2次キャッシュには16KBデータが256個まで追記可能である。ゆえに、ランダム2次キャッシュの空きがゼロになった時点で記録された256個のエントリのうち、最新データを含むエントリは平均的に見てその16分の1の16個である。例えば、図9(a)のように、エントリ9011、9012、9014のような最新データを含むエントリは16個あり、エントリ9010、9013のような古いデータを含むエントリは240個ある。ランダム2次キャッシュが一杯になった時、16エントリ分のデータはさらに移動する必要があるが、残り240エントリ分のデータは移動する必要がない。   The size of the address range of data transferred from the random primary cache is 256 KB, that is, 16 pieces of 16 KB data. In addition, up to 256 16 KB data can be added to the random secondary cache. Therefore, of the 256 entries recorded when the random secondary cache vacancy becomes zero, the entries including the latest data are, on average, 16/16. For example, as shown in FIG. 9A, there are 16 entries including the latest data such as entries 9011, 9012, and 9014, and 240 entries including old data such as entries 9010 and 9013. When the random secondary cache is full, 16 entries of data need to be moved further, but the remaining 240 entries of data need not be moved.

ランダム2次キャッシュが未書込み状態から書き尽くされるまでの間にSLC方式ライトは16KB単位で256回発生する。また、ランダム2次キャッシュから256KBの最新データを追い出す度に、MLC方式ライトが32KB単位で8回発生し、ランダム2次キャッシュEUの消去が1回発生する。   The SLC write is generated 256 times in units of 16 KB until the random secondary cache is completely written from the unwritten state. Further, every time 256 KB latest data is expelled from the random secondary cache, the MLC write is generated 8 times in 32 KB units, and the random secondary cache EU is erased once.

ランダム2次キャッシュから追い出された256KBの最新データは、まずは図9(a)の矢印9020、9030のように、基本EUの3次キャッシュ領域に移動されるが、容量が512KBのため2回分移動すると空きがゼロになる。その後、図9(b)の矢印9040のように、更新EUのデータ領域に移動されるが、容量が7680KBのため30回分移動すると空きがゼロになる。   The latest data of 256 KB evicted from the random secondary cache is first moved to the tertiary cache area of the basic EU as indicated by arrows 9020 and 9030 in FIG. 9A, but is moved twice because the capacity is 512 KB. Then the space becomes zero. Thereafter, as shown by an arrow 9040 in FIG. 9B, the data is moved to the data area of the update EU. However, since the capacity is 7680 KB, the space becomes zero after 30 movements.

ランダム2次キャッシュから追い出された256KBの最新データの行き先がなくなるとガベッジコレクションが実施される。このとき、図9(c)の矢印9050のようにランダム2次キャッシュから256KBデータが新しい基本EUのデータ領域へ移動し、図9(c)の矢印9060のように元の基本EUからLBAで0200h〜3BFFhの範囲のデータが新しい基本EUのデータ領域へ移動する。   Garbage collection is performed when there is no destination for the latest 256 KB data evicted from the random secondary cache. At this time, 256 KB data is moved from the random secondary cache to the data area of the new basic EU as indicated by an arrow 9050 in FIG. 9C, and from the original basic EU at LBA as indicated by an arrow 9060 in FIG. 9C. Data in the range of 0200h to 3BFFh is moved to the new basic EU data area.

このままランダムライトを続けていくと、ガベッジコレクション発生後から次のガベッジコレクション発生までを1区切りとして、以上のような一連のライトキャッシュ動作が繰り返される。この1区切りにおいて、ランダム2次キャッシュは32回のデータ追い出しがあるため、ランダム2次キャッシュへのライトは合計で256×32=8192回あったことになる。ランダム1次キャッシュのヒット率が50%とすれば、ホストからのライトは8192/0.5=16384回あったことになる。   If random writing is continued as it is, a series of write cache operations as described above are repeated with one interval from the occurrence of garbage collection to the next occurrence of garbage collection as one segment. In this one segment, since the random secondary cache has 32 times of data eviction, the total number of writes to the random secondary cache is 256 × 32 = 8192 times. If the random primary cache hit rate is 50%, the number of writes from the host is 8192 / 0.5 = 16384 times.

ガベッジコレクションの1区切りにおいて、ランダム2次キャッシュEUは32回消去され、基本EUと更新EUが1回ずつ消去されるため、合計34回の消去が発生する。ホストライト1回あたりのEU消去回数は約0.002回となる。   In one garbage collection segment, the random secondary cache EU is erased 32 times, and the basic EU and the update EU are erased once, resulting in a total of 34 erases. The number of EU erases per host write is about 0.002.

この1区切りにおいてホストライト処理時間の合計を考える。SLC方式ライト時間は256×32×0.2ミリ秒=1638.4ミリ秒であり、MLC方式ライト時間は(32×8+240)×1.0ミリ秒=496ミリ秒であり、消去時間は34×2ミリ秒=68ミリ秒であるから、合計2202.4ミリ秒である。ホストライト1回あたりの処理時間は約0.134ミリ秒となる。   Consider the total host write processing time in one segment. The SLC write time is 256 × 32 × 0.2 milliseconds = 1638.4 milliseconds, the MLC write time is (32 × 8 + 240) × 1.0 milliseconds = 496 milliseconds, and the erase time is 34 Since x 2 milliseconds = 68 milliseconds, the total is 2202.4 milliseconds. The processing time per host light is about 0.134 milliseconds.

次に、ランダム2次キャッシュがないようなSSDについて同様の考察を行う。この場合、ランダム1次キャッシュから追い出されたデータは直接、基本EUや更新EUに移動される。   Next, the same consideration is given to an SSD that does not have a random secondary cache. In this case, the data evicted from the random primary cache is directly moved to the basic EU or the update EU.

ガベッジコレクションの1区切りにおいて、基本EUの3次キャッシュ領域へ16KB単位で32回の追い出しが発生し、更新EUのデータ領域へ128KB単位(112KBの補充あり)で60回の追い出しが発生する。ランダム1次キャッシュのヒット率が50%とすれば、ホストからのライトは(32+60)/0.5=184回あったことになる。   In one garbage collection segment, 32 evictions occur in 16 KB increments to the tertiary cache area of the basic EU, and 60 evictions occur in 128 KB increments (with 112 KB replenishment) in the update EU data area. If the random primary cache hit rate is 50%, the number of writes from the host is (32 + 60) /0.5=184 times.

この1区切りにおいて、基本EUと更新EUが1回ずつ消去されるため、合計2回の消去が発生する。ホストライト1回あたりのEU消去回数は約0.01回となる。   In this one division, the basic EU and the update EU are erased once, so that a total of two erasures occur. The number of EU erases per host write is about 0.01.

この1区切りにおいてホストライト処理時間の合計を考える。MLC方式ライト時間は(32+60×4+240)×1.0ミリ秒=512ミリ秒であり、消去時間は2×2ミリ秒=4ミリ秒であるから、合計516ミリ秒である。ホストライト1回あたりの処理時間は約2.8ミリ秒となる。   Consider the total host write processing time in one segment. Since the MLC write time is (32 + 60 × 4 + 240) × 1.0 milliseconds = 512 milliseconds and the erase time is 2 × 2 milliseconds = 4 milliseconds, the total time is 516 milliseconds. The processing time per host write is about 2.8 milliseconds.

以上の結果をまとめると、SLC方式でライトデータを記録するランダム2次キャッシュを備えたSSD1000は、アドレス局所的なランダムライトに対して、それを持たない従来のSSDに比べて約20倍のライト性能を持ち、約1/5倍の消去回数頻度となる。消去回数頻度が約1/5倍ということを言い換えれば、書き換え寿命が約5倍であることを意味する。以上の通り、本実施形態の効果が定量的に示された。   To summarize the above results, the SSD 1000 equipped with a random secondary cache that records write data by the SLC method has about 20 times the write of a local address random write compared to a conventional SSD that does not have it. It has performance and the frequency of erasure is about 1/5 times. In other words, the erase frequency is about 1/5 times, which means that the rewrite life is about 5 times. As described above, the effect of the present embodiment was quantitatively shown.

なお、アドレス局所的なランダムライトは、ホスト1500が記憶装置上でファイルデータを扱うためにOS標準ファイルシステムを用いた場合に、ファイルを書き換える際のクラスタ管理テーブルの更新においてよく見られるアクセスパターンである。したがって、本実施形態によって享受される効果は確率的に特異なものではない。   The address local random write is an access pattern often seen in updating the cluster management table when rewriting a file when the host 1500 uses the OS standard file system to handle file data on the storage device. is there. Therefore, the effects enjoyed by this embodiment are not stochastically unique.

以下、本発明の第2の実施形態について説明する。   Hereinafter, a second embodiment of the present invention will be described.

本実施形態は、第1の実施形態の一部の仕様を変更したものであり、特に言及していない部分は第1の実施形態と同じである。その変更部分について、図10を参照しながら説明する。   The present embodiment is obtained by changing a part of the specifications of the first embodiment, and the parts not particularly mentioned are the same as those of the first embodiment. The changed part will be described with reference to FIG.

本実施形態は、SSDに対するホスト1500のライトアクセスが、図10(a)のように、ある特定の論理アドレス範囲FWRに偏って多くなることが明らかな場合に効果がある。   This embodiment is effective when it is clear that the write access of the host 1500 to the SSD increases in a certain logical address range FWR as shown in FIG.

LBA空間4000の中でこのFWRの範囲10010〜10030に限っては、図10(b)のように、論理ブロックサイズを例えば3840KBに縮小してアドレス分割を実施し、その各論理ブロック(例えば10020)を30個のLMUで構成する。   In the LBA space 4000, only within this FWR range 10010 to 10030, as shown in FIG. 10B, the logical block size is reduced to 3840 KB, for example, and address division is performed. ) Is composed of 30 LMUs.

本実施形態のSSDは、これら30個のLMUの割り付け先のPMUを30個有するような消去単位EU10100を作る。EU10100は、図8の8130のタイプに割り付けられたEUの一種であるが、データ領域と3次キャッシュ領域の配分比が特別である。すなわち、各構成ブロックのページ0〜59の60ページでデータ領域10200を構成し、残りのページ60〜127の68ページで3次キャッシュ領域10300を構成する。このように、3次キャッシュ領域を拡張したEUは、ランダム2次キャッシュから追い出されたデータを多く蓄積できる。図10(a)のようなアクセス条件下では、FWRの範囲のライトデータはランダム2次キャッシュから追い出される頻度が高いが、このように拡張された3次キャッシュ領域に追い出しデータが記録されることで、その空き領域がゼロになるまでの時間は第1の実施形態の場合より(この例では8.5倍)長くなる。その結果、ガベッジコレクションの発生頻度を第1の実施形態に比べてさらに小さくすることができる。すなわち、ライト性能はさらに向上する。   The SSD of this embodiment creates an erase unit EU10100 having 30 PMUs to which these 30 LMUs are allocated. The EU 10100 is a kind of EU assigned to the type 8130 in FIG. 8, but the distribution ratio between the data area and the tertiary cache area is special. That is, 60 pages of pages 0 to 59 of each constituent block constitute a data area 10200, and 68 pages of remaining pages 60 to 127 constitute a tertiary cache area 10300. In this way, the EU that has expanded the tertiary cache area can accumulate a large amount of data evicted from the random secondary cache. Under the access conditions as shown in FIG. 10A, the write data in the FWR range is frequently evicted from the random secondary cache, but the evicted data is recorded in the extended tertiary cache area. Thus, the time until the free space becomes zero is longer than that in the first embodiment (8.5 times in this example). As a result, the occurrence frequency of garbage collection can be further reduced as compared with the first embodiment. That is, the write performance is further improved.

以上、本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、フラッシュメモリはNANDフラッシュメモリの他、NORフラッシュメモリを用いるものであってもよい。SDRAMの容量や、フラッシュメモリのページサイズ・ブロックサイズ・ブロック数は採用するメモリ製品によって異なるものである。それらのメモリチップの入出力バス幅も同様に異なる。また、1つのメモリセルに記録可能なビット数は、前記実施形態では、MLC方式で2ビット、SLC方式で1ビットだが、本発明はこれらの記録可能ビット数に限定されない。1セルに複数ビットを記録するライト方式と、それより少ないビットを前者より短い時間で1セルに記録するライト方式とを持つフラッシュメモリであればどんなものでもよい。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. . For example, the flash memory may be a NAND flash memory or a NOR flash memory. The capacity of the SDRAM and the page size, block size, and number of blocks of the flash memory vary depending on the memory product employed. The input / output bus widths of these memory chips are also different. The number of bits that can be recorded in one memory cell is 2 bits in the MLC method and 1 bit in the SLC method, but the present invention is not limited to these recordable bits. Any flash memory may be used as long as it has a write method for recording a plurality of bits in one cell and a write method for recording fewer bits in one cell in a shorter time than the former.

この実施例の記憶装置は、1インチや1.8インチのように前記2.5や3.5インチそれよりも小さな外形サイズのHDDパッケージと同等パッケージに搭載されるもの、あるいは独自に開発されたパッケージあるいは単に実装基板上に搭載されるもの等種々の実施形態を採ることができる。
以上のように、本発明の実施形態によれば、多値フラッシュメモリを用いて構成された半導体記憶装置において、ホストから小さなサイズのデータが一部のアドレス範囲内でランダムにライトされる時に、多値フラッシュメモリの通常の書き込み時間より平均的に短い時間で書き込みが実施され、また、多値フラッシュメモリのブロックデータの移し替え発生時のブロック消去頻度が低減されることにより、ホストライト性能と書き換え寿命を向上するという効果を奏することが可能となる。
The storage device of this embodiment is one that is mounted in a package equivalent to the HDD package having an outer size smaller than 2.5 or 3.5 inches, such as 1 inch or 1.8 inches, or originally developed. Various embodiments such as a simple package or simply mounted on a mounting substrate can be adopted.
As described above, according to the embodiment of the present invention, in a semiconductor memory device configured using a multi-level flash memory, when data of a small size is randomly written from a host within a partial address range, The host write performance is improved by performing writing in an average shorter time than the normal writing time of the multi-level flash memory, and reducing the frequency of block erasing when the block data of the multi-level flash memory is transferred. It is possible to achieve the effect of improving the rewrite life.

本発明の実施形態を適用したSSDの内部構造を示す図である。It is a figure which shows the internal structure of SSD which applied embodiment of this invention. 多値フラッシュメモリの物理構造とアクセス仕様を示す図である。It is a figure which shows the physical structure and access specification of a multi-value flash memory. SSDにおいてフラッシュメモリブロックを消去する際に用いる消去単位EUの構造を示す図である。It is a figure which shows the structure of the erasing unit EU used when erasing a flash memory block in SSD. SSDにおいて論理アドレス空間のデータを消去単位EU内の物理ページに割り付ける方法を示す図である。It is a figure which shows the method to allocate the data of logical address space to the physical page in erase unit EU in SSD. ホストによる16KBを超えるデータライトに対して、SSDのデータ格納処理方法を示す図である。It is a figure which shows the data storage processing method of SSD with respect to the data write exceeding 16KB by a host. ホストによる16KB以下のデータライトに対して、SSDのデータ格納処理方法を示す図である。It is a figure which shows the data storage processing method of SSD with respect to the data write of 16KB or less by a host. ホストによる16KB以下のデータライトに対して、ランダム2次キャッシュからのデータ追い出し処理方法を示すフローチャートである。It is a flowchart which shows the data eviction processing method from a random secondary cache with respect to the data write of 16KB or less by a host. SSDに搭載されたフラッシュメモリにおける消去単位EUの割り付けタイプとそのライフサイクルを示す図である。It is a figure which shows the allocation type of the erasing unit EU in the flash memory mounted in SSD, and its life cycle. 256KBアドレス範囲の16KBランダムライトにおいて、SSD内のデータ格納状況の変化を示す図である。It is a figure which shows the change of the data storage condition in SSD in 16KB random write of a 256KB address range. 本発明の第2の実施形態であるSSDにおいて、一部の論理アドレス空間のデータを消去単位EU内の物理ページに割り付ける方法を示す図である。It is a figure which shows the method to allocate the data of a part of logical address space to the physical page in erase unit EU in SSD which is the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

1000…SSD、1020…コントローラチップ、1100〜1107…フラッシュメモリチップ、1252…SDRAMチップ、1270…中央処理装置CPU、1500…ホスト、3200…消去単位EU、3231…データ領域、3232…3次キャッシュ領域、6000…ランダム1次キャッシュ、6300…ランダム2次キャッシュ。 1000 ... SSD, 1020 ... controller chip, 1100 to 1107 ... flash memory chip, 1252 ... SDRAM chip, 1270 ... central processing unit CPU, 1500 ... host, 3200 ... erase unit EU, 3231 ... data area, 3232 ... tertiary cache area 6000 ... random primary cache, 6300 ... random secondary cache.

Claims (4)

不揮発性メモリを制御するコントローラとを搭載した半導体記憶装置であって、
前記不揮発性メモリは、複数のブロックで構成され、前記ブロックはそれぞれ複数のページで構成され、前記ページはそれぞれ複数のセルで構成され、
前記ページは、1つのセルに複数ビットを記録する第1のモードでライト可能であり、前記ページはまた、1つのセルに前記複数ビットよりも少数のビットを、前記第1のモードでのライトに要する時間よりも短い時間で記録する第2のモードでライト可能であり、
前記コントローラは、前記半導体記憶装置の外部からのデータのライト要求に応答して、前記第2のモードを用いて前記データを前記不揮発性メモリの第1のページに書き込んだ後、前記第1のモードを用いて前記第1のページ内の前記データの一部を前記不揮発性メモリの第2のページに書き込むことを特徴とする前記半導体記憶装置。
A semiconductor memory device including a controller for controlling a nonvolatile memory,
The nonvolatile memory includes a plurality of blocks, each of the blocks includes a plurality of pages, each of the pages includes a plurality of cells,
The page can be written in a first mode that records multiple bits in one cell, and the page can also write fewer bits than the multiple bits in one cell in the first mode. Can be written in the second mode for recording in a time shorter than the time required for
In response to a data write request from the outside of the semiconductor memory device, the controller writes the data to the first page of the nonvolatile memory using the second mode, and then The semiconductor memory device, wherein a part of the data in the first page is written into a second page of the nonvolatile memory using a mode.
請求項1に記載の半導体記憶装置であって、
前記第1のモードを用いて前記第1のページ内の前記データの一部を前記第2のページに書き込んだ後、
前記第1のページを含む第1のブロックを消去することを特徴とする前記半導体記憶装置。
The semiconductor memory device according to claim 1,
After writing a portion of the data in the first page to the second page using the first mode,
The semiconductor memory device, wherein the first block including the first page is erased.
請求項1または2に記載の半導体記憶装置であって、
前記第2のページを含む第2のブロックは、前記第2のページ以外の第3のページを含み、
前記第3のページには、前記第2のページに書かれる前記データの一部に対応する第1論理アドレスを含む第1アドレス範囲のデータを格納している
ことを特徴とする前記半導体記憶装置。
The semiconductor memory device according to claim 1, wherein
The second block including the second page includes a third page other than the second page;
The semiconductor memory device, wherein the third page stores data in a first address range including a first logical address corresponding to a part of the data written in the second page .
請求項3に記載の半導体記憶装置であって、
前記コントローラは、
前記半導体記憶装置の外部からのデータのライト要求に応答して、
前記第2のモードを用いて前記データを第4のページに書き込んだ後、
前記第1のモードを用いて前記第4のページ内の前記データの一部を第5のページに書き込み、
前記第5のページを含む第3のブロックは、前記第5のページ以外の第6のページを含み、前記第6のページには、前記第5のページに書かれる前記データの一部に対応する第2論理アドレスを含む第2アドレス範囲のデータを格納し、
前記第2アドレス範囲に対する前記ライト要求の頻度が前記第1アドレス範囲に対する前記ライト要求の頻度よりも多い場合には、
前記第3のブロックに含まれる前記第5のページの数を、前記第2のブロックに含まれる前記第2のページの数より多く持たせることを特徴とする前記半導体記憶装置。
The semiconductor memory device according to claim 3,
The controller is
In response to a data write request from the outside of the semiconductor memory device,
After writing the data to the fourth page using the second mode,
Writing a portion of the data in the fourth page to a fifth page using the first mode;
The third block including the fifth page includes a sixth page other than the fifth page, and the sixth page corresponds to a part of the data written in the fifth page. Storing data in a second address range including a second logical address
If the frequency of the write request for the second address range is greater than the frequency of the write request for the first address range,
The semiconductor memory device, wherein the number of the fifth pages included in the third block is greater than the number of the second pages included in the second block.
JP2008331865A 2008-12-26 2008-12-26 Semiconductor storage device Pending JP2010152778A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008331865A JP2010152778A (en) 2008-12-26 2008-12-26 Semiconductor storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008331865A JP2010152778A (en) 2008-12-26 2008-12-26 Semiconductor storage device

Publications (1)

Publication Number Publication Date
JP2010152778A true JP2010152778A (en) 2010-07-08

Family

ID=42571765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008331865A Pending JP2010152778A (en) 2008-12-26 2008-12-26 Semiconductor storage device

Country Status (1)

Country Link
JP (1) JP2010152778A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068986A (en) * 2010-09-24 2012-04-05 Toshiba Corp Memory system
US8976589B2 (en) 2013-03-14 2015-03-10 Kabushiki Kaisha Toshiba Storage device
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
CN113138713A (en) * 2020-01-16 2021-07-20 铠侠股份有限公司 Memory system
CN115831193A (en) * 2021-09-17 2023-03-21 铠侠股份有限公司 Storage system and storage control method
US11645001B2 (en) 2020-08-26 2023-05-09 Kioxia Corporation Memory system and controlling method of memory system
JP2023135390A (en) * 2022-03-15 2023-09-28 キオクシア株式会社 information processing equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029259A2 (en) * 2005-09-09 2007-03-15 Sandisk Il Ltd. Front memory storage system and method
JP2007094764A (en) * 2005-09-29 2007-04-12 Toshiba Corp Memory system
JP2008171257A (en) * 2007-01-12 2008-07-24 Toshiba Corp Host device and memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029259A2 (en) * 2005-09-09 2007-03-15 Sandisk Il Ltd. Front memory storage system and method
JP2009510549A (en) * 2005-09-09 2009-03-12 サンディスク アイエル リミテッド Front memory storage system and method
JP2007094764A (en) * 2005-09-29 2007-04-12 Toshiba Corp Memory system
JP2008171257A (en) * 2007-01-12 2008-07-24 Toshiba Corp Host device and memory system

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893238B2 (en) 2010-09-24 2024-02-06 Kioxia Corporation Method of controlling nonvolatile semiconductor memory
US8832357B2 (en) 2010-09-24 2014-09-09 Kabushiki Kaisha Toshiba Memory system having a plurality of writing mode
US9910597B2 (en) 2010-09-24 2018-03-06 Toshiba Memory Corporation Memory system having a plurality of writing modes
US10055132B2 (en) 2010-09-24 2018-08-21 Toshiba Memory Corporation Memory system and method of controlling memory system
US10871900B2 (en) 2010-09-24 2020-12-22 Toshiba Memory Corporation Memory system and method of controlling memory system
US10877664B2 (en) 2010-09-24 2020-12-29 Toshiba Memory Corporation Memory system having a plurality of writing modes
JP2012068986A (en) * 2010-09-24 2012-04-05 Toshiba Corp Memory system
US11216185B2 (en) 2010-09-24 2022-01-04 Toshiba Memory Corporation Memory system and method of controlling memory system
US11579773B2 (en) 2010-09-24 2023-02-14 Toshiba Memory Corporation Memory system and method of controlling memory system
US12265706B2 (en) 2010-09-24 2025-04-01 Kioxia Corporation Memory system with nonvolatile semiconductor memory
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
US8976589B2 (en) 2013-03-14 2015-03-10 Kabushiki Kaisha Toshiba Storage device
CN113138713A (en) * 2020-01-16 2021-07-20 铠侠股份有限公司 Memory system
CN113138713B (en) * 2020-01-16 2023-09-19 铠侠股份有限公司 memory system
US11645001B2 (en) 2020-08-26 2023-05-09 Kioxia Corporation Memory system and controlling method of memory system
CN115831193A (en) * 2021-09-17 2023-03-21 铠侠股份有限公司 Storage system and storage control method
JP2023135390A (en) * 2022-03-15 2023-09-28 キオクシア株式会社 information processing equipment
JP7746200B2 (en) 2022-03-15 2025-09-30 キオクシア株式会社 Information processing device

Similar Documents

Publication Publication Date Title
US10204042B2 (en) Memory system having persistent garbage collection
JP5728672B2 (en) Hybrid memory management
KR101551584B1 (en) Block management schemes in hybrid slc/mlc memory
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
TWI399644B (en) Block management method for a non-volatile memory
CN101874239B (en) Different storage devices is write data into based on write frequency
CN108121503B (en) NandFlash address mapping and block management method
JP6017065B2 (en) Storage system and cache control method
US20100332726A1 (en) Structure and method for managing writing operation on mlc flash memory
JP5808854B2 (en) Storage system and storage method
JP4762261B2 (en) Memory system
JP2021043678A (en) Memory system and method
JP2012203443A (en) Memory system and control method of memory system
JP2010108246A (en) Storage device and method for managing data storage area
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
US20210342094A1 (en) Read Performance of Memory Devices
KR101403922B1 (en) Apparatus and method for data storing according to an access degree
TWI808011B (en) Data processing method and the associated data storage device
JP2010152778A (en) Semiconductor storage device
JP2022143231A (en) Storage device, storage system, and control method
Margaglia et al. Improving MLC flash performance and endurance with extended P/E cycles
CN114391139A (en) Garbage collection in memory components using adjusted parameters
CN118796119A (en) Memory management method and storage device
JP4703673B2 (en) Memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130312