專利名稱:數(shù)據(jù)處理系統(tǒng)和中斷處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理系統(tǒng)和中斷處理方法。
背景技術(shù):
在包括多個(gè)處理器或處理單元的數(shù)據(jù)處理系統(tǒng)中,即在多處理器系統(tǒng)中,每一個(gè) 處理器或處理單元可以適用于處理或執(zhí)行任務(wù)。任務(wù)還可以包括任務(wù),而這些任務(wù)需要實(shí) 時(shí)處理,因?yàn)檫@些任務(wù)具有與其處理相關(guān)聯(lián)的嚴(yán)格最終期限。在這種數(shù)據(jù)處理系統(tǒng)中,可能 發(fā)生必須由處理器之一處理的中斷。為了能夠處理所述中斷,停止或中斷當(dāng)前處理的任務(wù)。 例如,如果處理器正在執(zhí)行某些實(shí)時(shí)任務(wù)并且如果中斷了該處理,實(shí)時(shí)任務(wù)的處理可能不 能滿足實(shí)時(shí)要求。這可能導(dǎo)致調(diào)度等待時(shí)間的增加,在某些多媒體應(yīng)用中應(yīng)該避免這種增 加。具體地,如果在數(shù)據(jù)處理系統(tǒng)中存在多個(gè)處理器,典型地,并非所有處理器都將執(zhí) 行實(shí)時(shí)任務(wù),使得可以通過另外的處理器處理中斷。US2003/0105798A1涉及基于中斷特性的中斷分發(fā)方案,例如裝置或接口的優(yōu)先 級(jí)、在不同處理器上運(yùn)行的線程或應(yīng)用程序的優(yōu)先級(jí)。US2002/0166018涉及一種中斷的動(dòng)態(tài)路由和優(yōu)先級(jí)分配。通過對至少一個(gè)寄存器 編程來動(dòng)態(tài)地控制中斷控制器。US6, 877,057B2教導(dǎo)了一種中斷在處理器電路板上的單元和任意擴(kuò)展槽上的器件 上的均勻分發(fā)。US2003/0200250A1涉及一種基于像中斷服務(wù)例行程序的執(zhí)行時(shí)間那樣的運(yùn)行時(shí) 間統(tǒng)計(jì)的、中斷服務(wù)例程ISR對于處理器的動(dòng)態(tài)重新分配。然而,在根據(jù)現(xiàn)有技術(shù)的中斷分發(fā)中,不包括有關(guān)任務(wù)的信息,所述信息是等待處 理器時(shí)間以及與在中斷處理和分發(fā)期間在處理器上的執(zhí)行過程的狀態(tài)有關(guān)的信息。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種數(shù)據(jù)處理系統(tǒng)和中斷處理方法,具有改善的和更有效的 中斷處理能力。該目的是通過根據(jù)權(quán)利要求1的數(shù)據(jù)處理系統(tǒng)和根據(jù)權(quán)利要求5的方法實(shí)現(xiàn)的。
因此,提出了一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括至少兩個(gè)處理單元,每 一個(gè)均用于執(zhí)行多個(gè)任務(wù);以及中斷處理單元,用于接收將要由所述數(shù)據(jù)處理系統(tǒng)處理的 中斷,并且用于將所述中斷分發(fā)給所述至少兩個(gè)處理單元之一。被分發(fā)了所述中斷的處理 單元停止執(zhí)行其當(dāng)前任務(wù),并且處理所述中斷。所述中斷處理單元適用于確定所述處理單 元是否正在執(zhí)行任務(wù)的關(guān)鍵部分。所述中斷處理單元將所述中斷分發(fā)給沒有執(zhí)行任務(wù)的關(guān) 鍵部分的處理單元之一。 根據(jù)本發(fā)明的一個(gè)方面,所述中斷處理單元確定任務(wù)是否正在等待被當(dāng)前正在執(zhí) 行任務(wù)的關(guān)鍵部分的處理單元處理。將所述中斷分發(fā)給不具有等待在當(dāng)前任務(wù)之后被處理的任務(wù)的處理單元。根據(jù)本發(fā)明的另外方面,所述中斷處理單元確定執(zhí)行任務(wù)的關(guān)鍵部分的剩余執(zhí)行 時(shí)間。然后,將所述中斷分發(fā)給具有小剩余執(zhí)行時(shí)間的處理單元。根據(jù)本發(fā)明的另外方面,設(shè)置多個(gè)標(biāo)志,所述標(biāo)志每一個(gè)均與處理單元之一相關(guān) 聯(lián),用于表示所述處理單元是否正在執(zhí)行任務(wù)的關(guān)鍵部分。所述中斷處理單元適用于監(jiān)測 所述多個(gè)標(biāo)志,以確定要將中斷分發(fā)給哪個(gè)處理單元。本發(fā)明也涉及數(shù)據(jù)處理系統(tǒng)中的中斷處理方法。所述數(shù)據(jù)處理系統(tǒng)包括至少兩 個(gè)處理單元,每一個(gè)均用于執(zhí)行多個(gè)任務(wù);以及中斷處理單元,用于接收將要處理的中斷, 并且用于將所述中斷分發(fā)給所述至少兩個(gè)處理單元之一。被分發(fā)了所述中斷的處理單元停 止當(dāng)前執(zhí)行,并且處理所述中斷。所述中斷處理單元確定所述處理單元是否正在執(zhí)行任務(wù) 的關(guān)鍵部分。所述中斷處理單元將所述中斷分發(fā)給沒有執(zhí)行任務(wù)的關(guān)鍵部分的處理單元之
ο本發(fā)明涉及一種提供數(shù)據(jù)處理系統(tǒng)的思想,所述數(shù)據(jù)處理系統(tǒng)包括多個(gè)處理單元 和中斷處理單元,用于在數(shù)據(jù)處理系統(tǒng)中處理和分發(fā)中斷。將所述中斷分發(fā)給不執(zhí)行任務(wù) 的關(guān)鍵部分的處理單元之一。如果所有處理器都在執(zhí)行任務(wù)的關(guān)鍵部分,可選地,可以選擇 這些處理器中的不關(guān)聯(lián)有等待在當(dāng)前執(zhí)行的任務(wù)之后被執(zhí)行的任務(wù)的一個(gè)處理器。如果所 有處理單元都正在執(zhí)行任務(wù)的關(guān)鍵部分,并且具有等待或未決的任務(wù),那么可選地,可以選 擇正在執(zhí)行關(guān)鍵部分、但是該關(guān)鍵部分中的剩余執(zhí)行時(shí)間較小的處理器。因此,如果在數(shù)據(jù) 處理系統(tǒng)中存在中斷,中斷處理單元可以檢查是否有處理器沒有執(zhí)行任務(wù)的關(guān)鍵部分。如 果在該系統(tǒng)中存在沒有執(zhí)行任務(wù)的關(guān)鍵部分的至少一個(gè)處理器,可選擇該處理器,并且可 以將中斷分配給該處理器。然而,如果所有處理器都在執(zhí)行任務(wù)的關(guān)鍵部分,那么中斷處理 單元可以檢查在關(guān)鍵部分的執(zhí)行末端是否有任務(wù)正在等待。換句話說,確定是否存在沒有 任務(wù)正在等待的處理器。如果不是任一個(gè)處理單元都滿足這種條件,那么確定在關(guān)鍵部分 中具有小剩余執(zhí)行時(shí)間的處理器。利用根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng),可以提高實(shí)時(shí)任務(wù)的性能,并且可以減小實(shí)時(shí) 任務(wù)錯(cuò)過最終期限的可能性。在從屬權(quán)利要求中描述了本發(fā)明的另外方面。
現(xiàn)在將參考附圖更加詳細(xì)地描述本發(fā)明實(shí)施例的優(yōu)點(diǎn)。圖1示出了根據(jù)第一實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示意性方框圖。
具體實(shí)施例方式圖1示出了根據(jù)第一實(shí)施例的數(shù)據(jù)處理系統(tǒng)的示意性方框圖。例如,所述數(shù)據(jù)處 理系統(tǒng)包括三個(gè)處理單元100、101、102和中斷處理單元200。應(yīng)該注意的是,數(shù)據(jù)處理系統(tǒng) 也可以包括多于三個(gè)處理單元和多于一個(gè)中斷處理單元。所述中斷處理單元200接收中斷 I并且與每一個(gè)處理單元100、101、102相耦合,用于將所接收到的中斷I分發(fā)給處理單元 100、101、102之一。每一個(gè)處理單元100、101、102將分別處理或執(zhí)行任務(wù)?112、?3。每一 個(gè)處理單元100-102可以包括程序計(jì)數(shù)器PC300,所述程序計(jì)數(shù)器300也可以用于存儲(chǔ)正在由處理單元100-102處理或執(zhí)行的當(dāng)前指令的地址。執(zhí)行跡線(execution trace)ET表示 正在由處理單元100、101、102執(zhí)行的程序計(jì)數(shù)器PC的進(jìn)展。在由處理單元100-102執(zhí)行 的每一個(gè)代碼中,可以存在關(guān)鍵部分CS。該關(guān)鍵部分CS的執(zhí)行對于在要求范圍內(nèi)執(zhí)行的任 務(wù)是關(guān)鍵的,這種要求可以是實(shí)時(shí)要求。因此,應(yīng)該仔細(xì)確保不會(huì)中斷關(guān)鍵部分CS代碼的 執(zhí)行。這里作為示意性示例,第一處理單元100當(dāng)前工作在關(guān)鍵部分CS,第二處理單元 101還沒有到達(dá)其代碼的關(guān)鍵部分CS,而第三處理單元已經(jīng)執(zhí)行了關(guān)鍵部分Cs。如果第一處理單元100執(zhí)行第一任務(wù)Tl,并且第一任務(wù)的執(zhí)行已經(jīng)進(jìn)入到關(guān)鍵部 分CS,第二任務(wù)T2可以等待由第一處理單元執(zhí)行??蛇x地,第二任務(wù)T2也可以具有比第一 任務(wù)Tl更高的優(yōu)先級(jí)。先前,第二任務(wù)T2將不能夠取代第一任務(wù)Tl的處理,除非第一任 務(wù)Tl的執(zhí)行已經(jīng)離開了關(guān)鍵部分CS。然而,如果中斷發(fā)生在數(shù)據(jù)處理系統(tǒng)中,并且如果該將該中斷分配給第一處理單 元100,在第一處理單元100沒有執(zhí)行第一任務(wù)Tl的關(guān)鍵部分之前,不能開始所述中斷處 理??梢栽诘谝蝗蝿?wù)Tl的關(guān)鍵部分的執(zhí)行末端開始所述中斷處理,然而這可能導(dǎo)致較高優(yōu) 先級(jí)任務(wù)T2的處理延遲。如果第一任務(wù)、甚至第二任務(wù)Tl、T2涉及實(shí)時(shí)任務(wù)的執(zhí)行,可能 錯(cuò)失執(zhí)行的最終期限。另一方面,第二和第三處理單元101、102當(dāng)前并沒有執(zhí)行任務(wù)的關(guān)鍵部分CS。因 此,可以將任意中斷分發(fā)給第二或第三處理單元101、102,而不會(huì)對其處理帶來任何負(fù)面影 響。因此,中斷處理單元200可以向當(dāng)前沒有執(zhí)行任務(wù)的關(guān)鍵部分CS的處理單元100、 101、102之一動(dòng)態(tài)地分配中斷。如果每一個(gè)處理單元均正在執(zhí)行任務(wù)的關(guān)鍵部分CS,那么 選擇沒有任務(wù)(可能具有較高的優(yōu)先級(jí))等待執(zhí)行的處理器來處理所述中斷,使得可以處 理中斷。另外或可選地,選擇正在執(zhí)行任務(wù)的關(guān)鍵部分、但是執(zhí)行的預(yù)期時(shí)間較小的處理單兀。此外,中斷處理單元200也可以考慮每一個(gè)處理單元的先前的和/或統(tǒng)計(jì)中斷服 務(wù)例行程序的執(zhí)行時(shí)間。另外,可以考慮中斷服務(wù)的優(yōu)先級(jí)。此外,可以考慮系統(tǒng)中正在運(yùn) 行的線程的優(yōu)先級(jí)和處理器的優(yōu)先級(jí)。可以考慮上下文切換(context switch)、高速緩存 閃爍(cache flashing)等中斷的效果。也可以考慮處理單元的理想時(shí)間。如果處理器進(jìn)入關(guān)鍵部分的執(zhí)行,處理器可以對此事實(shí)設(shè)置標(biāo)志。可以對其他狀 態(tài)設(shè)置更多標(biāo)志,例如等待處理器的高優(yōu)先級(jí)任務(wù)。中斷處理單元200可以能夠監(jiān)測每一 個(gè)處理器標(biāo)志,并且可以使用所述標(biāo)志確定將所述中斷分配給誰。上述處理單元可以實(shí)現(xiàn)為相同的處理器或處理單元,使得實(shí)現(xiàn)對稱多處理器系 統(tǒng)。根據(jù)本發(fā)明,描述了一種中斷處理機(jī)制,所述中斷處理機(jī)制不但包含中斷的優(yōu)先 處理、而且包含向合適處理器之一的中斷分發(fā)。在可用處理器之間的中斷分發(fā)可以是基于 對不執(zhí)行任務(wù)的關(guān)鍵部分的處理器、執(zhí)行任務(wù)的關(guān)鍵部分但是沒有任務(wù)等待處理器退出關(guān) 鍵部分的處理器、以及正在執(zhí)行關(guān)鍵部分但是執(zhí)行的期待時(shí)間較小的處理器之一的確定。 在這些情況下,可以將中斷分配給所述處理單元。應(yīng)該注意的是上述實(shí)施例說明而并非限制本發(fā)明,并且本領(lǐng)域普通技術(shù)人員能夠在不脫離所附權(quán)利要求范圍的情況下設(shè)計(jì)許多替換實(shí)施例。在權(quán)利要求中,放置在括號(hào)中 的任意參考符號(hào)不應(yīng)該解釋為限制權(quán)利要求。詞語“包括”不排除除了權(quán)利要求中所列舉 的之外的元件和步驟的存在。對元件數(shù)目的不明確限定并不排除存在多個(gè)這種元件。在枚 舉了幾種裝置的設(shè)備權(quán)利要求中,可以通過同一個(gè)硬件來實(shí)現(xiàn)這幾個(gè)裝置。唯一的事實(shí)在 于在相互不同的從屬權(quán)利要求中記載的特定措施不表示不能有利地使用這些措施的組合。
另外,權(quán)利要求中的任意參考符號(hào)不應(yīng)該解釋限制權(quán)利要求的范圍。
權(quán)利要求
一種數(shù)據(jù)處理系統(tǒng),包括至少兩個(gè)處理單元(100、101、102),每一個(gè)均用于執(zhí)行多個(gè)任務(wù);以及中斷處理單元(200),用于接收將要由所述數(shù)據(jù)處理系統(tǒng)處理的中斷,并且用于將所述中斷分發(fā)給所述至少兩個(gè)處理單元(100、101、102)之一;其中被分發(fā)了所述中斷的處理單元(100、101、102)停止執(zhí)行當(dāng)前任務(wù),并且處理所述中斷;其中所述中斷處理單元(200)適用于確定處理單元(100、101、102)是否正在執(zhí)行任務(wù)的關(guān)鍵部分(CS),其中所述中斷處理單元(200)將所述中斷分發(fā)給處理單元(100、101、102)中沒有執(zhí)行任務(wù)的關(guān)鍵部分(CS)的一個(gè)處理單元。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述中斷處理單元(200)適用于確定是 否有任務(wù)正在等待被當(dāng)前正在執(zhí)行任務(wù)的關(guān)鍵部分(CS)的處理單元(100、101、102)處理, 其中將所述中斷分發(fā)給不具有等待在當(dāng)前任務(wù)之后被處理的任務(wù)的處理單元(100、101、 102)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其中所述中斷處理單元(200)適用于確定執(zhí) 行任務(wù)的關(guān)鍵部分(CS)的剩余執(zhí)行時(shí)間,其中將所述中斷分發(fā)給具有小剩余執(zhí)行時(shí)間的 處理單元(100、101、102)。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的數(shù)據(jù)處理系統(tǒng),包括多個(gè)標(biāo)志,所述多個(gè)標(biāo)志中的每一個(gè)均與處理單元(100、101、102)之一相關(guān)聯(lián),用于 表示處理單元(100、101、102)是否正在執(zhí)行任務(wù)的關(guān)鍵部分(CS),其中所述中斷處理單元(200)適用于監(jiān)測所述多個(gè)標(biāo)志,以確定要將所述中斷分發(fā)給 哪個(gè)處理單元(100,101,102) ο
5.一種數(shù)據(jù)處理系統(tǒng)中的中斷處理方法,所述數(shù)據(jù)處理系統(tǒng)包括至少兩個(gè)處理單元 (100、101、102),每一個(gè)均用于執(zhí)行多個(gè)任務(wù);以及中斷處理單元(200),用于接收將要由 所述數(shù)據(jù)處理系統(tǒng)處理的中斷,并且用于將所述中斷分發(fā)給所述至少兩個(gè)處理單元(100、 101,102)之一,所述方法包括以下步驟停止執(zhí)行當(dāng)前任務(wù),并且處理所述中斷;確定處理單元(100、101、102)是否正在執(zhí)行任務(wù)的關(guān)鍵部分(CS);以及將所述中斷分發(fā)給處理單元(100、101、102)中沒有執(zhí)行任務(wù)的關(guān)鍵部分(CS)的一個(gè)處理單元。
全文摘要
本發(fā)明提出了一種數(shù)據(jù)處理系統(tǒng),包括至少兩個(gè)處理單元(100、101、102),每一個(gè)均用于執(zhí)行多個(gè)任務(wù);以及中斷處理單元(200),用于接收將要由所述數(shù)據(jù)處理系統(tǒng)處理的中斷,并且用于將所述中斷分發(fā)給所述至少兩個(gè)處理單元(100、101、102)之一。被分發(fā)了所述中斷的處理單元(100、101、102)停止執(zhí)行當(dāng)前任務(wù),并且處理所述中斷。所述中斷處理單元(200)適用于確定所述處理單元(100、101、102)是否正在執(zhí)行任務(wù)的關(guān)鍵部分(CS)。其中所述中斷處理單元(200)將所述中斷分發(fā)給處理單元(100、101、102)沒有執(zhí)行任務(wù)的關(guān)鍵部分(CS)的一個(gè)處理單元。
文檔編號(hào)G06F9/48GK101896887SQ200880120155
公開日2010年11月24日 申請日期2008年12月8日 優(yōu)先權(quán)日2007年12月12日
發(fā)明者蘭杰斯·喬帕拉克里斯蘭, 米林德·馬諾哈爾·庫爾卡尼 申請人:Nxp股份有限公司