TWI887771B - 具有擁塞監視器的計算系統及其控制操作的方法 - Google Patents
具有擁塞監視器的計算系統及其控制操作的方法 Download PDFInfo
- Publication number
- TWI887771B TWI887771B TW112135187A TW112135187A TWI887771B TW I887771 B TWI887771 B TW I887771B TW 112135187 A TW112135187 A TW 112135187A TW 112135187 A TW112135187 A TW 112135187A TW I887771 B TWI887771 B TW I887771B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- congestion
- computing system
- switch
- host
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種計算系統包括:互連裝置;多個記憶體裝置,被電性耦合成與互連裝置進行通訊;多個主機裝置,被電性耦合成與互連裝置進行通訊且被配置成產生用於經由互連裝置對所述多個記憶體裝置進行存取的請求;以及多個擁塞監視器。該些擁塞監視器被配置成藉由即時地對關於所述多個記憶體裝置中的至少一者與互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊。計算系統亦被配置成基於擁塞資訊來對所述多個主機裝置向所述多個記憶體裝置的記憶體區分配以及互連裝置內部的訊號傳輸路徑中的至少一者進行控制。
Description
實例性實施例大體而言是有關於半導體積體電路,且更具體而言,是有關於計算系統及計算系統的控制操作的方法。
[優先權申請案的參考]
本申請案主張優先於在2023年2月16日提出申請的韓國專利申請案第10-2023-0020530號,所述韓國專利申請案的揭露內容全文併入本案供參考。
例如計算系統等實行資料處理的系統可包括中央處理單元(central processing unit,CPU)、記憶體裝置、輸入-輸出裝置及在構成系統的裝置之間傳送資訊的根複合體、以及類似裝置。作為實例,能夠構成計算系統的裝置可基於各種類型的協定(例如快速周邊組件互連(peripheral component interconnect express,PCIe)、快速計算鏈路(compute express link,CXL)及類似協定)來傳送及接收請求及響應。
計算系統可包括記憶體裝置,且記憶體裝置可由一或多個其他裝置共享。在資料處理期間可實行各種類型的操作,且在記憶體裝置中存取的資料可能頻繁發生移動。在資料傳輸過程中,潛時可能會增大或者介面頻寬效率可能降低,進而增加資料處理時間。
一些實例性實施例可提供能夠減少訊號傳輸延遲的計算系統及計算系統的控制操作的方法。
根據實例性實施例,一種計算系統包括:互連裝置;多個記憶體裝置,被電性耦合成與互連裝置進行通訊;多個主機裝置,被電性耦合成與互連裝置進行通訊且被配置成產生用於對所述多個記憶體裝置進行存取的請求。亦提供多個擁塞監視器,所述多個擁塞監視器被配置成藉由即時地對關於所述多個記憶體裝置中的至少一者與互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊。計算系統更被配置成基於擁塞資訊來對所述多個主機裝置向所述多個記憶體裝置的記憶體區分配以及互連裝置內部的訊號傳輸路徑中的至少一者進行控制。
根據實例性實施例,一種計算系統包括:快速計算鏈路(CXL)互連裝置,包括多個CXL交換機;多個記憶體裝置,連接至CXL互連裝置;多個主機裝置,連接至CXL互連裝置且被配置成產生用於對所述多個記憶體裝置進行存取的請求;以及多個擁塞監視器,被配置成藉由即時地對關於所述多個記憶體裝置
中的至少一者與CXL互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊。計算系統被配置成基於擁塞資訊來對所述多個主機裝置向所述多個記憶體裝置的記憶體區分配以及CXL互連裝置內部的訊號傳輸路徑中的至少一者進行控制。
根據實例性實施例,提供一種計算系統的控制操作的方法,所述計算系統包含藉由互連裝置彼此進行通訊的多個主機裝置與多個記憶體裝置,所述方法包括:(i)由多個擁塞監視器藉由即時地對關於所述多個記憶體裝置中的至少一者與互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊;以及(ii)基於擁塞資訊來對多個主機裝置向所述多個記憶體裝置的記憶體區分配以及互連裝置內部的訊號傳輸路徑中的至少一者進行控制。
根據實例性實施例的計算系統及計算系統的控制操作的方法可藉由即時地對記憶體擁塞及交換機擁塞進行監視且藉由基於監視結果分配記憶體區或改變訊號傳輸路徑來有利地減小訊號傳輸延遲且增強計算系統的效能。
10:計算系統/系統
11、21、201:第一主機裝置(HDV1)/主機裝置
12、22、202:第二主機裝置(HDV2)/主機裝置
13、23:第一記憶體裝置(MEM1)/記憶體裝置
14、24:第二記憶體裝置(MEM2)/記憶體裝置
15、25:第三記憶體裝置(MEM3)/記憶體裝置
18:互連裝置/鏈路
20、30:計算系統
50_1~50_n:應用伺服器
51_1~51_n、61_1~61_m:處理器
52_1~52_n、62_1~62_m、232、330:記憶體
53_1~53_n、63_1~63_m:交換機
54_1~54_n、64_1~64_m:網路介面卡(NIC)
55_1~55_n、65_1~65_m:儲存裝置
60_1~60_m:儲存伺服器
70:網路
100、200、300、700、1000:系統
110:主機處理器/處理器
111、121:實體層
112:多協定MUX
113、123:介面電路
114:同調性/快取電路
115:匯流排電路
116:核心
117:I/O裝置
118、125、MC:記憶體控制器
120:加速器
122:多協定多工器(MUX)
124:加速器邏輯
130:主機記憶體
140:裝置記憶體
150:鏈路
203、HDV、HDV3、HDV4:主機裝置
210、310:根複合體
211、231、321:DMA引擎
212、FM:組構管理器
213:第一根埠RP1
214:第二根埠RP2
221:第一虛擬通道(VCS 1)
222:第二虛擬通道(VCS 2)
230:第一記憶體裝置
233:命令執行器
240:第二記憶體裝置
250:第三記憶體裝置
320:CXL記憶體擴展器
400、401、CSW11、CSW12、CSW21、CSW22:CXL交換機
500:交換機擁塞監視器/記憶體擁塞監視器/擁塞監視器
500a、500b、500c、CGM:擁塞監視器
530:效能監視器(PMON)
530a:頻寬監視器
530b:潛時監視器
531:第一資料偵測器(DET1)
532:第二資料偵測器(DET2)
533:虛擬緩衝器
535:減法器(SUB)
537:累加器(ACC)
540:潛時偵測器(LATDET)
541:第一正反器(FF1)
542:第二正反器(FF2)
543:計數器
544:第一鎖存器(LATCH1)
545:第二鎖存器(LATCH2)
546:計算器
547:映射表
548:第一邏輯閘
549:第二邏輯閘
550:控制核心(CCR)
550a、550b、550c:控制核心
600:信箱界面
721:第一CPU
722:第一雙倍資料速率(DDR)記憶體
723:第一輸入-輸出裝置
724:第一加速器
725:第一裝置記憶體
731:第二CPU
732:第二DDR記憶體
733:第二輸入-輸出裝置
734:第二加速器
735:第二裝置記憶體
740:遠端記憶體
741:擁塞監視器(CGM)
1110:處理器(CPU)
1130:工作記憶體
1132、APP0、APP1、APP2:應用程式
1134:操作系統(OS)
1135:內核
2000:資料中心
ACLK:全域時脈訊號
ARADDR:請求訊號
ARID:辨識訊號/第一辨識訊號
ARREADY:請求就緒訊號/請求訊號/就緒訊號
ARVALID:請求現用訊號/請求訊號/現用訊號
BCL:當前頻寬水準
BID:第二辨識訊號/辨識訊號
BUF:緩衝器
BUL:頻寬緊急水準/參考值
C:時脈端子
C1、C2、C3:計數值
CGI:擁塞資訊
CGI1、CGI2、CGI3:交換機擁塞資訊
CGM1:第一記憶體擁塞監視器
CGM2:第二記憶體擁塞監視器
CGM3:第三記憶體擁塞監視器
CHN:通道訊號
CLAT:當前潛時
CMD:命令
CMD DONE:響應
CNT:計數訊號
CNT1:起始計數訊號/第一計數訊號
CNT2:完成計數訊號/第二計數訊號
CTRL:控制器
CXL.io:輸入輸出(I/O)協定/非同調協定
CXL.memory:記憶體協定
D:資料端子
D11、D12、D21、D22、D31、D32、D41、D42:下游埠/埠
U11、U12、U21、U22、U31、U32、U41、U42:上游埠/埠
D(A0)、D(A1)、D(A2):資料
D(A3):最末資料/資料
DATA REQUESTED:所請求資料
DATA SERVED:所服務資料
dLAT:潛時改變值
DSP1、DSP2、DSP3:下游埠
EN1:第一賦能訊號
EN2:第二賦能訊號
FL:擁塞旗標
FS:檔案系統
ID1:第一辨識碼
ID2:第二辨識碼
ID11、ID12、ID13:值
IF:介面
IO:非同調性協定
LCL:當前潛時水準
LD0、MR1:第一記憶體區
LD1、MR2:第二記憶體區
LD(n-1):第n記憶體區
LDEC:水準降低訊號
LINC:水準提高訊號
LUL:潛時緊急水準/參考值
MEM4:記憶體裝置
MMA:記憶體分配器
NVM:非揮發性記憶體裝置
NWAL:新分配
PMT:埠映射表
Q:輸出端子
RLAST:服務完成訊號/服務訊號/訊號
RLAT:參考潛時
RQG:請求產生器
RREADY:服務就緒訊號/就緒訊號/服務訊號
RVALID:服務現用訊號/服務訊號/現用訊號
S100、S110、S120、S200、S210、S220、S230、S240、S250、S410、S420、S430:步驟
SCM:交換機擁塞監視器
SS1、SS2:輸出訊號/訊號
STG1:第一級
STG2:第二級
T0、T1、T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13:時間
UNB:實體埠
USP1、USP2:上游埠
USW:通用交換機
vPPB:虛擬PCI至PCI橋
結合附圖閱讀以下詳細說明,將更清楚地理解本揭露的實例性實施例。
圖1是示出根據實例性實施例的計算系統的方塊圖。
圖2是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。
圖3及圖4是示出根據實例性實施例的採用快速計算鏈路(CXL)協定的計算系統的方塊圖。
圖5是示出根據實例性實施例的計算系統中所包括的記憶體裝置的實例性實施例的方塊圖。
圖6是示出根據實例性實施例的計算系統中的擁塞監視器及擁塞資訊的傳輸的實例性實施例的圖。
圖7是示出根據實例性實施例的用於對計算系統中的頻寬進行偵測的緩衝器模型的圖。
圖8是示出使用圖7所示緩衝器模型的擁塞監視器的實例性實施例的方塊圖。
圖9是示出根據實例性實施例的用於對計算系統中的潛時進行偵測的累加器模型的圖。
圖10是示出使用圖9所示累加器模型的擁塞監視器的實例性實施例的方塊圖。
圖11是示出圖10所示擁塞監視器中所包括的潛時偵測器的實例性實施例的方塊圖。
圖12是示出由根據實例性實施例的計算系統實行的示例性交易及由圖11所示潛時偵測器偵測的示例性當前潛時的時序圖。
圖13是示出根據實例性實施例的計算系統中所包括的擁塞監視器的方塊圖。
圖14是示出根據實例性實施例的產生擁塞資訊訊號的方法的流程圖。
圖15是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。
圖16是示出根據實例性實施例的計算系統的軟體結構的實例性實施例的圖。
圖17A、圖17B及圖17C是用於闡述圖15所示方法的圖。
圖18是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。
圖19是示出根據實例性實施例的計算系統中所包括的快速計算鏈路(CXL)交換機的實例性實施例的方塊圖。
圖20A及圖20B是用於闡述圖18所示方法的圖。
圖21及圖22是示出根據實例性實施例的計算系統中所包括的主機裝置的實例性實施例的圖。
圖23是示出根據實例性實施例的包括基於CXL的類型3記憶體裝置的計算系統的圖。
圖24是示出根據實例性實施例的計算系統的方塊圖。
圖25是示出根據實例性實施例的包括計算系統的資料中心的方塊圖。
下文將參照其中示出一些實例性實施例的附圖更全面地闡述各種實例性實施例。在圖式中,相同的參考編號始終指代相同的元件;且可省略對元件的重複說明。
圖1是示出根據實例性實施例的計算系統10的方塊圖,
計算系統10可被不同地稱為資料處理系統或類似裝置,且可包括一或多個裝置。在下文中,計算系統10可被簡稱為系統。作為實例性實施例,系統10可包括一或多個記憶體裝置及主機裝置,主機裝置產生請求對記憶體裝置進行存取(例如,讀取資料或寫入資料)的請求。由於請求資料存取的裝置作為記憶體裝置的主機進行操作,因此所述裝置可被稱為主機裝置或主裝置。同時,在向主機裝置提供例如對資料的提供或儲存的服務方面,記憶體裝置可被稱為從裝置。
舉例而言,系統10可包括第一記憶體裝置(MEM)13、第二記憶體裝置(MEM)14及第三記憶體裝置(MEM)15以及第一主機裝置(HDV1)11及第二主機裝置(HDV2)12。儘管圖1中示出包括兩個主機裝置及三個記憶體裝置的系統10,但實例性實施例並不限於此,且系統10中可包括各種數目的裝置。
第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15中的每一者可包括各種類型的記憶體,且作為實例,每一記憶體裝置可包括固態驅動器(solid state drive,SSD)、快閃記憶體及磁性RAM(magnetic RAM,MRAM)、鐵電RAM(ferroelectric RAM,FRAM)、相變RAM(phase change RAM,PRAM)及電阻式RAM(resistive RAM,RRAM)。然而,實例性實施例不需要侷限於此,且第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15中的每一者可包括雙倍資料速率同步動態隨機存取記憶體(Double Data Rate Synchronous Dynamic
Random Access Memory,DDR SDRAM)、低功率雙倍資料速率(Low Power Double Data Rate,LPDDR)及動態隨機存取記憶體(dynamic random access memory,DRAM)(例如SDRAM)、圖形雙倍資料速率(graphics double data rate,GDDR)SDRAM及蘭巴斯動態隨機存取記憶體(Rambus Dynamic Random Access Memory,RDRAM)。
系統10中所包括的裝置可藉由支援一或多個協定的互連裝置(或鏈路)18而彼此進行通訊。裝置中的每一者可包括實行由互連裝置18支援的基於協定的通訊的內部組件。作為實例,協定可包括快速周邊組件互連(PCIe)協定、快速計算鏈路(CXL)協定、擴展匯流排(expansion bus,XBus)協定、NVLink協定、無限組構協定、加速器快取同調互連(cache coherent interconnect for accelerator,CCIX)協定、同調加速器處理器介面(coherent accelerator processor interface,CAPI)。可將至少一個所選擇協定應用於互連裝置18。在下文中,將主要基於基於CXL協定的通訊來闡述實例性實施例,但除了上述協定之外亦可應用各種其他協定而並不限於此。
儘管為了便於闡述及例示而簡要示出第一主機裝置11、第二主機裝置12與第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15之間的互連裝置18,但系統10可包括藉由根埠連接至多個裝置的根複合體,使得第一主機裝置11、第二主機裝置12與第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝
置15可藉由根複合體進行通訊。舉例而言,根複合體可對第一主機裝置11及第二主機裝置12與第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15之間的交易進行管理。另外,在一些實例性實施例中,可基於根據CXL標準的各種其他配置及功能(且作為實例,例如CXL標準中所揭露的弗萊克斯匯流排(flex bus)及交換機等配置)來實行相互通訊。另外,第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15中的至少一些可藉由對通訊路徑進行控制的預定的基於協定的橋(例如,PCI橋)而連接至第一主機裝置11及/或第二主機裝置12。
根據實施例,第一主機裝置11及第二主機裝置12中的每一者可包括各種類型的裝置。舉例而言,第一主機裝置11及第二主機裝置12中的每一者是主處理器且控制中央處理單元(CPU)、圖形處理單元(graphic processing unit,GPU)、或者例如神經處理單元(neural processing unit,NPU)等可程式化組件、例如智慧財產(intellectual property,IP)核心等提供固定功能的組件、及例如現場可程式化閘陣列(field programmable gate array,FPGA)等可重新配置組件、以及例如網路介面卡(network interface card,NIC)等周邊裝置。
根據實例性實施例,第一記憶體裝置13、第二記憶體裝置14及第三記憶體裝置15中的至少一者可由第一主機裝置11與第二主機裝置12共享。舉例而言,如下文將參照圖3及圖4所闡述,至少一個記憶體裝置可為由第一主機裝置11與第二主機裝置
12共享的池化(pooled)記憶體,並且可儲存由第一主機裝置11及第二主機裝置12執行的命令,可儲存輸入用於計算處理的資料及/或處理結果。
第一主機裝置11及第二主機裝置12可分別包括請求產生器RQG及記憶體分配器MMA。記憶體分配器MMA對由主機裝置專門存取的記憶體區進行分配以防止由不同主機裝置引起的記憶體衝突並保持儲存於記憶體中的資料的一致性。請求產生器RQG可基於與專門分配至每一主機裝置的記憶體區對應的位址而產生用於請求例如寫入操作及讀取操作等記憶體存取的請求。
根據實例性實施例,計算系統10可包括多個擁塞監視器CGM。在一些實例性實施例中,如下文將參照圖5、圖15至圖17C所闡述,擁塞監視器CGM可包括記憶體裝置中所包括的記憶體擁塞監視器。在其他實例性實施例中,如下文將參照圖18至圖20B所闡述,擁塞監視器CGM可包括互連裝置18的交換機中所包括的交換機擁塞監視器。
圖2是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。圖2所示方法可應用於參照圖1闡述的計算系統10,計算系統10包括藉由互連裝置18進行通訊的所述多個主機裝置11及12與所述多個記憶體裝置13、14及15。參照圖1及圖2,可由所述多個擁塞監視器CGM藉由即時地對關於所述多個記憶體裝置13、14及15中的至少一者與互連裝置18的訊號傳輸的擁塞程度進行監視來產生擁塞資訊(S100)。根據一些實施例,可
基於擁塞資訊來對所述多個主機裝置11及12向所述多個記憶體裝置13、14及15的記憶體區分配以及互連裝置18內部的訊號傳輸路徑中的至少一者進行控制(S200)。
在一些附加實施例中,如下文將參照圖5、圖15至圖17C所闡述,可基於自所述多個記憶體裝置13、14及15中所包括的記憶體擁塞監視器CGM提供的記憶體擁塞資訊來對所述多個主機裝置11及12向所述多個記憶體裝置13、14及15的記憶體區分配進行控制。在一些進一步的實施例中,如下文將參照圖18至圖20B所闡述,可基於自互連裝置18中所包括的交換機擁塞監視器CGM提供的交換機擁塞資訊來對互連裝置18內部的訊號傳輸路徑進行控制。
圖3及圖4是示出根據實例性實施例的採用快速計算鏈路(CXL)協定的計算系統的方塊圖。圖3及圖4中所示的多個主機裝置201至203可包括各種類型的裝置,例如CPU、GPU、NPU、FPGA及周邊裝置。
系統200可包括根複合體210及主機裝置201至203;根複合體210可包括DMA引擎211及連接至記憶體裝置的一或多個根埠,例如第一根埠RP1 213及第二根埠RP2 214。根據實例性實施例,根複合體210可更包括藉由例如乙太網路等組構傳輸資料或請求的組構管理器212,且可藉由組構連接至端點。圖3及圖4示出其中組構管理器212被包括於根複合體210中的實例,但並不限於此。根據實例性實施例,組構管理器212可包括於CXL交
換機400中。在實例性實施例中,組構管理器212可以韌體的形式實施。作為實例,端點可包括基於快閃的記憶體(例如SSD及通用快閃儲存器(universal flash storage,UFS))、揮發性記憶體(例如DRAM及SDRAM(同步DRAM))、以及非揮發性記憶體(例如PRAM、MRAM、RRAM及FRAM)。在圖3及圖4中,根複合體210被示出為與主機裝置分離的組件,但根據一些實施例,根複合體210可在主機裝置201、202及203的每一者中以積體形式實施。
根複合體210可基於主機裝置201、202及203與第一記憶體裝置230、第二記憶體裝置240及第三記憶體裝置250之間的各種類型的協定來提供資料通訊。在一些實例性實施例中,根複合體210以及第一記憶體裝置230、第二記憶體裝置240及第三記憶體裝置250可實行包括CXL中所定義的各種協定(例如I/O協定(CXL.io))的介面。
同時,第一記憶體裝置230、第二記憶體裝置240及第三記憶體裝置250中的每一者可對應於CXL協定中所定義的類型3裝置。因此,第一記憶體裝置230、第二記憶體裝置240及第三記憶體裝置250中的每一者可包括記憶體擴展器且記憶體擴展器可包括控制器。在一些實例性實施例中,包括多個記憶體區的記憶體裝置與記憶體擴展器可被實施為單獨的裝置。
圖3及圖4示出根據CXL標準的一個CXL交換機400。圖1所示互連裝置18可相依於其配置而包括一或多個CXL交換
機。每一CXL交換機400可包括一或多個上游埠USP1及USP2以及一或多個下游埠DSP1、DSP2及DSP3。根據實例性實施例,系統200可支援多個虛擬通道。虛擬通道可在一個實體介面內提供邏輯上分離的多個輸送路徑。在圖3及圖4的實例性實施例中,例示出對應於第一根埠213的第一虛擬通道(VSC 0)221及對應於第二根埠214的第二虛擬通道(VSC 1)222,但系統200的虛擬通道可以各種其他形式實施。另外,主機裝置201、202及203的組件、根複合體210及虛擬通道可被視為構成主機系統。
單個根埠可藉由虛擬通道連接至多個不同的裝置,或者二或更多個根埠可連接至單個裝置。舉例而言,第一根埠213可藉由包括一或多個虛擬PCI至PCI橋(vPPB)的路徑連接至第二記憶體裝置240,且第一根埠213亦可藉由包括一或多個vPPB的另一路徑連接至第一記憶體裝置230。類似地,第二根埠214可藉由包括一或多個vPPB的一條路徑連接至第一記憶體裝置230且藉由包括一或多個vPPB的另一路徑連接至第三記憶體裝置250。
系統200可提供由CXL協定支援的多邏輯裝置(multi-logical device,MLD)。在實例性實施例中,在圖3及圖4中所示的系統200的結構中,第一記憶體裝置230被配置成藉由第一根埠213及第二根埠214而與二或更多個主機裝置進行通訊,且被配置成包括被分配至不同主機裝置的第一記憶體區LD0至第n記憶體區LD(n-1)。作為實例,第一記憶體區LD0可被分配至第一主機裝置201且可藉由第一根埠213而與第一主機裝置201進
行通訊。另外,第二記憶體區LD1可被分配至第二主機裝置202且可藉由第二根埠214而與第二主機裝置202進行通訊。同時,第二記憶體裝置240及第三記憶體裝置250中的每一者可藉由任何一個根埠進行通訊且可對應於單邏輯裝置(single-logical device,SLD)。
第一記憶體裝置230可包括DMA引擎231且可在邏輯上被辨別為多個裝置。在實例性操作實例中,可實行資料處理(其中可將儲存於一個邏輯裝置(例如,記憶體區)中的資料複製至另一邏輯裝置),且基於DMA引擎231的控制,可將自任何一個記憶體區讀取的資料複製至另一記憶體區而不輸出至外部。即,第一記憶體裝置230中的多個邏輯裝置之間的資料傳輸可由第一記憶體裝置230中的DMA引擎231實行而無需藉由虛擬通道及根埠來移動資料。藉由此種方式,可減少潛時且可提高介面頻寬的效率。
組構管理器212可對括每一CXL交換機400中所包括的上游埠USP1及USP2與下游埠DSP1、DSP2及DSP3之間的埠連接資訊的埠映射表PMT進行管理。圖3示出其中一些vPPB未連接至實體埠(UNB)的狀態,且圖4示出其中對應的vPPB連接至實體埠(例如,下游埠DSP2)的狀態。藉由vPPB與下游埠DSP1、DSP2及DSP3之間的虛擬-實體連接(V-P結合(BINDING)),可實施上游埠USP1及USP2與下游埠DSP1、DSP2及DSP3之間的映射,且因此,可對與實體埠連接的裝置之間的連接進行控制。
此種虛擬-物理連接(V-P結合)可由組構管理器212控制。組構管理器212可對包括每一CXL交換機400中所包括的上游埠USP1及USP2與下游埠DSP1、DSP2及DSP3之間的埠連接資訊的埠映射表(PMT)進行管理。根據實例性實施例,如下文將參照圖18至圖20B所闡述,組構管理器212可基於自每一CXL交換機提供的交換機擁塞資訊來改變每一CXL交換機的埠連接資訊。
圖5是示出根據實例性實施例的計算系統中所包括的記憶體裝置的實例性實施例的方塊圖。具體而言,如圖5所示,圖3及圖4中的第一記憶體裝置230可包括DMA引擎231、記憶體232、命令執行器233及記憶體擁塞監視器CGM。記憶體232可包括多個記憶體區,例如,第一記憶體區LD0至第n記憶體區LD(n-1)。儘管第一記憶體裝置230在圖5所示的實例中被示出為一個裝置,但記憶體232與包括DMA引擎231及命令執行器233的記憶體擴展器可被實施為單獨的裝置。
第一記憶體裝置230可包括介面電路且可基於預定協定而與外部進行通訊。命令執行器233自外部主機裝置接收包括命令CMD的請求,實行與命令CMD對應的資料寫入及資料讀取,且向外部發送指示命令已完成的響應(命令完成(CMD DONE))。另外,命令執行器233可判斷請求是否指示在記憶體232中的記憶體區之間複製資料。DMA引擎231可基於命令執行器233的控制來控制資料的傳輸路徑,且作為實例,可將自分配至任何一個主機裝置的第一記憶體區LD0讀取的資料接收並傳輸至分配至另
一主機裝置的第二記憶體區LD1。
記憶體擁塞監視器CGM可藉由即時地對第一記憶體裝置230與互連裝置(例如,圖1所示18)之間的訊號傳輸的擁塞程度進行監視來產生記憶體擁塞資訊。在實例性實施例中,記憶體擁塞監視器CGM可基於對第一記憶體裝置230與互連裝置18進行連接的通道的通道訊號CHN來產生記憶體擁塞資訊。
圖6是示出根據實例性實施例的計算系統中的擁塞監視器及擁塞資訊的傳輸的實例性實施例的圖。參照圖6,在一些實施例中,擁塞監視器500可包括效能監視器(performance monitor,PMON)530及控制核心(control core,CCR)550。效能監視器530可即時地對訊號傳輸的擁塞水準進行偵測且產生當前擁塞水準。控制核心550可基於當前擁塞水準而產生擁塞資訊。在實例性實施例中,效能監視器530可基於通道訊號CHN產生與頻寬及/或潛時對應的當前擁塞水準。下文將參照圖7至圖13闡述效能監視器530的實例性實施例。
在一些實例性實施例中,擁塞監視器500可根據CXL協定基於輸入-輸出(input-output,I/O)協定CXL.io而與主機裝置HDV或組構管理器FM進行通訊。主機裝置HDV可藉由CXL協定中所定義的信箱(mailbox,MB)介面600自每一記憶體裝置中所包括的記憶體擁塞監視器500接收記憶體擁塞資訊。在實例性實施例中,信箱界面600可按照以下方式實施:將主機記憶體的局部區域註冊為用於通訊的信箱註冊區域。另外,組構管理器
FM可藉由直接存取交換機擁塞監視器500或藉由CXL協定間接地自交換機擁塞監視器500接收交換機擁塞資訊。
圖7是示出根據實例性實施例的用於對計算系統中的頻寬進行偵測的緩衝器模型的圖。根據主機裝置或主裝置的操作特性,主機裝置的服務要求水準可表達為頻寬。頻寬代表在給定時間段內傳輸或服務的資料量。舉例而言,主機裝置可在儲存或讀取來自藉由互連裝置連接的記憶體裝置的資料的同時實行其自身的功能。
圖7中,記憶體裝置的虛擬資料緩衝器的佔用狀態由陰影線指示。資料的佔用狀態可表達為當前頻寬水準BCL。當自主機裝置接收到用於資料服務(寫入或讀取)的請求(所請求資料(DATA REQUESTED))時當前頻寬水準BCL可提高,且當記憶體裝置完成資料服務(所服務資料(DATA SERVED))時當前頻寬水準BCL可降低。隨著當前頻寬水準BCL提高,欲由記憶體裝置處理的資料量可增大,且因此,記憶體裝置的訊號傳輸擁塞可增大。
可根據系統的總體情況來確定例如頻寬緊急水準BUL等參考值,且可基於參考值BUL及當前頻寬水準BCL來產生擁塞旗標FL。若當前頻寬水準BCL低於頻寬緊急水準BUL,則它對應於正常狀態且可禁用擁塞旗標FL(例如,FL=0)。相反,若當前頻寬水準BCL高於頻寬緊急水準BUL,則它對應於擁塞狀態且可啟用擁塞旗標FL(例如,FL=1)。
圖8是示出使用圖7所示緩衝器模型的擁塞監視器的實例性實施例的方塊圖。參照圖8,擁塞監視器500a可包括頻寬監視器530a及控制核心550a。頻寬監視器530a可即時地對對應通道的頻寬進行偵測且產生當前頻寬水準BCL。頻寬監視器530a可包括第一資料偵測器(DET1)531、第二資料偵測器(DET2)532及虛擬緩衝器(VBUFF)533。
在實例性實施例中,第一資料偵測器531基於通道訊號CHN產生水準降低訊號LDEC,且第二資料偵測器532基於通道訊號CHN產生水準提高訊號LINC。舉例而言,每當資料服務完成時,可以脈波形式啟用水準降低訊號LDEC,且每當請求資料服務時,可以脈波形式啟用水準提高訊號LINC。
虛擬緩衝器533基於水準降低訊號LDEC及水準提高訊號LINC產生當前頻寬水準BCL。如參照圖7所述,控制核心550a可基於參考值BUL及當前頻寬水準BCL產生擁塞旗標FL。前述擁塞資訊CGI可包括當前頻寬水準BCL及/或擁塞旗標FL。
可根據系統的總體情況來確定例如頻寬緊急水準BUL等參考值。舉例而言,參考值BUL可在系統初始化期間被提供並被儲存於控制核心550a中。控制核心550a可利用特殊功能暫存器(special function register,SFR)、現場可程式化閘陣列(FPGA)或被配置成因應於所儲存值及輸入值而實行預定過程序列的類似裝置來實施。
圖9是示出根據實例性實施例的用於對計算系統中的潛
時進行偵測的累加器模型的圖。根據主機裝置或主裝置的操作特性,主機裝置的所需水準可表達為潛時。如熟習此項技術者將理解,潛時代表自主機裝置(或主裝置)向記憶體裝置(或從裝置)請求服務直至所請求的服務完成的時間。
圖9示出其中記憶體裝置或CXL交換機的潛時狀態由陰影線指示的潛時累加器。潛時狀態可表達為當前潛時水準LCL。當潛時增大時當前潛時水準LCL可提高,且當潛時減少時當前潛時水準LCL可降低。隨著當前潛時水準LCL提高,記憶體裝置的訊號傳輸的擁塞程度可增大。
可根據系統的總體情況來確定例如潛時緊急水準LUL等參考值,且可基於參考值LUL及當前潛時水準LCL產生上述擁塞旗標FL。若當前潛時水準LCL低於潛時緊急水準LUL,則它對應於正常狀態且可禁用擁塞旗標FL(例如,FL=0)。然而,若當前潛時水準LCL高於潛時緊急水準LUL,則它對應於擁塞狀態且可啟用擁塞旗標FL(例如,FL=1)。
圖10是示出使用圖9所示累加器模型的擁塞監視器的實例性實施例的方塊圖。參照圖10,擁塞監視器500b可包括潛時監視器530b及控制核心550b。潛時監視器530b基於對應的通道訊號CHN即時地對潛時進行偵測且產生當前潛時水準LCL。潛時監視器530b可包括減法器(subtractor,SUB)535、累加器(accumulator,ACC)537及潛時偵測器(LATDET)540。潛時偵測器540可基於通道訊號CHN產生當前潛時CLAT。減法器535
可藉由計算當前潛時CLAT與參考潛時RLAT之間的差來輸出潛時改變值dLAT。累加器537可對潛時改變值dLAT進行累加以產生當前潛時水準LCL。
如參照圖9所闡述,控制核心550b可基於參考值LUL及當前潛時水準LCL產生擁塞旗標FL。前述擁塞資訊CGI可包括當前頻寬水準BCL及/或擁塞旗標FL。可根據系統的總體情況來確定例如潛時緊急水準LUL等參考值。舉例而言,參考值LUL可在系統的初始化過程中被提供並被儲存於控制核心550b中。控制核心550b可利用特殊功能暫存器SFR、現場可程式化閘陣列FPGA或具有因應於所儲存值及輸入值而實行預定過程序列的配置的類似裝置來實施。
圖11是示出圖10所示擁塞監視器中所包括的潛時偵測器的實例性實施例的方塊圖。參照圖11,潛時偵測器540可包括第一正反器(FF1)541、第二正反器(FF2)542、計數器543、第一鎖存器(LATCH1)544、第二鎖存器(LATCH2)545、計算器546、第一邏輯閘548及第二邏輯閘549。舉例而言,第一邏輯閘548可被實施為及閘,且第一邏輯閘548可輸出對請求現用訊號ARVALID與請求就緒訊號ARREADY的及運算的結果。將第一邏輯閘548的輸出訊號輸入至第一正反器541的資料端子(D),且將全域時脈訊號ACLK輸入至時脈端子(C)。第一正反器541因應於全域時脈訊號ACLK的上升邊緣對第一邏輯閘548的輸出訊號進行取樣,且藉由輸出端子(Q)產生與全域時脈訊號ACLK
的上升邊緣同步的訊號SS1。
舉例而言,第二邏輯閘549可被實施為及閘,且第二邏輯閘549可輸出對服務現用訊號RVALID、服務就緒訊號RREADY及服務完成訊號RLAST的及運算的結果。將第二邏輯閘549的輸出訊號輸入至第二正反器542的資料端子(D),且將全域時脈訊號ACLK輸入至時脈端子(C)。第二正反器542因應於全域時脈訊號ACLK的上升邊緣而對第二邏輯閘549的輸出訊號進行取樣,且藉由輸出端子(Q)產生與全域時脈訊號ACLK的上升邊緣同步的訊號SS2。
計數器543藉由對全域時脈訊號ACLK的週期數目進行計數來提供計數訊號CNT。第一鎖存器544因應於第一正反器541的輸出訊號SS1的上升邊緣而對計數訊號CNT進行鎖存且提供起始計數訊號CNT1。另外,第一鎖存器544接收與請求訊號ARVALID及ARREADY相關聯的第一辨識訊號ARID且提供第一辨識碼ID1。
第二鎖存器545因應於第二正反器542的輸出訊號SS2的上升邊緣而對計數訊號CNT進行鎖存且提供完成計數訊號CNT2。另外,第二鎖存器545接收與服務訊號RVALID、RREADY及RLAST相關聯的第二辨識訊號BID且提供第二辨識碼ID2。
計算器546基於起始計數訊號CNT1及完成計數訊號CNT2產生當前潛時CLAT。當系統1000採用支援主機裝置、互連裝置及記憶體裝置之間的多個未完成交易的協定時,可使用辨
識訊號(ARID、BID)來區分對應於同一交易的請求訊號ARVALID及ARREADY與服務訊號RVALID、RREADY及RLAST。
每當輸入第一計數訊號CNT1及第一辨識碼ID1時,計算器546對映射表547進行更新以儲存第一辨識碼ID1的值ID11、ID12及ID13以及第一計數訊號CNT1的對應值C1、C2及C3。當輸入第二計數訊號CNT2及第二辨識碼ID2時,計算器546自映射表547提取指示與第二計數訊號CNT2對應的請求時間點的計數值C1、C2或C3。在一些實施例中,計算器546可藉由計算指示輸入的第二計數訊號CNT2的請求完成時間的計數值與所提取的計數值之間的差來產生當前潛時CLAT。
圖12是示出由根據實例性實施例的計算系統實行的示例性交易及由圖11所示潛時偵測器偵測的示例性當前潛時的時序圖。為了便於說明,圖12示出根據高級可擴展介面(advanced extensible interface,AXI)協定的讀取交易的實例。AXI協定採用使用現用訊號ARVALID及RVALID以及就緒訊號ARREADY及RREADY的握手(handshake)機制。
根據握手方案,當傳送訊號時,主介面及從介面的一個側啟用現用訊號,且當準備接收時,另一側啟用就緒訊號。在主介面及從介面二者上,訊號傳輸的取樣與全域時脈訊號ACLK的上升邊緣同步實行。因此,僅當現用訊號及對應的就緒訊號二者在全域時脈訊號ACLK的上升邊緣被啟用時才實行現用訊號傳輸。
如圖12中所示,當傳送訊號時,主介面啟用請求現用訊號ARVALID,且當準備接收時,從介面啟用請求就緒訊號ARREADY。類似地,從介面在傳送訊號時啟用服務現用訊號RVALID且主介面在準備接收時啟用服務就緒訊號RREADY。
在圖12中,代表全域時脈訊號ACLK的上升邊緣的時間點指示為T0至T13。主介面將讀取請求訊號ARADDR傳送至從介面且啟用對應於請求訊號的讀取現用訊號ARVALID。在時間T2處,啟用現用訊號ARVALID及就緒訊號ARREADY二者,使得實際傳輸讀取請求訊號ARADDR。然而,自主介面的角度來看,時間T1可被確定為請求時間點,而不論從介面的就緒訊號ARREADY是否被啟用,即,不論實際訊號傳輸是否成功。
作為對讀取請求的響應,藉由突發傳送方法將資料D(A0)、D(A1)、D(A2)及D(A3)自從介面傳輸至主介面。從介面啟用對應於服務完成訊號的訊號RLAST以及最末資料D(A3)的傳送,且時間T13被確定為請求完成點。如此一來,圖10所示潛時偵測器540基於主介面與從介面之間的通道訊號CHN之中的請求訊號ARVALID及ARREADY以及服務訊號RVALID、RREADY及RLAST來偵測當前潛時CLAT。
圖13是示出根據實例性實施例的計算系統中所包括的擁塞監視器的方塊圖。參照圖13,擁塞監視器500c可包括頻寬監視器530a、潛時監視器530b及控制核心550c。頻寬監視器530a可具有與參照圖8闡述的配置相同或相似的配置,且潛時監視器
530b可具有與參照圖10闡述的配置相同或相似的配置。
頻寬監視器530a可因應於第一賦能訊號EN1而被賦能,且潛時監視器530b可因應於第二賦能訊號EN2而被賦能。當頻寬監視器530a被賦能且潛時監視器530b被去能時,擁塞監視器500c實行與參照圖8闡述的擁塞監視器500a實質上相同的操作。當頻寬監視器530a被去能且潛時監視器530b被賦能時,擁塞監視器500c實行與參照圖10闡述的擁塞監視器500b實質上相同的操作。當頻寬監視器530a及潛時監視器530b二者被賦能時,控制核心550c接收當前頻寬水準BCL及當前潛時水準(LCL)二者,且基於所述兩者而產生擁塞資訊CGI。
舉例而言,控制核心550c可計算當前頻寬水準BCL與當前潛時水準LCL的平均水準且基於平均水準產生擁塞資訊CGI。在一些實例性實施例中,控制核心550c可將不同的權重指派至當前頻寬水準BCL與當前潛時水準LCL以計算加權平均值,且基於所計算的加權平均值而產生擁塞資訊CGI。
圖14是示出根據實例性實施例的產生擁塞資訊訊號的方法的流程圖。參照圖14,可基於計算系統的特性來確定服務要求水準的類型(S210)。
前述頻寬監視器可對所請求的資料量進行偵測(S220)且對所服務的資料量進行偵測(S230)。頻寬監視器可基於所請求的資料量及所服務的資料量來確定當前頻寬水準(S410)。前述潛時監視器可對服務請求時間點進行偵測(S240)及對服務完成時
間點進行偵測(S250)。潛時監視器可基於所偵測的服務請求時間點及服務完成時間點來確定當前潛時水準(S420)。前述控制核心可基於當前頻寬水準及當前潛時水準中的至少一者來產生擁塞資訊(S430)。如此一來,可藉由根據計算系統的特性選擇適當的服務水準來產生擁塞資訊CGI,可促進系統的總體請求流且可提高服務(例如,資料傳輸)品質。
圖15是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。參照圖15,可由整合於記憶體裝置中的記憶體擁塞監視器藉由即時地對記憶體裝置與互連裝置之間的訊號傳輸的擁塞程度進行監視來產生記憶體擁塞資訊(S110)。可利用參照圖7至圖14闡述的各種方法來產生記憶體擁塞資訊。可基於記憶體擁塞資訊來判斷是否向記憶體裝置分配記憶體區(S210)。參照圖6至圖17C闡述記憶體區分配的實例性實施例。
圖16是示出根據實例性實施例的計算系統的軟體結構的實例性實施例的圖。圖16示出計算系統的實例性軟體架構。參照圖16,計算系統的加載至工作記憶體1130中且由處理器(CPU)1110驅動的軟體層結構可包括應用程式1132及操作系統(operating system,OS)1134的內核1135。操作系統1134可更包括用於對例如記憶體、數據機及影像處理裝置等各種裝置進行管理的裝置驅動器。
應用程式1132是作為基本服務驅動的或由使用者請求驅動的上層軟體。可同時執行多個應用程式(APP0、APP1及APP2)
1132來提供各種服務。應用程式1132可在被加載至工作記憶體1130中之後由處理器110執行。內核1135是操作系統1134的組件且在應用程式1132與硬體之間實行控制操作。內核1135可包括檔案系統(file system,FS)、程式執行、中斷、多任務、記憶體管理及裝置驅動器。另外,內核1135可基於自前述記憶體擁塞監視器CGM提供的記憶體擁塞資訊CGI來控制主機裝置的記憶體區的分配。
圖17A、圖17B及圖17C是用於闡述圖15所示方法的圖。參照圖17A、圖17B及圖17C,計算系統20可包括:多個主機裝置,例如第一主機裝置(HDV1)21及第二主機裝置(HDV2)22;多個記憶體裝置,例如第一記憶體裝置(MEM1)23、第二記憶體裝置(MEM2)24及第三記憶體裝置(MEM3)25;以及CXL交換機400。第一記憶體裝置23、第二記憶體裝置24及第三記憶體裝置MEM3分別包括第一記憶體擁塞監視器CGM1、第二記憶體擁塞監視器CGM2及第三記憶體擁塞監視器CGM3。由於圖17A、圖17B及圖17C所示計算系統20的配置及CXL交換機400的埠連接狀態與圖4所示內容實質上相同,因此可省略重複說明。
第一主機裝置21及第二主機裝置22可分別連接至根複合體的由CXL協定定義的第一根埠及第二根埠(例如,圖4中的213及214)。第一記憶體裝置23可分別藉由第一虛擬通道221及第二虛擬通道222連接至第一根埠及第二根埠。換言之,記憶體裝置23可由第一主機裝置21與第二主機裝置22存取及共享。第
二記憶體裝置24可由第一主機裝置21藉由第一虛擬通道221存取且第三記憶體裝置25可由第二主機裝置22藉由第二虛擬通道222存取。因此,第一主機裝置21可選擇性地將第一主機裝置21專用的第一記憶體區MR1分配至可存取的第一記憶體裝置23及第二記憶體裝置24,且主機裝置22可選擇性地將第二主機裝置22專用的第二記憶體區MR2分配至可存取的第一記憶體裝置23及第三記憶體裝置25。
舉例而言,如圖17A中所示,第二記憶體裝置24的所有記憶體區可對應於專門分配至第一主機裝置21的第一記憶體區MR1。第三記憶體裝置25的一些記憶體區可為對應於第二主機裝置22的第二記憶體區MR2。尚未分配的未分配記憶體區由陰影線指示。
在此種情形中,當第一主機裝置21另外需要新的第一記憶體區MR1時,由於在第二記憶體裝置24中不存在未分配記憶體區,因此不論上述記憶體擁塞資訊如何皆不分配第一記憶體區MR1。可將第一記憶體區MR1新分配至第一記憶體裝置23(圖17A中的NWAL)。
此後,第二主機裝置22可能另外需要新的第二記憶體區MR2。在此種情形中,如上文參照圖6所闡述,第二主機裝置22可基於根據CXL協定的I/O協定(CXL.io)接收自第一記憶體裝置23中的第一記憶體擁塞監視器CGM1提供的記憶體擁塞資訊及自第三記憶體裝置25中的第三記憶體擁塞監視器CGM3提供的
記憶體擁塞資訊。
如上所述,記憶體擁塞資訊可包括擁塞旗標FL。若FL=0,則將對應記憶體裝置的訊號傳輸指示為處於正常狀態;然而,若FL=1,則將訊號傳輸指示為擁塞。舉例而言,如圖17B中所示,自第一記憶體擁塞監視器CGM1提供的擁塞旗標FL及第三記憶體擁塞監視器CGM3提供的擁塞旗標FL二者具有值0且第一記憶體裝置23及第三記憶體裝置25可全部處於正常狀態。在此種情形中,第二主機裝置22可將第二記憶體區MR2新分配至具有更多未分配記憶體區的第一記憶體裝置23(圖17B中的NWAL)。此後,第一主機裝置21可實行記憶體密集型應用或資料密集型應用,且第一記憶體裝置23的訊號傳輸可改變至擁塞狀態。
此後,第二主機裝置22可能另外需要新的第二記憶體區MR2。第二主機裝置22可自第一記憶體擁塞監視器CGM1接收指示擁塞狀態的擁塞旗標(FL=1)且自第三記憶體擁塞監視器CGM3接收指示正常狀態的擁塞旗標(FL=0)。第二主機裝置22避開處於擁塞狀態的第一記憶體裝置23且將第二記憶體區MR2新分配至處於正常狀態的第三記憶體裝置25(圖17C中的NWAL)。
參照圖17A、圖17B及圖17C,已針對第二主機裝置22闡述了實例性實施例。應理解,基於記憶體擁塞資訊進行的記憶體區的分配可應用於可存取二或更多記憶體裝置的任何主機裝置。如此一來,能夠存取二或更多個記憶體裝置的一個主機裝置可基
於自所述二或更多個記憶體裝置中所包括的記憶體擁塞監視器提供的記憶體擁塞資訊而將對應於所述一個主機裝置的記憶體區選擇性地分配至所述二或更多個記憶體裝置中的一者。
在其中二或更多主機裝置連接至一個記憶體裝置的CXL記憶體池環境中,實體上相同的CXL記憶體擴展器可由CXL交換機分配至主機記憶體空間。當特定主機裝置動態地分配及使用CXL記憶體裝置時,不考慮其他主機裝置佔用多少對應的CXL記憶體裝置。因此,即使在另一個CXL記憶體裝置中實際上存在足夠的訊號傳輸,亦有可能由於僅在特定CXL記憶體裝置中的訊號傳輸飽和而發生效能劣化。
根據實例性實施例,可即時地對記憶體擁塞(即,記憶體裝置的訊號傳輸擁塞)進行監視且可基於監視結果分配記憶體區,藉此減少訊號傳輸延遲並提高計算系統的效能。
圖18是示出根據實例性實施例的計算系統的控制操作的方法的流程圖。參照圖18,可由整合於CXL交換機中的交換機擁塞監視器藉由即時地對經過CXL交換機的下游埠的訊號傳輸路徑的擁塞程度進行監視來產生交換機擁塞資訊(S120)。下文將參照圖19闡述交換機擁塞監視器及交換機擁塞資訊。
可基於交換機擁塞資訊來改變CXL交換機的埠連接資訊(S220)。下文將參照圖20A及圖20B來闡述基於交換機擁塞資訊的埠連接資訊的改變。
圖19是示出根據實例性實施例的計算系統中所包括的
快速計算鏈路(CXL)交換機的實例性實施例的方塊圖。圖20A及圖20B是用於闡述圖18所示方法的圖。
參照圖19,CXL交換機401可包括一或多個如上所述的擁塞監視器CGM。每一CXL交換機401中所包括的擁塞監視器CGM可被稱為交換機擁塞監視器SCM。為了便於例示,在圖19中僅示出用於闡釋交換機擁塞監視器SCM的下游埠。交換機擁塞監視器SCM整合於每一CXL交換機401中,且即時地對經過每一CXL交換機401的下游埠的訊號傳輸路徑(即,通道)的擁塞進行監視以產生交換機擁塞資訊。
舉例而言,如圖19中所示,交換機擁塞監視器SCM可包括多個擁塞監視器CGM,所述多個擁塞監視器CGM即時地對經由下游埠DSP1、DSP2及DSP3的訊號傳輸路徑的擁塞進行監視以分別提供交換機擁塞資訊CGI1、CGI2及CGI3。可基於CXL協定中所包括的I/O協定(CXL.io)而將由交換機擁塞監視器SCM產生的交換機擁塞資訊CGI1、CGI2及CGI3傳輸至組構管理器212,如上文參照圖6所闡述。
如上所述,組構管理器212可對包括每一CXL交換機401中所包括的上游埠與下游埠之間的埠連接資訊的埠映射表PMT進行管理。組構管理器212可基於自每一CXL交換機401提供的交換機擁塞資訊來改變每一CXL交換機401的埠連接資訊。
參照圖20A及圖20B,計算系統30可包括多個主機裝置HDV1、HDV2、HDV3及HDV4、多個記憶體裝置MEM1、MEM2、
MEM3及MEM4、以及互連裝置。互連裝置可包括多個CXL交換機CSW11、CSW12、CSW21及CSW22以及通用交換機USW。在圖20A及圖20B中,Uij(i及j是自然數)代表每一上游埠且Dij代表每一下游埠。
在實例性實施例中,所述多個CXL交換機CSW11、CSW12、CSW21及CSW22可佈置於由多個級分層的多級式或嵌套式結構中。舉例而言,CXL交換機CSW11及CSW12可屬於第一級STG1且CXL交換機CSW21及CSW22可屬於第二級STG2。在此種情形中,主機裝置與記憶體裝置之間的通訊可經由多個CXL交換機來實行。通用交換機USW可將屬於第一級STG1的CXL交換機CSW11及CSW12與屬於第二級STG2的CXL交換機CSW21及CSW22連接至彼此。基於自CXL交換機提供的交換機擁塞資訊。組構管理器212可利用經由通用交換機USW以及利用CXL交換機的第二下游埠的第二訊號傳輸路徑來替換經由CXL交換機的第一下游埠的第一訊號傳輸路徑。
舉例而言,如圖20A中所示,當與CXL交換機CSW11的下游埠D11對應的交換機擁塞資訊處於正常狀態時,第一主機裝置HDV1與第一記憶體裝置MEM1可藉由包括埠U11、D11、U31及D31的訊號傳輸路徑進行通訊,且第二主機裝置HDV2與第二記憶體裝置MEM2可藉由包括埠U12、D11、U31及D32的訊號傳輸路徑進行通訊。換言之,在正常狀態下,埠D11與U31之間的通道可由第一主機裝置HDV1與第二主機裝置HDV2共
享。
此後,第一主機裝置HDV1可實行記憶體密集型應用或資料密集型應用,且經由下游埠D11的訊號傳輸可改變至擁塞狀態。在此種情形中,若第二主機裝置HDV2試圖使用由第一主機裝置HDV1獨佔的訊號傳輸路徑,則不進行路由指派,且第二主機裝置HDV2的饑餓(starvation)可能發生或者潛時問題可能發生。
當埠D11與U31之間的通道處於擁塞狀態時,為了第二主機裝置HDV2與第二記憶體裝置MEM2之間的平滑通訊,組構管理器可改變埠映射表PMT的埠連接資訊,使得可利用經由CXL交換機CSW11的埠U12及D12、通用交換機USW以及利用CXL交換機CSW21的埠U32及D32的圖20B所示訊號傳輸路徑來替換經由CXL交換機CSW11的埠U12及D11以及CXL交換機CSW21的埠U31及D32的圖20A所示訊號傳輸路徑。
組構管理器212可重新配置訊號傳輸路徑以減少路由操作中可能出現的潛時同時基於交換機擁塞資訊即時地追蹤特定路徑的擁塞程度。以此種方式,可藉由對交換機擁塞進行監視(即,藉由即時地對CXL交換機的訊號傳輸擁塞進行監視且基於監視結果改變訊號傳輸路徑)減少或減輕訊號傳輸延遲且可提高計算系統的效能。
圖21及圖22是示出根據實例性實施例的計算系統中所包括的主機裝置的實例性實施例的圖。圖21及圖22示出基於CXL
協定的鏈路作為裝置之間的互連裝置的實例。參照圖21,系統100可包括各種類型的主機裝置。儘管主機處理器110及加速器120(例如,GPU及FPGA)在圖21中被示出為實例,但實施例並不限於此。被配置成傳送存取請求的各種其他類型的裝置可應用於系統100。主機處理器110與加速器120可藉由被配置成支援CXL協定的鏈路150相互傳送或接收訊息及/或資料。在一些實例性實施例中,作為主處理器的主機處理器110可為被配置成對系統100的所有操作進行控制的CPU。
另外,系統100可更包括連接至主機處理器110的主機記憶體130及安裝於加速器120處的裝置記憶體140。連接至主機處理器110的主機記憶體130可支援快取同調性。裝置記憶體140可由加速器120獨立於主機記憶體130來管理。主機記憶體130及裝置記憶體140可被多個主機裝置存取。作為實例,加速器120及例如NIC的裝置可以PCIe DMA方式對主機記憶體130進行存取。
在一些實例性實施例中,鏈路150可支援CXL協定中所定義的多個協定(例如,子協定),且可藉由所述多個協定傳輸訊息及/或資料。舉例而言,協定可包括非同調協定(或I/O協定CXL.io)、同調協定(或快取協定CXL.cache)及記憶體存取協定(或記憶體協定CXL.memory)。
I/O協定CXL.io可為類似於PCIe的I/O協定。系統100中所包括的共享記憶體(例如,池化記憶體)可基於PCIe或I/O
協定CXL.io而與主機裝置進行通訊。根據圖1中所示的實例性實施例的記憶體裝置可由主機處理器110及加速器120基於PCIe或I/O協定CXL.io藉由互連裝置來存取。另外,快取協定CXL.cache可提供加速器120可用來對主機記憶體130進行存取的協定,且記憶體協定CXL.memory可提供主機處理器110可用來對裝置記憶體140進行存取的協定。
加速器120可指被配置成向主機處理器110提供功能的任意裝置。舉例而言,可將在主機處理器110上執行的計算操作及I/O操作中的至少一些操作卸載至加速器120。在一些實施例中,加速器120可包括可程式化組件(例如,GPU及NPU)、被配置成提供固定功能的組件(例如,IP核心)及可重新配置的組件(例如,FPGA)中的任一者或任意組合。
加速器120可包括實體層121、多協定多工器(multiplexer,MUX)122、介面電路123及加速器邏輯124,且與裝置記憶體140進行通訊。加速器邏輯124可使用所述多個協定藉由多協定MUX 122及實體層121而與主機處理器110進行通訊。
介面電路123可基於用於加速器邏輯124與主機處理器110之間通訊的訊息及/或資料來確定所述多個協定中的一者。介面電路123可連接至多協定MUX 122中所包括的至少一個協定佇列且可藉由所述至少一個協定佇列向主機處理器110傳送訊息及/或資料以及自主機處理器110接收訊息及/或資料。
多協定MUX 122可包括至少一個協定佇列且藉由至少一個協定佇列向主機處理器110傳送訊息及/或資料以及自主機處理器110接收訊息及/或資料。在一些實例性實施例中,多協定多工器122可包括分別對應於鏈路150所支援的所述多個協定的多個協定佇列。在一些實施例中,多協定MUX 122可在不同協定的通訊之間進行仲裁且基於所選擇協定實行通訊。
裝置記憶體140可連接至加速器120且被稱為裝置附接記憶體。加速器邏輯124可基於獨立於鏈路150的協定(即,裝置專用協定)而與裝置記憶體140進行通訊。在一些實施例中,加速器120可包括控制器,所述控制器是用於對裝置記憶體140進行存取的組件,且加速器邏輯124可藉由控制器對裝置記憶體140進行存取。控制器可對加速器120的裝置記憶體140進行存取,且亦使得主機處理器110能夠經由鏈路150對裝置記憶體140進行存取。在一些實施例中,裝置記憶體140可對應於基於CXL的裝置附接記憶體。
主機處理器110可為系統100的主處理器(例如,CPU)。在一些實例性實施例中,主機處理器110可為基於CXL的主機處理器或主機。如圖21中所示,主機處理器110可連接至主機記憶體130且包括實體層111、多協定MUX 112、介面電路113、同調性/快取電路114、匯流排電路115、至少一個核心116、及I/O裝置117。
至少一個核心116可執行指令且連接至同調性/快取電
路114。同調性/快取電路114可包括快取層級且被稱為同調性/快取邏輯。如圖21中所示,同調性/快取電路114可與所述至少一個核心116及介面電路113進行通訊。舉例而言,同調性/快取電路114可藉由至少兩種協定(包括同調協定及記憶體存取協定)達成通訊。在一些實例性實施例中,同調性/快取電路114可包括DMA電路。I/O裝置117可用於與匯流排電路115進行通訊。舉例而言,匯流排電路115可為PCIe邏輯,且I/O裝置117可為PCIe I/O裝置。
介面電路113可使得能夠達成主機處理器110的組件(例如,同調性/快取電路114與匯流排電路115)與加速器120的組件之間的通訊。在一些實例性實施例中,介面電路113可使得能夠根據多個協定(例如,非同調協定、同調協定及記憶體協定)達成主機處理器110的組件與加速器120的組件之間的通訊。舉例而言,介面電路113可基於用於主機處理器110的組件與加速器120的組件之間的通訊的訊息及/或資料來確定所述多個協定中的一者。
多協定多工器112可包括至少一個協定佇列。介面電路113可連接至所述至少一個協定佇列且藉由所述至少一個協定佇列向加速器120傳送訊息及/或資料以及自加速器120接收訊息及/或資料。在一些實例性實施例中,介面電路113與多協定MUX 112可整合形成一個組件。在一些實施例中,多協定多工器112可包括分別對應於鏈路150所支援的所述多個協定的多個協定佇列。
在一些實施例中,多協定MUX 112可對不同協定的通訊進行仲裁且向實體層111提供所選擇通訊。
此外,根據實例性實施例,圖1中所示的主機裝置的請求產生器可對應於圖21中所示的各種組件或者被包括於該些組件中。舉例而言,請求產生器的功能可由圖21所示的各種組件(例如加速器邏輯124、所述至少一個核心116及I/O裝置117)來實行。
圖22示出用於圖21所示計算系統100中的通訊的多協定的實例。另外,圖22示出其中主機處理器110及加速器120中的每一者包括記憶體控制器的實例。圖22中所示的記憶體控制器可包括圖21中所示的裝置中的每一者中所包括的組件中的一些組件或者與該些組件分開實施。主機處理器110可基於多個協定而與加速器120進行通訊。根據上述CXL實例,所述多個協定可包括記憶體協定CXL.memory(或MEM)、同調協定CXL.cache(或COH)及非同調協定CXL.io(或IO)。記憶體協定MEM可對主裝置與從裝置之間的交易進行定義。舉例而言,記憶體協定MEM可對從主裝置至從裝置的交易以及自從裝置至主裝置的交易進行定義。同調協定COH可對加速器120與主機處理器110之間的交互進行定義。舉例而言,同調協定COH的介面可包括三個通道,包括請求、響應及資料。非同調性協定IO可為I/O裝置提供非同調加載/儲存介面。
加速器120可包括被配置成與裝置記憶體140進行通訊
且對裝置記憶體140進行存取的記憶體控制器125。在一些實例性實施例中,記憶體控制器125可位於加速器120外部且與裝置記憶體140整合。另外,主機處理器110可包括被配置成與主機記憶體130進行通訊且對主機記憶體130進行存取的記憶體控制器118。在一些實例性實施例中,記憶體控制器118可位於主機處理器110外部且與主機記憶體130整合。
圖23是示出根據實例性實施例的包括基於CXL的類型3記憶體裝置的計算系統的圖。參照圖23,系統300可包括根複合體310以及連接至根複合體310的CXL記憶體擴展器320及記憶體330。根複合體310可包括本地代理(home agent)及I/O橋。本地代理可基於記憶體協定CXL.memory而與CXL記憶體擴展器320進行通訊,且I/O橋可基於I/O協定CXL.io而與CXL記憶體擴展器320進行通訊。基於CXL協定,本地代理可對應於位於主機側上的代理,所述代理被定位成針對給定位址完全解決系統300的同調性。
CXL記憶體擴展器320可包括記憶體控制器(memory controller,MC)。圖23示出根據上述實施例的其中記憶體控制器包括DMA引擎321的實例,DMA引擎321被配置成對多個邏輯裝置之間的資料傳輸路徑進行控制。然而,實施例並不限於此,且DMA引擎321可位於記憶體控制器外部。在一些實例性實施例中,CXL記憶體擴展器320可基於I/O協定CXL.io或與其類似的PCIe藉由I/O橋向根複合體310輸出資料。
此外,根據上述實施例,記憶體330可包括多個記憶體區(例如,第一記憶體區LD0至第n記憶體區LD(n-1)),且記憶體區中的每一者可被實施為記憶體的各種單元。作為實例,當記憶體330包括多個揮發性記憶體晶片或多個非揮發性記憶體晶片時,記憶體區中的每一者的單位可為記憶體晶片。作為另一選擇,記憶體330可被實施為使得記憶體區中的每一者的單位對應於記憶體中定義的各種大小(例如,半導體晶粒、區塊、儲存體及秩(rank))中的一者。
圖24是示出根據實例性實施例的計算系統的方塊圖。參照圖24,系統700可包括第一CPU 721及第二CPU 731、分別連接至第一CPU 721及第二CPU 731的第一雙倍資料速率(DDR)記憶體722及第二DDR記憶體732。第一CPU 721與第二CPU 731可基於處理器互連技術藉由互連系統進行連接。圖24中所示的互連系統可在CPU之間提供至少一個CPU至CPU同調鏈路。
系統700可包括與第一CPU 721及第一加速器724進行通訊的第一輸入-輸出裝置723、以及耦合至第一加速器724的第一裝置記憶體725。第一CPU 721可藉由匯流排而與第一輸入-輸出裝置723及第一加速器724進行通訊。另外,系統700可包括與第二CPU 731進行通訊的第二輸入-輸出裝置733及第二加速器734、以及連接至第二加速器734的第二裝置記憶體735。第二CPU 731可藉由匯流排而與第二輸入-輸出裝置733及第二加速器734進行通訊。在一些實例性實施例中,可自系統700省略第一裝置
記憶體725及第二裝置記憶體735中的至少一者。
系統700亦可包括遠端記憶體740。第一CPU 721及第二CPU 731可藉由匯流排分別連接至遠端記憶體740。遠端記憶體740可用於系統700中的記憶體擴展。在一些實例性實施例中,可自系統700省略遠端記憶體740。系統700可基於匯流排上的多個協定中的至少一些協定來實行通訊。以CXL為例,基於I/O協定(CXL.io)傳送初始設定等資訊,基於快取協定(CXL.cache)及/或記憶體協定(CXL.memory)傳送資料及/或訊息。
在圖24所示的系統700中,遠端記憶體740可由至少兩個主機裝置共享。圖24示出第一CPU 721與第二CPU 731共享遠端記憶體740,但各種其他主機裝置可進一步共享遠端記憶體740。當根據實例性實施例的記憶體裝置應用於遠端記憶體740時,遠端記憶體740可包括被辨別為不同裝置的多個邏輯裝置,且可使用擁塞監視器(CGM)741來對訊號傳輸的擁塞程度進行監視。
圖25是示出根據實例性實施例的包括計算系統的資料中心的方塊圖。在一些實例性實施例中,上文參照圖式闡述的系統可用作應用伺服器及/或儲存伺服器且被包括於資料中心2000中。另外,根據實例性實施例的記憶體區分配及/或訊號傳輸路徑的控制可應用於應用伺服器及/或儲存伺服器中的每一者。
參照圖25,資料中心2000可收集各種資料片段且提供服務且亦被稱為資料儲存中心。舉例而言,資料中心2000可為被配置成對搜尋引擎及資料庫進行操作的系統或者是由例如銀行等
公司或政府機構使用的計算系統。如圖25中所示,資料中心2000可包括應用伺服器50_1至50_n及儲存伺服器60_1至60_m(此處,m及n中的每一者是大於1的整數)。可根據實施例而不同地選擇應用伺服器50_1至50_n的數目n及儲存伺服器60_1至60_m的數目m。應用伺服器50_1至50_n的數目n可不同於儲存伺服器60_1至60_m的數目m。
應用伺服器50_1至50_n可包括處理器51_1至51_n、記憶體52_1至52_n、交換機53_1至53_n、NIC 54_1至54_n及儲存裝置55_1至55_n中的任一者或任意組合。處理器51_1至51_n可對應用伺服器50_1至50_n的所有操作進行控制,對記憶體52_1至52_n進行存取,且執行加載於記憶體52_1至52_n中的指令及/或資料。記憶體52_1至52_n的非限制性實例可包括DDR SDRAM、高頻寬記憶體(high-bandwidth memory,HBM)、混合記憶體立方體(hybrid memory cube,HMC)、雙列直插式記憶體模組(dual in-line memory module,DIMM)、傲騰(Optane)DIMM或非揮發性DIMM(non-volatile DIMM,NVDIMM)。
根據實例性實施例,可根據實施例而不同地選擇應用伺服器50_1至50_n中所包括的處理器及記憶體的數目。在一些實施例中,處理器51_1至51_n及記憶體52_1至52_n可提供處理器-記憶體對。在一些實施例中,處理器51_1至51_n的數目可不同於記憶體52_1至52_n的數目。處理器51_1至51_n可包括單核處理器或多核處理器。在一些實施例中,如圖25中的虛線所示,
可自應用伺服器50_1至50_n省略儲存裝置55_1至55_n。可根據實施例而不同地選擇應用伺服器50_1至50_n中所包括的儲存裝置55_1至55_n的數目。處理器51_1至51_n、記憶體52_1至52_n、交換機53_1至53_n、NIC 54_1至54_n及/或儲存裝置55_1至55_n可藉由上文參照圖式闡述的鏈路彼此進行通訊。
儲存伺服器60_1至60_m可包括處理器61_1至61_m、記憶體62_1至62_m、交換機63_1至63_m、NIC 64_1至64_m及儲存裝置65_1至65_m中的任一者或任意組合。處理器61_1至61_m及記憶體62_1至62_m可類似於上文闡述的應用伺服器50_1至50_n的處理器51_1至51_n及記憶體52_1至52_n進行操作。
應用伺服器50_1至50_n可藉由網路70而與儲存伺服器60_1至60_m進行通訊。在一些實施例中,網路70可使用光纖通道(fiber channel,FC)或乙太網路來實施。FC可為用於相對高速的資料傳輸的媒體。提供高效能及高可用性的光學交換機可用作FC。可根據網路70的存取方法而將儲存伺服器60_1至60_m提供為檔案儲存器、區塊儲存器或對象儲存器。
在一些實例性實施例中,網路70可為僅儲存器網路,例如儲存器區域網路(storage area network,SAN)。舉例而言,SAN可為FC-SAN,FC-SAN可使用FC網路且可使用FC協定(FC Protocol,FCP)來實施。在另一情形中,SAN可為網際網路協定(Internet protocol,IP)-SAN,IP-SAN使用傳送控制協定/網際
網路協定(TCP/IP)網路且根據TCP/IP上SCSI或網際網路SCSI(Internet SCSI,iSCSI)協定來實施。在一些實施例中,網路70可為通用網路,例如TCP/IP網路。舉例而言,網路70可根據例如乙太網路上FC(FC over Ethernet,FCoE)、網路附接儲存器(network attached storage,NAS)、光纖上快速非揮發性記憶體(NVMe)(NVMe over fabrics,NVMe-oF)等協定來實施。
下文將主要闡述應用伺服器50_1及儲存伺服器60_1,但可注意到,對應用伺服器50_1的說明亦可應用於另一應用伺服器(例如,50_n),且對儲存伺服器60_1的說明亦可應用於另一儲存伺服器(例如,60_m)。應用伺服器50_1可藉由網路70將使用者或客戶端請求儲存的資料儲存於儲存伺服器60_1至60_m中的一者中。另外,應用伺服器50_1可藉由網路70自儲存伺服器60_1至60_m中的一者獲得使用者或客戶端請求讀取的資料。舉例而言,應用伺服器50_1可被實施為網路伺服器或資料庫管理系統(database management system,DBMS)。
應用伺服器50_1可藉由網路70對另一應用伺服器50_n中所包括的記憶體52_n及/或儲存裝置55_n進行存取及/或藉由網路70對儲存伺服器60_1至60_m中所包括的記憶體62_1至62_m及/或儲存裝置65_1至65_m進行存取。因此,應用伺服器50_1可對儲存於應用伺服器50_1至50_n及/或儲存伺服器60_1至60_m中的資料實行各種操作。舉例而言,應用伺服器50_1可執行在應用伺服器50_1至50_n及/或儲存伺服器60_1至60_m之間
遷移或複製資料的指令。在此種情形中,資料可藉由儲存伺服器60_1至60_m的記憶體62_1至62_m或者直接地自儲存伺服器60_1至60_m的儲存裝置65_1至65_m遷移至應用伺服器50_1至50_n的記憶體52_1至52_n。在一些實施例中,為了安全或隱私,藉由網路70遷移的資料可為經加密資料。
在儲存伺服器60_1中,介面IF可提供處理器61_1與控制器CTRL之間的實體連接以及NIC 64_1與控制器CTRL之間的實體連接。舉例而言,介面IF可使用直接附接儲存(direct attached storage,DAS)方法來實施,在DAS方法中,儲存裝置65_1直接連接至專用纜線。舉例而言,介面IF可使用例如以下各種介面方法來實施:先進技術附件(advanced technology attachment,ATA)、串列ATA(serial ATA,SATA)、外部SATA(external SATA,e-SATA)、小型電腦小型介面(small computer small interface,SCSI)、串列附接SCSI(serial attached SCSI,SAS)、PCI、PCIe、NVMe、IEEE 1394、通用串列匯流排(universal serial bus,USB)、安全數位(secure digital,SD)卡、多媒體卡(multi-media card,MMC)、嵌入式MMC(embedded MMC,eMMC)、UFS、嵌入式UFS(embedded UFS,eUFS)及緊湊型快閃(compact flash,CF)卡介面。
在儲存伺服器60_1中,交換機63_1可基於處理器61_1的控制而選擇性地將處理器61_1連接至儲存裝置65_1或者選擇性地將NIC 64_1連接至儲存裝置65_1。在一些實例性實施例中,
NIC 64_1可包括網路介面卡(NIC)及網路配接器。NIC 54_1可藉由有線介面、無線介面、藍牙介面或光學介面連接至網路70。NIC 54_1可包括內部記憶體、數位訊號處理器(digital signal processor,DSP)及主機匯流排介面且藉由主機匯流排介面連接至處理器61_1及/或交換機63_1。在一些實施例中,NIC 64_1可與處理器61_1、交換機63_1及儲存裝置65_1中的任一者或任意組合進行整合。
在應用伺服器50_1至50_n或儲存伺服器60_1至60_m中,處理器51_1至51_n及61_1至61_m可向儲存裝置55_1至55_n及65_1至65_m或記憶體52_1至52_n及62_1至62_m傳送命令且對資料進行程式化或讀取資料。在此種情形中,資料可為由錯誤校正碼(error correction code,ECC)引擎校正了錯誤的資料。資料可為利用資料匯流排反相(data bus inversion,DBI)或資料遮蔽(data masking,DM)處理的資料且包括循環冗餘碼(cyclic redundancy code,CRC)資訊。為了安全或隱私,資料可為經加密資料。
因應於自處理器51_1至51_n及61_1至61_m接收的讀取命令,儲存裝置55_1至55_n及65_1至65_m可將控制訊號及命令/位址訊號傳送至非揮發性記憶體裝置(例如,反及快閃記憶體裝置)NVM。因此,當自非揮發性記憶體裝置NVM讀取資料時,可輸入讀取賦能訊號作為資料輸出控制訊號以將資料輸出至DQ匯流排。可使用讀取賦能訊號來產生資料選通訊號。可根據寫
入賦能訊號的上升邊緣或下降沿對命令及位址訊號進行鎖存。
控制器CTRL可對儲存裝置65_1的所有操作進行控制。在實施例中,控制器CTRL可包括靜態RAM(static RAM,SRAM)。控制器CTRL可因應於寫入命令將資料寫入至非揮發性記憶體裝置NVM或者因應於讀取命令自非揮發性記憶體裝置NVM讀取資料。舉例而言,可基於自主機(例如,儲存伺服器60_1的處理器61_1、另一儲存伺服器60_m的處理器61_m或者應用伺服器50_1至50_n的處理器51_1至51_n)提供的請求來產生寫入命令及/或讀取命令。緩衝器BUF可暫時地對欲寫入至非揮發性記憶體裝置NVM的資料或欲自非揮發性記憶體裝置NVM讀取的資料進行儲存(或緩衝)。在一些實施例中,緩衝器BUF可包括DRAM。緩衝器BUF可儲存元資料。元資料可指使用者資料或由控制器CTRL產生的資料,以對非揮發性記憶體裝置NVM進行管理。儲存裝置65_1可包括用於安全或隱私的安全元件(secure element,SE)。
可將本發明概念應用於任何電子裝置及系統。舉例而言,本發明概念可應用於例如記憶卡、固態驅動器(SSD)、嵌入式多媒體卡(eMMC)、通用快閃儲存器(UFS)、行動電話、智慧型電話、個人數位助理(personal digital assistant,PDA)、可攜式多媒體播放器(portable multimedia player,PMP)、數位相機、攝錄像機、個人電腦(personal computer,PC)、伺服器電腦、工作站、膝上型電腦、數位電視(television,TV)、機上盒、可攜式遊戲控
制台、導航系統、可穿戴裝置、物聯網(internet of things,IoT)裝置、萬物互聯(internet of everything,IoE)裝置、電子書、虛擬實境(virtual reality,VR)裝置、增強實境(augmented reality,AR)裝置、伺服器系統、汽車駕駛系統、資料中心等。
前述內容是實例性實施例的例示且不被解釋為對其進行限制。儘管已闡述了幾個實例性實施例,但熟習此項技術者將容易理解,在本質上不背離本發明概念的條件下,可在實例性實施例中作出許多修改。
10:計算系統/系統
11:第一主機裝置(HDV1)/主機裝置
12:第二主機裝置(HDV2)/主機裝置
13:第一記憶體裝置(MEM1)/記憶體裝置
14:第二記憶體裝置/記憶體裝置
15:第三記憶體裝置/記憶體裝置
18:互連裝置/鏈路
CGM:擁塞監視器
MMA:記憶體分配器
RQG:請求產生器
Claims (19)
- 一種計算系統,包括: 互連裝置; 多個記憶體裝置,被電性耦合成與所述互連裝置進行通訊; 多個主機裝置,被電性耦合成與所述互連裝置進行通訊且被配置成產生用於經由所述互連裝置對所述多個記憶體裝置進行存取的請求;以及 多個擁塞監視器,被配置成藉由即時地對關於所述多個記憶體裝置中的至少一者與所述互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊;且 其中所述計算系統被配置成基於所述擁塞資訊來對所述多個主機裝置向所述多個記憶體裝置的記憶體區分配以及所述互連裝置內部的訊號傳輸路徑中的至少一者進行控制, 其中所述多個記憶體裝置包括由快速計算鏈路(CXL)協定定義的至少一個類型3池化記憶體。
- 如請求項1所述的計算系統,其中所述多個擁塞監視器中的至少一者包括: 記憶體擁塞監視器,整合於所述多個記憶體裝置中的一個記憶體裝置內且被配置成藉由即時地對所述一個記憶體裝置與所述互連裝置之間的訊號傳輸的擁塞程度進行監視來產生記憶體擁塞資訊。
- 如請求項2所述的計算系統,其中所述多個主機裝置中的一個主機裝置被配置成基於所述記憶體擁塞資訊來判斷是否向所述一個記憶體裝置分配記憶體區。
- 如請求項2所述的計算系統,其中所述多個主機裝置包括與根複合體的由所述快速計算鏈路(CXL)協定定義的一個根埠連接的一個主機裝置;且其中所述多個記憶體裝置包括經由多個虛擬通道連接至所述一個根埠的二或更多個記憶體裝置。
- 如請求項4所述的計算系統,其中所述一個主機裝置被配置成基於自分別包括於所述二或更多個記憶體裝置中的多個記憶體擁塞監視器提供的所述記憶體擁塞資訊而選擇性地向所述二或更多個記憶體裝置分配與所述一個主機裝置對應的記憶體區。
- 如請求項2所述的計算系統,其中所述多個主機裝置中的一個主機裝置被配置成藉由由所述快速計算鏈路(CXL)協定定義的信箱介面自所述記憶體擁塞監視器接收所述記憶體擁塞資訊。
- 如請求項1所述的計算系統,其中所述互連裝置包括: 多個交換機,包括由所述快速計算鏈路(CXL)協定定義的多個上游埠及多個下游埠;以及 組構管理器,被配置成對埠映射表進行管理,所述埠映射表包括關於所述多個交換機中的一個交換機的所述多個上游埠與所述多個下游埠之間的連接的埠連接資訊。
- 如請求項7所述的計算系統,其中所述多個擁塞監視器包括: 交換機擁塞監視器,整合於所述一個交換機內且被配置成藉由即時地對經過所述一個交換機的所述多個下游埠的訊號傳輸路徑的擁塞程度進行監視來產生交換機擁塞資訊。
- 如請求項8所述的計算系統,其中所述組構管理器被配置成基於自所述一個交換機提供的所述交換機擁塞資訊來改變所述一個交換機的所述埠連接資訊。
- 如請求項8所述的計算系統,其中所述互連裝置更包括對所述多個交換機進行連接的通用交換機。
- 如請求項10所述的計算系統,其中所述組構管理器被配置成基於自所述一個交換機提供的所述交換機擁塞資訊而利用經過所述通用交換機且經過所述一個交換機的第二下游埠的第二訊號傳輸路徑來替換經過所述一個交換機的第一下游埠的第一訊號傳輸路徑。
- 如請求項8所述的計算系統,其中所述組構管理器被配置成藉由所述快速計算鏈路協定自所述交換機擁塞監視器接收所述交換機擁塞資訊。
- 如請求項1所述的計算系統,其中所述多個擁塞監視器中的一個擁塞監視器包括: 效能監視器,被配置成藉由對所述訊號傳輸的所述擁塞程度進行偵測來產生當前擁塞水準;以及 控制核心,被配置成基於所述當前擁塞水準而產生所述擁塞資訊。
- 如請求項13所述的計算系統,其中所述效能監視器包括以下中的至少一者: 頻寬監視器,被配置成藉由即時地對與所述訊號傳輸的所述擁塞程度對應的頻寬進行偵測來產生當前頻寬水準;以及 潛時監視器,被配置成藉由即時地對與所述訊號傳輸的所述擁塞程度對應的潛時進行偵測來產生當前潛時水準。
- 如請求項14所述的計算系統,其中所述頻寬監視器包括: 所請求資料偵測器,被配置成基於與來自所述多個主機裝置的所述請求相關的資料量而產生水準提高訊號; 所服務資料偵測器,被配置成基於因應於所述請求而被服務的資料量來產生水準降低訊號;以及 虛擬緩衝器,被配置成基於所述水準提高訊號及所述水準降低訊號而產生所述當前頻寬水準。
- 如請求項14所述的計算系統,其中所述潛時監視器包括: 潛時偵測器,被配置成基於通道訊號產生當前潛時; 減法器,被配置成計算參考潛時與所述當前潛時之間的差以產生潛時差值;以及 累加器,被配置成對所述潛時差值進行累加以產生所述當前潛時水準。
- 一種計算系統,包括: 快速計算鏈路(CXL)互連裝置,包括多個快速計算鏈路交換機; 多個記憶體裝置,被電性耦合成與所述快速計算鏈路互連裝置進行通訊; 多個主機裝置,被電性耦合成與所述快速計算鏈路互連裝置進行通訊且被配置成產生用於對所述多個記憶體裝置進行存取的請求;以及 多個擁塞監視器,被配置成藉由即時地對關於所述多個記憶體裝置中的至少一者與所述快速計算鏈路互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊;且 其中所述計算系統被配置成基於所述擁塞資訊來對所述多個主機裝置向所述多個記憶體裝置的記憶體區分配以及所述快速計算鏈路互連裝置內部的訊號傳輸路徑中的至少一者進行控制。
- 如請求項17所述的計算系統,其中所述多個擁塞監視器中的每一者包括: 記憶體擁塞監視器,整合於所述多個記憶體裝置中的一個記憶體裝置中且被配置成藉由即時地對所述一個記憶體裝置與所述快速計算鏈路互連裝置之間的訊號傳輸的擁塞程度進行監視來產生記憶體擁塞資訊;以及 交換機擁塞監視器,整合於所述多個快速計算鏈路交換機中的一個快速計算鏈路交換機中且被配置成藉由即時地對經過所述一個快速計算鏈路交換機的多個下游埠的訊號傳輸路徑的擁塞程度進行監視來產生交換機擁塞資訊。
- 一種計算系統的控制操作的方法,所述計算系統包括藉由互連裝置彼此進行通訊的多個主機裝置與多個記憶體裝置,所述方法包括: 由多個擁塞監視器藉由即時地對關於所述多個記憶體裝置中的至少一者與所述互連裝置的訊號傳輸的擁塞程度進行監視來產生擁塞資訊;以及 基於所述擁塞資訊來對多個主機裝置向所述多個記憶體裝置的記憶體區分配以及所述互連裝置內部的訊號傳輸路徑中的至少一者進行控制, 其中所述多個記憶體裝置包括由快速計算鏈路(CXL)協定定義的至少一個類型3池化記憶體。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230020530A KR20240127602A (ko) | 2023-02-16 | 2023-02-16 | 컴퓨팅 시스템 및 그 동작 제어 방법 |
| KR10-2023-0020530 | 2023-02-16 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202435083A TW202435083A (zh) | 2024-09-01 |
| TWI887771B true TWI887771B (zh) | 2025-06-21 |
Family
ID=92238940
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112135187A TWI887771B (zh) | 2023-02-16 | 2023-09-15 | 具有擁塞監視器的計算系統及其控制操作的方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240281402A1 (zh) |
| KR (1) | KR20240127602A (zh) |
| CN (1) | CN118503181A (zh) |
| TW (1) | TWI887771B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12500855B2 (en) * | 2023-12-13 | 2025-12-16 | Unifabrix Ltd. | Abstraction of compute nodes and accelerators in a switched CXL interconnect |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111010865A (zh) * | 2017-02-24 | 2020-04-14 | 梅西莫股份有限公司 | 用于显示医疗监测数据的系统 |
| CN111989681A (zh) * | 2017-12-08 | 2020-11-24 | 雷网有限责任公司 | 自动部署的信息技术(it)系统和方法 |
| CN115114013A (zh) * | 2021-03-18 | 2022-09-27 | 爱思开海力士有限公司 | 高速外围组件互连装置及其操作方法 |
-
2023
- 2023-02-16 KR KR1020230020530A patent/KR20240127602A/ko active Pending
- 2023-09-05 US US18/460,954 patent/US20240281402A1/en active Pending
- 2023-09-15 TW TW112135187A patent/TWI887771B/zh active
- 2023-12-08 CN CN202311676693.1A patent/CN118503181A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111010865A (zh) * | 2017-02-24 | 2020-04-14 | 梅西莫股份有限公司 | 用于显示医疗监测数据的系统 |
| CN111989681A (zh) * | 2017-12-08 | 2020-11-24 | 雷网有限责任公司 | 自动部署的信息技术(it)系统和方法 |
| CN115114013A (zh) * | 2021-03-18 | 2022-09-27 | 爱思开海力士有限公司 | 高速外围组件互连装置及其操作方法 |
| TW202238399A (zh) * | 2021-03-18 | 2022-10-01 | 韓商愛思開海力士有限公司 | 快速週邊組件互連裝置及其操作方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202435083A (zh) | 2024-09-01 |
| CN118503181A (zh) | 2024-08-16 |
| US20240281402A1 (en) | 2024-08-22 |
| KR20240127602A (ko) | 2024-08-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
| US12306763B2 (en) | Systems and methods for streaming storage device content | |
| US10318164B2 (en) | Programmable input/output (PIO) engine interface architecture with direct memory access (DMA) for multi-tagging scheme for storage devices | |
| US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
| KR101744465B1 (ko) | 데이터를 저장하기 위한 방법 및 장치 | |
| US12056066B2 (en) | System, device, and method for accessing memory based on multi-protocol | |
| US10540303B2 (en) | Module based data transfer | |
| US11809341B2 (en) | System, device and method for indirect addressing | |
| CN115687193A (zh) | 存储模块、包括其的系统以及存储模块的操作方法 | |
| TWI797022B (zh) | 儲存控制器、計算儲存裝置以及計算儲存裝置的操作方法 | |
| TWI887771B (zh) | 具有擁塞監視器的計算系統及其控制操作的方法 | |
| US11921639B2 (en) | Method for caching data, a host device for caching data, and a storage system for caching data | |
| CN116266146A (zh) | 多核处理器和存储装置 | |
| US20250053336A1 (en) | Memory device and computing system including the same | |
| CN118069037A (zh) | 存储器控制器、电子系统和控制存储器访问的方法 | |
| CN114550805A (zh) | 半导体装置 | |
| CN118672725A (zh) | 存储控制器以及操作包括存储控制器的电子系统的方法 | |
| KR20250012280A (ko) | 스토리지 시스템 및 이를 포함하는 컴퓨팅 시스템 | |
| CN120371198A (zh) | 存储装置及其操作方法 |