JP2016134166A - Retrieval device - Google Patents
Retrieval device Download PDFInfo
- Publication number
- JP2016134166A JP2016134166A JP2015028417A JP2015028417A JP2016134166A JP 2016134166 A JP2016134166 A JP 2016134166A JP 2015028417 A JP2015028417 A JP 2015028417A JP 2015028417 A JP2015028417 A JP 2015028417A JP 2016134166 A JP2016134166 A JP 2016134166A
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 166
- 238000012937 correction Methods 0.000 claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004904 shortening Methods 0.000 abstract 1
- 230000010365 information processing Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本実施形態は、検索装置に関する。 The present embodiment relates to a search device.
キー・バリュー型検索を実行するメモリ装置においては、検索時間の短縮が求められる。そのため、キー・バリュー型検索を実行するメモリ装置として、高速にアクセス可能なソリッドステートドライブ(SSD)が用いられる。SSDは、例えば、NAND型フラッシュメモリなどのような不揮発性メモリを備える。NAND型フラッシュメモリは、複数のブロック(物理ブロック)を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。 In a memory device that performs a key / value type search, a reduction in search time is required. For this reason, a solid-state drive (SSD) that can be accessed at high speed is used as a memory device that performs key-value search. The SSD includes a non-volatile memory such as a NAND flash memory, for example. The NAND flash memory includes a plurality of blocks (physical blocks). The plurality of blocks include a plurality of memory cells arranged at intersections of word lines and bit lines.
本実施形態は、検索時間を短縮可能な検索装置を提供する。 The present embodiment provides a search device that can shorten the search time.
本実施形態によれば、検索装置は、第1の比較部と、判断部と、第2の比較部と、検索部とを含む。第1の比較部は、受け付けられた第1のキーと、不揮発性メモリから読み出された第2のキーとを比較する。判断部は、第1の比較部による第1の比較結果に基づいて誤り訂正可能か判断する。訂正部は、判断部によって誤り訂正可能と判断された場合に、第2のキーに対して誤り訂正を実行する。第2の比較部は、第1のキーと、訂正部によって誤り訂正された第2のキーとを比較する。検索部は、第2の比較部による第2の比較結果が整合する場合に、不揮発性メモリにおいて第2のキーに対応付けられているデータを読み出す。 According to the present embodiment, the search device includes a first comparison unit, a determination unit, a second comparison unit, and a search unit. The first comparison unit compares the received first key with the second key read from the nonvolatile memory. The determination unit determines whether error correction is possible based on the first comparison result by the first comparison unit. The correction unit performs error correction on the second key when the determination unit determines that the error correction is possible. The second comparison unit compares the first key with the second key that has been error-corrected by the correction unit. The search unit reads data associated with the second key in the nonvolatile memory when the second comparison result by the second comparison unit matches.
以下、図面を参照して実施形態について説明する。以下の説明において、略同一の機能及び構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。 Hereinafter, embodiments will be described with reference to the drawings. In the following description, about the same function and component, the same code | symbol is attached | subjected and duplication description is performed only when necessary.
[第1の実施形態]
本実施形態においては、メモリ装置に備えられている検索装置について説明する。メモリ装置は、不揮発性メモリを備えている。
[First Embodiment]
In the present embodiment, a search device provided in a memory device will be described. The memory device includes a nonvolatile memory.
本実施形態において、不揮発性メモリは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)でもよい。 In this embodiment, the nonvolatile memory is a NAND flash memory, and the memory device is an SSD. However, non-volatile memory includes NOR type flash memory, MRAM (Magnetoresistive Random access memory), PRAM (Phase change Random access memory), ReRAM (Resistive Random access memory), Nonvolatile memory such as FeRAM (Ferroelectric Random Access Memory) may be used. Further, a part or all of the memory device may be a hard disk drive (HDD).
本実施形態において、不揮発性メモリから読み出されたデータには誤りが含まれる場合があるとする。 In the present embodiment, it is assumed that the data read from the nonvolatile memory may include an error.
本実施形態において、アクセスとは、記憶装置へデータを書き込むこと、及び、記憶装置からデータを読み出すことの双方を意味する。 In the present embodiment, access means both writing data to the storage device and reading data from the storage device.
図1は、本実施形態に係るSSDを備える情報処理システムの一例を示すブロック図である。 FIG. 1 is a block diagram illustrating an example of an information processing system including an SSD according to the present embodiment.
情報処理システム1は、情報処理装置2とメモリ装置の一例であるSSD3とを含む。情報処理装置2は、SSD3に対応するホスト装置でもよい。
The information processing system 1 includes an
情報処理装置2は、SSD3にキーKI(第1のキー)を送信し、SSD3から、キーKIに対応するデータ(以下、バリューという)VC、又は、キーKIに対応するバリューがSSD3の不揮発性メモリ9にないことを示す信号Sを受信する。
The
SSD3は、情報処理装置2からキーKIを受信し、キーKIに対応するバリューVC又は信号Sを情報処理装置2へ送信する。SSD3は、情報処理装置2に内蔵されてもよく、情報処理装置2とSSD3とは、ネットワークなどを経由して通信可能に接続されてもよい。
SSD3 receives key K I from the
SSD3は、I/Oインタフェース4、プロセッサ5、メモリ6、誤り訂正部7、メモリコントローラ8、不揮発性メモリ9を備える。
The SSD 3 includes an I /
I/Oインタフェース4は、例えば情報処理装置2などのような外部装置との間で、データ、情報、信号、コマンドなどの送信及び受信を行う。
The I /
プロセッサ5は、プロセッサ5内のメモリに格納されているプログラム、メモリ6に格納されているプログラム、又は、不揮発性メモリ9に格納されているプログラムを実行することにより、受信部51、読み出し部52、判断部53、比較部54、検索部55、送信部56として機能する。
The
本実施形態において、プロセッサ5を、受信部51、読み出し部52、判断部53、比較部(第2の比較部)54、検索部55、送信部56として機能させるためのプログラムは、例えば、ミドルウェア、ファームウェア、アプリケーションプログラム、又は、オペレーティングシステム(OS)でもよい。本実施形態において、受信部51、読み出し部52、判断部53、比較部54、検索部55、送信部56のうちの一部又は全部は、ハードウェアにより実装されてもよい。
In the present embodiment, a program for causing the
メモリ6は、例えばプロセッサ5による処理対象のプログラム、データ、情報などを格納し、作業用メモリとして利用される。メモリ6は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、不揮発性メモリでもよい。
The
メモリコントローラ8は、不揮発性メモリ9に対するアクセスを制御する。本実施形態において、メモリコントローラ8は、メモリ81、比較部82を備える。メモリコントローラ8に備えられている比較部82の一部又は全部は、ハードウェアで実装されてもよく、又は、ソフトウェアで実装されてもよい。比較部82は、メモリコントローラ8の外に配置されてもよく、例えば不揮発性メモリ9に備えられてもよい。
The
不揮発性メモリ9は、候補キーであるキーK1,K2,…,KNと、キーK1,K2,…,KNのそれぞれに対応付けられているアドレスA1,バリューV2,…,アドレスANと、アドレスA1,…,アドレスANによって示される位置に配置されているバリューV1,…,VNを格納する。
本実施形態において、キーK1,KNは、アドレスA1,ANを用いてバリューV1,VNを参照可能である。キーK2は、アドレスを用いることなく、直接的にバリューV2を参照可能である。 In this embodiment, the keys K 1 and K N can refer to the values V 1 and V N using the addresses A 1 and A N. The key K 2 can directly reference the value V 2 without using an address.
受信部51は、情報処理装置2からI/Oインタフェース4経由でキーKIを受信し、受信されたキーKIをメモリ6に書き込む。
Receiving
本実施形態においては、キーKIは、外部の情報処理装置2からSSD3によって受信されたキーとしている。しかしながら、キーKIは、SSD3の内部の処理によって発生されたキーであり、受信部51は、そのSSD3の内部の処理によって発生されたキーを受け付ける受付部であってもよい。
In the present embodiment, the key K I is a key that is received by the external
読み出し部52は、候補キーのうちの未確認のキーをメモリコントローラ8を用いて不揮発性メモリ9から読み出し、読み出されたキーKR(第2のキー)をメモリ81に書き込む。読み出し部52は、例えば2分探索に基づいて候補キーから未確認のキーを読み出す。
The
メモリ81は、例えば、レジスタ又はバッファであり、不揮発性メモリ9から読み出されたキーKRを格納する。
比較部(第1の比較部)82は、メモリ6に書き込まれている受信されたキーKIと、メモリ81における読み出されたキーKRとを読み出す。そして、比較部82は、キーKIとキーKRとを比較する。例えば、比較部82は、キーKIの各ビットの情報とキーKRの各ビットの情報とを比較し、異なるビット数を加算することによりハミング距離を算出する。ここで、ハミング距離とは、長さの等しい2つの2元符号列(情報)において、対応する位置にある成分(情報)の対のうち、互いに異なる成分の数に相当する。
Comparing unit (first comparison unit) 82 reads a key K I received is written in the
本実施形態においては、キーKIとキーKRとの類似度をハミング距離で表現する場合を例として説明する。しかしながら、キーKIとキーKRとの類似度は、例えばコサイン距離又はユークリッド距離などを用いるなど、各種の手法に基づいて判断されてもよい。 In the present embodiment, illustrating the similarity between the key K I and key K R as an example a case of representing in Hamming distance. However, the similarity between the key K I and key K R is, for example, using such cosine distance or the Euclidean distance may be determined based on various techniques.
判断部53は、比較部82による比較結果(第1の比較結果)に基づいて誤り訂正可能か判断する。換言すれば、判定部53は、比較部82による比較結果が誤り訂正可能であることを示すか否か判断する。例えば、判定部53は、キーKIがキーKRの誤り訂正可能な範囲内か否かを、ハミング距離が誤り訂正可能な範囲内であるか否かに基づいて判断する。
The
ここで、訂正可能とは、キーKR又はデータに生じた誤りが、誤り訂正部7で用いられる誤り訂正の誤り訂正能力の範囲内であることをいう。例えば、キーKIとキーKRとのハミング距離が誤り訂正部7の訂正能力を示す値以下の場合に、判断部53は、キーKIとキーKRとのハミング距離が訂正可能な範囲内であると判断する。
Here, correctable The error occurring in the key K R or data, means that in the range of error correction capability of the error correction used in the error correction unit 7. For example, if the Hamming distance between the key K I and the key K R is less than or equal to the value that indicates the correction capability of the error correction unit 7,
比較部82による比較結果に基づいて誤り訂正可能であると判断された場合、誤り訂正部7は、メモリ81における読み出されたキーKRに対して誤り訂正を実行し、訂正されたキーKCをメモリ6に書き込む。誤り訂正部7で用いられる誤り訂正としては、例えば、ブロック符号に基づく誤り訂正、又は、畳み込み符号に基づく誤り訂正など、各種の方法が適用可能である。
If it is determined that based on the comparison result by the comparing
比較部54は、メモリ6から受信されたキーKIと訂正されたキーKCとを読み出し、キーKIとキーKCとを比較し、整合するか判断する。
Comparing
本実施形態において、整合とは、完全一致のみに限定されるものではない。整合とは、例えば所定の範囲内における一致(部分一致)などのように、ある程度近似していればよい。例えば、整合とは、あいまい検索によって抽出すべきと判断される場合を含むとしてもよい。ここで、あいまい検索とは、検索条件が完全に一致しない対象を一定の条件の下で抽出する検索方法である。 In the present embodiment, matching is not limited to complete matching. The matching may be approximated to some extent, for example, matching (partial matching) within a predetermined range. For example, the term “match” may include a case where it is determined to be extracted by an ambiguous search. Here, the fuzzy search is a search method that extracts objects whose search conditions do not completely match under a certain condition.
例えば、比較部54は、キーKIの各ビットの情報とキーKCの各ビットの情報とを比較し、異なるビット数が所定の数以下である場合に、キーKIとキーKCとが整合すると判断してもよい。例えば、比較部54は、キーKIの各ビットの情報とキーKCの各ビットの情報とを比較し、同一のビット数が所定の数以上である場合に、キーKIとキーKCとが整合すると判断してもよい。
For example, the
検索部55は、比較部54による比較結果(第2の比較結果)が整合する場合に、メモリコントローラ8を経由して、不揮発性メモリ9において読み出されたキーKRに対応付けられているバリューを読み出す。例えば、検索部55は、キー・バリュー型検索を実行する。
When the comparison result (second comparison result) by the
誤り訂正部7は、検索部55によって読み出されたバリューに対して誤り訂正を実行し、訂正されたバリューVCをメモリ6に書き込む。誤り訂正部7の一部又は全部は、ハードウェアで実装されてもよく、又は、ソフトウェアで実装されてもよい。例えば、誤り訂正部7は、プロセッサ5に含まれていてもよく、メモリコントローラ8に含まれていてもよい。
The error correction unit 7 performs error correction on the value read by the
送信部56は、メモリ6からバリューVCを読み出し、バリューVCをI/Oインタフェース4経由で情報処理装置2に送信する。
上記の比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、又は、上記の比較部54による比較結果が整合しない場合に、読み出し部52は、不揮発性メモリ9の候補キーのうち未だ読み出されていない次のキーを読み出し、読み出された次のキーKRをメモリ81に書き込む。
When it is determined that the error correction is not possible based on the comparison result by the
そして、比較部82は、メモリ6における受信されたキーKIと、メモリ81における読み出された次のキーKRとを比較する。
The
読み出し部52によってキーKIに対応する全ての候補キーが不揮発性メモリ9から読み出されたが、検索部55によって不揮発性メモリ9からバリューが読み出されなかった場合、送信部56は、キーKIに対応するバリューが不揮発性メモリ9に書き込まれていないことを示す信号Sを、I/Oインタフェース4経由で情報処理装置2に送信する。
If all the candidate key corresponding to the key K I by the
例えば、信号Sは、キーKIに対してヒットしたバリューがゼロ件であったことを示す信号などのように、キーKIに対して適当な検索結果が得られなかったことを意味する信号である。 For example, signal S, such as a signal indicating that the value of a hit for the key K I were stars zero signal indicating that the appropriate search results for the key K I is not obtained It is.
図2は、本実施形態に係るSSD3の処理の一例を示すフローチャートである。 FIG. 2 is a flowchart illustrating an example of the processing of the SSD 3 according to the present embodiment.
ステップS201において、受信部51は、情報処理装置2から、I/Oインタフェース4経由で、キーKIを受信し、受信されたキーKIをメモリ6に書き込む。
In step S201, the receiving
ステップS202において、読み出し部52は、不揮発性メモリ9から候補キーのうちの未確認のキーを読み出し、読み出されたキーKRをメモリ81に書き込む。
In step S202, the
ステップS203において、比較部82は、メモリ6における受信されたキーKIと、メモリ81における読み出されたキーKRとを比較する。
In step S203, the comparing
ステップS204において、判断部53は、比較部82による比較結果に基づいて誤り訂正可能であるか判断する。
In step S <b> 204, the
比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、処理はステップS211に移動する。
If it is determined that error correction is not possible based on the comparison result by the
比較部82による比較結果に基づいて誤り訂正可能であると判断された場合、ステップS205において、誤り訂正部7は、不揮発性メモリ9から読み出されメモリ81に書き込まれたキーKRに対して誤り訂正を実行し、訂正されたキーKCをメモリ6に書き込む。
If it is determined that the error correction is possible based on the comparison result by the
比較部54は、ステップS206において、メモリ6における受信されたキーKIと訂正されたキーKCとを比較し、ステップS207において、キーKIとキーKCとが整合するかを判断する。
The
キーKIとキーKCとが整合しない場合、処理はステップS211に移動する。 If the key K I and the key K C do not match, the process moves to step S211.
キーKIとキーKCとが整合する場合、ステップS208において、検索部55は、メモリコントローラ8を経由して、不揮発性メモリ9において読み出されたキーKRに対応付けられているバリューを読み出す。
If the key K I and the key K C match, in step S 208, the
ステップS209において、誤り訂正部7は、検索部55によって読み出されたバリューに対して誤り訂正を実行し、訂正されたバリューVCをメモリ6に書き込む。
In step S209, the error correction unit 7 performs error correction on the value read by the
ステップS210において、送信部56は、メモリ6から訂正されたバリューVCを読み出し、バリューVCをI/Oインタフェース4経由で情報処理装置2に送信し、処理は終了する。
In step S210, the
上記のステップS204で比較部82による比較結果に基づいて誤り訂正可能でないと判断された場合、又は、上記のステップS207でキーKIとキーKCとが整合しないと判断された場合、ステップS211において、読み出し部52は、不揮発性メモリ9に書き込まれている全ての候補キーが読み出されたか否か判断する。
If it is determined in step S204 that error correction is not possible based on the comparison result by the
全ての候補キーが読み出されていない場合、処理はステップS202に移動し、読み出し部52は、不揮発性メモリ9から次のキーを読み出し、読み出された次のキーKRをメモリ81に書き込む。その後、上記と同様の処理が実行される。
If all of the candidate key is not read, the process moves to step S202, the
上記のステップS211において全ての候補キーが読み出されたと判断された場合、ステップS212において、送信部56は、キーKIに対応するバリューが不揮発性メモリ9に書き込まれていないことを示す信号Sを、I/Oインタフェース4経由で情報処理装置2に送信する。
If all of the candidate keys in step S211 described above is judged to have been read, in step S212, the
図3は、本実施形態に係る読み出されたキーKRを格納するメモリ81と比較部82と不揮発性メモリ9との関係の一例を示す回路図である。
Figure 3 is a circuit diagram showing an example of a relationship between a
不揮発性メモリ9は、データを格納するための複数のメモリセル101と、複数のメモリセル101から読み出されたデータに関する信号を増幅する複数の増幅器102とを含む。
The
メモリセル101は、不揮発性メモリ9において、情報を格納するための最小単位の回路であり、ワード線とビット線の交点に配置される。本実施形態においては、メモリセル101からデータが読み出される場合を例示しているが、例えば、不揮発性メモリ9がHDDなどの場合には、セクタに格納されている情報が読み出される。このように、不揮発性メモリの種別に応じて、データが格納及び読み出される対象は異なる。
The
不揮発性メモリ9から読み出されたキーKRデータは、メモリ81に書き込まれる。
Key K R data read from the
比較部82は、例えば、XOR(排他的論理和)回路、又は、一致回路を含む。比較部82は、受信されたキーKIと読み出されたメモリKRとの比較結果を出力する。
The
本実施形態において、複数のメモリセル101から読み出されたKRに関する信号は、読み出されたKRをメモリ81に格納可能なレベルになるように、複数の増幅器102によって増幅される。比較部82の第1の入力端子は、メモリ81に格納されているKRに関する情報(例えばビットの情報)を順次入力する。比較部82の第2の入力端子は、キーKIに関する情報(例えばビットの情報)を順次入力する。そして、比較部82は、第1の入力端子に入力されたKRに関する情報と第2の入力端子に入力されたキーKIに関する情報とを比較し、比較結果を出力する。なお、比較部82の第1及び第2の入力端子に入力される情報は、2値の情報に限られず、多値情報でもよい。
In the present embodiment, the signal related to K R read from the plurality of
以上説明した本実施形態の効果について説明する。 The effect of this embodiment described above will be described.
例えば不揮発性メモリ9から読み出されたキーKRに誤りが含まれる場合があるとする。比較例では、不揮発性メモリ9からキーKRが読み出されるたびに誤り訂正が実行され、訂正されたキーKCと受信されたキーKRとが比較されるとする。この比較例では、キーKRに対して実行される誤り訂正の実行回数が多くなり、検索に時間がかかり、SSD3の消費電力が大きくなる。
Eg, it may contain errors in the key K R read from the
これに対して、本実施形態においては、まず、受信されたキーKIと不揮発性メモリ9から読み出されたキーKRとが比較される。次に、比較結果が誤り訂正可能な範囲の場合に、不揮発性メモリ9から読み出されたキーKRに対して誤り訂正が実行され、比較結果が誤り訂正可能な範囲でないことを示す場合に、不揮発性メモリ9から次の候補のキーKRが読み出され、同様の処理が繰り返される。
In contrast, in the present embodiment, first, a key K R read from the key K I and
これにより、本実施形態においては、不揮発性メモリ9から読み出されたキーKRに対する誤り訂正の実行回数を減少させることができ、検索時間を短縮化することができ、キー・バリュー型検索を効率的に実行することができ、SSD3の消費電力を低下させることができる。
Thus, in the present embodiment, it is possible to reduce the number of executions of the error correction for the key K R read from the
本実施形態においては、検索の一例としてキー・バリュー型検索が説明されている。しかしながら、検索は、少なくとも、受け付けられたキー、情報、データ、又は、信号に関連するデータを抽出可能であればよい。例えば、複数のキーに対応するデータが抽出される場合にも本実施形態を同様に適用可能である。 In this embodiment, a key / value type search is described as an example of a search. However, the search only needs to extract at least the received key, information, data, or data related to the signal. For example, the present embodiment can be similarly applied when data corresponding to a plurality of keys is extracted.
[第2の実施形態]
本実施形態においては、上記第1の実施形態の変形例について説明する。本実施形態では、受信されたキーKIと読み出されたキーKRとを比較する比較部が不揮発性メモリに備えられている。
[Second Embodiment]
In the present embodiment, a modified example of the first embodiment will be described. In the present embodiment, the comparison unit for comparing the key K R read the received key K I is provided in the non-volatile memory.
図4は、本実施形態に係るSSDを備える情報処理システムの一例を示すブロック図である。 FIG. 4 is a block diagram illustrating an example of an information processing system including the SSD according to the present embodiment.
情報処理システム1Aは、情報処理装置2とSSD3Aとを備える。SSD3Aのメモリコントローラ8Aは、上記第1の実施形態に係るメモリ81と比較部82とを備えなくてもよい。
The
不揮発性メモリ9Aは、受信されたキーKRと読み出されたキーKRとを比較する比較部91を備える。
The
図5は、本実施形態に係る比較部91と不揮発性メモリ9Aのメモリセル101との関係の一例を示す回路図である。
FIG. 5 is a circuit diagram showing an example of the relationship between the
不揮発性メモリ9Aは、データを格納するための複数のメモリセル101と、複数のメモリセル101から読み出されたデータに関する信号を増幅する複数の増幅器102とを含む。
The
不揮発性メモリ9Aに組み込まれている比較部91は、読み出されたキーKRと受信されたキーKIとを比較し、比較結果を出力する。比較部91は、例えば、XOR(排他的論理和)回路、又は、一致回路を含む。
Comparing
本実施形態において、比較部91は、複数の比較回路911を備える。複数のメモリセル101から読み出されたKRに関する情報は、複数の増幅器102によって比較回路911で比較可能なレベルになるように、増幅される。複数の比較回路911の第1の入力端子は、複数の増幅器102によって増幅されたKRに関する情報(例えばビットの情報)を入力する。複数の比較回路911の第2の入力端子は、キーKIに関する情報(例えばビットの情報)を入力する。そして、複数の比較回路911は、第1の入力端子に入力されたKRに関する情報と第2の入力端子に入力されたキーKIに関する情報とを比較し、比較結果を出力する。なお、複数の比較回路911の第1及び第2の入力端子に入力される情報は、2値の情報に限られず、多値情報でもよい。
In the present embodiment, the
以上説明した本実施形態においては、不揮発性メモリ9Aに組み込まれている比較部91を用いてキー・バリュー型検索を効率化することができ、上記第1の実施形態と同様の効果を得ることができる。本実施形態においては、メモリコントローラ8Aの変更を少なくすることができる。
In the present embodiment described above, the key / value type search can be made more efficient by using the
[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理システム1,1Aの詳細構成について説明する。
[Third Embodiment]
In the present embodiment, the detailed configuration of the
図6は、本実施形態に係る情報処理システムの詳細構成の一例を示すブロック図である。 FIG. 6 is a block diagram illustrating an example of a detailed configuration of the information processing system according to the present embodiment.
情報処理システム1Bは、情報処理装置2とメモリシステム3Bとを含む。
The information processing system 1B includes an
本実施形態に係るメモリシステム3Bは、キーKIに基づいてバリューVCを読み出し可能であり、さらに、論理アドレスに基づいてデータを読み出し可能であるとする。 Memory system 3B according to the present embodiment is capable of reading the value V C based on the key K I, further, to be read data based on the logical address.
上記第1及び第2の実施形態に係るSSD3,3Aは、メモリシステム3Bに対応する。 The SSDs 3 and 3A according to the first and second embodiments correspond to the memory system 3B.
SSD3,3Aのプロセッサ5は、CPU43F,43Bに対応する。
The
I/Oインタフェース4は、ホストインタフェース41及びホストインタフェースコントローラ42に対応する。
The I /
メモリ6は、DRAM47に対応する。
The
誤り訂正部7は、ECC(誤り訂正部)49に対応する。 The error correction unit 7 corresponds to an ECC (error correction unit) 49.
メモリコントローラ8,8Aは、NANDC(NAND Controller)50に対応する。
The
不揮発性メモリ9,9Aは、不揮発性メモリ9Bに対応する。
The
情報処理装置2は、ホスト装置として機能する。
The
メモリシステム3Bのコントローラ11は、フロントエンド4Fと、バックエンド4Bとを備える。
The
フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部(Advanced Encryption Standard (AES))44、及びCPU43Fを備える。
The front end (host communication unit) 4F includes a
ホストインタフェース41は、情報処理装置2との間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA(Logical Block Addressing)、データ、キーKI、バリューVC、信号Sなどを通信する。
The
ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。
The host interface controller (control unit) 42 controls communication of the
暗号化/復号化部44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
The encryption /
CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。
The
バックエンド(メモリ通信部)4Bは、ライトバッファWB、リードバッファRB、LUT部45、DDRC46、DRAM47、DMAC48、ECC49、ランダマイザRZ、NANDC50、及びCPU43Bを備える。
The back end (memory communication unit) 4B includes a write buffer WB, a read buffer RB, an
ライトバッファ(ライトデータ転送部)WBは、情報処理装置2から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ9Bに適した所定のデータサイズになるまで、一時的にデータを格納する。
The write buffer (write data transfer unit) WB temporarily stores the write data transmitted from the
リードバッファ(リードデータ転送部)RBは、不揮発性メモリ9Bから読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置2に適した順序(情報処理装置2が指定した論理アドレスLBAの順序)になるように並び替えられる。
The read buffer (read data transfer unit) RB temporarily stores read data read from the
LUT45は、論理アドレスLBAを物理アドレスPBA(Physical Block Addressing)に変換するためのデータである。
The
DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。
The
DRAM47は、例えば、LUT45を格納する揮発性のメモリである。
The
DMAC(Direct Memory Access Controller)48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。図6においては1つのDMAC48が図示されているが、コントローラ11は、2以上のDMAC48を備えるとしてもよい。DMAC48は、必要に応じて、コントローラ11内の様々な位置に設定される。
A DMAC (Direct Memory Access Controller) 48 transfers write data, read data, and the like via the internal bus IB. Although one
ECC49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ9Bから読み出した読み出しデータを必要に応じて訂正する。
The
ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ9Bの特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ9BのメモリセルMCのセル寿命を長期化できる。そのため、不揮発性メモリ9Bの信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ9Bから読み出された読み出しデータはランダマイザRZを通過する。
The randomizer RZ (or scrambler) distributes the write data so that the write data is not biased to a specific page or word line direction of the
NANDC50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ9Bにアクセスする。
The
CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。
The
なお、図6に示したコントローラ11の構成は例示であり、この構成に限定されることはない。
Note that the configuration of the
図7は、本実施形態に係るストレージシステムの一例を示す斜視図である。 FIG. 7 is a perspective view showing an example of a storage system according to the present embodiment.
ストレージシステム100は、SSDとしてのメモリシステム3Bを備える。 The storage system 100 includes a memory system 3B as an SSD.
メモリシステム3Bは、例えば比較的小型のモジュールである。なお、メモリシステム3Bの大きさ及び寸法は、種々の大きさのものに適宜変更可能である。 The memory system 3B is a relatively small module, for example. Note that the size and size of the memory system 3B can be appropriately changed to various sizes.
また、メモリシステム3Bは、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置2に装着されて使用可能である。そのため、メモリシステム3Bは、エンタープライズ用SSD(eSSD)であってもよい。
In addition, the memory system 3B can be used by being mounted on the
メモリシステム3Bは、例えば上方に開口した複数のコネクタ(例えばスロット)12を備える。各コネクタ12は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、情報処理装置2と各メモリシステム3Bとが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ12は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。
The memory system 3B includes, for example, a plurality of connectors (for example, slots) 12 opened upward. Each connector 12 is, for example, a SAS (Serial Attached SCSI) connector. According to this SAS connector, the
複数のメモリシステム3Bは、情報処理装置2のコネクタ12にそれぞれ装着され、略垂直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム3Bをコンパクトに纏めて実装可能であり、メモリシステム3Bの小型化を図ることができる。さらに、本実施形態に係るメモリシステム3Bの各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム3Bは、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。
The plurality of memory systems 3B are respectively attached to the connectors 12 of the
なお、メモリシステム3Bは、エンタープライズ用に限られない。例えば、メモリシステム3Bは、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。 The memory system 3B is not limited to enterprise use. For example, the memory system 3B can also be applied as a storage medium for consumer electronic devices such as notebook portable computers or tablet terminals.
以上説明したように、本実施形態で説明した構成を持つ情報処理システム1B及びストレージシステム100においては、大容量の記憶に、上記第1及び第2の実施形態と同様の効果を得ることができる。 As described above, in the information processing system 1B and the storage system 100 having the configuration described in this embodiment, the same effects as those in the first and second embodiments can be obtained for large-capacity storage. .
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
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…増幅器。 DESCRIPTION OF SYMBOLS 1 ... Information processing system, 2 ... Information processing apparatus, 3 ... SSD, 4 ... I / O interface, 5 ... Processor, 51 ... Reception part, 52 ... Reading part, 53 ... Judgment part, 54 ... Comparison part, 55 ... Search , 56 ... Transmitter, 6 ... Memory, 7 ... Error correction section, 8, 8A ... Memory controller, 81 ... Memory, 9, 9A ... Non-volatile memory, K I , K R , K C , K 1 to K N Key, V 1 to V N , V C ... Value, A 1 to A N ... Address, 82, 91 ... Comparison unit, 911 ... Comparison circuit, 101 ... Memory cell, 102 ... Amplifier.
Claims (11)
前記第1の比較部による第1の比較結果に基づいて誤り訂正可能か判断する判断部と、
前記判断部によって誤り訂正可能と判断された場合に、前記第2のキーに対して誤り訂正を実行する訂正部と、
前記第1のキーと、前記訂正部によって誤り訂正された前記第2のキーとを比較する第2の比較部と、
前記第2の比較部による第2の比較結果が整合する場合に、前記不揮発性メモリにおいて前記第2のキーに対応付けられているデータを読み出す検索部と、
を具備する検索装置。 A first comparison unit that compares the received first key with the second key read from the nonvolatile memory;
A determination unit that determines whether error correction is possible based on a first comparison result by the first comparison unit;
A correction unit that performs error correction on the second key when the determination unit determines that error correction is possible;
A second comparison unit that compares the first key with the second key that has been error-corrected by the correction unit;
A search unit that reads data associated with the second key in the nonvolatile memory when a second comparison result by the second comparison unit matches;
A search device comprising:
前記判断部は、前記第1のキーと前記次の第2のキーとの比較結果に基づいて誤り訂正可能か判断し、
前記訂正部は、前記第1のキーと前記次の第2のキーとの比較結果に基づいて誤り訂正可能と判断された場合に、前記次の第2のキーに対して前記誤り訂正を実行し、
前記第2の比較部は、前記第1のキーと、前記訂正部によって誤り訂正された前記次の第2のキーとを比較し、
前記検索部は、前記第1のキーと前記誤り訂正された次の第2のキーとが整合する場合に、前記不揮発性メモリにおいて前記次の第2のキーに対応付けられているデータを読み出す、
請求項1に記載の検索装置。 The first comparison unit reads from the first key and the non-volatile memory when the determination unit determines that error correction is not possible, or when the second comparison result does not match. Compare with the next second key issued,
The determination unit determines whether error correction is possible based on a comparison result between the first key and the next second key;
The correction unit performs the error correction on the next second key when it is determined that error correction is possible based on a comparison result between the first key and the next second key. And
The second comparison unit compares the first key with the next second key error-corrected by the correction unit;
The search unit reads data associated with the next second key in the nonvolatile memory when the first key matches the error-corrected second key. ,
The search device according to claim 1.
前記判断部は、前記ハミング距離が誤り訂正可能な範囲か判断する、
請求項1又は請求項2に記載の検索装置。 The first comparison unit calculates a Hamming distance based on the first key and the second key;
The determination unit determines whether the Hamming distance is within a range in which error correction is possible.
The search device according to claim 1 or 2.
前記第1のキーが前記第2のキーの誤り訂正可能な範囲内と判断された場合に、前記第2のキーに対して誤り訂正を実行する訂正部と、
前記第1のキーと、誤り訂正された前記第2のキーとが整合する場合に、前記不揮発性メモリにおいて前記第2のキーに対応付けられているデータを読み出す検索部と、
を具備する検索装置。 A determination unit that determines whether the accepted first key is within an error-correctable range of the second key read from the nonvolatile memory;
A correction unit that performs error correction on the second key when it is determined that the first key is within an error-correctable range of the second key;
A search unit that reads data associated with the second key in the non-volatile memory when the first key and the error-corrected second key match;
A search device comprising:
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 true JP2016134166A (en) | 2016-07-25 |
JP6297000B2 JP6297000B2 (en) | 2018-03-20 |
Family
ID=56438132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015028417A Active JP6297000B2 (en) | 2015-01-16 | 2015-02-17 | Search device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6297000B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023044545A (en) | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | Information processor and memory system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271816A (en) * | 1994-03-31 | 1995-10-20 | Kawasaki Steel Corp | Contents address type memory |
US20110029841A1 (en) * | 2009-07-29 | 2011-02-03 | Hynix Semiconductor Inc. | Semiconductor memory system having ecc circuit and controlling method thereof |
JP2012008651A (en) * | 2010-06-22 | 2012-01-12 | Toshiba Corp | Semiconductor memory device, its control method, and information processor |
-
2015
- 2015-02-17 JP JP2015028417A patent/JP6297000B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271816A (en) * | 1994-03-31 | 1995-10-20 | Kawasaki Steel Corp | Contents address type memory |
US20110029841A1 (en) * | 2009-07-29 | 2011-02-03 | Hynix Semiconductor Inc. | Semiconductor memory system having ecc circuit and controlling method thereof |
JP2012008651A (en) * | 2010-06-22 | 2012-01-12 | Toshiba Corp | Semiconductor memory device, its control method, and information processor |
Also Published As
Publication number | Publication date |
---|---|
JP6297000B2 (en) | 2018-03-20 |
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 (en) | Host-based flash memory maintenance techniques | |
KR20180019791A (en) | Semiconductor device and semiconductor system | |
US10678443B2 (en) | Method and system for high-density converged storage via memory bus | |
US20200241956A1 (en) | Memory system and operating method thereof | |
US10068650B1 (en) | Characterizing and operating a non-volatile memory device | |
KR20190117117A (en) | Data storage device and operating method thereof | |
US20200350033A1 (en) | Memory controller and memory system having the same | |
US11086808B2 (en) | Direct memory access (DMA) commands for noncontiguous source and destination memory addresses | |
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 | |
JP6297000B2 (en) | Search device | |
US10649937B2 (en) | Universal asynchronous receiver/transmitter unit, and memory controller and memory system including the same | |
KR20210035912A (en) | Data segment modification based on encryption behavior | |
US11061764B2 (en) | Data storage device and data retrieval method | |
KR102028666B1 (en) | Storage device for processing de-identification request and operating method | |
KR20210028405A (en) | Search circuit and controller | |
KR20200128825A (en) | Storage system with separated rpmb sub-systems and method of operating the same | |
US20230128638A1 (en) | Method of operating storage device and method of operating storage system using the same | |
US10949348B2 (en) | Storage device and cache area addressing method |
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 | Request for written amendment filed |
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 |