存储器及使用于一存储器编程命令的方法.pdf

上传人:1****2 文档编号:853008 上传时间:2018-03-15 格式:PDF 页数:7 大小:365.99KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910149324.0

申请日:

2009.06.16

公开号:

CN101740126A

公开日:

2010.06.16

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G11C 16/10申请公布日:20100616|||实质审查的生效IPC(主分类):G11C 16/10申请日:20090616|||公开

IPC分类号:

G11C16/10; G11C16/34; G11C16/02; G11C11/34

主分类号:

G11C16/10

申请人:

旺宏电子股份有限公司

发明人:

洪俊雄; 何文乔

地址:

中国台湾新竹科学工业园区力行路16号

优先权:

2008.11.13 US 12/270,722

专利代理机构:

中科专利商标代理有限责任公司 11021

代理人:

周国城

PDF下载: PDF下载
内容摘要

本发明公开了一种存储器以及使用于一存储器编程命令的方法。此存储器包括缓冲器以及至少一编程单元。此方法包括以下步骤。首先,将编程命令输入存储器。接下来,将用户数据输入缓冲器。读取编程单元的数据。确定用户数据是否装满缓冲器。若用户数据未装满缓冲器,则用编程单元的数据来填充未被用户数据占据的缓冲器部份。若编程单元不是空白的,则擦除编程单元。最后,将缓冲器的数据编程到编程单元内。

权利要求书

1: 一种使用于一存储器编程命令的方法,该存储器包括一缓冲器以及至少一编程单元,该方法包括: 将该编程命令输入该存储器; 将用户数据输入该缓冲器; 读取该编程单元的数据; 确定该用户数据是否装满该缓冲器; 若该用户数据未装满该缓冲器,则利用该编程单元的该数据来填充该缓冲器的未被该用户数据占据的部份; 若该编程单元不是空白的,则擦除该编程单元;以及 将该缓冲器的数据编程到该编程单元内。
2: 根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该缓冲器的大小等于该编程单元的大小。
3: 根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该缓冲器的大小等于该存储器的擦除单元的大小。
4: 根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,用于填充该缓冲器的未被该用户数据占据的该部份的该编程单元的该数据的地址范围,是除该用户数据的该地址范围外的整个该编程单元的该地址范围。
5: 根据权利要求1所述的使用于该存储器编程命令的方法,其特征在于,该编程单元的该数据以与该编程单元相同的地址配置方式填充到该缓冲器的该部份内,使得在将该缓冲器的该数据编程到该编程单元内之后得以保持该填充数据的内容和位置。
6: 一种存储器,其特征在于,包括: 一存储器阵列,包括一编程单元; 一缓冲器,耦接于该存储器阵列,接收用户数据;以及 一编程电路,耦接于该缓冲器和该存储器阵列,接收一编程命令,其中,响应于该编程命令,该编程电路读取该编程单元的数据;确定该用户数据是否装满该缓冲器;若该用户数据未装满该缓冲器,则该编程电路利用该编程单元的该数据来填充该缓冲器的未被该用户数据填充的部份;若该编程单元不是空白的,则该编程电路擦除该编程单元;并将该缓冲器的数据编程到该编程单元内。
7: 根据权利要求6所述的存储器,其特征在于,该缓冲器的大小等于该编程单元的大小。
8: 根据权利要求6所述的存储器,其特征在于,该缓冲器的大小等于该存储器阵列的擦除单元的大小。
9: 根据权利要求6所述的存储器,其特征在于,用于填充该缓冲器的未被该用户数据填充的该部份的该编程单元的该数据的地址范围,是除该用户数据的该地址范围外的整个该编程单元的该地址范围。
10: 根据权利要求6所述的存储器,其特征在于,该编程电路将该编程单元的该数据以与该编程单元相同的地址配置方式填充到该缓冲器的该部份内,使得在该编程电路将该缓冲器的该数据编程到该编程单元之后得以保持该填充数据的内容和位置。

说明书


存储器及使用于一存储器编程命令的方法

    【技术领域】

    本发明是关于一种非易失性存储器(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中的流程。采用以上实施例的编程电路,可降低整个系统的成本和芯片面积。

    虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定的范围为准。

存储器及使用于一存储器编程命令的方法.pdf_第1页
第1页 / 共7页
存储器及使用于一存储器编程命令的方法.pdf_第2页
第2页 / 共7页
存储器及使用于一存储器编程命令的方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《存储器及使用于一存储器编程命令的方法.pdf》由会员分享,可在线阅读,更多相关《存储器及使用于一存储器编程命令的方法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明公开了一种存储器以及使用于一存储器编程命令的方法。此存储器包括缓冲器以及至少一编程单元。此方法包括以下步骤。首先,将编程命令输入存储器。接下来,将用户数据输入缓冲器。读取编程单元的数据。确定用户数据是否装满缓冲器。若用户数据未装满缓冲器,则用编程单元的数据来填充未被用户数据占据的缓冲器部份。若编程单元不是空白的,则擦除编程单元。最后,将缓冲器的数据编程到编程单元内。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 信息存储


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1