CN106448730B - 用于在eeprom存储器中进行写入的方法和相应的存储器 - Google Patents

用于在eeprom存储器中进行写入的方法和相应的存储器 Download PDF

Info

Publication number
CN106448730B
CN106448730B CN201610099337.1A CN201610099337A CN106448730B CN 106448730 B CN106448730 B CN 106448730B CN 201610099337 A CN201610099337 A CN 201610099337A CN 106448730 B CN106448730 B CN 106448730B
Authority
CN
China
Prior art keywords
memory
digital word
memory location
new
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610099337.1A
Other languages
English (en)
Other versions
CN106448730A (zh
Inventor
F·塔耶
M·巴蒂斯塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Italian Semiconductor (russell) Co
Original Assignee
Italian Semiconductor (russell) Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Italian Semiconductor (russell) Co filed Critical Italian Semiconductor (russell) Co
Publication of CN106448730A publication Critical patent/CN106448730A/zh
Application granted granted Critical
Publication of CN106448730B publication Critical patent/CN106448730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本申请涉及用于在EEPROM存储器中进行写入的方法和相应的存储器。根据一种实现模式,提出当可选地使用传统写命令时,通过基于待写入数据的值并且可选地基于存储器中存在的数据的值来删除擦除步骤或者编程步骤,从而自动地加速写操作。当存储器被配备有基于汉明码的纠错码时,汉明码的性质使得可以容易地实现存储器内写入循环的这一可能的加速。这一性质在于,根据该性质,当将n个字节组在一起的数字字的字节的所有比特等于零时,与这些字节相关联的校验位也都等于零。

Description

用于在EEPROM存储器中进行写入的方法和相应的存储器
相关申请的交叉引用
本申请要求2015年8月6日提交的法国申请第1557577号的优先权,据此将该申请通过引用包含于此。
技术领域
本发明的实施例涉及一种用于在EEPROM存储器中进行写入的方法和相应的存储器。
背景技术
目前人们致力于生产具有越来越高密度也就是说越来越可观的存储器容量例如若干兆比特的EEPROM存储器。
但是这导致了数据传送时间的增加。当读取时,数据传送时间由在总线上读取的数据的传送决定。当写入时,数据传送时间由待写入数据在总线上传送以及写入操作的持续时间来决定。因此,需要减少这种数据传送时间。
解决方案包括提高总线的频率。然而,当使用I2C类型也就是说具有开漏的总线时最大频率受到速度/消耗折衷的限制。实际上,目前1MHz的值是这种类型总线的最大值。
对于SPI类型的总线,频率的最大值没有任何真正的限制,但是目前20MHz的频率是在需要5V电压供电的集成电路的应用中使用的最大频率。
通常,EEPROM存储器的写入操作或循环需要两个步骤,即擦除步骤以及随后的编程步骤。在擦除步骤中,擦除脉冲全局地擦除(设置为零)待写入字节的所有存储器单元。在编程步骤中,编程脉冲选择性地对必须存储逻辑1的存储器单元进行编程(设置为1)。
这些脉冲中的每种脉冲都是毫秒的量级并且该持续时间是由能够提供高电压(例如15V或16V)的制造方法的约束、存储器的耐久性(例如4百万个循环)和栅极氧化物的击穿率之间的折衷得出的。
将编程电压从16V提高到17V可以使得有可能获得写入操作的持续时间典型为10%的增益,但是代价是技术约束、耐久性可能减少十年以及栅极氧化物的击穿率可能增加几十倍。
此外,这种快速写入模式必须由专用命令(“操作码”)来激活并且必须激活有限次数(例如在工厂中)。
当可观数量的数据必须被写到N个页面上时,一个解决方案可以是在一个单次循环中同时擦除这N个页面并顺序地对所有N个页面进行逐个编程。然而,在此同样地,这种编程模式需要专用命令并且用户必须确保在接收这种命令之前有关页面处于“已擦除”状态,因为如若不然新的数据将通过逻辑OR函数与旧的数据结合。
发明内容
本发明的实现模式和实施例涉及被称为EEPROM存储器的电可编程和可擦除只读存储器,并且更特别地涉及将数字字(digital word)写入这种存储器的存储器位置的操作。
根据一种实现模式,提出了另一种解决方案,用于减少持续时间并且从而减少EEPROM存储器写入循环或操作的消耗,和/或用于提高存储器的耐久性。
根据一种实现模式,提出了当可选地使用传统的写入命令时以及当避免对存储器层的存储器单元的意外的或者有意的任何过编程时,通过基于待写入数据的值和/或基于存储器中存在的数据的值来删除擦除步骤和/或编程步骤,从而自动地加速写操作和/或提高存储器的耐久性。
此处或下文中将编程步骤的删除(或者编程电路的禁用)理解为不生成编程脉冲(换言之,没有编程步骤),这一点由写入循环的加速以及存储器的耐久性的改进所显现,或者其他情况可理解为生成编程脉冲但是不选择所关注的存储器单元,这一点由在保留了擦除步骤的情况下改进存储器的耐久性但是不加速写入循环所显现。
由此,根据一个方面,提出了一种用于将至少一个数字字写入到电可编程和可擦除只读存储器(EEPROM)设备的存储器层的至少一个存储器位置的方法。该方法包括在存储器设备内实现的特定写入模式,并且包括根据存储器位置的在前内容和/或包括待写入数字字的存储器位置的新内容而对写入操作或循环中的擦除步骤和/或编程步骤的可能删除。
实际上在某些情况下,写入操作可以仅包括擦除步骤或者仅包括编程步骤或者其他情况既不包括擦除步骤也不包括编程步骤,由此使得有可能加速写入循环并因此减少其消耗和/或改进存储器的耐久性。
由此,如果例如待写入的字仅包含“0”,则只有擦除步骤是必须的。
如果此外想要仅写入“0”的存储器位置的在前内容已经是仅包含“0”,则也可以跳过擦除步骤。
类似地,当例如必须用字1F来替换字0F(在十六进制记法中)时,或者其他情况如果想要写入数字字的存储器位置的在前内容已经仅包含“0”时,则擦除步骤是不相关的。
更一般地,根据一种实现模式,这种特定写入模式包括:如果存储器位置的新内容按位大于或等于该存储器位置的在前内容,则删除擦除步骤,其中在前内容被假设为是无错的。
在前内容可以被假设为是无错的(也就是说,该在前内容的比特没有哪个被考虑为是不可靠的),例如已经考虑到存储器的使用条件或者其他情况下因为该在前内容已经被纠错码机制(如果存储器配备了该机制的话)验证以及可选地纠正过。
如果存储器位置的新内容按位等于该存储器位置的在前内容,则特定写入模式还包括编程步骤的删除。
此外,如果存储器位置的新内容按位大于或等于在前内容并且如果新内容的至少一个比特大于假设为无错的在前内容的相应比特,则特定模式包括仅对大于在前内容的相应比特的新内容的每个比特进行编程。
由此避免了对相应存储器单元的任何意外或有意的过编程的风险。
实现诸如这种的选择性编程的一种特别简单的方式是命令对适用于比特的新值以及该比特的旧值的逻辑反(opposite)的逻辑与函数的结果等于1的每个比特进行编程。
该特定写入模式以对存储器设备而言内部的方式实现。换言之,是存储器设备本身来检测待写入数据的值和/或存储器中存在的数据的值,并且是其本身基于待写入数据的值和/或存储器中已存在的数据的值来决定对于所考虑的写入循环删除擦除步骤或编程步骤中的至少一个或者其他情况下保留擦除步骤/编程步骤的传统系列。
该决定可以由简单的组合逻辑容易地实现。
换言之,并非存储器设备外部的元件,例如递送写入命令的微控制器,例如在考虑该外部元件对待写入数据的值和/或存储器中存在的数据的值的分析的情况下决定命令这些可能的步骤删除。
由此,当该特定写入模式在存储器中实现和激活时,存储器的用户并不对做决定进行控制以加速一个或多个写入循环,由此使得有可能特别地如下文表明的那样避免对存储器层的存储器单元的任何意外或有意的过编程。
所有这些特别是对于大容量的EEPROM存储器而言是特别有利的。这种存储器通常使用纠错码机制(ECC:纠错码)。上文述及的特定写入模式可以适用于被配备有纠错码机制(不管该码为何)的存储器。
因为如此,当纠错码基于汉明码时,后者的性质使得有可能容易地实现对写入循环的可能加速和/或对存储器设备内的耐久性的改进。
这一性质在于,根据该性质,当将n个字节组在一起的数字字的字节的所有比特都等于零时,与这些字节相关联的校验位(有时也称为“奇偶校验位”或者“纠错位”)也全都等于零。
本领域普通技术人员知晓汉明码的特征和性质。但是在此想到,对于所有有用的目的,汉明码是所谓的“完美”(也就是说对于给定码长度,不存在任何其他更紧凑的码具有相同的纠错能力)线性纠错码,并且其最小距离(汉明距离)等于三。
由此,根据另一个方面,提出了一种用于将至少一个数字字写入到包括汉明码类型的纠错码机制的电可编程和可擦除只读存储器设备的存储器层的至少一个存储器位置的方法,其中数字字包括至少一个数据字节并且存储器位置将包含多个数据字节,该数据字节的数量至少等于该数字字与校验位一起的数据字节的数量。
传统地,存储器设备的存储器层包括连接到行选择线以及连接到位线的存储器单元。
位线被分组为包括例如M个位线的列。
连接到同一选择线的存储器单元形成字线,并且存储器位置或存储器字包括例如连接到一列的M个位线的同一字线的存储器单元。这种存储器位置使得有可能例如存储32个数据比特(4字节)和6个校验位的数字字。
根据这一方面的一个变型的方法包括在存储器设备内实现的第一写入模式,其包括响应于写入数字字的命令:读取存储器位置的当前内容;计算与存储器位置的新内容的数据相关联的新校验位;以及如果读取的当前内容的所有比特被设置为0则在没有在先的擦除步骤的情况下通过编程步骤,或者如果当前内容的至少一个比特被设置为1则通过传统的擦除步骤和编程步骤的系列,来写入包括数字字和新校验位的存储器位置的新内容。
由此,当前内容的比特的简单读取使得可以检测存储器位置的当前内容(也即,在写入之前该存储器位置中已存在的数据)是否仅包含等于0的比特。
而且,如果存储器位置的当前内容仅包括等于0的比特,则写入数字字的命令将触发在没有在先的擦除步骤的情况下仅使用编程步骤来写入包括数字字的新内容,由此使得可以减少写入操作或循环的持续时间。
如果已经使用了纠错码(不同于汉明码),对其而言都等于0的数据比特导致校验位不都等于0,那么这一点将不容易是可能的,或者实际上就是不可能的。实际上在这种情况下,将有必要使存储器位置的新内容的新校验位在与在前内容的校验位相同的位置具有“1”,因为编程只能将“0”变为“1”。
在此应注意,当存储器位置能够存储多于一个字节时,读取存储器位置的当前内容的这一步骤已经实现并且因此不需要增加到根据这一方面的方法中。
根据这一方面的另一变型的方法包括在存储器设备内实现的第二写入模式,其包括响应于写入数字字的命令:计算与存储器位置的新内容的数据相关联的新校验位;以及如果新内容的所有数据比特被设置为0则在没有在后的编程步骤的情况下通过擦除步骤,或者如果新内容的至少一个比特被设置为1则通过传统的擦除步骤和编程步骤的系列,来写入包括数字字和新校验位的存储器位置的新内容。
尽管有可能,但是尤其是为了简化存储器状态机的目的,却没有必要测试新的校验位是否设置为0,因为考虑到汉明码的特定性质,如果新内容的所有数据比特都设置为0,则计算出来的新校验位将被设置为0。
由此,根据该另一变型,如果存储器位置的未来内容的所有比特设置为0,则编程步骤是不相关的,并且因此这里同样可以减少写入循环的持续时间和/或改进耐久性。
在此应注意,在没有编程步骤情况下的写入操作的触发不是基于存储器位置的当前内容也即在写入之前该存储器位置中存在的在先数据而决定的,因为擦除步骤是对于该存储器位置的所有比特的全局步骤。
当数字字仅包含单个字节并且与4个校验位相关联时,在该另一变型中对存储器位置的当前内容的读取不是必需的。
另一方面,当数字字包括若干数据字节时,第二写入模式还包括在计算新校验位之前读取存储器位置的当前内容。
当然,第一写入模式和第二写入模式都可以同时在存储器设备内实现。
根据这一方面的又一变型的方法包括在存储器设备内实现的第三写入模式,其包括响应于写入数字字的命令:读取存储器位置的当前内容;以及如果读取的当前内容的所有比特被设置为0并且如果包括数字字的新内容的所有数据比特被设置为0,则不进行擦除步骤和编程步骤。
换言之,根据这一可选的又一变型,如果存储器位置的当前内容和新内容仅包含0,则写入循环既不包括擦除步骤也不包括编程步骤。
第一写入模式、第二写入模式和第三写入模式也可以三个都在存储器设备内实现。
当存储器将要被按页面写入时,根据另一方面提出了一种用于将若干数字字写入到包括汉明码类型的纠错码机制的电可编程和可擦除只读存储器设备的存储器层的若干存储器位置中的方法,若干存储器位置形成存储器层的至少一个页面,每个数字字包括至少一个数据字节并且每个存储器位置将包含多个数据字节,该数据字节的数量至少等于数字字与校验位一起的数据字节的数量。
根据该另一方面的变型,方法包括在存储器设备中实现的第一页面写入模式,其包括响应于向页面写入数字字的命令:读取每个存储器位置的当前内容;计算与每个存储器位置的新内容的数据相关联的新校验位;以及如果每个读取的当前内容的所有比特被设置为0则在没有在先的擦除步骤的情况下通过编程步骤,或者如果至少一个读取的当前内容的至少一个比特被设置为1则通过传统的擦除步骤和编程步骤的系列,来写入包括相应数字字和新相应校验位的每个存储器位置的新内容。
根据该另一方面的也可适用于以页面模式写入的另一变型,该方法包括在存储器设备内实现的第二页面写入模式,其包括响应于向页面写入数字字的命令:计算与每个存储器位置的新内容的数据相关联的新校验位;以及如果每个新内容的所有数据比特被设置为0则在没有在后的编程步骤的情况下通过擦除步骤,或者如果至少一个新内容的至少一个比特被设置为1则通过传统的擦除步骤和编程步骤的系列,来写入包括相应数字字和新相应校验位的每个存储器位置的新内容。
在此同样地,当每个数字字包括若干数据字节时,第二页面写入模式还包括,在每次计算新校验位之前,读取每个存储器位置的当前内容。
第一页面写入模式和第二页面写入模式可以同时实现,并且在这种情况下,如果至少两个数字字的相应写入需要不同类型的步骤(例如,一个数字字仅需要擦除步骤而另一个字仅需要编程步骤)或者如果至少一个数字字的写入需要擦除步骤和编程步骤的系列,则页面的数字字的写入需要传统的擦除步骤和编程步骤的系列。
根据该另一方面的另一变型,该方法包括在存储器设备内实现的第三页面写入模式,其包括响应于向页面写入数字字的命令:读取每个存储器位置的当前内容;以及如果每个读取的当前内容的所有比特被设置为0并且如果包括相应数字字的每个新内容的所有数据比特被设置为0,则不进行擦除步骤和编程步骤。
第一页面写入模式、第二页面写入模式和第三页面写入模式可以互相组合,并且如果至少一个数字字的写入仅需要擦除步骤并且如果无其他数字字的写入需要编程步骤,则页面的数字字的写入仅需要擦除步骤;如果至少一个数字字的写入仅需要编程步骤并且如果无其他数字字的写入需要擦除步骤,则页面的数字字的写入仅需要编程步骤;以及在所有其他情况下,页面的数字字的写入需要传统的擦除步骤和编程步骤的系列。
正如上文述及的特定写入模式那样,三种写入模式中的每一种和刚才针对配备有汉明码类型纠错码的存储器所提及的三种页面写入模式中的每一种都以对于存储器设备而言内部的方式实现,并且特别地获得与针对特定写入模式所提及的那些好处一样的好处。
触发第一写入模式和/或第二写入模式和/或第三写入模式和/或第一页面写入模式和/或第二页面写入模式和/或第三页面写入模式的写入命令可以是传统的写入命令或者其他情况下是专门的命令。
第一写入模式和/或第二写入模式和/或第三写入模式和/或第一页面写入模式和/或第二页面写入模式和/或第三页面写入模式可以在存储器设备内默认实现或其他情况下可激活地实现。
执行这一激活存在若干非限制可能性。
例如可以使用可由用户编程的易失性或非易失性比特,例如存储器的状态寄存器中存在的状态字的比特。
还可以使用新的专门的写入命令。
根据另一方面,提出了一种电可编程和可擦除只读存储器类型的存储器设备,包括:包含存储器位置的存储器层、被配置为擦除存储器位置的内容的擦除电路、被配置为对存储器位置中的至少一个数字字进行编程的编程电路以及被配置为响应于写入数字字的命令而根据存储器位置的在前内容和/或包括待写入数字字的存储器位置的新内容来可选地禁用擦除电路和/或编程电路的驱动器。
根据一个实施例,驱动器被配置为如果新内容按位大于或等于在前内容则禁用擦除电路,其中在前内容被假设为是无错的。
根据一个实施例,如果存储器位置的新内容按位等于该存储器位置的在前内容,则驱动器还被配置为禁用编程电路。
根据一个实施例,如果存储器位置的新内容按位大于或等于在前内容并且如果新内容的至少一个比特大于假设为无错的在前内容的相应比特,则驱动器被配置为激活编程电路以便仅执行对大于在前内容的相应比特的新内容的每个比特的编程。
根据一个实施例,驱动器被配置为命令对适用于该比特的新值以及该比特的旧值的逻辑反的逻辑与函数的结果等于1的每个比特进行编程。
根据尤其可适用于配备有纠错码的EEPROM存储器的另一方面,提出了一种电可编程和可擦除只读存储器类型的存储器设备。该存储器设备包括:包含存储器位置的存储器层;汉明码类型的纠错码机制;被配置为擦除存储器位置的内容的擦除电路;读取电路;以及被配置为对存储器位置中的包括至少一个字节的至少一个数字字进行编程的编程电路,存储器位置将包含多个数据字节,该数据字节的数量至少等于数字字与校验位一起的数据字节的数量。
根据该另一方面的一个变型,该设备还包括第一控制器,该第一控制器被配置为响应于写入数字字的命令:激活读取电路以读取存储器位置的当前内容;激活纠错码机制以计算与存储器位置的新内容的数据相关联的新校验位;以及如果读取的当前内容的所有比特被设置为0则仅激活编程电路,或者如果读取的当前内容的至少一个比特被设置为1则相继激活擦除电路和编程电路,以便写入包括数字字和新校验位的存储器位置的新内容。
根据该另一方面的另一变型,该存储器设备包括第二控制器,该第二控制器被配置为响应于写入数字字的命令:激活纠错码机制以计算与存储器位置的新内容的数据相关联的新校验位;以及如果新内容的所有数据比特被设置为0则仅激活擦除电路,或者如果新内容的至少一个比特被设置为1则相继激活擦除电路和编程电路,以便写入包括数字字和新校验位的存储器位置的新内容。
根据一个实施例,当数字字包括若干数据字节时,第二控制器还被配置为在纠错码机制的激活之前激活读取电路以读取存储器位置的当前内容。
该设备可以包括单独的第一控制器和第二控制器,或者同时执行这两种功能的单一控制器,或者用于同一目的的多于两个的控制器,其通常被称为控制电路。
根据该另一方面的又一变型,存储器设备包括第三控制器,该第三控制器被配置为响应于写入数字字的命令:激活读取电路以读取存储器位置的当前内容;以及如果读取的当前内容的所有比特被设置为0并且如果包括数字字的新内容的所有数据比特被设置为0,则既不激活擦除电路也不激活编程电路。
该设备可以包括单独的第一控制电路、第二控制电路和第三控制电路或者执行专门功能的更少或更多的控制器,其通常被称为控制电路。
根据可适用于将要被按位写入的存储器的又一方面,提出了一种电可编程和可擦除只读存储器类型的存储器设备。该存储器设备包括:包含至少一个页面的存储器层,该页面包含若干存储器位置;汉明码类型的纠错码机制;被配置为擦除页面的内容的擦除电路;读取电路;以及被配置为对页面的存储器位置中的若干数字字进行编程的编程电路。每个数字字包括至少一个字节,相应存储器位置将包含多个数据字节,该数据字节的数量至少等于数字字与校验位一起的数据字节的数量。该存储器设备还包括第四控制器,该第四控制器被配置为响应于写入数字字的命令:激活读取电路以读取每个存储器位置的当前内容;激活纠错码机制以计算与每个存储器位置的新内容的数据相关联的新校验位;以及如果每个读取的当前内容的所有比特被设置为0则仅激活编程电路,或者如果至少一个读取的当前内容的至少一个比特被设置为1则相继激活阵列电路和编程电路,以便写入包括相应数字字和新相应校验位的每个存储器位置的新内容。
根据该另一方面的一个变型,该设备包括第五控制器,该第五控制器被配置为响应于写入数字字的命令:激活纠错码机制以计算与每个存储器位置的新内容的数据相关联的新校验位;以及如果每个新内容的所有数据比特被设置为0则仅激活阵列电路,或者如果每个新内容的至少一个比特被设置为1则相继激活阵列电路和编程电路,以便写入包括相应数字字和新相应校验位的每个存储器位置的新内容。
根据一个实施例,每个数字字包括若干数据字节,并且第五控制器还被配置为在纠错码机制的激活之前激活读取电路以读取每个存储器位置的当前内容。
根据一个实施例,该设备包括结合了第四控制器和第五控制器的控制电路,该控制电路被配置为如果至少两个数字字的相应写入需要不同类型的步骤则控制通过传统的擦除步骤和编程步骤的系列向页面写入数字字。
根据该另一方面的又一变型,该设备包括第六控制器,该第六控制器被配置为响应于写入数字字的命令:激活读取电路以读取每个存储器位置的当前内容;以及如果每个读取的当前内容的所有比特被设置为0并且如果包括相应数字字的每个新内容的所有数据比特被设置为0,则既不激活擦除电路也不激活编程电路。
控制电路可以结合第四控制电路、第五控制电路和第六控制电路,并且可以被配置为如果至少一个数字字的写入仅需要擦除步骤并且如果无其他数字字的写入需要编程步骤则控制仅通过擦除步骤向页面写入数字字;如果至少一个数字字的写入仅需要编程步骤并且如果无其他数字字的写入需要擦除步骤则控制仅通过编程步骤向页面写入数字字;以及在所有其他情况下,控制通过传统的擦除步骤和编程步骤的系列来向页面写入数字字。
根据一个实施例,驱动器和/或第一控制电路和/或第二控制电路和/或第三控制电路和/或第四控制电路和/或第五控制电路和/或第六控制电路是可激活的。
附图说明
在研究对完全非限制性的实现模式和实施例的详细描述以及附图的基础上,本发明的其他好处和特征将变得明显,附图中:
图1至图11基本上示意性地涉及本发明的各种实现模式和实施例。
具体实施方式
在图1中,参考标记DIS标出了根据本发明的EEPROM类型的示例性存储器设备。
这一设备DIS包括存储器单元CEL的存储器层PM以及传统的编程电路MPR和擦除电路MEFF、行解码器DECX和列编码器DECY以及包括链接到数据寄存器RDD的读出放大器AMPL的读取电路,该传统的编程电路MPR和擦除电路MEFF尤其包括使得可以施加高编程或擦除电压的高电压电路HV。
在这一示例性实施例中设备DIS还包括形成汉明码类型纠错码机制的ECC电路MECC,就其本质而言是公知的传统结构。
设备DIS还包括控制电路,该控制电路例如包括能够激活编程电路MPR、阵列电路MEFF、读取电路AMPL以及纠错码机制MECC的传统结构的逻辑电路。
存储器设备DIS在此还包括状态寄存器SRG。然而该寄存器是可选的,通常对于连接到SPI总线的存储器而言是存在的,而特别地对于连接到I2C总线的存储器是不存在的。
存储器设备DIS中存在且对理解本发明而言并非不可或缺的其他传统电路,诸如例如地址移位寄存器等,为了简单起见特意在图1中没有表示出来。
在此想到,EEPROM类型的存储器单元CEL包括以传统方式拥有控制栅极、浮置栅极、漏极区域和源极区域。
这种单元是通过Fowler-Nordheim效应可擦除和可编程的。
传统地,在这种EEPROM类型的单元中写入数据项的操作或循环包括擦除步骤和之后的编程步骤。
在擦除步骤中,阵列电路MEFF被配置为将晶体管的漏极和源极耦合至地并向控制栅极施加具有典型为15V量级的擦除值的控制电压。
在单元编程步骤中,编程电路MPR被配置为将控制栅极链接到地,并施加编程电压给漏极,典型的也是15V的量级。至于源极,编程电路MPR被配置为使源极浮置或者将源极预充电到非零预充电电压。
更精确地说,阵列电路被配置为在控制栅极上施加擦除脉冲IMPI形式的控制电压,而编程电路被配置为在漏极上施加编程脉冲IMP2形式的编程电压(图2)。
每个电压/时间擦除或编程脉冲表现为梯形形状,具有斜坡以及之后的高台PLT,典型地在15V的标称电平。
电压斜坡驱动单元的隧道电流。斜坡和高台具有几乎相等的持续时间。
如上所述,阵列电路MEFF和编程电路MPR包括用于生成允许生成相应擦除脉冲和编程脉冲的高压的高压电路HV。
高压电路HV传统地包括例如一个或多个电荷泵级,其与包括例如振荡器的电荷泵的调节相关联。
调节使得可以驱动电荷泵的输出电压。当电荷泵的输出超过高参考时振荡器暂停。随后电荷泵的输出电压由于充电而开始降低。一旦电荷泵的输出电压小于低参考,振荡器就重启。低参考和高参考之间的电压间隙(迟滞)确保了稳定性。这种电压差例如是100毫伏特的量级。
电荷泵调节电平例如是高台PLT的电压电平,例如15V。电荷斜坡例如由接收高台电压作为输入的模拟积分器生成。
脉冲的持续时间(斜坡+高台)可以由模拟或数字计时表(定时器)来控制。
借助指示,数字计时器可以包括连接到计数器的固定频率振荡器。当电荷泵开始时计数器启动,并且计数的结束标记脉冲的结束。
如上所述,在擦除步骤中,擦除脉冲全局地擦除(设置为零)待写入的字节的所有存储器单元。
在编程步骤中,编程脉冲选择性地对必须存储逻辑1的存储器单元进行编程(设置为1)。
虽然写入操作通常包括擦除步骤和后面的编程步骤,但在某些情况下单个擦除或编程步骤可能是在存储器中写入字所必需的。
由此,如果待写入的字仅包含“0”,则只有擦除步骤是必需的。
另外,如果想要仅写入“0”的存储器单元已经仅包含“0”,则擦除步骤也可以被删除。
同样,借助非限制例子,当字0F(在十六进制记法中)必需由字1F替换时,擦除步骤是不相关的。
由此,根据一个方面,提出了一种用于将至少一个数字字写入到电可编程和可擦除只读存储器(EEPROM)设备的存储器层的至少一个存储器位置的方法。该方法包括在存储器设备内实现的特定写入模式,该特定写入模式包括:根据存储器位置的在前内容和/或包括待写入的数字字的存储器位置的新内容,对写入操作或循环的擦除步骤和/或编程步骤进行可能的删除。
并且这种特定写入模式以对于存储器设备而言内部的方式实现,也就是说,是存储器设备本身来检测待写入数据的值和/或存储器中已存在的数据的值,并且是其本身基于待写入数据的值和/或存储器中已存在的数据的值来决定对于所考虑的写入循环删除擦除或编程步骤中的至少一个或者其他情况下保持传统的擦除步骤/编程步骤的系列。
该决定可以由形成控制电路MCM内的驱动器的简单组合逻辑容易地实现。
更精确地说,根据图3所示的一种实现模式,驱动器在步骤300中测试存储器位置的新内容是否按位大于或等于该存储器位置的在前内容,在前内容被假设是无错的。
在否定情况下,驱动器命令通过相继激活(步骤310和320)阵列电路和编程电路来写入新内容。
在肯定情况下,这一特定写入模式包括如果存储器位置的新内容按位大于或等于该存储器位置的在前内容则删除擦除步骤,其中在前内容被假设为是无错的。
驱动器还在步骤301中测试存储器位置的新内容是否按位等于该存储器位置的在前内容。
如果是这样,则这一特定写入模式还包括删除编程步骤。换言之,既没有擦除也没有编程(步骤302),可以理解到,禁用编程步骤被理解为不生成编程脉冲或者其他情况生成这种编程脉冲但是不选择存储器单元(不选择位线)。
此外,如果存储器位置的新内容按位大于或等于在前内容并且如果新内容的至少一个比特大于假设无错的在前内容的相应比特,则该特定模式仅包括对大于在前内容的相应比特的新内容的每个比特进行编程。
由此可以避免对相应存储器单元的意外或有意的过编程的任何风险(步骤303)。
图4的左半部示出了实现测试步骤300的特别简单的方法。
更精确地,对在前内容CNT的每个比特的值和新内容NVC的每个相应比特的逻辑反值(用反相器INV1界定)应用逻辑与函数(步骤3000)。
接下来,对由与函数的反相器INV2反相的输出应用逻辑与函数(步骤3001)。
随后执行关于与函数的输出是否设为1的测试(步骤3002)。
在肯定情况下,存储器位置的新内容按位大于或等于在前内容。
在否定情况下时不是这样。
诸如这种的实现选择性编程的特别简单的方式是如图4的右半边所示的那样对于每个比特测试应用到该比特的新值和该比特的旧值的逻辑反(用反相器INV3来界定)的逻辑与函数3030的结果是否等于1(步骤3031)。
在肯定情况下,该比特将必须被编程,因为1将替换0(新的比特将大于在前的比特)。
在否定情况下,该比特将不必被编程。
如现在将更详细描述的那样,本发明在配备有汉明码类型纠错码机制MECC的EEPROM存储器、特别是大容量存储器的方面是特别有利的。
非易失性存储器尤其是EEPROM容易由于缺陷存储器位置或存储器单元而发生数据崩溃,本领域普通技术人员称之为“单比特失效”。
这些缺陷可能是最初就在“原生”存储器上存在的,或者其他情况最初不存在但是在该项的生命周期期间随着时间推移产生的。
这些缺陷可能是例如由于制造方法中的缺点、氧化物的击穿、绝缘存储器单元上的自留损失的发生所造成的。
当读取包含在这些缺陷存储器位置中的比特时这些位置导致错误逻辑值。
传统的解决方案包括使用纠错码或ECC(“误码纠正”)来纠正比特的错误逻辑值。更精确地,利用纠错码,如果校验位(或者奇偶校验位)被附于b个数据比特上,则可以在b+s个比特中纠正r个错误。
通常,在存储器领域中使用的纠错码使得可以纠正b+s个比特的字中的一个错误(r=1)。在两个缺陷位置对应于不位于同一组(b+s)个比特中的两个比特的情况下,可以纠正存储器中的两个错误。
更精确地,如传统且已知的那样,ECC电路MECC使得可以当读取存储器中的字时基于数据比特b和校验位的集合s来确定校验子(syndrome)。
在此想到,校验子是在纠错过程中执行的、使得可以检测和定位错误的中间计算的结果。
相反,ECC电路MECC还能够基于数据比特的集合来计算校验位的集合。
传统地,存储器的存储器层包括连接到行选择线和位线的存储器单元CEL。
位线被分组为包括例如M个位线的列。
M例如可以等于38,由此对应于伴有s(s=6)个纠错码位或奇偶校验位的b个有用比特(b=32,对应于n=4字节)的字。
连接到同一选择线的存储器单元形成字线并且连接到一列的M个位线的同一字线的存储器单元形成存储器位置或存储器字,使得可以例如存储6个校验位和32个比特的数字字。
EEPROM存储器可以用页面来组织(一个页面包括同一字线的所有存储器字)。
在一次写入循环中可以写入的数据的数量可以从一个字到一整个页面。
在配备有纠错码机制的EEPROM存储器架构中,每次想要写入例如p个新字节到包含n字节(n大于一,p大于或等于一且小于或等于n)和s个校验位的存储器位置,读取该存储器位置的当前内容,也即在此为该存储器位置的38个比特。
纠错可选地由纠错码机制MECC执行。
因此知道4个当前(最初)字节的比特的值。
此外,基于p个新字节和其他n-p个最初字节,重新计算新的校验位。
在此使用汉明码类型纠错码的性质,根据该性质当将n个字节组在一起的存储器位置的字节的比特都等于0时,该存储器位置中包含的校验位都等于0。
由此在此处描述的例子中,当包含在38个比特的存储器位置中的4个字节的32个比特都等于0时,校验位并且因此存储器位置的38个比特都等于0。
图5至图8适用于逐个存储器位置地写入存储器,并非按页面写入。
如图5所示,可以定义第一写入模式,其中响应于将数字字写入存储器位置的命令(步骤30),读取电路执行对包括6个校验位的相应存储器位置的当前内容(38个比特)的读取31。
随后控制电路MCM例如在组合逻辑和/或比较器的辅助下测试是否所有读取的比特都设置为0(步骤32)。
如果至少一个读取的比特设置为1,则控制器第一次激活ECC电路MECC(步骤35)以便纠正(如果必要)存储器位置的最初内容,第二次激活ECC电路MECC以便计算新校验位(步骤36)并随后相继激活擦除电路MEFF和编程电路MPR使得通过传统的擦除步骤37和编程步骤38的系列进行对包括数字字的存储器位置的新内容的写入。
如果对测试32的响应是肯定的,则控制器可以再次执行步骤35以便第一次激活ECC电路MECC,第二次激活ECC电路MECC以计算新校验位(步骤39)并随后仅激活编程电路MPR以通过在没有在先的擦除步骤(因为当存储器位置的所有比特已经设置为0时它是不相关的)的情况下利用编程步骤40进行对包括数字字的存储器位置的新内容的写入。
应注意,在图5的左分支之中执行的步骤35是可选的,因为所有读取的设置为0的比特在汉明码中对应于比特中没有错误。
因为如此,执行这一步骤35使得可以简化结合到控制电路中的状态机的架构。
还将可以在步骤31和32之间执行步骤35。
如图6所示,还可以定义第二写入模式,其中响应于将数字字写入到存储器位置的命令(步骤40a),读取电路执行对包括6个校验位的存储器位置的当前内容(存储器位置的38个比特)的读取41。
接下来,纠错码机制MECC纠正(如果必要)存储器位置的最初内容。
控制电路MCM随后例如在比较器的辅助下测试是否存储器位置的新内容的所有数据比特都设置为0(步骤43)。
考虑到汉明码的特定性质,如果新内容的所有数据比特都设置为0,则新计算的校验位将被设置为0。
如果新内容的至少一个数据比特设置为1,则控制电路MCM激活纠错码机制MECC以执行对与存储器位置的新设想的内容相关联的新校验位的计算44,并随后相继激活擦除电路MEFF和编程电路MPR,以便通过传统的擦除步骤45和编程步骤46的系列进行对包括数字字的存储器位置的新内容的写入。
如果对测试43的响应是肯定的,则控制电路MCM可以再次执行计算与存储器位置的新设想内容相关联的新校验位的步骤44。
在此同样地,尽管对于简化状态机而言是优选的,但是由于在这种情况下新校验位被设置为0,所以这一再次执行是可选的。
作为一个变型,步骤44可以在步骤42与43之间执行。
此后控制器仅激活擦除电路MEFF以便在没有后续的编程步骤(因为当所有待写入的比特都设置为0时它是不相关的)的情况下通过擦除步骤47进行对包括数字字的这一新内容的写入。
尽管这两种写入模式中只有一种可以在存储器设备中可用,但这两种模式可以在一起可用。
在这种情况下,如图7所示,响应于将数字字写入到存储器位置(步骤50),实现类似于图5中的步骤31和32的步骤。
如果对步骤32的询问的响应是“是”,则实现类似于图5中步骤35、39和40的步骤以写入数字字。
如果对步骤32的询问的响应是“否”,则实现类似于图6中步骤42和43的步骤。
如果对步骤43的询问的响应是“是”,则实现类似于图6的步骤44和47的步骤以写入数字字。
如果对步骤43的询问的响应是“否”,则实现类似于图6的步骤44、45和46的步骤以写入数字字。
利用第一写入模式和第二写入模式,因此可以在某些情况下减少写入循环的持续时间并因此将这种循环的消耗以可能两倍的因子减少和/或改进产品的耐久性。
如图8中左半边所示,还可以定义第三写入模式,其中响应于将数字字写入到存储器位置的命令(步骤60),实现类似于图5中步骤31和32的步骤。
如果对步骤32的询问的响应是“是”,则实现类似于图5的步骤35和图6的步骤43的步骤。
如果对步骤43的询问的响应是“是”,则控制电路MCM在可选地实现类似于图6的步骤44的步骤之后,禁用擦除和编程步骤,并且数字字被认为已经写入。
实际上在第三种模式中,期望将“0”写入到已经包含“0”的存储器位置。
在这种情况下,如果编程步骤已经实际被禁用,从而规避了编程脉冲的生成,则写入循环的持续时间和消耗为零或者准零。
如果在另一方面对步骤43的询问的响应是“否”,则实现类似于图6的步骤44的步骤并随后实现类似于图6的步骤46的步骤以写入数字字。
如图8右半边所示这一第三写入模式也可以与第一写入模式和第二写入模式相结合。
更精确地,如果对步骤32的询问的响应是“否”,则实现类似于图5的步骤35和图6的步骤43的步骤。
如果对步骤43的询问的响应为“是”,则实现类似于图6的步骤44和47的步骤以写入数字字。
如果对步骤43的询问的响应为“否”,则实现类似于图6的步骤44、45和46的步骤以写入数字字。
当然,功能上将分别实现第一写入模式、第二写入模式和第三写入模式的第一控制器、第二控制器和第三控制器可以在控制电路MCM内以硬件方式组合在一起。
当存储器将要被按页面写入时,擦除脉冲使得可以全局地擦除页面的全部内容。
类似地,编程脉冲使得页面的全部存储器单元可以被选择性地且同时地编程。
在通常的方式中,在生成擦除和/或编程脉冲之前或者在可能不生成用于写入页面的这种脉冲的情况下,控制电路将针对页面的每个存储器位置,检测对于写入包括新数字字和新校验位的所考虑存储器位置的新内容而言可能必需的一个或多个操作,并随后针对页面的写入应用最差的情况。
由此,如与图5相对照的图9所示,提出了由结合到控制电路MCM中的第四控制器在存储器设备内实现的第一页面写入模式,其提供测试90以确定对页面的每个存储器位置的写入是否仅需要编程步骤。
在肯定情况下,仅通过编程步骤执行对页面的写入91。
在相反情况下,传统地通过擦除和随后的编程执行对页面的写入92。
如与图6相对照的图10所示,提出了由结合到控制电路MCM中的第五控制器在存储器设备内实现的第二页面写入模式,其提供测试100以确定对页面的每个存储器位置的写入是否仅需要擦除步骤。
在肯定情况下,仅通过擦除步骤101执行对页面的写入。
在相反情况下,传统地通过擦除并随后编程来执行对页面的写入102。
图11的包括步骤110和111的部分是与图8的左半边相对照的,并且示出了结合到控制电路MCM的第六控制器在存储器设备内实现的第三页面写入模式,其提供测试110以确定对页面的每个存储器位置的写入是否既不需要擦除步骤也不需要编程步骤。
在肯定情况下,在没有擦除或编程的情况下执行对页面的写入111。
如图11的剩余部分所示,第一页面写入模式、第二页面写入模式和第三页面写入模式可以相结合。
在这种情况下,如果至少一个数字字的写入仅需要擦除步骤并且如果没有其他数字字的写入需要编程步骤(测试112),则对页面的数字字的写入仅需要擦除步骤113;如果至少一个数字字的写入仅需要编程步骤并且如果无其他数字字的写入需要擦除步骤(测试115),则仅需要编程步骤116;以及在所有其他情况下,需要传统的擦除步骤和编程步骤的系列(步骤114)。
触发第一写入模式和/或第二写入模式和/或第三写入模式和/或第一页面写入模式和/或第二页面写入模式和/或第三页面写入模式的写入命令可以是传统的写入命令或者其他情况是专门的命令。
第一写入模式和/或第二写入模式和/或第三写入模式和/或第一页面写入模式和/或第二页面写入模式和/或第三页面写入模式可以在存储器设备内默认实现或其他情况下可激活地实现。
执行这一激活存在若干非限制可能性。
例如可以使用可由用户编程的易失性或非易失性比特,例如存储器的状态寄存器SRG中存在并可通过SPI类型总线存取的状态字的比特。
还可以使用新的专门的写入命令。
本发明在对整个存储器层的最初写入期间、例如当该存储器层必须被整体写入0时是特别有用的。
因为如此,在用户的角度上当用户希望存储器层被考虑为最初写入1时,本发明也可以适用。实际上在这种情况下,足以在读取和编程步骤期间提供数据反置,使得用户角度上的数据项如互补数据项那样在存储器设备中内部地被管理。
并且被用户看作初始具有1(FF)的存储器层将实际上内部地被处理为必须写入0。
在没有在先的擦除步骤而只执行编程步骤的情况下,已经擦除的比特不能在擦除状态中被刷新。
然而,这种情况不是问题,因为这意味着所有比特被适当地内部读取为0。并且如果比特有错误并且内部地显示为1,则存储器设备将随后执行完整的写入循环(擦除和编程),这将随后在所考虑比特的擦除状态中将其刷新。
并且如果用户不管如何都期望强制刷新擦除状态,则可以始终通过将1(或者如果内部地提供了数据反置时,0)输入待写入的数据并随后再次写入同一数字字来这样做,这将随后引起如上所述的完整的写入循环(擦除和编程)。
通过构成对EEPROM存储器单元的过编程可能会引起功能和可靠性问题(例如泄漏、耐久性)。
在传统的EEPROM存储器中,擦除操作是全局的,而编程操作是选择性的并且总是跟在擦除操作之后。因此存储器单元仅能被过擦除、但是永远不会被过编程。
本发明也避免对存储器单元的过编程,因为已编程的存储器单元(包含1)的存在将在下一写入循环期间如上所述地禁止仅利用编程步骤执行的写入。
并且这是特别有益的,因为存储器设备自动地内部管理在写入循环期间实现的一个或多个步骤的事实避免了用户造成的任何意外的过编程。
利用本发明也不可能使存储器字包含单个错误以及不能用正确内容来刷新。实际上在没有在先擦除步骤的情况下实现编程步骤意味着存储器字的所有比特被设置为0,并且对于汉明码,所有比特被设置为0的事实意味着没有单个比特有错误。

Claims (30)

1.一种用于对存储器进行写入的方法,所述方法包括:
接收关于执行写入操作的指示,所述写入操作用于将新内容写入到电可编程和可擦除只读存储器设备的存储器层的存储器位置;
确定所述写入操作是需要擦除步骤和编程步骤二者、还是仅需要擦除步骤、还是仅需要编程步骤、还是既不需要擦除步骤也不需要编程步骤,所述确定是根据所述存储器位置的当前内容与待写入所述存储器位置的所述新内容之间的整体比较来作出的;以及
基于所述确定的结果,通过执行所述擦除步骤和所述编程步骤、仅执行所述擦除步骤、仅执行所述编程步骤或者既不执行所述擦除步骤也不执行所述编程步骤,来执行所述写入操作。
2.根据权利要求1所述的方法,其中当所述存储器位置的新内容按位大于或等于所述存储器位置的所述当前内容时,所述写入不包括擦除步骤。
3.根据权利要求2所述的方法,其中当所述存储器位置的所述新内容按位等于该存储器位置的所述当前内容时,所述写入操作也不包括编程步骤。
4.根据权利要求1所述的方法,其中当所述存储器位置的所述新内容按位大于或等于所述当前内容并且所述新内容的至少一个比特大于所述当前内容的相应比特时,所述写入操作包括对大于所述当前内容的所述相应比特的所述新内容的每个比特进行选择性编程。
5.根据权利要求4所述的方法,其中所述选择性编程包括对应用于该比特的新值以及该比特的当前值的逻辑反的逻辑与函数的结果等于1的每个比特进行编程。
6.一种用于将数字字写入到电可编程和可擦除只读存储器设备的存储器层的存储器位置的方法,所述电可编程和可擦除只读存储器设备包括汉明码类型的纠错码机制,所述数字字包括多个数据字节,并且所述存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述方法包括:
接收写入所述数字字的命令;
响应于写入所述数字字的所述命令,执行写入操作,所述写入操作包括:
读取所述存储器位置的当前内容;
计算与所述存储器位置的新内容的数据相关联的新校验位;以及
如果读取的所述当前内容的所有比特被设置为0,则在没有在先的擦除步骤的情况下通过编程步骤,或者如果读取的所述当前内容的至少一个比特被设置为1,则通过擦除步骤和编程步骤的系列,来写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容。
7.根据权利要求6所述的方法,其中所述数字字包括单个数据字节。
8.根据权利要求6所述的方法,其中将数字字写入到存储器层的存储器位置包括:将多个数字字写入到所述电可编程和可擦除只读存储器设备的所述存储器层的多个存储器位置中,所述多个存储器位置形成所述存储器层的至少一个页面,并且每个数字字包括多个数据字节,并且每个存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量。
9.一种用于将数字字写入到电可编程和可擦除只读存储器设备的存储器层的存储器位置的方法,所述电可编程和可擦除只读存储器设备包括汉明码类型的纠错码机制,所述数字字包括多个数据字节,并且所述存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述方法包括:
接收写入所述数字字的命令;
响应于写入所述数字字的所述命令,执行写入操作,所述写入操作包括:
计算与所述存储器位置的新内容的数据相关联的新校验位;以及
如果所述新内容的所有数据比特被设置为0,则在没有编程步骤的情况下通过执行擦除步骤,或者如果所述新内容的至少一个比特被设置为1,则通过擦除步骤和编程步骤的系列,来写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容。
10.根据权利要求9所述的方法,其中将数字字写入到存储器层的存储器位置包括将多个数字字写入到所述电可编程和可擦除只读存储器设备的所述存储器层的多个存储器位置中,所述多个存储器位置形成所述存储器层的至少一个页面,并且每个数字字包括至少一个数据字节,并且每个存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量。
11.根据权利要求9所述的方法,其中所述数字字包括多个数据字节,并且所述写入操作还包括在所述计算之前读取所述存储器位置的当前内容。
12.一种用于将数字字写入到电可编程和可擦除只读存储器设备的存储器层的存储器位置的方法,所述电可编程和可擦除只读存储器设备包括汉明码类型的纠错码机制,所述数字字包括多个数据字节,并且所述存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述方法包括:
接收写入所述数字字的命令;
响应于写入所述数字字的所述命令,执行写入操作,所述写入操作包括:
读取所述存储器位置的当前内容;以及
如果新内容的任意比特或者所述当前内容的任意比特被设置为1,则通过擦除步骤和随后的编程步骤将所述数字字的所述新内容写入到所述存储器,其中如果读取的所述当前内容的所有比特被设置为0并且包括所述数字字的所述新内容的所有比特被设置为0,则不执行擦除步骤和编程步骤。
13.根据权利要求12所述的方法,其中将数字字写入到存储器层的存储器位置包括将多个数字字写入到所述电可编程和可擦除只读存储器设备的所述存储器层的多个存储器位置中,所述多个存储器位置形成所述存储器层的至少一个页面,并且每个数字字包括至少一个数据字节,并且每个存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量。
14.一种用于执行写入操作的方法,所述写入操作用于将数字字写入到电可编程和可擦除只读存储器设备的存储器层的存储器位置,所述电可编程和可擦除只读存储器设备包括汉明码类型的纠错码机制,所述数字字包括多个数据字节,并且所述存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述方法包括:
接收写入所述数字字的命令;
响应于写入所述数字字的所述命令,读取所述存储器位置的当前内容;
确定是否满足第一条件,当读取的所述当前内容的所有比特被设置为0并且包括所述数字字的新内容的所有数据比特被设置为0时满足所述第一条件,其中当满足所述第一条件时,所述写入操作在没有进一步的擦除步骤或编程步骤的情况下完成;
当所述新内容的任意比特或所述当前内容的任意比特被设置为1时,计算与所述存储器位置的所述新内容的数据相关联的新校验位;
确定是否满足第二条件,当所述当前内容的所有比特被设置为0并且所述新内容的至少一个比特被设置为1时满足所述第二条件;
当满足所述第二条件时,通过在没有在先的擦除步骤的情况下执行编程步骤来写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容,由此执行所述写入操作;
确定是否满足第三条件,当所述新内容的所有比特被设置为0并且所述当前内容的至少一个比特被设置为1时满足所述第三条件;
当满足所述第三条件时,通过在没有编程步骤的情况下执行擦除步骤来写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容,由此执行所述写入操作;以及
当所述第一条件、所述第二条件或所述第三条件都不满足时,通过擦除步骤和随后的编程步骤来执行所述写入操作。
15.一种用于将多个数字字写入到电可编程和可擦除只读存储器设备的存储器层的多个存储器位置中的方法,所述电可编程和可擦除只读存储器设备包括汉明码类型的纠错码机制,所述多个存储器位置形成所述存储器层的至少一个页面,每个数字字包括多个数据字节,并且每个存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述方法包括:
接收写入所述数字字的命令;
响应于写入所述数字字的所述命令,执行写入操作;
其中如果至少一个数字字的写入仅需要擦除步骤并且如果无其他数字字的写入需要编程步骤,则所述写入操作仅使用擦除步骤;
其中如果至少一个数字字的写入仅需要编程步骤并且如果无其他数字字的写入需要擦除步骤,则所述写入操作仅使用编程步骤;以及
其中在所有其他情况下,所述写入操作使用擦除步骤和随后的编程步骤。
16.一种电可编程和可擦除只读存储器类型的存储器设备,所述设备包括:
存储器层,包含存储器位置;
擦除电路,被配置为擦除存储器位置的内容;
编程电路,被配置为对存储器位置中的数字字进行编程;以及
驱动器,被配置为响应于写入所述数字字的命令,根据所述存储器位置的在前内容与包括待写入的所述数字字的所述存储器位置的新内容之间的整体比较,来禁用所述擦除电路、所述编程电路或者所述擦除电路和所述编程电路二者。
17.根据权利要求16所述的设备,其中所述驱动器被配置为当所述新内容按位大于或等于所述在前内容时禁用所述擦除电路。
18.根据权利要求17所述的设备,其中所述驱动器还被配置为当所述存储器位置的所述新内容按位等于所述存储器位置的所述在前内容时禁用所述编程电路。
19.根据权利要求18所述的设备,其中如果所述存储器位置的所述新内容按位大于或等于所述在前内容并且如果所述新内容的至少一个比特大于假设为无错的在前内容的相应比特,则所述驱动器被配置为激活所述编程电路以便仅执行对大于所述在前内容的所述相应比特的所述新内容的每个比特的编程。
20.根据权利要求16所述的设备,其中所述驱动器被配置为命令对如下的每个比特进行编程,针对所述比特的新值和所述比特的旧值的逻辑反应用的逻辑与函数的结果等于1。
21.根据权利要求16所述的设备,还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为:响应于写入所述数字字的所述命令,
激活所述读取电路以读取所述存储器位置的当前内容;
激活所述纠错码机制以计算与所述存储器位置的新内容的数据相关联的新校验位;以及
如果读取的所述当前内容的所有比特被设置为0,则仅激活所述编程电路,或者如果读取的所述当前内容的至少一个比特被设置为1,则激活所述擦除电路并随后激活所述编程电路,以便写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容。
22.根据权利要求16所述的设备,还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为:响应于写入所述数字字的所述命令,
激活所述纠错码机制以计算与所述存储器位置的新内容的数据相关联的新校验位;以及
如果所述新内容的所有数据比特被设置为0,则仅激活擦除电路,或者如果所述新内容的至少一个比特被设置为1,则激活所述擦除电路并随后激活所述编程电路,以便写入包括所述数字字和所述新校验位的所述存储器位置的所述新内容。
23.根据权利要求22所述的设备,其中所述数字字包括多个数据字节,并且所述控制装置还被配置为在所述纠错码机制的激活之前激活所述读取电路以读取所述存储器位置的当前内容。
24.根据权利要求22所述的设备,其中所述控制电路还被配置为响应于写入所述数字字的所述命令,如果读取的当前内容的所有比特被设置为0则仅激活所述编程电路。
25.根据权利要求16所述的设备,还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为响应于写入所述数字字的命令,
激活所述读取电路以读取所述存储器位置的当前内容;以及
如果读取的所述当前内容的所有比特被设置为0并且包括所述数字字的所述新内容的所有数据比特被设置为0,则既不激活所述擦除电路也不激活所述编程电路。
26.根据权利要求16所述的设备,还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为响应于写入所述数字字的所述命令,
激活所述读取电路以读取所述存储器位置的当前内容;以及
激活所述纠错码机制以计算与所述存储器位置的所述新内容的数据相关联的新校验位;
如果读取的所述当前内容的所有比特被设置为0,则仅激活所述编程电路;
如果所述新内容的所有数据比特被设置为0,则仅激活所述擦除电路;
如果读取的所述当前内容的所有比特被设置为0并且包括所述数字字的所述新内容的所有数据比特被设置为0,则既不激活所述擦除电路也不激活所述编程电路;以及
如果所述当前内容或所述新内容的至少一个比特被设置为1,则激活所述擦除电路并随后激活所述编程电路。
27.根据权利要求16所述的设备,其中所述存储器层包括至少一个页面,所述至少一个页面包含多个存储器位置,并且所述编程电路被配置为对所述页面的存储器位置中的多个数字字进行编程,每个数字字包括至少一个字节,相应的存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述设备还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为响应于写入所述数字字的所述命令,
激活所述读取电路以读取每个存储器位置的当前内容;
激活所述纠错码机制(MECC)以计算与每个存储器位置的新内容的数据相关联的新校验位;以及
如果读取的每个当前内容的所有比特被设置为0,则仅激活所述编程电路,或者如果读取的至少一个当前内容的至少一个比特被设置为1,则激活所述擦除电路并随后激活所述编程电路,以便写入包括相应数字字和相应新校验位的每个存储器位置的所述新内容。
28.根据权利要求16所述的设备,其中所述存储器层包含至少一个页面,所述至少一个页面包含多个存储器位置,并且所述编程电路被配置为对所述页面的存储器位置中的多个数字字进行编程,每个数字字包括至少一个字节,相应的存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述设备还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为响应于写入所述数字字的所述命令,
激活所述纠错码机制(MECC)以计算与所述存储器位置的新内容的数据相关联的新校验位;以及
如果每个新内容的所有数据比特被设置为0,则仅激活所述擦除电路,或者如果每个新内容的至少一个比特被设置为1,则激活所述擦除电路并随后激活所述编程电路,以便写入包括所述相应数字字和相应新校验位的每个存储器位置的所述新内容。
29.根据权利要求28所述的设备,其中每个数字字包括多个数据字节,并且所述控制电路还被配置为在所述纠错码机制的激活之前激活所述读取电路以读取每个存储器位置的当前内容。
30.根据权利要求16所述的设备,其中所述存储器层包含至少一个页面,所述至少一个页面包含多个存储器位置,并且所述编程电路被配置为对所述页面的存储器位置中的多个数字字进行编程,每个数字字包括至少一个字节,相应的存储器位置将包含多个数据字节,该数据字节的数量至少等于所述数字字与校验位一起的数据字节的数量,所述设备还包括:
汉明码类型的纠错码机制;
读取电路;以及
控制电路,被配置为响应于写入所述数字字的所述命令,
激活所述读取电路以读取每个存储器位置的当前内容;以及
如果读取的每个当前内容的所有比特被设置为0并且包括相应的所述数字字的每个新内容的所有数据比特被设置为0,则既不激活所述擦除电路也不激活所述编程电路。
CN201610099337.1A 2015-08-06 2016-02-23 用于在eeprom存储器中进行写入的方法和相应的存储器 Active CN106448730B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1557577A FR3039922B1 (fr) 2015-08-06 2015-08-06 Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant
FR1557577 2015-08-06

Publications (2)

Publication Number Publication Date
CN106448730A CN106448730A (zh) 2017-02-22
CN106448730B true CN106448730B (zh) 2019-12-13

Family

ID=55178052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610099337.1A Active CN106448730B (zh) 2015-08-06 2016-02-23 用于在eeprom存储器中进行写入的方法和相应的存储器

Country Status (3)

Country Link
US (1) US10013208B2 (zh)
CN (1) CN106448730B (zh)
FR (1) FR3039922B1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3039922B1 (fr) * 2015-08-06 2018-02-02 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant
US10891057B1 (en) * 2015-12-31 2021-01-12 EMC IP Holding Company LLC Optimizing flash device write operations
WO2017176256A1 (en) * 2016-04-05 2017-10-12 Hewlett Packard Enterprise Development Lp Unmap to initialize sectors
US11139830B2 (en) * 2020-01-28 2021-10-05 Qualcomm Incorporated Bit inversion for data transmission

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1145684A (zh) * 1995-03-17 1997-03-19 爱特梅尔股份有限公司 具有快擦写类存储器芯体的电可擦可编程只读存储器阵列
US5777923A (en) * 1996-06-17 1998-07-07 Aplus Integrated Circuits, Inc. Flash memory read/write controller
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
CN1389873A (zh) * 2001-05-31 2003-01-08 精工电子有限公司 半导体存储器
JP2005216455A (ja) * 2004-02-02 2005-08-11 Matsushita Electric Ind Co Ltd 不揮発性半導体メモリ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
FR2809222A1 (fr) * 2000-05-17 2001-11-23 St Microelectronics Sa Memoire eeprom comprenant un systeme de correction d'erreur
US7155559B1 (en) * 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US8050086B2 (en) * 2006-05-12 2011-11-01 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8051358B2 (en) * 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US8261158B2 (en) * 2009-03-13 2012-09-04 Fusion-Io, Inc. Apparatus, system, and method for using multi-level cell solid-state storage as single level cell solid-state storage
US8438453B2 (en) * 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8799747B2 (en) * 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8898546B1 (en) * 2011-09-27 2014-11-25 Sk Hynix Memory Solutions Inc. Error recovery using erasures for NAND flash
FR3039922B1 (fr) * 2015-08-06 2018-02-02 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1145684A (zh) * 1995-03-17 1997-03-19 爱特梅尔股份有限公司 具有快擦写类存储器芯体的电可擦可编程只读存储器阵列
US5777923A (en) * 1996-06-17 1998-07-07 Aplus Integrated Circuits, Inc. Flash memory read/write controller
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
CN1389873A (zh) * 2001-05-31 2003-01-08 精工电子有限公司 半导体存储器
JP2005216455A (ja) * 2004-02-02 2005-08-11 Matsushita Electric Ind Co Ltd 不揮発性半導体メモリ

Also Published As

Publication number Publication date
CN106448730A (zh) 2017-02-22
FR3039922B1 (fr) 2018-02-02
US20170039001A1 (en) 2017-02-09
FR3039922A1 (fr) 2017-02-10
US10013208B2 (en) 2018-07-03

Similar Documents

Publication Publication Date Title
CN107452421B (zh) 固态储存装置及其状态预测方法
US8161355B2 (en) Automatic refresh for improving data retention and endurance characteristics of an embedded non-volatile memory in a standard CMOS logic process
US7350044B2 (en) Data move method and apparatus
US7523381B2 (en) Non-volatile memory with error detection
CN102422362B (zh) 存储器装置中的多电平编程检验
TWI496152B (zh) 非揮發性半導體記憶裝置及其寫入方法
US8238169B2 (en) Method and apparatus for restoring data in a non-volatile memory
CN105144302A (zh) 存储器装置中的错误校正操作
CN106448730B (zh) 用于在eeprom存储器中进行写入的方法和相应的存储器
TWI536386B (zh) 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置
US20140254263A1 (en) Write Sequence Providing Write Abort Protection
US8036034B2 (en) Semiconductor storage device equipped with a sense amplifier for reading data and threshold-voltage-information data
US9490024B1 (en) Solid state storage device and reading control method thereof
US9053011B2 (en) Selective protection of lower page data during upper page write
US11630726B2 (en) Memory system and operating method thereof
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US9240224B2 (en) Non-volatile memory (NVM) with variable verify operations
JP2013030251A (ja) メモリシステム
US11495319B2 (en) Memory system, memory controller, and method for operating memory system performing integrity check operation on target code when voltage drop is detected
JP6267497B2 (ja) 半導体メモリの制御装置及び不安定メモリ領域の検出方法
US11307794B2 (en) Memory system, memory controller, and operation method of memory system
US20230195367A1 (en) Memory system, memory controller, and operation method of memory system
US11500771B2 (en) Memory system, memory controller, and method of operating memory system
US11544003B2 (en) Memory system, memory controller, and method of operating memory system
JPH10334696A (ja) 半導体記憶装置およびその駆動方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant