TWI654561B - 用於控制時間密集的指令的資訊處理設備及方法 - Google Patents
用於控制時間密集的指令的資訊處理設備及方法Info
- Publication number
- TWI654561B TWI654561B TW103125333A TW103125333A TWI654561B TW I654561 B TWI654561 B TW I654561B TW 103125333 A TW103125333 A TW 103125333A TW 103125333 A TW103125333 A TW 103125333A TW I654561 B TWI654561 B TW I654561B
- Authority
- TW
- Taiwan
- Prior art keywords
- time
- instructions
- intensive
- information processing
- circuit system
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims description 13
- 230000005856 abnormality Effects 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000003111 delayed effect Effects 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 239000012190 activator Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Executing Machine-Instructions (AREA)
Abstract
執行時間密集指令可導致關鍵事件被延遲回應或完全不回應。資訊處理設備包含:處理電路系統60,用於執行包含一或更多個時間密集指令的指令;及異常產生電路系統100,用於針對處理電路系統產生至少一個異常。處理電路系統保持控制值20,該控制值用於指示是否可執行時間密集指令。當遭遇時間密集指令時,若控制值指示不可執行時間密集指令,則第一異常觸發處理電路系統遏止對時間密集指令的執行。或者,若控制值指示可執行時間密集指令,則執行時間密集指令。
Description
本發明係針對資料處理裝置領域。更特定言之,本發明可與資料處理裝置中控制時間密集的指令相關。
在即時系統中,常常需要在一時段內或在特定時間回應特定事件。為了實現此點,此類系統常常依賴於作為整體的系統之確定性行為。舉例而言,可需要提供在預定間隔或時間處對處理器或另一硬體裝置(諸如感測器)存取之軟體。
即時系統之一實例係安全氣囊展開系統,該系統經設計以偵測車輛之碰撞且在偵測到此碰撞時展開安全氣囊。在此系統中,可必須在自偵測到碰撞事件的極短時段內展開安全氣囊。
然而,若硬體繁忙,則在給定時段內回應特定事件之問題變得複雜。詳言之,若處理器正執行一耗時指令,則在可實施任何其他工作前存在延遲。例如,設想安全氣囊展開系統,若處理器開始執行耗時指令,隨後立即發生碰撞事件,則可需要處理器完成執行耗時指令,之後可展開安全氣
囊。此可導致以下情形:已發生碰撞,但在耗時指令完成前安全氣囊展開系統將長時間無法操作。
因此,在即時系統中,在不方便時執行耗時指令可對該系統之總體效能具有明顯不利影響,且甚至可導致系統之完全故障。
處理此類指令之一方式為,當發生關鍵事件時單純終止指令之執行。然而,此將浪費已在該指令上消耗的任何處理器資源,且可常常需要消耗甚至更多的處理器資源以將處理器之狀態恢復到耗時指令開始執行前的樣子。另外,一些指令為本質上不可中斷或者若中斷則可產生不便的不良影響。
根據一態樣,提供一種資訊處理設備,該資訊處理設備包含:處理電路系統,該處理電路系統經配置以執行包含一或更多個時間密集指令的指令;及異常產生電路系統,該異常產生電路系統經配置以針對該處理電路系統產生至少一個異常,其中配置該處理電路系統以保持一控制值,該控制值用於指示是否可執行該等時間密集指令;其中該異常產生電路系統經配置以當該控制值處於指示不可執行該等時間密集指令之第一狀態時,回應於該等時間密集指令中之一者產生第一異常以觸發處理電路系統遏止對該等時間密集指令中之該一者的執行;及其中該異常產生電路系統經配置以當該控制值處於指示可執行該等時間密集指令之第二狀態時,回應於該等時間密集指令中之一者執行該等時間密集指令中
之該一者。
本技術認識到,執行時間密集指令可有時為不利的,特別是在即時系統中在必須相對迅速回應的關鍵事件前發生此類指令時。舉例而言,若系統本將開始執行時間密集指令及本將隨後立即發生關鍵事件或異常,則在可回應關鍵事件或異常前可需要完成時間密集指令。在即時系統中,此可為不可接受的,因為可需要在極短時段內回應異常或事件。
根據上文態樣,提供控制值用於指示是否可藉由處理電路系統執行時間密集指令(亦即,是否容許執行時間密集指令)。若將控制值設置為不可執行時間密集指令的狀態,則嘗試執行時間密集指令將導致由異常產生電路系統產生的第一異常,引發遏止對彼時間密集指令的執行。或者,若控制值之狀態使得可執行時間密集指令,則繼續執行彼等指令及不產生第一異常。因此,藉由控制控制值之狀態,可根據需要容許或不允許時間密集指令。因此,若已知關鍵事件即將發生或具有高發生概率,則可將控制值設置為不允許在彼事件前的時間密集指令。因此,當事件本身發生時,應沒有耗時指令發生且可迅速回應該事件。
存在時間密集指令之許多不同實例。在一些實施例中,可認為時間密集指令為需要處理電路系統之多個處理週期來執行的指令。代替此實例或除此實例外,時間密集指令可包含一旦開始不可中斷的指令。
除該等兩個實例中的任一者外或代替該任一者,時間密集指令可包括以下之至少一者:浮點平方根指令、除法
指令、不可中斷載入多個指令、不可中斷儲存多個指令及至少一個預定單指令多資料(SIMD)指令。
浮點平方根指令及整數或浮點除法指令可為耗時,單純是由於該等指令需要大量處理週期完成之本質。不中斷該等指令可為較佳,因為否則將需要時間密集操作再次開始。此外,可能以程式次序在時間密集平方根或除法指令後或並行執行的後來指令可在完成彼指令前複寫平方根或除法指令之輸入暫存器,使得若中斷則很難或甚至不可能重新開始彼等指令。舉例而言,若將指令中所引用的記憶體之位址視為裝置(Device)類型記憶體,則可將載入及儲存指令標記為不可中斷。可將此記憶體映射至硬體裝置及對該等記憶體位置的讀取或寫入可引發裝置以特定方式行動。中斷該等指令可導致硬體裝置之不正確或不確定的行為。SIMD指令係在相同輸入運算元內對多個資料元素並行執行單個處理運算子的指令。至少一些SIMD操作可涉及許多處理器週期且與整數或浮點除法指令一樣,若中斷則不可能重新開始此類指令。
術語「時間密集指令」之其他適宜實例將對熟習此項技術者顯而易見且可代替或除上文所提供之彼等實例中的任一者使用該等實例。
處理電路系統可經配置以在第一特權等級下執行第一軟體及在比第一特權等級更高的第二特權等級下執行第二軟體。亦即,在比第二軟體更低的特權等級下執行第一軟體。術語「更高」係指特權之等級,而非與該特權等級關聯的任何數值。因此,特權較多之等級可在數字上比特權較少之等
級更高或更低。大體而言,「更高」特權軟體可具有「更低」特權下之軟體不可用的權利。
在該等實施例中的一些實施例中,第二軟體可經配置以控制處理電路系統改變該控制值。
異常產生電路系統可經配置以回應於該第一軟體之該等時間密集指令中之一者產生第一異常。亦即,當第一軟體嘗試執行時間密集指令中之一者時,異常產生電路系統可產生第一異常。可因此藉由控制值管控第一軟體之行為。
因此,以更多特權執行的第二軟體可設置控制值,及在更少特權等級下執行的第一軟件可受控制值影響。此類實施例適於一組軟體由另一件軟體管控的系統,諸如虛擬化環境中。
異常產生電路系統可經配置以僅回應於在比該第二特權等級更低的特權等級下執行之軟體之時間密集指令之一者產生第一異常。亦即,將僅針對在比第二特權等級更低的特權等級下執行的軟體產生第一異常。換言之,異常產生電路系統經配置以回應於在該第二特權等級下執行的軟體之時間密集指令之一者不產生第一異常。在該等實施例中的一些實施例中,異常產生電路系統經配置以回應於在特權最大等級下執行的軟體之該等時間密集指令中之一者不產生該第一異常。因此,一些軟體可總是有權產生時間密集指令。舉例而言,超管理器或管控軟體可有權總是執行時間密集指令。
第一軟體可包含一或更多個客作業系統及第二軟體可包含超管理器。本技術非常適合於包括超管理器及一或更
多個虛擬化客作業系統的環境,因為超管理器能夠控制每一客作業系統之行為以確保公平分配資源。舉例而言,藉由超管理器設置控制值,可能限制由第一客作業系統所發佈的時間密集指令對第二客作業系統的影響。
可回應於一或更多個預定事件(諸如上下文切換)改變控制值,此舉改變了特定時刻在處理電路系統上正在執行哪個軟體。舉例而言,上下文切換可暫停一客作業系統之處理及繼續進行另一客作業系統或超管理器之處理。在此類實施例中,處理電路系統回應上下文切換以將控制值變成第二狀態。亦即,回應於上下文切換,處理電路系統改變控制值以使得可執行時間密集指令。在一些情況中,在上下文切換後立即允許時間密集指令係執行此類指令的最適宜時間,因為在已發生上下文切換後如此短暫時間內將不可能開始執行另一作業系統。因此,在發生下一上下文切換前,作業系統具有最多時間可用來實施時間密集指令。
預定事件之另一實例為第二異常,該第二異常可產生於預期事件前的第一預定時段。舉例而言,預期事件可為上下文切換及可在先前上下文切換後的第二預定時段發生第二異常。亦即,在上下文切換發生後的預定時段流逝後,產生第二異常,引發控制值改變狀態以使得不可執行時間密集指令。在利用超管理器的一實施例中,第二軟體(例如,超管理器)可回應於第二異常控制處理電路系統。上下文切換通常為週期性的。因此,藉由在自最後上下文切換以來一段流逝時段後及在預期下一上下文切換前遏止時間密集指令,
執行時間密集指令將較不可能延遲未來上下文切換,且因此將較不可能影響硬體設備上執行的其他軟體。
在一些情況中,第一預定時段比第二預定時段更短。詳言之,第一預定時段與第二時段之比率可為1:9。換言之,可執行時間密集指令的時段可比不可執行時間密集指令的時段更長,不可執行時間密集指令的時段處於發生後續上下文切換前不久。此特徵之優勢在於可大體上容許時間密集指令(90%的時間),此舉允許資料處理裝置正常操作。僅在一短時段遏止時間密集指令。
回應於第二異常,處理電路系統可經配置以將控制值變成指示不可執行該等時間密集指令的該第一狀態。以此方式,在為預期事件作準備時,不允許時間密集指令,因此使得系統更能夠迅速回應預期事件,而非需要執行時間密集指令。
在一些實施例中,該處理電路系統經配置以回應於第一異常切換執行該第二軟體。存在使第二軟體可對所產生之第一異常作出反應的各種方式,下文將描述該等方式之一些實例。熟習此項技術者將瞭解,該等實例並非限制性。此外,可以任何方式適當組合該等實例。
第二軟體可經配置以控制該處理電路系統改變該等複數個第一軟體中的活躍者。亦即,回應於該第一異常,第二軟體改變該等複數個第一軟體中的活躍者。舉例而言,在通常將允許即將到來的上下文切換前,可提前切換不同的客作業系統。因此,並未浪費處理電路系統之處理週期且可根
據切換到的客作業系統消耗該等處理週期。
回應於該第一異常,可配置該處理電路系統以在發生後續上下文切換前不執行該等複數個第一軟體。在此情形中,在接收另一上下文切換前,將不執行複數個第一軟體中的任一者。藉由不改變回應於所產生之第一異常執行第一軟體中的何者,保持處理設備之確定性本質。亦即,將不改變預期執行特定第一軟體的時間。然而,不容許繼續執行發佈時間密集指令的第一軟體。一旦發生上下文切換,可改變該等複數個第一軟體中的活躍者,且當處理切換回原始第一軟體時,可容許該等複數個第一軟體中的彼活躍者正常執行指令及稍後將執行耗時指令。
在一些情況中,回應於該第一異常,配置該處理電路系統以繼續執行該等複數個第一軟體中的活躍者,而不執行該等時間密集指令之該一者。亦即,在該等情況中,該第一軟體中的活躍者保持活躍且容許繼續執行。然而,引發產生第一異常的時間密集指令並未被執行且可需要在稍後再發佈。
根據第二態樣,提供一種用於資訊處理設備的機器實施方法,該方法包含以下步驟:執行包含一或更多個時間密集指令的一或更多個指令;保持一控制值,該控制值用於指示是否可執行該等時間密集指令;當該控制值指示不可執行該等時間密集指令時,回應於該等時間密集指令中之一者,產生第一異常以遏止對該等時間密集指令中之該一者的執行;及當該控制值指示可執行該等時間密集指令時,回應
於該等時間密集指令中之一者,執行該等時間密集指令中之該一者。
根據第三態樣,提供一種資訊處理設備,該資訊處理設備包含:處理手段,該處理手段用於執行包含一或更多個時間密集指令的指令;及異常產生手段,該異常產生手段用於針對該處理電路系統產生至少一個異常,其中該處理手段經配置以保持一控制值,該控制值用於指示是否可執行該等時間密集指令;其中該異常產生手段經配置以當該控制值處於指示不可執行該等時間密集指令之第一狀態時,回應於該等時間密集指令中之一者產生第一異常以觸發處理手段遏止對該等時間密集指令中之該一者的執行;及其中該異常產生手段經配置以當該控制值處於指示可執行該等時間密集指令之第二狀態時,回應於該等時間密集指令中之一者執行該等時間密集指令中之該一者。
10‧‧‧超管理器
20‧‧‧控制值
30‧‧‧即時作業系統
40‧‧‧任務
50‧‧‧富作業系統
60‧‧‧處理電路系統
70‧‧‧記憶體
80‧‧‧記憶體保護單元
90‧‧‧暫存器
100‧‧‧異常產生電路系統
110‧‧‧週期計數器
120‧‧‧第二時段
130‧‧‧時間片
140‧‧‧第一時段
150‧‧‧時段
S200‧‧‧步驟
S210‧‧‧步驟
S220‧‧‧步驟
S230‧‧‧步驟
S240‧‧‧步驟
S250‧‧‧步驟
S260‧‧‧步驟
參考隨附圖式中所圖示之本發明之實施例,將僅以舉例之方式進一步描述本發明,在該等圖式中:第1圖示意性圖示由可應用本技術之資訊處理設備執行的軟體之層級表示;第2圖示意性圖示根據一實施例之資訊處理設備;第3圖圖示基於控制值之狀態允許/禁止執行時間密集指令之實例;第4A圖示意性圖示根據一實施例對第一異常之回應;
第4B圖示意性圖示根據第二實施例對第一異常之回應;第4C圖示意性圖示根據第三實施例對第一異常之回應;第5圖示意性圖示根據一實施例回應時間密集指令之方法。
第1圖示意性圖示可利用本文所描述之技術在虛擬化系統中執行的軟體。
軟體係層級式且包含在異常等級EL2(亦稱為特權等級或執行等級)下執行的超管理器10,該超管理器管控在異常等級EL1下執行的眾多客作業系統。異常等級指示給定在彼異常等級上執行軟體的特權程度。在此實例中,超管理器在比客作業系統更高的異常等級下執行,且因此超管理器具有比客作業系統更多的特權。此特定實例展示三個異常等級(EL2、EL1及EL0)。然而,將瞭解,本文所描述之技術適用於包含任何複數個數目之異常等級的系統。
客作業系統包括即時作業系統30及富作業系統50。即時作業系統通常經設計以迅速回應偵測到的事件,而非繼續執行使用者所請求的任務。許多事件可為關鍵的,指示必須在一定時段內回應該等事件以避免系統之毀滅性故障。富作業系統亦可回應事件,但通常不由事件驅動且通常完全不處理關鍵事件。富作業系統之實例包括家庭環境中所熟知的彼等系統,諸如「windows」及「linux」系統。舉例而
言,即時作業系統可控制汽車中的安全氣囊或制動器,而富作業系統可控制汽車立體聲。
每一作業系統30、50可管控一或更多個即時或非即時任務40。甚至在更低的異常等級EL0下操作該等任務。
在此實施例中,超管理器在多個客作業系統之間共用資源。亦即,在任意一個時間處,僅活躍執行客作業系統中之一者及其他作業系統必須等待。由超管理器控制選擇作用中作業系統及決定哪個作業系統應將被接下來執行。
因此,將瞭解,其他客作業系統之行為部分地決定每一客作業系統之執行。舉例而言,若富作業系統50之一者開始執行特別耗時且因此不可中斷的任務,則超管理器10可不允許即時作業系統30共用處理電路系統,直至耗時指令已執行完成。因此,若即時作業系統正等待回應關鍵事件,則必須等待。
在第1圖所示之實施例中,超管理器10設置控制值20,該控制值控制是否容許客作業系統30、50或由彼等客作業系統管控的任務40中之一者執行時間密集指令,此控制可防止即時作業系統30回應即時關鍵事件。因此,藉由改變控制值之狀態,可能禁止或遏止對時間密集指令的執行以使得即時關鍵事件能夠被立即處置。控制值20可形成記憶體70、暫存器90、處理電路系統60的一部分或可為完全獨立裝置。
第2圖示意性圖示用於實施本技術的資訊處理設備。在此實施例中,提供處理電路系統60用於執行一或更多個指令。一或更多個指令可包括時間密集的指令。在此上下
文中,時間密集指令可為需要處理電路系統60之複數個時脈週期來執行的指令。可將一或更多個不同類型指令預定為耗時指令。
處理電路系統60對時間密集指令的嘗試執行之回應取決於控制值20之狀態。舉例而言,若將控制值20設置為值0或假,則此指示允許時間密集指令。反之,若將控制值設置為值1或真,則此指示不允許時間密集指令。熟習此項技術者將瞭解,該等值當然可為相反或其他表示可為可能的。舉例而言,控制值可表示允許執行時間密集指令的條件之集合。
當控制值20指示允許時間密集指令時,回應於處理電路系統60所遭遇的時間密集指令(例如,在發佈狀態或執行階段),處理電路系統60將執行彼時間密集指令。或者,當控制值20指示不允許時間密集指令時,回應於所遭遇的時間密集指令,異常產生電路系統100將產生第一異常(或中斷)。第一異常引發處理電路系統60切換離開作用中作業系統及反而執行超管理器10。超管理器10藉由遏止時間密集指令回應,使得不執行時間密集指令。在不執行時間密集指令的情況下,超管理器可隨後採取進一步動作以允許向前行進。
異常產生電路系統100可產生除第一異常外的其他異常。可能發佈的另一異常之一實例係上下文切換異常,此異常引發處理電路系統在執行不同的作業系統之間切換。可基於週期計數器110的值定期產生此異常。
在第2圖所示之實施例中,異常產生電路系統100
產生第二異常以控制處理電路系統60轉換控制值20。因此,可改變時間密集指令之執行。使用週期計數器110週期性發佈此第二異常。因此,可使得處理電路系統60定期允許或不允許時間密集指令被發佈或使得該處理電路系統在給定時段在兩個狀態之間交替。
資訊處理設備進一步包括經由記憶體保護單元(memory protection unit;MPU)80存取的記憶體70,該記憶體保護單元限制對記憶體70之存取。資訊處理設備亦包含暫存器90之集合。在其他實施例中,可在適當位置或除MPU外提供記憶體管控單元(memory management unit;MMU)。
時間密集指令可需要處理電路系統60之複數個處理週期以便執行。然而,在一些實施例中,時間密集指令為預界定集合。舉例而言,預界定集合可包括浮點平方根指令及除法指令。預界定集合亦可包括不可中斷載入多個指令,在該等指令中將儲存於記憶體70中的複數個資料值轉移至暫存器90。類似地,預界定列表可包括不可中斷儲存多個指令,在該等指令中將儲存於暫存器90中的複數個資料值轉移至記憶體70。MPU 80可指示特定載入多個或儲存多個指令為不可中斷。舉例而言,可藉由相關於記憶體70之記憶體位址之特定範圍設置MPU 80中的特定位元發生此情況。當處理裝置類型記憶體時可實施此操作,其中藉由對直接映射至硬體裝置的記憶體中的部分讀取及寫入來控制彼硬體裝置。此類指令必須為不可中斷,以便確保不出現僅資料值之子集合被儲存至記憶體或自記憶體讀取的情形,該情形可導致硬體裝置以
不正確或非確定性方式行動。
指令之預定列表亦可包括至少一個預定單指令多資料(single instruction multiple data;SIMD),可使用此類指令以便藉由僅發佈單個指令對多段資料並行執行眾多操作。舉例而言,單個(SIMD)指令可用於執行矩陣乘法。
第3圖示意性圖示使用控制值控制是否可執行時間密集指令。
在時間t0處,將控制值設置為0,指示允許時間密集指令。
在時間t1處,發佈時間密集指令。由於在時間t1處將控制值設置為0,指示允許時間密集指令,容許指令進行且因此由處理電路系統60執行該指令。
在時間t2處,將控制值設置為1,指示不允許時間密集指令。由於接近時間t4處的預期即時關鍵事件,可在時間t2處不允許時間密集指令。藉由不允許非常接近於預期即時關鍵事件的時間密集指令,可防止由處置時間密集指令所造成對即時關鍵事件回應延遲的情形。
在時間t3處,發佈進一步時間密集指令。由於在時間t3處控制值為1,指示不允許時間密集指令,將不容許執行時間密集指令及反而將藉由異常產生電路系統100產生第一異常以引發處理電路系統60遏止時間密集指令。
最後,在時間t4處,發生預期即時關鍵事件。由於在發生即時關鍵事件前已不允許時間密集指令,所以在時間t4處將不可能正在處理任何時間密集指令。因此,可能幾乎立
即回應即時關鍵事件,而具有極少延遲。
第4A圖圖示第一實例,其中當控制值20指示不容許此類指令時,處理電路系統60回應由異常產生電路系統100回應於所發佈之時間密集指令而產生的第一異常。如第4A圖所示,處理電路系統60經配置以在執行三個不同作業系統OS1、OS2及OS3之間循環。執行發生在不同時間片130,其中每一時間片專用於特定客作業系統。自一作業系統至另一作業系統(亦即,自一時間片至另一時間片)的切換稱為上下文切換。在每一上下文切換發生前,產生第二異常(在第4A圖中由虛線指示)。第二異常引發處理電路系統60改變儲存於控制值20內的值以使得不容許時間密集指令。在已發生上下文切換後,設置控制值20以再次允許時間密集指令。因此,從第4A圖可看出,可將每一時間片130視為容許時間密集指令的第一時段140及不容許時間密集指令的第二時段120。第4A圖圖示第二時段120比第一時段140明顯更短。舉例而言,第一時段140與第二時段120之比率可為9:1。因此,大體上容許時間密集指令,但不容許隨後立即發生上下文切換的時間密集指令。因此,在處置每一上下文切換上存在極少延遲,因為在可發生上下文切換前將不可能需要完成任何時間密集指令。因此,在常規排程下執行三個作業系統OS1、OS2及OS3且容許在確定性時間處執行該等作業系統,由於上下文切換被推遲,變化極少。當嘗試執行時間密集指令時,當控制值20指示不容許此類指令時,異常產生電路系統100將產生第一異常,引發處理器60執行超管理器。
超管理器可隨後回應若干方式之一,如第4A圖、第4B圖及第4C圖所示。
在第4A圖中,處理電路系統60藉由遏止對時間密集指令的執行及不執行作業系統OS1、OS2或OS3中的任一者來回應第一異常。因此,對於遭遇時間密集指令與下一上下文切換之間的時段150,可執行形成超管理器之一部分的軟體,但不可執行客作業系統。
第4B圖與第4A圖類似,但第4B圖圖示對時間t3處發生第一異常的不同回應。在此實例中,仍遏止時間密集指令,但承接本將立刻發生的預期上下文切換操作,而非不執行作業系統OS1、OS2及OS3中的任一者。因此,容許提前執行作業系統OS1。在此實施例中,未浪費處理資源。然而,系統之確定性本質改變,因為比通常原本預期的更早執行下一作業系統。因此,如第4A圖所示等待下一上下文切換可更為簡單,而非改變上下文切換時序。
第4C圖與第4A圖及第4B圖類似。仍遏止時間密集指令。然而,回應於在時間t3處發生第一異常,繼續執行作業系統OS3。舉例而言,若時間密集指令發生作為OS3下之第一任務的一部分,OS3可能夠繼續執行不同的第二任務,而非第一任務。超管理器隨後實施某一動作以免執行時間密集指令。舉例而言,超管理器可引發客作業系統發佈自身上下文切換,以便切換離開引發了執行時間密集指令的一任務,及反而執行不同的任務。或者,超管理器可藉由發佈錯誤或異常以指示當前不可執行所請求操作來回應時間密集指
令。
第5圖示意性圖示根據一實施例回應時間密集指令之方法。
在步驟S200處,擷取下一指令。在步驟S210處,處理電路系統60決定所擷取指令是否為時間密集指令。若指令不為時間密集指令,則在步驟S220處,執行指令且方法返回至步驟S200。然而,若在步驟S210處,決定指令為時間密集指令,則在步驟S230處,檢查控制值是否指示允許時間密集指令。若決定控制值指示不允許時間密集指令,則在步驟S240處,產生第一異常,及在步驟S250處,遏止時間密集指令。隨後方法返回至步驟S200。然而,若在步驟S230處,決定容許時間密集指令,則在步驟S260處執行時間密集指令且方法返回至步驟S200。
儘管本文已描述特定實施例,但將瞭解,本發明並不受限於此且可在本發明之範疇內對該等實施例實施許多修改及添加。舉例而言,可在不脫離本發明之範疇的情況下由獨立請求項之特徵產生以下附屬請求項之特徵之各種組合。
Claims (23)
- 一種資訊處理設備,該資訊處理設備包含:處理電路系統,該處理電路系統經配置以執行包含一或更多個時間密集指令的指令以及非為時間密集指令的一或更多個其他指令;以及異常產生電路系統,該異常產生電路系統經配置以針對該處理電路系統產生至少一個異常,其中該處理電路系統經配置以保持一控制值,該控制值用於指示是否可執行該等時間密集指令;其中該異常產生電路系統經配置以當該控制值為指示不可執行該等時間密集指令之一第一值時,回應於該等時間密集指令中之一者產生一第一異常以觸發該處理電路系統遏止對該等時間密集指令中之該一者的執行;其中該異常產生電路系統經配置以當該控制值為指示可執行該等時間密集指令之一第二值時,回應於該等時間密集指令之一者以允許執行該等時間密集指令之該一者;以及其中該異常產生電路系統經配置以當該控制值為該第一值或該第二值時,回應於該其他指令之一者以允許執行該其他指令之該一者。
- 如請求項1所述之資訊處理設備,其中該等時間密集指令包含需要該處理電路系統之多個處理週期來執行的指令。
- 如任一前述請求項所述之資訊處理設備,其中該等時間密集指令包含不可中斷之指令。
- 如請求項1所述之資訊處理設備,其中該等時間密集指令包含以下之至少一者:一浮點平方根指令、一除法指令、一不可中斷載入多個指令、一不可中斷儲存多個指令及至少一個預定單指令多資料(SIMD)指令。
- 如請求項1所述之資訊處理設備,其中該處理電路系統經配置以在一第一特權等級執行下第一軟體及在比該第一特權等級更高的一第二特權等級下執行第二軟體。
- 如請求項5所述之資訊處理設備,其中該第二軟體經配置以控制該處理電路系統改變該控制值。
- 如請求項5所述之資訊處理設備,該異常產生電路系統經配置以回應於該第一軟體之該等時間密集指令中之一者產生該第一異常。
- 如請求項5所述之資訊處理設備,其中該異常產生電路系統經配置以僅在回應於比該第二特權等級更低的一特權等級下執行的軟體之該等時間密集指令之一者產生該第一異常。
- 如請求項5所述之資訊處理設備,其中該第一軟體包含一或更多個客作業系統;以及其中該第二軟體包含一超管理器。
- 如請求項1所述之資訊處理設備,其中該處理電路系統經配置以回應於一或更多個預定事件改變該控制值。
- 如請求項10所述之資訊處理設備,其中該一或更多個預定事件包括一上下文切換。
- 如請求項11所述之資訊處理設備,其中回應於該上下文切換,該處理電路系統經配置以將該控制值變成該第二值。
- 如請求項10所述之資訊處理設備,其中該一或更多個預定事件包括一第二異常;以及其中該異常產生電路系統經配置以在一預期事件前的一第一預定時段產生該第二異常。
- 如請求項13所述之資訊處理設備,其中該預期事件係一上下文切換及在一先前上下文切換後的一第二預定時段發生該第二異常。
- 如請求項14所述之資訊處理設備,其中該第一預定時段比該第二預定時段更短。
- 如請求項15所述之資訊處理設備,其中該第一預定時段與該第二預定時段之一比率為1:9。
- 如請求項13所述之資訊處理設備,其中回應於該第二異常,該處理電路系統經配置以將該控制值變成該第一值。
- 如請求項5所述之資訊處理設備,其中該處理電路系統經配置以回應於該第一異常切換為執行該第二軟體。
- 如請求項18所述之資訊處理設備,其中該處理電路系統經配置以在該第一特權等級下執行複數個第一軟體中之一者。
- 如請求項19所述之資訊處理設備,其中回應於該第一異常,該第二軟體經配置以控制該處理電路系統改變該等複數個第一軟體中之一作用者。
- 如請求項19所述之資訊處理設備,其中回應於該第一異常,該處理電路系統經配置以在一後續上下文切換前不執行該等複數個第一軟體。
- 如請求項19所述之資訊處理設備,其中回應於該第一異常,該處理電路系統經配置以繼續執行該等複數個第一軟體中的一作用者,而不執行該等時間密集指令之該一者。
- 一種用於一資訊處理設備的機器實施方法,該方法包含以下步驟:執行包含一或更多個時間密集指令的一或更多個指令以及非為時間密集指令的一或更多個其他指令;保持一控制值,該控制值用於指示是否可執行該等時間密集指令;當該控制值指示不可執行該等時間密集指令時,回應於該等時間密集指令中之一者,產生一第一異常以遏止對該等時間密集指令中之該一者的執行;當該控制值指示可執行該等時間密集指令時,回應於該等時間密集指令中之一者,以允許執行該等時間密集指令中之該一者;以及當該控制值指示可執行或不可執行該時間密集指令時,回應於該其他指令之一者以允許執行該其他指令之該一者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??1315109.7 | 2013-08-23 | ||
GB1315109.7A GB2517494B (en) | 2013-08-23 | 2013-08-23 | Handling time intensive instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201508636A TW201508636A (zh) | 2015-03-01 |
TWI654561B true TWI654561B (zh) | 2019-03-21 |
Family
ID=49355839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103125333A TWI654561B (zh) | 2013-08-23 | 2014-07-24 | 用於控制時間密集的指令的資訊處理設備及方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US10963250B2 (zh) |
EP (1) | EP3036629B1 (zh) |
JP (1) | JP6427575B2 (zh) |
KR (1) | KR102235142B1 (zh) |
CN (1) | CN105474174B (zh) |
BR (1) | BR112016002997B1 (zh) |
GB (1) | GB2517494B (zh) |
IL (1) | IL244199B (zh) |
TW (1) | TWI654561B (zh) |
WO (1) | WO2015025127A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2517493A (en) * | 2013-08-23 | 2015-02-25 | Advanced Risc Mach Ltd | Handling access attributes for data accesses |
US9367322B1 (en) | 2015-07-27 | 2016-06-14 | International Business Machines Corporation | Age based fast instruction issue |
US10942509B2 (en) | 2018-01-19 | 2021-03-09 | Ge Aviation Systems Llc | Heterogeneous processing in unmanned vehicles |
US11029985B2 (en) | 2018-01-19 | 2021-06-08 | Ge Aviation Systems Llc | Processor virtualization in unmanned vehicles |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058410A (en) | 1996-12-02 | 2000-05-02 | Intel Corporation | Method and apparatus for selecting a rounding mode for a numeric operation |
US6427202B1 (en) * | 1999-05-04 | 2002-07-30 | Microchip Technology Incorporated | Microcontroller with configurable instruction set |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US7181600B1 (en) * | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US7779239B2 (en) * | 2004-07-28 | 2010-08-17 | Intel Corporation | User opt-in processor feature control capability |
US7590823B1 (en) * | 2004-08-06 | 2009-09-15 | Xilinx, Inc. | Method and system for handling an instruction not supported in a coprocessor formed using configurable logic |
JP5010164B2 (ja) * | 2006-03-31 | 2012-08-29 | 株式会社日立製作所 | サーバ装置及び仮想計算機の制御プログラム |
US7797681B2 (en) * | 2006-05-11 | 2010-09-14 | Arm Limited | Stack memory selection upon exception in a data processing system |
US20080072019A1 (en) * | 2006-09-19 | 2008-03-20 | Avinash Sodani | Technique to clear bogus instructions from a processor pipeline |
US20090037918A1 (en) * | 2007-07-31 | 2009-02-05 | Advanced Micro Devices, Inc. | Thread sequencing for multi-threaded processor with instruction cache |
US8397235B2 (en) | 2008-10-07 | 2013-03-12 | Futurewei Technologies, Inc. | User tolerance based scheduling method for aperiodic real-time tasks |
JP5353227B2 (ja) | 2008-12-24 | 2013-11-27 | 富士通株式会社 | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 |
US8429648B2 (en) * | 2009-05-28 | 2013-04-23 | Red Hat, Inc. | Method and apparatus to service a software generated trap received by a virtual machine monitor |
JP4965638B2 (ja) * | 2009-12-25 | 2012-07-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | タスクの切り換えを制御するシステムおよび方法 |
CN101826000A (zh) | 2010-01-29 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 流水线微处理器的中断响应确定方法、装置及微处理器核 |
CN101866281B (zh) * | 2010-06-13 | 2013-05-22 | 清华大学 | 一种多周期指令执行方法和装置 |
GB2482701C (en) * | 2010-08-11 | 2018-12-26 | Advanced Risc Mach Ltd | Illegal mode change handling |
GB2489000B (en) | 2011-03-14 | 2019-09-11 | Advanced Risc Mach Ltd | Diagnosing code using single step execution |
US9146767B2 (en) * | 2012-06-19 | 2015-09-29 | Raytheon Company | Secure cloud hypervisor monitor |
-
2013
- 2013-08-23 GB GB1315109.7A patent/GB2517494B/en active Active
-
2014
- 2014-07-07 CN CN201480045495.8A patent/CN105474174B/zh active Active
- 2014-07-07 KR KR1020167004314A patent/KR102235142B1/ko active IP Right Grant
- 2014-07-07 BR BR112016002997-6A patent/BR112016002997B1/pt active IP Right Grant
- 2014-07-07 US US14/911,376 patent/US10963250B2/en active Active
- 2014-07-07 JP JP2016535520A patent/JP6427575B2/ja active Active
- 2014-07-07 EP EP14741938.6A patent/EP3036629B1/en active Active
- 2014-07-07 WO PCT/GB2014/052053 patent/WO2015025127A1/en active Application Filing
- 2014-07-24 TW TW103125333A patent/TWI654561B/zh active
-
2016
- 2016-02-21 IL IL244199A patent/IL244199B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN105474174A (zh) | 2016-04-06 |
WO2015025127A1 (en) | 2015-02-26 |
IL244199B (en) | 2019-06-30 |
KR102235142B1 (ko) | 2021-04-02 |
IL244199A0 (en) | 2016-04-21 |
GB2517494A (en) | 2015-02-25 |
US20160202977A1 (en) | 2016-07-14 |
EP3036629B1 (en) | 2021-06-09 |
BR112016002997A2 (zh) | 2017-08-01 |
GB2517494B (en) | 2021-02-24 |
JP2016531363A (ja) | 2016-10-06 |
US10963250B2 (en) | 2021-03-30 |
CN105474174B (zh) | 2020-02-28 |
BR112016002997B1 (pt) | 2022-05-31 |
GB201315109D0 (en) | 2013-10-09 |
JP6427575B2 (ja) | 2018-11-21 |
KR20160045699A (ko) | 2016-04-27 |
TW201508636A (zh) | 2015-03-01 |
EP3036629A1 (en) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5861228B2 (ja) | 仮想パーティションを監視するためのシステム、装置、プログラムおよび方法 | |
US9703957B2 (en) | Atomic detection and repair of kernel memory | |
US8898666B2 (en) | Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes | |
KR100726317B1 (ko) | 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이 | |
JP2017162483A (ja) | ハイパーバイザーを有するシステム | |
US10474494B2 (en) | Information processing apparatus, information processing method, and computer program product | |
TWI654561B (zh) | 用於控制時間密集的指令的資訊處理設備及方法 | |
Lucas et al. | Vosysmonitor, a low latency monitor layer for mixed-criticality systems on armv8-a | |
JP2016173821A (ja) | コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 | |
CN105404559B (zh) | 在数据处理装置中进行除错 | |
JP2001014220A (ja) | ソフトウェア制御される電子装置のパーティション分割および監視方法 | |
US12118376B2 (en) | Virtual mode execution manager | |
US11726811B2 (en) | Parallel context switching for interrupt handling | |
US11907056B2 (en) | Runtime fault detection testing in data processing system | |
JP5906584B2 (ja) | 制御装置及び制御方法 | |
KR100843134B1 (ko) | 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법 | |
KR20190077235A (ko) | 반도체 장치 | |
JP2008225710A (ja) | コンピュータシステム及び該システムで用いられるプロセス切替え方法 | |
JP2008077388A (ja) | マルチプロセッサ制御システム、方法、およびプログラム | |
GB2626460A (en) | Data processing systems | |
GB2626461A (en) | Data processing system |