电可擦除可编程只读存储器仿真系统中的动态压缩的制作方法

文档序号:17652226发布日期:2019-05-15 21:33阅读:231来源:国知局
电可擦除可编程只读存储器仿真系统中的动态压缩的制作方法

本公开大体上涉及电可擦除可编程只读存储器(eeprom)仿真(eee)系统,且更具体地说涉及eee系统中的动态压缩。



背景技术:

eeprom(电可擦除可编程只读存储器)仿真(eee)系统是一种非易失性存储器(non-volatilememory,nvm),所述非易失性存储器使用非eeprom型存储器提供字节和/或字编程和擦除能力。举例来说,易失性随机存取存储器(randomaccessmemory,ram)可连同nvm(例如快闪存储器)一起使用以提供eee系统。

在现有eee系统技术中,对于包含压缩或擦除以及新数据写入(其中将一个新nvm记录编程到快闪中)的每一eee写入,在新数据的eee写入之前,进行检查以确定是否需要压缩或擦除。如果需要压缩或擦除,那么首先执行所述压缩或擦除,且然后写入具有新数据的新nvm记录。在压缩期间,针对活跃扇区进行有效记录的复制。归因于通常被称为诱捕(trap-up)和编程干扰的机制,随着编程/擦除循环增加,编程失败(ftp)发生也增加。ftp发生的增加使进行eee写入的时间增加,因此降低eee性能且潜在地超出eee写入的规格(specification,spec)时间。由于在写入具有新数据的新记录之前进行压缩,所以如果在压缩期间超出spec时间,那么便导致失败,这是因为在spec时间中没有剩余用以执行新记录到活跃扇区中的写入的充足时间。因此,需要通过确保即使随着编程/擦除循环计数增加,创建具有新数据的新记录也不超出ee写入的spec时间来改进eee系统的性能。



技术实现要素:

根据本发明的第一方面,提供一种在具有被布置成具有多个扇区的非易失性存储器的电可擦除可编程只读存储器(eeprom)仿真(eee)系统中的方法,每一扇区被布置成具有多个记录位置,所述方法包括:

将新数据的新记录编程到所述多个扇区中的活跃扇区的记录位置中;

在成功完成对所述新记录的所述编程之后,将在所述编程期间的编程失败(ftp)发生的次数与第一阈值进行比较;

当ftp发生的所述次数大于所述第一阈值时:

确定需要压缩,以及

响应于确定需要压缩,基于第二阈值选择性地执行压缩。

在一个或多个实施例中,所述方法进一步包括:

当ftp发生的所述次数小于所述第一阈值时:

确定需要压缩,

响应于确定需要压缩,开始压缩,以及

在所述压缩期间,在完成所述压缩之前中止所述压缩。

在一个或多个实施例中,确定需要压缩包括确定所述多个扇区中的最早充满扇区包含至少一个有效记录。

在一个或多个实施例中,响应于确定以下情况而执行所述中止所述压缩:

在执行对所述新记录的所述编程之后且从开始所述压缩起在执行所述压缩的起始部分之后,保持在一个eee写入操作的规格时间内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及

所述多个扇区中准备存储新记录的扇区的数量大于第二阈值。

在一个或多个实施例中,所述中止所述压缩在将第一有效记录从所述最早充满扇区编程到所述活跃扇区之后执行。

在一个或多个实施例中,完整压缩操作包含将预定数量的有效记录从所述最早充满扇区编程到所述活跃扇区,且在将所述第一有效记录编程到所述活跃扇区之后但在将所述预定数量的有效记录编程到所述活跃扇区之前,执行所述中止所述压缩。

在一个或多个实施例中,当ftp发生的所述次数小于所述第一阈值时,所述方法进一步包括:

执行所述多个扇区中的一个扇区的擦除操作。

在一个或多个实施例中,基于第二阈值的所述选择性地执行压缩包括:

如果所述多个扇区中准备存储新记录的扇区的数量不大于所述第二阈值,那么便执行压缩,以及

如果所述多个扇区中准备存储新记录的扇区的所述数量大于所述第二阈值,那么便省略压缩。

在一个或多个实施例中,确定需要压缩包括确定所述多个扇区中的最早充满扇区包含至少一个有效记录。

在一个或多个实施例中,当ftp发生的所述次数大于所述第一阈值时,所述方法进一步包括:

执行所述多个扇区中的一个扇区的擦除操作。

根据本发明的第二方面,提供一种电可擦除可编程只读存储器(eeprom)仿真(eee)系统,包括:

非易失性存储器(nvm),被布置成具有多个扇区,其中每一扇区被布置成具有多个记录位置;

存储器控制器,耦合到所述nvm且具有:被配置成对ftp发生进行计数的编程失败(ftp)计数器;编程持续时间定时器;以及压缩持续时间定时器;以及存储电路,被配置成存储第一阈值和第二阈值,所述存储器控制器被配置成:

将新数据的新记录编程到所述多个扇区的活跃扇区的记录位置中同时启用所述编程持续时间计数器,且在成功完成对所述新记录的所述编程以及使所述编程持续时间计数器停止之后,将所述ftp计数器的计数值与所述第一阈值进行比较,其中,当所述计数值大于所述第一阈值时,响应于确定需要压缩,基于所述第二阈值选择性地执行压缩。

在一个或多个实施例中,所述存储器控制器被配置成通过确定所述多个扇区中的最早充满扇区包含至少一个有效记录而确定需要压缩。

在一个或多个实施例中,所述存储器控制器被配置成:

当所述计数值小于所述第一阈值时,响应于确定需要压缩,开始压缩同时启用所述压缩持续时间计数器,且在所述压缩期间,在完成所述压缩之前中止所述压缩。

在一个或多个实施例中,所述存储器控制器被配置成在以下情形时中止所述压缩:保持在一个eee写入操作的规格时间减去所述编程持续时间计数再减去所述压缩持续时间计数内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及所述多个扇区中准备存储新记录的扇区的数量大于所述第二阈值。

在一个或多个实施例中,所述存储器控制器被配置成:在所述计数器值大于所述第一阈值时并响应于确定需要压缩,如果所述多个扇区中准备存储新记录的扇区的数量不大于所述第二阈值,那么便执行压缩,且如果所述多个扇区中准备存储新记录的扇区的所述数量大于所述第二阈值,那么便省略压缩。

根据本发明的第三方面,提供一种在具有被布置成具有多个扇区的非易失性存储器的电可擦除可编程只读存储器(eeprom)仿真(eee)系统中的方法,每一扇区被布置成具有多个记录位置,所述方法包括:

将新数据的新记录编程到所述多个扇区中的活跃扇区的记录位置中;

在成功完成对所述新记录的所述编程之后,将在所述编程期间的编程失败(ftp)发生的次数与第一阈值进行比较;

当ftp发生的所述次数大于所述第一阈值时:

响应于确定需要压缩,如果所述多个扇区中准备存储新记录的扇区的数量不大于第二阈值,那么便执行压缩,且如果所述多个扇区中准备存储新记录的扇区的所述数量大于所述第二阈值,那么便省略压缩;

当ftp发生的所述次数小于所述第一阈值时:

响应于确定需要压缩,开始压缩,以及

在所述压缩期间,在完成所述压缩之前中止所述压缩。

在一个或多个实施例中,确定需要压缩包括确定所述多个扇区中的最早充满扇区包含至少一个有效记录。

在一个或多个实施例中,响应于确定以下情况而执行所述中止所述压缩:

在执行对所述新记录的所述编程之后且从开始所述压缩起在执行所述压缩的起始部分之后,保持在一个eee写入操作的规格时间内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及

所述多个扇区中准备存储新记录的扇区的数量大于第二阈值。

在一个或多个实施例中,完整压缩操作包含将预定数量的有效记录从所述最早充满扇区编程到所述活跃扇区,且在将所述第一有效记录编程到所述活跃扇区之后但在将所述预定数量的有效记录编程到所述活跃扇区之前,执行所述中止所述压缩。

在一个或多个实施例中,所述方法进一步包括:

执行所述多个扇区中的一个扇区的擦除。

本发明的这些和其它方面将根据下文中所描述的实施例显而易见,且参考这些实施例予以阐明。

附图说明

本发明借助于例子示出且不受附图的限制,在所述附图中的类似标记指示类似元件。图中的元件为简单和清楚起见而示出且不必按比例绘制。

图1示出根据本发明的一实施例的数据处理系统的框图。

图2更详细地示出图1的非易失性存储器阵列。

图3和4示出一种用于根据本发明的实施例的动态压缩的方法的流程图。

具体实施方式

动态压缩可用于通过以减少的写入来减少失败且因此延长产品寿命来改进eee系统的性能。在动态压缩的情况下,即使确定需要压缩,压缩也可发生或可不发生,如通过不同因素动态确定的。在一个实施例中,基于ftp的次数,可选择性地省略压缩。举例来说,如果eee系统中的准备扇区的数量充足,那么可省略压缩。另外,如果ftp计数足够低,那么在某些条件下可中止压缩。通过省略或中止压缩,在可能时,可以减少失败的次数,从而改进性能且延长产品寿命。另外,在任一种情形中,在于活跃扇区中成功地编程具有新数据的新记录之后,执行对是否需要压缩(是完成、省略还是中止)的确定。以此方式,新eee写入数据并未丢失且可更好地控制eee写入时间。

图1示出根据一实施例的数据处理系统10的框图。数据处理系统10包括系统互连件12、处理器14、电可擦除可编程只读存储器(eeprom)仿真器(eee)系统16以及其它模块18。处理器14、eee存储器系统16以及其它模块18中的每一个双向地耦合到系统互连件12。系统互连件12可以是用于使数据处理系统10的各个部分,如系统总线、纵横接线器、点到点连接件、光学以及无线传输技术互连的任何类型的系统。eee存储器系统16包括随机存取存储器(ram)20、存储器控制器22及非易失性存储器(nvm)阵列30。nvm阵列30可以是快闪阵列或使用半导体基板形成的任何其它类型的nvm阵列。存储器控制器22包括扇区管理电路24。扇区管理电路24包括被配置成存储各种静态值的只读存储器(readonlymemory,rom)26、一组定时器28、一组计数器25及比较器27。rom26还可以其它类型的存储电路或存储器实施,如闪存。rom26、定时器28、计数器25及比较器27还可驻留于扇区管理电路22外部的存储器控制器22中的其它处。rom26中的值也可存储在数据处理系统10中的其它处。复位信号提供到处理器14和存储器控制器22。此复位信号可以是例如数据处理系统10的全局复位信号。

ram20可以是易失性存储器,如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)。ram20双向地耦合到系统互连件12且耦合到存储器控制器22。存储器控制器22耦合到系统互连件12和nvm阵列30。扇区管理电路24耦合到nvm阵列30。存储器控制器22被配置成通过包含地址信号address、编程数据信号writedata、读取数据信号readdata以及nvm控制信号nvmcontrol的信号与nvm阵列30通信。

处理器14可以是任何类型的处理器或处理器核心,如微处理器、微控制器、数字信号处理器(digitalsignalprocessor,dsp)等,或可以是可访问eee系统16的任何其它类型的互连主控器。其它模块18可包括任何类型的模块或电路,例如另一存储器、另一处理器、另一互连主控器、外围设备、输入/输出(input/output,i/o)装置等。可替换的是,在数据处理系统10中可以不存在任何其它模块。

在操作中,处理器14可向eee存储器系统16发送访问请求(读取、写入或编程访问请求)。向ram20提供来自处理器14的访问请求,所述访问请求包含访问地址,且在写入或编程访问的情况下,包含相关联的写入数据。在读取访问的情况下,ram20向处理器14提供存储在所接收访问地址位置处的数据。在写入访问的情况下,ram20将所接收的写入数据存储在所接收访问地址位置处。此外,在写入访问的情况下,存储器控制器22可检测ram20的这种更新,且选择性地以逻辑上接续方式将所接收的访问地址和相关联的写入数据存储到nvm阵列30的活跃扇区。举例来说,在对ram20进行更新(写入)的情况下,所接收的访问地址和相关联的写入数据用于在下一可用的记录或数据位置处形成在nvm阵列30中编程的记录(被称为eee写入)。此下一可用记录位置在逻辑上与在nvm阵列30的紧接在前的载入期间所载入的记录位置接续。在一个例子中,与ram更新相对应的记录的写入仅在当前存储在ram位置处的值不同于与ram20位置的写访问请求相关联的新写入值时执行(或存储在nvm阵列30中)。以此方式,nvm阵列30可以更永久性方式存储ram20的更新值。也就是说,当ram20失去电力时,其数据丢失。在恢复电力时,ram20的值可从nvm阵列30恢复(例如读取),所述nvm阵列30在丢失电力时并不丢失其数据。在一个实施例中,相较于ram20,nvm阵列30具有更大存储容量。举例来说,nvm阵列30可具有比ram20大至少四倍且典型地比其大更多的容量。

图2更详细地示出图1的nvm阵列30的实施例。非易失性存储器阵列30布置为由扇区32、34和36表示的多个扇区。扇区32、34和36中的每一个布置到在图2中由扇区32中的记录位置40、42、44、46、48、50、52、54和56表示的多个记录位置中。

在操作变得不可靠之前,非易失性存储器阵列30具有有限次数的编程/擦除循环。增加nvm阵列30的寿命的一种方式是包含布置在扇区中的较大存储器阵列,其中每一扇区在容量上对应于ram20的容量。存储器控制器22控制哪一扇区对于编程操作是活跃的。一次仅有一个扇区可以是活跃的。因此,活跃扇区是当前正在写入记录的扇区。在当前活跃扇区充满时,将在就绪扇区当中选择新的活跃扇区。就绪扇区是空的且准备使用的扇区。也就是说,其完全压缩并擦除。在一个实施例中,每一扇区存储状态指示符,所述状态指示符指示扇区是否处于充满状态(意指在扇区中没有更多可供使用的记录位置且所述扇区准备好压缩)、压缩状态(意指扇区处于正在压缩的过程中)、擦除状态(意指扇区处于正在擦除的过程中)以及就绪状态(意指扇区是空的且准备使用)。

一般来说,记录是通过使用利用与验证操作交错的多个编程脉冲的常规编程过程的数据来编程的位置。在一个实施例中,所述记录可被编程有加密/解密密钥。随着编程和擦除操作的次数增加,编程操作将失败的概率增加。在编程完成之后,常见失败模式在扇区的一个或多个位单元使应在编程操作之后保持擦除的位的余量读取失败时出现。也就是说,当擦除位归因于例如编程干扰不保持擦除时,失败发生。因为编程干扰由于诱捕而变得更糟,所以随着编程/擦除循环增加,这种类型的失败发生得更频繁。在一个实施例中,计数器25内的ftp计数器保留对每一扇区的ftp的次数的记录。

为了执行扇区的压缩,对其中忽略无效数据且将某一数量(n)的有效记录复制到活跃扇区的待压缩扇区执行检查。在本文中所描述的例子中,假设n为2,以使得对于一个压缩操作,将2个有效记录从待压缩扇区复制到活跃扇区。另外,在一个实施例中,可将n存储在rom26中。为擦除扇区,通过对扇区施加擦除脉冲来对待擦除扇区的所有位单元执行fowler-nordheim(fm)擦除以擦除位单元。

图3示出一种用于根据本发明的一个实施例在eee系统16中执行动态压缩的方法70。方法70开始于起点72且进行到框76,其中eee系统16响应于eee写入命令而准备将新数据的新记录编程到nvm30的活跃扇区中。此准备可包含例如计数器25和定时器28的初始化,以及由eee写入命令提供准的备用于编程的数据的命令检查和地址/数据检查。方法70进行到框76,其中将新记录编程到活跃扇区(由扇区管理电路24指示)的记录位置中直到成功地编程。另外,启用指示将新eee数据写入到nvm30的活跃扇区所消耗时间的定时器28的编程持续时间定时器tpro。归因于诱捕,对一个nvm地址的编程可能失败,从而导致ftp。在所述情况下,计数器25的ftp计数值递增,且依次尝试对活跃扇区中的nvm30的下一地址进行编程直到将记录成功地编程到一个地址(随着每次ftp发生使ftp计数值增加)。如果已编程位通过编程验证步骤且应保持擦除的位通过擦除余量读取步骤,那么对nvm30中的地址的编程便成功。一旦编程成功,那么tpro定时器便停止且因此指示其将新eee数据写入到nvm30所花费的时间。

在成功编程之后,方法70继续到决策菱形92,其中将如由ftp计数器所指示的ftp的次数与指示在压缩之前所允许ftp的最大次数的临界数量1进行比较。也就是说,如果ftp计数高于临界数量1,那么在用于eee更新的准备扇区充足时可省略压缩。因此,如果ftp计数大于临界数量1,那么方法70进行到决策菱形80以确定是否需要压缩。在一个实施例中,基于nvm30的最早充满扇区进行此确定。在最早充满扇区(其中所有记录位置都被使用)中,执行扫描以确定是否存在任何有效记录,且如果是,那么确定所述最早充满扇区(被称为待压缩扇区)的压缩合乎期望。方法70进行到菱形82,其中基于指示nvm30中的准备扇区的临界数量的临界数量2对待压缩扇区动态地执行压缩。如果nvm30中的准备扇区的数量不大于临界数量2,那么执行正常压缩,且如果准备扇区的数量大于临界数量2,那么便略压缩。也就是说,压缩开始且仅当准备扇区的数量不大于临界数量2(其指示没有可供用于随后eee写入的足够准备扇区(即nvm30可能会很快用完准备扇区))时才允许完成,且因此在nvm30中需要释放更多空间。在此情况下,尽管可能花费更多时间来执行当前eee写入操作,但仍通过执行正常压缩(框86)耗费更多时间来创建空间。然而,如果ftp的次数大于临界数量1且准备扇区的数量大于临界数量2,那么存在省略压缩且节省eee写入操作的时间的选择方案。

在决策菱形80处,如果确定不需要压缩(例如因为最早充满扇区不再具有有效记录),那么方法70便进行到决策菱形88以确定是否需要擦除。在一个实施例中,基于最早充满扇区的压缩状态进行此确定。如果最早充满扇区已经被压缩(即其不含用于压缩的更多有效数据),那么便需要擦除。方法70进行到框90,其中执行擦除操作。因为擦除操作仅仅是一个擦除脉冲,所以擦除操作的时间是可预测的。因此,视需要,始终进行在创建可用的nvm空间中至关重要的擦除操作。也就是说,当ftp计数大于临界数量1时,视需要动态地执行压缩,但视需要始终执行擦除。压缩涉及将多个(n个)有效记录写入到活跃扇区,其时间不可预测,原因在于其可能产生ftp(因此使具有ftp的概率增加n次),而擦除时间是可预测的。因此,相较于省略擦除的能力,省略压缩的能力可更适用于获得改进性能。

返回参考决策菱形78,如果由ftp计数器计数的ftp的次数不大于临界数量1,那么方法70便进行到决策菱形92,意指存在充足时间来进行正常压缩(假设在压缩期间无ftp)或擦除以释放更多nvm扇区。在决策菱形92处,确定是否需要压缩(如上文参考决策菱形80已描述)。如果不需要压缩,那么方法便进行到决策菱形96以确定是否需要擦除,且如果是,那么便进行到框98。决策菱形96和框98分别如上文参考决策菱形88和框90所描述的来操作。

然而,如果在决策菱形92处需要压缩,那么方法70便进行到框94,其中开始对待压缩扇区(nvm30的最早扇区,其已充满且具有有效记录)进行压缩。在开始压缩时,启动定时器28中的压缩定时器tcp。tcp定时器指示在eee写入操作期间当前对待压缩扇区进行压缩所耗费的时间。但是,如果(1)tcp大于或等于一个eee写入操作的规格时间(tspec)减去写入新eee数据的时间(tpro),以及(2)准备扇区的数量大于临界数量2(其指示仍存在可供用于随后eee写入的足够准备扇区),那么便中止压缩。也就是说,如果满足这两个条件,那么便中止压缩。如果这些条件都不符合,那么便继续压缩,且tcp定时器继续直到压缩完成。

应注意,在一个实施例中,tspec是存储在rom26中的指示在eee系统的规格(spec)中指定用于一个eee写入操作的最大时间的静态值,所述静态值视需要包含新数据写入的时间(tpro)、压缩时间(tcp)或擦除时间(ters)。因此,如果eee写入操作所花费的时间长于tspec,那么eee写入操作失败。ters也是存储在rom26中的指示在一个eee写入操作期间将一个擦除脉冲添加到待擦除扇区的时间的静态值。另外,tsrec是存储在rom26中的指示将一个单一记录编程到nvm30的时间零点典型时间的静态值。时间零点指当存储器刚开始其生命周期时,首次编程一个单一记录的时间。在一些技术中,这是用以对记录进行编程的最长时间,其中在大量编程之后,编程一个记录的时间变少。值n和临界数量1和2可以是存储在rom26中的静态值。临界数量1和2还可被称为阈值。

图4示出实施图3的框94的一种方式。因此,从决策菱形92起,方法70进行到图4的框102,其中压缩开始且tcp定时器启动。另外,ccount初始化为0,其中ccount(其可以是计数器25内的计数)是针对已从待压缩扇区成功地压缩到活跃扇区的记录的数量的计数。随后,在框104中,将来自待压缩扇区的一个记录编程到活跃扇区中。方法70进行到决策菱形106,其中如果成功将记录编程到活跃扇区中(即无ftp),那么在框108处ccount便增加1。在决策菱形110处,如果ccount等于n(其为针对一次压缩的待压缩的有效记录的数量),那么便进行压缩且方法70返回到框74。然而,如果ccount不等于n(或如果对记录的编程不成功),那么方法70便进行到决策菱形112。

在此时,从决策菱形112开始,只要tspec-tpro-tcp大于或等于tsrec,便继续将下一有效记录从待压缩扇区压缩到活跃扇区。如果tspec-tpro-tcp(指示在框76中执行对记录的编程之后以及执行压缩迄今,保持在tspec内的eee写入的剩余时间)小于tsrec(对单一记录进行编程所要求的典型时间,如对单一记录进行编程所要求的时间零点),那么在tspec内便没有充足时间来对活跃扇区中的又一个记录进行编程且压缩中止。因此,在决策菱形112处,确定tspec-tpro-tcp小于tsrec。如果不是,那么压缩在框104处继续。然而,如果tspec-tpro-tcp小于tsrec,那么方法70便在决策菱形114处继续,其中确定准备扇区的数量是否大于临界数量2。如果不是,那么便在框118处迫使压缩完成而不中止,这是因为nvm30用完了空间(呈现准备扇区紧急情况)。然而,如果准备扇区的数量大于临界数量2,那么在框102中开始的压缩便中止,其后方法70返回到框74。应注意,在图4的实施方案中,在压缩期间中止压缩仅发生于将一个记录写入到nvm30中完成之后。以此方式,在对一个记录进行编程的中间,压缩并不中止,这导致在压缩期间浪费一个地址。

图3和4的操作可使用存储器控制器22和扇区管理电路24中的电路来执行。举例来说,存储器控制器22和扇区管理电路24控制如eee写入、动态压缩、压缩中止以及擦除的操作。应注意,确定临界数量1和临界数量2可能影响操作方法70操作以改进eee写入的程度。在一个实施例中,临界数量1被设定成2。临界数量1通过一个eee写入和后硅特征化的规格期望/要求来确定。举例来说,如果在新数据写入和一个正常压缩(在压缩期间没有ftp)或擦除期间的四次ftp导致eee写入超出spec,或相较于预期花费更多时间,那么便应将临界数量1设定成3而非2。在一个实施例中,临界数量2被设定成2且通过进行分析和模拟来确定。举例来说,如果准备扇区的数量不大于特定数量,那么其可能导致eee系统很快用完可用的空间。因此,将所述特定数量设定为临界数量2。在极端情况下,临界数量2被设定成0,这意指如果已未剩余准备扇区,那么必须进行压缩以释放新nvm空间,否则,eee系统将很快用完空间。

用于将针对上文所述的动态压缩流程的临界数量1与临界数量2进行比较的一种实施方案可包含使用两种决策信号作为临界数量1与临界数量2经由比较器27比较的结果,其中

数字定时器可针对tpro和tcp来设计。

因此,这时应了解可如何使用动态压缩通过减少失败来改进eee系统的性能。在动态压缩的情况下,即使确定需要压缩,压缩也可发生或可不发生,如通过不同因素动态确定的。在一个实施例中,如果如由ftp计数所提供的ftp的次数大于临界数量1,那么便可基于准备扇区的数量而选择性地省略压缩。举例来说,如果准备扇区的数量大于临界数量2,那么便省略压缩。另外,如果ftp计数不大于临界数量1,那么在某些条件下可中止压缩。通过省略或中止压缩,在可能时,可以减少失败的次数,从而改进性能且延长产品寿命。另外,在任一种情形中,在于有效扇区中成功地编程具有新数据的新记录之后,执行对是否需要压缩(是完成、省略还是中止)的确定。以此方式,新eee写入数据未丢失。

