BDI压缩 Base-Delta-Immediate Compression: Practical Data Compression for On-Chip Caches 论文解读

写在前面

本篇是CACHE压缩技术的第五篇,解读的论文是

Base-Delta-Immediate Compression: Practical Data Compression for
On-Chip Caches

作者是来自CMU和INTEL的实验室的研究人员

其他Cache压缩、Cache原理的文章链接如下:
FPC压缩论文解读

FLIP-N-WRITE详解

数据压缩学习(一)

数据压缩学习(三)

背景知识

Cache压缩技术是一种很有前途的提高片内Cache容量、降低片内和片外带宽利用率的技术。不幸的是,直接应用众所周知的压缩算法(通常在软件中实现)会导致高硬件复杂性和不可接受的解压缩/压缩特性,进而会对性能产生负面影响。因此,需要一种简单而高效的压缩技术,能够有效地压缩缓存中常见的数据模式,并且对缓存访问延迟的影响最小。

缓存压缩是在缓存填充后(在提供关键字之后)在后台进行的,
而缓存解压缩是在缓存命中的关键路径上进行的,其中最小化延迟对性能极其重要。
事实上,由于一级缓存命中时间是最重要的,因此在本研究中,我们只考虑二级缓存的压缩

三个核心目标

同时解决压缩比小、硬件复杂度高、解压缩延迟大的问题。

数据压缩的几种模式

实际应用程序访问的数据中存在大量冗余。有多种模式导致了这种冗余。我们在下面总结了这些模式中最常见的一些:

  1. 零模式
    零是应用数据中最常见的值。原因是多方面的。例如,零最常用于初始化数据、表示空指针或假布尔值以及表示稀疏矩阵(密集形式)。
  2. 重复模式
    一个大的连续内存区域可能包含一个重复多次的值[23]。这种模式广泛存在于对大数组使用公共初始值的应用程序中,或者在相邻像素的大量数目具有相同颜色的多媒体应用程序中
  3. 窄模式
    一句话就是习惯性把count设成double/long类型结果上限就是10,浪费极大
    窄值是使用大数据类型存储的小值:例如,作为四字节整数存储的一个字节值。由于过度配置或数据对齐,应用程序数据中通常会出现窄值。程序员通常会在最坏的情况下预测各种数据结构中的数据类型,即使大多数值可能适合较小的数据类型。例如,存储计数器表需要设置数据类型以容纳计数器的最大可能值。然而,可能的情况是最大可能的计数器值需要4个字节,而一个字节可能足以存储大多数计数器值。
  4. 其他模式
    还有一些其他常见的数据模式不属于上述三类中的任何一类:指向同一内存区域中不同位置的指针表、低颜色梯度变化的图像,等。

下图给出了上述问题方案的一些对比
在这里插入图片描述

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值