非易失性存储器的存取控制系统的制作方法

文档序号:6393897阅读:116来源:国知局
专利名称:非易失性存储器的存取控制系统的制作方法
技术领域
本发明涉及一种非易失性存储器的存取控制系统。
背景技术
根据一现有技术,通过在用于存储会计信息、余额信息等的非易失性存储器中设置特定地址的写入次数限制电路,以此防止IC卡的不正当使用(参照专利文献1)。
根据另一现有技术,为了在非易失性存储器中让数据和程序混合存在,而在特定地址区域可进行数据的改写,对用于程序存储的其他地址区域在硬件上禁止改写(参照专利文献2)。
例如,在移动电话机中接受音乐、电影等收费内容的配送时,需要用户ID和口令这样的个人认证信息。为了将密码化的内容解密,需要密钥信息。将这些信息存储到非易失性存储器中使用时,防止被窜改的安全对策是非常重要的。
但是,在上述那样的在非易失性存储器中设置特定地址的写入次数限制电路的现有技术中,当系统的制作者写入防止窜改信息失败时,就有可能出现不能再写入的情况。
专利文献1特开平8-329208号公报;专利文件2特开平11-110287号公报。

发明内容
本发明的目的在于提供一种系统制作者可以自由写入需要防止窜改的信息,并且可以可靠防止该信息被窜改的非易失性存储器的存取控制系统。
为了达到上述目的,在本发明中,按照在引导ROM中存储的系统初始化用的程序,CPU在非易失性存储器上设置禁止改写区域,并且根据在该禁止改写区域上设置的已写入标志,存取控制电路进行允许改写或禁止改写的控制。
具体讲,本发明采用包括非易失性存储器、存储系统初始化用程序的引导ROM、向非易失性存储器发出指令的CPU、和接收来自该CPU的指令并控制对非易失性存储器的存取的存取控制电路的构成;CPU在每次系统电源启动时,通过执行在引导ROM中存储的系统初始化用程序,按照在非易失性存储器上只设置禁止改写区域一次,在该禁止改写区域上只设定已写入标志一次那样进行动作;存取控制电路,在没有检验已写入标志的状态之前,非易失性存储器的任何写入都不被许可,在检验了已写入标志的状态之后,如果该已写入标志没有表示禁止改写,则允许对禁止改写区域进行任何次数的写入,在向该已写入标志设定了禁止改写之后,对禁止改写区域内的写入一概不被许可。


