(57)【要約】【課題】データストレージ装置に関する小サイズデータ領域での読出時間の短縮を実現し、小サイズデータ領域での読出速度向上を図ること。【解決手段】本発明の一実施態様にかかるデータストレージ装置は、第１のデータストレージデバイスと、第１のデータストレージデバイスよりも読出し時間が長い第２のデータストレージデバイスと、元データをデータ頭に近い第１の部分及びデータ頭からより遠い第２の部分を含むように分割し、第１の部分を第１のデータストレージデバイスに、第２の部分を第２のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第１のデータと第２のデータとを結合して出力するストレージコントローラと、を具備することを特徴とする。【選択図】図３
2020177362.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータストレージデバイスと、
第１のデータストレージデバイスよりも読出し時間が長い第２のデータストレージデバイスと、
元データをデータ頭に近い第１の部分及びデータ頭からより遠い第２の部分を含むように分割し、第１の部分を第１のデータストレージデバイスに、第２の部分を第２のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第１のデータと第２のデータとを結合して出力するストレージコントローラと、
を具備することを特徴とするデータストレージ装置。
【請求項２】
請求項１記載のデータストレージ装置において、第１のデータストレージデバイスはＢ４−Ｆｌａｓｈであり、第２のデータストレージデバイスはＮＡＮＤ  Ｆｌａｓｈであることを特徴とするデータストレージ装置。
【請求項３】
請求項１記載のデータストレージ装置において、第２のデータストレージデバイスはＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈであり、さらに、第２のデータストレージデバイスよりも読出し時間が長いＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈからなる第３のデータストレージデバイスを有し、
ストレージコントローラは元データをデータ頭に近い第１の部分及びデータ頭から遠い第２の部分に加えて、第２の部分よりもデータ頭からより遠い第３の部分とを含むように分割し、第１の部分を第１のデータストレージデバイスに、第２の部分を第２のデータストレージデバイスに、第３の部分を第３のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第１のデータと第２のデータと第３のデータとを結合して出力することを特徴とするデータストレージ装置。
【請求項４】
請求項１記載のデータストレージ装置において、さらに、第１のデータストレージデバイスよりも読出し時間が短いＭＲＡＭからなる第４のデータストレージデバイスを有し、
ストレージコントローラは格納すべきデータをデータ頭に最も近い第４の部分と、第４の部分よりデータ頭から遠い第１の部分と、第１の部分よりもデータ頭からより遠い第２の部分と、を含むように分割し、第４の部分を第４のデータストレージデバイスに、第１の部分を第１のデータストレージデバイスに、第２の部分を第２のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第４のデータと第１のデータと第２のデータとを結合して出力することを特徴とするデータストレージ装置。
【請求項５】
請求項１記載のデータストレージ装置において、第１の部分と第２の部分を区画する境界にかかる情報を保存する記憶領域を有することを特徴とするデータストレージ装置。
【請求項６】
第１のデータストレージデバイスと、
第１のデータストレージデバイスよりも読出し時間が長い第２のデータストレージデバイスと、
格納すべきデータを、データサイズが第１の所定範囲である場合には第１の群に、そのデータサイズが第１の所定範囲よりも大きな第２の所定範囲である場合には第２の群に仕分けし、第１の群に属するデータを第１のデータストレージデバイスに、第２の群に属するデータを第２のデータストレージデバイスにそれぞれ格納するストレージコントローラと、
を具備することを特徴とするデータストレージ装置。
【請求項７】
請求項６記載のデータストレージ装置において、第１のデータストレージデバイスはＢ４−Ｆｌａｓｈであり、第２のデータストレージデバイスはＮＡＮＤ  Ｆｌａｓｈであることを特徴とするデータストレージ装置。
【請求項８】
請求項６記載のデータストレージ装置において、第２のデータストレージデバイスはＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈであり、さらに、第２のデータストレージデバイスよりも読出し時間が長いＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈからなる第３のデータストレージデバイスを有し、
ストレージコントローラはデータサイズが第２の所定範囲よりも大きな第３の所定範囲である場合には第３の群に仕分けし、第１の群に属するデータを第１のデータストレージデバイスに、第２の群に属するデータを第２のデータストレージデバイスに、第３の群に属するデータを第３のストレージデバイスにそれぞれ格納することを特徴とするデータストレージ装置。
【請求項９】
請求項６記載のデータストレージ装置において、さらに、第１のデータストレージデバイスよりも読出し時間が短いＭＲＡＭからなる第４のデータストレージデバイスを有し、
ストレージコントローラはデータサイズが第１の所定範囲よりも小さな第４の所定範囲である場合には第４の群に仕分けし、第４の群に属するデータを第４のデータストレージデバイスに、第１の群に属するデータを第１のデータストレージデバイスに、第２の群に属するデータを第２のストレージデバイスにそれぞれ格納することを特徴とするデータストレージ装置。
【請求項１０】
請求項６記載のデータストレージ装置において、第１の群と第２の群を仕分けする境界にかかる情報を保存する記憶領域を有することを特徴とするデータストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージ装置（Ｄａｔａ  Ｓｔｏｒａｇｅ  Ａｐｐａｒａｔｕｓ）に関する。より詳細には、データ分割保存技術とデータ仕分保存技術を実装したデータストレージ装置に関する。
【背景技術】
【０００２】
ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｃ）などのデータストレージ装置にはデータストレージデバイス（Ｄａｔａ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ、例えばＮＡＮＤ  Ｆｌａｓｈ）が用いられる。このデータストレージデバイスにＮＡＮＤ  Ｆｌａｓｈを用いた場合、データ演算処理装置（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））から読出し命令を受けてから実際にデータを出力するまでのランダムデータ第１読出し時間が極端に長い。
【０００３】
このＮＡＮＤ  Ｆｌａｓｈのランダムデータ第１読出し時間の遅さの原因は、内部のメモリセルからデータをデータ・レジスタにデータを配列するまでの内部準備時間が３０μ秒から１００μ秒かかることにある。実際のデータ演算処理装置がデータ読出し命令を発してから、データストレージ装置からデータを受け取り始めるまでの時間は、このデータストレージデバイスのデータ出力時間にデータストレージ装置内のストレージコントローラによる処理時間も加えられる。
【０００４】
従来のＳＳＤ型データストレージ装置は５１２Ｂから２５６ＫＢデータまでの小サイズデータ領域で読出し速度が遅い。このような従来のＳＳＤ型データストレージ装置高速化を達成するためには、（１）ストレージコントローラの制御時間、（２）メモリデバイスのデータ内部準備時間、（３）メモリデバイスのデータ外部転送時間、をそれぞれ短縮するほかない。
【０００５】
従来技術において、ストレージコントローラの改良は進められており、制御時間は９μ秒程度のものが発表されている（２０１８  ＩＳＳＩ  Ｓａｍｓｕｎｇ社発表）。ＮＡＮＤ  Ｆｌａｓｈのデータ内部準備時間は一般的には７５μ秒程度、データ外部転送時間は１０ｎ秒／Ｂｙｔｅ程度である。大サイズデータにおいてはストレージコントローラの制御時間の短縮、ＮＡＮＤ  Ｆｌａｓｈの性能改良等により一定の読出速度の改善は見込まれる。
【０００６】
しかしながら、通常のデータストレージ装置に使われるＮＡＮＤ  Ｆｌａｓｈでは、小サイズデータにおいて読出速度が極めて低い。小サイズデータ領域では読出時間が４５μ秒以下になることはない。小サイズデータ領域で、データストレージ装置において通常のＮＡＮＤ  Ｆｌａｓｈを用いて、例えば、１０μｓｅｃの実現を図ることは不可能である。
【０００７】
さらに、データ保存装置の速度改善を目的として、メモリデバイスの多チャンネル化が検討されているが、やはり、大サイズデータ領域で顕著な速度改善は認められるものの、小サイズデータ領域ではほとんど効果がない。これは、ＮＡＮＤ  Ｆｌａｓｈのデータ内部準備時間が、多チャンネル化した全てのデバイスにおいても同時に必要であるため、１６ＫＢ以下のデータサイズ領域で読出時間改善効果がほとんど出ないことが理由である。但し、ＮＡＮＤ  Ｆｌａｓｈのデータ外部転送時間は多チャネル化により大幅に改善する。大サイズデータ領域での多チャンネル化の顕著な効果の理由となるが、今回の小サイズデータ領域での高速化には寄与しない。
【０００８】
以上のとおり、従来技術では、データ保存装置による小サイズデータ領域での読出時間が長く、読出し速度が低い問題は解決することができない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１５−４６１７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、データストレージ装置に関する小サイズデータ領域での読出時間の短縮を実現し、小サイズデータ領域での読出速度向上を図ることを課題としている。
【００１１】
ＮＡＮＤ  Ｆｌａｓｈは、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）品とＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）品が入手可能である。一般に、読出速度向上にはＳＬＣ品の採用が効果はある。しかし、ＭＬＣ品に代えてＳＬＣ品を全面的に採用するのは大幅にコストが上昇する。ＳＬＣ品はＭＬＣ品の５倍程度のコストがかかる。そこで、本発明は、ＭＬＣ品の利用を前提にしてもなおコストが大幅に上がらない速度改善対策を目的としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明の一実施態様においては、本発明の一実施態様にかかるデータストレージ装置は、第１のデータストレージデバイスと、第１のデータストレージデバイスよりも読出し時間が長い第２のデータストレージデバイスと、元データをデータ頭に近い第１の部分及びデータ頭からより遠い第２の部分を含むように分割し、第１の部分を第１のデータストレージデバイスに、第２の部分を第２のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第１のデータと第２のデータとを結合して出力するストレージコントローラと、を具備することを特徴とする。
【００１３】
また、本発明の他の実施態様においては、第１のデータストレージデバイスと、第１のデータストレージデバイスよりも読出し時間が長い第２のデータストレージデバイスと、格納すべきデータを、データサイズが第１の所定範囲である場合には第１の群に、そのデータサイズが第１の所定範囲よりも大きな第２の所定範囲である場合には第２の群に仕分けし、第１の群に属するデータを第１のデータストレージデバイスに、第２の群に属するデータを第２のデータストレージデバイスにそれぞれ格納するストレージコントローラと、を具備することを特徴とする。
【図面の簡単な説明】
【００１４】
【図１】本発明の各実施形態に係るデータストレージ装置の読出し処理時間を示した図である。
【図２】本発明の各実施形態に係るデータストレージ装置に用いるデータストレージデバイスのデータ読出し時間を示した図である。
【図３】本発明の第１の実施形態に係るデータストレージ装置の構成図である。
【図４】本発明の第１の実施形態に係るデータストレージ装置の構成図である。
【図５】本発明の第１の実施形態に係るストレージコントローラの動作を示す図である。
【図６】本発明の第１の実施形態に係るストレージコントローラの動作を示す図である。
【図７】本発明の第１の実施形態に係るストレージコントローラの具体例１を示す図である。
【図８】本発明の第１の実施形態に係るデータストレージ装置の変形例１を示す図である。
【図９】本発明の第１の実施形態に係るデータストレージ装置の変形例１を示す図である。
【図１０】本発明の第１の実施形態に係るデータストレージ装置の変形例２を示す図である。
【図１１】本発明の第２の実施形態に係るデータストレージ装置の動作を示す図である。
【図１２】本発明の第２の実施形態に係るデータストレージ装置の動作を示す図である。
【図１３】本発明の第２の実施形態に係るストレージコントローラの具体例１を示す図である。
【図１４】本発明の第２の実施形態に係るストレージコントローラの具体例１を示す図である。
【図１５】本発明の第１又は第２の実施形態に係るデータストレージ装置の変形例３を示す図である。
【図１６】本発明の第１又は第２の実施形態に係るデータストレージ装置の変形例４を示す図である。
【図１７】データストレージ装置の動作に必要な各時間を示した図表である。
【図１８】データストレージ装置の読出時間（μ秒）を示した図表である。
【図１９】データストレージ装置の読出速度（ＭＢ／秒）を示した図表である。
【図２０】第１の実施態様の具体例１の読出時間を示した図表である。
【図２１】第１の実施態様の具体例１の読出時間を示したグラフである。
【図２２】第１の実施態様の具体例１の読出速度を示した図表である。
【図２３】第１の実施態様の具体例１の読出速度を示したグラフである。
【図２４】第１の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出時間を示した図表である。
【図２５】第１の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出時間を示したグラフである。
【図２６】第１の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出速度を示した図表である。
【図２７】第１の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出速度を示したグラフである。
【図２８】第２の実施態様の具体例１の読出時間を示した図表である。
【図２９】第２の実施態様の具体例１の読出時間を示したグラフである。
【図３０】第２の実施態様の具体例１の読出速度を示した図表である。
【図３１】第２の実施態様の具体例１の読出速度を示したグラフである。
【図３２】第２の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出時間を示した図表である。
【図３３】第２の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出時間を示したグラフである。
【図３４】第２の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出速度を示した図表である。
【図３５】第２の実施態様の具体例２（ダイレクトアクセスＭＲＡＭ）の読出速度を示したグラフである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明に係るデータストレージ装置について説明する。本発明に係るデータストレージ装置は、以下に示す実施の形態の記載内容に限定して解釈されるものではない。なお、本実施の形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
［第１の実施形態］
図１は、本発明の各実施形態に係るデータストレージ装置１００の読出し処理時間を示した図である。ＣＰＵ等のデータ演算処理装置２００は読出し命令をデータストレージ装置１００に送る。データストレージ装置１００は、ストレージコントローラ１１０とデータストレージデバイス１２０とから構成される。ストレージコントローラ１１０はデータストレージデバイス１２０に読出し命令を発する。ストレージコントローラ１１０がデータストレージデバイス１２０に読出し命令を発するまでの読出し制御処理時間が制御処理時間１である。次いで、読出し命令を受けたデータストレージデバイス１２０がデータを出力する時間がデータストレージデバイスデータ処理時間であり、これは、データ内部準備時間とデータ外部転送時間とから構成される。次いで、データストレージデバイスが出力した読出しデータをストレージコントローラ１１０がデータ演算処理装置２００に出力制御するのにかかる出力制御処理時間が制御処理時間２である。データストレージ装置１００がデータの読出しにかかる時間は、制御処理時間１＋データ内部準備時間＋データ外部転送時間＋制御処理時間２の合計時間である。
【００１７】
図２は、本発明の各実施形態に係るデータストレージ装置１００に用いるデータストレージデバイス１２０のデータ読出し時間を示した図である。データ内部準備時間は、データストレージデバイス１２０が読出し命令を受け取ってから、データの頭出し（最初のデータの出力、ｆｉｒｓｔ  ｄａｔａ  ｏｕｔｐｕｔ）をするまでの時間である。データストレージデバイスにはページバッファが供えられており、このページバッファに読出したデータがセットされる。そして、このようにページバッファにセットされたデータが外部に転送される。データ外部転送時間は、データが外部に転送される時間である。
【００１８】
データ内部準備時間は、メモリデバイスの種類によって異なる。ＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈでは例えば３５μ秒であり、ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈでは例えば７５μ秒である。株式会社ポトスセミコンダクタが販売するＢ４−Ｆｌａｓｈにおいては例えば０．１μ秒である。
【００１９】
Ｂ４−Ｆｌａｓｈは、Ｂ４−ＨＥ（Ｂａｃｋ  Ｂｉａｓ  ａｓｓｉｓｔｅｄ  Ｂａｎｄ  ｔｏ  Ｂａｎｄ  ｔｕｎｎｅｌｉｎｇ、  Ｈｏｔ  Ｅｌｅｃｔｒｏｎ）を用いた書き込み動作原理を採用したＮＯＲフラッシュメモリである。ＮＯＲフラッシュメモリであることから、ランダムアクセスが極めて高速である。
【００２０】
データ外部転送時間は、メモリデバイスの種類によって変わることもあれば変わらないこともある。一例として、ＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈ、ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈでは例えば１０ｎ秒×データサイズ（Ｂｙｔｅ）である。Ｂ４−Ｆｌａｓｈにおいては例えば（１０ｎ秒〜２０ｎ秒）×データサイズ（Ｂｙｔｅ）である。
【００２１】
図３は、本発明の第１の実施形態に係るデータストレージ装置１００のデータ内部準備時間を説明する図である。データストレージ装置１００はデータ演算処理装置２００と接続されている。データストレージ装置１００はストレージコントローラ１１０とｎ個のデータストレージデバイス１２１〜１２４からなる。ｎ個のデータストレージデバイス１２１〜１２４のデータ内部準備時間は、それぞれ、ｔ１、ｔ２〜ｔｎであり、これらはすべて同じではない。例えば、ｔ１が小さく、ｔ２〜ｔｎは大きい場合がある。ｔ１＜ｔ２＜ｔｎ−１＝ｔｎでもよい。
【００２２】
図４は、本発明の第１の実施形態に係るデータストレージ装置１００のデータ外部転送時間を説明する図である。ｎ個のデータストレージデバイス１２１〜１２４のデータ外部転送時間は、それぞれ、ｓ１、ｓ２〜ｓｎであり、これらはすべて同じではない。例えば、ｓ１が小さく、ｓ２〜ｓｎは大きい場合がある。ｓ１＜ｓ２＜ｓｎ−１＝ｓｎでもよい。
【００２３】
図５及び図６に、図３及び図４に示した本発明の第１の実施形態に係るストレージコントローラ１１０の動作を示す。元データは分割前のデータである。最も早い読出し点がデータ頭（Ｄａｔａ  Ｈｅａｄｅｒ）、最も遅い読出し点がデータ最後尾（Ｄａｔａ  Ｔａｉｌ）である。そして、データ読み出し時の出力時系列に沿って、より早い読出し領域からより遅い読出し領域まで並んでいる。ストレージコントローラ１１０は、この元データに、予めの設定により区切りを入れる。区切りは、例えば、Ｖ１、Ｖ２、Ｖ３・・・Ｖｎ−１である。ストレージコントローラ１１０は、元データを最大でｎ個のデータＤ１（データ頭からＶ１以下のデータ）、Ｄ２（Ｖ１を超過し、Ｖ２以下のデータ）、Ｄ３（Ｖ２を超過し、Ｖ３以下のデータ）・・・Ｄｎ（Ｖｎ−１超過データ）に分割する。
【００２４】
図６に示すとおり、最大でｎ個のデータＤ１〜Ｄｎは、それぞれ、読み出し性能（ここでは、データ内部準備時間）が異なる、データストレージデバイス（１）１２１、データストレージデバイス（２）１２２、データストレージデバイス（３）１２３・・・データストレージデバイス（ｎ）１２４に格納される（書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。）。
【００２５】
読み出し性能が異なる、データストレージデバイス（１）１２１、データストレージデバイス（２）１２２、データストレージデバイス（３）１２３・・・データストレージデバイス（ｎ）１２４は、データ内部準備時間が異なるのではなく、または、これとともに、データ外部転送時間が異なるものであってもよい。
【００２６】
図７に、図５及び図６に示した本発明の第１の実施形態に係るストレージコントローラ１１０の具体例１を示す。分割前の元データの最大サイズは１０２４ＫＢである。これをストレージコントローラ１１０が８ＫＢ、６４ＫＢでデータに区切りを入れる。元データは、データ頭から８ＫＢのデータ、５６ＫＢのデータ、残りの９６０ＫＢのデータに分割される。そして、データ頭から８ＫＢのデータは高速（データ内部準備時間が最も短い）なＢ４−Ｆｌａｓｈに、５６ＫＢのデータは中速（データ内部準備時間が中程度）のＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、残りの９６０ＫＢのデータは低速（データ内部準備時間が最も長い）なＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、それぞれ格納される（書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。）。
【００２７】
他の具体例２としてＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いる例もある。ＭＲＡＭはＢ４−ＦｌａｓｈやＮＡＮＤ  Ｆｌａｓｈと異なり、物理アドレスと論理アドレスの変換を行わないダイレクトアクセスを利用できる。この場合、ストレージコントローラ１１０が提供するファイルシステムを通さないことから極めて高速な動作が可能である。そして、ストレージコントローラ１１０の制御処理時間１及び制御処理時間２の合計９μ秒だけさらに高速になる。分割前の元データの最大サイズは１０２４ＫＢである。これをストレージコントローラ１１０が１ＫＢ、８ＫＢ、６４ＫＢでデータに区切りを入れる。元データは、データ頭から１ＫＢのデータ、７ＫＢのデータ、５６ＫＢのデータ、残りの９６０ＫＢのデータに分割される。そして、データ頭から１ＫＢのデータは最高速（制御処理時間がゼロであるとともにデータ内部準備時間が極めて短い）なＭＲＡＭに、７ＫＢのデータは高速（データ内部準備時間が短い）なＢ４−Ｆｌａｓｈに、５６ＫＢのデータは中速（データ内部準備時間が中程度）のＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、残りの９６０ＫＢのデータは低速（データ内部準備時間が最も長い）なＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、それぞれ格納される（書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。）。
【００２８】
［変形例１：分割情報の保存］
図８は本発明の第１の実施形態に係るデータストレージ装置１００の変形例１のデータ書き込み動作を示す図である。分割情報（元データを分割する際の区切りを示すデータであるＶ１、Ｖ２、Ｖ３・・・Ｖｎ−１を含む）を保存する保存領域１３０が設けられている。保存領域１３０はストレージコントローラ１１０の内部にあってもよいし、ストレージコントローラ１１０の外部に設けられていてもよい。ストレージコントローラ１１０は、これら分割情報を保存領域１３０に保存する。ストレージコントローラ１１０は、データ演算処理装置２００から所定のコマンドを受信することで、元データを分割する際の区切りを示すデータであるＶ１、Ｖ２、Ｖ３・・・Ｖｎ−１の具体的値を設定できるようにしてもよい。
【００２９】
図９は本発明の第１の実施形態に係るデータストレージ装置の変形例１のデータ読み出し動作を示す図である。データ演算処理装置２００からデータ読み出し要求があると、ストレージコントローラ１１０は分割情報の保存領域１３０から分割情報を読み込み、この値に基づいて、データストレージデバイス１２１〜１２４から読み出しを行う。このようにして、読み出された分割データＤ１、Ｄ２、Ｄ３及びＤｎは再結合されて、データ演算処理装置２００にデータ出力される。
【００３０】
［変形例２：元データの保存］
図１０は本発明の第１の実施形態に係るデータストレージ装置１００の変形例２を示す図である。上記実施形態に加えて、データストレージデバイス１４０が追加されている。このデータストレージデバイス１４０には元データをそのまま格納する。この結果、分割データと分割前データの整合性が確保される。特に、上記変形例２とともに用いる場合、分割情報が変更されても、元のデータを復元できるという効果がある。
【００３１】
［第２の実施形態］
図１１は本発明の第２の実施形態に係るストレージコントローラ１１０の動作を示す。元データＤａｔａ１、Ｄａｔａ２、・・・Ｄａｔａｍはさまざまなデータサイズを有する。ストレージコントローラ１１０は、この各元データをデータサイズ毎に仕分けをする。しきい値となるデータサイズは、Ｖ１、Ｖ２、Ｖ３・・・Ｖｎ−１（単位、Ｂｙｔｅ）である。ストレージコントローラ１１０は、各元データを１群（データサイズがＶ１以下のデータ）、２群（データサイズがＶ１を超過し、Ｖ２以下のデータ）、３群（データサイズがＶ２を超過し、Ｖ３以下のデータ）・・・ｎ群（データサイズがＶｎ−１超過のデータ）に仕分ける。
【００３２】
図１２は本発明の第２の実施形態に係るストレージコントローラ１１０の動作（続き）を示す。ストレージコントローラ１１０によって仕分けされた元データが示されている。１群にはＤａｔａ３が、２群にはＤａｔａ４が、３群にはＤａｔａ１及びＤａｔａ６が、・・・ｎ群にはＤａｔａ２及びＤａｔａｍがそれぞれ振り分けられている。ストレージコントローラ１１０は、これら群に仕分けされたデータを、それぞれ、読み出し性能（ここでは、データ内部準備時間）が異なるデータストレージデバイス１２０に格納する。１群のデータはデータストレージデバイス（１）１２１に、２群のデータはデータストレージデバイス（２）１２２に、３群のデータはデータストレージデバイス（３）１２３に、ｎ群のデータはデータストレージデバイス（ｎ）１２４にそれぞれ格納される。
【００３３】
読み出し性能が異なる、データストレージデバイス（１）１２１、データストレージデバイス（２）１２２、データストレージデバイス（３）１２３・・・データストレージデバイス（ｎ）１２４は、データ内部準備時間が異なるのではなく、または、これとともに、データ外部転送時間が異なるものであってもよい。
【００３４】
図１３及び１４に、図１１及び１２に示した本発明の第２の実施形態に係るストレージコントローラ１１０の具体例１を示す。仕分け前の元データには様々なデータサイズがある。これをストレージコントローラ１１０が８ＫＢ、６４ＫＢをしきい値にして仕分けをする。１群は８ＫＢ以下のデータサイズのデータ、２群は８ＫＢを超過し６４ＫＢ以下のデータサイズのデータ、３群は６４ＫＢを超過するデータサイズのデータである。そして、ストレージコントローラ１１０は、１群のデータを高速Ｂ４−Ｆｌａｓｈに、２群のデータをＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、３群のデータをＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈにそれぞれ格納する。
【００３５】
他の具体例２としてＭＲＡＭを用いる例もある。仕分け前の元データには様々なデータサイズがある。これをストレージコントローラ１１０が１ＫＢ、８ＫＢ、６４ＫＢをしきい値にして仕分けをする。１群は１ＫＢ以下のデータサイズのデータ、２群は１ＫＢを超過し８ＫＢ以下のデータサイズのデータ、３群は８ＫＢを超過し６４ＫＢ以下のデータサイズのデータ、４群は６４ＫＢを超過するデータサイズのデータである。そして、ストレージコントローラ１１０は、１群のデータをダイレクトアクセスＭＲＡＭに、２群のデータを高速Ｂ４−Ｆｌａｓｈに、３群のデータをＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、４群のデータをＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈにそれぞれ格納する。
【００３６】
第２の実施形態にかかるデータストレージ装置１００がデータ演算処理装置２００からデータの読出し命令を受けると、ストレージコントローラ１１０は対応するデータが格納されているデータストレージデバイスからデータを読み出す。そして、読み出したデータをデータ演算処理装置２００に転送する。
【００３７】
［変形例３：データストレージデバイス群等を用いる例］
図１５は本発明の第１又は第２の実施形態に係るデータストレージ装置１００の変形例３を示す図である。同一のメモリ特性（内部準備時間やデータ転送時間等の読み出し性能を含む各種の特性）を有する複数のデータストレージデバイスがグループ化されている。データストレージデバイス（１−１）１２１１〜（１−ｍ１）１２１ｍは同一のメモリ特性ｃ１を有する。データストレージデバイス（２−１）１２２１〜（２−ｍ２）１２２ｍは同一のメモリ特性ｃ２を有する。データストレージデバイス（ｎ−１）１２ｎ１〜（ｎ−ｍｎ）１２ｎｍは同一のメモリ特性ｃｎを有する。ストレージコントローラ１１０は第１の実施形態にあっては元データをｎ分割してメモリ特性に応じて分割されたデータを格納し、第２の実施形態にあっては元データをｎ群に仕分けしてそれぞれ異なるグループのデータストレージデバイス群に格納する。
【００３８】
データストレージデバイス（群）はそれぞれがＮＡＮＤ  ＦｌａｓｈやＢ４−Ｆｌａｓｈのチップであってもよい。ストレージコントローラ１１０は独立したＬＳＩであってもよいし、データストレージデバイス（群）はそれぞれがＮＡＮＤ  ＦｌａｓｈやＢ４−Ｆｌａｓｈのチップ内に設けられてもよい。また、ストレージコントローラ１１０は一つの独立したＬＳＩであってもよいし、メインストレージコントローラと、それぞれが個々のデータストレージデバイス（群）に対応する複数のサブストレージコントローラとから、いわばツリー状に構成してもよい。
【００３９】
一部のデータストレージデバイス１２１（１２１１〜１２１ｍ）はストレージコントローラ１１０とともに１つの半導体チップ中に形成し、その他のデータストレージデバイス１２２（１２２１〜１２２ｍ）〜１２４（１２ｎ１〜１２ｎｍ））は外付けのチップで構成してもよい。
【００４０】
具体的には、データ内部準備時間は極めて短いが小容量のＢ４ーＦｌａｓｈは主としてロジック回路から構成されるストレージコントローラ１１０と混載させ、三次元化が進み極めて製造工程が複雑でロジック回路との混載に適切ではないＮＡＮＤ  Ｆｌａｓｈは外付けの半導体チップで構成する、という例が望ましい。
【００４１】
［変形例４：１つのメモリデバイス内のメモリ特性が異なる複数の領域を用いる例］
図１６は本発明の第１又は第２の実施形態に係るデータストレージ装置１００の変形例４を示す図である。１つのメモリデバイス１５０内に、メモリ特性が異なる複数の領域（ａ１）１５１、（ａ２）１５２、（ａｎ−１）１５ｎ−１、（ａｎ）１５ｎが設けられている。ストレージコントローラ１１０は第１の実施形態にあっては元データをｎ分割してメモリ特性に応じて分割されたデータを格納し、第２の実施形態にあっては元データをｎ群に仕分けしてそれぞれ異なるメモリデバイス内領域に格納する。
【００４２】
変形例４においても、変形例３と組み合わせて、一部のデータストレージデバイス１２１はストレージコントローラ１１０とともに１つの半導体チップ中に形成し、その他のデータストレージデバイス１２２は外付けとし、その外付けのデータストレージデバイス１２２の内部にメモリ特性が異なる複数の領域（ａ２）１５２、（ａ３）１５３を設けてもよい。具体的には、データ内部準備時間は極めて短いが小容量のＢ４ーＦｌａｓｈからなるデータストレージデバイス１２１は主としてロジック回路から構成されるストレージコントローラ１１０と混載させる。そして、三次元化が進み極めて製造工程が複雑でロジック回路との混載に適切ではないＮＡＮＤ  Ｆｌａｓｈからなるデータストレージデバイス１２２は外付けの半導体チップで構成する。そして、データストレージデバイス１２２内にはＳＬＣ領域（ａ２）１５２とＭＬＣ領域（ａ３）１５３が設けられる。
【実施例】
【００４３】
［実施例による検証］
本発明の上記実施形態の効果の検証に用いるデータストレージデバイス１２０は、Ｂ４−Ｆｌａｓｈ、ＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈ、ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈの３種類の組み合わせである。データストレージ装置の動作に必要な各時間を図１７に示した。独立に動作するチャンネル数は４とした。
【００４４】
図１７に示したデータストレージデバイス１２０を用いたデータストレージ装置１００読出時間（μ秒）と読出速度（ＭＢ／秒）は図１８及び１９に示すとおりである。データストレージ装置は、データストレージデバイス１２０にＢ４−Ｆｌａｓｈを用いることで、小データ領域において高速化が実現できる。６４ＫＢｙｔｅで高速化の効果がみえるが、８ＫＢｙｔｅ以下で顕著である。しかし、Ｂ４−ＦｌａｓｈはＮＡＮＤ  Ｆｌａｓｈと比べて高価（ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈの１０倍以上、ＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈの２倍以上）であるため、Ｂ４−Ｆｌａｓｈのみでデータストレージデバイス１２０を構成すると、データストレージ装置が極めて高価になってしまう。
【００４５】
［第１の実施態様の具体例１の検証］
検証に用いた第１の実施態様の具体例１は以下のとおりである。すなわち、分割前の元データの最大サイズは１０２４ＫＢである。これをストレージコントローラ１１０が８Ｋ、６４ＫＢでデータに区切りを入れる。元データは、データ頭から８ＫＢのデータ、５６ＫＢのデータ、残りの９６０ＫＢのデータに分割される。そして、データ頭から８ＫＢのデータは高速（データ内部準備時間が最も短い）なＢ４−Ｆｌａｓｈに、５６ＫＢのデータは中速（データ内部準備時間が中程度）のＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、残りの９６０ＫＢのデータは低速（データ内部準備時間が最も長い）なＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、それぞれ格納される。図２０は第１の実施態様の具体例１の読出時間、図２１はそれをグラフにしたものである。図２２は第１の実施態様の具体例１の読出速度、図２３はそれをグラフにしたものである。
【００４６】
８ＫＢ以下のデータはＢ４−Ｆｌａｓｈ領域のみから読出しする。８ＫＢ超過で６４ＫＢ以下のデータでは当該データの８ＫＢまでのＢ４−Ｆｌａｓｈ領域の部分データと８ＫＢ超過で６４ＫＢ以下のＳＬＣ  ＮＡＮＤ領域の部分データを読出し結合する。６４ＫＢ超過データでは、当該データの８ＫＢまでのＢ４−Ｆｌａｓｈ領域の部分データと８ＫＢ超過で６４ＫＢ以下のＳＬＣ  ＮＡＮＤ領域の部分データ、及び６４ＫＢ超過のＭＬＣ  ＮＡＮＤの部分データを読出し結合する。なお、ＭＬＣ  ＮＡＮＤのデータを読み出す際にはＳＬＣ  ＮＡＮＤ領域の８ＫＢ超過で６４ＫＢ以下の部分データを読み出す前に、ＭＬＣ  ＮＡＮＤ領域のデータを保存制御器のバッファ領域に先読みすることができるためＢ４−ＦｌａｓｈのみやＳＬＣ  ＮＡＮＤのみの場合より高速になる。
【００４７】
このように、第１の実施態様の具体例１によれば、小サイズデータ領域で従来技術の最高速であったＢ４−Ｆｌａｓｈとほぼ変わらぬ速度を実現し、中サイズデータ領域でもほぼ最高速のＢ４−Ｆｌａｓｈと同等の速度が得られている。１２８ＫＢ以降の大サイズデータ領域では改良ＭＬＣ  ＮＡＮＤデータの先読み効果が出ており最高速を実現している。
【００４８】
このような効果を得る為のコストについて検討する。１Ｔ（ｔｅｒａ）Ｂｙｔｅのデータストレージ装置として平均１ＭＢのデータを記憶する装置を考える。保存すべきファイル数は１Ｍ個となる。全てのファイルデータについて８ＫＢのＢ４−Ｆｌａｓｈ領域、５６ＫＢのＳＬＣ  ＮＡＮＤ領域に対してそれぞれ１Ｍ個のデータセットを準備する必要があるため、Ｂ４−Ｆｌａｓｈは８ＧＢ、ＳＬＣ  ＮＡＮＤは５６ＧＢの容量が必要である。しかし、全体容量１ＴＢに対して、Ｂ４−Ｆｌａｓｈで０．８％の容量、ＳＬＣ  ＮＡＮＤで５．６％のメモリ容量を搭載するだけである。ＭＬＣ  ＮＡＮＤのコストに対してＢ４−Ｆｌａｓｈが１０倍のコスト、ＳＬＣ  ＮＡＮＤが５倍のコストとすると、従来データストレージ装置１ＴＢのコストに対して、８％＋２８％＝３６％のコストアップとなるが、性能的には他の技術では実現できない性能が得られる。もし、最高性能を得るために１ＴＢ全体をＢ４−Ｆｌａｓｈで実現した場合、全体コストは１０倍になるので、本実施態様におけるコスト削減効果は大きい。
【００４９】
［第１の実施態様の具体例２の検証］
検証に用いた第１の実施態様の具体例２は以下のとおりである。すなわち、分割前の元データの最大サイズは１０２４ＫＢである。これをストレージコントローラ１１０が１ＫＢ、８ＫＢ、６４ＫＢでデータに区切りを入れる。元データは、データ頭から１ＫＢのデータ、７ＫＢのデータ、５６ＫＢのデータ、残りの９６０ＫＢのデータに分割される。そして、データ頭から１ＫＢのデータは超高速（ダイレクトアクセスでデータ内部準備時間が最も短い）のＭＲＡＭ、７ＫＢのデータは高速（データ内部準備時間が短い）なＢ４−Ｆｌａｓｈに、５６ＫＢのデータは中速（データ内部準備時間が中程度）のＳＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、残りの９６０ＫＢのデータは低速（データ内部準備時間が最も長い）なＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈに、それぞれ格納される。ＭＲＡＭはダイレクトアクセスなので、ストレージコントローラ１１０によるファイルシステム（論理アドレス／物理アドレス変換）を通さないため、９μ秒のオーバーヘッド時間が節約できる。図２４は第１の実施態様の具体例２の読出時間、図２５はそれをグラフにしたものである。図２６は第１の実施態様の具体例２の読出速度、図２７はそれをグラフにしたものである。
【００５０】
これら表及びグラフからわかるとおり、１ＫＢ以下の領域での速度改善効果が極めて高い。これは、具体例１の検証では、データストレージ装置のストレージコントローラの動作に必要な制御時間が固定時間であり、データ量の少ないところで速度に影響する。これに対してＭＲＡＭはデータの書き込みと読み出しがＢ４−Ｆｌａｓｈの読出し速度と同じ程度に早いうえ、ダイレクトアクセスを用いるとファイルシステムを介さずにデータの処理が可能となる。但し、ＭＲＡＭはコストがＭＬＣ  ＮＡＮＤの１０００倍程度高いため大容量な製品をデータストレージ装置のデータストレージデバイス用途に用いることが不可能であった。
【００５１】
具体例２では、このようなＭＲＡＭの利点を活かした上で、コストが高い欠点を補う方法によりデータ保存装置の極小サイズデータの超高速化を実現できた。具体例１でＢ４−Ｆｌａｓｈ領域に保存されていた８ＫＢ以下のデータを更に、データ頭から１ＫＢ以下と、１ＫＢ超過で８ＫＢ以下の７ＫＢのデータに分割し、前者をＭＲＡＭ領域に保存し、後者をＢ４−Ｆｌａｓｈ領域に保存する。ＭＲＡＭ領域のデータはファイルシステムを用いないデータとしてダイレクトメモリアクセス方式で保存されるためＭＲＡＭ動作が簡易になり０．１μｓｅｃで動作することができる。上記検証では、ＭＲＡＭをダイレクトアクセスする際の制御時間を０．２μｓｅｃとした。また、ＭＲＡＭの性能はいくつかの種類があるが現時点で入手可能な、データ内部準備時間＝０．１μｓｅｃ、データ外部出力時間＝１０ｎ秒／Ｂｙｔｅと設定した。
【００５２】
具体例２の検証結果から１ＫＢ以下の領域で、具体例１よりも、いちだんと高速化の効果が得られている。１ＴＢのデータ保存装置で、１Ｍ個のファイルを保存する場合、１ＫＢ＊１Ｍ個＝１ＧＢのＭＲＡＭが必要となる。ＭＲＡＭのコストがＭＬＣ  ＮＡＮＤの１０００倍と考えると、具体例１の追加コストに加えて１００％のコストが加算される。つまり、従来のＭＬＣ  ＮＡＮＤによるデータ保存装置に比べてコストは２倍以上となるが、他では実現不可能な高速化が達成できる。
【００５３】
［第２の実施態様の具体例１の検証］
検証に用いた第２の実施態様の具体例１は以下のとおりである。すなわち、データ演算処理装置より保存を命令されたデータを、データサイズが８ＫＢ以下のものを１群、データサイズが８ＫＢ超過で、６４ＫＢ以下のものを２群、データサイズが６４ＫＢ超過しているものを３群、にストレージコントローラで仕分けを行う。１群から３群までを、ストレージデバイスのデータ内部準備時間の短いものから順に保存する。１群のデータをＢ４−Ｆｌａｓｈに、２群のデータをＳＬＣ  ＮＡＮＤに、３群のデータをＭＬＣ  ＮＡＮＤに保存する。図２８は第２の実施態様の具体例１の読出時間、図２９はそれをグラフにしたものである。図３０は第２の実施態様の具体例１の読出速度、図３１はそれをグラフにしたものである。
【００５４】
第２の実施態様の具体例１の検証結果から以下の事実が理解できる。８ＫＢまでの小サイズデータ領域では第１の実施態様の具体例１と同様の効果が得られているが、８ＫＢ超過して６４ＫＢまでの中サイズデータ領域ではＳＬＣ  ＮＡＮＤだけによるデータストレージ装置、６４ＫＢ超過の大サイズデータ領域ではＭＬＣ  ＮＡＮＤとだけによるデータストレージ装置と全く同等の読出し速度となっている。これは、第１の実施形態の具体例１で得られていた中サイズデータでデータ内の小サイズデータ部分の先読み効果が本実施例では得られていないことによる。大サイズデータ領域でも同様である。
【００５５】
本具体例では、装置のハードウエア構成は第１の実施形態の具体例１と同じでありコストも同じとなるが、ストレージコントローラの内部動作手順が容易になり、ソフトウエア開発負荷が減る。また、ストレージコントローラの制御時間の短縮による効果も期待できる。
【００５６】
［第２の実施態様の具体例１の検証］
検証に用いた第２の実施態様の具体例２は以下のとおりである。すなわち、データ演算処理装置より保存を命令されたデータを、データサイズが１ＫＢ以下のものを１群、データサイズが１ＫＢ超過で８ＫＢ以下のものを２群、データサイズが８ＫＢ超過で６４ＫＢ以下のものを３群、データサイズが６４ＫＢを超過しているものを４群、にストレージコントローラで仕分けを行う。１群から４群までを、ストレージデバイスのデータ内部準備時間の短いものから順に保存する。１群のデータをＭＲＡＭ（ダイレクトアクセス）に、２群のデータをＢ４−Ｆｌａｓｈに、３群のデータをＳＬＣ  ＮＡＮＤに、４群のデータをＭＬＣ  ＮＡＮＤに保存する。図３２は第２の実施態様の具体例２の読出時間、図３３はそれをグラフにしたものである。図３４は第２の実施態様の具体例２の読出速度、図３５はそれをグラフにしたものである。
【００５７】
［その他の変形例］
上記具体例においては、データストレージデバイスとして、ＳＬＣ  ＮＡＮＤ、ＭＬＣ  ＮＡＮＤ、Ｂ４−Ｆｌａｓｈ、ＭＲＡＭなどを用いた。しかし、３ＤＸｐｏｉｎｔやＲｅＲＡＭなどの不揮発性メモリを用いてもよく、またＤＲＡＭなどの揮発性メモリを用いてもよい。但し、揮発性メモリを用いる場合は電源オフ時の処置対策が別に必要となる。具体的には、バッテリーバックアップが必要である。
【００５８】
上記具体例では、独立したデータ保存装置を例に説明したが、一部又は全ての機能を分離した別々の独立したユニットで構成してもよく、また、全て又は一部の機能を一つ又は複数の半導体チップ内に実装してもよい。
【符号の説明】
【００５９】
１００  データストレージ装置
１１０  ストレージコントローラ
１２０〜１２４  データストレージデバイス
２００  データ演算処理装置
【図１】
2020177362.tif 000003
【図２】
2020177362.tif 000004
【図３】
2020177362.tif 000005
【図４】
2020177362.tif 000006
【図５】
2020177362.tif 000007
【図６】
2020177362.tif 000008
【図７】
2020177362.tif 000009
【図８】
2020177362.tif 000010
【図９】
2020177362.tif 000011
【図１０】
2020177362.tif 000012
【図１１】
2020177362.tif 000013
【図１２】
2020177362.tif 000014
【図１３】
2020177362.tif 000015
【図１４】
2020177362.tif 000016
【図１５】
2020177362.tif 000017
【図１６】
2020177362.tif 000018
【図１７】
2020177362.tif 000019
【図１８】
2020177362.tif 000020
【図１９】
2020177362.tif 000021
【図２０】
2020177362.tif 000022
【図２１】
2020177362.tif 000023
【図２２】
2020177362.tif 000024
【図２３】
2020177362.tif 000025
【図２４】
2020177362.tif 000026
【図２５】
2020177362.tif 000027
【図２６】
2020177362.tif 000028
【図２７】
2020177362.tif 000029
【図２８】
2020177362.tif 000030
【図２９】
2020177362.tif 000031
【図３０】
2020177362.tif 000032
【図３１】
2020177362.tif 000033
【図３２】
2020177362.tif 000034
【図３３】
2020177362.tif 000035
【図３４】
2020177362.tif 000036
【図３５】
2020177362.tif 000037