用于减少存储器设备上的压力的系统和方法与流程

文档序号:12304867阅读:241来源:国知局
用于减少存储器设备上的压力的系统和方法与流程

本发明涉及存储器设备并且更具体地涉及用于减少存储器设备上的压力的系统和方法。



背景技术:

图1示出了常规系统100,包括用于存储代码和数据的存储器102和连接至存储器102用于执行存储器102中存储的代码以及从存储器102读取数据或者将数据写入存储器102的处理器104。例如,系统100可以是片上系统(soc),该片上系统(soc)是将处理器、存储器和其它部件集成到单个芯片上的集成电路。

图2示出了图1的系统中的存储器102的常规结构。存储器102可以是广泛用于存储代码和数据的非易失性存储器(nvm)。典型地,nvm被逻辑上分成许多相同大小的逻辑存储器块,其中存储器块中的一些被配置为存储代码以及存储块中的一些被配置为存储数据。例如,如图2所示,具有1280kb大小的nvm102被分成第一至第五存储器块106-114,各自具有256kb的大小。第一和第二存储器块106和108存储代码(即代码块),以及第三至第五块110-114存储数据(即数据块)。通常在制造期间对代码块106和108中的代码进行编程,并且很少由用户进行重新编程。在系统100的操作期间频繁地读取和写入数据块110-114。将数据写入数据块包括擦除先前存储在数据块中的数据以及将新数据存储在数据块中。因此,数据块110-114比代码块106-108遭受更多擦除压力,并且比代码块106-108早达到擦除周期。系统100的使用寿命部分地取决于存储器102的使用寿命,而存储器102的使用寿命由达到最大擦除周期数量的nvm的第一存储器块限定。因此,找到用于减少存储器设备上的擦除压力 的方法以延长soc寿命是理想的。

附图说明

可以通过参照优选实施例的下列描述连同附图一起最好地理解本发明连同其目的和优点,在附图中:

图1示出了常规系统的框图;

图2示出了图1的系统中的存储器设备的常规结构;

图3是根据本发明实施例用于减少存储器设备的压力的系统的框图;

图4是根据本发明实施例图3的系统的计数单元的框图;

图5是根据本发明另一个实施例图3的系统的计数单元的框图;

图6是根据本发明实施例图3的系统的交换单元的框图;

图7示出了根据本发明实施例图3的系统的存储器设备的存储器块的结构;

图8是根据本发明第一实施例用于减少存储器设备上的压力的方法的流程图;

图9是根据本发明第二实施例用于减少存储器设备上的压力的方法的流程图;

图10是根据本发明第三实施例用于减少存储器设备上的压力的方法的流程图;以及

图11是根据本发明实施例通过图10的虚设存储器块交换存储器块的方法的流程图。

具体实施方式

下面结合附图阐述的详细说明旨在作为本发明当前优选实施例的描述,并且不旨在表示可以实施本发明的唯一形式。应当理解,可以通过旨在包括在本发明精神和范围内的不同实施例实现相同功能或者等效功能。在附图中,相似的标号始终用于指代相似的元件。此 外,术语“包括”、“包含”或者它们的任何变型旨在覆盖非排他性包括,使得包括一系列元件或者步骤的模块、电路、设备部件、结构和方法步骤不仅包括那些元件,而且可以包括没有明确列出的或者这种模块、电路、设备部件或者步骤固有的其它元件或者步骤。由“包括...一”引导出的元件或者步骤在没有更多约束的情况下并不排除包括元件或者步骤的另外的相同元件或者步骤的存在。

在一个实施例中,本发明提供用于减少存储器设备上的压力的系统,其中存储器设备包括多个存储器块。系统包括:用于基于给定地址读取和写入存储器设备的读取和写入单元,其中所述写入包括擦除存储器设备中存储的数据;连接至读取和写入单元的计数单元,用于递增多个计数值,其中存储器块中的每一个与指示擦除与其关联的存储器块的次数的至少一个计数值相关联;以及连接至计数单元用于监控计数值的控制器,其中当检测与多个存储器块的第一存储器块相关联的计数值达到预定阈值时,控制器基于与第二存储器块相关联的计数值从多个存储器块选择要与第一存储器块交换的第二存储器块、交换第一和第二存储器块中存储的数据,并生成相应的交换信息。

在另一个实施例中,本发明提供减少存储器设备上的压力的方法,其中存储器设备包括多个存储器块。该方法包括:每次擦除所述存储器块都递增与存储器块相关联的计数值;检测多个存储器块的第一存储器块的计数值是否已经达到预定阈值;当检测计数值已经达到预定阈值时从多个存储器块选择第二存储器块并且将第一存储器块中存储的数据与第二存储器块中存储的数据交换,其中第二存储器块的计数值小于第一存储器块的计数值;以及生成相应的交换信息。

现在参考图3,示出了根据本发明实施例用于减少存储器设备的压力的系统200的框图。系统200包括:分成多个存储器块204-214的存储器202,其中存储器202中存储的数据包括系统200的代码和数据;和连接至存储器202的处理器220,用于执行系统200的代码以及从存储器202读取数据或者将数据写入存储器202。在优选实施例中,多个存储器块204-214包括存储系统200的数据的至少第一存 储器块204以及存储系统200的代码的至少第二存储器块208。在优选实施例中,存储器202是非易失性存储器(nvm)、闪速存储器或者电可擦除可编程只读存储器(eeprom)。处理器220优选地包括系统200的mcu的处理器,或者替换地可以包括系统200内的单独处理器。

处理器220包括:用于读取和写入存储器200的读取和写入(r/w)单元222,其中所述写入包括擦除先前存储在存储器200中的数据;和连接至读取和写入单元222用于更新多个计数值的计数单元224,其中存储器块204-214中的每一个与指示已经擦除与其关联的存储器块的次数的至少一个计数值相关联。

图4示出了根据本发明实施例图3的系统的计数单元224的框图。在优选实施例中,计数单元224包括各自与存储器块204-214中的一个相关联的多个计数器224a-224f。图5示出了根据本发明另一个实施例图3的系统的计数单元224的框图。在优选实施例中,计数单元224包括计数器226和多个第一寄存器228,其中多个第一寄存器228中的每一个存储与其关联的存储器块的计数值,其中计数器226更新多个第一寄存器228中存储的计数值。

返回参照图3,处理器220还包括连接至计数单元224用于监控计数值的控制器230。在优选实施例中,当检测与第一存储器块204相关联的计数值已经达到预定阈值时,控制器230基于第二存储器块210的计数值从多个存储器块204-214选择要与第一存储器块204交换的第二存储器块210,该第二存储器块210的计数值低于第一存储器块204的计数值。控制器230将第一存储器块204和第二存储器块210中存储的数据交换并且生成相应的交换信息。在优选实施例中,基于存储器202的擦除周期设定预定阈值。在优选实施例中,第二存储器块210是多个存储器块204-214当中具有最低计数值的存储器块。

在优选实施例中,控制器230通过将系统200存储在第二存储器块210中的代码复制到第一存储器块204以及如果已经擦除了第一 存储器块204中存储的所有数据则擦除系统在第二存储器块210中存储的代码,将第一存储器块204和第二存储器块210中存储的数据交换。

在另一个优选实施例中,存储器202还包括虚设存储器块214,其中如果仅擦除了第一存储器块204中存储的数据的一部分,则控制器230通过虚设存储器块214将第一存储器块204和第二存储器块210中存储的数据交换。在优选实施例中,当在选择第二存储器块210之后检测到第二存储器块210的计数值也达到预定阈值时,控制器230选择要与第一存储器块204交换的虚设存储器块214并且生成相应的交换信息。

