改善冗余载入效率的制作方法

文档序号:14443974阅读:127来源:国知局
改善冗余载入效率的制作方法

本申请是申请日为2013年02月8日,申请号为201380020561.1,发明名称为“改善冗余载入效率”的申请的分案申请。

本揭露一般地涉及电源开启读取(power-on-read)时间的需求,并且尤指在电源开启读取时间期间的读取冗余信息。



背景技术:

在某些应用程式,电源开启读取(por)时间可能是顾客所强调的重要规格。于一例示性实施例中,当电源供应至内存装置,该内存装置经过一连串的初始化阶段。在这个por时间中,执行了电源开启读取演算法。该por演算法可执行所需要的步骤,以使该内存装置(例如,快闪内存的微控制器、sram,以及寄存器)进入准备好接收命令的状态,该命令例如为读取/写入以及抹去要求。

电源开启读取时间的一个成分为用于载入冗余信息所需要的时间。这样的信息(可能花费大于10百分比的总por时间)用于维持冗余扇区的轨道。一例示性内存装置可分为几个扇区,其中所有数目的可提供扇区分为一般运算扇区以及冗余扇区。当一般运算扇区鉴别且被标记为不良,冗余扇区的其中之一将用于取代该不良扇区。于一例示性实施例中,冗余寄存器可以冗余扇区的其中之一的位址替换该不良扇区的位址。如下文将讨论的细节,快闪内存装置可包含多个一般扇区、多个冗余扇区以及存储冗余信息的查找表,该信息将包含有关当前使用的冗余扇区的信息(特定的冗余扇区当前是否正用于取代不良的一般扇区)。

设计por时间以符合顾客需求越来越具挑战,尤其当快闪内存装置变得更先进并且有更大的内存密度。举例来说,当一个例示性256mb内存装置具有8个冗余扇区,一个例示性16gb内存装置则具有64个冗余扇区。目前,有两种选择方案应用于提升por时间的速度:纯硬体实施以及改进软体效率。对于纯硬体实施,至少有三个缺点。第一,没有灵活性。一旦特定的硬体实施例被实际实现(realizedphysically),要进行修改就不是一件容易的事。第二,对于硬体,这类的修改通常将导致晶片大小的增加。制造已导致增加晶片大小的新硬体实施例,可能也导致增加生产成本。第三,纯硬体实施可能较软体实施更为复杂。

因此,对于电源开启读取实施,软体实施是较好的选择,当存在严峻的por时间要求的时候。然而,软体实施也有对应属于自己的挑战以及缺点。举例来说,大于10百分比的实际电源开启读取时间可能花费在载入该冗余信息。另外对于顾虑到冗余信息的延长载入时间,更大的内存装置需要载入或存储越来越大数量的冗余信息。因为可提供的存储空间也十分珍贵,尤其在具有额外内存需求的bist载入方案中;用于有效率的冗余信息载入的软体解决方案有时候不可能用于更大的内存装置。这样的冗余信息的载入是没有效率的,并且如上文所讨论,随着更大的内存容量而更加恶化。因此,需要改善该冗余信息载入以减低该por时间。



技术实现要素:

本发明提供一种解决方案,对于在电源开启读取时间中载入冗余信息的固有挑战。在根据本发明的一个实施例的方法中,揭露一种用于载入冗余信息的方法。该方法包括对于多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入易失性内存。对于该多个冗余扇区的每一个冗余扇区,冗余数据组的第二部分也被载入至该易失性内存。对于每一个冗余扇区,载入该冗余数据组的该第二部分包括载入包括冗余数据的多个第二部分的冗余数据的第三部分,对于多个冗余扇区。

在根据本发明的一个实施例的系统中,揭露一种用于载入冗余信息的系统。该系统包括处理器以及内存,其中,所述内存包括指令,当由所述处理器执行时实施一种方法。该方法包括对于多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入易失性内存。对于该多个冗余扇区的每一个冗余扇区,冗余数据组的第二部分也被载入至该易失性内存。对于每一个冗余扇区,载入该冗余数据组的该第二部分包括载入包括冗余数据的多个第二部分的冗余数据的第三部分,对于多个冗余扇区。

在根据本发明的一个实施例的系统中,揭露一种用于载入冗余信息的系统。该系统包括处理器、易失性内存、非易失性内存以及查找表。在该非易失性内存通入电源,在该查找表中的冗余数据载入至该易失性内存。载入该冗余数据,包括:对于在该非易失性内存中的多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入该易失性内存。对于该多个冗余扇区的每一个冗余扇区,冗余数据组的第二部分随后载入至该易失性内存。载入该冗余数据组的该第二部分包括载入冗余数据的第三部分。该冗余数据的第三部分包括冗余数据的多个第二部分,对于在非易失性内存中的多个冗余扇区。

(1)根据本公开,提供了一种方法,包括:

对于多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入微控制器的寄存器;

对于该多个冗余扇区的每一个冗余扇区,载入该冗余数据组的第二部分进入该寄存器,其中,载入冗余数据组的第二部分包括载入第三冗余数据部分,该第三冗余数据部分包括该多个冗余扇区的多个第二冗余数据部分。

(2)根据(1)所述的方法,其中,冗余数据组的第一部分为由该微控制器的频宽所界定的最大数目位。

(3)根据(1)所述的方法,其中,冗余数据组的第一部分为一字节的冗余数据。

(4)根据(2)所述的方法,其中,冗余数据组的第二部分为由该微控制器的该频宽所界定的该最大数目位的一部分。

(5)根据(4)所述的方法,其中,该最大数目位的该部分是小于由该微控制器的该频宽所界定的该最大数目位。

(6)根据(3)所述的方法,其中,冗余数据组的第二部分为一字节的冗余数据的一部分。

(7)根据(6)所述的方法,其中,该一字节的冗余数据的部分是小于一字节的冗余数据。

(8)根据(2)所述的方法,其中,第三冗余数据部分为由该微控制器的频宽所界定的该最大数目位的一部分。

(9)根据(8)所述的方法,其中,该第三冗余数据部分为由该微控制器的该频宽所界定的最大数目位。

(10)根据(8)所述的方法,其中,第三冗余数据部分为一字节的冗余数据的一部分。

(11)根据(8)所述的方法,其中,第三冗余数据部分为一字节的冗余数据。

(12)根据(1)所述的方法,其中,该第三冗余数据部分包括多个第二冗余数据部分。

(13)根据本公开,还提供了一种包括处理器以及内存的系统,其中,所述内存包括指令,当由所述处理器执行时实施一种方法,包括:

对于多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入该处理器的寄存器;

对于该多个冗余扇区的每一个冗余扇区,载入该冗余数据组的第二部分进入该寄存器,其中,载入冗余数据组的第二部分包括载入第三冗余数据部分,该第三冗余数据部分包括该多个冗余扇区的多个第二冗余数据部分。

(14)根据(13)所述的系统,其中,冗余数据组的第一部分为由该处理器的频宽所界定的最大数目位。

(15)根据(13)所述的系统,其中,冗余数据组的第一部分为一字节的冗余数据。

(16)根据(14)所述的系统,其中,冗余数据组的第二部分为由该处理器的该频宽所界定的该最大数目位的一部分。

(17)根据(16)所述的系统,其中,该最大数目位的该部分是小于由该处理器的该频宽所界定的该最大数目位。

(18)根据(15)所述的系统,其中,冗余数据组的第二部分为一字节的冗余数据的一部分。

(19)根据(18)所述的系统,其中,该一字节的冗余数据的部分是小于一字节冗余数据。

(20)根据(14)所述的系统,其中,第三冗余数据部分为由该处理器的频宽所界定的该最大数目位的一部分。

(21)根据(20)所述的系统,其中,该第三冗余数据部分为由该处理器的该频宽所界定的最大数目位。

(22)根据(20)所述的系统,其中,第三冗余数据部分为一字节的冗余数据的一部分。

(23)根据(20)所述的系统,其中,第三冗余数据部分为一字节的冗余数据的字节。

(24)根据(13)所述的系统,其中,该第三冗余数据部分包括多个第二冗余数据部分。

(25)根据本公开,还提供了一种系统,其包括:

包括有寄存器的处理器;

易失性内存;

非易失性内存;以及

查找表,其中,当电源通入该非易失性内存,在该查找表中的冗余数据被载入该寄存器,其中,

载入该冗余数据包括:

对于在该非易失性内存中的多个冗余扇区的每一个冗余扇区,载入冗余数据组的第一部分进入该易失性内存;

对于在该非易失性内存中的该多个冗余扇区的每一个冗余扇区,载入该冗余数据组的第二部分进入该易失性内存,其中,载入冗余数据组的第二部分包括载入第三冗余数据部分,该第三冗余数据部分包括在该非易失性内存中的该多个冗余扇区的多个冗余数据部分。

(26)根据(25)所述的系统,其中,冗余数据组的第一部分为一字节的冗余数据。

(27)根据(25)所述的系统,其中,冗余数据组的第二部分为一字节的冗余数据的一部分。

(28)根据(27)所述的系统,其中,该一字节的冗余数据的部分是小于一字节的冗余数据。

(29)根据(25)所述的系统,其中,第三冗余数据部分为一字节的冗余数据的一部分。

(30)根据(29)所述的系统,其中,第三冗余数据部分为一字节的冗余数据。

(31)根据(25)所述的系统,其中,该第三冗余数据部分包括多个第二冗余数据部分。

附图说明

通过阅读以下详细的描述,配合所附图式,将更为明白本发明,其中相同的符号表示相同的元件,以及其中:

图1说明根据本发明的实施例的例示性简化方块图,其为微处理器从查找表载入冗余信息进入静态随机存取内存中;

图2说明根据先前技术,对于每一个冗余扇区安排成两个字节的例示性冗余信息位;

图3说明根据先前技术,对于例示性256mb内存装置的每一个冗余扇区安排成两个字节的例示性冗余信息位;

图4说明根据本发明的实施例,对于例示性256mb内存装置的每一个冗余扇区安排成字节的例示性冗余信息位;以及

图5说明根据本发明的实施例的例示性流程图,其为对于内存装置的每一个冗余扇区,载入冗余信息的方法。

具体实施方式

通过本发明的最佳实施例,所附图式中所图示说明的例子,将提供详细的参考。当本发明描述于相关的最佳实施例,应了解到这并不意味限制本发明于这些实施例中。相反的,本发明意图涵盖替代方案、修改以及同等物,在包含于所附的权利要求书所定义的本发明的精神与范围内。更进一步来说,以下所描述的本发明的实施例,数个特定的细节被描述,为了提供对于本发明的彻底理解。然而,本领域的技术人员应理解本发明可在没有这些特定细节下实施。在其他的实例中,广为人知的方法、程序、元件以及电路不做详细的描述,避免本发明的实施例中不必要混淆。绘示本发明实施例的图式为半图解,并且未按照比例,以及特别是,一些尺寸是为了表现上的清晰并且夸大的显示于所绘图式中。同样的,尽管为了方便描述,图式中的视点一般显示相同的方向,图式中的这些绘图在大多数的情况下是任意的。一般来说,本发明可在任何方向下运作。

以及术语:

细节描述的某些部分,如下文,将显示在计算机内存中的数据位上运算的程序、步骤、逻辑块(logicblocks)、处理过程以及的其他符号表示。这些描述以及表示为在数据处理领域的技术人员所使用的意义,以最有效率地传达他们工作的实质部分给其他本领域的技术人员。在此,程序、计算机执行步骤、逻辑块、处理过程等等,以及一般而言,设想为自相一致的步骤序列或是指令引导至所需的结果。该步骤为物理量所需的物理操作。通常,尽管不是必须,这些由电子或磁性讯号所取得的数量能够被存储、转送、结合、比较以及其他操作在计算机系统中。有时候方便被证明,主要为了一般使用的理由,表示这些信号为位、数值、元素、符号、特性、项目、数字、或诸如此类。

然而,应牢记,这些全部以及类似的项目为相关联于适当的物理量,并且仅为采用于这些数量的方便标示。除非特别声明,否则如同下文所讨论显而易见的,应当理解整个本发明中,讨论所采用的项目像是”处理”或”存取”或”执行”或”存储”或“转列(rendering)”或诸如此类,表示计算机系统的动作以及处理程序,或是类似的电子计算装置,操作并且转换数据,该数据表示为在该计算机系统的寄存器以及内存和其他计算机可读取的媒体中的物理(电子)数量,转换为类似地表示为在计算机系统内存或寄存器或其他类似的信息存储器、传输或显示装置中的物体量的其他数据。当一元件显示于数个实施例中,使用相同表示数字代表该元件为原始实施例中所图示说明的相同元件。

本发明的实施例提供了一种解决方案,对于维持简短的冗余信息载入时间的固有挑战,该挑战随着日渐增加的内存装置存储容量而增加。更进一步来说,本发明的实施例也提供一种解决方案,通过减少对于所给定的内存装置所要求的载入以及存储数据的数量,来解决增加的存储以及载入需求。如以下的详细描述,本案揭露的多种实施例提供一个冗余信息载入的方案,其划分用于特定冗余扇区的该冗余信息位为“低(low)”部分以及“高(high)”部分(于一实施例,该低部分为一字节的数据:低字节,同时该高部分也是一字节的数据:高字节)。如同以下也详细描述的,多个冗余扇区的该高字节可结合进入至少一个结合的高字节。于其他的实施例中,该低部分以及高部分可能是一些其他数量的位。如以下的详细讨论,该冗余信息载入时间可通过载入每一个冗余扇区的低字节以及至少一个包括该冗余扇区的多个高字节的结合的高字节而缩短。这样的载入方案可导致对于给定的内存装置必须载入的冗余数据数量的减少。

于一例示性实施例,如图1所示,对于冗余扇区110的最佳化的冗余信息可被存储在快闪内存装置100的trim扇区102。于一实施例,在trim扇区102中的该冗余信息被存储为查找表。于一实施例中,存储在trim扇区102中的该冗余信息通过微控制器106被最佳化。在最佳化后,该冗余信息暂时存储在sram104,该最佳化的冗余信息可转送至trim扇区102予以存储。如下文所讨论,在por演算法的执行期间,存储在trim扇区102的该冗余信息可转送至在快闪内存100中的冗余寄存器108。于一实施例,冗余寄存器108为多个正反器(flip-flop)。于一实施例,在该冗余信息于por演算法期间被载入至该冗余寄存器108,该载入的冗余信息可轻易且快速地存取,每当读取、写入或是抹去命令的时候。快闪内存装置100随后可通过其中一个该冗余扇区建立(found)列表于该冗余寄存器中,检查是否目标扇区已修复(例如被取代),并且根据需要,可重新导向该命令至替代的冗余扇区。

如上文所讨论,并且也图示说明于图1中,快闪内存可在微控制器106实施软体解决方案以达成灵活性的状况下被实行,。于一例示性实施例中,可使用8位微控制器(mcu)以达成软体灵活性,但也导致较慢的por时间,当与硬体解决方案相比较而言。如下文将详细讨论的,8位微控制器将需要该冗余数据以一次一字节(例如8位)的方式,载入进冗余寄存器108。

进一步而言,具有32个冗余扇区的例示性2gb内存装置,具有32个冗余信息组,对于每一个冗余扇区,冗余数据一组为12个位。于一实施例,像是具有8位微控制器(mcu),该12位可分为2个字节。于一实施例,冗余信息的该字节以一次一字节的方式被载入。因此在对于2gb内存装置的冗余信息的载入期间,需要载入总共64字节的数据,对于该32组的冗余信息而言。

下文的第1表格说明对于利用例示性8位微控制器(mcu)106的不同的内存装置密度,现有的冗余信息载入以及por时间。在300μs的例示性pro时间规格下,该现有的实施方式对于8gb密度及之后(onward)的内存装置将失效(fail)。如上文所讨论,因为此例示性实施例使用8位微控制器106,该冗余信息可划分为低字节以及高字节。如第1表格所图示说明,在对于每一个冗余扇区该冗余信息划分为两字节的状况下,根据先前技术的例示性256mb内存装置将需要载入16字节的冗余信息,当在其他的极端值,16gb内存装置将需要载入128字节的冗余信息。

又如同第1表格所图示说明,对于256mb内存装置至16gb内存装置的例示性冗余数据载入时间,分别变化从8.32μs至66.56μs。因此,又如同第1表格所图示说明,在冗余载入时间增加的状况下,8gb以及更大的内存装置将失效于300μs的例示性规格需求。如上文所讨论,使用现有的软体解决方案对于载入冗余信息而言,不可能用于8gb或更大的内存装置。

第1表格

如图2所图示说明,具有8冗余扇区的例示性256mb内存装置包含9位的冗余信息202,对于每一个冗余扇区。例示性512mb内存装置,如图2所图示说明,具有8冗余扇区,并包含10位的冗余信息204,对于每一个冗余扇区。例示性1gb内存装置,如图2所图示说明,具有16冗余扇区,并包含11位的冗余信息206,对于每一个冗余扇区。也如图2所图示说明,例示性2gb内存装置对于每一个冗余扇区包含12位的冗余信息208,例示性4gb内存装置对于每一个冗余扇区包含13位的冗余信息210,例示性8gb内存装置对于每一个冗余扇区包含14位的冗余信息212,以及例示性16gb内存装置对于每一个冗余扇区包含15位的冗余信息214。

改进冗余载入效率:

于一实施例中,该por时间可以通过减少冗余数据字节载入的数目而缩短。为了简单化,以图示说明例示性256mb内存装置的例子。如图3所图示说明,例示性256mb内存装置需要9位的冗余信息302,对于每一个冗余扇区(red0-red7)(28=256;8位+1赋能位=9位)。该赋能位,也就是位8,存储在每一个冗余信息的高字节,当低字节已经被填满的时候。以这个现有格式,在该por时间期间,总共16字节的冗余数据被载入(对于每一个冗余扇区有两字节)。

如图4所图示说明,全部8个赋能位(该高位的位8)可集合成单一的字节402。因此,在此例示性实施例,对于例示性256mb内存装置,只需要9个字节以存储该冗余数据,而不是现有的16个。如图4所图示说明,冗余信息的该例示性9个字节包括8个低字节404,对于每一个冗余扇区(red0-red7)具有一个低字节,此时剩余字节402包含该8个赋能位(每一个高字节的位8)。不是只有每个单一位载入包含在此例子中的8个高字节,单独的位被集合成单一的结合高字节。此例示性实施例代表着能够减少43.75%以上所需要的字节数目,对于现有冗余信息载入方案。

以下的第2表格图示说明在不同例示性快闪内存装置密度中,经由使用上文所描述的例示性冗余信息载入方式,所达成的计算上减少的比较。

第2表格

虽然图4图示说明对于例示性256mb内存装置,每一个冗余扇区的该高字节所结合内容的结果,本发明的实施例也可应用至其他内存装置。举例来说,在根据本发明的例示性2gb内存装置中,存储在查找表102的该冗余信息可包括32个低字节以及16个结合的高字节,总共为48个字节,如第2表格所图示说明。如图2所图示说明,对于例示性2gb内存装置,每一个冗余扇区包括一包含8个位的低字节以及一包含4个位的高字节。当对于该冗余扇区,在该高字节的该位被结合,其总合为上文所描述的16个结合的高字节。于更进一步的例子,图示说明于图2以及第2表格,在例示性8gb内存装置中,包括每个14个位的64个冗余扇区,总共112个字节可被载入,从现有的冗余载入方案减少了16个字节。对于上文的8gb内存装置,在每个高字节中的该6位可结合成48个结合的高字节,从现有的64个高字节减少至此。

对于最佳的冗余信息载入效率的一种例示性方法是图示说明于图5。在图5的步骤502,冗余信息载入开始。在图5的步骤504,设定冗余计数器(counter)。在例示性实施例中,具有9个位的冗余信息被载入,该冗余计数器设定为9。在对于256mb内存装置的例示性实施例中,如上文所描述,对于每一个冗余扇区的9个位的冗余信息被载入。最前面的8个位(在低字节中)包含在最前面的8个字节中,以及对于每一个冗余扇区,该高字节的剩余的位8被包含在第九个字节:一个组合的高字节。如上文所描述,各种内存装置实施例将需要不同数目位的冗余信息,对于每个冗余扇区。当每个内存装置将包括每一个冗余扇区的填满低字节,每一个冗余扇区也将包括包含不同数目的位的高字节。举例来说,例示性256mb内存装置包含1个位于每一个高字节,而例示性8gb内存装置包含6个位于每一个高字节。如上文所讨论,在该高字节中的位可组合成缩减数目的结合高字节。因此,对于载入冗余信息所需要的字节总数目,将为对于每一个冗余扇区的一个低字节以及结合的高字节的数目。

在图5的步骤506中,设定冗余信息查找表的起始位址。如上文所讨论,该查找表可在快闪内存的trim扇区102中,如图1所图示说明。在图5的步骤508中,冗余寄存器108的起始位址也被设定。于一实施例,冗余寄存器108实施为多个的正反器。在图5的步骤510中,从该查找表读取冗余信息,以用于该被定址的冗余信息。在图5的步骤512中,在步骤510中所读取的该冗余信息写入至冗余寄存器108。在图5的步骤514中,冗余计数器减少1。在图5的步骤516中,读取该冗余计数器。如果该计数器读取到0,则该方法进行至图5的步骤518并且结束。如果该冗余计数器读取到大于0的数值,则该方法回到步骤510,以从该查找表读取冗余信息的下一个部分,以用于下一个被定址的冗余信息。

虽然在本文所包含的实施例中应用8位的微控制器,仍可使用其他微控制器。举例来说,16位的微控制器也可与不同的冗余信息载入准则一起使用,并且16位的微控制器也可能有不同大小的寄存器。因此,最大化的数据带宽,用于从trim扇区102递给冗余信息至冗余寄存器108,为所应用的微控制器容量的函数。

尽管某些较佳实施例以及方法以揭露于本文中,从前文揭露来看将是显而易见的,对于本领域的技术人士可在不违背本发明的精神及范畴下,对这些实施例以及方法进行变化与修饰。意味着本发明应仅被限制于所附权利要求书所要求的范围,以及可适用的法律的规则及原则。

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