CN1853170A - 压缩高速缓存内数据的机制 - Google Patents
压缩高速缓存内数据的机制 Download PDFInfo
- Publication number
- CN1853170A CN1853170A CNA2004800271756A CN200480027175A CN1853170A CN 1853170 A CN1853170 A CN 1853170A CN A2004800271756 A CNA2004800271756 A CN A2004800271756A CN 200480027175 A CN200480027175 A CN 200480027175A CN 1853170 A CN1853170 A CN 1853170A
- Authority
- CN
- China
- Prior art keywords
- cache
- compressed
- cache line
- computer system
- companion
- 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
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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 Of A Hierarchy Structure (AREA)
Abstract
根据一个实施例揭示了一种计算机系统。该计算机系统包括中央处理单元(CPU)和耦合至该CPU的高速缓存存储器。该高速缓存存储器包括存储额外数据的多个可压缩高速缓存行。
Description
技术领域
本发明涉及计算机系统;尤其涉及中央处理单元(CPU)高速缓存。
背景技术
现今使用各种方法来压缩诸如随机存取存储器(RAM)的计算机系统主存储器的内容。这些方法降低了提供相同性能所需的物理存储器空间的量。例如,如果使用2∶1的比率压缩存储器,则该存储器就能以相同的成本存储两倍的数据量,或以一半的成本存储相同的数据量。
其中的一种方法是由位于New York,Armonk的International BusinessMachines(IBM)所开发的存储器扩展技术(MXT)。MXT地址系统存储器在存储器系统体系结构上的花费使得安装的主存储器有效容量翻倍。逻辑加强的压缩器和解压缩器硬件引擎提供了当数据在共享高速缓存和主存储器之间传送时能够同时压缩和解压缩该数据的装置。压缩器在算法允许的情况下将数据块编码压缩。
尽管如此,压缩存储在高速缓存内数据的方法却尚未出现。具有压缩高速缓存数据的能力可导致与主存储器压缩类似的优点(例如降低了提供相同性能所需的高速缓存空间的量)。
附图说明
参考以下给出的详尽描述和本发明各实施例的附图就能够更充分地理解本发明。尽管如此,所述附图不应作为本发明具体实施例的限制,而仅用于解释和理解。
图1示出了计算机系统的一个实施例;
图2示出了物理高速缓存的组织的一个实施例;
图3示出了逻辑高速缓存的组织的一个实施例;
图4A示出了在未压缩的高速缓存内实现的示例存储器寻址;
图4B示出了在压缩的高速缓存内实现的存储器地址的一个实施例;
图5示出了用于被压缩的高速缓存的标志阵列条目的一个实施例;
图6是示出了高速缓存控制器的一个实施例的框图;
图7示出了在被压缩高速缓存中一组和路径选择机制方法的一个实施例;
图8示出了标志比较逻辑的一个实施例;
图9示出了用于被压缩的高速缓存的标志阵列条目的另一个实施例;
图10示出了标志比较逻辑的另一个实施例;
图11示出了字节选择逻辑的一个实施例。
具体实施方式
描述一种在高速缓存内压缩数据的机制。在随后的描述中将阐明大量的细节。然而本领域普通技术人员明白,没有这些细节也能够实现本发明。在另外的实施例中,已知的结构和设备是以框图形式而非细节形式示出,从而避免淡化发明主题。
在说明中,对“某个实施例”和“一个实施例”的引用意指在本发明的至少一个实施例中包括了结合该实施例而描述的特定特征、结构或性能。在说明书中各部分出现的短语“在一个实施例中”无需全部指同一实施例。
图1是计算机系统100的一个实施例的框图。计算机系统100包括耦合至总线105的中央处理单元(CPU)102。在一个实施例中,CPU 102是可从California,Santa Clara的Intel公司购买的Pentium处理器系列的处理器,包括PentiumII处理器系列、PentiumIII处理器和PentiumIV处理器。另外也可使用其它的CPU。
芯片组107也耦合至总线105。芯片组107包括存储器控制集线器(MCH)110。MCH 110可包括耦合至主系统存储器115的系统控制器112。主系统存储器115存储可由CPU 102或包括在系统100内的任何其它设备所执行的由数据信号表示的数据、指令序列和代码。
在一个实施例中,主系统存储器115包括动态随机存取存储器(DRAM);然而也可使用其它的存储器类型实现主系统存储器115。另外的设备也可耦合至总线105,诸如多个CPU和/或多个系统存储器。
在一个实施例中,MCH 110经由集线器接口耦合至输入/输出控制集线器(ICH)140。ICH 140提供计算机系统100内与输入/输出(I/O)设备的接口。例如,ICH 140可以耦合至遵守由Oregon,Portland的PCI Special Interest公司开发的修订规范2.1总线的外围元件互连总线。
根据一个实施例,高速缓存存储器103位于处理器102内并且存储也存储在存储器115内的数据信号。高速缓存103通过其本地存取的优势能使得高速缓存103加速存储器的存取。在另一个实施例中,高速缓存103位于处理器102的外部。
根据另一个实施例,高速缓存103包括能够在相同数量的区域内存储额外数据的被压缩高速缓存行。图2示出了高速缓存103的物理的组织的一个实施例。在一个实施例中,高速缓存103是512组、4路线组相联高速缓存。然而本领域普通技术人员显而易见的是,可也以其它大小实现高速缓存而不背离本发明的真正范围。
一个标志与一个组内的每一行相关联。而一个压缩位则与每个标志相关联。压缩位表示各自的高速缓存行是否保有被压缩数据。同伴行是仅有同伴位不同的两行(例如在行对齐中对齐的两个相继存储器行)。
在一个实施例中,选择同伴位使得同伴行是相邻行。然而可以选择任何位作为同伴位。在其它实施例中,也能够使用编码高速缓存行状态的其它位(诸如MESI状态位)来编码所述压缩指示,从而完全消除此空间的过载。
当没有被置位所述压缩位时,高速缓存行的物理存储器就保持一行未压缩。图2中阴影的压缩位示出了被压缩的高速缓存行。图3示出了高速缓存103的逻辑组织的一个实施例。如图3所示,根据2∶1压缩方案来压缩高速缓存行。例如组0的第二行被压缩,这就存储了两个而非一个高速缓存行。
在一个实施例中,未被压缩时每个高速缓存行保存64字节的数据。这样,被压缩时每个高速缓存行就保存128字节的数据。描述压缩方案的效果是将每个高速缓存标志映射至一个长度可变的逻辑高速缓存行。结果是高速缓存103可以存储两倍的数据量且不增加其物理大小。
重新参见图1,高速缓存控制器104耦合至高速缓存103用以管理高速缓存103的操作。更具体地,高速缓存控制器104执行高速缓存103的查找操作。根据一个实施例,对用于将地址映射至物理组和切换路径的散列函数从在典型高速缓存控制器内使用的散列函数加以修改。在一个实施例中,组织该散列函数使得同伴行映射至所述相同的组。从而可将同伴行一起压缩至使用一个地址标志的单个行(例如路径)。
图4A示出了在未压缩高速缓存内实现的典型存储器地址。在传统的高速缓存中是根据标志、组和偏移部分来划分地址的。组部分用于选择行中的一组。类似地,偏移部分是地址的低位,用于选择行内的字节。
图4B示出了在被压缩高速缓存内实现查找的存储器地址的一个实施例。图4B示出了用于将同伴行映射至所述相同组的一个同伴位的实现。所述同伴位是用于行未被压缩的实例中的。因此,如果某行未被压缩,则所述同伴位就指明将使用哪两个被压缩的同伴行。
在一个实施例,用于组选择的地址位窗口向左移动一格以使得所述同伴位位于组选择和字节偏移位之间。这样由于所述同伴位和组选择位不会交叠,所以同伴行就可映射至所述相同的高速缓存行。现在不再是组选择位一部分的同伴位就成为了标志的一部分,虽然实际标志的大小并未增加。在传统的未压缩高速缓存中,同伴位是地址的一部分并且被用于组选择以确定某地址是散列至奇数还是偶数高速缓存组。
图5示出了用于被压缩高速缓存的标志阵列条目的一个实施例。标志阵列条目包括同伴位(例如作为地址标志位的一部分)和压缩位。压缩位使得被压缩高速缓存103的标志要比传统的未压缩高速缓存的标志多一位。压缩位指示某行是否被压缩。
更具体地,压缩位指定如何处理同伴位。如果压缩位指明某行被压缩,则由于该行是被压缩对所以就把同伴位当成偏移的一部分。如果压缩位指明未压缩,就把同伴位当成所述标志阵列的一部分并忽略其作为所述偏移的一部分。
图6是示出了高速缓存控制器104的一个实施例的框图。高速缓存控制器104包括组和路径选择逻辑610、字节选择逻辑620和压缩逻辑630。组和路径选择逻辑610用于选择高速缓存103内的高速缓存行。图7示出了在被压缩高速缓存内的组和路径选择逻辑610的一个实施例。
参见图7,组和路径选择逻辑610包括了接收来自标志阵列的输入以基于接收到的地址来选择高速缓存行的标志比较逻辑710。标志比较逻辑710考虑一高速缓存行是否保存被压缩的数据。因为高速缓存行保存可变的数据大小,所以标志比较逻辑710依据具体某行被压缩与否也具有可变长度。因此,标志匹配要考虑所述压缩位。
图8示出了一个包括有XNOR门1-n、OR门和AND门的标志比较逻辑710的实施例。所述XNOR门和AND门包括在传统的未压缩高速缓存中,并且用于将所述地址与标志阵列内的阵列条目比较直到找出匹配。OR门则被用来依据某行的压缩状态来选择所述同伴位。
依据压缩位被置位与否能够选择性地忽略所述同伴位。如上讨论,如果压缩位被置位,则由于所述高速缓存行包含了两个同伴,所以就可在标志匹配期间忽略该地址的同伴位。如果压缩位未被置位,就比较该地址的同伴位和该标志的同伴位。
因此,所述等算子的“XNOR的乘积”机构就使用OR门选择性地忽略所述同伴位。在一个实施例中,因为在压缩位被置位时可忽略该标志的同伴位(例如它是“无关的”),所以就可将该标志的同伴位用于其它用途。例如在某行被压缩时,可将该位用作压缩格式位用于在两种不同压缩算法间的选择。在另一个实例中,可使用该同伴位来编码压缩行内的各同伴行次序。
在其它的实施例中,由每个高速缓存行分隔成的两个段只有当被压缩在一起时才能把它们存储在相同的物理高速缓存行内。在所述标志条目内,所述同伴和压缩位如图9所示成为了段存在标志。在此实施例中,所述同伴位是段标识符(例如上部的或下部的),这样就被重新标志作为段ID。
因此,“01”指示一较低段(未压缩),“10”指示一较高段(未压缩)而“11”指示这两个段(2∶1压缩)。同样在此排列下,物理高速缓存行的大小与逻辑段的大小相同。当未被压缩时,某行的每个段被存储在相同组内的不同物理行中(例如相同组的不同路径)。
当可压缩率至少为2∶1时,每一行的所述两个段就被存储在单个物理高速缓存行中(例如在一路径中)。重要的是这与传统的分段高速缓存设计的不同在于给定逻辑行的不同逻辑段在未被压缩时可被同时存储在不同的路径内。
在一个实施例中,空编码(“00”)用于表示一无效条目,这就潜在地降低了在与编码MESI状态的其它位结合的情况下所述标志位的成本。因为这仅仅是一种可选编码,所以段存在位就请求略微不同的逻辑以检测标志匹配。图10示出了实现段存在编码的标志同伴逻辑610的另一个实施例。
重新参考图6,字节选择逻辑620选择某行内的寻址数据。根据一个实施例,字节选择逻辑620依靠所述压缩位。图11示出了字节选择逻辑620的一个实施例。字节选择逻辑620包括了如果需要能解压缩所选的高速缓存行的解压缩器1110。输入多路复用器依据所述压缩位在被解压缩的高速缓存行和未压缩的高速缓存行之间作出选择。
在一个实施例中,偏移的范围依据该行是否被压缩。如果该行被压缩,则该地址的同伴位就被用作偏移的高位。如果该行未被压缩,就绕过解压缩器1110并且不把该地址的同伴位被用于偏移。将所选行保存在其大小是该物理行大小两倍的缓冲内以容纳被压缩数据。
可选实施例能够选择使用同伴位以选择将解压缩字的哪半部分存储在其长度与所述物理行大小相同的缓冲内。然而,缓冲一整行是便于在写入该高速缓存之后的修改和再压缩数据。
重新参考图6,压缩逻辑630用于压缩高速缓存行。在一个实施例中,根据Lempel-Ziv压缩算法压缩高速缓存行。然而在其它实施例中,也可使用其它的压缩算法(例如WK、X-Match、符号位压缩、游程长度压缩等)来压缩高速缓存行。
压缩逻辑6.0也可用于确定何时压缩某行。根据一个实施例,使用机会主义压缩来确定何时压缩某行。在机会主义压缩中,当出现高速缓存失败时,就从存储器115中取来所要求的高速缓存行并且如果其同伴行位于高速缓存内,则高速缓存103就尝试将两个同伴压缩成一行。如果所述同伴行不在高速缓存103内或者如果两个同伴不是2∶1可压缩的,则高速缓存103随后就使用它的标准置换算法来为取来的行给出空间。
此外,高速缓存103重新使用常驻同伴的高速缓存行来存储同伴的新近压缩对以避免置换。要注意,修改所述标志匹配算子以检查所述同伴行是否常驻而无需进行第二次高速缓存存取是很方便的。例如,如果除了同伴位之外的所有地址标志位都匹配,则所述同伴行就是常驻的。
在另一个实施例中,使用预取机制来确定是否要压缩行。在所述预取机制中,通过添加预取来改善所述机会主义方法。如果要求读取行的同伴不是常驻的,则所述高速缓存预取所述同伴并且尝试把两个同伴压缩成一行。
如果两个同伴行不能以2∶1压缩,则高速缓存103就要作出放弃该预取行(这样就浪费了总线带宽)或者是在高速缓存内存储该未压缩预取行(这样就潜在地导致了组内总计两行被置换)的选择。在一个实施例中,所述硬件可依据该程序所显示出的空间局部性和容许时延的多少而这这些策略间进行适应性地切换。
在另一个实施例中,使用干扰压缩机制来确定是否要压缩行。对于干扰压缩,存在对将要被驱逐的某行(例如一个干扰)的压缩尝试。如果一个干扰尚未被压缩并且它的同伴是常驻的,那么高速缓存103就给予该干扰一个通过尝试压缩它和它的同伴能够仍然常驻在该高速缓存中的机会。如果该干扰已经被压缩,它的同伴不是常驻的或者该干扰和它的同伴不是2∶1可压缩的,则随后就驱逐该干扰。另外,高速缓存103重新使用常驻同伴的高速缓存行以存储同伴的被压缩对,从而避免了该驱逐。
在写入数据时,则某行的可压缩率可能会改变。对同伴被压缩对的一次写入可引发该对不再可压缩。如果被压缩的高速缓存行变得不可压缩,则可以采取三种方法。第一种方法是简单驱逐另一行从而为扩展引起的额外行腾出空位。这在组内所有行都被压缩的情况下会导致两个同伴行都被驱逐。
第二种方法是驱逐被写入行的同伴。第三种方法是驱逐以前被写入的行。采取哪一种方法部分取决于被压缩高速缓存103和最靠近处理器的下一个高速缓存之间的交互(例如,如果L3是被压缩的高速缓存,则它就取决于L3和L2之间的交互)。
假设被压缩的高速缓存是包括了L3的高速缓存并且L2是写回高速缓存,则前两种方法包括在所述L2高速缓存内被驱逐行的无效以保持多级包含,这就有驱逐L2或L1中当前被存取的高速缓存行的危险。第三种方法不要求L2的无效并且由于正写入的行正从L2中驱逐,所以没有驱逐L2中当前被存取的高速缓存行的危险。
上述机制允许映射至相同组并且仅仅允许同伴位不同的两个高速缓存行被压缩成一个高速缓存行。在一个实施例中,所述机制修改组映射函数并且选择该同伴位使得其允许相邻的存储器行利用空间位置的优势而被压缩在一起。
虽然本发明的许多变化和修改在本领域普通技术人员阅读先前描述之后将变得显而易见,但应该理解的是通过图示示出并描述的任何具体实施例仅出于示例性而非限制性的目的。因此对各实施例细节的参考不限制本发明的权利要求的范围,而权利要求本身仅叙述关于本发明的特性。
Claims (47)
1.一种计算机系统,包括:
中央处理单元(CPU);以及
高速缓存存储器,它耦合至所述CPU并具有存储额外数据的多个可压缩高速缓存行。
2.如权利要求1所述的计算机系统,其特征在于,所述计算机系统还包括执行所述高速缓存存储器查找操作的高速缓存控制器。
3.如权利要求1所述的计算机系统,其特征在于,所述高速缓存控制器包括在所述CPU之内。
4.如权利要求2所述的计算机系统,其特征在于,所述高速缓存控制器包括对应于多个高速缓存行中每一行的标志阵列,每个标志都具有指示对应高速缓存行是否被压缩的一个或多个压缩编码位。
5.如权利要求4所述的计算机系统,其特征在于,如果所述对应的压缩位指示所述行被压缩,则单个高速缓存行存储两个或更多的高速缓存行。
6.如权利要求4所述的计算机系统,其特征在于,每个标志都包括指示同伴行存储在公共高速缓存组内的一个或多个同伴编码位。
7.如权利要求5所述的计算机系统,其特征在于,所述同伴行是相邻的存储器行。
8.如权利要求4所述的计算机系统,其特征在于,所述同伴编码位用作压缩格式位以在不同的压缩算法间作出选择。
9.如权利要求4所述的计算机系统,其特征在于,所述同伴编码位用于编码在所述被压缩行内同伴行的次序。
10.如权利要求6所述的计算机系统,其特征在于,所述高速缓存控制器还包括选择一高速缓存行的组和路径选择逻辑。
11.如权利要求10所述的计算机系统,其特征在于,所述组和路径选择逻辑包括比较高速缓存行地址和所述标志阵列内标志的标志比较逻辑。
12.如权利要求11所述的计算机系统,其特征在于,如果所述一个或多个压缩编码位指示了所述高速缓存行被压缩,所述标志比较逻辑就忽略所述地址内的所述一个或多个同伴编码位。
13.如权利要求11所述的计算机系统,其特征在于,如果所述一个或多个压缩编码位指示了所述高速缓存行未被压缩,所述标志比较逻辑就比较所述地址内的所述一个或多个同伴编码位和所述标志内的所述一个或多个同伴编码位。
14.如权利要求10所述的计算机系统,其特征在于,所述高速缓存控制器还包括压缩高速缓存行的压缩逻辑。
15.如权利要求14所述的计算机系统,其特征在于,所述压缩逻辑经由基于程序字典压缩算法来压缩高速缓存行。
16.如权利要求14所述的计算机系统,其特征在于,所述压缩逻辑经由符号位压缩算法来压缩高速缓存行。
17.如权利要求14所述的计算机系统,其特征在于,所述压缩逻辑确定何时压缩一高速缓存行。
18.如权利要求17所述的计算机系统,其特征在于,所述压缩逻辑基于机会主义压缩来压缩一高速缓存行。
19.如权利要求17所述的计算机系统,其特征在于,所述压缩逻辑基于预取压缩来压缩一高速缓存行。
20.如权利要求17所述的计算机系统,其特征在于,所述压缩逻辑基于干扰压缩来压缩一高速缓存行。
21.如权利要求14所述的计算机系统,其特征在于,所述高速缓存控制器还包括在高速缓存行内选择寻址数据的字节选择逻辑。
22.如权利要求21所述的计算机系统,其特征在于,所述字节选择逻辑包括:
解压缩所选高速缓存行的解压缩器;
在被解压缩的高速缓存行和未被解压缩的高速缓存行之间选择的输入多路复用器;以及
在所述未被压缩的高速缓存行内的同伴行之间选择的输出多路复用器。
23.一种高速缓存控制器包括:
在一高速缓存存储器设备中压缩行的压缩逻辑;以及
选择高速缓存行的组和路径逻辑。
24.如权利要求23所述的高速缓存控制器,其特征在于,还包括对应于高速缓存行中每一行的标志阵列,每个标志都具有指示对应的高速缓存行是否被压缩的一个或多个压缩编码位。
25.如权利要求24所述的高速缓存控制器,其特征在于,如果所述对应的压缩位指示所述行被压缩,则单个高速缓存行存储两个或更多的高速缓存行。
26.如权利要求24所述的高速缓存控制器,其特征在于,每个标志都包括指示哪个同伴行被存储在公共高速缓存组内的一个或多个同伴编码位。
27.如权利要求26所述的高速缓存控制器,其特征在于,所述组和路径选择逻辑包括比较高速缓存行地址和所述标志阵列内标志的标志比较逻辑。
28.如权利要求27所述的高速缓存控制器,其特征在于,如果所述一个或多个压缩编码位指示了所述高速缓存行被压缩,所述标志比较逻辑就忽略所述地址内的所述一个或多个同伴编码位。
29.如权利要求28所述的高速缓存控制器,其特征在于,如果所述一个或多个压缩编码位指示了所述高速缓存行未被压缩,所述标志比较逻辑就比较所述地址内的所述一个或多个同伴编码位和所述标志内的所述一个或多个同伴编码位。
30.如权利要求23所述的高速缓存控制器,其特征在于,所述压缩逻辑经由基于程序字典的压缩算法来压缩高速缓存行。
31.如权利要求23所述的高速缓存控制器,其特征在于,所述压缩逻辑经由符号位压缩算法来压缩高速缓存行。
32.如权利要求23所述的高速缓存控制器,其特征在于,所述压缩逻辑确定何时压缩一高速缓存行。
33.如权利要求23所述的高速缓存控制器,其特征在于,所述高速缓存控制器还包括在高速缓存行内选择寻址数据的字节选择逻辑。
34.如权利要求33所述的高速缓存控制器,其特征在于,所述字节选择逻辑包括:
解压缩所选高速缓存行的解压缩器;
在被解压缩的高速缓存行和未被解压缩的高速缓存行之间选择的输入多路复用器;以及
在所述未被压缩的高速缓存行内的同伴行之间选择的输出多路复用器。
35.一种方法包括:
确定是否要压缩一高速缓存存储器设备内的第一高速缓存行;以及
压缩所述第一高速缓存行。
36.如权利要求35所述的方法,其特征在于,压缩所述第一高速缓存行包括将来自第二高速缓存行的数据存储在所述第一高速缓存行内。
37.如权利要求35所述的方法,其特征在于,还包括分析在标志阵列中与所述第一高速缓存行相关联的标志以确定所述第一高速缓存行是否被压缩。
38.如权利要求37所述的方法,其特征在于,还包括如果所述第一高速缓存行未被压缩,则分析一个或多个同伴编码位。
39.如权利要求38所述的方法,其特征在于,还包括如果所述第一高速缓存行被压缩,则无视一个或多个同伴编码位。
40.如权利要求37所述的方法,其特征在于,还包括如果所述第一高速缓存行被压缩,则使用一个或多个同伴编码位作为一压缩格式位用于在不同的压缩算法之间进行选择。
41.如权利要求37所述的方法,其特征在于,还包括如果所述第一高速缓存行被压缩,则使用一个或多个同伴编码位来编码在所述第一高速缓存行内的同伴行的次序。
42.一种计算机系统包括:
中央处理单元(CPU);
高速缓存存储器,它耦合至所述CPU并具有存储额外数据的多个可压缩高速缓存行;
耦合至所述CPU的芯片组;以及
主存储器。
43.如权利要求1所述的计算机系统,其特征在于,所述计算机系统还包括执行所述高速缓存存储器的查找操作的高速缓存控制器。
44.如权利要求1所述的计算机系统,其特征在于,所述高速缓存控制器包括在所述CPU之内。
45.如权利要求1所述的计算机系统,其特征在于,所述高速缓存控制器包括在所述芯片组内。
46.如权利要求43所述的计算机系统,其特征在于,所述高速缓存控制器包括对应于多个高速缓存行中每一行的标志阵列,每个标志都具有指示对应高速缓存行是否被压缩的一个或多个压缩编码位。
47.如权利要求46所述的计算机系统,其特征在于,如果所述对应的压缩位指示所述行被压缩,则单个高速缓存行存储两个或更多的高速缓存行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/676,480 US7143238B2 (en) | 2003-09-30 | 2003-09-30 | Mechanism to compress data in a cache |
US10/676,480 | 2003-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1853170A true CN1853170A (zh) | 2006-10-25 |
CN100432959C CN100432959C (zh) | 2008-11-12 |
Family
ID=34377403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800271756A Expired - Fee Related CN100432959C (zh) | 2003-09-30 | 2004-09-29 | 压缩高速缓存内数据的机制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7143238B2 (zh) |
JP (1) | JP4009310B2 (zh) |
CN (1) | CN100432959C (zh) |
WO (1) | WO2005033946A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107408076A (zh) * | 2015-04-08 | 2017-11-28 | 国立大学法人奈良先端科学技术大学院大学 | 数据处理装置 |
CN107430554A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能 |
CN108733584A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于优化数据缓存的方法和设备 |
CN109564545A (zh) * | 2016-08-17 | 2019-04-02 | 超威半导体公司 | 用于压缩地址的方法和设备 |
WO2023173991A1 (en) * | 2022-03-16 | 2023-09-21 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
WO2023173995A1 (en) * | 2022-03-16 | 2023-09-21 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243191B2 (en) * | 2004-08-31 | 2007-07-10 | Intel Corporation | Compressing data in a cache memory |
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
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 |
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 |
JP5194703B2 (ja) * | 2007-10-16 | 2013-05-08 | ソニー株式会社 | データ処理装置及び共有メモリのアクセス方法 |
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 |
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 |
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 |
US20090210622A1 (en) * | 2008-02-19 | 2009-08-20 | Stefan Birrer | Compressed cache in a controller partition |
JP4653830B2 (ja) * | 2008-09-19 | 2011-03-16 | 株式会社東芝 | 命令キャッシュシステム |
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 |
US8990217B2 (en) | 2011-07-13 | 2015-03-24 | International Business Machines Corporation | Lossless compression of high nominal-range data |
US20130019029A1 (en) * | 2011-07-13 | 2013-01-17 | International Business Machines Corporation | Lossless compression of a predictive data stream having mixed data types |
US9261946B2 (en) * | 2012-10-11 | 2016-02-16 | Wisconsin Alumni Research Foundation | Energy optimized cache memory architecture exploiting spatial locality |
KR102336528B1 (ko) | 2014-07-07 | 2021-12-07 | 삼성전자 주식회사 | 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법 |
US9361228B2 (en) | 2014-08-05 | 2016-06-07 | Qualcomm Incorporated | Cache line compaction of compressed data segments |
US10025956B2 (en) * | 2015-12-18 | 2018-07-17 | Intel Corporation | Techniques to compress cryptographic metadata for memory encryption |
US10019375B2 (en) * | 2016-03-02 | 2018-07-10 | Toshiba Memory Corporation | Cache device and semiconductor device including a tag memory storing absence, compression and write state information |
US10983915B2 (en) * | 2019-08-19 | 2021-04-20 | Advanced Micro Devices, Inc. | Flexible dictionary sharing for compressed caches |
US11586554B2 (en) * | 2020-07-23 | 2023-02-21 | Arm Limited | Cache arrangements for data processing systems |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237675A (en) | 1990-06-04 | 1993-08-17 | Maxtor Corporation | Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor |
US5247638A (en) | 1990-06-18 | 1993-09-21 | Storage Technology Corporation | Apparatus for compressing data in a dynamically mapped virtual data storage subsystem |
US5206939A (en) * | 1990-09-24 | 1993-04-27 | Emc Corporation | System and method for disk mapping and data retrieval |
JP3426385B2 (ja) * | 1995-03-09 | 2003-07-14 | 富士通株式会社 | ディスク制御装置 |
US5875454A (en) | 1996-07-24 | 1999-02-23 | International Business Machiness Corporation | Compressed data cache storage system |
US6115787A (en) * | 1996-11-05 | 2000-09-05 | Hitachi, Ltd. | Disc storage system having cache memory which stores compressed data |
US5798718A (en) * | 1997-05-12 | 1998-08-25 | Lexmark International, Inc. | Sliding window data compression method and apparatus |
US6199126B1 (en) * | 1997-09-23 | 2001-03-06 | International Business Machines Corporation | Processor transparent on-the-fly instruction stream decompression |
US6092071A (en) | 1997-11-04 | 2000-07-18 | International Business Machines Corporation | Dedicated input/output processor method and apparatus for access and storage of compressed data |
US7024512B1 (en) * | 1998-02-10 | 2006-04-04 | International Business Machines Corporation | Compression store free-space management |
US6145069A (en) | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
US20010054131A1 (en) * | 1999-01-29 | 2001-12-20 | Alvarez Manuel J. | System and method for perfoming scalable embedded parallel data compression |
US6819271B2 (en) * | 1999-01-29 | 2004-11-16 | Quickshift, Inc. | Parallel compression and decompression system and method having multiple parallel compression and decompression engines |
US6289420B1 (en) | 1999-05-06 | 2001-09-11 | Sun Microsystems, Inc. | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem |
US6449689B1 (en) * | 1999-08-31 | 2002-09-10 | International Business Machines Corporation | System and method for efficiently storing compressed data on a hard disk drive |
US6507895B1 (en) * | 2000-03-30 | 2003-01-14 | Intel Corporation | Method and apparatus for access demarcation |
US6523102B1 (en) * | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US6480938B2 (en) * | 2000-12-15 | 2002-11-12 | Hewlett-Packard Company | Efficient I-cache structure to support instructions crossing line boundaries |
US6735673B2 (en) | 2002-01-10 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for cache line compression |
US6640283B2 (en) | 2002-01-16 | 2003-10-28 | Hewlett-Packard Development Company, L.P. | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size |
US6795897B2 (en) * | 2002-05-15 | 2004-09-21 | International Business Machines Corporation | Selective memory controller access path for directory caching |
US7162669B2 (en) * | 2003-06-10 | 2007-01-09 | Hewlett-Packard Development Company, L.P. | Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits |
-
2003
- 2003-09-30 US US10/676,480 patent/US7143238B2/en not_active Expired - Fee Related
-
2004
- 2004-09-29 CN CNB2004800271756A patent/CN100432959C/zh not_active Expired - Fee Related
- 2004-09-29 JP JP2006534088A patent/JP4009310B2/ja not_active Expired - Fee Related
- 2004-09-29 WO PCT/US2004/032110 patent/WO2005033946A1/en active Application Filing
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430554A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能 |
CN107408076A (zh) * | 2015-04-08 | 2017-11-28 | 国立大学法人奈良先端科学技术大学院大学 | 数据处理装置 |
CN107408076B (zh) * | 2015-04-08 | 2020-12-11 | 国立大学法人奈良先端科学技术大学院大学 | 数据处理装置 |
CN109564545A (zh) * | 2016-08-17 | 2019-04-02 | 超威半导体公司 | 用于压缩地址的方法和设备 |
CN109564545B (zh) * | 2016-08-17 | 2021-02-02 | 超威半导体公司 | 用于压缩地址的方法和设备 |
CN108733584A (zh) * | 2017-04-17 | 2018-11-02 | 伊姆西Ip控股有限责任公司 | 用于优化数据缓存的方法和设备 |
WO2023173991A1 (en) * | 2022-03-16 | 2023-09-21 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
WO2023173995A1 (en) * | 2022-03-16 | 2023-09-21 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
US12066935B2 (en) | 2022-03-16 | 2024-08-20 | International Business Machines Corporation | Cache line compression prediction and adaptive compression |
Also Published As
Publication number | Publication date |
---|---|
CN100432959C (zh) | 2008-11-12 |
US7143238B2 (en) | 2006-11-28 |
JP2007507806A (ja) | 2007-03-29 |
US20050071562A1 (en) | 2005-03-31 |
JP4009310B2 (ja) | 2007-11-14 |
WO2005033946A1 (en) | 2005-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1853170A (zh) | 压缩高速缓存内数据的机制 | |
US7162584B2 (en) | Mechanism to include hints within compressed data | |
US6879266B1 (en) | Memory module including scalable embedded parallel data compression and decompression engines | |
CN104331269B (zh) | 一种嵌入式系统可执行代码压缩方法及代码解压缩系统 | |
CN1206604C (zh) | 使用位移表建立一个完备的散列 | |
US7243191B2 (en) | Compressing data in a cache memory | |
US9330001B2 (en) | Cache system and a method of operating a cache memory | |
US20070005911A1 (en) | Operating System-Based Memory Compression for Embedded Systems | |
EP1164706A2 (en) | System and method for parallel data compression and decompression | |
US20080215849A1 (en) | Hash table operations with improved cache utilization | |
US11586555B2 (en) | Flexible dictionary sharing for compressed caches | |
CN101449462A (zh) | 基于集合关联高速缓存映射技术的高速数据压缩 | |
CN1902602A (zh) | 存储带压缩的重排序数据的机制 | |
US9378214B2 (en) | Method and system for hash key memory reduction | |
CN1324483C (zh) | 在缓存路中进行数据替换的系统和方法 | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
CN1335958A (zh) | 变指令长度处理 | |
US12001339B2 (en) | Dictionary compression device and memory system | |
CN1961295A (zh) | 高速缓冲存储器管理系统和方法 | |
CN1295624C (zh) | 高速缓冲存储器及控制方法 | |
Park et al. | Anticipatory I/O management for clustered flash translation layer in NAND flash memory |
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 |
Granted publication date: 20081112 Termination date: 20150929 |
|
EXPY | Termination of patent right or utility model |