CN110489354B - 支持两种位宽的磨损均衡垃圾回收加速装置 - Google Patents
支持两种位宽的磨损均衡垃圾回收加速装置 Download PDFInfo
- Publication number
- CN110489354B CN110489354B CN201910751746.9A CN201910751746A CN110489354B CN 110489354 B CN110489354 B CN 110489354B CN 201910751746 A CN201910751746 A CN 201910751746A CN 110489354 B CN110489354 B CN 110489354B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- maximum value
- data reading
- clock
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种支持两种位宽的磨损均衡垃圾回收加速装置,包括数据读取模块、最值生成模块、配置模块、数据总线和控制总线,配置模块给出数据读取信息和最值生成信息,发起数据读取,等待最值生成后将比较结果反馈给系统总线,数据读取模块根据来自配置模块的数据读取信息从数据总线读取相应地址的块信息表的内容,最值生成模块,根据配置模块给出的最值生成信息将从数据读取模块进入的数据迭代比较最终得到最值索引。本装置采用硬件加速策略帮助实现磨损均衡和垃圾回收,可支持两种总线位宽和两种固件结构体大小的自由组合,减少Flash每次擦写所耗时间,提高闪存的使用效率和使用寿命。
Description
技术领域
本发明涉及一种支持两种位宽的磨损均衡垃圾回收加速装置,使用硬件加速对FTL(Flash translation layer)中表项的搜索比较,通过对不同FTL表和不同总线位宽采用不同的硬件设计,帮助实现闪存的磨损均衡和垃圾回收。
背景技术
闪存具有擦除次数有限、先擦后写的特点,因此需要均衡flash中每个块的擦写频率来延长闪存的使用寿命,即所谓的磨损均衡。把一个闪存块里的‘有效’页数据复制到一个“空白”块里,然后把这个块完全擦除即所谓的垃圾回收。为实现磨损均衡和垃圾回收,软件需要建立包含块的擦除信息及块中有效页个数及平均擦除次数等信息的表(块信息表),以此决定Flash后续的擦写操作,并更新块查询表(LBA和PBA的映射表)。这些表存储在闪存的特殊地址单元中,系统上电后cpu将其读入内存中实时更新。然而单纯通过软件将块信息表中的信息逐一读取比对耗时较长,使得闪存的擦写操作变慢。
发明内容
本发明要解决的技术问题是提供一种支持两种位宽的磨损均衡垃圾回收加速装置,提高对Flash的擦写效率。
为了解决所述技术问题,本发明采用的技术方案是:支持两种位宽的磨损均衡垃圾回收加速装置,其特征在于:包括:
配置模块,用于给出数据读取信息和最值生成信息,发起数据读取,等待最值生成后将比较结果反馈给系统总线,数据读取信息包括块信息表的地址和长度,最值生成信息包括工作模式、比较项目和通路选择,配置模块根据数据总线位宽和固件结构体的大小决定通路选择,固件结构体的大小决定块信息表中记录的位宽;
数据读取模块,根据来自配置模块的数据读取信息从数据总线读取相应地址的块信息表的内容;
最值生成模块,根据配置模块给出的最值生成信息将从数据读取模块进入的数据迭代比较最终得到最值索引并输出给配置模块;
最值生成模块包括数据通路、时钟和比较器,数据通路包括正常数据通路、2倍频数据通路和2分频数据通路,时钟包括正常时钟、2倍频时钟和2分频时钟;
当数据总线位宽为128bit、固件结构体大小为16byte或者数据总线位宽为256bit、固件结构体大小为32byte时,数据读取模块读取的数据通过正常数据通路传送给比较器进行比较,在此过程中使用正常时钟;
当数据总线位宽为128bit、固件结构体大小为32byte时,数据读取模块读取的数据通过2倍频数据通路传送给比较器进行比较,在此过程中使用2倍频时钟;
当数据总线位宽为256bit,固件结构体大小为16byte时,数据读取模块读取的数据通过2分频数据通路传送给比较器进行比较,在此过程中使用2分频时钟。
进一步的,2倍频数据通路在一个时钟周期内接收数据总线传来的两个128bit数据,将此两个128bit数据分成高16byte和低16byte,然后将高16byte和低16byte叠加成32byte进行传输。
进一步的,2分频数据通路将数据总线传输来的256bit数据拆分成两个16byte进行传输。
进一步的,最值生成模块的工作模式包括单项比较和多项加权比较,最值生成模块的比较器包括单项比较器和多项加权比较器。
进一步的,比较项包括擦除次数和有效页个数。
本发明的有益效果:本发明采用硬件加速策略帮助实现磨损均衡和垃圾回收,本发明的优点在于可支持两种总线位宽和两种固件结构体大小的自由组合。充分利用硬件的速度优势配合软件减少Flash每次擦写所耗时间,提高闪存的使用效率和使用寿命。
附图说明
图1为本发明的原理框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
本实施例公开一种支持两种位宽的磨损均衡垃圾回收加速装置,如图1所示,包括块信息表、数据读取模块、最值生成模块、配置模块、数据总线控制总线。
块信息表在系统上电后存放在缓存中,掉电后存放在Flash当中,块信息表内存储有块的擦除信息、块中有效页个数及平均擦除次数等信息,本方法能找到指定类型块信息表中某个或者某几个比较项目的最值之索引值,根据索引值给出的磨损均衡和垃圾回收的备选块信息,提高软件对Flash的擦写效率。
配置模块用于给出数据读取信息和最值生成信息,发起数据读取,等待最值生成后将比较结果反馈给系统总线,数据读取信息包括块信息表的地址和长度,最值生成信息包括工作模式、比较项目和通路选择,配置模块根据数据总线位宽和固件结构体的大小决定通路选择,固件结构体的大小决定块信息表中记录的位宽。
数据读取模块,根据来自配置模块的数据读取信息从数据总线读取相应地址的块信息表的内容。
最值生成模块,根据配置模块给出的最值生成信息将从数据读取模块进入的数据迭代比较最终得到最值索引并输出给配置模块。
最值生成模块包括数据通路、时钟和比较器,数据通路包括正常数据通路、2倍频数据通路和2分频数据通路,时钟包括正常时钟、2倍频时钟和2分频时钟;
当数据总线位宽为128bit、固件结构体大小为16byte或者数据总线位宽为256bit、固件结构体大小为32byte时,数据读取模块读取的数据通过正常数据通路传送给比较器进行比较,在此过程中使用正常时钟。
当数据总线位宽为128bit、固件结构体大小为32byte时,数据读取模块读取的数据通过2倍频数据通路传送给比较器进行比较,在此过程中使用2倍频时钟。
当数据总线位宽为256bit,固件结构体大小为16byte时,数据读取模块读取的数据通过2分频数据通路传送给比较器进行比较,在此过程中使用2分频时钟。
本实施例中,2倍频数据通路在一个时钟周期内接收数据总线传来的两个128bit数据,将此两个128bit数据分成高16byte和低16byte,然后将高16byte和低16byte叠加成32byte进行传输。
本实施例中,2分频数据通路将数据总线传输来的256bit数据拆分成两个16byte进行传输。在图1中,B代表byte(字节),b代表bit(比特)。
本实施例中,最值生成模块的工作模式包括单项比较和多项加权比较,最值生成模块的比较器包括单项比较器和多项加权比较器。比较项包括擦除次数和有效页个数。最值生成模块根据比较项信息进行擦除次数和/或有效页个数的比较,生成相应的最值。
利用本实施例所述装置提供块信息表最值的步骤为:
1、系统中的CPU(固件)将需要求最值的块信息表的地址及长度、工作模式(多项加权模式时需要配置加权参数寄存器)、比较项、数据位宽信息和结构体大小信息通过控制总线写入到配置模块中相应的寄存器。
2、配置模块将块信息表的地址及长度传递给数据读取模块并启动数据读取模块。同时配置模块根据数据总线位宽和固件结构体大小决定的通路选择(时钟选择,数据通路选择,比较器选择)传递给最值比较模块并启动其比较操作。
3、数据读取模块从数据总线读取数据并传递给最值生成模块。
4、最值生成模块根据配置模块给出的通路选择进行数据比较得到最值索引。步骤三和步骤四是流水进行,即只要外部数据总线不忙,数据读取模块可以发送burst传输不间断地将所有数据读入,同时最值生成模块不间断地迭代比较,数据读取完成时即可得到最值索引。因有2倍频时钟和2分频时钟,对于最值生成模块每个时钟周期进一拍数据并完成一次数据比较。
5、将步骤4得到的最值索引存入配置模块的寄存器,以备CPU(固件)访问。
本装置实现的是硬件加速查找最值的功能,硬件加速之所以比软件快,是基于以下两点:1、软件使用CPU运算一次需要多个(几个到十几个)时钟周期,硬件可以每一个时钟周期都可以进行一次运算,即频率相同时硬件加速器的效率可以几倍或者十几倍于CPU;2、CPU的位宽受限于64bit,而硬件加速模块的位宽可以自定义,并且数据总线位宽一般为128bit或者256bit,因此如果频率相同的情况下每个时钟周期处理的数据量也2或4倍于CPU。
本装置可以实现:1、根据系统总线位宽和固件结构体大小选择合适的数据通路;2、找到指定类型块中某个比较项目的最值之索引值;3、根据权重信息计算出几个比较项目的加权运算结果,比较该结果得到其最值所对应的索引值。这些索引值给出了磨损均衡和垃圾回收的备选块信息,提高了软件对Flash的擦写效率。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (4)
1.支持两种位宽的磨损均衡垃圾回收加速装置,其特征在于:包括:
配置模块,用于给出数据读取信息和最值生成信息,发起数据读取,等待最值生成后将比较结果反馈给系统总线,数据读取信息包括块信息表的地址和长度,最值生成信息包括工作模式、比较项目和通路选择,配置模块根据数据总线位宽和固件结构体的大小决定通路选择,固件结构体的大小决定块信息表中记录的位宽;比较项目包括擦除次数和有效页个数;
数据读取模块,根据来自配置模块的数据读取信息从数据总线读取相应地址的块信息表的内容;
最值生成模块,根据配置模块给出的最值生成信息将从数据读取模块进入的数据迭代比较最终得到最值索引并输出给配置模块;
最值生成模块包括数据通路、时钟和比较器,数据通路包括正常数据通路、2倍频数据通路和2分频数据通路,时钟包括正常时钟、2倍频时钟和2分频时钟;当数据总线位宽为128bit、固件结构体大小为16byte或者数据总线位宽为256bit、固件结构体大小为32byte时,数据读取模块读取的数据通过正常数据通路传送给比较器进行比较,在此过程中使用正常时钟;
当数据总线位宽为128bit、固件结构体大小为32byte时,数据读取模块读取的数据通过2倍频数据通路传送给比较器进行比较,在此过程中使用2倍频时钟;
当数据总线位宽为256bit,固件结构体大小为16byte时,数据读取模块读取的数据通过2分频数据通路传送给比较器进行比较,在此过程中使用2分频时钟。
2.根据权利要求1所述的支持两种位宽的磨损均衡垃圾回收加速装置,其特征在于:2倍频数据通路在一个时钟周期内接收数据总线传来的两个128bit数据,将此两个128bit数据分成高16byte和低16byte,然后将高16byte和低16byte叠加成32byte进行传输。
3.根据权利要求1所述的支持两种位宽的磨损均衡垃圾回收加速装置,其特征在于:2分频数据通路将数据总线传输来的256bit数据拆分成两个16byte进行传输。
4.根据权利要求1所述的支持两种位宽的磨损均衡垃圾回收加速装置,其特征在于:最值生成模块的工作模式包括单项比较和多项加权比较,最值生成模块的比较器包括单项比较器和多项加权比较器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910751746.9A CN110489354B (zh) | 2019-08-15 | 2019-08-15 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
PCT/CN2019/111412 WO2021027050A1 (zh) | 2019-08-15 | 2019-10-16 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910751746.9A CN110489354B (zh) | 2019-08-15 | 2019-08-15 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489354A CN110489354A (zh) | 2019-11-22 |
CN110489354B true CN110489354B (zh) | 2023-05-09 |
Family
ID=68551081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910751746.9A Active CN110489354B (zh) | 2019-08-15 | 2019-08-15 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110489354B (zh) |
WO (1) | WO2021027050A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494299B2 (en) | 2021-02-18 | 2022-11-08 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
US11947452B2 (en) * | 2022-06-01 | 2024-04-02 | Micron Technology, Inc. | Controlling variation of valid data counts in garbage collection source blocks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937412B1 (en) * | 2002-07-26 | 2005-08-30 | Storage Technology Corporation | Method and apparatus for creating a format identification block on a magnetic tape |
CN108804032A (zh) * | 2018-05-16 | 2018-11-13 | 山东华芯半导体有限公司 | 一种自适应磨损均衡垃圾回收加速装置和方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324867B (zh) * | 2007-06-16 | 2011-07-20 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
CN101719098B (zh) * | 2009-05-26 | 2011-08-17 | 苏州国芯科技有限公司 | Nandflash芯片组存储控制器 |
CN102591793B (zh) * | 2012-02-13 | 2014-12-03 | 山东华芯半导体有限公司 | 辅助上位机检索页映射单元块中空闲块的装置 |
CN202443462U (zh) * | 2012-02-13 | 2012-09-19 | 山东华芯半导体有限公司 | 辅助上位机检索页映射单元块中空闲块的装置 |
CN202472635U (zh) * | 2012-03-23 | 2012-10-03 | 山东华芯半导体有限公司 | 闪存磨损均衡装置 |
US9772796B2 (en) * | 2015-04-09 | 2017-09-26 | Sandisk Technologies Llc | Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address |
US10268594B2 (en) * | 2017-01-05 | 2019-04-23 | International Business Machines Corporation | Implementing paging device selection based on wear-level data |
CN109783398B (zh) * | 2019-01-18 | 2020-09-15 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
-
2019
- 2019-08-15 CN CN201910751746.9A patent/CN110489354B/zh active Active
- 2019-10-16 WO PCT/CN2019/111412 patent/WO2021027050A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937412B1 (en) * | 2002-07-26 | 2005-08-30 | Storage Technology Corporation | Method and apparatus for creating a format identification block on a magnetic tape |
CN108804032A (zh) * | 2018-05-16 | 2018-11-13 | 山东华芯半导体有限公司 | 一种自适应磨损均衡垃圾回收加速装置和方法 |
Non-Patent Citations (1)
Title |
---|
FPGA-based solid-state drive prototyping platform;Cai Y;《2011 IEEE 19th Annual International Symposium on Field- Programmable Custom Computing Machines》;101-104 * |
Also Published As
Publication number | Publication date |
---|---|
CN110489354A (zh) | 2019-11-22 |
WO2021027050A1 (zh) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
JP4901285B2 (ja) | 読み出し性能を向上させることができるメモリカード | |
US8706952B2 (en) | Flash memory storage device, controller thereof, and data programming method thereof | |
US20180095698A1 (en) | Memory management method and storage controller using the same | |
KR101466585B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110489354B (zh) | 支持两种位宽的磨损均衡垃圾回收加速装置 | |
CN101719099A (zh) | 减小固态硬盘写入放大的方法及装置 | |
CN108733577B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
US11537328B2 (en) | Method and apparatus for executing host commands | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
US10289546B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN113961140A (zh) | 数据处理方法及对应的数据储存装置 | |
US11960762B2 (en) | Method for managing memory buffer and memory control circuit unit and memory storage apparatus thereof | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN113885779A (zh) | 数据处理方法及对应的数据储存装置 | |
US11023374B2 (en) | Apparatus and method and computer program product for controlling data access | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201715530A (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
CN110825653A (zh) | 存储器管理方法以及存储控制器 | |
CN110825310A (zh) | 存储器管理方法以及存储控制器 | |
KR20140133800A (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
CN108804032B (zh) | 一种自适应磨损均衡垃圾回收加速装置和方法 | |
CN106326142B (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 |