CN109582593A - 一种基于计算的ftl地址映射方法及数据读、写方法 - Google Patents

一种基于计算的ftl地址映射方法及数据读、写方法 Download PDF

Info

Publication number
CN109582593A
CN109582593A CN201811307247.2A CN201811307247A CN109582593A CN 109582593 A CN109582593 A CN 109582593A CN 201811307247 A CN201811307247 A CN 201811307247A CN 109582593 A CN109582593 A CN 109582593A
Authority
CN
China
Prior art keywords
logical
lgn
logical groups
group number
ftl
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
CN201811307247.2A
Other languages
English (en)
Other versions
CN109582593B (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.)
Huaqiao University
Original Assignee
Huaqiao University
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 Huaqiao University filed Critical Huaqiao University
Priority to CN201811307247.2A priority Critical patent/CN109582593B/zh
Publication of CN109582593A publication Critical patent/CN109582593A/zh
Application granted granted Critical
Publication of CN109582593B publication Critical patent/CN109582593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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地址映射方法,相比于页映射,减少映射表项大小。对于一个具有224个物理页的固态硬盘,页映射方法中,每个映射表项需消耗24比特;对于本发明,如果划分28个逻辑组,则每个偏移即每个映射表项消耗24‑8=16比特,与页映射方法相比,减少了1/3的消耗。本发明相比于块映射或混合映射,当本发明将逻辑页分配到一个逻辑组中,逻辑组中的任意位置皆可以为其可选位置,因此更灵活高效。由于本发明中减少了每个映射表项大小,因此间接扩展了映射缓存大小,提高命中率和固态硬盘读写性能。

Description

