專利名稱:多處理器系統(tǒng)以及用于使計算機執(zhí)行多處理器系統(tǒng)的中斷控制方法的程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多處理器系統(tǒng)以及用于使計算機執(zhí)行多處理器系統(tǒng)的中 斷控制方法的程序,尤其涉及一邊受理來自外部設(shè)備的中斷處理、 一邊并 行執(zhí)行程序處理的多處理器系統(tǒng)以及用于使計算機執(zhí)行多處理器系統(tǒng)的 中斷控制方法的程序。
背景技術(shù):
使用于特定裝置的處理器被稱作嵌入式系統(tǒng)(built in system)。近年 來,在嵌入式系統(tǒng)中采用多處理器或多線程處理器的情況也較多。多處理器的采用有利于裝置的低時鐘化或響應(yīng)性的提高。另外,尤其 在便攜式裝置中,由于還有利于減少耗電而希望采用多處理器。但是,在判斷新開發(fā)的處理器是否正常工作時需要花費時間和成本。 因此,在軟件的領(lǐng)域上,所使用的結(jié)果只要是有實際成績的處理器能夠挪 用(divert),就希望挪用它。因而,在對嵌入式系統(tǒng)進行多處理器化時, 需要挪用以前所使用的單處理器的軟件。作為將單處理器挪用到多處理器的現(xiàn)有技術(shù),例如有專利文獻l。專 利文獻1的發(fā)明是將基于pITRON (注冊商標(biāo))的單處理器用的操作系統(tǒng) (OS: Operating System)轉(zhuǎn)用到多處理器的技術(shù)。專利文獻1:特開平8—2975S1號公報但是,在單處理器中,在處理器以規(guī)定單位(任務(wù)(task))執(zhí)行程 序期間,在任務(wù)側(cè)將處理器設(shè)定為中斷禁止。另外,在單處理器中,有時 在中斷級別較低的中斷處理中禁止進行處理的執(zhí)行中的中斷。再有,在單 處理器中,當(dāng)對調(diào)用OS的服務(wù)調(diào)用進行發(fā)布時,需要在服務(wù)調(diào)用的發(fā)布 到OS的釋放之前的整個期間內(nèi)禁止中斷處理。
在將上述的規(guī)格挪用到多處理器時,盡管多處理器具有多個處理器 部,還是無法并行執(zhí)行中斷處理和任務(wù)處理。另外,與優(yōu)先級無關(guān)地發(fā)生中斷處理處于等待狀態(tài)的期間,因此存在 程序的處理效率降低的缺點。圖11是用于對中斷處理處于等待狀態(tài)的現(xiàn)有技術(shù)進行說明的圖。在 低優(yōu)先級的任務(wù)的執(zhí)行中,為了防止該任務(wù)因更高優(yōu)先級的任務(wù)或中斷處 理而導(dǎo)致中斷的情況,將處理器設(shè)定為禁止中斷狀態(tài)。結(jié)果,后面的任務(wù) 或中斷處理不會起動而等待,直到低優(yōu)先級的任務(wù)結(jié)束為止。發(fā)明內(nèi)容本發(fā)明是鑒于上述問題而提出的,其目的在于提供一種在多處理器系 統(tǒng)中能夠進行任務(wù)和中斷處理的并行處理,另外能夠縮短任務(wù)等的等待時 間,進而并行處理的處理效率高的多處理器系統(tǒng)以及用于使計算機執(zhí)行多 處理器系統(tǒng)的中斷控制方法的程序。為了解決以上的課題,本發(fā)明的多處理器系統(tǒng),具備多個單位處理器, 該多處理器系統(tǒng)具備旗語設(shè)定單元,其將表示對資源競爭優(yōu)先的權(quán)利的 旗語與多個資源每一個建立對應(yīng)而可識別地進行設(shè)定;旗語請求判斷單元,當(dāng)上述單位處理器中的第一單位處理器進行了在上述旗語設(shè)定單元中 所設(shè)定的旗語的取得請求時,判斷該請求是否為請求由第二單位處理器取得的旗語即取得中的旗語的請求;和排他控制單元,當(dāng)由上述旗語請求判 斷單元判斷上述請求為請求取得中旗語的請求時,使第一單位處理器的請 求等待,另一方面,當(dāng)由上述旗語請求判斷單元判斷上述請求為請求取得 中旗語以外的旗語的請求時,允許所請求的旗語的取得。另外,本發(fā)明的多處理器系統(tǒng),其特征在于,具備中斷禁止單元,該 中斷禁止單元禁止對允許取得旗語的第一單位處理器的基于分發(fā)的任務(wù) 切換、從外部請求的中斷處理、由其他單位處理器所請求的中斷處理的至 少一個。另外,本發(fā)明的多處理器系統(tǒng),其特征在于,單位處理器為了對在多 處理器內(nèi)部所發(fā)生的任務(wù)和在外部所發(fā)生的句柄進行處理而請求旗語的 取得,上述排他控制單元在用于在務(wù)處理的旗語取得請求的彼此之間、用
于任務(wù)處理的旗語取得請求與用于句柄處理的旗語取得請求之間、用于句 柄處理的旗語取得請求的彼此之間,等待或允許旗語的取得。另外,本發(fā)明的多處理器系統(tǒng),其特征在于,當(dāng)上述排他控制單元允 許了由上述第一單位處理器所請求的旗語的取得時,對上述第一單位處理 器進行自旋鎖。另外,本發(fā)明的多處理器系統(tǒng),其特征在于,上述旗語設(shè)定單元通過 對多個旗語的每一個添加識別信息而可識別地進行設(shè)定,并且對多個旗語 的至少一部分的旗語添加公共的識別信息,對添加有公共的該識別信息的 多個旗語的每一個設(shè)定管理區(qū)域,上述旗語請求判斷單元根據(jù)識別信息, 按各管理區(qū)域判斷第一單位處理器進行取得請求的旗語是否為由第二單 位處理器取得的取得中旗語。另外,使計算機執(zhí)行本發(fā)明的多處理器系統(tǒng)的中斷控制方法的程序, 使計算機執(zhí)行適用于具備多個單位處理器的多處理器系統(tǒng)的多處理器系 統(tǒng)的中斷控制方法,其包括旗語請求判斷步驟,當(dāng)上述單位處理器中的 第一單位處理器進行了可識別地設(shè)定的旗語的取得請求時,判斷該請求是 否為請求由第二單位處理器取得的旗語即取得中旗語的請求;排他控制步 驟,在上述旗語請求判斷步驟中,當(dāng)判斷上述請求為請求取得中旗語的請 求時,使第一單位處理器的請求等待,另一方面,當(dāng)判斷上述請求為請求 取得中旗語以外的旗語的請求時,允許所請求的旗語的取得;和中斷禁止步驟,將在上述排他控制步驟中允許取得旗語的單位處理器設(shè)定為中斷禁 止。
圖1是表示一般的多處理器系統(tǒng)中的單位處理器的結(jié)合的例子的圖。圖2是表示適用了本發(fā)明的一實施方式的多處理器的便攜式電話的功 能結(jié)構(gòu)的框圖。圖3是用于對本發(fā)明的一實施方式的多處理器進行說明的圖。 圖4是用于對本實施方式的多處理器系統(tǒng)的中斷控制方法進行說明的 流程圖。圖5是用于對圖4的流程圖所示的HW旗語(semaphore)的取得成 功與否進行說明的圖。圖6是用于對由本發(fā)明的一實施方式的程序控制部而實現(xiàn)的HW旗語的取得處理進行說明的流程圖。圖7是用于對由圖6所示的流程圖而實現(xiàn)的并行工作進行說明的圖。 圖8是用于對本發(fā)明的一實施方式的程序控制部釋放HW旗語的處理進行說明的流程圖。圖9是用于對本發(fā)明的一實施方式的HW旗語部13釋放HW旗語的處理進行說明的流程圖。圖IO是用于對本發(fā)明的一實施方式的HW旗語釋放進行說明的圖。 圖11是用于對中斷處理處于待機狀態(tài)的現(xiàn)有技術(shù)進行說明的圖。 符號說明ll一中斷控制部;12 —存儲器控制部;13 —硬件旗語部;30—存儲器;105—程序控制部;106—驅(qū)逐禁止標(biāo)志(expelling prohibitingflag) ; 230—PC; 305—PSR; P0、 Pl、 P2、 P3 —單位處理器。
具體實施方式
以下,參照附圖,說明本發(fā)明所涉及的多處理器系統(tǒng)以及用于使計算 機執(zhí)行多處理器系統(tǒng)的中斷控制方法的程序的一實施方式。本實施方式將本實施方式的多處理器系統(tǒng)構(gòu)成為適用于便攜式電話 的嵌入式系統(tǒng)。多處理器系統(tǒng)結(jié)合多個處理器(單位處理器)而構(gòu)成。圖 1表示一般多處理器系統(tǒng)中的單位處理器的結(jié)合的例子。圖1 (a) 、 (b)所示的多處理器均為被稱作對稱型多處理器(SMP: symmetric multi-processor)的結(jié)構(gòu),構(gòu)成為將多個單位處理器Pu以共享存 儲器的方式來結(jié)合。(a)所示的結(jié)構(gòu)被稱作多處理器。另外,(b)所示 的結(jié)構(gòu)被稱作多線程處理器。多線程處理器在與多處理器相比共享預(yù)算器 的這一點上來講單位處理器Pu更密切地結(jié)合。在本實施方式中,舉出將多處理器系統(tǒng)構(gòu)成為多處理器的例子,進行 說明。此外,本實施方式也可構(gòu)成為多處理器、多線程處理器的任一個。圖2是表示適用了本發(fā)明的一實施方式的多處理器系統(tǒng)的便攜式電話 1的功能結(jié)構(gòu)的框圖。在圖2中便攜式電話1包括CPU (Central Processing Unit) 10、閃速ROM (flashROM) 20、存儲器30、緩沖器(buffer ) 40、
無線部50、 IrDA (Infrared Data Association)部60、音頻(Audio)部70、 定時器(Timer) 80、 USB (Universal Serial Bus)接口部90、鍵(KEY) 操作部100、 LCD (Liquid Crystal Display) 110和相機(Camera)部120, CPU10、閃速ROM20、存儲器30和緩沖器40由總線相連。另外,無線 部50、 IrDA部60、音頻部70、定時器80、 USB接口部90、鍵操作部100、 LCD110和相機部120,與CPUIO直接連接。CPUIO, 一邊并行處理多個任務(wù)、 一邊控制便攜式電話l整體,并且 根據(jù)從鍵操作部100所輸入的各種指示信號,讀出并執(zhí)行存儲器30所存 儲的操作系統(tǒng)程序(OS: Operating System)或各種應(yīng)用程序,根據(jù)從無 線部50、音頻部70或相機部120等的外圍芯片所輸入的中斷信號來執(zhí)行 中斷句柄(handler)。此外,OS是與多處理器對應(yīng)的OS。另外,CPU10將各種處理結(jié)果保存在閃速ROM20或存儲器30。圖3是用于對在圖2中表示為CPUIO的本實施方式的多處理器進行 說明的圖。本實施方式的多處理器是對多個單位處理器P0、 Pl、 P2、 P3 進行組合后,使多個上述單位處理器在多個操作系統(tǒng)下進行工作的多處理 器。如圖3所示,多處理器包括多個單位處理器P0 P3、中斷控制部ll、 存儲器控制部12、硬件旗語(以下HW旗語)部13。HW旗語部13為設(shè)定HW旗語的結(jié)構(gòu),該HW旗語是由哪一個單位 處理器優(yōu)先執(zhí)行進行競爭的處理(在本實施方式中占用硬件資源的處理) 的權(quán)利。在本實施方式中,在HW旗語部13可識別地設(shè)定有與硬件資源 對應(yīng)的多個HW旗語。為了識別,對多個HW旗語的每一個添加識別信息 (ID)。請求HW旗語的服務(wù)調(diào)用是通過指定HW旗語的ID而進行的。只有通過該服務(wù)調(diào)用來可取得HW旗語的單位處理器,才能夠使用與 該HW旗語對應(yīng)的硬件資源來執(zhí)行處理。另外,在本實施方式中,在必要 期間內(nèi)禁止對可取得HW旗語的單位處理器的中斷。HW旗語部13,與后面敘述的程序控制部105協(xié)作,當(dāng)單位處理器中 的第一單位處理器(例如單位處理器PO)進行了在HW旗語部13中所設(shè) 定的旗語的取得請求時,判斷該請求是否為請求由第二單位處理器(例如 單位處理器P1)所取得的旗語的請求(取得中的旗語)。另外,程序控制部105,當(dāng)由HW旗語部13判斷旗語的取得請求為
請求取得中的旗語的請求時,使單位處理器P0的請求等待。另一方面, 當(dāng)判斷該請求為請求取得中的旗語以外的旗語的請求時,允許所請求的旗語的取得。再有,將允許取得旗語的單位處理器PO設(shè)定為中斷禁止。在以上的結(jié)構(gòu)中,HW旗語部13相當(dāng)于旗語設(shè)定單元,HW旗語部 13和程序控制部105相當(dāng)于旗語請求判斷單元、排他控制單元、中斷控制 單元。程序管理部105根據(jù)ID按每管理區(qū)域來判斷所請求的HW旗語是否 已由其他單位處理器所使用。這樣,可以使用一個HW旗語對多個單位處 理器進行排他控制。另外,在本實施方式中,在每次賦予ID時,HW旗語部13對多個 HW旗語的至少一部分旗語添加公共ID。另外,對添加有公共ID的多個 HW旗語的每一個設(shè)定管理區(qū)域。而且,程序管理部105由于如上所述那 樣按每管理區(qū)域來判斷所請求的HW旗語是否已經(jīng)由其他單位處理器所 使用,因此即使在硬件資源少的情況下,也能夠控制很多旗語,并且對單 位處理器進行排他控制。艮口,在本實施方式中,定義HW旗語0 HW旗語7總共8個HW旗 語,并且可設(shè)定255個ID。因此,HW旗語0 6各自與ID—一對應(yīng), HW旗語7與8 255的ID相對應(yīng)。而且,例如在存儲器30中設(shè)置與8 255的ID對應(yīng)的管理區(qū)域。另外,單位處理器P0 P3為了處理在多處理器的內(nèi)部所發(fā)生的任務(wù) 和在外部所發(fā)生的句柄,而請求旗語的取得。中斷控制部11和程序控制 部105,在用于任務(wù)處理的旗語取得請求的彼此之間、或者在用于任務(wù)處 理的旗語取得請求與用于句柄處理的旗語取得請求之間,進而在用于句柄 處理的旗語取得請求的彼此之間,等待或允許旗語的取得。根據(jù)這種結(jié)構(gòu),本實施方式的多處理器可對任務(wù)處理的彼此、任務(wù)處 理與基于外部中斷的處理、基于外部中斷的處理的彼此進行并行處理,并 且可根據(jù)需要進行排他控制。艮P, HW旗語部13具有如下功能在由單位處理器P0 P3發(fā)出了旗 語取得請求時,如果單位處理器P0 P3所指定的HW旗語處于已被獲取 的狀態(tài),則針對新請求通知所指定的HW旗語的獲取失??;另一方面,如 果在此之前HW旗語沒有處于被獲取的狀態(tài),則向單位處理器返回成功獲 取所指定的HW旗語的通知。這種HW旗語能夠防止多個單位處理器同時使用同一硬件資源的情 況。因此,能夠防止因由OS所使用的存儲器30的規(guī)定區(qū)域同時被訪問而 導(dǎo)致處理中斷等的不良情況。另外,本實施方式的處理器具備作為單位處理器P0 P3的公共區(qū)域 的存儲器30和控制存儲器30的存儲器控制部12。在本實施方式中,在存 儲器30中保存使硬件資源與HW旗語的ID相對應(yīng)的信息。接著,對單位處理器P0 P3的內(nèi)部結(jié)構(gòu)進行說明。此外,由于單位 處理器P0 P3同樣地構(gòu)成,因此只對單位處理器PO的內(nèi)部結(jié)構(gòu)進行說明, 來取代其他單位處理器的說明。單位處理器PO包括取出(fetch)部101、解碼部102、 ALU (Arithmetic and Logical Unit) 103、寄存器文檔104、程序控制部105。取出部101根 據(jù)后面敘述的程序控制部105的程序計數(shù)器所示的存儲器地址讀出指令 碼,并輸出到解碼部102。解碼部102對由取出部101所輸入的指令碼進行解碼,并將解碼結(jié)果 (指令內(nèi)容以及源寄存器、目的地寄存器的地址等)輸出到ALU103。ALU103根據(jù)由解碼部102所輸入的解碼結(jié)果,進行規(guī)定的運算,并 將運算結(jié)果寫入寄存器文檔104、或者將分支轉(zhuǎn)移指令等的運算結(jié)果即分 支轉(zhuǎn)移(branch)目的地的地址輸出到程序控制部105。寄存器文檔104是對由讀取指令從存儲器30所讀出的數(shù)據(jù)或作為 ALU103的運算結(jié)果的數(shù)據(jù)進行存儲的寄存器組。如后面敘述那樣寄存器 文檔104包括通用寄存器組和特殊寄存器組,特殊寄存器組是寫入本實施 方式的引導(dǎo)處理用的地址的區(qū)域。程序控制部105控制單位處理器P0整體,包括狀態(tài)寄存器(PSR) 305,其存儲單位處理器PO的狀態(tài)(例如,中斷的可否狀態(tài)、單位處理器 PO中的溢出的發(fā)生狀態(tài)等);和程序計數(shù)器(PC) 230,其對保存有單位 處理器PO下一次要執(zhí)行的指令的存儲器地址進行存儲。而且,程序控制 部105在單位處理器PO向中斷處理轉(zhuǎn)移的時刻,將PSR305的值變更為中 斷處理的禁止?fàn)顟B(tài),或者在執(zhí)行分支轉(zhuǎn)移指令時,將程序計數(shù)器的值變更
為分支轉(zhuǎn)移目的地的地址。另外,程序控制部105在由執(zhí)行中的任務(wù)而輸出HW旗語的取得請求 時,首先收取HW旗語的取得結(jié)果,在狀態(tài)寄存器中的表示HW旗語的取 得結(jié)果的區(qū)域中,對表示成功取得HW旗語的標(biāo)志進行更新。另一方面, 當(dāng)旗語取得失敗時,對表示HW旗語的取得失敗的標(biāo)志進行更新,并暫時 停止HW旗語的取得后離開等待狀態(tài)。再有,程序控制部105具備驅(qū)逐禁止標(biāo)志106。驅(qū)逐禁止標(biāo)志106是 用于禁止在自單位處理器中發(fā)生任務(wù)的切換或外部中斷,任務(wù)從單位處理 器被驅(qū)逐的情況的機構(gòu)。通過將驅(qū)逐禁止標(biāo)志106設(shè)定為1,由此防止在 當(dāng)前單位處理器中的任務(wù)或中斷處理切換到其他任務(wù)或中斷處理的情況。將禁止驅(qū)逐單位處理器中的任務(wù)的狀態(tài)稱作鎖定狀態(tài),在本實施方式 中利用自旋鎖(spin lock)來實現(xiàn)鎖定狀態(tài)。自旋鎖是指,當(dāng)單位處理器之間使用相同資源(在本實施方式中為硬 件資源)時,通過等待該資源的釋放而進行忙碌等待(busy wait)的方法。 與利用了單位處理器之間的通信的排他控制相比其優(yōu)點在于,用于單位處 理器的彼此同步的開銷少。自旋鎖是適合于利用資源的排他區(qū)間短的情況 的方式。中斷控制部11在從無線部50等的外圍芯片輸入了外部中斷的中斷信 號時,在調(diào)停中斷信號的基礎(chǔ)上,將規(guī)定的中斷信號輸出到在單位處理器 P0 P3中所指定的單位處理器。存儲器控制部12配置在CPU10與存儲器 30之間,在由CPU10對存儲器30進行數(shù)據(jù)的讀出和寫入時,控制存儲器 30進行數(shù)據(jù)的輸入輸出。接著,說明以上所述的多處理器的工作。圖4是用于對本實施方式的多處理器系統(tǒng)的中斷控制方法進行說明的 流程圖,是用于對由程序控制部105和硬件結(jié)構(gòu)即HW旗語部13所執(zhí)行 的處理進行說明的圖。如果發(fā)生要排他的處理,則HW旗語部13根據(jù)單位處理器側(cè)的軟件 的請求,來受理取得HW旗語的請求(S401) 。 HW旗語的取得通過 TEST&SET方式進行。由于以一個機器語言(machine language)指令來 進行,因此TEST&SET方式不會在處理的途中因其他任務(wù)等導(dǎo)致中斷而 處于競爭狀態(tài)。另外,HW旗語部13判斷是否成功取得HW旗語(S402)。當(dāng)該判 斷的結(jié)果為成功取得HW旗語時(S402:是),程序控制部105禁止對取 得了HW旗語的單位處理器(請求源處理器)的中斷(S403)。該中斷禁 止用于禁止對請求源處理器從外部所請求的中斷處理、由其他單位處理器 所請求的中斷處理之外,還禁止基于分發(fā)(dispatch)的任務(wù)切換(task switch)。另外,程序控制部105通過將可取得HW旗語的這一情況設(shè)定在請求 源處理器的狀態(tài)寄存器,由此通知給請求源處理器(S404)。另外,在本實施方式中,當(dāng)成功取得了HW旗語時,還同時設(shè)定請求 源處理器的驅(qū)逐禁止標(biāo)志106來進行自旋鎖。另一方面,當(dāng)在步驟S402 中判斷為無法取得HW旗語時(S402:否),則對請求源處理器的狀態(tài)寄 存器設(shè)定無法取得HW旗語的這個情況(S404)。圖5 (a) 、 (b)是用于對取得HW旗語的成功與否進行說明的圖。 如圖5 (a) 、 (b)所示,作為請求源處理器的單位處理器,為了取得HW 旗語而對控制HW旗語的HW (HW旗語部13)執(zhí)行TEST&SET。此夕卜, 從TEST&SET的執(zhí)行到向PSR寫入結(jié)果之前的處理以一個周期的期間完 成。當(dāng)可取得HW旗語時,HW旗語部13向請求處理器PSR305寫入可 取得HW旗語的這個情況。收到取得HW旗語的通知的請求源處理器確保 自旋鎖狀態(tài)。另外,當(dāng)無法取得HW旗語時,HW旗語部13向請求源處 理器的PSR305寫入無法取得HW旗語的這個情況。當(dāng)無法取得HW旗語 時,請求源處理器重復(fù)進行HW旗語的取得處理直到可取得HW旗語為止。圖6是用于對由請求源處理器的程序控制部105而實現(xiàn)的HW旗語的 取得處理進行說明的流程圖。請求源處理器首先參照存儲器30所保存的 HW旗語與ID之間的對應(yīng)信息,并識別想要取得的HW旗語的ID(S601 )。 而且,當(dāng)ID小于8時,由于ID與HW旗語一一對應(yīng),從而向HW旗語 部13請求來取得與ID對應(yīng)的HW旗語(S613)。而且,將寫入有該結(jié)果 的PSR值反映在返回值中,并將結(jié)果返回給程序(S614)。另外,在步驟S601中,當(dāng)判斷為ID在8以上時(S601:是),則請
求HW旗語7取得HW旗語部(S602)。而且,寫入在PSR的值表示可 獲取HW旗語時(S603:是),對與ID對應(yīng)的HW旗語的管理區(qū)域進行 TEST&SET (S604)。這樣,當(dāng)對一個HW旗語7添加多個ID時,本實施方式能夠由多個 單位處理器同時且互不干擾地使用一個HW來執(zhí)行處理。另外,程序控制部105判斷由TEST&SET可否獲取旗語(S605), 并請求HW旗語7釋放HW旗語(S606)。再有,對請求源處理器設(shè)定中斷禁止(S607),并禁止對自處理器的 任務(wù)中斷、外部中斷、還有任務(wù)切換。在以上的處理后將寫入有HW旗語 的取得結(jié)果的PSR值反映在返回值中,并將結(jié)果返回給程序(S608)。此外,當(dāng)無法取得HW旗語時(S612:否),程序控制部105將表示 HW旗語取得失敗的PSR值反映在返回值中,并將結(jié)果返回給程序 (S614)。另外,即使在不能通過TEST&SET獲取旗語時(S605:否), 也請求HW旗語7釋放HW旗語,之后將PSR值反映在返回值中,并將 結(jié)果返回給程序(S611)。為了進行以上的處理,在本實施方式中設(shè)定了以下的四個服務(wù)調(diào)用。
loc一spn是從任務(wù)側(cè)進行HW旗語的取得的服務(wù)調(diào)用。單位處理器不會從服務(wù) 調(diào)用復(fù)原(recover)直到可取得HW旗語為止。當(dāng)處理任務(wù)的單位處理器 為loc—spn狀態(tài)時,禁止unl—spn以外的服務(wù)調(diào)用的同時,還禁止對該單位 處理器的中斷和任務(wù)切換。
iloc一spn是從中斷句柄側(cè)進行HW旗語的取得的服務(wù)調(diào)用。單位處理器不會從 服務(wù)調(diào)用復(fù)原直到可取得HW旗語為止。當(dāng)執(zhí)行中斷句柄的單位處理器在 iloc—spn狀態(tài)時,禁止iiml—spn以外的服務(wù)調(diào)用的同時,還禁止對該單位 處理器的中斷和任務(wù)切換。
unl—spn是從任務(wù)側(cè)進行HW旗語的釋放的服務(wù)調(diào)用。當(dāng)存在正在等待獲取 HW旗語的單位處理器時該單位處理器可在unl一spn的定時取得自旋鎖。
iunl一spn
是從中斷句柄側(cè)進行HW旗語的釋放的服務(wù)調(diào)用。當(dāng)存在正在等待獲 取HW旗語的單位處理器時,該單位處理器可在kml一spn的定時取得自旋 鎖。
圖7是用于對由圖6所示的流程圖實現(xiàn)的并行工作進行說明的圖。如 圖7 (a)所示,本實施方式在執(zhí)行優(yōu)先級較低的任務(wù)時,由OS對執(zhí)行該 任務(wù)的單位處理器進行自旋鎖直到任務(wù)結(jié)束為止。在此期間,本實施方式 的多處理器不會設(shè)定為中斷禁止,而與執(zhí)行中的任務(wù)取得的HW旗語無關(guān) 地執(zhí)行的任務(wù)或中斷處理,可在其他單位處理器中并行工作。
另外,如圖7(b)所示,在并行工作中的單位處理器中,當(dāng)并行處理 的任務(wù)或中斷處理請求了己被取得的HW旗語的取得時,任務(wù)等等待機到 所請求的HW旗語釋放為止。
圖8是用于對程序控制部105釋放HW旗語的處理進行說明的流程 圖。程序控制部105判定應(yīng)釋放的HW旗語的ID是否在8以上(S801)。 判斷的結(jié)果,當(dāng)ID小于8時(S801:否),請求HW旗語部13釋放與 ID對應(yīng)的HW旗語(S803)。另一方面,當(dāng)ID在8以上時(S801:是), 則對寫入在OS內(nèi)的與ID對應(yīng)的旗語管理區(qū)域中的信息進行清除(S802), 并結(jié)束處理。
圖9是用于對HW旗語部3釋放HW旗語的處理進行說明的流程圖。 HW旗語部13針對要釋放的ID的HW旗語進行釋放請求(CLEAR) (S901)。
而且,解除請求源處理器的中斷禁止(S902),并在請求源處理器的 PSR305設(shè)定表示已釋放了HW旗語這一情況的值并進行通知(S903)。
圖10是用于對HW旗語釋放進行說明的圖。作為HW旗語釋放的請 求源處理器的單位處理器,在收取HW旗語釋放的通知后從自旋鎖狀態(tài)釋 放。
此外,將用于使計算機執(zhí)行用圖4、圖6、圖8、圖9敘述的本實施方 式的多處理器系統(tǒng)的中斷控制方法的程序,以可安裝的形式或可執(zhí)行的形 式的文件記錄在CD-ROM、 floppy (注冊商標(biāo))盤(FD) 、 DVD等由計 算機可讀取的記錄介質(zhì)中而進行提供。另外,也可采用下述結(jié)構(gòu)將用于 使計算機執(zhí)行本實施方式的多處理器系統(tǒng)的中斷控制方法的程序,按照將
其保存在與互聯(lián)網(wǎng)等網(wǎng)絡(luò)連接的計算機上,并經(jīng)由網(wǎng)絡(luò)進行下載的方式來 提供。
再有,將用于使計算機執(zhí)行以上敘述的本實施方式的多處理器系統(tǒng)的
中斷控制方法的程序,也可記錄在由計算機可讀取的ROM、閃存、存儲 卡(memory card) 、 USB連接型閃存等存儲設(shè)備中而進行提供。
根據(jù)以上敘述的本實施方式,將8個HW旗語可識別地設(shè)定,并且指 定與任務(wù)處理或中斷句柄所使用的HW資源對應(yīng)的HW旗語后請求取得。 因此,對任務(wù)或中斷處理而言可并行工作而不會發(fā)生競爭。
另外,當(dāng)請求以前被取得的HW旗語的取得時,使進行請求的單位處 理器等待處理。因此,在并行處理中不會使用同一HW資源,能夠防止因 處理的競爭而發(fā)生死鎖(deadock)。
可知,這種本實施方式的多處理器系統(tǒng)和多處理器系統(tǒng)的中斷控制方 法,與以前在圖11中所示的現(xiàn)有例的結(jié)構(gòu)相比,任務(wù)等進行等待的期間 短。等待時間短,能夠提高并行處理的處理效率。 (產(chǎn)業(yè)上的可利用性)
根據(jù)本發(fā)明,能夠?qū)⒍鄠€旗語與資源對應(yīng)地可識別地設(shè)定。而且,在 單位處理器中的第一單位處理器進行了在旗語設(shè)定單元中所設(shè)定的旗語 的取得請求時,對旗語進行識別,來判斷請求是否為請求由第二單位處理 器取得的旗語即取得中的旗語的請求。當(dāng)判斷請求為請求取得中旗語的請 求時,使第一單位處理器的請求等待,而當(dāng)判斷請求為請求取得中旗語以 外的旗語的請求時,允許取得所請求的旗語的取得。
因此,除了所請求的旗語為取得中的情況之外,第一單位處理器不會 成為等待狀態(tài),而與第二單位處理器并行工作。
本發(fā)明,能夠縮短單位處理器成為等待狀態(tài)的時間,能夠增加可并行 工作的期間。這樣本發(fā)明能夠提供一種并行處理的處理效率高的多處理器 系統(tǒng)。
另外,在第一單位處理器中處理結(jié)束之前不會發(fā)生中斷處理,從而能 夠減小發(fā)生死鎖等的可能性。
另外,能夠?qū)θ蝿?wù)處理、任務(wù)處理與句柄處理、句柄處理的彼此進行 并行處理。
另外,等待狀態(tài)的其他單位處理器能夠周期性地檢測第一單位處理器 的旗語的釋放。因此,能夠立即檢測出第一單位處理器的旗語釋放來取得 所釋放的旗語,從而能夠脫離等待狀態(tài)。
另外,即使在硬件資源少的情況下也能夠控制很多旗語。 另外,根據(jù)本發(fā)明,當(dāng)單位處理器之中的第一單位處理器進行了可識 別地設(shè)定的旗語的取得請求時,對旗語進行識別,來判斷請求是否為請求 由第二單位處理器正在取得的旗語即取得中的旗語的請求。當(dāng)判斷請求為 請求取得中旗語的請求時,使第一單位處理器的請求等待,另一方面,當(dāng) 判斷請求為請求取得中旗語以外的旗語的請求時,允許取得所請求的旗語 的取得。
因此,除了所請求的旗語為已經(jīng)取得中的情況之外,第一單位處理器 不會成為等待狀態(tài),而與第二單位處理器并行工作。本發(fā)明,能夠縮短單 位處理器成為等待狀態(tài)的時間,能夠增加可并行工作的期間。這種本發(fā)明 能夠提供一種用于使計算機執(zhí)行并行處理的處理效率高的多處理器系統(tǒng) 的中斷控制方法的程序。
權(quán)利要求
1. 一種多處理器系統(tǒng),具備多個單位處理器,該多處理器系統(tǒng)包括旗語設(shè)定單元,其將表示對資源競爭優(yōu)先的權(quán)利的旗語與多個資源分別對應(yīng)而可識別地設(shè)定;旗語請求判斷單元,當(dāng)上述單位處理器中的第一單位處理器進行了在上述旗語設(shè)定單元中所設(shè)定的旗語的取得請求時,判斷該請求是否為請求由第二單位處理器取得的旗語即取得中的旗語的請求;和排他控制單元,當(dāng)由上述旗語請求判斷單元判斷上述請求為請求取得中旗語的請求時,使第一單位處理器的請求等待,另一方面,當(dāng)由上述旗語請求判斷單元判斷上述請求為請求取得中旗語以外的旗語的請求時,允許所請求的旗語的取得。
2、 根據(jù)權(quán)利要求1所述的多處理器系統(tǒng),其特征在于, 具備中斷禁止單元,該中斷禁止單元禁止對允許取得旗語的第一單位處理器的由分發(fā)實現(xiàn)的任務(wù)切換、從外部請求的中斷處理、由其他單位處 理器所請求的中斷處理的至少一個。
3、 根據(jù)權(quán)利要求1或2所述的多處理器系統(tǒng),其特征在于, 單位處理器為了對在多處理器內(nèi)部所發(fā)生的任務(wù)和在外部所發(fā)生的句柄進行處理而請求旗語的取得,上述排他控制單元在用于任務(wù)處理的旗 語取得請求的彼此之間、用于任務(wù)處理的旗語取得請求與用于句柄處理的 旗語取得請求之間、用于句柄處理的旗語取得請求的彼此之間,等待或允 許旗語的取得。
4、 根據(jù)權(quán)利要求1 3中任一項所述的多處理器系統(tǒng),其特征在于, 當(dāng)上述排他控制單元允許了由上述第一單位處理器所請求的旗語的取得時,對上述第一單位處理器進行自旋鎖。
5、 根據(jù)權(quán)利要求1 4中任一項所述的多處理器系統(tǒng),其特征在于, 上述旗語設(shè)定單元通過對多個旗語的每一個添加識別信息而可識別地進行設(shè)定,并且對多個旗語的至少一部分的旗語添加公共的識別信息, 對添加有公共的該識別信息的多個旗語的每一個設(shè)定管理區(qū)域,上述旗語請求判斷單元根據(jù)識別信息,按各管理區(qū)域判斷第一單位處 理器進行取得請求的旗語是否為由第二單位處理器取得的取得中旗語。
6、 一種使計算機執(zhí)行多處理器系統(tǒng)的中斷控制方法的程序,使計算 機執(zhí)行適用于具備多個單位處理器的多處理器系統(tǒng)的多處理器系統(tǒng)中斷 控制方法,其特征在于,包括旗語請求判斷步驟,當(dāng)上述單位處理器中的第一單位處理器進行了可 識別地設(shè)定的旗語的取得請求時,判斷該請求是否為請求由第二單位處理 器取得的旗語即取得中旗語的請求;排他控制步驟,在上述旗語請求判斷步驟中,當(dāng)判斷上述請求為請求 取得中旗語的請求時,使第一單位處理器的請求等待,另一方面,當(dāng)判斷 上述請求為請求取得中旗語以外的旗語的請求時,允許所請求的旗語的取 得;禾口中斷禁止步驟,將在上述排他控制步驟中允許取得旗語的單位處理器 設(shè)定為中斷禁止。
全文摘要
具備多個單位處理器的多處理器系統(tǒng),具有可識別地設(shè)定與資源對應(yīng)的多個旗語的HW旗語部(13),當(dāng)單位處理器(P0)對HW旗語部(13)進行了旗語的取得請求時,判斷該請求是否為請求由單位處理器(P1)取得的旗語即取得中旗語的請求,當(dāng)判斷該請求為請求取得中旗語的請求時,使單位處理器(P0)的請求等待,另一方面,當(dāng)判定請求為請求取得中旗語以外的旗語的請求時,程序控制部(105)允許所請求的旗語的取得。
文檔編號G06F9/52GK101213519SQ20078000006
公開日2008年7月2日 申請日期2007年1月16日 優(yōu)先權(quán)日2006年1月16日
發(fā)明者田中克哉, 轟晃成 申請人:精工愛普生株式會社