壓縮如何在物件導向的記憶體架構中工作

麻省理工學院的工程師團隊開發了一種物件導向的記憶體層次結構,可以更有效地處理資料。 在本文中我們將了解它是如何運作的。

壓縮如何在物件導向的記憶體架構中工作
/ 攝影 /PD

眾所周知,現代 CPU 效能的提高並沒有伴隨著存取記憶體時延遲的相應減少。 各年指標變化差異可達10倍(PDF,第 3 頁)。 結果,出現了瓶頸,阻礙了可用資源的充分利用並減慢了資料處理速度。

性能損害是由所謂的減壓延遲造成的。 在某些情況下,準備資料解壓縮最多可能需要 64 個處理器週期。

用於比較:浮點數的加法和乘法 佔據 不超過十個週期。 問題在於記憶體使用固定大小的資料塊,而應用程式使用可以包含不同類型資料且大小彼此不同的物件。 為了解決這個問題,麻省理工學院的工程師開發了一種物件導向的記憶體層次結構,可以優化資料處理。

該技術如何運作

此解決方案基於三種技術:Hotpads、Zippads 和 COCO 壓縮演算法。

Hotpad 是軟體控制的高速暫存器記憶體層次結構(便箋)。 這些暫存器稱為 pad,共有三個 - 從 L1 到 L3。 它們儲存不同大小的物件、元資料和指標數組。

本質上,該體系結構是一個快取系統,但經過專門設計以處理物件。 物體所在的墊子的高度取決於它的使用頻率。 如果其中一個層級“溢出”,系統就會啟動類似於 Java 或 Go 語言中的“垃圾收集器”的機制。 它會分析哪些對象的使用頻率低於其他對象,並自動在等級之間移動它們。

Zippads 在 Hotpad 之上工作 - 歸檔和取消歸檔進入或離開層次結構最後兩層(L3 pad 和主記憶體)的資料。 第一和第二焊盤儲存未改變的資料。

壓縮如何在物件導向的記憶體架構中工作

Zippads 壓縮大小不超過 128 位元組的物件。 較大的物件被分成多個部分,然後放置在不同的記憶體區域。 正如開發人員所寫,這種方法增加了有效使用記憶體的係數。

為了壓縮對象,使用了 COCO(跨對象壓縮)演算法,我們稍後將討論該演算法,儘管系統也可以使用 基礎-增量-立即數FPC。 COCO 演算法是一種差分壓縮(差分壓縮)。 它將物件與“基礎”進行比較並刪除重複的位元 - 請參見下圖:

壓縮如何在物件導向的記憶體架構中工作

據麻省理工學院的工程師稱,他們的物件導向的記憶體層次結構比傳統方法的效率提高了 17%。 它在設計上更接近現代應用程式的架構,因此新方法具有潛力。

預計使用大數據和機器學習演算法的公司將首先開始使用該技術。 另一個潛在的方向是雲端平台。 IaaS 供應商將能夠更有效地利用虛擬化、資料儲存系統和運算資源。

我們的額外資源和來源:

壓縮如何在物件導向的記憶體架構中工作 「我們如何建構 IaaS」:有關 1cloud 工作的資料

壓縮如何在物件導向的記憶體架構中工作 雲架構的演進 1cloud
壓縮如何在物件導向的記憶體架構中工作 1cloud中的物件儲存服務

壓縮如何在物件導向的記憶體架構中工作 HTTPS 的潛在攻擊以及如何防禦
壓縮如何在物件導向的記憶體架構中工作 持續交付和持續整合方法有何相似和不同?
壓縮如何在物件導向的記憶體架構中工作 如何保護網路上的伺服器:1cloud體驗

來源: www.habr.com

添加評論