CN102662856A - 一种固态硬盘及其存取方法 - Google Patents

一种固态硬盘及其存取方法 Download PDF

Info

Publication number
CN102662856A
CN102662856A CN2012101291946A CN201210129194A CN102662856A CN 102662856 A CN102662856 A CN 102662856A CN 2012101291946 A CN2012101291946 A CN 2012101291946A CN 201210129194 A CN201210129194 A CN 201210129194A CN 102662856 A CN102662856 A CN 102662856A
Authority
CN
China
Prior art keywords
data
physical page
page
packed data
area
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
CN2012101291946A
Other languages
English (en)
Other versions
CN102662856B (zh
Inventor
隋秀峰
李龙
张立新
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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201210129194.6A priority Critical patent/CN102662856B/zh
Publication of CN102662856A publication Critical patent/CN102662856A/zh
Application granted granted Critical
Publication of CN102662856B publication Critical patent/CN102662856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种固态硬盘,其通过闪存转换层对数据进行压缩以及将压缩数据的相关信息保存在闪存物理页的后备区中,可以减少每次实际写入和读出闪存固态盘的数据量,同时减少了由于写操作所引起的擦除操作的次数,延长了固态盘的寿命。而且,数据的读写过程简单方便,没有增加复杂的数据结构,也没有增加缓冲区,无需对传统闪存转换层中的映射表进行任何修改,保证数据读写过程开销低。

Description

一种固态硬盘及其存取方法
技术领域
本发明涉及数据存储领域,具体地,涉及一种存储器及其存取方法。
背景技术
基于NAND闪存(Flash Memory)的固态硬盘(SSD)业已成为遍及消费电子领域到高端企业级系统等多种不同应用的存储解决方案。其原因在于相比于传统的硬盘,SSD具有访问速度快,功耗低,可靠性高,抗震性好,尺寸小,非易失等优点。此外,每字节闪存的价格也在逐渐降低,这意味着硬盘在不久的将来很可能被SSD所取代。
为了将闪存芯片封装成固态硬盘,需要在SSD中增加一个介于文件系统和闪存芯片之间的软件或固件实现的闪存转换层(Flash TranslationLayer,FTL)。其原因在于:闪存的读写以页(例如,2-4K字节)为单位,而且,写操作通常比读操作慢一个数量级。同时,由于闪存不允许覆盖写,因此写操作之前必须先进行擦除操作。擦除操作以块(例如,64-128个页)为粒度,因此与写操作相比更加耗时。这些固有特性极大地降低了闪存的写带宽。另外,闪存的寿命也受限于擦除操作的次数,通常每个闪存块只能进行1万~1百万次擦除。FTL主要用于将来自于文件系统的写请求重定向到处于擦除状态的闪存区更新块,从而弱化“写前擦除”条件的限制。另外,FTL还可以完成逻辑地址到物理地址的映射,垃圾回收等功能。
尽管现有的很多FTL算法可以一定程度上减少写操作导致的擦除操作的次数,提高SSD的性能。但是这些方案大多无法减少写入SSD的数据总量,并且当没有处于擦除状态的空闲块可以重定向某个覆盖写(Overwrite)操作时,就必须进行擦除操作。
为了减少每次实际写入和读出闪存固态盘的数据量,现有技术中也存在一些带有数据压缩功能的FTL,例如2010年8月17日提交的、申请号为201010254409.8的、名称为“带有数据压缩功能的闪存转换层及实现方法”的中国专利申请公开了一种带有数据压缩功能的闪存转换层及实现方法。其中的FTL主要由压缩器、解压器、缓冲区、地址映射管理模块、垃圾回收模块和损耗均衡模块组成。当对闪存进行写操作时,首先将数据写入缓冲区,当缓冲区满后再写入对应的数据页中,这减少了每次实际写入和读出闪存固态盘的数据量,从而提高闪存固态盘的整体读写性能。但是,该申请中需要对传统的映射表结构进行扩展,以标识数据在闪存中的存储位置、以及数据在缓冲区的起始位置和长度等,这样增加了复杂的数据结构,相应地增加了数据读写过程的复杂度,而且其地址映射方案只能采用页级映射方式。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种固态硬盘和其存取方法,在保证数据读写过程开销低的前提下,提高闪存的写操作的带宽,减少对闪存进行擦除操作的次数。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种固态硬盘,该固态硬盘包括闪存转换层和闪存,所述闪存的物理页包括数据区和后备区,所述闪存转换层包括压缩器和解压器,所述压缩器用于将文件系统发送来的数据压缩后写入闪存,并且将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;所述解压器用于根据闪存物理页的后备区中所保存的与压缩数据相关的信息从闪存中读出的数据,并对其进行解压后返回给文件系统,所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号。
上述固态硬盘中,所述闪存的物理页的数据区大小可以为256字节。
上述固态硬盘中,所述物理页的后备区可以保存下列与压缩数据相关的信息:
·FLAG:占用2个比特位,其中一个比特位代表压缩或未压缩,另一个比特位表示压缩数据使用1页或需要跨页;
·EPPN:若压缩数据需要跨页,则该字段EPPN用来指示下一物理页的页号;
·LEN:记录该物理页内有效数据的长度。
上述固态硬盘中,所述闪存转换层还包括映射表,所述映射表可以采用混合映射机制。
上述固态硬盘中,所述压缩器可以将小于一个物理页大小的压缩数据写入一个物理页中并将与该压缩数据相关的信息保存在该物理页的后备区中。
上述固态硬盘中,所述压缩器在压缩数据超过一个物理页大小时,可以将压缩数据中前面的相当于一个物理页大小的部分写入一个物理页中,并设置该物理页后备区中的FLAG、EPPN、LEN字段,所述EPPN字段指示下一物理页的页号,然后,将该压缩数据的剩余部分写入到所述EPPN指示的物理页中并设置该物理页后备区中的FLAG、EPPN、LEN字段。
上述固态硬盘中,压缩数据的剩余部分所写入的物理页可以是按照页级映射的方式进行管理的。
又一个方面,本发明提供一种对上述固态硬盘写入数据的方法,该方法包括:
步骤(1),接收来自上层文件系统的待写入数据并对其进行压缩以得到压缩数据;
步骤(2),将压缩数据写入闪存中,并且将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;
上述方法中,所述步骤(2)可以包括以下步骤:
当压缩数据的长度小于一个物理页大小时,直接将该压缩后数据写入该物理页,并将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号;
当压缩数据的长度大于一个物理页大小时,将该压缩数据前面的相当于物理页大小的部分写入一个物理页中,确定要保存压缩数据的剩余部分的另一个物理页的页号以及将与压缩数据相关的信息保存在所写入的物理页的后备区中;然后将压缩数据的剩余部分写入该另一个物理页中并将与该部分压缩数据相关的信息保存在该页的后备区中。
上述方法中,压缩数据的剩余部分所写入的物理页可以是按照页级映射的方式进行管理的。
又一方面,本发明提供了一种从上述固态硬盘读取数据的方法,该方法包括:
步骤(a)接收上层文件系统发出的读取数据请求;
步骤(b)根据映射表确定保存所要读取的数据的物理页,并获取物理页的后备区中与压缩数据相关的信息;
步骤(c)根据与压缩数据相关的信息,读取数据并将其解压缩后返回给文件系统。
其中,在步骤(c)可以包括以下步骤:
如果所要读取的数据是压缩的数据并且仅保存在该物理页中,则根据该物理页内有效数据长度读取该页内对应长度的数据,将读取的数据解压缩并传回上层文件系统;
如果所要读取的数据是压缩的数据并且需要跨页存储,则读取该物理页的数据,并根据该物理页后备区中保存的跨页存储时下一物理页的页号访问下一个物理页,以及根据所访问的下一个物理页的后备区中与压缩数据相关的信息读取该页内保存的数据,将该数据拼接在所读取的前一物理页的数据之后得到完整数据,最后将拼接后的数据解压缩后返回给文件系统。
与现有技术相比,本发明的优点在于:
通过闪存转换层对数据进行压缩以及将压缩数据的相关信息保存在物理页的后备区中,可以减少每次实际写入和读出闪存固态盘的数据量,同时减少了由于写操作所引起的擦除操作的次数,延长了固态盘的寿命。而且,数据的读写过程简单方便,没有增加复杂的数据结构,也没有增加缓冲区,无需对传统闪存转换层中的映射表进行任何修改,保证数据读写过程开销低。
附图说明
图1是根据本发明实施例的固态硬盘的结构示意图;
图2是根据本发明实施例的物理页的后备区与现有的物理页后备区的对比示意图;
图3是根据本发明优选实施例的混合映射机制下的数据存储示意图;
图4是根据本发明实施例的固态硬盘的写数据流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了根据本发明实施例的固态硬盘的结构示意图。如图1所示,该固态硬盘包括闪存转换层和闪存(例如,NAND闪存)。所述闪存转换层FTL主要包括压缩器、解压器、映射表等。其中,如图1中斜线阴影部分所示,压缩器用于将文件系统发送来的数据压缩后写入闪存并将与该压缩数据相关的信息保存在所写入的闪存物理页的后备区中;解压器用于根据闪存物理页后备区中所保存的压缩数据相关的信息从闪存中读出的数据并对其进行解压后返回给文件系统。闪存的物理页通常包括数据区和后备区(Spare),在后备区中包括空闲的字节,这些空闲字节中的一部分可以用于存储与压缩数据相关的信息,所述与压缩数据相关的信息包括所写入的数据是否是压缩的数据、是否需要跨页存储、该物理页内有效数据的长度以及跨页存储时下一物理页的页号等。本领域普通技术人员应理解,为简明起见,在图1中并没有示出例如涉及闪存转换层中负责回收无效闪存的垃圾回收器的模块、负责均衡对各闪存块擦除次数的损耗均衡器等其他模块。
继续参考图1,在本发明的实施例中,该固态硬盘在FTL中采用了对上层文件系统透明的压缩技术,上层文件系统发来的待写入数据需要经压缩后再写入相应的闪存页(即物理页)中,而上层文件系统要读取的数据则需要经解压缩后才返回文件系统。这样,如果所选择的压缩算法有较大的压缩比(例如,50%),那么固态硬盘的效率将获得大幅度提高。
在本发明的优选实施例中,所选用的压缩算法应该具有较高的效率(例如,具有低解压延迟和高压缩带宽),并尽量将文件系统需写入的数据压缩至一个闪存页内。此外,对于可压缩性差的数据也可以进行跨页存储。对于读取频繁的数据,为了避免解压缩所带来的额外延迟,可以不进行压缩。当然,也可以将全部数据不加区分地进行压缩。例如,由于上层文件系统读写数据的基本单元(sector)为512字节。因此在一个优先实施例中,在固态硬盘中可以选择使用其物理页的数据区大小为256字节的闪存。这样,闪存页的大小至少为文件系统读写基本单元的一半,故每次压缩数据最多仅占据2个闪存页。例如,在该实施例中,可以使用X-Match算法完成对写入数据的压缩和读出数据的解压缩。本领域普通技术人员应理解,除了采用X-Match算法来完成压缩和解压缩,也可以采用其他压缩算法,例如LZ1、LZ77等。
压缩器在将压缩数据写入物理页中的同时,在该物理页的后备区中保存关于该压缩数据的相关信息,例如,是否是压缩的数据、物理页内有效数据的长度、是否需要跨页存储以及跨页存储时下一物理页的页号等。解压器参考在物理页的后备区中保存关于该压缩数据的相关信息,从闪存中读取完整的压缩数据。图2详细示出了根据本发明一个实施例的物理页的后备区与现有的物理页后备区的对比示意图。如图2所示,在根据本发明的实施例的后备区中增加了以下数据项的存储:
●FLAG(标记):压缩数据状态的标识。在该实施例中,其占用2个比特位,其中一个比特位代表:压缩/未压缩(0表示未压缩,1表示压缩),另一个比特为表示:压缩数据使用页数(0表示使用1页,1表示需要跨页)。应指出,在本实施例中是以物理页的大小至少为文件系统读写基本单元的一半为例进行说明的,因此,每次压缩数据最多仅占据2个闪存页。
●EPPN:若数据需要跨页存储,EPPN用来指示下一物理页的页号。
●LEN:表明该页内有效数据的长度。由于压缩后数据的长度不确定,所以通过LEN来记录页内有效数据的长度。
继续参考图1,映射表也是闪存转换层的一个重要组成部分,主要用于完成将来自于文件系统的逻辑地址转换为闪存的物理地址。但是,在本发明的实施例中,由于在物理页的后备区中已经存储了关于压缩数据的相关信息,因此无须对现有的映射表结构进行任何更改,可以利用现有的地址映射方案,例如页级映射、块级映射、混合映射等。其中,页级映射可以将逻辑页号映射为任意的物理页号,虽然可以实现对闪存设备的紧凑有效使用,但是会导致映射表规模过大。在块级映射中,逻辑块号被映射为相应的物理块号,而逻辑页号在块内的偏移量则是固定的。尽管这可以降低映射表的容量,但是由于给定的逻辑页只能映射到相应闪存块的某个特定物理页中,因此找到这一页的概率降低,导致垃圾回收的开销增加。而混合映射是将闪存块划分为数据块和更新块,其中占大多数的数据块使用块级映射,而更新块则使用页级映射,在数据块中的物理页都是按块级映射方式进行管理,而在更新块中的物理页都是按照页级映射进行管理。所有对数据块的覆盖写都重定位到更新块中,当没有空闲更新块可用时,垃圾回收器负责将更新块与数据块合并,因此可以在提高闪存空间利用率的同时保持映射表的容量适中。在混合映射机制中,映射表包括:块地址映射表(BMT),其以逻辑块地址为下标,索引得到其对应的物理块地址;以及页地址映射表(PMT),其以逻辑页地址为下标,索引得到其对应的物理页地址。
图3示出了根据本发明一个优选实施例的在混合映射机制下的数据存储示意图。当上层文件系统每发出一个写操作时,压缩器将待写入的数据进行压缩后并将其存入相应的物理页中。如果压缩后的数据小于物理页大小,压缩器直接将其写入一个物理页中,并将关于该压缩数据的相关信息保存到该物理页的后备区中(例如将FLAG置为10并设置LEN等等)。但是如果压缩后的数据超过一个物理页大小时,压缩器将压缩数据中前面的相当于一个物理页大小的部分写入一个物理页中,例如,将压缩数据的前256字节写入一个物理页。同时,确定要用于保存压缩数据的剩余部分的空闲(即处于擦除状态)的下一个物理页的页号,并在当前所写入的物理页的后备区中通过设置FLAG、EPPN、LEN字段来保存与该压缩数据相关的信息,例如,将FLAG置为11,EPPN字段保存所确定的下一个物理页的页号等。然后,将该压缩数据的剩余部分写入到所述EPPN字段所指示的物理页中并设置该物理页后备区中的FLAG、EPPN、LEN字段(例如将FLAG置为10并设置LEN等等)。
如图3所示,上层文件系统有A、B、C、D四个要写入数据,其逻辑地址分别为5、10、12和19。经压缩后数据大小分别变为251字节、510字节、320字节和128字节,先后被存储到A1、B11、B12、C11、C12、D1物理页中。其中,对于数据A和D,其经压缩后小于256字节,所以仅需一个物理页来存储。由于B和C经压缩后仍然大于256字节,故需要占用两个物理页,例如,第一页位于按照块映射的数据区,第二页则位于按照页映射的EData区。其中,数据区为如上所述的混合映射机制下数据块,而Edata区可以为如上所述的混合映射机制下的更新块,或者也可以是在闪存中划分出的按照页映射管理的存储区域,用于存储压缩数据的剩余部分。
在本发明的又一个实施例中,提供了对上述固态硬盘写入数据的方法,主要包括以下步骤:接收来自上层文件系统的待写入数据并对其进行压缩以得到压缩数据。当压缩数据的长度小于一个物理页大小时,直接将该压缩后数据写入该物理页,并将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号。当压缩数据的长度大于一个物理页大小时,将该压缩数据前面的相当于物理页大小的部分写入一个物理页中,确定要保存压缩数据的剩余部分的另一个物理页的页号以及将与压缩数据相关的信息保存在所写入的物理页的后备区中;然后将压缩数据的剩余部分写入该另一个物理页中并将与该部分压缩数据相关的信息保存在该页的后备区中。其中压缩数据的剩余部分所写入的物理页是按照页级映射的方式进行管理的。
在本发明的又一个实施例中,提供了从上述的固态硬盘读取数据的方法,主要包括以下步骤:接收上层文件系统发出的读取数据请求。根据映射表确定保存所要读取的数据的物理页,并读取该物理页的后备区中与压缩数据相关的信息,所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号。如果所要读取的数据是压缩的数据并且仅保存在该物理页中,则根据物理页内有效数据长度读取该页内对应长度的数据,将读取的数据解压缩并传回上层文件系统。如果所要读取的数据是压缩的数据并且需要跨页存储,则读取该物理页的数据,并根据跨页存储时下一物理页的页号访问下一个物理页,以及根据所访问的下一个物理页的后备区中与压缩数据相关的信息读取该页内保存的数据,将该数据拼接在所读取的前一物理页的数据之后得到完整数据,最后将拼接后的数据解压缩后返回给文件系统。
更具体地,下面详细描述根据本发明优选实施例的固态硬盘的数据存取过程。其中读数据过程包括以下步骤:
(a)接收上层文件系统发出的包括要读取数据的逻辑地址LA的指令,并分别计算逻辑块号lbn和块内偏移量bo;
(b)以lbn为下标读取地址转换表BMT,以BMT[lbn]的值为物理块号,以bo为块内偏移得到数据首页的物理页号。读取该物理页的后备区的FLAG标志;
(c)若FLAG标志为10,则说明数据压缩后存储在唯一页中,根据后备区的LEN字段的值读取该页内对应长度的数据,将读取的数据解压缩并传回上层文件系统;
(d)若FLAG标志为11,则说明数据存储在两页中,读取第一页的数据,并根据后备区的EPPN字段访问第二页数据;
(e)根据第二页后备区的LEN字段的值读取该页内对应长度的数据,将该数据拼接在第一页的数据之后得到完整数据,最后将拼接后的数据解压缩后返回给上层文件系统。
(f)若FLAG标志为01则说明数据未经压缩且存储于两个闪存页中,这类似于传统的未引入压缩机制的闪存转换层,直接按原有流程进行数据的读写操作即可;而FLAG标志为00则是非法的,原因在于在本实施例中未压缩数据必然占据两个闪存页(文件系统的读写单位为512字节,而闪存的物理页的数据区约为256字节)。
图4示出了根据本发明优选实施例的固态硬盘的写数据流程示意图,下面参考图4,详细描述写数据过程,该写过程包括如下步骤:
(1)接收上层文件系统发出的包括待写入数据及其逻辑地址LA的指令,并分别计算逻辑块号lbn和块内偏移量bo;
(2)将要写入的数据进行压缩,得到压缩后数据长度CLEN;
(3)以lbn为下标读取块地址映射表BMT,以BMT[lbn]的值为物理块号pbn,以bo为块内偏移得到要写入数据的物理页号,并确定该逻辑地址是第一次写入还是写更新;
(4)若是第一次被写入,当CLEN<=256字节时,直接将压缩数据写入物理块pbn中bo所确定的页中,同时更新后备区的LEN及FLGA标记;
(5)当CLEN>256字节时,先将压缩数据的首256字节写入pbn和bo所确定的页中并设置该页的后备区的各个相关字段(LEN、FLGA以及EPPN字段),例如可以通过映射表PMT[LA]选择及确定EData区中某个空闲的(即处于擦除状态的)物理页的物理页号,将剩余部分写入EData区的该物理页中,同时更新该页后备区的FLAG,LEN字段。这里Edata区的管理采用页级映射,由PMT完成逻辑页号到物理页号的转换。
(6)若是写更新操作,则可采用与上述相类似的操作将新的压缩数据写入到处于擦除状态的更新块中,超出部分仍然写入Edata区中。
本领域普通技术人员可以理解,除了上面优选实施例所采用的混合映射机制,在其他实施例中也可以采用例如页级映射和块级映射等其他映射机制。本领域技术人员也应理解,在上述实施例的固态硬盘中选择使用闪存页的数据区大小为256字节的闪存仅是较佳的一种选择,在其他实施例中,也可以选择闪存页的数据区大小为128、64、32等字节的闪存。这样每次压缩数据分别例如最多占据4、8、16个闪存页等,但都适用于本发明的上述方法,同样不需要增加任何复杂的数据结构或缓存区,也不需要对映射表进行任何改变。
与现有技术相比,本发明实施例中通过闪存转换层对数据进行压缩以及将压缩数据的相关信息保存在物理页的后备区中,可以减少每次实际写入和读出闪存固态盘的数据量,同时减少了由于写操作所引起的擦除操作的次数,延长了固态盘的寿命。而且,数据的读写过程简单方便,没有增加复杂的数据结构,也没有增加缓冲区,无需对传统闪存转换层中的映射表进行任何修改,保证数据读写过程开销低。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

Claims (12)

1.一种固态硬盘,所述固态硬盘包括闪存转换层和闪存,所述闪存的物理页包括数据区和后备区,所述闪存转换层包括压缩器和解压器,所述压缩器用于将文件系统发送来的数据压缩后写入闪存,并且将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;所述解压器用于根据闪存物理页的后备区中所保存的与压缩数据相关的信息从闪存中读出的数据,并对其进行解压后返回给文件系统,所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号。
2.根据权利要求1所述的固态硬盘,其中,所述闪存的物理页的数据区大小为256字节。
3.根据权利要求2所述的固态硬盘,其中,所述物理页的后备区中保存下列与压缩数据相关的信息:
·FLAG:占用2个比特位,其中一个比特位代表压缩或未压缩,另一个比特位表示压缩数据使用1页或需要跨页;
·EPPN:若压缩数据需要跨页,则该字段EPPN用来指示下一物理页的页号;
·LEN:记录该物理页内有效数据的长度。
4.根据权利要求3所述的固态硬盘,其中所述闪存转换层还包括映射表,所述映射表采用混合映射机制。
5.根据权利要求3或4所述的固态硬盘,其中所述压缩器将小于一个物理页大小的压缩数据写入一个物理页中并将与该压缩数据相关的信息保存在该物理页的后备区中。
6.根据权利要求5所述的固态硬盘,其中所述压缩器在压缩数据超过一个物理页大小时,将压缩数据中前面的相当于一个物理页大小的部分写入一个物理页中,并设置该物理页后备区中的FLAG、EPPN、LEN字段,所述EPPN字段指示下一物理页的页号,然后,将该压缩数据的剩余部分写入到所述EPPN指示的物理页中并设置该物理页后备区中的FLAG、EPPN、LEN字段。
7.根据权利要求6所述的固态硬盘,其中压缩数据的剩余部分所写入的物理页是按照页级映射的方式进行管理的。 
8.一种对上述任一权利要求所述的固态硬盘写入数据的方法,所述方法包括:
步骤(1),接收来自上层文件系统的待写入数据并对其进行压缩以得到压缩数据;
步骤(2),将压缩数据写入闪存中,并且将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中。
9.根据权利要求8的方法,所述步骤(2)包括以下步骤:
当压缩数据的长度小于一个物理页大小时,直接将该压缩后数据写入该物理页,并将与压缩数据相关的信息保存在所写入的闪存物理页的后备区中;所述与压缩数据相关的信息包括是否是压缩的数据、是否需要跨页存储、物理页内有效数据的长度以及跨页存储时下一物理页的页号;
当压缩数据的长度大于一个物理页大小时,将该压缩数据前面的相当于物理页大小的部分写入一个物理页中,确定要保存压缩数据的剩余部分的另一个物理页的页号以及将与压缩数据相关的信息保存在所写入的物理页的后备区中;然后将压缩数据的剩余部分写入该另一个物理页中并将与该部分压缩数据相关的信息保存在该页的后备区中。
10.根据权利要求8或9所述的方法,其中压缩数据的剩余部分所写入的物理页是按照页级映射的方式进行管理的。
11.一种从权利要求1-7之一所述的固态硬盘读取数据的方法,所述方法包括:
步骤(a)接收上层文件系统发出的读取数据请求;
步骤(b)根据映射表确定保存所要读取的数据的物理页,并获取物理页的后备区中与压缩数据相关的信息;
步骤(c)根据与压缩数据相关的信息,读取数据并将其解压缩后返回给文件系统。
12.根据权利要求11所述的方法,在步骤(c)包括以下步骤:
如果所要读取的数据是压缩的数据并且仅保存在该物理页中,则根据该物理页内有效数据长度读取该页内对应长度的数据,将读取的数据解压缩并传回上层文件系统;
如果所要读取的数据是压缩的数据并且需要跨页存储,则读取该物理页的数据,并根据该物理页后备区中保存的跨页存储时下一物理页的页号访问下一个物理页,以及根据所访问的下一个物理页的后备区中与压缩数 据相关的信息读取该页内保存的数据,将该数据拼接在所读取的前一物理页的数据之后得到完整数据,最后将拼接后的数据解压缩后返回给文件系统。 
CN201210129194.6A 2012-04-27 2012-04-27 一种固态硬盘及其存取方法 Active CN102662856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210129194.6A CN102662856B (zh) 2012-04-27 2012-04-27 一种固态硬盘及其存取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210129194.6A CN102662856B (zh) 2012-04-27 2012-04-27 一种固态硬盘及其存取方法

Publications (2)

Publication Number Publication Date
CN102662856A true CN102662856A (zh) 2012-09-12
CN102662856B CN102662856B (zh) 2015-10-28

Family

ID=46772353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210129194.6A Active CN102662856B (zh) 2012-04-27 2012-04-27 一种固态硬盘及其存取方法

Country Status (1)

Country Link
CN (1) CN102662856B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法
CN105094709A (zh) * 2015-08-27 2015-11-25 浪潮电子信息产业股份有限公司 一种固态盘存储系统的动态数据压缩方法
CN105630691A (zh) * 2015-04-29 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及使用物理地址的读写方法
CN105723320A (zh) * 2016-02-01 2016-06-29 华为技术有限公司 数据整理方法、存储设备、存储控制器以及存储阵列
CN106503427A (zh) * 2016-10-12 2017-03-15 创业软件股份有限公司 一种面向医疗大数据处理的固态磁盘存储方法
CN106527984A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种用于固态硬盘的存储方法及其系统
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
CN108153681A (zh) * 2017-11-29 2018-06-12 深圳忆联信息系统有限公司 一种大容量固态硬盘映射表压缩方法
CN108334287A (zh) * 2018-01-30 2018-07-27 江苏华存电子科技有限公司 一种提高闪存每单位写入的资料量的方法及装置
CN109446117A (zh) * 2018-09-06 2019-03-08 杭州电子科技大学 一种固态硬盘页级闪存转换层设计方法
CN109947678A (zh) * 2019-03-26 2019-06-28 联想(北京)有限公司 一种存储装置、电子设备及数据交互方法
CN110309081A (zh) * 2019-06-03 2019-10-08 华侨大学 基于压缩存储和地址映射表项的ftl读写数据页的方法
CN111258498A (zh) * 2019-12-06 2020-06-09 浙江零跑科技有限公司 一种flash存储器管理方法
WO2022213736A1 (zh) * 2021-04-08 2022-10-13 华为技术有限公司 一种将数据写入固态硬盘的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345531A (zh) * 2008-08-19 2009-01-14 北京中星微电子有限公司 Ogg格式码流的数据处理方法
CN101916228A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 带有数据压缩功能的闪存转换层及实现方法
US20110145475A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Reducing access contention in flash-based memory systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345531A (zh) * 2008-08-19 2009-01-14 北京中星微电子有限公司 Ogg格式码流的数据处理方法
US20110145475A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Reducing access contention in flash-based memory systems
CN101916228A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 带有数据压缩功能的闪存转换层及实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUNGJIN LEE等: "Improving Performance and Lifetime of Solid-State Drives Using Hardware-Accelerated Compression", 《IEEE TRANSACTIONS ON CONSUMER ELECTRONICS》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法
CN105630691A (zh) * 2015-04-29 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及使用物理地址的读写方法
CN105094709A (zh) * 2015-08-27 2015-11-25 浪潮电子信息产业股份有限公司 一种固态盘存储系统的动态数据压缩方法
WO2017132797A1 (zh) * 2016-02-01 2017-08-10 华为技术有限公司 数据整理方法、存储设备、存储控制器以及存储阵列
CN105723320A (zh) * 2016-02-01 2016-06-29 华为技术有限公司 数据整理方法、存储设备、存储控制器以及存储阵列
US10585589B2 (en) 2016-02-01 2020-03-10 Huawei Technologies Co., Ltd. Data collation method, storage device, storage controller, and storage array
CN105723320B (zh) * 2016-02-01 2019-03-19 华为技术有限公司 数据整理方法、存储设备、存储控制器以及存储阵列
CN106503427B (zh) * 2016-10-12 2019-01-29 创业软件股份有限公司 一种面向医疗大数据处理的固态磁盘存储方法
CN106503427A (zh) * 2016-10-12 2017-03-15 创业软件股份有限公司 一种面向医疗大数据处理的固态磁盘存储方法
CN106527984A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种用于固态硬盘的存储方法及其系统
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
CN108153681A (zh) * 2017-11-29 2018-06-12 深圳忆联信息系统有限公司 一种大容量固态硬盘映射表压缩方法
CN108334287A (zh) * 2018-01-30 2018-07-27 江苏华存电子科技有限公司 一种提高闪存每单位写入的资料量的方法及装置
CN109446117A (zh) * 2018-09-06 2019-03-08 杭州电子科技大学 一种固态硬盘页级闪存转换层设计方法
CN109446117B (zh) * 2018-09-06 2023-02-28 杭州电子科技大学 一种固态硬盘页级闪存转换层设计方法
CN109947678B (zh) * 2019-03-26 2021-07-16 联想(北京)有限公司 一种存储装置、电子设备及数据交互方法
CN109947678A (zh) * 2019-03-26 2019-06-28 联想(北京)有限公司 一种存储装置、电子设备及数据交互方法
CN110309081A (zh) * 2019-06-03 2019-10-08 华侨大学 基于压缩存储和地址映射表项的ftl读写数据页的方法
CN110309081B (zh) * 2019-06-03 2022-11-01 华侨大学 基于压缩存储和地址映射表项的ftl读写数据页的方法
CN111258498A (zh) * 2019-12-06 2020-06-09 浙江零跑科技有限公司 一种flash存储器管理方法
CN111258498B (zh) * 2019-12-06 2023-08-22 浙江零跑科技股份有限公司 一种flash存储器管理方法
WO2022213736A1 (zh) * 2021-04-08 2022-10-13 华为技术有限公司 一种将数据写入固态硬盘的方法

Also Published As

Publication number Publication date
CN102662856B (zh) 2015-10-28

Similar Documents

Publication Publication Date Title
CN102662856B (zh) 一种固态硬盘及其存取方法
CN110678836B (zh) 用于键值存储的持久性存储器
US10108545B2 (en) Operating shingled magnetic recording device
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US8898371B2 (en) Accessing logical-to-physical address translation data for solid state disks
EP2605142B1 (en) Lba bitmap usage
US8910017B2 (en) Flash memory with random partition
TWI551989B (zh) 快閃儲存系統之管理方法
CN101288054B (zh) 闪存管理方法、系统、存储设备、以及闪存设备
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
CN101241471A (zh) 快闪存储器系统及其垃圾收集方法
US20140101369A1 (en) Methods, devices and systems for physical-to-logical mapping in solid state drives
US20130166828A1 (en) Data update apparatus and method for flash memory file system
US9830106B2 (en) Management of memory array with magnetic random access memory (MRAM)
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
US20170185625A1 (en) Key-value store with partial data access
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive
US11520698B2 (en) Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method
US20100318726A1 (en) Memory system and memory system managing method
CN112882649A (zh) 数据储存装置以及非挥发式存储器控制方法
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
CN103038753B (zh) 用基于日志的缓冲向基于nand存储块的文件系统写入的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20130121

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20130121

Address after: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Applicant after: Institute of Computing Technology, Chinese Academy of Sciences

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Applicant before: Institute of Computing Technology, Chinese Academy of Sciences

C14 Grant of patent or utility model
GR01 Patent grant