由于实施本发明的设备大部分由本领域的技术人员已知的电子组件和电路组成,所以为了理解和了解本发明的基本概念并且为了不混淆或偏离本发明的教示,将不会以比上文所示出的认为必要的任何更大程度来阐述电路细节。

在适当时,以上实施例中的一些可使用多种不同信息处理系统来实施。举例来说,虽然图1和其论述描述了示例性数据处理系统架构,但是此示例性架构仅在论述本发明的各个方面中以提供有用的参考来呈现。当然,出于论述的目的,对架构的描述已被简化,且其只是可根据本发明使用的合适架构的许多不同类型中的一种。本领域技术人员将认识到,逻辑块之间的边界仅仅是说明性的,且替代性实施例可以合并逻辑块或电路元件,或对各种逻辑块或电路元件施加功能性的替代分解。

另外,例如,在一个实施例中,所示出的系统10的元件是位于单个集成电路上或相同装置内的电路。可替换的是,系统10可包括任何数量的单独集成电路或彼此互连的单独装置。举例来说,其它模块18中的任何一个或多个可位于与处理器12相同的集成电路上或独立集成电路上或位于与系统10的其它元件离散分离的另一外围设备或从属设备内。

此外,本领域的技术人员将认识到,上述操作的功能性之间的边界仅为说明性的。多个操作的功能可以组合成单一操作,且/或单一操作的功能可分布在额外操作中。此外,替代性实施例可包含特定操作的多个实例,且操作的次序可在各种其它实施例中进行更改。

虽然本文中参考特定实施例描述了本发明,但是可以在不脱离如以下权利要求书中所阐述的本发明的范围的情况下进行各种修改和改变。举例来说,可使用不同类型的存储电路来存储本文中所描述的静态值或动态值。因此,说明书和附图应视为说明性而非限制性意义,且预期所有这些修改都包含在本发明的范围内。并不意图将本文中相对于特定实施例所描述的任何益处、优点或针对问题的解决方案理解为任何或所有权利要求的关键、要求或必不可少的特征或元件。

如本文中所使用,术语“耦合”并不意图局限于直接耦合或机械耦合。

此外,如本文中所使用,术语“一(a/an)”被限定为一个或多于一个。另外,在权利要求书中对如“至少一个”和“一个或多个”等引导性短语的使用不应被解释为暗示由不定冠词“一”引导的另一权利要求要素将含有这类所引导权利要求要素的任何特定权利要求限制于仅含有一个此类要素的发明,即使是当同一权利要求包含引导性短语“一个或多个”或“至少一个”以及如“一”等不定冠词时也如此。定冠词的使用也是如此。

除非另有陈述,否则如“第一”和“第二”的术语用于任意地区别这类术语所描述的元件。因此,这些术语未必意图指示这类元件在时间上的优先级或其它优先级。

以下为本发明的各种实施例。

在一个实施例中,一种在具有被布置成具有多个扇区的非易失性存储器的电可擦除可编程只读存储器(eeprom)仿真(eee)系统中的方法,其中每一扇区被布置成具有多个记录位置,所述方法包含:将新数据的新记录编程到多个扇区中的活跃扇区的记录位置中;在成功地完成对新记录的编程之后,将在编程期间的编程失败(ftp)发生的次数与第一阈值进行比较;当ftp发生的次数大于第一阈值时:确定需要压缩,并响应于确定需要压缩,基于第二阈值选择性地执行压缩。在一个方面中,所述方法另外包含当ftp发生的次数小于第一阈值时:确定需要压缩,响应于确定需要压缩而开始压缩,且在压缩期间,在完成压缩之前中止压缩。在一其它方面中,确定需要压缩包括确定多个扇区中的最早充满扇区包含至少一个有效记录。在另一其它方面中,响应于确定以下情况而执行中止压缩:在执行对新记录的编程之后且从开始所述压缩起在执行压缩的起始部分之后,保持在一个eee写入操作的规格时间内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及多个扇区中准备存储新记录的扇区的数量大于第二阈值。在甚至其它方面中,在将第一有效记录从最早充满扇区编程到活跃扇区之后,执行中止压缩。在甚至其它方面中,完整压缩操作包含将预定数量的有效记录从最早充满扇区编程到活跃扇区,且在将第一有效记录编程到活跃扇区之后但在将预定数量的有效记录编程到活跃扇区之前,执行中止压缩。在另一其它方面中,当ftp发生的次数小于第一阈值时,所述方法另外包含执行对多个扇区中的一个扇区的擦除操作。在以上一个实施例的另一方面中,基于第二阈值选择性地执行压缩包含:如果多个扇区中准备存储新记录的扇区的数量不大于第二阈值,那么便执行压缩,且如果多个扇区中准备存储新记录的扇区的数量大于第二阈值,那么便省略压缩。在其它方面中,确定需要压缩包含确定多个扇区中的最早充满扇区包含至少一个有效记录。在另一方面中,当ftp发生的次数大于第一阈值时,所述方法另外包含执行对多个扇区中的一个扇区的擦除操作。

在另一实施例中,电可擦除可编程只读存储器(eeprom)仿真(eee)系统包括:被布置成具有多个扇区的非易失性存储器(nvm),其中每一扇区被布置成具有多个记录位置;存储器控制器,耦合到nvm且具有:被配置成对ftp发生计数的编程失败(ftp)计数器、编程持续时间定时器及压缩持续时间定时器,以及存储电路,被配置成存储第一阈值和第二阈值,所述存储器控制器被配置成:将新数据的新记录编程到多个扇区的活跃扇区的记录位置中同时启用编程持续时间计数器,且在成功地完成对新记录的编程以及使编程持续时间计数器停止之后,将ftp计数器的计数值与第一阈值进行比较,其中,当计数值大于第一阈值时,响应于确定需要压缩,基于第二阈值选择性地执行压缩。在一个方面中,存储器控制器被配置成通过确定多个扇区中的最早充满扇区包含至少一个有效记录而确定需要压缩。在另一方面中,存储器控制器被配置成:当计数值小于第一阈值时,响应于确定需要压缩,开始压缩同时启用压缩持续时间计数器,且在压缩期间,在完成压缩之前中止压缩。在其它方面中,存储器控制器被配置成在以下情形时中止压缩:保持在一个eee写入操作的规格时间减去编程持续时间计数再减去压缩持续时间计数内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及多个扇区中准备存储新记录的扇区的数量大于第二阈值。在另一方面中,存储器控制器被配置成:当计数器值大于第一阈值时并响应于确定需要压缩,如果多个扇区中准备存储新记录的扇区的数量不大于第二阈值,那么便执行压缩,且如果多个扇区中准备存储新记录的扇区的数量大于第二阈值,那么便省略压缩。

在又另一实施例中,一种在具有被布置成具有多个扇区的非易失性存储器的电可擦除可编程只读存储器(eeprom)仿真(eee)系统中的方法,其中每一扇区被布置成具有多个记录位置,所述方法包含:将新数据的新记录编程到多个扇区中的活跃扇区的记录位置中;在成功地完成对新记录的编程之后,将在编程期间的编程失败(ftp)发生的次数与第一阈值进行比较;当ftp发生的次数大于第一阈值时:响应确定需要压缩,如果多个扇区中准备存储新记录的扇区的数量不大于第二阈值,那么便执行压缩,且如果多个扇区中准备存储新记录的扇区的数量大于第二阈值,那么便省略压缩;当ftp发生的次数小于第一阈值时:响应于确定需要压缩而开始压缩,且在压缩期间,在完成压缩之前中止压缩。在一个方面中,确定需要压缩包含确定多个扇区中的最早充满扇区包含至少一个有效记录。在其它方面中,响应于确定以下情况而执行中止压缩:在执行对新记录的编程之后且从开始所述压缩起在执行压缩的起始部分之后,保持在一个eee写入操作的规格时间内的eee写入的剩余时间小于写入单一记录所要求的典型时间,以及多个扇区中准备存储新记录的扇区的数量大于第二阈值。在又另一实施例的另一方面中,完整压缩操作包含将预定数量的有效记录从最早充满扇区编程到活跃扇区,且在将第一有效记录编程到活跃扇区之后但在将预定数量的有效记录编程到活跃扇区之前,执行中止压缩。在另一方面中,所述方法另外包含执行对多个扇区中的一个扇区的擦除。

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