JP2020030822A - インメモリコンピューティングのための大容量メモリシステム - Google Patents

インメモリコンピューティングのための大容量メモリシステム Download PDF

Info

Publication number
JP2020030822A
JP2020030822A JP2019148950A JP2019148950A JP2020030822A JP 2020030822 A JP2020030822 A JP 2020030822A JP 2019148950 A JP2019148950 A JP 2019148950A JP 2019148950 A JP2019148950 A JP 2019148950A JP 2020030822 A JP2020030822 A JP 2020030822A
Authority
JP
Japan
Prior art keywords
data
memory
write
bits
predetermined number
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
JP2019148950A
Other languages
English (en)
Other versions
JP7517799B2 (ja
Inventor
冬 岩 姜
Dongyan Jiang
冬 岩 姜
強 彭
Tsuyoshi Ho
強 彭
宏 忠 チョン
Hong-Zhong Zheng
宏 忠 チョン
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2020030822A publication Critical patent/JP2020030822A/ja
Priority to JP2024108045A priority Critical patent/JP2024133605A/ja
Application granted granted Critical
Publication of JP7517799B2 publication Critical patent/JP7517799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】向上された性能を有するインメモリコンピューティングのための大容量メモリシステムを可能にするスケーラブルアーキテクチャを提供する。【解決手段】ライトデータパス201は、コマンドキューを含み、アウトスタンディングバケットナンバー及びコマンドキューを使用して物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、TM203からデータライト要請を受信し、データライト要請のそれぞれに対応するライトコマンドを選択されたコマンドキューに伝送するWDEM204と、コマンドキューのそれぞれに対応し、データライト要請に対応するデータが仮想メモリ空間に複製されていない場合、データをオーバーフローメモリ領域に格納することにより、対応するコマンドキューに格納されたライトコマンドに応答するか、又はデータが仮想メモリ空間に複製された場合、データに対する基準カウンタを増加させるWDE205と、を備える。【選択図】図2

Description

本発明は、メモリシステムに関し、より詳しくは、ホストシステムの仮想メモリ空間に複製されたユーザーデータについて、当該システムの物理メモリ空間におけるユーザーデータの重複排除(deduplication)を提供するメモリシステムに関する。
人工知能(AI:Artificial Intelligence)、ビッグデータ、及びインメモリプロセシングは、ますます大きなメモリ容量を使用する。このような要求を満足させるために、インメモリ重複排除システム(dedupe−DRAM)が開発されている。不幸にも、従来の重複排除システムは、いくつかの問題点を有している。例えば、重複排除変換テーブル(deduplication translation table)は、仮想メモリサイズの増加につれて非線形的に増加する。さらに、重複排除動作は、通常、リード(read)及びライト(write)レイテンシーのいくらかの増加を引き起こす。つまり、単一の論理的なリード又はライトは、複数の物理的なリード又はライトを必要とし、これにより、パフォーマンスが低下する。
米国特許第9355109号明細書 米国特許第9799017号明細書 米国特許出願公開第2016/0371295号明細書
WANG,Longxiang et al.,"DOMe:A deduplication optimization method for the NewSQL database backups",PLoS ONE 12(10):e0185189.https://doi.org/10.1371/journal.pone.0185189,Xi’an,Shaanxi,P.R.China
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、向上された性能を有するインメモリコンピューティングのための大容量メモリシステムを可能にするスケーラブルアーキテクチャを提供することにある。
上記目的を達成するためになされた本発明の一態様によるメモリシステムは、少なくとも1つのシステムパーティションを含み、前記少なくとも1つのシステムパーティションは、第1所定サイズの物理メモリ空間を有する物理メモリと、ホストシステムからデータライト(write)要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性(data coherency and data consistency)を維持する少なくとも1つのトランザクションマネージャー(transaction manager)と、少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャーから前記データライト要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューのうちの選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャー(write data engine manger)と、前記少なくとも1つのコマンドキューのそれぞれに対応し、データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフローメモリ領域に格納することにより、前記対応するコマンドキューに格納されたライトコマンドに応答するか、又はデータライト要請に対応する前記データが前記仮想メモリ空間に複製されている場合、前記データに対する基準カウンタを増加させるライトデータエンジン(write data engine)と、を備えることを特徴とする。
前記仮想メモリ空間は、前記物理メモリ空間の前記第1所定サイズ以上の第2所定サイズを含み、前記メモリシステムは、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティ(granularity)に対する第3所定個数のビットを含む変換テーブルを含み、前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセットであり得る。
上記目的を達成するためになされた本発明の他の態様によるメモリシステムは、複数のシステムパーティションを含み、前記複数のシステムパーティションのうちの少なくとも1つのシステムパーティションは、複数のメモリ領域を含む第1所定サイズの物理メモリ空間を有する物理メモリと、ホストシステムからデータライト要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記第1所定サイズの前記物理的サイズ以上の第2所定サイズを含む前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性を維持し、変換テーブルを使用して、前記ホストシステムの前記仮想メモリ空間を、前記少なくとも1つのシステムパーティションの物理メモリ空間に変換する少なくとも1つのトランザクションマネージャー(transaction manager)と、少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャーから前記データライト要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューの中の選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャー(write data engine manager)と、前記少なくとも1つのコマンドキューのそれぞれに対応し、前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフロー領域に格納するか、又は前記データが前記仮想メモリ空間に複製されている場合、前記データに対する基準カウンタを増加させることによって、前記対応するコマンドキューに格納されたライトコマンドに応答するライトデータエンジン(write data engine)と、前記物理メモリの各メモリ領域に対応し、前記各メモリ領域に格納されたデータに対する基準カウンターストレージ空間を含み、前記対応する各メモリ領域へのライトデータエンジンアクセスを制御するメモリ領域マネージャー(memory regional manager)と、を備えることを特徴とする。
前記変換テーブルは、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティ(granularity)に対する第3所定個数のビットを含み、前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセットであり得る。
上記目的を達成するためになされた本発明の一態様による重複排除メモリシステムは、複数のシステムパーティションを含み、前記複数のシステムパーティションのうちの少なくとも1つのシステムパーティションは、第1所定サイズの物理メモリ空間を有する物理メモリと、ホストシステムからデータライト要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記物理メモリ空間の前記第1所定サイズ以上の第2所定サイズを含む前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティに対する第3所定個数のビットを含み、前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセットである変換テーブルを使用して、前記ホストシステムの前記仮想メモリ空間を前記少なくとも1つのシステムパーティションの前記物理メモリ空間に変換する少なくとも1つのトランザクションマネージャー(transaction manager)と、少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャから前記データ要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューの中の選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャー(write data engine manager)と、各コマンドキューに対応し、前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフロー領域に格納するか、又は前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されている場合、基準カウンタを増加させることによって、前記対応するコマンドキューに格納されたライトコマンドに応答するライトデータエンジン(write data engine)と、を備えることを特徴とする。
本発明によれば、向上された性能を有するインメモリコンピューティングのための大容量メモリシステムを可能にするスケーラブルアーキテクチャが提供される。
本発明の一実施形態によるスケーラブル重複排除メモリシステムアーキテクチャの一例を示すブロック図である。 図1に示すシステムパーティションの一例を示すより詳細なブロック図である。 本発明の一実施形態によるシステムパーティションのライトデータパスの他の構成例を示すブロック図である。 本発明の一実施形態による、変換テーブルによって使用され、ホストシステムの仮想メモリ空間をシステムの仮想メモリ空間に変換する、図1の重複排除メモリシステムに対する仮想メモリ空間と、物理メモリ空間との関係の一例を示す詳細図である。 本発明の一実施形態による例示的な変換テーブルの変換テーブルエントリと、例示的なハッシュテーブルのハッシュテーブルエントリとの間の関係を示す図である。 本発明の一実施形態によるトランザクションマネージャーによって提供される例示的な制御プロセスのフローチャートである。 本発明の一実施形態によるライトデータエンジンマネージャーによって提供される例示的な制御プロセスのフローチャートである。 本発明の一実施形態によるライトデータエンジンによって提供される例示的な制御プロセスのフローチャートである。 本発明の一実施形態による内蔵基準カウンタを有する復元フィールドを含む物理ラインの一例を示す図である。 本発明の一実施形態によるインジケータフラグを含む物理ラインの一例を示す図である。 復元フィールドのコンテンツが複製されたユーザーデータの拡張されたカウンタを含む拡張された基準カウンタテーブルへのインデックスを含む場合に、インジケータフラグが、ユーザーデータの複製回数が復元フィールド内の内蔵基準カウンタのサイズを超えることを指すように設定された状況を示す図である。
以下の詳細な説明では、本発明の完全な理解を提供するために多様な実施形態が記載される。しかし、本発明の思想は、本明細書の詳細な説明なしに、当業者によって実施され得る。他の例では、周知の方法、手順、構成、及び回路は、本発明の実施形態を曖昧にしないために記載していない。さらに、記載された態様は、スマートフォン、ユーザー装置(User Equipment)、及び/又はラップトップコンピュータを含むが、これらに限定されないイメージング装置又はシステムで、低電力、3D深度測定を遂行するように具現され得る。
本明細書の詳細な説明全体に亘る「一実施形態」の用語は、実施形態に関連付けられた特定の特徴(feature)、構造(structure)、又は特性(characteristic)が本明細書に記載された少なくとも1つの実施形態に含まれることを意味する。つまり、詳細な説明の多様な部分で「一実施形態で」又は「一実施形態により」の表現(又は類似の意味を有する他の表現)で記載されたものは、必ずしもすべて同じ実施形態を示すとは限らない。さらに、特定の特徴、構造、又は特性は、1つ以上の実施形態で、適切な方法で組み合わせられる。これに対し、本明細書で使用される「例示的」の言葉は、例(example)、事例(instance)、又は図示例(illustration)として提供すること」を意味する。「例示的」として本明細書に記載されたいくつかの実施形態は、他の実施形態よりも必ず好ましい、又は有利であると解釈されない。さらに、特定の特徴、構造、又は特性は、1つ以上の実施形態で適切な方法で組み合わせられる。また、本明細書に記載されたコンテキストに応じて、単数の用語は、対応する複数形を含み、複数の用語は、対応する単数形を含む。
本明細書で説明される多様な図面(構成図面を含む)は、単に説明の便宜のために示される。参照番号は、対応する及び/又は類似の要素を示すために図面で繰り返される。
本明細書で使用される用語は、いくつかの実施形態を説明するためのものであり、本発明はこれに限定されない。「含む」の用語は、本明細書で使用される場合、列挙された特徴(features)、整数(integers)、段階(steps)、動作(operations)、要素(elements)、及び/又は構成(components)の存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、構成、及び/又はそれらのグループの存在や追加を否定しない。本明細書で使用される、「第1」、「第2」などの用語は、名詞に先立つラベルとして使用され、明示的に定義しない限り、特定のタイプの順序(例えば、空間的、時間的、論理的など)に限されない。さらに、同一の参照番号は、2つ以上の図面で使用され、同一又は類似の機能を有する部分、構成、ブロック、回路、ユニット、又はモジュールを指す。しかし、このような使用は、図面の簡潔性と説明の便宜のためのものであり、このような構成又はユニットの構成的又は構造的な細部が、すべての実施形態で同一又は共通に参照される部分/モジュールが、本明細書に記載されたいくつかの例示的な実施形態を具現する唯一の方法であることを限定しない。
要素又は層が、他の要素又は層に連結されると記載される場合、それは、他の要素又は層に直接連結されるか、又は中間要素又は層が存在し得る。逆に、要素が、他の要素又は層に直接接続されていると記載される場合には、中間要素又は層が存在しない。本明細書で使用される、「及び/又は」の用語は、1つ以上の関連する列挙されたアイテムの任意の組み合わせを含む。
特に定義しない限り、本明細書で使用されるすべての用語(技術的又は科学的な用語を含む)は、本発明が属する技術分野における通常の技術者によって一般的に理解される同じ意味を有する。一般辞典において定義される用語のような用語は、関連技術分野のコンテキストでのそれらの意味と同じ意味を有するものと解釈され、本明細書で明示的に定義されない限り、理想的であるか、又は過度に形式的な意味に解釈されない。
本明細書で使用される「モジュール」の用語は、モジュールに関連付けられて本明細書で説明した機能を提供するように構成されたソフトウェア、ファームウェア、及び/又はハードウェアの任意の組み合わせを指す。ソフトウェアは、ソフトウェアパッケージ、コード、及び/又はコマンドセット若しくはコマンドで具現され、本明細書で記載された何らかの具現で使用されるような「ハードウェア」の用語は、例えば、ハードワイヤド回路、プログラム可能な回路、状態マシン回路、及び/又はプログラム可能な回路によって実行されるコマンドを格納するファームウェアのいずれか1つ又はそれらの組み合わせを含む。モジュールは、集積回路(IC)、システム・オン・チップ(SoC)などのような、しかしこれらに限定されない、より大きなシステムの一部を形成する回路として総合的に又は個別に具現される。本明細書に記載された多様な構成及び/又は機能ブロックは、多様な構成及び/又は機能ブロックに関連して本明細書に記載された機能を提供するソフトウェア、ファームウェア、及び/又はハードウェアを含むモジュールとして具現される。
本明細書に記載された内容は、システムの仮想メモリサイズが増加してもサイズが非線形的に増加しない変換テーブルを有する大規模重複排除メモリシステムアーキテクチャ(large−scale deduplication memory system architecture)を提供する。一実施形態で、本明細書に記載されたメモリシステムのアーキテクチャは、複数のシステムパーティションを含み、各システムパーティション内の機能は、並列化され、高いスループットと低いレイテンシー(latency)を提供する。
一実施形態で、システムパーティションは、後述するホストシステムの仮想メモリ空間を管理するように構成され、仮想メモリ空間の整合性(concurrency)及び一貫性(coherency)を提供する1つ以上のトランザクションマネージャー(transaction managers)を含む。さらに、各トランザクションマネージャーは、複数の未処理トランザクション(multiple outstanding transactions)をサポートし、それぞれが複数の未処理トランザクションを含む複数のスレッドをサポートし得る。
システムパーティションは、システムパーティションの物理メモリ空間を管理するように構成された1つ以上のデータエンジンマネージャー(data engine manager)を含む。データエンジンマネージャーは、複数の並列データエンジンを管理するように構成される。複数のデータエンジンは、システムパーティションの複数の直交メモリ領域(orthogonal memory regions)に対するメモリアドレスのインターリービング(interleaving)を実行して、スループットを向上させ得る。複数のメモリ領域に対して本明細書で使用される「直交(orthogonal)」の用語は、どんなデータエンジンでも、システムパーティションの任意のメモリ領域にアクセスし得ることを意味する。例えば、ライトアクセスに対して、メモリライトの衝突(memory write conflict)は、データがライトデータエンジン(WDE:Write Data Engine)に到着する前に、ライトデータエンジンマネージャー(WDEM:Write Data Engine Manage)によって管理される。データがWDEに到着した後に、メモリアクセスの衝突は削除される。リードアクセスの場合、リードデータエンジン(RDE:Read Data Engine)は、メモリアクセスの衝突がなく、制限なしに任意のメモリ領域にアクセスし得る。メモリ領域マネージャー(Memory Regional Manager)は、異なる重複排除メモリ領域のような、アプリケーションに関連付けられているメモリ領域を管理する。つまり、物理メモリの衝突は、WDEMによって「直交的に(orthogonally)」削除される。
また、本明細書に記載されたメモリシステムの構造(architecture)は、当該システムの物理メモリに格納されたユーザーデータに組み込まれて、メモリシステムによって使用されるメモリサイズ(メモリ量)を減らすことができる基準カウンタ(RC:reference counter)を提供する。一実施形態で、基準カウンタは、基準カウンタが内蔵されたユーザーデータが、メモリシステムの仮想メモリ空間に複製される回数の指示(indication)を提供する。一実施形態で、ユーザーデータに基準カウンタを内蔵させることは、64バイトのユーザーデータのグラニュラリティ(granularity)において、システムメモリ要件を約6%減少させる。他の実施形態で、ユーザーデータに基準カウンタを内蔵させることは、32バイトのユーザーデータのグラニュラリティにおいて、システムメモリ要件を約12%減少させる。
ユーザーデータが、メモリシステムの仮想メモリ空間に複製される回数が所定の回数以上である他の実施形態で、基準カウンタに使用されるフィールドは、拡張された基準カウンタテーブル又は特定のデータパターンテーブルにインデックスを提供するフィールドに交替される。さらに別の実施形態では、メモリシステムによって使用される変換テーブルは、ユーザーデータがメモリシステムの仮想メモリ空間に複製される回数が所定の回数以上の場合、特定のデータパターンテーブルへのポインタ又はインデックスを有するエントリを含み、これにより、レイテンシーが減少して、スループットが向上する。変換テーブルにポインタ又はインデックスを配置することにより、変換テーブルがアクセスされるときに、仮想メモリ空間に頻繁に複製されるユーザーデータが自動的に検出される。さらに、このような頻繁に複製されるユーザーデータは、このような変換テーブルの構成によって提供される自動検出を使用して、より簡単に分析され得る。
図1は、本発明の一実施形態によるスケーラブル重複排除メモリシステムアーキテクチャの一例を示すブロック図である。スケーラブル重複排除メモリシステムアーキテクチャ(以下、システムアーキテクチャ100という)は、1つ以上のホスト装置又はホストシステム101、ホストインターフェース102、フロントエンドスケジューラ(front−end scheduler)103、及び複数のシステムパーティション(200A〜200K)を備える。ホストシステム101は、ホストインターフェース102と通信可能に連結され、ホストインターフェース102は、フロントエンドスケジューラ103と通信可能に連結される。ホストインターフェース102は、1つ以上の直接メモリアクセス(DMA:direct memory access)装置(DMA0〜DMAH−1)を含む。フロントエンドスケジューラ103は、複数のシステムパーティション(200A〜200K)のそれぞれと通信可能に連結される。ホストシステム101、ホストインターフェース102、及びフロントエンドスケジューラ103は、よく知られている方法で動作する。
システムパーティション200は、ライトデータパス201及びリードデータパス202を具備する。ライトデータパス201は、トランザクションマネージャー(TM:transaction manager)203、ライトデータエンジン(WDE)マネージャー(WDEM:WDE MGR)204、1つ以上のメモリ領域マネージャー(MRM:memory regional manager)207、及び1つ以上のメモリ領域(MR:memory region)209を備える。一実施形態で、ライトデータパス201は、トランザクションマネージャー(TM)203を含む。一実施形態で、システムパーティション当たり1つのTM203及び1つのWDEM204が存在する。図1に示すように、MR209は、メモリコントローラ(MEM CNTRLR)及びDIMM(dual in−line memory module)を含む。他の実施形態では、MR209に対する均等物を含む。MR209のメモリは、ダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、揮発性メモリ、及び/又は不揮発性メモリを含み得るが、これに限定されない。
ライトデータパス201と比較して、リードデータパス202は、リードデータパスに関連するデータ一貫性及びデータ整合性(data coherency or data consistency)の問題がないため、相対的に単純である。図1及び図2に示すように、リードデータパス202は、1つ以上のMR209、1つ以上のメモリ領域マネージャー(MRM)207(図1)、リードデータエンジン(RDE)マネージャー(RDEM:RDE MGR)212、及び1つ以上のRDE213を含む。ホストシステム101から受信したデータのリード要請は、変換テーブル(図4)を含み、データのリードアクセスに応答して、適切なメモリ領域にアクセスし、リードデータパス202を介して要請されたリードデータを提供する。
図2は、図1に示すシステムパーティションの一例を示すより詳細なブロック図である。システムパーティション200のアーキテクチャは、複数のトランザクション及び複数のスレッド(及びそれらの複数のトランザクション)が高いスループットを提供する方法で処理されるように並列化される。
システムパーティション200のライトデータパス201は、トランザクションマネージャー(TM)203、ライトデータエンジンマネージャー(WDEM)204、1つ以上のWDE205(WDE0〜WDEN−1)、メモリ領域アービタ206、MRM207(MRM0〜MRMP−1)、インターコネクト208、及び1つ以上のメモリ領域209(MR0〜MRP−1)を含む。システムパーティション200のリードデータパス202は、メモリ領域209、インターコネクト208、メモリ領域アービタ(memory region arbiter)206、リードデータエンジンマネージャー(RDEM)212、及び1つ以上のリードデータエンジン(RDE)213を含む。システムパーティション200は、変換テーブルマネージャー(TT MGR:translation table manager)210及びTTメモリ(TT MEM)211を含む。図1に示すシステムパーティション(200A〜200K)のそれぞれは、同様に構成される。
メモリ領域アービタ206及びインターコネクト208のような構成要素は、よく知られている方法で動作し、ここでは詳細な説明を省略する。さらに、メモリ領域アービタ206は、図2に点線で示すように、ライトデータパス201及びリードデータパス202の両方に位置する。しかし、それぞれのパスは、実際には、他のメモリ領域アービタと通信し、それと連携する個々のメモリ領域アービタを含み得る。図1に示すように、リードデータパス202は、MRM207を通過するが、図2では、そのように図示されていない。これは、リードデータエンジンマネージャー(RDEM)212は単に物理メモリ位置に対するPLIDを獲得するために変換テーブルをリードする必要があり、その後にRDE213がPLIDによってインデックスされたメモリ位置をリードするからである。さらに、図1及び図2に示す構成は、多様な構成及び/又は機能ブロックに関連付けられて本明細書に記載された機能を提供するソフトウェア、ファームウェア、及び/又はハードウェアを含むモジュールとして具現され得る。
図3は、本発明の一実施形態によるシステムパーティションのライトデータパスの他の構成例を示すブロック図である。より詳細には、図3に示すシステムパーティション200のライトデータパス201の構成要素は、TM203、WDEM204、WDE205、インターコネクト208、及びMR209を含む。さらに、ライトデータパス201は、ライトデータバッファコントローラ214を含む。
図1〜図3を参照すると、TM203は、TMコントローラ(TM CTRL)215及び1つ以上のトランザクションテーブル(TM table)216を含む。トランザクションテーブル216は、ホストシステム101とメモリ領域209との間で発生する未処理のライトトランザクションを追跡するために使用される。WDEM204は、OBNテーブル(outstanding bucket number table)217、CMDディスパッチャ(command dispatcher)218、OVMIマネージャー(overflow memory invalidate manager)219、及び1つ以上のCQ(command queue)220(CQ0〜CQN−1)を含む。WDE205は、1つ以上のWDE(WDE0〜WDEN−1)を含む。ライトデータバッファコントローラ214は、1つ以上のライトデータバッファ221を含む。
TM203は、ホストシステム101の仮想メモリ空間に対するデータ一貫性及びデータ整合性(data coherency and data consistency)を管理するように構成される。一実施形態で、TM203は、複数の未処理のライトトランザクション及び複数のスレッドをサポートし、高いデータスループットを提供する。一実施形態で、トランザクションテーブル216は、未処理のライトトランザクションのリストを含む。他の実施形態で、トランザクションテーブル216は、それぞれが複数の未処理のトランザクションを有する複数のスレッドのリストを含む。ホストシステム101からデータライト要請を受信した場合、TM203は、トランザクション識別番号(ID:identification number)をライトデータ要請に割り当て、トランザクションID及び他のメタデータは、選択されたトランザクションテーブル216に入力される。ライトデータ要請に関連付けられたデータは、ライトデータバッファ221に格納される。ライトデータバッファ221のデータに関連付けられたトランザクションID及び情報は、ライトデータパス201による追加処理のためにダウンストリームされる。TM203は、1つ以上のTMテーブル216を使用して、ホストシステム/仮想メモリ空間に順を追って掲示された順次的なメモリライトの完了を維持する。
図4は、本発明の一実施形態によるシステムパーティションの物理メモリ空間内のデータの位置を追跡するために、TM203及びRDEM212によって使用される変換テーブルの一例を示す詳細図である。変換テーブル400の特定の例示的実施形態は、1TB(つまり、240バイト)の仮想メモリ空間に対応するものであり、VA_WIDTHと称される。重複排除グラニュラリティ(データグラニュラリティ)は、64ビット(つまり、2ビット)である。変換テーブル400の物理メモリ空間は、256GB(つまり、238バイト)であり、PHY SPACEと称される。図4に示すシステムの変換テーブルのインデックス(TT_IDX)は34ビットを有する。システムパーティション200によって提供されるパーティショニング(partitioning)は、変換テーブルのインデックスを32ビット内に維持する結果となり、MR209に格納されたユーザーデータのサイズが増加するにつれて変換テーブルのサイズを極端に増大させないようにする。他の実施形態で、仮想メモリサイズ、物理メモリサイズ、及び重複排除グラニュラリティ(データグラニュラリティ)は、図4に示すものとは異なり得る。
図5は、本発明の一実施形態による例示的なハッシュテーブルのハッシュテーブルエントリと、例示的な変換テーブルの変換テーブルエントリとの間の関係を示す図である。図2及び図5を参照すると、一実施形態で、変換テーブル500は、TT MEM211に格納され、ハッシュテーブル501は、MR209のHTRC MEMに格納される。ホストシステム101から受信された論理アドレス502は、変換テーブルインデックス(図4のTT_IDX)及びグラニュラリティ(granularity)を含む。変換テーブルインデックスは、変換テーブル500の物理ライン識別子(PLID:physical line identification)エントリに対するインデックスを提供する。PLIDエントリのフォーマット503は、ハッシュテーブル501に対する行(つまり、ハッシュバケット)インデックス(R_INDX)及び列インデックス(COL_INDX)を含む。ハッシュテーブル501の特定の行及び特定の列に含まれるコンテンツは、2のグラニュラリティを有する特定のユーザーデータであり得る物理ライン(PL:physical line)である。例えば、gが6である場合には、PLのグラニュラリティは64バイトである。
一実施形態で、ハッシュテーブルインデックス(つまり、行インデックス及び列インデックスの両方)は、ユーザーデータに対して実行されるハッシュ関数hによって生成される。ハッシュテーブルエントリがユーザーデータCに対して実行されるハッシュ関数hによって生成されるため、ユーザーデータの一部C”だけがPLに格納される必要がある。言い換えると、Cがグラニュラリティ2のユーザーデータを示し、C”がハッシュテーブルに格納される必要があるユーザーデータCの部分を示すと、C’は、ハッシュ関数hを使用してC”から復元できるユーザーデータCの部分を示す。
Figure 2020030822
PLで、C’と対応される空間又はフィールドは、ユーザーデータCは、ホストシステム101の仮想メモリに、複製された回数に関連される基準カウンタ(RC:reference counter)情報を格納するような、他の目的のために使用される。PLで、C’と対応される空間又はフィールドは、復元フィールド(reconstructed field)と称される。
図6は、本発明の一実施形態によるトランザクションマネージャーによって提供される例示的な制御プロセスのフローチャートである。制御プロセス600において、段階601で、TM203は、ホストシステム101からデータライトコマンドを受信するか、又はWEDM204から応答を受信するのを待っているアイドルループ(idle loop)にある。段階602で、ホストシステム101からデータライトコマンドが受信された場合、フローは、トランザクションテーブル216を検索する段階603に進む。段階604で、データライトコマンドは、トランザクションIDを割り当てられ、適切なトランザクションテーブル216に挿入される。段階605で、ライトデータは、ライトデータバッファ221に入力される。段階606で、古い物理ライン識別子(PLID)情報を取得するために、トランザクションテーブル216がリードされ、その後、段階601に戻る。
段階602で、データライトコマンドが受信されない場合、フローは、WEDM204から応答が受信されたか否かが判定される段階607に進む。応答が受信されなければ、段階601に戻る。応答が受信されると、段階608に進んで、トランザクションテーブル216がアップデートされる。段階609で、TT MEM211に格納された変換テーブルがアップデートされる。その後、フローは、段階601に戻る。
WDEM204は、WDE205を管理することで、パーティション200内の物理メモリ空間のデータ一貫性及びデータ整合性(data coherency and data consistency)を管理するように構成される。一実施形態で、WDEM204は、コマンド(CMD)ディスパッチャ218とコマンドキュー220(すなわち、CQ0〜CQN−1)を使用して、他のWDE205への内部リード/ライトトランザクション(リード/ライトスレッド)及び複数の未処理のライトを維持する。WDEM204は、同一のハッシュバケットへのライトトランザクションを、同じコマンドキュー(CQ)に伝送することにより、同一のハッシュバケットへのライトトランザクションが順番に実行されることを保証するように動作する。WDEM204は、部分キャッシュラインライト(partial cache line write)をマージし、MR209のOV MEM(overflow memory)領域に対するメモリ管理を行う。
WDEM204は、ハッシュテーブルバケットナンバー及び未処理のライトコマンドの状態を追跡するために使用されるOBN(outstanding bucket number)テーブル217を含む。コマンドディスパッチャ218は、ライトコマンドを選択されたCQ220に格納することによって、コマンドを他のWDE205に割り当てる。WDEM204は、OVM無効化テーブル(図示せず)をさらに含み得る。
図7は、本発明の一実施形態によるWEDMによって提供される例示的な制御プロセスのフローチャートである。制御プロセス700は、段階701から始まる。段階702で、ライトデータコマンドがトランザクションマネージャ(TM)203からライトデータバッファID及び古いPLID情報とともに受信されたか否かが判定される。受信された場合、フローは、ライトデータテーブルがリードされる段階703に進む。段階704で、ライトデータバッファ221からリードされたライトデータが特定のデータパターンで表記された場合、フローは段階706に進み、トランザクションマネージャに応答を伝送する。もし、段階704で、ライトデータが特定のデータではない場合、フローは、OCB(outstanding command buffer)テーブルがアップデートされる段階705に進む。段階707で、オペコード(opcode)は、適切なコマンドキュー(CQ)220に追加され、段階708でプロセスは終了する。もし、段階709で、WDE205から応答が受信された場合には、フローは、OCB(outstanding command buffer)テーブルがアップデートされる段階710に進む。段階711で、アップデートされた状態がトランザクションマネージャ(TM)203に伝送され、段階708でプロセスは終了する。
各WDE205は、WEDM204の対応するCQ220からコマンド(オペンコード)を受信する。 WDE205は、重複排除判定及びその他の関連する計算を遂行するように構成される。WDE205は、並列に動作してシステムパーティション200の全体のスループットを向上させ得る。各WDE205は、メモリアクセスをインターリービング(interleaving)するために、各メモリ領域のMRM207と調整される。
図8は、本発明の一実施形態によるWDEによって提供される例示的な制御プロセスのフローチャートである。段階801で、WDE205は、WDEM204からコマンド(オペコード)を受信するのを待っているアイドルループ(idle loop)にある。段階802で、コマンドがユーザーデータの署名(signature)とハッシュバケットの他のユーザーのデータの署名とを比較するのか、又はコマンドが基準カウンタ(RC)を減少させるものか否かが判定される。もしコマンド(つまり、オペコード)が基準カウンタを減少させるものである場合には、フローは、ユーザーデータに対する基準カウンタを減少させる段階803に進む。その後、フローは、要請の状態がWDEM204に返還される段階804に進み、その後、段階801に戻る。
段階802で、WDEM204から受信した要請がユーザーデータ(つまり、物理ライン)をライトするものである場合には、段階805に進行して、ユーザーデータの署名が他のユーザーデータの署名と比較され、ハッシュテーブルに既に格納されたユーザーデータと比較する。段階806で、マッチ(一致)がある場合には、フローは、ユーザーデータの基準カウンタを増加させる段階807に進行する。その後、段階804に進んで、要請の状態がWDEM204に再び報告(返還)される。もし段階806で、マッチがなければ、段階808に進行して、以前のユーザーデータが見つからない場合、HTRCマネージャーが、「1」であるRCカウンターとともにユーザーデータをハッシュテーブルに格納するように呼び出すか、又はハッシュバケットが満杯になるか若しくはハッシュ衝突が発生した場合、オーバーフロー領域にユーザーデータを格納するためにOVMマネージャーを呼び出す。その後、フローは、段階804に進行してWDEM204へ要請の状態を報告する。
MRM207は、WDE205に対するMR209へのメモリアクセスを管理する。MRM207は、ハッシュテーブル/基準カウンターマネージャー(HTRC MGR:hash table/reference counter manager)222、オーバーフローマネージャー(OVM MGR:overflow memory manager)223、及び署名マネージャー(SIG MGR:signature manager)224を含む。各MRM207は、WDE205のそれぞれからHTRC MGR222(HR R/W)、OVM MGR223(OVM R/W)、及びSIG MGR224(SIG R/W)のための制御及びデータ情報を受信する。
図9Aは、本発明の一実施形態による内蔵基準カウンタ(embedded RC:embedded reference counter)を有する復元フィールド901を含む物理ライン(PL)900の一例を示す図である。本実施形態で、ユーザーデータが仮想メモリ空間に複製される回数が小さいので、復元フィールド(reconstructed field)901は、相対的に小さなサイズを有する内蔵RCを含む。このようなシステム状況に対し、内蔵RCは、(r−1)ビットのサイズを有する基本RC(base RC)として構成される。
ユーザーデータがホストシステムの仮想メモリ空間に複製される回数がPL900の復元フィールドの内蔵RCのサイズを超える他の実施形態において、復元フィールドは、拡張されたRCテーブルエントリへのインデックスを含む。別の実施形態で、PLの選択されたビットのようなインジケータフラグ(indicator flag)は、仮想メモリ空間でのユーザーデータの複製回数が内蔵RCのサイズを超えているか否かを示すために使用される。
図9Bは、本発明の一実施形態によるインジケータフラグ911を含むPL910の一例を示す図である。図9Bに示すように、インジケータフラグ911は、ユーザーデータの複製回数が復元フィールド912中の内蔵RCのサイズ以下であることを示すように設定される。したがって、復元フィールド912のコンテンツは、ホストシステム101の仮想メモリ空間中のユーザーデータの複製回数を指すものである。
図9Cは、復元フィールドのコンテンツが、複製されたユーザーデータの拡張されたカウントを含む拡張されたRCテーブル913へのインデックスを含む場合に、インジケータフラグ911が、ユーザーデータの複製回数が復元フィールド912中の内蔵RCのサイズを超えることを示すように設定された状況を示す図である。または、復元フィールド912は、例えば、頻繁に複製されるデータを含む特定のデータパターンテーブル914へのインデックス又はポインタを含み得る。一実施形態で、変換テーブルは、図8に示すように、頻繁に複製されるユーザーデータに対して、特定のデータパターンテーブル914へのインデックス又はポインタであるPLIDを含み、ユーザーデータに関連付けられるレイテンシーを減少させ得る。つまり、変換テーブルにポインタ又はインデックスを置くことにより、仮想メモリ空間に頻繁に複製されるユーザーデータは、変換テーブルがアクセスされるとき、自動的に検出され得る。
MR209のそれぞれは、メタデータのメモリ領域及び複数のデータメモリ領域を含む。システムパーティション200が重複排除メモリ(deduplication memory)として構成される場合、メタデータ領域はTT MEM211に格納された変換テーブルを含む。MR209のデータメモリ領域は、ハッシュテーブル/基準カウンタ(HTRC:hash table/reference counter)メモリ(HTRC MEM)、署名メモリ(SG MEM:signatur memory)、及びオーバーフローメモリ(OV MEM:overflow memory)を含む。
他の仮想アドレスからMR209中の同じ物理メモリ領域へのライトは、MRM207によって管理される。HTRCマネージャー222及びSIGマネージャー224は、重複排除機能(dedupe functions)を遂行し、ハッシュテーブルの行(別名、バケット)及び列の位置に関して、メモリの位置を計算する。他の仮想アドレスから同じHTRCバケットへのライトは、ホストからのオリジナル順序とは異なる順序でHTRCバケットに到達し得る。一貫性(consistency)は、WDEM204によって管理される。ライトデータ、例えば、ライトデータA及びライトデータBが、同じPLID(A==B)に到達した場合、基準カウンターは、単純に増加される。他の仮想アドレスからのライトデータが同一ではなく、同じバケットナンバーを有するが、他の列(別名、ウェイ)ナンバーを有する場合、そのライトデータは同じバケットに格納されるが、他のウェイに異なって格納される。バケットに1つのエントリだけが残った場合には、A又はBのいずれか1つが最後のエントリに格納され、他の1つは、オーバーフロー領域に格納される。ライトデータAとライトデータBとが異なるが、同じハッシュバケット及び行番号を有する場合、2番目のライトデータは、オーバーフロー領域に格納される。
以上、本発明の技術分野における当業者によって認識されるように、詳細な説明に記載された本発明の思想は、広範囲なアプリケーションにおいて変形されるか、又は修正され得る。したがって、本発明の技術範囲は、上述の特定の実施形態に限定されない。
100 システムアーキテクチャ
101 ホストシステム
102 ホストインターフェース
103 フロントエンドスケジューラ
200、200A〜200K システムパーティション
201 ライトデータパス
202 リードデータパス
203 トランザクションマネージャー(TM)
204 ライトデータエンジンマネージャー(WDEM)
205 ライトデータエンジン(WDE)
206 メモリ領域アービタ
207 メモリ領域マネージャー(MRM)
208 インターコネクト
209 メモリ領域(MR)
210 変換テーブルマネージャー(TT MGR)
211 TTメモリ(TT MEM)
212 リードデータエンジンマネージャー(RDEM)
213 リードデータエンジン(RDE)
214 ライトデータバッファコントローラ
215 TMコントローラ(TM CTRL)
216 トランザクションテーブル(TMテーブル)
217 OBNテーブル
218 コマンド(CMD)ディスパッチャ
219 OVMIマネージャー
220 コマンドキュー(CQ)
221 ライトデータバッファ
222 ハッシュテーブル/基準カウンターマネージャー(HTRC MGR)
223 オーバーフローマネージャー(OVM MGR)
224 署名マネージャー(SIG MGR)
400、500 変換テーブル
501 ハッシュテーブル
502 論理アドレス
503 フォーマット
900、910 物理ライン(PL)
901、912 復元フィールド
911 インジケータフラグ
913 拡張されたRCテーブル
914 特定のデータパターンテーブル

Claims (20)

  1. メモリシステムであって、
    少なくとも1つのシステムパーティション(system partition)を含み、
    前記少なくとも1つのシステムパーティションは、
    第1所定サイズの物理メモリ空間を有する物理メモリと、
    ホストシステムからデータライト(write)要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性を維持する少なくとも1つのトランザクションマネージャーと、
    少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャーから前記データライト要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューのうちの選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャーと、
    前記少なくとも一つのコマンドキューのそれぞれに対応し、データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフローメモリ領域に格納することにより、前記対応するコマンドキューに格納されたライトコマンドに応答するか、又はデータライト要請に対応する前記データが前記仮想メモリ空間に複製されている場合、前記データに対する基準カウンタを増加させるライトデータエンジンと、を備えることを特徴とするメモリシステム。
  2. 前記仮想メモリ空間は、前記物理メモリ空間の前記第1所定サイズ以上の第2所定サイズを含み、
    前記メモリシステムは、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティ(data granularity)に対する第3所定個数のビットを含む変換テーブルを含み、
    前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセット(subset)であることを特徴とする請求項1に記載のメモリシステム。
  3. 前記第1所定個数のビットは40ビットであり、前記第2所定個数のビットは32ビットであり、前記第3所定個数のビットは6ビットであることを特徴とする請求項2に記載のメモリシステム。
  4. 前記トランザクションマネージャーは、データライト要請の受信に応答して、前記変換テーブルにアクセスし、前記データライト要請の仮想アドレスに対応する物理アドレスを判定することを特徴とする請求項2に記載のメモリシステム。
  5. 前記トランザクションマネージャーは、前記ホストシステムの前記仮想メモリ空間に対してライト・アフター・ライト(write−after−write)でのデータ一貫性及びデータ整合性を維持することを特徴とする請求項1に記載のメモリシステム。
  6. 前記トランザクションマネージャーは、前記トランザクションテーブルを使用して、前記ホストシステムから受信された複数のデータライト要請を追跡することを特徴とする請求項1に記載のメモリシステム。
  7. 前記トランザクションマネージャーは、トランザクション識別子を前記受信されたデータライト要請に割り当て、
    前記トランザクションマネージャーは、前記受信されたデータライト要請の前記トランザクション識別子に対応する順序で、前記ホストシステムにライト完了メッセージを伝送することを特徴とする請求項6に記載のメモリシステム。
  8. 前記トランザクションマネージャーは、前記トランザクションテーブルを使用してライトデータ要請の複数のスレッドを追跡することを特徴とする請求項6に記載のメモリシステム。
  9. メモリシステムであって、
    複数のシステムパーティションを含み、
    前記複数のシステムパーティションのうちの少なくとも1つのシステムパーティションは、
    複数のメモリ領域を含む第1所定サイズの物理メモリ空間を有する物理メモリと、
    ホストシステムからデータライト(write)要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記第1所定サイズの前記物理的サイズ以上の第2所定サイズを含む前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性を維持し、変換テーブルを使用して、前記ホストシステムの前記仮想メモリ空間を、前記少なくとも1つのシステムパーティションの物理メモリ空間に変換する少なくとも1つのトランザクションマネージャーと、
    少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャーから前記データライト要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューの中の選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャーと、
    前記少なくとも1つのコマンドキューのそれぞれに対応し、前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフロー領域に格納するか、又は前記データが前記仮想メモリ空間に複製されている場合、前記データに対する基準カウンタを増加させることによって、前記対応するコマンドキューに格納されたライトコマンドに応答するライトデータエンジンと、
    前記物理メモリの各メモリ領域に対応し、前記各メモリ領域に格納されたデータに対する基準カウンターストレージ空間を含み、前記対応する各メモリ領域へのライトデータエンジンアクセスを制御するメモリ領域マネージャーと、を備えることを特徴とするメモリシステム。
  10. 前記変換テーブルは、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティに対応する第3所定個数のビットを含み、
    前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセット(subset)であることを特徴とする請求項9に記載のメモリシステム。
  11. 前記第1所定個数のビットは、40ビットを含み、前記第2所定個数のビットは、32ビットを含み、前記データグラニュラリティに対する前記第3所定個数のビットは、6ビットを含むことを特徴とする請求項10に記載のメモリシステム。
  12. 前記トランザクションマネージャーは、前記ホストシステムの前記仮想メモリ空間に対するライト・アフター・ライト(write−after−write)でのデータ一貫性及びデータ整合性を維持することを特徴とする請求項9に記載のメモリシステム。
  13. 前記トランザクションマネージャーは、データライト要請の受信に応答して、前記変換テーブルにアクセスし、前記データライト要請の仮想アドレスに対応する物理アドレスを判定することを特徴とする請求項9に記載のメモリシステム。
  14. 前記トランザクションマネージャーは、前記トランザクションテーブルを使用して、前記ホストシステムから受信された複数のデータライト要請を追跡することを特徴とする請求項9に記載のメモリシステム。
  15. 前記トランザクションマネージャーは、受信されたデータライト要請にトランザクション識別子を割り当て、
    前記トランザクションマネージャーは、前記受信されたデータライト要請の前記トランザクション識別子に対応する順序で、前記ホストシステムにライト完了メッセージを伝送することを特徴とする請求項14に記載のメモリシステム。
  16. 前記トランザクションマネージャーは、前記トランザクションテーブルを使用してライトデータ要請の複数のスレッドを追跡することを特徴とする請求項14に記載のメモリシステム。
  17. 重複排除メモリシステムであって、
    複数のシステムパーティションを含み、
    前記複数のシステムパーティションのうちの少なくとも1つのシステムパーティションは、
    第1所定サイズの物理メモリ空間を有する物理メモリと、
    ホストシステムからデータライト要請及び対応するデータを受信し、トランザクションテーブルを使用して、前記物理メモリ空間の前記第1所定サイズ以上の第2所定サイズを含む前記ホストシステムの仮想メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記仮想メモリ空間の前記第2所定サイズに対応する第1所定個数のビット、前記物理メモリの前記第1所定サイズに対応する第2所定個数のビット、及びデータグラニュラリティに対する第3所定個数のビットを含み、前記第2所定個数のビット及び前記第3所定個数のビットは、前記第1所定個数のビットのサブセット(subset)である変換テーブルを使用して、前記ホストシステムの前記仮想メモリ空間を前記少なくとも1つのシステムパーティションの前記物理メモリ空間に変換する少なくとも1つのトランザクションマネージャーと、
    少なくとも1つのコマンドキューを含み、アウトスタンディングバケットナンバー(outstanding bucket number)及び前記少なくとも1つのコマンドキューを使用して前記物理メモリ空間に対するデータ一貫性及びデータ整合性を維持し、前記トランザクションマネージャーから前記データライト要請を受信し、前記データライト要請のそれぞれに対応するライトコマンドを前記少なくとも1つのコマンドキューの中の選択されたコマンドキューに伝送する少なくとも1つのライトデータエンジンマネージャーと、
    各コマンドキューに対応し、前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されていない場合、前記データをオーバーフロー領域に格納するか、又は前記データライト要請に対応する前記データが前記仮想メモリ空間に複製されている場合、基準カウンタを増加させることによって、前記対応するコマンドキューに格納されたライトコマンドに応答するライトデータエンジンと、備えることを特徴とする重複排除メモリシステム。
  18. 前記物理メモリは、複数のメモリ領域を含み、
    前記重複排除メモリシステムは、前記物理メモリの各メモリ領域に対応し、前記メモリ領域に格納されたデータに対する基準カウンターストレージ空間を含み、前記対応するメモリ領域へのライトデータエンジンアクセスを制御するメモリ領域マネージャーと、をさらに含むことを特徴とする請求項17に記載の重複排除メモリシステム。
  19. 前記第1所定個数のビットは、40ビットを含み、前記第2所定個数のビットは、32ビットを含み、前記データグラニュラリティに対する前記第3所定個数のビットは、6ビットを含むことを特徴とする請求項18に記載の重複排除メモリシステム。
  20. 前記トランザクションマネージャーは、前記トランザクションテーブルを使用してライトデータ要請の複数のスレッドを追跡することを特徴とする請求項19に記載の重複排除メモリシステム。
JP2019148950A 2018-08-21 2019-08-14 インメモリコンピューティングのための大容量メモリシステム Active JP7517799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024108045A JP2024133605A (ja) 2018-08-21 2024-07-04 インメモリコンピューティングのための大容量メモリシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862720909P 2018-08-21 2018-08-21
US62/720,909 2018-08-21
US16/180,003 US10628072B2 (en) 2018-08-21 2018-11-04 Scalable architecture enabling large memory system for in-memory computations
US16/180,003 2018-11-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024108045A Division JP2024133605A (ja) 2018-08-21 2024-07-04 インメモリコンピューティングのための大容量メモリシステム

Publications (2)

Publication Number Publication Date
JP2020030822A true JP2020030822A (ja) 2020-02-27
JP7517799B2 JP7517799B2 (ja) 2024-07-17

Family

ID=69583520

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019148950A Active JP7517799B2 (ja) 2018-08-21 2019-08-14 インメモリコンピューティングのための大容量メモリシステム
JP2024108045A Pending JP2024133605A (ja) 2018-08-21 2024-07-04 インメモリコンピューティングのための大容量メモリシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024108045A Pending JP2024133605A (ja) 2018-08-21 2024-07-04 インメモリコンピューティングのための大容量メモリシステム

Country Status (5)

Country Link
US (2) US10628072B2 (ja)
JP (2) JP7517799B2 (ja)
KR (1) KR102704278B1 (ja)
CN (1) CN110851076B (ja)
TW (1) TWI812748B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7523700B2 (ja) 2021-03-17 2024-07-26 クアルコム,インコーポレイテッド 三進活性化を用いたコンピュートインメモリ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567683B2 (en) * 2019-03-28 2023-01-31 Intel Corporation Technologies for providing edge deduplication
JP7083964B2 (ja) * 2019-04-23 2022-06-13 ヤマハ発動機株式会社 リニアコンベアシステム、リニアコンベアシステムの制御方法、リニアコンベアシステムの制御プログラムおよび記録媒体
US20230056665A1 (en) * 2021-08-18 2023-02-23 Micron Technology, Inc. Mechanism to provide reliable receipt of event messages
US11550642B1 (en) 2021-08-18 2023-01-10 Micron Technology, Inc. Mechanism to trigger early termination of cooperating processes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160267011A1 (en) * 2015-03-09 2016-09-15 Samsung Electronics Co., Ltd. Tail response time reduction method for ssd
JP2017045452A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
US20180188971A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Devices, systems, and methods having high data deduplication and low read latencies
JP2018120594A (ja) * 2017-01-25 2018-08-02 三星電子株式会社Samsung Electronics Co.,Ltd. 最大化された重複除去メモリのためのシステム及び方法

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US6055579A (en) * 1997-11-17 2000-04-25 Silicon Graphics, Inc. Distributed control and synchronization of multiple data processors using flexible command queues
US6209003B1 (en) * 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
US6141707A (en) * 1998-05-28 2000-10-31 Emc Corporation Input/output request allocation by establishing master command queue among plurality of command queues to receive and store commands, determine logical volume, and forwarding command to determined logical volume
US6286092B1 (en) * 1999-05-12 2001-09-04 Ati International Srl Paged based memory address translation table update method and apparatus
US7159073B2 (en) * 2003-03-27 2007-01-02 Stmicroelectronics, Inc. Data storage and caching architecture
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US7418540B2 (en) * 2004-04-28 2008-08-26 Intel Corporation Memory controller with command queue look-ahead
US7849259B1 (en) * 2007-02-14 2010-12-07 Marvell International Ltd. Disk controller response handler for write commands
US7873809B2 (en) * 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US8768895B2 (en) * 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
WO2009156873A1 (en) * 2008-06-23 2009-12-30 Sandisk Il Ltd. Ad hoc flash memory reference cells
US8271564B2 (en) * 2008-07-14 2012-09-18 Symbol Technologies, Inc. Lookup table arrangement and related management method for accommodating concurrent processors
US8126905B2 (en) * 2008-09-23 2012-02-28 Teradata Us, Inc. System, method, and computer-readable medium for optimizing the performance of outer joins
CN101493756A (zh) * 2009-03-11 2009-07-29 威盛电子股份有限公司 数据写入方法与装置
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8204862B1 (en) * 2009-10-02 2012-06-19 Symantec Corporation Systems and methods for restoring deduplicated data
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US9355109B2 (en) 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US8352447B2 (en) * 2011-03-01 2013-01-08 Hitachi, Ltd. Method and apparatus to align and deduplicate objects
US8442952B1 (en) * 2011-03-30 2013-05-14 Emc Corporation Recovering in deduplication systems
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US8462781B2 (en) * 2011-04-06 2013-06-11 Anue Systems, Inc. Systems and methods for in-line removal of duplicate network packets
US9135192B2 (en) * 2012-03-30 2015-09-15 Sandisk Technologies Inc. Memory system with command queue reordering
AU2013202553B2 (en) * 2012-03-30 2015-10-01 Commvault Systems, Inc. Information management of mobile device data
US8904068B2 (en) 2012-05-09 2014-12-02 Nvidia Corporation Virtual memory structure for coprocessors having memory allocation limitations
US9678863B2 (en) * 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US8938417B2 (en) * 2013-02-22 2015-01-20 International Business Machines Corporation Integrity checking and selective deduplication based on network parameters
US9110914B1 (en) * 2013-03-14 2015-08-18 Emc Corporation Continuous data protection using deduplication-based storage
US10445243B2 (en) * 2013-03-14 2019-10-15 Nvidia Corporation Fault buffer for resolving page faults in unified virtual memory system
US20140304464A1 (en) * 2013-04-03 2014-10-09 Lsi Corporation Methods and systems for performing deduplication in a data storage system
US20150006475A1 (en) * 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
US9176676B2 (en) * 2013-07-30 2015-11-03 Gerald Simon Efficiency of virtual machines that use de-duplication as primary data storage
US10055422B1 (en) * 2013-12-17 2018-08-21 Emc Corporation De-duplicating results of queries of multiple data repositories
US9529546B2 (en) * 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
US10635316B2 (en) * 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US9442941B1 (en) * 2014-03-28 2016-09-13 Emc Corporation Data structure for hash digest metadata component
US9799017B1 (en) 2014-09-19 2017-10-24 Amazon Technologies, Inc. Cross-data-store operations in log-coordinated storage systems
US9195674B1 (en) * 2014-09-24 2015-11-24 Logzilla Corporation Systems and methods for large-scale system log analysis, deduplication and management
US9740631B2 (en) 2014-10-07 2017-08-22 Google Inc. Hardware-assisted memory compression management using page filter and system MMU
US10007619B2 (en) 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
US10248656B2 (en) 2015-06-18 2019-04-02 International Business Machines Corporation Removal of reference information for storage blocks in a deduplication system
US9697079B2 (en) * 2015-07-13 2017-07-04 International Business Machines Corporation Protecting data integrity in de-duplicated storage environments in combination with software defined native raid
US20170017571A1 (en) * 2015-07-17 2017-01-19 Samsung Electronics Co., Ltd. Method and apparatus fori n-line deduplication in storage devices
US10025531B2 (en) * 2015-09-10 2018-07-17 HoneycombData Inc. Reducing read command latency in storage devices
US10176216B2 (en) * 2016-02-01 2019-01-08 International Business Machines Corporation Verifying data consistency
US9697224B1 (en) * 2016-02-09 2017-07-04 International Business Machines Corporation Data deduplication for an eventually consistent system
US10169232B2 (en) * 2016-02-19 2019-01-01 Seagate Technology Llc Associative and atomic write-back caching system and method for storage subsystem
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10496543B2 (en) 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US9966152B2 (en) * 2016-03-31 2018-05-08 Samsung Electronics Co., Ltd. Dedupe DRAM system algorithm architecture
US10282124B2 (en) * 2016-06-23 2019-05-07 International Business Machines Corporation Opportunistic handling of freed data in data de-duplication
US10572484B2 (en) * 2016-09-16 2020-02-25 Oracle International Corporation Duplicate reduction or elimination with hash join operations
US10678778B1 (en) * 2017-10-19 2020-06-09 EMC IP Holding Company LLC Date deduplication acceleration
US10366011B1 (en) * 2018-05-03 2019-07-30 EMC IP Holding Company LLC Content-based deduplicated storage having multilevel data cache
US11308036B2 (en) * 2019-04-11 2022-04-19 EMC IP Holding Company LLC Selection of digest hash function for different data sets

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160267011A1 (en) * 2015-03-09 2016-09-15 Samsung Electronics Co., Ltd. Tail response time reduction method for ssd
JP2017045452A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
US20180188971A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Devices, systems, and methods having high data deduplication and low read latencies
JP2018120594A (ja) * 2017-01-25 2018-08-02 三星電子株式会社Samsung Electronics Co.,Ltd. 最大化された重複除去メモリのためのシステム及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7523700B2 (ja) 2021-03-17 2024-07-26 クアルコム,インコーポレイテッド 三進活性化を用いたコンピュートインメモリ

Also Published As

Publication number Publication date
US10628072B2 (en) 2020-04-21
US12099736B2 (en) 2024-09-24
KR102704278B1 (ko) 2024-09-09
JP7517799B2 (ja) 2024-07-17
US20200225862A1 (en) 2020-07-16
CN110851076B (zh) 2024-09-13
JP2024133605A (ja) 2024-10-02
US20200065017A1 (en) 2020-02-27
TW202009716A (zh) 2020-03-01
KR20200021878A (ko) 2020-03-02
CN110851076A (zh) 2020-02-28
TWI812748B (zh) 2023-08-21

Similar Documents

Publication Publication Date Title
CN110226157B (zh) 用于减少行缓冲冲突的动态存储器重新映射
JP6832187B2 (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
JP2020030822A (ja) インメモリコンピューティングのための大容量メモリシステム
CN105917319B (zh) 存储器单元和方法
US10152423B2 (en) Selective population of secondary cache employing heat metrics
CN110851074B (zh) 嵌入式参考计数器和特殊数据模式自动检测
US11748034B2 (en) Signalling for heterogeneous memory systems
US20230125792A1 (en) Error recovery for non-volatile memory modules
US11137941B2 (en) Command replay for non-volatile dual inline memory modules
KR102266477B1 (ko) 의사 메인 메모리 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240220

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: 20240604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240704

R150 Certificate of patent or registration of utility model

Ref document number: 7517799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150