麻省理工學院的工程師團隊開發了一種物件導向的記憶體層次結構,可以更有效地處理資料。 在本文中我們將了解它是如何運作的。
/ /PD
眾所周知,現代 CPU 效能的提高並沒有伴隨著存取記憶體時延遲的相應減少。 各年指標變化差異可達10倍()。 結果,出現了瓶頸,阻礙了可用資源的充分利用並減慢了資料處理速度。
性能損害是由所謂的減壓延遲造成的。 在某些情況下,準備資料解壓縮最多可能需要 64 個處理器週期。
用於比較:浮點數的加法和乘法 不超過十個週期。 問題在於記憶體使用固定大小的資料塊,而應用程式使用可以包含不同類型資料且大小彼此不同的物件。 為了解決這個問題,麻省理工學院的工程師開發了一種物件導向的記憶體層次結構,可以優化資料處理。
該技術如何運作
此解決方案基於三種技術:Hotpads、Zippads 和 COCO 壓縮演算法。
Hotpad 是軟體控制的高速暫存器記憶體層次結構()。 這些暫存器稱為 pad,共有三個 - 從 L1 到 L3。 它們儲存不同大小的物件、元資料和指標數組。
本質上,該體系結構是一個快取系統,但經過專門設計以處理物件。 物體所在的墊子的高度取決於它的使用頻率。 如果其中一個層級“溢出”,系統就會啟動類似於 Java 或 Go 語言中的“垃圾收集器”的機制。 它會分析哪些對象的使用頻率低於其他對象,並自動在等級之間移動它們。
Zippads 在 Hotpad 之上工作 - 歸檔和取消歸檔進入或離開層次結構最後兩層(L3 pad 和主記憶體)的資料。 第一和第二焊盤儲存未改變的資料。

Zippads 壓縮大小不超過 128 位元組的物件。 較大的物件被分成多個部分,然後放置在不同的記憶體區域。 正如開發人員所寫,這種方法增加了有效使用記憶體的係數。
為了壓縮對象,使用了 COCO(跨對象壓縮)演算法,我們稍後將討論該演算法,儘管系統也可以使用 或 。 COCO 演算法是一種差分壓縮()。 它將物件與“基礎”進行比較並刪除重複的位元 - 請參見下圖:

據麻省理工學院的工程師稱,他們的物件導向的記憶體層次結構比傳統方法的效率提高了 17%。 它在設計上更接近現代應用程式的架構,因此新方法具有潛力。
預計使用大數據和機器學習演算法的公司將首先開始使用該技術。 另一個潛在的方向是雲端平台。 IaaS 供應商將能夠更有效地利用虛擬化、資料儲存系統和運算資源。
我們的額外資源和來源:
![]()
![]()
![]()
![]()
![]()
![]()
來源: www.habr.com
