CN107832236A - 一种提高固态硬盘写性能的方法 - Google Patents
一种提高固态硬盘写性能的方法 Download PDFInfo
- Publication number
- CN107832236A CN107832236A CN201711002232.0A CN201711002232A CN107832236A CN 107832236 A CN107832236 A CN 107832236A CN 201711002232 A CN201711002232 A CN 201711002232A CN 107832236 A CN107832236 A CN 107832236A
- Authority
- CN
- China
- Prior art keywords
- data
- lba
- state hard
- lba information
- circular list
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 239000007787 solid Substances 0.000 title claims abstract description 15
- 238000007599 discharging Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000003321 amplification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000009286 beneficial effect 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
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
本发明公开了一种提高固态硬盘写性能的方法,其特征在于固态硬盘控制器中的写数据缓存的信息通过LBA信息循环列表来记录数据缓存中缓存的LBA信息,LBA信息循环列表包括队头和队尾,固态硬盘控制器按接收到主机写指令顺序直接将主机写数据指令的数据缓存到数据缓存中,并将该写数据指令的数据的LBA加入到LBA信息循环列表的队头,不再检索LBA信息循环列表是否存在相同逻辑块地址LBA信息。通过省略数据写入时前置的遍历LBA表的操作,降低主机写数据操作的等待响应时间,直接写入,时间复杂度为O(1),大大降低了写命令的响应时间。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘写性能的方法。
背景技术
固态硬盘(SSD)中主机发起的数据先缓存在data cache(DRAM)中,data cache的管理策略需要保证数据的一致性,即1.如果后续主机又下发了相同逻辑地址(LBA)的数据到data cache,最终写到存储介质(主流介质为Nand Flash)的数据必须为最后一次主机下发的数据;2.如果主机下发多次相同LBA的数据至data cache后下发读该LBA的命令,那么SSD返回给主机的数据也必须是最后一次写入的数据。
常规技术采用数据唯一性算法:即同一LBA的数据在data cache中有且只有一份,在该算法下主机下发写数据到data cache时需要遍历cache中该LBA是否之前写过,如果写过则覆盖旧数据。图1是常规技术的线性缓存列表图示;以图1为例说明,缓存中存储有LBA0~LBA7一共缓存有8个逻辑数据块,当主机新写入LBA5(新)时,需要遍历LBA0~LBA7查找到缓存中是否已经缓存有LBA5如果有则将LBA5(新)的数据更新到LBA5中。该算法的缺点是每次主机的写数据都要遍历一次data cache,算法的时间开销大,影响写性能。
发明内容
针对以上缺陷,本发明目的是如何提高固态硬盘写入的速度。
为了解决以上问题本发明提出了一种提高固态硬盘写性能的方法,其特征在于固态硬盘控制器中的写数据缓存的信息通过LBA信息循环列表来记录数据缓存中缓存的LBA信息,LBA信息循环列表包括队头和队尾,固态硬盘控制器按接收到主机写指令顺序直接将主机写数据指令的数据缓存到数据缓存中,并将该写数据指令的数据的LBA加入到LBA信息循环列表的队头,不再检索LBA信息循环列表是否存在相同逻辑块地址LBA信息。
所述的提高固态硬盘写性能的方法,其特征在于固态硬盘控制器接受到主机读数据指令时,从LBA信息循环列表的队头向队尾方向检索是否存在相同逻辑块地址LBA的数据缓存,检索到LBA信息循环列表中第一个相同逻辑块地址的数据对应的数据缓存数据为本次主机读数据指令所需的数据。
所述的提高固态硬盘写性能的方法,其特征在于固态硬盘控制器后台根据缓存LBA信息循环列表的队尾向队头方向将数据缓存中的数据刷新到NAND FLASH中,将数据刷新到NAND FLASH中后将LBA信息循环列表该LBA信息删除,并释放对应的数据缓存。
所述的提高固态硬盘写性能的方法,其特征在于增加在执行将数据缓存中的数据刷新到NAND FLASH中前检索LBA信息循环列表,判断是否还存在更新的相同LBA的缓存数据,如果存在则直接忽略本次LBA的数据写入,将LBA信息循环列表该LBA信息删除,并释放对应的数据缓存。
本发明的有益效果是:通过省略数据写入时前置的遍历LBA表的操作,降低主机写数据操作的等待响应时间,直接写入,时间复杂度为O(1),大大降低了写命令的响应时间。
附图说明
图1是常规技术的线性缓存列表图示;
图2是新的data cache缓存策略示意图;
图3是本技术方案将data cache中数据刷到Nand Flash的顺序图;
图4是读命令遍历方向示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术方案提出了一种新的data cache管理策略,核心思想为:data cache按照主机下发的次序,直接将数据顺序填充至data cache,不再判断相同的LBA是否存在,图2是新的data cache缓存策略示意图,假设主机写了[LBA0,LBA7]后再写[LBA5,LBA8],其中LBA5、LBA6、LBA7为已存在的老的缓存数据,LBA5(新)、LBA6(新)、LBA7(新)为主机新写入的数据,新的data cache管理策略下,每次写数据进入data cache不用遍历LBA信息了,直接写入data cache中,时间复杂度为O(1),大大降低了写命令的响应时间。
本技术方案还需要保证data cache刷到Nand Flash时,LBA5~LBA7的数据必须是新数据;还需要保证主机后续下发LBA5~LBA7的读命令时,SSD必须是将新的LBA5~LBA7的数据传送给主机。
因此本技术方案还优化了data cache刷到Nand Flash的操作流程,data cache中数据刷到Nand Flash时,按照主机下发的LBA顺序写入Nand Flash即可保证写入NandFlash的数据是最新的。图3是本技术方案将data cache中数据刷到Nand Flash的顺序图。为了降低Nand Flash的写放大,还可以增加在执行将data cache写入Nand Flash前检索缓存列表,判断是否还存在更新的相同LBA的缓存数据,如果存在则直接忽略本次LBA的数据写入。因为如果存在更新的相同LBA的缓存数据则本次写入的数据马上会被更新,因此如果写入Nand Flash也是垃圾数据,因此直接忽略本次LBA的数据写入,降低写放大。
针对如何保证主机后续下发LBA5~LBA7的读命令时,SSD必须是将新的LBA5~LBA7的数据传送给主机,判断读命令是否击中data cache依然需要通过命令的LBA去遍历data cache中缓存的LBA信息,只不过遍历的方向必须是从后往前遍历,即按加入datacache的反顺序方向遍历。遍历到第一个匹配到的LBA对应的数据为命中的数据,如图4是读命令遍历方向示意图,从LBA8向LBA0方向遍历,如该示例包括两个LBA5、LBA6、LBA7,按从后向前的方向遍历,则先遍历到LBA5(新)、LBA6(新)、LBA7(新),这样读命令的数据一致性问题也解决了。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (4)
1.一种提高固态硬盘写性能的方法,其特征在于固态硬盘控制器中的写数据缓存的信息通过LBA信息循环列表来记录数据缓存中缓存的LBA信息,LBA信息循环列表包括队头和队尾,固态硬盘控制器按接收到主机写指令顺序直接将主机写数据指令的数据缓存到数据缓存中,并将该写数据指令的数据的LBA加入到LBA信息循环列表的队头,不再检索LBA信息循环列表是否存在相同逻辑块地址LBA信息。
2.根据权利要求1所述的提高固态硬盘写性能的方法,其特征在于固态硬盘控制器接受到主机读数据指令时,从LBA信息循环列表的队头向队尾方向检索是否存在相同逻辑块地址LBA的数据缓存,检索到LBA信息循环列表中第一个相同逻辑块地址的数据对应的数据缓存数据为本次主机读数据指令所需的数据。
3.根据权利要求1或2所述的提高固态硬盘写性能的方法,其特征在于固态硬盘控制器后台根据缓存LBA信息循环列表的队尾向队头方向将数据缓存中的数据刷新到NAND FLASH中,将数据刷新到NAND FLASH中后将LBA信息循环列表该LBA信息删除,并释放对应的数据缓存。
4.根据权利要求3所述的提高固态硬盘写性能的方法,其特征在于增加在执行将数据缓存中的数据刷新到NAND FLASH中前检索LBA信息循环列表,判断是否还存在更新的相同LBA的缓存数据,如果存在则直接忽略本次LBA的数据写入,将LBA信息循环列表该LBA信息删除,并释放对应的数据缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711002232.0A CN107832236B (zh) | 2017-10-24 | 2017-10-24 | 一种提高固态硬盘写性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711002232.0A CN107832236B (zh) | 2017-10-24 | 2017-10-24 | 一种提高固态硬盘写性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832236A true CN107832236A (zh) | 2018-03-23 |
CN107832236B CN107832236B (zh) | 2021-08-03 |
Family
ID=61648989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711002232.0A Expired - Fee Related CN107832236B (zh) | 2017-10-24 | 2017-10-24 | 一种提高固态硬盘写性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832236B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491168A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 一种读、写命令流的处理方法及固态硬盘 |
CN109117098A (zh) * | 2018-09-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种固态硬盘中提高数据传输性能的方法 |
CN110716887A (zh) * | 2019-09-11 | 2020-01-21 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
CN112463059A (zh) * | 2020-11-30 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种写数据处理方法、装置、电子设备及存储介质 |
CN113157512A (zh) * | 2021-04-29 | 2021-07-23 | 山东华芯半导体有限公司 | 实现大容量ssd在小内存机器上进行数据校验测试的方法 |
CN116860184A (zh) * | 2023-09-04 | 2023-10-10 | 苏州浪潮智能科技有限公司 | 磁盘读写加速方法、装置、阵列卡、服务器、设备和介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684031A (zh) * | 2004-05-21 | 2005-10-19 | 威盛电子股份有限公司 | 在缓存器架构处理器中管理堆栈转移的装置与方法 |
CN1713160A (zh) * | 2004-06-15 | 2005-12-28 | 冲电气工业株式会社 | 闪速存储器的写入方法 |
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN101527169A (zh) * | 2008-03-03 | 2009-09-09 | 群联电子股份有限公司 | 闪存数据写入方法及其控制器 |
US20100318879A1 (en) * | 2009-06-11 | 2010-12-16 | Samsung Electronics Co., Ltd. | Storage device with flash memory and data storage method |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
CN102541464A (zh) * | 2010-12-30 | 2012-07-04 | 慧荣科技股份有限公司 | 快闪存储装置及其数据写入方法 |
CN102722449A (zh) * | 2012-05-24 | 2012-10-10 | 中国科学院计算技术研究所 | 基于SSD的Key-Value型本地存储方法及系统 |
CN103150136A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于ssd的大容量缓存中的lru策略实现方法 |
US20140143491A1 (en) * | 2012-11-20 | 2014-05-22 | SK Hynix Inc. | Semiconductor apparatus and operating method thereof |
US20140281151A1 (en) * | 2013-03-15 | 2014-09-18 | Super Talent Technology, Corp. | Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance |
CN106095697A (zh) * | 2016-06-07 | 2016-11-09 | 华为技术有限公司 | 一种数据固化存储的方法、装置和系统 |
CN106612619A (zh) * | 2015-08-25 | 2017-05-03 | 株式会社东芝 | 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机 |
CN106980469A (zh) * | 2017-03-07 | 2017-07-25 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序写缓存效率的方法 |
-
2017
- 2017-10-24 CN CN201711002232.0A patent/CN107832236B/zh not_active Expired - Fee Related
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684031A (zh) * | 2004-05-21 | 2005-10-19 | 威盛电子股份有限公司 | 在缓存器架构处理器中管理堆栈转移的装置与方法 |
CN1713160A (zh) * | 2004-06-15 | 2005-12-28 | 冲电气工业株式会社 | 闪速存储器的写入方法 |
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN101527169A (zh) * | 2008-03-03 | 2009-09-09 | 群联电子股份有限公司 | 闪存数据写入方法及其控制器 |
US20100318879A1 (en) * | 2009-06-11 | 2010-12-16 | Samsung Electronics Co., Ltd. | Storage device with flash memory and data storage method |
CN102541464A (zh) * | 2010-12-30 | 2012-07-04 | 慧荣科技股份有限公司 | 快闪存储装置及其数据写入方法 |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
CN102722449A (zh) * | 2012-05-24 | 2012-10-10 | 中国科学院计算技术研究所 | 基于SSD的Key-Value型本地存储方法及系统 |
US20140143491A1 (en) * | 2012-11-20 | 2014-05-22 | SK Hynix Inc. | Semiconductor apparatus and operating method thereof |
US20140281151A1 (en) * | 2013-03-15 | 2014-09-18 | Super Talent Technology, Corp. | Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance |
CN103150136A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于ssd的大容量缓存中的lru策略实现方法 |
CN106612619A (zh) * | 2015-08-25 | 2017-05-03 | 株式会社东芝 | 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机 |
CN106095697A (zh) * | 2016-06-07 | 2016-11-09 | 华为技术有限公司 | 一种数据固化存储的方法、装置和系统 |
CN106980469A (zh) * | 2017-03-07 | 2017-07-25 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序写缓存效率的方法 |
Non-Patent Citations (1)
Title |
---|
陆游游 等: "闪存存储系统综述", 《计算机研究与发展》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491168A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 一种读、写命令流的处理方法及固态硬盘 |
CN109117098A (zh) * | 2018-09-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种固态硬盘中提高数据传输性能的方法 |
CN110716887A (zh) * | 2019-09-11 | 2020-01-21 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
CN112463059A (zh) * | 2020-11-30 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种写数据处理方法、装置、电子设备及存储介质 |
CN112463059B (zh) * | 2020-11-30 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种写数据处理方法、装置、电子设备及存储介质 |
CN113157512A (zh) * | 2021-04-29 | 2021-07-23 | 山东华芯半导体有限公司 | 实现大容量ssd在小内存机器上进行数据校验测试的方法 |
CN116860184A (zh) * | 2023-09-04 | 2023-10-10 | 苏州浪潮智能科技有限公司 | 磁盘读写加速方法、装置、阵列卡、服务器、设备和介质 |
CN116860184B (zh) * | 2023-09-04 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 磁盘读写加速方法、装置、阵列卡、服务器、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107832236B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832236A (zh) | 一种提高固态硬盘写性能的方法 | |
US11960729B2 (en) | Method of increasing flash endurance by improved metadata management | |
CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
US20160283125A1 (en) | Multi-streamed solid state drive | |
CN101477492B (zh) | 一种用于固态硬盘的循环重写闪存均衡方法 | |
CN105574104B (zh) | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 | |
CN103473150B (zh) | 一种用于数据去重系统中的碎片重写方法 | |
CN106095342B (zh) | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 | |
CN104834607A (zh) | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 | |
CN103257935A (zh) | 一种缓存管理方法及其应用 | |
TW201135738A (en) | Erase command caching to improve erase performance on flash memory | |
WO2012116369A2 (en) | Apparatus, system, and method for managing contents of a cache | |
GB2469373A (en) | Using file level heuristics to manage a storage device cache | |
CN102981963A (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN105930282A (zh) | 一种用于nand flash的数据缓存方法 | |
EP3316150A1 (en) | Method and apparatus for file compaction in key-value storage system | |
CN105955664B (zh) | 一种基于段结构的瓦记录转换层的读写方法 | |
CN107832007A (zh) | 一种提高ssd综合性能的方法 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN100428193C (zh) | 一种在数据存储系统中预取数据的方法 | |
CN102395957A (zh) | 一种高速缓存和磁盘的管理方法以及利用所述方法的控制器 | |
CN106980469A (zh) | 一种提高固态硬盘顺序写缓存效率的方法 | |
CN112835534B (zh) | 一种基于存储阵列数据访问的垃圾回收优化方法及装置 | |
US20180217935A1 (en) | Method and apparatus for reading redundant array of independent disks | |
CN105138277A (zh) | 一种固态盘阵列的缓存管理方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210803 |
|
CF01 | Termination of patent right due to non-payment of annual fee |