JP2014059889A - Memory system, nonvolatile memory device, method for controlling nonvolatile memory device, and program - Google Patents

Memory system, nonvolatile memory device, method for controlling nonvolatile memory device, and program Download PDF

Info

Publication number
JP2014059889A
JP2014059889A JP2013224797A JP2013224797A JP2014059889A JP 2014059889 A JP2014059889 A JP 2014059889A JP 2013224797 A JP2013224797 A JP 2013224797A JP 2013224797 A JP2013224797 A JP 2013224797A JP 2014059889 A JP2014059889 A JP 2014059889A
Authority
JP
Japan
Prior art keywords
data
ssd
area
logical address
lba
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.)
Granted
Application number
JP2013224797A
Other languages
Japanese (ja)
Other versions
JP5649709B2 (en
Inventor
Daisuke Hashimoto
大輔 橋本
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013224797A priority Critical patent/JP5649709B2/en
Publication of JP2014059889A publication Critical patent/JP2014059889A/en
Application granted granted Critical
Publication of JP5649709B2 publication Critical patent/JP5649709B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To increase the speed of a read operation and increase the number of free blocks that can be used for writing.SOLUTION: A memory system includes: a nonvolatile memory device 3 that has a storage area for storing first data; and an information processing device 2. The information processing device 2 reads data from a first logical address area of the nonvolatile memory device, and includes a first control circuit that if the read data is identical to the first data, provides a deletion notification for associating the first logical address area with the storage area, to the nonvolatile memory device 3. The nonvolatile memory device includes a nonvolatile storage medium 13 and a second control circuit 11. The second control circuit 11 rewrites a management table 12A so as to associate a logic address specified by the deletion notification with the storage area, and transmits the first data to the information processing device 2 if the logic address of a read instruction received from the information processing device 2 specifies the storage area.

Description

本発明の実施形態は、メモリシステム、不揮発性記憶装置及びその制御方法に関する。   Embodiments described herein relate generally to a memory system, a nonvolatile storage device, and a control method thereof.

オペレーティングシステム(OS)上において外部記憶装置(例えば、HDD(Hard D
isk Drive)、SSD(Solid State Drive))のファイルデータが削除される場合、OS
上でのデータの管理情報が削除されるだけで、外部記憶装置からは実際にはデータが削除
されないようにする方式がある。OS上でデータ削除のたびに外部記憶装置で削除処理が
行われるわけではないので、削除処理が行われない分、外部記憶装置の動作のパフォーマ
ンスが向上する。この方式は特に、アクセスの遅いHDDにおいて有効である。
An external storage device (eg, HDD (Hard D
isk Drive), SSD (Solid State Drive)) file data is deleted
There is a method in which only data management information is deleted, and data is not actually deleted from the external storage device. Since deletion processing is not performed in the external storage device every time data is deleted on the OS, the performance of the operation of the external storage device is improved by the amount that the deletion processing is not performed. This method is particularly effective for a slow-access HDD.

一方で、OS上では削除したはずのデータが外部記憶装置では有効なデータであると認
識されているため(これを無効データと呼ぶ)、外部記憶装置上でデータの存在しない空
き領域が、OSが認識している空き領域よりも常に少なくなってしまう。特に、外部記憶
装置の空き領域が枯渇すると、論理アドレスと物理アドレスとが必ずしも一対一対応しな
いSSDにおいて大きな問題となる場合がある。
On the other hand, since the data that should have been deleted on the OS is recognized as valid data in the external storage device (this is referred to as invalid data), a free area where no data exists on the external storage device Will always be less than the free space it recognizes. In particular, when the free area of the external storage device is exhausted, there may be a serious problem in an SSD in which a logical address and a physical address do not necessarily correspond one-to-one.

特開2010−157133号公報JP 2010-157133 A 特開2010−161199号公報JP 2010-161199 A 特開2011−29586号公報JP 2011-29586 A

実施形態は、読み出し動作を高速化し、かつ書き込みに利用可能なフリーブロックを増
加させることが可能なメモリシステム、不揮発性記憶装置及びその制御方法を提供する。
Embodiments provide a memory system, a non-volatile memory device, and a control method thereof that can speed up a read operation and increase the number of free blocks that can be used for writing.

実施形態に係るメモリシステムは、第1のデータを格納する記憶領域を有する不揮発性
記憶装置と、前記不揮発性記憶装置と通信を行う情報処理装置とを有するメモリシステム
であって、前記情報処理装置は、前記不揮発性記憶装置の第1の論理アドレス領域からデ
ータを読み出し、前記第1の論理アドレス領域に対応する読み出しデータが前記第1のデ
ータと同じである場合に、前記不揮発性記憶装置に、前記第1の論理アドレス領域を前記
記憶領域に関連付けるための削除通知を行う第1の制御回路を具備する。前記不揮発性記
憶装置は、不揮発性記憶媒体と、論理アドレスと物理アドレスとを関連付ける管理テーブ
ルと、前記削除通知により指定された論理アドレスを前記記憶領域に関連付けるように前
記管理テーブルを書き換え、前記情報処理装置から受信した読み出し命令に含まれる論理
アドレスが前記記憶領域を指定している場合に、前記第1のデータを前記情報処理装置に
送信する第2の制御回路と、を具備する。
A memory system according to an embodiment is a memory system including a non-volatile storage device having a storage area for storing first data, and an information processing device that communicates with the non-volatile storage device. Reads data from the first logical address area of the non-volatile storage device, and when the read data corresponding to the first logical address area is the same as the first data, the non-volatile storage device And a first control circuit for performing a deletion notification for associating the first logical address area with the storage area. The non-volatile storage device rewrites the management table so as to associate a non-volatile storage medium, a logical address and a physical address, and a logical address specified by the deletion notification with the storage area, and the information And a second control circuit that transmits the first data to the information processing apparatus when a logical address included in a read command received from the processing apparatus designates the storage area.

第1の実施形態に係るメモリシステムのブロック図。1 is a block diagram of a memory system according to a first embodiment. 管理テーブルの一部を説明する図。The figure explaining a part of management table. 第1の実施形態に係るホスト装置のブロック図。1 is a block diagram of a host device according to a first embodiment. NAND型フラッシュメモリに格納されるデータの一部を説明する図。The figure explaining a part of data stored in NAND type flash memory. デスクトップコンピュータの概略図。Schematic diagram of a desktop computer. ポータブルコンピュータの概略図。1 is a schematic diagram of a portable computer. SSDの書き込み動作を示すフローチャート。5 is a flowchart showing an SSD write operation. SSDのNAND整理処理を示すフローチャート。The flowchart which shows the NAND arrangement | sequence process of SSD. SSDの削除通知処理を示すフローチャート。The flowchart which shows the deletion notification process of SSD. SSDの読み出し動作を示すフローチャート。7 is a flowchart showing an SSD read operation. ホスト装置の最適化処理を示すフローチャート。The flowchart which shows the optimization process of a host apparatus. ホスト装置の最適化フラグ設定処理を示すフローチャート。The flowchart which shows the optimization flag setting process of a host apparatus. 最適化プログラムのGUIの一例を示す概略図。Schematic which shows an example of GUI of an optimization program. “0”で埋め尽くされたデータの割合と平均読み出し速度との関係を示すグラフ。The graph which shows the relationship between the ratio of the data filled up with "0", and average reading speed. “0”で埋め尽くされたデータの割合とフリーブロック量との関係を示すグラフ。The graph which shows the relationship between the ratio of the data filled up with "0", and the amount of free blocks. 第2の実施形態に係るホスト装置の最適化処理を示すフローチャート。9 is a flowchart showing optimization processing of the host device according to the second embodiment. 第3の実施形態に係るホスト装置の最適化フラグ設定処理を示すフローチャート。10 is a flowchart showing optimization flag setting processing of the host device according to the third embodiment. 第4の実施形態に係るSSDの最適化起動情報の生成処理を示すフローチャート。10 is a flowchart showing a process for generating optimized startup information for an SSD according to a fourth embodiment. ホスト装置の最適化フラグ設定処理を示すフローチャート。The flowchart which shows the optimization flag setting process of a host apparatus. 第5の実施形態に係るホスト装置の最適化処理を示すフローチャート。10 is a flowchart showing optimization processing of the host device according to the fifth embodiment. 第6の実施形態に係るメモリシステムのブロック図。The block diagram of the memory system which concerns on 6th Embodiment. 管理テーブルの一部を説明する図。The figure explaining a part of management table. SSDの最適化処理を示すフローチャート。The flowchart which shows the optimization process of SSD. 比較元データ領域がDRAM上に割り当てられる場合のメモリシステムのブロック図。The block diagram of a memory system in case a comparison source data area is allocated on DRAM. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 比較元データ領域がSSDコントローラ上に割り当てられる場合のメモリシステムのブロック図。The block diagram of a memory system in case a comparison source data area is allocated on a SSD controller. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 比較元データ領域がNAND型フラッシュメモリ上に割り当てられる場合のメモリシステムのブロック図。The block diagram of a memory system in case a comparison source data area is allocated on a NAND type flash memory. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 物理アドレスのマッピングテーブルを説明する図。The figure explaining the mapping table of a physical address. 第7の実施形態に係るホスト装置のブロック図。FIG. 10 is a block diagram of a host device according to a seventh embodiment. SSDのNAND整理処理を示すフローチャート。The flowchart which shows the NAND arrangement | sequence process of SSD. SSDの削除通知処理を示すフローチャート。The flowchart which shows the deletion notification process of SSD. SSDの読み出し動作を示すフローチャート。7 is a flowchart showing an SSD read operation. ホスト装置の最適化処理を示すフローチャート。The flowchart which shows the optimization process of a host apparatus. 実施例1に係るホスト装置の最適化処理を示すフローチャート。5 is a flowchart illustrating optimization processing of the host device according to the first embodiment. 実施例2に係るホスト装置の比較元データ書き換え処理を示すフローチャート。10 is a flowchart illustrating comparison source data rewriting processing of the host device according to the second embodiment. 実施例2に係るSSDの比較元データ書き換え処理を示すフローチャート。10 is a flowchart showing SSD comparison source data rewriting processing according to the second embodiment; 第8の実施形態に係るSSDの最適化処理を示すフローチャート。20 is a flowchart showing SSD optimization processing according to the eighth embodiment. 実施例1に係る論理アドレス及びデータの一例を示す図。FIG. 3 is a diagram illustrating an example of logical addresses and data according to the first embodiment. 0-fillセクタの存在確率分布を示す図。The figure which shows existence probability distribution of 0-fill sector. 実施例2に係る論理アドレス及びデータの一例を示す図。FIG. 10 is a diagram illustrating an example of logical addresses and data according to the second embodiment. 0-fillセクタ及び1-fillセクタの存在確率分布を示す図。The figure which shows the existence probability distribution of 0-fill sector and 1-fill sector. 実施例3に係る論理アドレス及びデータの一例を示す図。FIG. 10 is a diagram illustrating an example of logical addresses and data according to the third embodiment. 3種類のデータパターンの存在確率分布を示す図。The figure which shows the existence probability distribution of three types of data patterns. 実施例6に係る論理アドレス及びデータの一例を示す図。FIG. 20 is a diagram illustrating an example of logical addresses and data according to the sixth embodiment. 最適化処理によって解放されるセクタを説明する図。The figure explaining the sector released by an optimization process. 実施例7に係る関数fの決定方法を説明する図。FIG. 10 is a diagram for explaining a method for determining a function f according to a seventh embodiment.

SSDの空き領域が枯渇している、すなわちSSDコントローラに有効なデータを全く
持っていないと認識されているNAND型フラッシュメモリの物理ブロック(フリーブロ
ック)が枯渇している場合、そのSSDに書き込みを行うと、SSDコントローラに有効
なデータを持っていると認識されているNAND型フラッシュメモリの物理ブロック(ア
クティブブロック)上の無効なデータ領域を検索し、有効なデータを整理(NAND整理
)して新たなフリーブロックを確保する処理に負荷がかかり、書き込みのパフォーマンス
が著しく劣化してしまう。
When the free space of the SSD is depleted, that is, when the physical block (free block) of the NAND flash memory that is recognized as having no valid data in the SSD controller is depleted, write to the SSD Then, the invalid data area on the physical block (active block) of the NAND flash memory recognized as having valid data in the SSD controller is searched, and valid data is organized (NAND organized). A load is applied to the process of securing a new free block, and the writing performance is significantly deteriorated.

また、NAND型フラッシュメモリに無効データが多い、すなわちSSD上での空き領
域が枯渇している状況で書き込みが行われると、特定の領域に書き込みが集中したり、頻
繁に発生するNAND整理でNAND型フラッシュメモリの余分な消去が発生したりする
ため、SSDの信頼性が著しく劣化する可能性がある。
In addition, when writing is performed in a situation where there is a lot of invalid data in the NAND flash memory, that is, when the free area on the SSD is exhausted, the writing concentrates on a specific area, or NAND occurs due to frequent NAND arrangement. Since extra erasure of the flash memory may occur, the reliability of the SSD may be significantly deteriorated.

以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、本
発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の
形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以
下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複
説明は必要な場合にのみ行う。
Hereinafter, embodiments will be described with reference to the drawings. The following embodiments exemplify apparatuses and methods for embodying the technical idea of the present invention, and the technical idea of the present invention is specified by the shape, structure, arrangement, etc. of components. Is not to be done. In the following description, elements having the same function and configuration are denoted by the same reference numerals, and redundant description will be given only when necessary.

[第1の実施形態]
[1.メモリシステムの構成]
図1は、第1の実施形態に係るメモリシステム1のブロック図である。メモリシステム
1は、ホスト装置(情報処理装置)2と、外部記憶装置としての不揮発性記憶装置3とを
備えている。不揮発性記憶装置3として、本実施形態では、SSD(Solid State Drive
)を例に挙げて説明する。
[First Embodiment]
[1. Memory system configuration]
FIG. 1 is a block diagram of a memory system 1 according to the first embodiment. The memory system 1 includes a host device (information processing device) 2 and a nonvolatile storage device 3 as an external storage device. In the present embodiment, the nonvolatile storage device 3 is an SSD (Solid State Drive).
) As an example.

SSD3は、インターフェースコントローラ10、SSDコントローラ(制御回路)1
1、メインメモリとしてのDRAM12、不揮発性記憶媒体としてのNAND型フラッシ
ュメモリ13、及びこれらを接続するバスを備えている。
The SSD 3 includes an interface controller 10 and an SSD controller (control circuit) 1
1. A DRAM 12 as a main memory, a NAND flash memory 13 as a nonvolatile storage medium, and a bus connecting them.

インターフェースコントローラ10は、ホスト装置2とのインターフェース処理を実行
する。インターフェースコントローラ10は、例えばSATA(Serial Advanced Techno
logy Attachment)規格に準拠した通信インターフェースでホスト装置2に接続され、S
ATA規格に準拠したインターフェース処理を実行する。インターフェース規格について
は、SATA以外に、SAS(Serial Attached SCSI)やUSB(universal serial bus
)などを用いてもよい。
The interface controller 10 executes interface processing with the host device 2. The interface controller 10 is, for example, SATA (Serial Advanced Techno
connected to the host device 2 with a communication interface conforming to the logy Attachment) standard, and S
An interface process conforming to the ATA standard is executed. Regarding interface standards, in addition to SATA, SAS (Serial Attached SCSI) and USB (universal serial bus)
) Etc. may be used.

SSDコントローラ11は、SSD3全体の各種動作を制御する。SSDコントローラ
11は、NAND型フラッシュメモリ13に格納されているプログラムをDRAM12に
読み出して所定の処理を実行することにより、各種テーブルをDRAM12に作成する。
また、SSDコントローラ11は、ホスト装置2から書き込み命令、読み出し命令、消去
命令などを受信し、これらの命令に応答してNAND型フラッシュメモリ13に所定の処
理を実行する。
The SSD controller 11 controls various operations of the entire SSD 3. The SSD controller 11 creates various tables in the DRAM 12 by reading the program stored in the NAND flash memory 13 to the DRAM 12 and executing predetermined processing.
Further, the SSD controller 11 receives a write command, a read command, an erase command, etc. from the host device 2 and executes predetermined processing on the NAND flash memory 13 in response to these commands.

NAND型フラッシュメモリ13は、(n+1)個のNANDメモリチップChip0
〜Chipnによって構成されている。nは、0以上の整数である。NANDメモリチッ
プChip0〜Chipnは、並列動作が可能なように構成されていてもよい。各NAN
Dメモリチップは、複数のフラッシュメモリセルからなるメモリセルアレイ、及び周辺回
路(例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュなど)
を備えている。NAND型フラッシュメモリ13のメモリセルアレイは、複数のブロック
から構成され、各ブロックは、複数のページから構成されている。ブロックは、データ消
去の最小単位であり、ページは、データ書き込み及び読み出しの最小単位である。
The NAND flash memory 13 includes (n + 1) NAND memory chips Chip0.
~ Chipn. n is an integer of 0 or more. The NAND memory chips Chip0 to Chipn may be configured to be capable of parallel operation. Each NAN
The D memory chip includes a memory cell array composed of a plurality of flash memory cells and peripheral circuits (for example, a row decoder, a column decoder, a page buffer, a data cache, etc.)
It has. The memory cell array of the NAND flash memory 13 is composed of a plurality of blocks, and each block is composed of a plurality of pages. A block is a minimum unit of data erasing, and a page is a minimum unit of data writing and reading.

NAND型フラッシュメモリ13のメモリセルアレイを構成するメモリセルトランジス
タは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Se
miconductor Field Effect Transistor)から構成される。積層ゲート構造は、半導体基
板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び浮遊ゲー
ト電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセ
ルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、こ
の閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタは、1ビットを記
憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように
構成されていてもよい。また、メモリセルトランジスタは浮遊ゲート電極を有する構造に
限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層として
の窒化界面に電子をトラップさせることで閾値電圧を調整可能な構造であってもよい。M
ONOS型のメモリセルトランジスタについても同様に、1ビットを記憶するように構成
されていてもよいし、多値を記憶するように構成されていてもよい。また、不揮発性記憶
媒体として、特開2010−161199や特開2011−29586に記述されるよう
な3次元的にメモリセルが配置された半導体記憶媒体であってもよい。
A memory cell transistor constituting the memory cell array of the NAND flash memory 13 is a MOSFET (Metal Oxide Se) having a stacked gate structure formed on a semiconductor substrate.
miconductor Field Effect Transistor). The stacked gate structure includes a charge storage layer (floating gate electrode) formed on a semiconductor substrate with a gate insulating film interposed therebetween, and a control gate electrode formed on the floating gate electrode with an inter-gate insulating film interposed therebetween. It is out. The memory cell transistor changes the threshold voltage according to the number of electrons stored in the floating gate electrode, and stores data according to the difference in the threshold voltage. The memory cell transistor may be configured to store 1 bit, or may be configured to store multiple values (data of 2 bits or more). The threshold voltage can be adjusted by trapping electrons at the nitriding interface as a charge storage layer, such as a MONOS (Metal-Oxide-Nitride-Oxide-Silicon) type, as well as a structure having a floating gate electrode. It may be a simple structure. M
Similarly, the ONOS type memory cell transistor may be configured to store one bit or may be configured to store multiple values. Further, the nonvolatile storage medium may be a semiconductor storage medium in which memory cells are arranged three-dimensionally as described in Japanese Patent Application Laid-Open Nos. 2010-161199 and 2011-29586.

DRAM12は、ホスト装置2とNAND型フラッシュメモリ13との間でのデータ転
送用キャッシュ、及びSSDコントローラ11の作業用メモリなどとして機能する。DR
AM12の作業領域用メモリに記憶されるものとしては、起動時などにNAND型フラッ
シュメモリ13から読み出される管理テーブルや関数fなどがある。DRAM12は、管
理テーブルを格納する記憶領域12A、及び関数fを格納する記憶領域12Bを含んでい
る。管理テーブル及び関数fについての詳細は後述する。メインメモリとしては、DRA
M以外のメモリを用いてもよい。メインメモリとしては、ランダムアクセスメモリ(RA
M)を用いることが望ましい。メインメモリとしては、DRAMの他に、SRAM、Fe
RAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random
Access Memory)、PCRAM(Phase Change Random Access Memory)などを用いてもよ
い。また、上記メインメモリは、独立したチップとしてSSD基板上に実装してもよいし
、組み込み型メモリとしてSSDコントローラ内に実装してもよい。
The DRAM 12 functions as a cache for data transfer between the host device 2 and the NAND flash memory 13 and a working memory for the SSD controller 11. DR
What is stored in the work area memory of the AM 12 includes a management table and a function f read from the NAND flash memory 13 at the time of startup or the like. The DRAM 12 includes a storage area 12A for storing the management table and a storage area 12B for storing the function f. Details of the management table and the function f will be described later. As main memory, DRA
A memory other than M may be used. As the main memory, random access memory (RA
It is desirable to use M). As main memory, in addition to DRAM, SRAM, Fe
RAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random)
(Access Memory), PCRAM (Phase Change Random Access Memory), or the like may be used. The main memory may be mounted on the SSD substrate as an independent chip, or may be mounted in the SSD controller as an embedded memory.

図2は、DRAM12に格納される管理テーブルの一部を説明する図である。ホスト装
置2がSSD3へ命令を送信すると、インターフェースコントローラ10を介してその命
令がSSDコントローラ11に送られる。SSDコントローラ11は、受信した命令を処
理する。その際、SSDコントローラ11は、DRAM12上の管理テーブルを参照する
ことで、適宜ホスト装置2より受信した論理アドレスを物理アドレスに変換する。論理ア
ドレスとは、ホスト装置2で管理しているアドレスであり、物理アドレスとは、SSD3
で管理している実アドレスである。
FIG. 2 is a diagram for explaining a part of the management table stored in the DRAM 12. When the host device 2 sends a command to the SSD 3, the command is sent to the SSD controller 11 via the interface controller 10. The SSD controller 11 processes the received command. At that time, the SSD controller 11 refers to the management table on the DRAM 12 to appropriately convert the logical address received from the host device 2 into a physical address. The logical address is an address managed by the host device 2, and the physical address is SSD3.
This is the real address managed by.

