TWI721996B - 安全模式狀態下之資料存取追蹤 - Google Patents
安全模式狀態下之資料存取追蹤 Download PDFInfo
- Publication number
- TWI721996B TWI721996B TW105121857A TW105121857A TWI721996B TW I721996 B TWI721996 B TW I721996B TW 105121857 A TW105121857 A TW 105121857A TW 105121857 A TW105121857 A TW 105121857A TW I721996 B TWI721996 B TW I721996B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit system
- protection
- flag
- value
- access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本案提供一種資料處理設備,當處理電路系統(154)進入與函數調用關連的安全模式時,該設備使用旗標電路系統(174)以將存取追蹤旗標(SFPA)設定至第一值,且在操作於與該函數調用關連的安全模式下的處理電路系統偵測到對預定狀態資料進行至少一個類型的第一存取之後,切換存取追蹤旗標至第二值,該預定狀態資料如浮點暫存器資料。然後,此存取追蹤旗標可與遲緩保護程式指令(VLSTM)及遲緩載入程式指令(VLLDM)關連使用,以控制是否執行狀態資料的推送操作及狀態資料的復原操作,以防止在非安全模式下對該狀態資料的存取。
Description
本揭示案係關於資料處理系統領域。更特定而言,本揭示案係關於可在第一安全模式及在第二安全模式下操作的資料處理系統。
已知提供具有安全模式及非安全模式的資料處理系統,如由ARM有限公司設計的處理器,該等處理器支援TrustZone架構特徵。在該種系統內,依賴於在安全模式中執行的處理的狀態資料不應(除非具體需求)在非安全模式下為可存取的。
本揭示案中至少一些實施例提供用於處理資料的設備,該設備包括: 處理電路系統,用以在第一安全模式下及在第二安全模式下操作;及 旗標電路系統,用以提供一存取追蹤旗標,當處理電路系統進入與函數調用關連的第一安全模式時,該存取追蹤旗標具有第一值,其中該處理電路系統經配置以在處理電路系統在與該函數調用關連的該第一安全模式下操作時由該處理電路系統偵測到對預定狀態資料進行至少一個類型的第一存取之後,將該存取追蹤旗標切換至第二值。
本揭示案中至少一些其他實施例提供用以處理資料的方法,該方法包括: 在第一安全模式及第二安全模式之一者下執行處理; 當處理電路系統進入與函數調用關連之該第一安全模式時,提供具有第一值之存取追蹤旗標;及 在處理電路系統在與該函數調用關連的該第一安全模式下操作時由該處理電路系統偵測到對預定狀態資料進行至少一個類型的第一存取之後,將存取追蹤旗標切換至第二值。
本揭示案之至少一些其他實施例提供儲存在有形電腦程式儲存媒體上之電腦程式,在該儲存媒體中,電腦程式包括遲緩保護程式指令及/或遲緩載入程式指令中之至少一者。
本揭示案之上述及其他目標、特徵,及優勢將在說明性實施例之以下詳細說明中顯而易見,該詳細說明將結合附圖閱讀。
第1圖示意地圖示回應於函數調用與函數轉回連同對存取追蹤旗標及保護旗標的關連控制而在非安全模式與安全模式之間進行的處理切換,及浮點暫存器狀態資料來往於堆疊記憶體的保存及復原操作。如圖所示,處理以非安全函數fn0開始,此函數對安全函數fn1進行函數調用。在進行此函數調用之時,存在切換離開非安全模式及切換進入安全模式。此舉觸發將存取追蹤旗標(安全浮點存取旗標(secure floating point access flag; SFPA))設定至第一值,例如「0」。隨後,在安全模式中藉由使用函數fn1的處理前進直至此函數fn1對浮點暫存器進行存取。此舉由旗標電路系統(旗標控制器)偵測到,該旗標電路系統將存取追蹤旗標SFPA從第一值變更至第二值,例如「1」。當存取追蹤旗標已具有第二值時,對浮點暫存器之隨後存取將保持存取追蹤旗標具有該第二值。
當安全模式函數fn1意欲對非安全函數進行函數調用時,該函數fn1負責執行遲緩保護程式指令VLSTM以作為其為退出安全模式所作準備中之部分。由處理器的處理電路系統執行遲緩保護指令VLSTM具有數個操作。如若存取追蹤旗標SFPA具有第二值(即被設定在「1」值,該值指示在安全函數fn1處理期間已發生浮點暫存器存取),則準備保護回應並將保護旗標LSPACT設定至一值,此值可指示此保護回應已經準備好。保護回應準備包括分配堆疊記憶體內的儲存空間,該堆疊記憶體受保護以免於非安全存取,如儲存浮點暫存器狀態資料需要,則將使用堆疊記憶體。此時並不將浮點暫存器狀態資料保存至該堆疊,而是在堆疊中保留該資料將佔據之空間,且保存針對堆疊內該分配空間的指標。
如若在執行遲緩保護程式指令時,存取追蹤旗標SFPA具有第一值(即被設定在「0」值,該值指示安全函數fn1沒有進行任何浮點存取),則沒有與需要保護的安全函數fn1關連之安全浮點狀態資料,且相應地不準備保護回應並不設定保護旗標LSPACT(無需在安全堆疊記憶體中分配空間,且不設定指標)。除遲緩保護程式指令VLSTM的執行之外,硬體藉由以下方式回應於從安全模式切換至非安全模式的函數調用:經由推送操作,將存取追蹤旗標SFPA在當時對於安全函數fn1的值保存至安全函數fn1的安全堆疊(例如儲存在非安全模式下不可存取的記憶體區域中)。
在第1圖的實例中進行從安全函數fn1向非安全函數fn2的函數調用。安全函數fn1的任何安全浮點狀態資料最初仍存在於浮點暫存器內。保存此浮點狀態資料且清除浮點狀態資料預設並未消耗時間及能量。如若非安全函數fn2不進行任何浮點存取,則當繼續安全函數fn1時,浮點狀態資料將仍在原位,且將由於避免對復原浮點狀態資料的需求而節省更多能量及時間。
然而,如若在LSPACT旗標設定至「1」的同時嘗試存取浮點暫存器(例如藉由在非安全函數fn2中執行的浮點指令),則安全狀態保護電路系統用以將安全函數fn1的浮點狀態資料保存至安全狀態記憶體內已分配的儲存區域,該區域由先前執行的遲緩保護指令VLSTM所設置(準備),然後在允許非安全函數fn2存取浮點暫存器之前清除浮點暫存器。安全狀態保護電路系統在偵測到已經設定保護旗標LSPACT(例如具有「1」值)時執行先前由遲緩保護VLSTM所準備的保護回應,此設定指示浮點暫存器確實包含取決於由安全函數fn1所作處理的狀態資料,且已藉由在安全堆疊內分配空間並保存對所分配空間的指標來為該浮點狀態資料準備保護回應,該指標用於保存安全函數fn1的浮點狀態資料的推送操作。
當已執行保護回應時,保護旗標LSPACT重置(例如重置為「0」值),因為已經保存並清除安全浮點狀態資料,且相應地,在非安全函數fn2處理期間出現的隨後浮點存取無須觸發針對該安全浮點狀態資料的進一步保護回應。
如第1圖所圖示,非安全函數fn2由執行函數轉回而結束,該函數轉回使處理返回至安全函數fn1。硬體藉由復原存取追蹤旗標SFPA值來回應此函數轉回,在退出安全函數fn1之後,該值被置於安全堆疊上。此存取追蹤旗標SFPA復原至所繼續的安全函數fn1指示安全函數fn1內的先前處理是否已向浮點暫存器執行任何存取,及相應地,當從安全函數fn1進行函數調用時是否存在某些安全浮點狀態資料。安全函數fn1在繼續時負責執行遲緩載入指令VLLDM。此舉具有第1圖中以假碼圖示的操作。更特定而言,如若存取追蹤旗標SFPA具有第二值(例如被設定至「1」),則針對是否仍設定保護旗標(例如LSPACT為「1」)進行決定。如若保護旗標仍被設定,則此舉指示自安全函數fn1執行VLSTM指令以來還未觸發保護回應。如若是此情況,則無需對安全浮點狀態資料進行復原,因為安全浮點狀態資料將仍存在於浮點暫存器內,因為在介入處理期間還未對該浮動暫存器進行嘗試存取。保護旗標將重置(LSPACT= 0)且無需執行進一步處理。
反之,如若在執行遲緩載入程式指令VLLDM時存取追蹤旗標具有第二值(例如SFPA=「1」)且保護旗標未被設定(例如LSPACT=「0」),則此舉指示當退出安全函數fn1時有安全浮點狀態資料就位,且在執行VLSTM之後及在執行VLLDM指令之前都觸發了保護回應。相應地,此環境中之VLLDM程式指令觸發復原回應,該復原回應從安全堆疊(彈出)內復原安全浮點狀態資料,該安全堆疊被保存的指標值指示為浮點暫存器彈出操作。
以此方式,將可見,當處理電路系統進入與函數調用關連的安全模式(從非安全函數fn0向安全函數fn1進行的切換)時,旗標電路系統提供具有第一值的存取追蹤旗標SFPA(例如SFPA=「0」)。然後,旗標電路系統用以監測在安全函數fn1處理期間發生的對浮點暫存器之存取,且如若發生浮點暫存器存取則監測存取追蹤旗標向第二值(SFPA=「0」)的切換。被追蹤的浮點暫存器存取可採用對彼等浮點暫存器進行任何讀取或寫入存取的形式。某一類型的存取無需切換存取追蹤旗標值即可執行,因為該等存取不產生某種浮點狀態資料,該浮點狀態資料包含任何取決於具有可能有損潛在安全的方式的安全模式處理的資訊。因此,被追蹤的存取具有至少一個類型。以此方式提供的存取追蹤旗標允許諸如遲緩保護及遲緩載入的機制,該等機制先前描述為經實施以便向狀態資料提供保護,而不會在不需要此保護時導致無謂的時間及能量額外消耗。將理解,第1圖實例已經結合狀態資料進行描述,該狀態資料即為浮點暫存器資料。可能相同機制可用以保護與安全模式處理關連之其他形式的狀態資料,如SIMD暫存器資料。
熟習該項技術者將理解,儘管第1圖表示簡單的函數調用樹,但本發明可用以在複雜函數調用樹中有效保護安全狀態。具體而言,安全函數fn1中之處理可分為數個函數(可能在不同時間被編譯),使得處理對非安全函數fn2的函數調用的編譯器可能無法察覺自fn1開始時進入安全狀態以來發生的全部處理。因此,編譯器往往難以或不可能知道FP暫存器是否已被安全碼存取。
第2圖是一流程圖,該圖示意地圖示旗標電路系統在保存存取追蹤旗標SFPA時的操作。在步驟100中,處理等待直至偵測到將系統從安全模式切換至非安全模式的函數調用。當偵測到該種函數調用時,處理前進至步驟102,在該步驟中,將存取追蹤旗標SFPA當前值保持至安全堆疊記憶體,然後,處理返回步驟100以等候下一安全向非安全函數的調用。
第3圖是一流程圖,該圖示意地圖示旗標電路系統在復原存取追蹤旗標時的操作。在步驟104中,處理等待直至偵測到從非安全模式向安全模式的函數轉回。當偵測到該種返回時,步驟106用以經由彈出操作從安全堆疊復原存取追蹤旗標SFPA。
其他示例性實施例亦有可能,如其中由在VLLDM指令之後執行的單獨指令執行堆疊空間解除分配,且VLLDM採用一暫存器參數,該參數規定可能已保存浮點狀態位置。
第4A圖圖示旗標電路系統可如何重置存取追蹤旗標的第一實例。在步驟108中,旗標電路系統等待直至偵測到從非安全模式到安全模式的函數調用。當偵測到該種函數調用時,步驟110用以將存取追蹤旗標SFPA重置為第一值(例如SFPA=「0」)。然後,處理返回步驟108。此類存取追蹤旗標重置可例如與以下機制關連使用:該機制在發生對安全浮點資料的第一隨後存取時(無論處理電路系統在當時是處於安全模式還是非安全模式)或當處理電路系統在安全模式中操作時對安全浮點狀態資料發生第一存取時,將存取追蹤旗標(例如SFPA=「1」)設定為第二值。存取追蹤旗標可有多種不同的方式被控制以經設定及重置。此控制的目的是存取追蹤旗標在對安全模式處理的調用之後具有第一值,直至在安全處理期間發生對浮點狀態資料的第一存取,在此之後,存取追蹤旗標設定為第二值。
第4B圖是一流程圖,該圖圖示旗標電路系統可如何控制存取追蹤旗標重置的第二實例。在步驟112中,處理等待直至從安全模式向非安全模式進行函數調用,或從安全模式向非安全模式進行函數轉回。當偵測到該種函數調用或函數轉回時,步驟114用以將存取追蹤旗標設定至第一值(例如SFPA=「0」)。該種重置機制可關連一機制使用,該機制在偵測到對浮點狀態資料的第一存取之後設定存取追蹤旗標,該第一存取在系統隨後在安全模式下操作時發生。
第5圖是一流程圖,該圖示意地圖示對嘗試存取浮點狀態資料的硬體回應(由旗標電路系統及安全狀態保護電路系統實施)。在步驟116中,處理等待直至嘗試對一或更多個浮點暫存器進行存取,亦即偵測到處理電路系統對預定狀態資料進行至少一個類型的存取的實例。當偵測到該種嘗試存取時,步驟118決定當前是否設定保護旗標LSPACT(例如LSPACT=「1」)。如若設定保護旗標,則步驟120用以將當前浮點暫存器內容儲存至安全堆疊內已分配的儲存區域,如該已分配的儲存區域的指標位址所指示。儲存區域的分配及對該已分配儲存區域的適當指標的產生先前已藉由執行遲緩保護程式指令而設置(準備),如先前所述。
在步驟120之後,步驟122用以清除現已保存的浮點暫存器。然後,步驟124用以重置保護旗標(例如設定LSPACT=「0」)。此指示所準備的任何保護操作現已被實施,且因此,如若對安全浮點狀態資料進行最後的存取嘗試,則無需重複該操作。
在步驟124之後,或如若步驟118中之決定是未設定保護旗標,則處理前進至步驟126,在步驟126中針對處理器當前是否在安全模式中操作作出決定。如若處理器在安全模式下操作,則步驟128決定存取追蹤旗標SFPA當前是否具有第一值(例如SFPA=「0」)。如若存取追蹤旗標具有第一值,則此指示在步驟116中偵測的存取是在安全模式處理期間發生的第一浮點存取,且因此,步驟130用以將浮點配置(例如捨入模式、浮點異常處理等等)設定至預設配置,且將存取追蹤旗標切換至第二值(例如SFPA=「1」)。在步驟130之後,或在步驟126及128之後,如若該等步驟決定為否定,則處理前進至步驟132,在步驟132中,允許步驟116中嘗試的浮點存取。然後,處理返回步驟116,將等候下一嘗試的浮點暫存器存取。
第6圖是一流程圖,該圖示意地圖示遲緩儲存程式指令(遲緩保護程式指令)的執行如何觸發狀態保護電路系統的準備以執行保護回應(如需要)。在步驟134中,偵測到遲緩儲存程式指令VLSTM的解碼。然後,步驟136決定存取追蹤旗標是否具有第二值(例如SFPA=「1」)。如若存取追蹤旗標不具有第二值,則沒有安全浮點狀態資料需要被保護,且因此,無需進行準備,而處理返回步驟134。然而,如若存取追蹤旗標具有第二值,則處理前進至步驟138,在步驟138中,設定保護旗標(保護被指示為待命,而尚未被觸發)。然後,如若此浮點暫存器狀態資料隨後被偵測到是必需的,步驟140用以分配安全堆疊中之空間以用於待保存的浮點暫存器狀態資料(或VLSTM指令之參數中所規定之其他資料)。此外,設置對安全堆疊內該分配空間的指標,然後處理返回步驟134以等候下一遲緩儲存程式指令。
其他示例性實施例亦有可能,如其中VLSTM指令用以觸發狀態保護電路系統以立刻推送安全浮點狀態資料的實施例。另一選項是在VLSTM指令之前執行的單獨指令用以分配堆疊空間,且VLSTM採用暫存器參數,該參數規定該分配空間的位置。
第7圖示意地圖示對遲緩載入程式指令執行的回應。在步驟142中,遲緩載入程式指令(lazy-load program instruction; VLLDM)被解碼。然後,步驟144決定存取追蹤旗標SFPA是否具有第二值(例如SFPA=「1」)。如若存取旗標不具有第二值,則沒有需要為其準備保護的安全浮點暫存器狀態資料,且因此,安全浮點暫存器狀態資料可或可能未經受推送操作至安全堆疊。由此,如若存取追蹤旗標具有第一值,則處理從步驟144返回步驟142以等候下一遲緩載入指令。如若存取追蹤旗標具有步驟144所決定之第二值,則步驟146決定是否仍設定保護旗標(例如LSPACT=「1」)。如若仍設定保護旗標,則此指示在先前處理期間為安全浮點狀態資料觸發保護回應,且因此,步驟148用以對安全浮點狀態資料執行從堆疊到浮點暫存器的復原操作(彈出)並解除分配對應堆疊空間。已分配儲存區域亦解除分配以釋放其空間。如若步驟146的決定是仍設定保護旗標(例如LSPACT=「1」),則設置並準備保護但不觸發保護,且因此無需復原操作,而處理前進至步驟150,在該步驟中,重置保護旗標(例如LSPACT=「0」)。
在某些示例性實施例中,可提供遲緩無保護程式指令,使得在執行該指令時,當處理電路系統在安全模式下操作且仍設定保護旗標(例如LSPACT=「1」)時,使保護回應去能。
第8圖示意地圖示資料處理系統152,該資料處理系統包括連接至主記憶體156的處理器154。處理器154自主記憶體156檢索程式指令及資料。程式指令由指令擷取單元157擷取,且隨後被指令解碼程式158解碼,該指令解碼程式產生控制信號以控制將執行的彼等程式指令所規定之處理操作。執行的處理操作可包括例如整數處理操作,該整數處理操作藉由使用通用暫存器組160內儲存的資料值來執行,且由諸如乘法器162、移位器164及加法器166的處理電路系統操縱。程式指令亦可包括浮動點程式指令,該等指令在浮點資料值儲存在浮點暫存器168內並由浮點執行電路系統170執行時執行。浮點執行電路系統170由儲存在浮點配置暫存器172內的浮點配置來配置。當在處理的安全模式中進行第一浮點存取時,此浮點配置(例如捨入模式、異常特性等等)被設定至預設值。預設配置可為固線式或先經程式化。浮點配置暫存器172內儲存的浮點配置可同時被保護並復原,因為浮點狀態資料如先前論述而被保護並復原。除了浮點暫存器自身內容之外,浮點配置還可屬於安全浮點狀態資料。
與浮點電路系統關連的是旗標控制器174(旗標電路系統)及安全狀態保護電路系統176。該等電路具有先前描述的函數。該等電路保持及回應於存取追蹤旗標SFPA及保護旗標LSPACT,如先前所述。此外,為堆疊記憶體178內區域的指標提供儲存,該儲存器在執行時間經分配(在主記憶體156內)以儲存安全浮點狀態資料(若為必需)。
第9圖示意地圖示不同實施例的操作及該等實施例可如何用以將存取追蹤旗標設定為第一值並將存取追蹤旗標設定為第二值。在實例(a)中,當由於函數調用而從非安全模式向安全模式進行切換時,存取追蹤旗標被設定至第一值。隨後,當在安全模式中進行(至少一個類別的)第一浮點存取時,存取追蹤旗標被設定為第二值。在實例(b)中,當作為函數調用而從非安全模式向安全模式進行切換時,存取追蹤旗標再次被設定至第一值。無論處理器是處於安全模式還是非安全模式,當發生第一隨後浮點存取時,存取追蹤旗標從第一值切換到第二值。在實例(c)中,當作為函數調用或函數轉回而從安全模式向非安全模式進行切換時,存取追蹤旗標被設定至第一值。隨後,當處理器在安全模式中操作時,當偵測到第一浮點存取時,存取追蹤旗標切換至第二值。將可見,全部實例(a)、(b)、(c)皆具有一效應,亦即存取追蹤旗標具有第一值,直至偵測到安全狀態中的第一浮點存取為止。
儘管說明性實施例已在本案中藉由參考附圖進行詳細描述,但將理解,本發明並非限定於彼等精確實施例,且熟習該項技術者在不背離所附申請專利範圍之範疇及精神的情況下可在彼等實施例中實現多種變更、增添及修改。例如,附屬請求項之特徵可與獨立請求項之特徵進行多種組合。
100‧‧‧步驟
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
108‧‧‧步驟
110‧‧‧步驟
112‧‧‧步驟
114‧‧‧步驟
116‧‧‧步驟
118‧‧‧步驟
120‧‧‧步驟
122‧‧‧步驟
124‧‧‧步驟
126‧‧‧步驟
128‧‧‧步驟
130‧‧‧步驟
132‧‧‧步驟
134‧‧‧步驟
136‧‧‧步驟
138‧‧‧步驟
140‧‧‧步驟
142‧‧‧步驟
144‧‧‧步驟
146‧‧‧步驟
148‧‧‧步驟
150‧‧‧步驟
152‧‧‧資料處理系統
154‧‧‧處理器
156‧‧‧主記憶體
157‧‧‧指令擷取單元
158‧‧‧指令解碼程式
160‧‧‧通用暫存器組
162‧‧‧乘法器
164‧‧‧移位器
166‧‧‧加法器
168‧‧‧浮點暫存器
170‧‧‧浮點執行電路系統
172‧‧‧浮點配置暫存器
174‧‧‧旗標控制器
176‧‧‧安全狀態保護電路系統
178‧‧‧堆疊記憶體
第1圖示意地圖示非安全處理與安全處理之間的函數調用序列,及用以取決於安全模式處理來保護浮點狀態資料的關連操作;
第2圖是一流程圖,該圖示意地圖示旗標電路系統,該旗標電路系統在有從安全模式到非安全模式的函數調用時保存安全浮點存取旗標;
第3圖是一流程圖,該圖示意地圖示旗標電路系統,該旗標電路系統在有從非安全模式到安全模式的函數轉回時復原安全浮點存取旗標;
第4A圖及第4B圖是流程圖,該等圖式示意地圖示可重置安全浮點存取旗標之兩個示例性備選方法;
第5圖是一流程圖,該圖示意地圖示對旗標電路系統及狀態保護電路系統的浮點存取的硬體回應;
第6圖是一流程圖,該圖示意地圖示遲緩保護程式指令,該遲緩保護程式指令觸發狀態保護電路系統之準備;
第7圖是一流程圖,該圖示意地圖示遲緩載入程式指令,該遲緩載入程式指令觸發浮點狀態資料復原操作及保護旗標之清除;
第8圖示意地圖示處理設備,該設備包括旗標電路系統及狀態保護電路系統,以用於支援提供存取追蹤旗標及保護旗標以作為取決於安全模式處理來保護浮點狀態資料之部分;及
第9圖示意地圖示示例性備選實施例,安全浮點存取旗標可藉由該等實施例回應於不同觸發器而經重置及設定。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
Claims (27)
- 一種用於處理資料之設備,該設備包括:處理電路系統,用以在一第一安全模式下及在一第二安全模式下操作;及旗標電路系統,用以提供一存取追蹤旗標,當該處理電路系統進入與一函數調用關連的該第一安全模式時,該存取追蹤旗標具有一第一值,其中該處理電路系統經配置以在該處理電路系統在與該函數調用關連的該第一安全模式下操作時由該處理電路系統偵測到對預定狀態資料進行至少一個類型的一第一存取之後,將該存取追蹤旗標切換至一第二值。
- 如請求項1所述之設備,其中該旗標電路系統經配置以實施以下各者中之一者: 在進入該第一安全模式之後,將該存取追蹤旗標設定至該第一值,且在偵測到該第一存取之後將該存取追蹤旗標從該第一值變更至該第二值,無論該處理電路系統是在該第一安全模式下操作還是在該第二安全模式下操作; 在進入該第一安全模式之後,將該存取追蹤旗標設定至該第一值,且在偵測到該第一存取之後及該處理電路系統在該第一安全模式下操作時將該存取追蹤旗標變更至該第二值;及 在進入該第二安全模式之後,將該存取追蹤旗標設定至該第一值,且在偵測到該第一存取之後及該處理電路系統在該第一安全模式下操作時將該存取追蹤旗標變更至該第二值。
- 如請求項1所述之設備,其中該旗標電路系統可回應於一進一步函數調用,該函數調用將該處理電路系統從在該第一安全模式下操作切換至在該第二安全模式下操作,以將該存取追蹤旗標的一當前值保存至一存取追蹤旗標資料儲存器。
- 如請求項3所述之設備,其中該旗標電路系統可回應於來自該進一步函數調用的一函數轉回,該函數轉回將該處理電路系統從在該第二安全模式下操作切換至在該第一安全模式下操作,以將該存取追蹤旗標復原至來自該存取追蹤旗標資料儲存器的該當前值。
- 如請求項3所述之設備,其中該存取追蹤旗標資料儲存器是一堆疊記憶體。
- 如請求項1所述之設備,包括: 安全狀態保護電路系統,用以在至少以下各情況中觸發針對該預定狀態資料的一保護回應: 該處理電路系統在該第二安全模式下操作; 在切換至與一函數調用關連的該第二安全模式之前,該存取追蹤旗標在該第一安全模式中操作時具有該第二值;及 該處理電路系統嘗試存取該預定狀態資料,其中該保護回應包括清除該預定狀態資料的一第一子集。
- 如請求項6所述之設備,其中該保護回應包括保存該預定狀態資料的一第二子集至一狀態資料儲存器。
- 如請求項6所述之設備,其中如若該處理電路系統在以下情況中之一個情況下嘗試存取該預定狀態資料的該第一子集,該處理電路系統可回應於一遲緩保護程式指令的執行以準備該狀態保護電路系統執行該保護回應: 該存取追蹤旗標具有該第二值;及 執行該遲緩保護程式指令。
- 如請求項6所述之設備,其中該保護回應包括將一保護旗標設定至一值,該值可指示該保護回應的觸發。
- 如請求項9所述之設備,其中該保護旗標是以下各者之一: 一專用保護旗標;及 該存取追蹤旗標。
- 如請求項8所述之設備,其中該遲緩保護程式指令的該執行觸發該保護回應。
- 如請求項7所述之設備,其中該保護回應包括將一保護旗標設定至一值,該值可指示該保護回應的觸發,且在以下情況下,該處理電路系統可回應於一遲緩載入程式指令的執行以從該狀態資料儲存器載入該預定狀態資料的該第二子集: 該處理電路系統在該第一安全模式下操作;及 該保護旗標具有該值,該值可指示對該保護回應的觸發。
- 如請求項12所述之設備,其中該預定狀態資料的該第二子集的該載入進一步取決於具有該第二值的該存取追蹤旗標。
- 如請求項12所述之設備,其中如若該處理電路系統在以下情況中之一個情況下嘗試存取該預定狀態資料的該第一子集,該處理電路系統可回應於一遲緩保護程式指令的執行以準備該狀態保護電路系統,以執行該保護回應: 該存取追蹤旗標具有該第二值;及 執行該遲緩保護程式指令,且在以下情況下,該處理電路系統可回應於該遲緩載入程式指令的執行,以清除對該安全狀態保護電路系統的該準備: 該處理電路系統在該第一安全模式下操作;及 該保護旗標具有一值,該值並非可指示該保護回應的觸發。
- 如請求項9所述之設備,其中該處理電路系統可回應於一遲緩無保護程式指令的執行,以在以下情況下去能該保護回應: 該處理電路系統在該第一安全模式下操作;及 該保護旗標具有一值,該值並非可指示該保護回應的觸發。
- 如請求項1所述之設備,包括一浮點暫存器檔案,該檔案儲存浮點值,其中該預定狀態資料包括該浮點值。
- 如請求項16所述之設備,其中該處理電路系統對該浮點值的該存取包括執行一浮點指令。
- 如請求項16所述之設備,其中浮點配置資料規定與由該處理電路系統執行浮點處理操作關連之一或更多個參數,且當該存取追蹤旗標具有該第一值時在該安全狀態下執行該浮點指令之後,該浮點配置資料被設定為預設浮點配置資料。
- 如請求項7所述之設備,其中該狀態資料儲存器包括一堆疊記憶體。
- 如請求項7所述之設備,其中準備該狀態保護電路系統,以藉由在該堆疊記憶體內分配一儲存區域以儲存該預定狀態資料的該第二子集並向該狀態保護電路系統提供該儲存區域的一指標位址來執行該保存。
- 如請求項20所述之設備,其中該遲緩保護程式指令具有一參數,該參數規定該設備的何種狀態資料包括該預定狀態資料的該第一子集。
- 如請求項14所述之設備,其中該狀態資料儲存器包括一堆疊記憶體,且在以下情況中之一個情況下,該處理電路系統可回應於該遲緩載入程式指令的執行以解除分配該堆疊記憶體內的該儲存區域:該遲緩載入程式指令從該堆疊記憶體載入該預定狀態資料;該遲緩載入程式指令清除該狀態保護電路系統的該準備;及執行該遲緩載入程式指令。
- 如請求項22所述之設備,其中該遲緩載入程式指令具有一參數,該參數規定該設備的何種狀態資料包括該預定狀態資料的該第二子集。
- 如請求項1所述之設備,其中該第一安全模式是一安全模式而該第二安全模式是一非安全模式。
- 一種處理資料的方法,該方法包括以下步驟:在一第一安全模式及一第二安全模式之一者下執行處理;當處理電路系統進入與一函數調用關連之該第一安全模式時,提供具有一第一值之一存取追蹤旗標;及在該處理電路系統在與該函數調用關連之該第一安全模式中操作時由該處理電路系統偵測到對預定狀態資料進行至少一個類型的一第一存取之後,將該存取追蹤旗標切換至一第二值。
- 一種電腦程式,儲存在一有形電腦程式儲存媒體上,用以控制一如請求項1所述之設備的操作,該電腦程式包括一遲緩保護程式指令,該指令在該第一安全模式下操作時可執行以準備一狀態保護電路系統,以如若該處理電路系統在該第二安全模式下操作時嘗試存取該預定狀態資料的一第一子集,則針對該預定狀態資料執行一保護回應。
- 一種電腦程式,儲存在一有形電腦程式儲存媒體上,用以控制一如請求項12所述之設備的操作,該電腦程式包括一遲緩保護程式指令,在以下情況下,該指令可執行以控制該處理電路系統以從該狀 態資料儲存器載入該預定狀態資料的該第二子集:該處理電路系統在該第一安全模式下操作;及該保護旗標具有該值,該值可指示對該保護回應的觸發。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1512367.2 | 2015-07-15 | ||
GB1512367.2A GB2540388B (en) | 2015-07-15 | 2015-07-15 | Secure mode state data access tracking |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201702890A TW201702890A (zh) | 2017-01-16 |
TWI721996B true TWI721996B (zh) | 2021-03-21 |
Family
ID=54013982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105121857A TWI721996B (zh) | 2015-07-15 | 2016-07-12 | 安全模式狀態下之資料存取追蹤 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10503932B2 (zh) |
EP (1) | EP3308314B1 (zh) |
JP (1) | JP6921800B2 (zh) |
KR (1) | KR102509365B1 (zh) |
CN (1) | CN107735791B (zh) |
GB (1) | GB2540388B (zh) |
IL (1) | IL256164B (zh) |
TW (1) | TWI721996B (zh) |
WO (1) | WO2017009597A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229195B2 (en) | 2017-06-22 | 2019-03-12 | International Business Machines Corporation | Relation extraction using co-training with distant supervision |
US10223639B2 (en) | 2017-06-22 | 2019-03-05 | International Business Machines Corporation | Relation extraction using co-training with distant supervision |
GB2564144B (en) | 2017-07-05 | 2020-01-08 | Advanced Risc Mach Ltd | Context data management |
US11100254B2 (en) * | 2018-12-05 | 2021-08-24 | Micron Technology, Inc. | Processors with security levels adjustable per applications |
US20230350582A1 (en) * | 2022-04-27 | 2023-11-02 | Micron Technology, Inc. | Data masking for memory |
GB2621170A (en) * | 2022-08-05 | 2024-02-07 | Xmos Ltd | Execution of Instructions from Trusted and Untrusted Memories |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970246A (en) * | 1997-09-11 | 1999-10-19 | Motorola Inc. | Data processing system having a trace mechanism and method therefor |
TW201232393A (en) * | 2011-01-13 | 2012-08-01 | Advanced Risc Mach Ltd | Tracing of a data processing apparatus |
US20140373171A1 (en) * | 2013-06-12 | 2014-12-18 | Arm Limited | Security protection of software libraries in a data processing apparatus |
TW201503148A (zh) * | 2013-07-01 | 2015-01-16 | Mstar Semiconductor Inc | 記憶體信號的動態相位追蹤方法及其相關控制電路 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560698B1 (en) * | 1999-05-07 | 2003-05-06 | Advanced Micro Devices, Inc. | Register change summary resource |
US6763397B1 (en) * | 1999-05-27 | 2004-07-13 | Sun Microsystems, Inc. | Fully lazy linking |
US7386839B1 (en) * | 2002-11-06 | 2008-06-10 | Valery Golender | System and method for troubleshooting software configuration problems using application tracing |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US8775824B2 (en) * | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US9645949B2 (en) * | 2008-07-10 | 2017-05-09 | Cambridge Consultants Ltd. | Data processing apparatus using privileged and non-privileged modes with multiple stacks |
JP4886063B2 (ja) * | 2009-12-04 | 2012-02-29 | 株式会社エヌ・ティ・ティ・ドコモ | 状態報知装置、状態報知方法及びプログラム |
US8850557B2 (en) * | 2012-02-29 | 2014-09-30 | International Business Machines Corporation | Processor and data processing method with non-hierarchical computer security enhancements for context states |
US9477834B2 (en) * | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
CN102722440B (zh) * | 2012-06-07 | 2017-03-15 | 中兴通讯股份有限公司 | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 |
CN102724195B (zh) * | 2012-06-20 | 2015-12-02 | 华为技术有限公司 | 访问请求跟踪方法和相关装置 |
JP2014089644A (ja) * | 2012-10-31 | 2014-05-15 | Toshiba Corp | プロセッサ、プロセッサ制御方法及び情報処理装置 |
CN103927191B (zh) * | 2013-01-11 | 2017-05-24 | 北京阿里巴巴云计算技术有限公司 | 函数调用的资源配置方法和装置 |
JP6067449B2 (ja) * | 2013-03-26 | 2017-01-25 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
US9952887B2 (en) * | 2014-06-23 | 2018-04-24 | Vmware, Inc. | Device simulation in a secure mode supported by hardware architectures |
-
2015
- 2015-07-15 GB GB1512367.2A patent/GB2540388B/en active Active
-
2016
- 2016-05-26 EP EP16726389.6A patent/EP3308314B1/en active Active
- 2016-05-26 US US15/739,825 patent/US10503932B2/en active Active
- 2016-05-26 JP JP2018500364A patent/JP6921800B2/ja active Active
- 2016-05-26 WO PCT/GB2016/051526 patent/WO2017009597A1/en active Application Filing
- 2016-05-26 CN CN201680039960.6A patent/CN107735791B/zh active Active
- 2016-05-26 KR KR1020187003191A patent/KR102509365B1/ko active IP Right Grant
- 2016-07-12 TW TW105121857A patent/TWI721996B/zh active
-
2017
- 2017-12-07 IL IL256164A patent/IL256164B/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970246A (en) * | 1997-09-11 | 1999-10-19 | Motorola Inc. | Data processing system having a trace mechanism and method therefor |
TW201232393A (en) * | 2011-01-13 | 2012-08-01 | Advanced Risc Mach Ltd | Tracing of a data processing apparatus |
US20140373171A1 (en) * | 2013-06-12 | 2014-12-18 | Arm Limited | Security protection of software libraries in a data processing apparatus |
TW201503148A (zh) * | 2013-07-01 | 2015-01-16 | Mstar Semiconductor Inc | 記憶體信號的動態相位追蹤方法及其相關控制電路 |
Also Published As
Publication number | Publication date |
---|---|
CN107735791B (zh) | 2021-09-07 |
GB201512367D0 (en) | 2015-08-19 |
TW201702890A (zh) | 2017-01-16 |
US10503932B2 (en) | 2019-12-10 |
EP3308314A1 (en) | 2018-04-18 |
KR20180029054A (ko) | 2018-03-19 |
JP2018524731A (ja) | 2018-08-30 |
GB2540388B (en) | 2019-01-23 |
US20180373898A1 (en) | 2018-12-27 |
IL256164B (en) | 2020-03-31 |
EP3308314B1 (en) | 2020-05-06 |
KR102509365B1 (ko) | 2023-03-13 |
GB2540388A (en) | 2017-01-18 |
WO2017009597A1 (en) | 2017-01-19 |
IL256164A (en) | 2018-02-28 |
JP6921800B2 (ja) | 2021-08-18 |
CN107735791A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI721996B (zh) | 安全模式狀態下之資料存取追蹤 | |
JP6185487B2 (ja) | ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 | |
US10025923B2 (en) | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains | |
EP2888692B1 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
WO2013117899A1 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
WO2011101609A1 (en) | Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag | |
US20130212700A1 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
US20220366036A1 (en) | An apparatus and method for handling exceptions | |
JP6920286B2 (ja) | 例外処理 | |
TWI748934B (zh) | 資料處理設備中的系統錯誤處置 | |
CN108985098B (zh) | 数据处理器 | |
CN109063516B (zh) | 数据处理器 | |
CN106919366B (zh) | 实现堆栈自适应保护的处理器 | |
CN109033842B (zh) | 数据处理器 | |
JP2005209178A (ja) | メモリ保護装置、メモリ保護方法及びメモリ保護プログラム |