一种基于计算的FTL地址映射方法及数据读、写方法
技术领域
本发明涉及计算机存储领域,更具体地说,涉及一种基于计算的FTL地址映射方法,以及一种数据写方法、一种数据读方法。
背景技术
与传统硬盘相比,基于闪存的固态硬盘具有更高的性能、更低的能耗、更少的噪音以及更强的抗震性。随着近些年闪存技术的快速发展,固态硬盘被广泛的部署于个人电脑和公司的数据中心。
固态硬盘由多片闪存芯片构成、每片闪存芯片包含多个晶圆die、每个晶圆包含多个分组plane、每个分组包含多个块block以及每个块包含多个页面page。读、写、擦除为固态硬盘内部三个最基本的操作。其中读/写操作基于页面进行,而擦除操作则基于块进行。由于闪存不支持就地覆盖写操作,而是需要先擦除所要写入页面所在块的所有数据,才能在原先页面进行写入,这将影响固态硬盘的性能。
因此,固态硬盘内部采用异地更新操作,即一个物理页上的数据需要更新时,固态硬盘首先将新数据写入其他空闲的物理页,然后再将原先数据所在的物理页标记为无效。
由此可知,由主机下发的逻辑页可能被写到固态硬盘内部任意的物理页上。为了方便管理,固态硬盘的闪存转换层FTL将采用地址映射机制管理一张映射表,这张映射表记录了主机下发的逻辑页地址(LPN:Logical Page Number)与物理页地址(PPN:PhysicalPage Number)的映射关系,即映射表项。当固态硬盘得到LPN对应的PPN时,才能完成相应的读操作。FTL通常将映射表中的部分映射关系装载入固态硬盘的映射缓存当中以提升访存性能。
目前为止,已有的地址映射机制有页映射、块映射和混合映射。假设页大小为4KB,包含216个物理块,每个物理块包含28个物理页的固态硬盘,其容量共64GB。
页映射中,一个逻辑页可以被映射到任意一个物理页中,即FTL为每个逻辑页维护一个映射表项,映射表项的大小与物理页数量有关,需要24比特来表示一个映射表项,映射表共24*224比特。
块映射中,一个逻辑块可以映射到任意一个物理块,而逻辑页在逻辑块内的偏移无法选择,且与物理页在物理块内的偏移不变并一致,即FTL为每个逻辑块维护一个映射表项,映射表项的大小与物理块的数量有关,即需要16比特来表示一个映射表项,映射表共16*216比特。
混合映射中,不仅为每个逻辑块维护一个映射表项,还未更新的逻辑页维护一个页映射,并最终进行合并操作,其映射表的大小居于页映射和块映射之间。
对比三种映射关系,页映射机制地址分配灵活高效,但由于其映射表所占空间最大,使得其无法全部装载入内存中;而块映射/混合映射的映射表所占空间较小,然而其映射机制灵活度不高将导致较严重的性能损耗。
发明内容
本发明的目的在于克服现有技术的不足,提供一种即维护了类似于页映射机制的灵活度,又能够减少映射表表项大小的基于计算的FTL地址映射方法,以及一种数据写方法、一种数据读方法。
本发明的技术方案如下:
一种基于计算的FTL地址映射方法,固态硬盘内部的FTL通过逻辑组号计算函数计算上层应用或主机下发给固态硬盘的LPN,得到该LPN对应的逻辑组号;如果该逻辑组号对应的逻辑组内存在空闲的物理页,则将该空闲的物理页在逻辑组内的偏移作为该LPN对应的映射表项。
作为优选,不存储逻辑组号,只将空闲的物理页在逻辑组内的偏移作为LPN对应的映射表项存储于映射表。
作为优选,对于同一个LPN的写操作,通过逻辑组号计算函数,允许得到相同或不同的逻辑组号;对于同一个LPN的读操作,通过逻辑组号计算函数,必须得到与最近一次写操作相同的逻辑组号。
作为优选,当FTL设置多个逻辑组,则所有物理块允许被分配至任意逻辑组。
作为优选,空闲的物理块组成待分配资源池,每次分配时,选取擦写次数最少的物理块至逻辑组。
作为优选,当物理块被分配至逻辑组之后,该物理块不允许再被分配;而在该物理块被垃圾回收之后,该物理块允许再次分配至其他逻辑组。
作为优选,每个逻辑组允许拥有的物理块数量有限并相同;逻辑组内的物理块按照一定顺序组织,并通过逻辑组索引表记录每个逻辑组内所有的物理块地址。
一种数据写方法,利用所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)判断当前逻辑组内是否有空闲的物理页以供写入;如果有,则跳转步骤6),否则执行步骤3);
3)判断当前逻辑组内的物理块数是否达到上限;如果未达上限,则跳转步骤5),否则执行步骤4);
4)对当前逻辑组进行垃圾回收操作;回收的物理块放入待分配资源池,并从待分配资源池中选取一个空闲物理块加入到该逻辑组内被回收的物理块的位置,更新逻辑组索引表对应内容;跳转步骤6);
5)从待分配资源池中选取擦写次数最少的物理块加入该逻辑组内;更新逻辑组索引表对应内容;执行步骤6);
6)当前有空闲的物理页以供该LPN的内容进行写入,FTL分配空闲的物理页供写入,同时将该物理页在逻辑组内的偏移作为映射表项在映射表中存储或更新;
7)写操作完成。
一种数据读方法,利用所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)在映射表中搜索LPN对应的映射表项,并得到在逻辑组内的偏移;
3)通过逻辑组号和偏移,在逻辑组索引表内查找所需物理页所在的PBN;
4)通过逻辑组号和偏移,以及步骤3)中找出的PBN,得到需要访问的PPN;
5)通过步骤4)得到PPN,FTL对该物理页进行读操作,并将读出的数据送回给上层应用或主机;
6)读操作完成。
作为优选,步骤3)具体包括:首先通过逻辑组号找到该逻辑组在逻辑组索引表的起始地址;然后通过i=逻辑组号/偏移,找到该逻辑组内第i块物理块的PBN;
步骤4)具体为:通过j=逻辑组号%偏移,以该PBN的j偏移查找得到所需物理页,进而得到需要访问的PPN。
本发明的有益效果如下:
本发明所述的基于计算的FTL地址映射方法,相比于页映射,减少映射表项大小。对于一个具有224个物理页的固态硬盘,页映射方法中,每个映射表项需消耗24比特;对于本发明,如果划分28个逻辑组,则每个偏移即每个映射表项消耗24-8=16比特,与页映射方法相比,减少了1/3的消耗。
本发明相比于块映射或混合映射,当本发明将逻辑页分配到一个逻辑组中,逻辑组中的任意位置皆可以为其可选位置,因此更灵活高效。
由于本发明中减少了每个映射表项大小,因此间接扩展了映射缓存大小,提高命中率和固态硬盘读写性能。
附图说明
图1是基于计算的FTL地址映射机制的工作流程图(写操作);
图2是基于计算的FTL地址映射机制的工作流程图(读操作);
图3是更详细的基于该地址映射机制的数据写流程图;
图4是更详细的基于该地址映射机制的数据读流程图。
具体实施方式
以下结合附图及实施例对本发明进行进一步的详细说明。
本发明为了解决现有技术中,页映射机制映射表所占空间最大,使得其无法全部装载入内存中;块映射/混合映射的映射机制灵活度不高将导致较严重的性能损耗等不足,提供基于计算的FTL地址映射方法,以及基于所述的基于计算的FTL地址映射方法的数据写方法与数据读方法。所述的基于计算的FTL地址映射方法既类似于页映射的灵活度、又能够像块映射一样减少映射表项大小的新型映射机制,以间接扩展映射表缓存空间,提高映射缓存命中率,进而提升固态硬盘性能。
本发明涉及的逻辑页地址,以下简称为LPN;逻辑块地址,以下简称为LBN;物理页地址,以下简称为PPN;物理块地址,以下简称为PBN;闪存转换层,以下简称为FTL。
本发明所述的基于计算的FTL地址映射方法中,固态硬盘内部的FTL通过逻辑组号计算函数计算上层应用或主机下发给固态硬盘的LPN,得到该LPN对应的逻辑组号;如果该逻辑组号对应的逻辑组内存在空闲的物理页,则将该空闲的物理页在逻辑组内的偏移作为该LPN对应的映射表项,即根据LPN得到[逻辑组号,偏移]。其中,,逻辑组号计算函数Fun可根据具体实施需求进行选择。
其中逻辑组号由计算所得,因此可以不存储逻辑组号,而偏移则作为该LPN的映射表项存储在映射表中,即只将空闲的物理页在逻辑组内的偏移作为LPN对应的映射表项存储于映射表,因此该映射方法可以减少每个映射表项的大小。
为了提高本发明的通用性,逻辑组号计算函数可以只有逻辑页地址一个输入,或者有其他多个输入;对于同一个LPN的写操作,通过逻辑组号计算函数,允许得到相同或不同的逻辑组号;对于同一个LPN的读操作,通过逻辑组号计算函数,必须得到与最近一次写操作相同的逻辑组号,以确保读操作读取的内容即为写操作写入的内容。
当FTL设置多个逻辑组(例如,设定2n个逻辑组),则所有物理块允许被分配至任意逻辑组。空闲的物理块组成待分配资源池,每次分配时,选取擦写次数最少的物理块至逻辑组。
当物理块被分配至逻辑组之后,该物理块不允许再被分配;而在该物理块被垃圾回收之后,该物理块允许再次分配至其他逻辑组,以保证数据内容的安全。
为了简化偏移量的计算与检索,本发明提供相对固定的划分规则,即每个逻辑组允许拥有的物理块数量有限并相同;逻辑组内的物理块按照一定顺序组织,并通过逻辑组索引表记录每个逻辑组内所有的物理块地址。
本实施例中,使用前,所有逻辑组为空,所有物理块组成待分配资源池。虽然固态硬盘划分成等大小的逻辑组,但每个物理块并不属于特定的逻辑组,而是能够被分配给任意的逻辑组。
对于一个从上层应用或主机下发的逻辑页写操作,FTL将该请求所带的LPN作为其中一个输入放入逻辑组号计算函数中,得到其逻辑组号。
根据该逻辑组号,FTL检查相应的逻辑组是否有空闲的物理页存在。
如果存在空闲的物理页,则分配该物理页进行写入操作,同时记录该物理页在逻辑组内的偏移(OFFSET),并将此偏移作为该LPN对应的映射表项。
如果不存在空闲物理页,且逻辑组内物理块数未达到上限,则从待分配资源池中按照磨损均衡策略选取最少擦除次数的物理块给该逻辑组并分配该块的空闲物理页进行写入操作,同时记录物理页在逻辑组内的偏移,并将此偏移作为该LPN对应的映射表项。
如果不存在空闲物理页,且逻辑组内物理块已达到上限,则基于该逻辑组进行垃圾回收操作,将回收的物理块放回待分配资源池中;然后从该池中选取擦写次数最少的物理块放到被回收物理块所在逻辑组中的位置,分配该块空闲物理页进行写入操作,同时记录物理页在逻辑组内的偏移,并将此偏移作为该LPN对应的映射表项。
根据写入操作的过程,FTL需要维护一个逻辑组索引表,该逻辑组索引表为每个逻辑组按顺序记录分配给其的所有PBN,因此每次写入操作都要检查是否需要更新该表。固态硬盘内部将该逻辑组索引表存储在SSD中的SRAM中以加快存储访问。
对于一个从上层应用或主机下发的逻辑页面读操作,FTL将该请求所带的LPN作为其中一个输入放入逻辑组号计算函数中,得到逻辑组号。同时,FTL根据LPN在映射表中查询其偏移(包括映射缓存和闪存),得到该LPN对应的[逻辑组号、偏移]组合。
利用逻辑组号和偏移,在逻辑组索引表内查询LPN对应的物理块位置i,得到其PBN;(i=逻辑组号/偏移,其中,i表示逻辑组内的第i块物理块)。
利用逻辑组号和偏移,得到LPN在PBN内的偏移j(j=逻辑组号%偏移)。
最终得到LPN在固态硬盘内实际存储的物理页面地址PPN,完成读操作。
基于上述数据读、写过程,本发明还提供一种数据写方法,利用所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)判断当前逻辑组内是否有空闲的物理页以供写入;如果有,则跳转步骤6),否则执行步骤3);
3)判断当前逻辑组内的物理块数是否达到上限;如果未达上限,则跳转步骤5),否则执行步骤4);
4)对当前逻辑组进行垃圾回收操作;回收的物理块放入待分配资源池,并从待分配资源池中选取一个空闲物理块加入到该逻辑组内被回收的物理块的位置,更新逻辑组索引表对应内容;跳转步骤6);
5)从待分配资源池中选取擦写次数最少的物理块加入该逻辑组内;更新逻辑组索引表对应内容;执行步骤6);
6)当前有空闲的物理页以供该LPN的内容进行写入,FTL分配空闲的物理页供写入,同时将该物理页在逻辑组内的偏移作为映射表项在映射表中存储或更新;
7)写操作完成。
本发明还提供一种数据读方法,利用所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)在映射表中搜索LPN对应的映射表项,并得到在逻辑组内的偏移;
3)通过逻辑组号和偏移,在逻辑组索引表内查找所需物理页所在的PBN;具体包括:首先通过逻辑组号找到该逻辑组在逻辑组索引表的起始地址;然后通过i=逻辑组号/偏移,找到该逻辑组内第i块物理块的PBN;
4)通过逻辑组号和偏移,以及步骤3)中找出的PBN,得到需要访问的PPN;具体为:通过j=逻辑组号%偏移,以该PBN的j偏移查找得到所需物理页,进而得到需要访问的PPN;
5)通过步骤4)得到PPN,FTL对该物理页进行读操作,并将读出的数据送回给上层应用或主机;
6)读操作完成。
实施例一
如图1、图2所示,本实施例展示基于计算的FTL地址映射机制的工作流程。假设该固态硬盘内部拥有224个物理页,因此对于页映射机制来说,其LPN为24比特,其每个映射表项为24比特。
如图1所示,向00FF00的LPN写入数据内容A;写入后并再次读取LPN:00FF00所对应的内容。具体为:
101、FTL将LPN作为逻辑组号计算函数的输入导入函数中。
逻辑组号计算函数可以根据需要进行设定,例如如果采用冷热识别技术进行逻辑组号计算,则还需要其他输入。
102、通过步骤101得到该LPN应该写入逻辑组0中,则FTL发现逻辑组0的第一个物理块最后一个位置(偏移255)是空闲,并完成数据内容A的写入。
103、将偏移255记录在映射表中。
104、当再次需要读取00FF00的LPN对应数据时,先通过步骤101得到逻辑组号,通过查询映射表得到偏移。
105、利用[逻辑组号,偏移]这一对信息,完成在逻辑组索引表内的查找;
106、得到需要读取LPN对应的物理页地址PPN,完成读操作。
如图2所示,向00FF00的LPN更新数据内容为A’;写入A’后,再次读取该LPN。具体为:
107、FTL将LPN作为逻辑组号计算函数的输入导入函数中,获得其对应的逻辑组号为逻辑组0。
108、此时逻辑组0的第一个物理块已经写满,FTL从待分配资源池中选取物理块B22作为逻辑组0中的第二个物理块,将A’写入该块的第一个物理页,此时该物理页在逻辑组0中的偏移为256。
109、将偏移256记录在映射表中。
110、当再次需要读取00FF00的LPN对应数据时,通过计算得到逻辑组号,通过查找映射表得到偏移。
111、利用[逻辑组号,偏移]这一对信息,完成逻辑组索引表内查找;
112、得到需要读取的LPN对应的物理页PPN,完成读操作。
实施例二
如图3、图4所示,本实施例更详细的解释基于该地址映射机制的读写流程。
如图3所示,写操作流程具体为:
201、对于上层应用或主机下发的一个页面写请求,该请求带有该页面的逻辑地址LPN。因此将该页面的LPN作为逻辑组号计算函数的一个输入,通过计算得到该LPN对应的逻辑组组号。
202、FTL通过扫描该逻辑组内所有物理块的信息,以确认是否存在空闲的物理页。如果当前逻辑组不存在空闲的物理页,则跳转到203;否则,跳转到206。
203、FTL检查该逻辑组内的物理块数量是否到达系统设定的逻辑组内最大的物理块数。如果没有达到限定数目,则跳转到204;否则跳转到205;
204、当前逻辑组内的物理块数未到限定数目,但也未有空闲的物理页供写入。因此,FTL从待分配资源池中选择擦写次数最少的物理块放入逻辑组的已有物理块队尾位置;跳转到206。
205、当前逻辑组内的物理块达到限定数目,且未有空闲的物理页供写入。因此,FTL首先对该逻辑组出发垃圾回收操作,并将回收的一个物理块放回待分配资源池中;然后,从待分配资源池中选取擦写次数最少的物理块放入逻辑组中被回收的物理块的位置;跳转到206。
206、当前表示已有空闲的物理页供写入。因此,FTL首先分配空闲的物理页PPN给该LPN进行写入操作;同时,将该物理页在逻辑组内的偏移作为映射表项记录/更新在映射表及映射缓存中。
207、针对该LPN的写操作完成。
如图4所示,读操作流程具体为:
208、对于上层应用或主机下发的一个页面读请求,该请求带有该页面的逻辑地址LPN。因此FTL将该页面的LPN作为逻辑组号计算函数的一个输入,通过计算得到该LPN对应的逻辑组组号。
209、FTL在映射表(包括映射缓存和闪存)中查找LPN对应的映射表项,并得到偏移。
其中,步骤208、步骤209可以并行进行,减少时延。
210、通过208和209,FTL得到[逻辑组号,偏移]这两部分信息。
211、FTL通过逻辑组号和偏移,在逻辑组索引表内查询该LPN对应的物理页所在的物理块号信息。具体操作为:首先利用逻辑组号找到该组在逻辑组索引表的起始位置;然后FTL通过i=逻辑组号/偏移,找到第i块物理块的块号信息。
212、FTL通过步骤211找到的物理块号地址PBN,以及[逻辑组号,偏移],得到LPN对应的真正物理页地址PPN。具体操作为:首先通过j=逻辑组号%偏移,得到该物理页在物理块的内的偏移;最终通过PBN和j得到真正物理页地址PPN。
213、由步骤212得到的物理页地址PPN,完成页面读操作。
214、针对该LPN的读操作完成。
上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。

Claims (10)

1.一种基于计算的FTL地址映射方法,其特征在于,固态硬盘内部的FTL通过逻辑组号计算函数计算上层应用或主机下发给固态硬盘的LPN,得到该LPN对应的逻辑组号;如果该逻辑组号对应的逻辑组内存在空闲的物理页,则将该空闲的物理页在逻辑组内的偏移作为该LPN对应的映射表项。
2.根据权利要求1所述的基于计算的FTL地址映射方法,其特征在于,不存储逻辑组号,只将空闲的物理页在逻辑组内的偏移作为LPN对应的映射表项存储于映射表。
3.根据权利要求1所述的基于计算的FTL地址映射方法,其特征在于,对于同一个LPN的写操作,通过逻辑组号计算函数,允许得到相同或不同的逻辑组号;对于同一个LPN的读操作,通过逻辑组号计算函数,必须得到与最近一次写操作相同的逻辑组号。
4.根据权利要求1所述的基于计算的FTL地址映射方法,其特征在于,当FTL设置多个逻辑组,则所有物理块允许被分配至任意逻辑组。
5.根据权利要求4所述的基于计算的FTL地址映射方法,其特征在于,空闲的物理块组成待分配资源池,每次分配时,选取擦写次数最少的物理块至逻辑组。
6.根据权利要求4所述的基于计算的FTL地址映射方法,其特征在于,当物理块被分配至逻辑组之后,该物理块不允许再被分配;而在该物理块被垃圾回收之后,该物理块允许再次分配至其他逻辑组。
7.根据权利要求4所述的基于计算的FTL地址映射方法,其特征在于,每个逻辑组允许拥有的物理块数量有限并相同;逻辑组内的物理块按照一定顺序组织,并通过逻辑组索引表记录每个逻辑组内所有的物理块地址。
8.一种数据写方法,其特征在于,利用权利要求1至7任一项所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)判断当前逻辑组内是否有空闲的物理页以供写入;如果有,则跳转步骤6),否则执行步骤3);
3)判断当前逻辑组内的物理块数是否达到上限;如果未达上限,则跳转步骤5),否则执行步骤4);
4)对当前逻辑组进行垃圾回收操作;回收的物理块放入待分配资源池,并从待分配资源池中选取一个空闲物理块加入到该逻辑组内被回收的物理块的位置,更新逻辑组索引表对应内容;跳转步骤6);
5)从待分配资源池中选取擦写次数最少的物理块加入该逻辑组内;更新逻辑组索引表对应内容;执行步骤6);
6)当前有空闲的物理页以供该LPN的内容进行写入,FTL分配空闲的物理页供写入,同时将该物理页在逻辑组内的偏移作为映射表项在映射表中存储或更新;
7)写操作完成。
9.一种数据读方法,其特征在于,利用权利要求1至7任一项所述的方法形成基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)在映射表中搜索LPN对应的映射表项,并得到在逻辑组内的偏移;
3)通过逻辑组号和偏移,在逻辑组索引表内查找所需物理页所在的PBN;
4)通过逻辑组号和偏移,以及步骤3)中找出的PBN,得到需要访问的PPN;
5)通过步骤4)得到PPN,FTL对该物理页进行读操作,并将读出的数据送回给上层应用或主机;
6)读操作完成。
10.根据权利要求9所述的数据读方法,其特征在于,步骤3)具体包括:首先通过逻辑组号找到该逻辑组在逻辑组索引表的起始地址;然后通过i=逻辑组号/偏移,找到该逻辑组内第i块物理块的PBN;
步骤4)具体为:通过j=逻辑组号%偏移,以该PBN的j偏移查找得到所需物理页,进而得到需要访问的PPN。
CN201811307247.2A 2018-11-05 2018-11-05 一种基于计算的ftl地址映射读、写方法 Active CN109582593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811307247.2A CN109582593B (zh) 2018-11-05 2018-11-05 一种基于计算的ftl地址映射读、写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811307247.2A CN109582593B (zh) 2018-11-05 2018-11-05 一种基于计算的ftl地址映射读、写方法

Publications (2)

Publication Number Publication Date
CN109582593A true CN109582593A (zh) 2019-04-05
CN109582593B CN109582593B (zh) 2022-09-30

Family

ID=65921443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811307247.2A Active CN109582593B (zh) 2018-11-05 2018-11-05 一种基于计算的ftl地址映射读、写方法

Country Status (1)

Country Link
CN (1) CN109582593B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597741A (zh) * 2019-08-23 2019-12-20 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN111177034A (zh) * 2019-12-27 2020-05-19 鸿秦(北京)科技有限公司 一种固态硬盘的自适应ftl算法
CN111258924A (zh) * 2020-01-17 2020-06-09 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法
CN111338989A (zh) * 2020-02-12 2020-06-26 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN112463055A (zh) * 2020-11-27 2021-03-09 苏州浪潮智能科技有限公司 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
CN113094004A (zh) * 2021-05-13 2021-07-09 深圳市得一微电子有限责任公司 一种存储设备中针对特定规律数据镜像映射优化处理方法
CN114546296A (zh) * 2022-04-25 2022-05-27 武汉麓谷科技有限公司 一种基于zns固态硬盘的全闪存系统和地址映射方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189490A1 (en) * 2007-02-06 2008-08-07 Samsung Electronics Co., Ltd. Memory mapping
KR20100114305A (ko) * 2009-04-15 2010-10-25 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN103827837A (zh) * 2012-08-22 2014-05-28 华为技术有限公司 访问固态硬盘空间的方法、装置及系统
CN106547703A (zh) * 2016-10-08 2017-03-29 华中科技大学 一种基于块组结构的ftl优化方法
CN106990925A (zh) * 2017-05-10 2017-07-28 忆正科技(武汉)有限公司 一种缩小固态硬盘内rblock容量的方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189490A1 (en) * 2007-02-06 2008-08-07 Samsung Electronics Co., Ltd. Memory mapping
KR20100114305A (ko) * 2009-04-15 2010-10-25 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN103827837A (zh) * 2012-08-22 2014-05-28 华为技术有限公司 访问固态硬盘空间的方法、装置及系统
CN106547703A (zh) * 2016-10-08 2017-03-29 华中科技大学 一种基于块组结构的ftl优化方法
CN106990925A (zh) * 2017-05-10 2017-07-28 忆正科技(武汉)有限公司 一种缩小固态硬盘内rblock容量的方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董萍等: "一种改进型的SSD FTL算法", 《西北师范大学学报(自然科学版)》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597741A (zh) * 2019-08-23 2019-12-20 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN110597741B (zh) * 2019-08-23 2021-09-10 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN111177034A (zh) * 2019-12-27 2020-05-19 鸿秦(北京)科技有限公司 一种固态硬盘的自适应ftl算法
CN111258924B (zh) * 2020-01-17 2021-06-08 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法
CN111258924A (zh) * 2020-01-17 2020-06-09 中国科学院国家空间科学中心 一种基于星载固态存储系统自适应闪存转换层的映射方法
CN111338989A (zh) * 2020-02-12 2020-06-26 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN112148631B (zh) * 2020-09-25 2023-05-26 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN112463055A (zh) * 2020-11-27 2021-03-09 苏州浪潮智能科技有限公司 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
CN112463055B (zh) * 2020-11-27 2023-01-06 苏州浪潮智能科技有限公司 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
CN113094004A (zh) * 2021-05-13 2021-07-09 深圳市得一微电子有限责任公司 一种存储设备中针对特定规律数据镜像映射优化处理方法
CN113094004B (zh) * 2021-05-13 2023-11-03 得一微电子股份有限公司 一种存储设备中针对特定规律数据镜像映射优化处理方法
CN114546296A (zh) * 2022-04-25 2022-05-27 武汉麓谷科技有限公司 一种基于zns固态硬盘的全闪存系统和地址映射方法
CN114546296B (zh) * 2022-04-25 2022-07-01 武汉麓谷科技有限公司 一种基于zns固态硬盘的全闪存系统和地址映射方法

