TWI724034B - 例外的處理 - Google Patents

例外的處理 Download PDF

Info

Publication number
TWI724034B
TWI724034B TW105132139A TW105132139A TWI724034B TW I724034 B TWI724034 B TW I724034B TW 105132139 A TW105132139 A TW 105132139A TW 105132139 A TW105132139 A TW 105132139A TW I724034 B TWI724034 B TW I724034B
Authority
TW
Taiwan
Prior art keywords
data
exception
state
syndrome
processing
Prior art date
Application number
TW105132139A
Other languages
English (en)
Other versions
TW201715408A (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 TW201715408A publication Critical patent/TW201715408A/zh
Application granted granted Critical
Publication of TWI724034B publication Critical patent/TWI724034B/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • 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
    • 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/0766Error or fault reporting or storing
    • 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/30098Register arrangements
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

資料處理系統包含例外處理電路系統以偵測包含藉助暫存器庫之給定暫存器傳送資料值之例外觸發處理操作的經嘗試執行。在偵測此例外觸發處理操作時,將症候群資料儲存於表徵例外觸發處理操作之症候群暫存器內,其中彼症候群資料包含該資料值。在中止寫入指令之情形中出現例外時,可將該值儲存至症候群暫存器中。可藉由模擬在中止讀取指令之情形中由例外觸發之碼將資料值儲存至症候群暫存器中。

Description

例外的處理
本揭示內容係關於資料處理系統之領域。更特定而言,本揭示內容係關於資料處理系統內之例外處理。
眾所周知,在資料處理系統之操作期間,可出現例外狀況,從而需要執行例外處理,諸如資料中止、未定義之指令等。當偵測到此種動作時,可觸發例外處理程式指令之執行。
其中出現例外處理之一種情形係經虛擬化系統之情景。超管理器程式可為客作業系統及應用程式提供虛擬執行環境。客作業系統或應用程式可嘗試作為例外陷獲且接著由超管理器模擬之資料存取。為便於超管理器可模擬資料存取,需要對客系統之狀態之存取。然而,在一些情形中,出於安全原因可期望,不允許超管理器在客系統含有專用/秘密/安全資料時存取客系統之狀態。
本揭示內容之至少一些實施例提供用於處理資料之設備,包括: 複數個暫存器; 例外處理電路系統,其用於偵測包含藉助該複數個暫存器中之給定暫存器傳送資料值之例外觸發處理操作的經嘗試執行,且用於觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及 症候群資料儲存器,其用於儲存表徵該例外觸發處理操作且包含該資料值之症候群資料;其中 該例外處理電路系統使用該症候群資料內之該資料值來執行藉助該給定暫存器之該傳送。
本揭示內容之實施例中之至少一些實施例提供用於處理資料之設備,包括: 複數個暫存器手段,其用於儲存資料; 例外處理手段,其用於偵測包含藉助該複數個暫存器手段中之給定暫存器手段傳送資料值之例外觸發處理操作的經嘗試執行,且用於觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及 症候群資料儲存手段,其用於儲存表徵該例外觸發處理操作且包含該資料值之症候群資料;其中 該例外處理手段使用該症候群資料內之該資料值來執行藉助該給定暫存器手段之該傳送。
本揭示內容之至少一些實施例提供一種處理資料之方法,包括: 將資料儲存於複數個暫存器內; 偵測包含藉助該複數個暫存器中之給定暫存器手段傳送資料值之例外觸發處理操作的經嘗試執行; 觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及 儲存表徵該例外觸發處理操作且包含該資料值之症候群資料;以及 使用該症候群資料內之該資料值來執行藉助該給定暫存器手段之該傳送。
圖1示意性地圖示資料處理系統2,其包含經由互連電路系統6連接至記憶體8及一或多個經記憶體映射之輸入/輸出裝置10之處理器核心4。記憶體8包含一或多個專用區10,其儲存在使用處理器核心4之經虛擬化環境中執行的為客程式所專用之資料。記憶體8進一步包含一或多個共享區12,其在客程式與將經虛擬化執行環境提供至客程式之虛擬化程式之間共享。舉例而言,虛擬化程式可為超管理器程式且客程式可為客作業系統程式,客作業系統程式本身將經虛擬化執行環境提供至一或多個應用程式。
處理器核心4包含指令提取單元14,此指令提取單元自記憶體8提取待執行之程式指令且將此等程式指令供應至解碼器16,其中程式指令經解碼以產生控制信號,此等控制信號接著控制處理器核心4內之其他電路系統以執行由經解碼之程式指令指定之處理操作。處理器核心4包含處理電路系統18,此處理電路系統包含暫存器庫20(包括複數個通用暫存器)以執行諸如算術運算及邏輯運算等處理操作。使用載入儲存單元22來執行記憶體存取操作,諸如回應於載入指令(LDR)之載入操作,藉此自記憶體8讀取資料值且將此資料值儲存至暫存器庫20之暫存器中。載入儲存單元22亦執行由儲存指令(STR)指定之儲存操作,其中自暫存器庫20之暫存器讀取資料值且將此等資料值儲存至記憶體8內之記憶體位址中。可存在此等載入及儲存指令之變體。輸入/輸出裝置10係經記憶體映射且因此可使用載入指令及儲存指令以自輸入/輸出裝置10讀取資料值且將此等資料值儲存至暫存器庫20內之暫存器中。類似地,可使用儲存操作以自暫存器庫20讀取值且將此等值寫入至輸入/輸出裝置10。
記憶體管理單元24使用儲存於記憶體8內之頁表資料以藉由在處理器核心4上執行之記憶體存取指令管理對記憶體位址空間(包含記憶體8及輸入/輸出裝置10)之存取。記憶體管理單元24偵測何時嘗試違反存取許可或原本不允許之記憶體存取。此引起資料中止。例外處理電路系統26回應於由記憶體管理單元24指示之資料中止以觸發例外處理。例外處理回應可包含使用跟隨指示例外處理程式指令之起始位址之例外向量以開始彼等例外處理程式指令之執行(例如,將向量位址載入至程式計數器)。此外,作為例外回應之部分,例外處理電路系統26可將表示如保持於CPSR暫存器28(當前程式狀態暫存器)中的處理器核心4之當前處理狀態之狀態資料保存至SPSR暫存器30(經保存程式狀態暫存器)中,自SPSR暫存器30處,可在例外處理已完成時復原狀態資料且使得返回至初始程式流。症候群暫存器32耦合至例外處理電路系統26且儲存表徵導致由例外處理電路系統26處理例外之例外觸發處理操作(至少針對一些記憶體存取)之資料。在一些實施例中,可使用一個以上症候群暫存器。此(此等)症候群暫存器係症候群資料儲存器之一實例。在資料中止之情形中,症候群資料包含(舉例而言):與已中止之記憶體存取相關聯之記憶體位址空間內之位址;旗標,其指示記憶體存取是寫入至彼記憶體位址還是自彼記憶體位址讀取;大小值,其指示正存取之資料值之大小(例如,位元組、半字、字、雙字等)。此外,在作為至記憶體位址空間內之記憶體位址的寫入之經中止記憶體存取之情形中,則症候群暫存器含有待寫入之資料值。此資料值可自載入儲存單元22供應至症候群暫存器32。在經中止記憶體存取係自記憶體位址空間讀取資料值之情形中,則症候群暫存器32含有可藉由例外處理程式指令(執行例外處理的處理操作)將彼資料值儲存至其中之空間,以使得當重演經中止記憶體存取指令時,經讀取資料值可自症候群暫存器32恢復且返回至載入儲存單元22及處理器核心4(例如,返回至暫存器庫20之適當暫存器中)。
資料處理系統2支援虛擬化,藉此超管理器程式給一或多個客作業系統程式及應用程式提供經虛擬化執行環境。為增強系統之安全性,由記憶體管理單元24保持之記憶體存取資料可用以拒絕給予超管理器存取與客程式相關聯之資料(諸如儲存於屬於彼客程式之專用區10內之資料)之能力。在客程式之執行期間儲存於暫存器庫20內之資料及與客程式相關聯之其他狀態資料(例如,CPSR資料、狀態配置資料等)亦可保持為客程式所專用。超管理器程式操作以陷獲藉由客程式對某些記憶體位址之記憶體存取,諸如經記憶體映射之輸入/輸出裝置10。超管理器程式代表使用例外處理程式指令來執行例外處理處理操作之客程式而模擬此等經陷獲之記憶體存取。作為一實例,客程式可設法執行將資料值至經記憶體映射之輸入/輸出裝置之寫入。記憶體管理單元24使用其頁表資料偵測到寫入存取係待由超管理器程式陷獲及模擬之一者且因此引發傳遞至例外處理電路系統26之資料中止例外。例外處理電路系統26將表徵經中止寫入之資料保存至症候群暫存器32中。表徵寫入之此資料包含:旗標,其指示經中止操作係寫入操作;經嘗試寫入操作之位址;待藉由經嘗試寫入操作寫入之資料值;待寫入之資料值之大小;以及如在模擬經中止寫入操作中可用之額外資料(諸如下文所論述之重演狀態資料)。例外處理電路系統亦將當前程式狀態暫存器內容28儲存至經保存程式狀態暫存器30中。在經中止寫入操作之前症候群暫存器32之內容構成當前程式狀態之部分且因此亦經保存為例外處理之部分。若在經中止記憶體存取之模擬期間出現另一例外,則當前症候群資料在彼時間將類似地經保存為當前程式狀態資料之部分以使得可在例外展開時復原此當前症候群資料。
藉由經嘗試寫入操作之資料中止觸發之例外處理程式指令用以自症候群暫存器32讀取症候群資料且使用此資料來完成所期望寫入操作。舉例而言,此完成可涉及將由客程式指定之寫入之位址變換成待由例外處理程式指令使用之不同位址,此不同位址作為超管理器程式之部分操作且對應於如由超管理器程式管理之經記憶體映射之輸入輸出裝置10之實體位址。
在藉由例外處理程式指令陷獲且模擬之經中止記憶體存取指令係自經記憶體映射之輸入/輸出裝置10讀取資料值之情形中,例外處理程式指令自症候群暫存器32讀取待讀取之記憶體位址且接著執行自如由超管理器程式管理之適當記憶體位址之彼讀取。自此讀取返回之資料值儲存至症候群暫存器32中作為症候群資料之部分。
當在自例外處理返回後即重新啟動客程式時,則發佈中止記憶體存取指令(無論是寫入還是讀取)以用於重新執行。在讀取之情形中,則藉由模擬彼讀取之例外處理而儲存於症候群暫存器32內之資料值接著作為彼讀取之結果經返回,例如,儲存至如由原始讀取指令指定之暫存器庫20之適當目的地暫存器中。在重新執行寫入指令之情形中,模擬例外處理程式指令將已經代表客程式執行指定之寫入操作且因此可在無需進一步動作之情況下完成寫入程式指令。
症候群暫存器32儲存經重演狀態資料作為症候群資料之部分。此經重演狀態資料可為具有第一狀態或第二狀態之旗標。使用經重演狀態資料來指示已經在再次嘗試彼記憶體存取指令之執行時模擬中止記憶體存取指令。因此,當在客程式之程式流內首次遇到中止記憶體存取指令時,此中止記憶體存取指令觸發例外處理且由例外處理程式指令模擬。作為模擬之部分,將重演狀態資料(其可為症候群資料之部分或另外保持)設定至第一狀態。當已完成模擬且再次嘗試中止記憶體存取指令之執行時,例外處理電路系統26偵測到重演狀態資料具有第一狀態且因此偵測到已經模擬中止記憶體存取。若中止記憶體存取係寫入,則例外處理電路系統26可在完成時將彼寫入簡單地作標記,如同先前所執行之模擬已經執行所期望寫入一樣。在中止記憶體存取係讀取之情形中,則症候群暫存器32含有藉由模擬例外處理程式指令針對彼讀取返回之資料值。在此情形中,例外處理電路系統26使用來自症候群暫存器32之彼資料值且作為所讀取資料之結果供應此資料值(例如,將讀取資料自症候群暫存器32傳送至由中止讀取指令指定之暫存器庫20內之適當目的地暫存器)且接著在完成時處理讀取指令。
圖2係示意性地圖示例外處理資料中止之流程圖。在步驟27處,處理等待直至資料中止出現為止。可以不同方式處理其他類型之例外。當資料中止出現時,例外處理電路系統32在步驟29處用以存取症候群資料暫存器32。步驟31判定存取於症候群暫存器32內之重演狀態資料是否具有第二狀態。若重演狀態資料具有第二狀態,則此指示尚未模擬中止記憶體存取指令。
若重演狀態資料具有第二狀態,則步驟33將重演狀態資料設定至第一狀態以使得當再次遇到中止記憶體存取時則此中止記憶體存取可經偵測到已經被模擬。步驟34判定中止記憶體存取是否係載入指令。若中止記憶體存取係載入指令,則步驟36用以將資料儲存至症候群暫存器32中作為表徵彼載入指令之症候群資料之部分,該資料包含係載入指令之目標之記憶體位址、載入指令之資料大小及指示中止記憶體存取係讀取之旗標。若步驟34處之判定為中止記憶體存取係儲存指令(亦即,並非載入),則步驟38用以將儲存指令之目標位址、待寫入作為儲存指令之部分之資料值、資料值之資料大小以及指示中止記憶體存取係寫入之旗標儲存至症候群暫存器32中作為症候群資料之部分。
在步驟36及38兩者之後,步驟40用以觸發例外處理指令之執行。此觸發可採用跟隨關於資料中止設置為資料處理系統2之配置之部分的例外向量之形式,其中使用此向量來設定程式計數器值以使得開始例外處理程式指令之執行。
步驟42係藉由例外處理程式指令執行且判定中止指令是否係載入。可藉由檢查儲存於症候群暫存器32中之症候群資料內之讀取/寫入旗標來執行此判定,如步驟36及38處所設定。若正模擬之中止記憶體存取係載入,則步驟44用以藉由自症候群暫存器中之記憶體位址(或彼記憶體位址之經變換版本)讀取資料值、將自所讀取資料返回之讀取資料值儲存回症候群暫存器32中及執行完成經中止讀取操作之模擬必需之任何進一步動作來模擬彼載入。若步驟42處之判定為待模擬之經中止記憶體存取係儲存操作,則步驟46用以藉由將儲存於症候群暫存器32中之資料值寫入至如由儲存於症候群暫存器32內之記憶體位址所指示之記憶體位址(或彼記憶體位址之經變換版本)來完成彼儲存操作。
在步驟44及46兩者之後,處理進行至步驟48,在步驟48處,藉由返回至中止觸發程式指令來執行自例外之返回。應瞭解,例外處理程式指令可在例外處理與模擬操作期間執行其他操作,諸如處理其他程式狀態之儲存及彼程式狀態之復原。
繼步驟48之後,處理返回至步驟27。當步驟48已返回處理至中止觸發指令(中止客程式內之記憶體存取)時,則步驟27將偵測到此指令由於受記憶體管理單元24之相同保護而再次中止。在此情形中,步驟30處之判定將為重演狀態資料並不等於第二狀態且因此處理進行至步驟50。步驟50將重演狀態資料設定至第二狀態。步驟52偵測記憶體存取指令是否係載入。若中止記憶體存取指令係載入,則步驟54用以返回儲存於症候群暫存器值32內之資料值作為中止載入指令之結果。接著,步驟56藉由在完成時將其作標記而收回指令且處理返回至步驟27。若步驟52處之判定係中止記憶體存取指令並非載入,則繞過步驟54且處理直接進行至步驟56,在步驟56處收回中止記憶體存取指令(在此情形中,其係儲存)且在完成時將其作標記。
應瞭解,圖2中所圖示之流程圖包含藉由硬體(例如,藉由例外處理電路系統26)執行之一些步驟及藉由軟體執行之一些步驟。在此實例中,標記有「*」之步驟藉由使用例外處理程式指令之軟體執行。其他處理步驟在由例外處理電路系統26及(視需要)資料處理系統2內之其他元件之硬體控制下執行。應瞭解,在其他實施例中,可使用在硬體及軟體中執行之步驟之間的不同分配。
圖3示意性地圖示虛擬化程式(呈超管理器程式58之形式)與客程式(呈客作業系統60、62及應用程式64、66、68、70之形式)之間的關係。超管理器程式58以高於客程式60-70之特權等級(例外等級)操作。超管理器程式58為客程式60-70提供經虛擬化執行環境。作為此經虛擬化執行之部分,超管理器程式58提供對輸入/輸出裝置10之虛擬存取。超管理器程式58亦可虛擬化對資料處理系統2之其他記憶體位址或資源(諸如,系統配置暫存器)之存取。可使用利用症候群暫存器32之目前技術來實施藉由例外處理程式指令模擬其他例外觸發處理操作,例如,對系統暫存器之經陷獲存取。在此等情形中,亦可在不需要模擬以獲得客程式之專用資料之情況下使用儲存於症候群暫存器32內之症候群資料來執行模擬。執行模擬所要求之資料可在硬體控制下儲存至症候群暫存器32中,自症候群暫存器32處,可藉由模擬程式指令來讀取此資料。
圖4示意性地圖示由記憶體管理單元24執行之二級位址變換。應用程式64、66、68、70可使用虛擬位址產生記憶體存取指令。接著,藉由記憶體管理單元24使用由適當客作業系統60、62控制之頁表資料來執行第一級變換72以形成對應於如由客作業系統60、62提供之實體位址之中間實體位址。客作業系統60、62本身正在經虛擬化環境中執行且因此記憶體管理單元24使用由超管理器58管理之頁表資料來執行第二級變換74以產生實體位址,此實體位址接著定址包含記憶體8及輸入/輸出裝置10之記憶體位址空間。藉由第二級變換74產生之實體位址對應實體記憶體位址空間之超管理器視域。
第一級變換72使用由客作業系統60、62管理之頁表資料。此第一級變換72可用以阻擋由超管理器程式58對專用於客作業系統60、62(或應用程式64-70)之記憶體8內的專用區10之經嘗試記憶體存取。即使超管理器程式58具有高於客作業系統60、62之特權等級,如由客作業系統60、62管理之第一級變換72亦可阻擋超管理器存取資料。對應於第一級變換72之頁表資料可儲存於專用區10內以保護其安全性。
使用由超管理器程式58管理之頁表資料來執行第二級變換74。可使用此第二級變換資料74來陷獲由客作業系統60、62對諸如輸入輸出裝置10等記憶體位址之記憶體存取,此等記憶體位址由超管理器程式58控制且要求藉由超管理器程式58使用症候群暫存器32及上文所論述之症候群資料來模擬。
上述示例性實施例使用重演狀態資料以在例外觸發程式指令之經嘗試重新執行時控制行為。替代示例性實施例可不需要使用此重演狀態資料。在例外觸發程式指令係儲存指令之情形中,例外處理程式指令可在例外處理使用跟隨儲存指令之程式指令之後重新啟動執行(亦即,不嘗試儲存指令之重新執行)。在例外觸發程式指令係載入指令之情形中,可藉由在例外處理程式指令結束時提供並使用新指令而避免對使用重演狀態資料之需要,此新指令控制例外處理電路系統以在使執行返回至跟隨載入指令之指令之前將資料值自症候群暫存器盲複製至其既定目的地暫存器。
在本申請案中,使用用語「經配置以…」意指設備之元件具有能夠實施所定義操作之配置。在此上下文中,「配置」意指硬體或軟體之互連配置或方式。舉例而言,設備可具有提供所定義操作之專屬硬體,或者處理器或其他處理裝置可經程式化以執行此功能。「經配置以」並不暗指設備元件需要以任何方式改變以便提供所定義操作。
儘管本文已參考所附圖式詳細地描述本發明之說明性實施例,但應理解,本發明並不限於彼等精確實施例且熟習此項技術者可在不背離如隨附申請專利範圍所定義之本發明之範疇及精神之情況下在其中實施各種改變及修改。
2‧‧‧資料處理系統4‧‧‧處理器核心6‧‧‧互連電路系統8‧‧‧記憶體10‧‧‧專用區/輸入/輸出裝置12‧‧‧共享區14‧‧‧指令提取單元16‧‧‧解碼器18‧‧‧處理電路系統20‧‧‧暫存器庫22‧‧‧載入儲存單元24‧‧‧記憶體管理單元26‧‧‧例外處理電路系統27‧‧‧步驟28‧‧‧當前程式狀態暫存器29‧‧‧步驟30‧‧‧經保存程式狀態暫存器/步驟31‧‧‧步驟32‧‧‧症候群暫存器33‧‧‧步驟34‧‧‧步驟36‧‧‧步驟38‧‧‧步驟40‧‧‧步驟42‧‧‧步驟44‧‧‧步驟46‧‧‧步驟48‧‧‧步驟50‧‧‧步驟52‧‧‧步驟54‧‧‧步驟56‧‧‧步驟58‧‧‧超管理器程式60‧‧‧客作業系統/客程式62‧‧‧客作業系統/客程式64‧‧‧應用程式/客程式66‧‧‧應用程式/客程式68‧‧‧應用程式/客程式70‧‧‧應用程式/客程式72‧‧‧第一級變換74‧‧‧第二級變換
現在將參考所附圖式僅以舉例方式描述示例性實施例,其中:
圖1示意性地圖示資料處理系統;
圖2係示意性地圖示例外處理之流程圖;
圖3係示意性地圖示一虛擬化程式及多個客程式之圖式;以及
圖4示意性地圖示二級虛擬對實體位址變換。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
27‧‧‧步驟
29‧‧‧步驟
31‧‧‧步驟
33‧‧‧步驟
34‧‧‧步驟
36‧‧‧步驟
38‧‧‧步驟
40‧‧‧步驟
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟
48‧‧‧步驟
50‧‧‧步驟
52‧‧‧步驟
54‧‧‧步驟
56‧‧‧步驟

Claims (19)

  1. 一種用於處理資料之設備,包括:複數個暫存器;例外處理電路系統,其用於偵測包含藉助該複數個暫存器中之一給定暫存器傳送一資料值之一例外觸發處理操作的經嘗試執行,且用於觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及一症候群資料儲存器,其用於儲存表徵該例外觸發處理操作且包含該資料值之症候群資料;其中該例外處理電路系統使用該症候群資料內之該資料值來執行藉助該給定暫存器之該傳送;該症候群資料包括具有一第一狀態及一第二狀態之重演狀態資料;當該重演狀態資料具有該第二狀態時且在該例外觸發處理操作之經嘗試執行時,該例外處理電路系統將該重演狀態資料設定至該第一狀態且觸發該等例外處理程式指令之執行;當該重演狀態資料具有該第一狀態時且在該例外觸發處理操作之經嘗試執行時,該例外處理電路系統將該重演狀態資料設定至該第二狀態、抑制該等例外處理程式指令之觸發且在完成時發訊該例外觸發處理操 作。
  2. 如請求項1所述之設備,其中該例外觸發處理操作係一載入操作以將該資料值自一記憶體位址傳送至該給定暫存器;該等例外處理程式指令將該資料值自該記憶體位址傳送至該症候群資料儲存器;且該例外處理電路系統在該載入操作之嘗試重新執行時將該資料值自該症候群資料儲存器傳送至該給定暫存器。
  3. 如請求項1所述之設備,其中該例外觸發處理操作係一儲存操作以將該資料值自該給定暫存器傳送至一記憶體位址;該例外處理電路系統在該載入操作之該經嘗試執行時將該資料值自該給定暫存器傳送至該症候群資料儲存器;且該等例外處理程式指令將該資料值自該症候群資料儲存器傳送至該記憶體位址。
  4. 如請求項1所述之設備,其中當該重演狀態資料具有該第一狀態時且在該例外觸發處理操作之經嘗試執行時,該例外處理電路系統將該資料值自該症候群資料儲存器傳送至該給定暫存器。
  5. 如請求項1所述之設備,其中在該等例外處 理程式指令完成時,該例外處理電路系統觸發該例外觸發處理操作之經嘗試重新執行。
  6. 如請求項1所述之設備,其中該症候群資料係在例外進入及退出時保存及復原之當前程式狀態資料之部分。
  7. 如請求項1所述之設備,其中該例外觸發處理操作觸發一資料中止。
  8. 如請求項1所述之設備,其中對應於該例外觸發處理操作之一程式指令係一客程式之部分且該等例外處理程式指令係為該客程式提供一執行環境之一虛擬化程式之部分。
  9. 如請求項7所述之設備,其中該虛擬化程式經阻擋以免該客程式之專用狀態資料之存取。
  10. 如請求項8所述之設備,其中在該客程式之執行期間該專用狀態資料包含該複數個暫存器內之資料值。
  11. 如請求項8所述之設備,其包括一記憶體管理單元以用於取決於包含第一級映射資料及第二級映射資料之映射資料管理對一記憶體之存取,其中該客程式管理該第一級映射資料,該虛擬化程式管理該第二級映射資料,且使用該第二級映射資料偵測該例外觸發處理操作。
  12. 如請求項9所述之設備,其中該第一級映射藉由該虛擬化程式阻擋對該客程式之該專用狀態資料之存取。
  13. 如請求項1所述之設備,其中該傳送係在該給定暫存器與一輸入/輸出裝置之間。
  14. 如請求項1所述之設備,其中該症候群資料包括指示一記憶體位址之位址資料,且該資料值之該傳送係在該給定暫存器與該記憶體位址之間。
  15. 如請求項1所述之設備,其中該症候群資料包括該資料值之大小資料。
  16. 如請求項1所述之設備,其中該症候群資料指定該傳送是將該資料值載入至該給定暫存器還是自該給定暫存器寫入該資料值。
  17. 如請求項1所述之設備,其中該症候群資料儲存器係一症候群暫存器。
  18. 一種用於處理資料之設備,包括:複數個暫存器手段,其用於儲存資料;例外處理手段,其用於偵測包含藉助該複數個暫存器手段中之一給定暫存器手段傳送一資料值之一例外觸發處理操作的經嘗試執行,且用於觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及 症候群資料儲存手段,其用於儲存表徵該例外觸發處理操作且包含該資料值之症候群資料;其中該例外處理手段使用該症候群資料內之該資料值來執行藉助該給定暫存器手段之該傳送;該症候群資料包括具有一第一狀態及一第二狀態之重演狀態資料;當該重演狀態資料具有該第二狀態時且在該例外觸發處理操作之經嘗試執行時,該例外處理手段將該重演狀態資料設定至該第一狀態且觸發該等例外處理程式指令之執行;以及當該重演狀態資料具有該第一狀態時且在該例外觸發處理操作之經嘗試執行時,該例外處理手段將該重演狀態資料設定至該第二狀態、抑制該等例外處理程式指令之觸發且在完成時發訊該例外觸發處理操作。
  19. 一種處理資料之方法,包括以下步驟:將資料儲存於複數個暫存器內;偵測包含藉助該複數個暫存器中之一給定暫存器手段傳送一資料值之一例外觸發處理操作的經嘗試執行;觸發例外處理程式指令之執行以至少部分地模擬該例外觸發處理操作;以及儲存表徵該例外觸發處理操作且包含該資料值之症 候群資料;以及使用該症候群資料內之該資料值來執行藉助該給定暫存器手段之該傳送;該症候群資料包括具有一第一狀態及一第二狀態之重演狀態資料;當該重演狀態資料具有該第二狀態時且在該例外觸發處理操作之經嘗試執行時,偵測經嘗試執行之步驟將該重演狀態資料設定至該第一狀態且觸發該等例外處理程式指令之執行;以及當該重演狀態資料具有該第一狀態時且在該例外觸發處理操作之經嘗試執行時,偵測經嘗試執行之步驟將該重演狀態資料設定至該第二狀態、抑制該等例外處理程式指令之觸發且在完成時發訊該例外觸發處理操作。
TW105132139A 2015-10-14 2016-10-05 例外的處理 TWI724034B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1518165.4 2015-10-14
GB1518165.4A GB2543306B (en) 2015-10-14 2015-10-14 Exception handling

Publications (2)

Publication Number Publication Date
TW201715408A TW201715408A (zh) 2017-05-01
TWI724034B true TWI724034B (zh) 2021-04-11

Family

ID=55131018

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105132139A TWI724034B (zh) 2015-10-14 2016-10-05 例外的處理

Country Status (9)

Country Link
US (1) US10649787B2 (zh)
EP (1) EP3341834B1 (zh)
JP (1) JP6920286B2 (zh)
KR (1) KR102613643B1 (zh)
CN (1) CN108139906B (zh)
GB (1) GB2543306B (zh)
IL (1) IL257898B (zh)
TW (1) TWI724034B (zh)
WO (1) WO2017064453A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2579617B (en) * 2018-12-06 2021-01-27 Advanced Risc Mach Ltd An apparatus and method for handling exception causing events
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire
US11816217B2 (en) * 2020-04-10 2023-11-14 Vmware, Inc. Decoy memory allocation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155167A1 (en) * 2006-12-20 2008-06-26 David Hennah Mansell Handling access requests in a data processing apparatus
US20100094613A1 (en) * 2008-05-23 2010-04-15 Arm Limited Device emulation support within a host data processing apparatus

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
CN100392618C (zh) * 1997-08-11 2008-06-04 全斯美达有限公司 保护计算机内存储器被写入的系统、方法和设备
US6189093B1 (en) * 1998-07-21 2001-02-13 Lsi Logic Corporation System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6615343B1 (en) * 2000-06-22 2003-09-02 Sun Microsystems, Inc. Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
US7802080B2 (en) * 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7406634B2 (en) * 2004-12-02 2008-07-29 Cisco Technology, Inc. Method and apparatus for utilizing an exception handler to avoid hanging up a CPU when a peripheral device does not respond
US7920584B2 (en) * 2005-05-04 2011-04-05 Arm Limited Data processing system
US8463969B2 (en) * 2005-06-30 2013-06-11 Intel Corporation Extended message signal interrupt
GB2484416B (en) * 2009-06-26 2015-02-25 Intel Corp Optimizations for an unbounded transactional memory (utm) system
US8135894B1 (en) * 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
US20120260073A1 (en) * 2011-04-07 2012-10-11 Via Technologies, Inc. Emulation of execution mode banked registers
US9244686B2 (en) * 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9152548B2 (en) * 2012-01-17 2015-10-06 Vmware, Inc. Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call
US9317452B1 (en) * 2013-11-18 2016-04-19 Amazon Technologies, Inc. Selective restrictions to memory mapped registers using an emulator
US9396056B2 (en) * 2014-03-15 2016-07-19 Intel Corporation Conditional memory fault assist suppression
US10289414B2 (en) * 2014-06-02 2019-05-14 International Business Machines Corporation Suppressing branch prediction on a repeated execution of an aborted transaction
WO2016130915A1 (en) * 2015-02-13 2016-08-18 Google Inc. Transparent hardware-assisted memory decompression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155167A1 (en) * 2006-12-20 2008-06-26 David Hennah Mansell Handling access requests in a data processing apparatus
US20100094613A1 (en) * 2008-05-23 2010-04-15 Arm Limited Device emulation support within a host data processing apparatus

Also Published As

Publication number Publication date
CN108139906A (zh) 2018-06-08
KR20180067581A (ko) 2018-06-20
EP3341834B1 (en) 2021-05-12
EP3341834A1 (en) 2018-07-04
WO2017064453A1 (en) 2017-04-20
CN108139906B (zh) 2022-09-02
JP2018531462A (ja) 2018-10-25
GB2543306A (en) 2017-04-19
KR102613643B1 (ko) 2023-12-14
IL257898B (en) 2020-03-31
JP6920286B2 (ja) 2021-08-18
TW201715408A (zh) 2017-05-01
GB2543306B (en) 2019-05-01
US10649787B2 (en) 2020-05-12
GB201518165D0 (en) 2015-11-25
US20180239607A1 (en) 2018-08-23
IL257898A (en) 2018-05-31

Similar Documents

Publication Publication Date Title
US10853071B2 (en) Simulation of exclusive instructions
TWI509518B (zh) 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統
US9218302B2 (en) Page table management
JP4688862B2 (ja) 仮想マシン環境における仮想マシンのシングルステップ機能のサポートを提供すること
TW201229809A (en) Illegal mode change handling
JP5703378B2 (ja) アラインメント制御
US10824350B2 (en) Handling contingent and non-contingent memory access program instructions making use of disable flag
TWI724034B (zh) 例外的處理
TW201730767A (zh) 監視處理器之操作
TW200937293A (en) Known good code for on-chip device management
TWI437428B (zh) 主機資料處理設備內之裝置模擬支援
JP2018531462A6 (ja) 例外処理
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JP6634083B2 (ja) データ処理装置におけるシステムエラー処理
JP7481328B2 (ja) トランザクショナル・メモリのための装置及びデータ処理方法
US20210157601A1 (en) Exception interception
JP2009181373A (ja) ネットワーク受信履歴の保存・再生方法及び情報処理装置
KR102558617B1 (ko) 메모리 관리
CN115357334A (zh) Mmio处理方法及装置
CN112541166A (zh) 一种方法、系统和计算机可读存储介质