在优选实施例中,处理器220还包括连接至控制器230的第二寄存器232,该第二寄存器232存储与存储器块204-214分别相关联的多个标志。如果与第一存储器块204相关联的计数值已经达到预定阈值并且第一存储器块204已经与第二存储器块210交换,则控制器230将与第一存储器块204相关联的标志设定为第一值,并且如果将与第一存储器块204相关联的标志设定为第一值,则控制器230停止监控与第一存储器块204相关联的计数值。在优选实施例中,如果与第一存储器块204相关联的标志设定为第一值,则计数单元224停止更新与第一存储器块204相关联的计数值。

处理器220还包括:连接于读取和写入单元222与控制器230之间的交换单元234,用于使第一存储器块和第二存储器块彼此重新映射。图6是根据本发明实施例图3的系统的交换单元234的框图。交换单元234包括:查找表(lut)236,存储由控制器230提供的交换信息;和块重映射单元238,基于查找表236和给定地址从多个存储器块204-214选择存储器块以使得读取和写入单元222从所选择的存储器块读取数据或者将数据写入所选择的存储器块。在优选实施例中,交换信息包括第一存储器块204与第二存储器块210的地址之间的映射,反之亦然。

在优选实施例中,计数器值、多个标志和查找表236还存储在 系统200的与存储器202分离的第二存储器设备(未示出)中,并且在已经在重置系统200期间初始化处理器220之前在初始化存储器202期间加载到处理器220。

在优选实施例中,控制器230在将系统在第二存储器块210中存储的代码复制到第一存储器块204时保持读取第二存储器块210中存储的代码的请求,并且在已经生成交换信息之后释放请求。

在另一个优选实施例中,系统200还包括与处理器220通信的单独中央处理单元(cpu),用于执行系统200的代码以及通过处理器220读取和写入存储器202,其中处理器220是专门用于存储器202的存储器控制设备。

现在参考图7,示出了根据本发明实施例图3的存储器202的存储器块300的结构。在优选实施例中,存储器块204-214中的每一个被分成多个子块302。例如,具有256kb大小的存储器块被分成各自具有8kb大小的32个子块,其中将每个子块的大小确定为nvm的最小擦除大小的n倍,其中n是自然数。在优选实施例中,每次擦除存储器块300,都基于擦除的子块302的数量更新存储器块300的计数值。在另一个优选实施例中,子块302中的每一个与一旦擦除与其关联的子块302就更新的多个计数值中的一个相关联,其中基于在第二存储器块300的多个子块302当中具有最高计数值的子块302选择第二存储器块210。

图8是根据本发明第一实施例由系统200执行的用于减少存储器设备上的压力的方法的流程图400。如图3所示的存储器202被分成多个存储器块204-214,其中存储器202中存储的数据包括系统200的代码和数据。系统200还包括连接至存储器202的处理器220,用于执行系统200的代码以及从存储器202读取数据或者将数据写入存储器202。在优选实施例中,多个存储器块204-214包括存储系统200的数据的至少第一存储器块204以及存储系统200的代码的至少第二存储器块208。在优选实施例中,存储器202是非易失性存储器(nvm)、闪速存储器或者eeprom。处理器220优选地包 括系统200的mcu的处理器,或者替换地可以包括系统200内的单独处理器。

从步骤402开始,控制器230接收擦除指令以基于给定地址擦除第一存储器块204中存储的数据的至少一部分。在优选实施例中,擦除指令包括在将数据写入第一存储器块204的写入指令中。

在步骤404处,读取和写入单元222擦除第一存储器块204中存储的数据的一部分以及更新与第一存储器块204相关联的计数值,其中计数值指示已经擦除与其关联的存储器块的次数。在优选实施例中,如图7所示,存储器块204-214中的每一个被分成多个子块302。例如,具有256kb大小的存储器块被分成各自具有8kb大小的32个子块,其中将每个子块的大小确定为nvm的最小擦除大小的n倍,其中n是自然数。在优选实施例中,每次擦除存储器块300,都基于擦除的子块302的数量更新与存储器块300相关联的计数值。

在步骤406处,控制器230检测与第一存储器块204相关联的计数值是否已经达到预定阈值。在优选实施例中,基于存储器202的擦除周期设定该预定阈值。

在步骤408处,如果与第一存储器块204相关联的计数值已经达到预定阈值,则控制器230进一步确定数据的该部分是否包括第一存储器块204中存储的所有数据。

在步骤410处,如果数据的该部分包括第一存储器块204中存储的所有数据(即,已经擦除第一存储器块204中存储的所有数据),则控制器230基于第二存储器块210的计数值从多个存储器块204-214选择要与第一存储器块204交换的第二存储器块210,该第二存储器块210的计数值低于第一存储器块204的计数值。在优选实施例中,第二存储器块210是多个存储器块204-214当中具有最低计数值的存储器块。

在步骤412处,控制器230将系统200在第二存储器块210中存储的代码复制到第一存储器块204。

在步骤414处,控制器230将系统200在第二存储器块210中存储的代码擦除以及更新与第二存储器块210相关联的计数值。

在步骤416处,控制器230更新交换信息以使第一存储器块和第二存储器块彼此重新映射。在优选实施例中,交换信息包括第一存储器块204与第二存储器块210的地址之间的映射,反之亦然。

在图8的流程图400中,直到与第一存储器块204相关联的计数值达到预定阈值以及已经擦除的数据的部分包括第一存储器块204中存储的所有数据,控制器230才会选择要与第一存储器块204交换的第二存储器块210。

图9是根据本发明第二实施例用于减少存储器设备上的压力的方法的流程图500。在优选实施例中,子块中的每一个具有与其关联的计数值,指示已经擦除子块的次数。

除在步骤504处,一旦擦除关联子块就更新子块中的每一个的计数值,以及在步骤506处,控制器230检测子块的计数值中的任何一个是否已经达到预定阈值以外,图9的流程图500与图8的流程图基本上相同。

图10是根据本发明第三实施例用于减少存储器设备上的压力的方法的流程图600。在另一个优选实施例中,存储器202还包括虚设存储器块214。图10的流程图600中的前三个步骤602-606可以与图8的流程图400中的前三个步骤402-406或者图9的流程图500中的前三个步骤502-506相同。在步骤608处,如果与第一存储器块204相关联的计数值已经达到预定阈值,则控制器230选择要与第一存储器块204交换的第二存储器块210。

在步骤610处,控制器230还检测第二存储器块210的计数值是否已经达到预定阈值。在步骤612处,如果与第二存储器块210相关联的计数值没有达到预定阈值,则控制器230通过虚设块214将第一存储器块204和第二存储器块210中存储的数据交换,以及在步骤614处,控制器230更新交换信息以使第一存储器块204和第二存储器块210彼此重新映射。

在步骤616处,如果第二存储器块210的计数值已经达到预定阈值,则控制器230将第一存储器块204中保留的数据复制到虚设存储器块214,以及在步骤618处,控制器230更新交换信息以使第一存储器块204和虚设存储器块214彼此重新映射。

图11是根据本发明实施例通过图10的虚设存储器块交换存储器块的步骤612的流程图700。

从步骤702开始,控制器230将第一存储器块204中保留的数据复制到虚设存储器块214。在步骤704处,控制器230擦除第一存储器块204以及更新与第一存储器块204相关联的计数值。在步骤706处,控制器230将系统在第二存储器块210中存储的代码复制到第一存储器块204。在步骤708处,控制器230将系统在第二存储器块210中存储的代码擦除以及更新与第二存储器块210相关联的计数值。在步骤710处,控制器230将虚设存储器块214中的数据复制到第二存储器块210,以及在步骤712处,控制器擦除虚设存储器块214中的数据并且更新与虚设存储器块214相关联的计数值。

尽管为了图示和描述的目的已经提供了本发明优选实施例的描述,但是并不旨在穷举或者将本发明限于所公开的形式。本领域技术人员应当理解,在不背离其广泛发明构思的情况下,可以对上面描述的实施例做出改变。因此,应当理解,本发明不限于所公开的特定实施例,而覆盖如由所附权利要求限定的本发明的精神和范围内的修改。

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