在實(shí)時(shí)處理器線程之間分配處理器加載的方法
【專利摘要】實(shí)時(shí)操作系統(tǒng)中在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法包括:從較低頻處理任務(wù)向高頻處理任務(wù)提出處理請(qǐng)求,該處理請(qǐng)求包括多個(gè)離散處理命令;將多個(gè)離散處理命令排隊(duì);并在多個(gè)高頻處理任務(wù)的每一次的執(zhí)行中,執(zhí)行排隊(duì)的處理命令的子集,以使多個(gè)離散處理請(qǐng)求的執(zhí)行分配在多個(gè)高頻處理任務(wù)中。
【專利說明】在實(shí)時(shí)處理器線程之間分配處理器加載的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體涉及在實(shí)時(shí)處理環(huán)境中不同線程之間傳輸處理活動(dòng)的方法。
【背景技術(shù)】
[0002]實(shí)時(shí)操作系統(tǒng)是軟件操作環(huán)境,其便于多個(gè)時(shí)間緊要的任務(wù)由處理器按照預(yù)定執(zhí)行頻率和執(zhí)行優(yōu)先級(jí)進(jìn)行。這樣的操作系統(tǒng)包括復(fù)雜的一套方法來(lái)調(diào)度各個(gè)任務(wù),以使任務(wù)在期限屆滿之前完成。在一些數(shù)據(jù)密集的應(yīng)用中,原始數(shù)據(jù)的移動(dòng)和/或其它處理器密集的任務(wù)可以在任務(wù)之間共享,以確保能夠滿足各期限。
【發(fā)明內(nèi)容】
[0003]實(shí)時(shí)操作系統(tǒng)中在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法包括:從較低頻處理任務(wù)向高頻處理任務(wù)提出處理請(qǐng)求,該處理請(qǐng)求包括多個(gè)離散處理命令;將多個(gè)處理命令排隊(duì);并在高頻處理任務(wù)的多個(gè)連續(xù)迭代(iteration)的每一次中,執(zhí)行排隊(duì)的處理命令中的子集,以使多個(gè)離散處理命令的執(zhí)行被分配在高頻處理任務(wù)的多個(gè)連續(xù)迭代中。例如,處理請(qǐng)求可包括復(fù)制用于執(zhí)行較低頻處理任務(wù)所需的多個(gè)相關(guān)數(shù)據(jù)塊。
[0004]在一種配置中,該方法可進(jìn)一步包括確定較低頻處理任務(wù)的執(zhí)行頻率與高頻處理任務(wù)的執(zhí)行頻率的比率。在高頻處理任務(wù)的每一次迭代處執(zhí)行的處理命令的子集可于是等于最初排隊(duì)的處理命令的總數(shù)目與所確定的比率的乘積。計(jì)算每一次迭代時(shí)將要執(zhí)行的任務(wù)數(shù)目可在與高頻處理任務(wù)和較低頻處理任務(wù)分開的處理任務(wù)中發(fā)生。
[0005]結(jié)合附圖時(shí),本發(fā)明的上述特征和優(yōu)點(diǎn)及其他特征和優(yōu)點(diǎn)從下文實(shí)施本發(fā)明的最佳模式的詳細(xì)描述變得顯而易見。
【專利附圖】
【附圖說明】
[0006]圖1是實(shí)時(shí)操作系統(tǒng)中在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法的流程圖。
[0007]圖2A是實(shí)時(shí)操作系統(tǒng)中的高頻處理任務(wù)的流程圖。
[0008]圖2B是實(shí)時(shí)操作系統(tǒng)中的低頻處理任務(wù)的流程圖。
[0009]圖2C是實(shí)時(shí)操作系統(tǒng)中的非常低頻的處理任務(wù)的流程圖。
【具體實(shí)施方式】
[0010]參照附圖,其中,各個(gè)視圖中相似的附圖標(biāo)記用于標(biāo)識(shí)相似或相同的部件。圖1示意性示出了在實(shí)時(shí)操作系統(tǒng)中,在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法10。如本文中所用的,“任務(wù)”是周期性地執(zhí)行計(jì)算機(jī)代碼的程序,該程序可操作以進(jìn)行一個(gè)或多個(gè)計(jì)算功能。
[0011]在實(shí)時(shí)操作系統(tǒng)中,多個(gè)不同的處理任務(wù)可以近似同步的方式被執(zhí)行。每一個(gè)任務(wù)可包括多個(gè)計(jì)算,所述多個(gè)計(jì)算可關(guān)于對(duì)處理器可得的數(shù)據(jù)進(jìn)行。每一個(gè)任務(wù)可被指定優(yōu)先級(jí)別和執(zhí)行頻率,該執(zhí)行頻率基于任務(wù)的重要性和性質(zhì),并且處理器可試圖調(diào)度任務(wù)的執(zhí)行,以確保每一個(gè)任務(wù)被在其特定的執(zhí)行頻率下進(jìn)行。
[0012]在一些情況下,被以較低頻執(zhí)行的任務(wù)可提出在較高頻下執(zhí)行的任務(wù)處理請(qǐng)求。例如,如果較低頻任務(wù)可操作來(lái)處理一些感官數(shù)據(jù),則較低頻任務(wù)可請(qǐng)求較高頻的任務(wù)將感官數(shù)據(jù)復(fù)制到存儲(chǔ)寄存器中,以使較慢的任務(wù)在需要時(shí)可以訪問這些數(shù)據(jù)。以該方式,較低頻任務(wù)不會(huì)在等待數(shù)據(jù)傳輸時(shí)被不適當(dāng)?shù)匮舆t。在一些情況下,較低頻任務(wù)可以是主操作任務(wù),而較高頻任務(wù)可被保留用于數(shù)據(jù)處理和/或通常服從較低頻任務(wù)的請(qǐng)求。
[0013]已經(jīng)發(fā)現(xiàn),當(dāng)較低頻處理任務(wù)向較高頻率處理任務(wù)提出過大的處理請(qǐng)求時(shí),實(shí)現(xiàn)請(qǐng)求所需要的處理時(shí)間可能超過配給高頻任務(wù)的目標(biāo)執(zhí)行周期(也就是說,目標(biāo)執(zhí)行周期為目標(biāo)執(zhí)行頻率的倒數(shù))。以該方式,高頻任務(wù)可能超過它的完成期限,導(dǎo)致比所期望的慢的執(zhí)行頻率。與理想處理速率的這種偏差可能影響時(shí)間緊要的任務(wù),和/或可能不利地影響系統(tǒng)穩(wěn)定性。
[0014]繼續(xù)參照?qǐng)D1,在非常一般的意義下,本方法10將向高頻任務(wù)提出的處理請(qǐng)求分配在高頻任務(wù)的多個(gè)迭代上。例如,如果對(duì)于較低頻任務(wù)的每一個(gè)循環(huán),高頻處理任務(wù)執(zhí)行每一個(gè)迭代10次,則該處理請(qǐng)求可能被分配在10個(gè)分開的高頻任務(wù)迭代上,而不是在一次單一的執(zhí)行/迭代中進(jìn)行整個(gè)請(qǐng)求。
[0015]當(dāng)較低頻率處理任務(wù)向高頻率處理任務(wù)提出處理請(qǐng)求時(shí),方法10開始于步驟12。該處理請(qǐng)求可包括多個(gè)離散處理命令,并且可用調(diào)用函數(shù)和/或記錄位數(shù)據(jù)表示,記錄位數(shù)據(jù)提示共享處理請(qǐng)求的高頻處理任務(wù)。處理請(qǐng)求的例子可包括將相關(guān)數(shù)據(jù)集合復(fù)制到與處理器相關(guān)聯(lián)的存儲(chǔ)器的請(qǐng)求。相關(guān)數(shù)據(jù)集合可由多個(gè)離散數(shù)據(jù)塊形成,所述數(shù)據(jù)塊可每一個(gè)都需要單獨(dú)標(biāo)記和/或復(fù)制(也就是說導(dǎo)致多個(gè)離散處理命令)。
[0016]在步驟12中提出請(qǐng)求之后,處理器可在步驟14中將多個(gè)離散處理命令排隊(duì)。該命令排隊(duì)可以作為未解決處理項(xiàng)目的當(dāng)前日志由高頻處理任務(wù)獲得。
[0017]在步驟16中,處理器可確定可在高頻處理任務(wù)的每一次迭代時(shí)執(zhí)行的處理命令的最大數(shù)目,以使排隊(duì)的處理命令可被分配在高頻處理任務(wù)的多個(gè)迭代中。在一種配置中,處理命令的最大數(shù)目可以是較低頻處理任務(wù)的期望的執(zhí)行頻率、高頻處理任務(wù)的期望的執(zhí)行頻率和隊(duì)列中所請(qǐng)求命令的總數(shù)目的函數(shù)。這樣,處理器可以首先確定較低頻處理任務(wù)的執(zhí)行頻率與高頻處理任務(wù)的執(zhí)行頻率的比率。當(dāng)該比率已知時(shí),在高頻處理任務(wù)的每一次相應(yīng)的迭代時(shí)所執(zhí)行的處理命令的數(shù)目可等于初始排隊(duì)的處理命令的總數(shù)目與該比率的乘積。
[0018]在步驟18中,處理器可通過高頻處理任務(wù)的每一次迭代執(zhí)行排隊(duì)的處理命令的子集。所執(zhí)行的處理命令的總數(shù)目可等于步驟16中所確定的命令的最大數(shù)目。以該方式,多個(gè)離散處理命令的執(zhí)行可被分配在高頻處理任務(wù)的多個(gè)迭代中,也可以在較低頻處理任務(wù)的下一次迭代開始之前完成。
[0019]在一種配置中,在高頻處理任務(wù)的每一種情況下可能執(zhí)行的處理命令最大數(shù)目的確定(即步驟16)可能在與前述的高頻處理任務(wù)和較低頻處理任務(wù)分開的處理任務(wù)中進(jìn)行。例如,對(duì)于重新發(fā)生的處理請(qǐng)求,任務(wù)的最大數(shù)目的計(jì)算可能在具有比其他兩個(gè)任務(wù)中的任一個(gè)更低頻的處理任務(wù)中進(jìn)行。
[0020]附圖2A、2B和2C示意性示出了高頻處理任務(wù)20 (即任務(wù)_0)、低頻處理任務(wù)40 (即任務(wù)-1)和非常低頻的處理任務(wù)60(即任務(wù)-2),非常低頻的處理任務(wù)60可以體現(xiàn)被主要用在任務(wù)-1中執(zhí)行操作的本發(fā)明的方法10。如圖2B所示,任務(wù)-1 (40)可開始于步驟42處,接著在步驟44中,處理器可確定是否該數(shù)據(jù)可以在存儲(chǔ)器中得以進(jìn)行處理。如果是,則任務(wù)-1 (40)可在步驟46中處理數(shù)據(jù),并在步驟48中為隨后的迭代請(qǐng)求新的數(shù)據(jù)。而如果在步驟44中數(shù)據(jù)不可得,則任務(wù)-1 (40)在步驟50中檢查是否有更多或者其它數(shù)據(jù)塊可得以進(jìn)行處理,并且如果沒有留下任何可執(zhí)行的數(shù)據(jù)塊,則在步驟52中結(jié)束。在步驟48中請(qǐng)求用于隨后的迭代的新數(shù)據(jù)的動(dòng)作可包括通過向處理隊(duì)列增加多個(gè)離散處理命令,向任務(wù)-O (20)提出處理請(qǐng)求。任務(wù)-1 (40)可然后以第一頻率迭代。
[0021]參照?qǐng)D2A中,任務(wù)-O (20)可開始于步驟22處,接著在步驟24處檢查隊(duì)列是否為空,如果隊(duì)列為非空,則任務(wù)-O (20)在步驟26處檢查復(fù)制的數(shù)據(jù)塊的數(shù)目是否少于“每項(xiàng)任務(wù)的最大數(shù)據(jù)塊數(shù)目”。如果是,則在步驟28處標(biāo)識(shí)將要復(fù)制的額外的數(shù)據(jù)塊。否則,任務(wù)-O (20)可在步驟30處行進(jìn)來(lái)復(fù)制任何已被標(biāo)識(shí)為將要復(fù)制的數(shù)據(jù)塊,并且在步驟32處結(jié)束。然后,任務(wù)-0(20)可在比任務(wù)-1 (40)的第一頻率更快的第二頻率下迭代。在一種配置中,任務(wù)-0(20)可在比任務(wù)-1 (40)快5至500倍的頻率下執(zhí)行。[0022]最后,參照?qǐng)D2C,任務(wù)-2(60)可開始于步驟62處,并可在步驟64中,通過確定任務(wù)-1(40)的執(zhí)行頻率與任務(wù)-O (20)的執(zhí)行頻率的比率,并將該比率乘以最初排隊(duì)的處理命令的總數(shù)目,確定變量“每項(xiàng)任務(wù)最大數(shù)據(jù)塊數(shù)目”。接著任務(wù)-2 (60)在步驟66處結(jié)束,并以比任務(wù)-1(40)的第一頻率和任務(wù)-O (20)的第二頻率都慢的第三頻率進(jìn)行迭代。
[0023]雖然已經(jīng)對(duì)用于實(shí)施本發(fā)明的最佳方式已進(jìn)行了詳細(xì)描述,但是熟悉本發(fā)明相關(guān)【技術(shù)領(lǐng)域】的人將意識(shí)到在所附權(quán)利要求范圍內(nèi)的用于實(shí)踐本發(fā)明的各種替代設(shè)計(jì)和實(shí)施例。意圖說明的是,包含在上文描述中或在附圖中的所有內(nèi)容應(yīng)僅被解釋為說明性的,而不是限制性的。
【權(quán)利要求】
1.一種實(shí)時(shí)操作系統(tǒng)中在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法。該方法包括: 從較低頻處理任務(wù)向高頻處理任務(wù)提出處理請(qǐng)求,該處理請(qǐng)求包括多個(gè)離散處理命令; 對(duì)多個(gè)離散處理命令進(jìn)行排隊(duì);并且 在高頻處理任務(wù)的多個(gè)連續(xù)迭代中的每一次迭代中,執(zhí)行排隊(duì)的處理命令的子集,以使多個(gè)離散處理命令的執(zhí)行分布于高頻處理任務(wù)的多個(gè)連續(xù)迭代中。
2.如權(quán)利要求1所述的方法,還包括確定較低頻處理任務(wù)的執(zhí)行頻率與高頻處理任務(wù)的執(zhí)行頻率的比率;并且 其中,在高頻處理任務(wù)的多個(gè)連續(xù)迭代中的每一次迭代時(shí)執(zhí)行的處理命令的子集等于初始排隊(duì)的處理命令的總數(shù)目與所確定的比率的乘積。
3.如權(quán)利要求2所述的方法,還包括計(jì)算高頻處理任務(wù)的多個(gè)連續(xù)迭代中的迭代每一次迭代中將要執(zhí)行的處理命令的數(shù)目。
4.如權(quán)利要求3所述的方法,其中,所述計(jì)算在與高頻處理任務(wù)和較低頻處理任務(wù)分開的處理任務(wù)中發(fā)生。
5.如權(quán)利要求1所述的方法,其中,多個(gè)離散的處理命令在較低頻處理任務(wù)的下一次執(zhí)行之前完成。
6.如權(quán)利要求1所述的方法,其中,處理請(qǐng)求包括復(fù)制多個(gè)相關(guān)數(shù)據(jù)塊。
7.如權(quán)利要求4所述的方法,其中,相關(guān)數(shù)據(jù)塊被請(qǐng)求用于較低頻處理任務(wù)的執(zhí)行。
8.一種實(shí)時(shí)操作系統(tǒng)中在高頻處理任務(wù)和較低頻處理任務(wù)之間分配處理器加載的方法,該方法包括: 從較低頻處理任務(wù)向高頻處理任務(wù)提出處理請(qǐng)求,該處理請(qǐng)求包括多個(gè)離散處理命令; 將多個(gè)離散處理命令進(jìn)行排隊(duì); 計(jì)算在高頻處理任務(wù)的多個(gè)連續(xù)迭代的每一次迭代中將要執(zhí)行的處理命令的數(shù)目;并且 在高頻處理任務(wù)的多個(gè)連續(xù)迭代的每一次迭代中執(zhí)行計(jì)算的數(shù)目的排隊(duì)處理命令,以使多個(gè)離散處理命令的執(zhí)行被分配在高頻處理任務(wù)的多個(gè)連續(xù)迭代中。
9.如權(quán)利要求8所述的方法,進(jìn)一步包括確定較低頻處理任務(wù)的執(zhí)行頻率與高頻處理任務(wù)的執(zhí)行頻率的比率;并且 其中,在高頻處理任務(wù)的多個(gè)連續(xù)迭代的每一次處執(zhí)行的處理命令的數(shù)目等于初始排隊(duì)的處理命令的總數(shù)目與所確定的比率的乘積。
10.如權(quán)利要求8所述的方法,其中,計(jì)算在與高頻處理任務(wù)和較低頻處理任務(wù)分開的處理任務(wù)中發(fā)生。
【文檔編號(hào)】G06F9/48GK103914348SQ201410003329
【公開日】2014年7月9日 申請(qǐng)日期:2014年1月3日 優(yōu)先權(quán)日:2013年1月3日
【發(fā)明者】J.M.費(fèi)爾南多, S.E.舒爾茲, B.A.威爾克科 申請(qǐng)人:通用汽車環(huán)球科技運(yùn)作有限責(zé)任公司