保护非易失性存储器中存储的程序代码的装置的制造方法

文档序号:8339932阅读:328来源:国知局
保护非易失性存储器中存储的程序代码的装置的制造方法
【技术领域】
[0001]本发明关于一种程序代码保护技术,特别是一种保护非易失性存储器中存储的程序代码的装置。
【背景技术】
[0002]具有安全防护能力的装置必须保护其中存储的内容不会被恶意复制或修改。当保护的内容是程序代码时,必须防止那些非拥有者或不被授权人士的存取以及复制。因此,本发明实施例提出一种保护非易失性存储器中存储程序代码的装置。

【发明内容】

[0003]本发明的实施例提出一种保护非易失性存储器中存储的程序代码的装置。非易失性存储器中包含第一区域及第二区域。装置还设置两个独立的第一非易失性存储器管理控制单元以及第二非易失性存储器管理控制单元。第一非易失性存储器管理控制单元耦接至第一区域;第二非易失性存储器管理控制单元耦接至第二区域。装置中还包含编程指令地址解码器,耦接至第一非易失性存储器管理控制单元以及第二非易失性存储器管理控制单元。当接收到从编程接口传来的指示擦除第一区域的第一指令时,指示第一非易失性存储器管理控制单元擦除第一区域中的数据;以及当接收到从编程接口传来的指示擦除第二区域的第二指令时,指示第二非易失性存储器管理控制单元擦除第二区域中的数据。
[0004]本发明的实施例还提出一种保护非易失性存储器中存储的程序代码的装置,包含非易失性存储器、非易失性存储器管理控制单元、中央处理单元以及芯片纠错器。非易失性存储器中包含一个安全位元组,其中,安全位元组中的值被设定来表示非易失性存储器目前处于开放存取状态或保护状态。非易失性存储器管理控制单元用以存取非易失性存储器中存储的数据。中央处理单元用以指示非易失性存储器管理控制单元存取非易失性存储器中存储的数据。当芯片纠错器从纠错接口接收到纠错指令时,取得安全位元组的值;依据安全位元组的值进行至少一个判断;以及依据判断的结果,决定是否阻挡纠错指令而不执行。
[0005]本发明的实施例还提出一种保护非易失性存储器中存储的程序代码的装置,包含非易失性存储器、中央处理单元以及非易失性存储器管理控制单元。非易失性存储器中包含一个安全位元组,其中,安全位元组中的值被设定来表示非易失性存储器目前处于开放存取状态或保护状态。非易失性存储器管理控制单元耦接至中央处理单元,用以取得读取非易失性存储器中存储的程序代码的指令;非易失性存储器管理控制单元取得安全位元组的值;以及当安全位元组的值指出非易失性存储器目前处于保护状态时,非易失性存储器管理控制单元读取并回复中央处理单元安全位元组的值,而不读取上述非易失性存储器中存储的程序代码。
【附图说明】
[0006]图1是依据本发明实施例的电子装置的系统方块图。
[0007]图2是依据本发明实施例的执行于芯片纠错器中的保护非易失性存储器中存储程序代码的方法流程图。
[0008]图3是依据本发明实施例的执行于快闪管理控制单元中的保护非易失性存储器中存储程序代码的方法流程图。
[0009]主要元件标号说明
[0010]10电子装置110 微控制单元
[0011]111中央处理单元112 快闪存储器
[0012]112a安全防护代码区112b 使用者代码区
[0013]113、114 快闪管理控制单元115控制寄存器
[0014]116编程指令地址解码器117芯片纠错器
[0015]118静态存储器120 纠错接口
[0016]130编程接口S210?S260方法步骤
[0017]S310?S350方法步骤
【具体实施方式】
[0018]图1是依据本发明实施例的电子装置10的系统方块图。电子装置10设置一个微控制单元110,而微控制单元110中的快闪存储器112至少包含两个区域:安全防护代码区112a,实施例的地址范围为yyyyH?zzzzH ;以及使用者代码区112b,实施例的地址范围0000H?XXXXH。快闪存储器112是一种非易失性存储器,其中存储的数据并不会因断电而消失。安全防护代码区112a包含一个安全位元组(security byte),可以为最高位元组(most significant byte)、最低位元组(least significant byte)、或任意地址的位元组。安全防护代码区112a与使用者代码区112b可分别存放由不同的厂商(或使用者)所开发的程序代码。在另一实施例中,安全防护代码区112a与使用者代码区112b可分别存放由同一厂商的不同使用者所开发的程序代码,但不限于此。举例来说,第一厂商(或同一厂商的第一使用者)可将核心的程序代码或是所开发的客制化函数库(customized library)存放在安全防护代码区112a,再提供给第二厂商(或第二使用者)使用。第二厂商(或同一厂商的第二使用者)可将其所开发的主程序代码存放在使用者代码区112b,其中该主程序代码可调取存放于安全防护代码区112a的客制化函数库,如此第二厂商可节省产品开发时间。微控制单元110可被整合至各种产品中,例如,通信产品、电视、存储装置等。
[0019]以下举例是以快闪存储器作为说明,然而只要是非易失存储器皆可适用,例如EPROM(erasable programmable read-only memory)、PROM(programmable read-onlymemory)> ROM(read-only memory)> EEPROM(electricalIy erasable programmableread-only memory)等非易失性存储器。因此,在以下内容中所提到的快闪管理控制单兀也可替换为非易失性存储器管理控制单兀(NVMMC, non-volatile memory managementcontroller)用以控制非易失性存储器。
[0020]传统的设计使用单一的快闪管理控制单元来存取整个快闪存储器,并且当中央处理单元接收到擦除指令(erase co_and)时,擦除整个快闪存储器。为了提高程序代码的安全性,依据本发明实施例,安全防护代码区112a以及使用者代码区112b分别使用独立的快闪管理控制单元(flash memory control units) 113及114进行存取,并且提供用以分别擦除快闪存储器112中的安全防护代码区112a以及使用者代码区112b的两个不同的指令,例如“ SEC_erase ”以及“user_erase ”。两个不同的指令可以两个不同的代码作表示。
[0021]电子装置10还可设置编程接口 130,使得使用者可将外部编程器通过编程接口130耦接编程指令地址解码器116,并发出如上所述用以擦除安全防护代码区112a以及使用者代码区112b的不同指令。当编程指令地址解码器116接收到擦除安全防护代码区112a的指令时,指示快闪管理控制单元113擦除安全防护代码区112a的数据,另外当接收到擦除使用者代码区112b的指令时,指示快闪管理控制单元114擦除使用者代码区112b的数据。一般而言,微控制单元110的制造商可提供擦除安全防护代码区112a的指令以及擦除使用者代码区112b的指令给客户(例如,上述第一厂商与第二厂商),用以分别擦除安全防护代码区112a以及使用者代码区112b的数据。
[0022]若安全防护代码区112a中的安全位元组被设定为一个特定值时,例如“OxFF”,则代表安全防护代码区112a目前为开放存取状态,若安全位元组被设定为其他值而非此特定值,则代表安全防护代码区112a目前正处于保护状态。以下详细介绍使用安全位元组保护安全防护代码区112a中所存储程序代码的机制。不论安全位元组被设定为哪个值,安全防护代码区112a中的程序代码都可以被中央处理单元111载入并执行。
[0023]为了避免安全防护代码区112a中的程序代码会在纠错的过程中被反向工程推知,芯片纠错器117会参考安全位元组的值来决定是否阻挡特定的纠错指令。图2是依据本发明实施例的执行于芯片纠错器117中的保护非易失性存储器中存储程序代码的方法流程图。当从纠错接口 120接收到关联于安全防护代码区112a中的程序代码的纠错指令后(步骤S210),取得安全防护代码区112a中的安全位元组的值(步骤S220)。于一实施例中,安全位元组的值可在开机的时候,先通过中央处理单元111进行读取,并事先存储于芯片纠错器117中的寄存器(register)(未绘示)。当执行步骤S220时,从芯片纠错器117的寄存器中取得安全位元组的值。于另一实施例中,芯片纠错器117于每一次接收到纠错指令时,都向中央处理单元111请求读取安全防护代码区112a中安全位元组的值。接着,进行以下判断步骤:根据安全位元组的值决定安全防护代码区112a是否处于保护状态(步骤S230);以及决定纠错指令是否为受限制的指令(步骤S240)。受限制的指令可以为设置中断点(breakpoint)指令、单步执行(step run)指令、进入纠错模式指令,或其他的纠错指令。若上述判断步骤皆为符合,则阻挡纠错指令而不执行(步骤S250)。若上述判断步骤其中有一者不符合,则将纠错指令传送给中央处理单元111执行(步骤S260)。也就是说,在图2中,步骤S230与步骤S240执行顺序可以相互置换。于另一实施例中,可省略步骤S240,仅在步骤S230中判断安全位元组的值显示安全防护代码区112
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1