TW202143035A - 橋接電路與電腦系統 - Google Patents

橋接電路與電腦系統 Download PDF

Info

Publication number
TW202143035A
TW202143035A TW110107558A TW110107558A TW202143035A TW 202143035 A TW202143035 A TW 202143035A TW 110107558 A TW110107558 A TW 110107558A TW 110107558 A TW110107558 A TW 110107558A TW 202143035 A TW202143035 A TW 202143035A
Authority
TW
Taiwan
Prior art keywords
nvme
tcp
data
storage
bridge circuit
Prior art date
Application number
TW110107558A
Other languages
English (en)
Other versions
TWI774255B (zh
Inventor
賴瑾
Original Assignee
威盛電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Priority to CN202110325479.6A priority Critical patent/CN113051206A/zh
Priority to US17/234,751 priority patent/US11442882B2/en
Publication of TW202143035A publication Critical patent/TW202143035A/zh
Application granted granted Critical
Publication of TWI774255B publication Critical patent/TWI774255B/zh

Links

Images

Landscapes

  • Bus Control (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

一種橋接電路包含有NVMe裝置控制器、網路子系統以及資料轉送電路。該NVMe裝置控制器用以透過PCIe匯流排來與電腦主機進行溝通。該網路子系統用以透過網路來與NVMe-TCP裝置進行溝通。該資料轉送電路耦接於該NVMe裝置控制器與該網路子系統之間,並用以在無須該電腦主機的介入之下,處理有關該NVMe-TCP裝置的資料轉送。

Description

橋接電路與電腦系統
本發明係有關於資料處理,尤指一種可於PCIe-NVMe協定與NVMe-TCP協定之間提供轉換的橋接電路與採用此橋接電路的電腦系統。
NVMe (Non-Volatile Memory Express)是一種非揮發性記憶體的主機控制介面規格,專門搭配使用 PCIe(Peripheral Component Interconnect Express)匯流排的快閃記憶體裝置而設計的通訊協定,例如電腦主機可透過PCIe-NVMe協定來將資料寫入具有PCIe介面的固態硬碟(solid-state drive, SSD),以及可透過PCIe-NVMe協定來讀取具有PCIe介面的固態硬碟中所儲存的資料,相較於採用其它輸入/輸出介面的固態硬碟,具有PCIe介面的固態硬碟可藉由PCIe-NVMe協定而具備更快的讀寫速度。然而,由於電腦主機需要透過PCIe匯流排來存取固態硬碟,因此標準的PCIe-NVMe協定無法適用於遠端儲存設備的資料存取,故近年來出現了NVMe-oF (NVMe-over-Fabrics)方案以支持資料中心的網路儲存,其中NVMe-TCP (NVMe-over-TCP)協定可以在現有的網路基礎設施上運作,不需要特殊的交換機、路由器與網路卡,因此透過NVMe-TCP協定可簡單實現遠端儲存設備的部署。
然而,對於主機端而言,NVMe-TCP協定本身的複雜度會大幅增加中央處理器的運算負載,此外,為了存取NVMe-TCP裝置(例如連接至區域網路的固態硬碟),主機端另需要安裝新的驅動程式,由於需要不同的驅動程式來分別處理PCIe-NVMe協定以及NVMe-TCP協定,也必然會增加系統複雜度。
因此,本發明的目的之一在於提出一種可於PCIe-NVMe協定與NVMe-TCP協定之間提供轉換的橋接電路與採用此橋接電路的電腦系統。
在本發明的一個實施例中,揭露一種橋接電路。該橋接電路包含有一NVMe裝置控制器、一網路子系統以及一資料轉送電路。該NVMe裝置控制器用以透過一PCIe匯流排來與一電腦主機進行溝通。該網路子系統用以透過一網路來與一NVMe-TCP裝置進行溝通。該資料轉送電路耦接於該NVMe裝置控制器與該網路子系統之間,並用以在無須該電腦主機的介入之下,處理有關該NVMe-TCP裝置的資料轉送。
在本發明的另一個實施例中,揭露一種電腦系統。該電腦系統包含有一電腦主機以及一橋接電路。該橋接電路包含有一NVMe裝置控制器、一網路子系統以及一資料轉送電路。該NVMe裝置控制器用以透過一PCIe匯流排來與該電腦主機進行溝通。該網路子系統用以透過一網路來與一NVMe-TCP裝置進行溝通。該資料轉送電路耦接於該NVMe裝置控制器與該網路子系統之間,並用以處理有關該NVMe-TCP裝置的資料轉送。該橋接電路會讓該NVMe-TCP裝置被該電腦主機視為一PCIe-NVMe裝置來進行存取。
在本發明的另一個實施例中,揭露一種電腦系統。該電腦系統包含有一電腦主機以及一橋接電路。該橋接電路包含有一NVMe裝置控制器、一網路子系統以及一資料轉送電路。該NVMe裝置控制器用以透過一PCIe匯流排來與該電腦主機進行溝通。該網路子系統用以透過一網路來與一NVMe-TCP裝置進行溝通。該資料轉送電路耦接於該NVMe裝置控制器與該網路子系統之間,並用以處理有關該NVMe-TCP裝置的資料轉送。該電腦主機載入並執行PCIe-NVMe驅動程式來控制該電腦主機與該NVMe裝置控制器之間的溝通,且無須具備NVMe-TCP驅動程式。
本發明所揭示的橋接電路可將NVMe-TCP的處理自主機端處理器卸載出來,因而大幅降低主機端處理器的運算負載,另外,主機端處理器僅需執行PCIe-NVMe驅動程式即可藉由本發明所揭示的橋接電路來完成NVMe-TCP裝置的資料存取,無須安裝並執行NVMe-TCP驅動程式,故可降低系統複雜度。
第1圖為本發明採用橋接電路之電腦系統的示意圖。電腦系統100包含電腦主機102、PCIe介面卡104以及至少一NVMe-TCP裝置106,為了簡潔起見,第1圖僅繪示出一個NVMe-TCP裝置106,然而,於實際應用時,電腦系統100可根據應用需求而設置複數個NVMe-TCP裝置106。電腦主機102包含中央處理器112與系統儲存裝置114,例如系統儲存裝置114可以是記憶體。另外,系統儲存裝置114中設置有提交佇列(submission queue, SQ)116與完成佇列(completion queue, CQ)118,其中提交佇列116用以儲存電腦主機102所發出的命令,而完成佇列118會與提交佇列116配對,用來儲存該命令的完成資訊。PCIe介面卡104上設置有橋接電路122與可供橋接電路122使用的本地儲存裝置124,例如本地儲存裝置124可以是記憶體。PCIe介面卡104可安裝於電腦主機102上的PCIe插槽,因此,橋接電路122便可透過PCIe匯流排103來跟電腦主機102進行溝通。本實施例中,橋接電路122與NVMe-TCP裝置106均連接至網路105,例如網路105為區域網路。NVMe-TCP裝置106包含非揮發性記憶體132,例如NVMe-TCP裝置106為採用NVMe-TCP協定的固態硬碟。本實施例中,橋接電路122可於PCIe-NVMe協定與NVMe-TCP協定之間提供轉換,換言之,橋接電路122透過PCIe-NVMe協定來跟電腦主機102溝通,並透過NVMe-TCP協定來跟NVMe-TCP裝置106進行溝通,因此,電腦主機102本身無須處理NVMe-TCP協定堆疊(stack),故電腦主機102僅需載入並執行PCIe-NVMe驅動程式DRV_NVMe來控制電腦主機102與橋接電路122之間的溝通,實際上無須具備NVMe-TCP驅動程式,進一步來說,橋接電路104可讓NVMe-TCP裝置106被電腦主機102視為PCIe-NVMe裝置來進行存取。
第2圖為根據本發明一實施例之橋接電路的示意圖。第1圖所示之橋接電路122可由第2圖所示之橋接電路200來實現。如第2圖所示,橋接電路200包含NVMe裝置控制器202、資料轉送電路204以及網路子系統206。本實施例中,NVMe裝置控制器202、資料轉送電路204以及網路子系統206均設置於同一晶片201中。NVMe裝置控制器202用以透過PCIe匯流排103來與電腦主機102進行溝通。網路子系統206用以透過網路(例如區域網路)105來與NVMe-TCP裝置106進行溝通。資料轉送電路204具備直接記憶體存取(direct memory access, DMA)的能力,並耦接於NVMe裝置控制器202與網路子系統206之間,用以在無須電腦主機102的介入之下,處理有關NVMe-TCP裝置106的資料轉送(包含透過NVMe裝置控制器202與網路子系統206來將電腦主機102的資料轉送至NVMe-TCP裝置106中的非揮發性記憶體132,以及透過NVMe裝置控制器202與網路子系統206來將NVMe-TCP裝置106的非揮發性記憶體132所儲存的資料轉送至電腦主機102)。
第3圖為根據本發明一實施例之NVMe裝置控制器的示意圖。第2圖所示之NVMe裝置控制器202可由第3圖所示之NVMe裝置控制器300來實現。如第3圖所示,NVMe裝置控制器300包含PCIe控制器302、主機控制器304、提交佇列處理電路306、完成佇列處理電路308以及儲存位址處理電路310。PCIe控制器302用以存取PCIe匯流排103。主機控制器304包含複數個功能區塊,其中功能區塊(標示為DNTRFC)312用以控制PCIe匯流排103的下行資料處理(downstream transaction),功能區塊(標示為UPTRFC)314用以控制PCIe匯流排103的上行資料處理(upstream transaction),功能區塊(標示為PCIe_cfg)316包含有暫存器以儲存PCIe組態設定,以及功能區塊(標示為NVMe_cfg)318包含有暫存器以儲存NVMe組態設定。
提交佇列處理電路306用以讀取並處理電腦主機102之提交佇列116中的命令(例如寫入命令或讀取命令),例如,當電腦主機102將命令(例如寫入命令或讀取命令)寫入提交佇列116之後,電腦主機102會通知NVMe裝置控制器300,而提交佇列處理電路306後續便會將此命令(例如寫入命令或讀取命令)自提交佇列116中擷取出來。完成佇列處理電路308用以將該命令(例如寫入命令或讀取命令)的完成資訊寫入電腦主機102之完成佇列118中,例如,當資料轉送電路204已經將寫入命令所指示的主機端資料傳送至NVMe-TCP裝置106中的非揮發性記憶體132,則完成佇列處理電路308會將此寫入命令的完成資訊寫入至完成佇列118中;同樣地,當資料轉送電路204已經將讀取命令所指示的裝置端資料傳送至主機裝置102中的系統儲存裝置114,則完成佇列處理電路308會將此讀取命令的完成資訊寫入至完成佇列118中。
儲存位址處理電路310用以擷取該命令(例如寫入命令或讀取命令)所附帶的儲存位址資訊,並可根據該儲存位址資訊來設定資料轉送電路204,例如該儲存位址資訊會指定系統儲存裝置114中的儲存位址,當提交佇列116中所要處理的命令是寫入命令時,要被寫入至NVMe-TCP裝置106中非揮發性記憶體132的主機端資料會位於該儲存位址資訊所指定的儲存位址,另外,當提交佇列116中所要處理的命令是讀取命令時,要從NVMe-TCP裝置106中非揮發性記憶體132讀取出來的裝置端資料會寫入至該儲存位址資訊所指定的儲存位址。本實施例中,該儲存位址資訊可利用分散聚合表(Scatter Gather List, SGL)的資料結構來紀錄,然而,本發明並不以此為限,於其它實施例中,該儲存位址資訊亦可利用物理區域頁(Physical Region Page, PRP)的資料結構來紀錄。由於NVMe命令(例如寫入命令或讀取命令)所附帶的該儲存位址資訊會指定系統儲存裝置114中的儲存位址,因此,儲存位址處理電路310可據此來設定資料轉送電路204,以使資料轉送電路204可正確處理有關NVMe-TCP裝置106的資料轉送作業。
第4圖為根據本發明一實施例之資料轉送電路的示意圖。第2圖所示之資料轉送電路204可由第4圖所示之資料轉送電路400來實現。如第4圖所示,資料轉送電路400包含資料存取電路402與複數個儲存元件(例如記憶體)404、406、408。儲存元件406用以儲存一鏈接串列(linked list)412,其中鏈接串列412中的每一節點會紀錄系統儲存裝置114中的一儲存位址,例如鏈接串列412的複數節點分別紀錄系統儲存裝置114中的複數個儲存位址ADDR_A1、ADDR_A2、ADDR_A3、ADDR_A4。儲存元件408則用以儲存另一鏈接串列414,其中鏈接串列414中的每一節點會紀錄本地儲存裝置124中的一儲存位址,例如鏈接串列414的複數節點分別紀錄本地儲存裝置124中的複數個儲存位址ADDR_B1、ADDR_B2、ADDR_B3、ADDR_B4。儲存元件404則用以儲存一查找表410,其中查找表410會紀錄鏈接串列412中第一節點(本實施例為紀錄儲存位址ADDR_A1的節點)於儲存元件406中的儲存位址PTR_1以及鏈接串列414中第一節點(本實施例為紀錄儲存位址ADDR_B1的節點)於儲存元件408中的儲存位址PTR_2。資料存取電路402用以依據查找表410來讀取鏈接串列412及鏈接串列414,以處理電腦主機102與NVMe-TCP裝置106之間的資料轉送作業。
當電腦主機102將NVMe命令(例如寫入命令或讀取命令)寫入至提交佇列116,該NVMe命令會具有相對應的NVMe命令識別碼HID,此外,透過網路105,橋接電路122會藉由TCP連線識別碼(TCP session ID)SID來與NVMe-TCP裝置106進行溝通,並會基於該PCIe-NVMe命令來產生並傳送NVMe-TCP命令(例如寫入命令或讀取命令)至NVMe-TCP裝置106,而該NVMe-TCP命令同樣會具有相對應的命令識別碼CID,本實施例中,NVMe命令識別碼HID會綁定相對應的一對TCP連線識別碼SID與NVMe-TCP命令識別碼CID來作為查找表410的索引,如第4圖所示,查找表410會將一組NVMe命令識別碼HID、TCP連線識別碼SID與NVMe-TCP命令識別碼CID映射至鏈接串列412中第一節點於儲存元件406中的儲存位址PTR_1以及鏈接串列414中第一節點於儲存元件408中的儲存位址,因此,資料存取電路402便可依據該組NVMe命令識別碼HID、TCP連線識別碼SID與NVMe-TCP命令識別碼CID來自查找表410讀取出有關鏈接串列起始點的指標(包含鏈接串列412中第一節點於儲存元件406中的儲存位址PTR_1以及鏈接串列414中第一節點於儲存元件408中的儲存位址PTR_2)。
根據電腦主機102所發出的NVMe命令(例如寫入命令或讀取命令),資料存取電路402可以參照所要存取的命名空間(namespace)來決定網路105上哪個NVMe-TCP裝置要被存取,假若所要存取的是NVMe-TCP裝置106,則資料存取電路402會將橋接電路122與NVMe-TCP裝置106之間的TCP連線跟NVMe-TCP裝置106的命名空間進行綁定,而當橋接電路122將NVMe-TCP命令傳送至NVMe-TCP裝置106時,資料存取電路402便會建立對照表410並根據儲存位址處理電路310所提供的資訊(亦即NVMe命令所附帶的儲存位址資訊)來設定儲存元件406中的鏈接串列412與儲存元件408中的鏈接串列414。
假如電腦主機102所發出的NVMe命令是寫入命令,則資料存取電路402依據鏈接串列412中第一節點於儲存元件406中的儲存位址PTR_1來開始讀取鏈接串列412所紀錄的儲存位址ADDR_A1~ADDR_A4,以從系統儲存裝置114讀取一筆資料(從儲存位址ADDR_A1~ADDR_A4讀取),並依據鏈接串列414中第一節點於儲存元件408中的儲存位址PTR_2來開始讀取鏈接串列414所紀錄的儲存位址ADDR_B1~ADDR_B4,來將該筆資料寫入至本地儲存裝置124(寫入至儲存位址ADDR_B1~ADDR_B4)。之後,資料存取電路402再依據鏈接串列414中第一節點於儲存元件408中的儲存位址PTR_2來開始讀取鏈接串列414所紀錄的儲存位址ADDR_B1~ADDR_B4,以自本地儲存裝置124讀取該筆資料(從儲存位址ADDR_B1~ADDR_B4讀取),並透過網路子系統206來將該筆資料傳送至NVMe-TCP裝置106以寫入至非揮發性記憶體132。
假如電腦主機102所發出的NVMe命令是讀取命令,則網路子系統206會自NVMe-TCP裝置106接收一筆資料,另外,資料存取電路402便依據鏈接串列414中第一節點於儲存元件408中的儲存位址PTR_2來開始讀取鏈接串列414所紀錄的儲存位址ADDR_B1~ADDR_B4,以將該筆資料寫入至本地儲存裝置124(寫入至儲存位址ADDR_B1~ADDR_B4)。之後,資料存取電路402會再依據鏈接串列414中第一節點於儲存元件408中的儲存位址PTR_2來開始讀取鏈接串列414所紀錄的儲存位址ADDR_B1~ADDR_B4,以自本地儲存裝置124讀取該筆資料(從儲存位址ADDR_B1~ADDR_B4讀取),並且會依據鏈接串列412中第一節點於儲存元件406中的儲存位址PTR_1來開始讀取鏈接串列412所紀錄的儲存位址ADDR_A1~ADDR_A4,以將該筆資料寫入至系統儲存裝置114(寫入至儲存位址ADDR_A1~ADDR_A4)。
如前所述,網路子系統206會透過網路(例如區域網路)105來與NVMe-TCP裝置106進行溝通,例如,網路子系統206透過網路105來將命令傳遞至NVMe-TCP裝置106、將寫入資料傳遞至NVMe-TCP裝置106,以及自NVMe-TCP裝置106接收讀取資料。第5圖為根據本發明一實施例之網路子系統的示意圖。第2圖所示之網路子系統206可由第5圖所示之網路子系統500來實現。如第5圖所示,網路子系統500包含卸載引擎502以及NVMe-TCP控制器504。卸載引擎502是專門用以處理網路子系統500與NVMe-TCP裝置106之間的傳輸控制協定/網際網路協定堆疊(TCP/IP stack)的硬體,因此,橋接電路122/200無須處理器介入傳輸控制協定/網際網路協定堆疊的處理。NVMe-TCP控制器504用以觸發資料轉送電路204/400來自電腦主機102讀取資料以透過卸載引擎502傳送至NVMe-TCP裝置106,以及觸發資料轉送電路204/400來將卸載引擎502自NVMe-TCP裝置106所接收之資料傳送至電腦主機102。另外,NVMe-TCP控制器504亦可根據NVMe命令識別碼HID來將TCP連線識別碼SID與NVMe-TCP命令識別碼CID編碼至網路封包中,以及另對NVMe-TCP資料(包含寫入命令或讀取指令)進行編碼並加入相對應循環冗餘校驗(Cyclic Redundancy Check)資料至網路封包;以及NVMe-TCP控制器504亦可對網路封包進行解碼來得到NVMe-TCP資料 (包含寫入命令的完成資訊或讀取命令的完成資訊),並根據相對應循環冗餘校驗資料來進行資料正確性檢查與錯誤更正。
綜上所述,本發明所揭示的橋接電路可將NVMe-TCP的處理自主機端處理器卸載出來,因而大幅降低主機端處理器的運算負載,另外,主機端處理器僅需執行PCIe-NVMe驅動程式即可藉由本發明所揭示的橋接電路來完成NVMe-TCP裝置的資料存取,無須安裝並執行NVMe-TCP驅動程式,故可降低系統複雜度。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:電腦系統 102:電腦主機 103:PCIe匯流排 104:PCIe介面卡 105:網路 106:NVMe-TCP裝置 112:中央處理器 114:系統儲存裝置 116:提交佇列 118:完成佇列 122, 200:橋接電路 124:本地儲存裝置 132:非揮發性記憶體 201:晶片 202, 300:NVMe裝置控制器 204, 400:資料轉送電路 206, 500:網路子系統 302:PCIe控制器 304:主機控制器 306:提交佇列處理電路 308:完成佇列處理電路 310:儲存位址處理電路 312, 314, 316, 318:功能區塊 402:資料存取電路 404, 406, 408:儲存元件 410:查找表 412, 414:鏈接串列 502:卸載引擎 504:NVMe-TCP控制器
第1圖為本發明採用橋接電路之電腦系統的示意圖。 第2圖為根據本發明一實施例之橋接電路的示意圖。 第3圖為根據本發明一實施例之NVMe裝置控制器的示意圖。 第4圖為根據本發明一實施例之資料轉送電路的示意圖。 第5圖為根據本發明一實施例之網路子系統的示意圖。
100:電腦系統
102:電腦主機
103:PCIe匯流排
104:PCIe介面卡
105:網路
106:NVMe-TCP裝置
112:中央處理器
114:系統儲存裝置
116:提交佇列
118:完成佇列
122:橋接電路
124:本地儲存裝置
132:非揮發性記憶體

Claims (13)

  1. 一種橋接電路,包含有: 一NVMe裝置控制器,用以透過一PCIe匯流排來與一電腦主機進行溝通; 一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及 一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以在無須該電腦主機的介入之下,處理有關該NVMe-TCP裝置的資料轉送。
  2. 如申請專利範圍第1項所述之橋接電路,其中該NVMe裝置控制器包含有: 一PCIe控制器,用以存取該PCIe匯流排; 一主機控制器,耦接於該PCIe控制器,用以控制該PCIe匯流排的上行資料處理與下行資料處理、NVMe組態設定以及PCIe組態設定; 一提交佇列處理電路,耦接於該主機控制器,用以讀取並處理該電腦主機之一提交佇列中的命令; 一完成佇列處理電路,耦接於該主機控制器,用以將該命令的完成資訊寫入該電腦主機之一完成佇列中;以及 一儲存位址處理電路,耦接於該主機控制器,用以擷取該命令所附帶的儲存位址資訊,並根據該儲存位址資訊來設定該資料轉送電路。
  3. 如申請專利範圍第1項所述之橋接電路,其中該網路子系統包含有: 一卸載引擎,用以處理該網路子系統與該NVMe-TCP裝置之間的傳輸控制協定/網際網路協定堆疊;以及 一NVMe-TCP控制器,用以觸發該資料轉送電路來自該電腦主機讀取資料以透過該卸載引擎傳送至該NVMe-TCP裝置,以及觸發該資料轉送電路來將該卸載引擎自該NVMe-TCP裝置所接收之資料傳送至該電腦主機。
  4. 如申請專利範圍第1項所述之橋接電路,其中該資料轉送電路包含有: 一第一儲存元件,用以儲存一第一鏈接串列,該第一鏈接串列中的每一節點紀錄該電腦主機之一系統儲存裝置中的一儲存位址; 一第二儲存元件,用以儲存一第二鏈接串列,該第二鏈接串列中的每一節點紀錄可供該橋接電路使用之一本地儲存裝置中的一儲存位址; 一第三儲存元件,用以儲存一查找表,該查找表紀錄該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址;以及 一資料存取電路,用以依據該查找表來讀取該第一鏈接串列以及該第二鏈接串列,以處理該電腦主機與該NVMe-TCP裝置之間的資料轉送。
  5. 如申請專利範圍第4項所述之橋接電路,其中該查找表另紀錄一組NVMe命令識別碼、TCP連線識別碼與NVMe-TCP命令識別碼係映射至該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址;以及該資料存取電路另用以依據該組NVMe命令識別碼、TCP連線識別碼與NVMe-TCP命令識別碼來自該查找表讀取出該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址。
  6. 如申請專利範圍第4項所述之橋接電路,其中該資料存取電路依據該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址來開始讀取該第一鏈接串列,以自該系統儲存裝置讀取一筆資料,並依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以將該筆資料寫入至該本地儲存裝置。
  7. 如申請專利範圍第6項所述之橋接電路,其中該資料存取電路另依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以自該本地儲存裝置讀取該筆資料,並透過該網路子系統來將該筆資料傳送至該NVMe-TCP裝置。
  8. 如申請專利範圍第4項所述之橋接電路,其中該網路子系統自該NVMe-TCP裝置接收一筆資料;以及該資料存取電路依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以將該筆資料寫入至該本地儲存裝置。
  9. 如申請專利範圍第8項所述之橋接電路,其中該資料存取電路另依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以自至該本地儲存裝置讀取該筆資料,並依據該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址來開始讀取該第一鏈接串列,以將該筆資料寫入至該系統儲存裝置。
  10. 如申請專利範圍第1項所述之橋接電路,其中該NVMe裝置控制器、該網路子系統以及該資料轉送電路均設置於同一晶片。
  11. 如申請專利範圍第1項所述之橋接電路,其中該橋接電路設置於一PCIe介面卡。
  12. 一種電腦系統,包含有: 一電腦主機;以及 一橋接電路,包含有: 一NVMe裝置控制器,用以透過一PCIe匯流排來與該電腦主機進行溝通; 一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及 一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以處理有關該NVMe-TCP裝置的資料轉送; 其中該橋接電路會讓該NVMe-TCP裝置被該電腦主機視為一PCIe-NVMe裝置來進行存取。
  13. 一種電腦系統,包含有: 一電腦主機;以及 一橋接電路,包含有: 一NVMe裝置控制器,用以透過一PCIe匯流排來與該電腦主機進行溝通; 一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及 一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以處理有關該NVMe-TCP裝置的資料轉送; 其中該電腦主機載入並執行PCIe-NVMe驅動程式來控制該電腦主機與該NVMe裝置控制器之間的溝通,且無須具備NVMe-TCP驅動程式。
TW110107558A 2020-05-04 2021-03-03 橋接電路與電腦系統 TWI774255B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110325479.6A CN113051206A (zh) 2020-05-04 2021-03-26 桥接电路与计算机系统
US17/234,751 US11442882B2 (en) 2020-05-04 2021-04-19 Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063019435P 2020-05-04 2020-05-04
US63/019,435 2020-05-04

Publications (2)

Publication Number Publication Date
TW202143035A true TW202143035A (zh) 2021-11-16
TWI774255B TWI774255B (zh) 2022-08-11

Family

ID=80783330

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110107558A TWI774255B (zh) 2020-05-04 2021-03-03 橋接電路與電腦系統

Country Status (1)

Country Link
TW (1) TWI774255B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240020061A1 (en) * 2022-07-15 2024-01-18 Dell Products L.P. HIGH AVAILABILITY IN NON-VOLATILE MEMORY EXPRESS (NVMe®) OVER TRANSMISSION CONTROL PROTOCOL (NVMe/TCP)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075524B1 (en) * 2015-09-29 2018-09-11 Amazon Technologies, Inc. Storage bridge device for communicating with network storage
US10733137B2 (en) * 2017-04-25 2020-08-04 Samsung Electronics Co., Ltd. Low latency direct access block storage in NVME-of ethernet SSD
US10761775B2 (en) * 2018-02-09 2020-09-01 Samsung Electronics Co., Ltd. System and method for NVMe inter command association in SSD storage using a bridge device
US20190266111A1 (en) * 2018-02-27 2019-08-29 Goke Us Research Laboratory Method and apparatus for high speed data processing
US11132133B2 (en) * 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240020061A1 (en) * 2022-07-15 2024-01-18 Dell Products L.P. HIGH AVAILABILITY IN NON-VOLATILE MEMORY EXPRESS (NVMe®) OVER TRANSMISSION CONTROL PROTOCOL (NVMe/TCP)

Also Published As

Publication number Publication date
TWI774255B (zh) 2022-08-11

Similar Documents

Publication Publication Date Title
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US7822908B2 (en) Discovery of a bridge device in a SAS communication system
US8990462B2 (en) Storage device, computing system including the same and data transferring method thereof
US9304938B2 (en) Storage device and data transferring method thereof
JP4676378B2 (ja) データ記憶装置およびデータ記憶方法
TWI699696B (zh) 具有介面控制機構之電子系統及其操作方法
US8799605B2 (en) Initializing and writing to a nonvolatile storage device based on a client/server model
KR102646616B1 (ko) 판독 명령 실행을 위한 NVMeoF RAID 구현 방법
CN115495389B (zh) 存储控制器、计算存储装置以及计算存储装置的操作方法
US20190155765A1 (en) Operation method of host system including storage device and operation method of storage device controller
TWI774255B (zh) 橋接電路與電腦系統
TWI704456B (zh) 資料儲存裝置與資料存取方法
US11074010B2 (en) Storage system and control method thereof
TWI710906B (zh) 用來進行主裝置與記憶裝置之間的存取控制的方法以及設備
US20090083021A1 (en) Emulation of ahci-based solid state drive using nand interface
TWI820951B (zh) 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備
WO2009115058A1 (zh) 提供闪存存储功能的主板及其存储方法
JP4544901B2 (ja) 記憶制御システム及びブート制御システム
CN107479938B (zh) 电子设备及其启动方法
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
US11442882B2 (en) Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same
CN112579328A (zh) 处理编程出错的方法与存储设备
TWI802113B (zh) 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器
TWI814655B (zh) 記憶裝置、快閃記憶體控制器及其控制方法
JP2001134496A (ja) 不揮発性半導体メモリを用いた記憶装置