谷歌員工研發出垃圾收集加速器:CPU算力大解放,功耗狂降15%
智東西(公眾號:zhidxcom)編 | 王穎
導語:最近,谷歌員工研發了一種加速器單元,可以代替CPU完成垃圾收集任務,並能減輕計算機運算負擔。
智東西5月9日消息,近日,谷歌員工Martin Maas在IEEE Micro發表了一篇論文,描述了其設計的一種加速器單元,幫助CPU完成垃圾收集任務,預計可將功耗減小15%。
除正常運行工作外,CPU還必須執行一些稱為「垃圾收集」的任務,即從應用程序中識別和刪除冗餘或無關的數據,以釋放額外的內存空間,這消耗了計算機大量的計算能力。
垃圾收集消耗了CPU花在應用程序上的總時間的10%甚至更多。當Martin Maas將加速器與小型CPU核心進行比較時,他們發現,根據每個設備各自的尺寸,他們的加速器性能提高了18倍,能夠將CPU從垃圾收集任務中分離出來,減輕計算機的運算負擔。
一、加速器單元能解決什麼問題?
Martin Maas和他的同事注意到了CPU運行負擔過重,消耗大量不必要功耗的問題,創建了一個緊湊的加速器單元。將垃圾收集任務委派給加速器單元可以提高計算機的運算效率。
這種加速器只需要少量的晶元面積和功率。它可以添加到CPU中,類似於將一些現代處理器晶元集成到圖形處理單元中。
加速器單元以比CPU傳統方式更有效的方式進行垃圾收集。例如,CPU必須按特定順序完成一些垃圾收集操作,而新加速器單元利用這些操作不需要按順序完成。通過同時執行大量內存操作,它在垃圾收集方面比CPU更有效。
據Martin Maas介紹,當軟體應用程序在CPU上運行時,這個加速器單元位於側面為應用程序執行垃圾收集。Martin Maas說:「原則上,這意味著您可以構建一個系統,軟體根本不用擔心垃圾收集,只需要繼續使用可用內存。」
Martin Maas在論文中提出,這種新設備可能成為未來系統的一個共同組成部分,從而避免CPU承擔垃圾收集負擔的問題。
Martin Maas指出,CPU的構建非常靈活,可以運行各種應用程序。因此,CPU規模相對較大,佔用大量電力。但一直以來,從沒有人為CPU的垃圾收集任務單獨設計一種設備來減輕CPU的任務和功耗。
二、傳統計算機中CPU如何進行垃圾收集?
計算機系統運行時會產生許多「垃圾」,包括臨時文件(如:*.tmp、*._mp)日誌文件(*.log)、臨時幫助文件(*.gid)、磁碟檢查文件(*.chk)、臨時備份文件(如:*.old、*.bak)等。
CPU作為計算機的運算核心,負責這整個運算環境,也就是說,CPU要在計算機系統產生垃圾時及時清理它們,以確保計算機的運行速度,並釋放內存空間。
儘管CPU專用於垃圾收集的計算能力的10%可能看起來不是很多,但在全球範圍內,這代表了大量的計算資源。
此前,傳統的計算機垃圾收集任務是由CPU完成的,這項工作主要通過Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、和G1這7種類型的垃圾收集器完成。
其中,Serial收集器在工作時最大的問題是,只能進行單線程收集,也就是說在它工作時,其他程序必須暫停,直到它完成整個垃圾收集過程。ParNew收集器其實是Serial收集器的多線程版本,適用於多核CPU環境,但性能有時不如Serial收集器穩定。
這些垃圾收集器的共同問題就是,會導致不可預知的暫停,在進行垃圾收集任務時計算機系統會暫停片刻,清理內存。雖然在計算機應用中通常不會注意到這一點,但在用戶關心系統反應是否非常靈敏的情況下,這可能會成為一個問題。程序員會盡量避免這些停頓,而代價往往是在垃圾收集上花費更多的周期。
結語:從垃圾收集中解放的CPU
Martin Maas設計的加速器單元可以在軟體應用程序運行時,獨立的執行垃圾收集任務,從而將CPU從這一任務中解放出來。
垃圾收集加速器單元如果能夠成功應用,它將有效提高計算機的生產效率,解決CPU運行負擔過重,消耗大量不必要功耗的問題。
原文來自:IEEE Spectrum
※AI早報:谷歌2019開發者大會將開幕;FCA出售零部件部門
TAG:智東西 |