目前用于在更少的空间存储更多数据的节省资金的内存压缩存在一个主要问题。问题是计算机以预定的块存储和运行内存,而许多现代程序以可变的块运行和运行。
目前所做的方式实际上是高效的。这是因为压缩程序使用对象而不是均匀地配置的数据板,与用于存储和运行的空间不匹配,解释在革命性的新压缩系统上工作的科学家们。
他们说,答案是压缩不同的对象,而不是像现在这样压缩缓存线,如果这种方法有效的话,将大大降低效率,加快速度,更重要的是,减少计算成本。高速缓存线是传输到内存高速缓存的固定大小的内存块。
“对象,而不是缓存行,是压缩的自然单位,”在他们的麻省理工学院计算机科学和人工智能实验室(CSAIL)中写下PO-Ansai和Daniel Sanchez纸(PDF)。
他们说,基于对象的程序——现在每天使用的那种程序,比如Python——应该基于它们所编程的对象大小进行压缩,而不是基于传统的或最新的缓存方法所创建的固定值。
另一种选择也不是仅仅因为在使用压缩时效率低下就草率地放弃面向对象编程。必须调整压缩以适应现在常用的对象使用代码。
科学家称他们的新系统可以将压缩比提高1.63倍,性能提高17%。他们说,这是“第一个为基于对象的应用程序设计的压缩内存层次结构”。
压缩的好处
压缩是提高计算机效率的一种受欢迎的技术。与简单地增加内存相比,其主要优势是成本大大降低——您不需要增加物理主存硬件,因为您正在将更多的数据塞入现有的主存中。
然而,到目前为止,硬件内存压缩最适合于更老的大数据块,而不是“随机的,细粒度的内存访问,”该团队解释说。它不擅长访问小块数据,比如单词。
Zippads压缩系统是如何工作的
在Zippads中,即新系统的名称,存储对象层次结构级别(称为“pad”)位于芯片上,可以直接访问。不同的关卡(垫子)有变化的速度等级,新引用的对象被放置在最快的垫子。当一个pad被填满时,它开始驱逐旧的、不那么活跃的对象,并最终回收那些占用了所需的快速空间而没有被使用的未使用的代码。聪明的是,在快速级别上,代码部分甚至没有被压缩,但当它们被证明无用时,它们会被踢到压缩的、访问速度慢的、重要性较低的面板上,并在必要时重新启动。
Zippads将“看到可以快速运行或可以以相同的速度运行更多应用程序的计算机”麻省理工学院的新闻文章说。每个应用程序消耗的内存更少,运行速度更快,因此设备可以在分配的内存中支持更多的应用程序。换句话说,带宽被解放了。
“所有的计算机系统都将从中受益,”计算机科学和电气工程教授Sanchez在文章中说。程序变得更快,因为它们不再受到内存带宽的瓶颈。