愛伊米

如何提高記憶體的效率和效能?

文︱

BRYON MOYER

Semiconductor Engineering

編譯 |

編輯部

隨著資料量不斷增長,處理現有資源的方法不斷最佳化,逐漸為記憶體池和共享的發展提供了驅動力。使用這些方法,記憶體可由許多不同的機器或處理單元按需訪問。

CXL和OMI兩種協議能夠簡化這些過程,從on-chip/near-chip記憶體到儲存,這是一種“可組合”的記憶體。基本上是透過提高抽象級別,可以按需為任何特定任務預配記憶體,然後在該任務完成後為其他任務分配記憶體。從理論上講,這能夠提高系統性能和效率。但是,對於眾多應用或架構來說,哪種協議才是物有所值的最佳選擇,目前還尚未完全弄清楚。

“在記憶體池應用中,SoC或控制器能夠分配給CPU的任何記憶體空間都由結構管理器統一管理,這是一個由CXL定義的標準軟體實體,”Rambus資料中心產品營銷副總裁Mark Orthodoxou指出。“對CPU來說,該結構管理器能夠管理物理記憶體區域的分配,以至於它看起來就像有一個動態增長和收縮的記憶體池。”

如何提高記憶體的效率和效能?

圖1:CXL允許多個主機訪問記憶體池(圖源:Rambus)

記憶體池與不同使用者之間的記憶體共享相關,但又有所不同。“記憶體池和記憶體共享之間的區別在於,使用池化,任何給定的CPU只能訪問其分配的記憶體區域,”Orthodoxou表示。“記憶體共享更適用於大型機器學習訓練集和工作負載,例如500 GB、1 TB、3 TB大小的訓練集。如果你想透過多個CPU執行並計算,那麼你將需要移動資料。那麼,我們如何減少資料移動並減少資料中心每個CPU的記憶體佔用呢?方案是應用記憶體共享。”

記憶體共享需要一致性。但這與處理器一致性不同,例如多核處理器所需的一致性。CXL解決了應用一致性問題,即處理可能在同一問題上協作的不同使用者間更高級別的一致性。相比之下,OMI沒有一致性功能,而是依靠處理器快取一致性基礎結構來處理。

“到目前為止,我們已經在單片快取架構上安裝了單片記憶體,”西門子EDA驗證IP產品經理Gordon Allan表示。“隨著我們引入多個處理元素,一致性逐漸成為一種需求。因此,對記憶體而言,這種趨勢促使我們以不同的方式去思考,同時考慮應用所需的資料和不同型別的記憶體。這是分解過程的一部分,我們能夠以更細粒度的方式描述我們的儲存需求,而不會在其不需要的一致性屬性上超支。因此,不同型別的資料可以具有不同級別的重複性或一致性。這些屬性都由CXL等結構支援,其中處理單元可以逐個記憶體範圍地指示一致性應如何工作。”

CXL 3。0將支援這方面的完全一致性,但CXL 3。0尚未公開。因此,沒有關於這種情況如何發生的細節。

在處理器之間傳遞工作負載

CXL還允許將記憶體“傳遞”給不同的節點進行處理。在這些情況下,來回傳遞的不是實際資料,而是類似於指標的東西,使用地址轉換將物理地址對映到每個使用者的個人記憶體對映。

“結構管理器能夠協調一切,”Orthodoxou稱。“例如跟蹤請求發出方,找到其請求地址,以及如何對映到控制器後面記憶體的物理表徵。”

對於使用者來說,這在很大程度上仍然是隱藏的。“細節包含了許多來回任務處理,以便保持指向資料的指標的抽象,”Allan指出。

但這並不是唯一隱藏在視線之外的東西。對於各種應用來說,目前還不清楚哪種協議更快,因為CXL的延遲影響與OMI的測量方式不同。雖然OMI談論的是增加現有延遲的延遲量,但CXL只談到了往返互連速度。因此,40ns延遲意味著每個方向的傳輸量為20ns。

Synopsys CXL技術營銷經理Richard Solomon明確說明了測量方法:“這是出現在傳送端資料包的第一位,以及出現在接收端資料包的第一位。”

值得注意的是,另一個記憶體抽象工作Gen Z也已經摺疊到CXL中。“Gen Z已經承認CXL擁有主流和臨界質量,因此他們正在就此項合作探討細節,”艾倫說。

可能的重疊

對於CXL是否也可以解決鄰存問題,似乎存在分歧或不確定性。許多行業發言人傾向於支援CXL或OMI或其他技術,他們不確定“其他”究竟是如何工作的。特別是在計算延遲時,並不是每個人都清楚這到底意味著什麼。

