TWI748934B - 資料處理設備中的系統錯誤處置 - Google Patents

資料處理設備中的系統錯誤處置 Download PDF

Info

Publication number
TWI748934B
TWI748934B TW104139235A TW104139235A TWI748934B TW I748934 B TWI748934 B TW I748934B TW 104139235 A TW104139235 A TW 104139235A TW 104139235 A TW104139235 A TW 104139235A TW I748934 B TWI748934 B TW I748934B
Authority
TW
Taiwan
Prior art keywords
error
condition
abnormal
circuit system
processing circuit
Prior art date
Application number
TW104139235A
Other languages
English (en)
Other versions
TW201633123A (zh
Inventor
威廉斯麥克約翰
格利森斯維特理查羅伊
克拉斯克賽門約翰
Original Assignee
英商Arm股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英商Arm股份有限公司 filed Critical 英商Arm股份有限公司
Publication of TW201633123A publication Critical patent/TW201633123A/zh
Application granted granted Critical
Publication of TWI748934B publication Critical patent/TWI748934B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明提供用於資料處理之設備及資料處理之方法。回應於資料處理指令進行資料處理操作。若資料處理操作未成功,則設置錯誤異常條件。決定是否存在錯誤記憶體阻障條件並取決於是否存在錯誤記憶體阻障條件來進行錯誤記憶體阻障程序。若設置錯誤異常條件且若設置錯誤遮蔽條件,則錯誤記憶體阻障程序包含:設置延遲錯誤異常條件;以及清除錯誤異常條件。

Description

資料處理設備中的系統錯誤處置
本揭示內容係關於資料處理。更特定言之,本揭示內容係關於處置資料處理設備中的系統錯誤。
眾所周知,當資料處理設備回應於所執行之資料處理指令進行資料處理操作時,資料處理設備所嘗試的一些資料處理操作可導致系統錯誤。此系統錯誤可由各種原因造成,但大體上指示資料處理設備無法成功完成資料處理操作。為了處置此等系統錯誤的發生,進一步已知可配置資料處理設備實施異常處置常式,此常式為程式設計師所提供的資料處理指令集合以便以可靠且一致的方式處置系統錯誤的發生。本揭示內容係關於改良資料處理設備回應系統錯誤發生的方式。
從第一態樣看,提供一種用於資料處理之設備,該設備包含:處理電路系統,以回應於資料處理指令進行資料處理操作,以決定是否存在錯誤記憶體阻障條件並取決於是否存在錯誤記憶體阻障條件來進行錯誤記憶體阻障程序,其中處理電路系統能夠在偵測到資料處理操作未成功後設置錯誤異常條件,且其中若設置錯 誤異常條件且若設置錯誤遮蔽條件,則錯誤記憶體阻障程序包含:設置延遲錯誤異常條件;及清除錯誤異常條件。
從第二態樣看,提供一種資料處理方法,該方法包含以下步驟:回應於資料處理指令進行資料處理操作;在偵測到資料處理操作未成功後設置錯誤異常條件;決定是否存在錯誤記憶體阻障條件;以及取決於是否存在錯誤記憶體阻障條件來進行錯誤記憶體阻障程序,其中若設置錯誤異常條件且若設置錯誤遮蔽條件,則錯誤記憶體阻障程序包含:設置延遲錯誤異常條件;以及清除錯誤異常條件。
從第三態樣看,提供一種用於資料處理之設備,該設備包含:回應於資料處理指令進行資料處理操作的手段;在偵測到資料處理操作未成功後設置錯誤異常條件的手段;決定是否存在錯誤記憶體阻障條件的手段;以及取決於是否存在錯誤記憶體阻障條件來進行錯誤記憶體阻障程序的手段,其中若設置錯誤異常條件且若設置錯誤遮蔽條件,錯誤記憶體阻障程序包含:設置延遲錯誤異常條件;以及清除錯誤異常條件。
2‧‧‧資料處理設備
4‧‧‧處理電路系統
6‧‧‧指令解碼器
8‧‧‧暫存器
10‧‧‧記憶體系統
12‧‧‧加法器
14‧‧‧乘法器
16‧‧‧移位器
20‧‧‧處理器核心
22‧‧‧載入/儲存單元
24‧‧‧記憶體管理單元
40‧‧‧步驟
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟
48‧‧‧步驟
50‧‧‧步驟
52‧‧‧步驟
54‧‧‧步驟
60‧‧‧步驟
62‧‧‧步驟
64‧‧‧步驟
66‧‧‧步驟
68‧‧‧步驟
70‧‧‧步驟
72‧‧‧步驟
80‧‧‧步驟
82‧‧‧步驟
84‧‧‧步驟
86‧‧‧步驟
88‧‧‧步驟
90‧‧‧步驟
92‧‧‧步驟
200‧‧‧應用程式
210‧‧‧虛擬機
220‧‧‧主作業系統
230‧‧‧系統硬體
將參看附圖中所圖示的本發明之實施例,僅藉由實例方式進一步描述本發明,在附圖中:第1圖示意性圖示一個實施例中的資料處理電路系統及關聯記憶體系統之實例; 第2圖更詳細地示意性圖示一個實施例中的第1圖之一些組件之配置;第3圖圖示可藉由一個實施例中的處理電路系統執行的資料處理指令序列及一些相關資料處理操作及系統事件;第4圖圖示藉由一個實施例中的處理電路系統實施的步驟之示例性集合;第5圖圖示藉由一個實施例中的處理電路系統回應於資料處理指令實施的步驟序列;第6圖示意性圖示一個示例性實施例之虛擬化操作環境;第7圖圖示在虛擬化操作環境中運作之一個實施例中實施的步驟序列;第8A圖與第8B圖示意性圖示實施例中的複數個異常狀況與異常位準及當發生異常時此等異常位準之間的一些示例性轉換;第9A圖圖示一個實施例中的用於處置實體錯誤之當前及目標異常位準之示例性集合,以及如何處置相應錯誤異常條件之定義;第9B圖圖示一個實施例中的用於處置虛擬錯誤之當前異常位準及目標異常位準之示例性集合,以及如何處置相應錯誤異常條件之定義; 第9C圖圖示在虛擬化操作環境中運作之實施例中的取決於兩個參數設置而使用之實體及虛擬目標的表格;第10A圖圖示一個實施例中的界定錯誤記憶體阻障指令的假碼之示例性集合;以及第10B圖圖示使用錯誤記憶體阻障指令的資料處理指令之示例性序列。
本發明技術認識到,在用於藉由進行異常處置程序(常式)回應系統錯誤(異步中止)的處理資料之設備中,當報告錯誤時,可出現針對系統識別此錯誤之來源的困難。此與此等錯誤之異步本質相關,意謂在執行導致此系統錯誤發生的資料處理指令的點與將錯誤報告回處理器(處理電路系統)的點之間幾乎不存在關聯。詳言之,此可例如為關於記憶體存取的以下情況:考慮到可與此等記憶體存取關聯的潛時及記憶體存取以各種方式皆不成功的潛在可能性,處理電路系統設法回應於相應資料處理指令進行記憶體存取。可例如由載入操作、儲存操作、頁表移動(page table walk)、指令擷取等等產生此等錯誤。詳言之,本發明技術認識到,當將系統錯誤(可由不成功的記憶體存取造成,或可具有另一來源)報告給處理電路系統,同時處理電路系統正進行前一異常(諸如中斷請求)所觸發之異常處置程序時,系統能夠識別現必須處置的系統錯誤之來源係有 益的,以使得例如可採取適當補救動作。應注意,可因此回應於設備中的不同事件設置錯誤異常條件。一方面,可回應於不成功記憶體存取(亦即,並未按指示正確完成記憶體存取的情況)加以設置,但另一方面,亦可回應於設備中諸如因隨機事件或紊亂造成的其他類型錯誤異常條件(例如,同時正實施其他資料處理操作)加以設置。
為此,在系統錯誤導致在設備內設置錯誤異常條件及回應於此錯誤異常條件通常配置處理電路系統以進行異常處置程序的情況下,本發明技術引入錯誤遮蔽條件(可例如藉由設置設備中所儲存的錯誤遮蔽值得以設置),從而使得處理電路系統能夠優先化其對系統錯誤的回應。詳言之,當將系統錯誤通知給處理電路系統(藉由錯誤異常條件設置來通知),同時處理電路系統回應於第一異常條件正進行異常處置程序,或在不可能藉由進行異常處置程序回應系統錯誤的情況下,同時處理電路系統正執行預定義「關鍵程式碼」時,處理電路系統能夠經由設置延遲錯誤異常條件及清除已作為系統錯誤發生之結果設置的錯誤異常條件來延遲其對此系統錯誤的回應。此不僅允許處理電路系統回應於未中斷的第一異常或關鍵程式碼繼續異常處置程序,而且使得系統能夠更好地區別導致系統錯誤發生的來源(亦即,資料處理指令或至少資料處理指令集合)。詳言之,此使得系統能夠區別系統錯誤源,該系統錯誤源由回應於 第一異常優先啟動異常處置程序的指令執行及形成針對第一異常的異常處置程序之一部分的指令執行造成。此功能可在處理電路系統中經由錯誤記憶體阻障條件得以配置,該錯誤記憶體阻障條件可由系統程式設計師使其存在(設置)。存在可設置此錯誤記憶體阻障條件的各種方式,例如經由專用指令,藉由經界定在處理電路系統啟動異常處置程序之進行時總是存在,藉由經界定在處理電路系統啟動異常處置程序之進行時若設置設備之進行「模式」則存在(例如,由設備中適用於此目的的值界定)等等。此排列有利地提供一種設備,此設備能夠更有效率地處置此等系統錯誤而無需例如在異常處置程序(常式)開始時利用資料與指令同步阻障,此等同步阻障通常具有與阻障關聯的大量處理及時間成本。
在一些實施例中,處理電路系統能夠回應於所接收之記憶體存取未成功的指示設置(亦即,經配置以設置)錯誤異常條件,但此可並非處理電路系統經配置以設置錯誤異常條件所回應的唯一事件類型,且在一些實施例中,處理電路系統經配置以回應於與不成功記憶體存取不同的其他事件設置錯誤異常條件。舉例而言,處理電路系統可回應於不成功資料處理操作等等設置錯誤異常條件。
處理電路系統可以各種方式回應錯誤異常條件,且在一些實施例中,若設置錯誤異常條件及未設置錯誤遮蔽條件,則處理電路系統能夠進行異常處置程序。
資料處理操作可採取各種形式,且在一些實施例中,資料處理操作包含記憶體存取,且處理電路系統能夠接收記憶體存取的錯誤回應,且其中若錯誤回應指示記憶體存取未成功,則處理電路系統能夠設置錯誤異常條件。
在一些實施例中,處理電路系統能夠回應於資料處理指令中的錯誤記憶體阻障指令決定存在錯誤記憶體阻障條件。提供錯誤記憶體阻障指令為系統程式設計師在決定何時對於處理電路系統存在(設置)錯誤記憶體阻障條件方面提供了靈活性,則此外為處理電路系統提供了具有一配置的機會,根據此配置,當遭遇錯誤記憶體阻障指令時,不僅建立錯誤記憶體阻障條件,而且進行其他動作。
在一些實施例中,作為異常處置程序的一部分且若設置延遲錯誤異常條件,處理電路系統能夠啟動關於至少一個資料處理指令的補救回應,其中至少一個資料處理指令包含在決定存在錯誤記憶體阻障條件之前所執行之資料處理指令。
當處理電路系統已設置延遲錯誤異常條件作為進行錯誤記憶體阻障程序的一部分時,可推斷出在由處理電路系統決定存在錯誤記憶體阻障條件(例如,藉由錯誤記憶體阻障指令之執行)之前執行之至少一個資料處理指令引發了錯誤回應,從而導致設置延遲錯誤異常條件,且隨後可關於至少一個資料處理指令採取適當 補救回應,例如以引發在資料處理指令之相同序列之後續再執行中得以避免。
在一些實施例中,設備進一步包含錯誤記憶體阻障模式值儲存器,其中當處理電路系統啟動異常處置程序之進行時,處理電路系統能夠取決於錯誤記憶體阻障模式值儲存器中所儲存之錯誤記憶體阻障模式值決定存在錯誤記憶體阻障條件。舉例而言,錯誤記憶體阻障模式值儲存器可儲存單個位元,此單個位元指示在處理異常時是否在存在錯誤記憶體阻障條件的模式中操作處理電路系統。此值可界定由系統程式設計師建立的處理電路系統之進行模式,根據此模式,界定錯誤記憶體阻障條件在處理電路系統啟動異常處置程序之進行時存在。在一些實施例中,亦可在設備內界定在啟動異常處置程序的任何時候皆存在的錯誤記憶體阻障條件,且在此等實施例中,無需任何顯式動作(例如,錯誤記憶體阻障指令之執行或設置錯誤記憶體阻障模式值)即可決定錯誤記憶體阻障條件存在。
在一些實施例中,當進行錯誤記憶體阻障程序時且若存在錯誤記憶體阻障條件,處理電路系統能夠等待尚未完成的每一記憶體存取的錯誤回應,然後執行進一步資料處理指令。若處置彼錯誤回應可潛在為破壞性,例如在回應於先前錯誤異常條件進行異常處置程序的中途發生,則藉由等待尚未完成的每一記憶體存取的錯誤回應,該等待可例如根據與處理電路系統關聯的載 入/儲存單元之內容決定,處理電路系統可避免未完成記憶體存取在進一步資料處理指令之執行期間傳回其錯誤回應的潛在可能性。
可以各種方式設置錯誤遮蔽條件,但在一些實施例中,設備進一步包含錯誤遮蔽值儲存器,其中處理電路系統能夠取決於錯誤遮蔽值儲存器中所儲存之錯誤遮蔽值決定是否設置錯誤遮蔽條件。
在一些實施例中,處理電路系統能夠在開始異常處置程序時設置錯誤遮蔽值。取決於設備及設備之處理電路系統之特定配置,總是在開始異常處置程序時設置錯誤遮蔽條件可為有益的,以使得若另一系統錯誤(例如,不成功記憶體存取)之發生導致設置錯誤異常條件,則處理電路系統在進行錯誤記憶體阻障程序時將藉由延遲對此後一系統錯誤的回應而回應。此特定功能如何實施可例如取決於處理電路系統是否具有複數個軟體執行特權位準,此等軟體執行特權位準可影響回應於所接收之系統錯誤指示的各別異常處置程序之優先化。
在一些實施例中,若未設置延遲錯誤異常條件,則處理電路系統能夠作為異常處置程序之一部分而清除錯誤遮蔽值。以此方式清除錯誤遮蔽條件使得處理電路系統能夠直接回應在設置了錯誤遮蔽值的同時擱置的錯誤或後續錯誤,亦即,此錯誤可直接產生異常。
在一些實施例中,若未設置延遲錯誤異常條件,則處理電路系統能夠設置錯誤遮蔽值並在已完成資 料處理指令之預定集合後清除錯誤遮蔽值。此資料處理指令之預定集合可例如為程式碼之「關鍵」部分,此「關鍵」部分必須經原子級執行且因此在執行期間無法藉由進行異常處置程序回應系統錯誤。在執行程式碼之此關鍵部分之前,必須設置錯誤遮蔽條件。一旦完成程式碼之此關鍵部分,可因此以此方式清除錯誤遮蔽條件,從而使得處理電路系統能夠直接回應在設置錯誤遮蔽值的同時擱置的錯誤或後續錯誤,亦即,此錯誤可直接產生異常。
在一些實施例中,處理電路系統能夠以選自複數個異常位準的當前異常位準來進行異常處置程序,其中複數個異常位準對應於複數個軟體進行特權位準。在本情境中,在處理電路系統內提供複數個軟體執行特權位準使得異常處置程序之優先化能夠在與彼等複數個軟體執行特權位準關聯的複數個異常位準之不同位準處得以實施,此優先化可例如用於在欲執行之異常位準對應於比當前異常位準高的軟體執行特權位準情況下允許直接處理(亦即,且未延遲)後一異常處置回應(亦即,程序)。
在一些實施例中,若將藉由處理電路系統在與將回應於另一錯誤異常條件進行另一異常處置程序的異常位準相同或更高的異常位準處進行(第一)異常處置程序,則處理電路系統能夠在啟動(第一)異常處置程序時設置錯誤遮蔽條件。因此,錯誤遮蔽條件之設置 可用於確保在較高異常位準(軟體執行特權位準)處進行之(第一)異常處置程序將不受到待在相同或較低異常位準處處置之錯誤異常條件之任何後續設置(例如,對處理電路系統的錯誤回應之通知)干擾。因此,在給定異常位準處,軟體可決定哪些為需要保護的程式碼之「關鍵區域」,且此技術可因此用於實施彼保護。
在一些實施例中,若將藉由處理電路系統在比將回應於另一錯誤異常條件進行另一異常處置程序的異常位準低的異常位準處進行(第一)異常處置程序,則處理電路系統能夠在啟動第一異常處置程序時未設置錯誤遮蔽條件。藉由以此方式不設置錯誤遮蔽條件,可確保當處理電路系統在較低軟體執行特權位準處進行異常處置程序時,將直接實施回應於錯誤異常條件之後續設置的異常處置程序(亦即,將產生異常)。
在一些實施例中,設備能夠提供在內部操作至少一個虛擬機的虛擬化操作環境,其中虛擬機能夠藉由與處理電路系統交互而回應於資料處理指令進行資料處理操作。因此,設備所執行之資料處理指令可與虛擬機程式交互,該虛擬機程式模型化其與虛擬機硬體的交互。
在一些實施例中,設備能夠設置虛擬錯誤異常條件,且其中若設置虛擬錯誤異常條件並未設置虛擬錯誤遮蔽條件,處理電路系統能夠進行異常處置程序。可以各種方式設置虛擬錯誤異常條件,在一些實施例中 藉由硬體設置虛擬錯誤異常條件且在一些實施例中,設備能夠運作控制虛擬化操作環境之操作的超管理器,且超管理器可設置虛擬錯誤異常條件。此使得硬體或超管理器能夠將虛擬系統錯誤「注入」系統中,且此等虛擬錯誤可用於各種目的。處理電路系統可隨後藉由進行異常處置程序用與回應實體錯誤相同的方式回應虛擬錯誤的事實係有利的,因為錯誤本質隨後對訪客(亦即,在超管理器控制下操作的虛擬機)透通。
在一些實施例中,若設置虛擬錯誤異常條件且若設置虛擬錯誤遮蔽條件,則錯誤記憶體阻障程序進一步包含:設置虛擬延遲錯誤異常條件;以及清除虛擬錯誤異常條件。此排列為虛擬化操作環境內的本發明技術提供進一步支援。舉例而言,在藉由執行錯誤記憶體阻障指令設置錯誤記憶體阻障條件的情況下,此避免不得不捕集及仿效超管理器中的錯誤記憶體阻障指令,此對於每一異常條目成本高昂。
在一些實施例中,當處理電路系統設法決定是否設置延遲錯誤異常條件時,設備能夠提供虛擬延遲錯誤異常條件的值,而不是延遲錯誤異常條件的值。可以各種方式提供此值,在一些實施例中由硬體提供此值,且在一些實施例中超管理器提供此值。因此,硬體或超管理器可由此維持虛擬延遲錯誤異常條件的值(及上述優勢),但亦可保持完全隱瞞處理電路系統(亦即, 隱瞞訪客虛擬機)的虛擬延遲錯誤異常條件與延遲錯誤異常條件之間的此(虛擬)區別。
第1圖示意性圖示資料處理設備2,該資料處理設備包含處理電路系統4、指令解碼器6、暫存器組8及記憶體系統10。記憶體系統10包括一或更多個快取記憶體或記憶體裝置。處理電路系統4包括眾多處理元件,諸如加法器12、乘法器14及移位器16。當處理資料時,指令解碼器6回應於程式指令產生控制訊號,用於控制處理電路系統4處理暫存器8中所儲存之資料並將處理結果儲存回暫存器8。在指令解碼器6的控制下,亦可控制資料處理設備2在暫存器8與記憶體系統10之間傳送資料(此傳送係本文稱為「記憶體存取」之實例)。
儘管在第1圖之實例中,將處理電路系統4圖示為處理暫存器8中所儲存之資料並將資料處理之結果儲存回暫存器8,但應瞭解,可使用任何其他種類之儲存位置,而非暫存器8。應瞭解,資料處理設備2且特定而言處理電路系統4通常可包括第1圖中未圖示之其他元件。
第2圖圖示第1圖之資料處理設備2之一些組件之更多細節。圖示處理器核心20、載入/儲存單元22、記憶體管理單元(memory management unit;MMU)24及記憶體系統10。參看第1圖的處理器核心20包括處理電路系統4、解碼器6及暫存器8,但為了圖示清晰,第2圖僅圖示暫存器8。處理器核心20(且特定 而言該處理器核心內的處理電路系統)利用管線載入/儲存單元22來處置回應於相應資料處理指令發佈的記憶體存取請求。由於與此等記憶體存取關聯的潛時,載入/儲存單元22管理與記憶體系統的交互,且稍後將回應提供給處理器核心20,同時處理器核心20可繼續其他資料處理指令執行。舉例而言,如圖所示,處理器核心20可提供具有記憶體位址(A)的載入/儲存單元22,處理器核心尋求對記憶體位址(A)的存取(例如,自彼記憶體位置的載入)。如圖所示,指令自左至右移動,且因此記憶體位址(A)在經過一個循環並稍後傳回資料(D)(因此導致上文論及之異步)。
第2圖圖示記憶體系統10包含L1快取記憶體(L1$)、L2快取記憶體(L2$)及主DRAM記憶體。記憶體系統10亦可具有關聯MMU 24以管理處理器核心20與記憶體系統10之間的交互之某些態樣,例如以提供處理器核心20所使用之虛擬位址與記憶體系統10內使用之實體位址之間的位址變換等等。由載入/儲存單元22發佈給記憶體系統10的記憶體存取可由MMU 24接收,且若藉由MMU 24將存取請求識別為無法成功實施,例如由於MMU 24內的頁表中所儲存之許可不允許此特定記憶體存取,則此可已經導致錯誤傳回至載入/儲存單元22(並可能直接傳回至處理器核心20,如虛線路徑所示)。到達記憶體系統10內的儲存位置之記憶體存取請求導致錯誤回應傳回至載入/儲存單元22,且若 成功(且由記憶體存取所界定),則伴隨自相應記憶體位置(位址)擷取的資料。因此,應瞭解,此處所使用之術語「錯誤回應」並非暗指必然發生錯誤,而是否發生錯誤可根據總是接收的錯誤回應之內容決定。隨後可將此資料及錯誤回應自載入/儲存單元22傳遞至處理器核心20,如第2圖中針對示例性資料D所示。
在本情境中,錯誤回應之內容具有特定相關性,尤其是若此對處理器核心20指示記憶體存取未成功亦如此。在此情形中,處理器核心20內的處理電路系統將設置錯誤異常條件(藉由將暫存器值ISR.A設置為1)以便觸發相應異常處置程序。儘管如此,在多種情況下,處理器核心20可並未立即實施由錯誤異常條件之設置所觸發的異常處置程序,下文將關於以下圖式更詳細論述此等情況。為了藉由處理器核心20提供此功能,配置此功能以在暫存器8內儲存各種值。第2圖中的暫存器8示意性圖示各種狀態暫存器(暫存器配置當前處理器狀態,例如堆疊指標、鏈路暫存器、程式計數器及其他通用暫存器值)及保持值PSTATE.A、ISR.A、DISR.A、AMO、VSE、VDISR.A及EMB模式所示之其他暫存器,但應注意,由後綴「.A」標記的保持值所圖示之DISR及VDISR暫存器亦可保持其他相關值。舉例而言,在DISR.A保持指示是否已設置此「延遲錯誤異常條件」的值同時,DISR暫存器之其他部分可儲存在處置相關錯誤異常時使用的其他資訊,諸如錯 誤徵候資訊。此錯誤徵候資訊可例如包括錯誤類型之細節及/或錯誤對處理器狀態的影響之細節。下文將進一步詳細論述此等暫存器及值的用法。
第3圖圖示可藉由系統之處理電路系統執行之資料處理指令之示例性序列。對於資料處理指令之第一部分,在對應於最低軟體執行特權位準的最低異常位準(EL0)處操作處理電路系統。此後,對於標記為對應於異常處置常式的資料處理指令,在對應於最高軟體執行特權位準的最高異常位準(EL3)處操作資料處理電路系統。如圖式中可見,在資料處理指令之第一部分中所執行之載入(LDR)指令導致記憶體存取,從而在其他執行之此圖示實例中最終導致指示各別記憶體存取未成功完成的錯誤回應,亦即,系統錯誤結果。因此,此回應表示異步中止,其中由處理電路系統對中止之接收時序可與何時執行啟動相應記憶體存取的指令幾乎無關聯。舉例而言,基於第3圖之實例,在IRQ(中斷請求)後,處理電路系統已接收到由LDR指令造成的錯誤回應。因此,對IRQ的接收引發在接收自LDR指令的錯誤回應之前設置第一異常條件(且因此啟動異常處置常式),且當接收到自LDR(在EL0異常位準處執行)的錯誤回應時,處理器核心20在EL3異常位準處處理第一異常處置常式。
應注意,如異常處置常式開始時所指示,第一動作(由處理電路系統硬體實施)將設置錯誤遮蔽值 PSTATE.A為1,因為在此實例中在最高異常位準(EL3)處處置第一異常處置常式,因此此異常位準必須與將回應於另一錯誤異常條件進行另一異常處置程序的異常位準相同或更高,且此錯誤遮蔽值指示設置錯誤遮蔽條件。根據本發明技術利用錯誤遮蔽條件之此設置來支援一機制,藉由此機制由處理電路系統接收到的指示已發生系統錯誤(且因此設置錯誤異常條件)之後續錯誤回應將不會立即產生另一異常,而是將擱置(亦即,延遲)。下文將關於後續圖式進一步描述此機制。
在第3圖所示之實例中,在異常處置常式初期由處理電路系統遭遇的指令為本發明技術所提供之EMB(error memory barrier;錯誤記憶體阻障)指令。遭遇此EMB指令引發處理電路系統決定在設備(系統)內現存在錯誤記憶體阻障條件。在其他實施例中,處理電路系統可決定每當啟動異常處置常式時預設存在錯誤記憶體阻障條件(亦即,並不需要明顯包括EMB指令)或處理電路系統可參考處理器核心之暫存器(參看第2圖中的項目8)中所儲存之EMB模式值決定是否存在錯誤記憶體阻障條件,從而為系統程式設計師提供根據特定系統需求設置此模式的靈活性。最後,應注意,在異常處置常式後期,檢查是否DISR.A=1(在此實施例中為藉由軟體實施的步驟),從而使得設備能夠決定在異常處置常式期間是否已接收指示系統錯誤的錯誤回應。下文參看後續圖式描述此步驟之更多細節。
第4圖圖示一個實施例中的由處理電路系統(亦即,系統硬體)採取之步驟集合。此等步驟對應於遭遇EMB指令時所採取的動作,例如在如第3圖中所圖示之異常處置常式開始時,或在設置EMB模式的同時進入(啟動)異常處置常式時。遭遇EMB指令對應於第4圖中的第一圖示步驟(亦即,步驟40)。作為回應,處理電路系統(在步驟42處)等待自擱置記憶體存取(亦即,具有在第2圖所示之載入/儲存單元22中佔用之相應條目且尚未完成的記憶體存取)的任何未回復錯誤回應。另一系統錯誤仍可能在執行異常處置常式的同時得以通知給處理電路系統。
在步驟44處,處理電路系統決定是否已自各擱置記憶體存取之一接收(實體)錯誤回應,此回應指示錯誤(亦即,擱置記憶體存取最終不成功)。若情況並非如此,則流程直接行進至步驟54,在此步驟處繼續進一步指令執行(最初處於異常處置常式內)。然而,若在步驟44處錯誤回應指示錯誤,從而引發藉由處理電路系統設置錯誤異常條件(ISR.A=1),則流程行進至步驟46,在此步驟處處理電路系統藉由檢查是否設置錯誤遮蔽條件決定是否遮蔽此錯誤。
若未遮蔽錯誤,則流程行進至步驟48,在此步驟處產生回應於此錯誤的異常並實施處置此等異常的常用程序(例如,分支至另一異常處置常式)。處理此異常可包括向異常徵候暫存器寫入錯誤徵候資訊,且此 錯誤徵候資訊可包括指示處理器之程式設計師可見狀態是否正確或是否事實上被錯誤感染的資訊。反之,若在步驟46處決定遮蔽錯誤,則流程行進至步驟50,在此步驟處處理電路系統設置DISR.A值為1及/或記錄上文所論及之與DISR暫存器之其他部分中的錯誤相關的徵候資訊。此錯誤徵候資訊包括錯誤類型之細節及/或(如上所述)錯誤對處理器狀態的影響之細節。錯誤類型資訊亦可指示錯誤是否具有可由錯誤記憶體阻障隔離的類型。舉例而言,應注意(如上文所描述),在步驟42處,錯誤記憶體阻障等待所有記憶體存取完成並傳回錯誤狀態,但若出現並非由記憶體存取誘發的錯誤,則錯誤記憶體阻障可未「隔離」此錯誤。為解決此問題,當異常處置程序記錄錯誤的徵候資訊時,此程序記錄錯誤是否具有可由錯誤記憶體阻障隔離的類型。
本文將設置DISR.A及/或記錄錯誤徵候資訊稱為設置延遲錯誤異常條件。隨後,流程行進至步驟52,在此步驟處處理電路系統設置ISR.A值為0(亦即,已清除錯誤異常條件)。此後,處理電路系統繼續指令執行,亦即在第3圖所示之實例之情境中繼續進行緊隨異常處置常式中的EMB指令後的後繼指令。然而,應注意,系統程式設計師在資料處理指令內的任何點處自由添加EMB指令,且不一定在異常處置常式內(或實際上在異常處置常式開始時)添加,而在此等情況中,步驟 54處所示之指令執行之繼續部分將具有無論何處發現彼EMB指令將緊隨EMB指令後的指令。
第5圖圖示與第4圖所示之步驟互補的步驟序列,在一個示例性實施例中,此步驟序列由提供異常處置常式的軟體實施。第5圖所示之第一步驟為異常處置常式的開始(步驟60)。應注意,在此點處,硬體適當設置遮蔽條件(例如,基於異常位準,如下文將更詳細描述)。隨後,在步驟62處,遭遇設置錯誤記憶體阻障條件的EMB指令。應注意,在其他實施例中,當啟動異常處置常式(步驟60)時,可已經設置EMB模式並藉由硬體設置錯誤記憶體阻障條件,且隨後可跳過步驟62。在步驟64處,由軟體實施之下一步驟將保存任何依電性處理器狀態(例如,至堆疊),包括通用暫存器、異常徵候暫存器等等的內容。此使得能夠發生異常之後期分析並恢復到開始處理異常時所在的點。
一旦已經保存處理器之依電性狀態,在步驟66處,則決定DISR.A值當前是否為1。若情況並非如此,則可推斷出指令執行已到達EMB操作的點,而處理電路系統尚未接收到系統錯誤,且在步驟68處,軟體清除(亦即,設置為0)PSTATE.A值,亦即,清除此錯誤遮蔽值。隨後流程行進至步驟70,在此步驟處繼續指令執行,且如上文所論及,所接收之任何系統錯誤將以常見方式產生系統錯誤異常。可推斷出,當處理電路系統接收到任何此系統錯誤時,指令執行已通過EMB操作 的點。然而,若在步驟66處決定DISR.A值當前為1,則已知處理電路系統已接收到系統錯誤並擱置(延遲),且流程行進至步驟72,在此步驟處將分支帶至專用錯誤恢復常式以關於程式碼(包含至少一個資料處理指令的資料處理指令之區段)採取補救動作,此先於EMB指令(或至少在指令執行中作出存在錯誤記憶體阻障條件決定的點)。在第3圖中所圖示之實例中,其中EMB指令處於異常處置常式開始時,此隨後對應於異常處置常式之前關於程式碼所採取之補救動作,亦即,所示指令序列先於異常處置常式。
第6圖示意性圖示提供虛擬化操作環境的實施例。此處,並非在與系統硬體直接交互的作業系統控制下執行應用程式200之資料處理指令,而是在與主作業系統220控制下的系統硬體230間接交互的客作業系統(虛擬機210)控制下執行資料處理指令。主作業系統上運作的超管理器維持虛擬化操作環境之總體控制,並指示虛擬機(亦即,客作業系統)在系統中可看到何者及與何者交互。虛擬機程式210支援連至應用程式200的應用程式介面(application program interface;API),此應用程式介面與原本由真實硬體提供的應用程式介面相同。
應注意,由硬體提供此「虛擬」API之一些態樣,特別是虛擬錯誤條件、虛擬錯誤遮蔽條件及VDISR暫存器,以便加速API。超管理器可藉由將值 AMO設置為1來將異常位準EL2設置為實體錯誤異常的目標異常位準。超管理器亦可在系統內建立「虛擬錯誤異常條件」。藉由超管理器在將值AMO設置為1時設置VSE值為1來實行此舉。虛擬錯誤異常的目標異常位準總是為EL1,亦即,客作業系統。因此,可藉由客作業系統使用PSTATE.A錯誤遮蔽值遮蔽此虛擬錯誤(如上文所描述)。因此,當將值AMO設置為1時,PSTATE.A錯誤遮蔽值界定EL1處的「虛擬錯誤遮蔽條件」及EL2處的「實體錯誤遮蔽條件」。實際上,由於客作業系統之配置對於兩種類型無需為不同,故客作業系統以與實體錯誤相同的方式處置此等虛擬錯誤之特徵有效使得此等虛擬錯誤(與實體錯誤相比)之使用對客作業系統透通,因為處置此等錯誤的方式相同。
因此,此處使用值AMO控制設備分別回應實體錯誤及虛擬錯誤的方式。在此示例性實施例中,將值AMO設置為1界定所有系統錯誤(異步中止)視為EL2以便至少最初由超管理器處置。因此,當處於異常位準EL1時,將在「較高」異常位準處處置實體錯誤條件,使得未設置實體錯誤遮蔽條件。AMO=1亦意謂在異常位準EL1處處置虛擬錯誤。因此,當處於異常位準EL1時,將在「較低或相同」異常位準處處置實體錯誤條件,使得設置虛擬錯誤遮蔽條件。
第7圖圖示在此示例性實施例中回應於EL1中斷異常處置器開始時遭遇EMB指令所採取的步驟之 示例性序列。第7圖所示之第一步驟表示在此虛擬化系統中由客作業系統遭遇EMB指令的點(步驟80)。因此,應注意,此步驟緊隨第4圖之實例中的步驟52之後,且應進一步注意,由於設置AMO位元,未設置實體錯誤遮蔽條件,且與錯誤遮蔽值無關。此後,回應於EMB指令,決定虛擬系統錯誤是否擱置,亦即,是否VSE=1及AMO=1。若否,則流程直接行進至步驟92,在此步驟處繼續緊隨EMB指令後的資料處理指令之正常指令執行。然而,若VSE=1及AMO=1,則流程行進至步驟84,在此步驟處決定是否設置虛擬錯誤遮蔽條件,亦即,是否PSTATE.A=1及AMO=1。若否,則流程行進至步驟86,在此步驟處產生虛擬錯誤異常且隨後作為回應由客作業系統在EL1處執行適當虛擬錯誤異常處置常式。然而,若在步驟84處決定遮蔽此虛擬錯誤,則流程行進至步驟88及90,在此等步驟處設置虛擬延遲錯誤異常條件(將VDISR.A設置為1)且將虛擬系統錯誤異常條件指示(virtual system error exception condition indication;VSE)重設為0。亦可在VDISR(如上文參考DISR已描述)中記錄其他徵候資訊,資訊例如包括錯誤類型之細節及/或錯誤對處理器狀態的影響之細節。
隨後流程行進至步驟92,以便繼續指令執行(亦即,執行緊隨EMB指令後的指令)。因此,第7圖所示之步驟使得虛擬化系統能夠提供一環境,在此環境 中可由客作業系統以與主作業系統處置實體錯誤相同的方式處置由作為主作業系統運作的超管理器所建立之虛擬系統錯誤。詳言之,客作業系統可以與主作業系統藉由值PSTATE.A之設置遮蔽實體錯誤相同的方式遮蔽虛擬錯誤。又,參看第8A圖與第8B圖,應注意,在EL1中斷處置器中的後期階段,軟體檢查當前是否設置DISR.A等等,如參看第5圖所描述,但在將AMO值設置為1的此虛擬化實施例中,當對DISR.A值實行檢查時,硬體介入以傳回VDISR.A值。
第8A圖對應於藉由資料處理設備提供此虛擬化操作環境的示例性實施例。在此圖示示例性實施例中,提供四個異常位準(EL0-EL3),四個異常位準對應於三個異常狀況(EL0與EL1形成一個異常狀況),其中管理虛擬機之操作的超管理器在比客作業系統高的軟體執行特權位準處操作,客作業系統本身在比彼客作業系統上運作的應用程式高的軟體執行特權位準處操作。第8A圖之右側部分示意性圖示對應於事件之說明性集合的異常位準之間的轉換。所圖示第一事件為在最低異常位準(EL0)處執行客作業系統下運作之應用程式的同時對處理電路系統所接收之實體(亦即,非虛擬)錯誤的接收。相應實體錯誤異常具有EL2之目標異常位準,亦即,由超管理器運作實體錯誤異常處置器。在此示例性實施例中,鑒於將值AMO設置為1的事實排列此配 置,從而界定所有系統錯誤(異步中止)視為EL2以便至少最初由超管理器處置。
然而,超管理器無需完全實施對所接收系統錯誤的錯誤回應,因為超管理器經進一步經配置以能夠將異常處置委派給客作業系統,此舉可藉由在系統內設置「虛擬錯誤」實行。藉由超管理器在將值AMO設置為1時設置VSE值為1來進行此操作。儘管此並非異步事件,但可藉由客作業系統使用PSTATE.A錯誤遮蔽值遮蔽此虛擬錯誤(如上文所描述)。當將值AMO設置為1時,PSTATE.A錯誤遮蔽值界定「虛擬錯誤遮蔽條件」。實際上,由於客作業系統之配置對於兩種類型無需為不同,客作業系統以與實體錯誤相同的方式處置此等虛擬錯誤之特徵有效使得此等虛擬錯誤(與實體錯誤相比)之使用對客作業系統透通,因為處置此等錯誤的方式相同。下文將提供如何實現此透通之更多細節。
因此,當超管理器將異常位準返回至EL0以便接管應用程式時,虛擬錯誤異常之目標現將為EL1,以由客作業系統處置。然而,應注意,儘管在超管理器控制下於EL2處運作錯誤處置器,但由系統接收中斷請求(interrupt request;IRQ)。因此,一旦軟體執行特權位準返回至EL0,則存在兩個異常擱置,一個虛擬系統錯誤(由超管理器藉由VSE設置而建立)及較近期接收的實體中斷(IRQ)。可由系統程式設計師取決於特定系統需求界定處理此等兩個擱置異常的次序(亦 即,此為界定的實施方式)。在第8A圖中所圖示之實例中,此為對先處理之IRQ的回應,此具有EL1之目標。隨後實施在EL1處所實施之中斷處置器(異常處置常式)。如圖所示,此異常處置常式以EMB指令開始,且因此虛擬機所實施之步驟與第4圖所示之步驟相關,其中對於此虛擬化實施例具有一些調適。
第8B圖對應於藉由資料處理設備提供此虛擬化操作環境的另一示例性實施例,再次具有四個異常位準,但在此實例中僅論述EL0、EL1及EL2。此對應於第3圖之實例(不同之處在於此處EL2為到達的最高異常位準)。第8B圖之右側部分示意性圖示對應於事件之另一說明性集合的異常位準之間的轉換。所圖示之第一事件為EL0處的LDR指令之執行。在對此記憶體存取的回應發生之前,IRQ異常視為EL1(亦即,客作業系統)。在EL1處,在客作業系統控制下執行EMB指令。EMB操作偵測實體錯誤異常條件,且由於(如第4圖所示)並未遮蔽錯誤(由於設置AMO),此立即產生錯誤異常。錯誤異常視為EL2(亦即,主作業系統/超管理器)。主作業系統/超管理器篩分錯誤(藉由錯誤處置器之動作)及藉由設置VSE=1來設置「虛擬錯誤」將處置委派回到EL1。指令執行返回以再執行EMB指令。
在此點處,已經處理實體錯誤(IRQ),使得EMB現在處理虛擬錯誤。藉由PSTATE.A遮蔽虛擬錯誤,因此使得如上文所描述設置VDISR.A。因此,藉 由EMB指令延遲所委派虛擬錯誤。應注意,在第8B圖之實例(與第8A圖之實例相比)中,在返回至EL0方面對於與擱置虛擬錯誤相比優先化IRQ不存在(任意)選擇,且此外,此實例展示在虛擬情況中EMB指令如何阻障虛擬錯誤與實體錯誤兩者。
第9A圖圖示在提供虛擬化系統(在一個實例中)的示例性實施例中提供當前異常位準與目標異常位準之間對應關係的表格。此等表格展示在此等情形之各者中如何處置實體錯誤異常條件,亦即可(P)總是擱置實體錯誤異常條件(亦即,自動處理為遮蔽);若設置PSTATE.A,可(M)擱置實體錯誤異常條件(亦即,遮蔽實體系統錯誤),否則處理;或可(T)總是處理實體錯誤異常條件(亦即,不由PSTATE.A遮蔽)。第9B圖圖示虛擬系統錯誤的對應表格,如圖所示將總是具有EL1之目標異常位準(亦即,將由客作業系統處置),且在遭遇虛擬系統錯誤(亦即,藉由超管理器設置)時與當前異常位準無關。第9C圖圖示提供虛擬化系統中的超管理器使用AMO及VSE值之表格以便界定實體系統錯誤的目標。
第10A圖圖示一個示例性實施例中的界定錯誤記憶體阻障指令之配置的假碼之示例性集合。在第10A圖之假碼中,使用以下功能及縮寫:HaveEL(異常位準)-若存在此異常位準,傳回真; SCR_EL3.EA-經設置以將系統錯誤(異步中止)的目標界定為異常位準EL3;IsSecure( )-若當前在安全狀態(例如,由英國劍橋ARM Limited提供之TrustZone技術提供)下操作,傳回真;PSTATE.EL-界定當前異常位準;HCR_EL2.TGE-經設置以界定將在EL2(與EL1相比)處處置所有異常;HCR_EL2.AMO-對於執行位準EL2界定的上文指示之AMO值;DISR_EL1.A-記錄異常位準EL1處的延遲錯誤異常條件;ISR_EL1.A-記錄錯誤異常條件;HCR_EL2.VSE-在異常位準EL2處設置的上文指示之VSE值;VDISR_EL2.A-上文指示之VDISR值。
因此,應注意,在使用SCR_EL3.EA位元情況下,第10A圖所示之假碼實例將第9C圖所示之原理擴展至EL3。此位元的值將實體錯誤異常的目標異常位準設置為EL3,並具有優於HCR_EL2.AMO的優先級。然而,應注意,在此示例性實施例中不存在進一步「虛擬錯誤」條件,亦即,無「SCR_EL3.VSE」位元。
第10B圖圖示異常條目的指令之示例性序列,其中異常處置器希望對調用者隔離錯誤。應注意, 在此序列開始時使用EMB指令並在所示序列結束時使用MRS/TBNZ對(對應於第5圖中的步驟66及72)。應注意,MRS(「自系統移動至暫存器(Move to Register from System)-暫存器」用於讀取例如DISR的值,STP(「儲存對(Store Pair)」用於將一對暫存器儲存至記憶體,且TBNZ(「測試及若非零則產生分支(Test and Branch if Non-Zero)」用於測試暫存器中的位元且若值為非零則產生分支。
儘管本文已參看附圖詳細描述本發明之說明性實施例,但應理解,本發明並不受限於彼等精確實施例,且在不脫離隨附申請專利範圍所定義之本發明之範疇及精神的情況下可由熟習此項技術者實施各種變化、添加及修改。舉例而言,在不脫離本發明之範疇的情況下,可將附屬請求項之特徵與獨立請求項之特徵進行各種組合。

Claims (20)

  1. 一種用於資料處理之設備,該設備包含:處理電路系統,該處理電路系統用以回應於資料處理指令進行資料處理操作,以決定是否存在一錯誤記憶體阻障條件並取決於是否存在該錯誤記憶體阻障條件來進行一錯誤記憶體阻障程序,其中該處理電路系統能夠在偵測到一資料處理操作未成功後在一第一暫存器位置中設置一錯誤異常條件,該錯誤記憶體阻障條件指示出將回應於錯誤異常條件而進行該錯誤記憶體阻障程序,以及其中若設置該錯誤異常條件且若設置一錯誤遮蔽條件,該錯誤記憶體阻障程序包含:在一第二暫存器位置中設置一延遲錯誤異常條件;以及清除在該第一暫存器位置中的該錯誤異常條件。
  2. 如請求項1所述之設備,其中若設置該錯誤異常條件且未設置該錯誤遮蔽條件,則該處理電路系統能夠進行一異常處置程序。
  3. 如請求項1所述之設備,其中該等資料處理操作包含記憶體存取,以及其中該處理電路系統能夠接收一記憶體存取的一錯誤回應,且其中若該錯誤回應指示該記憶體存取未 成功,則該處理電路系統能夠設置該錯誤異常條件。
  4. 如請求項1所述之設備,其中該處理電路系統能夠回應於該等資料處理指令中的一錯誤記憶體阻障指令決定存在該錯誤記憶體阻障條件。
  5. 如請求項2所述之設備,其中作為該異常處置程序的一部分且若設置該延遲錯誤異常條件,則該處理電路系統能夠啟動關於至少一個資料處理指令的一補救回應,其中該至少一個資料處理指令包含在決定存在該錯誤記憶體阻障條件之前所執行之一資料處理指令。
  6. 如請求項2所述之設備,進一步包含錯誤記憶體阻障模式值儲存器,其中當該處理電路系統啟動該異常處置程序之進行時,該處理電路系統能夠取決於該錯誤記憶體阻障模式值儲存器中所儲存之一錯誤記憶體阻障模式值決定存在該錯誤記憶體阻障條件。
  7. 如請求項3所述之設備,其中當進行該錯誤記憶體阻障程序時且若存在該錯誤記憶體阻障條件,則該處理電路系統能夠等待尚未完成的每一記憶體存取的該錯誤回應,然後執行其他資料處理指令。
  8. 如請求項1所述之設備,進一步包含錯誤遮蔽值儲存器,其中該處理電路系統能夠取決於該錯誤 遮蔽值儲存器中所儲存之一錯誤遮蔽值決定是否設置該錯誤遮蔽條件。
  9. 如請求項2所述之設備,其中該處理電路系統能夠在開始該異常處置程序時設置該錯誤遮蔽值。
  10. 如請求項2所述之設備,其中若未設置該延遲錯誤異常條件,則該處理電路系統能夠清除作為該異常處置程序之一部分的該錯誤遮蔽值。
  11. 如請求項1所述之設備,其中若未設置該延遲錯誤異常條件,則該處理電路系統能夠設置該錯誤遮蔽值且在已完成資料處理指令之一預定集合後清除該錯誤遮蔽值。
  12. 如請求項2所述之設備,其中該處理電路系統能夠在選自複數個異常位準的一當前異常位準處進行該異常處置程序,其中該複數個異常位準對應於複數個軟體執行特權位準。
  13. 如請求項12所述之設備,其中若將藉由該處理電路系統在與將回應於一另一錯誤異常條件進行一另一異常處置程序的該異常位準相同或更高的一異常位準處進行該異常處置程序,則該處理電路系統能夠在啟動該異常處置程序時設置該錯誤遮蔽條件。
  14. 如請求項12所述之設備,其中若將藉由 該處理電路系統在比將回應於一另一錯誤異常條件進行一另一異常處置程序的該異常位準低的一異常位準處進行該異常處置程序,則該處理電路系統能夠在啟動該異常處置程序時未設置該錯誤遮蔽條件。
  15. 如請求項1所述之設備,該設備能夠提供在內部操作至少一個虛擬機的一虛擬化操作環境,其中該虛擬機能夠藉由與該處理電路系統交互回應於該等資料處理指令進行該等資料處理操作。
  16. 如請求項15所述之設備,其中若設置該錯誤異常條件且未設置該錯誤遮蔽條件,則該處理電路系統能夠進行一異常處置程序,其中該設備能夠設置一虛擬錯誤異常條件,且其中若設置該虛擬錯誤異常條件且未設置一虛擬錯誤遮蔽條件,則該處理電路系統能夠進行該異常處置程序。
  17. 如請求項15所述之設備,其中若設置該虛擬錯誤異常條件且若設置該虛擬錯誤遮蔽條件,則該錯誤記憶體阻障程序進一步包含:設置一虛擬延遲錯誤異常條件;以及清除該虛擬錯誤異常條件。
  18. 如請求項17所述之設備,其中當該處理電路系統設法決定是否設置該延遲錯誤異常條件時,該設備能夠提供該虛擬延遲錯誤異常條件的一 值,而不是該延遲錯誤異常條件的一值。
  19. 一種資料處理之方法,該方法包含以下步驟:回應於資料處理指令進行資料處理操作;在偵測到一資料處理操作未成功後在一第一暫存器位置中設置一錯誤異常條件;決定是否存在一錯誤記憶體阻障條件;以及取決於是否存在該錯誤記憶體阻障條件來進行一錯誤記憶體阻障程序,該錯誤記憶體阻障條件指示出將回應於錯誤異常條件而進行該錯誤記憶體阻障程序,其中若設置該錯誤異常條件且若設置一錯誤遮蔽條件,則該錯誤記憶體阻障程序包含:在一第二暫存器位置中設置一延遲錯誤異常條件;以及清除在該第一暫存器位置中的該錯誤異常條件。
  20. 一種用於資料處理之設備,該設備包含:用於回應於資料處理指令進行資料處理操作的手段;用於在偵測到一資料處理操作未成功後在一第一暫存器位置中設置一錯誤異常條件的手段;用於決定是否存在一錯誤記憶體阻障條件的手 段;以及用於取決於是否存在該錯誤記憶體阻障條件來進行一錯誤記憶體阻障程序的手段,該錯誤記憶體阻障條件指示出將回應於錯誤異常條件而進行該錯誤記憶體阻障程序,其中若設置該錯誤異常條件且若設置一錯誤遮蔽條件,則該錯誤記憶體阻障程序包含:在一第二暫存器位置中設置一延遲錯誤異常條件;以及清除在該第一暫存器位置中的該錯誤異常條件。
TW104139235A 2014-11-28 2015-11-25 資料處理設備中的系統錯誤處置 TWI748934B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1421134.6 2014-11-28
GB1421134.6A GB2532777B (en) 2014-11-28 2014-11-28 System error handling in a data processing apparatus

Publications (2)

Publication Number Publication Date
TW201633123A TW201633123A (zh) 2016-09-16
TWI748934B true TWI748934B (zh) 2021-12-11

Family

ID=52349593

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104139235A TWI748934B (zh) 2014-11-28 2015-11-25 資料處理設備中的系統錯誤處置

Country Status (9)

Country Link
US (1) US11461104B2 (zh)
EP (1) EP3224718A1 (zh)
JP (1) JP6634083B2 (zh)
KR (1) KR102427949B1 (zh)
CN (1) CN107111525B (zh)
GB (1) GB2532777B (zh)
IL (1) IL252145B (zh)
TW (1) TWI748934B (zh)
WO (1) WO2016083773A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789203B2 (en) * 2016-05-23 2020-09-29 Nec Corporation Data processing apparatus, data processing method, and program recording medium
US10795800B2 (en) * 2018-09-10 2020-10-06 International Business Machines Corporation Programming language runtime deferred exception handling
US11328241B2 (en) * 2020-07-02 2022-05-10 Content Square SAS Identifying script errors in an online retail platform and quantifying such errors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
TW200839513A (en) * 2006-11-22 2008-10-01 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US20110231633A1 (en) * 2010-03-15 2011-09-22 Arm Limited Operand size control
TW201439906A (zh) * 2012-12-07 2014-10-16 Nvidia Corp 用於微處理器之延遲提前執行操作

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
US5438677A (en) * 1992-08-17 1995-08-01 Intel Corporation Mutual exclusion for computer system
AUPM348794A0 (en) * 1994-01-20 1994-02-17 Alcatel Australia Limited Microprocessor fault log
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
CN1242546A (zh) * 1998-03-31 2000-01-26 英特尔公司 用于处理不精确异常的一种方法和装置
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts
GB2478733B (en) * 2010-03-15 2013-08-14 Advanced Risc Mach Ltd Apparatus and method for handling exception events
GB2487575B (en) * 2011-01-28 2017-04-12 Advanced Risc Mach Ltd Controlling generation of debug exceptions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
TW200839513A (en) * 2006-11-22 2008-10-01 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US20110231633A1 (en) * 2010-03-15 2011-09-22 Arm Limited Operand size control
TW201439906A (zh) * 2012-12-07 2014-10-16 Nvidia Corp 用於微處理器之延遲提前執行操作

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARM Cortex™-M Programming Guide to^&rn^Memory Barrier Instructions,
ARM Cortex™-M Programming Guide to^&rn^Memory Barrier Instructions, *

Also Published As

Publication number Publication date
KR102427949B1 (ko) 2022-08-02
CN107111525A (zh) 2017-08-29
JP6634083B2 (ja) 2020-01-22
IL252145A0 (en) 2017-07-31
GB2532777B (en) 2021-07-07
US11461104B2 (en) 2022-10-04
EP3224718A1 (en) 2017-10-04
US20160154654A1 (en) 2016-06-02
WO2016083773A1 (en) 2016-06-02
IL252145B (en) 2020-06-30
CN107111525B (zh) 2022-02-11
GB201421134D0 (en) 2015-01-14
TW201633123A (zh) 2016-09-16
KR20170091641A (ko) 2017-08-09
JP2017538214A (ja) 2017-12-21
GB2532777A (en) 2016-06-01

Similar Documents

Publication Publication Date Title
KR102075372B1 (ko) 안전한 도메인과 덜 안전한 도메인을 갖는 데이터 처리장치에서의 예외처리
KR102075369B1 (ko) 데이터 처리장치와, 안전한 도메인 및 덜 안전한 도메인 사이에서 전환될 때 데이터 및 프로그램 코드를 안전하지 않은 액세스로부터 보호하는 방법
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
KR101740224B1 (ko) 불법 모드 변경처리
TWI478052B (zh) 處置例外事件之裝置及方法
KR102192835B1 (ko) 데이터 처리장치에서의 소프트웨어 라이브러리들의 보안 보호
TWI786181B (zh) 在例外遮罩更新指令之後允許未中止的交易處理
TWI721996B (zh) 安全模式狀態下之資料存取追蹤
TWI748934B (zh) 資料處理設備中的系統錯誤處置
JP2022503899A (ja) スタック・ポインタを検証すること
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
JP6920286B2 (ja) 例外処理
JP2018531462A6 (ja) 例外処理
US11347539B2 (en) Checking lock variables for transactions in a system with transactional memory support