產(chǎn)品詳情
控制時間密集的指令的制作方法
控制時間密集的指令的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明針對數(shù)據(jù)處理裝置領(lǐng)域。更特定言之,本發(fā)明可與數(shù)據(jù)處理裝置中控制時間密集的指令相關(guān)。
【背景技術(shù)】
[0002]在實時系統(tǒng)中,常常需要在一時段內(nèi)或在特定時間響應特定事件。為了實現(xiàn)此點,此類系統(tǒng)常常依賴于作為整體的系統(tǒng)的確定性行為。舉例而言,可能需要提供在預定間隔或時間處對處理器或另一硬件裝置(諸如傳感器)存取的軟件。
[0003]實時系統(tǒng)的一個實例是安全氣囊展開系統(tǒng),該系統(tǒng)被設計為偵測車輛的碰撞且在偵測到此碰撞時展開安全氣囊。在此系統(tǒng)中,可能必須在自偵測到碰撞事件的極短時段內(nèi)展開安全氣囊。
[0004]然而,若硬件繁忙,則在給定時段內(nèi)響應特定事件的問題變得復雜。詳言之,若處理器正執(zhí)行耗時指令,則在可實施任何其他工作前存在延遲。例如,設想安全氣囊展開系統(tǒng),若處理器開始執(zhí)行耗時指令,隨后立即發(fā)生碰撞事件,則可能需要處理器完成執(zhí)行耗時指令,之后可展開安全氣囊。這可能導致以下情形:已發(fā)生碰撞,但在耗時指令完成前安全氣囊展開系統(tǒng)將長時間無法操作。
[0005]因此,在實時系統(tǒng)中,在不方便時執(zhí)行耗時指令可能對該系統(tǒng)的總體效能具有明顯不利影響,且甚至可能導致系統(tǒng)的完全故障。
[0006]處理此類指令的一種方式為,當發(fā)生關(guān)鍵事件時單純終止指令的執(zhí)行。然而,這將浪費已在該指令上消耗的任何處理器資源,且可能常常需要消耗甚至更多的處理器資源以將處理器的狀態(tài)恢復到耗時指令開始執(zhí)行前的樣子。另外,一些指令為本質(zhì)上不可中斷或者若中斷則可能產(chǎn)生不便的不良影響。
【發(fā)明內(nèi)容】
[0007]根據(jù)一方面,提供一種信息處理設備,該信息處理設備包含:處理電路系統(tǒng),該處理電路系統(tǒng)被配置為執(zhí)行包含一個或多個時間密集指令的指令;及異常產(chǎn)生電路系統(tǒng),該異常產(chǎn)生電路系統(tǒng)被配置為針對該處理電路系統(tǒng)產(chǎn)生至少一個異常,其中配置該處理電路系統(tǒng)以保持控制值,該控制值用于指示是否可執(zhí)行這些時間密集指令;其中該異常產(chǎn)生電路系統(tǒng)被配置為當該控制值處于指示不可執(zhí)行這些時間密集指令的一狀態(tài)時,響應于這些時間密集指令中的一者而產(chǎn)生一異常以觸發(fā)處理電路系統(tǒng)遏止對這些時間密集指令中的這一者的執(zhí)行;及其中該異常產(chǎn)生電路系統(tǒng)被配置為當該控制值處于指示可執(zhí)行這些時間密集指令的二狀態(tài)時,響應于這些時間密集指令中的一者而執(zhí)行這些時間密集指令中的這一者。
[0008]本技術(shù)認識到,運行時間密集指令有時可能是不利的,特別是在實時系統(tǒng)中在必須相對迅速響應的關(guān)鍵事件前發(fā)生此類指令時。舉例而言,若系統(tǒng)本將開始運行時間密集指令且本將隨后立即發(fā)生關(guān)鍵事件或異常,則在可響應關(guān)鍵事件或異常前可能需要完成時間密集指令。在實時系統(tǒng)中,這可能是不可接受的,因為可能需要在極短時段內(nèi)響應異?;蚴录?br />
[0009]根據(jù)以上方面,提供控制值用于指示是否可由處理電路系統(tǒng)運行時間密集指令(亦即,是否容許運行時間密集指令)。若將控制值設置為不可運行時間密集指令的狀態(tài),則嘗試運行時間密集指令將導致由異常產(chǎn)生電路系統(tǒng)產(chǎn)生的第一異常,引發(fā)遏止對該時間密集指令的執(zhí)行?;蛘?,若控制值的狀態(tài)使得可運行時間密集指令,則繼續(xù)執(zhí)行這些指令且不產(chǎn)生第一異常。因此,通過控制控制值的狀態(tài),可根據(jù)需要容許或不允許時間密集指令。因此,若已知關(guān)鍵事件即將發(fā)生或具有高發(fā)生概率,則可將控制值設置為不允許在該事件前的時間密集指令。因此,當事件本身發(fā)生時,應沒有耗時指令發(fā)生且可迅速響應該事件。
[0010]存在時間密集指令的許多不同實例。在一些實施例中,可認為時間密集指令為需要處理電路系統(tǒng)的多個處理周期來執(zhí)行的指令。代替此實例或除此實例外,時間密集指令可包含一旦開始則不可中斷的指令。
[0011 ]除這兩個實例中的任一者外或代替該任一者,時間密集指令可包括以下各項中的至少一者:浮點平方根指令、除法指令、不可中斷加載多個指令、不可中斷儲存多個指令及至少一個預定單指令多數(shù)據(jù)(snffi)指令。
[0012]浮點平方根指令及整數(shù)或浮點除法指令可能是耗時的,單純是由于這些指令需要大量處理周期完成的本質(zhì)。不中斷這些指令可為較佳,因為否則將需要時間密集操作再次開始。此外,以程序次序在時間密集平方根或除法指令后或并行執(zhí)行的后來指令可能在完成該指令前復寫平方根或除法指令的輸入寄存器,使得若中斷則很難或甚至不可能重新開始這些指令。舉例而言,若將指令中所引用的內(nèi)存的地址視為裝置(Device)類型內(nèi)存,則可將加載及儲存指令標記為不可中斷。可將此內(nèi)存映像至硬件裝置,并且對這些內(nèi)存位置的讀取或?qū)懭肟墒沟醚b置以特定方式行動。中斷這些指令可導致硬件裝置的不正確或不確定的行為。SIMD指令是在相同輸入操作數(shù)內(nèi)對多個數(shù)據(jù)元素并行執(zhí)行單個處理運算符的指令。至少一些SMD操作可涉及許多處理器周期且與整數(shù)或浮點除法指令一樣,若中斷則不可能重新開始此類指令。
[0013]術(shù)語“時間密集指令”的其他適宜實例將對熟習此項技術(shù)者顯而易見且可代替或除上文所提供的這些實例中的任一者使用這些實例。
[0014]處理電路系統(tǒng)可被配置為在第一特權(quán)等級下執(zhí)行第一軟件及在比第一特權(quán)等級更高的第二特權(quán)等級下執(zhí)行第二軟件。即,在比第二軟件更低的特權(quán)等級下執(zhí)行第一軟件。術(shù)語“更高”是指特權(quán)的等級,而非與該特權(quán)等級關(guān)聯(lián)的任何數(shù)值。因此,特權(quán)較多的等級可在數(shù)字上比特權(quán)較少的等級更高或更低。大體而言,“更高”特權(quán)軟件可具有“更低”特權(quán)下的軟件不可用的權(quán)利。
[0015]在這些實施例中的一些實施例中,第二軟件可被配置為控制處理電路系統(tǒng)改變該控制值。
[0016]異常產(chǎn)生電路系統(tǒng)可被配置為響應于該第一軟件的這些時間密集指令中的一者而產(chǎn)生第一異常。亦即,當?shù)谝卉浖L試運行時間密集指令中的一者時,異常產(chǎn)生電路系統(tǒng)可產(chǎn)生第一異常??梢虼私逵煽刂浦祦砉芸氐谝卉浖男袨椤?br />
[0017]因此,以更多特權(quán)執(zhí)行的第二軟件可設置控制值,而在更少特權(quán)等級下執(zhí)行的第一軟件可受控制值影響。此類實施例適于一組軟件由另一件軟件管控的系統(tǒng),諸如虛擬化環(huán)境中。
[0018]異常產(chǎn)生電路系統(tǒng)可被配置為僅響應于在比該第二特權(quán)等級更低的特權(quán)等級下執(zhí)行的軟件的時間密集指令的一者而產(chǎn)生第一異常。亦即,將僅針對在比第二特權(quán)等級更低的特權(quán)等級下執(zhí)行的軟件產(chǎn)生第一異常。換言之,異常產(chǎn)生電路系統(tǒng)被配置為響應于在該第二特權(quán)等級下執(zhí)行的軟件的時間密集指令的一者而不產(chǎn)生第一異常。在這些實施例中的一些實施例中,異常產(chǎn)生電路系統(tǒng)被配置為響應于在特權(quán)最大等級下執(zhí)行的軟件的這些時間密集指令中的一者而不產(chǎn)生該第一異常。因此,一些軟件可總是有權(quán)產(chǎn)生時間密集指令。舉例而言,超管理器或管控軟件可有權(quán)總是運行時間密集指令。
[0019]第一軟件可包含一個或多個客操作系統(tǒng),并且第二軟件可包含超管理器。本技術(shù)非常適合于包括超管理器及一個或多個虛擬化客操作系統(tǒng)的環(huán)境,因為超管理器能夠控制每一客操作系統(tǒng)的行為以確保公平分配資源。舉例而言,藉由超管理器設置控制值,可能限制由第一客操作系統(tǒng)所發(fā)布的時間密集指令對第二客操作系統(tǒng)的影響。
[0020]可響應于一個或多個預定事件(諸如上下文切換)而改變控制值,此舉改變了特定時刻在處理電路系統(tǒng)上正在執(zhí)行哪個軟件。舉例而言,上下文切換可暫停一客操作系統(tǒng)的處理并繼續(xù)進行另一客操作系統(tǒng)或超管理器的處理。在此類實施例中,處理電路系統(tǒng)響應上下文切換以將控制值變成第二狀態(tài)。亦即,響應于上下文切換,處理電路系統(tǒng)改變控制值以使得可運行時間密集指令。