TW202203012A - 系統晶片以及操作系統晶片的方法 - Google Patents

系統晶片以及操作系統晶片的方法 Download PDF

Info

Publication number
TW202203012A
TW202203012A TW110107684A TW110107684A TW202203012A TW 202203012 A TW202203012 A TW 202203012A TW 110107684 A TW110107684 A TW 110107684A TW 110107684 A TW110107684 A TW 110107684A TW 202203012 A TW202203012 A TW 202203012A
Authority
TW
Taiwan
Prior art keywords
firmware
memory
target firmware
hypervisor
target
Prior art date
Application number
TW110107684A
Other languages
English (en)
Other versions
TWI844763B (zh
Inventor
金是興
朴根榮
朴東珍
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202203012A publication Critical patent/TW202203012A/zh
Application granted granted Critical
Publication of TWI844763B publication Critical patent/TWI844763B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • 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
    • G06F21/54Monitoring 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 by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本發明提供一種系統晶片,包含:記憶體;主處理器,運行作業系統;以及第一智慧財產權(IP),執行相應處理操作。主處理器操作以:使用韌體載入器將目標韌體複製至記憶體;在目標韌體的驗證之前,使用超管理器來阻止主處理器及第一IP對目標韌體的存取;以及在目標韌體的驗證之後,使用超管理器來授予與目標韌體相對應的第一IP之中的目標IP對目標韌體的存取。

Description

系統晶片以及操作系統晶片的方法
本揭露是關於一種系統晶片,且更特定言之,是關於一種用於安全地載入韌體的系統晶片及其操作方法。 [相關申請案的交叉參考]
本申請案主張2020年3月6日在韓國智慧財產局申請的韓國專利申請案第10-2020-0028586號的優先權,所述申請案的揭露內容以全文引用的方式併入本文中。
隨著行動技術發展且需要各種功能,待由系統晶片處理的功能增加,且因此,為了改良行動裝置的效能且執行最佳化功能,除主處理器之外,諸如數位訊號處理器(digital signal processor;DSP)的具有各種功能的智慧財產權(Intellectual Property;IP)正在開發中。舉例而言,最近的系統晶片(system on chip;SoC)已裝配有針對人工智慧相關的平行計算最佳化的神經處理單元(Neural Processing Unit;NPU)及張量處理單元(Tensor Processing Unit;TPU),且可替換主處理器,且甚至需要複雜計算的攝影機功能將計算分配至DSP以加速處理。
此外,DSP可執行類似於包含多個核心的主處理器的操作。亦即,DSP可讀取記憶體中的軟體程式碼以執行預定操作,且在執行操作時,可不定期存取記憶體以讀取演算法或軟體資料或寫入計算結果。
另外,DSP愈來愈多地用於安全區域(例如,可信執行環境(Trusted Execution Environment;TEE)區域)中以用於安全資料處理。舉例而言,需要面部辨識或其他安全處理的人工智慧處理操作可在DSP而非主處理器中執行。為了在安全區域中控制DSP,控制DSP的韌體、演算法以及資料必須全部在受保護的記憶體上操作,且亦應首先執行韌體及其類似者的驗證。然而,在韌體及其類似者的驗證操作期間,資料經複製至與安全區域相對應的記憶體區域,且當DSP使用複製資料執行驗證時,存在資料移動出現多次且因此計算時間增加的問題。
一態樣提供一種有效地移動及保護資料的系統晶片,以及一種在安全區域中的預定IP而非主處理器執行預定資料處理操作時或在主處理器直接執行預定資料處理操作時作業系統晶片的方法。
根據一或多個例示性實施例的一態樣,提供一種具有主處理器及多個第一智慧財產權(IP)的系統晶片的操作方法,所述操作方法包括:藉由主處理器使用韌體載入器將第一目標韌體複製至記憶體;藉由主處理器使用超管理器來阻止由主處理器及多個第一IP對第一目標韌體的存取;藉由主處理器使用韌體驗證器來驗證第一目標韌體;以及基於驗證結果,藉由主處理器使用超管理器來授予多個第一IP之中的目標IP對第一目標韌體的存取。
根據一或多個例示性實施例的另一態樣,提供一種系統晶片(SoC),所述系統晶片包括:記憶體;主處理器,經配置以運行作業系統;以及多個第一智慧財產權(IP),經配置以執行相應處理操作,其中主處理器經配置以:使用韌體載入器將目標韌體複製至記憶體;在目標韌體的驗證之前,使用超管理器來阻止主處理器及多個第一IP對目標韌體的存取;以及在目標韌體的驗證之後,使用超管理器來授予與目標韌體相對應的多個第一IP之中的目標IP對目標韌體的存取。
根據一或多個例示性實施例的另一態樣,提供一種具有主處理器、多個智慧財產權(IP)以及安全系統的系統晶片的操作方法,所述方法包括:藉由由主處理器執行的核心向由主處理器執行的超管理器請求用於載入目標韌體的管理;藉由超管理器改變主處理器及多個IP中的至少一者對記憶體區域的存取許可,目標韌體將載入至記憶體區域;藉由核心將目標韌體載入至記憶體區域中;藉由核心向超管理器請求所載入的目標韌體的驗證;藉由超管理器改變主處理器及多個IP中的至少一者對記憶體區域的存取許可;藉由超管理器向安全系統請求所載入的目標韌體的驗證;藉由安全系統對所載入的目標韌體執行驗證;藉由安全系統向超管理器提供驗證的驗證結果;藉由超管理器基於驗證結果改變主處理器及多個IP中的至少一者對記憶體區域的存取許可;以及藉由核心執行所載入的目標韌體。
在下文中,將參看隨附圖式詳細地描述各種例示性實施例。
圖1是示意性地示出根據例示性實施例的行動裝置的方塊圖。應完全理解,在圖1中示出且在下文中描述的行動裝置100的配置及操作可應用於其他電子裝置。
參看圖1,行動裝置100可包含系統晶片(SoC)、記憶體(例如,工作記憶體)130以及儲存裝置170。儘管圖1中未示出,但行動裝置100可更包含液晶顯示器、觸控面板以及聲音裝置。SoC可包含主處理器(例如,處理器多核處理器)110、記憶體控制器120、神經處理單元(NPU)140、數位訊號處理器(DSP)150、記憶體介面160、安全系統180以及加速器190。在一些實施例中,主處理器可為多核處理器。在下文中,主處理器110、NPU 140以及DSP 150可各自稱為智慧財產權(IP),且儘管圖1的SoC中未繪示,但可更包含執行資料處理以為使用者提供各種服務的IP(例如,影像訊號處理器(image signal processor;ISP)、張量處理單元(TPU)以及其類似者)。如在本說明書中所用,術語「智慧財產權」是指為一方的智慧財產權的邏輯、單元或積體電路(亦即,晶片)佈局設計的可再用單元的智慧財產權核心、IP核心或IP區塊。各種IP核心或IP區塊用於建構整合式半導體裝置。
主處理器110可控制行動裝置100的總體操作。此時,主處理器110可執行作為正常世界及安全世界中的一者的操作。
安全世界可意謂安全資料處理架構,且正常世界可意謂不安全的通用資料處理架構。作為例示性實施例,主處理器110可基於「ARM信任區架構(ARM Trustzone Architecture)」而操作。此架構可包含兩個運行時間環境,且其中一者不安全運行時間環境(例如,富執行環境(Rich Execution Environment;REE))可稱為正常區或正常世界,且可由正常作業系統控制。另一運行時間環境,即安全運行時間環境(例如,可信執行環境(TEE)),可稱為信任區(Trustzone)或可信世界(TrustedWorld)或安全世界(Secure World),且安全運行時間環境可由安全作業系統控制。
正常作業系統可例如為諸如安卓(Android)、Windows電話、蘋果作業系統(iPhone OS;iOS)以及其類似者的典型的作業系統,且安全作業系統可為其中整合了安全功能的安全核心嵌入於現有作業系統中的作業系統。根據上文提及的ARM信任區,上文描述的不安全運行時間環境及安全運行時間環境可一起定義為虛擬執行環境。
主處理器110可執行待在行動裝置100上運行的軟體(例如,應用程式、作業系統、裝置驅動器以及其類似者)。主處理器110可執行載入於記憶體130中的作業系統。主處理器110可基於作業系統執行待運行的各種應用程式。
在下文中,將描述DSP 150而非主處理器110應基於TEE中的韌體操作的情況。作為例示性實施例,韌體將在安全世界中執行,且可包含例如用於執行面部辨識、指紋辨識、虹膜辨識的程式,需要安全的AI處理操作,行動交易操作以及其類似者。此外,所屬領域中具通常知識者應清楚,本揭露的技術原理可適用於其中需要基於韌體而非主處理器110來執行除DSP 150以外的諸如NPU 140及/或加速器190的其他IP的情況。
作為例示性實施例,主處理器110可進行以下操作:執行儲存於儲存裝置170中的安全記憶體管理軟體(安全MM S/W)172,將儲存於儲存裝置170中的韌體(FW)影像174複製至記憶體130以允許DSP 150穩定地執行TEE中的記憶體130中載入的韌體(亦即,韌體(FW)影像174的複本),以及使用安全系統180對韌體(亦即,載入於記憶體130中的韌體(FW)影像174的複本)執行驗證。儲存於儲存裝置170中的韌體(FW)影像174可為諸如主處理器110、NPU 140、DSP 150、安全系統180及/或加速器190的各種IP的韌體。
具體而言,主處理器110可經由作業系統的核心中的韌體載入器將韌體影像174自儲存裝置170複製至記憶體130。在下文中,已載入記憶體130中的韌體(FW)影像174的複本將稱為目標韌體(FW)134。
主處理器110可使用超管理器來控制對目標韌體134的存取。
超管理器為用於同時運行多個作業系統的邏輯平台,且可稱為虛擬機監視器或虛擬機管理器。取決於所述類型,超管理器可直接在主處理器110上執行或可經由主處理器110的主機作業系統執行。即使在目標韌體134的驗證之前發生駭客攻擊,超管理器仍可阻止對IP的目標韌體134的不安全存取,以防止對目標韌體134的修改或損害。在例示性實施例中,超管理器可調整記憶體130中儲存有目標韌體134的區域的讀取或寫入許可,以阻止對IP的韌體的不安全存取。主處理器110的核心及超管理器可在REE中操作。
主處理器110可使用韌體驗證器來驗證目標韌體134。韌體驗證器可在TEE中操作且驗證目標韌體134的完整性。在例示性實施例中,韌體驗證器可控制安全系統180以驗證目標韌體134的完整性。安全系統180可包含能夠處置完整性驗證操作的安全IP,且安全IP可藉由應用各種類型的加密演算法來產生目標韌體134的數位簽名,且使用公開金鑰來解密數位簽名。安全IP可藉由使用數位簽名及公開金鑰檢查目標韌體134是否已改變來驗證目標韌體134的完整性。
當目標韌體134的完整性驗證完成且目標韌體134的完整性通過驗證時,主處理器110可允許DSP 150存取目標韌體134,使得DSP 150可執行TEE中的目標韌體134。在例示性實施例中,超管理器可調整記憶體130的目標韌體134儲存於其中的區域的讀取或寫入許可,以允許DSP 150存取目標韌體134。因此,DSP 150可替代主處理器110執行目標韌體134以基於目標韌體134執行操作。在一些實施例中,目標韌體134可為主處理器110的韌體,且超管理器可控制主處理器110對目標韌體134的存取,且主處理器110可執行目標韌體134以基於目標韌體134執行操作。
記憶體控制器120可提供記憶體130與SoC之間的介面。記憶體控制器120可回應於主處理器110或另一IP(例如,NPU 140、DSP 150、安全系統180及/或加速器190)的請求而存取記憶體130。舉例而言,回應於主處理器110的寫入請求,記憶體控制器120可將資料寫入至記憶體130,且回應於主處理器110的讀取請求,記憶體控制器120可經由系統連接器192而自記憶體130讀取資料且將讀取資料傳送至主處理器110或記憶體介面160。
當啟動行動裝置100時,可將作業系統或應用程式載入至記憶體130中。行動裝置100的各種輸入/輸出操作可由作業系統支援。此外,多個片段的韌體(或應用程式)可載入至待由使用者選擇或提供基本服務的記憶體130中。除了這些用途以外,記憶體130亦可用作用於儲存自影像感測器(諸如攝影機)提供的影像資料的緩衝記憶體。記憶體130可為諸如靜態隨機存取記憶體(static random access memory;SRAM)、動態隨機存取記憶體(dynamic random access memory;DRAM)以及其類似者的揮發性記憶體,或可為諸如相位RAM(phase RAM;PRAM)、磁性RAM(magnetic RAM;MRAM)、電阻式RAM(resistive RAM;ReRAM)、鐵電體RAM(ferroelectrics RAM;FRAM)、快閃記憶體以及其類似者的非揮發性記憶體。
記憶體介面160可在主處理器110或另一IP(例如,NPU 140、DSP 150、安全系統180以及加速器190)的請求下存取儲存裝置170。亦即,記憶體介面160可提供SoC與儲存裝置170之間的介面。舉例而言,由主處理器110處理的資料可經由記憶體介面160儲存於儲存裝置170中,且儲存於儲存裝置170中的資料可經由記憶體介面160提供至主處理器110。
儲存裝置170可提供為行動裝置100的儲存媒體。儲存裝置170可儲存安全記憶體管理軟體(安全MM S/W)172及韌體(FW)影像174,且此外,儲存裝置170可進一步儲存多個應用程式、作業系統影像以及各種資料。儲存裝置170可提供為記憶卡(例如,多媒體卡(Multi-Media Card;MMC)、嵌入式MMC(Embedded MMC;eMMC)記憶卡、安全數位(Secure Digital;SD)記憶卡、微型SD記憶卡以及其類似者)。儲存裝置170可包含具有較大儲存容量的快閃記憶體。或者,儲存裝置170可包含諸如PRAM、MRAM、ReRAM以及FRAM的下一代非揮發性記憶體。在一些實施例中,儲存裝置170可為SoC中所提供的內部記憶體。
NPU 140、DSP 150以及加速器190可支援主處理器110,或在一些情況下可替換主處理器110的功能,以使得NPU 140、DSP 150以及加速器190可提供為單獨IP以用於對安全性資料或多媒體資料執行處理操作。舉例而言,加速器190可提供為用於改良文本、音訊、靜止影像、動畫、視訊、二維資料或三維資料的處理效能的IP。
當除為SoC的主處理器的主處理器110或DSP 150以外的IP在TEE中執行韌體時,根據例示性實施例的行動裝置100可省略TEE區域與記憶體130中的REE區域之間的不必要資料交換,以有效且安全地將韌體(FW)影像174載入至記憶體130中且驗證韌體(FW)影像174。
圖2是示出根據例示性實施例的用於在正常世界及安全世界中操作的方法的軟體架構的方塊圖。根據一些例示性實施例,軟體架構可為信任區架構。
參看圖2,信任區架構可提供兩個運行時間環境,諸如正常世界210及安全世界220。正常世界210可包含正常世界使用者模式212及正常世界核心模式214,且安全世界220可包含安全世界使用者模式222、安全世界核心模式224以及監視器模式230。正常世界210及安全世界220中的每一者可藉由虛擬地分離諸如快取記憶體、轉譯後備緩衝器(translation lookaside buffer;TLB)、記憶體管理單元(memory management unit;MMU)以及暫存器的硬體資源來管理。
如上文所描述,由於可選擇性地操作正常世界210及安全世界220,因此信任區架構可提供監視器模式230以管理自正常世界210至安全世界220的改變,且反之亦然。根據一些例示性實施例,監視器模式230中的軟體可在安全世界220中操作。
此外,由於正常世界210及安全世界220由監視器模式230控制,因此由主處理器110(參見圖1)產生的各種指令或中斷可經由監視器模式230提供至正常世界210及安全世界220中的每一者。舉例而言,可使用安全監視調用命令(secure monitor call command;SMC)來連接正常世界核心模式214或安全世界核心模式224。亦即,主處理器110(參見圖1)可使用SMC將當前執行的模式(例如,正常世界核心模式214或安全世界核心模式224)改變為監視器模式230。然而,除使用SMC外,主處理器110(參見圖1)可使用中斷請求(Interrupt Request;IRQ)或快速中斷請求(Fast Interrupt Request;FIQ)將當前執行的模式改變為監視器模式230。根據一些例示性實施例,IRQ可用作正常世界210的中斷,且FIQ可用作安全世界220的中斷。
如上文所描述,在正常世界210中操作可與在REE中操作相對應,且在安全世界220中操作可與在TEE中操作相對應。
根據例示性實施例的主處理器110(參見圖1)可藉由自正常世界核心模式214切換至安全世界核心模式224來操作,且可藉由自安全世界核心模式224切換至正常世界核心模式214來操作,以使得目標韌體134(參見圖1)可載入至記憶體130中且經驗證以允許將來由主處理器110(參見圖1)執行,或使得目標韌體134(參見圖1)可載入至記憶體130中且經驗證以允許將來由另一IP(例如,NPU 140、DSP 150、安全系統180及/或加速器190(參見圖1))執行。
圖3是示出根據例示性實施例的行動裝置的操作的方塊圖。
參看圖3,行動裝置300可包含:硬體HW、主處理器352、第一MMU(第1 MMU)354、第二MMU(第2 MMU)356、第一DSP(第1 DSP)362、第一系統MMU(SysMMU)364、第一記憶體保護單元(Memory Protection Unit;MPU)(第1 MPU)366、第二DSP(第2 DSP)382、第二系統MMU(第2 SysMMU)384、第二MPU 386、IP 372、系統MMU(SysMMU)374、MPU 376以及記憶體390。此外,例示性實施例不限於圖3中所示出的實例,且硬體HW可更包含分別連接至更多及各種IP的記憶體管理單元。
主處理器352可直接連接至第一MMU 354,且可經由第一MMU 354連接至第二MMU 356,且主處理器352可藉由在各階段中使用第一MMU 354及第二MMU 356來存取記憶體390。亦即,第一MMU 354可屬於第一階段,且第二MMU 356可屬於第二階段。第一DSP 362可直接連接至第一系統MMU 364,且可經由第一系統MMU 364連接至第一MPU 366,且第一DSP 362可藉由在各階段中使用第一系統MMU 364及第一MPU 366來存取記憶體390。第二DSP 382可直接連接至第二系統MMU 384,且可經由第二系統MMU 384連接至第二MPU 386,且第二DSP 382可藉由在各階段中使用第二系統MMU 384及第二MPU 386來存取記憶體390。IP 372可經由系統MMU 374及MPU 376連接,且IP 372可藉由在各階段中使用系統MMU 374及第二MPU 386來存取記憶體390。
第一MMU 354管理邏輯至邏輯(Logical To Logical;L2L)對映表,在所述邏輯至邏輯對映表中,主處理器352將第一邏輯位址轉換為第二邏輯位址以用於存取記憶體390,且第二MMU 356可管理將第二邏輯位址轉換為實體位址的實體至實體(physical to physical;P2P)對映表。實體位址可與記憶體390的實際位址相對應。
MPU(亦即,第一MPU 366、MPU 376以及第二MPU 386)可保護記憶體390的一些區域免於IP(亦即,第一DSP 362、IP 372以及第二DSP 382)的不安全存取。具體而言,MMU(亦即,第一MPU 366、MPU 376以及第二MPU 386)可將記憶體390的區域劃分成多個視窗區域,且保護多個視窗區域免於對IP(亦即,第一DSP 362、IP 372以及第二DSP 382)的不安全存取。MPU(亦即,第一MPU 366、MPU 376以及第一MPU 386)可管理包含記憶體390的位址資訊及與每一位址資訊相對應的屬性資訊的頁表。
此外,可理解,核心310、韌體(FW)驗證器320以及超管理器330可為由主處理器352執行的程式,且核心310、韌體驗證器320以及超管理器330的以下操作可由主處理器352執行。
在例示性實施例中,核心310及韌體驗證器320可在第一層L1上操作,超管理器330可在第二層L2上操作,且可信韌體(FW)340可在第三層L3上操作。可信韌體340與已知安全性的韌體(亦即,已預先確認可信韌體340的安全性)相對應,使得可信韌體340可安全地用於在REE中的超管理器330與TEE中的韌體驗證器320之間的訊號的傳輸及接收。此外,在一些例示性實施例中,TEE中的韌體驗證器320可在第二層L2及第三層L3上操作,且可經實施以包含於可信韌體340中。
在例示性實施例中,核心310可控制包含於第一控制區域CSR1中的組件,且超管理器330可控制包含於第二控制區域CSR2中的組件。核心310不可存取包含於第二控制區域CSR2中的組件,且因此不可控制包含於第二控制區域CSR2中的組件。第一控制區域CSR1可包含主處理器352、第一MMU 354、第一DSP 362、第一系統MMU 364、第二DSP 382、第二系統MMU 384、IP 372以及系統MMU 374。第二控制區域CSR2可包含第二MMU 356、第一MPU 366、第二MPU 386以及MPU 376。
核心310的韌體(FW)載入器312可將目標韌體(FW)392複製(或載入)至記憶體390的某一區域。舉例而言,目標韌體392可為第一DSP 362的韌體。在載入之後,為了防止在對目標韌體392執行驗證之前對目標韌體392的駭侵,超管理器330可藉由控制第二控制區域CSR2來阻止主處理器352、第一DSP 362、IP 372以及第二DSP 382對記憶體390的存取。舉例而言,超管理器330可藉由改變第二MMU 356的L2P對映表中的目標韌體392的位址資訊來阻止主處理器352對目標韌體392的存取。在下文中,改變位址資訊可包含改變與位址相對應的預定記憶體區域的存取屬性或刪除位址資訊。另外,超管理器330可藉由改變與第一MPU 366的頁表中的目標韌體392相對應的位址的屬性資訊來阻止第一DSP 362對目標韌體392的存取。此方法亦可應用於IP 372及第二DSP 382。
超管理器330可請求韌體驗證器320經由可信韌體340來驗證目標韌體392,且韌體驗證器320可控制第二DSP 382以回應於請求執行目標韌體392的驗證。第二DSP 382可經預先設定以驗證目標韌體392,且可與圖1的安全系統180相對應。超管理器330可改變第二MPU 386的頁表,以使得第二DSP 382可存取目標韌體392。
第二DSP 382可執行目標韌體392的完整性驗證,且當完整性驗證完成時,韌體驗證器320可經由可信韌體340將完整性驗證結果提供至超管理器330。
當目標韌體392的完整性驗證結果通過時,超管理器330可改變第一MPU 366的頁表以使得第一DSP 362可存取TEE中的目標韌體392且執行目標韌體392。換言之,超管理器330可在驗證期間阻止第一控制區域CSR1的所有組件的存取,且接著在驗證之後可選擇性地允許對與已驗證的韌體相對應的第一控制區域CSR1的組件的存取。
因此,在根據例示性實施例的行動裝置300中,為了為第一DSP 362提供環境以執行TEE中的目標韌體392而非主處理器352,超管理器330僅有效地控制第二控制區域CSR2的配置以有效地阻止不安全存取且最小化記憶體390中的資料移動。
然而,圖3中所繪示的配置僅為實例,且例示性實施例不限於此。此外,上文的描述已提供準備用於執行TEE中的目標韌體392的環境的第二DSP 382。然而,本揭露的技術原理可適用於除主處理器352外的至少一個IP準備用於執行TEE中的目標韌體392的環境的所有情況。
圖4A及圖4B是用於解釋用於控制主處理器352對圖3的目標韌體392的存取的超管理器330的操作的圖。
參看圖3及圖4A,第一MMU 354可管理L2L對映表L2L_TB。L2L對映表L2L_TB可包含關於第一邏輯位址L_ADDa及映射至所述第一邏輯位址的第二邏輯位址L_ADDb的資訊。舉例而言,若主處理器352在對預定操作的請求下向第一MMU 354提供位址『L_ADD1a』,則第一MMU 354可基於L2L對映表L2L_TB將『L_ADD1a』轉換為『L_ADD1b』,且將轉換結果位址提供至第二MMU 356。
第二MMU 356可管理L2P對映表L2P_TB。L2P對映表L2P_TB可包含關於第二邏輯位址L_ADDb及映射至所述第二邏輯位址的實體位址P_ADD的資訊。實體位址P_ADD可與記憶體390的實際位址相對應。舉例而言,第二MMU 356可基於L2P對映表L2P_TB將接收的『L_ADD1b』轉換為『P_ADD1』,且使用『P_ADD1』來存取記憶體390的對應位址。
在下文中,假設其中目標韌體392儲存於其中的記憶體390的實體位址為『P_ADD1』及『P_ADD2』。為了防止主處理器352對目標韌體392的不安全存取,超管理器330可執行在L2P對映表L2P_TB中改變與目標韌體392相對應的實體位址P_ADD或映射至實體位址P_ADD的第二邏輯位址L_ADDb的操作。
進一步參看圖4B,超管理器330可自L2P對映表L2P_TB刪除為指向目標韌體392的實體位址P_ADD的『P_ADD1』及『P_ADD2』。在一些實施例中,超管理器330可自L2P對映表L2P_TB刪除為指向目標韌體392的實體位址P_ADD的映射至『P_ADD1』及『P_ADD2』的『L_ADD1b』及『L_ADD2b』。此外,另外,超管理器330可自L2P對映表L2P_TB刪除為指向目標韌體392的實體位址P_ADD的『P_ADD1』及『P_ADD2』,以及分別映射至『P_ADD1』及『P_ADD2』的『L_ADD1b』及『L_ADD2b』。
此外,超管理器330可將自L2P對映表L2P_TB刪除的位址資訊(例如,P_ADD1及/或L_ADD1b)備份至記憶體390的任意區域以阻止主處理器352的不安全存取,且在將來,備份位址資訊可自記憶體390的任意區域恢復至L2P對映表L2P_TB以允許主處理器352存取位址資訊。
在一些實施例中,第二MMU 356可進一步管理指示與L2P對映表L2P_TB的實體位址P_ADD相對應的記憶體390的區域的讀取許可或寫入許可的資訊,且超管理器330可藉由改變指示讀取許可或寫入許可的資訊來控制主處理器352對記憶體390的存取。
圖5A及圖5B是用於解釋用於控制第一DSP 362對圖3的主處理器352的目標韌體392的存取的超管理器330的操作的圖。在下文中,顯而易見的是,所描述技術原理亦適用於控制IP 372及第二DSP 382對主處理器352的目標韌體392的存取。
參看圖3及圖5A,第一系統MMU 364可管理L2P對映表L2P_TB。L2P對映表L2P_TB可包含關於邏輯位址L_ADD及映射至所述邏輯位址的實體位址P_ADD的資訊。舉例而言,當第一DSP 362在對預定操作的請求下向第一系統MMU 364提供位址『L_ADD1』時,第一系統MMU 364可基於L2P對映表L2P_TB將『L_ADD1』轉換為『P_ADD1』,且將轉換結果位址提供至第一MPU 366。
第一MPU 366可管理頁表P_TB。頁表P_TB可包含記憶體390的實體位址P_ADD及關於位址的特性資訊PI。在例示性實施例中,特性資訊PI可包含讀取許可旗標RPF及寫入許可旗標WF。舉例而言,讀取許可旗標RPF可為指示儲存於對應實體位址P_ADD中的資料是否可經讀取的資訊,且寫入許可旗標WPF可為指示資料是否可寫入對應實體位址P_ADD中的資訊。
為了防止第一DSP 362對目標韌體392的不安全存取,超管理器330可改變與目標韌體392儲存於其中的記憶體390的實體位址P_ADD相對應的特性資訊PI。舉例而言,如上文在圖4A中所描述,目標韌體392儲存於其中的記憶體390的實體位址可為『P_ADD1』及『P_ADD2』,且因此超管理器330可改變與『P_ADD1』及『P_ADD2』相對應的『F1a』、『F1b』、『F2a』以及『F2b』中的至少一者以控制第一DSP 362對目標韌體392的存取。
參看圖5B,相較於圖5A,頁表P_TB可更包含與記憶體390的實體位址P_ADD相對應的安全旗標SF。安全旗標SF可為指示是否可能對對應實體位址P_ADD進行不安全存取或安全存取的資訊。超管理器330可藉由改變安全旗標SF來控制第一DSP 362的不安全存取及安全存取。舉例而言,超管理器330可改變與『P_ADD1』相對應的『F1a』、『F1b』、『F1c』中的至少一者及與『P_ADD2』相對應的『F2a』、『F2b』以及『F2c』中的至少一者,以控制第一DSP 362對目標韌體392的存取。
圖6是用於解釋直至圖3的目標韌體392載入至記憶體390中且經驗證為止的超管理器330的操作的圖。
參看圖3及圖6,在圖6的(a)中,記憶體390的目標韌體392儲存於其中的記憶體區域MA_FW可設定為具有「唯讀」許可,以使得目標韌體392可僅由主處理器352、第一DSP 362、IP 372以及第二DSP 382讀取。在圖6的(b)中,超管理器330可給予主處理器352許可寫入記憶體區域MA_FW,以允許韌體載入器312將目標韌體392載入至記憶體區域MA_FW中。接著,在圖6的(C)中,在執行目標韌體392的驗證操作之前,超管理器330可改變主處理器352以具有用於記憶體區域MA_FW的「唯讀」許可。儘管圖式中未繪示,但超管理器330可進一步給出用於記憶體區域MA_FW的第二DSP 382寫入許可,以使得第二DSP 382可對目標韌體392執行驗證操作。當目標韌體392的驗證完成時,在圖6的(d)中,超管理器330可進一步給予第一DSP 362用於儲存目標韌體392的程式碼的區域的「程式碼可執行(Code Executable)」許可及用於儲存目標韌體392的資料的區域的「資料可寫(Data Writable)」許可。經由此程序,第一DSP 362可執行目標韌體392且將目標韌體392的資料寫入至記憶體390。
然而,關於圖6中所示出的內容所提供的描述僅為例示性實施例,且例示性實施例不限於此。為了防止目標韌體392的駭侵,超管理器330動態地控制第二控制區域CSR2,以使得各種實施例可適用於阻止或授予主處理器352、第一DSP 362、IP 372以及第二DSP 382對目標韌體392的存取。
圖7是繪示根據例示性實施例的操作SoC的方法的流程圖。
參看圖7,在操作S100中,SoC可將目標韌體複製至記憶體。舉例而言,SoC可經由核心的韌體上載器(uploader)將目標韌體複製(或載入)至記憶體。目標韌體用於處置與安全性相關的操作,所述操作必須受保護免於駭侵且可在主處理器或除主處理器以外的DSP(或IP)上執行。在操作S110中,SoC可請求驗證目標韌體。舉例而言,SoC可請求韌體驗證器經由超管理器來驗證目標韌體。在操作S120中,SoC可控制對目標韌體的存取許可。舉例而言,為了防止目標韌體的駭侵,在開始目標韌體的驗證之前,SoC可經由超管理器將除安全DSP(或安全IP)以外的組件(例如,主處理器、另一DSP以及其類似者)的存取許可限制至為驗證主體的目標韌體。在操作S130中,SoC可使用安全DSP來驗證目標韌體。舉例而言,SoC可經由韌體驗證器使用安全DSP來驗證目標韌體。在一些實施例中,SoC可使用TEE中的主處理器而非安全DSP來驗證目標韌體,且在一些實施例中,當主處理器運行TEE相關程式碼時,SoC可使用超管理器來驗證目標韌體。在操作S140中,SoC可基於驗證結果控制對目標韌體的存取許可。舉例而言,基於驗證結果,SoC可經由超管理器授予執行目標韌體的主體對目標韌體的存取許可。舉例而言,當執行目標韌體的主體是DSP時,SoC可授予對DSP的存取以允許DSP經由超管理器執行目標韌體。在操作S150中,SoC可執行目標韌體。舉例而言,SoC可經由DSP執行目標韌體。
圖8是繪示根據例示性實施例的操作SoC的方法的流程圖。
參看圖8,當需要執行新目標韌體時,在操作S200中,SoC可將新目標韌體複製(或載入)至記憶體。舉例而言,當需要執行新目標韌體時,SoC可經由核心的韌體上載器將新目標韌體複製(或載入)至記憶體中。新目標韌體可經複製至與圖7中所描述的目標韌體不同的記憶體區域。新目標韌體用於處置與安全性相關的操作,所述操作必須受保護免於駭侵且可在主處理器或除主處理器以外的DSP(或IP)上執行。在操作S210中,SoC可請求驗證新目標韌體。舉例而言,SoC可請求韌體驗證器經由超管理器來驗證新目標韌體。在操作S220中,SoC可控制對新目標韌體的存取許可。舉例而言,為了防止新目標韌體的駭侵,在開始新目標韌體的驗證之前,SoC可經由超管理器將除安全DSP(或安全IP)以外的組件(例如,主處理器、另一DSP以及其類似者)的存取許可限制至為驗證主體的目標韌體。在操作S230中,SoC可使用安全DSP來驗證新目標韌體。舉例而言,SoC可經由韌體驗證器使用安全DSP來驗證新目標韌體。在操作S240中,SoC可基於驗證結果控制對新目標韌體的存取許可。舉例而言,基於驗證結果,SoC可經由超管理器授予執行新目標韌體的主體對目標韌體的存取許可。在各種實施例中,執行圖7的目標韌體的主體及執行新目標韌體的主體可彼此相同或不同。在操作S250中,SoC可執行新目標韌體且管理先前目標韌體。舉例而言,SoC可經由DSP執行新目標韌體,且可經由超管理器管理主處理器對目標韌體的存取以允許韌體上載器在必要時存取先前目標韌體。
圖9是繪示根據例示性實施例的操作SoC的方法的流程圖。
參看圖9,在操作S300中,當目標韌體的操作完成且不再執行目標韌體時,SoC可請求釋放目標韌體。舉例而言,SoC的DSP可請求超管理器釋放目標韌體。在操作S310中,SoC可控制對目標韌體的存取許可。舉例而言,SoC可經由超管理器授予主處理器對目標韌體的存取許可。在操作S320中,SoC可控制DSP的存取許可。舉例而言,SoC可經由超管理器改變與DSP相對應的MPU的頁表,以阻止DSP對目標韌體的存取許可。在操作S330中,SoC可釋放目標韌體。舉例而言,SoC可自DSP釋放目標韌體。
圖10是根據例示性實施例的操作SoC的方法的流程圖。在下文中,SoC包含主處理器、多個IP以及安全系統,且核心及超管理器可由主處理器驅動。
參看圖10,在操作S400中,核心可請求超管理器管理韌體載入。在操作S402中,超管理器可改變對記憶體的韌體記憶體區域的存取許可,以使得核心可將儲存於預定儲存裝置中的韌體載入至記憶體中。具體而言,超管理器可改變圖3的第二MMU 356的L2P對映表或預定資訊,以允許核心存取韌體記憶體區域且將韌體複製至韌體記憶體區域。在操作S404中,超管理器可告知核心對韌體記憶體區域的存取許可改變已完成。在操作S406中,核心可將韌體載入至記憶體中。在操作S408中,核心可請求超管理器驗證載入的韌體。在操作S410中,超管理器可在開始韌體驗證之前改變對韌體記憶體區域的存取許可。具體而言,超管理器可向執行韌體驗證的安全系統授予存取韌體記憶體區域的許可,且阻止主處理器及多個IP對韌體記憶體區域的存取。在操作S412中,超管理器可藉由安全系統來請求韌體驗證。在操作S414中,安全系統可回應於超管理器的請求而對載入的韌體執行驗證。舉例而言,安全系統可基於各種方法及演算法對載入的韌體執行簽名驗證操作。在操作S416中,安全系統可將韌體的驗證結果提供至超管理器。在操作S418中,超管理器可基於驗證結果改變對韌體記憶體區域的存取許可。具體而言,超管理器可向多個IP或向經選定以執行韌體的主處理器授予存取韌體記憶體區域的許可。舉例而言,當主處理器經選定以執行韌體時,可針對多個IP及安全系統阻止對韌體記憶體區域的存取許可。在操作S420中,超管理器可告知核心對韌體記憶體區域的存取許可改變已完成。在操作S422中,核心可存取韌體記憶體區域且執行韌體。
圖11是示出根據例示性實施例的儲存於圖1的記憶體130及/或儲存裝置170中的軟體架構結構的方塊圖。
參看圖11,記憶體130(參見圖1)或儲存裝置170(參見圖1)可包含作業系統(operating system;OS)1010、核心1020、中間軟體1030以及應用程式1040。
作業系統1010控制並管理硬體的總體操作。作業系統1010是負責諸如硬體管理、記憶體以及安全性的基本功能的層。
核心1020可充當用於將包含經由輸入裝置輸入的觸控訊號的各種訊號傳輸至中間軟體1030的路徑。
中間軟體1030可包含控制行動裝置或電子裝置的操作的各種軟體模組。中間軟體1030可包含安全模組1031、主要框架1033、子框架1034、視窗管理器1035、系統管理器1036、多媒體框架1037、APP管理器1038以及連接管理器1039。
安全模組1031是支援硬體認證、安全儲存以及其類似者的模組,且可包含根據本揭露的各種實例實施例的韌體載入模組1032。韌體載入模組1032可與圖1的安全記憶體管理軟體130相對應。根據本揭露的實例實施例的超管理器可基於韌體載入模組1032操作。亦即,在經由核心1020的韌體載入器將韌體載入至預定記憶體中、執行對韌體的驗證以及執行韌體的一系列操作中,超管理器可快速且容易地改變對為每一操作的主體的IP的韌體的存取許可。舉例而言,當控制對主處理器的韌體的存取時,有可能改變連接至主處理器的MMU的資訊,且當控制預定IP韌體的存取許可時,有可能改變連接至IP的MPU的資訊。
主要框架1033為用於提供待顯示於顯示器的主要區域上的各種使用者介面的模組。子框架1034為用於提供待顯示於顯示器的子區域中的各種使用者介面的模組。
視窗管理器1035可使用使用者身體或筆來偵測觸控事件或另一輸入事件。當偵測到此事件時,視窗管理器1035將事件訊號傳輸至主要框架1033或子框架1034以執行與事件相對應的操作。
系統管理器1036監視行動裝置或電子裝置中的每一組件的狀態,且將監視結果提供至其他模組。舉例而言,若電池電量低、出現錯誤、通信連接狀態丟失以及其類似者,則系統管理器1036可將監視結果提供至主要框架1033或子框架1034以輸出通知訊息或通知聲音。
多媒體框架1037是用於播放儲存於行動裝置或電子裝置中或自外部源所提供的多媒體內容的模組。APP管理器1038為管理安裝於記憶體中的各種應用程式1040的執行狀態的模組。連接管理器1039為用於支援有線或無線網路連接的模組。
然而,圖11中所示出的結構僅是實例,且例示性實施例不限於此。因此,顯而易見的是,可取決於行動裝置或電子裝置的類型或目的而省略、修改或添加一些組件。
圖12是示出根據例示性實施例的包含SoC 1150的電子裝置1100的方塊圖。在下文中,電子裝置1100可實施為諸如行動電話、智慧型電話以及平板PC的無線通信裝置。
參看圖12,電子裝置1100可包含無線電收發器1120、輸入裝置1130、顯示裝置1140、SoC 1150以及記憶體裝置1160。
無線電收發器1120可經由天線1122傳輸及接收無線訊號,且可將無線訊號改變為可由SoC 1150處理的訊號。
SoC 1150處理自無線收發器1120輸出的訊號,且可將處理的訊號傳輸至記憶體裝置1160或顯示裝置1140。另外,SoC 1150可包含根據各種例示性實施例的韌體載入模組1152,且可基於韌體載入模組1152進行操作,以使得可執行至記憶體裝置1160的有效且安全的韌體載入、韌體驗證以及韌體執行。
輸入裝置1130為可輸入用於控制SoC 1150的操作的控制訊號或待由SoC 1150處理的資料的裝置,且可藉由指向裝置(諸如觸控板及電腦滑鼠)、小鍵盤或鍵盤來實施。
SoC 1150可控制顯示裝置1140的操作以使得自記憶體裝置1160輸出的資料可顯示於顯示裝置1140上。
圖13是示出根據例示性實施例的包含SoC 1220的電子裝置1200的方塊圖。在下文中,電子裝置1200可實施為影像處理裝置,例如數位攝影機、具有數位攝影機的行動電話、具有數位攝影機的智慧型電話或具有數位攝影機的平板PC。
參看圖13,電子裝置1200可包含影像感測器1210、SoC 1220、記憶體裝置1230以及顯示裝置1240。
影像感測器1210可將光學影像轉換為數位影像,且轉換結果可經傳輸至SoC 1220或記憶體裝置1230。由在SoC 1220的控制下的轉換產生的數位影像可顯示於顯示裝置1240上或儲存於記憶體裝置1230中。儲存於記憶體裝置1230中的資料可在SoC 1220的控制下顯示於顯示裝置1240上。
SoC 1220可包含根據各種例示性實施例的韌體載入模組1152,且可基於韌體載入模組1222進行操作,以使得可執行至記憶體裝置1230的有效且安全的韌體載入、韌體驗證以及韌體執行。
圖14是示出根據例示性實施例的藉由將多個物聯網(IoT)裝置連接至伺服器而實施的智慧型家居2000的圖。
參看圖14,智慧型家居2000可包含多個IoT裝置2010、集線器2020、伺服器2030以及電子裝置2040。
多個IoT裝置2010可包含TV 2011、冷凍機2012、平板電腦2013、膝上型電腦2014及/或空氣調節機2015。然而,此為例示性實施例,且多個IoT裝置2010不限於圖14中所示出的裝置。
多個IoT裝置2010可經由集線器2020連接至伺服器2030。關於多個IoT裝置2010中的每一者的多個裝置識別資訊可藉由電子裝置2040傳輸至伺服器2030。多個IoT裝置2010中的每一者可同與登記在伺服器2030中的集線器識別資訊相對應的集線器2020配對且連接至所述集線器2020。多個IoT裝置2010可經由與集線器2020的連接與伺服器2030通信。
集線器2020可中繼多個IoT裝置2010與伺服器2030之間的連接。根據各種實施例,集線器2020可執行路由器、橋接器或存取點(access point;AP)的功能。伺服器2030可包含處理器及無線通信電路。處理器可控制伺服器2030的總體操作。伺服器2030可使用無線通信電路與集線器2020通信,或可經由集線器2020與多個IoT裝置2010通信。
電子裝置2040可包含處理器及無線通信電路。處理器可控制電子裝置2040的總體操作。電子裝置2040可使用無線通信電路與伺服器2030通信。根據各種實施例,電子裝置2040可更包含顯示器、攝影機或輸入/輸出模組。
當開始與多個IoT裝置2010的通信時,電子裝置2040可執行與安全性或認證相關的韌體,且此時,電子裝置2040可根據各種例示性實施例基於韌體載入模組來進行操作。舉例而言,電子裝置2040可為圖12的電子裝置1100,或圖13的電子裝置1200。
儘管上文已具體地繪示及描述各種例示性實施例,但應理解,可在不脫離隨附申請專利範圍的精神及範疇的情況下在其中進行形式及細節上的各種改變。
100:行動裝置 110、352:主處理器 120:記憶體控制器 130、390:記憶體 134、392:目標韌體 140:神經處理單元 150:數位訊號處理器 160:記憶體介面 170:儲存裝置 172:安全記憶體管理軟體 174:韌體影像 180:安全系統 190:加速器 192:系統連接器 210:正常世界 212:正常世界使用者模式 214:正常世界核心模式 220:安全世界 222:安全世界使用者模式 224:安全世界核心模式 230:監視器模式 300:行動裝置 310:核心 312:韌體載入器 320:韌體驗證器 330:超管理器 340:可信韌體 354:第一記憶體管理單元 356:第二記憶體管理單元 362:第一數位訊號處理器 364:第一系統記憶體管理單元 366:第一記憶體保護單元 372:智慧財產權 374:系統記憶體管理單元 376:記憶體保護單元 382:第二數位訊號處理器 384:第二系統記憶體管理單元 386:第二記憶體保護單元 1010:作業系統 1020:核心 1030:中間軟體 1031:安全模組 1032、1152、1222:韌體載入模組 1033:主要框架 1034:子框架 1035:視窗管理器 1036:系統管理器 1037:多媒體框架 1038: APP管理器 1039:連接管理器 1040:應用程式 1100、1200、2040:電子裝置 1120:無線電收發器 1122:天線 1130:輸入裝置 1140、1240:顯示裝置 1150、1220:系統晶片 1160、1230:記憶體裝置 1210:影像感測器 2000:智慧型家居 2010:物聯網裝置 2011:TV 2012:冷凍機 2013:平板電腦 2014:膝上型電腦 2015:空氣調節機 2020:集線器 2030:伺服器 CSR1:第一控制區域 CSR2:第二控制區域 FIQ:快速中斷請求 HW:硬體 IRQ:中斷請求 L_ADDa:第一邏輯位址 L_ADDb:第二邏輯位址 L1:第一層 L2:第二層 L2L_TB:邏輯至邏輯對映表 L2P_TB:邏輯至實體對映表 L3:第三層 MA_FW:記憶體區域 P_ADD:實體位址 P_TB:頁表 PI:特性資訊 RPF:讀取許可旗標 S100、S110、S120、S130、S140、S150、S200、S210、S220、S230、S240、S250、S300、S310、S320、S330、S400、S402、S404、S406、S408、S410、S412、S414、S416、S418、S420、S422:操作 SF:安全旗標 WPF:寫入許可旗標
自結合隨附圖式進行的以下詳細描述將更清楚地理解各種實施例,在隨附圖式中: 圖1是示意性地示出根據例示性實施例的行動裝置的方塊圖。 圖2是示出根據例示性實施例的用於在正常世界及安全世界中操作的方法的軟體架構的方塊圖。 圖3是示出根據例示性實施例的行動裝置的操作的方塊圖。 圖4A及圖4B是根據例示性實施例的用於解釋用於控制圖3的行動裝置的主處理器對目標韌體的存取的超管理器的操作的圖。 圖5A及圖5B是根據例示性實施例的用於解釋用於控制第一DSP對圖3的行動裝置的主處理器的目標韌體的存取的超管理器的操作的圖。 圖6是根據例示性實施例的用於解釋直至圖3的目標韌體載入至記憶體中且經驗證為止的超管理器的操作的圖。 圖7是繪示根據例示性實施例的作業系統晶片的方法的流程圖。 圖8至圖10是繪示根據例示性實施例的作業系統晶片的方法的流程圖。 圖11是示出根據例示性實施例的儲存於圖1的記憶體或儲存裝置中的軟體架構結構的方塊圖。 圖12是示出根據例示性實施例的包含系統晶片的電子裝置的方塊圖。 圖13是示出根據例示性實施例的包含系統晶片的電子裝置的方塊圖。 圖14是示出根據例示性實施例的藉由將多個物聯網(Internet of Thing;IoT)裝置連接至伺服器而實施的智慧型家居的圖。
S100、S110、S120、S130、S140、S150:操作

Claims (20)

  1. 一種操作具有主處理器及多個第一智慧財產權(IP)的系統晶片的方法,所述方法包括: 藉由所述主處理器使用韌體載入器將第一目標韌體複製至記憶體; 藉由所述主處理器使用超管理器來阻止所述主處理器及所述多個第一IP對所述第一目標韌體的存取; 藉由所述主處理器使用韌體驗證器來驗證所述第一目標韌體;以及 基於驗證結果,藉由所述主處理器使用所述超管理器來授予所述多個第一IP之中的目標IP對所述第一目標韌體的存取。
  2. 如請求項1所述的方法,其中所述韌體載入器及所述超管理器在富執行環境(REE)中操作,且所述韌體驗證器在可信執行環境(TEE)中操作。
  3. 如請求項1所述的方法,其中所述多個第一IP包括數位訊號處理器(DSP)、神經處理單元(NPU)、張量處理單元(TPU)或影像訊號處理器(ISP)中的至少一者。
  4. 如請求項1所述的方法,其中所述阻止存取包括藉由所述主處理器使用所述超管理器來改變關於連接至所述主處理器的記憶體管理單元(MMU)中及分別連接至所述多個第一IP的記憶體保護單元(MPU)中的所述記憶體的資訊。
  5. 如請求項4所述的方法,其中所述改變所述資訊包括藉由所述主處理器使用所述超管理器來改變所述MMU的邏輯至實體(L2P)對映表以阻止所述主處理器對所述第一目標韌體的存取。
  6. 如請求項4所述的方法,其中所述改變所述資訊包括藉由所述主處理器使用所述超管理器來改變所述MPU的頁表以阻止所述多個第一IP對所述第一目標韌體的存取。
  7. 如請求項6所述的方法,其中所述頁表包括所述記憶體的位址資訊及與所述位址資訊相對應的特性資訊,所述第一目標韌體複製至所述記憶體。
  8. 如請求項1所述的方法,其中所述系統晶片更包括針對安全性的第二IP, 其中所述驗證包括藉由所述主處理器使用所述韌體驗證器來控制所述第二IP以執行所述第一目標韌體的簽名驗證操作。
  9. 如請求項1所述的方法,其中所述授予包括當所述驗證結果為通過時,藉由所述主處理器使用所述超管理器來改變關於連接至所述目標IP的記憶體保護單元(MPU)中的所述記憶體的資訊。
  10. 如請求項1所述的方法,更包括: 當針對所述目標IP的所述第一目標韌體的執行完成時,藉由所述主處理器使用所述超管理器來授予所述主處理器對所述第一目標韌體的存取以允許所述韌體載入器對所述第一目標韌體的存取;以及 藉由所述主處理器使用所述超管理器來阻止所述目標IP對所述第一目標韌體的存取。
  11. 如請求項1所述的方法,更包括: 當所述多個第一IP中的一者請求執行第二目標韌體時,藉由所述主處理器使用所述韌體載入器將所述第二目標韌體複製至所述記憶體; 藉由所述主處理器使用所述超管理器來阻止所述主處理器及所述多個第一IP對所述第二目標韌體的存取; 藉由所述主處理器使用所述韌體驗證器來驗證所述第二目標韌體; 基於所述第二目標韌體的驗證結果,藉由所述主處理器使用所述超管理器來授予請求執行所述第二目標韌體的所述多個第一IP中的所述一者對所述第二目標韌體的存取;以及 藉由所述主處理器使用所述超管理器來授予所述主處理器對所述第一目標韌體的存取以允許所述韌體載入器對所述第一目標韌體的存取。
  12. 一種系統晶片(SoC),包括: 記憶體; 主處理器,經配置以運行作業系統;以及 多個第一智慧財產權(IP),經配置以執行相應處理操作, 其中所述主處理器經配置以: 使用韌體載入器將目標韌體複製至所述記憶體, 在所述目標韌體的驗證之前,使用超管理器來阻止所述主處理器及所述多個第一IP對所述目標韌體的存取,以及 在所述目標韌體的所述驗證之後,使用所述超管理器來授予與所述目標韌體相對應的所述多個第一IP之中的目標IP對所述目標韌體的存取。
  13. 如請求項12所述的SoC,其中所述主處理器連接至管理邏輯至邏輯(L2L)對映表的第一記憶體管理單元(MMU)及管理邏輯至實體(L2P)對映表的第二MMU以在各階段存取所述記憶體, 其中所述多個第一IP分別連接至管理所述L2P對映表的系統MMU且連接至管理頁表的記憶體保護單元(MPU)以在各階段存取所述記憶體。
  14. 如請求項13所述的SoC,其中所述主處理器藉由使用所述超管理器改變關於所述第二MMU中及所述MPU中的所述記憶體的資訊來授予對所述目標韌體的存取。
  15. 如請求項14所述的SoC,其中關於所述記憶體的資訊包括所述MMU的所述L2P對映表,所述MMU的所述L2P對映表包含所述記憶體的實體位址資訊及映射至所述實體位址資訊的邏輯位址資訊,所述目標韌體複製至所述記憶體,且所述MPU的所述頁表包含所述實體位址資訊及與所述實體位址資訊相對應的特性資訊。
  16. 如請求項13所述的SoC,其中所述主處理器經配置以使用核心來控制所述第一MMU及所述系統MMU。
  17. 如請求項12所述的SoC,其中所述多個第一IP包括數位訊號處理器(DSP)、神經處理單元(NPU)、張量處理單元(TPU)或影像訊號處理器(ISP)中的至少一者。
  18. 如請求項12所述的SoC,更包括用於對所述目標韌體執行驗證的第二IP, 其中所述主處理器使用韌體驗證器來控制所述第二IP以執行所述目標韌體的簽名驗證操作。
  19. 如請求項18所述的SoC,更包括儲存裝置,其中所述目標韌體、所述韌體載入器、所述超管理器以及所述韌體驗證器以可由所述主處理器執行的程式碼的形式儲存。
  20. 一種操作具有主處理器、多個智慧財產權(IP)以及安全系統的系統晶片的方法,所述方法包括: 藉由由所述主處理器執行的核心向由所述主處理器執行的超管理器請求用於載入目標韌體的管理; 藉由所述超管理器改變所述主處理器及所述多個IP中的至少一者對記憶體區域的存取許可,所述目標韌體將載入所述記憶體區域; 藉由所述核心將所述目標韌體載入至所述記憶體區域中; 藉由所述核心向所述超管理器請求所載入的所述目標韌體的驗證; 藉由所述超管理器改變所述主處理器及所述多個IP中的至少一者對所述記憶體區域的存取許可; 藉由所述超管理器向所述安全系統請求所載入的所述目標韌體的驗證; 藉由所述安全系統對所載入的所述目標韌體執行驗證; 藉由所述安全系統向所述超管理器提供所述驗證的驗證結果; 藉由所述超管理器基於所述驗證結果改變所述主處理器及所述多個IP中的至少一者對所述記憶體區域的存取許可;以及 藉由所述核心執行所載入的所述目標韌體。
TW110107684A 2020-03-06 2021-03-04 系統晶片以及操作系統晶片的方法 TWI844763B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0028586 2020-03-06
KR1020200028586A KR20210112923A (ko) 2020-03-06 2020-03-06 시스템 온 칩 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
TW202203012A true TW202203012A (zh) 2022-01-16
TWI844763B TWI844763B (zh) 2024-06-11

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI830443B (zh) * 2022-10-18 2024-01-21 新唐科技股份有限公司 針對攻擊進行處置的安全處理裝置、方法與電子設備

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI830443B (zh) * 2022-10-18 2024-01-21 新唐科技股份有限公司 針對攻擊進行處置的安全處理裝置、方法與電子設備

Also Published As

Publication number Publication date
CN113434453A (zh) 2021-09-24
US11847225B2 (en) 2023-12-19
US20240045969A1 (en) 2024-02-08
US20210279334A1 (en) 2021-09-09
DE102020127800A1 (de) 2021-09-09
KR20210112923A (ko) 2021-09-15

Similar Documents

Publication Publication Date Title
US11847225B2 (en) Blocking access to firmware by units of system on chip
US10831886B2 (en) Virtual machine manager facilitated selective code integrity enforcement
US12050701B2 (en) Cryptographic isolation of memory compartments in a computing environment
JP6903682B2 (ja) 仮想リソースビューを使用するデータ保護
CN109918919B (zh) 认证变量的管理
US20200257827A1 (en) Memory write for ownership access in a core
US9317450B2 (en) Security protection for memory content of processor main memory
WO2017112248A1 (en) Trusted launch of secure enclaves in virtualized environments
WO2015074512A1 (zh) 一种访问物理资源的方法和装置
US10395028B2 (en) Virtualization based intra-block workload isolation
WO2023123850A1 (zh) 一种固件可信根的实现方法、装置、设备和可读存储介质
CN116157795A (zh) 分层保护域中的安全性增强
US9135046B1 (en) Preventing host operating system from inspecting or modifying data received by hardware controller by moving host operating system into a virtual machine after boot up
EP3872662B1 (en) Methods and devices for executing trusted applications on processor with support for protected execution environments
TWI844763B (zh) 系統晶片以及操作系統晶片的方法
US20230098991A1 (en) Systems, methods, and media for protecting applications from untrusted operating systems