CN106980469A - 一种提高固态硬盘顺序写缓存效率的方法 - Google Patents
一种提高固态硬盘顺序写缓存效率的方法 Download PDFInfo
- Publication number
- CN106980469A CN106980469A CN201710131587.3A CN201710131587A CN106980469A CN 106980469 A CN106980469 A CN 106980469A CN 201710131587 A CN201710131587 A CN 201710131587A CN 106980469 A CN106980469 A CN 106980469A
- Authority
- CN
- China
- Prior art keywords
- write operation
- data cached
- key
- state hard
- cryptographic hash
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提高固态硬盘顺序写缓存效率的方法,其特征在于缓存数据地址列表包括缓存数据的LBA地址和缓存数据的LBA地址对应的哈希值Key,Key_x=LBA_x%N,Key_x为主机发起的写操作的LBA地址,N=每个缓存块大小/512;固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中;否则则判定当前写操作没有命中。通过改进缓存数据地址列表结构,降低写操作对缓存数据的遍历时间复杂度,达到提升顺序写缓存效率的技术效果。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘顺序写缓存效率的方法。
背景技术
主机每次发起的对SSD的操作的数据都对应了一段逻辑块地址LBA(LogicalBlock Address)地址,即[LBA_x,LBA_y],LBA_x表示这段LBA区间的起始地址,LBA_y表示这段LBA区间的末尾地址,每个LBA对应512B的数据。为保证数据一致性,SSD的固件需要记录数据缓存data cache中有缓存数据的LBA地址,以便判断主机后续发起的写操作数据是否命中了data cache,如果命中则需要把数据缓存data cache中的旧数据覆盖掉。顺序写指的是主机发起写数据的LBA都是连续的。通过分析主机对SSD普遍都存在顺序读写的特征,因此存储最近一段时间的操作数据有利于提升顺序读写的性能。
目前的固件设计中data cache的缓存方式为线性缓存,假设data cache大小为4KB,主机向SSD发起4KB的数据,对应的LBA地址段为[LBA0,LBA7],则固件按照这个顺序记录这些LBA,图1是现有技术线性缓存示例。当后续主机又向SSD发起512B的数据,对应的LBA地址为LBA8,那么固件需要判断data cache中是否已存在LBA8,线性cache对应的遍历方式也是线性遍历,从data cache中第一个缓存内容开始向后一个个查找,则需要查找8次才能判断为非命中。该技术的时间复杂度为O(n),n为data cache中的有效LBA地址个数。因此存在***消耗大,效率低的问题。
发明内容
针对以上缺陷,本发明目的如何提升缓存数据的遍历效率,实现提升写缓存效率的目的。
为了解决以上问题本发明提出了一种提高固态硬盘顺序写缓存效率的方法,固态硬盘创建缓存数据地址列表,固态硬盘接收到主机发起的写操作,通过检索缓存数据地址列表判定是否命中,其特征在于缓存数据地址列表包括缓存数据的LBA地址和缓存数据的LBA地址对应的哈希值Key,Key_x=LBA_x%N,Key_x为主机发起的写操作的LBA地址,N=每个缓存块大小/512;固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中;否则则判定当前写操作没有命中。
根据权利要求1所述的提高固态硬盘顺序写缓存效率的方法,其特征在于固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中,将写入的数据覆盖掉该LBA地址对应的缓存中旧数据;否则则判定当前写操作没有命中,把LBA地址挂到哈希值Key_n对应的缓存数据地址列表中,对应的写数据会直接写到缓存中。
本发明通过改进缓存数据地址列表结构,降低写操作对缓存数据的遍历时间复杂度,达到提升顺序写缓存效率的技术效果。
附图说明
图1是现有技术线性缓存示例;
图2是改进后的缓存方式示例。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是改进后的缓存方式示例,改进后的缓存数据地址列表新增加了缓存数据的LBA地址对应的哈希值Key,Key_x=LBA_x%N,Key_x为主机发起的写操作的LBA地址,N=每个缓存块大小/512;固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中;否则则判定当前写操作没有命中,本例中假设每个缓存块大小为4KB,每个LBA对应512B的数据;主机向SSD发起4KB的数据,对应的LBA地址段为[LBA0,LBA7],LBA0对应的哈希值为Key0,所以将LBA0挂载到Key0对应的列表下,以此类推,LBA0~LBA7在缓存数据地址列表中的分布情况如图2所示。当主机再发起对LBA8的顺序写,固件直接计算出LBA8对应的哈希值Key=8%8=0,然后直接检查缓存数据地址列表中Key0对应的列中有无LBA8,发现该列中只有LBA0,并没有LBA8,所以为非命中。在顺序写场景下新技术的时间复杂度为O(1),大大提升了遍历的效率。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (2)
1.一种提高固态硬盘顺序写缓存效率的方法,固态硬盘创建缓存数据地址列表,固态硬盘接收到主机发起的写操作,通过检索缓存数据地址列表判定是否命中,其特征在于缓存数据地址列表包括缓存数据的LBA地址和缓存数据的LBA地址对应的哈希值Key,Key_x=LBA_x%N,Key_x为主机发起的写操作的LBA地址,N=每个缓存块大小/512;固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中;否则则判定当前写操作没有命中。
2.根据权利要求1所述的提高固态硬盘顺序写缓存效率的方法,其特征在于固态硬盘接收到主机发起的写操作先计算该写操作的对应LBA地址对应的哈希值Key_n;直接判断缓存数据地址列表是否存在哈希值为Key_n的缓存数据,如果存在则判定当前写操作命中,将写入的新数据覆盖掉该LBA地址对应的缓存中旧数据;否则则判定当前写操作没有命中,把LBA地址挂到哈希值Key_n对应的缓存数据地址列表中,对应的写数据直接写到缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710131587.3A CN106980469A (zh) | 2017-03-07 | 2017-03-07 | 一种提高固态硬盘顺序写缓存效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710131587.3A CN106980469A (zh) | 2017-03-07 | 2017-03-07 | 一种提高固态硬盘顺序写缓存效率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106980469A true CN106980469A (zh) | 2017-07-25 |
Family
ID=59338769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710131587.3A Pending CN106980469A (zh) | 2017-03-07 | 2017-03-07 | 一种提高固态硬盘顺序写缓存效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980469A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832236A (zh) * | 2017-10-24 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写性能的方法 |
CN109117098A (zh) * | 2018-09-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种固态硬盘中提高数据传输性能的方法 |
CN109951275A (zh) * | 2019-02-22 | 2019-06-28 | 记忆科技(深圳)有限公司 | 密钥生成方法、装置、计算机设备及存储介质 |
CN110297607A (zh) * | 2019-06-28 | 2019-10-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘写性能的方法及其*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719099A (zh) * | 2009-11-26 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 减小固态硬盘写入放大的方法及装置 |
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN103645859A (zh) * | 2013-11-19 | 2014-03-19 | 华中科技大学 | 一种虚拟ssd与ssd异构镜像的磁盘阵列缓存方法 |
CN103744864A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 缓存数据读写的方法、***及其固态硬盘 |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
CN105302501A (zh) * | 2015-11-27 | 2016-02-03 | 浙江宇视科技有限公司 | 一种磁盘扇区的控制方法和装置 |
CN105630703A (zh) * | 2014-11-21 | 2016-06-01 | 联发科技(新加坡)私人有限公司 | 利用可编程哈希地址的控制缓存访问的方法及相关缓存控制器 |
-
2017
- 2017-03-07 CN CN201710131587.3A patent/CN106980469A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719099A (zh) * | 2009-11-26 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 减小固态硬盘写入放大的方法及装置 |
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN103645859A (zh) * | 2013-11-19 | 2014-03-19 | 华中科技大学 | 一种虚拟ssd与ssd异构镜像的磁盘阵列缓存方法 |
CN103744864A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 缓存数据读写的方法、***及其固态硬盘 |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
CN105630703A (zh) * | 2014-11-21 | 2016-06-01 | 联发科技(新加坡)私人有限公司 | 利用可编程哈希地址的控制缓存访问的方法及相关缓存控制器 |
CN105302501A (zh) * | 2015-11-27 | 2016-02-03 | 浙江宇视科技有限公司 | 一种磁盘扇区的控制方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832236A (zh) * | 2017-10-24 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写性能的方法 |
CN107832236B (zh) * | 2017-10-24 | 2021-08-03 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘写性能的方法 |
CN109117098A (zh) * | 2018-09-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种固态硬盘中提高数据传输性能的方法 |
CN109951275A (zh) * | 2019-02-22 | 2019-06-28 | 记忆科技(深圳)有限公司 | 密钥生成方法、装置、计算机设备及存储介质 |
CN109951275B (zh) * | 2019-02-22 | 2021-08-17 | 记忆科技(深圳)有限公司 | 密钥生成方法、装置、计算机设备及存储介质 |
CN110297607A (zh) * | 2019-06-28 | 2019-10-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘写性能的方法及其*** |
CN110297607B (zh) * | 2019-06-28 | 2023-08-29 | 深圳忆联信息***有限公司 | 一种提升固态硬盘写性能的方法及其*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980469A (zh) | 一种提高固态硬盘顺序写缓存效率的方法 | |
US9177670B1 (en) | Method and apparatus for flash cache management | |
US8510504B2 (en) | SMR storage device with user controls and access to status information and parameter settings | |
CN107003809B (zh) | 一种存储设备存储数据的方法及存储设备 | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
US20160283125A1 (en) | Multi-streamed solid state drive | |
CN103473150B (zh) | 一种用于数据去重***中的碎片重写方法 | |
CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
CN108021511A (zh) | 一种ssd性能提升的方法及ssd | |
CN107832236B (zh) | 一种提高固态硬盘写性能的方法 | |
CN106844740A (zh) | 基于内存对象缓存***的数据预读方法 | |
CN104216838A (zh) | 双缓存数据处理方法及*** | |
CN106897231A (zh) | 一种基于高性能存储介质的数据缓存方法及*** | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN101777028A (zh) | 一种混合型二级存储***的实现方法及装置 | |
CN103049393B (zh) | 内存空间管理方法和装置 | |
CN105786410A (zh) | 一种提高数据存储***处理速度的方法及数据存储*** | |
CN105389135A (zh) | 一种固态盘内部缓存管理方法 | |
CN103823640B (zh) | 一种Flash存储器的高效率存储方法 | |
CN106527987A (zh) | 一种不带dram的ssd主控可靠性提升***及方法 | |
CN104811646B (zh) | 基于连续存储模型的多视频流数据并发调制及缓冲的存储方法 | |
CN104834478B (zh) | 一种基于异构混合存储设备的数据写入及读取方法 | |
CN103425438B (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
CN109739696A (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN103200245B (zh) | 一种基于Device Mapper的分布式网络缓存方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170725 |