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