TWI720345B - 多核心系統的內連線結構 - Google Patents
多核心系統的內連線結構 Download PDFInfo
- Publication number
- TWI720345B TWI720345B TW107133255A TW107133255A TWI720345B TW I720345 B TWI720345 B TW I720345B TW 107133255 A TW107133255 A TW 107133255A TW 107133255 A TW107133255 A TW 107133255A TW I720345 B TWI720345 B TW I720345B
- Authority
- TW
- Taiwan
- Prior art keywords
- ring
- core
- computing
- bus
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/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; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種多核心系統的內連線結構。內連線結構包括多個第一運算核心、第一環狀匯流排、直接記憶體存取引擎以及直接記憶體存取環狀控制器。第一運算核心連接至第一環狀匯流排。直接記憶體存取環狀控制器將直接記憶體存取引擎連接至第一環狀匯流排。第一運算核心透過第一環狀匯流排以與直接記憶體存取引擎通訊,並使直接記憶體存取引擎進行記憶體操作。
Description
本發明是有關於一種多核心系統(multi-core system),且特別是有關於一種具備直接記憶體存取引擎的多核心系統的內連線結構。
目前的中央處理器(CPU)的結構通常是以多個運算核心為主。為了將這些運算核心以高速傳輸的方式來交流資訊,許多類型的晶片內匯流排(in-chip bus)經研發以將這些運算核心相互串接通訊。環狀匯流排(ring bus)是CPU架構中常用的晶片內匯流排其中之一,其利用分別連接到對應元件的多種環站點(ring stop)讓這些運算核心相互傳遞數據。
另一方面,直接記憶體存取(DMA)技術主要用來進行資料的搬移,從而減輕中央處理器的負擔。直接記憶體存取控制器可在沒有CPU幫助的情況下依照CPU先前的指示來存取/搬移儲存設備中的資料,並在資料的存取/搬移完成後通知CPU。因此,直接記憶體存取技術在當前電子系統的運算結構中十分重要。
目前,晶片內匯流排技術跟直接記憶體存取技術沒有相互整合的情形。因此,如何利用晶片內匯流排技術跟直接記憶體存取技術以使中央處理器結構能夠更為順暢地、高速地運行,便是可供研究的方向。
本發明提供一種多核心系統的內連線結構,可在採用環狀匯流排作為晶片內匯流排的中央處理器結構的情況下提升直接記憶體存取(DMA)的工作效率,且加快DMA引擎與各個運算核心之間的通訊速度。
本發明的多核心系統的內連線結構包括多個第一運算核心、第一環狀匯流排、直接記憶體存取引擎以及直接記憶體存取環狀控制器。第一運算核心連接至第一環狀匯流排。直接記憶體存取環狀控制器將直接記憶體存取引擎連接至第一環狀匯流排。第一運算核心透過第一環狀匯流排以與直接記憶體存取引擎通訊,並使直接記憶體存取引擎進行記憶體操作。
基於上述,本發明實施例的多核心系統的內連線結構將直接記憶體存取引擎設置在環狀匯流排中,並額外設置用來讓直接記憶體存取引擎對環狀匯流排中的數據包進行存取的直接記憶體存取環狀控制器。如此一來,各個運算核心能迅速地利用環狀匯流排中的直接記憶體存取引擎,從而直接地對直接記憶體存取引擎下達記憶體操作的相關指令。並且,此直接記憶體存取引擎與同樣設置在環狀匯流排中的動態隨機存取記憶體之間的通訊將更為順暢。換句話說,記憶體操作的直接記憶體存取週期(DMA cycle)將可更為快速地處理。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是一種多核心系統的內連線結構100的示意圖。多核心系統的內連線結構100可以是電子系統/多核心系統的中央處理器(CPU)的內部結構。內連線結構100使用環狀匯流排110作為其之主要結構。圖1中的內連線結構100包括許多的環站點(ring stop)以及與這些環站點相互連接的多個元件。
本實施例的環站點(ring stop)亦可稱為是環狀控制器(ring controller)。圖1中與環站點/環狀控制器相連的元件為第一運算核心121~124、第一系統核心(又稱為,非核心(uncore))125及第一動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)126。第一運算核心121~124中包含的處理組件都會涉及到處理器指令的執行,例如,第一運算核心121~124可包括算術邏輯單元(ALU)、浮點運算單元(FPU)、一級快取(L1 cache)、二級快取(L1 cache)…等。這些元件主要利用這些環站點141~146相互通信。環站點141~146的功用在於將與環站點141~146相連的元件能夠與環狀匯流排110中其他環站點上的其他元件相互通訊。圖1中具備多種類型的環站點,例如是連接到第一運算核心121~124與對應的第一末級快取(Last Level Cache;LLC)記憶體131~134的環站點片狀模組(Ring-stop-slice module;RSS)141~144、連接到第一系統核心125的環站點非核心模組(Ring-stop-uncore module;RSU)145以及連接到第一動態隨機存取記憶體126的環站點動態隨機存取記憶體模組(Ring-stop-dram module;RSD)146皆屬於環站點的一種。
當特定元件想要將數據包放到環狀匯流排110時,此特定元件會將這數據包傳送到對應的環站點。此環站點會在環狀匯流排110中進行仲裁,並將數據包發送到優選行進方向上的相鄰環站點上。例如,當第一運算核心121想要將數據包傳送給第一DRAM 126時,便將此數據包傳送給環站點RSS 141,且環站點RSS 141透過環狀匯流排110的仲裁機制以將此數據包放入環狀匯流排110中,並選擇此數據包的行進方向為朝向環站點RSD 146前進。當環站點RSD 146收到其他環站點傳送來的數據包時,會先行檢查數據包的標頭信息(如,DstID)是否與自身環站點對應的元件相匹配。若匹配,環站點RSD 146便會將數據包從環狀匯流排110中取出並傳送給第一DRAM 126以進行後續處理。相對地,若不匹配,環站點RSD 146則在數據包原本的行進方向上將數據包繼續傳遞給下一個環站點。
第一系統核心125也會作為連接到電子系統中的多個晶片組(chipset)裝置151的流量代理器(traffic agent)。第一系統核心125用以讓環站點非核心模組145與晶片組裝置151通訊。從另一角度來說,電子系統除了中央處理器以外還包括許多的晶片組裝置151,例如快速通道互聯(Intel QuickPath Interconnect;QPI)控制器、Thunderbolt控制器、PCI-E控制器、SPI控制器、繪圖處理單元(GPU)、額外的DRAM及DMA控制器152…等。也就是說,DMA控制器152也屬於晶片組裝置151的其中之一。當晶片組裝置151與DMA控制器152希望將數據傳送到中央處理器時,便會通過第一系統核心125並且透過上游週期(upstream cycle)(或稱為,P2C)的方式進行仲裁以獲得對環狀匯流排110進行存取的頻寬,才能將數據包透過環站點RSU 145進入環狀匯流排110。
基於圖1內連線結構100的情況下,第一運算核心121~124若希望利用DMA引擎152進行記憶體操作的話,必須通過環站點RSU 145及第一系統核心125才能下達相應指令。DMA引擎152在處理第一運算核心121~124所交付的記憶體操作時,仍然需要通過第一系統核心125才能對第一DRAM 126進行相應的記憶體操作。在記憶體操作完成後,DMA引擎152還是需要通過第一系統核心125才能透過中斷方式通知相應的第一運算核心121~124,以完成整個記憶體操作的直接記憶體存取週期(DMA cycle)。換句話說,DMA引擎152將至少因為以下兩點:(1)需要與其他晶片組裝置151競爭通往環狀匯流排110的頻寬;以及(2)無法與第一運算核心121~124建立快速的資訊交換路徑,而使DMA引擎152進行記憶操作的效率無法提升。因此,圖1的內連線結構100將會嚴重影響到DMA引擎152在進行記憶體操作的效能。
因此,本發明實施例在多核心系統的內連線結構中將DMA引擎從環狀匯流排外面直接內嵌到環狀匯流排當中以作為利用環狀匯流排相互連接的元件其中之一,並額外設置用來讓DMA引擎對環狀匯流排中的數據包進行存取的直接記憶體存取環狀控制器。如此一來,位在環狀匯流排當中的各個運算核心皆能迅速地利用環狀匯流排而直接地對直接記憶體存取引擎下達記憶體操作的相關指令,以共享DMA引擎。DMA引擎的效能也因而提升。DMA引擎便不需要跟其他晶片組裝置競爭通往環狀匯流排的頻寬。因此,內嵌在環狀匯流排中的DMA控制器的效能將會優於位於晶片組裝置層級中、需要利用系統核心進行仲裁以轉發數據的DMA控制器的效能。
圖2是依照本發明第一實施例的一種多核心系統的內連線結構200的示意圖。圖2中的內連線結構200主要包括多個第一運算核心121~124、第一環狀匯流排210、直接記憶體存取(DMA)引擎227以及直接記憶體存取環狀控制器247。本實施例以4個第一運算核心121~124作為舉例,應用本實施例者可依其需求增加運算核心的數量,甚至可以將多個環狀匯流排相互連接(後續實施例中可說明)以連接更多數量的運算核心。每個第一運算核心121~124連接至第一環狀匯流排210。直接記憶體存取環狀控制器247在本實施例中亦可稱為是環站點DMA模組RSDMA 247。專用於DMA引擎227的直接記憶體存取環狀控制器247將如同其他環站點一般,可直接地掌控來自其他環站點的請求並回應此請求。也就是說,環站點RSDMA 247可將DMA引擎227的記憶體操作當作在第一環狀匯流排210上的數據包並發送給其他環站點,並可從第一環狀匯流排210中獲得其他元件傳送過來的數據包。
圖2中的內連線結構200還包括第一DRAM 126、第一DRAM環狀控制器146(亦可稱為是環站點DRAM模組(RSD) 146)、多個第一運算核心環形控制器141~144(亦可稱為是環站點片狀模組(RSS) 141~144)、多個第一末級快取(LLC)記憶體131~134、第一系統核心(亦可稱為是非核心)125以及第一系統核心環狀控制器145(亦可稱為是環站點非核心模組(RSU) 145)。本實施例的第一DRAM 126與第一DRAM環狀控制器146設置於內連線結構200的第一環狀匯流排210中。第一DRAM環狀控制器146用以將第一DRAM 126連接至第一環狀匯流排210。
圖2中的晶片組裝置151亦可稱為是第一晶片組裝置。應用本實施例者除了可在第一環狀匯流排210中設置一個或多個第一DRAM 126以外,還可依其需求另外在第一環狀匯流排210中增設其他的DRAM。換句話說,本實施例是以單個第一DRAM 126作為舉例,應用本實施例者可依其需求調整第一DRAM 126以及與其對應的第一DRAM環狀控制器146的數量。於部分實施例中,也可將DRAM設置在晶片組裝置151所在的位置。DMA引擎227可依據第一運算核心121~124的指令以對上述這些DRAM進行記憶體操作。
另一方面,為方便讓DMA引擎227進行記憶體操作,本實施例的環站點RSDMA 247可設置於最接近環站點RSD 146的位置,但不以此為限。藉此,便可讓DMA引擎227發送給第一DRAM 126的數據包能較迅速地被第一DRAM 126獲知,且DMA引擎227可從第一DRAM 126處迅速地得知記憶體操作的處理結果。
本實施例的第一運算核心環形控制器(環站點RSS)141~144分別對應至每個第一運算核心121~124。環站點RSS 141~144將對應的第一運算核心121~124連接至第一環狀匯流排210。每個第一末級快取記憶體131~134亦連接至對應的環站點RSS 141~144,以供第一運算核心121~124作為資料存取之用。
本實施例的第一系統核心環狀控制器(環站點RSU)145用以將第一系統核心125連接至第一環狀匯流排210。第一系統核心125連接至多核心系統中的一個或多個晶片組裝置151,以讓這些一個或多個晶片組裝置151能與第一運算核心121~124相互通訊。本實施例的晶片組裝置151可不包括DMA引擎。換句話說,本實施例的DMA引擎227不透過第一系統核心125以及第一系統核心環狀控制器145便可利用第一環狀匯流排210與第一運算核心121~124連接。第一系統核心125的功能除了連接一個或多個晶片組裝置151以外,還可連接到三級快取(L3 Cache),且可具備用於快取一致性監測的偵聽管線(snooping pipeline)功能。
特別說明的是,圖2中的DMA引擎227直接設置於內連線結構200的第一環狀匯流排210中,換句話說,DMA引擎227利用直接記憶體存取環狀控制器247連接到第一環狀匯流排210。第一運算核心121~124便可透過第一環狀匯流排210以與DMA引擎227通訊,並使DMA引擎227對第一DRAM 126和/或其他記憶體進行記憶體操作。所謂的『記憶體操作』可以是對第一DRAM 126或其他DRAM進行讀取、寫入、複製、比對…等操作模式。
在此舉例以說明第一運算核心121~124其中之一(如,第一運算核心121)如何利用DMA引擎227以對第一DRAM 126進行記憶體操作。當第一運算核心121需要利用DMA引擎227進行記憶體操作時,第一運算核心121需要先行準備必備資源以讓DMA引擎227能續行工作。例如,第一運算核心121需要準備PCI配置空間(configuration space)、內存映射輸入輸出(Memory-mapped I/O;MMIO)資源、中斷路徑(可連接到晶片組以用於中斷/MSI(Modified-Shared-Invalid)協議的產生)…等信息以提供給DMA引擎227,作為初始化階段。
在初始化之後,第一運算核心121產生DMA請求以作為數據包,並透過環站點RSS 141將此數據包放入環狀匯流排210中。然後,此數據包將會以所選擇的行進方向從第一運算核心121的環站點RSS 141並依序經由環站點RSS 142、環站點RSD 146以及環站點RSDMA 247以交付到DMA引擎227。在收到作為DMA請求的數據包後,DMA引擎227將記憶體操作的信息作為數據包,且環站點RSDMA 247將對應此記憶體操作的數據包傳遞給環站點RSD 146。環站點RSD 146及第一DRAM 126基於數據包當中所對應的記憶體操作(如,讀取/寫入/複製/比對…等操作)而將數據處理結果經由環站點RSDMA 247傳送給DMA引擎227。在收到數據處理結果後,DMA引擎227透過中斷方式,將此數據處理結果(數據包),依序經由環站點RSDMA 247、環站點RSD 146以及環站點RSS 142以將此數據包提供給第一運算核心121,以向第一運算核心121告知記憶體操作的完成結果。藉此,便可完成一次記憶體操作的直接記憶體存取週期。
於符合本發明的其他實施例中,也可在環狀匯流排210中設置多個DMA引擎227與環站點RSDMA 247,以讓第一運算核心121~124共享這些DMA引擎227。做為另一個優點,DMA引擎227中包含緩衝器(buffer)以記錄在完成記憶體操作後的數據。緩衝器也可由第一系統核心125利用快取一致性監測的偵聽(snooping)功能所檢測。藉此,如果數據被緩衝在DMA引擎227中時,將會減少對快取一致性的延遲。
本實施例中,多核心系統亦可包含多個環狀匯流排,且本發明實施例中位於不同環狀匯流排的所有運算核心可共享同一個DMA引擎。圖3是依照本發明第二實施例的一種多核心系統的內連線結構300的示意圖。第二實施例中的多核心系統的內連線結構300包括第一環狀匯流排210以及第二環狀匯流排310。第一環狀匯流排210上的多個環站點及相關元件皆與上述實施例中圖2的各元件相同。內連線結構300除了第一環狀匯流排210上的多個環站點及相關元件以外,還增加了第二環狀匯流排310上的多個環站點及相關元件。詳細來說,內連線結構300還包括第二環狀匯流排310、多個第二運算核心321~324、與多個第二運算核心321~324相對應的環站點RSS 331~334以及多個第二末級快取記憶體(LLC)331~334、第二系統核心環狀控制器(環站點RSU)345將第二系統核心325連接至第二環狀匯流排310。第二系統核心325可用以讓第二系統核心環狀控制器345與至少一個晶片組裝置351通訊。晶片組裝置351亦可稱為是第二晶片組裝置。每個第二末級快取記憶體331~334連接至相對應的第二運算核心環形控制器(環站點RSS)331~334。第二系統核心環狀控制器RSU 345與第一系統核心環狀控制器RSU 145相互通訊。如此一來,第一運算核心121~124和/或第二運算核心321~324皆可透過第二環狀匯流排310及第一環狀匯流排210以與DMA引擎227通訊,並使DMA引擎227進行記憶體操作。
本實施例將第一環狀匯流排210上的第一環站點(亦即,RSS 141~144、RSU 145、RSD 146及RSDMA 247)及相應元件(亦即,第一運算核心121~124、第一系統核心125、第一DRAM 126及DAM引擎227)稱為是第一系統SYS1,且將第二環狀匯流排310上的第二環站點(亦即,RSS 341~344、RSU 345、RSD 346及RSDMA 347)及相應元件(亦即,第二運算核心321~324及第二系統核心325)稱為是第二系統SYS2。於本實施例中,第一系統SYS1可以是由一顆系統晶片構成,而第二系統SYS2則是由另一顆系統晶片構成。這兩個系統晶片可透過第二系統核心環狀控制器RSU 345與第一系統核心環狀控制器RSU 145經由QPI匯流排和/或PCIe匯流排相互通訊。於符合本發明的其他實施例中,第一系統SYS1與第二系統SYS2則可由同一顆系統晶片構成。應用本實施例者可依其需求來決定是否將第一系統SYS1與第二系統SYS2架構在同一個系統晶片中。
特別說明的是,第二系統SYS2中的第二環狀匯流排310上並未內嵌DMA引擎,或是,與第二系統SYS2相連接的DMA引擎必須通過第二系統核心325才能與第二環狀匯流排310中的元件相互通訊。如此一來,由於第一環狀匯流排210與第二環狀匯流排310相互連線,第二運算核心321~324便可利用第一環狀匯流排210中的DAM引擎227進行記憶體操作,而不需使用第二系統SYS2相連接的DMA引擎。
在此舉例以說明第二運算核心321~324其中之一(如,第二運算核心321)如何利用DMA引擎227以對第一DRAM 126進行記憶體操作。第二運算核心321利用作為DMA請求的相關信息產生DMA請求以作為數據包,並透過第二環站點RSS 341將此數據包放入環狀匯流排310中。此數據包將會以所選擇的行進方向從第二運算核心321的第二環站點RSS 341並依序經由第二環站點RSU 345、第一環站點RSU 145、第一環站點RSS 141、第一環站點RSS 142、第一環站點RSD 146以及第一環站點RSDMA 247以交付到DMA引擎227,如圖3中的箭頭391所示。在收到作為DMA請求的數據包後,DMA引擎227將記憶體操作的信息作為數據包,且第一環站點RSDMA 247將對應記憶體操作的數據包傳遞給第一環站點RSD 146。環站點RSD 146及第一DRAM 126基於數據包當中所對應的DRAM操作而將數據處理結果經由第一環站點RSDMA 247傳送給DMA引擎227。DMA引擎227與第一DRAM 126之間的記憶體操作如箭頭392所示。在收到數據處理結果後,DMA引擎227便透過中斷方式,將此數據處理結果(數據包),依序經由第一環站點RSDMA 247、第一環站點RSD 146、第一環站點RSS 142、第一環站點RSS 141、第一環站點RSU 145、第二環站點RSU 345、以及第二環站點RSS 341(亦即,箭頭391的反方向)以將此數據包提供給第二運算核心321。
圖4是依照本發明第三實施例的一種多核心系統的內連線結構400的示意圖。圖3與圖4之間的差異在於,圖4的第二環狀匯流排310除了原有的環站點及相應的元件以外還增加第二動態隨機存取記憶體(DRAM)426以及第二動態隨機存取記憶體環狀控制器(環站點RSD)446。環站點RSD 446用以將第二動態隨機存取記憶體426連接至第二環狀匯流排310。如此一來,基於第一環狀匯流排210與第二環狀匯流排310相互連接,位於第一環狀匯流排210中的RSD引擎227便可對第二動態隨機存取記憶體426進行記憶體操作。
綜上所述,本發明實施例的本發明實施例的多核心系統的內連線結構將直接記憶體存取引擎設置在環狀匯流排中,並額外設置用來讓直接記憶體存取引擎對環狀匯流排中的數據包進行存取的直接記憶體存取環狀控制器。換言之,直接記憶體存取引擎不需透過所述第一系統核心、第一系統核心環狀控制器,而與所述第一運算核心連接。此外,直接記憶體存取引擎也不需透過第一系統核心、第一系統核心環狀控制器、第二系統核心、第二系統核心環狀控制器,而與第一運算核心或第二運算核心連接。
如此一來,各個運算核心能迅速地利用環狀匯流排中的直接記憶體存取引擎,從而直接地對直接記憶體存取引擎下達記憶體操作的相關指令。並且,此直接記憶體存取引擎與同樣設置在環狀匯流排中的動態隨機存取記憶體之間的通訊將更為順暢。換句話說,記憶體操作的直接記憶體存取週期將可更為快速地處理。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100、200、300、400:多核心系統的內連線結構110:環狀匯流排121~124:第一運算核心125:第一系統核心126:第一動態隨機存取記憶體(DRAM)131~134:第一末級快取記憶體141~144:環站點片狀模組(RSS)/第一運算核心環形控制器145:環站點非核心模組(RSU)/第一系統核心環狀控制器146:環站點動態隨機存取記憶體模組(RSD)/第一動態隨機存取記憶體環狀控制器151、351:晶片組裝置152:直接記憶體存取(DMA)引擎210:第一環狀匯流排227:直接記憶體存取(DMA)引擎247:環站點直接記憶體存取模組(RSDMA)/直接記憶體存取環狀控制器310:第二環狀匯流排321~324:第二運算核心325:第二系統核心331~334:第二末級快取記憶體341~344:環站點片狀模組(RSS)/第二運算核心環形控制器345:環站點非核心模組(RSU)/第二系統核心環狀控制器391、392:箭頭426:第二動態隨機存取記憶體(DRAM)446:環站點動態隨機存取記憶體模組(RSD)/第二動態隨機存取記憶體環狀控制器
圖1是一種多核心系統的內連線結構的示意圖。 圖2是依照本發明第一實施例的一種多核心系統的內連線結構的示意圖。 圖3是依照本發明第二實施例的一種多核心系統的內連線結構的示意圖。 圖4是依照本發明第三實施例的一種多核心系統的內連線結構的示意圖。
121~124:第一運算核心
125:第一系統核心
126:第一動態隨機存取記憶體(DRAM)
131~134:第一末級快取記憶體
141~144:環站點片狀模組(RSS)/第一運算核心環形控制器
145:環站點非核心模組(RSU)/第一系統核心環狀控制器
146:環站點動態隨機存取記憶體模組(RSD)/第一動態隨機存取記憶體環狀控制器
151:晶片組裝置
200:多核心系統的內連線結構
210:第一環狀匯流排
227:直接記憶體存取(DMA)引擎
247:環站點直接記憶體存取模組(RSDMA)/直接記憶體存取環狀控制器
Claims (11)
- 一種多核心系統的內連線結構,包括:多個第一運算核心;第一環狀匯流排,其中所述第一運算核心連接至所述第一環狀匯流排;第一系統核心(uncore);第一系統核心環狀控制器,用以將所述第一系統核心(uncore)連接至所述第一環狀匯流排;第一動態隨機存取記憶體;第一動態隨機存取記憶體環狀控制器,用以將所述第一動態隨機存取記憶體連接至所述第一環狀匯流排;直接記憶體存取引擎;以及直接記憶體存取環狀控制器,用以將所述直接記憶體存取引擎連接至所述第一環狀匯流排,其中所述直接記憶體存取引擎不透過所述第一系統核心(uncore)以及所述第一系統核心環狀控制器,而與所述多個第一運算核心連接,其中所述直接記憶體存取環狀控制器與所述第一動態隨機存取記憶體環狀控制器皆位於所述第一環狀匯流排,且所述直接記憶體存取環狀控制器不同於所述第一動態隨機存取記憶體環狀控制器,其中所述多個第一運算核心透過所述第一環狀匯流排以與所 述直接記憶體存取引擎通訊,並使所述直接記憶體存取引擎對所述第一動態隨機存取記憶體進行記憶體操作。
- 如申請專利範圍第1項所述的多核心系統的內連線結構,還包括:多個第一運算核心環形控制器,其中每個第一運算核心環形控制器對應至每個第一運算核心,每個第一運算核心環形控制器將對應的所述第一運算核心連接至所述第一環狀匯流排。
- 如申請專利範圍第2項所述的多核心系統的內連線結構,還包括:多個第一末級快取記憶體,其中每個第一末級快取記憶體連接至每個第一運算核心環形控制器。
- 如申請專利範圍第1項所述的多核心系統的內連線結構,其中所述第一系統核心用以與第一晶片組裝置通訊。
- 如申請專利範圍第1項所述的多核心系統的內連線結構,還包括:多個第二運算核心;第二環狀匯流排,其中所述多個第二運算核心連接至所述第二環狀匯流排;第二系統核心;以及第二系統核心環狀控制器,用以將所述第二系統核心連接至所述第二環狀匯流排,其中所述第二系統核心環狀控制器與所述第一系統核心環狀 控制器相互通訊,且所述多個第二運算核心透過所述第一環狀匯流排以及所述第二環狀匯流排以與所述直接記憶體存取引擎通訊,並使所述直接記憶體存取引擎進行所述記憶體操作。
- 如申請專利範圍第5項所述的多核心系統的內連線結構,其中所述第二系統核心用以與至少一第二晶片組裝置通訊。
- 如申請專利範圍第5項所述的多核心系統的內連線結構,其中所述直接記憶體存取引擎不透過所述第一系統核心與所述第二系統核心,而與所述多個第一運算核心或所述多個第二運算核心連接。
- 如申請專利範圍第5項所述的多核心系統的內連線結構,還包括:第二動態隨機存取記憶體;以及第二動態隨機存取記憶體環狀控制器,用以將所述第二動態隨機存取記憶體連接至所述第二環狀匯流排,其中所述直接記憶體存取引擎對所述第二動態隨機存取記憶體進行所述記憶體操作。
- 如申請專利範圍第5項所述的多核心系統的內連線結構,還包括:多個第二運算核心環形控制器,其中每個第二運算核心環形控制器對應至每個第二運算核心,每個第二運算核心環形控制器將對應的所述第二運算核心連接至所述第二環狀匯流排。
- 如申請專利範圍第9項所述的多核心系統的內連線結構,還包括:多個第二末級快取記憶體,其中每個第二末級快取記憶體連接至每個第二運算核心環形控制器。
- 如申請專利範圍第5項所述的多核心系統的內連線結構,其中所述多個第一運算核心、所述第一環狀匯流排、所述直接記憶體存取引擎、所述直接記憶體存取環狀控制器、所述第一系統核心、所述第一系統核心環狀控制器以及第一動態隨機存取記憶體設置於第一晶片中,且所述多個第二運算核心、所述第二環狀匯流排、所述第二系統核心以及所述第二系統核心環狀控制器設置於第二晶片中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107133255A TWI720345B (zh) | 2018-09-20 | 2018-09-20 | 多核心系統的內連線結構 |
US16/231,420 US10909056B2 (en) | 2018-09-20 | 2018-12-22 | Multi-core electronic system |
CN201910001320.1A CN109739785B (zh) | 2018-09-20 | 2019-01-02 | 多核系统的内连线结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107133255A TWI720345B (zh) | 2018-09-20 | 2018-09-20 | 多核心系統的內連線結構 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202013204A TW202013204A (zh) | 2020-04-01 |
TWI720345B true TWI720345B (zh) | 2021-03-01 |
Family
ID=66363122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107133255A TWI720345B (zh) | 2018-09-20 | 2018-09-20 | 多核心系統的內連線結構 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10909056B2 (zh) |
CN (1) | CN109739785B (zh) |
TW (1) | TWI720345B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749121A (zh) * | 2019-10-31 | 2021-05-04 | 中兴通讯股份有限公司 | 基于pcie总线的多芯片互联系统 |
CN112506437A (zh) * | 2020-12-10 | 2021-03-16 | 上海阵量智能科技有限公司 | 芯片、数据搬移方法和电子设备 |
CN115145861B (zh) * | 2022-07-07 | 2024-04-05 | 无锡芯光互连技术研究院有限公司 | 一种基于双环形总线的芯片互连通信装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201705011A (zh) * | 2015-03-26 | 2017-02-01 | 英特爾公司 | 多晶片封裝鏈結技術 |
WO2018119778A1 (en) * | 2016-12-28 | 2018-07-05 | Intel Corporation | System and method for vector communication |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW343302B (en) * | 1996-12-30 | 1998-10-21 | Samsung Electronics Co Ltd | Direct memory access controlling device |
US6233221B1 (en) * | 1998-02-20 | 2001-05-15 | Adc Telecommunications, Inc. | System and method for a ring network with virtual path connections |
US6457068B1 (en) * | 1999-08-30 | 2002-09-24 | Intel Corporation | Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation |
US7274706B1 (en) * | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
TW589825B (en) * | 2001-07-02 | 2004-06-01 | Globespan Virata Corp | Communications system using rings architecture |
JP3488224B2 (ja) * | 2001-11-16 | 2004-01-19 | 沖電気工業株式会社 | 遷移信号制御装置とそれを用いたdmaコントローラ及び遷移信号制御プロセッサ |
US7359932B2 (en) * | 2002-12-12 | 2008-04-15 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor system |
US7523228B2 (en) * | 2006-09-18 | 2009-04-21 | International Business Machines Corporation | Method for performing a direct memory access block move in a direct memory access device |
US20080147908A1 (en) * | 2006-12-13 | 2008-06-19 | Microchip Technology Incorporated | Direct Memory Access Controller with Error Check |
US20090119526A1 (en) * | 2007-11-05 | 2009-05-07 | Mediatek Inc. | Electronic system and power control method thereof |
CN102521182B (zh) * | 2011-11-23 | 2015-05-06 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
US20130179722A1 (en) * | 2012-01-06 | 2013-07-11 | Glen Smith | Ring topology for compute devices |
US9424228B2 (en) * | 2012-11-01 | 2016-08-23 | Ezchip Technologies Ltd. | High performance, scalable multi chip interconnect |
CN103034558A (zh) * | 2012-12-13 | 2013-04-10 | 中国航空无线电电子研究所 | PowerPC系统控制器 |
CN104461979A (zh) * | 2014-11-04 | 2015-03-25 | 中国电子科技集团公司第三十八研究所 | 基于环形总线的多核片上通信网络实现方法 |
CN104699110B (zh) * | 2015-02-05 | 2017-07-21 | 大连理工大学 | 可编程飞行器控制引擎ip核 |
JP6454577B2 (ja) * | 2015-03-25 | 2019-01-16 | ルネサスエレクトロニクス株式会社 | 処理装置及び処理装置の制御方法 |
US20170109248A1 (en) * | 2015-10-20 | 2017-04-20 | Quanta Computer Inc. | Sharing bus port by multiple bus hosts |
-
2018
- 2018-09-20 TW TW107133255A patent/TWI720345B/zh active
- 2018-12-22 US US16/231,420 patent/US10909056B2/en active Active
-
2019
- 2019-01-02 CN CN201910001320.1A patent/CN109739785B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201705011A (zh) * | 2015-03-26 | 2017-02-01 | 英特爾公司 | 多晶片封裝鏈結技術 |
WO2018119778A1 (en) * | 2016-12-28 | 2018-07-05 | Intel Corporation | System and method for vector communication |
Also Published As
Publication number | Publication date |
---|---|
CN109739785A (zh) | 2019-05-10 |
US10909056B2 (en) | 2021-02-02 |
TW202013204A (zh) | 2020-04-01 |
CN109739785B (zh) | 2020-12-29 |
US20200097423A1 (en) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220156193A1 (en) | Delayed snoop for improved multi-process false sharing parallel thread performance | |
CN111506534B (zh) | 具有非阻塞高性能事务信用系统的多核总线架构 | |
EP3896574B1 (en) | System and method for computing | |
TWI720345B (zh) | 多核心系統的內連線結構 | |
KR101661259B1 (ko) | 저전력 부분 폭 고속 링크 상태에서 나갈 때의 고속 디스큐 | |
US5925118A (en) | Methods and architectures for overlapped read and write operations | |
US7827391B2 (en) | Method and apparatus for single-stepping coherence events in a multiprocessor system under software control | |
CN105068951B (zh) | 一种具有非等时传输结构的片上系统总线 | |
US7761696B1 (en) | Quiescing and de-quiescing point-to-point links | |
US7581054B2 (en) | Data processing system | |
EP3213220B1 (en) | Methods and circuits for deadlock avoidance | |
US20100005247A1 (en) | Method and Apparatus for Global Ordering to Insure Latency Independent Coherence | |
Kodama et al. | PEACH2: an FPGA-based PCIe network device for tightly coupled accelerators | |
JP2012252490A (ja) | マルチプロセッサおよびそれを用いた画像処理システム | |
EP4235441A1 (en) | System, method and apparatus for peer-to-peer communication | |
US20100332756A1 (en) | Processing out of order transactions for mirrored subsystems | |
WO2009009133A2 (en) | Dual bus system and method | |
JP2004133942A (ja) | データバスシステム及びバス間クロスアクセス方法 | |
TW201916644A (zh) | 匯流排系統 | |
JP2831083B2 (ja) | マルチプロセッサシステムおよび割り込み制御装置 | |
KR100475438B1 (ko) | 데이터 버스 시스템 및 버스간 크로스 액세스 방법 | |
WO2020087239A1 (zh) | 大数据运算加速系统 | |
US11874783B2 (en) | Coherent block read fulfillment | |
US20030065860A1 (en) | Internal control bus in a multiple processor/multiple bus system | |
WO2020087243A1 (zh) | 大数据运算芯片 |