CN107704400A - 一种面向非易失存储的页缓存方法 - Google Patents

一种面向非易失存储的页缓存方法 Download PDF

Info

Publication number
CN107704400A
CN107704400A CN201710947204.XA CN201710947204A CN107704400A CN 107704400 A CN107704400 A CN 107704400A CN 201710947204 A CN201710947204 A CN 201710947204A CN 107704400 A CN107704400 A CN 107704400A
Authority
CN
China
Prior art keywords
page
caching
nonvolatile storage
data
write
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
CN201710947204.XA
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710947204.XA priority Critical patent/CN107704400A/zh
Publication of CN107704400A publication Critical patent/CN107704400A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向非易失存储的页缓存方法,包括:文件读取过程,单独划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;当接收目标页缓存读取指令时,根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;文件写入过程,若分页数据被修改后,将分页置脏,把脏页数据写入非易失存储器中,当需要脏页回写时,把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置后,将非易失存储器中的数据,写入磁盘。本发明和现有技术相比适合大数据应用场景,在数据读取频繁,数据量大时能够减少系统I/O操作,提高系统性能。

Description

一种面向非易失存储的页缓存方法
技术领域
本发明涉及服务器操作系统技术领域,具体地说是一种面向非易失存储的页缓存方法。
背景技术
随着云计算技术的不断发展和规模的壮大,人们对存储的要求越来越高,希望有高密度、高读写速度、低能耗的存储介质。现有的Linux的页缓存机制只支持对DRAM的使用,DRAM(Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管加一个电容。但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。
所以,存在的弊端如下:
1、Linux的页缓存机制只支持对DRAM的使用;
2、现有基于DRAM的用于缓存页的区域容量小,能够预取和缓存的页面少,需要频繁进行I/O操作,降低系统性能。
而NVM(Non-volatile Memory,固定存储器,非易失存储器),具有非易失、按字节存取、存储密度高、低能耗、读写性能接近DRAM。基于新型非易失性存储器(统称为 NVM)的服务器系统逐渐引起人们的关注,如何利用NVM的密度高、容量大、速度快和能耗低的特点,成为基于非易失存储的服务器系统的关键问题。
发明内容
本发明的技术任务是针对以上不足之处,提供容量大、速度快、能耗低的一种面向非易失存储的页缓存方法。
本发明解决其技术问题所采用的技术方案是:一种面向非易失存储的页缓存方法,在Linux操作系统中,将非易失存储器作为磁盘的缓存的页缓存方法。
进一步,优选的方法包括:
文件读取过程,单独划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;当接收目标页缓存读取指令时,根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;
文件写入过程,若分页数据被修改后,将分页置脏,把脏页数据写入非易失存储器中,当需要脏页回写时,把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置后,将非易失存储器中的数据,写入磁盘。
进一步,优选的方法为,所述的当接收目标页缓存读取指令时,根据指令查找目标页缓存,具体方法如下:
当接收目标页缓存读取指令时,根据所述指令,查找page_tree结构体;如果未命中,继续查找非易失存储器的基树;如果命中,把分页复制到DRAM中;如果未命中,从磁盘中读取目标页到DRAM中。
进一步,优选的方法为,所述的page_tree结构体中保存有address_space结构体,所述的address_space结构体中增加一个基树page_tree_nvm,所述的基树page_tree_nvm用于指向保存在非易失存储器中的页。
本发明还保护一种面向非易失存储的页缓存系统,包括文件读取模块和文件写入模块;
所述的文件读取模块,用于根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;
所述的文件写入模块,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中,将非易失存储器中的数据,写入磁盘。
进一步,优选的结构为, 所述的文件读取模块包括存储单元、查找单元和复制单元;
所述的存储单元,用于划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;
所述的查找单元,用于当接收目标页缓存读取指令时,根据所述指令查找目标页缓存;
所述的复制单元,用于根据查找结果将分页的信息复制到DRAM中。
进一步,优选的结构为,所述的文件写入模块包括置脏单元、回写单元和磁盘写入单元;
所述的置脏单元,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中;
所述的回写单元,用于把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置;
所述的磁盘写入单元,用于将将非易失存储器中的数据,写入磁盘。
进一步,优选的结构为,所述的基树用于指向保存在非易失存储器中的页。
本发明的一种面向非易失存储的页缓存方法和现有技术相比,有益效果如下:把NVM作为磁盘的缓存,能够利用NVM容量大、速度快和能耗低的特点,适合大数据应用场景,在数据读取频繁,数据量大时能够减少系统I/O操作,提高系统性能。
实施方式
下面结合具体实施例对本发明作进一步说明。
本发明为一种面向非易失存储的页缓存方法及其系统,一种面向非易失存储介质的页缓存设计方法,把NVM作为磁盘的缓存,减少磁盘的I/O。
在linux中,修改linux/fs.h中的结构体address_space,其描述了页高速缓存中的页面,每个address_space对象都有唯一的基树(radix tree),它保存在page_tree结构体中,为了充分利用NVM容量大非易失的特点,在address_space结构体中新增加一个基树page_tree_nvm,用来指向保存在NVM中的页。
实施例1:
在Linux操作系统中,把文件预读的数据存储在NVM的基树中;一种面向非易失存储介质的页缓存设计方法,包括了对文件读取、写入两个过程的优化。
文件读取过程:文件读的时候单独划分NVM作为磁盘的缓存,每次文件预读的数据存储在NVM的基树中。当发生缺页的时候,首先查询page_tree,若没有命中,再查询NVM中的基树,若命中,则把分页复制到DRAM的基树中,若仍没有命中,则从磁盘读取相应的页到DRAM中。
文件写入过程:当分页数据被修改后,将该分页设置标志为dirty,将脏页实时写入NVM来代替磁盘回写,当需要脏页回写的时候,把脏页数据缓存到NVM中,把脏页拷贝到NVM基树中对应的位置,这样的回写不需要等待漫长的磁盘I/O,速度会快很多。在NVM中的数据,在经过一段系统预设的时间后,再统一写入磁盘。
本发明还保护了应用此方法的一种面向非易失存储的页缓存系统,包括文件读取模块和文件写入模块;
所述的文件读取模块,用于根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;所述的文件读取模块包括存储单元、查找单元和复制单元;所述的存储单元,用于划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;所述的查找单元,用于当接收目标页缓存读取指令时,根据所述指令查找目标页缓存;所述的复制单元,用于根据查找结果将分页的信息复制到DRAM中。
所述的文件写入模块,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中,将非易失存储器中的数据,写入磁盘。所述的文件写入模块包括置脏单元、回写单元和磁盘写入单元;所述的置脏单元,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中;所述的回写单元,用于把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置;所述的磁盘写入单元,用于将将非易失存储器中的数据,写入磁盘。
本发明的一种面向非易失存储的页缓存方法,适用于K-UX产品,增加了非易失存储的应用场景,提高了基于非易失存储器的服务器系统性能。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

Claims (8)

1.一种面向非易失存储的页缓存方法,其特征在于,在Linux操作系统中,将非易失存储器作为磁盘的缓存的页缓存方法。
2.根据权利要求1所述的一种面向非易失存储的页缓存方法,其特征在于,包括:
文件读取过程,单独划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;当接收目标页缓存读取指令时,根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;
文件写入过程,若分页数据被修改后,将分页置脏,把脏页数据写入非易失存储器中,当需要脏页回写时,把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置后,将非易失存储器中的数据,写入磁盘。
3.根据权利要求2所述的一种面向非易失存储的页缓存方法,其特征在于,所述的当接收目标页缓存读取指令时,根据指令查找目标页缓存,具体方法如下:
当接收目标页缓存读取指令时,根据所述指令,查找page_tree结构体;如果未命中,继续查找非易失存储器的基树;如果命中,把分页复制到DRAM中;如果未命中,从磁盘中读取目标页到DRAM中。
4.根据权利要求3所述的一种面向非易失存储的页缓存方法,其特征在于,所述的page_tree结构体中保存有address_space结构体,所述的address_space结构体中增加一个基树page_tree_nvm,所述的基树page_tree_nvm用于指向保存在非易失存储器中的页。
5.一种面向非易失存储的页缓存系统,其特征在于,包括文件读取模块和文件写入模块;
所述的文件读取模块,用于根据所述指令查找目标页缓存,并根据查找结果将分页的信息复制到DRAM中;
所述的文件写入模块,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中,将非易失存储器中的数据,写入磁盘。
6.根据权利要求5所述的一种面向非易失存储的页缓存系统,其特征在于, 所述的文件读取模块包括存储单元、查找单元和复制单元;
所述的存储单元,用于划分非易失存储器作为磁盘的缓存,将文件预读的数据存储于非易失存储器的基树中;
所述的查找单元,用于当接收目标页缓存读取指令时,根据所述指令查找目标页缓存;
所述的复制单元,用于根据查找结果将分页的信息复制到DRAM中。
7.根据权利要求5所述的一种面向非易失存储的页缓存系统,其特征在于,所述的文件写入模块包括置脏单元、回写单元和磁盘写入单元;
所述的置脏单元,用于将数据被修改后的分页置脏,把脏页数据写入非易失存储器中;
所述的回写单元,用于把脏页数据缓存到非易失存储器,并把脏页数据复制到非易失存储器基树中的对应位置,;
所述的磁盘写入单元,用于将将非易失存储器中的数据,写入磁盘。
8.根据权利要求6所述的一种面向非易失存储的页缓存系统,其特征在于,所述的基树用于指向保存在非易失存储器中的页。
CN201710947204.XA 2017-10-12 2017-10-12 一种面向非易失存储的页缓存方法 Pending CN107704400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710947204.XA CN107704400A (zh) 2017-10-12 2017-10-12 一种面向非易失存储的页缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710947204.XA CN107704400A (zh) 2017-10-12 2017-10-12 一种面向非易失存储的页缓存方法

Publications (1)

Publication Number Publication Date
CN107704400A true CN107704400A (zh) 2018-02-16

Family

ID=61184239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710947204.XA Pending CN107704400A (zh) 2017-10-12 2017-10-12 一种面向非易失存储的页缓存方法

Country Status (1)

Country Link
CN (1) CN107704400A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032526A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、系统及设备
CN112835528A (zh) * 2021-02-22 2021-05-25 北京金山云网络技术有限公司 脏页刷新方法和装置、电子设备和存储介质
CN113157395A (zh) * 2021-04-20 2021-07-23 上海泓戟信息科技有限公司 一种优化计算机内存数据同步的方法
CN113515412A (zh) * 2021-06-25 2021-10-19 清华大学 非易失性内存检查点生成方法、装置和电子设备
CN116795298A (zh) * 2023-08-28 2023-09-22 麒麟软件有限公司 一种Linux下NVME存储器的IO优化方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060301A (ko) * 2005-12-08 2007-06-13 삼성전자주식회사 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN101989183A (zh) * 2010-10-15 2011-03-23 浙江大学 混合主存储器实现节能存储的方法
CN102521147A (zh) * 2011-11-17 2012-06-27 曙光信息产业(北京)有限公司 一种使用高速非易失介质做缓存的管理方法
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统
CN106250350A (zh) * 2016-07-28 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于numa架构的页缓存读取方法及系统
CN106775476A (zh) * 2016-12-19 2017-05-31 中国人民解放军理工大学 混合内存系统及其管理方法
CN106909323A (zh) * 2017-03-02 2017-06-30 山东大学 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN106951376A (zh) * 2017-02-27 2017-07-14 清华大学 面向闪存的细粒度非易失缓存系统以及缓存管理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060301A (ko) * 2005-12-08 2007-06-13 삼성전자주식회사 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN101989183A (zh) * 2010-10-15 2011-03-23 浙江大学 混合主存储器实现节能存储的方法
CN102521147A (zh) * 2011-11-17 2012-06-27 曙光信息产业(北京)有限公司 一种使用高速非易失介质做缓存的管理方法
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统
CN106250350A (zh) * 2016-07-28 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于numa架构的页缓存读取方法及系统
CN106775476A (zh) * 2016-12-19 2017-05-31 中国人民解放军理工大学 混合内存系统及其管理方法
CN106951376A (zh) * 2017-02-27 2017-07-14 清华大学 面向闪存的细粒度非易失缓存系统以及缓存管理方法
CN106909323A (zh) * 2017-03-02 2017-06-30 山东大学 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENGFANRONG: "Linux 页快速缓存与回写机制分析", 《HTTPS://WWW.CNBLOGS.COM/MENGFANRONG/P/4317653.HTML》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032526A (zh) * 2019-04-16 2019-07-19 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、系统及设备
CN110032526B (zh) * 2019-04-16 2021-10-15 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、系统及设备
CN112835528A (zh) * 2021-02-22 2021-05-25 北京金山云网络技术有限公司 脏页刷新方法和装置、电子设备和存储介质
CN113157395A (zh) * 2021-04-20 2021-07-23 上海泓戟信息科技有限公司 一种优化计算机内存数据同步的方法
CN113515412A (zh) * 2021-06-25 2021-10-19 清华大学 非易失性内存检查点生成方法、装置和电子设备
CN113515412B (zh) * 2021-06-25 2024-04-12 清华大学 非易失性内存检查点生成方法、装置和电子设备
CN116795298A (zh) * 2023-08-28 2023-09-22 麒麟软件有限公司 一种Linux下NVME存储器的IO优化方法及系统
CN116795298B (zh) * 2023-08-28 2023-11-24 麒麟软件有限公司 一种Linux下NVME存储器的IO优化方法及系统

Similar Documents

Publication Publication Date Title
CN107704400A (zh) 一种面向非易失存储的页缓存方法
US20200183855A1 (en) Logical to physical mapping
US8670262B2 (en) Hybrid solid-state memory system having volatile and non-volatile memory
CN104035729B (zh) 一种日志映射的块设备精简配置方法
US10991422B2 (en) Data storage device using a host memory buffer for single-level cell storage and control method for non-volatile memory
CN105718530B (zh) 文件存储系统及其文件存储控制方法
US20060010293A1 (en) Cache for file system used in storage system
KR20170026114A (ko) 트랜잭션 기반 하이브리드 메모리 모듈
US20180210832A1 (en) Hybrid drive translation layer
CN111512290B (zh) 文件页表管理技术
CN106815152A (zh) 一种优化页级闪存转换层的方法
CN107368436A (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
CN107329696A (zh) 一种保证数据崩溃一致性的方法及系统
JP2014174981A (ja) データストレージデバイス及び方法
CN107369464A (zh) 存储模块及包括其的系统
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
US7328311B2 (en) Memory controller controlling cashed DRAM
CN106021159A (zh) 大容量固态硬盘逻辑地址到物理地址映射方法
CN102681792A (zh) 一种固态盘内存分区方法
CN112559384B (zh) 一种基于非易失存储器的混合固态盘动态分区方法
US20040128414A1 (en) Using system memory as a write buffer for a non-volatile memory
Lee et al. Accelerating In-Page Logging with Non-Volatile Memory.
Mativenga et al. Minimizing CMT miss penalty in selective page-level address mapping table
JPS603224B2 (ja) ペ−ジ・バツフア・メモリにおけるペ−ジ格納域数調整用デ−タ作成方式
CN110609817A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180216