JP6297000B2 - 検索装置 - Google Patents

検索装置 Download PDF

Info

Publication number
JP6297000B2
JP6297000B2 JP2015028417A JP2015028417A JP6297000B2 JP 6297000 B2 JP6297000 B2 JP 6297000B2 JP 2015028417 A JP2015028417 A JP 2015028417A JP 2015028417 A JP2015028417 A JP 2015028417A JP 6297000 B2 JP6297000 B2 JP 6297000B2
Authority
JP
Japan
Prior art keywords
key
unit
memory
read
error
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
Application number
JP2015028417A
Other languages
English (en)
Other versions
JP2016134166A (ja
Inventor
菅野 伸一
伸一 菅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to US14/816,794 priority Critical patent/US9690652B2/en
Publication of JP2016134166A publication Critical patent/JP2016134166A/ja
Application granted granted Critical
Publication of JP6297000B2 publication Critical patent/JP6297000B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本実施形態は、検索装置に関する。
キー・バリュー型検索を実行するメモリ装置においては、検索時間の短縮が求められる。そのため、キー・バリュー型検索を実行するメモリ装置として、高速にアクセス可能なソリッドステートドライブ(SSD)が用いられる。SSDは、例えば、NAND型フラッシュメモリなどのような不揮発性メモリを備える。NAND型フラッシュメモリは、複数のブロック(物理ブロック)を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。
特開2012−8651号公報
本実施形態は、検索時間を短縮可能な検索装置を提供する。
本実施形態によれば、検索装置は、第1の比較部と、判断部と、第2の比較部と、検索部とを含む。第1の比較部は、受け付けられた第1のキーと、不揮発性メモリから読み出された第2のキーとを比較する。判断部は、第1の比較部による第1の比較結果に基づいて誤り訂正可能か判断する。訂正部は、判断部によって誤り訂正可能と判断された場合に、第2のキーに対して誤り訂正を実行する。第2の比較部は、第1のキーと、訂正部によって誤り訂正された第2のキーとを比較する。検索部は、第2の比較部による第2の比較結果が整合する場合に、不揮発性メモリにおいて第2のキーに対応付けられているデータを読み出す。
第1の実施形態に係るメモリ装置を備える情報処理システムの一例を示すブロック図。 第1の実施形態に係るメモリ装置の処理の一例を示すフローチャート。 第1の実施形態に係る読み出されたキーを格納するメモリと比較部と不揮発性メモリとの関係の一例を示す回路図。 第2の実施形態に係るメモリ装置を備える情報処理システムの一例を示すブロック図。 第2の実施形態に係る比較部と不揮発性メモリのメモリセルとの関係の一例を示す回路図。 第3の実施形態に係る情報処理システムの詳細構成の一例を示すブロック図。 第3の実施形態に係るストレージシステムの一例を示す斜視図。
以下、図面を参照して実施形態について説明する。以下の説明において、略同一の機能及び構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
[第1の実施形態]
本実施形態においては、メモリ装置に備えられている検索装置について説明する。メモリ装置は、不揮発性メモリを備えている。
本実施形態において、不揮発性メモリはNAND型フラッシュメモリであり、メモリ装置は、SSDの場合について説明する。しかしながら、不揮発性メモリは、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random access memory:磁気抵抗メモリ)、PRAM(Phase change Random access memory:相変化メモリ)、ReRAM(Resistive Random access memory:抵抗変化型メモリ)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性メモリでもよい。また、メモリ装置の一部又は全部は、ハードディスクドライブ(HDD)でもよい。
本実施形態において、不揮発性メモリから読み出されたデータには誤りが含まれる場合があるとする。
本実施形態において、アクセスとは、記憶装置へデータを書き込むこと、及び、記憶装置からデータを読み出すことの双方を意味する。
図1は、本実施形態に係るSSDを備える情報処理システムの一例を示すブロック図である。
情報処理システム1は、情報処理装置2とメモリ装置の一例であるSSD3とを含む。情報処理装置2は、SSD3に対応するホスト装置でもよい。
情報処理装置2は、SSD3にキーKI(第1のキー)を送信し、SSD3から、キーKIに対応するデータ(以下、バリューという)VC、又は、キーKIに対応するバリューがSSD3の不揮発性メモリ9にないことを示す信号Sを受信する。
SSD3は、情報処理装置2からキーKIを受信し、キーKIに対応するバリューVC又は信号Sを情報処理装置2へ送信する。SSD3は、情報処理装置2に内蔵されてもよく、情報処理装置2とSSD3とは、ネットワークなどを経由して通信可能に接続されてもよい。
SSD3は、I/Oインタフェース4、プロセッサ5、メモリ6、誤り訂正部7、メモリコントローラ8、不揮発性メモリ9を備える。
I/Oインタフェース4は、例えば情報処理装置2などのような外部装置との間で、データ、情報、信号、コマンドなどの送信及び受信を行う。
プロセッサ5は、プロセッサ5内のメモリに格納されているプログラム、メモリ6に格納されているプログラム、又は、不揮発性メモリ9に格納されているプログラムを実行することにより、受信部51、読み出し部52、判断部53、比較部54、検索部55、送信部56として機能する。
本実施形態において、プロセッサ5を、受信部51、読み出し部52、判断部53、比較部(第2の比較部)54、検索部55、送信部56として機能させるためのプログラムは、例えば、ミドルウェア、ファームウェア、アプリケーションプログラム、又は、オペレーティングシステム(OS)でもよい。本実施形態において、受信部51、読み出し部52、判断部53、比較部54、検索部55、送信部56のうちの一部又は全部は、ハードウェアにより実装されてもよい。
メモリ6は、例えばプロセッサ5による処理対象のプログラム、データ、情報などを格納し、作業用メモリとして利用される。メモリ6は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、不揮発性メモリでもよい。
メモリコントローラ8は、不揮発性メモリ9に対するアクセスを制御する。本実施形態において、メモリコントローラ8は、メモリ81、比較部82を備える。メモリコントローラ8に備えられている比較部82の一部又は全部は、ハードウェアで実装されてもよく、又は、ソフトウェアで実装されてもよい。比較部82は、メモリコントローラ8の外に配置されてもよく、例えば不揮発性メモリ9に備えられてもよい。
不揮発性メモリ9は、候補キーであるキーK1,K2,…,KNと、キーK1,K2,…,KNのそれぞれに対応付けられているアドレスA1,バリューV2,…,アドレスANと、アドレスA1,…,アドレスANによって示される位置に配置されているバリューV1,…,VNを格納する。
本実施形態において、キーK1,KNは、アドレスA1,ANを用いてバリューV1,VNを参照可能である。キーK2は、アドレスを用いることなく、直接的にバリューV2を参照可能である。
受信部51は、情報処理装置2からI/Oインタフェース4経由でキーKIを受信し、受信されたキーKIをメモリ6に書き込む。
本実施形態においては、キーKIは、外部の情報処理装置2からSSD3によって受信されたキーとしている。しかしながら、キーKIは、SSD3の内部の処理によって発生されたキーであり、受信部51は、そのSSD3の内部の処理によって発生されたキーを受け付ける受付部であってもよい。
読み出し部52は、候補キーのうちの未確認のキーをメモリコントローラ8を用いて不揮発性メモリ9から読み出し、読み出されたキーKR(第2のキー)をメモリ81に書き込む。読み出し部52は、例えば2分探索に基づいて候補キーから未確認のキーを読み出す。
メモリ81は、例えば、レジスタ又はバッファであり、不揮発性メモリ9から読み出されたキーKRを格納する。
比較部(第1の比較部)82は、メモリ6に書き込まれている受信されたキーKIと、メモリ81における読み出されたキーKRとを読み出す。そして、比較部82は、キーKIとキーKRとを比較する。例えば、比較部82は、キーKIの各ビットの情報とキーKRの各ビットの情報とを比較し、異なるビット数を加算することによりハミング距離を算出する。ここで、ハミング距離とは、長さの等しい2つの2元符号列(情報)において、対応する位置にある成分(情報)の対のうち、互いに異なる成分の数に相当する。
本実施形態においては、キーKIとキーKRとの類似度をハミング距離で表現する場合を例として説明する。しかしながら、キーKIとキーKRとの類似度は、例えばコサイン距離又はユークリッド距離などを用いるなど、各種の手法に基づいて判断されてもよい。
判断部53は、比較部82による比較結果(第1の比較結果)に基づいて誤り訂正可能か判断する。換言すれば、判定部53は、比較部82による比較結果が誤り訂正可能であることを示すか否か判断する。例えば、判定部53は、キーKIがキーKRの誤り訂正可能な範囲内か否かを、ハミング距離が誤り訂正可能な範囲内であるか否かに基づいて判断する。
ここで、訂正可能とは、キーKR又はデータに生じた誤りが、誤り訂正部7で用いられる誤り訂正の誤り訂正能力の範囲内であることをいう。例えば、キーKIとキーKRとのハミング距離が誤り訂正部7の訂正能力を示す値以下の場合に、判断部53は、キーKIとキーKRとのハミング距離が訂正可能な範囲内であると判断する。
比較部82による比較結果に基づいて誤り訂正可能であると判断された場合、誤り訂正部7は、メモリ81における読み出されたキーKRに対して誤り訂正を実行し、訂正されたキーKCをメモリ6に書き込む。誤り訂正部7で用いられる誤り訂正としては、例えば、ブロック符号に基づく誤り訂正、又は、畳み込み符号に基づく誤り訂正など、各種の方法が適用可能である。
比較部54は、メモリ6から受信されたキーKIと訂正されたキーKCとを読み出し、キーKIとキーKCとを比較し、整合するか判断する。
本実施形態において、整合とは、完全一致のみに限定されるものではない。整合とは、例えば所定の範囲内における一致(部分一致)などのように、ある程度近似していればよい。例えば、整合とは、あいまい検索によって抽出すべきと判断される場合を含むとしてもよい。ここで、あいまい検索とは、検索条件が完全に一致しない対象を一定の条件の下で抽出する検索方法である。
例えば、比較部54は、キーKIの各ビットの情報とキーKCの各ビットの情報とを比較し、異なるビット数が所定の数以下である場合に、キーKIとキーKCとが整合すると判断してもよい。例えば、比較部54は、キーKIの各ビットの情報とキーKCの各ビットの情報とを比較し、同一のビット数が所定の数以上である場合に、キーKIとキーKCとが整合すると判断してもよい。
検索部55は、比較部54による比較結果(第2の比較結果)が整合する場合に、メモリコントローラ8を経由して、不揮発性メモリ9において読み出されたキーKRに対応付けられているバリューを読み出す。例えば、検索部55は、キー・バリュー型検索を実行する。
誤り訂正部7は、検索部55によって読み出されたバリューに対して誤り訂正を実行し、訂正されたバリューVCをメモリ6に書き込む。誤り訂正部7の一部又は全部は、ハードウェアで実装されてもよく、又は、ソフトウェアで実装されてもよい。例えば、誤り訂正部7は、プロセッサ5に含まれていてもよく、メモリコントローラ8に含まれていてもよい。
送信部56は、メモリ6からバリューVCを読み出し、バリューVCをI/Oインタフェース4経由で情報処理装置2に送信する。
上記の比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、又は、上記の比較部54による比較結果が整合しない場合に、読み出し部52は、不揮発性メモリ9の候補キーのうち未だ読み出されていない次のキーを読み出し、読み出された次のキーKRをメモリ81に書き込む。
そして、比較部82は、メモリ6における受信されたキーKIと、メモリ81における読み出された次のキーKRとを比較する。
読み出し部52によってキーKIに対応する全ての候補キーが不揮発性メモリ9から読み出されたが、検索部55によって不揮発性メモリ9からバリューが読み出されなかった場合、送信部56は、キーKIに対応するバリューが不揮発性メモリ9に書き込まれていないことを示す信号Sを、I/Oインタフェース4経由で情報処理装置2に送信する。
例えば、信号Sは、キーKIに対してヒットしたバリューがゼロ件であったことを示す信号などのように、キーKIに対して適当な検索結果が得られなかったことを意味する信号である。
図2は、本実施形態に係るSSD3の処理の一例を示すフローチャートである。
ステップS201において、受信部51は、情報処理装置2から、I/Oインタフェース4経由で、キーKIを受信し、受信されたキーKIをメモリ6に書き込む。
ステップS202において、読み出し部52は、不揮発性メモリ9から候補キーのうちの未確認のキーを読み出し、読み出されたキーKRをメモリ81に書き込む。
ステップS203において、比較部82は、メモリ6における受信されたキーKIと、メモリ81における読み出されたキーKRとを比較する。
ステップS204において、判断部53は、比較部82による比較結果に基づいて誤り訂正可能であるか判断する。
比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、処理はステップS211に移動する。
比較部82による比較結果に基づいて誤り訂正可能であると判断された場合、ステップS205において、誤り訂正部7は、不揮発性メモリ9から読み出されメモリ81に書き込まれたキーKRに対して誤り訂正を実行し、訂正されたキーKCをメモリ6に書き込む。
比較部54は、ステップS206において、メモリ6における受信されたキーKIと訂正されたキーKCとを比較し、ステップS207において、キーKIとキーKCとが整合するかを判断する。
キーKIとキーKCとが整合しない場合、処理はステップS211に移動する。
キーKIとキーKCとが整合する場合、ステップS208において、検索部55は、メモリコントローラ8を経由して、不揮発性メモリ9において読み出されたキーKRに対応付けられているバリューを読み出す。
ステップS209において、誤り訂正部7は、検索部55によって読み出されたバリューに対して誤り訂正を実行し、訂正されたバリューVCをメモリ6に書き込む。
ステップS210において、送信部56は、メモリ6から訂正されたバリューVCを読み出し、バリューVCをI/Oインタフェース4経由で情報処理装置2に送信し、処理は終了する。
上記のステップS204で比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、又は、上記のステップS207でキーKIとキーKCとが整合しないと判断された場合、ステップS211において、読み出し部52は、不揮発性メモリ9に書き込まれている全ての候補キーが読み出されたか否か判断する。
全ての候補キーが読み出されていない場合、処理はステップS202に移動し、読み出し部52は、不揮発性メモリ9から次のキーを読み出し、読み出された次のキーKRをメモリ81に書き込む。その後、上記と同様の処理が実行される。
上記のステップS211において全ての候補キーが読み出されたと判断された場合、ステップS212において、送信部56は、キーKIに対応するバリューが不揮発性メモリ9に書き込まれていないことを示す信号Sを、I/Oインタフェース4経由で情報処理装置2に送信する。
図3は、本実施形態に係る読み出されたキーKRを格納するメモリ81と比較部82と不揮発性メモリ9との関係の一例を示す回路図である。
不揮発性メモリ9は、データを格納するための複数のメモリセル101と、複数のメモリセル101から読み出されたデータに関する信号を増幅する複数の増幅器102とを含む。
メモリセル101は、不揮発性メモリ9において、情報を格納するための最小単位の回路であり、ワード線とビット線の交点に配置される。本実施形態においては、メモリセル101からデータが読み出される場合を例示しているが、例えば、不揮発性メモリ9がHDDなどの場合には、セクタに格納されている情報が読み出される。このように、不揮発性メモリの種別に応じて、データが格納及び読み出される対象は異なる。
不揮発性メモリ9から読み出されたキーKRデータは、メモリ81に書き込まれる。
比較部82は、例えば、XOR(排他的論理和)回路、又は、一致回路を含む。比較部82は、受信されたキーKIと読み出されたメモリKRとの比較結果を出力する。
本実施形態において、複数のメモリセル101から読み出されたKRに関する信号は、読み出されたKRをメモリ81に格納可能なレベルになるように、複数の増幅器102によって増幅される。比較部82の第1の入力端子は、メモリ81に格納されているKRに関する情報(例えばビットの情報)を順次入力する。比較部82の第2の入力端子は、キーKIに関する情報(例えばビットの情報)を順次入力する。そして、比較部82は、第1の入力端子に入力されたKRに関する情報と第2の入力端子に入力されたキーKIに関する情報とを比較し、比較結果を出力する。なお、比較部82の第1及び第2の入力端子に入力される情報は、2値の情報に限られず、多値情報でもよい。
以上説明した本実施形態の効果について説明する。
例えば不揮発性メモリ9から読み出されたキーKRに誤りが含まれる場合があるとする。比較例では、不揮発性メモリ9からキーKRが読み出されるたびに誤り訂正が実行され、訂正されたキーKCと受信されたキーKRとが比較されるとする。この比較例では、キーKRに対して実行される誤り訂正の実行回数が多くなり、検索に時間がかかり、SSD3の消費電力が大きくなる。
これに対して、本実施形態においては、まず、受信されたキーKIと不揮発性メモリ9から読み出されたキーKRとが比較される。次に、比較結果が誤り訂正可能な範囲の場合に、不揮発性メモリ9から読み出されたキーKRに対して誤り訂正が実行され、比較結果が誤り訂正可能な範囲でないことを示す場合に、不揮発性メモリ9から次の候補のキーKRが読み出され、同様の処理が繰り返される。
これにより、本実施形態においては、不揮発性メモリ9から読み出されたキーKRに対する誤り訂正の実行回数を減少させることができ、検索時間を短縮化することができ、キー・バリュー型検索を効率的に実行することができ、SSD3の消費電力を低下させることができる。
本実施形態においては、検索の一例としてキー・バリュー型検索が説明されている。しかしながら、検索は、少なくとも、受け付けられたキー、情報、データ、又は、信号に関連するデータを抽出可能であればよい。例えば、複数のキーに対応するデータが抽出される場合にも本実施形態を同様に適用可能である。
[第2の実施形態]
本実施形態においては、上記第1の実施形態の変形例について説明する。本実施形態では、受信されたキーKIと読み出されたキーKRとを比較する比較部が不揮発性メモリに備えられている。
図4は、本実施形態に係るSSDを備える情報処理システムの一例を示すブロック図である。
情報処理システム1Aは、情報処理装置2とSSD3Aとを備える。SSD3Aのメモリコントローラ8Aは、上記第1の実施形態に係るメモリ81と比較部82とを備えなくてもよい。
不揮発性メモリ9Aは、受信されたキーKRと読み出されたキーKRとを比較する比較部91を備える。
図5は、本実施形態に係る比較部91と不揮発性メモリ9Aのメモリセル101との関係の一例を示す回路図である。
不揮発性メモリ9Aは、データを格納するための複数のメモリセル101と、複数のメモリセル101から読み出されたデータに関する信号を増幅する複数の増幅器102とを含む。
不揮発性メモリ9Aに組み込まれている比較部91は、読み出されたキーKRと受信されたキーKIとを比較し、比較結果を出力する。比較部91は、例えば、XOR(排他的論理和)回路、又は、一致回路を含む。
本実施形態において、比較部91は、複数の比較回路911を備える。複数のメモリセル101から読み出されたKRに関する情報は、複数の増幅器102によって比較回路911で比較可能なレベルになるように、増幅される。複数の比較回路911の第1の入力端子は、複数の増幅器102によって増幅されたKRに関する情報(例えばビットの情報)を入力する。複数の比較回路911の第2の入力端子は、キーKIに関する情報(例えばビットの情報)を入力する。そして、複数の比較回路911は、第1の入力端子に入力されたKRに関する情報と第2の入力端子に入力されたキーKIに関する情報とを比較し、比較結果を出力する。なお、複数の比較回路911の第1及び第2の入力端子に入力される情報は、2値の情報に限られず、多値情報でもよい。
以上説明した本実施形態においては、不揮発性メモリ9Aに組み込まれている比較部91を用いてキー・バリュー型検索を効率化することができ、上記第1の実施形態と同様の効果を得ることができる。本実施形態においては、メモリコントローラ8Aの変更を少なくすることができる。
[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理システム1,1Aの詳細構成について説明する。
図6は、本実施形態に係る情報処理システムの詳細構成の一例を示すブロック図である。
情報処理システム1Bは、情報処理装置2とメモリシステム3Bとを含む。
本実施形態に係るメモリシステム3Bは、キーKIに基づいてバリューVCを読み出し可能であり、さらに、論理アドレスに基づいてデータを読み出し可能であるとする。
上記第1及び第2の実施形態に係るSSD3,3Aは、メモリシステム3Bに対応する。
SSD3,3Aのプロセッサ5は、CPU43F,43Bに対応する。
I/Oインタフェース4は、ホストインタフェース41及びホストインタフェースコントローラ42に対応する。
メモリ6は、DRAM47に対応する。
誤り訂正部7は、ECC(誤り訂正部)49に対応する。
メモリコントローラ8,8Aは、NANDC(NAND Controller)50に対応する。
不揮発性メモリ9,9Aは、不揮発性メモリ9Bに対応する。
情報処理装置2は、ホスト装置として機能する。
メモリシステム3Bのコントローラ11は、フロントエンド4Fと、バックエンド4Bとを備える。
フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部(Advanced Encryption Standard (AES))44、及びCPU43Fを備える。
ホストインタフェース41は、情報処理装置2との間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA(Logical Block Addressing)、データ、キーKI、バリューVC、信号Sなどを通信する。
ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。
暗号化/復号化部44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。
バックエンド(メモリ通信部)4Bは、ライトバッファWB、リードバッファRB、LUT部45、DDRC46、DRAM47、DMAC48、ECC49、ランダマイザRZ、NANDC50、及びCPU43Bを備える。
ライトバッファ(ライトデータ転送部)WBは、情報処理装置2から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ9Bに適した所定のデータサイズになるまで、一時的にデータを格納する。
リードバッファ(リードデータ転送部)RBは、不揮発性メモリ9Bから読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置2に適した順序(情報処理装置2が指定した論理アドレスLBAの順序)になるように並び替えられる。
LUT45は、論理アドレスLBAを物理アドレスPBA(Physical Block Addressing)に変換するためのデータである。
DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。
DRAM47は、例えば、LUT45を格納する揮発性のメモリである。
DMAC(Direct Memory Access Controller)48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。図6においては1つのDMAC48が図示されているが、コントローラ11は、2以上のDMAC48を備えるとしてもよい。DMAC48は、必要に応じて、コントローラ11内の様々な位置に設定される。
ECC49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ9Bから読み出した読み出しデータを必要に応じて訂正する。
ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ9Bの特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ9BのメモリセルMCのセル寿命を長期化できる。そのため、不揮発性メモリ9Bの信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ9Bから読み出された読み出しデータはランダマイザRZを通過する。
NANDC50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ9Bにアクセスする。
CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。
なお、図6に示したコントローラ11の構成は例示であり、この構成に限定されることはない。
図7は、本実施形態に係るストレージシステムの一例を示す斜視図である。
ストレージシステム100は、SSDとしてのメモリシステム3Bを備える。
メモリシステム3Bは、例えば比較的小型のモジュールである。なお、メモリシステム3Bの大きさ及び寸法は、種々の大きさのものに適宜変更可能である。
また、メモリシステム3Bは、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置2に装着されて使用可能である。そのため、メモリシステム3Bは、エンタープライズ用SSD(eSSD)であってもよい。
メモリシステム3Bは、例えば上方に開口した複数のコネクタ(例えばスロット)12を備える。各コネクタ12は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、情報処理装置2と各メモリシステム3Bとが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ12は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。
複数のメモリシステム3Bは、情報処理装置2のコネクタ12にそれぞれ装着され、略垂直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム3Bをコンパクトに纏めて実装可能であり、メモリシステム3Bの小型化を図ることができる。さらに、本実施形態に係るメモリシステム3Bの各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム3Bは、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。
なお、メモリシステム3Bは、エンタープライズ用に限られない。例えば、メモリシステム3Bは、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。
以上説明したように、本実施形態で説明した構成を持つ情報処理システム1B及びストレージシステム100においては、大容量の記憶に、上記第1及び第2の実施形態と同様の効果を得ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…情報処理システム、2…情報処理装置、3…SSD、4…I/Oインタフェース、5…プロセッサ、51…受信部、52…読み出し部、53…判断部、54…比較部、55…検索部、56…送信部、6…メモリ、7…誤り訂正部、8,8A…メモリコントローラ、81…メモリ、9,9A…不揮発性メモリ、KI,KR,KC,K1〜KN…キー、V1〜VN,VC…バリュー、A1〜AN…アドレス、82,91…比較部、911…比較回路、101…メモリセル、102…増幅器。

Claims (11)

  1. 受け付けられた第1のキーと、不揮発性メモリから読み出された第2のキーとを比較する第1の比較部と、
    前記第1の比較部による第1の比較結果に基づいて誤り訂正可能か判断する判断部と、
    前記判断部によって誤り訂正可能と判断された場合に、前記第2のキーに対して誤り訂正を実行する訂正部と、
    前記第1のキーと、前記訂正部によって誤り訂正された前記第2のキーとを比較する第2の比較部と、
    前記第2の比較部による第2の比較結果が整合する場合に、前記不揮発性メモリにおいて前記第2のキーに対応付けられているデータを読み出す検索部と、
    を具備する検索装置。
  2. 前記第1の比較部は、前記判断部によって誤り訂正可能でないと判断された場合に、又は、前記第2の比較結果が整合しない場合に、前記第1のキーと、前記不揮発性メモリから読み出された次の第2のキーとを比較し、
    前記判断部は、前記第1のキーと前記次の第2のキーとの比較結果に基づいて誤り訂正可能か判断し、
    前記訂正部は、前記第1のキーと前記次の第2のキーとの比較結果に基づいて誤り訂正可能と判断された場合に、前記次の第2のキーに対して前記誤り訂正を実行し、
    前記第2の比較部は、前記第1のキーと、前記訂正部によって誤り訂正された前記次の第2のキーとを比較し、
    前記検索部は、前記第1のキーと前記誤り訂正された次の第2のキーとが整合する場合に、前記不揮発性メモリにおいて前記次の第2のキーに対応付けられているデータを読み出す、
    請求項1に記載の検索装置。
  3. 前記第1の比較部は、前記第1のキーと前記第2のキーとに基づいてハミング距離を算出し、
    前記判断部は、前記ハミング距離が誤り訂正可能な範囲か判断する、
    請求項1又は請求項2に記載の検索装置。
  4. 前記不揮発性メモリから前記第1のキーに対応する全ての候補キーが読み出されたが前記不揮発性メモリから前記第1のキーに対応するデータが読み出されなかった場合に、前記第1のキーに対応する前記データが前記不揮発性メモリにないことを示す信号を外部に送信する送信部をさらに具備する、請求項1乃至請求項3のいずれか1項に記載の検索装置。
  5. 前記訂正部は、前記検索部によって読み出された前記データを誤り訂正する、請求項1乃至請求項4のいずれか1項に記載の検索装置。
  6. 前記訂正部は、ECC(Error Correcting Code)に基づいて前記第2のキーを誤り訂正する、請求項1乃至請求項5のいずれか1項に記載の検索装置。
  7. 前記第1の比較部は、前記不揮発性メモリに対する書き込み及び読み出しを制御するメモリコントローラに備えられている、請求項1乃至請求項6のいずれか1項に記載の検索装置。
  8. 前記第1の比較部は、前記不揮発性メモリに備えられる、請求項1乃至請求項7のいずれか1項に記載の検索装置。
  9. 前記検索部はキー・バリュー型検索を実行する、請求項1乃至請求項8のいずれか1項に記載の検索装置。
  10. 前記不揮発性メモリは、NAND型フラッシュメモリである、請求項1乃至請求項9のいずれか1項に記載の検索装置。
  11. 受け付けられた第1のキーが不揮発性メモリから読み出された第2のキーの誤り訂正可能な範囲内か判断する判断部と、
    前記第1のキーが前記第2のキーの誤り訂正可能な範囲内と判断された場合に、前記第2のキーに対して誤り訂正を実行する訂正部と、
    前記第1のキーと、誤り訂正された前記第2のキーとが整合する場合に、前記不揮発性メモリにおいて前記第2のキーに対応付けられているデータを読み出す検索部と、
    を具備する検索装置。
JP2015028417A 2015-01-16 2015-02-17 検索装置 Active JP6297000B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/816,794 US9690652B2 (en) 2015-01-16 2015-08-03 Search device and search method searching data based on key

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562104298P 2015-01-16 2015-01-16
US62/104,298 2015-01-16

Publications (2)

Publication Number Publication Date
JP2016134166A JP2016134166A (ja) 2016-07-25
JP6297000B2 true JP6297000B2 (ja) 2018-03-20

Family

ID=56438132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015028417A Active JP6297000B2 (ja) 2015-01-16 2015-02-17 検索装置

Country Status (1)

Country Link
JP (1) JP6297000B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11955178B2 (en) 2021-09-17 2024-04-09 Kioxia Corporation Information processing apparatus and memory system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2838034B2 (ja) * 1994-03-31 1998-12-16 川崎製鉄株式会社 内容アドレス式メモリ
KR101062755B1 (ko) * 2009-07-29 2011-09-06 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 메모리 시스템 및 그 제어 방법
JP2012008651A (ja) * 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11955178B2 (en) 2021-09-17 2024-04-09 Kioxia Corporation Information processing apparatus and memory system

Also Published As

Publication number Publication date
JP2016134166A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
US10489290B2 (en) Data storage apparatus and operating method thereof
US10891236B2 (en) Data storage device and operating method thereof
US10120752B2 (en) Data storage device and data access-method
US10509602B2 (en) Data storage device and operating method thereof
US10303378B2 (en) Data storage device
US10769066B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
TWI737088B (zh) 主機型快閃記憶體維護技術
US10678443B2 (en) Method and system for high-density converged storage via memory bus
US10068650B1 (en) Characterizing and operating a non-volatile memory device
US20200241956A1 (en) Memory system and operating method thereof
KR20190117117A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20160253239A1 (en) Data storage device and operating method thereof
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
US9690652B2 (en) Search device and search method searching data based on key
KR20190091041A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
JP6297000B2 (ja) 検索装置
KR20210035912A (ko) 암호화 동작에 기초한 데이터 세그먼트 수정
KR20180023079A (ko) 반도체시스템
US11061764B2 (en) Data storage device and data retrieval method
US20160266823A1 (en) Data storage device and operating method thereof
KR102028666B1 (ko) 비식별 요청을 처리하는 저장 장치 및 그것의 동작 방법
KR20200128825A (ko) 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
KR20210028405A (ko) 서치 회로 및 컨트롤러
US12032492B2 (en) Method of operating storage device and method of operating storage system using the same
US20230128638A1 (en) Method of operating storage device and method of operating storage system using the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180220

R150 Certificate of patent or registration of utility model

Ref document number: 6297000

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350