CN113434453A - 片上系统及其操作方法 - Google Patents
片上系统及其操作方法 Download PDFInfo
- Publication number
- CN113434453A CN113434453A CN202110047120.7A CN202110047120A CN113434453A CN 113434453 A CN113434453 A CN 113434453A CN 202110047120 A CN202110047120 A CN 202110047120A CN 113434453 A CN113434453 A CN 113434453A
- Authority
- CN
- China
- Prior art keywords
- firmware
- memory
- target firmware
- hypervisor
- target
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000015654 memory Effects 0.000 claims abstract description 150
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000012795 verification Methods 0.000 claims description 40
- 238000013507 mapping Methods 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 20
- 230000001537 neural effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 9
- 102100034033 Alpha-adducin Human genes 0.000 description 8
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 8
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 101000693970 Homo sapiens Scavenger receptor class A member 3 Proteins 0.000 description 6
- 102100027192 Scavenger receptor class A member 3 Human genes 0.000 description 6
- 101150084419 CSR2 gene Proteins 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000011017 operating method Methods 0.000 description 4
- 102100024348 Beta-adducin Human genes 0.000 description 3
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7864—Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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号韩国专利申请的优先权,该韩国专利申请的公开通过引用全部包含于此。
技术领域
本公开涉及一种片上系统,更具体地,涉及一种用于安全加载固件的片上系统及操作片上系统的方法。
背景技术
随着移动技术发展并且需要各种功能,将由片上系统处理的功能正在增加,因此,为了改善移动装置的性能并且执行优化的功能,除了主处理器之外,诸如具有各种功能的数字信号处理器(DSP)的知识产权(IP)正在开发中。例如,最近的片上系统(SoC)已经配备有针对与人工智能相关的并行计算而优化的神经处理单元(NPU)和张量处理单元(TPU),并且可以替代主处理器,并且甚至需要复杂计算的相机功能也正在将计算分配给DSP以加速处理。
此外,DSP可以执行类似于包括多个核的主处理器的操作。也就是说,DSP可以读取存储器中的软件代码以执行预定的操作,并且在执行操作的同时,DSP可以不时地访问存储器以读取算法或软件数据或者写入计算结果。
另外,DSP越来越多地用于安全区域(例如,可信执行环境(TEE)区域)以用于安全数据处理。例如,需要人脸识别或其它安全处理的人工智能处理操作可以在DSP中而不是在主处理器中执行。为了在安全区域中控制DSP,控制DSP的固件、算法和数据必须都在受保护的存储器上操作,并且固件等的验证还应该首先执行。然而,在针对固件等的验证操作期间,数据被复制到与安全区域对应的存储器区域,并且当DSP使用复制的数据执行验证时,存在数据移动发生多次的问题,因此,计算时间增加。
发明内容
一个方面在于提供了,当在安全区域中的预定IP而不是主处理器执行预定的数据处理操作时或者当主处理器直接执行预定的数据处理操作时,有效地移动并保护数据的片上系统以及操作片上系统的方法。
根据一个或更多个示例性实施例的一个方面,提供了一种具有主处理器和多个第一知识产权(IP)的片上系统的操作方法,所述操作方法包括:主处理器使用固件加载器将第一目标固件复制到存储器;主处理器使用管理程序阻止主处理器和所述多个第一IP对第一目标固件的访问;主处理器使用固件验证器对第一目标固件进行验证;以及基于验证结果,主处理器使用管理程序准许所述多个第一IP之中的目标IP对第一目标固件的访问。
根据一个或更多个示例性实施例的另一方面,提供了一种片上系统(SoC),所述片上系统包括:存储器;主处理器,被配置为运行操作系统;以及多个第一知识产权(IP),被配置为执行相应的处理操作,其中,主处理器被配置为:使用固件加载器将目标固件复制到存储器;使用管理程序在验证目标固件之前阻止主处理器和所述多个第一IP对目标固件的访问;以及使用管理程序在验证目标固件之后准许所述多个第一IP之中的与目标固件对应的目标IP对目标固件的访问。
根据一个或更多个示例性实施例的另一方面,提供了一种片上系统的操作方法,所述片上系统具有主处理器、多个知识产权(IP)和安全系统,所述操作方法包括:主处理器执行的内核向主处理器执行的管理程序请求用于加载目标固件的管理;管理程序改变所述多个IP和主处理器中的至少一个对目标固件要被加载到的存储器区域的访问权限;内核将目标固件加载到存储器区域中;内核向管理程序请求对加载的目标固件的验证;管理程序改变所述多个IP和主处理器中的至少一个对存储器区域的访问权限;管理程序向安全系统请求对加载的目标固件的验证;安全系统执行对加载的目标固件的验证;安全系统向管理程序提供验证的验证结果;管理程序基于验证结果来改变所述多个IP和主处理器中的至少一个对存储器区域的访问权限;以及内核执行加载的目标固件。
附图说明
根据以下结合附图的详细描述,将更清楚地理解各种实施例,在附图中:
图1是示意性地示出根据示例性实施例的移动装置的框图;
图2是示出根据示例性实施例的用于在正常域和安全域中操作的方法的软件架构的框图;
图3是示出根据示例性实施例的移动装置的操作的框图;
图4A和图4B是根据示例性实施例的用于解释图3的用于控制移动装置的主处理器对目标固件的访问的管理程序的操作的图;
图5A和图5B是根据示例性实施例的用于解释图3的用于控制第一DSP对移动装置的主处理器的目标固件的访问的管理程序的操作的图;
图6是根据示例性实施例的用于解释直到图3的目标固件被加载到存储器中并被验证为止的管理程序的操作的图;
图7是示出根据示例性实施例的操作片上系统的方法的流程图;
图8至图10是示出根据示例性实施例的操作片上系统的方法的流程图;
图11是示出根据示例性实施例的存储在图1的存储器或存储装置中的软件架构结构的框图;
图12是示出根据示例性实施例的包括片上系统的电子装置的框图;
图13是示出根据示例性实施例的包括片上系统的电子装置的框图;以及
图14是示出根据示例性实施例的通过将多个物联网(IoT)装置连接到服务器来实现的智能家居的图。
具体实施方式
在下文中,将参照附图详细描述各种示例性实施例。
图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)(或IP单元),并且尽管在图1的SoC中未示出,但是可以进一步包括执行数据处理以向用户提供各种服务的IP(例如,图像信号处理器(ISP)、张量处理单元(TPU)等)。如本说明书中所使用的,术语“知识产权”或“IP单元”是指知识产权核、IP核或IP块,知识产权核、IP核或IP块是作为一方的知识产权的逻辑、单元或集成电路(即,芯片)布图设计的可重用单元。各种IP核或IP块用于构建集成半导体装置。
主处理器110可以控制移动装置100的整体操作。此时,主处理器110可以执行作为正常域(normal world,或称为,正常世界)和安全域(secure world,或称为,安全世界)之一的操作。
安全域可以表示安全的数据处理架构,正常域可以表示不安全的一般数据处理架构。作为示例性实施例,主处理器110可以基于“ARM信任区架构(ARM TrustzoneArchitecture)”操作。该架构可以包括两个运行时环境(runtime environment),并且它们中的一个,非安全运行时环境(例如,富执行环境(REE))可以被称为正常区或正常域,并且可以由正常操作系统控制。另一运行时环境,安全运行时环境(例如,可信执行环境(TEE))可以被称为信任区(Trustzone)或信任域(TrustedWorld,或称为,信任世界)或安全域,并且安全运行时环境可以由安全操作系统控制。
正常操作系统可以是例如典型操作系统(诸如,Android、Windows phone、iPhoneOS(iOS)等),安全操作系统可以是在现有操作系统中嵌入集成有安全功能的安全内核的操作系统。根据上述ARM信任区,可以将上述非安全运行时环境和安全运行时环境一起定义为虚拟执行环境。
主处理器110可以执行要在移动装置100上运行的软件(例如,应用程序、操作系统、装置驱动器等)。主处理器110可以执行加载在存储器130中的操作系统。主处理器110可以执行将基于操作系统运行的各种应用程序。
在下文中,将描述应该在TEE中基于固件来操作DSP 150而不是主处理器110的情况。作为示例性实施例,固件将在安全域中执行并且可以包括例如用于执行人脸识别、指纹识别、虹膜识别、需要安全性的AI处理操作、移动交易操作等的程序。此外,本领域普通技术人员将清楚的是,本公开的技术原理可以应用于需要基于固件而不是主处理器110来执行除DSP 150之外的其它IP(诸如,NPU 140和/或加速器190)的情况。
作为示例性实施例,主处理器110可以执行存储在存储装置170中的安全存储器管理软件(安全MM S/W)172,将存储在存储装置170中的固件(FW)映像174复制到存储器130以允许DSP 150在TEE中稳定地执行加载在存储器130中的固件(即,固件(FW)映像174的副本),并使用安全系统180对固件(即,加载在存储器130中的固件(FW)映像174的副本)执行验证。存储在存储装置170中的固件(FW)映像174可以是各种IP(诸如,主处理器110、NPU140、DSP 150、安全系统180和/或加速器190)的固件。
具体地,主处理器110可以通过操作系统的内核中的固件加载器将固件映像174从存储装置170复制到存储器130。在下文中,已经加载在存储器130中的固件(FW)映像174的副本将被称为目标固件(FW)134。
主处理器110可以使用管理程序(hypervisor)来控制对目标固件134的访问。
管理程序是用于同时运行多个操作系统的逻辑平台,并且可以被称为虚拟机监视器或虚拟机管理器。根据类型,管理程序可以在主处理器110上直接执行,或者可以通过主处理器110的主机操作系统执行。即使在验证目标固件134之前发生黑客攻击,管理程序也可以阻止对IP的目标固件134的非安全访问,以防止对目标固件134的修改或损坏。在一个示例性实施例中,管理程序可以调整存储器130的其中存储目标固件134的区域的读取或写入权限(permission,或称为,许可),以阻止对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可以从存储器130读取数据并且通过系统互连器192将读取的数据传送到主处理器110或存储器接口160。
当启动移动装置100时,操作系统或应用程序可以被加载到存储器130中。移动装置100的各种输入/输出操作可以通过操作系统支持。此外,可以将多个固件(或应用程序)加载到存储器130中以由用户选择或提供基本服务。除了这些用途之外,存储器130可以用作用于存储从图像传感器(诸如,相机)提供的图像数据的缓冲存储器。存储器130可以是易失性存储器(诸如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等),或者可以是非易失性存储器(诸如,相位RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(ReRAM)、铁电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可以被设置为存储器卡(例如,多媒体卡(MMC)、嵌入式MMC(eMMC)存储器卡、安全数字(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可以省略存储器130中的TEE区域与REE区域之间的不必要的数据交换,以高效且安全地将固件(FW)映像174加载到存储器130中并验证固件(FW)映像174。
图2是示出根据示例性实施例的用于在正常域和安全域中操作的方法的软件架构的框图。根据一些示例性实施例,软件架构可以是信任区架构。
参照图2,信任区架构可以提供两个运行时环境,诸如,正常域210和安全域220。正常域210可以包括正常域用户模式212和正常域内核模式214,并且安全域220可以包括安全域用户模式222、安全域内核模式224和监视器模式230。可以通过虚拟地分离硬件资源(诸如,高速缓存、转换后备缓冲器(TLB)、存储器管理单元(MMU)和寄存器等)来管理正常域210和安全域220中的每个。
如上所述,因为正常域210和安全域220可以被选择性地操作,所以信任区架构可以提供监视器模式230以管理从正常域210到安全域220的改变,反之亦然。根据一些示例性实施例,监视器模式230中的软件可以在安全域220中操作。
此外,因为正常域210和安全域220被监视器模式230控制,所以由主处理器110(见图1)生成的各种指令或中断可以通过监视器模式230被提供给正常域210和安全域220中的每个。例如,可以使用安全监视器调用命令(SMC)来连接正常域内核模式214或安全域内核模式224。也就是说,主处理器110(见图1)可以使用SMC将当前执行的模式(例如,正常域内核模式214或安全域内核模式224)改变为监视器模式230。然而,除了使用SMC之外,主处理器110(见图1)可以使用中断请求(IRQ)或快速中断请求(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可以包括主处理器352、第一MMU(第1MMU)354、第二MMU(第2MMU)356、第一DSP(第1DSP)362、第一系统MMU(SysMMU)364、第一存储器保护单元MPU(第1MPU)366、第二DSP(第2DSP)382、第二系统MMU(第2SysMMU)384、第二MPU 386、IP 372、系统MMU(SysMMU)374、MPU 376和存储器390作为硬件HW。此外,示例性实施例不限于图3中所示的示例,并且硬件HW还可以包括分别连接到更多和各种IP的存储器管理单元。
主处理器352可以直接连接到第一MMU 354并且可以通过第一MMU 354连接到第二MMU 356,主处理器352可以通过分阶段地(in stages)使用第一MMU 354和第二MMU 356来访问存储器390。也就是说,第一MMU 354可以在第一阶段被使用,第二MMU 356可以在第二阶段被使用。第一DSP 362可以直接连接到第一系统MMU 364并且可以通过第一系统MMU364连接到第一MPU 366,第一DSP 362可以通过分阶段地使用第一系统MMU 364和第一MPU366来访问存储器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 376来访问存储器390。
第一MMU 354管理被主处理器352用于将第一逻辑地址转换为用于访问存储器390的第二逻辑地址的逻辑到逻辑(L2L)映射表,并且第二MMU 356可以管理用于将第二逻辑地址转换为物理地址的逻辑到物理(L2P)映射表。物理地址可以对应于存储器390的实际地址。
MPU(即,第一MPU 366、MPU 376和第二MPU 386)可以保护存储器390的一些区域免受IP(即,第一DSP 362、IP 372和第二DSP 382)的非安全访问。具体地,MPU(即,第一MPU366、MPU 376和第二MPU 386)可以将存储器390的区域划分为多个窗口区域,并且保护多个窗口区域免受IP(即,第一DSP 362、IP 372和第二DSP 382)的非安全访问。MPU(即,第一MPU366、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、第一MPU366、第二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可以通过改变第一MPU366的页表中与目标固件392对应的地址的属性信息来阻止第一DSP 362对目标固件392的访问。这样的方法也可以应用于IP 372和第二DSP 382。
管理程序330可以请求固件验证器320通过可信固件340验证目标固件392,并且固件验证器320可以响应于所述请求而控制第二DSP 382执行目标固件392的验证。第二DSP382可以被提前设置为验证目标固件392,并且可以对应于图1的安全系统180。管理程序330可以改变第二MPU 386的页表,使得第二DSP 382可以访问目标固件392。
第二DSP 382可以执行目标固件392的完整性验证,并且当完整性验证完成时,固件验证器320可以通过可信固件340向管理程序330提供完整性验证结果。
当针对目标固件392的完整性验证结果通过时,管理程序330可以改变第一MPU366的页表,使得第一DSP 362可以在TEE中访问目标固件392并且执行目标固件392。换言之,管理程序330可以在验证期间阻止由第一控制区域CSR1的所有组件的访问,然后在验证之后可以选择性地允许第一控制区域CSR1的与已经验证的固件对应的组件的访问。
如此,在根据一个示例性实施例的移动装置300中,为了提供用于第一DSP 362而不是主处理器352在TEE中执行目标固件392的环境,管理程序330仅有效地控制第二控制区域CSR2的配置,以有效地阻止非安全访问并使存储器390中的数据移动最小化。
然而,图3中示出的构造仅是示例,并且示例性实施例不限于此。此外,上面已经提供了第二DSP 382准备用于在TEE中执行目标固件392的环境的描述。然而,本公开的技术原理可以适用于除了主处理器352之外的至少一个IP准备用于在TEE中执行目标固件392的环境的所有情况。
图4A和图4B是用于解释图3的用于控制主处理器352对目标固件392的访问的管理程序330的操作的图。
参照图3和图4A,第一MMU 354可以管理L2L映射表L2L_TB。L2L映射表L2L_TB可以包括关于第一逻辑地址L_ADDa和映射到第一逻辑地址L_ADDa的第二逻辑地址L_ADDb的信息。例如,如果主处理器352将地址“L_ADD1a”(例如,地址“L_ADD1a”与对预定操作的请求)提供给第一MMU 354,则第一MMU 354可以基于L2L映射表L2L_TB将“L_ADD1a”转换为“L_ADD1b”,并且向第二MMU 356提供转换结果地址。
第二MMU 356可以管理L2P映射表L2P_TB。L2P映射表L2P_TB可以包括关于第二逻辑地址L_ADDb和映射到第二逻辑地址L_ADDb的物理地址P_ADD的信息。物理地址P_ADD可以对应于存储器390的实际地址。例如,第二MMU 356可以基于L2P映射表L2P_TB将接收到的“L_ADD1b”转换为“P_ADD1”,并且使用“P_ADD1”访问存储器390的对应地址。
在下文中,假设存储器390的其中存储目标固件392的物理地址是“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删除映射到“P_ADD1”和“P_ADD2”的“L_ADD1b”和“L_ADD2b”,“P_ADD1”和“P_ADD2”作为指向目标固件392的物理地址P_ADD。此外,进一步地,管理程序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还可以管理指示存储器390的与L2P映射表L2P_TB的物理地址P_ADD对应的区域的读取权限或写入权限的信息,并且管理程序330可以通过改变指示读取权限或写入权限的信息来控制主处理器352对存储器390的访问。
图5A和图5B是用于解释图3的用于控制第一DSP 362对主处理器352的目标固件392的访问的管理程序330的操作的图。在下文中,清楚的是,所描述的技术原理也适用于控制IP 372和第二DSP 382对主处理器352的目标固件392的访问。
参照图3和图5A,第一系统MMU 364可以管理L2P映射表L2P_TB。L2P映射表L2P_TB可以包括关于逻辑地址L_ADD和映射到逻辑地址L_ADD的物理地址P_ADD的信息。例如,当第一DSP 362将地址“L_ADD1”(例如,地址“L_ADD1”与对预定操作的请求)提供给第一系统MMU364时,第一系统MMU 364可以基于L2P映射表L2P_TB将“L_ADD1”转换为“P_ADD1”,并将转换结果地址提供给第一MPU 366。
第一MPU 366可以管理页表P_TB。页表P_TB可以包括存储器390的物理地址P_ADD和关于地址的属性信息PI。在一个示例性实施例中,属性信息PI可以包括读取权限标志RPF和写入权限标志WPF。例如,读取权限标志RPF可以是指示是否可以读取存储在对应的物理地址P_ADD中的数据的信息,写入权限标志WPF可以是指示是否可以将数据写入对应的物理地址P_ADD中的信息。
为了防止由第一DSP 362对目标固件392的非安全访问,管理程序330可以改变与存储器390的其中存储目标固件392的物理地址P_ADD对应的属性信息PI。例如,如以上在图4A中所描述的,存储器390的其中存储目标固件392的物理地址可以是“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、IP372和第二DSP 382读取。在图6的(b)中,管理程序330可以给予主处理器352对存储器区域MA_FW写入的权限,以允许固件加载器312将目标固件392加载到存储器区域MA_FW中。然后,在图6的(c)中,在执行针对目标固件392的验证操作之前,管理程序330可以将主处理器352改变为具有针对存储器区域MA_FW的“只读”权限。尽管在图中未示出,但是管理程序330可以进一步给予第二DSP 382针对存储器区域MA_FW的写入权限,使得第二DSP 382可以对目标固件392执行验证操作。当完成目标固件392的验证时,在图6的(d)中,管理程序330可以进一步给予第一DSP 362针对存储目标固件392的代码的区域的“代码可执行”权限和针对存储目标固件392的数据的区域的“数据可写入”权限。通过该步骤,第一DSP 362可以执行目标固件392并将目标固件392的数据写入存储器390。
然而,关于图6中示出的内容提供的描述仅是示例性实施例,并且示例性实施例不限于此。为了防止目标固件392的黑客攻击,管理程序330动态地控制第二控制区域CSR2,使得各种实施例可以应用于阻止或准许主处理器352、第一DSP 362、IP 372和第二DSP 382对目标固件392的访问。
图7是示出根据示例性实施例的操作SoC的方法的流程图。
参照图7,在操作S100中,SoC可以将目标固件复制到存储器。例如,SoC可以通过内核的固件上传器将目标固件复制(或加载)到存储器。目标固件用于处理必须被保护免受黑客攻击的安全相关操作,并且可以在主处理器或除主处理器之外的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的第二MMU356的L2P映射表或预定信息,以允许内核访问固件存储器区域并将固件复制到固件存储器区域。在操作S404中,管理程序可以通知内核对固件存储器区域的访问权限改变完成。在操作S406中,内核可以将固件加载到存储器中。在操作S408中,内核可以请求管理程序验证加载的固件。在操作S410中,管理程序可以在开始固件验证之前改变对固件存储器区域的访问权限。具体地,管理程序可以向执行固件验证的安全系统授予访问固件存储器区域的权限,并且阻止主处理器和多个IP对固件存储器区域的访问。在操作S412中,管理程序可以请求由安全系统进行固件验证。在操作S414中,安全系统可以响应于管理程序的请求对加载的固件执行验证。例如,安全系统可以基于各种方法和算法对加载的固件执行签名验证操作。在操作S416中,安全系统可以将固件的验证结果提供给管理程序。在操作S418中,管理程序可以基于验证结果来改变对固件存储器区域的访问权限。具体地,管理程序可以向被选择为执行固件的主处理器或多个IP授予访问固件存储器区域的权限。例如,当主处理器被选择来执行固件时,可以针对多个IP和安全系统阻止对固件存储器区域的访问。在操作S420中,管理程序可以通知内核对固件存储器区域的访问权限改变完成。在操作S422中,内核可以访问固件存储器区域并且执行固件。
图11是示出根据示例性实施例的存储在图1的存储器130和/或存储装置170中的软件架构结构的框图。
参照图11,存储器130(见图1)或存储装置170(见图1)可以包括操作系统(OS)1010、内核1020、中间件1030和应用1040(例如,应用1 1040_1至应用n 1040_n)。
操作系统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可以包括根据各种示例性实施例的固件加载模块1222并且可以基于固件加载模块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可以执行路由器、网桥或接入点(AP)的功能。服务器2030可以包括处理器和无线通信电路。处理器可以控制服务器2030的整体操作。服务器2030可以使用无线通信电路与集线器2020通信,或者可以通过集线器2020与多个IoT装置2010通信。
电子装置2040可以包括处理器和无线通信电路。处理器可以控制电子装置2040的整体操作。电子装置2040可以使用无线通信电路与服务器2030通信。根据各种实施例,电子装置2040可以进一步包括显示器、相机或输入/输出模块。
当开始与多个IoT装置2010的通信时,电子装置2040可以执行与安全或认证相关的固件,并且此时,电子装置2040可以基于根据各种示例性实施例的固件加载模块来操作。例如,电子装置2040可以是图12的电子装置1100或图13的电子装置1200。
尽管上面已经具体示出并描述了各种示例性实施例,但是将理解的是,在不脱离权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
Claims (20)
1.一种操作具有主处理器和多个第一知识产权单元的片上系统的方法,所述方法包括:
主处理器使用固件加载器将第一目标固件复制到存储器;
主处理器使用管理程序阻止主处理器和所述多个第一知识产权单元对第一目标固件的访问;
主处理器使用固件验证器对第一目标固件进行验证;以及
基于验证结果,主处理器使用管理程序准许所述多个第一知识产权单元之中的目标知识产权单元对第一目标固件的访问。
2.根据权利要求1所述的方法,其中,固件加载器和管理程序在富执行环境中操作,并且固件验证器在可信执行环境中操作。
3.根据权利要求1所述的方法,其中,所述多个第一知识产权单元包括数字信号处理器、神经处理单元、张量处理单元和图像信号处理器中的至少一个。
4.根据权利要求1所述的方法,其中,阻止访问的步骤包括:主处理器使用管理程序改变在连接到主处理器的存储器管理单元中的和在分别连接到所述多个第一知识产权单元的存储器保护单元中的关于存储器的信息。
5.根据权利要求4所述的方法,其中,改变信息的步骤包括:主处理器使用管理程序来改变存储器管理单元的逻辑到物理映射表,以阻止主处理器对第一目标固件的访问。
6.根据权利要求4所述的方法,其中,改变信息的步骤包括:主处理器使用管理程序来改变存储器保护单元的页表,以阻止所述多个第一知识产权单元对第一目标固件的访问。
7.根据权利要求6所述的方法,其中,页表包括第一目标固件被复制到的存储器的地址信息以及与所述地址信息对应的属性信息。
8.根据权利要求1至权利要求7中的任意一项所述的方法,其中,所述片上系统还包括用于安全的第二知识产权单元,
其中,验证的步骤包括:主处理器使用固件验证器控制第二知识产权单元执行第一目标固件的签名验证操作。
9.根据权利要求1至权利要求7中的任意一项所述的方法,其中,准许的步骤包括:当验证结果通过时,主处理器使用管理程序改变在连接到目标知识产权单元的存储器保护单元中的关于存储器的信息。
10.根据权利要求1至权利要求7中的任意一项所述的方法,所述方法还包括:
当完成目标知识产权单元对第一目标固件的执行时,主处理器使用管理程序准许主处理器对第一目标固件的访问,以允许固件加载器对第一目标固件的访问;以及
主处理器使用管理程序阻止目标知识产权单元对第一目标固件的访问。
11.根据权利要求1至权利要求7中的任意一项所述的方法,所述方法还包括:
当所述多个第一知识产权单元中的一个第一知识产权单元请求执行第二目标固件时,主处理器使用固件加载器将第二目标固件复制到存储器;
主处理器使用管理程序阻止主处理器和所述多个第一知识产权单元对第二目标固件的访问;
主处理器使用固件验证器对第二目标固件进行验证;
基于第二目标固件的验证结果,主处理器使用管理程序准许所述多个第一知识产权单元中的请求执行第二目标固件中的所述一个第一知识产权单元对第二目标固件的访问;以及
主处理器使用管理程序准许主处理器对第一目标固件的访问,以允许固件加载器对第一目标固件的访问。
12.一种片上系统,所述片上系统包括:
存储器;
主处理器,被配置为运行操作系统;以及
多个第一知识产权单元,被配置为执行相应的处理操作,
其中,主处理器被配置为:使用固件加载器将目标固件复制到存储器;使用管理程序在验证目标固件之前阻止主处理器和所述多个第一知识产权单元对目标固件的访问;以及使用管理程序在验证目标固件之后准许所述多个第一知识产权单元之中的与目标固件对应的目标知识产权单元对目标固件的访问。
13.根据权利要求12所述的片上系统,其中,主处理器连接到管理逻辑到逻辑映射表的第一存储器管理单元和管理逻辑到物理映射表的第二存储器管理单元,以分阶段地访问存储器,
其中,所述多个第一知识产权单元分别连接到管理逻辑到物理映射表的系统存储器管理单元和管理页表的存储器保护单元,以分阶段访问存储器。
14.根据权利要求14所述的片上系统,其中,主处理器通过使用管理程序改变在第二存储器管理单元中的和在存储器保护单元中的关于存储器的信息,来准许对目标固件的访问。
15.根据权利要求15所述的片上系统,其中,关于存储器的信息包括存储器管理单元的逻辑到物理映射表和存储器保护单元的页表,存储器管理单元的逻辑到物理映射表包括目标固件被复制到的存储器的物理地址信息和映射到物理地址的逻辑地址信息,存储器保护单元的页表包括物理地址信息和与物理地址信息对应的属性信息。
16.根据权利要求14所述的片上系统,其中,主处理器被配置为使用内核来控制第一存储器管理单元和系统存储器管理单元。
17.根据权利要求12至权利要求17中的任意一项所述的片上系统,其中,所述多个第一知识产权单元包括数字信号处理器、神经处理单元、张量处理单元和图像信号处理器中的至少一个。
18.根据权利要求12至权利要求17中的任意一项所述的片上系统,所述片上系统还包括用于对目标固件执行验证的第二知识产权单元,
其中,主处理器使用固件验证器控制第二知识产权单元执行目标固件的签名验证操作。
19.根据权利要求19所述的片上系统,所述片上系统还包括存储装置,目标固件、固件加载器、管理程序和固件验证器以能够由主处理器执行的代码的形式被存储在存储装置中。
20.一种片上系统的操作方法,所述片上系统具有主处理器、多个知识产权单元和安全系统,所述操作方法包括:
主处理器执行的内核向主处理器执行的管理程序请求用于加载目标固件的管理;
管理程序改变所述多个知识产权单元和主处理器中的至少一个对目标固件要被加载到的存储器区域的访问权限;
内核将目标固件加载到存储器区域中;
内核向管理程序请求对加载的目标固件的验证;
管理程序改变所述多个知识产权单元和主处理器中的至少一个对存储器区域的访问权限;
管理程序向安全系统请求对加载的目标固件的验证;
安全系统执行对加载的目标固件的验证;
安全系统向管理程序提供验证的验证结果;
管理程序基于验证结果来改变所述多个知识产权单元和主处理器中的至少一个对存储器区域的访问权限;以及
内核执行加载的目标固件。
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 (1)
Publication Number | Publication Date |
---|---|
CN113434453A true CN113434453A (zh) | 2021-09-24 |
Family
ID=77388751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110047120.7A Pending CN113434453A (zh) | 2020-03-06 | 2021-01-14 | 片上系统及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11847225B2 (zh) |
KR (1) | KR20210112923A (zh) |
CN (1) | CN113434453A (zh) |
DE (1) | DE102020127800A1 (zh) |
TW (1) | TWI844763B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647453A (zh) * | 2022-03-01 | 2022-06-21 | 芯原微电子(成都)有限公司 | 多处理器的可信动态启动方法、系统、存储介质及终端 |
CN114880251A (zh) * | 2022-07-12 | 2022-08-09 | 荣耀终端有限公司 | 存储单元的访问方法、访问装置和终端设备 |
CN117453318A (zh) * | 2023-12-25 | 2024-01-26 | 上海励驰半导体有限公司 | 基于iommu的dsp固件使用方法、系统芯片及车机 |
WO2024027356A1 (zh) * | 2022-07-30 | 2024-02-08 | 华为技术有限公司 | 电子装置和安全访问软件的方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102126931B1 (ko) * | 2018-11-07 | 2020-06-25 | 시큐리티플랫폼 주식회사 | 시큐어 부팅 장치 및 방법 |
US20230035610A1 (en) * | 2021-07-29 | 2023-02-02 | Saratoga Milkyway Inc. | Hybrid system fabric for enabling host operating system and real-time operating system within chiplet system-on-chip |
CN114218153B (zh) * | 2021-12-06 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
TWI830443B (zh) * | 2022-10-18 | 2024-01-21 | 新唐科技股份有限公司 | 針對攻擊進行處置的安全處理裝置、方法與電子設備 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103529B2 (en) | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US20060294355A1 (en) | 2005-06-24 | 2006-12-28 | Zimmer Vincent J | Secure variable/image storage and access |
US8554686B2 (en) | 2005-06-30 | 2013-10-08 | Advanced Micro Devices, Inc. | Anti-hack protection to restrict installation of operating systems and other software |
CN100580638C (zh) * | 2007-07-26 | 2010-01-13 | 北京神州龙芯集成电路设计有限公司 | 一种实现硬件级验证的方法及装置 |
US8201161B2 (en) * | 2008-01-07 | 2012-06-12 | Lenovo (Singapore) Pte. Ltd. | System and method to update device driver or firmware using a hypervisor environment without system shutdown |
CA2774728C (en) | 2009-11-13 | 2019-02-12 | Irdeto Canada Corporation | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
KR20120014673A (ko) | 2010-08-10 | 2012-02-20 | 주식회사 잉카인터넷 | 위장 동적연결라이브러리 삽입에 의한 프로세스 변조 검출방법 |
KR101064164B1 (ko) | 2011-03-02 | 2011-09-15 | (주)아이넷캅 | 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법 |
JP5655677B2 (ja) | 2011-04-04 | 2015-01-21 | 富士通株式会社 | ハイパーバイザ置き換え方法および情報処理装置 |
CN102411535B (zh) * | 2011-08-02 | 2014-04-16 | 上海交通大学 | 导航SoC芯片仿真、验证和调试平台 |
US8775784B2 (en) * | 2011-11-11 | 2014-07-08 | International Business Machines Corporation | Secure boot up of a computer based on a hardware based root of trust |
US9141802B2 (en) | 2012-09-25 | 2015-09-22 | Intel Corporation | Computing device boot software authentication |
US10063380B2 (en) | 2013-01-22 | 2018-08-28 | Amazon Technologies, Inc. | Secure interface for invoking privileged operations |
US20140250290A1 (en) | 2013-03-01 | 2014-09-04 | St-Ericsson Sa | Method for Software Anti-Rollback Recovery |
WO2015038944A1 (en) | 2013-09-12 | 2015-03-19 | Virsec Systems, Inc. | Automated runtime detection of malware |
CN108027737B (zh) | 2015-04-07 | 2021-07-27 | 瑞安安全股份有限公司 | 通过二进制和存储器多样性进行混淆的系统和方法 |
KR20170089352A (ko) | 2016-01-26 | 2017-08-03 | 한국전자통신연구원 | 가상화 시스템에서 수행하는 무결성 검증 방법 |
US10057069B2 (en) | 2016-02-29 | 2018-08-21 | Red Hat Israel, Ltd. | Securing code loading by a guest in a virtual environment |
US20170255775A1 (en) | 2016-03-02 | 2017-09-07 | Apple Inc | Software verification systems with multiple verification paths |
EP3220262B1 (en) | 2016-03-15 | 2018-06-13 | Axis AB | Device which is operable during firmware upgrade |
US10110624B2 (en) | 2016-04-19 | 2018-10-23 | Red Hat Israel, Ltd. | Discovering and provisioning computing devices in a security enhanced environment |
US10097563B2 (en) * | 2016-05-04 | 2018-10-09 | Gbs Laboratories, Llc | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices |
US10482257B2 (en) | 2017-03-16 | 2019-11-19 | Dell Products, L.P. | System and method to enforce the secure boot policy of a platform on a virtual machine |
US10747883B2 (en) * | 2017-05-11 | 2020-08-18 | Qualcomm Incorporated | Collated multi-image check in system-on-chips |
US10409585B2 (en) * | 2018-02-14 | 2019-09-10 | Micron Technology, Inc. | Over-the-air (OTA) update for firmware of a vehicle component |
US10802875B2 (en) * | 2018-04-30 | 2020-10-13 | Qualcomm Incorporated | Multithread framework for use in pre-boot environment of a system-on-chip |
KR102250419B1 (ko) | 2018-09-07 | 2021-05-12 | 두산중공업 주식회사 | 고농도 유기물, 질소 및 인을 제거하는 수처리 장치 및 이를 이용하는 수처리 방법 |
-
2020
- 2020-03-06 KR KR1020200028586A patent/KR20210112923A/ko not_active Application Discontinuation
- 2020-10-22 US US17/077,817 patent/US11847225B2/en active Active
- 2020-10-22 DE DE102020127800.4A patent/DE102020127800A1/de active Pending
-
2021
- 2021-01-14 CN CN202110047120.7A patent/CN113434453A/zh active Pending
- 2021-03-04 TW TW110107684A patent/TWI844763B/zh active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647453A (zh) * | 2022-03-01 | 2022-06-21 | 芯原微电子(成都)有限公司 | 多处理器的可信动态启动方法、系统、存储介质及终端 |
CN114647453B (zh) * | 2022-03-01 | 2023-06-09 | 芯原微电子(成都)有限公司 | 多处理器的可信动态启动方法、系统、存储介质及终端 |
CN114880251A (zh) * | 2022-07-12 | 2022-08-09 | 荣耀终端有限公司 | 存储单元的访问方法、访问装置和终端设备 |
CN114880251B (zh) * | 2022-07-12 | 2023-08-29 | 荣耀终端有限公司 | 存储单元的访问方法、访问装置和终端设备 |
WO2024027356A1 (zh) * | 2022-07-30 | 2024-02-08 | 华为技术有限公司 | 电子装置和安全访问软件的方法 |
CN117453318A (zh) * | 2023-12-25 | 2024-01-26 | 上海励驰半导体有限公司 | 基于iommu的dsp固件使用方法、系统芯片及车机 |
CN117453318B (zh) * | 2023-12-25 | 2024-03-15 | 上海励驰半导体有限公司 | 基于iommu的dsp固件使用方法、系统芯片及车机 |
Also Published As
Publication number | Publication date |
---|---|
US20240045969A1 (en) | 2024-02-08 |
KR20210112923A (ko) | 2021-09-15 |
TW202203012A (zh) | 2022-01-16 |
DE102020127800A1 (de) | 2021-09-09 |
TWI844763B (zh) | 2024-06-11 |
US11847225B2 (en) | 2023-12-19 |
US20210279334A1 (en) | 2021-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847225B2 (en) | Blocking access to firmware by units of system on chip | |
US20230128711A1 (en) | Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine | |
US10831886B2 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
CN109918919B (zh) | 认证变量的管理 | |
US11443034B2 (en) | Trust zone-based operating system and method | |
JP6903682B2 (ja) | 仮想リソースビューを使用するデータ保護 | |
US9507941B2 (en) | Method of verifying integrity of electronic device, storage medium, and electronic device | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
US9021476B1 (en) | Ensuring the privacy and integrity of a hypervisor | |
CN106716435B (zh) | 设备与安全处理环境之间的接口 | |
US10395028B2 (en) | Virtualization based intra-block workload isolation | |
EP4156008A1 (en) | Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier | |
US12124581B2 (en) | System on chip and operation method thereof | |
US20230098991A1 (en) | Systems, methods, and media for protecting applications from untrusted operating systems | |
US20240070091A1 (en) | Isolation of memory regions in trusted domain | |
CN116635855A (zh) | 基于执行上下文管理可执行代码对数据内存的访问的装置和方法 | |
JP5324676B2 (ja) | プロセッサ、バスインターフェース装置、およびコンピュータシステム | |
JP2010244584A (ja) | 半導体装置、バスインターフェース装置、およびコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |