用于从存储器访问关键数据的系统和方法

文档序号:6549399阅读:129来源:国知局
专利名称:用于从存储器访问关键数据的系统和方法
技术领域
本公开涉及一种用于安全地从存储器访问关键数据的系统和方法;特别涉及一种用于确保在系统通电时无错误地访问在存储器中存储的关键数据的系统和方法。
背景技术
在几乎每一个具有处理器和存储器的处理设备中,处理器通过访问用于适当地导通和操作连接到该处理器的组件的控制数据,而控制该设备。一般地,使用存储器的预分配区域来存储对于操作处理设备至关重要的数据,例如,存储在存储器的引导块区域中以便在导通该设备时由处理器访问的BIOS代码、引导代码、以及其它系统导通数据。在引导代码的情况下,在该设备被通电时,处理器首先访问存储器的引导块中的引导代码。在通电时,通过执行从存储器检索的引导代码,而“引导”诸如个人计算机的处理设备。在从电源获得电力的设备或系统中,存在典型为数百微秒的电力“斜线上升”以使电源达到全工作电压。如果在电源达到全工作电压之前从存储器读取数据,则可能不正确地读取数据。在这样的情况下,在引导操作期间将有可能发生错误,并且该设备或系统不能被正确地启动。
避免由于在全电压之前从存储器访问引导代码而造成的引导操作错误的一种提议是利用延迟电路或振荡器的有意(intentional)延迟,以将引导代码的存储器访问延迟预定的时间量从而允许电源在存储器访问之前达到全工作电压。然而,如果延迟时间的设置太长,则“引导”处理设备所需的时间量增大,而如果预定延迟太短,则电源电压可能尚未达到全工作电压,并且从存储器的数据访问可能由于电压不足而出错。此外,由于电压导通速率针对每个电源是不同的,因此可能难以预置某个预定延迟时间。
因此,需要一种用于不管电源导通的差异而安全地从存储器访问数据的设备或方法。

发明内容
提供了一种存储器系统,其包括主存储器,存储主数据和参考数据;第一存储装置,存储参考数据;以及控制器,当接收到加电信号时从主存储器访问参考数据,并且当测试出从主存储器检索的参考数据与第一存储装置中的参考数据相同时,将主数据装载到第二存储装置中。第一存储装置是寄存器,并且第二存储装置是RAM。
根据本发明的一个方面,主数据包括引导代码。参考数据是预先装载在主存储器和第一存储装置中的预定代码。主存储器是非易失性存储器。
根据本发明的另一方面,主存储器是闪存,并且还优选地是NAND类型。参考数据被预先存储在一次性可编程(OTP)块中。
根据另一方面,第一存储装置被嵌入在控制器中,控制器和主存储器被嵌入在单个芯片内,或者存储器系统被安设在存储卡上。
还提供了一种电路,其包括存储器,具有预先存储的引导代码和参考数据;以及控制器,具有包含预先存储的参考数据的寄存器,其中在通电时,控制器从存储器访问参考数据,并且比较所访问的参考数据与存储在寄存器中的参考数据,并且如果从存储器访问的参考数据与寄存器中的相同,则将引导代码装载到引导RAM中。
该电路还包括延迟电路,在通电时将访问参考数据延迟给定的时间周期。延迟电路是振荡器,其中预定延迟时间周期是大约100到200微秒。存储器优选地是非易失性存储器,其可以是闪存,并且为NAND类型。该电路优选地被集成在单个芯片中。
根据本发明的另一方面,提供了一种装载数据的方法,包括在主存储器中存储主数据和参考数据;在第一存储装置中存储参考数据;当接收到加电信号时,从主存储器访问参考数据;比较第一存储装置中的参考数据与从主存储器访问的参考数据;以及如果第一存储装置中的参考数据与从主存储器访问的参考数据相同,则将主数据装载到第二存储装置中,其中主存储器是非易失性存储器或NAND闪存,第一存储装置是寄存器,并且第二存储装置是RAM,其中参考数据被存储在一次性可编程(OTP)块中。
优选地,主数据包括引导代码,其中主数据和参考数据被预先装载在主存储器中,参考数据被预先装载在第一存储装置中,并且在通电时生成加电信号。
该方法还包括如果从主存储器检索的参考数据不同于第一存储装置中的参考数据,则从主存储器重新访问参考数据。
根据另一种引导非易失性存储器的方法,其包括在主存储器中预先存储引导代码和参考数据;在寄存器中预先存储参考数据;在通电时从主存储器访问参考数据;比较寄存器中的参考数据与从主存储器访问的参考数据;以及如果寄存器中的参考数据与从主存储器访问的参考数据相同,则将引导代码装载到引导RAM中,而如果不同,则重复从主存储器访问参考数据并将其与寄存器中的参考数据进行比较。


