CN113486410B - 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 - Google Patents
一种保护数据安全的方法、cpu核、cpu芯片和电子设备 Download PDFInfo
- Publication number
- CN113486410B CN113486410B CN202110741546.2A CN202110741546A CN113486410B CN 113486410 B CN113486410 B CN 113486410B CN 202110741546 A CN202110741546 A CN 202110741546A CN 113486410 B CN113486410 B CN 113486410B
- Authority
- CN
- China
- Prior art keywords
- cpu
- logic core
- core
- address
- cpu logic
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 105
- 238000012795 verification Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
Abstract
本申请实施例提供了一种保护数据安全的方法、CPU核、CPU芯片和电子设备,其中方法应用于CPU核,CPU核包括多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,安全CPU逻辑核配置为允许访问安全存储空间,普通CPU逻辑核配置为仅允许访问普通存储空间;所述方法包括:响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;若当前CPU逻辑核为安全CPU逻辑核,为所述数据访问地址设置安全标识;基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;若当前CPU逻辑核为普通CPU逻辑核,从所述普通存储空间访问所述数据访问地址对应的数据。本申请实施例可以保护CPU芯片的数据安全,为CPU芯片的安全保障提供基础。
Description
技术领域
本申请实施例涉及处理器技术领域,具体涉及一种保护数据安全的方法、CPU核、CPU芯片和电子设备。
背景技术
CPU(central processing unit,中央处理器)芯片作为终端、云端服务器中的重要组成部分,CPU芯片的安全性对于终端、云端服务器的业务安全至关重要。尤其是随着云计算、区块链、机密计算等技术的普及,云端服务器部署了越来越多的业务,为了保障这些业务的安全性,提供服务于云端并能够实现安全保障的CPU芯片显得尤为重要。
处理数据是CPU芯片的主要作用,因此CPU芯片的数据安全保护方案是CPU芯片实现安全保障的基础。基于此,如何提供CPU芯片的数据安全保护方案,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种保护数据安全的方法、CPU核、CPU芯片和电子设备,以保护CPU芯片的数据安全,为CPU芯片的安全保障提供基础。
为实现上述目的,本申请实施例提供如下技术方案:
本申请实施例提供一种保护数据安全的方法,应用于CPU核,所述CPU核包括多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,所述安全CPU逻辑核配置为允许访问安全存储空间,所述普通CPU逻辑核配置为仅允许访问普通存储空间;所述方法包括:
响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;
若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识;基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;
若所述当前CPU逻辑核为所述普通CPU逻辑核,从所述普通存储空间访问所述数据访问地址对应的数据。
本申请实施例还提供一种CPU核,包括:
多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,所述安全CPU逻辑核配置为允许访问安全存储空间,所述普通CPU逻辑核配置为仅允许访问普通存储空间;
执行单元,用于响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识,以使得所述安全CPU逻辑核基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;若所述当前CPU逻辑核为所述普通CPU逻辑核,则使得所述普通CPU逻辑核从所述普通存储空间访问所述数据访问地址对应的数据。
本申请实施例还提供一种CPU芯片,包括上述所述的CPU核。
本申请实施例还提供一种电子设备,包括上述所述的CPU芯片。
本申请实施例提供的保护数据安全的方法,可在CPU核抽象安全CPU逻辑核和普通CPU逻辑核,安全CPU逻辑核配置为允许访问安全存储空间,普通CPU逻辑核配置为仅允许访问普通存储空间。从而在当前CPU逻辑核发出数据访问指令时,CPU核可响应于的数据访问指令,确定数据访问地址。若所述当前CPU逻辑核为所述安全CPU逻辑核,则可为所述数据访问地址设置安全标识,以标识当前是安全CPU逻辑核对所述数据访问地址进行数据访问;从而基于所述安全标识,当前CPU逻辑核至少能够从所述安全存储空间访问所述数据访问地址对应的数据。若所述当前CPU逻辑核为所述普通CPU逻辑核,则当前CPU逻辑核仅能从所述普通存储空间访问所述数据访问地址对应的数据。本申请实施例通过在CPU逻辑核中设置安全CPU逻辑核,并配置安全CPU逻辑核允许访问安全存储空间,而普通CPU逻辑核配置仅允许访问普通存储空间;并且在安全CPU逻辑核进行数据访问时,为安全CPU逻辑核的数据访问地址设置安全标识,以使得后续处理数据访问的系统器件能够实现访问权限的鉴别,从而使得安全CPU逻辑核能够在配置为允许访问安全存储空间的情况下,在实际的数据访问过程中实现访问安全存储空间中的数据。
可见,本申请实施例通过配置并实施安全CPU逻辑核访问安全存储空间中的数据,保证了CPU芯片在安全CPU逻辑核处理数据时的安全性,进而保障CPU芯片可通过安全CPU逻辑核处理需要安全保障的数据,保护了CPU芯片的数据安全。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为CPU芯片的结构示意图。
图1b为CPU核的工作模式示意图。
图2为CPU核抽象出CPU逻辑核情况下的架构示意图。
图3为本申请实施例提供的具有安全CPU逻辑核的CPU核架构示意图
图4为本申请实施例提供的保护数据安全的方法的流程图。
图5为本申请实施例提供的确定数据访问地址的流程图。
图6为本申请实施例提供的队列示意图。
图7为CR0控制寄存器的结构示意图。
图8为物理地址的地址位示例图。
图9为本申请实施例提供的保护数据安全的方法的示例图。
图10为具有安全CPU逻辑核的CPU核另一架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
CPU芯片是在CPU核的基础上,进一步集成更多功能器件的集成电路。图1a示例的示出了CPU芯片的可选结构。如图1a所示,该CPU芯片可以包括:多个CPU核(core)和系统总线;该多个CPU核例如图1a所示的core0至coreN。
CPU核是CPU芯片的运算和控制核心,是数据处理、程序运行的最终执行单元,主要用于执行CPU芯片的计算、数据处理等工作。
系统总线用于实现在CPU芯片内的各个功能器件之间传输数据信息和控制信息,以及实现CPU芯片与外部器件(例如输入输出设备)的交互。例如,CPU核可通过系统总线连接CPU芯片中集成的其他功能器件(例如,内存控制器等),以及CPU核外设置的共享缓存(例如L3级缓存)等。在一些实施例中,系统总线可以包括控制总线和数据总线,控制总线用于在CPU芯片的各个功能器件之间传输控制信息,数据总线用于在CPU芯片的各个功能器件之间传输数据信息、以及与外部器件进行数据交互。
需要说明的是,图1a所示CPU芯片的架构虽然仅示出了CPU核和系统总线,但是可以理解的是,CPU芯片还可基于设计需要集成其他的功能器件,并通过系统总线实现CPU芯片中功能器件之间的交互。
在保护CPU芯片的数据安全实现上,一种做法是在CPU芯片中集成专用于数据安全的安全处理器。该安全处理器可以通过系统总线与CPU核连接。安全处理器作为CPU芯片中集成的协处理器,可以具有独立的资源并具有极高的系统权限。在实现数据安全方面,安全处理器可以提供安全运行环境、并实现数据认证、数据签名和密码管理等服务,从而为CPU芯片提供数据安全保障。
虽然,在CPU芯片中集成专用于数据安全的安全处理器能够实现CPU芯片的数据安全保障,但是集成单独专用的安全处理器将增大CPU芯片的设计复杂度,提升工艺实现上的难度。
基于此,保护CPU芯片的数据安全的另一种做法是:设置CPU核的安全模式和普通模式,由安全模式下的CPU核负责CPU芯片的数据安全。
图1b示例性的示出了CPU核的工作模式示意图。如图1b所示,CPU核存在两种工作模式(即,普通模式和安全模式),任一个CPU核在同一时刻只运行其中的一种工作模式。CPU核的普通模式和安全模式在硬件资源上可以是完全隔离的,从而可在CPU核的安全模式下部署机密的可信计算服务,以为CPU芯片提供数据安全保障。
基于CPU核的安全模式保护数据安全可以理解为是:将安全处理器的工作转由安全模式的CPU核负责,从而可以不用在CPU芯片内集成单独专用的安全处理器。但是,CPU核设置安全模式和普通模式就涉及到CPU核的工作模式切换,这就需要设置专门的安全指令来实现CPU核在普通模式和安全模式下的切换。例如,当处于普通模式的CPU核需要执行可信计算服务时,就需要通过安全指令来将CPU核的工作模式切换到安全模式。可见,由CPU核的安全模式实现CPU芯片的数据安全保障,涉及到安全指令的指令开销以及CPU核的工作模式切换,这并不适合高并发的通用可信服务场景,限制了CPU芯片的应用。
可以看出,无论是采用专用安全处理器,还是基于CPU核的安全模式来实现CPU芯片的数据安全保障均会存在不同程度的问题。基于此,本申请实施例提供保护CPU芯片的数据安全的方案,以在适用高并发服务场景的情况下,基于CPU核的原有架构,保护CPU芯片的数据安全。
本申请实施例可利用CPU的超线程技术,在CPU核抽象出多个CPU逻辑核。在此情况下,以其中的一个CPU逻辑核作为负责数据安全的安全CPU逻辑核,从而实现CPU芯片的数据安全保障。下面将对本申请实施例提供的基于安全CPU逻辑核的数据安全方案进行介绍。
通常来说,超线程技术是利用特殊的硬件指令,在一个CPU核上抽象出多个CPU逻辑核,并让单个CPU逻辑核能使用线程级并行计算,进而兼容多线程操作系统和软件。进一步的,在一个CPU核上抽象的多个CPU逻辑核可共享一套物理执行资源,且每个CPU逻辑核具有完整的CPU架构状态,从而操作系统或用户程序能够在CPU逻辑核上调度内核线程或用户线程,提升CPU指令的并发处理能力,实现提供实时高效的服务,进而适用于高并发的服务场景。
图2示例性的示出了CPU核抽象出CPU逻辑核情况下的架构示意图。结合图1a和图2,图2所示的AS(Architecture State,CPU架构状态)对应抽象出的CPU逻辑核。下面以core0为例,对CPU核抽象出CPU逻辑核情况下的架构进行说明,CPU芯片内的其他CPU核(例如core1至coreN)的架构同理类推。
如图2所示,core0包括AS 100(即CPU逻辑核100)、AS 200(即CPU逻辑核200)、execute unit(执行单元)300、MMU(Memory Management Unit,内存管理单元)400、Cache(缓存)500、LAPIC(Local APIC,本地高级可编程中断控制器)101、和LAPIC 201。需要说明的是,图2仅以core0抽象出两个CPU逻辑核(AS 100和AS 200)为例进行说明,在实际实现中,core0也可以抽象出两个以上的CPU逻辑核。
在core0抽象出AS 100以及AS 200的情况下,AS 100以及AS 200可以被操作系统等软件识别为两个不同的处理器(此处指虚拟处理器)。在core0内,AS 100和AS 200为两个独立的CPU逻辑核,但是它们在运行过程中可共用core0内的execute unit 300、MMU 400和Cache 500。
其中,execute unit 300利用知识库完成某种任务的访问,并进行识别、论证、决策、判定,将获得的信息进行反馈,以修正和完善下一步的访问需求。继续参考图2,executeunit 300可以包括:多个ALU(algorithm logical unit,算术逻辑运算单元)、例如ALU301和302,AGU(address generation unit,地址生成单元)303、load store unit(装载存储单元)304;
其中,ALU301和302用于执行CPU核内的算术逻辑运算;AGU303负责转换CPU load(下载)/store(保存)指令的内存访问地址;load store unit 304,用于执行数据加载和数据保存功能;load store unit 304内部可以设置load queue(下载队列)和store queue(保存队列),其中,load queue用于执行数据加载功能,store queue用于执行数据保存功能。
在core0内,AS 100和AS 200进一步共享MMU 400。MMU 400用于虚拟地址到物理地址的映射,实现进程空间的内存隔离。在一些实施例中,当有地址信息被送到MMU中时,MMU可把地址信息和TLB(Translation Lookaside Buffer,转译后备缓冲器)中的所有条目同时(并行地)进行比较,如果在TLB查询到地址信息的映射地址,则输出映射地址为物理地址;如果未在TLB查询到地址信息的映射地址,则MMU查找页目录表,确定出物理地址。
在core0内,AS 100和AS 200进一步共用Cache 500;Cache 500可以认为是CPU核内设置的私有缓存。
另外需要说明的是,CPU逻辑核还可设置LAPIC,用于接收、保存中断信息。LAPIC可以是图2中的LAPIC 101、LAPIC 201的形式,为了便于管理,通常为两个不同的AS设定不同的LAPIC,如图2所示,AS 100可对应LAPIC101,AS 200可对应LAPIC 201。
在图2示例的一个CPU核抽象出多个CPU逻辑核的基础上,本申请实施例可在多个CPU逻辑核中配置负责数据安全的安全CPU逻辑核。例如,在core0中抽象出的两个CPU逻辑核时,本申请实施例可将其中一个CPU逻辑核确定为安全CPU逻辑核,另一个CPU逻辑核确定为普通CPU逻辑核。图3为本申请实施例提供的具有安全CPU逻辑核的CPU核架构示意图。参考图3,在core0抽象多个AS的基础上,安全CPU逻辑核可以是secure(安全)AS 110,而抽象的其他CPU逻辑核(例如AS 220)可以是普通CPU逻辑核。本申请实施例可由安全CPU逻辑核(例如secure AS 110)负责保护CPU芯片的数据安全。在一些实施例中,安全CPU逻辑核可以是从某一个CPU核(例如core0)抽象的CPU逻辑核中选择(例如随机选择)的一个CPU逻辑核。在另一些实施例中,本申请实施例也可将特定CPU核(例如core0)抽象的特定CPU逻辑核设置为安全CPU逻辑核,例如,将0号CPU逻辑核设置为安全CPU逻辑核,0号CPU逻辑核可以认为是core0中抽象出的第一个CPU逻辑核。
在一些实施例中,为便于区分安全CPU逻辑核与普通CPU逻辑核,本申请实施例可为安全CPU逻辑核设置安全逻辑核标记。需要进一步说明的是,每个CPU逻辑核都有各自唯一的逻辑核标记(thread_id),可以通过thread_id区分CPU逻辑核。在一些实施例中,本申请实施例可在硬件设置上,将安全CPU逻辑核的逻辑核标记(thread_id)设置为安全逻辑核标记(secure thread_id),并使得安全逻辑核标记不同于其他普通CPU逻辑核的逻辑核标记,以实现区分安全CPU逻辑核。安全逻辑核标记的具体形式,本申请实施例并不设限,例如,在设置0号CPU逻辑核为安全CPU逻辑核的情况下,secure thread_id的值可以为0号CPU逻辑核的原有逻辑核标记(thread_id),或者在0号CPU逻辑核的原有逻辑核标记基础上,新增特定标识。
基于前文论述,抽象出的CPU逻辑核之间可以共享一套硬件资源,因此,本申请实施例在设置安全CPU逻辑核的情况下,可使得安全CPU逻辑核与普通CPU逻辑核可以共享execute unit 310、MMU 410。在此基础上,为使得安全CPU逻辑核处理的数据处于安全环境,并且普通CPU逻辑核无法访问,从而保障安全CPU逻辑核处理数据时的数据安全,本申请实施例可将存储数据的存储空间(例如,cache、内存等)划分为安全存储空间和普通存储空间。其中,安全存储空间可配置为仅由安全CPU逻辑核访问,普通存储空间可配置为由普通CPU逻辑核访问。在进一步的一些实施例中,安全CPU逻辑核也可访问普通存储空间。
在可选实现中,安全存储空间和普通存储空间可以是存储空间中以不同地址范围隔离的存储区域。结合图3所示,存储空间的形式可以至少包括如下任一项:
CPU核内的私有缓存,私有缓存通过不同的地址范围隔离出安全私有缓存空间(例如,图3所示的secure Cache 510)和普通私有缓存空间(例如,图3所示的Cache 520),其中,secure Cache 510配置为仅由安全CPU逻辑核访问,Cache 520配置为可由普通CPU逻辑核访问,安全CPU逻辑核也可访问Cache520;
CPU核外的共享缓存,共享缓存通过不同的地址范围隔离出安全共享缓存空间(例如,图3所示的secure L3 Cache 610)和普通共享缓存空间(例如,图3所示的L3 Cache620);其中,secure L3 Cache 610配置为仅由安全CPU逻辑核访问,L3 Cache 620配置为可由普通CPU逻辑核访问,安全CPU逻辑核也可访问L3 Cache 620;
物理内存,物理内存中通过不同的地址范围隔离出安全内存空间(例如,图3所示的secure DRAM 710)和普通内存空间(例如,图3所示的DRAM 720);其中,secure DRAM 710配置为仅由安全CPU逻辑核访问,DRAM 720配置为可由普通CPU逻辑核访问,安全CPU逻辑核也可访问DRAM 720。物理内存一般设置在CPU芯片外部,由内存控制器700实现对物理内存的访问控制。
可以看出,本申请实施例在硬件上直接设置secure thread_id的值,以区分安全CPU逻辑核和普通CPU逻辑核;并且基于存储空间(例如cache、内存)不同的地址范围,在硬件上为安全CPU逻辑核隔离出安全存储空间,该安全存储空间可以是安全私有缓存空间(例如,secure Cache 510)、安全共享缓存空间(例如,secure L3 Cache 610)、安全内存空间(例如,secure DRAM 710),从而使得安全CPU逻辑核能够访问安全存储空间中的数据,保证了CPU芯片在安全CPU逻辑核处理数据时的安全性,进而保障CPU芯片可通过安全CPU逻辑核处理需要安全保障的数据,保护CPU芯片的数据安全。
基于上述论述,图4示出了本申请实施例提供的保护数据安全的方法的流程图,该方法可由CPU核执行。如图4所示,该方法可以包括如下步骤。
步骤S411、响应于当前CPU逻辑核的数据访问指令,确定数据访问地址。
在一些实施例中,步骤S411可以具体由CPU核内的execute unit执行。
当前CPU逻辑核可以视为是当前发出数据访问指令的CPU逻辑核;针对当前CPU逻辑核发出的数据访问指令,execute unit可响应该数据访问指令,确定出进行数据访问的数据访问地址。
步骤S412、若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识;基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据。
可以理解的是,在本申请实施例设置安全CPU逻辑核和普通CPU逻辑核的情况下,当前CPU逻辑核可能是安全CPU逻辑核,也可能是普通CPU逻辑核。由于本申请实施例配置安全CPU逻辑核可访问安全存储空间,而普通CPU逻辑核仅能访问普通存储空间,因此当前CPU逻辑核在安全CPU逻辑核和在普通CPU逻辑核的情况下,能够允许访问的存储空间是不同的。基于此,本申请实施例需要判断当前CPU逻辑核是否为安全CPU逻辑核。
在一些实施例中,CPU逻辑核均能以逻辑核标记进行标识,并且安全CPU逻辑核是以特定的安全逻辑核标记(secure thread_id)进行标识,因此本申请实施例可通过判断当前CPU逻辑核的逻辑核标记(thread_id)是否为安全逻辑核标记(secure thread_id),以实现判断当前CPU逻辑核是否为安全CPU逻辑核。也就是说,如果当前CPU逻辑核的thread_id为secure thread_id,则当前CPU逻辑核为安全CPU逻辑核,否则,当前CPU逻辑核为普通CPU逻辑核。
基于当前CPU逻辑核为安全CPU逻辑核的情况下,当前CPU逻辑核能够访问安全存储空间,本申请实施例需在execute unit识别出当前CPU逻辑核为安全CPU逻辑核时,对安全CPU逻辑核进行数据访问的数据访问地址进行标识,以使得后续处理数据访问的系统器件能够实现访问权限的鉴别。在一些实施例中,execute unit可在当前CPU逻辑核为安全CPU逻辑核时,为所述数据访问地址设置安全标识,以标记是安全CPU逻辑核在对该数据访问地址的数据进行访问。进而,安全CPU逻辑核能够基于所述安全标识,至少从安全存储空间访问所述数据访问地址对应的数据。
在进一步的一些实施例中,在普通存储空间也可由安全CPU逻辑核访问的情况下,如果所述数据访问地址为普通存储空间的地址,则安全CPU逻辑核也能够在所述数据访问地址设置安全标识的情况下,基于所述安全标识,从普通存储空间访问所述数据访问地址对应的数据。
步骤S413、若所述当前CPU逻辑核为所述普通CPU逻辑核,从所述普通存储空间访问所述数据访问地址对应的数据。
在当前CPU逻辑核为普通CPU逻辑核的情况下,本申请实施例可不对所述数据访问地址进行处理(例如,不在所述数据访问地址中设置安全标识);由于所述数据访问地址未设置安全标识,因此后续处理数据访问的系统器件能够鉴别到该数据访问地址仅能在普通存储空间中进行数据访问,无法在安全存储空间进行数据访问。例如,如果所述数据访问地址为普通存储空间的地址,则允许当前CPU逻辑核从所述普通存储空间访问所述数据访问地址对应的数据;而如果所述数据访问地址为安全存储空间的地址,则拒绝当前CPU逻辑核的数据访问。
本申请实施例提供的保护数据安全的方法,可在CPU核抽象安全CPU逻辑核和普通CPU逻辑核,安全CPU逻辑核配置为允许访问安全存储空间,普通CPU逻辑核配置为仅允许访问普通存储空间。从而在当前CPU逻辑核发出数据访问指令时,CPU核可响应于的数据访问指令,确定数据访问地址。若所述当前CPU逻辑核为所述安全CPU逻辑核,则可为所述数据访问地址设置安全标识,以标识当前是安全CPU逻辑核对所述数据访问地址进行数据访问;从而基于所述安全标识,当前CPU逻辑核至少能够从所述安全存储空间访问所述数据访问地址对应的数据。若所述当前CPU逻辑核为所述普通CPU逻辑核,则当前CPU逻辑核仅能从所述普通存储空间访问所述数据访问地址对应的数据。本申请实施例通过在逻辑核中设置安全CPU逻辑核,并配置安全CPU逻辑核允许访问安全存储空间,而普通CPU逻辑核配置仅允许访问普通存储空间;并且在安全CPU逻辑核进行数据访问时,为安全CPU逻辑核的数据访问地址设置安全标识,以使得后续处理数据访问的系统器件能够实现访问权限的鉴别,从而使得安全CPU逻辑核能够在配置为允许访问安全存储空间的情况下,在实际的数据访问过程中实现访问安全存储空间中的数据。
可见,本申请实施例通过配置并实施安全CPU逻辑核访问安全存储空间中的数据,保证了CPU芯片在安全CPU逻辑核处理数据时的安全性,进而保障CPU芯片可通过安全CPU逻辑核处理需要安全保障的数据,保护了CPU芯片的数据安全。
在一些实施例中,图4所示步骤S411确定的数据访问地址可以是物理地址。作为可选实现,图5示出了本申请实施例提供的确定数据访问地址的流程图。该流程可由CPU核内的execute unit(具体可以是AGU和load store unit),和MMU执行实现。参考图5,该方法可以包括如下步骤。
步骤S511、AGU接收数据访问指令之后,计算内存访问地址。
execute unit接收到当前CPU逻辑核的数据访问指令之后,AGU可计算出内存访问地址,所计算的内存访问地址可能是物理地址也可能是虚拟地址。
步骤S512、AGU将内存访问地址以及当前CPU逻辑核的thread_id写入load storeunit的entry(条目)。
AGU计算出内存访问地址后,可连同当前CPU逻辑核的thread_id一同保存到loadstore unit的entry中。entry可位于load store unit的queue(队列)中。在一些实施例中,load store unit内部设置有执行数据加载功能的load queue(加载队列)和执行数据保存功能的store queue(保存队列)。作为一种示例,图6示例性的示出了队列(queue)的示意图。如图6所示,load queue以及store queue分别具有多个entry,每个entry具备标记字段和地址字段,其中标记字段用于记录thread-id,地址字段用于记录AGU计算的内存访问地址(例如,图6所示的addr)。进而,在一些实施例中,AGU可从load queue和/或store queue中确定与当前CPU逻辑核对应的空闲的目标entry,该目标entry可以是load queue和/或store queue中任意的空闲entry,也可能在load queue和/或store queue中划定有当前CPU逻辑核对应的entry范围时,从该entry范围中选择的空闲entry。AGU可将内存访问地址写入目标entry中的地址字段,将当前CPU逻辑核的thread_id写入目标entry中的标记字段,以实现将内存访问地址以及当前CPU逻辑核的thread_id写入load store unit的entry。
步骤S513、load store unit基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址,若是,执行步骤S514,若否,执行步骤S515。
CPU逻辑核的工作模式可以包括分页模式和保护模式,通过寄存器(CR0,CR1,CR2,CR3)进行控制。寄存器(CR0,CR1,CR2,CR3)用于控制和确定CPU逻辑核的工作模式以及当前执行任务的特性。其中,CR0中含有控制CPU逻辑核的工作模式和状态的系统控制标志;CR1保留不用;CR2含有导致页错误的线性地址;CR3中含有页目录表对应的物理内存基地址。
在一些实施例中,load store unit可基于entry中写入的当前CPU逻辑核的thread_id,确定当前CPU逻辑核的寄存器(例如,CR0寄存器)的保护控制位,从而基于该寄存器的保护控制位,判断当前CPU逻辑核的工作模式是否为分页模式;若当前CPU逻辑核的工作模式不为分页模式(即分页模式未打开),则AGU写入entry的内存访问地址(例如,addr)为物理地址(即步骤S513的判断结果为是),本申请实施例可执行步骤S514;若当前CPU逻辑核的工作模式为分页模式(即分页模式已打开),则AGU写入entry的内存访问地址为进程的虚拟地址(即步骤S513的判断结果为否),本申请实施例可执行步骤S515。
在一些实施例中,本申请实施例可通过CR0寄存器的保护控制位的值,来判断当前CPU逻辑核的工作模式是否为分页模式。在一个示例中,图7示出了CR0控制寄存器的结构示意图。参考图7,CR0控制寄存器记录的工作模式包括PG(分页模式)和PE(保护模式),可通过CR0控制寄存器的PG值来判断当前CPU逻辑核的分页模式是否已打开;例如,PG值不等于0,则确定当前CPU逻辑核的工作模式为分页模式(即当前CPU逻辑核的分页模式已打开),PG值等于0,则当前CPU逻辑核的工作模式不为分页模式。当处于分页模式时,AGU写入的内存访问地址为虚拟地址;当不处于分页模式时,AGU写入的内存存访问地址为物理地址。
步骤S514、load store unit确定所述内存访问地址为所述数据访问地址。
步骤S515、load store unit将内存访问地址以及当前CPU逻辑核的thread_id传输给MMU。
步骤S516、MMU查询物理地址,将查询的物理地址反馈给execute unit。
在步骤S516的一些实施例中,MMU可判断所述内存访问地址(此时为虚拟地址)在TLB中是否存在映射关系;若是,则MMU可基于TLB的虚拟地址与物理地址的映射关系,查询到所述内存访问地址对应的物理地址,从而将查询的物理地址反馈给execute unit,以使得execute unit确定出当前CPU逻辑核进行数据访问的数据访问地址。若TLB不存在所述内存访问地址的映射关系,则MMU可基于当前CPU逻辑核的thread_id确定对应的CR3寄存器,从而在该CR3寄存器指向的页表查询到对应的物理地址。
基于图5所示流程,CPU核(例如CPU核内的execute unit)可确定出当前CPU逻辑核进行数据访问的数据访问地址(数据访问地址为物理地址的形式),进而在识别当前CPU逻辑核的thread_id为secure thread_id的情况下,为所述数据访问地址设置安全标识,以标记当前是安全CPU逻辑核基于所述数据访问地址进行数据访问。
在一些实施例中,本申请实施例在为所述数据访问地址设置安全标识时,可在所述数据访问地址中确定空闲的目标bit(比特)位置,然后在所述目标bit位置设置安全标识。例如,处理器的片内地址总线中很多bit都是空闲的,比如bit45/46/47等,因此物理地址中空闲的bit(比如bit46)可以作为安全标记位(secure bit)使用,即物理地址中空闲的bit可作为目标bit位置。图8示例性的示出了物理地址的地址位示例图,参照图8,48位的物理地址中可以定义0~45位为实际地址位(addr bit),46位为目标bit位置(secure bit),47位空闲。
在一些实施例,本申请实施例可以将所述目标bit位置的值设置为第一值,以实现在所述目标bit位置设置安全标识。示例的,所述第一值可以是1,也就是说,当secure bit为1时,指示数据访问地址对应是由安全CPU逻辑核进行数据访问。在进一步的一些实施例中,若当前CPU逻辑核的thread_id不是secure thread_id,则认定当前CPU逻辑核为普通CPU逻辑核,可将所述数据访问地址的目标bit位置的值设置为第二值,以实现不在所述目标bit位置设置安全标识。第二值不同于第一值,例如,当第一值为1时,第二值可以为0。
可以理解的是,所述目标bit位置可以基于不同的需求进行适应性设置,只要目标bit位置是物理地址中的空闲bit位置即可。在确定具体的目标bit位置后,可以通过硬件设置的方式,在安全CPU逻辑核的数据访问地址中设置安全标识。
在一个可选实现中,图9示出了本申请实施例提供的保护数据安全的方法的示例图。参考图9,当有CPU逻辑核发出数据访问指令问时,AGU可计算出对应的内存访问地址,将内存访问地址和CPU逻辑核的thread_id发送到load store unit的queue的entry中。queue包括多个entry,每个entry具有记录内存访问地址的地址字段、以及记录CPU逻辑核的thread_id的标记字段。
进而,load store unit可通过entry中记录的内容,判断CPU逻辑核所处的工作模式,若CPU逻辑核不处于分页模式,则AGU计算的内存访问地址为物理地址;若CPU逻辑核处于分页模式,则转由MMU查询物理地址。
MMU在查询物理地址时,MMU可在TLB中查找内存访问地址是否具有命中的映射关系;若是,则MMU可基于TLB查询得到物理地址;若否,则MMU基于CPU逻辑核的CR3寄存器指向的页表,查询得到对应的物理地址。
同时,load store unit还可以基于entry中写入的CPU逻辑核的thread_id是否为secure thread_id,以判断CPU逻辑核是否为安全CPU逻辑核;若CPU逻辑核为安全CPU逻辑核,则将物理地址中的空闲bit位作为secure bit,将secure bit的值设为1,以实现为物理地址设置安全标识;若CPU逻辑核为普通CPU逻辑核,则将物理地址中的secure bit的值设置为0。从而,在安全CPU逻辑核的情况下,传统的物理地址与物理地址中值为1的securebit可相结合,得到安全CPU逻辑核进行数据访问的系统地址(system address),即安全CPU逻辑核最终进行数据访问的物理地址。
在本申请其他可选的实施例中,所述安全CPU逻辑核还可以配置为允许访问普通存储空间,也就是说,安全CPU逻辑核具有访问普通存储空间和安全存储空间的权限,普通CPU逻辑核仅能访问普通存储空间。
在一些实施例中,安全存储空间至少包括:在CPU核内的安全私有缓存空间、在CPU核外的安全共享缓存空间、安全内存空间中的至少一种。当安全存储空间兼顾以上类型时,安全CPU逻辑核访问数据的顺序可以如下:
若安全私有缓存空间中不存在数据访问地址对应的数据时,则访问在CPU核外的安全共享缓存空间,若安全共享缓存空间不存在数据访问地址对应的数据时,则访问物理内存中的安全内存空间,从而在安全内存空间访问到数据。
图10示出了具有安全CPU逻辑核的CPU核另一架构示意图。结合图10所示,在本申请其他可选的实施例中,CPU核还可以响应于当前CPU逻辑核的中断信息读取指令,确定中断信息地址。若所述当前CPU逻辑核为所述安全CPU逻辑核,则为所述中断信息地址设置安全标识;基于设置安全标识的中断信息地址,当前CPU逻辑核可在安全LAPIC(例如,图10所示的Secure LAPIC),读取中断信息。其中,CPU核内设置有安全LAPIC和普通LAPIC,所述安全LAPIC仅允许安全CPU逻辑核读取中断信息,所述普通LAPIC允许普通CPU逻辑核读取中断信息。
进一步的,在本申请其他可选的实施例中,CPU核还可以响应于安全CPU逻辑核读取bootrom(启动接口)代码的指令,读取安全bootrom空间的启动接口代码。其中,所述安全bootrom空间被配置为仅允许安全CPU逻辑核访问。安全bootrom空间可以设置在CPU核外部,并仅允许安全CPU逻辑核访问。bootrom可以包含处理器在上电或复位时执行的第一个代码,在系统上电启动时,安全CPU逻辑核指向secure bootrom,使系统启动首先执行安全bootrom的代码,并锁定其他普通CPU逻辑核。
结合图10所示,在本申请的其他可选的实施例中,CPU核还可响应于可信操作系统(TEE OS)或者可信应用程序(TEE App)的安全校验请求,由安全CPU逻辑核对所述可信操作系统(TEE OS)或者可信应用程序(TEE App)进行校验。在本申请实施例中,安全CPU逻辑核可与TEE OS、TEE App进行交互。可信TEE(Trusted Execution Environment可信执行环境)OS和TEE App运行在安全CPU逻辑核心上,普通操作系统(OS)和普通应用程序(APP)则运行在普通CPU核上,TEE OS、TEE App和普通OS、普通App的运行环境相互隔离。当TEE OS发出运行操作指令时,安全CPU逻辑核响应运行操作指令,进行数据访问操作,在此过程中,普通CPU逻辑核没有操作权限,普通CPU逻辑核只能在普通OS的执行环境中进行操作。
本申请实施例能够在同一CPU核内同时运行安全CPU逻辑核和普通CPU逻辑核,在提供实时高效的可信服务的情况下,能够适用于高并发的通用可信服务场景,并且通过安全CPU逻辑核保护CPU芯片的数据安全保障。
结合图3和图10所示,本申请实施例提供的CPU核可以包括:
多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,所述安全CPU逻辑核配置为允许访问安全存储空间,所述普通CPU逻辑核配置为仅允许访问普通存储空间;
执行单元,用于响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识,以使得所述安全CPU逻辑核基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;若所述当前CPU逻辑核为所述普通CPU逻辑核,则使得所述普通CPU逻辑核从所述普通存储空间访问所述数据访问地址对应的数据。
在一些实施例中,所述CPU逻辑核以逻辑核标记进行标识;其中,所述安全CPU逻辑核以安全逻辑核标记进行标识,所述安全逻辑核标记不同于普通CPU逻辑核的逻辑核标记。
在一些实施例中,执行单元用于为所述数据访问地址设置安全标识,包括:在所述数据访问地址中确定空闲的目标bit位置,在所述目标bit位置设置安全标识。
在一些实施例中,执行单元用于在所述目标bit位置设置安全标识包括:
将所述目标bit位置的值设置为第一值;
在进一步的一些实施例中,执行单元还用于:若所述当前CPU逻辑核为所述普通CPU逻辑核,将所述数据访问地址中目标bit位置的值设置为第二值。
在一些实施例中,执行单元可以包括:
地址生成单元,用于基于当前CPU逻辑核的数据访问指令,计算内存访问地址;
装载存储单元,用于基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址;其中,若所述内存访问地址为物理地址,则所述内存访问地址为所述数据访问地址;若所述内存访问地址为虚拟地址,则控制内存管理单元查询所述内存访问地址映射的物理地址,以将查询到的物理地址确定为所述数据访问地址。
在一些实施例中,装载存储单元,用于基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址,包括:
基于当前CPU逻辑核的寄存器的保护控制位,判断当前CPU逻辑核的工作模式是否为分页模式,若是,则所述内存访问地址为虚拟地址,若否,则所述内存访问地址为物理地址。
在一些实施例中,装载存储单元维护有队列,所述队列包括多个条目,所述条目包括记录内存访问地址的地址字段,以及记录逻辑核标记的标记字段;所述地址生成单元,还用于:
从所述队列中确定与所述当前CPU逻辑核对应的空闲的目标条目;
将所述内存访问地址记录到所述目标条目的地址字段,以及,将所述当前CPU逻辑核的逻辑核标记,记录到所述目标条目的标记字段。
在一些实施例中,所述装载存储单元还用于:
读取所述目标条目中的标记字段记录的逻辑核标记;
其中,若所读取的逻辑核标记为安全逻辑核标记,则所述当前CPU逻辑核为所述安全CPU逻辑核;若所读取的逻辑核标记不为安全逻辑核标记,则所述当前CPU逻辑核为所述普通CPU逻辑核。
在一些实施例中,所述安全存储空间和所述普通存储空间为存储空间中以不同地址范围隔离的存储区域。
在一些实施例中,所述存储空间至少包括如下任一项:
在CPU核内的私有缓存,所述私有缓存通过不同的地址范围隔离出安全私有缓存空间和普通私有缓存空间;
在CPU核外的共享缓存,所述共享缓存通过不同的地址范围隔离出安全共享缓存空间和普通共享缓存空间;
物理内存,所述物理内存中通过不同的地址范围隔离出安全内存空间和普通内存空间。
在进一步的一些实施例中,本申请实施例提供的CPU核还可用于:
响应于当前CPU逻辑核的中断信息读取指令,确定中断信息地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述中断信息地址设置安全标识;基于设置安全标识的中断信息地址,在安全LAPIC读取中断信息;其中,所述CPU核内设置有安全LAPIC和普通LAPIC,所述安全LAPIC仅允许安全CPU逻辑核读取中断信息,所述普通LAPIC允许普通CPU逻辑核读取中断信息;
和/或,响应于安全CPU逻辑核读取启动接口代码的指令,读取安全启动接口空间的启动接口代码;其中,所述安全启动接口空间被配置为仅允许安全CPU逻辑核访问;
和/或,响应于可信操作系统或者可信应用程序的安全校验请求,由安全CPU逻辑核对所述可信操作系统或者可信应用程序进行校验。
本申请实施例还提供一种CPU芯片,该芯片可以包括上述所述的CPU核。在本申请实施例中,该CPU核具有上述抽象出的安全CPU逻辑核和普通CPU逻辑核。该CPU核中器件的功能可参照前文相应部分的描述。
本申请实施例还提供一种电子设备,该电子设备可以包括上述所述的CPU芯片;该电子设备可以是终端设备,也可以是云端服务器设备。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (21)
1.一种保护数据安全的方法,其特征在于,应用于CPU核,所述CPU核包括多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,所述安全CPU逻辑核配置为允许访问安全存储空间,所述普通CPU逻辑核配置为仅允许访问普通存储空间;所述方法包括:
响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;
若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识;基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;
若所述当前CPU逻辑核为所述普通CPU逻辑核,从所述普通存储空间访问所述数据访问地址对应的数据;
其中,所述存储空间至少包括在CPU核内的私有缓存,所述私有缓存通过不同的地址范
围隔离出安全私有缓存空间和普通私有缓存空间,所述安全存储空间至少包括所述安全私
有缓存空间。
2.根据权利要求1所述的保护数据安全的方法,其特征在于,所述CPU逻辑核以逻辑核标记进行标识;其中,所述安全CPU逻辑核以安全逻辑核标记进行标识,所述安全逻辑核标记不同于所述普通CPU逻辑核的逻辑核标记。
3.根据权利要求2所述的保护数据安全的方法,其特征在于,若所述当前CPU逻辑核的逻辑核标记为安全逻辑核标记,则所述当前CPU逻辑核为所述安全CPU逻辑核;若所述当前CPU逻辑核的逻辑核标记不为安全逻辑核标记,则所述当前CPU逻辑核为所述普通CPU逻辑核。
4.根据权利要求1所述的保护数据安全的方法,其特征在于,所述为所述数据访问地址设置安全标识包括:
在所述数据访问地址中确定空闲的目标bit位置,在所述目标bit位置设置安全标识。
5.根据权利要求4所述的保护数据安全的方法,其特征在于,所述在所述目标bit位置设置安全标识包括:
将所述目标bit位置的值设置为第一值;
所述方法还包括:
若所述当前CPU逻辑核为所述普通CPU逻辑核,将所述数据访问地址中目标bit位置的值设置为第二值。
6.根据权利要求1-5任一项所述的保护数据安全的方法,其特征在于,所述数据访问地址包括物理地址,所述响应于当前CPU逻辑核的数据访问指令,确定数据访问地址,包括:
基于当前CPU逻辑核的数据访问指令,计算内存访问地址;
基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址;
若所述内存访问地址为物理地址,则确定所述内存访问地址为所述数据访问地址;
若所述内存访问地址为虚拟地址,则查询所述内存访问地址映射的物理地址,将查询到的物理地址确定为所述数据访问地址。
7.根据权利要求6所述的保护数据安全的方法,其特征在于,所述基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址包括:
基于当前CPU逻辑核的寄存器的保护控制位,判断当前CPU逻辑核的工作模式是否为分页模式,若是,则所述内存访问地址为虚拟地址,若否,则所述内存访问地址为物理地址。
8.根据权利要求6所述的保护数据安全的方法,其特征在于,所述CPU核内部维护有队列,所述队列包括多个条目,所述条目包括记录内存访问地址的地址字段,以及记录逻辑核标记的标记字段;所述方法还包括:
从所述队列中确定与所述当前CPU逻辑核对应的空闲的目标条目;
将所述内存访问地址记录到所述目标条目的地址字段,以及,将所述当前CPU逻辑核的逻辑核标记,记录到所述目标条目的标记字段。
9.根据权利要求8所述的保护数据安全的方法,其特征在于,所述方法还包括:
读取所述目标条目中的标记字段记录的逻辑核标记;
其中,若所读取的逻辑核标记为安全逻辑核标记,则所述当前CPU逻辑核为所述安全CPU逻辑核;若所读取的逻辑核标记不为安全逻辑核标记,则所述当前CPU逻辑核为所述普通CPU逻辑核。
10.根据权利要求1所述的保护数据安全的方法,其特征在于,所述安全存储空间和所述普通存储空间为存储空间中以不同地址范围隔离的存储区域。
11.根据权利要求10所述的保护数据安全的方法,其特征在于,所述存储空间还至少包括如下任一项:
在CPU核外的共享缓存,所述共享缓存通过不同的地址范围隔离出安全共享缓存空间和普通共享缓存空间;
物理内存,所述物理内存中通过不同的地址范围隔离出安全内存空间和普通内存空间。
12.根据权利要求1所述的保护数据安全的方法,其特征在于,还包括:
响应于当前CPU逻辑核的中断信息读取指令,确定中断信息地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述中断信息地址设置安全标识;基于设置安全标识的中断信息地址,在安全本地高级可编程中断控制器LAPIC,读取中断信息;其中,所述CPU核内设置有安全LAPIC和普通LAPIC,所述安全LAPIC仅允许安全CPU逻辑核读取中断信息,所述普通LAPIC允许普通CPU逻辑核读取中断信息;
和/或,响应于安全CPU逻辑核读取启动接口代码的指令,读取安全启动接口空间的启动接口代码;其中,所述安全启动接口空间被配置为仅允许安全CPU逻辑核访问;
和/或,响应于可信操作系统或者可信应用程序的安全校验请求,由安全CPU逻辑核对所述可信操作系统或者可信应用程序进行校验。
13.一种CPU核,其特征在于,包括:
多个CPU逻辑核,所述多个CPU逻辑核包括安全CPU逻辑核和普通CPU逻辑核,所述安全CPU逻辑核配置为允许访问安全存储空间,所述普通CPU逻辑核配置为仅允许访问普通存储空间;
执行单元,用于响应于当前CPU逻辑核的数据访问指令,确定数据访问地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述数据访问地址设置安全标识,以使得所述安全CPU逻辑核基于所述安全标识,至少从所述安全存储空间访问所述数据访问地址对应的数据;若所述当前CPU逻辑核为所述普通CPU逻辑核,则使得所述普通CPU逻辑核从所述普通存储空间访问所述数据访问地址对应的数据;其中,所述存储空间至少包括在CPU核内的私有 缓存,所述私有缓存通过不同的地址范围隔离出安全私有缓存空间和普通私有缓存空间, 所述安全存储空间至少包括所述安全私有缓存空间。
14.根据权利要求13所述的CPU核,其特征在于,所述CPU逻辑核以逻辑核标记进行标识;其中,所述安全CPU逻辑核以安全逻辑核标记进行标识,所述安全逻辑核标记不同于普通CPU逻辑核的逻辑核标记。
15.根据权利要求13所述的CPU核,其特征在于,所述执行单元用于为所述数据访问地址设置安全标识,包括:
在所述数据访问地址中确定空闲的目标bit位置,在所述目标bit位置设置安全标识。
16.根据权利要求13-15任一项所述的CPU核,其特征在于,所述执行单元包括:
地址生成单元,用于基于当前CPU逻辑核的数据访问指令,计算内存访问地址;
装载存储单元,用于基于当前CPU逻辑核的工作模式,判断所述内存访问地址是否为物理地址;其中,若所述内存访问地址为物理地址,则所述内存访问地址为所述数据访问地址;若所述内存访问地址为虚拟地址,则控制内存管理单元查询所述内存访问地址映射的物理地址,以将查询到的物理地址确定为所述数据访问地址。
17.根据权利要求16所述的CPU核,其特征在于,所述装载存储单元维护有队列,所述队列包括多个条目,所述条目包括记录内存访问地址的地址字段,以及记录逻辑核标记的标记字段;所述地址生成单元,还用于:
从所述队列中确定与所述当前CPU逻辑核对应的空闲的目标条目;
将所述内存访问地址记录到所述目标条目的地址字段,以及,将所述当前CPU逻辑核的逻辑核标记,记录到所述目标条目的标记字段;
所述装载存储单元还用于:
读取所述目标条目中的标记字段记录的逻辑核标记;
其中,若所读取的逻辑核标记为安全逻辑核标记,则所述当前CPU逻辑核为所述安全CPU逻辑核;若所读取的逻辑核标记不为安全逻辑核标记,则所述当前CPU逻辑核为所述普通CPU逻辑核。
18.根据权利要求13所述的CPU核,其特征在于,所述安全存储空间和所述普通存储空间为存储空间中以不同地址范围隔离的存储区域;所述存储空间还至少包括如下任一项:
在CPU核外的共享缓存,所述共享缓存通过不同的地址范围隔离出安全共享缓存空间和普通共享缓存空间;
物理内存,所述物理内存中通过不同的地址范围隔离出安全内存空间和普通内存空间。
19.根据权利要求13所述的CPU核,其特征在于,所述CPU核还用于:
响应于当前CPU逻辑核的中断信息读取指令,确定中断信息地址;若所述当前CPU逻辑核为所述安全CPU逻辑核,为所述中断信息地址设置安全标识;基于设置安全标识的中断信息地址,在安全本地高级可编程中断控制器LAPIC,读取中断信息;其中,所述CPU核内设置有安全LAPIC和普通LAPIC,所述安全LAPIC仅允许安全CPU逻辑核读取中断信息,所述普通LAPIC允许普通CPU逻辑核读取中断信息;
和/或,响应于安全CPU逻辑核读取启动接口代码的指令,读取安全启动接口空间的启动接口代码;其中,所述安全启动接口空间被配置为仅允许安全CPU逻辑核访问;
和/或,响应于可信操作系统或者可信应用程序的安全校验请求,由安全CPU逻辑核对所述可信操作系统或者可信应用程序进行校验。
20.一种CPU芯片,其特征在于,包括如权利要求13-19任一项述的CPU核。
21.一种电子设备,其特征在于,包括如权利要求20所述的CPU芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741546.2A CN113486410B (zh) | 2021-06-30 | 2021-06-30 | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741546.2A CN113486410B (zh) | 2021-06-30 | 2021-06-30 | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486410A CN113486410A (zh) | 2021-10-08 |
CN113486410B true CN113486410B (zh) | 2023-11-21 |
Family
ID=77937286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110741546.2A Active CN113486410B (zh) | 2021-06-30 | 2021-06-30 | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486410B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114036084B (zh) * | 2021-11-17 | 2022-12-06 | 海光信息技术股份有限公司 | 一种数据访问方法、共享缓存、芯片系统和电子设备 |
CN113986778B (zh) * | 2021-11-17 | 2023-03-24 | 海光信息技术股份有限公司 | 一种数据处理方法、共享缓存、芯片系统及电子设备 |
CN117521054A (zh) * | 2022-07-30 | 2024-02-06 | 华为技术有限公司 | 电子装置和安全访问软件的方法 |
CN115587348B (zh) * | 2022-11-24 | 2023-04-07 | 中国人民解放军国防科技大学 | Pcie设备访存的可配置安全控制方法、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017028642A1 (zh) * | 2015-08-20 | 2017-02-23 | 深圳市中兴微电子技术有限公司 | 一种存储器访问控制方法和装置、计算机存储介质 |
WO2017177790A1 (zh) * | 2016-04-12 | 2017-10-19 | 华为技术有限公司 | 一种用于访问内存的方法和装置 |
CN109669884A (zh) * | 2017-10-16 | 2019-04-23 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102297383B1 (ko) * | 2014-09-25 | 2021-09-03 | 삼성전자주식회사 | 보안 데이터 처리 |
US10664179B2 (en) * | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
-
2021
- 2021-06-30 CN CN202110741546.2A patent/CN113486410B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017028642A1 (zh) * | 2015-08-20 | 2017-02-23 | 深圳市中兴微电子技术有限公司 | 一种存储器访问控制方法和装置、计算机存储介质 |
WO2017177790A1 (zh) * | 2016-04-12 | 2017-10-19 | 华为技术有限公司 | 一种用于访问内存的方法和装置 |
CN109669884A (zh) * | 2017-10-16 | 2019-04-23 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
Non-Patent Citations (1)
Title |
---|
[Linux]物理地址,虚拟地址,内存管理,逻辑地址之间的关系;Linux;《https://zhuanlan.zhihu.com/p/378943367 》;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113486410A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113486410B (zh) | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 | |
EP3716081B1 (en) | Memory protection with hidden inline metadata | |
TWI705353B (zh) | 用於容許安全通訊之積體電路、方法及製造物件 | |
US8296538B2 (en) | Storing secure mode page table data in secure and non-secure regions of memory | |
EP2537097B1 (en) | Storing secure mode page table data in secure and non-secure regions of memory | |
JP5914145B2 (ja) | メモリ保護回路、処理装置、およびメモリ保護方法 | |
US20140337585A1 (en) | Page table management | |
CN106663061B (zh) | 用于可编程逻辑的存储器的虚拟化 | |
JP5433349B2 (ja) | データプロセッサ | |
JPH08320829A (ja) | データ処理装置 | |
TW201042455A (en) | Method of providing extended memory protection | |
JP4945053B2 (ja) | 半導体装置、バスインターフェース装置、およびコンピュータシステム | |
US11586779B2 (en) | Embedded system and method | |
US20180121125A1 (en) | Method and apparatus for managing resource access control hardware in a system-on-chip device | |
JP2021507362A (ja) | 間接アクセスメモリコントローラ向けの保護機能を追加するための機器 | |
KR20220092372A (ko) | 상이한 실행 영역들에 걸친 런타임 메모리 격리를 위한 방법 및 장치 | |
EP3408749A1 (en) | Memory address translation management | |
CN113849262A (zh) | 用于无需复制而在虚拟机之间移动数据的技术 | |
RU2005115088A (ru) | Управление доступом устройства к памяти | |
US11009841B2 (en) | Initialising control data for a device | |
WO2022021446A1 (zh) | 一种内存保护方法及保护代理控制装置 | |
WO2023064590A1 (en) | Software indirection level for address translation sharing | |
JP5324676B2 (ja) | プロセッサ、バスインターフェース装置、およびコンピュータシステム | |
JP5380392B2 (ja) | 半導体装置、バスインターフェース装置、およびコンピュータシステム | |
JP2011180969A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |