TW201250688A - Data deduplication - Google Patents

Data deduplication Download PDF

Info

Publication number
TW201250688A
TW201250688A TW101112336A TW101112336A TW201250688A TW 201250688 A TW201250688 A TW 201250688A TW 101112336 A TW101112336 A TW 101112336A TW 101112336 A TW101112336 A TW 101112336A TW 201250688 A TW201250688 A TW 201250688A
Authority
TW
Taiwan
Prior art keywords
data
hash
hash value
value
memory
Prior art date
Application number
TW101112336A
Other languages
English (en)
Other versions
TWI536384B (zh
Inventor
John C Rudelic
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201250688A publication Critical patent/TW201250688A/zh
Application granted granted Critical
Publication of TWI536384B publication Critical patent/TWI536384B/zh

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/023Free address space 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Description

201250688 六、發明說明: 【發明所屬之技術領域】 本發明大體而言係關於半導體記憶體裝置及方法,且更 特定而言,係關於用於資料去重複之裝置及方法。 【先前技術】 通#長:供§己憶體裝置作為電腦或其他電子裝置中之内部 半導體積體電路及/或外部可移除裝置。存在諸多不同類 型之記憶體,包含隨機存取記憶體(Ram)、唯讀記憶體 (ROM)、動態隨機存取記憶體(DRAM)、同步動態隨機存 取記憶體(SDRAM)、相變隨機存取記憶體(pCRAM)及快閃 §己憶體以及其他記憶體。 利用記憶體裝置作為用於需要高記憶體密度、高可靠度 及低電力4耗《見廣範圍之電子應用之非揮發性記憶 體。非揮發性記憶體可用於一個人電腦、一可攜式記憶體 條、一《磁碟機(SSD)、—個人數位助理(pDA)、一數位 相機、-蜂巢式電話、—可攜式音樂播放器(例如,刪播 放幻、-電影播放器及其他電子裝置以及其他裝置。諸 如私式碼之育料及系統資料(諸如一基 (圆))通常儲存於非揮發性記憶體裝置中。 έ己憶體系統可自_ ±拖 入盥待寫入5 接收寫入命令’其中該等寫入命 憶體系統之'❹個記憶體裝置之資料相 ,:入八八广貧料)。與-寫入命令相關聯(例如,在 二 料可包含若干部分(例如,區段),其中 …'相關聯之—唯一邏輯位址。可指派與一 163457.doc 201250688 κ體位置相關聯之一實體位址給每一邏輯位址,且可將一 寫入命令中之資料之每一部分寫入至與指派至對應於該資 料之每一部分之該邏輯位址之實體位址相關聯之一特定實 體位置。在各項例項中,不同邏輯位址可對應於同一實體 資料使得該資料在記憶體系統中之一或多個記憶體裝置中 貫體重複。寫入重複資料可不必要地減少一記憶體系統之 儲存容量以及其他缺陷。 【實施方式】 本發明包含用於資料去重複之裝置及方法。一種此方法 包含接收一寫入命令、變換與該寫入命令相關聯(例如, 來自該寫入命令)之資料、判定該資料之一變換值是否存 在於一變換表中,且回應於該變換值不存在於該變換表中 之一判定,將與該寫入命令相關聯之該資料寫入至一記憶 體裝置。 ~ 資料去重複可包含避免將重複資料寫入至一記憶體系 統。在先前方法中’-主機將比較待寫人至—記憶體系統 之擋案與豸記憶n系統上之檔案以判$ —檔案是否已存在 於nit體系統上且刪除存在於該記憶體系統上之現有重 複‘案。在此等方法中,若一檔案存在於該記憶體系統 上,則主機將不發送寫入該檔案之命令至該記憶體系统, 因此避免在該記憶體系統上該文槽之重複。在—或多項實 把例中貝料去重複可包含變換(例如,雜湊)由一記憶體 系統自一主機所接收之資料之每一區段。資料之每一區段 之雜湊可包含產生針對在-寫入命令中所接收之資料之每 163457.doc -4« 201250688 -區段之一變換值(例如 料之每-區段,且舉例而:秦值)。貫施例不限於雜凑資 來雜凑。 5,貧料可以任何增量(諸如頁) 在一或多項實施例中, 生之雜凑值與針對當前較針對資料之每-區段而產 置之資料之-變換表“;入至—記憶體系統中之記憶體裝 在-寫入命令中所接 表:之:凑值。若針對 . 貝料之—區段而產生之一雜、、矣 存在於雜凑表中(例如, "、 該區段寫入至記憶體裝置/中未呈現),則將資料之 八 置中之一位置且藉由將一項目寫入 ^包^區段諸之該雜凑值之絲凑 雜 =藉由將:項目寫入至包含資料之該區段之: 表1、料之°亥£段之一實體位址之雜凑表來更新該雜湊 表。右針對在-寫入命令中所接收之資料之一區段而產生 之一雜凑值4實存在於該雜凑表中,則藉由將—項目寫入 至該雜湊表以使資料之該區段之邏輯位址與該區段資料之 料值相關聯來更新該雜凑表。在雜凑表藉助雜湊值以及 貧料之該區段之-邏輯位址及實體位址更新時,可將一成 功寫入指示發送至主機。 在本發明之以下詳細說明中,參考形成本發明之一部分 且其中以圖解說明之方式展示可如何實踐本發明之若干實 施例之附圖。充分詳細地闡述此等實施例以使熟習此項技 術者肖b夠貫踐本發明之該等實施例’且應理解,可利用其 他實施例且可在不背離本發明之範疇之情形下作出程序、 電、及/或結構改變》 163457.doc 201250688 如本文中所使用,「若干」某物可指代一或多個此事 物。舉例而言,若干記憶體裝置可指代一或多個記憶體裝 置。另外,如本文中所使用之標示符「N」及「M」(特 定而言關於圖式中之參考編號)指示本發明之若干實施例 可包含若干如此標示之特定特徵。 本文中之圖遵循其中第一個數字或前幾個數字對應於圖 式圖編號且剩餘數字識別圖式中之—元件或組件之一編號 慣例。不同圖之間的類憾件或組件可藉由使用類似數字ϋ 來識別。舉例而言,100可指代圖之元件「〇〇」,且在 圖2中一類似元件可指代為200。如將瞭解,可添力^、交換 及/或消除本文中之各種實施例中所展示之元件以便提供 本發明之若干額外實施例。另外,如將瞭解,_中所提供 之兀件之比例及相對比例尺意欲圖解說明本發明之該等實 施例,且不應視為限定意義。 圖1係根據本發明之一或多項實施例之包含至少一個記 憶體系統HM之-計算裂置⑽之一功能方塊圖。在圖艸 所圖解說明之實施例中,記憶體系統1〇4可包含一控制器 108及一或多個記憶體裝置11〇_丨、、u〇_N。在此實例 中,控制器108在一或多個記憶體裝置U(M、…、ιι〇_Ν 外部。記憶體裝置1UM、.··、UG.N可提供用於記憶體系 統之一磁碟區(例如,藉助格式化至記憶體裝置之一檔案 系統)。控制器108可包含控制電路,例如硬體、韌體及/或 軟體。在一或多項實施例中,控制器1〇8可係耦合至包含 貫體介面及s己憶體裝置11〇·!、..、i 1〇 N之一印刷電路 163457.doc 201250688 板之一特殊應用積體電路(ASIC)。 控制器1斷包含一資料去重複組件112及一雜凑表 114。資料去重複組件112可包含硬M、執體及/或軟體且 可對資料執行資料去重複操作,例如,判定資料是否存在 於。己隱體裝置110-1、...、i! 〇_N中及是否應將資料寫入至 記㈣裝置1HM、...、11G_N。可將雜凑表ιΐ4儲存於控 制器1〇8上之記憶體胞中及/或記憶體裝置11CM、...、11〇_ N之記憶體胞中,且可用於使―邏輯位址與—雜凑值相關 聯且亦與資料之-部分(諸如一區段)之一實體位址相關 聯。雜凑表U4可包含對應於資料之部分(例如,區段)之邏 輯位址、雜凑值及實體位址之若干項目。資料去重複組件 112可雜湊由一記憶體系統自一主機所接收之資料之每一 區段。在雜凑資料之每一區段時,可產生在一寫入命令中 所接收之資料之每一區段之一雜湊值。 一在-,多項實施例中’資料去重複組件ιΐ2可比較針對 資料之每一區段而產生之雜凑值與對應於當前寫入至記憶 體裝置 110-1、 . η η XT ^ ^ L, .·. 110以之_貝料之雜湊表U4中之雜湊 值。若針對在—寫入命令中所接收之資料之一區段而產生 之一雜湊值不存在於雜基矣η 、”凑表114中,則將資料之該區段寫 入至記憶體裝LHM、...、m_N中之—位置且藉由藉助 資料之該區段之雜凑值將一項目寫入至雜凑表ιΐ4來更新 雜凑表114。亦可士膝 τΕ α _ 二 』碏由將一項目寫入至雜湊表114以使資料 之該區段之一邏輯彳立±ιμ芬咨刺_ > u 及貝枓之该區段之一實體位址鱼資 料之該區段之該雜凑值相關聯來更新雜凑表ιΐ4。若騎 163457.doc 201250688 在一寫入命令中所接收之資料之一區段而產生之一雜凑值 確實存在於雜凑表114中,則可藉由將一項目寫入至雜凑 表114以使資料之該區段之邏輯位址與已經在雜湊表丨14十 之該區段資料之雜湊值相關聯來更新雜湊表114。在雜湊 表Π4藉助該雜湊值以及資料之該區段之一邏輯位址及實 體位址更新時,可將一成功寫入指示發送至主機102。 如圖1中所圖解說明,一主機102可耦合至記憶體系統 104。主機102可係一膝上型電腦、個人電腦、數位相機、 數位記錄及回放Μ、行動電話、PDA、記憶體卡讀取 器、介面集線器以及其他主機系統,且可包含一記憶體存 取裝置,例如,-處理器。熟習此項技術者將瞭解,「一 處理器」彳意指-或多個處理器’諸如一平行處理系統、 若干協處理器等。 在一或多項實施例中,一實體主機介面可呈一標準化介 面之形式。舉例而言,當記憶體系統104用於一計算裝置 100中之育料儲存時,一實體主機介面可係一串列進階技 術附件(SATA)、高速周邊組件互連(pcie)或一通用串列匯 流排(USB)以及其他介面β然而,一般而言,一實體主機 介面可提供用於在記憶體系統1 〇 4與具有用於該實體主機 介面之相容接收器之一主機1〇2之間傳遞控制、位址、資 料及其他信號之-介面。主機1()2可經由實體主機介面將 寫入命令發送至記憶體系統1 04。 控制器1〇8可與記憶體裝置110-1、··_、110-Ν通信以讀 取、寫入及抹除資料,以及進行其他操作。控制器108可 I63457.doc 201250688 具有可係-或多個積體電路及/或離散組件之電路 憶體控制器可選擇性地麵合—記憶體裝置⑽卜…二 N之-辑接(未在⑸中展示)以在適當的時間在適當的 ㈤連接處接收適當的信號。類似地,一主機ι〇2與記憶體 系統HM之間的通信協定可不同於存取一記憶體裝置1: 1、…、110-N所需之協定。然後控制器1〇8可將自一主機 所接收之命令轉譯成適當的命令以達成對一記憶體裝置 Π0-1、…' ι10-Ν之所期望存取。 -記憶體裝置1UM、…、110挪包含一或多個記憶體 胞陣列,例如,非揮發性記憶體胞。舉例而言,該等陣列 可係相變記憶體(PCM)陣列。實施例不限於一特定類型之 記憶體裝置。例如,記憶體裝置可包含RAM、r〇m、 HDD、DRAM、SDRAM、PCRAM、RRAM及快閃記憶體 以及其他記憶體。 記憶體裝置110-1、…、110-N可包含可分組之若干記憶 體胞。如本文中所使用,一群組可包含一或多個記憶體 胞,諸如,一頁、區塊、平面、晶粒,一整個陣列或其他 記憶體胞群組。舉例而言,某些記憶體陣列可包含構成一 記憶體胞區塊之若干記憶體胞頁。若干區塊可包含於一記 憶體胞平面中。若干記憶體胞平面可包含於一晶粒上。作 為一項實例,一 128 GB記憶體裝置可包含每頁4314個位元 組之資料,每區塊128個頁,每平面2048個區塊及每裝置 16個平面。 圖1之實施例可包含為不使本發明之實施例模糊而未經 163457.doc 201250688 圖解說明之額外電路。舉例而言,記憶體系統1〇4可包含 一控制器(例如,控制電路)及位址電路以鎖存通過1/(;)電路 二由I/O連接所提供之位址信號。可藉由一列解碼器及一 行解碼器接收並解碼位址信號以存取記憶體裝置1丨Οι 、 … 、 11 0-Ν 。 熟 習此項 技術者 將瞭解 ,位 址輸入 連接之 數目可取決於記憶體裝置11〇_!、 、11〇_Ν之密度及架 構。 ’、 一般而言,控制器108可負責將自主機1〇2(例如,自一 PCIe匯流排)所接收之命令轉換成用於主機-記憶體轉譯電 路之。卩令指令且負責將記憶體回應轉換成用於傳輸至請求 主機之主機系統命令。 在一或多項實施例t,可將資料一次一個頁地寫入至記 憶體裝置。記憶體裝置中之每一頁可具有若干實體區段且 每一實體區段可與一LBA相關聯。作為一項實例,一實體 頁可具有資料之八個實體區段。然而,實施例不限於每實 體頁特定數目個實體區段。 圖2係根據本發明之一或多項實施例之包含至少一個記 憶體系統204之一計算裝置2〇〇之一功能方塊圖。在圖2°中 所圖解說明之實施例中,記憶體系統2〇4可包含一控制器 208及一或多個記憶體裝置21〇]、…、2i〇_n。在:實: 例中,控制器208在一或多個記憶體裝置21〇_丨、..、 N外部,但在其他實施例中該控制器可在該等記憶體u 中之一或多者内部或在該等記憶體裝置中之一或多者及/ 或控制器208之間散佈。記憶體裝置21(M、 .、210·^可 163457.doc -10· 201250688 提供用於該記憶體条— 系,·先之一磁碟區(例如,藉助格式 該等記憶體裝置之—拎安么 检木糸統)。控制器208可包含控制雷 路,例如硬體、韌體及/ . ^ s α X·軟體在一或多項貫施例中, 控制器208可係鉍人$ —人 ° 一實體介面及記憶體裝置21〇- 1、…、210-Ν 之一Pn pi & P刷電路板之一特殊應用積體電 (ASIC)。 記憶體裝置21(Μ、 、01Λ Μ,A人 ^ ··· 210_N可包含一資料去重複組件 諸如内邛控制器(例如’控制電路)之部分。如以上 結合圖1所論述’資料去重複組件212可包含硬體、款體及/ 或軟體且可對貝料執行資料去重複操作。記憶體裝置21 ο-ΐ …210-Ν可包含一雜凑表214。如以上結合圖上所論 述,該雜凑表可儲存於記憶體裝置21〇]、...、2i〇_n之記 憶體胞中且可用於使—邏輯位址與—雜凑值相關聯且亦與 資料之。[5分(諸如_區段)之一實體位址相關聯。 控制器208可與記憶體裝置210-1、...、210-N通信以讀 取、寫入及抹除資料,以及進行其他操作。控制器2〇8可 具有可係一或多個積體電路及/或離散組件之電路。一記 fe體控制器可選擇性地耦合一記憶體裝置21〇_丨、...、 N之1/0連接(未在圖1中展示)以在適當的時間在適當的 I/O連接處接收適當的信號。類似地,一主機2〇2與記憶體 系統204之間的通信協定可不同於存取一記憶體裝置210_ 1、…' 210-N所需之協定。然後控制器2〇8可將自一主機 所接收之命令轉譯成適當的命令以達成對一記憶體裝置 2HM、…、210-N之所期望存取。 163457.doc 201250688 一記憶體裝置210-1、...、;210_N可包含一或多個記憶體 胞陣列,例如,非揮發性記憶體胞。舉例而言,該等陣列 可係相變記憶體(PCM)陣列。實施例不限於一特定類型之 記憶體裝置。例如’記憶體裝置可包含RAM、ROM、 DRAM、SDRAM、PCRAM、RRAM及快閃記憶體以及其他 記憶體。 記憶體裝置210-1、…、210-N可包含可分組之若干記憶 體胞。如在本文中所使用,一群組可包含一或多個記憶體 胞,諸如,一頁、區塊、平面、晶粒,一整個陣列或其他 記憶體胞群組。舉例而言,某些記憶體陣列可包含構成一 記憶體胞區塊之若干記憶體胞頁。若干區塊可包含於一記 憶體胞平面中。若干記憶體胞平面可包含於一晶粒上。作 為一項實例’一 128 GB記憶體裝置可包含每頁4314個位元 組之資料,每區塊128個頁,每平面2048個區塊及每裝置 16個平面。 圖3圖解說明根據本發明之一或多項實施例之表示若干 邏輯位址、雜湊值及實體位址之一雜湊表314。在圖3中之 雜湊表3 14包含若干欄。舉例而言,第一欄32〇指示資料之 特定部分(諸如一區段)之邏輯位址(LA)。第二欄33〇指示資 料之特定部分之雜湊值。第三攔34〇指示資料之特定部分 之實體位址(PA)。資料之特定部分之實體位址包含一記憶 體裝置中之資料之彼部分之實體位置之一指標。 在圖3中所展示之實例中,欄32〇包含若干不同邏輯位址 320-1 (「LA-1」)、320-2 (「LA-2」)、320-3 (「LA-163457.doc •12- 201250688 3」)、320-4 (「LA-4」)' 320-5 (「LA-5」)、320-6 (LA-6」)及320-M (「LA-M」)。每一邏輯位址與一各別 雜湊值 330-1 (「H-l」)、330-2 (「H-2」)、33 0-3 (「H-3」)及330-M (「H-M」)相關聯。 在一或多項實施例中,雜湊表314之攔320中之邏輯位址 及欄330中之其相關聯雜湊值可與指示一記憶體系統(例 如’圖1中之系統104)中之資料之一實體位置之欄34〇中之 實體位址相關聯、與攔320中之邏輯位址及攔330中之雜湊 值相關聯。每一邏輯位址320-1、320-2、320-3、320-4、 320-5、320-6及320-M以及相關聯雜湊值33(Μ、33〇·2、 33〇-3及330-Μ可具有一相關聯實體位址34(Μ (「ρΑ_ 1」)、340-2 (「ΡΑ-2」)、340-3 (「PA-3」)及 340-Μ (「ΡΑ-Μ」)。共用一共同雜湊值之該等邏輯位址可與同一 實體位置相關聯。此允許將與兩個或兩個以上邏輯位址相 關聯之資料僅寫入至該等記憶體裝置一次。 在圖3中所展示之實例中,邏輯位址320-1與雜湊值330_ 1相關聯且與邏輯位址32(Μ.相關聯之資料係在—記憶體裝 置中之與實體位址34(Μ相關聯之一實體位置處。邏輯位 址320-2及邏輯位址320巧與雜凑值33〇_2相關聯且與邏輯位 址320-M邏輯位址32〇·5相關聯之資料係在一記憶體裝置 中之與實體位址340-2相關聯之一實體位置處。 k輯位址320-3、邏輯位址32〇_4及邏輯位址32〇_6與雜湊 值330-3相關聯且與邏輯位址32〇_3、^輯位址32〇·4及邏輯 位址320-6相關聯之資料係在一記憶體裝置中之與實體位 163457.doc 201250688 址340-3相關聯之一實體位置處。邏輯位址320-M與雜湊值 330-M相關聯且與邏輯位址32()·μ相關聯之資料係在一記 隐體裝置中之與實體位址34〇_M相關聯之一實體位置處。 邏輯位址32(M與—料们3(M㈣聯且與邏輯位址 320-1相關聯之資料係在一記憶體裝置中之與實體位址_ 1相關聯之—實體位置處。在某些實施例中,…用一 ㈣雜凑值(例如,雜凑们3叫之-記憶體系統所接收之 寫入叩例如’該寫入命令之部分)相關聯之任何資料 將不寫入至-記憶體裝置,但可具有與一共同雜凑值33〇_ 1及一共同實體位址之其邏輯位址。 在此項實例t ’邏輯位址32()_2及32()_5對應於相同資 料’因此其共用一共同雜凑值(雜凑值330-2)。將與邏輯位 址320-2及320·5相關聯之資料寫入至與實體位址340-2相關 聯之一實體位置-次,因此將與邏輯位址WWW相 聯之貝料僅寫入至該等記憶體裝置一次。在某些實施例 」與由共用一共同雜凑值(例如’雜凑值330-2)之-記憶 體系^所接收之-寫人命令相關聯之任何資料將與具有— 共同貫體位址(例如,3 4 0 ?彳 40-2)之一共同貫體位置相關聯。當 子取(例如,在讀取命令中請求)與邏輯位址㈣·2及3瓜5 相關聯之資料時,雜凑表31何用於經由與邏輯位址32〇_2 相關%之貝體位址340·2來識別該資料之實體位 可自同只體位置讀取與邏輯位址320-2及320-5相 關聯之待讀取命令。 項實例中’邏輯位址32〇_3、32〇·4及32〇_6對應於相 163457.doc 201250688 丨。j数據,因此其共用一共同雜凑值(雜湊值33〇_3)。將與邏 輯位址320-3、320_4及320·6相關聯之資料寫入至與實體位 址340-3相關聯之一實體位置—次,因此將與邏輯位址 3、320-4及320-6相關聯之資料僅寫入至該等記憶體裝置一 次。在某些實施例中,與由共用一共同雜凑值(例如、,雜 凑值330-3)之一記憶體系統所接收之一寫入命令相關聯之 任何資料將與具有一共同實體位址(例如,340-3)之一共同 實體位置相關聯。當存取(例如,在讀取命令中請求):邏 輯位址320-3、320_4及32〇_6相關聯之資料時,雜凑表… 可用於經由與邏輯位址32〇_3、32〇_4及MW相關聯之實體 位址购識別該資料之實體位置,且自同-實體位置讀 取與邏輯位址320-3、320-4及320 M We β 貝 久相關聯之待讀取命令。 在一或多項實施例中,一雜凑表可包 雜湊值相關聯之資料之實體’' 亥等 h 買卄之'體位置。在某些實施例t,與存 ;I凑表令之-雜凑值相闕聯之資料、 憶體裝置。一雜、基矣亦6八 卜馬八至一 δ己 值相關聯之實體位置之之一清單及與每—雜凑 相關聯之資料是否位於―:,二其可用於判定與-雜凑值 是否不必將盘”'奏信置中之一實體位置處及 不將…亥雜湊值相關聯之資料寫入於 中,此乃因該雜凑值已心_ 。己隐體裝置 處。 體裝置中之-實體位置 結論 本發明包含用於資料. ,. 料去重歿之裝置及方法。一藉 包含:接收一寫入命令 '織 種此方法 夂、,、該寫入命令相關聯之資 163457.doc •15· 201250688 料、判定該資料之一變換值是否存在於一變換表中,且。 應於該變換值不存找該變換表巾之―判定,將與該寫I 命令相關聯之該資料寫入至—記憶體裝置。 … 儘管本文中已圖解說明且闡述了特定實施例,但孰習此 項技術者將瞭解,可諸計算以料㈣結果之—配置來 替代所展示之特定實_。本發明意欲涵蓋本發明之若干 實施例之改動或變化形式。應理解,以上說明係以一說明 性方式而非-限制性方式作出。在審閱以上說明後,熟習 此項技術者將明瞭以上實施例之組合及未在本文中具體閣 述之其他實施例。本發明之若干實施例之範·包含其令使 用以上結構及方法之其他應用1此,應參考隨附申請專 利範圍連同授權此等申請專利範圍之等效内容之全部範圍 一起來判定本發明之若干實施例之範疇。 在前述實施方式中,出於簡化本發明之目的而將某些特 徵一同集合於—單項冑施例+。不應將树明之此方法解 釋為反映本發明之所揭示實施例必須使用比每一請求項中 明確陳述之特徵多的特徵之一意圖。而是,如以下申請專 利範圍反映,發明性標的物在於比一單個所揭示實施例之 所有特徵少。因此’以下申請專利範圍藉此併入至實施方 式中,其中每一請求項獨立地作為一單獨實施例。 【圖式簡單說明】 圖1係根據本發明之—或多項實施例之包含至少一個記 憶體系統之一計算裝置之一功能方塊圖。 圖2係根據本發明之—或多項實施例之包含至少一個記
163457.doc •16- 201250688 憶體系統之一計算裝置之一功能方塊圖。 圖3圖解說明根據本發明之一或多項實施例之表示若干 邏輯位址、雜湊值及實體位址之一雜湊表。 【主要元件符號說明】 100 計算裝置 102 主機 104 記憶體糸統 108 控制器 110-1 記憶體裝置 110-N 記憶體裝置 112 資料去重複組件 114 雜湊表 200 計算裝置 202 主機 204 記憶體系統 208 控制器 210-1 記憶體裝置 210-N 記憶體裝置 212 資料去重複組件 214 雜湊表 314 雜凑表 320 攔 320-1 邏輯位址 320-2 邏輯位址 163457.doc -17 201250688 320-3 邏輯位址 320-4 邏輯位址 320-5 邏輯位址 320-6 邏輯位址 320-M 邏輯位址 330 攔 330-1 雜凑值 330-2 雜湊值 330-3 雜湊值 330-M 雜凑值 340 搁 340-1 實體位址 340-2 實體位址 340-3 實體位址 340-M 實體位址 163457.doc •18

Claims (1)

  1. 201250688 七、申請專利範圍: 1· 一種用於資料去重複之方法,其包括: 接收一寫入命令; 變換與該寫入命令相關聯之資料; 判疋该資料之一變換值是否存在於一變換表中;及 回應於該變換值不存在於該變換表中之一判定,將與 該寫入命令相關聯之該資料寫入至一記憶體裝置。 2. 如明求項1之方法,其中接收該寫入命令包含:自一主 機接收該寫入命令。 3. 如凊求項丨之方法,其中判定該資料之一變換值是否存 在於一變換表中包含:判定與該寫入命令相關聯之該資 料之髮換值是否存在於儲存於該記憶體裝置中之一變 換表中。 .如β求項1之方法,其中判定該資料之一變換值是否存 在於灸換表中包含:判定與該寫入命令相關聯之該資 料之變換值是否存在於儲存於該記憶體裝置之一控制 器中之一變換表中。 士仴求項1之方法’其中該資料包含資料之若干部分, /方法進一步包含將該資料之一部分之該變換值寫入 至該變換表。 6·如明求項1之方法中該資料包含資料之若干部分, 曰言·^ **4* 卜- 進一步包含經由該變換表使該變換值與該資料 之一部分之一實體位址相關聯在一起。 7· 如凊求項彳 古 ,丨之方法,其中該資料包含資料之若干部分, 163457.doc 201250688 且媛換與該寫入命令相關聯之資料 令相關聯之該資料之每一部分。 雜凑與该寫入命 8. -種用於資料去重複之方法,其包括: 雜凑與一寫入命令相關聯之資料; 判定與該寫入命令相關聯之該 在於一雜湊表中;及 雜凑值疋否存 在該資料之該雜湊值不在該 寫入命令相關聯之資料寫入至之情形下將與該 P及頁枓冩入至—記憶體裝置。 9.如請求項8之方法,其中該資 ㈣、“ 哀貧枓包含資料之若干部分, =雜凑與該寫人命令相關聯之資料包含雜湊與該寫入^ ?相關聯之資料之每一部分。 ’、、Ρ 1。·如:求項9之方法’其包含將不在該雜凑表中之 入中令相關聯之該資料之每 …/寫 雜凑表。 I -之她奏值寫入至該 1.1.如請求項Η)之方法’其中將不在該雜凑表中之 入 命令相關聯之該資料之每一部分之該雜凑值寫入^該雜 凑表包含寫入至相變記憶體胞。 12. 如請求項8之方法,其進一步包含在該資料之該雜凑值 存在於該雜湊表中之情形下將一成功寫入指示發送至一 主機且使該資料之—邏輯位址與存在於該雜凑表中之該 雜凑值相關聯。 13. :請求項8之方法’其中判定與該寫入命令相關聯之該 貢料之一雜;奏值是否存在於一雜衫巾包含、經由該記憶 體裝置之控制器之資料去重複電路判定與該寫入命令相 163457.doc 201250688 14. 15. 16. 17. 18. 19. 關聯之該資料之該雜凑值是否存在於該雜凑 一種用於資料去重複之方法,其包括: 雜湊與-寫入命令相關聯 料之若干部分; ㈣,、中0料包含資 料之每一部分之 雜淺 判定與該寫入命令相關聯之 值是否存在於一雜湊表中; 回應於一雜湊值存在於該雜凑表中之—判定, 料之該雜湊值存在於該雜凑.表中之情形下 j该] 指示發送至-主機;及 %^ 回應於一雜湊值不存在於該雜湊表中之—判定,將^ 該寫入命令相關聯之資料寫入至該記憶體裝置』 如請求項14之方法,該方法進—步包含使該資料之每_ 部分之-邏輯位址與存在於該雜湊表中之該資料之_^ 部分之該雜湊值相關聯。 如請求項14之方法’該方法進—步包含經由該雜 該資料之每一部分之一邏輯位址與該資料之每一部分二 該雜凑值相關聯且與該資料之每―部分之—實體位^ 關聯。 ^請求項U之方法’其進-步包含將不在該雜凑表中: 每一部分之該雜凑值寫入至該雜凑表。 如請求項丨4之方法,其進一步包含經由該雜凑表將共月 一共同雜湊值之若干邏輯位址與該記憶體裝置中之一 j 同實體位置相關聯》 一種裝置,其包括: 163457.doc 201250688 一屺憶體胞陣列;及 一控制器,甘+ 昇耦合至該陣列且經組態以: 接收—寫入命令; 雜凑與該寫入命令相關聯之資料; 存:二與該寫入命令相關聯之該資料之-雜凑值是否 存在於-雜凑表中;及 僅在判定該雜湊值不存在於該雜 對應於不在 、衣甲之情形下將 令相關: 凑表中之該雜湊值之與該寫入命 ▲關如之該責料寫入至該言己憶體胞陣列。 20. 如吻求項19之裝置,其中該控制器 憶體袭置外部。 亥陣列之一記 21. 如。月求項19之裝置,其中該控制 憶體裝置内部。 H “亥陣列之-記 之農置’其中該雜湊表錯存於該控制器中。 2:= 置’其中該雜凑表儲存於該陣列中。 .求項19之裝置,其中該資料包含資料之若干部分, 且該控制器經組態以回應於 雜凑值存在於該雜凑表中 疋而將—成功寫人指示發送至之―主機且使資料 之一。卩分之一邏輯位址與 、 相關聯。 ^亥雜凑表中之該雜凑值 25. 如請求項19之裝置,其中該 體胞。 『…體胞陣列包含相變記憶 26. 如請求項19之裝置,其中該記 體胞。 〜體胞陣列包含快閃記憶 163457.doc 201250688 27. 如請求項19之裝置,其中該資料包含資料之若干部分 且該雜湊表經由一雜凑值使資料之一部分之一邏輯仅 與資料之該部分之—實體位址相關聯。 28. —種裝置,其包括: 一記憶體胞陣列;及 一控制器,其耦合至該陣列且經組態以: 雜湊與自一主機所接收之一寫入命令相關聯之_ 料,其中該資料包含資料之若干部分; 資 判疋與該寫入命令相關聯之資料之每一 /奏值疋否存在於一雜凑表中; y、 在貧料之-部分之—雜凑值存在於該雜凑表中 下針對資料之該部分將—成功寫人指科送至該主機W 在資料之該部分之該雜凑值不在該雜湊表 : 將資料之該部分寫入至該裝置。 29·如請求項28之裳置,其中經組態以判定與該寫入命八 :聯之資料之每-部分之該雜凑值是否存在㈣ 中之該控制器包括資料去重複電路。 ’、表 3〇.如請求項28之裝置,其中哕 中。 、准湊表儲存於快閃記憶體胞 裝置’其中在判定該雜凑值不存在於該 ==形下該控制器經組態以將資料之每-部分 μ雜凑值寫入至該雜凑表。 Μ. —種裝置,其包括·· —記憶體胞陣列;及 163457.doc 201250688 一控制器’其耦合至該陣列且經組態以: 雜湊與寫入命令所相關聯之資料之若干部分相關 聯之資料; &針對該若干部分巾之每—部分,判定與該部分相關 %之—雜湊值是否存在於一雜湊表中;及 僅針對其雜凑值經判定不存在於該雜湊表中之資料 ^彼等部分,將對應於資料之彼等部分之資料寫入於 s亥陣列中。 月长項32之裝置,其中該記憶體胞陣列係一相變記憶 體陣列。 163457.doc
