芯片及芯片烧写方法与流程

文档序号:14518838阅读:2013来源:国知局
芯片及芯片烧写方法与流程

本发明实施例涉及芯片技术,尤其涉及一种芯片及芯片烧写方法。



背景技术:

目前芯片的关键数据、测试权限控制等信息基本使用一次性编程器件(onetimeprogrammable,简称otp)或微电容丝(efuse)等一次性编程器件来存储,otp/efuse器件自身的编程接口是由芯片外部的使能管脚(en)接口值来控制是否使能。

现有芯片中,默认芯片回片情况下,en管脚处于使能态,此时允许用户通过编程接口直接访问otp/efuse器件;当芯片测试完成后用户改变en管脚的值,从而禁止通过编程接口访问otp/efuse器件。

因为攻击者可以找到暴露在外部的en管脚从而重新激活otp/efuse器件的编程接口,进而获取隐藏在otp/efuse等一次性烧写器件中的重要信息,因此现有芯片的安全性较弱。



技术实现要素:

本发明实施例提供一种芯片及芯片烧写方法,用于解决现有芯片存在安全性较弱的问题。

第一方面,本发明实施例提供一种芯片,包括:选择器、一次性编程器件和控制器;其中,

所述控制器分别与所述选择器的选择端和所述一次性编程器件连接,所述控制器用于检测所述一次性编程器件的器件值,当所述一次性编程器件的器件值在第一预设范围内时,向所述选择器的选择端提供第一选择信号;

所述选择器的第一输入端用于接收访问数据,所述选择器的第二输入端用于接收预设无效值,所述选择器的输出端与所述一次性编程器件连接;

所述选择器用于,在所述选择端输入第一选择信号时,控制所述第二输入端接收的数据从所述选择器的输出端输出。

通过利用一次性编程器件仅能被烧写一次的特性,增加控制器,由控制器在芯片内部与选择器的选择端口连接,控制访问数据对芯片中一次性编程器件中内容的访问,当芯片已经被烧写验证后,可避免通过烧写通道对一次性编程器件中内容的访问,同时由于没有暴露在外的烧写使能端口,从而可提高芯片的安全性。

一种可能的设计中,所述控制器还用于,在所述一次性编程器件的器件值与第一预设数值相同时,向所述选择器的选择端提供第二选择信号;

所述选择器用于,在所述选择端输入第二选择信号时,控制所述第一输入端接收到的数据从所述选择器的输出端输出;

其中,所述第一预设数值不在所述第一预设范围内。

一种可能的设计中,芯片还包括:地址过滤器;

所述地址过滤器的输入端用于接收所述访问数据,所述地址过滤器的输出端与所述选择器的第一输入端连接;

在所述一次性编程器件的器件值与所述第一预设数值相同时,所述地址过滤器用于,使所述访问数据中访问地址在预设地址范围内的访问数据,经过所述地址过滤器的输出端输出。

通过进一步增加地址过滤器,可避免当裸片遗失时,芯片内的重要数据被获取,从而提高了芯片的安全性。

一种可能的设计中,所述访问地址在预设地址范围内的访问数据包括解锁指令,所述解锁指令用于将所述一次性编程器件的器件值写为密钥值;

其中,所述密钥值不在所述第一预设范围内。

通过烧写正确密钥值,使得能够正确烧写密钥值的用户才可实现芯片的烧写,避免了其他恶意用户对芯片的烧写,也保护了芯片中的重要信息。

一种可能的设计中,所述地址过滤器的过滤功能控制端口与所述控制器连接;

所述控制器还用于,在所述一次性编程器件的器件值与所述密钥值相同时,通过所述地址过滤器的过滤功能控制端口关闭所述地址过滤器的过滤功能,向所述选择器的选择端提供所述第二选择信号;

在所述一次性编程器件的器件值与所述密钥值相同时,所述地址过滤器还用于,使所有所述访问数据经过所述地址过滤器的输出端输出。

一种可能的设计中,所述访问数据还包括锁定指令,所述锁定指令用于将所述一次性编程器件的器件值写为第二预设数值;

