CN103049397B - 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 - Google Patents
一种基于相变存储器的固态硬盘内部缓存管理方法及系统 Download PDFInfo
- Publication number
- CN103049397B CN103049397B CN201210559664.2A CN201210559664A CN103049397B CN 103049397 B CN103049397 B CN 103049397B CN 201210559664 A CN201210559664 A CN 201210559664A CN 103049397 B CN103049397 B CN 103049397B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- memory
- page
- data page
- 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.)
- Active
Links
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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种基于新型存储器的固态硬盘内部缓存管理方法及系统,所述管理系统包括SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存,所述固态硬盘内部管理系统中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,本发明通过基于PCRAM的SSD内部缓存管理方法,实现对固态硬盘的写的缓存以克服固态硬盘的读写不均衡特性、有效提高写性能、减少固态硬盘的随机写操作及擦出操作,以此来延长固态硬盘的寿命及提高固态硬盘的整体I/O性能。
Description
技术领域
本发明涉及固态硬盘缓存技术领域,特别是涉及一种基于相变存储器的固态硬盘内部缓存管理方法及系统。
背景技术
随着计算机信息技术的广泛应用,在人类社会中存在海量的数据需要处理和存储。因此信息技术的高速发展对存储系统的性能也提出了更高的要求,目前计算机存储系统的容量已经有了极大的提高,但是传统磁盘存储器在数据传输率方面还存在瓶颈。为此,固态硬盘技术应运而生,固态硬盘迎合了信息存储发展的趋势,相比传统的磁盘系统其具有更快的单元读写速度、更低的能耗、更强的移动可靠性等优势。
然而,固态硬盘因其广泛采用了NAND Flash闪存芯片作为存储单元,因而其也具有Flash的一些特征,由于其制造工艺的问题,存在以下缺点:
(1)读取和写入速度不对称,写入速度比读取速度慢两个数量级,读取和写入以页为单位,擦除以块为单位;
(2)先擦除后写入,闪存的一个突出特点就是一个数据页在更新时,必须将此页所在的块擦除后再写入,而且闪存的擦除速度远远落后于读写速度;
(3)易出现坏块,闪存的块擦除次数有一定限制,超过此限制将导致坏块出现,同时使用过程中,块与块之间擦除次数不均衡会导致固态硬盘的寿命问题。
这些缺点造成固态硬盘写性能,尤其是随机写性能低下,严重阻碍了固态硬盘在桌面领域的应用,因为在桌面领域,尤其是服务器存在大量的随机写请求。
同时,缓冲区管理是提高闪存访存性能的一种重要且非常有效的手段,对降低闪存的访问开销具有重要意义。目前已有的缓冲区置换策略没有考虑闪存不同于磁盘的特性,只着眼于提高缓冲区的命中率,如果直接它们应用在闪存上,闪存的总访问开销可能会非常大,但如果只着眼于减少写操作,又有可能会大幅度降低缓冲区的命中率,产生过多的读操作,降低闪存的访问性能。
因此,如何克服固态硬盘的读写不均衡特性、有效提高写性能、减少固态硬盘中块的擦除次数、减少固态硬盘的随机写操作,以及如何实现固态硬盘的缓存区有效管理,以此来延长固态硬盘的寿命及提高固态硬盘的整体I/O性能成为从业者亟待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于相变存储器的固态硬盘内部缓存管理方法,用于解决现有技术中固态硬盘的读写不均衡、FLASH闪存芯片的擦写次数有限、随机写操作对FLASH闪存芯片的寿命影响等问题。
为实现上述目的及其他相关目的,本发明提供一种基于相变存储器的固态硬盘内部缓存数据块置换方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据块置换方法包括以下步骤:1)判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤2),若无,则转至步骤3);2)将所述DRAM内存中更新的相关数据页置换到所述PCRAM缓存中存放该数据块聚簇相对应的数据页逻辑地址,完成数据块置换;3)将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该数据块聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应的数据块聚簇写入所述PCRAM的空闲数据块,完成数据块置换。
本发明还提供一种基于相变存储器的固态硬盘内部闪存数据块回写方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述闪存数据块回写方法包括以下步骤:1)判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤2),若无,则转至步骤3);2)将所述DRAM内存中相应聚簇的数据页置换到PCRAM缓存中存放该聚簇相对应的数据页逻辑地址,然后将所述PCRAM缓存内相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写;3)将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写。
本发明另提供一种基于相变存储器的固态硬盘内部数据页读取方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据页读取方法包括以下步骤:1)依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址;2)将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号;3)判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤4),若不存在则转至步骤6);4)判断该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤5),若不存在则转至步骤6);5)将所述DRAM内存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取;6)判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤7),若不存在则转至步骤8);7)将所述PCRAM缓存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取;8)将所述NAND闪存中与块内逻辑偏移页号相对应的数据页中的内容返回给主机端文件系统,完成数据页读取。
本发明再提供一种基于相变存储器的固态硬盘内部数据页写入方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据页写入方法包括以下步骤:1)依据主机端文件系统发过来的数据更新指令将相应的访问地址转换为逻辑页地址;2)将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号;3)判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤4),若不存在则转至步骤11);4)判断与该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤5),若不存在则转至步骤8);5)将该逻辑块号对应的数据块聚簇移动到所述DRAM内存中缓冲区链表的队首;6)将更新数据写入该逻辑块号相对应的数据块聚簇中与该块内逻辑偏移页号相对应的数据页中;7)设置所述NAND闪存内对应位置的脏数据位,完成数据页写入;8)判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤9),若不存在则转至步骤10);9)标识所述PCRAM缓存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤5);10)标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤5);11)在所述DRAM内存中的聚簇链表的队首插入该逻辑块号相对应的聚簇节点;12)判断所述PCRAM缓存中是否存在该逻辑块号对应的数据块聚簇,若存在则执行步骤13),若不存在则转至步骤14);13)标识所述PCRAM缓存中该逻辑块号聚簇中逻辑偏移页号相对应的数据页无效,然后转至步骤6);14)标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤6)。
本发明还提供一种基于相变存储器的固态硬盘内部管理系统,包括SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存,所述固态硬盘内部管理系统中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表。
具体地,所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部,而读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
如上所述,本发明的基于相变存储器(PCRAM)的固态硬盘(Solid State Disk,简称SSD)内部缓存管理方法提出了一种新的固态硬盘存储架构,该硬件架构体系是在传统的体系架构下新添加PCRAM存储器来扩展移动硬盘写缓冲功能,PCRAM的主要作用包括两方面:一方面基于PCRAM缓存扩展DRAM(Dynamic Random Access Memory,即动态随机存取存储器,简称DRAM)内存空间,实现DRAM的写缓存,另一方面基于PCRAM的非易失特性保存数据页逻辑地址到物理地址之间的映射表。本发明通过基于PCRAM的SSD内部缓存管理方法,实现对固态硬盘的写的缓存以克服固态硬盘的读写不均衡特性、有效提高写性能、减少固态硬盘的随机写操作及擦出操作,以此来延长固态硬盘的寿命及提高固态硬盘的整体I/O性能。
附图说明
图1显示为本发明基于相变存储器的固态硬盘内部管理系统架构示意图。
图2显示为缓冲区链表示意图。
图3显示为基于相变存储器的固态硬盘内部缓存数据块置换示意图。
图4显示为基于相变存储器的固态硬盘内部缓存数据块置换方法流程图。
图5显示为本发明基于相变存储器的固态硬盘内部闪存数据块回写方法流程图。
图6显示为本发明的基于相变存储器的固态硬盘内部数据页读取方法流程示意图。
图7显示为本发明的基于相变存储器的固态硬盘内部数据页写入方法流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,显示为本发明基于相变存储器的固态硬盘内部管理系统架构示意图,如图所示,本发明提供一种基于相变存储器的固态硬盘内部管理系统,包括SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、NAND闪存(即NAND FLASH)、及PCRAM(Phase Change Random Access Memory,即相变存储器,简称PCRAM)缓存。
图1所示的架构体系是在传统的体系架构下新添加PCRAM存储器来扩展系统架构实现移动硬盘写缓存功能。在硬件架构体系中所述PCRAM缓存包括数据块置换区及映射表存储区两部分,其中所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,实现基于PCRAM缓存扩展DRAM内存空间,实现DRAM内存的写缓存,并以统一块回写闪存实现SSD内部写缓存减少对SSD随机写及擦写次数,延长SSD的使用寿命;基于PCRAM的非易失特性,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表。
所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;如图2所示,图2显示为缓冲区链表示意图,只有当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部,而读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序,缓冲区链表中各个节点的顺序反应了对数据块的写操作频率,并优先置换出缓冲区链表尾部数据页超过一定阈值的聚簇,提高命中率的同时降低闪存的随机写及擦除次数。
需要说明的是,本发明的基于相变存储器的固态硬盘内部管理系统的缓存管理方法包括固态硬盘内部缓存数据块置换、存数据块回写、数据页读取以及数据页写入等操作,以下将结合各操作的流程图分别予以详述。
当某一数据块节点的聚簇从DRAM内存向PCRAM缓存置换时,若PCRAM缓存内没有该节点的聚簇信息,则说明该数据块聚簇第一次由DRAM内存向PCRAM缓存置换,则首先将该数据块聚簇缺少的数据页从所述NAND闪存中读出,按逻辑顺序填入该聚簇,最后把整个数据块聚簇写入PCRAM缓存相应的空闲的数据块,如图3所示,图3显示为基于相变存储器的固态硬盘内部缓存数据块置换示意图,即首先将该数据聚簇相对应的FLASH内的有效数据页13,14读入DRAM内存并按数据页的逻辑顺序插入到该数据聚簇所对应的聚簇块中,最后将整个数据块的聚簇置换到PCRAM缓存。若PCRAM缓存内含有该节点的聚簇信息时则说明该数据块之前置换到PCRAM缓存,由于再次更新访问该数据块的相关数据页,相关数据页再次在DRAM内存中被更新,此时向PCRAM缓存的置换时需将DRAM内存中更新的相关数据页置换到PCRAM缓存内存放该聚簇相对应的数据页逻辑编号相应的位置即可。
具体地,基于PCRAM作为DRAM写的缓存,当某一数据块节点的聚簇位于缓冲区链表尾部且超过阈值时置换到PCRAM缓存,请参阅图4,显示为基于相变存储器的固态硬盘内部缓存数据块置换方法流程图,如图所示,所述数据块置换方法包括以下步骤:
步骤101,判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤102,若无,则转至步骤103。
步骤102,将所述DRAM内存中更新的相关数据页置换到所述PCRAM缓存中存放该数据块聚簇相对应的数据页逻辑地址,完成数据块置换。
步骤103,将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该数据块聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应的数据块聚簇写入所述PCRAM的空闲数据块,完成数据块置换。
基于PCRAM的SSD内部缓存管理方法,以统一块回写闪存方式更新NAND闪存中的数据,当DRAM内存中的数据块聚簇不再被访问或超过一定时间没被访问,则以数据块方式回写闪存,具体地,请参阅图5,显示为本发明基于相变存储器的固态硬盘内部闪存数据块回写方法流程图,如图所示,所述闪存数据块回写方法包括以下步骤:
步骤201,判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤202,若无,则转至步骤203。
步骤202,将所述DRAM内存中相应聚簇的数据页置换到PCRAM缓存中存放该聚簇相对应的数据页逻辑地址,然后将所述PCRAM缓存内相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写。
步骤203,将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写。
为进一步阐明本发明中所述基于PCRAM的SSD内部缓存管理方法原理及功效,请参阅图6,图6显示为本发明的基于相变存储器的固态硬盘内部数据页读取方法流程示意图。当系统进行读操作时,所述数据页读取方法包括以下步骤:
步骤301,依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址;具体地,所述SATA接口控制器依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址。
步骤302,将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号。
步骤303,判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤304,若不存在则转至步骤306。
步骤304,判断该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤305,若不存在则转至步骤306。
步骤305,将所述DRAM内存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取。
步骤306,判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤7,若不存在则转至步骤308。
步骤307,将所述PCRAM缓存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取。
步骤308,将所述NAND闪存中与块内逻辑偏移页号相对应的数据页中的内容返回给主机端文件系统,完成数据页读取。
所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
为进一步阐明本发明中所述基于PCRAM的SSD内部缓存管理方法原理及功效,请参阅图7,图7显示为本发明的基于相变存储器的固态硬盘内部数据页写入方法流程示意图,如图所示,当系统进行写操作时,所述数据页写入方法包括以下步骤:
步骤401,依据主机端文件系统发过来的数据更新指令将相应的访问地址转换为逻辑页地址;具体地,所述SATA接口控制器依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址。
步骤402,将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号。
步骤403,判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤404,若不存在则转至步骤411。
步骤404,判断与该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤405,若不存在则转至步骤408。
步骤405,将该逻辑块号对应的数据块聚簇移动到所述DRAM内存中缓冲区链表的队首。
步骤406,将更新数据写入该逻辑块号相对应的数据块聚簇中与该块内逻辑偏移页号相对应的数据页中。
步骤407,设置所述NAND闪存内对应位置的脏数据位,完成数据页写入。
步骤408,判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤409,若不存在则转至步骤410。
步骤409,标识所述PCRAM缓存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤405。
步骤410,标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤405。
步骤411,在所述DRAM内存中的聚簇链表的队首插入该逻辑块号相对应的聚簇节点。
步骤412,判断所述PCRAM缓存中是否存在该逻辑块号对应的数据块聚簇,若存在则执行步骤413,若不存在则转至步骤414。
步骤413,标识所述PCRAM缓存中该逻辑块号聚簇中逻辑偏移页号相对应的数据页无效,然后转至步骤406。
步骤414,标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤406。
所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部。
综上所述,本发明的基于相变存储器(PCRAM)的固态硬盘(Solid State Disk,简称SSD)内部缓存管理方法提出了一种新的固态硬盘存储架构,该硬件架构体系是在传统的体系架构下新添加PCRAM存储器来扩展移动硬盘写缓冲功能,PCRAM的主要作用包括两方面:一方面基于PCRAM缓存扩展DRAM(Dynamic Random Access Memory,即动态随机存取存储器,简称DRAM)内存空间,实现DRAM的写缓存,另一方面基于PCRAM的非易失特性保存数据页逻辑地址到物理地址之间的映射表。本发明通过基于PCRAM的SSD内部缓存管理方法,实现对固态硬盘的写的缓存以克服固态硬盘的读写不均衡特性、有效提高写性能、减少固态硬盘的随机写操作及擦出操作,以此来延长固态硬盘的寿命及提高固态硬盘的整体I/O性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (13)
1.一种基于相变存储器的固态硬盘内部缓存数据块置换方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,其特征在于,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据块置换方法包括以下步骤:
1)判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤2),若无,则转至步骤3);
2)将所述DRAM内存中更新的相关数据页置换到所述PCRAM缓存中存放该数据块聚簇相对应的数据页逻辑地址,完成数据块置换;
3)将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该数据块聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应的数据块聚簇写入所述PCRAM的空闲数据块,完成数据块置换;
其中,所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部,而读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
2.根据权利要求1所述的基于相变存储器的固态硬盘内部缓存数据块置换方法,其特征在于:还包括判断一数据块节点的聚簇位于缓冲区链表尾部且超过预设阈值时的步骤,若超过预设阈值则执行所述步骤1)。
3.一种基于相变存储器的固态硬盘内部闪存数据块回写方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,其特征在于,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述闪存数据块回写方法包括以下步骤:
1)判断所述PCRAM缓存内是否有相应数据块聚簇,若有,则执行步骤2),若无,则转至步骤3);
2)将所述DRAM内存中相应聚簇的数据页置换到PCRAM缓存中存放该聚簇相对应的数据页逻辑地址,然后将所述PCRAM缓存内相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写;
3)将该数据块聚簇缺少的数据页从所述NAND闪存中读出,并按逻辑顺序填入所述DRAM内存中该聚簇相对应的数据页逻辑地址,然后把所述DRAM内存中相应聚簇以块形式写入所述NAND闪存,完成闪存数据块回写。
4.根据权利要求3所述的基于相变存储器的固态硬盘内部闪存数据块回写方法,其特征在于:所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部,而读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
5.根据权利要求3所述的基于相变存储器的固态硬盘内部闪存数据块回写方法,其特征在于:还包括判断所述DRAM内存中的数据块聚簇是否超过预设时间没被访问的步骤,若是则执行所述步骤1)。
6.一种基于相变存储器的固态硬盘内部数据页读取方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,其特征在于,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据页读取方法包括以下步骤:
1)依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址;
2)将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号;
3)判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤4),若不存在则转至步骤6);
4)判断该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤5),若不存在则转至步骤6);
5)将所述DRAM内存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取;
6)判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤7),若不存在则转至步骤8);
7)将所述PCRAM缓存中与该块内逻辑偏移页号相对应的数据页中的内容返回给所述主机端文件系统,完成数据页读取;
8)将所述NAND闪存中与块内逻辑偏移页号相对应的数据页中的内容返回给主机端文件系统,完成数据页读取。
7.根据权利要求6所述的基于相变存储器的固态硬盘内部数据页读取方法,其特征在于:所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
8.根据权利要求6所述的基于相变存储器的固态硬盘内部数据页读取方法,其特征在于:所述步骤1)具体为所述SATA接口控制器依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址。
9.一种基于相变存储器的固态硬盘内部数据页写入方法,应用于包括有至少由SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存组成的硬件架构中,其特征在于,所述硬件架构中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表,所述数据页写入方法包括以下步骤:
1)依据主机端文件系统发过来的数据更新指令将相应的访问地址转换为逻辑页地址;
2)将所述逻辑页地址分成逻辑块号和块内逻辑偏移页号;
3)判断所述DRAM内存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤4),若不存在则转至步骤11);
4)判断与该逻辑块号对应的数据块聚簇中是否存在与该块内逻辑偏移页号相应的数据页,若存在则执行步骤5),若不存在则转至步骤8);
5)将该逻辑块号对应的数据块聚簇移动到所述DRAM内存中缓冲区链表的队首;
6)将更新数据写入该逻辑块号相对应的数据块聚簇中与该块内逻辑偏移页号相对应的数据页中;
7)设置所述NAND闪存内对应位置的脏数据位,完成数据页写入;
8)判断所述PCRAM缓存中是否存在与该逻辑块号对应的数据块聚簇,若存在则执行步骤9),若不存在则转至步骤10);
9)标识所述PCRAM缓存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤5);
10)标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤5);
11)在所述DRAM内存中的聚簇链表的队首插入该逻辑块号相对应的聚簇节点;
12)判断所述PCRAM缓存中是否存在该逻辑块号对应的数据块聚簇,若存在则执行步骤13),若不存在则转至步骤14);
13)标识所述PCRAM缓存中该逻辑块号聚簇中逻辑偏移页号相对应的数据页无效,然后转至步骤6);
14)标识所述NAND闪存中的数据块聚簇中与所述块内逻辑偏移页号相对应的数据页无效,然后转至步骤6)。
10.根据权利要求9所述的基于相变存储器的固态硬盘内部数据页写入方法,其特征在于:所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部。
11.根据权利要求9所述的基于相变存储器的固态硬盘内部数据页写入方法,其特征在于:所述步骤1)具体为所述SATA接口控制器依据主机端文件系统发过来的数据页读取指令将相应的访问地址转换为逻辑页地址。
12.一种基于相变存储器的固态硬盘内部管理系统,包括SATA接口控制器、微处理器、DRAM内存、本地总线、闪存控制器、及NAND闪存,其特征在于,所述固态硬盘内部管理系统中还包括PCRAM缓存,所述PCRAM缓存包括数据块置换区及映射表存储区,其中,所述数据块置换区用于存放从所述DRAM内存置换到所述PCRAM缓存的数据块,所述映射表存储区用于保存数据页逻辑地址到物理地址之间的映射表。
13.根据权利要求12所述的于相变存储器的固态硬盘内部管理系统,其特征在于:所述DRAM内存中属于同一物理块的数据页按逻辑顺序进行聚簇,以数据页聚簇对应的数据块的块号为节点,形成缓冲区链表;当更新聚簇内的数据页或者向聚簇中插入新写操作数据页时,则将该数据页聚簇移动到缓冲区链表的头部,而读操作数据页时不改变数据页聚簇在缓冲区链表中的顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210559664.2A CN103049397B (zh) | 2012-12-20 | 2012-12-20 | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210559664.2A CN103049397B (zh) | 2012-12-20 | 2012-12-20 | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049397A CN103049397A (zh) | 2013-04-17 |
CN103049397B true CN103049397B (zh) | 2015-09-16 |
Family
ID=48062044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210559664.2A Active CN103049397B (zh) | 2012-12-20 | 2012-12-20 | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049397B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198021B (zh) * | 2013-04-18 | 2015-08-05 | 北京理工大学 | 一种提高固态硬盘数据传输效率的方法 |
CN103577349B (zh) * | 2013-11-06 | 2016-11-23 | 华为技术有限公司 | 在高速缓存中选择数据进行刷盘的方法和装置 |
CN104123249B (zh) * | 2014-07-22 | 2018-03-09 | 山西达鑫核科技有限公司 | 一种串行访问的新型动态存储器sddr架构阵列 |
CN104166634A (zh) * | 2014-08-12 | 2014-11-26 | 华中科技大学 | 一种固态盘系统中的映射表缓存管理方法 |
CN104503703B (zh) * | 2014-12-16 | 2018-06-05 | 华为技术有限公司 | 缓存的处理方法和装置 |
DE102015205827A1 (de) * | 2015-03-31 | 2016-10-06 | Siemens Aktiengesellschaft | Verfahren zum Schutz sicherheitsrelevanter Daten in einem Cachespeicher |
CN104899154B (zh) * | 2015-06-10 | 2017-08-29 | 山东大学 | 基于嵌入式系统混合主存的页面管理方法 |
CN105761756A (zh) * | 2016-02-01 | 2016-07-13 | 天固科技(杭州)有限公司 | 一种利用高性能非挥发固态存储器提高海量固态硬盘性能及可靠性的方案 |
CN107423232B (zh) * | 2016-05-24 | 2020-10-16 | 北京忆芯科技有限公司 | Ftl快速访问方法与装置 |
CN107491266A (zh) * | 2016-06-13 | 2017-12-19 | 恩智浦美国有限公司 | 大容量存储系统和块数据存储方法 |
CN107544912B (zh) * | 2016-06-29 | 2021-09-03 | 北京忆恒创源科技股份有限公司 | 一种日志记录方法、加载方法及其装置 |
US10289544B2 (en) * | 2016-07-19 | 2019-05-14 | Western Digital Technologies, Inc. | Mapping tables for storage devices |
US9965198B2 (en) * | 2016-07-21 | 2018-05-08 | Western Digital Technologies, Inc. | Internally preconditioning solid state drives for various workloads |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN108733576B (zh) * | 2017-04-20 | 2022-12-09 | 得一微电子股份有限公司 | 一种固态硬盘及其内存转换层对映方法 |
CN108255426B (zh) * | 2017-12-29 | 2021-04-20 | 深圳忆联信息系统有限公司 | 一种ssd硬盘的数据处理方法和装置 |
CN108647157B (zh) * | 2018-03-14 | 2021-10-01 | 深圳忆联信息系统有限公司 | 一种基于相变存储器的映射管理方法及固态硬盘 |
CN108664217B (zh) * | 2018-04-04 | 2021-07-13 | 安徽大学 | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 |
CN109101444A (zh) * | 2018-08-22 | 2018-12-28 | 深圳忆联信息系统有限公司 | 一种降低固态硬盘随机读延迟的方法及装置 |
CN109828931B (zh) * | 2019-01-25 | 2020-12-01 | 深圳忆联信息系统有限公司 | 一种dram碎片管理方法及其装置 |
CN110297607B (zh) * | 2019-06-28 | 2023-08-29 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘写性能的方法及其系统 |
CN110737607B (zh) * | 2019-09-30 | 2021-09-14 | 深圳忆联信息系统有限公司 | 管理hmb内存的方法、装置、计算机设备及存储介质 |
CN111026675B (zh) * | 2019-12-06 | 2022-02-15 | 华中科技大学 | 一种高效的闪存数据刷新方法及基于闪存的固态硬盘 |
CN111459405B (zh) * | 2020-03-05 | 2024-07-09 | 平安科技(深圳)有限公司 | 磁盘性能优化方法、装置、设备及计算机可读存储介质 |
CN111639037B (zh) * | 2020-05-12 | 2023-06-09 | 深圳大普微电子科技有限公司 | 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘 |
CN112069088B (zh) * | 2020-08-18 | 2023-03-28 | 浙江华忆芯科技有限公司 | 一种地址映射管理方法及相关装置、设备 |
CN112232498B (zh) * | 2020-10-12 | 2022-11-18 | 安徽寒武纪信息科技有限公司 | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 |
CN112486856A (zh) * | 2020-11-30 | 2021-03-12 | 珠海格力电器股份有限公司 | 显示扫描控制方法、装置、存储介质及控制设备 |
CN113568572B (zh) * | 2021-07-09 | 2024-03-22 | 浙江工业大学 | 一种基于固态硬盘的数据库并行排序连接系统 |
CN114356246B (zh) * | 2022-03-17 | 2022-05-13 | 北京得瑞领新科技有限公司 | Ssd内部数据的存储管理方法、装置、存储介质及ssd设备 |
CN115599308B (zh) * | 2022-11-28 | 2023-03-21 | 苏州浪潮智能科技有限公司 | 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101570A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
KR100950937B1 (ko) * | 2009-06-30 | 2010-04-08 | 주식회사 셀픽 | 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템 |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441081B2 (en) * | 2004-12-29 | 2008-10-21 | Lsi Corporation | Write-back caching for disk drives |
-
2012
- 2012-12-20 CN CN201210559664.2A patent/CN103049397B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101570A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
KR100950937B1 (ko) * | 2009-06-30 | 2010-04-08 | 주식회사 셀픽 | 솔리드 스테이트 디스크의 캐쉬 메모리 및 이를 이용한 캐쉬 관리시스템 |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049397A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 | |
CN103559138B (zh) | 固态硬盘及其空间管理方法 | |
CN102163175B (zh) | 一种基于局部性分析的混合地址映射方法 | |
US20150378886A1 (en) | Software-defined ssd and system using the same | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US20110320733A1 (en) | Cache management and acceleration of storage media | |
US9009396B2 (en) | Physically addressed solid state disk employing magnetic random access memory (MRAM) | |
CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
CN105718206B (zh) | 能够感知raid的闪存转换层及其实现方法 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US20140089582A1 (en) | Disk array apparatus, disk array controller, and method for copying data between physical blocks | |
CN101727295A (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
CN102779096A (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN106445405A (zh) | 一种面向闪存存储的数据访问方法及其装置 | |
TW202034178A (zh) | 資料儲存裝置與資料處理方法 | |
CN101714065A (zh) | 一种闪存控制器的映射信息管理方法 | |
CN102306124A (zh) | Nand Flash芯片硬件驱动层的实现方法 | |
CN104298615B (zh) | 一种存储器交换分区损耗的均衡方法 | |
CN101324899B (zh) | 一种快速写nand型flash的方法 | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN102880553A (zh) | 一种基于mcu的片外flash文件系统的读写方法 | |
CN104899158A (zh) | 访存优化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |