JP6320322B2 - Cache memory device and program - Google Patents
Cache memory device and program Download PDFInfo
- Publication number
- JP6320322B2 JP6320322B2 JP2015038997A JP2015038997A JP6320322B2 JP 6320322 B2 JP6320322 B2 JP 6320322B2 JP 2015038997 A JP2015038997 A JP 2015038997A JP 2015038997 A JP2015038997 A JP 2015038997A JP 6320322 B2 JP6320322 B2 JP 6320322B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- data
- unit
- erasure
- write
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本実施形態は、キャッシュメモリ装置及びプログラムに関する。 The present embodiment relates to a cache memory device and a program.
ソリッドステートドライブ(SSD)は、例えば、NAND型フラッシュメモリなどのような不揮発性メモリを備える。NAND型フラッシュメモリは、複数のブロック(物理ブロック)を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。 The solid state drive (SSD) includes a nonvolatile memory such as a NAND flash memory, for example. The NAND flash memory includes a plurality of blocks (physical blocks). The plurality of blocks include a plurality of memory cells arranged at intersections of word lines and bit lines.
本実施形態は、不揮発性キャッシュメモリを長寿命化するキャッシュメモリ装置及びプログラムを提供する。 The present embodiment provides a cache memory device and a program for extending the lifetime of a nonvolatile cache memory.
本実施形態によれば、キャッシュメモリ装置は、不揮発性キャッシュメモリと、不揮発性キャッシュメモリを制御する制御部とを含む。不揮発性キャッシュメモリは、複数の第1の消去単位エリアを含む第1のグループと、複数の第2の消去単位エリアを含む第2のグループと、複数の第3の消去単位エリアを含む第3のグループとを含む。第1乃至第3の消去単位エリアは、複数の書き込み単位エリアを含む。制御部は、第1のグループに対してデータを書き込み、第1乃至第3のグループにおける書き込みデータの使用状態を示す情報と書き込みデータが削除対象か否かを示す情報とを含む管理情報を生成し、第1のグループが消去条件を満たす場合に、第1のグループから消去対象エリアを選択し、管理情報に基づいて、消去対象エリアに書き込まれているデータが低使用状態であり、かつ、削除対象でないと判断された場合に、消去対象エリアに書き込まれているデータの書き込み先グループとして第2のグループを選択し、消去対象エリアに書き込まれているデータが高使用状態であり、かつ、削除対象でないと判断された場合に、書き込み先グループとして第3のグループを選択し、第2のグループが書き込み先グループとして選択された場合に、消去対象エリアに書き込まれているデータを第2のグループに対して書き込み、第3のグループが書き込み先グループとして選択された場合に、消去対象エリアに書き込まれているデータを第3のグループに対して書き込み、消去対象エリアに書き込まれているデータを消去する。 According to this embodiment, the cache memory device includes a nonvolatile cache memory and a control unit that controls the nonvolatile cache memory . The nonvolatile cache memory includes a first group including a plurality of first erase unit areas, a second group including a plurality of second erase unit areas, and a third group including a plurality of third erase unit areas. And a group of The first to third erase unit areas include a plurality of write unit areas. The control unit writes the data to the first group, the management information data and writes data indicating the use state of writing data in the first to third group includes information which indicates whether the deleted When the first group satisfies the erasure condition, the erasure target area is selected from the first group , and based on the management information, the data written in the erasure target area is in a low usage state, And when it is determined that it is not a deletion target, the second group is selected as a write destination group of the data written in the erasure target area, and the data written in the erasure target area is in a high usage state. In addition, when it is determined not to be deleted, the third group is selected as the write destination group, and the second group is selected as the write destination group. In this case, when the data written in the erasure target area is written to the second group and the third group is selected as the write destination group, the data written in the erasure target area is changed to the third group. Write to the group and erase data written to the area to be erased.
以下、図面を参照しながら各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。 Each embodiment will be described below with reference to the drawings. In the following description, substantially the same or substantially the same functions and components are denoted by the same reference numerals and will be described as necessary.
[第1の実施形態]
本実施形態においては、不揮発性キャッシュメモリを備えるキャッシュメモリ装置について説明する。
[First Embodiment]
In the present embodiment, a cache memory device including a nonvolatile cache memory will be described.
本実施形態において、不揮発性キャッシュメモリは、消去単位エリアごとに、データが一括して消去される。消去単位エリアは、複数の書き込み単位エリア及び複数の読み出し単位エリアを含む。 In the present embodiment, data is erased from the nonvolatile cache memory 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 cache memory and the nonvolatile memory will be described. However, the nonvolatile cache memory and the nonvolatile memory may be other types of memories that are not NAND flash memories as long as the relationship between the erase unit area, the write unit area, and the read unit area is satisfied.
不揮発性キャッシュメモリ及び不揮発性メモリがNAND型フラッシュメモリの場合、消去単位エリアはブロックに相当する。書き込み単位エリア及び読み出し単位エリアはページに相当する。 When the nonvolatile cache memory and the nonvolatile memory are NAND flash memories, the erase unit area corresponds to a block. The writing unit area and the reading unit area correspond to pages.
本実施形態において、例えば、消去単位エリアは、2以上のブロックなどのように、データが一括して消去可能な他の単位で管理されてもよい。 In the present embodiment, for example, the erasure unit area may be managed in other units in which data can be erased collectively, such as two or more blocks.
本実施形態において、アクセスとは、記憶装置へデータを書き込むこと、及び、記憶装置からデータを読み出すことの双方を意味する。 In the present embodiment, access means both writing data to the storage device and reading data from the storage device.
図1は、本実施形態に係るキャッシュメモリ装置を含む情報処理装置の構成の一例を示すブロック図である。 FIG. 1 is a block diagram showing an example of the configuration of an information processing apparatus including a cache memory device according to this embodiment.
情報処理システム35は、情報処理装置17とSSD5とを含む。情報処理装置17は、SSD5に対応するホスト装置でもよい。
The
情報処理装置17は、プロセッサ2、メモリ3、不揮発性キャッシュメモリ4を含む。SSD5は、情報処理装置17に内蔵されてもよく、情報処理装置17とSSD5とは、ネットワークなどによりデータを送受信可能に接続されるとしてもよい。SSD5に代えて、ハードディスクドライブ(HDD)などの他の不揮発性の記憶装置が用いられてもよい。
The
情報処理装置17は、キャッシュ制御部9、管理情報61〜64を格納するメモリ3、不揮発性キャッシュメモリ4を含むキャッシュメモリ装置を備える。しかしながら、キャッシュ制御部9、管理情報61〜64、メモリ3、不揮発性キャッシュメモリ4のうちの一部又は全部は、情報処理装置17の外に備えられてもよい。
The
不揮発性キャッシュメモリ4は、ブロックグループBG1〜BG4を含む。不揮発性キャッシュメモリ4は、SSD5よりも高速にアクセス可能である。 The nonvolatile cache memory 4 includes block groups BG 1 to BG 4 . The nonvolatile cache memory 4 can be accessed at a higher speed than the SSD 5.
ブロックグループ(第1のグループ)BG1は、ブロック(第1の消去エリア)B1,1〜B1,Kを含む。ブロックグループBG1は、プロセッサ2によってアクセスされたデータ(プロセッサ2に使用されたデータ)を格納する。 The block group (first group) BG 1 includes blocks (first erase areas) B 1,1 to B 1, K. The block group BG 1 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 BG 1 satisfies the erasure condition (first erasure condition), the block B in the block group BG 1 is based on the first-in first-out (FIFO). An erasure target (destroy target or eviction target) block (first erasure target area) is selected from 1,1 to B1 , K.
例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kのデータ量が所定の値を越えている場合に、消去条件を満たすとする。また、例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kに書き込まれたページ数が所定の数を越えた場合に、消去条件を満たすとしてもよい。 For example, it is assumed that the erasure condition is satisfied when the data amount of each of the blocks B 1,1 to B 1, K of the block group BG 1 exceeds a predetermined value. For example, the erase condition may be satisfied when the number of pages written in each of the blocks B 1,1 to B 1, K of the block group BG 1 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 by the FIFO from the blocks B 1,1 to B 1, K is stored in the first low usage state (for example, the set first number or the first frequency). Is accessed in the block group BG 2 . On the other hand, the data written in the erasure target block selected from the blocks B 1,1 to B 1, K is the first high usage state (for example, the first number or the first frequency). In the case of the above), the data is written in the block group BG 3 . The data written in the erase target block selected from the blocks B 1,1 to B 1, K is erased (discarded or expelled) in units of blocks.
ブロックグループ(第2のグループ)BG2は、ブロック(第2の消去エリア)B2,1〜B2,Lを含む。ブロックグループBG2は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の低使用状態のデータを格納する。 Block group (second group) BG 2 includes a block (second erase area) B 2,1 ~B 2, L. The block group BG 2 stores the first low-use data among the data written in the erase target block selected from the block group BG 1 .
本実施形態において、ブロックグループBG2が消去条件(第3の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG2内のブロックB2,1〜B2,Lから消去対象ブロック(第3の消去対象エリア)が選択される。 In the present embodiment, when the block group BG 2 satisfies the erasure condition (third erasure condition), the blocks to be erased from the blocks B 2,1 to B 2, L in the block group BG 2 (based on the FIFO) The third erasure 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 by the FIFO from the blocks B 2,1 to B 2, L is stored in the third low usage state (for example, the set third number or third frequency). If it is less than), it will be deleted. On the other hand, the data written in the block to be erased selected from the blocks B 2,1 to B 2, L is the third high usage state (for example, the third number or the third frequency). In the case of the above), the data is written in the block group BG 3 . The data written in the erase target block selected from the blocks B 2,1 to B 2, L is erased in units of blocks.
ブロックグループ(第3のグループ)BG3は、ブロック(第3の消去エリア)B3,1〜B3,Mを含む。ブロックグループBG3は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の高使用状態のデータを格納する。また、ブロックグループBG3は、ブロックグループBG2から選択された消去対象ブロックに書き込まれているデータのうち第3の高使用状態のデータを格納する。 The block group (third group) BG 3 includes blocks (third erase areas) B 3,1 to B 3, M. The block group BG 3 stores the first highly used data among the data written in the erase target block selected from the block group BG 1 . Further, the block group BG 3 stores the third highly used data among the data written in the erase target block selected from the block group BG 2 .
本実施形態において、ブロックグループBG3が消去条件(第2の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG3内のブロックB3,1〜B3,Mから消去対象ブロック(第2の消去対象エリア)が選択される。 In the present embodiment, when the block group BG 3 satisfies the erasure condition (second erasure condition), the blocks to be erased from the blocks B 3,1 to B 3, M in the block group BG 3 (based on the FIFO) The second erasure 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 to the block to be erased selected by the FIFO from the blocks B 3,1 to B 3, M is stored in the second low usage state (for example, the set second number or second frequency). Is accessed in the block group BG 4 . On the other hand, the data written in the block to be erased selected from the blocks B 3,1 to B 3, M is in the second high usage state (for example, the second number or the second frequency). In the case of the above), the data is rewritten to other blocks in the block group BG 3 . The data written in the erase target block selected from the blocks B 3,1 to B 3, M is erased in units of blocks.
ブロックグループ(第4のグループ)BG4は、ブロック(第4の消去エリア)B4,1〜B4,Nを含む。ブロックグループBG4は、ブロックグループBG3から選択された消去対象ブロックに書き込まれているデータのうち第2の低使用状態のデータを格納する。 The block group (fourth group) BG 4 includes blocks (fourth erase areas) B 4,1 to B 4, N. The block group BG 4 stores the second low-use data among the data written in the erase target block selected from the block group BG 3 .
本実施形態において、ブロックグループBG4が消去条件(第4の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG4内のブロックB4,1〜B4,Nから消去対象ブロック(第4の消去対象エリア)が選択される。 In the present embodiment, when the block group BG 4 satisfies the erase condition (fourth erase condition), the blocks to be erased (from the blocks B 4,1 to B 4, N in the block group BG 4 from the erase target block (fourth erase condition)) The fourth erasure target area) is selected.
ブロックB4,1〜B4,NからFIFOによって選択された消去対象ブロックに書き込まれているデータは、消去される。 Data written in the erase target block selected by the FIFO from the blocks B 4,1 to B 4, 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, FIFO is used as a method for selecting an erasure target block from each of the block groups BG 1 to BG 4 . By selecting the block to be erased based on the FIFO, the blocks having the write time and write order are erased from the block groups BG 1 to BG 4 . However, the block to be erased may be selected at random, for example, may be selected based on LRU (Least Recently Used), or may be selected based on LFU (Least Frequently Used). For example, the
メモリ3は、例えば管理情報(リスト)61〜64及びアドレス変換情報7などの各種の制御情報を格納する。メモリ3は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ3は、不揮発性キャッシュメモリ4に含まれていてもよい。
The
本実施形態において、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、キャッシュされているデータの識別情報(例えばホストから提供される論理アドレス(例えば、Logical Block Addressing))、当該データが書き込まれている位置、当該データの使用状態を、認識可能である。例えば、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、ブロックグループBG1〜BG4のそれぞれにキャッシュされるデータと、FIFOにより消去されるブロックとを、選択可能である。
In the present embodiment, the
管理情報61〜64は、それぞれブロックグループBG1〜BG4に書き込まれているデータに関するメタデータである。例えば、管理情報61〜64は、プロセッサ2による各データの使用状態を示す情報を含む。例えば、管理情報61〜64は、各データの識別情報、データが削除対象か否かを示す削除情報、データが有効データか否かを示す有効/無効情報、ブロックに対して消去を行う消去条件を満たすか否かを判断するためのキャッシュ判断情報を含む。
The
ここで、削除情報は、例えば、データに対する削除命令が発生したことを示す情報であり、より具体的な例としては、プロセッサ2で実行されるアプリケーションプログラム又はオペレーティングシステム(OS)からデータに対する削除命令が受け付けられたことを示す情報などである。本実施形態において、削除情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている削除対象データを示す論理アドレスとを関係付けた情報を含む。
Here, the deletion information is, for example, information indicating that a deletion instruction for data has occurred, and more specific examples include a deletion instruction for data from an application program executed by the
有効/無効情報は、例えば、同じデータに対して複数位置に書き込みがある場合に、最新のデータが有効データであり、最新ではないデータが無効データであることを示す情報などである。換言すれば、例えば、有効データは、不揮発性キャッシュメモリ4に書き込まれているデータの更新が発生した場合の更新後のデータである。例えば、無効データは、更新が発生した場合の更新前のデータである。本実施形態において、有効/無効情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている有効データ又は無効データを示す論理アドレスとを関係付けた情報を含む。 The valid / invalid information is, for example, information indicating that the latest data is valid data and the non-latest data is invalid data when writing is performed on the same data at a plurality of positions. In other words, for example, the valid data is updated data when the data written in the nonvolatile cache memory 4 is updated. For example, invalid data is data before update when an update occurs. In this embodiment, the valid / invalid information includes, for example, information that associates identification information of each block 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 write time, write count, write frequency, and write order.
読み出し情報は、例えば、読み出し時間、読み出し回数、読み出し頻度、読み出し順序のうちの少なくとも1つを含む。 The read information includes, for example, at least one of read time, read count, read frequency, and read order.
アドレス変換情報7は、例えば、データの論理アドレスと、当該論理アドレスに対応する不揮発性キャッシュメモリ4の物理アドレス(例えば、Physical Block Addressing)とを関係付けている。アドレス変換情報7は、例えばテーブル形式で管理される。
The
プロセッサ2は、プロセッサ2内のメモリに格納されているプログラム、メモリ3に格納されているプログラム、不揮発性キャッシュメモリ4に格納されているプログラム、又は、SSD5に格納されているプログラムを実行することにより、アドレス変換部8及びキャッシュ制御部9として機能する。
The
本実施形態において、プロセッサ2をアドレス変換部8及びキャッシュ制御部9として機能させるためのプログラムは、例えば、OS、ミドルウェア、ファームウェアでもよい。本実施形態において、アドレス変換部8のうちの一部又は全部、又は、キャッシュ制御部9のうちの一部又は全部は、ハードウェアにより実装されてもよい。
In the present embodiment, the program for causing the
アドレス変換部8は、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性キャッシュメモリ4の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報7に登録する。
The
また、アドレス変換部8は、プロセッサ2から読み出しデータの論理アドレスを受けた場合に、アドレス変換情報7に基づいて、論理アドレスを物理アドレスに変換する。
Further, when receiving the logical address of the read data from the
キャッシュ制御部9は、SSD5よりも高速にアクセス可能な不揮発性キャッシュメモリ4に対するキャッシュ制御を実行する。例えば、キャッシュ制御部9は、ライトスルー方式、又は、ライトバック方式で、データと当該データを示す論理アドレス及び物理アドレスとを管理する。
The
ライトスルー方式は、不揮発性キャッシュメモリ4にデータを格納するとともに、SSD5にもデータを格納する方式である。
The write-through method is a method of storing data in the nonvolatile cache memory 4 and also storing data in the
ライトバック方式は、不揮発性キャッシュメモリ4に格納されたデータを、その都度SSD5に格納するのではなく、一旦不揮発性キャッシュメモリ4にデータを格納し、不揮発性キャッシュメモリ4から追い出されるデータを、SSD5に格納する方式である。
In the write back method, the data stored in the non-volatile cache memory 4 is not stored in the
キャッシュ制御部9は、生成部10、制御部11〜14、変更部15,16を含む。
The
生成部10は、不揮発性キャッシュメモリ4のブロックグループBG1〜BG4に対応する管理情報61〜64を生成し、管理情報61〜64をメモリ3に書き込む。
制御部11〜14は、それぞれブロックグループBG1〜BG4に対するデータの書き込み及びブロックの消去を制御する。
The
制御部11は、書き込み部111、判断部112、選択部113、判断部114、消去部115を含む。
The
書き込み部(第1の書き込み部)111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。
The writing unit (first writing unit) 111 writes the data accessed by the
判断部(第1の判断部)112は、ブロックグループBG1が消去条件(第1の消去条件)を満たすか否か判断する。 The determination unit (first determination unit) 112 determines whether or not the block group BG 1 satisfies the erase condition (first erase condition).
選択部(第1の選択部)113は、ブロックグループBG1が消去条件を満たす場合に、ブロックグループBG1から消去対象ブロック(第1の消去対象エリア)を選択する。 Selector (first selector) 113, if the block group BG 1 is erased condition is satisfied, selecting a block to be erased (the first erased area) from the block group BG 1.
判断部(第2の判断部)114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。
The determination unit (second determination unit) 114 determines, based on the
消去部(第1の消去部)115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。 The erasing unit (first erasing unit) 115 may be discarded because each piece of data written in the erasure target block is written in the block group BG 2 or the block group BG 3 or is a deletion target. In this case, the erase target block is erased.
制御部12は、書き込み部121、判断部122、選択部123、判断部124、消去部125を含む。
The
書き込み部(第2の書き込み部)121は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG2に対して書き込む。
When the
判断部(第5の判断部)122は、ブロックグループBG2が消去条件(第3の消去条件)を満たすか否か判断する。 The determination unit (fifth determination unit) 122 determines whether or not the block group BG 2 satisfies the erasure condition (third erasure condition).
選択部(第3の選択部)123は、ブロックグループBG2が消去条件を満たす場合に、ブロックグループBG2から消去対象ブロック(第3の消去対象エリア)を選択する。 Selector (third selecting unit) 123, if the block group BG 2 is erased condition is satisfied, selecting a block to be erased (Third erased area) from the block group BG 2.
判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。
Based on the
消去部(第2の消去部)125は、消去対象ブロックに書き込まれている第3の高使用状態のデータであり削除対象でないデータがブロックグループBG3に書き込まれた場合に、消去対象ブロックに書き込まれているデータを消去する。 The erasure unit (second erasure unit) 125 sets the third high-use state data written in the erasure target block and not the deletion target data to the erasure target block when the data is written to the block group BG 3. Erase the written data.
制御部13は、書き込み部131、判断部132、選択部133、判断部134、書き込み部135、消去部136、書き込み部137を含む。
The
書き込み部(第3の書き込み部)131は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG3に対して書き込む。
When the
書き込み部(第6の書き込み部)137は、ブロックグループBG2に書き込まれているデータが第3の高使用状態であり削除対象でない場合に、当該データをブロックグループBG3に対して書き込む。例えば、書き込み部137は、ブロックグループBG2に書き込まれているデータがプロセッサ2におけるアクセス対象となった場合に、ブロックグループBG2のアクセス対象データを、ブロックグループBG3に対して書き込むとしてもよい。
The writing unit (sixth writing unit) 137 writes the data to the block group BG 3 when the data written to the block group BG 2 is in the third high usage state and not to be deleted. For example, the
判断部(第3の判断部)132は、ブロックグループBG3が消去条件(第2の消去条件)を満たすか否か判断する。 The determination unit (third determination unit) 132 determines whether or not the block group BG 3 satisfies the erasure condition (second erasure condition).
選択部(第2の選択部)133は、ブロックグループBG3が消去条件を満たす場合に、ブロックグループBG3から消去対象ブロック(第2の消去対象エリア)を選択する。 Selector (second selector) 133, if the block group BG 3 erase condition is satisfied, selecting a block to be erased (second erased area) from the block group BG 3.
判断部(第4の判断部)134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。
Based on the
書き込み部(第5の書き込み部)135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の高使用状態であり削除対象でないと判断された場合に、当該データを、ブロックグループBG3の書き込み可能な他のブロックに対して再書き込みする。 When it is determined that the data written in the erasure target block of the block group BG 3 is in the second high usage state and is not the deletion target, the writing unit (fifth writing unit) 135 rewriting against writable other block groups BG 3.
消去部(第3の消去部)136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。 The erasing unit (third erasing unit) 136 is because each data written in the erasure target block has been written in the block group BG 4 , rewritten in the block group BG 3 , or because it is a deletion target. If the block to be erased may be discarded, the block to be erased is erased.
制御部14は、書き込み部141、判断部142、選択部143、消去部144を含む。
The
書き込み部(第4の書き込み部)141は、判断部134によってブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG4に対して書き込む。
The writing unit (fourth writing unit) 141 determines that the data written in the erasure target block of the block group BG 3 is in the second low-use state and is not a deletion target when the
判断部(第6の判断部)142は、ブロックグループBG4が消去条件(第4の消去条件)を満たすか否か判断する。 The determination unit (sixth determination unit) 142 determines whether or not the block group BG 4 satisfies the erase condition (fourth erase condition).
選択部(第4の選択部)143は、ブロックグループBG4が消去条件を満たす場合に、ブロックグループBG4から消去対象ブロック(第4の消去対象エリア)を選択する。 Selector (fourth selection portion) 143, if the block group BG 4 is erased condition is satisfied, selecting a block to be erased (Fourth erased area) from the block group BG 4.
消去部(第4の消去部)144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。 The erasing unit (fourth erasing unit) 144 erases data written in the erase target block of the block group BG 4 .
変更部(第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 BG 1 when the data written in the block group BG 2 becomes the third high usage state. The number of blocks included in the block group BG 3 is decreased. For example, the changing
変更部(第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 BG 3 when the data written in the block group BG 4 becomes the fourth high usage state. The number of blocks included in the block group BG 1 is decreased. For example, when the data written in the block group BG 4 becomes an access target by the
図2は、本実施形態に係る第1のキャッシュ制御の一例を示すフローチャートである。この図2は、ブロックグループBG1にデータが書き込まれてから、ブロックグループBG2又はブロックグループBG3にデータが書き込まれ、ブロックグループBG1の消去対象ブロックが消去される処理を例示している。 FIG. 2 is a flowchart illustrating an example of the first cache control according to the present embodiment. The Figure 2, the data is written in the block group BG 1, data is written in the block group BG 2 or block group BG 3, illustrates a process of erasing target blocks of the block group BG 1 is erased .
ステップS201において、書き込み部111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。
In step S201, the
ステップS202において、判断部112は、ブロックグループBG1が消去条件を満たすか否か判断する。
In step S202, the
ブロックグループBG1が消去条件を満たさない場合には、処理はステップS206に移る。 If the block group BG 1 does not satisfy the erasure condition, the process proceeds to step S206.
ブロックグループBG1が消去条件を満たす場合には、ステップS203において、選択部113は、ブロックグループBG1から消去対象ブロックを選択する。
If the block group BG 1 satisfies the erasure condition, the
ステップS204において、判断部114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。
In step S204, based on the
データが第1の低使用状態であり削除対象ではない場合には、ステップS301において、書き込み部121は、ブロックグループBG2にデータを書き込む。
Data that is not the first is deleted low use state, in step S301, the
データが第1の高使用状態であり削除対象ではない場合には、ステップS401において、書き込み部131は、ブロックグループBG3にデータを書き込む。
Data that is not the first a high use state deleted in step S401, the
ステップS205において、消去部115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
In step S205, the erase
ステップS206において、キャッシュ制御部9が処理を終了するか否か判断する。
In step S206, the
キャッシュ制御部9が処理を終了しない場合に、処理はステップS201に移る。
If the
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
When the
図3は、本実施形態に係る第2のキャッシュ制御の一例を示すフローチャートである。この図3は、ブロックグループBG2にデータが書き込まれ、ブロックグループBG2の消去対象ブロックが消去される処理を例示している。 FIG. 3 is a flowchart illustrating an example of second cache control according to the present embodiment. The Figure 3 data is written in the block group BG 2, it illustrates a process of erasing target blocks of the block group BG 2 is deleted.
ステップS301において、書き込み部121は、上記ステップS204においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG2に対して書き込む。
In step S301, if the
ステップS302において、判断部122は、ブロックグループBG2が消去条件を満たすか否か判断する。
In step S302, the
ブロックグループBG2が消去条件を満たさない場合には、処理はステップS306に移る。 If the block group BG 2 does not satisfy the erasure condition, the process proceeds to step S306.
ブロックグループBG2が消去条件を満たす場合には、ステップS303において、選択部123は、ブロックグループBG2から消去対象ブロックを選択する。
If the block group BG 2 satisfies the erasure condition, the
ステップS304において、判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。
In step S304, based on the
データが第3の低使用状態又は削除対象の場合には、処理はステップS305に移る。 If the data is in the third low usage state or the deletion target, the process proceeds to step S305.
データが第3の高使用状態であり削除対象ではない場合には、ステップS401において、書き込み部137は、ブロックグループBG3にデータを書き込む。
Data that is not the third is deletion high use state, in step S401, the
ステップS305において、消去部125は、ブロックグループBG2の消去対象ブロックに書き込まれているデータを消去する。
In step S305, the erase
ステップS305において、キャッシュ制御部9が処理を終了するか否か判断する。
In step S305, the
キャッシュ制御部9が処理を終了しない場合に、処理はステップS301に移る。
If the
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
When the
図4は、本実施形態に係る第3のキャッシュ制御の一例を示すフローチャートである。この図4は、ブロックグループBG3にデータが書き込まれてから、ブロックグループBG3のデータが消去されるまでの処理を例示している。 FIG. 4 is a flowchart illustrating an example of the third cache control according to the present embodiment. FIG 4 is a data is written in the block group BG 3, illustrates the processing up to data block group BG 3 is deleted.
ステップS401において、書き込み部131は、上記ステップS204においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG3に対して書き込む。または、書き込み部137は、上記ステップS304においてブロックグループBG2に書き込まれているデータが第3の高使用状態(例えばプロセッサ2におけるアクセス対象となった)であり削除対象ではないと判断された場合に、ブロックグループBG2の当該データを、ブロックグループBG3に対して書き込む。
In step S401, if the
ステップS402において、判断部132は、ブロックグループBG3が消去条件を満たすか否か判断する。
In step S402, the
ブロックグループBG3が消去条件を満たさない場合には、処理はステップS407に移る。 If the block group BG 3 does not satisfy the erasure condition, the process proceeds to step S407.
ブロックグループBG3が消去条件を満たす場合には、ステップS403において、選択部133は、ブロックグループBG3から消去対象ブロックを選択する。
If the block group BG 3 satisfies the erasure condition, the
ステップS404において、判断部134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。
In step S <b> 404, the
データが第2の低使用状態であり削除対象ではない場合には、ステップS501において、書き込み部141は、ブロックグループBG4にデータを書き込む。
Data that is not the second and deletion low use state, in step S501, the
データが第2の高使用状態であり削除対象ではない場合には、ステップS405において、書き込み部135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータを、ブロックグループBG3の他のブロックに対して再書き込みする。
If the data is not the second is a high usage state deleted, at step S405, the
ステップS406において、消去部136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
In step S406, the erase
ステップS407において、キャッシュ制御部9が処理を終了するか否か判断する。
In step S407, the
キャッシュ制御部9が処理を終了しない場合に、処理はステップS401に移る。
If the
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
When the
図5は、本実施形態に係る第4のキャッシュ制御の一例を示すフローチャートである。この図5は、ブロックグループBG4にデータが書き込まれ、ブロックグループBG4のデータが消去され処理を例示している。 FIG. 5 is a flowchart showing an example of the fourth cache control according to the present embodiment. FIG 5 is, data is written to the block group BG 4, data block group BG 4 is illustrates a process is deleted.
ステップS501において、書き込み部141は、上記ステップS404においてブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG4に対して書き込む。
In step S501, if the
ステップS502において、判断部142は、ブロックグループBG4が消去条件を満たすか否か判断する。
In step S502, the
ブロックグループBG4が消去条件を満たさない場合には、処理はステップS505に移る。 If the block group BG 4 does not satisfy the erasure condition, the process proceeds to step S505.
ブロックグループBG4が消去条件を満たす場合には、ステップS503において、選択部143は、ブロックグループBG4から消去対象ブロックを選択する。
If the block group BG 4 satisfies the erasure condition, the
ステップS504において、消去部144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。
In step S504, the erasing
ステップS505において、キャッシュ制御部9が処理を終了するか否か判断する。
In step S505, the
キャッシュ制御部9が処理を終了しない場合に、処理はステップS501に移る。
If the
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
When the
以上説明した本実施形態に係るブロックグループ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 BG 1 according to this embodiment described above, for example, data is first written sequentially to the block B 1,1 , and then data is sequentially written to the block B 1,2 . Thereafter, data is similarly written to the blocks B 1,3 to B 1, K. When the blocks B 1,1 to B 1, K included in the block group BG 1 exceed a predetermined data amount, the block B 1,1 that has been written first is erased by the FIFO, and the erased block Data is sequentially written to B 1,1 again. Next, when the writing to the block B 1,1 is completed, the block B 1,2 is erased by the FIFO. Then, data is again sequentially written into the erased block B 1,2 . Thereafter, similar control is repeated.
ブロックグループBG1においては、管理情報61に基づいて、ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第1の回数又は第1の頻度未満か否か判断される。ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが第1の回数又は第1の頻度未満の場合、当該データの書き込み先としてブロックグループBG2が選択される。
In the block group BG 1 , based on the
これに対して、ブロックグループBG1における消去対象ブロックに書き込まれているデータのアクセスが第1の回数又は第1の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。 On the other hand, when the data written in the block to be erased in the block group BG 1 is accessed at the first number of times or the first frequency or more, the block group BG 3 is selected as the data write destination.
また、ブロックグループBG1における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。 Further, when the data written in the erasure target block in the block group BG 1 is a 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 BG 2 according to the present embodiment, first, the first low-use data from the block group BG 1 is sequentially written to the block B 2,1 , and then the block B 2, 2 is written sequentially, and then is similarly written to blocks B 2,3 to B 2, L. When the blocks B 2,1 to B 2, L included in the block group BG 2 exceed a predetermined data amount, the block B 2,1 that has been written first is erased by the FIFO, and the erased block Data is sequentially written to B 2,1 again. Next, when writing to the block B 2,1 is completed, the block B 2,2 is erased by the FIFO. Then, data is sequentially written to the erased block B 2,2 again. Thereafter, similar control is repeated.
ブロックグループBG2においては、管理情報62に基づいて、ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第3の回数又は第3の頻度未満か否か判断される。ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが第3の回数又は第3の頻度未満の場合、当該データは消去される。
In the block group BG 2 , based on the
これに対して、ブロックグループBG2における消去対象ブロックに書き込まれているデータのアクセスが第3の回数又は第3の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。 On the other hand, when the data written in the block to be erased in the block group BG 2 is accessed at the third frequency or the third frequency or more, the block group BG 3 is selected as the data write destination.
また、ブロックグループBG2における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。 In addition, when the data written in the erasure target block in the block group BG 2 is a deletion target, 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 block group BG 3 according to the present embodiment, first, a first high-use state data from the block group BG 2, the third high use state of the block group BG 2 data, or block group BG 3 Data is written sequentially to block B 3,1 , then sequentially to block B 3,2 , and then to blocks B 3,3 to B 3, M Are written in the same way. When the blocks B 3,1 to B 3, M included in the block group BG 3 exceed a predetermined data amount, the block B 3,1 that has been written first is erased by the FIFO, and the erased block Data is sequentially written to B 3,1 again. Next, when writing to the block B 3,1 is completed, the block B 3,2 is erased by the FIFO. Then, data is sequentially written to the erased block B 3,2 again. Thereafter, similar control is repeated.
ブロックグループBG3においては、管理情報63に基づいて、ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第2の回数又は第2の頻度未満か否か判断される。ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが第2の回数又は第2の頻度未満の場合、当該データの書き込み先としてブロックグループBG4が選択される。
In the block group BG 3 , based on the
これに対して、ブロックグループBG3における消去対象ブロックに書き込まれているデータのアクセスが第2の回数又は第2の頻度以上の場合、当該データはブロックグループBG3に再書き込みされる。 On the other hand, when the data written in the block to be erased in the block group BG 3 is accessed the second number of times or more than the second frequency, the data is rewritten in the block group BG 3 .
また、ブロックグループBG3における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。 Further, when the data written in the erasure target block in the block group BG 3 is a 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 BG 4 according to the present embodiment, first, the second low-use data from the block group BG 3 is sequentially written to the block B 4,1 , and then the block B 4,2 Are sequentially written, and thereafter, data is similarly written to the blocks B 4,3 to B 4, N. When the blocks B 4,1 to B 4, N included in the block group BG 4 exceed a predetermined data amount, the block B 4,1 that has been written first is erased by the FIFO, and the erased block Data is sequentially written to B 4,1 again. Next, when writing to the block B 4,1 is completed, the block B 4,2 is erased by the FIFO. Then, data is sequentially written to the erased block B 4,2 again. Thereafter, similar control is repeated.
本実施形態において、制御部14は、ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態か否か判断してもよい。ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態と判断された場合、制御部13は、当該データを不揮発性キャッシュメモリ4に維持するために、ブロックグループBG3の書き込み可能な移動先のブロックに対して書き込むとしてもよい。また、この場合に、プロセッサ2は、ブロックグループBG1のサイズを縮小してもよい。
In the present embodiment, the
本実施形態においては、4つのブロックグループBG1〜BG4に基づいてデータが管理される。 In the present embodiment, data is managed based on the four block groups BG 1 to BG 4 .
例えば、プロセッサ2によって一度アクセスされた第1のデータ(アクセス1回のデータ)は、ブロックグループBG1で管理される。 For example, the first data accessed once by the processor 2 (data accessed once) is managed by the block group BG 1 .
例えば、ブロックグループBG1の第2データがプロセッサ2によって2回以上アクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合に、第2のデータは、ブロックグループBG1からブロックグループBG3に移動される。
For example, when the second data of the block group BG 1 is accessed more than once by the
なお、本実施形態において、ブロックグループBG1のサイズは、ブロックグループBG3のサイズよりも大きいとする。 In the present embodiment, it is assumed that the size of the block group BG 1 is larger than the size of the block group BG 3 .
例えば、ブロックグループBG1の第3のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG1から追い出される場合に、第3のデータは、ブロックグループBG1からブロックグループBG2に移動される。
For example, when the third data block group BG 1 is expelled from the block group BG 1 on the basis of the FIFO without being accessed by the
例えば、ブロックグループBG3の第4のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG3から追い出される場合に、第4のデータは、ブロックグループBG3からブロックグループBG4に移動される。
For example, when the fourth data block group BG 3 is expelled from the block group BG 3 based on the FIFO without being accessed by the
例えば、ブロックグループBG2,BG4では、データをキャッシュすることに代えて、メタデータをキャッシュするとしてもよい。なお、メタデータとは、データに関連する情報を含む。換言すれば、メタデータとは、データが付随して持つそのデータ自身の抽象度の高い付加的なデータである。 For example, in the block groups BG 2 and BG 4 , metadata may be cached instead of caching data. The metadata includes information related to the data. In other words, metadata is additional data having a high level of abstraction of the data itself accompanying the data.
本実施形態において、例えば、第5のデータがブロックグループBG1に格納されると、ブロックグループBG2の第6のデータがFIFOに基づいて追い出される場合がある。 In the present embodiment, for example, there is a case where the fifth data and stored in the block group BG 1, data of the sixth block group BG 2 is expelled on the basis of FIFO.
例えば、ブロックグループBG1の第7のデータがアクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合、第7のデータは、ブロックグループBG1からブロックグループBG3に移動される場合があり、ブロックグループBG3の第8のデータは、FIFOに基づいてブロックグループBG3からブロックグループBG4に移動される場合があり、ブロックグループBG4の第9のデータは、FIFOに基づいてブロックグループBG4から追い出される場合がある。 For example, when the seventh data of the block group BG 1 is accessed and evicted from the block group BG 1 based on the FIFO, the seventh data may be moved from the block group BG 1 to the block group BG 3 . , eighth of a data block group BG 3, may be moved from the block group BG 3 based on the FIFO block group BG 4, the ninth data block group BG 4, block groups based on FIFO May be kicked out of BG 4 .
例えば、ブロックグループBG2の第10のデータがアクセスされた場合、ブロックグループBG1のサイズが増加される。ブロックグループBG1のサイズが増加された場合、FIFOに基づいてブロックグループBG3の第11のデータがブロックグループBG4へ移動される。 For example, when the tenth data of the block group BG 2 is accessed, the size of the block group BG 1 is increased. If the size of the block group BG 1 is increased, the data of the eleventh block group BG 3 is moved to the block group BG 4 based on FIFO.
例えば、ブロックグループBG4の第12のデータがアクセスされ、FIFOに基づいてブロックグループBG4から追い出される場合、第12のデータは、ブロックグループBG3へ移動され、ブロックグループBG1のサイズが縮小される。 For example, when the twelfth data of the block group BG 4 is accessed and evicted from the block group BG 4 based on the FIFO, the twelfth data is moved to the block group BG 3 and the size of the block group BG 1 is reduced. Is done.
以上説明した本実施形態においては、ブロック単位でデータを維持するか判断する維持判断を行い、維持するブロックのデータを移動先のブロックに書き込む移動書き込みを行い、不揮発性キャッシュメモリ4に書き込まされているデータの消去がブロック単位で実行される。 In the present embodiment described above, a maintenance determination is made to determine whether to maintain data in units of blocks, a movement write is performed in which the data of the block to be maintained is written to the destination block, and the data is written to the nonvolatile cache memory 4. Erasing existing data is executed in units of blocks.
本実施形態においては、実効キャッシュ容量を増すことができ、不揮発性キャッシュメモリ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
本実施形態においては、不揮発性キャッシュメモリ4に対するガベージコレクションを行わなくても性能低下を抑制することができる。そして、ガベージコレクションを実行しないでよい分だけ、不揮発性キャッシュメモリ4に対する書き込み回数を減らすことができ、不揮発性キャッシュメモリ4を長寿命化することができる。さらに、ガベージコレクションを実行しなくてもよいため、不揮発性キャッシュメモリ4に予備領域を確保する必要がなく、キャッシュメモリとして利用可能なデータ容量を多くすることができ、使用効率を向上させることができる。 In the present embodiment, performance degradation can be suppressed without performing garbage collection on the nonvolatile cache memory 4. The number of times of writing to the nonvolatile cache memory 4 can be reduced by the amount that does not require garbage collection, and the lifetime of the nonvolatile cache memory 4 can be extended. Furthermore, since it is not necessary to execute garbage collection, it is not necessary to secure a spare area in the nonvolatile cache memory 4, the data capacity available as the 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 the block boundary, garbage collection that frequently moves the effective data of the non-volatile memory block to another block frequently occurs There is. On the other hand, in this embodiment, it is not necessary to execute garbage collection in the nonvolatile cache memory 4. For this reason, as described above, in this embodiment, the lifetime of the nonvolatile cache memory 4 can be extended.
[第2の実施形態]
本実施形態は、上記第1の実施形態の変形例であり、キャッシュ制御部9を備える情報処理装置17とSSD5との間のデータ及び情報の送信及び受信について説明する。
[Second Embodiment]
The present embodiment is a modification of the first embodiment, and transmission and reception of data and information between the
本実施形態においては、データの識別情報として、論理アドレスが用いられる場合を例として説明するが、他の情報によりデータが識別されるとしてもよい。 In this embodiment, a case where a logical address is used as data identification information will be described as an example. However, data may be identified by other information.
図6は、本実施形態に係る情報処理システム35の構成の一例を示すブロック図である。
FIG. 6 is a block diagram illustrating an example of the configuration of the
キャッシュ制御部9は、上記第1の実施形態で説明された構成要素に加えて、さらに、送信部18、受信部19、書き込み部20、送信部21を含む。
The
送信部18は、SSD5に、SSD5に対する書き込みデータと当該書き込みデータのアドレスとを送る。本実施形態において、送信部18からSSD5に送られるアドレスは、例えば、論理アドレスとする。
The
受信部19は、SSD5から、ガベージコレクション対象のブロックに書き込まれている有効データを示す論理アドレスを含むブロック情報を受ける。
The receiving
本実施形態において、ブロック情報は、SSD5における各ブロックの識別情報と、各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。
In the present embodiment, the block information may include information relating the identification information of each block in the
書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスで示される有効データの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む(転記する)。他のメモリは、例えば不揮発性キャッシュメモリ4などでもよい。
Based on the block information received from the
例えば、書き込み部20は、ブロック情報に含まれている有効データを示す論理アドレスから、削除命令が受け付けられた場合の削除対象(削除候補)データを示す論理アドレスを除外する。これにより、ガベージコレクション対象のブロックに書き込まれている有効データであり削除対象ではないデータが選択可能になる。書き込み部20は、選択されたデータを、他のメモリに書き込む。
For example, the
送信部21は、削除対象データを示す論理アドレスを含む削除情報を生成し、削除情報をSSD5に送る。例えば、削除情報は、ブロック情報に含まれる有効データを示す論理アドレスのうち、書き込み部20によって他のメモリに書き込まれていない削除対象データを示す論理アドレスを含むとしてもよい。なお、削除情報に代えて、維持対象の論理アドレスを含む維持情報が、送信部21からSSD5へ送られるとしてもよい。
The
SSD5は、プロセッサ22、メモリ23、不揮発性メモリ24を含む。
The
メモリ23は、例えばアドレス変換情報32、有効/無効情報33、削除情報34などの各種の制御情報を格納する。メモリ23は、例えばDRAM又はSRAMなどのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ23は、不揮発性メモリ24に含まれていてもよい。
The
プロセッサ22は、プロセッサ22内のメモリに格納されているプログラム、メモリ23に格納されているプログラム、又は、不揮発性メモリ24に格納されているプログラムを実行することにより、アドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31として機能する。
The
本実施形態において、プロセッサ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
アドレス変換部25は、キャッシュ制御部9から書き込みデータと当該書き込みデータの論理アドレスとを受けた場合に、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性メモリ24の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報32に登録する。
When the
本実施形態において、アドレス変換部25は、プロセッサ22によって実現されるとしている。しかしながら、アドレス変換部25は、プロセッサ22と別の構成としてもよい。
In the present embodiment, the
また、アドレス変換部25は、例えばテーブル型のアドレス変換情報32に基づいてアドレス変換を行うが、これに代えてキーバリュー型検索によりアドレス変換を行ってもよい。例えば、論理アドレスをキーとし、物理アドレスをバリューとすることで、キーバリュー型検索によるアドレス変換は実現可能である。
The
書き込み部26は、アドレス変換部25によって得られた物理アドレスの示す位置に、書き込みデータを書き込む。
The
有効/無効生成部27は、例えばアドレス変換情報32に基づいて、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データかを示す有効/無効情報33を生成する。そして、有効/無効生成部27は、有効/無効情報33をメモリ23に格納する。
The valid /
選択部28は、ガベージコレクション対象のブロックを選択する。
The
例えば、選択部28は、不揮発性メモリ24のブロックのうち、書き込み時間が最も古いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
For example, the
例えば、選択部28は、不揮発性メモリ24のブロックからランダムにガベージコレクション対象のブロックを選択してもよい。
For example, the
例えば、選択部28は、有効/無効情報33に基づいて、無効データの数が最も多いブロック、又は、無効データの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
For example, the
例えば、選択部28は、有効/無効情報33及び削除情報34に基づいて、無効データと削除対象データとの数が最も多いブロック、又は、無効データと削除対象データとの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
For example, the
送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成する。換言すれば、ブロック情報は、ガベージコレクション対象のブロックの識別情報と、当該ブロックに書き込まれている有効データを示す論理アドレスとを関係付けた情報を含む。そして、送信部29は、ブロック情報をキャッシュメモリ制御部9に送る。
The
受信部30は、キャッシュメモリ制御部9から削除情報を受け、削除情報34を不揮発性メモリ24に格納する。
The receiving
ガベージコレクション部31は、不揮発性メモリ24に格納されている有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。
The
図7は、本実施形態に係る情報処理装置の処理の一例を示すフローチャートである。 FIG. 7 is a flowchart illustrating an example of processing of the information processing apparatus according to the present embodiment.
ステップS701において、送信部18は、SSD5に、書き込みデータと論理アドレスとを送る。
In step S701, the
ステップS702において、アドレス変換部25は、書き込みデータと論理アドレスとを受け、アドレス変換情報32に対して、書き込みデータの論理アドレスと物理アドレスとを関係付けた情報を登録する。
In step S <b> 702, the
ステップS703において、書き込み部26は、書き込みデータを不揮発性メモリ24の物理アドレスの示す位置に書き込む。
In step S <b> 703, the
ステップS704において、有効/無効生成部27は、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データを示す有効/無効情報33を生成し、メモリ23に有効/無効情報33を格納する。
In step S <b> 704, the valid /
ステップS705において、選択部28は、ガベージコレクション対象のブロックを選択する。
In step S705, the
ステップS706において、送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成し、ブロック情報をキャッシュ制御部9に送信する。
In step S706, the
ステップS707において、受信部19は、SSD5からブロック情報を受信する。
In step S707, the receiving
ステップS708において、書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスの示すデータの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む。
In step S708, based on the block information received from the
例えば、書き込み部20は、ブロック情報に含まれている論理アドレスのうち、削除命令が受け付けられた削除対象データを示す論理アドレスを除外し、維持対象の論理アドレスの示すデータを、他のメモリに書き込む。
For example, the
ステップS709において、送信部21は、削除対象の論理アドレスを含む削除情報をSSD5に送る。
In step S709, the
ステップS710において、受信部30は、キャッシュ制御部9から削除情報を受信し、削除情報34をメモリ23に格納する。
In step S <b> 710, the
ステップS711において、ガベージコレクション部31は、有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。
In step S711, the
以上説明した本実施形態においては、キャッシュ制御部9は、SSD5から、不揮発性メモリ24のブロックに書き込まれているデータの情報を取得することができる。これにより、キャッシュ制御部9は、不揮発性メモリ24のブロックにおけるデータの書き込み状態を認識することができる。例えば、本実施形態においては、不揮発性メモリ24のブロックに書き込まれているデータが、有効データであるか、無効データであるか、削除対象データであるかを認識することができる。
In the present embodiment described above, the
本実施形態においては、SSD5が、データが有効データか無効データかを識別するための有効/無効情報33と、データが削除対象か否かを識別するための削除情報34とを備える。これにより、SSD5においてガベージコレクションが実行される場合に、ガベージコレクション対象のブロックに書き込まれているデータを、消去するか否か判断することができ、不必要なデータの書き込みを防止することができ、不揮発性メモリ24の寿命を延ばすことができる。
In the present embodiment, the
本実施形態において、キャッシュ制御部9は、SSD5から受けたブロック情報に含まれる論理アドレスの示す有効データのうち、削除対象データが不揮発性メモリ24から他のメモリに転記されることを防止することができる。また、本実施形態において、SSD5は、キャッシュ制御部9から他のメモリに転記されなかったデータ(例えば、無効データ、有効データであるが削除対象データでもあるデータ)を、SSD5から削除することができる。
In the present embodiment, the
以上説明した本実施形態においては、SSD5から情報処理装置17へ、消去対象ブロックに関するブロック情報が送られる。しかしながら、このブロック情報は、例えば、不揮発性メモリ24の各ブロックと各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。情報処理装置17は、この関係情報をSSD5から受けることにより、SSD5におけるブロックとデータとの格納関係を認識することができる。
In the present embodiment described above, block information related to the erasure target block is sent from the
[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理装置17とSSD5とを含む情報処理システム35の詳細構成について説明する。
[Third Embodiment]
In the present embodiment, a detailed configuration of the
図8は、本実施形態に係る情報処理システム35の詳細構成の一例を示すブロック図である。
FIG. 8 is a block diagram illustrating an example of a detailed configuration of the
情報処理システム35は、情報処理装置17とメモリシステム37とを含む。
The
上記第1及び第2の実施形態に係るSSD5は、メモリシステム37に対応する。
The
SSD5のプロセッサ22は、CPU43Bに対応する。
The
アドレス変換情報32は、LUT(Look Up Table)45に対応する。
The
メモリ23は、DRAM47に対応する。
The
情報処理装置17は、ホスト装置として機能する。
The
メモリシステム37のコントローラ36は、フロントエンド4Fと、バックエンド4Bとを備える。
The
フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部(Advanced Encryption Standard (AES))44、及びCPU43Fを備える。
The front end (host communication unit) 4F includes a
ホストインタフェース41は、情報処理装置17との間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA(Logical Block Addressing)及びデータなどを通信する。
The
ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。
The host interface controller (control unit) 42 controls communication of the
暗号化/復号化部44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
The encryption /
CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。
The
バックエンド(メモリ通信部)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, an
ライトバッファ(ライトデータ転送部)WBは、情報処理装置17から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ24に適した所定のデータサイズになるまで、一時的にデータを格納する。
The write buffer (write data transfer unit) WB temporarily stores the write data transmitted from the
リードバッファ(リードデータ転送部)RBは、不揮発性メモリ24から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置17に適した順序(情報処理装置17が指定した論理アドレスLBAの順序)になるように並び替えられる。
The read buffer (read data transfer unit) RB temporarily stores read data read from the
LUT45は、論理アドレスLBAを物理アドレスPBA(Physical Block Addressing)に変換するためのデータである。
The
DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。
The
DRAM47は、例えば、LUT45を格納する揮発性のメモリである。
The
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 the internal bus IB. Although one DMAC 48 is illustrated in FIG. 8, the
ECC(誤り訂正部)49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ24から読み出した読み出しデータを必要に応じて訂正する。
The ECC (error correction unit) 49 adds ECC (Error Correcting Code) to the write data transmitted from the write buffer WB. When the
ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ24の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ24のメモリセルMCのセル寿命を長期化できる。そのため、不揮発性メモリ24の信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ24から読み出された読み出しデータはランダマイザRZを通過する。
The randomizer RZ (or scrambler) distributes the write data so that the write data is not biased to a specific page or word line direction of the
NANDC(NAND Controller)50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ24にアクセスする。
A NANDC (NAND Controller) 50 accesses the
CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。
The
なお、コントローラ36の構成は例示であり、この構成に限定されることはない。
Note that the configuration of the
図9は、本実施形態に係るストレージシステムの一例を示す斜視図である。 FIG. 9 is a perspective view showing an example of the storage system according to the present embodiment.
ストレージシステム100は、SSDとしてのメモリシステム37を備える。
The
メモリシステム37は、例えば比較的小型のモジュールであり、その外形寸法の一例は、20mm×30mm程度である。なお、メモリシステム37の大きさ及び寸法は、これに限られるものではなく、種々の大きさのものに適宜変更可能である。
The
また、メモリシステム37は、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置17に装着されて使用可能である。そのため、メモリシステム37は、エンタープライズ用SSD(eSSD)であってもよい。
Further, the
メモリシステム37は、例えば上方に開口した複数のコネクタ(例えばスロット)38を備える。各コネクタ38は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、6GbpsのDual Portにより、情報処理装置17と各メモリシステム37とが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ38は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。
The
複数のメモリシステム37は、情報処理装置17のコネクタ38にそれぞれ装着され、略垂直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム37をコンパクトに纏めて実装可能であり、メモリシステム37の小型化を図ることができる。さらに、本実施形態に係るメモリシステム37の各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム37は、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。
The plurality of
なお、メモリシステム37は、エンタープライズ用に限られない。例えば、メモリシステム37は、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。
The
以上説明したように、本実施形態で説明した構成を持つ情報処理システム35及びストレージシステム100においては、大容量の記憶に、上記第2の実施形態と同様の効果を得ることができる。
As described above, in the
本実施形態に係るメモリシステム37の構成は、上記第1の実施形態に係る情報処理装置17に適用されてもよい。例えば、上記第1の実施形態のプロセッサ2は、CPU43Bに対応するとしてもよい。アドレス変換情報7は、LUT45に対応するとしてもよい。メモリ3は、DRAM47に対応するとしてもよい。不揮発性キャッシュメモリ4は、不揮発性メモリ24に対応するとしてもよい。
The configuration of the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
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 conversion information, 8, 25 ... Address conversion unit, 9 ... Cache control , 10 ... generating unit, 11-14 ... control unit, 15, 16 ... changing unit, 17 ... information processing device, 18, 21, 29 ... transmitting unit, 19, 30 ... receiving unit, 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 /
Claims (16)
前記第1のグループに対してデータを書き込む第1の書き込み部と、
前記第1乃至前記第3のグループにおける書き込みデータの使用状態を示す情報と前記書き込みデータが削除対象か否かを示す情報とを含む管理情報を生成する生成部と、
前記第1のグループが第1の消去条件を満たすか否か判断する第1の判断部と、
前記第1のグループが前記第1の消去条件を満たす場合に、前記第1のグループから第1の消去対象エリアを選択する第1の選択部と、
前記管理情報に基づいて、前記第1の消去対象エリアに書き込まれている前記データが第1の高使用状態か第1の低使用状態か、及び、削除対象かを判断する第2の判断部と、
前記データが前記第1の低使用状態であり、かつ、削除対象でないと判断された場合に、前記データを前記第2のグループに対して書き込む第2の書き込み部と、
前記データが前記第1の高使用状態であり、かつ、削除対象でないと判断された場合に、前記データを前記第3のグループに対して書き込む第3の書き込み部と、
前記第1の消去対象エリアに書き込まれている前記データを消去する第1の消去部と、
を具備するキャッシュメモリ装置。 A first group including a plurality of first erase unit areas; a second group including a plurality of second erase unit areas; and a third group including a plurality of third erase unit areas. The first to third erase unit areas each include a plurality of write unit areas; and a non-volatile cache memory;
A first writing unit for writing data to the first group;
A generation unit that generates management information including said information first to said third information indicating a usage state of the write data in the group the write data indicating whether deleted,
A first determination unit for determining whether or not the first group satisfies a first erasure condition;
A first selection unit that selects a first erasure target area from the first group when the first group satisfies the first erasure condition;
A second determination unit configured to determine whether the data written in the first erasure target area is a first high-use state, a first low-use state , and a deletion target based on the management information; When,
A second writing unit that writes the data to the second group when it is determined that the data is in the first low-use state and not to be deleted ;
A third writing unit that writes the data to the third group when it is determined that the data is in the first high usage state and is not a deletion target ;
A first erase unit for erasing the data written in the first erase target area;
A cache memory device comprising:
前記第3のグループが第2の消去条件を満たすか否か判断する第3の判断部と、
前記第3のグループが前記第2の消去条件を満たす場合に、前記第3のグループから第2の消去対象エリアを選択する第2の選択部と、
前記管理情報に基づいて、前記第2の消去対象エリアに書き込まれている前記データが第2の高使用状態か第2の低使用状態か、及び、削除対象かを判断する第4の判断部と、
前記第2の消去対象エリアに書き込まれている前記データが前記第2の低使用状態であり、かつ、削除対象でないと判断された場合に、前記第2の消去対象エリアに書き込まれている前記データを前記第4のグループに対して書き込む第4の書き込み部と、
前記第2の消去対象エリアに書き込まれている前記データが前記第2の高使用状態であり、かつ、削除対象でないと判断された場合に、前記第2の消去対象エリアに書き込まれている前記データを前記第3のグループに対して再書き込みする第5の書き込み部と、
前記第2の消去対象エリアに書き込まれている前記データを消去する第2の消去部と、
をさらに具備する、請求項1に記載のキャッシュメモリ装置。 The nonvolatile cache memory further includes a fourth group including a plurality of fourth erase unit areas,
A third determination unit for determining whether or not the third group satisfies a second erasure condition;
A second selection unit that selects a second erasure target area from the third group when the third group satisfies the second erasure condition;
A fourth determination unit configured to determine whether the data written in the second erasure target area is in a second high-use state, a second low-use state , and a deletion target based on the management information; When,
The data written in the second erasure target area when it is determined that the data written in the second erasure target area is in the second low-use state and is not a deletion target. A fourth writing unit for writing data to the fourth group;
The data written in the second erasure target area when it is determined that the data written in the second erasure target area is in the second high usage state and is not a deletion target. A fifth writing unit for rewriting data to the third group;
A second erasing unit for erasing the data written in the second erasure target area;
The cache memory device according to claim 1, further comprising:
請求項1又は請求項2に記載のキャッシュメモリ装置。 The first determination unit determines that the first erasure condition is satisfied when a data amount of the first group exceeds a predetermined value;
The cache memory device according to claim 1 or 2.
請求項1乃至請求項3のいずれか1項に記載のキャッシュメモリ装置。 The first selection unit selects the first erasure target area from the first group based on a first-in first-out method.
The cache memory device according to any one of claims 1 to 3.
前記第4のグループに書き込まれている前記データが第4の高使用状態となった場合に、前記第3のグループに含まれている前記第3の消去単位エリアの数を増加し、前記第1のグループに含まれている前記第1の消去単位エリアの数を減少する第2の変更部と、
をさらに具備する請求項2に記載のキャッシュメモリ装置。 When the data written in the second group is in a third high usage state, the number of the first erasing unit areas included in the first group is increased, and the first A first changing unit for reducing the number of the third erasing unit areas included in the three groups;
When the data written in the fourth group is in a fourth high usage state, the number of the third erase unit areas included in the third group is increased, and the second A second changing unit for reducing the number of the first erasing unit areas included in one group;
The cache memory device according to claim 2, further comprising:
前記第2のグループが前記第3の消去条件を満たす場合に、前記第2のグループから第3の消去対象エリアを選択する第3の選択部と、
前記第3の消去対象エリアに書き込まれている前記データを消去する第3の消去部と、
前記第4のグループが第4の消去条件を満たすか否か判断する第6の判断部と、
前記第4のグループが前記第4の消去条件を満たす場合に、前記第4のグループから第4の消去対象エリアを選択する第4の選択部と、
前記第4の消去対象エリアに書き込まれている前記データを消去する第4の消去部と、
をさらに具備する請求項2に記載のキャッシュメモリ装置。 A fifth determination unit for determining whether or not the second group satisfies a third erasure condition;
A third selection unit that selects a third erasure target area from the second group when the second group satisfies the third erasure condition;
A third erasure unit for erasing the data written in the third erasure target area;
A sixth determination unit for determining whether the fourth group satisfies a fourth erasure condition;
A fourth selection unit that selects a fourth erasure target area from the fourth group when the fourth group satisfies the fourth erasure condition;
A fourth erasure unit for erasing the data written in the fourth erasure target area;
The cache memory device according to claim 2, further comprising:
前記第4の選択部は、前記複数の第4の消去単位エリアに対応する第2の書き込み時間又は第2の書き込み順序に基づいて、前記第2の書き込み時間又は前記第2の書き込み順序が古いことを示す消去単位エリアを、前記第4の消去対象エリアとして選択する、
請求項7に記載のキャッシュメモリ装置。 The third selection unit has the first write time or the first write order based on the first write time or the first write order corresponding to the plurality of second erase unit areas. An erasing unit area indicating that the third erasing target area is selected,
The fourth selection unit has an old second write time or second write order based on a second write time or second write order corresponding to the plurality of fourth erase unit areas. An erasing unit area indicating that is selected as the fourth erasing target area,
The cache memory device according to claim 7.
前記不揮発性キャッシュメモリを制御する制御部と、
を具備し、
前記不揮発性キャッシュメモリは、複数の第1の消去単位エリアを含む第1のグループと、複数の第2の消去単位エリアを含む第2のグループと、複数の第3の消去単位エリアを含む第3のグループとを具備し、
前記第1乃至前記第3の消去単位エリアは複数の書き込み単位エリアを含み、
前記制御部は、
前記第1のグループに対してデータを書き込み、
前記第1乃至前記第3のグループにおける書き込みデータの使用状態を示す情報と前記書き込みデータが削除対象か否かを示す情報とを含む管理情報を生成し、
前記第1のグループが消去条件を満たす場合に、前記第1のグループから消去対象エリアを選択し、
前記管理情報に基づいて、前記消去対象エリアに書き込まれている前記データが低使用状態であり、かつ、削除対象でないと判断された場合に、前記消去対象エリアに書き込まれている前記データの書き込み先グループとして前記第2のグループを選択し、前記消去対象エリアに書き込まれている前記データが高使用状態であり、かつ、削除対象でないと判断された場合に、前記書き込み先グループとして前記第3のグループを選択し、
前記第2のグループが前記書き込み先グループとして選択された場合に、前記消去対象エリアに書き込まれている前記データを前記第2のグループに対して書き込み、前記第3のグループが前記書き込み先グループとして選択された場合に、前記消去対象エリアに書き込まれている前記データを前記第3のグループに対して書き込み、
前記消去対象エリアに書き込まれている前記データを消去する、
キャッシュメモリ装置。 Non-volatile cache memory;
A control unit for controlling the nonvolatile cache memory;
Comprising
The non-volatile cache memory includes a first group including a plurality of first erase unit areas, a second group including a plurality of second erase unit areas, and a third group including a plurality of third erase unit areas. 3 groups,
The first to the third erase unit area of saw including a plurality of write unit areas,
The controller is
Write the data to the first group,
Generating management information including information indicating a use state of write data in the first to third groups and information indicating whether the write data is a deletion target;
When the first group satisfies the erasure condition, select an erasure target area from the first group ,
Writing of the data written in the erasure target area when it is determined that the data written in the erasure target area is in a low-use state and is not a deletion target based on the management information When the second group is selected as a destination group, and it is determined that the data written in the erasure target area is in a high usage state and is not a deletion target, the third group is selected as the write destination group. Select a group of
When the second group is selected as the write destination group, the data written in the area to be erased is written to the second group, and the third group is set as the write destination group. When selected, the data written in the area to be erased is written to the third group,
Erasing the data written in the area to be erased ,
Cache memory device.
前記管理情報に基づいて、前記消去対象エリアに書き込まれている前記データを前記不揮発性キャッシュメモリに維持するか否か判断し、
前記消去対象エリアに書き込まれている前記データを前記不揮発性キャッシュメモリに維持すると判断された場合に、前記消去対象エリアに書き込まれている前記データを、前記書き込み先グループに書き込む、
請求項9乃至請求項11のいずれか1項に記載のキャッシュメモリ装置。 The controller is
Based on the management information, it is determined whether or not to keep the data written in the erased area in the nonvolatile cache memory,
When it is determined to maintain the data written in the erasure target area in the nonvolatile cache memory, the data written in the erasure target area is written to the write destination group .
The cache memory device according to claim 9.
前記第1のグループに対してデータを書き込む機能、
前記第1乃至前記第3のグループにおける書き込みデータの使用状態を示す情報と前記書き込みデータが削除対象か否かを示す情報とを含む管理情報を生成する機能、
前記第1のグループが消去条件を満たす場合に、前記第1のグループから消去対象エリアを選択する機能、
前記管理情報に基づいて、前記消去対象エリアに書き込まれている前記データが低使用状態であり、かつ、削除対象でないと判断された場合に、前記消去対象エリアに書き込まれている前記データの書き込み先グループとして前記第2のグループを選択し、前記消去対象エリアに書き込まれている前記データが高使用状態であり、かつ、削除対象でないと判断された場合に、前記書き込み先グループとして前記第3のグループを選択する機能、
前記第2のグループが前記書き込み先グループとして選択された場合に、前記消去対象エリアに書き込まれている前記データを前記第2のグループに対して書き込み、前記第3のグループが前記書き込み先グループとして選択された場合に、前記消去対象エリアに書き込まれている前記データを前記第3のグループに対して書き込む機能、
前記消去対象エリアに書き込まれている前記データを消去する機能、
を実現させるためのプログラム。 A first group including a plurality of first erase unit areas; a second group including a plurality of second erase unit areas; and a third group including a plurality of third erase unit areas. , the first to the third erase unit area nonvolatile cache memory including a plurality of write unit areas, the computer controlling the,
A function of writing data to the first group ;
A function of generating management information including information indicating a use state of write data in the first to third groups and information indicating whether the write data is a deletion target;
A function of selecting an area to be erased from the first group when the first group satisfies an erasure condition;
Writing of the data written in the erasure target area when it is determined that the data written in the erasure target area is in a low-use state and is not a deletion target based on the management information When the second group is selected as a destination group, and it is determined that the data written in the erasure target area is in a high usage state and is not a deletion target, the third group is selected as the write destination group. The ability to select groups of
When the second group is selected as the write destination group, the data written in the area to be erased is written to the second group, and the third group is set as the write destination group. A function of writing the data written in the area to be erased to the third group when selected;
A function of erasing the data written in the area to be erased ;
A program to realize
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/656,559 US10474569B2 (en) | 2014-12-29 | 2015-03-12 | Information processing device including nonvolatile cache memory and processor |
TW104114942A TW201624288A (en) | 2014-12-29 | 2015-05-11 | Cache memory device and non-transitory computer readable recording medium |
CN201510239685.XA CN106205708B (en) | 2014-12-29 | 2015-05-12 | Cache memory device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462097530P | 2014-12-29 | 2014-12-29 | |
US62/097,530 | 2014-12-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018072776A Division JP6595654B2 (en) | 2014-12-29 | 2018-04-04 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016126737A JP2016126737A (en) | 2016-07-11 |
JP6320322B2 true JP6320322B2 (en) | 2018-05-09 |
Family
ID=56357982
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015038997A Active JP6320322B2 (en) | 2014-12-29 | 2015-02-27 | Cache memory device and program |
JP2018072776A Active JP6595654B2 (en) | 2014-12-29 | 2018-04-04 | Information processing device |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018072776A Active JP6595654B2 (en) | 2014-12-29 | 2018-04-04 | Information processing device |
Country Status (3)
Country | Link |
---|---|
JP (2) | JP6320322B2 (en) |
CN (1) | CN106205708B (en) |
TW (1) | TW201624288A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836381B2 (en) | 2021-01-27 | 2023-12-05 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory using namespace attributes |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301378B2 (en) | 2017-10-12 | 2022-04-12 | Rambus Inc. | Nonvolatile physical memory with DRAM cache and mapping thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4335659B2 (en) * | 2003-12-19 | 2009-09-30 | 株式会社ルネサステクノロジ | Nonvolatile semiconductor memory device |
JP2009181314A (en) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | Information recording device and control method thereof |
US8402242B2 (en) * | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
JP5066241B2 (en) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | Memory system |
US9092337B2 (en) * | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
US8782370B2 (en) * | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
KR101867282B1 (en) * | 2011-11-07 | 2018-06-18 | 삼성전자주식회사 | Garbage collection method for non-volatile memory device |
JP5687648B2 (en) * | 2012-03-15 | 2015-03-18 | 株式会社東芝 | Semiconductor memory device and program |
US20140089564A1 (en) * | 2012-09-27 | 2014-03-27 | Skymedi Corporation | Method of data collection in a non-volatile memory |
-
2015
- 2015-02-27 JP JP2015038997A patent/JP6320322B2/en active Active
- 2015-05-11 TW TW104114942A patent/TW201624288A/en unknown
- 2015-05-12 CN CN201510239685.XA patent/CN106205708B/en active Active
-
2018
- 2018-04-04 JP JP2018072776A patent/JP6595654B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836381B2 (en) | 2021-01-27 | 2023-12-05 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory using namespace attributes |
Also Published As
Publication number | Publication date |
---|---|
CN106205708A (en) | 2016-12-07 |
JP2016126737A (en) | 2016-07-11 |
TW201624288A (en) | 2016-07-01 |
JP2018136970A (en) | 2018-08-30 |
CN106205708B (en) | 2019-12-10 |
JP6595654B2 (en) | 2019-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893238B2 (en) | Method of controlling nonvolatile semiconductor memory | |
US8612666B2 (en) | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory | |
US9063862B2 (en) | Expandable data cache | |
JP7030942B2 (en) | Memory device and its control method | |
US11726906B2 (en) | Memory device and non-transitory computer readable recording medium | |
US20170270045A1 (en) | Hybrid memory device and operating method thereof | |
JP6595654B2 (en) | Information processing device | |
JP6689325B2 (en) | Memory device control method | |
CN111290975A (en) | Method for processing read command and pre-read command by using unified cache and storage device thereof | |
US10474569B2 (en) | Information processing device including nonvolatile cache memory and processor | |
US10331551B2 (en) | Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection | |
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: 20170224 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170531 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180216 |
|
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: 20180306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180403 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6320322 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |