JP5992577B2 - メモリ、データ処理方法、及びメモリシステム - Google Patents
メモリ、データ処理方法、及びメモリシステム Download PDFInfo
- Publication number
- JP5992577B2 JP5992577B2 JP2015116456A JP2015116456A JP5992577B2 JP 5992577 B2 JP5992577 B2 JP 5992577B2 JP 2015116456 A JP2015116456 A JP 2015116456A JP 2015116456 A JP2015116456 A JP 2015116456A JP 5992577 B2 JP5992577 B2 JP 5992577B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- key
- kvs
- value
- address
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 362
- 238000003672 processing method Methods 0.000 title description 3
- 230000006870 function Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 241001465754 Metazoa Species 0.000 description 59
- 241000282472 Canis lupus familiaris Species 0.000 description 51
- 241000251468 Actinopterygii Species 0.000 description 42
- 235000019688 fish Nutrition 0.000 description 42
- 241000282326 Felis catus Species 0.000 description 40
- 230000004048 modification Effects 0.000 description 29
- 238000012986 modification Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 16
- 241000972773 Aulopiformes Species 0.000 description 15
- 235000019515 salmon Nutrition 0.000 description 15
- 241001494106 Stenotomus chrysops Species 0.000 description 11
- 230000000694 effects Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 241000282320 Panthera leo Species 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図1は、実施形態に用いられるKVSメモリの第1構成例を示す図である。
図示するように、KVSメモリ14には、例えば、メモリコントローラ13及びハッシュ生成器16が接続されている。さらに、メモリコントローラ13には、上位システム100が接続されている。ハッシュ生成器16は、任意長のデータを固定長のビット列に変換する、いわゆるハッシュ関数の機能を持つ。上位システム100は、例えば、中央演算処理装置(CPU)及びメインメモリ等を備えたホストシステムである。
本構成例は,KVSメモリとしてのCAM−RAM142と、上位システム100から入力されたKVS命令を解釈し、CAM−RAM142及び他のモジュールを制御するメモリコントローラ13とを備える。
いま、animal、dog、catというkeyがCAM部142Aにまだ存在しない場合を考える。ここで、PUT(animal, dog)、PUT(animal, cat)という命令をメモリコントローラ13が順に受け取ると、keyがCAM部142Aに既にストアされているかどうかを調べる。ここではまだ存在していないため、それぞれのkeyをCAM部142Aにストアする。そして、CAM部中の各要素(dog, cat)のvalue(ここでは先頭アドレスの1055, 1090)をRAM部142Bに記憶領域を確保して、集合としてストアする。さらに、この集合の先頭アドレス(1100)をCAM部142Aのkey(animal)のvalueとしてストアする。
[1]ハードウェア構成
まず、第1実施形態のメモリシステムのハードウェア構成について説明する。
図3は、第1実施形態のメモリシステムのハードウェア構成を示すブロック図である。
図示するように、メモリシステムは、CPU11、メインメモリ12、メモリコントローラ13、及びKVSメモリ14を備える。さらに、CPU11、メインメモリ12、及びメモリコントローラ13の間は、バス15にて接続されている。
次に、第1実施形態のメモリシステムにおける集合演算について説明する。
図5は、第1実施形態におけるAND演算の動作を示すフローチャートである。
具体的な例として、animal AND fishという演算を行う場合の処理を示す。まず、CPU11はメモリコントローラ13を介してKVSメモリ14に対して、GET(animal, NULL)という命令を発行する(ステップS1)。続いて、CPU11は、GET(animal, NULL)の命令に対して、KVSメモリ14から出力されたデータ集合を前述したKVS命令の動作と同様に(ハッシュ関数等をソフトウェア的に処理して)、answer集合としてメインメモリ12に記憶させる。すなわち、CPU11はメインメモリ12に対して、PUT(answer, dog)、PUT(answer, tuna)、PUT(answer, cat)という命令を発行する。この結果、answer = {dog, tuna, cat}という集合がメインメモリ12に記憶される(ステップS2)。これにより、メインメモリ12はkey-value型データを有するメモリとして機能する。すなわち、メインメモリ12には、keyとしてのanswerとvalueとしての{dog, tuna, cat}のペアが記憶される。
図6は、第1実施形態におけるOR演算の動作を示すフローチャートである。
具体的な例として、animal OR fishという演算を行う場合の処理を示す。まず、CPU11はメモリコントローラ13を介してKVSメモリ14に対して、GET(animal, NULL)という命令を発行する(ステップS11)。続いて、GET(animal, NULL)の命令に対して、KVSメモリ14から出力されたデータ集合を、CPU11はanswer集合としてメインメモリ12に記憶させる。すなわち、CPU11はメインメモリ12に対して、PUT(answer, dog)、PUT(answer, tuna)、PUT(answer, cat)という命令を発行する。この結果、answer = {dog, tuna, cat}という集合がメインメモリ12に記憶される(ステップS12)。これにより、メインメモリ12はkey-value型データを有するメモリとして機能する。すなわち、メインメモリ12には、keyとしてのanswerとvalueとしての{dog, tuna, cat}のペアが記憶される。
図7は、第1実施形態におけるNOT演算の動作を示すフローチャートである。
具体的な例として、animal NOT fishという演算を行う場合の処理を示す。まず、CPU11はメモリコントローラ13を介してKVSメモリ14に対して、GET(animal, NULL)という命令を発行する(ステップS21)。続いて、GET(animal, NULL)の命令に対して、KVSメモリ14から出力されたデータ集合を、CPU11はanswer集合としてメインメモリ12に記憶させる。すなわち、CPU11はメインメモリ12に対して、PUT(answer, dog)、PUT(answer, tuna)、PUT(answer, cat)という命令を発行する。この結果、answer = {dog, tuna, cat}という集合がメインメモリ12に記憶される(ステップS22)。これにより、メインメモリ12はkey-value型データを有するメモリとして機能する。すなわち、メインメモリ12には、keyとしてのanswerとvalueとしての{dog, tuna, cat}のペアが記憶される。
図8は、第1実施形態における変形例1のメモリシステムのハードウェア構成を示すブロック図である。
図9は、第1実施形態における変形例2のメモリシステムのハードウェア構成を示すブロック図である。
図10は、第1実施形態における変形例3のメモリシステムのハードウェア構成を示すブロック図である。
[1]ハードウェア構成
第2実施形態のメモリシステムのハードウェア構成について説明する。
図11は、第2実施形態のメモリシステムのハードウェア構成を示すブロック図である。
図示するように、メモリシステムは、CPU11、メインメモリ12、メモリコントローラ13、第1のKVSメモリ24、及び第2のKVSメモリ34を備える。さらに、CPU11、メインメモリ12、及びメモリコントローラ13の間は、バス15にて接続されている。
次に、第2実施形態のメモリシステムにおける集合演算について説明する。
具体的な例として、animal AND fishという演算を行う場合の処理を示す。まず、メモリコントローラ13は第1のKVSメモリ24に対して、GET(animal, NULL)という命令を発行する(ステップS1)。続いて、GET(animal, NULL)の命令に対して、第1のKVSメモリ24から出力されたデータ集合を、メモリコントローラ13はanswer集合として第2のKVSメモリ34に記憶させる。すなわち、answer = {dog, tuna, cat}という集合が第2のKVSメモリ34に記憶される(ステップS2)。
具体的な例として、animal OR fishという演算を行う場合の処理を示す。まず、メモリコントローラ13は第1のKVSメモリ24に対して、GET(animal, NULL)という命令を発行する(ステップS11)。続いて、GET(animal, NULL)の命令に対して、第1のKVSメモリ24から出力されたデータ集合を、メモリコントローラ13はanswer集合として第2のKVSメモリ34に記憶させる。すなわち、answer = {dog, tuna, cat}という集合が第2のKVSメモリ34に記憶される(ステップS12)。
具体的な例として、animal NOT fishという演算を行う場合の処理を示す。まず、メモリコントローラ13は第1のKVSメモリ24に対して、GET(animal, NULL)という命令を発行する(ステップS21)。続いて、GET(animal, NULL)の命令に対して、第1のKVSメモリ24から出力されたデータ集合を、メモリコントローラ13はanswer集合として第2のKVSメモリ34に記憶させる。すなわち、answer = {dog, tuna, cat}という集合が第2のKVSメモリ34に記憶される(ステップS22)。
図12は、第2実施形態における変形例1のメモリシステムのハードウェア構成を示すブロック図である。
図13は、第2実施形態における変形例2のメモリシステムのハードウェア構成を示すブロック図である。
Claims (11)
- データと、keyと前記keyに対応するvalueが格納される第1のメモリと、
前記keyと前記valueが格納される第2のメモリと、
前記第1のメモリ及び前記第2のメモリを制御する制御回路と、
前記制御回路と前記第1のメモリとの間に接続されたメモリコントローラとを具備し、
前記メモリコントローラはダイレクトメモリアクセス(DMA)回路を有し、
前記ダイレクトメモリアクセス回路は、前記制御回路を介さずに前記第1のメモリと前記第2のメモリを制御し、
前記keyと前記valueは、第1のアドレスと、第1key及び前記第1keyに対応する第1valueとを有し、前記第1key及び前記第1valueは前記第1のアドレスに記憶され、第2のアドレスは前記第1valueに記憶され、
前記第2のアドレスにより指定された前記第1のメモリ内の記憶場所を参照することにより、第2valueを得るメモリ。 - 前記第1keyの入力に対して、ハッシュ関数によって前記第1key及び前記第1valueが記憶された前記第1のアドレスを生成するハッシュ生成器をさらに具備する請求項1に記載のメモリ。
- 前記第1のメモリはDRAMである請求項1または2に記載のメモリ。
- 前記第1のメモリは、前記第1keyの入力に対して、前記第1keyと、前記第1のメモリ内に格納されたデータとの比較を行い、一致したデータが記憶された第3のアドレスを出力する連想メモリ(Content-addressable memory:CAM)と、
前記第3のアドレスの指定により書き込み及び読み出しが行われるRAMとを備える請求項1に記載のメモリ。 - 前記第2のメモリは、前記制御回路により制御されるメインメモリである請求項1乃至4のいずれかに記載のメモリ。
- 前記メインメモリはDRAMである請求項5に記載のメモリ。
- 前記第2のメモリは、前記第1keyの入力に対して、前記第1keyと、前記第2のメモリ内に格納されたデータとの比較を行い、一致したデータが記憶された第3のアドレスを出力するコンテンツ連想メモリ(CAM)と、
前記第3のアドレスの指定により書き込み及び読み出しが行われるRAMとを備える請求項1乃至4のいずれかに記載のメモリ。 - 前記第2のメモリはNAND型フラッシュメモリである請求項7に記載のメモリ。
- 前記制御回路は、前記keyと前記valueに基づく要求に応じて前記第1のメモリに格納された前記keyと前記valueの記憶容量を可変する請求項1乃至8のいずれかに記載のメモリ。
- 前記制御回路は、バスを介して第1、第2のメモリに接続されたCPUである請求項1乃至9のいずれかに記載のメモリ。
- 前記制御回路は、前記第1のメモリに格納された前記key及び前記valueと、前記2のメモリに格納された前記key及び前記valueとを用いて、AND、OR、及びNOTのいずれかの集合演算を行う請求項1乃至10のいずれかに記載のメモリ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015116456A JP5992577B2 (ja) | 2015-06-09 | 2015-06-09 | メモリ、データ処理方法、及びメモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015116456A JP5992577B2 (ja) | 2015-06-09 | 2015-06-09 | メモリ、データ処理方法、及びメモリシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011173358A Division JP5762878B2 (ja) | 2011-08-08 | 2011-08-08 | key−valueストアを有するメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015181043A JP2015181043A (ja) | 2015-10-15 |
JP5992577B2 true JP5992577B2 (ja) | 2016-09-14 |
Family
ID=54329238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015116456A Expired - Fee Related JP5992577B2 (ja) | 2015-06-09 | 2015-06-09 | メモリ、データ処理方法、及びメモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5992577B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762913B2 (en) * | 2019-12-31 | 2023-09-19 | Micron Technology, Inc. | Cursor seek operations using deleted record spans |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05334234A (ja) * | 1992-05-27 | 1993-12-17 | Nec Corp | 高速dma転送装置 |
GB0200747D0 (en) * | 2002-01-14 | 2002-02-27 | Mitel Knowledge Corp | Hardware-assisted tuple space |
-
2015
- 2015-06-09 JP JP2015116456A patent/JP5992577B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015181043A (ja) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5762878B2 (ja) | key−valueストアを有するメモリシステム | |
JP5524144B2 (ja) | key−valueストア方式を有するメモリシステム | |
US11604834B2 (en) | Technologies for performing stochastic similarity searches in an online clustering space | |
WO2015145647A1 (ja) | ストレージ装置とデータ処理方法及びストレージシステム | |
US20180300330A1 (en) | Proactive spilling of probe records in hybrid hash join | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
US20170329852A1 (en) | Page query method and data processing node in oltp cluster database | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
JP5646775B2 (ja) | key−valueストア方式を有するメモリシステム | |
JP6258436B2 (ja) | メモリシステムのローカルコントローラ | |
JP5992577B2 (ja) | メモリ、データ処理方法、及びメモリシステム | |
EP3907628A1 (en) | Technologies for performing random sparse lifting and procrustean orthogonal sparse hashing using column read-enabled memory | |
US11507799B2 (en) | Information processing apparatus and method of operating neural network computing device therein | |
JP5833212B2 (ja) | key−valueストア方式を有するメモリシステム | |
JP6034467B2 (ja) | システム | |
US20160070649A1 (en) | Cache unit and processor | |
JP6205386B2 (ja) | 半導体装置及び情報書込/読出方法 | |
US11157692B2 (en) | Neural networks using data processing units | |
US11914587B2 (en) | Systems and methods for key-based indexing in storage devices | |
US20160292168A1 (en) | File retention | |
JP5208117B2 (ja) | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム | |
JP6384151B2 (ja) | 記憶装置、制御装置、記憶装置の制御方法、及びプログラム | |
WO2010089799A1 (ja) | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 | |
CN116775699A (zh) | 一种批流一体化数据处理系统及方法 | |
JP2020030873A (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160615 |
|
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: 20160719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160817 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5992577 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |