(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015180
(43)【公開日】2024-02-01
(54)【発明の名称】データストレージ装置
(51)【国際特許分類】
G06F 3/06 20060101AFI20240125BHJP
G06F 3/08 20060101ALI20240125BHJP
G06F 12/06 20060101ALI20240125BHJP
【FI】
G06F3/06 302J
G06F3/06 301M
G06F3/08 H
G06F12/06 515J
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2023204834
(22)【出願日】2023-12-04
(62)【分割の表示】P 2019078102の分割
【原出願日】2019-04-16
(71)【出願人】
【識別番号】519140224
【氏名又は名称】株式会社ポトスセミコンダクタ
(74)【代理人】
【識別番号】110000408
【氏名又は名称】弁理士法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】中島盛義
(57)【要約】
【課題】データストレージ装置に関する小サイズデータ領域での読出時間の短縮を実現し、小サイズデータ領域での読出速度向上を図ること。
【解決手段】本発明の一実施態様にかかるデータストレージ装置は、第1のデータストレージデバイスと、第1のデータストレージデバイスよりも読出し時間が長い第2のデータストレージデバイスと、格納すべきデータを、データサイズが第1の所定範囲である場合には第1の群に、そのデータサイズが第1の所定範囲よりも大きな第2の所定範囲である場合には第2の群に仕分けし、第1の群に属するデータを第1のデータストレージデバイスに、第2の群に属するデータを第2のデータストレージデバイスにそれぞれ格納するストレージコントローラと、を具備することを特徴とする。
【選択図】
図11
【特許請求の範囲】
【請求項1】
第1のデータストレージデバイスと、
第1のデータストレージデバイスよりも読出し時間が長い第2のデータストレージデバイスと、
格納すべきデータを、データサイズが第1の所定範囲である場合には第1の群に、そのデータサイズが第1の所定範囲よりも大きな第2の所定範囲である場合には第2の群に仕分けし、第1の群に属するデータを第1のデータストレージデバイスに、第2の群に属するデータを第2のデータストレージデバイスにそれぞれ格納するストレージコントローラと、
を具備することを特徴とするデータストレージ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データストレージ装置(Data Storage Apparatus)に関する。より詳細には、データ分割保存技術とデータ仕分保存技術を実装したデータストレージ装置に関する。
【背景技術】
【0002】
SSD(Solid State Disc)などのデータストレージ装置にはデータストレージデバイス(Data Storage Device、例えばNAND Flash)が用いられる。このデータストレージデバイスにNAND Flashを用いた場合、データ演算処理装置(例えばCPU(Central Processing Unit))から読出し命令を受けてから実際にデータを出力するまでのランダムデータ第1読出し時間が極端に長い。
【0003】
このNAND Flashのランダムデータ第1読出し時間の遅さの原因は、内部のメモリセルからデータをデータ・レジスタにデータを配列するまでの内部準備時間が30μ秒から100μ秒かかることにある。実際のデータ演算処理装置がデータ読出し命令を発してから、データストレージ装置からデータを受け取り始めるまでの時間は、このデータストレージデバイスのデータ出力時間にデータストレージ装置内のストレージコントローラによる処理時間も加えられる。
【0004】
従来のSSD型データストレージ装置は512Bから256KBデータまでの小サイズデータ領域で読出し速度が遅い。このような従来のSSD型データストレージ装置高速化を達成するためには、(1)ストレージコントローラの制御時間、(2)メモリデバイスのデータ内部準備時間、(3)メモリデバイスのデータ外部転送時間、をそれぞれ短縮するほかない。
【0005】
従来技術において、ストレージコントローラの改良は進められており、制御時間は9μ秒程度のものが発表されている(2018 ISSI Samsung社発表)。NAND
Flashのデータ内部準備時間は一般的には75μ秒程度、データ外部転送時間は10n秒/Byte程度である。大サイズデータにおいてはストレージコントローラの制御時間の短縮、NAND Flashの性能改良等により一定の読出速度の改善は見込まれる。
【0006】
しかしながら、通常のデータストレージ装置に使われるNAND Flashでは、小サイズデータにおいて読出速度が極めて低い。小サイズデータ領域では読出時間が45μ秒以下になることはない。小サイズデータ領域で、データストレージ装置において通常のNAND Flashを用いて、例えば、10μsecの実現を図ることは不可能である。
【0007】
さらに、データ保存装置の速度改善を目的として、メモリデバイスの多チャンネル化が検討されているが、やはり、大サイズデータ領域で顕著な速度改善は認められるものの、小サイズデータ領域ではほとんど効果がない。これは、NAND Flashのデータ内部準備時間が、多チャンネル化した全てのデバイスにおいても同時に必要であるため、16KB以下のデータサイズ領域で読出時間改善効果がほとんど出ないことが理由である。但し、NAND Flashのデータ外部転送時間は多チャネル化により大幅に改善する。大サイズデータ領域での多チャンネル化の顕著な効果の理由となるが、今回の小サイズデータ領域での高速化には寄与しない。
【0008】
以上のとおり、従来技術では、データ保存装置による小サイズデータ領域での読出時間が長く、読出し速度が低い問題は解決することができない。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、データストレージ装置に関する小サイズデータ領域での読出時間の短縮を実現し、小サイズデータ領域での読出速度向上を図ることを課題としている。
【0011】
NAND Flashは、SLC(Single Level Cell)品とMLC(Multi Level Cell)品が入手可能である。一般に、読出速度向上にはSLC品の採用が効果はある。しかし、MLC品に代えてSLC品を全面的に採用するのは大幅にコストが上昇する。SLC品はMLC品の5倍程度のコストがかかる。そこで、本発明は、MLC品の利用を前提にしてもなおコストが大幅に上がらない速度改善対策を目的としている。
【課題を解決するための手段】
【0012】
上記課題を解決するため、本発明の一実施態様においては、本発明の一実施態様にかかるデータストレージ装置は、第1のデータストレージデバイスと、第1のデータストレージデバイスよりも読出し時間が長い第2のデータストレージデバイスと、元データをデータ頭に近い第1の部分及びデータ頭からより遠い第2の部分を含むように分割し、第1の部分を第1のデータストレージデバイスに、第2の部分を第2のデータストレージデバイスにそれぞれ格納し、データを読み出す際には、読み出した第1のデータと第2のデータとを結合して出力するストレージコントローラと、を具備することを特徴とする。
【0013】
また、本発明の他の実施態様においては、第1のデータストレージデバイスと、第1のデータストレージデバイスよりも読出し時間が長い第2のデータストレージデバイスと、格納すべきデータを、データサイズが第1の所定範囲である場合には第1の群に、そのデータサイズが第1の所定範囲よりも大きな第2の所定範囲である場合には第2の群に仕分けし、第1の群に属するデータを第1のデータストレージデバイスに、第2の群に属するデータを第2のデータストレージデバイスにそれぞれ格納するストレージコントローラと、を具備することを特徴とする。
【図面の簡単な説明】
【0014】
【
図1】本発明の各実施形態に係るデータストレージ装置の読出し処理時間を示した図である。
【
図2】本発明の各実施形態に係るデータストレージ装置に用いるデータストレージデバイスのデータ読出し時間を示した図である。
【
図3】本発明の第1の実施形態に係るデータストレージ装置の構成図である。
【
図4】本発明の第1の実施形態に係るデータストレージ装置の構成図である。
【
図5】本発明の第1の実施形態に係るストレージコントローラの動作を示す図である。
【
図6】本発明の第1の実施形態に係るストレージコントローラの動作を示す図である。
【
図7】本発明の第1の実施形態に係るストレージコントローラの具体例1を示す図である。
【
図8】本発明の第1の実施形態に係るデータストレージ装置の変形例1を示す図である。
【
図9】本発明の第1の実施形態に係るデータストレージ装置の変形例1を示す図である。
【
図10】本発明の第1の実施形態に係るデータストレージ装置の変形例2を示す図である。
【
図11】本発明の第2の実施形態に係るデータストレージ装置の動作を示す図である。
【
図12】本発明の第2の実施形態に係るデータストレージ装置の動作を示す図である。
【
図13】本発明の第2の実施形態に係るストレージコントローラの具体例1を示す図である。
【
図14】本発明の第2の実施形態に係るストレージコントローラの具体例1を示す図である。
【
図15】本発明の第1又は第2の実施形態に係るデータストレージ装置の変形例3を示す図である。
【
図16】本発明の第1又は第2の実施形態に係るデータストレージ装置の変形例4を示す図である。
【
図17】データストレージ装置の動作に必要な各時間を示した図表である。
【
図18】データストレージ装置の読出時間(μ秒)を示した図表である。
【
図19】データストレージ装置の読出速度(MB/秒)を示した図表である。
【
図20】第1の実施態様の具体例1の読出時間を示した図表である。
【
図21】第1の実施態様の具体例1の読出時間を示したグラフである。
【
図22】第1の実施態様の具体例1の読出速度を示した図表である。
【
図23】第1の実施態様の具体例1の読出速度を示したグラフである。
【
図24】第1の実施態様の具体例2(ダイレクトアクセスMRAM)の読出時間を示した図表である。
【
図25】第1の実施態様の具体例2(ダイレクトアクセスMRAM)の読出時間を示したグラフである。
【
図26】第1の実施態様の具体例2(ダイレクトアクセスMRAM)の読出速度を示した図表である。
【
図27】第1の実施態様の具体例2(ダイレクトアクセスMRAM)の読出速度を示したグラフである。
【
図28】第2の実施態様の具体例1の読出時間を示した図表である。
【
図29】第2の実施態様の具体例1の読出時間を示したグラフである。
【
図30】第2の実施態様の具体例1の読出速度を示した図表である。
【
図31】第2の実施態様の具体例1の読出速度を示したグラフである。
【
図32】第2の実施態様の具体例2(ダイレクトアクセスMRAM)の読出時間を示した図表である。
【
図33】第2の実施態様の具体例2(ダイレクトアクセスMRAM)の読出時間を示したグラフである。
【
図34】第2の実施態様の具体例2(ダイレクトアクセスMRAM)の読出速度を示した図表である。
【
図35】第2の実施態様の具体例2(ダイレクトアクセスMRAM)の読出速度を示したグラフである。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明に係るデータストレージ装置について説明する。本発明に係るデータストレージ装置は、以下に示す実施の形態の記載内容に限定して解釈されるものではない。なお、本実施の形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【0016】
[第1の実施形態]
図1は、本発明の各実施形態に係るデータストレージ装置100の読出し処理時間を示した図である。CPU等のデータ演算処理装置200は読出し命令をデータストレージ装置100に送る。データストレージ装置100は、ストレージコントローラ110とデータストレージデバイス120とから構成される。ストレージコントローラ110はデータストレージデバイス120に読出し命令を発する。ストレージコントローラ110がデータストレージデバイス120に読出し命令を発するまでの読出し制御処理時間が制御処理時間1である。次いで、読出し命令を受けたデータストレージデバイス120がデータを出力する時間がデータストレージデバイスデータ処理時間であり、これは、データ内部準備時間とデータ外部転送時間とから構成される。次いで、データストレージデバイスが出力した読出しデータをストレージコントローラ110がデータ演算処理装置200に出力制御するのにかかる出力制御処理時間が制御処理時間2である。データストレージ装置100がデータの読出しにかかる時間は、制御処理時間1+データ内部準備時間+データ外部転送時間+制御処理時間2の合計時間である。
【0017】
図2は、本発明の各実施形態に係るデータストレージ装置100に用いるデータストレージデバイス120のデータ読出し時間を示した図である。データ内部準備時間は、データストレージデバイス120が読出し命令を受け取ってから、データの頭出し(最初のデータの出力、first data output)をするまでの時間である。データストレージデバイスにはページバッファが供えられており、このページバッファに読出したデータがセットされる。そして、このようにページバッファにセットされたデータが外部に転送される。データ外部転送時間は、データが外部に転送される時間である。
【0018】
データ内部準備時間は、メモリデバイスの種類によって異なる。SLC NAND Flashでは例えば35μ秒であり、MLC NAND Flashでは例えば75μ秒である。株式会社ポトスセミコンダクタが販売するB4-Flashにおいては例えば0.1μ秒である。
【0019】
B4-Flashは、B4-HE(Back Bias assisted Band to Band tunneling、 Hot Electron)を用いた書き込み動作原理を採用したNORフラッシュメモリである。NORフラッシュメモリであることから、ランダムアクセスが極めて高速である。
【0020】
データ外部転送時間は、メモリデバイスの種類によって変わることもあれば変わらないこともある。一例として、SLC NAND Flash、MLC NAND Flashでは例えば10n秒×データサイズ(Byte)である。B4-Flashにおいては例えば(10n秒~20n秒)×データサイズ(Byte)である。
【0021】
図3は、本発明の第1の実施形態に係るデータストレージ装置100のデータ内部準備時間を説明する図である。データストレージ装置100はデータ演算処理装置200と接続されている。データストレージ装置100はストレージコントローラ110とn個のデータストレージデバイス121~124からなる。n個のデータストレージデバイス121~124のデータ内部準備時間は、それぞれ、t1、t2~tnであり、これらはすべて同じではない。例えば、t1が小さく、t2~tnは大きい場合がある。t1<t2<tn-1=tnでもよい。
【0022】
図4は、本発明の第1の実施形態に係るデータストレージ装置100のデータ外部転送時間を説明する図である。n個のデータストレージデバイス121~124のデータ外部転送時間は、それぞれ、s1、s2~snであり、これらはすべて同じではない。例えば、s1が小さく、s2~snは大きい場合がある。s1<s2<sn-1=snでもよい。
【0023】
図5及び
図6に、
図3及び
図4に示した本発明の第1の実施形態に係るストレージコントローラ110の動作を示す。元データは分割前のデータである。最も早い読出し点がデータ頭(Data Header)、最も遅い読出し点がデータ最後尾(Data Tail)である。そして、データ読み出し時の出力時系列に沿って、より早い読出し領域からより遅い読出し領域まで並んでいる。ストレージコントローラ110は、この元データに、予めの設定により区切りを入れる。区切りは、例えば、V1、V2、V3・・・Vn-1である。ストレージコントローラ110は、元データを最大でn個のデータD1(データ頭からV1以下のデータ)、D2(V1を超過し、V2以下のデータ)、D3(V2を超過し、V3以下のデータ)・・・Dn(Vn-1超過データ)に分割する。
【0024】
図6に示すとおり、最大でn個のデータD1~Dnは、それぞれ、読み出し性能(ここでは、データ内部準備時間)が異なる、データストレージデバイス(1)121、データストレージデバイス(2)122、データストレージデバイス(3)123・・・データストレージデバイス(n)124に格納される(書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。)。
【0025】
読み出し性能が異なる、データストレージデバイス(1)121、データストレージデバイス(2)122、データストレージデバイス(3)123・・・データストレージデバイス(n)124は、データ内部準備時間が異なるのではなく、または、これとともに、データ外部転送時間が異なるものであってもよい。
【0026】
図7に、
図5及び
図6に示した本発明の第1の実施形態に係るストレージコントローラ110の具体例1を示す。分割前の元データの最大サイズは1024KBである。これをストレージコントローラ110が8KB、64KBでデータに区切りを入れる。元データは、データ頭から8KBのデータ、56KBのデータ、残りの960KBのデータに分割される。そして、データ頭から8KBのデータは高速(データ内部準備時間が最も短い)なB4-Flashに、56KBのデータは中速(データ内部準備時間が中程度)のSLC
NAND Flashに、残りの960KBのデータは低速(データ内部準備時間が最も長い)なMLC NAND Flashに、それぞれ格納される(書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。)。
【0027】
他の具体例2としてMRAM(Magnetoresistive Random Access Memory)を用いる例もある。MRAMはB4-FlashやNAND Flashと異なり、物理アドレスと論理アドレスの変換を行わないダイレクトアクセスを利用できる。この場合、ストレージコントローラ110が提供するファイルシステムを通さないことから極めて高速な動作が可能である。そして、ストレージコントローラ110の制御処理時間1及び制御処理時間2の合計9μ秒だけさらに高速になる。分割前の元データの最大サイズは1024KBである。これをストレージコントローラ110が1KB、8KB、64KBでデータに区切りを入れる。元データは、データ頭から1KBのデータ、7KBのデータ、56KBのデータ、残りの960KBのデータに分割される。そして、データ頭から1KBのデータは最高速(制御処理時間がゼロであるとともにデータ内部準備時間が極めて短い)なMRAMに、7KBのデータは高速(データ内部準備時間が短い)なB4-Flashに、56KBのデータは中速(データ内部準備時間が中程度)のSLC NAND Flashに、残りの960KBのデータは低速(データ内部準備時間が最も長い)なMLC NAND Flashに、それぞれ格納される(書き込みの際はこの対応関係で書き込みがなされ、読み出しの際はこの対応関係で読み出しがなされる。)。
【0028】
[変形例1:分割情報の保存]
図8は本発明の第1の実施形態に係るデータストレージ装置100の変形例1のデータ書き込み動作を示す図である。分割情報(元データを分割する際の区切りを示すデータであるV1、V2、V3・・・Vn-1を含む)を保存する保存領域130が設けられている。保存領域130はストレージコントローラ110の内部にあってもよいし、ストレージコントローラ110の外部に設けられていてもよい。ストレージコントローラ110は、これら分割情報を保存領域130に保存する。ストレージコントローラ110は、データ演算処理装置200から所定のコマンドを受信することで、元データを分割する際の区切りを示すデータであるV1、V2、V3・・・Vn-1の具体的値を設定できるようにしてもよい。
【0029】
図9は本発明の第1の実施形態に係るデータストレージ装置の変形例1のデータ読み出し動作を示す図である。データ演算処理装置200からデータ読み出し要求があると、ストレージコントローラ110は分割情報の保存領域130から分割情報を読み込み、この値に基づいて、データストレージデバイス121~124から読み出しを行う。このようにして、読み出された分割データD1、D2、D3及びDnは再結合されて、データ演算処理装置200にデータ出力される。
【0030】
[変形例2:元データの保存]
図10は本発明の第1の実施形態に係るデータストレージ装置100の変形例2を示す図である。上記実施形態に加えて、データストレージデバイス140が追加されている。このデータストレージデバイス140には元データをそのまま格納する。この結果、分割データと分割前データの整合性が確保される。特に、上記変形例2とともに用いる場合、分割情報が変更されても、元のデータを復元できるという効果がある。
【0031】
[第2の実施形態]
図11は本発明の第2の実施形態に係るストレージコントローラ110の動作を示す。元データData1、Data2、・・・Datamはさまざまなデータサイズを有する。ストレージコントローラ110は、この各元データをデータサイズ毎に仕分けをする。しきい値となるデータサイズは、V1、V2、V3・・・Vn-1(単位、Byte)である。ストレージコントローラ110は、各元データを1群(データサイズがV1以下のデータ)、2群(データサイズがV1を超過し、V2以下のデータ)、3群(データサイズがV2を超過し、V3以下のデータ)・・・n群(データサイズがVn-1超過のデータ)に仕分ける。
【0032】
図12は本発明の第2の実施形態に係るストレージコントローラ110の動作(続き)を示す。ストレージコントローラ110によって仕分けされた元データが示されている。1群にはData3が、2群にはData4が、3群にはData1及びData6が、・・・n群にはData2及びDatamがそれぞれ振り分けられている。ストレージコントローラ110は、これら群に仕分けされたデータを、それぞれ、読み出し性能(ここでは、データ内部準備時間)が異なるデータストレージデバイス120に格納する。1群のデータはデータストレージデバイス(1)121に、2群のデータはデータストレージデバイス(2)122に、3群のデータはデータストレージデバイス(3)123に、n群のデータはデータストレージデバイス(n)124にそれぞれ格納される。
【0033】
読み出し性能が異なる、データストレージデバイス(1)121、データストレージデバイス(2)122、データストレージデバイス(3)123・・・データストレージデバイス(n)124は、データ内部準備時間が異なるのではなく、または、これとともに、データ外部転送時間が異なるものであってもよい。
【0034】
図13及び14に、
図11及び12に示した本発明の第2の実施形態に係るストレージコントローラ110の具体例1を示す。仕分け前の元データには様々なデータサイズがある。これをストレージコントローラ110が8KB、64KBをしきい値にして仕分けをする。1群は8KB以下のデータサイズのデータ、2群は8KBを超過し64KB以下のデータサイズのデータ、3群は64KBを超過するデータサイズのデータである。そして、ストレージコントローラ110は、1群のデータを高速B4-Flashに、2群のデータをSLC NAND Flashに、3群のデータをMLC NAND Flashにそれぞれ格納する。
【0035】
他の具体例2としてMRAMを用いる例もある。仕分け前の元データには様々なデータサイズがある。これをストレージコントローラ110が1KB、8KB、64KBをしきい値にして仕分けをする。1群は1KB以下のデータサイズのデータ、2群は1KBを超過し8KB以下のデータサイズのデータ、3群は8KBを超過し64KB以下のデータサイズのデータ、4群は64KBを超過するデータサイズのデータである。そして、ストレージコントローラ110は、1群のデータをダイレクトアクセスMRAMに、2群のデータを高速B4-Flashに、3群のデータをSLC NAND Flashに、4群のデータをMLC NAND Flashにそれぞれ格納する。
【0036】
第2の実施形態にかかるデータストレージ装置100がデータ演算処理装置200からデータの読出し命令を受けると、ストレージコントローラ110は対応するデータが格納されているデータストレージデバイスからデータを読み出す。そして、読み出したデータをデータ演算処理装置200に転送する。
【0037】
[変形例3:データストレージデバイス群等を用いる例]
図15は本発明の第1又は第2の実施形態に係るデータストレージ装置100の変形例3を示す図である。同一のメモリ特性(内部準備時間やデータ転送時間等の読み出し性能を含む各種の特性)を有する複数のデータストレージデバイスがグループ化されている。データストレージデバイス(1-1)1211~(1-m1)121mは同一のメモリ特性c1を有する。データストレージデバイス(2-1)1221~(2-m2)122mは同一のメモリ特性c2を有する。データストレージデバイス(n-1)12n1~(n-mn)12nmは同一のメモリ特性cnを有する。ストレージコントローラ110は第1の実施形態にあっては元データをn分割してメモリ特性に応じて分割されたデータを格納し、第2の実施形態にあっては元データをn群に仕分けしてそれぞれ異なるグループのデータストレージデバイス群に格納する。
【0038】
データストレージデバイス(群)はそれぞれがNAND FlashやB4-Flashのチップであってもよい。ストレージコントローラ110は独立したLSIであってもよいし、データストレージデバイス(群)はそれぞれがNAND FlashやB4-Flashのチップ内に設けられてもよい。また、ストレージコントローラ110は一つの独立したLSIであってもよいし、メインストレージコントローラと、それぞれが個々のデータストレージデバイス(群)に対応する複数のサブストレージコントローラとから、いわばツリー状に構成してもよい。
【0039】
一部のデータストレージデバイス121(1211~121m)はストレージコントローラ110とともに1つの半導体チップ中に形成し、その他のデータストレージデバイス122(1221~122m)~124(12n1~12nm))は外付けのチップで構成してもよい。
【0040】
具体的には、データ内部準備時間は極めて短いが小容量のB4ーFlashは主としてロジック回路から構成されるストレージコントローラ110と混載させ、三次元化が進み極めて製造工程が複雑でロジック回路との混載に適切ではないNAND Flashは外付けの半導体チップで構成する、という例が望ましい。
【0041】
[変形例4:1つのメモリデバイス内のメモリ特性が異なる複数の領域を用いる例]
図16は本発明の第1又は第2の実施形態に係るデータストレージ装置100の変形例4を示す図である。1つのメモリデバイス150内に、メモリ特性が異なる複数の領域(a1)151、(a2)152、(an-1)15n-1、(an)15nが設けられている。ストレージコントローラ110は第1の実施形態にあっては元データをn分割してメモリ特性に応じて分割されたデータを格納し、第2の実施形態にあっては元データをn群に仕分けしてそれぞれ異なるメモリデバイス内領域に格納する。
【0042】
変形例4においても、変形例3と組み合わせて、一部のデータストレージデバイス121はストレージコントローラ110とともに1つの半導体チップ中に形成し、その他のデータストレージデバイス122は外付けとし、その外付けのデータストレージデバイス122の内部にメモリ特性が異なる複数の領域(a2)152、(a3)153を設けてもよい。具体的には、データ内部準備時間は極めて短いが小容量のB4ーFlashからなるデータストレージデバイス121は主としてロジック回路から構成されるストレージコントローラ110と混載させる。そして、三次元化が進み極めて製造工程が複雑でロジック回路との混載に適切ではないNAND Flashからなるデータストレージデバイス122は外付けの半導体チップで構成する。そして、データストレージデバイス122内にはSLC領域(a2)152とMLC領域(a3)153が設けられる。
【実施例0043】
[実施例による検証]
本発明の上記実施形態の効果の検証に用いるデータストレージデバイス120は、B4-Flash、SLC NAND Flash、MLC NAND Flashの3種類の組み合わせである。データストレージ装置の動作に必要な各時間を
図17に示した。独立に動作するチャンネル数は4とした。
【0044】
図17に示したデータストレージデバイス120を用いたデータストレージ装置100読出時間(μ秒)と読出速度(MB/秒)は
図18及び19に示すとおりである。データストレージ装置は、データストレージデバイス120にB4-Flashを用いることで、小データ領域において高速化が実現できる。64KByteで高速化の効果がみえるが、8KByte以下で顕著である。しかし、B4-FlashはNAND Flashと比べて高価(MLC NAND Flashの10倍以上、SLC NAND Flashの2倍以上)であるため、B4-Flashのみでデータストレージデバイス120を構成すると、データストレージ装置が極めて高価になってしまう。
【0045】
[第1の実施態様の具体例1の検証]
検証に用いた第1の実施態様の具体例1は以下のとおりである。すなわち、分割前の元データの最大サイズは1024KBである。これをストレージコントローラ110が8K、64KBでデータに区切りを入れる。元データは、データ頭から8KBのデータ、56KBのデータ、残りの960KBのデータに分割される。そして、データ頭から8KBのデータは高速(データ内部準備時間が最も短い)なB4-Flashに、56KBのデータは中速(データ内部準備時間が中程度)のSLC NAND Flashに、残りの960KBのデータは低速(データ内部準備時間が最も長い)なMLC NAND Flashに、それぞれ格納される。
図20は第1の実施態様の具体例1の読出時間、
図21はそれをグラフにしたものである。
図22は第1の実施態様の具体例1の読出速度、
図23はそれをグラフにしたものである。
【0046】
8KB以下のデータはB4-Flash領域のみから読出しする。8KB超過で64KB以下のデータでは当該データの8KBまでのB4-Flash領域の部分データと8KB超過で64KB以下のSLC NAND領域の部分データを読出し結合する。64KB超過データでは、当該データの8KBまでのB4-Flash領域の部分データと8KB超過で64KB以下のSLC NAND領域の部分データ、及び64KB超過のMLC NANDの部分データを読出し結合する。なお、MLC NANDのデータを読み出す際にはSLC NAND領域の8KB超過で64KB以下の部分データを読み出す前に、MLC NAND領域のデータを保存制御器のバッファ領域に先読みすることができるためB4-FlashのみやSLC NANDのみの場合より高速になる。
【0047】
このように、第1の実施態様の具体例1によれば、小サイズデータ領域で従来技術の最高速であったB4-Flashとほぼ変わらぬ速度を実現し、中サイズデータ領域でもほぼ最高速のB4-Flashと同等の速度が得られている。128KB以降の大サイズデータ領域では改良MLC NANDデータの先読み効果が出ており最高速を実現している。
【0048】
このような効果を得る為のコストについて検討する。1T(tera)Byteのデータストレージ装置として平均1MBのデータを記憶する装置を考える。保存すべきファイル数は1M個となる。全てのファイルデータについて8KBのB4-Flash領域、56KBのSLC NAND領域に対してそれぞれ1M個のデータセットを準備する必要があるため、B4-Flashは8GB、SLC NANDは56GBの容量が必要である。しかし、全体容量1TBに対して、B4-Flashで0.8%の容量、SLC NANDで5.6%のメモリ容量を搭載するだけである。MLC NANDのコストに対してB4-Flashが10倍のコスト、SLC NANDが5倍のコストとすると、従来データストレージ装置1TBのコストに対して、8%+28%=36%のコストアップとなるが、性能的には他の技術では実現できない性能が得られる。もし、最高性能を得るために1TB全体をB4-Flashで実現した場合、全体コストは10倍になるので、本実施態様におけるコスト削減効果は大きい。
【0049】
[第1の実施態様の具体例2の検証]
検証に用いた第1の実施態様の具体例2は以下のとおりである。すなわち、分割前の元データの最大サイズは1024KBである。これをストレージコントローラ110が1KB、8KB、64KBでデータに区切りを入れる。元データは、データ頭から1KBのデータ、7KBのデータ、56KBのデータ、残りの960KBのデータに分割される。そして、データ頭から1KBのデータは超高速(ダイレクトアクセスでデータ内部準備時間が最も短い)のMRAM、7KBのデータは高速(データ内部準備時間が短い)なB4-Flashに、56KBのデータは中速(データ内部準備時間が中程度)のSLC NAND Flashに、残りの960KBのデータは低速(データ内部準備時間が最も長い)なMLC NAND Flashに、それぞれ格納される。MRAMはダイレクトアクセスなので、ストレージコントローラ110によるファイルシステム(論理アドレス/物理アドレス変換)を通さないため、9μ秒のオーバーヘッド時間が節約できる。
図24は第1の実施態様の具体例2の読出時間、
図25はそれをグラフにしたものである。
図26は第1の実施態様の具体例2の読出速度、
図27はそれをグラフにしたものである。
【0050】
これら表及びグラフからわかるとおり、1KB以下の領域での速度改善効果が極めて高い。これは、具体例1の検証では、データストレージ装置のストレージコントローラの動作に必要な制御時間が固定時間であり、データ量の少ないところで速度に影響する。これに対してMRAMはデータの書き込みと読み出しがB4-Flashの読出し速度と同じ程度に早いうえ、ダイレクトアクセスを用いるとファイルシステムを介さずにデータの処理が可能となる。但し、MRAMはコストがMLC NANDの1000倍程度高いため大容量な製品をデータストレージ装置のデータストレージデバイス用途に用いることが不可能であった。
【0051】
具体例2では、このようなMRAMの利点を活かした上で、コストが高い欠点を補う方法によりデータ保存装置の極小サイズデータの超高速化を実現できた。具体例1でB4-Flash領域に保存されていた8KB以下のデータを更に、データ頭から1KB以下と、1KB超過で8KB以下の7KBのデータに分割し、前者をMRAM領域に保存し、後者をB4-Flash領域に保存する。MRAM領域のデータはファイルシステムを用いないデータとしてダイレクトメモリアクセス方式で保存されるためMRAM動作が簡易になり0.1μsecで動作することができる。上記検証では、MRAMをダイレクトアクセスする際の制御時間を0.2μsecとした。また、MRAMの性能はいくつかの種類があるが現時点で入手可能な、データ内部準備時間=0.1μsec、データ外部出力時間=10n秒/Byteと設定した。
【0052】
具体例2の検証結果から1KB以下の領域で、具体例1よりも、いちだんと高速化の効果が得られている。1TBのデータ保存装置で、1M個のファイルを保存する場合、1KB*1M個=1GBのMRAMが必要となる。MRAMのコストがMLC NANDの1000倍と考えると、具体例1の追加コストに加えて100%のコストが加算される。つまり、従来のMLC NANDによるデータ保存装置に比べてコストは2倍以上となるが、他では実現不可能な高速化が達成できる。
【0053】
[第2の実施態様の具体例1の検証]
検証に用いた第2の実施態様の具体例1は以下のとおりである。すなわち、データ演算処理装置より保存を命令されたデータを、データサイズが8KB以下のものを1群、データサイズが8KB超過で、64KB以下のものを2群、データサイズが64KB超過しているものを3群、にストレージコントローラで仕分けを行う。1群から3群までを、ストレージデバイスのデータ内部準備時間の短いものから順に保存する。1群のデータをB4-Flashに、2群のデータをSLC NANDに、3群のデータをMLC NANDに保存する。
図28は第2の実施態様の具体例1の読出時間、
図29はそれをグラフにしたものである。
図30は第2の実施態様の具体例1の読出速度、
図31はそれをグラフにしたものである。
【0054】
第2の実施態様の具体例1の検証結果から以下の事実が理解できる。8KBまでの小サイズデータ領域では第1の実施態様の具体例1と同様の効果が得られているが、8KB超過して64KBまでの中サイズデータ領域ではSLC NANDだけによるデータストレージ装置、64KB超過の大サイズデータ領域ではMLC NANDとだけによるデータストレージ装置と全く同等の読出し速度となっている。これは、第1の実施形態の具体例1で得られていた中サイズデータでデータ内の小サイズデータ部分の先読み効果が本実施例では得られていないことによる。大サイズデータ領域でも同様である。
【0055】
本具体例では、装置のハードウエア構成は第1の実施形態の具体例1と同じでありコストも同じとなるが、ストレージコントローラの内部動作手順が容易になり、ソフトウエア開発負荷が減る。また、ストレージコントローラの制御時間の短縮による効果も期待できる。
【0056】
[第2の実施態様の具体例1の検証]
検証に用いた第2の実施態様の具体例2は以下のとおりである。すなわち、データ演算処理装置より保存を命令されたデータを、データサイズが1KB以下のものを1群、データサイズが1KB超過で8KB以下のものを2群、データサイズが8KB超過で64KB以下のものを3群、データサイズが64KBを超過しているものを4群、にストレージコントローラで仕分けを行う。1群から4群までを、ストレージデバイスのデータ内部準備時間の短いものから順に保存する。1群のデータをMRAM(ダイレクトアクセス)に、2群のデータをB4-Flashに、3群のデータをSLC NANDに、4群のデータをMLC NANDに保存する。
図32は第2の実施態様の具体例2の読出時間、
図33はそれをグラフにしたものである。
図34は第2の実施態様の具体例2の読出速度、
図35はそれをグラフにしたものである。
【0057】
[その他の変形例]
上記具体例においては、データストレージデバイスとして、SLC NAND、MLC NAND、B4-Flash、MRAMなどを用いた。しかし、3DXpointやReRAMなどの不揮発性メモリを用いてもよく、またDRAMなどの揮発性メモリを用いてもよい。但し、揮発性メモリを用いる場合は電源オフ時の処置対策が別に必要となる。具体的には、バッテリーバックアップが必要である。
【0058】
上記具体例では、独立したデータ保存装置を例に説明したが、一部又は全ての機能を分離した別々の独立したユニットで構成してもよく、また、全て又は一部の機能を一つ又は複数の半導体チップ内に実装してもよい。