CN108509354B - 存储芯片硬件空间回收和管理方法 - Google Patents
存储芯片硬件空间回收和管理方法 Download PDFInfo
- Publication number
- CN108509354B CN108509354B CN201810241917.9A CN201810241917A CN108509354B CN 108509354 B CN108509354 B CN 108509354B CN 201810241917 A CN201810241917 A CN 201810241917A CN 108509354 B CN108509354 B CN 108509354B
- Authority
- CN
- China
- Prior art keywords
- state table
- layer state
- module
- hit
- space
- 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
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
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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
本发明提供了一种存储芯片硬件空间回收和管理方法,将缓存根据页的大小来分配所需要对应的表空间,根据对应的表的状态来判断对应的空间是否可以被释放重利用。同时,上下层的模块也可以根据访问对应空间的状态来确保数据一致性。结合缓存命中的标志位,可以有效地提高命中率,减少对FLASH的擦写操作,延长SSD的寿命。
Description
技术领域
本发明属于存储芯片技术领域,涉及一种存储芯片硬件空间回收和管理方法。
背景技术
当前固态硬盘(SSD)是一种利用FLASH作为介质的存储用磁盘。为了提高SSD的性能,降低对FLASH的擦除次数,延长SSD的使用寿命,数据缓存机制被应用上来,对应数据缓存空间,如何更科学地回收缓存空间重复利用是我们关注的话题。通常上下层模块通过同步状态来保证数据一致性以及回收已经完成的数据空间,这样会造成数据空间被过早回收导致的命中率较低,缓存的时效性较差的缺点。
发明内容
针对现有技术存在的不足,本发明的目的在于,提供一种存储芯片硬件空间回收和管理方法,解决现有技术中数据空间被过早回收导致的命中率较低、缓存的时效性较差的问题。
为了解决上述技术问题,本发明采用如下技术方案予以实现:
一种存储芯片硬件空间回收方法,包括:
若存储芯片为初始上电状态,则将所有缓存空间地址依次提交给上层模块,直至上层模块中没有空间存储缓存空间地址为止;
若存储芯片不是初始上电状态,根据回收机制进行重复回收操作,直至上层模块中没有空间存储缓存空间地址为止;
所述回收机制,包括:
依次选取缓存空间地址作为当前缓存空间地址;
回收模块分别对当前缓存空间地址的上层状态表、下层状态表和命中表进行查询,所述当前缓存空间地址的上层状态表、下层状态表和命中表均包括完成状态和未完成状态;
若当前缓存空间地址的上层状态表、下层状态表和命中表均为完成状态时,则当前缓存空间地址为可回收地址,将该可回收地址提交至上层模块,并将上层状态表、下层状态表和命中表的状态均更新为未完成。
进一步地,任一缓存空间地址的上层状态表、下层状态表和命中表中的状态通过分别对上层状态表、下层状态表和命中表的操作进行改变,对上层状态表、下层状态表和命中表中的操作通过仲裁原则进行管理;
所述仲裁原则包括:
(1)当任一缓存空间地址的上层状态表、下层状态表和命中表存在同一种操作时,优先响应该种操作;
(2)当通过软件对任一缓存空间地址的上层状态表、下层状态表和命中表进行操作时,优先响应该通过软件进行的操作;
(3)当任一缓存空间地址的上层状态表、下层状态表和命中表未进行同一种操作时,则根据操作顺序进行响应。
进一步地,所述对上层状态表、下层状态表和命中表中的操作包括以下类型:上层模块的写请求、上层模块的读请求、下层模块的写请求、下层模块的读请求、回收模块的写请求、回收模块的读请求、通过软件进行的读请求、通过软件进行的写请求以及搜索模块的写请求。
本发明与现有技术相比,具有如下技术效果:
本发明在回收机制中加入缓存命中的标志位,可以有效地将空间合理地分配以及回收,同时有效地将数据保留在缓存搜索队列中,提高缓存的命中效率,降低对FLASH的擦写操作。
附图说明
图1是整体模块操作框图;
图2是空间回收流程图;
图3是空间管理的示意图;
图4是管理操作列表图。
以下结合附图对本发明的具体内容作进一步详细解释说明。
具体实施方式
以下给出本发明的具体实施例,需要说明的是本发明并不局限于以下具体实施例,凡在本申请技术方案基础上做的等同变换均落入本发明的保护范围。
实施例1:
本实施例提供了一种存储芯片硬件空间回收方法,如图2所示,包括:
当存储芯片上电之后,空间回收模块即开始工作;
若存储芯片为初始上电状态,则将所有缓存空间地址依次提交给上层模块,直至上层模块中没有空间存储缓存空间地址为止;
因为若存储芯片为初始上电状态,则此时默认缓存空间状态为空,即全部缓存空间默认为可用状态。
本实施例中通过存储芯片内部初始的标志位来判断此时芯片是否为初始状态。
若存储芯片不是初始上电状态,根据回收机制进行重复回收操作,直至上层模块中没有空间存储缓存空间地址为止;
回收机制,包括:
任选一缓存空间地址作为当前缓存空间地址;
回收模块分别对当前缓存空间地址的上层状态表、下层状态表和命中表进行查询,所述当前缓存空间地址的上层状态表、下层状态表和命中表均包括完成状态和未完成状态;
若当前缓存空间地址的上层状态表、下层状态表和命中表均为完成状态时,则当前缓存空间地址为可回收地址,将该可回收地址提交至上层模块,并将上层状态表、下层状态表和命中表的状态均更新为未完成。
本实施例中的上层状态表、下层状态表和命中表统称为状态表,其用于表征此时上层模块、下层模块和缓存命中队列的工作状态,其中工作状态包括“完成”和“未完成”;
回收机制即为根据上层模块、下层模块和缓存命中队列的完成状态来判断是否已经可以对当前的缓存空间进行回收操作;
如表1所示为状态表的表征:
表1
根据表1中的状态,当上层状态表、下层状态表和命中表的状态均为1,即“完成”,则表示该缓存空间可以回收。
例如对于缓存空间回收管理模块,有三块RAM存储空间代表不同的三个模块状态,用NVMe_RAM、NFC_RAM、HIT_RAM来代表,其中NVMe_RAM表示上层状态表,NFC_RAM表示下层状态表,HIT_RAM表示命中状态表,每块RAM空间为4096X64bit,本实施例用单独一行的部分来举例,即每个RAM只举例8bit。
1、初始化(第一轮):
当初始化即第一轮回收时,表明当前DDR空间为全部可用,此时回收模块会无视RAM中的数据,直接将所有bit清零并将所代表的ddr_addr写入供NVMe读取的fifo中,该fifo是与上层模块交互DDR缓存地址空间的存储FIFO,此时3个RAM内部即为:
NVMe_RAM:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
NFC_RAM:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
HIT_RAM:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
此时fifo中数据为从00~07的ddr地址数据。
2、可回收状态:
如果3块RAM的状态如下(非第一轮):
NVMe_RAM:
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
NFC_RAM:
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
HIT_RAM:
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
则当回收模块回收到红色位置时,将当前的3块RAM中的1做清零操作,然后将其所代表的ddr地址,写入fifo中,此时fifo中新写入数据为03
3、不可回收状态:
如果3块RAM状态如下(非第一轮):
NVMe_RAM:
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
NFC_RAM:
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
HIT_RAM:
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
即为当3块RAM内数据有一个或者两个为‘1’时,此时代表3个master中有两方或者一方并未完成操作,此时当前bit所代表的ddr地址不可回收。
实施例2:
本实施例在实施例1的基础上提供了一种存储芯片硬件空间管理方法,如图3所示,包括:
任一缓存空间地址的上层状态表、下层状态表和命中表中的状态通过分别对上层状态表、下层状态表和命中表的操作进行改变,对上层状态表、下层状态表和命中表中的操作通过仲裁原则进行管理;
仲裁原则包括:
(1)当任一缓存空间地址的上层状态表、下层状态表和命中表存在同一种操作时,优先响应该操作;
(2)当通过软件对任一缓存空间地址的上层状态表、下层状态表和命中表进行操作时,优先响应该操作;
(3)当任一缓存空间地址的上层状态表、下层状态表和命中表未进行同一种操作时,则根据操作顺序进行响应。
本实施例中的所述对上层状态表、下层状态表和命中表中的操作包括以下类型:上层模块的写请求、上层模块的读请求、下层模块的写请求、下层模块的读请求、回收模块的写请求、回收模块的读请求、通过软件进行的读请求、通过软件进行的写请求以及搜索模块的写请求;
其中,如图4所示:
上层模块的写请求包括:
(1)当执行写命令操作时,上层模块将数据存入缓存后执行此请求命令;
(2)当执行读命令操作时,上层模块将数据从缓存中完整取出后执行此请求命令;
上层模块的读请求包括:当执行读命令操作时,执行此请求命令,对下层模块完成状态进行预读操作,待下层已完成数据传输后进行取数据操作;
下层模块的写请求包括:
(1)当执行写命令操作时,下层模块将数据从缓存中写入FLASH后执行此请求命令;
(2)当执行读命令操作时,下层模块将数据从FLASH写入缓存结束后执行此请求命令;
下层模块的读请求包括:当执行写命令操作时执行此命令,对上层模块是否将数据写入缓存的状态位进行查询预读,待上层模块完成数据传输后再进行读取数据操作;
搜索模块的写请求包括:当命令已经被踢除命令搜索列表后执行此操作;
回收模块的写请求包括:当空间回收模块回收空间地址并发送给上层模块后执行此请求操作,用于初始化此地址空间的状态;
回收模块的读请求包括:当空间回收模块需要对缓存空间进行查询并判断是否可以回收时执行此操作;
通过软件进行的写请求包括:通过寄存器对状态为进行置位操作;
通过软件进行的读请求包括:通过执行此命令读取上层模块状态位来判断数据是否已经完整写入缓存,然后通过DMA来将数据传输完成,然后执行固件写请求命令。
例如,在实施例1中的举例中,对于缓存空间回收管理模块,有三块RAM存储空间代表不同的三个模块状态,下文用NVMe_RAM、NFC_RAM、HIT_RAM来代表,每块RAM空间为4096X64bit,本实施例用单独一行的部分来举例,即每个RAM只举例8bit。
1、NVMe_RAM的操作:
NVMe对NVMe_RAM有写1’b1的权限;
FW(固件)对NVMe_RAM有写1’b1及1’b0的权限;
缓存空间回收模块对NVMe_RAM有写1’b0的权限;
NFC对NVMe_RAM有读取权限;
FW对NVMe_RAM有读取权限;
2、NFC_RAM的操作
NFC对NFC_RAM有写1’b1的权限;
FW(固件)对NFC_RAM有写1’b1及1’b0的权限;
缓存空间回收模块对NFC_RAM有写1’b0的权限;
NVMe对NFC_RAM有读取权限;
FW对NFC_RAM有读取权限;
3、HIT_RAM的操作
命中模块对HIT_RAM有写1’b1的权限
FW(固件)对HIT_RAM有写1’b1及1’b0的权限;
FW对HIT_RAM有读取权限;
4、操作的优先级(仲裁操作)
根据仲裁机制,举例如下:对于NFC_RAM来讲,当同一时间固件、缓存空间管理模块,NFC以及NVMe都有操作时,优先响应固件的操作,当固件操作完成交出仲裁权时,判断是否有对3块RAM同时处理的操作(缓存空间管理模块操作),此时有相应的请求,所以需要响应请求,执行结束后进入硬件仲裁,此时如果通过轮询到了NFC,则NFC执行写操作后再执行NVMe的读操作,反之则先进行NVMe的读操作后进行NFC的写操作。
Claims (3)
1.一种存储芯片硬件空间回收方法,其特征在于,包括:
若存储芯片为初始上电状态,则将所有缓存空间地址依次提交给上层模块,直至上层模块中没有空间存储缓存空间地址为止;
若存储芯片不是初始上电状态,根据回收机制进行重复回收操作,直至上层模块中没有空间存储缓存空间地址为止;
所述回收机制,包括:
依次选取缓存空间地址作为当前缓存空间地址;
回收模块分别对当前缓存空间地址的上层状态表、下层状态表和命中表进行查询,所述当前缓存空间地址的上层状态表、下层状态表和命中表均包括完成状态和未完成状态;
若当前缓存空间地址的上层状态表、下层状态表和命中表均为完成状态时,则当前缓存空间地址为可回收地址,将该可回收地址提交至上层模块,并将上层状态表、下层状态表和命中表的状态均更新为未完成。
2.一种存储芯片硬件空间管理方法,其特征在于,任一缓存空间地址的上层状态表、下层状态表和命中表中的状态通过分别对上层状态表、下层状态表和命中表的操作进行改变,对上层状态表、下层状态表和命中表中的操作通过仲裁原则进行管理;
所述仲裁原则包括:
(1)当任一缓存空间地址的上层状态表、下层状态表和命中表存在同一种操作时,优先响应该种操作;
(2)当通过软件对任一缓存空间地址的上层状态表、下层状态表和命中表进行操作时,优先响应该通过软件进行的操作;
(3)当任一缓存空间地址的上层状态表、下层状态表和命中表未进行同一种操作时,则根据操作顺序进行响应。
3.根据权利要求2所述的存储芯片硬件空间管理方法,其特征在于,所述对上层状态表、下层状态表和命中表中的操作包括以下类型:上层模块的写请求、上层模块的读请求、下层模块的写请求、下层模块的读请求、回收模块的写请求、回收模块的读请求、通过软件进行的读请求、通过软件进行的写请求以及搜索模块的写请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810241917.9A CN108509354B (zh) | 2018-03-22 | 2018-03-22 | 存储芯片硬件空间回收和管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810241917.9A CN108509354B (zh) | 2018-03-22 | 2018-03-22 | 存储芯片硬件空间回收和管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509354A CN108509354A (zh) | 2018-09-07 |
CN108509354B true CN108509354B (zh) | 2020-06-23 |
Family
ID=63378146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810241917.9A Active CN108509354B (zh) | 2018-03-22 | 2018-03-22 | 存储芯片硬件空间回收和管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509354B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716887B (zh) * | 2019-09-11 | 2021-08-10 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1176433A (zh) * | 1996-09-09 | 1998-03-18 | 株式会社东芝 | 高速缓存清理装置以及具备该装置的计算机系统 |
CN101488919A (zh) * | 2009-02-13 | 2009-07-22 | 华为技术有限公司 | 存储地址分配方法和装置 |
CN104636285A (zh) * | 2015-02-03 | 2015-05-20 | 北京麓柏科技有限公司 | 一种闪存存储系统及其读写、删除方法 |
CN107256196A (zh) * | 2017-06-13 | 2017-10-17 | 北京中航通用科技有限公司 | 基于闪存阵列的支持零拷贝的缓存系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130103889A1 (en) * | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
-
2018
- 2018-03-22 CN CN201810241917.9A patent/CN108509354B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1176433A (zh) * | 1996-09-09 | 1998-03-18 | 株式会社东芝 | 高速缓存清理装置以及具备该装置的计算机系统 |
CN101488919A (zh) * | 2009-02-13 | 2009-07-22 | 华为技术有限公司 | 存储地址分配方法和装置 |
CN104636285A (zh) * | 2015-02-03 | 2015-05-20 | 北京麓柏科技有限公司 | 一种闪存存储系统及其读写、删除方法 |
CN107256196A (zh) * | 2017-06-13 | 2017-10-17 | 北京中航通用科技有限公司 | 基于闪存阵列的支持零拷贝的缓存系统及方法 |
Non-Patent Citations (1)
Title |
---|
IP-SAN 中安全缓存的设计与实现 ;谢长生, 戴明;《计算机工程与科学》;20040331;第26卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108509354A (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US10282132B2 (en) | Methods and systems for processing PRP/SGL entries | |
KR100772863B1 (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
EP2115595B1 (en) | Memory device performance enhancement through pre-erase mechanism | |
US8321639B2 (en) | Command tracking for direct access block storage devices | |
CN106598878B (zh) | 一种固态硬盘冷热数据分离方法 | |
US20190369892A1 (en) | Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
CN109582217A (zh) | 数据储存装置与将数据写入存储器装置的方法 | |
WO2016041401A1 (zh) | 向缓存中写入数据的方法及装置 | |
CN102428449A (zh) | 数据存储装置中的后台无用单元收集的主机控制 | |
JP6734768B2 (ja) | 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
CN109240939B (zh) | 一种快速处理固态硬盘trim的方法 | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US20140304487A1 (en) | Information processing apparatus, memory control device, and data transfer control method | |
CN108228483B (zh) | 处理原子写命令的方法和设备 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
WO2014101485A1 (zh) | 一种内存监控方法及相关装置 | |
CN110674056A (zh) | 一种垃圾回收方法及装置 | |
CN108509354B (zh) | 存储芯片硬件空间回收和管理方法 | |
TWI529730B (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
CN110312986B (zh) | 用于在固态设备上存储数据的流的机会性使用 | |
CN105653466A (zh) | 数据储存装置以及快闪存储器控制方法 | |
TWI749279B (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 |