CN114490450A - 一种地址转换关系的配置方法及计算机系统 - Google Patents

一种地址转换关系的配置方法及计算机系统 Download PDF

Info

Publication number
CN114490450A
CN114490450A CN202011265320.1A CN202011265320A CN114490450A CN 114490450 A CN114490450 A CN 114490450A CN 202011265320 A CN202011265320 A CN 202011265320A CN 114490450 A CN114490450 A CN 114490450A
Authority
CN
China
Prior art keywords
address
address translation
spm
ipa
relationship
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.)
Granted
Application number
CN202011265320.1A
Other languages
English (en)
Other versions
CN114490450B (zh
Inventor
章张锴
姚冬冬
王聪
谭毅华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011265320.1A priority Critical patent/CN114490450B/zh
Priority to PCT/CN2021/130316 priority patent/WO2022100693A1/zh
Priority to EP21891213.7A priority patent/EP4231160A4/en
Publication of CN114490450A publication Critical patent/CN114490450A/zh
Priority to US18/314,999 priority patent/US20230281135A1/en
Application granted granted Critical
Publication of CN114490450B publication Critical patent/CN114490450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种地址转换关系的配置方法,所述方法应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述方法包括:所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。本申请简化了SPM建立IPA至VA的地址映射关系的过程。

Description

一种地址转换关系的配置方法及计算机系统
技术领域
本申请涉及计算机领域,尤其涉及一种地址转换关系的配置方法及计算机系统。
背景技术
为了保证终端设备的安全性,出现了以ARM(advanced RISC machines)为代表的终端设备安全框架(其中RISC的英文全称为reduced instruction set computer)。在ARM框架下,系统级的安全是通过将片上系统(system on chips,SoC)的软硬件资源划分到两个世界中获得的。这两个世界即正常世界(normal world)和安全世界(secure world)(也可以叫安全域和非安全域),这两个世界分别对应富执行环境(rich executionenvironment,REE)和可信执行环境 (trusted execution environment,TEE)。REE和TEE运行于同一台物理设备上,分别运行一套操作系统。REE运行安全性要求低的客户端应用(client application,CA);TEE则运行需要保障其安全性的可信应用(trustedapplication,TA),为授权的可信应用TA提供安全的执行环境。CA和TA之间通过提供的通信机制进行通信,就如同客户端和服务器一般。
随着TrustZone技术的不断发展,各大厂商都纷纷采用自己的可信操作系统(trusted operating system,TEEos),ARM在v8.4的版本中,引入了SEL2这一新的CPU工作模式,支持TEE侧的硬件虚拟化技术。基于该技术,TEE侧可以和REE侧类似地构建虚拟化环境,创建多个安全隔离区(secure partition,SP),每个SP中可以运行一个TEEos。多TEEos架构可以解决TEEos碎片和支持REE侧多VM这两个问题。
当前TEEos driver(tzdriver)(TrusZone的驱动,工作在非安全侧,用来与安全侧通信) 的设计是在每个虚拟机(virtual machine,VM)中都部署一个tzdriver,VM和SP之间的共享内存,由tzdriver申请。这样,每一对VM和SP之间都有一个共享内存。传统的建立 VM和SP之间共享内存的方法是:EL2的VMM(例如Hypervisor)把共享内存对应的可能离散的物理地址(physical address,PA)传给SEL2 SP管理(secure partition monitor, SPM),SPM再把PA映射到SP的IPA空间,这里要求映射后的IPA是连续的,最后再由 SP中的TEEos把IPA映射成连续的VA,这样VM和SP之间的共享内存就建立完成了,然而,通常VMM向SPM传递的PA是离散的地址,SPM需要将离散的PA映射到连续的 IPA,在VM/SP数量较多的情况下,SPM在进行内存映射时所需的代码复杂度以及代码量很高。
发明内容
第一方面,本申请提供了一种地址转换关系的配置方法,所述方法应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述方法包括:所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA 到PA的地址转换,所述PA为内存地址。
其中,内核空间中的操作系统或用户程序空间中的用户程序发送的地址可以称为VA,或者说,操作系统或用户程序可见的地址为VA;内存芯片的真实地址称为PA,VA映射至PA的过程中所使用的地址均可以称为IPA。
MMU在接收到VA后,在第一层内存地址翻译(stage-1)的过程中,可以将内核空间中的操作系统或用户程序空间中的用户程序发送的VA映射到IPA;在第二层内存地址翻译(stage-2)的过程中,MMU可以将IPA映射到PA。
在第二阶段的地址转换中,MMU使用的转换表的基址在第一vttbr_el2中被指定。例如,在第一vttbr_el2中指定存储器底部的一个连续的地址空间作为该转换表中的基址。
在第二阶段的地址转换中,MMU使用的一部分内存储地址转换规则在第一vtcr_el2 中被指定,第一vtcr_el2中配置有用于进行REE侧的第二层内存地址翻译的地址转换属性,地址转换属性可以规定但不限于内存页的大小等等,地址转换属性可以为vtcr_el2中部分比特bit所规定,例如PS、TG0、SHO、IRGN0、ORGN0、RES0、SL0、T0SZ等bit。
本申请实施例中,分配至VM的IPA通过地址转换规则转换得到的PA可以作为VM 和SP之间的共享内存,为了能使得SP侧也同样能够使用上述共享内存,在VM侧申请到共享内存之后,应当将共享内存的PA传递至SP侧,以便SP侧可以基于同样的PA对应的内存进行和VM的数据交互。在现有的实现中,hypervisor可以将PA直接传递至SP侧的SPM,之后SPM自己配置SP侧的IPA至PA的映射。本申请实施例中,hypervisor可以将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA 为内存地址。也就是说,本实施例中,TEE侧的SPM直接将VM侧配置好的IPA至PA的地址映射关系(第一地址转换关系)作为SP侧自身的地址转换关系,在后续进行与VM 的数据交互时,在进行第二层内存地址翻译(stage-2)的过程中,可以直接基于第一地址转换关系进行IPA至PA的映射,而不需要SPM重新进行PA至IPA的地址转换关系的构建。
一方面,VM侧配置的针对于不同的VM/SP对可使用的共享内存(物理地址PA)之间是隔离的,本申请实施例中SPM可以复用VM侧的IPA至PA的地址转换关系,使得不同SP/VM之间的数据交互过程中的共享内存之间的隔离;另一方面,由于SPM直接复用 VM侧的IPA至PA的地址转换关系,从而简化了SPM建立IPA至VA的地址映射关系的过程。
在一种可能的实现中,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。通常VMM向SPM传递的PA是离散的地址,SPM需要将离散的PA映射到连续的IPA,在VM/SP数量较多的情况下,SPM在进行内存映射时所需的代码复杂度以及代码量很高,而本实施例中由于SPM直接复用VM侧的IPA至PA的地址转换关系,从而简化了SPM 建立IPA至VA的地址映射关系的过程。
在一种可能的实现中,所述REE部署有第一虚拟化转化表基址寄存器vttbr_el2以及第一控制寄存器vtcr_el2,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译(stage 2translation)的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,其中,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
在一种可能的实现中,所述方法还包括:所述SPM将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM时,基于所述第二地址映射关系进行VA到IPA的地址转换。
SP可以基于第一地址映射关系中分配至所述VM的IPA,建立共享内存对应的第一层内存地址翻译Stage-1的页表映射,并把页表项中的ns bit设置成1,保证共享内存对应的 VA在走MMU翻译的时候,Stage-2会自动选择第二vttbr_el2作为页表基址寄存器,从而采用非安全的Stage-2页表进行翻译。当SP中的TEEos需要访问安全内存时,由于对应的Stage-1页表项中的ns bit设置为0,Stage-2的地址翻译会自动选择vsttbr_el2作为基址。
在一种可能的实现中,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述方法还包括:所述SPM将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
本申请实施例中,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述SPM可以将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
在一种实现中,REE侧VM启动之后,为了在TEE侧启动与该VM相应的SP,所述 SPM可以接收hypervisor发送的启动请求,所述启动请求除了指示在TEE侧启动SP之外,还用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二 vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种实现中,VM(具体可以是tzdriver)在申请一片连续的供VM使用的IPA之后,通过通用寄存器传递至SPM,SPM再将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种可能的实现中,所述SPM将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2之前,所述方法还包括:所述SPM接收所述VMM发送的启动请求,所述启动请求用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种可能的实现中,所述VMM将第一地址转换关系传递至所述SPM,包括:
所述VMM将所述第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
具体的,hypervisor可以将在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取上述信息。关于SPM如何基于SMC指令的触发来从所述通用寄存器中获取所述第一地址转换关系,可以基于现有的实现,这里不再赘述。
在一种实现中,在TEE侧建立共享内存之前,hypervisor可以将在所述第一vttbr_el2 中配置的用于进行REE侧的第二层内存地址翻译的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性写入通用寄存器,并基于SMC 指令触发所述SPM从所述通用寄存器中获取上述信息。
更具体的,上述基址和地址转换属性可以在REE侧VM启动时,hypervisor发送启动请求至SP时,通过通用寄存器传递至SPM。或者,VM(具体可以是tzdriver)在申请一片连续的供VM使用的IPA之后,通过通用寄存器传递至SPM。
第二方面,本申请提供了一种计算机系统,所述计算机系统上部署有富执行环境REE 和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,
所述VMM用于将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。
在一种可能的实现中,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。
在一种可能的实现中,所述REE部署有第一虚拟化转化表基址寄存器vttbr_el2以及第一控制寄存器vtcr_el2,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译(stage 2translation)的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,其中,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
在一种可能的实现中,所述SPM用于将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM时,基于所述第二地址映射关系进行VA到IPA的地址转换。
在一种可能的实现中,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述SPM用于将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
在一种可能的实现中,所述SPM用于接收所述VMM发送的启动请求,所述启动请求用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二 vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种可能的实现中,所述VMM用于将所述第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
第三方面,本申请提供一种计算机系统,所述计算机系统包括存储器和处理器,所述存储器用于存储计算机可读指令(或者称之为计算机程序),所述处理器用于读取所述计算机可读指令以实现前述任意实现方式提供的方法。
第四方面,本申请提供一种计算机存储介质,该计算机存储介质可以是非易失性的。该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现前述任意实现方式提供的方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品中包含计算机可读指令,当该计算机可读指令被处理器执行时实现前述任意实现方式提供的方法。
本申请实施例提供了一种地址转换关系的配置方法,所述方法应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述方法包括:所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM 在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。通过上述方式,简化了SPM建立IPA至VA的地址映射关系的过程,进而可以降低SPM在进行内存地址映射的配置时所需的代码复杂度以及代码量。
附图说明
图1为本申请实施例提供的一种硬件架构示意;
图2为内核模式的指令执行示意;
图3为一种ARM架构的服务器结构示意;
图4为一种智能终端的结构示意;
图5为ARM处理器中定义的异常级别示意;
图6为本申请实施例提供的一种地址转换关系的配置方法的流程示意;
图7为内存地址翻译的流程示意;
图8为本申请实施例提供的一种地址转换属性的示意;
图9为本申请实施例提供的一种地址转换关系的配置方法的流程示意;
图10为本申请实施例提供的一种地址转换关系的配置方法的流程示意;
图11为本实施例提供的一种计算机系统的结构示意;
图12为本实施例提供的一种NPU的结构示意。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
另外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。本申请中的术语“和/或”或字符“/”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,或A/B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
智能移动终端的飞速发展给我们的生活带来了极大的便利,绝大多数的移动终端都运行ARM中央处理单元(central processing unit,CPU)上。随着ARM CPU性能的不断提升,ARM CPU开始广泛应用于服务器。如今,智能终端和云服务器携带了越来越多的用户个人信息,用户也越来越重视设备的安全性。ARM CPU上,当前主流的系统级解决方案是TrustZone技术。
ARM TrustZone技术作为安全拓展最早是在ARMv6的版本中被引入的,它把硬件的资源划分为两个世界,非安全世界(富执行环境(rich execution environment,REE)侧)和安全世界(可信执行环境(trusted execution environment,TEE)侧)。其中与用户关系密切的操作系统工作在非安全世界,TrustZone作为硬件安全特性,工作在安全世界。非安全世界并不是指运行在其中的操作系统或者软件是恶意的,而是它所处环境的安全性比安全世界低。因为当CPU工作在非安全世界的时候,安全世界的资源(如寄存器、内存、高速缓冲存储器(Cache)、外设等)是被禁止访问的,一旦CPU试图访问这些资源,系统将会直接崩溃。例如,TrustZone可以通过配置TZASC(TrustZone Address Space Contoller)寄存器和TZMA(TrustZone Memory Adapter)寄存器,把敏感的内存设置为Secure Memory(安全内存),非安全世界就无法对这片内存进行访问。当CPU工作在安全世界时,它既可以访问安全世界的资源,又可以访问非安全世界的资源。正是由于拥有比非安全世界的操作系统更高的权限,TrustZone可以作为可信根为非安全世界的操作系统提供更高级别的安全保护方案。
图1描述了ARMv7的硬件架构。左侧是非安全世界的架构,为了支持CPU的硬件虚拟化,ARM在用户模式(USR mode)和内核模式(SVC mode)的两种CPU模式基础上新增了HYP模式(HYP mode)。和用户联系紧密的操作系统运行在非安全世界的用户模式和内核模式下,Hypervisor运行在新增的HYP模式下。HYP模式是非安全世界权限最高的一个CPU模式,当CPU工作在该模式下时,它可以访问用户模式、内核模式和HYP 模式的所有硬件资源;但是当CPU运行在其他两个模式下时,它不能访问HYP相关硬件资源。因此,Hypervisor拥有比操作系统更高的权限。和非安全世界一样,右侧的安全世界同样包含用户模式和内核模式这两种CPU的工作模式。在ARMv7上,安全世界不支持硬件虚拟化,因此它不包含HYP模式,但在最新的ARMv8.4架构中,安全世界开始支持硬件虚拟化。安全世界还包含一个特殊的、权限最高的CPU模式:监控模式(Monitor mode)。监控模式是CPU权限最高的一个模式,当CPU工作在该模式下时,它不仅可以访问安全世界所有的硬件资源,还可以访问非安全世界所有的硬件资源。TrustZone可以在监控模式下,配置Hypervisor相关的控制寄存器来初始化并激活Hypervisor。监控模式也是非安全世界进入安全世界的一个门户,在非安全世界的内核模式或者HYP模式下,执行SMC(Secure Monitor Call)指令,可以主动地从非安全世界切换到安全世界的监控模式。在监控模式下执行ERET指令,CPU通过检查SCR(Secure ControlRegister)寄存器的NS(non-secure)位来决定返回非安全世界还是继续停留在安全世界。当NS位置为1 时,监控模式下的返回操作返回非安全世界的内核,执行世界切换(worldswitch)的操作;当NS位置为0时,监控模式下的返回操作返回安全世界的内核,不执行世界切换的操作。
Hypervisor作为ARM的虚拟化拓展最早是在ARMv7的版本中被引入的。如图1所示,非安全世界包含三个权限等级:PL0、PL1、PL2。Hypervisor工作在非安全世界权限等级最高的PL2。在非安全世界的内核模式执行HVC(Hypervisor Call)指令是进入 Hypervisor的一种常见方式;在HYP模式下执行ERET指令返回内核模式(如图2所示)。为了支持内存虚拟化,ARM引入了第二层内存地址翻译(Stage-2translation)的内存虚拟化技术。利用该技术,常见的虚拟地址到物理地址(VA->PA)的一层内存地址翻译就转变为虚拟地址到中间物理地址IPA,再从中间物理地址到物理地址(VA->IPA->PA)的两层内存地址翻译。其中第二层内存地址翻译(IPA->PA)的这个过程是由Hypervisor完全控制的,对于操作系统来说是透明的,在操作系统看来,IPA就是它所使用的“物理地址”。
在内存虚拟化的支持上,TEE侧的设计和REE侧略有不同,TEE侧Stage-2的基址寄存器有两个:vttbr_el2和vsttbr_el2,而REE侧仅仅只有一个Stage-2的基址寄存器vttbr_el2。在进行Stage-1翻译过程中,若页表项中NS bit为1,内存管理单元(memorymanagement unit,MMU)在进行Stage-2翻译时,会选择vttbr_el2作为基址寄存器;若页表项中NS bit 为0,MMU会选在vsttbr_el2作为基址寄存器进行Stage-2的翻译。这个过程是MMU自动完成的,不需要软件参与。vttbr_el2和vsttbr_el2两个寄存器设计的目的是:CPU工作在TEE侧的时候可能访问安全内存,也有可能访问非安全内存,而安全内存和非安全内存可以通过这两套Stage-2的页表来区分。通过配置,系统可以保证通过vttbr_el2指向的Stage-2页表翻译出来的物理地址落在非安全内存上;通过vsttbr_el2的页表翻译出来的物理地址落在安全内存上。
接下来描述本申请应用的场景架构。
本申请可以应用于基于ARM架构的服务器中,ARM服务器场景中,富执行环境REE和可信执行环境TEE都支持硬件虚拟化特性,租户会在REE侧建立多个VM,为了给每个租户提供TEE可信执行环境的支持,VM启动时,会相应地在TEE侧启动一个安全隔离区SP,并在SP中启动TEEos,以支持VM中的安全业务,其架构如图3所示。在运行时,VM中的CA(可以调用TEE服务的在REE侧运行的客户端应用程序)会请求SP中 TA(运行在TEE侧的可信应用程序)的安全服务。
本申请还可以应用于智能终端(例如智能手机等便携式设备中),如图4所示,在智能终端的场景中,虽然REE和TEE启动多个VM/SP的需求并不强烈,但是当REE侧和 TEE侧内存虚拟化特性打开后,REE侧的客户系统Guest OS(例如Android os)可以认为运行在VM中,TEE侧的TEEos可以认为运行在SP中。
本申请可以用于上述服务器以及智能终端中,具体可以应用于在配置VM和SP的共享内存时,TEE侧SPM配置内存地址转换关系的过程。
上述服务器以及智能终端(本申请实施例中也可以称之为计算机系统)可以包括处理器和存储器。处理器也可以称为中央处理单元(central processing unit,CPU)或中央处理器。
该计算机系统中的处理器的一种示例为精简指令系统(Advanced RISCMachines,ARM) 处理器。该计算机中的存储器的示例为随机存取存储器(random accessmemory,RAM)或闪存(Flash)。其中,RAM也可以称为主存或者内存。存储器具有访问权限属性,例如只读、可写、可执行和不可访问。
该计算机系统的处理器中使用了虚拟化技术。虚拟化技术可以隐藏该计算机中的底层物理硬件,从而可以让多个各自独立运行的操作系统(operator system,OS)透明地使用和共享该计算机的硬件资源。简单地说,虚拟化技术可以使得该计算机能并发运行多个OS。
该计算机中的处理器为程序代码提供了不同的权限级别来访问该计算机中的资源,以保护该计算机中的数据和阻止该计算机中发生恶意行为,从而确保该计算机的安全。
例如,如图5所示,ARM处理器中可以定义四种异常级别(Exception levels,EL),分别为EL0、EL1、EL2和EL3。其中,数值越大的异常级别的等级越高,数值越小的异常级别的等级越低。例如,EL0的等级低于EL1的等级,EL1的等级低于EL2的等级,EL2 的等级低于EL3的等级。当然,也可以是数值越大的异常级别的等级越低,数值越小的异常界别的等级越高,本申请实施例对此不作限制。
不同等级的异常级别对应不同等级的运行空间。异常级别的划分或者说运行空间的划分为处理器中所有操作状态的软件提供了逻辑分离的执行权限。应理解,本申请所说的异常级别与计算机科学中常见的等级保护域相似并且支持等级保护域中涉及的概念。
运行在这四种异常级别中每种异常级别下的软件的示例如下。普通的用户应用程序运行在EL0对应的运行空间中;操作系统内核,例如Linux或Windows,可以运行在EL1 对应的运行空间中,操作系统内核通常被认为具有特权;管理程序(hypervisor)运行在EL2对应的运行空间中;低级别的固件,例如安全监视器运行在EL3对应的运行空间中。hypervisor也可以称为超级管理器。管理程序在使能状态下可以为一个或多个操作系统内核提供虚拟化服务。
固件(例如ARM可信固件)是处理器启动时运行的第一个东西。固件提供很多服务,例如,平台初始化、可信任操作系统的安装以及安全监视器的命令的路由等。该计算机的处理器中,CPU执行单元可以通过内存管理单元(memory management unit,MMU)来管理或访问存储器。例如,MMU可以执行地址映射以及提供内存访问授权等操作。
处理器中,不同异常级别对应的运行空间中运行的程序代码对存储器进行访问时, MMU进行不同的地址映射和不同的内存访问授权流程。
参照图5,图5为本申请实施例提供的一种地址转换关系的配置方法的流程示意,本申请实施例提供的地址转换关系的配置方法可以应用于计算机系统,如图6所示,本申请提供的计算机系统上可以部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM(例如可以是图6中所示的hypervisor,接下来的实施例也以VMM为hypervisor为例进行说明),所述TEE部署有安全隔离区SP和安全隔离区管理器SPM。
其中,VMM在虚拟化架构中相当于hypervisor或其他类型的虚拟监控装置。VMM可以部署在宿主机操作系统内部,也可以和宿主机操作系统分开部署。VMM=负责管理在其上运行的一台或多台虚拟机。
虚拟机(VM)包括客户操作系统(Guest OS)以及多种应用(包括CA)。虚拟机VM内可以包含容器(container),容器相当于应用。在其他一些实施例中,虚拟化层由轻量级虚拟化技术实现,例如libOS。一个libOS内通常包含一个应用,整个libOS是一个或多个库,和该应用链接成一个单地址空间镜像。本申请实施例通常以传统虚拟化技术实现的虚拟机为例,其他类型的虚拟化架构可参考虚拟机的实现。
ARM在v8.4的版本中,引入了SEL2这一新的CPU工作模式,支持TEE侧的硬件虚拟化技术。基于该技术,TEE侧可以和REE侧类似地构建虚拟化环境,创建多个SP(SecurePartition),每个SP中可以运行一个TEEos以及TA。
VM和SP的创建流程有多种形式,例如,REE侧每启动一个VM,TEE侧启动一个对应的SP,运行时VM和对应的SP进行交互,或者TEE侧先起多个SP,REE再起VM,运行时,VM选择其中一个SP进行交互。无论是哪种创建方式,运行时VM中CA和SP 中TA的交互需要利用共享内存来进行传输和接收数据。
本申请实施例提供的地址转换关系的配置方法可以包括:
501、所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。
本申请实施例中,在计算机系统上电之后,计算机系统中的ARM可信固件(ARMtrusted firmware,ATF)可以先初始化,在ATF初始化完成之后,可以跳转到SEL2,并完成SPM的初始化(需要说明的是,ARM在EL3中用软件的形式实现了一个SPM,SPM 可以支持TEE侧运行两个TEEos)。SEL2初始化完成之后,可以回到REE侧,进行EL2 hypervisor的初始化。
在hypervisor的初始化完成之后,可以建立好IPA到PA的地址转换规则,在VM想要申请用于和SP之间进行交互的共享内存时,位于该VM的Guest OS中的tzdriver可以申请VM和SP之间的共享内存,以便每一对VM和SP之间都有一个共享内存,不同对 VM/SP之间的共享内存是相互隔离的,tzdriver是TrusZone的驱动,工作在REE,用来与安全侧通信,每个VM中可以部署一个tzdriver。具体的,tzdriver可以申请得到一段连续的IPA,以作为被分配至VM的IPA,在后续VM和对应的SP进行数据交互的过程中,可以将上述分配至VM的IPA可以转换为PA,并将转换后得到的PA作为VM和SP之间的共享内存。
本申请实施例中,在tzdriver为所在的VM申请得到一段连续的IPA之后,hypervisor 可以确定该连续的IPA分配至VM,且可以确定转换后得到的PA作为VM和SP之间的共享内存。Guest OS可以进一步配置第一层内存地址翻译过程中VA至IPA的地址转换关系,具体的,Guest OS可以将tzdriver申请得到的连续的IPA映射为VA,以建立VA至IPA的地址转换关系。在VM向SP传递数据的过程中,MMU可以基于内核空间中的Guest OS 或用户程序空间中的用户程序发送的VA,通过第一层内存地址翻译得到对应的IPA,并通过第二层内存地址翻译得到对应的PA,并将PA作为VM和SP之间的共享内存,来实现到SP的数据传递。
其中,内核空间中的操作系统或用户程序空间中的用户程序发送的地址可以称为VA,或者说,操作系统或用户程序可见的地址为VA;内存芯片的真实地址称为PA,VA映射至PA的过程中所使用的地址均可以称为IPA。
更具体的,所述REE部署有第一虚拟化转化表基址寄存器(virtualizationtranslation table base register,vttbr)_el2以及第一控制寄存器vtcr_el2,hypervisor可以在所述第一vttbr_el2 中配置用于进行REE侧的第二层内存地址翻译(stage 2translation)的页表的基址,在所述第一vtcr_el2中配置用于进行REE侧的第二层内存地址翻译的地址转换属性,在第二层内存地址翻译的过程中,hypervisor可以基于基址以及地址转换属性,将待翻译的IPA翻译得到对应的PA。
如图7所示,MMU在接收到VA后,在第一层内存地址翻译(stage-1)的过程中,可以将内核空间中的操作系统或用户程序空间中的用户程序发送的VA映射到IPA;在第二层内存地址翻译(stage-2)的过程中,MMU可以将IPA映射到PA。
在第二阶段的地址转换中,MMU使用的转换表的基址在第一vttbr_el2中被指定。例如,在第一vttbr_el2中指定存储器底部的一个连续的地址空间作为该转换表中的基址。
在第二阶段的地址转换中,MMU使用的一部分内存储地址转换规则在第一vtcr_el2 中被指定,第一vtcr_el2中配置有用于进行REE侧的第二层内存地址翻译的地址转换属性,地址转换属性可以规定但不限于内存页的大小等等,如图8所示,地址转换属性可以为 vtcr_el2中部分比特bit所规定,例如图8所示的(PS、TG0、SHO、IRGN0、ORGN0、RES0、SL0、T0SZ)等bit。
本申请实施例中,分配至VM的IPA通过地址转换规则转换得到的PA可以作为VM 和SP之间的共享内存,为了能使得SP侧也同样能够使用上述共享内存,在VM侧申请到共享内存之后,应当将共享内存的PA传递至SP侧,以便SP侧可以基于同样的PA对应的内存进行和VM的数据交互。在现有的实现中,hypervisor可以将PA直接传递至SP侧的SPM,之后SPM自己配置SP侧的IPA至PA的映射。本申请实施例中,hypervisor可以将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA 为内存地址。
也就是说,本实施例中,TEE侧的SPM直接将VM侧配置好的IPA至PA的地址映射关系(第一地址转换关系)作为SP侧自身的地址转换关系,在后续进行与VM的数据交互时,在进行第二层内存地址翻译(stage-2)的过程中,可以直接基于第一地址转换关系进行IPA至PA的映射,而不需要SPM重新进行PA至IPA的地址转换关系的构建。
接下来首先描述,hypervisor如何将第一地址转换关系传递至SPM,以及SPM在接收到第一地址转换关系之后,如何基于第一地址转换关系进行第二层内存地址翻译(stage-2) 相关的翻译页表的配置。
在一种实现中,hypervisor可以将第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
本申请实施例中,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译的页表的基址、在所述第一vtcr_el2中配置的用于进行 REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
具体的,hypervisor可以将在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取上述信息。关于SPM如何基于SMC指令的触发来从所述通用寄存器中获取所述第一地址转换关系,可以基于现有的实现,这里不再赘述。
在一种实现中,在TEE侧建立共享内存之前,hypervisor可以将在所述第一vttbr_el2 中配置的用于进行REE侧的第二层内存地址翻译的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性写入通用寄存器,并基于SMC 指令触发所述SPM从所述通用寄存器中获取上述信息。
更具体的,上述基址和地址转换属性可以在REE侧VM启动时,hypervisor发送启动请求至SP时,通过通用寄存器传递至SPM。或者,VM(具体可以是tzdriver)在申请一片连续的供VM使用的IPA之后,通过通用寄存器传递至SPM。
接下来首先描述,hypervisor基于第一地址转换关系进行第二层内存地址翻译(stage-2) 相关的翻译页表的配置。
本申请实施例中,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述SPM可以将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
在一种实现中,REE侧VM启动之后,为了在TEE侧启动与该VM相应的SP,所述 SPM可以接收hypervisor发送的启动请求,所述启动请求除了指示在TEE侧启动SP之外,还用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二 vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种实现中,VM(具体可以是tzdriver)在申请一片连续的供VM使用的IPA之后,通过通用寄存器传递至SPM,SPM再将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
本申请实施例中,将TEE侧SP的第二vttbr_el2和REE侧对应VM的第一vttbr_el2的基址配置成相同的,以使得SP和VM共享非安全的Stage-2页表。VM中传递给SP的 IPA,SP可以直接适用,使得SP中IPA-PA的地址翻译和VM中IPA-PA的内存地址翻译规则是一致的。
本申请实施例中,参照图9,所述SPM可以将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM 时,基于所述第二地址映射关系进行VA到IPA的地址转换。SP可以基于第一地址映射关系中分配至所述VM的IPA,建立共享内存对应的第一层内存地址翻译Stage-1的页表映射,并把页表项中的ns bit设置成1,保证共享内存对应的VA在走MMU翻译的时候,Stage-2 会自动选择第二vttbr_el2作为页表基址寄存器,从而采用非安全的Stage-2页表进行翻译。当SP中的TEEos需要访问安全内存时,由于对应的Stage-1页表项中的ns bit设置为0, Stage-2的地址翻译会自动选择vsttbr_el2作为基址。
此外,为了实现Stage-2页表的共享,SP中的第二vtcr_el2也需要有和VM中第一vtcr_el2 相同的配置。这就要求,EL2的hypervisor还可以把VM的第一vtcr_el2的值(地址转换属性) 传递给SPM,以便SPM将地址转换属性写入至所述第二vtcr_el2。
应理解,在进行第二vtcr_el2的配置过程中,第二vtcr_el2上NSA和NSW这两个bit对于 REE侧的VM意义不大,但对于TEE侧的SP就有如下含义:当NSA为0时,通过第二vttbr_el2 指向的页表翻译出的物理地址落在安全内存中;而当NSA为1时,翻译出的物理地址落在非安全内存中。针对本申请实施例中的场景,TEE侧的第二vtcr_el2中的NSA需配置成1。当NSW为0时,第二vttbr_el2指向的页表需存储在安全内存中;而当NSW为1时,页表需存储在非安全内存中。同样地,针对本申请实施例中的场景,TEE侧的第二vtcr_el2中的NSW 需配置成1。因此,SP的第二vtcr_el2寄存器的地址转换属性在配置成和对应的VM的第一vtcr_el2相同的基础上,还需要将vtcr_el2种的NSA和vtcr_el2中的NSW这两个bit置为1。
在一种实现中,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。
参照图10,TEE侧的Stage-2 MMU具有两个基址寄存器第二vttbr_el2和第二vsttbr_el2 (图中标记为vttbr_el2和vsttbr_el2),第二vttbr_el2和第二vsttbr_el2分别对应非安全和安全的地址翻译,经过vttbr_el2翻译得到的物理内存落到非安全内存中,经过vsttbr_el2翻译得到的物理内存落到安全的内存中。在VM向SP传递数据的过程中,在stage 1阶段, MMU可以基于REE侧的ttbr0_el1以及ttbr1_el1进行地址翻译,在stage 2阶段,MMU可以基于REE侧的vttbr_el2进行地址翻译。在SP向VM传递数据的过程中,在stage 1阶段,可以基于TEE侧的ttbr0_el1以及ttbr1_el1进行地址翻译,在stage 2阶段,可以基于TEE侧的vttbr_el2进行地址翻译。
本申请实施例中,一方面,VM侧配置的针对于不同的VM/SP对可使用的共享内存(物理地址PA)之间是隔离的,本申请实施例中SPM可以复用VM侧的IPA至PA的地址转换关系,使得不同SP/VM之间的数据交互过程中的共享内存之间的隔离;另一方面,由于SPM直接复用VM侧的IPA至PA的地址转换关系,从而简化了SPM建立IPA至VA 的地址映射关系的过程。
本申请实施例提供了一种地址转换关系的配置方法,所述方法应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述方法包括:所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM 在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。通过上述方式,简化了SPM建立IPA至VA的地址映射关系的过程。
本申请实施例还提供了一种计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述VMM用于将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。
在一种可能的实现中,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。
在一种可能的实现中,所述REE部署有第一虚拟化转化表基址寄存器vttbr_el2以及第一控制寄存器vtcr_el2,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译(stage 2translation)的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,其中,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
在一种可能的实现中,所述SPM用于将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM时,基于所述第二地址映射关系进行VA到IPA的地址转换。
在一种可能的实现中,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述SPM用于将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
在一种可能的实现中,所述SPM用于接收所述VMM发送的启动请求,所述启动请求用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二 vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
在一种可能的实现中,所述VMM用于将所述第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
本实施例中计算机系统的相关描述可以参照上述实施例中图1至图10以及相关实施例的描述,这里不再赘述。
本申请还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包含计算机指令,当计算机指令被计算机执行时可以实现上述实施例中的中断处理方法。
请参考图11,为本实施例提供的一种计算机系统的结构示意图。该计算机系统可以为终端设备(或者称之为智能终端)或者服务器。如图所示,该计算机系统包括通信模块810、传感器820、用户输入模块830、输出模块840、处理器850、音视频输入模块860、存储器870以及电源880。进一步的,本实施例提供的计算机系统还可以包括NPU890。
通信模块810可以包括至少一个能使该计算机系统与通信系统或其他计算机系统之间进行通信的模块。例如,通信模块810可以包括有线网络接口,广播接收模块、移动通信模块、无线因特网模块、局域通信模块和位置(或定位)信息模块等其中的一个或多个。这多种模块均在现有技术中有多种实现,本申请不一一描述。
传感器820可以感测系统的当前状态,诸如打开/闭合状态、位置、与用户是否有接触、方向、和加速/减速,并且传感器820可以生成用于控制系统的操作的感测信号。
用户输入模块830,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及接收与系统的用户设置以及功能控制有关的信号输入等。用户输入模块830包括触控面板和/或其他输入设备。
输出模块840包括显示面板,用于显示由用户输入的信息、提供给用户的信息或系统的各种菜单界面等。可选的,可以采用液晶显示器(liquid crystal display,LCD)或有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板。在其他一些实施例中,触控面板可覆盖显示面板上,形成触摸显示屏。另外,输出模块840还可以包括音频输出模块、告警器以及触觉模块等。
音视频输入模块860,用于输入音频信号或视频信号。音视频输入模块860可以包括摄像头和麦克风。
电源880可以在处理器850的控制下接收外部电力和内部电力,并且提供系统的各个组件的操作所需的电力。
处理器850包括一个或多个处理器,例如,处理器850可以包括一个中央处理器和一个图形处理器。中央处理器在本申请中具有多个核,属于多核处理器。这多个核可以集成在同一块芯片上,也可以各自为独立的芯片。
存储器870存储计算机程序,该计算机程序包括操作系统程序872和应用程序871等。典型的操作系统如微软公司的Windows,苹果公司的MacOS等用于台式机或笔记本的系统,又如谷歌公司开发的基于的安卓系统等用于移动终端的系统。前述实施例提供的方法可以通过软件的方式实现,可以认为是操作系统程序872的具体实现。存储器870可以是以下类型中的一种或多种:闪速(flash)存储器、硬盘类型存储器、微型多媒体卡型存储器、卡式存储器(例如SD或XD存储器)、随机存取存储器(random access memory,RAM)、静态随机存取存储器(static RAM,SRAM)、只读存储器(read only memory,ROM)、电可擦除可编程只读存储器(electrically erasable programmable readonly memory,EEPROM)、可编程只读存储器 (programmable ROM,PROM)、回滚保护存储块(replay protected memoryblock,RPMB)、磁存储器、磁盘或光盘。在其他一些实施例中,存储器870也可以是因特网上的网络存储设备,系统可以对在因特网上的存储器870执行更新或读取等操作。
处理器850用于读取存储器870中的计算机程序,然后执行计算机程序定义的方法,例如处理器850读取操作系统程序872从而在该系统运行操作系统以及实现操作系统的各种功能,或读取一种或多种应用程序871,从而在该系统上运行应用。
存储器870还存储有除计算机程序之外的其他数据873。
NPU 890作为协处理器挂载到主处理器850上,用于执行主处理器850给它分配的任务。在本实施例中,NPU890可以被人脸识别TA的一个或多个子线程调用从而实现人脸识别中涉及的部分复杂算法。具体的,人脸识别TA的子线程在主处理器850的多个核上运行,然后主处理器850调用NPU890,NPU890实现的结果再返回给主处理器850。
以上各个模块的连接关系仅为一种示例,本申请任意实施例提供的地址转换关系的配置方法也可以应用在其它连接方式的终端设备或者服务器中,例如所有模块通过总线连接。
图12是本实施例提供的一种NPU900的结构示意图。NPU900与主处理器和外部存储器相连。NPU900的核心部分为运算电路903,通过控制器904控制运算电路903提取存储器中的数据并进行数学运算。
在一些实现中,运算电路903内部包括多个处理引擎(process engine,PE)。在一些实现中,运算电路903是二维脉动阵列。运算电路903还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在另一些实现中,运算电路903是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路903从权重存储器902中取矩阵B相应的数据,并缓存在运算电路903的每一个PE上。运算电路903从输入存储器901中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)908中。
统一存储器906用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器905(例如direct memory access controller,DMAC)被搬运到权重存储器902中。
输入数据也通过存储单元访问控制器905被搬运到统一存储器906中。
总线接口单元910(bus interface unit,BIU)用于AXI(advanced extensibleinterface)总线与存储单元访问控制器905和取指存储器909(instruction fetchbuffer)的交互。
总线接口单元910用于取指存储器909从外部存储器获取指令,还用于存储单元访问控制器905从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
存储单元访问控制器905主要用于将外部存储器中的输入数据搬运到统一存储器906 或将权重数据搬运到权重存储器902中或将输入数据数据搬运到输入存储器901中。
向量计算单元907通常包括多个运算处理单元,在需要的情况下,对运算电路903的输出做进一步处理,如向量乘、向量加、指数运算、对数运算、和/或大小比较等等。
在一些实现中,向量计算单元907能将经处理的向量存储到统一存储器906中。例如,向量计算单元907可以将非线性函数应用到运算电路903的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元907生成归一化的值、合并值,或二者均有。在一些实现中,经处理的向量能够用作运算电路903的激活输入。
与控制器904连接的取指存储器909用于存储控制器904使用的指令。
统一存储器906,输入存储器901,权重存储器902以及取指存储器909均为On-Chip存储器。图中的外部存储器与该NPU硬件架构独立。
需要说明的是,本实施例提供的地址转换关系的配置方法也可以应用于非终端的计算机设备,例如云端服务器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者其他网络设备等)执行本申请图5实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (16)

1.一种地址转换关系的配置方法,其特征在于,所述方法应用于计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,所述方法包括:
所述VMM将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。
2.根据权利要求1所述的方法,其特征在于,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。
3.根据权利要求1或2所述的方法,其特征在于,所述REE部署有第一虚拟化转化表基址寄存器vttbr_el2以及第一控制寄存器vtcr_el2,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译(stage 2translation)的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,其中,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述SPM将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM时,基于所述第二地址映射关系进行VA到IPA的地址转换。
5.根据权利要求3或4所述的方法,其特征在于,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述方法还包括:
所述SPM将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
6.根据权利要求5所述的方法,其特征在于,所述SPM将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2之前,所述方法还包括:
所述SPM接收所述VMM发送的启动请求,所述启动请求用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
7.根据权利要求3至6任一所述的方法,其特征在于,所述VMM将第一地址转换关系传递至所述SPM,包括:
所述VMM将所述第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
8.一种计算机系统,所述计算机系统上部署有富执行环境REE和可信执行环境TEE,所述REE部署有虚拟机VM和虚拟机管理器VMM,所述TEE部署有安全隔离区SP和安全隔离区管理器SPM,其中,
所述VMM用于将第一地址转换关系传递至所述SPM,所述第一地址转换关系包括被分配至所述VM的中间物理地址IPA到物理地址PA的地址转换关系,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第一地址转换关系进行IPA到PA的地址转换,所述PA为内存地址。
9.根据权利要求8所述的计算机系统,其特征在于,所述被分配至所述VM的IPA为连续的地址,且通过所述第一地址转换关系对所述被分配至所述VM的IPA进行地址转换后得到的所述PA为离散的地址。
10.根据权利要求8或9所述的计算机系统,其特征在于,所述REE部署有第一虚拟化转化表基址寄存器vttbr_el2以及第一控制寄存器vtcr_el2,所述第一地址转换关系包括:在所述第一vttbr_el2中配置的用于进行REE侧的第二层内存地址翻译(stage2translation)的页表的基址、在所述第一vtcr_el2中配置的用于进行REE侧的第二层内存地址翻译的地址转换属性以及分配至所述VM的IPA,其中,所述分配至所述VM的IPA可以基于所述基址以及所述地址转换属性所表达的内存转换规则转换为PA。
11.根据权利要求10所述的计算机系统,其特征在于,所述SPM用于将所述分配至所述VM的IPA传递至所述SP,所述SP用于基于所述分配至所述VM的IPA建立第二地址映射关系,所述第二地址转换关系包括虚拟地址VA到IPA的地址转换关系,以便所述SP在将数据传输至所述VM时,基于所述第二地址映射关系进行VA到IPA的地址转换。
12.根据权利要求10或11所述的计算机系统,其特征在于,所述TEE部署有第二vttbr_el2以及第二vtcr_el2;所述SPM用于将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2,以便所述SPM在将来自所述SP的数据传输至所述VM时,基于所述第二vttbr_el2中存储的所述基址以及所述第二vtcr_el2中存储的所述地址转换属性进行IPA到PA的地址转换。
13.根据权利要求12所述的计算机系统,其特征在于,所述SPM用于接收所述VMM发送的启动请求,所述启动请求用于指示所述SPM启动所述SP,并在启动所述SP时,将所述基址写入至所述第二vttbr_el2,以及将所述地址转换属性写入至所述第二vtcr_el2。
14.根据权利要求10至13任一所述的计算机系统,其特征在于,所述VMM用于将所述第一地址转换关系写入通用寄存器,并基于SMC指令触发所述SPM从所述通用寄存器中获取所述第一地址转换关系。
15.一种计算机系统,其特征在于,包括存储器和处理器,其中,
所述存储器用于存储计算机可读指令;所述处理器用于读取所述计算机可读指令并实现如权利要求1-7任意一项所述的方法。
16.一种计算机存储介质,其特征在于,存储有计算机可读指令,且所述计算机可读指令在被处理器执行时实现如权利要求1-7任意一项所述的方法。
CN202011265320.1A 2020-11-12 2020-11-12 一种地址转换关系的配置方法及计算机系统 Active CN114490450B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011265320.1A CN114490450B (zh) 2020-11-12 2020-11-12 一种地址转换关系的配置方法及计算机系统
PCT/CN2021/130316 WO2022100693A1 (zh) 2020-11-12 2021-11-12 一种地址转换关系的配置方法及计算机系统
EP21891213.7A EP4231160A4 (en) 2020-11-12 2021-11-12 METHOD FOR CONFIGURING ADDRESS TRANSLATION RELATIONSHIP, AND COMPUTER SYSTEM
US18/314,999 US20230281135A1 (en) 2020-11-12 2023-05-10 Method for configuring address translation relationship, and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011265320.1A CN114490450B (zh) 2020-11-12 2020-11-12 一种地址转换关系的配置方法及计算机系统

Publications (2)

Publication Number Publication Date
CN114490450A true CN114490450A (zh) 2022-05-13
CN114490450B CN114490450B (zh) 2024-10-11

Family

ID=81491502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011265320.1A Active CN114490450B (zh) 2020-11-12 2020-11-12 一种地址转换关系的配置方法及计算机系统

Country Status (4)

Country Link
US (1) US20230281135A1 (zh)
EP (1) EP4231160A4 (zh)
CN (1) CN114490450B (zh)
WO (1) WO2022100693A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115098245A (zh) * 2022-05-31 2022-09-23 北京旷视科技有限公司 任务处理方法、电子设备、存储介质及计算机程序产品
WO2024082700A1 (zh) * 2022-10-20 2024-04-25 华为技术有限公司 数据处理方法、终端设备及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522754A (zh) * 2018-11-28 2019-03-26 中国科学院信息工程研究所 一种移动终端可信隔离环境核心控制方法
US10564997B2 (en) * 2016-11-09 2020-02-18 Samsung Electronics Co., Ltd. Computing system for securely executing a secure application in a rich execution environment
CN115509677A (zh) * 2021-06-23 2022-12-23 华为技术有限公司 一种虚拟机与安全隔离区间的通信方法及相关装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592428B1 (en) * 2017-09-27 2020-03-17 Amazon Technologies, Inc. Nested page tables
US10671737B2 (en) * 2017-11-10 2020-06-02 Intel Corporation Cryptographic memory ownership table for secure public cloud
US20190205264A1 (en) * 2017-12-28 2019-07-04 Qualcomm Incorporated Memory management unit performance through cache optimizations for partially linear page tables of fragmented memory
CN109558211B (zh) * 2018-11-27 2023-03-21 上海瓶钵信息科技有限公司 保护可信应用与普通应用的交互完整性和保密性的方法
CN111400702B (zh) * 2020-03-24 2023-06-27 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564997B2 (en) * 2016-11-09 2020-02-18 Samsung Electronics Co., Ltd. Computing system for securely executing a secure application in a rich execution environment
CN109522754A (zh) * 2018-11-28 2019-03-26 中国科学院信息工程研究所 一种移动终端可信隔离环境核心控制方法
CN115509677A (zh) * 2021-06-23 2022-12-23 华为技术有限公司 一种虚拟机与安全隔离区间的通信方法及相关装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115098245A (zh) * 2022-05-31 2022-09-23 北京旷视科技有限公司 任务处理方法、电子设备、存储介质及计算机程序产品
WO2024082700A1 (zh) * 2022-10-20 2024-04-25 华为技术有限公司 数据处理方法、终端设备及系统