通过参照附图详细描述本发明的示例性实施例,本领域的普通技术人员将会理解本发明的特性,其中相同的单元以相同的标号表示图1是根据本发明实施例的存储器系统的方框图。
图2是图1的系统的操作的图示。
图3是图示了图2的存储器系统的操作的示例性过程的流程图。
图4是示出了根据本发明另一个实施例的存储器系统的方框图。
图5是图4的存储器系统的操作的图示。
图6是示出了图4的存储器系统的操作的示例性过程的流程图。
图7是根据本发明另一个实施例的存储器系统的方框图。
图8是图示了图7的存储器系统的操作的示例性过程的流程图。
图9是根据本发明另一个实施例的存储器系统的方框图。
图10是图示了图9的存储器系统的操作的示例性过程的流程图。
具体实施例方式
图1示出了根据本发明实施例的存储器系统的方框图。参照图1,存储器系统10包括存储器100、控制器300和参考数据存储装置200。存储器100具有用于存储主数据的主区域101,其中主数据是对于存储器系统的操作至关重要的数据。主数据的例子是引导代码、BIOS代码、或操作系统代码等。存储器101还包括用于存储测试数据(以下称作“伪数据”)的伪区域102,其中测试数据是用于如下面进一步描述的那样测试所施加电压的准备就绪(readiness)的数据。伪数据也被存储在参考数据存储装置200中。控制器300包括处理器(未示出),其用于控制存储器系统的操作,包括从存储器100并从参考数据存储装置200检索数据。当首次导通存储器系统10时,或者当存在通电复位操作时,将电压Vcc从电源提供给存储器系统10。如同在大多数处理设备中一样,在通电时,控制器300从存储器100检索诸如引导代码的操作系统代码,以引导存储器系统。根据本发明的本实施例,参考数据存储装置200被预先存储了存储在存储器100的伪区域102中的相同伪数据。在导通或通电复位(POR)时,控制器300从存储器100的伪区域102检索伪数据,并且对所检索的伪数据与还预先存储在参考数据存储装置200中的伪数据进行比较。如果从存储器100的伪区域102检索的伪数据与从参考数据存储装置200检索的伪数据相同,则该比较将输出真比较。如果提供给存储器系统的电压Vcc还没有达到足够的电压电平,则从存储器100的伪区域102检索的伪数据将不正确,并且该比较将不产生真输出。在该比较产生假输出时,控制器300重复伪数据的检索和比较过程,直到该比较操作表示从存储器100检索的伪数据与存储在参考数据存储装置200中的伪数据相同为止。真比较表示在存储器系统处施加的电压Vcc达到了全电压,或者无论如何达到了对于从存储器100正确地检索数据是足够的电压电平。然后,由控制器300检索存储器100的主区域101中的主数据。
图2是由图1的存储器系统10执行的主数据检索过程的图示。如图2所示,在发生例如来自POR操作的加电信号时,从存储器100反复地装载伪数据,直到比较出伪数据与参考数据相同为止,然后从存储器100检索主数据。主数据检索可在所施加的电压Vcc达到全工作电压的同时的时刻1a、或者在Vcc达到了全工作电压之后的时刻2a、或者在Vcc达到全工作电压之前的3a开始,只要比较出从存储器100检索的伪数据与预先存储在参考数据存储装置200中的伪数据相同即可。该过程确保存储器系统10在Vcc以足够的所施加电压正确地工作,使得在装载关键数据之前从存储器100检索的数据没有错误。
再次参照图1,参考数据存储装置200可以是任何数据存储装置,例如寄存器、RAM、ROM等。参考数据存储装置200可以在控制器300内,或者连接到控制器300。存储器100可以是易失性或非易失性存储器,例如RAM、ROM或闪存。
图3是示出了使用图1的存储器系统装载主数据的示例性过程的流程图。在通电复位时,将输入电源电压Vcc施加到存储器系统10(S100)。在导通或发生POR信号时,电源斜线上升以提供电压Vcc(S110)。控制器300从伪区域102检索伪数据(S200)。控制器300检索存储在参考数据存储装置200中的伪数据,并且比较这两个伪数据,以确定它们是否相同(S300);如果这两个伪数据不相同,则输出假比较,并且从存储器100的伪区域102再次检索伪数据,并且将新检索的伪数据与从参考数据存储装置200检索的伪数据再次进行比较。重复该装载和比较过程,直到该比较通过真比较输出而表示这两个伪数据相同为止。然后,从存储器100的主区域101装载或检索主数据(S400)。
图4示出了根据本发明另一个实施例的存储器系统。对于本实施例,引入了延迟电路400,存储器系统20的其它组件包括存储器100、控制器300和参考数据存储装置200。除了延迟电路用来将电压Vcc的施加延迟由延迟电路400设置的预定时间之外,这些组件具有与图1相同的标号,并且其操作和功能与上面关于图1所述相同。因此,直到该时间延迟过去之后才开始从存储器100检索伪数据。存储器系统20优选地被安设在存储卡上。
图5是由图4的存储器系统20执行的主数据检索过程的图示。如图5所示,在发生例如来自POR操作的加电信号时,施加输入的电源电压,并且Vcc斜线上升。在由延迟电路400设置的持续期的时间延迟之后,从存储器100反复地装载伪数据,直到比较出该伪数据与参考数据相同为止,然后从存储器100检索主数据。根据该实施例,直到该延迟时间周期之后才开始伪数据检索,但是主数据检索可在所施加的电压Vcc达到全工作电压的同时的时间1b、或者在该Vcc达到了全工作电压之后的时间2b、或者在该Vcc达到了全工作电压之前的3b开始,只要比较出从存储器100检索的伪数据与预先存储在参考数据存储装置200中的伪数据相同即可。根据本实施例使用延迟电路减少了检索和比较过程的重复次数,同时确保存储器系统10在Vcc以足够的所施加电压适当地操作,使得在装载关键数据之前从存储器100检索的数据没有错误。延迟电路优选地由振荡器、阻-容(RC)时间常数网络或线延迟实现。时间延迟优选地为大约100到200微秒。
图6是示出了使用图4的存储器系统装载主数据的示例性过程的流程图。在通电复位时,将输入的电源电压Vcc施加到存储器系统20(S100)。在导通或发生POR信号时,电源斜线上升以提供电压Vcc(S110)。由延迟电路400将电压Vcc的施加延迟预定的持续时间(S120)。然后,控制器300从伪区域102检索伪数据(S200)。控制器300检索存储在参考数据存储装置200中的伪数据,并且比较这两个伪数据以确定它们是否相同(S300);如果这两个伪数据不相同,则输出假比较,并且从存储器100的伪区域102再次检索伪数据,并且将新检索的伪数据与从参考数据存储装置200检索的伪数据再次进行比较。重复该装载和比较过程,直到该比较通过真比较输出而表示这两个伪数据相同为止。然后,从存储器100的主区域101装载或检索主数据(S400)。
图7是根据本发明另一个实施例的存储器系统30的方框图。参照图7,存储器系统30包括闪存110、通电复位电路330、存储器控制器310、寄存器210、以及引导RAM 320。
闪存110优选地为NAND类型,其具有包含多个块即引导块、块1-块n、以及一次性可编程(OTP)块的存储单元阵列120。引导块121典型地用于存储处理器为执行引导操作而访问的引导代码。OTP块122典型地用于存储闪存的用户期望ID(例如,制造商的序列号、制造日期、或安全性数据)。OTP数据在OTP块中仅被编程一次。根据本发明的本实施例,伪数据可被存储在闪存110的OTP块122以及寄存器210中。存储器控制器310在引导操作期间控制存储器系统30的所有操作。为了在施加电源电压(Vcc)并由POR电路330对存储器系统30加电之后安全地装载引导代码,存储器控制器310在装载引导代码之前反复地装载OTP(伪)数据。将OTP数据与存储在寄存器210中的参考数据进行比较。如果OTP数据与参考数据相同,则存储器控制器310装载引导块121中的引导代码,并且将所装载的引导代码传输到引导RAM320。引导RAM 320存储从NAND闪存110传输的引导代码。主机访问在引导RAM 320中存储的引导代码,以执行引导操作。
图8是示出了引导图7所示的存储器系统30的步骤的流程图。将电源电压(Vcc)施加到存储器系统30(S100)。如果由POR电路330对存储器系统30加电(S110),则存储器控制器310装载OTP块122中的OTP数据(S210)。存储器控制器310检查OTP数据是否与存储在寄存器210中的参考数据相同(S310)。如果OTP数据与参考数据不同,则存储器控制器310重新装载OTP块122中的OTP数据。当反复地装载OTP数据的时候,电源电压由POR电路330而斜线上升至全电压。任何公知的加电电路可用作将电压Vcc施加到存储器控制器310的POR电路。一旦所施加的电压Vcc达到对于正确地操作存储器系统30的组件是足够的电压电平,将比较出从闪存110检索的OTP数据与存储在寄存器210中的参考(伪)数据相同。然后,存储器控制器310装载引导块121中的引导代码(S410)。将由存储器控制器310装载的引导代码传输到引导RAM 320(S510)。主机访问存储在引导RAM 320中的引导代码,以执行引导操作(S610)。
图9是示出了根据本发明的另一个实施例的方框图。该存储器系统40包括具有与图7所示相同的标号的组件。这些组件执行与图7所述相同的操作和功能。根据本实施例,存储器系统40还包括振荡器340,其用于延迟电压Vcc的施加,因此也将OTP伪数据的检索延迟预定的时间。振荡器340提供与如图4所述的延迟电路400相同的功能。根据本实施例的另一方面,包括NAND闪存110、引导RAM 320、寄存器210、振荡器340以及存储器控制器310的存储器系统40优选地被集成在单个芯片中。
图10是示出了引导图9所示的存储器系统40的步骤的流程图。在存储器系统40中,由主机执行的引导代码装载操作和引导操作与上面关于图8所述相同。在加电步骤(S110)与OTP数据装载步骤(S200)之间包括了延迟OTP数据装载的步骤(S120)。振荡器340的预定延迟时间优选地在100到200微秒之间。
这样描述了本发明的示例性实施例之后,应当理解,由于在不脱离如所附权利要求限定的本发明的精神或范围的情况下,其很多明显的变更是可能的,因此由所附权利要求限定的本发明不局限于在上面对示例性实施例的描述中阐述的特定细节。
权利要求
1.一种存储器系统,包括主存储器,存储主数据和参考数据;第一存储装置,存储参考数据;以及控制器,当接收到加电信号时从主存储器访问参考数据,并且当测试出从主存储器检索的参考数据与第一存储装置中的参考数据相同时,将主数据装载到第二存储装置中。
2.如权利要求1所述的存储器系统,其中该主数据包括引导代码。
3.如权利要求1所述的存储器系统,其中该参考数据是预先装载在主存储器和第一存储装置中的预定代码。
4.如权利要求1所述的存储器系统,其中该主存储器是非易失性存储器。
5.如权利要求4所述的存储器系统,其中该参考数据被预先存储在一次性可编程(OTP)块中。
6.如权利要求1所述的存储器系统,其中该主存储器是闪存。
7.如权利要求1所述的存储器系统,其中第一存储装置是寄存器,并且第二存储装置是RAM。
8.如权利要求1所述的存储器系统,其中第一存储装置被嵌入在控制器中。
9.如权利要求1所述的存储器系统,其中控制器和主存储器被嵌入在单个芯片内。
10.如权利要求1所述的存储器系统,其中存储器系统被安设在存储卡上。
11.一种电路,包括存储器,具有预先存储的引导代码和参考数据;以及控制器,具有包含预先存储的参考数据的寄存器,其中在通电时,控制器从存储器访问参考数据,并且比较所访问的参考数据与存储在寄存器中的参考数据,并且如果从存储器访问的参考数据与寄存器中的参考数据相同,则将引导代码装载到引导RAM中。
12.如权利要求11所述的电路,还包括延迟电路,在通电时,将访问参考数据延迟给定的时间周期。
13.如权利要求11所述的电路,其中该延迟电路是振荡器。
14.如权利要求12所述的电路,其中该给定的时间周期是大约100到200微秒。
15.如权利要求11所述的电路,其中该存储器是非易失性存储器。
16.如权利要求15所述的电路,其中该参考数据被预先存储在一次性可编程(OTP)块中。
17.如权利要求11所述的电路,其中该存储器是闪存
18.如权利要求17所述的电路,其中闪存为NAND类型。
19.如权利要求11所述的电路,其中该电路被集成在单个芯片中。
20.一种装载数据的方法,包括在主存储器中存储主数据和参考数据;在第一存储装置中存储参考数据;当接收到加电信号时,从主存储器访问参考数据;比较第一存储装置中的参考数据与从主存储器访问的参考数据;以及如果第一存储装置中的参考数据与从主存储器访问的参考数据相同,则将主数据装载到第二存储装置中。
21.如权利要求20所述的方法,其中该第一存储装置是寄存器,并且该第二存储装置是RAM
22.如权利要求20所述的方法,其中主存储器是非易失性存储器。
23.如权利要求22所述的方法,其中参考数据被存储在一次性可编程(OTP)块中。
24.如权利要求20所述的方法,其中主存储器是NAND闪存。
25.如权利要求20所述的方法,其中主数据包括引导代码。
26.如权利要求20所述的方法,其中主数据和参考数据被预先装载在主存储器中,参考数据被预先装载在第一存储装置中,并且在通电时生成加电信号。
27.如权利要求20所述的方法,还包括如果从主存储器检索的参考数据与第一存储装置中的参考数据不同,则从主存储器重新访问参考数据。
28.一种引导非易失性存储器的方法,包括在主存储器中预先存储引导代码和参考数据;在寄存器中预先存储参考数据;在通电时从主存储器访问参考数据;比较寄存器中的参考数据与从主存储器访问的参考数据;以及如果寄存器中的参考数据与从主存储器访问的参考数据相同,则将引导代码装载到引导RAM中,而如果不同,则重复从主存储器访问参考数据并将其与寄存器中的参考数据进行比较。
29.如权利要求28所述的方法,还包括使用引导RAM中的引导代码执行引导操作。
30.如权利要求28所述的方法,还包括在通电时将从主存储器访问参考数据延迟大约100到200微秒。
31.如权利要求28所述的方法,其中主存储器是非易失性存储器。
32.如权利要求31所述的方法,其中参考数据被存储在一次性可编程(OTP)块中。
全文摘要
提供了一种存储器系统,其包括主存储器,存储主数据和参考数据;第一存储装置,存储参考数据;以及控制器,当接收到加电信号时从主存储器访问参考数据,并且当测试出从主存储器检索的参考数据与第一存储装置中的参考数据相同时,将主数据装载到第二存储装置中。还提供了一种用于引导非易失性存储器的方法,其包括在主存储器中预先存储引导代码和参考数据;在寄存器中预先存储参考数据;在通电时从主存储器访问参考数据;比较寄存器中的参考数据与从主存储器访问的参考数据;以及如果寄存器中的参考数据与从主存储器访问的参考数据相同,则将引导代码装载到引导RAM中,而如果不同,则重复从主存储器访问参考数据并将其与寄存器中的参考数据进行比较。
文档编号G06F9/00GK1696899SQ20051006884
公开日2005年11月16日 申请日期2005年5月12日 优先权日2004年5月12日
发明者金昌来 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1