CN112559384B - 一种基于非易失存储器的混合固态盘动态分区方法 - Google Patents
一种基于非易失存储器的混合固态盘动态分区方法 Download PDFInfo
- Publication number
- CN112559384B CN112559384B CN202011492965.9A CN202011492965A CN112559384B CN 112559384 B CN112559384 B CN 112559384B CN 202011492965 A CN202011492965 A CN 202011492965A CN 112559384 B CN112559384 B CN 112559384B
- Authority
- CN
- China
- Prior art keywords
- data
- group
- page
- area
- cold
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 11
- 238000013507 mapping Methods 0.000 claims description 35
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000007621 cluster analysis Methods 0.000 claims description 3
- 239000007787 solid Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
-
- 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/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于非易失存储器的混合固态盘动态分区方法,本发明将非易失存储器PCM分成两个区域,一个缓存区和一个数据区,缓存区用来作为固态盘内部的内存,而数据区与闪存统一编址,存储从缓存区驱逐出的数据。并对缓存区域和数据区域进行动态分区,获得两者之间的最佳比例,使混合固态盘在不同负载下取得最佳性能。
Description
技术领域
本发明涉及计算机外存储技术领域,具体涉及一种基于非易失存储器的混合固态盘动态分区方法。
背景技术
固态硬盘在日常生活中应用越来越普遍,固态硬盘通常包括多个闪存芯片,每个闪存芯片包括一个或多个晶粒,每个晶粒包括多个块,每个块中包含多个页。块是闪存中最小的最小擦除单位,页是最小写入单位。
固态硬盘按照所定义的擦除单位(即在擦除操作期间被擦除的数据块尺寸)和所定义的写单位(即在写操作期间被写的数据块尺寸)来操作。在擦除单位和写单位之间的块尺寸的差异通常需要使用闪存转换层(FlashTranslationLayer)。FTL本质上是一种地址映射方案,可以使用页映射﹑块映射或混合映射来实现地址映射。在这些映射方法中页映射性能最好,但页映射需要较大的空间存放映射表,在传统固态盘中,通常采用页映射的DFTL算法,该算法基于局部性原理,将全局映射目录及部分常用的映射表存放在固态盘内部的缓存中,在单一介质的固态盘中,DFTL能取得较好的性能。相变存储器是一种新型低功耗的固态存储器件,它被认为是新一代可以替代闪存的高性能存储器件,它具有支持按位修改,原地更新,使用寿命长等特点。因此,可以将其加入固态盘中,与闪存组成混合固态盘。在混合固态盘中,由于闪存读性能与相变存储器相差不大(闪存读一页时间为10~100ns,但它每次可读2KB—4KB数据,相变存储器读取一次时间约为10~50μs,每次读取1B数据),闪存与DRAM写性能的差距也不如相变存储器与DRAM的差距大,同时,闪存具有容量大等特点,那么可以将相变存储器作为固态盘的内存部分,来增强固态盘的读写性能,提高闪存的寿命。
发明内容
本发明所要解决的问题是:提供一种基于非易失存储器的混合固态盘动态分区方法,将非易失存储器PCM分成两个区域,一个缓存区和一个数据区,缓存区用来作为固态盘内部的内存,而数据区与闪存统一编址,存储从缓存区驱逐出的数据。并对缓存区域和数据区域进行动态分配,获得两者之间的最佳比例,使混合固态盘在不同负载下取得最佳性能。
本发明为解决上述问题所提供的技术方案为:一种基于非易失存储器的混合固态盘动态分区方法,其特征在于:所述方法包括以下步骤,
(1)、初始阶段,将PCM划分为缓存区和数据区,为PCM数据区的每个页设置一个计数器,并给第一次写入的页的计数器赋初值,只要在数据区的页被更新就加一,没有被更新的减一;
(2)、经过一定的周期后,统计数据区中每页的计数器的值,利用K-means算法对这些数据进行聚类分析,分成三类数据,并算出各类数据的质心;根据各个质心的值,将三组数据由大到小分为热组,暖组,冷组,并统计各个组的数据个数;
(3)、设置两个阈值K1,K2,分别表示热组中页更新的最少次数,冷组中页的更新最多的次数;如果热组中的质心小于K1时,就求出热组中小于K1的数目,划分该数目的页面给缓存区;如果冷组中的质心大于K2时,就求出冷组中大于K2的数目,划分该数目的页面给数据区;如果两者情况都未发生,就进入步骤(4);
(4)、设置热组和冷组的大小为一定比例,并将统计的热组与冷组的数据个数进行比较,如果热组的数据个数大于这个比例,则以热组多余的页数划分给数据区,如果冷区的数据个数大于这个比例,则以冷组多余的页数划分给缓存区。
优选的,所述步骤(1)中缓存区和数据区的容量比例为一比一。
优选的,所述步骤(1)中缓存区部分存储的是闪存中全局映射表的部分经常更新的映射表项,以及从外部文件***来的写请求的经常更新的数据。
与现有技术相比,本发明的优点是:本发明将非易失存储器PCM分成两个区域,一个缓存区和一个数据区,缓存区用来作为固态盘内部的内存,而数据区与闪存统一编址,存储从缓存区驱逐出的数据。并对缓存区域和数据区域进行动态分配,获得两者之间的最佳比例,使混合固态盘在不同负载下取得最佳性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明的混合固态盘组织结构
图2是本发明流程图。
具体实施方式
以下将配合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
一种基于非易失存储器的混合固态盘数据分区方法,包括如下具体步骤:
(1)初始阶段,将PCM的容量以一比一的比例划分为缓存区和数据区,为PCM数据区的每个页设置一个计数器,并给第一次写入的页的计数器赋初值,只要在数据区的页被更新就加一,没有被更新的减一。
(2)经过一定的周期后,统计数据区中每页的计数器的值,利用K-means算法对这些数据进行聚类分析,分成三类数据,并算出各类数据的质心。根据各个质心的值,将三组数据由大到小分为热组,暖组,冷组,并统计各个组的数据个数。
(3)设置两个阈值K1,K2,分别表示热组中页更新的最少次数,冷组中页的更新最多的次数。如果热组中的质心小于K1时,就求出热组中小于K1的数目,划分该数目的页面给缓存区;如果冷组中的质心大于K2时,就求出冷组中大于K2的数目,划分该数目的页面给数据区。如果两者情况都未发生,就进入步骤(4)。
(4)设置热组和冷组的大小为一定比例,并将统计的热组与冷组的数据个数进行比较,如果热组的数据个数大于这个比例,则以热组多余的页数划分给数据区,如果冷区的数据个数大于这个比例,则以冷组多余的页数划分给缓存区。
在本发明中,缓存区部分存储的是闪存中全局映射表的部分经常更新的映射表项,以及从外部文件***来的写请求的经常更新的数据,因此为了更好地获得混合固态盘的读写性能,利用前人的内存分区技术对缓存区进行动态分区。
主要操作为设置两个关键参数Pb和Pm;根据不同情况下的读写请求,更新两个关键参数;经过一定的周期,根据参数Pb和Pm的变化,使用一组计算公式,找到最佳的数据缓存部分和映射关系的部分的大小比例;根据当前缓存区的组成情况和之前所获得的数据缓存部分和映射关系部分的最佳大小比例,调整缓存区的组成成分。
本发明中,当一个读请求到达固态盘后,如果其目标数据在缓存区域中,则可直接读取缓存中的数据,否则需要在PCM数据区域或闪存中读取数据。当目标数据不在缓存区域时,首先需要查询目标数据的映射地址,当该映射地址在PCM缓存区域中,那么可以马上得到目标数据的地址。当该映射地址不在PCM缓存区域中,并且如果PCM缓存区的映射表项部分已满,就要驱逐最不常用的映射关系。若该映射关系为脏,就需要根据全局映射目录查找到该翻译页,并进行更新,使其映射信息一致。之后根据全局映射目录,进一步找到要进行读出数据的地址,写入到PCM缓存区中。
当一个写请求到达时,如果这个写请求的数据存在于缓存区的数据部分中,写请求的新数据可以直接写到缓存区的数据部分,否则为了给该请求的新数据腾出位置,需要将缓存区的数据部分最不常用的数据写回到PCM数据区中。那么首先需要在缓存区的映射表项部分查询该写回数据的目标地址,若查找成功,则判断该目标地址是否在PCM的数据区中,若是的话,则根据PCM的特性,可以直接就地修改该写回数据,其对应的映射关系保持不变,若该目标地址在闪存中,需要在PCM数据区为该写回数据腾出空间。因此需要将PCM数据区中最少的更新次数的页进行迁移至闪存中,并修改写回页的映射关系和迁移页的映射关系。若在缓存区未能找到该写回数据的目标地址,需要为该写回数据的映射关系腾出空间,则驱逐出最不常用的映射关系,若该映射关系为脏,就需要根据全局映射目录查找到该翻译页,并进行更新,使其映射信息一致。这里的翻译页的更新都是在闪存中操作,而写入PCM数据区的数据都是从PCM缓存区驱逐下来的。将写回数据写回到PCM数据区中,若PCM数据区满,则驱逐PCM数据区最少更新次数的页迁移至闪存中,同时修改迁移页的映射关系。
以上仅就本发明的最佳实施例作了说明,但不能理解为是对权利要求的限制。本发明不仅局限于以上实施例,其具体结构允许有变化。凡在本发明独立权利要求的保护范围内所作的各种变化均在本发明保护范围内。
Claims (2)
1.一种基于非易失存储器的混合固态盘动态分区方法,其特征在于:所述方法包括以下步骤,
(1)、初始阶段,将PCM划分为缓存区和数据区,为PCM数据区的每个页设置一个计数器,并给第一次写入的页的计数器赋初值,只要在数据区的页被更新就加一,没有被更新的减一;
(2)、经过一定的周期后,统计数据区中每页的计数器的值,利用K-means算法对这些数据进行聚类分析,分成三类数据,并算出各类数据的质心;根据各个质心的值,将三组数据由大到小分为热组,暖组,冷组,并统计各个组的数据个数;
(3)、设置两个阈值K1,K2,分别表示热组中页更新的最少次数,冷组中页的更新最多的次数;如果热组中的质心小于K1时,就求出热组中小于K1的数目,划分该数目的页面给缓存区;如果冷组中的质心大于K2时,就求出冷组中大于K2的数目,划分该数目的页面给数据区;如果两者情况都未发生,就进入步骤(4);
(4)、设置热组和冷组的大小为一定比例,并将统计的热组与冷组的数据个数进行比较,如果热组的数据个数大于这个比例,则以热组多余的页数划分给数据区,如果冷区的数据个数大于这个比例,则以冷组多余的页数划分给缓存区;
其中,所述步骤(1)中缓存区存储的是闪存中全局映射表经常更新的映射表项,以及从外部文件***来的写请求的经常更新的数据。
2.根据权利要求1所述的一种基于非易失存储器的混合固态盘动态分区方法,其特征在于:所述步骤(1)中缓存区和数据区的容量比例为一比一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492965.9A CN112559384B (zh) | 2020-12-17 | 2020-12-17 | 一种基于非易失存储器的混合固态盘动态分区方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492965.9A CN112559384B (zh) | 2020-12-17 | 2020-12-17 | 一种基于非易失存储器的混合固态盘动态分区方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559384A CN112559384A (zh) | 2021-03-26 |
CN112559384B true CN112559384B (zh) | 2022-04-15 |
Family
ID=75064334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011492965.9A Expired - Fee Related CN112559384B (zh) | 2020-12-17 | 2020-12-17 | 一种基于非易失存储器的混合固态盘动态分区方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559384B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098233B (zh) * | 2022-06-24 | 2024-05-28 | 上海交通大学 | 缓存分区感知的调度方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814044A (zh) * | 2010-04-19 | 2010-08-25 | 中兴通讯股份有限公司 | 元数据处理方法及装置 |
CN102681792A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种固态盘内存分区方法 |
CN104050043A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 基于共享缓存感知的虚拟机调度方法和装置 |
CN105389135A (zh) * | 2015-12-11 | 2016-03-09 | 华中科技大学 | 一种固态盘内部缓存管理方法 |
CN106951376A (zh) * | 2017-02-27 | 2017-07-14 | 清华大学 | 面向闪存的细粒度非易失缓存***以及缓存管理方法 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
CN111027585A (zh) * | 2019-10-25 | 2020-04-17 | 南京大学 | 一种基于k-means++质心初始化的k-means算法硬件实现方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640069B (zh) * | 2008-08-01 | 2013-12-18 | 群联电子股份有限公司 | 用于闪速存储器的平均磨损方法与平均磨损*** |
CN101794257B (zh) * | 2009-12-22 | 2012-10-03 | 深圳市硅格半导体有限公司 | 资料储存型闪存的数据更新方法及装置 |
US8832411B2 (en) * | 2011-12-14 | 2014-09-09 | Microsoft Corporation | Working set swapping using a sequentially ordered swap file |
CN104794483A (zh) * | 2015-03-24 | 2015-07-22 | 江南大学 | 基于类间极大化的pcm聚类技术的图像分割方法 |
FR3076002B1 (fr) * | 2017-12-22 | 2021-05-07 | Bull Sas | Procede d'amelioration du temps d'execution d'une application informatique |
-
2020
- 2020-12-17 CN CN202011492965.9A patent/CN112559384B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814044A (zh) * | 2010-04-19 | 2010-08-25 | 中兴通讯股份有限公司 | 元数据处理方法及装置 |
CN102681792A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种固态盘内存分区方法 |
CN104050043A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 基于共享缓存感知的虚拟机调度方法和装置 |
CN105389135A (zh) * | 2015-12-11 | 2016-03-09 | 华中科技大学 | 一种固态盘内部缓存管理方法 |
CN106951376A (zh) * | 2017-02-27 | 2017-07-14 | 清华大学 | 面向闪存的细粒度非易失缓存***以及缓存管理方法 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
CN111027585A (zh) * | 2019-10-25 | 2020-04-17 | 南京大学 | 一种基于k-means++质心初始化的k-means算法硬件实现方法及*** |
Non-Patent Citations (1)
Title |
---|
Improving Hybrid FTL by Fully Exploiting Internal SSD Parallelism with Virtual Blocks;何丹 等;《ACM Transactions on Architecture and Code Optimization》;20150131;第1-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559384A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761780B2 (en) | Memory system | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
US6675281B1 (en) | Distributed mapping scheme for mass storage system | |
US9990277B2 (en) | System and method for efficient address translation of flash memory device | |
US20140122774A1 (en) | Method for Managing Data of Solid State Storage with Data Attributes | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
CN111033477A (zh) | 逻辑到物理映射 | |
US9524238B2 (en) | Systems and methods for managing cache of a data storage device | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
KR20090037705A (ko) | 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법 | |
JP2011522350A (ja) | ハイブリッドメモリ管理 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN106873912A (zh) | Tlc芯片固态硬盘的动态分区存储方法及装置、*** | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN116364148A (zh) | 一种面向分布式全闪存储***的磨损均衡方法及*** | |
CN112559384B (zh) | 一种基于非易失存储器的混合固态盘动态分区方法 | |
CN108664217B (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
CN116540950B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220415 |