TW202240416A - 快捷週邊組件互連(pcie)介面系統及其操作方法 - Google Patents
快捷週邊組件互連(pcie)介面系統及其操作方法 Download PDFInfo
- Publication number
- TW202240416A TW202240416A TW111103656A TW111103656A TW202240416A TW 202240416 A TW202240416 A TW 202240416A TW 111103656 A TW111103656 A TW 111103656A TW 111103656 A TW111103656 A TW 111103656A TW 202240416 A TW202240416 A TW 202240416A
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- nvme
- commands
- nvme device
- host memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
Abstract
本申請係關於一種快捷週邊組件互連(Peripheral Component Interconnect Express, PCIe)介面系統,包括PCIe介面裝置、主機以及透過PCIe介面裝置連接到主機的高速非揮發性記憶體(non-volatile memory express, NVMe)裝置。主機包括:主機記憶體,被配置為儲存關於待在NVMe裝置上運行的命令以及已經在NVMe裝置上運行的命令的資訊;以及NVMe驅動器,被配置為將待在NVMe裝置上運行的命令發送到主機記憶體,並將門鈴信號輸出到NVMe裝置,該門鈴信號指示待在NVMe裝置上運行的命令已經儲存在主機記憶體中。NVMe裝置請求主機記憶體暫存輕量級通知(lightweight notification, LN),該LN指示待在NVMe裝置上運行的命令所儲存的位置。
Description
本專利文件中公開的技術和實施方案係關於一種電子裝置,並且更具體地,涉及一種PCIe介面系統及其操作方法。
快捷週邊組件互連(peripheral component interconnect express, PCIe)是用於資料通信的介面串列結構。基於PCIe的儲存裝置支援多埠和多功能。基於PCIe的儲存裝置可以是虛擬化的和非虛擬化的,並且可以透過一種或多種PCIe功能來實現主機I/O命令的服務品質(quality of service, QoS)。
儲存裝置是在諸如計算機或智慧型手機的主機裝置的控制下儲存資料的裝置。儲存裝置可以包括儲存資料的記憶體裝置以及控制記憶體裝置的記憶體控制器。記憶體裝置劃分為揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置是僅在供電時才儲存資料並且在供電切斷時會丟失所儲存的資料的裝置。揮發性記憶體裝置包括靜態隨機存取記憶體(static random access memory, SRAM)、動態隨機存取記憶體(dynamic random access memory, DRAM)等。
非揮發性記憶體裝置是即使電力被切斷也不會丟失資料的裝置。非揮發性記憶體裝置包括唯讀記憶體(read only memory, ROM)、可編程ROM (programmable ROM, PROM)、電可編程ROM (electrically programmable ROM, EPROM)、電可擦除可編程ROM (electrically erasable and programmable ROM, EEPROM)、快閃記憶體等。
本專利文件請求於2021年4月13日提交的申請號為10-2021-0048080的韓國專利申請以及2021年6月1日提交的申請號為10-2021-0070686的韓國專利申請的優先權和權益,這兩件韓國專利申請透過引用整體併入本文。
所公開技術的各個實施例提供了一種PCIe介面系統及其操作方法,其透過暫存PCIe輕量級通知(Lightweight Notification,LN)並預提取命令來減少提取命令的時間。
根據本公開的實施例,一種快捷週邊組件互連(peripheral component interconnect express, PCIe)介面系統可以包括PCIe介面裝置、主機以及透過PCIe介面裝置連接到主機的高速非揮發性記憶體(non-volatile memory express, NVMe)裝置。主機可以包括:主機記憶體,被配置為儲存關於待在NVMe裝置上運行的命令以及已經在NVMe裝置上運行的命令的資訊;以及NVMe驅動器,被配置為將待在NVMe裝置上運行的命令發送到主機記憶體,並將門鈴信號輸出到NVMe裝置,該門鈴信號指示待在NVMe裝置上運行的命令已經儲存在主機記憶體中。NVMe裝置被配置為請求主機記憶體暫存輕量級通知(lightweight notification, LN)暫存,該LN暫存指示待在NVMe裝置上運行的命令所儲存的位置。
根據本公開的實施例,一種操作系統的方法可以包括:由系統請求快捷週邊組件互連(peripheral component interconnect express, PCIe)輕量級通知(lightweight notification, LN)暫存,該系統包括具有主機記憶體的主機以及透過PCIe介面裝置連接到主機的高速非揮發性記憶體(non-volatile memory express, NVMe)裝置,該LN暫存指示待在NVMe裝置上運行的命令儲存在系統中包括的主機記憶體內的位置;暫存LN;以及將待在NVMe裝置上運行的命令儲存在主機記憶體中。
根據本技術,提供了一種PCIe介面系統及其操作方法,其透過暫存PCIe輕量級通知(lightweight notification, LN)並預提取命令來減少提取命令的時間。
圖1是示出快捷週邊組件互連(peripheral component interconnect express, PCIe)介面系統的方塊圖。
參照圖1,圖1的PCIe介面裝置100可以包括中央處理單元110、根複合體120、記憶體130、交換機140、PCIe端點150_1和150_2以及傳統端點160_1和160_2。另外,圖1的主機300可以包括主機內部結構310、主機處理器320、主機記憶體330和NVMe驅動器340。
在圖1中,根複合體120可以透過鏈路LINK連接到交換機140。另外,交換機140可以透過鏈路LINK連接到PCIe端點150_1和150_2以及傳統端點160_1和160_2中的每一個。鏈路LINK可以配置有至少一個通道。
在實施例中,根複合體120可以將中央處理單元110和記憶體130連接到I/O層級。根複合體120可以支援PCIe埠。因此,根複合體120可以支援根埠,該根埠可以連接到輸入/輸出(input/output, I/O)裝置。
另外,根複合體120可以支援PCIe介面裝置100中包括的每個配置的層級之間的路由。路由可以包括在資料通信中選擇從發送側到接收側的路徑的操作。可以基於預先設置從發送側到接收側的路徑或者根據系統或網路的狀態選擇最有效路徑的方法中的任何一種來執行路由。
在一些實施方案中,根複合體120可以支援輸入/輸出請求。根複合體120需要支援生成配置請求。不允許根複合體120作為完成器支援鎖定語義。根複合體120可以作為請求器請求生成鎖定請求。
在實施例中,根複合體120可以在路由期間將在層級之間傳輸的封包劃分為更小的單元。另外,根複合體120可以生成輸入/輸出請求。
在實施例中,交換機140可以配置有兩個或更多個邏輯PCI到PCI橋。兩個或更多個邏輯PCI到PCI橋中的每一個可以連接到上游埠或下游埠。
交換機140可以使用PCI橋機制(基於位址的多重廣播(multicasting)方法)來傳輸交易(transaction)。此時,交換機140需要能夠透過上游埠和下游埠傳輸所有類型的交易層封包(transaction layer packet, TLP)。另外,交換機140需要支援鎖定的請求。所啟用的交換機140的每個埠必須能夠支援流量控制。當在同一虛擬通道中發生爭用(contention)時,交換機140可以以輪詢(round robin)方案或加權輪詢(weighted round robin)方案進行仲裁(arbitrate)。
在實施例中,與根複合體120不同,交換機140可以不將在層級之間傳輸的封包劃分為更小的單元。
在實施例中,PCIe端點150_1和150_2以及傳統端點160_1和160_2可以用作PCIe交易的請求器或完成器。由PCIe端點150_1和150_2以及傳統端點160_1和160_2發送和接收的TLP必須提供配置空間標頭。另外,PCIe端點150_1和150_2以及傳統端點160_1和160_2必須作為完成器提供配置請求。
在實施例中,PCIe端點150_1和150_2以及傳統端點160_1和160_2可以根據記憶體交易的大小進行區分。例如,當記憶體交易可能超過4GB時,端點可能是PCIe端點150_1和150_2,當記憶體交易不可能超過4GB時,端點可能是傳統端點160_1和160_2。PCIe端點150_1和150_2可不生成輸入/輸出請求,但傳統端點160_1和160_2可以提供或生成輸入/輸出請求。
在實施例中,PCIe端點150_1和150_2或傳統端點160_1和160_2可以向交換機140發送TLP以及從交換機140接收TLP。
在實施例中,交換機140可以將從PCIe端點150_1和150_2或傳統端點160_1和160_2接收的TLP發送到根複合體120。
在實施例中,根複合體120可以透過交換機140向PCIe端點150_1和150_2或傳統端點160_1和160_2發送TLP以及從PCIe端點150_1和150_2或傳統端點160_1和160_2接收TLP。根複合體120可以將從PCIe端點150_1和150_2或傳統端點160_1和160_2接收的TLP發送到中央處理單元110或記憶體130。
在實施例中,主機300中包括的主機處理器320和主機記憶體330可以透過主機內部結構310連接到根複合體120。
在實施例中,主機處理器320可以控制待對連接到PCIe端點150_1和150_2或傳統端點160_1和160_2中的每一個的高速非揮發性記憶體(non-volatile memory express, NVMe)裝置執行的寫入操作或讀取操作。在一些實施方案中,NVMe裝置可以是固態硬碟(solid state drive, SSD)或包括固態硬碟(solid state drive, SSD)。另外,主機處理器320可以將控制待對NVMe裝置執行的寫入操作或讀取操作所需的資訊儲存在主機記憶體330中。
在實施例中,NVMe驅動器340可以連接到中央處理單元110並允許主機300透過PCIe介面裝置100控制NVMe裝置。
圖2是示出PCIe介面裝置中包括的配置之間的封包傳輸的示圖。
參照圖1和圖2,圖2的PCI組件1 (PCI COMPONENT 1) 210和PCI組件1 (PCI COMPONENT 2) 220等PCI組件可以是圖1的根複合體120、交換機140、PCIe端點150_1和150_2以及傳統端點160_1和160_2中的任何一個。圖2的PCI組件1 (PCI COMPONENT 1) 210和PCI組件1 (PCI COMPONENT 2) 220可以是透過鏈路LINK連接的組件中的任何一個。鏈路LINK可以配置有至少一個通道。
在實施例中, PCI組件1 (PCI COMPONENT 1) 210和PCI組件1 (PCI COMPONENT 2) 220可以透過鏈路LINK發送和接收封包PACKET。PCI組件1 (PCI COMPONENT 1) 210和PCI組件1 (PCI COMPONENT 2) 220中的每一個可以作為發送封包PACKET的發送器(Transmitter,TX)或接收封包PACKET的接收器(Receiver,RX)進行操作。
在實施例中,封包PACKET可以是包括選擇性TLP前綴、標頭和資料有效載荷的資訊傳輸單元。
在實施例中,不需要被快取的封包PACKET不被監聽(snoop),從而減少延遲。當交易之間不存在依賴性時,可以透過改變排序來提高封包PACKET的操作性能。另外,可以透過改變基於ID的排序來提高封包PACKET的操作性能。
圖3是示出NVMe中的命令處理的示圖。
參照圖1和圖3,圖3示出了透過圖1的主機300中包括的NVMe驅動器340和主機記憶體330在連接到PCIe端點150_1和150_2或傳統端點160_1和160_2中的每一個的NVMe裝置上運行命令的過程。NVMe裝置可以包括NVMe控制器500。在圖3中,主機記憶體330可以包括提交佇列(SUBMISSION QUEUE,SQ)和完成佇列(COMPLETION QUEUE,CQ)。
在實施例中,NVMe驅動器340可以將待在NVMe裝置上運行的命令COMMAND發送到提交佇列。提交佇列可以將從NVMe驅動器340接收的命令排隊。例如,主機記憶體330可以將接收到的命令從提交佇列的隊頭(Head)到隊尾(Tail)順序地排隊。
當命令COMMAND在提交佇列中排隊時,NVMe驅動器340可以向NVMe控制器500輸出提交佇列隊尾門鈴信號。NVMe控制器500可以接收提交佇列隊尾門鈴(SUBMISSION QUEUE TAIL DOORBELL)信號並將提交佇列隊尾條目指標(SUBMISSION QUEUE TAIL ENTRY POINTER)儲存在暫存器中。此處,提交佇列隊尾條目指標可以是指示在提交佇列中排隊的命令之中的、在提交佇列的隊尾部分中排隊的命令的指示符。NVMe控制器500可以將提交佇列隊尾條目指標儲存在暫存器中以識別從主機記憶體330輸出的新命令。
此後,NVMe控制器500可以從主機記憶體330提取命令。NVMe控制器500可以接收在提交佇列中排隊的命令。NVMe控制器500可以執行與接收到的命令相對應的操作。
在實施例中,在NVMe控制器500執行對應於命令的操作之後,完成佇列條目可以被發送到主機記憶體330。完成佇列條目可以包括關於NVMe控制器500最近運行的命令的資訊。主機記憶體330可以將接收到的完成佇列條目在完成佇列中排隊。例如,主機記憶體330可以將接收到的完成佇列條目從完成佇列的隊頭到隊尾順序地排隊。
此後,NVMe控制器500可以向NVMe驅動器340輸出中斷信號。中斷信號可以是指示完成佇列條目已經在完成佇列中排隊的信號。
當接收到中斷信號時,NVMe驅動器340可以基於完成佇列的完成佇列條目來執行操作。當NVMe驅動器340完成操作時,NVMe驅動器340可以向NVMe控制器500輸出完成佇列隊頭門鈴信號。NVMe控制器500可以接收完成佇列隊頭門鈴信號並將完成佇列隊頭條目指標儲存在暫存器中。此處,完成佇列隊頭條目指標可以是指示在完成佇列中排隊的條目之中的、在完成佇列的隊頭部分中排隊的條目的指示符。NVMe控制器500可以將完成佇列隊頭條目指標儲存在暫存器中以識別相應操作已經完成的命令。
圖4是示出圖3的命令處理的示圖。
圖4示出了NVMe驅動器340、主機記憶體330和SSD的操作。SSD對應於連接到圖3的PCIe端點150_1和150_2或傳統端點160_1和160_2的NVMe裝置中的一個。
在圖4中,非DMA (Non-Direct Access Memory,非直接存取記憶體)操作可以指由圖1的中央處理單元110執行的操作,DMA (Direct Access Memory,直接存取記憶體)操作可以指在沒有圖1的中央處理單元110的干預的情況下獨立執行的操作。
在實施例中,NVMe驅動器340將待在SSD上運行的命令COMMAND輸出到主機記憶體330,並且主機記憶體330可以將接收到的命令從提交佇列的隊頭到隊尾順序地排隊。
此後,NVMe驅動器340可以向SSD輸出SQ門鈴信號。SQ門鈴信號可以是與圖3的提交佇列隊尾門鈴信號相同的信號。也就是說,NVMe驅動器340可以向SSD輸出SQ門鈴信號,從而識別從主機記憶體330輸出的新命令。
在實施例中,SSD可以從主機記憶體330提取命令。也就是說,SSD可以從主機記憶體330接收在提交佇列中排隊的命令並執行與接收到的命令相對應的操作。當SSD完成與從主機記憶體330接收到的命令相對應的操作時,SSD可以向主機記憶體330輸出完成信號。
此後,NVMe驅動器340和SSD可以在沒有圖1的中央處理單元110的干預的情況下獨立地執行DMA操作。
在實施例中,在SSD執行與命令相對應的操作之後,可以更新主機記憶體330的完成佇列(完成佇列更新,CQ UPDATE)。也就是說,在SSD執行與命令相對應的操作之後,可以將完成佇列條目發送到主機記憶體330,並且主機記憶體330可以將接收到的完成佇列條目從完成佇列的隊頭到隊尾順序地排隊。
此後,SSD可以向NVMe驅動器340輸出中斷信號。中斷信號可以是指示完成佇列條目在完成佇列中排隊的信號。
在實施例中,當NVMe驅動器340基於完成佇列的完成佇列條目執行的操作完成時,NVMe驅動器340可以向SSD輸出CQ門鈴信號。CQ門鈴信號可以是與圖3的完成佇列隊頭門鈴信號相同的信號。也就是說,NVMe驅動器340可以向SSD輸出CQ門鈴信號,從而識別操作完成的命令。
此後,NVMe驅動器340可以將待在SSD上運行的新命令COMMAND輸出到主機記憶體330,並將SQ門鈴信號輸出到SSD從而識別從主機記憶體330輸出的新命令。
在上述操作之中,除DMA操作之外的操作可以是非DMA操作。參照圖4,應注意,非DMA操作執行得比DMA操作多。由於處理非DMA操作需要更多時間,因此需要一種可以減少處理非DMA操作的時間的實施方案。為了減少非DMA操作所消耗的時間,下面將討論透過輕量級通知(lightweight notification, LN)來執行非DMA操作的方法。
圖5是示出透過LN執行的命令處理的示圖。
圖5示出了圖4的NVMe驅動器340、主機記憶體330和SSD基於PCIe輕量級通知(lightweight notification, LN)的操作。LN可以指示主機記憶體330的特定位址並且可以被包括在交易層封包(transaction layer packet, TLP)的標頭中。另外,LN可以暫存在圖1的根複合體120的快取列中。
在圖5中,非DMA操作是指由圖1的中央處理單元110執行的操作,DMA操作可以指在沒有圖1的中央處理單元110的干預的情況下獨立執行的操作。
在實施例中,SSD可以將LN暫存在圖1的根複合體120的快取列和主機記憶體330中。此時,LN可以指示命令在主機記憶體330中排隊的位置。
當LN被暫存在圖1的根複合體120的快取列和主機記憶體330中時,NVMe驅動器340可以將待在SSD上運行的命令輸出到主機記憶體330,並且主機記憶體330可以將接收到的命令從提交佇列的隊頭到隊尾順序地排隊。
在實施例中,當命令COMMAND在主機記憶體330中排隊時,主機記憶體330可以向SSD輸出LN訊息。LN訊息可以指示命令COMMAND在主機記憶體330中排隊的位置。當命令COMMAND排隊的位置改變時,主機記憶體330可以透過LN訊息向SSD輸出改變後的位置。
在實施例中,SSD可以預提取命令(命令預提取,COMMAND PRE-FETCH)。例如,SSD可以從主機記憶體330接收在提交佇列中排隊的命令。在提交佇列中排隊的命令可以在NVMe驅動器340輸出SQ門鈴信號之前被更新,並且主機記憶體330可以在SQ門鈴信號被輸出之前向SSD輸出LN訊息。因此,SSD可以透過預提取命令來預先準備命令的運行。此外,由於命令資訊儲存在圖1的根複合體120的快取列中,因此可以快速地提取命令以提高SSD的操作速度。
此後,NVMe驅動器340可以向SSD輸出SQ門鈴信號。SQ門鈴信號可以是與圖3的提交佇列隊尾門鈴信號相同的信號。NVMe驅動器340可以向SSD輸出SQ門鈴信號,從而識別從主機記憶體330輸出的新命令。SSD可以基於SQ門鈴信號執行與預提取的命令相對應的操作。
在接收到SQ門鈴信號之後,SSD可以從主機記憶體330提取命令(命令提取,COMMAND FETCH)。當SSD提取命令時,可以釋放LN暫存。SSD可以基於預提取的命令和提取的命令的比較結果來執行操作。
例如,當預提取的命令和提取的命令相同時,SSD可以繼續執行與預提取的命令相對應的操作。然而,當預提取的命令和提取的命令不同時,SSD可以停止與預提取的命令相對應的操作,並執行與提取的命令相對應的操作。
當SSD完成與從主機記憶體330接收的命令相對應的操作時,SSD可以向主機記憶體330輸出完成信號。
在實施例中,SSD從主機記憶體330提取命令的操作以及將完成信號輸出到主機記憶體330的操作可以是透過圖1的中央處理單元110執行的非DMA操作。由於上述非DMA操作是在DMA操作之間執行的操作,因此可以提高資料輸入/輸出的隨機性能。輸入/輸出隨機性能可以意味著每個命令的特定大小的資料的隨機性能。
此後,SSD可以暫存指示下一個命令在圖1的根複合體120的快取列和主機記憶體330中排隊的位置的LN。
在實施例中,在SSD執行與命令相對應的操作之後,可以更新主機記憶體330的完成佇列(CQ更新,CQ UPDATE)。在CQ UPDATE之後,SSD可以向NVMe驅動器340輸出指示完成佇列條目已經在完成佇列中排隊的中斷信號。當NVMe驅動器340回應於中斷信號基於完成佇列的完成佇列條目而執行的操作完成時,NVMe驅動器340可以向SSD輸出CQ門鈴信號。
在實施例中,NVMe驅動器340可以進一步執行將待在SSD上運行的命令COMMAND輸出到主機記憶體330的操作。
因此,透過將LN暫存在主機記憶體330中並預提取命令,可以縮短取提取命令的時間並且可以提高SSD的輸入/輸出隨機性能。
圖6是示出LN的示圖。
圖6示出了TLP標頭的一部分。
在實施例中,TLP標頭可以包括0至3位元組(BYTE),每個BYTE可以包括0至8位元(BIT)。TLP標頭的0至3BYTE中可以包括各種資訊。
在實施例中,TLP標頭的0BYTE可以包括指示TLP格式的格式(FMT)資訊以及指示TLP類型的類型(TYPE)資訊。例如,FMT資訊可以包括在0BYTE的7至5BIT中,TYPE資訊可以包括在0BYTE的4至0BIT中。
在實施例中,LN資訊可以包括在TLP標頭的1BYTE的1BIT中。LN可以是支援在快取列更新時透過硬體機制通知端點的協議。當1BYTE的1BIT為“1”時,LN資訊可以指示操作完成。
參照圖5,在NVMe驅動器340向主機記憶體330輸出命令之前,LN可以被暫存在主機記憶體330中。此時,TLP標頭的1BYTE的1BIT可以被設置為“1”。也就是說,在NVMe驅動器340向SSD輸出SQ門鈴信號之前,命令排隊的位置可以被進行LN暫存,當SSD接收到LN訊息時,SSD可以預提取在主機記憶體330中排隊的命令。
此後,當NVMe驅動器340向SSD輸出SQ門鈴信號時,SSD再次提取命令時,TLP標頭的1BYTE的1BIT可以被設置為“0”,並且LN暫存可以被釋放。
圖7是示出LN暫存的示圖。
圖7示出了圖1的主機300、中央處理單元110、根複合體120、交換機140以及連接到PCIe端點150_1和150_2以及傳統端點160_1和160_2中的任何一個的NVMe裝置150。在一些實施方案中,NVMe裝置150可以是SSD。
在實施例中,當主機300向NVMe裝置150發送命令時,主機300可以將命令資訊儲存在圖1的主機記憶體330中,然後將SQ門鈴信號發送到NVMe裝置150。此時,命令資訊儲存在圖1的主機記憶體330中的位址可以固定。在所公開技術的一些實施方案中,該位址可以LN暫存在圖1的主機300和根複合體120的快取列CACHE LINE中(LN暫存,LN REGISTER)。
在實施例中,在主機300向NVMe裝置150發送命令之前,LN可以被暫存。當LN被暫存時,主機300可以將命令資訊儲存在圖1的主機記憶體330中並且同時將LN訊息輸出到NVMe裝置150。因此,主機300可以透過LN訊息通知NVMe裝置150命令資訊在圖1的主機記憶體330中被更新。此後,主機300可以向NVMe裝置150輸出SQ門鈴信號。
因此,透過在主機300向NVMe裝置150輸出SQ門鈴信號之前輸出LN訊息,NVMe裝置150可以預先檢查新命令的出現。
圖8是示出在LN暫存之後的命令預提取和命令提取的示圖。
圖8示出了在如圖7討論的主機300將LN訊息輸出到NVMe裝置150之後的操作。
在實施例中,NVMe裝置150可以在接收SQ門鈴信號之前預提取儲存在圖1的主機記憶體330中的命令。具體地,NVMe裝置150可以透過圖1的根複合體120的快取列CACHE LINE來預提取命令。NVMe裝置150可以基於LN訊息檢查是否生成新命令,並且在接收SQ門鈴信號之前預提取儲存在圖1的主機記憶體330中的命令。
在實施例中,透過預提取儲存在圖1的主機記憶體330中的命令,可以減少提取命令所消耗的時間。因此,可以提高輸入/輸出隨機性能。輸入/輸出隨機性能可以意味著每個命令的特定大小的資料的隨機性能。
另外,在這種情況下,在接收SQ門鈴信號之後,NVMe裝置150可以再次提取儲存在圖1的主機記憶體330中的命令(命令提取,COMMAND FETCH)。
在實施例中,當預提取的命令和提取的命令相同時,NVMe裝置150可以執行預提取並繼續執行與正在運行的命令相對應的操作。然而,當預提取的命令和提取的命令不同時,NVMe裝置150可以停止與預提取的命令相對應的操作並執行與新提取的命令相對應的操作。
圖9是示出低功率狀態結束時的延遲的示圖。
圖9示出了圖3所示的NVMe驅動器340、主機記憶體330的操作以及SSD的操作。SSD對應於連接到圖1的交換機140的下游埠DOWNSTREAM PORT以及PCIe端點150_1和150_2或傳統端點160_1和160_2的NVMe裝置中的一個。此處,下游埠DOWNSTREAM PORT可以是與交換機140的上游埠相比距根複合體120相對更遠的埠。
在圖9中,SSD可以處於L1.2狀態。L1.2狀態可以意味著低功率狀態。為了防止功耗,SSD可以處於L1.2狀態。
在圖9中,L0狀態可以是可以管理功率的狀態,並且可以是可以正常發送和接收資料和控制封包的狀態。例如,在L0狀態下,可以發送和接收交易層封包(transaction layer packet, TLP)和資料鏈路層封包(data link layer packet, DLLP)。SSD可以在L1.2狀態下停止操作並在L0狀態下恢復操作。
在實施例中,NVMe驅動器340可以將待在SSD上運行的命令COMMAND輸出到主機記憶體330,並且主機記憶體330可以將接收到的命令排隊。此後,NVMe驅動器340可以透過下游埠DOWNSTREAM PORT輸出指示新命令在SSD中排隊的SQ門鈴信號。
然而,由於SSD最初處於L1.2狀態,因此可以從下游埠DOWNSTREAM PORT向SSD輸出喚醒信號。根據喚醒信號,SSD可以從L1.2狀態變為L0狀態(低功率退出,LOW POWER EXIT),並且SSD可以處於可以再次執行操作的狀態。此時,在SSD的狀態從L1.2狀態變為L0狀態之前,可能會出現延遲LATENCY。
當SSD處於可以執行操作的狀態時,從NVMe驅動器340接收的SQ門鈴信號可以從下游埠DOWNSTREAM PORT輸出到SSD。
此後,在L0狀態下,SSD可以從主機記憶體330提取命令。SSD可以從主機記憶體330接收在提交佇列中排隊的命令並執行與接收到的命令相對應的操作。
為了使在SSD的狀態從L1.2狀態變為L0狀態之前的延遲LATENCY發生最小化,所公開技術的一些實施方案提出了一種透過對命令儲存的位置進行LN暫存來結束低功率狀態的方法。
圖10是示出透過LN暫存結束低功率狀態的示圖。
圖10示出了圖3所示的NVMe驅動器340和主機記憶體330的操作以及SSD的操作。SSD對應於連接到圖1的交換機140的下游埠DOWNSTREAM PORT以及PCIe端點150_1和150_2或傳統端點160_1和160_2的NVMe裝置中的一個。此處,下游埠可以是與交換機140的上游埠相比距根複合體120相對更遠的埠。
在圖10中,SSD可以處於L1.2狀態。L1.2狀態可以意味著低功率狀態。為了防止功耗,SSD可以處於L1.2狀態。
在圖10中,L0狀態可以是可以管理功率的狀態,並且可以是可以正常發送和接收資料和控制封包的狀態。例如,在L0狀態下,可以發送和接收交易層封包(transaction layer packet, TLP)和資料鏈路層封包(data link layer packet, DLLP)。SSD可以在L1.2狀態下停止操作並在L0狀態下恢復操作。
然而,與圖9不同,在圖10中,透過將LN暫存在主機記憶體330中,SSD的狀態可以從L1.2狀態變為L0狀態。
在實施例中,在NVMe驅動器340向NVMe裝置150發送命令之前,可以在L0狀態下將LN暫存在主機記憶體330中(LN暫存,LN REGISTER)。此時,LN可以指示命令資訊儲存在主機記憶體330中的位址。
當LN被暫存時,在L1.2狀態下,NVMe驅動器340可以將命令資訊儲存在主機記憶體330中,並且同時可以從主機記憶體330向下游埠DOWNSTREAM PORT輸出LN訊息。因此,可以輸出用於通知下游埠DOWNSTREAM PORT新命令在主機記憶體330中排隊的LN訊息。
在實施例中,可以基於LN訊息從下游埠DOWNSTREAM PORT向SSD輸出喚醒信號。根據喚醒信號,SSD可以從L1.2狀態變為L0狀態(低功率退出,LOW POWER EXIT),這允許SSD處於能夠恢復操作的狀態。
此時,由於在SQ門鈴信號被輸出之前基於LN訊息輸出喚醒信號,因此可以減少SSD將其狀態從L1.2狀態變為L0狀態所花費的時間。
此後,當SSD處於能夠恢復操作的狀態時,從NVMe驅動器340接收的SQ門鈴信號可以從下游埠DOWNSTREAM PORT輸出到SSD。在L0狀態下,SSD可以從主機記憶體330提取命令。
圖11是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
參照圖11,在步驟S1101中,主機可以暫存LN。LN可以指示與命令資訊儲存在主機的主機記憶體中的位置相對應的位址。
在步驟S1103中,主機可以儲存待在SSD上運行的命令。例如,主機可以將該命令從提交佇列的隊頭到隊尾順序地在主機記憶體中排隊。
在步驟S1105中,主機可以向SSD發送LN訊息。也就是說,主機可以指示新命令在主機記憶體中排隊的位置。也就是說,當命令排隊的位置改變時,主機可以透過LN訊息將改變後的位置輸出到SSD。
在步驟S1107中,SSD可以預提取在主機記憶體中排隊的命令。當SSD接收到LN訊息時,SSD可以透過命令的預提取來預先準備運行命令。
在步驟S1109中,主機可以向SSD發送SQ門鈴信號。因此,主機可以向SSD輸出SQ門鈴信號,從而識別從主機記憶體輸出的新命令。SSD可以基於SQ門鈴信號執行與預提取的命令相對應的操作。
在步驟S1111中,SSD可以重新提取在主機記憶體中排隊的命令。例如,當SSD執行與預提取的命令相對應的操作時,可能會再次提取在主機記憶體中排隊的命令。SSD可以基於預提取的命令和提取的命令的比較結果來執行操作。
圖12是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
圖12示出了圖11的步驟S1111之後的步驟。
在步驟S1201中,SSD可以確定預提取的命令和提取的命令是否相同。SSD在執行與預提取的命令相對應的操作時可以再次提取命令,並且可以將預提取的命令和提取的命令進行比較。
當預提取的命令和提取的命令相同(是)時,操作可以進行到步驟S1203,SSD可以隨後執行與正在進行的命令相對應的操作。
然而,當預提取的命令和提取的命令不同(否)時,操作可以進行到步驟S1205,SSD可以停止與正在進行的命令相對應的操作並執行與新提取的命令相對應的操作。
圖13是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
參照圖13,在步驟S1301中,主機可以暫存LN。LN可以指示命令資訊儲存在主機中包括的主機記憶體中的位址。此時,SSD可以處於L0狀態。L0狀態可以是可以管理功率的狀態,並且可以是正常發送和接收資料和控制封包的狀態。
在步驟S1303中,主機可以儲存待在SSD上運行的命令。例如,主機可以將命令從提交佇列的隊頭到隊尾順序地在主機記憶體中排隊。此時,SSD可以處於L1.2狀態,即低功率狀態。
在步驟S1305中,主機可以透過下游埠向SSD發送LN訊息。可以輸出用於通知下游埠新命令在主機記憶體中排隊的LN訊息。此處,下游埠可以是PCIe介面裝置包括的配置之中的、距根複合體相對更遠的交換機的埠。
在步驟S1307中,可以將從下游埠輸出的喚醒信號發送到SSD。為了將SSD的狀態從L1.2狀態變為L0狀態,即,可以執行操作的狀態,可以從下游埠輸出喚醒信號。根據喚醒信號,SSD可以從L1.2狀態變為L0狀態(低功率退出,LOW POWER EXIT),並且SSD可處於能夠再次執行操作的狀態。
在步驟S1309中,主機可以透過下游埠向SSD發送SQ門鈴信號。當SSD處於能夠執行操作的狀態時,主機可以向SSD輸出SQ門鈴信號,從而識別從主機記憶體輸出的新命令。
在步驟S1311中,SSD可以提取在主機記憶體中排隊的命令。SSD可以提取命令,並執行與提取的命令相對應的操作。
描述了所公開技術的針對具有主機與一個或多個記憶體裝置的系統以及主機和記憶體裝置之間的介面的實施例的示例。可以基於本文件中描述或說明的內容對所公開的實施例和其它實施例進行變化和改進。
100:PCIe介面裝置
110:中央處理單元
120:根複合體
130:記憶體
140:交換機
150:NVMe裝置
150_1:PCIe端點
150_2:PCIe端點
160_1:傳統端點
160_2:傳統端點
210:PCI組件1
220:PCI組件2
300:主機
310:主機內部結構
320:主機處理器
330:主機記憶體
340:NVMe驅動器
500:NVMe控制器
L0:狀態
L1.2:狀態
LATENCY:延遲
LOW POWER EXIT:低功率退出
SSD:固態硬碟
S1101:步驟
S1103:步驟
S1105:步驟
S1107:步驟
S1109:步驟
S1111:步驟
S1201:步驟
S1203:步驟
S1205:步驟
S1301:步驟
S1303:步驟
S1305:步驟
S1307:步驟
S1309:步驟
S1311:步驟
[圖1]是示出基於所公開技術的一些實施方案的快捷週邊組件互連(PCIe)介面系統的方塊圖的示例。
[圖2]是示出基於所公開技術的一些實施方案的PCIe介面裝置中包括的配置之間的封包傳輸的示圖的示例。
[圖3]是示出基於所公開技術的一些實施方案的NVMe中的命令處理的示例的示圖。
[圖4]是示出圖3的命令處理的示例的示圖。
[圖5]是示出基於所公開技術的一些實施方案的透過LN執行的命令處理的示例的示圖。
[圖6]是示出基於所公開技術的一些實施方案的LN的示例的示圖。
[圖7]是示出基於所公開技術的一些實施方案的LN暫存的示例的示圖。
[圖8]是示出基於所公開技術的一些實施方案的LN暫存之後的命令預提取和命令提取的示例。
[圖9]是示出基於所公開技術的一些實施方案的低功率狀態結束時的延遲的示圖。
[圖10]是示出基於所公開技術的一些實施方案的透過LN暫存結束低功率狀態的示圖。
[圖11]是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
[圖12]是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
[圖13]是示出基於所公開技術的一些實施方案的PCIe介面系統的操作的示圖。
SSD:固態硬碟
Claims (20)
- 一種快捷週邊組件互連介面系統,即PCIe介面系統,所述PCIe介面系統包括PCIe介面裝置、主機以及透過所述PCIe介面裝置連接到所述主機的高速非揮發性記憶體裝置即NVMe裝置, 其中所述主機包括: 主機記憶體,儲存關於待在所述NVMe裝置上運行的命令以及已經在所述NVMe裝置上運行的命令的資訊;以及 NVMe驅動器,將待在所述NVMe裝置上運行的命令發送到所述主機記憶體,並且將門鈴信號輸出到所述NVMe裝置,所述門鈴信號指示待在所述NVMe裝置上運行的命令已經儲存在所述主機記憶體中,並且 其中所述NVMe裝置請求所述主機記憶體暫存輕量級通知即LN,所述LN指示待在所述NVMe裝置上運行的命令儲存的位置。
- 如請求項1所述的PCIe介面系統,其中所述主機記憶體在所述LN被暫存在所述主機記憶體中之後,將從所述NVMe驅動器接收的命令在提交佇列中排隊。
- 如請求項1所述的PCIe介面系統,其中所述主機記憶體向所述NVMe裝置輸出LN訊息,所述LN訊息指示待在所述NVMe裝置上運行的命令儲存在所述主機記憶體中。
- 如請求項3所述的PCIe介面系統,其中所述NVMe裝置預提取待在所述NVMe裝置上運行的命令,並執行與預提取的命令相對應的操作。
- 如請求項4所述的PCIe介面系統,其中所述NVMe裝置進一步從所述NVMe驅動器接收所述門鈴信號,並且在接收到所述門鈴信號時,從所述主機記憶體提取待在所述NVMe裝置上運行的命令。
- 如請求項5所述的PCIe介面系統,其中所述NVMe裝置進一步基於所述預提取的命令和提取的命令之間的比較來執行操作。
- 如請求項6所述的PCIe介面系統,其中所述NVMe裝置進一步回應於指示所述預提取的命令和所述提取的命令相同的比較結果,執行與所述預提取的命令相對應的操作。
- 如請求項6所述的PCIe介面系統,其中所述NVMe裝置進一步回應於指示所述預提取的命令和所述提取的命令不同的比較結果,停止與所述預提取的命令相對應的操作並執行與所述提取的命令相對應的操作。
- 如請求項1所述的PCIe介面系統,其中所述主機記憶體進一步向所述PCIe介面裝置中包括的交換機的下游埠發送LN訊息,所述LN訊息指示待在所述NVMe裝置上運行的命令在所述NVMe裝置處於低功率狀態的情況下被儲存。
- 如請求項9所述的PCIe介面系統,其中所述交換機進一步基於所述LN訊息向所述NVMe裝置發送結束所述低功率狀態的喚醒信號,並且 所述NVMe裝置進一步接收所述喚醒信號並將所述NVMe裝置的狀態從所述低功率狀態改變。
- 如請求項10所述的PCIe介面系統,其中所述NVMe驅動器進一步透過所述下游埠向所述NVMe裝置輸出所述門鈴信號,並且 所述NVMe裝置進一步從所述主機記憶體提取待在所述NVMe裝置上運行的命令。
- 一種操作系統的方法,所述方法包括: 由所述系統請求快捷週邊組件互連輕量級通知暫存即PCIe LN暫存,所述系統包括具有主機記憶體的主機以及透過PCIe介面裝置連接到所述主機的高速非揮發性記憶體裝置即NVMe裝置,所述LN暫存指示待在所述NVMe裝置上運行的命令儲存在所述系統中包括的主機記憶體內的位置; 暫存所述LN;以及 將待在所述NVMe裝置上運行的命令儲存在所述主機記憶體中。
- 如請求項12所述的方法,其中命令的儲存包括將待在所述NVMe裝置上運行的命令在所述主機記憶體中包括的提交佇列中排隊。
- 如請求項12所述的方法,進一步包括: 向所述NVMe裝置輸出LN訊息,所述LN訊息指示待在所述NVMe裝置上運行的命令儲存在所述主機記憶體中。
- 如請求項14所述的方法,進一步包括: 預提取待在所述NVMe裝置上運行的命令;以及 執行與預提取的命令相對應的操作。
- 如請求項15所述的方法,進一步包括: 在輸出指示待在所述NVMe裝置上運行的命令儲存在所述主機記憶體中的門鈴信號時,從所述主機記憶體提取待在所述NVMe裝置上運行的命令,在所述操作期間輸出的所述門鈴信號對應於所述預提取的命令。
- 如請求項16所述的方法,其中執行與所述預提取的命令相對應的操作包括回應於所述預提取的命令和提取的命令之間的比較結果,執行與所述預提取的命令相對應的操作,所述結果指示所述預提取的命令和所述提取的命令相同。
- 如請求項16所述的方法,其中執行與所述預提取的命令相對應的操作包括回應於所述預提取的命令和所述提取的命令之間的比較結果,停止與所述預提取的命令相對應的操作並執行與所述提取的命令相對應的操作,所述結果指示所述預提取的命令和所述提取的命令不同。
- 如請求項12所述的方法,進一步包括回應於所述NVMe裝置的低功率狀態: 向所述PCIe介面裝置中包括的交換機的下游埠發送LN訊息,所述LN訊息指示待在所述NVMe裝置上運行的命令被儲存;以及 基於所述LN訊息向所述NVMe裝置發送結束所述低功率狀態的喚醒信號。
- 如請求項19所述的方法,進一步包括: 向所述NVMe裝置輸出門鈴信號,所述門鈴信號指示待在所述NVMe裝置上運行的命令被儲存;以及 基於所述門鈴信號從所述主機記憶體提取待在所述NVMe裝置上運行的命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210048080A KR102509491B1 (ko) | 2021-04-13 | 2021-04-13 | PCIe 인터페이스 시스템 및 그 동작 방법 |
KR10-2021-0048080 | 2021-04-13 | ||
KR10-2021-0070686 | 2021-06-01 | ||
KR1020210070686A KR20220162345A (ko) | 2021-06-01 | 2021-06-01 | PCIe 인터페이스 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202240416A true TW202240416A (zh) | 2022-10-16 |
Family
ID=83509289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111103656A TW202240416A (zh) | 2021-04-13 | 2022-01-27 | 快捷週邊組件互連(pcie)介面系統及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11789658B2 (zh) |
CN (1) | CN115248795A (zh) |
TW (1) | TW202240416A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220162345A (ko) | 2021-06-01 | 2022-12-08 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102518317B1 (ko) | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000041B2 (en) | 2003-03-31 | 2006-02-14 | Intel Corporation | Method and an apparatus to efficiently handle read completions that satisfy a read request |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US8081706B2 (en) | 2005-08-24 | 2011-12-20 | Altera Corporation | Lane-to-lane skew reduction in multi-channel, high-speed, transceiver circuitry |
US7647515B2 (en) | 2005-08-29 | 2010-01-12 | Dell Products L.P. | System and method for information handling system adaptive variable bus idle timer |
US7984314B2 (en) | 2007-05-14 | 2011-07-19 | Intel Corporation | Power management of low power link states |
US9146892B2 (en) | 2007-10-11 | 2015-09-29 | Broadcom Corporation | Method and system for improving PCI-E L1 ASPM exit latency |
US8582448B2 (en) | 2007-10-22 | 2013-11-12 | Dell Products L.P. | Method and apparatus for power throttling of highspeed multi-lane serial links |
US20090187683A1 (en) | 2008-01-22 | 2009-07-23 | International Business Machines Corporation | Adaptive link width control |
US8503468B2 (en) | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
JP2010238150A (ja) | 2009-03-31 | 2010-10-21 | Toshiba Corp | PCIExpress通信システム、及びその通信方法 |
US8131889B2 (en) | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
US20110173352A1 (en) | 2010-01-13 | 2011-07-14 | Mellanox Technologies Ltd | Power Reduction on Idle Communication Lanes |
US8832336B2 (en) | 2010-01-30 | 2014-09-09 | Mosys, Inc. | Reducing latency in serializer-deserializer links |
WO2013095422A1 (en) | 2011-12-21 | 2013-06-27 | Intel Corporation | Dynamic link width adjustment |
US20130173837A1 (en) * | 2011-12-30 | 2013-07-04 | Advanced Micro Devices, Inc. | Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex |
WO2013162512A1 (en) | 2012-04-24 | 2013-10-31 | Intel Corporation | Adaptive low-power link-state entry policy for active interconnect link power management |
US8938630B2 (en) | 2012-07-30 | 2015-01-20 | Micron Technology, Inc. | Apparatus power control |
US9183171B2 (en) | 2012-09-29 | 2015-11-10 | Intel Corporation | Fast deskew when exiting low-power partial-width high speed link state |
JP6192284B2 (ja) | 2012-10-15 | 2017-09-06 | キヤノン株式会社 | 通信装置及びその制御方法 |
DE112013003723B4 (de) | 2012-10-22 | 2018-09-13 | Intel Corporation | Hochleistungsfähige physikalische Kopplungsstrukturschicht |
US9026698B2 (en) | 2013-03-15 | 2015-05-05 | Intel Corporation | Apparatus, system and method for providing access to a device function |
US9229525B2 (en) | 2013-06-17 | 2016-01-05 | Apple Inc. | Adaptive latency tolerance for power management of memory bus interfaces |
US9535870B2 (en) * | 2013-09-18 | 2017-01-03 | HGST Netherlands B.V. | Acknowledgement-less protocol for solid state drive interface |
US9467120B1 (en) | 2013-12-19 | 2016-10-11 | Altera Corporation | Power management for PCI express |
US9454213B2 (en) | 2013-12-26 | 2016-09-27 | Intel Corporation | Method, apparatus, system for lane staggering and determinism for serial high speed I/O lanes |
KR102218735B1 (ko) | 2014-01-21 | 2021-02-23 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법 |
US9304690B2 (en) | 2014-05-07 | 2016-04-05 | HGST Netherlands B.V. | System and method for peer-to-peer PCIe storage transfers |
US20160188510A1 (en) | 2014-12-26 | 2016-06-30 | Samsung Electronics Co., Ltd. | METHOD FETCHING/PROCESSING NVMe COMMANDS IN MULTI-PORT, SR-IOV OR MR-IOV SUPPORTED PCIe BASED STORAGE DEVICES |
US20160216758A1 (en) | 2015-01-27 | 2016-07-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | PCI Express Device With Early Low Power State |
KR102333391B1 (ko) | 2015-02-27 | 2021-12-01 | 삼성전자 주식회사 | 전자 장치 및 이의 전력 제어 방법 |
KR102403489B1 (ko) | 2015-07-10 | 2022-05-27 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
JP2017033501A (ja) | 2015-08-06 | 2017-02-09 | 株式会社東芝 | 記憶装置および制御方法 |
US11029748B2 (en) | 2016-03-15 | 2021-06-08 | Qualcomm Incorporated | Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings |
US10133504B2 (en) * | 2016-04-06 | 2018-11-20 | Futurewei Technologies, Inc. | Dynamic partitioning of processing hardware |
US10025522B2 (en) | 2016-04-15 | 2018-07-17 | Sandisk Technologies Llc | Memory interface command queue throttling |
KR20170124017A (ko) | 2016-04-29 | 2017-11-09 | 삼성전자주식회사 | 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법 |
US9760311B1 (en) | 2016-06-23 | 2017-09-12 | Sandisk Technologies Llc | Storage system and method for adaptive thermal throttling |
US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
US10963035B2 (en) | 2017-10-11 | 2021-03-30 | Qualcomm Incorporated | Low power PCIe |
US11132319B2 (en) | 2018-01-12 | 2021-09-28 | Intel Corporation | Timer control for peripheral component interconnect express components implemented with thunderbolt controllers |
US20190250930A1 (en) | 2018-02-12 | 2019-08-15 | Western Digital Technologies, Inc. | Method and apparatus for configuring a serial data link |
JP7292864B2 (ja) | 2018-04-23 | 2023-06-19 | キオクシア株式会社 | 半導体記憶装置 |
US11231764B2 (en) * | 2018-10-17 | 2022-01-25 | Samsung Electronics Co., Ltd. | System and method for supporting chassis level keep alive in NVME-of based system |
US11307638B2 (en) | 2018-12-12 | 2022-04-19 | Intel Corporation | Securely providing multiple wake-up time options for PCI Express |
US11435958B2 (en) | 2019-01-31 | 2022-09-06 | Intel Corporation | Shared memory mechanism to support fast transport of SQ/CQ pair communication between SSD device driver in virtualization environment and physical SSD |
US11815976B2 (en) | 2019-05-22 | 2023-11-14 | Qualcomm Incorporated | Bandwidth based power management for peripheral component interconnect express devices |
US11073894B2 (en) | 2019-05-24 | 2021-07-27 | Qualcomm Incorporated | System power management for peripheral component interconnect express (PCIE)-based devices |
US11593280B2 (en) | 2019-06-25 | 2023-02-28 | Intel Corporation | Predictive packet header compression |
US11775470B2 (en) | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
CN111124975A (zh) | 2019-12-27 | 2020-05-08 | 江苏芯盛智能科技有限公司 | 一种PCIe设备动态功耗节省方法以及低功耗PCIe设备 |
US11543996B2 (en) | 2020-05-20 | 2023-01-03 | Western Digital Technologies, Inc. | Systems and methods for power management in a data storage device |
US20200310517A1 (en) | 2020-05-28 | 2020-10-01 | Intel Corporation | Adaptive lower power state entry and exit |
US20220197519A1 (en) | 2020-12-19 | 2022-06-23 | Intel Corporation | Multi-level memory system power management apparatus and method |
US20220327074A1 (en) | 2021-04-13 | 2022-10-13 | SK Hynix Inc. | PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME |
KR102518317B1 (ko) | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
-
2021
- 2021-11-09 US US17/522,810 patent/US11789658B2/en active Active
-
2022
- 2022-01-04 CN CN202210005338.0A patent/CN115248795A/zh active Pending
- 2022-01-27 TW TW111103656A patent/TW202240416A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN115248795A (zh) | 2022-10-28 |
US20220326885A1 (en) | 2022-10-13 |
US11789658B2 (en) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
US7620749B2 (en) | Descriptor prefetch mechanism for high latency and out of order DMA device | |
WO2018076793A1 (zh) | 一种NVMe数据读写方法及NVMe设备 | |
US9286236B2 (en) | I/O controller and method for operating an I/O controller | |
US9727503B2 (en) | Storage system and server | |
US9280290B2 (en) | Method for steering DMA write requests to cache memory | |
US6434639B1 (en) | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation | |
US20150261720A1 (en) | Accessing remote storage devices using a local bus protocol | |
US10983920B2 (en) | Customizable multi queue DMA interface | |
TW202240416A (zh) | 快捷週邊組件互連(pcie)介面系統及其操作方法 | |
TW201546717A (zh) | 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法 | |
EP4220419B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
WO2012164416A1 (en) | Avoiding non-posted request deadlocks in devices | |
US8880847B2 (en) | Multistream prefetch buffer | |
US20220327074A1 (en) | PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME | |
US10817446B1 (en) | Optimized multiport NVMe controller for multipath input/output applications | |
US6973528B2 (en) | Data caching on bridge following disconnect | |
US6801963B2 (en) | Method, system, and program for configuring components on a bus for input/output operations | |
US10169272B2 (en) | Data processing apparatus and method | |
US8719506B2 (en) | Push mechanism for quality of service (QoS) support in coherency port | |
WO2014206229A1 (zh) | 一种加速器以及数据处理方法 | |
US6820140B2 (en) | Method, system, and program for returning data to read requests received over a bus | |
KR102509491B1 (ko) | PCIe 인터페이스 시스템 및 그 동작 방법 | |
US10789001B1 (en) | Posted operation data control | |
US20170147517A1 (en) | Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method |