TW101112336A 2011-04-08 2012-04-06 用於資料去重複之方法及其記憶體裝置 TWI536384B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/083,269 US9223511B2 (en) 2011-04-08 2011-04-08 Data deduplication

Publications (2)

Publication Number Publication Date
TW201250688A true TW201250688A (en) 2012-12-16
TWI536384B TWI536384B (zh) 2016-06-01

Family

ID=46966999

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101112336A TWI536384B (zh) 2011-04-08 2012-04-06 用於資料去重複之方法及其記憶體裝置

Country Status (7)

Country Link
US (3) US9223511B2 (zh)
EP (2) EP3859534A1 (zh)
JP (2) JP2014513345A (zh)
KR (1) KR101532862B1 (zh)
CN (1) CN103518193B (zh)
TW (1) TWI536384B (zh)
WO (1) WO2012138504A2 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US11636031B2 (en) * 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
KR20130064518A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9606910B2 (en) * 2013-01-17 2017-03-28 Hitachi, Ltd. Method and apparatus for data reduction
US20140281155A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Storage device assisted data de-duplication
US9619167B2 (en) 2013-11-27 2017-04-11 Intel Corporation System and method for computing message digests
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
KR102140792B1 (ko) 2013-12-24 2020-08-03 삼성전자주식회사 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들
US9141292B2 (en) * 2014-01-03 2015-09-22 Smart High Reliability Solutions Llc Enhanced interface to firmware operating in a solid state drive
US8935463B1 (en) * 2014-01-03 2015-01-13 Fastor Systems, Inc. Compute engine in a smart SSD exploiting locality of data
CN107003814A (zh) * 2014-10-01 2017-08-01 邦存科技有限公司 存储系统中的有效元数据
US9626121B2 (en) * 2014-12-19 2017-04-18 International Business Machines Corporation De-duplication as part of other routinely performed processes
US9934236B2 (en) 2015-02-23 2018-04-03 International Business Machines Corporation Streamlining data deduplication
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
US9690512B2 (en) 2015-11-23 2017-06-27 Samsung Electronics Co., Ltd. Method of similarity testing by syndromes and apparatus therefore
US9841918B2 (en) * 2015-12-02 2017-12-12 Samsung Electronics Co., Ltd. Flash memory device including deduplication, and related methods
US10055368B2 (en) * 2016-02-26 2018-08-21 Sandisk Technologies Llc Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications
US10496543B2 (en) * 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US10437785B2 (en) 2016-03-29 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory
US10162554B2 (en) * 2016-08-03 2018-12-25 Samsung Electronics Co., Ltd. System and method for controlling a programmable deduplication ratio for a memory system
TWI610219B (zh) * 2016-08-09 2018-01-01 捷鼎國際股份有限公司 資料儲存系統
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
KR102509913B1 (ko) * 2017-01-25 2023-03-14 삼성전자주식회사 최대화된 중복 제거 메모리를 위한 방법 및 장치
KR20180087925A (ko) 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
US10268413B2 (en) * 2017-01-27 2019-04-23 Samsung Electronics Co., Ltd. Overflow region memory management
US10282125B2 (en) * 2017-04-17 2019-05-07 International Business Machines Corporation Distributed content deduplication using hash-trees with adaptive resource utilization in distributed file systems
KR102419136B1 (ko) 2017-06-15 2022-07-08 삼성전자주식회사 다채널 특징맵을 이용하는 영상 처리 장치 및 방법
US10521617B2 (en) * 2017-08-14 2019-12-31 Western Digital Technologies, Inc. Non-volatile memory device with secure read
US11068606B2 (en) * 2017-09-20 2021-07-20 Citrix Systems, Inc. Secured encrypted shared cloud storage
JP2019057172A (ja) 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US10706005B2 (en) * 2017-12-08 2020-07-07 Vmware, Inc. File system interface for remote direct memory access
US10366011B1 (en) * 2018-05-03 2019-07-30 EMC IP Holding Company LLC Content-based deduplicated storage having multilevel data cache
US10705753B2 (en) 2018-05-04 2020-07-07 EMC IP Holding Company LLC Fan-out asynchronous replication logical level caching
US10860239B2 (en) 2018-05-04 2020-12-08 EMC IP Holding Company LLC Fan-out asynchronous replication caching
US10592166B2 (en) 2018-08-01 2020-03-17 EMC IP Holding Company LLC Fast input/output in a content-addressable storage architecture with paged metadata
US10789062B1 (en) * 2019-04-18 2020-09-29 Dell Products, L.P. System and method for dynamic data deduplication for firmware updates
US11436165B2 (en) * 2019-05-01 2022-09-06 Samsung Electronics Co., Ltd. High bandwidth memory system
KR20210034897A (ko) 2019-09-23 2021-03-31 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
CN111737164A (zh) * 2019-12-31 2020-10-02 珠海艾派克微电子有限公司 访问请求响应方法、耗材芯片以及存储介质
CN113568561A (zh) * 2020-04-29 2021-10-29 伊姆西Ip控股有限责任公司 用于信息处理的方法、电子设备和计算机存储介质
CN111968696B (zh) * 2020-08-27 2021-07-06 海光信息技术股份有限公司 只读存储器电路及其设计方法、只读存储器及电子设备
TWI760880B (zh) * 2020-10-07 2022-04-11 瑞昱半導體股份有限公司 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法
CN114372009A (zh) * 2020-10-15 2022-04-19 瑞昱半导体股份有限公司 传输控制电路、数据传输系统及操作数据传输系统的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185271A (ja) 1994-12-27 1996-07-16 Internatl Business Mach Corp <Ibm> ディスク装置用データ処理方法及びディスク装置
US7010645B2 (en) 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US20050152192A1 (en) 2003-12-22 2005-07-14 Manfred Boldy Reducing occupancy of digital storage devices
US7266657B2 (en) 2004-10-27 2007-09-04 Kwok-Yan Leung Data protection device and method of securing data
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US7747584B1 (en) 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
KR101041710B1 (ko) 2007-03-21 2011-06-14 인텔 코포레이션 비휘발성 메모리의 섹터 관리 방법
US8315984B2 (en) 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
CN100576207C (zh) 2007-05-29 2009-12-30 北大方正集团有限公司 基于元数据去除重复对象的方法
EP2015184A2 (en) * 2007-07-06 2009-01-14 Prostor Systems, Inc. Commonality factoring for removable media
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
JP5275692B2 (ja) * 2007-10-24 2013-08-28 株式会社日立製作所 ストレージシステム群
US9164941B2 (en) 2007-10-24 2015-10-20 Hitachi, Ltd. Storage system group
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US20110202709A1 (en) 2008-03-19 2011-08-18 Rambus Inc. Optimizing storage of common patterns in flash memory
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8412677B2 (en) * 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8285690B2 (en) 2009-09-18 2012-10-09 Hitachi, Ltd. Storage system for eliminating duplicated data
US8352447B2 (en) * 2011-03-01 2013-01-08 Hitachi, Ltd. Method and apparatus to align and deduplicate objects
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication

Also Published As

Publication number Publication date
US9778874B2 (en) 2017-10-03
US20170364301A1 (en) 2017-12-21
US9223511B2 (en) 2015-12-29
JP2014513345A (ja) 2014-05-29
CN103518193A (zh) 2014-01-15
KR20130142182A (ko) 2013-12-27
EP2695065A2 (en) 2014-02-12
TWI536384B (zh) 2016-06-01
US20120260021A1 (en) 2012-10-11
US10282128B2 (en) 2019-05-07
JP2015212971A (ja) 2015-11-26
JP6106719B2 (ja) 2017-04-05
US20160085474A1 (en) 2016-03-24
EP3859534A1 (en) 2021-08-04
KR101532862B1 (ko) 2015-06-30
WO2012138504A2 (en) 2012-10-11
EP2695065A4 (en) 2014-08-20
WO2012138504A3 (en) 2012-12-27
CN103518193B (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
TW201250688A (en) Data deduplication
US10497438B2 (en) Cross-point memory array addressing
US20170300249A1 (en) Validity tracking for garbage collection
US11630766B2 (en) Memory system and operating method thereof
US9971515B2 (en) Incremental background media scan
TW201243607A (en) System, devices, memory controllers, and methods for controlling memory
TW201942751A (zh) 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
WO2017161020A1 (en) Data register copying for non-volatile storage array operations
US10628300B2 (en) RAID stripe physical placement
US11347420B2 (en) Attribute mapping in multiprotocol devices
US11294824B2 (en) System and method for reduced latency of read-modify-write operations
US10254985B2 (en) Power management of storage devices
US11775222B2 (en) Adaptive context metadata message for optimized two-chip performance
US11733920B2 (en) NVMe simple copy command support using dummy virtual function
US9836215B2 (en) Real time protocol generation
US20210208808A1 (en) Host Supported Partitions in Storage Device
KR20210079380A (ko) 메모리 모듈 컨트롤러
CN108021512A (zh) 一种固态硬盘映射管理方法及固态硬盘
US20210109654A1 (en) Efficiently Identifying Command Readiness Based On System State And Data Spread In Multi Queue Depth Environment