CN110235110A - 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 - Google Patents
当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 Download PDFInfo
- Publication number
- CN110235110A CN110235110A CN201880009067.8A CN201880009067A CN110235110A CN 110235110 A CN110235110 A CN 110235110A CN 201880009067 A CN201880009067 A CN 201880009067A CN 110235110 A CN110235110 A CN 110235110A
- Authority
- CN
- China
- Prior art keywords
- metadata
- memory
- entry
- caches
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
所揭示的方面涉及当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲。提供一种包含高速缓冲存储器及压缩存储器系统的基于处理器的系统。当高速缓冲存储条目从所述高速缓冲存储器逐出时,高速缓冲存储数据及与所述经逐出高速缓冲存储条目相关联的虚拟地址经提供至所述压缩存储器系统。所述压缩存储器系统读取与所述经逐出高速缓冲存储条目的所述虚拟地址相关联的元数据以确定所述压缩存储器系统中的映射至所述经逐出高速缓冲存储条目的物理地址。如果所述元数据不可获得,那么所述压缩存储器系统在所述压缩存储器系统中的新的可获得物理地址处存储所述经逐出高速缓冲存储数据而不等待所述元数据。因此,缓冲所述经逐出高速缓冲存储数据以避免或减少停顿写入操作是不必要的。
Description
优先权申请案
本申请案主张2017年1月31日申请且名为“当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲(REDUCING OR AVOIDING BUFFERING OF EVICTED CACHE DATA FROM AN UNCOMPRESSEDCACHE MEMORY IN A COMPRESSION MEMORY SYSTEM WHEN STALLED WRITE OPERATIONSOCCUR)”的第15/420,667号美国专利申请案的优先权,所述美国专利申请案的内容的全文以引用的方式并入本文中。
技术领域
本发明的科技大体上涉及计算机存储器系统,且更具体地说,涉及经配置以压缩及解压缩存储于压缩系统存储器中及从压缩系统存储器读取的数据的压缩存储器系统。
背景技术
随着由常规基于处理器的系统执行的应用程序大小及复杂度增加,存储器容量要求可能会增加。存储器大小可在基于处理器的系统中增加以增加存储器容量。然而,增加存储器大小可能需要增加用于提供额外存储器的区域。举例来说,提供额外存储器及/或较宽存储器寻址路径以增加存储器大小可能会引发在增加成本及/或用于集成电路(IC)上的存储器的额外区域方面的损失。另外,增加存储器容量可能会增加功率消耗及/或影响基于处理器的系统的整体系统性能。因此,一种增加基于处理器的系统的存储器容量而不必增加存储器大小的方法是经由数据压缩的使用。数据压缩系统可用于基于处理器的系统中以按压缩格式存储数据,因此增加有效存储器容量而不增加物理存储器容量。
在一些常规数据压缩系统中,压缩引擎经提供以压缩待写入至主要系统存储器的数据。在执行数据压缩之后,压缩引擎将经压缩数据写入至系统存储器。因为有效存储器容量大于实际存储器大小,所以虚拟至物理地址翻译经执行以将经压缩数据写入至系统存储器。就此来说,一些常规数据压缩系统另外将经压缩数据以及“元数据”写入至系统存储器。元数据为含有经压缩数据的虚拟地址至实际上存储经压缩数据的系统存储器中的物理地址的映射的数据。然而,元数据的使用可能会导致当高速缓冲存储数据从高速缓冲存储器逐出以存储于系统存储器中时停顿处理器的风险增加。举例来说,在其中不同大小块经跟踪以供用于存储经压缩数据的数据压缩方案中,至系统存储器的写入操作(例如,由来自高速缓冲存储器的逐出引起)可能需要查询系统存储器以确定用于存储经压缩数据的先前使用的块是否可被再使用。由于固有存储器时延,以此方式存取元数据可能会导致在检索元数据时处理器停顿。
用于避免处理器停顿的一个替代方案是提供逐出缓冲器以存储来自高速缓冲存储器的经逐出高速缓冲存储数据。但是,此方法可能会消耗物理处理器芯片上的额外区域。因此,需要提供用于在最小化缓冲器大小时避免停顿的更高效机制。
发明内容
本发明的方面涉及当停顿写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲。在本文中所揭示的示范性方面中,提供一种包含高速缓冲存储器及压缩存储器系统的基于处理器的系统。当高速缓冲存储条目从高速缓冲存储器逐出时,高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址经提供至压缩存储器系统。压缩存储器系统从元数据高速缓冲存储器读取与经逐出高速缓冲存储条目的虚拟地址相关联的元数据。元数据高速缓冲存储器含有在压缩系统存储器中的元数据电路中的元数据条目的高速缓冲存储子集。元数据用以存取压缩存储器系统中的压缩系统存储器中的物理地址,使得经逐出高速缓冲存储数据存储于对应于经逐出高速缓冲存储数据的虚拟地址的物理地址中以供未来存取。如果元数据可从元数据高速缓冲存储器获得,那么压缩存储器系统基于所读取元数据在压缩系统存储器中的物理地址处存储经逐出高速缓冲存储数据。然而,如果元数据不可从元数据高速缓冲存储器获得,那么压缩存储器系统在压缩系统存储器中的新的可获得物理地址处存储经逐出高速缓冲存储数据而不等待来自压缩系统存储器中的元数据电路的元数据。因此,缓冲经逐出高速缓冲存储数据以避免或减少处理器停顿写入操作是不必要的。然而,与新物理地址相关联的元数据经缓冲使得当元数据变得可从元数据电路获得时,与旧元数据相关联的旧物理地址可经释放以供未来用以存储新的经压缩数据。元数据电路是以与新物理地址相关联的新元数据更新,使得对于所述虚拟地址的未来存取将在压缩系统存储器中的正确的新物理地址处获得经压缩数据。以此方式,缓冲要求减少,这是因为元数据的存储器大小小于经逐出高速缓冲存储条目的大小,由此经由缓冲经逐出高速缓冲存储数据而减少区域及功率消耗。
就此来说,在一个示范性方面中,提供在基于处理器的系统中的压缩电路。响应于高速缓冲存储器中的高速缓冲存储条目的逐出,压缩电路经配置以接收未压缩高速缓冲存储数据及与高速缓冲存储器中的经逐出高速缓冲存储条目相关联的虚拟地址。压缩电路还经配置以将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据。压缩电路还经配置以从与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据高速缓冲存储器读取第一元数据。元数据高速缓冲存储器包括各自由虚拟地址加索引的多个元数据高速缓冲存储条目。多个元数据高速缓冲存储条目当中的每一元数据高速缓冲存储条目包括与压缩系统存储器中的物理地址相关联的元数据。压缩电路还经配置以将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中。元数据电路包括各自由虚拟地址加索引的多个元数据条目,多个元数据条目当中的每一元数据条目包括与压缩系统存储器中的物理地址相关联的元数据。响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得,压缩电路还经配置以从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引,基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据,在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据,及在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据。
在另一示范性方面中,提供从经逐出高速缓冲存储条目逐出高速缓冲存储数据至压缩系统存储器的方法。方法包括从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址。方法还包括将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据。方法还包括从与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据高速缓冲存储器读取第一元数据。方法还包括将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中。响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得,方法还包括从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引,基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据,在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据,及在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据。
在另一示范性方面中,提供基于处理器的系统。基于处理器的系统包括处理器核心,其经配置以发出存储器读取操作及存储器写入操作。基于处理器的系统还包括元数据高速缓冲存储器,其包括各自由虚拟地址加索引的多个元数据高速缓冲存储条目,多个元数据高速缓冲存储条目当中的每一元数据高速缓冲存储条目包括与压缩系统存储器中的物理地址相关联的第一元数据。压缩系统存储器包括各自可由物理地址寻址且各自经配置以存储经压缩数据的多个存储器条目。压缩系统存储器还包括元数据电路,其包括各自由虚拟地址加索引的多个元数据条目。多个元数据条目当中的每一元数据条目包括与压缩系统存储器中的物理地址相关联的第二元数据。基于处理器的系统还包括压缩电路。压缩电路经配置以响应于高速缓冲存储器中的高速缓冲存储条目的逐出,从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址,将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据,从与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据高速缓冲存储器读取第一元数据,及基于与经逐出高速缓冲存储条目相关联的虚拟地址将第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中。响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得,压缩电路经进一步配置以从自由存储器块列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引,基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据,在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据,及在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据。
在另一示范性方面中,提供在基于处理器的系统中的压缩电路。压缩电路包括用于从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址的装置。压缩电路还包括用于将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据的装置。压缩电路还包括用于从元数据高速缓冲存储器读取与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据的装置。压缩电路还包括用于将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中的装置。响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得,压缩电路还包括用于从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引的装置,用于基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据的装置,用于在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据的装置,及用于在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据的装置。
在另一示范性方面中,提供非暂时性计算机可读媒体,其上存储有计算机可执行指令,计算机可执行指令在执行时使得处理器从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址。计算机可执行指令在执行时还使得处理器将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据。计算机可执行指令在执行时还使得处理器从元数据高速缓冲存储器读取与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据。计算机可执行指令在执行时还使得处理器将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中。响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得,计算机可执行指令在执行时还使得处理器从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引,基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据,在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据,及在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据。
附图说明
图1为示范性基于处理器的系统的示意图,示范性基于处理器的系统包含经配置以执行以下操作的压缩存储器系统:压缩来自高速缓冲存储器中的经逐出高速缓冲存储条目的高速缓冲存储数据;及读取用以存取压缩系统存储器中的物理地址以写入经压缩逐出高速缓冲存储数据的元数据;
图2为绘示图1中的基于处理器的系统的示范性过程的流程图,示范性过程为:从高速缓冲存储器逐出高速缓冲存储条目;压缩来自经逐出高速缓冲存储条目的高速缓冲存储数据;及在从经逐出高速缓冲存储条目的虚拟地址至压缩系统存储器中的其物理地址的读取元数据映射所确定的压缩系统存储器中的物理地址处写入经压缩高速缓冲存储数据;
图3为示范性基于处理器的系统的示意图,示范性基于处理器的系统包含包括经配置以执行以下操作的压缩电路的存储器系统:压缩来自高速缓冲存储器中的经逐出高速缓冲存储条目的经逐出高速缓冲存储数据;及如果用以将经逐出高速缓冲存储条目的虚拟地址映射至压缩系统存储器中的物理地址的元数据不可获得,那么在压缩系统存储器中的新物理地址处存储经压缩逐出高速缓冲存储数据,以避免必须缓冲经逐出高速缓冲存储数据直到元数据变得可获得为止;
图4为绘示在图3中的压缩存储器系统中执行的示范性高速缓冲存储逐出过程的流程图,示范性高速缓冲存储逐出过程包含压缩来自经逐出高速缓冲存储条目的经逐出高速缓冲存储数据,及在压缩系统存储器中存储经压缩逐出高速缓冲存储数据而不缓冲经逐出高速缓冲存储数据;
图5为绘示在图3的压缩存储器系统中执行的存储器读取操作的示范性过程的流程图,示范性过程用于基于使用元数据确定的物理地址在压缩系统存储器中的物理地址处读取经压缩的数据,及响应于元数据高速缓冲存储未命中而更新映射至存储器读取操作的虚拟地址的元数据高速缓冲存储器中的条目;
图6为绘示图3中的基于处理器的系统中的示范性存储器写入操作的流程图;且
图7为例如图3中的基于处理器的系统的示范性基于处理器的系统的框图,示范性基于处理器的系统包含存储器系统,存储器系统经配置以如果用以映射压缩系统存储器中的经逐出高速缓冲存储条目的虚拟地址的元数据不可获得,那么在压缩系统存储器中的新物理地址处存储经压缩逐出高速缓冲存储数据,以避免必须缓冲经逐出高速缓冲存储数据直到元数据变得可获得为止。
具体实施方式
现在参考图式,描述本发明的若干示范性方面。词语“示范性”在本文中用以意指“充当实例、例子或说明”。未必将本文中被描述为“示范性”的任何方面认作优选或优于其它方面。
本发明的方面涉及当停顿的写入操作发生时减少或避免缓冲来自压缩存储器中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据。在本文中所揭示的示范性方面中,提供一种包含高速缓冲存储器及压缩存储器系统的基于处理器的系统。当高速缓冲存储条目从高速缓冲存储器逐出时,高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址经提供至压缩存储器系统。压缩存储器系统从元数据高速缓冲存储器读取与经逐出高速缓冲存储条目的虚拟地址相关联的元数据。元数据高速缓冲存储器含有在压缩系统存储器中的元数据电路中的元数据条目的高速缓冲存储子集。元数据用以存取压缩存储器系统中的压缩系统存储器中的物理地址,使得经逐出高速缓冲存储数据存储于对应于经逐出高速缓冲存储数据的虚拟地址的物理地址中以供未来存取。如果元数据可从元数据高速缓冲存储器获得,那么压缩存储器系统基于所读取元数据在压缩系统存储器中的物理地址处存储经逐出高速缓冲存储数据。然而,如果元数据不可从元数据高速缓冲存储器获得,那么压缩存储器系统在压缩系统存储器中的新的可获得物理地址处存储经逐出高速缓冲存储数据而不等待来自压缩系统存储器中的元数据电路的元数据。因此,缓冲经逐出高速缓冲存储数据以避免或减少处理器停顿写入操作是不必要的。然而,与新物理地址相关联的元数据经缓冲使得当元数据变得可从元数据电路获得时,与旧元数据相关联的旧物理地址可经释放以供未来用以存储新的经压缩数据。元数据电路是以与新物理地址相关联的新元数据更新,使得对于所述虚拟地址的未来存取将在压缩系统存储器中的正确的新物理地址处获得经压缩数据。以此方式,缓冲要求减少,这是因为元数据的存储器大小小于经逐出高速缓冲存储条目的大小,由此经由缓冲经逐出高速缓冲存储数据而减少区域及功率消耗。
在论述包含压缩存储器系统的基于处理器的系统的实例(其可在图3处开始读取用于确定压缩系统存储器中的物理地址的元数据以写入经逐出高速缓冲存储数据的情况下当停顿发生时避免来自经逐出高速缓冲存储条目的经逐出高速缓冲存储数据的缓冲)之前,首先描述图1及2。图1绘示经配置以在读取用于确定压缩系统存储器中的物理地址的元数据以写入经逐出高速缓冲存储数据的情况下当停顿发生时缓冲来自经逐出高速缓冲存储条目的经逐出高速缓冲存储数据的基于处理器的系统100。图2描述由图1中的基于处理器的系统100执行的高速缓冲存储逐出过程。
就此来说,图1为包含压缩存储器系统102的示范性基于处理器的系统100的示意图。基于处理器的系统100经配置以在高速缓冲存储器108中的高速缓冲存储条目106(0)至106(N)中按未压缩形式存储高速缓冲存储数据104(0)至104(N)。高速缓冲存储条目106(0)至106(N)可为高速缓冲存储行。举例来说,如图1中所示,高速缓冲存储器108可为包含于处理器110中的2阶(L2)高速缓冲存储器。高速缓冲存储器108可为处理器110中的处理器核心112所私用的私用高速缓冲存储器或在多个处理器核心(包含处理器110中的处理器核心112)之间共享的共享高速缓冲存储器。压缩存储器系统102包含压缩存储器114,压缩存储器114包含经配置以在存储器条目118(0)至118(E)(其可为存储器行)中按压缩形式存储数据的压缩系统存储器116,所述数据是在图1中展示且在本文中被称为经压缩数据120。举例来说,压缩系统存储器116可为双数据速率(DDR)静态随机存取存储器(SRAM)。处理器110经配置以在读取及写入操作中存取压缩系统存储器116以执行软件指令并执行其它处理器操作。
相比于压缩系统存储器116的物理存储器大小,提供在压缩系统存储器116中存储经压缩数据120的能力会增加基于处理器的系统100的存储器容量。处理器110可使用虚拟寻址,其中虚拟至物理地址翻译经执行以有效地寻址压缩系统存储器116中的经压缩数据120而无需了解经压缩数据120的压缩方案及压缩大小。就此来说,压缩电路122经提供于压缩存储器系统102中以压缩来自处理器110的未压缩数据以待写入至压缩系统存储器116中,并解压缩从压缩系统存储器116接收的经压缩数据120以提供呈未压缩形式的此数据至处理器110。压缩电路122包含经配置以压缩来自处理器110的数据以待写入至压缩系统存储器116中的压缩电路124。举例来说,如图1中所示,压缩电路124可经配置以将六十四(64)字节(64B)数据字压缩降至四十八(48)字节(48B)、三十二(32)字节(32B)或十六(16)字节(16B)经压缩数据字,其可存储在宽度小于存储器条目118(0)至118(E)的整个宽度的相应存储器块125(48B)、125(32B)、125(16B)中。如果来自处理器110的未压缩数据不可经压缩降至经配置用于压缩存储器系统102的下一较低大小的存储器块125,那么此未压缩数据未压缩地存储在存储器条目118(0)至118(E)的整个宽度上。举例来说,存储器条目118(0)至118(E)的宽度在此实例中可为64B,其可存储64B存储器块125(64B)。压缩电路122还包含经配置以解压缩来自压缩系统存储器116的经压缩数据120以待提供至处理器110的解压缩电路127。
然而,为在不需要压缩及解压缩的情况下提供较快存储器存取,提供高速缓冲存储器108。高速缓冲存储器108中的高速缓冲存储条目106(0)至106(N)经配置以存储呈未压缩形式的高速缓冲存储数据104(0)至104(N)。高速缓冲存储条目106(0)至106(N)中的每一者可为与存储器条目118(0)至118(E)中的每一者相同的宽度以用于执行高效存储器读取及写入操作。高速缓冲存储条目106(0)至106(N)是由相应虚拟地址(VA)126(0)至126(N)存取,这是因为如上文所论述,压缩存储器系统102提供比在压缩系统存储器116中提供的物理地址空间更多的可寻址存储器空间至处理器110。当处理器110发出用于存储器读取操作的存储器读取请求时,存储器读取请求的虚拟地址用以搜索高速缓冲存储器108以确定用作标签的VA 126(0)至126(N)是否匹配高速缓冲存储条目106(0)至106(N)。如果如此,那么高速缓冲存储命中发生且命中高速缓冲存储条目106(0)至106(N)中的高速缓冲存储数据104(0)至104(N)返回至处理器110而不需要解压缩高速缓冲存储数据104(0)至104(N)。然而,因为高速缓冲存储条目106(0)至106(N)的数目为“N+1”(其小于存储器条目118(0)至118(E)的数目(为“E+1”)),所以高速缓冲存储未命中可发生,其中用于存储器读取请求的高速缓冲存储数据104(0)至104(N)并不含于高速缓冲存储器108中。
因此,继续参看图1,响应于高速缓冲存储未命中,高速缓冲存储器108经配置以提供存储器读取请求的虚拟地址至压缩电路122以从压缩系统存储器116检索数据。就此来说,压缩电路124可首先查询含有元数据高速缓冲存储条目130(0)至130(C)的元数据高速缓冲存储器128,元数据高速缓冲存储条目130(0)至130(C)各自含有由虚拟地址(VA)加索引的元数据132(0)至132(C)。元数据高速缓冲存储器128比压缩系统存储器116更快存取。元数据132(0)至132(C)为用以存取压缩系统存储器116中的物理地址(PA)以对含有用于虚拟地址的经压缩数据的存储器条目118(0)至118(E)进行存取的数据(例如指针或索引)。如果元数据高速缓冲存储器128含有用于存储器读取操作的元数据132(0)至132(C),那么压缩电路124使用元数据132(0)至132(C)以存取压缩系统存储器116中的正确存储器条目118(0)至118(E)以提供对应经压缩的数据120至解压缩电路127。如果元数据高速缓冲存储器128不含有用于存储器读取请求的元数据132(0)至132(C),那么压缩电路124提供用于存储器读取请求的虚拟地址(VA)至含有用于基于处理器的系统100中的虚拟地址空间的全部的对应元数据条目138(0)至138(V)中的元数据136(0)至136(V)的元数据电路134。因此,元数据电路134可由存储器读取请求的虚拟地址线性地寻址。元数据136(0)至136(V)用以存取用于存储器读取请求的压缩系统存储器116中的正确存储器条目118(0)至118(E)以提供对应经压缩的数据120至解压缩电路127。
继续参看图1,解压缩电路127响应于存储器读取请求而接收经压缩的数据120。解压缩电路127将经压缩数据120解压缩成未压缩数据140,其接着可经提供至处理器110。未压缩数据140还存储于高速缓冲存储器108中。然而,如果高速缓冲存储器108不具有可获得的高速缓冲存储条目106(0)至106(N),那么高速缓冲存储器108必须逐出现有高速缓冲存储条目106(0)至106(N)至压缩系统存储器116以为存储未压缩数据140让出空间。就此来说,图2为绘示当从高速缓冲存储器108逐出高速缓冲存储条目106(0)至106(N)时在图1中的基于处理器的系统100中执行的示范性高速缓冲存储逐出过程202的流程图200。
参看图2,作为高速缓冲存储逐出过程202的部分(任务204),高速缓冲存储器108首先发送经逐出高速缓冲存储条目106(0)至106(N)的VA及未压缩高速缓冲存储数据104至压缩电路124。压缩电路124接收经逐出高速缓冲存储条目106(0)至106(N)的VA及未压缩高速缓冲存储数据104。压缩电路124发起对元数据高速缓冲存储器128的元数据读取操作以获得与VA相关联的元数据132(任务206)。在任务206中的元数据读取操作期间、之前或之后,压缩电路124将未压缩高速缓冲存储数据104压缩成经压缩数据120以待存储于压缩系统存储器116中(任务208)。如果对元数据高速缓冲存储器128的元数据读取操作导致未命中(任务210),那么元数据高速缓冲存储器128发出元数据读取操作至压缩系统存储器116中的元数据电路134以获得与VA相关联的元数据136(任务212)。元数据高速缓冲存储器128被停顿(任务214)。因为存取压缩系统存储器116可比处理器110可发出存储器存取操作花费更长的时间,所以从处理器110接收以用于后续存储器写入请求的未压缩数据将必须被缓冲于存储器请求缓冲器142(图1中展示)中,因此消耗压缩电路122中的额外区域及功率以用于操作。另外,处理器110可必须以非所要方式停顿直到元数据136经获得以能够确定对应于VA的压缩系统存储器116中的存储器条目118(0)至118(E)的正确物理地址(PA)以存储经压缩数据120。另外,存储器请求缓冲器142可必须经设定大小以潜在地缓冲大量后续存储器写入请求以避免处理器110停顿。
继续参看图2,在元数据136从元数据电路134返回以更新元数据高速缓冲存储器128(任务216)之后,元数据高速缓冲存储器128将元数据136作为元数据132提供至压缩电路124(任务218)。压缩电路124确定经压缩数据120的新压缩大小是否适合如用以先前存储用于经逐出高速缓冲存储条目106(0)至106(N)的VA的数据的压缩系统存储器116中的相同存储器块大小。举例来说,处理器110可能已更新经逐出高速缓冲存储条目106(0)至106(N)中的高速缓冲存储数据104(0)至104(N),这是由于其最后存储在压缩系统存储器116中。如果需要新存储器块125存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,那么压缩电路124将至与经逐出高速缓冲存储条目106(0)至106(N)的VA相关联的压缩存储器系统102中的当前存储器块125的索引144(图1中展示)再循环至自由列表146以用于再次使用(任务220)。自由列表146含有至压缩系统存储器116中的可获得存储器块125的索引144的列表148(0)至148(L)。压缩电路124接着从自由列表146获得至压缩系统存储器116中的所要存储器块大小的新可获得存储器块125的索引144以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120(任务222)。压缩电路124接着在与从元数据132确定的经逐出高速缓冲存储条目106(0)至106(N)的VA相关联的压缩系统存储器116中的存储器块125中存储经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120。举例来说,元数据132可用于确定物理地址(PA)及偏移以寻址压缩系统存储器116中的存储器条目118(0)至118(E)及其中的存储器块125。替代地,元数据132可为PA及自身偏移。压缩电路124在与经逐出高速缓冲存储条目106(0)至106(N)的VA相关联的压缩系统存储器116中的存储器块125中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,而不管存储器块125为先前指派的存储器块125还是为新指派的存储器块125(任务224)。
继续参看图2,如果新存储器块125经指派给用于经逐出高速缓冲存储条目106(0)至106(N)的VA,那么对应于经逐出高速缓冲存储条目106(0)至106(N)的VA 126(0)至126(N)的元数据高速缓冲存储条目130(0)至130(C)中的元数据132(0)至132(C)基于至新存储器块125的索引144而更新(任务226)。元数据高速缓冲存储器128接着更新对应于元数据高速缓冲存储器128中的VA的元数据条目138(0)至138(V)中的元数据136(0)至136(V)是基于至新存储器块125的索引144(任务228)。
可能需要避免需要提供用以存储存储器写入请求(包含压缩电路122中的高速缓冲存储数据104(0)至104(N)逐出)的存储器请求缓冲器142。就此来说,图3绘示经配置以避免在高速缓冲存储逐出过程期间缓冲来自处理器的后续写入操作的需要的示范性基于处理器的系统300。作为实例,基于处理器的系统300可作为系统单芯片(SoC)352在单一集成电路(IC)350中提供。在此实例中,基于处理器的系统300包含压缩存储器系统302,其包含图1中的基于处理器的系统100中的压缩系统存储器116。在图3中的基于处理器的系统300中提供的处理器110为包含于此实例中的图1中的基于处理器的系统100中的处理器110。处理器110包含先前关于图1所论述的高速缓冲存储器108。基于处理器的系统300还包含与图1中的基于处理器的系统100共同的其它组件,其被展示为具有图1与图3之间的共同元件编号。
如将在下文更详细地论述,图3中的基于处理器的系统300中的压缩存储器系统302包含压缩电路322。压缩电路322包含压缩电路324、解压缩电路327及先前关于图1所描述的元数据高速缓冲存储器128。作为高速缓冲存储逐出过程的部分,压缩电路324经配置以压缩来自经逐出高速缓冲存储条目106(0)至106(N)的未压缩高速缓冲存储数据104以待存储于压缩系统存储器116中。如果与经逐出高速缓冲存储条目106(0)至106(N)相关联的元数据132不可从元数据高速缓冲存储器128获得(即,高速缓冲存储未命中元数据高速缓冲存储器128)以供用于压缩电路324确定用以写入经逐出高速缓冲存储条目106(0)至106(N)的存储器条目118(0)至118(E)的物理地址(PA),那么压缩电路324经配置以从自由列表146获得用以根据经压缩数据120的压缩大小确定压缩系统存储器116中的PA的新索引144。新索引144用以在压缩系统存储器116中的存储器条目118(0)至118(E)中的新的可获得存储器块125中存储经压缩数据120。因此,压缩电路324不一定必须停顿等待与经逐出高速缓冲存储条目106(0)至106(N)相关联的元数据136从元数据电路134返回至元数据高速缓冲存储器128且接着从元数据高速缓冲存储器128返回至压缩电路324,其将如上文在图1中的基于处理器的系统100中所论述另外需要经压缩数据120待缓冲。然而,与新索引144相关联的元数据经缓冲使得当元数据136变得可从元数据电路134获得时,与旧元数据136相关联的旧索引144可经释放以供未来用以在压缩系统存储器116中的可获得存储器块125中存储新的经压缩数据120。元数据高速缓冲存储器128及元数据电路134是以与新索引144相关联的新元数据132、136更新,使得对与新元数据132、136相关联的VA的未来存取将从压缩系统存储器116中的正确位置获得经压缩数据。以此方式,缓冲要求减少,这是因为元数据136的存储器大小小于经逐出高速缓冲存储条目106(0)至106(N)的大小,由此经由缓冲经逐出高速缓冲存储数据而减少区域及功率消耗。
图4为绘示当从高速缓冲存储器108逐出高速缓冲存储条目106(0)至106(N)时在图3中的基于处理器的系统300中执行的示范性高速缓冲存储逐出过程402的流程图400。参看图4,作为高速缓冲存储逐出过程402的部分,高速缓冲存储器108首先发送未压缩高速缓冲存储数据104及经逐出高速缓冲存储条目106(0)至106(N)的相关联VA 126至压缩电路322中的压缩电路324(任务404)。压缩电路324从高速缓冲存储器108接收用于经逐出高速缓冲存储条目106(0)至106(N)的未压缩高速缓冲存储数据104及相关联VA 126。压缩电路324发送请求至元数据高速缓冲存储器128以获得与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据132(任务406)。压缩电路324还将未压缩高速缓冲存储数据104压缩成压缩大小的经压缩数据120以待存储在压缩系统存储器116中(任务408)。举例来说,如图3中所示,压缩电路324可经配置以将六十四(64)字节(64B)数据字压缩降至四十八(48)字节(48B)、三十二(32)字节(32B)或十六(16)字节(16B)经压缩数据字,其可存储在宽度小于存储器条目118(0)至118(E)的整个宽度的相应存储器块125(48B)、125(32B)、125(16B)中。如果来自高速缓冲存储器108的未压缩高速缓冲存储数据104不可经压缩降至经配置用于压缩存储器系统302的下一较低大小的存储器块125,那么此未压缩高速缓冲存储数据104未压缩地存储在存储器条目118(0)至118(E)的整个宽度上。举例来说,存储器条目118(0)至118(E)的宽度在此实例中可为64B,其可存储64B存储器块125(64B)。
继续参看图4,如果元数据132可从元数据高速缓冲存储器128获得(即,高速缓冲存储命中),那么元数据132从元数据高速缓冲存储器128返回至压缩电路324(任务410)。压缩电路324确定经压缩数据120的新压缩大小是否适合如用以先前存储用于经逐出高速缓冲存储条目106(0)至106(N)的VA 126的数据的压缩系统存储器116中的相同存储器块大小。举例来说,处理器110可能已更新经逐出高速缓冲存储条目106(0)至106(N)中的高速缓冲存储数据104(0)至104(N),这是由于其最后存储在压缩系统存储器116中。如果需要新存储器块125存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,那么压缩电路324将至与经逐出高速缓冲存储条目106(0)至106(N)相关联的压缩系统存储器116中的当前存储器块125的索引144再循环或释放至自由列表146以用于再次使用(任务412)。压缩电路324接着从自由列表146获得至压缩系统存储器116中的所要存储器块大小的新可获得存储器块125的索引144以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120(任务414)。压缩电路324接着在与用于经逐出高速缓冲存储条目106(0)至106(N)的元数据132相关联的压缩系统存储器116中的存储器块125中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩的数据120(任务416)。举例来说,元数据132可用于确定物理地址(PA)及偏移以寻址压缩系统存储器116中的存储器条目118(0)至118(E)及其中的存储器块125。替代地,元数据132可为PA及自身偏移。不管存储器块125为先前指派的存储器块125还是为新指派的存储器块125,压缩电路324在与用于经逐出高速缓冲存储条目106(0)至106(N)的元数据132相关联的压缩系统存储器116中的存储器块125中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120(任务416)。如果如所论述由于经压缩数据120的新压缩大小获得新索引144,那么压缩电路324还更新元数据高速缓冲存储器128中的与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据132(任务418),此使得元数据高速缓冲存储器128更新元数据电路134中的与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据136(任务420)。
然而,继续参看图4,如果用于与经逐出高速缓冲存储条目106(0)至106(N)相关联的VA 126的元数据132不可在元数据高速缓冲存储器128中获得(即,高速缓冲存储未命中)(任务422),那么元数据高速缓冲存储器128从压缩系统存储器116中的元数据电路134检索用于与经逐出高速缓冲存储条目106(0)至106(N)相关联的VA 126的元数据136(任务423)。如先前所论述,需要不停顿及也不缓冲用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120。因此,在此实例中,如图4中所示,压缩电路324进行布置以在压缩系统存储器116中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120而不等待元数据136从元数据电路134返回。就此来说,压缩电路324将过程视为如同存储器条目118(0)至118(E)中的新存储器块125需要从自由列表146获得以用以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120。压缩电路324从自由列表146获得至压缩系统存储器116中的所要存储器块大小的新可获得存储器块125的索引144以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120(任务424)。压缩电路324接着在与用于经逐出高速缓冲存储条目106(0)至106(N)的元数据132相关联的压缩系统存储器116中的存储器块125中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120(任务426)。压缩电路324接着在图3中所示的元数据缓冲器354中缓冲与新索引144相关联的元数据132同时在停顿中等待先前元数据136由元数据电路134提供(任务428)。以此方式,与经压缩的数据120相反,缓冲与新索引144相关联的元数据,经压缩的数据120大小较大且可能需要较大缓冲器。
继续参看图4,因为新索引144经获得以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,所以与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据电路134中的元数据条目138(0)至138(V)需要被更新。这是因为元数据136存储于元数据电路134中的对应于经逐出高速缓冲存储条目106(0)至106(N)的VA126的元数据条目138(0)至138(V)中是基于从自由列表146获得的先前旧索引。因此,与存储于对应于经逐出高速缓冲存储条目106(0)至106(N)的VA 126的元数据条目138(0)至138(V)中的元数据136相关联的索引144需要在自由列表146中释放。存储于元数据电路134中的对应于经逐出高速缓冲存储条目106(0)至106(N)的VA 126的元数据条目138(0)至138(V)中的元数据136需要基于从上文所论述的任务414获得的新索引144而更新。就此来说,在元数据136从元数据电路134返回至元数据高速缓冲存储器128(任务430)之后,对应元数据132从元数据高速缓冲存储器128返回至压缩电路324(任务432),压缩电路324从自由列表146释放与返回的元数据132相关联的索引144以使此可供用于未来新存储器块125预留(任务434)。压缩电路324接着基于来自任务423的至与经逐出高速缓冲存储条目106(0)至106(N)的VA126相关联的元数据高速缓冲存储条目130(0)至130(C)中的新获得的索引将新元数据132写入至元数据高速缓冲存储器128(任务436)。元数据132还经更新为与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据电路134中的元数据条目138(0)至138(V)中的元数据136(任务438)。以此方式,对与经逐出高速缓冲存储条目106(0)至106(N)相关联的VA 126的后续存储器存取将根据元数据高速缓冲存储器128中的经更新元数据132及元数据电路134中的对应元数据136被导引至压缩系统存储器116中的正确存储器块125。
图5为绘示响应于高速缓冲存储器108的高速缓冲存储未命中及高速缓冲存储条目106(0)至106(N)从高速缓冲存储器108至压缩系统存储器116的逐出而在图3中的基于处理器的系统300中执行的示范性存储器读取操作过程502的流程图500。就此来说,高速缓冲存储器108经配置以发出对于存储器读取操作的存储器读取请求至压缩电路322(任务504)。存储器读取请求包括待由处理器110读取的压缩系统存储器116中的VA。作为响应,压缩电路322发出具有VA的元数据查询请求至压缩系统存储器116中的元数据电路134以接收与存储器读取请求相关联的元数据136(任务506)。压缩电路322接着从元数据电路134接收与用于存储器读取请求的VA相关联的元数据136(任务508)。压缩电路322使用从元数据电路134接收的与存储器读取请求的VA相关联的元数据136来确定在压缩系统存储器116中的存储器条目118(0)至118(E)的物理地址(PA)及至其中存储器块125的偏移(任务510)。压缩电路322接着存取对应于存储器读取请求的VA的存储器条目118(0)至118(E)的存储器块125以获得用于存储器读取请求的经压缩数据120(任务512)。
继续参看图5,压缩电路322中的解压缩电路327接着将经压缩数据120解压缩成未压缩数据140(任务514)。解压缩电路327提供未压缩数据140至高速缓冲存储器108以插入于可获得高速缓冲存储条目106(0)至106(N)中(任务516)。高速缓冲存储器108在对应于存储器读取请求的VA的可获得高速缓冲存储条目106(0)至106(N)中插入未压缩数据140。
图6为绘示并非为高速缓冲存储逐出的图3中的基于处理器的系统300中的示范性存储器写入过程602的流程图600。就此来说,处理器110经配置以发出对于存储器写入操作的存储器写入请求至压缩电路324(任务604)。存储器写入请求包括被展示为待写入的未压缩数据140的未压缩写入数据及待写入的压缩系统存储器116中的位置的VA。作为响应,压缩电路324将所接收的未压缩数据140压缩成为压缩大小的经压缩数据120的压缩写入数据(任务606)。压缩电路324基于经压缩数据120的压缩大小从自由列表146获得用于压缩系统存储器116中的可获得存储器块125的索引144(任务608)。压缩电路322使用从自由列表146接收的索引144用以确定压缩系统存储器116中的存储器条目118(0)至118(E)的物理地址(PA)及至其中存储器块125的偏移以写入经压缩数据120(任务610)。压缩电路324接着写入元数据136至对应于存储器写入请求的VA的压缩系统存储器116中的元数据电路134中的元数据条目138(0)至138(V)以待在后续存储器读取操作期间对VA进行存取(如上文在图5中所描述)(任务612)。如果基于处理器的系统300包含元数据高速缓冲存储器128,那么压缩电路324还可经配置以更新对应于VA的元数据高速缓冲存储条目130(0)至130(C)的元数据132或创建新元数据高速缓冲存储条目130(0)至130(C)。
在另一示范性方面中,提供在基于处理器的系统中的压缩电路。基于处理器的系统的实例为图3中的基于处理器的系统300。压缩电路的实例为图3中的压缩电路322。压缩电路322包括用于从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址的装置。用于从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址的装置的实例是在参考图3的图4中的任务404中,其中压缩电路324从高速缓冲存储器108接收未压缩高速缓冲存储数据104及用于经逐出高速缓冲存储条目106(0)至106(N)的相关联VA 126。压缩电路322还包括用于将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据的装置。用于将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据的装置的实例包含图3中的压缩电路324,其中作为图4中的任务404中高速缓冲存储逐出过程402的部分,高速缓冲存储器108将未压缩高速缓冲存储数据104及经逐出高速缓冲存储条目106(0)至106(N)的相关联VA 126发送至压缩电路322中的压缩电路324。压缩电路322还包括用于从元数据高速缓冲存储器读取与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据的装置。用于从元数据高速缓冲存储器读取与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据的装置的实例为图3中的压缩电路324,其将请求发送至元数据高速缓冲存储器128以获得与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据132,如图4中的任务406中所示。压缩电路322还包括用于将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中的装置。用于将与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至元数据高速缓冲存储器中的装置的实例为图3中的元数据高速缓冲存储器128,元数据高速缓冲存储器128从压缩系统存储器116中的元数据电路134检索用于与经逐出高速缓冲存储条目106(0)至106(N)相关联的VA 126的元数据136,如图4中的任务423中所示。
压缩电路322在此实例中还包括用于响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得而从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引的装置。用于从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引的装置的实例为图3中的压缩电路324,压缩电路324从自由列表146获得至压缩系统存储器116中的所要存储器块大小的新可获得存储器块125的新索引144以存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,也如在图4中的任务414中所论述。压缩电路322还包括用于基于所获得的索引在压缩系统存储器中的新物理地址处的存储器条目处的新存储器块中存储经压缩数据的装置,及用于响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得而在元数据缓冲器中存储与新存储器块的新物理地址相关联的新元数据的装置。用于基于所获得的索引在压缩系统存储器中的新物理地址的存储器条目处的新存储器块中存储经压缩数据的装置的实例为图3中的压缩电路324,压缩电路324在与用于经逐出高速缓冲存储条目106(0)至106(N)的元数据132相关联的压缩系统存储器116中的存储器块125中存储用于经逐出高速缓冲存储条目106(0)至106(N)的经压缩数据120,也如图4中的任务416中所展示。压缩电路322还包括用于响应于在将未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据之后与同经逐出高速缓冲存储条目相关联的虚拟地址相关联的第一元数据不可从元数据高速缓冲存储器获得而在与同在压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据的装置。用于在与同压缩系统存储器中的元数据电路中的经逐出高速缓冲存储条目相关联的虚拟地址相关联的元数据条目中存储来自元数据缓冲器的新元数据的装置的实例为图3中的压缩电路324,压缩电路324更新元数据高速缓冲存储器128中与经逐出高速缓冲存储条目106(0)至106(N)的VA126相关联的元数据132,此使得元数据高速缓冲存储器128更新元数据电路134中的与经逐出高速缓冲存储条目106(0)至106(N)的VA 126相关联的元数据136,也如图4中的任务418及420中所论述。
包含经配置以缓冲用于确定用以写入逐出高速缓冲存储数据的压缩系统存储器中的物理地址的元数据,并在读取元数据的情况下当停顿发生时避免缓冲来自经逐出高速缓冲存储条目的经逐出高速缓冲存储数据的压缩电路的基于处理器的系统可经提供于任一基于处理器的装置中或集成至任一基于处理器的装置中。实例(非限制性地)包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板计算机、平板手机、服务器、计算机、便携式计算机、移动计算装置、可穿戴式计算装置(例如,智能手表、健康或健身跟踪器、护目镜等)、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人机及多旋翼飞行器。
就此来说,图7绘示包含处理器702的基于处理器的系统700的实例,处理器702包含一或多个处理器核心704。基于处理器的系统700经提供于IC 706中。IC 706可包含于SoC708中或作为实例被提供为SoC 708。处理器702包含其经逐出高速缓冲存储条目经写入至作为压缩存储器系统718中的压缩存储器716的部分的压缩系统存储器714的高速缓冲存储器710。举例来说,处理器702可为图3中的处理器110,高速缓冲存储器710可为图3中的高速缓冲存储器108,且图3中的压缩存储器系统302可为压缩存储器系统718,这是作为非限制性实例。就此来说,压缩系统存储器714可为图3中的压缩系统存储器116。压缩电路720经提供用于压缩及解压缩来自及至压缩系统存储器714的数据。压缩电路720经配置以缓冲用于确定用以写入逐出高速缓冲存储数据的压缩系统存储器中的物理地址的元数据,并在读取元数据的情况下当停顿发生时避免缓冲来自经逐出高速缓冲存储条目的经逐出高速缓冲存储数据,压缩电路720可经提供于任一基于处理器的装置中或集成至任一基于处理器的装置中。压缩电路720可经提供于处理器702中或提供于处理器702的外部并经由共享或私用总线以通信方式耦合至处理器702。作为非限制性实例,压缩电路720可为图3中的压缩电路322。
处理器702耦合至系统总线722,以相互耦合包含于基于处理器的系统700中的主控装置及从属装置。处理器702还可通过经由系统总线722交换地址、控制及数据信息而与其它装置通信。尽管图7中未绘示,但可提供多个系统总线722,其中每一系统总线722构成不同网状架构。举例来说,处理器702可将总线交易请求传达至作为从属装置的实例的压缩存储器系统718。其它主控装置及从属装置可连接至系统总线722。如图7中所绘示,这些装置可包含一或多个输入装置724。输入装置724可包含任何类型的输入装置,包含(但不限于)输入键、开关、语音处理器等。输入装置724可包含于IC706中或在IC 706外部,或两者的组合。可连接至系统总线722的其它装置还可包含一或多个输出装置726及一或多个网络接口装置728。输出装置726可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。输出装置726可包含于IC 706中或在IC 706外部,或两者的组合。网络接口装置728可为任何经配置以允许至网络730及来自网络730的数据交换的装置。网络730可为任一类型的网络,包含(但不限于)有线或无线网络、私用或公用网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络及互联网。网络接口装置728可经配置以支持任何类型的所要通信协议。
可连接至系统总线722的其它装置还可包含作为实例的一或多个显示控制器732。处理器702可经配置以经由系统总线722存取显示控制器732以控制发送至一或多个显示器734的信息。显示控制器732可发送待经由一或多个视频处理器736显示的信息至显示器734,一或多个视频处理器736处理待以适合于显示器734的格式显示的信息。显示控制器732及/或视频处理器736可包含于IC 706中或在IC 706外部,或两者的组合。
所属领域的技术人员将进一步了解,结合本文中所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可被实施为电子硬件、存储于存储器中或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文中所描述的主控装置及从属装置可用于任何电路、硬件组件、IC或IC芯片中。本文中所揭示的存储器可为任何类型及大小的存储器,且可经配置以存储所要的任何类型的信息。为了清楚地说明此可互换性,上文已大体上在功能性方面描述了各种说明性组件、块、模块、电路及步骤。如何实施此功能性取决于特定应用、设计选择及/或强加于整个系统的设计约束。对于每一特定应用来说,所属领域的技术人员可以变化的方式实施所描述的功能性,但不应将这些实施决策解释为导致脱离本发明的范围。
可由经设计以执行本文中所描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合实施或执行结合本文中所揭示的方面而描述的各种说明性逻辑块、模块及电路。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置。
本文中所揭示的方面可体现于硬件及存储于硬件中的指令中,且可驻留于例如随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合至处理器,使得处理器可从存储媒体读取信息及将信息写入至存储媒体。在替代方案中,存储媒体可与处理器成一体。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器及存储媒体可作为离散组件而驻留于远程站、基站或服务器中。
还应注意,描述本文中在示范性方面中的任一者中所描述的操作步骤以提供实例及论述。可以除了所说明的序列以外的众多不同序列来执行所描述的操作。此外,描述于单一操作步骤中的操作可实际上以数个不同步骤执行。另外,可组合示范性方面中所论述的一或多个操作步骤。应理解,对于所属领域的技术人员来说容易显而易见的是,流程图图式中所绘示的操作步骤可容许众多不同修改。所属领域的技术人员还将理解,可使用各种不同科技及技术中的任一者表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片。
提供本发明的先前描述以使任何所属领域的技术人员能够制作或使用本发明。在不脱离本发明的精神或范围的情况下,对本发明的各种修改对于所属领域的技术人员来说将容易显而易见,且本文中所定义的一般原理可应用于其它变化。因此,本发明并不意图限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广泛范围。
Claims (22)
1.一种在基于处理器的系统中的压缩电路,所述压缩电路经配置以响应于高速缓冲存储器中的高速缓冲存储条目的逐出:
接收所述高速缓冲存储器中的未压缩高速缓冲存储数据及与所述经逐出高速缓冲存储条目相关联的虚拟地址;
将所述未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据;
从与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据高速缓冲存储器读取第一元数据,所述元数据高速缓冲存储器包括各自由虚拟地址加索引的多个元数据高速缓冲存储条目,所述多个元数据高速缓冲存储条目当中的每一元数据高速缓冲存储条目包括与压缩系统存储器中的物理地址相关联的元数据;
将与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的第二元数据从所述压缩系统存储器中的元数据电路读取至所述元数据高速缓冲存储器中,所述元数据电路包括各自由虚拟地址加索引的多个元数据条目,所述多个元数据条目当中的每一元数据条目包括与所述压缩系统存储器中的物理地址相关联的元数据;
响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得,所述压缩电路经进一步配置以:
从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引;及
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目处的所述新存储器块中存储所述经压缩数据;
在元数据缓冲器中存储与所述新存储器块的所述新物理地址相关联的新元数据;及
在与同所述压缩系统存储器中的所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据条目中存储来自所述元数据缓冲器的所述新元数据。
2.根据权利要求1所述的压缩电路,其经进一步配置以响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得:
从所述压缩系统存储器中的所述元数据电路接收与所述新物理地址相关联的所述元数据;及
释放在所述自由列表中的与同所述新物理地址相关联的来自所述压缩系统存储器中的所述元数据电路的所述所接收元数据相关联的所述索引。
3.根据权利要求1所述的压缩电路,其中所述压缩电路经配置以在由与所述经逐出高速缓冲存储条目相关联的所述所接收元数据指示的所述压缩系统存储器中的所述物理地址处的所述存储器块中存储所述经压缩数据。
4.根据权利要求1所述的压缩电路,其经进一步配置以响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
在与同与所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述所接收元数据相关联的所述压缩系统存储器中的物理地址处的存储器条目中的存储器块中存储所述经压缩数据。
5.根据权利要求4所述的压缩电路,其经进一步配置以响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
确定在与同与所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据相关联的所述压缩系统存储器中的所述物理地址处的所述存储器块是否能够容纳经压缩数据的所述压缩大小;
响应于确定所述存储器块不能够容纳经压缩数据的所述压缩大小:
从自由列表获得至与在新物理地址处的存储器条目相关联的新存储器块的索引;
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目中的所述新存储器块中存储所述经压缩数据;
释放所述自由列表中的与同所述经逐出高速缓冲存储条目相关联的所述元数据相关联的所述索引;及
在与同所述元数据高速缓冲存储器中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据高速缓冲存储条目中存储与所述所获得的索引相关联的新元数据。
6.根据权利要求5所述的压缩电路,其经进一步配置以响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
在与同所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据条目中存储与所述所获得的索引相关联的所述新元数据。
7.根据权利要求1所述的压缩电路,其中响应于存储器读取操作的高速缓冲存储未命中,所述压缩电路经进一步配置以:
接收包括用于所述存储器读取操作的虚拟地址的存储器读取请求;
确定与用于所述存储器读取操作的所述虚拟地址相关联的元数据是否含于所述元数据高速缓冲存储器中的元数据高速缓冲存储条目中;
如果与用于所述存储器读取操作的所述虚拟地址相关联的元数据含于所述元数据高速缓冲存储器中的元数据高速缓冲存储条目中,那么:
提供与所述元数据相关联的所述物理地址至所述压缩系统存储器;
从在与所述压缩系统存储器中的所述元数据相关联的所述物理地址处的存储器条目接收经压缩数据;及
将所述所接收的经压缩数据解压缩成未压缩数据。
8.根据权利要求1所述的压缩电路,其中响应于存储器读取操作的高速缓冲存储未命中,所述压缩电路经进一步配置以响应于与用于所述存储器读取操作的所述虚拟地址相关联的所述第一元数据不含于所述元数据高速缓冲存储器中:
提供存储器读取请求的所述虚拟地址至所述压缩系统存储器;
从映射至所述虚拟地址的所述压缩系统存储器中的物理地址处的存储器条目接收经压缩数据;
从所述压缩系统存储器接收与映射至所述虚拟地址的所述压缩系统存储器中的所述物理地址相关联的元数据;
将所述所接收的经压缩数据解压缩成未压缩数据;及
在所述元数据高速缓冲存储器中的可获得元数据高速缓冲存储条目中存储与映射至所述虚拟地址的所述压缩系统存储器中的所述物理地址相关联的所述元数据。
9.根据权利要求1所述的压缩电路,其经进一步配置以响应于存储器写入操作:
接收包括虚拟地址及用于所述存储器写入操作的写入数据的存储器写入请求;
将所述写入数据压缩成压缩大小的压缩写入数据;
确定具有用于所述压缩写入数据的所述压缩大小的可获得存储器块的所述压缩系统存储器中的存储器条目的物理地址;及
写入所述压缩写入数据至所述经确定物理地址的所述存储器条目中的所述可获得存储器块。
10.根据权利要求9所述的压缩电路,其经进一步配置以响应于所述存储器写入操作:
在与用于所述存储器写入请求的所述虚拟地址相关联的所述元数据高速缓冲存储器中的元数据高速缓冲存储条目中存储元数据,所述元数据与用于所述存储器写入操作的所述经确定物理地址相关联。
11.根据权利要求1所述的压缩电路,其集成至基于处理器的系统中。
12.根据权利要求1所述的压缩电路,其集成至包括处理器的系统单芯片SoC中。
13.根据权利要求1所述的压缩电路,其集成至由下列各者所构成的群组中选出的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;全球定位系统GPS装置;移动电话;蜂窝电话;智能电话;会话发起协议SIP电话;平板计算机;平板手机;服务器;计算机;便携式计算机;移动计算装置;可穿戴式计算装置(例如,智能手表、健康或健身跟踪器、护目镜等);桌上型计算机;个人数字助理PDA;监视器;计算机监视器;电视;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;汽车;车辆组件;航空电子系统;无人机;及多旋翼飞行器。
14.一种从经逐出高速缓冲存储条目逐出高速缓冲存储数据至压缩系统存储器的方法,其包括:
从高速缓冲存储器接收未压缩高速缓冲存储数据及与所述经逐出高速缓冲存储条目相关联的虚拟地址;
将所述未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据;
从与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据高速缓冲存储器读取第一元数据;
将与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的第二元数据从所述压缩系统存储器中的元数据电路读取至所述元数据高速缓冲存储器中;
响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得,所述方法进一步包括:
从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引;
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目处的所述新存储器块中存储所述经压缩数据;
在元数据缓冲器中存储与所述新存储器块的所述新物理地址相关联的新元数据;及
在与同所述压缩系统存储器中的所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据条目中存储来自所述元数据缓冲器的所述新元数据。
15.根据权利要求14所述的方法,其进一步包括响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得:
从所述压缩系统存储器中的所述元数据电路接收与所述新物理地址相关联的所述元数据;及
释放在所述自由列表中的与同所述新物理地址相关联的来自所述压缩系统存储器中的所述元数据电路的所述所接收元数据相关联的所述索引。
16.根据权利要求14所述的方法,其进一步包括响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
在与同与所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述所接收元数据相关联的所述压缩系统存储器中的物理地址处的存储器条目中的存储器块中存储所述经压缩数据。
17.根据权利要求15所述的方法,其进一步包括响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
确定在与同与所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据相关联的所述压缩系统存储器中的所述物理地址处的所述存储器块是否能够容纳所述经压缩数据的所述压缩大小;
响应于确定所述存储器块不能够容纳所述经压缩数据的所述压缩大小:
从自由列表获得至与在新物理地址处的存储器条目相关联的新存储器块的索引;
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目中的所述新存储器块中存储所述经压缩数据;
释放所述自由列表中的与同所述经逐出高速缓冲存储条目相关联的所述元数据相关联的所述索引;及
在与同所述元数据高速缓冲存储器中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据高速缓冲存储条目中存储与所述所获得的索引相关联的新元数据。
18.根据权利要求17所述的方法,其进一步包括响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
在与同所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据条目中存储与所述所获得的索引相关联的所述新元数据。
19.一种基于处理器的系统,其包括:
处理器核心,其经配置以发出存储器读取操作及存储器写入操作;
元数据高速缓冲存储器,其包括各自由虚拟地址加索引的多个元数据高速缓冲存储条目,所述多个元数据高速缓冲存储条目当中的每一元数据高速缓冲存储条目包括与压缩系统存储器中的物理地址相关联的第一元数据,所述压缩系统存储器包括:
多个存储器条目,各自能由物理地址寻址且各自经配置以存储经压缩数据;及
元数据电路,其包括各自由虚拟地址加索引的多个元数据条目,所述多个元数据条目当中的每一元数据条目包括与所述压缩系统存储器中的物理地址相关联的第二元数据;及
压缩电路,其经配置以响应于高速缓冲存储器中的高速缓冲存储条目的逐出:
从所述高速缓冲存储器接收未压缩高速缓冲存储数据及与所述经逐出高速缓冲存储条目相关联的所述虚拟地址;
将所述未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据;
从与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据高速缓冲存储器读取所述第一元数据;及
基于与所述经逐出高速缓冲存储条目相关联的所述虚拟地址将所述第二元数据从所述压缩系统存储器中的所述元数据电路读取至所述元数据高速缓冲存储器中;
响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得,所述压缩电路经进一步配置以:
从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引;
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目处的所述新存储器块中存储所述经压缩数据;
在元数据缓冲器中存储与所述新存储器块的所述新物理地址相关联的新元数据;及
在与同所述压缩系统存储器中的所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述元数据条目中存储来自所述元数据缓冲器的所述新元数据。
20.根据权利要求19所述的基于处理器的系统,其中所述压缩电路经进一步配置以响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据能从所述元数据高速缓冲存储器获得:
在与同与所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述所接收元数据相关联的所述压缩系统存储器中的物理地址处的存储器条目中的存储器块中存储所述经压缩数据。
21.一种在基于处理器的系统中的压缩电路,其包括:
用于从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址的装置;
用于将所述未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据的装置;
用于从与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据高速缓冲存储器读取第一元数据的装置;
用于将与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至所述元数据高速缓冲存储器中的装置;
响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得:
用于从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引的装置;
用于基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目中的所述新存储器块中存储所述经压缩数据的装置;
用于在元数据缓冲器中存储与所述新存储器块的所述新物理地址相关联的新元数据的装置;及
用于在与同所述压缩系统存储器中的所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据条目中存储来自所述元数据缓冲器的所述新元数据的装置。
22.一种非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在执行时使得处理器:
从高速缓冲存储器接收未压缩高速缓冲存储数据及与经逐出高速缓冲存储条目相关联的虚拟地址;
将所述未压缩高速缓冲存储数据压缩成压缩大小的经压缩数据;
从与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据高速缓冲存储器读取第一元数据;
将与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的第二元数据从压缩系统存储器中的元数据电路读取至所述元数据高速缓冲存储器中;及
响应于在将所述未压缩高速缓冲存储数据压缩成所述压缩大小的所述经压缩数据之后与同所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的所述第一元数据不能从所述元数据高速缓冲存储器获得:
从自由列表获得至与新物理地址相关联的存储器条目中的新存储器块的索引;
基于所述所获得的索引在所述压缩系统存储器中的所述新物理地址处的所述存储器条目处的所述新存储器块中存储所述经压缩数据;
在元数据缓冲器中存储与所述新存储器块的所述新物理地址相关联的新元数据;及
在与同所述压缩系统存储器中的所述元数据电路中的所述经逐出高速缓冲存储条目相关联的所述虚拟地址相关联的元数据条目中存储来自所述元数据缓冲器的所述新元数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/420,667 | 2017-01-31 | ||
US15/420,667 US10061698B2 (en) | 2017-01-31 | 2017-01-31 | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
PCT/US2018/012760 WO2018144184A1 (en) | 2017-01-31 | 2018-01-08 | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110235110A true CN110235110A (zh) | 2019-09-13 |
Family
ID=61054552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880009067.8A Pending CN110235110A (zh) | 2017-01-31 | 2018-01-08 | 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10061698B2 (zh) |
EP (1) | EP3577566A1 (zh) |
CN (1) | CN110235110A (zh) |
TW (1) | TW201839614A (zh) |
WO (1) | WO2018144184A1 (zh) |
Families Citing this family (2)
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 |
US10678705B2 (en) | 2018-09-13 | 2020-06-09 | Qualcomm Incorporated | External paging and swapping for dynamic modules |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702875B1 (en) * | 2004-11-18 | 2010-04-20 | Sun Microsystems, Inc. | System and method for memory compression |
CN104025061A (zh) * | 2012-01-17 | 2014-09-03 | 高通股份有限公司 | 用于对到物理标记的数据高速缓存的业务进行滤波的方法 |
CN104040509A (zh) * | 2012-01-18 | 2014-09-10 | 高通股份有限公司 | 在有虚拟标识的高速缓冲存储器中确定别名地址的高速缓存命中/未中及相关系统及方法 |
CN104067246A (zh) * | 2012-01-10 | 2014-09-24 | 高通股份有限公司 | 通过物理地址进行的非分配存储器存取 |
US20150193353A1 (en) * | 2014-01-05 | 2015-07-09 | Quantum Corporation | Compressed Level Two Block Buffer Metadata Cache |
WO2015179591A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US20150339228A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US20150339239A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | PROVIDING MEMORY BANDWIDTH COMPRESSION USING COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM |
US20160342530A1 (en) * | 2015-05-20 | 2016-11-24 | Qualcomm Incorporated | Method and apparatus for cache tag compression |
US20170004069A1 (en) * | 2014-03-20 | 2017-01-05 | Hewlett Packard Enterprise Development Lp | Dynamic memory expansion by data compression |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795897B2 (en) | 2002-05-15 | 2004-09-21 | International Business Machines Corporation | Selective memory controller access path for directory caching |
US7636810B2 (en) | 2003-11-26 | 2009-12-22 | Intel Corporation | Method, system, and apparatus for memory compression with flexible in-memory cache |
US8813052B2 (en) | 2005-12-07 | 2014-08-19 | Microsoft Corporation | Cache metadata for implementing bounded transactional memory |
US8700862B2 (en) | 2008-12-03 | 2014-04-15 | Nvidia Corporation | Compression status bit cache and backing store |
US8806101B2 (en) | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US9053018B2 (en) | 2012-06-29 | 2015-06-09 | International Business Machines Corporation | Compressed memory page selection based on a population count of a dataset |
US9141486B2 (en) | 2014-01-15 | 2015-09-22 | Avago Technologies General Ip (Singapore) Pte Ltd | Intelligent I/O cache rebuild in a storage controller |
US9875180B2 (en) | 2014-02-24 | 2018-01-23 | Sandisk Technologies Llc | Systems and methods for managing storage compression operations |
US9870209B2 (en) | 2014-03-28 | 2018-01-16 | Intel Corporation | Instruction and logic for reducing data cache evictions in an out-of-order processor |
WO2015199574A1 (en) | 2014-06-27 | 2015-12-30 | Emc Corporation | Techniques for automatically freeing space in a log-structured storage system |
US9947071B2 (en) | 2014-06-27 | 2018-04-17 | Samsung Electronics Co., Ltd. | Texture pipeline with online variable rate dictionary compression |
WO2016057670A1 (en) | 2014-10-07 | 2016-04-14 | Google Inc. | Hardware-assisted memory compression management using page filter and system mmu |
KR102578689B1 (ko) | 2015-05-21 | 2023-09-15 | 제로포인트 테크놀로지 에이비 | 하이브리드 데이터 압축 및 압축해제를 위한 방법, 장치 및 시스템 |
US20170206172A1 (en) | 2016-01-19 | 2017-07-20 | SK Hynix Inc. | Tehcniques with os- and application- transparent memory compression |
US10453169B2 (en) * | 2016-03-28 | 2019-10-22 | Intel Corporation | Method and apparatus for multi format lossless compression |
US10067881B2 (en) * | 2016-06-15 | 2018-09-04 | Western Digital Technologies, Inc. | Compression and caching for logical-to-physical storage address mapping tables |
US20180173623A1 (en) | 2016-12-21 | 2018-06-21 | Qualcomm Incorporated | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations |
-
2017
- 2017-01-31 US US15/420,667 patent/US10061698B2/en active Active
- 2017-11-29 TW TW106141514A patent/TW201839614A/zh unknown
-
2018
- 2018-01-08 EP EP18701868.4A patent/EP3577566A1/en not_active Withdrawn
- 2018-01-08 CN CN201880009067.8A patent/CN110235110A/zh active Pending
- 2018-01-08 WO PCT/US2018/012760 patent/WO2018144184A1/en unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702875B1 (en) * | 2004-11-18 | 2010-04-20 | Sun Microsystems, Inc. | System and method for memory compression |
CN104067246A (zh) * | 2012-01-10 | 2014-09-24 | 高通股份有限公司 | 通过物理地址进行的非分配存储器存取 |
CN104025061A (zh) * | 2012-01-17 | 2014-09-03 | 高通股份有限公司 | 用于对到物理标记的数据高速缓存的业务进行滤波的方法 |
CN104040509A (zh) * | 2012-01-18 | 2014-09-10 | 高通股份有限公司 | 在有虚拟标识的高速缓冲存储器中确定别名地址的高速缓存命中/未中及相关系统及方法 |
US20150193353A1 (en) * | 2014-01-05 | 2015-07-09 | Quantum Corporation | Compressed Level Two Block Buffer Metadata Cache |
US20170004069A1 (en) * | 2014-03-20 | 2017-01-05 | Hewlett Packard Enterprise Development Lp | Dynamic memory expansion by data compression |
WO2015179591A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US20150339228A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US20150339239A1 (en) * | 2014-05-21 | 2015-11-26 | Qualcomm Incorporated | PROVIDING MEMORY BANDWIDTH COMPRESSION USING COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM |
US20160342530A1 (en) * | 2015-05-20 | 2016-11-24 | Qualcomm Incorporated | Method and apparatus for cache tag compression |
Also Published As
Publication number | Publication date |
---|---|
US20180217930A1 (en) | 2018-08-02 |
TW201839614A (zh) | 2018-11-01 |
EP3577566A1 (en) | 2019-12-11 |
US10061698B2 (en) | 2018-08-28 |
WO2018144184A1 (en) | 2018-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996466B2 (en) | Apparatus, system and method for caching compressed data | |
CN106462496B (zh) | 在基于中央处理单元cpu的系统中使用经压缩存储器控制器cmc来提供存储器带宽压缩 | |
US10169246B2 (en) | Reducing metadata size in compressed memory systems of processor-based systems | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
CN100541451C (zh) | 用于利用灵活的存储器内缓存的存储器压缩方法、系统和装置 | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
US10176090B2 (en) | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems | |
US20160224241A1 (en) | PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM | |
US20240086403A1 (en) | In-memory database (imdb) acceleration through near data processing | |
CN106030549A (zh) | 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统 | |
US10198362B2 (en) | Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems | |
CN103345452B (zh) | 一种在多个缓冲存储器中根据权重信息缓存数据方法 | |
CN110235110A (zh) | 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190913 |