计世网

换个压缩方式吧,别再压缩你唯一的"对象"了!
作者:Patrick Nelson | 来源:计算机世界
2019-08-21
一种被称为Zippads的新数据压缩格式可创建速度更快的计算机程序,从而大幅降低计算成本。

 

今天的内存压缩存技术虽然省钱,但是存在很大的问题,其原理是在更小的空间内存储更多数据。问题在于计算机是在预置好的内存块中存储和运行的,而许多现代程序是在不定数量的内存块中运行的。

这种方式实际上效率非常低。正在从事Zippads革命性新压缩系统研究的科研人员解释道,这是因为被压缩的程序用的是对象,而不是已经均匀配置好的数据块,这导致它们无法与存储和运行它们的空间匹配在一起。

这些研究人员称,压缩各种对象而不是高速缓存线路是解决这一问题的答案。如果它们正常工作将能够大大减少那些低效率工作,加快速度,重要的是降低计算成本。高速缓存线路是用于内存缓存的固定大小的内存块。

Po-An Tsai和Daniel Sanchez在麻省理工学院计算机科学与人工智能实验室的论文中写道,“对象是压缩的自然单位,而不是高速缓存线路。

基于对象的程序(例如每天都在被使用的Python)应该根据它们的编程对象大小进行压缩,而不是根据由传统甚至是最先进的缓存方法创建的某些固定值进行压缩。

替代方案也不能因为压缩方面效率低下而不计后果地放弃面向对象的编程。它们必须让压缩技术能够适应目前常见的代码。

研究人员称他们的新系统可以将压缩比提高1.63倍,将性能提高17%,同时这也是“首个针对基于对象的应用程序设计的压缩内存体系”

压缩的优势

压缩是一种可提高计算机效率的技术。简单增加更多内存的主要优势是成本会显著降低。由于用户正在将更多数据塞进现有内存中,因此用户不需要增加物理的主内存硬件。

尽管如此,到目前为止,硬件内存压缩最适合的还是老式的大型数据块,而不是“随机的高细粒度的内存访问”。例如,它不能很好地访问小块数据,例如单词。

Zippads压缩系统是如何工作的

在Zippads中,当调用新系统时,存储对象层级(称为“pad”)位于芯片上并直接被访问。不同层级(pad)有着不同的速度等级,新引用的对象被放置在最快的pad中。当pad被填充时,它开始去除较旧的且不那么活跃的对象,并最终回收未使用的代码,因为这些代码占用了速度较快的空间并且未被使用。在速度级别方面,代码部分没有被压缩,但是当被证明没有用时,它们会被踢到被压缩的、访问速度慢的且重要性较低的pad上,不过如果有必要它们可以被重新恢复到原来的位置。

麻省理工学院的一篇文章认为,Zippads会“看到计算机可以运行得更快,或者可以以相同的速度运行更多的应用程序”。“每个应用程序消耗更少的内存,运行速度更快,因此设备可以在其分配的内存中支持更多应用程序。”换句话说,带宽被释放出来了。

计算机科学与电气工程教授Sanchez称:“所有的计算机系统都将从中受益。程序将变得更快,因为它们不再受到内存带宽的限制。”

作者:Patrick Nelson为多个技术博客的撰稿人,同时还是《Producer Report》刊物的编辑兼出版人,小说《蔓延主义》的作者。

编译:陈琳华

原文网址:https://www.networkworld.com/article/3392716/revolutionary-data-compression-technique-could-slash-compute-costs.html

责任编辑:周星如