以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。
以下の各実施形態において、不揮発性メモリ及び不揮発性キャッシュメモリは、消去単位エリアごとに、データが一括して消去される。消去単位エリアは、複数の書き込み単位エリア及び複数の読み出し単位エリアを含む。
本実施形態において、不揮発性メモリ及び不揮発性キャッシュメモリとして、NAND型フラッシュメモリが用いられる場合について説明する。しかしながら、不揮発性メモリ及び不揮発性キャッシュメモリは、上記の消去単位エリア、書き込み単位エリア、読み出し単位エリアの関係を満たしていれば、NAND型フラッシュメモリではない他の種別のメモリでもよい。
不揮発性メモリ及び不揮発性キャッシュメモリがNAND型フラッシュメモリの場合、消去単位エリアはブロックに相当する。書き込み単位エリア及び読み出し単位エリアはページに相当する。
本実施形態において、例えば、消去単位エリアは、2以上のブロックなどのように、データが一括して消去可能な他の単位で管理されてもよい。
本実施形態において、アクセスとは、記憶装置へデータを書き込むこと、及び、記憶装置からデータを読み出すことの双方を意味する。
[第1の実施形態]
本実施形態は、情報処理装置とメモリ装置との間のデータ及び情報の送信及び受信について説明する。
本実施形態においては、データの識別情報として、論理アドレス(例えば、Logical Block Addressing)が用いられる場合を例として説明するが、他の情報によりデータが識別されるとしてもよい。
図1は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。
情報処理システム35は、情報処理装置17とメモリ装置の一例であるSSD5とを含む。情報処理装置17は、SSD5に対応するホスト装置でもよい。
SSD5は、情報処理装置17に内蔵されてもよく、情報処理装置17とSSD5とは、ネットワークなどによりデータを送受信可能に接続されるとしてもよい。SSD5に代えて、ハードディスクドライブ(HDD)などの他の不揮発性の記憶装置がメモリ装置として用いられてもよい。
情報処理装置17は、キャッシュ制御部9、管理情報61〜64を格納するメモリ3、不揮発性キャッシュメモリ4を備える。しかしながら、キャッシュ制御部9、管理情報61〜64、メモリ3、不揮発性キャッシュメモリ4のうちの一部又は全部は、情報処理装置17の外に備えられてもよい。
メモリ3は、例えば管理情報(リスト)61〜64及びアドレス変換情報7などの各種の制御情報を格納する。メモリ3は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ3は、不揮発性キャッシュメモリ4に含まれていてもよい。
管理情報61〜64は、それぞれ後述する第2の実施形態で説明されるブロックグループBG1〜BG4に書き込まれているデータに関するメタデータである。例えば、管理情報61〜64は、プロセッサ2による各データの使用状態を示す情報を含む。例えば、管理情報61〜64は、各データの識別情報、データが削除対象か否かを示す削除情報、データが有効データか否かを示す有効/無効情報、ブロックに対して消去を行う消去条件を満たすか否かを判断するためのキャッシュ判断情報を含む。
ここで、削除情報は、例えば、データに対する削除命令が発生したことを示す情報であり、より具体的な例としては、プロセッサ2で実行されるアプリケーションプログラム又はオペレーティングシステム(OS)からデータに対する削除命令が受け付けられたことを示す情報などである。本実施形態において、削除情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている削除対象データを示す論理アドレスとを関係付けた情報を含む。
有効/無効情報は、例えば、同じデータに対して複数位置に書き込みがある場合に、最新のデータが有効データであり、最新ではないデータが無効データであることを示す情報などである。換言すれば、例えば、有効データは、不揮発性キャッシュメモリ4に書き込まれているデータの更新が発生した場合の更新後のデータである。例えば、無効データは、更新が発生した場合の更新前のデータである。本実施形態において、有効/無効情報は、例えば、各ブロックの識別情報と、各ブロックに書き込まれている有効データ又は無効データを示す論理アドレスとを関係付けた情報を含む。
キャッシュ判断情報は、例えば、データごとの書き込み情報と読み出し情報とのうちの少なくとも一方、又は、ブロックごとの書き込み情報と読み出し情報とのうちの少なくとも一方、を含む情報などである。
書き込み情報は、例えば、書き込み時間、書き込み回数、書き込み頻度、書き込み順序のうちの少なくとも1つを含む。
読み出し情報は、例えば、読み出し時間、読み出し回数、読み出し頻度、読み出し順序のうちの少なくとも1つを含む。
アドレス変換情報7は、例えば、データの論理アドレスと、当該論理アドレスに対応する不揮発性キャッシュメモリ4の物理アドレス(例えば、Physical Block Addressing)とを関係付けている。アドレス変換情報7は、例えばテーブル形式で管理される。
キャッシュ制御部9は、SSD5よりも高速にアクセス可能な不揮発性キャッシュメモリ4に対するキャッシュ制御を実行する。例えば、キャッシュ制御部9は、ライトスルー方式、又は、ライトバック方式で、データと当該データを示す論理アドレス及び物理アドレスとを管理する。
ライトスルー方式は、不揮発性キャッシュメモリ4にデータを格納するとともに、SSD5にもデータを格納する方式である。
ライトバック方式は、不揮発性キャッシュメモリ4に格納されたデータを、その都度SSD5に格納するのではなく、一旦不揮発性キャッシュメモリ4にデータを格納し、不揮発性キャッシュメモリ4から追い出されるデータを、SSD5に格納する方式である。
本実施形態において、キャッシュ制御部9は、送信部18、受信部19、書き込み部20、送信部21を含む。キャッシュメモリ9のうちの一部又は全部は、ソフトウェアで実装されてもよく、ハードウェアで実装されてもよい。
送信部18は、SSD5に、SSD5に対する書き込みデータと当該書き込みデータのアドレスとを送る。本実施形態において、送信部18からSSD5に送られるアドレスは、例えば、論理アドレスとする。
受信部19は、SSD5から、ガベージコレクション対象のブロックに書き込まれている有効データを示す論理アドレスを含むブロック情報を受ける。
本実施形態において、ブロック情報は、SSD5における各ブロックの識別情報と、各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。
書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスで示される有効データの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む(転記する)。他のメモリは、例えば不揮発性キャッシュメモリ4などでもよい。
例えば、書き込み部20は、ブロック情報に含まれている有効データを示す論理アドレスから、削除命令が受け付けられた場合の削除対象(削除候補)データを示す論理アドレスを除外する。これにより、ガベージコレクション対象のブロックに書き込まれている有効データであり削除対象ではないデータが選択可能になる。書き込み部20は、選択されたデータを、他のメモリに書き込む。
送信部21は、削除対象データを示す論理アドレスを含む削除情報を生成し、削除情報をSSD5に送る。例えば、削除情報は、ブロック情報に含まれる有効データを示す論理アドレスのうち、書き込み部20によって他のメモリに書き込まれていない削除対象データを示す論理アドレスを含むとしてもよい。なお、削除情報に代えて、維持対象の論理アドレスを含む維持情報が、送信部21からSSD5へ送られるとしてもよい。
SSD5は、プロセッサ22、メモリ23、不揮発性メモリ24を含む。
メモリ23は、例えばアドレス変換情報32、有効/無効情報33、削除情報34などの各種の制御情報を格納する。メモリ23は、例えばDRAM又はSRAMなどのような揮発性メモリでもよく、不揮発性メモリでもよい。メモリ23は、不揮発性メモリ24に含まれていてもよい。
プロセッサ22は、プロセッサ22内のメモリに格納されているプログラム、メモリ23に格納されているプログラム、又は、不揮発性メモリ24に格納されているプログラムを実行することにより、アドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31として機能する。
本実施形態において、プロセッサ22をアドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31として機能させるためのプログラムは、例えば、OS、ミドルウェア、ファームウェアでもよい。本実施形態において、アドレス変換部25、書き込み部26、有効/無効生成部27、選択部28、送信部29、受信部30、ガベージコレクション部31のうちの一部又は全部は、ハードウェアにより実装されてもよい。
アドレス変換部25は、キャッシュ制御部9から書き込みデータと当該書き込みデータの論理アドレスとを受けた場合に、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性メモリ24の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報32に登録する。
本実施形態において、アドレス変換部25は、プロセッサ22によって実現されるとしている。しかしながら、アドレス変換部25は、プロセッサ22と別の構成としてもよい。
また、アドレス変換部25は、例えばテーブル型のアドレス変換情報32に基づいてアドレス変換を行うが、これに代えてキーバリュー型検索によりアドレス変換を行ってもよい。例えば、論理アドレスをキーとし、物理アドレスをバリューとすることで、キーバリュー型検索によるアドレス変換は実現可能である。
書き込み部26は、アドレス変換部25によって得られた物理アドレスの示す位置に、書き込みデータを書き込む。
有効/無効生成部27は、例えばアドレス変換情報32に基づいて、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データかを示す有効/無効情報33を生成する。そして、有効/無効生成部27は、有効/無効情報33をメモリ23に格納する。
選択部28は、ガベージコレクション対象のブロックを選択する。
例えば、選択部28は、不揮発性メモリ24のブロックのうち、書き込み時間が最も古いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
例えば、選択部28は、不揮発性メモリ24のブロックからランダムにガベージコレクション対象のブロックを選択してもよい。
例えば、選択部28は、有効/無効情報33に基づいて、無効データの数が最も多いブロック、又は、無効データの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
例えば、選択部28は、有効/無効情報33及び削除情報34に基づいて、無効データと削除対象データとの数が最も多いブロック、又は、無効データと削除対象データとの数が所定の値より多いブロックを、ガベージコレクション対象のブロックとして選択してもよい。
送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成する。換言すれば、ブロック情報は、ガベージコレクション対象のブロックの識別情報と、当該ブロックに書き込まれている有効データを示す論理アドレスとを関係付けた情報を含む。そして、送信部29は、ブロック情報をキャッシュメモリ制御部9に送る。
受信部30は、キャッシュメモリ制御部9から削除情報を受け、削除情報34を不揮発性メモリ24に格納する。
ガベージコレクション部31は、不揮発性メモリ24に格納されている有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。
図2は、本実施形態に係る情報処理装置の処理の一例を示すフローチャートである。
ステップS201において、送信部18は、SSD5に、書き込みデータと論理アドレスとを送る。
ステップS202において、アドレス変換部25は、書き込みデータと論理アドレスとを受け、アドレス変換情報32に対して、書き込みデータの論理アドレスと物理アドレスとを関係付けた情報を登録する。
ステップS203において、書き込み部26は、書き込みデータを不揮発性メモリ24の物理アドレスの示す位置に書き込む。
ステップS204において、有効/無効生成部27は、不揮発性メモリ24に書き込まれている各データが有効データか又は無効データを示す有効/無効情報33を生成し、メモリ23に有効/無効情報33を格納する。
ステップS205において、選択部28は、ガベージコレクション対象のブロックを選択する。
ステップS206において、送信部29は、ガベージコレクション対象のブロックに書き込まれているデータを示す論理アドレスから、有効/無効情報33で無効とされている無効データを示す論理アドレスを削除したブロック情報を生成し、ブロック情報をキャッシュ制御部9に送信する。
ステップS207において、受信部19は、SSD5からブロック情報を受信する。
ステップS208において、書き込み部20は、SSD5から受けたブロック情報と管理情報61〜64とに基づいて、ブロック情報に含まれている論理アドレスの示すデータの一部又は全部を、SSD5の不揮発性メモリ24ではない他のメモリに書き込む。
例えば、書き込み部20は、ブロック情報に含まれている論理アドレスのうち、削除命令が受け付けられた削除対象データを示す論理アドレスを除外し、維持対象の論理アドレスの示すデータを、他のメモリに書き込む。
ステップS209において、送信部21は、削除対象の論理アドレスを含む削除情報をSSD5に送る。
ステップS210において、受信部30は、キャッシュ制御部9から削除情報を受信し、削除情報34をメモリ23に格納する。
ステップS211において、ガベージコレクション部31は、有効/無効情報33及び削除情報34に基づいて、ガベージコレクション対象のブロックに書き込まれているデータから、無効データと削除対象データとを除外し、有効であり削除対象ではないデータのみに対して、ガベージコレクションを実行する。
以上説明した本実施形態においては、キャッシュ制御部9は、SSD5から、不揮発性メモリ24のブロックに書き込まれているデータの情報を取得することができる。これにより、キャッシュ制御部9は、不揮発性メモリ24のブロックにおけるデータの書き込み状態を認識することができる。例えば、本実施形態においては、不揮発性メモリ24のブロックに書き込まれているデータが、有効データであるか、無効データであるか、削除対象データであるかを認識することができる。
本実施形態においては、SSD5が、データが有効データか無効データかを識別するための有効/無効情報33と、データが削除対象か否かを識別するための削除情報34とを備える。これにより、SSD5においてガベージコレクションが実行される場合に、ガベージコレクション対象のブロックに書き込まれているデータを、消去するか否か判断することができ、不必要なデータの書き込みを防止することができ、不揮発性メモリ24の寿命を延ばすことができる。
本実施形態において、キャッシュ制御部9は、SSD5から受けたブロック情報に含まれる論理アドレスの示す有効データのうち、削除対象データが不揮発性メモリ24から他のメモリに転記されることを防止することができる。また、本実施形態において、SSD5は、キャッシュ制御部9から他のメモリに転記されなかったデータ(例えば、無効データ、有効データであるが削除対象データでもあるデータ)を、SSD5から削除することができる。
以上説明した本実施形態においては、SSD5から情報処理装置17へ、消去対象ブロックに関するブロック情報が送られる。しかしながら、このブロック情報は、例えば、不揮発性メモリ24の各ブロックと各ブロックに書き込まれているデータの識別情報とを関係付けた情報を含むとしてもよい。情報処理装置17は、この関係情報をSSD5から受けることにより、SSD5におけるブロックとデータとの格納関係を認識することができる。
[第2の実施形態]
本実施形態においては、不揮発性キャッシュメモリ4を備えるキャッシュメモリ装置について説明する。
図3は、本実施形態に係る情報処理システム35の構成の一例を示すブロック図である。
情報処理装置17は、プロセッサ2、メモリ3、不揮発性キャッシュメモリ4を含む。
不揮発性キャッシュメモリ4は、ブロックグループBG1〜BG4を含む。不揮発性キャッシュメモリ4は、SSD5よりも高速にアクセス可能である。
ブロックグループ(第1のグループ)BG1は、ブロック(第1の消去エリア)B1,1〜B1,Kを含む。ブロックグループBG1は、プロセッサ2によってアクセスされたデータ(プロセッサ2に使用されたデータ)を格納する。
本実施形態において、ブロックグループBG1が消去条件(第1の消去条件)を満たす場合に、先入先出法(First-In First-Out:FIFO)に基づいて、ブロックグループBG1内のブロックB1,1〜B1,Kから消去対象(破棄対象又は追い出し対象)ブロック(第1の消去対象エリア)が選択される。
例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kのデータ量が所定の値を越えている場合に、消去条件を満たすとする。また、例えば、ブロックグループBG1の各ブロックB1,1〜B1,Kに書き込まれたページ数が所定の数を越えた場合に、消去条件を満たすとしてもよい。
ブロックB1,1〜B1,KからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第1の低使用状態(例えば設定された第1の回数又は第1の頻度未満でアクセスされている)の場合に、ブロックグループBG2に書き込まれる。これに対して、ブロックB1,1〜B1,Kから選択された消去対象ブロックに書き込まれているデータは、当該データが第1の高使用状態(例えば第1の回数又は第1の頻度以上でアクセスされている)の場合に、ブロックグループBG3に書き込まれる。そして、ブロックB1,1〜B1,Kから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去(破棄又は追い出し)される。
ブロックグループ(第2のグループ)BG2は、ブロック(第2の消去エリア)B2,1〜B2,Lを含む。ブロックグループBG2は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の低使用状態のデータを格納する。
本実施形態において、ブロックグループBG2が消去条件(第3の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG2内のブロックB2,1〜B2,Lから消去対象ブロック(第3の消去対象エリア)が選択される。
ブロックB2,1〜B2,LからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第3の低使用状態(例えば設定された第3の回数又は第3の頻度未満でアクセスされている)の場合に、消去される。これに対して、ブロックB2,1〜B2,Lから選択された消去対象ブロックに書き込まれているデータは、当該データが第3の高使用状態(例えば第3の回数又は第3の頻度以上でアクセスされている)の場合に、ブロックグループBG3に書き込まれる。そして、ブロックB2,1〜B2,Lから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去される。
ブロックグループ(第3のグループ)BG3は、ブロック(第3の消去エリア)B3,1〜B3,Mを含む。ブロックグループBG3は、ブロックグループBG1から選択された消去対象ブロックに書き込まれているデータのうち第1の高使用状態のデータを格納する。また、ブロックグループBG3は、ブロックグループBG2から選択された消去対象ブロックに書き込まれているデータのうち第3の高使用状態のデータを格納する。
本実施形態において、ブロックグループBG3が消去条件(第2の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG3内のブロックB3,1〜B3,Mから消去対象ブロック(第2の消去対象エリア)が選択される。
ブロックB3,1〜B3,MからFIFOによって選択された消去対象ブロックに書き込まれているデータは、当該データが第2の低使用状態(例えば設定された第2の回数又は第2の頻度未満でアクセスされている)の場合に、ブロックグループBG4に書き込まれる。これに対して、ブロックB3,1〜B3,Mから選択された消去対象ブロックに書き込まれているデータは、当該データが第2の高使用状態(例えば第2の回数又は第2の頻度以上でアクセスされている)の場合に、ブロックグループBG3内の他のブロックに対して再書き込みされる。そして、ブロックB3,1〜B3,Mから選択された消去対象ブロックに書き込まれているデータは、ブロック単位で消去される。
ブロックグループ(第4のグループ)BG4は、ブロック(第4の消去エリア)B4,1〜B4,Nを含む。ブロックグループBG4は、ブロックグループBG3から選択された消去対象ブロックに書き込まれているデータのうち第2の低使用状態のデータを格納する。
本実施形態において、ブロックグループBG4が消去条件(第4の消去条件)を満たす場合に、FIFOに基づいて、ブロックグループBG4内のブロックB4,1〜B4,Nから消去対象ブロック(第4の消去対象エリア)が選択される。
ブロックB4,1〜B4,NからFIFOによって選択された消去対象ブロックに書き込まれているデータは、消去される。
本実施形態においては、各ブロックグループBG1〜BG4から消去対象ブロックを選択する手法としてFIFOが用いられている。消去対象ブロックがFIFOに基づいて選択されることにより、各ブロックグループBG1〜BG4から書き込み時間及び書き込み順序が古いブロックから消去される。しかしながら、消去対象ブロックは、例えば、ランダムに選択されるとしてもよく、LRU(Least Recently Used)に基づいて選択されてもよく、LFU(Least Frequently Used)に基づいて選択されてもよい。例えば、管理情報61〜64に基づいて、無効データの数が最も多いブロック、又は、無効データの数が所定の値より多いブロックが、消去対象ブロックとして選択されてもよい。例えば、管理情報61〜64は、データの識別情報と、データが削除対象か否かを示す情報と、データの使用状態情報を含む。管理情報61〜64に基づいて、無効データと削除対象データとの数が最も多いブロック、又は、無効データと削除対象データとの数が所定の値より多いブロックが、消去対象ブロックとして選択されてもよい。
本実施形態において、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、キャッシュされているデータの識別情報(例えばホストから提供される論理アドレス)、当該データが書き込まれている位置、当該データの使用状態を、認識可能である。例えば、キャッシュ制御部9は、管理情報61〜64とアドレス変換情報7とに基づいて、ブロックグループBG1〜BG4のそれぞれにキャッシュされるデータと、FIFOにより消去されるブロックとを、選択可能である。
プロセッサ2は、プロセッサ2内のメモリに格納されているプログラム、メモリ3に格納されているプログラム、不揮発性キャッシュメモリ4に格納されているプログラム、又は、SSD5に格納されているプログラムを実行することにより、アドレス変換部8及びキャッシュ制御部9として機能する。
本実施形態において、プロセッサ2をアドレス変換部8及びキャッシュ制御部9として機能させるためのプログラムは、例えば、OS、ミドルウェア、ファームウェアでもよい。本実施形態において、アドレス変換部8のうちの一部又は全部、又は、キャッシュ制御部9のうちの一部又は全部は、ハードウェアにより実装されてもよい。
アドレス変換部8は、書き込みデータの論理アドレスと、当該書き込みデータが格納された不揮発性キャッシュメモリ4の位置を示す物理アドレスとを関係付けた情報を生成し、この情報をアドレス変換情報7に登録する。
また、アドレス変換部8は、プロセッサ2から読み出しデータの論理アドレスを受けた場合に、アドレス変換情報7に基づいて、論理アドレスを物理アドレスに変換する。
キャッシュ制御部9は、生成部10、制御部11〜14、変更部15,16を含む。
生成部10は、不揮発性キャッシュメモリ4のブロックグループBG1〜BG4に対応する管理情報61〜64を生成し、管理情報61〜64をメモリ3に書き込む。
制御部11〜14は、それぞれブロックグループBG1〜BG4に対するデータの書き込み及びブロックの消去を制御する。
制御部11は、書き込み部111、判断部112、選択部113、判断部114、消去部115を含む。
書き込み部(第1の書き込み部)111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。
判断部(第1の判断部)112は、ブロックグループBG1が消去条件(第1の消去条件)を満たすか否か判断する。
選択部(第1の選択部)113は、ブロックグループBG1が消去条件を満たす場合に、ブロックグループBG1から消去対象ブロック(第1の消去対象エリア)を選択する。
判断部(第2の判断部)114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。
消去部(第1の消去部)115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
制御部12は、書き込み部121、判断部122、選択部123、判断部124、消去部125を含む。
書き込み部(第2の書き込み部)121は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG2に対して書き込む。
判断部(第5の判断部)122は、ブロックグループBG2が消去条件(第3の消去条件)を満たすか否か判断する。
選択部(第3の選択部)123は、ブロックグループBG2が消去条件を満たす場合に、ブロックグループBG2から消去対象ブロック(第3の消去対象エリア)を選択する。
判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。
消去部(第2の消去部)125は、消去対象ブロックに書き込まれている第3の高使用状態のデータであり削除対象でないデータがブロックグループBG3に書き込まれた場合に、消去対象ブロックに書き込まれているデータを消去する。
制御部13は、書き込み部131、判断部132、選択部133、判断部134、書き込み部135、消去部136、書き込み部137を含む。
書き込み部(第3の書き込み部)131は、判断部114によってブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG3に対して書き込む。
書き込み部(第6の書き込み部)137は、ブロックグループBG2に書き込まれているデータが第3の高使用状態であり削除対象でない場合に、当該データをブロックグループBG3に対して書き込む。例えば、書き込み部137は、ブロックグループBG2に書き込まれているデータがプロセッサ2におけるアクセス対象となった場合に、ブロックグループBG2のアクセス対象データを、ブロックグループBG3に対して書き込むとしてもよい。
判断部(第3の判断部)132は、ブロックグループBG3が消去条件(第2の消去条件)を満たすか否か判断する。
選択部(第2の選択部)133は、ブロックグループBG3が消去条件を満たす場合に、ブロックグループBG3から消去対象ブロック(第2の消去対象エリア)を選択する。
判断部(第4の判断部)134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。
書き込み部(第5の書き込み部)135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の高使用状態であり削除対象でないと判断された場合に、当該データを、ブロックグループBG3の書き込み可能な他のブロックに対して再書き込みする。
消去部(第3の消去部)136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
制御部14は、書き込み部141、判断部142、選択部143、消去部144を含む。
書き込み部(第4の書き込み部)141は、判断部134によってブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象でないと判断された場合に、当該データをブロックグループBG4に対して書き込む。
判断部(第6の判断部)142は、ブロックグループBG4が消去条件(第4の消去条件)を満たすか否か判断する。
選択部(第4の選択部)143は、ブロックグループBG4が消去条件を満たす場合に、ブロックグループBG4から消去対象ブロック(第4の消去対象エリア)を選択する。
消去部(第4の消去部)144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。
変更部(第1の変更部)15は、ブロックグループBG2に書き込まれているデータが第3の高使用状態になった場合に、ブロックグループBG1に含まれているブロックの数を増加し、ブロックグループBG3に含まれているブロックの数を減少する。例えば、変更部15は、ブロックグループBG2に書き込まれているデータがプロセッサ2によるアクセス対象となった場合に、ブロックグループBG1に含まれているブロックの数を増加し、ブロックグループBG3に含まれているブロックの数を減少する。
変更部(第2の変更部)16は、ブロックグループBG4に書き込まれているデータが第4の高使用状態になった場合に、ブロックグループBG3に含まれているブロックの数を増加し、ブロックグループBG1に含まれているブロックの数を減少する。例えば、変更部16は、ブロックグループBG4に書き込まれているデータがプロセッサ2によるアクセス対象となった場合に、ブロックグループBG3に含まれているブロックを増加し、ブロックグループBG1に含まれているブロックの数を減少する。
図4は、本実施形態に係る第1のキャッシュ制御の一例を示すフローチャートである。この図4は、ブロックグループBG1にデータが書き込まれてから、ブロックグループBG2又はブロックグループBG3にデータが書き込まれ、ブロックグループBG1の消去対象ブロックが消去される処理を例示している。
ステップS401において、書き込み部111は、ブロックグループBG1に対して、プロセッサ2によってアクセスされたデータを書き込む。
ステップS402において、判断部112は、ブロックグループBG1が消去条件を満たすか否か判断する。
ブロックグループBG1が消去条件を満たさない場合には、処理はステップS406に移る。
ブロックグループBG1が消去条件を満たす場合には、ステップS403において、選択部113は、ブロックグループBG1から消去対象ブロックを選択する。
ステップS404において、判断部114は、管理情報61に基づいて、消去対象ブロックに書き込まれている各データが第1の高使用状態か第1の低使用状態か削除対象かを判断する。
データが第1の低使用状態であり削除対象ではない場合には、ステップS501において、書き込み部121は、ブロックグループBG2にデータを書き込む。
データが第1の高使用状態であり削除対象ではない場合には、ステップS601において、書き込み部131は、ブロックグループBG3にデータを書き込む。
ステップS405において、消去部115は、消去対象ブロックに書き込まれている各データがブロックグループBG2又はブロックグループBG3に書き込まれたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
ステップS406において、キャッシュ制御部9が処理を終了するか否か判断する。
キャッシュ制御部9が処理を終了しない場合に、処理はステップS401に移る。
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
図5は、本実施形態に係る第2のキャッシュ制御の一例を示すフローチャートである。この図5は、ブロックグループBG2にデータが書き込まれ、ブロックグループBG2の消去対象ブロックが消去される処理を例示している。
ステップS501において、書き込み部121は、上記ステップS404においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG2に対して書き込む。
ステップS502において、判断部122は、ブロックグループBG2が消去条件を満たすか否か判断する。
ブロックグループBG2が消去条件を満たさない場合には、処理はステップS506に移る。
ブロックグループBG2が消去条件を満たす場合には、ステップS503において、選択部123は、ブロックグループBG2から消去対象ブロックを選択する。
ステップS504において、判断部124は、管理情報62に基づいて、消去対象ブロックに書き込まれている各データが第3の高使用状態か第3の低使用状態か削除対象かを判断する。
データが第3の低使用状態又は削除対象の場合には、処理はステップS505に移る。
データが第3の高使用状態であり削除対象ではない場合には、ステップS601において、書き込み部137は、ブロックグループBG3にデータを書き込む。
ステップS505において、消去部125は、ブロックグループBG2の消去対象ブロックに書き込まれているデータを消去する。
ステップS505において、キャッシュ制御部9が処理を終了するか否か判断する。
キャッシュ制御部9が処理を終了しない場合に、処理はステップS501に移る。
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
図6は、本実施形態に係る第3のキャッシュ制御の一例を示すフローチャートである。この図6は、ブロックグループBG3にデータが書き込まれてから、ブロックグループBG3のデータが消去されるまでの処理を例示している。
ステップS601において、書き込み部131は、上記ステップS404においてブロックグループBG1の消去対象ブロックに書き込まれているデータが第1の高使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG3に対して書き込む。または、書き込み部137は、上記ステップS504においてブロックグループBG2に書き込まれているデータが第3の高使用状態(例えばプロセッサ2におけるアクセス対象となった)であり削除対象ではないと判断された場合に、ブロックグループBG2の当該データを、ブロックグループBG3に対して書き込む。
ステップS602において、判断部132は、ブロックグループBG3が消去条件を満たすか否か判断する。
ブロックグループBG3が消去条件を満たさない場合には、処理はステップS607に移る。
ブロックグループBG3が消去条件を満たす場合には、ステップS603において、選択部133は、ブロックグループBG3から消去対象ブロックを選択する。
ステップS604において、判断部134は、管理情報63に基づいて、消去対象ブロックに書き込まれている各データが第2の高使用状態か第2の低使用状態か削除対象かを判断する。
データが第2の低使用状態であり削除対象ではない場合には、ステップS701において、書き込み部141は、ブロックグループBG4にデータを書き込む。
データが第2の高使用状態であり削除対象ではない場合には、ステップS605において、書き込み部135は、ブロックグループBG3の消去対象ブロックに書き込まれているデータを、ブロックグループBG3の他のブロックに対して再書き込みする。
ステップS606において、消去部136は、消去対象ブロックに書き込まれている各データがブロックグループBG4に書き込まれたか、ブロックグループBG3に再書き込みされたか、又は、削除対象であるために破棄されてもよい場合に、消去対象ブロックを消去する。
ステップS607において、キャッシュ制御部9が処理を終了するか否か判断する。
キャッシュ制御部9が処理を終了しない場合に、処理はステップS601に移る。
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
図7は、本実施形態に係る第4のキャッシュ制御の一例を示すフローチャートである。この図7は、ブロックグループBG4にデータが書き込まれ、ブロックグループBG4のデータが消去され処理を例示している。
ステップS701において、書き込み部141は、上記ステップS604においてブロックグループBG3の消去対象ブロックに書き込まれているデータが第2の低使用状態であり削除対象ではないと判断された場合に、当該データをブロックグループBG4に対して書き込む。
ステップS702において、判断部142は、ブロックグループBG4が消去条件を満たすか否か判断する。
ブロックグループBG4が消去条件を満たさない場合には、処理はステップS705に移る。
ブロックグループBG4が消去条件を満たす場合には、ステップS703において、選択部143は、ブロックグループBG4から消去対象ブロックを選択する。
ステップS704において、消去部144は、ブロックグループBG4の消去対象ブロックに書き込まれているデータを消去する。
ステップS705において、キャッシュ制御部9が処理を終了するか否か判断する。
キャッシュ制御部9が処理を終了しない場合に、処理はステップS701に移る。
キャッシュ制御部9が処理を終了する場合に、処理は終了する。
以上説明した本実施形態に係るブロックグループ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に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。
ブロックグループBG1においては、管理情報61に基づいて、ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第1の回数又は第1の頻度未満か否か判断される。ブロックグループBG1における消去対象ブロックに書き込まれているデータに対するアクセスが第1の回数又は第1の頻度未満の場合、当該データの書き込み先としてブロックグループBG2が選択される。
これに対して、ブロックグループBG1における消去対象ブロックに書き込まれているデータのアクセスが第1の回数又は第1の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。
また、ブロックグループBG1における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。
本実施形態に係るブロックグループ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に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。
ブロックグループBG2においては、管理情報62に基づいて、ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第3の回数又は第3の頻度未満か否か判断される。ブロックグループBG2における消去対象ブロックに書き込まれているデータに対するアクセスが第3の回数又は第3の頻度未満の場合、当該データは消去される。
これに対して、ブロックグループBG2における消去対象ブロックに書き込まれているデータのアクセスが第3の回数又は第3の頻度以上の場合、当該データの書き込み先としてブロックグループBG3が選択される。
また、ブロックグループBG2における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。
本実施形態に係るブロックグループ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に対して再びシーケンシャルにデータを書き込まれる。以下、同様の制御が繰り返される。
ブロックグループBG3においては、管理情報63に基づいて、ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが例えば第2の回数又は第2の頻度未満か否か判断される。ブロックグループBG3における消去対象ブロックに書き込まれているデータに対するアクセスが第2の回数又は第2の頻度未満の場合、当該データの書き込み先としてブロックグループBG4が選択される。
これに対して、ブロックグループBG3における消去対象ブロックに書き込まれているデータのアクセスが第2の回数又は第2の頻度以上の場合、当該データはブロックグループBG3に再書き込みされる。
また、ブロックグループBG3における消去対象ブロックに書き込まれているデータが削除対象の場合には、当該データは破棄される。
本実施形態に係るブロックグループ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に対して再びシーケンシャルにデータが書き込まれる。以下、同様の制御が繰り返される。
本実施形態において、制御部14は、ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態か否か判断してもよい。ブロックグループBG4の消去対象ブロックに書き込まれているデータが第5の高使用状態と判断された場合、制御部13は、当該データを不揮発性キャッシュメモリ4に維持するために、ブロックグループBG3の書き込み可能な移動先のブロックに対して書き込むとしてもよい。また、この場合に、プロセッサ2は、ブロックグループBG1のサイズを縮小してもよい。
本実施形態においては、4つのブロックグループBG1〜BG4に基づいてデータが管理される。
例えば、プロセッサ2によって一度アクセスされた第1のデータ(アクセス1回のデータ)は、ブロックグループBG1で管理される。
例えば、ブロックグループBG1の第2データがプロセッサ2によって2回以上アクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合に、第2のデータは、ブロックグループBG1からブロックグループBG3に移動される。
なお、本実施形態において、ブロックグループBG1のサイズは、ブロックグループBG3のサイズよりも大きいとする。
例えば、ブロックグループBG1の第3のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG1から追い出される場合に、第3のデータは、ブロックグループBG1からブロックグループBG2に移動される。
例えば、ブロックグループBG3の第4のデータがプロセッサ2によってアクセスされることなくFIFOに基づいてブロックグループBG3から追い出される場合に、第4のデータは、ブロックグループBG3からブロックグループBG4に移動される。
例えば、ブロックグループBG2,BG4では、データをキャッシュすることに代えて、メタデータをキャッシュするとしてもよい。なお、メタデータとは、データに関連する情報を含む。換言すれば、メタデータとは、データが付随して持つそのデータ自身の抽象度の高い付加的なデータである。
本実施形態において、例えば、第5のデータがブロックグループBG1に格納されると、ブロックグループBG2の第6のデータがFIFOに基づいて追い出される場合がある。
例えば、ブロックグループBG1の第7のデータがアクセスされ、FIFOに基づいてブロックグループBG1から追い出される場合、第7のデータは、ブロックグループBG1からブロックグループBG3に移動される場合があり、ブロックグループBG3の第8のデータは、FIFOに基づいてブロックグループBG3からブロックグループBG4に移動される場合があり、ブロックグループBG4の第9のデータは、FIFOに基づいてブロックグループBG4から追い出される場合がある。
例えば、ブロックグループBG2の第10のデータがアクセスされた場合、ブロックグループBG1のサイズが増加される。ブロックグループBG1のサイズが増加された場合、FIFOに基づいてブロックグループBG3の第11のデータがブロックグループBG4へ移動される。
例えば、ブロックグループBG4の第12のデータがアクセスされ、FIFOに基づいてブロックグループBG4から追い出される場合、第12のデータは、ブロックグループBG3へ移動され、ブロックグループBG1のサイズが縮小される。
以上説明した本実施形態においては、ブロック単位でデータを維持するか判断する維持判断を行い、維持するブロックのデータを移動先のブロックに書き込む移動書き込みを行い、不揮発性キャッシュメモリ4に書き込まされているデータの消去がブロック単位で実行される。
本実施形態においては、実効キャッシュ容量を増すことができ、不揮発性キャッシュメモリ4のヒット率を上げることができ、情報処理装置17の速度を高速化することができる。
本実施形態においては、不揮発性キャッシュメモリ4に対するガベージコレクションを行わなくても性能低下を抑制することができる。そして、ガベージコレクションを実行しないでよい分だけ、不揮発性キャッシュメモリ4に対する書き込み回数を減らすことができ、不揮発性キャッシュメモリ4を長寿命化することができる。さらに、ガベージコレクションを実行しなくてもよいため、不揮発性キャッシュメモリ4に予備領域を確保する必要がなく、キャッシュメモリとして利用可能なデータ容量を多くすることができ、使用効率を向上させることができる。
例えば、不揮発性メモリをキャッシュメモリとして用いるが、ブロックの境界とは無関係にデータを破棄する場合には、不揮発性メモリのブロックの有効データを他のブロックに移動するガベージコレクションが頻繁に発生する場合がある。これに対して、本実施形態においては、不揮発性キャッシュメモリ4でガベージコレクションを実行する必要がない。このため、上述のように、本実施形態では、不揮発性キャッシュメモリ4を長寿命化することができる。
[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理装置17とSSD5とを含む情報処理システム35の詳細構成について説明する。
図8は、本実施形態に係る情報処理システム35の詳細構成の一例を示すブロック図である。
情報処理システム35は、情報処理装置17とメモリシステム37とを含む。
上記第1及び第2の実施形態に係るSSD5は、メモリシステム37に対応する。
SSD5のプロセッサ22は、CPU43Bに対応する。
アドレス変換情報32は、LUT(Look Up Table)45に対応する。
メモリ23は、DRAM47に対応する。
情報処理装置17は、ホスト装置として機能する。
メモリシステム37のコントローラ36は、フロントエンド4Fと、バックエンド4Bとを備える。
フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部(Advanced Encryption Standard (AES))44、及びCPU43Fを備える。
ホストインタフェース41は、情報処理装置17との間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA及びデータなどを通信する。
ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。
暗号化/復号化部44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。
バックエンド(メモリ通信部)4Bは、ライトバッファWB、リードバッファRB、LUT45、DDRC46、DRAM47、DMAC48、ECC49、ランダマイザRZ、NANDC50、及びCPU43Bを備える。
ライトバッファ(ライトデータ転送部)WBは、情報処理装置17から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ24に適した所定のデータサイズになるまで、一時的にデータを格納する。
リードバッファ(リードデータ転送部)RBは、不揮発性メモリ24から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置17に適した順序(情報処理装置17が指定した論理アドレスLBAの順序)になるように並び替えられる。
LUT45は、論理アドレスLBAを物理アドレスPBAに変換するためのデータである。
DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。
DRAM47は、例えば、LUT45を格納する揮発性のメモリである。
DMAC(Direct Memory Access Controller)48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。図8においては1つのDMAC48が図示されているが、コントローラ36は、2以上のDMAC48を備えるとしてもよい。DMAC48は、必要に応じて、コントローラ36内の様々な位置に設定される。
ECC(誤り訂正部)49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ24から読み出した読み出しデータを必要に応じて訂正する。
ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ24の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ24のメモリセルMCのセル寿命を長期化できる。そのため、不揮発性メモリ24の信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ24から読み出された読み出しデータはランダマイザRZを通過する。
NANDC(NAND Controller)50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ24にアクセスする。
CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。
なお、コントローラ36の構成は例示であり、この構成に限定されることはない。
図9は、本実施形態に係るストレージシステムの一例を示す斜視図である。
ストレージシステム100は、SSDとしてのメモリシステム37を備える。
メモリシステム37は、例えば比較的小型のモジュールであり、その外形寸法の一例は、20mm×30mm程度である。なお、メモリシステム37の大きさ及び寸法は、これに限られるものではなく、種々の大きさのものに適宜変更可能である。
また、メモリシステム37は、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置17に装着されて使用可能である。そのため、メモリシステム37は、エンタープライズ用SSD(eSSD)であってもよい。
メモリシステム37は、例えば上方に開口した複数のコネクタ(例えばスロット)38を備える。各コネクタ38は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、6GbpsのDual Portにより、情報処理装置17と各メモリシステム37とが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ38は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。
複数のメモリシステム37は、情報処理装置17のコネクタ38にそれぞれ装着され、略垂直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム37をコンパクトに纏めて実装可能であり、メモリシステム37の小型化を図ることができる。さらに、本実施形態に係るメモリシステム37の各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム37は、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。
なお、メモリシステム37は、エンタープライズ用に限られない。例えば、メモリシステム37は、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。
以上説明したように、本実施形態で説明した構成を持つ情報処理システム35及びストレージシステム100においては、大容量の記憶に、上記第2の実施形態と同様の効果を得ることができる。
本実施形態に係るメモリシステム37の構成は、上記第1の実施形態に係る情報処理装置17に適用されてもよい。例えば、上記第1の実施形態のプロセッサ2は、CPU43Bに対応するとしてもよい。アドレス変換情報7は、LUT45に対応するとしてもよい。メモリ3は、DRAM47に対応するとしてもよい。不揮発性キャッシュメモリ4は、不揮発性メモリ24に対応するとしてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。