CN111177034A - 一种固态硬盘的自适应ftl算法 - Google Patents
一种固态硬盘的自适应ftl算法 Download PDFInfo
- Publication number
- CN111177034A CN111177034A CN201911374521.2A CN201911374521A CN111177034A CN 111177034 A CN111177034 A CN 111177034A CN 201911374521 A CN201911374521 A CN 201911374521A CN 111177034 A CN111177034 A CN 111177034A
- Authority
- CN
- China
- Prior art keywords
- ftl
- data
- solid state
- length
- adaptive
- 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.)
- Pending
Links
- 239000007787 solid Substances 0.000 title claims abstract description 33
- 238000013507 mapping Methods 0.000 claims abstract description 5
- 230000003044 adaptive effect Effects 0.000 claims description 8
- 230000003321 amplification Effects 0.000 abstract description 5
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 5
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种固态硬盘的自适应FTL算法,步骤如下:在向FLASH写入数据时,通过分析SATA HOST/NVMEHOST的写入命令中的数据长度,动态生成FTL表项,然后进行数据写入;固态硬盘的主控制器,接收到相应的写入命令时,根据解析出来的数据长度,生成新的FTL映射表项,然后向相应的物理地址写入数据;对于数据读取操作,如果读取位置恰好与写入时对其,则其操作最为简单,直接查找对应的FTL表项即可;如果读取的起始位置不与写入时对其,则可以查询FTL后,根据偏移长度在物理地址上叠加相应偏移即可完成寻址。本发明提高了固态硬盘的内存的使用率,空间使用率高,不会出现山村写放大等异常情况,大大厰了闪存的寿命。
Description
技术领域
本发明属于固态硬盘读写技术领域,更具体地说,涉及一种固态硬盘的自适应FTL算法。
背景技术
传统的机械是硬盘,一直采用512字节为最小操作单位(LBA或扇区),固态硬盘为了向下兼容,也采用了512字节扇区的概念。然而固态硬盘采用Flash作为底层存储介质,其最小操作单位为“页”,页的大小(通常为4KB~16KB,扇区的8~32倍)远比扇区大。目前的固态电子盘普遍采用了FTL(FlashTranslationLayer闪存转换层)技术,实现逻辑扇区(LBA,逻辑扇区地址)与Flash的页(物理扇区地址)映射。
而由于Flash操作的最小单位是页,采用过小的扇区定义,不仅性能低下、浪费空间,还会导致闪存写放大等问题,降低闪存寿命。
由于现有的计算机文件系统、SATA传输协议、NVMe传输协议等仍然是以512字节扇区为最小操作单元,这个取值也不能随意变更。
发明内容
针对现有技术存在的不足,本发明的目的在于提供了一种固态硬盘的自适应FTL算法,大大提高了固态硬盘的性能的提高,提高了固态硬盘的内存的使用率,空间使用率高,不会出现山村写放大等异常情况,大大厰了闪存的寿命。
为实现上述目的,本发明提供了如下技术方案:
一种固态硬盘的自适应FTL算法,其特征在于:
固定硬盘包括固态硬盘控制器以及与其相连接的DRAM和FLASH,其中,所述固态硬盘控制器为集成封装为单颗芯片,至少包括CPU、主控接口控制器、DRAM控制器、闪存控制器和缓存单元;
自适应FTL算法的步骤如下:
在向FLASH写入数据时,通过分析SATA HOST/NVMEHOST的写入命令中的数据长度,动态生成FTL表项,然后进行数据写入;
固态硬盘的主控制器,接收到相应的写入命令时,根据解析出来的数据长度,生成新的FTL映射表项,然后向相应的物理地址写入数据;
对于数据读取操作,如果读取位置恰好与写入时对其,则其操作最为简单,直接查找对应的FTL表项即可;如果读取的起始位置不与写入时对其,则可以查询FTL后,根据偏移长度在物理地址上叠加相应偏移即可完成寻址,也不会显著恶化读取操作的性能。
作为一种优化的技术方案,通过SATA或NVMe接口,向固态电子盘写入数据时,其命令中是包含长度信息的。
作为一种优化的技术方案,SATA的DMA写命令(WRITEFPDMAQUEUED)中,包含有写入的扇区数(Sectorcount)以及写入的起始扇区(LBA,48bit数据)。
作为一种优化的技术方案,在NVME的读写操作中,主要以SGL链表的形式下发命令(SubmissionQueue),其中也有首地址和长度字段,分别对应起始LBA和扇区数。
作为一种优化的技术方案,为了便于寻址,每个FTL表项所包含的数据长度,通常定义为传统扇区(512字节)的2的整数次幂倍。
作为一种优化的技术方案,对于单次写入的数据长度不是扇区长度整数次幂的情况,主控制器采用相应的算法,将单次写入进行分拆,拆解成尽量少的FTL表项个数,且每个长度均为扇区长度的2的整数次幂。
由于采用了上述技术方案,与现有技术相比,本发明大大提高了固态硬盘的性能的提高,提高了固态硬盘的内存的使用率,空间使用率高,不会出现山村写放大等异常情况,大大厰了闪存的寿命。
具体实施方式
实施例
固定硬盘,包括固态硬盘控制器以及与其相连接的DRAM和FLASH。
其中,所述固态硬盘控制器为集成封装为单颗芯片,至少包括CPU、主控接口控制器、DRAM控制器、闪存控制器和缓存单元。
一种自适应FTL算法的步骤如下:
在向FLASH写入数据时,通过分析SATA HOST/NVMEHOST的写入命令中的数据长度,动态生成FTL表项,然后进行数据写入。
固态硬盘的主控制器,接收到相应的写入命令时,根据解析出来的数据长度,生成新的FTL映射表项,然后向相应的物理地址写入数据。
对于数据读取操作,如果读取位置恰好与写入时对其,则其操作最为简单,直接查找对应的FTL表项即可;如果读取的起始位置不与写入时对其,则可以查询FTL后,根据偏移长度在物理地址上叠加相应偏移即可完成寻址,也不会显著恶化读取操作的性能。
当计算机或者主机等通过SATA或NVMe接口,向固态电子盘写入数据时,其命令中是包含长度信息的。
SATA的DMA写命令(WRITE FPDMA QUEUED)中,包含有写入的扇区数(Sectorcount)以及写入的起始扇区(LBA,48bit数据)。
在NVME的读写操作中,主要以SGL链表的形式下发命令(Submission Queue),其中也有首地址和长度字段,分别对应起始LBA和扇区数。
为了便于寻址,每个FTL表项所包含的数据长度,通常定义为传统扇区(512字节)的2的整数次幂倍。
对于单次写入的数据长度不是扇区长度整数次幂的情况,主控制器采用相应的算法,将单次写入进行分拆,拆解成尽量少的FTL表项个数,且每个长度均为扇区长度的2的整数次幂。
为了在ASCII/FPGA中高效实现此操作,算法采用查表与减法相结合的操作。即预存2的整数次幂表格,得到写入长度后查表找到不大于写入长度的最大项,然后用写入长度减去该项取值,继续查找,以此类推,直到最后余数为0或1结束。
对于读取操作,固态盘主控制器还会采用DRAM缓冲机制提高响应速度,因此读取性能几乎不受影响。
本发明大大提高了固态硬盘的性能的提高,提高了固态硬盘的内存的使用率,空间使用率高,不会出现山村写放大等异常情况,大大厰了闪存的寿命。
本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种固态硬盘的自适应FTL算法,其特征在于:
固定硬盘包括固态硬盘控制器以及与其相连接的DRAM和FLASH,其中,所述固态硬盘控制器为集成封装为单颗芯片,至少包括CPU、主控接口控制器、DRAM控制器、闪存控制器和缓存单元;
自适应FTL算法的步骤如下:
在向FLASH写入数据时,通过分析SATA HOST/NVMEHOST的写入命令中的数据长度,动态生成FTL表项,然后进行数据写入;
固态硬盘的主控制器,接收到相应的写入命令时,根据解析出来的数据长度,生成新的FTL映射表项,然后向相应的物理地址写入数据;
对于数据读取操作,如果读取位置恰好与写入时对其,则其操作最为简单,直接查找对应的FTL表项即可;如果读取的起始位置不与写入时对其,则可以查询FTL后,根据偏移长度在物理地址上叠加相应偏移即可完成寻址,也不会显著恶化读取操作的性能。
2.根据权利要求1所述的一种固态硬盘的自适应FTL算法,其特征在于:通过SATA或NVMe接口,向固态电子盘写入数据时,其命令中是包含长度信息的。
3.根据权利要求2所述的一种固态硬盘的自适应FTL算法,其特征在于:SATA的DMA写命令(WRITE FPDMA QUEUED)中,包含有写入的扇区数(Sector count)以及写入的起始扇区(LBA,48bit数据)。
4.根据权利要求3所述的一种固态硬盘的自适应FTL算法,其特征在于:在NVME的读写操作中,主要以SGL链表的形式下发命令(Submission Queue),其中也有首地址和长度字段,分别对应起始LBA和扇区数。
5.根据权利要求4所述的一种固态硬盘的自适应FTL算法,其特征在于:为了便于寻址,每个FTL表项所包含的数据长度,通常定义为传统扇区(512字节)的2的整数次幂倍。
6.根据权利要求5所述的一种固态硬盘的自适应FTL算法,其特征在于:对于单次写入的数据长度不是扇区长度整数次幂的情况,主控制器采用相应的算法,将单次写入进行分拆,拆解成尽量少的FTL表项个数,且每个长度均为扇区长度的2的整数次幂。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911374521.2A CN111177034A (zh) | 2019-12-27 | 2019-12-27 | 一种固态硬盘的自适应ftl算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911374521.2A CN111177034A (zh) | 2019-12-27 | 2019-12-27 | 一种固态硬盘的自适应ftl算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111177034A true CN111177034A (zh) | 2020-05-19 |
Family
ID=70650382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911374521.2A Pending CN111177034A (zh) | 2019-12-27 | 2019-12-27 | 一种固态硬盘的自适应ftl算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177034A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064552A (zh) * | 2021-03-24 | 2021-07-02 | 山东华芯半导体有限公司 | 一种自主分离的NVMe PRP获取加速方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279712A (zh) * | 2011-08-10 | 2011-12-14 | 北京百度网讯科技有限公司 | 一种适用于互联网存储系统的存储控制方法、系统和装置 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103440206A (zh) * | 2013-07-25 | 2013-12-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
US20160041904A1 (en) * | 2014-08-05 | 2016-02-11 | Netapp, Inc. | File system indirection technique for directly managing solid state devices |
US20170091115A1 (en) * | 2015-09-25 | 2017-03-30 | Beijing Lenovo Software Ltd. | Method and electronic device for a mapping table in a solid-state memory |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN109582593A (zh) * | 2018-11-05 | 2019-04-05 | 华侨大学 | 一种基于计算的ftl地址映射方法及数据读、写方法 |
CN109992530A (zh) * | 2019-03-01 | 2019-07-09 | 晶天电子(深圳)有限公司 | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
-
2019
- 2019-12-27 CN CN201911374521.2A patent/CN111177034A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279712A (zh) * | 2011-08-10 | 2011-12-14 | 北京百度网讯科技有限公司 | 一种适用于互联网存储系统的存储控制方法、系统和装置 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103440206A (zh) * | 2013-07-25 | 2013-12-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
US20160041904A1 (en) * | 2014-08-05 | 2016-02-11 | Netapp, Inc. | File system indirection technique for directly managing solid state devices |
US20170091115A1 (en) * | 2015-09-25 | 2017-03-30 | Beijing Lenovo Software Ltd. | Method and electronic device for a mapping table in a solid-state memory |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN109582593A (zh) * | 2018-11-05 | 2019-04-05 | 华侨大学 | 一种基于计算的ftl地址映射方法及数据读、写方法 |
CN109992530A (zh) * | 2019-03-01 | 2019-07-09 | 晶天电子(深圳)有限公司 | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
Non-Patent Citations (1)
Title |
---|
董萍: "一种改进型SSD FTL算法" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064552A (zh) * | 2021-03-24 | 2021-07-02 | 山东华芯半导体有限公司 | 一种自主分离的NVMe PRP获取加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107624179B (zh) | 高效固态驱动器数据压缩方案和布局 | |
CN107797759B (zh) | 访问缓存信息的方法、装置与驱动器 | |
TWI585770B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
CN107797760B (zh) | 一种访问缓存信息的方法、装置与固态驱动器 | |
CN101604548B (zh) | 一种固态硬盘及数据存储方法 | |
US20100191896A1 (en) | Solid state drive controller with fast NVRAM buffer and non-volatile tables | |
US20120159286A1 (en) | Data transmission device, memory control device, and memory system | |
CN103744611A (zh) | 基于固态硬盘为缓存的计算机系统及缓存加速方法 | |
US20130339576A1 (en) | Method for constructing address mapping table of solid state drive | |
CN107179877B (zh) | 数据传输方法、存储器控制电路单元与存储器存储装置 | |
WO2020248798A1 (zh) | 智能识别非易失存储介质不可靠块的方法与装置 | |
CN101645043A (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN103198021B (zh) | 一种提高固态硬盘数据传输效率的方法 | |
CN106802777A (zh) | 一种用于固态存储设备的闪存转换层控制方法 | |
EP3553665A1 (en) | Non-volatile memory access method, device, and system | |
CN112764669B (zh) | 一种硬件加速器 | |
CN110321081B (zh) | 一种闪存读缓存的方法及其系统 | |
CN101192195B (zh) | 电子硬盘的存储空间的分组管理方法 | |
CN111177034A (zh) | 一种固态硬盘的自适应ftl算法 | |
CN103617008A (zh) | 车载视频监控终端的双sd卡多媒体文件存储系统及方法 | |
CN103019963A (zh) | 一种高速缓存的映射方法及存储设备 | |
CN111352865B (zh) | 存储控制器的写缓存 | |
CN111026678B (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
CN110275678B (zh) | 一种基于stt-mram的固态存储器件随机访问性能提升方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |
|
RJ01 | Rejection of invention patent application after publication |