其中,所述第二预设数值为所述第一预设范围内的任意值。

一种可能的设计中,所述一次性编程器件的器件值为所述一次性编程器件的预设存储地址内存储的数据。

下面介绍本发明实施例提供的一种芯片烧写方法,该应用于上述芯片中,具有相对应的技术特征和技术效果,本发明实施例对此不再赘述。

第二方面,本发明实施例提供一种芯片烧写方法,应用于如上所述的芯片,包括:

向所述芯片烧写访问数据,所述访问数据中包括锁定指令,所述锁定指令用于将所述芯片中的一次性编程器件的器件值烧写为第二预设数值;重启所述芯片;

其中,所述第二预设数值为所述第一预设范围内的任意值。

第三方面,本发明实施例提供一种芯片烧写方法,应用于如上所述的芯片,包括:

向所述芯片烧写第一访问数据,所述第一访问数据中包括解锁指令,所述解锁指令的访问地址在所述地址过滤器的预设地址范围内,所述解锁指令用于将所述一次性编程器件的器件值写为密钥值;重启所述芯片;

向所述芯片烧写第二访问数据,所述第二访问数据中包括锁定指令,所述锁定指令用于将所述芯片中的一次性编程器件的器件值烧写为第二预设数值;重启所述芯片;

其中,所述密钥值不在所述第一预设范围内,所述第二预设数值为所述第一预设范围内的任意值。

附图说明

图1为现有芯片的结构示意图;

图2为本发明实施例一提供的芯片的结构示意图;

图3为本发明实施例二提供的芯片的结构示意图;

图4为本发明实施例一提供的芯片的烧写方法的流程示意图;

图5为本发明实施例二提供的芯片的烧写方法的流程示意图。

具体实施方式

图1为现有芯片的结构示意图。如图1所示,现有的芯片包括一次性编程器件和二选一选择器,二选一选择器的两个输入端分别接收有效的访问数据和预设无效值,选择器的选择端口连接到芯片外部作为芯片的烧写使能端口接收使能信号。当芯片回片后,第一次烧写时,向烧写使能端口提供使能信号,控制二选一选择器将接收到的有效的访问数据输出给一次性编程器件,以完成烧写。当芯片烧写并测试完成后,向烧写使能端口提供非使能信号,控制二选一选择器将接收到的预设无效值输出给一次性编程器件,从而禁止再次访问一次性编程器件。

目前芯片的密钥值、测试权限控制等信息基本存储在一次性编程器件中,当攻击者找到芯片暴露在外的烧写使能端口时,可重新激活烧写使能端口,进而再次访问一次性编程器件以获取隐藏在一次性编程器件中的重要信息。因此,现有芯片由于存在暴露在外的烧写使能端口存在安全性较低的问题。为解决上述问题,本发明实施例提出一种芯片。下面结合具体实施例,对本发明实施例提供的芯片进行详细说明。

图2为本发明实施例一提供的芯片的结构示意图,如图2所示,芯片10包括:选择器20、一次性编程器件30和控制器40;其中,

控制器40分别与选择器20的选择端和一次性编程器件30连接,控制器40用于检测一次性编程器件30的器件值,当一次性编程器件30的器件值在第一预设范围内时,向选择器20的选择端提供第一选择信号;

选择器20的第一输入端用于接收访问数据,选择器20的第二输入端用于接收预设无效值,选择器20的输出端与一次性编程器件30连接;

选择器20用于,在选择端输入第一选择信号时,控制第二输入端接收的数据从选择器20的输出端输出。

具体的,如图2所示,芯片10可示例性的包括为选择器20、一次性编程器件30和控制器40。其中,选择器20的第一输入端用于接收访问数据,选择器20的第二输入端用于接收预设无效值,选择器20的输出端与一次性编程器件30连接。示例性的,选择器20的输出端与一次性编程器件30的烧写端口连接。在芯片烧写期间,当用户向一次性编程器件30内烧写代码程序时,控制器40控制选择器20将第一输入端输入的访问数据从选择器20的输出端输出,在芯片的非烧写期间,控制器40控制选择器20将第二输入端输入的预设无效值从选择器20的输出端输出。其中,第二输入端接收预设无效值示例性的可以为将第二输入端打结,即向第二输入端提供一固定数值,该固定数值无法访问一次性变成器件中的信息。

一次性编程器件30用于在接收访问数据时,根据访问数据将用户编写的程序代码烧写在一次性编程器件30中,以使一次性编程器件30在烧写结束后,可执行程序代码完成程序代码的预设功能。为避免在芯片外部设置烧写使能端口,本发明实施例在芯片中增加控制器40,控制器40分别与选择器20的选择端和一次性编程器件30连接,控制器40读取一次性编程器件30的器件值,并根据一次性编程器件30的器件值向选择器20的选择端输入不同的选择信号。

器件值示例性的可以为一次性编程器件30的预设存储地址内存储的数据。预设存储地址可以为一次性编程器件30的所有存储地址中的任意位置处、任意长度的存储地址。由于一次性编程器件的物理特性为在未烧写时,器件值读出来为“0”,而当器件值被烧写为其他值后,该值不能再改写。因此,控制器40可根据器件值确定选择器20的输出端所输出的数据来自用户输入的有效的访问数据或预设无效值。

示例性的,控制器40用于实时检测一次性编程器件30的器件值,当一次性编程器件30的器件值在第一预设范围内时,即一次性编程器件30的器件值表示当前一次性编程器件30已经烧写完成,不能再被烧写,控制器40向选择器20的选择端提供第一选择信号,当选择器20的选择端接收到的输入信号为第一选择信号时,控制选择器20的第二输入端接收的数据从选择器20的输出端输出,提供给一次性编程器件30。此时,恶意用户无法通过访问数据访问一次性编程器件30,无法获取一次性编程器件30中存储的重要数据。且由于一次性编程器件30的器件值无法被更改,导致芯片10的安全性得到保证。

可选的,由于一次性编程器件30的物理特性为在未烧写时,器件值读出来为“0”,因此,第一预设范围示例性的,可以为除0以外的其他值。

本发明实施例提供的芯片,利用一次性编程器件仅能被烧写一次的特性,通过增加控制器,由控制器在芯片内部与选择器的选择端口连接,控制访问数据对芯片中一次性编程器件中内容的访问,当芯片已经被烧写验证后,可避免通过烧写通道对一次性编程器件中内容的访问,同时由于没有暴露在外的烧写使能端口,从而可提高芯片的安全性。

进一步的,在图2所示实施例的基础上,对于芯片还未烧写时控制器的工作原理进行说明。

控制器40还用于在一次性编程器件30的器件值与第一预设数值相同时,向选择器20的选择端提供第二选择信号;

选择器20用于,在选择端输入第二选择信号时,控制第一输入端接收到的数据从选择器20的输出端输出;

其中,第一预设数值不在第一预设范围内。

具体的,当控制器40检测到一次性编程器件30的器件值与第一预设数值相同时,向选择器20的选择端提供第二选择信号,其中,第一预设数值可以是一次性编程器件30在未烧写时的器件值“0”,第二选择信号与第一选择信号可以示例性的分别为0和1,也可为其他不相同的数值。

当选择器20的选择端接收到的信号为第二选择信号时,选择器20控制将第一输入端接收到的数据从选择器20的输出端输出,即将有效的访问数据传输给一次性编程器件30,以实现一次性编程器件30的烧写过程。

具体的,第一预设数值不在第一预设范围内。

可选的,在上述任一实施例的的基础上,访问数据中还包括锁定指令,锁定指令用于将一次性编程器件的器件值写为第二预设数值,第二预设数值为第一预设范围内的任意值。

示例性的,在实际使用时,当芯片刚回片时,芯片中的控制器40检测到一次性编程器件30的器件值为“0”,即与第一预设数值相同,控制器40向选择器20的选择端提供第二选择信号,以使第一输入端接收到的访问数据从选择器20的输出端输出至一次性编程器件30,从而实现芯片烧写,在芯片烧写的同时,访问数据中还包括锁定指令,锁定指令用于将一次性编程器件的器件值写为第二预设数值,第二预设数值为第一预设范围内的任意值,示例性的,即与第一预设数值不同的其他任一数值。例如,可将一次性编程器件30的器件值烧写为“1”,以使控制器40可通过检测该器件值即可确定一次性编程器件30已烧写过,烧写完成后重新启动芯片。此时,控制器40检测到的一次性编程器件30的器件值示例性的为“1”,在第一预设范围内,因此,控制器40向选择器20的选择端提供第一选择信号,以使第二输入端接收到的无效预设值从选择器20的输出端输出至一次性编程器件30,从而避免了恶意攻击用户对一次性编程器件30的访问,保护了芯片中的重要数据,提高了芯片的安全性。

考虑到当芯片未被烧写时,若芯片丢失,此时控制器控制选择器将接收到的访问数据发送至一次性编程器件,即恶意用户可访问芯片中的一次性编程器件,以获取芯片一次性编程器件中可能存储的关键信息。为进一步提高芯片的安全性,在图2所示实施例的基础上,图3为本发明实施例二提供的芯片的结构示意图,如图3所示,芯片10还包括:地址过滤器50;

地址过滤器50的输入端用于接收访问数据,地址过滤器50的输出端与选择器20的第一输入端连接;

在一次性编程器件30的器件值与第一预设数值相同时,地址过滤器50用于,使访问数据中访问地址在预设地址范围内的访问数据,经过地址过滤器50的输出端输出。

具体的,在芯片10中增加地址过滤器50,地址过滤器50设置在外部访问数据的输入端口与选择器20的第一输入端之间,以过滤输入选择器20的访问数据,地址过滤器50的过滤功能默认打开,可控制仅访问地址在预设地址范围内的访问数据能够通过地址过滤器50输入到选择器20。

当芯片刚回片时,即芯片为裸片时,控制器40检测到一次性编程器件30的器件值与第一预设数值相同,此时,地址过滤器50具有地址过滤功能,使访问数据中访问地址在预设地址范围内的访问数据,经过地址过滤器50的输出端输出到选择器20的输入端,再由选择器20的输出端输出值一次性编程器件30。即当恶意用户窃取了裸片时,恶意用户通过外部访问数据的端口向芯片输入访问数据时,由于地址过滤器50的过滤作用,可防止恶意用户烧写存储有重要数据的地址空间,从而保护了芯片。

本发明实施例提供的芯片,通过进一步增加地址过滤器,可避免当裸片遗失时,芯片内的重要数据被获取,从而提高了芯片的安全性。

进一步地,在图3所示实施例的基础上,访问地址在预设地址范围内的访问数据包括解锁指令,解锁指令用于将一次性编程器件的器件值写为密钥值;

其中,密钥值不在第一预设范围内。

具体的,为烧写一次性编程器件,访问数据中包括解锁指令,解锁指令的访问地址在地址过滤器50的预设地址范围内,访问指令用于将一次性编程器件的器件值写为密钥值。

当用户欲烧写芯片时,可输入解锁指令,由于解锁指令的访问地址在预设地址范围内,因此,可实现烧写,其中烧写后的器件值为密钥值,密钥值与第一预设数值不同,增加了地址过滤器50后的第一预设范围也不包括该密钥值。

进一步地,在上述任一实施例的基础上,地址过滤器50的过滤功能控制端口与控制器40连接;

控制器40还用于,在一次性编程器件30的器件值与密钥值相同时,通过地址过滤器50的过滤功能控制端口关闭地址过滤器50的过滤功能,向选择器20的选择端提供第二选择信号;

在一次性编程器件30的器件值与密钥值相同时,地址过滤器50还用于,使所有访问数据经过地址过滤器50的输出端输出。

具体的,地址过滤器50的过滤功能控制端口与控制器40连接,控制器40可控制地址过滤器50的过滤功能的开启与关闭,当过滤功能关闭时,任意访问数据均可通过地址过滤器50输入至选择器20。

在具体实现时,当控制器40检测到一次性编程器件30的器件值与密钥值相同时,通过地址过滤器50的过滤功能控制端口关闭地址过滤器50的过滤功能,同时控制器40向选择器20的选择端提供第二选择信号,因此,任意访问均可通过地址过滤器50、选择器20输入至一次性编程器件30,从而实现烧写。

