JP6689325B2 - Memory device control method - Google Patents

Memory device control method Download PDF

Info

Publication number
JP6689325B2
JP6689325B2 JP2018138737A JP2018138737A JP6689325B2 JP 6689325 B2 JP6689325 B2 JP 6689325B2 JP 2018138737 A JP2018138737 A JP 2018138737A JP 2018138737 A JP2018138737 A JP 2018138737A JP 6689325 B2 JP6689325 B2 JP 6689325B2
Authority
JP
Japan
Prior art keywords
data
block
information
memory
block group
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.)
Active
Application number
JP2018138737A
Other languages
Japanese (ja)
Other versions
JP2018195333A (en
Inventor
菅野 伸一
伸一 菅野
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Publication of JP2018195333A publication Critical patent/JP2018195333A/en
Application granted granted Critical
Publication of JP6689325B2 publication Critical patent/JP6689325B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本実施形態は、メモリ装置の制御方法に関する。   The present embodiment relates to a method of controlling a memory device.

ソリッドステートドライブ(SSD)は、例えば、NAND型フラッシュメモリなどのような不揮発性メモリを備える。NAND型フラッシュメモリは、複数のブロック(物理ブロック)を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。   The solid state drive (SSD) includes, for example, a non-volatile memory such as a NAND flash memory. The NAND flash memory includes a plurality of blocks (physical blocks). The plurality of blocks include a plurality of memory cells arranged at the intersections of the word lines and the bit lines.

特開2012−141944号公報JP, 2012-141944, A

本実施形態は、不揮発性メモリを長寿命化するメモリ装置の制御方法を提供する。   The present embodiment provides a method of controlling a memory device that extends the life of a non-volatile memory.

本実施形態は、プロセッサにより、複数のエリアを含む第1のメモリを備えるメモリ装置と、メモリ装置に記憶されている有効データの一部を記憶する第2のメモリと、に対するデータのライト及びリードを制御する方法である。 This embodiment, Ri by the processor, the first memory device including a memory, the second memory and writing of data with respect to, for storing a portion of the valid data stored in the memory device including a plurality of areas And a method of controlling leads .

本実施形態の方法は、プロセッサが、メモリ装置によって複数のエリアの中から選択されたガベージコレクション対象エリア内の有効データを示す第1の情報を、メモリ装置から受信することと、プロセッサが、第1の情報で示される有効データの中からプロセッサにより発生した削除命令の示す削除対象データを除外したデータを第2のメモリへ書き込むことと、プロセッサが、第1の情報で示される有効データの中の削除対象データ示す第2の情報を生成することと、プロセッサが、第2の情報で示されるデータを、第1のメモリのガベージコレクション対象エリアに対するガベージコレクションで削除させるために、第2の情報をメモリ装置に送信することと、を含む。 According to the method of the present embodiment, the processor receives, from the memory device, first information indicating valid data in the garbage collection target area selected from the plurality of areas by the memory device , and the processor receives the first information . Writing the data excluding the deletion target data indicated by the deletion instruction generated by the processor from the valid data indicated by the information No. 1 to the second memory, and causing the processor to write the valid data indicated by the first information Of the second information indicating the data to be deleted of the first memory and the processor causes the data indicated by the second information to be deleted by the garbage collection for the garbage collection target area of the first memory . Transmitting the information to the memory device.

第1の実施形態に係る情報処理システムの構成の一例を示すブロック図。The block diagram which shows an example of a structure of the information processing system which concerns on 1st Embodiment. 第1の実施形態に係る情報処理システムの処理の一例を示すフローチャート。The flowchart which shows an example of a process of the information processing system which concerns on 1st Embodiment. 第2の実施形態に係る情報処理システムの構成の一例を示すブロック図。The block diagram which shows an example of a structure of the information processing system which concerns on 2nd Embodiment. 第2の実施形態に係る第1のキャッシュ制御の一例を示すフローチャート。The flowchart which shows an example of the 1st cache control which concerns on 2nd Embodiment. 第2の実施形態に係る第2のキャッシュ制御の一例を示すフローチャート。The flowchart which shows an example of the 2nd cache control which concerns on 2nd Embodiment. 第2の実施形態に係る第3のキャッシュ制御の一例を示すフローチャート。9 is a flowchart showing an example of third cache control according to the second embodiment. 第2の実施形態に係る第4のキャッシュ制御の一例を示すフローチャート。9 is a flowchart showing an example of fourth cache control according to the second embodiment. 第3の実施形態に係る情報処理システムの詳細構成の一例を示すブロック図。The block diagram which shows an example of a detailed structure of the information processing system which concerns on 3rd Embodiment. 第3の実施形態に係るストレージシステムの一例を示す斜視図。The perspective view which shows an example of the storage system which concerns on 3rd Embodiment.

以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the substantially same or substantially the same function and constituent element will be denoted by the same reference numeral and will be described as necessary.

以下の各実施形態において、不揮発性メモリ及び不揮発性キャッシュメモリは、消去単位エリアごとに、データが一括して消去される。消去単位エリアは、複数の書き込み単位エリア及び複数の読み出し単位エリアを含む。   In each of the following embodiments, in the nonvolatile memory and the nonvolatile cache memory, data is collectively erased for each erase unit area. The erase unit area includes a plurality of write unit areas and a plurality of read unit areas.

本実施形態において、不揮発性メモリ及び不揮発性キャッシュメモリとして、NAND型フラッシュメモリが用いられる場合について説明する。しかしながら、不揮発性メモリ及び不揮発性キャッシュメモリは、上記の消去単位エリア、書き込み単位エリア、読み出し単位エリアの関係を満たしていれば、NAND型フラッシュメモリではない他の種別のメモリでもよい。   In the present embodiment, a case where a NAND flash memory is used as the nonvolatile memory and the nonvolatile cache memory will be described. However, the non-volatile memory and the non-volatile cache memory may be other types of memory that are not the NAND flash memory as long as they satisfy the relationship of the erase unit area, the write unit area, and the read unit area.

不揮発性メモリ及び不揮発性キャッシュメモリがNAND型フラッシュメモリの場合、消去単位エリアはブロックに相当する。書き込み単位エリア及び読み出し単位エリアはページに相当する。   When the non-volatile memory and the non-volatile cache memory are NAND flash memories, the erase unit area corresponds to a block. The writing unit area and the reading unit area correspond to a page.

本実施形態において、例えば、消去単位エリアは、2以上のブロックなどのように、データが一括して消去可能な他の単位で管理されてもよい。   In the present embodiment, for example, the erasing unit area may be managed in another unit in which data can be collectively erased, such as two or more blocks.

本実施形態において、アクセスとは、記憶装置へデータを書き込むこと、及び、記憶装置からデータを読み出すことの双方を意味する。   In this embodiment, access means both writing data to a storage device and reading data from the storage device.

[第1の実施形態]
本実施形態は、情報処理装置とメモリ装置との間のデータ及び情報の送信及び受信について説明する。
[First Embodiment]
The present embodiment describes transmission and reception of data and information between an information processing device and a memory device.

本実施形態においては、データの識別情報として、論理アドレス(例えば、Logical Block Addressing)が用いられる場合を例として説明するが、他の情報によりデータが識別されるとしてもよい。   In the present embodiment, a case where a logical address (for example, Logical Block Addressing) is used as the data identification information will be described as an example, but the data may be identified by other information.

図1は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。   FIG. 1 is a block diagram showing an example of the configuration of an information processing system according to this embodiment.

情報処理システム35は、情報処理装置17とメモリ装置の一例であるSSD5とを含む。情報処理装置17は、SSD5に対応するホスト装置でもよい。   The information processing system 35 includes the information processing device 17 and the SSD 5, which is an example of a memory device. The information processing device 17 may be a host device compatible with SSD5.

SSD5は、情報処理装置17に内蔵されてもよく、情報処理装置17とSSD5とは、ネットワークなどによりデータを送受信可能に接続されるとしてもよい。SSD5に代えて、ハードディスクドライブ(HDD)などの他の不揮発性の記憶装置がメモリ装置として用いられてもよい。   The SSD 5 may be built in the information processing device 17, or the information processing device 17 and the SSD 5 may be connected to each other via a network so that data can be transmitted and received. Instead of the SSD 5, another non-volatile storage device such as a hard disk drive (HDD) may be used as the memory device.

情報処理装置17は、キャッシュ制御部9、管理情報61〜64を格納するメモリ3、不揮発性キャッシュメモリ4を備える。しかしながら、キャッシュ制御部9、管理情報61〜64、メモリ3、不揮発性キャッシュメモリ4のうちの一部又は全部は、情報処理装置17の外に備えられてもよい。   The information processing device 17 includes a cache control unit 9, a memory 3 that stores management information 61 to 64, and a nonvolatile cache memory 4. However, some or all of the cache control unit 9, the management information 61 to 64, the memory 3, and the nonvolatile cache memory 4 may be provided outside the information processing device 17.

メモリ3は、例えば管理情報(リスト)61〜64及びアドレス変換情報7などの各種の制御情報を格納する。メモリ3は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ3は、不揮発性キャッシュメモリ4に含まれていてもよい。   The memory 3 stores various control information such as management information (list) 61 to 64 and address conversion information 7. The memory 3 may be a volatile memory such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory), or may be a non-volatile memory. The memory 3 may be included in the non-volatile cache memory 4.

管理情報61〜64は、それぞれ後述する第2の実施形態で説明されるブロックグループBG1〜BG4に書き込まれているデータに関するメタデータである。例えば、管理情報61〜64は、プロセッサ2による各データの使用状態を示す情報を含む。例えば、管理情報61〜64は、各データの識別情報、データが削除対象か否かを示す削除情報、データが有効データか否かを示す有効/無効情報、ブロックに対して消去を行う消去条件を満たすか否かを判断するためのキャッシュ判断情報を含む。   The management information 61 to 64 is metadata relating to the data written in the block groups BG1 to BG4 described in the second embodiment described later, respectively. For example, the management information 61 to 64 includes information indicating the usage status of each data by the processor 2. For example, the management information 61 to 64 includes identification information of each data, deletion information indicating whether the data is a deletion target, valid / invalid information indicating whether the data is valid data, and an erasing condition for erasing a block. It includes cache judgment information for judging whether or not the condition is satisfied.

ここで、削除情報は、例えば、データに対する削除命令が発生したことを示す情報であり、より具体的な例としては、プロセッサ2で実行されるアプリケーションプログラム又はオペレーティングシステム(OS)からデータに対する削除命令が受け付けられたことを示す情報などである。本実施形態において、削除情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている削除対象データを示す論理アドレスとを関係付けた情報を含む。   Here, the delete information is, for example, information indicating that a delete command for data has occurred, and as a more specific example, a delete command for data from an application program executed by the processor 2 or an operating system (OS). Information indicating that has been accepted. In the present embodiment, the deletion information includes, for example, information in which the identification information of each block and the logical address indicating the deletion target data written in each block are associated with each other.

有効/無効情報は、例えば、同じデータに対して複数位置に書き込みがある場合に、最新のデータが有効データであり、最新ではないデータが無効データであることを示す情報などである。換言すれば、例えば、有効データは、不揮発性キャッシュメモリ4に書き込まれているデータの更新が発生した場合の更新後のデータである。例えば、無効データは、更新が発生した場合の更新前のデータである。本実施形態において、有効/無効情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている有効データ又は無効データを示す論理アドレスとを関係付けた情報を含む。   The valid / invalid information is, for example, information indicating that the latest data is valid data and non-latest data is invalid data when the same data is written in a plurality of positions. In other words, for example, the valid data is the updated data when the data written in the nonvolatile cache memory 4 is updated. For example, the invalid data is data before updating when updating occurs. In the present embodiment, the valid / invalid information includes, for example, information in which identification information of each block is associated with a logical address indicating valid data or invalid data written in each block.

キャッシュ判断情報は、例えば、データごとの書き込み情報と読み出し情報とのうちの少なくとも一方、又は、ブロックごとの書き込み情報と読み出し情報とのうちの少なくとも一方、を含む情報などである。   The cache determination information is, for example, information including at least one of write information and read information for each data, or at least one of write information and read information for each block.

書き込み情報は、例えば、書き込み時間、書き込み回数、書き込み頻度、書き込み順序のうちの少なくとも1つを含む。   The write information includes, for example, at least one of a write time, a write count, a write frequency, and a write order.

読み出し情報は、例えば、読み出し時間、読み出し回数、読み出し頻度、読み出し順序のうちの少なくとも1つを含む。   The read information includes, for example, at least one of a read time, a read count, a read frequency, and a read order.

アドレス変換情報7は、例えば、データの論理アドレスと、当該論理アドレスに対応する不揮発性キャッシュメモリ4の物理アドレス(例えば、Physical Block Addressing)とを関係付けている。アドレス変換情報7は、例えばテーブル形式で管理される。   The address conversion information 7 associates, for example, a logical address of data with a physical address (for example, Physical Block Addressing) of the nonvolatile cache memory 4 corresponding to the logical address. The address conversion information 7 is managed in a table format, for example.

キャッシュ制御部9は、SSD5よりも高速にアクセス可能な不揮発性キャッシュメモリ4に対するキャッシュ制御を実行する。例えば、キャッシュ制御部9は、ライトスルー方式、又は、ライトバック方式で、データと当該データを示す論理アドレス及び物理アドレスとを管理する。   The cache control unit 9 executes cache control for the nonvolatile cache memory 4 that can be accessed faster than the SSD 5. For example, the cache control unit 9 manages data and a logical address and a physical address indicating the data by a write-through method or a write-back method.

ライトスルー方式は、不揮発性キャッシュメモリ4にデータを格納するとともに、SSD5にもデータを格納する方式である。   The write-through method is a method of storing data in the nonvolatile cache memory 4 and also storing data in the SSD 5.

ライトバック方式は、不揮発性キャッシュメモリ4に格納されたデータを、その都度SSD5に格納するのではなく、一旦不揮発性キャッシュメモリ4にデータを格納し、不揮発性キャッシュメモリ4から追い出されるデータを、SSD5に格納する方式である。   In the write-back method, the data stored in the nonvolatile cache memory 4 is not stored in the SSD 5 each time, but the data is temporarily stored in the nonvolatile cache memory 4 and the data evicted from the nonvolatile cache memory 4 is This is a method of storing in SSD5.

本実施形態において、キャッシュ制御部9は、送信部18、受信部19、書き込み部20、送信部21を含む。キャッシュメモリ9のうちの一部又は全部は、ソフトウェアで実装されてもよく、ハードウェアで実装されてもよい。   In this embodiment, the cache control unit 9 includes a transmission unit 18, a reception unit 19, a writing unit 20, and a transmission unit 21. Some or all of the cache memory 9 may be implemented by software or hardware.

送信部18は、SSD5に、SSD5に対する書き込みデータと当該書き込みデータのアドレスとを送る。本実施形態において、送信部18からSSD5に送られるアドレスは、例えば、論理アドレスとする。   The transmitter 18 sends the write data for the SSD 5 and the address of the write data to the SSD 5. In the present embodiment, the address sent from the transmission unit 18 to the SSD 5 is, for example, a logical address.

受信部19は、SSD5から、ガベージコレクション対象のブロックに書き込まれている有効データを示す論理アドレスを含むブロック情報を受ける。   The receiving unit 19 receives, from the SSD 5, block information including a logical address indicating valid data written in the garbage collection target block.

本実施形態において、ブロック情報は、SSD5における各ブロックの識別情報と、各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。   In the present embodiment, the block information may include information in which the identification information of each block in the SSD 5 and the identification information of the data written in each block are associated with each other.

書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスで示される有効データの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む(転記する)。他のメモリは、例えば不揮発性キャッシュメモリ4などでもよい。   Based on the block information received from the SSD 5 and the management information 61 to 64, the writing unit 20 writes a part or all of the valid data indicated by the logical address included in the block information in the nonvolatile memory 24 of the SSD 5. Not write to other memory (transcribe). The other memory may be, for example, the nonvolatile cache memory 4 or the like.

例えば、書き込み部20は、ブロック情報に含まれている有効データを示す論理アドレスから、削除命令が受け付けられた場合の削除対象(削除候補)データを示す論理アドレスを除外する。これにより、ガベージコレクション対象のブロックに書き込まれている有効データであり削除対象ではないデータが選択可能になる。書き込み部20は、選択されたデータを、他のメモリに書き込む。   For example, the writing unit 20 excludes the logical address indicating the deletion target (deletion candidate) data when the deletion instruction is received, from the logical address indicating the valid data included in the block information. As a result, it becomes possible to select the valid data written in the garbage collection target block and not the deletion target. The writing unit 20 writes the selected data in another memory.

送信部21は、削除対象データを示す論理アドレスを含む削除情報を生成し、削除情報をSSD5に送る。例えば、削除情報は、ブロック情報に含まれる有効データを示す論理アドレスのうち、書き込み部20によって他のメモリに書き込まれていない削除対象データを示す論理アドレスを含むとしてもよい。なお、削除情報に代えて、維持対象の論理アドレスを含む維持情報が、送信部21からSSD5へ送られるとしてもよい。   The transmission unit 21 generates deletion information including a logical address indicating the deletion target data and sends the deletion information to the SSD 5. For example, the deletion information may include, among the logical addresses indicating the valid data included in the block information, the logical address indicating the deletion target data that has not been written in another memory by the writing unit 20. In addition, instead of the deletion information, the maintenance information including the logical address to be maintained may be sent from the transmission unit 21 to the SSD 5.

SSD5は、プロセッサ22、メモリ23、不揮発性メモリ24を含む。   The SSD 5 includes a processor 22, a memory 23, and a non-volatile memory 24.

メモリ23は、例えばアドレス変換情報32、有効/無効情報33、削除情報34などの各種の制御情報を格納する。メモリ23は、例えばDRAM又はSRAMなどのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ23は、不揮発性メモリ24に含まれていてもよい。   The memory 23 stores various control information such as address conversion information 32, valid / invalid information 33, and delete information 34. The memory 23 may be a volatile memory such as a DRAM or SRAM, or a non-volatile memory. The memory 23 may be included in the non-volatile memory 24.

プロセッサ22は、プロセッサ22内のメモリに格納されているプログラム、メモリ23に格納されているプログラム、又は、不揮発性メモリ24に格納されているプログラムを実行することにより、アドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31として機能する。   The processor 22 executes the program stored in the memory in the processor 22, the program stored in the memory 23, or the program stored in the non-volatile memory 24, thereby the address conversion unit 25 and the writing unit. 26, a valid / invalid generation unit 27, a selection unit 28, a transmission unit 29, a reception unit 30, and a garbage collection unit 31.

本実施形態において、プロセッサ22をアドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31として機能させるためのプログラムは、例えば、OS、ミドルウェア、ファームウェアでもよい。本実施形態において、アドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31のうちの一部又は全部は、ハードウェアにより実装されてもよい。   In the present embodiment, a program for causing the processor 22 to function as the address conversion unit 25, the writing unit 26, the valid / invalid generation unit 27, the selection unit 28, the transmission unit 29, the reception unit 30, and the garbage collection unit 31 is, for example, It may be OS, middleware, or firmware. In the present embodiment, some or all of the address conversion unit 25, the writing unit 26, the valid / invalid generation unit 27, the selection unit 28, the transmission unit 29, the reception unit 30, and the garbage collection unit 31 are implemented by hardware. May be done.

アドレス変換部25は、キャッシュ制御部9から書き込みデータと当該書き込みデータの論理アドレスとを受けた場合に、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性メモリ24の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報32に登録する。   When receiving the write data and the logical address of the write data from the cache control unit 9, the address conversion unit 25 indicates the logical address of the write data and the physical address indicating the position of the nonvolatile memory 24 in which the write data is stored. Information relating to the address is generated, and this information is registered in the address conversion information 32.

本実施形態において、アドレス変換部25は、プロセッサ22によって実現されるとしている。しかしながら、アドレス変換部25は、プロセッサ22と別の構成としてもよい。   In this embodiment, the address conversion unit 25 is realized by the processor 22. However, the address conversion unit 25 may be configured differently from the processor 22.

また、アドレス変換部25は、例えばテーブル型のアドレス変換情報32に基づいてアドレス変換を行うが、これに代えてキーバリュー型検索によりアドレス変換を行ってもよい。例えば、論理アドレスをキーとし、物理アドレスをバリューとすることで、キーバリュー型検索によるアドレス変換は実現可能である。   Further, the address conversion unit 25 performs the address conversion based on, for example, the table-type address conversion information 32, but instead of this, the address conversion may be performed by a key-value type search. For example, by using a logical address as a key and a physical address as a value, address conversion by a key-value type search can be realized.

書き込み部26は、アドレス変換部25によって得られた物理アドレスの示す位置に、書き込みデータを書き込む。   The writing unit 26 writes the write data at the position indicated by the physical address obtained by the address conversion unit 25.

有効/無効生成部27は、例えばアドレス変換情報32に基づいて、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データかを示す有効/無効情報33を生成する。そして、有効/無効生成部27は、有効/無効情報33をメモリ23に格納する。   The valid / invalid generation unit 27 generates valid / invalid information 33 indicating whether each data written in the nonvolatile memory 24 is valid data or invalid data based on the address conversion information 32, for example. Then, the valid / invalid generation unit 27 stores the valid / invalid information 33 in the memory 23.

選択部28は、ガベージコレクション対象のブロックを選択する。   The selection unit 28 selects a garbage collection target block.

例えば、選択部28は、不揮発性メモリ24のブロックのうち、書き込み時間が最も古いブロックを、ガベージコレクション対象のブロックとして選択してもよい。   For example, the selection unit 28 may select, among the blocks of the non-volatile memory 24, the block with the oldest writing time as the block for garbage collection.

例えば、選択部28は、不揮発性メモリ24のブロックからランダムにガベージコレクション対象のブロックを選択してもよい。   For example, the selection unit 28 may randomly select a garbage collection target block from the blocks of the nonvolatile memory 24.

例えば、選択部28は、有効/無効情報33に基づいて、無効データの数が最も多いブロック、又は、無効データの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。   For example, the selection unit 28 selects a block having the largest number of invalid data or a block having a larger number of invalid data than a predetermined value as the garbage collection target block based on the valid / invalid information 33. Good.

例えば、選択部28は、有効/無効情報33及び削除情報34に基づいて、無効データと削除対象データとの数が最も多いブロック、又は、無効データと削除対象データとの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。   For example, the selection unit 28 determines, based on the valid / invalid information 33 and the deletion information 34, a block in which the number of invalid data and deletion target data is the largest, or the number of invalid data and deletion target data is more than a predetermined value. A large number of blocks may be selected as a target block for garbage collection.

送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成する。換言すれば、ブロック情報は、ガベージコレクション対象のブロックの識別情報と、当該ブロックに書き込まれている有効データを示す論理アドレスとを関係付けた情報を含む。そして、送信部29は、ブロック情報をキャッシュメモリ制御部9に送る。   The transmitting unit 29 generates block information in which a logical address indicating invalid data that is invalidated by the valid / invalid information 33 is deleted from a logical address indicating data written in a garbage collection target block. In other words, the block information includes the information in which the identification information of the garbage collection target block and the logical address indicating the valid data written in the block are associated with each other. Then, the transmitter 29 sends the block information to the cache memory controller 9.

受信部30は、キャッシュメモリ制御部9から削除情報を受け、削除情報34を不揮発性メモリ24に格納する。   The receiving unit 30 receives the deletion information from the cache memory control unit 9, and stores the deletion information 34 in the non-volatile memory 24.

ガベージコレクション部31は、不揮発性メモリ24に格納されている有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。   The garbage collection unit 31 excludes invalid data and deletion target data from the data written in the garbage collection target block based on the valid / invalid information 33 and the deletion information 34 stored in the non-volatile memory 24. Then, garbage collection is executed only for data that is valid and is not deleted.

図2は、本実施形態に係る情報処理装置の処理の一例を示すフローチャートである。   FIG. 2 is a flowchart showing an example of processing of the information processing apparatus according to this embodiment.

ステップS201において、送信部18は、SSD5に、書き込みデータと論理アドレスとを送る。   In step S201, the transmitter 18 sends the write data and the logical address to the SSD 5.

ステップS202において、アドレス変換部25は、書き込みデータと論理アドレスとを受け、アドレス変換情報32に対して、書き込みデータの論理アドレスと物理アドレスとを関係付けた情報を登録する。   In step S202, the address conversion unit 25 receives the write data and the logical address, and registers, in the address conversion information 32, information that associates the logical address of the write data with the physical address.

ステップS203において、書き込み部26は、書き込みデータを不揮発性メモリ24の物理アドレスの示す位置に書き込む。   In step S <b> 203, the writing unit 26 writes the write data at the position indicated by the physical address of the non-volatile memory 24.

ステップS204において、有効/無効生成部27は、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データを示す有効/無効情報33を生成し、メモリ23に有効/無効情報33を格納する。   In step S <b> 204, the valid / invalid generation unit 27 generates valid / invalid information 33 indicating whether each data written in the nonvolatile memory 24 is valid data or invalid data, and stores the valid / invalid information 33 in the memory 23. Store.

ステップS205において、選択部28は、ガベージコレクション対象のブロックを選択する。   In step S205, the selection unit 28 selects a garbage collection target block.

ステップS206において、送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成し、ブロック情報をキャッシュ制御部9に送信する。   In step S206, the transmission unit 29 generates block information in which a logical address indicating invalid data invalidated by the valid / invalid information 33 is deleted from the logical address indicating data written in the garbage collection target block. Then, the block information is transmitted to the cache control unit 9.

ステップS207において、受信部19は、SSD5からブロック情報を受信する。   In step S207, the receiving unit 19 receives the block information from the SSD 5.

ステップS208において、書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスの示すデータの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む。   In step S208, the writing unit 20 writes a part or all of the data indicated by the logical address included in the block information into the nonvolatile memory of the SSD 5 based on the block information received from the SSD 5 and the management information 61 to 64. Write to other memory than 24.

例えば、書き込み部20は、ブロック情報に含まれている論理アドレスのうち、削除命令が受け付けられた削除対象データを示す論理アドレスを除外し、維持対象の論理アドレスの示すデータを、他のメモリに書き込む。   For example, the writing unit 20 excludes, from the logical addresses included in the block information, the logical address indicating the deletion target data for which the deletion instruction has been received, and stores the data indicated by the maintenance target logical address in another memory. Write.

ステップS209において、送信部21は、削除対象の論理アドレスを含む削除情報をSSD5に送る。   In step S209, the transmission unit 21 sends the deletion information including the logical address to be deleted to the SSD 5.

ステップS210において、受信部30は、キャッシュ制御部9から削除情報を受信し、削除情報34をメモリ23に格納する。   In step S 210, the receiving unit 30 receives the deletion information from the cache control unit 9 and stores the deletion information 34 in the memory 23.

ステップS211において、ガベージコレクション部31は、有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。   In step S211, the garbage collection unit 31 excludes the invalid data and the deletion target data from the data written in the garbage collection target block based on the valid / invalid information 33 and the deletion information 34, and the data is valid. Perform garbage collection only on the data that is not deleted.

以上説明した本実施形態においては、キャッシュ制御部9は、SSD5から、不揮発性メモリ24のブロックに書き込まれているデータの情報を取得することができる。これにより、キャッシュ制御部9は、不揮発性メモリ24のブロックにおけるデータの書き込み状態を認識することができる。例えば、本実施形態においては、不揮発性メモリ24のブロックに書き込まれているデータが、有効データであるか、無効データであるか、削除対象データであるかを認識することができる。   In the present embodiment described above, the cache control unit 9 can acquire the information of the data written in the block of the nonvolatile memory 24 from the SSD 5. As a result, the cache control unit 9 can recognize the data write state in the block of the nonvolatile memory 24. For example, in this embodiment, it is possible to recognize whether the data written in the block of the nonvolatile memory 24 is valid data, invalid data, or deletion target data.

本実施形態においては、SSD5が、データが有効データか無効データかを識別するための有効/無効情報33と、データが削除対象か否かを識別するための削除情報34とを備える。これにより、SSD5においてガベージコレクションが実行される場合に、ガベージコレクション対象のブロックに書き込まれているデータを、消去するか否か判断することができ、不必要なデータの書き込みを防止することができ、不揮発性メモリ24の寿命を延ばすことができる。   In the present embodiment, the SSD 5 includes valid / invalid information 33 for identifying whether the data is valid data or invalid data, and deletion information 34 for identifying whether the data is a deletion target. As a result, when garbage collection is executed in the SSD 5, it is possible to determine whether or not to erase the data written in the garbage collection target block, and it is possible to prevent writing of unnecessary data. The life of the non-volatile memory 24 can be extended.

本実施形態において、キャッシュ制御部9は、SSD5から受けたブロック情報に含まれる論理アドレスの示す有効データのうち、削除対象データが不揮発性メモリ24から他のメモリに転記されることを防止することができる。また、本実施形態において、SSD5は、キャッシュ制御部9から他のメモリに転記されなかったデータ(例えば、無効データ、有効データであるが削除対象データでもあるデータ)を、SSD5から削除することができる。   In the present embodiment, the cache control unit 9 prevents the deletion target data from being transferred from the non-volatile memory 24 to another memory among the valid data indicated by the logical address included in the block information received from the SSD 5. You can In addition, in the present embodiment, the SSD 5 can delete from the SSD 5 data that has not been transferred from the cache control unit 9 to another memory (for example, data that is invalid data, valid data, but is also deletion target data). it can.

以上説明した本実施形態においては、SSD5から情報処理装置17へ、消去対象ブロックに関するブロック情報が送られる。しかしながら、このブロック情報は、例えば、不揮発性メモリ24の各ブロックと各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。情報処理装置17は、この関係情報をSSD5から受けることにより、SSD5におけるブロックとデータとの格納関係を認識することができる。   In the present embodiment described above, the block information regarding the block to be erased is sent from the SSD 5 to the information processing device 17. However, this block information may include, for example, information in which each block of the nonvolatile memory 24 is associated with identification information of data written in each block. By receiving this relation information from the SSD 5, the information processing device 17 can recognize the storage relation between the block and the data in the SSD 5.

[第2の実施形態]
本実施形態においては、不揮発性キャッシュメモリ4を備えるキャッシュメモリ装置について説明する。
[Second Embodiment]
In this embodiment, a cache memory device including the nonvolatile cache memory 4 will be described.

図3は、本実施形態に係る情報処理システム35の構成の一例を示すブロック図である。   FIG. 3 is a block diagram showing an example of the configuration of the information processing system 35 according to this embodiment.

情報処理装置17は、プロセッサ2、メモリ3、不揮発性キャッシュメモリ4を含む。   The information processing device 17 includes a processor 2, a memory 3, and a nonvolatile cache memory 4.

不揮発性キャッシュメモリ4は、ブロックグループBG1〜BG4を含む。不揮発性キャッシュメモリ4は、SSD5よりも高速にアクセス可能である。   The nonvolatile cache memory 4 includes block groups BG1 to BG4. The nonvolatile cache memory 4 can be accessed faster than the SSD 5.

ブロックグループ(第1のグループ)BG1は、ブロック(第1の消去エリア)B1,1〜B1,Kを含む。ブロックグループBG1は、プロセッサ2によってアクセスされたデータ(プロセッサ2に使用されたデータ)を格納する。   The block group (first group) BG1 includes blocks (first erase area) B1,1 to B1, K. The block group BG1 stores data accessed by the processor 2 (data used by the processor 2).

本実施形態において、ブロックグループBG1が消去条件(第1の消去条件)を満たす場合に、先入先出法(First-In First-Out:FIFO)に基づいて、ブロックグループBG1内のブロックB1,1〜B1,Kから消去対象(破棄対象又は追い出し対象)ブロック(第1の消去対象エリア)が選択される。   In the present embodiment, when the block group BG1 satisfies the erase condition (first erase condition), the blocks B1,1 in the block group BG1 are based on the first-in first-out (FIFO) method. The blocks to be erased (discarded or ejected) (first erased area) are selected from B1 to K1.

例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kのデータ量が所定の値を越えている場合に、消去条件を満たすとする。また、例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kに書き込まれたページ数が所定の数を越えた場合に、消去条件を満たすとしてもよい。   For example, when the data amount of each block B1,1 to B1, K of the block group BG1 exceeds a predetermined value, the erase condition is satisfied. Further, for example, the erasing condition may be satisfied when the number of pages written in each block B1,1 to B1, K of the block group BG1 exceeds a predetermined number.

ブロックB1,1〜B1,KからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第1の低使用状態(例えば設定された第1の回数又は第1の頻度未満でアクセスされている)の場合に、ブロックグループBG2に書き込まれる。これに対して、ブロックB1,1〜B1,Kから選択された消去対象ブロックに書き込まれているデータは、当該データが第1の高使用状態(例えば第1の回数又は第1の頻度以上でアクセスされている)の場合に、ブロックグループBG3に書き込まれる。そして、ブロックB1,1〜B1,Kから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去(破棄又は追い出し)される。   The data written in the block to be erased selected from the blocks B1,1 to B1, K by the FIFO is the first low usage state (for example, the first number of times set or less than the first frequency). In case of being accessed), it is written in the block group BG2. On the other hand, the data written in the block to be erased selected from the blocks B1,1 to B1, K has the first high usage state (for example, the first number of times or the first frequency or more). In case of being accessed), it is written in the block group BG3. Then, the data written in the erase target block selected from the blocks B1,1 to B1, K is erased (discarded or ejected) in block units.

ブロックグループ(第2のグループ)BG2は、ブロック(第2の消去エリア)B2,1〜B2,Lを含む。ブロックグループBG2は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の低使用状態のデータを格納する。   The block group (second group) BG2 includes blocks (second erase area) B2,1 to B2, L. The block group BG2 stores the data in the first low usage state among the data written in the erase target block selected from the block group BG1.

本実施形態において、ブロックグループBG2が消去条件(第3の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG2内のブロックB2,1〜B2,Lから消去対象ブロック(第3の消去対象エリア)が選択される。   In the present embodiment, when the block group BG2 satisfies the erase condition (third erase condition), the blocks to be erased (third erase) from the blocks B2,1 to B2, L in the block group BG2 based on the FIFO. Target area) is selected.

ブロックB2,1〜B2,LからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第3の低使用状態(例えば設定された第3の回数又は第3の頻度未満でアクセスされている)の場合に、消去される。これに対して、ブロックB2,1〜B2,Lから選択された消去対象ブロックに書き込まれているデータは、当該データが第3の高使用状態(例えば第3の回数又は第3の頻度以上でアクセスされている)の場合に、ブロックグループBG3に書き込まれる。そして、ブロックB2,1〜B2,Lから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去される。   The data written in the block to be erased selected from the blocks B2,1 to B2, L by the FIFO is the third low usage state (for example, the third number of times or less than the set third frequency). If it is being accessed), it will be deleted. On the other hand, the data written in the block to be erased selected from the blocks B2,1 to B2, L has the third high usage state (for example, the third number of times or the third frequency or more). In case of being accessed), it is written in the block group BG3. Then, the data written in the erase target block selected from the blocks B2,1 to B2, L is erased in block units.

ブロックグループ(第3のグループ)BG3は、ブロック(第3の消去エリア)B3,1〜B3,Mを含む。ブロックグループBG3は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の高使用状態のデータを格納する。また、ブロックグループBG3は、ブロックグループBG2から選択された消去対象ブロックに書き込まれているデータのうち第3の高使用状態のデータを格納する。   The block group (third group) BG3 includes blocks (third erase area) B3,1 to B3, M. The block group BG3 stores the data in the first high usage state among the data written in the erase target block selected from the block group BG1. Further, the block group BG3 stores the data in the third high usage state among the data written in the erase target block selected from the block group BG2.

本実施形態において、ブロックグループBG3が消去条件(第2の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG3内のブロックB3,1〜B3,Mから消去対象ブロック(第2の消去対象エリア)が選択される。   In the present embodiment, when the block group BG3 satisfies the erasing condition (second erasing condition), the blocks to be erased (second erasing) from the blocks B3,1 to B3, M in the block group BG3 based on the FIFO. Target area) is selected.

ブロックB3,1〜B3,MからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第2の低使用状態(例えば設定された第2の回数又は第2の頻度未満でアクセスされている)の場合に、ブロックグループBG4に書き込まれる。これに対して、ブロックB3,1〜B3,Mから選択された消去対象ブロックに書き込まれているデータは、当該データが第2の高使用状態(例えば第2の回数又は第2の頻度以上でアクセスされている)の場合に、ブロックグループBG3内の他のブロックに対して再書き込みされる。そして、ブロックB3,1〜B3,Mから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去される。   The data written in the block to be erased selected by the FIFO from the blocks B3,1 to B3, M has a second low usage state (for example, the second number of times or less than the second frequency which is set). If it is being accessed), it is written to the block group BG4. On the other hand, the data written in the erasing target block selected from the blocks B3,1 to B3, M has the second high usage state (for example, the second number of times or the second frequency or more). If it is being accessed), it is rewritten to another block in the block group BG3. Then, the data written in the erase target block selected from the blocks B3,1 to B3, M is erased in block units.

ブロックグループ(第4のグループ)BG4は、ブロック(第4の消去エリア)B4,1〜B4,Nを含む。ブロックグループBG4は、ブロックグループBG3から選択された消去対象ブロックに書き込まれているデータのうち第2の低使用状態のデータを格納する。   The block group (fourth group) BG4 includes blocks (fourth erase area) B4,1 to B4, N. The block group BG4 stores the data in the second low usage state out of the data written in the erase target block selected from the block group BG3.

本実施形態において、ブロックグループBG4が消去条件(第4の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG4内のブロックB4,1〜B4,Nから消去対象ブロック(第4の消去対象エリア)が選択される。   In the present embodiment, when the block group BG4 satisfies the erase condition (fourth erase condition), the blocks to be erased (fourth erase) from the blocks B4,1 to B4, N in the block group BG4 based on the FIFO. Target area) is selected.

ブロックB4,1〜B4,NからFIFOによって選択された消去対象ブロックに書き込まれているデータは、消去される。   The data written in the erase target block selected by the FIFO from the blocks B4,1 to B4, N is erased.

本実施形態においては、各ブロックグループBG1〜BG4から消去対象ブロックを選択する手法としてFIFOが用いられている。消去対象ブロックがFIFOに基づいて選択されることにより、各ブロックグループBG1〜BG4から書き込み時間及び書き込み順序が古いブロックから消去される。しかしながら、消去対象ブロックは、例えば、ランダムに選択されるとしてもよく、LRU(Least Recently Used)に基づいて選択されてもよく、LFU(Least Frequently Used)に基づいて選択されてもよい。例えば、管理情報61〜64に基づいて、無効データの数が最も多いブロック、又は、無効データの数が所定の値より多いブロックが、消去対象ブロックとして選択されてもよい。例えば、管理情報61〜64は、データの識別情報と、データが削除対象か否かを示す情報と、データの使用状態情報を含む。管理情報61〜64に基づいて、無効データと削除対象データとの数が最も多いブロック、又は、無効データと削除対象データとの数が所定の値より多いブロックが、消去対象ブロックとして選択されてもよい。   In the present embodiment, the FIFO is used as a method of selecting a block to be erased from each block group BG1 to BG4. By selecting the block to be erased based on the FIFO, the blocks having the oldest writing time and writing order are erased from each block group BG1 to BG4. However, the erase target block may be selected at random, may be selected based on LRU (Least Recently Used), or may be selected based on LFU (Least Frequently Used). For example, a block having the largest number of invalid data or a block having a larger number of invalid data than a predetermined value may be selected as the erase target block based on the management information 61 to 64. For example, the management information 61 to 64 includes data identification information, information indicating whether the data is to be deleted, and data usage status information. Based on the management information 61 to 64, a block having the largest number of invalid data and deletion target data or a block having a larger number of invalid data and deletion target data than a predetermined value is selected as an erasing target block. Good.

本実施形態において、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、キャッシュされているデータの識別情報(例えばホストから提供される論理アドレス)、当該データが書き込まれている位置、当該データの使用状態を、認識可能である。例えば、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、ブロックグループBG1〜BG4のそれぞれにキャッシュされるデータと、FIFOにより消去されるブロックとを、選択可能である。   In the present embodiment, the cache control unit 9 writes identification information of cached data (for example, a logical address provided by the host) and the data based on the management information 61 to 64 and the address conversion information 7. It is possible to recognize the current position and the usage status of the data. For example, the cache control unit 9 can select the data cached in each of the block groups BG1 to BG4 and the block erased by the FIFO based on the management information 61 to 64 and the address conversion information 7. .

プロセッサ2は、プロセッサ2内のメモリに格納されているプログラム、メモリ3に格納されているプログラム、不揮発性キャッシュメモリ4に格納されているプログラム、又は、SSD5に格納されているプログラムを実行することにより、アドレス変換部8及びキャッシュ制御部9として機能する。   The processor 2 executes a program stored in the memory in the processor 2, a program stored in the memory 3, a program stored in the non-volatile cache memory 4, or a program stored in the SSD 5. This functions as the address conversion unit 8 and the cache control unit 9.

本実施形態において、プロセッサ2をアドレス変換部8及びキャッシュ制御部9として機能させるためのプログラムは、例えば、OS、ミドルウェア、ファームウェアでもよい。本実施形態において、アドレス変換部8のうちの一部又は全部、又は、キャッシュ制御部9のうちの一部又は全部は、ハードウェアにより実装されてもよい。   In the present embodiment, the program for causing the processor 2 to function as the address conversion unit 8 and the cache control unit 9 may be, for example, an OS, middleware, or firmware. In the present embodiment, part or all of the address conversion unit 8 or part or all of the cache control unit 9 may be implemented by hardware.

アドレス変換部8は、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性キャッシュメモリ4の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報7に登録する。   The address conversion unit 8 generates information that associates the logical address of the write data with the physical address indicating the position of the nonvolatile cache memory 4 in which the write data is stored, and registers this information in the address conversion information 7. To do.

また、アドレス変換部8は、プロセッサ2から読み出しデータの論理アドレスを受けた場合に、アドレス変換情報7に基づいて、論理アドレスを物理アドレスに変換する。   Further, when receiving the logical address of the read data from the processor 2, the address translation unit 8 translates the logical address into a physical address based on the address translation information 7.

キャッシュ制御部9は、生成部10、制御部11〜14、変更部15,16を含む。   The cache control unit 9 includes a generation unit 10, control units 11 to 14, and changing units 15 and 16.

生成部10は、不揮発性キャッシュメモリ4のブロックグループBG1〜BG4に対応する管理情報61〜64を生成し、管理情報61〜64をメモリ3に書き込む。   The generation unit 10 generates management information 61 to 64 corresponding to the block groups BG1 to BG4 of the nonvolatile cache memory 4, and writes the management information 61 to 64 in the memory 3.

制御部11〜14は、それぞれブロックグループBG1〜BG4に対するデータの書き込み及びブロックの消去を制御する。   The control units 11 to 14 control writing of data and erasing of blocks in the block groups BG1 to BG4, respectively.

制御部11は、書き込み部111、判断部112、選択部113、判断部114、消去部115を含む。   The control unit 11 includes a writing unit 111, a determination unit 112, a selection unit 113, a determination unit 114, and an erasing unit 115.

書き込み部(第1の書き込み部)111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。   The writing unit (first writing unit) 111 writes the data accessed by the processor 2 to the block group BG1.

判断部(第1の判断部)112は、ブロックグループBG1が消去条件(第1の消去条件)を満たすか否か判断する。   The determination unit (first determination unit) 112 determines whether the block group BG1 satisfies the erase condition (first erase condition).

選択部(第1の選択部)113は、ブロックグループBG1が消去条件を満たす場合に、ブロックグループBG1から消去対象ブロック(第1の消去対象エリア)を選択する。   The selection unit (first selection unit) 113 selects an erase target block (first erase target area) from the block group BG1 when the block group BG1 satisfies the erase condition.

判断部(第2の判断部)114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。   The determination unit (second determination unit) 114 determines, based on the management information 61, whether each data written in the erase target block is the first high usage state, the first low usage state, or the deletion target. .

消去部(第1の消去部)115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。   The erasing unit (first erasing unit) 115 writes each data written in the erasing target block in the block group BG2 or the block group BG3, or when the data is a deletion target and may be discarded. , Erase the block to be erased.

制御部12は、書き込み部121、判断部122、選択部123、判断部124、消去部125を含む。   The control unit 12 includes a writing unit 121, a determination unit 122, a selection unit 123, a determination unit 124, and an erasing unit 125.

書き込み部(第2の書き込み部)121は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG2に対して書き込む。   When the determination unit 114 determines that the data written in the erase target block of the block group BG1 is in the first low usage state and is not the deletion target, the writing unit (second writing unit) 121 concerned data Is written to the block group BG2.

判断部(第5の判断部)122は、ブロックグループBG2が消去条件(第3の消去条件)を満たすか否か判断する。   The determination unit (fifth determination unit) 122 determines whether or not the block group BG2 satisfies the erase condition (third erase condition).

選択部(第3の選択部)123は、ブロックグループBG2が消去条件を満たす場合に、ブロックグループBG2から消去対象ブロック(第3の消去対象エリア)を選択する。   The selection unit (third selection unit) 123 selects an erase target block (third erase target area) from the block group BG2 when the block group BG2 satisfies the erase condition.

判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。   The determination unit 124 determines, based on the management information 62, whether each piece of data written in the erase target block is the third high usage state, the third low usage state, or the deletion target.

消去部(第2の消去部)125は、消去対象ブロックに書き込まれている第3の高使用状態のデータであり削除対象でないデータがブロックグループBG3に書き込まれた場合に、消去対象ブロックに書き込まれているデータを消去する。   The erasing unit (second erasing unit) 125 writes to the erasing target block when the third high usage state data written in the erasing target block and not the erasing target data is written to the block group BG3. Delete the stored data.

制御部13は、書き込み部131、判断部132、選択部133、判断部134、書き込み部135、消去部136、書き込み部137を含む。   The control unit 13 includes a writing unit 131, a determination unit 132, a selection unit 133, a determination unit 134, a writing unit 135, an erasing unit 136, and a writing unit 137.

書き込み部(第3の書き込み部)131は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG3に対して書き込む。   When the determination unit 114 determines that the data written in the erase target block of the block group BG1 is in the first high usage state and is not the deletion target, the writing unit (third writing unit) 131 concerned data Is written to the block group BG3.

書き込み部(第6の書き込み部)137は、ブロックグループBG2に書き込まれているデータが第3の高使用状態であり削除対象でない場合に、当該データをブロックグループBG3に対して書き込む。例えば、書き込み部137は、ブロックグループBG2に書き込まれているデータがプロセッサ2におけるアクセス対象となった場合に、ブロックグループBG2のアクセス対象データを、ブロックグループBG3に対して書き込むとしてもよい。   The writing unit (sixth writing unit) 137 writes the data written in the block group BG2 to the block group BG3 when the data is in the third high usage state and is not the deletion target. For example, the writing unit 137 may write the access target data of the block group BG2 to the block group BG3 when the data written in the block group BG2 is the access target of the processor 2.

判断部(第3の判断部)132は、ブロックグループBG3が消去条件(第2の消去条件)を満たすか否か判断する。   The determination unit (third determination unit) 132 determines whether or not the block group BG3 satisfies the erase condition (second erase condition).

選択部(第2の選択部)133は、ブロックグループBG3が消去条件を満たす場合に、ブロックグループBG3から消去対象ブロック(第2の消去対象エリア)を選択する。   The selection unit (second selection unit) 133 selects an erase target block (second erase target area) from the block group BG3 when the block group BG3 satisfies the erase condition.

判断部(第4の判断部)134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。   The determination unit (fourth determination unit) 134 determines, based on the management information 63, whether each data written in the erase target block is the second high usage state, the second low usage state, or the deletion target. .

書き込み部(第5の書き込み部)135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の高使用状態であり削除対象でないと判断された場合に、当該データを、ブロックグループBG3の書き込み可能な他のブロックに対して再書き込みする。   When the writing unit (fifth writing unit) 135 determines that the data written in the erase target block of the block group BG3 is in the second high usage state and is not the deletion target, it writes the data to the block group. Rewrite to another writable block of BG3.

消去部(第3の消去部)136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。   The erasing unit (third erasing unit) 136 is discarded because each data written in the erasing target block is written in the block group BG4, rewritten in the block group BG3, or is a deletion target. If so, the erase target block is erased.

制御部14は、書き込み部141、判断部142、選択部143、消去部144を含む。   The control unit 14 includes a writing unit 141, a determination unit 142, a selection unit 143, and an erasing unit 144.

書き込み部(第4の書き込み部)141は、判断部134によってブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG4に対して書き込む。   When the determination unit 134 determines that the data written in the erase target block of the block group BG3 is in the second low usage state and is not the deletion target, the write unit (fourth write unit) 141 concerned data Is written to the block group BG4.

判断部(第6の判断部)142は、ブロックグループBG4が消去条件(第4の消去条件)を満たすか否か判断する。   The determination unit (sixth determination unit) 142 determines whether the block group BG4 satisfies the erase condition (fourth erase condition).

選択部(第4の選択部)143は、ブロックグループBG4が消去条件を満たす場合に、ブロックグループBG4から消去対象ブロック(第4の消去対象エリア)を選択する。   The selecting unit (fourth selecting unit) 143 selects an erase target block (fourth erase target area) from the block group BG4 when the block group BG4 satisfies the erase condition.

消去部(第4の消去部)144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。   The erasing unit (fourth erasing unit) 144 erases the data written in the erase target block of the block group BG4.

変更部(第1の変更部)15は、ブロックグループBG2に書き込まれているデータが第3の高使用状態になった場合に、ブロックグループBG1に含まれているブロックの数を増加し、ブロックグループBG3に含まれているブロックの数を減少する。例えば、変更部15は、ブロックグループBG2に書き込まれているデータがプロセッサ2によるアクセス対象となった場合に、ブロックグループBG1に含まれているブロックの数を増加し、ブロックグループBG3に含まれているブロックの数を減少する。   The changing unit (first changing unit) 15 increases the number of blocks included in the block group BG1 when the data written in the block group BG2 is in the third high usage state, Reduce the number of blocks contained in group BG3. For example, the changing unit 15 increases the number of blocks included in the block group BG1 when the data written in the block group BG2 is to be accessed by the processor 2 and is included in the block group BG3. Reduce the number of blocks

変更部(第2の変更部)16は、ブロックグループBG4に書き込まれているデータが第4の高使用状態になった場合に、ブロックグループBG3に含まれているブロックの数を増加し、ブロックグループBG1に含まれているブロックの数を減少する。例えば、変更部16は、ブロックグループBG4に書き込まれているデータがプロセッサ2によるアクセス対象となった場合に、ブロックグループBG3に含まれているブロックを増加し、ブロックグループBG1に含まれているブロックの数を減少する。   The changing unit (second changing unit) 16 increases the number of blocks included in the block group BG3 when the data written in the block group BG4 becomes the fourth high usage state, The number of blocks included in the group BG1 is reduced. For example, the changing unit 16 increases the number of blocks included in the block group BG3 and increases the number of blocks included in the block group BG1 when the data written in the block group BG4 is to be accessed by the processor 2. Reduce the number of.

図4は、本実施形態に係る第1のキャッシュ制御の一例を示すフローチャートである。この図4は、ブロックグループBG1にデータが書き込まれてから、ブロックグループBG2又はブロックグループBG3にデータが書き込まれ、ブロックグループBG1の消去対象ブロックが消去される処理を例示している。   FIG. 4 is a flowchart showing an example of the first cache control according to this embodiment. FIG. 4 exemplifies a process in which data is written in the block group BG1 and then data is written in the block group BG2 or the block group BG3, and the erase target block of the block group BG1 is erased.

ステップS401において、書き込み部111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。   In step S401, the writing unit 111 writes the data accessed by the processor 2 in the block group BG1.

ステップS402において、判断部112は、ブロックグループBG1が消去条件を満たすか否か判断する。   In step S402, the determination unit 112 determines whether the block group BG1 satisfies the erase condition.

ブロックグループBG1が消去条件を満たさない場合には、処理はステップS406に移る。   If the block group BG1 does not satisfy the erase condition, the process proceeds to step S406.

ブロックグループBG1が消去条件を満たす場合には、ステップS403において、選択部113は、ブロックグループBG1から消去対象ブロックを選択する。   If the block group BG1 satisfies the erasing condition, the selecting unit 113 selects an erasing target block from the block group BG1 in step S403.

ステップS404において、判断部114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。   In step S404, the determination unit 114 determines, based on the management information 61, whether each data written in the erase target block is in the first high usage state, the first low usage state, or the deletion target.

データが第1の低使用状態であり削除対象ではない場合には、ステップS501において、書き込み部121は、ブロックグループBG2にデータを書き込む。   When the data is in the first low usage state and is not the deletion target, the writing unit 121 writes the data in the block group BG2 in step S501.

データが第1の高使用状態であり削除対象ではない場合には、ステップS601において、書き込み部131は、ブロックグループBG3にデータを書き込む。   When the data is in the first high usage state and is not the deletion target, in step S601, the writing unit 131 writes the data in the block group BG3.

ステップS405において、消去部115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。   In step S405, the erasing unit 115 determines whether the data written in the block to be erased is written in the block group BG2 or the block group BG3, or if the data may be discarded because it is a deletion target. Erase the block.

ステップS406において、キャッシュ制御部9が処理を終了するか否か判断する。   In step S406, the cache control unit 9 determines whether to end the process.

キャッシュ制御部9が処理を終了しない場合に、処理はステップS401に移る。   If the cache control unit 9 does not finish the process, the process proceeds to step S401.

キャッシュ制御部9が処理を終了する場合に、処理は終了する。   The process ends when the cache control unit 9 ends the process.

図5は、本実施形態に係る第2のキャッシュ制御の一例を示すフローチャートである。この図5は、ブロックグループBG2にデータが書き込まれ、ブロックグループBG2の消去対象ブロックが消去される処理を例示している。   FIG. 5 is a flowchart showing an example of the second cache control according to this embodiment. FIG. 5 exemplifies a process in which data is written in the block group BG2 and the erase target block in the block group BG2 is erased.

ステップS501において、書き込み部121は、上記ステップS404においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG2に対して書き込む。   In step S501, when the writing unit 121 determines that the data written in the erase target block of the block group BG1 in step S404 is in the first low usage state and is not the deletion target, the data is blocked. Write to group BG2.

ステップS502において、判断部122は、ブロックグループBG2が消去条件を満たすか否か判断する。   In step S502, the determination unit 122 determines whether the block group BG2 satisfies the erase condition.

ブロックグループBG2が消去条件を満たさない場合には、処理はステップS506に移る。   If the block group BG2 does not satisfy the erase condition, the process proceeds to step S506.

ブロックグループBG2が消去条件を満たす場合には、ステップS503において、選択部123は、ブロックグループBG2から消去対象ブロックを選択する。   When the block group BG2 satisfies the erasing condition, in step S503, the selecting unit 123 selects the erasing target block from the block group BG2.

ステップS504において、判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。   In step S504, the determination unit 124 determines, based on the management information 62, whether each data written in the erase target block is the third high usage state, the third low usage state, or the deletion target.

データが第3の低使用状態又は削除対象の場合には、処理はステップS505に移る。   If the data is the third low usage state or the deletion target, the process proceeds to step S505.

データが第3の高使用状態であり削除対象ではない場合には、ステップS601において、書き込み部137は、ブロックグループBG3にデータを書き込む。   When the data is in the third high usage state and is not the deletion target, in step S601, the writing unit 137 writes the data in the block group BG3.

ステップS505において、消去部125は、ブロックグループBG2の消去対象ブロックに書き込まれているデータを消去する。   In step S505, the erase unit 125 erases the data written in the erase target block of the block group BG2.

ステップS505において、キャッシュ制御部9が処理を終了するか否か判断する。   In step S505, the cache control unit 9 determines whether to end the process.

キャッシュ制御部9が処理を終了しない場合に、処理はステップS501に移る。   If the cache control unit 9 does not finish the process, the process proceeds to step S501.

キャッシュ制御部9が処理を終了する場合に、処理は終了する。   The process ends when the cache control unit 9 ends the process.

図6は、本実施形態に係る第3のキャッシュ制御の一例を示すフローチャートである。
この図6は、ブロックグループBG3にデータが書き込まれてから、ブロックグループBG3のデータが消去されるまでの処理を例示している。
FIG. 6 is a flowchart showing an example of the third cache control according to this embodiment.
FIG. 6 exemplifies the processing from the writing of data to the block group BG3 to the erasing of the data of the block group BG3.

ステップS601において、書き込み部131は、上記ステップS404においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG3に対して書き込む。または、書き込み部137は、上記ステップS504においてブロックグループBG2に書き込まれているデータが第3の高使用状態(例えばプロセッサ2におけるアクセス対象となった)であり削除対象ではないと判断された場合に、ブロックグループBG2の当該データを、ブロックグループBG3に対して書き込む。   In step S601, when the writing unit 131 determines that the data written in the block to be erased of the block group BG1 in step S404 is in the first high usage state and is not the deletion target, it blocks the data. Write to group BG3. Alternatively, if the writing unit 137 determines in step S504 that the data written in the block group BG2 is in the third high-usage state (for example, it is an access target in the processor 2) and is not a deletion target. , The relevant data of the block group BG2 is written to the block group BG3.

ステップS602において、判断部132は、ブロックグループBG3が消去条件を満たすか否か判断する。   In step S602, the determination unit 132 determines whether the block group BG3 satisfies the erase condition.

ブロックグループBG3が消去条件を満たさない場合には、処理はステップS607に移る。   If the block group BG3 does not satisfy the erase condition, the process proceeds to step S607.

ブロックグループBG3が消去条件を満たす場合には、ステップS603において、選択部133は、ブロックグループBG3から消去対象ブロックを選択する。   When the block group BG3 satisfies the erasing condition, in step S603, the selecting unit 133 selects a block to be erased from the block group BG3.

ステップS604において、判断部134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。   In step S604, the determination unit 134 determines, based on the management information 63, whether each data written in the erase target block is the second high usage state, the second low usage state, or the deletion target.

データが第2の低使用状態であり削除対象ではない場合には、ステップS701において、書き込み部141は、ブロックグループBG4にデータを書き込む。   When the data is in the second low usage state and is not the deletion target, the writing unit 141 writes the data in the block group BG4 in step S701.

データが第2の高使用状態であり削除対象ではない場合には、ステップS605において、書き込み部135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータを、ブロックグループBG3の他のブロックに対して再書き込みする。   If the data is in the second high usage state and is not the deletion target, in step S605, the writing unit 135 sets the data written in the erase target block of the block group BG3 to another block of the block group BG3. Rewrite it.

ステップS606において、消去部136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。   In step S606, the erasing unit 136 may discard the data written in the block to be erased because it was written in the block group BG4, rewritten in the block group BG3, or because it is a deletion target. In this case, the block to be erased is erased.

ステップS607において、キャッシュ制御部9が処理を終了するか否か判断する。   In step S607, the cache control unit 9 determines whether to end the process.

キャッシュ制御部9が処理を終了しない場合に、処理はステップS601に移る。   If the cache control unit 9 does not finish the process, the process proceeds to step S601.

キャッシュ制御部9が処理を終了する場合に、処理は終了する。   The process ends when the cache control unit 9 ends the process.

