TWI698798B - 一種多核心運算裝置及其運作方法 - Google Patents
一種多核心運算裝置及其運作方法 Download PDFInfo
- Publication number
- TWI698798B TWI698798B TW107137140A TW107137140A TWI698798B TW I698798 B TWI698798 B TW I698798B TW 107137140 A TW107137140 A TW 107137140A TW 107137140 A TW107137140 A TW 107137140A TW I698798 B TWI698798 B TW I698798B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- core
- subsection
- management
- dynamic
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一種多核心運算裝置的運作方法,多核心運算裝置具有多核心處理器,包括以下的步驟:以多核心處理器的第一運算核心執行作業系統;載入管理主程式於作業系統;以多核心處理器的第二運算核心執行獨立主程式;依據執行命令判斷是否執行第一功能程式;當判斷執行第一功能程式時,依據程式管理規則選擇性地以管理主程式藉由所述第一運算核心執行第一功能程式,或是以獨立主程式藉由所述第二運算核心執行第一功能程式。
Description
本發明係關於一種多核心運算裝置及其運作方法,特別是關於一種執行功能程式的多核心運算裝置及其運作方法。
視應用需求,運行的軟體環境可分成「有作業系統(operation system, OS)」與「無作業系統」兩類。在有作業系統的環境下,功能程式可獲得作業系統完善的管理以及豐富的函式庫支援。但因為作業系統還必須同時運行其他多個軟體,單顆中央處理器(central processor unit, CPU)的完整效能沒有辦法只用來服務一個功能程式。因此,功能程式在有作業系統的環境下的執行速度可能未臻理想。而在無作業系統的環境下,單顆中央處理器的完整效能可用來只服務一個功能程式。因此,功能程式在無作業系統的環境下的執行速度相對較快。但是,無作業系統環境下的程式執行效能雖然較好,卻也因此缺少了作業系統所提供的管理與資源。在無作業系統的環境下,功能程式通常是藉由無限迴圈的方式來週期性的重複執行一些固定任務。開發人員或使用者必須花費較大的心力來進行操作。兩種軟體運作環境各有其優缺點。
舉交易程式來說,一般的交易主程式通常是執行在作業系統底下,並配合一或多個決策程式一起使用。各個決策程式的運算複雜度各有高低。在作業系統底下,交易程式可以藉由作業系統的管理資源方便地切換不同的決策程式。但反過來說,為了讓作業系統能夠提供這些管理資源,機器的中央處理器必須負擔作業系統的計算負載,而沒辦法讓決策程式以最快的速度獲得運算的結果。如此一來,在執行決策程式時,決策程式就有可能比理想中的速度慢了個幾秒或幾毫秒。但在市場上,即使只差個幾秒甚至幾毫秒(millisecond, ms),使用者就有可能錯失良機,無法以較佳價格進行交易。在另一種情況下,如果是以無作業系統的方式執行決策程式,則每台機器可能只能執行非常少量的決策程式甚至只能執行一個決策程式,而且對於使用者在操作上會是相當不友善的。
本發明提供了一種多核心運算裝置及其運作方法,以克服以往無法在處理效能與系統彈性之間取得平衡的問題。
本發明提出一種多核心運算裝置的運作方法。多核心運算裝置具有多核心處理器。此多核心運算裝置的運作方法具有以下的步驟。以多核心處理器的第一運算核心執行作業系統。載入管理主程式於所述作業系統。以所述多核心處理器的第二運算核心執行獨立(stand-alone)主程式。依據執行命令判斷是否執行第一功能程式。當判斷執行所述第一功能程式時,依據一程式管理規則選擇性地以所述管理主程式藉由所述第一運算核心執行所述第一功能程式,或是以所述獨立主程式藉由所述第二運算核心執行所述第一功能程式。
在一個例子中,所述多核心運算裝置更包括有記憶體。所述記憶體電性連接所述多核心處理器。所述記憶體例如定義有第一邏輯區段與第二邏輯區段。第二邏輯區段定義有靜態子區段與第一動態子區段。所述第一邏輯區段被分配給所述作業系統。第二邏輯區段被分配給獨立主程式且第一動態子區段被分配給所述管理主程式。於前述依據所述程式管理規則選擇性地以所述管理主程式藉由所述第一運算核心執行所述第一功能程式,或是以所述獨立主程式藉由所述第二運算核心執行所述第一功能程式的步驟中,當判斷是以所述獨立主程式藉由所述第二運算核心執行所述第一功能程式時,以所述管理主程式將所述第一功能程式寫入所述第一動態子區段;此外,以所述管理主程式指示所述獨立主程式藉由所述第二運算核心執行所述第一動態子區段中的內容。
在另一個例子中,所述獨立主程式係包括第三功能程式,所述多核心運算裝置的運算方法更包括以下步驟。將所述第三功能程式寫入所述靜態子區段。依據所述執行命令判斷執行所述第一功能程式或所述第三功能程式。當判斷執行所述第三功能程式時,以所述管理主程式指示所述獨立主程式藉由所述第二運算核心執行所述靜態子區段中的內容。
本發明提出一種多核心運算裝置,包括多核心處理器。所述多核心處理器包括第一運算核心與第二運算核心。所述第一運算核心用以執行作業系統與執行管理主程式。當所述作業系統被執行時,所述管理主程式被載入所述作業系統。所述第二運算核心用以執行獨立主程式。其中,所述管理主程式依據程式管理規則選擇性地藉由所述第一運算核心執行所述第一功能程式,或是所述管理主程式依據所述程式管理規則指示所述獨立主程式藉由所述第二運算核心執行所述第一功能程式。
在一個例子中,多核心運算裝置更包括記憶體。所述記憶體電性連接所述多核心處理器,所述記憶體係定義有第一邏輯區段與第二邏輯區段。所述第二邏輯區段定義有靜態子區段與第一動態子區段。所述第一邏輯區段被分配給所述作業系統。所述第二邏輯區段被分配給所述獨立主程式。所述第一動態子區段更被分配給所述管理主程式。當所述第一功能程式被寫入所述第一動態子區段時,所述管理主程式指示所述獨立主程式藉由所述第二運算核心選擇性地執行所述第一動態子區段中的內容。
在另一個例子中,當第二邏輯區段被分配給所述獨立主程式時,所述獨立主程式的一第三功能程式被寫入所述靜態子區段中。所述管理主程式指示所述獨立主程式藉由所述第二運算核心選擇性地執行所述靜態子區段中的內容或是執行所述第一動態子區段中的內容。
如上述地,本發明提供的多核心運算裝置及其運作方法,可以選擇性地在有作業系統的環境下或是在無作業系統的環境下執行功能程式。透過適當的程式管理規則,開發人員或是使用者可以讓管理程式自行判斷要如何分配功能程式於有作業系統的環境或是無作業系統的環境。藉此,提供了相當具有彈性的運算架構,而且並不會造成開發人員與使用者太大的負擔。
下文將進一步揭露本發明之特徵、目的及功能。然而,以下所述者,僅為本發明之實施例,當不能以之限制本發明之範圍,即但凡依本發明申請專利範圍所作之均等變化及修飾,仍將不失為本發明之要意所在,亦不脫離本發明之精神和範圍,故應將視為本發明的進一步實施態樣。
請參照圖1,圖1係繪示依據本發明一實施例之多核心運算裝置的功能方塊圖。多核心運算裝置1具有多核心處理器11。多核心運算裝置1可以是電腦、手機、平板、具有現場可程式化邏輯閘陣列(Field Programmable Gate Array, FPGA)的電路板或其他具有運算能力的電子產品。在一實施例中,多核心運算裝置1被配置為一嵌入式系統(embedded system),例如為Advanced RISC Machine(ARM)的架構。依據多核心運算裝置1的態樣,多核心處理器11可以是相對應的架構及型號,在此並不多加限制。多核心處理器11包括第一運算核心111與第二運算核心113。第一運算核心111用以執行一作業系統與一管理主程式。作業系統例如可以是Unix系統、Linux系統、其他類Unix系統、微軟公司的視窗(windows, Inc.)系統或是一般常見的行動作業系統如蘋果公司(Apple, Inc.)的iOS或是android系統。所述的作業系統可以直接面對實體機器,也可以搭載在虛擬機器(virtual machine)上。當所述的作業系統被執行時,管理主程式被載入此作業系統。換句話說,管理主程式係執行於作業系統之下,因此管理主程式得以享有作業系統提供的管理資源。第二運算核心113用以執行獨立主程式。此處提及的「獨立」意味軟體設計領域中的「stand-alone」。從另一個角度來說,獨立主程式係在無作業系統的環境下被第二運算核心113所執行。或者說,所述的獨立主程式係以bare-metal的方式直接執行於第二運算核心113上。
依據圖1所揭示之多核心運算裝置1,本發明尚提供了一種多核心運算裝置1的運作方法。請一併參照圖2,圖2係繪示依據本發明一實施例之多核心運算裝置的操作方法的步驟流程圖。於步驟S201,以多核心處理器11的第一運算核心111執行作業系統。於步驟S203,載入管理主程式於作業系統。在一實施例中,當多核心運算裝置1啟動作業系統時,作業系統以載入器(loader)載入管理主程式於記憶體中。於步驟S205,以所述多核心處理器11的第二運算核心113執行獨立主程式。於實務上,多核心運算裝置1可以具有一內部儲存模組來儲存作業系統、管理主程式與獨立主程式,或是多核心運算裝置1可以自一外部儲存模組存取作業系統、管理主程式與獨立主程式。所述的內部儲存模組例如是各種類型的硬碟(hard drive, HD),所述的外部儲存模組例如是各種類型的外接式硬碟。
於步驟S207,依據執行命令判斷是否執行第一功能程式。在一實施例中,所述的執行命令例如可以是使用者輸入的指令。更詳細地來說,使用者可以透過滑鼠、鍵盤或是觸控螢幕等輸入元件而用手動的方式控制多核心運算裝置1,並藉此指示多核心運算裝置1執行使用者所欲的功能程式(第一功能程式)。在另一實施例中,所述的執行命令例如可以是隨程式時程的安排而被提供的訊號。作業系統或是管理主程式中設定有一或多個起始時間點,這些一或多個時間點可以對應相同或是不同的功能程式,或是不對應至任何的功能程式。當系統時間為所述的一或多個時間點,管理主程式即被觸發而執行相對應的功能程式(第一功能程式)或是不執行任何的功能程式。
所述的功能程式可以例如是應用程式(application, App),在此並不限制其內容、目的與編碼格式。於實務上,第一功能程式可以是預設提供的應用程式,而且是包含於獨立主程式下的一內部函式。在一實施例中,當作業系統啟動時,作業系統載入多個功能程式。這些功能程式被儲存於同一個資料夾。管理主程式用以偵測此資料夾中的功能程式,並據以建構成一資料庫(database)以供管理用途。於實務上,功能程式可以是用於證券交易的決策程式。舉例來說,不同的功能程式例如係對應於不同的商品,或是不同的功能程式係對應於不同的交易策略。或者,功能程式例如為用於車用電子。舉例來說,不同的功能程式例如係對應於不同的偵測器(sensor)。或者,功能程式例如為用於監控系統(surveillance system)。舉例來說,不同的功能程式例如係對應於不同的攝影機,或是不同的功能程式係對應於不同的監控項目,如影像中的物件、溫度、聲音或是紅外線等。上述僅為舉例示範,功能程式所能應用的範圍或所執行運算的內容並不以此為限。
於步驟S209,當判斷執行所述第一功能程式時,依據一程式管理規則選擇性地以所述管理主程式藉由所述第一運算核心111執行所述第一功能程式,或是以所述獨立主程式藉由所述第二運算核心113執行所述第一功能程式。程式管理規則例如關聯於第一功能程式的運算複雜度、第一運算核心111的運算負載、第二運算核心113的運算負載、第一運算核心111相對應的資源與第二運算核心113相對應的資源。更詳細地來說,由於獨立主程式係執行於無作業系統的環境下,因此以獨立主程式藉由第二運算核心113來執行功能程式的效能會高於以管理主程式藉由第一運算核心111來執行功能程式的效能。故在一實施例中,當第一功能程式的運算複雜度低於一預設的運算複雜度時,管理主程式自身會藉由第一運算核心111執行第一功能程式,以將較高的效能保留給其他的功能程式,同時避免額外的資料傳輸。當第一功能程式的運算複雜度高於一預設的運算複雜度時,管理主程式會將欲執行的第一功能程式交給獨立主程式,以利用較高的效能執行第一功能程式。如何將欲執行的第一功能程式交給獨立主程式的相關細節請容後再敘。
延續前述,在另一實施例中,進一步考量到第一運算核心111與第二運算核心113被分配到的資源,如果管理主程式已經可以用足夠的速度藉由第一運算核心111執行第一功能程式,則管理主程式會藉由第一運算核心111執行第一功能程式。反之,如果以管理主程式執行第一功能程式的速度不夠快,則管理主程式將第一功能程式交給獨立主程式,讓獨立主程式已較佳的執行速度來執行第一功能程式。程式管理規則可以再考量其他參數變因並再加入其他判斷條件,所屬技術領域具有通常知識者經詳閱本說明書後當可依據實際所需對程式管理規則進行設計,而不限於上述各實施例。
藉由本發明所提供的多核心運算裝置及其運算方法,多核心運算裝置可以選擇性地以第一運算核心或是第二運算核心執行第一功能程式,讓第一功能程式被以較快的速度執行。
於實務上,當程式是執行於無作業系統的環境下時,這樣的程式通常會以無窮迴圈型態不斷被執行,程式內容不太有改變的空間。然而,本發明的多核心運算裝置及其操作方法可以在盡可能保有原有效能的情況下,提升前述的獨立主程式的架構彈性。請參照圖3A與圖3B以對此進行說明,圖3A係繪示依據本發明另一實施例之多核心運算裝置的功能方塊圖,圖3B係繪示依據本發明另一實施例之多核心運算裝置的記憶體配置示意圖。相較於圖1所示的實施例,在圖3A、圖3B所示的實施例中,多核心運算裝置1更具有記憶體13。記憶體13電性連接多核心處理器11。記憶體13例如為揮發性記憶體(volatile memory)。更具體地,在與多核心運算裝置1的其他元件相容的前提下,記憶體13可以是各種類型的動態隨機存取記憶體(dynamic random access memory, DRAM)或靜態隨機存取記憶體(static random access memory, SRAM)。
記憶體13中定義有第一邏輯區段131與第二邏輯區段133。第二邏輯區段133定義有靜態子區段1331與第一動態子區段1333。第一邏輯區段131被分配給作業系統。第二邏輯區段133被分配給獨立主程式。第一動態子區段1333被分配給管理主程式。所謂分配指的是管理主程式或獨立主程式可以分別存取各自被分配到的記憶體區段。於實務上,第一邏輯區段131可以存有管理主程式所需的參數資料,甚或是存有管理主程式的程式碼。第二邏輯區段133可以存有獨立主程式所需的參數資料,甚或是存有獨立主程式的程式碼。第一邏輯區段131可以定義於作業系統啟動時或管理主程式啟動時,第二邏輯區段133可以定義於管理主程式啟動時或獨立主程式啟動時。在此並不限制各記憶體區段被定義的時間點。各記憶體區段可以不重疊也可以部分重疊,端看設計人員的實務考量與規劃。
雖然在此係舉單一個記憶體13為例來說明,但多核心運算裝置1實際上可以具有多個記憶體13。這些記憶體在物理上可以分屬不同個體,但經過共同編址,這些記憶體13的記憶體空間在邏輯上還是可以為一整體。在另一種做法中,這些記憶體13也可以不經共同編址,而被分別存取。另外需說明的是,在圖3B以及後續圖式係以多個彼此相接的矩形來示意定義於記憶體13中的第一邏輯區段131、靜態子區段1331與第一動態子區段1333,但圖面中的各矩形的相對大小並不用以限制第一邏輯區段131、靜態子區段1331與第一動態子區段1333實際儲存空間的相對大小,且圖面中的各矩形的相對位置並不用以限制各記憶體區段對應之邏輯位址的相對前後順序。甚至,第一邏輯區段131、靜態子區段1331與第一動態子區段1333在物理上也可以是多個不連續的記憶體區段。
管理主程式指示獨立主程式藉由第二運算核心113選擇性地執行第一動態子區段131中的內容。請一併參照圖4以對此作進一步說明,圖4係繪示依據本發明另一實施例之多核心運算裝置的操作方法的方法流程圖。在步驟S401中,當判斷是以獨立主程式藉由第二運算核心113執行第一功能程式時,以管理主程式將第一功能程式寫入第一動態子區段1333。在步驟S403中,以管理主程式指示獨立主程式藉由第二運算核心113執行第一動態子區段1333中的內容。
如前述地,獨立主程式係以bare-metal的方式執行於第二運算核心113,因此獨立主程式無法直接藉由作業系統的管理資源存取其他程式。而依據前述的方法,當多核心運算裝置1將第一功能程式寫入第二邏輯區段133中的第一動態子區段1333時,獨立主程式可藉由存取第二邏輯區段133中的第一動態子區段1333而取得第一功能程式。在一實施例中,第一功能程式例如先被寫入第一邏輯區段131的某一段記憶體區段中。當判斷以獨立主程式藉由第二運算核心113執行第一功能程式時,管理主程式係將第一功能程式以記憶體鏡射的方式寫入第一動態子區段1333中,以加快寫入資料至第一動態子區段1333的速度。
另一方面,在程式排程協調得當的情況下,管理主程式也可以寫入新的資料於第一動態子區段1333中,以更新第一動態子區段1333中的內容。更具體地來說,在獨立主程式沒有藉由第二運算核心113執行第一動態子區段1333中的內容時,管理主程式可以寫入另一個功能程式於第一動態子區段1333中,而覆蓋掉第一動態子區段1333中的內容。之後,當獨立主程式再次執行第一動態子區段1333中的內容時,即為執行新的功能程式。藉此,在軟硬體容許的情況下,管理主程式可以讓獨立主程式執行任意的功能程式。
請一併參照圖5,圖5係繪示依據本發明更一實施例之多核心運算裝置的功能方塊圖。在圖5的實施例中,多核心運算裝置1更具有傳輸介面15。傳輸介面電性連接多核心處理器11。傳輸介面15例如可以支援乙太網路(ethernet)的通訊標準,或是傳輸介面15也可以是PCIe介面,或是傳輸介面15也可以被設計為支援WIFI、藍牙(bluetooth)等無線通訊標準,或是傳輸介面15也可以被設計為支援第二代(second generation, 2G)行動通訊技術、第三代(third generation, 3G)行動通訊技術或第四代(fourth generation, 4G)行動通訊技術。上述舉例並不用以限制傳輸介面15的實作態樣。傳輸介面15用以接收一第二功能程式。當傳輸介面15接收到第二功能程式時,管理主程式可如前述地依據程式管理規則藉由第一運算核心111執行第二功能程式,或是管理主程式依據程式管理規則指示獨立主程式藉由第二運算核心113執行第二功能程式。於實務上,第二功能程式也可以如前述的第一功能程式而依據前述實施例中的方式被選擇性地寫入第一動態子區段1333。藉此,使用者可以即時地提供不同的功能程式給多核心運算裝置1進行運算,且多核心運算裝置1同樣可依據程式管理規則而選擇性地經由第一運算核心111或是第二運算核心113執行使用者提供的功能程式。
在本發明的部分實施例中,獨立主程式除了能執行管理主程式提供的功能程式之外,獨立主程式更能選擇性地執行多個功能程式其中之一。請接著參照圖6,圖6係繪示依據本發明再一實施例之多核心運算裝置的操作方法的方法流程圖。於步驟S601中,將第三功能程式寫入靜態子區段1331。於步驟S603中,依據執行命令判斷執行第一功能程式或第三功能程式。於步驟S605中,當判斷執行第三功能程式時,以管理主程式指示獨立主程式藉由第二運算核心113執行靜態子區段中的內容。
在圖6所示的實施例中,第三功能程式的程式碼係與獨立主程式的程式碼互為獨立,但第三功能程式所分配到的部分記憶體區段例如包括於所述的獨立主程式中。在第二邏輯區段133被分配給獨立主程式後,第三功能程式被寫入第二邏輯區段133的靜態子區段1331中。此時,對獨立主程式來說,獨立主程式能夠存取的第二邏輯區段133中存有第三功能程式(位於靜態子區段1331中),且有可能存有第一功能程式(位於第一動態子區段1333中)。依據執行命令,管理主程式提供訊號指示獨立主程式執行靜態子區段中的內容或第一動態子區段中的內容,以選擇性地執行第三功能程式或是第一功能程式。於實務上,管理主程式可以經由晶片內建記憶體(on chip memory, OCM)提供指示給獨立主程式。在一實施例中,管理主程式例如依據執行命令而寫入相對應的參數值到晶片內建記憶體中的至少一預設位址所對應的儲存空間,獨立主程式則讀取所述至少一預設位址所對應的儲存空間以取得管理主程式所提供的參數值。於實務上,獨立主程式例如被設定好每隔一段預設時間即讀取所述的儲存空間。獨立主程式係依據讀取得的參數值而執行相對應的記憶體區段(靜態子區段或是第一動態子區段)。於實務上,獨立主程式中可藉由條件判斷配合讀取得的參數值來切換執行各功能程式。在上述實施例中係舉參數值為例說明,然管理主程式所提供的資料態樣並不以此為限。
如前述地,當程式是以bare-metal的方式直接執行於硬體上的時候,這樣的程式通常不太具有改變的空間。但是,藉由如圖6所示之實施例提到的方法,本發明所提供的多核心運算裝置及其運作方法中的獨立主程式得以依據管理主程式的指示切換執行不同的功能程式,而獲得更大的彈性。而且相較於寫入新的功能程式於第一動態子區段1333來讓獨立主程式執行不同的功能程式,圖6的實施例所提供的方法可以更快地讓獨立主程式切換執行不同的功能程式。
請參照圖7,圖7係繪示依據本發明又一實施例之多核心運算裝置的記憶體配置示意圖。第二邏輯區段133更定義有第二動態子區段1335。第二運算核心113依據受控於管理主程式的獨立主程式的指示而選擇性地執行第一動態子區段1333中的內容或執行第二動態子區段1335中的內容。其中,當第二運算核心113執行第一動態子區段1333與第二動態子區段1335其中之一中的內容時,管理主程式依據程式管理規則而指示獨立主程式選擇性地執行第一動態子區段1333與第二動態子區段1335其中之另一中的內容。於實務上,管理主程式可以寫入資料至第一動態子區段1333或第二動態子區段1335。因此,理想上,在獨立主程式並未存取第二動態子區段1335之時,管理主程式可以寫入資料於第二動態子區段1335以提供新的功能程式於第二動態子區段1335中。反過來說,在獨立主程式並未存取第一動態子區段1333之時,管理主程式可以寫入資料於第一動態子區段1333以提供新的功能程式於第一動態子區段1333中。
對應於圖7所述的實施例,請一併參照圖8,圖8係繪示依據本發明再一實施例之多核心運算裝置的操作方法的方法流程圖。於步驟S801,依據程式管理規則判斷以管理主程式藉由第一運算核心111執行一第四功能程式,或以獨立主程式藉由第二運算核心113執行第四功能程式。於步驟S803,當判斷以獨立主程式藉由第二運算核心113執行第四功能程式,且獨立主程式正執行被寫入於第一動態子區段1333中的第一功能程式時,以管理主程式將第四功能程式寫入第二動態子區段1335中。於步驟S805,依據執行命令判斷是否執行第四功能程式。於步驟S807,當判斷執行第四功能程式時,以管理主程式指示獨立主程式藉由第二運算核心113選擇性地執行第二動態子區段1335中的內容。
藉此,管理主程式不需等待獨立主程式執行完第一動態子區段1333中的第一功能程式,而可以即時地提供第四功能程式給獨立主程式。當獨立主程式執行完第一動態子區段1333中的第一功能程式,獨立主程式即可切換執行第四功能程式。相仿地,前述經傳輸介面15取得的第二功能程式也可以依據此實施例中的方式被選擇性地寫入第一動態子區段1333或第二動態子區段1335。
綜上所述,本發明提供了一種多核心運算裝置及其運作方法,以多核心運算裝置來說,多核心運算裝置的第一運算核心用以執行一作業系統。當作業系統被執行時,作業系統載入有一管理主程式。多核心運算裝置的第二運算核心用以執行一獨立主程式。此多核心運算裝置可用來執行一或多個功能程式。當管理主程式依據一執行命令判斷要執行一第一功能程式時,管理主程式可更依據一程式管理規則來決定將此第一功能程式配置給多核心運算裝置的多個運算核心的其中之一來執行。藉此,在以往的多核心處理架構下,讓廠商跟使用者可以更有彈性地運用各個運算核心,並可提升運算的效能。
1 多核心運算裝置 11 多核心處理器 111 第一運算核心 113 第二運算核心 13 記憶體 131 第一邏輯區段 133 第二邏輯區段 1331 靜態子區段 1333 第一動態子區段 1335 第二動態子區段 15 傳輸介面
圖1係繪示依據本發明一實施例之多核心運算裝置的功能方塊圖。
圖2係繪示依據本發明一實施例之多核心運算裝置的操作方法的步驟流程圖。
圖3A係繪示依據本發明另一實施例之多核心運算裝置的功能方塊圖。
圖3B係繪示依據本發明另一實施例之多核心運算裝置的記憶體配置示意圖。
圖4係繪示依據本發明另一實施例之多核心運算裝置的操作方法的方法流程圖。
圖5係繪示依據本發明更一實施例之多核心運算裝置的功能方塊圖。
圖6係繪示依據本發明再一實施例之多核心運算裝置的操作方法的方法流程圖。
圖7係繪示依據本發明又一實施例之多核心運算裝置的記憶體配置示意圖。
圖8係繪示依據本發明又一實施例之多核心運算裝置的操作方法的方法流程圖。
無
Claims (7)
- 一種多核心運算裝置的運作方法,適用於一多核心運算裝置,該多核心運算裝置具有一多核心處理器與一記憶體,該記憶體電性連接該多核心處理器,該記憶體定義有一第一邏輯區段與一第二邏輯區段,該第二邏輯區段定義有一第一動態子區段,該第一邏輯區段被分配給一作業系統,該第二邏輯區段被分配給一獨立主程式,該第一動態子區段被分配給一管理主程式,該多核心運算裝置的運作方法包括:以該多核心處理器的一第一運算核心執行該作業系統;載入該管理主程式於該作業系統;以該多核心處理器的一第二運算核心執行該獨立主程式;依據一執行命令判斷是否執行一第一功能程式;當判斷執行該第一功能程式時,依據一程式管理規則選擇性地以該管理主程式藉由該第一運算核心執行該第一功能程式,或是以該獨立主程式藉由該第二運算核心執行該第一功能程式;當判斷是以該獨立主程式藉由該第二運算核心執行該第一功能程式時,以該管理主程式將該第一功能程式寫入該第一動態子區段;以及以該管理主程式指示該獨立主程式藉由該第二運算核心執行該第一動態子區段中的內容。
- 如請求項1所述的多核心運算裝置的運作方法,其中該多核心運算裝置更具有一傳輸介面,該傳輸介面用以接收一第二功能程式,該運作方法更包括: 當該多核心運算裝置以該傳輸介面接收到該第二功能程式時,依據該執行命令判斷是否執行該第二功能程式;以及當判斷執行該第二功能程式時,依據該程式管理規則選擇性地以該管理主程式藉由該第一運算核心執行該第二功能程式,或是以該獨立主程式藉由該第二運算核心執行該第二功能程式。
- 如請求項1所述的多核心運算裝置的運作方法,其中該第二邏輯區段定義有一第二動態子區段,該運作方法更包括:依據該程式管理規則判斷以該管理主程式藉由該第一運算核心執行一第四功能程式,或以該獨立主程式藉由該第二運算核心執行該第四功能程式;當判斷以該獨立主程式藉由該第二運算核心執行該第四功能程式,且該獨立主程式正執行被寫入於該第一動態子區段中的該第一功能程式時,以該管理主程式將該第四功能程式寫入該第二動態子區段中;依據該執行命令判斷是否執行該第四功能程式;以及當判斷執行該第四功能程式時,以該管理主程式指示該獨立主程式藉由該第二運算核心選擇性地執行該第二動態子區段中的內容。
- 一種多核心運算裝置,包括:一多核心處理器,包括:一第一運算核心,用以執行一作業系統與執行一管理主程式,當該作業系統執行時,該管理主程式被載入該作業系統;以及一第二運算核心,用以執行一獨立主程式;以及一記憶體,電性連接該多核心處理器,該記憶體係定義有一第一邏輯區段與一第二邏輯區段,該第二邏輯區段定義有一靜態子區段與一第一動態子區 段,該第一邏輯區段被分配給該作業系統,該第二邏輯區段被分配給該獨立主程式;其中,該管理主程式依據一程式管理規則選擇性地藉由該第一運算核心執行一第一功能程式,或是該管理主程式依據該程式管理規則指示該獨立主程式藉由該第二運算核心執行該第一功能程式;其中,該管理主程式選擇性地將該第一功能程式寫入該第一動態子區段,且該管理主程式指示該獨立主程式藉由該第二運算核心選擇性地執行該第一動態子區段中的內容。
- 如請求項4所述的多核心運算裝置,其中,該多核心運算裝置更具有一傳輸介面,該傳輸介面用以接收一第二功能程式,當該傳輸介面接收到該第二功能程式時,該管理主程式依據該執行命令與該程式管理規則選擇性地將該第二功能程式寫入該第一動態子區段中。
- 如請求項4所述的多核心運算裝置,其中,當該第二邏輯區段被分配給該獨立主程式時,該獨立主程式的一第三功能程式被寫入該靜態子區段中,該管理主程式指示該獨立主程式藉由該第二運算核心選擇性地執行該靜態子區段中的內容或是執行該第一動態子區段中的內容。
- 如請求項4所述的多核心運算裝置,其中,該第二邏輯區段更定義有一第二動態子區段,該第二運算核心依據受控於該管理主程式的該獨立主程式的指示選擇性地執行該第一動態子區段中的內容或執行該第二動態子區段中的內容; 其中,當該第二運算核心執行該第一動態子區段與該第二動態子區段其中之一中的內容時,該管理主程式依據該程式管理規則選擇性地更新該第一動態子區段與該第二動態子區段其中之另一中的內容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107137140A TWI698798B (zh) | 2018-10-22 | 2018-10-22 | 一種多核心運算裝置及其運作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107137140A TWI698798B (zh) | 2018-10-22 | 2018-10-22 | 一種多核心運算裝置及其運作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202016733A TW202016733A (zh) | 2020-05-01 |
TWI698798B true TWI698798B (zh) | 2020-07-11 |
Family
ID=71895595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107137140A TWI698798B (zh) | 2018-10-22 | 2018-10-22 | 一種多核心運算裝置及其運作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI698798B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150331720A1 (en) * | 2012-10-19 | 2015-11-19 | uCIRRUS | Multi-threaded, lockless data parallelization |
TW201635144A (zh) * | 2015-03-16 | 2016-10-01 | 啟碁科技股份有限公司 | 用於追蹤程式執行狀態的方法與多核心處理系統 |
US9778954B2 (en) * | 2009-06-22 | 2017-10-03 | Citrix Systems, Inc. | Systems and methods for handling limit parameters for a multi-core system |
TWI603207B (zh) * | 2010-09-25 | 2017-10-21 | 英特爾股份有限公司 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
-
2018
- 2018-10-22 TW TW107137140A patent/TWI698798B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9778954B2 (en) * | 2009-06-22 | 2017-10-03 | Citrix Systems, Inc. | Systems and methods for handling limit parameters for a multi-core system |
TWI603207B (zh) * | 2010-09-25 | 2017-10-21 | 英特爾股份有限公司 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
US20150331720A1 (en) * | 2012-10-19 | 2015-11-19 | uCIRRUS | Multi-threaded, lockless data parallelization |
TW201635144A (zh) * | 2015-03-16 | 2016-10-01 | 啟碁科技股份有限公司 | 用於追蹤程式執行狀態的方法與多核心處理系統 |
Also Published As
Publication number | Publication date |
---|---|
TW202016733A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6199477B2 (ja) | ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法 | |
JP6627180B2 (ja) | 改善されたハイブリッドスリープ電力管理のための技術 | |
US7058945B2 (en) | Information processing method and recording medium therefor capable of enhancing the executing speed of a parallel processing computing device | |
US20100268862A1 (en) | Reconfigurable processor and method of reconfiguring the same | |
WO2004079583A1 (ja) | データ転送制御装置およびdmaデータ転送制御方法 | |
TW201602791A (zh) | 具有重組態系統單晶片並支援儘記憶體通訊模式之常開處理器之系統單晶片 | |
CN115658277B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
JP6701398B2 (ja) | リモートユーティリティによるファームウェアの更新 | |
CN111989656A (zh) | 可配置的恢复状态 | |
CN107562645B (zh) | 一种内存页管理方法及计算设备 | |
JP2017130194A (ja) | メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体 | |
WO2013035246A1 (ja) | 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路 | |
CN113826072B (zh) | 系统管理模式中的代码更新 | |
WO2020200244A1 (zh) | 数据处理方法及装置以及相关产品 | |
US5963738A (en) | Computer system for reading/writing system configuration using I/O instruction | |
KR20140083530A (ko) | 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법 | |
US7958344B2 (en) | Method for adjusting set-up default value of bios and mainboard using the same method | |
US9934100B2 (en) | Method of controlling memory swap operation and data processing system using same | |
TWI698798B (zh) | 一種多核心運算裝置及其運作方法 | |
CN111078301B (zh) | 一种多核心运算装置及其运作方法 | |
US10852836B2 (en) | Visual transformation using a motion profile | |
US20190213045A1 (en) | Method and electronic device for executing data reading/writing in volume migration | |
CN111868698A (zh) | 空闲空间直通 | |
KR20100050098A (ko) | 영상처리장치 및 그 제어 방법 | |
US8321606B2 (en) | Systems and methods for managing memory using multi-state buffer representations |