当前位置:首页 > > 充电吧
[导读]注:【 图片来源:MIT CSAIL 所有者:MIT CSAIL 】数据压缩技术之一,就是通过消除冗余来释放存储容量,提高计算速度,或是带来其他好处。但是,在目前的计算机系统中,访问主存的成本很大。因

注:【 图片来源:MIT CSAIL 所有者:MIT CSAIL 】

数据压缩技术之一,就是通过消除冗余来释放存储容量,提高计算速度,或是带来其他好处。

但是,在目前的计算机系统中,访问主存的成本很大。因此,在存储器中使用数据压缩技术有助于减少提取数据的频率和数量,提高设备的性能。

一般来说,现代设备以固定大小的块(chunk)来进行管理和传输数据,传统的压缩技术必须在这些块上运行。然而,软件存储数据并不使用固定大小的块,而是使用对象(object),这种数据结构可以容纳各种类型的数据,它的规模的也可大可小。

因此,传统的数据压缩技术很难处理对象。

首次亮相

本周ACM国际编程语言和操作系统架构支持会议上发表的一篇论文中,MIT的研究人员描述了第一种“跨存储层次压缩对象”的技术。这种技术可以降低内存使用率,同时也可以提高性能和效率。

研究人员用改进后的Java虚拟机做了实验,结果表明,与传统压缩方法相比,这种新技术可以多压缩两倍的数据,还减少了一半的内存使用率。

CSAIL的研究生Po-An Tsai是这篇论文的第一作者,她表示,“我们试图提出一种新的存储层次结构,能够进行对象压缩,因为大部分现代编程语言都是以对象的形式管理数据的。”

合著者Daniel Sanchez是计算机科学和电子工程专业的教授,同时也是CSAIL的研究员,他补充道,“所有计算机系统都将从这项新技术中受益,程序的运行将变得更快,因为不再受制于内存带宽。”

由于Java、Python和Go这些现代编程语言以对象的形式管理数据,所以对于程序员来说,这项新技术特别实用。在不久的将来,我们就会看到设备拥有更快的速度,或者能在同一时间运行更多应用程序。

存在局限


传统的结构以块的形式将数据存储到缓存存储器(Cache)中,最近受访的块会上升到这里(上图黄色层),虽然这里空间小,但访问速度快。而旧块则会下降,最终回到主存(上图蓝色层)中。

虽然这种数据之间的调动十分灵活,但成本也不低。

在数据调动的过程中,如果目标数据不再Cache中,Cache就要访问主存,并大范围搜索数据的地址。入下图所示,Cache访问主存并返回的时间大约是100~300个周期。耗时太长,存在局限性。

推陈出新

Sanchez发现了传统模式的局限性,他思考着,“既然现代编程语言中数据管理的单位是对象,那我们为什么不建一个处理对象的存储层次结构呢?”

于是,研究人员在之前的传统存储层次结构上进行改进,便于直接处理对象。

1.Hotpad/pad

在去年10月发表的一篇论文中,研究人员详细介绍了一个名为Hotpad的系统,可以用来存储对象。由于这个系统的各个层次之间关系紧密,也可称为pad。

这整个结构基于一个芯片存储器,效率高且不需要进行复杂的搜索,因为程序可以直接引用整个pad所有对象的位置。新分配的,或最近引用的对象,以及它们指向的对象,都停留在速度最快的层次,以便快速访问。

当这个层被填满时,系统就会开始“筛查”。筛查的过程会保留最近引用的对象,但较旧的对象会被下放到较慢的层,除此之外,系统还会删除不再有用的对象,以释放空间。随后,每个对象的指针都会更新,指向新对象的位置。通过这种方式,程序访问对象的成本比通过缓存层来搜索要低得多。

2.Zippad

研究人员还设计了一种名为Zippad的技术,利用Hotpad系统来压缩对象。当对象第一次在较快的层次启动时,它们会被解压,但当它们被下放时又会被压缩。另一方面,跨级别的所有对象都指向那些压缩的对象,这使得它们很容易恢复到更快的级别,并且比传统技术下存储得更紧凑。

3.基础对象

与以前的技术相比,这种新技术还提供了更多的压缩机会,因为以前的技术仅限于在固定大小的块中查找冗余。首先,该算法会选取几个具有代表性的对象作为基础对象。然后,只要有新对象加入,算法就会对比基础对象和新对象,然后把它们的之间不同的数据存储起来。

卡耐基梅隆大学电子和计算机工程助教Brandon Lucia十分赞赏这个新技术,因为它利用编程语言的特性,更好地进行压缩工作。他说:“这项工作的有趣之处在于,它利用对象的抽象性让内存压缩更有效,从而使系统更快、更高效,具有新的计算机体系结构特性。”


注:本文编译自 MIT CSAIL,部分内容来自网络,由整合


版权文章,未经授权禁止转载。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