Also Published As

Publication number Publication date
EP4231160A4 (en) 2024-03-27
WO2022100693A1 (zh) 2022-05-19
US20230281135A1 (en) 2023-09-07
EP4231160A1 (en) 2023-08-23
CN114490450B (zh) 2024-10-11

Similar Documents

Publication Publication Date Title
US11868792B2 (en) Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
US8127098B1 (en) Virtualization of real mode execution
US7421533B2 (en) Method to manage memory in a platform with virtual machines
US7376949B2 (en) Resource allocation and protection in a multi-virtual environment
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US8966477B2 (en) Combined virtual graphics device
US10067777B2 (en) Supporting multiple operating system environments in computing device without contents conversion
US8661181B2 (en) Memory protection unit in a virtual processing environment
US8595723B2 (en) Method and apparatus for configuring a hypervisor during a downtime state
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
US20230281135A1 (en) Method for configuring address translation relationship, and computer system
WO2018085006A1 (en) Method and apparatus for managing resource access control hardware in a system-on-chip device
US20150370590A1 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US20160188354A1 (en) Efficient enabling of extended page tables
WO2022268150A1 (zh) 一种虚拟机与安全隔离区间的通信方法及相关装置
Vahidi et al. VETE: Virtualizing the Trusted Execution Environment
US20170185434A1 (en) Versatile input/output device access for virtual machines
US9766918B2 (en) Virtual system device identification using GPU to host bridge mapping
US10127064B2 (en) Read-only VM function chaining for secure hypervisor access
CN110383255B (zh) 用于管理对物理设备的客户分区访问的方法和计算设备
Banik et al. Understanding the BIOS and Minimalistic Design
KR20220157145A (ko) 가상화 시스템 및 가상화 시스템의 메모리 충돌 방지 방법
CN116611053A (zh) 可信执行环境实现方法及装置、终端设备
Vasudevan et al. Available Hardware Primitives

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
GR01 Patent grant