TW202121879A - 透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法 - Google Patents
透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法 Download PDFInfo
- Publication number
- TW202121879A TW202121879A TW109131501A TW109131501A TW202121879A TW 202121879 A TW202121879 A TW 202121879A TW 109131501 A TW109131501 A TW 109131501A TW 109131501 A TW109131501 A TW 109131501A TW 202121879 A TW202121879 A TW 202121879A
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- virtual bus
- circuit
- memory
- endpoint
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/20—Handling requests for interconnection or transfer for access to input/output 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
- G06F13/225—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling with priority control
-
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
- H04L12/2818—Controlling appliance services of a home automation network by calling their functionalities from a device located outside both the home and the home network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1553—Interconnection of ATM switching modules, e.g. ATM switching fabrics
- H04L49/1561—Distribute and route fabrics, e.g. Batcher-Banyan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
- H04L49/506—Backpressure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Bus Control (AREA)
- Selective Calling Equipment (AREA)
Abstract
在一實施例中,設備包含:端點電路,用以代表主機處理器來執行端點操作;以及輸入/輸出電路,耦接到端點電路,用以從端點電路接收遙測資訊,將遙測資訊編碼為虛擬匯流排編碼,將虛擬匯流排編碼放入至控制訊息的酬載欄內,以及將具有包括虛擬匯流排編碼之酬載欄的控制訊息傳播到上游裝置。其他實施例被描述並主張權益。
Description
本發明是關於一種透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法。
許多電腦系統具有經由不同的互連來耦接在一起的裝置集合。在有些情況中,裝置可以以階層式設置來耦接。在該等系統中,在上游及下游方向中要有效率地路由資訊通常係複雜且困難的。有時候,快捷外設互聯標準(PCIe)鏈路被使用以耦接裝置。為了要在該等系統中提供某些邊帶資訊,可使用PCIe通訊協定的廠商界定訊息。惟,該等訊息會遭受到長的潛時,使它們的使用對於需要即時信令和回應的應用程序而言係無效的。
與
在各種實施例中,裝置可使用虛擬匯流排編碼以傳播諸如遙測資訊的邊帶資訊。此編碼的資訊可以在給定的通訊協定之一或多個鏈路上進行傳播。雖然在本文中的實施方式係以電腦快速鏈路(CXL)為基之通訊協定的情況來描述,但實施例並未受限於此方面,並且可應用於許多其他的通訊協定。
在不同的實施例中,各種邊帶資訊可使用如本文所描述之虛擬匯流排編碼來傳播。一種特定的使用情況係將記憶體頻寬利用率位準從記憶體裝置傳播到計算系統的主機處理器。然後,主機處理器可使用該資訊來執行速率限制,以維持用於不同服務的服務品質位準。在一實施例中,速率限制可藉由節制一或多個記憶體流量的來源來加以執行。請注意的是,虛擬匯流排編碼可被通用地界定,使得它們可以以實施特定的方式來傳輸及闡釋。
實施例可結合各種邊帶資訊的通訊來使用。特定的實施例可用於群集的加速器及/或記憶體擴充器。本文所描述的實例實施例係與諸如依據CXL規格版本1.1之電腦快速鏈路(CXL)規格為基的鏈路有關。在其他實施例中,通訊可依據其他的協同性互連技術,諸如IBM XBus協定、Nvidia NVLink協定、AMD Infinity Fabric協定、用於加速器之快取一致性互連(CCIX)協定或協同加速器處理器介面(OpenCAPI)。
第1圖係依據實施例之系統的方塊圖。在第1圖中,系統100可係任何類型的計算裝置;然而,為說明之目的起見,假設系統100係伺服器系統(或其部分),其中各種裝置可以以網路設置來耦接。
如第1圖中所示,裝置105可係經由互連189來耦接到主機處理器145的加速器、處理器或記憶體裝置,該互連189可係單個互連、匯流排、接觸線、等等。裝置105及主機處理器145可在鏈路189上通訊,以使資料和訊息能在它們之間傳遞。在一些實施例中,鏈路189可操作以支援多種協定,以及經由包括如本文所述之CXL協定的多種互連協定來支援資料和訊息的通訊。例如,鏈路189可支援各種互連協定,包括非協同性互連協定、協同性互連協定、和記憶體互連協定。所支援之互連協定的非限制實例可包括PCI、PCIe、USB、IDI、IOSF、SMI、SMI3、SATA、CXL.io、CXL.cache、和CXL.mem、及/或其類似者。
在實施例中,裝置105可包括加速器邏輯125,該加速器邏輯125包括電路129。在一些情況中,加速器邏輯125及電路129可提供處理和記憶能力。裝置105的實例可包括生產者-消費者裝置,諸如圖形或其他專用的加速器、生產者-消費者加上裝置、軟體輔助裝置記憶體裝置、自主裝置記憶體裝置、及巨型快取裝置。在一些情況中,加速器邏輯125可耦接到可選擇性加速器記憶體130,該加速器記憶體130可以可選擇地實施做為多個記憶體裝置1300
-130n
。加速器邏輯125及電路129可根據裝置來提供處理和記憶能力,諸如圖形功能。例如,加速器邏輯125及電路129可經由介面邏輯113及電路127而使用例如,用於諸如協同性請求和記憶體流之各種功能的協同性互連協定,來與主機處理器145通訊。介面邏輯113及電路127可根據訊息和資料來決定互連協定,以供通訊之用。
此外,電路127可被組構用於以最佳化的方式來處置邊帶通訊。例如,當存在有多個加速器裝置或記憶體耦接在裝置105的下方時,包括內部介面電路128的電路127可從該等裝置接收傳入的訊息,其中諸如遙測資訊的邊帶資訊可藉由如本文所描述之虛擬匯流排編碼來傳播。進而,介面電路128可被組構用以識別代表邊帶資訊之最高值的編碼,且在改變為該最高值時,將該值向上游傳播給主機處理器145。
在一些實施例中,介面邏輯113可耦接到具有一或多個協定隊列112的多重協定多工器110,用於與主機處理器145一起來傳送及接收訊息和資料。協定隊列112可係協定特定的,以致使每個互連協定可以與特定的協定隊列相關聯。多工器110亦可實施仲裁電路,用以在不同協定的通訊之間進行仲裁,並將所選擇的通訊提供給實體層115。
在各種實施例中,主機處理器145可係諸如CPU的主處理器。主機處理器145可耦接到主機記憶體140,且可以包括協同性邏輯(或協同性及快取邏輯)155,其可以包括快取階層。協同性邏輯155可使用各種互連以與包括電路161的介面邏輯163及一或多個核心165a-n通訊。電路161可被組構用以接收具有虛擬匯流排編碼資訊的訊息並將它解碼,例如,用以提供對應的邊帶資訊給一或多個核心165,其可採取適當的行動,諸如執行如本文所述的速率限制。更進一步地,電路161可被組構用以從具有虛擬匯流排編碼的核心165接收訊息,並在下游傳播此資訊以供裝置105或一個或多個下游裝置使用。在一些實施例中,協同性邏輯155可經由協同性互連協定和記憶體互連協定中的一或多個來致能通訊。
在各種實施例中,主機處理器145可包括裝置170,用以在互連上與匯流排邏輯160通訊。在一些實施例中,裝置170可係諸如PCIe I/O裝置的I/O裝置。在其他情況中,諸如PCIe裝置的一或多個外部裝置(其可係I/O裝置190的一個或多個)可以耦接到匯流排邏輯160。
在實施例中,主機處理器145可包括介面邏輯163及電路161,用以在主機處理器145與裝置105的組件之間致能多重協定的通訊。介面邏輯163及電路161可依據例如,非協同性互連協定、協同性互連協定、和記憶體互連協定的一或多個互連協定,而在主機處理器145與裝置105之間動態地處理及致能訊息和資料的通訊。例如,介面邏輯163及電路161可決定用於每個訊息的訊息類型,並決定複數個互連協定中的那一個互連協定以處理該等訊息的每一個。可以利用不同的互連協定來處理訊息。
在一些實施例中,介面邏輯163可以耦接到具有一或多個協定隊列152的多重協定多工器150,用於與裝置105一起來傳送及接收訊息和資料。協定隊列152可係協定特定的,以致使每個互連協定可以與特定的協定隊列相關聯。多工器150亦可實施仲裁電路,用以在不同協定的通訊之間進行仲裁,並將所選擇的通訊提供給實體層154。
在其他情況中,CXL匯流排可用以將加速器以外的裝置類型耦接到主機處理器。例如,在一些情況中,用於主機處理器的記憶體擴充器可以經由CXL匯流排來耦接。
現請參閱第2圖,顯示出依據本發明實施例之系統的方塊圖。在第2圖的實施例中,系統200可係具有經由鏈路225來耦接到記憶體緩衝器230之多核心處理器210的伺服器系統,在實施例中,該鏈路225可係CXL匯流排。依次地,記憶體緩衝器230經由另一個鏈路235來耦接到主機管理的裝置記憶體240,該鏈路235亦可係CXL匯流排。
如圖所示,處理器210包括協同性電路215,其係組構用以維持主機記憶體220(經由鏈路218耦接到主機處理器210)中所儲存的資訊與主機管理的裝置記憶體240中所儲存的資訊之間的協同性。雖然在第2圖的實施例中以此種高層次來顯示,但應理解的是,許多變化例和替代例係可能的。例如,為了記憶體擴充或其他用途的目的,記憶體或其他裝置的階層式設置可耦接在記憶體緩衝器230的下方。
現請參閱第3圖,顯示出依據本發明另一實施例之系統的方塊圖。如第3圖中所示,系統300係另一個伺服器系統,其具有經由CXL匯流排325來耦接到主機處理器310的記憶體裝置之階層式設置。更具體而言,系統300藉由提供多個裝置所耦接的複數個結構交換機3300-2
來使埠能夠擴充。特別地如第3圖中所示,在第一階層層次中,結構交換機3300-1
每個都可具有耦接到其上的複數個端點裝置3400
-3407
。在特定的實施例中,每個端點裝置340可係記憶體裝置,用以提供記憶體擴充能力給系統300。在一些情況中,該等記憶體裝置可以是不同的媒體類型。例如,一些裝置可係給定的揮發性記憶體類型,而另一些裝置可係給定的非揮發性記憶體類型。使用不同虛擬匯流排識別符以供不同記憶體類型之用可以在單一訊息中使得不同記憶體類型的遙測資訊能夠在上游路由。
依次地,此第一階層層次的結構交換機3300-1
耦接到第二階層層次的結構交換機3302
。進一步說明,端點裝置3408
,3409
可以直接耦接到結構交換機3302
。進而,結構交換機3302
經由上游埠來耦接到主機處理器310的下游埠。
依據實施例,多個端點裝置可以有效率地傳播諸如遙測資訊的上游邊帶資訊。結構交換機330可以在每個層次階層地支援來自端點裝置340之虛擬匯流排編碼的聚合。在特定的實施例中,可以將由個別的端點裝置所提供之多個編碼的單個最高編碼從結構交換機3302
的上游埠傳播到主機處理器310的下游埠。進而,源自主機處理器310和在結構交換機3302
的上游埠中所接收的資訊被散播並傳遞到端點裝置340。雖然在第3圖的實施例中以此種高層次來顯示,但是許多變化例和替代例係可能的。
現請參閱第4圖,顯示出依據本發明實施例之方法的流程圖。如第4圖中所示,方法400係用以聚合從多個端點裝置所接收的虛擬匯流排編碼。因此,方法400可由聚合電路所執行,在實施例中可將該聚合電路實施於介面電路內,例如,存在於結構交換機或其他裝置中。從而,方法400可由硬體電路、韌體、軟體、及/或其組合所執行。
如圖所示,方法400藉由從多個端點裝置接收虛擬匯流排編碼來開始(方塊410)。更具體地,在實施例中,結構交換機可以在控制片段或從端點裝置所接收的其他控制訊息內接收多個虛擬匯流排編碼。應注意的是,該等傳入的控制訊息可以從該等裝置非同步地接收。控制接下來轉到方塊420,在方塊420中可維持及/或更新所儲存的虛擬匯流排編碼。更特別地,該結構交換機可以為每個下游裝置提供相關聯的儲存,諸如在向量暫存器或其類似物內的暫存器或欄。因此,在方塊420處,回應於來自給定的下游裝置之所接收的虛擬匯流排編碼,結構交換機可維持與該下游埠相關聯所儲存之虛擬匯流排編碼的當前值,如果該值並未改變的話。反之,如果該值已改變的話,則結構交換機可將所儲存的虛擬匯流排編碼更新為所接收到的值。
仍請參閱第4圖,接下來可以選擇接收的虛擬匯流排編碼中之具有最高值的虛擬匯流排編碼(方塊430)。控制接下來轉到菱形方塊440,在菱形方塊440處決定該所選擇的虛擬匯流排編碼是否與先前所聚合的虛擬匯流排編碼不同。在實施例中,該先前所聚合的虛擬匯流排編碼可儲存於諸如與結構交換機之上游埠相關聯之暫存器的另一個儲存器中。更具體地,該暫存器可儲存最後一次從結構交換機向上游所傳送之最高的虛擬匯流排編碼。如果在菱形方塊440處決定的是,該等編碼不同,則控制轉到方塊450,在方塊450中可以將儲存在上游埠之儲存器中的值更新為該所選擇的值。之後,控制轉到方塊460,在方塊460中可以經由控制片段或其他控制訊息來將該所選擇的虛擬匯流排編碼向上游傳送。取決於此結構交換機在階層中的位置,結構交換機可以將此控制向上游傳送到例如,另一個結構交換機或主機處理器或其他的上游裝置。
否則,如果在菱形方塊440處決定的是,該所選擇的虛擬匯流排編碼與所儲存之先前所聚合的虛擬匯流排編碼並沒有不同,則控制轉到方塊470,在方塊470中,由於虛擬匯流排編碼的最大值並未改變,所以沒有傳送控制片段。結果,減少了鏈路頻寬的消耗。應理解的是,雖然在第4圖的實施例中以此種高層次來顯示,但是許多變化例和替代例係可能的。
現請參閱第5圖,顯示出依據實施例之端點裝置的方塊圖。如第5圖中所示,端點裝置500可係任何類型的端點,諸如計算引擎、記憶體裝置、等等。在任何情況中,裝置500包括端點電路510,諸如給定的處理單元或記憶體媒體。進而,端點電路510耦接到輸入/輸出(I/O)電路520。
在本文的實施例中,假設端點電路510係記憶體裝置,諸如DRAM或非揮發性記憶體裝置。進一步假設的是,此記憶體裝置包括組構用以監視操作、活動位準、等等,並提供例如,以頻寬資訊形式之遙測資訊到輸入/輸出(I/O)電路520的控制電路。
進而,此遙測資訊被提供到輸入/輸出(I/O)電路520內的介面電路525。在本文的實施例中,介面電路525可在編碼器528內將遙測資訊編碼成給定的虛擬匯流排編碼。為此,編碼器528可包括臨限值表或與臨限值表相關聯,使得可以將傳入的遙測資訊與對應的臨限值進行比較。根據遙測資訊所跨越的臨限值,編碼器528可以將遙測資訊(例如,頻寬位準)編碼成對應的虛擬匯流排編碼。
介面電路525可以產生包括此虛擬匯流排編碼之諸如控制片段的控制訊息,例如此虛擬匯流排編碼可放置在該控制訊息的酬載欄內。在本文的實施例中,輸入/輸出(I/O)電路520可被組構用以向上游傳送該控制訊息,例如依據預定的排程或在遙測資訊之變更時。應理解的是,雖然在第5圖的實施例中以此種高層次來顯示,但是許多變化例和替代例係可能的。
現請參閱第6圖,顯示出依據實施例之結構交換機的方塊圖。如第6圖中所示,結構交換機600被組構為用以在多個下游裝置與一個上游裝置之間耦接的交換機,每個連接的該多個下游裝置耦接到不同的下游埠6100-n
,而諸如另一個結構交換機、主機處理器、等等的該一個上游裝置則耦接到上游埠640。
如第6圖中之高層次所示,結構交換機600包括聚合電路620,其係組構用以從下游裝置接收傳入的控制訊息,並聚合訊息中的資訊(諸如,如本文所描述之虛擬匯流排編碼),以向上游傳送單個聚合的編碼。在第6圖的實施例中,聚合電路620包括多個下游埠儲存器6250-n
。在實施例中,每個埠儲存器625可以被實施為暫存器,用以儲存來自相關聯之下游裝置的控制訊息中所接收之虛擬匯流排編碼的當前值。依次地,上游埠儲存器630可以被實施為暫存器,用以儲存最大虛擬匯流排編碼的當前值,亦即,用以儲存向上游所傳播之最後一個編碼的當前值。
當從給定的下游裝置接收到新的虛擬匯流排編碼值時,它被儲存在相關聯的下游埠儲存器625中。如圖所示,聚合電路620進一步包括比較器635,其係組構用以將儲存在上游埠儲存器630中的虛擬匯流排編碼值與儲存在下游埠儲存器625中的該等虛擬匯流排編碼值進行比較,以識別何時發生變更。當識別出變更以致使新的最高值出現時,此新的最高虛擬匯流排編碼值可經由上游埠640來傳送到上游裝置,且亦被儲存在上游埠儲存器630中,做為當前的最高虛擬匯流排編碼值。應理解的是,雖然在第6圖的實施例中以此種高層次來顯示,但是許多變化例和替代例係可能的。
現請參閱第1表,顯示出依據本發明實施例的控制訊息格式。第1表顯示出用於依據CXL為基之通訊協定使用的控制片段格式。在第1表中,控制片段係鏈路層信用(LLCRD)控制片段。此片段可由單個槽所形成,其本身具有16個位元組。如圖所示,存在標頭資訊用以指示該片段類型係信用控制片段,且進一步包括各種欄,用以識別不同通道的信用位準,包括回應通道、請求通道、及資料通道。此外,藉由此控制片段,可傳送各種確認訊息。進一步地依據實施例,提供了兩個不同的虛擬匯流排欄,每個欄可係四個位元。如圖所示,該兩個虛擬匯流排欄都可位於控制片段的8位元酬載部分(亦即,酬載位元[15:9])內。
藉由此種設置,兩個不同類型的端點裝置可以各自地與虛擬匯流排欄之一者相關聯,用以致能對於給定的端點裝置類型之遙測資訊的虛擬匯流排編碼。例如,第一虛擬匯流排欄(Virtual Bus[0])可以與第一類型的記憶體裝置(例如,DRAM)相關聯,以及第二虛擬匯流排欄(Virtual Bus[1])可以與第二類型的記憶體裝置(例如,非揮發性記憶體)相關聯。因此,藉由此種設置,單個控制片段可以傳播用於兩個不同裝置類型的虛擬匯流排編碼。當然,可提供附加的虛擬匯流排欄,每個虛擬匯流排欄與給定的裝置類型相關聯。
現請參閱第2表,顯示出虛擬匯流排編碼之時序聚合的圖例。如圖所示,假設裝置係耦接到交換機結構。第2表顯示出複數個時刻T0-T5。在該等時刻的每個時刻,每個裝置具有對應於給定虛擬匯流排編碼的給定局部邏輯狀態。在實施例中,此局部邏輯狀態可對應於給定的頻寬位準。以4位元虛擬匯流排編碼,最多可編碼16個不同的頻寬位準。
在第2表中,請注意的是,在每個時刻的瞬間,都會凸顯單個裝置的虛擬匯流排編碼,指示不同虛擬匯流排編碼的最大編碼值。在實施例中,交換機結構可包括下游埠儲存器,例如暫存器,用以儲存該等不同的值。此外,該交換機結構可包括上游埠儲存器,例如另一個暫存器,用以儲存該等不同編碼的最大值。且如上文所述地,該交換機結構可被組構成在最大虛擬匯流排編碼變更時,用以經由如本文所述的控制片段來向上游傳播該資訊。因此,在第2表的實施例中,交換機埠可在時刻T0、T2、T3、T4、及T5向上游傳送控制片段訊息。
如上文所述,在某些使用情況中,可以提供連接在交換機結構後面的多個裝置埠擴充能力。在該等設置中,諸如上文在第3圖中所示,可向上游傳播單個聚合的總體編碼以識別特定的局部邏輯狀態變更。
現請參閱第7圖,顯示出依據實施例來說明虛擬匯流排編碼聚合的系統方塊圖。如第7圖中所示,系統300’可以與第3圖中的相同。惟,應注意的是,在此實例中的每個端點裝置係向上游傳播虛擬匯流排編碼。
在以頻寬資訊的形式來向上游提供遙測資訊的實施例中,主機處理器或其他上游代理者可以執行速率計量。為此,主機處理器或其他上游代理者可節制一或多個流量源以有效管理平台服務品質。
藉由此種設置,結構交換機330操作用以聚合來自其下游連接之端點裝置340的虛擬匯流排編碼。以第7圖中所示的虛擬匯流排編碼,結構交換機3300
可向上游傳送四個所接收之虛擬匯流排編碼中的最大一個到結構交換機3302
。進而,結構交換機3301
亦可向上游傳送四個所接收之虛擬匯流排編碼中的最大一個到結構交換機3302
。在該階層式設置的下一個層次,結構交換機3302
向上游傳送對應於從階層中之各種裝置所呈現的最高編碼值之單個虛擬匯流排編碼到主機處理器310。
請注意的是,以此種設置,當且僅當在聚合的虛擬匯流排編碼中有所變更時,結構交換機3302
才會將稱作總體邏輯狀態變更的狀態變更傳送給主機處理器310。當一或多個局部邏輯狀態中的變更並不會影響到最大聚合的虛擬匯流排編碼時,無需傳送另一個控制訊息,因為沒有新的總體狀態變更可傳播。
如第7圖中所示,主機處理器310包括複數個核心312。在本文的實施例中,該等核心的至少一個可包括速率限制器314,其可實施成硬體電路。速率限制器314可被組構用以當決定所給定記憶體裝置類型的所接收虛擬匯流排編碼超出極限臨限值時,節制一或多個記憶體流量源。
現請參閱第8圖,顯示出依據本發明另一實施例之方法的流程圖。如第8圖中所示,方法800係用以至少部分地根據從多個端點裝置所接收之聚合的虛擬匯流排編碼來執行速率限制的方法。因此,方法800可藉由速率限制器電路來執行,在實施例中該速率限制器電路可被實施於處理器核心內。從而,方法800可藉由硬體電路、韌體、軟體、及/或其組合來執行。
如圖所示,方法800開始於從下游裝置接收聚合的虛擬匯流排編碼資訊(方塊810)。例如,主機處理器可在控制片段的一或多個虛擬匯流排欄中接收聚合的虛擬匯流排編碼。因此,在方塊820,主機處理器(例如,給定的處理器核心)可以為所選擇虛擬匯流排欄識別虛擬匯流排編碼。假設有兩個虛擬匯流排欄的實施方式,每個虛擬匯流排欄與給定的記憶體類型相關聯。在方塊820,為第一虛擬匯流排欄識別第一虛擬匯流排編碼。接下來,在方塊830決定此虛擬匯流排編碼是否超過極限臨限值。如果是,則控制轉到方塊840,其中速率限制器可以對記憶體類型執行一或多個流量來源的速率限制。例如,速率限制器可致使核心節制記憶體流量的來源,例如藉由減少記憶體請求流,等等。
仍請參閱第8圖,如果相反地決定的是,虛擬匯流排編碼並未超過極限臨限值時,則控制轉到菱形方塊850,其中決定先前的速率限制是否有效。如果沒有,則控制轉到菱形方塊880以決定在所接收到的控制片段中是否存在附加的虛擬匯流排欄。如果是,則控制返回到上文所述的方塊820。否則,方法結束。
仍請參閱第8圖,如果在菱形方塊850決定的是,存在有效的先前速率限制時,則控制轉到菱形方塊860以決定遲滯周期是否已經完成。此遲滯周期可用以防止速率限制與不限制之間的頻繁切換。如果決定的是,遲滯周期已經完成時,則控制轉到方塊870,其中可終止速率限制。應理解的是,雖然在第8圖的實施例中以此種高層次來顯示,但是許多變化例和替代例係可能的。
實施例可以以多種互連結構來實施。請參閱第9圖,顯示出由互連一組組件的點對點鏈路所組成之結構的實施例。系統900包括耦接到控制器集線器915的處理器905和系統記憶體910。處理器905包括任何處理元件,諸如微處理器、主機處理器、嵌入式處理器、共處理器、或其他處理器。處理器905係透過前端匯流排(FSB)906來耦接到控制器集線器915。在一實施例中,前端匯流排(FSB)906係串聯點對點互連。在實施例中,處理器905(或系統900的其他組件)可以以一或多個整合電路來實施,該整合電路可藉由虛擬匯流排編碼來傳播邊帶資訊,如本文所描述地。
系統記憶體910包括任何記憶體裝置,諸如隨機存取記憶體(RAM)、非揮發性(NV)記憶體、或可由系統900中的裝置所存取的其他記憶體。系統記憶體910係透過記憶體介面916來耦接到控制器集線器915。記憶體介面的實例包括雙倍資料速率(DDR)記憶體介面、雙通道DDR記憶體介面、及動態RAM(DRAM)記憶體介面。
在一實施例中,控制器集線器915係PCIe互連階層中的根集線器、根複合體、或根控制器。控制器集線器915的實例包括晶片組、記憶體控制器集線器(MCH)、北橋、互連控制器集線器(ICH)、南橋、及根控制器/集線器。術語晶片組通常意指兩個實體分離的控制器集線器,亦即,耦接到互連控制器集線器(ICH)的記憶體控制器集線器(MCH)。請注意的是,當前的系統通常包括與處理器905整合的MCH,而控制器915將以如下文所述的類似方式來與I/O裝置通訊。在一些實施例中,可選擇地透過根複合器915來支援同級間路由。
在此,控制器集線器915係透過串聯鏈路919來耦接到交換機/橋920。亦可被稱作介面/埠917及921的輸入/輸出模組917及921包括/實施分層協定堆疊,用以在控制器集線器915與交換機920之間提供通訊。在一實施例中,多個裝置能夠耦接到交換機920。
交換機/橋920將封包/訊息從裝置925向上游地路由,亦即,朝著根複合體的階層向上地,到控制器集線器915以及向下游地,亦即,從根控制器的階層向下地,從處理器905或系統記憶體910到裝置925。在一實施例中,交換機920被稱作多個虛擬PCI對PCI橋接裝置的邏輯組合。裝置925包括要耦接到電子系統之任何內部或外部的裝置或組件,諸如例如,可經由I3C或CXL匯流排來耦接的I/O裝置、網路介面控制器(NIC)、附加卡、音頻處理器、網路處理器、記憶體擴充器、硬碟驅動器、儲存裝置、CD/DVD ROM、監視器、印表機、滑鼠、鍵盤、路由器、攜帶式儲存裝置、火線裝置、通用串聯匯流排(USB)裝置、掃描器、及其他輸入/輸出裝置。
圖形加速器930亦係透過串聯鏈路932來耦接到控制器集線器915。在一實施例中,圖形加速器930耦接到MCH,MCH係耦接到ICH。交換機920,且因而,I/O裝置925則耦接到ICH。I/O模組931及918亦實施分層協定堆疊,用以在圖形加速器930與控制器集線器915之間進行通訊。圖形控制器或圖形加速器930本身可被整合於處理器905中。
接下來請翻閱第10圖,描繪了依據實施例之SoC(系統單晶片)設計的實施例。做為特定的說明性實例,可以將SoC 1000組構成插入於從攜帶式裝置到伺服器系統之任何類型的計算裝置中。在此,SoC 1000包括兩個核心1006及1007。核心1006及1007可符合指令集架構,諸如Intel® Architecture CoreTM
為基的處理器、Advanced Micro Devices,Inc.(AMD)處理器、MIPS為基的處理器、ARM為基的處理器設計、或其客戶、以及它們的許可或轉接器。核心1006及1007耦接到快取控制器1008,其係與匯流排介面單元1009和L2快取1010相關聯,用以經由互連1012與系統1000的其他部件進行通訊。
互連1012提供通訊通道給其他組件,諸如用於與SIM卡介面的用戶身份模組(SIM)1030、用以保持核心1006及1007之執行的啟動碼以初始化及啟動SoC 1000的啟動ROM 1035、用於與外部記憶體(例如,DRAM 1060)介面的SDRAM控制器1040、用於與非揮發性記憶體(例如,快閃1065)介面的快閃控制器1045、用於與周邊設備介面的周邊控制器1050(例如,eSPI介面)、用以顯示和接收輸入(例如,觸控輸入)的視頻編碼解碼器1020及視頻介面1025、用以執行圖形相關計算的GPU 1015、等等。在實施例中,互連1012可被組構用以傳播具有虛擬匯流排編碼的封包,如本文所描述地。此外,系統說明了用於通訊的周邊設備,諸如藍牙模組1070、3G數據機1075、GPS 1080、及WiFi 1085。而且,在系統中所包括的係功率控制器1055。進一步地,在第10圖中所描繪的是,系統1000可額外地包含介面,包括例如,用於顯示的MIPI介面1092及/或HDMI介面1095,並且它們可以耦接到相同或不同的顯示器。
現請參閱第11圖,顯示出依據本發明實施例之系統的方塊圖。如第11圖中所示,微處理器系統1100包括經由點對點互連1150來耦接的第一處理器1170及第二處理器1180。如第11圖中所示,處理器1170及處理器1180的每一個可係許多核心處理器,包括代表性的第一及第二處理器核心(亦即,處理器核心1174a及1174b以及處理器核心1184a及1184b)。在實施例中,處理器1170及1180以及其他的組件可經由互連來耦接,該等互連可藉由運用虛擬匯流排編碼來實現減少的通訊頻寬,如本文所描述地。
仍請參閱第11圖,第一處理器1170進一步包括記憶體控制器集線器(MCH)1172以及點對點(P-P)介面1176及1178。同樣地,第二處理器1180包括MCH 1182以及P-P介面1186及1188。如第11圖中所示,MCH 1172及1182耦接該等處理器到各自的記憶體,亦即,記憶體1132和記憶體1134,其可係局部連接到各自處理器之系統記憶體(例如,DRAM)的一部分。第一處理器1170及第二處理器1180可經由P-P互連1162及1164而分別耦接到晶片組1190。如第11圖中所示,晶片組1190包括P-P介面1194及1198。
再者,晶片組1190包括介面1192,用以藉由P-P互連1139來將晶片組1190與高性能圖形引擎1138耦接。如第11圖中所示,各種輸入/輸出(I/O)裝置1114可以與將第一匯流排1116耦接到第二匯流排1120的匯流排橋1118一起耦接到第一匯流排1116。各種裝置可以耦接到第二匯流排1120,包括例如,鍵盤/滑鼠1122、通訊裝置1126、及諸如碟片驅動器或其他大容量儲存裝置的資料儲存單元1128,在一實施例中,資料儲存單元1128可包括代碼1130。進一步地,音頻I/O 1124可以耦接到第二匯流排1120。
以下實例屬於進一步的實施例。
在一實例中,設備包括:端點電路,用以代表主機處理器來執行端點操作;以及輸入/輸出(I/O)電路,耦接到該端點電路。該輸入/輸出(I/O)電路可包括介面電路,用以從該端點電路接收遙測資訊,將該遙測資訊編碼為虛擬匯流排編碼,並將該虛擬匯流排編碼放入至控制訊息的酬載欄內。該輸入/輸出(I/O)電路係可用以將具有包括該虛擬匯流排編碼的該酬載欄之該控制訊息傳播到上游裝置。
在實例中,該遙測資訊包含該端點電路的頻寬資訊,且該端點電路包含第一媒體類型的記憶體裝置,其中該記憶體裝置係記憶體擴充器的一部分。
在實例中,該記憶體擴充器進一步包含至少一個第二媒體類型的其他記憶體裝置,用以將第二遙測資訊編碼為第二虛擬匯流排編碼,並將該第二虛擬匯流排編碼放入至該控制訊息的該酬載欄的不同部分內。
在實例中,當該頻寬資訊係小於第一臨限值時,該介面電路用以將該遙測資訊編碼為具有第一值的該虛擬匯流排編碼。
在實例中,當該頻寬資訊係大於該第一臨限值時,該介面電路用以將該遙測資訊編碼為具有第二值的該虛擬匯流排編碼。
在實例中,該介面電路包含編碼器,用以將該遙測資訊編碼為該虛擬匯流排編碼。
在實例中,該輸入/輸出(I/O)電路係用以從該上游裝置接收第二控制訊息,該第二控制訊息具有第二虛擬匯流排編碼,以及該介面電路係用以解碼該第二虛擬匯流排編碼,並提供所解碼的控制訊息到該端點電路,以使該端點電路執行至少一項操作。
在實例中,該輸入/輸出(I/O)電路係用以回應於該端點電路的邏輯狀態改變,而非同步地傳播該控制訊息。
在實例中,該控制訊息包含通訊協定的控制片段。
在實例中,該控制片段包含鏈路層控制片段。
在另一實例中,方法包含:在結構交換機中接收複數個控制訊息,該複數個控制訊息的每個係從耦接到該結構交換機的下游裝置接收;從該複數個控制訊息的每一個提取編碼,該編碼係與對應的該下游裝置的遙測資訊相關聯;選擇具有最高編碼值的該編碼;以及回應於決定所選擇的該編碼不同於所傳送至耦接到該結構交換機的上游裝置的先前編碼,將所選擇的該編碼傳送到該上游裝置。
在實例中,該方法進一步包含當所選擇的該編碼與儲存在該結構交換機的儲存器中之所儲存的編碼並沒有不同時,防止傳送所選擇的該編碼,所儲存的該編碼包含該先前編碼。
在實例中,該方法進一步包含當所選擇的該編碼與所儲存的該編碼不同時,將所選擇的該編碼儲存在該儲存器中。
在實例中,該方法進一步包含在通訊協定的控制訊息內將所選擇的該編碼傳送到該上游裝置。
在實例中,該方法進一步包含在該控制訊息內傳送複數個編碼到該上游裝置,該複數個編碼的每一個係與不同類型的下游裝置相關聯。
在另一實例中,包括指令的電腦可讀取媒體係用以執行上述該等實例之任一者的該方法。
在進一步的實例中,包括資料的電腦可讀取媒體將由至少一機器所使用以製造至少一種積體電路,用以執行上述該等實例之任一者的該方法。
在仍進一步的實例中,設備包含裝置,用以執行上述該等實例之任一者的該方法。
在另一實例中,系統包含:主機處理器,具有複數個核心及一個下游埠,該複數個核心的至少一個包含速率限制器,用以至少部分地根據在該下游埠中所接收的虛擬匯流排編碼來控制記憶體流量的來源。該系統可進一步包括結構交換機,經由第一互連來耦接到該主機處理器的該下游埠。該結構交換機包括聚合電路,用以:從耦接到該結構交換機的複數個端點裝置的至少一些者來接收複數個控制訊息;從該複數個控制訊息的每一個提取虛擬匯流排編碼,該虛擬匯流排編碼係與對應的該端點裝置的遙測資訊相關聯;選擇具有最高值的該虛擬匯流排編碼;以及傳送具有該最高值的該虛擬匯流排編碼到該主機處理器。該系統亦可包括耦接到該結構交換機的該複數個端點裝置。該複數個端點裝置的該至少一些者包含輸入/輸出(I/O)電路,用以接收關於該端點裝置的遙測資訊,將該遙測資訊編碼為虛擬匯流排編碼,並將包括該虛擬匯流排編碼的該控制訊息傳送到該結構交換機。
在實例中,該遙測資訊包含第一媒體類型之記憶體裝置的頻寬資訊,其中該記憶體裝置係記憶體擴充器的一部分。
在實例中,該記憶體擴充器進一步包含至少一個第二媒體類型的其他記憶體裝置,該至少一個該第二媒體類型的其他記憶體裝置用以將第二遙測資訊編碼為第二虛擬匯流排編碼,且其中該速率限制器係用以不至少部分地根據該第二虛擬匯流排編碼來節制針對該第一媒體類型的第一記憶體流量來源,而是至少部分地根據該第二虛擬匯流排編碼來節制針對該第二媒體類型的第二記憶體流量來源。
在實例中,該輸入/輸出(I/O)電路係用以當頻寬資訊係小於第一臨限值時,將包含該頻寬資訊的該遙測資訊編碼為具有第一值的該虛擬匯流排編碼,以及當該頻寬資訊係大於該第一臨限值時,將該遙測資訊編碼為具有第二值的該虛擬匯流排編碼。
在實例中,該複數個端點裝置的至少一些者係用以非同步地傳送該複數個控制訊息,以及該聚合電路係用於僅當具有該最高值的變更時才將具有該最高值的該虛擬匯流排編碼傳送到該主機處理器。
應理解的是,上述該等實例的各種組合係可能的。
請注意的是,術語“電路(circuit)”及“電路(circuitry)”係在本文中可互換地使用。如本文所使用地,該等術語及術語“邏輯”係用於單獨地或以任何組合來意指類比電路、數位電路、硬接線電路、可編程電路、處理器電路、微控制器電路、硬體邏輯電路、狀態機電路、及/或任何其他類型的實體硬體組件。實施例可用於許多不同類型的系統。例如,在一實施例中,可將通訊裝置設置成用以執行本文所描述的各種方法和技術。當然,本發明的範疇並未受限於通訊裝置,且相反地,其他實施例可針對用以處理指令之其他類型的設備,或包括回應於在計算裝置上被執行的指令之一或多個機器可讀取媒體,以致使裝置實現本文所描述之一或多種方法和技術。
實施例可以以代碼來實施,並且可以儲存在具有指令儲存於其上的非暫態儲存媒體上,該等指令可用於編程系統以執行指令。實施例亦可以以資料來實施,並且可以儲存在非暫態儲存媒體上,該非暫態儲存媒體如果由至少一機器所使用時,則致使該至少一機器製造至少一種積體電路以執行一或多項操作。仍進一步的實施例可以在電腦可讀取儲存媒體中實施,該電腦可讀取儲存媒體包括當製造成SoC或其他處理器時用以組構該SoC或該其他處理器來執行一或多項操作的資訊。該儲存媒體可包括,但是並不受限於,包括磁盤、光碟、固態驅動器(SSD)、小型碟片唯讀記憶體(CD-ROM)、可讀寫小型碟片(CD-RW)、及磁光碟之任何類型的碟片,諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可程式唯讀記憶體(EPROM)、快閃記憶體、電子可抹除可程式化唯讀記憶體(EEPROM)、磁性或光學卡之隨機存取記憶體(RAM)的半導體裝置,或是用以儲存電子指令之任何其他類型的媒體。
雖然本發明已相對於有限數量的實施例來描述,但是熟習於本項技藝之該等人士將理解其中的許多修正例和變化例。所打算的是,附錄的申請專利範圍涵蓋落在本發明之真正精神和範圍內的所有該等修正例和變化例。
100,200,300,300’,900:系統
105,170,925:裝置
110,150:多重協定多工器
112,152:協定隊列
113,163:介面邏輯
115,154:實體層
125:加速器邏輯
127,129,161:電路
128,525:介面電路
1300
-130n
:加速器記憶體
140,220,310:主機記憶體
145:主機處理器
155:協同性邏輯
160:匯流排邏輯
165a-n:核心
189,1012:互連
190,1114,1132,1134:I/O裝置
210,905,1170,1180:處理器
215:協同性電路
218,225,235:鏈路
230:記憶體緩衝器
240:主機管理的裝置記憶體
314:速率限制器
325:CXL匯流排
3300-2
,600:結構交換機
3400
-3409
,500:端點裝置
400,800:方法
510:端點電路
520:I/O電路
528:編碼器
6100-n
:下游埠
620:聚合電路
6250-n
:下游埠儲存器
630:上游埠儲存器
635:比較器
640:上游埠
906:前端匯流排
910:系統記憶體
915:控制器集線器
917,921:輸入/輸出模組
918,931:I/O模組
919:串聯鏈路
920:交換機
930:圖形加速器
1000:系統單晶片
1006,1007,1174a,1174b,1184a,1184b:處理器核心
1008:快取控制器
1009:匯流排介面單元
1010:L2快取
1020:視頻編碼解碼器
1025:視頻介面
1030:用戶身份模組
1035:啟動ROM
1040:SDRAM控制器
1045:快閃控制器
1050:周邊控制器
1055:功率控制器
1060:外部記憶體
1070:藍牙模組
1075:3G數據機
1100:微處理器系統
1116,1120:匯流排
1118:匯流排橋
1122:鍵盤/滑鼠
1124:音頻I/O
1126:通訊裝置
1128:資料儲存單元
1130:代碼
1172:記憶體控制器集線器
1176,1178,1186,1188:P-P介面
1190:晶片組
1192:介面
[第1圖]係依據實施例之系統的方塊圖。
[第2圖]係依據本發明實施例之系統的方塊圖。
[第3圖]係依據本發明另一實施例之系統的方塊圖。
[第4圖]係依據本發明實施例之方法的流程圖。
[第5圖]係依據本發明實施例之端點裝置的方塊圖。
[第6圖]係依據實施例之結構交換機的方塊圖。
[第7圖]係依據實施例之說明虛擬匯流排編碼聚合的系統方塊圖。
[第8圖]係依據本發明另一實施例之方法的流程圖。
[第9圖]係由互連一組組件的點對點鏈路所組成之結構的實施例。
[第10圖]係依據實施例之系統單晶片設計的實施例。
[第11圖]係依據本發明實施例之系統的方塊圖。
100:系統
105,170:裝置
110,150:多重協定多工器
112,152:協定隊列
113,163:介面邏輯
115,154:實體層
125:加速器邏輯
127,129,161:電路
128:介面電路
1300-130n:加速器記憶體
140:主機記憶體
145:主機處理器
155:協同性邏輯
160:匯流排邏輯
165a-n:核心
189:互連
Claims (20)
- 一種設備,包含: 端點電路,用以代表主機處理器來執行端點操作;以及 輸入/輸出(I/O)電路,耦接到該端點電路,該輸入/輸出(I/O)電路包括介面電路,用以從該端點電路接收遙測資訊,將該遙測資訊編碼為虛擬匯流排編碼,並將該虛擬匯流排編碼放入至控制訊息的酬載欄內,其中該輸入/輸出(I/O)電路係用以將具有包括該虛擬匯流排編碼的該酬載欄之該控制訊息傳播到上游裝置。
- 如請求項1之設備,其中該遙測資訊包含該端點電路的頻寬資訊,該端點電路包含第一媒體類型的記憶體裝置,其中該記憶體裝置係記憶體擴充器的一部分。
- 如請求項2之設備,其中該記憶體擴充器進一步包含至少一個第二媒體類型的其他記憶體裝置,該至少一個該第二媒體類型的其他記憶體裝置用以將第二遙測資訊編碼為第二虛擬匯流排編碼,並將該第二虛擬匯流排編碼放入至該控制訊息的該酬載欄的不同部分內。
- 如請求項2之設備,其中當該頻寬資訊係小於第一臨限值時,該介面電路用以將該遙測資訊編碼為具有第一值的該虛擬匯流排編碼。
- 如請求項4之設備,其中當該頻寬資訊係大於該第一臨限值時,該介面電路用以將該遙測資訊編碼為具有第二值的該虛擬匯流排編碼。
- 如請求項1之設備,其中該介面電路包含編碼器,用以將該遙測資訊編碼為該虛擬匯流排編碼。
- 如請求項1之設備,其中該輸入/輸出(I/O)電路係用以從該上游裝置接收第二控制訊息,該第二控制訊息具有第二虛擬匯流排編碼,且其中該介面電路係用以解碼該第二虛擬匯流排編碼,並提供所解碼的控制訊息到該端點電路,以使該端點電路執行至少一項操作。
- 如請求項1之設備,其中該輸入/輸出(I/O)電路係用以回應於該端點電路的邏輯狀態改變,而非同步地傳播該控制訊息。
- 如請求項1之設備,其中該控制訊息包含通訊協定的控制片段。
- 如請求項9之設備,其中該控制片段包含鏈路層控制片段。
- 一種至少一個的電腦可讀取儲存媒體,具有儲存於其上的指令,該等指令如果由機器所執行時,則致使該機器執行一種方法,該方法包含: 在結構交換機中接收複數個控制訊息,該複數個控制訊息的每個係從耦接到該結構交換機的下游裝置接收; 從該複數個控制訊息的每一個提取編碼,該編碼係與對應的該下游裝置的遙測資訊相關聯; 選擇具有最高編碼值的該編碼;以及 回應於決定所選擇的該編碼不同於所傳送至耦接到該結構交換機的上游裝置的先前編碼,將所選擇的該編碼傳送到該上游裝置。
- 如請求項11之至少一個的電腦可讀取儲存媒體,其中該方法進一步包含當所選擇的該編碼與儲存在該結構交換機的儲存器中之所儲存的編碼並沒有不同時,防止傳送所選擇的該編碼,所儲存的該編碼包含該先前編碼。
- 如請求項12之至少一個的電腦可讀取儲存媒體,其中該方法進一步包含當所選擇的該編碼與所儲存的該編碼不同時,將所選擇的該編碼儲存在該儲存器中。
- 如請求項11之至少一個的電腦可讀取儲存媒體,其中該方法進一步包含在通訊協定的控制訊息內將所選擇的該編碼傳送到該上游裝置。
- 如請求項11之至少一個的電腦可讀取儲存媒體,其中該方法進一步包含在該控制訊息內傳送複數個編碼到該上游裝置,該複數個編碼的每一個係與不同類型的下游裝置相關聯。
- 一種系統,包含: 主機處理器,具有複數個核心及一個下游埠,該複數個核心的至少一個包含速率限制器,用以至少部分地根據在該下游埠中所接收的虛擬匯流排編碼來控制記憶體流量的來源; 結構交換機,經由第一互連來耦接到該主機處理器的該下游埠,該結構交換機包括聚合電路,其中該聚合電路係用以: 從耦接到該結構交換機的複數個端點裝置的至少一些者來接收複數個控制訊息; 從該複數個控制訊息的每一個提取虛擬匯流排編碼,該虛擬匯流排編碼係與對應的該端點裝置的遙測資訊相關聯; 選擇具有最高值的該虛擬匯流排編碼;以及 傳送具有該最高值的該虛擬匯流排編碼到該主機處理器;以及 該複數個端點裝置耦接到該結構交換機,其中該複數個端點裝置的該至少一些者包含: 輸入/輸出(I/O)電路,用以接收關於該端點裝置的遙測資訊,將該遙測資訊編碼為虛擬匯流排編碼,並將包括該虛擬匯流排編碼的該控制訊息傳送到該結構交換機。
- 如請求項16之系統,其中該遙測資訊包含第一媒體類型之記憶體裝置的頻寬資訊,其中該記憶體裝置係記憶體擴充器的一部分。
- 如請求項17之系統,其中該記憶體擴充器進一步包含至少一個第二媒體類型的其他記憶體裝置,該至少一個該第二媒體類型的其他記憶體裝置用以將第二遙測資訊編碼為第二虛擬匯流排編碼,且其中該速率限制器係用以不至少部分地根據該第二虛擬匯流排編碼來節制針對該第一媒體類型的第一記憶體流量來源,而是至少部分地根據該第二虛擬匯流排編碼來節制針對該第二媒體類型的第二記憶體流量來源。
- 如請求項17之系統,其中該輸入/輸出(I/O)電路係用以當頻寬資訊係小於第一臨限值時,將包含該頻寬資訊的該遙測資訊編碼為具有第一值的該虛擬匯流排編碼,以及當該頻寬資訊係大於該第一臨限值時,將該遙測資訊編碼為具有第二值的該虛擬匯流排編碼。
- 如請求項17之系統,其中該複數個端點裝置的至少一些者係用以非同步地傳送該複數個控制訊息,以及該聚合電路係用於僅當具有該最高值的變更時才將具有該最高值的該虛擬匯流排編碼傳送到該主機處理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/659,660 | 2019-10-22 | ||
US16/659,660 US11816052B2 (en) | 2019-10-22 | 2019-10-22 | System, apparatus and method for communicating telemetry information via virtual bus encodings |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202121879A true TW202121879A (zh) | 2021-06-01 |
Family
ID=69405964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109131501A TW202121879A (zh) | 2019-10-22 | 2020-09-14 | 透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11816052B2 (zh) |
EP (1) | EP3812911A3 (zh) |
CN (1) | CN112698909A (zh) |
TW (1) | TW202121879A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210311897A1 (en) | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | Memory with cache-coherent interconnect |
US11360701B1 (en) * | 2020-05-04 | 2022-06-14 | Meta Platforms, Inc. | Memory and storage controller with integrated memory coherency interconnect |
KR20220056986A (ko) * | 2020-10-29 | 2022-05-09 | 삼성전자주식회사 | 메모리 확장기, 이종 컴퓨팅 장치, 및 이종 컴퓨팅 장치의 동작 방법 |
US11750457B2 (en) * | 2021-07-28 | 2023-09-05 | Dell Products L.P. | Automated zoning set selection triggered by switch fabric notifications |
US20230236992A1 (en) * | 2022-01-21 | 2023-07-27 | Arm Limited | Data elision |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307868B1 (en) * | 1995-08-25 | 2001-10-23 | Terayon Communication Systems, Inc. | Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops |
US7613864B2 (en) | 2005-04-22 | 2009-11-03 | Sun Microsystems, Inc. | Device sharing |
US7916750B2 (en) | 2005-12-28 | 2011-03-29 | Intel Corporation | Transaction layer packet compression |
JP4768564B2 (ja) | 2006-09-28 | 2011-09-07 | 富士通セミコンダクター株式会社 | データ転送装置 |
IN2013CH01005A (zh) | 2013-03-08 | 2015-08-14 | Lsi Corp | |
US9661657B2 (en) * | 2013-11-27 | 2017-05-23 | Intel Corporation | TCP traffic adaptation in wireless systems |
US9628382B2 (en) * | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US9552253B2 (en) * | 2014-09-24 | 2017-01-24 | Intel Corporation | Probabilistic flit error checking |
US10061719B2 (en) | 2014-12-25 | 2018-08-28 | Intel Corporation | Packed write completions |
US10789201B2 (en) * | 2017-03-03 | 2020-09-29 | Intel Corporation | High performance interconnect |
US20190004990A1 (en) | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
-
2019
- 2019-10-22 US US16/659,660 patent/US11816052B2/en active Active
-
2020
- 2020-06-05 EP EP20178407.1A patent/EP3812911A3/en active Pending
- 2020-06-23 CN CN202010582847.0A patent/CN112698909A/zh active Pending
- 2020-09-14 TW TW109131501A patent/TW202121879A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN112698909A (zh) | 2021-04-23 |
US20200050570A1 (en) | 2020-02-13 |
EP3812911A2 (en) | 2021-04-28 |
EP3812911A3 (en) | 2021-06-30 |
US11816052B2 (en) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202121879A (zh) | 透過虛擬匯流排編碼傳播遙測資訊的系統、設備及方法 | |
US11500810B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
KR101567371B1 (ko) | 프로세서 내로의 지적 재산(ip) 블록들의 통합 | |
JP5922268B2 (ja) | 拡張ヘッダを用いたパケット送信 | |
US9753875B2 (en) | Systems and an apparatus with a sideband interface interconnecting agents with at least one router | |
US20150012607A1 (en) | Techniques to Replicate Data between Storage Servers | |
US9244881B2 (en) | Facilitating, at least in part, by circuitry, accessing of at least one controller command interface | |
US9448870B2 (en) | Providing error handling support to legacy devices | |
JP2024099640A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
KR20150052102A (ko) | 다중슬롯 링크 계층 플릿에서의 제어 메시징 | |
EP3722963B1 (en) | System, apparatus and method for bulk register accesses in a processor | |
EP4016309A1 (en) | System, apparatus and method for handling multi-protocol traffic in data link layer circuitry | |
CN111752873A (zh) | 用于在计算平台的多个主设备之间共享Flash设备的系统、装置和方法 | |
CN108701052A (zh) | 发送事务而不跟踪的方法、设备和系统 | |
JP6273010B2 (ja) | 入出力データアライメント | |
WO2012103768A1 (zh) | 数据处理方法及装置、pci-e总线系统、服务器 | |
US20080082708A1 (en) | Token hold off for chipset communication | |
JP2019095844A (ja) | データ転送装置およびデータ転送方法 |