如何将CPU从“垃圾收集”中解放

加速器单元通过接管一个简单的任务

来提高系统的性能和效率

通常在你不太注意的情况下,你的计算机正在后台努力组织它的存储系统工作。除了许多任务之外,CPU还必须执行一项称为“垃圾收集”的操作,从而识别并删除应用程序中的冗余或不相关数据,以释放额外的内存空间。

“垃圾收集”是为了让程序员不必手动处理这些不必要的数据,但CPU负责的自动化过程消耗了大量的计算能力 —— 高达CPU花费在应用程序上的总时间的10%或更多。

现在在谷歌工作的Martin Maas,在完成加州大学伯克利分校的博士学位期间设计了一种新型设备,可以免除CPU的垃圾收集任务。

Maas指出,传统上已分配垃圾收集的CPU从未专门为此任务设计。 “CPU的设计非常灵活,可以运行各种各样的应用程序。因此,它们相对较大,可以占用大量电力,“他解释说。

相反,Maas和他的同事创造了一个紧凑的加速器单元,需要很小的芯片面积和功率。它可以添加到CPU中,类似于很多现代处理器芯片集成到图形处理单元中的方法。

“当软件应用程序在CPU上运行时,这个单元位于一旁,为应用程序执行垃圾收集,”Maas说,“原则上,这意味着你可以建立一个软件完全不必担心垃圾收集的系统,只需继续使用可用的内存”。

值得注意的是,加速器单元的垃圾收集方式比CPU传统的方式更有效。例如,CPU必须按特定顺序完成一些垃圾收集操作,而新的加速器单元发现了这样一个事实:这些操作不需要按顺序执行。通过同时执行大量内存操作,它在垃圾收集方面比CPU更有效。


当Maas的团队将加速器与小型CPU核心进行比较时,他们发现,考虑到每台设备的大小,他们的加速器的性能是前者的18倍。在能耗方面,他们估计加速器将垃圾收集所需的能量减少了15%。

将垃圾收集任务委派给加速器单元可以提高计算机的生产率。 Maas指出,尽管CPU专用于垃圾收集的计算能力的10%可能看起来不是很多,但在全球范围内,这代表了大量的计算资源。

他还指出,许多垃圾收集机制可能导致不可预测的暂停,在这种情况下,计算机系统会短暂停止以清除内存。“虽然你通常不会注意到这一点,但在你关心你的系统反应非常灵敏的情况下,这可能会成为一个问题,程序员会尽量避免这些停顿,通常代价是在垃圾收集上花费更长的周期”,他说,“新的加速器单元解决了这两个问题,为更高效的计算铺平了道路”。


研究人员在他们的论文中提出,这种新设备可能成为未来系统的一个共同组成部分,从而避免了CPU被垃圾收集负担的需求。

如何将CPU从“垃圾收集”中解放

相关文章:

你感兴趣的文章:

标签云: