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