图1表示有关本发明的非易失性存储器的存取控制系统的整体结构例的方框图。
图2表示图1中的非易失性存储器的内部结构图。
图3表示图1中的存取控制电路的内部结构图。
图4表示图3中的寄存器状态机器的动作状态变化图。
图5表示图1中的非易失性存储器的指令例的图。
图6表示图3中的指令解析部的动作状态变化图。
图7表示图1中的非易失性存储器的另一内部结构图。
图8表示图3中的指令解析部的内部结构图。
图9表示图3中的指令解析部的另一内部结构图。
图中1-非易失性存储器的存取控制系统,2-CPU,3-SRAM,4-引导ROM,5-存取控制电路,6-非易失性存储器,7-系统总线,10-寄存文件,11-禁止改写区域地址寄存器,12-禁止改写区域地址掩码寄存器,13-禁止改写区段地址寄存器,14-已写入标志地址寄存器,15-已写入标志位寄存器,16-已写入标志校验指令寄存器,17-寄存器状态机器,20-指令解析部,21-指令输出部,22-写入/擦除指令检测部,23-擦除指令发出部,24-已写入标志重写部,30-读/写信号发出部,F-已写入标志。
具体实施例方式
以下参照附图对本发明的实施方式进行详细说明。
图1表示有关本发明的非易失性存储器的存取控制系统的整体结构例的图。在图1的非易失性存储器的存取控制系统1中,2表示CPU,3表示SRAM,4表示引导ROM,5表示存取控制电路,6表示非易失性存储器,7表示系统总线。CPU2、SRAM3、和引导ROM4与系统总线7连接。存取控制电路5介于非易失性存储器6和系统总线7之间。SRAM3是用来存储程序或数据的存储器。引导ROM4是用来存储系统初始化程序的存储器。非易失性存储器6譬如是闪烁存储器。CPU2,通过执行存储在SRAM3中的程序或存储在引导ROM中的程序,而发出向非易失性存储器6存取的指令。存取控制电路5是用来接收来自CPU2的指令,并控制向非易失性存储器6存取的电路。
图2表示图1中非易失性存储器6的内部结构。非易失性存储器6比如被分割成从地址0000h到7FFFh的可改写区域和从地址8000h到FFFFh的禁止改写区域(h是16进位制标记以下相同)。更进一步,比如禁止改写区域里在地址FFF0h上被指定的1字节中设定一位的已写入标志F。在以下的说明中把非易失性存储器6的初始状态视为全部位数是“1”。因此,已写入标志F的初始值也是“1”。在这里认为“F=1”表示允许改写,“F=0”表示禁止改写。
图3表示图1中的存取控制电路5的内部结构。图3的存取控制电路5拥有寄存器文件10、指令解析部20和读/写信号发出部30。寄存器文件10拥有禁止改写区域地址寄存器11、禁止改写区域地址掩码寄存器12、禁止改写区段地址寄存器13和已写入标志地址寄存器14、已写入标志位寄存器15、已写入标志校验指令寄存器16和寄存器状态机器17。指令解析部20会参照寄存器文件10,对通过系统总线7从CPU2中接收的指令进行分析。读/写信号发出部30会按照指令解析部20分析出的结果发出对非易失性存储器6写入(write)/读出(read)/擦除(erase)的信号。特别是当存取非易失性存储器6上的包括已写入标志F在内的1字节时,读/写信号发出部30会参照已写入标志地址寄存器14和已写入标志校验指令寄存器16发出信号。
图1中的CPU2在每次系统电源启动时,通过执行在引导ROM4中存储的系统初始化用的程序,按照在非易失性存储器6上只设置禁止改写区域一次,在该禁止改写区域上只设置已写入标志F一次那样进行动作。按照图2的示例,分别在禁止改写区域地址寄存器11上设定了8000h,在禁止改写区域地址掩码寄存器12上设定了7FFFh。还分别在已写入标志地址寄存器14上设定了FFF0h,在已写入标志位寄存器15上设定了3h。
图3的存取控制电路,在接到来自CPU2的已写入标志校验指令并检验了已写入标志F的状态之前,非易失性存储器6的任何写入都不被认可,在检验了已写入标志F的状态之后,只有该已写入标志F指示允许改写(F=1)时,才允许在禁止改写区域进行任何次数的写入,但是当该已写入标志F设定了禁止改写(F=0)后在禁止改写区域的写入一概不被认可。因此,系统的制作者可以自由地写入需要防止被窜改的信息,并且能可靠防止该信息的窜改。
图3中的指令解析部20分析出从CPU2接收的指令是表示非易失性存储器6的写入或擦除,如果其写入位置或擦除位置是非易失性存储器6的禁止改写区域,并且当已写入标志F显示禁止改写(F=0)时,从CPU2接收的指令不会向读/写信号发出部30传达。
图4表示图3中寄存器状态机器17的动作情况。状态1是寄存器状态机器17的初始状态。在状态1中由CPU2设定了禁止改写区域地址寄存器11后,就转移到状态2。如果没有设定就保持状态1。在状态2中如果设定了禁止改写区域地址掩码寄存器12后则转移到状态3。如果没有设定就保持状态2。在状态3中如果设定了禁止改写区段地址寄存器13后就转移到状态4。如果没有设定就保持状态3。在状态4中如果设定了已写入标志地址寄存器14后就转移到状态5。如果没有设定就保持状态4。在状态5中如果设定了已写入标志位寄存器15后就转移到状态6。如果没有设定就保持状态5。
到了状态6之后,已写入标志校验指令寄存器16才开始受理来自系统总线的写入。如果在已写入标志校验指令寄存器16中设定了已写入标志F的状态检验执行用的指令,已写入标志校验指令寄存器16会将此指令传达给读/写信号发出部30,读/写信号发出部30将已写入标志地址寄存器14设定的地址的数据由非易失性存储器6读取。指令解析部20将读取的数据中由已写入标志位寄存器15表示的位的值作为已写入标志F保存。
让寄存器状态机器17从状态1开始向状态6转移,并通过发出已写入标志校验指令,将已写入标志F保存在指令解析部20中的上述处理,通过CPU2执行在引导ROM4中存储的系统初始化用的程序而完成。这些处理全部完成之前,从系统总线7到非易失性存储器6的任何写入或擦除,都会被指令解析部20所禁止。
检测了已写入标志F之后,由指令解析部20判断能否进行写入/擦除。具体来说,如果已写入标志F表示允许改写的话(F=1),指令解析部20就允许由禁止改写区域地址寄存器11和禁止改写区域地址掩码寄存器12所示的在非易失性存储器6的禁止改写区域进行写入,也允许由禁止改写区段地址寄存器13设定的区段擦除,以及允许在非易失性存储器6的所有区域上的擦除。因此,系统的制作者在非易失性存储器6上的已写入标志F改写成“0”之前,自己可以对需要防止窜改信息的禁止改写区域自由进行写入。但是,当系统的制作者把非易失性存储器6上的已写入标志F改写为“0”后,指令解析部20将不允许对禁止改写区域进行任何写入和擦除。而且,如果指令解析部20一直保持非易失性存储器6上的已写入标志F的复制的话,可以削减已写入标志校验指令的发出次数。
图5表示图1中非易失性存储器6的指令示例。该非易失性存储器6是写入和擦除都需要特殊指令组的闪烁存储器。图5中的ADRS表示CPU2发出的地址,DATA表示CPU2发出的数据。
如图5上段所示,在写入指令中,当第一周期输入地址555h/数据AAh,第二周期输入地址2AAh/数据55h,第三周期输入地址555h/数据AOh时,则确定在第四周期输入的地址WA上输入第四周期输入的数据WD。
如图5中段所示,在区段擦除指令中,当在第一周期输入地址555h/数据AAh,第二周期输入地址2AAh/数据55h,第三周期输入地址555h/数据80h,第四周期输入地址555h/数据AAh,第五周期输入地址2AAh/数据55h,第六周期的数据输入30h时,则确定对在第六周期与数据30h一同输入的地址SA所指定的区段进行擦除。
如图5下段所示,在芯片擦除指令中,一直到第五周期为止和区段擦除指令相同,当在第六周期输入地址555h/数据10h时,则确定对非易失性存储器6上的全部区域进行擦除。
图6表示图3中的指令解析部20的动作。状态1是指令解析部20的初始化状态。在状态1中如果通过系统总线7输入地址555h/数据AAh则转移到状态2。除此之外没有输入时就保持在状态1。在状态2中如果输入地址2AAh/数据55h则转移到状态3。除此之外没有输入时就转移到状态1。
在状态3中如果输入地址555h/数据AOh时则转移到状态4.1。状态4.1表示经由系统总线输入了正常的写入指令时的状态。在状态4.1中,随后输入的地址WA由指令解析部20判断是否相当于由禁止改写区域地址寄存器11和禁止改写区域地址掩码寄存器12设定的非易失性存储器6的禁止改写区域。当相当于禁止区域时,就不向该地址进行写入。如果不相当于禁止区域,就向该地址写入数据WD。
在状态3中如果输入地址555h/数据80h则转移到状态4.2。除此之外没有输入时就转移到状态1。在状态4.2中如果输入地址555h/数据AAh后就转移到状态5。除此之外没有输入时则转移到状态1。状态5被输入地址2AAh/数据55h后就转移到状态6。除此之外没有输入时则转移到状态1。
在状态6中如果输入地址555h/数据10h,这表示芯片擦除。只有当非易失性存储器6上的已写入标志F指示允许改写(F=1)时,指令解析部20才向非易失性存储器6发出芯片擦除指令。但是,当非易失性存储器6上的已写入标志F改写成“0”后,该非易失性存储器6的芯片擦除就被禁止,因此指令解析部20就不向非易失性存储器6发出擦除指令。
在状态6中如果输入数据30h,这表示区段擦除。因此,当这时输入的区段地址SA如果和禁止改写区段地址寄存器13设定的区段地址不同时,指令解析部20会向非易失性存储器6发出相对应的区段擦除指令。当和禁止改写区段地址寄存器13设定的区段地址是同一地址时,由于该区段的擦除被禁止,所以指令解析部20就不向非易失性存储器6发出指令。在状态6中除此之外没有输入时就转移到状态1。
在指令解析部20中如果判明所有指令已被正常输入,并且CPU2将要写入的地址,或者CPU2将要擦除的区段地址不是禁止区域,则将到此为止积攒的全部指令从最初依次传给读/写信号发出部30。因此,由于向读/写信号发出部30只能输入允许存取的指令,因此读/写信号发出部30能够把从指令解析部20输入的全部地址/数据原封不动地向非易失性存储器6输出。
如上所述,由系统总线7输入的地址/数据由存取控制电路5进行解析,只有在允许存取的情况下对非易失性存储器6进行写入/擦除。
详细讲,指令解析部20对从CPU2接收的全部指令进行解析,当所接收的指令组表示对非易失性存储器6进行写入或区段擦除,其写入位置或擦除位置是禁止改写的区域,并且已写入标志F显示禁止改写时,从CPU2接收的指令组一概不向非易失性存储器6传达。再有,指令解析部20从CPU2接收的指令组表示对非易失性存储器6进行芯片擦除,并且已写入标志F显示禁止改写时,从CPU2接收的指令组一概不向非易失性存储器6传达。
此外,如果通过替换图1中的引导ROM4的程序,实现图2中的寄存文件10的设定变更,那么非易失性存储器6上的禁止改写区域就可以随每个系统任意变更。例如,如果分别在禁止改写区域地址寄存器11设定4000h,在禁止改写区域地址掩码寄存器12设定3FFFh,就可以将地址4000h到7FFFh的区域设定为禁止改写区域。
图7表示图1中的非易失性存储器6的另一内部构成。在此,在非易失性存储器6上设定一个虚设区段来作为不放置有用数据的未使用区域,例如将地址0010h定为虚设区段。
这时,当从CPU2接收的指令组表示对非易失性存储器6进行写入,其写入位置是禁止改写区域,并且当已写入标志F显示禁止改写时,指令解析部20就会进行控制以对虚设字节进行写入。再有,当从CPU2接收的指令组表示对非易失性存储器6进行区段擦除,其擦除区域是禁止改写区域,并且当已写入标志F显示禁止改写时,指令解析部20就会进行控制以对虚设区段进行写入。另外,当从CPU2接收的指令组表示对非易失性存储器6进行芯片擦除,并且当已写入标志F显示禁止改写时,指令解析部20也会进行控制以对虚设区段进行写入。
这样指令解析部20在每次经由系统总线7输入图5所示地址/数据后,将该地址/数据输出到读/写信号发出部30,当是可改写区域的写入/擦除时,写入位置/擦除位置不变;当是禁止改写区域的写入/擦除时,通过变更写入位置/擦除位置,来完成写入/擦除的过程。即,只是牺牲了可改写区域中的一部分,这和图2那种指令解析部20暂时积攒指令组的情况相比,可以提高非易失性存储器6的存取速度。
最后,图8和图9表示了能给试图窜改禁止写入区域内的信息的人以惩罚的结构图。
图8是图3中的指令解析部的内部结构图。图8中,21是指令输出部,22是写入/擦除指令检测部,23是擦除指令发出部。指令输出部21一般是将通过系统总线7从CPU2接收的指令原封不动地提供给读/写信号发出部30。写入/擦除指令检测部22,当检测到对禁止改写区域的写入/擦除指令,并且已写入标志F表示禁止改写(F=0)时,则将旨意向擦除指令发出部23传达。对此进行应答,擦除指令发出部23会将对除了图3禁止改写区段地址寄存器13设定的区段地址以外的全部区段进行擦除的指令发出命令传给指令输出部21。指令输出部21会按照此命令发出各区段擦除指令。这样既防止了窜改,又擦除了可改写区域中的有用信息以对试图窜改的人进行惩罚。
图9表示图3中的指令解析部20的另一内部结构图。图9中将图8中的擦除指令发出部23替换成了已写入标志重写部24。该已写入标志重写部24,当检测到对禁止改写区域的写入/擦除指令,并且接收到从写入/擦除指令检验部22传来的已写入标志F表示禁止改写(F=0)的旨意时,根据图3中的已写入标志校验指令寄存器16执行的状态确认而得到的和已写入标志F相同的值(=0)作为写入数据,向指令输出部21发出全部区域写入命令。指令输出部21按照该命令发出全区域写入指令。这样,为了惩罚试图窜改的人,非易失性存储器6上的全部数据都改写成了和已写入标志F相同的值(=0)。但已写入标志F本身仍然表示禁止改写(F=0),因此以后的写入也不被接受。
另外,在非易失性存储器6的初始状态,如果全部位的值是“0”,则只要让“F=0”表示允许改写,让“F=1”表示禁止改写即可。
此外,本发明还适用于EEPROM等其他种类的非易失性存储器。
以上所述,依据本发明,按照在引导ROM中存储的系统初始化用的程序,由于CPU会在非易失性存储器上设定禁止改写区域,并且通过在该禁止改写区域上设定已写入标志,存取控制电路能够进行允许改写/禁止改写的控制,因此,可以提供一种系统的制作者可以自由写入需要防止窜改的信息,并且能可靠防止该信息被窜改的非易失性存储器的存取控制系统。
权利要求
1.一种非易失性存储器的存取控制系统,包括非易失性存储器、存储系统初始化用程序的引导ROM、向所述非易失性存储器发出指令的CPU、和接收来自所述CPU的指令并控制对所述非易失性存储器的存取的存取控制电路,其特征在于,所述CPU在每次系统电源启动时,通过执行在所述引导ROM中存储的系统初始化用的程序,按照在所述非易失性存储器上只设定禁止改写区域一次,在该禁止改写区域上只设定已写入标志一次那样进行动作;所述存取控制电路,在没有检验所述已写入标志的状态之前,所述非易失性存储器的任何写入都不被认可,在检验了所述已写入标志的状态之后,如果所述已写入标志没有表示禁止改写,则允许对所述禁止改写区域进行任何次数的写入,在向所述已写入标志设定了禁止改写之后,对所述禁止改写区域内的写入一概不被认可
2.根据权利要求1所述的存取控制系统,其特征在于,所述存取控制电路具有对从所述CPU接收的指令进行解析的指令解析部;所述指令解析部,当从所述CPU接收的指令表示对所述非易失性存储器进行写入或擦除,其写入位置或擦除位置是所述非易失性存储器的禁止改写区域,并且所述已写入标志表示禁止改写时,从所述CPU接收的指令则不会向所述非易失性存储器传达。
3.根据权利要求2所述的存取控制系统,其特征在于,所述指令解析部,当所述非易失性存储器的写入或擦除需要特别的指令组时,对从所述CPU接收的全部指令进行解析,如果该指令组表示对所述非易失性存储器进行写入或擦除,其写入位置或擦除位置是所述非易失性存储器的禁止改写区域,并且所述已写入标志表示禁止改写时,从所述CPU接收的指令组则一概不会向所述非易失性存储器传达。
4.根据权利要求2所述的存取控制系统,其特征在于,所述指令解析部,当所述非易失性存储器的全部擦除需要特别的指令组时,对从所述CPU接收的全部指令进行解析,如果该指令组表示对所述非易失性存储器进行全部擦除,并且所述已写入标志表示禁止改写时,从所述CPU接收的指令组则一概不会向所述非易失性存储器传达。
5.根据权利要求1所述的存取控制系统,其特征在于,在所述非易失性存储器上设置不放置有用数据的未使用区域;所述存取控制电路具有对从CPU接收的指令进行解析的指令解析部;所述指令解析部,当从所述CPU接收的指令表示对所述非易失性存储器进行写入或擦除,其写入位置或擦除位置是所述非易失性存储器的禁止改写区域,并且所述已写入标志表示禁止改写时,按照对所述非易失性存储器的未使用区域进行写入或擦除那样进行控制。
6.根据权利要求5所述的存取控制系统,其特征在于,所述指令解析部,当所述非易失性存储器的写入或擦除需要特别的指令组时,对从所述CPU接收的全部指令进行解析,如果该指令组表示对所述非易失性存储器进行写入或擦除,其写入位置或擦除位置是所述非易失性存储器的禁止改写区域,并且所述已写入标志表示禁止改写时,按照对所述非易失性存储器的未使用区域进行写入或擦除那样进行控制。
7.根据权利要求5所述的存取控制系统,其特征在于,所述指令解析部,当所述非易失性存储器的全部擦除需要特别的指令组时,对从所述CPU接收的全部指令进行解析,如果该指令组表示对所述非易失性存储器进行全部擦除,并且所述已写入标志表示禁止改写时,按照对所述非易失性存储器的未使用区域进行全部擦除那样进行控制。
8.根据权利要求1所述的存取控制系统,其特征在于,所述存取控制电路,检测对所述非易失性存储器的禁止改写区域的写入或擦除,并且当所述已写入标志表示禁止改写时,按照将除所述非易失性存储器上的禁止改写区域之外的区域中的数据擦除那样进行控制。
9.根据权利要求1所述的存取控制系统,其特征在于,所述存取控制电路,检测对所述非易失性存储器的禁止改写区域的写入或擦除,并且当所述已写入标志表示禁止改写时,按照将所述非易失性存储器上的全部数据改写成和所述已写入标志相同的值那样进行控制。
全文摘要
本发明提供一种非易失性存储器的存取控制系统,按照在引导ROM中存储的系统初始化用程序,CPU在非易失性存储器(6)上设置禁止改写区域,并且根据在该禁止改写区域上设置的已写入标志(F),存取控制电路可以进行允许改写或禁止改写的控制。由此,能使系统的制作者自由写入需要防止窜改的信息,并且能可靠防止该信息被窜改。
文档编号G06F12/14GK1532713SQ200410028788
公开日2004年9月29日 申请日期2004年3月18日 优先权日2003年3月19日
发明者永田太一, 根本祐辅, 辅 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1