CXL有一個CXL。mem配置檔案,據說它用於近端記憶體。它還透過PCIe互連,而不是使用OMI或DDR匯流排。因此,在為CXL構建的系統中,將存在託管儲存卡的PCIe插槽,而不是DIMM插槽。

“例如,我們看到人們構建了簡單的DDR介面,”Solomon表示。“它有一個橋接晶片,一側配置有CXL,另一側放置了DDR通道。晶片具備計算能力。”

從芯片面積的角度來看,OMI和PCIe都使用序列方法,因此與當前並行方案相比,它們都減少了引腳數量。“現在,您將減少CPU上的PCIe通道,假設64個PCIe Gen 5通道被分成16個通道堆疊,”Orthodoxou稱。“然後這些堆疊可以分為2、4、8或16。按照現有CPU的設計方式,這些堆疊中都能夠在CXL模式或PCIe模式下執行。從面積和周界效率的角度來看,與OMI實際上沒有區別,因為它們都只是具有一定數量通道的序列介面。在這方面,我認為CXL和OMI之間的唯一區別是,對於OMI,這些DDIMM的實現非常具體。因此,波形因素非常獨特。就CXL而言,大多數人都在談論透過驅動波形因素或新增卡槽來實現記憶體擴充套件。”

OMI更加獨立,因為它不依賴於任何特定代際的PCIe。“OMI的速度等級與PCIe電氣系統沒有緊密耦合,”他表示。“OMI與資料結構和處理器的耦合更加緊密,這比傳統上實現的CXL具有更低的延遲。CXL子系統耦合到PCIe匯流排所在的處理器中,因此您會遇到輕微的延遲問題。”

這是否切實可行,在一定程度上取決於更廣泛的整體情況。“老實說,CXL不會有很大的不同,可能是額外的5或6ns,來回一次,”Orthodoxou稱。“那可能是在噪音中。”

其他人則指出了更大的延遲問題。一般來說,由於CXL傾向於僅引用互連延遲,而OMI引用完全訪問延遲(或增量),因此這是一個蘋果與橙子之間的比較。一些未對外公佈的檔案詳細說明了這些數字如何得出的。

對於近端記憶體來說,似乎分為兩個陣營。一個陣營表示從簡單定位上看,OMI用於近端記憶體,CXL用於遠距離記憶體。即使您可以將CXL用於近端記憶體,也沒有人會這樣做。

“CXL當然正在解決中遠端記憶體問題,”Allan稱。“它不直接適用於近端。”

那麼OMI處於什麼位置呢?“OMI完全是對CXL的補充,因此應該被CXL聯盟採用,如果沒有別的,可以避免它們在行業中造成的所有混亂,”OpenCAPI聯盟的技術總監兼董事會顧問Allan Cantle表示。

另一個陣營認為CXL擁有最強大的生態系統,因此OMI不會在IBM的生態系統之外使用。

“除了POWER產品組合和麵向HPC應用的衍生產品之外,OMI尚未廣泛採用於其他方面,”Orthodoxou表示。“其他CPU供應商和GPU供應商都有一個與CXL相交的路線圖。這不是一個協議在記憶體附加方面比另一個協議更好的問題。”

Cadence智慧財產權集團產品營銷組總監Marc Greenberg表達了另一種看法。“我不認為OMI與CXL的討論是‘近與遠’的問題,”他說。“我把它看作是‘版本N與版本N+1’。CXL。mem是最新的迭代產品,為伺服器型別的系統提供了高頻寬和容量的DRAM解決方案。”

目前還沒有出現用於近端記憶體的CXL的商業示範,OMI也處於早期階段。

總結

但這並不會降低CXL或OMI的價值。這些抽象技術將會為軟體開發人員、晶片設計人員、系統構建商和系統整合商提供支援,從而讓他們不必為記憶體細節憂慮。

SoC設計人員將能夠為近端和遠端儲存器構建“通用”介面,並使該SoC在各種可能的系統配置中工作。系統構建商和整合商在分配記憶體和處理器方面將具有更大的靈活性,以便為更多工作負載研發更多系統。隨著資料流量的減少,軟體執行需要更少的能量。軟體開發人員可以建立可在更廣泛系統中執行的程式。

至於OMI和CXL之間的差異,市場最終會解決這個問題。CXL應用廣泛,儘管不一定用於近端記憶體。近端記憶體可能最終成為CXL或OMI,如果兩個抽象標準均未被採用,則仍然保持DDR或HBM。

Orthodoxou認為這給資料中心帶來了根本性的變化。“對更大記憶體頻寬,更多記憶體容量和更少記憶體故障需求,或三者兼具,將改變資料中心記憶體互連的性質。”