CN1672135A - 基于可压缩性程度使用压缩主存储器的系统和方法 - Google Patents
基于可压缩性程度使用压缩主存储器的系统和方法 Download PDFInfo
- Publication number
- CN1672135A CN1672135A CNA038173573A CN03817357A CN1672135A CN 1672135 A CN1672135 A CN 1672135A CN A038173573 A CNA038173573 A CN A038173573A CN 03817357 A CN03817357 A CN 03817357A CN 1672135 A CN1672135 A CN 1672135A
- Authority
- CN
- China
- Prior art keywords
- memory
- data block
- compression
- compressed
- sector
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种用于减少处理系统(图1,元件100)中的访问等待时间和争用的方法和结构。本发明检测可用内存的量何时在指定范围之外,并且响应地选择数据块用于压缩(以增加可用内存,)或解压缩(以使剩余的可用内存用于未压缩数据,)直到可用内存的量在指定范围内。当数据块被压缩时,可压缩性程度属性,DOC(图3,元件303)被确定并存储为与数据块相关联的目录条目(图3,元件300)中的属性。新近数据块地址的最新近使用列表防止那些,以及具有较差DOC属性的那些数据块被选择用于再压缩。全零数据块被检测以避免标准压缩/解压缩系统开销。
Description
技术领域
本发明通常涉及计算机系统中的压缩主存储器体系结构的领域,尤其涉及用于管理压缩主存储器或相关未压缩高速缓冲存储器的改进方法和装置。
背景技术
计算机主存储系统现在通常可获得,其在主存储器和处理器之间的数据流通路中使用高速压缩/解压缩硬件。这些系统中处理器对主存储器的访问间接地通过压缩器和解压缩器装置来执行,二者都显著地增加处理器访问等待时间系统开销,但是显著地易于较低的存储费用。
大的高速缓冲存储器在处理器与压缩器和解压缩器硬件之间实现,以减少处理器访问压缩存储器的频率,减轻高压缩/解压缩等待时间效应。这些高速缓冲存储器包含未压缩数据并且通常划分成大小等于压缩器和解压缩器所需的固定数据块大小的高速缓冲线。当处理器请求没有已经位于高速缓冲存储器中的数据时,包含所请求数据的线在压缩存储器中定位,然后从压缩存储器中读出,然后解压缩并放置在未压缩高速缓冲存储器中。当没有空闲高速缓冲线可用时,现有高速缓冲线被选择以置换,使得现有高速缓冲线从高速缓冲存储器中移除、压缩并存储在压缩存储器中,并且用新的高速缓冲线置换。初始访问位置内和高速缓冲线内的随后处理器访问直接从未压缩高速缓冲存储器数据中服务,避免与解压缩相关联的等待时间。未压缩数据高速缓冲的三种方法被描述。
常规独立高速缓冲存储器阵列和相关目录提供最大的性能,但是以最高的成本。性能达到最大,因为高速缓冲存储器和目录硬件可以为处理器的最低等待时间访问而优化,并且主存储器接口通信量与高速缓冲存储器接口的通信量隔离。但是,成本与高速缓冲存储器阵列、目录、以及相关硬件接口相关联。
Hovis等人(美国专利5,812,817号,在此引用作为参考)在主存储器内逻辑地分配未压缩高速缓冲存储区域。高速缓冲存储控制器和存储控制器经由相同的物理接口而共享相同的存储阵列。在高速缓冲线置换期间,数据通过压缩硬件在压缩主存储区域和未压缩高速缓冲存储器之间来回往复。该方案的优点在于压缩高速缓冲存储器大小可以容易对特定系统应用而优化,并且与独立高速缓冲存储器、目录和相关接口相关联的成本被消除。性能因等待时间敏感的高速缓冲存储控制器对主存储器物理接口的争用而特别不利。
Benveniste等人(美国专利6,349,372号B1,在此引用作为参考)描述“虚拟未压缩高速缓冲存储器”,其包括允许以与不可压缩的数据块存储的相同方式、以未压缩格式存储在压缩存储器中的预先确定数目的未压缩数据块。不需要独立的高速缓冲存储器目录,因为所有处理器数据访问从压缩存储器目录中定位。未压缩数据块的FIFO列表被维护,并且当新的数据块被解压缩时,它从列表中置换数据块。在未压缩列表中的数据块置换期间,数据通过压缩/解压缩硬件往复出入压缩主存储器。该方案成本非常低,因为没有特殊的高速缓冲存储器或目录存在。但是,性能因与处理器数据和目录访问的压缩器/解压缩器数据流争用而不利。
所有这些方案涉及维护压缩格式的所有压缩存储器内容(当实际时),同时允许固定数量或高速缓冲的未压缩格式的数据。数据仅当处理器请求在未压缩数据集或高速缓冲存储器中没有找到的数据时被解压缩(一经请求)。虽然这使得主存储器中的可用空间达到最大,空间经常没有使用。这些方案没有一个提供在对数据的访问被请求之前压缩/解压缩数据的装置。因此,在处理器需要访问存储器的同时在存储器中导致压缩器/解压缩器数据通信阻塞,导致争用。而且,写通信直到所有必需数据对压缩器可用,并且压缩器已经处理完数据(几百周期的一段时间)时才能够执行,使得存储器写入停止是常见的。所有这些方案也都不考虑大量未使用的内存并且依赖于特定软件来减轻已知存储压力的问题。当比此时可用的更多的内存被需要以在压缩存储器中存储数据时,该存储压力问题因不佳的总体压缩比和高实际内存利用率而发生。
将期望能够相对于使其未使用,使得主存储器中存储数据的空间达到最大。也将期望在主存储器中存储与实际一样多的未压缩数据,以通过避免压缩/解压缩操作来减少访问等待时间。也将期望在发生压缩操作的系统开销之后,在与每个数据块相关联的内存中保留该数据块的可压缩性程度,以减轻随后在较差可压缩数据块上的多余压缩活动。而且,也将期望能够在处理器需要数据之前,并且当主存储器另外没有使用时执行解压缩/压缩活动,以减轻与处理器对存储器的访问的争用情况。最后,也将期望压缩存储管理器硬件立即响应存储压力状况,从而减少浪费的内存保留的大小。
发明内容
本发明的目的在于提供一种在压缩存储系统中的数据管理方法,以使得用于以未压缩格式存储数据的压缩主存储器的量达到最大,以减轻数据访问必定导致压缩和扩展等待时间损失的情况。
本发明的再一个目的在于提供一种方法和装置,其通过检测可用内存的量何时在预先确定阈值外部来调节总体压缩主存储器压缩比,并且当存储系统不忙时,或者根据与繁忙状况无关的优先级来响应地开始选择数据块用于压缩(以增加可用内存)或解压缩(以使得剩余可用内存用于未压缩数据),直到可用内存的量在预先确定阈值内。
本发明包括一种计算机系统,其具有存储器,该存储器具有包括压缩数据块和未压缩数据块的数据块扇区。操作地连接到存储器的扇区计数器适合于维护存储器的使用内存扇区计数。压缩存储管理器操作地连接到存储器。本发明也具有操作地连接到压缩存储管理器、包含压缩内存阈值的压缩内存阈值寄存器。扇区转换表操作地连接到存储器并且包含指示数据块何时最后访问的接触位。扩展内存阈值寄存器操作地连接到压缩存储管理器,并且包含扩展内存阈值。压缩存储管理器适合于当使用内存扇区计数在压缩内存阈值之上时压缩存储器中的数据块。基于接触位,较不新近访问数据块在较新近访问数据块之前压缩。压缩存储管理器还适合于当使用内存扇区计数在扩展内存阈值之下时解压缩数据块。
本发明也具有操作地连接到存储器的存储控制器,压缩和解压缩仅当存储控制器没有执行存储访问请求时由压缩存储管理器执行。优先级压缩内存阈值寄存器操作地连接到压缩存储管理器,并且包含优先级压缩内存阈值。压缩存储管理器可以还适合于当使用内存扇区计数在优先级压缩内存阈值之上时压缩存储器中的数据块,不管存储控制器的存储访问请求活动。扇区转换表包含数据块的压缩属性,包括指示全零数据块的零属性。压缩存储管理器还适合于将具有零属性的数据块作为零条目存储在存储器中,其中零条目避免使用内存扇区。压缩存储管理器还适合于在压缩具有较低可压缩性属性的数据块之前压缩具有较高可压缩性属性的数据块。
本发明使用一种利用计算机系统中的分扇区压缩存储器的方法。该方法包括监控存储器的使用内存扇区计数,当使用内存扇区计数在压缩内存阈值之上时压缩存储器中的数据块,以及当使用内存扇区计数在扩展内存阈值之下时解压缩数据块。本发明在压缩较新近访问的数据块之前压缩较不新近访问的数据块。压缩和解压缩当计算机系统中的压缩存储管理器不执行存储访问请求时执行。另外,当使用内存扇区计数在优先级压缩内存阈值之下时,本发明压缩存储器中的数据块,而不管压缩存储管理器的存储访问请求活动。本发明总是将具有全零的数据块作为零条目存储在存储器中,零条目避免使用内存扇区。本发明在压缩具有较低可压缩性的数据块之前压缩具有较高可压缩性的数据块。解压缩仅避免解压缩未压缩的数据块。本发明也避免压缩保存在计算机系统的高速缓冲存储器中的数据块。
根据本发明,为了指示给定传送周期中数据何时为全零,一种检测零数据的装置存在于到压缩器写入缓冲器的数据通路中。当给定数据块的任何传送周期不是零时,那么数据块是非零数据块。当足够的空闲内存存在时,所有非零数据块以未压缩格式存储(绕过压缩器)。否则,当空间利益存在时,数据被压缩并且作为压缩来存储。三位可压缩性程度(DOC)属性被得到并保存在每个数据块的压缩内存目录条目中。当可用内存的量在阈值限制之外时,压缩存储管理器被使能以开始选择用于释放内存的最可压缩的数据块以及用于扩展内存的压缩数据块(通过压缩或解压缩),当它扫描压缩内存目录DOC字段时。该处理继续,直到可用内存返回到预先确定阈值限制内。
当本发明应用于具有未压缩高速缓冲存储器的系统时,仅没有被高速缓冲的数据块是再压缩的候选。本发明也从压缩主存储器中去除陈旧数据。否则当未压缩高速缓冲存储器没有使用时,已经从主存储器中读出的最经常数据块地址的小(典型地32,64,或128个条目)缓冲器在硬件中维护,并且仅不位于缓冲器中的数据块是再压缩的候选。
附图说明
前述和其他目的、方面和优点将从下面参考附图的本发明优选实施方案的详细描述中更好地理解,其中:
图1说明具有高速缓冲存储器和主存储系统以及硬件压缩器和解压缩器的计算机的框图;
图2说明存储地址空间划分;
图3说明根据本发明的原理修改的压缩内存扇区转换表;
图4说明根据本发明的原理访问没有高速缓冲的压缩主存储器访问控制的方法的状态图;
图5说明根据本发明的原理,相对于总体存储器压缩比,动态地维护没有高速缓冲的压缩存储器中未压缩数据的最佳量的方法的状态图;
图6说明根据本发明原理的存储控制装置。
具体实施方式
现在参考附图,尤其参考图1,计算机系统100的框图被显示。计算机系统包括连接到公共共享存储控制器102的一个或多个处理器101,其中公共共享存储控制器102提供到系统主存储器103的访问。共享存储控制器包括用于将固定大小信息块压缩成尽可能小的块以最终存储到主存储器中的压缩器104,用于在存储的信息随后从主存储器中获得之后反向压缩操作的解压缩器105,以及用于排队运往压缩器的主存储器存储请求信息块的写队列113。处理器数据总线108用于在其他处理器和/或共享存储控制器之间传送未压缩信息。信息可以从主存储器103,通过或绕过解压缩器105经由多路复用器111传送到处理器数据总线108。类似地,信息可以从处理器数据总线108传送到写队列113,然后通过或绕过压缩器104经由多路复用器112传送到主存储器103。
主存储器103典型地由动态随机存取存储器(DRAM)构成,其中访问由存储控制器106控制。出现在处理器地址总线107上的地址称作实际地址,并且对编程环境理解和已知。出现在主存储器地址总线109上的地址称作物理地址,并且仅在存储控制器和主存储器DRAM之间使用和相关。存储控制器106中的存储管理块(MMU)硬件用来将实际处理器地址转换成虚拟物理地址空间。该转换提供一种为了有效地存储并获取压缩从而可变大小信息,以小增量分配物理内存的手段。
压缩器104通过使用指向给定串的第一实例的指针定位并置换块内重复字节串,并且根据协议编码结果,来在固定大小信息块,比方说1024字节上操作。该处理通过在固定长度上逐位比较而发生,并且由顺序计数器步进,导致恒定的完成时间。当压缩器根本不能足够地减小开始块大小以保证压缩时,后处理输出块在从仅几字节到原始块大小的范围内变化。解压缩器105通过将字节串插回由记录指针指示的位置处的块中来解码作为结果的压缩器输出块以重构原始信息块,来反向压缩器操作而起作用。即使在非常最佳的环境中,压缩器通常能够仅周围系统的数据率带宽的1/4-1/2。压缩和解压缩处理当然是线性并且也串行的,暗示着通过硬件的非常长的存储访问等待时间。
参考图2,用于划分主存储器的结构显示为项目200。压缩主存储器205是逻辑实体,因为它包括处理器程序和数据以及访问信息所必需的所有所需数据结构。逻辑压缩主存储器205从物理内存地址空间206物理地划分。在一些情况下,主存储器分区205小于可用物理内存,以提供单独区域用作具有完整目录或者在外部实现的目录212的高速缓冲存储器。应当注意,当实现时,高速缓冲存储器可能实现为物理内存206的区域201,管理量的未压缩扇区,或者作为独立存储阵列。在任何情况下,当实现时,高速缓冲存储控制器将以如果高速缓冲存储器不存在时处理器将表现的类似的方式请求到压缩主存储器的访问。
逻辑主存储器205划分成扇区转换表202,其中剩余内存分配给扇区存储203,其可能包含压缩或未压缩信息,空闲扇区指针,或者任何其他信息,只要它组织成扇区。扇区转换表区域大小与由系统内可编程寄存器定义的实际地址空间大小成比例地改变。特别地,公式(1)控制扇区转换表区域大小的转换,如下:
每个条目直接映射到处理器实际地址空间中的固定地址范围,请求地址根据公式(2)控制,如下:
例如,映射可以使用16字节转换表条目来再定位1024字节实际寻址的压缩块,分配为量256字节扇区,每个位于由存储在表条目内的25位指针指示的物理内存地址。条目也包含属性位208,其指示有效的扇区指针的数目、大小和可能其他信息。对主存储器的每个实际地址访问使得存储控制器访问与包含请求地址210的实际地址块相对应的转换表条目207。
对于读请求,MMU解码属性位208,提取有效指针209并且请求存储控制器从主存储器分扇区区域203中读出位于指示扇区204的信息。类似地,写请求导致MMU和存储控制器执行相同的动作,除了信息写到主存储器。但是,如果写请求需要比已经在转换表条目中有效的更多的扇区,那么另外的扇区需要在写可能开始之前分配给表格条目。扇区通常从作为存储在未使用扇区中的指针的栈或链表来动态维护的未使用扇区的列表中分配。分配以存储数据的扇区的绝对数目总是由扇区使用计数器或扇区空闲计数器已知,其每当扇区传送到/从未使用扇区列表时而调节。在该转换方案上存在许多可能的变化,但是所有都涉及映射为扇区转换表的主存储器的区域和映射为扇区的存储器的区域。基于DRAM的主存储器中的这些数据结构的存储以最低的成本提供最高的性能,以及容易将存储系统恢复成没有压缩和转换的典型直接映射存储器。
已经描述了典型压缩主存储系统,本发明的一种实施方案详细地描述。根据本发明,为了让压缩存储管理器(CMM)硬件使压缩存储器内未压缩数据的量达到最大,三个可编程寄存器提供建立预先确定阈值以检测分配的内存扇区计数何时在指定范围之外的装置。扩展内存阈值(EMT),压缩内存阈值(CMT)以及优先级压缩内存阈值(PCMT)寄存器总是相对于扇区使用计数器而比较。当扇区使用计数器值小于EMT时,CMM硬件被使能以定位并扩展压缩数据块。相反地,当扇区使用计数器值大于CMT或PCMT时,CMM硬件被使能以定位并压缩扩展的数据块。当使能时,CMM仅当存储器不忙于服务处理器导致的访问请求时而操作,除了当CMM因PCMT而使能时。在这种情况下,CMM操作而不管处理器活动,以使得通过压缩释放到未使用池的内存扇区的量达到最大,从而当未使用扇区池变得危险地低时缓和存储压力状况。
当CMM访问STT时,它将访问STT条目的块,典型地4到16。CMM也可以实现以根据可编程寄存器周期性地访问STT。软件可以在系统操作期间的任何时候重新编程寄存器以重新定义调节边界,以适应新的运行时间存储需求。一定级别的滞后现象应用于阈值,以避免当在阈值附近抖动扇区使用计数时CMM在扩展和压缩模式之间振动。例如,当扇区使用计数器值>CMT时,CMM使能,并且保持这样,直到扇区使用计数器值落到CMT-滞后现象偏移量(典型地64)以下。对任何阈值的所有更多参考暗示着滞后现象偏移量而不明确地陈述这样。
如上所述,一些数据块格式是如此高可压缩,以致于压缩结果足够小以与指示这样的特殊位一起适合相关STT条目自身内,不需要可用内存扇区。本发明提供一种检测这种数据块格式的“全零”情况而不需要导致通常压缩器和解压缩器系统开销(等待时间和带宽),从而使得硬件并行地在其他数据块上操作的装置。“零数据压缩器”检测零数据何时存在于到压缩器写入缓冲器的数据通路中,为了指示给定传送周期中数据何时为全零。当给定数据块的任何传送周期不是零时,那么数据块是非零数据块,否则数据块是“零”情况,并且可以立刻作为特殊编码的STT条目存储。全“零”数据块总是存储压缩以获得压缩效率。当“零”情况在存储器读访问期间被解码时,存储控制器简单地提供全零回复,而没有数据块解压缩操作。当足够空闲内存存在时,所有非零数据块以未压缩格式存储(绕过压缩器),否则当空间利益存在时数据压缩并作为压缩来存储。
参考图6,显示的是根据本发明的原理具有检测全零数据块的装置的存储控制装置。在从603到601的数据流中,处理器用多路复用器602来改进,以提供使解压缩器609输出数据601通过写队列605绕到压缩器606的手段,以提供使得存储控制器607执行未压缩主存储器数据块的压缩或压缩主存储器数据块的扩展的手段。此外,总线宽度逻辑OR功能604提供检测与从处理器数据总线603或解压缩器数据总线601传送到压缩器606写队列605的数据块相关联的任何特定周期何时不为零的手段。该逻辑条件通过逻辑信号608传达到存储控制器607。存储控制下的压缩使得未压缩数据块通过多路复用器610而绕过解压缩器609,以流过多路复用器602,通过零检测器604到达写队列605,使得数据可以通过压缩器606或者由多路复用器611绕过压缩器606而写回到存储器。存储控制下的扩展使得压缩数据块流过解压缩器609,通过多路复用器610和多路复用器602,以及通过零检测器604到达写队列605,使得数据可以通过多路复用器611而绕过压缩器606写回到存储器,作为“全零”特殊情况或未压缩。
参考图3,显示的是根据本发明的原理修改的、改进压缩内存扇区转换表(STT)302。接触(T)位304包括在每个STT条目301中,以指示处理器何时访问过特定数据块。每当STT条目被访问以服务处理器读或写请求时,该位被设置。当更新任何STT时,CMM重置该位。
三位可压缩性程度(DOC)属性字段303包括在每个STT条目301中,以解码八个唯一的压缩属性。DOC包括:“零”表示数据块是“全零”特殊情况。全零特殊情况不使用压缩内存扇区而压缩到STT条目中,绕过压缩器而不解压缩。DOC也包括“特殊”表示数据块具有总体(特殊情况,但不是零)可压缩性。“特殊”情况不使用压缩内存扇区而压缩到STT条目中。DOC包括“高”表示数据块具有高可压缩性。“高”压缩的数据块需要主存储器的1或2个内存扇区。DOC也包括“中等”表示数据块具有中等可压缩性。“中等”压缩的数据块需要主存储器的3个内存扇区。DOC包括“低”表示数据块具有低可压缩性。“低”压缩的数据需要主存储器的4个内存扇区,但不是无情况。DOC也包括“未知”表示数据块具有未知的可压缩性。“未知”未压缩的数据块没有被压缩,绕过压缩器,或者自从上次压缩以来已经改变。DOC包括“无”表示数据块不可压缩,也就是压缩不实际。DOC也包括“决不”表示数据块决不被压缩。“决不”仅当压缩对给定数据块避免时,由专用性能优化的软件来设置。
DOC值“零”到“无”由硬件建立,而“决不”的DOC值由软件建立或改变。当CMM正在压缩内存时,它选择最有利的未压缩数据块来压缩,例如,具有最高可压缩性的数据块。当CMM正在扩展内存时,仅压缩或未知数据块被选择用于解压缩。当本发明应用于具有未压缩高速缓冲存储器的系统时,仅没有被高速缓冲的数据块是再压缩的候选。否则,已经从主存储器中读出的最经常数据块地址的小(典型地32或64)缓冲在硬件中维护,并且仅不位于缓冲器中的数据块是再压缩的候选。在初始化期间,整个物理内存装满格式以建立有效误差校正。STT编码以这样一种方法定义,即允许解码为有效STT“全零”情况的重复填充图案。此时,存储器尽可能地完全压缩。随着数据在软件“启动”期间写入存储器,存储控制器将开始解压缩数据块并且分配扇区以容纳新的数据,以及设置相关的T位。没有数据块曾经压缩,直到扇区使用计数升高到EMT以上。当计数在EMT以下时,CMM将扫描STT以扫描可以扩展的压缩数据,虽然没有将被检测到,T位将被重置。当或如果扇区使用计数升高到CMT之外,那么CMM将开始扫描数据块的STT,读出未压缩数据,压缩,然后恢复具有处低或无之外的DOC以及不具有T的那些数据块的压缩数据,并且在所有情况下更新STT条目以反映计算的DOC并且重置T位。再压缩数据释放扇区,减小扇区使用计数。当计数落到低于CMT时,CMM停止。随着时间的过去,该处理将趋向于导致最可压缩,最少访问,以及全零数据块被压缩,同时维持可用内存中未压缩数据的最大量。
参考图4,显示的是使用用于使内存中未压缩数据的量达到最大,并且用于特殊地处理全零数据块的特殊措施来访问压缩主存储器的方法的状态图。最初,存储控制器保持在空闲状态401,直到访问存储器的请求被声明。此时,请求状态(地址,读/写,大小,以及全零指示)捕获在请求缓冲器中,并且请求阶段被确认。然后,在步骤403从请求地址索引的直接映射STT条目从存储器中读出并解码。
在从步骤404的存储器读访问请求决定期间,在步骤405处检测的全零数据块,在步骤410处对请求的立即数据回复之后完成。在步骤406处检测的特殊情况数据块,在数据回复在步骤410处对数据请求发出之前,必须首先在步骤409处解压缩,并且并行地,本发明在步骤412处将未压缩数据存储回存储器中。所有其他数据情况从步骤404通过405和406到步骤407处理,其中数据从由STT条目指示的内存扇区中读出。当STT条目指示数据在步骤408处压缩时,那么它在回复410以及在步骤412处作为未压缩恢复之前在步骤409处解压缩。否则,当数据已经在步骤408处未压缩时,数据回复立即在步骤410处执行。
在从步骤404的存储器写访问请求决定期间,如果数据块在步骤413处被确定为全零,那么数据块作为特殊编码的STT条目存储412。如果足够存储可用(扇区使用计数<EMT寄存器)414,非零数据块也直接存储到存储器,否则在存储数据之前数据首先在步骤415处压缩。
参考图5,显示的是为了具有最大量的未压缩数据同时维持总体存储利用率在指定范围内,调节压缩主存储器中数据压缩的方法的压缩存储管理器(CMM)状态图。CMM通过依赖于最新近使用状态,可压缩性程度(DOC)交替地压缩或扩展主存储器中的数据块来调节主存储器的利用率。CMM在存储器中整个STT范围上顺序地读出和写入STT条目的每个块。CMM首先清空缓冲器然后读出条目的下一个块。对保存在STT缓冲器中的STT条目范围的任何访问从缓冲器中服务,代替访问直接位于STT存储器中的STT条目。在缓冲器写回存储器之前,CMM在缓冲器中的每个STT条目上顺序地操作。初始地并且当由可编程使能位禁止时,CMM处于空闲状态501。但是,当使能时,CMM响应情况502,当分配的内存扇区计数或扇区使用计数在由扩展内存阈值(EMT)(扩展数据),压缩内存阈值(CMT)(压缩数据),或优先级压缩内存阈值(PCMT)(优先级压缩数据)寄存器定义的范围之外时。此时,缓冲器指针前进503,并且当缓冲器清空或者在步骤504处缓冲器指针已经绕回到第一条目时,那么在步骤505处满的缓冲器写回存储器,并且STT条目的下一块从存储器中读出以填满缓冲器。否则,如果缓冲器指针在步骤504处选择有效的STT条目。CMM跳过在最新近读取(MRR)缓冲器中找到的STT条目506,但是接触(T)位仍然在步骤515处重置并且CMM控制循环返回到空闲状态501。CMM评估在步骤506处没有跳过的条目,在扩展或压缩的上下文中508。
压缩已经压缩(或者较差可压缩)的数据是不必要的。如果数据块最近已经被访问(T设置)并且内存没有以优先级压缩,那么CMM跳过所选数据块509的压缩,并且在控制返回到空闲状态501之前重置T位。否则,从步骤509,数据将被压缩,但是必须首先在步骤510处从在STT条目中指定的位置处的内存中读出。检测包含全零的数据块在步骤511处跳过压缩。否则,数据块被压缩512,并且完全压缩到STT条目中513的那些,导致STT条目DOC更新,T位,以及数据块内存释放到“空闲内存”池515。不有利地可压缩513的数据块保持在存储器中不变,并且仅接收DOC更新和T位重置515。否则从步骤513,压缩数据在STT条目DOC更新、T位被重置、新的压缩数据位置被更新,以及数据块内存释放到“空闲内存”池515之前存储在主存储器中514。然后,控制返回到空闲状态501。
扩展已经解压缩或全零压缩的数据是不必要的516,所以再次仅T位需要在CMM控制返回到空闲状态501之前,在步骤515处重置。否则,在步骤516处,数据将在步骤519处解压缩。因此,压缩数据或者从STT条目自身处得到,当DOC=特殊时517,或者在它可以在步骤519处解压缩之前,它从由STT条目指示的位置处的主存储器中读出518。未压缩数据在步骤514存储回主存储器中,并且STT条目使用未压缩数据的新位置更新,并且T被重置,在CMM控制返回到空闲状态501之前。
本实施方案代表没有高速缓冲结构的最低成本实现。但是,本发明可以与常规独立的高速缓冲存储器一起使用以产生更高的性能。虽然,上述实施方案建议CMM仅当阈值条件502为真时使用,CMM功能也可以是周期性间隔,用于“消除”STT存储器以检测并去除可能在DRAM中累计的“软”误差。虽然,优选实施方案描述STT条目中的独立“压缩”标记,该状态可以合计到可压缩性程度(DOC)标志中以为另外的可压缩性属性提供编码空间。
虽然优选实施方案特别要求特殊“零”数据块检测器和对于这种情况用于绕过编码器和解码器装置的方法,本领域技术人员将理解,这种检测器可以容易地增强,以检测数据流通路中的任何重复固定长度格式。“零”情况是计算机系统中的最主要情况,但是应当理解,当检测器被设计以检测预先确定固定长度的任何重复格式时,小的性能增益可以实现。
使用本发明的压缩主存储器系统受益于总体较低的存储器读等待时间(较高的性能),同时仍然保持存储器压缩提供的好处。本发明提供相对于来自处理器的存储命令平衡总体存储器压缩比的自动装置,使得可用内存最大地用于存储数据和程序代码。使用存储器压缩的任何系统可实现来自本发明的性能好处。这种系统包括,但不局限于,网络或IO适配器高速缓冲存储器,磁盘存储子系统高速缓冲存储器,和处理器主存储系统。其他系统可以受益于要求的装置,以检测和处理硬件中“零”填充数据块。特别地,需要传送数据块的应用可以受益于检测这些情况并且传送指示“零”数据块的代码,从而为其他传送释放通信信道带宽。
虽然本发明已经根据优选实施方案来描述,本领域技术人员将理解,本发明可以附加权利要求的本质和范围内的修改来实践。
Claims (27)
1.一种计算机系统,包括:
存储器,其具有包括压缩数据块和未压缩数据块的数据块扇区;
扇区计数器,其操作地连接到所述存储器,并且适合于维护所述存储器的使用内存扇区计数;
压缩存储管理器,其操作地连接到所述存储器;
压缩内存阈值寄存器,其操作地连接到所述压缩存储管理器并且包含压缩内存阈值;以及
扩展内存阈值寄存器,其操作地连接到所述压缩存储管理器并且包含扩展内存阈值,
其中所述压缩存储管理器适合于当所述使用内存扇区计数在所述压缩内存阈值之上时压缩所述存储器中的数据块,以及
其中所述压缩存储管理器还适合于当所述使用内存扇区计数在所述扩展内存阈值之下时解压缩所述数据块。
2.根据权利要求1的计算机系统,还包括存储控制器,其操作地连接到所述存储器,其中所述压缩和所述解压缩仅当所述存储控制器不执行存储访问请求时由所述压缩存储管理器执行。
3.根据权利要求2的计算机系统,还包括优先级压缩内存阈值寄存器,其操作地连接到所述压缩存储管理器并且包含优先级压缩内存阈值,
其中所述压缩存储管理器还适合于当所述使用内存扇区计数在所述优先级压缩内存阈值之上时压缩所述存储器中的所述数据块,而不管所述存储控制器的存储访问请求活动。
4.根据权利要求1的计算机系统,还包括扇区转换表,其操作地连接到所述存储器并且包含所述数据块的压缩属性。
5.根据权利要求4的计算机系统,其中所述压缩属性包括指示全零数据块的零属性,
其中所述压缩存储管理器还适合于将具有所述零属性的数据块作为零条目存储在所述存储器中,其中所述零条目避免使用内存扇区。
6.根据权利要求4的计算机系统,其中所述压缩属性包括不可压缩属性、决不压缩属性,和未知可压缩性属性。
7.根据权利要求1的计算机系统,其中所述压缩存储管理器还适合于在压缩具有较低可压缩性属性的数据块之前压缩具有较高可压缩性属性的数据块。
8.一种计算机系统,包括:
存储器,其具有包括压缩数据块和未压缩数据块的数据块扇区;
扇区计数器,其操作地连接到所述存储器,并且适合于维护所述存储器的使用内存扇区计数;
压缩存储管理器,其操作地连接到所述存储器;
压缩内存阈值寄存器,其操作地连接到所述压缩存储管理器并且包含压缩内存阈值;
扇区转换表,其操作地连接到所述存储器,包含指示所述数据块何时最后访问的接触位;以及
扩展内存阈值寄存器,其操作地连接到所述压缩存储管理器,包含扩展内存阈值,
其中所述压缩存储管理器适合于当所述使用内存扇区计数在所述压缩内存阈值之上时压缩所述存储器中的数据块,
其中基于所述接触位,较不新近访问数据块在较新近访问数据块之前压缩,以及
其中所述压缩存储管理器还适合于当所述使用内存扇区计数在所述扩展内存阈值之下时解压缩所述数据块。
9.根据权利要求8的计算机系统,还包括存储控制器,其操作地连接到所述存储器,其中所述压缩和所述解压缩仅当所述存储控制器不执行存储访问请求时由所述压缩存储管理器执行。
10.根据权利要求9的计算机系统,还包括优先级压缩内存阈值寄存器,其操作地连接到所述压缩存储管理器并且包含优先级压缩内存阈值,
其中所述压缩存储管理器还适合于当所述使用内存扇区计数在所述优先级压缩内存阈值之上时压缩所述存储器中的所述数据块,而不管所述存储控制器的存储访问请求活动。
11.根据权利要求8的计算机系统,其中扇区转换表包含所述数据块的压缩属性,包括指示全零数据块的零属性,
其中所述压缩存储管理器还适合于将具有所述零属性的数据块作为零条目存储在所述存储器中,其中所述零条目避免使用内存扇区。
12.根据权利要求8的计算机系统,其中所述压缩存储管理器还适合于在压缩具有较低可压缩性属性的数据块之前压缩具有较高可压缩性属性的数据块。
13.根据权利要求8的计算机系统,其中扇区转换表包含所述数据块的压缩属性,包括不可压缩属性和决不压缩属性。
14.一种利用计算机系统中的分扇区压缩存储器的方法,所述方法包括:
监控所述存储器的使用内存扇区计数;
当所述使用内存扇区计数在压缩内存阈值之上时,压缩所述存储器中的数据块;以及
当所述使用内存扇区计数在扩展内存阈值之下时,解压缩所述数据块。
15.根据权利要求14的方法,其中所述压缩和所述解压缩当所述计算机系统中的压缩存储管理器不执行存储访问请求时执行。
16.根据权利要求15的方法,还包括当所述使用内存扇区计数在优先级压缩内存阈值之下时,压缩所述存储器中的所述数据块,不管所述压缩存储管理器的存储访问请求活动。
17.根据权利要求14的方法,还包括总是将具有全零的数据块作为零条目存储在所述存储器中,其中所述零条目避免使用内存扇区。
18.根据权利要求14的方法,其中所述压缩还包括在压缩具有较低可压缩性的数据块之前压缩具有较高可压缩性的数据块。
19.根据权利要求14的方法,其中所述解压缩仅避免解压缩未压缩的数据块。
20.根据权利要求14的方法,其中所述压缩避免压缩保存在所述计算机系统的高速缓冲存储器中的数据块。
21.一种利用计算机系统中的分扇区压缩存储器的方法,所述方法包括:
监控所述存储器的使用内存扇区计数;
当所述使用内存扇区计数在压缩内存阈值之上时,压缩所述存储器中的数据块;以及
当所述使用内存扇区计数在扩展内存阈值之下时,解压缩所述数据块,
其中所述压缩还包括在压缩较新近访问的数据块之前压缩较不新近访问的数据块。
22.根据权利要求21的方法,其中所述压缩和所述解压缩当所述计算机系统中的压缩存储管理器不执行存储访问请求时执行。
23.根据权利要求22的方法,还包括当所述使用内存扇区计数在优先级压缩内存阈值之下时,压缩所述存储器中的所述数据块,不管所述压缩存储管理器的存储访问请求活动。
24.根据权利要求21的方法,还包括总是将具有全零的数据块作为零条目存储在所述存储器中,其中所述零条目避免使用内存扇区。
25.根据权利要求21的方法,其中所述压缩还包括在压缩具有较低可压缩性的数据块之前压缩具有较高可压缩性的数据块。
26.根据权利要求21的方法,其中所述解压缩仅避免解压缩未压缩的数据块。
27.根据权利要求21的方法,其中所述压缩避免压缩保存在所述计算机系统的高速缓冲存储器中的数据块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/213,840 US6775751B2 (en) | 2002-08-06 | 2002-08-06 | System and method for using a compressed main memory based on degree of compressibility |
US10/213,840 | 2002-08-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1672135A true CN1672135A (zh) | 2005-09-21 |
CN1329845C CN1329845C (zh) | 2007-08-01 |
Family
ID=31494539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038173573A Expired - Fee Related CN1329845C (zh) | 2002-08-06 | 2003-03-03 | 利用分扇区压缩存储器的计算机系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6775751B2 (zh) |
EP (1) | EP1546886A4 (zh) |
JP (1) | JP4051375B2 (zh) |
KR (1) | KR100745532B1 (zh) |
CN (1) | CN1329845C (zh) |
AU (1) | AU2003230590A1 (zh) |
WO (1) | WO2004017208A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321187B (zh) * | 2007-06-06 | 2012-11-21 | 国际商业机器公司 | 用于备份数据的系统和方法 |
CN104008064A (zh) * | 2013-02-25 | 2014-08-27 | 国际商业机器公司 | 用于多级存储器压缩的方法和系统 |
CN104052493A (zh) * | 2013-03-12 | 2014-09-17 | 三星电子株式会社 | 数据处理系统以及操作数据处理系统的方法 |
CN104571955A (zh) * | 2014-12-27 | 2015-04-29 | 华为技术有限公司 | 提高存储容量的方法和装置 |
CN105027093A (zh) * | 2012-12-28 | 2015-11-04 | 苹果公司 | 用于压缩和紧凑虚拟存储器的方法和装置 |
CN105630687A (zh) * | 2014-10-27 | 2016-06-01 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN108780420A (zh) * | 2016-03-18 | 2018-11-09 | 高通股份有限公司 | 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取 |
CN110765031A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据存储方法、装置、移动终端及存储介质 |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7589789B2 (en) * | 1999-05-08 | 2009-09-15 | Lg Electronics Inc. | Video converting device and method for digital TV |
KR100777271B1 (ko) * | 2001-02-28 | 2007-11-20 | 엘지전자 주식회사 | 디지털 시스템의 메모리 관리 방법 |
US7761497B1 (en) * | 2001-07-13 | 2010-07-20 | Vignette Software, LLC | Storage medium having a manageable file directory structure |
US7174420B2 (en) * | 2002-10-22 | 2007-02-06 | Microsoft Corporation | Transaction-safe FAT file system |
US7363540B2 (en) * | 2002-10-22 | 2008-04-22 | Microsoft Corporation | Transaction-safe FAT file system improvements |
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
US20050071566A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Mechanism to increase data compression in a cache |
US7636810B2 (en) * | 2003-11-26 | 2009-12-22 | Intel Corporation | Method, system, and apparatus for memory compression with flexible in-memory cache |
US20050132161A1 (en) * | 2003-12-15 | 2005-06-16 | Nokia Corporation | Creation of virtual memory space in a memory |
US7512750B2 (en) * | 2003-12-31 | 2009-03-31 | Intel Corporation | Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information |
US7257693B2 (en) * | 2004-01-15 | 2007-08-14 | Intel Corporation | Multi-processor computing system that employs compressed cache lines' worth of information and processor capable of use in said system |
US7383399B2 (en) * | 2004-06-30 | 2008-06-03 | Intel Corporation | Method and apparatus for memory compression |
US7254689B1 (en) * | 2004-07-15 | 2007-08-07 | Google Inc. | Decompression of block-sorted data |
US7243191B2 (en) * | 2004-08-31 | 2007-07-10 | Intel Corporation | Compressing data in a cache memory |
US20060044934A1 (en) | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
US7702875B1 (en) * | 2004-11-18 | 2010-04-20 | Sun Microsystems, Inc. | System and method for memory compression |
US9639554B2 (en) | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
US8606830B2 (en) * | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US8321439B2 (en) | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US20060200481A1 (en) * | 2005-03-04 | 2006-09-07 | Khalid Goyan | Method and system for data optimization and protection in DSP firmware |
JP4394047B2 (ja) * | 2005-08-05 | 2010-01-06 | 信越ポリマー株式会社 | キーフレームおよび押釦スイッチ用カバー部材 |
US20070088920A1 (en) * | 2005-10-19 | 2007-04-19 | Philip Garcia | Managing data for memory, a data store, and a storage device |
WO2008007419A1 (fr) * | 2006-07-10 | 2008-01-17 | Fujitsu Microelectronics Limited | Contrôleur de mémoire |
US7809900B2 (en) * | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US7613738B2 (en) | 2007-01-16 | 2009-11-03 | Microsoft Corporation | FAT directory structure for use in transaction safe file system |
US7747664B2 (en) * | 2007-01-16 | 2010-06-29 | Microsoft Corporation | Storage system format for transaction safe file system |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US7987161B2 (en) * | 2007-08-23 | 2011-07-26 | Thomson Reuters (Markets) Llc | System and method for data compression using compression hardware |
US7895242B2 (en) * | 2007-10-31 | 2011-02-22 | Microsoft Corporation | Compressed storage management |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US7966455B2 (en) * | 2008-03-04 | 2011-06-21 | International Business Machines Corporation | Memory compression implementation in a multi-node server system with directly attached processor memory |
US8037251B2 (en) * | 2008-03-04 | 2011-10-11 | International Business Machines Corporation | Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory |
US7930483B2 (en) * | 2008-03-04 | 2011-04-19 | International Business Machines Corporation | Associativity implementation in a system with directly attached processor memory |
US7984240B2 (en) * | 2008-03-04 | 2011-07-19 | International Business Machines Corporation | Memory compression implementation in a system with directly attached processor memory |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US8108442B2 (en) * | 2008-07-22 | 2012-01-31 | Computer Associates Think, Inc. | System for compression and storage of data |
JP4461187B1 (ja) * | 2008-12-24 | 2010-05-12 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 |
US8261174B2 (en) * | 2009-01-13 | 2012-09-04 | International Business Machines Corporation | Protecting and migrating memory lines |
US8560918B1 (en) | 2009-04-21 | 2013-10-15 | Marvell International Ltd. | Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system |
US8516166B2 (en) * | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8533550B2 (en) | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
US8892809B2 (en) * | 2010-10-25 | 2014-11-18 | Marvell World Trade Ltd. | Data compression and encoding in a memory system |
US8738962B2 (en) | 2010-11-17 | 2014-05-27 | International Business Machines Corporation | Memory mirroring with memory compression |
US8495267B2 (en) | 2010-11-24 | 2013-07-23 | International Business Machines Corporation | Managing shared computer memory using multiple interrupts |
US8452900B2 (en) * | 2010-12-30 | 2013-05-28 | Emc Corporation | Dynamic compression of an I/O data block |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US8909608B2 (en) * | 2012-06-14 | 2014-12-09 | International Business Machines Corporation | Reducing decompression latency in a compression storage system |
US9053018B2 (en) * | 2012-06-29 | 2015-06-09 | International Business Machines Corporation | Compressed memory page selection based on a population count of a dataset |
KR20140035082A (ko) * | 2012-09-13 | 2014-03-21 | 삼성전자주식회사 | 메모리 관리방법 |
KR102081980B1 (ko) | 2012-10-08 | 2020-02-27 | 삼성전자 주식회사 | 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법 |
US9176858B2 (en) * | 2012-11-19 | 2015-11-03 | Hitachi, Ltd. | Storage system configured to selectively utilize data compression based on real pool usage rates |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
KR101423867B1 (ko) * | 2013-01-30 | 2014-07-29 | 재단법인 다차원 스마트 아이티 융합시스템 연구단 | L2 이상의 레벨 캐쉬 캐시를 관리하는 장치 및 방법 |
US10102148B2 (en) | 2013-06-13 | 2018-10-16 | Microsoft Technology Licensing, Llc | Page-based compressed storage management |
US11132300B2 (en) * | 2013-07-11 | 2021-09-28 | Advanced Micro Devices, Inc. | Memory hierarchy using page-based compression |
US9477605B2 (en) | 2013-07-11 | 2016-10-25 | Advanced Micro Devices, Inc. | Memory hierarchy using row-based compression |
KR102114388B1 (ko) * | 2013-10-18 | 2020-06-05 | 삼성전자주식회사 | 전자 장치의 메모리 압축 방법 및 장치 |
US9491103B2 (en) * | 2014-02-28 | 2016-11-08 | Qualcomm Incorporated | Introducing uncompressed packets in compression flow based on flow control |
JP2015176245A (ja) * | 2014-03-13 | 2015-10-05 | 株式会社東芝 | 情報処理装置及びデータ構造 |
US9684625B2 (en) | 2014-03-21 | 2017-06-20 | Microsoft Technology Licensing, Llc | Asynchronously prefetching sharable memory pages |
US9778881B2 (en) * | 2014-06-27 | 2017-10-03 | EMC IP Holding Company LLC | Techniques for automatically freeing space in a log-structured storage system based on segment fragmentation |
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
US9727479B1 (en) * | 2014-09-30 | 2017-08-08 | EMC IP Holding Company LLC | Compressing portions of a buffer cache using an LRU queue |
US20160124684A1 (en) * | 2014-10-30 | 2016-05-05 | ScaleFlux | Method to realize object-oriented in-memory data storage and processing |
US9632924B2 (en) | 2015-03-02 | 2017-04-25 | Microsoft Technology Licensing, Llc | Using memory compression to reduce memory commit charge |
US10037270B2 (en) | 2015-04-14 | 2018-07-31 | Microsoft Technology Licensing, Llc | Reducing memory commit charge when compressing memory |
US9766816B2 (en) * | 2015-09-25 | 2017-09-19 | Seagate Technology Llc | Compression sampling in tiered storage |
US20170109367A1 (en) * | 2015-10-16 | 2017-04-20 | International Business Machines Corporation | Early compression related processing with offline compression |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10152322B2 (en) | 2015-11-05 | 2018-12-11 | International Business Machines Corporation | Memory move instruction sequence including a stream of copy-type and paste-type instructions |
US10346164B2 (en) * | 2015-11-05 | 2019-07-09 | International Business Machines Corporation | Memory move instruction sequence targeting an accelerator switchboard |
US10140052B2 (en) | 2015-11-05 | 2018-11-27 | International Business Machines Corporation | Memory access in a data processing system utilizing copy and paste instructions |
US10241945B2 (en) | 2015-11-05 | 2019-03-26 | International Business Machines Corporation | Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions |
US10126952B2 (en) | 2015-11-05 | 2018-11-13 | International Business Machines Corporation | Memory move instruction sequence targeting a memory-mapped device |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US9996473B2 (en) | 2015-11-13 | 2018-06-12 | Samsung Electronics., Ltd | Selective underlying exposure storage mapping |
US9946642B2 (en) | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
US9940028B2 (en) | 2015-11-13 | 2018-04-10 | Samsung Electronics Co., Ltd | Multimode storage device |
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 |
US10176090B2 (en) * | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
US10387305B2 (en) * | 2016-12-23 | 2019-08-20 | Intel Corporation | Techniques for compression memory coloring |
US10417141B2 (en) * | 2017-05-22 | 2019-09-17 | Arm Limited | Method and apparatus for hardware management of multiple memory pools |
US10649967B2 (en) * | 2017-07-18 | 2020-05-12 | Vmware, Inc. | Memory object pool use in a distributed index and query system |
US11151155B2 (en) | 2017-07-18 | 2021-10-19 | Vmware, Inc. | Memory use in a distributed index and query system |
US11977525B2 (en) * | 2021-03-04 | 2024-05-07 | EMC IP Holding Company LLC | Method to optimize ingest in dedupe systems by using compressibility hints |
CN114885359B (zh) * | 2022-06-09 | 2024-09-06 | 中国联合网络通信集团有限公司 | 时延性能评估方法、接入网设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2108833A1 (en) * | 1992-10-22 | 1994-04-23 | Masanori Ishii | File compression processor |
US5710909A (en) * | 1996-01-23 | 1998-01-20 | International Business Machines Corporation | Data compression utilization method and apparatus for computer main store |
US6038571A (en) * | 1996-01-31 | 2000-03-14 | Kabushiki Kaisha Toshiba | Resource management method and apparatus for information processing system of multitasking facility |
US6000009A (en) * | 1997-05-06 | 1999-12-07 | International Business Machines Corporation | Method and apparatus for allocation of disk memory space for compressed data records |
US7024512B1 (en) * | 1998-02-10 | 2006-04-04 | International Business Machines Corporation | Compression store free-space management |
US6549995B1 (en) | 2000-01-06 | 2003-04-15 | International Business Machines Corporation | Compressor system memory organization and method for low latency access to uncompressed memory regions |
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 |
US6519733B1 (en) | 2000-02-23 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for high integrity hardware memory compression |
US6457104B1 (en) | 2000-03-20 | 2002-09-24 | International Business Machines Corporation | System and method for recycling stale memory content in compressed memory systems |
US6877081B2 (en) * | 2001-02-13 | 2005-04-05 | International Business Machines Corporation | System and method for managing memory compression transparent to an operating system |
-
2002
- 2002-08-06 US US10/213,840 patent/US6775751B2/en not_active Expired - Fee Related
-
2003
- 2003-03-03 EP EP03723675A patent/EP1546886A4/en not_active Withdrawn
- 2003-03-03 WO PCT/US2003/006554 patent/WO2004017208A1/en active Application Filing
- 2003-03-03 JP JP2004529049A patent/JP4051375B2/ja not_active Expired - Fee Related
- 2003-03-03 CN CNB038173573A patent/CN1329845C/zh not_active Expired - Fee Related
- 2003-03-03 AU AU2003230590A patent/AU2003230590A1/en not_active Abandoned
- 2003-03-03 KR KR1020057001784A patent/KR100745532B1/ko not_active IP Right Cessation
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321187B (zh) * | 2007-06-06 | 2012-11-21 | 国际商业机器公司 | 用于备份数据的系统和方法 |
CN105027093A (zh) * | 2012-12-28 | 2015-11-04 | 苹果公司 | 用于压缩和紧凑虚拟存储器的方法和装置 |
US10970203B2 (en) | 2012-12-28 | 2021-04-06 | Apple Inc. | Methods and apparatus for compressed and compacted virtual memory |
CN105027093B (zh) * | 2012-12-28 | 2020-02-21 | 苹果公司 | 用于压缩和紧凑虚拟存储器的方法和装置 |
US9852055B2 (en) | 2013-02-25 | 2017-12-26 | International Business Machines Corporation | Multi-level memory compression |
CN104008064B (zh) * | 2013-02-25 | 2017-09-15 | 国际商业机器公司 | 用于多级存储器压缩的方法和系统 |
US9852056B2 (en) | 2013-02-25 | 2017-12-26 | International Business Machines Corporation | Multi-level memory compression |
CN104008064A (zh) * | 2013-02-25 | 2014-08-27 | 国际商业机器公司 | 用于多级存储器压缩的方法和系统 |
CN104052493B (zh) * | 2013-03-12 | 2019-05-28 | 三星电子株式会社 | 数据处理系统以及操作数据处理系统的方法 |
CN104052493A (zh) * | 2013-03-12 | 2014-09-17 | 三星电子株式会社 | 数据处理系统以及操作数据处理系统的方法 |
US10146680B2 (en) | 2013-03-12 | 2018-12-04 | Samsung Electronics Co., Ltd. | Data processing system and method of operating the same |
CN105630687B (zh) * | 2014-10-27 | 2019-01-08 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN105630687A (zh) * | 2014-10-27 | 2016-06-01 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN104571955A (zh) * | 2014-12-27 | 2015-04-29 | 华为技术有限公司 | 提高存储容量的方法和装置 |
CN108780420A (zh) * | 2016-03-18 | 2018-11-09 | 高通股份有限公司 | 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取 |
CN108780420B (zh) * | 2016-03-18 | 2022-05-03 | 高通股份有限公司 | 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取 |
CN110765031A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据存储方法、装置、移动终端及存储介质 |
WO2021057665A1 (zh) * | 2019-09-27 | 2021-04-01 | Oppo广东移动通信有限公司 | 数据存储方法、装置、移动终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1546886A4 (en) | 2008-05-21 |
EP1546886A1 (en) | 2005-06-29 |
JP2005535051A (ja) | 2005-11-17 |
CN1329845C (zh) | 2007-08-01 |
KR100745532B1 (ko) | 2007-08-03 |
US6775751B2 (en) | 2004-08-10 |
JP4051375B2 (ja) | 2008-02-20 |
AU2003230590A1 (en) | 2004-03-03 |
US20040030847A1 (en) | 2004-02-12 |
KR20050027270A (ko) | 2005-03-18 |
WO2004017208A1 (en) | 2004-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1329845C (zh) | 利用分扇区压缩存储器的计算机系统和方法 | |
US7047382B2 (en) | System and method for managing compression and decompression and decompression of system memory in a computer system | |
CN101526923B (zh) | 一种数据处理方法、装置和闪存存储系统 | |
US7188227B2 (en) | Adaptive memory compression | |
US11112971B2 (en) | Storage device, data management method, and data management program | |
JP2713369B2 (ja) | データ圧縮装置及び方法 | |
TWI238935B (en) | Reconfigurable cache controller for nonuniform memory access computer systems | |
US6549995B1 (en) | Compressor system memory organization and method for low latency access to uncompressed memory regions | |
US20130124794A1 (en) | Logical to physical address mapping in storage systems comprising solid state memory devices | |
EP3414665A1 (en) | Profiling cache replacement | |
EP2519883A2 (en) | Efficient use of hybrid media in cache architectures | |
US11922016B2 (en) | Managing free space in a compressed memory system | |
US20240160579A1 (en) | Accessing compressed computer memory | |
US10310984B2 (en) | Storage apparatus and storage control method | |
WO2015142341A1 (en) | Dynamic memory expansion by data compression | |
US6571362B1 (en) | Method and system of reformatting data blocks for storage as larger size data blocks | |
CN117312256B (zh) | 文件系统、操作系统和电子设备 | |
CN117312261B (zh) | 文件的压缩编码方法、装置存储介质及电子设备 | |
CN117312260B (zh) | 文件的压缩存储方法、装置、存储介质和电子设备 | |
US10444991B1 (en) | In-place resumable partial decompression | |
CA2152668C (en) | Memory management of compressed memory pages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070801 Termination date: 20190303 |