本公開涉及數(shù)據(jù)存儲領域,具體而言,涉及一種基于計算快速鏈路協(xié)議的內(nèi)存設備和控制方法。
背景技術:
1、計算快速鏈路(compute?express?link,cxl)協(xié)議是一種高性能、低延遲的互連協(xié)議,用于連接處理器、加速器、存儲和其他計算資源。它旨在提供高帶寬、低延遲、高效的連接,以滿足現(xiàn)代數(shù)據(jù)中心和高性能計算環(huán)境的需求。
2、通常的cxl協(xié)議下的內(nèi)存擴展是使用雙列直插式存儲模塊(dual?in-line?memorymodule,dimm)內(nèi)存條作為數(shù)據(jù)存儲介質(zhì),相比于其他的存儲介質(zhì),該內(nèi)存具有性能高,時延低的特點。但是,內(nèi)存條需要使用內(nèi)存接口,所占的物理空間比較大,每根內(nèi)存條的容量有限,單根內(nèi)存條的容量不超過512gb,而且成本較高。
3、目前有些方案利用傳統(tǒng)的雙倍數(shù)據(jù)速率(double?data?rate,ddr)內(nèi)存與cxl協(xié)議下連接的ddr內(nèi)存相結合的方案,但其成本依然很高。其他內(nèi)存擴展方式還有采用pcie連接固態(tài)硬盤(ssd)用作內(nèi)存使用,但這種方式在性能上將大幅度降低。
4、在云平臺中,很多虛擬機需要申請大量內(nèi)存,但是實際使用時這些虛擬機并不需要同時使用這些內(nèi)存,如果全部使用ddr內(nèi)存,成本較高,占用面積大,使用率較低,會造成大量浪費。
技術實現(xiàn)思路
1、為了實現(xiàn)高性能且低成本的超大內(nèi)存,本公開的第一方面提供了一種基于計算快速鏈路協(xié)議的內(nèi)存設備。該內(nèi)存設備包括多個易失性存取存儲器和多個非易失性存儲器;和基于計算快速鏈路協(xié)議的內(nèi)存設備的控制器,其包括cxl子系統(tǒng),該cxl子系統(tǒng)包括與主機通信的接口,被設置為從主機接收包含設備物理地址的讀或?qū)懼噶?;緩存管理器,其存儲記載設備物理地址與緩存地址的映射關系的緩存表,被設置為根據(jù)從cxl子系統(tǒng)接收的設備物理地址向cxl子系統(tǒng)返回緩存地址,并將動態(tài)隨機存取存儲器的存儲空間根據(jù)非易失性存儲器的數(shù)量和塊大小進行分段,使得數(shù)據(jù)以分段為單位在動態(tài)隨機存取存儲器和非易失性存儲器之間并行傳輸;動態(tài)隨機存取存儲器的控制器,其連接緩存管理器,被設置為從所述緩存管理器接收讀或?qū)懻埱螅鶕?jù)所述緩存地址對動態(tài)隨機存取存儲器進行讀或?qū)懖僮?;非易失性存儲器的控制器,其連接緩存管理器,被設置為從所述緩存管理器接收讀或?qū)懻埱?,根?jù)所述設備物理地址對非易失性存儲器進行讀或?qū)懖僮?,以將來自動態(tài)隨機存取存儲器的數(shù)據(jù)寫入非易失性存儲器,或者將非易失性存儲器的數(shù)據(jù)讀出,以存儲到動態(tài)隨機存取存儲器,其中每個非易失性存儲器包括追加寫入層和隨機寫入層,當接收到新的數(shù)據(jù)時,新的數(shù)據(jù)寫入到追加寫入層的尾部,滿足預定條件時追加寫入層的部分或者全部數(shù)據(jù)被合并寫入隨機寫入層,物理地址與非易失性存儲器的地址之間的動態(tài)映射關系存儲在非易失性存儲器的索引表中并在每次寫入數(shù)據(jù)時更新。
2、本公開的設備將非易失性存儲器作為動態(tài)隨機存取存儲器的擴展部分,對所有存儲器進行統(tǒng)一管理,使得其作為主機的超大內(nèi)存來使用,可以降低內(nèi)存成本。在本公開中,對非易失性存儲器的數(shù)據(jù)的讀寫過程都要經(jīng)由動態(tài)隨機存取存儲器,主機不能直接訪問該非易失性存儲器。預定條件例如可以與數(shù)據(jù)訪問頻率、任務優(yōu)先級、數(shù)據(jù)訪問時間戳、當前業(yè)務數(shù)據(jù)負載等相關,也可以通過一定算法確定。這樣一方面保證讀寫速率,一方面可以合理布局存儲空間。
3、根據(jù)本公開的一方面,可選地,當從動態(tài)隨機存取存儲器讀取數(shù)據(jù)時,所述非易失性存儲器的控制器根據(jù)索引表和收到的物理地址向緩存管理器返回非易失性存儲器的地址。
4、根據(jù)本公開的一方面,可選地,所述緩存管理器包括cxl接口、緩存交換模塊、數(shù)據(jù)分層模塊、數(shù)據(jù)傳輸模塊和后端管理層,其中cxl接口與cxl子系統(tǒng)進行通信;緩存交換模塊在緩存已滿的情況下,根據(jù)第一預設算法計算動態(tài)隨機存取存儲器中的數(shù)據(jù)的第一訪問值,并確定第一訪問值低于第一閾值的數(shù)據(jù);數(shù)據(jù)分層模塊根據(jù)第二預設算法計算所述動態(tài)隨機存取存儲器中的數(shù)據(jù)的第二訪問值,將第二訪問值低于第二閾值的數(shù)據(jù)作為冷數(shù)據(jù),預寫入所述非易失性存儲器;數(shù)據(jù)傳輸模塊將動態(tài)隨機存取存儲器進行分段管理,并且將劃分之后的每一分段按照非易失性存儲器的數(shù)量進行再次劃分,使得每一子分段數(shù)據(jù)大小為非易失性存儲器的塊大小的整數(shù)倍,并且以分段為單位在動態(tài)隨機存取存儲器和各個非易失性存儲器之間并行傳輸;所述后端管理層與動態(tài)隨機存取存儲器的控制器和非易失性存儲器的控制器進行通信。
5、根據(jù)本公開的一方面,可選地,所述數(shù)據(jù)傳輸模塊在數(shù)據(jù)中加入數(shù)據(jù)存儲標簽,該標簽基于數(shù)據(jù)讀寫頻率、任務優(yōu)先級、數(shù)據(jù)訪問時間戳、當前業(yè)務數(shù)據(jù)負載情況確定。
6、根據(jù)本公開的一方面,可選地,所述緩存管理器可以被設置為根據(jù)緩存表和設備物理地址查詢緩存地址,如果緩存命中,則向cxl子系統(tǒng)返回查詢到的緩存地址,如果緩存未命中,在緩存已滿的情況下,選擇需要替換的緩存數(shù)據(jù)存入非易失性存儲器;如果緩存未命中,在緩存未滿的情況下,為設備物理地址分配新的緩存地址。當緩存未命中且緩存未滿時,在主機發(fā)送讀指令的情況下,與設備物理地址對應的非易失性存儲器的數(shù)據(jù)可以被加載到動態(tài)隨機存取存儲器的新的緩存地址。
7、根據(jù)本公開的第一方面,可選地,當所述cxl子系統(tǒng)從主機接收到讀指令時,所述緩存管理器被設置為根據(jù)緩存表和設備物理地址查詢緩存地址,如果所述緩存未命中并且所述動態(tài)隨機存取存儲器已滿,所述緩存管理器向所述非易失性存儲器的控制器發(fā)送寫請求,將所述動態(tài)隨機存取存儲器中訪問量低于第一閾值的數(shù)據(jù)寫入所述非易失性存儲器,分配新的緩存地址,并且向所述非易失性存儲器的控制器發(fā)送讀請求,以根據(jù)所述設備物理地址從所述非易失性存儲器讀取數(shù)據(jù)并且將讀取的數(shù)據(jù)寫入所述動態(tài)隨機存取存儲器的新的緩存地址,所述緩存管理器將所述新的緩存地址返回所述cxl子系統(tǒng);如果所述緩存未命中并且所述動態(tài)隨機存取存儲器未滿,所述緩存管理器分配新的緩存地址,向所述非易失性存儲器的控制器發(fā)送讀請求,根據(jù)所述設備物理地址從所述非易失性存儲器讀取數(shù)據(jù)并且將讀取的數(shù)據(jù)寫入所述動態(tài)隨機存取存儲器,所述緩存管理器將新的緩存地址返回所述cxl子系統(tǒng)。
8、確定所述訪問量低于第一閾值的數(shù)據(jù)可以包括根據(jù)淘汰算法計算數(shù)據(jù)訪問量,將低于一定閾值的數(shù)據(jù)作為訪問量低的數(shù)據(jù)。
9、根據(jù)本公開的第一方面,可選地,當所述cxl子系統(tǒng)從主機接收到寫指令時,所述緩存管理器被設置為根據(jù)緩存表和設備物理地址查詢緩存地址,如果所述緩存未命中并且所述動態(tài)隨機存取存儲器已滿,向所述非易失性存儲器的控制器發(fā)送寫請求,將所述動態(tài)隨機存取存儲器中訪問量低于第一閾值的數(shù)據(jù)寫入所述非易失性存儲器,分配新的緩存地址,并且將新的緩存地址返回所述cxl子系統(tǒng);如果所述緩存未命中并且所述動態(tài)隨機存取存儲器未滿,所述緩存管理器分配新的緩存地址,并且將該新的緩存地址返回所述cxl子系統(tǒng)。
10、根據(jù)本公開的第一方面,可選地,所述計算快速鏈路子系統(tǒng)支持cxl.io和cxl.memory協(xié)議。
11、根據(jù)本公開的第一方面,可選地,第一預設算法和第二預設算法為lru算法。根據(jù)本公開的第一方面,可選地,所述動態(tài)隨機存取存儲器為ddr,所述非易失性存儲器為nvmessd。
12、本公開的第二方面提供了一種用于前述內(nèi)存設備的控制方法,其中cxl子系統(tǒng)從主機接收讀或?qū)懼噶?,并向緩存管理器請求緩存地址;緩存管理器根?jù)讀或?qū)懼噶钪械脑O備物理地址,查詢緩存表中與其對應的緩存地址,如果緩存命中,則向cxl子系統(tǒng)返回查詢到的緩存地址,如果緩存未命中并且動態(tài)隨機存取存儲器已滿,選擇需要替換的緩存數(shù)據(jù)存入非易失性存儲器,如果緩存未命中并且動態(tài)隨機存取存儲器未滿,則為設備物理地址分配新的緩存地址。該方法的讀寫過程的更具體方式可以參見上述對于內(nèi)存設備控制器的讀寫過程的描述。
13、本公開基于現(xiàn)有的服務器架構,實現(xiàn)對內(nèi)存的擴展,降低了內(nèi)存的使用成本,對應用性能沒有影響。本公開的存儲設備可以應用在現(xiàn)有的云平臺以及大規(guī)模機房里,由于本公開的cxl設備中的控制器可以高度集成,因此只需要進行簡單的改造和升級。
14、實施本公開的任一裝置或方法并不一定需要同時達到以上所述的所有優(yōu)點。本公開的其它特征和優(yōu)點將在隨后的說明書實施例中闡述,并且,部分地從說明書實施例中變得顯而易見,或者通過實施本公開而了解。本公開實施例的目的和優(yōu)點可通過在說明書、權利要求書以及附圖中所指出的結構來實現(xiàn)和獲得。