TW202029000A - 介面轉接電路 - Google Patents
介面轉接電路 Download PDFInfo
- Publication number
- TW202029000A TW202029000A TW108103173A TW108103173A TW202029000A TW 202029000 A TW202029000 A TW 202029000A TW 108103173 A TW108103173 A TW 108103173A TW 108103173 A TW108103173 A TW 108103173A TW 202029000 A TW202029000 A TW 202029000A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- command
- nvme
- protocol
- storage space
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0042—Universal serial bus [USB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明揭露了一種介面轉接電路,用來連接一USB介面與一PCIe介面,相較於先前技術能夠加速資料存取作業。該介面轉接電路包含一UAS協定處理電路、一資料緩衝器、以及一NVMe協定處理電路。該UAS協定處理電路用來經由該USB介面接收一主機的一UAS命令,並依據該UAS命令發送一寫入準備完成通知給該主機,以令該主機發送主機資料至該資料緩衝器;該UAS協定處理電路另用來提供該UAS命令給該NVMe協定處理電路。該NVMe協定處理電路用來於收到該UAS命令後,依據該UAS命令產生X個NVMe命令;該NVMe協定處理電路另用來於該主機收到該寫入準備完成通知前,經由該PCIe介面開始發送X個新命令提醒給一儲存裝置,以令該儲存裝置依據該X個NVMe命令取回該資料緩衝器中的該主機資料。
Description
本發明是關於轉接電路,尤其是關於介面轉接電路。
USB(Universal Serial Bus)至PCIe(Peripheral Component Interconnect Express)介面轉接技術須結合UAS(USB Attached SCSI)協定與NVMe(Non-Volatile Memory Express)協定,此二種通訊協定之簡述如下: (一)UAS通訊協定:規範USB主機(例如:個人電腦)與USB裝置(在此為USB至PCIe轉接電路扮演USB裝置)之間的資料交換方式如下: (1) USB主機(或者UAS發起埠(UAS initiator port))發送一命令資訊單元(COMMAND IU)給USB裝置; (2) 待USB裝置(或UAS目標埠(UAS target port))可以處理指令時,USB裝置會回覆一寫入/讀取準備完成通知(WRITE/READ READY IU)給USB主機,從而雙方開始交換資料; (3) 等資料交換完成後,USB裝置發送狀態通知(SENSE IU)給USB主機,以表示完成處理該筆命令資訊單元。 (二)NVMe協定:規範NVMe主機(在此為USB至PCIe轉接電路扮演NVMe主機)與NVMe控制器(例如:NVMe儲存裝置中的NVMe控制器)之間的資料交換方式如下: (1) NVMe主機準備指令,並將指令放入提交佇列(Submission Queue)。 (2) NVMe主機更新NVMe控制器的提交佇列結尾提醒(Submission Queue Tail Doorbell)。 (3) NVMe控制器從NVMe主機的提交佇列擷取一筆或多筆指令。 (4) NVMe控制器處理其所擷取的指令。 (5) NVMe控制器處理完該/該些指令後,將處理結果寫回NVMe主機的完成佇列(Completion Queue)。 (6) 透過INTx(pin-based interrupt)/MSI(message signaled interrupt)/MSI-X,通知NVMe主機該/該些指令已被執行。 (7) NVMe主機處理完成佇列內的處理結果。 (8) 更新NVMe控制器的完成佇列標頭提醒(Completion Queue Head Doorbell。
在USB主機寫入資料至NVMe儲存裝置方面,目前的USB至PCIe介面轉接技術的資料傳輸流程是在USB主機開始傳輸資料給USB至PCIe轉接電路時,USB至PCIe轉接電路才發出提醒(Doorbell)給NVMe儲存裝置的NVMe控制器,以令NVMe控制器從USB至PCIe轉接電路擷取指令並執行所擷取的指令。由於目前一般的NVMe控制器在收到提醒(Doorbell)而得知有新的NVMe寫入命令須被執行後,需要一段反應時間(介於5μs~50μs)方能開始擷取並執行指令(亦即從USB至PCIe轉接電路取回USB主機的資料),且在該反應時間的期間,USB至PCIe轉接電路可能已備好至少一部分的資料供NVMe控制器存取,因此,若NVMe控制器能提早從USB至PCIe轉接電路擷取並執行指令,或說NVMe主機在USB主機尚未完成傳輸第一筆資料至USB至PCIe轉接電路前就開始發送提醒給NVMe控制器,就能減少該反應時間所造成的USB傳輸頻寬與PCIe傳輸頻寬的浪費。
本發明之一目的在於提供一種介面轉接電路,相較於先前技術能夠加速資料存取作業,以避免傳輸頻寬的浪費。
本發明之介面轉接電路的一實施例用來連接一USB介面與一PCIe介面,包含一UAS協定處理電路、一資料緩衝器、以及一NVMe協定處理電路。該UAS協定處理電路用來經由該USB介面接收一主機的一UAS命令,並依據該UAS命令發送一寫入準備完成通知給該主機,以令該主機發送主機資料至一資料緩衝器;該UAS協定處理電路另用來提供該UAS命令給該NVMe協定處理電路。該資料緩衝器用來儲存該主機資料。該NVMe協定處理電路用來於收到該UAS命令後,依據該UAS命令產生X個NVMe命令;該NVMe協定處理電路另用來於該主機收到該寫入準備完成通知前,經由該PCIe介面開始發送X個新命令提醒給一儲存裝置,以令該儲存裝置依據該X個NVMe命令取回該資料緩衝器中的該主機資料,其中該X個NVMe命令分別對應該X個新命令提醒,該X為正整數。
本發明之介面轉接電路的另一實施例用來連接一第一介面與一第二介面,包含一第一協定處理電路、一資料緩衝器、以及一第二協定處理電路。該第一協定處理電路用來經由該第一介面接收一第一裝置的一第一協定命令,並依據該第一協定命令發送一寫入準備完成通知給該第一裝置,以令該第一裝置發送第一裝置資料至一資料緩衝器;該第一協定處理電路另用來提供該第一協定命令給一第二協定處理電路。該資料緩衝器用來儲存該第一裝置資料。該第二協定處理電路用來於收到該第一協定命令後,依據該第一協定命令產生X個第二協定命令;該第二協定處理電路另用來於該第一裝置收到該寫入準備完成通知前,經由該第二介面開始發送至少一新命令提醒給一第二裝置,以令該第二裝置依據該X個第二協定命令取回該資料緩衝器中的該第一裝置資料,其中該X為正整數。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本發明之介面轉接電路相較於先前技術能夠加速資料存取作業,以避免傳輸頻寬的浪費。
圖1顯示本發明之介面轉接電路的一實施例;圖2為圖1之介面轉接電路100之通訊的示意圖。介面轉接電路100用來實體地以及電性地連接一第一介面102與一第二介面104,包含一第一協定處理電路110、一資料緩衝器120、以及一第二協定處理電路130。第一協定處理電路110用來經由第一介面102接收一第一裝置12的一第一協定命令(CMD IU),並依據該第一協定命令發送一寫入準備完成通知(Write Ready IU)給第一裝置12,以令第一裝置12發送第一裝置資料(Host Data)經由第一協定處理電路110至資料緩衝器120;第一協定處理電路110另用來提供該第一協定命令給第二協定處理電路130。資料緩衝器120用來儲存該第一裝置資料。第二協定處理電路130用來於收到該第一協定命令後,依據該第一協定命令產生X個第二協定命令(例如:分割(split)該第一協定命令以產生複數個第二協定命令),其中該X為正整數;第二協定處理電路130另用來於第一裝置12收到該寫入準備完成通知前,經由第二介面104開始發送至少一新命令提醒(Doorbell)給一第二裝置14,以令第二裝置14提早依據該X個第二協定命令取回資料緩衝器120中的該第一裝置資料,從而減少第二裝置14之反應時間所造成的傳輸頻寬的浪費。
承上所述。於一實作範例中,每個第二協定命令對應一個新命令提醒,因此該X個第二協定命令分別對應X個新命令提醒;第二協定處理電路130依據一個第二協定命令發送一個新命令提醒給第二裝置14,使第二裝置14依據該新命令提醒從介面轉接電路100擷取該第二協定命令並執行之,從而取回該第一裝置資料的至少一部分(例如:圖2之Host Data_1/Host Data_2)。於一實作範例中,在介面轉接電路100與第二裝置14之間的通訊協定的支持下,該X個第二協定命令對應M個新命令提醒,該M為不大於X的正整數;因此,一個新命令提醒對應一或多個第二協定命令。於一實作範例中,在第一協定處理電路110發送該寫入準備完成通知前,第二協定處理電路130就開始發送該至少一新命令提醒給第二裝置14。於一實作範例中,第二協定處理電路130在收到該第一協定命令後,無視第一協定處理電路110是否已發送該寫入準備完成通知,立即開始發送該至少一新命令提醒給第二裝置14。為幫助瞭解,底下說明中,第一介面102為USB(Universal Serial Bus)介面102、第二介面104為PCIe(Peripheral Component; Interconnect Express)介面104、第一裝置12為主機12(例如:個人電腦)、第一裝置資料為主機資料、第二裝置14為儲存裝置14(例如:固態硬碟(solid-state drive))、第一協定處理電路110為UAS(USB Attached SCSI)協定處理電路110、第二協定處理電路130為(Non-Volatile Memory Express)協定處理電路130、第一協定命令為UAS命令、第二協定命令為NVMe命令;然而,本發明之實施不以此為限。
圖3a顯示圖1之資料緩衝器120的一實施例。圖3a之資料緩衝器120包含N個儲存空間(Buffer 1~Buffer N),UAS協定處理電路110及NVMe協定處理電路130可判斷每個儲存空間的使用狀態以利用之,其中該N為大於一的整數;舉例而言,如圖3b與底下之表1所示,每個儲存空間對應一有效旗標(VK,其中K為不大於該N的正整數,因此VK為V1~VN的其中之一)與一傳送旗標(SK,其中K為不大於該N的正整數,因此SK為S1~SN的其中之一)用來標示該儲存空間的使用狀態;VK的第一值(例如:0)代表該N個儲存空間之一第K個儲存空間未儲存待存取資料(亦即該主機資料的至少一部分);VK之第二值(例如:1)代表該第K個儲存空間已儲存待存取資料;SK的第一值(例如:0)代表該第K個儲存空間被標示為無存取指示,亦即未關聯該X個NVMe命令的任一個或者對應該命令的一新命令提醒已被發送至儲存裝置14;SK的第二值(例如:1)代表該第K個儲存空間被標示為有存取指示,亦即關聯該X個NVMe命令的其中之一,且對應該命令的一新命令提醒尚未被發送至儲存裝置14;該N個儲存空間中的X個儲存空間分別關聯該X個NVMe命令。 表1
VK的值 | SK的值 | 使用狀態 |
0 | 0 | 未儲存待存取資料、無存取指示 |
0 | 1 | 未儲存待存取資料、有存取指示 |
1 | 0 | 已儲存待存取資料、無存取指示 |
0 | 0 | 未儲存待存取資料、無存取指示 |
請參閱圖1~3b。於一實作範例中,UAS協定處理電路110於發送該寫入準備完成通知後,執行至少下列步驟(如圖4所示)以將該主機資料放入資料緩衝器120: 步驟S410:檢查資料緩衝器120的一第K個儲存空間是否已儲存待存取資料。 步驟S420:當該第K個儲存空間未儲存待存取資料且該主機資料的資料量不大於該第K個儲存空間的儲存量,將該主機資料放入該第K個儲存空間。 步驟S430:當該第K個儲存空間未儲存待存取資料且該主機資料的資料量大於該第K個儲存空間的儲存量,依據一位址順序將該主機資料放入該第K個儲存空間以及接續的一或多個儲存空間(例如:若K=3,該接續的儲存空間為第4個儲存空間、第5個儲存空間…;若K=N,該接續的儲存空間為第1個儲存空間、第2個儲存空間…),直到該主機資料全部被放入資料緩衝器120。於一實作範例中,當UAS協定處理電路110將該主機資料的至少一部分放入該第K個儲存空間後,UAS協定處理電路110更改該第K個有效旗標(VK)之值,以將該第K個儲存空間標示為已儲存待存取資料。於一實作範例中,該位址順序的一最高位(highest ranking)與一最低位相接(linked),以形成一循環順序,從而讓該N個儲存空間被循環使用。 步驟S440:當該第K個儲存空間已儲存待存取資料,依據該位址順序檢查該第K個儲存空間之後的一或複數個儲存空間是否已儲存待存取資料,直到有至少一個未儲存待存取資料的儲存空間可用於該主機資料之儲存。 步驟S450:於該主機資料全部被放入資料緩衝器120後,UAS協定處理電路110發送一狀態通知給USB主機12。於一實作範例中,UAS協定處理電路110依據來自儲存裝置14的一操作完成通知,發送該狀態通知給該主機,該操作完成通知詳述於後。
圖5顯示圖1之NVMe協定處理電路130的一實施例。圖5之NVMe協定處理電路130包含一NVMe命令控制電路(NVMe CMD Ctrl)510、一NVMe直接記憶體存取控制電路(NVMe DMA)520、以及一NVMe結束控制(NVMe Completion Ctrl)電路530。於一實作範例中,NVMe命令控制電路510用來執行至少下列步驟:依據該UAS命令產生該X個NVMe命令(例如:圖2之NVMe CMD_1、NVMe CMD_2、…);以及發送該X個新命令提醒給儲存裝置14,以令儲存裝置14依據該X個新命令提醒分別從NVMe協定處理電路110擷取該X個NVMe命令,再據以產生X個讀取訊號。於一實作範例中,NVMe命令控制電路510藉由執行下列步驟(如圖6所示)以令儲存裝置14產生該X個讀取訊號: 步驟S610:檢查資料緩衝器120的一第K個儲存空間是否被標示為無存取指示。 步驟S620:當該第K個儲存空間被標示為無存取指示時,令該第K個儲存空間關聯該X個NVMe命令中的一命令包含該第K個儲存空間的位址資訊(例如:指標(pointer)),並發送該X個新命令提醒中的一提醒給儲存裝置14,使得儲存裝置14依據該提醒擷取該命令以產生該X個讀取訊號中的一訊號包含該位址資訊,該訊號是用來讀取該第K個儲存空間的資料。於一實作範例中,於該第K個儲存空間關聯該命令後,NVMe命令控制電路510將該第K個儲存空間標示為有存取指示。
請參閱圖5。於一實作範例中,NVMe直接記憶體存取控制電路520用來依據前述X個讀取訊號輸出資料緩衝器120中的該主機資料至儲存裝置14。於一實作範例中,NVMe結束控制電路530用來於一儲存空間中的資料輸出至儲存裝置14後,重設該儲存空間的使用狀態;舉例而言,當前述第K個儲存空間中的資料被輸出至儲存裝置14後,NVMe結束控制電路530就將該第K個儲存空間標示為未儲存待存取資料以及無存取指示。
請參閱圖5。於一實作範例中,當儲存裝置14完成執行該X個NVMe命令的每一個後(或說資料緩衝器120中的該主機資料全部輸出至儲存裝置14後),儲存裝置14會發送一操作完成通知(亦即圖2之Write Completion及/或Interrupt)給NVMe協定處理電路110,因此,NVMe結束控制電路530依據該操作完成通知重設資料緩衝器120之至少一部分的使用狀態,並發送一使用權釋放提醒(Release Doorbell)給儲存裝置14。舉例而言,當儲存裝置14完成執行關聯該第K個儲存空間的NVMe命令後,會發送一操作完成通知給NVMe協定處理電路110,接著,NVMe結束控制電路530依據該操作完成通知重設該第K個儲存空間的使用狀態,並發送一使用權釋放提醒給儲存裝置14,以開始或等待下一次的通訊作業。
由於介面轉接電路100為一數位電路,本領域人士能夠基於本說明書之揭露以及UAS協定與NVMe協定之標準規範來實現介面轉接電路100之各電路的數位設計與電路製作,因此,冗餘之說明在此節略。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。
綜上所述,本發明藉由提早發送新命令提醒以加速資料存取作業,從而避免傳輸頻寬的浪費。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100:介面轉接電路102:第一介面(USB介面)104:第二介面(PCIe介面)110:第一協定處理電路(UAS協定處理電路)120:資料緩衝器130:第二協定處理電路(NVMe協定處理電路)12:第一裝置(主機)14:第二裝置(儲存裝置)CMD IU:第一協定命令(UAS命令)Doorbell:新命令提醒Write Ready IU:寫入準備完成通知Host Data:第一裝置資料(主機資料)Host Data_1、Host Data_2:第一裝置資料的一部分(主機資料的一部分)NVMe CMD_1、NVMe CMD_2:NVMe命令Write Completion/Interrupt:操作完成通知Release Doorbell:使用權釋放提醒SENSE IU:狀態通知Buffer 1~Buffer N:N個儲存空間V1~VN:有效旗標S1~SN:傳送旗標S410~S450:步驟510:NVMe CMD Ctrl(NVMe命令控制電路)520:NVMe DMA(NVMe直接記憶體存取控制電路)530:NVMe Completion Ctrl(NVMe結束控制電路)S610~S620:步驟
[圖1]顯示本發明之介面轉接電路的一實施例; [圖2]為圖1之介面轉接電路之通訊的示意圖; [圖3a]顯示圖1之資料緩衝器的一實施例; [圖3b]顯示圖3a之資料緩衝器的一實作範例; [圖4]顯示圖1之UAS協定處理電路所執行之步驟; [圖5]顯示圖1之NVMe協定處理電路的一實施例;以及 [圖6]顯示圖5之NVMe命令控制電路所執行的步驟。
100:介面轉接電路
102:第一介面(USB介面)
104:第二介面(PCIe介面)
110:第一協定處理電路(UAS協定處理電路)
120:資料緩衝器
130:第二協定處理電路(NVMe協定處理電路)
12:第一裝置(主機)
14:第二裝置(儲存裝置)
Claims (10)
- 一種介面轉接電路,用來連接一USB(Universal Serial Bus)介面與一PCIe(Peripheral Component; Interconnect Express)介面,該介面轉接電路包含: 一UAS(USB Attached SCSI)協定處理電路,用來經由該USB介面接收一主機的一UAS命令,並依據該UAS命令發送一寫入準備完成通知給該主機,以令該主機發送主機資料至一資料緩衝器,該UAS協定處理電路另用來提供該UAS命令給一NVMe(Non-Volatile Memory Express)協定處理電路; 該資料緩衝器,用來儲存該主機資料;以及 該NVMe協定處理電路,用來於收到該UAS命令後,依據該UAS命令產生X個NVMe命令,該NVMe協定處理電路另用來於該主機收到該寫入準備完成通知前,經由該PCIe介面開始發送X個新命令提醒給一儲存裝置,以令該儲存裝置依據該X個NVMe命令取回該資料緩衝器中的該主機資料,其中該X個NVMe命令分別對應該X個新命令提醒,該X為正整數。
- 如申請專利範圍第1項所述之介面轉接電路,其中於該UAS協定處理電路發送該寫入準備完成通知前,該NVMe協定處理電路開始發送該X個新命令提醒給該儲存裝置。
- 如申請專利範圍第1項所述之介面轉接電路,其中該資料緩衝器包含N個儲存空間,該UAS協定處理電路執行至少下列步驟以將該主機資料放入該資料緩衝器: 檢查該資料緩衝器的一第K個儲存空間是否已儲存待存取資料; 當該第K個儲存空間未儲存待存取資料且該主機資料的資料量不大於該第K個儲存空間的儲存量,將該主機資料放入該第K個儲存空間; 當該第K個儲存空間未儲存待存取資料且該主機資料的資料量大於該第K個儲存空間的儲存量,依據一位址順序將該主機資料放入該第K個儲存空間以及接續的一或多個儲存空間,直到該主機資料全部被放入該資料緩衝器;以及 當該第K個儲存空間已儲存待存取資料,依據該位址順序檢查該第K個儲存空間之後的一或複數個儲存空間是否已儲存待存取資料,直到有至少一個未儲存待存取資料的儲存空間可用於該主機資料之儲存, 其中該N為大於一的整數,該K為不大於該N的正整數。
- 如申請專利範圍第1項所述之介面轉接電路,其中該NVMe協定處理電路包含: 一NVMe命令控制電路,用來執行至少下列步驟: 依據該UAS命令產生該X個NVMe命令;以及 發送該X個新命令提醒給該儲存裝置,以令該儲存裝置從該NVMe協定處理電路擷取該X個NVMe命令並據以產生X個讀取訊號; 一NVMe直接記憶體存取控制電路,用來依據該X個讀取訊號輸出該資料緩衝器中的該主機資料至該儲存裝置;以及 一NVMe結束控制電路,用來於該資料緩衝器中的該主機資料被輸出至該儲存裝置後,重設該資料緩衝器之至少一部分的使用狀態。
- 如申請專利範圍第4項所述之介面轉接電路,其中該資料緩衝器包含N個儲存空間,該NVMe命令控制電路進一步執行下列步驟: 檢查該資料緩衝器的一第K個儲存空間是否被標示為無存取指示;以及 當該第K個儲存空間被標示為無存取指示時,令該第K個儲存空間關聯該X個NVMe命令中的一第一命令,並發送該X個新命令提醒中的一第一提醒給該儲存裝置,使得該儲存裝置擷取該第一命令以產生該X個讀取訊號中的一第一訊號,該第一訊號是用來讀取該第K個儲存空間的資料。
- 如申請專利範圍第5項所述之介面轉接電路,其中該NVMe結束控制電路依據來自該儲存裝置的一操作完成通知重設該第K個緩衝器的使用狀態,並發送一使用權釋放提醒給該儲存裝置。
- 一種介面轉接電路,用來連接一第一介面與一第二介面,該介面轉接電路包含: 一第一協定處理電路,用來經由該第一介面接收一第一裝置的一第一協定命令,並依據該第一協定命令發送一寫入準備完成通知給該第一裝置,以令該第一裝置發送第一裝置資料至一資料緩衝器,該第一協定處理電路另用來提供該第一協定命令給一第二協定處理電路; 該資料緩衝器,用來儲存該第一裝置資料;以及 該第二協定處理電路,用來於收到該第一協定命令後,依據該第一協定命令產生X個第二協定命令,該第二協定處理電路另用來於該第一裝置收到該寫入準備完成通知前,經由該第二介面開始發送至少一新命令提醒給一第二裝置,以令該第二裝置依據該X個第二協定命令取回該資料緩衝器中的該第一裝置資料,其中該X為正整數。
- 如申請專利範圍第7項所述之介面轉接電路,其中該資料緩衝器包含N個儲存空間,該第一協定處理電路執行至少下列步驟以將該第一裝置資料放入該資料緩衝器: 檢查該資料緩衝器的一第K個儲存空間是否已儲存待存取資料; 當該第K個儲存空間未儲存待存取資料且該第一裝置資料的資料量不大於該第K個儲存空間的儲存量,將該第一裝置資料放入該第K個儲存空間; 當該第K個儲存空間未儲存待存取資料且該第一裝置資料的資料量大於該第K個儲存空間的儲存量,依據一位址順序將該第一裝置資料放入該第K個儲存空間以及接續的一或多個儲存空間,直到該第一裝置資料全部被放入該資料緩衝器;以及 當該第K個儲存空間已儲存待存取資料,依據該位址順序檢查該第K個儲存空間之後的一或複數個儲存空間是否已儲存待存取資料,直到有至少一個未儲存待存取資料的儲存空間可用於該第一裝置資料之儲存, 其中該N為大於一的整數,該K為不大於該N的正整數。
- 如申請專利範圍第7項所述之介面轉接電路,其中該第二協定處理電路包含: 一第二協定命令控制電路,用來執行至少下列步驟: 依據該第一協定命令產生該X個第二協定命令; 發送該至少一新命令提醒給該第二裝置,以令該第二裝置從該第二協定處理電路擷取該X個第二協定命令並據以產生X個讀取訊號; 一第二協定直接記憶體存取控制電路,用來依據該X個讀取訊號輸出該資料緩衝器中的該第一裝置資料至該第二裝置;以及 一第二協定結束控制電路,用來於該資料緩衝器中的該第一裝置資料全部輸出至該第二裝置後,重設該資料緩衝器之至少一部分的使用狀態。
- 如申請專利範圍第9項所述之介面轉接電路,其中該資料緩衝器包含N個儲存空間,該第二協定命令控制電路進一步執行下列步驟: 檢查該資料緩衝器的一第K個儲存空間是否被標示為無存取指示;以及 當該第K個儲存空間被標示為無存取指示時,令該第K個儲存空間關聯該X個第二協定命令中的一命令,並發送該至少一新命令提醒的一提醒給該第二裝置,使得該第二裝置擷取該命令並據以產生該X個讀取訊號中的一訊號,該訊號是用來讀取該第K個儲存空間的資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108103173A TWI700590B (zh) | 2019-01-28 | 2019-01-28 | 介面轉接電路 |
US16/747,746 US11138142B2 (en) | 2019-01-28 | 2020-01-21 | Adaptive interface circuit |
CN202010075705.5A CN111488304B (zh) | 2019-01-28 | 2020-01-22 | 接口转接电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108103173A TWI700590B (zh) | 2019-01-28 | 2019-01-28 | 介面轉接電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI700590B TWI700590B (zh) | 2020-08-01 |
TW202029000A true TW202029000A (zh) | 2020-08-01 |
Family
ID=71733776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108103173A TWI700590B (zh) | 2019-01-28 | 2019-01-28 | 介面轉接電路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11138142B2 (zh) |
CN (1) | CN111488304B (zh) |
TW (1) | TWI700590B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3116146B1 (fr) * | 2020-11-12 | 2023-12-01 | St Microelectronics Rousset | Procédé de gestion d’une opération de modification du contenu mémorisé d’un dispositif de mémoire, et dispositif de mémoire correspondant |
CN112579001B (zh) * | 2020-12-11 | 2024-05-24 | 卓曜(北京)科技有限公司 | 存储装置及数据处理系统 |
US11907587B2 (en) * | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
CN115643321A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
TWI831536B (zh) * | 2022-12-22 | 2024-02-01 | 瑞昱半導體股份有限公司 | 在有限的記憶體條件下的轉接器及資料傳輸方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150112075A (ko) * | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
CN108062285B (zh) * | 2014-06-27 | 2022-04-29 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
US9792048B2 (en) * | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
US9946681B1 (en) * | 2015-06-29 | 2018-04-17 | Western Digital Technologies, Inc. | Host configured multi serial interface device |
TWM528476U (zh) * | 2016-04-26 | 2016-09-11 | 宏碁股份有限公司 | 控制裝置及其相關電腦系統 |
US20180059933A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Electrically-Buffered NV-DIMM and Method for Use Therewith |
KR102573921B1 (ko) * | 2016-09-13 | 2023-09-04 | 삼성전자주식회사 | 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법 |
KR20180049338A (ko) * | 2016-10-31 | 2018-05-11 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
CN106775504B (zh) * | 2017-03-16 | 2020-06-12 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
US10509569B2 (en) * | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US20180335971A1 (en) * | 2017-05-16 | 2018-11-22 | Cisco Technology, Inc. | Configurable virtualized non-volatile memory express storage |
CN208384003U (zh) * | 2018-05-03 | 2019-01-15 | 中山市江波龙电子有限公司 | 一种测试装置及系统 |
-
2019
- 2019-01-28 TW TW108103173A patent/TWI700590B/zh active
-
2020
- 2020-01-21 US US16/747,746 patent/US11138142B2/en active Active
- 2020-01-22 CN CN202010075705.5A patent/CN111488304B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111488304B (zh) | 2022-04-15 |
TWI700590B (zh) | 2020-08-01 |
US11138142B2 (en) | 2021-10-05 |
CN111488304A (zh) | 2020-08-04 |
US20200242069A1 (en) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI700590B (zh) | 介面轉接電路 | |
US9727503B2 (en) | Storage system and server | |
US9696942B2 (en) | Accessing remote storage devices using a local bus protocol | |
JP4799417B2 (ja) | ホストコントローラ | |
US20170249281A1 (en) | Techniques for Use of Vendor Defined Messages to Execute a Command to Access a Storage Device | |
US7620747B1 (en) | Software based native command queuing | |
JP4837659B2 (ja) | 分割トランザクションを処理するためのバス・コントローラ | |
TW200406680A (en) | Method, system, and program for handling input/output commands | |
US20040186931A1 (en) | Transferring data using direct memory access | |
JP2008547330A (ja) | 自動化シリアルプロトコルイニシエータポートトランスポート層再試行機構 | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
TWI703446B (zh) | 介面轉接電路 | |
JP3481308B2 (ja) | インターフェース装置、データ転送システム及びデータ転送方法 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
US11294832B2 (en) | Systems and methods for queuing device management configuration requests | |
KR100633742B1 (ko) | 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법 | |
TW200842601A (en) | Method and apparatus for performing full transfer automation in a USB controller | |
CN117435534B (zh) | 基于外围总线的数据传输电路、方法及处理器 | |
US20220237132A1 (en) | Data transmission method and ping-pong dma architecture | |
JP2533886B2 (ja) | デ―タ転送方式 | |
CN118363662A (zh) | 存储器寄存器的配置方法、装置及存储系统 | |
JPH06195177A (ja) | 集積回路とこれを用いた磁気ディスク装置および磁気ディスク装置の制御方法 | |
JP2003242096A (ja) | Usbコントローラ | |
JP2011109515A (ja) | 2線式シリアルデータ転送制御方法、プログラム及び2線式シリアルデータ転送制御装置 |