図2に示すように、管理テーブルは、フリーブロックテーブル、アクティブブロックテ
ーブル、及びアクティブページテーブルを含む。物理ブロックID及び物理ページアドレ
スは物理アドレスに含まれる。アクティブブロックテーブルは、物理ブロックIDと論理
アドレスとを結び付けて管理しており、アクティブブロックテーブルに登録されている物
理ブロック(アクティブブロック)は、少なくともSSDコントローラ11にとっては有
効なデータを保持していることになる。フリーブロックテーブルは、論理アドレスに結び
付けられていない物理ブロックを管理している。フリーブロックテーブルに登録されてい
る物理ブロック(フリーブロック)は、論理アドレスに結び付けられていないため、有効
なデータを保持していないことになる。
As shown in FIG. 2, the management table includes a free block table, an active block table, and an active page table. The physical block ID and the physical page address are included in the physical address. The active block table manages the physical block ID and the logical address in association with each other, and the physical block (active block) registered in the active block table holds valid data at least for the SSD controller 11. It will be. The free block table manages physical blocks that are not linked to logical addresses. Since physical blocks (free blocks) registered in the free block table are not linked to logical addresses, they do not hold valid data.

アクティブページテーブルは、物理ページアドレスと論理アドレスとを結び付けて管理
しており、アクティブページテーブルに登録されている物理ページ(アクティブページ)
は、少なくともSSDコントローラ11にとっては有効なデータを保持していることにな
る。また、アクティブページテーブルに登録されている物理ページは、これが属する物理
ブロックIDと関連付けられている。なお、管理テーブルで管理されている論理アドレス
は、SSD3で管理できる最小データサイズ又はそれより大きいデータサイズのアドレス
である。
The active page table manages the physical page address and the logical address in association with each other, and the physical page (active page) registered in the active page table
Holds data valid for at least the SSD controller 11. A physical page registered in the active page table is associated with a physical block ID to which the physical page belongs. The logical address managed in the management table is an address having a minimum data size that can be managed by the SSD 3 or a data size larger than that.

次に、ホスト装置2の構成について説明する。図3は、ホスト装置2のブロック図であ
る。CPU(制御回路)20がホスト装置2における中央演算処理装置であり、ホスト装
置2における種々の演算及び制御はCPU20によって行われる。CPU20はサウスブ
リッジ21を介してSSD3や、DVD−ROMなどの光学ドライブ31の制御を行う。
CPU20は、ノースブリッジ22を介して、メインメモリとしてのDRAM23の制御
を行う。
Next, the configuration of the host device 2 will be described. FIG. 3 is a block diagram of the host device 2. A CPU (control circuit) 20 is a central processing unit in the host apparatus 2, and various calculations and controls in the host apparatus 2 are performed by the CPU 20. The CPU 20 controls the optical drive 31 such as the SSD 3 or DVD-ROM via the south bridge 21.
The CPU 20 controls the DRAM 23 as the main memory via the north bridge 22.

ユーザは、キーボード29やマウス30などの入力装置を通してホスト装置2の制御を
行い、キーボード29やマウス30からの信号はUSB(Universal Serial Bus)コント
ローラ28及びサウスブリッジ21を介してCPU20で処理される。CPU20は、ノ
ースブリッジ22及び表示コントローラ24を介してディスプレイ(表示装置)25に画
像データやテキストデータなどを送る。ユーザは、ディスプレイ25を介してホスト装置
2からの画像データやテキストデータなどを視認することができる。
A user controls the host device 2 through an input device such as a keyboard 29 and a mouse 30, and signals from the keyboard 29 and mouse 30 are processed by the CPU 20 via a USB (Universal Serial Bus) controller 28 and a south bridge 21. . The CPU 20 sends image data, text data, and the like to the display (display device) 25 via the north bridge 22 and the display controller 24. The user can visually recognize image data, text data, and the like from the host device 2 via the display 25.

CPU20は、BIOS(Basic Input/Output System)−ROM26に格納されたB
IOSを実行する。BIOSは、ハードウェア制御のためのプログラムである。その他、
CPU20は、サウスブリッジ21を介してLAN(Local Area Network)コントローラ
27を制御する。
CPU 20 is a BIOS (Basic Input / Output System) -B stored in ROM 26.
Run IOS. The BIOS is a program for hardware control. Other,
The CPU 20 controls a LAN (Local Area Network) controller 27 via the south bridge 21.

DRAM23は、CPU20の作業用メモリとして機能し、OS(Operating System)
を格納する記憶領域23A、最適化プログラムを格納する記憶領域23B、最適化フラグ
を格納する記憶領域23C、及び関数fを格納する記憶領域23Dを含んでいる。OSは
、一般的に知られているように、ホスト装置2の入出力装置を管理し、ディスクやメモリ
を管理し、ソフトウェアがホスト装置2のハードウェアを利用可能にするための制御を行
うなど、ホスト装置2全体を管理するプログラムである。最適化プログラム及び最適化フ
ラグについての詳細は後述する。OS、最適化プログラム、及び関数fは、ホスト装置2
が電源オフとなっている時は、図4に示すようにSSD3のNAND型フラッシュメモリ
13に格納されているが、ホスト装置2の起動時又はプログラム起動時に、NAND型フ
ラッシュメモリ13からDRAM23にロードされる。NAND型フラッシュメモリ13
は、OSを格納する記憶領域13A、最適化プログラムを格納する記憶領域13B、関数
fを格納する記憶領域13C、及び管理テーブルを格納する記憶領域13Dを含んでいる
。また、NAND型フラッシュメモリ13は、ユーザデータを格納する記憶領域(図示せ
ず)を含んでいる。
The DRAM 23 functions as a working memory for the CPU 20 and operates as an OS (Operating System).
, A storage area 23B for storing an optimization program, a storage area 23C for storing an optimization flag, and a storage area 23D for storing a function f. As is generally known, the OS manages input / output devices of the host device 2, manages disks and memories, and controls the software to make the hardware of the host device 2 available. A program for managing the entire host device 2. Details of the optimization program and the optimization flag will be described later. The OS, the optimization program, and the function f are the host device 2
4 is stored in the NAND flash memory 13 of the SSD 3 as shown in FIG. 4, but is loaded from the NAND flash memory 13 to the DRAM 23 when the host device 2 is started or when the program is started. Is done. NAND flash memory 13
Includes a storage area 13A for storing an OS, a storage area 13B for storing an optimization program, a storage area 13C for storing a function f, and a storage area 13D for storing a management table. The NAND flash memory 13 includes a storage area (not shown) for storing user data.

次に、メモリシステム1の構成例について説明する。メモリシステム1は、例えば、デ
スクトップコンピュータやノートブック型のポータブルコンピュータとして実現し得る。
図5は、メモリシステム1としてのデスクトップコンピュータの概略図である。
Next, a configuration example of the memory system 1 will be described. The memory system 1 can be realized as, for example, a desktop computer or a notebook portable computer.
FIG. 5 is a schematic diagram of a desktop computer as the memory system 1.

デスクトップコンピュータ1は、情報処理装置本体40、ディスプレイ25、キーボー
ド29、及びマウス30などを備えている。情報処理装置本体40は、主要なハードウェ
アが搭載されたマザーボード41、SSD3、及び電源装置42などを備えている。SS
D3は、SATAケーブルを介してマザーボード41に物理的に接続され、マザーボード
41上に実装されたサウスブリッジを介して、同じくマザーボード上に実装されたCPU
20に電気的に接続されている。電源装置42は、デスクトップコンピュータ1で使用さ
れる各種電源を発生し、電源ケーブルを介してマザーボード41やSSD3などに電源を
供給する。
The desktop computer 1 includes an information processing apparatus main body 40, a display 25, a keyboard 29, a mouse 30, and the like. The information processing apparatus main body 40 includes a motherboard 41 on which main hardware is mounted, an SSD 3, a power supply device 42, and the like. SS
D3 is a CPU that is physically connected to the motherboard 41 via a SATA cable and is also mounted on the motherboard via a south bridge mounted on the motherboard 41.
20 is electrically connected. The power supply device 42 generates various power sources used in the desktop computer 1 and supplies power to the motherboard 41, the SSD 3 and the like via a power cable.

図6は、メモリシステム1としてのポータブルコンピュータの概略図である。ポータブ
ルコンピュータ1は、情報処理装置本体50、及びディスプレイユニット51から構成さ
れている。ディスプレイユニット51は、例えばLCD(Liquid Crystal Display)で構
成される表示装置25が組み込まれている。
FIG. 6 is a schematic diagram of a portable computer as the memory system 1. The portable computer 1 includes an information processing apparatus main body 50 and a display unit 51. The display unit 51 incorporates a display device 25 configured by, for example, an LCD (Liquid Crystal Display).

ディスプレイユニット51は、情報処理装置本体50に対し、この本体50の上面が露
出される開放位置と本体2の上面を覆う閉塞位置との間を回動自由に取り付けられている
。本体2は薄い箱形の筐体を有しており、その上面には、電源スイッチ52、キーボード
29、タッチパッド53等が配置されている。また、本体50も、デスクトップコンピュ
ータと同様に、SSD3、マザーボード、及び電源装置などを備えている。
The display unit 51 is attached to the information processing apparatus main body 50 so as to freely rotate between an open position where the upper surface of the main body 50 is exposed and a closed position covering the upper surface of the main body 2. The main body 2 has a thin box-shaped casing, and a power switch 52, a keyboard 29, a touch pad 53, and the like are arranged on the upper surface thereof. The main body 50 also includes an SSD 3, a motherboard, a power supply device, and the like, like the desktop computer.

その他、メモリシステム1はスチルカメラ或いはビデオカメラなどの撮像装置などであ
ってもよいし、ゲーム機器やカーナビゲーションシステムなどであってもよい。
In addition, the memory system 1 may be an imaging device such as a still camera or a video camera, or may be a game machine or a car navigation system.

[2.動作]
<2−1.書き込み動作>
図7は、SSD3の書き込み動作を示すフローチャートである。SSD3は、ホスト装
置2から書き込み命令を受信する(ステップS10)。書き込み命令には、書き込みコマ
ンド、論理アドレス、及びデータが含まれる。
[2. Operation]
<2-1. Write operation>
FIG. 7 is a flowchart showing the write operation of the SSD 3. The SSD 3 receives a write command from the host device 2 (step S10). The write command includes a write command, a logical address, and data.

続いて、SSDコントローラ11は、DRAM12からフリーブロックテーブルを読み
出し、フリーブロックテーブルから物理ブロックIDを取得する(ステップS11)。フ
リーブロックが存在しない場合は、後述するNAND整理処理を行い、物理ブロックID
を取得する(ステップS13,S12)。
Subsequently, the SSD controller 11 reads the free block table from the DRAM 12 and acquires the physical block ID from the free block table (step S11). If no free block exists, the NAND rearrangement process described later is performed, and the physical block ID
Is acquired (steps S13 and S12).

続いて、SSDコントローラ11は、取得した物理ブロックIDに対応するフリーブロ
ックに対してプログラム処理を行う(ステップS14)。続いて、SSDコントローラ1
1は、プログラムされた物理ブロックIDをフリーブロックテーブルから削除する(ステ
ップS15)。続いて、SSDコントローラ11は、アクティブブロックテーブル及びア
クティブページテーブルを更新する(ステップS16)。すなわち、プログラムされたブ
ロックに対応する論理アドレス及び物理ブロックIDをアクティブブロックテーブルに追
加し、さらに、論理アドレス、物理ブロックID及び物理ページアドレスをアクティブペ
ージテーブルに追加する。
Subsequently, the SSD controller 11 performs a program process on the free block corresponding to the acquired physical block ID (step S14). Next, SSD controller 1
1 deletes the programmed physical block ID from the free block table (step S15). Subsequently, the SSD controller 11 updates the active block table and the active page table (step S16). That is, the logical address and physical block ID corresponding to the programmed block are added to the active block table, and the logical address, physical block ID, and physical page address are added to the active page table.

なお、ステップS14のプログラム処理の前に、書き込み対象の物理ブロックについて
消去を行ってもよい。
Note that the physical block to be written may be erased before the program processing in step S14.

<2−2.NAND整理処理>
次に、SSD3のNAND整理処理について説明する。図8は、SSD3のNAND整
理処理を示すフローチャートである。ある物理ブロックに対し、その物理ブロックに含ま
れる全ページのうちアクティブページテーブルに含まれているアクティブページ(有効ペ
ージ)は論理アドレスに対応付けられている。一方、ある物理ブロックに含まれる全ペー
ジが有効ページであるとは限らず、有効ページに該当しないページ(無効ページ)は論理
アドレスに対応付けられていない。物理ブロックは無効ページの分だけデータに空きがあ
ることになり、これら無効ページと有効ページとを分類することでフリーブロックを確保
することができる。
<2-2. NAND organization processing>
Next, the NAND organizing process of the SSD 3 will be described. FIG. 8 is a flowchart showing NAND organization processing of SSD3. For a certain physical block, among all pages included in the physical block, an active page (valid page) included in the active page table is associated with a logical address. On the other hand, not all pages included in a physical block are valid pages, and pages that do not correspond to valid pages (invalid pages) are not associated with logical addresses. The physical block has data corresponding to invalid pages, and free blocks can be secured by classifying these invalid pages and valid pages.

まず、SSDコントローラ11は、列番号i=0、空き領域累積量s=0に設定する(
ステップS20)。続いて、SSDコントローラ11は、DRAM12からアクティブブ
ロックテーブルの先頭行を読み出し、物理ブロックIDを取得する(ステップS21)。
ステップS21にて取得した物理ブロックIDを現在物理ブロックIDと呼ぶ。続いて、
SSDコントローラ11は、DRAM12からアクティブページテーブルを読み出し、現
在物理ブロックIDに含まれる全物理ページアドレスを取得する(ステップS22)。
First, the SSD controller 11 sets the column number i = 0 and the free space accumulated amount s = 0 (
Step S20). Subsequently, the SSD controller 11 reads the first row of the active block table from the DRAM 12 and acquires the physical block ID (step S21).
The physical block ID acquired in step S21 is referred to as a current physical block ID. continue,
The SSD controller 11 reads the active page table from the DRAM 12 and acquires all physical page addresses included in the current physical block ID (step S22).

続いて、SSDコントローラ11は、現在物理ブロックのうち無効ページのサイズを算
出し、この無効ページサイズを変数vに代入する(ステップS23)。続いて、SSDコ
ントローラ11は、“v>0”であるか否かを判定し(ステップS24)。“v>0”で
ある場合は、現在物理ブロックIDを整理対象ブロックリストに追加する(ステップS2
6)。一方、ステップS24において無効ページがないと判定された場合、SSDコント
ローラ11は、現在物理ブロックIDをインクリメントして、作業対象を次の物理ブロッ
クIDに移す(ステップS25)。
Subsequently, the SSD controller 11 calculates the size of the invalid page in the current physical block, and substitutes this invalid page size for the variable v (step S23). Subsequently, the SSD controller 11 determines whether or not “v> 0” (step S24). If “v> 0”, the current physical block ID is added to the arrangement target block list (step S2).
6). On the other hand, if it is determined in step S24 that there is no invalid page, the SSD controller 11 increments the current physical block ID and moves the work target to the next physical block ID (step S25).

続いて、SSDコントローラ11は、空き領域累積量sに変数vを加算する(ステップ
S27)。続いて、SSDコントローラ11は、空き領域累積量sが物理ブロックサイズ
に到達したか否か、すなわちこれまでに取得した無効ページのサイズ総量が物理ブロック
サイズに到達したか否かを判定する(ステップS28)。空き領域累積量sが物理ブロッ
クサイズに到達してない場合、列番号iに1を加算した後(ステップS25)、ステップ
S21以下の処理を繰り返す。
Subsequently, the SSD controller 11 adds the variable v to the free space accumulated amount s (step S27). Subsequently, the SSD controller 11 determines whether or not the accumulated free space amount s has reached the physical block size, that is, whether or not the total size of invalid pages acquired so far has reached the physical block size (step). S28). If the accumulated free space amount s has not reached the physical block size, 1 is added to the column number i (step S25), and then the processing from step S21 is repeated.

一方、空き領域累積量sが物理ブロックサイズに到達した場合、SSDコントローラ1
1は、整理対象ブロックリストの全物理ブロックから全アクティブページのデータを読み
出し、この読み出したデータをDRAM12に格納する(ステップS29)。続いて、S
SDコントローラ11は、整理対象ブロックリストの全物理ブロックに対して消去処理を
行う(ステップS30)。続いて、SSDコントローラ11は、アクティブブロックテー
ブル、フリーブロックテーブル、及びアクティブページテーブルを更新する(ステップS
31)。すなわち、消去処理が行われた物理ブロックをアクティブブロックテーブルから
削除してフリーブロックテーブルに追加し、また、データが読み出されたアクティブペー
ジをアクティブページテーブルから削除する。
On the other hand, when the free space accumulated amount s reaches the physical block size, the SSD controller 1
1 reads data of all active pages from all physical blocks in the arrangement target block list, and stores the read data in the DRAM 12 (step S29). Then S
The SD controller 11 performs an erasure process on all physical blocks in the organization target block list (step S30). Subsequently, the SSD controller 11 updates the active block table, the free block table, and the active page table (Step S
31). That is, the physical block that has been erased is deleted from the active block table and added to the free block table, and the active page from which data has been read is deleted from the active page table.

続いて、SSDコントローラ11は、DRAM12に格納された全アクティブページの
データをフリーブロックにプログラムする(ステップS32)。続いて、SSDコントロ
ーラ11は、アクティブブロックテーブル、フリーブロックテーブル、及びアクティブペ
ージテーブルを更新する(ステップS31)。すなわち、プログラムされた物理ブロック
をフリーブロックテーブルから削除してアクティブブロックテーブルに追加し、また、プ
ログラムされた物理ページをアクティブページテーブルに追加する。
Subsequently, the SSD controller 11 programs the data of all active pages stored in the DRAM 12 into free blocks (step S32). Subsequently, the SSD controller 11 updates the active block table, the free block table, and the active page table (step S31). That is, the programmed physical block is deleted from the free block table and added to the active block table, and the programmed physical page is added to the active page table.

このように、NAND整理はNAND型フラッシュメモリ13の読み出し動作、消去動
作、及びプログラム動作を多数伴うため、多くの時間を要する。よって、フリーブロック
が枯渇した状況で書き込みを行うとNAND整理が発生するため、ホスト装置2からみた
書き込み処理速度が低下し、かつNAND型フラッシュメモリ13の信頼性が低下する可
能性がある。
As described above, since the NAND organization involves many read operations, erase operations, and program operations of the NAND flash memory 13, a long time is required. Therefore, if writing is performed in a situation where free blocks are depleted, NAND rearrangement occurs, so that the write processing speed viewed from the host device 2 may be reduced, and the reliability of the NAND flash memory 13 may be reduced.

なお、ステップS30の消去処理はステップS13のNAND整理内では行わずに、ス
テップS14の書き込み動作直前に行うようにしてもよい。
Note that the erasing process in step S30 may be performed immediately before the write operation in step S14, without being performed in the NAND arrangement in step S13.

<2−3.削除通知処理>
次に、SSD3の削除通知処理について説明する。INCITS ATA8-ACSで採用されたdatas
et management command(通称、トリムコマンド)がある。このトリムコマンドは、削除
通知として機能する。削除通知処理は、ホスト装置上でデータが削除された場合、削除さ
れたデータの存在する論理アドレス空間をSSDに通知することにより、以後SSD上で
もその領域を空き領域として扱うことができる方式である。削除通知を受信した場合には
、SSDは管理テーブルにアクセスして該当領域を無効化する処理を行う。無効化処理で
は、SSDの管理テーブルを書き換えて該当領域が無効であることにすればよく、実際に
該当領域のデータそのものを消さなくてもよいし、消してもよい。
<2-3. Deletion notification processing>
Next, the SSD 3 deletion notification process will be described. Datas adopted by INCITS ATA8-ACS
et management command (commonly known as trim command). This trim command functions as a deletion notification. The deletion notification process is a method in which when the data is deleted on the host device, the logical address space in which the deleted data exists is notified to the SSD so that the area can be handled as a free area on the SSD thereafter. is there. When the deletion notification is received, the SSD accesses the management table and performs processing for invalidating the corresponding area. In the invalidation processing, the SSD management table may be rewritten to determine that the corresponding area is invalid, and the data in the corresponding area itself may or may not actually be erased.

図9は、SSD3の削除通知処理を示すフローチャートである。SSD3は、ホスト装
置2から削除通知を受信する(ステップS40)。削除通知には、削除コマンド、及び論
理アドレスが含まれる。
FIG. 9 is a flowchart showing the deletion notification process of the SSD 3. The SSD 3 receives a deletion notification from the host device 2 (step S40). The deletion notification includes a deletion command and a logical address.

続いて、SSDコントローラ11は、DRAM12からアクティブページテーブルを読
み出す(ステップS41)。続いて、SSDコントローラ11は、削除通知によって指定
された削除対象となる論理アドレス領域に対応する全ページのうち、ページ内全領域が削
除通知対象である全ページをアクティブページテーブルから削除する(ステップS42)
Subsequently, the SSD controller 11 reads the active page table from the DRAM 12 (step S41). Subsequently, the SSD controller 11 deletes, from the active page table, all pages in which all the areas in the page are subject to deletion notification among all pages corresponding to the logical address area to be deleted designated by the deletion notification (step S1). S42)
.

続いて、SSDコントローラ11は、DRAM12からアクティブブロックテーブルを
読み出す(ステップS43)。続いて、SSDコントローラ11は、アクティブブロック
テーブルを参照し、アクティブページテーブルに物理ブロックIDを持たない物理ブロッ
クをアクティブブロックテーブルから削除しフリーブロックテーブルに追加する(ステッ
プS44)。このように、SSD3は、NAND整理以外に、削除通知処理によってもフ
リーブロックを確保することができる。
Subsequently, the SSD controller 11 reads the active block table from the DRAM 12 (step S43). Subsequently, the SSD controller 11 refers to the active block table, deletes a physical block having no physical block ID in the active page table, and adds it to the free block table (step S44). As described above, the SSD 3 can secure a free block not only by NAND arrangement but also by deletion notification processing.

なお、ホスト装置2が削除通知を行うデータサイズは、SSD3が管理テーブルで管理
している最小データサイズ以上であればよい。
Note that the data size for which the host device 2 performs the deletion notification may be equal to or larger than the minimum data size managed by the SSD 3 in the management table.

