【51CTO.com快译】你可能没注意到,你的计算机在后台拼命组织其内存系统。除了许多任务外,CPU还要执行一项名为“垃圾收集”的操作:识别并删除应用程序中冗余或无关的数据,释放额外的内存空间。
垃圾收集旨在使程序员无须手动处理这些不必要的数据,但CPU负责处理的自动化过程耗用大量计算能力,占CPU花费在应用程序上的总时间的10%或更多。
现供职于谷歌的Martin Maas在加州大学伯克利分校攻读博士期间,设计出了一种新型装置,可以将CPU从垃圾收集任务中解放出来。这种设计在4月23日发表于IEEE Micro的一篇论文中有所描述。
Maas特别指出,历来被分配垃圾收集这项任务的CPU从来不是专门为该任务而设计的。他解释道:“CPU旨在很灵活,可以运行各种应用程序。因此,它们比较庞大,耗电量相当大。”
Maas及其同事改而开发出一种紧凑的加速器单元,仅需少量的芯片面积和耗电量。它可以添加到CPU中,如同将众多现代处理器芯片集成到图形处理单元中。
Maas说:“软件应用程序在CPU上运行时,加速器单元为应用程序执行垃圾收集任务。原则上,这意味着你可以构建一个系统,软件根本不用担心垃圾收集,只管继续使用可用内存。”
值得注意的是,加速器单元收集垃圾起来比CPU的传统方式更高效。比如说,CPU要按特定顺序完成一些垃圾收集操作,而新加速器单元的特点是,这些操作不需要按顺序执行。由于同时执行大量内存操作,它在垃圾收集方面比CPU更高效。
Maas的团队将加速器与小小的CPU核心比较后发现,加速器的性能提高了18倍。在耗电量方面,他们估计加速器将垃圾收集所需的耗电量减少了15%。
将垃圾收集这项任务交给加速器单元可以提高计算机的工作效率。Maas指出,虽然CPU将10%的计算能力专门用于垃圾收集看似不多,但放眼全球,这是庞大的计算资源。
他还指出,许多垃圾收集机制可能导致不可预测的停顿,即计算机系统暂停一小段时间以清理内存。他说:“虽然你通常不会有所注意,但在你要求系统反应很灵敏的情况下,这可能是个问题,程序员不遗余力地避免这种停顿,为此常常在垃圾收集上花费更多的CPU周期。”新的加速器单元同时解决了这两个问题,为更高效的计算铺平了道路。
研究人员在论文中表示,这种新装置有望成为未来系统的一个常见部件,因而CPU不需要被垃圾收集所拖累。
原文标题:For Better Computing, Liberate CPUs From Garbage Collection,作者:Michelle Hampson
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】