CN101740126A - 存储器及使用于一存储器编程命令的方法 - Google Patents
存储器及使用于一存储器编程命令的方法 Download PDFInfo
- Publication number
- CN101740126A CN101740126A CN200910149324A CN200910149324A CN101740126A CN 101740126 A CN101740126 A CN 101740126A CN 200910149324 A CN200910149324 A CN 200910149324A CN 200910149324 A CN200910149324 A CN 200910149324A CN 101740126 A CN101740126 A CN 101740126A
- Authority
- CN
- China
- Prior art keywords
- programming unit
- impact damper
- data
- user data
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种存储器以及使用于一存储器编程命令的方法。此存储器包括缓冲器以及至少一编程单元。此方法包括以下步骤。首先,将编程命令输入存储器。接下来,将用户数据输入缓冲器。读取编程单元的数据。确定用户数据是否装满缓冲器。若用户数据未装满缓冲器,则用编程单元的数据来填充未被用户数据占据的缓冲器部份。若编程单元不是空白的,则擦除编程单元。最后,将缓冲器的数据编程到编程单元内。
Description
技术领域
本发明是关于一种非易失性存储器(non-volatile memory),特别是关于一种非易失性存储器及使用于该存储器编程命令的方法。
背景技术
非易失性存储器能够在断电时保持数据,这是优于易失性存储器的一个优点。然而,非易失性存储器的操作相较于易失性存储器更为复杂。例如,在编程操作中,非易失性存储器的数据位能够从一变为零,但不能从零变为一。因此,在编程非易失性存储器的非空白区块(sector)前,需要进行擦除操作来复位非空白区块的所有位。
通常,现有的非易失性存储器能够处理写入请求的编程单元小到仅有一页,例如512字节(byte)。相比之下,区块是非易失性存储器的最小擦除单元。区块的大小范围为32K字节或更多,也就是说,擦除单位大于或等于编程单元。编程单元的大小通常与缓冲器相同。为了增加写入速度,写入单元趋向于变得更大。然而,将来写入单元仍将保持小于或等于擦除单元。若要编程到非易失性存储器内的用户数据大小未完全对齐区块边界,则区块的原始数据必须先读出并与用户数据一同编程回上述区块,以保留区块中的原始数据。
现有的非易失性存储器的编程功能无法检查目标区块空白与否,现有的非易失性存储器的编程功能无法检查用户数据的大小是否对齐区块边界。由于上述原因,现有的非易失性存储器需要外部流程控制来实现正确且安全的编程操作。
发明内容
有鉴于此,本发明提供一种存储器以及在单一存储器编程命令中使用的方法。此方法为非易失性存储器实现了一种新的编程功能。此新的编程功能响应单个编程命令而进行若干操作,包括在编程非空白编程单元之前保留原始数据,以及进行必要的擦除操作。利用这种新的编程功能,本发明提供的存储器为用户处理所有的相关细节并且更易于使用。另外,上述存储器本身控制新编程功能的流程。因此,上述存储器不需任何外部微控制器(micro-controller)来控制编程的流程,因此可降低整个***的成本。
本发明提供一种使用于一存储器编程命令的方法。此存储器包括缓冲器以及至少一编程单元。此方法包括以下步骤。首先,将编程命令输入存储器。接下来,将用户数据输入缓冲器。读取编程单元的数据。确定用户数据是否装满缓冲器。若用户数据未装满缓冲器,则利用编程单元的数据来填充未被用户数据占据的缓冲器部份。若编程单元不是空白的,则擦除编程单元。最后,将缓冲器的数据编程到编程单元内。
在本发明的一实施例中,编程单元的地址范围是用户数据的地址范围的超集(superset)。用于填充此缓冲器部份的编程单元数据的地址范围是除用户数据的地址范围外的整个编程单元的地址范围。编程单元的数据以与编程单元相同的地址配置填充到此缓冲器部份,使得在将缓冲器的数据编程到编程单元之后保持填充数据的内容和位置。
本发明另提供一种存储器。此存储器包括存储器阵列、缓冲器以及编程电路。存储器阵列包括编程单元。缓冲器耦接于存储器阵列以接收用户数据。编程电路耦接于缓冲器和存储器阵列以接收编程命令。响应于编程命令,编程电路读取编程单元的数据,确定用户数据是否装满缓冲器。若用户数据未装满缓冲器,则利用编程单元的数据来填充未被用户数据占据的缓冲器部份。若编程单元不是空白的,则擦除编程单元。编程电路并且将缓冲器的数据编程到编程单元内。
附图说明
图1是根据本发明一实施例的使用于一存储器编程命令的方法的流程图。
图2是根据本发明一实施例的存储器的示意图。
图3是图2中存储器阵列和缓冲器的数据流的示意图。
【主要元件符号说明】
110-180:流程图步骤
200:存储器
210:编程电路
220:存储器阵列
230:读出放大器
240:缓冲器
310:编程单元
320:编程单元部份
330:编程单元部份
340:缓冲器部份
350:缓冲器部份
具体实施方式
请参阅图1、图2以及图3。图1是根据本发明实施例的使用于一存储器编程命令的方法的流程图。图1中的方法为非易失性存储器实现了一种新的编程功能。图2是显示了根据本实施例的前述存储器200的示意图。图3是显示了图2中的存储器阵列220和缓冲器240的数据流的示意图。
存储器200是非易失性存储器,诸如闪存(flash memory)。存储器200包括编程电路210、存储器阵列220、读出放大器(sense amplifier)230以及缓冲器240。存储器阵列220包括多个编程单元。缓冲器240耦接于存储器阵列220并接收要编程到存储器阵列220的编程单元内的用户数据。读出放大器230耦接于存储器阵列220与缓冲器240之间以将编程单元的数据放大并提供至缓冲器240内。编程电路210耦接于缓冲器240和存储器阵列220,以接收编程命令并响应编程命令来执行新的编程功能。
前述的编程单元是存储器阵列220的最小擦除单元。编程单元也称作存储器阵列220的区块。缓冲器240的大小等于编程单元的大小。
下面是图1中的流程的讨论。在本发明的实施例中,用户数据要编程入到图3所示的存储器阵列220的编程单元310。首先,编程命令被输入编程电路210(步骤110)。接下来,用户数据被输入缓冲器240(步骤120)。响应于编程命令,编程电路210执行包括图1的步骤130~180的此实施例所提出的新编程功能。
在接收编程命令后,编程电路210读取编程单元310的所有数据(步骤130)。从编程单元310读取的数据用于步骤150、160,并将在下面讨论。接下来,编程电路210检查用户数据是否装满整个缓冲器240(步骤140)。若用户数据装满了整个缓冲器240,则流程直接进入步骤160。
如图3所描述的,若用户数据未装满整个缓冲器240,则流程进入步骤150。在这种情况下,缓冲器240可分为两部份,即,被用户数据占据的部份340以及未被用户数据占据的部份350。因此,编程单元310可分为两部份,即,要被用户数据覆写的部份320以及不会被覆写的部份330。由于用户数据要编程到编程单元310内,缓冲器240和编程单元310对应于存储器阵列220中的同一地址范围。换句话说,编程单元310的地址范围是用户数据的地址范围的超集。为了保留编程单元310的部份330中的原始数据,编程电路210利用编程单元310的部份的数据330填充缓冲器240的部份350(步骤150)。显然,用于填充缓冲器240的部份350的数据的地址范围是除用户数据的地址范围外的整个编程单元310的地址范围。编程单元310的部份330的数据以与编程单元310相同的地址配置方式填充到缓冲器240的部份350内,使得在编程电路210将缓冲器240的数据编程到编程单元310内之后得以保持填充的数据内容和位置。
接下来,编程电路210根据步骤130中读取的数据来确定编程单元310空白与否(步骤160)。若编程单元310的所有位具有同一预定值,则编程电路210确定编程单元310是空白的。在本实施例中,预定值是一。若编程单元310空的,则流程指向步骤180。若编程单元310不是空白的,则编程电路210通过将编程单元310的所有位设定为前述的预定值来擦除编程单元310(步骤170)。接下来,编程电路210将整个缓冲器240的数据编程到编程单元310内并完成所提出的新编程功能(步骤180)。
综上所述,图1所示的方法和图2所示的存储器200为非易失性存储器定义并实现了一种新的编程功能。新的编程功能整合多个必要的操作并由存储器200的编程电路210响应单个编程命令而自动地执行。存储器200的用户不必检查编程单元是否空白。存储器200的用户也不必检查用户数据是否装满整个缓冲器240。只要接收单个编程命令,新的编程功能会自动在用户数据少于编程单元的大小时,保留目标编程单元的原始数据,并且在编程单元不是空白时,先自动擦除编程单元。因此,相较于现有的编程功能,上述实施例的新编程功能更灵活方便。
另外,上述实施例中的编程电路是简单的逻辑电路,针对执行新的编程功能而特别设计。因此相较于现有的通用型微控制器而言,编程电路的成本以及占据的芯片面积要小得多。在没有内置编程电路(built-in programcircuit)的情况下,用户必需依靠昂贵的微控制器来控制图1中的流程。采用以上实施例的编程电路,可降低整个***的成本和芯片面积。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定的范围为准。
Claims (10)
1.一种使用于一存储器编程命令的方法,该存储器包括一缓冲器以及至少一编程单元,该方法包括:
将该编程命令输入该存储器;
将用户数据输入该缓冲器;
读取该编程单元的数据;
确定该用户数据是否装满该缓冲器;
若该用户数据未装满该缓冲器,则利用该编程单元的该数据来填充该缓冲器的未被该用户数据占据的部份;
若该编程单元不是空白的,则擦除该编程单元;以及
将该缓冲器的数据编程到该编程单元内。
2.根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该缓冲器的大小等于该编程单元的大小。
3.根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该缓冲器的大小等于该存储器的擦除单元的大小。
4.根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,用于填充该缓冲器的未被该用户数据占据的该部份的该编程单元的该数据的地址范围,是除该用户数据的该地址范围外的整个该编程单元的该地址范围。
5.根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该编程单元的该数据以与该编程单元相同的地址配置方式填充到该缓冲器的该部份内,使得在将该缓冲器的该数据编程到该编程单元内之后得以保持该填充数据的内容和位置。
6.一种存储器,其特征在于,包括:
一存储器阵列,包括一编程单元;
一缓冲器,耦接于该存储器阵列,接收用户数据;以及
一编程电路,耦接于该缓冲器和该存储器阵列,接收一编程命令,其中,响应于该编程命令,该编程电路读取该编程单元的数据;确定该用户数据是否装满该缓冲器;若该用户数据未装满该缓冲器,则该编程电路利用该编程单元的该数据来填充该缓冲器的未被该用户数据填充的部份;若该编程单元不是空白的,则该编程电路擦除该编程单元;并将该缓冲器的数据编程到该编程单元内。
7.根据权利要求6所述的存储器,其特征在于,该缓冲器的大小等于该编程单元的大小。
8.根据权利要求6所述的存储器,其特征在于,该缓冲器的大小等于该存储器阵列的擦除单元的大小。
9.根据权利要求6所述的存储器,其特征在于,用于填充该缓冲器的未被该用户数据填充的该部份的该编程单元的该数据的地址范围,是除该用户数据的该地址范围外的整个该编程单元的该地址范围。
10.根据权利要求6所述的存储器,其特征在于,该编程电路将该编程单元的该数据以与该编程单元相同的地址配置方式填充到该缓冲器的该部份内,使得在该编程电路将该缓冲器的该数据编程到该编程单元之后得以保持该填充数据的内容和位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/270,722 | 2008-11-13 | ||
US12/270,722 US7975111B2 (en) | 2008-11-13 | 2008-11-13 | Memory and method applied in one program command for the memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101740126A true CN101740126A (zh) | 2010-06-16 |
Family
ID=42166244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910149324A Pending CN101740126A (zh) | 2008-11-13 | 2009-06-16 | 存储器及使用于一存储器编程命令的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7975111B2 (zh) |
CN (1) | CN101740126A (zh) |
TW (1) | TWI399750B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314396A (zh) * | 2010-07-06 | 2012-01-11 | 旺宏电子股份有限公司 | 区块为基础闪存的字节存取的方法与装置 |
CN103680610A (zh) * | 2012-09-03 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 差分存储NAND Flash存储器写操作的方法及装置 |
CN104102592A (zh) * | 2013-04-03 | 2014-10-15 | 北京兆易创新科技股份有限公司 | 一种存储器的编写方法和装置 |
CN107578790A (zh) * | 2016-07-05 | 2018-01-12 | 三星电子株式会社 | 命令窗口生成器和具有命令窗口生成器的存储器装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916875A (zh) * | 2005-08-17 | 2007-02-21 | 联发科技股份有限公司 | 存储器空间管理方法及其相关*** |
CN101064193A (zh) * | 2006-04-28 | 2007-10-31 | 汤姆森许可贸易公司 | 用于向闪速存储器执行写入的方法和设备 |
CN101276636A (zh) * | 2007-02-08 | 2008-10-01 | 三星电子株式会社 | 包括缓冲存储器的闪存设备和闪存*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US6016472A (en) * | 1997-09-29 | 2000-01-18 | Lucent Technologies Inc. | System and method for interfacing a digital audio processor to a low-speed serially addressable storage device |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
US20050050135A1 (en) * | 2003-08-25 | 2005-03-03 | Josef Hallermeier | Handheld digital multimedia workstation and method |
US8046542B2 (en) * | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
-
2008
- 2008-11-13 US US12/270,722 patent/US7975111B2/en active Active
-
2009
- 2009-02-17 TW TW098105013A patent/TWI399750B/zh active
- 2009-06-16 CN CN200910149324A patent/CN101740126A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916875A (zh) * | 2005-08-17 | 2007-02-21 | 联发科技股份有限公司 | 存储器空间管理方法及其相关*** |
CN101064193A (zh) * | 2006-04-28 | 2007-10-31 | 汤姆森许可贸易公司 | 用于向闪速存储器执行写入的方法和设备 |
CN101276636A (zh) * | 2007-02-08 | 2008-10-01 | 三星电子株式会社 | 包括缓冲存储器的闪存设备和闪存*** |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314396A (zh) * | 2010-07-06 | 2012-01-11 | 旺宏电子股份有限公司 | 区块为基础闪存的字节存取的方法与装置 |
CN102314396B (zh) * | 2010-07-06 | 2014-01-29 | 旺宏电子股份有限公司 | 区块为基础闪存的字节存取的方法与装置 |
CN103680610A (zh) * | 2012-09-03 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 差分存储NAND Flash存储器写操作的方法及装置 |
CN104102592A (zh) * | 2013-04-03 | 2014-10-15 | 北京兆易创新科技股份有限公司 | 一种存储器的编写方法和装置 |
CN104102592B (zh) * | 2013-04-03 | 2017-06-13 | 北京兆易创新科技股份有限公司 | 一种存储器的编写方法和装置 |
CN107578790A (zh) * | 2016-07-05 | 2018-01-12 | 三星电子株式会社 | 命令窗口生成器和具有命令窗口生成器的存储器装置 |
CN107578790B (zh) * | 2016-07-05 | 2021-03-09 | 三星电子株式会社 | 命令窗口生成器和具有命令窗口生成器的存储器装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201019324A (en) | 2010-05-16 |
US20100122043A1 (en) | 2010-05-13 |
US7975111B2 (en) | 2011-07-05 |
TWI399750B (zh) | 2013-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101202106B (zh) | 非易失性存储***及其相应的编程方法 | |
US7177975B2 (en) | Card system with erase tagging hierarchy and group based write protection | |
US10049005B2 (en) | Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof | |
CN102163133B (zh) | 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 | |
CN100454257C (zh) | 嵌入式*** | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9836391B2 (en) | System and method of page buffer operation for memory devices | |
CN107422982A (zh) | 包括非易失性存储器和控制器的存储装置及其操作方法 | |
US20160306593A1 (en) | Method for reading data from nonvolatile memory | |
KR100875978B1 (ko) | 메모리 카드 및 그것을 포함한 메모리 시스템 | |
US8271719B2 (en) | Non-volatile memory controller device and method therefor | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
CN101918928A (zh) | 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子***及相关方法 | |
US11422717B2 (en) | Memory addressing methods and associated controller, memory device and host | |
KR20130136004A (ko) | 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처 | |
US10346052B2 (en) | Memory system with priority processing and operating method thereof | |
CN101740126A (zh) | 存储器及使用于一存储器编程命令的方法 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US20090187699A1 (en) | Non-volatile memory storage system and method for reading an expansion read only memory image thereof | |
CN108701080B (zh) | 使用参考值确保存储设备动作有效 | |
US10754768B2 (en) | Memory system using descriptor lookup tables to access setting information for a non-volatile memory, and an operating method thereof | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US20080301355A1 (en) | Flash memory information reading/writing method and storage device using the same | |
CN107402887B (zh) | 闪速存储器中的计数器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100616 |