図7は、本実施形態に係る第4のキャッシュ制御の一例を示すフローチャートである。この図7は、ブロックグループBG4にデータが書き込まれ、ブロックグループBG4のデータが消去され処理を例示している。   FIG. 7 is a flowchart showing an example of the fourth cache control according to this embodiment. FIG. 7 exemplifies a process in which data is written in the block group BG4 and data in the block group BG4 is deleted.

ステップS701において、書き込み部141は、上記ステップS604においてブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG4に対して書き込む。   In step S701, when the writing unit 141 determines that the data written in the block to be erased of the block group BG3 in step S604 is in the second low usage state and is not the deletion target, it blocks the data. Write to group BG4.

ステップS702において、判断部142は、ブロックグループBG4が消去条件を満たすか否か判断する。   In step S702, the determination unit 142 determines whether the block group BG4 satisfies the erase condition.

ブロックグループBG4が消去条件を満たさない場合には、処理はステップS705に移る。   If the block group BG4 does not satisfy the erase condition, the process proceeds to step S705.

ブロックグループBG4が消去条件を満たす場合には、ステップS703において、選択部143は、ブロックグループBG4から消去対象ブロックを選択する。   If the block group BG4 satisfies the erasing condition, in step S703, the selecting unit 143 selects a block to be erased from the block group BG4.

ステップS704において、消去部144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。   In step S704, the erase unit 144 erases the data written in the block to be erased of the block group BG4.

ステップS705において、キャッシュ制御部9が処理を終了するか否か判断する。   In step S705, the cache control unit 9 determines whether to end the process.

キャッシュ制御部9が処理を終了しない場合に、処理はステップS701に移る。   If the cache control unit 9 does not finish the process, the process proceeds to step S701.

キャッシュ制御部9が処理を終了する場合に、処理は終了する。   The process ends when the cache control unit 9 ends the process.

以上説明した本実施形態に係るブロックグループBG1においては、例えば、まずブロックB1,1に対してシーケンシャルにデータが書き込まれ、次に、ブロックB1,2に対してシーケンシャルにデータが書き込まれ、その後、ブロックB1,3〜B1,Kに対して同様にデータが書き込まれる。ブロックグループBG1に含まれるブロックB1,1〜B1,Kが所定のデータ量を越えた場合に、FIFOにより、最初に書き込みが完了したブロックB1,1が消去され、消去されたブロックB1,1に対して再びシーケンシャルにデータが書き込まれる。次に、ブロックB1,1に対する書き込みが完了すると、FIFOにより、ブロックB1,2が消去される。そして、消去されたブロックB1,2に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。   In the block group BG1 according to the present embodiment described above, for example, first, data is sequentially written to the blocks B1,1 and then data is sequentially written to the blocks B1,2. Data is similarly written to the blocks B1,3 to B1, K. When the blocks B1,1 to B1, K included in the block group BG1 exceed a predetermined amount of data, the FIFO erases the block B1,1 which has been written first, so that the erased block B1,1 becomes On the other hand, the data is sequentially written again. Next, when the writing to the block B1,1 is completed, the block B1,2 is erased by the FIFO. Then, the data is sequentially written again to the erased blocks B1,2. Hereinafter, the same control is repeated.

ブロックグループBG1においては、管理情報61に基づいて、ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第1の回数又は第1の頻度未満か否か判断される。ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが第1の回数又は第1の頻度未満の場合、当該データの書き込み先としてブロックグループBG2が選択される。   In the block group BG1, it is determined based on the management information 61 whether or not the access to the data written in the erase target block in the block group BG1 is, for example, the first number of times or less than the first frequency. When the access to the data written in the erase target block in the block group BG1 is the first number or less than the first frequency, the block group BG2 is selected as the write destination of the data.

これに対して、ブロックグループBG1における消去対象ブロックに書き込まれているデータのアクセスが第1の回数又は第1の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。   On the other hand, when the data written in the block to be erased in the block group BG1 is accessed the first number of times or more than the first frequency, the block group BG3 is selected as the write destination of the data.

また、ブロックグループBG1における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。   When the data written in the block to be erased in the block group BG1 is the deletion target, the data is discarded.

本実施形態に係るブロックグループBG2においては、まず、ブロックグループBG1からの第1の低使用状態のデータが、ブロックB2,1に対してシーケンシャルに書き込まれ、次に、ブロックB2,2に対してシーケンシャルに書き込まれ、その後、ブロックB2,3〜B2,Lに対して同様に書き込まれる。ブロックグループBG2に含まれるブロックB2,1〜B2,Lが所定のデータ量を越えた場合に、FIFOにより、最初に書き込みが完了したブロックB2,1が消去され、消去されたブロックB2,1に対して再びシーケンシャルにデータが書き込まれる。次に、ブロックB2,1に対する書き込みが完了すると、FIFOにより、ブロックB2,2が消去される。そして、消去されたブロックB2,2に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。   In the block group BG2 according to the present embodiment, first, the data of the first low usage state from the block group BG1 is sequentially written to the block B2,1 and then to the block B2,2. The blocks are written sequentially, and thereafter, the blocks B2,3 to B2, L are similarly written. When the blocks B2,1 to B2, L included in the block group BG2 exceed a predetermined data amount, the FIFO erases the block B2,1 which is the first to be written to the erased block B2,1. On the other hand, the data is sequentially written again. Next, when writing to the block B2,1 is completed, the block B2,2 is erased by the FIFO. Then, data is sequentially written again to the erased block B2,2. Hereinafter, the same control is repeated.

ブロックグループBG2においては、管理情報62に基づいて、ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第3の回数又は第3の頻度未満か否か判断される。ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが第3の回数又は第3の頻度未満の場合、当該データは消去される。   In the block group BG2, it is determined based on the management information 62 whether or not the access to the data written in the erase target block in the block group BG2 is, for example, the third number of times or less than the third frequency. When the access to the data written in the erase target block in the block group BG2 is the third number of times or less than the third frequency, the data is erased.

これに対して、ブロックグループBG2における消去対象ブロックに書き込まれているデータのアクセスが第3の回数又は第3の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。   On the other hand, when the data written in the block to be erased in the block group BG2 is accessed a third number of times or more than the third frequency, the block group BG3 is selected as the write destination of the data.

また、ブロックグループBG2における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。   If the data written in the block to be erased in the block group BG2 is to be deleted, the data is discarded.

本実施形態に係るブロックグループBG3においては、まず、ブロックグループBG2からの第1の高使用状態のデータ、ブロックグループBG2からの第3の高使用状態のデータ、又は、ブロックグループBG3からの再書き込みデータが、ブロックB3,1に対してシーケンシャルに書き込まれ、次に、ブロックB3,2に対してシーケンシャルに書き込まれ、その後、ブロックB3,3〜B3,Mに対して同様に書き込まれる。ブロックグループBG3に含まれるブロックB3,1〜B3,Mが所定のデータ量を越えた場合に、FIFOにより、最初に書き込みが完了したブロックB3,1が消去され、消去されたブロックB3,1に対して再びシーケンシャルにデータが書き込まれる。次に、ブロックB3,1に対する書き込みが完了すると、FIFOにより、ブロックB3,2が消去される。そして、消去されたブロックB3,2に対して再びシーケンシャルにデータを書き込まれる。以下、同様の制御が繰り返される。   In the block group BG3 according to the present embodiment, first, data in the first high usage state from the block group BG2, data in the third high usage state from the block group BG2, or rewriting from the block group BG3. Data is written to block B3,1 sequentially, then to block B3,2, and then to blocks B3,3 to B3, M. When the blocks B3,1 to B3, M included in the block group BG3 exceed a predetermined amount of data, the FIFO erases the block B3,1 which has been written first, and the erased block B3,1 is erased. On the other hand, the data is sequentially written again. Next, when the writing to the block B3,1 is completed, the block B3,2 is erased by the FIFO. Then, the data is sequentially written again to the erased block B3,2. Hereinafter, the same control is repeated.

ブロックグループBG3においては、管理情報63に基づいて、ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第2の回数又は第2の頻度未満か否か判断される。ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが第2の回数又は第2の頻度未満の場合、当該データの書き込み先としてブロックグループBG4が選択される。   In the block group BG3, it is determined based on the management information 63 whether or not the access to the data written in the erase target block in the block group BG3 is, for example, the second number or less than the second frequency. When the access to the data written in the block to be erased in the block group BG3 is the second number or less than the second frequency, the block group BG4 is selected as the write destination of the data.

これに対して、ブロックグループBG3における消去対象ブロックに書き込まれているデータのアクセスが第2の回数又は第2の頻度以上の場合、当該データはブロックグループBG3に再書き込みされる。   On the other hand, when the access to the data written in the block to be erased in the block group BG3 is the second number or the second frequency or more, the data is rewritten in the block group BG3.

また、ブロックグループBG3における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。   If the data written in the block to be erased in the block group BG3 is the deletion target, the data is discarded.

本実施形態に係るブロックグループBG4においては、まず、ブロックグループBG3からの第2の低使用状態のデータがブロックB4,1に対してシーケンシャルに書き込まれ、次に、ブロックB4,2に対してシーケンシャルにデータが書き込まれ、その後、ブロックB4,3〜B4,Nに対して同様にデータを書き込まれる。ブロックグループBG4に含まれるブロックB4,1〜B4,Nが所定のデータ量を越えた場合に、FIFOにより、最初に書き込みが完了したブロックB4,1が消去され、消去されたブロックB4,1に対して再びシーケンシャルにデータが書き込まれる。次に、ブロックB4,1に対する書き込みが完了すると、FIFOにより、ブロックB4,2が消去される。そして、消去されたブロックB4,2に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。   In the block group BG4 according to the present embodiment, first, the second low usage state data from the block group BG3 is sequentially written into the block B4,1 and then sequentially in the block B4,2. To the blocks B4,3 to B4, N in the same manner. When the blocks B4,1 to B4, N included in the block group BG4 exceed a predetermined data amount, the FIFO erases the block B4,1 which has been written first, and the erased block B4,1 is erased. On the other hand, the data is sequentially written again. Next, when the writing to the block B4,1 is completed, the block B4,2 is erased by the FIFO. Then, data is sequentially written again to the erased block B4,2. Hereinafter, the same control is repeated.

本実施形態において、制御部14は、ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態か否か判断してもよい。ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態と判断された場合、制御部13は、当該データを不揮発性キャッシュメモリ4に維持するために、ブロックグループBG3の書き込み可能な移動先のブロックに対して書き込むとしてもよい。また、この場合に、プロセッサ2は、ブロックグループBG1のサイズを縮小してもよい。   In the present embodiment, the control unit 14 may determine whether the data written in the erase target block of the block group BG4 is in the fifth high usage state. When it is determined that the data written in the erase target block of the block group BG4 is the fifth high usage state, the control unit 13 writes the block group BG3 in order to maintain the data in the nonvolatile cache memory 4. It is also possible to write to a possible destination block. Further, in this case, the processor 2 may reduce the size of the block group BG1.

本実施形態においては、4つのブロックグループBG1〜BG4に基づいてデータが管理される。   In this embodiment, data is managed based on the four block groups BG1 to BG4.

例えば、プロセッサ2によって一度アクセスされた第1のデータ(アクセス1回のデータ)は、ブロックグループBG1で管理される。   For example, the first data accessed once by the processor 2 (data accessed once) is managed by the block group BG1.

例えば、ブロックグループBG1の第2データがプロセッサ2によって2回以上アクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合に、第2のデータは、ブロックグループBG1からブロックグループBG3に移動される。   For example, when the second data of the block group BG1 is accessed by the processor 2 more than once and is evicted from the block group BG1 based on the FIFO, the second data is moved from the block group BG1 to the block group BG3.

なお、本実施形態において、ブロックグループBG1のサイズは、ブロックグループBG3のサイズよりも大きいとする。   In this embodiment, the size of the block group BG1 is larger than the size of the block group BG3.

例えば、ブロックグループBG1の第3のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG1から追い出される場合に、第3のデータは、ブロックグループBG1からブロックグループBG2に移動される。   For example, if the third data of the block group BG1 is evicted from the block group BG1 based on the FIFO without being accessed by the processor 2, the third data is moved from the block group BG1 to the block group BG2.

例えば、ブロックグループBG3の第4のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG3から追い出される場合に、第4のデータは、ブロックグループBG3からブロックグループBG4に移動される。   For example, if the fourth data of the block group BG3 is evicted from the block group BG3 based on the FIFO without being accessed by the processor 2, the fourth data is moved from the block group BG3 to the block group BG4.

例えば、ブロックグループBG2,BG4では、データをキャッシュすることに代えて、メタデータをキャッシュするとしてもよい。なお、メタデータとは、データに関連する情報を含む。換言すれば、メタデータとは、データが付随して持つそのデータ自身の抽象度の高い付加的なデータである。   For example, in the block groups BG2 and BG4, metadata may be cached instead of caching the data. The metadata includes information related to the data. In other words, the metadata is additional data with which the data itself has a high degree of abstraction.

本実施形態において、例えば、第5のデータがブロックグループBG1に格納されると、ブロックグループBG2の第6のデータがFIFOに基づいて追い出される場合がある。   In the present embodiment, for example, when the fifth data is stored in the block group BG1, the sixth data in the block group BG2 may be evicted based on the FIFO.

例えば、ブロックグループBG1の第7のデータがアクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合、第7のデータは、ブロックグループBG1からブロックグループBG3に移動される場合があり、ブロックグループBG3の第8のデータは、FIFOに基づいてブロックグループBG3からブロックグループBG4に移動される場合があり、ブロックグループBG4の第9のデータは、FIFOに基づいてブロックグループBG4から追い出される場合がある。   For example, if the seventh data of the block group BG1 is accessed and is evicted from the block group BG1 based on the FIFO, the seventh data may be moved from the block group BG1 to the block group BG3, and the block group BG3. 8th data may be moved from the block group BG3 to the block group BG4 based on the FIFO, and the ninth data of the block group BG4 may be evicted from the block group BG4 based on the FIFO.

例えば、ブロックグループBG2の第10のデータがアクセスされた場合、ブロックグループBG1のサイズが増加される。ブロックグループBG1のサイズが増加された場合、FIFOに基づいてブロックグループBG3の第11のデータがブロックグループBG4へ移動される。   For example, when the tenth data of the block group BG2 is accessed, the size of the block group BG1 is increased. When the size of the block group BG1 is increased, the 11th data of the block group BG3 is moved to the block group BG4 based on the FIFO.

例えば、ブロックグループBG4の第12のデータがアクセスされ、FIFOに基づいてブロックグループBG4から追い出される場合、第12のデータは、ブロックグループBG3へ移動され、ブロックグループBG1のサイズが縮小される。   For example, when the twelfth data of the block group BG4 is accessed and is evicted from the block group BG4 based on the FIFO, the twelfth data is moved to the block group BG3 and the size of the block group BG1 is reduced.

以上説明した本実施形態においては、ブロック単位でデータを維持するか判断する維持判断を行い、維持するブロックのデータを移動先のブロックに書き込む移動書き込みを行い、不揮発性キャッシュメモリ4に書き込まされているデータの消去がブロック単位で実行される。   In the present embodiment described above, the maintenance judgment is performed to determine whether or not to maintain the data on a block-by-block basis, the data of the block to be retained is written to the destination block, and the write operation is performed, and the data is written to the nonvolatile cache memory 4. Existing data is erased in block units.

本実施形態においては、実効キャッシュ容量を増すことができ、不揮発性キャッシュメモリ4のヒット率を上げることができ、情報処理装置17の速度を高速化することができる。   In the present embodiment, the effective cache capacity can be increased, the hit rate of the nonvolatile cache memory 4 can be increased, and the speed of the information processing device 17 can be increased.

本実施形態においては、不揮発性キャッシュメモリ4に対するガベージコレクションを行わなくても性能低下を抑制することができる。そして、ガベージコレクションを実行しないでよい分だけ、不揮発性キャッシュメモリ4に対する書き込み回数を減らすことができ、不揮発性キャッシュメモリ4を長寿命化することができる。さらに、ガベージコレクションを実行しなくてもよいため、不揮発性キャッシュメモリ4に予備領域を確保する必要がなく、キャッシュメモリとして利用可能なデータ容量を多くすることができ、使用効率を向上させることができる。   In the present embodiment, it is possible to suppress performance degradation without performing garbage collection on the nonvolatile cache memory 4. Then, the number of times of writing to the non-volatile cache memory 4 can be reduced and the life of the non-volatile cache memory 4 can be extended as much as the garbage collection need not be executed. Further, since it is not necessary to execute garbage collection, it is not necessary to secure a spare area in the non-volatile cache memory 4, the amount of data that can be used as a cache memory can be increased, and usage efficiency can be improved. it can.

例えば、不揮発性メモリをキャッシュメモリとして用いるが、ブロックの境界とは無関係にデータを破棄する場合には、不揮発性メモリのブロックの有効データを他のブロックに移動するガベージコレクションが頻繁に発生する場合がある。これに対して、本実施形態においては、不揮発性キャッシュメモリ4でガベージコレクションを実行する必要がない。このため、上述のように、本実施形態では、不揮発性キャッシュメモリ4を長寿命化することができる。   For example, when non-volatile memory is used as cache memory, but when data is discarded regardless of block boundaries, garbage collection that moves valid data of a non-volatile memory block to another block occurs frequently. There is. On the other hand, in the present embodiment, it is not necessary to execute garbage collection in the non-volatile cache memory 4. Therefore, as described above, in the present embodiment, the nonvolatile cache memory 4 can have a long life.

[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理装置17とSSD5とを含む情報処理システム35の詳細構成について説明する。
[Third Embodiment]
In this embodiment, a detailed configuration of the information processing system 35 including the information processing device 17 and the SSD 5 described in the first and second embodiments will be described.

図8は、本実施形態に係る情報処理システム35の詳細構成の一例を示すブロック図である。   FIG. 8 is a block diagram showing an example of a detailed configuration of the information processing system 35 according to this embodiment.

情報処理システム35は、情報処理装置17とメモリシステム37とを含む。   The information processing system 35 includes the information processing device 17 and a memory system 37.

上記第1及び第2の実施形態に係るSSD5は、メモリシステム37に対応する。   The SSD 5 according to the first and second embodiments corresponds to the memory system 37.

SSD5のプロセッサ22は、CPU43Bに対応する。   The processor 22 of the SSD 5 corresponds to the CPU 43B.

アドレス変換情報32は、LUT(Look Up Table)45に対応する。   The address conversion information 32 corresponds to a LUT (Look Up Table) 45.

メモリ23は、DRAM47に対応する。   The memory 23 corresponds to the DRAM 47.

情報処理装置17は、ホスト装置として機能する。   The information processing device 17 functions as a host device.

メモリシステム37のコントローラ36は、フロントエンド4Fと、バックエンド4Bとを備える。   The controller 36 of the memory system 37 includes a front end 4F and a back end 4B.

フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部(Advanced Encryption Standard (AES))44、及びCPU43Fを備える。   The front end (host communication unit) 4F includes a host interface 41, a host interface controller 42, an encryption / decryption unit (Advanced Encryption Standard (AES)) 44, and a CPU 43F.

ホストインタフェース41は、情報処理装置17との間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA及びデータなどを通信する。   The host interface 41 communicates requests (write command, read command, erase command, etc.), LBA, data, etc. with the information processing device 17.

ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。   The host interface controller (control unit) 42 controls the communication of the host interface 41 based on the control of the CPU 43F.

暗号化/復号化部44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。   The encryption / decryption unit 44 encrypts the write data (plain text) transmitted from the host interface controller 42 in the data write operation. The encryption / decryption unit 44 decrypts the encrypted read data transmitted from the read buffer RB of the back end 4B in the data read operation. The write data and the read data can be transmitted without the intervention of the encryption / decryption unit 44, if necessary.

CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。   The CPU 43F controls the components 41, 42, 44 of the front end 4F, and controls the overall operation of the front end 4F.

バックエンド(メモリ通信部)4Bは、ライトバッファWB、リードバッファRB、LUT45、DDRC46、DRAM47、DMAC48、ECC49、ランダマイザRZ、NANDC50、及びCPU43Bを備える。   The back end (memory communication unit) 4B includes a write buffer WB, a read buffer RB, a LUT 45, a DDRC 46, a DRAM 47, a DMAC 48, an ECC 49, a randomizer RZ, a NANDC 50, and a CPU 43B.

ライトバッファ(ライトデータ転送部)WBは、情報処理装置17から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ24に適した所定のデータサイズになるまで、一時的にデータを格納する。   The write buffer (write data transfer unit) WB temporarily stores the write data transmitted from the information processing device 17. Specifically, the write buffer WB temporarily stores the write data until the write data has a predetermined data size suitable for the nonvolatile memory 24.

リードバッファ(リードデータ転送部)RBは、不揮発性メモリ24から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置17に適した順序(情報処理装置17が指定した論理アドレスLBAの順序)になるように並び替えられる。   The read buffer (read data transfer unit) RB temporarily stores the read data read from the non-volatile memory 24. Specifically, in the read buffer RB, the read data is rearranged so as to be in an order suitable for the information processing device 17 (order of the logical address LBA designated by the information processing device 17).

LUT45は、論理アドレスLBAを物理アドレスPBAに変換するためのデータである。   The LUT 45 is data for converting a logical address LBA into a physical address PBA.

DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。   The DDRC 46 controls DDR (Double Data Rate) in the DRAM 47.

DRAM47は、例えば、LUT45を格納する揮発性のメモリである。   The DRAM 47 is, for example, a volatile memory that stores the LUT 45.

DMAC(Direct Memory Access Controller)48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。図8においては1つのDMAC48が図示されているが、コントローラ36は、2以上のDMAC48を備えるとしてもよい。DMAC48は、必要に応じて、コントローラ36内の様々な位置に設定される。   A DMAC (Direct Memory Access Controller) 48 transfers write data, read data and the like via an internal bus IB. Although one DMAC 48 is shown in FIG. 8, the controller 36 may include two or more DMACs 48. The DMAC 48 is set at various positions within the controller 36 as needed.

ECC(誤り訂正部)49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ24から読み出した読み出しデータを必要に応じて訂正する。   The ECC (Error Correcting Unit) 49 adds an ECC (Error Correcting Code) to the write data transmitted from the write buffer WB. The ECC 49 corrects the read data read from the non-volatile memory 24, if necessary, by using the added ECC when transmitting to the read buffer RB.

ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ24の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ24のメモリセルMCのセル寿命を長期化できる。そのため、不揮発性メモリ24の信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ24から読み出された読み出しデータはランダマイザRZを通過する。   The randomizer RZ (or scrambler) distributes the write data so that the write data is not biased toward a specific page or word line direction of the nonvolatile memory 24 during the data write operation. By thus distributing the write data, the number of times of writing can be equalized, and the cell life of the memory cells MC of the nonvolatile memory 24 can be extended. Therefore, the reliability of the nonvolatile memory 24 can be improved. Further, during the data read operation, the read data read from the non-volatile memory 24 passes through the randomizer RZ.

NANDC(NAND Controller)50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ24にアクセスする。   A NANDC (NAND Controller) 50 uses a plurality of channels (here, four channels CH0 to CH3) to access the nonvolatile memory 24 in parallel in order to satisfy a request for a predetermined speed.

CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。   The CPU 43B controls the above-described components (45 to 50, RZ) of the back end 4B and controls the overall operation of the back end 4B.

なお、コントローラ36の構成は例示であり、この構成に限定されることはない。   Note that the configuration of the controller 36 is an example, and the present invention is not limited to this configuration.

図9は、本実施形態に係るストレージシステムの一例を示す斜視図である。   FIG. 9 is a perspective view showing an example of a storage system according to this embodiment.

ストレージシステム100は、SSDとしてのメモリシステム37を備える。   The storage system 100 includes a memory system 37 as an SSD.

メモリシステム37は、例えば比較的小型のモジュールであり、その外形寸法の一例は、20mm×30mm程度である。なお、メモリシステム37の大きさ及び寸法は、これに限られるものではなく、種々の大きさのものに適宜変更可能である。   The memory system 37 is, for example, a relatively small module, and an example of its external dimensions is about 20 mm × 30 mm. The size and dimensions of the memory system 37 are not limited to this, and can be changed to various sizes as appropriate.

また、メモリシステム37は、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置17に装着されて使用可能である。そのため、メモリシステム37は、エンタープライズ用SSD(eSSD)であってもよい。   The memory system 37 can be used by being attached to the information processing device 17 such as a server in a data center or a cloud computing system operated in an enterprise, for example. Therefore, the memory system 37 may be an enterprise SSD (eSSD).

メモリシステム37は、例えば上方に開口した複数のコネクタ(例えばスロット)38を備える。各コネクタ38は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、6GbpsのDual Portにより、情報処理装置17と各メモリシステム37とが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ38は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。   The memory system 37 includes, for example, a plurality of connectors (for example, slots) 38 that open upward. Each connector 38 is, for example, a SAS (Serial Attached SCSI) connector or the like. According to this SAS connector, the information processing device 17 and each memory system 37 can perform high-speed communication with each other through a 6 Gbps dual port. Note that the connector 38 is not limited to this, and may be, for example, PCIe (PCI Express) or NVMe (NVM Express).

複数のメモリシステム37は、情報処理装置17のコネクタ38にそれぞれ装着され、略垂直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム37をコンパクトに纏めて実装可能であり、メモリシステム37の小型化を図ることができる。さらに、本実施形態に係るメモリシステム37の各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム37は、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。   The plurality of memory systems 37 are attached to the connectors 38 of the information processing device 17, respectively, and are supported side by side with each other in an upright posture in a substantially vertical direction. With such a configuration, the plurality of memory systems 37 can be compactly packaged and mounted, and the size of the memory system 37 can be reduced. Furthermore, each shape of the memory system 37 according to the present embodiment is a 2.5-inch SFF (Small Form Factor). With such a shape, the memory system 37 can have a shape compatible with the enterprise HDD (eHDD) (compatible shape), and can easily achieve system compatibility with the eHDD.

なお、メモリシステム37は、エンタープライズ用に限られない。例えば、メモリシステム37は、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。   The memory system 37 is not limited to the enterprise type. For example, the memory system 37 can be applied as a storage medium of a consumer electronic device such as a notebook type portable computer or a tablet type terminal.

以上説明したように、本実施形態で説明した構成を持つ情報処理システム35及びストレージシステム100においては、大容量の記憶に、上記第2の実施形態と同様の効果を得ることができる。   As described above, in the information processing system 35 and the storage system 100 having the configurations described in the present embodiment, it is possible to obtain the same effect as that of the second embodiment in large-capacity storage.

本実施形態に係るメモリシステム37の構成は、上記第1の実施形態に係る情報処理装置17に適用されてもよい。例えば、上記第1の実施形態のプロセッサ2は、CPU43Bに対応するとしてもよい。アドレス変換情報7は、LUT45に対応するとしてもよい。メモリ3は、DRAM47に対応するとしてもよい。不揮発性キャッシュメモリ4は、不揮発性メモリ24に対応するとしてもよい。   The configuration of the memory system 37 according to the present embodiment may be applied to the information processing device 17 according to the first embodiment. For example, the processor 2 of the first embodiment may correspond to the CPU 43B. The address conversion information 7 may correspond to the LUT 45. The memory 3 may correspond to the DRAM 47. The non-volatile cache memory 4 may correspond to the non-volatile memory 24.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although some embodiments of the present invention have been described, these embodiments are presented as examples 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 spirit of the invention. These embodiments and modifications thereof are included in the scope and the gist of the invention, and are also included in the invention described in the claims and the scope equivalent thereto.

2、22…プロセッサ、3、23…メモリ、4…不揮発性キャッシュメモリ、5…SSD、61〜64…管理情報、7、32…アドレス変換情報、8、25…アドレス変換部、9…キャッシュ制御部、10…生成部、11〜14…制御部、15、16…変更部、17…情報処理装置、18、21、29…送信部、19、30…受信部、20、26、111、121、131、135、137、141…書き込み部、24…不揮発性メモリ、27…有効/無効生成部、28、113、123、133、143…選択部、31…ガベージコレクション部、33…有効/無効情報、34…削除情報、35…情報処理システム、36…コントローラ、37…メモリシステム、38…コネクタ、4F…フロントエンド、4B…バックエンド、41…ホストインタフェース、42…ホストインタフェースコントローラ、43B、43F…CPU、44…暗号化/復号化部、45…LUT、46…DDRC、47…DRAM、48…DMAC、49…ECC、50…NANDC、100…ストレージシステム、112、114、122、124、132、134、142…判断部、115、125、136、144…消去部、BG1〜BG4…ブロックグループ、WB…ライトバッファ、RB…リードバッファ、RZ…ランダマイザ。   2, 22 ... Processor, 3, 23 ... Memory, 4 ... Nonvolatile cache memory, 5 ... SSD, 61-64 ... Management information, 7, 32 ... Address translation information, 8, 25 ... Address translation unit, 9 ... Cache control Part, 10 ... Generation part, 11-14 ... Control part, 15, 16 ... Change part, 17 ... Information processing device, 18, 21, 29 ... Transmission part, 19, 30 ... Reception part, 20, 26, 111, 121 , 131, 135, 137, 141 ... Writing unit, 24 ... Non-volatile memory, 27 ... Valid / invalid generation unit, 28, 113, 123, 133, 143 ... Selection unit, 31 ... Garbage collection unit, 33 ... Valid / invalid Information, 34 ... Delete information, 35 ... Information processing system, 36 ... Controller, 37 ... Memory system, 38 ... Connector, 4F ... Front end, 4B ... Back end, 41 ... Host Interface, 42 ... Host interface controller, 43B, 43F ... CPU, 44 ... Encryption / decryption unit, 45 ... LUT, 46 ... DDRC, 47 ... DRAM, 48 ... DMAC, 49 ... ECC, 50 ... NANDC, 100 ... Storage System, 112, 114, 122, 124, 132, 134, 142 ... Judgment unit, 115, 125, 136, 144 ... Erase unit, BG1 to BG4 ... Block group, WB ... Write buffer, RB ... Read buffer, RZ ... Randomizer .

Claims (5)

プロセッサにより、複数のエリアを含む第1のメモリを備えるメモリ装置と、前記メモリ装置に記憶されている有効データの一部を記憶する第2のメモリと、に対するデータのライト及びリードを制御する方法であって、
前記プロセッサが、前記メモリ装置によって前記複数のエリアの中から選択されたガベージコレクション対象エリア内の有効データを示す第1の情報を、前記メモリ装置から受信することと、
前記プロセッサが、前記第1の情報で示される前記有効データの中から前記プロセッサにより発生した削除命令の示す削除対象データを除外したデータを前記第2のメモリへ書き込むことと、
前記プロセッサが、前記第1の情報で示される前記有効データの中の削除対象データ示す第2の情報を生成することと、
前記プロセッサが、前記第2の情報で示されるデータを、前記第1のメモリの前記ガベージコレクション対象エリアに対するガベージコレクションで削除させるために、前記第2の情報を前記メモリ装置に送信することと、
を具備する方法。
Ri by the processor, the memory device and the memory and a second memory for storing a portion of the valid data stored in the device, controls the write and read data to and including a first memory including a plurality of areas there is provided a method of,
The processor receives, from the memory device, first information indicating valid data in a garbage collection target area selected from the plurality of areas by the memory device;
The processor writes, in the second memory, data excluding the deletion target data indicated by the deletion instruction generated by the processor from the valid data indicated by the first information;
And said processor generates a second information indicating the deleted data in the valid data indicated by the first information,
The processor transmits the second information to the memory device in order to cause the data indicated by the second information to be deleted by garbage collection for the garbage collection target area of the first memory ; ,
A method comprising:
前記第2のメモリは、キャッシュメモリである、請求項の方法。 The second memory is a cache memory, the method of claim 1. 前記第2のメモリは、不揮発性である、請求項1又は請求項の方法。 The second memory is a nonvolatile method of claim 1 or claim 2. 前記プロセッサが、前記メモリ装置において前記ガベージコレクション対象エリアが選択された後、前記メモリ装置から前記第1の情報を受信し、前記メモリ装置において前記ガベージコレクションが実行される前に、前記第2の情報を前記メモリ装置へ送信する、
請求項1乃至請求項のいずれか1項の方法。
Wherein the processor, the after the garbage collection object area is selected in the memory device, receiving the first information from the memory device, before the garbage collection is performed in the memory device, the second Sending information to the memory device,
The method according to any one of claims 1 to 3 .
前記第1の情報は、前記メモリ装置に備えられる不揮発性の前記第1のメモリにおける前記複数エリアの識別情報と、前記第1のメモリにおける前記複数エリアに書き込まれているデータの識別情報とを関連付けた情報を含む、
請求項1乃至請求項のいずれか1項の方法。
The first information includes identification information of the plurality of areas in said first non-volatile memory provided in the memory device, the identification information of the data written in the plurality of areas in said first memory Including information that associates and
The method according to any one of claims 1 to 4 .
JP2018138737A 2014-12-29 2018-07-24 Memory device control method Active JP6689325B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462097538P 2014-12-29 2014-12-29
US62/097,538 2014-12-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015038999A Division JP6378111B2 (en) 2014-12-29 2015-02-27 Information processing apparatus and program

Publications (2)

Publication Number Publication Date
JP2018195333A JP2018195333A (en) 2018-12-06
JP6689325B2 true JP6689325B2 (en) 2020-04-28

Family

ID=56359601

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015038999A Active JP6378111B2 (en) 2014-12-29 2015-02-27 Information processing apparatus and program
JP2018138737A Active JP6689325B2 (en) 2014-12-29 2018-07-24 Memory device control method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015038999A Active JP6378111B2 (en) 2014-12-29 2015-02-27 Information processing apparatus and program

Country Status (3)

Country Link
JP (2) JP6378111B2 (en)
CN (1) CN106201326B (en)
TW (1) TW201624491A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI639918B (en) 2017-05-11 2018-11-01 慧榮科技股份有限公司 Data storage device and operating method therefor
TWI649652B (en) * 2017-12-29 2019-02-01 國科美國研究實驗室 Fast and safe data storage device and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823171B1 (en) * 2007-02-01 2008-04-18 삼성전자주식회사 Computer system having a partitioned flash translation layer and flash translation layer partition method thereof
US8977805B2 (en) * 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
JP5066199B2 (en) * 2010-02-12 2012-11-07 株式会社東芝 Semiconductor memory device
JP2012123499A (en) * 2010-12-07 2012-06-28 Toshiba Corp Memory system
JP5687648B2 (en) * 2012-03-15 2015-03-18 株式会社東芝 Semiconductor memory device and program
JP5976939B2 (en) * 2012-08-23 2016-08-24 アップル インコーポレイテッド Host assisted memory block compaction
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR20140128824A (en) * 2013-04-29 2014-11-06 삼성전자주식회사 Method for managing data using attribute data
CN103744615A (en) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 Dynamic compensation receiver and dynamic compensation receiving method

Also Published As

Publication number Publication date
JP2016126739A (en) 2016-07-11
JP6378111B2 (en) 2018-08-22
TW201624491A (en) 2016-07-01
CN106201326B (en) 2019-12-10
JP2018195333A (en) 2018-12-06
CN106201326A (en) 2016-12-07

Similar Documents

Publication Publication Date Title
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
JP6378226B2 (en) Memory system
JP7030942B2 (en) Memory device and its control method
US11726906B2 (en) Memory device and non-transitory computer readable recording medium
US20200364157A1 (en) Apparatus and method for transmitting map data in memory system
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
JP6689325B2 (en) Memory device control method
JP6595654B2 (en) Information processing device
CN111290975A (en) Method for processing read command and pre-read command by using unified cache and storage device thereof
CN111290974A (en) Cache elimination method for storage device and storage device
US10331551B2 (en) Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection
US10474569B2 (en) Information processing device including nonvolatile cache memory and processor
JP6313242B2 (en) Memory system and program
JP6276208B2 (en) Memory system and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180724

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191023

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: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200407

R150 Certificate of patent or registration of utility model

Ref document number: 6689325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150