CN102163133A - 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 - Google Patents

针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 Download PDF

Info

Publication number
CN102163133A
CN102163133A CN2011100641632A CN201110064163A CN102163133A CN 102163133 A CN102163133 A CN 102163133A CN 2011100641632 A CN2011100641632 A CN 2011100641632A CN 201110064163 A CN201110064163 A CN 201110064163A CN 102163133 A CN102163133 A CN 102163133A
Authority
CN
China
Prior art keywords
storage arrangement
controller
memory array
arrangement according
data
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.)
Granted
Application number
CN2011100641632A
Other languages
English (en)
Other versions
CN102163133B (zh
Inventor
克里斯托弗·S·穆尔
阿德里安·杰戴
马特·弗鲁因
杨佳
德里克·博施
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk 3D LLC
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 SanDisk 3D LLC filed Critical SanDisk 3D LLC
Publication of CN102163133A publication Critical patent/CN102163133A/zh
Application granted granted Critical
Publication of CN102163133B publication Critical patent/CN102163133B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0661Format or protocol conversion arrangements
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • G06F2212/2142Solid state disk using write-once memory, e.g. OTPROM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Abstract

本发明涉及针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置。本文描述的实施例可用于使得一次或数次可编程存储器能与现有消费者电子装置(例如与快闪——可擦除、非易失性存储器一起工作的那些装置)一起工作而不需要一固件升级,从而提供逆向兼容性且同时将用户冲击减到最小。因此,这些实施例是一种将一次或数次可编程存储器与具有闪存卡插槽的现有消费者电子装置桥接的可行方式。这些实施例还允许设计出未来消费者电子装置而不必为了包括针对一次或数次可编程存储器定制的文件系统来更新固件。

Description

针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
本申请为200580027871.1号、发明名称为“针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置”的发明专利申请的分案申请。 
相关申请案的交叉参考
本申请案主张2004年8月24日申请的第60/604,353号美国临时申请案的优先权,所述美国临时申请案以引用的方式并入本文中。 
技术领域
本发明涉及使用一次或数次可编程存储器的方法和装置,其中一次或数次可编程存储器能与现有消费者电子装置一起工作而不需要一固件升级,从而提供逆向兼容性且同时将用户冲击减到最小。
背景技术
可以得到模块化、便携式、非易失性存储器装置,所述存储器装置可易于连接到主机装置且与主机装置断开,所述主机装置例如数码相机、数码录音机和个人电脑。这些装置中使用的传统存储器(例如闪存卡)是可重写的,从而使得可出于系统或用户目的而擦除和重写存储器地址。低成本存储器技术(一次可编程的(OTP)或数次可编程的(FTP))的创造使得主机装置具有新的使用模式,其类似于模拟相机中的胶卷(可简单地照相并印出相片)并同时节约作为“底片”的低成本卡。理想地,能将此低成本卡用在标准闪光相机中,但技术并不一定兼容,因为便携式装置通常使用需要可擦除的系统结构的DOS FAT12/16文件系统。使用针对OTP或FTP存储器技术定制的文件系统来更新装置中的固件可以解决这个问题,但这会限制具有软件升级的新型相机的整个可达市场,不然就会要求用户使用所属领域中的软件来升级其现有相机。因此,需要建立一种硬件控制器解决方案,其允许终端用户相对无缝地将OTP或FTP存储卡用在现有相机中——逆向兼容控制器(BCC)。
现将参考附图来描述优选实施例。
发明内容
附图说明
图1是优选实施例的主机装置和存储器装置的方块图。
图2是优选实施例的控制器的方块图。
图3是优选实施例的存储器图。
图4是说明优选实施例的智能过滤逻辑操作的流程图。
图5是优选实施例的32字节文件列表结构的图。
图6是一实施例的FAT表的图。
图7是与图6的FAT表相关联的文件列表的实例。
图8和9说明优选实施例的智能过滤操作。
图10是一实施例的用于在边带区域存储重映射信息时读取数据的方法的流程图。
图11是优选实施例的动态重映射分配方法的流程图。
图12是优选实施例的用于重映射实例中的存储器图。
图13是优选实施例的奇偶检验位布局的说明。
具体实施方式
系统概述
本文描述的实施例可用于使得一次或数次可编程的存储器能与现有消费者电子装置(例如与快闪——一种可擦除、非易失性存储器一起工作的那些装置)一起工作而不需要固件升级,从而提供逆向兼容性且同时将用户冲击减到最小。因此,这些实施例是一种将一次或数次可编程存储器与具有闪存卡插槽的现有消费者电子装置桥接的可行方式。这些实施例还允许设计出未来消费者电子装置而不必为了包括针对一次或数次可编程存储器定制的文件系统来更新固件。
现在转向附图,图1是优选实施例的主机装置5和存储器装置10的方块图。主机装置5和存储器装置10两者均包含电连接件,所述电连接件彼此配对以将主机装置5与存储器装置10电耦合。如本文中使用,术语“耦合”意味着通过一个或一个以上介入组件 而直接耦合或间接耦合。所述主机装置5可采取消费者电子装置的形式,例如(但不限于)数字静态或移动相机、个人数字助理、蜂窝式电话、数字音频播放器或个人计算机(例如具有USB读取器/写入器或PCMCIA卡适配器的那些计算机)。在此实施例中,主机装置5含有多次写入文件系统7,例如DOS-FAT文件系统。
存储器装置10可采用模块化小型手持单元的形式,例如存储卡或棒。存储器装置10包含控制器20和一次写入记忆体阵列30。图2是控制器20的方框图。如图2所示,控制器20包含分别与前端总线协议逻辑36和后端总线协议逻辑38耦合的前端总线32和后端总线34。所述前端总线协议逻辑36可经配置为多媒体、安全数码卡、存储棒、压缩快闪、智能媒体、xD、USB、HS-MMC或多种可用的便携式存储媒体中的任一种。所述后端总线协议逻辑38可经配置为NAND快闪、NOR快闪或任何其它专有或公共存储器接口。控制器20还包含两个页面寄存器40、42(页面寄存器0和页面寄存器1)、智能过滤逻辑44、重映射逻辑46和智能ECC逻辑48。虽然出于简单起见图2中未展示,但存储器装置10还可包含计时网络和其它“胶合”逻辑。如下文详细描述,控制器20允许存储器装置10与使用多次写入文件系统的主机装置逆向兼容。因此,本文中有时将控制器20称为“逆向兼容控制器”或“BBC”。
控制器20的优选实施方案是使用与标准组合逻辑组合的有限状态机(Mealy和/或Moore)的ASIC。然而,控制器20可以各种其它形式来实施,例如(但不限于)具有固件的微控制器或微处理器。此外,尽管在此实施例中控制器20通过后端总线34而与存储器阵列30分离,但可将所述设计集成为单个晶粒以节省成本。在极大程度上,本实施例中的控制器20的设计非常类似于用于可重写存储器技术的控制器。差异的例子在于此控制器20优选地不需要任何损耗均衡或其它与擦除非易失性存储器相关联的逻辑。尽管此处展现的设计可包括这些额外块和功能,但其可能不是成本最佳的。因此,我们可能希望将它们排除在外。类似地,经设计以与OTP或FTP存储器一起工作的极低成本控制器可能不需要一个以上页面寄存器、重映射逻辑或智能过滤逻辑,所述OTP或FTP存储器使用新的软件文件系统以避免兼容性问题。
一次写入存储器阵列30包含复数个现场可编程一次写入存储器单元。现场可编程一次写入存储器单元是制作为初始未编程数字状态且可在制作后某时切换到替代性已编程数字状态的存储器单元。举例来说,最初未编程数字状态可被识别为逻辑1(或逻辑0)状态,且已编程数字状态可被识别为逻辑0(或逻辑1)状态。因为存储器单元是一次写入的,所以存储位置的最初末编程数字状态(例如,逻辑1状态)一旦切换到已编程数 字状态(例如,逻辑0状态)就不能恢复了。代替作为一次可编程(即,一次写入)存储器阵列,存储器阵列30可采取数次可编程(FTP)存储器阵列的形式,所述FTP存储器阵列是可以一次以上但没有多次写入存储器阵列那么多次被写入的存储器阵列。同样,所述存储器装置10可含有额外的存储器阵列(一次写入、数次可编程或多次写入)。
一次写入存储器阵列30可采用任何适合的形式,例如固态存储器装置(即,响应于电子读取和写入信号的记忆体装置)、磁存储装置(例如硬盘驱动器)或光存储装置(例如CD或DVD)。当具有固态存储器单元的形式时,可将存储器阵列30中的存储器单元组织成二维或三维形式。在一个优选实施例中,存储器阵列30是三维阵列,例如Johnson等人的第6,034,882号美国专利、Zhang等人的第5,835,396号美国专利和第09/560,626号美国专利申请案中所述的阵列,所有这些专利或专利申请案以引用的方式并入本文中。
为了说明这些实施例,DOS FAT文件系统(例如Windows操作系统)将用作多次写入文件系统7的实例。应注意,这些实施例可与其它类型的多次写入文件系统一起使用。再次转向附图,图3是典型的基于FAT 12/16的存储卡的存储器图,其展示多个文件系统结构。如本文中使用,“文件系统结构”指的是描述存储器中的分区、所述分区内的存储空间和/或文件系统能或不能在所述分区中使用的命令类型的任何数据。文件系统结构的实例包括(但不限于)主启动记录、分区启动记录、文件分配表(“FAT”或“FAT表”)、根目录和子目录。所述主启动记录(MBC)用于存储所述卡(即,存储器装置10)的启动信息以及每个逻辑分区的开始位置。大多数存储卡(例如此处所示的一者)只含有一个逻辑分区。在此实例中,分区启动记录(PBR)含有例如丛集大小、丛集数目、分区类型、分区名称等信息,在地址Ox4000处开始。FAT1对应FAT表一,所述FAT表一含有卡10上每个文件的丛集数目链接列表、目录和其它信息。FAT2对应FAT表二。最后,根目录和文件数据区域在物理地址0xC200处开始。这些区域被划分成若干丛集,对应于每个FAT表中的丛集数目。出于解释本实例目的,假设每个丛集正好是4KB大小。注意,这只是FAT文件系统的一实例且绝不希望限制本发明。每个结构的不同位置、不同丛集大小和甚至不同文件系统皆可与同此描述的实施例相关联。
现描述了系统的一般组件,将论述硬件控制器20的智能过滤逻辑44、重映射逻辑46和智能ECC逻辑48,以说明可如何使用这些逻辑块来允许针对可擦除快闪存储器而设计的主机装置几乎无缝地使用OTP存储器。这些逻辑块利用这样的事实,即许多现有主机装置不发送擦除命令而是依靠控制器20来执行任何擦管理(例如,损耗均衡和垃圾收集)。主机装置仅希望在随后时间处读取一地址时展现写入到所述地址的最近数据。如 上文提及,控制器能使用这些逻辑块中的一些或全部,且权利要求书中不需要使用所有三个逻辑块,除非那里明确叙述。
智能过滤逻辑44
智能过滤逻辑44允许控制器20基于所需用户行为而智能地修改主机操作。一种形式的智能过滤逻辑44执行先读后写操作以将请求写入到一地址处的数据与先前写入到所述地址的数据进行比较(即,将“新”数据与“旧”数据进行比较)。在最简单的情况下,智能过滤逻辑44能在先前写入的数据存在任何修改时执行重映射操作,但这可能导致不良用户模型。通过添加复杂性并智能地查看数据中的差异,控制器20可推断主机装置5正试图做什么且可接着选择执行以下操作中的一者:将新数据写入到所述地址;“假写入”数据(即,告知主机装置5成功地执行了写入操作,而事实上未写入任何内容);不允许写入并产生卡错误;或执行重映射操作。这在图4的流程图中说明。如此图中所示,逆向兼容控制器20接收到写入操作(行为65)。如果数据被写入到空白页面或如果正在附加数据(行为65),那么控制器20根据主机装置5请求而写入数据(行为70)。如果正在更新“最后访问的”字段或试图使FAT表“归零”,那么控制器20执行“假写入”(行为80)。如果写入是针对PBR的或如果存在重映射带冲突(行为85),那么控制器20产生卡错误(行为90)。响应于任何其它写入操作(行为95),控制器20执行重映射操作。下文将更详细地描述这些分支。重要的是需要注意到,智能过滤逻辑44可执行所述流程图中展示的所有四个分支、少于所有四个分支或未展示的额外分支。
如图4说明,智能过滤逻辑44优选地依据正写入数据的地方来不同地执行。因此,优选的是,智能过滤逻辑44不但监视新数据也监视主机所请求的地址。举例来说,适于写入到FAT表的过滤可不同于适于写入到用户数据区域的过滤。因此,控制器20优选地得知卡10上FAT表和其它文件系统结构的地址。这可通过将这些地址变成静态并硬编码到逻辑中,通过在启动时让控制器20读取并解译MBR和PBR,或通过将地址保存在通电时提供各种配置数据的“魔页”中。
为了全面理解智能过滤,首先需要了解用户能对存储器装置执行的操作以及如何将其转译成操作文件系统结构和数据的命令。首先,我们描述在用户照相、复制文件、保存新文件或将文件移动到存储卡上的情况下发生了什么。虽然这些操作可随着不同的装置而有所不同,但其均符合一般趋势。首先,主机装置将读取所述FAT表的一者或两者以确定所述卡上哪里有可用的空闲空间。此空闲空间可在FAT16文件丛集中表示为0x0000。接着,主机将把新的32字节文件列表的最初26字节写入到适当目录丛集中。 此32字节结构的存储器图可参见图5。接下来,主机通过写入链接丛集列表而将用于文件的存储器分配到FAT表中。在存储器已被分配之后,主机将把文件数据写入到适当丛集。注意,可按任何次序来进行此分配和写入,且也可将其分开以使得每次分配单个丛集和数据写入。在写入了所有数据之后,最后六字节被写入到文件列表中以陈述起始丛集编号和文件大小。
在图6和7中可看到这样的实例。我们假设主机正将File2.jpg写入到存储器中的未用空间。首先会将文件名称、属性信息等写入到恰当目录中。接着,会针对所述文件来更新FAT表,此处通过将0x0A写入到丛集0x09中来开始,发信号通知下个丛集在丛集A中。直到文件末端被发信号通知已将0xFF写入到丛集0x11中,才写入链接列表。主机接着将文件数据写入到所述卡的新分配丛集中(再次,可将此操作分成每次分配单个丛集直到到达文件末端为止)。最后,将所述最后六字节写入到文件列表,其展示File2.jpg在丛集0x09处开始且大小为45KB。
以非常类似于创建新文件的方式来创建新目录。事实上,除了目录属性位之外,目录和文件在FAT文件系统实施方案中是完全相同的。因此,主机通过首先将目录名和属性位写入到适当目录来创建目录(在FAT2之后的用户数据区域开始处定义ROOT目录)。接着,通过将0x FF写入到FAT表中来分配用于新目录的丛集。任何新建目录内部是分别指向目录和其根源的文件“.”和“..”(“.”文件丛集编号与目录丛集相同)。在写入这两个文件之后,主机接着通过将最后六字节写入到32字节列表来完成所述目录列表。
用户操作的另一实例是删除先前写入到卡的文件。基于FAT的操作系统在用户删除时通常不从卡上擦除文件数据或文件名称。相反地,将字符0xE5写入到文件列表的首字节,且通过将0x00写入到所述文件的丛集在FAT表中的位置来而将其去分配。读取到“E5”作为文件列表中的首字符的任何主机将知道跳过此文件,因为它已经被删除了。通过将正确字符重写到文件中并再分配最初丛集而提供恢复文件的机会。
存储器中的每个文件含有32字节文件条目,其含有以下信息,例如:文件名称;文件属性,例如只读、隐藏、目录、存档;文件创建日期;文件最后访问日期;文件大小;和第一丛集条目。为了重命名文件或改变其属性(例如,隐藏、存档、只读),主机5将仅发送数据写入命令,其关于将新文件名称或属性位写入到最初列表。一般来说,控制器20允许主机5通过实施重映射操作来修改任何这些参数。然而,控制器可选择通过在更新文件列表中的“最后访问日期字段”(图5中字节18到19)时执行假写入来节省存储器。此异常事件的原因在于某些主机(例如Microsoft Windows)每次读取文件时将把 新数据写入到此字段,这会导致使用存储器的512字节来进行重映射。这是系统在用户不知道的情况下执行写入操作的实例。为了避免这种情况,智能过滤逻辑144可选择不实施此特别更新。将稍后将在本说明书中更详细地论述这些隐藏操作的含意和处理。
用户也可选择格式化存储卡。这由主机装置以各种方式来执行。某些装置将仅把0写入到FAT和根目录,从而“释放”所有存储空间。其它主机将试图通过用新信息重写MBR和/或PBR且接着将主机和根目录归零来重格式化卡。其它主机将执行上述操作中的一项或所有,并且将0写入到整个卡以确保所有存储空间被清除。最后,某些主机将执行上述操作中的一项或一项以上,且还使用擦除命令来确保所有数据被完全擦除并为新数据做好准备。
用户可尝试的最终操作是非常广泛的——修改现有数据。用户可选择在相机上旋转相片,在使用工具改进相片颜色或另一变量之后将所述相片重保存到卡上,或许多其它操作中的任一者。主机装置可以各种不同方式来执行这些操作中的任一者,所述方式从写入新文件并擦除旧文件到简单地用新数据盖写旧文件的恰当丛集。
既然我们基本了解了主机是如何执行不同用户操作的,那么我们可以开始了解智能过滤和它们是如何操作的了。BCC控制器将在接收到大多数写入命令时执行先读后写(RBW)。优选地在从主机接收到所需写入地址时立即读取所述存储器装置。这将实现性能改进,因为控制器20能读取所需数据并将其插入到页面寄存器1(PR1)42中且同时主机10正在发送移动到页面寄存器0(PR0)44中的新数据。关于此RBW操作的更多细节在本文档稍后的重映射描述中。现将结合图5展示的FAT表来给出智能过滤操作的各种实例。
为了创建新文件或目录,主机装置5将在恰当子目录中写入新32字节文件条目并更新FAT表以分配正确的存储空间。如果主机装置5正试图写入新文件,其将设法最可能分别用值0x13和0x14来分配此图中的最后两个丛集。查看图4中的流程图,这将对应于“附加数据”,因为没有任何数据正被修改。因此,所述智能过滤逻辑44会简单地将数据写入到最初地址而没有任何改变。在这一般情况下,控制器20允许主机装置5简单地用新文件盖写空闲空问。然而,在某些情况下,由于先前删除的缘故所述空间可对于主机装置5来说看起来是空闲的,但是实际上,存储器重未被擦除。在这种情况下,智能过滤逻辑44可实施重映射操作以使得新数据取代旧数据,如下文所述。
为了删除文件,主机装置5执行两个功能。首先,其用“00h”盖写FAT表中的文件的丛集指针,以向主机装置5展示所述数据区域现在是可用的。在OTP或FTP存储器的 情况下,很可能存储器不能被擦除,且因此控制器20不会想要“释放”存储器那种方式。换句话说,控制器20优选地使用重映射算法来使得看起来似乎主机装置5具有修改过的数据,但是实际上,永远不能真正擦除并恢复此空闲空间。这就是为什么智能过滤逻辑44优选地永远不允许主机将0x00写入到先前分配的丛集。此行为在图4中被称为“假写入”。具体地说,控制器20告知主机装置5已将0写入到存储器,但实际上不会进行任何写入。重要的是需要了解到,将0写入到FAT表中会让用户认为在卡上有比实际上更多的空间是可用的,因此造成不良用户经历,即在看起来似乎卡上具有较多空间时,却不能再写入任何新数据。其次,主机装置5用“E5h”来盖写32字节文件条目的首字符,向FAT文件系统表明去跳过所述文件。当主机5将写入命令发送给控制器20时,控制器20执行先读后写操作,以实现先前数据和新数据的比较。这时,智能过滤逻辑44启用重映射操作,以用“E5h”来盖写原始文件的首字符,如下文所述。
FAT表中的智能过滤的最后实例发生在所述主机5试图通过将除0x00以外的一些内容写入到先前已写入的丛集来改变数据时。举例来说,如果修改文件且在长度上扩展所述文件(例如,将数据添加到thumbs.db文件以使其从16KB增长到24KB),那么可能发生这种情况。此处,会用指向新加数据的丛集编号来取代文件末尾标记0xFF。在此情况下,会发生重映射操作,从而允许主机5根据需要来修改数据。
重要的是需要了解到,由于假写入操作,在主机所认为的在存储器中写入的内容与实际上在存储器中写入的内容之间存在偏差。在将FAT表高速缓冲存储在易失性RAM中的主机系统(例如Windows)中,这意味着对于单个操作可施加一个以上智能过滤。举例来说,假设用户在一个操作中删除1MB文件,且BCC 20假造FAT表中值1MB的丛集的归零。接下来,假设用户试图将500KB文件写入到存储器30。在此情况下,主机5将试图把新文件放在由所述删除操作释放的丛集中。因此,其会写入新丛集分配且留下剩余丛集0x00。智能过滤因此必须重映射新文件丛集,且同时不将先前假造的空间归零。在图8和9中可以看到这个实例。在时间0处,假写入保持卡上的值11-FF,且在时间1处,通过重映射操作而将新文件丛集11-FF写入到卡上,而也保持14-FF以确保看起来似乎没有释放任何空间。
在此实施例中,用于数据区域的智能过滤不同于在FAT表中的那些。可存储在用户区域中的数据限于32字节文件/目录列表和实际文件数据丛集。在最简单的情况下,再次,智能过滤可选择重映射任何正写入在已被使用过的空间上的数据。但是,再次,这会导致不良使用模型,因为早先提及的隐藏系统操作会使用额外存储空间来进行用户并 不留心的重映射。为了避免这些多余的重映射操作,BCC控制器20优选地比较页面寄存器0与页面寄存器1中的数据,且如果唯一的改变或多个改变与特定字段相关联(如图7所示),那么执行假写入。举例来说,如果页面寄存器0中的数据与页面寄存器1中的数据完全匹配(只是所述两个字节偏移了18),那么控制器20会确定主机5曾试图更新“最后访问”字段,且因此会执行假写入操作。因此,主机5会认为字段已被更新,但事实上,并未发生任何写入。
可将已知文件系统结构字段的任何增量或增量组合应用于智能过滤。举例来说,假定设计者确定OTP存储器应不能由用户修改,且因此将不允许任何重命名或删除操作。在此情况下,过滤操作可检测到对于字节0到11的改变,且可执行假写入。另外,假定设计者决定重命名是可以的,但不允许隐藏文件。如果用户试图重命名文件并改变属性位,那么智能过滤逻辑44可检测到这是针对适当字段而发生的且可用新名称来重映射所述数据而并不改变属性位来允许隐藏文件。
可由智能过滤逻辑调用的最后操作是发信号通知错误。在优选实施例中,这将仅在两种情形下发生:(1)如果用户试图格式化卡10或(2)如果卡10已满且不能再写入任何数据。为了格式化卡10,主机5执行至少两个操作:清除FAT表且用所需格式信息来更新PBR。在此情况下,控制器20检测到在FAT表(图3中地址0x0000-0x4000)上正发生写入操作,且将在响应主机命令时设置某组错误位。这些可以是CRC错误、写入失败错误或适合于卡形式因数的任何其它状态错误信号。另外,控制器20可以再次“假造”任何试图将FAT表归零的写入。当卡10已满且不能再写入任何数据时,控制器20能从FAT表或写入地址中检测到卡10已满。在这个时间点上,不能写入任何额外数据,且发信号通知一错误。此外,可设置任何写入保护位来发信号通知用户关于OTP卡10现在已满且实质上就是ROM。控制器20可以多种方式来检测到卡10已满,所述方式从检测FAT表到发现重映射寻址与主机写入寻址重叠。
先前实例都假设主机不发送实际擦除命令来删除文件或系统数据,而是依赖控制器来执行此操作。然而,实际上,某些主机确实具有额外复杂性,需要所述额外复杂性来由其自身执行擦除操作或使物理和逻辑块失效并在日后执行擦除操作。类似这样的系统实例是智能媒体接口,其中所述说明书展示如何在存储器的边带区域中建立逻辑块,标记无效旗标,且执行其它更复杂的操作。重要的是需要注意到,智能过滤概念也可容易地应用到此类系统,其中控制器会基于旧数据与新数据的比较来智能地执行设置操作,而不管所述操作是写入、擦除还是其它命令。
总之,当观看主机可执行的每个个别操作时,智能过滤逻辑可能看起来相对较复杂。然而,通过更仔细观察,可以看到所述行为的多种模式。如果控制器20在销售时已被预格式化,那么PBR、FAT表、根目录和数据区域的地址都是已知的。如果主机5试图盖写PBR,那么控制器20优选地强加卡错误,因为这将改变卡10的格式。由于存储器阵列30的OTP/FTP本质技术的缘故,控制器20优选地通过将00h写入到FAT中先前写入地址来假造任何试图释放卡10上的空间的写入。类似地,可假造针对例如最后访问字段的文件条目的不良更新以获得改进的存储器利用。如果主机5写入到未曾使用过的存储空间,那么智能过滤逻辑优选地允许不中断地继续进行写入。并且,为了谨慎起见,如果主机5以智能过滤逻辑44并不理解的方式来盖写先前数据,那么可优选地重映射所述写入以允许成功地继续进行主机操作。最后,优选的是留心可能导致控制器20针对单个写入命令来执行多个功能的过滤组合。举例来说,如果主机5已高速缓冲存储了所述FAT表并试图擦除大文件且接着在“释放的空间”中复制小文件,那么控制器20优选地允许在不释放FAT表中的额外空间的情况下写入新文件(经高速缓冲存储的FAT与已被过滤的实际FAT的不匹配造成这些组合问题)。
重映射逻辑46
重映射逻辑46可用于将数据移动到一新逻辑地址,所述新逻辑地址允许主机装置5认为其已擦除了一特定地址。重映射是存储器控制器20用来描述数据和地址间接的术语。其指的是在不同于主机5所提供的逻辑地址的物理位置处写入数据的概念。重映射由各种技术(包括快闪存储器)出于多种原因使用,所述原因从性能改进到通过损秏均衡算法来改进数据完整性。然而,对于由BCC启用的OTP或FTP存储器来说,重映射的独特之处在于其用于模仿可擦除性。举例来说,如果主机请求将数据集A写入到地址0,那么控制器20可选择将数据写入在地址0。随后,主机5可能想要将数据从A改变到B,例如在写入字符“E5”来执行擦除操作(如早先所述)时。此时,控制器20会使用智能过滤来确定主机5已恰当地修改数据集A并会将数据集B写入到不同物理位置(例如地址1)。现在,当主机5读取地址0时,控制器20必须知道代替地返回位于地址1处的数据,因而使得对于主机5和用户来说存储器看来已被修改过了。
存在许多用于使来自主机装置的数据改道的方法。参见(例如)下列专利文献,所述专利文献转让给本发明的受让人且以引用的方式并入本文中:第09/877,719号、第09/878,138号、第10/327,680号和第10/023,468号美国专利申请案。一种常用方法是使用物理到逻辑地址表,在启动时读取或计算所述物理到逻辑地址表且接着将其存储在控 制器20的易失性存储器中,但这个表可能非常大且会增加控制器20的晶粒大小和成本。对于本文所述的实施方案来说,优选的是在不损害性能应用要求的情况下保持尽可能低的成本。在优选实施例中,存在两种重映射方法。
第一种也是最简单的方案是使用主机不可见的存储器页面的“边带区域”。在目前优选实施例中,将存储器阵列30组织在528B页面中,但FAT文件系统使用512B扇区。这些额外的16B被称为边带,且可由控制器20使用来存储额外信息,所述信息包括(但不限于)ECC数据、数据和地址有效性旗标以及重映射指针。在此方案中,如果页面已被重映射,那么控制器20使用此边带的一部分来存储物理地址。如果第一次写入所述页面,那么将不需要任何重映射指针,因为物理和逻辑地址是相同的。当主机5试图修改数据时,控制器20将把新数据写入到新位置且把此位置的物理地址存储到旧位置的边带中。
图10含有说明在此重映射方案下如何读取数据的流程图。首先,将读取命令和地址发送到卡10(行为110)。控制器20知道读取整个528B页面(或包括指针所需的那么多)(行为120)且确定边带是否含有FFh(行为130),此让控制器20得知所述地址是否已被重映射了。如果指针是未曾被用过的(即,含有FFh),那么控制器20将所述512B页面返回给主机5。如果边带含有地址,那么控制器20读取存储在边带中的页面地址以找出最近写入的数据。可直接将这个地址存储在边带中或可存储地址的偏移量。这种形式的重映射被称为静态的,因为控制器20不修改FAT表来分配用于重映射的额外空间。在这个实施方案中,卡10已由已经分配在FAT表中的一组数量的重映射数据来预格式化。一旦使用了此数量的数据,就不会再发生重映射了。FAT表展示重映射分配,以使得主机5不会出于其自身目的(例如,存储图像数据)而试图使用此空间。
这第一种重映射方案是非常强有力的且需要非常少的逻辑额外开销来实施。然而,其确实遇到相对较高的性能额外开销,因为已被重映射N次的页面将需要N次读取来找出当前数据。另一种简单的重映射方案可被代替使用以改进此性能。此处,不是存储针对经重映射的页面的指针,而是将利用针对重映射表的指针。此表可使用时间到空间映射技术来存储最近的页面数据。时间到空间映射在第6,738,883号美国专利中描述,所述专利转让给本发明的受让人并以引用的方式并入本文中。现在,已被重映射N次的页面可最多被读入三次,从而显著改进了产品性能且具有非常少的额外成本和复杂性。
应注意到,每当访问一地址时,控制器20就优选地执行这些读取来找出最新页面。对于早先描述的每个智能过滤操作(其中控制器20执行先读后写)来说,控制器20也 优选地沿着重映射链来找出最近页面。
还应了解,可易于向这些算法添加额外复杂性。举例来说,这些算法中的一者或一者以上可与另一者一起使用以在使复杂性减到最小的同时改进性能。另一复杂性实例是使用FAT文件系统中的强大数据位置相关性来执行经高速缓冲存储的读取操作,其中控制器20会读取一页面或其附近的多个页面来查找数据,并行地正由主机5或控制器20执行其它操作。尽管这将向控制器20增加某些成本,但它可显著减少先读后写和重映射行进额外开销。
BCC控制器20可实施的与标准重映射算法的另一个较大区别用于解决主机5的流量控制问题。换句话说,如果控制器5正在主机不知道的情况下将数据移动到新位置,且主机5认为此数据实际上正被擦除并重写入,那么主机5如何知道实际上有多少可空闲空间呢?为了解决这个问题,BCC 20实施两个独立操作。首先,如早先所述,智能过滤逻辑44不让主机5在FAT表中写入0来释放空间。这样将防止用户控制的操作(例如删除文件)看起来似乎擦除并打开了存储器。然而,也必须解决控制器20为重映射而消耗的存储器。
解决这个问题的一种简单方式是在销售存储器装置10之前为重映射分配存储器。这个静态量的重映射可由控制器20使用,直到不剩下任何预分配的空间为止。此时,控制器20可发信号通知卡错误,允许不是重映射的任何写入或许多其它操作。可以看到,这种方法(被称为静态重映射分配)可能是不合需要的,因为其限制了用户能执行的操作的数目和大小。
一种更复杂形式的重映射(称为动态重映射分配)解决了这个问题。在图11中可以看到这种方法的流程图。首先,主机5发送写入命令,且将数据存储在页面寄存器1中(行为160)。接下来,控制器20执行先读后写(RBW)操作并将所述数据存储在页面寄存器2中(行为170)。如果页面寄存器2是空白的(即,含有FFh)(行为180),那么将页面寄存器1的内容写入到存储器阵列(行为190)。如果不是,那么控制器20确定页面寄存器1的内容是否等于页面寄存器2的内容加上附加数据(行为200)。如果是,那么将页面寄存器1的内容写入到存储器阵列(行为190)。如果不是,确定智能过滤逻辑是否被启用(行为210)。如果是,那么过滤数据(行为220)。如果不是,那么需要重映射(行为230)。为了执行重映射,找到位于存储器顶部的第一空闲页面(行为240),且将页面寄存器1的内容没有错误地写入到最高的空闲页面(行为250)。接着,更新FAT表来将页面丛集标记为已使用的(行为260)。最后,将新页面地址写入到最初页面的边 带中(行为270)。尽管此处展示两个页面寄存器来提供性能节约(例如,在地址可用时且在完成来自主机5的数据输入之前发生先读后写),但能够使用单个页面寄存器。
如流程图中所说明,控制器20通过写入FAT表来通知主机5空间已被用于重映射。当需要额外存储器时,控制器20可分配新丛集以供其自身使用,就像主机5会为文件数据分配丛集一样。也就是说,此方案使用相同的指针跟踪算法(如上所述),而且也因为需要额外空间来进行重映射而动态更新FAT表。此实施方案的好处在于主机5和用户不在其能执行的重映射/文件修改数目上受到限制。控制器20将允许其重映射,直到卡被完全填满为止。在此优选实施例中,如图12所示,控制器20从下往上分配存储器,而大多数主机从上往下分配存储器。这种分配方案将允许控制器20和主机5独立分配存储器而不太可能会发生分配冲突。这还允许控制器20每当所述两个分配区冲突时认识到卡10已满。当卡已满时,控制器20可选择设置其永久和暂时写入保护寄存器,发信号通知主机5关于不能再对卡10进行任何写入。非高速缓冲存储系统将知道还剩多少存储器,而高速缓冲存储系统将在启动时读取FAT表来看在所述特定会话之前使用了多少重映射空间。
再次,应注意到静态与动态重映射不是彼此排斥的。事实上,为了辅助用户,可选择在单个产品中实施两者。举例来说,用户可能想要删除或修改文件,即使卡已满且不能添加任何额外文件。如果一组数量的存储器被预分配且在正常操作中不被使用,那么可需要额外数据修改。举例来说,卡10可留出500KB静态重映射,控制器20直到由于主机与控制器分配冲突而使卡10呈现满载时才使用所述500KB静态重映射。此时,控制器20可允许将主机的额外数据写入到静态分配区,直到完成所需操作为止。然后,智能过滤可用于允许某些用户操作(例如删除和重命名)在静态区域中发生,而其它操作会导致错误,因为卡10对于大多数使用来说基本上已满。
在又一实例中,此静态分配区域可由已用BCC技术的软件更新的主机访问。PC或其它电子装置可由一应用程序启用,所述应用程序向卡发送一信号,所述信号会允许应用程序显式访问卡存储器的全部,如第6,424,581号美国专利中描述,所述专利转让给本发明的受让人并以引用的方式并入本文中。此时,所述应用程序会优先于任何智能过滤、重映射等,并可用来通过优化重映射链或甚至允许额外操作进入静态区域中来改进性能,而非启用系统不能做到这些。因此,组合静态与动态重映射算法可使用启用和非启用系统两者来提供最佳用户体验。
另外,其它实施方案能够取代上述简单的指针跟踪方案。下文列举一些实施方案:
读取3命令:可使用较快读取命令(称为READ3),其会允许控制器20只读取边带数据。这会减少在找到最近数据之前读取许多满页面数据的额外开销。
指针表:为了减少读取每个页面来找到最近写入的性能损失,可使用指针表,以使得每个页面会具有列举所有重映射的表。主机5会读取所述表且使用未曾被用过的条目之前的最后一个指针来确定最近更新。表地址本身会存储在页面的边带中。这类似于上文所参考的专利申请案中所述的硬件重映射中使用的表。
系统高速缓冲存储器:控制器20可使用SRAM或类似高速缓冲存储器来存储来自重映射表的数据或存储在边带中的指针。尽管额外SRAM耗费区域且因此使得控制器20更昂贵,但这种结构会允许重映射特别快速地发生且使得性能额外开销减到最小。
重映射算法组合:控制器20可建立重映射利用旗标,所述旗标会表示正在使用简单的指针跟踪方案还是表方案。因此,如果控制器20看到页面已被重映射多次,那么其可选择建立表以减少未来重映射的影响。但是对于简单情况(其中一页面只被重映射两次而已)来说,指针方案就足够了。控制器20可动态设置此旗标,或其可为静态的且基于重映射位置的。举例来说,FAT表将被重映射多次且因此其适于一直使用表或SRAM方案,而数据不经常被重映射且因此此处其可优选使用指针跟踪方案。此实施方案可减小SRAM成本,且同时仍提供接近最佳的系统性能。
智能ECC逻辑48
优选的是,使用ECC以防止可能会发生在字段中的可靠性错误。在目前优选实施例中,BCC 20使用边带来存储ECC数据以及上述重映射指针。ECC可以是8字节、16字节或适于边带可用性的任何大小。在目前优选实施例中,使用128B ECC算法,本文中将其称为“智能大块ECC”。大块ECC(“LB ECC”)对于每个ECC字使用两个关闭且在附录1中进行论述。根据正常大块ECC方案,由于BCC 20利用边带来用于重映射和ECC信息两者,因而边带可能没有足够的空间来对每个字存储两个ECC关闭。相应地,通过仅将每个字关闭一次——当已写入字的最后两个字节时,来使得此大块ECC方案成为“智能”。选择两字节的值是因为FAT表中的每个条目的大小为2字节。(当执行动态重映射连同LB ECC时,控制器20优选考虑ECC关闭操作来确保字段中产品的最大可靠性。换句话说,分配优选不应关闭FAT表中的ECC字并接着在日后更新相同的字。)还可根据数据区域来进行所述关闭操作。举例来说,当更新FAT表时,可能适于基于两字节片段来更新(如上所述),但当更新数据区域时这样做就可能没有意义了。当更新数据区域时,可基于字中的最后六字节来执行关闭操作,因为大多数主机在完全写入所有数据之 后仅更新文件条目的最后六字节。最后,如果检测到正在更新先前关闭的ECC字,那么BCC 20可选择实施重映射操作。这会利用重映射操作结合ECC来保持字段中的最大可靠性。
第6,738,883号美国专利展示使用ECC作为改进OTP或FTP产品中数据可靠性的方法,所述专利转让给本发明的受让人且以引用的方式并入本文中。如此专利中论述,ECC字可被写入一次且仅一次。盖写ECC字中的新数据会导致ECC数据值不正确,从而移除了产品所需的可靠性层面。在已被使得能与OTP或FTP存储器一起工作的系统中,可易于通过为存储器建立线概念(最小写入大小)来处理这个问题,这在上文参考的’883专利中论述。然而,优选地用设计复杂性来补偿这样的情形,其中BCC产品用于非启用系统(即,不具有八字节对准概念的主机)中。
BCC制器20可以很多方式来维持ECC完整性。一个简单方法是每当ECC字失效时就调用重映射操作。此处,控制器20会检测ECC字是否正由智能过滤或其它逻辑方案盖写。在使ECC字失效的情况下,重映射操作会用新ECC数据来重写所述数据,因而保持非常可靠的产品。
尽管重映射可用于保持存储器的100%ECC覆盖,但其会导致许多额外重映射,从而限制了用户的操作数目。在此情况下,可设计控制器20以改进ECC处理。在优选实施例中,将不写入ECC数据且ECC字将在直到写入数据的特定部分时才被完成。举例来说,假设ECC字是32字节。在先前所述的写入文件的情况下,主机5将写入26字节的文件列表数据且稍后在完成了文件数据之后写入最后六字节。在此情况下,控制器的ECC智能过滤逻辑48可确定正在写入文件列表,且直到写入最后六字节时才完成所述ECC字。这会维持ECC完整性,且同时将重映射额外开销减到最小。可针对多种ECC字大小、文件系统结构和数据结构来修改此方案。
总之,智能ECC逻辑48在目前优选实施例中使用症状位存储在边带中的128B ECC字,基于写入最后两字节数据来关闭字,只允许每个字关闭一次,针对FAT表与数据区域使用不同的关闭方案(2B与6B关闭),且在所述ECC字失效或破损时可使用重映射。在此实施例中使用智能ECC逻辑48,因为边带空间不足以进行多个ECC关闭。
结论
存在多种可与这些优选实施例一起使用的替代方法。举例来说,代替在存储器装置的控制器中实施,智能过滤逻辑、重映射逻辑和智能ECC逻辑中的任一者或所有都可整体或部分地在另一组件中执行,所述另一组件例如存储器装置中或主机装置中的另一控 制器。另外,术语“电路”指的是可实施针对其而描述的功能的任何组件。电路的实例包括上文给出的实例以及运行计算机可执行指令的处理器、专用集成电路、现场可编程门阵列、模拟电路或现在已知的或日后开发的任何其它硬件装置(运行或不运行软件)以及其任何组合。
希望将前述详细描述理解为本发明可采取的选定形式的说明而不是本发明的定义。希望只有所附权利要求书(包括所有等效物)来界定本发明范围。最后,应注意到,可单独或彼此组合来使用本文描述的优选实施例中任一者的任一方面。
附录I
大块ECC实施
概述
大块ECC优选地包括以下各项:
·128B的ECC字大小。
·单错误校正,但无双错误检测。
·智能ECC更新,其允许最多两个ECC奇偶性更新。
SEC ECC实施
ECC实施类似于允许对每个字节计算ECC奇偶校验位的实施。由于侧带中的存储有限而需要减少奇偶校验位,已仅针对SEC而不含DED进行了下列修改。图13展示奇偶校验位针对8位数据如何运作的实例:
●P0覆盖D1、D3、D5、D7。
●P1覆盖D2、D3、D6、D7。
●P2覆盖D4、D5、D6、D7。
●P3覆盖D0、D1、D2、D3。
●P4覆盖所有数据位。
下表展示任何一位错误会导致的症状。症状[4:0]是由对期望和实际奇偶校验位进行异或运算造成的。这种算法优选需要N+2个奇偶校验位来覆盖2N个位。针对128字节(210位)的ECC字,优选需要12个奇偶校验位。
  错误位   症状[4:0]
  D0   11000
  D1   11001
  D2   11010
  D3   11011
  D4   10100
  D5   10101
  D6   10110
  D7   10111
  P0   00001
  P1   00010
  P2   00100
  P3   01000
  P4   10000
12位奇偶等式
下列是1024位ECC字优选所需的12组奇偶等式(全部为1的ECC字应导致全部为1的奇偶校验位):
●P0=!XOR(D1,D3,D5,...,D1023)
●P1=!XOR(D2-D3,D6-D7,...,D1022-D1023)
●P2=!XOR(D4-D7,D12-D15,...,D1020-D1023)
●P3=!XOR(D8-D15,D24-31,...,D1016-D1023)
●P4=!XOR(D16-D31,D48-D63,...,D1008-D1023)
●P5=!XOR(D32-D63,D96-127,...,D992-D1023)
●P6=!XOR(D64-D127,D192-D255,...,D960-D1023)
●P7=!XOR(D128-D255,D384-D511,...,D896-D1023)
●P8=!XOR(D256-D511,D768-D1023)
●P9=!XOR(D512-D1023)
●P10=!XOR(D0-D511)
●P11=!XOR(D0-D1023)
智能ECC更新
智能ECC更新优选地允许针对每个ECC字两次写入奇偶校验位。此特征允许部分页面写入由ECC覆盖。在针对ECC字第一次写入新数据期间写入第一组奇偶校验位。任何随后新数据写入优选地将使第一组奇偶校验位无效。在页面正被“关闭”时写入第二组奇偶校验位。当ECC字的最后八字节中的任一位均被编程时认为页面被“关闭”。这种模型与需要部分页面写入的FAT结构合作良好。
智能ECC旗标和奇偶校验位优选地仅在新奇偶校验位与现存有效奇偶校验位不匹配时被更新。相同数据的再写入(其将导致匹配的奇偶校验位)将不会改变智能ECC旗标的状态。
未写入的字:读取时启用ECC
Figure BSA00000453098300181
上文展示针对尚未被编程的数据字的ECC奇偶性、未使用和有效位。有效和未使用位每一者都被复制两次以获得冗余。在此状态下,由于奇偶性0是有效的,因而在读取时启用ECC。注意到,如果有效0是1,那么不管未使用0是什么值。(这对于奇偶性1位并不正确。)
以上奇偶性、未使用和有效位的数目是32位或4B。每个页面具有四个128B ECC字,每个页面存在16B的ECC奇偶性、未使用和有效位。
奇偶性0写入:读取时启用ECC
Figure BSA00000453098300182
上文展示已被编程一次的数据字的ECC奇偶性、未使用和有效位。由于未使用0先前为1,我们知道可编程奇偶性0来反应数据正被写入。未使用0也被编程为0以指示奇偶性0已被写入。在此状态下,由于奇偶性0仍然有效,因而在读取期间启用ECC。
奇偶性0失效:读取时禁用ECC
Figure BSA00000453098300183
上文展示通过将有效0编程为0而使得其奇偶性0位无效的数据字的ECC奇偶性、未使用和有效位。在第一次写入数据字之后,如果使用0已经被编程为0,那么随后写入将使得奇偶性0位失效。在此状况下,由于奇偶性0已经失效且奇偶性1有待更新,因而在读取时禁用ECC。
奇偶性1更新:读取时启用ECC
Figure BSA00000453098300184
上文展示使其奇偶性1位被写入的数据字的ECC奇偶性、未使用和有效位。此发生 在所述字的最后八字节中的任一位被编程且未使用1先前为1时。未使用1也被编程为0以指示奇偶性1已被写入。在大多数情况下,当最后八字节正被编程时,这是对所述数据字的最后部分页面写入。在此状态下,由于奇偶性1是有效的且被写入,因而在读取时启用ECC。(与奇偶性0位不同,未使用1旗标必须为0以使得奇偶校验位有效。)
奇偶性1失效:读取时禁用ECC
Figure BSA00000453098300191
上文展示通过将有效1编程为0而使其奇偶性1位失效的数据字的ECC奇偶性、未使用和有效位。在奇偶性1位被写入之后,如果存在针对此数据字的随后写入,那么奇偶性1位必定会失效。在此状态下,由于奇偶性0和奇偶性1都无效,因而在读取时禁用ECC。
解码冗余未使用和有效旗标
未使用[1:0]和有效[1:0]旗标用于编码奇偶校验位的三个不同状态。下表列举这些状态。
  {未使用[1:0],有效[1:0]}   奇偶状态
  1111   末写入
  0011   写入且有效
  0000   失效
然而,由于我们对于每个旗标只有两个冗余位,因而如果所述冗余位中的一者存在位错误,那么难以确定哪个冗余位是错误的。因此,我们将一直使用未使用[1:0]和有效[1:0]位两者来确定奇偶状态。下表展示通过计数那些位中0的总数目来进行此解码。
Figure BSA00000453098300192
每个旗标使用两个冗余位而并非四个冗余位减少了存储器中所使用的位的数目,此 代价在于冗余强度降低。
特殊情况-页面0
当TF_SECC_PAGE0_TB=’1’时,将略微不同地处理存储器页面0。正常情况下,奇偶性1位可只在所述字的最后八字节中的任何位被编程时才被写入。在此特殊情况下,这个限制被取消了。因此,一旦奇偶性0位被使用时,下一次写入将一直导致奇偶性1位被使用。
修整熔丝位
有3种修整熔丝位会影响ECC逻辑:
TF_ECC_DISABLE_TB
当TF_ECC_DISABLE_TB=’1’时,禁用ECC逻辑且主机对每个页面的边带中的字节512-527具有完整读取和写入访问。
当TF_ECC_DISABLE_TB=’0’时,启用ECC逻辑且每个页面的边带中的字节512-517用于存储用于实施LBECC和智能ECC更新的各种ECC位。将丢弃针对边带区域的任何主机写入。来自边带区域的任何主机读取将返回不定数据。
TF_SMARTECC_DISABLE_TB
当TF_SMARTECC_DISABLE_TB=’1’时,禁用智能ECC更新逻辑。当TF_SMARTECC_DISABLE_TB=’0’时,启用智能ECC更新逻辑。(TF_ECC_DISABLE_TB必须也被设为’0’。)
TF_SECC_PAGE0_TB
当TF_SECC_PAGE0_TB=’0’时,所有页面使用相同的智能ECC逻辑。当TF_SECC_PAGE0_TB=’1’时,相对于智能ECC更新逻辑以不同于所有其它页面的方式来处理页面0。
存储器图
所有ECC奇偶性、未使用和有效位都存在于每个页面的边带中的512-527字节中。下文展示所有四个ECC字的位是如何安排的。
Figure BSA00000453098300201
下文展示针对一个ECC字是如何安排位的(实例针对字0)。
Figure BSA00000453098300202
Figure BSA00000453098300211
测试
可使用DAM模式来进行ECC逻辑的测试。当启用DAM模式来进行写入或读取交易时,将在页面寄存器与存储器阵列之间不传送任何数据。必须解除断言TF_ECC_DISABLE_TB位以让ECC逻辑被测试。下文更详细地描述此测试。
ECC校正
1.启用DAM模式。启用ECC。
2.发布DATAIN命令,所述命令具有512字节写入数据和16字节ECC数据。
3.发布READ命令。(由于在可读回数据之前进行ECC擦洗,芯片将会忙碌)。
4.验证512字节数据是如预期那样的。(如果将单个位错误写入到PR中,那么验证所述错误已被校正。)
ECC生成
1.启用DAM模式。启用ECC。
2.发布DATAIN命令,所述命令具有512字节写入数据。
3.发布PROG命令。(这将16个生成的ECC字节写入到PR中。)
4.发布READ命令。(先前512字节写入数据将会与生成的16字节ECC数据一起被读回。)
5.验证16ECC字节是正确生成的。
如上所述,一种使用ECC的方法使用8B(八字节)ECC字,其中ECC症状是1B宽。在一个实施例中,此造成12.5%的额外开销且提供总晶粒大小的约9-10%。此方法使用单位校正/双位检测算法,其并行处理72位数据。相反地,大块ECC使用ECC字,所述ECC字较大而足以减小症状存储的额外开销。如上文加注,目前优选使用单位检测唯一算法以进一步减小额外开销。此算法依次处理数据。
ECC症状存储有各种选择。在一种选择(选择1)中,ECC症状位被存储在扩展页面区域中。一个目前优选的结构将18B(16B数据和2B ECC症状位)分配到扩展页面。由于此选择,修整熔丝或插针可用于(1)使用内部ECC生成(其中症状存储在扩展页面空间中)且用户不能访问扩展页面空间;且(2)绕过内部ECC生成以允许用户访问扩展页面空间并使用他们自己的ECC算法。在另一选择(选择2)中,ECC症状位被存 储在专用空间中。根据块大小,此可使用某些CR空间。
可在部分页面写入期间写入的最小量等于ECC字大小且当前在目前优选实施例中被设为8B。存在若干种选择。在选择1中,存储器装置识别部份页面写入且针对所述页面禁用ECC。对于此选择不存在逆向兼容性问题,然而,将损害部分写入之后的数据完善性。除了增加N次重写ECC能力之外,选择2与选择1相同。存储器装置将足够聪明来识别部分写入,使旧ECC症状失效,且将新症状写入到新位置。使用128B或更大的大块大小,此会能够为每个块2-3次重写提供足够的存储能力。在额外复杂性方面,这是对先前解决方案的改进。选择3提供智能ECC症状更新。在第一次写入到ECC字中期间,将写入所述症状。第二次写入到ECC字中将使所述症状失效,且数据将失去其ECC保护。在随后附加到ECC字之后,一旦其被完全写入,就会造成新的(且最终的)症状且数据从此将永远被保护。此显著减少了DPM暴露,因为仅有的未保护区域将是那些欠动态区域,所述区域并未全部由ECC字填充。除了增加冗余行修补能力之外,选择4与选择2相同。在选择2中N次重写之后,第N+1次重写触发行修补,且重写计数复位。
在另一替代性方案中,提供在读取后数据擦洗技术。使用此技术,如果读取期间的前向应力是扰乱的主要原因,那么可检查ECC校正逻辑的状态且在位变坏时马上将所述坏位识别出来。接着,可使用现有CR方案来修补它。除非两个位同时变坏,否则这种方案是在读取扰乱之后进行的非常有效的方式。

Claims (31)

1.一种存储器装置,其包含:
一存储器阵列,其存储一文件系统结构;和
一控制器,其与所述存储器阵列通信,其中所述控制器可操作以响应于一将数据写入到所述文件系统结构的一地址之前的一地址的试图而产生一错误;
其中所述控制器允许所述存储器装置与使用多次写入文件系统的主机装置逆向兼容。
2.根据权利要求1所述的存储器装置,其中所述文件系统结构包含一文件分配表。
3.根据权利要求1所述的存储器装置,其中响应于一格式化所述存储器装置的命令而作出所述将数据写入到所述文件系统结构的所述地址之前的所述地址的试图。
4.根据权利要求1所述的存储器装置,其中所述存储器阵列包含一一次可编程存储器阵列。
5.根据权利要求1所述的存储器装置,其中所述存储器阵列包含一数次可编程存储器阵列。
6.根据权利要求1所述的存储器装置,其中所述存储器阵列包含一三维存储器阵列。
7.一种存储器装置,其包含:
一存储器阵列;和
一控制器,其与所述存储器阵列通信,其中所述控制器可操作以:
(a)从一与所述存储器装置通信的主机装置处接收一请求以将数据写入到所述存储器阵列中的一第一地址;
(b)将所述数据写入到一第二地址而并非所述第一地址;和
(c)更新所述存储器阵列中的一文件系统结构以指示所述第二地址已不再是空闲的;
其中所述控制器允许所述存储器装置与使用多次写入文件系统的主机装置逆向兼容。
8.根据权利要求7所述的存储器装置,其中所述文件系统结构包含一文件分配表。
9.根据权利要求7所述的存储器装置,其中将所述存储器阵列以逻辑形式组织成若干具有一第一大小的区域,且其中所述数据包含一小于所述第一大小的第二大小,其中由所述第一大小与所述第二大小之间的差异界定一边带区域,且其中所述控制器可进一步操作以将所述第二地址写入在所述第一地址的一边带区域中。
10.根据权利要求9所述的存储器装置,其中所述控制器可进一步操作以仅读取所述边带区域。
11.根据权利要求9所述的存储器装置,其中所述控制器包含一高速缓冲存储器,所述高速缓冲存储器可操作以存储来自一边带的数据。
12.根据权利要求7所述的存储器装置,其中将所述存储器阵列以逻辑形式组织成若干具有一第一大小的区域,且其中所述数据包含一小于所述第一大小的第二大小,其中由所述第一大小与所述第二大小之间的差异来界定一边带区域,且其中所述控制器可进一步操作以将一地址写入到所述第一地址的一边带区域中的一重映射表。
13.根据权利要求12所述的存储器装置,其中所述控制器包含一高速缓冲存储器,所述高速缓冲存储器可操作以存储来自所述重映射表的数据。
14.根据权利要求7所述的存储器装置,其中所述控制器可进一步操作以将所述第二地址写入在一物理到逻辑地址表中。
15.根据权利要求7所述的存储器装置,其中所述控制器可进一步操作以将所述第二地址写入在一指针表中。
16.根据权利要求7所述的存储器装置,其中所述存储器阵列包含一预分配的区域,所述预分配的区域经指定用于重映射操作,且其中所述控制器可操作以在所述文件系统结构指示在所述存储器阵列中不再有空闲地址时写入到所述预分配的区域。
17.根据权利要求16所述的存储器装置,其中所述预分配的区域可由所述主机装置访问。
18.根据权利要求7所述的存储器装置,其中所述控制器可操作以存储一包含两个状态的旗标,一第一状态指示正在使用一指针跟踪方案,且一第二状态指示正在使用一表方案。
19.根据权利要求7所述的存储器装置,其中所述存储器阵列包含一一次可编程存储器阵列。
20.根据权利要求7所述的存储器装置,其中所述存储器阵列包含一数次可编程存储器阵列。
21.根据权利要求7所述的存储器装置,其中所述存储器阵列包含一三维存储器阵列。
22.根据权利要求7所述的存储器装置,其中所述存储器装置包含一电连接器,所述电连接器经配置以与所述主机装置上的一相应电连接器紧密配合,且其中所述主机装置包含一多次写入文件系统。
23.一种存储器装置,其包含:
一存储器阵列,其中将所述存储器阵列组织成若干可被部分写入的逻辑单元,藉此在逻辑单元填满之前可对每个逻辑单元执行多个写入操作;和
一控制器,其与所述存储器阵列通信,其中所述控制器可操作以在对一逻辑单元进行一最后写入操作时针对所述逻辑单元写入ECC数据;
其中所述控制器允许所述存储器装置与使用多次写入文件系统的主机装置逆向兼容。
24.根据权利要求23所述的存储器装置,其中所述控制器可操作以仅在对一逻辑单元进行一最后写入操作时针对所述逻辑单元写入ECC数据。
25.根据权利要求23所述的存储器装置,其中所述控制器可操作以在对一逻辑单元进行一第一写入操作时和在对所述逻辑单元进行一最后写入操作时都针对所述逻辑单元写入ECC数据。
26.根据权利要求23所述的存储器装置,其中所述控制器可操作以在将一最后两字节写入到一逻辑单元时针对所述逻辑单元写入ECC数据。
27.根据权利要求23所述的存储器装置,其中所述控制器可操作以在将一最后六字节写入到一逻辑单元时针对所述逻辑单元写入ECC数据。
28.根据权利要求23所述的存储器装置,其中所述控制器可进一步操作以响应于一ECC字是无效的而执行一重映射操作。
29.根据权利要求23所述的存储器装置,其中所述存储器阵列包含一一次可编程存储器阵列。
30.根据权利要求23所述的存储器装置,其中所述存储器阵列包含一数次可编程存储器阵列。
31.根据权利要求23所述的存储器装置,其中所述存储器阵列包含一三维存储器阵列。
CN2011100641632A 2004-08-24 2005-07-22 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置 Expired - Fee Related CN102163133B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US60435304P 2004-08-24 2004-08-24
US60/604,353 2004-08-24
US10/956,463 US7398348B2 (en) 2004-08-24 2004-09-30 Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US10/956,463 2004-09-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2005800278711A Division CN101401076B (zh) 2004-08-24 2005-07-22 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置

Publications (2)

Publication Number Publication Date
CN102163133A true CN102163133A (zh) 2011-08-24
CN102163133B CN102163133B (zh) 2013-07-10

Family

ID=35944823

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2011100641632A Expired - Fee Related CN102163133B (zh) 2004-08-24 2005-07-22 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
CN2005800278711A Active CN101401076B (zh) 2004-08-24 2005-07-22 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2005800278711A Active CN101401076B (zh) 2004-08-24 2005-07-22 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置

Country Status (10)

Country Link
US (4) US7398348B2 (zh)
EP (3) EP2088509A3 (zh)
JP (1) JP4852548B2 (zh)
KR (1) KR101139224B1 (zh)
CN (2) CN102163133B (zh)
AT (1) ATE505762T1 (zh)
AU (1) AU2005277792A1 (zh)
CA (1) CA2572788A1 (zh)
DE (1) DE602005027471D1 (zh)
WO (1) WO2006023196A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI704489B (zh) * 2018-02-08 2020-09-11 美商美光科技公司 儲存備份記憶體封裝中之狀態管理
CN114341812A (zh) * 2019-08-29 2022-04-12 美光科技公司 具有用户定义的操作的半导体装置及相关联的方法及系统
US11687403B2 (en) 2019-08-29 2023-06-27 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US11755412B2 (en) 2019-08-29 2023-09-12 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7800932B2 (en) * 2005-09-28 2010-09-21 Sandisk 3D Llc Memory cell comprising switchable semiconductor memory element with trimmable resistance
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
KR101404083B1 (ko) * 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
US20060139995A1 (en) * 2004-12-28 2006-06-29 Ali Keshavarzi One time programmable memory
US8452938B1 (en) 2004-12-30 2013-05-28 Azul Systems, Inc. Garbage collection with memory quick release
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7904518B2 (en) 2005-02-15 2011-03-08 Gytheion Networks Llc Apparatus and method for analyzing and filtering email and for providing web related services
US8402109B2 (en) 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
CA2601384A1 (en) 2005-03-16 2006-10-26 Cluster Resources, Inc. Automatic workload transfer to an on-demand center
US9225663B2 (en) 2005-03-16 2015-12-29 Adaptive Computing Enterprises, Inc. System and method providing a virtual private cluster
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
KR20080025761A (ko) * 2005-07-29 2008-03-21 더 제너럴 하스피탈 코포레이션 피부 손상을 감소시키는 방법 및 조성물
US7689807B2 (en) * 2006-02-09 2010-03-30 Sigmatel, Inc. Mass storage device, mass storage controller and methods for use therewith
JP4911576B2 (ja) * 2006-03-24 2012-04-04 株式会社メガチップス 情報処理装置および追記型メモリ利用方法
US7851761B2 (en) * 2006-03-27 2010-12-14 Liviu Popa-Simil Multi-band terahertz receiver and imaging device
US8429375B1 (en) * 2006-06-16 2013-04-23 Synopsys, Inc. Memory management unit (MMU) to make only one time programmable (OTP) memory appear multiple times programmable (MTP)
US7783956B2 (en) * 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
US7450414B2 (en) * 2006-07-31 2008-11-11 Sandisk 3D Llc Method for using a mixed-use memory array
US20080023790A1 (en) * 2006-07-31 2008-01-31 Scheuerlein Roy E Mixed-use memory array
WO2008016419A2 (en) * 2006-07-31 2008-02-07 Sandisk 3D Llc Mixed-use memory array and method for use therewith
US7486537B2 (en) * 2006-07-31 2009-02-03 Sandisk 3D Llc Method for using a mixed-use memory array with different data states
JP5072292B2 (ja) * 2006-09-05 2012-11-14 キヤノン株式会社 撮像装置及びその制御方法
US7681008B2 (en) * 2006-09-29 2010-03-16 Sandisk Corporation Systems for managing file allocation table information
US7630225B2 (en) 2006-09-29 2009-12-08 Sandisk Corporation Apparatus combining once-writeable and rewriteable information storage to support data processing
US7752412B2 (en) * 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information
US7730270B2 (en) 2006-09-29 2010-06-01 Sandisk Corporation Method combining once-writeable and rewriteable information storage to support data processing
TWI376599B (en) * 2006-09-29 2012-11-11 Sandisk Corp Method and nonvolatile memory system of managing file allocation table information
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8935302B2 (en) * 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
WO2008070814A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
US8095723B2 (en) * 2007-02-16 2012-01-10 Electronics And Telecommunications Research Institute Log-based flash translation layer and operating method thereof
US7917479B2 (en) 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
US7613857B2 (en) * 2007-03-30 2009-11-03 Sandisk Corporation Memory device with a built-in memory array and a connector for a removable memory device
US7633799B2 (en) * 2007-03-30 2009-12-15 Sandisk Corporation Method combining lower-endurance/performance and higher-endurance/performance information storage to support data processing
US20080244203A1 (en) * 2007-03-30 2008-10-02 Gorobets Sergey A Apparatus combining lower-endurance/performance and higher-endurance/performance information storage to support data processing
US7603499B2 (en) * 2007-03-30 2009-10-13 Sandisk Corporation Method for using a memory device with a built-in memory array and a connector for a removable memory device
US8010502B2 (en) * 2007-04-13 2011-08-30 Harris Corporation Methods and systems for data recovery
US7890711B2 (en) * 2007-04-18 2011-02-15 Oracle America, Inc. Methods, apparatus, and program products for improved finalization
US8533847B2 (en) * 2007-05-24 2013-09-10 Sandisk Il Ltd. Apparatus and method for screening new data without impacting download speed
US9824006B2 (en) 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US11237956B2 (en) * 2007-08-13 2022-02-01 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US20090144513A1 (en) * 2007-12-03 2009-06-04 Pitney Bowes Inc. Database update method
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
JP4479806B2 (ja) * 2008-02-19 2010-06-09 ソニー株式会社 記録制御装置、記録システム、記録メディア制御方法及びプログラム
US8266366B2 (en) 2008-04-11 2012-09-11 SanDisk Technologies, Inc. Memory device operable in read-only and write-once, read-many (WORM) modes of operation
US8386664B2 (en) * 2008-05-22 2013-02-26 International Business Machines Corporation Reducing runtime coherency checking with global data flow analysis
US8281295B2 (en) * 2008-05-23 2012-10-02 International Business Machines Corporation Computer analysis and runtime coherency checking
US8285670B2 (en) 2008-07-22 2012-10-09 International Business Machines Corporation Dynamically maintaining coherency within live ranges of direct buffers
US8156404B1 (en) * 2008-08-29 2012-04-10 Nvidia Corporation L2 ECC implementation
US9104686B2 (en) 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
US8205060B2 (en) * 2008-12-16 2012-06-19 Sandisk Il Ltd. Discardable files
US20100153474A1 (en) * 2008-12-16 2010-06-17 Sandisk Il Ltd. Discardable files
US9015209B2 (en) * 2008-12-16 2015-04-21 Sandisk Il Ltd. Download management of discardable files
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
US9020993B2 (en) 2008-12-16 2015-04-28 Sandisk Il Ltd. Download management of discardable files
US8375192B2 (en) * 2008-12-16 2013-02-12 Sandisk Il Ltd. Discardable files
US8849856B2 (en) * 2008-12-16 2014-09-30 Sandisk Il Ltd. Discardable files
US20100235329A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US20100333155A1 (en) * 2009-06-30 2010-12-30 Philip David Royall Selectively using local non-volatile storage in conjunction with transmission of content
CN101610477B (zh) * 2009-07-13 2012-09-05 中兴通讯股份有限公司 多媒体消息业务的处理系统和方法
CN102696010B (zh) * 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8255655B2 (en) 2009-10-02 2012-08-28 Sandisk Technologies Inc. Authentication and securing of write-once, read-many (WORM) memory devices
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
TWI407327B (zh) * 2009-11-24 2013-09-01 Phison Electronics Corp 資料處理方法、系統及儲存裝置控制器
JP5798737B2 (ja) * 2009-12-28 2015-10-21 パナソニックIpマネジメント株式会社 半導体記録装置、半導体記録装置の制御方法及び半導体記録システム
JP2011141638A (ja) * 2010-01-06 2011-07-21 Sony Corp 情報処理装置および方法、並びにプログラム
KR101438072B1 (ko) 2010-04-15 2014-09-03 라모트 앳 텔-아비브 유니버시티 리미티드 소거 없는 플래시 메모리의 다중 프로그래밍
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8549229B2 (en) 2010-08-19 2013-10-01 Sandisk Il Ltd. Systems and methods for managing an upload of files in a shared cache storage system
US8463802B2 (en) 2010-08-19 2013-06-11 Sandisk Il Ltd. Card-based management of discardable files
TWI443666B (zh) * 2010-08-31 2014-07-01 Silicon Motion Inc 單次可編程記憶體之資料編程電路及方法
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
TWI447736B (zh) 2010-09-13 2014-08-01 Silicon Motion Inc 單次可編程記憶體之資料編程電路及方法
TWI420305B (zh) * 2010-10-08 2013-12-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
EP2652623B1 (en) 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8788849B2 (en) 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
CN102902672B (zh) 2011-07-25 2014-04-16 腾讯科技(深圳)有限公司 清理文件系统的方法和装置
WO2013030835A1 (en) 2011-08-29 2013-03-07 David Regev Dental implant system and methods for accessing intra cavity areas therethrough
US9292668B1 (en) 2011-09-01 2016-03-22 Google Inc. Systems and methods for device authentication
US8984032B2 (en) 2011-12-15 2015-03-17 Sandisk Technologies Inc. Method and system for providing storage device file location information
US9152641B2 (en) 2011-12-15 2015-10-06 Sandisk Technologies Inc. Method and system for providing storage device file location information
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US8971144B2 (en) 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US8914570B2 (en) 2012-05-04 2014-12-16 International Business Machines Corporation Selective write-once-memory encoding in a flash based disk cache memory
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9183082B2 (en) 2013-01-29 2015-11-10 Qualcomm Incorporated Error detection and correction of one-time programmable elements
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
TWI494944B (zh) * 2013-10-25 2015-08-01 Phison Electronics Corp 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9858990B2 (en) 2014-12-18 2018-01-02 Apple Inc. Hardware-based performance equalization for storage devices
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9785354B2 (en) * 2015-06-29 2017-10-10 International Business Machines Corporation Selective write control
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector
US20170038994A1 (en) * 2015-08-06 2017-02-09 Kabushiki Kaisha Toshiba Storage device and data reading method
US9760301B2 (en) * 2015-08-13 2017-09-12 Texas Instruments Incorporated WOM code emulation of EEPROM-type devices
WO2017058184A1 (en) * 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development Lp Remapping operations
JP6426666B2 (ja) * 2016-07-27 2018-11-21 ファナック株式会社 プログラマブルコントローラ
TWI705329B (zh) * 2018-06-25 2020-09-21 慧榮科技股份有限公司 實體儲存對照表產生裝置及方法以及電腦程式產品
TWI661302B (zh) * 2018-06-25 2019-06-01 慧榮科技股份有限公司 實體儲存對照表產生裝置及方法以及電腦程式產品
KR102493864B1 (ko) * 2021-11-16 2023-01-31 삼성전자주식회사 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법
US20230409475A1 (en) * 2022-06-16 2023-12-21 Western Digital Technologies, Inc. Flash Translation Layer Mapping For Large Capacity Data Storage Devices

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2346801A (en) 1942-06-11 1944-04-18 Blaw Knox Co Fluid dosing device
EP0108053A1 (en) 1982-04-30 1984-05-16 Massachusetts Institute Of Technology Method and apparatus for reusing non-erasable memory media
US4608300A (en) * 1983-06-21 1986-08-26 Ciba-Geigy Corporation Fibre composite materials impregnated with a curable epoxide resin matrix
US4740890A (en) 1983-12-22 1988-04-26 Software Concepts, Inc. Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media
US5247494A (en) * 1984-06-08 1993-09-21 Matsushita Electric Industrial Co. Ltd. Method for recording and reproducing information on and from an optical disk having a read-only recorded zone and a writable and readable zone using a spot laser light
US4646266A (en) 1984-09-28 1987-02-24 Energy Conversion Devices, Inc. Programmable semiconductor structures and methods for using the same
US4682318A (en) * 1985-10-16 1987-07-21 Sony Corporation Method and apparatus for updating optical memory disc
US4953122A (en) * 1986-10-31 1990-08-28 Laserdrive Ltd. Pseudo-erasable and rewritable write-once optical disk memory system
US5218685A (en) * 1987-01-02 1993-06-08 General Electric Company System for write once read many optical storage devices to appear rewritable
US5119291A (en) 1987-03-26 1992-06-02 International Business Machines Corporation Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector
US5040110A (en) * 1987-10-30 1991-08-13 Matsushita Electric Industrial Co., Ltd. Write once read many optical disc storage system having directory for storing virtual address and corresponding up-to-date sector address
US5029125A (en) 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
DE69034227T2 (de) * 1989-04-13 2007-05-03 Sandisk Corp., Sunnyvale EEprom-System mit Blocklöschung
US5266230A (en) * 1989-04-26 1993-11-30 Tonen Corporation Electroviscous fluid containing antioxidant and/or corrosion inhibitor
US5307497A (en) 1990-06-25 1994-04-26 International Business Machines Corp. Disk operating system loadable from read only memory using installable file system interface
CA2045799C (en) * 1990-07-11 1999-03-23 Kenneth L. Thompson File system with read/write and read only storage
US5537652A (en) 1990-08-20 1996-07-16 International Business Machines Corporation Data file directory system and method for writing data file directory information
US5265230A (en) * 1990-08-29 1993-11-23 Hewlett-Packard Company Method and apparatus for determining sector status in a data storage device by writing a status of read-only, writable, or obliterated in an error recovery area of each sector
JP3315711B2 (ja) * 1990-09-17 2002-08-19 ヒューレット・パッカード・カンパニー 磁気光学ディスクデータ記憶装置の書き込み管理システム及び方法
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5321824A (en) 1991-04-22 1994-06-14 International Business Machines Corporation Accessing last recorded data in a continuation chain
US5448728A (en) * 1991-08-08 1995-09-05 Sharp Kabushiki Kaisha Storage medium control system for controlling a write-once read-many storage medium
US5261072A (en) * 1991-10-31 1993-11-09 Tandy Corporation Compact disk data transfer system using cache memory
TW261687B (zh) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JP3445304B2 (ja) 1993-03-29 2003-09-08 株式会社東芝 ファイル管理装置
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5437012A (en) * 1993-04-19 1995-07-25 Canon Information Systems, Inc. System for updating directory information and data on write once media such as an optical memory card
US5463772A (en) 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
JPH0745085A (ja) 1993-07-30 1995-02-14 Tec Corp データ書込装置及びデータ読取装置
US5559778A (en) 1993-12-28 1996-09-24 Sony Corporation Apparatus and method for completing an incomplete recording on an optical disc
CA2145379C (en) 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
US5590320A (en) * 1994-09-14 1996-12-31 Smart Storage, Inc. Computer file directory system
AU3723395A (en) * 1994-09-14 1996-03-29 Micropolis Corporation Method of pre-caching data utilizing thread lists and multimedia editing system using such pre-caching
US5761700A (en) 1994-12-27 1998-06-02 Motorola Inc. ROM mapping and inversion apparatus and method
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
CZ296443B6 (cs) * 1995-11-10 2006-03-15 Sony Corporation Zpusob zpracování informací a zarízení k jeho provádení
US5752005A (en) 1996-01-22 1998-05-12 Microtest, Inc. Foreign file system establishing method which uses a native file system virtual device driver
US5832263A (en) * 1996-03-15 1998-11-03 Digidox, Inc. System and method for in-place modification of information recorded in read-only storage using modifiable non-volatile storage associated with an agent
JPH09330273A (ja) * 1996-06-10 1997-12-22 Mitsubishi Electric Corp メモリカードおよびメモリカードにおける誤り訂正方法
US5832525A (en) 1996-06-24 1998-11-03 Sun Microsystems, Inc. Disk fragmentation reduction using file allocation tables
KR100205539B1 (ko) 1996-07-19 1999-07-01 윤종용 하드디스크의 중첩 분할 방법
EP0931292A1 (en) 1996-08-14 1999-07-28 Advanced Micro Devices, Inc. A microcontroller including an internal memory unit and circuitry to generate an associated enable signal
US5907855A (en) 1996-10-15 1999-05-25 Micron Technology, Inc. Apparatus and method for reducing programming cycles for multistate memory system
US5835396A (en) 1996-10-17 1998-11-10 Zhang; Guobiao Three-dimensional read-only memory
JP3220041B2 (ja) 1997-04-08 2001-10-22 北海道日本電気ソフトウェア株式会社 Cd−rom読み出しシステムおよびcd−rom読み出し方法
NO972803D0 (no) * 1997-06-17 1997-06-17 Opticom As Elektrisk adresserbar logisk innretning, fremgangsmåte til elektrisk adressering av samme og anvendelse av innretning og fremgangsmåte
JP3175648B2 (ja) 1997-07-07 2001-06-11 ソニー株式会社 記憶装置及びデータの書込み方法
JPH1145085A (ja) 1997-07-24 1999-02-16 Takashi Kasamatsu ピアノ
NO973993L (no) 1997-09-01 1999-03-02 Opticom As Leseminne og leseminneinnretninger
JPH11203191A (ja) 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
JPH11149788A (ja) * 1997-11-17 1999-06-02 Oki Electric Ind Co Ltd 半導体記憶装置及びその制御方法
US6073280A (en) * 1998-02-23 2000-06-13 Farnum; Randal J. Rescue and invalid support belt
US6108236A (en) * 1998-07-17 2000-08-22 Advanced Technology Materials, Inc. Smart card comprising integrated circuitry including EPROM and error check and correction system
US6034882A (en) 1998-11-16 2000-03-07 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
MY122279A (en) * 1999-03-03 2006-04-29 Sony Corp Nonvolatile memory and nonvolatile memory reproducing apparatus
US6351838B1 (en) 1999-03-12 2002-02-26 Aurora Communications, Inc Multidimensional parity protection system
US6377526B1 (en) 1999-04-01 2002-04-23 Plasmon Ide, Inc. Erasable WORM optical disk and method of writing thereto multiple times
US6370642B1 (en) * 1999-05-21 2002-04-09 Advanced Micro Devices, Inc. Programming the size of a broad-specific boot ROM
US6539396B1 (en) 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6490703B1 (en) 1999-09-30 2002-12-03 Intel Corporation Bus power savings using selective inversion in an ECC system
JP3249959B2 (ja) 1999-10-12 2002-01-28 株式会社ソニー・コンピュータエンタテインメント 可搬型記憶装置及びメモリカード
DE60129682T2 (de) * 2000-03-29 2008-04-30 Vadium Technology Inc., Seattle Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen
US6775423B2 (en) 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
US6598135B1 (en) * 2000-05-03 2003-07-22 Plasmon Ide System and method for defining rewriteable data storage media as write once data storage media
JP2002050157A (ja) * 2000-08-03 2002-02-15 Hitachi Ltd 情報記録媒体及び情報記録再生装置
US6515888B2 (en) 2000-08-14 2003-02-04 Matrix Semiconductor, Inc. Low cost three-dimensional memory array
US6658438B1 (en) * 2000-08-14 2003-12-02 Matrix Semiconductor, Inc. Method for deleting stored digital data from write-once memory device
US6424581B1 (en) * 2000-08-14 2002-07-23 Matrix Semiconductor, Inc. Write-once memory array controller, system, and method
US6545891B1 (en) 2000-08-14 2003-04-08 Matrix Semiconductor, Inc. Modular memory device
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US20030120858A1 (en) 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US6584541B2 (en) * 2000-09-15 2003-06-24 Matrix Semiconductor, Inc. Method for storing digital information in write-once memory array
JP3898430B2 (ja) * 2000-09-18 2007-03-28 株式会社日立製作所 光記録装置およびそれに用いる光ディスク
US6778974B2 (en) 2001-02-02 2004-08-17 Matrix Semiconductor, Inc. Memory device and method for reading data stored in a portion of a memory device unreadable by a file system of a host device
US20020108054A1 (en) 2001-02-02 2002-08-08 Moore Christopher S. Solid-state memory device storing program code and methods for use therewith
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
AU2002366270A1 (en) * 2001-12-10 2003-09-09 Incipient, Inc. Fast path for performing data operations
US6563745B1 (en) * 2001-12-14 2003-05-13 Matrix Semiconductor, Inc. Memory device and method for dynamic bit inversion
US6904492B2 (en) * 2001-12-19 2005-06-07 Hewlett-Packard Development Company, L.P. Write-once memory device including non-volatile memory for temporary storage
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6950918B1 (en) * 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6888785B2 (en) * 2002-01-25 2005-05-03 Sun Microsystems, Inc. Fault tolerance mechanism for a storage device that stores data in stacks within an integral storage medium
AU2003201837A1 (en) * 2002-04-01 2003-10-23 Sony Corporation Storage medium and storage medium recording method
DE60322143D1 (de) 2002-04-30 2008-08-28 Lexar Media Inc Dateienverwaltung für einmalig programmierbare nichtflüchtige Speicheranordnungen
US20040088474A1 (en) * 2002-10-30 2004-05-06 Lin Jin Shin NAND type flash memory disk device and method for detecting the logical address
US7051251B2 (en) 2002-12-20 2006-05-23 Matrix Semiconductor, Inc. Method for storing data in a write-once memory array using a write-many file system
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7240277B2 (en) * 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
US7106636B2 (en) * 2004-06-22 2006-09-12 Intel Corporation Partitionable memory device, system, and method
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US7752412B2 (en) * 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI704489B (zh) * 2018-02-08 2020-09-11 美商美光科技公司 儲存備份記憶體封裝中之狀態管理
US10838637B2 (en) 2018-02-08 2020-11-17 Micron Technology, Inc. Status management in storage backed memory package
US11934671B2 (en) 2018-02-08 2024-03-19 Micron Technology, Inc. Status management in storage backed memory package
CN114341812A (zh) * 2019-08-29 2022-04-12 美光科技公司 具有用户定义的操作的半导体装置及相关联的方法及系统
US11687406B2 (en) 2019-08-29 2023-06-27 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11687403B2 (en) 2019-08-29 2023-06-27 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US11755412B2 (en) 2019-08-29 2023-09-12 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems

Also Published As

Publication number Publication date
US7689805B2 (en) 2010-03-30
US7398348B2 (en) 2008-07-08
WO2006023196A2 (en) 2006-03-02
KR101139224B1 (ko) 2012-04-20
JP2008511072A (ja) 2008-04-10
CN101401076A (zh) 2009-04-01
US20060047920A1 (en) 2006-03-02
ATE505762T1 (de) 2011-04-15
US20070208907A1 (en) 2007-09-06
AU2005277792A1 (en) 2006-03-02
KR20070046844A (ko) 2007-05-03
EP2088510A3 (en) 2009-08-26
EP1782209B1 (en) 2011-04-13
US20070208908A1 (en) 2007-09-06
DE602005027471D1 (de) 2011-05-26
EP1782209A2 (en) 2007-05-09
US20110047416A1 (en) 2011-02-24
CN102163133B (zh) 2013-07-10
EP1782209A4 (en) 2009-04-22
CA2572788A1 (en) 2006-03-02
CN101401076B (zh) 2011-05-18
US7861058B2 (en) 2010-12-28
JP4852548B2 (ja) 2012-01-11
WO2006023196A3 (en) 2008-09-25
EP2088510A2 (en) 2009-08-12
EP2088509A3 (en) 2009-08-26
EP2088509A2 (en) 2009-08-12
US8209476B2 (en) 2012-06-26

Similar Documents

Publication Publication Date Title
CN101401076B (zh) 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
JP4079506B2 (ja) 不揮発性半導体メモリシステムの制御方法
JP3233079B2 (ja) データ処理システム及びデータ処理方法
JP2008511072A5 (zh)
US20080282023A1 (en) Restoring storage devices based on flash memories and related circuit, system, and method
WO2003056433A1 (fr) Dispositif a memoire et appareil d'enregistrement/reproduction utilisant ledit dispositif
US9235534B2 (en) Data protecting method, memory controller and memory storage apparatus
US8769243B2 (en) Apparatus with smart card chip for storing communication file in non-volatile memory
JP3119214B2 (ja) 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
CN101918928A (zh) 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US8966161B2 (en) Memory storage device and restoring method thereof
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
JP2007293917A (ja) メモリシステムの制御方法
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP3788205B2 (ja) 記憶装置、データ処理システム、データの書き込み及び読み出し方法並びにデータ処理装置
JP4580724B2 (ja) 不揮発性メモリの制御方法
JP2002343089A (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Patentee before: Sandy Technology Corp.

TR01 Transfer of patent right

Effective date of registration: 20160728

Address after: Texas, USA

Patentee after: Sandy Technology Corp.

Address before: California, USA

Patentee before: Sandisk 3D LLC

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130710

Termination date: 20210722