麻省理工學院的工程師團隊開發了一種物件導向的記憶體層次結構,可以更有效地處理資料。 在本文中我們將了解它是如何運作的。
眾所周知,現代 CPU 效能的提高並沒有伴隨著存取記憶體時延遲的相應減少。 各年指標變化差異可達10倍(
性能損害是由所謂的減壓延遲造成的。 在某些情況下,準備資料解壓縮最多可能需要 64 個處理器週期。
用於比較:浮點數的加法和乘法
該技術如何運作
此解決方案基於三種技術:Hotpads、Zippads 和 COCO 壓縮演算法。
Hotpad 是軟體控制的高速暫存器記憶體層次結構(
本質上,該體系結構是一個快取系統,但經過專門設計以處理物件。 物體所在的墊子的高度取決於它的使用頻率。 如果其中一個層級“溢出”,系統就會啟動類似於 Java 或 Go 語言中的“垃圾收集器”的機制。 它會分析哪些對象的使用頻率低於其他對象,並自動在等級之間移動它們。
Zippads 在 Hotpad 之上工作 - 歸檔和取消歸檔進入或離開層次結構最後兩層(L3 pad 和主記憶體)的資料。 第一和第二焊盤儲存未改變的資料。
Zippads 壓縮大小不超過 128 位元組的物件。 較大的物件被分成多個部分,然後放置在不同的記憶體區域。 正如開發人員所寫,這種方法增加了有效使用記憶體的係數。
為了壓縮對象,使用了 COCO(跨對象壓縮)演算法,我們稍後將討論該演算法,儘管系統也可以使用
據麻省理工學院的工程師稱,他們的物件導向的記憶體層次結構比傳統方法的效率提高了 17%。 它在設計上更接近現代應用程式的架構,因此新方法具有潛力。
預計使用大數據和機器學習演算法的公司將首先開始使用該技術。 另一個潛在的方向是雲端平台。 IaaS 供應商將能夠更有效地利用虛擬化、資料儲存系統和運算資源。
我們的額外資源和來源:
來源: www.habr.com