CN101685381A - 固态大容量存储装置的数据串流 - Google Patents
固态大容量存储装置的数据串流 Download PDFInfo
- Publication number
- CN101685381A CN101685381A CN200810211463A CN200810211463A CN101685381A CN 101685381 A CN101685381 A CN 101685381A CN 200810211463 A CN200810211463 A CN 200810211463A CN 200810211463 A CN200810211463 A CN 200810211463A CN 101685381 A CN101685381 A CN 101685381A
- Authority
- CN
- China
- Prior art keywords
- data
- lists
- links
- metadata
- subclauses
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供多种方法及设备,其通过生成包含针对用户数据和元数据两者的条目的链接列表而有助于大容量存储装置中的数据串流。包含混合数据类型的这些链接列表有助于接收和输出用户数据,以及分别插入或忽略对应于所述用户数据的元数据而不会中断所述用户数据的流动。
Description
技术领域
[0001]本发明大体上涉及半导体存储器,且明确地说,在一个或一个以上实施例中,本发明涉及提供对固态大容量存储装置的数据串流的控制的方法及设备。
背景技术
[0002]电子装置通常均具有其可用的某种类型的大容量存储装置。常见的实例是硬盘驱动器(HDD)。HDD能够在相对较低的成本下提供大量存储空间,当前的消费者HDD可提供超过1太字节的容量。
[0003]HDD通常将数据存储于旋转的磁性媒体或底板上。数据通常作为磁通量逆转模式而存储在底板上。为了向典型的HDD写入数据,底板高速旋转,同时漂浮在底板上方的写入磁头生成一连串磁脉冲以排列底板上的磁性粒子来表示数据。为了从典型的HDD读取数据,随着磁阻读取磁头漂浮在高速旋转的底板上方,在所述磁阻读取磁头中诱发电阻变化。在实践中,所得的数据信号是模拟信号,其峰值和谷值是由数据模式的磁通量逆转造成的。称为部分响应最大似然(PRML)的数字信号处理技术接着用于对模拟数据信号进行取样,以确定负责生成数据信号的可能数据模式。
[0004]HDD由于其机械性质而具有某些缺陷。HDD容易受到由于冲击、振动或强磁场引起的破坏或过多读取/写入错误。此外,在便携式电子装置中,HDD耗电相对较大。
[0005]大容量存储装置的另一实例是固态驱动器(SSD)。代替将数据存储于旋转媒体上,SSD利用半导体存储器装置来存储其数据,但通常包括接口和形状因素,从而使得在其主机系统看来似乎它们是典型的HDD。SDD的存储器装置通常是非易失性快闪存储器装置。
[0006]快闪存储器装置现已发展成为一种流行的非易失性存储器来源,广泛应用于各种电子应用。快闪存储器装置通常使用单晶体管存储器单元,其允许高存储器密度、高可靠性和低功率消耗。通过编程电荷存储节点(例如,浮动栅极或阻止层)或其它物理现象(例如,相变或极化)来改变单元的阈值电压,从而确定每一单元的数据值。快闪存储器和其它非易失性存储器通常用于个人计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、游戏、器具、车辆、无线装置、移动电话和可移除式存储器模块,非易失性存储器的使用范围仍在继续扩展。
[0007]与HDD不同的是,SSD的操作由于其固态性质而通常不会受到振动、冲击或磁场的影响。同样,由于没有移动零件,SSD具有比HDD低的功率要求。然而,与具有相同形状因素的HDD相比,SSD当前具有低得多的存储容量,且对于同等的存储容量,SDD具有显著较高的成本。
[0008]在电子系统的数据存储装置与数据产生器/消费者装置之间的数据的有效移动中,已经开发出了直接存储器存取(DMA),以准许对存储装置的直接存取,同时允许电子系统的主要处理器执行其它任务。在此类系统中,数据往往以具有经定义大小的数据包的形式传送至存储装置或从存储装置传送。大容量存储装置接收到这些包时,经常使用链接列表协议将其存储于易失性存储装置中。这样便于有效的数据传送,而无需等待将数据写入大容量存储装置的非易失性存储区域。
[0009]快闪存储器装置通常利用随同用户数据一起存储的某些非用户数据(经常被称为元数据)。举例来说,由大容量存储装置生成的状态指示符、错误校正码数据、映射信息及类似数据可能随同用户数据一起存储。一起存储这两种数据类型导致将所定义单元的用户数据串流到存储器装置,然后中断用户数据的串流,以用元数据填充后续的写入锁存器。一旦将元数据写入存储器装置,便可串流另一所定义单元的用户数据。当大容量存储装置对至其非易失性存储区域的不同数据类型之间的业务进行管理时,这种用户数据的定期中断会导致丧失效率。
[0010]由于以上陈述的原因以及所属领域的技术人员在阅读和理解本说明书后将明白的其它原因,此项技术中需要替代性的大容量存储装置数据串流控制。
发明内容
无
附图说明
[0011]图1为根据本发明实施例的具有至少一个存储器模块的电子系统的功能方框图。
[0012]图2为展示根据本发明实施例的图1的主控制器的额外细节的方框示意图。
[0013]图3为根据本发明实施例的页的数据结构的一个实施例的表示。
[0014]图4A为根据本发明实施例的链接列表的表示。
[0015]图4B为根据本发明实施例的易失性存储器的一部分的表示,其在概念上展示如何存储和存取各种数据单元。
[0016]图5为根据本发明实施例的将数据写入大容量存储装置的方法的流程图。
[0017]图6为根据本发明实施例的从大容量存储装置读取数据的方法的流程图。
具体实施方式
[0018]在以下对当前实施例的详细描述中,参看形成其一部分的附图,在附图中以说明方式展示其中可实践所述实施例的特定实施例。充分详细地描述这些实施例以足以使得所属领域的技术人员能够实践本发明,且应了解,可利用其它实施例且可在不脱离本发明范围的情况下作出过程、电子或机械改变。因此,不应在限制性意义上看待以下详细描述。
[0019]图1为根据本发明的一个实施例的固态驱动器(SSD)100(即,大容量存储装置)的方框图,所述SSD 100与处理器130通信(例如,耦合到处理器130)且作为电子系统120的一部分。电子系统120可视为SSD 100的主机,因为其通过其处理器130来控制SSD 100的操作。电子系统的一些实例包括个人计算机、膝上型计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、电子游戏及类似产品。处理器130可以是磁盘驱动器控制器或其它外部处理器。通常存在采用标准协议的通信总线132,其用于连接处理器130和SSD 100。通信总线132通常由多种信号组成,其中包括地址、数据、功率及各种I/O信号。通信总线132的类型将取决于系统120中所利用的驱动器接口的类型。一些常规磁盘驱动器接口总线协议的实例是IDE、ATA、SATA、PATA、光纤信道和SCSI。此项技术中存在并已知其它驱动器接口。应注意的是,图1已被简化以重点描述本发明的实施例。在不脱离本发明范围的情况下,可实施额外或不同的组件、连接和I/O信号,如此项技术中所已知的。举例来说,SSD 100可以包括功率调节/分配电路、易失性存储器114的专用控制器等等。然而,此类额外组件对于理解本发明来说并不是必要的。
[0020]如图1所说明,根据本发明的一个实施例的SSD 100包括接口102以允许处理器130(例如,驱动器控制器)经由通信总线132而与SSD 100交互。接口102可以是所属领域的技术人员通常所知的多种标准化连接器中的一种。这些接口102的一些实例是IDE、ATA、SATA和PCMCIA连接器。由于本发明的各种实施例可经配置以模拟多种常规类型的HDD,所以还可在接口102处利用其它磁盘驱动器连接器。
[0021]图1的SSD 100还包括主控制器104、若干存储器模块1061到106N及易失性存储器114。主控制器104执行的一些功能包括管理SSD 100内的操作,以及经由通信总线132而与SSD 100的外部装置(例如处理器130)通信。存储器模块1061到106N充当SSD 100的大容量存储媒体。易失性存储器114充当进出SSD 100的数据传送的缓冲存储装置。
[0022]主控制器104管理SSD 100的各种操作。如所论述,SSD可用作标准HDD的替代物,且存在许多具有标准接口及通信协议的标准化HDD。因此,主控制器104的多种功能之一便是模拟这些标准化HDD协议之一的操作。主控制器104的另一个功能是管理安装在SSD 100中的存储器模块106的操作。主控制器104可经配置以使用多种标准通信协议来与存储器模块106通信。举例来说,在本发明的一个实施例中,主控制器104使用SATA协议来与存储器模块106进行交互。其它实施例可利用其它通信协议来与存储器模块106进行通信。主控制器104也可执行与存储器模块相关的额外功能,例如ECC检验。主控制器104的实施可通过使用硬件或硬件/软件组合来完成。举例来说,主控制器104可全部或部分由状态机来实施。主控制器104进一步经配置以执行本发明的一种或一种以上方法。
[0023]存储器模块106使用内部通信总线112耦合到主控制器104。主控制器104与存储器模块106之间的通信可通过利用共用总线112(如图所示)和/或主控制器104与每一存储器模块106之间的离散连接来实施。
[0024]控制电路110管理非易失性存储器装置116对其相应存储器模块1061到106N的操作。存储器装置116可以是快闪存储器装置。控制电路110还可用于翻译主控制器104用以与存储器模块1061到106N进行通信的通信协议。举例来说,在本发明的一个实施例中,主控制器104可利用SATA协议来与存储器模块1061到106N进行交互。在此实施例中,控制电路110经配置以模拟SATA接口。控制电路110还可管理其它存储器功能,例如用以调节对存储在存储器模块中的数据的存取的安全性特征和损耗平衡。
[0025]如上所述,将在大容量存储装置处生成的数据插入从外部装置接收的用户数据流会导致效率丧失,因为当在大容量存储装置处执行插入时,串流被中断。各种实施例通过生成包含针对所述两个数据类型的条目的链接列表来解决这个问题。所述条目具有定义的顺序。举例来说,可将链接列表定义为三个用户数据条目后面跟随一个元数据条目。这便于串流数据具有定义的数据结构。
[0026]链接列表协议通过定义待传送的数据单元的大小及所述数据单元的开始地址来提供有效的数据串流。以此方式,数据可以在开始地址处开始串流,并继续通过随后的连续地址,直至定义大小的数据单元传送完毕。然后,链接列表中的下一个条目定义下一个数据单元的大小及其开始地址,并可重复进行此过程。
[0027]在先前系统中,当大容量存储装置接收到用户数据时,会将这些数据存储至易失性存储器中。会生成链接列表,其定义待存储在易失性存储器中的数据单元的大小,以及将存储那些数据单元中的每一者的位置的开始地址。当主控制器随后使那些数据单元串流到其非易失性存储器模块时,会轮询所传送的若干单元,然后在特定数目的用户数据单元传送完毕后,中断至存储器模块的数据传送,以开始传送元数据。在元数据传送完毕后,主控制器会重新查询链接列表,以根据链接列表的下一个条目重新启动用户数据的串流。
[0028]本文所述的各种实施例将针对元数据的链接列表条目插入用户数据条目内。在插入元数据条目之前会定义待创建的用户数据条目数目的值。举例来说,SDD 100可以接收特定大小单元的用户数据,例如一个扇区。因此,针对用户数据的每一链接列表条目会定义指示所接收的用户数据单元的大小,以及主控制器104所选择用于在易失性存储器114中存储所接收单元的开始地址。请注意,通常每个扇区为512个字节,但无需根据扇区来定义数据单元,或将512个字节用作扇区大小。继续以此为例,如果要将用户数据写入为每页有4KB的用户数据和80个字节的元数据配置的存储器装置,并将页分为两个部分,每部分有2KB的用户数据,每一用户数据部分后面各有40个字节的元数据部分,则此实例中的值将选择为4,使得将为接收的用户数据创建四个链接列表条目,每一者具有512个字节的定义大小,后面跟随定义40个字节大小的元数据的链接列表条目。
[0029]无需为插入元数据条目而中断用户数据的接收,且不必在创建链接列表条目之前生成对应于所述条目的元数据。因为主控制器104知道相应元数据单元的大小,所以在其易失性存储器114中只保留由元数据单元大小和开始地址定义的存储区域。由于某些元数据可能需要基于接收的用户数据进行计算(例如,错误校正码(ECC)数据的生成),因此其会在能够接收下一个用户数据之前中断数据流以要求计算所述数据。只要通过根据所述为数据保留存储位置并创建其链接列表条目,在生成和存储元数据后,用户数据及其相应的元数据就会无中断地串流至存储器模块106,从而准许主控制器104将其处理资源用于完成其它任务,例如损耗平衡和信号处理。
[0030]尽管前述实例描述了接收用户数据以供写入存储器模块的实施例,但此处所描述的概念也适用于从存储器模块读取用户数据。因此,将创建链接列表,其定义待从存储器模块接收的用户数据单元与元数据单元的大小和位置。然后,数据会从存储器模块串流出,并存储至链接列表中所定义的地址。接下来,可在通信总线132上输出用户数据。
[0031]图2为展示根据本发明实施例的图1的主控制器104的额外细节的方框示意图。在图2中,主控制器104包括处理器218。处理器218提供SSD 100的一般操作。举例来说,处理器218可以执行信号处理以评估从存储器模块106中接收的信号,和执行损耗平衡以维持各种存储器装置的相对均等使用。处理器218可以进一步解码从外部装置接收的命令。对于一个实施例,处理器218如本文所述生成链接列表。
[0032]主控制器104可进一步包括易失性存储器控制器222和非易失性存储器控制器224,以便分别控制和存取易失性存储器114及非易失性存储器模块106。在各种实施例中,处理器218可经配置以生成链接列表,而非易失性存储器控制器224可经配置以如链接列表所定义使数据流入/流出存储器模块106,而无需处理器218进一步交易。
[0033]图3为根据本发明实施例的页330的数据结构的一个实施例的表示。页330具有一个或一个以上用户数据部分332及一个或一个以上元数据部分334。元数据部分334包含一般不是从外部装置接收以存储在存储器装置上以供外部装置随后检索的数据。实例包括页330的逻辑地址、ECC数据及状态指示符等。作为一个实例,每一用户数据部分332包含2,048个字节的用户数据,且每一元数据部分334包含48个字节的元数据。页330可进一步包括额外数据部分(未图示),这些数据部分用于设计者可能选择实现的其它目的。
[0034]因为在写入操作期间向SSD 100提供用户数据的外部装置一般不知晓元数据,所以其通常提供所述用户数据以在一个数据流中编程至逻辑地址,例如对应于页330的地址。如上所述,此用户数据流可包含一个或一个以上经定义大小的单元,例如数据扇区的数个单元。对于各种实施例,响应于接收到将用户数据写入逻辑地址的命令,主控制器104生成链接列表,以定义用于存储用户数据的单元大小和位置。主控制器104在链接列表中进一步生成若干条目,以定义用于存储元数据的单元大小和位置。链接列表的结构将沿用页330所需的数据结构。举例来说,在用户数据部分332a和332b为每一者2,048个字节,元数据部分334a和334b为每一者48个字节,用户数据单元为每一者512个字节,且元数据单元为每一者48个字节的情况下,页330的读取或写入链接列表将依次包含四个(2,048个字节/512个字节)用户数据条目、一个元数据条目、四个用户数据条目和一个元数据条目。每一用户数据条目会定义512个字节的大小,且每一元数据条目会定义48个字节的大小。
[0035]图4A为根据本发明实施例的链接列表440的表示。链接列表440包括一个或一个以上用户数据条目442和一个或一个以上元数据条目444。用户数据条目442和元数据条目444的每一者中的虚线指示每一条目定义所述条目的数据单元的大小及所述数据单元的开始地址两者。
[0036]图4B是易失性存储器114的一部分的表示,其从概念上展示如何存储和存取各种数据单元以传送至存储器模块。易失性存储器114具有一个或一个以上子片段446。尽管各个子片段446不需具有相同大小,但每一子片段446代表易失性存储器114内的邻接地址空间。当SSD 100接收到用户数据单元(例如,图4B中的用户数据0-7)时,如链接列表440所定义,将每一用户数据单元存储在子片段446中。请注意,尽管子片段446代表邻接的地址空间,但无需将各个用户数据单元存储至邻接的子片段446中。举例来说,在用户数据2结束和用户数据3开始的位置之间可以有存储位置。这些存储位置可能未被使用,或者它们可能已被指定用于存储处理器218所使用的其它数据。
[0037]当正在接收用户数据单元时,或在所述数据传送完毕后,可将元数据单元(例如,图4B中的元数据0-1)写入易失性存储器114。如链接列表440中所定义,将元数据单元存储在子片段446中。和用户数据一样,无需将各个元数据单元存储至邻接的子片段446中。然而,将元数据单元的数据存储在各个子片段446的邻接地址空间内。
[0038]在接收对应于链接列表440的条目的数据之前对所述条目进行编程。然而,在完成数据传送之前,无需创建整个链接列表440。举例来说,当主机装置向SSD 100发出写入命令时,写入命令后面可以跟随8个用户数据单元。这样,在接收第一个用户数据单元前为第一个用户数据单元创建链接列表条目时,可以在接收第一个用户数据单元的同时创建后续的链接列表条目。此外,在将元数据写入易失性存储器114以实现后续串流之前,先为元数据单元创建链接列表条目,但无需在生成元数据之前创建。
[0039]各种实施例可以进一步控制何时将元数据单元传送至易失性存储器114,或何时将其传送至存储器模块106。举例来说,在用有效的开始地址对元数据相对应的链接列表条目进行编程前,不应将其传送至易失性存储器114。此外,因为在用户数据传送完毕前不会生成某些元数据,所以应延迟将此类元数据串流至存储器模块106,直至链接列表定义的子片段包含有效的元数据。因此,非易失性存储器控制器224可经配置以在生成元数据的相应链接列表条目444前禁止将其存储至易失性存储器114元数据串流,以及在链接列表所定义的子片段446包含有效的元数据前,禁止从易失性存储器114串流出元数据。
[0040]为了将用户数据单元和元数据单元传送至存储器模块以非易失性存储所述数据,非易失性存储器控制器224接下来根据链接列表440使数据从易失性存储器中串流出。这样,如图4B中描绘,用户数据0被提供给存储器模块,随后是用户数据1-3。在用户数据3传送完毕后,传送元数据0,随后是用户数据4-7,然后是元数据1。用户数据和元数据以这种方式被提供给具有定义数据结构的存储器模块,且无需为插入元数据而中断处理器218的数据串流操作。因为元数据一般不提供给外部装置,所以当响应于SSD 100的读取命令时,从易失性存储器114至通信总线132的数据串流应跳过链接列表440中的元数据条目444。
[0041]图5为根据本发明实施例的将数据写入大容量存储装置的方法的流程图。在550处,解码写入命令。所述解码一般可由大容量存储装置的主控制器的处理器执行。
[0042]写入命令是由外部提供的命令,其至少定义要在何处写入用户数据的逻辑地址。写入命令进一步提供待写入大容量存储装置的用户数据。尽管写入命令可以定义用户数据单元的大小,但这也可由协议定义。因此,给定协议的写入命令可以定义待跟随所述命令的用户数据单元的数目和每一单元的大小,而无需通过命令明确提供。
[0043]在552处,响应于解码写入命令,生成链接列表。链接列表将具有定义数目的用户数据条目、定义数目的元数据条目及所述条目的定义顺序。如上所述,每一链接列表条目将定义待存储的数据的单元大小及待在何处存储数据单元的开始地址。链接列表条目无需定义将什么类型的数据存储在其相应地址处。举例来说,大容量存储装置的主控制器的处理器可经配置以使得其生成链接列表以在按下一个条目的地址存储元数据单元之前,按特定数目条目的地址存储用户数据单元。链接列表应包含足够的条目(即,许多条目和每一条目大小的组合),使得与写入命令相关联的所有用户数据都有定义的存储位置。所述链接列表还将包含至少一个元数据条目。
[0044]在554处,根据针对用户数据的链接列表条目所定义的地址和单元大小来存储响应于写入命令而接收到的用户数据。举例来说,主机可开始将用户数据单元传送至大容量存储装置。当接收到第一个用户数据单元时,在开始地址所定义的位置处开始将第一个用户数据单元的数据写入易失性存储器,然后将第一个用户数据单元的数据写入邻接存储空间的相继地址,直至达到链接列表条目所定义的大小。然后,根据针对用户数据的下一个链接列表条目将接收的下一个用户数据单元存储至易失性存储器,依此类推,直至接收到与写入命令相关联的所有用户数据。
[0045]在556处,根据由针对元数据的链接列表条目所定义的地址和单元大小存储与接收的用户数据相关联的大容量存储装置所生成的元数据。尽管根据图5的描述来接着进行用户数据的接收,但在接收到所有用户数据前,可根据其链接列表条目存储部分或全部元数据。举例来说,写入命令可以与八个用户数据单元相关联。对于此实例,在接收最后四个用户数据单元之前,大容量存储装置可以接收前四个用户数据单元,为那些用户数据单元生成元数据,并将所述元数据存储至易失性存储器。
[0046]在558处,使用户数据和元数据串流至具有链接列表所定义的数据结构的非易失性存储器。举例来说,如果链接列表具有四个每一者为512个字节的用户数据条目、一个48个字节的元数据条目、四个每一者为512个字节的用户数据条目和一个48个字节的元数据条目,则提供给非易失性存储器的数据结构将依次具有2,048个字节的用户数据、48个字节的元数据、2,048个字节的用户数据和48个字节的元数据。
[0047]图6为根据本发明实施例的从大容量存储装置读取数据的方法的流程图。在660处,解码读取命令。所述解码一般可由大容量存储装置的主控制器的处理器执行。
[0048]读取命令是由外部提供的命令,其至少定义待从何处检索用户数据的逻辑地址。尽管读取命令可以定义用户数据单元大小,但包含数据的存储器装置的数据结构也可以对此进行定义。因此,存储器装置的数据结构可以定义待检索的用户数据单元的数目和每一单元的大小,而无需通过所述命令明确提供。
[0049]在662处,响应于解码读取命令,生成链接列表。链接列表将具有定义数目的用户数据条目、定义数目的元数据条目及所述条目的定义顺序。如上所述,无论是从外部装置还是从大容量存储装置的存储器模块接收数据,每一链接列表条目都将定义待存储的数据的单元大小和待在何处存储单元数据的开始地址。链接列表条目无需定义将什么类型的数据存储到其相应地址。举例来说,大容量存储装置的主控制器的处理器可经配置以使得其生成链接列表以在按下一个条目的地址存储元数据单元之前,按特定数目条目的地址存储用户数据单元。链接列表应包含足够的条目(即,许多条目和每一条目大小的组合),使得与读取命令相关联的所有数据都具有定义的存储位置。所述链接列表还将包含至少一个元数据条目。
[0050]在664处,响应于读取命令而从大容量存储装置的存储器装置中读取数据,并根据针对所述数据的链接列表条目所定义的地址和单元大小使其串流至易失性存储器。举例来说,读取命令会导致从存储器装置中读取一页数据。然后,根据链接列表条目将此页数据写入易失性存储器。举例来说,如果链接列表具有四个每一者为512个字节的用户数据条目、一个48个字节的元数据条目、四个每一者为512个字节的用户数据条目及一个48个字节的元数据条目,则第一个2,048个字节的数据根据前四个用户数据条目进行存储,其次48个字节的数据根据第一个元数据条目进行存储,接下来的2,048个字节的数据根据最后四个用户数据条目进行存储,再接下来的48个字节的数据根据最后一个元数据条目进行存储。对于一个实施例,非易失性存储器控制器经配置以使数据从非易失性存储器装置串流至易失性存储器控制器,而不受主控制器的处理器的干预。以此方式,当根据链接列表将数据批量写入易失性存储器时,处理器是空闲的,可以处理其它任务,且无需参与至易失性存储器的数据传送。
[0051]在666处,将用户数据输出至外部装置。元数据一般由大容量存储装置内部使用,而不供外部装置使用。因此,可通过简单地跳过针对元数据的链接列表条目来使用链接列表以仅传送所检索到的数据的用户数据部分。
[0052]虽然本文已说明并描述了具体实施例,但所属领域的技术人员将明白,任何经设计以实现相同目的的布置均可用来代替本文所展示的具体实施例。所属领域的技术人员将容易明白对本发明的许多改编。因此,本申请案既定涵盖对本发明的任何改编或变动。
Claims (25)
1.一种将数据写入到大容量存储装置的方法,其包含:
解码在所述大容量存储装置处接收的写入命令;
响应于解码所述写入命令而生成链接列表,其中所述链接列表具有针对待从外部装置接收的用户数据的一个或一个以上条目、针对由所述大容量存储装置生成的元数据的一个或一个以上条目,以及所述条目的对应于经定义数据结构的经定义顺序;
响应于所述写入命令而从所述外部装置接收用户数据,并根据所述链接列表的针对用户数据的所述一个或一个以上条目将所述用户数据存储至易失性存储器;
根据所述链接列表的针对元数据的所述一个或一个以上条目,将与所述接收的用户数据相关联的元数据存储至所述易失性存储器;以及
将所述用户数据和所述元数据串流至具有所述链接列表所定义的数据结构的非易失性存储器。
2.根据权利要求1所述的方法,其中生成链接列表包含生成定义对应于每一条目的数据单元的大小和其中将存储所述相应数据的所述易失性存储器的开始地址的条目。
3.根据权利要求2所述的方法,其中定义数据单元的大小包含定义对应于所述写入命令的协议所定义的大小的用户数据单元的大小。
4.根据权利要求1所述的方法,其中生成具有对应于经定义数据结构的经定义条目顺序的链接列表包含生成具有对应于所述写入命令所寻址的所述非易失性存储器的页的数据结构的经定义条目顺序的链接列表。
5.根据权利要求1所述的方法,其中存储元数据包含在接收与所述写入命令相关联的所有所述用户数据之前存储所述元数据的至少一部分。
6.根据权利要求1所述的方法,其进一步包含:
响应于所述接收的数据而生成所述元数据的至少一部分。
7.根据权利要求6所述的方法,其中响应于所述接收的数据而生成所述元数据的至少一部分包含针对所述接收的数据生成错误校正码数据。
8.一种将数据写入到大容量存储装置的方法,其包含:
解码在所述大容量存储装置处接收的写入命令;
响应于解码所述写入命令而生成链接列表,其中所述链接列表具有针对待从外部装置接收的用户数据的两个或两个以上条目、针对由所述大容量存储装置生成的元数据的两个或两个以上条目,以及所述条目的对应于经定义数据结构的经定义顺序;
响应于所述写入命令而从所述外部装置接收用户数据的第一和第二部分,并根据所述链接列表的针对用户数据的所述两个或两个以上条目将所述用户数据存储至易失性存储器;
生成与所述接收的第一部分用户数据相关联的第一元数据,所述第一元数据包含状态指示符、错误校正码数据和映射信息中的至少一者;
生成与所述接收的第一部分用户数据相关联的第二元数据,所述第二元数据包含状态指示符、错误校正码数据和映射信息中的至少一者;
在接收所述用户数据的所有所述第二部分之前,根据所述链接列表的针对元数据的所述两个或两个以上条目,将所述第一元数据存储至所述易失性存储器;
在接收所述用户数据的所述第二部分之后,根据所述链接列表的针对元数据的所述两个或两个以上条目将所述第二元数据存储至所述易失性存储器;以及
将所述用户数据和所述元数据串流到具有所述链接列表所定义的数据结构的非易失性存储器。
9.根据权利要求8所述的方法,其中生成链接列表包含生成定义对应于每一条目的数据单元的大小及其中将存储所述相应数据的所述易失性存储器的开始地址的条目,且其中用户数据的数据单元的大小不同于元数据的数据单元的大小。
10.根据权利要求8所述的方法,其中生成具有对应于经定义数据结构的经定义条目顺序的链接列表包含生成具有对应于所述写入命令所寻址的所述非易失性存储器的页的数据结构的经定义条目顺序的链接列表,且其中所述非易失性存储器的所述页的所述数据结构包括与用户数据部分交错的元数据部分。
11.一种从大容量存储装置读取数据的方法,其包含:
解码在所述大容量存储装置处接收的读取命令;
响应于解码所述读取命令而生成链接列表,其中所述链接列表具有针对用户数据的一个或一个以上条目、针对元数据的一个或一个以上条目,以及所述条目的对应于所述大容量存储装置的非易失性存储器的数据结构的经定义顺序;
响应于所述读取命令而从所述非易失性存储器读取数据,并根据所述链接列表而将所述数据存储至易失性存储器;以及
将所述数据的至少一部分输出至外部装置。
12.根据权利要求11所述的方法,其中生成链接列表包含生成定义对应于每一条目的数据单元的大小和其中将存储所述相应数据的所述易失性存储器的开始地址的条目。
13.根据权利要求12所述的方法,其中定义数据单元的大小包含定义对应于所述读取命令的协议所定义的大小的用户数据单元的大小。
14.根据权利要求11所述的方法,其中生成具有对应于经定义数据结构的经定义条目顺序的链接列表包含生成具有对应于所述读取命令所寻址的所述非易失性存储器的页的数据结构的经定义条目顺序的链接列表。
15.根据权利要求11所述的方法,其中将所述数据的至少一部分输出至外部装置包含仅输出所述数据中的对应于从外部装置接收的数据的一部分且不输出所述数据中的由所述大容量存储装置生成的一部分。
16.一种从大容量存储装置读取数据的方法,其包含:
解码在所述大容量存储装置处接收的读取命令;
响应于解码所述读取命令而生成链接列表,其中所述链接列表具有针对用户数据的两个或两个以上条目、针对元数据的两个或两个以上条目,以及所述条目的对应于所述大容量存储装置的非易失性存储器的数据结构的经定义顺序;
响应于所述读取命令而从所述非易失性存储器读取数据,并根据所述链接列表而将所述数据存储至易失性存储器;以及
将对应于针对用户数据的所述链接列表条目的数据输出至外部装置,而不将对应于针对元数据的所述链接列表条目的数据输出至所述外部装置。
17.根据权利要求16所述的方法,其中输出对应于针对用户数据的所述链接列表条目的数据包含使用对应于针对元数据的所述链接列表条目的数据来校正在读取所述数据期间生成的错误。
18.一种大容量存储装置,其包含:
主控制器;
耦合至所述主控制器的易失性存储器;以及
一个或一个以上存储器模块,其耦合至所述主控制器且包含非易失性存储器装置;
其中所述主控制器经配置以响应于所接收的读取或写入命令而生成链接列表;其中所述链接列表包含针对待从外部装置接收或待输出至外部装置的用户数据的一个或一个以上条目;
其中所述链接列表包含针对待由所述大容量存储装置生成的元数据的一个或一个以上条目;且
其中所述链接列表的所述条目具有对应于经定义数据结构的顺序。
19.根据权利要求18所述的大容量存储装置,其中所述经定义数据结构对应于所述接收的读取或写入命令所寻址的非易失性存储器装置的物理页的数据结构。
20.根据权利要求19所述的大容量存储装置,其中所述经定义数据结构进一步对应于所述读取或写入命令的协议所定义的数据单元大小。
21.根据权利要求18所述的大容量存储装置,其中每一链接列表条目包含对应于所述条目的数据单元的大小和其中将存储所述相应数据单元的所述易失性存储器的开始地址的指示。
22.根据权利要求18所述的大容量存储装置,其中所述主控制器进一步经配置以响应于读取命令将仅对应于针对用户数据的那些链接列表条目的数据输出至所述外部装置。
23.根据权利要求18所述的大容量存储装置,其中所述主控制器进一步包含处理器、易失性存储器控制器和非易失性存储器控制器,且其中所述非易失性存储器响应于读取命令而经配置以将数据从非易失性存储器装置串流至所述易失性存储器控制器而无需所述处理器干涉。
24.根据权利要求18所述的大容量存储装置,其中所述主控制器进一步经配置以响应于写入命令生成对应于所接收用户数据的元数据,并根据所述链接列表将所述元数据存储至所述易失性存储器。
25.根据权利要求24所述的大容量存储装置,其中所述主控制器进一步经配置以在已接收到所有所述用户数据之前存储所述元数据中的对应于所接收用户数据的至少一部分。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102114637A CN101685381B (zh) | 2008-09-26 | 2008-09-26 | 固态大容量存储装置的数据串流 |
US12/327,879 US8930645B2 (en) | 2008-09-26 | 2008-12-04 | Method and apparatus using linked lists for streaming of data for soild-state bulk storage device |
JP2011529124A JP5263561B2 (ja) | 2008-09-26 | 2009-09-18 | ソリッドステート大容量記憶装置のためのデータストリーミング |
KR1020117009371A KR101359772B1 (ko) | 2008-09-26 | 2009-09-18 | 고체 상태 대량 저장 디바이스들을 위한 데이터 스트리밍 |
PCT/US2009/057451 WO2010036572A2 (en) | 2008-09-26 | 2009-09-18 | Data streaming for solid-state bulk storage devices |
EP09816724A EP2342644A4 (en) | 2008-09-26 | 2009-09-18 | DATA STREAMING FOR SOLID-MASS STORAGE DEVICES |
US14/589,382 US9575674B2 (en) | 2008-09-26 | 2015-01-05 | Data streaming for solid-state bulk storage devices |
US15/432,510 US10007431B2 (en) | 2008-09-26 | 2017-02-14 | Storage devices configured to generate linked lists |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102114637A CN101685381B (zh) | 2008-09-26 | 2008-09-26 | 固态大容量存储装置的数据串流 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101685381A true CN101685381A (zh) | 2010-03-31 |
CN101685381B CN101685381B (zh) | 2013-07-24 |
Family
ID=42048553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102114637A Active CN101685381B (zh) | 2008-09-26 | 2008-09-26 | 固态大容量存储装置的数据串流 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8930645B2 (zh) |
EP (1) | EP2342644A4 (zh) |
JP (1) | JP5263561B2 (zh) |
KR (1) | KR101359772B1 (zh) |
CN (1) | CN101685381B (zh) |
WO (1) | WO2010036572A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657685A (zh) * | 2013-11-22 | 2015-05-27 | 新唐科技股份有限公司 | 保护非易失性存储器中存储的程序代码的装置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713066B1 (en) * | 2010-03-29 | 2014-04-29 | Western Digital Technologies, Inc. | Managing wear leveling and garbage collection operations in a solid-state memory using linked lists |
US8638602B1 (en) * | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
WO2012092347A2 (en) | 2010-12-28 | 2012-07-05 | Digital Storage Solutions, Inc. | System for writing and dispensing solid-state storage devices |
KR101861247B1 (ko) * | 2011-04-06 | 2018-05-28 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US9158461B1 (en) | 2012-01-18 | 2015-10-13 | Western Digital Technologies, Inc. | Measuring performance of data storage systems |
KR102036348B1 (ko) * | 2012-02-27 | 2019-10-24 | 삼성전자 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
US9146856B2 (en) * | 2012-04-10 | 2015-09-29 | Micron Technology, Inc. | Remapping and compacting in a memory device |
WO2013166101A1 (en) * | 2012-05-02 | 2013-11-07 | Massachusetts Institute Of Technology | Managing buffer memory |
US8984247B1 (en) * | 2012-05-10 | 2015-03-17 | Western Digital Technologies, Inc. | Storing and reconstructing mapping table data in a data storage system |
JP6000732B2 (ja) * | 2012-08-03 | 2016-10-05 | キヤノン株式会社 | データ転送装置及びその制御方法、プログラム |
US9582213B2 (en) | 2013-02-21 | 2017-02-28 | Netapp, Inc. | Object store architecture for distributed data processing system |
JP5695126B2 (ja) | 2013-05-14 | 2015-04-01 | 株式会社日立製作所 | 計算機システム、サーバモジュール及びストレージモジュール |
CN104572432B (zh) * | 2013-10-24 | 2018-09-04 | 杭州迪普科技股份有限公司 | 一种无锁链表管理装置 |
JP6318769B2 (ja) * | 2014-03-28 | 2018-05-09 | 富士通株式会社 | ストレージ制御装置、制御プログラム、および制御方法 |
US20150339069A1 (en) * | 2014-05-22 | 2015-11-26 | Kabushiki Kaisha Toshiba | Memory system and method |
JP6050794B2 (ja) * | 2014-08-22 | 2016-12-21 | 株式会社日立製作所 | フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置 |
US9811456B2 (en) * | 2014-11-26 | 2017-11-07 | Advanced Micro Devices, Inc. | Reliable wear-leveling for non-volatile memory and method therefor |
US10089339B2 (en) * | 2016-07-18 | 2018-10-02 | Arm Limited | Datagram reassembly |
US10409518B1 (en) | 2017-04-20 | 2019-09-10 | Seagate Technology Llc | Reordered local data deduplication in storage devices |
GB201709499D0 (en) * | 2017-06-15 | 2017-08-02 | Microsoft Technology Licensing Llc | Memory management in non-volatile memory |
CN115328856B (zh) * | 2022-07-05 | 2023-05-09 | 荣耀终端有限公司 | 一种文件页管理的方法、装置及电子设备 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06103225A (ja) * | 1992-09-18 | 1994-04-15 | Fujitsu Ltd | チェーン式dma方式及びそのためのdmaコントローラ |
JPH07336408A (ja) * | 1994-06-06 | 1995-12-22 | Hitachi Ltd | 通信制御システム及び通信制御装置 |
US5996054A (en) * | 1996-09-12 | 1999-11-30 | Veritas Software Corp. | Efficient virtualized mapping space for log device data storage system |
JP3563541B2 (ja) * | 1996-09-13 | 2004-09-08 | 株式会社東芝 | データ格納装置及びデータ格納方法 |
DE69735614T2 (de) * | 1996-10-18 | 2006-09-07 | Matsushita Electric Industrial Co., Ltd., Kadoma | Datenübertragungsgerät und Datenübertragungssystem zur Arbitrierung von mehreren E/A Ports in DMA |
US6378035B1 (en) * | 1999-04-06 | 2002-04-23 | Microsoft Corporation | Streaming information appliance with buffer read and write synchronization |
JP2000347815A (ja) * | 1999-06-07 | 2000-12-15 | Hitachi Ltd | ディスクアレイシステム |
JP2002140286A (ja) * | 2000-10-31 | 2002-05-17 | Ricoh Co Ltd | 情報処理装置及びdma転送方法 |
JP3979486B2 (ja) * | 2001-09-12 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性記憶装置およびデータ格納方法 |
JP2004021811A (ja) * | 2002-06-19 | 2004-01-22 | Hitachi Ltd | 不揮発メモリを使用したディスク制御装置 |
US7127465B2 (en) * | 2002-09-30 | 2006-10-24 | Sun Microsystems, Inc. | Memory-efficient metadata organization in a storage array |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
EP1640872B1 (en) * | 2003-06-27 | 2008-10-15 | Fujitsu Limited | Data transfer method and system |
US20060031628A1 (en) * | 2004-06-03 | 2006-02-09 | Suman Sharma | Buffer management in a network device without SRAM |
US8327099B2 (en) * | 2005-04-27 | 2012-12-04 | Incomm Technologies Co., Ltd | Method for soft configuring a memory device |
WO2006133597A1 (en) * | 2005-06-15 | 2006-12-21 | Intel Corporation | Using transacted writes and caching mechanism to improve write performance in multi-level cell flash memoty |
US20060294300A1 (en) * | 2005-06-22 | 2006-12-28 | Seagate Technology Llc | Atomic cache transactions in a distributed storage system |
EP1739672A1 (en) * | 2005-07-01 | 2007-01-03 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for managing memory accesses in an AV decoder |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
JP2007310627A (ja) * | 2006-05-18 | 2007-11-29 | Konica Minolta Business Technologies Inc | 画像処理装置 |
US7822891B2 (en) * | 2006-06-13 | 2010-10-26 | Broadcom Corporation | System and method for transferring a multidimensional array of data to a non-contiguous buffer |
JP4883797B2 (ja) * | 2006-09-08 | 2012-02-22 | キヤノン株式会社 | 記録装置 |
KR20090102789A (ko) * | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
US7802005B2 (en) * | 2007-03-30 | 2010-09-21 | Motorola, Inc. | Method and apparatus for configuring buffers for streaming data transfer |
JP2008293484A (ja) * | 2007-04-27 | 2008-12-04 | Panasonic Corp | バッファメモリ共有装置 |
US8386630B1 (en) * | 2007-09-09 | 2013-02-26 | Arris Solutions, Inc. | Video-aware P2P streaming and download with support for real-time content alteration |
US20090125726A1 (en) * | 2007-11-14 | 2009-05-14 | Mcm Portfolio Llc | Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices |
US7962452B2 (en) * | 2007-12-28 | 2011-06-14 | International Business Machines Corporation | Data deduplication by separating data from meta data |
-
2008
- 2008-09-26 CN CN2008102114637A patent/CN101685381B/zh active Active
- 2008-12-04 US US12/327,879 patent/US8930645B2/en active Active
-
2009
- 2009-09-18 WO PCT/US2009/057451 patent/WO2010036572A2/en active Application Filing
- 2009-09-18 JP JP2011529124A patent/JP5263561B2/ja active Active
- 2009-09-18 KR KR1020117009371A patent/KR101359772B1/ko active IP Right Grant
- 2009-09-18 EP EP09816724A patent/EP2342644A4/en not_active Withdrawn
-
2015
- 2015-01-05 US US14/589,382 patent/US9575674B2/en active Active
-
2017
- 2017-02-14 US US15/432,510 patent/US10007431B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657685A (zh) * | 2013-11-22 | 2015-05-27 | 新唐科技股份有限公司 | 保护非易失性存储器中存储的程序代码的装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2012503828A (ja) | 2012-02-09 |
KR20110059792A (ko) | 2011-06-03 |
US9575674B2 (en) | 2017-02-21 |
CN101685381B (zh) | 2013-07-24 |
JP5263561B2 (ja) | 2013-08-14 |
WO2010036572A2 (en) | 2010-04-01 |
WO2010036572A3 (en) | 2010-06-17 |
US20150113357A1 (en) | 2015-04-23 |
US8930645B2 (en) | 2015-01-06 |
EP2342644A2 (en) | 2011-07-13 |
US10007431B2 (en) | 2018-06-26 |
KR101359772B1 (ko) | 2014-02-06 |
EP2342644A4 (en) | 2012-10-24 |
US20100082919A1 (en) | 2010-04-01 |
US20170153817A1 (en) | 2017-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101685381B (zh) | 固态大容量存储装置的数据串流 | |
US8732538B2 (en) | Programmable data storage management | |
US11347444B2 (en) | Memory device for controlling operations according to different access units of memory | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
CN101800071B (zh) | 固态盘设备及其编程失败处理方法 | |
US8417879B2 (en) | Method for suppressing errors, and associated memory device and controller thereof | |
CN101120414A (zh) | 存储器系统中的数据再定位 | |
CN101676882A (zh) | 存储器装置的内嵌映射信息 | |
CN102203717A (zh) | 固态驱动器优化器 | |
CN106920575B (zh) | 数据存储装置及其操作方法 | |
CN109992202A (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN106575250A (zh) | 使用nand页缓冲器来改善固态驱动器的传递缓冲器利用的方法与系统 | |
KR20030051393A (ko) | 데이터 저장 장치 | |
CN110633225B (zh) | 实体存储对照表产生装置及方法 | |
CN101872318A (zh) | 用于快闪记忆体的资料存取方法及其储存系统与控制器 | |
CN112466364B (zh) | 存储器装置、写入方法以及读取方法 | |
CN113703664A (zh) | 一种eMMC芯片随机写入速率优化实现方法 | |
CN110413221B (zh) | 数据存储设备 | |
US20210286554A1 (en) | Combined QLC Programming Method | |
CN101540192B (zh) | 一种防止回焊过程中资料遗失的方法及装置 | |
CN117616374A (zh) | 用于对来自主机设备的门铃事务命令进行分组的数据存储设备、系统和相关方法 | |
CN115705880A (zh) | 无需数据传输配置非易失性存储器设备的方法和装置 | |
CN116775367A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |