[发明专利]RISC架构保密电路及其方法在审
申请号: | 201610373968.8 | 申请日: | 2016-05-30 |
公开(公告)号: | CN107451493A | 公开(公告)日: | 2017-12-08 |
发明(设计)人: | 李璋辉;许登科 | 申请(专利权)人: | 珠海市一微半导体有限公司 |
主分类号: | G06F21/72 | 分类号: | G06F21/72 |
代理公司: | 广东朗乾律师事务所44291 | 代理人: | 闫有幸,杨焕军 |
地址: | 519000 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | risc 架构 保密 电路 及其 方法 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种RISC架构保密电路及其方法。
背景技术
在计算机中执行代码和读出代码是两个概念。CPU执行代码是将一串指令编码翻译成CPU动作,而读出代码则是获得这一串编码的数值。
基于数据和指令的存储结构,SOC中CPU的结构可以分为两大类:哈佛结构和冯诺依曼结构。本发明基于哈佛结构,哈佛结构处理器具有指令和数据分开的特性,读写数据指令(load/store)只通过数据通道发命令,取指令只通过指令通道。如果CPU要把存储器中的内容读出来则必须通过数据通道。
随着集成电路的发展,SOC应用到了一些更加特定的领域。这些SOC被用来执行一些特定的算法。如何保护固化在SOC中的这些算法变得尤为重要。目前的集成电路SOC一部分采用通用的存储器和CPU,不具备存储内容的保护功能,而且CPU可以读出自身执行的代码,不具备代码保护功能。另外一部分SOC将整个存储器全部保护,没有留出空间给第三方开发,缺少灵活性。还有一部分SOC具备对存储空间进行分块保护的功能,但不具备块之间代码互相调用的功能,块之间不可互相访问。
申请号为201110444179.6的中国专利申请公开了一种SOC芯片系统安全的存储保护控制器及方法,通过对存储空间进行划分,利用跳转保护单元,来判定当前运行的代码属于哪个代码空间,对规定的代码空间进行一些相应的权限配置。该技术方案与本申请存在的本质差别:该技术方案是根据跳转指令作为代码空间判断依据,而本申请则是以取指令地址作为判断依据。该技术方案存在一些局陷性:1、以跳转指令作为代码空间判断的情况下,程序开发时并不知道每个函数的编译后所属具体空间,编译器必须人为干预设置,且设置复杂,因些大型软件开发情况下很难实现;2、函数入口记录的配置项较多,硬件成本高。
发明内容
本申请针对SOC中保护存储内容的需求,发明一种可以保护存储内容的保密电路及相应的方法,实现非保护区可以执行保护区代码的功能,同时保证保护区代码不被读出;与此同时,在存储器的非保护区域还可以进行正常的代码开发,同时块之间还具备互相调用的功能。本发明由以下技术方案实现:
一种RISC架构保密电路,包括CPU、DMA、存储器及非易失性存储器;存储器的空间被划分为保护区域与非保护区域,从地址address_0到地址address_1为保护区域,从地址address_1到地址address_2为非保护区域;address_0、address_1、address_2分别存储在非易失性存储器中;CPU通过数据通道1和指令通道访问存储器,DMA数据通道2访问存储器;其特征在于:还包括数据过滤电路和指令监视电路,数据过滤电路过滤每一路数据通道,指令监视电路监视指令通道地址,并将指令信息输出到数据过滤电路中;数据过滤电路根据指令的区域信息对数据通道的数据进行过滤。
一种基于上述RISC架构保密电路的保密方法,其特征在于,包括以下步骤:
(1)撤消SOC的系统复位且CPU的复位没有马上撤消时,从非易失性存储器中读出三个地址address_0、address_1、address_2到指令监视电路和数据过滤电路的寄存器中;
(2)CPU复位撤消,开始启动;
(3)指令监视电路获取到最近一次取指令的地址(i_addr),取指令地址代表着当前CPU在运行哪个空间的指令。数据过滤电路比对每一个数据访问的地址,如果数据访问地址(d_addr)小于address_1,则访问的是保护区域,反之访问的是非保护区;当且仅当(i_addr>address_1)&&(d_addr<address_1)=1时,禁止访问保护区域;数据过滤电路对数据地址进行转换使之为固定值0xffffffff,数据通道返回0xffffffff地址的值,从而读不到真实地址的值;反之,数据过滤电路不对地址进行任何转换。
本发明的有益效果在于:数据过滤电路和指令监视电的整体电路设计可有效的起到保护区代码保护的作用。通过监视指令总线来确定当前运行空间,编译时只需将两个代码空间代码独立编译,不需要人为确定每个函数的入口地址。 保护空间放置保密代码,非保密空间放置非保密代码。因此编译器自身修改很小,不增加软件开发难度,软件实现简单。使得机器既可以使用算法,开放一部分存储空间给第三方开发,增加了SOC的应用场景和范围,又能够防止代码被读出,起到了存储器内容的保护作用。此外,硬件上对存储内容的保护比软件加密具备更大的安全性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海市一微半导体有限公司,未经珠海市一微半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610373968.8/2.html,转载请声明来源钻瓜专利网。