CN208848201U - 一种安全芯片 - Google Patents
一种安全芯片 Download PDFInfo
- Publication number
- CN208848201U CN208848201U CN201821354551.8U CN201821354551U CN208848201U CN 208848201 U CN208848201 U CN 208848201U CN 201821354551 U CN201821354551 U CN 201821354551U CN 208848201 U CN208848201 U CN 208848201U
- Authority
- CN
- China
- Prior art keywords
- processing unit
- central processing
- bootstrap
- chip
- configuration
- 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
Landscapes
- Microcomputers (AREA)
- Storage Device Security (AREA)
Abstract
本实用新型涉及一种安全芯片,包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),第一中央处理单元用于执行芯片引导程序,第二中央处理单元用于执行用户程序,第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序,以提高芯片安全。
Description
技术领域
本发明涉及一种安全芯片,特别涉及一种包含有中央处理单元的芯片,更具体地涉及在芯片中配置多个CPU分别用于执行引导程序和用户程序。
背景技术
应用于大多数场景下的单核CPU芯片,如MCU、DSP、FPGA芯片等。由于仅使用一个CPU完成芯片配置、芯片上电/复位引导、用户代码执行等功能,因此需要将CPU架构、指令系统、编程模型等信息公布给开发人员。
应用于特定场景下的双/多核CPU芯片,通常分为两类。第一类CPU芯片,主要面向复杂场景,需要在性能和功耗上寻求动态平衡,此类芯片内部集成2个不同性能的CPU,如使用ARM cortex M0+处理数据采集、整合及通讯等,使用ARM cortex M4处理运动传感等复杂数学密集型算法。第二类,面向实时控制等高性能场景,此列芯片内部集成多个相同高性能CPU,如使用TMS320C28x实现低延时控制、浮点计算等。虽然使用了多个CPU,至少有一个CPU会同时执行用户代码和引导程序,因此相关信息仍然需要公布给开发人员。
上述两种中央处理单元(Center Processor Unit,CPU)芯片及其他未描述的多数CPU芯片在启动时,都会需要加载一段引导程序用于配置芯片初始化信息。这些初始化信息通常包括但不限于包括:配置芯片的时钟频率、设定电压修调参数、配置IO信息等。其中,配置IO信息可用于配置专用引脚信息等,时钟频率可使芯片工作在特定频率。初始化信息中包含的这些特殊信息是芯片正常工作的必要条件。由于芯片要用于二次开发,芯片公开的数据手册中会将包含内部功能结构、指令系统信息,芯片攻击者将上述这些信息、初始化信息与电路信息结合在一起,可以获取芯片的漏洞,芯片攻击者可以读出芯片的特定信息或者使芯片进入非正常工作状态,进而威胁芯片安全。
除上述类型的芯片外,多数CPU芯片,由于应用较广,开发人员众多等原因,仍需将芯片的CPU架构、指令系统、编程模型等信息公布给开发人员。芯片攻击者通过对这些信息的深入分析及测试,往往可以发现的芯片漏洞实施篡改配置、并读取用户代码,使得原开发人员设计的用户程序、芯片设计厂商设计的引导程序等信息被窃取,破坏芯片安全。
发明内容
本发明在芯片中嵌入一个安全CPUS,此CPUS仅执行芯片引导程序,执行完毕后,系统切换给正常CPU控制,执行与用户程序相关的功能。由于CPUS完成的功能不公开给开发人员,也不影响其进行正常的设计开发,因此包括与CPUS指令系统在内的相关信息不需要公开,底层硬件安全性大大提升。
由于此CPUS执行的功能单一,架构和指令系统可以不采用复杂的设计,因此不会给芯片增加过高的开销。
为保证CPUS的安全性,CPUS和CPU采用不同的指令系统,以防止芯片攻击者通过分析公开的CPU指令信息获取CPUS的指令内容。
一种安全芯片,包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),所述第一中央处理单元用于执行芯片引导程序,所述第二中央处理单元用于执行用户程序,所述第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
所述第二中央处理单元无法访问所述第一中央处理单元的电路。
所述第一中央处理单元与第二中央处理单元的指令系统不同。
所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
一种安全芯片,包含第一类中央处理单元和第二类中央处理单元,所述第一类中央处理单元用于执行芯片引导程序,所述第二类中央处理单元用于执行用户程序,所述第一类中央处理单元执行完成引导程序后,指示第二类中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
所述第二类中央处理单元无法访问所述第一类中央处理单元的电路。
所述第一类中央处理单元与第二类中央处理单元的指令系统不同。
所述第一类中央处理单元可以包含一个或多个中央处理单元。
所述第二类中央处理单元可以包含一个或多个中央处理单元。
所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
附图说明
图1为现有单核CPU芯片架构图;
图2为中央处理单元CPU内部功能图;
图3为现有CPU工作流程;
图4为本发明的第一实施例;
图5为本发明实施例的流程图;
图6为本发明的CPU和CPUS的指令系统对比示意图;
图7为本发明的第二实施例。
具体实施方式
图1为一种简单的单核CPU芯片的实施架构图,只包含一个CPU。芯片100内部包含一个中央处理单元(CPU)101、电源模块(Power supply)102、时钟控制模块(Clockcontrol)103、计时器(Timer)104、随机存储器(RAM)105、非易失性存储器(NVM)106、数模转换器(ADC)107、通用输入/输出(GPIO)108、调试模块(Debug)109、通信接口(ConnectivityInterface)110等模块。其中,CPU101用于处理数据,执行引导程序和用户程序等。
图2是CPU101的内部功能架构,包含指令寄存器1011、指令译码器1012和控制单元1013、算数逻辑单元1014、程序计数器1015和寄存器组1016等模块。指令寄存器1011用于存放指令操作码,指令寄存器的输出送到指令译码器1012。指令译码器1012对该指令进行译码,译码的结果送到控制单元1013。控制单元1013根据指令译码结果,发出一系列的定时控制信号,控制单片机的各部件进行相应的工作,执行指令。算数逻辑单元1014是完成运算的电路,能进行加法、乘法等算数和逻辑运算,运算是在指令译码器1012的控制下进行的。程序计数器1015存放着下一条要执行的指令在存储器106中的地址。寄存器组1016用于存放数据。CPU执行指令的过程为,首先从存储器106中读出指令,送入指令寄存器1011保存,然后送到指令译码器1012对指令进行译码,译码结果送到控制单元1013,由控制单元1013产生各种定时信号和控制信号,再送到各个部件去进行相应的操作。
引导程序通常存储于非易失性存储ROM\EEPROM\Flash等存储之一,存储中的一段地址空间用于存储引导程序,另一段地址用于存储用户程序。一个常见的包含CPU的芯片的工作流程为,芯片复位后,CPU开始工作,首先CPU从存储器中读入引导程序,放在指令寄存器中,执行引导程序,引导程序执行完成后,CPU再开始执行非引导程序。执行引导程序实际上是对芯片进行初始化配置,这些配置包含但不限于包含如下内容:配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO等。这些配置信息的执行顺序上,没有优先级要求,不同芯片设计厂商设计的芯片其引导程序执行的功能会有差异。
图3中执行的引导程序和用户程序,均由同一个CPU完成,即引导程序与用户程序使用同一套指令系统。由于该指令系统的公开性,若芯片攻击者芯片攻击者得到引导程序的机器码,则可根据公开资料,分析出芯片详细的引导过程,其中涉及系统关键寄存器、调试协议、配置数据等芯片敏感信息,这些信息通常是芯片设计厂商需要保护的内容。进而威胁芯片安全。
实施例一
本发明的一种安全芯片的结构形式如图4所示。芯片200中包含常见模块外,还包含第一中央处理单元CPUS260和第二中央处理单元CPU201。CPUS260内部结构与CPU101的内部结构相似,CPUS与CPU相比可能位数少,ALU复杂度低,寄存器数量少。CPUS260用于执行引导程序,引导程序的功能包括但不限于这些程序:配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置等基本功能。CPUS260耦接至CPU201,CPUS260执行引导程序完毕后,指示第二CPU201进行工作。第二CPU201执行与用户程序相关的功能。为保证引导程序和用户程序分离,第二CPU201不允许执行引导程序。
CPUS260中执行的引导信息是不希望被芯片攻击者获知的,而第二CPU201中存在芯片攻击者可以获取的用户指令信息。为降低由第二CPU201获得引导信息的可能性,因此,在安全芯片中,CPUS260执行完成引导程序后,指示第二CPU201进行工作,并不允许第二CPU201访问安全CPUS260的信息。
更进一步的,芯片设计厂商可以将CPU201和CPUS260作为独立的处理器来执行不同要求的指令,因此CPUS260和第二CPU201可以使用不同的指令系统。图6中,CPU201和CPUS260均为16bit的处理器,两者的累加运算使用不同的指令形式。CPU201的累加指令为ADD R0,#3,其指令系统对应的机器码为0011000000000011;CPUS260的累加指令为ADD#3,R0,其指令系统对应的机器码为0110001000110000。由此可见CPU201的指令格式为助记符+寄存器地址+数据,而CPUS260的指令格式为助记符+数据+寄存器地址。由于用户在多数情况下不需要了解CPUS260执行的引导程序,因此不需要公开CPUS260的指令系统。从而避免芯片信息被泄露。由于CPUS260和第二CPU201使用不同的指令系统工作,也进一步使得第二CPU201无法访问安全CPUS260的信息。
安全芯片中安全CPUS260执行的引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、安全中的一项或多项。
由于安全CPUS260完成的功能不需要公开给开发人员,也不影响其进行正常的设计开发,因此包括指令系统在内的相关信息不需要公开,底层硬件安全性大大提升。
由于此安全CPUS260执行的功能单一,架构和指令系统可以不采用复杂的设计,因此不会给芯片增加过高的开销。图5中列出的芯片内部需要进行的所有过程,由两个CPU协作完成,CPUS260执行引导程序,CPU201执行用户程序,即引导程序与用户程序使用不同指令系统。由于引导程序涉及到的过程用户不需要了解,因此CPUS260的架构和指令系统不需要公开。这样,即使芯片攻击者得到了引导程序的机器码,由于缺乏相关资料,将很难分析出底层硬件的敏感信息,芯片的安全性得到提高。
实施例二
本发明的另一种安全芯片的结构形式如图7所示。安全芯片中包含两个以上CPU,至少可以分为两类CPU。第一类的安全中央处理单元360用于执行引导程序,第一类安全中央处理单元360可以包含多个安全CPUS分别用于执行不同的引导程序。第二类中央处理单元301用于执行用户程序,第二类中央处理单元可以包含多个CPU,分别用于执行用户程序。图7中,第一类安全中央处理单元360,进一步包含CPUS-A3601、CPUS-B3602,CPUS-C3603。第二类中央处理单元进一步包含CPU-A3011、CPU-B3012、CPU-C3013。为保证引导程序和用户程序分离,第二类中央处理单元301不允许执行引导程序。
第一类中央处理单元360中执行的引导信息是不希望被芯片攻击者获知的,而第二类中央处理单元中存在芯片攻击者可以获取的用户指令信息。为降低由第二类中央处理单元获得引导信息的可能性,因此,在安全芯片中,第一类中央处理单元360执行完成引导程序后,指示第二类中央处理单元301进行工作,并不再允许第二类中央处理单元301访问第一类中央处理单元360的信息。
更进一步的第一类中央处理单元360与第二类中央处理单元301的指令系统不同。第一类中央处理单元和第二中央处理单元使用不同的指令系统工作,也进一步使得第二类中央处理单元无法访问第一类中央处理单元的信息。
本发明所述的安全芯片并不局限为某一类芯片,还包括含有中央处理单元的MCU芯片、FPGA芯片、DSP芯片、SOC芯片等,本领域技术人员应可理解包含中央处理单元的芯片均可运用本发明的技术对芯片进行安全设计。
根据上文实施方式为本发明较佳实施例及所运用技术原理。本领域技术人员应理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说,能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括其他等效实施例。
Claims (10)
1.一种安全芯片,其特征在于, 包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),所述第一中央处理单元用于执行芯片引导程序,所述第二中央处理单元用于执行用户程序,所述第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
2.根据权利要求1所述的安全芯片,其特征在于, 所述第二中央处理单元无法访问所述第一中央处理单元的电路。
3.根据权利要求2所述的安全芯片,其特征在于, 所述第一中央处理单元与第二中央处理单元的指令系统不同。
4.根据权利要求3所述的安全芯片,其特征在于, 所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
5.一种安全芯片,其特征在于, 包含第一类中央处理单元和第二类中央处理单元,所述第一类中央处理单元用于执行芯片引导程序,所述第二类中央处理单元用于执行用户程序,所述第一类中央处理单元执行完成引导程序后,指示第二类中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
6.根据权利要求5所述的安全芯片,其特征在于, 所述第二类中央处理单元无法访问所述第一类中央处理单元的电路。
7.根据权利要求6所述的安全芯片,其特征在于, 所述第一类中央处理单元与第二类中央处理单元的指令系统不同。
8.根据权利要求7所述的安全芯片,其特征在于, 所述第一类中央处理单元可以包含一个或多个中央处理单元。
9.根据权利要求7所述的安全芯片,其特征在于, 所述第二类中央处理单元可以包含一个或多个中央处理单元。
10.根据权利要求7所述的安全芯片,其特征在于, 所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201821354551.8U CN208848201U (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201821354551.8U CN208848201U (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN208848201U true CN208848201U (zh) | 2019-05-10 |
Family
ID=66357192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201821354551.8U Active CN208848201U (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN208848201U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858254A (zh) * | 2018-08-22 | 2020-03-03 | 北京芯愿景软件技术股份有限公司 | 一种安全芯片 |
-
2018
- 2018-08-22 CN CN201821354551.8U patent/CN208848201U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858254A (zh) * | 2018-08-22 | 2020-03-03 | 北京芯愿景软件技术股份有限公司 | 一种安全芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6526609B2 (ja) | プロセッサ | |
US10970192B2 (en) | Debugging support unit for microprocessor | |
US7266725B2 (en) | Method for debugging reconfigurable architectures | |
CN103207797A (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
US20130290693A1 (en) | Method and Apparatus for the Automatic Generation of RTL from an Untimed C or C++ Description as a Fine-Grained Specialization of a Micro-processor Soft Core | |
EP1429250A2 (en) | Digital processor with programmable breakpoint/watchpoint trigger generation circuit | |
CN104007954A (zh) | 处理器和用于处理器的控制方法 | |
KR20150130353A (ko) | 핫스왑가능 프로그램 메모리의 운영체제 커널 업데이트 동안의 전환 시간 최소화 | |
CN113535245A (zh) | 用于更快的启动过程的多处理器启动流程的方法、系统和设备 | |
CN208848201U (zh) | 一种安全芯片 | |
US6611796B1 (en) | Method and apparatus for combining memory blocks for in circuit emulation | |
CN114691594B (zh) | 一种基于非对称双核mcu设计的芯片架构及其实现方法 | |
CN105824696B (zh) | 一种具有定时中断功能的处理器装置 | |
Rodríguez et al. | Execution modeling in self-aware FPGA-based architectures for efficient resource management | |
US20110197182A1 (en) | Debugging parallel software using speculatively executed code sequences in a multiple core environment | |
JP2004334429A (ja) | 論理回路及びその論理回路上で実行するプログラム | |
CN109656758A (zh) | 用于异构双处理器系统芯片的调试方法及系统 | |
US8694975B2 (en) | Programming system in multi-core environment, and method and program of the same | |
Tumeo et al. | A reconfigurable multiprocessor architecture for a reliable face recognition implementation | |
Dahlstrom et al. | Migrating an OS scheduler into tightly coupled FPGA logic to increase attacker workload | |
CN111143273B (zh) | 一种片上系统 | |
CN110858254A (zh) | 一种安全芯片 | |
Danek et al. | Increasing the level of abstraction in FPGA-based designs | |
JPH0877035A (ja) | 中央処理装置及びマイクロコンピュータ | |
CN110162436A (zh) | 一种bios post的常规模式和诊断模式切换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 No.1 Courtyard Building, Gaolizhang Road, Haidian District, Beijing Patentee after: Beijing core vision software technology Co., Ltd Address before: 100095 No.1 Courtyard Building, Gaolizhang Road, Haidian District, Beijing Patentee before: Beijing Cellix Revealing Technology Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |