欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多核處理器系統(tǒng)、控制程序以及控制方法

文檔序號:6352206閱讀:160來源:國知局
專利名稱:多核處理器系統(tǒng)、控制程序以及控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及控制任務(wù)的分配的多核處理器系統(tǒng)、控制程序以及控制方法。
背景技術(shù)
以往,CPU (Central Processing Unit :中央處理器)具有高速緩存,在高速緩存中儲存有使用頻度高的數(shù)據(jù)、執(zhí)行頻度高的程序的執(zhí)行代碼(例如,參照下述專利文獻I)。所謂使用頻度高的數(shù)據(jù)例如是指在執(zhí)行中的程序內(nèi)被多次參照的數(shù)據(jù)。所謂的執(zhí)行頻度高的程序是指例如每隔一定時間執(zhí)行的多個步驟的程序(以下,稱為“周期執(zhí)行程序”)。
另外,公知有在多核處理器系統(tǒng)中,在執(zhí)行被中斷的任務(wù)被再次執(zhí)行的情況下,在與中斷前執(zhí)行的CPU相同的CPU中調(diào)度該任務(wù)的技術(shù)(例如,參照下述專利文獻2)。由此, 能夠減少高速緩存未命中。并且,公知有在具有本地存儲器的多核處理器系統(tǒng)中,基于本地存儲器的有效活用程度確定在哪個本地存儲器上捆綁哪個任務(wù)的技術(shù)(例如,參照下述專利文獻3)。由此,能夠防止數(shù)據(jù)轉(zhuǎn)送引起的系統(tǒng)開銷的增加。
專利文獻I :日本特開2004 - 192403號公報
專利文獻2 日本特開平08 - 30562號公報
專利文獻3 日本特開平04 - 338837號公報
但若數(shù)據(jù)加載增加,則很多儲存在高速緩存的數(shù)據(jù)、程序的執(zhí)行代碼被移出。例如,在不具有本地存儲器的多核處理器系統(tǒng)中,在較多進行I / OCInput / Output:輸入/ 輸出)處理的任務(wù)被分配到一個CPU的情況下,來自共享存儲器的數(shù)據(jù)加載增加。另外,若一個CPU執(zhí)行多個任務(wù),則儲存在指令高速緩存的指令被頻繁移出。
在向與分配了指令代碼大小較大的任務(wù)的CPU、執(zhí)行多個任務(wù)的CPU相同的CPU分配了周期執(zhí)行程序的情況下,存在周期執(zhí)行程序的執(zhí)行代碼被從高速緩存移出的概率增加這樣的問題點。即、存在CPU將周期執(zhí)行程序的執(zhí)行代碼從共享存儲器向高速緩存再次加載的次數(shù)增加的問題點。
另外,由于CPU從共享存儲器讀出該執(zhí)行代碼的時間比該CPU從高速緩存讀出執(zhí)行代碼的時間長,所以在該CPU不將該執(zhí)行代碼再次加載到高速緩存而執(zhí)行的情況下,存在系統(tǒng)開銷增加的問題點。
因此,例如,通過鎖定儲存有周期執(zhí)行程序的執(zhí)行代碼的高速緩存的區(qū)域,能夠使該執(zhí)行代碼不被從高速緩存移出。但若分配到執(zhí)行該周期執(zhí)行程序的CPU的其它任務(wù)是高速緩存未命中較大的任務(wù),則由于能夠由該其它的任務(wù)使用的高速緩存的區(qū)域減少,因此該其它的任務(wù)的高速緩存未命中增大。其結(jié)果,存在CPU的性能降低這樣的問題點。發(fā)明內(nèi)容
為了消除上述現(xiàn)有技術(shù)的問題點,本發(fā)明的目的在于提供能夠不使特定的程序從高速緩存移出,從而能夠減小對被分配到與周期執(zhí)行程序相同的CPU的任務(wù)的執(zhí)行帶來的影響的多核處理器系統(tǒng)、控制程序以及控制方法。
根據(jù)本發(fā)明的一個觀點,提供具備以下單元的多核處理器系統(tǒng)確定單元,其基于分配到各核的任務(wù)的信息量,從多核處理器中確定出與將特定的程序儲存到高速緩存的一個核相比高速緩存未命中率低的其它核;移動單元,其將上述特定的程序從上述一個核的高速緩存移動到通過上述確定單元確定出的其它核的高速緩存;設(shè)定單元,其在通過上述移動單元將上述特定的程序移動到了上述其它核的高速緩存后,將上述其它核的高速緩存中儲存了上述特定的程序的區(qū)域設(shè)定為寫入禁止區(qū)域。
根據(jù)本多核處理器系統(tǒng)、控制程序、以及控制方法,實現(xiàn)了能夠使特定的程序不從高速緩存移出,使對分配到與周期執(zhí)行程序相同的CPU的任務(wù)的執(zhí)行的影響減小的效果。


