TWI774255B - 橋接電路與電腦系統 - Google Patents
橋接電路與電腦系統 Download PDFInfo
- Publication number
- TWI774255B TWI774255B TW110107558A TW110107558A TWI774255B TW I774255 B TWI774255 B TW I774255B TW 110107558 A TW110107558 A TW 110107558A TW 110107558 A TW110107558 A TW 110107558A TW I774255 B TWI774255 B TW I774255B
- Authority
- TW
- Taiwan
- Prior art keywords
- nvme
- tcp
- data
- circuit
- storage
- Prior art date
Links
- 238000012546 transfer Methods 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 6
- 238000011144 upstream manufacturing Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 101100445488 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-2 gene Proteins 0.000 description 6
- 101100215778 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-1 gene Proteins 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Circuits Of Receivers In General (AREA)
- Bus Control (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驅動程式,故可降低系統複雜度。
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圖為根據本發明一實施例之網路子系統的示意圖。
第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所紀錄的儲存位址ADDRB1~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:橋接電路
124:本地儲存裝置
132:非揮發性記憶體
Claims (12)
- 一種橋接電路,包含有:一NVMe裝置控制器,用以透過一PCIe匯流排來與一電腦主機進行溝通;一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以在無須該電腦主機的介入之下,處理有關該NVMe-TCP裝置的資料轉送;其中該NVMe裝置控制器、該網路子系統以及該資料轉送電路均設置於同一晶片。
- 如申請專利範圍第1項所述之橋接電路,其中該NVMe裝置控制器包含有:一PCIe控制器,用以存取該PCIe匯流排;一主機控制器,耦接於該PCIe控制器,用以控制該PCIe匯流排的上行資料處理與下行資料處理、NVMe組態設定以及PCIe組態設定;一提交佇列處理電路,耦接於該主機控制器,用以讀取並處理該電腦主機之一提交佇列中的命令;一完成佇列處理電路,耦接於該主機控制器,用以將該命令的完成資訊寫入該電腦主機之一完成佇列中;以及一儲存位址處理電路,耦接於該主機控制器,用以擷取該命令所附帶的儲存位址資訊,並根據該儲存位址資訊來設定該資料轉送電路。
- 如申請專利範圍第1項所述之橋接電路,其中該網路子系統包含有:一卸載引擎,用以處理該網路子系統與該NVMe-TCP裝置之間的傳輸控制協定/網際網路協定堆疊;以及 一NVMe-TCP控制器,用以觸發該資料轉送電路來自該電腦主機讀取資料以透過該卸載引擎傳送至該NVMe-TCP裝置,以及觸發該資料轉送電路來將該卸載引擎自該NVMe-TCP裝置所接收之資料傳送至該電腦主機。
- 如申請專利範圍第1項所述之橋接電路,其中該資料轉送電路包含有:一第一儲存元件,用以儲存一第一鏈接串列,該第一鏈接串列中的每一節點紀錄該電腦主機之一系統儲存裝置中的一儲存位址;一第二儲存元件,用以儲存一第二鏈接串列,該第二鏈接串列中的每一節點紀錄可供該橋接電路使用之一本地儲存裝置中的一儲存位址;一第三儲存元件,用以儲存一查找表,該查找表紀錄該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址;以及一資料存取電路,用以依據該查找表來讀取該第一鏈接串列以及該第二鏈接串列,以處理該電腦主機與該NVMe-TCP裝置之間的資料轉送。
- 如申請專利範圍第4項所述之橋接電路,其中該查找表另紀錄一組NVMe命令識別碼、TCP連線識別碼與NVMe-TCP命令識別碼係映射至該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址;以及該資料存取電路另用以依據該組NVMe命令識別碼、TCP連線識別碼與NVMe-TCP命令識別碼來自該查找表讀取出該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址以及該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址。
- 如申請專利範圍第4項所述之橋接電路,其中該資料存取電路依據該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址來開始讀取該第一鏈接串列,以自該系統儲存裝置讀取一筆資料,並依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以將該筆資料寫入至該本地儲存裝置。
- 如申請專利範圍第6項所述之橋接電路,其中該資料存取電路另依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以自該本地儲存裝置讀取該筆資料,並透過該網路子系統來將該筆資料傳送至該NVMe-TCP裝置。
- 如申請專利範圍第4項所述之橋接電路,其中該網路子系統自該NVMe-TCP裝置接收一筆資料;以及該資料存取電路依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以將該筆資料寫入至該本地儲存裝置。
- 如申請專利範圍第8項所述之橋接電路,其中該資料存取電路另依據該第二鏈接串列中第一節點於該第二儲存元件中的儲存位址來開始讀取該第二鏈接串列,以自該本地儲存裝置讀取該筆資料,並依據該第一鏈接串列中第一節點於該第一儲存元件中的儲存位址來開始讀取該第一鏈接串列,以將該筆資料寫入至該系統儲存裝置。
- 如申請專利範圍第1項所述之橋接電路,其中該橋接電路設置於一PCIe介面卡。
- 一種電腦系統,包含有:一電腦主機;以及一橋接電路,包含有:一NVMe裝置控制器,用以透過一PCIe匯流排來與該電腦主機進行溝通;一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以處理有關該NVMe-TCP裝置的資料轉送;其中該NVMe裝置控制器、該網路子系統以及該資料轉送電路均設置於同一晶片,以及該橋接電路會讓該NVMe-TCP裝置被該電腦主機視為一PCIe-NVMe裝置來進行存取。
- 一種電腦系統,包含有:一電腦主機;以及一橋接電路,包含有:一NVMe裝置控制器,用以透過一PCIe匯流排來與該電腦主機進行溝通;一網路子系統,用以透過一網路來與一NVMe-TCP裝置進行溝通;以及一資料轉送電路,耦接於該NVMe裝置控制器與該網路子系統之間,用以處理有關該NVMe-TCP裝置的資料轉送;其中該NVMe裝置控制器、該網路子系統以及該資料轉送電路均設置於同一晶片,以及該電腦主機載入並執行PCIe-NVMe驅動程式來控制該電腦主機與該NVMe裝置控制器之間的溝通,且無須具備NVMe-TCP驅動程式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110325479.6A CN113051206B (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 TW202143035A (zh) | 2021-11-16 |
| TWI774255B true 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) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12014086B2 (en) * | 2022-07-15 | 2024-06-18 | Dell Product L.P. | High availability in non-volatile memory express (NVMe®) over transmission control protocol (NVMe/TCP) |
| TWI867503B (zh) * | 2023-04-20 | 2024-12-21 | 慧榮科技股份有限公司 | 交握方法與資料儲存系統 |
Citations (5)
| 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 |
| CN108733601A (zh) * | 2017-04-25 | 2018-11-02 | 三星电子株式会社 | NVMe-oF以太网SSD中的低延迟直接访问块存储 |
| CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
| TW201945956A (zh) * | 2018-02-27 | 2019-12-01 | 美商國科美國研究實驗室 | 用於高速資料處理的方法及設備 |
| TW201945921A (zh) * | 2018-03-08 | 2019-12-01 | 日商東芝記憶體股份有限公司 | 在固態儲存驅動器陣列中的工作量適應超容量快取 |
-
2021
- 2021-03-03 TW TW110107558A patent/TWI774255B/zh active
Patent Citations (5)
| 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 |
| CN108733601A (zh) * | 2017-04-25 | 2018-11-02 | 三星电子株式会社 | NVMe-oF以太网SSD中的低延迟直接访问块存储 |
| CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
| TW201945956A (zh) * | 2018-02-27 | 2019-12-01 | 美商國科美國研究實驗室 | 用於高速資料處理的方法及設備 |
| TW201945921A (zh) * | 2018-03-08 | 2019-12-01 | 日商東芝記憶體股份有限公司 | 在固態儲存驅動器陣列中的工作量適應超容量快取 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202143035A (zh) | 2021-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| NL2011838B1 (en) | Storage device, computing system including the same and data transferring method thereof. | |
| US7822908B2 (en) | Discovery of a bridge device in a SAS communication system | |
| US7849242B2 (en) | PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device | |
| CN105608027B (zh) | 非易失存储设备和访问非易失存储设备的方法 | |
| US9304938B2 (en) | Storage device and data transferring method thereof | |
| TWI699696B (zh) | 具有介面控制機構之電子系統及其操作方法 | |
| CN110609659B (zh) | 用于执行读取命令的NVMeoF RAID实现方法 | |
| US11726666B2 (en) | Network adapter with efficient storage-protocol emulation | |
| TWI820951B (zh) | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 | |
| TWI774255B (zh) | 橋接電路與電腦系統 | |
| CN111159055B (zh) | 用来进行主装置与记忆装置之间的存取控制的方法及设备 | |
| CN114817093B (zh) | 一种数据传输方法、系统、装置及存储介质 | |
| TWI802113B (zh) | 用以借助通用非同步收發傳輸器連接來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 | |
| CN117170928A (zh) | 封装后修复管理 | |
| CN113051206B (zh) | 桥接电路与计算机系统 | |
| JP2018060419A (ja) | ストレージ制御装置およびストレージ装置 | |
| CN115904418A (zh) | 一种pcie级联芯片固件烧录的系统和方法 | |
| US20090083021A1 (en) | Emulation of ahci-based solid state drive using nand interface | |
| TWI814655B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
| CN112578993A (zh) | 多平面nvm处理编程出错的方法与存储设备 | |
| CN112579328A (zh) | 处理编程出错的方法与存储设备 | |
| JP7553783B2 (ja) | ストレージ制御装置、送達状況判定プログラムおよびストレージシステム | |
| CN118519586B (zh) | 一种实现固态硬盘数据通道虚拟化的方法和装置 | |
| US12204795B2 (en) | Error detection and correction in a controller | |
| CN118151839A (zh) | 记忆装置、快闪存储器控制器及其控制方法 |