因此,只有能够正确烧写密钥值的用户才可实现芯片的烧写,避免了其他恶意用户对芯片的烧写,也保护了芯片中的重要信息。

进一步地,访问数据中还包括锁定指令,锁定指令用于将一次性编程器件的器件值,即密钥值改写为第二预设数值,第二预设数值为第一预设范围内的任意值,示例性的,即与第一预设数值、密钥值不同的其他任一数值。

本发明实施例另一方面请求保护一种芯片烧写方法,该方法应用于如图2所示的芯片中,图4为本发明实施例一提供的芯片的烧写方法的流程示意图,如图4所示,该方法包括:

s401、向芯片烧写访问数据,访问数据中包括锁定指令,锁定指令用于将芯片中的一次性编程器件的器件值烧写为第二预设数值;

s402、重启芯片;

其中,第二预设数值为第一预设范围内的任意值。

具体的,当用户获取到回片时,启动该芯片,此时控制器读取到的一次性编程器件的器件值为第一预设数值,此时控制器控制访问数据直接输出给一次性编程器件,可以烧写芯片。因此,执行s401,向芯片烧写访问数据,访问数据中包括用户设计的软件程序,同时访问数据中还包括锁定指令,锁定指令用于将芯片中的一次性编程器件的器件值烧写为第二预设数值,即将原本的允许烧写芯片的第一预设数值修改为不同的第二预设数值。当烧写全部完成后,执行s402,重启芯片。

当芯片重启后,控制器读取到的一次性烧写器件的器件值为第二预设数值,第二预设数值与第一预设数值不同,且在第一预设范围内,此时,即使恶意用户通过访问数据的接口向芯片内输入访问数据,也无法实现访问一次性编程器件的目的,从而保护了芯片中的重要信息。

本发明实施例再一方面还请求保护一种芯片烧写方法,该方法应用于如图3所示的芯片中,图5为本发明实施例二提供的芯片的烧写方法的流程示意图,如图5所示,包括:

s501、向芯片烧写第一访问数据,第一访问数据中包括解锁指令,解锁指令的访问地址在地址过滤器的预设地址范围内,解锁指令用于将一次性编程器件的器件值写为密钥值;

s502、重启芯片;

s503、向芯片烧写第二访问数据,第二访问数据中包括锁定指令,锁定指令用于将芯片中的一次性编程器件的器件值烧写为第二预设数值;

s504、重启芯片;

其中,密钥值不在第一预设范围内,第二预设数值为第一预设范围内的任意值。

具体的,当用户获取到回片时,启动该芯片,此时控制器读取到的一次性编程器件的器件值为第一预设数值,此时地址过滤器过滤访问数据中的访问地址,因此仅能访问一次性编程器件的部分数据,不能烧写用户编写的软件程序,可保护芯片中的重要数据。

为烧写芯片,先执行s501,向芯片烧写第一访问数据,第一访问数据中包括解锁指令,解锁指令的访问地址在地址过滤器的预设地址范围内,解锁指令用于将一次性编程器件的器件值写为密钥值。然后执行s502,重启芯片。通过将第一预设数值烧写为密钥值,使得控制器可检测到一次性编程器件的器件值为密钥值,此时控制器控制地址过滤器停止地址过滤,并控制选择器将接收到的访问数据发送给一次性编程器件,开启了芯片的烧写功能。即只有当用户拥有烧写的密钥值,才能开启芯片的烧写流程。

在向芯片烧写密钥值后,执行s503,向芯片烧写第二访问数据,第二访问数据中包括用户的软件代码,还包括锁定指令,锁定指令用于将芯片中的一次性编程器件的器件值,密钥值,烧写为第二预设数值。当烧写完成后,执行s504,重启芯片。通过执行s503,完成了芯片的烧写过程,同时,将芯片的器件值少些为第二预设数值,使得控制器检测到的器件值与第一预设数值、密钥值均不同,从而阻止了访问数据访问一次性编程器件,保护了芯片。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1