JP6968016B2 - ストレージデバイスおよびコンピュータシステム - Google Patents
ストレージデバイスおよびコンピュータシステム Download PDFInfo
- Publication number
- JP6968016B2 JP6968016B2 JP2018054918A JP2018054918A JP6968016B2 JP 6968016 B2 JP6968016 B2 JP 6968016B2 JP 2018054918 A JP2018054918 A JP 2018054918A JP 2018054918 A JP2018054918 A JP 2018054918A JP 6968016 B2 JP6968016 B2 JP 6968016B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- host
- block
- memory
- multivalue
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
<コンピュータシステムの説明>
まず、図1を参照して、第1実施形態に係るストレージデバイスを含むコンピュータシステム1の構成を説明する。
ホスト2とSSD3との間にはその間で要求や情報を送受信するための経路が存在する。また、要求や情報を送受信するための取り決めとして標準規格等が存在する。
ホスト2は、そのハードウェアコンポーネントとして、ホストストレージコントローラ11、プロセッサ12、およびメモリ13を備える。これらホストストレージコントローラ11、プロセッサ12、メモリ13は、バス10を介して相互接続されていてもよい。ホスト2は、さらに、ネットワークインターフェース14、ディスプレイインターフェース15を備えていても構わない。
SSD3は、コントローラ4および不揮発性メモリ(NANDフラッシュメモリ)5を備える。NANDフラッシュメモリ5は、複数のNANDフラッシュメモリチップを含んでいてもよい。コントローラ4は、NANDフラッシュメモリ5に電気的に接続され、NANDフラッシュメモリ5を制御するように構成されたメモリコントローラとして動作する。このコントローラ4は、System−on−a−chip(SoC)のような回路によって実現されてもよい。SSD3は、DRAMも備えていてもよい。SSD3がDRAMも備える構成である場合には、DRAMは、コントローラ4の外部に設けられていてもよい。
図2は、ホスト(ホストコンピュータ)2の内部構成例を示す。
ここでは、プロセスにはメモリが割り当てられていること、オペレーティングシステム(OS)32、さらに言えばオペレーティングシステム(OS)32のプロセス管理部が、ホスト2上で動作するプロセスの情報をすべて知っていること、について説明する。
ここでは、プロセスに割り当てられたメモリ領域の内容が、スワップアウトまたはスワップインのタイミングで、SSD3に書き込まれ、またはSSD3から読み出されることを説明する。
ここでは、各プロセスがファイルシステム33を経由してSSD3にアクセスするケースにおいては、ファイルシステム33はどのプロセスがどの論理アドレス(論理ブロックアドレス:LBA)にいつアクセスしたかを知っているということと、ファイルシステム33を経由せずにSSD3にアクセスできる経路も存在するということ、について説明する。
ここでは、SSD3のデータ制御部403が、ホスト2がデータを読み出し/書き込みするために指定するLBAと、そのLBAに対応する最新データが格納されているNANDフラッシュメモリ5上の記憶位置との対応関係を管理していること、について説明する。
ここでは、データ書き込み時に論物変換テーブルが更新されることについて説明する。
ここでは、SSD3は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のプログラムモード(SLCモード/MLCモード/TLCモード)を適宜使い分けてデータをNANDフラッシュメモリ5に書き込むことができることについて説明する。
図5は、データ制御部403が作成して管理する、SSD3内のNANDフラッシュメモリ5の使用状況を管理するテーブルを示す。このテーブルのことを、以下NAND管理テーブルと呼ぶ。
図5のNAND管理テーブルを見ると、SSD3内部の状態について、次のようなことがわかる。
まず、第1実施形態のデータ移動処理の概要について説明する。
第1実施形態では、ホスト2からSSD3に通知される総プロセス数(または総プロセス数の増減)に基づいてデータ移動を実行した。第2実施形態では、プロセスの識別子がホスト2からSSD3に通知され、特定のプロセスによって書き込まれたデータがブロック間で移動される。なお、第2実施形態におけるSSD3のハードウェア構成およびホスト2のハードウェア構成は第1実施形態のSSD3およびホスト2と同様である。
まず、第2実施形態のデータ移動処理の概要について説明する。
以下、生成されたプロセスの識別子と生成されたプロセスがシステムプロセスまたはユーザプロセスのいずれであるかを示す種別(プロセス種別)とをホスト2からSSD3に通知し、SSD3が、ユーザプロセスによってアクセスされたデータ(例えばユーザプロセスによってNANDフラッシュメモリ5に書き込まれたデータ、またはユーザプロセスによってNANDフラッシュメモリ5からの読み出しまたはNANDフラッシュメモリ5への書き込みのいずれかが行われたデータ)を、システムプロセスによってアクセスされたデータ(例えばシステムプロセスによってNANDフラッシュメモリ5に書き込まれたデータ、またはシステムプロセスによってNANDフラッシュメモリ5からの読み出しまたはNANDフラッシュメモリ5への書き込みのいずれかが行われたデータ)よりも優先して移動対象データとして選択する処理を実行する、という構成を、第3実施形態として説明する。
前述した通り、プロセスはスワップアウトやスワップインすることがあるが、システムプロセスはホスト2の正常な動作のため必要なプロセスであるため、スワップアウトすることは稀である。換言すれば、スワップアウト、スワップインされるほとんどのプロセスはユーザプロセスであり、システムプロセスはホスト2のメモリ13に常駐するケースが多い。したがって、起動されたシステムプロセスは、SSD3に読み出し/書き込み要求を送出する可能性が高い。
第4実施形態では、ホスト2のメモリ13の使用量がホスト2からSSD3に通知される。SSD3のコントローラ4は、メモリ13の使用量が第3の閾値を上回っている場合、スワップアウトに備えてデータの移動を行う。このデータの移動は、GCの一形態である。
第5実施形態では、次に起こるスワップアウトによってホスト2からSSD3に書き込まれるデータ量を示す情報がSSD3に通知される。SSD3のコントローラ4は、例えば、メモリ13の使用量が第3の閾値を上回っている場合、ホスト2から通知されたデータ量に対応する空き容量が多値度の低いブロックに確保されるように、多値度の低いブロックに格納されているデータをより多値度の高いブロックに移動する処理を実行する。
第6実施形態では、ホスト2のプロセス監視部41は、プログラムそれぞれが起動される頻度と共に、これらプログラムのリストを管理している。プロセス監視部41は、起動頻度の高いプログラムを示す情報をSSD3に通知する。あるプログラムの起動頻度は、例えば、このプログラムがある基準期間内に起動された回数、またはホスト2のOS32のブートからシャットダウンまでの期間にこのプログラムが起動された回数、等によって表すことができる。基準期間内に起動された回数(またはOS32のブートからシャットダウンまでの期間に起動された回数)がある閾値を上回るプログラムが、起動頻度の高いプログラムとして検出されてもよい。
Claims (18)
- ホストに接続可能なストレージデバイスであって、
複数のブロックを含む不揮発性メモリと、
前記不揮発性メモリに電気的に接続され、前記不揮発性メモリを制御するように構成されたコントローラとを具備し、
前記コントローラは、
前記ホスト上で動作している総プロセス数を示す情報を前記ホストから受信し、
前記総プロセス数が第1の閾値を上回っているとの判定をした後、前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている、ストレージデバイス。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記総プロセス数が前記第1の閾値を上回っているとの判定をした後、多値度の低いブロックに格納されているデータをより多値度の高いブロックに移動する処理を実行するように構成されている請求項1記載のストレージデバイス。 - 前記コントローラは、
前記ホストにおいて生成された各プロセスの識別子と前記生成された各プロセスがシステムプロセスまたはユーザプロセスのいずれであるかを示す種別とを示す情報と、データの書き込みを要求したプロセスの識別子が各々に付与された書き込み要求それぞれとを前記ホストから受信し、
前記生成された各プロセスの識別子と、前記生成された各プロセスの種別と、前記生成された各プロセスによって書き込まれたデータに対応するアドレス範囲との対応関係を第1の管理テーブルを使用して管理し、
前記総プロセス数が前記第1の閾値を上回っているとの判定をした後、前記第1の管理テーブルに基づいて、種別が前記ユーザプロセスであるプロセスによって前記不揮発性メモリに書き込まれたデータを、種別が前記システムプロセスであるプロセスによって前記不揮発性メモリに書き込まれたデータよりも優先して移動対象データとして選択し、前記移動対象データを、前記移動対象データが格納されているブロックから他のブロックに移動する処理を実行するように構成されている請求項1記載のストレージデバイス。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記移動対象データを多値度の低いブロックからより多値度の高いブロックに移動する処理を実行するように構成されている請求項3記載のストレージデバイス。 - ホストに接続可能なストレージデバイスであって、
複数のブロックを含む不揮発性メモリと、
前記不揮発性メモリに電気的に接続され、前記不揮発性メモリを制御するように構成されたコントローラとを具備し、
前記コントローラは、
前記ホストにおいて生成された各プロセスの識別子を示す情報と、データの書き込みを要求したプロセスの識別子が各々に付与された書き込み要求それぞれとを前記ホストから受信し、
前記生成された各プロセスの識別子と、前記生成された各プロセスによって書き込まれたデータに対応するアドレス範囲との対応関係を第1のテーブルを使用して管理し、
終了したプロセスの識別子を示す情報を前記ホストから受信した後、前記第1のテーブルに基づいて、前記終了したプロセスによって前記不揮発性メモリに書き込まれた第1のデータを、前記第1のデータが格納されているブロックから他のブロックに移動する処理を実行するように構成されている、ストレージデバイス。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記終了したプロセスによって前記不揮発性メモリに書き込まれた前記第1のデータを多値度の低いブロックからより多値度の高いブロックに移動する処理を実行するように構成されている請求項5記載のストレージデバイス。 - ホストに接続可能なストレージデバイスであって、
複数のブロックを含む不揮発性メモリと、
前記不揮発性メモリに電気的に接続され、前記不揮発性メモリを制御するように構成されたコントローラとを具備し、
前記コントローラは、
前記ホストのメモリの使用量を示す情報を前記ホストから受信し、
前記ホストのメモリの使用量が第3の閾値を上回っているとの判定をした後、前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている、ストレージデバイス。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記ホストのメモリの使用量が前記第3の閾値を上回っているとの判定をした後、多値度の低いブロックに格納されているデータをより多値度の高いブロックに移動する処理を実行するように構成されている請求項7記載のストレージデバイス。 - 前記コントローラは、
次に起こるプロセスのスワップアウトによって前記ストレージデバイスに書き込まれるデータ量を示す情報を前記ホストから受信し、
前記ホストのメモリの使用量が前記第3の閾値を上回っているとの判定をした後、前記受信された情報によって示されるデータ量に対応する空き容量が確保されるように前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている請求項7記載のストレージデバイス。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、
次に起こるプロセスのスワップアウトによって前記ストレージデバイスに書き込まれるデータ量を示す情報を前記ホストから受信し、
前記ホストのメモリの使用量が前記第3の閾値を上回っているとの判定をした後、前記受信された情報によって示されるデータ量に対応する空き容量が多値度の低いブロックに確保されるように、多値度の低いブロックに格納されているデータをより多値度の高いブロックに移動する処理を実行するように構成されている請求項7記載のストレージデバイス。 - ホストに接続可能なストレージデバイスであって、
複数のブロックを含む不揮発性メモリと、
前記不揮発性メモリに電気的に接続され、前記不揮発性メモリを制御するように構成されたコントローラとを具備し、
前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、
前記ホストにおいて生成された各プロセスの識別子を示す情報と、データの読み出しまたは書き込みを要求したプロセスの識別子が各々に付与された読み出し/書き込み要求それぞれと、起動頻度の高いプログラムを示す情報とを前記ホストから受信し、
前記生成された各プロセスの識別子と、前記生成された各プロセスによって読み出しまたは書き込まれたデータに対応するアドレス範囲との対応関係を第1の管理テーブルを使用して管理し、
前記第1の管理テーブルに基づいて、前記起動頻度の高いプログラムに対応するプロセスによって読み出しまたは書き込まれたデータを多値度の高いブロックからより多値度の低いブロックに移動する処理を実行するように構成されている、ストレージデバイス。 - プロセッサおよびメモリを含むコンピュータと、ストレージデバイスとを具備するコンピュータシステムであって、
前記プロセッサは、前記プロセッサ上で動作している総プロセス数を前記ストレージデバイスに通知する処理を実行するように構成され、
前記ストレージデバイスは、
複数のブロックを含む不揮発性メモリと、
前記不揮発性メモリに電気的に接続され、前記不揮発性メモリを制御するように構成されたコントローラとを具備し、
前記コントローラは、
前記コンピュータから通知される前記総プロセス数が第1の閾値を上回っているとの判定をした後、前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている、コンピュータシステム。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記総プロセス数が前記第1の閾値を上回っているとの判定をした後、多値度の低いブロックに格納されているデータをより多値度の高いブロックに移動する処理を実行するように構成されている請求項12記載のコンピュータシステム。 - 前記プロセッサは、前記コンピュータにおいて生成された各プロセスの識別子と前記生成された各プロセスがシステムプロセスまたはユーザプロセスのいずれであるかを示す種別とを示す情報と、データの書き込みを要求したプロセスの識別子が各々に付与された書き込み要求それぞれとを前記ストレージデバイスに送信するように構成され、
前記コントローラは、
前記生成された各プロセスの識別子と、前記生成された各プロセスの種別と、前記生成された各プロセスによって書き込まれたデータに対応するアドレス範囲との対応関係を第1の管理テーブルを使用して管理し、
前記総プロセス数が前記第1の閾値を上回っているとの判定をした後、前記第1の管理テーブルに基づいて、種別がユーザプロセスであるプロセスによって前記不揮発性メモリに書き込まれたデータを、種別が前記システムプロセスであるプロセスによって前記不揮発性メモリに書き込まれたデータよりも優先して移動対象データとして選択し、前記移動対象データを、前記移動対象データが格納されているブロックから他のブロックに移動する処理を実行するように構成されている請求項12記載のコンピュータシステム。 - 前記複数のブロックの各々は、一つのメモリセルに格納されるビットの数を示す多値度が互いに異なる複数種のブロックのいずれかとして選択的に使用され、
前記コントローラは、前記移動対象データを多値度の低いブロックからより多値度の高いブロックに移動する処理を実行するように構成されている請求項14記載のコンピュータシステム。 - 前記プロセッサは、前記コンピュータの前記メモリの使用量を前記ストレージデバイスに通知するように構成され、
前記コントローラは、前記コンピュータの前記メモリの使用量が第3の閾値を上回っているとの判定をした後、前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている請求項12記載のコンピュータシステム。 - 前記プロセッサは、次に起こるプロセスのスワップアウトによって前記ストレージデバイスに書き込まれるデータ量を前記ストレージデバイスに通知するように構成され、
前記コンピュータの前記メモリの使用量が前記第3の閾値を上回っているとの判定をした後、前記通知されたデータ量に対応する空き容量が確保されるように前記不揮発性メモリの少なくとも一つのブロックに格納されているデータを前記不揮発性メモリの他の少なくとも一つのブロックに移動する処理を実行するように構成されている請求項16記載のコンピュータシステム。 - 前記プロセッサは、前記コンピュータにおいて生成された各プロセスの識別子を前記ストレージデバイスに通知する処理と、データの読み出しまたは書き込みを要求したプロセスの識別子が各々に付与された読み出し/書き込み要求それぞれを前記ストレージデバイスに送信する処理と、起動頻度の高いプログラムを前記ストレージデバイスに通知する処理とを実行するように構成され、
前記コントローラは、
前記生成された各プロセスの識別子と、前記生成された各プロセスによって読み出しまたは書き込まれたデータに対応するアドレス範囲との対応関係を第1の管理テーブルを使用して管理し、
前記第1の管理テーブルに基づいて、前記起動頻度の高いプログラムに対応するプロセスによって読み出しまたは書き込まれたデータを多値度の高いブロックからより多値度の低いブロックに移動する処理を実行するように構成されている請求項12記載のコンピュータシステム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018054918A JP6968016B2 (ja) | 2018-03-22 | 2018-03-22 | ストレージデバイスおよびコンピュータシステム |
TW107123304A TWI682279B (zh) | 2018-03-22 | 2018-07-05 | 儲存裝置及電腦系統 |
KR1020180083935A KR102094236B1 (ko) | 2018-03-22 | 2018-07-19 | 스토리지 디바이스 및 컴퓨터 시스템 |
CN201810801383.0A CN110297780B (zh) | 2018-03-22 | 2018-07-20 | 存储装置及计算机系统 |
US16/047,205 US10871920B2 (en) | 2018-03-22 | 2018-07-27 | Storage device and computer system |
US16/951,785 US20210072923A1 (en) | 2018-03-22 | 2020-11-18 | Storage device and computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018054918A JP6968016B2 (ja) | 2018-03-22 | 2018-03-22 | ストレージデバイスおよびコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019168822A JP2019168822A (ja) | 2019-10-03 |
JP6968016B2 true JP6968016B2 (ja) | 2021-11-17 |
Family
ID=67983633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018054918A Active JP6968016B2 (ja) | 2018-03-22 | 2018-03-22 | ストレージデバイスおよびコンピュータシステム |
Country Status (5)
Country | Link |
---|---|
US (2) | US10871920B2 (ja) |
JP (1) | JP6968016B2 (ja) |
KR (1) | KR102094236B1 (ja) |
CN (1) | CN110297780B (ja) |
TW (1) | TWI682279B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023150B2 (en) | 2019-07-01 | 2021-06-01 | International Business Machines Corporation | Block mode toggling using hybrid controllers |
US11768701B2 (en) * | 2019-09-17 | 2023-09-26 | Western Digital Technologies, Inc. | Exception analysis for data storage devices |
CN113590509B (zh) * | 2020-04-30 | 2024-03-26 | 华为技术有限公司 | 一种页交换的方法、存储系统和电子设备 |
JP2022007191A (ja) | 2020-06-25 | 2022-01-13 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
US11907539B2 (en) * | 2020-11-20 | 2024-02-20 | Samsung Electronics Co., Ltd. | System and method for stream based data placement on hybrid SSD |
CN112559392B (zh) * | 2020-12-23 | 2023-08-15 | 深圳大普微电子科技有限公司 | 一种加速读存储介质的方法、读加速硬件模块及存储器 |
US20220374216A1 (en) * | 2021-05-20 | 2022-11-24 | Lenovo (United States) Inc. | Method of manufacturing information processing apparatus and mobile computer |
CN113504994B (zh) * | 2021-07-26 | 2022-05-10 | 上海遁一信息科技有限公司 | 一种内存池性能弹性伸缩的实现方法及系统 |
CN114201233A (zh) * | 2021-11-18 | 2022-03-18 | 成都网思科平科技有限公司 | 一种基于快照参照的减少进程模块加载数据存储的方法 |
US11977739B2 (en) | 2022-09-01 | 2024-05-07 | Western Digital Technologies, Inc. | Handling write data burst for improved performance and resource usage |
US11960742B1 (en) * | 2022-10-14 | 2024-04-16 | Oracle International Corporation | High-performance, block-level fail atomicity on byte-level non-volatile media |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
US7594128B2 (en) * | 2004-08-04 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Systems and methods to determine processor utilization |
JP4805696B2 (ja) | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US20080222348A1 (en) * | 2007-03-08 | 2008-09-11 | Scandisk Il Ltd. | File system for managing files according to application |
TW200841343A (en) * | 2007-04-02 | 2008-10-16 | Apacer Technology Inc | A data storage device consisting of NAND (Not-AND) flash memory and its data storing method |
KR101085393B1 (ko) * | 2008-12-24 | 2011-11-21 | 주식회사 코아로직 | 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치 |
JP2010266962A (ja) * | 2009-05-12 | 2010-11-25 | Toshiba Storage Device Corp | 記憶装置、その制御方法及びその記憶装置を備える電子装置 |
US8402214B2 (en) * | 2009-09-16 | 2013-03-19 | Hitachi, Ltd. | Dynamic page reallocation storage system management |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
WO2011151963A1 (ja) * | 2010-05-31 | 2011-12-08 | パナソニック株式会社 | メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
US8537613B2 (en) * | 2011-03-31 | 2013-09-17 | Sandisk Technologies Inc. | Multi-layer memory system |
TWI471862B (zh) | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
US20170017406A1 (en) * | 2015-07-14 | 2017-01-19 | HGST Netherlands B.V. | Systems and methods for improving flash-oriented file system garbage collection |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
US9678797B2 (en) * | 2014-03-10 | 2017-06-13 | Microsoft Technology Licensing, Llc | Dynamic resource management for multi-process applications |
US9928169B2 (en) * | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US10452280B2 (en) * | 2014-10-03 | 2019-10-22 | International Business Machines Corporation | Hybrid storage system employing reconfigurable memory |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160283125A1 (en) * | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
TWI672706B (zh) * | 2015-12-14 | 2019-09-21 | 南韓商愛思開海力士有限公司 | 記憶體儲存裝置及其操作方法 |
KR102259868B1 (ko) | 2015-12-17 | 2021-06-01 | 에스케이텔레콤 주식회사 | 메모리제어장치 및 메모리제어장치의 동작 방법 |
US11169707B2 (en) * | 2016-01-22 | 2021-11-09 | Netapp, Inc. | Garbage collection pacing in a storage system |
US10235079B2 (en) * | 2016-02-03 | 2019-03-19 | Toshiba Memory Corporation | Cooperative physical defragmentation by a file system and a storage device |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
US20170249092A1 (en) * | 2016-02-25 | 2017-08-31 | Canon Kabushiki Kaisha | Apparatus having volatile memory, memory control method, and storage medium |
US10739996B1 (en) * | 2016-07-18 | 2020-08-11 | Seagate Technology Llc | Enhanced garbage collection |
KR102550343B1 (ko) | 2016-07-27 | 2023-07-03 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI602061B (zh) * | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
TWI615711B (zh) * | 2017-03-28 | 2018-02-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US11048624B2 (en) * | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US10496297B2 (en) * | 2017-11-21 | 2019-12-03 | Micron Technology, Inc. | Data categorization based on invalidation velocities |
US10713158B2 (en) * | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
-
2018
- 2018-03-22 JP JP2018054918A patent/JP6968016B2/ja active Active
- 2018-07-05 TW TW107123304A patent/TWI682279B/zh active
- 2018-07-19 KR KR1020180083935A patent/KR102094236B1/ko active IP Right Grant
- 2018-07-20 CN CN201810801383.0A patent/CN110297780B/zh active Active
- 2018-07-27 US US16/047,205 patent/US10871920B2/en active Active
-
2020
- 2020-11-18 US US16/951,785 patent/US20210072923A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2019168822A (ja) | 2019-10-03 |
CN110297780A (zh) | 2019-10-01 |
US20190294365A1 (en) | 2019-09-26 |
US20210072923A1 (en) | 2021-03-11 |
TWI682279B (zh) | 2020-01-11 |
US10871920B2 (en) | 2020-12-22 |
KR102094236B1 (ko) | 2020-04-23 |
KR20190111714A (ko) | 2019-10-02 |
TW201941060A (zh) | 2019-10-16 |
CN110297780B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6968016B2 (ja) | ストレージデバイスおよびコンピュータシステム | |
US11669444B2 (en) | Computing system and method for controlling storage device | |
JP6785205B2 (ja) | メモリシステムおよび制御方法 | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN106874217B (zh) | 存储器系统及控制方法 | |
CN106874211B (zh) | 存储器系统及非易失性存储器的控制方法 | |
JP6517684B2 (ja) | メモリシステムおよび制御方法 | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
JP6517685B2 (ja) | メモリシステムおよび制御方法 | |
JP6139381B2 (ja) | メモリシステムおよび方法 | |
US11023132B2 (en) | Electronic device, computer system, and control method | |
JP2019148913A (ja) | メモリシステム | |
CN110908595B (zh) | 存储装置及信息处理系统 | |
JP2021007059A (ja) | メモリシステム | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
JP6666405B2 (ja) | メモリシステムおよび制御方法 | |
EP4287028A1 (en) | Storage device providing high purge performance and memory block management method thereof | |
JP2019016386A (ja) | メモリシステムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180830 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200915 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210922 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210928 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211026 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6968016 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |