CN109313605A - 基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 - Google Patents
基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 Download PDFInfo
- Publication number
- CN109313605A CN109313605A CN201780033673.9A CN201780033673A CN109313605A CN 109313605 A CN109313605 A CN 109313605A CN 201780033673 A CN201780033673 A CN 201780033673A CN 109313605 A CN109313605 A CN 109313605A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- priority
- cache line
- compressed 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
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage 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/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/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
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
在一方面中,在与例如64字节的高速缓存行大小对准的地址处开始存储高优先级行,并且在通过高优先级行的压缩留下的存储器空间中存储低优先级行。通过所述高优先级行留下的所述空间和因此所述低优先级行本身是通过同样存储在存储器中的指针管理的。以此方式,低优先级行内容可以按需要移动到不同存储器位置。较高优先级经压缩的存储器存取的效率通过移除寻找和存取经压缩的存储器行原本需要的间接性的需求而得到改进,这对于不变的经压缩的内容是尤其有利的。由于放置的完全灵活性指针的使用对于低优先级是有利的,尤其对于例如随着其大小随时间而改变而可能需要在存储器内移动的易变的经压缩的内容而言。
Description
技术领域
本发明的技术大体上涉及在计算机存储器中存储和存取数据,且更具体地说,涉及在基于处理器的系统的存储器中存储和存取经压缩的高优先级和低优先级数据。
背景技术
计算装置在社会中盛行。这些装置可以包含服务器、计算机、蜂窝电话、便携式数字助理(“PDA”)、便携式游戏控制台、掌上型计算机以及其它电子装置。计算装置常规地包含在多种多样的应用中执行计算任务的基于处理器的系统。基于处理器的系统可以包含在设计为在芯片上系统(“SoC”)中一起工作的其它集成电路中,以向用户提供功能。典型的基于处理器的系统包含执行软件指令的一或多个处理器。举例来说,一些软件指令指示处理器从存储器中的位置提取数据、使用所提取的数据执行一或多个处理器操作,以及产生被存储的结果。举例来说,软件指令可以存储在系统中或例如主存储器的一些类型的存储器中。软件指令也可以存储在特定类型的存储器中,例如,允许更快存取的高速缓冲存储器。举例来说,高速缓冲存储器(“高速缓存”)可以是对处理器来说本地的高速缓冲存储器、在处理器块中的处理器之中共享的本地高速缓存、在多个处理器块之中共享的高速缓存,或基于处理器的系统的主存储器。随着基于处理器的系统的复杂度和性能的增加,存储器的存储器容量需求也可能增加。然而,在基于处理器的系统中提供额外存储器容量增加了集成电路上的存储器所需的成本和面积。
作为替代方案,数据压缩是满足未来系统中预期的增加的存储器容量需求的有前景的方法。不幸的是,当直接应用于主存储器时,现有压缩算法并不能很好地转换,这是因为它们需要存储器控制器执行大型计算以定位经压缩的存储器页内的高速缓存行,从而增加存取等待时间且降低系统性能。因此,举例来说,存取存储器中的特定高速缓存行可能需要存取存储器中的元数据以及额外地址计算层,以确定对应于特定高速缓存行的存储器中的经压缩的高速缓存行的位置。这可以增加采用存储器容量压缩的基于处理器的系统的复杂度、成本和等待时间。
相应地,需要克服常规的方法的不足的系统、设备和方法,包含在此提供的方法、系统和设备。
发明内容
以下呈现涉及与本文中所公开的设备和方法相关联的一或多个方面和/或实例的简化概述。因而,不应将以下概述视为涉及所有预期方面和/或实例的详尽概览,也不应认为以下概述识别涉及所有预期方面和/或实例的关键或至关重要的要素,或描绘与任何特定方面和/或实例相关联的范围。相应地,以下概述的唯一目的是以简化形式呈现涉及本文中所公开的设备和方法的一或多个方面和/或实例的某些概念,以先于下文所呈现的详细描述。
在一个方面中,存储器装置包含:存储器存取装置,其经配置以:在较高优先级数据和较低优先级数据之中确定数据的优先级;以压缩格式在第一高速缓存行的第一位置处存储第一较高优先级数据,第一位置是将存储较高优先级数据的未经压缩的格式的高速缓存行存储器地址;确定第一指针,第一指针识别第一高速缓存行的未使用的空间的开始位置;以及在第二位置处以压缩格式存储第一较低优先级数据,其中第二位置开始于开始位置处。
在另一方面中,实施用于启用经压缩的数据的存储和检索的处理装置的存储器装置包括:第一存储器区域,其经配置以存储第一较高优先级经压缩的数据,第一存储器区域是第一大小的;第二存储器区域,其经配置以存储第一较低优先级经压缩的数据,第二存储器区域是第二大小的;以及存储器存取装置,其经配置以:接收读取请求;确定读取请求的较高优先级或较低优先级中的一个;基于较高优先级的确定检索包括第一存储器区域的第一高速缓存行;以及基于较低优先级的确定从第二存储器区域中检索第一较低优先级经压缩的数据。
在再一方面中,用于检索经压缩的数据的方法包括:接收用于经压缩的数据的读取请求,读取请求具有逻辑存储器地址;基于读取请求确定经压缩的数据的优先级;在确定经压缩的数据的优先级是较高优先级之后,从通过逻辑存储器地址指示的第一高速缓存行的第一存储器区域中检索经压缩的数据;在确定经压缩的数据的优先级是较低优先级之后:基于逻辑存储器地址检索指示物理存储器地址的指针;基于物理存储器地址从第一高速缓存行的第二存储器区域中检索经压缩的数据;以及解压缩经压缩的数据。
在再一方面中,用于存储和检索数据的方法,所述方法包括:在第一高速缓存行的第一存储器区域中存储较高优先级经压缩的数据的第一部分;在第一高速缓存行的第二存储器区域中存储较高优先级经压缩的数据的第二部分;在第一存储器区域与第二存储器区域之间在第一高速缓存行的第三存储器区域中存储较低优先级经压缩的数据的第一部分;以及在与第一高速缓存行连续的第二高速缓存行的第四存储器区域中存储较低优先级经压缩的数据的第二部分。
与本文中所公开的设备和方法相关联的其它特征和优点将基于附图和详细描述而对所属领域的技术人员显而易见。
附图说明
随着在结合附图考虑时通过参考以下详细描述更好地理解本发明的方面及其许多附带优点,将容易获得对本发明的方面及其许多附带优点的更全面了解,附图只是为了说明而不是限制本发明而呈现,且其中:
图1是根据本发明的一些实例包含经配置以优化除外面积读取的存储器存取装置的示例性基于处理器的系统的方块图;
图2A到2C是根据本发明的一些实例说明用于较高优先级数据和较低优先级数据的所存储的经压缩的存储器行的示例性存储器配置的图式;
图3是根据本发明的一些实例检索经压缩的数据的示例性方法;
图4是根据本发明的一些实例存储和检索经压缩的数据的示例性方法;以及
图5说明其中可以有利地采用本发明的方面的示例性计算装置。
根据惯例,附图描绘的特征可不按比例绘制。相应地,为了清晰起见,可能任意扩大或减小所描绘特征的尺寸。根据惯例,为了清晰起见,简化了一些附图。因此,附图可能不描绘特定设备或方法的全部组件。另外,贯穿说明书和图,相似参考标号表示相似特征。
具体实施方式
本文中所公开的示例性方法、设备和系统解决行业需要以及其它先前未经识别的需要,且缓解常规方法、设备和系统的缺点。举例来说,用于数据压缩的有效的封装和流式传输机构将经压缩的数据划分成高优先级和低优先级(非频繁且等待时间耐受行被定义为低优先级)并且将高优先级行和低优先级行一起封装在存储器中。高优先级行放置(压缩)在与它们将不经压缩放置的相同物理地址中,因此无需指针/元数据就可以找到它们,而低优先级行放置在高优先级数据留下的孔中。随着数据被接收解压缩递增地完成,隐藏了原本通过解压缩而增加的等待时间。
就此而言,图1是示例性基于处理器的系统100的方块图。在论述基于处理器的系统100中的经压缩的存储器行的基于优先级在存取的示例性方面之前,首先在下文描述基于处理器的系统100的示例性组件的描述。
基于处理器的系统100可以包含存储器存取装置101,所述存储器存取装置经配置以在存储器104中提供经压缩的存储器行的基于优先级的存取以用于减少较高优先级读取存取请求的读取存取等待时间。存储器存取装置101可以包含解压缩引擎102以用于减少在基于处理器的系统100中用于读取存取请求的读取存取等待时间。压缩/解压缩引擎102经配置以提供存储在存储器104中的存储器位置M(0)到M(X-1)的存储器行ML(0)-ML(X-1)中的经压缩的存储器行的基于优先级存取以减少用于较高优先级读取存取请求的读取存取等待时间,其中“X”表示提供于存储器104(例如,DRAM)中的任何数目的存储器位置。基于处理器的系统100进一步包含处理器106。处理器106经配置以执行存储在存储器104中的程序指令,或者利用存储在存储器104中的数据来执行基于处理器的功能。处理器106也可以操作为存储器存取装置101,且经由处理器存储器存取路径108(例如,总线)直接对于存储器104执行对程序指令或数据的存储器存取。处理器106也可以经由处理器存储器存取路径108直接将数据写入到存储器104中。处理器106也可以经由压缩/解压缩引擎102执行存储器存取。举例来说,处理器106可经配置以将经压缩的数据直接地存储到存储器104中。压缩/解压缩引擎102经配置以控制对于存储器104的存储器读取存取,包含在压缩情况下解压缩从存储器104检索的数据。压缩/解压缩引擎102经配置以将从存储器行ML(0)-ML(X-1)存取的数据提供到处理器106。
继续参考图1,压缩/解压缩引擎102包含高优先级编码/解码引擎110,所述引擎经配置以从存储器104中读取较高优先级数据。压缩/解压缩引擎102还包含低优先级编码/解码引擎112,所述引擎经配置以从存储器104中读取较低优先级存储器行。低优先级数据可以是只读、非频繁存取的或等待时间耐受的数据。高优先级数据可以是只读、频繁存取的或等待时间敏感的数据。压缩/解压缩引擎102进一步包含控制端口114,所述控制端口经配置以促进在压缩/解压缩引擎102与处理器106之间的通信的交换。通信实例包含来自处理器106的读取请求116,所述读取请求包含逻辑存储器地址以请求对应的数据。通信实例进一步包含写入存取请求118,所述写入存取请求包含待写入到存储器104中的数据和对应的逻辑存储器地址。通信实例进一步包括对处理器106的读取存取响应120,所述读取存取响应包含所请求的数据。压缩/解压缩引擎102进一步包含存储器端口122,所述存储器端口经配置以促进经由压缩/解压缩引擎存储器存取路径124在压缩/解压缩引擎102与存储器104之间的通信的交换。
在示例性的基于处理器的系统100中,存储器104包含存储经压缩的存储器行的存储器单元126。存储器单元126包含X个物理存储器位置M(0)-M(X-1),每个物理存储器位置M经配置以存储预先确定的大小的数据的存储器行ML,例如,一百二十八(128)字节。经压缩的存储器行可以经由处理器存储器存取路径108通过处理器106存储在存储器单元126中,或经由压缩/解压缩引擎存储器存取路径124通过压缩/解压缩引擎102存储在存储器单元126中。在示例性方面中,并且如将参考图2更详细地论述,每个物理存储器位置M在每个存储器行ML中存储第一经压缩的存储器行的第一部分、第二经压缩的存储器行的一部分和第一经压缩的存储器行的第二部分。第二经压缩的存储器行的部分存储在通过第一存储器行的压缩留在对应的存储器行ML(0)-ML(X-1)中的“孔”(例如,除外面积)中。这允许存储器单元126在存储器单元126的X个物理存储器位置M(0)-M(X-1)的X个存储器行ML(0)-ML(X-1)中存储超过X个经压缩的存储器行。
在一个示例性方面中,存储器104可以操作为多层级高速缓冲存储器。就此而言,存储器单元126可以操作为存储经压缩的存储器行的较高层级高速缓冲存储器,且存储器104可进一步包含可选的较低层级高速缓存128,所述高速缓存存储先前从存储器单元126存取的未经压缩的存储器行以用于更快读取存取。可选的较低层级高速缓存128可以经由高速缓冲存储器通信路径130与存储器单元126交换通信并且经由压缩/解压缩引擎高速缓存存取路径132与压缩/解压缩引擎102交换通信。就此而言,如果读取请求116的逻辑存储器地址引起在可选的较低层级高速缓存128处的高速缓存命中,那么压缩/解压缩引擎102在可选的较低层级高速缓存128处存取所请求的数据,且在读取存取响应120中将所请求的数据提供到处理器106。然而,如果读取请求116的逻辑存储器地址引起在可选的较低层级高速缓存128处的高速缓存未命中,那么压缩/解压缩引擎102在存储器单元126处通过存取对应的经压缩的存储器行ML(0)-ML(X-1)存取所请求的数据、解压缩经压缩的存储器行ML(0)-ML(X-1),且在读取存取响应120中将所请求的数据提供到处理器106。
为了提供在基于处理器的系统100中的存储器104中的经压缩的存储器行ML(0)-ML(X-1)的基于优先级的存取,在一个示例性方面中,压缩/解压缩引擎102接收读取请求116以存取来自存储器104的数据。所请求的数据具有最高预先确定的大小,且在存储器104中的可寻址物理存储器位置M(0)-M(X-1)中的每一个经配置以存储预先确定的大小的对应的存储器行ML(0)-ML(X-1)。如较早所提到,每个存储器行ML(0)-ML(X-1)包含第一经压缩的存储器行的第一部分、第二经压缩的存储器行的一部分,以及第一经压缩的存储器行的第二部分。
每个存储器行ML(0)-ML(X-1)经配置以包含经压缩的较高优先级存储器行作为第一经压缩的存储器行的第一部分和第一经压缩的存储器行的第二部分,以及经压缩的较低优先级存储器行的一部分作为第二经压缩的存储器行的部分。这允许存储器104存储最高X个经压缩的较高优先级存储器行,每个在对应的物理存储器位置M(0)-M(X-1)的存储器行ML(0)-ML(X-1)内,并且因此,在对应于对应的较高优先级数据的逻辑存储器地址的存储器104的物理存储器位置M(0)-M(X-1)中存储最高X个经压缩的较高优先级存储器行中的每一个。另外,这允许存储器104在存储器104的X个物理存储器位置M(0)-M(X-1)内存储额外的经压缩的存储器行,即,经压缩的较低优先级存储器行,因此增加存储器104的容量而不增加存储器104的大小。相应地,在示例性方面中,压缩/解压缩引擎102可以减小的等待时间存取存储器104中的数据,同时增加存储器104的容量。
就此而言,在此实例中,在接收读取请求116之后,压缩/解压缩引擎102确定读取存取请求的优先级。如果读取请求116是较高优先级读取存取请求,那么压缩/解压缩引擎102使用读取请求116的逻辑存储器地址作为物理存储器地址以存取含有所请求的较高优先级数据的物理存储器位置M(0)-M(X-1)。存储器104中的物理存储器位置M(0)-M(X-1)含有包含对应于呈经压缩形式的读取请求116的经压缩的较高优先级存储器行的存储器行ML(0)-ML(X-1)。以此方式,与对在存储器104中的对应的物理存储器地址M(0)-M(X-1)的较高优先级读取存取请求的逻辑存储器地址的转换相关联的等待时间并不是从存储器104存取所需要的较高优先级数据所需要的。压缩/解压缩引擎102可以解压缩经压缩的较高优先级数据并且经由读取存取响应120提供所请求的较高优先级数据。
另一方面,如果读取请求116是较低优先级读取存取请求,那么压缩/解压缩引擎102可以使用指针以将读取请求116的逻辑存储器地址转换成物理存储器地址以存取存储所请求的较低优先级数据的连续存储器位置M(0)-M(X-1)。连续物理存储器位置M(0)-M(X-1)中的每一个含有通过对应的较高优先级数据的压缩留下的孔,并且所述孔经组合以存储包含呈经压缩形式的所请求的较低优先级数据的对应的存储器行ML(0)-ML(X-1)。因此,压缩/解压缩引擎102可以解压缩经压缩的较低优先级数据并且经由读取存取响应120提供所请求的较低优先级数据。以此方式,虽然指针用于读取请求116的逻辑存储器地址的转换,但是此类转换限于较低优先级读取存取请求的开始位置,因此在基于处理器的系统100中提供经压缩的存储器行的较高整体存储器存取效率。另外,经压缩的较低优先级存储器行存储在通过较高优先级数据的压缩留下的连续存储器行的孔中,因此仅需要开始位置连同连续存储器行的数目而不是需要用于存储较低优先级数据的一部分的每个存储器行的指针。
就此而言,图2A到2C是说明用于在图1中所说明的基于处理器的系统100中的存储器104中的较高优先级数据和较低优先级数据的所存储的经压缩的存储器行的示例性存储器配置200的图式。如相对于图1中的存储器104所提到,并且尤其相对于存储器104内的存储器单元126,存储器104包含X个物理存储器位置M(0)-M(X-1),每个物理存储器位置M(0)-M(X-1)经配置以存储预先确定的大小的存储器行ML(0)-ML(X-1),例如,128字节。如图2A中所示,存储器配置200被划分成两半,第一存储器区域202和第二存储器区域204。举例来说,如果存储器行是128字节,那么该存储器行的第一存储器区域202可以是64字节,而该存储器行的第二存储器区域204可以是64字节,但是应理解,第一存储器区域202可以大于或小于第二存储器区域204。在图2A的实例中,存储器配置200包含八个较高优先级数据1-8和七个较低优先级数据9-15片段。存储器配置200在存储器行的开始处开始存储(例如,通过利用压缩/解压缩引擎102)八个较高优先级数据行1-8中的每一个直至对于该存储器行(例如,第一经压缩的存储器行的第一部分)第一存储器区域202满了,随后剩余部分经存储使得高优先级数据的最后一个数据在第二存储器区域204的末尾(例如,第一经压缩的存储器行的第二部分)。这在第二存储器区域204的开始处直至较高优先级数据的剩余部分的开始形成“孔”或空间。在存储八个较高优先级数据之后,随后较低优先级数据可以存储在“孔”中。较低优先级数据9-15在第一存储器区域202与第二存储器区域204之间的边界处(例如,第二经压缩的存储器行的第一部分)开始存储其方式为避免或缓解碎片化。一旦特定存储器行填满,则较低优先级数据(例如,较低优先级数据14)随后在第一存储器区域202与第二存储器区域204之间的边界(例如,第二经压缩的存储器行的第二部分)处开始在下一个连续存储器行上继续直至存储完成或存储器行满了等等直至存储完成。存储器配置200尽可能尝试使用最少数量的连续存储器行安排较低优先级数据9-15。在图2A的实例中,仅较低优先级数据14需要存储在第一存储器位置和第二存储器位置中。
如图2A中所示,例如,每个物理存储器位置M(0)-M(X-1)能够存储包含经压缩的较高优先级存储器行206的第一部分和经压缩的较高优先级存储器行208的第二部分(如图2A中所示的较高优先级数据1)的存储器行ML(0)-ML(X-1)。另外,物理存储器位置M(0)-M(X-1)中的每一个能够存储经压缩的较低优先级存储器行的一部分。在此实例中,经压缩的较低优先级存储器行210的第一部分存储在通过较高优先级数据1的压缩留在物理存储器位置M(0)中的孔中的相同存储器行(在图2A中示出为ML(0))上并且在经压缩的较高优先级存储器行206的第一部分与经压缩的较高优先级存储器行208的第二部分之间。
因此,高优先级存储器行放置(压缩)在与它们将不经压缩放置的相同物理地址中,因此无需指针/元数据就可以找到它们。低优先级存储器行放置在通过高优先级行留下的孔中但是在有效的读取点分裂处开始,有效地将高优先级行分成两部分。元9-15(例如,指针)用于将低优先级行有效地放置在孔中。指针用于指示经压缩的较低优先级存储器行210的第一部分的开始位置。因为较低优先级数据在第一存储器区域202与第二存储器区域204之间的边界处开始,所以元14例如可以仅需要指示物理存储器位置M(6),并且可能地连续存储器位置的数目以在较低优先级数据14的检索期间进行检索。
如图2B中所示,替代的存储器配置200可以从存储器行的起点(存储器配置200的左侧)开始在相同存储器行上连续地存储较高优先级数据1-8直至较高优先级数据存储完成。这可以避免将较高优先级数据1-8中的每一个划分成两半,例如,在图2A中示出。在图2B的实例中,存储器配置200包含八个较高优先级数据1-8和七个较低优先级数据9-15片段。存储器配置200在存储器行的起点处开始存储(例如,通过利用压缩/解压缩引擎102)八个较高优先级数据行1-8中的每一个直至存储完成(或存储器行满了)。随后七个较低优先级数据9-15从存储器行的末尾(存储器配置的右侧)开始存储在“孔”中直至该存储器行上的较高优先级数据1-8的末尾。一旦特定存储器行被填满,则较低优先级数据(例如,较低优先级数据14)随后从下一个存储器行的末尾开始在下一个连续存储器行上继续。
如图2C中所示,替代的存储器配置200可以被划分成各自用于每个存储器行(在此实例中128字节)的16字节的二进制数250。存储器配置可以从存储器行的起点(存储器配置200的左侧)开始在相同存储器行上在连续二进制数250中存储较高优先级数据1-5直至较高优先级数据存储完成。在图2C的实例中,存储器配置200包含五个较高优先级数据1-5和六个较低优先级数据6-9、11和12片段。存储器配置200在存储器行的开始处在二进制数250处开始存储(例如,通过利用压缩/解压缩引擎102)五个较高优先级数据行1-5中的每一个直至存储完成(或存储器行满了)。随后六个较低优先级数据6-9、11和12存储在空的二进制数中而无需必须在存储器行的末尾(存储器配置的右侧)处或在第一存储器区域与第二存储器区域之间的边界处开始。举例来说,较低优先级数据7在较高优先级数据3之后在第一空的二进制数250处开始而较低优先级数据12在最后一个空的二进制数250中开始(从存储器配置的右侧去往左侧)。
使用指针(例如,图2A的元9-15)给系统添加了复杂度以及与从存储器位置(例如,可以是本文中所公开的存储器位置中的任何一个或未示出的单独的存储器位置)提取指针相关的等待时间。然而,添加指针允许保证用于低优先级行的连续存储器位置并且还允许在通过高优先级行留下的最佳空间中的每个特定低优先级行的完美的放置以避免碎片化。一旦获取指针,则存储器读取是连续的且可以流水线化以进一步减少等待时间。如果指针位于非高速缓冲存储器(例如,如果集体大小较大),那么现有或新高速缓存可用于避免每次从缓慢存储器中提取指针。因此,指针使用被限制于低优先级且封装是实际上完美的。
相比之下,存储器104存储最多X个经压缩的较高优先级存储器行M(0)-M(X-1)。每个经压缩的较高优先级存储器行放置在对应的存储器行ML(0)-ML(X-1)中并且存储在与对应的未经压缩的较高优先级存储器行的逻辑存储器地址匹配的对应的物理存储器位置M(0)-M(X-1)中,即,对应的较高优先级数据。此配置特性允许每个经压缩的较高优先级存储器行通过从存储器104中的对应的物理存储器位置M(0)-M(X-1)读取仅一个存储器行ML(0)-ML(X-1)存取。然而,为了利用此配置特性,压缩/解压缩引擎102需要确定读取请求116是较高优先级存取请求。
就此而言,压缩/解压缩引擎102可经配置以通过确定读取请求116的逻辑存储器地址在从0延伸到X-1的较高优先级地址范围内来确定读取请求116是较高优先级读取存取请求。对于在图2A到B中示出的实例,如上文所提及,存储器104包含8个(例如,X等于8)物理存储器位置M(0)-M(7)。在一个示例性方面中,物理存储器位置M(0)-M(7)中的每一个包含一个经压缩的较高优先级存储器行,所述存储器行可以使用读取请求116的逻辑存储器位置存取作为物理存储器位置M(0)-M(7)。因此,在示例性存储器配置200中,经压缩的较高优先级数据1-8存储在8个物理存储器位置M(0)-M(7)中。相应地,在一个示例性方面中,较高优先级地址范围是从0到7,并且压缩/解压缩引擎102可以通过确定读取请求116的逻辑存储器地址落入在0和7之间来确定读取请求116是较高优先级读取存取请求。
在此实例中,使用读取请求116的逻辑存储器地址指示读取请求116的优先级避免存取存储器104或其它存储器中的元数据(例如,元9-15)以确定接收到的读取请求116是较高优先级存取请求的需要。此外,因为每个逻辑存储器地址对应于经压缩的较高优先级数据(1-8)或经压缩的较低优先级数据(9-15)中的一个,所以压缩/解压缩引擎102进一步经配置以通过确定读取请求116的逻辑存储器地址落入在较高优先级地址范围外部来确定读取请求116是较低优先级读取存取请求。然而,对于较低优先级读取存取请求,压缩/解压缩引擎102需要使用读取请求116的逻辑存储器地址的转换来确定物理存储器位置M(0)-M(7)包含所请求的较低优先级数据,即,对应的经压缩的较低优先级存储器行。
就此而言,在一个方面中,每个经压缩的较低优先级数据存储于存储器配置200中,使得对应的物理存储器位置M(0)-M(X-1)可以从较低优先级读取存取请求的起始逻辑存储器地址导出。具体地说,应注意在图2A的实例中,较低优先级数据14存储在存储器104中使得经压缩的较低优先级数据14的第一部分212存储在物理存储器位置M(5)中并且经压缩的较低优先级数据14的第二部分214在下一个连续存储器位置M(6)中。相应地,存储器配置200的配置特性允许基于值X(即,边界是X的开始位置)且必要时连续位置的数目确定存储对应的经压缩的较低优先级数据的多个物理存储器位置M(0)-M(X-1)的第一物理存储器位置M(q)。因此,此示例性方面可以使用仅一个指针用于逻辑存储器地址的转换的开始和对应的数目的连续物理存储器位置。相应地,存储器配置200的配置特性允许压缩/解压缩引擎102开始基于指针并且必要时基于存储器104中的连续物理存储器位置的数目确定每个经压缩的较低优先级数据的物理存储器位置M(0)-M(X-1)。然而,因为每个物理存储器位置M(0)-M(X-1)存储包含经压缩的较高优先级数据和经压缩的较低优先级数据的至少一部分的存储器行ML(0)-ML(X-1),每个经压缩的较低优先级数据存储在经压缩的较高优先级数据的连续部分之间,每个经压缩的较低优先级数据的每个部分存储在对应的物理存储器位置M(0)-M(X-1)的边缘(例如,第二存储器区域204)处以占据最多一半的对应的物理存储器位置M(0)-M(X-1)。这有助于通过对存储器104的单个存储器存取来检索每个经压缩的数据。
图3是说明压缩/解压缩引擎102在图1中的基于处理器的系统100中对存储器104中的经压缩的存储器行执行基于优先级的读取请求116以减少读取存取等待时间的示例性部分过程300的流程图。如上文所论述,在基于处理器的系统100的实例中,如果可选的较低层级高速缓存128发生错过,那么压缩/解压缩引擎102经号召以执行存储器读取请求116。在示例性部分过程300中,用于检索经压缩的数据的方法开始于接收用于经压缩的数据的读取请求116,读取请求116包含逻辑存储器地址(块310)。随后,基于读取请求116确定经压缩的数据的优先级(块320)。在确定经压缩的数据的优先级是较高优先级之后,从通过逻辑存储器地址指示的第一高速缓存行的第一存储器区域中检索经压缩的数据的第一部分(块330)。在确定经压缩的数据的优先级是较低优先级之后:基于逻辑存储器地址检索指示物理存储器地址的指针;基于物理存储器地址从第一高速缓存行的第二存储器区域中检索经压缩的数据(块340)。部分过程300通过解压缩经压缩的数据结束(块350)。
相应地,用于存储器104中的经压缩的存储器行的读取存取的示例性过程300并不需要高优先级经压缩的数据读取的逻辑存储器地址到对应的物理存储器地址的转换。这可以除去采用和存取存储器104或其它存储器中的元数据和/或采用编索引以执行转换的需要以及相关联的等待时间。因此,通过在较高优先级存储器行中存储最经常使用的数据,例如,这些示例性方面与在需要所请求的数据的逻辑存储器地址的转换用于存取而无论它们的优先级如何的系统中相比引起在基于处理器的系统100中的较高整体存储器存取效率。
现在参考图4,图4是说明用于减少读取存取等待时间的在图1中的基于处理器的系统100的示例性部分过程400的流程图。如上文所论述,在基于处理器的系统100的实例中,存储器存取装置101、压缩/解压缩引擎102、处理器106或任何组合可以用于存储和检索数据。部分过程400开始于在第一高速缓存行的第一存储器区域中存储较高优先级经压缩的数据的第一部分(块410),随后是在第一高速缓存行的第二存储器区域中存储较高优先级经压缩的数据的第二部分(块420)。所述过程通过在第一存储器区域与第二存储器区域之间在第一高速缓存行的第三存储器区域中存储较低优先级经压缩的数据的第一部分继续(块430)。所述过程通过在与第一高速缓存行连续的第二高速缓存行的第四存储器区域中存储较低优先级经压缩的数据的第二部分继续(块440)。接下来,接收到读取请求(块450)。所述过程通过确定读取请求是用于较高优先级经压缩的数据还是较低优先级经压缩的数据继续(块460)。在确定读取请求如果用于较高优先级经压缩的数据之后,第一高速缓存行是从第一存储器区域和第二存储器区域中检索的(块470)。在确定读取请求用于较低优先级经压缩的数据之后,较低优先级经压缩的数据的第一部分是从第一高速缓存行的第三存储器区域中检索的并且较低优先级经压缩的数据的第四部分是从第二高速缓存行的第四存储器区域中检索的(块480)。
现在参考图5,描绘了根据示例性方面配置的计算装置的方块图,并将所述计算装置大体上表示为500。在一些方面中,计算装置500可经配置为无线通信装置或服务器。如图所示,计算装置500包含图1的基于处理器的系统100,其在一些方面中可经配置以实施图3和4的过程300和/或400。基于处理器的系统100在图5中示出为具有压缩/解压缩引擎102、存储器104和处理器106,而为清楚起见,先前参考图1所描述的基于处理器的系统100的其它细节已从这一视图省略。
基于处理器的系统100可以通信方式耦合到存储器104。计算装置500还包含显示器528和显示器控制器526,其中显示器控制器526耦合到基于处理器的系统100且耦合到显示器528。应理解,显示器528和显示器控制器526是可选的。
在一些方面中,图5可以包含用虚线示出的一些可选块。举例来说,计算装置500可以可选地包含耦合到基于处理器的系统100的译码器/解码器(编解码器)554(例如,音频和/或语音编解码器);耦合到编解码器554的扬声器556和麦克风558;以及耦合到无线天线542且耦合到基于处理器的系统100的无线控制器540(其可以包含调制解调器)。
在特定方面中,其中存在上述可选块中的一或多个,基于处理器的系统100、显示器控制器526、编解码器554和无线控制器540可以包含于封装内系统或芯片上系统装置522中。输入装置550、电源544、显示器528、扬声器556、麦克风558和无线天线542可以在芯片上系统装置522外部并且可以耦合到芯片上系统装置522的组件,例如,接口或控制器。
应注意虽然图5描绘了计算装置,但是基于处理器的系统100和存储器104也可以集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话、服务器或其它类似装置中。
词语“示例性”在本文中用于意味着“充当实例、例子或说明”。本文中描述为“示例性”的任何细节不应该被理解为比其它实例更有利。类似地,术语“实例”不意味着所有实例包含所论述的特征、优点或操作模式。此外,可将特定特征和/或结构与一或多个其它特征和/或结构组合。此外,此处所描述设备的至少一部分可经配置以执行此处所描述方法的至少一部分。
本文中所使用的术语是出于描述特定实例的目的,且并不意图限制本发明的实例。如本文中所使用,除非上下文另外明确指示,否则单数形式“一”和“所述”意图还包含复数形式。应进一步理解,术语“包括(comprises/comprising)”和/或“包含(includes/including)”当在本文中使用时规定存在陈述的特征、整数、动作、操作、元件和/或组件,但不排除一或多个其它特征、整数、动作、操作、元件、组件和/或其群组的存在或添加。
应注意,术语“连接”、“耦合”或其任何变体意味着元件之间的直接或间接的任何连接或耦合,且可涵盖经由中间元件“连接”或“耦合”在一起的两个元件之间的中间元件的存在。
本文中使用例如“第一”、“第二”等等名称对元件的任何参考并不限制那些元件的数量和/或次序。实际上,将这些名称用作区别两个或更多个元件或元件的例子的方便方法。并且,除非另外说明,否则元件的集合可包括一或多个元件。
另外,在将由例如计算装置的元件执行的动作的顺序方面来描述许多实例。将认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(ASIC)),由正由一或多个处理器执行的程序指令或由两者的组合来执行。另外,本文中所描述的这些动作的顺序可被视为全部在任何形式的计算机可读存储媒体内实施,在所述计算机可读存储媒体中存储有对应的计算机指令集,所述计算机指令在执行时将使得相关联的处理器执行本文中所描述的功能性。因此,本发明的各个方面可以多种不同形式来实施,所述形式全都已经考虑在所主张的标的物的范围内。另外,对于本文中所描述的实例中的每一个,任何此类实例的对应的形式可在本文中描述为例如“经配置以”执行所描述动作的“逻辑”。
本申请中所陈述或所说明的内容都不意图专用于任何组件、动作、特征、益处、优点或等效于公用,而不管权利要求书中是否叙述所述组件、动作、特征、益处、优点或等效者。
另外,所属领域的技术人员将了解,结合本文中所公开的实例描述的各种说明性逻辑块、模块、电路和算法动作可以实施为电子硬件、计算机软件或两者的组合。为了清晰地说明硬件与软件的此可互换性,上文已大体就其功能性而言描述了各种说明性组件、块、模块、电路和动作。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可以针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起脱离本发明的范围。
虽然已结合装置描述一些方面,但理所当然的是,这些方面还构成对应的方法的描述,并且因此,装置的块或组件还应被理解为对应的方法动作或方法动作的特征。与其类似地,结合方法动作所描述或描述为方法动作的方面也构成对应的块或对应的装置的细节或特征的描述。方法动作中的一些或全部可由硬件设备(或使用硬件设备)执行,例如,微处理器、可编程计算机或电子电路。在一些实例中,一些或多个最重要的方法动作可由此设备执行。
此外应注意,在实施方式中或在权利要求书中所公开的方法可由包括用于执行此方法的相应动作的装置的装置实施。
此外,在一些实例中,个体动作可被细分成多个子动作,或含有多个子动作。这些子动作可包含于个体动作的公开内容中且为所述个体动作的公开内容的一部分。
虽然前述公开内容示出了本发明的说明性实例,但应注意,在不脱离如所附权利要求书界定的本发明的范围的情况下,可在本文中做出各种改变和修改。无需以任何特定次序来执行根据本文中所描述的本发明的实例的方法权利要求项的功能和/或动作。另外,将不详细地描述或可省略熟知元件以免混淆本文中所公开的方面和实例的相关细节。此外,尽管可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。
Claims (29)
1.一种存储器装置,其包括:
存储器存取装置,其经配置以:
在较高优先级数据和较低优先级数据之中确定数据的优先级;
以压缩格式在第一高速缓存行的第一位置处存储第一较高优先级数据,所述第一位置是将存储所述较高优先级数据的未经压缩的格式的高速缓存行存储器地址;
确定第一指针,所述第一指针识别所述第一高速缓存行的未使用的空间的开始位置;以及
在第二位置处以所述压缩格式存储第一较低优先级数据,其中所述第二位置开始于所述开始位置处。
2.根据权利要求1所述的存储器装置,其进一步包括经配置以在检索到完整的高速缓存行之前递增地解压缩所述第一较高优先级数据和所述第一较低优先级数据的压缩/解压缩引擎。
3.根据权利要求1所述的存储器装置,其中所述存储器存取装置进一步经配置以检索所述第一较低优先级数据并且检索所述第一较高优先级数据作为完整的高速缓存行。
4.根据权利要求1所述的存储器装置,其中所述第一较低优先级数据存储在多个连续位置中。
5.根据权利要求3所述的存储器装置,其中所述存储器装置被并入到选自由以下项组成的群组的装置中:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话、服务器,或其它类似装置。
6.一种实施处理装置以用于启用经压缩的数据的存储和检索的存储器装置,所述存储器装置包括:
第一存储器区域,其经配置以存储第一较高优先级经压缩的数据,所述第一存储器区域是第一大小;
第二存储器区域,其经配置以存储第一较低优先级经压缩的数据,所述第二存储器区域是第二大小;以及
存储器存取装置,其经配置以:
接收读取请求;
确定所述读取请求的较高优先级或较低优先级中的一个;
基于所述较高优先级的确定检索包括所述第一存储器区域的第一高速缓存行;以及
基于所述较低优先级的确定从所述第二存储器区域中检索所述第一较低优先级经压缩的数据。
7.根据权利要求6所述的存储器装置,其中所述存储器存取装置进一步经配置以:
在所述第一高速缓存行的所述第一存储器区域中存储所述第一较高优先级经压缩的数据;以及
在所述第二存储器区域中存储所述第一较低优先级经压缩的数据。
8.根据权利要求7所述的存储器装置,其中所述第一大小近似地等于所述第二大小。
9.根据权利要求7所述的存储器装置,其中所述存储器存取装置进一步经配置以在与所述第一高速缓存行连续的第二高速缓存行的第三存储器区域中存储所述第一较低优先级经压缩的数据的一部分。
10.根据权利要求7所述的存储器装置,其中所述第一高速缓存行包括所述第一存储器区域和所述第二存储器区域。
11.根据权利要求10所述的存储器装置,其中所述存储器存取装置进一步经配置以在所述第一高速缓存行的开始处存储所述第一较高优先级经压缩的数据并且在所述第一高速缓存行的末尾处存储所述第一较低优先级经压缩的数据。
12.根据权利要求6所述的存储器装置,其中所述读取请求包含逻辑存储器地址并且所述存储器存取装置进一步经配置以基于所述逻辑存储器地址检索所述第一存储器区域。
13.根据权利要求6所述的存储器装置,其中所述存储器存取装置进一步经配置以基于指针检索所述第一较低优先级经压缩的数据。
14.根据权利要求6所述的存储器装置,其中所述存储器存取装置是处理器。
15.根据权利要求6所述的存储器装置,其中所述存储器装置被并入到选自由以下项组成的群组的装置中:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话、服务器,或其它类似装置。
16.一种用于检索经压缩的数据的方法,所述方法包括:
接收用于经压缩的数据的读取请求,所述读取请求具有逻辑存储器地址;
基于所述读取请求确定所述经压缩的数据的优先级;
在确定所述经压缩的数据的所述优先级是较高优先级之后,从通过所述逻辑存储器地址指示的第一高速缓存行的第一存储器区域中检索所述经压缩的数据;
在确定所述经压缩的数据的所述优先级是较低优先级之后:
基于所述逻辑存储器地址检索指示物理存储器地址的指针;
基于所述物理存储器地址从所述第一高速缓存行的第二存储器区域中检索所述经压缩的数据;以及
解压缩所述经压缩的数据。
17.根据权利要求16所述的方法,其中所述经压缩的数据的所述优先级是基于所述读取请求的所述逻辑存储器地址确定的。
18.根据权利要求16所述的方法,其中所述第一高速缓存行的所述第一存储器区域是与所述第一高速缓存行的所述第二存储器区域连续的。
19.根据权利要求18所述的方法,其进一步包括在确定所述经压缩的数据的所述优先级是所述较低优先级之后,从与所述第一高速缓存行连续的第二高速缓存行的第三存储器区域中检索所述经压缩的数据。
20.根据权利要求19所述的方法,其进一步包括,在确定所述经压缩的数据的所述优先级是所述较高优先级之后,从所述第一高速缓存行的第四存储器区域中检索所述经压缩的数据,其中所述第二存储器区域在所述第一存储器区域与所述第一高速缓存行的所述第四存储器区域之间。
21.根据权利要求16所述的方法,其中所述较高优先级经压缩的数据的所述逻辑存储器地址是所述第一高速缓存行的物理存储器地址。
22.根据权利要求16所述的方法,其进一步包括:
在所述第一高速缓存行的所述第一存储器区域中存储所述较高优先级经压缩的数据;以及
在所述第一高速缓存行的所述第二存储器区域中存储所述较低优先级经压缩的数据。
23.根据权利要求16所述的方法,其中所述方法由选自由以下项组成的群组的装置执行:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话、服务器,或其它类似装置。
24.一种用于存储和检索数据的方法,所述方法包括:
在第一高速缓存行的第一存储器区域中存储较高优先级经压缩的数据的第一部分;
在所述第一高速缓存行的第二存储器区域中存储所述较高优先级经压缩的数据的第二部分;
在所述第一存储器区域与所述第二存储器区域之间在所述第一高速缓存行的第三存储器区域中存储较低优先级经压缩的数据的第一部分;以及
在与所述第一高速缓存行连续的第二高速缓存行的第四存储器区域中存储所述较低优先级经压缩的数据的第二部分。
25.根据权利要求24所述的方法,其进一步包括:
接收读取请求;
确定所述读取请求是用于所述较高优先级经压缩的数据还是所述较低优先级经压缩的数据;
在确定所述读取请求用于所述较高优先级经压缩的数据之后,从所述第一存储器区域和所述第二存储器区域中检索所述第一高速缓存行;以及
在确定所述读取请求用于所述较低优先级经压缩的数据之后,从所述第一高速缓存行的所述第三存储器区域中检索所述较低优先级经压缩的数据的所述第一部分并且从所述第二高速缓存行的所述第四存储器区域中检索所述较低优先级经压缩的数据的所述第二部分。
26.根据权利要求25所述的方法,其中确定所述读取请求是用于所述较高优先级经压缩的数据还是所述较低优先级经压缩的数据是基于所述读取请求的逻辑存储器地址的。
27.根据权利要求26所述的方法,其中如果所述读取请求用于所述较高优先级经压缩的数据,那么所述逻辑存储器地址是所述第一高速缓存行的物理存储器地址。
28.根据权利要求26所述的方法,其进一步包括在确定所述读取请求用于所述较低优先级经压缩的数据之后检索指示物理存储器地址的指针。
29.根据权利要求24所述的方法,其中所述方法由选自由以下项组成的群组的装置执行:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信装置、移动电话、服务器,或其它类似装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/193,001 | 2016-06-24 | ||
US15/193,001 US10482021B2 (en) | 2016-06-24 | 2016-06-24 | Priority-based storage and access of compressed memory lines in memory in a processor-based system |
PCT/US2017/035692 WO2017222782A1 (en) | 2016-06-24 | 2017-06-02 | Priority-based storage and access of compressed memory lines in memory in a processor-based system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109313605A true CN109313605A (zh) | 2019-02-05 |
Family
ID=59034956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780033673.9A Pending CN109313605A (zh) | 2016-06-24 | 2017-06-02 | 基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10482021B2 (zh) |
EP (1) | EP3475830A1 (zh) |
CN (1) | CN109313605A (zh) |
WO (1) | WO2017222782A1 (zh) |
Families Citing this family (6)
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 |
US10095624B1 (en) * | 2017-04-28 | 2018-10-09 | EMC IP Holding Company LLC | Intelligent cache pre-fetch |
US20220327052A1 (en) * | 2021-04-12 | 2022-10-13 | Meta Platforms, Inc. | Systems and methods for transforming data in-line with reads and writes to coherent host-managed device memory |
US11829292B1 (en) | 2022-01-10 | 2023-11-28 | Qualcomm Incorporated | Priority-based cache-line fitting in compressed memory systems of processor-based systems |
US11868244B2 (en) * | 2022-01-10 | 2024-01-09 | Qualcomm Incorporated | Priority-based cache-line fitting in compressed memory systems of processor-based systems |
TW202331494A (zh) * | 2022-01-10 | 2023-08-01 | 美商高通公司 | 在基於處理器的系統的經壓縮記憶體系統中基於優先順序的快取記憶體行裝入 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006009618A2 (en) * | 2004-06-16 | 2006-01-26 | Nec Laboratories America, Inc. | Memory compression architecture for embedded systems |
CN101310260A (zh) * | 2005-09-21 | 2008-11-19 | 高通股份有限公司 | 用于管理高速缓存器分割的方法及设备 |
US20090112949A1 (en) * | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Compressed storage management |
CN102612685A (zh) * | 2009-11-16 | 2012-07-25 | 微软公司 | 经由存储器高速缓存操纵的无阻碍数据传送 |
CN104067246A (zh) * | 2012-01-10 | 2014-09-24 | 高通股份有限公司 | 通过物理地址进行的非分配存储器存取 |
CN104969178A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 用于实现便笺式存储器的装置和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761536A (en) | 1996-08-21 | 1998-06-02 | International Business Machines Corporation | System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis |
US7129860B2 (en) * | 1999-01-29 | 2006-10-31 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
US6519733B1 (en) | 2000-02-23 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for high integrity hardware memory compression |
US6856651B2 (en) | 2000-07-25 | 2005-02-15 | Peribit Networks, Inc. | System and method for incremental and continuous data compression |
US7181457B2 (en) | 2003-05-28 | 2007-02-20 | Pervasive Software, Inc. | System and method for utilizing compression in database caches to facilitate access to database information |
US8738860B1 (en) | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US9158686B2 (en) | 2012-03-30 | 2015-10-13 | Altera Corporation | Processing system and method including data compression API |
US9261946B2 (en) | 2012-10-11 | 2016-02-16 | Wisconsin Alumni Research Foundation | Energy optimized cache memory architecture exploiting spatial locality |
US9858196B2 (en) * | 2014-08-19 | 2018-01-02 | Qualcomm Incorporated | Power aware padding |
US9934145B2 (en) * | 2015-10-28 | 2018-04-03 | Nvidia Corporation | Organizing memory to optimize memory accesses of compressed data |
-
2016
- 2016-06-24 US US15/193,001 patent/US10482021B2/en active Active
-
2017
- 2017-06-02 EP EP17729338.8A patent/EP3475830A1/en not_active Withdrawn
- 2017-06-02 CN CN201780033673.9A patent/CN109313605A/zh active Pending
- 2017-06-02 WO PCT/US2017/035692 patent/WO2017222782A1/en active Search and Examination
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006009618A2 (en) * | 2004-06-16 | 2006-01-26 | Nec Laboratories America, Inc. | Memory compression architecture for embedded systems |
CN101310260A (zh) * | 2005-09-21 | 2008-11-19 | 高通股份有限公司 | 用于管理高速缓存器分割的方法及设备 |
US20090112949A1 (en) * | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Compressed storage management |
CN102612685A (zh) * | 2009-11-16 | 2012-07-25 | 微软公司 | 经由存储器高速缓存操纵的无阻碍数据传送 |
CN104067246A (zh) * | 2012-01-10 | 2014-09-24 | 高通股份有限公司 | 通过物理地址进行的非分配存储器存取 |
CN104969178A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 用于实现便笺式存储器的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017222782A1 (en) | 2017-12-28 |
US20170371792A1 (en) | 2017-12-28 |
EP3475830A1 (en) | 2019-05-01 |
US10482021B2 (en) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313605A (zh) | 基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 | |
KR101422557B1 (ko) | 예측 데이터 로더 | |
US9792227B2 (en) | Heterogeneous unified memory | |
US10572378B2 (en) | Dynamic memory expansion by data compression | |
CN109308192A (zh) | 用于执行存储器压缩的系统和方法 | |
CN106503051B (zh) | 一种基于元数据分类的贪婪预取型数据恢复系统及恢复方法 | |
US7636810B2 (en) | Method, system, and apparatus for memory compression with flexible in-memory cache | |
CN109085997A (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
US9507705B2 (en) | Write cache sorting | |
CN103856567A (zh) | 基于Hadoop分布式文件系统的小文件存储方法 | |
KR20170097609A (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
US10031918B2 (en) | File system and method of file access | |
CN109196488A (zh) | 用于基于处理器的系统中的压缩存储器行的预提取机制 | |
US11886401B2 (en) | Database key compression | |
US11630595B2 (en) | Methods and systems of efficiently storing data | |
TWI251741B (en) | Method, apparatus, system for memory access | |
CN1963810A (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
US20220365876A1 (en) | Method of cache management based on file attributes, and cache management device operating based on file attributes | |
US20190286718A1 (en) | Data structure with rotating bloom filters | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN110235110A (zh) | 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 | |
US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory | |
US20050132117A1 (en) | [card reader, and bridge controller and data transmission method thereof] | |
Choi et al. | Design and implementation of a FAT file system for reduced cluster switching overhead | |
CN116010298B (zh) | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
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 |
Application publication date: 20190205 |
|
WD01 | Invention patent application deemed withdrawn after publication |