TWI594121B - 使用資料壓縮的快取技術 - Google Patents

使用資料壓縮的快取技術 Download PDF

Info

Publication number
TWI594121B
TWI594121B TW104127708A TW104127708A TWI594121B TW I594121 B TWI594121 B TW I594121B TW 104127708 A TW104127708 A TW 104127708A TW 104127708 A TW104127708 A TW 104127708A TW I594121 B TWI594121 B TW I594121B
Authority
TW
Taiwan
Prior art keywords
cache
memory
compressed output
compression
compressed
Prior art date
Application number
TW104127708A
Other languages
English (en)
Other versions
TW201629774A (zh
Inventor
納特S 格利斯拉得
珊吉夫N 崔卡
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201629774A publication Critical patent/TW201629774A/zh
Application granted granted Critical
Publication of TWI594121B publication Critical patent/TWI594121B/zh

Links

Classifications

    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

使用資料壓縮的快取技術 發明領域
本發明係關於快取技術。詳言之,本發明係關於使用資料壓縮的驅動機快取技術。
發明背景
諸如桌上型電腦、膝上型電腦、智慧型手機、平板電腦及其類似者的電子裝置常常包括一或多個周邊儲存裝置。舉例而言,桌上型電腦可包括硬碟機(HDD),其包括經組配以持久地儲存資料之磁性記錄媒體(磁碟)。儘管有用,但與裝置之其他組件相比,HDD之輸入/輸出(例如,寫入/讀取)效能可相對較低。HDD及其他相對慢速之儲存裝置(例如,帶式記憶體)可因此使安裝有其之電子裝置的效能遭受瓶頸。儘管已作出許多嘗試來改良其效能,但HDD之機電性質實際上可限制其效能可改良之程度。
減輕藉由相對慢速之周邊儲存裝置呈現之瓶頸的一種方式為使用快取記憶體裝置(在本文中亦被稱作「快取記憶體」)。一般而言,快取記憶體裝置為在邏輯上駐留於相對慢速之儲存裝置與電子裝置之其他組件(諸如,處理 器)之間的記憶體裝置。通常,快取記憶體包括與相關聯於快取記憶體裝置之相對慢速之儲存裝置相比相對快速的記憶體。快取記憶體裝置之記憶體可充當周邊儲存裝置之臨時儲存區域。舉例而言,頻繁存取之(「熱」)資料可在最初(例如)自相對慢速之儲存裝置存取之後置放於快取記憶體中。此後,可使對熱資料之後續存取針對快取記憶體而非相對慢速之儲存裝置。快取記憶體控制器可應用一或多個演算法及/或策略,以判定哪些資料儲存於快取記憶體裝置之記憶體中且哪些資料被移除。因為快取記憶體快於相對慢速之儲存裝置,所以系統之輸入/輸出效能可得以改良。
儘管快取記憶體裝置可緩解藉由相對慢速之周邊儲存裝置引入的效能瓶頸,但快取記憶體常常係相當昂貴的。快取記憶體之大小可因此受成本及/或其他考慮因素限制。因此,可儲存於快取記憶體中之資料的量實際上可受其記憶體之大小限制。
依據本發明之一實施例,係特地提出一種系統,其包含:一快取記憶體控制器模組,其中該快取記憶體控制器模組經組配以進行以下操作:傳輸包含輸入資料之一壓縮命令至一壓縮引擎,該壓縮命令經組配以使該壓縮引擎壓縮該輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一轉移緩衝器中;在將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體之前判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;在該經 壓縮輸出待寫入至該快取記憶體裝置之該記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其等之組合來至少分配該記憶體裝置中之至少一個邏輯區塊位址(LBA)範圍以供進行該經壓縮輸出之該儲存。
100‧‧‧快取記憶體系統
101‧‧‧快取記憶體控制器模組(CCM)
102‧‧‧快取記憶體裝置
103‧‧‧資料壓縮模組(DCM)
104‧‧‧壓縮解壓縮引擎(CODEC)
105‧‧‧轉移緩衝器
106‧‧‧記憶體
201‧‧‧壓縮命令
202‧‧‧傳回訊息
203‧‧‧寫入命令
300、400‧‧‧方法
301、302、303、304、305、306、307、308、309、310、311、401、402、403、404、405、406、407、408、409‧‧‧區塊
500‧‧‧電子裝置
501‧‧‧裝置平台
502‧‧‧處理器
503‧‧‧儲存裝置
504‧‧‧SSD
505‧‧‧介面
506‧‧‧顯示器/匯流排
所主張標的物之實施例的特徵及優勢將在以下實施方式進行時且在參看圖式之後變得顯而易見,其中類似編號描繪類似部分,且其中:圖1說明與本發明一致之快取系統的方塊圖;圖2描繪與本發明一致之可由快取系統使用的實例命令;圖3為與本發明一致的在快取資料之實例方法中快取記憶體控制器模組之實例操作的流程圖;及圖4為與本發明一致的在快取資料之實例方法中資料壓縮模組之實例操作的流程圖。
圖5A及圖5B為與本發明一致的包括快取系統之實例電子裝置的方塊圖。
較佳實施例之詳細說明
雖然本文中參考用於特定應用之說明性實施例而描述本發明,但應理解,此等實施例僅為例示性的且如由隨附申請專利範圍定義的本發明不限於此。實際上,出於說明起見,可在固態驅動機用作儲存裝置(諸如,硬碟機或帶式記憶體)之快取記憶體裝置的一或多個使用模型的 情況下論述本文中所描述之技術。此等論述僅為例示性的,且應理解,可在其他情況下使用本文中所描述之技術的全部或一部分。實際上,本文中所描述之技術可與任何合適之快取記憶體裝置及儲存裝置一起使用。有權使用本文中所提供之教示的彼等熟習此項技術者將認識到在本發明之範疇內的額外修改、應用及實施例,以及本發明之實施例將具有效用之額外領域。
本文中所描述之技術可實施於一或多個電子裝置中。可利用本文中所描述之技術的電子裝置之非限制性實例包括任何種類之行動裝置及/或靜止裝置,諸如攝影機、行動電話、電腦終端機、桌上型電腦、電子閱讀器、傳真機、詢問一體機、迷你筆記型電腦、筆記型電腦、網際網路裝置、支付終端機、個人數位助理、媒體播放器及/或記錄器、伺服器(例如,刀鋒伺服器、機架安裝式伺服器、其組合等)、機上盒、智慧型手機、平板個人電腦、超行動個人電腦、有線電話、其組合,及其類似者。此等裝置可為攜帶型的或靜止的。在一些實施例中,本文中所描述之技術可用於桌上型電腦、膝上型電腦、智慧型手機、平板電腦、迷你筆記型電腦、筆記型電腦、個人數位助理、伺服器、其組合及其類似者中。更一般而言,本文中所描述之技術可用於快取記憶體裝置及儲存裝置中之一者或兩者可耦接及/或安裝至的任何電子裝置中。
術語「快取記憶體裝置」在本文中用以指用作另一記憶體裝置(在下文中被稱作「儲存裝置」)之快取記憶體 的記憶體裝置。儘管本發明集中於固態驅動機用作快取記憶體裝置之實施例,但應理解,此等描述僅為例示性的,且術語「快取記憶體裝置」涵蓋可用作儲存裝置之快取記憶體的任何類型之記憶體裝置。在無限制的情況下,在一些實施例中,本文中所描述之快取記憶體裝置呈固態驅動機、動態隨機存取記憶體(DRAM)、硬碟機、其組合及其類似者之形式。在一些實施例中,本文中所描述之快取裝置展現大於相關聯儲存裝置之輸入/輸出(「I/O」)效能的I/O效能。因此,在一些實施例中,本文中所描述之快取記憶體裝置可包括快於快取記憶體裝置所相關聯之儲存裝置之記憶體的記憶體(在本文中亦被稱作「快取記憶體」)。
術語「儲存裝置」在本文中用以指可用以持久地儲存資料之記憶體裝置。快取記憶體裝置之非限制性實例包括硬碟機(例如,使用磁性記錄媒體之驅動機)、固態驅動機、帶式記憶體、其組合及其類似者。在一些實施例中,本文中所描述之儲存裝置呈展現低於相關聯快取記憶體裝置之I/O效能之I/O效能的一或多個記憶體裝置。因此,在一些實施例中,本文中所描述之儲存裝置可包括慢於儲存裝置所相關聯之快取記憶體裝置之記憶體的記憶體(在本文中亦被稱作「儲存記憶體」)。
如在本文中之任何實施例中所使用,術語「模組」可指經組配以執行與本發明一致之一或多個操作的軟體、韌體、電路及/或其組合。軟體可體現為軟體套件、程式碼、指令、指令集及/或記錄於非暫時性電腦可讀儲存媒體上之 資料。韌體可體現為程式碼、指令或指令集及/或硬寫碼(非依電性)於記憶體裝置中的資料。如在本文中之任何實施例中所使用,「電路」可包含(例如)單獨或組合形式的固線式電路、可規劃電路(諸如,包含一或多個個別指令處理核心之電腦處理器)、狀態機電路、儲存由可規劃電路執行之指令的軟體及/或韌體。該等模組可共同地或個別地體現為形成如上文所定義之一或多個電子裝置之一部分的電路。在一些實施例中,本文中所描述之一或多個模組可呈至少部分實施於硬體中以執行與本發明一致之一或多個功能的邏輯的形式。
術語「固態驅動機」、「SSD」在本文中互換地使用以指廣泛多種資料儲存裝置中之任一者,其中積體電路總成(例如,非依電性隨機存取記憶體(NVRAM)總成)用以持久地儲存資料。在任何狀況下,SSD可理解為包括諸如「反及」(NAND)及/或「反或」(NOR)記憶體之非依電性記憶體。
術語「硬碟機」及「HDD」在本文中互換地使用以指包括磁性記錄媒體以持久地儲存資料之資料儲存裝置。術語「混合硬碟機」、「混合硬碟機」及「混合HDD」係指包括積體電路總成(諸如,NVRAM)與磁性記錄媒體之組合的資料儲存裝置。混合HDD包括所謂的「雙驅動混合系統」(其中單獨SDD及HDD係(例如)藉由作業系統或其他控制硬體/軟體組合成混合區)及「固態混合驅動機」(其中諸如NAND記憶體之非依電性記憶體併入至硬碟機中)。
如先前技術中所提到,快取記憶體裝置可緩解可藉由相對慢速之周邊儲存裝置引入的效能瓶頸中之至少一些。然而,成本及/或其他考慮因素實際上可限制可包括於快取記憶體裝置中之記憶體之大小。由於可儲存於快取記憶體裝置中之資料的量受快取記憶體之大小限制,因此此限制可對可經由使用快取記憶體裝置獲得之效能改良強加有意義之約束。
牢記前述內容,壓縮待儲存於快取記憶體裝置之記憶體中的資料可向快取記憶體系統提供顯著益處。舉例而言,資料壓縮可使得更多資料能夠儲存於快取記憶體裝置中而無需增加快取記憶體裝置中之記憶體的量。然而,各種考慮因素使得實際上難以在許多快取記憶體裝置中實施資料壓縮。
舉例而言,許多快取記憶體控制器經組配以將所接收資料/狀態分成具有固定大小(例如,4千位元組(Kb)、6KB、8KB等)之多個快取線。因此,例如,快取記憶體控制器可判定應將64KB狀態寫入至快取記憶體。為實現此寫入,控制器可將64KB狀態分成十六個4KB快取線。控制器可接著將寫入命令發送至快取記憶體裝置,從而導致將每一4KB快取線寫入至快取記憶體中之儲存區塊。由於含於4KB快取線中之狀態並未經壓縮,因此控制器通常將分配快取記憶體之4KB區塊以供儲存。
如上文所提到,快取記憶體裝置中之快取記憶體的容量實際上可藉由壓縮每一快取線中之資料來增加。然 而,每一快取線中之資料可能(例如)歸因於含於其中之資料圖案的差異而以不同方式壓縮。舉例而言,第一快取線中之資料圖案可壓縮兩倍(意謂經壓縮資料為輸入資料的一半大小),第二快取線中之資料圖案可壓縮八倍(意謂經壓縮資料為輸入資料的八分之一大小),而第三快取線中之資料圖案可能根本未壓縮(意謂經壓縮資料與輸入資料為相同大小)。牢記此情形,在使用壓縮之先前快取記憶體系統中,快取記憶體控制器在經壓縮資料寫入至快取記憶體中之前並不知曉快取線中之經壓縮資料的大小。因此,即使給定快取線中之經壓縮資料的大小小於完整快取線大小,此等系統中之控制器通常仍分配快取記憶體中之完整快取線大小。舉例而言,4KB快取線中之資料可壓縮至2KB,但快取記憶體控制器可能不知曉經壓縮資料之大小。因此,即使經壓縮資料之大小僅為2KB,控制器仍可能分配快取記憶體中之4KB區塊以供儲存彼快取線中之資料。
因此,使用壓縮之先前快取記憶體系統通常不能夠直接利用藉由壓縮釋放之額外空間。確切而言,為利用藉由壓縮提供之優點,此等系統必須在經壓縮資料被寫入之前詢問快取記憶體裝置,以判定快取記憶體之大小是否已改變及/或判定可用之快取記憶體之量。
牢記前述內容,本發明係關於使用資料壓縮之快取技術。如下文將詳細地描述,本發明之技術包括快取記憶體系統及方法,其中快取線之資料在經寫入至快取記憶體之前經壓縮。不同於使用壓縮之先前快取記憶體系統, 本發明之技術使得快取控制器能夠在將經壓縮資料寫入至快取記憶體之前瞭解快取線中之資料經壓縮至之程度。在一些實施例中,本文中所描述之快取記憶體控制器可至少部分基於經壓縮資料之大小、可歸因於經壓縮資料(或其對應輸入資料)之壓縮比或其組合而判定經壓縮待儲存於快取記憶體中何處。
因此,本發明之一個態樣係關於用於快取資料之系統,其在本文中亦被稱作快取系統。應注意,出於清楚及易於理解起見,本文中所描述之快取系統係獨立於可使用及/或安裝快取記憶體系統之主機裝置及/或系統而描述。應理解,快取記憶體系統可供任何合適之主機裝置或系統使用及/或安裝於任何合適之主機裝置或系統中,主機裝置或系統可呈如上文所定義之電子裝置及/或其組件(諸如,固態驅動機或用作一或多個周邊儲存裝置之快取記憶體的其他記憶體裝置)的形式。在無限制的情況下,本文中所描述之快取記憶體系統特別適合於快取可用於桌上型電腦、膝上型電腦、行動電話、智慧型手機、平板個人電腦、伺服器、資料中心、其組合及其類似者中之一或多個儲存裝置。更一般而言,本文中所描述之快取記憶體系統可實施於可受益於快取相對慢速之周邊儲存裝置的任何裝置中。
就此而言,參看圖1,其為與本發明一致之實例快取記憶體系統的方塊圖。如所展示,快取記憶體系統100包括快取記憶體控制器模組(CCM)101及快取記憶體裝置 102。
應注意,CCM 101在圖1中說明為與快取記憶體裝置102分離。應理解,此說明僅係出於實例起見,且CCM 101可存在於任何合適位置處。舉例而言且如圖1中所指示,在一些實施例中,CCM 101呈與快取記憶體裝置102分離之模組之形式。在此等實施例中,CCM 101可安裝或以其他方式存在於快取記憶體系統100供使用之電子裝置(例如,主機系統,未圖示)中。在此等情況下,CCM 101可與快取記憶體裝置102進行有線或無線通訊。替代地,CCM 101可與快取記憶體裝置102整合,例如,如圖5A及圖5B中所展示。舉例而言,CCM 101可呈快取記憶體裝置101之板上快取記憶體控制器之形式或包括板上快取記憶體控制器。在一些實施例中,快取記憶體系統100包括於固態磁碟中,且CCM 101呈SSD控制器之形式或包括SSD控制器。
在任何狀況下,CCM 101可呈軟體、韌體、硬體、至少部分實施於硬體中之邏輯或其組合的形式,其經組配以控制資料/狀態在快取記憶體裝置102中(或更特定而言,在快取記憶體裝置102之記憶體106中)之儲存。因此,CCM 101可實施一或多個已知或未來快取策略及/或演算法,以判定哪一資料/狀態應儲存及/或哪一資料/狀態應自快取記憶體裝置102移除。替代地或除此等功能外,CCM 101亦可經組配以判定資料/狀態應儲存於快取記憶體裝置102之記憶體106中何處。如稍後將詳細地描述,CCM 101可至少部分基於經壓縮資料/狀態之大小、可歸因於經壓縮資料/狀態 之壓縮比或其組合而分配記憶體106內之區塊(例如,邏輯區塊位址或LBA)。
快取記憶體裝置102可為適合於快取相對慢速之周邊儲存媒體(未圖示)的任何資料儲存裝置。可用作快取記憶體裝置102之合適資料儲存裝置之非限制性實例包括固態驅動機、硬碟機、動態隨機存取記憶體(DRAM)裝置、其組合及其類似者。與前文描述一致,在一些實施例中,快取記憶體裝置102可為展現大於周邊儲存媒體之輸入/輸出(寫入/讀取)效能的輸入/輸出(寫入/讀取)效能的任何資料儲存裝置,對於周邊儲存媒體,資料儲存裝置待用作快取記憶體。在無限制的情況下,在一些實施例中,快取記憶體裝置102呈固態驅動機之形式。
如圖1中所展示,快取記憶體裝置102包括資料壓縮模組(DCM)103、壓縮解壓縮引擎(CODEC)104、轉移緩衝器(緩衝器)105及記憶體106。DCM 103通常用以與CCM 101通訊,且使快取記憶體裝置102執行與本發明一致之資料壓縮操作。稍後將提供關於DCM 103之操作的其他細節。
CODEC 104通常用以壓縮自CCM 101接收之資料。詳言之且如下文將描述,CODEC 104可接收來自CCM 101(或更特定而言,來自DCM 103)之快取線中之資料。出於清楚起見,由CODEC 104接收之資料被稱作輸入資料。雖然本發明描述CODEC對來自單一快取線之輸入資料操作的實施例,但應理解,此描述係出於實例起見且CODEC可經組配以對來自多個快取線之輸入資料操作。因此,例 如,CCM 101可將資料集區分成多個快取線,其中之每一者含有輸入資料(例如,4KB、8KB等)。CCM 101(或DCM 103)可將來自快取線中之一或多者的輸入資料發送至CODEC 104以供壓縮。取決於其組配,CODEC 104可一次僅對輸入資料集合中之一者(亦即,來自一個快取線之輸入資料)操作一,或其可同時對多個輸入資料集合(亦即,來自多個快取線之輸入資料)操作。
CODEC 104可接著(例如)使用一或多個壓縮演算法對輸入資料執行壓縮操作,以便產生經壓縮輸出。如可瞭解,經壓縮輸出之大小可不同於輸入資料之大小。經壓縮輸出之大小與輸入資料之大小之間的相對差異可由壓縮比表示,該壓縮比在一些實施例中可藉由將輸入資料之大小除以經壓縮輸出之大小或藉由將經壓縮輸出之大小除以輸入資料之大小來判定。因此,例如,若輸入資料之大小為4KB且經壓縮輸出之大小為2KB,則取決於計算壓縮比之方式,該比率可為0.5或2。
可由CODEC 104執行之壓縮演算法的非限制性實例包括Lempel-Ziv(LZ)演算法、Deflate演算法、LZR演算法及其組合。當然,此等演算法僅為例示性的且可使用任何合適之壓縮演算法(且詳言之,無損壓縮演算法)。在無限制的情況下,在一些實施例中,CODEC 104對自CCM 101(或更特定而言,自DCM 103)接收之資料/狀態執行Lempel-Ziv演算法。
圖1說明CODEC 104整合至快取記憶體裝置102 之實施例。應理解,此說明僅係出於實例起見,且CODEC 104無需整合至快取記憶體裝置102。實際上,本發明設想CODEC 104儲存及/或實施於任何合適位置處之實施例。舉例而言,CODEC 104可為藉由主機系統之其他硬體(諸如,視訊卡或其他硬體加速器)實施的硬體codec。替代地或另外,CODEC可為藉由(例如)主機系統之處理器執行的軟體codec。
無關於CODEC 104之性質,由CODEC 104產生之經壓縮輸出可儲存於緩衝器105中。因此,緩衝器105可經組配以儲存codec 105之經壓縮輸出。詳言之,緩衝器105可在將經壓縮輸出寫入至快取記憶體裝置102之記憶體106之前儲存codec 105之經壓縮輸出。如稍後將描述,將經壓縮輸出寫入至記憶體106可以(例如)來自CCM 101之資料寫入命令(例如,寫入命令)的接收為條件。此外,在將經壓縮輸出提交至記憶體105之前(例如,在經壓縮輸出儲存於緩衝器105中時),待寫入有經壓縮輸出之位置(例如,記憶體106中之邏輯區塊位址)可藉由CCM 101判定,如下文將進一步描述。因此,緩衝器105可理解為可在codec 104之經壓縮輸出提交至快取記憶體106之前儲存經壓縮輸出的轉移緩衝器。
緩衝器105可為適合於儲存經壓縮輸出之任何記憶體結構。可用作緩衝器105之合適記憶體結構之非限制性實例包括靜態隨機存取記憶體(SRAM)、嵌入式動態隨機存取記憶體、其組合及其類似者。在無限制的情況下,在一 些實施例中,緩衝器105之大小大於或等於大約自CCM 101接收之快取線之大小。因此,例如,在CCM 101將4KB快取線傳輸至快取記憶體裝置102之情況下,在一些實施例中,緩衝器105之大小大於或等於大約4KB。當然,此僅係出於實例起見且緩衝器105可具有任何所要大小。
記憶體106可為任何合適類型之電腦可讀記憶體。可用作記憶體106之例示性記憶體類型包含(但不限於):相變記憶體(PCM)、三維交叉點記憶體、電阻性記憶體、奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、快閃記憶體(諸如,NAND或NOR記憶體)、併有憶阻器技術之磁阻式隨機存取記憶體(MRAM)記憶體、自旋力矩轉移(STT)-MRAM、磁力驅動記憶體、光碟機記憶體、其組合及其類似者。另外或替代地,記憶體106可包括其他及/或稍後開發之類型的電腦可讀記憶體。
在無限制的情況下,在一些實施例中,記憶體106為通常與用作快取記憶體裝置102之類型之記憶體裝置相關聯的類型之記憶體。因此,例如,當快取記憶體裝置102為固態驅動機時,記憶體106可呈非依電性記憶體之形式。同樣,當快取記憶體裝置102為硬碟機時,記憶體106可呈磁性記錄媒體之形式。在無限制的情況下,在一些實施例中,快取記憶體裝置102呈SSD之形式,且記憶體106呈非依電性記憶體(例如,NAND記憶體)之形式。在任何狀況下,記憶體106可經組配以將資料儲存於可(例如)藉由記憶體控制器或快取記憶體裝置102之其他組件定址的一 或多個邏輯區塊中。亦即,記憶體106可包括多個邏輯區塊位址(LBA)或配置於多個邏輯區塊位址(LBA)中,資料/狀態可儲存於該等多個邏輯區塊位址(LBA)處。如此項技術中一般所理解,資料可回應於資料寫入命令而寫入至記憶體106。資料寫入命令可呈指定記憶體106內之邏輯區塊位址的寫入命令之形式,與該命令相關聯之資料/狀態形式待寫入至該等邏輯區塊位址。
出於實例起見,本發明現將繼續進行以描述快取記憶體裝置102呈SSD之形式且記憶體106呈非依電性記憶體之形式的快取記憶體系統100之實施例的操作。強調以下描述係出於實例起見,且結合此實例描述之操作可供任何合適之快取記憶體裝置使用。
進一步參看圖1,CCM 101可接收來自資料源(諸如,處理器或可安裝有快取記憶體系統100之主機系統之另一組件)之資料。如上文所提到,CCM 101可應用一或多個快取策掠,以判定資料之全部或一部分是否待寫入至記憶體106。當CCM 101判定資料之全部或一部分待寫入至記憶體106時,其可將待寫入資料分配至可具有固定或可變大小之一或多個快取線。在無限制的情況下,在一些實施例中,快取線具有固定大小,例如,4KB、6KB、8KB、16KB、32KB、64KB等。
CCM 101亦可將標籤指派至快取線中之資料。一般而言,該標籤充當特定資料單元(在此狀況下為待分配至快取線中之一者的資料)之識別符。因此,該標籤可呈適合 於唯一地識別標籤所相關聯之快取線中之資料的任何格式。因此,例如,CCM 101可將第一標籤「A」指派至第一快取線中之資料,且將第二標籤「B」指派至第二快取線中之資料,等等。與快取線相關聯之標籤的性質及格式並不受限制,只要其能夠唯一地識別快取線中之資料即可。因此,例如,該標籤可呈以下形式:32位元、64位元、128位元或256位元序號;快取線中之資料的雜湊;其組合;及其類似者。在無限制的情況下,在一些實施例中,該標籤呈64位元序號之形式。
CCM 101可接著將快取線中之資料發送至快取記憶體裝置102以供壓縮,如藉由圖1之點1所說明。就此而言,CCM 101可(例如)在一或多個有線或無線訊號中將壓縮命令發送至快取記憶體裝置102。壓縮命令可呈任何合適格式,諸如根據串列進階附接技術(SATA)標準或快速非依電性記憶體(NVMe)標準之任何先前、當前或未來開發之版本的供應商特定命令。在任何狀況下,壓縮命令可將標籤之複本、用於壓縮之輸入資料(亦即,快取線中之資料)及(視情況)輸入資料之未經壓縮大小之量測值包括於命令中。此概念說明於圖2中,其中壓縮命令201說明為呈包括標籤、輸入資料及(視情況)輸入資料之未經壓縮大小之量測值的單一命令之形式。當然,壓縮命令可視需要包括其他元素,諸如(但不限於)命令標頭。壓縮命令亦可包括一或多個壓縮指令或與一或多個壓縮指令相關聯,該等一或多個壓縮指令可經組配以使CODEC 104對輸入資料執行壓縮操作。當 然,標籤、資料及壓縮指令無需包括於同一命令中,且可視需要包括於不同命令中。
DCM 103可直接接收來自CCM 101之壓縮命令,或壓縮命令可自快取記憶體裝置102之其他組件轉遞至DCM 103。在任何狀況下,回應於壓縮命令,DCM 103可將自快取記憶體控制器模組接收之輸入資料轉遞至CODEC 104以供壓縮。作為回應,CODEC 104可(例如)使用如先前所描述之一或多個壓縮演算法對輸入資料執行一或多個壓縮操作。如圖1之點2處所說明,CODEC 104可將所得經壓縮輸出儲存於轉移緩衝器105中。CODEC 104可接著將壓縮操作之完成及經壓縮輸出之位置(例如,緩衝器105之識別符、緩衝器105內之位址範圍等)報告至DCM 103。
如圖1之點3處所說明,DCM 103可將傳回訊息傳達至CCM 101。傳回訊號可包括指派至輸入資料之標籤以及儲存於DCM 103中之經壓縮輸出的大小之量測值。此概念展示於圖2中,其中傳回訊息202說明為包括標籤及經壓縮輸出之大小。因此,在一些實施例中,DCM 103可量測或以其他方式判定儲存於緩衝器105中之經壓縮輸出之大小,且將所判定大小包括於傳回命令中。替代地或另外,CODEC 104可經組配以(例如)在其壓縮輸入資料之後自動地將經壓縮資料之大小傳達至DCM 103。
雖然本發明設想DCM 101自動地將指定經壓縮大小及標籤之傳回訊息發出至CCM 101的實施例,但本發 明之系統無需以彼方式組配。實際上,在一些實施例中,DCM 103可使傳回訊息之發出以來自CCM 101之詢問訊息之接收為條件。舉例而言,由於來自CCM 101之輸入資料藉由CODEC 104壓縮且儲存於轉移緩衝器105中,因此DCM 103可維護記錄(例如,表或其他資料結構),其使相關聯於自CCM 101接收之輸入資料(例如,各種不同快取線)的標籤與相關聯於標籤之經壓縮輸出之大小以及經壓縮輸出之位置(例如,在緩衝器105中)相關。DCM 101可接著等待來自CCM 101之詢問命令之接收。舉例而言,在一些實施例中,CCM 101可將詢問命令傳輸至DCM 103,其中詢問命令包括詢問指令及標籤。回應於詢問命令,DCM 103可查找與標籤相關聯之經壓縮輸出之大小,且將包括標籤及經壓縮輸出之大小的傳回訊息發送至CCM 101,如上文所論述。
在任何狀況下,如圖4之點4所說明,CCM 101可接收來自快取記憶體裝置102(或更特定而言,來自DCM 103)之傳回訊息。回應於接收到傳回訊息,CCM 101可分析傳回訊息以識別標籤及經壓縮資料之大小。經由此分析,CCM 101可判定與標籤相關聯之輸入資料藉由CODEC 104壓縮的程度。換言之,藉由分析傳回訊息,CCM 101可判定儲存於緩衝器105中之經壓縮輸出之大小。因為經壓縮輸出與標籤相關聯(在傳回訊息中)且標籤與輸入資料相關聯(在壓縮命令中),所以CCM 101可因此判定經壓縮輸出之大小及/或輸入資料藉由CODEC 104壓縮之程度(亦即,輸入資料之壓縮比)。
CCM 101可接著判定經壓縮輸出待儲存於記憶體106中何處。就此而言,CCM 101可知曉記憶體106內之邏輯區塊位址(LBA)以及彼等邏輯區塊位址之當前狀態(例如,被寫入、未寫入等)。舉例而言,CCM 101可維護識別記憶體106中之所有LBA的LBA表。至少部分基於經壓縮輸出之大小及/或可歸因於輸入資料之壓縮比,CCM 101可接著分配記憶體106內之一或多個LBA以供儲存經壓縮輸出。
如圖1之點5處所展示,CCM 101可接著將寫入命令發出至快取記憶體裝置102。一般而言,寫入命令可經組配以使快取記憶體裝置102將儲存於緩衝器105中之經壓縮輸出寫入至記憶體106之一或多個LBA。因此,寫入命令可包括與經壓縮輸出(及對應輸入資料)相關聯之標籤以及待寫入有經壓縮輸出之一或多個LBA。此概念說明於圖2中,其中寫入命令203說明為包括標籤及記憶體106中之待寫入有與標籤相關聯之經壓縮輸出的一或多個LBA的單一命令。寫入/提交指令(未圖示)亦可視需要包括於命令中或單獨地藉由CCM 101傳輸。
現轉向圖1之點6,DCM 103可經組配以接收來自CCM 101之寫入命令。回應於寫入命令,DCM 103可使快取記憶體裝置102將與在寫入命令中識別之標籤相關聯的經壓縮資料自緩衝器105寫入至記憶體106之在寫入命令中指定的一或多個邏輯區塊位址。將經壓縮資料自緩衝器105寫入至記憶體106可按任何先前已知或待開發之方式發生,且因此本文中不進行論述。
為清楚起見,上文論述集中於CCM 101判定儲存於緩衝器105中之經壓縮輸出待寫入至快取記憶體裝置102之記憶體106的實施例。應理解,上文論述僅係出於實例起見,且儲存於緩衝器105中之經壓縮輸出無需始終寫入至快取記憶體裝置102之記憶體106。實際上,本發明設想CCM 101回應於傳回訊息而判定儲存於緩衝器105中之經壓縮輸出並不待寫入至記憶體106的實施例。
藉由實例,在一些實施例中,CCM 101可分析傳回訊息以判定儲存於緩衝器105中之經壓縮輸出之大小及/或可歸因於輸入資料之壓縮比,如上文所論述。在此等實施例中,CCM 101亦可經組配以至少部分基於壓縮比及/或經壓縮輸出之大小而判定是否將經壓縮輸出寫入至記憶體106。舉例而言,CCM 101可比較可歸因於輸入資料之壓縮比與臨限壓縮比,且至少部分基於可歸因於輸入資料之壓縮比是否超過臨限壓縮比而判定經壓縮輸出是否並不待寫入至記憶體106。替代地或另外,CCM 101可比較緩衝器105中之經壓縮輸出之大小與臨限大小,且至少部分基於經壓縮輸出之大小是否超過臨限大小而判定經壓縮輸出是否待寫入至記憶體106。
在CCM 101判定經壓縮輸出並不待寫入至記憶體106的情況下,CCM 101可將捨棄命令發出至快取記憶體裝置102(或更特定而言,發出至DCM 103)。捨棄命令可包括(例如)捨棄指令及標籤。回應於捨棄命令,DCM 103可使快取記憶體裝置102將與標籤相關聯之經壓縮輸出自緩衝 器105清除。
如上文所論述,本發明設想如下實施例:CCM 101使標籤與待壓縮之快取線資料相關聯,DCM 103使標籤與儲存於轉移緩衝器105中之經壓縮資料相關聯,且CCM發出含有標籤之將經壓縮資料寫入至記憶體106的寫入命令。儘管可用,但應理解,此等實施例係出於實例起見,且本發明設想標籤並不用以識別快取線中之資料的實施例。舉例而言,CCM 101可經組配以將壓縮命令傳輸至快取記憶體裝置102,如上文所提到。然而,不同於前述實施例,壓縮命令可含有供壓縮之來自快取線的資料/狀態,但可能不含有標籤。回應於壓縮命令,DCM 103可將資料/狀態轉遞至CODEC 104以供壓縮,其後經壓縮輸出可儲存於轉移緩衝器105中。DCM 103可接著將傳回訊號發送至CCM 101,該傳回訊號用訊號通知壓縮操作之完成及儲存有經壓縮輸出之轉移緩衝器105的位置/識別。
當CCM判定經壓縮輸出待寫入至記憶體106時,其可將讀取命令發出至快取記憶體裝置102。讀取命令可以轉移緩衝器105為目標,且使快取記憶體裝置102將轉移緩衝器105之內容提供至快取記憶體控制器101。CCM 101可接著判定自轉移緩衝器105讀取之資料的大小及/或壓縮比,且分配記憶體106內之邏輯區塊位址以供儲存資料。CCM 101可接著將包括經壓縮輸出及記憶體106之經分配LBA的寫入命令發出至快取記憶體裝置102。回應於寫入命令,快取記憶體裝置102可將經壓縮輸出寫入至在寫入命 令中指定之經分配LBA。
如可瞭解,此等實施例可允許CCM 101在將經壓縮輸出寫入至記憶體106之前判定經壓縮輸出之大小及/或壓縮比,同時避免與針對每一快取線產生及追蹤標籤相關聯之額外耗用,但很可能以必須在可發送額外資料之前等待關於給定快取線之狀態的壓縮完成為代價。
如先前所指出,本發明之快取記憶體系統包括於(例如)一或多個快取記憶體裝置及/或電子裝置中,且可快取一或多個儲存裝置。此概念說明於圖5A中,該圖描繪包括與本發明一致之快取記憶體系統的電子裝置之方塊圖。如所展示,電子裝置500包括裝置平台501、處理器502、儲存裝置503、快取記憶體裝置(在此狀況下為SSD 504)、輸入/輸出介面/裝置(例如,鍵盤、滑鼠等)及顯示器506。SSD 504包括快取記憶體系統100,該SSD之其他細節展示於圖5B中。
電子裝置500可為任何合適之電子裝置,諸如上文所描述之電子裝置。因此,可用作電子裝置500之電子裝置之非限制性實例包括任何種類之移動裝置及/或靜止裝置,諸如攝影機、蜂巢式電話、電腦終端機、桌上型電腦、電子閱讀器、傳真機、詢問一體機、迷你筆記型電腦、筆記型電腦、網際網路裝置、支付終端機、個人數位助理、媒體播放器及/或記錄器、伺服器(例如,刀鋒伺服器、機架安裝式伺服器、其組合等)、機上盒、智慧型手機、平板個人電腦、超行動個人電腦、有線電話、其組合,及其類似 者。此等裝置可為攜帶型的或靜止的。在一些實施例中,本文中所描述之技術可用於桌上型電腦、膝上型電腦、智慧型手機、平板電腦、迷你筆記型電腦、筆記型電腦、個人數位助理、伺服器、其組合及其類似者中。
裝置平台可為任何合適之裝置平台,且在一些實施例中,與用作電子裝置500之電子裝置之類型相關。因此,例如,當電子裝置500為智慧型手機、筆記型電腦、桌上型電腦、伺服器等時,裝置平台501可氛別呈智慧型手機平台、筆記型電腦平台、桌上型電腦平台、伺服器平台之形式。當然,此等裝置平台僅係出於實例起見,且任何合適之裝置平台可用作裝置平台501。
處理器502可為任何合適之一般用途處理器或特殊應用積體電路,且可能能夠在一或多個處理器核心上執行一或多個執行緒。在無限制的情況下,在一些實施例中,處理器502為一般用途處理器,諸如(但不限於)可購自INTEL®公司、ADVANCED MICRO DEVICES®、ARM®、NVIDIA®、APPLE®及SAMSUNG®之一般用途處理器。雖然圖5A將電子裝置500說明為包括單一處理器502,但可使用多個處理器。
儲存裝置503可為任何合適之儲存裝置,諸如(但不限於)上文所提到之儲存裝置。在無限制的情況下,在一些實施例中,儲存裝置503呈SSD、硬碟機、帶式記憶體、其組合及其類似者之形式。在一些實施例中,儲存裝置503可展現慢於電子裝置500中所使用之快取記憶體裝置(在此 狀況下為SSD 504)之輸入輸出效能的輸入輸出效能。
現參看圖5B,該圖提供圖5A中之SSD 504的其他細節及電子裝置500之其他組件。如圖5B中所展示,SSD 504可(例如)經由介面505與(裝置平台501之)匯流排506通訊。就此而言,任何合適之匯流排可用作匯流排506,且任何合適之介面可用作介面505。在無限制的情況下,在一個實施例中,匯流排506為串列進階附接技術(SATA)匯流排,且介面505為SATA介面。如圖5B中進一步展示,SSD 504可包括快取記憶體控制器模組(CCM)101、資料壓縮模組(DCM)103、CODEC 104、緩衝器105及記憶體106。出於說明起見,CCM 101、DCM 103及CODEC 104經展示為SSD 504之單獨元件,但應理解,此組配並非必需的。實際上,在一些實施例中,此等元件中之一者或組合可整合於或以其他方式包括於SSD 504之SSD控制器(未圖示)中。
在操作中,匯流排506可將資料(例如,來自處理器502)攜載至SSD 504。SSD 504可(例如)經由介面505接收資料。所接收資料可接著經傳送至CCM 101。彼時,CCM 101可應用一或多個快取記憶體策略以判定資料之全部或一部分是否待寫入至記憶體106。若如此,則CCM 101可將資料分成一個或多個快取線(如先前論述),且將快取線(視情況用標籤加以標記)中之一或多者發送至DCM 103以供壓縮。如上文所論述,DCM 103可將資料(輸入資料)發送至CODEC 104以供壓縮。CODEC 104可壓縮輸入資料以產生儲存於緩衝器105中之輸出。
CCM 101可接著判定經壓縮輸出之大小及/或可歸因於輸入資料之壓縮比,且可應用一或多個快取策略以判定經壓縮輸出是否待寫入至記憶體106。如先前所論述,彼決策可至少部分基於經壓縮輸出之大小及/或可歸因於輸入資料之壓縮比而斷定。當經壓縮輸出待寫入至記憶體106時,CCM 101可分配記憶體106中之至少一個邏輯區塊位址範圍以供儲存經壓縮輸出。CCM 101可接著將寫入命令發送至SSD 504之磁碟控制器(未圖示),其中寫入命令使控制器將儲存於緩衝器105中之經壓縮輸出寫入至記憶體106之藉由CCM 101分配的邏輯區塊位址範圍。替代地,在CCM 101與SSD 504之磁碟控制器整合或呈磁碟控制器之形式的情況下,CCM 101自身可使得將緩衝器105中之經壓縮輸出寫入至記憶體106之經分配邏輯區塊位址範圍。同樣,在經壓縮輸出並不待寫入至記憶體106之情況下,CCM 101可發出捨棄命令,使得經壓縮輸出(例如)在經寫入至記憶體106之前自緩衝器105而清除。
本發明之另一態樣係關於快取資料之方法。就此而言,參看圖3,其為根據與本發明一致之快取資料之實例方法的快取記憶體控制器模組之實例操作的流程圖。如所展示,方法300在區塊301處開始。該方法可接著繼續進行至可選區塊302,此時快取記憶體控制器模組可接收來自來源(諸如,主機系統之另一組件)之資料。因為本文中所描述之操作的效能可能不以快取記憶體控制器模組對資料之接收為條件,所以區塊302指示為可選的。舉例而言,快取記 憶體控制器模組可視需要對由快取或主機系統之另一組件接收及或儲存於另一組件中之資料執行本文中所描述之操作。
在任何狀況下,該方法可繼續進行至區塊303,其中快取記憶體控制器模組可將用於壓縮之輸入資料及可選標籤發送至(例如)資料壓縮模組,如上文所描述。與前文描述一致,在一些實施例中,快取記憶體控制器模組可將輸入資料分成固定大小之快取線,且使每一快取線中之資料與標籤相關聯。快取記憶體壓縮模組可接著(例如)在壓縮命令中將快取線中之資料及其相關聯標籤傳輸至快取記憶體裝置之資料壓縮模組。與前文一致,壓縮命令可經組配以使資料壓縮模組將輸入資料轉遞至codec以供壓縮。替代地,在不使用標籤之實施例中,壓縮命令可包括快取線中之資料,且可經組配以使資料壓縮模組將輸入資料轉遞至codec以供壓縮並將經壓縮輸出之位置(轉移緩衝器)報告至快取記憶體控制器模組。
該方法可接著繼續進行至區塊304,其中快取記憶體控制器模組可作出關於是否已接收到(例如)來自資料壓縮模組之傳回訊息的判定。如上文所提到,傳回訊息可包括標籤之複本,快取記憶體控制器模組在區塊303中將標籤指派至輸入資料且資料壓縮模組已使標籤與藉由壓縮輸入資料產生之經壓縮輸出相關。傳回訊息亦可包括經壓縮輸出之大小,如先前所描述。替代地,在不使用標籤之情況下,傳回命令可包括儲存有經壓縮輸出之轉移緩衝器之 識別碼。
若尚未接收到傳回訊息,則快取記憶體控制器模組可繼續等待傳回訊息之接收,及/或該方法可繼續進行至區塊305。依照區塊305,快取記憶體控制器模組可將詢問訊息傳輸至快取記憶體裝置(或更特定而言,傳輸至其資料壓縮模組)。如上文所提到,詢問訊息可使快取記憶體裝置及/或裝置壓縮模組報告與標籤相關聯之經壓縮輸出之大小。替代地,在不使用標籤之情況下,詢問訊息可使資料壓縮模組報告經壓縮輸出之位置,例如,轉移緩衝器105之識別碼。
若已接收到傳回訊息或若快取記憶體控制器模組已藉由其他手段(例如,經由詢問訊息)獲得經壓縮輸出之大小,則該方法可繼續進行至區塊306。依照區塊306,快取記憶體控制器模組可分析與標籤相關聯之經壓縮輸出之大小及/或可歸因於與標籤相關聯之輸入資料之壓縮比,如上文大體所論述。替代地,在不使用標籤之情況下,快取記憶體控制器模組可發出以其儲存有經壓縮輸出之轉移緩衝器為目標的讀取命令,且可判定經壓縮輸出之大小及/或來自轉移緩衝器之內容的回應於讀取命令而讀出的對應輸入資料之壓縮比。
該方法可接著繼續進行至區塊307,其中可作出關於經壓縮輸出是否待寫入快取記憶體裝置之記憶體的判定。如上文所論述,在一些實施例中,此判定可至少部分基於經壓縮輸出之大小及/或可歸因於輸入資料之壓縮比 與一或多個臨限值的比較。
若作出不將經壓縮輸出寫入至快取記憶體裝置之記憶體的判定,則該方法可繼續進行至區塊308,其中快取記憶體控制器模組可傳輸清除命令。如上文所提到,清除命令可經組配以使快取記憶體裝置將與標籤相關聯之經壓縮資料自快取記憶體裝置中之轉移緩衝器清除。然而,若作出將經壓縮輸出寫入至快取記憶體裝置之記憶體的判定,則該方法可繼續進行至區塊309。
依照區塊309,快取記憶體控制器模組可分配快取記憶體裝置之記憶體的一或多個邏輯區塊位址以供儲存經壓縮輸出。如上文所論述,在一些實施例中,快取記憶體控制器可至少部分基於與標籤相關聯之經壓縮輸出之大小及/或可歸因於與標籤相關聯之輸入資料之壓縮比而分配LBA。在任何狀況下,快取記憶體控制器模組可接著將含有標籤及經分配LBA之寫入命令傳輸至快取記憶體裝置。替代地,在不使用標籤之情況下,快取記憶體控制器模組可將含有經壓縮資料(自轉移緩衝器讀出)及經分配LBA之寫入命令傳輸至快取記憶體裝置。在任一狀況下,寫入命令可經組配以使快取記憶體裝置將經壓縮輸出寫入至在寫入命令中識別之LBA。
在依照區塊308傳輸清除命令或依照區塊309傳輸寫入命令之後,該方法可繼續進行至可選區塊310。依照此可選區塊,可作出關於額外操作是否有待執行之判定。在一些實施例中,此判定之結果可以是否存在可潛在地寫 入至快取記憶體之額外輸入資料為條件。若額外操作有待執行,則方法可迴圈回至區塊303且重複。然而,若無額外操作有待執行,則該方法可繼續進行至區塊311且結束。
現參看圖4,其為與壓縮資料之一個實例方法一致的資料壓縮模組之實例操作的流程圖,該實例方法與本發明一致。如所展示,方法400可在區塊401處開始。該方法可接著繼續進行至可選區塊402,其中資料壓縮模組可作出關於是否已接收到含有輸入資料及可選標籤之壓縮命令的判定。因為該方法之其他操作可能不以該判定為條件,而是以輸入資料及可選標籤之接收為條件,所以區塊402說明為可選的。如上文所提到,可自已將資料分成一個或多個快取線之快取記憶體控制器模組發出壓縮命令,其中每一快取線中之資料視情況與唯一標籤相關聯。
若判定尚未接收到輸入資料及(視情況)標籤,則該方法可繼續進行至區塊409且結束。然而,若已接收到輸入資料及(視情況)標籤,則該方法可繼續進行至區塊403。在不使用標籤但已接收到輸入資料之實施例中,該方法可繼續進行至區塊403。
依照區塊403,資料壓縮模組可將輸入資料傳輸至CODEC以供壓縮,如上文大體所描述。舉例而言,資料壓縮模組可將壓縮指令及輸入資料傳輸至CODEC。壓縮指令可經組配以使CODEC對輸入資料執行一或多個壓縮操作,且將所得經壓縮輸出儲存於快取記憶體裝置之轉移緩衝器中,如上文所論述。
該方法可接著繼續進行至區塊404,其中資料壓縮模組可將傳回訊息發送至快取記憶體控制器模組。如上文所提到,傳回訊息之傳輸可自動地(例如,回應於藉由CODEC進行之壓縮操作的完成)執行,或回應於來自快取記憶體控制器模組之詢問而執行。在任何狀況下,傳回訊息可包括與輸入資料(及經壓縮輸出)相關聯之標籤以及經壓縮輸出之大小。替代地,在不使用標籤之情況下,傳回訊息可指定儲存有經壓縮輸出之位置(例如,轉移緩衝器之識別碼)。
此時,該方法可繼續進行至區塊405,其中可作出關於是否已接收到提交/捨棄命令之判定。如上文所提到,寫入命令可藉由快取記憶體控制器模組發送,且可包括寫入指令、與經壓縮輸出相關聯之標籤及快取記憶體之待寫入有經壓縮輸出的一或多個邏輯區塊位址。對比而言,捨棄命令可包括與經壓縮輸出相關聯之標籤連同捨棄指令。替代地,若不使用標籤,則寫入命令可包括先前自轉移緩衝器讀出之經壓縮輸出的全部或一部分以及快取記憶體之待寫入有經壓縮輸出的一或多個邏輯區塊位址。同樣,在不使用標籤之實施例中,捨棄命令可以儲存有經壓縮輸出之轉移緩衝器為目標而非使用標籤。
若尚未接收到提交或捨棄命令,則該方法可繼續進行至區塊406,其中可作出關於資料壓縮模組是否將繼續等待此命令之接收的判定。此判定之結果可以為(例如)臨限時間段是否已期滿為條件。若資料壓縮模組將繼續等待提 交或捨棄命令之接收,則該方法可迴圈回至區塊405。否則,該方法可繼續進行至區塊409且結束。
當已接收到提交或釋放命令時,該方法可繼續進行至區塊407,其中資料壓縮模組可使快取記憶體裝置在適當時提交或清除儲存於轉移緩衝器中之經壓縮輸出。舉例而言,當接收到含有標籤之捨棄命令時,資料壓縮模組可使快取記憶體裝置捨棄與命令中之標籤相關聯且儲存於快取記憶體裝置之轉移緩衝器中的經壓縮輸出。替代地,在不使用標籤且接收到捨棄命令且其指定轉移緩衝器之位置的情況下,資料壓縮模組可使快取記憶體裝置捨棄儲存於經識別轉移緩衝器中之經壓縮輸出。
替代地,當接收到包括標籤之寫入命令時,資料壓縮模組可使快取記憶體裝置將與標籤相關聯之經壓縮輸出寫入至快取記憶體之在寫入命令中指定的邏輯區塊位址。資料壓縮模組可(例如)藉由發出寫入命令來執行此等操作,該寫入命令經組配以使快取記憶體裝置將與寫入命令中之標籤相關聯的經壓縮輸出寫入至快取記憶體之在寫入命令中指定的邏輯區塊位址。在不使用標籤之情況下,寫入命令可包括待寫入之經壓縮輸出(例如,先前自轉移緩衝器讀取)。在此等情況下,資料壓縮模組可使快取記憶體裝置將寫入命令中之經壓縮輸出寫入至在寫入命令中指定之邏輯區塊位址。
此時,該方法可繼續進行至操作區塊408,其中可作出關於額外操作是否有待執行之判定。在一些實施例 中,此判定之結果可以是否存在可潛在地寫入至快取記憶體之額外輸入資料及/或經壓縮輸出為條件。若額外操作有待執行,則該方法可迴圈回至區塊402且重複。然而,若無額外操作有待執行,則該方法可繼續進行至區塊409且結束。
如可自前文瞭解,本發明之技術允許快取記憶體控制器模組在分配快取記憶體之邏輯區塊位址之前瞭解經壓縮輸出之大小。結果,快取記憶體控制器模組可將快取記憶體之邏輯區塊位址的分配制定為經壓縮輸出之大小。此外,因為快取記憶體控制器模組瞭解寫入至記憶體之每一筆經壓縮資料的大小及快取記憶體之大小,所以其可知曉快取記憶體中之邏輯區塊位址的分配及/或可用性而無需向快取記憶體裝置詢問彼資訊。因此,本文中所描述之技術可允許快取系統中之更順暢及/或有效的壓縮。亦可在不影響以快取記憶體為目標之讀取命令的情況下獲得此等優點。
實例
以下實例係關於其他實施例。本發明之以下實例可包含如下文提供之標的物,諸如系統、裝置、方法、儲存在經執行時使機器執行基於方法之動作之指令的電腦可讀儲存媒體,及/或用於執行基於方法之動作的構件。
實例1:本發明之一個實例為一種系統,其包括一快取記憶體控制器模組,其中該快取記憶體控制器模組經組配以進行以下操作:將包括輸入資料之一壓縮命令傳 輸至一壓縮引擎,該壓縮命令經組配以使該壓縮引擎壓縮該輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一轉移緩衝器中;在將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體之前判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;在該經壓縮輸出待寫入至該快取記憶體裝置之該記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其一組合而至少分配該記憶體裝置中之至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸出。
實例2:此實例包括實例1之任何或所有特徵,其中該壓縮引擎為該快取記憶體裝置之部分。
實例3:此實例包括實例1及2中之任一者的任何或所有特徵,其中該轉移緩衝器為該快取記憶體裝置之部分。
實例4:此實例包括實例1至3中之任一者的任何或所有特徵,其中:該快取記憶體控制器模組經進一步組配以使該輸入資料與一標籤相關聯且在該壓縮命令中傳輸該標籤;回應於該壓縮命令,該標籤與該臨時緩衝器中之該經壓縮輸出相關聯;且在該經壓縮輸出待寫入至該快取記憶體裝置之該記憶體時,該快取記憶體控制器模組將含有該標籤及該等至少一個LBA範圍之一寫入命令發出至該快取記憶體裝置,該寫入命令經組配以使該快取記憶體裝置將與該標籤相關聯之該經壓縮輸出寫入至該記憶體之在該寫入命令中指定的該等至少一個LBA範圍。
實例5:此實例包括實例1至4中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以接收來自該快取記憶體裝置之一傳回訊息,該傳回訊息包括該標籤及該經壓縮輸出之該大小的一量測值;以及回應於該傳回訊息之接收而判定該經壓縮輸出之該大小及可歸因於該輸入資料之該壓縮比中的至少一者。
實例6:此實例包括實例1至5中之任一者的任何或所有特徵,其中在該經壓縮輸出待寫入至該快取記憶體裝置之該記憶體時,該快取記憶體控制器模組經進一步組配以進行以下操作:自該轉移緩衝器讀取該經壓縮輸出;以及將含有該經壓縮輸出及該等至少一個LBA範圍之一寫入命令傳輸至該快取記憶體裝置,該寫入命令經組配以使該快取記憶體裝置將該寫入命令中之該經壓縮輸出寫入至該記憶體之在該寫入命令中指定的該等至少一個LBA範圍。
實例7:此實例包括實例1至6中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以進行以下操作:接收來自該快取記憶體裝置之一傳回訊息,該傳回訊息包括儲存有該經壓縮輸出之該轉移緩衝器之位置;至少部分藉由發出以儲存有該經壓縮輸出之該轉移緩衝器之該位置為目標的一讀取命令來讀取該經壓縮輸出;以及自讀取自該轉移緩衝器之該經壓縮輸出判定該經壓縮輸出之該大小及可歸因於該輸入資料之該壓縮比中的至少一者。
實例8:此實例包括實例1至7中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經組配以在將該經壓縮輸出寫入至該記憶體之前分配該等至少一個LBA範圍。
實例9:此實例包括實例1至8中之任一者的任何或所有特徵,其中該等至少一個LBA範圍之一大小實質上對應於該經壓縮輸出之該大小。
實例10:此實例包括實例1至9中之任一者的任何或所有特徵,其中該轉移緩衝器之一大小大於或等於快取線之一大小。
實例11:此實例包括實例1至10中之任一者的任何或所有特徵,其中該快取線為一個或多個快取線,且該等多個快取線中之每一快取線為相同大小。
實例12:此實例包括實例1至11中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以實施一或多個快取策略,以判定是否將該輸入資料儲存於該快取記憶體裝置之該記憶體中。
實例13:此實例包括實例1至12中之任一者的任何或所有特徵,其中該快取記憶體控制器經進一步組配以實施一或多個快取策略,以判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例14:此實例包括實例1至13中之任一者的任何或所有特徵,其中該快取記憶體控制器經進一步組配以在該經壓縮資料被寫入至該快取記憶體裝置之該記憶體之 前判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例15:此實例包括實例1至14中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以至少部分基於該經壓縮輸出之該大小而判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例16:此實例包括實例1至15中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以至少部分基於該經壓縮輸出之該大小與一臨限大小之一比較而判定是否將該經壓縮輸出儲存至該快取記憶體裝置之該記憶體。
實例17:此實例包括實例1至16中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以在該傳回訊息之接收之前將一詢問命令發出至該快取記憶體裝置,該詢問命令經組配以使該快取記憶體裝置將該傳回訊息傳達至該快取記憶體控制器模組。
實例18:此實例包括實例1至17中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以在該經壓縮輸出並不待寫入至該快取記憶體裝置之該記憶體時發出一捨棄命令,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例19:此實例包括實例1至18中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例20:根據此實例,提供一種系統,其包括一資料壓縮模組,其中該資料壓縮模組經組配以進行以下操作:回應於來自一快取記憶體控制器模組之一壓縮命令的接收,將一壓縮指令發出至一壓縮解壓縮引擎,該壓縮命令包括一快取線之輸入資料,該壓縮指令經組配以使該壓縮解壓縮引擎壓縮該輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一快取記憶體裝置之一轉移緩衝器中;將一傳回訊息傳達至該快取記憶體控制器模組,該傳回訊息經組配以使該快取記憶體控制器模組進行以下操作:判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;以及在該經壓縮輸出待寫入至該快取記憶體裝置之一記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其一組合而分配該快取記憶體裝置之一記憶體中的至少一個邏輯區塊位址範圍以供儲存該經壓縮輸出。
實例21:此實例包括實例20之任何或所有特徵,其中該資料壓縮模組經經進一步組配以進行以下操作:回應於包括藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一寫入命令之接收,發出經組配以使該快取記憶體裝置將該經壓縮資料寫入至該記憶體之在該寫入命令中指定之該等邏輯區塊位址的一寫入命令。
實例22:此實例包括實例20及21中之任一者的任何或所有特徵,其中在該寫入命令之接收之前,該經壓縮資料未寫入至該快取記憶體裝置之該記憶體。
實例23:此實例包括實例20至22中之任一者的任何或所有特徵,其中:該壓縮命令包括與該輸入資料相關聯之一標籤;進一步回應於該壓縮命令,該資料壓縮模組使該標籤與該經壓縮輸出相關聯;以及該傳回訊息包括該標籤及該經壓縮輸出之該大小。
實例24:此實例包括實例20至23中之任一者的任何或所有特徵,其中該資料壓縮模組經進一步組配以使該傳回訊息之傳輸以來自該快取記憶體控制器模組之一詢問命令之接收為條件。
實例25:此實例包括實例20至24中之任一者的任何或所有特徵,其中該快取記憶體裝置包括該壓縮解壓縮引擎。
實例26:此實例包括實例20至25中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該記憶體之前分配該等至少一個邏輯區塊位址。
實例27:此實例包括實例20至26中之任一者的任何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小與該經壓縮輸出之該大小相關。
實例28:此實例包括實例20至27中之任一者的任何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小實質上與該經壓縮輸出之該大小相同。
實例29:此實例包括實例20至28中之任一者的任何或所有特徵,其中該轉移緩衝器之一大小大於或等於該快取線之一大小。
實例30:此實例包括實例20至29中之任一者的任何或所有特徵,其中該快取線為多個快取線中之一者,且該等多個快取線中之每一快取線為相同大小。
實例31:此實例包括實例20至30中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該快取記憶體裝置之該記憶體之前判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例32:此實例包括實例20至31中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經組配以至少部分基於該經壓縮輸出之該大小而判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例33:此實例包括實例20至32中之任一者的任何或所有特徵,其中該快取記憶體控制器模組經進一步組配以至少部分基於該經壓縮輸出之該大小與一臨限大小之一比較而判定是否將該經壓縮輸出儲存至該快取記憶體裝置之該記憶體。
實例34:此實例包括實例20至33中之任一者的任何或所有特徵,其中該資料壓縮模組經進一步組配以進行以下操作:回應於來自該快取記憶體控制器模組之一捨棄命令的接收而將一捨棄指令發出至該快取記憶體裝置,該 捨棄指令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例35:此實例包括實例20至34中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例36:根據此實例,提供一種快取資料之方法,其包括藉由一快取記憶體控制器模組進行以下操作:將一快取線之輸入資料傳輸至一壓縮引擎以供壓縮;壓縮該輸入資料以產生一經壓縮輸出;將該經壓縮輸出儲存於一轉移緩衝器中;至少部分基於該經壓縮輸出之一大小、可歸因於該輸入資料之一壓縮比或其一組合而判定是否將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體;以及在該經壓縮輸出待寫入至該記憶體時,至少部分基於該經壓縮輸出之該大小、可歸因於該輸入資料之該壓縮比或其一組合而分配該記憶體之至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸出。
實例37:此實例包括實例36之任何或所有特徵,且進一步包括:在該經壓縮輸出待寫入至該記憶體時,自該快取記憶體控制器模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器寫入至該記憶體。
實例38:此實例包括實例36及27中之任一者的任何或所有特徵,且進一步包括藉由該快取記憶體控制器模組進行以下操作:接收來自一資料壓縮模組之一傳回訊 息;以及自該傳回訊息判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
實例39:此實例包括實例36至38中之任一者的任何或所有特徵,且進一步包括自該快取記憶體控制器模組將一詢問命令發出至該資料壓縮模組,該詢問命令經組配以使該資料壓縮模組將該傳回訊息傳輸至該快取記憶體控制器模組。
實例40:此實例包括實例36至39中之任一者的任何或所有特徵,且進一步包括:使該輸入資料與一標籤相關聯;使該經壓縮輸出與該標籤相關聯;以及在該經壓縮輸出待寫入至該記憶體時,該寫入命令包括該等至少一個LBA範圍及該標籤,該寫入命令經組配以使該快取記憶體裝置將與該標籤相關聯之該經壓縮資料自該轉移緩衝器寫入至該記憶體。
實例41:此實例包括實例36至40中之任一者的任何或所有特徵,且進一步包括藉由該快取記憶體控制器模組進行以下操作:接收來自一資料壓縮模組之一傳回訊息,該傳回訊息包括該標籤;以及至少部分基於含於該傳回訊息中之該標籤而判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
實例42:此實例包括實例36至41中之任一者的任何或所有特徵,其中分配該等至少一個LBA範圍在將該經壓縮資料寫入至該記憶體之前發生。
實例43:此實例包括實例36至42中之任一者的任 何或所有特徵,其中該等至少一個LBA範圍之一大小與該經壓縮輸出之該大小相關。
實例44:此實例包括實例36至43中之任一者的任何或所有特徵,其中該等至少一個LBA範圍之一大小實質上與該經壓縮輸出之該大小相同。
實例45:此實例包括實例36至44中之任一者的任何或所有特徵,其中該轉移緩衝器之一大小大於或等於該快取線之一大小。
實例46:此實例包括實例36至45中之任一者的任何或所有特徵,其中該快取線為多個快取線中之一者,且該等多個快取線中之每一快取線為相同大小。
實例47:此實例包括實例36至46中之任一者的任何或所有特徵,且進一步包括至少部分基於一或多個快取策略而判定是否將該輸入資料儲存於該快取記憶體裝置之該記憶體中。
實例48:此實例包括實例36至47中之任一者的任何或所有特徵,且進一步包括至少部分基於一或多個快取策略而判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例49:此實例包括實例36至48中之任一者的任何或所有特徵,其中判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中係至少部分基於該經壓縮輸出之該大小。
實例50:此實例包括實例36至49中之任一者的任 何或所有特徵,其中判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中包括比較該經壓縮輸出之該大小與一臨限大小。
實例51:此實例包括實例36至50中之任一者的任何或所有特徵,且進一步包括:在該經壓縮輸出並不待寫入至該快取記憶體裝置之該記憶體時,將一捨棄命令發出至該快取記憶體裝置,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例52:此實例包括實例36至51中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例53:根據此實例,提供一種快取資料之方法,其包括藉由一資料壓縮模組進行以下操作:將一壓縮指令發出至一壓縮解壓縮引擎,該壓縮指令經組配以使該壓縮解壓縮引擎壓縮自一快取記憶體控制器模組接收之一快取線的輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一快取記憶體裝置之一轉移緩衝器中;將一傳回訊息傳輸至該快取記憶體控制器模組,該傳回訊息經組配以使該快取記憶體控制器模組進行以下操作:判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;以及在該經壓縮輸出待寫入至該快取記憶體裝置之一記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其一組合而分配該快取記憶體裝置之一記憶體中的至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸 出。
實例54:此實例包括實例53之任何或所有特徵,且進一步包括:回應於來自該快取記憶體控制器模組之一寫入命令的接收,藉由該資料壓縮模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器寫入至該記憶體。
實例55:此實例包括實例53及54中之任一者的任何或所有特徵,其中在該寫入命令之接收之前,該經壓縮資料未寫入至該快取記憶體裝置之該記憶體。
實例56:此實例包括實例53至55中之任一者的任何或所有特徵,其中:該輸入資料與一標籤相關聯;進一步回應於該壓縮命令,該資料壓縮模組使該標籤與該經壓縮輸出相關聯;且該傳回訊息包括該標籤。
實例57:此實例包括實例53至56中之任一者的任何或所有特徵,其中該傳回訊息進一步包括該經壓縮輸出之該大小。
實例58:此實例包括實例53至57中之任一者的任何或所有特徵,其中該傳回訊息之傳輸係以來自該快取記憶體控制器模組之一詢問命令之接收為條件。
實例59:此實例包括實例53至58中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該記憶體之前分配該等至少一個邏輯區塊位址。
實例60:此實例包括實例53至59中之任一者的任 何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小與該經壓縮輸出之該大小相關。
實例61:此實例包括實例53至60中之任一者的任何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小實質上與該經壓縮輸出之該大小相同。
實例62:此實例包括實例53至62中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該快取記憶體裝置之該記憶體之前判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例63:此實例包括實例53至62中之任一者的任何或所有特徵,且進一步包括藉由該資料壓縮模組進行以下操作:回應於來自該快取記憶體控制器模組之一捨棄命令的接收而將一捨棄命令發出至該快取記憶體裝置,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例64:此實例包括實例53至63中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例65:根據此實例,提供至少一種電腦可讀取媒體,其包括在由一快取記憶體系統之一處理器執行時使得執行以下操作的指令,該等操作包括藉由一快取記憶體 控制器模組進行以下操作:將一快取線之輸入資料傳輸至一壓縮引擎以供壓縮;壓縮該輸入資料以產生一經壓縮輸出;將該經壓縮輸出儲存於一轉移緩衝器中;至少部分基於該經壓縮輸出之一大小、可歸因於該輸入資料之一壓縮比或其一組合而判定是否將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體;以及在該經壓縮輸出待寫入至該記憶體時,至少部分基於該經壓縮輸出之該大小、可歸因於該輸入資料之該壓縮比或其一組合而分配該記憶體之至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸出。
實例66:此實例包括實例65之任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:在該經壓縮輸出待寫入至該記憶體時,自該快取記憶體控制器模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器寫入至該記憶體。
實例67:此實例包括實例65及66中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括藉由該快取記憶體控制器模組:接收來自一資料壓縮模組之一傳回訊息;以及自該傳回訊息判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
實例68:此實例包括實例65至67中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:自該快取記憶體控制器模組將一詢問命令發出至該資料壓縮模組,該詢問命令經組配以使該資料 壓縮模組將該傳回訊息傳輸至該快取記憶體控制器模組。
實例69:此實例包括實例65至68中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:使該輸入資料與一標籤相關聯;使該經壓縮輸出與該標籤相關聯;以及在該經壓縮輸出待寫入至該記憶體時,該寫入命令包括該等至少一個LBA範圍及該標籤,該寫入命令經組配以使該快取記憶體裝置將與該標籤相關聯之該經壓縮資料自該轉移緩衝器寫入至該記憶體。
實例70:此實例包括實例65至69中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:接收來自一資料壓縮模組之一傳回訊息,該傳回訊息包括該標籤;以及至少部分基於含於該傳回訊息中之該標籤而判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
實例71:此實例包括實例65至70中之任一者的任何或所有特徵,其中分配該等至少一個LBA範圍在將該經壓縮資料寫入至該記憶體之前發生。
實例72:此實例包括實例65至71中之任一者的任何或所有特徵,其中該等至少一個LBA範圍之一大小與該經壓縮輸出之該大小相關。
實例73:此實例包括實例65至72中之任一者的任何或所有特徵,其中該等至少一個LBA範圍之一大小實質上與該經壓縮輸出之該大小相同。
實例74:此實例包括實例65至73中之任一者的任何或所有特徵,其中該轉移緩衝器之一大小大於或等於該快取線之一大小。
實例75:此實例包括實例65至74中之任一者的任何或所有特徵,其中該快取線為多個快取線中之一者,且該等多個快取線中之每一快取線為相同大小。
實例76:此實例包括實例65至75中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:藉由該快取記憶體控制器模組至少部分基於一或多個快取策略而判定是否將該輸入資料儲存於該快取記憶體裝置之該記憶體中。
實例77:此實例包括實例65至76中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:藉由該快取記憶體控制器模組至少部分基於一或多個快取策略而判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例78:此實例包括實例65至77中之任一者的任何或所有特徵,其中判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中係至少部分基於該經壓縮輸出之該大小。
實例79:此實例包括實例65至78中之任一者的任何或所有特徵,其中判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中包括比較該經壓縮輸出之該大小與一臨限大小。
實例80:此實例包括實例65至79中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:在該經壓縮輸出並不待寫入至該快取記憶體裝置之該記憶體時,自該快取記憶體控制器模組將一捨棄命令發出至該快取記憶體裝置,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例81:此實例包括實例65至80中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例82:根據此實例,提供至少一種電腦可讀取媒體,其包括在由一快取記憶體系統之一處理器執行時使得執行以下操作的指令,該等操作包括藉由一資料壓縮模組進行以下操作:將一壓縮指令發出至一壓縮解壓縮引擎,該壓縮指令經組配以使該壓縮解壓縮引擎壓縮自一快取記憶體控制器模組接收之一快取線的輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一快取記憶體裝置之一轉移緩衝器中;將一傳回訊息傳輸至該快取記憶體控制器模組,該傳回訊息經組配以使該快取記憶體控制器模組進行以下操作:判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;以及在該經壓縮輸出待寫入至該快取記憶體裝置之一記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其一組合而分配該快取記憶體裝置之一記憶體中的至少一個邏輯區塊位址 (LBA)範圍以供儲存該經壓縮輸出。
實例83:此實例包括實例82之任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括:回應於來自該快取記憶體控制器模組之一寫入命令的接收,藉由該資料壓縮模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器寫入至該記憶體。
實例84:此實例包括實例82及83中之任一者的任何或所有特徵,其中在該寫入命令之接收之前,該經壓縮資料未寫入至該快取記憶體裝置之該記憶體。
實例85:此實例包括實例82至84中之任一者的任何或所有特徵,其中:該等指令在經執行時進一步使該資料壓縮模組將該經壓縮輸出與一標籤相關聯,該標籤與該輸入資料相關聯;且該傳回訊息包括該標籤。
實例86:此實例包括實例82至85中之任一者的任何或所有特徵,其中該傳回訊息進一步包括該經壓縮輸出之該大小。
實例87:此實例包括實例82至86中之任一者的任何或所有特徵,其中該傳回訊息之傳輸係以來自該快取記憶體控制器模組之一詢問命令之接收為條件。
實例88:此實例包括實例82至87中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該記憶體之前分配該等至少一個邏輯區塊位址。
實例89:此實例包括實例82至88中之任一者的任何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小與該經壓縮輸出之該大小相關。
實例90:此實例包括實例82至89中之任一者的任何或所有特徵,其中藉由該快取記憶體控制器模組分配之該等至少一個邏輯區塊位址的一大小實質上與該經壓縮輸出之該大小相同。
實例91:此實例包括實例82至90中之任一者的任何或所有特徵,其中該傳回訊息經組配以使該快取記憶體控制器模組在該經壓縮資料寫入至該快取記憶體裝置之該記憶體之前判定是否將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
實例92:此實例包括實例82至91中之任一者的任何或所有特徵,其中該等指令在經執行時進一步使得執行以下操作,包括藉由該資料壓縮模組:回應於來自該快取記憶體控制器模組之一捨棄命令的接收而將一捨棄命令發出至該快取記憶體裝置,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
實例93:此實例包括實例82至92中之任一者的任何或所有特徵,其中該經壓縮輸出未寫入至該快取記憶體裝置之該記憶體,之後其自該轉移緩衝器被清除。
實例94:根據此實例,提供至少一種電腦可讀取媒體,其包括至少部分實施於硬體中以執行實例36至52中 之任一者之方法的邏輯。
實例95:根據此實例,提供至少一種電腦可讀取媒體,其包括至少部分實施於硬體中以執行實例53至64中之任一者之方法的邏輯。
實例96:此實例包括實例1至19中之任一者的任何或所有特徵,其中該快取記憶體控制器模組、該壓縮解壓縮引擎及該轉移緩衝器為該快取記憶體裝置之部分且該快取記憶體裝置為一固態驅動機。
實例97:此實例包括實例1至19及96中之任一者的任何或所有特徵,其中:該系統進一步包括一處理器、一匯流排及一儲存裝置;該處理器經組配以經由該匯流排將該輸入資料傳輸至該固態驅動機;且該固態驅動機經組配為用於該儲存裝置之快取記憶體。
實例98:此實例包括實例20至35中之任一者的任何或所有特徵,其中該快取記憶體控制器模組、該資料壓縮模組、該壓縮解壓縮引擎及該轉移緩衝器為該快取記憶體裝置之部分,且該快取記憶體裝置為一固態驅動機。
實例99:此實例包括實例20至35及98中之任一者的任何或所有特徵,其中:該系統進一步包括一處理器、一匯流排及一儲存裝置;該處理器經組配以經由該匯流排將該輸入資料傳輸至該固態驅動機;且該固態驅動機經組配為用於該儲存裝置之快取記憶體。
已用於本文中之術語及表達用作描述而非限制之術語,且在使用此等術語及表達時,並不意欲排除所展 示及描述之特徵(或其部分)的任何等效物,且認識到,各種修改在申請專利範圍之範疇內為可能的。因此,申請專利範圍意欲涵蓋所有此等等效物。
100‧‧‧快取記憶體系統
101‧‧‧快取記憶體控制器模組(CCM)
102‧‧‧快取記憶體裝置
103‧‧‧資料壓縮模組(DCM)
104‧‧‧壓縮解壓縮引擎(CODEC)
105‧‧‧轉移緩衝器
106‧‧‧記憶體

Claims (25)

  1. 一種系統,其包含:一快取記憶體控制器模組,其中該快取記憶體控制器模組經組配以進行以下操作:傳輸包含輸入資料之一壓縮命令至一壓縮引擎,該壓縮命令經組配以使該壓縮引擎壓縮該輸入資料以產生一經壓縮輸出,且將該經壓縮輸出儲存於一轉移緩衝器中;在將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體之前,判定該經壓縮輸出之一大小及可歸因於該輸入資料之一壓縮比中的至少一者;在該經壓縮輸出要被寫入至該快取記憶體裝置之該記憶體時,至少部分基於該經壓縮輸出之該大小、該壓縮比或其等之組合來分配在該記憶體中之至少一個邏輯區塊位址(LBA)範圍以供該經壓縮輸出之該儲存。
  2. 如請求項1之系統,其中該壓縮引擎及該轉移緩衝器為該快取記憶體裝置之部分。
  3. 如請求項2之系統,其中:該快取記憶體控制器模組經進一步組配以使該輸入資料與一標籤相關聯,且組配以傳輸在該壓縮命令中之該標籤;回應於該壓縮命令,該標籤係與該臨時緩衝器中之 該經壓縮輸出相關聯;且在該經壓縮輸出要被寫入至該快取記憶體裝置之該記憶體時,該快取記憶體控制器模組將含有該標籤及該至少一個LBA範圍之一寫入命令發出至該快取記憶體裝置,該寫入命令經組配以使該快取記憶體裝置將與該標籤相關聯之該經壓縮輸出寫入至在該寫入命令中指定之該記憶體的該至少一個LBA範圍。
  4. 如請求項3之系統,其中該快取記憶體控制器模組經進一步組配以進行以下操作:接收來自該快取記憶體裝置之一傳回訊息,該傳回訊息包含該標籤及該經壓縮輸出之該大小的一量測值;以及回應於該傳回訊息之接收來判定該經壓縮輸出之該大小及可歸因於該輸入資料之該壓縮比中的至少一者。
  5. 如請求項2之系統,其中在該經壓縮輸出係要被寫入至該快取記憶體裝置之該記憶體時,該快取記憶體控制器模組經進一步組配以進行以下操作:從該轉移緩衝器讀取該經壓縮輸出;以及將含有該經壓縮輸出及該至少一個LBA範圍之一寫入命令傳輸至該快取記憶體裝置,該寫入命令經組配以使該快取記憶體裝置將在該寫入命令中之該經壓縮輸出寫入至在該寫入命令中指定之該記憶體的該至少一個LBA範圍。
  6. 如請求項5之系統,其中該快取記憶體控制器模組經進一步組配以進行以下操作:接收來自該快取記憶體裝置之一傳回訊息,該傳回訊息包含儲存有該經壓縮輸出之該轉移緩衝器之位置;至少部分藉由發出以儲存有該經壓縮輸出之該轉移緩衝器之該位置為目標的一讀取命令來讀取該經壓縮輸出;以及從讀取自該轉移緩衝器之該經壓縮輸出來判定該經壓縮輸出之該大小及可歸因於該輸入資料之該壓縮比中的至少一者。
  7. 如請求項1之系統,其中該快取記憶體控制器模組經組配以在將該經壓縮輸出寫入至該記憶體之前,分配該至少一個LBA範圍。
  8. 如請求項1之系統,其中該快取記憶體控制器模組經進一步組配以在該經壓縮輸出並非要被寫入至該快取記憶體裝置之該記憶體時發出一捨棄命令,該捨棄命令經組配以使該快取記憶體裝置將該經壓縮輸出自該轉移緩衝器清除。
  9. 如請求項1之系統,其中該快取記憶體控制器模組、該壓縮解壓縮引擎及該轉移緩衝器為該快取記憶體裝置之部分,且該快取記憶體裝置為一固態驅動機。
  10. 如請求項1之系統,其進一步包含一處理器、一匯流排及一儲存裝置,其中:該處理器經組配以經由該匯流排將該輸入資料傳 輸至固態驅動機;且該固態驅動機經組配為用於該儲存裝置之快取記憶體。
  11. 一種快取資料之方法,其包含藉由一快取記憶體控制器模組進行:將一快取線之輸入資料傳輸至一壓縮引擎以供壓縮;壓縮該輸入資料以產生一經壓縮輸出;將該經壓縮輸出儲存於一轉移緩衝器中;至少部分基於該經壓縮輸出之一大小、可歸因於該輸入資料之一壓縮比或其等之組合來判定是否將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體;以及在該經壓縮輸出要被寫入至該記憶體時,至少部分基於該經壓縮輸出之該大小、可歸因於該輸入資料之該壓縮比或其等之組合來分配該記憶體之至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸出。
  12. 如請求項11之方法,其進一步包含以下步驟:在該經壓縮輸出要被寫入至該記憶體時,自該快取記憶體控制器模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將來自該轉移緩衝器之該經壓縮輸出寫入至該記憶體。
  13. 如請求項11之方法,其進一步包含藉由該快取記憶體控制器模組進行:接收來自一資料壓縮模組之一傳回訊息;以及 從該傳回訊息來判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
  14. 如請求項12之方法,其進一步包含:使該輸入資料與一標籤相關聯;使該經壓縮輸出與該標籤相關聯;以及在該經壓縮輸出係要被寫入至該記憶體時,該寫入命令包含該至少一個LBA範圍及該標籤,該寫入命令經組配以使該快取記憶體裝置將來自該轉移緩衝器之與該標籤相關聯之該經壓縮資料寫入至該記憶體。
  15. 如請求項14之方法,其進一步包含藉由該快取記憶體控制器模組進行:接收來自一資料壓縮模組之一傳回訊息,該傳回訊息包含該標籤;以及至少部分基於被包含於該傳回訊息中之該標籤來判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
  16. 如請求項11之方法,其中分配該至少一個LBA範圍在將該經壓縮資料寫入至該記憶體之前發生。
  17. 如請求項11之方法,其進一步包含至少部分基於一或多個快取策略來判定是否要將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
  18. 如請求項11之方法,其進一步包含以下步驟:在該經壓縮輸出並非要寫入至該快取記憶體裝置之該記憶體時,將一捨棄命令發出至該快取記憶體裝置,該捨棄命令經組配以使該快取記憶體裝置將該經壓 縮輸出自該轉移緩衝器清除。
  19. 一種非暫態電腦可讀取媒體,其包含指令,當該等指令由一快取記憶體系統之一處理器執行時致使執行以下操作,該等操作包含藉由一快取記憶體控制器模組進行:將一快取線之輸入資料傳輸至一壓縮引擎以供壓縮;壓縮該輸入資料以產生一經壓縮輸出;將該經壓縮輸出儲存於一轉移緩衝器中;至少部分基於該經壓縮輸出之一大小、可歸因於該輸入資料之一壓縮比或其等之組合來判定是否將該經壓縮輸出寫入至一快取記憶體裝置之一記憶體;以及在該經壓縮輸出係要被寫入至該記憶體時,至少部分基於該經壓縮輸出之該大小、可歸因於該輸入資料之該壓縮比或其等之組合來分配該記憶體之至少一個邏輯區塊位址(LBA)範圍以供儲存該經壓縮輸出。
  20. 如請求項19之該非暫態電腦可讀取媒體,其中該等指令在經執行時進一步致使執行包含以下操作:在該經壓縮輸出係要被寫入至該記憶體時,自該快取記憶體控制器模組發出一寫入命令,該寫入命令經組配以使該快取記憶體裝置將來自該轉移緩衝器之該經壓縮輸出寫入至該記憶體。
  21. 請求項19之該非暫態電腦可讀取媒體,其中該等指令在經執行時進一步致使執行以下操作,包含藉由該快取記 憶體控制器模組進行:接收來自一資料壓縮模組之一傳回訊息;以及自該傳回訊息判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
  22. 如請求項20之該非暫態電腦可讀取媒體,其中該等指令在經執行時進一步致使執行以下操作,包含:使該輸入資料與一標籤相關聯;使該經壓縮輸出與該標籤相關聯;以及在該經壓縮輸出係要被寫入至該記憶體時,該寫入命令包含該至少一個LBA範圍及該標籤,該寫入命令經組配以使該快取記憶體裝置將來自該轉移緩衝器之與該標籤相關聯之該經壓縮資料寫入至該記憶體。
  23. 如請求項22之該非暫態電腦可讀取媒體,其中該等指令在經執行時進一步致使執行以下操作,包含:接收來自一資料壓縮模組之一傳回訊息,該傳回訊息包含該標籤;以及至少部分基於被包含於該傳回訊息中之該標籤來判定該經壓縮輸出之該大小及該壓縮比中的至少一者。
  24. 請求項19之該非暫態電腦可讀取媒體,其中分配該至少一個LBA範圍在將該經壓縮資料寫入至該記憶體之前發生。
  25. 請求項19之該非暫態電腦可讀取媒體,其進一步包含至少部分基於一或多個快取策略來判定是否要將該經壓縮輸出儲存於該快取記憶體裝置之該記憶體中。
TW104127708A 2014-09-26 2015-08-25 使用資料壓縮的快取技術 TWI594121B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/497,392 US20160092361A1 (en) 2014-09-26 2014-09-26 Caching technologies employing data compression

Publications (2)

Publication Number Publication Date
TW201629774A TW201629774A (zh) 2016-08-16
TWI594121B true TWI594121B (zh) 2017-08-01

Family

ID=55581788

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104127708A TWI594121B (zh) 2014-09-26 2015-08-25 使用資料壓縮的快取技術

Country Status (6)

Country Link
US (1) US20160092361A1 (zh)
KR (1) KR20170036075A (zh)
CN (1) CN106575260A (zh)
DE (1) DE112015003540T5 (zh)
TW (1) TWI594121B (zh)
WO (1) WO2016048599A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652384B2 (en) 2014-12-16 2017-05-16 Intel Corporation Apparatus, system and method for caching compressed data
US10168939B2 (en) * 2015-11-24 2019-01-01 International Business Machines Corporation Reading records from a tape medium
US10490238B2 (en) * 2017-06-29 2019-11-26 SK Hynix Inc. Serializer and memory device including the same
CN111108485B (zh) * 2017-08-08 2023-11-24 大陆汽车科技有限公司 操作高速缓存的方法
US10558364B2 (en) * 2017-10-16 2020-02-11 Alteryx, Inc. Memory allocation in a data analytics system
US10747442B2 (en) 2017-11-29 2020-08-18 International Business Machines Corporation Host controlled data chip address sequencing for a distributed memory buffer system
US10489069B2 (en) 2017-11-29 2019-11-26 International Business Machines Corporation Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
US10395698B2 (en) 2017-11-29 2019-08-27 International Business Machines Corporation Address/command chip controlled data chip address sequencing for a distributed memory buffer system
US10534555B2 (en) 2017-11-29 2020-01-14 International Business Machines Corporation Host synchronized autonomous data chip address sequencer for a distributed buffer memory system
CN109558088B (zh) * 2018-12-03 2021-12-17 郑州云海信息技术有限公司 一种压缩方法、系统、设备及计算机可读存储介质
US10884940B2 (en) * 2018-12-21 2021-01-05 Advanced Micro Devices, Inc. Method and apparatus for using compression to improve performance of low voltage caches
JP2020154525A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
US11054993B2 (en) 2019-05-28 2021-07-06 Intel Corporation Mass storage system having peer-to-peer data movements between a cache and a backend store
CN113656364B (zh) * 2021-08-05 2024-02-20 福瑞泰克智能系统有限公司 传感器数据处理方法、装置和计算机可读存储介质
CN114579050B (zh) * 2022-02-14 2024-04-02 阿里巴巴(中国)有限公司 处理压缩数据的方法以及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735673B2 (en) * 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US20100077146A1 (en) * 2008-09-19 2010-03-25 Kabushiki Kaisha Toshiba Instruction cache system, instruction-cache-system control method, and information processing apparatus
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
TW201329710A (zh) * 2011-09-30 2013-07-16 Intel Corp 用於實施多位準記憶體階層之設備與方法
TW201415225A (zh) * 2012-08-13 2014-04-16 Lsi Corp 矽獨立元件之部分冗餘陣列

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537575A (en) * 1994-06-30 1996-07-16 Foley; Denis System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US7849241B2 (en) * 2006-03-23 2010-12-07 International Business Machines Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
WO2012056493A1 (en) * 2010-10-26 2012-05-03 Hitachi, Ltd. File management method and computer system
CN102129873B (zh) * 2011-03-29 2012-07-04 西安交通大学 提高计算机末级高速缓存可靠性的数据压缩装置及其方法
US20130265305A1 (en) * 2012-04-04 2013-10-10 Jon N. Hasselgren Compressed Depth Cache
US20140098852A1 (en) * 2012-10-05 2014-04-10 Samsung Display Co., Ltd. Compression bandwidth overflow management using auxiliary control channel
US9053121B2 (en) * 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
CN103326730B (zh) * 2013-06-06 2016-05-18 清华大学 数据并行压缩方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735673B2 (en) * 2002-01-10 2004-05-11 Hewlett-Packard Development Company, L.P. Apparatus and methods for cache line compression
US20100077146A1 (en) * 2008-09-19 2010-03-25 Kabushiki Kaisha Toshiba Instruction cache system, instruction-cache-system control method, and information processing apparatus
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
TW201329710A (zh) * 2011-09-30 2013-07-16 Intel Corp 用於實施多位準記憶體階層之設備與方法
TW201415225A (zh) * 2012-08-13 2014-04-16 Lsi Corp 矽獨立元件之部分冗餘陣列

Also Published As

Publication number Publication date
DE112015003540T5 (de) 2017-05-04
CN106575260A (zh) 2017-04-19
KR20170036075A (ko) 2017-03-31
TW201629774A (zh) 2016-08-16
WO2016048599A1 (en) 2016-03-31
CN106575260A8 (zh) 2017-07-11
US20160092361A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
TWI594121B (zh) 使用資料壓縮的快取技術
US9996466B2 (en) Apparatus, system and method for caching compressed data
US10198215B2 (en) System and method for multi-stream data write
US10642522B2 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10365844B2 (en) Logical block address to physical block address (L2P) table compression
JP6142081B2 (ja) 不揮発性メモリデバイスにおける揮発性メモリアーキテクチャ及び関連コントローラ
US20170255561A1 (en) Technologies for increasing associativity of a direct-mapped cache using compression
US20160124639A1 (en) Dynamic storage channel
US11449270B2 (en) Address translation method and system for KV storage device
KR20170110810A (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN112764669B (zh) 一种硬件加速器
US10031689B2 (en) Stream management for storage devices
US20200364140A1 (en) Memory system and non-transitory computer readable recording medium
KR20090098275A (ko) 플래시 메모리 시스템
US20170185541A1 (en) Peripheral interface circuit
CN113721838B (zh) 用于存储设备的写、读数据方法、存储控制器以及dma引擎
TWI835027B (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
US20240103726A1 (en) NVMe Copy Command Acceleration
CN110096452B (zh) 非易失随机访问存储器及其提供方法
US20230100160A1 (en) Computing devices for encryption and decryption of data
KR20240033958A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
TW202321921A (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
TW202340939A (zh) 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置
JP2009123185A (ja) フラッシュメモリ装置及びそのアクセス方法