存储器的集成电路上的数据保护方法及相关的存储器电路与流程

文档序号:17795204发布日期:2019-05-31 20:42阅读:170来源:国知局
存储器的集成电路上的数据保护方法及相关的存储器电路与流程
本发明书是有关于存储器的集成电路上的数据保护方法及相关的存储器电路。
背景技术
:一种非挥发性存储器装置(例如闪存装置)可在未被供电时维持存储的数据。存储于一种包括一阵列的非挥发性存储单元的非挥发性存储器装置的数据,可通过对非挥发性存储单元执行读取、抹除或编程操作而被存取或修改。通过将数据存储在非挥发性存储单元阵列的保护区域或区段中,可避免对于存储于此装置中的数据的意外或未经授权的改变。此装置中的一群组的非挥发性存储单元,可被使用来存储关于这些区段的保护位。每个位表示关于一对应的保护区段的一保护状态(例如,保护或未保护)。软件常需要频繁地在保护/未保护状态之间转换,以便具有良好保护伴随着易于存取。然而,改变非挥发性保护位的状态需要编程/抹除操作。所以保护位由于非挥发性存储器持久性限制,只能够被编程/抹除有限度的次数。此外,相较于挥发性存储器写入操作,非挥发性存储器的编程/抹除操作需要多得多的操作时间。因此,期望提供用于将数据存储在一非挥发性存储器装置中的弹性及可靠的数据保护方法。技术实现要素:本发明提供用于保护一种包括一存储器的集成电路上的数据的方法。一种方法包括将非挥发性保护码存储在集成电路上。非挥发性保护码具有关于存储器的多个区段中的各个区段的一个表示一保护状态的第一数值,或一个表示一未保护状态的第二数值。此方法包括将挥发性保护码存储在集成电路上。挥发性保护码具有关于多个区段中的各个区段的一个表示一保护状态的第一数值,或一个表示一未保护状态的第二数值。此方法包括:当特定区段用的挥发性保护码具有第一数值时,通过使用集成电路上的电路来阻止一特定区段中的修改,否则允许特定区段的修改,并在一初始化程序中将挥发性保护码设定至非挥发性保护码的数值。本发明的其他实施方面及优点可在检阅附图、详细说明与权利要求而获得理解。附图说明图1为一种包括一存储器的集成电路的简化方块图。图2为结合一种包括一存储器的集成电路的计算机系统的简化方块图。图3为通过使用保护码及屏蔽码来保护一存储器装置上的数据的一示范方法的流程图。图4为一种包括保护码及屏蔽码的存储器装置的简化方块图。图5为用于通过使用保护码、屏蔽码、保护锁码以及屏蔽锁码,来保护一存储器装置上的数据的一示范方法的流程图。图6为一种包括保护码、屏蔽码、保护锁码以及屏蔽锁码的存储器装置的简化方块图。图7为一种包括一存储器的集成电路的另一个实施例的简化方块图。图8为用于通过使用非挥发性保护码及挥发性保护码,来保护一存储器装置上的数据的一示范方法的流程图。图9为一种包括非挥发性保护码及挥发性保护码的存储器装置的简化方块图。图10为用于通过使用非挥发性保护码、挥发性保护码以及保护锁码,来保护一存储器装置上的数据的一示范方法的流程图。图11为一包括非挥发性保护码、挥发性保护码以及保护锁码的存储器装置的简化方块图。图12为用于通过使用非挥发性保护码、挥发性保护码、非挥发性保护码以及另一个保护锁码,来保护一存储器装置上的数据的一示范方法的流程图。图13为一包括非挥发性保护码、挥发性保护码、非挥发性保护码以及另一个保护锁码的存储器装置的简化方块图。【符号说明】DPB:保护码DPBLD:非挥发性保护锁码SPB:保护码SPBLD:保护锁码TUB:挥发性保护屏蔽码TUBLD:屏蔽锁码160:存储器阵列161:地址译码器163:分页缓冲器168:偏压配置电源电压/偏压配置电源电压方块169:控制器174:周边电路/方块175:集成电路210:计算机系统212:总线次系统214:处理器216:网络接口次系统218:通信网络220:用户接口输出装置222:用户接口输入设备224:存储次系统226:存储器次系统228:文件存储次系统230:主要随机存取存储器232:只读存储器310至330:步骤410:请求420:更新存储的屏蔽码421:决定供特定区段用的屏蔽码的数值430:更新存储的保护码431:决定供特定区段用的保护码的数值510至550:步骤610:请求620:将保护锁码设定至第一数值(锁定模式)621:阻止对于保护码的改变630:将保护屏蔽锁码设定至第一数值(锁定模式)631:阻止对于保护屏蔽码的改变640:允许对于保护码的改变641:决定供特定区段用的保护码的数值650:将所有保护屏蔽码重设至第二数值(未屏蔽状态)651:决定供特定区段用的保护屏蔽码的数值810至840:步骤910:请求920:设定关于第一保护码的数值921:将第一保护码的数值复制至供各个区段用的第二保护码930:设定关于第二保护码的数值931:决定供特定区段用的第二保护码1010至1050:步骤1110:请求1120:将保护锁码SPBLD设定至第一数值(锁定状态)1121:阻止对于所有第一保护码(SPB)的改变1130:将所有第一保护码设定至第二数值1131:决定供特定区段用的第一保护码(SPB)的数值1132:将供特定区段用的第二保护码(DPB)设定至第一数值(保护状态)1140:设定或重设供特定区段用的第二保护码1141:决定供特定区段用的第二保护码(DPB)1210至1250:步骤1310:请求1320:设定供保护锁码SPBLD用的数值1321:决定保护锁码SPBLD的数值1330:设定供第一保护码用的数值1331:同步化至对于第一保护码的更进一步的改变1340:设定供非挥发性保护锁码DPBLD用的数值1341:阻止改变第二保护码(DPB)的请求1351:决定供特定区段用的第二保护码(DPB)具体实施方式以下将参考附图提供本技术的实施例的详细说明。图1为一种包括一存储器的集成电路175的简化方块图。于此例子中,集成电路175包括一个具有多个区段(sectors)的存储单元的存储器阵列160。每个区段为一存储器阵列160的区域。每个区段的位置及范围可被逻辑地定义,且不需对应至阵列160的实体分割。这些区段可具有横越过此阵列160的一致或不同的尺寸。一区段可使其存取由如于此所说明的一个或多个保护码来控制。基于闪存、相变存储器、磁阻随机存取存储器(MagnetoresistiveRandom-Access-Memory,MRAM)、电可抹除可编程只读存储器(ElectricallyErasableProgrammableReadOnlyMemory,EEPROM)或其他适当的非挥发性存储器技术,此阵列160中的存储单元可包括非挥发性存储单元。一地址译码器161耦接至此阵列160。地址被供应至集成电路175并提供给地址译码器161。地址译码器161可包括数个字线译码器、数个位线译码器以及用于译码供应的地址并选择此阵列160中的对应的存储单元的其他适当的译码器。此阵列160中的数条位线耦接至一分页缓冲器163,分页缓冲器163因而耦接至其他周边电路174。分页缓冲器163可包括一个或多个存储元件(例如,闩锁),以供连接的每条位线用。地址译码器161可选择并经由各个连接位线,将此阵列160中的特定存储单元耦接至分页缓冲器163。接着,分页缓冲器163可存储被写入至这些特定存储单元,或从这些特定存储单元被读取的数据。周边电路包括通过使用并非是此阵列160的一部分的逻辑电路或模拟式电路而形成的电路,例如地址译码器161、控制器169、偏压配置电源电压方块168等等。于此例子中,标有其他周边电路的方块174可包括数个输入-输出(I/O)电路、数个输出数据缓冲器以及集成电路175上的其他电路组件,例如一通用处理器或特殊用途应用电路,或一提供被此阵列160所支持的系统单芯片功能的模块的组合。譬如实施作为一状态机的控制器169提供数个信号,以控制集成电路175的其他电路来执行于此所说明的各种操作。这些操作包括编程操作、抹除操作、读取操作以及数据保护操作。控制器169可通过使用如本领域已知的特殊用途逻辑电路系统而被实施。在其他实施例中,控制器包括一种可在相同的集成电路175上被实施的通用处理器,通用处理器执行一计算机编程来控制此装置的操作。在其他实施例中,可利用一特殊用途逻辑电路及一通用处理器的组合,以供控制器的实行用。集成电路175包括存储关于存储器阵列160的一个或多个区段的数据保护码的数个存储器元件。在图1的例子中,集成电路175中的各种存储器元件存储关于存储器阵列160的一个或多个区段的保护码SPB(“非挥发性固态写入保护位”)、保护锁码SPBLD(“SPB锁定位”)、挥发性保护屏蔽码TUB(“挥发性暂时未保护位”),以及屏蔽锁码TUBLD(“TUB锁定位”),如以下更详细说明的。图2为一结合图1所显示的集成电路175的计算机系统210的简化方块图。计算机系统210大致包括至少一处理器214,处理器214经由总线次系统212与一些周边装置相通。这些周边装置可包括一存储次系统224(包括一存储器次系统226及一文件存储次系统228)、数个用户接口输入设备222、数个用户接口输出装置220以及一网络接口次系统216。输入及输出装置允许用户与计算机系统210互动。网络接口次系统216提供一个到外部网络的接口(包括一个到通信网络218的接口),并经由通信网络218耦接至其他计算机系统中的对应的接口装置。通信网络218可包括许多互相连接计算机系统及通信链接。这些通信链接可以是有线连接、光学连接、无线连接或任何其他供信息的通信用的机制。虽然在一个实施例中,通信网络218为因特网,但通信网络218可以是任何适当的计算机网络。用户接口输入设备222可包括一键盘、指向装置(例如一鼠标、轨迹球、触摸板或绘图板)、一扫描仪、一并入显示器的触控屏幕、音频输入设备(例如语音识别系统、麦克风以及其他形式的输入设备)。一般而言,用语″输入设备″的使用是意图包括用于将信息输入至计算机系统210中或至通信网络218之上的所有可能形式的装置及方法。用户接口输出装置220可包括一显示次系统、一打印机、一传真机或非视觉显示器(例如音频输出装置)。显示次系统可包括一阴极射线管(CathodeRayTube,CRT)、一平板装置(例如一液晶显示器(LiquidCrystalDisplay,LCD))、一投影装置或某些其他用于建立一可见影像的机构。显示次系统也可提供例如经由音频输出装置的非视觉显示。一般而言,用语″输出装置″的使用是意图包括:用于将信息从计算机系统210输出至用户,或至另一个机器或计算机系统的所有可能形式的装置及方法。存储次系统224存储编程及数据结构,并提供计算机系统210的功能的软件模块。这些软件模块通常是由处理器214所执行。存储器次系统226一般包括一些存储器,其包括一在通过处理器214的编程执行期间存储指令及数据的主要随机存取存储器(RandomAccessMemory,RAM)230,以及一其中存储固定指令的只读存储器(ReadOnlyMemory,ROM)232。存储器次系统226也包括参考图1所说明的集成电路175。集成电路175提供计算机系统210用的编程码及数据文件的存储。文件存储次系统228提供计算机系统210用的编程及数据文件的存储,且可包括一硬式磁盘驱动器、一软式磁盘驱动器连同相关的可移式媒体、一CD-ROM光驱、一光驱或可移式媒体盒。总线次系统212提供一种机制,用于让计算机系统210的各种组件及次系统如意欲地彼此通信。虽然总线次系统212概要显示为单一总线,但总线次系统的替代实施例可使用多个总线。计算机系统210可以是属于变化的形式,包括一个人计算机、一便携计算机、一工作站、一计算机终端机、一网络计算机、一电视机、一智能型手机、一大型计算机或任何其他数据处理系统或用户装置。由于计算机及网络的千变万化的本质,为了阐明优选实施例的目的,图2中所描绘出的计算机系统210的说明只意图作为一特定例子。计算机系统210的多数的其他配置,可能具有比图2中所描绘出的计算机系统更多或更少的组件。计算机系统210(或计算机系统210的一用户)可存取或改变存储于集成电路175中的数据(编程码或资料文件)。举例而言,在一软件编程的执行期间,处理器214可传送一命令(例如,包括一脚本、一地址以及一区块尺寸)至集成电路175,用于释放或抹除集成电路175的存储器阵列160中的一区块的存储单元。回应于此命令,集成电路175的控制器169通过选择(例如,通过地址译码器161)对应于地址及区块尺寸的存储单元,并供应抹除电压脉冲(例如,通过偏压配置电源电压168)至选择的存储单元来执行一抹除操作。然而,如果从选择的存储单元所抹除的数据是打算为另一种使用所用(例如,供另一个软件编程用的编程码或数据文件),则会出现问题。为避免对于存储于集成电路175的存储器阵列中的数据的这种意外或未经授权的改变,关于存储器数据保护的方法通过使用存储于集成电路175中的数据保护码而被提供,如以下更详细说明的。图3为通过使用保护码及屏蔽码来保护一存储器装置上的数据的一示范方法的流程图。图3的方法可通过控制器169、保护码SPB及挥发性保护屏蔽码TUB以及集成电路175的其他适当的组件而被实施,用于保护存储于存储器阵列160中的数据。图3的方法于步骤310开始。于步骤310,控制器将多个保护码(SPB)存储在集成电路175中。每个保护码具有关于存储器阵列160中的一对应区段的存储单元的一个表示一保护状态的第一数值,以及一个表示一未保护状态的第二数值。保护码被存储于存储器元件中,以使保护码在一集成电路175的断电事件期间被维持。一断电事件可以是一种当供集成电路175或集成电路175的一部分(例如,存储保护码的存储器元件或集成电路175的另一组件)用的电力并未被维持(遗失)时的事件。于此例子中,控制器169将保护码存储在一阵列的非挥发性存储器元件(例如一阵列的快闪存储单元)中。控制器169针对此阵列的快闪存储单元执行一抹除操作,用于将所有存储于此阵列的快闪存储单元中的保护码设定至第二数值(未保护状态)。控制器169针对此阵列中的一特定快闪存储单元执行一编程操作,用于将存储于特定快闪存储单元中的保护码设定至第一数值(保护状态)。基于来自一结合集成电路175的系统(例如,计算机系统210)的请求(或来自此系统的一用户的请求),控制器169可执行抹除操作或编程操作。于步骤320,控制器169将一个包括至少一保护屏蔽码(TUB)的设定,存储在集成电路175中。一保护屏蔽码具有关于存储器阵列160中的一对应区段的一个表示一屏蔽状态的第一数值,或一个表示一未屏蔽状态的第二数值。一保护屏蔽码被存储于一存储器元件中,以使保护屏蔽码在一集成电路175的断电事件期间被清除。断电事件可以是一种当供集成电路175或集成电路175的一部分(例如,存储保护屏蔽码的存储器元件或集成电路175的另一个组件)的电力并未被维持(遗失)时的事件。于此例子中,控制器169将包括至少一保护屏蔽码的此设定,存储在一个或多个挥发性存储器元件(例如集成电路175中的静态随机存取存储(StaticRandom-AccessMemory,SRAM)单元)中。控制器169针对选择的挥发性存储单元执行一设定操作,用于将存储于选择的挥发性存储单元中的保护屏蔽码,从第二数值(未屏蔽状态)设定至第一数值(屏蔽状态)。控制器169针对选择的挥发性存储单元执行一重设操作,用于将存储于选择的挥发性存储单元中的保护屏蔽码,从第一数值(屏蔽状态)重设至第二数值(未屏蔽状态)。基于来自一结合集成电路175的系统(例如,计算机系统210)的请求(或来自此系统的一用户的请求),控制器169可执行设定或重设操作。于步骤330,当供特定区段用的保护码具有第一数值(保护状态),且供特定区段用的保护屏蔽码具有第二数值(未屏蔽状态)时,控制器169阻止一特定区段的存储器阵列160的修改。否则控制器169允许特定区段的修改。下面的表1显示供一区段的存储器阵列160用的保护码与屏蔽码的状态组合,以及关于存储于此区段中的数据的保护状态。表1屏蔽码(TUB)保护码(SPB)存储数据未屏蔽未保护未保护未屏蔽保护保护屏蔽未保护未保护屏蔽保护未保护如表1所示,如果保护屏蔽码具有第二数值(未屏蔽状态),则存储数据的保护状态由保护码所决定。如果保护屏蔽码具有第一数值(屏蔽状态),则保护屏蔽码“屏蔽”保护码的数值,而存储数据总是未保护。图4为一种包括保护码及屏蔽码的存储器装置(例如集成电路175)的简化方块图。于此例子中,控制器169可从一结合集成电路175的系统(例如,图2中的计算机系统210)接收修改(编程或抹除)存储于存储器阵列160中的数据,改变保护码的数值,或改变保护屏蔽码的数值的一个或多个请求(410)。请求410可通过一操作系统或一由计算机系统210的处理器214所执行的软件编程而开始。请求410也可基于一用户命令。举例而言,响应于一改变保护码的数值的请求410,控制器169存取存储保护码的非挥发性存储器阵列,并依据此请求更新存储的保护码(430)。同样地,响应于一改变屏蔽码的数值的请求,控制器169存取存储屏蔽码的此组的挥发性存储单元,并依据此请求更新存储的屏蔽码(420)。响应于一修改存储于存储器阵列160中的数据的请求410,控制器169首先决定一包括对应于此请求的数据的特定区段。控制器169接着决定供特定区段用的保护码的数值(431)及屏蔽码的数值(421)。控制器169屏蔽保护码的数值与屏蔽码的数值,并决定对于存储于特定区段中的数据的修改是否是可允许的,如以上述表1所说明的。如果对于存储于特定区段中的数据的修改是可允许的,则控制器169继续执行一对应于请求410的操作(例如,一抹除操作或一编程操作)。如果对于存储于特定区段中的数据的修改并非是允许的,则控制器169否认请求410,并回传一错误信息至结合集成电路175的系统。存储器阵列160中的这些区段的存储单元可以受到一个或多个保护码与一个或多个屏蔽码的不同组合所保护。举例而言,每个区段可具有一对应的保护码(存储于非挥发性存储器阵列中)及一对应的屏蔽码(存储于挥发性存储器元件中)。关于另一例子,每个区段具有一对应的保护码,而存储器阵列160中的所有区段具有一个屏蔽码。依此方式,所有区段可通过将一个屏蔽码设定至第一数值(屏蔽状态)而未受保护。关于又另一个例子,存储器阵列160中的所有区段具有一个保护码,而每个区段具有一对应的屏蔽码。依此方式,所有区段可以受到默认值所保护(也就是,一个保护码具有第一数值)。一个或多个区段可通过将相对应的屏蔽码设定至第一数值(屏蔽状态)而未受保护。保护码及屏蔽码的组合(如以图3及图4所说明的),提供一种用于保护存储于集成电路175中的数据的弹性方法。举例而言,因为存储于非挥发性存储器阵列中的保护码在一断电事件期间被维持,所以保护码可在集成电路175被断电之后,被使用作为一供存储器阵列160中的区段用的默认值保护设定。屏蔽码可被使用来通过将对应于特定区段的屏蔽码设定至第一数值(屏蔽状态),从而使屏蔽对应于特定区段的保护码的数值并未保护这些特定区段,来动态地调整一个或多个特定区段的保护状态。在某些情况下,理想上是可在设定其对应的保护码或屏蔽码之后维持一区段的存储单元受保护(或未受保护)。供图3及图4中所说明的保护锁码及屏蔽码用的额外锁码,可被使用来在设定其对应的保护码或屏蔽码之后,维持一区段的存储单元受保护(或未受保护),如于图5及图6所显示于下的。图5为用于通过使用保护码、屏蔽码、保护锁码以及屏蔽锁码,来保护一存储器装置上的数据的一示范方法的流程图。图5的方法可通过控制器169、保护码SPB、挥发性保护屏蔽码TUB、保护锁码SPBLD及屏蔽锁码TUBLD,以及集成电路175的其他适当的组件而被实施,用于保护存储于存储器阵列160中的数据。图5的方法于步骤510开始。如于图3的步骤310,于步骤510,控制器169将一阵列的非挥发性存储器元件(例如,一阵列的快闪存储单元)中的多个保护码(SPB)存储在集成电路175中。每个保护码具有关于存储器阵列160中的一对应区段的存储单元的一个表示一保护状态的第一数值,以及一个表示一未保护状态的第二数值。控制器169针对此阵列中的所有非挥发性存储器元件执行一抹除操作,用于将存储于存储器元件中的保护码设定至第二数值(未保护状态)。控制器169针对此阵列中的一特定非挥发性存储器元件执行一编程操作,用于将存储于特定非挥发性存储器元件中的保护码设定至第一数值(保护状态)。如于图3的步骤320,于步骤520,控制器169将一包括至少一保护屏蔽码(TUB)的设定,存储在集成电路175的一挥发性存储器元件(例如,一SRAM单元)中。一保护屏蔽码具有关于存储器阵列160中的一对应区段的一个表示一屏蔽状态的第一数值,或一个表示一未屏蔽状态的第二数值。控制器169针对挥发性存储器元件执行一设定操作,用于将存储于挥发性存储器中的保护屏蔽码,从第二数值(未屏蔽状态)设定至第一数值(屏蔽状态)。控制器169针对挥发性存储器元件执行一重设操作,用于将存储于挥发性存储器中的保护屏蔽码,从第一数值(屏蔽状态)重设至第二数值(未屏蔽状态)。于步骤530,控制器169将一保护锁码(SPBLD)存储在集成电路175的一次性可编程存储器元件(例如,一反熔丝,或一不具有抹除支持电路的快闪存储单元)中。保护锁码具有一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。当保护锁码具有第一数值(锁定模式)时,控制器169阻止对于存储于非挥发性存储器阵列中的保护码的改变。基于来自一结合集成电路175的系统(例如,计算机系统210)的请求(或来自此系统的一用户的请求),控制器169可将保护锁码设定至第一数值或第二数值。于步骤540,控制器169将一屏蔽锁码(TUBLD)存储在集成电路175的一次性可编程存储器元件(例如,一反熔丝,或一不具有抹除支持电路的快闪存储单元)中。屏蔽锁码具有一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。当屏蔽锁码具有第一数值(锁定模式)时,控制器169阻止对于存储于挥发性存储器元件中的屏蔽码的改变。基于来自一结合集成电路175的系统(例如,计算机系统210)的请求(或来自此系统的一用户的请求),控制器169可将屏蔽锁码设定至第一数值或第二数值。如于图3的步骤330,于步骤550,当供特定区段用的保护码具有第一数值(保护状态),且供特定区段用的保护屏蔽码具有第二数值(未屏蔽状态)时,控制器169阻止一特定区段的存储器阵列160的修改。否则控制器169允许特定区段的修改。如以表1所说明的,如果保护屏蔽码具有第二数值(未屏蔽状态),则存储数据的保护状态由保护码所决定。如果保护屏蔽码具有第一数值(屏蔽状态),则保护屏蔽码屏蔽保护码的数值,而存储数据总是未保护。图6为一种包括保护码、屏蔽码、保护锁码及屏蔽锁码的存储器装置(例如集成电路175)的简化方块图。于此例子中,控制器169可从一结合集成电路175的系统(例如,图2中的计算机系统210)接收修改(编程或抹除)存储于存储器阵列160中的数据,改变保护码或屏蔽码的数值,或编程保护锁码或屏蔽锁码的一个或多个请求(610)。请求610可通过一操作系统或一由计算机系统210的处理器214所执行的软件编程而开始。请求410也可基于一用户命令。举例而言,响应于一修改存储于存储器阵列160中的数据的请求610,控制器169首先决定一个包括对应于此请求的数据的特定区段。控制器169决定供特定区段用的保护屏蔽码的数值(651)。控制器169决定供特定区段用的保护码的数值(641)。控制器169屏蔽保护码的数值与屏蔽码的数值,并决定对于存储于特定区段中的数据的修改是否是可允许的,如以上述表1所说明的。如果对于存储于特定区段中的数据的修改是可允许的,则控制器169继续执行一对应于请求610的操作(例如,一抹除操作或一编程操作)。如果对于存储于特定区段中的数据的修改并非是允许的,则控制器169否认请求610并使一错误信息回到结合集成电路175的系统。回应于一用于编程保护锁码的请求610,控制器169通过为保护锁码来编程一次性可编程存储器元件,而将保护锁码设定至第一数值(锁定模式)(620)。响应于一对于保护码的改变的请求610,控制器169首先决定保护锁码是否具有第一数值(锁定模式)。如果保护锁码具有第一数值,则控制器169阻止对于保护码的改变(621)。否则,控制器169允许对于保护码的改变(640)。回应于一用于编程保护屏蔽锁码的请求610,控制器169通过为屏蔽锁码编程一次性可编程存储器元件而将保护屏蔽锁码设定至第一数值(锁定模式)(630)。控制器169也将所有保护屏蔽码重设至第二数值(未屏蔽状态)(650),接着,阻止对于保护屏蔽码的改变(631)。依此方式,屏蔽码在保护屏蔽锁码被设定到第一数值(锁定模式)之后,被锁住以免于屏蔽供存储器阵列160中的所有区段用的保护码。在另一实施例中,在将保护屏蔽锁码设定至第一数值(锁定模式)之后,控制器169阻止将选择的屏蔽码从第二数值(未屏蔽状态)设定至第一数值(屏蔽状态)的改变,并允许将选择的屏蔽码从第一数值(屏蔽状态)重设至第二数值(未屏蔽状态)的改变。依此方式,在保护屏蔽锁码被设定到第一数值(锁定模式)之后,没有保护码可更进一步被屏蔽码所屏蔽。除了使用两个不同的一次性可编程存储器元件来存储保护锁码与屏蔽锁码以外,可使用不同形式或组合的存储器元件以存储保护锁码与屏蔽锁码。举例而言,可使用单一的一次性可编程存储器元件,以存储一个具有一个表示一锁定模式的第一数值,以及表示一未锁定模式的第二数值的单一锁码。单一锁码代表保护锁码与屏蔽锁码两者。在编程一次性可编程存储器元件并将锁码设定至第一数值(例如,响应于一请求610)之后,控制器169阻止对于保护码的改变,将屏蔽码设定至第二数值(未屏蔽状态),然后阻止对于屏蔽码或保护码的改变。关于另一例子,一组一次性可编程存储器元件用于存储屏蔽锁码。此组一次性可编程存储器元件的每一个,存储关于存储器阵列160中的一特定区段的存储单元的一屏蔽锁码。每个屏蔽锁码具有一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。回应于一用于为一特定区段编程一屏蔽锁码的请求610,控制器169通过编程存储供特定区段用的屏蔽锁码的一次性可编程存储器元件,而将供特定区段用的屏蔽锁码设定至第一数值(锁定模式)。控制器169也将供特定区段用的屏蔽码设定至第二数值(未屏蔽状态),接着,阻止对于供特定区段用的屏蔽码的改变。依此方式,在保护屏蔽锁码(供特定区段用)被设定到第一数值(锁定模式)之后,供一特定区段(而不是所有区段)用的屏蔽码被锁住以免于屏蔽供特定区段用的保护码。图6所显示的屏蔽锁码与保护锁码,可被存储于密码保护的存储器元件中。举例而言,保护锁码可被存储于集成电路175的一密码保护的存储器元件中。于一开始事件(例如,当集成电路175断电后再通电时),保护锁码被设定到第一数值(锁定模式),从而阻止对于保护码的改变。保护锁码可被重设至具有一密码的第二数值(未锁定模式)(例如,由结合集成电路175的系统的一用户所提供的一64位数)。在保护锁码被重设至第二数值(未锁定模式)之后,控制器169允许对于保护码的改变。控制器169可将保护锁码设定至第一数值(例如,响应于一请求610),从而阻止对于保护码的更进一步的改变。依此方式,存储于非挥发性存储器阵列中的保护码经由一断电及通电周期被维持,且无法在没有提供一密码的情况下被改变。屏蔽锁码可被存储于一集成电路175的密码保护的存储器元件中。于一开始事件(例如,当集成电路175断电后再通电时),控制器169将屏蔽锁码设定至第一数值(锁定模式),从而阻止对于保护屏蔽码的改变。控制器169也将屏蔽码重设至第二数值(未屏蔽状态)。依此方式,当集成电路175被启动时,保护码并非被屏蔽码所屏蔽。屏蔽锁码可被重设至具有一密码的第二数值(未锁定模式)(例如,由结合集成电路175的系统的一用户所提供的一64位数)。在屏蔽锁码被重设至第二数值(未锁定模式)之后,控制器169允许对于保护屏蔽码的改变。控制器169可将屏蔽锁码设定至第一数值(例如,响应于一请求610),从而阻止对于保护屏蔽码的更进一步的改变。保护锁码可被存储于一集成电路175的挥发性存储器元件(例如,一SRAM单元)中。于一开始事件(例如,当集成电路175断电后再通电时),控制器169将保护锁码设定至第二数值(未锁定状态),从而允许对于保护码的改变。响应于一用户命令(例如,经由请求610),控制器169将保护锁码设定至第一数值(锁定状态),从而阻止保护码的改变。保护锁码无法设定到第二数值(未锁定状态),直到另一个开始事件(例如,断电后再通电或硬件重设)为止。屏蔽锁码可被存储于一集成电路175的挥发性存储器元件(例如,一SRAM胞)中。于一开始事件(例如,当集成电路175断电后再通电时),控制器169将屏蔽锁码设定至第二数值(未锁定状态),从而允许对于屏蔽码的改变。响应于一用户命令(例如,经由请求610),控制器169将屏蔽锁码设定至第一数值(锁定状态),从而阻止屏蔽码的改变。屏蔽锁码无法设定到第二数值(未锁定状态)直到另一个开始事件(例如,断电后再通电或硬件重设)为止。图7为集成电路175的另一个实施例的简化方块图。于此例子中,集成电路175包括数个第一保护码SPB(“固态写入保护位”)、一保护锁码SPBLD(“SPB锁定位”)、数个第二保护码DPB(“动态写入保护位”)以及一保护锁码DPBLD(“DPB锁定位”),以供存储器阵列160中的一个或多个区段的保护状态使用,如以下更详细说明的。图8为用于通过使用非挥发性保护码及挥发性保护码,来保护一存储器装置上的数据的一示范方法的流程图。图8的方法可通过控制器169、第一保护码SPB与第二保护码DPB以及集成电路175的其他适当的组件而被实施,用于保护存储于存储器阵列160中的数据。图8的方法于步骤810开始。于步骤810,控制器169将多个第一保护码(SPB)存储在集成电路175中。每个第一保护码具有关于存储器阵列160中的其对应区段的存储单元的一个表示一保护状态的第一数值,以及一个表示一未保护状态的第二数值。第一保护码被存储于集成电路175中,以使第一保护码在一断电事件期间被维持。于此例子中,控制器169将第一保护码存储在一阵列的非挥发性存储器元件(例如一阵列的快闪存储单元)中。控制器169针对非挥发性存储器阵列执行一抹除操作,用于将所有第一保护码设定至第二数值(未保护状态)。控制器169针对一存储于非挥发性存储器阵列中的选择的第一保护码执行一编程操作,用于将选择的第一保护码设定至第一数值(保护状态)。基于来自一结合集成电路175的系统(例如,计算机系统210)的请求(或来自此系统的一用户的请求),控制器169可执行抹除操作或编程操作。于步骤820,控制器169将多个第二保护码(DPB)存储在集成电路175中。每个第二保护码具有关于存储器阵列160中的一对应区段的存储单元的一个表示一保护状态的第一数值,或一个表示一未保护状态的第二数值。第二保护码被存储于集成电路175中,以使第二保护码在一断电事件期间被清除。于此例子中,控制器169将多个第二保护码存储在一阵列的挥发性存储器元件(例如,一阵列的SRAM单元)中。控制器169针对选择的挥发性存储器元件执行一设定操作,用于将存储于选择的挥发性存储器元件中的第二保护码,从第二数值(未保护状态)设定至第一数值(保护状态)。控制器169针对选择的挥发性存储器元件执行一重设操作,用于将存储于选择的挥发性存储器元件中的第二保护码,从第一数值(保护状态)重设至第二数值(未保护状态)。于步骤830,控制器169在一初始化程序中(例如,当集成电路175被启动时),将第二保护码设定至第一保护码的数值。也就是,第一保护码的数值在一初始化程序中,被复制至供各个区段用的第二保护码。于步骤840,当供特定区段用的第二保护码具有第一数值(保护状态)时,控制器169阻止一特定区段的修改(例如,一抹除或编程操作)。否则控制器169允许特定区段的修改。也就是,存储器阵列160中的一特定区段的存储单元的保护状态,由特定区段的第二保护码的数值所决定。因为第一保护码被存储于非挥发性存储器阵列中,并在一断电事件期间被维持,所以当电源供应为集成电路175重新开始时(例如,在一初始化程序中),第一保护码的数值作为供存储器阵列160中的区段用的一默认值保护设定。图9为一种包括非挥发性保护码及挥发性保护码的存储器装置(例如集成电路175)的简化方块图。于此例子中,控制器169可从一结合集成电路175的系统(例如,图2中的计算机系统210),接收修改(编程或抹除)存储于存储器阵列160中的数据,或改变第一或第二保护码的一个或多个请求(910)。请求910可通过一操作系统或一由计算机系统210的处理器214所执行的软件编程而开始。请求910也可基于一用户命令。举例而言,回应于一请求910,控制器169可设定关于第一保护码的数值(920)或关于第二保护码的数值(930)。在一初始化程序中,控制器169将第一保护码的数值复制至供各个区段用的第二保护码(921)。响应于一修改存储于存储器阵列160中的数据的请求910,控制器169首先决定一个包括对应于此请求的数据的特定区段(属于存储器阵列160)。控制器169决定供特定区段用的第二保护码(931)。如果供特定区段用的第二保护码具有第二数值(未保护状态),则控制器169继续允许对应于此请求的数据的修改。如果特定区段的第二保护码具有第一数值(保护状态),则控制器169阻止对应于此请求的数据的修改,并恢复一错误信息(至结合集成电路175的系统)。第一保护码(SPB)及第二保护码(DPB)的组合提供一种用于保护存储于集成电路175中的数据的弹性方法。第一保护码(如被存储于非挥发性存储器元件中)在一断电事件期间被维持,且当电力为集成电路175重新启动时,被使用作为一默认值保护设定。当集成电路175通过在不需要改变第一保护的情况下,改变关于对应的第二保护码的数值而被供电时,关于存储器阵列160的不同区段的保护状态可动态上且各别地被改变。存储器阵列160中的此些区段的存储单元可受到一个或多个第一保护码(SPB),以及一个或多个第二保护码(DPB)的不同组合保护。举例而言,所有区段可具有一个第一保护码。每个区段具有其对应的第二保护码。依此方式,所有区段被保护(或未被保护)作为默认值。关于一个或多个区段的保护状态,可通过设定它们各自的第二保护码而改变。除了在一开始程序中决定关于第二保护码(DPB)的数值以外,第一保护码(SPB)也可在开始程序之后,决定第二保护码是否可被修改,如以图10及图11说明于下的。图10为用于通过使用非挥发性保护码、挥发性保护码以及保护锁码,来保护一存储器装置上的数据的一示范方法的流程图。图10的方法可通过控制器169、第一保护码SPB、第二保护码DPB以及集成电路175的其他适当的组件而实施,用于保护存储于存储器阵列160中的数据。图10的方法于步骤1010开始。如于图8的步骤810、820及830,控制器169将多个第一保护码(SPB)存储在一阵列的非挥发性存储器元件中(1010),将多个第二保护码(DPB)存储在一阵列的挥发性存储器元件中(1020),并在一初始化程序中将第二保护码设定至第一保护码的数值(1030)。如以图8所说明的,第一保护码具有关于存储器阵列160中的各个区段的一个表示一保护状态的第一数值,或一个表示一未保护状态的第二数值。第二保护码具有关于存储器阵列160中的各个区段的一个表示一保护状态的第一数值,或一个表示一未保护状态的第二数值。此外,于步骤1040,当特定区段的第一保护码具有第一数值(保护状态)时,控制器169阻止对于供一特定区段用的第二保护码的改变。于步骤1050,当供特定区段用的第二保护码具有第一数值(保护状态)时,控制器169阻止一特定区段的修改。否则控制器169允许特定区段的修改。依此方式,一特定区段的第二保护码(DPB)决定特定区段是否被保护。同时,第一保护码(SPB)在一开始程序中决定第二保护码的数值,并在开始程序之后决定第二保护码的数值是否可被改变。图11为一包括非挥发性保护码、挥发性保护码以及保护锁码的存储器装置的简化方块图。于此例子中,控制器169可从一结合集成电路175的系统(例如,图2中的计算机系统210)接收修改(编程或抹除)存储于存储器阵列160中的数据,或改变第一保护码(SPB)、第二保护码(DPB)或一保护锁码(SPBLD)的一个或多个请求(1110)。保护锁码(SPBLD)存储于一集成电路175中的一次性可编程存储器元件中。保护锁码具有一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。当保护锁码具有第一数值(锁定模式)时,阻止对于第一保护码(SPD)的改变。请求1110可通过一操作系统或一由计算机系统210的处理器214所执行的软件编程而开始。请求1110也可基于一用户命令。举例而言,回应于一请求1110,控制器169可通过编程存储保护锁码的一次性可编程存储器元件将保护锁码SPBLD设定至第一数值(锁定状态)(1120)。一旦保护锁码被设定到第一数值,就阻止对于所有第一保护码(SPB)的改变(1121)。响应于一将所有第一保护码(SPB)设定至第二数值(未保护状态)请求1110且当保护锁码具有第二数值(未锁定模式)时,控制器169通过针对存储第一保护码的非挥发性存储器元件执行一抹除操作将所有第一保护码设定至第二数值(1130)。回应于一将一供一特定区段用的选择的第一保护码(SPB)设定至第一数值(保护状态)的请求1110,且当保护锁码具有第二数值(未锁定模式)时,控制器169通过编程存储选择的第一保护码的非挥发性存储器元件,将选择的第一保护码设定至第一数值(1130)。控制器169也将供特定区段用的第二保护码(DPB)设定至第一数值(保护状态)(1132)。响应于一改变供一特定区段用的一第二保护码DPB的数值的请求1110,控制器169决定供特定区段用的第一保护码(SPB)的数值(1131)。如果供特定区段用的第一保护码具有第二数值(未保护状态),则基于请求1110,控制器169设定或重设供特定区段用的第二保护码(1140)。如果供特定区段用的第一保护码具有第一数值(保护状态),则控制器阻止对于供特定区段用的第二保护码的改变。于此,如果供一特定区段用的第一保护码具有第一数值(保护状态),则因为第二保护码被初始化至第一保护码,所以供特定区段用的第二保护码总是具有第一数值,且对于第二保护码的改变被阻止。因此,特定区段总是被保护(“被锁定”),除非第一保护码从第一数值改变至第二数值(未保护状态)。响应于一关于存储器阵列160中的数据的修改的请求1110,控制器169首先决定一包括对应于此请求的数据的存储器阵列160中的特定区段。控制器169决定供特定区段用的第二保护码(DPB)(1141)。如果供特定区段用的第二保护码具有第二数值(未保护状态),则控制器169继续允许对应于此请求的数据的修改。否则,控制器169阻止对应于此请求的数据的修改,并恢复一错误信息(至结合集成电路175的系统)。如以图10的步骤1030所说明的,第一保护码(SPB)的数值在一初始化程序中,被复制至供各个区段用的第二保护码(DPB)。在另一个实施例中,所有第二保护码在一初始化程序中被设定到第一数值(保护状态)(也就是,所有区段预设是受到保护)。依此方式,当集成电路175被启动时,第二保护码(DPB)被设定到保护状态。在另一实施例中,在第二保护码在初始化程序中被设定到第一保护码的数值之前,所有第二保护码在一初始化程序中被设定到第一数值(保护状态)持续一段时间。保护锁码(SPBLD)可被存储于一集成电路175中的密码保护的存储器元件中。于一开始事件(例如,当集成电路175断电后再通电时),保护锁码被设定到第一数值(锁定模式),从而阻止对于第一保护码(SPB)的改变。保护锁码可被重设至具有一密码的第二数值(未锁定模式)(例如,由结合集成电路175的系统的一用户所提供的64位数)。在保护锁码被重设至第二数值(未锁定模式)之后,控制器169允许对于第一保护码的改变。控制器169可将保护锁码设定至第一数值(例如,响应于一请求1110),从而阻止对于第一保护码的更进一步的改变。依此方式,存储于非挥发性存储器阵列中的第一保护码经由一断电及启动周期被维持,且无法在没有提供一密码的情况下被改变。保护锁码可被存储于一集成电路175的挥发性存储器元件(例如,一SRAM单元)中。于一开始事件(例如,当集成电路175断电后再通电时),控制器169将保护锁码设定至第二数值(未锁定状态),从而允许对于保护码的改变。响应于一用户命令(例如,经由请求1110),控制器169将保护锁码设定至第一数值(锁定状态),从而阻止对于第一保护码的改变。第一保护锁码无法被设定到第二数值(未锁定状态),直到另一个开始事件(例如,断电后再通电或硬件重设)为止。在另一实施例中,一非挥发性保护锁码DPBLD决定第二保护码DPB之初始数值,且第二保护码后来如何被修改,如以图12及图13说明于下的。图12为用于通过使用非挥发性保护码、挥发性保护码、非挥发性保护码以及另一个保护锁码,来保护一存储器装置上的数据的一示范方法的流程图。图12的方法可通过控制器169、存储第一保护码SPB的存储器元件、第二保护码DPB与一非挥发性保护锁码DPBLD,以及集成电路175的其他适当的组件而被实施,用于保护存储于存储器阵列160中的数据。图12的方法于步骤1210开始。如于图8的步骤810及820,控制器169将多个第一保护码(SPB)存储在一阵列的非挥发性存储器元件中(1210),并将多个第二保护码(DPB)存储在一阵列的挥发性存储器元件中(1220)。如以图8所说明的,第一保护码具有关于存储器阵列160中的各个区段的一个表示一保护状态的第一数值或一个表示一未保护状态的第二数值。第二保护码具有关于存储器阵列160中的各个区段的一个表示一保护状态的第一数值或一个表示一未保护状态的第二数值。此外,于步骤1230,控制器169将一非挥发性保护锁码(DPBLD)存储在一集成电路175中的一次性可编程存储器元件(例如,一反熔丝)中。非挥发性保护锁码具有一个表示一锁定模式的第一数值,以及表示一未锁定模式的第二数值。于步骤1240,当非挥发性保护锁码具有第一数值(锁定模式)时,控制器169在一初始化程序中(例如,在断电再通电后一段期间)将第二保护码(DPB)设定至第一保护码(SPB)的数值。在初始化程序之后,当对第一保护码做出一改变时,第二保护码被设定到对应的第一保护码的数值。也就是,在初始化程序中,第一保护码的数值被复制至供各个区段用的第二保护码。在初始化程序之后,第二保护码的数值被同步化至供各个区段用的第一保护码。举例而言,当存储器阵列160的一特定区段的第一保护码从第一数值改变至第二数值时,特定区段的第二保护码也从第一数值被改变至第二数值。关于另一个例子,当所有第一保护码被设定到第二数值(例如,通过针对存储第一保护码的非挥发性存储器元件的一抹除操作)时,所有第二保护码也被设定到第二数值(未保护状态)。于步骤1250,当供特定区段用的第二保护码具有第一数值(保护状态)时,控制器169阻止一特定区段的修改。否则控制器169允许特定区段的修改。图13为一种包括非挥发性保护码、挥发性保护码、非挥发性保护锁码,以及另一个保护锁码的存储器装置的简化方块图。于此例子中,控制器169可从一结合集成电路175的系统(例如,图2中的计算机系统210)接收修改(编程或抹除)存储于存储器阵列160中的数据,或改变第一保护码(SPB)、第二保护码(DPB)、非挥发性保护锁码(DPBLD),或另一个保护锁码(SPBLD)的一个或多个请求(1310)。保护锁码SPBLD存储于一集成电路175的一次性可编程存储器元件中。保护锁码SPBLD具有一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。当保护锁码SPBLD具有第一数值(锁定模式)时,阻止对于第一保护码(SPD)的改变。请求1310可通过一操作系统或一由计算机系统210的处理器214所执行的软件编程而开始。请求1310也可基于一用户命令。举例而言,回应于一请求1310,控制器169可设定供非挥发性保护锁码DPBLD用的数值(1340)或供保护锁码SPBLD用的数值(1320)。回应于一个设定供一个或多个第一保护码(SPB)用的数值的请求1310,控制器169首先决定保护锁码SPBLD的数值(1321)。如果保护锁码具有第一数值(锁定模式),则控制器169阻止请求1310。否则,控制器169继续设定供第一保护码用的数值(1330)。如较早所说明的,当非挥发性保护锁码DPBLD具有第一数值(锁定模式)时,控制器169阻止改变第二保护码(DPB)的请求(1341)。第二保护码被初始化至第一保护码(SPB),并被同步化至对于第一保护码的更进一步的改变(1331)。当非挥发性保护锁码DPBLD具有第二数值(未锁定模式)时,控制器169在一初始化程序中,将所有第二保护码(DPB)重设至第二数值(未保护模式)。在初始化程序之后,控制器169允许用于改变第二保护码的数值的请求1310。在初始化程序之后,如果供一特定区段用的第一保护码被设定到第一数值(保护状态),则供特定区段用的相对应的第二保护码也被设定到第一数值。非挥发性保护锁码DPBLD也被设定到第一数值(也就是,对于第二保护码没有允许更进一步的改变)。在一实施例中,当对第一保护码做出一改变时,控制器169将第二保护码设定至对应的第一保护码的数值并将非挥发性保护锁码DPBLD设定至第一数值。注意一旦保护锁码被设定到第一数值,第二保护码就总是具有第一保护码的数值,这是因为第二保护码被初始化至第一保护码的数值,而对于第二保护码的改变被阻止。因此,供存储器阵列160中的区段用的保护状态有效地由第一保护码所决定。响应于一关于存储器阵列160中的数据的修改的请求1310,控制器169首先决定一个包括对应于此请求的数据的存储器阵列160中的特定区段。控制器169决定供特定区段用的第二保护码(DPB)(1351)。如果供特定区段用的第二保护码具有第二数值(未保护状态),则控制器169继续允许对应于此请求的数据的修改。否则,控制器169阻止对应于此请求的数据的修改,并恢复一错误信息(至结合集成电路175的系统)。取代单一非挥发性保护锁码DPBLD的是,可使用多个非挥发性保护锁码DPBLD,以决定各个第二保护码DPB的初始数值,并决定各个保护码后来如何被修改。多个非挥发性保护锁码DPBLD存储于一阵列的一次性可编程存储器元件中。每个非挥发性保护锁码具有关于存储器阵列160中的此些区段的一对应区段的一个表示一锁定模式的第一数值,以及一个表示一未锁定模式的第二数值。当供一个特定区段用的非挥发性保护锁码DPBLD具有第一数值(锁定模式)时,控制器169阻止改变供特定区段用的第二保护码(DPB)的请求。供特定区段用的第二保护码被初始化至供特定区段用的第一保护码(SPB),并被同步化至对于供特定区段用的第一保护码的更进一步的改变。当供一特定区段用的非挥发性保护锁码DPBLD具有第二数值(未锁定模式)时,控制器169在一初始化程序中将供特定区段用的第二保护码(DPB)重设至第二数值(未保护模式)。在初始化程序之后,控制器169允许用于改变供特定区段用的第二保护码的数值的请求1310。在初始化程序之后,如果供特定区段用的第一保护码被设定到第一数值(保护状态),则供特定区段用的相对应的第二保护码也被设定到第一数值。供特定区段用的非挥发性保护锁码DPBLD也被设定到第一数值(也就是,对于第二保护码没有允许更进一步的改变)。注意一旦供一特定区段用的保护锁码被设定到第一数值,供特定区段用的第二保护码就总是具有供特定区段用的第一保护码的数值,这是因为第二保护码被初始化至第一保护码的数值,而对于第二保护码的改变被阻止。因此,供特定区段用的保护状态有效地由相对应的第一保护码所决定。虽然本发明参考上面详述的优选实施例及例子所揭露的,但我们应理解到这些例子是意图呈现一种说明而非限制的意义。应考虑到本领域技术人员将轻易明白修改及组合,其修改及组合将是在本发明的精神与权利要求的范畴之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1