圖I是表示多核處理器系統(tǒng)的硬件的框圖。
圖2是表不大小表152的一個例子的說明圖。
圖3是表不識別信息153的一個例子的說明圖。
圖4是多核處理器系統(tǒng)100的功能框圖。
圖5是表示鎖定加載了周期執(zhí)行程序的執(zhí)行代碼502的區(qū)域的例子的說明圖。
圖6是表示執(zhí)行周期執(zhí)行程序的例子的說明圖。
圖7是表示不是周期執(zhí)行程序的任務(wù)的分配的說明圖。
圖8是表示指令代碼大小的合計值的計算例的說明圖。
圖9是表示執(zhí)行代碼502的移動例的說明圖。
圖10是表示使儲存有執(zhí)行代碼502的區(qū)域鎖定的例子的說明圖。
圖11是表示0S141的控制處理順序的流程圖(其I)。
圖12是表示0S141的控制處理順序的流程圖(其2)。
圖13是表示基于監(jiān)測控制器105的移動處理的流程圖。
圖14是表示基于下一個指定目標(biāo)CPU的寫入禁止設(shè)定處理的流程圖。
圖15是表示基于當(dāng)前指定目標(biāo)CPU的暫時停止處理的流程圖。
具體實施方式
以下對本多核處理器系統(tǒng)、控制程序以及控制方法的優(yōu)選實施方式進行詳細(xì)說明。首先,此處,對上述的周期執(zhí)行程序進行說明。周期執(zhí)行程序是每隔一定時間執(zhí)行的程序,并且不是通過其它的事件起動的程序。在一般的任務(wù)中執(zhí)行的定時和執(zhí)行時間不確定, 但在周期執(zhí)行程序中執(zhí)行的定時和執(zhí)行時間沒有變化。作為周期執(zhí)行程序例如舉出移動電話的通信待接程序。無論移動電話正在進行何種任務(wù)處理,移動電話的通信待接程序都定期地向基站詢問通信來檢測通信。
另外,在本實施方式的多核處理器系統(tǒng)中,所謂的多核處理器是指安裝了多個核的處理器。若安裝多個核,則可以是安裝了多個核的單一的處理器,也可以是單核處理器并行處理的處理器組。此外,在本實施方式中,為了使說明簡單化,以單核處理器并行處理的處理器組為例進行說明。
多核處理器系統(tǒng)的硬件
圖I是表示多核處理器系統(tǒng)的硬件的框圖。在圖I中,多核處理器系統(tǒng)100具有CN 102934095 A書明說3/7頁主CPUlOl、協(xié)CPU102 協(xié)CPU104、共享存儲器107、和監(jiān)測控制器105。另外,各CPU和共享存儲器107分別經(jīng)由總線106連接。各CPU和監(jiān)測控制器105分別經(jīng)由與總線106不同的總線連接。
此處,在主CPUlOl和協(xié)CPU102 協(xié)CPU104中,例如分別具有核、寄存器和高速緩存。主CPUlOl執(zhí)行OS (Operating System :操作系統(tǒng)),管理多核處理器系統(tǒng)100的整體的控制。0S141具有對將軟件的各進程分配到哪個CPU進行控制的控制程序,具有對分配到主CPUlOl的任務(wù)的切換進行控制的功能。
協(xié)CPU102 協(xié)CPU104分別執(zhí)行0S142 0S144。0S142 0S144具有對分配到各CPU的任務(wù)的切換進行控制的功能。
各CPU的高速緩存具有指令高速緩存和數(shù)據(jù)高速緩存的兩種高速緩存。指令高速緩存是保持程序的高速緩存,數(shù)據(jù)高速緩存是對程序執(zhí)行中使用的數(shù)據(jù)進行保持的高速緩存。
主CPUlOl作為高速緩存具有指令高速緩存111和數(shù)據(jù)高速緩存121,協(xié)CPU102作為高速緩存具有指令高速緩存112和數(shù)據(jù)高速緩存122。協(xié)CPU103作為高速緩存具有指令高速緩存113和數(shù)據(jù)高速緩存123,協(xié)CPU104作為高速緩存具有指令高速緩存114和數(shù)據(jù)高速緩存124。
各CPU的高速緩存把握以及管理更新狀態(tài),通過與其它的高速緩存交換更新狀態(tài)的信息,各CPU的高速緩存能夠把握在哪個高速緩存存在最新的數(shù)據(jù)。監(jiān)測控制器(snoop controller) 105進行該信息交換。
另外,各CPU具有寄存器。主CPU101具有寄存器131,協(xié)CPU102具有寄存器132。 協(xié)CPU103具有寄存器133,協(xié)CPU104具有寄存器134。
另外,監(jiān)測控制器105若例如接受包含與移動源的高速緩存、移動目標(biāo)的高速緩存、和移動對象相關(guān)的信息的移動指示,則從移動源的高速緩存復(fù)制移動對象,將復(fù)制的移動對象儲存到移動目標(biāo)的高速緩存。由此,監(jiān)測控制器105從移動源的高速緩存向移動目標(biāo)的高速緩存移動移動對象。
另外,在本實施方式中,儲存周期執(zhí)行程序的執(zhí)行代碼的高速緩存的區(qū)域無論是哪個CPU的高速緩存都設(shè)為相同地址的區(qū)域。例如,使用者可以預(yù)先決定將周期執(zhí)行程序的執(zhí)行代碼儲存在高速緩存的前端的區(qū)域。
共享存儲器107例如是被主CPU101和協(xié)CPU102 協(xié)CPU104共享的存儲器。共享存儲器107例如存儲有進程管理表151、大小表152、識別信息153、和0S141 0S144的啟動程序等程序。共享存儲器107例如具有ROM (Read Only Memory :只讀存儲器)、RAM (Random Access Memory :隨機存取存儲器)、和快閃 ROM (Flash ROM)等。
例如,ROM或者快閃ROM存儲該程序等,RAM被作為主CPU101和協(xié)CPU102 協(xié) CPU104的工作區(qū)域使用。存儲在共享存儲器107的該程序被加載到各CPU,從而使各CPU 執(zhí)行被編碼的處理。
所謂的進程管理表151例如是表示各任務(wù)被分配到哪個CPU,或被分配的CPU是否正在執(zhí)行該任務(wù)的信息。各CPU讀出進程管理表151存儲到各CPU的高速緩存。若0S141 將任務(wù)分配到主CPU101以及協(xié)CPU102 協(xié)CPU104中的任意一個CPU,則向進程管理表151 登記該任務(wù)被分配到哪個CPU。5
并且,若產(chǎn)生任務(wù)的切換,則各CPU向進程管理表151登記哪個任務(wù)成為了執(zhí)行狀態(tài)。另外,若任務(wù)的執(zhí)行結(jié)束,則各CPU從進程管理表151刪除該結(jié)束了的任務(wù)的信息。
圖2是表不大小表152的一個例子的說明圖。大小表152是表不各任務(wù)的指令代碼大小的表。大小表152具有任務(wù)名稱的項目201和指令代碼大小的項目202。在任務(wù)名稱的項目201保持有任務(wù)名稱,在指令代碼大小的項目202保持有任務(wù)的指令代碼大小。所謂的指令代碼大小例如是指任務(wù)的步驟數(shù)。
例如,在大小表152中,在任務(wù)名稱的項目201的值為任務(wù)A的情況下,指令代碼大小的項目202的值為300。
圖3是表示識別信息153的一個例子的說明圖。識別信息153是表示哪個任務(wù)是周期執(zhí)行程序的任務(wù)的信息。識別信息153具有任務(wù)名稱的項目301。例如,通過識別信息 153判別出任務(wù)G是周期執(zhí)行程序的任務(wù)。
多核處理器系統(tǒng)100的功能模塊
圖4是多核處理器系統(tǒng)100的功能框圖。多核處理器系統(tǒng)100例如具有確定部 401、移動部402、和設(shè)定部403 設(shè)定部406。確定部401和設(shè)定部403由被主CPUlOl執(zhí)行的0S141具有。移動部402由監(jiān)測控制器105具有。設(shè)定部404由被協(xié)CPU102執(zhí)行的 0S142具有。設(shè)定部405由被協(xié)CPU103執(zhí)行的0S143具有。設(shè)定部406由被協(xié)CPU104執(zhí)行的0S144具有。
確定部401基于分配到各CPU的任務(wù)的信息量,從多核處理器中確定出與在高速緩存中儲存特定的程序的一個CPU相比高速緩存未命中率低的其它CPU。
在本實施方式中,將各任務(wù)的信息量稱為指令代碼大小,將指令代碼大小設(shè)為任務(wù)的步驟數(shù),但并不限于此,例如,也可以設(shè)為任務(wù)的數(shù)據(jù)大小。若指令代碼大小、數(shù)據(jù)大小小,則使用指令高速緩存的區(qū)域較少,所以高速緩存未命中率變小。另外,在本實施方式中, 列舉周期執(zhí)行程序作為特定的程序,但并不限于此,也可以將使用者選擇的程序作為特定的程序。
接下來,移動部402將特定的程序從上述一個核的高速緩存移動到通過確定部 401確定出的其它核的高速緩存。
在確定出的CPU中動作的OS具有的設(shè)定部在通過移動部402使特定的程序移動到其它的CPU的高速緩存后,將其它的CPU的高速緩存中儲存了特定的程序的區(qū)域設(shè)定為寫入禁止區(qū)域。并且,移動源的設(shè)定部在特定程序移動后,解除設(shè)定為寫入禁止區(qū)域的特定程序的區(qū)域的禁止設(shè)定。
根據(jù)以上所述,使用附圖對實施例進行說明。在實施例中,將一個核作為當(dāng)前指定目標(biāo)CPU,將其它的核作為下一個指定目標(biāo)CPU。
圖5是表示鎖定加載了周期執(zhí)行程序的執(zhí)行代碼502的區(qū)域的例子的說明圖。首先,0S141將周期執(zhí)行程序的執(zhí)行代碼502加載至主CPUlOl的指令高速緩存111。并且, 0S141通過寄存器設(shè)定鎖定加載了該執(zhí)行代碼502的區(qū)域。所謂鎖定被加載的區(qū)域表示將被加載的區(qū)域設(shè)定為寫入禁止區(qū)域。
各CPU的寄存器具有與高速緩存相關(guān)的寄存器,能夠在與高速緩存相關(guān)的寄存器中設(shè)定高速緩存的工作區(qū)域。因此,通過將該被加載的區(qū)域從高速緩存的工作區(qū)域分離,該被加載的區(qū)域被鎖定。另外,0S141將當(dāng)前指定目標(biāo)CPU和下一個指定目標(biāo)CPU設(shè)定為主CPUlOl。
圖6是表示執(zhí)行周期執(zhí)行程序的例子的說明圖。若鎖定周期執(zhí)行程序的執(zhí)行代碼 502,則0S141監(jiān)視執(zhí)行等待隊列501,若在執(zhí)行等待隊列501中任務(wù)被累積,則0S141執(zhí)行 Cl):取出任務(wù)G。
此處,所謂的執(zhí)行等待隊列501是作為主0S141的0S141具有的隊列。例如,通過用戶操作而產(chǎn)生了分配指示的任務(wù)進入執(zhí)行等待隊列501,0S141從執(zhí)行等待隊列501取出任務(wù),0S141決定向哪個CPU分配。
并且,0S141基于識別信息153判斷任務(wù)G是否是周期執(zhí)行程序。由于任務(wù)G是周期執(zhí)行程序,所以0S141向當(dāng)前指定目標(biāo)CPU分配任務(wù)G,0S141執(zhí)行(2):執(zhí)行任務(wù)G。
圖7是表示不是周期執(zhí)行程序的任務(wù)的分配的說明圖。在圖7中,任務(wù)A被分配到主CPUlOl,任務(wù)B和任務(wù)E被分配到協(xié)CPU102,任務(wù)C被分配到協(xié)CPU103,任務(wù)D被分配到協(xié)CPU104。并且,0S141執(zhí)行(I):從執(zhí)行等待隊列501取出任務(wù),基于識別信息153判斷取出的任務(wù)是否是周期執(zhí)行程序。此處,取出的任務(wù)是任務(wù)F,任務(wù)F不是周期執(zhí)行程序。 0S141將任務(wù)F分配到任意的CPU。此處,執(zhí)行(2):任務(wù)F被分配到主CPU101。
圖8是表示指令代碼大小的合計值的計算例的說明圖。接下來,0S141執(zhí)行(3) 基于大小表152計算各CPU的合計指令代碼大小。任務(wù)A的指令代碼大小是300,任務(wù)F的指令代碼大小是250,所以主CPUlOl的合計指令代碼大小是550。任務(wù)B的指令代碼大小是300,任務(wù)E的指令代碼大小是150,所以協(xié)CPU102的合計指令代碼大小是450。
任務(wù)C的指令代碼大小是400,所以協(xié)CPU103的合計指令代碼大小是400。任務(wù) D的指令代碼大小是450,所以協(xié)CPU104的合計指令代碼大小是450。
接下來,0S141確定合計指令代碼大小比當(dāng)前指定目標(biāo)CPU小的CPU。S卩、0S141 能夠確定高速緩存未命中率比當(dāng)前指定目標(biāo)CPU小的CPU。此處,確定出協(xié)CPU102 協(xié) CPUI04。
確定出的CPU是多個,所以例如0S141選擇合計指令代碼大小最低的協(xié)CPU103。 即、0S141能夠在高速緩存未命中率比當(dāng)前指定目標(biāo)CPU小的CPU中,確定出高速緩存未命中率最小的協(xié)CPU103。0S141執(zhí)行(4):將確定出的協(xié)CPU103設(shè)定為下一個指定目標(biāo)CPU。
圖9是表示執(zhí)行代碼502的移動例的說明圖。接下來,0S141執(zhí)行(5):向作為下一個指定目標(biāo)CPU的協(xié)CPU103指示暫時停止執(zhí)行。并且,0S143 (在作為下一個指定目標(biāo) CPU的協(xié)CPU103上動作的OS)暫時停止任務(wù)C的執(zhí)行。
0S141執(zhí)行(6):向監(jiān)測控制器105通知使周期執(zhí)行程序的執(zhí)行代碼502從當(dāng)前指定目標(biāo)CPU的指令高速緩存移動到下一個指定目標(biāo)CPU的指令高速緩存的移動指示。在該移動指示中,移動源是當(dāng)前指定目標(biāo)CPU的指令高速緩存,移動目標(biāo)是下一個指定目標(biāo)CPU 的指令高速緩存,移動對象是執(zhí)行代碼502。
并且,若監(jiān)測控制器105接受移動指示,則監(jiān)測控制器105執(zhí)行(7):將周期執(zhí)行程序的執(zhí)行代碼502從當(dāng)前指定目標(biāo)CPU的指令高速緩存移動到下一個指定目標(biāo)CPU的指令高速緩存。監(jiān)測控制器105執(zhí)行(8):向0S141通知移動完成。
圖10是表示鎖定儲存有執(zhí)行代碼502的區(qū)域的例子的說明圖。接下來,0S141執(zhí)行(9):向下一個指定目標(biāo)CPU通知鎖定下一個指定目標(biāo)CPU的指令高速緩存的區(qū)域中儲存有執(zhí)行代碼502的區(qū)域的鎖定指示。0S143執(zhí)行(10):通過寄存器設(shè)定鎖定執(zhí)行對象,0S143執(zhí)行(11):向0S141通知鎖定結(jié)束。
0S141若接受鎖定結(jié)束,則執(zhí)行(12):向下一個指定目標(biāo)CPU通知暫時停止解除指示。并且,0S143解除任務(wù)C的暫時停止。0S141執(zhí)行(13):通過寄存器設(shè)定解除主CPUlOl 的指令高速緩存111的鎖定。0S141執(zhí)行(14):將當(dāng)前指定目標(biāo)CPU設(shè)定為協(xié)CPU103。
0S141的控制處理順序
圖11以及圖12是表示0S141的控制處理順序的流程圖。首先,0S141獲取大小表152和識別信息153 (步驟SI 101),將主CPUlOl設(shè)定為當(dāng)前指定目標(biāo)CPU以及下一個指定目標(biāo)CPU (步驟S1102)。接下來,0S141向主CPUlOl的指令高速緩存111加載周期執(zhí)行程序的執(zhí)行代碼(步驟S1103),鎖定加載的執(zhí)行代碼的區(qū)域(步驟S1104)。
接下來,0S141判斷主OS的執(zhí)行等待隊列501是否為空(步驟S1105),在主OS的執(zhí)行等待隊列501為空的情況下(步驟S1105 是”),返回到步驟S1105。此外,主OS是 0S141o另一方面,在判斷為主OS的執(zhí)行等待隊列501非空的情況下(步驟S1105 否”), 0S141從主OS的執(zhí)行等待隊列501獲取任務(wù)(步驟S1106)。
接下來,0S141判斷取出的任務(wù)是否是周期執(zhí)行程序(步驟S1107)。在0S141判斷為取出的任務(wù)是周期執(zhí)行程序的情況下(步驟S1107 是”),向當(dāng)前指定目標(biāo)CPU分配取出的任務(wù)(步驟SI 108),移至步驟SI 105。
另一方面,在0S141判斷為取出的任務(wù)不是周期執(zhí)行程序的情況下(步驟S1107 “否”),將取出的任務(wù)分配到任意的CPU (步驟S1109)。并且,0S141計算按照每個CPU分配的任務(wù)的指令代碼大小的合計值(步驟S1110)。
0S141確定計算結(jié)果比當(dāng)前指定目標(biāo)CPU小的CPU(步驟S1111)。即、確定高速緩存未命中率比當(dāng)前指定目標(biāo)CPU低的CPU。并且,0S141判斷是否確定出了計算結(jié)果比當(dāng)前指定目標(biāo)CPU小的CPU(步驟S1112),在判斷為未確定出該小的CPU的情況下(步驟S1112 “否”),返回步驟S1105。
另一方面,在0S141判斷為確定出了該小的CPU的情況下(步驟S1112 是”),將確定出的CPU設(shè)定為下一個指定目標(biāo)CPU (步驟S1113)。例如,在確定了多個CPU的情況下,將計算結(jié)果最小的CPU指定為下一個指定目標(biāo)CPU。由此,能夠?qū)⒅芷趫?zhí)行程序儲存到高速緩存使用量最少的CPU。由此,能夠使對其它任務(wù)的執(zhí)行的影響為最小限。
并且,0S141向下一個指定目標(biāo)CPU通知執(zhí)行暫時停止指示(步驟S1114)。接下來,0S141將從當(dāng)前指定目標(biāo)CPU的指令高速緩存到下一個指定目標(biāo)CPU的指令高速緩存的周期執(zhí)行程序的移動指示通知給監(jiān)測控制器105 (步驟S1115),判斷是否從監(jiān)測控制器 105接受了移動結(jié)束的通知(步驟S1116)。在0S141判斷為未從監(jiān)測控制器105接受移動結(jié)束的通知的情況下(步驟S1116 否”),返回到步驟S1116。
在0S141判斷為從監(jiān)測控制器105接受了移動結(jié)束的通知的情況下(步驟S1116 “是”),向下一個指定目標(biāo)CPU通知鎖定加載了周期執(zhí)行程序的區(qū)域的指示(步驟S1117)。 并且,0S141判斷是否從下一個指定目標(biāo)CPU接受了鎖定結(jié)束(步驟SI 118)。在0S141判斷為未從下一個指定目標(biāo)CPU接受到鎖定結(jié)束的情況下(步驟S1118:“否”),返回步驟S1118。
在0S141判斷為從下一個指定目標(biāo)CPU接受了鎖定結(jié)束的情況下(步驟S1118 : “是”),向下一個指定目標(biāo)CPU通知暫時停止解除指示(步驟S1119)。并且,0S141將解除當(dāng)前指定目標(biāo)CPU的指令高速緩存的鎖定的解除指示通知給當(dāng)前指定目標(biāo)CPU(步驟S1120)。8
接下來,0S141判斷是否從下一個指定目標(biāo)CPU接受了鎖定結(jié)束(步驟S1121)。在 0S141判斷為未從下一個指定目標(biāo)CPU接受到鎖定結(jié)束的情況下(步驟S1121 否”),返回步驟S112 1。在OS 141判斷為從下一個指定目標(biāo)CPU接受了鎖定結(jié)束的情況下(步驟S1121 : “是”),將當(dāng)前指定目標(biāo)CPU設(shè)定為下一個指定目標(biāo)CPU (步驟S1122),返回步驟S1105。
基于監(jiān)測控制器105的移動處理
圖13是表示基于監(jiān)測控制器105的移動處理的流程圖。首先,監(jiān)測控制器105 判斷是否接受了移動指示(步驟S1301),在判斷為未接受移動指示的情況下(步驟S1301 “否”),返回步驟S1301。
監(jiān)測控制器105在判斷為接受了移動指示的情況下(步驟S1301 是”),將周期執(zhí)行程序的執(zhí)行代碼從當(dāng)前指定目標(biāo)CPU的指令高速緩存移動到下一個指定目標(biāo)CPU的指令高速緩存(步驟S1302)。接下來,監(jiān)測控制器105向主OS通知移動結(jié)束(步驟S1303),返回步驟S1301。
基于下一個指定目標(biāo)CPU的寫入禁止設(shè)定處理
圖14是表示基于下一個指定目標(biāo)CPU的寫入禁止設(shè)定處理的流程圖。首先,下一個指定目標(biāo)CPU判斷是否接受了鎖定指示(步驟S1401)。在下一個指定目標(biāo)CPU判斷為未接受鎖定指示的情況下(步驟S1401 否”),返回步驟S1401。
另一方面,在下一個指定目標(biāo)CPU判斷為接受了鎖定指示的情況下(步驟S1401 “是”),通過設(shè)定與高速緩存相關(guān)的寄存器來鎖定指定區(qū)域(步驟S1402)。而且,下一個指定目標(biāo)CPU向主OS通知鎖定結(jié)束(步驟S1403)。此外,主OS是0S141。
基于當(dāng)前指定目標(biāo)CPU的暫時停止處理
圖15是表示基于當(dāng)前指定目標(biāo)CPU的暫時停止處理的流程圖。首先,當(dāng)前指定目標(biāo)CPU判斷是否接受了鎖定解除指示(步驟S1501)。在當(dāng)前指定目標(biāo)CPU判斷為未接受鎖定解除指示的情況下(步驟S1501 否”),返回步驟S1501。
另一方面,在當(dāng)前指定目標(biāo)CPU判斷為接受了鎖定解除指示的情況下(步驟 S1501 是”),通過設(shè)定與高速緩存相關(guān)的寄存器來解除指定區(qū)域的鎖定(步驟S1502)。并且,當(dāng)前指定目標(biāo)CPU向主OS通知解除結(jié)束(步驟S1503)。
如以上說明所示,根據(jù)多核處理器系統(tǒng)、控制程序以及控制方法,將周期執(zhí)行程序移動到與儲存有周期執(zhí)行程序的CPU相比高速緩存未命中率低的CPU的高速緩存。并且,將該低的CPU的高速緩存中儲存了周期執(zhí)行程序的區(qū)域設(shè)定為寫入禁止區(qū)域。由此,由于周期執(zhí)行程序常駐于高速緩存,不會從高速緩存移出,所以能夠防止再次加載周期執(zhí)行程序。 并且,即使周期執(zhí)行程序常駐于CPU的高速緩存,也能夠使對分配到該CPU的其它任務(wù)的執(zhí)行的影響減小。即、能夠抑制在與分配到各CPU的周期執(zhí)行程序不同的其它任務(wù)的執(zhí)行時產(chǎn)生高速緩存未命中,能夠防止CPU的性能降低。
附圖標(biāo)記說明
100…多核處理器系統(tǒng)
105…監(jiān)測控制器
111、112、113、114…指令高速緩存
權(quán)利要求
1.一種多核處理器系統(tǒng),其特征在于,具備確定單元,其基于分配給各核的任務(wù)的信息量,來從多核處理器中確定與將特定的程序儲存到高速緩存的一個核相比高速緩存未命中率較低的其它核;移動單元,其將所述特定的程序從所述一個核的高速緩存移動到由所述確定單元確定出的其它核的高速緩存;和設(shè)定單元,在由所述移動單元將所述特定的程序移動到所述其它核的高速緩存后,該設(shè)定單元將所述其它核的高速緩存中儲存了所述特定的程序的區(qū)域設(shè)定為寫入禁止區(qū)域。
2.一種控制程序,其特征在于,使能夠訪問如下控制電路、即若接受移動目標(biāo)核的高速緩存、移動源核的高速緩存、和移動對象程序的移動通知,則將所述移動對象程序從該移動目標(biāo)核的高速緩存移動到該移動源核的高速緩存的控制電路的多核處理器執(zhí)行如下步驟確定步驟,基于分配給各核的任務(wù)的信息量,來從所述多核處理器中確定與將特定的程序儲存到高速緩存的一個核相比高速緩存未命中率較低的其它核;移動處理步驟,使所述控制電路將所述特定的程序從所述一個核的高速緩存移動到由所述確定步驟確定出的其它核的高速緩存;和設(shè)定步驟,在由所述移動處理步驟使所述特定的程序移動到所述其它核的高速緩存后,將所述其它核的高速緩存中儲存了所述特定的程序的區(qū)域設(shè)定為寫入禁止區(qū)域。
3.—種控制方法,其特征在于,由能夠訪問如下控制電路、即若接受移動目標(biāo)核的高速緩存、移動源核的高速緩存、和移動對象程序的移動通知,則使所述移動對象程序從該移動目標(biāo)核的高速緩存移動到該移動源核的高速緩存的控制電路的多核處理器執(zhí)行如下步驟確定步驟,基于分配給各核的任務(wù)的信息量,來從所述多核處理器中確定與將特定的程序儲存到高速緩存的一個核相比高速緩存未命中率較低的其它核;移動處理步驟,使所述控制電路將所述特定的程序從所述一個核的高速緩存移動到由所述確定步驟確定出的其它核的高速緩存;和設(shè)定步驟,在由所述移動處理步驟使所述特定的程序移動到所述其它核的高速緩存后,將所述其它核的高速緩存中儲存了所述特定的程序的區(qū)域設(shè)定為寫入禁止區(qū)域。全文摘要
本發(fā)明涉及多核處理器系統(tǒng)、控制程序以及控制方法。其中,OS(141)從多核處理器計算分配到各CPU的任務(wù)的指令代碼大小的合計值,確定與儲存有執(zhí)行代碼(502)的主CPU(101)相比計算結(jié)果小的CPU。確定協(xié)CPU(103)。監(jiān)測控制器(105)將執(zhí)行代碼(502)從協(xié)CPU(103)的指令高速緩存(111)移動到協(xié)CPU(103)的指令高速緩存(113)。OS(143)在將執(zhí)行代碼(502)移動到協(xié)CPU(103)的指令高速緩存(113)后,將指令高速緩存(113)中儲存了執(zhí)行代碼的區(qū)域設(shè)定為寫入禁止區(qū)域,從而使執(zhí)行代碼(502)常駐于指令高速緩存(113)。
文檔編號G06F12/08GK102934095SQ20108006727
公開日2013年2月13日 申請日期2010年6月10日 優(yōu)先權(quán)日2010年6月10日
發(fā)明者栗原康志, 山下浩一郎, 山內(nèi)宏真 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黄大仙区| 南汇区| 介休市| 织金县| 承德县| 信阳市| 东平县| 深水埗区| 巩留县| 秦安县| 古丈县| 两当县| 衡东县| 云安县| 申扎县| 温宿县| 农安县| 介休市| 胶州市| 全州县| 定州市| 大化| 嘉荫县| 龙胜| 怀安县| 宜君县| 陆川县| 普宁市| 建水县| 兴隆县| 北川| 丹江口市| 平乐县| 调兵山市| 大埔区| 威宁| 丁青县| 宝兴县| 阳山县| 原平市| 曲周县|