TW202238399A - 快速週邊組件互連裝置及其操作方法 - Google Patents
快速週邊組件互連裝置及其操作方法 Download PDFInfo
- Publication number
- TW202238399A TW202238399A TW110145466A TW110145466A TW202238399A TW 202238399 A TW202238399 A TW 202238399A TW 110145466 A TW110145466 A TW 110145466A TW 110145466 A TW110145466 A TW 110145466A TW 202238399 A TW202238399 A TW 202238399A
- Authority
- TW
- Taiwan
- Prior art keywords
- delay time
- command
- information
- flux
- functions
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/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/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/0024—Peripheral component interconnect [PCI]
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Advance Control (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
本公開提供了一種PCIe裝置及其操作方法。PCIe裝置可以包括:通量計算器,被配置爲計算多個功能中的每個功能的通量;通量分析資訊生成器,被配置爲生成指示通量限制與所計算的通量之間的比較的結果的通量分析資訊;延遲時間資訊生成器,被配置爲基於通量分析資訊,針對每個功能生成用於延遲命令提取操作的延遲時間;命令查找表儲存裝置,被配置爲儲存命令相關資訊以及與目標命令相對應的功能的延遲時間,命令相關資訊包括與待從主機提取的目標命令相關的資訊;以及命令提取器,被配置爲基於命令相關資訊和相應功能的延遲時間來提取目標命令。
Description
本公開的各個實施例總體上係關於一種電子裝置,並且更特別地,係關於一種快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)裝置以及操作該PCIe裝置的方法。
週邊組件互連(Peripheral Component Interconnect, PCI)定義了一種用於將輸入/輸出裝置聯接到主機裝置的匯流排協定。快速PCI (PCI Express, PCIe)具有在PCI標準中定義的編程的概念,並將實體通信層定義爲高速串列介面。
儲存裝置是在諸如計算機或智慧型手機之類的主機裝置的控制下儲存資料的裝置。儲存裝置可以包括儲存資料的記憶體裝置以及控制記憶體裝置的記憶體控制器。記憶體裝置可以分類爲揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置可以是僅在供電時才儲存資料並且在供電中斷時會丟失所儲存的資料的記憶體裝置。揮發性記憶體裝置的示例可以包括靜態隨機存取記憶體(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年3月18日向韓國知識産權局提交的、申請號爲10-2021-0035522的韓國專利申請的優先權,該韓國專利申請的全部公開內容透過引用並入本文。
本公開的各個實施例涉及一種能夠限制每個功能的性能的PCIe裝置以及操作該PCIe裝置的方法。
本公開的實施例可以提供一種快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)裝置。該PCIe裝置可以包括:通量計算器,被配置爲計算多個功能中的每個功能的通量;通量分析資訊生成器,被配置爲針對多個功能中的每個功能,生成指示通量限制與所計算的通量之間的比較的結果的通量分析資訊,該通量限制是爲多個功能中的每個功能設置的;延遲時間資訊生成器,被配置爲基於通量分析資訊,針對多個功能中的每個功能生成用於延遲命令提取操作的延遲時間;命令查找表儲存裝置,被配置爲儲存命令相關資訊以及與目標命令相對應的功能的延遲時間,命令相關資訊包括與待從主機提取的目標命令相關的資訊;以及命令提取器,被配置爲基於命令相關資訊和相應功能的延遲時間來從主機提取目標命令。
本公開的實施例可以提供一種操作快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)裝置的方法。該方法可以包括:計算多個功能中的每個功能的通量;針對多個功能中的每個功能,生成通量分析資訊,該通量分析資訊指示爲多個功能中的每個功能設置的通量限制與所計算的通量之間的比較的結果;基於通量分析資訊,針對多個功能中的每個功能生成用於延遲命令提取操作的延遲時間;提取命令相關資訊,該命令相關資訊包括與待從主機提取的目標命令相關的資訊;以及基於命令相關資訊以及多個功能之中的與目標命令相對應的功能的延遲時間,從主機提取目標命令。
將本說明書或本申請中介紹的本公開的實施例中的特定結構或功能描述作爲示例來描述根據本公開的構思的實施例。根據本公開的構思的實施例可以以各種形式來實踐,並且不應被解釋爲限於說明書或申請中描述的實施例。
圖1示出了根據本公開的實施例的計算系統100。
參照圖1,計算系統100可以包括主機1000和快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)裝置2000。例如,計算系統100可以是行動電話、智慧型手機、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、電視、平板電腦、車載資訊娛樂系統等。
主機1000可以控制計算系統100的資料處理和操作。主機1000可以儲存計算系統100的操作所需的資料、命令和/或程序代碼。
主機1000可以包括將輸入/輸出裝置彼此聯接的輸入/輸出控制模組。例如,輸入/輸出控制模組可以包括以下中的一個或多個:通用串列匯流排(Universal Serial Bus, USB)配接器、週邊組件互連(Peripheral Component Interconnect, PCI)或快速PCI (PCI Express, PCIe)配接器、小型計算機系統介面(Small Computer System Interface, SCSI)配接器、串列AT (Serial AT Attachment, SATA)配接器、快速非揮發性記憶體(NonVolatile Memory express, NVMe)配接器等。主機1000可以透過輸入/輸出控制模組與聯接到計算系統100的裝置通信資訊。
PCI定義了一種用於將輸入/輸出裝置彼此聯接的匯流排協定。PCIe具有在PCI標準中定義的編程的概念,並將實體通信層定義爲高速串列介面。
PCIe裝置2000可以使用PCIe與主機1000通信。例如,PCIe裝置2000可以以諸如網路和儲存裝置之類的各種I/O裝置類型來實施。
在實施例中,PCIe裝置2000可以被定義爲端點或包括端點的裝置。
端點表示可以是PCIe交易(PCIe transaction)的請求者或完成者的功能的類型。端點可以被分類爲傳統端點、PCIe端點或根複合體集成端點(Root Complex Integrated Endpoint, RCiEP)。
傳統端點可以是配置空間標頭爲類型00h的功能。傳統端點可以作爲完成者支持配置請求。傳統端點可以作爲完成者支持輸入/輸出(I/O)請求。傳統端點可以接受針對80h和84h位置中的任一者或兩者的I/O請求,而不管相應端點的I/O解碼配置如何。傳統端點可以生成I/O請求。傳統端點不應發出鎖定請求。傳統端點可以實施擴展的配置空間能力。
不需要用作記憶體交易的請求者的傳統端點生成4GB以上(或等於4GB)的位址。當請求中斷資源時,需要傳統端點來支持訊息信號中斷(Message Signaled Interrupt, MSI)和MSI-X中的任一者或兩者。當實施訊息信號中斷(message signaled interrupt, MSI)時,傳統端點可以支持MSI功能結構的32位或64位訊息位址版本。傳統端點可以支持針對請求記憶體資源的基位址暫存器的32位位址分配。傳統端點可以出現在源自於根複合體的層次結構域中的任何一個層次結構域中。
PCIe端點可以是配置空間標頭爲類型00h的功能。PCIe端點可以作爲完成者支持配置請求。PCIe端點不應依賴於I/O資源的操作系統(operating system, OS)分配,該OS分配是透過基位址暫存器(base address register, BAR)請求的。PCIe端點無法生成I/O請求。PCIe端點可以既不作爲完成者支持鎖定請求,也不作爲請求者生成鎖定請求。可以創建PCIe相容的軟體驅動器和應用程序,以便在存取PCIe端點時不使用鎖定語義。
用作記憶體交易的請求者的PCIe端點可以生成4GB以上的位址。當請求中斷資源時,可能需要PCIe端點來支持MSI和MSI-X中的任一者或兩者。當實施MSI時,PCIe端點可以支持MSI功能結構的64位訊息位址版本。基位址暫存器請求的最小記憶體位址範圍可以是128個位元組。PCIe端點可以出現在源自於根複合體的層次結構域中的任何一個層次結構域中。
根複合體集成端點(Root Complex Integrated Endpoint, RCiEP)可以以包括根埠的根複合體的內部邏輯來實施。RCiEP可以是配置空間標頭爲類型00h的功能。RCiEP可以作爲完成者支持配置請求。RCiEP可能不需要透過基位址暫存器請求的I/O資源。RCiEP可以不生成I/O請求。RCiEP可以既不作爲完成者支持鎖定請求,也不作爲請求者生成鎖定請求。可以創建PCIe相容的軟體驅動器和應用程序,以便在存取RCiEP時不使用鎖定語義。作爲記憶體交易的請求者的RCiEP可以生成具有如下容量的位址:該容量等於或大於可以由作爲完成者的主機1000處理的位址的容量。
當請求中斷資源時,需要RCiEP來支持MSI和MSI-X中的任一者或兩者。當實施MSI時,允許RCiEP支持MSI功能結構的32位或64位訊息位址版本。RCiEP可以支持針對請求記憶體資源的基位址暫存器的32位位址分配。RCiEP無法實施快速PCI擴展能力中的鏈路容量、鏈路狀態、鏈路控制、鏈路容量2、鏈路狀態2和鏈路控制2暫存器。RCiEP可以不實施活動狀態電源管理。RCiEP可能不與根複合體完全且獨立地進行熱插拔。RCiEP可能不會出現在由根複合體暴露的層次結構域中。RCiEP可能不會出現在交換機中。
在實施例中,PCIe裝置2000可以生成一個或多個虛擬裝置。例如,PCIe裝置2000可以儲存用於生成一個或多個虛擬裝置的程序代碼。
在實施例中,PCIe裝置2000可以基於從主機1000接收的虛擬化請求來生成實體功能(physical function, PF)裝置或虛擬功能(virtual function, VF)裝置。例如,實體功能裝置可以被設置爲可以由主機1000的虛擬化中介存取的虛擬裝置。虛擬功能裝置可以被設置爲分配給主機1000的虛擬機的虛擬裝置。
圖2示出了圖1的主機。
在實施例中,圖2示出了PCIe在其中可用的主機1000。
參照圖2,主機1000可以包括多個系統影像1010-1至1010-n、虛擬化中介1020、處理器1030、記憶體1040、根複合體1050和交換機1060,n爲正整數。
在實施例中,多個PCIe裝置2000-1至2000-3中的每一個可以對應於圖1的PCIe裝置2000。
系統影像1010-1至1010-n可以是在可以分配有PCIe功能的虛擬系統上運行的軟體組件。在實施例中,系統影像1010-1至1010-n可以被稱爲虛擬機。系統影像1010-1至1010-n可以是軟體,例如用於運行應用程序或可信任的服務的操作系統。例如,系統影像1010-1至1010-n可以包括訪客操作系統(guest operating system, Guest OS)、共享或非共享I/O裝置驅動器等。爲了在不修改硬體的情况下提高硬體資源利用的效率,可以在計算系統100上運行多個系統影像1010-1至1010-n。
在實施例中,PCIe功能可以是提供包括在PCIe裝置2000-1至2000-3中的實體資源的獨立操作單元。在本說明書中,術語“PCIe功能”和術語“功能”可以具有相同的含義。
虛擬化中介1020可以是支持多個系統影像1010-1至1010-n的軟體組件。在實施例中,虛擬化中介1020可以被稱爲超管理器(hypervisor)或虛擬機監視器(virtual machine monitor, VMM)。虛擬化中介1020可以介於諸如處理器1030和記憶體1040之類的硬體與系統影像1010-1至1010-n之間。計算系統100中的輸入/輸出(I/O)操作(入站或出站I/O操作)可以由虛擬化中介1020攔截和處理。虛擬化中介1020可以透過使硬體資源抽象化來呈現具有其自己虛擬系統的各自的系統影像1010-1至1010-n。各自的系統影像1010-1至1010-n中可用的實際硬體資源可以隨著工作負載或客戶特定策略而變化。
處理器1030可以包括電路、介面或程序代碼,它們執行計算系統100的組件的資料處理和控制操作。例如,處理器1030可以包括中央處理單元(central processing unit, CPU)、高級RISC機(Advanced RISC Machine, ARM)、應用特定積體電路(application specific integrated circuit, ASIC)等。
記憶體1040可以包括儲存計算系統100的操作所需的資料、命令和/或程序代碼的揮發性記憶體,諸如SRAM、DRAM等。而且,記憶體1040可以包括非揮發性記憶體。在實施例中,記憶體1040還可以儲存可操作以運行一個或多個操作系統(operating systems, OS)和虛擬機(virtual machines, VM)的程序代碼,以及運行虛擬化中介(virtualization intermediary, VI) 1020以管理虛擬機的程序代碼。
處理器1030可以透過運行記憶體1040中儲存的程序代碼來運行一個或多個操作系統以及虛擬機。進一步地,處理器1030可以運行用於管理虛擬機的虛擬化中介1020。以這種方式,處理器1030可以控制計算系統100的組件的操作。
根複合體1050指示將處理器1030/記憶體1040聯接到I/O埠的I/O層次結構的根。
計算系統100可以包括一個或多個根複合體。進一步地,每個根複合體1050可以包括一個或多個根埠,例如1051和1052。根埠1051和1052表示單獨的層次結構。根複合體1050可以透過根埠1051和1052與交換機1060或PCIe裝置2000-1至2000-3進行通信。
透過根複合體1050在層次結構域之間路由同級間交易(peer-to-peer transaction)的功能是選擇性的。每個層次結構域可以被實施爲包括單個端點或者一個或多個交換機和端點的子層次結構。
當在層次結構域之間路由同級間交易時,根複合體1050可以將資料包拆分爲較小的資料包。例如,根複合體1050可以將具有256位元組有用載荷的單個資料包拆分爲兩個資料包,每個資料包具有128位元組有用載荷。對此例外的是,不允許支持供應商定義訊息(Vendor_Defined Messages,VDM)的同級間路由的根複合體1050將每個供應商定義的訊息資料包拆分爲較小的資料包,除了在128位元組邊界處(即,除最後一個資料包之外的所有結果資料包的有用載荷大小應爲128位元組的整數倍)。
根複合體1050作爲請求者應該支持生成配置請求。根複合體1050作爲請求者可以支持生成I/O請求。
根複合體1050作爲完成者不應支持鎖定語義。根複合體1050作爲請求者可以支持生成鎖定請求。
交換機1060可以被定義爲各種虛擬PCI-PCI橋裝置的邏輯組件。交換機1060可以與其所聯接的PCIe裝置2000-2和2000-3進行通信。
交換機1060由配置軟體中的兩個或更多個邏輯PCI-PCI橋來指示。
交換機1060可以使用PCI橋機制來傳送交易。交換機1060可以在所有埠集之間傳送所有類型的交易層資料包(Transaction Layer Packets, TLP)。交換機1060可以支持鎖定請求。
交換機1060無法將資料包拆分爲較小的資料包。
當在同一虛擬通道中發生爭用時,交換機1060的入口埠之間的仲裁(Arbitration)可以以輪循(round robin)或加權輪循(weighted round robin)的方式來實施。
端點不應在交換機1060的內部匯流排中的配置軟體中被表示爲虛擬PCI-PCI橋中的指示交換機下游埠的同級體(peer)。
圖3示出了圖1的PCIe裝置。
參照圖3,PCIe裝置2000可以包括PCIe介面裝置2100和多個直接記憶體存取(Direct Memory Access, DMA)裝置2200-1至2200-n。
PCIe介面裝置2100可以從在多個DMA裝置2200-1至2200-n中運行的多個功能接收交易層資料包。PCIe介面裝置2100可以將從各個功能接收的交易層資料包傳送到圖1的主機1000。
DMA裝置2200-1至2200-n的類型可以包括快速非揮發性記憶體(NonVolatile Memory Express, NVMe)裝置、固態硬碟(Solid State Drive, SSD)裝置、人工智慧中央處理單元(Artificial Intelligence Central Processing Unit, AI CPU)、人工智慧片上系統(Artificial Intelligence System on Chip, AI SoC)、以太網裝置、音效卡、圖形卡等。DMA裝置2200-1至2200-n的類型不限於此,並且可以包括採用PCIe介面的其他類型電子裝置。功能可以在DMA裝置2200-1至2200-n上運行,並且可以是處理交易層資料包的交易的軟體或韌體。
功能可以在DMA裝置2200-1至2200-n中的每一個上運行。例如,DMA裝置2200-1至2200-n中的每一個可以包括在其上運行的一個或多個功能。此處,在DMA裝置2200-1至2200-n中的每一個上運行的功能的數量可以根據實施例而變化。PCIe裝置2000可以響應於從主機1000接收的虛擬化請求而生成實體功能或虛擬功能。PCIe裝置2000可以將功能分配給各個DMA裝置2200-1至2200-n。分配給DMA裝置2200-1至2200-n中的每一個並在其上運行的功能的數量可以被單獨設置。因此,一個或多個功能可以被分配給一個DMA裝置(例如,2200-1到2200-n中的一個),並且每個功能可以作爲獨立的操作單元來運行。
圖4示出了PCIe介面裝置中包括的層的結構。
參照圖4,示出了第一PCIe介面裝置2100a和第二PCIe介面裝置2100b。第一PCIe介面裝置2100a和第二PCIe介面裝置2100b中的每一個可以對應於圖3的PCIe介面裝置2100。
第一PCIe介面裝置2100a和第二PCIe介面裝置2100b中的每一個中包括的PCIe層可以包括三個分立的邏輯層。例如,PCIe層可以包括交易層、資料鏈路層和實體層。每一層可以包括兩個部分。這兩個部分中的一個可以處理出站資訊(或待發送的資訊),另一個可以處理入站資訊(或接收到的資訊)。進一步地,第一PCIe介面裝置2100a和第二PCIe介面裝置2100b可以使用交易層資料包來進行資訊的通信。
在第一PCIe介面裝置2100a和第二PCIe介面裝置2100b中的每一個中,交易層可以組裝和分解交易層資料包。而且,交易層可以實施拆分交易,該拆分交易是在目標系統正在收集響應所需的資料的同時用於將其他流量傳送到鏈路的交易。例如,交易層可以實施請求和響應按時間分開的交易。在實施例中,四個交易位址空間可以包括配置位址空間、記憶體位址空間、輸入/輸出位址空間和訊息位址空間。記憶體空間交易可以包括以下中的一項或多項:用於向記憶體映射位置發送資料/從記憶體映射位置接收資料的讀取請求和寫入請求。在實施例中,記憶體空間交易可以使用兩種不同的位址格式,例如,諸如32位位址的短位址格式和諸如64位位址的長位址格式。配置空間交易可以用於存取PCIe系統的配置空間。針對配置空間的交易可以包括讀取請求和寫入請求。可以定義訊息空間交易(或訊息)以支持PCIe系統之間的帶內通信(in-band communication)。
交易層可以儲存鏈路配置資訊等。此外,交易層可以生成交易層資料包(transaction layer packet, TLP),或者可以將從外部裝置接收的TLP轉換爲有用載荷或狀態資訊。
資料鏈路層可以執行鏈路管理功能以及包括錯誤檢測和錯誤校正的資料完整性功能。具體地,資料鏈路層的發送側可以接受由交易層組裝的TLP,爲TLP指派資料保護碼,並且計算TLP的TLP序列號。而且,資料鏈路層的發送側可以將資料保護碼和TLP序列號發送給實體層,以便透過鏈路發送相應的資訊。資料鏈路層的接收側可以檢查從實體層接收的TLP的資料完整性,並將TLP發送給交易層,以便對TLP進行附加處理。
實體層可以包括用於執行介面操作的所有電路。此處,所有電路可以包括驅動器、輸入緩衝器、串並轉換電路、並串轉換電路、鎖相環(phase-locked loop, PLL)和阻抗匹配電路。
進一步地,實體層可以包括用於將資料包實體地發送給外部PCIe系統的邏輯子塊和電子塊。此處,邏輯子塊可以扮演實體層的“數位”功能所必需的角色。對此,邏輯子塊可以包括用於準備待由電子塊發送的傳出資訊的發送部分,以及用於在將接收到的資訊傳遞到資料鏈路層之前識別和準備接收到的資訊的接收部分。
實體層可以包括發送器和接收器。發送器可以從邏輯子塊接收符號,將符號序列化,並將經序列化的符號發送給外部裝置(例如外部PCIe系統)。進一步地,接收器可以從外部裝置接收經序列化的符號,並將接收到的符號轉換爲位元流。位元流可以被反序列化並被供應到邏輯子塊。也就是說,實體層可以將從資料鏈路層接收的TLP轉換爲序列化的格式,並且可以將從外部裝置接收的資料包轉換爲反序列化的格式。此外,實體層可以包括與介面初始化和維護相關的邏輯功能。
儘管圖4示出了第一PCIe介面裝置2100a和第二PCIe介面裝置2100b的結構,但是第一PCIe介面裝置2100a和第二PCIe介面裝置2100b可以包括任意形式,諸如快速路徑互連結構、下一代高性能計算互連結構或任何其它層次結構。
圖5示出了根據本公開的實施例的PCIe裝置500。
PCIe裝置500可以對應於圖1至圖3所示的PCIe裝置2000、2000-1、2000-2和2000-3中的任一個。
參照圖5,PCIe裝置500可以包括通量計算器510、通量分析資訊生成器520、延遲時間資訊生成器530、命令查找表儲存裝置540和命令提取器550。
通量計算器510可以計算在多個DMA裝置上運行的多個功能中的每個功能的通量。通量可以是指示功能中的每個功能的性能的指標。通量計算器510可以周期性地計算功能中的每個功能的通量。
在實施例中,通量計算器510可以基於多個功能對於在多個功能之間共享的資料路徑的占用率來計算通量。在實施例中,資料路徑可以是用於將PCIe介面裝置聯接到多個DMA裝置的路徑。
例如,通量計算器510可以基於多個功能中的每個功能的、每單位時間透過資料路徑處理的交易層資料包的數量來計算該功能的占用率。多個功能中的每個功能可以透過資料路徑來發送包括相應功能的標識資訊的交易層資料包。因此,通量計算器510可以基於交易層資料包中包括的功能標識資訊來計算多個功能中的每個功能的占用率。通量計算器510可以基於多個功能的所計算的占用率來計算多個功能的通量。通量計算器510可以將所計算的通量提供給通量分析資訊生成器520。
在實施例中,通量計算器510可以針對多個功能中的每個功能計算與讀取操作相對應的讀取通量以及與寫入操作相對應的寫入通量。此處,與讀取操作相對應的讀取通量可以是在相應功能的讀取操作期間計算的通量,與寫入操作相對應的寫入通量可以是在相應功能的寫入操作期間計算的通量。因此,多個功能中的每個功能的通量可以包括與讀取操作相對應的讀取通量和與寫入操作相對應的寫入通量。
通量分析資訊生成器520可以基於針對多個功能中的每個功能設置的通量限制以及針對多個功能中的每個功能所計算的通量,來生成針對多個功能中的每個功能的通量分析資訊。例如,通量分析資訊生成器520可以基於從通量計算器510提供的通量來周期性地生成通量分析資訊。
此處,通量限制可以是設置爲限制每個功能的通量的閾值。例如,通量分析資訊生成器520可以從主機1000接收與多個功能中的每個功能的通量限制有關的資訊。通量分析資訊生成器520可以根據接收到的關於通量限制的資訊來設置多個功能中的每個功能的通量限制。
此處,通量分析資訊可以是指示通量限制和所計算的通量之間的比較的結果的資訊。在實施例中,通量分析資訊可以包括以下中的至少一項:所計算的通量是否超過通量限制、所計算的通量與通量限制的超額比、所計算的通量與通量限制的殘差比的資訊;與每個功能是否處於空閒狀態有關的資訊;以及與所計算的通量是否低於爲每個功能設置的最小性能閾值有關的資訊。通量分析資訊可以進一步包括可以透過對通量進行比較性分析而獲得的各種類型的資訊中的任一種。
在實施例中,當針對特定功能計算的通量超過爲該特定功能設置的通量限制時,可以計算所計算的通量與通量限制的超額比。例如,所計算的通量與通量限制的超額比可以由以下等式(1)表示。
超額比=(所計算的通量-通量限制)/通量限制 (1)
在實施例中,當針對特定功能計算的通量沒有超過爲該特定功能設置的通量限制時,可以計算所計算的通量與通量限制的殘差比。例如,所計算的通量與通量限制的殘差比可以由以下等式(2)表示。
殘差比=(通量限制-所計算的通量)/通量限制 (2)
在實施例中,通量分析資訊生成器520可以生成與讀取操作相對應的讀取通量分析資訊和與寫入操作相對應的寫入通量分析資訊。例如,通量分析資訊生成器520可以基於與讀取操作相對應的通量與通量限制之間的比較的結果,生成與讀取操作相對應的讀取通量分析資訊。進一步地,通量分析資訊生成器520可以基於與寫入操作相對應的通量與通量限制之間的比較的結果,生成與寫入操作相對應的寫入通量分析資訊。因此,通量分析資訊可以包括與讀取操作相對應的讀取通量分析資訊和與寫入操作相對應的寫入通量分析資訊。
在實施例中,最小性能閾值可以是在特定功能的操作期間防止發生延遲的閾值。通量分析資訊生成器520可以爲多個功能中的每個功能設置最小性能閾值。
通量分析資訊生成器520可以將通量分析資訊提供給延遲時間資訊生成器530。
延遲時間資訊生成器530可以基於通量分析資訊來生成多個功能中的每個功能的延遲時間。此處,延遲時間可以是用於延遲與每個功能相對應的命令提取操作的資訊。
在實施例中,當延遲時間資訊生成器530生成多個功能之中的、所計算的通量超過通量限制的功能的延遲時間時,延遲時間資訊生成器530可以基於所計算的通量與通量限制的超額比來增加功能的延遲時間。例如,延遲時間資訊生成器530可以透過將第一常數值乘以超額比來計算延遲時間增量值。此處,可以根據設置由主機1000來不同地設置第一常數值。延遲時間資訊生成器530可以計算從先前已經生成的功能的前一延遲時間增加了延遲時間增量值的值,作爲與該功能相對應的當前延遲時間。
在實施例中,當延遲時間資訊生成器530生成延遲時間大於初始值的多個功能之中的、所計算的通量不超過通量限制的功能的延遲時間時,延遲時間資訊生成器530可以基於所計算的通量與通量限制的殘差比來減小該功能的延遲時間。在實施例中,延遲時間的初始值可以是“0”。例如,延遲時間資訊生成器530可以透過將第二常數值乘以殘差比來計算延遲時間減量值。此處,可以根據設置由主機1000來不同地設置第二常數值。延遲時間資訊生成器530可以計算從先前已經生成的功能的前一延遲時間減小了延遲時間減量值的值,作爲該功能的當前延遲時間。
在實施例中,延遲時間資訊生成器530可以將多個功能之中的以下功能的延遲時間設置爲初始值:處於空閒狀態的功能以及所計算的通量低於最小性能閾值的功能。因此,那些功能的延遲時間可以被設置爲“0”。
在實施例中,延遲時間可以包括與讀取操作相對應的讀取延遲時間以及與寫入操作相對應的寫入延遲時間。例如,延遲時間資訊生成器530可以基於與讀取操作相對應的讀取通量分析資訊來生成與讀取操作相對應的讀取延遲時間。此外,延遲時間資訊生成器530可以基於與寫入操作相對應的寫入通量分析資訊來生成與寫入操作相對應的寫入延遲時間。
延遲時間資訊生成器530可以將延遲時間提供給命令查找表儲存裝置540。
命令查找表儲存裝置540可以包括命令查找表。此處,命令查找表可以儲存:命令相關資訊,該命令相關資訊包括與待從主機1000提取的目標命令相關的資訊;以及多個功能之中的與目標命令相對應的功能的延遲時間。命令查找表可以儲存針對多個目標命令中的每一個的命令相關資訊。在實施例中,命令相關資訊可以包括每個目標命令在主機1000中儲存的位址、指示相應目標命令是讀取命令還是寫入命令的資訊、被分配給相應目標命令的功能的標識資訊等。
命令查找表儲存裝置540可以從主機1000接收目標命令的命令相關資訊。例如,主機1000可以更新提交隊列頭門鈴(submission queue head doorbell)以請求PCIe裝置500運行目標命令。此處,命令查找表儲存裝置540可以從主機1000接收被請求運行的目標命令的命令相關資訊。
在實施例中,命令查找表儲存裝置540可以透過將延遲時間經過資訊與命令相關資訊相關聯來儲存延遲時間經過資訊。此處,延遲時間經過資訊可以是指示如下內容的資訊:從目標命令的命令相關資訊被儲存在命令查找表中的時間點開始是否已經經過了與目標命令相對應的功能的延遲時間。例如,當目標命令是讀取命令時,可以基於與讀取操作相對應的讀取延遲時間來生成延遲時間經過資訊。當目標命令是寫入命令時,可以基於與寫入操作相對應的寫入延遲時間來生成延遲時間經過資訊。
在實施例中,命令查找表儲存裝置540可以從命令相關資訊被儲存在命令查找表中的時間點開始對時間進行計數,然後可以檢查是否已經經過了延遲時間。例如,當已經經過了功能的延遲時間時,延遲時間經過資訊可以包括指示功能的延遲時間已經到期的資訊。另一方面,當尚未經過功能的延遲時間時,延遲時間經過資訊可以包括指示功能的延遲時間尚未到期的資訊。
命令提取器550可以基於目標命令的命令相關資訊以及與目標命令相對應的功能的延遲時間來從主機1000提取目標命令。
在實施例中,命令提取器550可以基於延遲時間經過資訊來確定是否提取目標命令。例如,當基於延遲時間經過資訊確定從命令相關資訊被儲存在命令查找表中的時間點開始已經經過了相應功能的延遲時間時,命令提取器550可以向主機1000發送提取命令以從主機1000提取目標命令。另一方面,當基於延遲時間經過資訊確定從命令相關資訊被儲存在命令查找表中的時間點開始尚未經過相應功能的延遲時間時,命令提取器550可以延遲對目標命令的命令提取操作。在這種情况下,命令提取器550可以跳過對目標命令的命令提取操作,並且可以對已經經過了延遲時間的另一目標命令執行命令提取操作。
根據本公開的實施例,可以基於指派給各個功能的延遲時間來控制對目標命令的命令提取操作,從而可以迅速且準確地執行對每個功能的性能限制。
根據本公開的實施例,PCIe裝置500的組件可以利用一個或多個處理器以及記憶體或暫存器來實施。
圖6是根據本公開的實施例的用於說明生成延遲時間資訊的操作的曲線圖。
圖6的上部可以指示功能i的延遲時間隨經過的時間的變化。功能i的延遲時間可以由圖5的延遲時間資訊生成器530生成。圖6的下部可以指示功能i的通量隨經過的時間的變化。功能i的通量可以由圖5的通量計算器510生成。
圖6中描述的功能i可以指示圖3所示的多個功能中的一個功能。在圖6中,假設功能i的通量限制被設置爲1 Gb/s並且功能i的最小性能閾值被設置爲200 Mb/s。假設功能i的延遲時間的初始值爲“0”。
在時間T0之前,功能i的通量低於通量限制,因此功能i的延遲時間可以仍爲初始值。
在從時間T0到時間T1的時間段期間,功能i的通量超過通量限制,因此延遲時間資訊生成器530可以基於功能i的所計算的通量與通量限制的超額比來計算延遲時間增量值。因此,功能i的延遲時間可以增加延遲時間增量值。
在從時間T1到時間T2的時間段期間,功能i的通量沒有超過通量限制,但是高於最小性能閾值,因此延遲時間資訊生成器530可以基於功能i的所計算的通量與通量限制的殘差比來計算延遲時間減量值。因此,功能i的延遲時間可以減少延遲時間減量值。
在從時間T2到時間T3的時間段期間,功能i的通量超過通量限制,因此延遲時間資訊生成器530可以基於功能i的所計算的通量與通量限制的超額比來計算延遲時間增量值。因此,功能i的延遲時間可以再次增加延遲時間增量值。
在從時間T3到時間T4的時間段期間,假設重複進行功能i的延遲時間的增加和減少,從而使功能i的延遲時間保持在恆定值。以這種方式,根據本公開的實施例,可以基於各個功能的延遲時間來控制命令提取操作,從而可以迅速且準確地執行對每個功能的性能的限制。
在從時間T4到時間T5的時間段期間,功能i的通量沒有超過通量限制,並且高於最小性能閾值,因此延遲時間資訊生成器530可以基於功能i的所計算的通量與通量限制的殘差比來計算延遲時間減量值。因此,功能i的延遲時間可以再次減少延遲時間減量值。
在時間T5,功能i的通量低於最小性能閾值,因此延遲時間資訊生成器530可以將功能i的延遲時間設置爲初始值。因此,功能i的延遲時間可以是“0”。
在從時間T5到時間T6的時間段期間,當功能i的通量低於通量限制並因此功能i的延遲時間具有初始值時,功能i的延遲時間可以被保持在初始值。也就是說,當延遲時間爲初始值時,在功能i的通量超過通量限制之前,延遲時間不會增加。
在時間T6,功能i的通量超過通量限制,因此延遲時間資訊生成器530可以基於功能i的所計算的通量與通量限制的超額比來計算延遲時間增量值。因此,功能i的延遲時間可以再次增加延遲時間增量值。
圖7示出了根據本公開的實施例的命令提取操作。
參照圖7,命令查找表可以儲存多個目標命令的命令相關資訊以及與命令相關資訊相關聯的延遲時間經過資訊。在圖7中,假設在命令查找表中儲存分別針對五個目標命令CMD1至CMD5的命令相關資訊CMD1 INFO至CMD5 INFO。
圖5的命令提取器550可以基於命令查找表來確定是否要執行對目標命令的命令提取操作。命令提取器550可以在執行命令提取操作的時間點檢查命令查找表中儲存的命令相關資訊和延遲時間經過資訊。基於檢查的結果,命令提取器550可以在與目標命令相對應的延遲時間已經到期時執行對目標命令的命令提取操作,以及可以在延遲時間尚未到期時跳過對目標命令的命令提取操作。
例如,參照圖7,與命令相關資訊CMD1 INFO、CMD4 INFO和CMD5 INFO相關聯地儲存的延遲時間經過資訊可以包括指示相應的延遲時間已經到期的資訊。在這種情况下,命令提取器550可以向主機1000發送提取命令以從主機1000提取第一目標命令CMD1、第四目標命令CMD4和第五目標命令CMD5。
不同於這些目標命令,與命令相關資訊CMD2 INFO和CMD3 INFO相關聯地儲存的延遲時間經過資訊可以包括指示相應的延遲時間尚未到期的資訊。在這種情况下,命令提取器550可以跳過對第二目標命令CMD2和第三目標命令CMD3的命令提取操作。
圖8是示出了根據本公開的實施例的操作PCIe裝置的方法的流程圖。
圖8所示的方法可以由例如圖5所示的PCIe裝置500來執行。
參照圖8,在S801處,PCIe裝置500,例如通量計算器510,可以計算多個功能的通量。
此處,PCIe裝置500,例如通量計算器510,可以基於多個功能中的每個功能的、每單位時間透過在多個功能之間共享的資料路徑處理的交易層資料包的數量來計算該功能對於該資料路徑的占用率。PCIe裝置500,例如通量計算器510,可以基於占用率來計算通量。
在S803處,PCIe裝置500,例如通量分析資訊生成器520,可以基於爲功能中的每個功能設置的通量限制以及針對功能中的每個功能計算的通量來爲多個功能中的每個功能生成通量分析資訊。
在S805處,PCIe裝置500,例如延遲時間資訊生成器530,可以基於通量分析資訊來生成多個功能中的每個功能的延遲時間。
此處,PCIe裝置500,例如延遲時間資訊生成器530,可以基於所計算的通量與通量限制的超額比,來增加多個功能之中的、所計算的通量超過通量限制的功能的延遲時間。
進一步地,PCIe裝置500,例如延遲時間資訊生成器530,可以基於所計算的通量與通量限制的殘差比,來減小延遲時間高於初始值的功能之中的、所計算的通量未超過通量限制的功能的延遲時間。
此外,PCIe裝置500,例如延遲時間資訊生成器530,可以將多個功能之中的如下功能的延遲時間設置爲初始值:處於空閒狀態的功能以及所計算的通量低於最小性能閾值的功能。
在S807處,PCIe裝置500,例如命令查找表儲存裝置540,可以提取包括與待從主機提取的目標命令相關的資訊的命令相關資訊。
在S809處,PCIe裝置500,例如命令查找表儲存裝置540,可以儲存命令相關資訊以及與目標命令相對應的功能的延遲時間。
在S811處,PCIe裝置500,例如命令提取器550,可以基於命令相關資訊以及與目標命令相對應的功能的延遲時間來從主機提取目標命令。
圖9是示出了根據本公開的實施例的提取目標命令的方法的流程圖。
圖9所示的方法可以透過實現圖8所示的S809和S811而獲得。
圖9所示的方法可以由例如圖5所示的PCIe裝置500來執行。
參照圖9,在S901處,PCIe裝置500,例如命令查找表儲存裝置540,可以儲存命令相關資訊。
在S903處,PCIe裝置500,例如命令查找表儲存裝置540,可以與命令相關資訊相關聯地儲存延遲時間經過資訊。
在S905處,PCIe裝置500,例如命令查找表儲存裝置540,可以基於延遲時間經過資訊確定與目標命令相對應的功能的延遲時間是否已經經過或到期。當在S905處確定已經經過了延遲時間時,PCIe裝置500,例如命令提取器550,可以執行S907。
在S907處,PCIe裝置500,例如命令提取器550,可以從主機提取目標命令。
相反,當在S905處確定尚未經過延遲時間時,PCIe裝置500,例如命令提取器550,可以執行S909。
在S909處,PCIe裝置500,例如命令提取器550,可以延遲對目標命令的命令提取操作。
根據本公開,提供了一種能夠限制每個功能的性能的PCIe裝置以及操作PCIe裝置的方法。
100:計算系統
500:PCIe裝置
510:通量計算器
520:通量分析資訊生成器
530:延遲時間資訊生成器
540:命令查找表儲存裝置
550:命令提取器
1000:主機
1010-1:系統影像
1010-2:系統影像
1010-n:系統影像
1020:虛擬化中介
1030:處理器
1040:記憶體
1050:根複合體
1051:根埠
1052:根埠
1060:交換機
2000:PCIe裝置
2000-1:PCIe裝置
2000-2:PCIe裝置
2000-3:PCIe裝置
2100:PCIe介面裝置
2100a:第一PCIe介面裝置
2100b:第二PCIe介面裝置
2200-1:直接記憶體存取(Direct Memory Access, DMA)裝置
2200-n:直接記憶體存取(Direct Memory Access, DMA)裝置
T0:時間
T1:時間
T2:時間
T3:時間
T4:時間
T5:時間
T6:時間
S801:步驟
S803:步驟
S805:步驟
S807:步驟
S809:步驟
S811:步驟
S901:步驟
S903:步驟
S905:步驟
S907:步驟
S909:步驟
[圖1]示出了根據本公開的實施例的計算系統。
[圖2]示出了圖1的主機。
[圖3]示出了圖1的PCIe裝置。
[圖4]示出了圖3的PCIe介面裝置中包括的層的結構。
[圖5]示出了根據本公開的實施例的PCIe裝置。
[圖6]是根據本公開的實施例的用於說明生成延遲時間資訊的操作的曲線圖。
[圖7]示出了根據本公開的實施例的命令提取操作。
[圖8]是示出了根據本公開的實施例的操作PCIe裝置的方法的流程圖。
[圖9]是示出了根據本公開的實施例的提取目標命令的方法的流程圖。
500:PCIe裝置
510:通量計算器
520:通量分析資訊生成器
530:延遲時間資訊生成器
540:命令查找表儲存裝置
550:命令提取器
1000:主機
Claims (20)
- 一種快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)裝置,包括: 通量計算器,計算多個功能中的每個功能的通量; 通量分析資訊生成器,針對所述多個功能中的每個功能,生成指示通量限制與所計算的通量之間的比較的結果的通量分析資訊,所述通量限制是爲所述多個功能中的每個功能而設置的; 延遲時間資訊生成器,基於所述通量分析資訊,針對所述多個功能中的每個功能生成用於延遲命令提取操作的延遲時間; 命令查找表儲存裝置,儲存命令相關資訊和與目標命令相對應的功能的延遲時間,所述命令相關資訊包括與待從主機提取的目標命令相關的資訊;以及 命令提取器,基於所述命令相關資訊和相應功能的延遲時間來從所述主機提取所述目標命令。
- 如請求項1所述的PCIe裝置,其中所述通量計算器基於所述多個功能中的每個功能對於在所述多個功能之間共享的資料路徑的占用率,計算該功能的通量。
- 如請求項2所述的PCIe裝置,其中所述通量計算器基於多個功能中的每個功能的、每單位時間透過所述資料路徑處理的交易層資料包的數量來計算該功能的占用率。
- 如請求項1所述的PCIe裝置,其中所述通量分析資訊生成器從所述主機接收與所述多個功能中的每個功能的通量限制有關的資訊,並基於接收到的與通量限制有關的資訊來設置所述多個功能中的每個功能的通量限制。
- 如請求項1所述的PCIe裝置,其中針對所述多個功能中的每個功能,所述通量分析資訊包括以下中的至少一項:指示所計算的通量是否超過通量限制、所計算的通量與通量限制的超額比、所計算的通量與通量限制的殘差比的資訊;與所述多個功能中的每個功能是否處於空閒狀態有關的資訊;以及與所計算的吐吞量是否低於爲所述多個功能中的每個功能設置的最小性能閾值有關的資訊。
- 如請求項5所述的PCIe裝置,其中當所計算的通量超過通量限制時,所述延遲時間資訊生成器基於所述超額比來增加給定功能的延遲時間,所述給定功能是所述多個功能中的一個功能。
- 如請求項5所述的PCIe裝置,其中當所計算的通量沒有超過通量限制時,所述延遲時間資訊生成器基於所述殘差比來減小給定功能的延遲時間,所述給定功能是所述多個功能之中的、延遲時間高於初始值的功能中的一個功能。
- 如請求項5所述的PCIe裝置,其中所述延遲時間資訊生成器將所述多個功能之中的如下功能的延遲時間設置爲初始值:處於空閒狀態的功能,以及所計算的通量低於最小性能閾值的功能。
- 如請求項1所述的PCIe裝置,其中所述命令查找表儲存裝置儲存延遲時間經過資訊,所述延遲時間經過資訊指示從所述命令相關資訊被儲存在所述命令查找表儲存裝置中的時間點開始是否已經經過了相應功能的延遲時間,所述延遲時間經過資訊與所述命令相關資訊相關聯地儲存。
- 如請求項9所述的PCIe裝置,其中基於所述延遲時間經過資訊,當從所述命令相關資訊被儲存的時間點開始已經經過了相應功能的延遲時間時,所述命令提取器從所述主機提取所述目標命令。
- 如請求項9所述的PCIe裝置,其中基於所述延遲時間經過資訊,當從所述命令相關資訊被儲存的時間點開始尚未經過相應功能的延遲時間時,所述命令提取器延遲對所述目標命令的命令提取操作。
- 如請求項1所述的PCIe裝置,其中: 所計算的通量包括與所述多個功能中的每個功能的讀取操作相對應的讀取通量以及與所述多個功能中的每個功能的寫入操作相對應的寫入通量, 所述通量分析資訊包括與讀取操作相對應的讀取通量分析資訊以及與寫入操作相對應的寫入通量分析資訊,並且 所述延遲時間包括與讀取操作相對應的讀取延遲時間以及與寫入操作相對應的寫入延遲時間。
- 一種操作快速週邊組件互連裝置即PCIe裝置的方法,所述方法包括: 計算多個功能中的每個功能的通量; 針對所述多個功能中的每個功能生成通量分析資訊,所述通量分析資訊指示爲所述多個功能中的每個功能設置的通量限制與所計算的通量之間的比較的結果; 基於所述通量分析資訊,針對所述多個功能中的每個功能生成用於延遲命令提取操作的延遲時間; 提取命令相關資訊,所述命令相關資訊包括與待從主機提取的目標命令相關的資訊;以及 基於所述命令相關資訊以及所述多個功能之中的與所述目標命令相對應的功能的延遲時間,從所述主機提取所述目標命令。
- 如請求項13所述的方法,其中計算所述通量包括: 基於所述多個功能中的每個功能的、每單位時間透過在所述多個功能之間共享的資料路徑處理的交易層資料包的數量來計算該功能對所述資料路徑的占用率;以及 基於所述占用率來計算所述通量。
- 如請求項13所述的方法,其中針對所述多個功能中的每個功能,所述通量分析資訊包括以下中的至少一項:指示所計算的通量是否超過通量限制、所計算的通量與通量限制的超額比、所計算的通量與通量限制的殘差比的資訊;與所述多個功能中的每個功能是否處於空閒狀態有關的資訊;以及與所計算的吐吞量是否低於爲所述多個功能中的每個功能設置的最小性能閾值有關的資訊。
- 如請求項15所述的方法,其中生成所述延遲時間包括: 當所計算的通量超過通量限制時,基於所述超額比來增加給定功能的延遲時間,所述給定功能是所述多個功能中的一個功能。
- 如請求項15所述的方法,其中生成所述延遲時間包括: 當所計算的通量沒有超過通量限制時,基於所述殘差比來減小給定功能的延遲時間,所述給定功能是延遲時間高於初始值的功能中的一個功能。
- 如請求項15所述的方法,其中生成所述延遲時間包括: 將所述多個功能之中的如下功能的延遲時間設置爲初始值:處於空閒狀態的功能,以及所計算的通量低於最小性能閾值的功能。
- 如請求項13所述的方法,進一步包括: 儲存所述命令相關資訊;以及 儲存延遲時間經過資訊,所述延遲時間經過資訊指示從所述命令相關資訊被儲存的時間點開始是否已經經過了與所述目標命令相對應的功能的延遲時間,所述延遲時間經過資訊與所述命令相關資訊相關聯地儲存。
- 如請求項19所述的方法,其中提取所述目標命令包括: 基於所述延遲時間經過資訊,當從所述命令相關資訊被儲存的時間點開始已經經過了與所述目標命令相對應的功能的延遲時間時,從所述主機提取所述目標命令;以及 基於所述延遲時間經過資訊,當從所述命令相關資訊被儲存的時間點開始尚未經過與所述目標命令相對應的功能的延遲時間時,延遲對所述目標命令的命令提取操作。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210035522A KR102529761B1 (ko) | 2021-03-18 | 2021-03-18 | PCIe 디바이스 및 그 동작 방법 |
| KR10-2021-0035522 | 2021-03-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202238399A true TW202238399A (zh) | 2022-10-01 |
Family
ID=83284787
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110145466A TW202238399A (zh) | 2021-03-18 | 2021-12-06 | 快速週邊組件互連裝置及其操作方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11741039B2 (zh) |
| KR (1) | KR102529761B1 (zh) |
| CN (1) | CN115114013A (zh) |
| TW (1) | TW202238399A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI887771B (zh) * | 2023-02-16 | 2025-06-21 | 南韓商三星電子股份有限公司 | 具有擁塞監視器的計算系統及其控制操作的方法 |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12216599B2 (en) * | 2021-03-18 | 2025-02-04 | SK Hynix Inc. | Peripheral component interconnect express (PCIe) device method for delaying command operations based on generated throughput analysis information |
| KR102568906B1 (ko) | 2021-04-13 | 2023-08-21 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
| KR102570943B1 (ko) | 2021-04-13 | 2023-08-28 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
| KR102568909B1 (ko) | 2021-04-13 | 2023-08-21 | 에스케이하이닉스 주식회사 | PCIe 펑션 및 그 동작 방법 |
| US11928070B2 (en) * | 2021-04-13 | 2024-03-12 | SK Hynix Inc. | PCIe device |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003019391A2 (en) | 2001-08-24 | 2003-03-06 | Intel Corporation | A general input/output architecture protocol and related methods to manage data integrity |
| US7500029B2 (en) | 2004-10-29 | 2009-03-03 | Intel Corporation | Maximal length packets |
| US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
| US7287114B2 (en) | 2005-05-10 | 2007-10-23 | Intel Corporation | Simulating multiple virtual channels in switched fabric networks |
| JP4777723B2 (ja) | 2005-08-30 | 2011-09-21 | 株式会社リコー | 情報処理システム、プログラムおよびデータ転送方法 |
| JP4878185B2 (ja) | 2006-03-17 | 2012-02-15 | 株式会社リコー | データ通信回路および調停方法 |
| US7908531B2 (en) | 2006-09-29 | 2011-03-15 | Teradyne, Inc. | Networked test system |
| JP4920638B2 (ja) | 2007-06-01 | 2012-04-18 | インベンチュア株式会社 | Lsiシステムの設計方法及びlsiシステムの設計支援装置 |
| US7877558B2 (en) | 2007-08-13 | 2011-01-25 | Advanced Micro Devices, Inc. | Memory controller prioritization scheme |
| US8130649B2 (en) | 2007-10-18 | 2012-03-06 | Alcatel Lucent | Ingress traffic flow control in a data communications system |
| US7852757B1 (en) | 2009-03-10 | 2010-12-14 | Xilinx, Inc. | Status based data flow control for chip systems |
| US8732339B2 (en) | 2009-03-24 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | NPIV at storage devices |
| US8199759B2 (en) | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
| US8677030B2 (en) * | 2009-12-09 | 2014-03-18 | Oracle America, Inc. | Apparatus and method for managing packet classification tables |
| US8606975B2 (en) | 2010-05-21 | 2013-12-10 | Oracle International Corporation | Managing interrupts in a virtualized input/output device supporting multiple hosts and functions |
| US8510403B2 (en) | 2010-06-30 | 2013-08-13 | Juniper Networks, Inc. | Self clocking interrupt generation in a network interface card |
| US8510521B2 (en) | 2010-09-16 | 2013-08-13 | Apple Inc. | Reordering in the memory controller |
| US20140281053A1 (en) * | 2011-10-28 | 2014-09-18 | Nec Corporation | I/o device control system and method for controlling i/o device |
| US20140237156A1 (en) | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
| CN103098428B (zh) | 2012-10-27 | 2016-03-09 | 华为技术有限公司 | 一种实现pcie交换网络的报文传输方法、设备和系统 |
| US20140281099A1 (en) | 2013-03-14 | 2014-09-18 | Broadcom Corporation | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS |
| KR102387932B1 (ko) | 2014-07-31 | 2022-04-15 | 삼성전자주식회사 | 멀티 포트, 멀티 펑션 PCIe 장치의 호스트 명령어의 QoS 유지 방법 및 그 시스템 |
| US9996484B1 (en) | 2014-09-17 | 2018-06-12 | Amazon Technologies, Inc. | Hardware acceleration for software emulation of PCI express compliant devices |
| KR102238652B1 (ko) | 2014-11-12 | 2021-04-09 | 삼성전자주식회사 | 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법 |
| US9792245B2 (en) * | 2014-12-09 | 2017-10-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Peripheral component interconnect express (PCIe) devices with efficient memory mapping by remapping a plurality of base address registers (BARs) |
| US9740646B2 (en) | 2014-12-20 | 2017-08-22 | Intel Corporation | Early identification in transactional buffered memory |
| US10089275B2 (en) | 2015-06-22 | 2018-10-02 | Qualcomm Incorporated | Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system |
| US10176126B1 (en) | 2015-06-29 | 2019-01-08 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for a PCI implementation handling multiple packets |
| US10606510B2 (en) | 2015-10-29 | 2020-03-31 | Netflix, Inc. | Memory input/output management |
| US10157153B2 (en) | 2016-02-03 | 2018-12-18 | Qualcomm Incorporated | Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems |
| US10621125B2 (en) * | 2016-06-28 | 2020-04-14 | Nec Corporation | Identifier-based packet request processing |
| US10466904B2 (en) * | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
| KR20180114972A (ko) | 2017-04-11 | 2018-10-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| WO2019036217A1 (en) | 2017-08-18 | 2019-02-21 | Missing Link Electronics, Inc. | HETEROGENEOUS TRANSPORT BASED ON PACKETS |
| KR102450514B1 (ko) * | 2017-09-19 | 2022-10-05 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법 |
| CN109656854A (zh) * | 2017-10-12 | 2019-04-19 | 光宝科技股份有限公司 | 固态储存装置的重置电路及其重置方法 |
| US10564857B2 (en) * | 2017-11-13 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for QoS over NVMe virtualization platform using adaptive command fetching |
| US11372580B2 (en) * | 2018-08-07 | 2022-06-28 | Marvell Asia Pte, Ltd. | Enabling virtual functions on storage media |
| US10678478B2 (en) | 2018-08-24 | 2020-06-09 | Apple Inc. | Ordering memory requests based on access efficiency |
| KR102669517B1 (ko) * | 2018-12-14 | 2024-05-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
| US11971861B2 (en) * | 2019-03-15 | 2024-04-30 | Microsoft Technology Licensing, Llc | Providing scalable and concurrent file systems |
| CN112306624B (zh) | 2019-07-31 | 2024-11-22 | 华为技术有限公司 | 一种信息处理方法、物理机和pcie设备 |
| US11431653B2 (en) | 2020-10-20 | 2022-08-30 | Micron Technology, Inc. | Packet arbitration for buffered packets in a network device |
-
2021
- 2021-03-18 KR KR1020210035522A patent/KR102529761B1/ko active Active
- 2021-09-03 US US17/467,078 patent/US11741039B2/en active Active
- 2021-10-18 CN CN202111206762.3A patent/CN115114013A/zh active Pending
- 2021-12-06 TW TW110145466A patent/TW202238399A/zh unknown
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI887771B (zh) * | 2023-02-16 | 2025-06-21 | 南韓商三星電子股份有限公司 | 具有擁塞監視器的計算系統及其控制操作的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220300448A1 (en) | 2022-09-22 |
| US11741039B2 (en) | 2023-08-29 |
| KR20220130518A (ko) | 2022-09-27 |
| KR102529761B1 (ko) | 2023-05-09 |
| CN115114013A (zh) | 2022-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11748278B2 (en) | Multi-protocol support for transactions | |
| US11829309B2 (en) | Data forwarding chip and server | |
| TW202238399A (zh) | 快速週邊組件互連裝置及其操作方法 | |
| EP4086774A1 (en) | Coherent memory system | |
| US11983136B2 (en) | PCIe device and operating method thereof | |
| CN108351829B (zh) | 用于输入/输出计算资源控制的系统和方法 | |
| US10846254B2 (en) | Management controller including virtual USB host controller | |
| US12216599B2 (en) | Peripheral component interconnect express (PCIe) device method for delaying command operations based on generated throughput analysis information | |
| US11995019B2 (en) | PCIe device with changeable function types and operating method thereof | |
| CN108243118A (zh) | 转发报文的方法和物理主机 | |
| TW202240414A (zh) | PCIe功能及其操作方法 | |
| US20250274126A1 (en) | Interface device and method of operating the same | |
| CN104123173B (zh) | 一种实现虚拟机间通信的方法及装置 | |
| US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
| US20250077454A1 (en) | Peripheral component interconnect express device and operating method thereof | |
| WO2023040330A1 (zh) | 数据处理的方法、装置以及系统 |