TWI559142B - 在分散式快取組織上處置壓縮資料之技術 - Google Patents

在分散式快取組織上處置壓縮資料之技術 Download PDF

Info

Publication number
TWI559142B
TWI559142B TW104101788A TW104101788A TWI559142B TW I559142 B TWI559142 B TW I559142B TW 104101788 A TW104101788 A TW 104101788A TW 104101788 A TW104101788 A TW 104101788A TW I559142 B TWI559142 B TW I559142B
Authority
TW
Taiwan
Prior art keywords
content
memory
cache
compression
data
Prior art date
Application number
TW104101788A
Other languages
English (en)
Other versions
TW201543217A (zh
Inventor
歐圖格 寇克
宏 江
詹姆斯M 賀蘭
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 TW201543217A publication Critical patent/TW201543217A/zh
Application granted granted Critical
Publication of TWI559142B publication Critical patent/TWI559142B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/1016Performance improvement
    • 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/1028Power efficiency
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

在分散式快取組織上處置壓縮資料之技術 發明領域
在此所描述之技術一般係關於一電腦系統中之資料儲存以及取回。
發明背景
於資料處理中,一個挑戰是使記憶體帶寬以及功率之使用最佳化而使處理時間最小化。使記憶體之使用最佳化的一方法是在儲存資料於記憶體中之前先予以壓縮。習知的電腦系統包含昂貴的壓縮/解壓縮元件於它們的處理區塊中,而其他習知的系統則藉由根本不採用壓縮之優點而使成本最小化。
發明概要
依據本發明之一實施例,係特地提出一種電腦系統,其包括:至少一處理元件;一記憶體,其通訊地耦合至該至少一處理元件;至少一壓縮及解壓縮器,其通訊地耦合至該至少一處理元件,並且經由一記憶體介面而通訊地耦合至該記憶體;以及一包括複數個分散式快取記憶庫 之快取組織,該等複數個分散式快取記憶庫經由複數個節點通訊地彼此耦合、耦合至該至少一處理元件、及耦合至該至少一壓縮及解壓縮器,其中該至少一壓縮及解壓縮器與該快取組織被組態以管理及追蹤對於藉由該等至少一處理元件對該記憶體之資料要求的可變長度之未壓縮資料。
102‧‧‧記憶體
104‧‧‧記憶體介面
106‧‧‧壓縮及解壓縮器單元
108‧‧‧快取組織
108-1~108-X‧‧‧快取記憶庫
110(110-1~110-Y)‧‧‧處理元件
112(112-1~112-Z)‧‧‧通訊節點
214‧‧‧壓縮資料項目
216‧‧‧資料
218(218-1~218-N)‧‧‧資料
300‧‧‧載入操作流程圖
302~310‧‧‧載入操作步驟
400‧‧‧儲存操作流程圖
402~410‧‧‧儲存操作步驟
500‧‧‧儲存操作流程圖
502~508‧‧‧儲存操作步驟
600‧‧‧儲存操作流程圖
602~608‧‧‧儲存操作步驟
720‧‧‧電腦系統
722‧‧‧處理器
724‧‧‧記憶體
726‧‧‧儲存裝置
728‧‧‧圖形處理器
730‧‧‧鏈路
732‧‧‧通訊介面
734‧‧‧使用者介面構件
736‧‧‧邏輯
800‧‧‧系統
802‧‧‧平臺
805‧‧‧晶片組
810‧‧‧處理器
812‧‧‧記憶體
814‧‧‧儲存器
815‧‧‧圖形子系統
816‧‧‧應用
818‧‧‧無線電
820‧‧‧顯示器
822‧‧‧顯示使用者介面
830‧‧‧內容服務裝置
840‧‧‧內容傳送裝置
850‧‧‧導航控制器
860‧‧‧網路
900‧‧‧小形式因素裝置
902‧‧‧外罩
904‧‧‧顯示器
906‧‧‧輸入/輸出(I/O)裝置
910‧‧‧顯示資訊
912‧‧‧導航特點
圖1是根據一實施例之一記憶體/快取結構的方塊圖。
圖2是根據一實施例,展示一旦解壓縮時在記憶體中之一壓縮資料項目的組件之方塊圖。
圖3是根據一實施例,揭示一載入操作範例之流程圖。
圖4及5是根據實施例,揭示一儲存操作範例之流程圖。
圖6是根據一實施例,揭示一儲存操作範例之流程圖。
圖7是根據一實施例之一電腦裝置範例的方塊圖。
圖8例示一實施例可以被實行於其中之一資訊系統範例圖形。
圖9例示一實施例可以被實行於其中之一移動式資訊裝置範例圖形。
於該等圖形中,一參考數目之最左方數字可用以辨識該參考數目首先出現的圖形。
較佳實施例之詳細說明
當涉及以壓縮及解壓縮兩形式保持資料時,採用在記憶體中壓縮資料之優點的電腦系統被呈現而具有唯一的挑戰性。習知的電腦系統藉由根本不採用壓縮之優點或包含昂貴的壓縮/解壓縮元件於它們的處理區塊而避免這些挑戰性。於任一之習知情況下,其形成關於功率及面積消耗之收益遞減情況。
藉由使用壓縮資料之一特定挑戰是如何在一保持未壓縮資料結構的分散式快取層次結構上處置資料之可變長度壓縮及解壓縮。當於一分散式快取結構之上處置可變長度資料壓縮/解壓縮時,各種資料片段,當未壓縮時,可以被散佈圍繞於具有複數個實體快取記憶庫之一大的快取組織。各資料片段可相對於其他片段成為分離並且將需要被追蹤。當必須自快取組織將資料寫入至記憶體時,各片段可以被蒐集、被鞏固、以及被壓縮。在此所描述之解決辦法提供有效地將未壓縮的資料保持在一分散式快取組織之上。例如,藉由這些解決辦法,分配可以被達成,如用於載入操作之一回填後解壓縮。對於儲存操作,當一單一資料片段自該快取組織之一快取記憶庫被逐出時,則壓縮可以發生。這些操作將在下面更詳細被說明。
圖1是根據一實施例之記憶體/快取結構的方塊圖。圖1之記憶體/快取結構可以包含一具有一記憶體介面104之記憶體102、一壓縮及解壓縮器單元106、以及包含 複數個快取記憶庫108-1至108-X之一快取組織108。該等快取記憶庫108-1至108-X可以經由通訊節點112-1至112-Z(整體地,以112示之),通訊地彼此耦合、耦合至該壓縮及解壓縮器單元106、以及耦合至一個或多個處理元件或引擎110-1至110-Y(整體地,以110示之)(例如,但不是限制性,圖形處理元件)。通訊節點112連接獨立之實際實體以形成一單一邏輯圖形並且提供用於那些實體之一通訊通道。在展示於圖1之實施例中,有四個快取記憶庫直接地連接到各節點112。但是,這組態僅是一範例並且其不是限制。快取記憶庫以及節點之其他組態也可以考慮。
記憶體102可以被實行,例如,作為一依電性記憶體裝置,例如,但不是作為限定,一隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)、等等,其包含目前發展中及未來的型式之記憶體。記憶體102可以保持資料被壓縮或不被壓縮。但是,此處所討論之實施例主要地涉及壓縮記憶體資料。
壓縮及解壓縮器單元106可以包含至少一壓縮及解壓縮器,其可以在提供壓縮資料至記憶體102之前,壓縮來自快取組織108之資料,並且可以在提供解壓縮資料至快取組織108之前,解壓縮提供自記憶體102之資料。於一實施例中,壓縮及解壓縮器單元106之每記憶體通道可以包含一個壓縮及解壓縮器,其是不受限定於這組態,因複數個壓縮及解壓縮器組對可以被使用。自快取組織108將壓縮及解壓縮器單元106置於及來自記憶體102之安置方 式(例如,相對於在各個處理區塊具有一壓縮及解壓縮器)將允許記憶體介面104上之功率使用減少最大化,而當快取組織108調整尺度以處置各種處理要求時,可將面積成本保持在最小。壓縮及解壓縮器106之安置僅是將這些潛在成本置於多數功率增益被觀察之記憶體介面104。但是,這型式之實行例呈現如何在具有複數個實體快取記憶庫之一巨大快取組織之上處置分散式資料以及壓縮/解壓縮之議題。壓縮長度可以是任何數目之位元組,並且分別的快取項目可以藉由任何數目之位元組表示。因此,當在未壓縮格式時,一單一壓縮記憶體項目可以分佈至複數個快取記憶庫位置。當快取錯失發生時,解壓縮之資料片段將需要被分配至一個或多個(可能有許多個)快取記憶庫(例如,一載入操作)。同樣地,當資料是將被寫入至記憶體時,可壓縮之資料片段可以被分佈在快取組織之上並且將需要朝向記憶體被聚集(例如,一儲存操作)。
於一實施例中,如果在一處理元件110(例如,一GPU)之快取組織上的一特定存取錯失來自該快取之內容,則一解決辦法包含來自記憶體之內容壓縮資料將被回填至複數個實體快取區塊,其不僅是對於所要求的資料片段,而同時也是對於填補片段。在這情況中,該處理元件110可以產生對該記憶體102之一載入要求。該壓縮及解壓縮器單元106可以檢測該可壓縮訊流載入要求,並且在自記憶體102返回之途中,該壓縮及解壓縮器單元106將解壓縮該等內容。該壓縮及解壓縮器單元106可以辨識原始要 求中之該等要求的內容(其可以是該等解壓縮內容之一子集),並且提供該等要求內容至快取組織108之一快取記憶庫,該等要求內容可自該快取記憶庫被提供至該要求處理元件110。該壓縮及解壓縮器單元106也可以辨識填補之資料片段,其是來自不是該等要求內容之一部份的該解壓縮內容之資料片段。例如,如於圖2中之展示,一壓縮資料項目214,其可以在一載入要求之時被解壓縮,當解壓縮時,可以包含資料216之一要求片段以及資料218-1至218-N(整體地,稱為218)之填補片段。該壓縮及解壓縮器單元106可以提供這些填補片段218至快取組織108之一個或多個快取記憶庫以產生回填進入快取。藉由一回填,資料被安置進入快取組織108之一個或多個快取記憶庫(如果有帶寬的話),但是也可能被抛棄。這些填補片段218不是原始載入要求之一部份,但可能是用於可能的未來需求所需要的。於一實施例中,給予這些填補片段218不是主動地所需要的,當比較至實際的資料要求(例如,剛好及時的資料要求)時,它們可能是在快取組織108中具有一較低優先序。例如,如果快取組織108中之帶寬是限定的,則資料218之一填補片段可以是由一未來的資料要求片段所替換。
由於資料項目之序列需求的緊密時間性質(例如,具有圖形及/或媒體應用),其是可能,當一原始的資料要求是在處理中時,對於其之資料填補片段之需求將發生在回填操作完成之前。於實施例中,快取組織108之快 取記憶庫以及壓縮及解壓縮器單元106可以各自(獨立地或一起地)解決這情況。例如,於一實施例中,如果資料填補片段218之一回填已經被提供至快取組織108之一快取記憶庫並且是在供用於該回填之佇列中,則該特定的快取記憶庫可以檢測一匹配的需求載入要求並且充填它而不需透過記憶體。各回填操作可以有一返回至該壓縮及解壓縮器單元106之完成工作以檢測可能的需求要求。同樣地,於一實施例中,壓縮及解壓縮器單元106可以包含追蹤邏輯以對於當該原始資料要求或該填補回填仍然是在處理中時,可供用於對於一個或多個填補片段218之未來的載入要求。於這情況中,壓縮及解壓縮器單元106可以取消至記憶體之對於資料填補片段的載入以避免在記憶體介面104上之另外的流量。
當資料將被寫入至記憶體102時,一儲存操作發生。至壓縮記憶體表面之儲存可能呈現至位址的另外問題。一處理元件110可以儘可能如其將資料寫出至快取組織108時完整無損地保持壓縮項目序列資料片段。相似於載入操作,當資料得自處理元件110暫存器被寫出時,這些儲存操作可以在時間順序中具有緊密的接近度。快取組織108可以將這些被寫出的資料片段分佈在許多快取記憶庫之上。這些在快取組織中被寫出的資料片段可以被考慮為“修改內容”。於一實施例中,當這些“修改內容”任何片段得從其之分別的快取記憶庫被逐出(亦即,被寫出)時,壓縮及解壓縮器單元106可以檢測“修改內容”之一片段是 被寫入至一壓縮記憶體表面。該壓縮及解壓縮器單元106可以將這可壓縮“修改內容”至於一旁並且對於與該“修改內容”相關聯之填補片段進行快取組織108之一搜尋(例如,藉由產生“調查”)。如果所有的填補片段被發現,則該“修改內容”以及該等相關的填補片段可以被鞏固(例如,依序地)、被壓縮、以及被寫入至記憶體102。於一實施例中,連續保持該等填補片段之該等快取記憶庫的內容被降級到一“未修改”狀態。
於一實施例中,在如上所述儲存操作中,如果不是所有的填補片段被發現於該快取組織108中(例如,如果該等“調查”之任何一者回報為一錯失(MISS)時),則該儲存操作可以如同對於一壓縮緩衝器之一部份更新地被處置。該壓縮及解壓縮器單元106可以自與該“修改內容”相關聯之記憶體102讀取先前所儲存的壓縮內容、解壓縮該相關聯的內容、以及合併與該“修改內容”相關聯的內容以及所發現的填補片段以完成全部的資料組集。該完成的資料組集接著可被壓縮並且被寫入至記憶體102。
於另一實施例中,一儲存操作可以繞過該快取組織108而執行,在自該處理元件110至該壓縮及解壓縮器單元106全部途中,將被壓縮以及被寫入至記憶體102資料保持完整無損。於一些使用模式中,其中對於壓縮資料可能無即時的需求,使用快取作為即時的儲存,將帶來經常開銷(例如,額外調查、儲存空間、等等)。但是,如果有一使用模式(例如,某些應用),其要求該資料儲存將是可 供用於快取組織內之未來的載入操作,則壓縮及解壓縮器單元106也可以將該資料回填至該快取組織。這可以使用基於使用情況所界定之一軟體控制而被實行。於這實施例中,該快取組織108可以被使用作為一寫入緩衝器,並且調查可以被產生以找到所需要的資料。這實施例可能需要一個大的寫入緩衝器。
圖3展示根據一實施例,展示一載入操作300範例的流程圖。載入操作300是上面所討論之一載入操作的範例。載入操作300是自一壓縮及解壓縮器觀點,例如,圖1壓縮器/解壓縮器單元106。在302,自一要求處理元件至一記憶體之一載入要求可以對於一所需的一個或多個資料位元組做檢測。在304,響應於該載入要求,自該記憶體所提供之內容可以被解壓縮。在306,該等所需的一個或多個資料位元組可以自該等解壓縮內容被辨識。在308,該等所需的一個或多個資料位元組可以被提供至與該要求處理元件相關聯之一快取記憶庫。該快取記憶庫可以是由複數個快取記憶庫構成之一快取組織的一部份,例如,展示於圖1中快取組織108。在310,來自該等內容之填補資料位元組可以分佈至該快取組織之一個或多個其他快取記憶庫。分佈至其他快取記憶庫之填補資料位元組可以被使用於未來的資料要求(例如,未來的載入或儲存操作)。
圖4是根據實施例,揭示一儲存操作400之一範例的流程圖。儲存操作400是上面所討論之一儲存操作的 一範例。儲存操作400是自一壓縮及解壓縮器之觀點,例如,圖1之壓縮器/解壓縮器單元106。在402,自一快取組織(例如,快取組織108)之一個或多個快取記憶庫寫出之未壓縮的修改內容可以被檢測。在404,所檢測的修改內容被保持(例如,取代直接地儲至記憶體)。在406,一快取組織的搜尋可以對於該修改內容之填補內容而進行。在408,如果所有填補內容被發現,則該修改及填補內容可以被鞏固、被壓縮、以及被寫入至記憶體。在410,如果不是所有的填補內容被發現,則處理可以在圖5之處理程序500繼續。
圖5是根據一實施例,揭示一繼續的儲存操作500之一範例流程圖。儲存操作500是上面所討論之一儲存操作的範例。儲存操作500是來自一壓縮及解壓縮器之觀點,例如,圖1之壓縮器/解壓縮器單元106,並且如果不是所有的填補內容被發現於儲存操作400之408中,則儲存操作500被實行。在502,與修改內容相關聯之先前儲存的壓縮內容可以自記憶體被讀取。在504,該相關聯的內容可以被解壓縮。在506,該修改之內容、該發現之填補內容、以及該相關聯的內容可以合併且壓縮。在508,該合併及壓縮的內容可以寫入至記憶體。
圖6是根據一實施例,揭示一儲存操作600之一範例流程圖。儲存操作600是上面討論之另一儲存操作的一範例。儲存操作600是自一壓縮及解壓縮器觀點,例如,圖1壓縮器/解壓縮器單元106。在602,其可檢測一個 或多個未壓縮的資料位元組是將寫出。在604,該未壓縮的資料可以被壓縮,繞過複數個快取記憶庫之一快取組織。在606,該壓縮資料可以被寫入至記憶體。在608,該未壓縮的資料可以被提供至該快取組織以供用於未來的資料要求。
此處揭示一個或多個特點可以被實行於硬體、軟體、韌體、以及其之組合,包含離散及積體電路邏輯、特定應用積體電路(ASIC)邏輯、以及微控制器,並且可以被實行作為一特定領域積體電路封裝之部份、或積體電路封裝之組合。軟體以及韌體用詞,如此處之使用,係涉及一電腦程式產品,其包含具有電腦程式邏輯之至少一電腦可讀取媒體,例如,儲存於其中的電腦可執行指令,當該等指令被執行時,將導致一電腦系統進行此處揭示之一個或多個特點及/或該等特點之組合。該電腦可讀取媒體可以是暫態或非暫態。一暫態電腦可讀取媒體之範例可以是透過一局域性或廣域網路、或透過一網路(例如,網際網路),經由一無線電頻率或經由一電氣導體而發送一數位信號。一非暫態電腦可讀取媒體之範例可以是一小型碟片器、一快閃記憶體、SRAM、DRAM、一硬碟驅動器、一固態驅動器、或其他資料儲存裝置。
如上所述地,於實施例中,在此所描述之一些或所有的處理程序可以硬體、軟體、及/或韌體而實行。此實施例可以被例示於電腦系統720範例之本文脈絡中,如於圖7中之展示。電腦系統720可以包含一個或多個中央 處理單元(CPU),例如,利用一鏈路730或相似機構而連接到記憶體724之一個或多個之一般處理器722、一個或多個之次要儲存裝置726、以及一個或多個之圖形處理器728。另外地,圖形處理器728可以與一般處理器722相整合。圖形處理器728可以包含用以實行在此所描述之方法的一個或多個邏輯單元。於實施例中,其他邏輯單元也可以呈現。一熟習本技術者應明白,該等邏輯單元功能可以藉由一單一邏輯單元、或任何數目之邏輯單元被執行。電腦系統720可以選擇地包含通訊介面732及/或使用者介面構件734。通訊介面732可以硬體或硬體及軟體之組合而實行,並且可以提供一有線或無線網路介面至網路。使用者介面構件734可以包含,例如,一觸控屏幕、一顯示器、一個或多個使用者輸入構件(例如,一鍵盤、一滑鼠等等)、一擴音機、或其類似者、或其之任何組合。經由在此所描述之方法而處理的資料及/或圖形可以顯示在一個或多個使用者介面構件上。該等一個或多個次要儲存裝置726可以是,例如,一個或多個硬碟驅動器或其類似者,並且可以儲存將藉由圖形處理器728及/或一般處理器722執行之邏輯736(例如,應用邏輯)。於一實施例中,一般處理器722及/或圖形處理器728可以是微處理器,並且邏輯736可以儲存或載入進入記憶體724中,以供藉由一般處理器722及/或圖形處理器728之執行,以提供在此所描述之功能。注意到,雖然未展示於圖形中,電腦系統720也可以包含另外的構件。
如上所述之技術可以是一較大之資訊系統的一部份。圖8例示此一實施例,如一系統800。於實施例中,系統800可以是一媒體系統,雖然系統800是不受限定於這脈絡。例如,系統800可以被併入一個人電腦(PC)、膝上型電腦、超級-膝上型電腦、平板電腦、觸控墊、輕便型電腦、手持電腦、掌上型電腦、個人數位助理(PDA)、行動電話、行動電話/PDA之組合、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、移動式網際網路裝置(MID)、通聯裝置、資料通訊裝置、以及其它者。
於實施例中,系統800包括耦合至顯示器820之一平臺802。平臺802可以接收來自一內容裝置之內容,例如,內容服務裝置830或內容傳送裝置840或其他相似內容來源。包括一個或多個導航特點之一導航控制器850可以被使用,例如,以與平臺802及/或顯示器820互動。這些構件之各者將在下面給予更詳細之說明。
於實施例中,平臺802可以包括一晶片組805、處理器810、記憶體812、儲存器814、圖形子系統815、應用816及/或無線電818之任何組合。晶片組805可以提供在處理器810、記憶體812、儲存器814、圖形子系統815、應用816及/或無線電818中之相互通訊。例如,晶片組805可以包含能夠提供與儲存器814相互通訊之一儲存轉換器(未展示於圖式中)。
處理器810可以被實行如複雜指令集電腦(CISC) 或簡化指令集電腦(RISC)處理器、x86指令集兼容處理器、多核心、或任何其他微處理器或中央處理單元(CPU)。於實施例中,處理器810可以包括雙核心處理器、雙核心移動式處理器、以及其它者。
記憶體812可以被實行如一依電性記憶體裝置,例如,但是不受限定於,一隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、或靜態RAM(SRAM)。
儲存器814可以被實行如一非依電性儲存裝置,例如,但是不受限定於,一磁碟片驅動器、光碟驅動器、卡帶驅動器、一內部儲存裝置、一附帶儲存裝置、快閃記憶體、電池備用SDRAM(同步DRAM)、及/或網路可接取儲存裝置。於實施例中,例如,當包含複數個硬碟驅動器時,儲存器814可以包括增加提高價值數位媒體的保護之儲存性能的技術。
圖形子系統815可以進行用於顯示之影像處理,例如,靜態或視訊影像。圖形子系統815可以是,例如,一圖形處理單元(GPU)或一視覺處理單元(VPU)。一類比或數位介面可以被使用以通訊地耦合圖形子系統815以及顯示器820。例如,該介面可以是任何的高清晰度多媒體介面、顯示埠、無線HDMI、及/或無線HD兼容技術。圖形子系統815可整合入處理器810或晶片組805中。圖形子系統815可以是通訊地耦合至晶片組805之一獨立卡。
在此所描述之圖形及/或視訊處理技術可以於各種硬體結構中被實行。例如,圖形及/或視訊功能可以整 合在一晶片組之內。另外地,一離散圖形及/或視訊處理器可以被使用。如於另一實施例中,該圖形及/或視訊功能可以藉由包含一多核心處理器之一般用途處理器實行。在一進一步的實施例中,該功能可以實行於一消費者電子裝置中。
無線電818可以包含能夠使用各種適當的無線通訊技術以發送以及接收信號之一個或多個無線電。此等技術可以包含跨越一個或多個無線網路之通訊。無線網路之範例包含(但是不受限定於)無線局性域網路(WLAN)、無線個人區域網路(WPAN)、無線都會區域網路(WMAN)、行動電話網路、以及衛星網路。在跨越此等網路之通訊中,無線電818可以依據任何版本之一個或多個可應用標準而操作。
於實施例中,顯示器820可以包括任何電視類型監視器或顯示器。顯示器820可以包括,例如,一電腦顯示屏幕、觸控屏幕顯示器、視訊監視器、電視似之裝置、及/或一電視。顯示器820可以是數位及/或類比的。於實施例中,顯示器820可以是一全像顯示器。同時,顯示器820也可以是可接收一視訊投射的一透明表面。此等投射可以傳播各種形式的資訊、影像、及/或物件。例如,此等投射可以是對於一移動擴增實境(MAR)應用之一視覺覆蓋。在一個或多個軟體應用816之控制下,平臺802可以在顯示器820上顯示使用者介面822。
於實施例中,內容服務裝置830可以為任何國 家、國際及/或獨立服務所掌管並且例如,因此可經由網際網路而接取至平臺802。內容服務裝置830可以耦合至平臺802及/或耦合至顯示器820。平臺802及/或內容服務裝置830可以耦合至網路860而通訊(例如,傳送及/或接收)媒體資訊至/自網路860。內容傳送裝置840同時也可耦合至平臺802及/或耦合至顯示器820。
於實施例中,內容服務裝置830可以包括一有線電視盒、個人電腦、網路、電話、網際網路致能裝置或可傳送數位資訊及/或內容之器具、以及可經由網路860或直接地單向或雙向地在內容提供者及平臺802以及顯示器820之間通訊內容之任何其他相似裝置。應了解,該內容可以經由網路860,單向地及/或雙向地通訊至/自系統800中之任何一構件、以及與一內容提供者通訊。內容之範例可以包含任何媒體資訊,例如,包含,視訊、音樂、醫療與遊戲資訊、以及其它者。
內容服務裝置830接收內容,例如,包含媒體資訊、數位資訊、及/或其他內容之有線電視節目。內容提供者之範例可以包含任何有線電視或衛星電視或無線電或網際網路內容提供者。提供之範例並不欲限制這揭示之實施例。
於實施例中,平臺802可以自具有一個或多個導航特點之導航控制器850接收控制信號。控制器850之導航特點,例如,可被使用以與使用者介面822互動。於實施例中,導航控制器850可以是可為一電腦硬體構件(明確地 說是人類介面裝置)之一指示裝置,該電腦硬體構件允許一使用者將空間(例如,連續的以及多維度的)資料輸進入一電腦中。許多系統,例如,圖形使用者介面(GUI)、電視以及監視器允許該使用者使用實際手勢、面部表情、或聲音以控制及提供資料至該等電腦或電視。
控制器850之導航特點的移動是可以藉由顯示在該顯示器上之一指標、游標、聚焦環、或其他視覺指示器的移動而反應在一顯示器(例如,顯示器820)上。例如,在軟體應用816之控制下,被安置於導航控制器850上之導航特點,例如,可以被映射至顯示在使用者介面822上之虛擬導航特點。於實施例中,控制器850可能不是一各別之構件,而是可整合進入平臺802及/或顯示器820中。但是,實施例是不受限定於在此所展示或所描述之元件或本文脈絡中。
於實施例中,驅動器(未展示於圖式中)可以包括在初始開機(例如,當被致能時)之後,藉由一按鈕之觸控而致能使用者即時地導通和關閉平臺802(類似電視)之技術。當該平臺“關閉”時,程式邏輯可以允許平臺802將內容流送至媒體轉換器或其他內容服務裝置830或內容傳送裝置840。此外,晶片組805可以包括,例如,支援5.1環場音效及/或高清晰度7.1環場音效的硬體及/或軟體。驅動器可以包含用於整合圖形平臺之圖形驅動器。於實施例中,該圖形驅動器可以包括一週邊構件互連(PCI)快速圖形卡。
於各種實施例中,展示於系統800中之任何一個或多個構件可以被整合。例如,平臺802以及內容服務裝置830可以被整合,或平臺802以及內容傳送裝置840可以被整合,或,例如,平臺802、內容服務裝置830、以及內容傳送裝置840可以被整合。於各種實施例中,平臺802以及顯示器820可以是一整合單元。例如,顯示器820以及內容服務裝置830可以被整合,或顯示器820以及內容傳送裝置840可以被整合。這些範例不欲限定這揭示之實施例。
在各種實施例中,系統800可以實行,如一無線系統、一有線系統、或其兩者之組合。當作為一無線系統實行時,系統800可以包含適用於在無線共享媒體上通訊之構件以及介面,例如,一個或多個天線、發送器、接收器、收發器、放大器、濾波器、控制邏輯、以及其它者。無線共享媒體之範例可以包含一無線頻譜之一部分,例如,RF頻譜以及其它者。當作為一有線系統實行時,系統800可以包含適用於在有線的通訊媒體上通訊之構件以及介面,例如,輸入/輸出(I/O)轉換器、連接I/O轉換器與一對應的有線通訊媒體之實體連接器、網路介面卡(NIC)、光碟控制器、視訊控制器、音訊控制器、以及其它者。有線通訊媒體的範例可以包含一接線、電纜線、金屬導線、印刷電路板(PCB)、基板、切換組織、半導體材料、雙絞線、同軸電纜線、光纖、以及其它者。
平臺802可以建立一個或多個邏輯或實體通道以通訊資訊。該資訊可以包含媒體資訊以及控制資訊。媒體 資訊可以是涉及表示對一使用者有意義之內容的任何資料。內容範例可以包含,例如,來自一語音會話、視訊會議、視訊流、電子郵件(“email”)訊息、語音郵件訊息、文數字符號、圖形、影像、視訊、文字以及其它者之資料。來自一語音會話之資料可以是,例如,語音資訊、靜音週期、背景雜訊、舒適雜訊、音調以及其它者。控制資訊可以涉及任何資料,其表示對一自動化系統有意義之命令、指令或控制字詞。例如,控制資訊可以被使用以經由一系統而按規定路線發送媒體資訊,或指示一節點而以一預定方式處理該媒體資訊。但是,該等實施例,是不受限定於所展示或說明於圖8中之元件或本文脈絡。
如上所述,系統800可以變化的實際樣式或形式因素而實施。圖9例示一小形式因素裝置900之實施例,而系統800可以實施於裝置900中。於實施例中,例如,裝置900可以實行如具有無線能力之一移動電腦裝置。例如,一移動電腦裝置可以涉及具有一處理系統以及一移動電源或電源供應(例如,一個或多個電池)之任何裝置。
如上所述,移動電腦裝置之範例可以包含一個人電腦(PC)、膝上型電腦、超級膝上型電腦、平板電腦、觸控墊、輕便型電腦、手持電腦、掌上型電腦、個人數位助理(PDA)、行動電話、行動電話/PDA之組合、電視、智慧型裝置(例如,智慧型手機、智慧型平板電腦或智慧型電視)、移動網際網路裝置(MID)、通聯裝置、資料通訊裝置、以及其它者。
一移動電腦裝置之範例同時也可以包含被配置而可為人員所佩戴之電腦,例如,一腕式電腦、指式電腦、戒指式電腦、眼鏡式電腦、鉗帶式電腦、臂帶式電腦、鞋式電腦、服裝式電腦、以及其他可佩帶式電腦。於實施例中,例如,一移動電腦裝置可以實行如一智慧型手機,其可執行電腦應用、以及聲音通訊及/或資料通訊。雖然一些實施例可以經由範例,藉由實行如一智慧型手機之一移動電腦裝置而說明,應了解,其他實施例同樣地也可以使用其他無線移動電腦裝置而實行。該等實施例是不受限定於這文章脈絡中。
如於圖9中所展示,裝置900可以包括一外罩902、一顯示器904、一輸入/輸出(I/O)裝置906、以及一天線908。裝置900也可以包括導航特點912。顯示器904可以包括適用於一移動電腦裝置而用以顯示資訊910之任何適當的顯示單元。I/O裝置906可以包括用以將資訊輸進入一移動電腦裝置之任何適當的I/O裝置。對於I/O裝置906之範例可以包含一文數字鍵盤、一數字小鍵盤、一觸控墊、輸入鍵、按鈕、切換器、搖桿切換器、麥克風、擴音機、聲音辨識裝置與軟體、以及其它者。資訊同時也可藉由麥克風輸進入裝置900中。此資訊可以藉由一聲音辨識裝置而數位化。該等實施例是不受限定於這文章脈絡中。
各種實施例可以使用硬體元件、軟體元件、或其兩者之組合而實行。硬體元件之範例可以包含處理器、微處理器、電路、電路元件(例如,電晶體、電阻器、電 容器、電感器、以及其它者)、積體電路、特定應用積體電路(ASIC)、可程控邏輯裝置(PLD)、數位信號處理器(DSP)、場式可程控閘陣列(FPGA)、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組、以及其它者。軟體範例可以包含軟體構件、程式、應用、電腦程式、應用程式、系統程式、機器程式、操作系統軟體、中間軟體、韌體、軟體模組、例行程式、子例行程式、函數、方法、步驟、軟體介面、應用程式介面(API)、指令組、計算程式碼、電腦程式碼、程式碼段、電腦程式碼段、字組、數值、符號、或其任何組合。決定一實施例是否使用硬體元件及/或軟體元件而實行可以依據任何數目之因素(例如,所需的計算率、功率位準、耐熱性、處理週期預算、輸入資料率、輸出資料率、記憶體資源、資料匯流排速率以及其他設計或性能限制)而變化。
至少一實施例之一個或多個論點可以藉由儲存在一機器可讀取媒體上之代表在處理器內之各種邏輯的表示指令而實行,其中當該等指令利用一機器而讀取時,將導致該機器構成邏輯以進行在此所描述之技術。此等代表,習知如“IP核心”,可以是儲存在一有形的機器可讀取媒體上並且供應至各種顧客或生產設施以將之載入進入實際上構成該邏輯或處理器之製造機器上。
此處揭示之技術管理一快取組織中可變長度之未壓縮資料的行程路線安排以及維護。此處提供之解決辦法允許於記憶體介面而不是在分別的處理區塊之資料的壓 縮以及解壓縮,有效地節省空間以及最佳化功率需求,而同時得益自記憶體中壓縮資料之優點。於實施例中,至少一壓縮及解壓縮器以及快取記憶庫之一快取組織被組態以管理及追蹤(經由有限狀態機器、固定功能區塊、軟體、等等)由至少一處理元件對於記憶體之資料要求的可變長度之未壓縮資料。使用於這文件中之特定範例以及情節是為了容易了解起見並且將不欲作為限定。例如,其可以有作為一壓縮及解壓縮器單元之部件的複數個壓縮器及解壓縮器,或甚至可以有各具有一個或多個壓縮器及解壓縮器之複數個壓縮及解壓縮器單元。於另一範例中,展示於此處之快取記憶庫及節點的組態只是一實行範例。許多其他組態也可以被使用。此外,一般熟習本技術者應明白,在此所描述之特點可以使用於許多其他脈絡中。例如,在此所描述之概念可以應用至任何平行處理系統或單元,例如,但不是作為限定,一中央處理單元(CPU)、一圖形處理單元(GPU)、等等。
使用在此所描述之技術有各種優點。在此所描述之技術提供分散式辦法,其使晶模大小以及功率需求最小化,而仍然受益於記憶體中之壓縮資料的使用。許多其他優點也是可以預期的。
下面的範例係關於進一步的實施例。
範例1可以包含一電腦系統,該電腦系統包括:至少一處理元件;一記憶體,其通訊地耦合至該至少一處理元件;至少一壓縮及解壓縮器,其通訊地耦合至該至少 一處理元件,並且經由一記憶體介面而通訊地耦合至該記憶體;以及一快取組織,其包括複數個分散式快取記憶庫,該等複數個分散式快取記憶庫經由複數個節點通訊地彼此耦合、耦合至該至少一處理元件、及耦合至該至少一壓縮及解壓縮器,其中該至少一壓縮及解壓縮器與該快取組織被組態以管理及追蹤對於藉由該等至少一處理元件對該記憶體之資料要求的可變長度之未壓縮資料。
範例2可以包含範例1的主題事件,其中如果該至少一處理元件之一要求處理元件所需的一個或多個資料位元組有一快取錯失,則將進行下列事項該要求處理元件被組態以產生對於該等所需的一個或多個資料位元組的對該記憶體之一載入(LOAD)要求;以及該至少一壓縮及解壓縮器被組態以進行下列事項:檢測該載入要求;解壓縮自該記憶體所提供之內容;自該等內容辨識該所需的一個或多個資料位元組;將該所需的一個或多個資料位元組提供至與該要求處理元件相關聯之一快取記憶庫;以及將來自該等內容之其餘填補資料位元組分佈至該快取組織之一個或多個其他快取記憶庫。
範例3可以包含範例2的主題事件,其中該其餘填補資料位元組之分佈包含當該快取記憶庫的帶寬允許時,將該等一個或多個其餘填補資料位元組之一個或多個位元組分佈至一個或多個其他快取記憶庫。
範例4可以包含範例2或範例3的主題事件,其中包含一個或多個填補資料位元組之一快取記憶庫具有比不 包含填補資料位元組之快取記憶庫之一較低優先序,於其中該較低優先序快取記憶庫中之該等一個或多個填補資料位元組可以如所需地由未來要求的資料位元組所替換。
範例5可以包含範例4的主題事件,其中該未來要求的資料位元組是供用於一實際的資料要求。
範例6可以包含範例4的主題事件,其中該未來要求的資料位元組是供用於一剛好及時的資料要求。
範例7可以包含範例2-6之任何一範例的主題事件,其中,如果在處置該等一個或多個填補資料位元組之一快取記憶庫的充填完成之前,有對於一個或多個填補資料位元組之對該記憶體之一隨後要求,則將進行下列事項:處置該等一個或多個要求的填補資料位元組之該快取記憶庫被組態以檢測及充填對於該等一個或多個填補資料位元組之該隨後要求;以及該至少一壓縮及解壓縮器被組態以取消對記憶體之該隨後要求以減輕該記憶體介面上之流量。
範例8可以包含範例1-7之任何一範例的主題事件,其中該至少一處理元件之一處理元件被組態以將一個或多個未壓縮資料位元組寫出至該快取組織;其中該快取組織被組態以分佈該等一個或多個未壓縮資料位元組作為修改內容;以及其中,如果任何該修改內容自該快取組織被寫出,則該至少一壓縮及解壓縮器被組態以進行下列事項:檢測該修改內容是將被寫出;保持該檢測的修改內容;對於該修改內容之填補內容,進行該快取組織之一搜 尋;以及如果所有填補內容被發現,則鞏固及壓縮該修改與填補內容並且將該壓縮內容寫至該記憶體。
範例9可以包含範例8的主題事件,其中該至少一壓縮及解壓縮器被組態,以當該修改內容被寫出時,如果不是所有填補內容被發現,則進行下列事項:自該記憶體,讀取與該修改內容相關聯之先前所儲存的壓縮內容;解壓縮該相關聯的內容;合併及壓縮該修改內容、該發現的填補內容、以及該相關聯的內容;以及寫入該合併及壓縮的內容至該記憶體。
範例10可以包含範例1-7之任何一範例的主題事件,其中該至少一處理元件之一處理元件被組態以繞過該快取組織而寫出一個或多個未壓縮資料位元組;並且其中該至少一壓縮及解壓縮器被組態以檢測該等一個或多個未壓縮資料位元組是將被寫出;壓縮該未壓縮資料;將該壓縮資料寫至該記憶體;以及提供該未壓縮資料至該快取組織以供用於未來的資料要求。
在範例11中,範例1-10之任何一範例可以選擇地包含一通訊介面,其通訊地耦合至該至少一處理元件與一網路;包含一導航裝置與顯示器之一使用者介面,該使用者介面通訊地耦合至該至少一處理元件;以及儲存應用邏輯之儲存器,該儲存器通訊地耦合至該至少一處理元件,其中該至少一處理元件被組態以載入及執行該應用邏輯,其中該應用邏輯之執行包含經由該使用者介面而呈現圖形。
範例12可以包含至少一電腦程式產品,其包含具有電腦程式邏輯儲存於其中之至少一非暫態電腦可讀取媒體,該電腦程式邏輯包含邏輯,如果一要求處理元件所需的一個或多個資料位元組有一快取錯失,則該邏輯將導致一壓縮及解壓縮器進行下列事項:檢測對於該等所需的一個或多個資料位元組之對一記憶體之一載入要求;響應於該載入要求,而解壓縮自該記憶體所提供之內容;自該等內容而辨識該等所需的一個或多個資料位元組;提供該等所需的一個或多個資料位元組至與該要求處理元件相關聯之一快取記憶庫,該快取記憶庫是複數個快取記憶庫的一快取組織之部件,其中該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;以及自該等內容將其餘填補資料位元組分佈至該快取組織之一個或多個其他快取記憶庫。
範例13可以包含範例12的主題事件,其中該電腦程式邏輯進一步地包含邏輯,如果在處置該等一個或多個填補資料位元組之一快取記憶庫的充填完成之前,有對於一個或多個填補資料位元組之一隨後要求至該記憶體,則該邏輯將導致該壓縮及解壓縮器進行下面事項:取消至記憶體之該隨後要求以減輕一記憶體介面上之流量,同時處置該等一個或多個要求填補資料位元組之該快取記憶庫檢測且充填該隨後要求。
範例14可以包含至少一電腦程式產品,其包含具有電腦程式邏輯儲存的其中之至少一電腦可讀取媒體, 該電腦程式邏輯包含邏輯,該邏輯將導致一壓縮及解壓縮器進行下列事項:檢測該未壓縮修改內容是將自該快取組織之一個或多個快取記憶庫被寫出;保持該檢測的修改內容;對於該修改內容之填補內容,進行該快取組織之一搜尋;以及如果所有對於該修改內容之填補內容被發現,則鞏固及壓縮該修改與填補內容並且將該壓縮內容寫至該記憶體。
範例15可以包含範例14的主題事件,其中該電腦程式邏輯進一步地包含邏輯,當如果不是所有對於該修改內容之填補內容被發現,該邏輯將導致該壓縮及解壓縮器進行下列事項:自該記憶體,讀取與該修改內容相關聯之先前所儲存的壓縮內容;解壓縮該相關聯的內容;合併及壓縮該修改內容、該發現的填補內容、以及該相關聯的內容;以及寫入該合併及壓縮的內容至該記憶體。
範例16可以包含至少一電腦程式產品,其包含具有電腦程式邏輯儲存於其中之至少一非暫態電腦可讀取媒體,該電腦程式邏輯包含邏輯以導致一壓縮及解壓縮器進行下列事項:檢測一個或多個未壓縮資料位元組是將被寫出;壓縮該未壓縮資料,該未壓縮資料繞過一快取組織,該快取組織包含複數個快取記憶庫,該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;將該壓縮資料寫至一記憶體;以及提供該未壓縮資料至該快取組織以供用於未來的資料要求。
範例17可以包含用以處理資料之一設備,該設備包括下列構件,供用於當一要求處理元件所需求的一個或多個資料位元組有一快取錯失時進行:構件,用以檢測對於該等所需的一個或多個資料位元組之對一記憶體的一載入要求;構件,用以響應於該載入要求,而解壓縮自該記憶體所提供之內容;構件,用以自該等內容而辨識該等所需的一個或多個資料位元組;構件,用以提供該等所需的一個或多個資料位元組至與該要求處理元件相關聯之一快取記憶庫,該快取記憶庫是複數個快取記憶庫之一快取組織的部件,該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、以及耦合至該壓縮及解壓縮器;以及構件,用以自該等內容將其餘填補資料位元組分佈至該快取組織之一個或多個其他快取記憶庫。
在範例18中,範例17可以選擇地包含下列構件,供用於當在處置該等一個或多個填補資料位元組之一快取記憶庫的充填完成之前,有對於一個或多個填補資料位元組之對該記憶體之一隨後要求時進行:構件,用以取消取消對記憶體之該隨後要求以減輕一記憶體介面上之流量,同時處置該等一個或多個要求填補資料位元組之該快取記憶庫則檢測及充填該隨後要求。
範例19可以包含用以處理資料之一設備,該設備包括下列構件:構件,用以檢測未壓縮修改內容是將自該快取組織之一個或多個快取記憶庫被寫出,該該快取組織包含複數個快取記憶庫,該等複數個快取記憶庫經由複 數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;構件,用以保持該檢測的修改內容;構件,用以對於該修改內容之填補內容,進行該快取組織之一搜尋;以及構件,用以如果所有對於該修改內容之填補內容被發現,則鞏固及壓縮該修改與填補內容並且將該壓縮內容寫至該記憶體。
在範例20中,範例19可以選擇包含下列構件,供用於當不是所有對於該修改內容之填補內容被發現時進行:構件,用以自該記憶體,讀取與該修改內容相關聯之先前所儲存的壓縮內容;構件,用以解壓縮該相關聯的內容;構件,用以合併及壓縮該修改內容、該發現的填補內容、及該相關聯的內容;以及構件,用以寫入該合併及壓縮的內容至該記憶體。
範例21可以包含用以處理資料之一設備,該設備包括下列構件:構件,用以檢測一個或多個未壓縮資料位元組是將被寫出;構件,用以壓縮該未壓縮資料,該未壓縮資料繞過該快取組織,該快取組織包含複數個快取記憶庫,該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;構件,用以將該壓縮資料寫至一記憶體;以及構件,用以提供該未壓縮資料至該快取組織以供用於未來的資料要求。
範例22可以包含處理資料之一方法,該方法包括,如果一要求處理元件所需的一個或多個資料位元組有 一快取錯失,則將進行下列步驟:藉由一壓縮及解壓縮器,檢測對於該等所需的一個或多個資料位元組之對一記憶體之一載入要求;藉由該壓縮及解壓縮器,響應於該載入要求,而解壓縮自該記憶體所提供之內容;藉由該壓縮及解壓縮器,自該等內容而辨識該等所需的一個或多個資料位元組;藉由該壓縮及解壓縮器,提供該等所需的一個或多個資料位元組至與該要求處理元件相關聯之一快取記憶庫,該快取記憶庫是複數個快取記憶庫的一快取組織之部件,其中該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;以及自該等內容將其餘填補資料位元組分佈至該快取組織之一個或多個其他快取記憶庫。
在範例23中,範例22可以選擇地包含進行下面步驟:如果在處置該等一個或多個填補資料位元組之一快取記憶庫的充填完成之前,有對於一個或多個填補資料位元組之一隨後要求至該記憶體,則取消至記憶體之該隨後要求以減輕一記憶體介面上之流量,同時處置該等一個或多個要求填補資料位元組之該快取記憶庫檢測且充填該隨後要求。
範例24可以包含至少一機器可讀取媒體,該機器可讀取媒體包括複數個指令,當反應於該等指令在一電腦裝置上執行時,將導致該電腦裝置實行根據範例22或範例23之一方法。
範例25可以包含一設備,該設備被組態以進行 範例22或範例23之方法。
範例26可以包含一電腦系統以進行範例22或範例23之方法。
範例27可以包含一機器以進行範例22或範例23之方法。
範例28可以包含一設備,該設備包括用以進行範例22或範例23之方法的構件。
範例29可以包含一包括記憶體以及一晶片組之電腦裝置,該電腦裝置被組態以進行範例22或範例23之方法。
範例30可以包含處理資料之一方法,該方法包括下列進行之步驟:藉由一壓縮及解壓縮器,檢測該未壓縮修改內容是將自該快取組織之一個或多個快取記憶庫被寫出,該快取組織包含複數個快取記憶庫,該等複數個快取記憶庫經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及耦合至該壓縮及解壓縮器;藉由該壓縮及解壓縮器,保持該檢測的修改內容;對於該修改內容之填補內容,進行該快取組織之一搜尋;以及如果所有填補內容被發現,則鞏固及壓縮該修改與填補內容並且將該壓縮內容寫至該記憶體,則藉由該壓縮及解壓縮器,鞏固及壓縮該修改與填補內容並且將該壓縮內容寫至該記憶體。
在範例31中,範例30可以選擇地包含進行下列步驟:如果不是所有的該填補內容被發現,則自該記憶體,讀取與該修改內容相關聯之先前所儲存的壓縮內容; 解壓縮該相關聯的內容;合併及壓縮該修改內容、該發現的填補內容、以及該相關聯的內容;以及寫入該合併及壓縮的內容至該記憶體。
範例32可以包含至少一包括複數個指令之機器可讀取媒體,當反應於該等指令在一電腦裝置上被執行時,將導致該電腦裝置實行根據範例30或範例31之一方法。
範例33可以包含一設備,其被組態以進行範例30或範例31之方法。
範例34可以包含一電腦系統以進行範例30或範例31之方法。
範例35可以包含一機器以進行範例30或範例31之方法。
範例36可以包含一設備,該設備包括用以進行範例30或範例31之方法的構件。
範例37可以包含一包括記憶體以及一晶片組之電腦裝置,該電腦裝置被組態以進行範例30或範例31之方法。
範例38可以包含一資料處理之方法,該方法包括進行下列步驟:藉由一壓縮及解壓縮器,檢測一個或多個未壓縮的資料位元組將被寫出;藉由該壓縮及解壓縮器,壓縮該未壓縮的資料,該未壓縮的資料繞過一快取組織,該快取組織包含複數個快取記憶庫,該等複數個經由複數個節點通訊地彼此耦合、耦合至複數個處理元件、及 耦合至該壓縮及解壓縮器;藉由該壓縮及解壓縮器,將該壓縮資料寫至一記憶體;以及藉由該壓縮及解壓縮器,提供該未壓縮資料至該快取組織以供用於未來的資料要求。
範例39可以包含至少一包括複數個指令之機器可讀取媒體,當反應於該等複數個指令在一電腦裝置上被執行時,將導致該電腦裝置實行根據範例38之一方法。
範例40可以包含一設備,其被組態以進行範例38之方法。
範例41可以包含一電腦系統以進行範例38之方法。
範例42可以包含一機器以進行範例38之方法。
範例43可以包含一設備,其包括用以進行範例38之方法的構件。
範例44可以包含一包括記憶體及一晶片組之電腦裝置,該電腦裝置被組態以進行範例38之方法。
方法及系統藉由例示其功能、特點、以及關係之功能構成區塊的輔助在此處被揭示。這些功能構成區塊之至少一些界限已在此處專門地被界定以供說明之方便。只要其該等指定功能及關係是適當地被進行,替換的界限可以被界定。
雖然各種實施例在此處揭示,應了解,它們經由僅是作為範例,而不是作為限制地呈現。熟習本技術者應明白,相關技術在形式上以及其中之細節可以有各種改變而不脫離此處揭示之方法及系統的範疇。因此,申請專 利範圍之廣度和範圍將是不受限定於此處所揭示之任何的實施範例。
如在這申請中及申請專利範圍中所使用的,利用詞語“一個或多個”所接合之項目列表可表示所列的項目之任何組合。例如,該等用語“一個或多個A、B或C”以及“一個或多個A、B、及C”可以表示A;B;C;A及B;A及C;B及C;或A、B及C。
102‧‧‧記憶體
104‧‧‧記憶體介面
106‧‧‧壓縮及解壓縮器單元
108-1~108-X‧‧‧快取記憶庫
110(110-1~110-Y)‧‧‧處理元件
112(112-1~112-Z)‧‧‧通訊節點

Claims (21)

  1. 一種運算系統,其包括:至少一處理元件;一記憶體,其通訊式耦合至該至少一處理元件;至少一壓縮及解壓縮器,其通訊式耦合至該至少一處理元件,並且透過一記憶體介面而通訊式耦合至該記憶體;以及包含有複數個分散式快取記憶庫的一快取組織,該等複數個分散式快取記憶庫經由複數個節點而通訊式耦合至彼此、至該至少一處理元件及至該至少一壓縮器解壓縮器,其中,該至少一壓縮及解壓縮器與該快取組織受組配成可管理並追蹤針對由該至少一處理元件對該記憶體所作之資料要求的長度可變之未壓縮資料,其中,如果發生針對該至少一處理元件之一提出要求處理元件所欲之一個或多個資料位元組的一快取錯失,則:該要求處理元件受組配成可產生對於所欲之該一個或多個資料位元組的對該記憶體之一載入(LOAD)要求;並且該至少一壓縮及解壓縮器受組配成可進行下列步驟:檢測該載入要求; 解壓縮由該記憶體所提供之內容;從該等內容中辨識出所欲的該一個或多個資料位元組;以及將所欲的該一個或多個資料位元組提供給與該提出要求處理元件相關聯的一快取記憶庫。
  2. 如請求項1之運算系統,其中,該至少一壓縮器-解壓縮器被組態用以:使來自該等內容之剩餘填補資料位元組分佈至該快取組織之一個或多個其他快取記憶庫。
  3. 如請求項2之運算系統,其中,使該等剩餘填補資料位元組分佈至該快取組織之該一個或多個其他快取記憶庫之步驟包含:以該一個或多個其他快取記憶庫之帶寬所允許的方式使該一個或多個剩餘填補資料位元組之一個或多個位元組分佈至該一個或多個其他快取記憶庫。
  4. 如請求項2之運算系統,其中,含有一個或多個填補資料位元組的一快取記憶庫相較於不包含有填補資料位元組之快取記憶庫係具有一較低優先序,於其中,具有該較低優先序的該快取記憶庫中之該一個或多個填補資料位元組可依需由未來所要求資料位元組替換。
  5. 如請求項4之運算系統,其中,該等未來所要求資料位元組用於一實際資料要求。
  6. 如請求項4之運算系統,其中,該等未來所要求資料位元組用於一剛好及時的資料要求。
  7. 如請求項2之運算系統,其中,如果在對於處置一個或多個填補資料位元組的一快取記憶庫的充填完成之前,有對該記憶體的對於該一個或多個填補資料位元組的一隨後要求,則:處置所要求之該一個或多個填補資料位元組的該快取記憶庫受組配成可檢測及滿足對於該一個或多個填補資料位元組的該隨後要求;以及該至少一壓縮及解壓縮器受組配成可取消對該記憶體的該隨後要求以減少該記憶體介面上之流量。
  8. 如請求項1之運算系統:其中,該至少一處理元件的一處理元件受組配成可將一個或多個未壓縮資料位元組寫出至該快取組織;其中,該快取組織受組配成可使該一個或多個未壓縮資料位元組作為經修改內容而分佈;並且其中,如果任何該經修改內容自該快取組織被寫出,則該至少一壓縮及解壓縮器受組配成可:檢測到該經修改內容正被寫出;保持所檢測到的該經修改內容;針對該經修改內容之填補內容,進行對該快取組織的搜尋;以及 如果所有填補內容都被搜索到,則固結並壓縮該經修改內容與該填補內容並且將經壓縮內容寫至該記憶體。
  9. 如請求項8之運算系統,其中,當該經修改內容被寫出而並非所有填補內容都被搜索到時,該至少一壓縮及解壓縮器受組配成可:自該記憶體讀取出先前所儲存的與該經修改內容相關聯之壓縮內容;將相關聯的該內容解壓縮;將該經修改內容、搜索到的該填補內容、以及相關聯的該內容合併及壓縮;以及將經合併及壓縮的該內容寫入至該記憶體。
  10. 如請求項1之運算系統:其中,該至少一處理元件之一處理元件受組配成可繞過該快取組織而寫出一個或多個未壓縮資料位元組;並且其中,該至少一壓縮及解壓縮器受組配成可:檢測出該一個或多個未壓縮資料位元組正被寫出;將該未壓縮資料壓縮;將經壓縮的該資料寫至該記憶體;以及將該未壓縮資料提供給該快取組織以供用於未來的資料要求。
  11. 如請求項1之運算系統,其進一步包括: 一通訊介面,其通訊式耦接至該至少一處理元件與一網路;包含一導航裝置與顯示器的一使用者介面,該使用者介面通訊式耦接至該至少一處理元件;以及儲存應用邏輯的儲存器,該儲存器通訊式耦合至該至少一處理元件,其中,該至少一處理元件受組配成可載入及執行該應用邏輯,其中,該應用邏輯之執行包含經由該使用者介面而呈現圖形。
  12. 一種含有至少一個部件的電腦程式產品,其包含儲存有電腦程式邏輯在內的至少一個非暫態電腦可讀取媒體,該電腦程式邏輯包含用於在當發生針對一提出要求處理元件所欲之一個或多個資料位元組的一快取錯失時致使一壓縮及解壓縮器進行下列步驟的邏輯:檢測到對一記憶體之對於所欲之該一個或多個資料位元組的一載入要求;響應於該載入要求,而解壓縮由該記憶體所提供之內容;從該等內容中辨識出所欲之該一個或多個資料位元組;提供所欲之該一個或多個資料位元組給與該提出要求處理元件相關聯的一快取記憶庫,該快取記憶庫是由複數個快取記憶庫建構的一快取組織的一部分,該等 複數個快取記憶庫經由複數個節點而通訊式耦接至彼此、至複數個處理元件、及至該壓縮及解壓縮器;以及使來自該等內容的剩餘填補資料位元組分佈至該快取組織的一個或多個其他快取記憶庫。
  13. 如請求項12之含有至少一個部件的電腦程式產品,其中,該電腦程式邏輯進一步包含用於致使該壓縮及解壓縮器進行下列動作的邏輯:如果在對於處置該一個或多個填補資料位元組的一快取記憶庫的充填完成之前,有對該記憶體的對於一個或多個填補資料位元組的一隨後要求,則取消對該記憶體的該隨後要求以減少一記憶體介面上之流量而使處置被要求的該一個或多個填補資料位元組的該快取記憶庫檢測並滿足該隨後要求。
  14. 如請求項12之含有至少一個部件的電腦程式產品,其中,該電腦程式邏輯進一步包含會致使該壓縮及解壓縮器進行下列動作的邏輯:檢測到未壓縮的經修改內容正從該快取組織之一個或多個快取記憶庫被寫出;保持所檢測到的該經修改內容;進行對該快取組織的針對該經修改內容之填補內容的搜尋;以及如果該經修改內容之所有填補內容都被搜索到,則鞏固並壓縮該經修改內容與該填補內容並且將經壓縮之內容寫至該記憶體。
  15. 如請求項14之含有至少一個部件的電腦程式產品,其中,該電腦程式邏輯進一步地包含可致使該壓縮及解壓縮器在並非對該經修改內容之所有填補內容都被搜索到時進行下列步驟的邏輯:自該記憶體讀取出先前所儲存的與該經修改內容相關聯的壓縮內容;將相關聯的該內容解壓縮;將該經修改內容、搜索到的填補內容、以及相關聯的該內容合併並壓縮;以及將經合併及壓縮的該內容寫入至該記憶體。
  16. 一種含有至少一個部件的電腦程式產品,其包含儲存有電腦程式邏輯在內的至少一個非暫態電腦可讀取媒體,該電腦程式邏輯包含用於致使一壓縮及解壓縮器用進行下列動作的邏輯:檢測到一個或多個未壓縮資料位元組正被寫出;壓縮繞過一快取組織的該未壓縮資料,該快取組織包含複數個快取記憶庫,該等複數個快取記憶庫經由複數個節點而通訊式耦合至彼此、至複數個處理元件、及至該壓縮及解壓縮器;將該壓縮資料寫至一記憶體;以及將該未壓縮資料提供給該快取組織以供用於未來的資料要求。
  17. 一種處理資料的方法,該方法包含在發生針對一提出要求處理元件所欲之一個或多個資料位元組的一快取錯失時進行下列步驟:由一壓縮及解壓縮器來檢測對一記憶體的對於所欲之該一個或多個資料位元組的一載入要求;由該壓縮及解壓縮器,響應於該載入要求,將由該記憶體所提供之內容解壓縮;由該壓縮及解壓縮器,從該等內容辨識出所欲之該一個或多個資料位元組;由該壓縮及解壓縮器,提供所欲隻該一個或多個資料位元組給與該提出要求處理元件相關聯的一快取記憶庫,該快取記憶庫是由複數個快取記憶庫建構的一快取組織之一部份,該等複數個快取記憶庫經由複數個節點而通訊式耦合至彼此、至複數個處理元件、及至該壓縮及解壓縮器;以及由該壓縮及解壓縮器,使來自該等內容的剩餘填補資料位元組分佈至該快取組織的一個或多個其他快取記憶庫。
  18. 如請求項17之方法,其進一步包含下列步驟,如果在對於處置一個或多個填補資料位元組的一快取記憶庫的充填完成之前有對該記憶體的對於該一個或多個填補資料位元組之的一隨後要求,則取消對該記憶體的該隨後要求以減少一記憶體介面上之流量而使處置所要求 的該一個或多個填補資料位元組的該快取記憶庫檢測並滿足該隨後要求。
  19. 如請求項17之方法,其進一步包含下列步驟:檢測到未壓縮經修改內容正從該快取組織之一個或多個快取記憶庫被寫出;保持所檢測到的該經修改內容;進行對該快取組織之針對該經修改內容之填補內容的搜尋;以及如果對於該經修改內容的所有填補內容都被搜索到,則鞏固並壓縮該經修改內容與該填補內容並且將經壓縮之該內容寫至該記憶體。
  20. 如請求項19之方法,其進一步包含在並非對於該經修改內容的所有填補內容都被搜索到時進行下列步驟:從該記憶體讀取出先前所儲存的與該經修改內容相關聯的壓縮內容;將相關聯的該內容解壓縮;將該經修改內容、所搜索到的填補內容、以及相關聯的該內容合併並壓縮;以及將經合併及壓縮的該內容寫入至該記憶體。
  21. 如請求項17之方法,其進一步包含下列步驟:檢測到一個或多個未壓縮資料位元組正被寫出;將繞過該快取組織的該未壓縮資料壓縮;將經壓縮的該資料寫至該記憶體;以及 將該未壓縮資料提供給該快取組織以供用於未來的資料要求。
TW104101788A 2014-02-28 2015-01-20 在分散式快取組織上處置壓縮資料之技術 TWI559142B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/193,550 US9612833B2 (en) 2014-02-28 2014-02-28 Handling compressed data over distributed cache fabric

Publications (2)

Publication Number Publication Date
TW201543217A TW201543217A (zh) 2015-11-16
TWI559142B true TWI559142B (zh) 2016-11-21

Family

ID=53801463

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104101788A TWI559142B (zh) 2014-02-28 2015-01-20 在分散式快取組織上處置壓縮資料之技術

Country Status (4)

Country Link
US (1) US9612833B2 (zh)
CN (1) CN104881367B (zh)
DE (1) DE102015001088A1 (zh)
TW (1) TWI559142B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9990298B2 (en) * 2014-05-12 2018-06-05 Western Digital Technologies, Inc System and method for caching solid state device read request results
US10223000B2 (en) * 2015-05-21 2019-03-05 International Business Machines Corporation Data compression for grid-oriented storage systems
US10191850B2 (en) * 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10747678B2 (en) * 2016-10-27 2020-08-18 Seagate Technology Llc Storage tier with compressed forward map
CN106776373B (zh) * 2017-01-12 2020-10-16 合肥速显微电子科技有限公司 一种面向移动设备的基于闪存的高速缓存系统及方法
US10438569B2 (en) * 2017-04-17 2019-10-08 Intel Corporation Consolidation of data compression using common sectored cache for graphics streams
US20220283947A1 (en) * 2020-03-18 2022-09-08 Nec Corporation Information processing device and information processing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW513634B (en) * 1999-05-19 2002-12-11 Ibm Virtual uncompressed cache for compressed main memory
US20040139298A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method and apparatus for instruction compression and decompression in a cache memory
TW200602871A (en) * 2004-05-25 2006-01-16 Ssd Co Ltd Data processing unit, drawing apparatus and pixel packer
US20060015686A1 (en) * 2004-07-14 2006-01-19 Silicon Optix Inc. Cache memory management system and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446145B1 (en) * 2000-01-06 2002-09-03 International Business Machines Corporation Computer memory compression abort and bypass mechanism when cache write back buffer is full
US7249242B2 (en) * 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7958289B2 (en) * 2002-08-08 2011-06-07 International Business Machines Corporation Method and system for storing memory compressed data onto memory compressed disks
US6956507B2 (en) * 2002-12-12 2005-10-18 International Business Machines Corporation Method and apparatus for morphing memory compressed machines
US7162584B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to include hints within compressed data
US7225297B2 (en) * 2004-05-28 2007-05-29 International Business Machines Corporation Compressed cache lines incorporating embedded prefetch history data
US9026568B2 (en) * 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US10032243B2 (en) * 2012-10-26 2018-07-24 Nvidia Corporation Distributed tiled caching
US9430394B2 (en) * 2013-12-12 2016-08-30 Mediatek Singapore Pte. Ltd. Storage system having data storage lines with different data storage line sizes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW513634B (en) * 1999-05-19 2002-12-11 Ibm Virtual uncompressed cache for compressed main memory
US20040139298A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method and apparatus for instruction compression and decompression in a cache memory
TW200602871A (en) * 2004-05-25 2006-01-16 Ssd Co Ltd Data processing unit, drawing apparatus and pixel packer
US20060015686A1 (en) * 2004-07-14 2006-01-19 Silicon Optix Inc. Cache memory management system and method

Also Published As

Publication number Publication date
DE102015001088A1 (de) 2015-09-03
US9612833B2 (en) 2017-04-04
CN104881367A (zh) 2015-09-02
US20150248292A1 (en) 2015-09-03
CN104881367B (zh) 2018-05-22
TW201543217A (zh) 2015-11-16

Similar Documents

Publication Publication Date Title
TWI559142B (zh) 在分散式快取組織上處置壓縮資料之技術
JP6746645B2 (ja) 共有仮想メモリ
US9323684B2 (en) Dynamic cache and memory allocation for memory subsystems
CN110555895B (zh) 在中排序架构中利用帧间相干性
US20160203580A1 (en) Memory Sharing Via a Unified Memory Architecture
US9524536B2 (en) Compression techniques for dynamically-generated graphics resources
JP6745020B2 (ja) 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置
TW201439963A (zh) 動態再平衡圖型處理器資源的方法、裝置與系統
JP6386099B2 (ja) 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
JP2016103288A (ja) カラーバッファ圧縮
TW201428683A (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
JP2015507407A (ja) ビデオエンコーディングシステムにおける集積メタデータ挿入システム及び方法
RU2635255C2 (ru) Системный когерентный кэш с возможностью фрагментации/дефрагментации
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング
CN104272285B (zh) 用于渲染图形应用程序的方法和装置
US9576139B2 (en) Techniques for a secure graphics architecture

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees