压缩如何在面向对象的内存体系结构中工作

麻省理工学院的一个工程师团队已经开发了一个面向对象的内存层次结构,可以更有效地处理数据。 本文讨论如何安排。


/ 照片 / PD

如您所知,现代CPU的性能提高并没有相应地减少访问内存时的延迟。 每年指标变化的差异最多可以达到10倍( PDF,第3页 )。 结果,出现了瓶颈,无法充分利用可用资源并减慢了数据处理速度。

所谓的减压延迟导致性能损失。 在某些情况下,最多64个处理器周期可以占用预备数据解压缩。

为了进行比较:将浮点数相加和相乘不超过十个周期。 问题在于,内存可以使用固定大小的数据块,而应用程序可以使用可以包含不同类型的数据并且大小彼此不同的对象。 为了解决这个问题,麻省理工学院的工程师开发了一个面向对象的内存层次结构,可以优化数据处理。

技术如何运作


该解决方案基于三种技术:Hotpads,Zippads和COCO压缩算法。

Hotpads是超级操作寄存器存储器( 暂存器 )的软件控制层次结构。 这些寄存器称为填充,共有三个-从L1到L3。 它们存储不同大小的对象,元数据和指针数组。

从本质上讲,该体系结构是一个缓存系统,但经过改进后可以处理对象。 物体所在的垫高取决于使用频率。 如果其中一个级别为“溢出”,则系统将启动类似于Java或Go语言中的“垃圾收集器”的机制。 它分析哪些对象使用得比其他对象少,并自动在关卡之间移动它们。

Zippads在Hotpads的基础上工作-它存档和取消存档到达或离开层次结构的最后两个级别的数据-L3 pad和主内存。 在第一和第二垫中,数据保持不变。



Zippads压缩不超过128字节的对象。 较大的对象分为多个部分,然后将其放置在内存的不同部分中。 根据开发人员的说法,这种方法会增加有效使用的内存的系数。

为了压缩对象,使用了COCO(跨对象COmpression)算法,尽管该系统也可以与Base-Delta-ImmediateFPC一起使用,但稍后将进行讨论。 COCO算法是差分压缩的一种形式。 它将对象与“基本”对象进行比较,并删除重复的位-参见下图:



据麻省理工学院的工程师说,他们的面向对象的内存层次结构比传统方法的生产率高17%。 它的结构更接近现代应用程序的体系结构,因此新方法具有潜力。

预计首先,该技术将可以被处理大数据和机器学习算法的公司开始使用。 另一个潜在领域是云平台。 IaaS提供商将能够更有效地使用虚拟化,数据存储系统和计算资源。

我们的其他资源和来源:

“我们如何构建IaaS”:1cloud材料

1cloud云架构演进
1cloud中的对象存储服务

对HTTPS的潜在攻击及其防范方法
持续交付和持续集成方法之间的异同是什么?
如何保护Internet上的服务器:1cloud体验

Source: https://habr.com/ru/post/zh-CN451356/


All Articles