<2−4.読み出し動作>
次に、SSD3の読み出し動作について説明する。図10は、SSD3の読み出し動作
を示すフローチャートである。SSD3は、ホスト装置2から読み出し命令を受信する(
ステップS50)。読み出し命令には、読み出しコマンド、及び論理アドレスが含まれる
<2-4. Read operation>
Next, the reading operation of the SSD 3 will be described. FIG. 10 is a flowchart showing the read operation of the SSD 3. The SSD 3 receives a read command from the host device 2 (
Step S50). The read command includes a read command and a logical address.

続いて、SSDコントローラ11は、DRAM12からアクティブブロックテーブルを
読み出す(ステップS51)。続いて、SSDコントローラ11は、ホスト装置2から受
信した論理アドレスに対応する物理ブロックIDを参照する(ステップS52)。アクテ
ィブブロックテーブルに物理ブロックIDが存在する場合、SSDコントローラ11は、
以後、既書き込み領域読み出し処理を行う。すなわち、SSDコントローラ11は、アク
ティブページテーブルを読み出し(ステップS53)、NAND型フラッシュメモリ13
の該当ページを読み出す(ステップS54)。そして、SSDコントローラ11は、読み
出したデータをホスト装置2に送信する(ステップS55)。
Subsequently, the SSD controller 11 reads the active block table from the DRAM 12 (step S51). Subsequently, the SSD controller 11 refers to the physical block ID corresponding to the logical address received from the host device 2 (step S52). When the physical block ID exists in the active block table, the SSD controller 11
Thereafter, the already written area reading process is performed. That is, the SSD controller 11 reads the active page table (step S53), and the NAND flash memory 13
Are read out (step S54). Then, the SSD controller 11 transmits the read data to the host device 2 (step S55).

一方、ホスト装置2から受信した論理アドレスに対応する物理ブロックIDがアクティ
ブブロックテーブルに存在しない場合、SSDコントローラ11は、以後、未書き込み領
域読み出し処理を行う。すなわち、SSDコントローラ11は、NAND型フラッシュメ
モリ13の読み出し処理を行わず、関数fで表されたデータをホスト装置2からの要求に
対応するデータ長分ホスト装置2に送信する(ステップS56)。具体的には、関数fで
表されたデータは、アドレスAi、データDiとすると、関数f(Ai)=Di(iは0
以上の整数)を満たす。関数fは、ユーザ側で自由に設定することが可能であり、本実施
形態では、論理アドレス(LBA:Logical Block Addressing)を変数として、“関数f
(LBA)=0”と定義する。この例の場合、SSDコントローラ11は、ホスト装置2
からの要求に対応するデータ長分の“0”で埋め尽くされたデータをホスト装置2に送信
する。
On the other hand, when the physical block ID corresponding to the logical address received from the host device 2 does not exist in the active block table, the SSD controller 11 performs unwritten area read processing thereafter. That is, the SSD controller 11 does not perform the reading process of the NAND flash memory 13 and transmits the data represented by the function f to the host device 2 by the data length corresponding to the request from the host device 2 (step S56). Specifically, if the data represented by the function f is an address Ai and data Di, the function f (Ai) = Di (i is 0).
The above integer) is satisfied. The function f can be set freely on the user side. In the present embodiment, a logical address (LBA: Logical Block Addressing) is used as a variable, and “function f
(LBA) = 0 ”. In this example, the SSD controller 11 is connected to the host device 2.
The data filled with “0” corresponding to the data length corresponding to the request from is sent to the host device 2.

未書き込み領域読み出し動作は、NAND型フラッシュメモリ13の読み出し処理が伴
わない。このため、アクティブページテーブルの読み出し処理及びNAND型フラッシュ
メモリ13の読み出し処理が伴う既書き込み領域読み出し動作に比べ、未書き込み領域読
み出し動作は高速に行われる。
The unwritten area read operation is not accompanied by read processing of the NAND flash memory 13. Therefore, the unwritten area read operation is performed at a higher speed than the already written area read operation accompanied by the read process of the active page table and the read process of the NAND flash memory 13.

<2−5.最適化処理>
次に、ホスト装置2の最適化処理について説明する。図11は、ホスト装置2の最適化
処理を示すフローチャートである。論理アドレス空間を物理ページサイズで区切って考え
、区切った要素を論理ページと定義する。
<2-5. Optimization process>
Next, the optimization process of the host device 2 will be described. FIG. 11 is a flowchart showing optimization processing of the host device 2. The logical address space is divided by physical page size, and the divided elements are defined as logical pages.

ホスト装置2のCPU20は、ある特定のフラグ(これを最適化フラグと呼ぶ)を監視
し(ステップS60)、最適化フラグが立っていることを確認すると、現在論理アドレス
を0に設定する(ステップS61)。続いて、CPU20は、現在論理アドレスからペー
ジサイズ分のデータ、すなわち現在論理アドレスから1つの論理ページ分を読み出すため
の読み出し命令をSSD3に送信する(ステップS62)。これに対して、SSD3は、
ホスト装置2から受信した読み出し命令に従って読み出し処理を行い、読み出しデータを
ホスト装置2に送信する。
The CPU 20 of the host device 2 monitors a specific flag (referred to as an optimization flag) (step S60), and if it is confirmed that the optimization flag is set, the current logical address is set to 0 (step S60). S61). Subsequently, the CPU 20 transmits to the SSD 3 a read command for reading data for the page size from the current logical address, that is, one logical page from the current logical address (step S62). In contrast, SSD3
Read processing is performed in accordance with a read command received from the host device 2, and read data is transmitted to the host device 2.

続いて、CPU20は、SSD3から1つの論理ページ分の読み出しデータを受信する
(ステップS63)。続いて、CPU20は、読み出しデータが全て“0”で埋め尽くさ
れているか否かを判定する(ステップS64)。読み出しデータが全て“0”で埋め尽く
されている場合、CPU20は、読み出した論理アドレス領域に対して削除通知を行う(
ステップS65)。これに対して、SSD3は、前述した削除通知処理を行う。
Subsequently, the CPU 20 receives read data for one logical page from the SSD 3 (step S63). Subsequently, the CPU 20 determines whether or not all read data is filled with “0” (step S64). When all the read data is filled with “0”, the CPU 20 issues a deletion notification to the read logical address area (
Step S65). In contrast, the SSD 3 performs the deletion notification process described above.

続いて、CPU20は、現在論理アドレスにページサイズ分を追加する(ステップS6
6)。続いて、CPU20は、全論理ページを読み出すまで、ステップS62〜S66の
処理を繰り返す(ステップS67)。
Subsequently, the CPU 20 adds the page size to the current logical address (step S6).
6). Subsequently, the CPU 20 repeats the processes of steps S62 to S66 until all the logical pages are read (step S67).

この最適化処理によって削除通知処理が行われた論理ページ群は、対応する論理アドレ
スがアクティブページテーブルから削除されるため、SSD3内部では物理アドレスに対
応付けられていない。削除通知処理が行われた論理ページに関してSSD3に読み出し命
令を送信すると、図10の未書き込み領域読み出し動作が行われ、ホスト装置2は“0”
で埋め尽くされたデータをSSD3から受信するため、ホスト装置2からみたSSD3内
部のデータは最適化処理前と変わらない。一方、未書き込み領域読み出し動作は、既書き
込み領域読み出し動作よりも高速に行われるため、削除通知対象の論理ページ読み出しの
パフォーマンスは、最適化処理前に比べて増大する。
The logical page group to which the deletion notification process is performed by this optimization process is not associated with a physical address in the SSD 3 because the corresponding logical address is deleted from the active page table. When a read command is transmitted to the SSD 3 regarding the logical page for which the deletion notification process has been performed, the unwritten area read operation of FIG.
Since the data filled in is received from the SSD 3, the data in the SSD 3 viewed from the host device 2 is the same as before the optimization process. On the other hand, since the unwritten area read operation is performed at a higher speed than the already written area read operation, the performance of reading the logical page to be deleted is increased compared with that before the optimization process.

なお、ホスト装置2は、最適化フラグが立っていることを確認し、かつSSD3がアイ
ドル状態の時に最適化処理を行うようにしてもよい。これにより、SSD3の通常動作(
書き込み動作など)におけるパフォーマンスが低下するのを防ぐことができる。
Note that the host device 2 may confirm that the optimization flag is set and perform the optimization process when the SSD 3 is in the idle state. As a result, the normal operation of the SSD 3 (
It is possible to prevent a decrease in performance during a write operation or the like.

この最適化処理は、全LBA領域について行ってもよいし、一部のLBA領域に限定し
て行ってもよい。例えば、最適化処理を行う範囲を10ギガバイトの範囲に限定して行っ
てもよい。その場合、例えば、初回の最適化処理はLBA=0から10ギガバイトの範囲
にわたって実行し、次に最適化フラグが立って最適化処理が開始されると、前回最適化を
行った領域の末尾の次のLBA(例えばLBA=0+10ギガバイト+1)から10ギガ
バイトの範囲にわたって実行するようにしてもよい。このようにして、全LBA領域を複
数回に分けて最適化処理を行うことで、1回の最適化処理にかかる時間を短縮することが
できる。
This optimization process may be performed for the entire LBA area, or may be performed for a part of the LBA areas. For example, the range for performing the optimization process may be limited to a range of 10 gigabytes. In this case, for example, the first optimization process is executed over a range of LBA = 0 to 10 gigabytes, and then the optimization flag is set and the optimization process is started. It may be executed over the range of the next LBA (for example, LBA = 0 + 10 gigabytes + 1) to 10 gigabytes. In this way, by performing the optimization process by dividing the entire LBA area into a plurality of times, the time required for one optimization process can be shortened.

<2−6.最適化フラグ設定処理>
次に、ホスト装置2の最適化フラグ設定処理について説明する。図12は、ホスト装置
2の最適化フラグ設定処理を示すフローチャートである。
<2-6. Optimization flag setting process>
Next, the optimization flag setting process of the host device 2 will be described. FIG. 12 is a flowchart showing the optimization flag setting process of the host device 2.

ユーザは、ホスト装置2の最適化プログラムを起動し、GUI(Graphical User Inter
face)上のボタン若しくはメニューを選択して最適化機能を呼び出す、又は、コマンドラ
インから最適化プログラムを起動し、コマンドを入力して最適化機能を呼び出す。図13
は、最適化プログラムのGUIの一例を示す概略図である。図13のGUIに対して、ユ
ーザはマウスなどを用いてOKボタンを選択する。このようなユーザの操作により、ホス
ト装置2の最適化機能が呼び出される。
The user starts the optimization program of the host device 2 and uses GUI (Graphical User Inter
face) Select the button or menu above to call the optimization function, or start the optimization program from the command line and enter the command to call the optimization function. FIG.
FIG. 3 is a schematic diagram illustrating an example of a GUI of an optimization program. For the GUI shown in FIG. 13, the user selects an OK button using a mouse or the like. By such user operation, the optimization function of the host apparatus 2 is called.

ホスト装置2のCPU20は、ユーザによって最適化機能が呼び出されたか否かを監視
している(ステップS70)。ユーザによって最適化機能が呼び出されると、CPU20
は、DRAM23の記憶領域23Cに最適化フラグを立てる。以後、最適化フラグが立っ
ていることが確認されると、前述した最適化処理が行われる。
The CPU 20 of the host device 2 monitors whether or not the optimization function has been called by the user (step S70). When the optimization function is called by the user, the CPU 20
Sets an optimization flag in the storage area 23C of the DRAM 23. Thereafter, when it is confirmed that the optimization flag is set, the above-described optimization process is performed.

[3.効果]
以上詳述した第1の実施形態によれば、以下のような効果が得られる。
[3. effect]
According to the first embodiment described in detail above, the following effects can be obtained.

ホスト装置2上で有効なユーザデータのうち特定パターンの繰り返しであるような論理
アドレス領域に関して、ホスト装置2からSSD3に対し削除通知を送信し、当該論理ア
ドレス領域を削除する。そして、削除通知処理が行われたユーザデータをNAND型フラ
ッシュメモリ13以外の特定領域(DRAMなど)から読み出すことで、当該ユーザデー
タの読み出し動作を高速化することができる。
With respect to a logical address area that is a repetition of a specific pattern among valid user data on the host apparatus 2, the host apparatus 2 sends a deletion notification to the SSD 3 to delete the logical address area. Then, the user data that has been subjected to the deletion notification process is read from a specific area (such as a DRAM) other than the NAND flash memory 13, so that the user data read operation can be speeded up.

また、SSD3に削除通知を行うことでフリーブロックを確保することができるため、
最適化処理後は書き込み動作のパフォーマンスが向上し、かつSSD3の信頼性が劣化す
るのを低減することができる。この効果は、ホスト装置2上で有効なユーザデータのうち
“0”で埋め尽くされたデータが多ければ多いほど効果が増大する。
In addition, a free block can be secured by sending a deletion notification to SSD3.
After the optimization process, the performance of the write operation can be improved and the deterioration of the reliability of the SSD 3 can be reduced. This effect increases as the number of user data valid on the host device 2 is completely filled with “0”.

図14は、“0”で埋め尽くされたデータの割合と平均読み出し速度との関係を示すグ
ラフである。平均読み出し速度とは、ある特定の期間に発生した読み出し動作の読み出し
速度を平均したものである。SSD3に格納されたユーザデータのうち“0”で埋め尽く
されたデータの割合が大きくなるほど未書き込み領域読み出し動作が増えるため、平均読
み出し速度が速くなる。
FIG. 14 is a graph showing the relationship between the ratio of data filled with “0” and the average read speed. The average read speed is an average of read speeds of read operations that occur during a specific period. As the ratio of data filled with “0” in the user data stored in the SSD 3 increases, the unwritten area read operation increases, and the average read speed increases.

図15は、“0”で埋め尽くされたデータの割合とフリーブロック量との関係を示すグ
ラフである。図15のグラフのかさ上げされた部分は、ユーザ領域以外のフリーブロック
量である。SSD3に格納されたユーザデータのうち“0”で埋め尽くされたデータの割
合が大きくなるほどホスト装置2からみたフリーブロック量が多くなる。
FIG. 15 is a graph showing the relationship between the percentage of data filled with “0” and the free block amount. The raised portion of the graph of FIG. 15 is the amount of free blocks other than the user area. As the proportion of data filled with “0” in the user data stored in the SSD 3 increases, the amount of free blocks viewed from the host device 2 increases.

例えば、Windows(登録商標)においてSSD3に対しフルフォーマットを行うと、S
SD3の全論理アドレスに対し“0”データが書き込まれることになる。これにより、フ
リーブロックの数が大幅に減少してしまうため、書き込みパフォーマンスが低下し、以後
の書き込み動作でSSD3の信頼性が劣化しやすくなる。ところが、フルフォーマット後
のSSD3に対して本実施形態の最適化処理を行うと、“0”で埋め尽くされた領域全て
に関し削除通知処理が行われるため、フリーブロックの数が大幅に増大する。これにより
、書き込みパフォーマンスが増大し、以後の書き込み動作におけるSSD3の信頼性が劣
化するのを低減することができる。
For example, when full formatting is performed on SSD3 in Windows (registered trademark), S
Data “0” is written to all logical addresses of SD3. As a result, the number of free blocks is significantly reduced, so that the write performance is lowered, and the reliability of the SSD 3 is likely to deteriorate in the subsequent write operation. However, when the optimization process of the present embodiment is performed on the SSD 3 after the full format, the deletion notification process is performed for all the areas filled with “0”, so that the number of free blocks is greatly increased. As a result, the writing performance is increased, and the deterioration of the reliability of the SSD 3 in the subsequent writing operation can be reduced.

本実施形態は、SSD3がアイドル状態の時にSSD3に対して最適化処理を行って管
理テーブルを書き換えるソフトウェアやファームウェアをホスト装置2に実装するだけで
実現できる。よって、本実施形態を実現するための機能を低コストかつ容易に実現できる
。また、SSD3がアイドル状態の時に最適化処理が行われるようにすることが望ましく
、それにより本実施形態を実現した場合でもSSD3の書き込み等のパフォーマンス低下
を伴わない。
This embodiment can be realized simply by installing in the host device 2 software or firmware that performs optimization processing on the SSD 3 and rewrites the management table when the SSD 3 is in an idle state. Therefore, the function for realizing the present embodiment can be easily realized at low cost. In addition, it is desirable that the optimization process is performed when the SSD 3 is in an idle state, so that even when this embodiment is realized, performance degradation such as writing to the SSD 3 is not accompanied.

なお、上記説明では、未書き込み領域読み出し動作においてSSDコントローラ11が
ホスト装置2に送信するデータとして“0”で埋め尽くされたデータを用いたが、関数f
で表されたデータはユーザ側で自由に設定することが可能である。例えば、“関数f(L
BA)=1”と定義することで、“1”で埋め尽くされたデータを用いてもよい。また、
“関数f(LBA)=LBA”と定義することで、“LBA”で表されたデータを用いて
もよい。さらに、論理アドレス空間を分割して管理し、第1のパーティションに対しては
削除通知に“0”で埋め尽くされたデータを用い、第2のパーティションに対しては削除
通知に“1”で埋め尽くされたデータを用いるようにしてもよい。この場合の関数fは、
例えば、“f(LBA)=0(LBA<Cap/2, f(LBA)=1(LBA≧Cap
/2)”と定義される。Capは、SSD3の記憶容量である。
In the above description, data filled with “0” is used as data transmitted from the SSD controller 11 to the host device 2 in the unwritten area read operation.
The data represented by can be freely set by the user. For example, “function f (L
By defining (BA) = 1 ”, data filled with“ 1 ”may be used.
By defining “function f (LBA) = LBA”, data represented by “LBA” may be used. Further, the logical address space is divided and managed, and data that is filled with “0” is used for the deletion notification for the first partition, and “1” is used for the deletion notification for the second partition. The filled data may be used. The function f in this case is
For example, “f (LBA) = 0 (LBA <Cap / 2, f (LBA) = 1 (LBA ≧ Cap)
/ 2) ". Cap is the storage capacity of SSD3.

また、最適化処理でSSD3から読み出された論理ページが特定のデータパターンX(
Xのデータサイズはページサイズと同じ)と同じである場合に、ホスト装置2が削除通知
を行うようにしてもよい。この場合、“関数f=X”になっているものとする。この削除
通知をSSD3が受信した場合、SSDコントローラ11は、未書き込み領域読み出し動
作においてDRAM12に格納されたデータパターンXをホスト装置2に送信する。削除
通知に特定のデータパターンを用いる例は、メモリシステム1が頻繁に同じデータを扱う
場合に特に有効である。 本実施形態では、簡単のため、NAND型フラッシュメモリの
物理アドレスは管理情報においてLBAに対して直接関連付けられていたが、例えば特開
2009−217603号のようにセクタサイズの2以上の自然数倍の管理単位を用いて
LBAを管理し、LBAではなく、上記管理単位とNAND型フラッシュメモリとの対応
関係を管理情報に記述するようにしてもよい。LBAの管理単位などのように、NAND
型フラッシュメモリの物理アドレスとLBAとの対応関係を記述する管理情報は様々な形
態をとりうるが、物理アドレスとLBAとの対応関係を記述するテーブル(論物変換テー
ブル)の取る形態の詳細は、本実施形態の本質には影響しない。
In addition, the logical page read from the SSD 3 by the optimization process is a specific data pattern X (
If the data size of X is the same as the page size), the host device 2 may send a deletion notification. In this case, it is assumed that “function f = X”. When the SSD 3 receives this deletion notification, the SSD controller 11 transmits the data pattern X stored in the DRAM 12 to the host device 2 in the unwritten area read operation. The example of using a specific data pattern for the deletion notification is particularly effective when the memory system 1 frequently handles the same data. In this embodiment, for the sake of simplicity, the physical address of the NAND flash memory is directly associated with the LBA in the management information. However, for example, as shown in Japanese Patent Application Laid-Open No. 2009-217603, a natural number multiple of 2 or more of the sector size. The management unit may be used to manage the LBA, and instead of the LBA, the correspondence between the management unit and the NAND flash memory may be described in the management information. NAND like LBA management unit
The management information describing the correspondence between the physical address of the flash memory and the LBA can take various forms. Details of the form taken by the table (logical-physical conversion table) describing the correspondence between the physical address and the LBA The essence of this embodiment is not affected.

また、本実施形態においては、NAND型フラッシュメモリにホスト装置から受信した
データが書き込まれるとき、ホスト装置から受信したデータそのもの(平文)が記録され
るとしたが、平文をランダマイズしてNAND型フラッシュメモリに記憶したり、平文を
暗号化してNAND型フラッシュメモリに記憶したりする場合にも本実施形態は適用可能
である。
In this embodiment, when the data received from the host device is written in the NAND flash memory, the data itself (plain text) received from the host device is recorded. However, the plain text is randomized to obtain the NAND flash memory. The present embodiment can also be applied when storing in a memory or encrypting plaintext and storing it in a NAND flash memory.

[第2の実施形態]
第1の実施形態の最適化処理では、全論理アドレスを読み出すようにしているのに対し
て、第2の実施形態では、ホスト装置2内のOSの管理領域にアクセスすることでファイ
ルリストを取得し、ファイル単位で最適化処理を行うようにしている。
[Second Embodiment]
In the optimization processing of the first embodiment, all logical addresses are read, whereas in the second embodiment, a file list is obtained by accessing the OS management area in the host device 2. However, optimization processing is performed in units of files.

図16は、第2の実施形態に係るホスト装置2の最適化処理を示すフローチャートであ
る。ホスト装置2のCPU20は、最適化フラグを監視し(ステップS80)、最適化フ
ラグが立っていることを確認すると、OSからファイル管理情報を取得し、ファイル管理
情報に登録されている全ファイルを最適化対象ファイルリストに追加する(ステップS8
1)。最適化対象ファイルリストは、例えばホスト装置2のDRAM23に格納される。
FIG. 16 is a flowchart showing optimization processing of the host apparatus 2 according to the second embodiment. The CPU 20 of the host device 2 monitors the optimization flag (step S80), and confirms that the optimization flag is set. Then, the CPU 20 acquires file management information from the OS, and stores all files registered in the file management information. Add to the optimization target file list (step S8)
1). The optimization target file list is stored, for example, in the DRAM 23 of the host device 2.

続いて、CPU20は、最適化対象ファイルリストの先頭ファイルを現在ファイルに設
定する(ステップS82)。続いて、CPU20は、現在ファイルを読み出すための読み
出し命令をSSD3に送信する(ステップS83)。これに対して、SSD3は、ホスト
装置2から受信した読み出し命令に従って読み出し処理を行い、読み出しデータをホスト
装置2に送信する。
Subsequently, the CPU 20 sets the first file in the optimization target file list as the current file (step S82). Subsequently, the CPU 20 transmits a read command for reading the current file to the SSD 3 (step S83). On the other hand, the SSD 3 performs read processing in accordance with the read command received from the host device 2 and transmits read data to the host device 2.

続いて、CPU20は、SSD3から現在ファイルに対応する読み出しデータを受信す
る(ステップS84)。続いて、CPU20は、読み出したファイル内に“0”で埋め尽
くされた論理ページが存在するか否かを判定する(ステップS85)。“0”で埋め尽く
された論理ページが存在する場合、CPU20は、該当する論理ページに対して削除通知
を行う(ステップS86)。これに対して、SSD3は、前述した削除通知処理を行う。
Subsequently, the CPU 20 receives read data corresponding to the current file from the SSD 3 (step S84). Subsequently, the CPU 20 determines whether or not there is a logical page filled with “0” in the read file (step S85). If there is a logical page filled with “0”, the CPU 20 notifies the corresponding logical page of deletion (step S86). In contrast, the SSD 3 performs the deletion notification process described above.

続いて、CPU20は、最適化対象ファイルリスト内の次のファイルを現在ファイルに
設定する(ステップS87)。続いて、CPU20は、最適化対象ファイルリスト内の全
ファイルを読み出すまで、ステップS83〜S87の処理を繰り返す(ステップS88)
Subsequently, the CPU 20 sets the next file in the optimization target file list as the current file (step S87). Subsequently, the CPU 20 repeats the processes of steps S83 to S87 until all the files in the optimization target file list are read (step S88).
.

以上詳述したように第2の実施形態では、最適化処理において、全論理アドレス空間に
対する読み出し動作を行わず、ホスト装置2上で有効なファイルに対してのみ読み出し動
作を行うようにしている。このため、最適化対象のデータ量を減らすことができるため、
最適化処理にかかる時間を短縮することができる。
As described above in detail, in the second embodiment, in the optimization process, the read operation is not performed on the entire logical address space, and the read operation is performed only on the valid file on the host device 2. This reduces the amount of data targeted for optimization,
The time required for the optimization process can be shortened.

この最適化処理は、全ファイルについて行ってもよいし、一部のファイルに限定して行
ってもよい。例えば、最適化処理を行うファイル数を10000個に限定して行ってもよ
い。その場合、例えば、初回の最適化処理はファイルリスト先頭から10000個にわた
って実行し、次に最適化フラグが立って最適化処理が開始されると、前回最適化を行った
最後のファイルの次のファイル(例えば、ファイルリストの“0+10000+1”番目
)から10000個にわたって実行するようにしてもよい。或いは、最適化処理を行うフ
ァイルの容量を10ギガバイトに限定して行ってもよい。その場合、例えば、初回の最適
化処理はファイルリスト先頭から合計10ギガバイト分のファイルにわたって実行し、次
に最適化フラグが立って最適化処理が開始されると、前回最適化を行った最後のファイル
の次のファイルから合計10ギガバイト分のファイルにわたって実行するようにしてもよ
い。このようにして、全ファイルを複数回に分けて最適化処理を行うことで、1回の最適
化処理にかかる時間を短縮することができる。
This optimization process may be performed on all files or limited to a part of the files. For example, the number of files to be optimized may be limited to 10,000. In that case, for example, the first optimization process is executed over 10,000 files from the top of the file list, and when the optimization flag is set and the optimization process is started next, the next optimization file after the last optimization was performed. It may be executed over 10,000 files from the file (for example, “0 + 10000 + 1” -th in the file list). Alternatively, the capacity of the file to be optimized may be limited to 10 gigabytes. In that case, for example, the first optimization process is executed over a total of 10 gigabytes of files from the beginning of the file list, and when the optimization flag is set and the optimization process is started next, the last optimization performed last time You may make it perform over the file for a total of 10 gigabytes from the next file of a file. In this way, by performing the optimization process by dividing all files into a plurality of times, the time required for one optimization process can be shortened.

[第3の実施形態]
第3の実施形態は、最適化フラグ設定処理に関する他の実施例であり、ホスト装置2の
時計が規定の時刻に到達した時に、最適化フラグを立てるようにしている。
[Third Embodiment]
The third embodiment is another example relating to the optimization flag setting process, and an optimization flag is set when the clock of the host device 2 reaches a specified time.

図17は、第3の実施形態に係るホスト装置2の最適化フラグ設定処理を示すフローチ
ャートである。ホスト装置2は、時計を有しており、ホスト装置2のCPU20は、この
時計が規定の時刻に到達したか否かを監視している(ステップS90)。規定の時刻に到
達した場合、CPU20は、DRAM23の記憶領域23Cに最適化フラグを立てる。以
後、最適化フラグが立っていることが確認されると、前述した最適化処理が行われる。
FIG. 17 is a flowchart showing optimization flag setting processing of the host apparatus 2 according to the third embodiment. The host device 2 has a clock, and the CPU 20 of the host device 2 monitors whether or not the clock has reached a specified time (step S90). When the prescribed time is reached, the CPU 20 sets an optimization flag in the storage area 23C of the DRAM 23. Thereafter, when it is confirmed that the optimization flag is set, the above-described optimization process is performed.

第3の実施形態では、メモリシステム1は、ユーザの明示的な指示なしにバックグラウ
ンドで最適化処理を行うことが可能である。
In the third embodiment, the memory system 1 can perform the optimization process in the background without an explicit instruction from the user.

[第4の実施形態]
第4の実施形態は、最適化フラグ設定処理に関する他の実施例であり、SSD3からホ
スト装置2へ送信される情報をトリガとして、最適化フラグ設定処理を開始するようにし
ている。SSD3からホスト装置2へ送信される最適化処理の実施を促す情報を最適化起
動情報と呼ぶ。SSD3内部で管理している情報の一つとして、例えば、フリーブロック
数がある。第4の実施形態では、このフリーブロック数を用いて最適化起動情報を生成す
る。
[Fourth Embodiment]
The fourth embodiment is another example relating to the optimization flag setting process, and the optimization flag setting process is started by using information transmitted from the SSD 3 to the host device 2 as a trigger. Information prompting execution of the optimization process transmitted from the SSD 3 to the host device 2 is referred to as optimization start information. One example of information managed in the SSD 3 is the number of free blocks. In the fourth embodiment, optimized activation information is generated using the number of free blocks.

まずは、SSD3側の動作について説明する。図18は、第4の実施形態に係るSSD
3の最適化起動情報の生成処理を示すフローチャートである。SSDコントローラ11は
、フリーブロック数を監視しており(ステップS100)、フリーブロック数が規定値(
例えば、設計時に予め決められている規定値)を下回った場合、SSDコントローラ11
は、ホスト装置2に最適化起動情報を送信する(ステップS101)。上記規定値として
は、例えば、SSD3の書き込み動作において、書き込み速度を一定以上に保つために必
要なフリーブロックの最低数を用いることができる。
First, the operation on the SSD 3 side will be described. FIG. 18 shows an SSD according to the fourth embodiment.
3 is a flowchart showing a process for generating optimization start information 3. The SSD controller 11 monitors the number of free blocks (step S100), and the number of free blocks is a specified value (
For example, when the value falls below a predetermined value determined in advance at the time of design, the SSD controller 11
Transmits optimization activation information to the host device 2 (step S101). As the specified value, for example, the minimum number of free blocks necessary for keeping the writing speed at a certain level or higher in the writing operation of the SSD 3 can be used.

次に、ホスト装置2側の動作について説明する。図19は、ホスト装置2の最適化フラ
グ設定処理を示すフローチャートである。ホスト装置2のCPU20は、SSD3から最
適化起動情報を受信したか否かを監視している(ステップS110)。最適化起動情報を
受信すると、CPU20は、DRAM23の記憶領域23Cに最適化フラグを立てる。以
後、最適化フラグが立っていることが確認されると、前述した最適化処理が行われる。
Next, the operation on the host device 2 side will be described. FIG. 19 is a flowchart showing the optimization flag setting process of the host device 2. The CPU 20 of the host device 2 monitors whether or not optimization activation information has been received from the SSD 3 (step S110). When the optimization activation information is received, the CPU 20 sets an optimization flag in the storage area 23C of the DRAM 23. Thereafter, when it is confirmed that the optimization flag is set, the above-described optimization process is performed.

最適化起動情報の監視及び授受には、例えば、メモリの自己診断機能であるS.M.A.R.T
(Self-Monitoring Analysis and Reporting Technology)のコマンドであるSMART READ
DATA(B0h(D0h))又はベンダー独自のコマンドを用いてもよい。或いは、CPU20は
、例えば、S.M.A.R.TのコマンドであるSMART READ DATA(B0h(D0h))又はベンダー独自
のコマンドを用いてSSD3のフリーブロック数を直接監視し、フリーブロック数が規定
値(例えば、設計時に予め決められている規定値で、最適化プログラム23B上に保持さ
れている)を下回った場合、CPU20がDRAM23の記憶領域23Cに最適化フラグ
を立てるようにしてもよい。
For example, SMART, which is a memory self-diagnosis function, is used to monitor and exchange optimized startup information.
(Self-Monitoring Analysis and Reporting Technology) command SMART READ
DATA (B0h (D0h)) or a vendor-specific command may be used. Alternatively, the CPU 20 directly monitors the number of free blocks of the SSD 3 using, for example, SMART READ DATA (B0h (D0h)), which is a SMART command, or a vendor-specific command. The CPU 20 may set an optimization flag in the storage area 23 </ b> C of the DRAM 23 when the predetermined value is less than a predetermined value (held on the optimization program 23 </ b> B).

第4の実施形態では、SSD3側の最適なタイミングで最適化処理を行うことが可能で
ある。
In the fourth embodiment, the optimization process can be performed at the optimal timing on the SSD 3 side.

[第5の実施形態]
第5の実施形態は、関数fで定義されるデータパターンを、SSD3の使用状況に応じ
て変更可能なようにメモリシステム1を構成している。図20は、第5の実施形態に係る
ホスト装置2の最適化処理を示すフローチャートである。特定のデータパターンをXと表
記し、“関数f=X”になっているものとする。
[Fifth Embodiment]
In the fifth embodiment, the memory system 1 is configured such that the data pattern defined by the function f can be changed in accordance with the usage state of the SSD 3. FIG. 20 is a flowchart showing optimization processing of the host apparatus 2 according to the fifth embodiment. It is assumed that a specific data pattern is represented by X and “function f = X”.

図20のステップS120〜S123は、図11のステップS60〜S63と同じであ
る。続いて、CPU20は、読み出しデータが関数fで表されるデータパターンと同じで
あるか否かを判定する(ステップS124)。読み出しデータが関数fで表されるデータ
パターンと同じである場合、CPU20は、読み出した論理アドレス領域に対して削除通
知を行う(ステップS125)。これに対して、SSD3は、前述した削除通知処理を行
う。
Steps S120 to S123 in FIG. 20 are the same as steps S60 to S63 in FIG. Subsequently, the CPU 20 determines whether or not the read data is the same as the data pattern represented by the function f (step S124). When the read data is the same as the data pattern represented by the function f, the CPU 20 issues a deletion notification to the read logical address area (step S125). In contrast, the SSD 3 performs the deletion notification process described above.

続いて、CPU20は、現在論理アドレスにページサイズ分を追加する(ステップS1
26)。続いて、CPU20は、全論理ページを読み出すまで、ステップS122〜S1
26の処理を繰り返す(ステップS127)。
Subsequently, the CPU 20 adds the page size to the current logical address (step S1).
26). Subsequently, the CPU 20 performs steps S122 to S1 until all logical pages are read.
26 is repeated (step S127).

続いて、CPU20は、全論理アドレス領域のうちデータパターンXの領域の合計サイ
ズを算出する(ステップS128)。続いて、CPU20は、全論理アドレス領域のうち
データパターンXと異なるデータパターンX´の領域の合計サイズを算出する(ステップ
S129)。
Subsequently, the CPU 20 calculates the total size of the area of the data pattern X among all the logical address areas (step S128). Subsequently, the CPU 20 calculates the total size of the areas of the data pattern X ′ different from the data pattern X among all the logical address areas (step S129).

続いて、CPU20は、データパターンX´の合計サイズがデータパターンXの合計サ
イズより大きいか否かを判定する(ステップS130)。データパターンX´の合計サイ
ズがデータパターンXの合計サイズ以下である場合、CPU20は、最適化処理を終了す
る。一方、データパターンX´の合計サイズがデータパターンXの合計サイズより大きい
場合、DRAM23の記憶領域23Dに格納されている“関数f=X”を“関数f=X´
”に書き換える(ステップS131)。ステップ130における判定条件を(データパタ
ーンX´の合計サイズ)≧(データパターンXの合計サイズ)とすると、データパターン
X´の合計サイズとデータパターンXの合計サイズがほぼ等しい時に関数fの書き換えが
頻繁に発生するため、例えば(データパターンX´の合計サイズ)≧1.1×(データパ
ターンXの合計サイズ)のように、判定条件にマージンを持たせることが望ましい。
Subsequently, the CPU 20 determines whether or not the total size of the data pattern X ′ is larger than the total size of the data pattern X (step S130). When the total size of the data pattern X ′ is equal to or smaller than the total size of the data pattern X, the CPU 20 ends the optimization process. On the other hand, when the total size of the data pattern X ′ is larger than the total size of the data pattern X, “function f = X” stored in the storage area 23D of the DRAM 23 is changed to “function f = X ′”.
(Step S131) If the determination condition in Step 130 is (total size of data pattern X ′) ≧ (total size of data pattern X), the total size of data pattern X ′ and the total size of data pattern X are Since the function f is frequently rewritten when they are substantially equal, for example, a margin may be given to the determination condition as (total size of data pattern X ′) ≧ 1.1 × (total size of data pattern X). desirable.

現時点では、データパターンXである論理ページ群については削除通知処理が行われて
いるので、SSD3は、この論理ページをアクティブページとして管理していない。この
ため、CPU20は、データパターンXである論理ページ群についてデータパターンXに
書き換える書き込み命令をSSD3に送信する(ステップS132)。続いて、CPU2
0は、NAND型フラッシュメモリ13の記憶領域13Cに格納されている“関数f=X
”を“関数f=X´”に書き換える命令をSSD3に送信する(ステップS133)。関
数fの書き換え命令は、例えばベンダー独自のコマンドを用いてもよい。これに対して、
SSD3は、NAND型フラッシュメモリ13の記憶領域13Cに“関数f=X´”を書
き込むとともに、DRAM12の関数fを更新する。
At this time, since deletion notification processing is performed for the logical page group that is the data pattern X, the SSD 3 does not manage this logical page as an active page. Therefore, the CPU 20 transmits a write command for rewriting the data pattern X for the logical page group that is the data pattern X to the SSD 3 (step S132). CPU2
0 is “function f = X stored in the storage area 13 </ b> C of the NAND flash memory 13.
An instruction for rewriting “function f = X ′” is transmitted to the SSD 3 (step S133). For the rewriting instruction for the function f, for example, a vendor-specific command may be used.
The SSD 3 writes “function f = X ′” in the storage area 13 </ b> C of the NAND flash memory 13 and updates the function f of the DRAM 12.

以上詳述したように第5の実施形態によれば、削除通知対象であるデータパターンを変
更することができる。これにより、最も存在確率が高いデータパターンに対して未書き込
み領域読み出し動作が行われることになるので、読み出し動作を高速化することができる
。なお、ファイル単位で最適化処理を行う第2の実施形態に第5の実施形態を適用するこ
とも可能である。
As described above in detail, according to the fifth embodiment, it is possible to change a data pattern that is a deletion notification target. As a result, the unwritten area read operation is performed on the data pattern having the highest existence probability, so that the read operation can be speeded up. Note that the fifth embodiment can be applied to the second embodiment in which optimization processing is performed in file units.

[第6の実施形態]
第6の実施形態は、SSD3自身が前述した最適化処理と同じ処理を行うようにしてい
る。図21は、第6の実施形態に係るメモリシステム1のブロック図である。SSD3の
DRAM12は、最適化フラグを格納する記憶領域12Cを含んでいる。その他の構成は
、図1と同じである。
[Sixth Embodiment]
In the sixth embodiment, the SSD 3 itself performs the same processing as the optimization processing described above. FIG. 21 is a block diagram of the memory system 1 according to the sixth embodiment. The SSD 3 DRAM 12 includes a storage area 12C for storing an optimization flag. Other configurations are the same as those in FIG.

本実施形態では、ホスト装置2は、最適化プログラム23B、最適化フラグ23C、及
び関数f(23D)を保持しなくてもよい。SSDコントローラ11は、DRAM12の
記憶領域12Cに最適化フラグを立てる。
In the present embodiment, the host device 2 does not have to hold the optimization program 23B, the optimization flag 23C, and the function f (23D). The SSD controller 11 sets an optimization flag in the storage area 12C of the DRAM 12.

図22は、DRAM12に格納される管理テーブルの一部を説明する図である。最適化
処理を重複して行わないために、アクティブページテーブルには、最適化済マークが追加
されていることが望ましい。最適化済マークは、論理アドレスに対応して設けられている
。最適化済マークは、後述する最適化処理が実施されたか否かを判断するための情報であ
る。
FIG. 22 is a diagram for explaining a part of the management table stored in the DRAM 12. In order not to perform the optimization process redundantly, it is desirable that an optimized mark is added to the active page table. The optimized mark is provided corresponding to the logical address. The optimized mark is information for determining whether or not an optimization process described later has been performed.

SSD3の書き込み動作は、第1の実施形態で示した図7のフローチャートと同じであ
る。ただし、図7のステップS16においてアクティブページテーブルを更新する際、最
適化済マーク=false(偽)を追加する。
The write operation of the SSD 3 is the same as the flowchart of FIG. 7 shown in the first embodiment. However, when the active page table is updated in step S16 of FIG. 7, an optimized mark = false is added.

次に、最適化処理について説明する。図23は、SSD3の最適化処理を示すフローチ
ャートである。
Next, the optimization process will be described. FIG. 23 is a flowchart showing the optimization process of SSD3.

SSDコントローラ11は、DRAM12の記憶領域12Cに最適化フラグが立ってい
ることを確認すると(ステップS140)、アクティブページテーブルの1行目を現在行
に設定する(ステップS141)。続いて、SSDコントローラ11は、DRAM12か
らアクティブページテーブルの現在行を読み出す(ステップS142)。
When the SSD controller 11 confirms that the optimization flag is set in the storage area 12C of the DRAM 12 (step S140), the SSD controller 11 sets the first line of the active page table as the current line (step S141). Subsequently, the SSD controller 11 reads the current row of the active page table from the DRAM 12 (step S142).

続いて、SSDコントローラ11は、現在行に含まれる最適化済マークを確認すること
で、現在行が示す物理ページが最適化済みであるか否かを判定する(ステップS143)
。物理ページが最適化済みである場合(最適化済マーク=True(真))は、当該物理ペー
ジに対して最適化処理は行われない。一方、物理ページが最適化済みでない場合(最適化
済マーク=false)、SSDコントローラ11は、NAND型フラッシュメモリ13から
現在行が示す物理ページを読み出す(ステップS144)。
Subsequently, the SSD controller 11 determines whether or not the physical page indicated by the current line has been optimized by confirming the optimized mark included in the current line (step S143).
. When the physical page has been optimized (optimized mark = True), the optimization process is not performed on the physical page. On the other hand, when the physical page has not been optimized (optimized mark = false), the SSD controller 11 reads the physical page indicated by the current row from the NAND flash memory 13 (step S144).

続いて、SSDコントローラ11は、読み出しデータが“0”で埋め尽くされている(
“関数f(LBA)=0”の場合)か否かを判定する(ステップS145)。読み出しデ
ータが“0”で埋め尽くされている場合、SSDコントローラ11は、アクティブページ
テーブルから現在行を削除する(ステップS146)。或いは、現在行の要素に無効なデ
ータを書き込むことで、現在行を無効化してもよい。読み出しデータが“0”で埋め尽く
されていない場合、SSDコントローラ11は、現在行の最適化済マークに“True”を書
き込む(ステップS147)。続いて、SSDコントローラ11は、アクティブページテ
ーブルの次の行を現在行に設定する(ステップS148)。
Subsequently, the SSD controller 11 is filled with read data “0” (
It is determined whether “function f (LBA) = 0” (step S145). If the read data is filled with “0”, the SSD controller 11 deletes the current row from the active page table (step S146). Alternatively, the current line may be invalidated by writing invalid data to the element of the current line. When the read data is not filled with “0”, the SSD controller 11 writes “True” to the optimized mark of the current row (step S147). Subsequently, the SSD controller 11 sets the next row of the active page table as the current row (step S148).

続いて、SSDコントローラ11は、ホスト装置2から割込み命令を受信した場合は、
最適化処理を終了すべく、ステップS151に移行する。ホスト装置2から割込み命令を
受信していない場合は、SSDコントローラ11は、アクティブページテーブルの全行を
読み出すまで、ステップS142〜S148の処理を繰り返す(ステップS150)。続
いて、SSDコントローラ11は、アクティブブロックテーブル及びフリーブロックテー
ブルを更新する(ステップS151)。すなわち、アクティブブロックテーブルを参照し
、アクティブページテーブルに要素を持たない物理ブロックをアクティブブロックテーブ
ルから削除してフリーブロックテーブルに追加する。なお、割込み命令が急を要する場合
には、アクティブブロックテーブル及びフリーブロックテーブルの更新を後で行うように
してもよい。
Subsequently, when the SSD controller 11 receives an interrupt command from the host device 2,
In order to finish the optimization process, the process proceeds to step S151. If no interrupt command has been received from the host device 2, the SSD controller 11 repeats the processing of steps S142 to S148 until all rows of the active page table are read (step S150). Subsequently, the SSD controller 11 updates the active block table and the free block table (step S151). That is, referring to the active block table, a physical block having no element in the active page table is deleted from the active block table and added to the free block table. If the interrupt instruction is urgent, the active block table and free block table may be updated later.

SSD3の読み出し動作及びNAND整理動作については、第1の実施形態と同じであ
る。従って、最適化処理によって削除された論理ページに関してホスト装置2がSSD3
に読み出し命令を送信すると、図10の未書き込み領域読み出し動作が行われ、ホスト装
置2は“0”で埋め尽くされたデータをSSD3から受信する(“関数f(LBA)=0
”の場合)ため、ホスト装置2からみたSSD3内部のデータは最適化処理前と変わらな
い。一方、未書き込み領域読み出し動作は、既書き込み領域読み出し動作よりも高速に行
われるため、最適化対象の論理ページ読み出しのパフォーマンスは、最適化処理前に比べ
て増大する。また、第6の実施形態によれば、ホスト装置2の処理負担を軽減することが
できる。
The read operation and the NAND organizing operation of the SSD 3 are the same as those in the first embodiment. Accordingly, the host device 2 relates to the logical page deleted by the optimization process by the SSD 3
When the read command is transmitted to the non-written area shown in FIG. 10, the host device 2 receives data filled with “0” from the SSD 3 (“function f (LBA) = 0”.
Therefore, the data in the SSD 3 as seen from the host device 2 is the same as before the optimization process. On the other hand, the unwritten area read operation is performed at a higher speed than the already written area read operation, The logical page read performance is increased as compared with that before the optimization process, and according to the sixth embodiment, the processing load on the host apparatus 2 can be reduced.

なお、最適化フラグを立てる条件としては、ホスト装置2から、例えばベンダー独自の
コマンドなどによって明示的に指示された場合でもよいし、ホスト装置2から明示的に指
示された場合でなくてもよい。例えば、ホスト装置2から一定期間(例えば10秒)アク
セスがない場合に、SSDコントローラ11がDRAM12の記憶領域12Cに最適化フ
ラグを立てるようにしてもよい。また、第4の実施形態と同様に、SSDコントローラ1
1は、フリーブロック数を監視しており、フリーブロック数が規定値(例えば、設計時に
予め決められている規定値)を下回った場合に、DRAM12の記憶領域12Cに最適化
フラグを立てるようにしてもよい。
The condition for setting the optimization flag may be a case where it is explicitly instructed from the host device 2 by, for example, a vendor-specific command, or a case where it is not instructed explicitly from the host device 2. . For example, the SSD controller 11 may set an optimization flag in the storage area 12C of the DRAM 12 when there is no access from the host device 2 for a certain period (for example, 10 seconds). Further, as in the fourth embodiment, the SSD controller 1
1 monitors the number of free blocks, and sets an optimization flag in the storage area 12C of the DRAM 12 when the number of free blocks falls below a prescribed value (for example, a prescribed value determined in advance at the time of design). May be.

上記最適化は、アクティブページテーブルの全要素について行うようにしてもよいが、
一部の要素に限定して行うようにしてもよい。例えば、各最適化動作において、1000
0個の要素に限定して行うようにしてもよい。この場合、初回の最適化ではアクティブペ
ージテーブルの0番目〜9999番目の要素について最適化を行い、次回の最適化では1
0000番目〜19999番目の要素について最適化を行い、次回の最適化では2000
0番目〜29999番目の要素について最適化を行う、というようにしてもよい。このよ
うにアクティブページテーブルを分割して最適化を行うことで、一回の最適化に要する時
間を短縮することができる。
The above optimization may be performed for all elements of the active page table.
You may make it carry out limiting to a one part element. For example, in each optimization operation, 1000
You may make it carry out limiting to 0 elements. In this case, the first optimization optimizes the 0th to 9999th elements of the active page table, and the next optimization is 1
0000th to 19999th elements are optimized, and the next optimization is 2000
The optimization may be performed on the 0th to 29999th elements. By dividing the active page table and performing optimization in this way, the time required for one optimization can be shortened.

なお、上記説明では、未書き込み領域読み出し動作においてSSDコントローラ11が
ホスト装置2に送信するデータとして“0”で埋め尽くされたデータを用いたが(“関数
f(LBA)=0”の場合)、関数fで表されたデータはユーザ側で自由に設定すること
が可能であり、ステップS145において、データパターンと関数fの比較が行われる。
例えば、“関数f(LBA)=1”と定義することで、“1”で埋め尽くされたデータを
用いてもよい。また、“関数f(LBA)=LBA”と定義することで、“LBA”で表
されたデータを用いてもよい。さらに、論理アドレス空間を分割して管理し、第1のパー
ティションに対しては最適化に“0”で埋め尽くされたデータを用い、第2のパーティシ
ョンに対しては最適化に“1”で埋め尽くされたデータを用いるようにしてもよい。この
場合の関数fは、例えば、“f(LBA)=0(LBA<Cap/2, f(LBA)=1
(LBA≧Cap/2)”と定義される。Capは、SSD3の記憶容量である。
In the above description, data filled with “0” is used as data transmitted from the SSD controller 11 to the host device 2 in the unwritten area read operation (when “function f (LBA) = 0”). The data represented by the function f can be freely set on the user side, and the data pattern and the function f are compared in step S145.
For example, by defining “function f (LBA) = 1”, data filled with “1” may be used. Further, by defining “function f (LBA) = LBA”, data represented by “LBA” may be used. Further, the logical address space is divided and managed, and data filled with “0” is used for optimization for the first partition, and “1” is used for optimization for the second partition. The filled data may be used. The function f in this case is, for example, “f (LBA) = 0 (LBA <Cap / 2, f (LBA) = 1”.
(LBA ≧ Cap / 2) ”. Cap is the storage capacity of SSD3.

また、ステップS145で、NAND型フラッシュメモリ13のあるLBAから読み出
されたデータが特定のデータパターンX(Xのデータサイズはページサイズと同じ)と同
じである場合に、SSDコントローラ11が最適化処理を行うようにしてもよい(ステッ
プS146)。この場合、“関数f=X”に該当する。この削除通知をSSD3が受信し
た場合、SSDコントローラ11は、未書き込み領域読み出し動作においてDRAM12
に格納されたデータパターンXをホスト装置2に送信する。削除通知に特定のデータパタ
ーンを用いる例は、メモリシステム1が頻繁に同じデータを扱う場合に特に有効である。
In step S145, if the data read from the LBA in the NAND flash memory 13 is the same as the specific data pattern X (the data size of X is the same as the page size), the SSD controller 11 optimizes the data. Processing may be performed (step S146). This case corresponds to “function f = X”. When the SSD 3 receives this deletion notification, the SSD controller 11 reads the DRAM 12 in the unwritten area read operation.
The data pattern X stored in is transmitted to the host device 2. The example of using a specific data pattern for the deletion notification is particularly effective when the memory system 1 frequently handles the same data.

本実施形態では、簡単のため、NAND型フラッシュメモリの物理アドレスは管理情報
においてLBAに対して直接関連付けられていたが、例えば特開2009−217603
号のようにセクタサイズの2以上の自然数倍の管理単位を用いてLBAを管理し、LBA
ではなく、上記管理単位とNAND型フラッシュメモリとの対応関係を管理情報に記述す
るようにしてもよい。LBAの管理単位などのように、NAND型フラッシュメモリの物
理アドレスとLBAとの対応関係を記述する管理情報は様々な形態をとりうるが、物理ア
ドレスとLBAとの対応関係を記述するテーブル(論物変換テーブル)の取る形態の詳細
は、本実施形態の本質には影響しない。
In this embodiment, for the sake of simplicity, the physical address of the NAND flash memory is directly associated with the LBA in the management information, but for example, JP 2009-217603 A
The LBA is managed using a management unit that is a natural number multiple of 2 or more of the sector size, such as
Instead, the correspondence between the management unit and the NAND flash memory may be described in the management information. The management information describing the correspondence between the physical address of the NAND flash memory and the LBA, such as an LBA management unit, can take various forms, but a table describing the correspondence between the physical address and the LBA (theory). The details of the form taken by the object conversion table do not affect the essence of the present embodiment.

また、本実施形態においては、NAND型フラッシュメモリにホスト装置から受信した
データが書き込まれるとき、ホスト装置から受信したデータそのもの(平文)が記録され
るとしたが、平文をランダマイズしてNAND型フラッシュメモリに記憶したり、平文を
暗号化してNAND型フラッシュメモリに記憶したりする場合にも本実施形態は適用可能
である。その際、ステップS145におけるデータの比較は、復号後の平文について行わ
れることが望ましいが、復号前のランダマイズデータ又は暗号化データについて行っても
よい。
In this embodiment, when the data received from the host device is written in the NAND flash memory, the data itself (plain text) received from the host device is recorded. However, the plain text is randomized to obtain the NAND flash memory. The present embodiment can also be applied when storing in a memory or encrypting plaintext and storing it in a NAND flash memory. At this time, the comparison of data in step S145 is preferably performed on plaintext after decryption, but may be performed on randomized data or encrypted data before decryption.

[第7の実施形態]
第7の実施形態は、ホスト装置がある論理アドレス領域をSSDから読み出したデータ
が比較元データと同一である場合、ホスト装置が上記論理アドレス領域に対して削除通知
を行う。そして、上記論理アドレス領域に対応する論理アドレスを、NAND型フラッシ
ュメモリ上の物理アドレスを疑似的に割り当てた「比較元データ領域」に対応するよう管
理テーブルを書き換えることで、繰り返しパターンであるようなユーザデータの読み出し
動作を高速化し、SSDが利用可能なフリーブロックを増加させるようにしている。
[Seventh Embodiment]
In the seventh embodiment, if the data read from the SSD in a certain logical address area from the SSD is the same as the comparison source data, the host apparatus sends a deletion notification to the logical address area. Then, by rewriting the management table so that the logical address corresponding to the logical address area corresponds to the “comparison source data area” in which the physical address on the NAND flash memory is pseudo-assigned, a repetitive pattern is obtained. The user data read operation is speeded up to increase the number of free blocks that can be used by the SSD.

[1.メモリシステムの構成]
比較元データ領域に格納されているデータ(比較元データ)がNAND型フラッシュメ
モリの物理アドレス領域で繰り返し存在する場合、上記物理アドレス領域に対応するLB
A(論理アドレス)は本実施形態により比較元データ領域に全て対応付けられる。これに
より、最大で「(繰り返しデータパターンのデータ量)−(繰り返しデータ領域のデータ
量)」に相当する物理ブロックがフリーブロックとなるため、SSDコントローラが利用
可能なフリーブロックを増加させることができる。上記比較元データ領域は、DRAMな
どのRAM、SSDコントローラ内のLSI若しくはRAM、又はNAND型フラッシュ
メモリ上に割り当てられる。それぞれの場合について以下に説明する。なお、本実施形態
では簡単のため、NAND型フラッシュメモリの最小管理単位は物理ページサイズに等し
いとする(一般的には最小管理単位は物理ページサイズの自然数倍であればよい)。
[1. Memory system configuration]
When the data (comparison source data) stored in the comparison source data area repeatedly exists in the physical address area of the NAND flash memory, the LB corresponding to the physical address area
A (logical address) is all associated with the comparison source data area according to this embodiment. As a result, a physical block corresponding to “(data amount of repetitive data pattern) − (data amount of repetitive data area)” becomes a free block at the maximum, so that the free blocks usable by the SSD controller can be increased. . The comparison source data area is allocated on a RAM such as a DRAM, an LSI or RAM in an SSD controller, or a NAND flash memory. Each case will be described below. In the present embodiment, for simplicity, it is assumed that the minimum management unit of the NAND flash memory is equal to the physical page size (generally, the minimum management unit may be a natural number multiple of the physical page size).

<比較元データ領域がDRAM上の場合>
図24は、比較元データ領域がDRAM12上に割り当てられる場合のメモリシステム
1のブロック図である。以後、簡単のため、NAND型フラッシュメモリ13の個別チッ
プはブロック図から省略する。
<When the comparison source data area is on DRAM>
FIG. 24 is a block diagram of the memory system 1 when the comparison source data area is allocated on the DRAM 12. Hereinafter, for simplicity, the individual chips of the NAND flash memory 13 are omitted from the block diagrams.

DRAM12は、比較元データを格納する記憶領域12Dを備えている。NAND型フ
ラッシュメモリ13は、バックアップ用の比較元データ(以後、バックアップ比較元デー
タという)を格納する記憶領域13Eを備えている。NAND型フラッシュメモリ13の
記憶領域13Eには、工場出荷時に例えば”0”で埋め尽くされたデータのような初期デ
ータが書き込まれている。DRAM12の記憶領域12DとNAND型フラッシュメモリ
13の記憶領域13Eとのサイズは等しい。SSD3の起動時に、SSDコントローラ1
1は、バックアップ比較元データをDRAM12に読み出す。
The DRAM 12 includes a storage area 12D for storing comparison source data. The NAND flash memory 13 includes a storage area 13E for storing backup comparison source data (hereinafter referred to as backup comparison source data). In the storage area 13E of the NAND flash memory 13, initial data such as data filled with “0” at the time of factory shipment is written. The storage area 12D of the DRAM 12 and the storage area 13E of the NAND flash memory 13 are equal in size. When the SSD 3 starts up, the SSD controller 1
1 reads the backup comparison source data to the DRAM 12.

本実施形態では、第1の実施形態に比べて、物理アドレスのアドレスマッピング方法に
特徴がある。図25は、物理アドレスのマッピングテーブルを説明する図である。図25
の“h”は、16進数表記を意味している。
The present embodiment is characterized by an address mapping method for physical addresses as compared to the first embodiment. FIG. 25 is a diagram for explaining a physical address mapping table. FIG.
"H" means hexadecimal notation.

NAND型フラッシュメモリ13の全物理ページには物理ブロックIDと物理ページア
ドレスとが割り当てられており、全物理ページは互いに区別可能になっている。第1の実
施形態では、物理アドレスにはNAND型フラッシュメモリ13の物理ページのみが割り
当てられていたが、本実施形態では、DRAM12上の記憶領域12D(比較元データ領
域)がNAND型フラッシュメモリの物理アドレスとして割り当てられる。比較元データ
領域の管理単位は、NAND型フラッシュメモリ13の最小管理単位に等しい、つまり本
実施形態では、物理ページサイズに等しい。
A physical block ID and a physical page address are assigned to all the physical pages of the NAND flash memory 13, and all the physical pages can be distinguished from each other. In the first embodiment, only the physical page of the NAND flash memory 13 is allocated to the physical address. However, in this embodiment, the storage area 12D (comparison source data area) on the DRAM 12 is the same as the NAND flash memory. Assigned as a physical address. The management unit of the comparison source data area is equal to the minimum management unit of the NAND flash memory 13, that is, in this embodiment, equal to the physical page size.

比較元データ領域の疑似的な物理ブロックIDは、アドレスマッピング方式によってN
AND型フラッシュメモリ13の物理ブロックIDと区別できるようになっている。比較
元データ領域が割り当てられているDRAM12の物理アドレス領域はNAND型フラッ
シュメモリの物理ページサイズごとに分割して管理され、DRAM12の物理アドレスが
小さい順にそれら管理単位に対して疑似的な物理ページアドレスが昇り順で割り当てられ
る。比較元データ領域のサイズがNAND型フラッシュメモリ13の物理ブロックサイズ
より大きい場合は、比較元データ領域が割り当てられているDRAM12の物理アドレス
領域をNAND型フラッシュメモリ13の物理ブロックサイズごとに分割し、DRAM1
2の物理アドレスが小さい順にそれらに対して疑似的な物理ブロックIDを昇り順で割り
当て、物理ページアドレスは0〜最大物理ページアドレスを繰り返す。比較元データ領域
に割り当てられている物理ブロックIDは、工場出荷時の段階からアクティブブロックテ
ーブルに登録されている。
The pseudo physical block ID of the comparison source data area is N by the address mapping method.
It can be distinguished from the physical block ID of the AND type flash memory 13. The physical address area of the DRAM 12 to which the comparison source data area is allocated is divided and managed for each physical page size of the NAND flash memory, and a pseudo physical page address is assigned to these management units in ascending order of the physical address of the DRAM 12. Are assigned in ascending order. When the size of the comparison source data area is larger than the physical block size of the NAND flash memory 13, the physical address area of the DRAM 12 to which the comparison source data area is allocated is divided for each physical block size of the NAND flash memory 13, DRAM1
The pseudo physical block IDs are assigned in ascending order to the physical addresses of 2 in ascending order, and the physical page address is repeated from 0 to the maximum physical page address. The physical block ID assigned to the comparison source data area is registered in the active block table from the factory shipment stage.

比較元データ領域のサイズは、NAND型フラッシュメモリ13の最小管理単位の自然
数倍になっている、つまり本実施形態では、物理ページサイズの自然数倍になっている。
比較元データ領域のサイズはNAND型フラッシュメモリ13の物理ブロックのサイズ以
上でもよいし、未満でもよい。以後、本実施形態では簡単のため、比較元データ領域のサ
イズは1物理ページ分とする(図26)。比較元データ領域のサイズが複数物理ページ分
の場合は、例えば比較元データ領域を物理ページごとに分割して処理すればよいので、実
施形態の本質は同じである。
The size of the comparison source data area is a natural number multiple of the minimum management unit of the NAND flash memory 13, that is, in this embodiment, is a natural number multiple of the physical page size.
The size of the comparison source data area may be larger or smaller than the physical block size of the NAND flash memory 13. Hereinafter, for the sake of simplicity in this embodiment, the size of the comparison source data area is assumed to be one physical page (FIG. 26). When the size of the comparison source data area is for a plurality of physical pages, for example, the comparison source data area may be divided and processed for each physical page, so the essence of the embodiment is the same.

<比較元データ領域がSSDコントローラ上の場合>
図27は、比較元データ領域がSSDコントローラ11上に割り当てられる場合のメモ
リシステム1のブロック図である。
<When the comparison source data area is on the SSD controller>
FIG. 27 is a block diagram of the memory system 1 when the comparison source data area is allocated on the SSD controller 11.

SSDコントローラ11上のSRAM(その他のRAMでもよい)又はLSI(その他
のROMでもよい)には、比較元データを格納する記憶領域11A(比較元データ領域)
が割り当てられている。記憶領域11AがRAMの場合は、DRAMの場合と同じように
、SSD3の起動時に、SSDコントローラ11は、バックアップ比較元データを記憶領
域11Aに読み出す。記憶領域11AがROMの場合は、工場出荷時に例えば”0”で埋
め尽くされたデータのような初期データがROMに書き込まれている。
A storage area 11A (comparison source data area) for storing comparison source data in the SRAM (or other RAM) or LSI (or other ROM) on the SSD controller 11
Is assigned. When the storage area 11A is a RAM, as in the case of a DRAM, the SSD controller 11 reads backup comparison source data to the storage area 11A when the SSD 3 is activated. When the storage area 11A is a ROM, initial data such as data filled with “0” at the time of factory shipment is written in the ROM.

図28に示すように、物理アドレスのマッピングテーブル方式は、前述したDRAMの
場合と同じである。以後、本実施形態では簡単のため、比較元データ領域のサイズは1物
理ページ分とする(図29)。
As shown in FIG. 28, the physical address mapping table method is the same as that of the DRAM described above. Hereinafter, for the sake of simplicity in this embodiment, the size of the comparison source data area is assumed to be one physical page (FIG. 29).

<比較元データ領域がNAND型フラッシュメモリ上の場合>
図30は、比較元データ領域がNAND型フラッシュメモリ13上に割り当てられる場
合のメモリシステム1のブロック図である。
<When comparison source data area is on NAND flash memory>
FIG. 30 is a block diagram of the memory system 1 when the comparison source data area is allocated on the NAND flash memory 13.

NAND型フラッシュメモリ13の一部領域には、比較元データを格納する記憶領域1
3E(比較元データ領域)が割り当てられている。NAND型フラッシュメモリ13の比
較元データ領域には、工場出荷時に例えば”0”で埋め尽くされたデータのような初期デ
ータが書き込まれている。
In a partial area of the NAND flash memory 13, a storage area 1 for storing comparison source data
3E (comparison source data area) is allocated. In the comparison source data area of the NAND flash memory 13, initial data such as data filled with “0” at the time of factory shipment is written.

図31は、物理アドレスのマッピングテーブルを説明する図である。NAND型フラッ
シュメモリ13の全物理ページには物理ブロックIDと物理ページアドレスとが割り当て
られており、かつ、これら物理ページ群の一部が比較元データ領域として割り当てられる
。比較元データ領域における管理単位などのデータ管理方式は、その他のNAND型フラ
ッシュメモリ13上の領域と同じである。比較元データ領域のサイズは、NAND型フラ
ッシュメモリ13の最小管理単位の自然数倍になっている、つまり本実施形態では、物理
ページサイズの自然数倍になっている。比較元データ領域の先頭アドレスは、いずれかの
物理ページの先頭アドレスに等しい(物理ページの途中であってはいけない)。比較元デ
ータ領域に割り当てられている物理ブロックIDは、工場出荷時の段階からアクティブブ
ロックテーブルに登録されていることが望ましい。
FIG. 31 is a diagram for explaining a physical address mapping table. A physical block ID and a physical page address are assigned to all physical pages of the NAND flash memory 13, and a part of the physical page group is assigned as a comparison source data area. The data management method such as the management unit in the comparison source data area is the same as the area on the other NAND flash memory 13. The size of the comparison source data area is a natural number multiple of the minimum management unit of the NAND flash memory 13, that is, in this embodiment, is a natural number multiple of the physical page size. The start address of the comparison source data area is equal to the start address of any physical page (must not be in the middle of a physical page). The physical block ID assigned to the comparison source data area is preferably registered in the active block table from the factory shipment stage.

比較元データ領域のサイズはNAND型フラッシュメモリ13の物理ブロックのサイズ
以上でもよいし、未満でもよい。以後、本実施形態では簡単のため、比較元データ領域の
サイズは1物理ページ分とする(図32)。比較元データ領域のサイズが複数物理ページ
分の場合は、例えば比較元データ領域を物理ページごとに分割して処理すればよいので、
実施形態の本質は同じである。
The size of the comparison source data area may be larger or smaller than the physical block size of the NAND flash memory 13. Hereinafter, for the sake of simplicity in this embodiment, the size of the comparison source data area is assumed to be one physical page (FIG. 32). If the size of the comparison source data area is for a plurality of physical pages, for example, the comparison source data area may be divided and processed for each physical page.
The essence of the embodiment is the same.

以上、比較元データ領域がDRAM12、SSDコントローラ11、又はNAND型フ
ラッシュメモリ13上に割り当てられた場合について説明してきたが、いずれの場合であ
っても、比較元データ領域は通常のNAND型フラッシュメモリの物理ページと同等の物
理アドレスマッピングがされ、同等に扱うことができる。よって、以降の説明は、比較元
データ領域が確保される部分(DRAM12、SSDコントローラ11、又はNAND型
フラッシュメモリ13)に関わらず同じように実施可能である。
The case where the comparison source data area is allocated on the DRAM 12, the SSD controller 11 or the NAND flash memory 13 has been described above. In any case, the comparison source data area is a normal NAND flash memory. Physical address mapping equivalent to that of the physical page is performed and can be handled in the same way. Therefore, the following description can be carried out in the same manner regardless of the portion (DRAM 12, SSD controller 11, or NAND flash memory 13) where the comparison source data area is secured.

次に、ホスト装置2の構成について説明する。図33は、ホスト装置2のブロック図で
ある。DRAM23は、関数fの代わりに、比較元データを格納する記憶領域23Eを含
んでいる。その他の構成は、第1の実施形態の図3と同じである。
Next, the configuration of the host device 2 will be described. FIG. 33 is a block diagram of the host device 2. The DRAM 23 includes a storage area 23E for storing comparison source data instead of the function f. Other configurations are the same as those in FIG. 3 of the first embodiment.

ホスト装置2のCPU20は、ホスト装置2の起動時又は最適化プログラムの起動時に
、SSD3に比較元データを読み出すための読み出し命令を送信し、SSD3から読み出
された比較元データをDRAM23の記憶領域23Eに格納する。読み出しには、読み出
しコマンドを用いてもよいし、ベンダー独自のコマンドなどその他のコマンドを用いても
よい。或いは、ホスト装置2に接続された他の外部記憶装置に比較元データを保存してお
き、ホスト装置2の起動時又は最適化プログラムの起動時に、ホスト装置2のCPU20
が当該外部記憶装置から比較元データを読み出すようにしてもよい。
The CPU 20 of the host device 2 transmits a read command for reading the comparison source data to the SSD 3 when the host device 2 is started or when the optimization program is started, and the comparison source data read from the SSD 3 is stored in the storage area of the DRAM 23. 23E. For reading, a read command may be used, or another command such as a vendor-specific command may be used. Alternatively, the comparison source data is stored in another external storage device connected to the host device 2, and the CPU 20 of the host device 2 is activated when the host device 2 is activated or when the optimization program is activated.
However, the comparison source data may be read from the external storage device.

[2.動作]
<2−1.NAND整理処理>
図34は、SSD3のNAND整理処理を示すフローチャートである。SSDコントロ
ーラ11は、列番号i=0、空き領域累積量s=0に設定する(ステップS160)。続
いて、SSDコントローラ11は、DRAM12からアクティブブロックテーブルの先頭
行を読み出し、物理ブロックIDを取得する(ステップS161)。ステップS161に
て取得した物理ブロックIDを現在物理ブロックIDと呼ぶ。
[2. Operation]
<2-1. NAND organization processing>
FIG. 34 is a flowchart showing NAND organization processing of SSD3. The SSD controller 11 sets the column number i = 0 and the free space accumulated amount s = 0 (step S160). Subsequently, the SSD controller 11 reads the first row of the active block table from the DRAM 12 and obtains the physical block ID (step S161). The physical block ID acquired in step S161 is referred to as a current physical block ID.

続いて、SSDコントローラ11は、図26、図29又は図32のアドレスマッピング
に基づき、現在物理ブロックIDが比較元データ領域を含むか否かを判定する(ステップ
S162)。現在物理ブロックIDが比較元データ領域を含む場合、SSDコントローラ
11は、現在物理ブロックIDをインクリメントして、作業対象を次の物理ブロックID
に移す(ステップS163)。現在物理ブロックIDが比較元データ領域を含まない場合
、第1の実施形態の図8と同様に、DRAM12からアクティブページテーブルを読み出
し、現在物理ブロックIDに含まれる全物理ページアドレスを取得する(ステップS16
4)。このようにして、比較元データ領域はNAND整理対象から除外される。比較元デ
ータ領域はNAND整理対象から除外されるのが望ましいが、比較元データ領域をNAN
D整理対象としてもよい。以後のフローは第1の実施形態の図8と同じである。
Subsequently, the SSD controller 11 determines whether or not the current physical block ID includes the comparison source data area based on the address mapping of FIG. 26, FIG. 29, or FIG. 32 (step S162). When the current physical block ID includes the comparison source data area, the SSD controller 11 increments the current physical block ID and sets the work target as the next physical block ID.
(Step S163). When the current physical block ID does not include the comparison source data area, the active page table is read from the DRAM 12 and all the physical page addresses included in the current physical block ID are acquired, as in FIG. 8 of the first embodiment (step S16
4). In this way, the comparison source data area is excluded from the NAND organization. The comparison source data area is preferably excluded from the NAND organization, but the comparison source data area is
It is good also as D rearrangement object. The subsequent flow is the same as in FIG. 8 of the first embodiment.

<2−2.削除通知処理>
次に、SSD3の削除通知処理について説明する。図35は、SSD3の削除通知処理
を示すフローチャートである。SSD3は、ホスト装置2から削除通知を受信する(ステ
ップS180)。削除通知には、削除コマンド、及び論理アドレスが含まれる。
<2-2. Deletion notification processing>
Next, the SSD 3 deletion notification process will be described. FIG. 35 is a flowchart showing the deletion notification process of the SSD 3. The SSD 3 receives a deletion notification from the host device 2 (step S180). The deletion notification includes a deletion command and a logical address.

続いて、SSDコントローラ11は、DRAM12からアクティブページテーブルを読
み出す(ステップS181)。続いて、SSDコントローラ11は、アクティブページテ
ーブルにおいて、削除通知によって指定された削除対象となる論理アドレス領域(削除対
象論理領域)を比較元データ領域と関連付ける(ステップS182)。本実施形態では、
比較元データ領域のサイズは1物理ページ分であるので、削除対象論理領域は1論理ペー
ジ分である。
Subsequently, the SSD controller 11 reads the active page table from the DRAM 12 (step S181). Subsequently, the SSD controller 11 associates the logical address area (deletion target logical area) to be deleted designated by the deletion notification with the comparison source data area in the active page table (step S182). In this embodiment,
Since the size of the comparison source data area is one physical page, the deletion target logical area is one logical page.

続いて、SSDコントローラ11は、DRAM12からアクティブブロックテーブルを
読み出す(ステップS183)。続いて、SSDコントローラ11は、アクティブブロッ
クテーブルを参照し、アクティブページテーブルに物理ブロックIDを持たない物理ブロ
ックをアクティブブロックテーブルから削除してフリーブロックテーブルに追加する(ス
テップS184)。このように、SSD3は、NAND整理以外に、削除通知処理によっ
てもフリーブロックを確保することができる。
Subsequently, the SSD controller 11 reads the active block table from the DRAM 12 (step S183). Subsequently, the SSD controller 11 refers to the active block table, deletes the physical block having no physical block ID in the active page table, and adds it to the free block table (step S184). As described above, the SSD 3 can secure a free block not only by NAND arrangement but also by deletion notification processing.

<2−3.読み出し動作>
次に、SSD3の読み出し動作について説明する。図36は、SSD3の読み出し動作
を示すフローチャートである。SSD3は、ホスト装置2から読み出し命令を受信する(
ステップS190)。読み出し命令には、読み出しコマンド、及び論理アドレスが含まれ
る。
<2-3. Read operation>
Next, the reading operation of the SSD 3 will be described. FIG. 36 is a flowchart showing the read operation of the SSD 3. The SSD 3 receives a read command from the host device 2 (
Step S190). The read command includes a read command and a logical address.

続いて、SSDコントローラ11は、DRAM12からアクティブブロックテーブルを
読み出し(ステップS191)、ホスト装置2から受信した論理アドレスに対応する物理
ブロックIDを参照する。続いて、SSDコントローラ11は、アクティブページテーブ
ルを読み出し(ステップS192)、図26、図29又は図32のアドレスマッピングに
基づき、該当する物理アドレスの読み出し動作を行う(ステップS193)。この時、読
み出し対象がDRAM12やSSDコントローラ11上の比較元データ領域である場合は
、読み出し動作が高速に行われるため、読み出しパフォーマンスが向上する。そして、S
SDコントローラ11は、読み出したデータをホスト装置2に送信する(ステップS19
4)。
Subsequently, the SSD controller 11 reads the active block table from the DRAM 12 (step S191), and refers to the physical block ID corresponding to the logical address received from the host device 2. Subsequently, the SSD controller 11 reads the active page table (step S192), and performs a corresponding physical address read operation based on the address mapping of FIG. 26, FIG. 29, or FIG. 32 (step S193). At this time, when the read target is the comparison source data area on the DRAM 12 or the SSD controller 11, the read operation is performed at a high speed, so that the read performance is improved. And S
The SD controller 11 transmits the read data to the host device 2 (step S19).
4).

<2−4.最適化処理>
次に、ホスト装置2の最適化処理について説明する。図37は、ホスト装置2の最適化
処理を示すフローチャートである。最適化フラグの設定処理は、これまでに述べたホスト
装置2の処理と同様である。
<2-4. Optimization process>
Next, the optimization process of the host device 2 will be described. FIG. 37 is a flowchart showing optimization processing of the host device 2. The optimization flag setting process is the same as that of the host apparatus 2 described so far.

ホスト装置2のCPU20は、最適化フラグを監視し(ステップS200)、最適化フ
ラグが立っていることを確認すると、現在論理アドレスを0に設定する(ステップS20
1)。続いて、CPU20は、現在論理アドレスからページサイズ分のデータ、すなわち
現在論理アドレスから1つの論理ページ分を読み出すための読み出し命令をSSD3に送
信する(ステップS202)。これに対して、SSD3は、ホスト装置2から受信した読
み出し命令に従って読み出し処理を行い、読み出しデータをホスト装置2に送信する。
The CPU 20 of the host device 2 monitors the optimization flag (step S200), and if it is confirmed that the optimization flag is set, the current logical address is set to 0 (step S20).
1). Subsequently, the CPU 20 transmits to the SSD 3 a read command for reading data for the page size from the current logical address, that is, one logical page from the current logical address (step S202). On the other hand, the SSD 3 performs read processing in accordance with the read command received from the host device 2 and transmits read data to the host device 2.

続いて、CPU20は、SSD3から1つの論理ページ分の読み出しデータを受信する
(ステップS203)。続いて、CPU20は、読み出しデータがDRAM23の記憶領
域23Eに格納された比較元データと一致しているか否かを判定する(ステップS204
)。読み出しデータが比較元データと一致している場合、CPU20は、読み出した論理
アドレス領域に対して削除通知を行う(ステップS205)。これに対して、SSD3は
、前述した削除通知処理を行う。
Subsequently, the CPU 20 receives read data for one logical page from the SSD 3 (step S203). Subsequently, the CPU 20 determines whether or not the read data matches the comparison source data stored in the storage area 23E of the DRAM 23 (step S204).
). If the read data matches the comparison source data, the CPU 20 issues a deletion notification to the read logical address area (step S205). In contrast, the SSD 3 performs the deletion notification process described above.

続いて、CPU20は、現在論理アドレスにページサイズ分を追加する(ステップS2
06)。続いて、CPU20は、全論理ページを読み出すまで、ステップS202〜S2
06の処理を繰り返す(ステップS207)。最適化を行うLBA領域は全LBA領域で
あってもよいし、LBA領域の一部であってもよい。
Subsequently, the CPU 20 adds the page size to the current logical address (step S2).
06). Subsequently, the CPU 20 performs steps S202 to S2 until all logical pages are read.
The process of 06 is repeated (step S207). The LBA area to be optimized may be the entire LBA area or a part of the LBA area.

この最適化処理によって削除通知処理が行われた論理ページ群は、SSD3内の比較元
データ領域の物理アドレスに関連付けられることになる。削除通知処理が行われた論理ペ
ージに関してホスト装置2がSSD3に読み出し命令を送信すると、比較元データをSS
D3から受信するため、ホスト装置2からみたSSD内部のデータは最適化処理前と変わ
らない。一方、比較元データ領域がSSD3側のDRAMやSSDコントローラに存在す
る場合、比較元データの読み出し動作は高速に行われるため、削除通知対象の論理ページ
読み出しのパフォーマンスは、最適化処理前に比べて増大する。
The logical page group subjected to the deletion notification process by this optimization process is associated with the physical address of the comparison source data area in the SSD 3. When the host device 2 sends a read command to the SSD 3 regarding the logical page on which the deletion notification process has been performed, the comparison source data is changed to SS.
Since the data is received from D3, the data in the SSD viewed from the host device 2 is the same as before the optimization process. On the other hand, when the comparison source data area exists in the DRAM or SSD controller on the SSD 3 side, the read operation of the comparison source data is performed at a high speed, so that the performance of reading the logical page to be deleted notification is higher than that before the optimization process. Increase.

[3.効果]
以上詳述した第7の実施形態によれば、以下のような効果が得られる。
[3. Effect]
According to the seventh embodiment described in detail above, the following effects can be obtained.

ホスト装置2上で有効なユーザデータのうち比較元データと同じである論理アドレス領
域に関して、ホスト装置2からSSD3に対して削除通知を送信する。これにより、削除
通知が行われた論理アドレスがSSD3内の比較元データ領域の物理アドレスに関連付け
られる。そして、削除通知処理が行われたユーザデータをSSD3側のDRAMやSSD
コントローラに存在する比較元データ領域から読み出すことで、当該ユーザデータの読み
出し動作を高速化することができる。
Regarding the logical address area that is the same as the comparison source data among the valid user data on the host device 2, the host device 2 sends a deletion notification to the SSD 3. As a result, the logical address to which the deletion notification is made is associated with the physical address of the comparison source data area in the SSD 3. Then, the user data subjected to the deletion notification process is transferred to the DRAM or SSD on the SSD 3 side.
By reading from the comparison source data area existing in the controller, it is possible to speed up the reading operation of the user data.

また、最適化処理を行うことでフリーブロックを確保することができるため、最適化処
理後は書き込み動作のパフォーマンスが向上し、かつSSD3の信頼性劣化が軽減する。
本実施形態の効果は、ホスト装置2上で有効なユーザデータのうち比較元データに一致す
るデータが多ければ多いほど効果が増大する。
Further, since the free block can be secured by performing the optimization process, the performance of the write operation is improved after the optimization process, and the reliability deterioration of the SSD 3 is reduced.
The effect of the present embodiment increases as the number of pieces of user data valid on the host device 2 matches the comparison source data increases.

[4.実施例]
(実施例1)
第8の実施形態に第2の実施形態を適用してもよい。すなわち、実施例1は、第2の実
施形態と同様に、ホスト装置内のOSの管理領域にアクセスすることでファイルリストを
取得し、ファイル単位で最適化処理を行うようにしている。
[4. Examples]
Example 1
The second embodiment may be applied to the eighth embodiment. That is, in the first embodiment, as in the second embodiment, the file list is acquired by accessing the management area of the OS in the host device, and the optimization process is performed on a file basis.

図38は、実施例1に係るホスト装置2の最適化処理を示すフローチャートである。フ
ァイル単位でSSD3から読み出しデータを受信する工程は、第2の実施形態の図16と
同じである。
FIG. 38 is a flowchart illustrating the optimization process of the host device 2 according to the first embodiment. The process of receiving read data from the SSD 3 in file units is the same as that in FIG. 16 of the second embodiment.

続いて、ホスト装置2のCPU20は、読み出したファイル内に比較元データと一致す
る論理ページが存在するか否かを判定する(ステップS215)。比較元データと一致す
る論理ページが存在する場合、CPU20は、該当する論理ページに対して削除通知を行
う(ステップS216)。これに対して、SSD3は、前述した削除通知処理を行う。そ
の後の工程は、第2の実施形態の図16と同じである。
Subsequently, the CPU 20 of the host apparatus 2 determines whether or not a logical page that matches the comparison source data exists in the read file (step S215). If there is a logical page that matches the comparison source data, the CPU 20 notifies the corresponding logical page of deletion (step S216). In contrast, the SSD 3 performs the deletion notification process described above. The subsequent processes are the same as those in FIG. 16 of the second embodiment.

以上詳述したように実施例1では、最適化処理において、全論理アドレス空間に対する
読み出し動作を行わず、ホスト装置2上で有効なファイルに対してのみ読み出し動作を行
うようにしている。このため、最適化対象のデータ量を減らすことができるため、最適化
処理にかかる時間を短縮することができる。最適化を行うファイルは全ファイルであって
もよいし、一部のファイルであってもよい。
As described above in detail, in the first embodiment, in the optimization process, the read operation is not performed on the entire logical address space, and the read operation is performed only on the valid file on the host device 2. For this reason, since the amount of data to be optimized can be reduced, the time required for the optimization process can be shortened. The files to be optimized may be all files or some files.

(実施例2)
SSD上の比較元データ、及びホスト装置上の比較元データは、工場出荷後に書き換え
られてもよい。図39は、実施例2に係るホスト装置2の比較元データ書き換え処理を示
すフローチャートである。
(Example 2)
The comparison source data on the SSD and the comparison source data on the host device may be rewritten after factory shipment. FIG. 39 is a flowchart illustrating the comparison source data rewriting process of the host device 2 according to the second embodiment.

ホスト装置2のCPU20は、例えばユーザの指示に応答して、DRAM23の記憶領
域23Eに格納された旧比較元データを新比較元データに書き換える(ステップS220
)。続いて、CPU20は、比較元データを書き換えるための書き換え命令、及び比較元
データをSSD3に送信する(ステップS221)。比較元データを書き換えるための書
き換え命令は、通常の書き込み命令でもよいし、ベンダー独自の命令などその他命令でも
よい。
For example, in response to a user instruction, the CPU 20 of the host device 2 rewrites the old comparison source data stored in the storage area 23E of the DRAM 23 with new comparison source data (step S220).
). Subsequently, the CPU 20 transmits a rewrite command for rewriting the comparison source data and the comparison source data to the SSD 3 (step S221). The rewrite command for rewriting the comparison source data may be a normal write command or other commands such as a vendor-specific command.

図40は、実施例2に係るSSD3の比較元データ書き換え処理を示すフローチャート
である。SSD3は、ホスト装置2から比較元データの書き換え命令、及び比較元データ
を受信する(ステップS230)。
FIG. 40 is a flowchart illustrating the comparison source data rewriting process of the SSD 3 according to the second embodiment. The SSD 3 receives the comparison source data rewrite command and the comparison source data from the host device 2 (step S230).

SSD3の比較元データを書き換える場合、NAND型フラッシュメモリ13のデータ
に矛盾が生じないようにする必要がある。そこで、SSDコントローラ11は、旧比較元
データに関連付けられた論理ページに旧比較元データを書き込む(ステップS231)。
例えば、SSDコントローラ11は、旧比較元データをNAND型フラッシュメモリ13
の論理アドレス領域のうち旧比較元データに関連付けられた論理ページの数だけ複製し、
これら論理ページに旧比較元データを書き込む。続いて、SSDコントローラ11は、N
AND型フラッシュメモリ13やDRAM12の比較元データ領域を新比較元データに書
き換える(ステップS232)。
When the comparison source data of the SSD 3 is rewritten, it is necessary to prevent inconsistency in the data of the NAND flash memory 13. Therefore, the SSD controller 11 writes the old comparison source data in the logical page associated with the old comparison source data (step S231).
For example, the SSD controller 11 converts the old comparison source data into the NAND flash memory 13.
Duplicate the number of logical pages associated with the old comparison source data in the logical address area of
The old comparison source data is written in these logical pages. Subsequently, the SSD controller 11
The comparison source data area of the AND flash memory 13 or DRAM 12 is rewritten with new comparison source data (step S232).

本実施形態では、簡単のため、各種物理アドレスは管理情報においてLBAに対して直
接関連付けられていたが、例えば特開2009−217603号のようにセクタサイズの
2以上の自然数倍の管理単位を用いてLBAを管理し、LBAではなく、上記管理単位と
NAND型フラッシュメモリとの対応関係を管理情報に記述するようにしてもよい。LB
Aの管理単位などのように、NAND型フラッシュメモリの物理アドレスとLBAとの対
応関係を記述する管理情報は様々な形態をとりうるが、物理アドレスとLBAとの対応関
係を記述するテーブル(論物変換テーブル)の取る形態の詳細は、本実施形態の本質には
影響しない。
In this embodiment, for the sake of simplicity, various physical addresses are directly associated with the LBA in the management information. However, for example, as shown in Japanese Patent Application Laid-Open No. 2009-217603, a management unit that is a natural number multiple of 2 or more of the sector size is used. It is also possible to manage the LBA by using the management information and describe the correspondence between the management unit and the NAND flash memory instead of the LBA. LB
The management information describing the correspondence between the physical address of the NAND flash memory and the LBA, such as the management unit of A, can take various forms, but a table describing the correspondence between the physical address and the LBA (theory). The details of the form taken by the object conversion table do not affect the essence of the present embodiment.

また、本実施形態においては、NAND型フラッシュメモリにホスト装置から受信した
データが書き込まれるとき、ホスト装置から受信したデータそのもの(平文)が記録され
るとしたが、平文をランダマイズしてNAND型フラッシュメモリに記憶したり、平文を
暗号化してNAND型フラッシュメモリに記憶したりする場合にも本実施形態は適用可能
である。
In this embodiment, when the data received from the host device is written in the NAND flash memory, the data itself (plain text) received from the host device is recorded. However, the plain text is randomized to obtain the NAND flash memory. The present embodiment can also be applied when storing in a memory or encrypting plaintext and storing it in a NAND flash memory.

[第8の実施形態]
第8の実施形態は、第7の実施形態で示した比較元データに関する最適化処理をSSD
3自身が行うようにしている。SSD3が備える比較元データ領域の構成は第7の実施形
態と同じであり、SSD3が備える比較元データ領域は、DRAMなどのRAM、SSD
コントローラ内のLSI若しくはRAM、又はNAND型フラッシュメモリ上に割り当て
られる。また、第7の実施形態と同様に、本実施形態では簡単のため、比較元データ領域
のサイズは1物理ページ分とする。
[Eighth Embodiment]
In the eighth embodiment, the optimization processing related to the comparison source data shown in the seventh embodiment is performed with the SSD.
3 is doing it itself. The configuration of the comparison source data area included in the SSD 3 is the same as that of the seventh embodiment, and the comparison source data area included in the SSD 3 includes a RAM such as a DRAM, an SSD.
It is allocated on the LSI or RAM in the controller, or on the NAND flash memory. Similarly to the seventh embodiment, for the sake of simplicity in this embodiment, the size of the comparison source data area is assumed to be one physical page.

図41は、第8の実施形態に係るSSD3の最適化処理を示すフローチャートである。
SSDコントローラ11は、DRAM12の記憶領域12Cに最適化フラグが立っている
ことを確認すると(ステップS240)、アクティブページテーブルの1行目を現在行に
設定する(ステップS241)。続いて、SSDコントローラ11は、DRAM12から
アクティブページテーブルの現在行を読み出す(ステップS242)。
FIG. 41 is a flowchart showing the optimization process of the SSD 3 according to the eighth embodiment.
When the SSD controller 11 confirms that the optimization flag is set in the storage area 12C of the DRAM 12 (step S240), the SSD controller 11 sets the first line of the active page table as the current line (step S241). Subsequently, the SSD controller 11 reads the current row of the active page table from the DRAM 12 (step S242).

続いて、SSDコントローラ11は、現在行が示す物理アドレスが比較元データ領域で
あるか否かを判定する(ステップS243)。現在行が示す物理アドレスが比較元データ
領域である場合は、当該物理アドレスに対して最適化処理は行われない。一方、現在行が
示す物理アドレスが比較元データ領域でない場合は、NAND型フラッシュメモリ13か
ら現在行が示す物理ページを読み出す(ステップS244)。
Subsequently, the SSD controller 11 determines whether or not the physical address indicated by the current row is the comparison source data area (step S243). When the physical address indicated by the current row is the comparison source data area, the optimization process is not performed on the physical address. On the other hand, if the physical address indicated by the current row is not the comparison source data area, the physical page indicated by the current row is read from the NAND flash memory 13 (step S244).

続いて、SSDコントローラ11は、読み出しデータが比較元データと一致しているか
否かを判定する(ステップS245)。読み出しデータが比較元データと一致している場
合、SSDコントローラ11は、アクティブページテーブルの現在行に、比較元データ領
域に疑似的に割り当てられた物理ブロックID、及び比較元データ領域に疑似的に割り当
てられた物理ページアドレスを書き込む(ステップS246)。読み出されたデータが比
較元データ領域のデータに一致しない場合は、当該物理ページに対して最適化処理は行わ
れない。
Subsequently, the SSD controller 11 determines whether or not the read data matches the comparison source data (step S245). When the read data matches the comparison source data, the SSD controller 11 pseudo-assigns the physical block ID assigned to the comparison source data area to the current row of the active page table and the comparison source data area. The allocated physical page address is written (step S246). If the read data does not match the data in the comparison source data area, the optimization process is not performed on the physical page.

その後、第6の実施形態の図23と同様に、アクティブページテーブルの全行に対して
最適化処理が行われる。最適化処理は一部の行について行われてもよい。続いて、SSD
コントローラ11は、アクティブブロックテーブル及びフリーブロックテーブルを更新す
る(ステップS250)。すなわち、SSDコントローラ11は、アクティブブロックテ
ーブルを参照し、NAND型フラッシュメモリ13の比較元データ領域以外の領域のうち
アクティブページテーブルに要素を持たない物理ブロックに関して、アクティブブロック
テーブルから削除してフリーブロックテーブルに追加する。なお、割込み命令が急を要す
る場合には、アクティブブロックテーブル及びフリーブロックテーブルの更新を後で行う
ようにしてもよい。
Thereafter, as in FIG. 23 of the sixth embodiment, optimization processing is performed on all rows of the active page table. The optimization process may be performed for some rows. Next, SSD
The controller 11 updates the active block table and the free block table (step S250). That is, the SSD controller 11 refers to the active block table, and deletes a physical block having no element in the active page table from the active block table among the areas other than the comparison source data area of the NAND flash memory 13 and free blocks. Add to table. If the interrupt instruction is urgent, the active block table and free block table may be updated later.

SSD3の読み出し動作及びNAND整理動作については、第7の実施形態と同じであ
る。
The read operation and the NAND organizing operation of the SSD 3 are the same as those in the seventh embodiment.

以上詳述したように第8の実施形態によれば、比較元データ領域のデータと同じデータ
を有する物理ページが複数ある場合、最適化処理により複数の論理アドレス(LBA)が
単一の比較元データ領域に関連付けられることになる。上記論理アドレスに関連付けられ
ていた物理ページは解放されることになり、それによりフリーブロックを新たに確保でき
た場合は、最適化処理後は書き込み動作のパフォーマンスが向上し、かつSSD3の信頼
性劣化が軽減する。
As described above in detail, according to the eighth embodiment, when there are a plurality of physical pages having the same data as the data in the comparison source data area, a plurality of logical addresses (LBA) are converted into a single comparison source by the optimization process. It will be associated with the data area. If the physical page associated with the logical address is released, and a new free block can be secured as a result, the performance of the write operation is improved after the optimization process, and the reliability of the SSD 3 is degraded. Is reduced.

また、比較元データ領域がRAM上やSSDコントローラ上に確保されている場合は、
比較元データ領域に関連付けられた論理アドレスに関してホスト装置2がSSD3に読み
出し命令を送信すると、NAND型フラッシュメモリ13の読み出しが伴う読み出し動作
よりも高速に読み出し動作が行われる。これにより、読み出しパフォーマンスが向上する
。本実施形態の効果は、NAND型フラッシュメモリ13に書き込まれたデータのうち比
較元データ領域に一致するデータが多ければ多いほど増大する。
If the comparison source data area is secured on the RAM or the SSD controller,
When the host device 2 transmits a read command to the SSD 3 with respect to the logical address associated with the comparison source data area, the read operation is performed at a higher speed than the read operation accompanied by the reading of the NAND flash memory 13. This improves read performance. The effect of the present embodiment increases as the data that matches the comparison source data area among the data written in the NAND flash memory 13 increases.

なお、第7の実施形態と同様に、SSD上の比較元データは、工場出荷後に書き換える
ようにしてもよい。この場合は、旧比較元データをNAND型フラッシュメモリ13の論
理アドレス領域のうち旧比較元データに関連付けられた論理ページの数だけ複製し、これ
ら論理ページに旧比較元データを書き込む。その後、NAND型フラッシュメモリ13や
DRAM12の比較元データ領域を新比較元データに書き換えることで、データに矛盾が
生じない。
As in the seventh embodiment, the comparison source data on the SSD may be rewritten after factory shipment. In this case, the old comparison source data is duplicated by the number of logical pages associated with the old comparison source data in the logical address area of the NAND flash memory 13, and the old comparison source data is written to these logical pages. Thereafter, the comparison source data area of the NAND flash memory 13 or the DRAM 12 is rewritten with new comparison source data, so that no contradiction occurs in the data.

また、最適化フラグを立てる条件としては、ホスト装置2から明示的に指示された場合
に限らない。すなわち、第6の実施形態と同様に、ホスト装置2から一定期間(例えば1
0秒)アクセスがない場合に最適化フラグを立てるようにしてもよいし、フリーブロック
数が規定値(例えば、設計時に予め決められている規定値)を下回った場合に最適化フラ
グを立てるようにしてもよい。
Further, the condition for setting the optimization flag is not limited to the case where the host apparatus 2 explicitly instructs it. That is, as in the sixth embodiment, the host apparatus 2 receives a certain period (for example, 1
(0 second) An optimization flag may be set when there is no access, or an optimization flag is set when the number of free blocks falls below a specified value (for example, a specified value determined in advance at the time of design). It may be.

本実施形態では、簡単のため、各種物理アドレスは管理情報においてLBAに対して直
接関連付けられていたが、例えば特開2009−217603号のようにセクタサイズの
2以上の自然数倍の管理単位を用いてLBAを管理し、LBAではなく、上記管理単位と
NAND型フラッシュメモリとの対応関係を管理情報に記述するようにしてもよい。LB
Aの管理単位などのように、NAND型フラッシュメモリの物理アドレスとLBAとの対
応関係を記述する管理情報は様々な形態をとりうるが、物理アドレスとLBAとの対応関
係を記述するテーブル(論物変換テーブル)の取る形態の詳細は、本実施形態の本質には
影響しない。
In this embodiment, for the sake of simplicity, various physical addresses are directly associated with the LBA in the management information. It is also possible to manage the LBA by using the management information and describe the correspondence between the management unit and the NAND flash memory instead of the LBA. LB
The management information describing the correspondence between the physical address of the NAND flash memory and the LBA, such as the management unit of A, can take various forms, but a table describing the correspondence between the physical address and the LBA (theory). The details of the form taken by the object conversion table do not affect the essence of the present embodiment.

また、本実施形態においては、NAND型フラッシュメモリにホスト装置から受信した
データが書き込まれるとき、ホスト装置から受信したデータそのもの(平文)が記録され
るとしたが、平文をランダマイズしてNAND型フラッシュメモリに記憶したり、平文を
暗号化してNAND型フラッシュメモリに記憶したりする場合にも本実施形態は適用可能
である。その際、ステップS245におけるデータの比較は、復号後の平文について行わ
れることが望ましいが、復号前のランダマイズデータまたは暗号化データについて行って
もよい。
In this embodiment, when the data received from the host device is written in the NAND flash memory, the data itself (plain text) received from the host device is recorded. However, the plain text is randomized to obtain the NAND flash memory. The present embodiment can also be applied when storing in a memory or encrypting plaintext and storing it in a NAND flash memory. At this time, the comparison of data in step S245 is desirably performed on the plaintext after decryption, but may be performed on the randomized data or the encrypted data before decryption.

[第9の実施形態]
第1乃至6の実施形態では、ホスト装置(情報処理装置)内又はSSD内の関数f(L
BA)を用いて最適化処理を行っている。第9の実施形態では、最適化プログラム設計時
、製品設計時若しくは工場出荷前において、又は工場出荷後において関数f(LBA)を
決定する手法について説明する。特に、SSDにインストールするOSやシステム構成が
決定しているときは、それらシステムに対して最適な関数f(LBA)を最適化プログラ
ム設計時、製品設計時若しくは工場出荷前に設定しておくことが望ましい。
[Ninth Embodiment]
In the first to sixth embodiments, the function f (L in the host device (information processing device) or SSD
BA) is used for optimization processing. In the ninth embodiment, a method for determining the function f (LBA) at the time of designing an optimization program, at the time of product design, before factory shipment, or after factory shipment will be described. In particular, when the OS and system configuration to be installed on the SSD are determined, the optimal function f (LBA) for these systems should be set at the time of optimization program design, product design, or factory shipment. Is desirable.

(実施例1)
図42は、論理アドレス及びデータの一例を示す図である。SSDの論理アドレス領域
は、論理アドレス(LBA)によってホスト装置に認識される。論理アドレスは1セクタ
が最小管理単位となっており、1セクタは例えば512バイトである。図42のように、
各セクタに対し論理アドレス(0000h、0001h、0002h、・・・、ba02h、・・・)が割り当
てられている。
Example 1
FIG. 42 is a diagram illustrating an example of logical addresses and data. The logical address area of the SSD is recognized by the host device by the logical address (LBA). In the logical address, one sector is the minimum management unit, and one sector is, for example, 512 bytes. As shown in FIG.
Logical addresses (0000h, 0001h, 0002h,..., Ba02h,...) Are assigned to each sector.

図42は、あるSSD搭載パーソナルコンピュータにおいて、予めOSやその他ソフト
ウェアをインストールしておいてから出荷する場合に、SSDに出荷前に書き込まれるデ
ータパターンの例である。或いは、実際には書かれていなくても、エンドユーザが書き込
むであろうデータを想定して(シミュレートして)以下のように関数f(LBA)を決定
してもよい。
FIG. 42 shows an example of a data pattern that is written on an SSD before shipment in a certain SSD-equipped personal computer when the OS and other software are installed in advance and then shipped. Alternatively, the function f (LBA) may be determined as follows assuming (simulating) data that the end user will write even though it is not actually written.

SSDは例えば出荷前にフルフォーマットが行われ、全論理アドレス領域に0データが
書き込まれる。その後、SSDにOSやその他ソフトウェアがインストールされ、一部セ
クタに0でないデータが書き込まれる(図42のLBA=0000h、0001h、0003h、ba02hな
ど)。書き込みが行われていない論理アドレスに関しては“0”で埋め尽くされた1セク
タ長のデータ(0-fillセクタ)が書き込まれたままである(図42のLBA=0002h、000
4h、0005h、ba03hなど)。LBA=ba03h以降はデータが書かれておらず、全て0-fillセク
タのままである。
The SSD is fully formatted before shipping, for example, and 0 data is written in all logical address areas. Thereafter, the OS and other software are installed in the SSD, and non-zero data is written in some sectors (LBA = 0000h, 0001h, 0003h, ba02h, etc. in FIG. 42). For a logical address that has not been written, data of one sector length (0-fill sector) filled with “0” remains written (LBA = 0002h, 000 in FIG. 42).
4h, 0005h, ba03h, etc.). After LBA = ba03h, no data is written and all 0-fill sectors remain.

全論理アドレスを読み出して、0-fillセクタと比較することで、図43のような0-fill
セクタの存在確率分布を導くことができる。また、比較時に、0-fillセクタとなっている
セクタ数合計を全論理アドレス領域の合計容量で割ると、正味の0-fillセクタの割合を導
くことができる。
By reading all logical addresses and comparing them with 0-fill sectors, 0-fill as shown in FIG.
The existence probability distribution of the sector can be derived. Further, when comparing, the total number of sectors that are 0-fill sectors is divided by the total capacity of all logical address areas, so that the net ratio of 0-fill sectors can be derived.

関数f(LBA)=000・・・0(固定値、0は512バイト分の繰り返し)とする
ことで、最大で0-fillセクタとなっているセクタ数合計相当のブロックを開放してフリー
ブロックを確保することができる。
By setting the function f (LBA) = 000... 0 (fixed value, 0 is a repetition of 512 bytes), the block corresponding to the total number of sectors that is 0-fill sector at maximum is released and free block Can be secured.

また、最適化処理は、この正味の0-fillセクタの割合が有意であるとき(例えば5%以
上であるとき)にのみ行うようにしてもよい。また、関数f(LBA)の書き換えは、こ
の正味の0-fillセクタの割合が有意であるとき(例えば5%以上であるとき)にのみ行う
ようにしてもよい。0-fillセクタの割合が有意であるかどうかの基準は、例えば、以下の
ように決定される。
Further, the optimization process may be performed only when the ratio of the net 0-fill sector is significant (for example, when it is 5% or more). The function f (LBA) may be rewritten only when the ratio of the net 0-fill sector is significant (for example, 5% or more). The criterion for determining whether the proportion of 0-fill sectors is significant is determined as follows, for example.

(1)書き込み応答時間が所定値(例えば仕様書に提示されたスペック)以下となるこ
とを保証できるためのフリーブロックの全容量に占める割合
(2)Write Amplification(WA)が所定値以下となることを保証できるためのフリ
ーブロックの全容量に占める割合
なお、上記WAは以下のようにして定義される。
(1) The ratio of the free block to the total capacity of the free block for ensuring that the write response time is less than a predetermined value (for example, the specification presented in the specification) (2) Write Amplification (WA) is less than the predetermined value The ratio of the free block to the total capacity for guaranteeing that the above-mentioned WA is defined as follows.

WA=(NAND型フラッシュメモリに書き込まれたデータの総サイズ)/(ホスト装
置からSSDに転送された書き込みデータの総サイズ)
又は、
WA=(ブロックの総消去回数)×(ブロックサイズ)/(ホスト装置からSSDに転
送された書き込みデータの総サイズ)
なお、上記“NAND型フラッシュメモリに書き込まれたデータの総サイズ”は、ユー
ザデータだけでなく、管理情報、ECCの冗長データ、暗号化キーなど、ユーザデータ以
外のデータも含むことが望ましい。
WA = (total size of data written to NAND flash memory) / (total size of write data transferred from host device to SSD)
Or
WA = (total erase count of block) × (block size) / (total size of write data transferred from host device to SSD)
The “total size of data written in the NAND flash memory” preferably includes not only user data but also data other than user data such as management information, ECC redundant data, and an encryption key.

(実施例2)
図44は、関数f(LBA)が固定値とならない例である。ある論理アドレス領域では
あるデータパターンが頻発し、ある論理アドレス領域では別のデータパターンが頻発する
というように、論理アドレス領域によって頻発する繰り返しパターンが異なる場合がある
。図44のように、論理アドレス領域の前半では0-fillセクタが多数存在する一方、論理
アドレス領域の後半では1-fillデータ(全ビットが“1”で埋め尽くされたデータ、16
進数で表すとfで埋め尽くされたデータということになる)が多数存在するよう場合を考
える。
(Example 2)
FIG. 44 is an example in which the function f (LBA) does not become a fixed value. There are cases where the repeated pattern frequently occurs depending on the logical address area, such that a certain data pattern frequently occurs in a certain logical address area and another data pattern frequently occurs in a certain logical address area. As shown in FIG. 44, many 0-fill sectors exist in the first half of the logical address area, while 1-fill data (data in which all bits are filled with “1”, 16
Let us consider a case where there are a large number of data filled in with f.

0-fillセクタの存在確率分布及び1-fillセクタの存在確率分布は図45のようになる。
この場合、関数f(LBA)=000・・・0(固定値)としたり、関数f(LBA)=
111・・・1(固定値)とするよりも、“関数f(LBA)=000・・・0h(LB
A≦c000h),f(LBA)=111・・・1h(LBA≦c000h)”のように、関数f(
LBA)を2つの論理アドレス領域で異なる値とするほうが、解放できるセクタ数が多く
なるため望ましい。
The existence probability distribution of the 0-fill sector and the existence probability distribution of the 1-fill sector are as shown in FIG.
In this case, the function f (LBA) = 000... 0 (fixed value) or the function f (LBA) =
Instead of 111 ... 1 (fixed value), "function f (LBA) = 000 ... 0h (LB
A ≦ c000h), f (LBA) = 111... 1h (LBA ≦ c000h) ”.
It is preferable to set LBA) to different values in the two logical address areas because the number of sectors that can be released increases.

(実施例3)
図46は、3つの論理アドレス領域で頻発するデータが異なる場合である。0-fillセク
タの存在確率分布、320a-fillセクタ(320aデータで埋め尽くされた1セクタ長のデータ
)の存在確率分布、及び1-fillセクタの存在確率分布は図47のようになる。この場合、
“関数f(LBA)=000・・・0h(LBA≦7fffh),f(LBA)=320a3
20a・・・320ah(8000h≦LBA≦c000h),f(LBA)=111・・・1h(
LBA≦c001h)”のように、関数f(LBA)を3つの論理アドレス領域で異なる値と
するほうが、解放できるセクタ数が多くなるため望ましい。
(Example 3)
FIG. 46 shows a case where frequently occurring data is different in the three logical address areas. The existence probability distribution of the 0-fill sector, the existence probability distribution of the 320a-fill sector (one-sector length data filled with 320a data), and the existence probability distribution of the 1-fill sector are as shown in FIG. in this case,
“Function f (LBA) = 000... 0h (LBA ≦ 7fffh), f (LBA) = 320a3
20a ... 320ah (8000h≤LBA≤c000h), f (LBA) = 111 ... 1h (
It is preferable to set the function f (LBA) to different values in the three logical address areas as the number of sectors that can be released increases as in (LBA ≦ c001h) ”.

(実施例4)
実施例4では、論理アドレス領域をサイズLごとに分割した管理単位を用いる。サイズ
LはLBAの最小単位以上である。関数f(LBA)は管理単位の内部では一定値をとる
が、異なる管理単位間では関数f(LBA)は異なってもよい。先頭の管理単位では関数
f(LBA)=D0(固定値)、次の管理単位では関数f(LBA)=D1(固定値)、
・・・というようになる。この場合の関数f(LBA)は、以下のように表される。
Example 4
In the fourth embodiment, a management unit obtained by dividing the logical address area for each size L is used. The size L is not less than the minimum unit of LBA. The function f (LBA) takes a constant value inside the management unit, but the function f (LBA) may be different between different management units. In the first management unit, function f (LBA) = D0 (fixed value), and in the next management unit, function f (LBA) = D1 (fixed value),
... and so on. The function f (LBA) in this case is expressed as follows.

“f(LBA)=D0(0≦LBA≦L−1,f(LBA)=D1(L≦LBA≦2L
−1),f(LBA)=D2(2L≦LBA≦3L−1,・・・,Dk(kL≦LBA≦
(k+1)L−1),・・・”
Dk(k=0、1、・・・)は、サイズがLの任意のデータパターンである。
“F (LBA) = D0 (0 ≦ LBA ≦ L−1, f (LBA) = D1 (L ≦ LBA ≦ 2L)
−1), f (LBA) = D2 (2L ≦ LBA ≦ 3L−1,..., Dk (kL ≦ LBA ≦
(K + 1) L-1), ... "
Dk (k = 0, 1,...) Is an arbitrary data pattern having a size L.

Dk(k=0、1、・・・)の選び方には任意性があり、最適なDkを選ぶことで最適
な関数f(LBA)が決定される。Dkの各種候補に対して、SSDの出荷前検査装置、
情報処理装置のCPU、又はSSDコントローラは、以下の手法で点数付けを行う。
The method of selecting Dk (k = 0, 1,...) Is arbitrary, and the optimal function f (LBA) is determined by selecting the optimal Dk. SSD pre-shipment inspection device for various Dk candidates,
The CPU of the information processing apparatus or the SSD controller performs scoring by the following method.

(1) 各種セクタごとのデータを読み出す(又は、セクタの整数倍ごとにデータを読
み出してもよいし、管理単位ごとにデータを読み出してもよい)
(2) (1)で読み出したデータが関数f(LBA)に等しいか否かを判定する(セ
クタの整数倍ごとにデータを読み出した場合は、その中の全セクタが関数f(LBA)に
等しいか否かを判定する)
(3) 等しい場合は1点、等しくない場合は0点と点数をつける
(4) SSDの全論理アドレス領域に対して点数付けを行い、点数の合計を算出する
(代表して一部領域のみについて点数付けを行ってもよい)
そして、もっとも高得点となったDkが最適ということになり、このDkを用いて最適
な関数f(LBA)が決定される。例えば、L=128MiB(MiB=1,048,576バイ
ト)とすると、SSDの全論理アドレス領域を始端から均等に128MiBごとに区切り
、それぞれの区画を読み出し、区画内全データが関数f(LBA)に等しいか否かを判定
し、等しい場合は1点加算し、合計点数を計算する。その点数計算を例えば(D0,D1
,・・・)=(0000・・・,0000・・・,・・・),(FFFF・・・,FFFF・・・,・・・
),(FFFF・・・,0000・・・,・・・),(0000・・・,FFFF・・・,・・・)のよう
な複数の候補について行い、もっとも得点の高い候補を最適な(D0,D1,・・・)と
して選定して関数f(LBA)を決定する。
(1) Read data for each sector (or data may be read for each integral multiple of the sector, or data may be read for each management unit)
(2) It is determined whether or not the data read in (1) is equal to the function f (LBA) (when data is read every integer multiple of the sector, all the sectors in the data are converted to the function f (LBA). Determine if they are equal)
(3) Score 1 point if they are equal, and 0 points if they are not equal (4) Assign points to all the logical address areas of the SSD and calculate the total number of points (typically only some areas) Scoring may be done for
The Dk having the highest score is the optimum, and the optimum function f (LBA) is determined using this Dk. For example, if L = 128 MiB (MiB = 1,048,576 bytes), the entire logical address area of the SSD is equally divided into 128 MiB from the start, each partition is read, and all the data in the partition is equal to the function f (LBA). If equal, add 1 point and calculate the total score. For example, (D0, D1
, ...) = (0000 ..., 0000 ..., ...), (FFFF ..., FFFF ..., ...
), (FFFF ..., 0000 ..., ...), (0000 ..., FFFF ..., ...) Select as (D0, D1,...) To determine the function f (LBA).

(実施例5)
実施例4では、管理単位として固定長に区切った区画を用いたが、可変長に区切った区
画を管理単位として用いてもよい。この場合の関数f(LBA)は、以下のように表され
る。
(Example 5)
In the fourth embodiment, the section divided into the fixed length is used as the management unit. However, the section divided into the variable length may be used as the management unit. The function f (LBA) in this case is expressed as follows.

“f(LBA)=D0(L0=0≦LBA≦L1−1,f(LBA)=D1(L1≦L
BA≦L2−1),f(LBA)=D2(L2≦LBA≦L3−1,・・・,Dk(Lk
≦LBA≦L(k+1)−1),・・・”
Dk(k=0、1、・・・)は、サイズがLの任意のデータパターンである。“L0<L
1<L2<・・・Lk<・・・”である。
“F (LBA) = D0 (L0 = 0 ≦ LBA ≦ L1-1, f (LBA) = D1 (L1 ≦ L
BA ≦ L2-1), f (LBA) = D2 (L2 ≦ LBA ≦ L3-1,..., Dk (Lk
≦ LBA ≦ L (k + 1) −1),...
Dk (k = 0, 1,...) Is an arbitrary data pattern having a size L. “L0 <L
1 <L2 <... Lk <... ".

(実施例6)
実施例6は、同一データで埋め尽くされているセクタが少ないため、前述の手法を適用
しても十分な効果が得られないが、データとLBAとに一定の相関がある場合のケースで
ある(図48)。このような場合には、より一般的な関数f(LBA)の決定手法を用い
ることが好ましい。例えば、複数の関数f(LBA)の候補を用意し、それぞれのf(L
BA)に対して前述の点数付けを行い、もっとも高得点のf(LBA)を最適なf(LB
A)として決定する。実施例6では、図49に示すように、データとLBAとに一定の相
関があるセクタが解放される。
(Example 6)
Example 6 is a case where there are few sectors filled with the same data, and thus sufficient effects cannot be obtained even if the above-described method is applied, but there is a certain correlation between data and LBA. (FIG. 48). In such a case, it is preferable to use a more general method for determining the function f (LBA). For example, a plurality of function f (LBA) candidates are prepared, and each f (L
The above scoring is performed on BA), and f (LBA) with the highest score is changed to the optimum f (LB).
Determine as A). In the sixth embodiment, as shown in FIG. 49, a sector having a certain correlation between data and LBA is released.

(実施例7)
例えば、2種類のパラメータa,bについて、“関数f(LBA)=a×LBA+b”
を定義し、パラメータa,bを振ったものを関数f(LBA)の候補として用いる。そし
て、もっとも高得点の(a,b)を求め、もっとも高得点の(a,b)を用いて関数f(
LBA)を決定してもよい。
(Example 7)
For example, for two types of parameters a and b, “function f (LBA) = a × LBA + b”
Is used as a candidate for the function f (LBA). Then, the highest score (a, b) is obtained, and the highest score (a, b) is used to obtain the function f (
LBA) may be determined.

図50は、実施例7に係る関数f(LBA)の決定方法を説明する図である。図50に
は、パラメータbがb1、b2、b3の場合を図示している。パラメータaを変えると、
(a,b)=(a0,b2)がもっとも得点の高い。よって、“関数f(LBA)=a0
×LBA+b2”が算出される。
FIG. 50 is a diagram illustrating a method for determining the function f (LBA) according to the seventh embodiment. FIG. 50 illustrates a case where the parameter b is b1, b2, and b3. When parameter a is changed,
(A, b) = (a0, b2) has the highest score. Therefore, “function f (LBA) = a0
XLBA + b2 "is calculated.

より一般的には、LBAがSATA規格において一般的な48ビットLBAである場合
にはLBA=(d0,d1,d2,・・・,d47)tという列数48のベクトルとし(
tは転置記号)、Aを512×48の行列とし、bを列数4096(1セクタ=512バ
イト=4096ビット)のベクトルとすることで、“関数f(LBA)=A×LBA+b
”というように関数f(LBA)を列数4096のベクトル形式で取得してもよい。この
場合、ベクトルf(LBA)の1列目が1ビット目のデータに、2列目が2ビット目のデ
ータに、・・・、という対応関係がある。
More generally, when the LBA is a general 48-bit LBA in the SATA standard, a vector with 48 columns of LBA = (d0, d1, d2,..., D47) t (
t is a transposed symbol), A is a 512 × 48 matrix, and b is a vector having 4096 columns (1 sector = 512 bytes = 4096 bits), so that “function f (LBA) = A × LBA + b
The function f (LBA) may be acquired in a vector format having 4096 columns. In this case, the first column of the vector f (LBA) is the first bit data, and the second column is the second bit. There is a corresponding relationship of.

さらに一般的には、LBAがnビットで記述されるとき、LBA=(d0,d1,d2
,・・・,dn−1)tという列数nのベクトルとし、Aをn×mの行列とし、bを列数
mのベクトルとすることで、“関数f(LBA)=A×LBA+b”というように関数f
(LBA)を列数mのベクトル形式で取得してもよい。
More generally, when LBA is described with n bits, LBA = (d0, d1, d2
,..., Dn−1) t is a vector with n columns, A is an n × m matrix, and b is a vector with m columns, so that “function f (LBA) = A × LBA + b”. Function f
(LBA) may be acquired in a vector format with m columns.

上記各実施形態で説明したコントローラの処理は、プログラムで実現することも可能で
ある。プログラムのフローチャートは、上記各実施形態で示したフローチャートを使用す
ることができる。
The processing of the controller described in the above embodiments can also be realized by a program. As the flowchart of the program, the flowcharts shown in the above embodiments can be used.

上記各実施形態では、不揮発性記憶装置3としてSSDを例に挙げて説明したが、SS
D以外の不揮発性記憶装置に広く適用可能であり、例えば、磁性媒体(プラッタ)を用い
たハードディスクドライブ(HDD)や、NAND型フラッシュメモリと磁性媒体(プラ
ッタ)の両方を用いたハイブリッドハードディスクドライブ(ハイブリッドHDD)に適
用することも可能である。
In each of the above embodiments, the SSD has been described as an example of the nonvolatile storage device 3, but the SS
The present invention can be widely applied to non-volatile storage devices other than D, such as a hard disk drive (HDD) using a magnetic medium (platter) or a hybrid hard disk drive using both a NAND flash memory and a magnetic medium (platter) ( It is also possible to apply to a hybrid HDD).

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる
Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1…メモリシステム、2…ホスト装置、3…SSD、10…インターフェースコントロ
ーラ、11…SSDコントローラ、12…DRAM、13…NAND型フラッシュメモリ
、20…CPU、21…サウスブリッジ、22…ノースブリッジ、23…DRAM、24
…表示コントローラ、25…ディスプレイ、26…BIOS−ROM、27…LANコン
トローラ、28…USBコントローラ、29…キーボード、30…マウス、31…光学ド
ライブ、40…情報処理装置本体、41…マザーボード、42…電源装置、50…情報処
理装置本体、51…ディスプレイユニット、52…電源スイッチ、53…タッチパッド。
DESCRIPTION OF SYMBOLS 1 ... Memory system, 2 ... Host apparatus, 3 ... SSD, 10 ... Interface controller, 11 ... SSD controller, 12 ... DRAM, 13 ... NAND flash memory, 20 ... CPU, 21 ... South bridge, 22 ... North bridge, 23 ... DRAM, 24
Display controller, 25 Display, 26 BIOS-ROM, 27 LAN controller, 28 USB controller, 29 Keyboard, 30 Mouse, 31 Optical drive, 40 Information processing unit, 41 Motherboard, 42 Power supply device 50... Information processing device main body 51. Display unit 52. Power switch 53. Touchpad.

Claims (13)

第1のデータを格納する記憶領域を有する不揮発性記憶装置と、前記不揮発性記憶装置
と通信を行う情報処理装置とを有するメモリシステムであって、
前記情報処理装置は、
前記不揮発性記憶装置の第1の論理アドレス領域からデータを読み出し、
前記第1の論理アドレス領域に対応する読み出しデータが前記第1のデータと同じであ
る場合に、前記不揮発性記憶装置に、前記第1の論理アドレス領域を前記記憶領域に関連
付けるための削除通知を行う第1の制御回路を具備し、
前記不揮発性記憶装置は、
不揮発性記憶媒体と、
論理アドレスと物理アドレスとを関連付ける管理テーブルと、
前記削除通知により指定された論理アドレスを前記記憶領域に関連付けるように前記管
理テーブルを書き換え、
前記情報処理装置から受信した読み出し命令に含まれる論理アドレスが前記記憶領域を
指定している場合に、前記第1のデータを前記情報処理装置に送信する第2の制御回路と

を具備することを特徴とするメモリシステム。
A memory system having a nonvolatile storage device having a storage area for storing first data, and an information processing device communicating with the nonvolatile storage device,
The information processing apparatus includes:
Reading data from a first logical address area of the non-volatile storage device;
When the read data corresponding to the first logical address area is the same as the first data, a deletion notification for associating the first logical address area with the storage area is sent to the nonvolatile storage device. A first control circuit to perform,
The nonvolatile memory device is
A non-volatile storage medium;
A management table that associates logical and physical addresses;
Rewriting the management table to associate the logical address specified by the deletion notification with the storage area;
A second control circuit that transmits the first data to the information processing device when a logical address included in a read command received from the information processing device specifies the storage area;
A memory system comprising:
前記第1の制御回路は、ユーザから指示を受けた場合に、前記削除通知に関する処理を
実行することを特徴とする請求項1に記載のメモリシステム。
The memory system according to claim 1, wherein the first control circuit executes a process related to the deletion notification when receiving an instruction from a user.
前記第1の制御回路は、規定の時刻に到達した場合に、前記削除通知に関する処理を実
行することを特徴とする請求項1に記載のメモリシステム。
The memory system according to claim 1, wherein the first control circuit executes a process related to the deletion notification when a predetermined time is reached.
前記第2の制御回路は、前記削除通知に関する処理を実行するための命令を前記情報処
理装置に送信し、
前記第1の制御回路は、前記不揮発性記憶装置から前記命令を受けた場合に、前記削除
通知に関する処理を実行する
ことを特徴とする請求項1に記載のメモリシステム。
The second control circuit transmits a command for executing processing related to the deletion notification to the information processing device,
The memory system according to claim 1, wherein the first control circuit executes processing related to the deletion notification when the command is received from the nonvolatile memory device.
情報処理装置と通信を行う不揮発性記憶装置であって、
不揮発性記憶媒体と、
第1のデータを格納する記憶領域と、
論理アドレスと物理アドレスとを関連付ける管理テーブルと、
前記不揮発性記憶媒体からデータを読み出し、
前記読み出しデータが前記第1のデータと同じである場合に、前記読み出しデータの論
理アドレスを前記記憶領域に関連付けるように前記管理テーブルを書き換え、
前記情報処理装置から受信した読み出し命令に含まれる論理アドレスが前記記憶領域を
指定している場合に、前記第1のデータを前記情報処理装置に送信する制御回路と、
を具備することを特徴とする不揮発性記憶装置。
A non-volatile storage device that communicates with an information processing device,
A non-volatile storage medium;
A storage area for storing the first data;
A management table that associates logical and physical addresses;
Reading data from the non-volatile storage medium;
When the read data is the same as the first data, the management table is rewritten to associate the logical address of the read data with the storage area,
A control circuit that transmits the first data to the information processing device when a logical address included in a read command received from the information processing device specifies the storage area;
A non-volatile memory device comprising:
前記制御回路は、前記情報処理装置から一定期間アクセスがない場合に、前記管理テー
ブルを書き換える処理を実行することを特徴とする請求項5に記載の不揮発性記憶装置。
The nonvolatile memory device according to claim 5, wherein the control circuit executes a process of rewriting the management table when there is no access from the information processing device for a certain period.
前記制御回路は、前記情報処理装置から命令を受けた場合に、前記管理テーブルを書き
換える処理を実行することを特徴とする請求項5に記載の不揮発性記憶装置。
The nonvolatile memory device according to claim 5, wherein the control circuit executes a process of rewriting the management table when receiving an instruction from the information processing device.
前記制御回路は、不揮発性記憶媒体のフリーブロック数が規定値を下回った場合に、前
記管理テーブルを書き換える処理を実行することを特徴とする請求項5に記載の不揮発性
記憶装置。
6. The nonvolatile storage device according to claim 5, wherein the control circuit executes a process of rewriting the management table when the number of free blocks of the nonvolatile storage medium falls below a specified value.
第1のデータを格納する記憶領域を有する不揮発性記憶装置の制御方法であって、
前記制御方法は、
前記不揮発性記憶装置から前記第1のデータを読み出し、
前記不揮発性記憶装置の第1の論理アドレス領域からデータを読み出す工程と、
前記第1の論理アドレス領域に対応する読み出しデータが前記第1のデータと同じであ
るか否かを判定する工程と、
前記読み出しデータが前記第1のデータと同じである場合に、前記不揮発性記憶装置に
、前記第1の論理アドレス領域を前記記憶領域に関連付けるための削除通知を行う工程と

を具備することを特徴とする不揮発性記憶装置の制御方法。
A method for controlling a nonvolatile storage device having a storage area for storing first data, comprising:
The control method is:
Reading the first data from the non-volatile storage device;
Reading data from a first logical address area of the non-volatile storage device;
Determining whether read data corresponding to the first logical address area is the same as the first data;
When the read data is the same as the first data, notifying the non-volatile storage device of deletion to associate the first logical address area with the storage area;
A control method for a non-volatile memory device, comprising:
第1のデータを格納する記憶領域を有する不揮発性記憶装置を制御するためのプログラ
ムであって、
前記プログラムは、前記不揮発性記憶装置と通信可能な情報処理装置に、
前記不揮発性記憶装置から前記第1のデータを読み出す処理と、
前記不揮発性記憶装置の第1の論理アドレス領域からデータを読み出す処理と、
前記第1の論理アドレス領域に対応する読み出しデータが前記第1のデータと同じであ
るか否かを判定する処理と、
前記読み出しデータが前記第1のデータと同じである場合に、前記不揮発性記憶装置に
、前記第1の論理アドレス領域を前記記憶領域に関連付けるための削除通知を行う処理と

を実行させるためのプログラム。
A program for controlling a nonvolatile storage device having a storage area for storing first data,
The program is stored in an information processing apparatus capable of communicating with the nonvolatile storage device.
A process of reading the first data from the nonvolatile storage device;
A process of reading data from a first logical address area of the nonvolatile storage device;
A process of determining whether read data corresponding to the first logical address area is the same as the first data;
When the read data is the same as the first data, a process of notifying the non-volatile storage device of deletion to associate the first logical address area with the storage area;
A program for running
ユーザから指示を受けた場合に、前記削除通知に関する処理を実行することを特徴とす
る請求項10に記載のプログラム。
The program according to claim 10, wherein when an instruction is received from a user, processing related to the deletion notification is executed.
規定の時刻に到達した場合に、前記削除通知に関する処理を実行することを特徴とする
請求項10に記載のプログラム。
The program according to claim 10, wherein a process related to the deletion notification is executed when a predetermined time is reached.
不揮発性記憶媒体のフリーブロック数が規定値を下回った場合に、前記削除通知に関す
る処理を実行することを特徴とする請求項10に記載のプログラム。
The program according to claim 10, wherein when the number of free blocks in the nonvolatile storage medium falls below a specified value, the process related to the deletion notification is executed.
JP2013224797A 2013-10-29 2013-10-29 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM Expired - Fee Related JP5649709B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013224797A JP5649709B2 (en) 2013-10-29 2013-10-29 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013224797A JP5649709B2 (en) 2013-10-29 2013-10-29 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011063282A Division JP5405513B2 (en) 2011-03-22 2011-03-22 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD, AND PROGRAM

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014228225A Division JP2015053075A (en) 2014-11-10 2014-11-10 Memory system, information processing device, and storage device

Publications (2)

Publication Number Publication Date
JP2014059889A true JP2014059889A (en) 2014-04-03
JP5649709B2 JP5649709B2 (en) 2015-01-07

Family

ID=50616249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013224797A Expired - Fee Related JP5649709B2 (en) 2013-10-29 2013-10-29 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM

Country Status (1)

Country Link
JP (1) JP5649709B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345545A (en) * 2017-01-25 2018-07-31 三星电子株式会社 The storage device of hash formula translation is executed between logical address and physical address
CN109471812A (en) * 2015-01-19 2019-03-15 东芝存储器株式会社 The control method of storage device and nonvolatile memory
CN110321247A (en) * 2015-07-23 2019-10-11 东芝存储器株式会社 Memory system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008A (en) * 1852-06-08 Improvement in the construction of soap-boilers
JPH07271662A (en) * 1994-03-31 1995-10-20 Sony Corp Memory circuit and its access method, and method for generating data of memory
JPH0997139A (en) * 1995-09-28 1997-04-08 Canon Inc Flush rom management method and device, and computer controller
JP2001249844A (en) * 2000-02-15 2001-09-14 Internatl Business Mach Corp <Ibm> Permanent and robust storage allocation system and its method
JP2002318714A (en) * 2001-04-23 2002-10-31 Casio Comput Co Ltd Device and program for optimizing flash memory
JP2004110126A (en) * 2002-09-13 2004-04-08 Denso Wave Inc Portable information terminal
JP2006252137A (en) * 2005-03-10 2006-09-21 Matsushita Electric Ind Co Ltd Optimization method for nonvolatile storage device
JP2010157133A (en) * 2008-12-27 2010-07-15 Toshiba Corp Memory system
JP2011090496A (en) * 2009-10-22 2011-05-06 Hitachi Ltd Semiconductor storage device and control method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008A (en) * 1852-06-08 Improvement in the construction of soap-boilers
JPH07271662A (en) * 1994-03-31 1995-10-20 Sony Corp Memory circuit and its access method, and method for generating data of memory
JPH0997139A (en) * 1995-09-28 1997-04-08 Canon Inc Flush rom management method and device, and computer controller
JP2001249844A (en) * 2000-02-15 2001-09-14 Internatl Business Mach Corp <Ibm> Permanent and robust storage allocation system and its method
JP2002318714A (en) * 2001-04-23 2002-10-31 Casio Comput Co Ltd Device and program for optimizing flash memory
JP2004110126A (en) * 2002-09-13 2004-04-08 Denso Wave Inc Portable information terminal
JP2006252137A (en) * 2005-03-10 2006-09-21 Matsushita Electric Ind Co Ltd Optimization method for nonvolatile storage device
JP2010157133A (en) * 2008-12-27 2010-07-15 Toshiba Corp Memory system
JP2011090496A (en) * 2009-10-22 2011-05-06 Hitachi Ltd Semiconductor storage device and control method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471812A (en) * 2015-01-19 2019-03-15 东芝存储器株式会社 The control method of storage device and nonvolatile memory
CN109471812B (en) * 2015-01-19 2023-09-05 铠侠股份有限公司 Memory device and control method of nonvolatile memory
CN110321247A (en) * 2015-07-23 2019-10-11 东芝存储器株式会社 Memory system
CN108345545A (en) * 2017-01-25 2018-07-31 三星电子株式会社 The storage device of hash formula translation is executed between logical address and physical address
TWI750243B (en) * 2017-01-25 2021-12-21 南韓商三星電子股份有限公司 Nonvolatile memory storage device
CN108345545B (en) * 2017-01-25 2023-01-03 三星电子株式会社 Storage device performing hash translation between logical and physical addresses

Also Published As

Publication number Publication date
JP5649709B2 (en) 2015-01-07

Similar Documents

Publication Publication Date Title
JP5405513B2 (en) MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD, AND PROGRAM
US11593259B2 (en) Directed sanitization of memory
US9367444B2 (en) Non-volatile memory device, control method for information processing device, and information processing device
US9460006B2 (en) Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same
TWI507871B (en) Data storage device, memory system, and computing system using nonvolatile memory device
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
US10795827B2 (en) Adaptive management of intermediate storage
US20150046636A1 (en) Storage device, computer system and methods of operating same
TW201619971A (en) Green nand SSD application and driver
KR20170125178A (en) Raid storage device and management method thereof
JP2016170583A (en) Memory system and information processing system
KR20120037786A (en) Storage device, lock mode management method thereof and memory system having the same
TWI699650B (en) Memory device and computer system
US11150819B2 (en) Controller for allocating memory blocks, operation method of the controller, and memory system including the controller
KR20200116375A (en) Memory system, memory controller and operating method of thereof
JP2015053075A (en) Memory system, information processing device, and storage device
JP5649709B2 (en) MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM
KR20200122522A (en) Controller and operation method thereof
US20110264848A1 (en) Data recording device
KR20160119607A (en) Data storage device and operating method thereof
JP2016177822A (en) Memory system
KR20220111566A (en) Memory controller and storage device including same
US11822800B2 (en) Storage system including host and storage device and operation method thereof
US11657000B2 (en) Controller and memory system including the same
KR102580075B1 (en) Method for garbage collection of flash memory and storage device using the same

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140808

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20140812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141111

R151 Written notification of patent or utility model registration

Ref document number: 5649709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees