CN111177034A - 一种固态硬盘的自适应ftl算法 - Google Patents

一种固态硬盘的自适应ftl算法 Download PDF

Info

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
Application number
CN201911374521.2A
Other languages
English (en)
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.)
Hongqin Beijing Technology Co ltd
Original Assignee
Hongqin Beijing Technology Co ltd
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 Hongqin Beijing Technology Co ltd filed Critical Hongqin Beijing Technology Co ltd
Priority to CN201911374521.2A priority Critical patent/CN111177034A/zh
Publication of CN111177034A publication Critical patent/CN111177034A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory 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算法
技术领域
本发明属于固态硬盘读写技术领域,更具体地说,涉及一种固态硬盘的自适应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的整数次幂。
CN201911374521.2A 2019-12-27 2019-12-27 一种固态硬盘的自适应ftl算法 Pending CN111177034A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064552A (zh) * 2021-03-24 2021-07-02 山东华芯半导体有限公司 一种自主分离的NVMe PRP获取加速方法

Citations (11)

* Cited by examiner, † Cited by third party
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 杭州电子科技大学 一种固态硬盘地址映射的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
董萍: "一种改进型SSD FTL算法" *

Cited By (1)

* Cited by examiner, † Cited by third party
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