CN115905108A - 一种用于risc-v芯片的iopmp架构实现方法 - Google Patents
一种用于risc-v芯片的iopmp架构实现方法 Download PDFInfo
- Publication number
- CN115905108A CN115905108A CN202211493909.6A CN202211493909A CN115905108A CN 115905108 A CN115905108 A CN 115905108A CN 202211493909 A CN202211493909 A CN 202211493909A CN 115905108 A CN115905108 A CN 115905108A
- Authority
- CN
- China
- Prior art keywords
- iopmp
- cpu
- access
- access request
- slave device
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种用于RISC‑V芯片的IOPMP架构实现方法,属于芯片设计技术领域,所述芯片为SOC芯片,所述SOC芯片包括通过总线连接的主设备和从设备;所述方法包括:主设备的IOPMP接收到主设备的访问请求;主设备的IOPMP将预先存储的该主设备的ID附加在所述访问请求上以标识访问来源,并将该访问请求通过总线发送给从设备;从设备的IOPMP接收到主设备的访问请求,所述访问请求包括标识访问来源的ID;从设备的IOPMP根据预先存储的ID和访问权限的对应关系,进行访问控制。本发明节省了芯片中为数不多的PMP表项,简化了可信与非可信的切换过程,为可信应用提供了更加丰富的安全外设资源。
Description
技术领域
本发明涉及芯片设计技术领域,特别是指一种用于RISC-V芯片的IOPMP架构实现方法。
背景技术
随着社会数字化、信息化转型的不断发展,电子设备承担了越来越多重要的任务,例如:控制汽车行驶、收集指纹认证用户权限、使用用户浏览以及输入数据训练人工智能、校验用户密码后完成线上支付等等。人们在享受着上述便利的同时,也面临着恶意攻击带来的安全威胁。攻击者有机会窃取用户密钥、指纹等敏感数据,扰乱***的正常执行,造成重大生命、财产损失。为了应对这些挑战,可信执行环境这个概念被提了出来。
可信执行环境(Trusted Execution Environment,TEE),通过软硬件方法在中央处理器中构建一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。即使攻击者攻破了***中的非可信部分,依然无法干扰可信执行环境中的程序安全运行,无法窃取其中的敏感数据。目前Intel和ARM已经有了较为完善的方案来构建可信执行环境,RISC-V(第五代精简指令集计算机)作为一种开源指令集架构,对于我国的信息安全事业有重要意义,因此有必要提出一种用于RISC-V芯片的IOPMP(I/O Physical MemoryProtection,输入输出物理内存保护)架构,在RISC-V芯片上建立可信执行环境。
RISC-V芯片可以配置出16条PMP(Physical Memory Protection,物理内存保护)表项和M/S/U(Machine/Supervis/User,机器/监督/用户)三种特权模式(如图1所示),其中PMP表项能够限制CPU对物理地址空间的访问,而不同的特权模式拥有对CPU内部寄存器不同的访问权限、不同的指令执行权限。
最高特权等级的M模式运行着安全控制固件,安全控制固件可以配置只能被M模式修改的PMP寄存器,保护安全侧不被非安全侧篡改和窃密。非安全侧和安全侧的切换必须经过安全控制固件,当***运行在非安全侧时,PMP限制CPU对安全侧的访问,当要切换到安全侧时,先切换到M模式的安全控制固件修改PMP寄存器,放开CPU对安全侧的访问权限,然后跳转到安全侧执行。这种方案可以限制CPU对安全侧的访问,但是无法限制其他Master(主设备)。为了在RISC-V芯片上构建可信执行环境,需要IOPMP来限制各个Master对安全资源的访问。
SOC(System on Chip,片上***)芯片中,IOPMP与各ip核串接,Master发出的访问信号在经过IOPMP后会被加上一个标识访问来源的ID(身份标识),被访问模块可以根据该ID来过滤访问信号,从而保护敏感资源不被窃取或破坏。IOPMP的寄存器作为敏感资源,不能被任意修改,所以IOPMP的寄存器默认只能由安全侧的代码来配置,默认会过滤掉所有的非CPU配置请求,故通常用PMP保护IOPMP免受非安全侧的修改。这样每个IOPMP都需要一个PMP来保护,但是PMP的表项一般在16项以内,少量厂家会将PMP的表项扩充到32项,不过PMP的表项的增多会降低***整体运行速度,因此,PMP的表项数量限制了可被保护的IOPMP数量,也就限制了安全侧可用的安全外设数量。
发明内容
本发明要解决的技术问题是提供一种能够减少对PMP表项消耗的用于RISC-V芯片的IOPMP架构实现方法。
为解决上述技术问题,本发明提供技术方案如下:
一种用于RISC-V芯片的IOPMP架构实现方法,所述芯片为SOC芯片,所述SOC芯片包括通过总线连接的主设备和从设备,所述主设备包括CPU和至少一个其他主设备,所述CPU内设有PMP和安全控制固件,每个主设备与总线之间、以及需要保护的从设备与总线之间均串联有IOPMP,所述CPU的IOPMP通过所述PMP保护,其他设备的IOPMP不通过所述PMP保护;所述方法包括:
步骤1:主设备的IOPMP接收到主设备的访问请求;
步骤2:主设备的IOPMP将预先存储的该主设备的ID附加在所述访问请求上以标识访问来源,并将该访问请求通过总线发送给从设备;
步骤3:从设备的IOPMP接收到主设备的访问请求,所述访问请求包括标识访问来源的ID;
步骤4:从设备的IOPMP根据预先存储的ID和访问权限的对应关系,进行访问控制。
本发明具有以下有益效果:
本发明提出了一种用于RISC-V芯片的IOPMP架构实现方法,相较于其他设计,本发明的特点是可以改变CPU的ID,非安全侧和安全侧使用不同的ID,这样IOPMP即可根据ID值保护自身和串接的ip核免受CPU非安全侧或其他主设备的篡改而不需额外地配置大量PMP表项(仅CPU的IOPMP通过PMP保护,其他设备的IOPMP不需要通过PMP保护),节约PMP表项的同时简化了配置PMP的过程。因此,本发明能够减少对PMP表项的消耗,高效利用芯片算力,降低成本,简化可信与非可信执行环境的切换过程。
附图说明
图1为现有技术中RISC-V芯片可信执行环境的软件框图;
图2为本发明的用于RISC-V芯片的IOPMP架构的示意图;
图3为本发明的用于RISC-V芯片的IOPMP架构实现方法的流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
为了在RISC-V芯片上建立可信执行环境,本发明提出了一种用于RISC-V芯片的IOPMP架构实现方法,与传统方案相比,本发明减少了对PMP表项的消耗,高效利用了芯片算力,降低成本,简化了可信与非可信执行环境的切换过程。
本发明提供一种用于RISC-V芯片的IOPMP架构实现方法,如图2所示,所述芯片为SOC芯片,SOC芯片包括通过总线连接的主设备和从设备,主设备包括CPU和至少一个其他主设备,CPU内设有物理内存保护模块(PMP模块,后续均简称为PMP)和安全控制固件,每个主设备与总线之间、以及需要保护的从设备与总线之间均串联有输入输出物理内存保护模块(IOPMP模块,后续均简称为IOPMP)以用于保护相应的主/从设备,CPU的IOPMP通过PMP保护(具体保护方式为本领域公知常识,此处不再赘述),其他设备的IOPMP不通过PMP保护(具体保护方式参见后面的描述);如图3所示,所述方法包括:
步骤1:主设备的IOPMP接收到主设备的访问请求;
本步骤中,主设备既可以是CPU,也可以是其他主设备,其他主设备可以包括TEE全局配置单元、直接存储器访问模块(DMA模块,简称为DMA)中的至少一个。本发明中,从设备可以包括缓存、内存(如图2中示例的DDR(双倍速率同步动态随机存储器))中的至少一个。
步骤2:主设备的IOPMP将预先存储的该主设备的ID附加在所述访问请求上以标识访问来源,并将该访问请求通过总线发送给从设备;
本步骤中,主设备的IOPMP在访问请求上附加该主设备的ID后,将该附加有主设备ID的访问请求通过总线发送给从设备。若从设备需要保护已设有IOPMP,则执行后续流程;若从设备不需要保护未设有IOPMP,则按现有技术常规流程处理即可。
步骤3:从设备的IOPMP接收到主设备的访问请求,所述访问请求包括标识访问来源的ID;
本步骤中,可以理解的是,从设备既可以是前述只能被动响应的从设备,也可以是能主动发出请求但临时作为访问对象处于从属地位的主设备。
步骤4:从设备的IOPMP根据预先存储的ID和访问权限的对应关系,进行访问控制。
本步骤中,从设备的IOPMP预先存储有ID和访问权限的对应关系,具体可通过对从设备的IOPMP进行配置实现。
作为一种可选的实施例,所述步骤2中,CPU在安全侧和非安全侧时具有不同的ID;
所述步骤3中,访问请求为对当前从设备的IOPMP的配置请求;
此时,所述步骤4包括:
从设备的IOPMP判断所述访问请求中标识访问来源的ID是否为安全侧的CPU,若是,则允许配置,若否,则拒绝配置。
具体实施时,例如约定CPU在安全侧时ID为1,在非安全侧时ID为2,此时步骤4中,从设备的IOPMP判断访问请求(即配置请求)中ID是否为1(表示为安全侧的CPU),若是,则说明是安全侧的CPU要求进行配置,故允许配置;若否,则说明是非安全侧的CPU或者其他主设备要求进行配置,故拒绝配置。
作为另一种可选的实施例,所述步骤3中,访问请求为对当前从设备的访问请求;
此时,所述步骤4包括:
从设备的IOPMP根据所述访问请求中标识访问来源的ID所对应的访问权限,对所述访问请求进行响应。
该种情况下,由于从设备的IOPMP预先存储有ID和访问权限的对应关系,故从设备的IOPMP可根据访问请求中标识访问来源的ID所对应的访问权限,对访问请求进行响应,例如若ID对应无访问权限,则拒绝访问;若ID对应存储空间局部区域有访问权限,且访问请求是针对该局部区域,则允许对该局部区域进行访问;若ID对应存储空间局部区域有访问权限,但访问请求是针对其他区域非该局部区域,则拒绝访问。
综上,本发明提出了一种用于RISC-V芯片的IOPMP架构实现方法,相较于其他设计,本发明的特点是可以改变CPU的ID,非安全侧和安全侧使用不同的ID,这样IOPMP即可根据ID值保护自身和串接的ip核免受CPU非安全侧或其他主设备的篡改而不需额外地配置大量PMP表项(仅CPU的IOPMP通过PMP保护,其他设备的IOPMP不需要通过PMP保护),节约PMP表项的同时简化了配置PMP的过程。因此,本发明能够减少对PMP表项的消耗,高效利用芯片算力,降低成本,简化可信与非可信执行环境的切换过程。
在本发明实施例中,为方便告知从设备的IOPMP当CPU为安全侧时其ID为多少,所述步骤1之前可以包括:
步骤101:上电时,处于M模式的安全控制固件预先设定CPU的ID信息,所述CPU的ID信息包括:当CPU处于安全侧时,CPU的ID为第一ID,当CPU处于非安全侧时,CPU的ID为第二ID,所述第一ID和第二ID不同;
步骤102:处于M模式的安全控制固件将所述CPU的ID信息写入除CPU以外其他主设备的IOPMP以及各从设备的IOPMP,并将CPU处于安全侧时对应的第一ID写入所述CPU的IOPMP作为该主设备的ID。
这样,经过上述步骤101-102,上电时整个芯片处于安全环境,由处于M模式的安全控制固件预先设定CPU的ID信息,并告知除CPU以外其他各设备的IOPMP,配置方便,安全性高。
进一步的,所述步骤102之后可以包括:
步骤103:当CPU在安全侧和非安全侧之间切换时,处于M模式的安全控制固件获知CPU即将跳转到安全侧还是非安全侧;
步骤104:处于M模式的安全控制固件根据CPU即将跳转到安全侧还是非安全侧,向所述CPU的IOPMP写入相应的ID作为该主设备的ID。
安全控制固件负责在安全侧与非安全侧切换时配置CPU的IOPMP寄存器来切换CPU的ID,仍以前述例子(约定CPU在安全侧时ID为1,在非安全侧时ID为2)进行说明,如果CPU即将从安全侧跳转到非安全侧,则向CPU的IOPMP写入ID=2作为CPU的ID;如果CPU即将从非安全侧跳转到安全侧,则向CPU的IOPMP写入ID=1作为CPU的ID。这样,经过上述步骤103-104,即可在芯片运行过程中及时改变CPU的ID,确保本发明方案顺利执行。
在本发明实施例中,对于前述步骤2,为方便在各主设备的IOPMP中预先存储该主设备的ID,所述步骤1之前可以包括:
步骤101’:上电时,处于M模式的安全控制固件预先设定除CPU以外其他主设备的ID;
步骤102’:处于M模式的安全控制固件将所述其他主设备的ID写入相应主设备的IOPMP作为该主设备的ID。
这样,经过上述步骤101’-102’,上电时整个芯片处于安全环境,由处于M模式的安全控制固件预先设定除CPU以外其他各主设备的ID并写入相应主设备的IOPMP,配置方便,安全性高。例如,可以设定TEE全局配置单元的ID为3;再例如,可以设定DMA按通道不同具有不同的ID,如DMA的通道0具有ID为4,DMA的通道x具有ID为5,从而便于按通道为DMA分配不同的访问权限。
RISC-V作为一种开源指令集架构,近年来受到了业界的持续关注与投入,对我国的芯片国产化有重要意义,而在数字化、信息化的今天,信息安全也在国家安全中占据重要战略地位,故本发明在RISC-V芯片上实现可信执行环境价值重大。
综上,本发明的用于RISC-V芯片的IOPMP架构实现方法,还具有以下优点:
1、相对于在单核上切换可信与非可信环境的其他传统方案来讲,节省了芯片中为数不多的PMP表项,简化了可信与非可信的切换过程,为可信应用提供了更加丰富的安全外设资源;
2、相对于在多核上分别运行可信与非可信环境的方案,充分利用了每个核心的算力,降低了成本,有着更强的通用性。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种用于RISC-V芯片的IOPMP架构实现方法,其特征在于,所述芯片为SOC芯片,所述SOC芯片包括通过总线连接的主设备和从设备,所述主设备包括CPU和至少一个其他主设备,所述CPU内设有PMP和安全控制固件,每个主设备与总线之间、以及需要保护的从设备与总线之间均串联有IOPMP,所述CPU的IOPMP通过所述PMP保护,其他设备的IOPMP不通过所述PMP保护;所述方法包括:
步骤1:主设备的IOPMP接收到主设备的访问请求;
步骤2:主设备的IOPMP将预先存储的该主设备的ID附加在所述访问请求上以标识访问来源,并将该访问请求通过总线发送给从设备;
步骤3:从设备的IOPMP接收到主设备的访问请求,所述访问请求包括标识访问来源的ID;
步骤4:从设备的IOPMP根据预先存储的ID和访问权限的对应关系,进行访问控制。
2.根据权利要求1所述的方法,其特征在于,所述步骤2中,CPU在安全侧和非安全侧时具有不同的ID;
所述步骤3中,所述访问请求为对当前从设备的IOPMP的配置请求;
所述步骤4包括:
从设备的IOPMP判断所述访问请求中标识访问来源的ID是否为安全侧的CPU,若是,则允许配置,若否,则拒绝配置。
3.根据权利要求1所述的方法,其特征在于,所述步骤3中,所述访问请求为对当前从设备的访问请求;
所述步骤4包括:
从设备的IOPMP根据所述访问请求中标识访问来源的ID所对应的访问权限,对所述访问请求进行响应。
4.根据权利要求1所述的方法,其特征在于,所述步骤1之前包括:
步骤101:上电时,处于M模式的安全控制固件预先设定CPU的ID信息,所述CPU的ID信息包括:当CPU处于安全侧时,CPU的ID为第一ID,当CPU处于非安全侧时,CPU的ID为第二ID,所述第一ID和第二ID不同;
步骤102:处于M模式的安全控制固件将所述CPU的ID信息写入除CPU以外其他主设备的IOPMP以及各从设备的IOPMP,并将CPU处于安全侧时对应的第一ID写入所述CPU的IOPMP作为该主设备的ID。
5.根据权利要求4所述的方法,其特征在于,所述步骤102之后包括:
步骤103:当CPU在安全侧和非安全侧之间切换时,处于M模式的安全控制固件获知CPU即将跳转到安全侧还是非安全侧;
步骤104:处于M模式的安全控制固件根据CPU即将跳转到安全侧还是非安全侧,向所述CPU的IOPMP写入相应的ID作为该主设备的ID。
6.根据权利要求1所述的方法,其特征在于,所述步骤1之前包括:
步骤101’:上电时,处于M模式的安全控制固件预先设定除CPU以外其他主设备的ID;
步骤102’:处于M模式的安全控制固件将所述其他主设备的ID写入相应主设备的IOPMP作为该主设备的ID。
7.根据权利要求1所述的方法,其特征在于,所述其他主设备包括TEE全局配置单元、DMA中的至少一个;
和/或,所述从设备包括缓存、内存中的至少一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493909.6A CN115905108A (zh) | 2022-11-25 | 2022-11-25 | 一种用于risc-v芯片的iopmp架构实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493909.6A CN115905108A (zh) | 2022-11-25 | 2022-11-25 | 一种用于risc-v芯片的iopmp架构实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905108A true CN115905108A (zh) | 2023-04-04 |
Family
ID=86477484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211493909.6A Pending CN115905108A (zh) | 2022-11-25 | 2022-11-25 | 一种用于risc-v芯片的iopmp架构实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905108A (zh) |
-
2022
- 2022-11-25 CN CN202211493909.6A patent/CN115905108A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6404283B2 (ja) | 安全な環境を初期化する命令を実行するシステムおよび方法 | |
TWI570589B (zh) | 用以提供受信任計算之裝置 | |
US7827326B2 (en) | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral | |
US9853974B2 (en) | Implementing access control by system-on-chip | |
US7392415B2 (en) | Sleep protection | |
US7010684B2 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US7139915B2 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US20180082057A1 (en) | Access control | |
CN111353162B (zh) | 基于TrustZone分核异步执行的主动可信计算方法及*** | |
CN107066887A (zh) | 具有敏感数据访问模式的处理装置 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
EP3961446A1 (en) | Method and apparatus for securely entering trusted execution environment in hyper-threading scenario | |
WO2021055290A1 (en) | Controlled access to data stored in a secure partition | |
CN112749397A (zh) | 一种***和方法 | |
CN110276214A (zh) | 一种基于从机访问保护的双核可信soc架构及方法 | |
CN115905108A (zh) | 一种用于risc-v芯片的iopmp架构实现方法 | |
Zhu et al. | Investigating TrustZone: A Comprehensive Analysis | |
CN117708832A (zh) | 高性能异构可信执行环境实现方法及*** | |
JP2002535745A (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 |