JP2017502402A5 - - Google Patents

Download PDF

Info

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
Application number
JP2016537498A
Other languages
English (en)
Other versions
JP2017502402A (ja
JP6564375B2 (ja
Filing date
Publication date
Priority claimed from US14/100,250 external-priority patent/US9323457B2/en
Application filed filed Critical
Publication of JP2017502402A publication Critical patent/JP2017502402A/ja
Publication of JP2017502402A5 publication Critical patent/JP2017502402A5/ja
Application granted granted Critical
Publication of JP6564375B2 publication Critical patent/JP6564375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

データを処理するための回路のブロック図である。 図1の回路のメモリインターフェイスのブロック図である。 複数のメモリタイプを実現するキーバリューストアを可能にするための回路のブロック図である。 複数のメモリタイプを実現し、アクセス帯域幅を改良するために複数のインターフェイスを並行して使用するキーバリューストアを可能にするための回路のブロック図である。 第1のタイプのメモリ用のメモリコントローラのブロック図である。 第2のタイプのメモリ用のメモリコントローラのブロック図である。 キーバリューストアの実現における異なるタイプのメモリへのデータのブロックのデータの割当てを示す図である。 ダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)のブロック図である。 図8のDRAMのメモリ素子のブロック図である。 ソリッドステートドライブ(solid-state drive:SSD)メモリのブロック図である。 10のソリッドステートドライブのメモリ素子のブロック図である。 キーバリューストアに関連付けられたデータの処理を示すフロー図である。 キーバリューストアの動作を示すテーブルを含む図である。 キーバリューストアを実現するためのデータパケットのフィールドを示す図である。 キーバリューストアに関連付けられたデータを処理する方法を示すフローチャートである。 プログラマブルリソースを有する装置をプログラミングするためのシステムのブロック図である。 プログラマブルリソースを有する集積回路のブロック図である。 図17の集積回路の構成可能論理素子のブロック図である。
ここで図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のタイプの第1のメモリ装置と、
    前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の第2の部分を格納する第2のタイプの第2のメモリ装置と、
    データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するメモリ管理回路とを含み、
    前記メモリ管理回路は、前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の前記第1の部分、および前記キーバリューストアデータトランザクションに関連付けられた前記ストアの前記値の前記第2の部分にアクセスすることを可能にする、回路。
  2. 前記メモリ管理回路は、データブロックの、第1のデータ部分および第2のデータ部分へのルーティングを制御する、請求項1に記載の回路。
  3. 前記メモリ管理回路は、第1のメモリインターフェイスを介してデータブロックの第1のデータ部分をルーティングすること、および第2のメモリインターフェイスを介して前記データブロックの第2のデータ部分をルーティングすることを可能にする、請求項1または請求項2に記載の回路。
  4. 前記メモリ管理回路は、アクセス基準に基づいて、データのブロックの一部を選択されたメモリタイプにルーティングする、請求項3に記載の回路
  5. 前記アクセス基準は、データブロックのデータのサイズに基づく、請求項4に記載の回路。
  6. 前記アクセス基準は、データブロックのデータのアクセス頻度に基づく、請求項4に記載の回路。
  7. 前記複数のメモリインターフェイスのうちのあるメモリインターフェイスは、データをDRAMメモリにルーティングすることを可能にし、第2のメモリインターフェイスは、データをSSDメモリにルーティングすることを可能にする、請求項1〜6のいずれか1項に記載の回路。
  8. 第2のメモリインターフェイスを介してルーティングされたデータは、複数のメモリ装置に格納される、請求項1〜7のいずれか1項に記載の回路。
  9. データを処理する方法であって、前記方法は、
    キーに関連付けられたストアへのアクセスを可能にするキーバリューストアに関連付けられたデータトランザクションを実現するための要求を受信するステップと、
    データ転送基準に基づいて、複数のメモリインターフェイスを介したデータのルーティングを制御するステップとを含み、第1のタイプのメモリの第1のメモリ装置が、前記データトランザクションに関連付けられたストアの値の第1の部分を格納し、第2のタイプのメモリの第2のメモリ装置が、前記データトランザクションに関連付けられた前記ストアの前記値の第2の部分を格納し、前記方法はさらに、
    第1のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第1のメモリ装置のメモリ位置にアクセスすることを可能にするステップと、
    第2のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第2のメモリ装置のメモリ位置にアクセスすることを可能にするステップとを含み、
    メモリ管理回路が、前記データトランザクションに関連付けられた前記ストアの前記値の前記第1の部分、および前記データトランザクションに関連付けられた前記ストアの前記値の前記第2の部分にアクセスすることを可能にする、方法。
  10. データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、前記第1のメモリインターフェイスを介してデータブロックの第1の部分をルーティングし、前記第2のメモリインターフェイスを介して前記データブロックの第2の部分をルーティングするステップを含む、請求項9に記載の方法。
  11. データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、データのサイズに基づいて、前記第1のメモリインターフェイスまたは前記第2のメモリインターフェイスのいずれかを介してデータをルーティングするステップを含む、請求項9または請求項10に記載の方法。
  12. データ転送基準に基づいて、前記複数のメモリインターフェイスを介したデータのルーティングを制御するステップは、データのアクセス頻度に基づいて、前記第1のメモリインターフェイスまたは前記第2のメモリインターフェイスのいずれかを介してデータをルーティングするステップを含む、請求項911のいずれか1項に記載の方法。
  13. 第1のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第1のメモリ装置のメモリ位置にアクセスすることを可能にするステップは、データをSSDメモリにルーティングするステップを含む、請求項〜12のいずれか1項に記載の方法。
  14. 第2のメモリインターフェイスを介して前記キーバリューストアに関連付けられた前記第2のメモリ装置のメモリ位置にアクセスすることを可能にするステップは、データをDRAMにルーティングするステップを含む、請求項13に記載の方法。
JP2016537498A 2013-12-09 2014-12-02 高スループットのキーバリューストアの実現のためのメモリ構成 Active JP6564375B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 디피램 제어 방법