Also Published As

Publication number Publication date
CN109582593B (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN109582593A (zh) 一种基于计算的ftl地址映射方法及数据读、写方法
CN106547703B (zh) 一种基于块组结构的ftl优化方法
CN102819496B (zh) 闪存ftl的地址转换方法
CN104298610B (zh) 资料储存系统及其管理方法
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
CN103425600B (zh) 一种固态盘闪存转换层中的地址映射方法
CN104461393B (zh) 一种闪存存储器的混合映射方法
CN103019958B (zh) 使用数据属性来管理固态存储器里的数据的方法
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
KR100789406B1 (ko) 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
CN104268094B (zh) 一种优化的闪存地址映射方法
CN101980177B (zh) 一种操作Flash的方法和装置
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
US20120254574A1 (en) Multi-layer memory system
CN105718206B (zh) 能够感知raid的闪存转换层及其实现方法
CN106201916B (zh) 一种面向ssd的非易失缓存方法
CN103092766A (zh) 一种用于nand flash的均衡损耗实现方法
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
CN104598386B (zh) 通过追踪和利用二级映射索引重复利用固态驱动器块
CN109783398A (zh) 一种基于相关感知页面级ftl固态硬盘性能优化方法
CN106354658B (zh) 一种降低混合映射算法中映射表内存资源占用的方法
CN109840218A (zh) 有效数据管理方法以及存储控制器
CN102004697B (zh) 一种Flash的回收方法和装置

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
GR01 Patent grant
GR01 Patent grant