JP2017502402A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2017502402A5 JP2017502402A5 JP2016537498A JP2016537498A JP2017502402A5 JP 2017502402 A5 JP2017502402 A5 JP 2017502402A5 JP 2016537498 A JP2016537498 A JP 2016537498A JP 2016537498 A JP2016537498 A JP 2016537498A JP 2017502402 A5 JP2017502402 A5 JP 2017502402A5
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- store
- value
- key
- 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
- 229940116821 SSD Drugs 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 17
- 239000007787 solid Substances 0.000 description 2
- 240000000800 Allium ursinum Species 0.000 description 1
- XCCTYIAWTASOJW-XVFCMESISA-N Uridine-5'-Diphosphate Chemical compound O[C@@H]1[C@H](O)[C@@H](COP(O)(=O)OP(O)(O)=O)O[C@H]1N1C(=O)NC(=O)C=C1 XCCTYIAWTASOJW-XVFCMESISA-N 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 235000010384 tocopherol Nutrition 0.000 description 1
- 235000019731 tricalcium phosphate Nutrition 0.000 description 1
Description
ここで図8を参照して、ダイナミックランダムアクセスメモリ(DRAM)のブロック図が示される。DRAMブロック800は複数のセル802を含み、それらは各々、アドレスデコーダ804に結合される。アドレスデコーダ804はアドレス線806を受けて、図示されるように複数のメモリセル802に結合されるアドレスを生成する。アドレスデコーダ804はチップイネーブル信号を受信し、メモリセル802の各々は基準電圧Vrefを受信する。書込みブロック810は、メモリセル802からのデータの読出しまたはメモリセル802へのデータの書込みを可能にする。特に、書込みブロック810に提供された書込みイネーブル信号がゲート814を介してメモリセル802に書込むことを可能にする場合、データライン812を介して提供されたデータが、アドレスデコーダに提供されたアドレスに書込まれる。書込みイネーブル信号がメモリセル802に書込むことを可能にしていない場合、インバータ816に結合されたデータがデータ線818上で生成される。以下により詳細に説明されるように、DRAMブロックのセルに格納されたデータは、そのデータを保持するために周期的にリフレッシュされなければならない。
ここで図11を参照して、図10のソリッドステートドライブのメモリ素子のブロック図が示される。図11のメモリ素子は、ソース1104と、ビット線によって制御されるドレイン1106とを有する基板1102を含む。酸化物層1114上のフローティングゲート1112から酸化物層1110によって分離された制御ゲート1108を有するゲート素子を、ワード線が制御する。DRAMおよびSSDメモリ装置に関連付けられた回路の例が提供されたが、他の回路が実現されてもよいということが理解されるべきである。
ここで図12を参照して、フロー図は、キーバリューストアに関連付けられたデータの処理を示す。一実現化例によれば、回路ブロック1202のパイプラインは、キーバリューストアを実現するためのブロックを含む。図12に従った回路ブロック1202のパイプラインは、ハッシュ計算回路1204、読出しハッシュテーブル回路1206、書込みハッシュテーブル回路1208、および読出しキーバリュー(KV)テーブル1210、更新値回路1212、キャッシュ管理回路1214、書込みKVテーブル1216、およびフォーマット応答パケットブロック1218を含む。回路ブロック1202のパイプライン外部の、メモリまたは制御回路などのさまざまな回路、たとえばメモリ管理回路108またはハッシュテーブルメモリインターフェイス111なども採用されてもよい。
回路ブロック1202のパイプラインにおける回路ブロックの特定の順序が図12に示されているが、回路ブロックは異なる順序で配置されてもよく、図12の特定の順序は一例として示されている、ということが理解されるべきである。また、回路ブロックのパイプラインはキーバリューストアの実現を可能にするが、回路ブロックのパイプラインは、異なる機能を実現する他の回路ブロックを含んでいてもよい。トランザクション状態情報が、図14に示すようなフィールドのうちの1つにおいて、または状態情報用の別個のヘッダフィールドにおいて、パケットのヘッダの一部として通信可能である。一例として、トランザクション状態は、(ハッシュを実行する、読出しハッシュを実行する、書込みハッシュを実行する、読出しキーを実行する・・・)といった、パイプラインの回路ブロック用の機能のリスティングを提供してもよい。これに代えて、状態情報は、共有されるフロー制御でサブチャネルとして送信されてもよい。
動作時、図1の回路は、ネットワークインターフェイスを通して着信要求を受信する。次に、基本ネットワークプロトコルがネットワークL2−L4処理ブロック102で処理される。典型的には、これは媒体アクセス制御(media access control:MAC)ブロックを含み、その後にUDPおよびTCP処理が続くであろう。次に、ネットワーク処理ブロック102によって生成されたパケットが、処理パイプラインを通るパケットフローを判断するKVSプロトコル処理ブロック104に渡される。次に、処理トランザクション状態と考えられ得る、起動される必要がある処理ブロックが、パイプラインを通してパケットとともに渡される。次に、処理パイプラインにおける各段は、パケットを次の段に渡す前にパケットに対してどの処理(ある場合)を行なうべきか決定するために、関連する状態ビットを調べる。
ここで図15を参照して、フローチャートは、キーバリューストアに関連付けられたデータを処理する方法を示す。ステップ1502で、キーバリューストアに関連付けられたデータトランザクションを実現するための要求が受信される。ステップ1504で、データ転送基準に基づいて、複数のメモリインターフェイスを介したデータのルーティングが制御される。ステップ1506で、第1のメモリインターフェイスを介してキーバリューストアに関連付けられた第1のタイプのメモリのメモリ位置がアクセスされることが可能になる。ステップ1508で、第2のメモリインターフェイスを介してキーバリューストアに関連付けられた第2のタイプのメモリのメモリ位置がアクセスされることが可能になる。図15の方法は、上述のような図1〜4の回路を使用して、および図16〜18を参照して以下に説明されるようなプログラマブルリソースを有する集積回路において実施されてもよい。
図示された実現化例では、ダイの中心近くの列状区域は、構成、クロックおよび他の制御論理のために使用される。この列から延在する構成/クロック分散領域1709は、FPGAの幅にわたってクロックおよび構成信号を分散させるために使用される。図17に示すアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を構築する通常の列状構造を分断する追加論理ブロックを含む。追加論理ブロックは、プログラマブルブロックおよび/または専用論理であってもよい。たとえば、図17に示すプロセッサブロックPROC1710は、CLBおよびBRAMのいくつかの列にまたがっている。
図13の実現化例では、各LUTM1801A〜1801Dは、いくつかのモードのうちどのモードで機能してもよい。ルックアップテーブルモードにある場合、各LUTは、入力マルチプレクサを介してFPGA相互接続構造によって供給される6つのデータ入力信号IN1〜IN6を有する。信号IN1〜IN6の値に基づいて、構成メモリセルから、64個のデータ値のうちの1つがプログラム可能に選択される。RAMモードにある場合、各LUTは、単一の64ビットRAMとして、または共有アドレシングを有する2つの32ビットRAMとして機能する。RAM書込みデータが、入力端子DI1を介して(LUT1801A〜1801Cについてはマルチプレクサ1817A〜1817Cを介して)64ビットRAMに供給され、または入力端子DI1およびDI2を介して2つの32ビットRAMに供給される。LUT RAMにおけるRAM書込み動作は、マルチプレクサ1806からのクロック信号CKによって、およびマルチプレクサ1807からの書込みイネーブル信号WENによって制御され、マルチプレクサ1807はクロックイネーブル信号CEまたは書込イネーブル信号WEを選択的に渡してもよい。シフトレジスタモードでは、各LUTは、2つの16ビットシフトレジスタとして機能するか、または単一の32ビットシフトレジスタを作るために2つの16ビットシフトレジスタが直列に結合された状態で機能する。シフトイン信号は、入力端子DI1およびDI2のうちの一方または双方を介して提供される。16ビットおよび32ビットシフトアウト信号は、LUT出力端子を通して提供されてもよく、32ビットシフトアウト信号はまた、LUT出力端子MC31を介してより直接的に提供されてもよい。LUT1801Aの32ビットシフトアウト信号MC31はまた、出力選択マルチプレクサ1811DおよびCLE出力端子DMUXを介して、シフトレジスタ連鎖のために一般相互接続構造に提供されてもよい。したがって、上に述べられた回路および方法は、図17および図18の装置などの装置、または任意の他の好適な装置において実現されてもよい。
ここに説明された例示的な方法は一般に、データを処理することに関する。方法は、キーバリューストアに関連付けられたデータトランザクションを実現するための要求を受信するステップと、データ転送基準に基づいて、複数のメモリインターフェイスを介したデータのルーティングを制御するステップと、第1のメモリインターフェイスを介してキーバリューストアに関連付けられた第1のタイプのメモリのメモリ位置にアクセスすることを可能にするステップと、第2のメモリインターフェイスを介してキーバリューストアに関連付けられた第2のタイプのメモリのメモリ位置にアクセスすることを可能にするステップとを含んでいてもよい。
Claims (14)
- データを処理するための回路であって、前記回路は、
キーに関連付けられたストアへのアクセスを可能にするキーバリューストアデータトランザクションを実現するための要求を受信するための入力部と、
キーバリューストアに関連付けられた複数のメモリ装置へのアクセスを可能にする異なるメモリタイプに関連付けられた複数のメモリインターフェイスと、
前記キーバリューストアデータトランザクションに関連付けられたストアの値の第1の部分を格納する第1のタイプの第1のメモリ装置と、
前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の第2の部分を格納する第2のタイプの第2のメモリ装置と、
データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するメモリ管理回路とを含み、
前記メモリ管理回路は、前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の前記第1の部分、および前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の前記第2の部分にアクセスすることを可能にする、回路。 - 前記メモリ管理回路は、データブロックの、第1のデータ部分および第2のデータ部分へのルーティングを制御する、請求項1に記載の回路。
- 前記メモリ管理回路は、第1のメモリインターフェイスを介してデータブロックの第1のデータ部分をルーティングすること、および第2のメモリインターフェイスを介して前記データブロックの第2のデータ部分をルーティングすることを可能にする、請求項1または請求項2に記載の回路。
- 前記メモリ管理回路は、アクセス基準に基づいて、データのブロックの一部を選択されたメモリタイプにルーティングする、請求項3に記載の回路。
- 前記アクセス基準は、データブロックのデータのサイズに基づく、請求項4に記載の回路。
- 前記アクセス基準は、データブロックのデータのアクセス頻度に基づく、請求項4に記載の回路。
- 前記複数のメモリインターフェイスのうちのあるメモリインターフェイスは、データをDRAMメモリにルーティングすることを可能にし、第2のメモリインターフェイスは、データをSSDメモリにルーティングすることを可能にする、請求項1〜6のいずれか1項に記載の回路。
- 第2のメモリインターフェイスを介してルーティングされたデータは、複数のメモリ装置に格納される、請求項1〜7のいずれか1項に記載の回路。
- データを処理する方法であって、前記方法は、
キーに関連付けられたストアへのアクセスを可能にするキーバリューストアに関連付けられたデータトランザクションを実現するための要求を受信するステップと、
データ転送基準に基づいて、複数のメモリインターフェイスを介したデータのルーティングを制御するステップとを含み、第1のタイプのメモリの第1のメモリ装置が、前記データトランザクションに関連付けられたストアの値の第1の部分を格納し、第2のタイプのメモリの第2のメモリ装置が、前記データトランザクションに関連付けられた前記ストアの前記値の第2の部分を格納し、前記方法はさらに、
第1のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第1のメモリ装置のメモリ位置にアクセスすることを可能にするステップと、
第2のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第2のメモリ装置のメモリ位置にアクセスすることを可能にするステップとを含み、
メモリ管理回路が、前記データトランザクションに関連付けられた前記ストアの前記値の前記第1の部分、および前記データトランザクションに関連付けられた前記ストアの前記値の前記第2の部分にアクセスすることを可能にする、方法。 - データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、前記第1のメモリインターフェイスを介してデータブロックの第1の部分をルーティングし、前記第2のメモリインターフェイスを介して前記データブロックの第2の部分をルーティングするステップを含む、請求項9に記載の方法。
- データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、データのサイズに基づいて、前記第1のメモリインターフェイスまたは前記第2のメモリインターフェイスのいずれかを介してデータをルーティングするステップを含む、請求項9または請求項10に記載の方法。
- データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、データのアクセス頻度に基づいて、前記第1のメモリインターフェイスまたは前記第2のメモリインターフェイスのいずれかを介してデータをルーティングするステップを含む、請求項9〜11のいずれか1項に記載の方法。
- 第1のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第1のメモリ装置のメモリ位置にアクセスすることを可能にするステップは、データをSSDメモリにルーティングするステップを含む、請求項9〜12のいずれか1項に記載の方法。
- 第2のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第2のメモリ装置のメモリ位置にアクセスすることを可能にするステップは、データをDRAMにルーティングするステップを含む、請求項13に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/100,250 | 2013-12-09 | ||
US14/100,250 US9323457B2 (en) | 2013-12-09 | 2013-12-09 | Memory arrangement for implementation of high-throughput key-value stores |
PCT/US2014/068228 WO2015088837A1 (en) | 2013-12-09 | 2014-12-02 | Memory arrangement for implementation of high-throughput key-value stores |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017502402A JP2017502402A (ja) | 2017-01-19 |
JP2017502402A5 true JP2017502402A5 (ja) | 2017-11-24 |
JP6564375B2 JP6564375B2 (ja) | 2019-08-21 |
Family
ID=52134422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016537498A Active JP6564375B2 (ja) | 2013-12-09 | 2014-12-02 | 高スループットのキーバリューストアの実現のためのメモリ構成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9323457B2 (ja) |
EP (1) | EP3080719B1 (ja) |
JP (1) | JP6564375B2 (ja) |
KR (1) | KR102261805B1 (ja) |
CN (1) | CN105814560B (ja) |
WO (1) | WO2015088837A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101752583B1 (ko) * | 2013-03-14 | 2017-07-11 | 마이크론 테크놀로지, 인크. | 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들 |
US9934194B2 (en) | 2013-12-20 | 2018-04-03 | Rambus Inc. | Memory packet, data structure and hierarchy within a memory appliance for accessing memory |
JP6034512B2 (ja) * | 2013-12-25 | 2016-11-30 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
US10831731B2 (en) * | 2014-03-12 | 2020-11-10 | Dell Products L.P. | Method for storing and accessing data into an indexed key/value pair for offline access |
WO2015155103A1 (de) * | 2014-04-08 | 2015-10-15 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt |
US9772939B2 (en) * | 2015-01-05 | 2017-09-26 | International Business Machines Corporation | Heat-based key-value slot organization for flash-optimized data placement in multi-tiered storage systems |
US9727416B2 (en) * | 2015-07-01 | 2017-08-08 | Xilinx, Inc. | Variable code rate solid-state drive |
KR102416004B1 (ko) * | 2015-09-02 | 2022-07-04 | 삼성전자주식회사 | 인터페이스 회로들, 메모리 모듈들 및 인터페이스 회로들과 메모리 모듈들을 연결하는 스위치 회로를 포함하는 서버 장치 |
EP3623954A1 (en) | 2016-06-14 | 2020-03-18 | Huawei Technologies Co. Ltd. | Data access method and related apparatus and system |
US10257122B1 (en) * | 2016-10-12 | 2019-04-09 | Barefoot Networks, Inc. | Distributing key-value pairs to forwarding elements for caching |
CN106557571A (zh) * | 2016-11-23 | 2017-04-05 | 福建亿榕信息技术有限公司 | 一种基于k‑v存储引擎的数据去重方法及装置 |
US10404408B1 (en) | 2016-12-13 | 2019-09-03 | Xilinx, Inc. | Pam multi-level error distribution signature capture |
US10482129B1 (en) | 2017-04-11 | 2019-11-19 | Xilinx, Inc. | Pipelined database processing circuit and method |
US10649969B2 (en) * | 2017-06-13 | 2020-05-12 | Western Digital Technologies, Inc. | Memory efficient persistent key-value store for non-volatile memories |
US10033523B1 (en) | 2017-08-14 | 2018-07-24 | Xilinx, Inc. | Circuit for and method of measuring latency in an integrated circuit |
US10839286B2 (en) * | 2017-09-14 | 2020-11-17 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
CN110377535B (zh) * | 2018-04-13 | 2020-11-06 | 北京忆芯科技有限公司 | 分布式kv存储系统 |
WO2020066148A1 (ja) * | 2018-09-27 | 2020-04-02 | ソニー株式会社 | 記憶装置、High Dimensional Gaussian Filtering回路、Stereo Depth計算回路、並びに情報処理装置 |
US11321244B2 (en) | 2019-12-16 | 2022-05-03 | Samsung Electronics Co., Ltd. | Block interface emulation for key value device |
US11747996B2 (en) * | 2020-08-05 | 2023-09-05 | Dropbox, Inc. | System and methods for implementing a key-value data store |
KR20220023605A (ko) * | 2020-08-21 | 2022-03-02 | 삼성전자주식회사 | 인터페이스 회로 및 이를 포함하는 시스템 |
CN117435121A (zh) * | 2022-07-15 | 2024-01-23 | 中兴通讯股份有限公司 | 数据处理方法、ssd控制器、电子设备及可读存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000040061A (ja) * | 1998-05-20 | 2000-02-08 | Oki Data Corp | バス使用権調停システム |
US6446141B1 (en) | 1999-03-25 | 2002-09-03 | Dell Products, L.P. | Storage server system including ranking of data source |
JP2001067881A (ja) | 1999-08-30 | 2001-03-16 | Toshiba Corp | 連想記憶装置及び記憶媒体 |
GB2357602A (en) | 1999-12-22 | 2001-06-27 | Nokia Mobile Phones Ltd | Memory controller for a memory array comprising different memory types |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
US20100019509A1 (en) | 2008-07-24 | 2010-01-28 | Chad Allen Perrott | Fastener |
KR20100085564A (ko) * | 2009-01-21 | 2010-07-29 | 삼성전자주식회사 | 데이터 처리 시스템과 데이터 처리 방법 |
US8397051B2 (en) | 2009-02-23 | 2013-03-12 | Autonomy, Inc. | Hybrid hash tables |
KR101626117B1 (ko) | 2009-06-22 | 2016-05-31 | 삼성전자주식회사 | 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법 |
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US9355109B2 (en) | 2010-06-11 | 2016-05-31 | The Research Foundation For The State University Of New York | Multi-tier caching |
US10558705B2 (en) * | 2010-10-20 | 2020-02-11 | Microsoft Technology Licensing, Llc | Low RAM space, high-throughput persistent key-value store using secondary memory |
JP2013030254A (ja) * | 2011-07-29 | 2013-02-07 | Toshiba Corp | 半導体記憶装置、情報処理装置 |
US8700683B2 (en) * | 2011-10-24 | 2014-04-15 | Nokia Corporation | Method and apparatus for providing a key-value based storage interface |
US9009392B2 (en) * | 2012-04-25 | 2015-04-14 | International Business Machines Corporation | Leveraging a hybrid infrastructure for dynamic memory allocation and persistent file storage |
US8919846B2 (en) | 2012-05-04 | 2014-12-30 | Srg Global, Inc. | Daylight opening system for vehicle |
-
2013
- 2013-12-09 US US14/100,250 patent/US9323457B2/en active Active
-
2014
- 2014-12-02 JP JP2016537498A patent/JP6564375B2/ja active Active
- 2014-12-02 KR KR1020167018476A patent/KR102261805B1/ko active IP Right Grant
- 2014-12-02 EP EP14816045.0A patent/EP3080719B1/en active Active
- 2014-12-02 WO PCT/US2014/068228 patent/WO2015088837A1/en active Application Filing
- 2014-12-02 CN CN201480067463.8A patent/CN105814560B/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017502402A5 (ja) | ||
KR102446825B1 (ko) | 하이브리드 메모리 시스템의 동작을 제어하는 회로들 및 방법들 | |
EP3080719B1 (en) | Memory arrangement for implementation of high-throughput key-value stores | |
US10749528B2 (en) | Stacked programmable integrated circuitry with smart memory | |
US11107520B2 (en) | Apparatuses and methods for shift decisions | |
US20180247682A1 (en) | Methods for reading data from a storage buffer including delaying activation of a column select | |
US20140254232A1 (en) | Integrated circuit devices having memory and methods of implementing memory in an integrated circuit device | |
EP3491646A1 (en) | Apparatuses and methods for operations in a self-refresh state | |
TW201638787A (zh) | 用於資料移動之裝置及方法 | |
US20210073159A1 (en) | Apparatuses and methods for in-memory data switching networks | |
US20190332313A1 (en) | Data buffer processing method and data buffer processing system for 4r4w fully-shared packet | |
JP7073060B2 (ja) | 半導体装置の電源制御方法 | |
US9478272B1 (en) | Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry | |
US8769213B2 (en) | Multi-port memory and operation | |
US9570136B2 (en) | Semiconductor memory apparatus | |
US9236108B1 (en) | Semiconductor memory apparatus | |
US11901006B2 (en) | Shiftable memory and method of operating a shiftable memory | |
US7965101B2 (en) | Combined processing and non-volatile memory unit array | |
US8549251B1 (en) | Methods and apparatus for efficient modification of values within computing registers | |
WO2017024873A1 (zh) | 一种存储单元和处理系统 | |
US20210247929A1 (en) | Write operation circuit, semiconductor memory and write operation method | |
JP6434368B2 (ja) | 高速バスシステム | |
US20010005373A1 (en) | Virtual channel DRAM | |
JP2005038551A (ja) | 半導体記憶装置 | |
KR20070027215A (ko) | 디피램 제어 방법 |