CN105808151B - 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 - Google Patents
固态硬盘存储设备和固态硬盘存储设备的数据存取方法 Download PDFInfo
- Publication number
- CN105808151B CN105808151B CN201410837073.6A CN201410837073A CN105808151B CN 105808151 B CN105808151 B CN 105808151B CN 201410837073 A CN201410837073 A CN 201410837073A CN 105808151 B CN105808151 B CN 105808151B
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- level
- stored
- ssd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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/0608—Saving storage space on storage systems
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
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)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本发明实施例提供了一种管理SSD存储设备和SSD存储设备的数据存储方法,以解决现有技术中SDD中数据管理的复杂度包,NandFlash物理块内NandFlash物理页的使用寿命不一致的问题。本发明实施例通过将SSD存储设备的每个存储单元中的用户数据区、一级元数据和ECC码的长度设为固定值,使得存储单元中存储的数据格式固定,并且ECC码也能够按照固定的码率保证用户数据区的数据与一级元数据的一致性,保证用户数据区中的数据与一级元数据的正确和完整性,简化了数据管理,降低了ECC硬件逻辑的复杂度;同时,由于ECC码率一致,也保证了每个存储单元,的寿命一致性。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种固态硬盘存储设备和固态硬盘存储设备的数据存取方法。
背景技术
随着信息化技术的大规模发展,固态硬盘(SSD,Solid-State Disk)应运而生。使用Flash介质的SSD具有高性能与低功耗的特性,可以极大的降低存储系统的时延,并且由于SSD不需要机械结构,可靠性会更高。
作为SSD存储介质的NandFlash,其擦写次数具有一定的寿命限制,这成为影响SSD寿命与性能的关键因素。在NandFlash中,数据是以NandFlash物理块和NandFlash物理页的形式组织的,一个NandFlash物理块由若干NandFlash物理页组成。一个NandFlash物理块是执行擦除操作的最小单元,一个NandFlash物理页是执行写入/读取操作的最小单元。NandFlash物理页在写入一次数据后,必须经过对该NandFlash物理页所在的NandFlash物理块执行擦除操作后,该NandFlash物理页才能再次写入数据。一个NandFlash物理页由若干存储单元构成,数据在NandFlash的存储单元中是以浮栅中的电荷形式存储的。对存储单元的擦写会降低浮栅与沟道间绝缘层的绝缘性能。超过一定擦写次数后,电子便无法在浮栅中保持足够的时间,存储的数据便会产生大量的比特错误。如果超过了SSD控制器的错误纠正能力,那么对应的NandFlash物理页/物理块便认为已经损坏。
减少实际写入NandFlash介质的数据量是提高SSD寿命的关键因素。实际应用中,写入SSD的数据具有空间上的相关性。人们提出了将数据在写入NandFlash前先进行压缩的方法,来减少实际写入的数据量,但现有技术需要SSD控制器的错误检查和纠正(ECC,ErrorChecking and Correcting)逻辑支持多种码率,使得ECC逻辑实现的复杂度高,造成软件管理算法的复杂化,并且还使NandFlash一个物理块内的不同物理页的使用寿命不均衡。
发明内容
本发明实施例提供一种管理SSD存储设备和SSD存储设备的数据存储方法,以降低现有技术中SDD中数据管理的复杂度,并使得NandFlash物理块内NandFlash物理页的使用寿命一致。
在第一方面,本发明实施例提供了一种固态硬盘SSD存储设备,所述SSD存储设备包括至少一个存储单元,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,
所述存储单元包括用户数据区、一级元数据、以及错误检查和纠正ECC码;所述用户数据区、一级元数据和ECC码的长度均为固定值;
所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
存储单元中的一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述用户数据区中每个数据压缩后所占用的分区个数;
所述ECC码用于保证所述存储单元中数据的一致性。
在第一方面的第一种可能的实现方式中,结合第一方面,每个所述存储单元中的用户数据区的分区个数相同。
在第一方面的第二种可能的实现方式中,结合第一方面和第一方面的第一种可能的实现方式,所述SSD存储设备还包括二级元数据生成单元;
所述二级元数据生成单元,用于生成待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的逻辑块地址LBA。
在第一方面的第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述SSD存储设备还包括填充单元,用于在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
在第一方面的第四种可能的实现方式中,结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,所述二级元数据生成单元将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
在第一方面的第五种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述SSD存储设备还包括缓存处理单元,用于将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中。
在第一方面的第六种可能的实现方式中,结合第一方面的第三种可能的实现方式,将所述填充单元填充数据后的所述二级元数据,压缩后的所述待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
在第一方面的第七种可能的实现方式中,结合第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式,所述SSD存储设备还包括数据写入单元;
所述数据写入单元,用于将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的缓存数据写入所述SSD存储设备的一个存储单元中;所述缓存数据包括所述二级元数据和压缩后的所述待存储数据,或所述缓存数据包括所述二级元数据,压缩后的所述待存储数据和所述填充数据。
在第一方面的第八种可能的实现方式中,结合第一方面、第一方面的第一种可能的实现方式,第一方面的第三种可能的实现方式,第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式中,所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述存储单元时的时间信息。
在第一方面的第九种可能的实现方式中,结合第一方面的第七种可能的实现方式,所述SSD存储设备还包括数据恢复单元;
所述数据恢复单元,用于根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
在第二方面,本发明实施例还提供了一种固态硬盘SSD存储设备的数据存取方法,所述SSD存储设备包括至少一个存储单元,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,其特征在于:
接收待存储的数据并对所述待存储数据进行压缩;
在压缩后的数据小于预设的阈值时,将所述待存储的数据写入所述至少一个存储单元的用户数据区中;所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
生成所述待存储数据的一级元数据,所述一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述待存储数据压缩后所占用的分区个数;
生成所述待存储数据和一级元数据对应的错误检查和纠正ECC码并写入压缩后的所述待存储数据所在的存储单元,所述EEC码用于保证所述存储单元中数据的一致性;
其中,所述用户数据区、一级元数据和ECC码的长度均为固定值。
在第二方面的第一种可能的实现方式中,结合第二方面的实现方式,每个所述存储单元中的用户数据区的分区个数相同。
在第二方面的第二种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式,在所述压缩后的数据小于预设的阈值时,所述方法还包括:
生成所述待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的逻辑块地址LBA。
在第二方面的第三种可能的实现方式中,结合二方面或第二方面的第二种可能的实现方式,所述方法还包括:
在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
在第二方面的第四种可能的实现方式中,结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,所述方法还包括:
将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
在第二方面的第五种可能的实现方式中,结合第二方面的第三种可能的实现方式,所述方法还包括:
将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中。
在第二方面的第六种可能的实现方式中,结合第二方面的第四种可能的实现方式,将所述二级元数据,压缩后的所述待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
在第二方面的第七种可能的实现方式中,结合第二方面的第五种或第六种可能的实现方式,所述将所述待存储的数据写入所述至少一个存储单元的用户数据区中包括:
将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的缓存数据写入所述SSD存储设备的一个存储单元中;所述缓存数据包括所述二级元数据和压缩后的所述待存储数据,或所述缓存数据包括所述二级元数据,压缩后的所述待存储数据和所述填充数据。
在第二方面的第八种可能的实现方式中,结合第二方面,第二方面的第一种,第三种,第六种或第七种可能的实现方式中,所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述存储单元时的时间信息。
在第二方面的第九种可能的实现方式中,结合第二方面的第七种可能的实现方式,所述方法还包括:
根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
本发明实施例提供一种管理SSD存储设备和SSD存储设备的数据存储方法,通过将SSD存储设备的每个存储单元中的用户数据区、一级元数据和ECC码的长度设为固定值,使得存储单元中存储的数据格式固定,并且ECC码也能够按照固定的码率保证用户数据区的数据与一级元数据的一致性,保证用户数据区中的数据与一级元数据的正确和完整性,简化了数据管理,降低了ECC硬件逻辑的复杂度;同时,由于ECC码率一致,也保证了每个存储单元,的寿命一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种SSD存储设备100的结构示意图;
图2为本发明实施例一种固态硬盘SSD存储设备的数据存取方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
现有技术中,一个NandFlash物理页中存储固定个数的扇区数据及其相应的ECC纠错码。压缩引擎压缩每个原始数据块,当原始数据块可以压缩到低于特定阈值时,压缩引擎通知数据选择器选择压缩后的数据保存入NandFlash的物理页中。NandFlash的物理页中保存固定个数的扇区数据,这些扇区数据经压缩后,占用空间小于原始数据,额外节约的区域用于存放更多的ECC纠错码。其NandFlash物理页数据格式如表1所示:
表1
由于不同类型的数据其压缩率不相同,因而不同的扇区数据压缩后的数据长度也不相同,这样就需要数据管理算法记录额外的管理信息来精确的记录每一个压缩后扇区数据在NandFlash物理页中的起始位置及数据长度.。另外,由于额外节约区域大小不同,其保存的ECC纠错码长度不同,对应的ECC码率也不相同。因此,现有技术中,ECC编解码逻辑需要支持不同的ECC码率并支持不同码率的动态切换。这样会带来两个问题:1.码率较低的ECC逻辑纠错能力要高于ECC码率较高的ECC逻辑,能够比码率较高的ECC纠正更多的bit错误,而不同的NandFlash物理页在相同使用场景下的bit误码率基本一样,因此ECC码率较低的NandFlash物理页,其使用寿命也将高于ECC码率较高的NandFlash物理页,这样就造成不同NandFlash物理页的寿命不同;2.由于不同的NandFlash物理页,其ECC码率均不相同,ECC硬件逻辑必须要支持在读取不同的NandFlash物理页时能够动态的切换不同的ECC码率,这样大大增加了ECC硬件逻辑的复杂度。
本发明实施例提供了一种SSD存储设备和SSD中数据的管理方法,将SSD设备中的每个NandFlash物理页的空间分为三部分:1,用户数据空间;2,一级元数据;3,ECC纠错码。为了便于管理,每个NandFlash物理页的各部分长度均为固定值。其中,用户数据空间进一步等分为若干个分区,如表2所示。作为一种优选的实现方式,所有的NandFlash物理页的用户数据空间的分区个数均相同。特别的,可以2的幂次作为分区个数,例如4个分区,8个分区等。
表2
表2中一级元数据的格式,可以如表3所示:
表3
一级元数据包括压缩标志和各压缩数据所占用的分区个数。其中,压缩标志用于标识写入所述用户数据区的数据为压缩数据。
在具体实现中,一级元数据还可以包括FTL映射表信息和时间戳等其它管理信息,本发明实施例不做限定。其中,FTL映射表信息用于根据逻辑地址查找到具体的物理地址,从而从数据的物理地址读取或向物理地址写入数据。时间戳是压缩数据写入所述SSD的NandFlash物理页中的时间,用于所述记录写入所述SSD的NandFlash物理页的压缩数据在所述NandFlash中存储的时间。
当需要向SSD中写入数据时,SSD的主控接口卡,例如串行连接小型计算机系统接口SAS(Serial Attached Small Computer System Interface)启动器SAS Initiator,向SSD下发读写命令,并携带需要写入的原始数据。SSD的主控接口卡发送的原始数据首先经过SSD内部的压缩引擎进行压缩,以得到压缩后数据。如果压缩后数据的长度低于某个阈值(优选的,阈值可以为一个NandFlash物理页内的分区个数减1),则由SSD内部的二级元数据生成单元为该压缩后数据生成二级元数据,二级元数据包括压缩数据长度和压缩数据逻辑块地址(LBA,Logical Block Address)。其中,压缩数据长度用于记录原始数据压缩后的实际数据长度(例如以字节为单位),“压缩数据的LBA”表示此原始数据的LBA,二级元数据的格式如表4所示。二级元数据生成单元可以将生成的二级元数据添加在压缩后数据之前。
表4
SSD内部的填充单元在该压缩数据之后增加填充数据(填充的数据内容不限),该填充数据的长度使得整个数据长度(二级元数据+压缩后数据+填充数据)等于最小整数个分区,即表2中的每个分区,并将二级元数据、压缩后数据及填充数据一起保存在所述SSD的缓存中。本发明实施例中,填充数据的位置不限,可以是二级元数据+压缩后数据+填充数据,或压缩后数据+填充数据+二级元数据等。这里的分区即为表2中NandFlash物理页管理格式中的分区,这样便构成压缩数据管理格式,并保存在缓存中。对于整个数据长度(压缩后数据与二级元数据的长度之和)刚好等于整数个分区的情况,那么无需增加填充数据,填充数据长度为0。
下面举一个具体的实例说明填充数据的处理方式。例如,一个NandFlash物理页管理格式中一个分区大小为512Byte,二级元数据长度为6Byte,压缩后数据长度为900Byte,那么二级元数据+压缩后数据的总长度为906Byte,大于1个分区(512Byte)的长度,小于2个分区(共计1024Byte)的长度,那么填充数据的长度应为2个分区的长度(1024Byte)减去二级元数据+压缩后数据的总长度(906Byte),即为118Byte。
根据缓存中各压缩数据管理格式所占用的分区个数,SSD内部的Firmware可以选择若干个待存储的压缩数据,使得其总的分区个数刚好等于一个完整的用户数据区。例如,一个用户数据区共有10个分区,每个大小为512Byte,如果在缓存中刚好才在一个缓存数据(包括二级元数据+压缩后的待存储数据,或二级元数据+压缩后的待存储数据+填充数据)的大小是5120Byte,则将该缓存数据写入一个用户数据区;如果如果一个缓存数据(包括二级元数据+压缩后的待存储数据,或二级元数据+压缩后的待存储数据+填充数据)的长度是3个分区的长度,例如512*3=1536Byte,则再选择一个长度为7个分区的缓存数据(包括二级元数据+压缩后的待存储数据,或二级元数据+压缩后的待存储数据+填充数据),例如512*7=3584Byte,一起存入一个用户数据区中。
并且,所述SSD内部的Firmware还构造一级元数据,包含压缩标志、各压缩数据管理格式占用的分区个数等信息。这些压缩数据管理格式,与一级元数据及ECC纠错码,共同构成了一个完整的NandFlash物理页管理格式。需要说明的是,上述举例是以Firmware将待存储数据写入用户数据区并构造一级元数据等为例进行的说明,在具体实现中,还可以通过硬件等其它方式来实现,本发明实施例不做限定。
如图1所示,为本发明实施例提供的一种SSD存储设备100的结构示意图,所述SSD存储设备100包括二个以上的存储单元101,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,其中,
所述存储单元101包括用户数据区、一级元数据、以及错误检查和纠正ECC码;所述用户数据区、一级元数据和ECC码的长度均为固定值;
所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
存储单元中的一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述用户数据区中每个数据压缩后所占用的分区个数;
所述ECC码用于保证所述存储单元中数据的一致性。
上述存储单元101可以是SSD存储设备中的NandFlash物理页。
上述SSD存储设备中,每个存储单元中的用户数据区、一级元数据和ECC码的长度为固定值,使得存储单元中存储的数据格式固定,并且ECC码也能够按照固定的码率保证用户数据区的数据与一级元数据的一致性,保证用户数据区中的数据与一级元数据的正确和完整性,简化了数据管理,降低了ECC硬件逻辑的复杂度;同时,由于ECC码率一致,也保证了每个存储单元,例如NandFlash物理页,的寿命一致性。
作为一种可选的实现方式,每个所述存储单元中的用户数据区的分区个数相同。
每个存储单元中用户数据区包含的分区的个数相同,使得一级元数据中“各压缩数据所占用的分区个数”字段的长度为固定值,并且该字段格式也为固定格式,使得一级元数据的长度为固定值,也简化了数据的管理。
可选的,所述SSD存储设备还包括二级元数据生成单元,用于生成待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的LBA。
通过该二级元数据,能够实现在数据从存储单元读出时,一方面能够根据该数据的LBA,从用户数据区中定位出该数据位于那几个分区;另一方面能够根据该数据的长度,识别出在这些分区中,哪些是无效的填充数据,从而避免将无效的填充数据送往解压缩引擎。因此,通过对二级元数据的解析,可以快速有效的进行数据的读出。
作为一种可选的实现方式,所述二级元数据生成单元将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
在本发明实施例中,所述SSD存储设备还包括填充单元,用于在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
上述填充的数据可以是任意的数据,只要满足上述关于长度的要求即可。通过填充数据,使得每个分区都能够写入完整的数据。可选的,所述SSD存储设备还包括缓存处理单元,用于将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中,或将所述填充单元填充数据后的所述二级元数据,所述压缩后的待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
数据写入单元,用于将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的待存储数据写入所述SSD存储设备的一个存储单元中。
作为一种可选的实现方式,所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述SSD的NandFlash物理页中的时间信息。根据所述逻辑地址到物理地址的映射信息,查找到具体的物理地址,从而从数据的物理地址读取或向物理地址写入数据;根据待存储数据在所述SSD的NandFlash物理页中的时间信息,可以获取待存储数据在所述SSD的Flash中保存的时间。
可选的,上述SSD存储设备还包括数据恢复单元;
所述数据恢复单元,用于根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
通过该数据恢复单元,能够在需要从所述SSD存储设备读取数据时,快速地恢复要读取的数据,并保证了要读取数据的准确性。
下面结合上述SSD控制设备,介绍本发明实施例中将数据写入SSD存储设备以及从SSD设备中读取数据的过程。
将数据写入上述本发明实施例的SSD存储设备的过程如下:
S1:SSD存储设备接收需要存储的数据;
S2:SSD设备的压缩引擎对接收到的数据进行压缩;
S3:如果压缩后数据小于预先设定的阈值,则将压缩后数据发送给所述SSD设备的二级元数据生成单元,否则将未压缩的数据直接保存至所述SSD存储设备的缓存中;
S4:所述二级元数据生成单元为压缩后的数据添加二级元数据,二级元数据包括压缩后的数据的长度和所述数据的LBA;
S5:在所述二级元数据的长度和所述压缩数据的长度不是所述SSD存储设备中NandFlash物理页内分区的整数倍时,所述二级元数据生成单元将生成的二级元数据及所述压缩后的数据发送至填充单元;
S6:所述填充单元在压缩后数据尾部添加若干填充数据,使得二级元数据加上压缩后的数据及填充数据后的总长度等于最小整数个分区;
S7:SSD内的控制单元从缓存中选择若干压缩数据进行拼接,使得其总分区数刚好等于一个用户数据空间;
S8:SSD内的控制单元构造一级元数据,将上述拼接后的数据(二级元数据+压缩后的待存储数据,或二级元数据+压缩后的待存储数据+填充数据)及一级元数据送至加密/加扰模块,加密/加扰模块处理后发送至ECC编码器;
S9:ECC编码器在上述加密/加扰模块处理后的数据尾部添加ECC码。
S10:ECC编码器将添加了ECC码后的数据送至Flash控制器,由Flash控制器将添加了ECC码的数据写入NandFlash物理页。
将数据从本发明实施例的上述SSD存储设备中读取的过程如下:
S1:SSD内的控制单元将需要读取的数据的LBA发送给数据恢复单元;
S2:数据恢复单元启动Flash控制器,从Flash存储器中读取对应LBA的一个Flash物理页面中的整个用户数据区、一级元数据以及ECC码;经过ECC解码,解密/解扰后,解密/解扰模块将用户数据区中的数据以及一级元数据送至数据恢复模块;
S3:数据恢复单元根据一级元数据中的压缩标志判断用户数据区中的数据是否是压缩数据;如果压缩标志位为真,则根据一级元数据解析出用户数据区中包含的压缩数据的个数,并获得二级元数据的保存位置;
S4:数据恢复单元解析每一个二级元数据,对比其LBA与控制单元所下发的LBA是否一致;若一致,则将对应的压缩后数据发送至解压缩引擎;
S5:解压缩引擎将解压后的原始数据保存在缓存中;
S6:所述SSD存储设备与主机接口的模块从缓存中读取解压后的原始扇区数据并发送给主机。参考图2,图2为本发明实施例一种固态硬盘SSD存储设备的数据存取方法的流程示意图,所述SSD存储设备包括至少一个存储单元,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,包括:
步骤200:接收待存储的数据并对所述待存储数据进行压缩;
步骤202:在压缩后的数据小于预设的阈值时,将所述待存储的数据写入所述至少一个存储单元的用户数据区中;所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
步骤204:生成所述待存储数据的一级元数据,所述一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述待存储数据压缩后所占用的分区个数;
步骤206:生成所述待存储数据和一级元数据对应的错误检查和纠正ECC码并写入压缩后的所述待存储数据所在的存储单元,所述EEC码用于保证所述存储单元中数据的一致性;其中,所述用户数据区、一级元数据和ECC码的长度均为固定值。
上述存储单元可以是SSD存储设备中的NandFlash物理页。
上述方法,将待存储数据写入存储单元的用户数据区,并构造每个存储单元中的一级元数据和ECC码,并且每个存储单元中的用户数据区、一级元数据和ECC码的长度为固定值,使得存储单元中存储的数据格式固定,并且ECC码也能够按照固定的码率保证用户数据区的数据与一级元数据的一致性,保证用户数据区中的数据与一级元数据的正确和完整性,简化了数据管理,降低了ECC硬件逻辑的复杂度;同时,由于ECC码率一致,也保证了每个存储单元,例如NandFlash物理页,的寿命一致性。
可选的,上述方法中,每个所述存储单元中的用户数据区的分区个数相同。
每个存储单元中用户数据区包含的分区的个数相同,使得一级元数据中“各压缩数据所占用的分区个数”字段的长度为固定值,并且该字段格式也为固定格式,使得一级元数据的长度为固定值,也简化了数据的管理。
在所述压缩后的数据小于预设的阈值时,所述方法还包括:
生成所述待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的逻辑块地址LBA。
通过该二级元数据,能够实现在数据从存储单元读出时,一方面能够根据该数据的LBA,从用户数据区中定位出该数据位于那几个分区;另一方面能够根据该数据的长度,识别出在这些分区中,哪些是无效的填充数据,从而避免将无效的填充数据送往解压缩引擎。因此,通过对二级元数据的解析,可以快速有效的进行数据的读出。
可选的,上述方法还可以包括:
在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
上述填充的数据可以是任意的数据,只要满足上述关于长度的要求即可。通过填充数据,使得每个分区都能够写入完整的数据。
作为一种可选的实现方式,可以将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
本发明实施例中,所述方法还包括:
将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中;或者将所述二级元数据,压缩后的所述待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
其中,所述将所述待存储的数据写入所述至少一个存储单元的用户数据区中可以包括:
将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的缓存数据写入所述SSD存储设备的一个存储单元中;所述缓存数据包括所述二级元数据和压缩后的所述待存储数据,或所述缓存数据包括所述二级元数据,压缩后的所述待存储数据和所述填充数据。
本发明实施例中,所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述存储单元时的时间信息。根据所述逻辑地址到物理地址的映射信息,查找到具体的物理地址,从而从数据的物理地址读取或向物理地址写入数据;根据待存储数据在所述SSD的NandFlash物理页中的时间信息,可以获取待存储数据在所述SSD的Flash中保存的时间
本发明实施例提供的SSD存储设备的数据存取方法还可以包括:
根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
上述SSD存储设备的数据读取方法,能够在需要从所述SSD存储设备读取数据时,快速地恢复要读取的数据,并保证了要读取数据的准确性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种固态硬盘SSD存储设备,所述SSD存储设备包括至少一个存储单元,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,其特征在于:
所述存储单元包括用户数据区、一级元数据、以及错误检查和纠正ECC码;所述用户数据区、一级元数据和ECC码的长度均为固定值;
所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
存储单元中的一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述用户数据区中每个数据压缩后所占用的分区个数;
所述ECC码用于保证所述存储单元中数据的一致性。
2.根据权利要求1所述的SSD存储设备,其特征在于,每个所述存储单元中的用户数据区的分区个数相同。
3.根据权利要求1或2所述的SSD存储设备,其特征在于,所述SSD存储设备还包括二级元数据生成单元;
所述二级元数据生成单元,用于生成待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的逻辑块地址LBA。
4.根据权利要求3所述的SSD存储设备,其特征在于,所述SSD存储设备还包括填充单元,用于在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
5.根据权利要求4所述的SSD存储设备,其特征在于,所述二级元数据生成单元将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
6.根据权利要求3所述的SSD存储设备,其特征在于,所述SSD存储设备还包括缓存处理单元,用于将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中。
7.根据权利要求4所述的SSD存储设备,其特征在于,将所述填充单元填充数据后的所述二级元数据,压缩后的所述待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
8.根据权利要求6或7所述的SSD存储设备,其特征在于,所述SSD存储设备还包括数据写入单元;
所述数据写入单元,用于将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的缓存数据写入所述SSD存储设备的一个存储单元中;所述缓存数据包括所述二级元数据和压缩后的所述待存储数据,或所述缓存数据包括所述二级元数据,压缩后的所述待存储数据和所述填充数据。
9.根据权利要求1、2、4、6或7任一所述的SSD存储设备,其特征在于,
所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述存储单元时的时间信息。
10.根据权利要求8所述的SSD存储设备,其特征在于,所述SSD存储设备还包括数据恢复单元;
所述数据恢复单元,用于根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
11.一种固态硬盘SSD存储设备的数据存取方法,所述SSD存储设备包括至少一个存储单元,所述存储单元是所述SSD存储设备中进行写入或读取操作的最小单元,其特征在于:
接收待存储的数据并对所述待存储数据进行压缩;
在压缩后的数据小于预设的阈值时,将所述待存储的数据写入所述至少一个存储单元的用户数据区中;所述用户数据区包含二个以上长度相同的分区,每个分区用于存储压缩后的数据;
生成所述待存储数据的一级元数据,所述一级元数据记录所述用户数据区中存储的数据的压缩标志,以及所述待存储数据压缩后所占用的分区个数;
生成所述待存储数据和一级元数据对应的错误检查和纠正ECC码并写入压缩后的所述待存储数据所在的存储单元,所述ECC码用于保证所述存储单元中数据的一致性;
其中,所述用户数据区、一级元数据和ECC码的长度均为固定值。
12.根据权利要求11所述的方法,其特征在于,每个所述存储单元中的用户数据区的分区个数相同。
13.根据权利要求11或12所述的方法,其特征在于,在所述压缩后的数据小于预设的阈值时,所述方法还包括:
生成所述待存储数据的二级元数据,所述二级元数据是包括压缩后的所述待存储数据的长度和压缩后的所述待存储数据的逻辑块地址LBA。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在所述二级元数据的长度与压缩后的所述待存储数据的长度之和不是一个所述分区长度的整数倍时,添加填充数据,使得所述二级元数据,压缩后的所述待存储数据,以及所述填充数据的长度之和是一个所述分区长度的最小整数倍。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将生成的所述二级元数据添加在所述压缩后的所述待存储数据之前。
16.根据权利要求13所述的方法,其特征在于,所述方法还包括:
将所述二级元数据和压缩后的所述待存储数据写入所述SSD存储设备的缓存中。
17.根据权利要求14所述的方法,其特征在于,将所述二级元数据,压缩后的所述待存储数据,以及所述填充数据写入所述SSD存储设备的缓存中。
18.根据权利要求16或17所述的方法,其特征在于,所述将所述待存储的数据写入所述至少一个存储单元的用户数据区中包括:
将所述缓存中的长度等于一个所述用户数据区的一个或一个以上的缓存数据写入所述SSD存储设备的一个存储单元中;所述缓存数据包括所述二级元数据和压缩后的所述待存储数据,或所述缓存数据包括所述二级元数据,压缩后的所述待存储数据和所述填充数据。
19.根据权利要求11、12、14、16或17任一所述的方法,其特征在于,
所述一级元数据还包括所述待存储数据的逻辑地址到物理地址的映射信息,和所述待存储数据写入所述存储单元时的时间信息。
20.根据权利要求18所述的方法,其特征在于,所述方法还包括:
根据数据读取请求中包括的待读取数据的LBA,读取所述LBA对应的存储单元中的用户数据区、一级元数据和ECC码;并根据所述一级元数据获取所述用户数据区中压缩数据的个数,获取对应的压缩数据和二级元数据,比较所述二级元数据中的LBA与所述数据读取请求中的LBA是否一致,在一致时将获取的对应的压缩数据发送至解压缩引擎进行解压。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837073.6A CN105808151B (zh) | 2014-12-29 | 2014-12-29 | 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 |
PCT/CN2015/093591 WO2016107272A1 (zh) | 2014-12-29 | 2015-11-02 | 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 |
EP15874957.2A EP3200063A4 (en) | 2014-12-29 | 2015-11-02 | Solid state disk storage device, and data accessing method for solid state disk storage device |
US15/585,858 US10572340B2 (en) | 2014-12-29 | 2017-05-03 | Solid state disk storage device and method for accessing data in solid state disk storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837073.6A CN105808151B (zh) | 2014-12-29 | 2014-12-29 | 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808151A CN105808151A (zh) | 2016-07-27 |
CN105808151B true CN105808151B (zh) | 2019-09-27 |
Family
ID=56284166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410837073.6A Active CN105808151B (zh) | 2014-12-29 | 2014-12-29 | 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10572340B2 (zh) |
EP (1) | EP3200063A4 (zh) |
CN (1) | CN105808151B (zh) |
WO (1) | WO2016107272A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853257B1 (en) * | 2016-06-24 | 2020-12-01 | EMC IP Holding Company LLC | Zero detection within sub-track compression domains |
CN106527984A (zh) * | 2016-11-02 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种用于固态硬盘的存储方法及其系统 |
CN106681659A (zh) * | 2016-12-16 | 2017-05-17 | 郑州云海信息技术有限公司 | 数据压缩的方法及装置 |
US10547326B2 (en) * | 2017-01-12 | 2020-01-28 | Proton World International N.V. | Error correction in a flash memory |
CN109144399B (zh) * | 2017-06-16 | 2021-12-17 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及电子设备 |
US10423349B2 (en) * | 2017-08-23 | 2019-09-24 | Western Digital Technologies, Inc. | Logical and physical address field size reduction by alignment-constrained writing technique |
US10831935B2 (en) * | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
CN108241471A (zh) * | 2017-11-29 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘性能的方法 |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
CN110096451B (zh) * | 2018-01-29 | 2023-08-04 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN110557124B (zh) * | 2018-05-30 | 2021-06-22 | 华为技术有限公司 | 一种数据压缩方法及装置 |
KR20200031924A (ko) * | 2018-09-17 | 2020-03-25 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 스토리지 장치 |
US10958416B2 (en) * | 2018-11-26 | 2021-03-23 | International Business Machines Corporation | Encrypted and compressed data transmission with padding |
US10963342B2 (en) | 2019-02-01 | 2021-03-30 | Micron Technology, Inc. | Metadata-assisted encoding and decoding for a memory sub-system |
US11630595B2 (en) * | 2019-03-27 | 2023-04-18 | Alibaba Group Holding Limited | Methods and systems of efficiently storing data |
CN110333965B (zh) * | 2019-05-30 | 2023-05-26 | 深圳市博德越科技有限公司 | 一种固态硬盘控制器装置及固态硬盘数据校验方法 |
CN112162703B (zh) * | 2020-09-25 | 2022-02-22 | 杭州宏杉科技股份有限公司 | 缓存实现方法及缓存管理模块 |
US11917072B2 (en) | 2020-12-03 | 2024-02-27 | International Business Machines Corporation | Implementing opportunistic authentication of encrypted data |
CN113176859B (zh) * | 2021-05-24 | 2022-11-08 | 锐掣(杭州)科技有限公司 | 数据存储方法与装置 |
CN113921076B (zh) * | 2021-09-17 | 2022-09-23 | 北京得瑞领新科技有限公司 | 基于数据压缩的数据处理方法及ssd设备 |
CN114594908B (zh) * | 2022-02-25 | 2024-10-11 | 阿里巴巴(中国)有限公司 | 基于固态硬盘ssd的数据处理方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473308A (zh) * | 2006-05-18 | 2009-07-01 | 矽玛特公司 | 非易失性存储器纠错系统和方法 |
CN102576330A (zh) * | 2009-06-12 | 2012-07-11 | 提琴存储器公司 | 具有持久化无用单元收集机制的存储系统 |
CN102754088A (zh) * | 2009-12-07 | 2012-10-24 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器阵列中的同时后台和前台操作的方法和系统 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802553A (en) * | 1995-12-19 | 1998-09-01 | Intel Corporation | File system configured to support variable density storage and data compression within a nonvolatile memory |
JP2001297038A (ja) * | 2000-04-11 | 2001-10-26 | Toshiba Corp | データ記憶装置および記録媒体並びに記録媒体制御方法 |
US7815469B1 (en) | 2004-02-12 | 2010-10-19 | Super Talent Electronics, Inc. | Dual-personality extended USB plugs and receptacles using with PCBA and cable assembly |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US8533550B2 (en) | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
US8949513B2 (en) * | 2011-05-10 | 2015-02-03 | Marvell World Trade Ltd. | Data compression and compacting for memory devices |
US9146856B2 (en) * | 2012-04-10 | 2015-09-29 | Micron Technology, Inc. | Remapping and compacting in a memory device |
US8990670B2 (en) * | 2012-09-28 | 2015-03-24 | Intel Corporation | Endurance aware error-correcting code (ECC) protection for non-volatile memories |
US9047189B1 (en) * | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
WO2016175842A1 (en) * | 2015-04-30 | 2016-11-03 | Hewlett Packard Enterprise Development Lp | Retrieve data block from determined devices |
-
2014
- 2014-12-29 CN CN201410837073.6A patent/CN105808151B/zh active Active
-
2015
- 2015-11-02 WO PCT/CN2015/093591 patent/WO2016107272A1/zh active Application Filing
- 2015-11-02 EP EP15874957.2A patent/EP3200063A4/en not_active Ceased
-
2017
- 2017-05-03 US US15/585,858 patent/US10572340B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473308A (zh) * | 2006-05-18 | 2009-07-01 | 矽玛特公司 | 非易失性存储器纠错系统和方法 |
CN102576330A (zh) * | 2009-06-12 | 2012-07-11 | 提琴存储器公司 | 具有持久化无用单元收集机制的存储系统 |
CN102754088A (zh) * | 2009-12-07 | 2012-10-24 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器阵列中的同时后台和前台操作的方法和系统 |
CN103488578A (zh) * | 2012-12-28 | 2014-01-01 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
Also Published As
Publication number | Publication date |
---|---|
US10572340B2 (en) | 2020-02-25 |
EP3200063A4 (en) | 2017-11-22 |
US20170235636A1 (en) | 2017-08-17 |
EP3200063A1 (en) | 2017-08-02 |
WO2016107272A1 (zh) | 2016-07-07 |
CN105808151A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808151B (zh) | 固态硬盘存储设备和固态硬盘存储设备的数据存取方法 | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
US10146435B2 (en) | Storage system and data write method | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
EP3051408B1 (en) | Data operating method and device | |
US11544159B2 (en) | Techniques for managing context information for a storage device while maintaining responsiveness | |
CN105893184B (zh) | 一种增量备份方法及装置 | |
CN101482838A (zh) | 基于写时拷贝的数据写入方法及设备 | |
CN104571955A (zh) | 提高存储容量的方法和装置 | |
US20180039422A1 (en) | Solid state storage capacity management systems and methods | |
CN109661655A (zh) | 在芯片删除校正存储器架构中提供存储器带宽压缩 | |
CN107153587B (zh) | 利用数据缩减在高性能直接附接非易失性存储器上进行有效跨设备冗余实现 | |
CN106020735A (zh) | 一种数据存储方法及数据存储装置 | |
CN109445687A (zh) | 一种数据存储方法以及协议服务器 | |
CN108205482B (zh) | 文件挂载恢复方法 | |
CN111625180B (zh) | 数据写入方法及装置、存储介质 | |
US11775194B2 (en) | Data storage method and apparatus in distributed storage system, and computer program product | |
US10740189B2 (en) | Distributed storage system | |
CN101644992B (zh) | 文件系统数据重建的方法和系统 | |
CN107148612A (zh) | 一种扩展用户分区的方法和装置 | |
CN117349075A (zh) | 一种数据处理方法及相关设备 | |
CN105068896A (zh) | 基于raid备份的数据处理方法及装置 | |
WO2019007315A1 (zh) | 闪存设备中数据写入的方法及设备 | |
CN111857547A (zh) | 用于管理数据存储的方法、设备和计算机程序产品 | |
US11435912B2 (en) | Method, electronic device, and computer program product for data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |