説明

情報処理装置および情報処理方法

【課題】複数の半導体メモリをストレージとして用いる場合のトータル的な応答性の向上を図ることのできる情報処理装置を提供する。
【解決手段】この情報処理装置は、複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を、少なくとも一部の半導体メモリに割り当てる割当部と、データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する判定部とを具備する。複数の半導体メモリの物理的特性に個体差がある場合に、その半導体メモリの物理的特性が活かされるようにデータのライト先が判定部にて判定される。これにより、複数の半導体メモリを1つのストレージとして用いた場合のストレージのトータル的な応答性の向上を期待できる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理装置および情報処理方法に係り、特にストレージデバイスとしてSSDを用いた場合に好適な情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
近年、大容量化が比較的容易であり、ランダムアクセス時の読み出し速度に優れたストレージデバイスとしてSSD(Solid State Drive)が注目されている。SSDは、NAND型フラッシュメモリを用いたものが現在主流である。
【0003】
特にNAND型フラッシュメモリは、書き換え回数に応じて記憶素子の劣化が進行して記憶情報を保持できなくなることが知られている。すなわち、書き換えが繰り返されるにつれ、電子を格納する浮遊ゲートから電子を漏らさなくするためのトンネル酸化膜の劣化が進み、トンネル酸化膜から電子が漏れて浮遊ゲート内の電子量が低減してしまう。また、半導体製品の特有の問題として、シリコンウェハにおける中心部と周辺部との純度のばらつきやZ方向の純度のばらつきによる特性の個体差がある。
【0004】
そこで、SSDでは、ブロックの単位でライトの回数を管理し、全ブロックのライト回数が平準化されるようにすることで、一部のブロックのトンネル酸化膜に劣化が集中することを回避するウェアレべリングが採用されている。合わせて、エラーが発生してライトに失敗したブロックを登録し、以後このブロックの使用を禁止する不良ブロック管理、エラー訂正機能などが採用されている。
【0005】
特許文献1には、SSDなどの半導体記憶装置の使用限界予想時間(予想寿命)を特定・解析する方法が開示されている。この方法では、イレースカウントの時間的推移に基づく上昇係数が演算され、この上昇係数と、半導体記憶装置の容量から算出されるイレースカウントの最大値との関係で、半導体記憶装置の使用限界予想時間が演算される。すなわち、このままコンピュータを使用し続けた場合に、この半導体記憶装置のイレースカウントが、ここで演算されたイレースカウントの上昇係数によれば上記イレースカウントの最大値にどれだけの時間の経過後に達するかを使用限界予想時間として演算され、コンピュータのディスプレイに表示される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−61578号公報(段落[0006])
【発明の概要】
【発明が解決しようとする課題】
【0007】
ウェアレベリングはSSDの寿命を引き伸ばすことを期待するものであり、一方、特許文献1の技術は使用限界予想時間の表示によりSSDの交換時期を管理するというものである。いずれの技術も、SSDをストレージとして用いたシステムの信頼性の向上に寄与するものである。しかし、もう1つ別の課題としてSSDに対するデータのリードおよびライトの応答性がある。
【0008】
しかしながら、シリコン基板の不純物濃度の空間的なばらつきなどに起因して起るSSDの物理的特性の個体差を回避しきれない現状において、複数のSSDでストレージを実現する場合のトータル的な応答性を改善するための技術は、これといって確立されていない。
【0009】
以上のような事情に鑑み、本技術の目的は、複数の半導体メモリをストレージとして用いる場合のトータル的な応答性の向上を図ることのできる情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本技術の一形態に係る情報処理装置は、複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を、少なくとも一部の半導体メモリに割り当てる割当部と、データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する判定部とを具備する。
【0011】
本技術では、割当部にて、全体として1つのストレージを構成する半導体メモリの物理的特性の評価結果をもとに少なくとも一部の半導体メモリに用途属性が割り当てられ、データのライト命令に対して、このデータのライト先として最適な用途属性の半導体メモリが判定部にて判定される。すなわち、本技術では、複数の半導体メモリの物理的特性に個体差がある場合に、その半導体メモリの物理的特性が活かされるようにデータのライト先が判定部にて判定される。これにより、複数の半導体メモリを1つのストレージとして用いた場合のストレージのトータル的な応答性の向上を期待できる。
【0012】
本技術に係る情報処理装置は、前記データに対して所定の演算処理を実行し、この演算処理されたデータのライト命令に属性指定フラグを付加する処理部をさらに具備し、前記判定部は、前記処理部から前記ライト命令を受け取り、このライト命令に付加された前記属性指定フラグをもとに前記最適な用途属性の半導体メモリを判定するものであってよい。
【0013】
すなわち、処理部は処理されたデータが、例えば、ストレージに対してリードとライトが頻繁に繰り返されるようなデータ、一度ライトされた後は殆どリライトされることなくリードが繰り返されるようなデータ、何度もリライトによる更新が繰り返されるようなデータの、いずれかに属するものかを判定して、その結果に応じた属性指定フラグをライト命令に付加する。これにより、複数の半導体メモリの物理的特性に個体差がある場合に、それぞれの半導体メモリの物理的特性が活かされるようにデータのライト先を判定部にて正しく判定することができる。
【0014】
前記割当部は、少なくとも、Badblock発生率、リード時間、ライト時間を含む複数の特性評価項目毎に複数の半導体メモリそれぞれの物理的特性を評価し、これらの評価結果をもとに、前記複数の半導体メモリの一部の半導体メモリにリード/ライト重視の用途属性を割り当て、他の一部の半導体メモリにリード重視の用途属性を割り当て、さらに他の一部の半導体メモリにライト重視の用途属性を割り当てるものであってよい。これにより、半導体メモリの物理的特性を正しく評価して、半導体メモリに妥当な用途属性を割り当てることができる。
【0015】
前記割当部は、ファイルのデータのリード頻度をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させるものであってよい。ファイルのデータを、実際のリード頻度に適した用途属性が割り当てられた半導体メモリに移動させることができる。これにより、例えば、実際にはリード頻度が高くないファイルのデータで、リード/ライト重視やリード重視などの用途属性が割り当てられた、比較的物理的特性に優れた半導体メモリの容量が消費されるという無駄を効果的に除去することができる。
【0016】
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時と前記リード回数の値をもとに前記リード頻度を計算するものであってよい。これにより、ファイルのデータのリード頻度を正しく算出することができ、異なる用途属性が割り当てられた複数の半導体メモリ間でファイルのデータを移動させる処理の信頼性が向上する。
【0017】
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として少なくとも第1の閾値、第2の閾値および第3の閾値(但し、第1の閾値<第2の閾値<第3の閾値)を有し、前記リード頻度が前記第3の閾値を超えたとき、そのファイルのデータが前記リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第1の半導体メモリに移動させ、前記リード頻度が前記第2の閾値を超え、かつ第3の閾値以下であるとき、そのファイルのデータが前記リード重視の用途属性が割り当てられた第2の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第2の半導体メモリに移動させ、前記リード頻度が前記第1の閾値を超え、かつ前記第2の閾値以下であるとき、そのファイルのデータが前記ライト重視の用途属性が割り当てられた第3の半導体メモリにある場合、そのファイルのデータを前記第3の半導体メモリに移動させ、前記リード頻度が前記第1の閾値以下であるとき、そのファイルのデータが前記用途属性が割り当てられていない第4の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第4の半導体メモリに移動させるものであってよい。
【0018】
これにより、実際にはリード頻度が高くないファイルのデータで、第1の半導体メモリおよび第2の半導体メモリなど、物理的特性が比較的優れた半導体メモリの容量が消費されるという無駄を効果的に除去することができる。逆に、実際にはリード頻度が高いファイルのデータが第3の半導体メモリや第4の半導体メモリなど、物理的特性が比較的劣った半導体メモリに保存されたままになることを回避することができる。これにより、ストレージの見かけ上の応答性を向上させることができる。
【0019】
また、前記割当部は、ファイルのデータのリード頻度および前回のリードからの経過時間をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させるものであってよい。
【0020】
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数、最新のリード時刻を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時、前記リード回数の値、および前記最新のリード時刻をもとに前記リード頻度および経過時間を計算するものであってよい。
【0021】
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として第1のリード頻度閾値および第2のリード頻度閾値(但し、第1のリード頻度閾値>第2のリード頻度閾値)を有するとともに、前記前回のリードからの経過時間に対する閾値として第1の経過時間閾値および第2の経過時間閾値(但し、第1の経過時間閾値<第2の経過時間閾値)を有し、前記リード頻度が前記第1のリード頻度閾値を超え、かつ前記経過時間が第1の経過時間閾値より短いとき、前記ファイルのデータを、リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ、リード重視の用途属性が割り当てられた第2の半導体メモリ、ライト重視の用途属性が割り当てられた第3の半導体メモリ、前記用途属性が割り当てられていない第4の半導体メモリの間で予め決められた序列に従って、当該ファイルのデータが保存されている半導体メモリよりも上位の半導体メモリに移動させ、前記リード頻度が前記第2のリード頻度閾値より小さく、かつ前記経過時間が第2の経過時間閾値より長いとき、前記ファイルのデータを前記第4の半導体メモリに移動させるものであってよい。
【0022】
本技術の別の側面に基づく情報処理方法は、割当部が、全体として1つのストレージを構成する複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を少なくとも一部の半導体メモリに割り当て、決定部が、データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する、というものである。
【発明の効果】
【0023】
本技術によれば、複数の半導体メモリをストレージとして用いる場合のトータル的な応答性の向上を図れる。
【図面の簡単な説明】
【0024】
【図1】本実施形態の情報処理装置の機能的な構成を示すブロック図である。
【図2】図1の情報処理装置における用途属性割当部による処理の流れを示すフローチャートである。
【図3】特性評価項目毎の評価結果に見合った最適用途の割り当て結果の例である。
【図4】図1の情報処理装置におけるディスパッチャ部によるファイルのライト時の動作を示すフローチャートである。
【図5】SSDに保存される管理テーブルの構成を示す図である。
【図6】図1の情報処理装置におけるディスパッチャ部によるファイルのリード時の動作を示すフローチャートである。
【図7】図1の情報処理装置において用途属性割当部によるリード頻度に基づく用途属性SSD間でのファイル移動処理に関するフローチャートである。
【図8】第2の実施形態の情報処理装置において用途属性割当部によるリード頻度に基づく用途属性SSD間でのファイル移動処理に関するフローチャートである。
【発明を実施するための形態】
【0025】
以下、図面を参照しながら、本技術の実施形態を説明する。
<第1の実施形態>
[情報処理装置の機能的な構成]
図1は本実施形態の情報処理装置の機能的な構成を示すブロック図である。
本実施形態の情報処理装置100は、処理部10、用途属性割当部20(割当部)、ディスパッチャ部30(判定部)、複数のSSD40(半導体メモリ)を有する。
【0026】
ここで複数のSSD40(40−1、40−2、40−3、SSD40−4)は、全体として1つのストレージを構成する。個々のSSD40は、例えばNAND型フラッシュメモリを記憶素子として搭載した半導体メモリ装置である。ハードウェア的には、個々のSSD40は、複数のフラッシュメモリチップと、これらのフラッシュメモリチップに対するデータのリード/ライトを制御するコントローラとで構成される。コントローラは、情報処理装置100に組み込まれたOS(Operating System)によって、当該SSD40内のコントローラを制御するためのソフトウェアであるデバイスドライバを用いて制御される。なお、本実施形態においてSSD40の数は図において4としているが、本技術はこれに限定されるものではなく、SSD40の数は複数であれば成立する。
【0027】
処理部10は、ハードウェア的には情報処理装置100のCPU(Central Processing Unit)とメインメモリなどで構成される。処理部10は、OSのもとでアプリケーションプログラムに従ってデータに対して所定の演算処理を行い、演算処理されたデータをストレージにライトしたり、ストレージからデータをリードして再度演算処理を行い、その結果をストレージに再度ライトしたりすることが可能である。また、処理部10は、処理されたデータの種類や目的などに応じて、ライト先のSSD40の用途属性を指定するフラグである属性指定フラグをライト命令に付加することができる。
【0028】
用途属性割当部20は、個々のSSD40の物理的特性を評価して、物理的特性に見合った用途属性を各SSD40に割り当てたり、ファイルのデータのリード頻度を計算して、用途属性が異なる複数のSSD40の間でもそのファイルのデータを移動させたりすることができる。
【0029】
ディスパッチャ部30は、処理部10からのデータのライト命令に対して、当該データのライト先として最適な用途属性のSSD40を判定し、そのSSD40に当該ライト命令を供給する。
【0030】
用途属性割当部20およびディスパッチャ部30は、具体的には、例えば、SSD用のデバイスドライバなどのプログラムモジュールである。言い換えると、プログラムモジュールは、情報処理装置内100のCPUおよびメインメモリなどのコンピュータ資源を、用途属性割当部20として、およびディスパッチャ部30として動作させるものである。
【0031】
次に、用途属性割当部20およびディスパッチャ部30の機能の詳細を説明する。
[用途属性割当部20]
図2は用途属性割当部20による処理の流れを示すフローチャートである。
【0032】
用途属性割当部20は、例えば、SSD40の自己診断機能(S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)などによって得られる処理回数、Badblock発生回数や、リード時間、ライト時間などの各種の測定データを取得する(ステップS101)。
【0033】
次に、用途属性割当部20は、取得した測定データからSSD40の特性評価項目毎のデータを集計する(ステップS102)。SSD40の特性評価項目には、例えば以下がある。
1.badblock発生率
2.リード時間
3.ライト時間
【0034】
すなわち、用途属性割当部20は、Badblock発生回数を処理回数で除算することによってBadblock発生率を算出する。特性評価項目であるリード時間は、より具体的には、リード時間の平均値、中央値、RMS (Root Mean Square:二乗平均平方根)などである。特性評価項目であるライト時間は、より具体的にはライト時間の平均値、中央値、RMSなどである。
【0035】
次に、用途属性割当部20は、特性評価項目毎の集計データをもとに、複数のSSD40それぞれの特性評価項目毎のランク(番付)を例えば次のルールに基づいて作成する(ステップS103)。
A.Badblock発生率が低いものから順に、Badblock発生率の特性評価項目について高いランク(リード/ライト重視ランク)が与えられる。
B.リード時間が短いものから順に、リード時間の特性評価項目について高いランクが与えられる。
C.ライト時間が短いものから順に、ライト時間の特性評価項目について高いランクが与えられる。
D.特定のSSD40に複数の特性評価項目についての最上位ランクが与えられることを避けるために、予め決められた特性評価項目間での優先関係に基づいて、複数の特性評価項目それぞれの最上位ランクが別々のSSD40に与えられる。特性評価項目間での優先関係は、例えば、Badblock発生率、リード時間、ライト時間の順とする。
特性評価項目毎のランク付けのためのルールは、上記のものに限定されない。
【0036】
用途属性割当部20は、以上の特性評価項目毎のランクをもとに、それぞれのSSD40に対して物理的特性に見合った用途属性が割り当てられる。
用途属性としては、
a.リード/ライト重視
b.リード重視
c.ライト重視
d.属性無し
などがある。以降、リード/ライト重視を「R/W重視」、リード重視を「R重視」、ライト重視を「W重視」と表記する。
【0037】
用途属性割当部20は、Badblock発生率の特性評価項目について最上位ランクが与えられたSSD40に対してR/W重視の用途属性を割り当てる。このR/W重視の用途属性が割り当てられたSSD40を「R/W重視SSD」と呼ぶ。
用途属性割当部20は、リード時間の特性評価項目について最上位ランクが与えられたSSD40に対してR重視の用途属性を割り当てる。このR重視の用途属性が割り当てられたSSD40を「R重視SSD」と呼ぶ。
用途属性割当部20は、ライト時間の特性評価項目について最上位ランクが与えられたSSD40に対してW重視の用途属性を割り当てる。このW重視の用途属性が割り当てられたSSD40を「W重視SSD」と呼ぶ。
R/W重視、R重視、W重視のいずれの用途属性も割り当てられないSSD40を「属性無しSSD」とする。
以上のように各SSDに対する用途属性の割当結果はディスパッチャ部30に通知される(ステップS105)。
【0038】
図3は特性評価項目毎の評価結果に見合った最適用途の割り当て結果の例である。
ここで、SSD#1、SSD#2、SSD#3、SSD#4は評価対象の4つのSSD40である。特性評価項目間での優先関係は、ここではBadblock発生率、リード時間、ライト時間とする。但し本技術は、これに限定されない。
【0039】
4つのSSD#1,#2,#3,#4の中で、Badblock発生率はSSD#1が最も小さい。リード時間はSSD#3が最短である。ライト時間はSSD#1が最も小さいものの、SSD#1には既にBadblock発生率の特性評価項目について最上位ランクが与えられているので、ライト時間が次に短いSSD#2に対してライト時間の特性評価項目について最上位ランクが与えられる。
【0040】
この結果、最終的には、
SSD#1=R/W重視SSD
SSD#3=W重視SSD
SSD#2=R重視SSD
SSD#4=属性無しSSD
のように用途属性が割り当てられる。
【0041】
以上の用途属性の割り当ては、たとえば、1週間に1回のように定期的に、ユーザからの要求が一定時間以上発生しないタイミングなど負荷が低いときに自動的にあるいは手動で開始される。そして、新たに取得された最新の特性評価項目毎の評価結果をもとに用途属性の割り当てが更新される。
【0042】
[処理部10によるライト命令への属性指定フラグの付加]
処理部10は、SSD40にデータをライトする際、アプリケーションに基づいて、データのライト先の用途属性を指定する属性指定フラグをライト命令にそれぞれ付加することができる。処理部10は、例えば次のようなルールで付加する属性指定フラグを決定する。
【0043】
1.SSD40の記憶領域の一部をOSが使用する仮想的なメインメモリ領域(スワップ領域)として利用する際のライト命令など、ストレージに対してリードとライトが頻繁に繰り返されるファイルのライト命令にはR/W重視の属性指定フラグが付加される。
【0044】
2.一度ライトされた後は、殆どリライトされることなく何度もリードが繰り返されるようなファイルのライト命令には、R重視の指定フラグが付加される。例えば、映像編集の分野において、カメラにより撮像された映像ソースのファイルは、一度ストレージに保存された後、部分的にリードされて編集が繰り返されるものの、映像ソースのファイルそのものが更新されることは殆どない。したがって、カメラにより撮像された映像ソースのファイルのライト命令にはR重視の属性指定フラグが付加される。
【0045】
3.何度もリライトによる更新が繰り返されるようなファイルのライト命令にはW重視の属性指定フラグが付加される。例えば、上記の映像編集の分野において、編集者であるユーザは、映像データの編集を開始するためにファイルをR重視SSD40などからリードし、編集が完了するまで、編集中のファイルをW重視SSD40にライトすることを繰り返す。したがって、編集中のファイルのライト命令にはW重視の属性指定フラグが付加される。
【0046】
4.例えば、リードとライトのどちらが多く行われるかが事前には把握できないようなファイルのライト命令には属性指定フラグは付加されない。映像編集以外の多くの分野においては、多くのファイルはこのケースにあたる。このような場合、スワップ領域に対するライト命令以外のライト命令にはすべて属性指定フラグを付加しないようにすることができる。
【0047】
[ディスパッチャ部30]
次に、ディスパッチャ部30の詳細を説明する。
図4はファイルのライト時のディスパッチャ部30の動作を示すフローチャートである。
【0048】
処理部10は、ファイルのデータをSSD40にライトするために、ファイルシステムにアクセスして論理記憶空間における空き領域の必要な容量分の論理アドレスを取得し、この論理アドレスの情報とライト命令をディスパッチャ部30に供給する。
【0049】
ディスパッチャ部30は、処理部10より論理アドレスの情報とライト命令を受けると(ステップS201)、ライト命令に付加されている可能性のある属性指定フラグを調べる。ディスパッチャ部30は、ライト命令にR/W重視の属性指定フラグが付加されている場合(ステップS202のYES)、R/W重視SSDをライト先として判定する。ディスパッチャ部30は、処理部10から供給された論理アドレスの情報とライト命令をR/W重視SSDに供給する。
【0050】
R/W重視SSDは、取得した論理アドレスに対して自SSD内の空き領域の物理アドレスを割り当て、その物理アドレスにファイルのデータをライトする。ここで、物理アドレスは、複数のSSDによる全体の物理アドレス空間における物理アドレスである。ディスパッチャ部30は、R/W重視SSDにライトされたファイルのファイル名、ファイル作成日時、論理アドレス、物理アドレス、リード回数の初期値をR/W重視SSD内の管理テーブルに互いに対応付けて登録する(ステップS203)。リード回数の初期値は"0"である。
【0051】
なお、管理テーブルは比較的高頻度でリード/ライトが行われるためR/W重視SSDに保存される。
図5は管理テーブルの構成を示す図である。
同図に示すように、管理テーブルには、SSD40に保存されているファイル毎に、ファイル名、そのファイルの作成日時(ライト日時)、1以上の論理アドレスが互いに対応付けて登録される。また、管理テーブルには、論理アドレス毎に、物理アドレス、リード回数が互いに対応付けて登録される。
【0052】
ところで、SSDなどの半導体メモリでは、記録されているファイルの更新は、更新前のファイルのデータを全て削除し、更新後のファイルを、改めて決定されたアドレスに全てライトすることが行われる。そのため、リード回数と、ファイル作成日時(ライト日時)は、そのファイルのリード頻度を求めるための情報として利用することができる。このファイルのリード頻度の情報は、後述する、リード頻度に基づく用途属性SSD間でのファイル移動の処理で用いられる。
【0053】
ディスパッチャ部30によるファイルのライト時の動作の説明に戻る。
ディスパッチャ部30は、処理部10から受け取ったライト命令にR重視の属性指定フラグが付加されている場合(ステップS204のYES)、R重視SSDをライト先として判定する。ディスパッチャ部30は、処理部10から供給された論理アドレスの情報とライト命令をR重視SSDに供給する。
【0054】
R/W重視SSDは、取得した論理アドレスに対して自SSD内の空き領域の物理アドレスを割り当て、その物理アドレスにファイルのデータをライトする。ディスパッチャ部30は、R重視SSDにライトされたファイルのファイル名、ファイル作成日時、論理アドレス、物理アドレス、リード回数の初期値をR/W重視SSD内の管理テーブルに互いに対応付けて登録する(ステップS205)。
【0055】
さらに、ディスパッチャ部30は、処理部10から受け取ったファイルのライト命令にW重視の属性指定フラグが付加されている場合(ステップS206のYES)、W重視SSDをライト先として判定する。ディスパッチャ部30は、処理部10から供給された論理アドレスの情報とライト命令をW重視SSDに供給する。
【0056】
W重視SSDは、取得した論理アドレスに対して自SSD内の空き領域の物理アドレスを割り当て、その物理アドレスにファイルのデータをライトする。ディスパッチャ部30は、W重視SSDにライトされたファイルのファイル名、ファイル作成日時、論理アドレス、物理アドレス、リード回数の初期値をR/W重視SSD内の管理テーブルに互いに対応付けて登録する(ステップS207)。
【0057】
また、ディスパッチャ部30は、処理部10から受け取ったライト命令に属性指定フラグが付加されていない場合(ステップS206のNO)、属性無しSSDをライト先として判定する。ディスパッチャ部30は、処理部10から供給された論理アドレスの情報とライト命令を属性無しSSDに供給する。
【0058】
属性無しSSDは、取得した論理アドレスに対して自SSD内の空き領域の物理アドレスを割り当て、その物理アドレスにファイルのデータをライトする。ディスパッチャ部30は、属性無しSSDにライトされたファイルのファイル名、ファイル作成日時、論理アドレス、物理アドレス、リード回数の初期値をR/W重視SSD内の管理テーブルに互いに対応付けて登録する(ステップS208)。
以上が、ファイルのライト時のディスパッチャ部30の動作である。
【0059】
[リード時の動作]
次に、リード時の動作を説明する。
図6はファイルのリード時のディスパッチャ部30の動作を示すフローチャートである。
処理部10は、ファイルシステムにアクセスして、リード対象のファイル名に対応する論理アドレスの情報を取得し、取得した論理アドレスの情報とリード命令をディスパッチャ部30に供給する。
【0060】
ディスパッチャ部30は、処理部10からの論理アドレスの情報とリード命令を受け取ると(ステップS301)、管理テーブルを参照して、論理アドレスを物理アドレスに変換し、当該物理アドレスに対応付けられているリード回数の値をインクリメントする(ステップS302)。
【0061】
ディスパッチャ部30は、物理アドレスをもとにリード対象のSSD40を判定し、このSSD40に当該物理アドレスの情報とリード命令を出力する(ステップS303)。リード対象のSSD40は、ディスパッチャ部30からの物理アドレスの情報とリード命令をもとに、その物理アドレスからデータをリードし、処理部10に応答する(ステップS304)。
【0062】
このようにディスパッチャ部30は、SSD40からファイルがリードされる毎に、そのファイルのデータがライトされている物理アドレスに対応付けられたリード回数をインクリメントする。このリード回数とファイル作成日時の各情報は、ファイルのリード頻度を算出するための情報として利用される。
【0063】
[リード頻度に基づく用途属性SSD間でのファイル移動]
図7は、用途属性割当部20によるリード頻度に基づく用途属性SSD間でのファイル移動処理に関するフローチャートである。
【0064】
この処理は、例えば1日に1回、1週間に1回のように定期的に、ユーザからの要求が一定時間以上発生しないタイミングなど負荷が低いときに自動的にあるいは手動で開始される。
【0065】
この処理が開始されると、用途属性割当部20は、管理テーブルを参照して、個々のファイルについてリード回数の値とそのファイル作成日時(ライト日時)を読み込み、当該ファイルのリード頻度Frを計算する(ステップS401)。リード頻度Frは、リード回数の値をファイル作成日時から現在日時までの経過時間で除算することによって得られる。
【0066】
用途属性割当部20は、ファイルのリード頻度に対する複数の種類の閾値FR1,FR2,FR3を有する。閾値の大きさの関係は、SR1<SR2<SR3である。
【0067】
用途属性割当部20は、ファイルのリード頻度がSR3を超えたとき(ステップS402のYES)、そのファイルのデータがR/W重視SSD以外のSSD40にある場合(ステップS403のNO)、そのファイルのデータをR/W重視SSDに移動させる(ステップS404)。ファイルのデータがR/W重視SSDにある場合(ステップS403のYES)、何もしない。
【0068】
用途属性割当部20は、ファイル毎のリード頻度がSR2を超え、かつSR3以下であるとき(ステップS405のYES)、そのファイルのデータがR重視SSD以外のSSD40にある場合(ステップS406のNO)、そのファイルのデータをR重視SSDに移動させる(ステップS407)。ファイルのデータがR重視SSDにある場合(ステップS406のYES)、何もしない。
【0069】
用途属性割当部20は、ファイル毎のリード頻度がSR1を超え、かつSR2以下であるとき(ステップS408のYES)、そのファイルのデータがW重視SSD以外のSSD40にある場合(ステップS409のNO)、そのファイルのデータをW重視SSD40に移動させる(ステップS410)。ファイルのデータがW重視SSDにある場合(ステップS409のYES)、何もしない。
【0070】
用途属性割当部20は、ファイル毎のリード頻度がSR1以下であるとき(ステップS408のNO)、そのファイルのデータが属性無しSSD以外のSSD40にある場合(ステップS411のNO)、そのファイルのデータを属性無しSSDに移動させる(ステップS412)。ファイルのデータが属性無しSSDにある場合(ステップS411のYES)、何もしない。
【0071】
なお、ファイルのデータを他の用途属性のSSDに移動させようとする際、移動先のSSD40に十分な空き容量がない場合、用途属性割当部20は、R/W重視SSD、R重視SSD、W重視SSD、属性無しSSDの間で予め決められた序列に従って、移動先よりも下位のSSDへの移動を順次試みる。
【0072】
このようにファイルのデータを、実際のリード頻度に適した用途属性のSSD40に移動させることができる。これにより、例えば、実際にはリード頻度が高くないファイルのデータで、R/W重視SSD、R重視SSDなど、物理的特性が比較的に優れたSSD40の容量が消費されるという無駄を効果的に除去することができる。逆に、実際にはリード頻度が高いファイルのデータがW重視SSD、属性無しSSDなど、物理的特性が比較的劣ったSSD40に保存されたままになることを回避することができる。これにより、ストレージの見かけ上の応答性を向上させることができる。
【0073】
<第2の実施形態>
第1の実施形態では、ファイル毎のリード頻度をもとに、ファイルのデータを別の用途属性SSDに移動させる処理が行われることとした。しかしなから、本技術はこれに限定されるものではない。
例えば、ファイル毎のリード頻度だけではなく、前回リードか行われてからの経過時間を加味して用途属性SSD間でのファイルの移動を行うようにしてもよい。
【0074】
図8は、ファイル毎のリード頻度と前回リードか行われてからの経過時間とに基づく用途属性SSD間でのファイル移動処理の例のフローチャートである。
【0075】
この処理は、例えば1日に1回、1週間に1回のように定期的に、ユーザからの要求が一定時間以上発生しないタイミングなど負荷が低いときに自動的にあるいは手動で開始される。あるいは、ファイルのリード要求が発生する毎に行われてもよい。この場合、ファイルのデータのリードが終了してから行われることが負荷の時間集中を回避する上で望ましい。
【0076】
この処理が開始されると、用途属性割当部20は、管理テーブルを参照して、個々のファイルについてリード回数の値とそのファイル作成日時(ライト日時)を読み込み、当該ファイルのリード頻度Frを計算する(ステップS501)。リード頻度Frは、リード回数の値をファイル作成日時から現在日時までの経過時間で除算することによって得られる。
【0077】
次に、用途属性割当部20は、現在の時刻から前回のリード時刻までの経過時間dを取得する(ステップS502)。現在の時刻は、ファイル移動処理の開始時刻、あるいは新たなリード要求の発生時刻であってもよい。
【0078】
用途属性割当部20は、ファイルのリード頻度に対する複数の種類の閾値FR4,FR5を有する。これらの閾値FR4,FR5の大きさの関係は、SR4>SR5である。また、用途属性割当部20は、経過時間dに対する複数の種類の閾値T1、T2を有する。これらの閾値T1、T2の大きさの関係は、T1<T2である。
【0079】
用途属性割当部20は、ファイルのリード頻度FrがSR4を超え、かつ経過時間dが閾値T1より短いとき(ステップS503のYES)、そのファイルのデータがR/W重視SSD以外のSSDにある場合(ステップS504のNO)、そのファイルのデータを、R/W重視SSD、R重視SSD、W重視SSD、属性無しSSDの序列に従って、現在のSSDよりも上位のSSDに移動させる(ステップS505)。ここで、現在のSSDよりも上位のSSDとは、例えば、1つ上位のSSD、あるいは予め決められた数だけ上位のSSDである。ファイルのデータがR/W重視SSDにある場合(ステップS504のYES)、そのファイルのデータの移動処理はしない。
【0080】
用途属性割当部20は、ファイルのリード頻度FrがSR5より小さく、かつ経過時間dが閾値T2より長いとき(ステップS506のYES)、そのファイルのデータが属性無しSSD以外のSSDにある場合(ステップS507のNO)、そのファイルのデータを属性無しSSDに移動させる(ステップS507)。ファイルのデータが属性無しSSDにある場合(ステップS507のYES)、そのファイルのデータの移動処理はしない。
【0081】
用途属性割当部20は、ファイルのリード頻度FrがSR4を超え、かつ経過時間dが閾値T1より小さいこと(ステップS503のYES)、ファイルのリード頻度FrがSR5より小さく、かつ経過時間dが閾値T2より大きいこと(ステップS506のYES)のどちらも満足しない場合、そのファイルのデータの移動処理はしない。
【0082】
なお、ファイルのデータを他の用途属性のSSDに移動させようとする際、移動先のSSDに十分な空き容量がない場合、用途属性割当部20は、R/W重視SSD、R重視SSD、W重視SSD、属性無しSSDの間で予め決められた序列に従って、移動先よりも上位または下位のSSDへの移動を順次試みる。
【0083】
このようにファイルのデータを、実際のリード頻度および前回のリードからの経過時間に適した用途属性のSSD40に移動させることができる。これにより、例えば、実際にはリード頻度が高くなく前回のリードからの経過時間も長いファイルのデータで、R/W重視SSD、R重視SSDなど、物理的特性が比較的に優れたSSD40の容量が消費されるという無駄を効果的に除去することができる。逆に、実際にはリード頻度が高いファイルのデータがW重視SSD、属性無しSSDなど、物理的特性が比較的劣ったSSD40に保存されたままになることを回避することができる。これにより、ストレージの見かけ上の応答性を向上させることができる。
【0084】
<変形例1>
上記の実施形態では、ファイルのリード頻度などを計算して、ファイル全体のデータをSSD40間で移動させるものとした。変形例として、用途属性割当部20は、物理アドレスによって区分されるデータ部分毎のリード頻度を管理して、1つのファイルのデータにおいてリード頻度が高い部分とそうでない部分とが、別々の用途属性のSSD40に分散して保存されるようにしてもよい。
【0085】
<変形例2>
上記の実施形態では、SSD40の単位で物理的特性を評価してその物理的特性に見合った最適用途を示す用途属性をSSD40に割り当てることとした。SSD40の物理的特性は、そのSSD40内に搭載される複数のフラッシュメモリチップの物理的特性の合成値と言える。ここでフラッシュメモリチップ毎にBadblock発生回数、リード時間、ライト時間などの測定データを含む履歴情報を得ることができれば、用途属性割当部20は、1つのSSD内のフラッシュメモリチップの単位で特性評価項目毎のランクを設定することができ、フラッシュメモリチップの単位で用途属性を割り当てることができる。
【0086】
<変形例3>
以上、NAND型フラッシュメモリを搭載したSSDを用いた場合について説明したが、本技術は、NAND型フラッシュメモリ以外の半導体メモリを搭載したSSDにも適用できる。また、半導体メモリを搭載したストレージであればSSD以外のものにも本技術は適用可能である。
【0087】
<変形例4>
用途属性SSD間でのファイル移動に関連する変形例として、映像データの再生において、再生中の位置より、例えば数分程度先の位置にある映像データを、他のSSDからR重視SSDに移動させる、という方法が考えられる。この方法によると、SSDからのリードに伴うリアルタイム再生において、リードの遅れによる再生映像の乱れを最小に抑えることができるという利点がある。
【0088】
なお、本技術は以下のような構成も取ることができる。
(1)全体として1つのストレージを構成する複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を少なくとも一部の半導体メモリに割り当てる割当部と、
データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する判定部と
を具備する情報処理装置。
(2)前記(1)に記載の情報処理装置であって、
前記データに対して所定の演算処理を実行し、この演算処理されたデータのライト命令に属性指定フラグを付加する処理部をさらに具備し、
前記判定部は、前記処理部から前記ライト命令を受け取り、このライト命令に付加された前記属性指定フラグをもとに前記最適な用途属性の半導体メモリを判定する
情報処理装置。
(3)前記(1)または(2)に記載の情報処理装置であって、
前記割当部は、少なくとも、Badblock発生率、リード時間、ライト時間を含む複数の特性評価項目毎に複数の半導体メモリそれぞれの物理的特性を評価し、これらの評価結果をもとに、前記複数の半導体メモリの一部の半導体メモリにリード/ライト重視の用途属性を割り当て、他の一部の半導体メモリにリード重視の用途属性を割り当て、さらに他の一部の半導体メモリにライト重視の用途属性を割り当てる
情報処理装置。
(4)前記(1)から(3)のいずれかに記載の情報処理装置であって、
前記割当部は、ファイルのデータのリード頻度をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させる
情報処理装置。
(5)前記(4)に記載の情報処理装置であって、
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時と前記リード回数の値をもとに前記リード頻度を計算する
情報処理装置。
(6)前記(4)または(5)に記載の情報処理装置であって、
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として少なくとも第1の閾値、第2の閾値および第3の閾値(但し、第1の閾値<第2の閾値<第3の閾値)を有し、
前記リード頻度が前記第3の閾値を超えたとき、そのファイルのデータが前記リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第1の半導体メモリに移動させ、
前記リード頻度が前記第2の閾値を超え、かつ第3の閾値以下であるとき、そのファイルのデータが前記リード重視の用途属性が割り当てられた第2の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第2の半導体メモリに移動させ、
前記リード頻度が前記第1の閾値を超え、かつ前記第2の閾値以下であるとき、そのファイルのデータが前記ライト重視の用途属性が割り当てられた第3の半導体メモリにある場合、そのファイルのデータを前記第3の半導体メモリに移動させ、
前記リード頻度が前記第1の閾値以下であるとき、そのファイルのデータが前記用途属性が割り当てられていない第4の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第4の半導体メモリに移動させる
情報処理装置。
(7)前記(1)から(3)のいずれかに記載の情報処理装置であって、
前記割当部は、ファイルのデータのリード頻度および前回のリードからの経過時間をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させる
情報処理装置。
(8)前記(7)に記載の情報処理装置であって、
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数、最新のリード時刻を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時、前記リード回数の値、および前記最新のリード時刻をもとに前記リード頻度および経過時間を計算する
情報処理装置。
(9)前記(7)または(8)のいずれかに記載の情報処理装置であって、
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として第1のリード頻度閾値および第2のリード頻度閾値(但し、第1のリード頻度閾値>第2のリード頻度閾値)を有するとともに、前記前回のリードからの経過時間に対する閾値として第1の経過時間閾値および第2の経過時間閾値(但し、第1の経過時間閾値<第2の経過時間閾値)を有し、
前記リード頻度が前記第1のリード頻度閾値を超え、かつ前記経過時間が第1の経過時間閾値より短いとき、前記ファイルのデータを、リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ、リード重視の用途属性が割り当てられた第2の半導体メモリ、ライト重視の用途属性が割り当てられた第3の半導体メモリ、前記用途属性が割り当てられていない第4の半導体メモリの間で予め決められた序列に従って、当該ファイルのデータが保存されている半導体メモリよりも上位の半導体メモリに移動させ、
前記リード頻度が前記第2のリード頻度閾値より小さく、かつ前記経過時間が第2の経過時間閾値より長いとき、前記ファイルのデータを前記第4の半導体メモリに移動させる
情報処理装置。
【符号の説明】
【0089】
10 処理部
20 用途属性割当部
30 ディスパッチャ部
40 SSD
100 情報処理装置

【特許請求の範囲】
【請求項1】
全体として1つのストレージを構成する複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を少なくとも一部の半導体メモリに割り当てる割当部と、
データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する判定部と
を具備する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記データに対して所定の演算処理を実行し、この演算処理されたデータのライト命令に属性指定フラグを付加する処理部をさらに具備し、
前記判定部は、前記処理部から前記ライト命令を受け取り、このライト命令に付加された前記属性指定フラグをもとに前記最適な用途属性の半導体メモリを判定する
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記割当部は、少なくとも、Badblock発生率、リード時間、ライト時間を含む複数の特性評価項目毎に複数の半導体メモリそれぞれの物理的特性を評価し、これらの評価結果をもとに、前記複数の半導体メモリの一部の半導体メモリにリード/ライト重視の用途属性を割り当て、他の一部の半導体メモリにリード重視の用途属性を割り当て、さらに他の一部の半導体メモリにライト重視の用途属性を割り当てる
情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
前記割当部は、ファイルのデータのリード頻度をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させる
情報処理装置。
【請求項5】
請求項4に記載の情報処理装置であって、
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時と前記リード回数の値をもとに前記リード頻度を計算する
情報処理装置。
【請求項6】
請求項5に記載の情報処理装置であって、
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として少なくとも第1の閾値、第2の閾値および第3の閾値(但し、第1の閾値<第2の閾値<第3の閾値)を有し、
前記リード頻度が前記第3の閾値を超えたとき、そのファイルのデータが前記リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第1の半導体メモリに移動させ、
前記リード頻度が前記第2の閾値を超え、かつ第3の閾値以下であるとき、そのファイルのデータが前記リード重視の用途属性が割り当てられた第2の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第2の半導体メモリに移動させ、
前記リード頻度が前記第1の閾値を超え、かつ前記第2の閾値以下であるとき、そのファイルのデータが前記ライト重視の用途属性が割り当てられた第3の半導体メモリにある場合、そのファイルのデータを前記第3の半導体メモリに移動させ、
前記リード頻度が前記第1の閾値以下であるとき、そのファイルのデータが前記用途属性が割り当てられていない第4の半導体メモリ以外の半導体メモリにある場合、そのファイルのデータを前記第4の半導体メモリに移動させる
情報処理装置。
【請求項7】
請求項3に記載の情報処理装置であって、
前記割当部は、ファイルのデータのリード頻度および前回のリードからの経過時間をもとに、異なる用途属性が割り当てられた前記複数の半導体メモリ間で当該ファイルのデータを移動させる
情報処理装置。
【請求項8】
請求項7に記載の情報処理装置であって、
前記割当部は、ファイル名、ファイル作成日時、論理アドレス、前記半導体メモリの物理アドレス、リード回数、最新のリード時刻を互いに対応付けて管理テーブル上で管理し、前記管理テーブルに登録された前記ファイル作成日時、前記リード回数の値、および前記最新のリード時刻をもとに前記リード頻度および経過時間を計算する
情報処理装置。
【請求項9】
請求項8に記載の情報処理装置であって、
前記割当部は、前記ファイルのデータのリード頻度に対する評価用の閾値として第1のリード頻度閾値および第2のリード頻度閾値(但し、第1のリード頻度閾値>第2のリード頻度閾値)を有するとともに、前記前回のリードからの経過時間に対する閾値として第1の経過時間閾値および第2の経過時間閾値(但し、第1の経過時間閾値<第2の経過時間閾値)を有し、
前記リード頻度が前記第1のリード頻度閾値を超え、かつ前記経過時間が第1の経過時間閾値より短いとき、前記ファイルのデータを、リード/ライト重視の用途属性が割り当てられた第1の半導体メモリ、リード重視の用途属性が割り当てられた第2の半導体メモリ、ライト重視の用途属性が割り当てられた第3の半導体メモリ、前記用途属性が割り当てられていない第4の半導体メモリの間で予め決められた序列に従って、当該ファイルのデータが保存されている半導体メモリよりも上位の半導体メモリに移動させ、
前記リード頻度が前記第2のリード頻度閾値より小さく、かつ前記経過時間が第2の経過時間閾値より長いとき、前記ファイルのデータを前記第4の半導体メモリに移動させる
情報処理装置。
【請求項10】
割当部が、全体として1つのストレージを構成する複数の半導体メモリそれぞれの物理的特性を評価して、評価結果に見合った用途属性を少なくとも一部の半導体メモリに割り当て、
決定部が、データのライト命令に対して当該データのライト先として最適な用途属性の前記半導体メモリを判定する
情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−61847(P2013−61847A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−200452(P2011−200452)
【出願日】平成23年9月14日(2011.9.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】