TWI478055B - 非對稱式處理之多核心系統與其網路設備 - Google Patents

非對稱式處理之多核心系統與其網路設備 Download PDF

Info

Publication number
TWI478055B
TWI478055B TW101146705A TW101146705A TWI478055B TW I478055 B TWI478055 B TW I478055B TW 101146705 A TW101146705 A TW 101146705A TW 101146705 A TW101146705 A TW 101146705A TW I478055 B TWI478055 B TW I478055B
Authority
TW
Taiwan
Prior art keywords
packet
core
module
management module
processing
Prior art date
Application number
TW101146705A
Other languages
English (en)
Other versions
TW201423583A (zh
Inventor
Pei Lin Wu
Original Assignee
Gemtek Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemtek Technology Co Ltd filed Critical Gemtek Technology Co Ltd
Priority to TW101146705A priority Critical patent/TWI478055B/zh
Priority to US13/747,487 priority patent/US9026695B2/en
Publication of TW201423583A publication Critical patent/TW201423583A/zh
Application granted granted Critical
Publication of TWI478055B publication Critical patent/TWI478055B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

非對稱式處理之多核心系統與其網路設備
本發明是有關於一種非對稱多處理之多核心系統,且特別是有關於一種不需要大量複製或搬移記憶體所儲存的資料之非對稱多處理之多核心系統與具有此非對稱多處理之多核心系統的網路設備。
隨著製程技術與晶片設計技術的發達,目前有很多的網路設備都會具有多個處理核心,以快速地處理來所要傳送或接收的多個封包。一般來說,最常見的就是具有不對稱處理之雙核心系統的網路設備。所謂的不對稱處理是指兩個或多個處理核心之處理能力不同,其中一個處理核心可能具有較快的處理速度與較大的功率消耗,另一個處理核心可能具有較慢的處理速度與較低的功率消耗。
在具有不對稱處理之雙核心系統的網路設備下,不同的處理核心會執行各自的作業系統,因此要讓兩個處理核心一起協同運作,並達到最大的網路效能,就必須要規劃完善的同步技術,讓兩個處理核心可以各司其職。
請參照圖1,圖1是傳統不對稱處理之雙核心系統之方塊圖。不對稱處理之雙核心系統10包括了主要處理核心10_Core0、次要處理核心10_Core1、暫存器10_Reg、記憶體10_Mem、第一周邊裝置10_Ph0與第二周邊裝置10_Ph1。第一周邊裝置10_Ph0與第二周邊裝置10_Ph1在 此例子中皆為乙太網路媒體接取控制器(包括網路層、媒體接取層與實體層),且皆與外部交換構件10_ExSw連接。因此,在這個例子當中,不對稱處理之雙核心系統10與外部交換構件10_ExSw可以形成一個網路設備。除此之外,第一周邊裝置10_Ph0與第二周邊裝置10_Ph1也有可能是其他類型的周邊,例如通用匯流排(USB)周邊裝置。
主要處理核心10_Core0與次要處理核心10_Core1共用暫存器10_Reg與記憶體10_Mem,且記憶體10_Mem被切分為三個記憶區域10_Mem0、10_MemS與10_Mem1,其中記憶區域10_MemS為主要處理核心10_Core0與次要處理核心10_Core1所共用,記憶區域10_Mem0與10_Mem1則分別為主要處理核心10_Core0與次要處理核心10_Core1所專用。
主要處理核心10_Core0與次要處理核心10_Core1的處理能力不同,且分別執行不同的作業系統。次要處理核心10_Core1會分擔主要處理核心10_Core0的網路處理工作,以達到最大的網路效能。
一般作業系統都會具有兩個位置空間,其中一個為用戶空間,另一個為核心空間。用戶空間用以給使用者存取,使用者程式可以在此用戶空間內毫無顧慮地執行。核心空間用以讓作業系統執行使用與存取,以提供使用者程式的執行環境。主要處理核心10_Core0的作業系統例如是Windows作業系統,此Windows作業系統例如具有核心空間10_KS0與用戶空間10_US0。同樣地,次要處理核心 10_Core1的作業系統例如是Linux作業系統,此Linux作業系統例如具有核心空間10_KS1與用戶空間10_US1。
傳統上,主要處理核心10_Core0與次要處理核心10_Core1一起協同運作的處理方法約有兩種類型,以下將分別透過圖2A與2B來分別說明。
請同時參照圖1與圖2A,圖2A是雙核心系統之協同運作的傳統處理方法之流程圖。首先,在步驟S20,外部交換構件10_ExSw將接收到的封包透過第一周邊裝置10_Ph0傳送給主要處理核心10_Core0進行第一處理。接著,在步驟S21,主要處理核心10_Core0對封包進行第一處理。之後,在步驟S22,主要處理核心10_Core0透過第一周邊裝置10_Ph0、外部交換構件10_ExSw與第二周邊裝置10_Ph1將封包傳送給次要處理核心10_Core1進行第二處理。
之後,在步驟S23,次要處理核心10_Core1對封包進行第二處理。然後,在步驟S24,次要處理核心10_Core1將封包透過第二周邊裝置10_Ph1、外部交換構件10_ExSw與第一周邊裝置10_Ph0傳送給主要處理核心10_Core0進行最後處理。最後,在步驟S25,主要處理核心10_Core0對封包進行最後處理。
舉例來說,主要處理核心10_Core0可以負責決定封包路由,而次要處理核心10_Core1可以負責封包數量統計或封包類型分析。主要處理核心10_Core0收到封包後,可以先初步地對封包的目的位址進行分析(如同上述的第一 處理),次要處理核心10_Core1可以統計封包數量或分析封包類型,最後,主要處理核心10_Core0便可以根據封包的目的位址與封包類型決定路由(如同上述的最後處理)。
請同時參照圖1與圖2B,圖2B是雙核心系統之協同運作的另一傳統處理方法之流程圖。首先,在步驟S30,外部交換構件10_ExSw將接收到的封包透過第一周邊裝置10_Ph0傳送給主要處理核心10_Core0進行第一處理。接著,在步驟S31,主要處理核心10_Core0對封包進行第一處理,並將封包儲存在記憶區域10_MemS中。之後,在步驟S32,主要處理核心10_Core0透過溝通界面(未繪示於圖1)告知次要處理核心10_Core1對封包進行第二處理。
然後,在步驟S33,次要處理核心10_Core1自記憶區域10_MemS讀取封包。之後,在步驟S34,次要處理核心10_Core1對封包進行第二處理,並將封包儲存在記憶區域10_MemS中。接著,在步驟S35,次要處理核心10_Core1透過溝通介面告知主要處理核心10_Core0對封包進行最後處理。然後,在步驟S36,主要處理核心10_Core0自記憶區域10_MemS讀取封包。最後,在步驟S37,主要處理核心10_Core0對封包進行最後處理。
舉例來說,主要處理核心10_Core0可以負責決定封包路由,而次要處理核心10_Core1可以負責封包數量統計或封包類型分析。主要處理核心10_Core0收到封包後,可以先初步地對封包的目的位址進行分析(如同上述的第一 處理),次要處理核心10_Core1可以統計封包數量或分析封包類型(如同上述的第二處理),最後,主要處理核心10_Core0便可以根據封包的目的位址與封包類型決定路由(如同上述的最後處理)。
一般來說,大部份網際網路應用的程式都執行於用戶空間內,因此當主要處理核心10_Core0每次要對封包進行第一處理或最後處理時,都必需把儲存於核心空間10_KS0內的封包透過記憶體複製的方式搬移或複製至用戶空間10_US0內。同樣地,當次要處理核心10_Core1每次要對封包進行第二處理時,也都必需把儲存於核心空間10_KS1內的封包透過記憶體複製的方式搬移或複製至用戶空間10_US1內。
對於圖2A的處理方法而言,儲存於用戶空間10_US0內的封包之記憶區域是在主要處理核心10_Core0所專用的記憶區域10_Mem0中,而當次要處理核心10_Core1要處理封包時,儲存於記憶區域10_Mem0內的封包會先被複製或搬移至核心空間10_KS1後,才會被複製或搬移至用戶空間10_US1內,以使得次要處理核心10_Core1能夠對封包進行第二處理。
對於圖2B的處理方法而言,儲存於用戶空間10_US0內的封包之記憶區域是在共用的記憶區域10_MemS中,而當次要處理核心10_Core1要處理封包時,記憶區域10_MemS內的封包會先被複製或搬移至核心空間10_KS1後,才會被複製或搬移至用戶空間10_US1內,以使得次 要處理核心10_Core1能夠對封包進行第二處理。
圖2A的處理方法需要透過第一周邊裝置10_Ph0、外部交換構件10_ExSw與第二周邊裝置10_Ph1轉送封包,其效率與效能顯然地會比圖2B的處理方法來得差。雖然,圖2B的處理方法之效率較圖2A之處理方法來得佳,但無論如何,圖2A與圖2B的處理方法都需要大量地搬移或複製封包的資料,而浪費了記憶體10_Mem的頻寬。除此之外,不斷地透過主要或次要處理核心10_Core0、10_Core1來搬移記憶體10_Mem的資料也會造成較多的功率消耗。
本發明之實施例提供一種非對稱式處理之多核心系統,所述非對稱式處理之多核心系統包括主要處理核心、次要處理核心、暫存器、記憶體、第一周邊裝置與第二周邊裝置。主要處理核心具有第一作業系統,所述第一作業系統包括第一核心空間與第一用戶空間,所述第一核心空間包括乙太網路驅動器模組與接收端佇列管理模組,所述第一用戶空間包括第一控制管理模組。次要處理核心具有第二作業系統,所述第二作業系統包括第二核心空間與第二用戶空間,所述第二用戶空間包括第二控制管理模組。暫存器為所述主要處理核心與所述次要處理核心所共用。記憶體具有所述主要處理核心所能使用的第一記憶區域。第一周邊裝置連接於所述主要處理核心與外部交換構件。第二周邊裝置連接於所述次要處理核心與所述外部交換構 件。所述乙太網路驅動器模組透過所述第一周邊裝置接收來自於所述外部交換構件的封包,所述封包會被所述接收端佇列管理模組儲存於所述第一記憶區域;其中所述第二控制管理模組根據一記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,並加以處理,以產生處理結果,所述第二控制管理模組會將所述處理結果告知所述接收端佇列管理模組。所述接收端佇列管理模組再根據所述處理結果,對所述封包進行處理。
本發明之實施例提供一種網路設備,其包括非對稱式處理之多核心系統與外部交換構件。所述非對稱式處理之多核心系統包括主要處理核心、次要處理核心、暫存器、記憶體、第一周邊裝置與第二周邊裝置。主要處理核心具有第一作業系統,所述第一作業系統包括第一核心空間與第一用戶空間,所述第一核心空間包括乙太網路驅動器模組與接收端佇列管理模組,所述第一用戶空間包括第一控制管理模組。次要處理核心具有第二作業系統,所述第二作業系統包括第二核心空間與第二用戶空間,所述第二用戶空間包括第二控制管理模組。暫存器為所述主要處理核心與所述次要處理核心所共用。記憶體具有所述主要處理核心所能使用的第一記憶區域。第一周邊裝置連接於所述主要處理核心與外部交換構件。第二周邊裝置連接於所述次要處理核心與所述外部交換構件。所述乙太網路驅動器模組透過所述第一周邊裝置接收來自於所述外部交換構件的封包,所述封包會被所述接收端佇列管理模組儲存於所 述第一記憶區域;其中所述第二控制管理模組根據一記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,並加以處理,以產生處理結果,所述第二控制管理模組會將所述處理結果告知所述接收端佇列管理模組。所述接收端佇列管理模組再根據所述處理結果,對所述封包進行處理。
基於上述,本發明之實施例提供一種非對稱式處理之多核心系統,其可用於網路設備中。此非對稱式處理之多核心系統內的次要處理核心會輔助處理其主要處理核心的工作,進而讓整個網路設備之整體效能提升,且使其運作更為流暢。不同於傳統的處理方法,此非對稱式處理之多核心系統不用大量地搬移或複製經處理後的封包之資料,而能節省大量的記憶體頻寬,以及減少功率消耗。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
請參照圖3,圖3是本發明之實施例所提供的非對稱式處理之雙核心系統的方塊圖。不對稱處理之雙核心系統30包括了主要處理核心30_Core0、次要處理核心30_Core1、暫存器30_Reg、記憶體30_Mem、第一周邊裝置30_Ph0與第二周邊裝置30_Ph1。第一周邊裝置30_Ph0與第二周邊裝置30_Ph1在此例子中皆為乙太網路媒體接取控制器(包括網路層、媒體接取層與實體層),且皆與外 部交換構件30_ExSw連接。因此,在這個例子當中,不對稱處理之雙核心系統30與外部交換構件30_ExSw可以形成一個網路設備。除此之外,第一周邊裝置30_Ph0與第二周邊裝置30_Ph1也有可能是其他類型的周邊,例如通用匯流排(USB)周邊裝置。
圖3的雙核心系統30與圖1的雙核心系統10的差異僅在於,圖3次要處理核心30_Core1具有對記憶體30_Mem直接存取的功能,亦即一種直接記憶體映射技術被應用於次要處理核心30_Core1中,然而,圖1的次要處理核心10_Core1則無此功能,其依然必須透過記憶體複製的方法將封包之資料搬移或複製至用戶空間10_US1後,次要處理核心10_Core1才能對儲存於用戶空間10_US1內的封包進行第二處理。
接著,請參照圖4,圖4是本發明之另一實施例所提供的非對稱式處理之雙核心系統的方塊圖。圖4與圖3不同處在於,圖3之雙核心系統30的記憶體30_Mem具有共用之記憶區域30_MemS,然而,圖4之雙核心系統50的記憶體50_Mem卻不具有共用之記憶區域。次要處理核心30_Core1一樣具有直接存取記憶體50_Mem的功能,只是,在這個實施例中,次要處理核心30_Core1是根據記憶體絕對位置存取記憶區域50_Mem0內經第一處理後的封包之資料。在不考慮可能會影響到主要處理核心30_Core0之作業系統內核心空間30_KS0之資料的情況下,圖4之雙核心系統50的效能表現會近似於圖3之雙核 心系統的表現。
請參照圖5,圖5是本發明之實施例所提供的雙核心系統之協同運作的處理方法之流程圖。首先,在步驟S40,外部交換構件30_ExSw將接收到的封包透過第一周邊裝置30_Ph0傳送給主要處理核心30_Core0進行第一處理。此時,主要處理核心30_Core0之作業系統的核心空間30_KS0內之封包的資料會被送至其用戶空間30_US0,且更進一步地說,封包之資料可能會儲存於圖3之記憶區域30_MemS(或圖4之記憶區域50_Mem0)。
接著,在步驟S41,主要處理核心30_Core0對封包進行第一處理。之後在步驟S42,處理核心30_Core0判斷是否可以讓次要處理核心30_Core1對封包進行第二處理,若可以,則主要處理核心30_Core0透過溝通界面(未繪示於圖3)告知次要處理核心30_Core1對封包進行第二處理。
在步驟S43中,次要處理核心30_Core1自記憶區域30_MemS(或圖4的記憶區域50_Mem0)直接讀取封包的資料,並對封包的資料進行第二處理。更詳細地說,記憶區域30_MemS內的封包之資料並不會被複製或搬移至次要處理核心30_Core1之作業系統的核心空間30_KS1,且核心空間30_KS1並沒有封包之資料可以被複製或搬移至次要處理核心30_Core1之作業系統的用戶空間30_US1。相反地,次要處理核心30_Core1根據記憶體絕對位置來讀取記憶區域30_MemS(或圖4的記憶區域50_Mem0)內的封包之資料,並且將記憶區域30_MemS(或圖4的記憶區域 50_Mem0)內用來儲存封包之資料的儲存空間當作用戶空間30_US1內的儲存空間。換言之,次要處理核心30_Core1可以直接讀取記憶體30_Mem(或圖4的記憶體50_Mem)所儲存的所有資料。
接著,在步驟S44,次要處理核心30_Core1對經第一處理後的封包封包進行第二處理,並透過溝通界面告知主要處理核心對封包30_Core0進行最後處理。之後,在步驟S45,主要處理核心30_Core0自記憶區域30_MemS讀取經第一處理後之封包的資料。更詳細地說,記憶區域30_MemS(或圖4的記憶區域50_Mem0)經第一處理後之封包的資料會先被複製或搬移至核心空間30_KS0後,才會被複製或搬移至用戶空間30_US0。最後,在步驟S46中,主要處理核心30_Core0對經第一處理後的封包進行最後處理。
另外,要說明的是,在其他實施例中,主要處理核心30_Core0在步驟S41中,可能不會對封包進行第一處理,且主要處理核心30_Core0在步驟S41中,也可能不會對封包進行最後處理。換言之,在其他實施例中,主要處理核心30_Core0可能僅負責傳送封包給外部交換構件30_ExSw與接收來自於外部交換構件30_ExSw的封包,而次要處理核心30_Core1用來負責對封包進行處理。
請參照圖6A與圖6B,圖6A是根據本發明之實施例所提供的主要處理核心與次要處理核心之溝通與處理封包的示意圖,圖6B是根據本發明之實施例所提供之記憶體 儲存佇列方式的示意圖。主要處理核心30_Core0的作業系統例如是Windows作業系統,此Windows作業系統具有用戶空間30_US0與核心空間30_KS0。次要處理核心30_Core1的作業系統例如是Linux作業系統,此Linux作業系統具有用戶空間30_US1與核心空間30_KS1。雙核心系統30(或圖4的雙核心系統40)包括控制管理模組60_CM0、60_CM1、作業系統接收功能模組60_OS_Rx、封包釋放模組60_PacFree、溝通代理模組60_IPC0、接收端佇列管理模組60_RxQM與乙太網路驅動器模組60_EDri與溝通指示代理模組60_IPC1等基於軟體程式碼所實現的模組。
控制管理模組60_CM0為用戶空間30_US0所執行的程式,且作業系統接收功能模組60_OS_Rx、封包釋放模組60_PacFree、溝通代理模組60_IPC0、接收端佇列管理模組60_RxQM與乙太網路驅動器模組60_EDri皆為核心空間30_KS0所執行的程式。控制管理模組60_CM1的應用程式模組60_App、指示(notification)管理模組60_Noti與佇列管理模組60_QM皆為用戶空間30_US1所執行的程式,且溝通代理模組60_IPC1為核心空間30_KS1所執行的程式。
圖6A的例子適用於圖3或圖4的非對稱式處理之雙核心系統,因此圖6A的記憶體可以是記憶體30_Mem或50_Mem。於圖6A中,雙核心系統30(或圖4的雙核心系統40)包括更包括了位於接收端佇列管理模組60_RxQM與 乙太網路驅動器模組60_EDri之間的封包過濾模組60_Filter。然而,此處的封包過濾模組60_Filter並非為必要的模組。
首先,以太網路驅動器模組60_EDri會透過第一周邊裝置30_Ph0自外部交換構件30_ExSw接收來自於網路的封包。封包過濾模組60_Filter會分析接收的封包,以決定要將封包送至接收端佇列管理模組60_RxQM,或者送至作業系統接收功能模組60_OS_Rx。若封包並不需要次要處理單元30_Core1進行處理,則封包會被封包過濾模組60_Filter送至作業系統接收功能模組60_OS_Rx。若封包需要次要處理單元30_Core1進行處理,則封包會被封包過濾模組60_Filter送至接收端佇列管理模組60_RxQM。
接收端佇列管理模組60_RxQM用以管理記憶體30_Mem或50_Mem內儲存所儲存的封包之資料,將所收到的封包,以先進先出(First-In-First-Out,FIFO)的方式存放在封包佇列中,並更新佇列標頭(QueueHead),且用來儲存封包之資料的記憶區域實際上是位於主要處理核心30_Core0的核心空間30_KS0。此處用來儲存封包之資料的記憶區域可能是記憶體30_Mem的記憶區域30_MemS或記憶體50_Mem的記憶區域50_Mem0。
控制管理模組60_CM1的佇列管理模組60_QM使用輪詢(Polling)的方式讀取所述佇列,一旦發現佇列標頭變動,便知道接收端佇列管理模組60_RxQM有新的封包需要處理,佇列管理模組60_QM便使用記憶體絕對位置對 記憶體30_Mem或50_Mem來讀取封包,以讓次要處理核心30_Core1對封包進行處理。換句話說,佇列管理模組60_QM並不會對封包之資料在記憶體30_Mem或50_Mem內進行複製與搬移,佇列管理模組60_QM可以直接讀取記憶體30_Mem或50_Mem內的所有資料,而不會有大量資料在記憶體30_Mem或50_Mem內複製與搬移的情況。
佇列管理模組60_QM在讀取完成後,會將處理結果寫在佇列的控制欄位中,並更新佇列標尾(QueueTail)。接收端佇列管理模組60_RxQM可以使用輪詢的方式來檢查佇列標尾。當接收端佇列管理模組60_RxQM發現佇列標尾的值變動,便會瞭解佇列管理模組60_QM有處理完封包,且接收端佇列管理模組60_RxQM可以將處理結果從所述佇列的控制欄位取出。接著,接收端佇列管理模組60_RxQM會根據處理結果,來將封包給作業系統接收功能模組60_OS_Rx或封包釋放模組60_PacFree。本發明可以利用輪詢的方式來讓主要處理核心30_Core0與次要處理核心30_Core1得知何時處理封包與讀取記憶體30_Mem或50_Mem的資料。
封包釋放模組60_PacFree可以根據發出丟棄信息指示第一周邊裝置30_Ph1的緩衝記憶體將此封包的資料丟棄。作業系統接收功能模組60_OS_Rx根據發出通過信息可以對封包進行其他的處理,以讓主要處理核心30_Core0呼叫其他流程,以繼續下一階段的處理或將處理完後的封包發送出去。
一般來說,在有使用輪詢且配合圖6B的儲存佇列方式下,圖6A的溝通指示代理模組60_IPC0、60_IPC1並非必要的模組。上述圖6A與圖6B為使用中斷通知來達成及時溝通主要處理核心30_Core0以及次要處理核心30_Core1,以彌補輪詢的不足之實施例。因封包需要次要處理單元30_Core1進行處理,因此接收端佇列管理模組60_RxQM會送出發出通知信息給溝通指示代理模組60_IPC0,以指示溝通指示代理模組60_IPC0協助進行主要處理核心30_Core0與次要處理核心之30_Core1間的溝通。
溝通指示代理模組60_IPC0會根據發出報告信息發送中斷信號,例如為門鈴警示(Doorbell)信號,給次要處理核心30_Core1的溝通指示代理模組60_IPC1。溝通指示代理模組60_IPC1會根據中斷信號產生輸出輸入控制信號給控制管理模組60_CM1的指示管理模組60_Noti。
指示管理模組60_Noti在收到來自溝通指示代理模組60_IPC1所傳送的輸出輸入控制信號後,會指示控制管理模組60_CM1開啟佇列管理模組60_QM,以讓佇列管理模組60_QM根據記憶體絕對位置對記憶體30_Mem或50_Mem來讀取封包,並接著讓次要處理核心30_Core1對封包進行處理。
當次要處理核心30_Core1對封包進行處理後,封包的結果會存放在佇列的控制欄位中,並更新佇列標尾,指示管理模組60_Noti會依據應用程式模組60_App的指示向 溝通指示代理模組60_IPC1發出輸出輸入控制信號。溝通指示代理模組60_IPC1根據輸出輸入控制信號產生中斷信號給溝通指示代理模組60_IPC0。溝通指示代理模組60_IPC0根據中斷信號產生發出報告信息給接收端佇列管理模組60_RXQM,以啟動接收端佇列管理模組60_RXQM根據所述處理結果,對所述封包進行處理。換言之,透過接收溝通指示代理模組60_IPC0的發出報告信息,接收端佇列管理模組60_RXQM可以即時地檢查佇列標尾,而解決使用輪詢方式所產生的等待時間之問題。
上述將記憶體直接映射技術應用於次要處理核心的概念並非限定於非對稱式處理之雙核心系統,換言之,上述的處理方法亦可以應用於對稱式處理之多核心系統。
請參照圖7,圖7是本發明之實施例所提供的非對稱式處理之多核心系統的方塊圖。與圖3之雙核心系統相比,圖7之多核心系統70更多出了次要處理核心30_Core2與第三周邊裝置30_Ph2。在圖7中,記憶體70_Mem被切分為四個記憶區域70_Mem0~70_Mem2與70_MemS,其中記憶區域70_Mem0為主要處理核心30_Core0所專用,記憶區域70_Mem1與70_Mem2分別為次要處理核心30_Core1與30_Core2所專用,且記憶區域70_MemS為主要處理核心30_Core0、次要處理核心30_Core1與30_Core2所共用。
多核心系統70具備兩個次要處理核心30_Core1、30_Core2,當其中一個次要處理核心無法順利地與主要處 理核心30_Core0協同處理時,另一個次要處理核心可以與主要處理核心30_Core0協同處理,以達到非對稱式處理之多核心系統的最大效能。
圖8是本發明之另一實施例所提供的非對稱式處理之多核心系統的方塊圖。與圖7之多核心系統70相比,圖8之多核心系統80更多出了一個主要處理核心30_Core3與第四周邊裝置30_Ph3,且記憶體80_Mem被切分為五個記憶區域80_Mem0~80_Mem3與80_MemS,其中記憶區域80_MemS為主要處理核心30_Core0、30_Core3、次要處理核心30_Core1與30_Core2所共用,記憶區域80_Mem0~80_Mem3分別為主要處理核心30_Core0、次要處理核心30_Core1、30_Core2與主要處理核心30_Core3所專用。理論上,非對稱式處理之多核心系統80的效能應該會優於非對稱式處理之多核心系統70。
另外,上述實施例所提供的非對稱式處理之雙核心系統或多核心系統皆可以與外部交換構件形成一種網路設備,而達到封包處理與封包傳遞的最大效能。此種網路設備可以是手機、筆記型電腦、桌上型電腦或伺服器等。
綜上所述,本發明之實施例提供一種非對稱式處理之多核心系統,其可用於網路設備中。此非對稱式處理之多核心系統內的次要處理核心會輔助處理其主要處理核心的工作,進而讓整個網路設備之整體效能提升,且使其運作更為流暢。不同於傳統的處理方法,此非對稱式處理之多核心系統不用大量地搬移或複製經處理後的封包之資料, 而能節省大量的記憶體頻寬,以及減少功率消耗。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10、30、50‧‧‧非對稱式處理之雙核心系統
70、80‧‧‧非對稱式處理之多核心系統
10_Core0、30_Core0、30_Core3‧‧‧主要處理核心
10_Core1、30_Core1、30_Core2‧‧‧次要處理核心
10_Reg、30_Reg‧‧‧暫存器
10_Mem、30_Mem、50_Mem、70_Mem、80_Mem‧‧‧記憶體
10_Mem0、10_Mem1、10_MemS、30_Mem0、30_Mem1、30_MemS、50_Mem0、50_Mem1、70_Mem0~70_Mem2、70_MemS、80_Mem0~80_Mem3、80_MemS‧‧‧記憶區域
10_Ph0、30_Ph0‧‧‧第一周邊裝置
10_Ph1、30_Ph1‧‧‧第二周邊裝置
30_Ph2‧‧‧第三周邊裝置
30_Ph3‧‧‧第四周邊裝置
10_ExSw、30_ExSw‧‧‧外部交換構件
S20~S25、S30~S37、S40~S46‧‧‧步驟流程
30_US0、30_US1‧‧‧用戶空間
30_KS0、30_KS1‧‧‧核心空間
60_CM0、60_CM1‧‧‧控制管理模組
60_App‧‧‧應用程式模組
60_Noti‧‧‧指示管理模組
60_QM‧‧‧佇列管理模組
60_OS_Rx‧‧‧作業系統接收功能模組
60_PacFree‧‧‧封包釋放模組
60_IPC0、60_IPC1‧‧‧溝通代理模組
60_RxQM‧‧‧接收端佇列管理模組
60_EDri‧‧‧乙太網路驅動器模組
圖1是傳統不對稱處理之雙核心系統之方塊圖。
圖2A是雙核心系統之協同運作的傳統處理方法之流程圖。
圖2B是雙核心系統之協同運作的另一傳統處理方法之流程圖。
圖3是本發明之實施例所提供的非對稱式處理之雙核心系統的方塊圖。
圖4是本發明之另一實施例所提供的非對稱式處理之雙核心系統的方塊圖。
圖5是本發明之實施例所提供的雙核心系統之協同運作的處理方法之流程圖。
圖6A是根據本發明之實施例所提供的主要處理核心與次要處理核心之溝通與處理封包的示意圖。
圖6B是根據本發明之實施例所提供之記憶體儲存佇列方式的示意圖。
圖7是本發明之實施例所提供的非對稱式處理之多核心系統的方塊圖。
圖8是本發明之另一實施例所提供的非對稱式處理之多核心系統的方塊圖。
30_Core0‧‧‧主要處理核心
30_Core1‧‧‧次要處理核心
30_US0、30_US1‧‧‧用戶空間
30_KS0、30_KS1‧‧‧核心空間
60_CM0、60_CM1‧‧‧控制管理模組
60_App‧‧‧應用程式模組
60_Noti‧‧‧指示管理模組
60_QM‧‧‧佇列管理模組
60_OS_Rx‧‧‧作業系統接收功能模組
60_PacFree‧‧‧封包釋放模組
60_IPC0、60_IPC1‧‧‧溝通代理模組
60_RxQM‧‧‧接收端佇列管理模組
60_EDri‧‧‧乙太網路驅動器模組
30_Mem、50_Mem‧‧‧記憶體

Claims (18)

  1. 一種非對稱式處理之多核心系統,包括:一主要處理核心,具有一第一作業系統,所述第一作業系統包括一第一核心空間與一第一用戶空間,所述第一核心空間包括一乙太網路驅動器模組與一接收端佇列管理模組,所述第一用戶空間包括一第一控制管理模組;一次要處理核心,具有一第二作業系統,所述第二作業系統包括一第二核心空間與一第二用戶空間,所述第二用戶空間包括一第二控制管理模組;一暫存器,為所述主要處理核心與所述次要處理核心所共用;一記憶體,具有所述主要處理核心所能使用的一第一記憶區域;一第一周邊裝置,連接於所述主要處理核心與一外部交換構件;以及一第二周邊裝置,連接於所述次要處理核心與所述外部交換構件;其中所述乙太網路驅動器模組透過所述第一周邊裝置接收來自於所述外部交換構件的一封包,所述封包會被所述接收端佇列管理模組儲存於所述第一記憶區域;其中所述第二控制管理模組根據一記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,並加以處理,以產生一處理結果,所述第二控制管理模組會將所述處理結果告知所述接收端佇列管理模組;所述接收端佇列管理模組 再根據所述處理結果,對所述封包進行處理,其中所述接收端佇列管理模組將所收到的封包,以先進先出的方式存放在所述記憶體的一封包佇列中,並據此更新一佇列標頭;其中所述第二控制管理模組具有一佇列管理模組,其使用輪詢的方式讀取所述封包佇列,若所述佇列管理模組發現所述佇列標頭變動,則所述佇列管理模組使用所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,以讓所述次要處理核心針對所述封包進行處理。
  2. 如同申請專利範圍第1項所述之非對稱式處理之多核心系統,其中在所述佇列管理模組讀取所述封包佇列完成後,所述佇列管理模組會將所述處理結果寫在所述封包佇列的一控制欄位中,並更新所述封包佇列的一佇列標尾。
  3. 如同申請專利範圍第2項所述之非對稱式處理之多核心系統,其中所述接收端佇列管理模組使用輪詢的方式檢查所述佇列標尾,若所述接收端佇列管理模組發現所述佇列標尾的值變動,則將所述處理結果從所述封包佇列的所述控制欄位取出。
  4. 如同申請專利範圍第1項所述之非對稱式處理之多核心系統,其中所述第一核心空間更包括一作業系統接收功能模組與一封包釋放模組;所述接收端佇列管理模組根據所述處理結果將所述封包給所述作業系統接收功能模組或所述封包釋放模組;所述封包釋放模組根據所述接收 端佇列管理模組所產生的一發出丟棄信息指示所述第一周邊裝置的緩衝記憶體將所述封包的資料丟棄;所述作業系統接收功能模組根據所述接收端佇列管理模組所產生的一發出通過信息對所述封包進行其他的處理,以讓所述主要處理核心呼叫其他流程,以繼續下一階段的處理或將處理完後的封包發送出去。
  5. 如同申請專利範圍第1項所述之非對稱式處理之多核心系統,其中所述第一核心空間更包括一第一溝通指示代理模組,所述第二核心空間更包括一第二溝通指示代理模組;所述接收端佇列管理模組傳送一第一發出報告信息給所述第一溝通指示代理模組;所述第一溝通指示代理模組根據所述第一發出報告信息輸出一第一中斷信號給所述第二溝通指示代理模組;所述第二溝通指示代理模組根據所述第一中斷信號輸出一第一輸出輸入控制信號給所述第二控制管理模組;所述第二控制管理模組在收到所述第一輸出輸入控制信號後,所述第二控制管理模組啟動所述佇列管理模組,根據所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,進行處理。
  6. 如申請專利範圍第5項所述之非對稱式處理之多核心系統,其中當所述次要處理核心對所述封包進行處理完畢後,所述第二控制管理模組輸出一第二輸出輸入控制信號給所述第二溝通指示代理模組,以告知所述主要處理核心所述次要處理核心已經對封包處理完畢;所述第二溝通指示代理模組根據所述第二輸出輸入控制信號產生一第 二中斷信號給所述第一溝通指示代理模組;所述第一溝通指示代理模組根據所述第二中斷信號產生一第二發出報告信息給所述接收端佇列管理模組,以啟動接收端佇列管理模組根據所述處理結果,對所述封包進行處理。
  7. 如申請專利範圍第6項所述之非對稱式處理之多核心系統,其中所述第二控制管理模組包括一應用程式模組、一指示管理模組與一佇列管理模組;所述佇列管理模組根據所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料;所述指示管理模組會依據所述應用程式模組的指示向所述第二溝通指示代理模組發出所述第二輸出輸入控制信號。
  8. 如申請專利範圍第4項所述之非對稱式處理之多核心系統,其中所述第一核心空間更包括一封包過濾模組;所述封包過濾模組接收來自於所述乙太網路驅動器模組,並決定要將所述封包送至所述接收端佇列管理模組或所述作業系統接收功能模組。
  9. 如申請專利範圍第1項所述之非對稱式處理之多核心系統,其中所述第一記憶區域是所述主要處理核心所專用的記憶區域,或者是所述主要處理核心與次要處理核心所共用的記憶區域。
  10. 一種網路設備,包括一非對稱式處理之多核心系統與一外部交換構件,所述對稱式處理之多核心系統包括:一主要處理核心,具有一第一作業系統,所述第一作業系統包括一第一核心空間與一第一用戶空間,所述第一 核心空間包括一乙太網路驅動器模組與一接收端佇列管理模組,所述第一用戶空間包括一第一控制管理模組;一次要處理核心,具有一第二作業系統,所述第二作業系統包括一第二核心空間與一第二用戶空間,所述第二用戶空間包括一第二控制管理模組;一暫存器,為所述主要處理核心與所述次要處理核心所共用;一記憶體,具有所述主要處理核心所能使用的一第一記憶區域;一第一周邊裝置,連接於所述主要處理核心與一外部交換構件;以及一第二周邊裝置,連接於所述次要處理核心與所述外部交換構件;其中所述乙太網路驅動器模組透過所述第一周邊裝置接收來自於所述外部交換構件的一封包,所述封包會被所述接收端佇列管理模組儲存於所述第一記憶區域;其中所述第二控制管理模組根據一記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,並加以處理,以產生一處理結果,所述第二控制管理模組會將所述處理結果告知所述接收端佇列管理模組;所述接收佇列管理模組再根據所述處理結果,對所述封包進行處理,其中所述接收端佇列管理模組將所收到的封包,以先進先出的方式存放在所述記憶體的封包佇列中,並據此更新一佇列標頭;其中所述第二控制管理模組包括一佇列管 理模組,其使用輪詢的方式讀取所述封包佇列,若所述佇列管理模組發現所述佇列標頭變動,則所述佇列管理模組使用所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,以讓所述次要處理核心針對所述封包進行處理。
  11. 如同申請專利範圍第10項所述之網路設備,其中在所述佇列管理模組讀取所述封包佇列完成後,所述佇列管理模組會將所述處理結果寫在所述封包佇列的一控制欄位中,並更新所述封包佇列的一佇列標尾。
  12. 如同申請專利範圍第11項所述之網路設備,其中所述接收端佇列管理模組使用輪詢的方式檢查所述佇列標尾,若所述接收端佇列管理模組發現所述佇列標尾的值變動,則將所述處理結果從所述封包佇列的所述控制欄位取出。
  13. 如同申請專利範圍第10項所述之網路設備,其中所述第一核心空間更包括一作業系統接收功能模組與一封包釋放模組;所述接收端根據所述處理結果將所述封包給所述作業系統接收功能模組或所述封包釋放模組;所述封包釋放模組根據所述接收端佇列管理模組所產生的一發出丟棄信息指示所述第一周邊裝置的緩衝記憶體將所述封包的資料丟棄;所述作業系統接收功能模組根據所述接收端佇列管理模組所產生的一發出通過信息對所述封包進行其他的處理,以讓所述主要處理核心呼叫其他流程,以繼續下一階段的處理或將處理完後的封包發送出去。
  14. 如同申請專利範圍第10項所述之網路設備,其中所述第一核心空間更包括一第一溝通指示代理模組,所述第二核心空間更包括一第二溝通指示代理模組;所述接收端佇列管理模組傳送一第一發出報告信息給所述第一溝通指示代理模組;所述第一溝通指示代理模組根據所述第一發出報告信息輸出一第一中斷信號給所述第二溝通指示代理模組;所述第二溝通指示代理模組根據所述第一中斷信號輸出一第一輸出輸入控制信號給所述第二控制管理模組;所述第二控制管理模組在收到所述第一輸出輸入控制信號後,所述第二控制管理模組啟動所述佇列管理模組,根據所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料,進行處理。
  15. 如申請專利範圍第14項所述之網路設備,其中當所述次要處理核心對所述封包進行處理完畢後,所述第二控制管理模組輸出一第二輸出輸入控制信號給所述第二溝通指示代理模組,以告知所述主要處理核心所述次要處理核心已經對封包處理完畢;所述第二溝通指示代理模組根據所述第二輸出輸入控制信號產生一第二中斷信號給所述第一溝通指示代理模組;所述第一溝通指示代理模組根據所述第二中斷信號產生一第二發出報告信息給所述接收端佇列管理模組,以啟動接收端佇列管理模組根據所述處理結果,對所述封包進行處理。
  16. 如申請專利範圍第15項所述之網路設備,其中所述第二控制管理模組包括一應用程式模組、一指示管理模 組與一佇列管理模組;所述佇列管理模組根據所述記憶體絕對位置直接讀取所述第一記憶區域所儲存的封包之資料;所述指示管理模組會依據所述應用程式模組的指示向所述第二溝通指示代理模組發出所述第二輸出輸入控制信號。
  17. 如申請專利範圍第13項所述之網路設備,其中所述第一核心空間更包括一封包過濾模組;所述封包過濾模組接收來自於所述乙太網路驅動器模組,並決定要將所述封包送至所述接收端佇列管理模組或所述作業系統接收功能模組。
  18. 如申請專利範圍第10項所述之網路設備,其中所述第一記憶區域是所述主要處理核心所專用的記憶區域,或者是所述主要處理核心與次要處理核心所共用的記憶區域。
TW101146705A 2012-12-11 2012-12-11 非對稱式處理之多核心系統與其網路設備 TWI478055B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101146705A TWI478055B (zh) 2012-12-11 2012-12-11 非對稱式處理之多核心系統與其網路設備
US13/747,487 US9026695B2 (en) 2012-12-11 2013-01-23 Asymmetrical processing multi-core system and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101146705A TWI478055B (zh) 2012-12-11 2012-12-11 非對稱式處理之多核心系統與其網路設備

Publications (2)

Publication Number Publication Date
TW201423583A TW201423583A (zh) 2014-06-16
TWI478055B true TWI478055B (zh) 2015-03-21

Family

ID=50882278

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101146705A TWI478055B (zh) 2012-12-11 2012-12-11 非對稱式處理之多核心系統與其網路設備

Country Status (2)

Country Link
US (1) US9026695B2 (zh)
TW (1) TWI478055B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10481811B2 (en) 2015-10-16 2019-11-19 Google Llc Asynchronous copying of data within memory

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513869B2 (en) 2013-09-18 2016-12-06 HGST Netherlands B.V. Doorbell-less endpoint-initiated protocol for storage devices
US9778859B2 (en) 2013-09-18 2017-10-03 Western Digital Technologies, Inc. Doorless protocol having multiple queue read requests in flight
US9977730B2 (en) * 2015-05-08 2018-05-22 Dell Products, Lp System and method for optimizing system memory and input/output operations memory
CN105721015B (zh) * 2016-01-29 2018-11-20 努比亚技术有限公司 一种复用Flash ROM的双通道移动终端
CN105743538B (zh) * 2016-01-29 2018-12-21 努比亚技术有限公司 双通道移动终端及射频校准系统
CN105630726B (zh) * 2016-01-29 2018-11-20 努比亚技术有限公司 复用usb端口的双通道移动终端
CN111400214B (zh) * 2020-02-27 2021-06-18 深圳震有科技股份有限公司 一种双核共用网口的实现方法、智能终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200802098A (en) * 2005-09-30 2008-01-01 Co Ware Inc Scheduling in a multicore architecture
US20090007117A1 (en) * 2007-06-26 2009-01-01 Samsung Electronics Co., Ltd. Method and apparatus for performing related tasks on multi-core processor
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
CN101727351B (zh) * 2009-12-14 2012-09-05 北京航空航天大学 面向多核平台的虚拟机监控器非对称调度器及其调度方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049854A (en) * 1997-05-09 2000-04-11 Vlsi Technology, Inc. System and method for sharing physical memory among distinct computer environments
US20020198908A1 (en) * 2001-06-21 2002-12-26 International Business Machines Corporation Method and apparatus for delivery of external data from a centralized repository in a network data processing system
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
KR100408047B1 (ko) * 2001-12-24 2003-12-01 엘지전자 주식회사 이동통신 시스템의 프로세서 보드 이중화 장치 및 방법
US6981072B2 (en) * 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system
US7822105B2 (en) * 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
WO2006056900A1 (en) * 2004-11-24 2006-06-01 Koninklijke Philips Electronics N.V. Coherent caching of local memory data
US7779287B2 (en) * 2005-08-22 2010-08-17 Intel Corporation Reducing power consumption in multiprocessor systems
US7596628B2 (en) * 2006-05-01 2009-09-29 Broadcom Corporation Method and system for transparent TCP offload (TTO) with a user space library
US7742417B2 (en) * 2007-02-16 2010-06-22 International Business Machines Corporation Burst traffic smoothing for SIP processing elements
US7774521B2 (en) * 2007-12-28 2010-08-10 Intel Corporation Method and apparatus for reducing power consumption for isochronous data transfers
US8037280B2 (en) * 2008-06-11 2011-10-11 Vmware, Inc. System and method for improving memory locality of virtual machines
US8566487B2 (en) * 2008-06-24 2013-10-22 Hartvig Ekner System and method for creating a scalable monolithic packet processing engine
US8244933B1 (en) * 2010-07-14 2012-08-14 Xilinx, Inc. Method and apparatus for inter-IC communication
US8635412B1 (en) * 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
WO2013063484A1 (en) * 2011-10-28 2013-05-02 The Regents Of The University Of California Multiple-core computer processor
US8615614B2 (en) * 2011-11-30 2013-12-24 Freescale Semiconductor, Inc. Message passing using direct memory access unit in a data processing system
US20130227243A1 (en) * 2012-02-23 2013-08-29 Freescale Semiconductor, Inc Inter-partition communication in multi-core processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200802098A (en) * 2005-09-30 2008-01-01 Co Ware Inc Scheduling in a multicore architecture
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
US20090007117A1 (en) * 2007-06-26 2009-01-01 Samsung Electronics Co., Ltd. Method and apparatus for performing related tasks on multi-core processor
CN101727351B (zh) * 2009-12-14 2012-09-05 北京航空航天大学 面向多核平台的虚拟机监控器非对称调度器及其调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10481811B2 (en) 2015-10-16 2019-11-19 Google Llc Asynchronous copying of data within memory
TWI710950B (zh) * 2015-10-16 2020-11-21 美商谷歌有限責任公司 用於資料的非同步複製的系統及相關聯電腦實施方法及電腦可讀媒體

Also Published As

Publication number Publication date
US9026695B2 (en) 2015-05-05
US20140164654A1 (en) 2014-06-12
TW201423583A (zh) 2014-06-16

Similar Documents

Publication Publication Date Title
TWI478055B (zh) 非對稱式處理之多核心系統與其網路設備
WO2021217529A1 (zh) 一种进程间通信的方法及系统
JP6833644B2 (ja) 転送装置、転送方法及びプログラム
KR101951072B1 (ko) 코어 간 통신 장치 및 방법
US7802025B2 (en) DMA engine for repeating communication patterns
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
JP2007316859A (ja) マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法
US20220263913A1 (en) Data center cluster architecture
JP2007095065A (ja) ネットワーク上におけるcellプロセッサ制御技術
US10409744B1 (en) Low-latency wake-up in a peripheral device
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
JP7310924B2 (ja) サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム
CN114095251B (zh) 一种基于dpdk与vpp的sslvpn实现方法
CN114546913B (zh) 一种基于pcie接口的多主机之间数据高速交互的方法和装置
WO2014186940A1 (zh) 一种硬盘和数据处理方法
CN110119304B (zh) 一种中断处理方法、装置及服务器
EP4350515A1 (en) Load balancing method for multi-thread forwarding, and related apparatus
WO2014169637A1 (zh) Dma控制器、移动终端以及数据搬运方法
CN201583943U (zh) 音频soc芯片的高效低功耗dma的ip结构
KR20210051325A (ko) 비대칭 멀티프로세싱 시스템의 데이터 공유 장치 및 방법
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
US10505704B1 (en) Data uploading to asynchronous circuitry using circular buffer control
JP2010134698A (ja) 情報処理システム
JP6617496B2 (ja) 片方向オペレーティングシステム間通信システム及びプログラム
CN103995789A (zh) 一种直接内存存取的实现系统及方法