TW200411555A - Switching between secure and non-secure processing modes - Google Patents

Switching between secure and non-secure processing modes Download PDF

Info

Publication number
TW200411555A
TW200411555A TW092132187A TW92132187A TW200411555A TW 200411555 A TW200411555 A TW 200411555A TW 092132187 A TW092132187 A TW 092132187A TW 92132187 A TW92132187 A TW 92132187A TW 200411555 A TW200411555 A TW 200411555A
Authority
TW
Taiwan
Prior art keywords
security
mode
monitoring
processor
secure
Prior art date
Application number
TW092132187A
Other languages
English (en)
Other versions
TWI275997B (en
Inventor
Simon Charles Watt
Christopher Bentley Dornan
Luc Orion
Nicolas Chaussade
Lionel Belnet
Stephane Eric Sebastien Brochier
Original Assignee
Advanced Risc Mach Ltd
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
Priority claimed from GBGB0226874.6A external-priority patent/GB0226874D0/en
Priority claimed from GB0303494A external-priority patent/GB0303494D0/en
Application filed by Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW200411555A publication Critical patent/TW200411555A/zh
Application granted granted Critical
Publication of TWI275997B publication Critical patent/TWI275997B/zh

Links

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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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
    • G06F12/1425Protection 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 the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection 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 the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual 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)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Description

200411555 玖、發明說明: 【發明所屬之技術領域 本發明相關於一 一資料處理系統中, 控制。 資料處理系統。本發明尤指相關於在 安全性和非安全性處理模式間的轉換 【先前技術】 為執行在資訊處理設備所载入的應用,一典型的資訊 _ 處理設備包括處理器。在一作業系統的控制下操作該處理 器。被要求以執行任何特定應用的資料通常儲存在資訊處 理設備的一記憶體之内。人們將了解,資料可以包含在該 應用之内所含有的指令和/或在關於處理器那些指令的執 行期間所使用的實際資料值。 此處有許多例子,當該些應用所使用之至少一資料是 敏感資料時,其不應該由能夠在該處理器上執行的其他應 用所存取。舉一示例’當資訊處理設備是智慧卡時’而該 些應用之一是使用敏感資料的一安全性應用’例如’安全 0 金鑰,用以執行驗證、認證、解密等等。在此類的情況下, 吾人很清楚確保此類敏感資料的安全之重要性’使其不能 被可能在該資料處理設備中载入的其他應用所存取’例如 企圖存取上述安全性資料之已被载入的駭客應用。 在習知系統中’確保作業系統能提供足夠的女全性以 確保在該作業系統的控制中所執行的其他應用不能存取一 應用的安全性資料通常是作業系統開發者的工作。然而’ 200411555 如果系統變得 複雜,而此類 變得愈益困難 尋求針對 提供保護之 2002/0007456 6,282,657 B 。 因此,為 有的此類安全 【發明内容】 本發明之 含·· 可在多數 網域包含一安 括: 在上 在上 和 一監 當上述處 述程式存取安 式下操作時所 在該安全 更複雜, 的情況下 般傾向是作業系統變得更大和更 讓作業系統本身確保足夠安全性 敏感負料提供安全& 女坌性儲存和針對惡意程式碼 系統示例係論述於美國專利申請案us A1和美國專利US 6,292,874 B和仍 尋求維護在資料處理設備的記憶體之内所含 _ 性資料的安全性,亟需提供一改進的技術。 一態樣提供用以處理資料之設備,該設備包 模式及多數網域中操作之一處理器,該多數 全性網域和一非安全性網域,該多數模式包 述文全性網域中之至少一安全性模式; 籲 述非安全性網域中之至少一非安全性模式; 控模式,其中 理器正在一安全性模式下執行一程式時,上 王丨生ί料,其為當該處理器在一非安全性模 不能存取的;和 性模式和該非安全性模式間的轉換係經由上 4 200411555 述 作 間 之 其 生 藉 式 在 性 務 供 全 構 限 性 控 分 全 分 以 監控模式發生,該處理器 ^ y 。卩分在該監控模式下 執行一監控程或以瞢拽太 飞下 的轉換。 ^模式和該非安全# 〇 %又主性和非安 間操作以控制在安全性和非 .f ., F文王性模式之間的轉換 :,透過執行此類交換方法,若給予愈高的彈性,、 :多安全上的潛在弱點。本發明透過提供一系統盆 一監控模式方能在任何安全性模^任何非 之間進行所有交換’以滿足上述需求。本發明可以 &控模式中執行或交替使用自監控模式轉換到—此 模式(例# ’安全性權限模式)執行與轉換相關的二 ,例如内容儲存/還原。因&,不能直接或間接 的監控模式或安全性核心之安全性,亦不可能在一 代弋#安全性模式之間進行未被授權的轉換。 也允許使用相對簡單的監控模式,因為它的權限可 7在2全性網域和非安全性網域之間支援所欲之轉 般來忒瓜控模式愈簡單,則會遭到安全性破壞的 弱點愈少。監控程式(核心)至少部分以監控模式操 制安全性和非安全性網域之間的轉換_該監控核心 可以在女全性權限模式中執行而非監控模式。 由JHL控模式所提供之一梯作示例係它在安全性和非 性網域之間之轉換管理的一部分為監控程式(其至少 在監控模式執行,但是可能需要轉換至安全性權限模 執订内容儲存/還原或其他的操作)可操作以清除在安 操 模 式 尤 產 須 模 全 全 任 提 安 架 被 0 在 以 部 安 部 式 全 200411555 性網域和非 塊(register 出現在安全 疏失而允許 本發明 能實施例。 之間轉換所 的硬體需求 安全性網域 安全性 同方法開始 發出至在監 位置之一以 為少數之固 相對地 性網域中, 轉換至安全 轉換並允許 权式具有一 本發明 叫一固定點 本發明 之意圖程式 間改變系統 安全性之間共用的處理 bank)。當轉換至非安洤 性網域中的資料被遺留 該資料在非安全性網域 提供區別非安全性和安 該方法具有減少在安全 需時間之優點,但是, 以及亦可能造成將資料 時所造成之不便。 網域和非安全性網域之 ,但是,它們都共用所 控模式中操作的監控程 提供服務。將進入監控 定點,可以增加安全性 ,在該安全性網域安全 安全性權限模式轉換至 性使用者模式之一般機 簡化在監控模式中執行 與該監控模式類似之安 之一較佳實施例,轉換 之形式進行。 之另一較佳實施例,由 觸發轉換,以在安全性 ,例如透過寫入所儲存 器的至少一部份登錄區 ‘性網域時,其防止任何 在那些登錄中,並因此 中變成可存取者。 全性登錄之一選擇性可 陸、’罔域和非安全性網域 與其相關之代價是額外 從非安全性網域傳遞至 間的轉換可能以許多不 需之特徵,即它們都被 式之内之一或多數固定 程式之可能進入點控制 〇 性權限模式中,在安全 監控模式係採用應用於 制,該方法有助於内容 之軟體。該安全性權限 全性狀態。 係在監控程式之内以呼 任何除了監控模式之外 網域和非安全性網域之 的安全性狀態變數或程
6 200411555 式 之 排 數 時 狀態變數。可·丨、,丄 了以由硬體捕捉此類意圖 内對一固定點觸發一呼叫。 並用於在監控程式 ^ it if y- 、代崎,則可以S:器在回到非安全性模式時,儲存-還原之程式* 以使程序在停止點重新繼 ,Λ T ^ ^ ^ . 田口到非女全性模^ 為了而要還原之-或多數的處理器狀態值 類似之狀態儲存。 Κ 可 應 異 的 重 續 慮 種 由 全 系 某 控 能會發生 付該異常 常發生的 轉換係經 新開始該 該安全性 之安全性 在安全 方法係使 規定安全 性狀態旗 $之一問題是當該處理器在—安純模式中㈣ 異常,因此需要轉換為一非安全性模式以正与 。在此類狀況中’ f該系統在安全性模式時之 點,一般在該安全性模式和該非安全性模式間 由監控模式,而該監控模式係用以在適當的點 安全性程序,而"賴㈣安全性模式重新繼 模式程序,因為其允許非安全性模式獲知所考 情境,例如,程式計數值或處理器狀態登錄值, 性網域和非安全性網域之間提供清楚區分的一 一安全性狀態旗標與該系統相關。而後可以箱 性狀態旗標在監控模式中只可寫入,而將對安 標的控制集中在該監控模式中。
本發明可能使用系統之較佳方法提供一非安全性作業 統,當在非安全性模式和一安全性作業系統(其也許是在 些情況下之簡化的安全性核心)中操作時控制處理器。監 程式可以有助於作為安全性作業系統的一部分。 本發明之較佳實施例確認在控制安全性網域和非安全 7 200411555 性網域之間的夺拖往 i 、 月匕在監控程式中斷時出現之潛在 的系統安全弱,點。因此’在本發明之較佳實施例中,在監 控棋式中時,至少-種能夠觸發異常處理(正常程式流程的 中斷)的異常條件會失效。 飞的 可以透過監控模式以改進在安全性網域之間轉換的逮 度。本發明之一些實施例提供專屬的登錄(影子登錄 Wa^regisUrs)),當進入監控模式,其代替在處理器的 一登錄區塊中所對應之—般目的登m,此類專屬的 登錄可以立即用於龄-鞀 一 、控%式,以允許該監控程式避免在執 行自己的操作前需要德在 、 要儲存既有登錄内容,並因此減少為完 成該父換所需花費在於批纟 、 買隹^控杈式中的時間。當異常在監控模
式中失效時,減少雪i I 要化費在監控模式中的時間特別重要。 整體而言,當里當卩‘士 ㊉(如中斷)曝露系統的安全性之潛在 弱點時,在系統環境中虚 兄^處理異常的方法是非常重要的。為 了讓系統對特定狀況的里| 兄的異吊作出適合的回應方法,本發明 之較佳實施例提供儲在—+夕& 保存或多數參數之異常補捉遮罩登錄 (Exception Trap Ma ςν · 、 k register),該參數設定當異常發生 時’應由該模式中執杆的思am 轨订的異ΐ管理器所處理之異常和由目 前網域之内的一模放由袖> k β 、Α中執仃的異常管理器所處理之異常。 因此,依據所發生之里堂錮荆 / T頰型,可以強迫系統轉換為安全 性網域以處理該異常,戎可L';嘴加 丄 $ 了以選擇性地留在現有的、可能 非安全性的網域裡。該龄批描山 皿控板式有能力轉換安全性網域並 可以看作一安全性模式,& 、式 因為在該模式下安全性狀態旗標 是可設定的’以及該李鲚的敕 糸、、先的整體安全性可以看作存在於安 8 200411555 全性監控模式下。透過一些 看作該安全性狀態旗標之一 模式下。某些異常可以設定 擇性地,可以一異常可以留 在系統現有的安全性或非安 本發明之較佳實施例提 指令’其能夠使硬體對它作 定的位置執行監控程式。此 之形式,係一種轉換軟體中 中斷向量的模式。透過使用 監控模式可能進入之一主要 使該硬體以一清楚且嚴謹定 點起始執行一監控程式。 吾人將了解,在安全性 提供許多不同的處理模式。 要提供相同的模式。合適模 統模式、一中止(Abort)模式 模式、一快速中斷模式和一 在較佳實施例中,處理 其不能由上述安全性網域改 J權限安全性模式操作, 自上述權限安全性模式改變 需程式執行點之重導。 方法能夠把系統的安全性狀態 "〇Rn ’而不論是否系統在監控 為強迫在監控模式下處理。選 給一異常管理器處理,其無論 全性模式皆可操作。 供一特殊目的之監控模式進入 出回應以進入監控模式和在預 類監控模式進入指令能夠採取 斷之模式及一相關之轉換軟體 此類指令,其特別有助於安排 方法和安排該指令的行為以迫 義之方法回應,例如在一固定 網域和非安全性網域之内可以 在上述兩種網域中,不一定需 式的示例是一監督模式、一系 未疋義異常模式、一中斷 使用者模式。 器可以在上述安全性網域之内 變至上述非安全性網域,以至 上述權限安全性模式具有允許 至上述監控模式之權限,而無 責管理任一方向的安全性網域和非
一監控程式主要 9 200411555 安全性網域之間的轉換。監控 執行。例如,監控程式可以一 在一安全性模式中執行。一安 中執行。透過允許權限安全性 可能增加該安全性核心的複雜 具有傳送到安全性核心的功能 化能提升它的安全性,因為更 只做其打算做的事,而這是重 非安全性網域之間。然而該安 執行。監控程式能夠藉由轉換 全性權限模式的狀態,既然它 在較佳實施例中,可操作 在安全性網域和非安全性網域 監控模式外是不可寫入的存取 在監控模式之外,其存取可能 程式至少部分在監控模式中 部分在監控模式中和一部分 全性核心在權限安全性模式 模式轉換為監控模式,即使 性,但可以更簡化寫入一些 之監控程式。使監控程式簡 易證明其為安全性的:即, 要的,因為它涵蓋安全性和 全1*生核心僅在安全性網域中 至那些預示(bodes)以儲存安 之後會轉換回監控模式。 處理器更換一安全性旗標以 之間轉換,該安全性旗標在 。吾人將了解,安全性旗標 也可能不是「可讀取。
本發明的技術允許自權限安全性模式轉換至監控模 式,而無需執行程式重導,較佳的實施例亦回應一軟體中 斷指令’以轉換至監控模式’但是,纟這種情況下,會有 與軟體中斷指令相關的一中斷向量所設定的程式執行點之 一重導。比起由權限安全性模式所提供之進入,該軟體中 斷機制較缺乏彈性’因為該軟體中斷機制程式流程被迫經 過中斷機制。自安全性或非安全性權限模式哞叫該軟體中 斷機制具有較低的安全性風險1為能夠密切控制中斷常 式的程式碼。 10 200411555 亦有可能安全性網域僅包括權限安全性模式,較佳實 施例通常包括至少一權限非安全性模式,其中沒有程式執 行點的一重導,則不能轉換至監控模式。在安全性網域内 之多種模式有助於適當建構和組織在安全性網域之内執行 的一作業系統。 本發明之較佳實施例中提供處理器進入一權限安全性 模式的重設。在一權限安全性模式中重設有許多不同的優 點,例如在非安全性環境中允許非安全性知覺的作業系統 較易的反向相容性。藉由在一權限安全性模式中重設,此 類非安全性敏感的系統能夠保留在安全性網域中,即使它 不需要安全性操作。當系統具有安全性知覺時,在權限安 全性模式中開機亦可能允許大量程式碼,並支援由權限安 全性模式之内的安全核心所提供之開機操作,其使得在監 控模式中執行的監控程式保持一簡單形式,據以能夠更易 於保障它的安全性。 為了在監控模式和權限安全性模式之間允許適當的均 衡,較佳實施例為監控模式中的可存取的記憶體區域亦能 在權限安全性模式中存取。 本發明之另一態樣提供用以處理資料之一方法,該方 法包含下列步驟: 以可在多數模式及多數網域中操作之一處理器執行一 程式,該多數網域包含一安全性網域或一非安全性網域, 該多數模式包括: 在上述安全性網域中之至少一安全性模式; 11 200411555 和 在上述非安全性網域中之至少 一非安全性模式; 一監控模式,其中 當上述處理器正在一安全 述程式存取安全性資料,其為 式下操作時所不能存取的;和 性模式下執行一程式時,上 當該處理器在一非安全性模 在該安全性模式和該非安全性模式間的轉換係經由上
述監控模式進行,該處理器至少部分在該監控模式下執行 -監控程式以管理在該安全性模式和該非安全性模間的轉 換0 【實施方式】 第一圖為依據本發明之較佳實施例描述一資料處理設 備之方塊圖。该資料處理设備與一處理器核心1 〇共同作 用,其中提供一安排以執行一系列指令之算術邏輯單元 (ALU,arithmetic logic unit)16。該 ALU 16 所需要的資料 係在一登錄區塊1 4之内儲存。為核心丨〇提供各種監控功 能以截取指示處理器核心活動的診斷資料。舉一示例,提 供一嵌入式追蹤模組(ETM,Embedded Trace Module)22, 依據定義欲追蹤之活動的ETM 22之内的某些控制登錄26 内容,產生該處理器核心某些活動的即時追蹤。該些追蹤 信號通常被輸出至一追蹤緩衝器,此處能夠在其後分析它 們。提供一向量中斷控制器2 1以管理可以由各種週邊提供 的多數中斷服務(本文不予贅述 12 200411555 尤有甚者,如第一圖所示,能夠在核心1 〇之内提供的 另一監控功能性是一偵錯功能,在資料存取設備之外的一 偵錯應用能藉由連結一或多數掃描鏈 1 2的連接測試存取 群組(JTAG,Joint Test Acces Group)控制器 18 與核心 1〇 通訊。關於處理器核心1 0各部分的狀態資訊可以藉由該些 掃描鏈12和JTAG控制器18輸出至外部偵錯應用。一在 線模擬器(ICE, In Circuit Emulator)20係用作在登錄24之 内,儲存確認何時起始和停止偵錯功能之情況,和因此, 例如,被用來儲存斷點(breakpoint)、 監視點 (watchpoints)、等等。 核心1 0係藉由記憶體管理邏輯3 0與一系統匯流排4 0 連結,該記憶體管理邏輯3 0係被安排為管理核心1 0所發 出的記憶體存取請求,用以存取在資料處理設備的記憶體 位置。可以藉由直接連接至系統匯流排40之記憶體單元, 例如,第一圖所示之快取38和緊接記憶體(TCM,Tightly Coupled Memory)36部署某些部分的記憶體。也可以為存 取此類記憶體提供額外的裝置,例如,直接記憶體存取 (DMA)控制器32。通常,將提供各種控制登錄34以定義 晶片各種元件的某些控制參數,此處,這些控制登錄也稱 作辅助處理器15(CP15)登錄。 可以藉由一外部匯流排界面42使含有核心1 0的晶片 與一外部匯流排7 0 (例如依據由a R M L i m i t e d所發展之「先 進被控制單元匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)」規格所操作的一匯流排)連結並可以 13 各種裝置連接至外部匯流排70。這些 =位信號處理器(,)的主控裝置,以及各種受控;括置例: 開機唯璜記憶體44、螢幕驅動器46、外部纪憶俨 輪入/輸出⑽)界面60或金餘儲存單元“。在第:圖戶“ = = 可視為是資料處理設備之全部記憶體的: 備… 如,開機唯讀記憶體44將形成資料處理费 P寸址记憶體的部分,外部記憶體%亦然。 Ο 士螢幕驅動1 46、輸入輸出界面60矛口金鑰健存單 元64之裝置都 綠錯存早 ^ 刀別包括例如登錄或缓衝器48、62、66之 蜀立可尋址内部儲在 立 儲存70件,其作為資料處理設備全部記憶 、卩刀如稍後將更詳細討論者,記憶體的一部分, 例如,外部記愔舻 憶體存取控制:二:部分將被用來儲存定義相關於記 ^ 』之一或多數的分頁表58。 /·、、♦該項技藝者將了解,通常替外部匯流排70提供判 ( rb1^)和解碼器邏輯54,該判優器被用來對由多數 主控裝置所發出的多數記憶體存取請求進行判_,例如,
10 DMA 32、DSP 5〇、DMA 52、等等,而將用該解 馬器來決定外部匯流排上的受控裝置所該處理之任何特定 記憶體存取請求。 在一些實施例中,可以對含有核心10的晶片外部提供 卜4匯/爪排’在其他實施例中,將整合晶片(on-chip)以對 該外部匯流排提供核心i 〇。其比在外部匯流排是非整合晶 (ff chip)時更有利於保持外部匯流排上的安全性資料 之安全性,當外部匯流排是非整合晶片時,可以用資料加 14 200411555 密技術來增進安全性資料的安全性。 楚 〇 圖圖示在具有一安全性網域和一非安全性網域的 處里系統上執行的各種程式。為系統提供至少部分在一 皿控模式中執行的一監控程式72。在該示例性實施例中, 安全性狀態旗標僅在監控模式之内是可寫入的存取和可以 由該監控程式72寫入。該監控移式72負責管理在安全性 網域和非安全性網域之間任一方向之所有轉換。以核心外 的觀點來看,監控模式總是安全的而監控程式係在安全性 記憶體中。 在非安全性網域之内,提供/非安全性作業系統74 和與該非安全性作業系統74共同作用的多數非安全性應 用程式7 6、7 8。在安全性網域中,提供了一安全性核心輕
式8 0。該安全性核心程式8 〇能夠視為形成一安全性作業 系統。通常將設計此類安全性核心程式8 〇為僅提供那趄對 於處理活動所必須的功能,以使安全性核心8 〇盡可能小而 簡單,因為如此才易於確保安全性。圖示與安全性核心8 〇 共同執行之多數安全性應用82、84。 第3圖圖不與不同安全性網域相關的處理模式的〆矩 陣在該特疋不例巾’該處理模式就安全性網域而論是對 稱的,而因此模式1和模忐 在系統中監控模式具有安 在示例性實施例中是授權以在 之間的任一方向轉換的唯一模 全性存取的最高的層級,和 非安全性網域和安全性網威 式。因此,所有網域轉換都 15 现控模式和監控程式 200411555 在監控模式之内,藉由 行轉換。 第4圖圖示另一組非安全性網域處理卷 以及安全性網域處理模式a、b、c。相對於 安排’第4圖圖示-些處理模式可能不出彩 全性網域。再次圖示監控模式86,其為涵 和安全性網域。能夠把監控模式86視為 式,因為可以在該模式中改變安全性狀態 控模式中的監控程式72自己有能力設定 標,整體而言,其在系統之内有效地提供 級。 第5圖圖不就安全性網域而言處理模式 在該安排中,安全性和非安全性網域兩者禾 域皆被確認。該進一步的網域也許是以一赛 安全性網域或非安全性網域相互作用的一赛 統的其他部分獨立出來,因而就其本身而t 的問題就不重要了。 吾人將了解一處理系統,例如通常為一 登錄區塊88,其中可以儲存運算元值。第f 計人員的一示例性登錄區塊之一模組檢視, 處理模式中的某些登錄數字所提供之專屬j 第6圖的示例是習知arm的登錄區塊的 ARM Limited(英國劍橋)的arm 7處理器中 提供以每一處理模式的一專屬儲存程式狀食 72的執行而進 式 1、2、3、4, 第3圖的對稱 ,在一或其他安 .非安全性網域 安全性處理模 .標以及在該監 :安全性狀態旗 •全性的終極層 ,的另一安排。 r 一進一步的網 [不需要與上述 I方法,自一系 •,它屬於何者 -微處理器提供 丨圖圖示程式設 其具有為某些 卜錄。尤其是, 擴充(例如,在 所提供者)其被 |、登錄、一專屬 16 200411555 堆叠指標登錄和一專屬鏈結登錄r14,但是在這種情況 下由一監控模式所供應者擴充。如第6圖所示,快速中 斷模式具有被提供的額外專屬登錄,以使在進入上述快速 中斷模式時,不需要儲存然後自其他模式還原登錄狀況。 監控模式亦可以在選擇性的實施例中以一種類似快速中斷 模式的方法被提供以專屬的進一步登錄,用以加快一安全 性網域轉換的處理速度和減少與此類轉換相關的系統等待 時間。 第7圖圖示另一實施例,其中以二種完全和分離登錄 區塊的形式提供登錄區塊88,其分別用於安全性網域和非 安全性網域。這種方法將安全性資料儲存在可在安全性網 域操作的登錄中,當對非安全性網域進行轉換時,能夠防 止資料變為可存取。然而,如果允許並為所欲,藉由使用 快速而有效的機制將其放在非安全性網域和安全性網域皆 可存取的登錄中,上述安排阻礙將資料自非安全性網域^ 遞至安全性網域的可能性。 具有安全性登錄區塊的一重要優點是避免在從一情境 轉換至另一情境前需要清除登錄内容。如果等待時間不θ 特殊問題,可以使用沒有安全性網域情境的重複登錄的I 簡化硬體系統,如第6圖。監控模式負責從一網域轉換為 另一網域。由一監控程式至少部分在監控模式中執行還原 内容、儲存先前内容、以及清除登錄。該系統之行為因此 像是一虛擬化模組。這種類型的實施例將在下文中進一步 討論。在本文中論及安全特徵時,應該參考,例如, 17 200411555 7的程式設計人員模組。 處—琢 IL模式(Processor Modes) 相對於在安全性情境中的多數模式,相同的模式支援 安全性和非安全性網域兩者(請參考第8圖)。監控模式知 道核心的目前狀態,不論是安全性或非安全性(例如,當讀 取自所儲存的一 S位元時,其係一輔助處理器設定登錄)。 在第8圖,只要一 SMI(軟體監控中斷指令,Software Monitor Interrupt instruction)發生,核心進入監控模式, 以適當地自一情境轉換到另一情境。 參考第9圖,其中SMIs在使用者模式是被允許的: 1 · 排程發動執行緒1。 2· 執行緒1需要執行一安全性功能= = >SMI安全性呼· 叫,核心進入監控模式。在硬體下控制現有 P C,而 CPSR(current processor status register)被儲存在 R14一mon,以及 SPSR一mon(saved processor status register for the monitor mode)和 IRQ/FIQ 中斷失效。 3. 監控程式進行下列任務: 鲁設置S位元(安全性狀態旗標)。 • 將至少R14_mon和SPSR—mon儲存在堆疊中,在 一安全性應用執行時,若異常發生才不致於失去非 安全性内容。 籲檢查是否有一新執行緒要發動:安全性執行緒i。 一機制(在一些示例實施例中,藉由執行緒ID表) 200411555 指不執行緒1在該安全性情境中是啟用的。 • IRQ/FIQ中斷再次啟用。一安全性應用此時能夠以 安全性使用者模式起始。 4·執行安全性執行緒1至完成,而後(將SMI)發展出監 控程式模式的「自安全性返回」功能(當核心進入監控 模式時,則IRQ/FIQ中斷失效)。 自女全性返回(return fr〇m secure)」功能進行下列任 務:
*指示完成安全性執行緒1 (例如,在一執行緒ID表 的情況下,從該表移除執行緒1)。 魯從堆疊非安全性内容還原並清除需要的登錄,以使 一旦返回非安全性網域,則不能讀取任何安全性資 料。
•然後,以一 SUBS指令(它使程式計數還原為正確 的點和更新該些狀態旗標)回到非安全性網域,(從 還原的R14一 mon)還原PC和(從spSR〜m叫還原 CPSR。所以,在非安全性網域中的返回點是在執 行緒1先前所執行的SMI指令之後。 6 ·執行執行緒1至結束’然後交回給排程。 一些上述功能性也許根據特定實施例分別在監控程弋 和安全性作業系統間出間。
在其他實施例中,可以要求不允許SMIs出現在使用 者模式中D 19 200411555 安全性情境的進入 重設 當一硬體重設發生,使MMU失效和ARM核心(處理 器)以S位元集發展出安全性監督模式。如為所欲,一旦安 全性開機終止,至監控模式之SMI可以被執行而監控可以 轉換至非安全性情境的OS(非安全性svc模式)。如果希望 以使用先前的OS,它能夠在安全性監督模式中只是開始而 忽略安全性狀態。 SMI指令 指令(轉換軟體中斷指令的一模式)能夠從非安全性網 域中的任何非安全性模式呼叫(如上文所述,其可以希望將 SMIs限制為權限模式),但是,由相關的向量所決定的目 標進入點總是固定的並在監控模式之内。它由SMI管理器 決定發展出必須執行的適當安全性功能(例如,由以指令藉 遞之運算元控制)。 從非安全性情境傳遞參數至安全性情境,能夠藉由共 用在一第6圖類型登錄區塊之内的登錄來執行。 當一 SMI發生在非安全性情境,ARM核心可能在硬體 進行下列動作: • 發展出SMI向量(在安全性記憶體存取中是允許 的,因為你現下在監控模式中)至監控模式 •儲存 PC 至 R14 —mon 和 CPSR 至 SPSR—mon 200411555 • 在監控模式中開始執行安全性異常管理器(如果有 多執行緒,還原/儲存内容) 籲發展出安全性使用者模式(或另一模式,例如SVC 模式)以實施適當的功能 • 當該核心在監控模式下,IRQ和FIQ失效(等待時 間增加) 安全性情境出口 有二種退出安全性情境的可能: • 該安全性功能完成而吾人返回先前呼叫該功能的 非安全性模式。 • 由非安全性異常中斷了安全性功能(例如, IRQ/FIQ/SMI)。 安全性功能的正常結束 安全性功能正常終止而我們需要還原正好在SMI以後 的指令,在非安全性情境重新繼續一應用。在安全性使用 者模式中,一 "SMI”指令被執行以返回具有與「自安全性 情境返回」例式相對應的適當參數的模式。在該階段,登 錄被清除以在非安全性和安全性情境之間避免資料的洩 漏,而後非安全性内容之一般目的登錄被還原以及以它們 在非安全性情境中所獲得的值更新非安全性區塊登錄。 R14 — mon和 SPSR —mon因此在 SMI之後,藉由執行一 "MOVS PC,R14”指令獲得適當值以重新繼續非安全性應 21 200411555 用〇 起因於非安全性異常之安全性功能的退出 該狀況下,安全性功能未完成而必須在進入非安全性 異常管理器前儲存該安全性内容,無論如何需要處理該些 中斷·。 安全性中斷 · 對於安全性中斷有幾種可能性 依據下列兩點,提出兩種可能的解決方案: • 其為何種中斷(安全性或非安全性) ❿當IRQ發生時,核心處於何種模式(在安全性或在 非安全性情境中) 解決方案一 在該解決方案中,需要以兩種不同的方式支援安全性 和非安全性中斷。 · 當在非安全性情境中,如果 .· 一 IRQ發生,則當在ARM核心(例如ARM 7)時, 核心進入IRQ模式以處理該中斷。 籲一 SIRQ發生,則核心進入監控模式以儲存非安全 性内容,而後進入一安全性IRQ管理器以處理該 安全性中斷。 22 200411555 當在安全性情境中,如果 •一 SIRQ發生,則核心進入安全性irq管理器 核心不退出該安全性情境。 鲁 一 IRQ發生,核心進入儲存安全性内容之監 式,而後進入一非安全性IRQ管理器,以處 非安全性中斷。 另言之,當不屬於目前情境的中斷發生時,核心 進入監控模式,否則其停留在目前情境中(請參考I 圖)。 IE Q發生在农全性愔境 請參考第11A圖: 1 ·排程發動執行緒i。 2·執行緒1需要執行一安全性功能=>SMI安全 叫’核心進入監控模式。目前PC和CPSR儲存在R14 和 SPSR一mon 中,使 irq/FIq 失效。 3·監控管理器(程式)進行下列任務: •設置該S位元。 *儲存至少R14一mon和SPSR一mon於堆疊中(亦 輸入其他登錄),以使在安全性應用執行時, 異常發生才不會失去非安全性内容。 春檢查是否有一新執行緒要發動:安全性執行乡 一機制(藉由執行緒ID表)指示執行緒1在該 性情境中是啟用的。 。該 控模 理該 直接 ί 10 性呼 mon 可能 如果 安全 23 200411555 _安全性應用此時能夠以安全性使用者模式起始。而 後IRQ/FIQ再次啟用。 4·當安全性執行緒1執行時、一 IRq發生。該核心直 接跳入監控模式(專屬向量)和在監控模式中的SPSR_mon 之R14一mon和CPSR健存現有pc,(而後使IRq/FIq失效)。 5 ·必須儲存安全性内容,還原先前的非安全性内容。 監控管理器必預進入IRQ模式,以適當值更新 R14一irq/SPSR-irq,而後將控制交給非安全性irq管理器。 6. IRQ管理器提供IRQ服務,而後將控制交回給在非 安全性情境中的執行緒1。藉由還原SPRS jrq和R14」rq 為CPSR和PC,現下執行緒1广已經指向已被中斷的SMI 指令。 7_ SMI指令被再次執行(與2相同之指令)。 8.監控管理器察覺先前已中斷之執行緒,並將該執行 緒1内容還原,而後其在使用者模式中發展出安全性執行 緒1,指向該已經中斷的指令。 9·安全性執行緒1執行至其完成而止,而後在監控模 式(專屬於SMI)中發展出「自安全性返回」功能。 10.該「自安全性返回」功能進行下列任務·· •指示安全性執行緒1已完成(例如,在一執行緒ID 表的情況下,自該表移除執行緒1)。 •自堆疊非安全性内容還原並清除需要的登錄,以使 一旦返回非安全性情境無法讀取任何安全性資料。 #以一 SUBS指令回到非安全性情境,(自被還原的 24 200411555 R14 —mon)還原 PC 和(從 SPSR-mon)還原 CPSR。那 麼,在非安全性情境中的返回點應該是在執行緒1 中先前執行的SMI之後的指令。 11 ·執行緒1執行至結束,而後交回控制給排程。 在全性情墁路吐之SIRO 請參考第11 B圖: 1 ·排程發動執行緒1。 2.當安全性執行緒1執行時,一 SIRq發生。核心直 接跳至&控模式(專屬向量)並在監控模式中SPSR一mon的 R14一mon和CPSR儲存現有的Pc,而後使irq/FIq失效。 3 ·非安全性内容必須被儲存,而後核心進入安全性 IRQ管理器。 4·該IRQ管理器提供SIRq服務,而後以適當參數用 一 SMI將控制交回給監控模式管理器。 5.該i控管理器還原非安全性内容,因此一 suBS指 7使核、回到非安全性情境並重新繼續中斷的執行緒1。 6·執行執行緒1直到結束,而後將控制交回給排程。 第11A圖的機制具有提供進入安全性情境的一種決定 ί±方法的優點。然#,有一些問題與中斷優先權相關:例 如,虽一 SIRQ在安全性中斷管理器中執行時,可能發生 一具有較高優先權的一非安全性IRQ。一旦該非安全性 IRQ完成,有需要再次產生sirq事件,該核心才能夠重 新繼續該安全性中斷。 25 200411555 解決方案二 在該機制中(請參考第12圖)兩種不同或僅一種的腳 位(piη)可以支援安全性以及非安全性中斷。使用兩種腳位 以減少中斷等待時間。 當在非安全性情境中,如果 • 一 IRQ發生,核心進入IRQ模式,以處理該中斷, 如同在ARM7系統中。 ❿ 一 SIRQ發生,核心進入IRQ管理器,其中一 SMI 指令將使該核心發展出監控模式以儲存非安全性 内容,而後發展出一安全性IRQ管理器,以管理 該安全性中斷。 當在一安全性情境中,如果 • 一 SIRQ發生,核心進入安全性IRQ管理器。該核 心不退出該安全性情境。 • 一 IRQ發生,核心進入安全性IRQ管理器,其中 一 SMI指令將使該核心發展出監控模式(安全性内 容所儲存處),而後進入一非安全性IRQ管理器以 處理該非安全性中斷。
在安全性情境發生之IRQ 請參考第13A圖: 1.排程發動執行緒1。 26 200411555 2.執行緒1而要執行—安全性功能===>smi安全性呼 叫’核心進入監控模式。目前Pc和CPSR被儲存在R14一mon 和 SPSR一mon,使 IRQ/FIQ 失效 3 ·監控管理器進行下列任務: 籲設置S位元。 *在一堆疊中儲存至少R14-m〇n和SPSR一mon(其他 登錄亦然)’因此在安全性應用執行時,如果一異 常發生才不致於失去非安全性内容。 •檢查是否有一新執行緒要發動:安全性執行緒1。 一機制(藉由執行緒ID表)指示執行緒1在該安全 性情境中是啟用的。 *女全性應用此時能夠以安全性使用者模式起始。 IRQ/FIQ再次啟用。 4·當安全性執行緒1執行時、一 IRQ發生。核心直接 跳至安全性IRQ模式。 5.核心健存現有pc在Ri4」rq和SPSR—irq在CPSR。 IRQ管理器偵測其為非安全性中斷並以適當參數執行一 SMI以進入監控模式。 6 ·必須儲存安全性内容,還原先前的非安全性内容。 監控管理器藉由讀取該CPSR知道SMI來自何處。其也能 夠進入IRQ模式讀取r14 — irq/SPSR一irq,以適當地儲存安 全性内容。其也能夠在這些相同的登錄中儲存一旦完成該 IRQ例式必須還原的非安全性内容。 7. IRQ管理器提供irq服務,而後在該非安全性情境 27 200411555 中將控制交回給執行緒1。藉由還原SPRS_irq和R14_irq 至CPSR和PC,現下核心指向已經中斷的SMI指令。 8·再次執行SMI指令(如2之相同指令)。 9·監控管理器察覺先前中斷的該執行緒,並把該執行 緒1狀況還原。而後其在使用者模式中發展出安全性執行 緒1,指向已經中斷的指令。 10 ·安全性執行緒1執行到其完成,而後發展出「自 安全性返回」;在監控模式(屬專於SMI)中的功能。 11· 「自安全性返回」功能進行下列任務: •指示安全性執行緒1已完成(即,在一執行緒I d表 的情況下,自該表移除執行緒1)。 •從堆疊非安全性内容還原和清除所需要的登錄,因 此一旦吾人返回非安全性情境,不能夠讀取任何安 全性資訊。 籲以一 SUBS指令發展回到非安全性情境,(從 SPSR一mon)還原 PC 和(從 SPSR一mon)還原 CPSR。 在非安全性情境中的返回點應該是在執行緒!中 先前執行的SMI之後的指令。 1 2.執行緒1 2 3執行直到結束,而後交回給排程接手。 28 1
_忠全性情境發生的SIRO 請參考第圖: 2 排程發動執行緒1。 3 當安全性執行緒1執行時,一 SIRQ發生。 200411555 3·核心直接跳至IRQ模式,和儲存現有pc在R14— irq 及儲存CPSR在SPSR一irq。之後使irq失效。irq管理器 偵測其係一 SIRQ並一以適當參數執行一 SMI指令。 4 · 一旦在監控模式中’必須館存非安全性内容,而後 核心進入安全性IRQ管理器。 5·安全性IRQ管理器提供SIRQ服務例式服務,而後 以具有適當參數的SMI把控制交回給監控。 6.監控管理器還原非安全性内容,因此一 suBS指令 使核心回到非安全性情境和重新繼續中斷的IRQ管理器。 7·此時IRQ管理器可藉由執行一 SUBS回到非安全性 執行緒。 8 ·執行緒1執行到結束,而後把控制交回給排程。 參考第12圖的機制’不需要在許多中斷的情況下再次 產生SIRQ事件,但是不保證一定執行安全性中斷。 異-常向睪 至夕保留兩實體向量表(雖然自一虛擬位址來看,它們 看似一單一向量表)一供非安全性記憶體的非安全性情境 之用’供安全性記憶體的安全性情境之用(不可自非安全 性情丨兄存取)。用於安全性和非安全性情境之不同虛擬至實 體α己隐體映射’有效地允許相同的虛擬記憶體位址存取在 實體,己隐體中儲存的不同向量表。監控模式總是使用純粹 的記憶體映射以在實體記憶體中提供一第三向量表。 29 200411555 如果該些中斷依照第1 2圖的機制,對每一表格就會 如第圖所示之下列向量。該向量集在安全性和非安^有 記憶體是重複的。 異常 向量偏移值 對應模式 ^η 重設(Reset) 0x00 式(s位元组)'、^^ 未定義(Undef) 0x04 監控模式/未定義(Undef、·^ SWI 0x08 監督模式/監控模式 〜^^ 預取中止 (Prefetch Abort) OxOC '''''____ 中止核式(abort mode) 資料中止 (Data Abort) 0x10 ' ----- 中止模式(abort mode) IRQ/SIRQ 0x18 IRQ模式 FIQ OxlX FIQ模式 SMI 0x20 未定義(Undef)模式/監控掇古
Reset(重設)進入只存在於安全性向量表中。當一 Reset 在非安全性情境中執行時,核心硬體促使進入監督模式和 設定S位元,從而在安全性記憶體中才能存取該Reset向 量。 第1 5圖圖示分別應用於一安全性模式、一非安全性模 式和監控模式的三個異常向量表。上述異常向量表用異常 向量設計,以符合安全性和非安全性作業系統的需要和特 性。每一異常向量表都可以在CP15中具有一相關的向量 30 200411555 表基礎位址登錄’又該CP15在記憶體之内儲存指命該表 ^ 土礎位址。當一異常發生時,硬體將參考與系統的目 刚狀態對應之該向量表基礎位址登錄’以決定所使用的向 量表基礎位址,性地,應、用於不同模式之不同虚擬至 實體3己憶體映射,可用以區別儲存在不同實體記憶體位址 之一個不同向量表。如第16圖所示,在與處理器核心相關 的系、、充又定控制)辅助處理器(CP 15)中提供異常捕捉遮 罩。該異常捕捉遮罩登錄提供與各自異常類型相關的旗 鲁 標。該些旗標指示硬體是否應該為在其現有網域中相關的 異常而操作指導進行至向量,或應該促成轉換至監控模式 (其為一種安全性模式型態)而後依照在監控模式向量表中 的向量。異常捕捉遮罩登錄(異常控制登錄)只在監控模式 可寫入。在一非安全性模式中時,讀取存取亦可由異常捕 捉遮罩登錄所防止。由此可見,第16圖的異常捕捉遮罩登 錄不包括一重設向量的旗標,當該系統不被設定為總是如 同在女全性向量表所設定般,強迫其跳至安全性監督模式 中的該重设向量,以保證一安全性開機和反向相容性。由 · 此可見,在第15圖中,為了完整性,重設向量已經出現於 該向量表,而非安全性監督模式安全性向量表。 第16圖亦圖示異常捕捉遮罩登錄之中的不同異常類 型的旗標是可設計的,例如在安全性開機期間藉由監控程 式為之。選擇性地,一些或某些旗標若能在某些實施中由 實體輸入信號所提供’例如安全性中斷旗標SIRQ可以被 硬接為總是促使進入監控模式及執行對應的監控模式安全 31 細 411555 性中斷請求向量,當接收 園園- 女全性中斷信號時。第1 , 圖圖不,只有異常捕捉登錄 關7 』 旳邠刀與非安全性網域異當知 關,可程式位元的一類似 相 1 , 刀w破誕供給安全性網域里赍 吾人可以自上文了解, /… 常控制登錄旗桿,促使現夕層級中’硬體依據該些異 常管理器提供一中斷,&僅 二 二、式異 一"+ 八僅為所應用的第-層級控制。邀 一不例,亦可能有一異當 竿 性媒★昱赍A 、在女王性模S ❿該安全 f生模式異常向量係依照安全 的八宍承f理器,但此眛
安全性模式異常管理器由兮里皆 、“ 吊官里器由該異常的本質決定其由非安全 異常管理器來處理會比較好,及因此利用…指 換至非安全性模式並請求非安全性異常管理器。亦有可能 T峴餿Ί進仃非文全性異常管理器的起始, 但之後它執行把程序導引至安全性異常管理器或監控 異常管理器的指令。 、
第17圖是一流程圖,圖示之系統操作能支援與一新類 型異常相關的另一可能類型轉換請求。在第%步驟中,硬 體偵測意圖改變至監控模式之指令,當其在一現有程式狀 態登錄(CPSR)中指示時。當偵測得此類意圖時,則觸發一 新類型異常,它在這裡稱作CPSR違反異常。在第1〇〇步 驟’該CPSR違反異常的產生,導致對在監控模式之内之 一適當異常向量進行參照,而監控程式係在第1〇2步驟執 行,以處理該CPSR違反異常。 吾人將了解,除了支援先前所討論過的SMI指令外可 能提供如第1 7圖相關討論之在安全性網域和非安全性網 32 200411555 域 授 由 網 反 既 之 會 當 登 被 可 路 監 間 模 續 啟 間 旦 被 能 之間起始一轉換的機制。可以提供異常機制以回應未經 權之欲轉換模式的意圖,而所有經授權的意圖都應該藉 一 SMI指令進行。選擇性地,此類機制也許是在安全性 域和非安全性網域之間轉換的合法方法或可提供以赋予 向相容性,其具有(例如,可能企圖清除處理狀態登錄的) 除程式碼’即使並非真的在安全性網域和非安全性網域 間從事未經授權之轉換意圖。 如上所述,一般而言,當處理器在監控模式中操作時, 々中斷失效。之所以如此,是為了增進系統的安全性。 一中斷發生時,該時刻處理器的狀態被儲存在中斷異常 錄中,因此當中斷功能完成時,可以在中斷點重新繼續 中斷的功能之處理。如果在監控模式中允許該處理’其 能降低監控模式的安全性,可能造成安全性資料洩漏之 徑。因此,通常會令中斷在監控模式中失效。然而,在 ㈣式期間令中斷失效的結果是,增加了中斷等待的時 如果處理器執行功能的狀離去 刀月b幻狀L未儲存,亦有可能在監控 式中允許中斷。其只能在一中餅 y T斷之後,該功能未重新繼 時進行。因此,藉由在監控模 棋式中只允許能安全地重新 動之功能的中斷,可以解決在 k镇式下之中斷等待時 的問喊。在這種情況下,在監 徑挺式中一中斷之後,一 元成該中斷,相關於該功能之 ^ ^ H ib . w 處理的資料未被儲存,並 拋棄且私不處理器自它的開始 .u _ 〜開始處理它的起始功 。在上述示例中,當處理器 疋返回轉換至監控模式之 33 200411555 點時,它只是一件簡單的事情。應該注意的是,重新開始 一功能只對某些可以重新開始且仍然產生可重複性結果的 功能有可能。如果該功能改變該處理器之狀態,在重新開 始它時會產生一不同結果,則重新開始功能並不是個好主 意。因此,只有能安全地重新開始的那些功能能夠在監控 模式中中斷,對於其他功能而言,則使該些中斷失效。 第18圖圖示依據本發明的一實施例,處理發生在監控 模式的中斷的一種方法。在一非安全性模式中,一 SMI發 生在任務A的處理期間,而其將處理器轉換至監控模式。 該SMI指令使核心藉由專屬的非安全性SMI向量進入監控 模式。PC的現有狀態被儲存,S位元被設置且令中斷失效。 通常,用LR—mon和SPSR—mon來儲存非安全性模式的PC 和 CPSR 〇
而後在監控模式中起始一功能-功能C。功能C所進行 之第一件事,是啟用該些中斷,而後功能c被處理。如果 中斷在功能C的處理期間發生,則不使該些中斷失效,以 接受和執行該中斷。然而,監控模式指標對處理器指示, 在一中斷之後,不重新繼續該功能,亦不重新起動。選擇 性地,可藉由控制參數分別指示處理器。因此,在一中斷 之後,以LR—mon及SPSR_mon值更新該些中斷異常向量 而不儲存處理器的現有狀態。 如第1 8圖所示,在中斷任務-任務B完成之後,處理 器讀取已經拷貝到中斷登錄的SMI指令的位址,及執行一 SMI和再次開始處理功能C。 34 200411555 上 即如果 是說, 能影響 具有幕 重新安 第一部 碼時,-那麼至 一旦決 程式碼 的位置 的處理 第 任務c 指示任 全地重 式使處 任務結 c能夠 實施例 一些狀 一段短 狀態。 述處理只作用於功能C是可以重新開始的時候,意 重新開始處理C將產生可重複的處理步騍。這並不 功能C改變了處理器的任何狀 ^、 订狀態,例如堆疊指標邛 它將來的處理。在此,一稱作可重複的功能是因為 等(idempotence)。處理一功能之該問題 一 / 排定義該功能之程式碼,在該方法 χ β ^ w @程式碼之 为具有冪等,-旦不再有可能安排具有幕等的程式 令中斷失效。例如,如果程式碼C牵涉到寫入堆最, 少一開始它右讦妒衿癍似 ’八堆疊, 匕有了月b k麼做而無需更新該堆最 定該程式竭不再能夠安全地重新開 ::: 更新堆叠η ,而後其能夠對正碟
,以笨錄 圖所示,其中經由於功能C 某種方法令中斷失效。 19圖圖 — 不一輕微地不同的示例。在該示例中, 處理的羊接 糟田 ” 方法,設定了 一進一步的控制參數。它 務C的下列* 双匕 σΡ分並非嚴格的冪等,但是,能夠詖 新開始,確位 w 保一改進的例式先被執行。該改進的例 理器的狀能、$ 〜還原為在任務c的一開始時的樣子,A 束時,如杲A 在 ^ 匕不被中斷,當它已經完成時,使任務
女*全地重细· B B 啊開始並產生安全的處理器狀態。在一此 中,在進〜 : 、 〜步的控制參數被設定的點,當處理器知 態被修正(彻 如,更新堆疊指標),可以令中斷失 期的時間。4 ^ 如此允許該處理器稍後被還原至一冪, 35 200411555 當一中斷在進 有雨種可能的處理 處理中斷的改進例 成中斷,執行SMI 進的例式(在F2)。 模式中執行該改進 行(其不知道安全怕 如第19圖所: 能夠在一中斷之後 保首先執行一改進 制參數來指示,而 並因此在處理程式 第2 0圖圖示-其他實施例,中斷 模式中執行的功能 地重新開始。其只 新開始而非能重新 有一些方法, 能,而非在中斷時 理器狀態,其中中 的指令的位址。在 模式。一選擇性的 在一功能的開始位 理器狀態其後的寫 第二部分可重新開始 厂進*一步 步的控制參數被設定之後發生時,則 方法。不是能夠立即(在F1)執行而後可 < ’彳尤是能夠立即處理中斷並在稍後完 而後在重新開始任務C之前,執行該改 如所示者’在上述二實施例中,在監控 #命丨式’並因此在非安全性網域中的執 網域或監控模式)並不受到影響。 重新開始。 的例式。而甘 而其藉由設定一·逛一芡」 寿呈式4碼之一最後部分不能被重新開i 碼之前,Φ蹈^ β 甲斷疋失效的。 選擇 ήή» 7r» 庄不例,在這種情況下,其相異於 在i控模式期間是啟用的。而後在監控 7中斷失效,一旦它們不再能夠被安全 在監控极《V丄 . 、式中所有被中斷的功能能被重 繼續時有可能。 月"*夠確保所有在某一模式下執行之功 重新繼續。一種方法是藉由增加新的處 斷健存#人 和7序列的開始位址,而非中斷 3^.種憎'-τ~ ’兄下,總是在該狀態下執行監控 yj^ 日 *立 疋藉由在每一功能開始時,預載入 址至中斷異常登錄,並在中斷之後使處 入失效,以中斷異常登錄。
36 200411555 如第20圖所示之實施例,如果要求功能可以安全地重 新開始,功能之重新開始可以在中斷功能結束之後立即完 成,或在一改進的例式之後完成。 雖然就一具有安全性、非安全性網域和一監控模式之 系統而論,上文已經描述了處理中斷等待時間的方法,但 可以明白,其能應用於有功能由於一特定原因而不應該重 新繼續的任何系統。通常此類功能可藉由使增加中斷等待 時間的中斷失效而作用。在一中斷之後,改正功能為可重 新開始和控制該處理器以重新起動他們,為了功能處理的 至少一部份,允許啟用該些中斷及幫助減少中斷等待時 間。例如一作業系統的一般内容轉換。 存取安全性和非安全性記憶體 如第一圖所示之資料處理設備具有記憶體,其當中包 括TCM 36、快取38、ROM 44、受控裝置的記憶體和外 部記憶體5 6。如第3 7圖所示,例如,記憶體被分割為安 全性和非安全性記憶體。吾人將了解,在製造時,在記憶 體的安全性記憶體區域和非安全性記憶體區域之間通常沒 有任何實際區別,但反而由資料處理設備的一安全性作業 系統定義該些區域,當在該安全性網域作業時。因此,記 憶體裝置的任何實體部分,可以被分配為安全性記憶體, 而任何實體部分可以被分配為非安全性記憶體。 如第2圖至第5圖所示,處理系統具有一安全性網域 和一非安全性網域。在該安全性網域中,提供一安全性核 37 200411555 心程式8 Ο,J:以 ^ x -一女全性模式執行。提供一監控程式72 其涵蓋安全性釦非—人 ^ ^ 72 和非女全性網域,以及其至少一部分 控模式執行〇右士政〇 I刀以一監 ^ ^ 在本發明的實施例中,監控程式部分以^始 模式並部分以一农么u祕 、丨刀以監控 文全性模式執行。如第1〇圖 安全性模式,其中白扛 圓所不,有多種 T包括、一監督模式SVC。 監控程式 7 2合士 1 負貝g理在安全性和非安全性 任一方向的所有改鐵。4 尸文1性網域之間 H M ^參照第8圖和第9圖在章節「處 器模式」中插述τ 一沾〜 地埋
二匕的功能。該監控程式g^ 全性模式巾㈣㈣^ 縣A貞冑在非安 述非安全性^ 式轉換請求SMI,以初始化自上 ? 松式到上述安全性模式的-轉換,以及負責在 斤么出的1式轉換請# SMJ,以初始化自 上述女全性模式 ^卜安全性模式的一轉換。如章節「情 境間的轉換」所述,在監 , ^錢控模式中,轉換的發生係自安全 性和非安全性網域中之一 、 轉換至少一些登錄至其他者。如 此涉及儲存在一網域中在y» α Τ存在的一登錄狀態和在其他網域寫 入一新狀態至登錄(或名a μ i 一 且錄_還原以前儲存的狀態)。本
文亦論及,當執行些一輟姑 轉換時’對某些登錄的存取可能會 失效。較佳的實施例是,八 7 a控模式中所有中斷都失效。 因為監控程式所執行的 的監控模式涵蓋安全性以及非安 全性網域,所以證實為安; 全的監控程式是很重要的:即只 部署欲部署之功能。因此如里 0如果監控程式愈簡單愈有利。安 全性模式只允許在安全性翻祕士 & ’域中執行程序。在本發明的實 施例中,權限安全性模 性和非安全性記憶體。 式和監控模式允許存取相同的安全 藉由確保該權限安全性模式「看見」 38 200411555 相同 行的 外, 至監 的轉 域。 在一 動時 有助 控模 式流 性權 此, 能證 方法 安全 式之 定義 許的 全性 全性 任何 的安全性和非安全性記憶體,把僅能在監控模 功此轉換至允許簡化的監控程式之安全性模 其允許在一權限安全性模式中操作的一處理直 控模式,反之亦然。自一權限安全性模式至監 換是允許的,而在監控模式中可以轉換至非安 非權限安全性模式必須使用SMI,以進入監控 重设之後,系統進入權限安全性模式。在網域 ’進打在監控模式和權限安全性模式之間來回 於儲存狀態。 在其他實施例中,允許自安全性權限模式中以 式中存取s旗標。如果允許安全性權限模式在 程的控制時,將處理器轉換到監控模式,則此 限模式已經具有轉換s旗標(位元)的有效能 規定只能夠在監控模式中改變S旗標的額外複 實為正讀的。反之,能夠藉由與其他設定旗標 儲存S旗標,又該些其他設定旗標可以由一或 ί*生權限模式所改變。本技術包括在多數安全性 一中改變S旗標的此類實施例。 回到先前討論的示例性實施例,設備具有定義 模式的權限層級的一處理器核心10 ;即,任何 功能集。因此,以f知方法安排處理器核心以 代式和I控模式存取安全性和非安全性記憶體 模式存取監控模式允許存取的所有記憶體,和 權限女全性模式中所操作的處理直接轉換至 式中執 式。此 接轉換 控模式 全性網 模式。 之間移 的轉換 及自監 維持程 類安全 力。因 雜性不 相同的 多數的 權限模 模式和 模式允 允許安 ’及安 允許在 監控模 39 200411555 式’反之亦然。處理器枋 1 〇 鉍 述。 ^10之較佳安排所允許者如下所 在本設備的一示例中,記憶體被分 以及非安全性纪情俨 A 6入W 。·、、、女全性記憶體 ::…體,而安全性和非安全性記憶體 月b在孤控和安全性模式中存取。. 人k 权佳的實施例為,非企 王性記憶體在監控模式、安全性模 女 存取。 Λ h 非安全性模式中可 本設備之另一示例,在監控模式和一 ΐϊ ^ , t 次多數女全性;(:登
式备中,拒絕安全性模式對非安全性記憶體的存取2 非安全性模式中拒絕安全性和監控模式存取非安全 =。因此,僅允許在監控和安全性模式中存取安全性記: 體,以及僅能藉由增進安全性之非安全性模式存取2 性記憶體。 王 本設備的示射,言免備的重設或開機可以在 比-安全性模式、#限模式更高權限之監控模式中心 然而,在設備的許多示例中’因為允許在安全性模式和監
控模式之間直接轉換’安排在一安全性模式中提供重設: 開機是有可能的β A 如第2圖所述,在安全性網域、和在一安全性模式, 一安全性核心8〇(或作業系統)功能,和一或多數的性 應用程式82、84可以在安全性核心8〇中 奶* 1丁。尤*許該安 全性核心和/或安全性應用程式或在—安全性模式中執行 的任何其他程式碼存取安全性和非安全性記憶體兩者 雖然以具有處理器的設備描述本發明之示例,本發明 40 200411555 可以由一電腦程式所部署,當在合適的處理器上執行時’ 該電腦程式以如本章節所述之操作設定該處理器。 下文中,參照第21圖至2 3圖,本發明之一選擇性實 施例論及出自一程式設計人員之模式觀點: 下文中,吾人所使用之術語必能以arm處理器(由央 國劍橋的ARM Limited所設計)的技術背景了解。 • S位元··安全性狀態位元,包含在一專屬CP 1 5登錄中。
• 「安全性/非安全性狀態」。由S位元值定義這種狀態。 其指示是否核心可以存取安全性情境,(其當處於安全 性狀態中,即S = l)或僅限制非安全性情境(S = 〇)。請注 意監控模式(詳見下文)優先於該S位元狀態。 • 「非安全性情境」可供不需要安全性的非安全性應用所 存取的所有硬體/軟體群組。 • 「安全性情境」僅供吾人執行安全性程式碼時存取的所 有硬體/軟體(核心、記憶體…)群組。
•監控模式:一種新的模式,其負責在安全性和非安全性 狀態之間的轉換。 簡而言之 籲核心總是能夠存取非安全性情境。 *僅在核心處於安全性狀態或監控模式時,該核心能夠存 取安全性情境。 籲SMI:軟體監控中斷:一種新的指令,其令核心藉由一 專屬的SMI異常向量以進入監控模式〆執行緒iD, 與每一執行緒相關的識別符(由_ 〇s所控制)。對某些 41 200411555 類型的os而言’當os在非安全性情境中執行時,每 次呼叫一女全性功能,就需要傳遞一現有執行緒ID參 數’以連接安全性功能與它所呼叫的非安全性應用。該 安全性情境因此能夠支援多執行緒。 安全性中斷定義由安全性週邊所產生的中斷。
程式設計人員的掇細 Carbon核心概觀 本文中對於使用本技術的處理器所用的術語「Carb〇n 架構」的概念,分別包含兩種情境,一安全性和一非安全 陡。該安全性情境不能洩漏任何資料至非安全性情境中。 本文所提出的解決方案中’安全性和非安全性狀態將 共用該相同的(存在的)登錄區塊。因此,在Arm核心中出 現的所有現有模式(Abort,Undef,irq,User. ·)將在每一種 狀態中存在。 的新狀態位元「S (安 全性或是非安全性狀
歸功於包含在專屬 CP15登錄中 全性)位元」,核心將知道其操作於安 態〇 控制所允許的指令或事件修改兮c , 狀 決 狀 中 喝S位元,即,自一 態改變到另一狀態,是系統安全性 1王的一重要特徵。本 方案提出增加一新模式「監控模式 _ 」,其監督」在兩 態之間的轉換。該監控模式(藉由宜 馬入適當的CP 15登 )是唯一被允許改變該S位元者。 最後,本發明提出對異常處理禾 添加某些彈性的方法 42 200411555 除了 Reset(重設)外, 理,就是被導向監控 這是可以設定的。 斤有的異吊若不是在它們所發生處處 模式歸因於一專屬一 CP1 5登錄, 該解決方案的細節將在下列段落 中討論 〇 處理器狀態和棍式 Carbon新特徽
戈1.免il.或非安金性狀熊
Carbon核心的一主要转料θ 王要特徵是S位元的存在,其指示 否核心是在一安全性(S = l)或非& ^ 非女全性(S = 〇)狀態。當在 全性狀態中時,核心能在安全桠 女全眭或非安全性情境態樣存 任何資料。當在非安全性狀態 〜、崎,核心僅限於該非安全 情境。
對該規則的唯一例外涉 元資訊。甚至在s=o時,當 安全性權限存取。進一步的 式。 及監控模式,其優先於該s位 它在監控模式中,核心將執行 資訊請參考下一段落之監控模 只能夠在監控模式中讀取和寫入該s位元。不論該s 位元的值為何,如果任何其他的模式試著去存取它,若不 是被忽略就是導致一 Undefined(未定義)異常。 除了 Reset(重設)之外,所有的異常不會影響安全性狀 態位元。纟Reset(重設)上,設定該s位元,而核心將以監 督模式開始。詳細資訊請參照開機章節。 女全ί± /非女全性狀態是分離的,且其操作是獨立於 43 200411555 ARM/Thumb/Java 狀態。 置控模式
Carbon系統的一其他重要特徵是一新模式「監控模 式」的產生。它將用來在安全性和非安全性狀態之間控制 核心轉換。它總是被視為一安全性模式,即s位元值為何, 當在監控模式中時,核心總是對外部情境執行安全性權限 存取。 任何安全性權限模式(即,當S = 1時之權限模式)能藉 由僅是寫入CPSR模式位元(MSR、M0VS、或相當的指令 者)轉換為監控模式。然而,它在任何非安全性模式或安全 性使用者模式中是禁止的。如果這發生了,則忽略指令或 引起一異常。 可能有需要一專屬的CPSR違反異常。藉由從任何非 安全性模式或安全性使用者模式直接寫入該CPSR,可由 任何欲轉換為監控模式之意圖引起該異常。 當監控模式是啟用時,除了 Reset以外,所有異常實 際上失效了: •所有中斷經過遮罩處理(mask); 所有δ己憶體異常不是被忽略就是引起一重大異常。 #未定義的/SWI/SMI被忽略或引起一重大異常。 •田進入一監控模式時,該些中斷自動失效而系統監控 •寫下以使系統監控執行時,不會有其他類型的異常 44 200411555 發生了的。 監控模式需要有一些私有登錄❶該解決方案提出人們 僅重複最小組的登錄,即,R13 (sp—mon)、R14(lr—mon)和 SPSR(spsr—mon) 〇 在監控模式中,MMU將失效(平面位址映射,flat address map)以及MPU或分割檢測器亦然(監控模式將總
是執行安全性權限外部存取)^然而,尤其是設計的MpU 區域屬性(快取能力(cacheability)…等等)仍然是啟用的。 可選擇性地,監控模式可以使用所有被安全性網域所使用 的映射。 I指令 本發明所提出者需要向既有ARM指令集中添加一新 的指令。 使用SMI(軟體監控中斷)指令以進入監控模式(在一固 定的SMI異常向量發展出來)。該指令主要用來對指示監 控在非t全性和安全性狀態之間的調換(Swap)。 可選擇性地(或額外地)’亦可能增加一新指令以允許 監控模式向/從監控堆疊儲存/還原任何其他模式的狀態, 以改進内容轉換的表現。 處模式 如先前的段落中所述’僅有一新模式被加入核心。所 有既存模式持續可獲得,並在於安全性和非安全性狀態中 45 200411555 都存在。 事實上,Carbon使用者將了解如第21圖所示之架構。 處理器登錄 本發明之實施例提出安全性和非安全性情境共用相同 的登錄區塊。這意味著,當藉由監控模式從一情境轉換為 另一者時,系統監控將需要儲存第一情境内容,以及在第 二情境中產生(或還原)一内容。 傳遞參數成為容易的任務··一旦系統監控改變了該S 位元,在第一情境中的一登錄中所含有的任何資料將可用 於第二情境中之相同的登錄中。 然而,除了有限數量之登錄專用於傳遞參數,其需要 嚴格地控制,當從安全性傳遞至非安全性狀態時,所有其 他登錄都需要清除,以避免洩漏任何安全性資料。它需要 由監控核心確保。 亦可能部署一硬體機制或一新指令,在從安全性轉換 至非安全性狀態時直接清除登錄。 所提出的另一解決方案涉及重複所有(或大多數)既有 登錄區塊,因此具有在安全性和非安全性狀態之間具有兩 實體上分離的登錄區塊。該解決方案主要具有清楚地分離 在登錄中所含有的安全性和非安全性資料的優點。在安全 性和非安全性狀態之間亦允許快速的内容轉換。然而,缺 點是藉由登錄的傳遞參數變得困難,除非吾人產生一些專 屬的指令,以允許該安全性情境存取非安全性登錄。 46 200411555 第22圖依據處理器模式圖示可用的登錄。請注意,處 理器狀態對本主題沒有影響。 異常 安全性中斷 現有解決方案 本發明提出當在現有核心時’保持相同的中斷腳位 (pin),即,IRQ和FIQ。相關於異常捕捉遮罩登錄(Exception Trap Mask register,詳見下文)’對於任何系統應該有足夠 彈性,以部署和處理不同種類中斷。 VIC加強 本發明藉由下列方法加強 VI c (向量中斷控制器, Vectored Interrupt Controller) ·· VIC 可以含有與每一向量 位址相關的一安全性資訊位元。該位元僅能由監控或安全 性權限模式設計。其指示是否所考慮的中斷應該視為安全 性,以及因此應該在安全性中處理。 本發明亦增加兩新向量位址登錄,一供所有在非安全 性狀態中發生的安全性中斷,另一供所有在安全性狀態中 發生的非安全性中斷。 包含在CP15中的S位元資訊可讓VIC獲得,以作為 一新VIC輸入。 下表概述一些不同可能歷程,其依據引入的中斷之狀 態(安全性或非安全性,由相關於每一中斷線之s位元指示) 47 200411555 和核心的狀態(在VIC中,CP15 = S輸入信號之S位元)。
48 200411555
異常營理設定 為改進Carbon彈性,一新的登錄「異常捕捉遮罩」將 被加入CP 1 5内。該登錄包含下列位元: 位元0: Undef異常(非安全性狀態) 位元1: SWI異常(非安全性狀態) 位元 2: Prefetch abort異常(非安全性狀態) 位元3 : Data abort異常(非安全性狀態) 位元4: IRQ異常(非安全性狀態) 位元5: FIQ異常(非安全性狀態) _ 位元6: SMI異常(非安全性/安全性狀態s) 位元16·· Undef異常(安全性狀態) 位元17: SWI異常(安全性狀態) 位元 18: Prefetch abort異常(安全性狀態) 位元 19: Data abort異常(安全性狀態) 位元20: IRQ異常(安全性狀態) 位元21:FIQ異常(安全性狀態) 49 200411555
Reset(重設)異常在登錄中不總是具有對應的位元。 Reset總是使核心藉由它專屬的向量進入安全彳γ 之丨土皿’模式0 如果一位元設置了 ’所對應的異常使核心進入監控模 式。否則,在其發生的情境中在它所對應的管理器處理該 異常。 ™ 該登錄只可見於監控模式中。在任何其他模式中嘗試 存取它的任何指令都會被忽略。 該登錄應該被初始化為一系統專屬值,依據該系統β 否支援一監控。該功能能由VIC所控制。 異常向晋_ 分別有安全性和非安全性情境,所以也需要分別的安 全性以及非安全性異常向量表。 此外,如果監控也能夠捕捉一些異常,吾人也需要專 屬於監控的一第三異常向量表。 下表概述三種不同的異常向量表: 在非安全性記憶體中: 位址 異常 模式 —~— 自動存取的時機 0x00 - • 111—--- 0x04 Undef Undef —--- 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所執行之未定 義指令[Non-secure Undef] = 〇 50 200411555 0x08 SWI Supervisor (監督) 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所執行之SWI 指令[Non-secure SWI] = 0 0x0c Prefetch Abort Abort (中止) 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所執行之中止 指令[Non-secure Pabort] = 0 0x10 Data Abort Abort 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所執行之中止 資料[Non-secure DAbort] = 0 0x14 保留 0x18 IRQ IRQ 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所設定(assert) 的 IRQ 腳位(pin)[Non-secure IRQ] = 〇 Ox 1 c FIQ FIQ 在核心處於非安全性狀態和異常 捕捉遮罩登錄時,所設定(assert) 的 FIQ 腳位(pin)[N〇n-secure FIQ]=〇 在安全性記憶體中: 位址 異常 模式 自動存取的時機 0x00 Reset* Supervisor (監督) 重設設定的腳位 51 200411555 έ 0x04 Undef Undef 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所執行之未定義 指令[Secure Undef] = 0 0x08 SWI Supervisor (監督) 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所執行之SWI指 令[Secure SWI] = 0 0x0c Prefetch Abort Abort (中止) 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所執行之中止指 令[Secure Pabort] = 0 0x10 Data Abort Abort 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所執行之中止資 料[Secure DAbort] = 0 0x14 保留 0x18 IRQ IRQ 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所設定(assert)的 IRQ 腳位(pin)[Secure IRQ] = 0 Οχ 1 c FIQ FIQ 在核心處於安全性狀態和異常捕 捉遮罩登錄時,所設定(assert)的 FIQ 腳位(pin)[Secure FIQ] = 〇
在監控記· 意體中(平面映射flat mapping): 位址 異常 模式 自動存取的時機 0x00 - - - 0x04 Undef Monitor(監 在核心處於安全性狀態和異常 52 200411555 控) 捕捉遮罩登錄時,所執行之未定 義指令[Secure Undef] = l 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所執行之未 定義指令[Non-Secure Undefl = l 0x08 SWI Monitor(監 控) 在核心處於安全性狀態和異常 捕捉遮罩登錄時,所執行之SWI 指令[Secure SWI] = 1 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所執行之 SWI 指令[Non-Secure SWI1 = 1 0x0c Prefetch Monitor(監 在核心處於安全性狀態和異常 Abort 控) 捕捉遮罩登錄時,所執行之中止 指令[Secure Pabort] = l 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所執行之中 止指令[Non-Secure Pabortl = l 0x10 Data Monitor(監 在核心處於安全性狀態和異常 Abort 控) 捕捉遮罩登錄時,所執行之中止 資料[Secure DAbort] = l 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所執行之中 止資料[Non-Secure DAbortl = l 0x14 SMI Monitor(監 200411555 控) 0x18 IRQ Monitor(監 控) 在核心處於安全性狀態和異常 捕捉遮罩登錄時,所設定(assert) 的 IRQ 腳位(pin)[SecureIRQ] = 〇 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所設定 (assert) 的 IRQ 腳 位 (pin) [Non-Secure IRQ] = 〇 Ox 1 c FIQ Monitor(監 控) 在核心處於安全性狀態和異常 捕捉遮罩登錄時,所設定(assert) 的 FIQ 腳位(pin) [Secure FIQ] = 0 在核心處於非安全性狀態和異 常捕捉遮罩登錄時,所設定 (assert)的 FIQ 腳位(pin) [Non-Secure FIQ]=〇 在監控模式中,可以有兩份異常向量,因此每一異常 都將有二個不同的相關向量: 一供出現於非安全性狀態的異常 一供出現於安全性狀態的異常 如此可以降低異常等待時間,因為監控核心不再需要 偵測異常發生處的初始狀態。 請注意,該特徵僅限於一些異常,smi是最合適的選 54 200411555 懌之一,用以改進在安全性和非安全性狀態之間的轉換。 倩境間的轉換 當在狀態間轉換時,監控模式必須在它的監控堆疊儲 存第一種狀態的内容,和從該監控堆疊還原第二個狀態内 容。 監控模式因此需要存取任何其他模式之任何登錄,包 括私有登錄(rl4、SPSR…)。 為了處理它,本發明所提出的解決方案包含在安全性 狀態中,給予任何權限模式藉由純粹寫入CPSR,直接轉 換為監控模式的權限。 在情境之間轉換之此類系統執行如下: # 進入監控模式 •設定S位元 •轉換至監督模式·儲存監控登錄於M〇NIT〇R(監控) 堆疊(當然,監督模式需要存取該監控堆疊指標, 但这是容易辦到的,例如藉由使用一普通登錄(R0 至 R8)) *轉換至System(系統)模式-儲存登錄(如同使用者 模式)於監控堆疊 • IRQ登錄於監控堆疊 一所有模式的所有私有登錄都儲存了,以一簡單 MSR指合田5丨
控模式(只是寫入監控值於CPSR 模式搁位) 55 200411555 另一些解決方案也被考慮: 籲增加一新指令,其允許監控在自己的堆疊儲存其他 模式的私有登錄。 • 以一新的「狀態」部署監控,即,能夠在監控狀態 (具有該些適當存取權利)和在IRQ(或任何其他的) 模式,看見IRQ(或任何其他的)私有登錄。 基本歷程(請參照第23圖) 1. 執行緒1在非安全性情境中(S位元=0)執行,該執 行緒需要執行一安全性功能=>SMI指令。 2. SMI指令使核心藉由一非安全性SMI向量進入監 控模式。使用LR—mon和SPSR—mon來儲存非安全 性模式之PC以及CPSR。在該階段落S位元保持 不變,雖然該系統現下在安全性狀態中。監控核心 儲存非安全性内容於監控中。其亦發送LR_mon和 SPSR-tnoi^此時監控核心藉由寫入CP15登錄改變 S位元。在該實施例中,監控核心保持追蹤,一「安 全性執行緒 1」在該安全性情境中開始(例如,藉 由更新一執行緒ID表)。最後,它退出監控模式並 轉換至安全性監督模式。 3 .安全性核心發送應用至正確的安全性記憶體位 置,而後轉換至使用者模式(例如,使用一 MOVS)。 4.在安全性使用者模式中執行安全性功能。一旦完 56 200411555 成,藉由執行適當的SWI呼叫「退出(exit)」功能。 5. SWI指令使核心藉由一專屬SWI向量進入安全性 svc模式,依序執行「退出」功能。該「退出」功 能以一,,SMI"結束,以轉換回監控模式。 6· SMI指令使核心藉由專屬的安全性SMI向量進入 監控模式。利用LR-mon和SPSR — mon來儲存安全 性svc模式的PC和CPSR。S位元保持不變(例如 安全性狀態)。監控核心登錄該安全性執行緒1完 成的事實。之後,其藉由寫入CP15登錄,改變s 位元,以回到非安全性狀態。監控核心自監控堆疊 還原非安全性内容。其亦載入預先在第2步驟所儲 存的 LR 一 mon 和 CPSR 一 mon。最後,以一 SUBS(以 該指令,在非安全性使用者模式中,將使該核心返 回)退出監控模式。 7 ·執行緒1能夠正常重新繼續。 參照第6圖’在安全性和非安全性網域之間,共用所 有登錄都。在監控模式中,轉換發生在從安全性和非安全 性網域之一轉換登錄至另一者。其涉及儲存在一網域中存 在的一登錄之狀態,和在另一網域中寫入新的狀態至該登 錄(或在該登錄還原先前儲存的狀態),亦如上文中「情境 間的轉換」章節所述者。 吾人希望降低執行該轉換所花費的時間。為了降低執 行該轉換所花費的時間,當在安全性和非安全性網域之間 57 200411555 轉換時,使共用的登錄失效,以使儲存於其中的資料值保 持不變。例如,考慮從非安全性網域到安全性網域的一轉 換。舉例來說,假設顯示在第6圖之FIQ登錄在安全性情 去兄中不需要。因此’使那些登錄失效,且不需要把他們轉 換至安全性網域,且不需要儲存那些登錄的内容。 使登錄失效可以藉由幾個方法達成。一種方法是把使 用該些登錄的模式鎖住。在指示失效模式的一 CP15登錄 中寫入控制位元以達成。
C 選擇性地’可以再次以指令為基礎,藉由寫入控制位 疋至一 CP15登錄中,使對登錄的存取失效。在CP15登錄 所寫入的位元只與該登錄相關,而非模式,所以模式並未 失效’但是’對該模式的登錄所做的存取則失效。 FIQ登錄儲存與快速中斷相關的資料❶如果該FIq登 錄失效而快速中斷發生,處理器發出異常信號至監控。為
回應異常’監控模式可操作以儲存與一網域相關和在上述 失效的登錄中儲存的任何資料值,並載入該登錄相關於其 他’祠域之新-貝料值,而後啟用該模式登錄。 可以安排處理器,以使當處理器轉換網域時,在監控 模武中的所有區塊登錄都失效。選擇性地,當轉換網域以 及其他程式设計人員選擇失效時,登錄的失效可以利用在 共用的登錄中的 ,, 球甲的一些預設者來選擇。 田在I控模式中轉換網域時,可以安排處理器,以使 ’夕 用登錄失效,以及一或多數其他共用登錄將它 們的資料在ϋ , 仕離開一網域時儲存,和將新資料载入另一網 58 200411555 域。該新資料可以是空值資料。 第24圖圖示向一傳統ARM核心中增加一安 選擇的概念。該圖圖示含有安全性處理選擇的處 能夠藉由向一既有核心增加安全性處理選擇而形 該系統想要具有與一既有作業系統之反向相容性 會認為該既有系統係操作於處理器的傳統非安全 然而,如該圖之下半部所示以及下文將進一步詳 實上,一既有系統係操作於系統的安全性部分。 第 2 5圖圖示具有一安全性和非安全性網域 器,並圖示重設,且與第2圖類似。第2圖圖示一 適用於執行一安全性敏感型態之操作,其以一安 系統在安全性網域中控制處理,和以一非安全性 在非安全性網域中控制處理。然而,該處理器亦 於一傳統舊版作業系統,及因此該處理器可以使 作業系統,使用一非安全性敏感的方法操作。 如第2 5圖所示,在安全性網域中的重設,以 有S位元或安全性狀態旗標設定之無論什麼類型 發生的重設。在一非安全性敏感類型操作情況下 生在安全性網域,並之後繼續在安全性網域中處 舊版作業系統控制處理不知道系統的安全性態樣 如第2 5圖所示,執行重設以在安全性監督賴 置開始處理處的位址,而不論是否處理是安全性 事實上非安全性敏感。一旦執行了重設,則在之 開機或重開機中所出現的額外任務。該開機機制售 全性處理 理器如何 成。如果 ,直覺上 性部分。 論者,事 之一處理 處理器, 全性 Ο S Ο S系統 反向相容 用一舊版 及此處具 的操作所 ,重設發 理。然而 〇 r式下’設 敏感或是 後執行一 羊述如下。 59 200411555 開機機剎 開機機制必須顧及下列特徵: •保持與舊版作業系統的相容性。 籲在最權限模式中開機以確保系統的安全性。 因此。Carbon核心將在安全性監督模式中開機。 不同的系統將是: *對於想要執行舊版作業系統的系統而言,不考慮該 S位元’而核心將僅知道其在監督模式中開機。 •對於想要使用Carbon特徵的系統,核心在安全性 權限模式中開機’又該安全性權限模式應能設定在 系統中的所有安全性防護(有可能在交換至監控模 式之後) 上述開機機制之細節而論,本發明實施例的處理器重 設處理器,以在安全性監督模式中開始在所有情況下的處 理。在一非安全性敏感類型操作的情況下,雖然安全性在 此處不是問題’因為已設置了 S位元(儘管作業系統不知 道)’實際上作業系統疋在安全性網域中操作。它有個優 點,無法自非安全性網域存取的記憶體部分,在該情況下 是可存取的。 在所有情況下’在安全性監督模式中開機亦有利於安 全性敏感系統’因為它有助於確保系統的安全性。在安全 性敏感系統中’在開機時提供位址給在安全性監督模式中 60 200411555 儲存開機程式之處,以及因此允許系統設定為一安全性系 統,和轉換為監控模式。一般而言,自安全性監督模式轉 換為監控模式是允許的,和在一適當時間啟用安全性系 統,以開始在監控模式中處理,以初始化監控模式架構。 第26圖圖示,第1步驟,由一非安全性作業系統執行 之一非安全性執行緒NSA。第 2步驟,非安全性執行緒 NS A藉由在第3步驟執行一監控模式程式的監控模式,呼 叫安全性網域。監控模式程式改變S位元以轉換網域,和 在第5步驟移動到安全性作業系統之前,執行任何必要的 内容儲存和内容還原。而後在第6步驟受一中斷irq支配 之前,執行對應的安全性執行緒SA。在第7步驟,中斷處 理硬體觸發返回監控模式,此處決定是否由安全性作業系 統或非安全性作業系統所處理。在這種情況下,在第9步 驟開始,由非安全性作業系統處理該中斷。 當由非安全性作業系統處理該中斷時,在第11步驟一 正常執行緒轉換操作之前,在非安全性作業系統中,非安 全性執行緒NSA已作為現有任務重新繼續。該執行緒轉換 可以是一時間事件或類似者的結果。在第1 2步驟中,由非 安全性作業系統在非安全性網域中執行一不同的執行緒 NSB,以及此時在第14步驟藉由監控網域/程式對安全性 網域進行呼叫。在第7步驟,監控程式儲存了 一旗標,使 用一些其他的機制,用以指示安全性作業系統因為一中斷 而在上一次暫停,而非因為一安全性執行緒已完成執行或 因為正常的請求而離開,而就這麼放下。因此,因為一安 61 t性作業系統被-中斷暫停,在第15步驟,監控 -軟體仿製的中斷,以再次進入安全性作業系統 體仿製的t斷設定了一返回執行緒IDe (例如, 全性執行緒刪請求時,由安全性作㈣統所開 之識別符,其他的參數資料亦然)。軟體仿製中 參數可以作為一登錄值傳遞。
在第15步驟,該仿製的軟體中斷觸發安全性 、返回中斷管理器例式。該返回中斷管理器例 體仿製中斷的返回執行緒ID,以決定是否符合安 緒SA的ID,其在上一次安全性作業系統暫停前 斷。在這種情況下,沒有符合的,並因此在第16 已經儲存安全性執行緒SA的内容以後,觸發安 系、、先以將執行緒轉換為如非安全性執行緒n S B 返回執行緒。而後能夠在被請求時,由中斷處重 安全性執行緒SA。 第27圖圖示在第26圖所示之行為類型的另 該示例令,當程序在非安全性作業系統的控制中 理該IRQ時,沒有非安全性執行緒轉換,和因此 性作業系統的返回中斷管理器收到軟體仿製中斷 定不需要任何執行緒轉換和在第15步驟僅是重 安全性執行緒SA· 第2 8圖是一流程圖,圖示由返回執行緒管理 的處理。在第4002步驟啟動返回執行緒管理器。 步驟,當暫停安全性作業系統時,對軟體仿製中 程式使用 ,又該軟 在由非安 始的執行 斷的該些 作業系統 式檢查軟 全性執行 執行時中 步驟,在 全性作業 所設定之 新開始該 一示例。 進行以處 當由安全 時,其決 新繼續這 器所執行 在第4004 斷的返回 200411555 執行緒識別符進行檢查和與現有執行安全性執行緒比較 如果該些符合,則程序進行至第40〇6步驟,當中安全性執 行緒重新繼續。如果在第4004步驟的比較未符合,則程序 進行至第400 8步驟,其中在第40 10步驟轉換至新的安八 性執行緒之前,儲存舊的安全性執行緒的内容,(為爾後的 重新繼續)。新執行緒已經在進行中,所以第4〇〗〇步驟 新繼續。 —重 第29圖圖示之處理,藉此
•r jp: m m WJ
使任務轉換由主控非安全性作業系統執行。該主控非安 性作業系統可以是不具月通訊機制的一舊版作業系統, 協調它的動作以配合其他作業系統,及因此只作為一主 器操作。在第29圖之-初始進人點’非安全性作業系统 =一非安全性執行緒NSA。該非安全性執行緒nsa呼叫 安全性執行緒’該安全性執行緒欲由安全性作業系統利 、軟體中斷(―SMI呼叫)執行。在第2步驟,該SMI呼 進入在—監控模式中執行的-監控程式,據以在第4步
:,在傳遞呼叫進人安全性作#系統之前,該監控程式 :=需要的内容儲存和轉換。此時安全性作業系統起 式將二性執行請。該安全性執行緒可能藉由監控 一制退回至非安全性作業系統,例 或類似者。在“步驟,當非安全性執行緒NSA = 制再次傳遞至安全性作業系統時, :: 體中斷以達成。軟趙包括辨識NSA的非安全;:出: 欲啟用之目浐的非女全性執打緒H 私女全性執行緒1D的安全性執行緒ID,即 63 200411555 識安全性執行緒SA的執行緒ID,以及其他的參數。 當在第9步驟所產生的呼叫由監控程式所傳遞,和在 第1 2步驟藉由安全性作業系統在安全性網域中接收時,能 夠檢查該非安全性執行緒ID,以決定是否已被非安全性作 業系統轉換了内容。也可以檢查目標執行緒的安全性執行 緒ID,以了解安全性作業系統下的正確的執行緒是否已重 新起動或以一新的執行緒起動。在第29圖的示例中,在安 全性網域中不需要由安全性作業系統進行任何執行緒轉 換。 第30圖與第29圖類似,除了第9步驟,執行緒的轉 換在非安全性作業系統的控制下,在非安全性網域中發生 以外。因此,在第11步驟中,使軟體中斷呼叫橫跨至安全 性作業系統的,是一不同的非安全性執行緒NSB。在第14 步驟,安全性作業系統確認非安全性執行緒NSB的不同執 行緒ID,並因此執行涉及儲存安全性執行緒S A的内容和 開始該安全性執行緒SB的任務轉換。 第31圖是一流程圖,圖示當接收一軟體中斷以作為一 啟動或重新繼續安全性作業系統的執行緒之呼叫時,由安 全性作業系統所執行的處理。在第40 1 2步驟中,接收了該 呼叫。在第4014步驟中,檢查呼叫的參數,以決定他們是 否在安全性作業系統中,與現有啟用的安全性執行緒相符 合。如果符合,則在第 4016步驟重新開始該安全性執行 緒。如果不符合,則程序進行至第401 8步驟,其中決定是 否可使用新近請求的執行緒。該新近請求的執行緒可能因 64 200411555 為它是或它需要一特有資源,又該資源已經被在一安全性 作業系統中的一些其他的執行緒所使用,所以無法獲得。 在這種情況下,在第4020步驟中,以一適當訊息傳回非安 全性作業系統,拒絕該呼叫。如果在第401 8步驟決定新執 行緒可用,則程序進行至第4022步驟,其中舊的安全性執 行緒的内容被儲存,以供之後可能重新開始之用。在第 4 0 24步驟,如同對安全性作業系統所進行的軟體中斷呼叫 之設定,轉換至新的安全性執行緒。 第32圖圖示一操作,據以進行一優先權倒置,當在具 有多個作業系統之一系統中處理中斷時,由不同的作業系 統處理不同的中斷。 處理以安全性作業系統執行一安全性執行緒 SA開 始。而後由一第一中斷Int 1所中斷。其在監控模式中觸 發監控程式,以決定是否中斷要在安全性網域或非安全性 網域中處理。在這種情況下,該中斷欲在安全性網域處理, 而程序返回到安全性作業系統以及開始中斷Int 1的中斷 處理例式。中途藉由執行Int 1的中斷處理例式,具有較 高優先權的一進一步中斷Int 2被接收。因此,停止Int 1 的中斷管理器和用以在監控模式中決定中斷Int 2在何處 處理之監控程式。在這種情況下,中斷Int 2要由非安全 性作業系統處理,並因此把控制傳遞至非安全性作業系統 和啟始的Int 2之中斷管理器。當中斷Int 2的管理器完成 時,非安全性作業系統不具有指示在安全性網域中服務被 暫停的暫停中斷Int 1的資訊。因此,非安全性作業系統 65 200411555 ’例如任務轉換或啟始不同的非 然未能對原始中斷Int 1提供服 可以執行一些進一步步驟 安全性執行緒NSB,當仍 務時。 33圖圖示一技術,據以避免與第32圖的操作相關 的問題。當中斷Ιη"發生時,監控程式把它傳遞至一存 根(STUB)中斷管理器啟動虚 處之非女全性網域。該存根中斷 管理器是相對地小且快速藉由龄 疋稽田皿控模式使程序返回安全性
網域’和在安全性網域中觸發中_ in"的中斷管理器。 該中斷Int 1主要在安全性網域中處理,而在非安全性網 域中存根中斷管理器的啟動能夠禎 ^ 爿刃現為一種型態的位置保持 呑己錄’其指示非安全性網域中 ^ 甲斷在安全性網域中暫停。 在安全性網域中,中鼢Ttlt !, _ 斷1W 1的中斷管理器再次受到 高優先權Int 2的支配。在北忠么 在非女全性網域中,仍舊觸發中 斷Int 2的中斷管理器的勃 幻執仃。然而,在這種情況下,當
Int 2的中斷管理器完成時 w非女全性作業系統便擁有指示 存根中斷管理器的資料,因為
口馮t斷Int 1仍然是未完成的 以及因此將重新繼續該存根中 w 于很中斷官理器。該存根中斷管雄 器將出現,如同它暫停於苴 — 、,、進灯回到安全性網域的呼叫 處,據此該呼叫將再次執杆託丄& 訊订並因此轉換至安全性網域。一 旦回到安全性網域,安全性 r生、·祠域在其中斷處能夠自己再攻 開始中斷Int 1的中斷管^ , B埋器。當中斷Int 1的中斷管理器 在安全性網域中完成時, 進仃回到非安全性網域的呼叫, 以在原來的執行安全性執 性網域中關閉在相 、、 重新繼續前’在非安含 存根中斷管理器。 66 第 3 4圖圖 ~ 及 国不與它們的優先權相關之不同類型中斷,以 何處理它侗 處理古 们°可以使用純粹安全性網域中斷管理器, ’優先權Φ . 性絪# Τ斷’確保沒有較高優先權的中斷由非安全 、J域處理。— 權,# 旦有一中斷具有比後續中斷較高之優先 ^ 不县μ 金性網域中處理,則所有較低優先的中斷若 尺純粹在非〜 存钿丄 F文全性網域中處理,就是利用在第33圖所示 仔根中斷管理哭4士 那也 益技術,據以使非安全性網域可以持續追蹤 ‘中斷,gp a
1使匕們主要處理在安全性網域中發生者。 則所述者,使用監控模式來在安全性網域和非安 ί*生網I > pq A, ^ 3執行轉換。在實施例中,在兩不同網域之間 共用登錚,# t 自 、沒及儲存該些登錄中的狀態到記憶體,而後 °己憶體為終點網域載入這種新狀態至登錄中。對未在兩 網I 2 ΒΘ »1 _ρ 一 ·^间八用的任何登錄而言,不須儲存狀態,因為該些 且錄不會被其他網域所存取,而在該些狀態之間轉換係作 為在安全性和非安全性網域之間轉換的一直接結果(即,在
一 CP 15登錄之一中儲存的s位元的值決定所使用之非共 用登錄)。 當在監控模式中由處理器設定資料控制處理器對記慎 體的存取時,部分狀態需要被轉換。因為在每一網域中有 不同的記憶體,例如,安全性網域存取安全性記憶體以儲 存安全性資料,該·安全性記憶體不能從非安全性網域存 取,很明顯地,處理器設定資料將需要在 如第35圖所示,在CP15登錄34 定資料,而在一實施例中,該些登錄在 轉換網域時改變。 中儲存該處理器設 網域之間共用。因 67 200411555 此,當在安全性網域和非安全性網域之間轉換監控模式 時,現存於CP15登錄34的處理器設定資料需要自CP15 轉出至記憶體,而與終點網域有關的處理器設定資料需要 載入至CP15登錄34。 因為CP15登錄中的處理器設定資料通常在系統中對 記憶體的存取有立即的影響,則很明顯地,如果在監控模 式中操作時由處理器更新了它們,該些設定將立即生效。 然而,對在監控模式中欲設定處理器設定資料的一靜態設 疋之監控模式而言’這是不希望發生的。 因此’如第3 5圖所示,在本發明監控模式一實施例中 提供特定的處理器設定資料2000,它能夠用來覆蓋CP15 登錄34的處理器設定資料34,當處理器在監控模式中操 作時。如第35圖所示,在它輸入時,藉由多工轉換器2010 接收儲存在CP 1 5登錄的處理器設定資料和監控模式專屬 處理器設定資料2000,可加以達成。此外,多工轉換器2010 經由路徑2 0 1 5,接收一控制信號,指示是否處理器現下在 監控模式中操作。如果處理器不是在監控模式中操作,則 在CP15登錄34的處理器設定資料被輸出至系統,但在處 理器是在監控模式中操作的情況下,反之,該多工轉換器 2〇1〇輸出監控模式專屬處理器設定資料2〇〇〇,以確保所應 用的處理器設定資料是一致的,當處理器是在監控模式中 操作時。 監控模式專屬處理器設定資料可以寫死(Hard_c〇ded) 在系統中,從而確保其不能被搡縱。然而,亦有可能程式 68 200411555 設計該監控模式專屬處理器設 當在一安全性權限模式中操作 監控模式專屬處理器設定資料 定資料的設定而言,這允許一 式專屬處理器設定資料為可程 的任何適當地方儲存設定資料 組個別的登錄3 4中。 通常,設定監控模式專屬 模式中為處理器的操作提供一 上述實施例中,該監控模式專 記憶體管理單元30為失效的, 式中時,據此,使可能被該記 至實體記憶體轉譯失效。在此 被安排為直接發出實體位址, 時確保只能由處理器修s 就控模式專屬處理器言 些彈性。如果安排該監控着 式設計的,則能夠在系統^ ,如在CP15登錄34中的一 處理器設定資料,以在監老 非常安全的環境。因此,名 屬處理器設定資料可能設灵 當該處理器係操作於監控指 憶體管理單元所應用的虛指 類狀況下,該處理器將總^ 當發出記憶體存取請求時,
即,將使用平面映射。其確保在監控模式中操作時,處理 器能夠可办地存取δ己憶體’而不管是否任何虛擬至實體位 址的映射是相配合的。 當處理器在監控模式中操作時,監控模式專屬處理器 設定資料通常也允許處理器存取安全性資料。其由網域狀 態位元形式的δ己憶體允許資料設定為佳,在安全性處理器 設定資料中’具有相同值的網域狀態位元會被設定給相同 值的網域狀態位元ΓS 11位元)^因此,不管儲存在CP 1 5登 錄中的網域狀態之實際值為何,該值會被由監控模式專屬 處理器設定資料所設定的網域狀態位元所覆蓋,以確定監 69 200411555 控模 對部 操作 不要 料的 實施 有用 錄可 器設 性網 值。 如果 此類 換, 該處 CP15 任何 體中 位元* 位元 已存取安全性資料。 控模式專屬處理器設定資料可以設定其他用來控制 記憶體存取的資料。例如,當處理器在監控模式中 ’監控模式專屬處理器設定資料可以設定快取3 8 來存取資料。 t上述的實施例中,已經假設所有含有處理器設定資 CP 1 5登錄都在網域間被共用。然而,在一選擇性的 中,將一些CP15登錄予以「分塊(banked)」,例如, 又儲存處理器設定資料的一特定項目的兩登錄,一登 又在非安全性網域中存取並含有非安全性網域的處理 t資料之項目值,和另一登錄在安全性網域可在安全 策中存取並含有安全性網域的處理器設定資料之項目 不被分塊的一 CP15登錄是含有"S"位元者,但原則上 命望的話’任何其他的CP 1 5登錄都可以被分塊。在 實施例中’由監控模式所做的處理器設定資料的轉 歩及將任何共用的CP 1 5登錄轉換至記憶體中,現在 里器設定資料在在該些共用登錄中,和在該些共用的 登錄中’载入與終點網域有關的處理器設定資料。對 >塊的登錄而言,不必儲存該處理器設定資料至記憶 ’相反地’由於改變儲在相關的共用CP15登錄中的S 轉換將自動地發生。 阳先刖所述,監控模式處理器設定資料將一網域狀態 ’其覆蓋儲存在CP15登錄的資料,但是具有與用於
70 200411555 安全性網域之網域狀態位元相同之值(即,在上述實施例中 的s位元值υ。當一些CP15登錄被分塊時,它意味著在 第35圖中至少部分監控模式專屬處理器設定資料2〇〇〇能 夠從在被分塊的登錄中儲存的安全性處理器設定資料中導 出’因為在轉換處理期間未對記憶體寫入出該些登錄内容。 因此,舉一示例,因為監控模式專屬處理器將設定— 網域狀態位元,以覆蓋當不在監控模式中所使用者。而在 較佳實施例中,它有與在安全性網域中所使用者相同的 值,它意味著選擇可存取的分塊CP 15登錄的邏輯是允許 存取安全性分塊CP 1 5。藉由允許監控模式將該安全性處理 器設定資料用作監控模式專屬處理器設定資料的相關部 分,能夠實施對資源的儲存’因為不再需要為監控模式專 屬處理器設定資料的該些項目提供一組個別的登錄。 第36圖是一流程圖,圖示當需要在一網域之間轉換 時,用以執行處理器設定資料的轉換的步驟。如先前所述, 發出一 SMI指令,以促使進行網域之間的轉換。因此,在 第2020步驟,等待一 SMI指令的發出。當接收一 SMI指 令時,處理器進行至第2 030步驟,其中處理器在監控模式 中開始執行監控程式,它使該監控模式專屬處理器設定資 料被使作在前往多工轉換器2010的路徑2015上的控制信 號的結果,導致多工轉換器轉換監控模式專屬處理器設定 資料。如先前所述,它可能是一組自我包含的資料,或可 以從在被分塊的登錄中儲存的安全性處理器設定資料所得 到某些部分。 71 200411555 、此後,在第2040步驟,自發出SMI指令至記憶體的 ^域儲存現有的狀態,它包括從任何共㈣cpl5登錄, :上述網域相關的處理器設定資料狀態。通常,會撥 牛15刀》己憶體,以供儲存此類狀態之用。而後,在第2〇5〇 " 轉換狀態“標為指向含有終點網域的對應狀態之記 隐體因此’通常’為了儲存狀態資訊配置兩部分記憶體, 配置為儲存非安全性網域的狀態,而一配置為儲存安全 性網域的狀態。 一旦在第2050步驟轉換了狀態指標,現下狀態指標所 指向的狀態在第2060步驟中被載入相關的共用CP15登錄 裡’其包含為終點網域所載入之相關處理器設定資料。此 後’在第2070步驟,當在監控模式中時,監控程式退出, 而之後處理器在終點網域中轉換至所需要的模式。 第3 7圖詳細圖示本發明一實施例之記憶體管理邏輯 3〇的操作。該記憶體管理邏輯包含一記憶體管理單元 (MMU)200和一記憶體保護單元(MPU)220。由被設定一虛 擬位址的核心1 〇發出的任何存取請求將經由路徑234傳遞 至該MMU 2 00,該MMU 200負責執行預定的存取控制功 能,尤其是決定與虛擬位址對應的實體位址,和決定存取 許可權限和決定區域屬性。 資料處理設備的記憶體系統包含安全性記憶體和非安 全性記憶體。用來儲存存取安全性資料的安全性記憶體只 希望被核心10所存取,或一或多數的其它主控裝置,當核 心或其它的裝置在在安全性模式中操作和因此在安全性網 72 200411555 域中操作時。 在第3 7圖所示之本發明的實施例中,在非安全性模式 下,在核心1 〇執行的應用在安全性記憶體中存取安全性資 料的策略是藉由該MPU 2 20中的分割檢測器所執行,該 MPU 220由安全性作業系統所安排,本文中亦指安全性核 心 0
依據本發明之較佳實施例,在非安全性記憶體中提供 一非安全性分頁表5 8,例如在外部記憶體5 6的一非安全 性記憶體部分,並用以為在上述分頁表中所定義的每一非 安全性記憶體區域儲存對應的描述符(descript〇r)。該描述 符所包含的資訊,可從中得到用以令MMU執行預定的存 取控制功能所需的存取控制資訊,並據以在參照第37圖所 述之實施例中’提供關於虛擬至實體位址映射的資訊、存 取許可權限、和任何區域屬性。 此外,依據本發明之較彳去眘 $月衩佳實施例,在記憶體系統的 全性記憶體中,至少提供一安全彳 注分頁表5 8,例如在外 記憶體5 6的一安全性部分中,发
具再次為在該表中所定義 些S己憶體區域提供一相關的据奸、 ^ ^ j扪粞述符。當處理器在一非 全性模式中操作時,將參考該非 认拉 非女全性分頁表,以獲得 於管理記憶體存取的相關描述鎔 守’反之,當處理器名忠 性模式中操作時,將使用來自 ώ, 文全性分頁表的描述符。 自相關分頁表獲得描述符s Α 1Λ ^ 付至MMU的過程如下。由 心1 〇發出的記憶體存取請求今^ 疋一虛擬位址,一杳均勃 於 micro-TLB 206(TLB 係主 | ~ ^ 轉譯參考緩衝(transiati 73 200411555 lookaside buffer)),其為一些虛擬位址部分之一儲存獲自 相關分頁表的對應實體位址部分。因此,micro-TLB 206 將把虛擬位址的一某部分與在micro-TLB中儲存的對應虛 擬位址部分比較,以決定是否符合。比較的部分通常是虛 擬位址的多數重要位元的一些預定的數字,位元的數目依 據在分頁表58中的分頁粒度。在micro-TLB 206中執行的 查詢通常相對地快速,因為micro-TLB 206只包括相對地 少量的項目,例如八項。 當沒有在micro-TLB 206中找到符合者(hit)的時候, 則記憶體存取請求被經由路徑242傳遞到含有獲取自該些 分頁表的一些描述符之主要TLB 208。稍後將在下文中進 一步时論’來自非安全性分頁表和安全性分頁表的描述符 都能夠在主要TLB 208中共存,而在主要TLB中的每一項 目都具有一對應的旗標(本文中稱為網域旗標),其可設定 以指示是否在項目中對應的描述符已經從一安全性分頁表 或一非安全性分頁表獲得。吾人將了解,對於所有在它們 的記憶體存取請求中直接設定實體位址的安全性模式操作 而言,是不需要主要TLB中的此類旗標的,當主要TLB 只儲存非安全性描述符時。 在主要TLB 208中,執行一類似查詢程序,以決定是 否在記憶體存取請求中發出的虛擬位址的相關部分對應於 在主要TLB 208中與描述符相關的任何虛擬位址部分,又 該主要TLB相關於操作的特定模式。因此,如果核心丄〇 在非安全性模式中操作,主要TLB 208中只有已經從非安 74 200411555 全性分頁表得到的該些描述符會被檢查,反之如果核心1〇 在安全性模式中操作,則在主要TLB中只有已經從安全性 分頁表得到的描述符會被檢查。 如果在主要TLB中,檢查處理的結果有符合者,則自 相關描述符提取存取控制資訊並經由路徑242傳送。尤其 是,描述符的虛擬位址部分和對應的實體位址部分將經由
路徑上242被繞送到micro-TLB 206,以儲存在micro-TLB 的一項目中,載入存取許可權限至存取許可邏輯202,而 載入區域屬性至區域屬性邏輯204。存取許可邏輯202和 區域屬性邏輯204可以與micro-TLB分離,或可以合併於 micro-TLB 中。 此刻’ Μ M U 2 0 0能夠處理記憶體存取請求,因為現下 在micro-TLB 206中有將一符合者。因此,micr〇_TLB 2〇6 將產生實體位址’其可能經由路控2 3 8輪出至系統匯流排 40,以繞送至相關的記憶體,這若不是藉由晶片整合 (on-chip)記憶體,如TCM 36、快取38等等,就是藉由可 經由外部匯流排界面42存取的外部記憶體單元之一。同 時’記憶體存取邏輯202將決定是否允許記憶體存取,和 如果不允許核心在現有模式的操作中存取該特定的記憶體 位址,則經由路徑230發出一中止訊號回到核心ι〇。例如, 不論在安全性記憶體或非安全性記憶體中,當核心在監督 模式下操作時,核心設定記憶體的特定部分為只能被核心 所存取,而因此,當在例如使用者模式下時,如果核心企 圖存取此類記憶體位址,存取許可邏輯2〇2將债測到核心 75 200411555 10目前不具有適當的存取權限,並藉由路徑230發出中止 信號。這將使記憶體存取中止。最後,區域屬性邏輯2〇4 將決定特疋δ己憶體的區域屬性,例如是否存取是可快取 的、可緩衝的、等等,和經由路徑232發出此類信號,其 中將用它們來決定記憶體存取請求的資料是否能夠被快 取,例如在該快取3 8中,是否在寫入存取的情況下,所寫 入的資料能夠被緩衝,等等。
在主要T L Β 2 0 8中沒有符合者的情況下,則轉譯表行 走邏輯(translation table walk l〇gic)210被用來存取相關 分頁表58,以經由路徑248戴取所需要的描述符,而後經 由路徑246令描述符傳遞至主要tlb 208,以儲存取其中。 非安全性分頁表和安全性分頁表兩者的基礎位址將儲存名 登錄CP1 5 34中,而處理器核心1〇所操作的現有網域, 即安全性網域或非安全性網域,亦將在cp丨5的一登錄寸 λ疋,㊂轉換在非女全性網域和安全性網域之間發生時, 或反之亦然,網域狀態登錄將由監控模式設置。網域狀戴 登錄的内容在本文中將稱作網域位元。因此,如果需要幸 行一轉譯表彳走程該轉譯表行走邏肖21〇將知道心 所執行之網域,和因此知道輅、,+ ^ 力逼所用以存取該相關表的基礎七 址》而後該虛擬位址被用作對該基礎位址的補償以在却 當的分頁表中存取適當的項目,以獲得所需要的描述符。 -旦由轉譯表行走邏輯21G截取了該描述符並置* 主要TLB 208中,則在該主要則中將獲得—符合者 以及啤叫先前描述的程序,以戴取存取控制資訊,和將$ 76 200411555 儲存在micro-TLB 206、存取許可邏輯中202和區域屬性 邏輯204中,而後記憶體存取可由MMU200作動。 如先前所述,在較佳實施例中,主要TLB 208能夠储 存來自安全性分頁表和非安全性分頁表兩者的描述符,但 是、一旦在micro-TLB 206中儲存了相關資訊,只能由MMU 200處理記憶體存取請求。在較佳實施例中,在主要TLB 208和micro-TLB 206間的資料傳輸是由位於MPU 220的 分割檢測器222所監控,以確保當核心1 〇在一非安全性模 式中操作時,沒有存取控制資訊自主要TLB中的描敘符傳 輸至micro-TLB 206中,如果這樣的話,將導致在安全性 記憶體中產生一實體位址。 記憶體保護單元係由安全性作業系統所管理,其能設 定於在安全性記憶體和非安全性記憶體之間定義分割的 CP1 5 34分割資訊的登錄中。而後分割檢測器222能參考 分割資訊,以決定的是否存取控制資訊傳輸至micro-TLB 2 〇 ό ’其允許在一非安全性模式中由核心1 〇存取安全性記 憶體。尤有甚者’在較佳實施例中,當核心1 〇係操作於一 非安全性模式中,如同在CP 1 5網域狀態登錄中由監控模 式所設定的網域位元所指示般,可操作分割檢測器222以 經由路徑 244,監控企圖自該主要 TLB208擷取至 micro-TLB 206之任一實體位址部分,和依據該實體位址 部分’決定是否之後為該虛擬位址所產生的實體位址是在 安全性記憶體中。在這種狀況下,分割檢測器222將經由 路徑230對核心10發出中止信號,以防止記憶體存取發生。 77 200411555 體位 位址 部分 除, 藉由 中網 網域 因此 記憶 求自 取相 當核 安全 記憶 取請 式中 220 〇 屬性 域所 可和 吾人將了解,能夠安排分割檢測器222以確實防止實 址部分被储存在micro-TLB 206中,或選擇性地實體 部分仍然儲存在micro-TLB 206中,但是中止處理的 將從micro-TLB 206中把不正確的實體位址部分移 例如藉由清除micro-TLB 206。 只要核心1 〇在一非安全性模式和一安全性模式之間 監控模式改變,監控模式將改變CP 1 5網域狀態登錄 域位元值,以指示處理器的操作所變成的網域。作為 之間傳輸程序的一部分’將清除micro-TLB 206,和 在安全性網域以及非安全性網域之間轉換之後的第一 體存取將在micro-TLB 206產生不符者(miss),和請 主要TLB 2 08截取存取資訊,或直接自相關分頁表截 關的描述符。 藉由上述方法,吾人將了解,分割檢測器222將確保 心在非安全性網域中操作時,如果意圖截取允許存取 性記憶體的micr〇-TLB 206存取控制資訊,將產生一 體存取中止。 如果處理器核心1 〇操作的任何模式中,安排記憶體存 求以直接設定一實體位址,則在MMU 200的操作模 將失效’而實體位址將經由路徑236傳遞至Mpu 在操作的一安全性模式中,存取許可邏輯224和區域 邏輯226依據替在CP 1 5 34中分割資訊登錄的對應區 定義的存取許可權限和區域屬性,執行必要的存取許 區域屬性分析。如果企圖被存取的安全性記憶體位置 78 200411555 是在只能在一特定模式操作中存取之安全性記憶體的一部 分中’例如安全性權限模式,則核心在一不同模式操作所 意圖的存取’例如’ 一安全性使用者模式,將導致存取許 可邏輯224產生一中止,以相同於ΜΜυ的存取許可邏輯 202在此類環境中產生一中止的方法,經由路徑230傳至 核心。同樣地’區域屬性邏輯226將產生可快取的以及可 緩衝的信號,以相同於MMU的區域屬性邏輯204替以虛 擬位址設定的記憶體存取請求產生此類信號。假定允許該 存取’此時存取請求經由路徑24〇進行至系統匯流排4〇, 從此類,其繞送至適當的記憶體單元。 為了存取請求指定一實體位址之一非安全性存取,存 取請求將藉由路徑236被繞送到分割檢測器222,其參照 cp 1 5登錄34的分割資訊以執行分割檢查,以決定是否實 體位址在安全性記憶體中指定一位置,該情況下,將再次 經由路經230產生中止信號。 上述記憶體管理邏輯的程序現下參照第3 9圖和第4〇 圖的流程圖進一步詳盡描述。第39圖圖示在核心1〇執行 的程式產生一虛擬位址的情況,如第300步驟所示。依據 監控描4、 ^供式所設定之在CP 1 5網域狀態登錄34中的相關網域 位70 ’將指示核心是否現下在一安全性網域或非安全性網 域中執行。該情況下,核心正在一安全性網域中執行,過 程發展至第302步驟,其中在micro-TLB 2 06中執行—杳 °旬以了解是否虛擬位址的相關部分符合在micro-TLB φ从 卢撼 的 亚 位址部分之一。如果在第302步驟中符合,處理直接 79 200411555 發展至第312步驟,其中存取許可邏輯2〇2執行必要的存 取許可分析。在第3丨4步驟,其決定是否有一存取許可違 反,而如果有,則程序進行至第316步驟,其中存取許可 邏輯202經由路徑23〇發出_中±。^則,如果沒有存取 許可違反’則處理從第314步驟進行至第318步驟,其中 進行記憶體存取。特別是區域屬性 輸出必要的可快取和可緩衝屬性, 邏輯204將經由路徑232 以及 micro-TLB 206 將
如稍早所述經由路徑238發出實體位址 如果在第302步驟在micr〇-TLB有不符者則在第3〇4 步驟在主要TLB 208中執行一查詢程序以決定是否所需要 的安全性描述符在主要TLB中存在。否則,則在第3〇6步 驟執行一分頁表行走程序,據以轉譯表行走邏輯21〇自安 全性分頁表獲得需要的描述符,如第37圖稍早所述。此時 程序進行至第308步驟,或直接從第3〇4步驟進行至第308 步驟’如果安全性描述符已經存在於主要TLB 208。
在第308步驟’其決定主要tlb現下含有該有效標籤 (tagged)的安全性描述符,以及因此程序進行至第31〇步 驟’其中在micro-TLB载入含有實體位址部分的描述符的 子部分。因為核心1 0現下正在安全性模式中執行,分割檢 測器222不需要執行任何分割檢查功能σ 此時程序進行至第312步驟,其中記憶體存取的其餘 部分如稍早所述般進行。 如果非安全性把憶體存取,處理從第3 0 0步驟進行至 第320步驟,其中在micr〇-TLB 2〇6執行一查詢程序以自 80 200411555 一非安全性描述符決定對應的實體位址部分是否存在。如 果有,則程序直接發展至第336步驟,其中由存取許可邏 輯202檢查存取許可權限。在該點應注意到,如果相關實 體位址部分是在micro-TLB中’其假設沒有安全性違反, 因為在被儲存到micro_TLB中之前,分割檢測器22有效 地監督該資訊。一旦在第336步驟已經檢查了該存取許 可,則程序進行至第338步驟,其中決定是否有任何違反°, 其中存取許可錯誤中止在第316步驟發出。否則,程序進 行至第318步驟,其中記憶體存取的其餘部分如稍早所討 論般執行。 如果在第320步驟未有符合者位於micr〇 TLB,則程 序進行至第322步驟,其中在主要TLB 2〇8執行一查尋= 序以決定相關的非安全性描述符是否存在。否則,由轉譯 表行走邏輯210在第3 24步驟執行一分頁表行走程序,^ 自非安全性分頁表截取必要的非安全性描述符至主要tlb 208。此時程序進行至第326步驟,或直接自第322步驟進 行至第326步驟,如果在第322步驟在主要τ£Β2〇8中出 現符合者。在第326步驟,其決定主要TLB現下含有所考 慮的虛擬位址的有效附加的非安全性描述符,而後在第 328步驟分割檢測器222檢查從(在描述符中給定實體位址 部分的)記憶體存取請求的虛擬位址所產生的實體位址將 指向非安全性記憶體中的-位置。否貝,丨,即如果實體位址 指向安全性記憶體中的一位置,則在第33〇步驟,其決定 有安全性一違反,而程序進行至第332步驟,其中2分割 81 200411555 檢須 反, 有賀 驟, 存取 作癆 錄中 在第 220 可, 行, 模式 割檢 安全 反, 全性 中的 產生 在二 中, 一安 »J器2 22發出一安全性/非安全性錯誤中止。 然而’如果分割檢測器邏輯222決定沒有安全性違 則程序進行至第334步驟,其中在micr〇_TLB載入含 •體位址部分的相關描述符的子部分,其後在第336步 以先前所述之方式進行記憶體存取。 參照第40圖現下描述直接發出一實體位址的記憶體 請求的處理。如先前所述,在該歷程中,MMU 200將 ,其最好由登錄一 MMU啟用位元之CP 1 5的一相關登 的没定所達成’該設定程序由監控模式所執行。因此, 3 50步驟,核心1〇將產生將經由路徑236傳送到Mpu 裡的一實體位址。而後,在第352步驟,Mpu檢查許 以確認被請求的記憶體存取能夠以現有的操作模式進 即使用者、監督、等等。此外,如果核心在非安全性 中操作’不論是否實體位址在非安全性記憶體中,分 測器222在第352步驟也將檢查是否實體記憶體在非 性模式中。而後,在第354步驟,其決定是否有一違 即,是否存取許可程序揭露了 一違反,或如果在非安 模式中,分割檢查程序確認了一違反。如果該些違反 任發生,則程序進行至第356步驟,其中由ΜΡϋ 220 一存取許可錯誤中止。吾人將了解,在某些實施例中, 種類型的中止之間沒有差別,而在選擇性的實施例 該中止信號可公指示是否其關聯於一存取許可錯誤或 全性錯誤。 如果在第3 54步驟沒偵測到任何違反,程序進行至第 82 358200411555 址, 將啟 位址 所有 作的 了解 能夠 完全 以由 取請 安全 全的 之主 當一 另一 然需 否意 位址 請求 步驟’其中發生記憶體存取由實體位址確認的位置。 在較佳實施例中,僅安排監控模式直接產生實體位 以及因此在所有其它情況中,如稍早所述般,MMU 200 用以及將發生從記憶體存取請求的虛擬位址產生實體 第38圖圖示記憶體管理邏輯的一選擇性實 把憶體存取請求都指定一虛擬位址,以及因此未在操 任何模式中直接產生實體位址。在該歷程中,吾人將 ,不需要一個別的MPU 220,和反之分割檢測器222 合併於MMU 200之中。這改變悄悄地發生,程序以 相同於猶早參照第37圖至第39圖所討論之模式進行。 吾人將了解,各種其它選擇亦有可能。例如,假定可 指定虛擬位址的安全性和非安全性模式發出記憶體存 求,能提供二MMU,一供安全性存取請求,和一供非 性存取請求,即,在第37圖中的Μρυ 22〇能用一完 MMU取代。在這種情況下,可能不需要與每_ 要TLB使用之旗標,其用q義安全性或非安全性, MMU在它的主要TLB中儲存非安全性描述符,以及 MMU在它的主要TLB儲存安全性描述符。當然,^ 要分割檢測器以檢查當核心在非安全性網域中時,^ 圖存取安全性記憶體。 疋 如果,選擇性地,所有記憶體存取請求直接 ,-選擇性的執行可以使用:Mpu,—供安全^ ’和-供非安全㈣取請求。用於非安全性 ^ 83 200411555 的MPU可能有由安全性分割檢測器所監督之它的存取請 求,以確保不在非安全性模式中允許存取安全性記憶體。 第37圖或第38圖之任一安排可以提供進一步的特 徵,•可以安排分割檢測器222以執行一些分割檢查,以監 督轉譯表行走邏輯210的活動。尤其是,如果核心現下在 非安全性網域中操作,則能安排分割檢測器222進行檢 查’只要轉譯表行走邏輯210企圖存取一分頁表,其存取 非安全性分頁表而非安全性分頁表。如果偵測到一違反, 最好能產生中止信號。因為轉譯表行走邏輯21〇通常藉由 使一分頁表基礎位址與由記憶體存取請求發出的虛擬位址 的某些位元結合,以執行該分頁表查詢,該分割檢測可能 涉及,例如,檢查轉譯表行走邏輯2 1 0係使用一非安全性 分頁表的一基礎位址而奍一安全性分頁表的一基礎位址。 第41圖圖示當核心1 〇在一非安全性模式中操作時, 由分割檢測器222執行的程序。吾人將了解,在正常的操 作下,從非安全性分頁表獲得的描述符應該只描述在非安 全性記憶體中映射的一分頁。然而,在軟體攻擊中,描述 符可能被竄改,以使它現下描述含有記憶體的非安全性和 安全性區域的一部分。因此,考慮第4 i圖之一示例,受篡 改的非安全性描述符可以涵蓋一分頁,其包括非安全性區 域370、372、374和安全性區域376、378、38〇。如果作 為記憶體存取請求的一部分發出的虛擬位址此時符合在一 安全性記憶體區域的一實體位址,如第4 1圖所示之安全性 記憶體區域376,則安排分割檢測器222產生一中止以防 84 200411555 止存取發生。因此,即使意圖存取安全 改了非安全性描述符,分割檢測器222 相對地,如果使用該描述符導出的實體 記憶體區域一致,例如,如第4丨圖所示 入micro-TLB 2 06裡的存取控制資訊僅 域374。因此,在非安全性記憶體區域 發生,但是,對任何安全性區域3 76、 不能夠發生。因此,可以看到即使主要 自已被竄改的非安全性分頁表的描述符 包含實體位址部分,其將啟用對非安全 取0 如稍早所述,在實施例中,非安全 式可以產生指定虛擬位址的記憶體存取 最好都包括非安全性記憶體中的一非安 全性記憶體中的一安全性分頁表。在非 轉譯表行走邏輯210將參考該非安全性 性模式中時,轉譯表行走邏輯21〇將參 第42圖示該兩分頁表。如在第42圖所 1圖所示之外部記憶體56中的非安全性 其中之一非安全性分頁表395,其參考 一 CP15登錄34中指定。同樣地,在安全 其可以再次在第1圖所示之外部記憶體 的安全性分頁表405,其由一安全性分 在一複製的CP15登錄34中指定。在非 性記憶體之企圖篡 防止該存取發生。 位址與一非安全性 的區域3 7 4,則载 確§忍该非安全性區 374中的存取能夠 378或380的存取 TLB 208可能含來 ,micro-TLB 將只 性δ己憶體區域的存 性模式和安全性模 請求,而後記憶體 全性分頁表,和安 安全性模式中時, 分頁表,而在安全 考安全性分頁表。 示,可能在例如第 記憶體390包括在 一基礎位址397在 ‘性記憶體400中, 5 6中’提供一對應 頁表基礎位址 407 安全性分頁表395 200411555 中的母一描述符都將指向在非安全性記憶體3 9 〇中的一對 應非安全性分頁,而在安全性分頁表405中的每一描述符 都將定義安全性記憶體400中的對應安全性分頁。此外, 將在稍後詳述的,對某些區域的記憶體而言,是可能共用 記憶體區域4 1 0,其為非安全性模式和安全性模式所能存 取。 第43圖依據較佳實施例,詳述在主要TLB 208中執 行的查詢程序。如先前所述,主要TLB 208包括一網域旗 標425,其確認是否對應的描述符435係來自安全性分頁 表或非安全性分頁表。它確保當執行一查尋程序時,僅相 關於核心1 0所操作之特定網域的描述符會被檢查。第43 圖圖示一示例,其中核心執行於也稱作安全性情境之一安 全性網域。可自第43圖看出,當執行一主要TLB 208查 詢時,它將導致忽略描述符440,和僅描述符445被認定 為查尋程序的候選者。 依據本發明之較佳實施例,在本文中亦稱作AS ID旗 標之一額外程序ID旗標430使提供以從程序專屬分頁表 確認描述符。因此,程序p 1、P2和P3每一具有在記憶體 中提供的對應分頁表,和進一步可以對非安全性操作和安 全性操作有不同的分頁表。尤有甚者,吾人將了解,在安 全性網域中的程序P1、P2、P3可以完全獨立於在非安全 性網域中的程序P1、P2、P3。因此,如第43圖所示,除 檢查網域之外,當需要主要TLB查詢208時,也檢查ASID 旗標。 86 200411555 因此,在第4 3圖的示例中,在安全性網域,執行程序 P1’該查尋程序確認在主要TLB 208中僅兩項目450,以 及依據疋否在兩描述符中有虛擬位址部分符合由記憶體存 取請求所發出的虛擬位址部分,產生符合者(hit)或不符者 (miss)。如果有,則把該相關的存取控制資訊截取並傳遞 至micro-TLB 206、存取許可邏輯202和區域屬性邏輯 204 。否則,一不符者發生,以及轉譯表行走邏輯21()被
用於從提供給安全性程序P1的分頁表截取需要的描述符 至主要TLB 208裡。熟知本項技藝者將了解,有許多管理 TLB的内容的技術,並因此當截取一新的描述符以儲存在 主要TLB208中’而主要TLB已經滿载,可以用多數習知 技術之任一來決定欲自主要TLB去除的描述符,以為新描 述符製造空間,例如最近使用的方法,等等。 吾人將了解’用於操作的安全性模式的安全性核心可 以完全獨立於非安全性作業系而發展。然而,在某些情況 中,安全性核心和非安全性作業系統發展可以密切地連 接,而在此情況下,適於允許安全性應用使用非安全性描
述符 的確 這將允許安全性應用藉由僅知的虛擬位址直 接存取非安全性資料(以共用)。其#然假設安全性虛擬映 射和和非安全性虚擬映射可供特定asid執行。在此類歷 程中’不需要預先導入標簽以(即,網域旗標)在安全性和 非安全性描述符之間識別 述符執行查詢。 反之在TLB中以所有可用的描 在較佳的實施例中 在主要TLB的架構和先前所述之 87 200411555 分離的安全性和非安全性描述符的架構,能夠由在CP15 控制登錄中所提供的特定位元所設置。在較佳實施例中, 只由安全性核心設置該位元。 在實施例中,允許安全性應用直接使用一非安全性虛 擬位址,其亦可能從安全性網域使非安全性堆疊指標變為 可獲得。它能夠藉由複製確認非安全性堆疊指標的非安全 性登錄值至CP 1 5登錄34中的一專屬登錄。此時它將促使 非安全性應用依據被安全性應用所理解的規劃藉由該堆聶 傳遞參數。 如稍早所述,記憶體可能被分割為非安全性和安全性 部分,以及使用專屬於分割檢測器222之CP15登錄34, 由核心控制該分割。基本分割方法係基於在典型MPU裝置 中定義之區域存取許可。因此,把記憶體分成多數區域, 以及最好此用它的基礎位址、大小、記憶體屬性和存取許 可定義每一區域。尤有甚者,當設計重疊區域時,上方區 域的屬性擁有最高的優先權。此外,依據本發明之較佳實 施例,提供一新的區域屬性以定義是否對應的區域在安全 _ 性記憶體或在非安全性記憶體中。由安全性核心使用該新 的區域屬性來定義欲被作為安全性記憶體來保護的記憶體 部分。 在開機階段,如第44圖所示般執行一第一分割。該初 始分割將決定分發給非安全性情境、非安全性作業系統和 非安全性應用的記憶體460的數量。該數量與在分割中定 義的非安全性區域一致。而後由非安全性作業系統將該資 88 200411555 訊用於它的記憶體管理。其餘的記憶體462、464 (被定義 為安全性的)不被非安全性作業系統所知道。為了保護非安 全性情境的完整性’可設計非安全性記憶體為只允許安全 性權限模式存取。因此’安全性應用將不被該些非安全性 者所竄改。如第44圖所示,在該開機階段分割之後,記憶 體460可用於供非安全性作業系統使用、記憶體462可用 於供安全性核心使用’以及記憶體4 6 4可用於供安全性應 用使用。 一旦已經執行了該開機階段分割,由使用 MMU 200 的非安全性作業系統處理非安全性記憶體460的記憶體映 射,以及因此能夠以一並通模式定義一系列非安全性分 頁。如第45圖所述。 如果一安全性應用需要與一非安全性應用共用記憶 體,安全性核心能夠改變記憶體一部分的權限以從一網域 傳送偽造資料至其他者。因此,如第46圖所示,安全性核 心能夠在檢查非安全性分頁的完整性以後,改變該分頁的 權限,以使安全性分頁466變為可存取之共用記憶體。 當記憶體的分割改變時,micro-TLB 206需要被清除。 因此,在該歷程中,當其後發生一非安全性存取時,在 micro-TLB 206將發生一不符者,以及因此從主要TLB 20 8 載入一新的描述符。由MPU的分割檢測器222在其後檢查 該新的描述符,當意圖截取它至micro-TLB 206時,所以 將與記憶體的新分割一致。 在較佳實施例中’該快取3 8是虛擬索引和實體附加 89 200411555
的。因此,當在該快取38中執行一存取時,首先在 micro-TLB 206已經執行一查詢,而因此存取許可(尤其是 安全性和非安全性許可)將被檢查。因此,在快取Μ /中Z 能由非安全性應用错存安全性資料,並因此在非安全性模 式中不能執行對安全性資料的存取。 然而,在非安全性網域對一安全性應用而言,可能 生一問題是能夠使用快取操作登錄 ^ .. <仃作癃 (mvahdate)、清除或去除該快取。发 /、需要保證此類操作 會影響系統的安全性。例如,如果非 ^ L. ^ 文Γ作業系統欲作 療快取3 8而不用清除它,在取代前, 仕外σ卩圯憶體必 :入任何安全性受污染的資料。較佳的實施例丨, 、 資料係在快取中附加,和因此如果希望的冑’生 區別地處理。 Α夠進行有 在較佳實施例中,如果由一非安全性程式執行一「 據位址作瘙快取線」操作,由分割檢測器檢杳 址,以及如果快取線是一安全性快取線,操作成為「體位 和作癆」操作,從而確保系統的安全性能維持。尤有月除 在較佳實施例中,由一非安全性程式執行的所冑「:者’ 引作癆快取線」操作成為「依據索引清除和作瘙」。據索 非女全性程式執行的所有「作癆全部」操 5 7 除和作瘵全部」。 為「清 此外,參考第_圖’ mi⑽_TLB 2G6控制 36的任何存取。因此,當DMA 32在執〜 、 以把匕的虛擬位址轉換成一實體者時,添加 一”旬, 、王要内 90 200411555 的先前所述之旗標允許執行需要的安全性檢查,猶如已由 核心1 〇發出存取請求般。此外,將在稍後討論,一複製部 分被連接至外部匯流排70,最好位在判優器(arbiter)/解馬 區塊之中,以使在DMA 32藉由外部匯流排界面42直接存 取與外部匯流排7 0連結的記憶體時,使與外部匯流排連接 的複製分割檢測器檢查存取的有效性。尤有甚者,在某些 較佳實施例中,有可能向CP15登錄34中添加一位元以定 義是否DMA控制器32可用於非安全性網域,當在一權限 模式中操作時,該位元僅允許由安全性核心設置。 考慮TCM 36,如果安全性資料被置於TCM 36之中, 必須小心地處理它。舉一示例,可想見一歷程,其中非安 全性作業系統為T CM記憶體3 6設計實體位址範圍,以使 其重疊一外部安全性記憶體部分。如果操作的模式之後改 變至一安全性模式,安全性核心可能導致資料儲存在上述 重疊部分,而通常在TCM 36儲存該資料,因為TCM 36通 常具有比外部記憶體較高之優先權。如果非安全性作業系 統之後為TCM 36改變實體位址空間的設定,以使先前的 安全性區域現下映射至記憶體的非安全性實體區域,吾人 將了解,此時該非安全性作業系統能夠存取該安全性資 料,因為分割檢測器將視該區域為非安全性而將不宣告一 中止。因此,簡而言之,如果T CM被設定為以正常的本地 端RAM作用,而非SamrtCache,如果它可以移動TCM基 礎的登錄至非安全性實體位址,則可能讓非安全性作業系 統讀取安全性情境資料。 91 200411555 用以丨 CP15登錄 可能的架— 中TCM只 中意圖對 進入一未】 模式和非」 權限模式^ 成"0” ,其 情況下,J 性資料可: 全性存取I T C Μ位址 預設 TCM,在 j 如先: 外,本發I 連接至外, 他主控裝 (DSP)50、 外部匯流; 等等。在; 分割檢測1 作為記憶彳 方止上述歷程,在較佳實施例中提供控制位元於 34其只能在安全性模式操作中存取,和提供兩 虜。在一第一架構中,把控制位元設置成” 1 ",其 月匕夠由女王性權限模式控制。因此,在c P 1 5 3 4 TCM控制意圖進行的任何非安全性存取將導致 (義指令異常。因此,在該第一架構中,安全性 欠全性模式都能夠使用TCM,但是,僅由安全性 陵制該TCM。纟第二架構中,把該控制位元設置 中TCM能夠由非安全性作業系統控制。在這種 、月b由非安全性應用使用該TCM。沒有任何安全 以從TCM處載入或存入tCm。因此,當執行安 時’不在TCM中執行查詢以了解位址是否與該 範圍符合。 的情況下’想像僅能由非安全性作業系統使用 泛種歷程中’不需要改變非安全性作業系統。 剛所述’除了在MPU 220提供分割檢測器222之 明之較佳實施例也提供一類似的分割檢測區塊其 部®、流排70,該額外的分割檢測器被用於監督其 置對記憶體的存取,例如,數位信號處理器 直接連接至外部匯流排的DMA控制器52、經由 排界面42連接至外部匯流排的DMA控制器32、 某些實施例中’如稍後將討論的,有可能只有一 區塊連接至外部匯流排,而不提供一分割檢測器 禮管理邏輯3 〇的一部分。在一些此類實施例中,
92 200411555 可以選擇性地提供一分割檢測器作為記憶體管理邏輯3〇 的-部分,在此類示例+,該分割檢測器被視為除了與& 置匯流排連結的那個以外,所提供之一進一步的分割撿谢 器。 如先前所述,全部的記憶體系統能包含多數記憶體單 元,而上述之多種可能存在於外部匯流排7〇,例如,外部 圮憶體56、開機ROM 44、或真正的緩衝或在週邊装置中 的登錄48、62、66,例如,螢幕驅動器钧、1/〇界面、 金鑰貯藏單元64、等等。此外,記憶體系統的不同部分可 儀| 月匕4要被疋義為女全性§己憶’例如,可能需要在金鑰貯藏 單元64中的金鑰緩衝儲存器66被視為一安全性記憶徵。 如果與外部匯流排連結的一裝置意圖存取安全性記憶體, 則很明顯地,在含有核心1 〇的晶片中提供先前所述的記情 體管理邏輯30將不能監督此類存取。 、 第47圖圖示如何使用連接至外部匯流排(本文中亦护 裝置匯流排)之額外的分割檢測器492。通常安排該外部匯 流排,以使無論何時裝置(例如,裝置47〇、472)發出 體存取請求,都會進入上述外部匯流排。該些記憶體存取 _ 請求也包括在該外部匯流排上的某些信號其定義操作的楔 式,例如權限的、使用者的、等等。依照本發明之較隹2 施例,記憶體存取請求亦涉及發出一網域信號至該 .匯 流排,以確認是否該設備係操作於安全性模式或非安全性 模式中。最好能在硬體層級發出該網域信號,以及在較佳 實施例中,能夠在安全性或非安全性網域中操作的一裝置 93 200411555 將包括一預設的腳位,用以輸出該網域信號至外部匯节排 中的路徑490。為了描述它,在外部匯流排上,+ ^ 上,在另一信 號路徑488之外,單獨顯示該路徑490。 網域信號(本文亦指,’S位元")將確認是否發出纪憶體 存取請求的設備係操作於安全性網域或非安全性網域,和 由連接至外部匯流排的分割檢測器492接收該資訊。該分 割檢測器492將亦已經存取分割資訊其確認記憶體之區域 是安全性或非安全性的,和因此可以被安排為僅允許一裝 置存取記憶體的特定部分,如果該S位元係被宣告作確認 一安全性模式的操作。 在預設的情況下,想像不宣告該S位元,和因此一預 先存在的非安全性裝置(諸如第47圖所示之裝置472)將不 輸出一宣告的S位元,和因此絕不允許由分分割檢測器492 存取記憶體的任何安全性部分,不論是在螢幕驅動器 480、輪入輸出界面4 84之中的登錄或緩衝器482、486中, 或在外部記憶體474中。 為供描述之故,用來在主控裝置(諸如,裝置470、472) 所發出的記憶體存取請求之間進行判優(arbiter之判優器 區塊’係獨立於用以決定服務記憶體存取請求的適當記憶 體裝置之解碼器478和獨立於分割檢測器492來解說。然 而’吾人將了解,上述元件之一或多數可以整合於相同的 單兀中,如果希望的話。
第4 8圖圖示一選擇性實施例,其中未提供分割檢測器 492,而反之安排每一記憶體裝置474、480、484依據S 94 200411555 位元的值監督自己的記憶體存取。因此,如果裝置470要 在非安全性模式下,對在被標示為安全性記憶體之螢幕驅 動器480中的一登錄482宣告記憶體存取請求,則該螢幕 驅動器4 8 0將決定S位元未被宣告,以及不處理該記憶體 存取請求。因此,可想見以各種記憶體裝置的適當設計, 可以避免需要在外部匯流排上分別提供一分割檢測器 492 ° 在第47圖和第48圖的上述内容中,nS位元"被用作 確認發出記憶體存取請求的裝置係在安全性網域或非安全 性網域中操作。以另一種角度觀之,該S位元可視為指示 記憶體存取請求屬於安全性網域或非安全性網域。 在第37圖和第38圖所述之實施例中,一單一 MMU(連 同單——組分頁表)被用來執行虛擬至實體位址轉譯。以此 類方法,實體位址空間通常以如第49圖所示之簡單模式在 非安全性記憶體和安全性記憶體之間分成區塊。對於記憶 體系統中之記憶體單元之一,本文之一實體位址空間2 1 00 所包含範圍開始於位址零並延伸至位址Y,例如,外部記 憶體5 6。為了每一記憶體單元,可尋址記憶體通常被切割 為雨部分,一第一部分2 11 0被分配為非安全性記憶體和一 第二部分2 1 20被分配為安全性記憶體。 以此類方法,吾人將了解,有某些實體位址不能被特 定網域所存取,以及此類差異對用使於該些網域的作業系 統將十分明顯。而用於安全性網域之作業系統將知道非安 全性網域的存在,也因此將不在意這點,在非安全性網域 95 200411555 中的 是, 統知 址X 性核 性記 址空 域完 知, 域中 係開 2200 51圖 割為 記憶 體位 執行 念, 能作 一組 符, 作章& ^ „ ”系統最好應該不需要知道安全性網域的存在 之應該操作地好似不在安全性網域般。 在—進一步的議題中,吾人將了解一非安全性作 道外部記憶體的位址空間為開始於位址零和延伸 和該非安全性作業系統不需要知道任何關於該 心的事,以及尤其是從位址X+ 1延伸至位址γ的 憶體的存在。相反地,該安全性核心將不知遒它 間係開始於位址零其通常不為一作業系統所預期; 一減輕上述顧慮的實施例,藉由允許安全性記憶 全不被具有它的實體位址空間的非安全性作業系 和藉由啟用安全性網域中的安全性核心和非安全 的非安全性作業系統,以知道外部記憶體的位址 始於位址零,如第51圖所述。這裡,實體位址 能在分頁層級被切割為安全性或非安全性區塊。 所示之示例中,所示之外部記憶體的位址空間係 四個區塊2210、2220、2230和2240 ,包含兩安 體區域和兩非安全性記憶體區域。 相反於藉由一單一分頁表轉換在虛擬位址空間和 址空間之間轉換,參照一第一分頁表和一第二分 兩分離層的位址轉譯,從而導入一中間位址空間 依據是否處理器在安全性網域或非安全性網域中 不同的安排。尤有甚者,如第51圖所示,藉由使 分頁表2250中的一安全性分頁表中所提供的 實體位址空間中的兩安全性記憶體區域2 2 1 〇和 ,但 業系 至位 安全 安全 的位 瞥。 體區 統所 性網 空間 空間 在第 被切 全性 該實 頁表 的概 ,其 用在 描述 2230 96 200411555 能夠在中間位址空間映射至單一區域2265。對在處理器上 執行的作業系統而言,其將視中間位址空間為實體位址空 間’並將用MMU來在該中間位址空間中使虛擬位址轉變 成中間位址。 同樣地,能夠為非安全性網域設定中間位址空間 22 70,其中藉由在該組分頁表225〇的一非安全性分頁表中 的對應描述符,將在實體位址空間中的兩非安全性記憶體 區域2220和2240映射至非安全性網域的非安全性區域 2275 〇 在一實施例中,如第5 0 A圖所示,經由中間位址對虛 擬位址至實體位址的轉譯係使用兩獨立的MMUs所控制。 在第50A圖中的MMUs 2150和MMUs 2170可視為以相似 於第37圖所示之MMU 200的方法建構,但是,為了簡化 說明,省略了某些細節。 第一 MMU 2150 包括一 micro-TLB 2155、一主要 TLB 2160和轉譯表行走邏輯2165,而同樣地,第二MMU2170 包括一 micro-TLB 2175、一主要TLB 2180和轉譯表行走 邏輯2 1 85。當處理器在非安全性網域中操作時,由非安全 性作業系統控制該第一 MMU,或者當處理器在安全性網域 中操作時,由安全性核心控制。然而,在較佳實施例中, 該第二MMU只能由安全性核心或監控程式所控制。 當處理器核心1 0發出記憶體存取請求時,其將藉由路
徑 2153 發出一虛擬位址至 micro-TLB 2155。micr0-TLB 2155將儲存一些虛擬位址部分,其對應於自儲存在主要 97 200411555 TLB 2160中的描述符所截取的中間位址部分。在主要tlb 2160的描述符係截取自與第一 MMU 2150相關的一第一組 分頁表的分頁表。如果在micro-TLB 2 1 55中偵測到一符合 者,則micro-TLB 2155能夠經由路徑2157發出與經由路 徑2 1 5 3所接收的虛擬位址對應的一中間位址。如果在
micro-TLB 2155中未有一符合者,則將參考主要 TLB 2160以了解是否在主要TLB中偵測到一符合者。而如果 有的話,將截取虛擬位址部分和對應的中間位址部分至 micro-TLB 2155,而後中間位址能夠經由路徑2157發出。 如果在micro-TLB 2155和主要TLB 2160中未有一符 合者,則轉譯表行走邏輯2165被用於為所需的描述符從可 被第一 MMU 2150所存取之一第一組分頁表的一預定分頁 表發出一請求。通常,可能有相關於安全性網域或非安全 性網域的個別程序的分頁表,以及該些分頁表的中間基礎 位址將可被轉譯表行走邏輯2165存取,例如從CP15登錄 34中的適當登錄。因此,轉譯表行走邏輯2165能夠經由 路徑2 1 67發出一中間位址,以自適當的分頁表請求一描述 符。 安排第二 MMU 2170為經由路徑 2157上接收 micro-TLB 2155或經由路徑2167接收轉譯表行走邏輯 2165所輸出之任何中間位址,以及如果在micro-TLB 2175 中偵測到一符合者,則之後micro-TLB能夠經由路徑2192 發出所需的實體位址至記憶體,以經由資料匯流排2 1 90 截取需要的資料。如果經由路徑2157發出一中間位址,將 98 200411555 使需要的資料傳回到核心1 0,而對於經由路徑2 1 6 7所發 出的一中間位址’這將使需要的描述符傳回到第一 MMU 2150,以在主要TLB 2160中儲存。 如果micro-TLB 2175有一不符者,則將參考主要Tlb 2180,以及如果在主要TLB中有一符合者,則傳回需要的 中間位址部分和對應的實體位址部分至m i c r 〇 - T L B 2 1 7 5, 以促使micro-TLB 2175經由路徑2192發出需要的實體位 址。然而,如果在micro-TLB 2175或主要TLB 2180皆沒 有符合者,而後安排轉譯表行走邏輯2 1 8 5從相關分頁表經 由路徑2 1 94輸出對需要的描述符的請求,又該相關分頁表 係在與一第二MMU2170相關的分頁表的一第二組分頁表 中。該第二組分頁表包括使中間位址部分與實體位址部分 相關的描述符,以及通常對於安全性網域有至少一分頁表 和對於非安全性網域有一分頁表。當一請求經由路徑2 1 9 4 發出時,它將導致相關描述符從第二組分頁表傳回至第二 MMU 2170,以儲存在主要TLB 2180中。 第5 0 A圖所述之實施例之操作現將藉由下文中之特例 進一步解說,其中縮寫VA指虛擬位址,IA指中間位址, 和PA指實體位址。 1) 核心發出 VA = 300 [IA = 5000,PA = 7000] 2) 在MMU 1的micro-TLB發現不符者 3) 在MMU 1的主要TLB發現不符者 分頁表1基礎位址=8000 ΙΑ [PA = 10000] 4) 在MMU 1的轉譯表行走邏輯執行分頁表查詢 200411555 -發出 ΙΑ = 8003 5) 在MMU 2的micro-TLB發現不符者
6) 在MMU 2的主要TLB發現不符者 分頁表2基礎位址 =12000 PA 7) 在MMU 2的轉譯表行走邏輯執行分頁表查詢 -發出 PA =12008 ”8000 IA = 10000 PA"傳回作分頁表資料
8) -儲存在MMU 2的主要TLB
9) -儲存在 MMU 2 的 micro-TLB 10) 在MMU 2的micro-TLB現在有符合者(hit) -發出 PA =10003 ,’3000 VA = 5000 IA"傳回作分頁表資料
11) -儲存在MMU 1的主要TLB
12) -儲存在 MMU 1 的 micro-TLB 13) 在MMU 1的micro-TLB現在有符合者(hit) 發出ΙΑ = 5 000以執行資料存取
14) 在MMU 2的micro-TLB發現不符者 15) 在MMU 2的主要TLB發現不符者 16) 在MMU 2的轉譯表行走邏輯執行分頁表查詢 -發出 PA = 12005 "5000 IA = 7000 ΡΑΠ傳回作分頁表資料
17) -儲存在MMU 2的主要TLB
18) -儲存在 MMU 2 的 micro-TLB 19) 在MMU 2的micro-TLB發現符合者(hit) 100 200411555 -發出 PA = 7000以執行資料存取 2〇)在實體位址7000的資料被傳回至核心 下一次核心發出一記憶體存取請求(稱為VA 3001·.) 1) 核心發出 VA = 3001 2) 在MMU 1的miCr〇_TLB發現符合者,請求IA 5001 發出至MMU2 3) 在MMU 2的micro-TLB發現符合者,請求pa 7001 _ 發出至 memory 4) 在PA 7001的資料被傳回至核心。 吾人將了解,上述示例中在MMU的micro-TLB和主 要TLB所發生的不符者,以及因此該示例代表示「最壞情 況下」的歷程。通常,預期在micro-TLBs或主要TLB中 之至少一個發現一符合者,從而大大地減少截取資料的時 回到第5 1圖,在一安全性區域的較佳實施例中,在實 籲 體位址空間的某一特定區域中通常提供第二組分頁表 2250。第一組分頁表可以分成兩種類型,即安全性分頁表 和非安全性分頁表。較佳的實施例為,該些安全性分頁表 將連續出現在該中間位址空間2265中,在非安全性中間位 址空間2275中的非安全性分頁表亦然。然而,它們不需要 被連續置於實體位址空間中,而因此,例如,第一組分頁 表的安全性分頁表可以遍及安全性區域221〇、223〇,以及 101 200411555 以類似方法非安全性分頁表可以遍及非安全性記憶體區域 2220 和 2240。 如先前所述,使用兩組分頁表的二層方法之主要優點 之一對安全性網域的作業系統和非安全性網域的作業系統 而言,能夠安排該實體位址空間在零點開始,其通常是一 作業系統所期望的。額外的安全性記憶體區域可以完全不 為具有自身的「實體位址」空間的非安全性作業系統所知’ 因為它視它的實蹲位址空間為中間位址空間其能夠被安排 為具有中間位址的連續序列。 此外,使用此類方法可以大大地簡化在非安全性記憶 體和安全性記憶體之間的記憶體轉換區域的處理。如第52 圖所示。能夠從第52圖知道,記憶體的一區域2300,例 如一單一分頁記憶體,可以存在於非安全性記憶體區域 2220中,以及同樣地記憶體區域2310可以存在於安全性 記憶體區域2210中。然而,上述兩記憶體區域23〇〇和2310 可能藉由在第二組分頁表中改變相關描述符而易於被調 換,以使區域2300現下變成一安全性區域其映射至安全性 網域的中間位址空間中的區域2305,而區域231〇現下變 成一非女全性區域其映射至非安全性網域的中間位址空間 的區域23 1 5。在安全性網域非安全性網域中,其可以完全 清楚地發生在作業系統,因為從實體位址空間的觀點確實 分別是安全性網域或非安全性網域的中間位址空間。因 此,該方法在每一作業系統中避免實體位址空間的任何再 次定義。 102 200411555 現將參照第5 OB圖描述本發明的一選擇性實施例,其 亦使用二MMU,但以不同於第50A圖之安排。比較第50A 圖和第50B圖可以知道,安排幾乎相同,但是在該實施例 中,安排第一 MMU 2 1 5 0以執行虛擬位址至實體位址的轉 譯,以及安排第二MMU執行中間位址至實體位址的轉譯。 因此,相反用於第50A圖之實施例,自第一 MMU 2150的 micro-TLB 2155 至第二 MMU 2170 的 micro-TLB2175 之路 徑,安排第一 MMU的micro-TLB 2155經由路徑2192直 鲁 接輸出一實體位址,如第5 0B圖所示。在第50B圖所示之 實施例的操作現將藉由下文中的特例解說。其中,核心記 憶體存取請求的詳細程序係相同於先前在第5 0 A圖所示 者。 1) 核心發出 VA = 300 [IA = 5000, PA = 7000] 2) 在MMU 1的miCr〇-TLB和主要TLB發現不符者 分頁表1基礎位址= 8000 IA[PA =10000] 3) 在MMU 1的轉譯表行走邏輯執行分頁表查詢 -發出 IA = 8003 _
4) 在MMU 2的micro-TLB和主要TLB發現不符者IA 8003 分頁表2基礎位址=12〇〇〇 pa 5) 在MMU 2的轉譯表行走邏輯執行分頁表查詢 -發出 PA =1200 8 n8G00 IA = 10000 PA"傳回作分頁表資料 6) "8000 IA = 10000 PA”映射儲存在MMU 2的主要 103 200411555
TLB 和 micro-TLB 7) 在MMU 2的micro-TLB現在自步驟(3)轉譯至PA 1003並發出取回(fetch) "3000 VA = 5000 ΙΑ"傳回作分頁表資料
請注意:該轉譯由MMU1保留在暫存中,但不直接儲 存在任何TLB
8) MMU 1的轉譯表行走邏輯現在發出LA = 5000的 請求至MMU2 9) 在MMU 2的micro-TLB和主要TLB發現不符者 IA 5000 10) 在MMU 2的轉譯表行走邏輯執行分頁表查詢 -發出 PA =12005 ”5000 IA = 7000 PA”傳回作分頁表資料 11) MMU 2 儲存"5000 IA = 7000 PA"在 micro-TLB 和主要TLB中。該轉譯亦連至MMU 1。 12a) MMU 2發出 PA = 7000存取至記憶體
12b) MMU 1 結合 ”3000 VA = 5000 ΙΑ,,和"5000 ΙΑ = 7000 PA"描述符以給定一 ”3000 VA = 7000 PA”描述符,其 儲存在MMU 1的主要TLB和micro-TLB 13)在PA 7 000的資料被傳回至核心 下一次核心發出一記憶體存取請求(稱為VA 3001..) 1) 核心發出 VA = 3001 2) 在MMU 1的micro-TLB發現符合者,MMU 1發出 104 200411555 PA = 7001的請求 3)在PA 7001的眘M 金 、 〜霣料被傳回至核心。 自第50A圖所提供之上述示例的比較可以看出,這裡 的主要差別在第7步騾,其中MMU,1不直接儲存第一表 描述符’以及在第12b步驟(12a和12b能夠同時發生)其 中MMU 1亦接收iA->pa轉譯並進行結合以及在它的TLBs 中儲存結合的描述符。 因此’吾人可以了解,當選擇性實施例仍然使用兩組 分頁表來使虛擬位址轉換成實體位址,事實上是當一符合 者發生在 micro_TLB 2155 或主要 TLB 2160 時,micro-TLB 2155和主要TLB 2160儲存虛擬位址至實體位址的轉譯, 以避免需要在該兩MMU中執行查詢。在這種情況下,第 一 MMU可以直接自核心控制請求,而無需參照第二mmU。 吾人將了解,能夠安排第二MMU 2170不包括 micro-TLB 2175和主要TLB 2180,其中分頁表行走邏輯 2185用於需要由第二MMU控制的每一請求。它可以為第 二MMU節省複雜度和消耗,和可以可接受只需要相對少 的第二 MMU的假設。因為每一請求將需要使用第一 MMU,通常在第一 MMU 2150 包括 micro_TLB 2155 和主 要TLB 2160較為有利,以改進第一 MMU的作業速度。 應該注意的是分頁表中的分頁可以改變大小,以及因 此可能有兩半的轉譯之描述符與不同大小的分頁相關。通 常,MMU 1的分頁比MMU 2分頁小,但這並非必要的。 105 200411555 例如· 表 1 在 0x40003000 映射至 〇χ〇〇〇81000 之 4Kb 表 2 在 0x00000000 映射至 0x02000000 之 1Mb 此處,兩大小中的最小者必須用於結合轉譯,所以結 合描述符是 在 0x40003000 映射至 0x02081000 之 4Kb
然而,資料在情境間的調換(如先前參照第5 2圖所述) 係可能反向的’例如: 表 1 在 OxcOOOOOOO 映射至 0x00000000 之 1Mb 表 2 在 0x00042000 映射至 0x02042000 之 4Kb 現下,在位址〇xc0042010之一查詢從核心給定映射: 在 0xc0042000 至 0x02042000 之 4Kb 即,該二大小中的最小者總是用於結合映射。 請注意,第二情況中,處理較不有效率,因為在存取 不同的4Kb區域時,表1中的描述符(1Mb)將反覆查尋和 放棄。然而,在一典型系統中,大多數的情況下,表2的 描述符將較大(如第一示例所述),其更有效(能夠使1 Mb 映射為指向ΙΑ空間的適當部分之其它4Kb分頁再使用)。 如第50A、50B圖所示,使用二分離MMU的選擇性方 法,單一 MMU能夠使用於第53圖,其中當主要TLB 2420 106 200411555 出現一不符者時,由ΜΜϋ產生一異常(其使軟體在核心10 中執灯以依據來自兩組不同分頁表的描述符之結合產生虛 擬至實體位址轉譯。尤其是,如第53圖所示,核心10與 MMU 2400 連結(其包括一 micro-TLB 2410 和一主要 TLB 2 4 2 0 ‘核心1 〇發出一記憶體存取請求時,經由路徑2 4 3 〇 提供虛擬位址,以及如果在micr〇 TLB觀察到一符合者 時’則對應的實體位址經由路徑244〇上直接輸出,使該資 料經由路控245〇傳回核心1〇。然而,如果在micr〇-TLB φ 2410有不符者’則參考主要TLB 242〇以及如果在主要TLB 中含有相關的描述符,則相關的虛擬位址部分以及到對應 實體位址部分被截取至micro-TLB 2410,之後,實體位址 能夠經由路2440發出。然而,如果主要TLB也產生不 符者’則產生一異常經由路徑2422送至核心。現下將參照 第54圖進一步描述在核心中自接收此類異常後的處理。 如在第54圖所示,如果在第2 5 00步驟由核心偵測到 一 TLB不符者異常,則核心在第2510步驟為該異常以一 預設向量進入監控模式❶此時它將使分頁表與執行的程式 鲁 碼合併以執行在第54圖所示之步驟的其餘部分。 尤其是,在第2520步驟,經由路徑2430發出虛擬位 址和截取在micro-TLB 2410和主要TLB 2420所產生之不 符者(此後,稱為錯誤虛擬位址(faulting virtual address)),之後,依據在第一組表格的適當表格的中間基 礎位址,在第2530步驟決定所需第一描述符之中間位址。 一旦決定了中間位址(通常用虛擬位址與中間基礎位址之 107 200411555 某種預設的 ^該第一插 步驟,能夠 中間位址。 結合),而後參照在第二組表格中的相關表,以 述符獲得對應的實體位址。此後,在第2 5 5 〇 從記憶體取得第一描述符決定錯誤虛擬位址的 而後’在第2560步驟,再 述符以替錯誤虛擬位址的中間 第257〇步驟,取回該第二描述 體位址。 次參考第二表以找尋第二描 位址給定實體位址。此後在 符以獲得錯誤虛擬位址的實
人一已經獲侍了上述資訊,則程式使第一和第二描述 併以產生給定需要的虛擬位址至實體位址轉譯的新描 二符,第2580步驟執行該步驟。以先前參照第5〇b圖所 述之類似方法’由軟體再次執行合併把最小的分頁表大小 ^〜s的轉澤。此後,在第259〇步驟,在主要 中儲存該新的描述符,而後程序在第2595步驟自異常返 回〇
此後’安排核心1 〇經由路徑243〇為記憶體存取請求 再-人發出虛擬位址’其仍將在micr〇-TLB 2410產生不符 者’但是現下將在主要TLB 2420產生一符合者。因此, 虛擬位址部分和對應實體位址部分能夠被截取至 micro-TLB 2410,之後,micro-TLB 2410 能夠經由路征 2440,使所需的資料經由路徑2450傳回核心10。 吾人將了解,在先前參照第50A圖和第50B圖所述之 選擇性實施例中,藉由軟體使用上文中參照第53圖和第 54圖所述之原則,管理在上述實施例中的MMU之〆或’ 108 200411555 者。 不 )υΑ 圃战乐 園所示般使用二 MMU ’或如楚 弗53圖所示般使用一 MMU,當在監控模式去 作時由處理器管理第二組分頁表的事實(或選擇性地在- 權限安全性模式中)確保該些分頁表為安全性者。結果“ 處理器在非B 戸女全性網域中時,其只能夠看見非安全性記七 體’因為當在非安全性網域中時,只能由處理器所能看々
的第一組分^表為非安全性網域產生中間位址空間。衾 果,不需要提供一分割檢測器作為如第一圖所示之記憶骨 管理邏輯30的-部分。然而,在外部匯流排上仍然提供; 割檢測器以監控由其它匯流排主控器在系、紙中進行的才 取。
在先前參照第37圖和第38圖所討論之實施例中,提 供一與MMU 200相關之分割檢測器222,和因此當要在該 快取38巾執行存取時,在micro-TLB 206巾已經先執行了 一查詢,以及因此已經檢查了存取許可(尤其是安全性和非 安全性許可)。因此,在此類實施例中,不能由非安全性應 用在快取38中儲存安全性資料。對快取38的存取係在由 分割檢測器222所執行之分割檢測之控制下,以及因此不 能在非安全性模式中執行對安全性資料的存取。 然而,在本發明之一選擇性實施例中,分割檢測器222 並非為經由系統匯流排4〇所進行之監控存取所提供,反之 資料處理設備僅有與外部匯流排7〇連結的一單一分割檢 測器,用以監控連接至外部匯流排的記憶體單元的存取。 109 200411555 在此類實施例中,此時它意味著處理器核心10能夠存取與 系統匯流排40直接連結的任何記憶體單元,例如TCM36 和快取3 8,而無需由外部分割檢測器監督該些存取,以及 因此需要某些機制以確保處理器核心1 〇在一非安全性模 式中操作時,不會存取在該快取38或TCM 36中非安全性 資料存取。 第55圖依據本發明的一
外个双 Η π —貝娜乃· i,〜一 A 備’其中提供一機制以使快取38和/或TCM 36控制對其 進行之存取,而無需提供與MMU 200相關之任何分割檢 查邏輯。如第55圖所示,核心10係藉由MMU 200連接 至系統匯流排40,快取38和TCM 36亦與系統匯流排40 、、"°核心10、快取38和TCM 36係藉由外部匯流排界 面42連接至外部匯流排7〇,其包含一位址匯流排2620、 控制匯流排2630和一資料匯流排264〇,如第55圖所示。 界核、1〇、MMU 200、快取38、TCM 36和外部匯流排 42可視為構成連接至外部匯流排7〇之一單一裝置, 亦作為一萝u .. 、置匯^排,以及其它裝置亦可與上述裝置匯流 排連結,例知…人α、田i 472。,、、 文全性週邊装置470或非安全性週邊裝置 元,例如連接至裝置匯流排7 〇的是一或多數的記憶體單 ^ ^卜°卩S己憶體56。此外,一匯流排控制單元2650 碼器265置匯流排7〇,並通常包括一判優器2652、一解 的:件之V° 一分割檢測器2656。為了對連接裝置匯流排 圏,判優Γ作進行一般的討論’應參照先前描述的第47 D 、解碼器和分割撿測器係被顯示為一個別的區 110 200411555 鬼仁疋Μ置於單一控制方塊2650中時,該些元件以相同 的方法運作。 在第56圖中進一步詳述第55圖中的MMU 2 00。藉由 將第56圖與第37圖進行比較,可以看到MMU 200係以 與第37圖MMU完全相同的方法建構,唯一的差別是分割 檢測器222並非供作監視在主要tlB 208和micro-TLB 2〇6之間經由路徑242的資料傳送。如果處理器核心1〇發 出指定一虛擬位址的記憶體存取請求,而後記憶體存取請 求將繞經MMU 200,和以稍早第37圖所述般處理,從 miCr〇-TLB 206經由路徑238輸出一實體位址至系統匯流 排40。反之,如果記憶體存取請求直接指定一實體位址, 這將略過MMU 200 ,並經由路徑236直接繞送至系統匯流 排40。在一實施例中,只有當處理器在監控模式中操作 時’產生直接指定實體位址之記憶體存取請求。 回顧先前對MMU 200之敘述,和尤其是第43圖的描 述’主要TLB 208將含有一些描述符435,以及對每一描 述符將提供一網域旗標425以確定是否對應的描述符係來 自一安全性分頁表或一非安全性分頁表。上述描述符435 和相關的網域旗標425係在第55圖中的MMU 200中概要 地描述。 當核心1 〇發出一記憶體存取請求時,將導係該記憶體 存取請求的一實體位址被輸出至系統匯流排4〇,以及通常 此時快取38將執行一查詢程序,以決定是否該位址所指定 資料項係儲存在該快取中。只要在該快取中發生一不符 111 200411555 者,即其決定屬於該存取請求的資料項未儲存在該快取 中,由快取啟始一線填充(linefill)程序,以從外部記憶體 56截取一行資料其包括屬於記憶體存取請求的資料項。尤 其是’該快取將藉由EBI 42輸出一線填充請求至裝置匯 流排7〇的控制匯流排2630,和一開始位址輸出至位址匯 流排2620。此外,一 HPROT信號將經由路徑2632輸出至 控制匯流排2630,其將包括當發出記憶體存取請求時之指 定核心操作模式的網域信號。因此,能夠將線填充程序視 為快取3 8對外部匯流排之原始記憶體存取請求的傳播。 由分割檢測器2656接收該HPROT信號,和因此確認 該分割檢測器當外部記憶體存取請求發出時,是否裝置自 外部記憶體56所請求的指定資料(在這種情況下,該裝置 與核心1 0和快取3 8共同作用)係在安全性網域或在非安全 性網域中操作。分割檢測器265 6亦將存取確認記憶體區域 係安全性或非安全性之分割資訊,和因此能夠決定裝置是 否允許存取其所請求的資料。因此,如果在HPROT信號 中的網域信號(也如S位元本文中提到)宣告確認到對該資 料的存取係由該褒置所請求,則當在一安全性模式中操作 時’能夠安排分割檢測器僅允許一裝置存取記憶體之一安 全性部分。 如果該分割檢測器決定不允許該核心1 〇存取所請求 的資料’例如,因為HPROT信號已確認該核心並非在一 非安全性模式下操作,但是線填充請求企圖自記憶體之一 安全性區域中的外部記憶體取回資料,則分割檢測器2 6 5 6 112 200411555 發出一中止信號至控制匯流排2630(其將經由路徑2636傳 回至EBI 42,導致經由路徑2670向核心10發出中止信 號。然而’如果分割檢測器2 6 5 6決定允許存取,則輸出一 S標籤信號,以確定自外部記憶體截取的資料是安全性資 料或非安全性資料,以及該S標籤信號經由路徑2634至 傳回至EBI 42,和設定相關於快取線2600之旗標屬於線 填充處理。 同時’控制邏輯2650授權外部記憶體56所出所請求 之線填充資料,藉由EBI 42經由路徑2680傳回資料至快 取38,以儲存於相關的快取線2600。因此,該處理之結果, 用外部記憶體5 6的資料項填充快取中所選擇的快取線將 填滿來自外部記憶體5 6之資料項,該些資料項包括屬於來 自核心1 〇之原始記憶體存取請求的資料項。屬於來自該核 心記憶體存取請求的資料項之後能夠被選擇性地自快取 38傳回核心’或能夠選擇性地經由路徑2660從EBI 42傳 回炱核心1 0以直接提供。 因此’在較佳實施例中,由上述線填充處理將導致快 取線原始儲存資料之發生,與該快取線相關的旗標26〇2 將依據分割檢測器2656所提供的值進行設定,以及之後將 由快取38使用該面旗標以直接控制對快取線26〇〇中的資 料頊的任何爾後之存取。因此,如果之後核心1〇使在快取 38的一特定快取線2600產生一符合者之記憶體存取請求 發出,該快取38將檢查相關的旗標26〇2之值,並將該值 與核心10現有操作模式之值比較。在較佳實施例中,由在 113 200411555 CP 15 所設定之一網滅位元指 網域狀態登錄中的監控模式 此,當處理器核心1 〇在 夠安排快取3 8只允許在 旗標2602指示為可由處 。當核心在一非安全性模 示核心1 0所操作之現有模式。因 操作於一安全性操作模式中時,能 一快取線中的資料項,其被對應的 理器核心1 0所存取的安全性資料 式中操作時,核心存取快取38中的安全性資料之任何意 圖,將導致經快取38經由路徑267〇產生中止信號。
能夠以多種方法設立TCM 36。在一實施例;,其能 夠像快取般建立,和安排實施例為包括彡數線WO,藉由 與該快取38相同的方法,其每一 ^ 具有與之相關的一旗標 2612。使用與先前所述之快取38完全相同的方法管理到 TCM 36肖存取,和導致一線填充處理執行之任何tcm不 符者,其結果為資料將被截取至一特定線261〇,以及分割 檢測器2656將產生需要的S標籤值,用以儲存與該線261| 相關的旗標2 6 1 2。
在一選擇性實施例中,可以使TCM 36設立為外部記 憶體56的延伸和用以儲存經常儲存被處理器使用的資 料,因為經由系統匯流排對TCM的存取通常比對外部記憶 體的存取更快速。在此類實施例中,TCM 36不使用旗標 2612,反之使用一不同機制來控制對TCM的存取。尤其 是,如先前所述在此類實施例中,提供可由處理器設立2 一控制旗標,當在一權限安 有在執行於一權限安全性模 e己憶體’或當執行於至少一 全性模式中執行時指示是否只 式下時,可由處理器控制緊接 非安全性模式中時,可由處理 114 200411555 器控制。由安全性作業系統設置控制旗標,和實際定義是 否可由權限安全性模式或非安全性模式控制TCM。因此疋 所能夠定義一架構係TCM只能在當處理器在一權限安全 性模式中操作時被控制。在此類實施例中,對TCM控制登 錄之任何存取意圖將導致進入一未定義的指令異常。 在選擇性的架構中,當在一非安全性模式中操作時, 能夠由處理器控制TCM。在此類實施例中,只由非安全性 應用使用該TCM。不能夠儲存任何安全性資料或從tcM 载入。因此,當執行一安全性存取時,在TCM中不執行任 何查詢’以了解位址是否與該T c Μ位址範圍符合。 第5 7圖之流程圖說明當操作於處理器核心1 〇之一非 女全性程式產生一虛擬位址時,由第55圖的設備所執行之 處理,首先,在第2705步驟,在micr〇-TLB 206中執行一 查詢’以及如果它產生一符合者,則micro-TLB在第2730 步驟檢查存取許可。參照第56圖,該程序能夠視為由存取 許可邏輯202執行。 如果在第2705步驟,在nxicro-TLB查詢發生一不符 者,則在非安全性描述符儲存於其中的主要TLB 208執行 一查詢(第2710步驟)。如果它產生一不符者,則在第2715 步驟執行一分頁表行走程序(如先前參照第3 7圖所討論 者),其中在第2720步驟以後,它決定主要TLB含有該有 效標籤(tagged)的非安全性描述符。如果在第2710步驟產 生一符合者,則程序直接進行至第2 720步驟。 此後,在第2725步驟,micr〇-TLB把含有實體位址的 115 200411555 描述符的部分載入,其後在第273〇步驟micr〇_TLB檢查 該些存取許可。 如果在第2730步驟發現有一違反存取許可者,則程序 進行至第2740步驟,其中經由路徑23〇發出中止信號至處 理器核心(類似於在第55圖所示之路徑267〇)。然而,如 果未偵測到違反者,則在第2745步驟決定是否該程序與一 可快取的資料項相關。否則,則在第279〇步驟初始一外部 存取,以企圖自外部記憶體56截取資料項。在第2795步 驟,分割檢測器2 6 5 6將決定是否有安全性分割違反,即, 如果處理器核心1 〇在一非安全性模式中操作時企圖存取 在安全性記憶體中的一資料項,以及如果偵測到一違反 者,則分割檢測器2656將在第2775步驟產生中止信號。 然而’假设沒有安全性分割違反,則程序進行至第2 7 8 5 步驟,其為資料存取所發生處。 如果在第2 7 4 5步驟決定所請求的資料項是可快取 的,則在第275 0步驟在快取中執行一快取查詢,以及如果 偵測到一符合者,則在第2755步驟快取決定是否有安全性 線標籤違反。因此,在該階段,快取將檢查與包含資料項 的快取線相關的旗標2602之值,和將把該旗標的值與核心 1 0作業模式比較,以決定是否授權核心存取請求的資料 項。如果偵測到一安全性線標籤違反,則程序進行至第 2 760步驟,其中由快取38產生一安全性違反錯誤中止信 號和經由路徑2670發出至核心10。然而,假設在第2755 步驟未偵測到安全性線標籤違反,則在第2785步驟執行資 116 200411555 料存取。 如果當快取查詢在第2750步驟執行時發生一快取不 符者’則在第2765步驟初始一快取線填充。在第2770步 驟,此時分割檢測器2656偵測是否有一安全性分割違反, 若有則在第2775步驟發出一中止信號。然而,假設未偵測 到安全性分割違反,則快取線填充在第2780步驟進行,在 第2 785步驟完成資料存取。 如第 57 圖所示,第 2705、2710、2715、2720、2725、 273 0 和 2735 步驟在 MMU 中執行,第 2745、2750、2755、 2 7 6 5、2 7 8 0和2 7 9 0步驟由快取執行,以及由分割檢測器 執行第2770步驟和第2795步驟。 第58圖是一流程圖,圖示在核心中執行的一安全性程 式產生一虛擬位址時所執行的類似程序(第28〇〇步驟)。藉 由比較第57圖和第58圖,吾人將了解,在MMU中經由 2835所執行之第2805步驟係相似於先前參照第57圖所述 之經由2735的第2705步驟。唯一的差別在第281〇步驟, 其中在主要TLB中所執行之查詢係相關於在主要TLB中 儲存的任何安全性描述符,其結果為在第282〇步驟主要 TLB含有有效標籤的安全性描述符。 在快取中’該快取不再需要尋找任何安全性線標籤違 反,因為如第5 8圖所示,假設安全性程式能夠存取安全性 為料和非安全性資料◊因此,如果在第2 8 5 〇步驟快取查詢 期間發生一符合者,則程序直接進行至資料存取步驟第 2885步驟。 200411555 同樣地’如果需要對外部5己憶體的外部存取(即,在第 2865或2890步驟),分割檢測器不需要執行分割檢查,因 為再次假設安全性程式能夠存取安全性資料或非安全性資 料〇 在快取中執行的第2845、2850、2865、2880和2890 步驟係類似於先前參照第57圖所述之第2745、275()、 2765、2780 和 2790 步驟。 第59圖圖示在處理器上執行的不同模式和應用。依據 本發明的一實施例,虛線指示在處理器的監控期間不同模 式和/或應用如何能夠彼此分別和分開。 監控一處理器以找尋可能錯誤和發現應用為何不如預 期般執行的能力是非常有用的以及許多處理器提供此類功 能。能夠以包括偵錯和追蹤的功能之許多方法執行該監控。 依據本發明之技術,在處理器中偵錯能夠以幾種模式 操作,包括停機偵錯模式以及監控偵錯模式。該此模式侵 入和使程式在欲停止時執行。在停機偵錯模式中,當一斷 點(breakpoint)或一監視點(watchpoint)發生時,核心停止 並從其餘的系統分離以及核心進入偵錯狀態。一開始時核 心停止,管道(pipeline)清除以及未有任何指令被預先取 回。使PC凍結以及忽略任何中斷(IRQ和FIQ)。而後可能 檢查核心内部狀態(藉由JTAG序列界面)以及記憶體系統 的狀態。該狀態對程式執行是侵入式的,因為它可能修改 現有模式、改變登錄狀況、等等。一旦偵錯終止,核心利 用Debug TAP藉由掃描Restart指令,從偵錯狀態退出。 118 200411555 而後程式重新繼續執行。 在ja£控偵錯模式中,一斷點或監視點使核心進入中止 模式,分別採用預取(prefetch)或資料中止向量(Data Abort vectors)。在這種情況下,如果核心處於停機(Halt)偵錯模 式,核心仍然在一功能模式下且不停止。中止管理器與一 偵錯應用通訊,以存取處理器和輔助處理器狀態或傾印記 憶體。一偵錯監控程式處於偵錯硬體和軟體偵錯器之間。
如果已設定控制登錄DSCR以及偵錯狀態的位元11(詳見 Q 下文),能夠阻止中斷(FIQ和IRQ)。在監控偵錯模式,在 資料中止(Data Aborts)和預取中止(Prefetch Aborts)中使 向量截取失效,以避免因為替監控偵錯模式產生的中止, 使處理器被迫進入不可恢復的狀態。應該注意的是監控摘 錯模式是一種偵錯模式以及不相關於處理器的監控模式 (監督在安全性情境和非安全性情境之間轉換的模式)。 偵錯在某種時刻能夠提供處理器狀態的快照。其在接 收到偵錯初始請求時,藉由在各種登錄上註解該些值以達 成。在一掃描鏈上記錄了該些值(第67圖中的541、544 ) 以及而後它們使用JTAG控制器(第1圖的18)依序輸出。 監控核心的一種選擇方法是用追蹤(trace)。追蹤不是 侵入式的和如果核心繼續操作則記錄爾後的狀態。追蹤是 在第一圖中的22、26之嵌入式追蹤g細胞(ETM,Embedded Trace Macrocell)上執行。ETM有一追縱埠口 ’藉以輸出追 蹤資訊,而後可由外部追蹤埠口分析器分析。 本技術實施例的處理器在兩分離的網域中操作,在所 119 200411555 述 而 域 施 蹤 系 全 情 的 劃 59 者 式 之 之 控 控 和 應‘ 有」 資) 依^ 之實施例中’該些網域包括安全性和非安全性網域。然 ,由於監控功能的目的,熟習該項技藝著將清楚該些網 可能是彼此間資料不會洩漏的任何兩網域。本技術的實 例關聯於防止在兩網域間資料的洩漏以及諸如偵錯和追 之監控功能,其允許對整個系統便利的存取,又該整個 統係在網域間資料洩漏的潛在來源。
C 在上述之安全性和非安全性網域或情境的示例中,安 性資料不能被非安全性情境獲得。此外,> 果在安全性 i兄中允許偵錯,它可能有助於限制或隱藏安全性情境中 一些貝料。第59圖的虛線顯示一些可能方法的示例,其 分資料存取和提供不同層級的粒度(granuiaHty)。在第
圖,方塊500顯示監控模式和其為所有模式中最安全 ’並控制在女全性和非安全性情境之間轉換。在監控模 500之下有監督模式52〇。而後具有應用⑴和 #安全性使用者模式,以及具有應用5i2、5i4和SB 安全性使用者模式。σ铋恤, ^ ,、此控制監控模式(偵錯和追蹤,
#安全性模式(虛線5G1左邊)。選擇性地,可以允許 非安全性網域或情境和安全性使用者模式(5gi的左 501右邊纟502下面的部分)。在一進一步的實施例亏 以允許在安全性使用者網域巾執行非安全性情境和某 用在X5•種清況下,由虛線5〇3進一步劃分。此類劃 於在可以執行不同應用的不 的洩漏。在某些控制情況下 所需的粒度,於監控功能期 同使用者之間防止安全性 可以允許監控整個系統。 間,核心的下列部分需要 120 200411555 具有它們控制的存取。 在一偵錯情況下,可以設定四種登錄;指令錯誤狀態 登錄(如果SR)、資料錯誤狀態登錄(DFSR)、錯誤位址登錄 (FAR)、和指令錯誤位址(IFAR)。當從安全性情境到非安全 性情境時’在一些實施例中應清除上述登錄,以避免資料 的任何洩漏。 PC樣本登錄:Debug TAP能夠藉由掃描鏈7存取該 PC °當在安全性情境中偵錯時,可以依據在安全性情境中 選擇的偵錯粒度對該值進行遮罩(mask)。當核心在安全性 情境中執行時,讓非安全性情境、或加上安全性使用者應 用的非安全性情境不能得到PC的任何值是重要的。 TLB項目:可能使用CP15以讀取micro-TLB項目讀 寫主要TLB。吾人也能夠控制主要tlb和micro-TLB的载 入和配對(matching)。這種操作必須嚴格地控制,尤其是 如果安全性執行緒偵錯需要MMU/MPU的援助。 效能監控控制登錄:效能控制登錄針對該些快取不符 者、micro-TLB不符者、外部記憶體請求、執行的分支指 令、等等給予資訊。非安全性情境不應該存取該些資料, 即使在偵錯狀態中。即使偵錯在安全性情境中失效,該些 計數應可在安全性情境中操作。 在快取系統中偵錯:在一快取的系統中的偵錯一定是 非侵入式(〇bServab⑷的。為了在快取和外部記憶體之間保 持-致性,這是重要的《•使CP15能夠使快取失效,或 能夠強迫該快取寫入一所有區域。無論如何,在摘錯中允 121 200411555 許對快取行為的修正可能是安全性的弱點而應該要控制。 位元組順序(Endianness):不應該允許能夠存取偵錯的 非安全性情境或安全性使用者應用改變位元組順序。改變 該位元組順序可能導致安全性核心故障。依據粒度,在偵 錯中禁止位元組順序的存取^ 在監控功能開始時,可以控制核心部分的監控功能之 存取。偵錯和追蹤可用許多方法初始。本技術的實施例藉 由僅允許在某些條件下初始,以控制對核心的某些安全性 部分的監控功能的存取。 本技術的實施例藉由下列粒度尋求對進入監控功能的 限制: 藉由分別控制侵入式和非侵入式(追縱)偵錯; 藉由只允許在安全性使用者模式中或在整個安 全性情境中偵錯項目; 藉由只允許在安全性使用者模式中和更考慮執 行緒ID進行偵錯(應用執行)。 為了控制一監控功能的初始化,了解能夠如何初始功 能是重要的。第60圖顯示一表說明初始一監控功能之可能 方法,初始的監控功能型態和此類初始化指令可以由程式 設計。 通常’能夠藉由軟體或藉由硬體進入該些監控指令, 即’藉由JTAG控制器。為了控制監控功能的初始化而使 用控制值。上述包含位置相依之啟動位元和因此如果出現 122 200411555 一特定位元’只充許在設定了該啟動位元的情況下啟動監 控。在一安全性登錄CP 14儲存了該些位元(偵錯和狀態控 制登錄、DSCR),其位於在IC]E 530中(請參考第67圖)。 在一較佳的實施例中,有啟動侵入和停用侵入和非侵 入偵錯的四位元,上述包含一安全性偵錯啟動位元、一安 全性追縱啟動位元、一安全性使用者模式啟動位元和一安 全性執行緒彳貞知啟動位元。該些控制值用於為監控功能提 供一定程度的可控制粒度以及因而能夠幫助防止一特定網 ( 域的 >戈漏。第6 1圖提供該些位元的概要以及如何能夠存取 它們。 在女全性網域中的一登錄中儲存該些控制位元,以及 對該登錄的存取限制於三種可能性。藉由Arm辅助處理 器MRC/MCR指令提供軟體存取,而上述只允許來自安全 性監督模式者。選擇性地,能夠從任何其它模式使用一授 權碼提供軟體存取。一進一步的選擇與硬體存取較為相 關,並涉及利用在jTAG的輸入埠來寫入指令。除了用來 輸入與監控功能的有效性相關的控制值以外,能夠用該輸 & 入槔來輸入與處理器的其它功能相關的控制值。 與掃描鏈和JTAG相關的進一步細節如下文所述。 -县錄邏輯(Rey ster logic cell) 每個集積電路(1C)包含兩種邏輯: #組合邏輯格;例如AND、OR、INV閘。依據一或多數 輸入信號,用此類閘或此類閘的結合來計算布林 123 200411555 (Boolean)表示 〇 • 登錄邏輯格;例如LATCH、FLIP-FLOP。用此類格來記 錄任何信號值。第62圖顯示一正邊(P〇sitive-edge)觸發 的 FLIP-FLOP : 當正邊事件在時脈信號(CK)上發生時,輸出(Q)接收了 輸入(D)的值;否則輸出(Q)使它的值保留在記憶體。 1指鏈格 為了測驗或偵錯之目的,需要略過登錄邏輯格之功能 性存取並直接存取該些登錄邏輯格的内容。因此登錄格係 整合於在第63圖所示的一掃描鏈格。 在功能性模式中,掃描啟動(SE,Scan Enable)係清楚 的和登錄格以一單一登錄格作用。在測驗或偵錯模式中, 設置SE而輸入資料能夠來自掃入(SI, Scan In)輸入而非D 輸人。 掃描鏈 如第64圖所示,所有掃描鏈格都被串鏈為掃描鏈。 在功能模式中,SE是清楚的以及通常都能夠存取所有 登錄格和與電路的其它邏輯相互作用。在測驗(Test)或偵 錯(Debug)模式中,SE被設置以及在一掃描鏈彼此間串鏈 所有的登錄。資料能夠來自第一掃描鏈格和能夠依每一時 脈週期的節奏藉由任何其它掃描鏈格轉換。能夠轉換出資 料以了解登錄内容。 124 200411555 使用-偵…控制器以控制一些掃描鏈…Ap :制盗能夠選擇特定的掃描鏈:其連接「掃描入」和「掃 :出」信號至特定掃描鏈。之後資助能約被掃描入串鏈裡、 :換、或掃描出。由一 JTAG皡界面由外部控制該τΑρ控 制器。第65圖圖示一 TAP控制器。 UAG選繹岭失效掃描键格 基於安全性原因,一些登錄不可以被掃描鏈存取,甚 至在偵錯或測驗模式亦然。一稱作JADI(JTAG存取失效) 的新輪入能夠允許從一整個掃描鏈動態或靜態地移除一掃 描鍵格,而不必修改積體電路中的掃描鏈架構。第66A和 第66B圖示該輸入。
如果JADI是未啟用的(JADI = 〇),不論是否在功能或 測驗或偵錯模式中,掃描鏈如往常一樣工作。如果JADI 疋啟用的(JADI=1),以及吾人在測驗或偵錯模式中,一些 G 掃描鏈格(由設計者選擇)可以自掃描鏈架構「移除」。為了 保持相同數量的掃描鏈格,JTAG選擇性失效掃描鏈格使 用一略過登錄(bypass register)。請注意掃描出(SO,San 〇ut)以及掃描鏈格輸出(q)現下是、不同的。 第67圖圖示包括JTAG之一些部分的處理器。在正常 的操作中,指令記憶體5 5 0與核心通訊亦可以在某些狀況 下與登錄CP14通訊和重設控制值。通常僅容許自安全性 125 200411555 監督模式進行。 當偵錯初始化,藉由Debug TAP(偵錯TAP) 580輸入 指令,且其即為控制核心者❶偵錯下的核心以逐一步驟模 式執行。Debug TAP藉由核心存取 CP14(依據輸入於 JSDAEN PIN之存取控制信號,其以JADI PIN顯示(第45 圖之 JTAG 存取失效輸入,JTAG ACCESS DISABLE INPUT)) 以及也能夠藉由該方法重設控制值。 藉由存取控制信號 JSDAEN控制了藉由 Debug TAP φ 580對CP 14登錄的存取。這麼安排係為使存取尤其是寫入 存取允許JSDAEN必須設為高。當已確認該整個處理器, 在機板階段(board stage)期間,在整個系統啟用偵錯並設 JSDAEN為高。一旦已經檢查了系統,貝,J JSDAEN PIN能 夠接地,它意味著現下不能藉由Debug TAP 5 80在安全性 模式啟用偵錯。在生產模式中的一般處理器具有接地之 JSDAEN。因此只能藉由經由指令記憶體550繞送之軟體 存取控制值。經由該繞送之存取係限制在安全性監督模式 或在提供一授權碼的另一模式(請參考第68圖)。 鲁 應該注意的是,在預設中,偵錯(侵入和非侵入-追蹤) 只能用於非安全性情境中。為使它們可用於安全性情境 中’需要設置控制值啟用位元。 它的優點是偵錯只能總是由使用者初始以在非安全性 情境中執行。因此,雖然在偵錯中使用者通常不能夠存取 安全性情境,是許多情況下它並不是問題,因為對該情境 的存取是受限的以及在可用之前的機板階段已經徹底確認 126 200411555 安全性情境。因此可預見在許多情況下安全性情境的偵錯 是不必要的。如果必要,一安全性監督仍然能夠藉由寫入 CP 14的軟體繞送初始化偵錯。 第68圖圖示偵錯初始化的控制。在該圖中,核心6〇〇 的一部份包括一儲存元件601 (如先前所述可以是一 CP 15 登錄)其中儲存指示是否系統在安全性情境中的一安全性 狀態位元S。核心600也包括一登錄602,其包括指示處 理器所執行之模式(例如使用者模式)以及一登錄603其提 供一内容識別符以確認現下執行於核心之應用或執行緒。 當到達一斷點時,一比較器將在登錄6 11儲存的斷點 與在登錄6 1 2中儲存的核心位址比較,把信號送到控制邏 輯620❶控制邏輯62〇查看安全性狀態s、模式6〇2和執 行緒(内容識別符)6〇3並把其與控制值和在登錄CP14儲存 的條件狀態比較。如果系統不是在安全性情境中操作,則 一「進入偵錯」信號將在630輸出。然而如果系統是在安 全性情境中操作,則控制邏輯62〇將查看模式602 ,以及 如果它是在使用者模式,將檢查以了解是否使用者模式已 啟用和摘錯啟用位元已設定。如果它們是的話,則镇錯將 初始化,便了解執行緒偵知位元(threa(i aware bit)尚未初 始化。上文中描述控制值的階層性本質。 在第6 8圖亦圖示監控控制的執行緒偵知部分和如何 只能夠自安全性監督模式(在本實施例中,處理器係在生產 階段而JSDAEN接地)轉換在登錄CP14中儲存的控制值。 能夠使用一授權碼從一安全性使用者模式進入安全性監督 127 200411555 模式,而後能夠在CP 1 4設置控制值。 當位址比較器6 1 0指不斷點已經到達時,控制邏輯6 2 〇 輸出一「進入偵錯」信號,便了解執行緒比較器640顯示 就該執行緒而言允許偵錯。假設在CP14設置了執行緒痛 知初始化位元。如果執行緒偵知初始化位元係設置一斷點 之後,如果位址和内容識別符合在斷點中和在允許的執行 緒指標中指示的該些,則只能進入偵錯或追蹤。在一監控 功月b初始化之後’只能在比較|§ 6 4 0偵測到偵測内容識別 符為一允許的執行緒時,繼續診斷資料的擷取。當一内容 識別符顯示執行的應用不是一允許者時,則阻止診斷資料 的擷取。 應該注意的是,在較佳實施例中,有粒度中的某種階 層。實際上安全性偵錯或追縱啟用位元係在頂部,接下來 為安全性使用者模式啟用位元,和最後是安全性執行緒债 知啟用位元。如第69A圖和第69B圖所述(詳見下文)。 在「偵錯和狀態控制(Debug and Status Control)」登 錄(CP 14)保留的控制值依據網域、模式和執行緒控制安全 性偵錯粒度。其在安全性監督模式之頂部。一旦設定了「摘 錯和狀態控制」登錄CP14,由安全性監督模式設計對應的 斷點、監視點、等等,使核心進入偵錯狀態。 第69A圖概述侵入式偵錯的安全性偵錯粒度。重設的 預設值係以灰色表示。 相關於非侵入式偵錯之偵錯粒度亦然。第69B圖概述 在這種情況下的安全性偵錯粒度,此第也用灰色表示重設 128 200411555 的預設值。 請注意安全性使用者模式偵錯啟用位元和安全性執行 緒偵知偵錯啟用位元一般用於侵入式和非侵入式偵錯。
一執行緒偵知初始化位元係儲存在登錄c p丨4中並指 示是否依據應用需要粒度。如果執行緒偵知位元已經初始 化,控制邏輯將進一步檢查應用識別符或執行緒6〇3是在 執打緒偵知控制值中所指示者,如果是,則偵錯將被初始 化。如果使用者模式或偵錯啟用位元之任一未設置或執行 緒偵知位元已設置以及執行的應用不是在執行緒偵知控制 值中所指示者,則將忽略該斷點以及核心將繼續進行其原 來所進行者而偵錯將不被初始化。 除控制監控功能的初始化以外,也能夠藉由一類似 法控制在一監控功能期間診斷資料的擷取。為了達成上 目的,在監控功能的操作期間核心必須繼續考慮兩控 值即在庄錄CP 1 4儲存之啟用位元和它們的相關條 第70圖監控功能執行時的粒度。在這種情
下,區域A相關於被允許擷取診斷資料的區域,區域b 關於控制值在⑶4儲存的區域,意指它不可能戴取診 資料。 π μ汉一程式在區域A操作压 斷資料在镇錯期間是以逐步的方式輸出。當操作㈣ 域B時’其為不允許診斷資料梅取處,偵錯以逐步, 灯反之其自動進盯而沒有任何資料被類取。如此雞 到程式的操作再次進入區域A,據以再次開始診斷, 129 200411555 戴取而彳貞錯繼續以逐步方式執行。 在上述實施例中,如果未啟用安全性網域,一 SMI指 令總是被視為一基本事件(atomic event)而阻止診斷資料 的擷取。 此外’如果已設置執行緒偵知初始化位元,則就應用 而論’亦出現操作期間的監控功能的粒度。 就非侵入式偵錯或追蹤而論,其係由ETM所達成且完 全與偵錯無關。當啟用追蹤,ETM像往常一般作用,而當 f 其失效時,ETM依據選擇的粒度在安全性情境或部分安全 性情境隱藏追蹤。避免在未啟用時ETM在安全性網域中擷 取和追蹤診斷資料之一種方法係在S位元為高時使ETM減 速。可由使該S位元與ETMPWRDOWN信號結合以達成, 因此當核心進入安全性情境時,保留ETM的最後值。因此 ETM應該追縱一 SMI指令而後減速直到核心回到非安全性 情境。因此,ETM將只監督非安全性活動。 一些不同的監控功能和它們的粒度將摘要如下。 修 機板階段(board stage)的侵入式偵錯 當JSDAEN PIN未接地時之機板階段,在任何開始時 段前有可能在任何地方初始偵錯。同樣地,如果吾人在安 全性監督模式中,吾人有類似權限。 如果吾人在停機偵錯模式(halt debug mode)初始化偵 錯’所有登錄都是可存取的(非安全性和安全性登錄區塊) 以及除了專屬於控制的位元以外,能夠傾印整個記憶體。 130 200411555 能夠從任何模式和任何網域進入偵錯停機模式。能夠 在安全性或在非安全性記憶體設置斷點和監視點。在偵錯 狀態中’可以藉由利用一 MCr指令僅改變S位元以進入 安全性情境。 在當安全性異常發生時能夠進入偵錯模式,用以擴充 向量捕捉登錄(vector trap register)之新位元如下; SMI向量捕捉啟用; 安全性資料中止向量捕捉啟用; 安全性預取中止向量捕捉啟用;和 安全性未定義向量捕捉啟用。 在監控偵錯模式,如果吾人允許在任何地方偵錯,甚 至在非安全性情境呼叫一 SMI時,可能以逐步偵錯進入安 全性情境。當一斷點在安全性網域中發生時,安全性中止 g理器可操作以傾印安全性登錄區塊和安全性記憶體。 在安全性和在非安全性情境的兩中止管理器將它們的 資訊給予偵錯器應用,以使偵錯器視窗(在相關的偵錯控制 pC上)在安全性和非安全性情境二者中都可顯示登錄狀 態〇 第7 1 A圖顯示當在監控偵錯模式中設定核心時和谓錯 在安全性情境中啟用時所發生者。第71B圖顯示在監护 錯模式中設定核心時和偵錯在安全性情境中停用時所發生 者。之後之程序將詳述如下。 131 200411555 在生_產階段的得入式偵鐘- 在生產階段中,當JSDAEN有接地和偵錯限 市J為非安 全性情境,除非安全性監督有其他的決定,則A结 甘第71B圖
顯示所發生者。在這種情況下,應該總是把SMl、B .現為一基 本指令(atomic instruction), 是先完成安全性功能。 因此在進入偵錯狀 態之前總 _進_入偵錯停機模式有下列限制: 僅在非安全性情境中考慮外部偵錯請求或 a及内部偵錯請 求。如果在安全性情境中已宣告EDBGRQ(外部福 °丨彳貝錯請求,
External Debug Request),一旦安全性功能铁 、、Jt則核心進 入偵錯停機模式,而核心回到非安全性情境中。 在安全性記憶體為斷點或監視點設計不會產生影響以 及當程式設計位址符合時核心不停止。 向量捕捉登錄(Vector Trap Register,詳見下文)僅涉 及非安全性異常。如前所述所有擴充捕捉啟用位元不會產 生影響。 癱 一旦在停機偵錯模式中,則應用下列限制: 不能改變S位元以強制進入安全性情境,除非啟用安 全性偵錯。 如果僅在安全性監督模式中允許偵錯不能夠改變模式 位元。 不能改變控制安全性偵錯的專屬位元。 如果一 SMI被載入和執行(以系統速度存取),僅在當 132 200411555 元全執行女全性功能時,核心再次進入彳貞錯狀態。 在監控偵錯模式中因為不能在安全性情境中發生監 控’安全性中止管理器不需要支援偵錯監控程式。在非安 全性情境中,逐步步驟是可能的,但是只要一 執行, 則完全執行安全性功能,換言之,當「步驟開始(ste卜in)j 和「步驟結束(step-over)」在所有其它指令都可能時,一 xwsi只允許「步驟結束(step_over)」。因此XWSI被視為 一基本指令(atomic instruction)。 使一旦女全性偵錯失效,吾人有下列限制: 在進入監控模式之前: 在非安全性情境中只考慮斷點和監視點。如果已設置 位元S,略過斷點/監視點。請注意,監視點單元以 MCR/MRC(CP14)存取,這將不造成安全性問題,因為斷點 /監視點對安全性記憶體不會有影響。 通常用BKPT來代替斷點所設定之指令。假定在記憶 體中覆寫上述指令係依據BKPT指令,其僅在非安全性模 式中有可能。 向量捕捉登錄僅涉及非安全性異常。如前所述所有擴 充捕捉啟用位元不會產生影響。資料中止和預取中止啟用 位元應該失效以避免強迫處理器進入一不可恢復狀態。 藉由JTAG,吾人對停機模式有相同的限制(不能修改 S位元、等等)。 一旦在監控模式(非安全性中止模式) 非安全性中止管理器能夠傾印非安全性情境和不可見 133 200411555 於安全性區塊登錄 Μ基本SMI指 不能改變S位 如果只在安全 模式位元。 請注意,如果 在非安全性情 錯狀態(在停機模3 在安全性情境 它回到非安全性情 新的偵錯需求 心地控制s位元, 入一掃描鏈中。 總之,在偵錯中, 模式位。如此將 何人能夠藉由改變 的安全性情境。這 式碼也只能對自己 保持其安全性《因 錯’只能夠如前所 本技術的實岁 trap register) 〇 如 應的向量觸發,處 於自相關的異常向 及安全性記憶體。 令執行安全性功能 元以強制進入安全性情境。 性監督模式中不允許偵錯,不能夠改變 外部偵錯請求(EDBGRQ)發生, 境中,核心終止現有指令並立即進入偵 〔中)。 中,終止現有功能並進入偵錯狀態,當 | 境時。 在核心硬體中意味著一些修正。必須精 以及基於安全性’該安全性位元不能拖 僅在安全性監督模式中啟用偵錯時改變 防止能夠在安全性網域中存取偵錯的任 系統(修改TBL項目、等等)以存取所有 種方法中,每一執行緒能夠對自己的程 籲 的程式碼進行偵錯。必須使安全性核心 此在非安全性情境中執行核心時進入偵 述般改變模式位元。 &例使用一新的向量捕捉登錄(vector 果在該登錄中的位元之一設定為高和對 理器進入摘錯狀態如同一斷點已經設襄 量取回的一指令。該些位元的行為可能 134 200411555 依在憤錯控制登錄中的「在安全性情境啟用中的偵錯 (Debug in Secure world Enable)」之位元值而不同。 該新的向量捕捉登錄包括下列位元: D一s —abort、ps —ab〇rt、S — undef、SMI、FIQ、IRQ、
Unaligned、D —abort、P一abort、SWI 和 Undef。 D一s —abort位元:只能在當在安全性情境中啟用偵錯 時以及當在停機偵錯模式中設定偵錯時設置。在監控偵錯 模式中,該位元絕不設置。如果在安全性情境中的偵錯失 效’無論該位元之值為何不會有任何影響。 P一s — ab〇rt位元··與D — S-ab〇rt位元相同。 S一undef位元:僅能在當在安全性情境中啟用偵錯時 設置《如果在安全性情境中偵錯失效,無論該位元之值為 何不會有任何影響。 SMI位元:僅能在當在安全性情境中啟用偵錯時設 置。如果在安全性情境中偵錯失效,無論該位元之值為何 不會有任何影響。 FIQ、IRQ、D —abort、p — abort、SWI、undef 位元:與 非安全性異常對應,所以即使在安全性情境中偵錯失效, 它們仍然有效,請注意D_abort和p_ab〇rt不應該在監控 模式中宣告高。
Reset位元:當重設發生時,吾人進入安全性情境, 僅當在安全性情境中啟用偵錯時該位元有效,否則其不會 產生影響。 雖然本文中已經描述了本發明的一特定實施例,但是 135 200411555 明顯地本發明並未侷限於上述内容,亦可能在本發明的範 _中進行許多修正和增加。例如,在不脖離本發明之範_ 情況下,能夠以申請專利範圍之獨立項進行下列附屬項特 徵的各種結合。 【圖式簡單說明】 本發明將進一步參照以附圖圖示之僅為例示的較佳實 施例解說,其中: 第1圖係一方塊圖,依據本發明之較佳實施例圖示一 資料處理設備; 第2圖圖示在一非安全性網域和一安全性網域操作之 不同程式; 第3圖圖示相關於不同安全模式之處理模式之一矩 陣; 第4和5圖圖示在處理模式和安全網或間不同的關係; 第6圖圖示一程式設計師的模組,與處理模式相關之 一處理器的登錄區塊; 第7圖圖示一示例,為一安全性網域和一非安全性網 域提供個別的登錄區塊; 第8圖圖示多種處理模式,在安全性網域之間藉由一 個別的監控模式所進行之轉換; 第9圖之示圖,使用一模式轉換軟體中斷指令之安全 性網域之轉換; 第1 0圖圖示一示例,系統如何處理非安全性中斷請求 和安全性中斷請求; 200411555 第11A和11B圖依據第10圖,圖示一非安全性中斷 請求處理之示例,和一安全性中斷請求處理之示例; 第12圖圖示一可選擇性的機制,比較第10圖所圖示 者,用以控制非安全性中斷請求信號和安全性中斷請求信 號; 第1 3A和13B之示例性示圖,依據第12圖用以處理 一非安全性中斷請求和一安全性中斷請求; 第1 4圖係一向量中斷表之示例; _ 第15圖圖示與不同安全網域相關之多數向量中斷表; 第16圖圖示一異常控制登錄; 第1 7圖係一流程圖,圖示意圖以一種警告安全性網域 設定之方法改變一處理狀態登錄之一指令如何產生一各自 的模式轉換異常,其依序觸發進入監控式和執行監控模視; 第1 8圖圖示以多種模式操作之一處理器控制之一執 行緒,其中在監控模式中之一任務係中斷的; 第19圖圖示以多種模式操作之一處理器控制之一不 同的執行緒; Φ 第 20圖圖示以多種模式操作之一處理器控制之一進 一步的執行緒,其中中斷係啟用於監控模式; 第21圖至2 3圖依據另一示例性實施例圖示不同的處 理模式和過程,用以在安全性和非安全性網域間轉換; 第24圖圖示增加一安全性處理選擇至一習知ARM核 心之觀念; 第 2 5圖圖示具有安全性和非安全性網域及重設之一 137 處理器 第 一虛懸 第 理請求 第 生型態 第 任務, 務轉換 第 業系統 第 生之中 的作業 第 之問題 第 之中斷 第 先於處 第 安全性 何轉換 26圖圖示使用 用一軟體偽造之中斷傳遞處理請求至 之作業系統; 27圖圖示另_ 一 不例,使用一軟體偽造之中斷傳遞處 至一虛懸之作業系統; 28圖係一流程阔 圖’圖示接收到在第26和27圖所產 之一軟體偽造中齡^ 〒斷時’所執行之處理; 29和30圖圖于*
、在一安全性作業系統之後所進行之 用以追蹤由一兆^ X F女全性作業系統所進行之可能的任 $ 3 1圖係一流盘_ 圖’圖示在第29和30圖之安全性作 中接收到呼叫時, ^ 所執行之處理; 32圖圖示可能为 b在具有多數作業系統之一系統中發 斷優先權反向的門0音^ ^ ^ J問4,其中不同的中斷可以由不同 系統所控制; 33圖圖示使用少 π辱根中斷管理器以避免第32圖所示 :和 34圖圖示不认θ ’疋否它們可以被一作業系統所服務 所中斷,以何&〜上 J两依據控制不同型態和優先權的中斷 35圖圖示 ^徑模式專屬的處理器設定資料如何優 理态设定資料,當該處理器係在監控模式下操作時; 3 6圖之一流程圖依據本發明之一實施例,圖示當在 網域和非安全性網域間轉換時,處理器設定資料如 138 200411555 第3 7圖圖示在本發明之一實施例所用以控 、5己憶 體的存取的記憶體管理邏輯; 第38圖係一方塊圖,圖示在本發明之一第二實施例所 用以控制對記憶體的存取的記憶體管理邏輯; 第3 9圖係一流程圖,圖示在本發明之實施例所執行之 過程’在記憶體管理邏輯中用以處理專屬於一虛擬位址的 一記憶體存取請求; 第40圖係一流程圖,圖示在本發明之實施例所執行之 過程’在記憶體管理邏輯中用以處理專屬於一虛擬位址的 一實體存取請求; 第4 1圖圖示本發明之較佳實施例之分割檢測器如何 操作以防止存取安全性記憶體中之一實體位址,當發出該 記憶體存取請求的裝置係操作於一非安全性模式; 第42圖圖示在本發明之一較佳實施例中,一非安全性 分頁表和一安全性分頁表之使用; 第43圖圖示較佳實施例之主要轉譯參考緩衝(TLB, translation lookaside buffer)中使用之兩種型式之旗標; 第44圖圖示本發明之一實施例中,在開機程序之後, 記憶體如何被分割; 第45圖圖示依據本發明之一實施例,在開機分割執行 之後,由記憶體管理單元(MMU)所映射之非安全性記憶體; 第46圖圖示依據本發明之一實施例,如何警告右列部 分之記憶體,以允許一安全性應用與一非安全性應用共用 記憶體; 139 200411555 第4 7圖圖不依姑《丄 又琛本發明之一實施例,裝置如何被連接 至資料處理設備之外部匯流排; 第48圖係一方祕 塊圖,圖示依據本發明之第二實施例, 裝置如何被連接至休^ 故饮王外部匯流排; 第49圖圖示佶田 ^ ^ ^ 從用一早一組分頁表之實施例的實體記 憶體之安排; 第 5 0 A 圖圖 曙不一安排,其中經由一中介位址使用 兩 MMUs以執行虑艇E — 订麗擬至實體位址的轉譯; 第50B圖圖+ _ 國7^ 一選擇性安排,其中經由一中介位址使
用兩MMUs以鈾紅占, 轨仃虛擬至實體位址的轉譯; 第51圖僅a - /, $两不例’圖示對於安全性網域和非安全性網 域,在實體位址咖門人, — 二間和中介位址空間之間的對應; 第5 2圖圖不經由相關於第二MMU之分頁表之控制在 安全丨生#非女全性網域之間的記憶體區域的調換(swap); 第5 3圖之實施例圖示使用一單一 MMU之實施,及其
中在主要TLB的不符者導致請求一異常以決定虛擬至實 體的位址轉譯; 第54圖係一流程圖,圖示由處理器核心所執行之程 乂 以在第53圖之MMlJ的主要tlb不符的同時,對所 發出之異常採取行動; 第 5 5 圏 舉一方塊圖,圖示一實施例中一資料處理設備 中所提供之元件,甘士 i t 干其中對快取提供資訊,以決定儲存在個 別的快取線上的蒈4立σ 幻貧枓疋女全性資料或非安全性資料; 第56圖圖示如笛一 如弟55圖所不之記憶體管理單元之結構; 140 200411555 第5 7圖係一流程圖圖示第5 5圖所示之資料處理設備 中所執行的處理,以處理一非安全性記憶體存取請求; 第5 8圖係一流程圖圖示第5 5圖所示之資料處理設備 中所執行的處理,以處理一安全性記憶體存取請求; 第59圖圖示對於在一處理器上執行之不同模式和應 用,監控功能可能的粒度(granularity); 第60圖圖示初始不同的監控功能之可能的方法; 第61圖圖示一控制值表,用以控制可使用之不同監控 _ 功能; 第 62 圖圖示一正緣觸發正反器(positive-edge triggered Flip-Flop); 第63圖圖示一掃描串鍵單元(scan chain cell); 第64圖圖示在一掃描串鏈中之多數掃描串鏈單元; 第65圖圖示一偵錯TAP控制器; 第66A圖圖示一具有JADI之偵錯TAP控制器; 第 66B圖圖示一具有一旁路登錄(bypass register)之 一掃描串鏈單元 _ 第67圖圖示一處理器,包含一核心、掃描串鏈和一偵 錯狀態及控制登錄(Debug Status and Control Register); 第68圖圖示因子(factor)控制偵錯或追縱的初始化; 第69A和69B圖圖示偵錯粒度之摘要; 第70圖圖示執行時之偵錯粒度;及 第71A和71B圖圖示在安全情境中啟用偵錯且當其並 非個別啟用之監控偵錯。 141 200411555 :02468012460468024680246802460246802460 111 1 1 2222 2 3 3 3 3 4 44 4 4 5 5 5 5 5 6 ό 6 6 7 7 7 7 7 8 8 8 8 2 元 W心描錄UAGECM錄制憶制Μ取統I機幕錄SPMA優部頁入錄鑰錄部控安安安全全全控MU W核掃登仏1110¥1£1登控記控1€快系別開螢登08§判外分輸登金登外監非非非安安安監:^ 明 說 單 簡 號 符 表 塊 鏈區 器 制 控 輯 邏 ίι 錄管錄 登體登 kr 流 匯
Μ ο R 器 緩 或 輯 邏 器 碼體 /^憶 器記表 統 系1 2 面器元器 業用用 12 界衝單衝排 作應應心用用 Ίώ緩存緩流式性性性核應應式 輸或儲或匯程全全全性性性模 142 200411555 246800246024 000012222333 802468024680 246802468 0 2 4 .344444000001 11112 2 222 3 3 3 222222333333 333333333 3 3 3 許屬0- 取域lcr要譯PU割取域徑徑徑徑徑 存區mi主轉Μ分存區路路路路路 可性戎
輯輯 邏iiB 輯 邏 走 緩 可 N N 缉缉 ,址址 I I ^ t t 器邏邏}昂< 4 測可^一止快擬體 檢許屬(teut -· ο lcr要 m主 符符 止述述 中描描 誤 性性 錯體全全走 生全全行LBro-分取 許憶安安行 產安安表Ticr部存?允記非非表 徑徑徑徑徑式詢詢頁要m子查反取取詢詢頁 路路路路路程查查分主在的檢違存存查查分
符 述 描 /V
擬描描 含B 虛性性走包L ic要 m主 址符符 位述述
B L
B L 符 述 描 相 符的 述分 描部 性址 全位 安體 的實 力 附含 效入 有蘇 JJi 用 使 / 有 私 許 允 者
L T
性 全 安 非 符是 U'LP ML址 描位 性體 全實 安性 非全 的安 加非 附否 效是 有查 含檢 包器 LB測 T檢 要割 者 用 使 / 有 私 /V 許 允 分取 性icl部存 反全m子查 主分的違安在的檢
實 有 誤含 錯入 性载 全Β 安L 止 中 符 述 描 關 相 的 分 部 址 位 體 143 200411555 338 350 352 354 356 358 370 372 374 376 378 380 390 395 397 400 405 407 425 430 435 440 445 450 460 462 464 466 470 472 4 74 476 478 480 482 484 486 488 490 492 ?產檢 反;PU 違核Μ 憶?允全全全全性性性全全位性性性旗I]符符符 記反取安安安安全全全安安礎全全全域序述述述目安憶憶全置置部優碼幕錄入錄號徑割 性違存在非非非安安安非非基安安安網程描描描項非記記安裝裝外判解螢登輸登信路分 生^體 許性性性性區區區性性址記分分標 體 實 可 許 查 全 安 μρ 在 址 位 體 實 性 全 安 tr 否 是 址及 位, 取 存 的 體 憶 記 址 性 位 止全 礎 中安體表 基 誤非域域域 憶頁 體表表 錯或區區區域域域記分 憶頁頁
標 旗 D 體 憶 記 的 用 應 頁 性 分 全體體性 骨 It 己 § 5^5 言 eftsti 多5 器面器 ^ ^ 緩出緩徑 或輸或路 器 測 檢 144 200411555 12 3 ο ο ο 11 11 11 5 5 5 0 0 5 0 0 401400001230120001123 234457800001112300000 -sy r3 r3 rD r3r3r3r3 vo 71 71 7Ϊ 2 040 2050 2060 2070 2100 2110 2120 2150 2153 控隔隔隔用用用督用用E描描令心錯心存錄錄址錄錄制徑控工徑MI監設發換入開式體安全Μ徑 監分分分應應應監應應1C掃掃指核偵核儲登登位登登控路監多路SM在器自轉載離模實非安Μ路 式 模線線線 式 模 體 1 憶 鏈鏈記
A T 件 元 較 比 輯 邏 料 資 定 設 器 S 處 專器 式換 模轉 式 程 控 網向態開 ?監 的指狀離 出入 令為之。 體 發進}指標域式 間憶體 已式料MI指網程 空記憶 令模資S態點控 址性記 指控定出狀終監 位全性 ?·< S 處 屬 專 式 模 控 監 用 使 體 憶 記 之 態 狀 域 態網 狀點 存終 儲有 域含 之 域 網 點 終 至 換 轉 並 式 模 控 監
U 145 200411555
215 5 micro-TLB 2 1 5 7路徑
2160 主要 TLB 2165轉譯表行走邏輯 2167路徑
2170 MMU 2175路徑
2180 主要 TLB 2185轉譯表行走邏輯 2190資料匯流排 2192路徑 2194路徑
2170 MMU 2200實體位址空間 壽 2210安全性區域 2220非安全性記憶體 2230安全性區域 2240非安全性記憶體 2250分頁表 2265中間位址空間 2270中間位址空間 2275非安全性中間位址空間 2300記憶體的一區域 23 05中間位址空間中的區域 2310區域
2400 MMU
2410 micro-TLB
2420 主要 TLB 2422路徑 φ 2430路徑 2440路徑 2450路徑 2500偵測到一 TLB不符者異常? 25 10為該異常以一預設向量進入監控模式 25 20獲取導致異常的錯誤虛擬位址 2530替在第一表之相關第一描述符決定中間位址 2 540預取第二表以替第一描述符獲取實體位址 2 5 5 0取得第一描述符以得到錯誤虛擬位址的中間位址 2 5 60參考第二表以找尋第二描述符以替錯誤虛擬位址的 中間位址給定實體位址 2 5 70取回該第二描述符以獲得錯誤虛擬位址的實體位址 146 200411555 8 9901123333 5 55666666666666677 2 22222222222222222 虚給 以 符述 描 的 新 生 £·*· 以 符譯 述轉 描址< 一一位42( 第體2 和實LB回 排排 一至T返 流流 第址要常線線 匯匯 合位主異取數標址制徑 結擬在自快多旗位控路 符 述 描 的 新 該 存 儲 中 B L T 要 主 的 中 址 其 位於 擬存 虛 儲 生符 產B述 式TL描 排 器程ΓΟ-性 流輯 測性lcr全 匯邏器器檢全m安詢 徑徑料制優碼割安詢非查 路路資控判解分非查在一 00246050 45555001 φ 行 執 籤 標 效 有 該 有 含 B L 走T 行要 表主符 頁定述 分決描 5 0 12 性 全 安 非 的 線誤部反誤 性錯外違錯 _ 彳, 全反充割反充 割式Γ0 許?詢安違填分違填取取分程1C 允取查有性線性性線存存性性m ( ‘取快取否全取全全取料部全全詢 rnimi違存可快是安快安安快資外安安查 50505050505050505 23344556677889900 777777 77777777788 ► ί i z 2 2 2 2 2 2 入 \17 載: 分者 部用 的使 符/ Λ 描5 的可 址許 位取 體存 實些 有該 含查 把檢 Β Β L L τ Τ 0-0-? 反 止 中 誤 錯 反 違 籤止取 標中存 止 中 部 外 反生Β 違產Τ 址 位 擬 虛 147 200411555 Γ-L m J4 m 4 m ^ 0 JMf J e J , I /- J 4 1 12 233445688900 0011111222 8 88 888888888800 oooooooooo I — If I f _ f _ f I___PI __ ^^^^1 要 主 的 中 其 於 存 儲 符 述 描 性 行要 全 表主 安詢頁定符 在查分決述
B L T 行 執
籤 標 效 有 該 有 含 B L 走T 描 性 全 安 的
B B L L T T 許?詢填填取取回體緒續的新叫叫始使叫全新 ( 允取查線線存存返軟行繼舊至呼呼開可呼安至 cr(cr(反取快取取取料部始否執新存換收否新否絕的換 mlmi違存可快快快資外開是性重儲轉接是重是拒舊轉 8 ?· 描 的可 址許 位取 體存 實些 有該 含查 把檢 止 中 誤 錯 取 存 P 外 充充 述 私 入} 載:. W者 部用 的使 符/ 有 全 安 之 行 執 下 現 和 緒 行 執 容 回 内緒 返 緒緒行 器的 行行執 理斷 執執性 管中 性性全 斷製同全全安 中仿相安安的 緒緒 行行 執執 性性 全全 安安? 之之緒 中中行 用用執 作作的 有有新 現現用 存 儲 被 容緒 内行 的執 緒性 行全 執安 性的 148

Claims (1)

  1. 200411555 拾、申請專利範圍· 1. 一種用以處理資料的設備,該設備包含: 一種處理器,其係可於多數模式和多數網域中操 作,該多數網域包含一安全性網域或一非安全性網域, 該多數模式包含: 在該安全性網域之至少一安全性模式; 在該非安全性網域之至少一非安全性模式;和 一監控模式,其中 β 當該處理器在一安全性模式執行一程式時,該程式 可以存取當該處理器在非安全性模式下操作時不能存 取的安全性資料;和 藉由該監控模式進行在該安全性模式和該非安全性 模式間的轉換,該處理器至少部分可於該監控模式中操 作以執行一監控程式,以管理在該安全性模式和該非安 全性模式間的轉換。 2. 如申請專利範圍第1項所述之設備,其中上述處理器包 括一登錄區塊,以及當自上述安全性模式轉換為上述非 安全性模式時,上述監控程式可操作以清除在該安全性 模式和非安全性模式間共用的該登錄區塊之至少一部 分,以使該登錄區塊所擁有的安全性資料不可能自上述 安全性模式傳遞到上述非安全性模式,除非該監控程式 允許。 149 200411555 3. 如申請專利範圍第1項所述之設備,其中該處理器包括 當該處理器在該非安全性模式中操作時所使用的一非 安全性登錄區塊,以及當該處理器在該安全性模式中操 作時所使用的一安全性登錄區塊。 4. 如申請專利範圍第1項所述之設備,其中當在該非安全 性模式中操作時,其係藉由轉換在該監控程式中一或多 數固定點中之一,而轉換至該安全性模式。 5. 如申請專利範圍第1項所述之設備,其中該安全性網域 提供至少一安全性權限模式以及至少一安全性使用者 模式,以及當在一安全性權限模式中操作時,可以使用 與轉換至一安全性使用者模式之相同機制轉換至該監 控模式。 6. 如申請專利範圍第5項所述之設備,其中該轉換所使用 之一呼叫係由在該非安全性模式執行的一程式所產生。 7. 如申請專利範圍第6項所述之設備,其中在該監控程式 中對一固定點進行該呼叫。 8. 如申請專利範圍第4項所述之設備,其中該轉換係由一 150 200411555 程式在除了 5亥監控模式於該非安全性模式和該安全性 模式之間轉換之外的模式下所觸發。 9·如申請專利範圍第8項所述之設備,其中除了該監控模 式於該非安全性模式和該安全性模式之間轉換之外,任 一程式的觸發意圖將會被捕捉並在該監控模式中對一 固定點觸發一呼叫。 I 0·如申請專利範圍第1項所述之設備,其中當從該非安 全性模式初始化進入該監控模式時,該處理器儲存一程 式計數值’用以在該非安全性模式處理停止處重新開始 在該非安全性模式中的處理。 II ·如申請專利範圍第1項所述之設備,其中當從該非安 全性模式初始化進入該監控模式時,該處理器儲存一處 理器狀態值,用以還原該處理器至符合該非安全性模式 _ 處理停止處之狀態。 12.如申請專利範圍第1項所述之設備,其中當該安全性 模式中的處理被停止以使該非安全性模式能夠進行異 常處理時,藉由該監控模式使模式轉換至非安全性模式 且當完成該異常處理時將控制交回給該監控模式。 151 200411555 13. 如申請專利範圍第1項所述之設備,其中該處理器包 括一安全性狀態旗標其指示是否該處理器係在該安全 性網域或該非安全性網域中操作,當該處理器在該監控 模式中操作時,該安全性狀態旗標是可寫入的,以及該 處理器在除了該監控模式之外的模式中操作時,該安全 性狀態旗標是不可寫入的。 14. 如申請專利範圍第1項所述之設備,其中當操作係於 至少一非安全性模式下進行時,該處理器係由一非安全 性作業系統控制。 1 5.如申請專利範圍第1項所述之設備,其中當操作係於 至少一安全性模式下進行時,該處理器係由一安全性作 業系統控制。 16.如申請專利範圍第1項所述之設備,其中該監控程式 是該安全性作業系統的一部分。 1 7.如申請專利範圍第1項所述之設備,其中該處理器可 對一或多數的異常條件反應以觸發異常處理。 1 8 ·如申請專利範圍第1 7項所述之設備,其中在該監控模 式中,該異常條件之至少一者是失效的。 152 200411555 1 9.如申請專利範圍第2項所述之設備,其中在該監控模 式中該異常條件之至少一者係失效的,以及當進入該監 控模式,該處理器具有多數專屬的登錄其在該登錄區塊 中代替對應的一般目的登錄,以使該多數專屬登錄可由 該監控程式所使用,而無需覆寫在該對應的一般目的登 錄中的資料。 20.如申請專利範圍第17項所述之設備,其中一異常捕捉 遮罩登錄可儲存一或多數的參數,其指定當異常發生時 應該由該監控模式中執行的異常管理器所處理之異 常,以及應該由在該安全性網域和該非安全性網域中之 現有一模式執行的一異常管理器處理之該異常。 2 1 ·如申請專利範圍第1 7項所述之設備,其中該處理器對 可操作以觸發進入該監控模式和執行該監控程式之一 安全性異常條件作出回應。 22·如申請專利範圍第1項所述之設備,其中該處理器對 一監控模式進入指令作出回應,以在一預設的位置開始 執行該監控程式和進入該監控模式。 23.如申請專利範圍第22項所述之設備,其中該監控模式 153 200411555 進入指令是一模式轉換軟體中斷指令以及該預設的位 置是與該模式轉換軟體中斷指令相關的一模式轉換軟 體中斷向量。 24. 如申請專利範圍第23項所述之設備,其中不同模式之 轉換轉換軟體中斷向量係與該模式轉換軟體中斷指令 相關,而與是否該處理器在一安全性模式或一非安全性 模式無關。 · 25. 如申請專利範圍第1項所述之設備,其中該至少一安 全性模式包括一或多數: 一安全性監督模式; 一安全性系統模式; 一安全性中止異常模式; 一安全性未定義異常模式; 一安全性中斷模式; _ 一安全性快速中斷模式;和 一安全性使用者模式。 26. 如申請專利範圍第1項所述之設備,其中該至少一非 安全性模式包括一或多數: 一非安全性監督模式; 一非安全性系統模式; 154 200411555 一非安全性中止異常模式; 一非安全性未定義異常模式; 一非安全性中斷模式; 一非安全性快速中斷模式;和 一非安全性使用者模式。 2 7.如申請專利範圍第1項所述之設備,其中該處理器操 A 作於至少一權限安全性模式其在不能從該安全性網域 轉換至該非安全性網域的該安全性網域中,該權限安全 性模式所具有之權限權利允許自該權限限安全性模式 轉換至監控模式,無需程式執行點之重導。 28. 在請求27中宣稱的設備,其中當在該監控模式中時, 該處理器可操作以改變一安全性旗標,以在該安全性網 域和該非安全性網域之間轉換,該安全性旗標之存取在 該監控模式之外是不可寫入的。 29. 如申請專利範圍第27項所述之設備,其中該處理器對 軟體中斷指令作出回應,以使用由與該軟體中斷指令相 關之一中斷向量所指定之程式執行點的一重導,執行轉 換至該監控模式。 3 0.如申請專利範圍第27項所述之設備,其中該非安全性 155 200411555 網域包括至少一權限非安全性模式,若無程式執行點之 一重導,則不能進行自該至少一權限非安全性模式至該 監控模式之轉換。 31·如申請專利範圍第27項所述之設備,其中一旦重設, 該處理器進入該權限安全性模式。 32. 如申請專利範圍第27項所述之設備,其中在從該安全 性網域轉換至該非安全性網域之前,在該監控模式中執 行的一監控程式會轉換至該安全性權限模式,以允許在 該安全性權限模式為了轉換至該非安全性網域而轉換 回該監控模式之前,自該監控模式中儲存不可存取之設 定值。 33. 如申請專利範圍第27項所述之設備,其中在該監控模 式中可存取的記憶體區域在該權限安全性模式中也是 可存取的。 34. —種用以處理資料的方法,該方法包含: 以一種可於多數模式和多數網域中操作的處理器執 行一程式,該多數網域包含一安全性網域或一非安全性 網域,該多數模式包含: 在該安全性網域之至少一安全性模式; 156 200411555 在該非安全性網域之至少一非安全性模式;和 一監控模式,其中 當該處理器在一安全性模式執行一程式時,該程式 可以存取當該處理器在非安全性模式下操作時不能存 取的安全性資料;和 藉由該監控模式而在該安全性模式和該非安全性模 式間轉換,該處理器至少部分可於該監控模式中執行一 監控程式,以管理在該安全性模式和該非安全性模式間 的轉換。 3 5.如申請專利範圍第34項所述之方法,其中該處理器包 括一登錄區塊,以及當自該安全性模式轉換為該非安全 性模式時,該監控程式可操作以清除在該安全性模式和 非安全性模式間共用的該登錄區塊之至少一部分,以使 該登錄區塊所擁有的安全性資料不可能自該安全性模 式傳遞到該非安全性模式,除非該監控程式允許。 3 6.如申請專利範圍第34項所述之方法,其中該處理器包 括當該處理器在該非安全性模式中操作時所使用的一 非安全性登錄區塊,以及當該處理器在該安全性模式中 操作時所使用的一安全性登錄區塊。 37.如申請專利範圍第34項所述之方法,其中當在該非安 157 411555 監控模式中觸發對一固定點的呼叫β 43·如申請專利範圍第34項所述之方法,其中當從該非安 全〖生模式初始化進入該監控模式時,該處理器會儲存一 程式計數值,用以在該非安全性模式處理停止處重新開 始在該非安全性模式中的處理。 44.如申請專利範圍第34項所述之方法,其中^該㈣❿ 全性模式初始化進入該監控模式時,該處理器會儲存一 處理器狀態值,用卩還原帛處理器至#合該#安全性模 式處理停止處之狀態。 如申請專利範圍 + W返之方法,其中當該安f 模式中的處理被停止以使該非安全性模式能夠進行異 常處理時,藉㈣監控模式使模式轉換至非安全性模式 且當完成該異常處理時將控制交回給該監控模式。 46·如申請專利範圍第34項 . K万法,其中該處理器包 括一安全性狀態旗標其指示县不 认Δ 、 知不疋否該處理器係在該安全 1凋域或該非安全性網域中摔 ^ . 探作虽該處理器在該監控 模式中操作時,該安全性妝能 性狀態旗標是可寫入的,以及該 處理器在除了該監控模式之 挪θ <外操作時,該安全性狀態旗 私疋不可寫入的。 159 200411555 47.如申請專利範圍第34項所述之方法,其中當該至少一 非安全性模式操作時,一非安全性作業系統控制該處理 器0 4 8.如申請專利範圍第34項所述之方法,其中當該至少一 安全性模式操作時,一安全性作業系統控制該處理器。 49. 如申請專利範圍第48項所述之方法,其中該監控程 式是該安全性作業系統的一部分。 50. 如申請專利範圍第34項所述之方法,其中該處理器對 一或多數的異常條件為觸發異常處理作出回應。 51. 如申請專利範圍第50項所述之方法,其中在該監控模 式中,該異常條件之至少一者是失效的。 _ 5 2.如申請專利範圍第35項所述之方法,其中在該監控 模式中該異常條件之至少一者係失效的,以及當進入該 監控模式,該處理器具有多數專屬的登錄其在該登錄區 塊中代替對應的一般目的登錄,以使該多數專屬登錄可 由該監控程式所使用,而無需覆寫在該對應的一般目的 登錄中的資料。 160 200411555 5 3 ·如申請專利範圍第5 0項所述之方法,其中一異常捕 捉遮罩登錄可儲存一或多數的參數,其指定當異常發生 時應該由該監控模式中執行的異常管理器所處理之異 常,以及應該由在該安全性網域和該非安全性網域中之 現有一模式執行的一異常管理器處理之異常。 54. 如申請專利範圍第50項所述之方法,其中該處理器 會對可操作以觸發進入該監控模式和執行該監控程式 的一安全性異常條件作出回應。 55. 如申請專利範圍第34項所述之方法,其中該處理器對 一監控模式進入指令作出回應,以在一預設的位置開始 執行該監控程式和進入該監控模式。 5 6.如申請專利範圍第55項所述之方法,其中該監控模 式進入指令是一模式轉換軟體中斷指令以及該預設的 位置是與該模式轉換軟體中斷指令相關的一模式轉換 軟體中斷向量。 5 7.如申請專利範圍第56項所述之方法,其中不同模式之 轉換轉換軟體中斷向量係與該模式轉換軟體中斷指令 161 200411555 非安全性 相關,而與是否該處理器在一安全性模式或一 模式無關。 至少一安 5 8.如申請專利範圍第34項所述之方法,其中該 全性模式包括一或多數: 一安全性監督模式; 一安全性系統模式; 一安全性中止異常模式; 一安全性未定義異常模式; 一安全性中斷模式; 一安全性快速中斷模式;和 一安全性使用者模式。 至少一非 5 9.如申請專利範圍第34項所述之方法,其中該 安全性模式包括一或多數: 一非安全性監督模式; 一非安全性系統模式; 一非安全性中止異常模式; 一非安全性未定義異常模式; 一非安全性中斷模式; 一非安全性快速中斷模式;和 一非安全性使用者模式。 162 200411555 60. 如申請專利範圍第34項所述之方法,其中該處理器操 作於至少一權限安全性模式其在不能從該安全性網域 轉換至該非安全性網域的該安全性網域中,該權限安全 性模式所具有之權限權利允許自該權限限安全性模式 轉換至監控模式,無需程式執行點之重導。 61. 如申請專利範圍第60項所述之方法,其中當在該監控 I 模式中時,該處理器可操作以改變一安全性旗標,以在 該安全性網域和該非安全性網域之間轉換,該安全性旗 標之存取在該監控模式之外是不可寫入的。 62. 如申請專利範圍第60項所述之方法,其中該處理器對 軟體中斷指令作出回應,以使用由與該軟體中斷指令相 關之一中斷向量所指定之程式執行點的一重導,執行轉 換至該監控模式。 _ 6 3.如申請專利範圍第60項所述之方法,其中該非安全性 網域包括至少一權限非安全性模式,若無程式執行點之 一重導,則不能進行自該至少一權限非安全性模式至該 監控模式之轉換。 64.如申請專利範圍第60項所述之方法,其中一旦重設, 163 200411555 該處理器進入該權限安全性模式。 65·如申請專利範圍第6〇項所述之方法,其中在從該安全 性網域轉換至該非安全性網域之前,在該監控模式中執 行的一監控程式,會在該安全性權限模式為了轉換至該 非安全性網域而轉換回該監控模式之前,轉換至該安全 性權限模式,以允許自該監控模式中儲存不可存取之設 定值。 66.如申請專利範圍第6〇項所述之方法,其中在該監控模 式中可存取的記憶體區域在該權限安全性模式中也是 可存取的。 M·—種具有一電腦程式之電腦程式產品,其係可操作以依 據申請專利範圍第3 4項所述之方法控制一資料處理設 164
TW092132187A 2002-11-18 2003-11-17 Switching between secure and non-secure processing modes TWI275997B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0226874.6A GB0226874D0 (en) 2002-11-18 2002-11-18 Switching between secure and non-secure processing modes
GB0303494A GB0303494D0 (en) 2002-11-18 2003-02-14 Data processing system

Publications (2)

Publication Number Publication Date
TW200411555A true TW200411555A (en) 2004-07-01
TWI275997B TWI275997B (en) 2007-03-11

Family

ID=32328069

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092132187A TWI275997B (en) 2002-11-18 2003-11-17 Switching between secure and non-secure processing modes

Country Status (11)

Country Link
US (1) US7849310B2 (zh)
EP (1) EP1563375B1 (zh)
JP (1) JP4423206B2 (zh)
KR (1) KR100955284B1 (zh)
AU (1) AU2003274383A1 (zh)
DE (1) DE60308215T2 (zh)
GB (1) GB2402785B (zh)
IL (1) IL164512A (zh)
RU (1) RU2005115083A (zh)
TW (1) TWI275997B (zh)
WO (1) WO2004046924A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI549018B (zh) * 2014-03-20 2016-09-11 美國亞德諾半導體公司 安全感知主控裝置之系統及方法
TWI562653B (zh) * 2013-06-06 2016-12-11

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
DE60304602T2 (de) * 2002-11-18 2006-12-28 Arm Ltd., Cherry Hinton Ausnahmearten innerhalb eines sicheren verarbeitungssystems
EP1496435A1 (en) * 2003-07-11 2005-01-12 Yogitech Spa Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
EP1688816A4 (en) * 2003-11-28 2012-04-25 Panasonic Corp DATA PROCESSING DEVICE
US7296146B2 (en) * 2004-01-12 2007-11-13 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US7178015B2 (en) * 2004-01-12 2007-02-13 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US20050154910A1 (en) * 2004-01-12 2005-07-14 Shaw Mark E. Security measures in a partitionable computing system
US20050198461A1 (en) * 2004-01-12 2005-09-08 Shaw Mark E. Security measures in a partitionable computing system
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
EP1628235A1 (en) * 2004-07-01 2006-02-22 Texas Instruments Incorporated Method and system of ensuring integrity of a secure mode entry sequence
DE602004031719D1 (de) * 2004-07-01 2011-04-21 Texas Instruments Inc Verfahren und System zur Überprüfung der Ausführung einer Eingabesequenz eines sicheren Modus
EP1619572A1 (en) * 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
US7484247B2 (en) * 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US7793083B2 (en) * 2004-11-26 2010-09-07 Panasonic Corporation Processor and system for selectively disabling secure data on a switch
FR2884628A1 (fr) * 2005-04-18 2006-10-20 St Microelectronics Sa Procede de traitement d'interruptions non securisees par un processeur operant dans le mode securise, processeur associe.
CN101233525A (zh) * 2005-05-26 2008-07-30 松下电器产业株式会社 数据处理装置
WO2006129641A1 (ja) * 2005-06-01 2006-12-07 Matsushita Electric Industrial Co., Ltd. コンピュータシステム及びプログラム生成装置
US20070067826A1 (en) * 2005-09-19 2007-03-22 Texas Instruments Incorporated Method and system for preventing unsecure memory accesses
US8019947B2 (en) * 2005-10-19 2011-09-13 Intel Corporation Technique for thread communication and synchronization
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
CN101438290B (zh) * 2006-05-01 2011-10-05 联发科技股份有限公司 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置
US20140373144A9 (en) 2006-05-22 2014-12-18 Alen Capalik System and method for analyzing unauthorized intrusion into a computer network
EP1865435A1 (en) * 2006-06-06 2007-12-12 Texas Instruments France Enhanced exception handling
US7529916B2 (en) * 2006-08-16 2009-05-05 Arm Limited Data processing apparatus and method for controlling access to registers
US20090307770A1 (en) * 2006-08-17 2009-12-10 Peter William Harris Apparatus and method for performing integrity checks on sofware
DE102006049646B3 (de) * 2006-10-20 2008-06-19 Siemens Ag Verfahren und Sendevorrichtung zum gesicherten Erstellen und Versenden einer elektronischen Nachricht sowie Verfahren und Empfangsvorrichtung zum gesicherten Empfangen und Verarbeiten einer elektronischen Nachricht
JP2008152462A (ja) 2006-12-15 2008-07-03 Ntt Docomo Inc 遠隔起動システム、遠隔起動サーバ及び通信端末
US7689733B2 (en) * 2007-03-09 2010-03-30 Microsoft Corporation Method and apparatus for policy-based direct memory access control
US8255988B2 (en) * 2007-03-28 2012-08-28 Microsoft Corporation Direct peripheral communication for restricted mode operation
JP5049185B2 (ja) * 2007-04-19 2012-10-17 パナソニック株式会社 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法
EP1986122A1 (fr) * 2007-04-23 2008-10-29 Stmicroelectronics Sa Unite de traitement securisee
MX2009012134A (es) 2007-05-11 2009-11-25 Echostar Technologies Llc Aparato para controlar la ejecucion de un procesador en un ambiente seguro.
FR2919951B1 (fr) * 2007-08-08 2012-12-21 Airbus France Systeme de traitement et d'affichage de donnees
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
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
GB2460393B (en) 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US9286080B2 (en) * 2008-07-02 2016-03-15 Hewlett-Packard Development Company, L.P. Memory management for hypervisor loading
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
KR100966014B1 (ko) * 2008-09-11 2010-06-24 현대중공업 주식회사 프로그램의 동작 목적에 따른 프로세스 제어기반 파일시스템 제어기
US9166797B2 (en) * 2008-10-24 2015-10-20 Microsoft Technology Licensing, Llc Secured compartment for transactions
KR20100124052A (ko) * 2009-05-18 2010-11-26 삼성전자주식회사 플랫폼에 비종속적인 보안 환경 제공 장치 및 방법
US8499304B2 (en) * 2009-12-15 2013-07-30 At&T Mobility Ii Llc Multiple mode mobile device
US8587409B2 (en) 2010-03-08 2013-11-19 Electronics And Telecommunications Research Institute Radio security leader controlling operation mode, and radio security tag supporting security mode and normal mode
DE102010028231A1 (de) * 2010-04-27 2011-10-27 Robert Bosch Gmbh Speichermodul zur gleichzeitigen Bereitstellung wenigstens eines sicheren und wenigstens eines unsicheren Speicherbereichs
US9054881B2 (en) 2010-05-14 2015-06-09 Electronics And Telecommunications Research Institute Radio frequency identification (RFID) tag and interrogator for supporting normal mode and secure mode, and operation method thereof
US9106697B2 (en) 2010-06-24 2015-08-11 NeurallQ, Inc. System and method for identifying unauthorized activities on a computer system using a data structure model
US8789189B2 (en) * 2010-06-24 2014-07-22 NeurallQ, Inc. System and method for sampling forensic data of unauthorized activities using executability states
DE102011012227A1 (de) * 2011-02-24 2012-08-30 Giesecke & Devrient Gmbh Verfahren zum Datenaustausch in einer gesicherten Laufzeitumgebung
DE102011012226A1 (de) * 2011-02-24 2012-08-30 Giesecke & Devrient Gmbh Verfahren zum Betrieb einer Mikroprozessoreinheit, insbesondere in einem mobilen Endgerät
DE102011018431A1 (de) 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts
US8914876B2 (en) 2011-05-05 2014-12-16 Ebay Inc. System and method for transaction security enhancement
JP5879527B2 (ja) 2011-05-25 2016-03-08 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法
US8495443B1 (en) 2011-05-31 2013-07-23 Apple Inc. Secure register scan bypass
US20140201087A1 (en) * 2011-08-10 2014-07-17 Nautilus Hyosung Inc. Touch screen having integrated epp, and input information processing method for automated teller machine using same
KR101495653B1 (ko) * 2011-12-28 2015-02-26 노틸러스효성 주식회사 Epp 일체형 터치스크린이 구비된 금융자동화기기의 고객 정보 해킹 방지 방법
US8930318B1 (en) * 2011-09-29 2015-01-06 Google Inc. Systems and methods for handling interruptions while updating of an electronic device
DE102011115135A1 (de) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Mikroprozessorsystem mit gesicherter Laufzeitumgebung
DE102011116489A1 (de) * 2011-10-20 2013-04-25 Giesecke & Devrient Gmbh Mobiles Endgerät, Transaktionsterminal und Verfahren zur Durchführung einer Transaktion an einem Transaktionsterminal mittels eines mobilen Endgeräts
US9143943B2 (en) * 2011-11-29 2015-09-22 Dell Products L.P. Mode sensitive networking
GB2497736A (en) * 2011-12-16 2013-06-26 St Microelectronics Ltd Hardware monitor with context selector for selecting from multiple contexts
US9141559B2 (en) 2012-01-04 2015-09-22 Intel Corporation Increasing virtual-memory efficiencies
WO2013103341A1 (en) * 2012-01-04 2013-07-11 Intel Corporation Increasing virtual-memory efficiencies
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
GB2499287A (en) * 2012-02-08 2013-08-14 Advanced Risc Mach Ltd Exception handling in data processing with different security domains
US9116711B2 (en) * 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US8667270B2 (en) 2012-02-10 2014-03-04 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
US20130219177A1 (en) * 2012-02-16 2013-08-22 Samsung Electronics Co. Ltd. Secure data processing device and method
KR101259824B1 (ko) * 2012-02-24 2013-04-30 주식회사 텔스카 시큐어 os를 이용한 모바일 디바이스의 비밀번호 입력 시스템 및 입력 방법
US9195497B2 (en) * 2012-03-21 2015-11-24 Microchip Technology Incorporated Microcontroller with context switch
GB2501274B (en) 2012-04-17 2020-05-13 Advanced Risc Mach Ltd Management of data processing security in a secondary processor
US9075992B2 (en) * 2012-05-01 2015-07-07 Harris Corporation Systems and methods for identifying, deterring and/or delaying attacks to a network using shadow networking techniques
KR101907486B1 (ko) * 2012-09-14 2018-10-12 한국전자통신연구원 보안성이 우수한 실행환경을 제공하는 이동 컴퓨팅 시스템
KR101954733B1 (ko) 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
US9886595B2 (en) * 2012-12-07 2018-02-06 Samsung Electronics Co., Ltd. Priority-based application execution method and apparatus of data processing device
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
EP2954419B1 (en) * 2013-02-05 2017-03-29 ARM Limited Virtualisation supporting guest operating systems using memory protection units
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9536075B2 (en) * 2013-03-01 2017-01-03 Infineon Technologies Ag Dynamic resource sharing
US9892284B2 (en) * 2013-03-11 2018-02-13 Lantiq Beteiligungs-GmbH & Co. KG Trusted execution thread in an embedded multithreaded system
US9298911B2 (en) 2013-03-15 2016-03-29 Intel Corporation Method, apparatus, system, and computer readable medium for providing apparatus security
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
JP2014235326A (ja) 2013-06-03 2014-12-15 富士通セミコンダクター株式会社 システム、情報処理装置、セキュアモジュール、および検証方法
US9927995B2 (en) * 2013-06-19 2018-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and an integrated circuit for executing a trusted application within a trusted runtime environment
JP6117068B2 (ja) * 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム
JP6129702B2 (ja) * 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
KR101489887B1 (ko) * 2014-01-23 2015-02-06 고려대학교 산학협력단 인터럽트 처리 시스템 및 방법
US20150268706A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated System and method for memory power management in a system on a chip with multiple execution environments
US9720868B2 (en) * 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
US10277616B2 (en) 2014-09-25 2019-04-30 Vigilant Ip Holdings Llc Secure digital traffic analysis
US10394635B2 (en) 2014-10-29 2019-08-27 Hewlett Packard Enterprise Development Lp CPU with external fault response handling
CN104468997B (zh) * 2014-12-01 2017-09-19 努比亚技术有限公司 加密状态处理方法及装置
KR102327334B1 (ko) * 2014-12-31 2021-11-17 삼성전자주식회사 디스플레이 컨트롤러 및 이를 포함하는 반도체 집적회로 장치
WO2016112219A1 (en) 2015-01-07 2016-07-14 CounterTack, Inc. System and method for monitoring a computer system using machine interpretable code
SG10201500698YA (en) * 2015-01-29 2016-08-30 Huawei Internat Pte Ltd Method for data protection using isolated environment in mobile device
WO2016128443A1 (en) * 2015-02-11 2016-08-18 Siemens Aktiengesellschaft Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system
WO2016140548A1 (ko) * 2015-03-05 2016-09-09 삼성전자 주식회사 사용자 디바이스에 보안 모드를 제공하기 위한 방법 및 장치
GB2536215B (en) * 2015-03-05 2018-01-31 Samsung Electronics Co Ltd Secure input mode for user device
US9584628B2 (en) * 2015-03-17 2017-02-28 Freescale Semiconductor, Inc. Zero-copy data transmission system
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US10078597B2 (en) * 2015-04-03 2018-09-18 Via Alliance Semiconductor Co., Ltd. System and method of distinguishing system management mode entries in a translation address cache of a processor
WO2016175764A1 (en) * 2015-04-28 2016-11-03 Microsoft Technology Licensing, Llc Operating system privacy mode
US10366244B2 (en) * 2015-06-09 2019-07-30 International Business Machines Corporation Performing an operation on sensitive data
GB2539657B (en) * 2015-06-22 2018-03-07 Advanced Risc Mach Ltd Tracing Processing Activity
KR102130744B1 (ko) 2015-07-21 2020-07-06 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
EP3343419A1 (en) * 2015-08-25 2018-07-04 Seltech Corporation System with hypervisor
KR102429906B1 (ko) 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
CN105447406B (zh) * 2015-11-10 2018-10-19 华为技术有限公司 一种用于访问存储空间的方法与装置
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic
KR20180071679A (ko) * 2016-12-20 2018-06-28 삼성전자주식회사 사용자 단말 장치 및 그의 제어 방법
EP3547195B1 (en) 2016-12-29 2020-11-25 Huawei Technologies Co., Ltd. System-on-chip and method for switching secure operating systems
US10394454B2 (en) * 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
US10268379B2 (en) * 2017-01-13 2019-04-23 Arm Limited Partitioning of memory system resources or performance monitoring
RU2641226C1 (ru) * 2017-02-13 2018-01-16 Самсунг Электроникс Ко., Лтд. Способ функционирования secureos на многопроцессорных системах в мобильных устройствах
US10740496B2 (en) 2017-02-13 2020-08-11 Samsung Electronics Co., Ltd. Method and apparatus for operating multi-processor system in electronic device
US20180275731A1 (en) * 2017-03-21 2018-09-27 Hewlett Packard Enterprise Development Lp Processor reset vectors
US10387689B2 (en) * 2017-09-22 2019-08-20 Tocreo Labs, L.L.C. NFC cryptographic security module
US10601592B2 (en) * 2017-09-08 2020-03-24 Kenneth Hugh Rose System and method trusted workspace in commercial mobile devices
US10783240B2 (en) 2017-09-29 2020-09-22 Stmicroelectronics, Inc. Secure environment in a non-secure microcontroller
US11347507B2 (en) 2018-03-15 2022-05-31 SiFive, Inc. Secure control flow prediction
SG10201808256PA (en) * 2018-09-21 2020-04-29 Singapore Management Univ Method and system for dynamically detecting, analyzing, monitoring, investigating and/or executing a live target program
US11307904B2 (en) 2018-12-18 2022-04-19 Ati Technologies Ulc Configurable peripherals
US11048515B2 (en) 2018-12-28 2021-06-29 SiFive, Inc. Way predictor and enable logic for instruction tightly-coupled memory and instruction cache
US11216280B2 (en) * 2019-11-26 2022-01-04 Arm Limited Exception interception
GB2589895B (en) * 2019-12-11 2022-03-16 Advanced Risc Mach Ltd Intermodal calling branch instruction
US11604505B2 (en) * 2020-12-29 2023-03-14 Qualcomm Incorporated Processor security mode based memory operation management
US11921655B2 (en) 2021-05-04 2024-03-05 Stmicroelectronics, Inc. Dynamic memory protection device system and method
US11914686B2 (en) * 2021-10-15 2024-02-27 Pure Storage, Inc. Storage node security statement management in a distributed storage cluster
FR3129499A1 (fr) * 2021-11-25 2023-05-26 STMicroelectronics (Grand Ouest) SAS Gestion dynamique d’un pare-feu de mémoire
CN115617560A (zh) * 2022-11-02 2023-01-17 地平线征程(杭州)人工智能科技有限公司 一种芯片监控方法及装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) * 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system
WO1990005951A1 (en) 1988-11-14 1990-05-31 Heinrich Hummel Method of handling unintended software interrupt exceptions
JP3230262B2 (ja) 1992-01-24 2001-11-19 ソニー株式会社 電子装置及びその固定情報修正方法
JPH08249280A (ja) * 1994-10-28 1996-09-27 Internatl Business Mach Corp <Ibm> データ処理装置の電子キー
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5724027A (en) * 1995-09-28 1998-03-03 Intel Corporation Method and apparatus for providing system security to personal computer systems using transparent system interrupt
US5734910A (en) * 1995-12-22 1998-03-31 International Business Machines Corporation Integrating multi-modal synchronous interrupt handlers for computer system
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
IL126149A (en) * 1997-09-09 2003-07-31 Sanctum Ltd Method and system for protecting operations of trusted internal networks
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
JP2000076087A (ja) 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
SE515327C2 (sv) * 1999-08-27 2001-07-16 Ericsson Telefon Ab L M Anordning för att utföra säkra transaktioner i en kommunikationsanordning
JP2003518287A (ja) * 1999-12-23 2003-06-03 ジェネラル・インスツルメント・コーポレイション デュアルモードプロセッサ
WO2002071211A2 (en) 2000-11-20 2002-09-12 Zucotto Wireless, Inc. Data processor having multiple operating modes
JP2002182560A (ja) 2000-12-12 2002-06-26 Hitachi Ltd 暗号処理機能を備えた情報サーバ装置
JP2002202959A (ja) 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US6925570B2 (en) * 2001-05-15 2005-08-02 International Business Machines Corporation Method and system for setting a secure computer environment
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7165135B1 (en) * 2002-04-18 2007-01-16 Advanced Micro Devices, Inc. Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
GB2396713B (en) * 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
AU2003278342A1 (en) * 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
DE60304602T2 (de) * 2002-11-18 2006-12-28 Arm Ltd., Cherry Hinton Ausnahmearten innerhalb eines sicheren verarbeitungssystems
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
EP1496435A1 (en) * 2003-07-11 2005-01-12 Yogitech Spa Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
US7178015B2 (en) * 2004-01-12 2007-02-13 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US7296146B2 (en) * 2004-01-12 2007-11-13 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US20070266444A1 (en) * 2004-12-03 2007-11-15 Moshe Segal Method and System for Securing Data Stored in a Storage Device
EP1865435A1 (en) * 2006-06-06 2007-12-12 Texas Instruments France Enhanced exception handling
US7529916B2 (en) * 2006-08-16 2009-05-05 Arm Limited Data processing apparatus and method for controlling access to registers
US7689733B2 (en) * 2007-03-09 2010-03-30 Microsoft Corporation Method and apparatus for policy-based direct memory access control

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI562653B (zh) * 2013-06-06 2016-12-11
TWI549018B (zh) * 2014-03-20 2016-09-11 美國亞德諾半導體公司 安全感知主控裝置之系統及方法

Also Published As

Publication number Publication date
US7849310B2 (en) 2010-12-07
KR100955284B1 (ko) 2010-04-30
GB2402785A (en) 2004-12-15
DE60308215T2 (de) 2007-08-23
JP2006506751A (ja) 2006-02-23
IL164512A (en) 2010-02-17
US20040153672A1 (en) 2004-08-05
RU2005115083A (ru) 2006-01-20
GB2402785B (en) 2005-12-07
JP4423206B2 (ja) 2010-03-03
EP1563375B1 (en) 2006-09-06
KR20050086673A (ko) 2005-08-30
WO2004046924A1 (en) 2004-06-03
DE60308215D1 (de) 2006-10-19
GB0421627D0 (en) 2004-10-27
AU2003274383A1 (en) 2004-06-15
EP1563375A1 (en) 2005-08-17
IL164512A0 (en) 2005-12-18
TWI275997B (en) 2007-03-11

Similar Documents

Publication Publication Date Title
TW200411555A (en) Switching between secure and non-secure processing modes
KR100941104B1 (ko) 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
KR101015456B1 (ko) 디바이스에 의한 메모리로의 억세스 제어
KR101099463B1 (ko) 보안 도메인과 비보안 도메인을 갖는 시스템 내에서 가상메모리 어드레스의 물리적 메모리 어드레스로의 매핑
US7171539B2 (en) Apparatus and method for controlling access to a memory
US7149862B2 (en) Access control in a data processing apparatus
JP4302493B2 (ja) データ処理装置内のメモリへアクセスするための技術
US7325083B2 (en) Delivering data processing requests to a suspended operating system
GB2396930A (en) Managing access to secure and non-secure memory with descriptor tables
GB2396713A (en) Controlling access to a memory unit
JP2004171564A (ja) マルチドメインプロセッサのためのモニタ制御
WO2004046925A1 (en) Security mode switching via an exception vector
GB2395583A (en) Diagnostic data capture control for multi-domain processors
IL167597A (en) Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
JP2004171568A (ja) 多数のオペレーティングシステムを使用するデータ処理システムにおける多数の割り込みの取り扱い
IL168336A (en) Control of access to a memory by a device
JP2004171567A (ja) 多数のオペレーティングシステムの間のタスクの追従
TWI292099B (en) Apparatus, method and computer program product for processing data within a secure processing system
TW200417215A (en) Security mode switching via an exception vector

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent