CN109614349B - 一种基于绑定机制的缓存管理方法 - Google Patents
一种基于绑定机制的缓存管理方法 Download PDFInfo
- Publication number
- CN109614349B CN109614349B CN201811509797.2A CN201811509797A CN109614349B CN 109614349 B CN109614349 B CN 109614349B CN 201811509797 A CN201811509797 A CN 201811509797A CN 109614349 B CN109614349 B CN 109614349B
- Authority
- CN
- China
- Prior art keywords
- ram
- fifo
- bfn
- bit
- group
- 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/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
- G06F12/0871—Allocation or management of cache space
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于绑定机制的缓存管理方法。它把BFN(缓存区编号)号等额划分为若干组,每一个BFN(缓存区编号)对应1bit有效标识,将每一组标识存入可读写RAM中,RAM的读写地址即为组号,将组号存入FIFO中。当用户申请BFN(缓存区编号)时,从FIFO中取出组号,根据组号读取RAM,再根据组内指针(上一次取出有效位标识的bit位置)取到有效标识,根据有效标识在组内位置以及组号,组合而成一个BFN(缓存区编号)响应给用户,同时翻转此标识位。本发明的有益效果是:可以最大化的压缩BFN(缓存区编号)自身的存储空间,可节省由于BFN(缓存区编号)号过大所需存储的位宽带来的消耗。
Description
技术领域
本发明涉及缓存资源管理相关技术领域,尤其是指一种基于绑定机制的缓存管理方法。
背景技术
BFN(缓存区编号)管理模式是一种简化并且有效的管理缓存空间方法。但面对大容量缓存空间管理,传统BFN(缓存区编号)模式需要占用额外的大量存储空间,开销太大不利于使用。传统BFN(缓存区编号)管理基于FIFO存储有效BFN(缓存区编号) 即首先写入0—n号BFN(缓存区编号),当用户申请时读取一个给用户,用户释放时写回一个。当BFN(缓存区编号)号过大时,FIFO位宽也会增加,造成资源损耗。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种能够有效节省资源损耗的基于绑定机制的缓存管理方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于绑定机制的缓存管理方法,将n个BFN缓存区编号绑定成一组写入RAM的一个地址,并将组号为0—m-1 写入FIFO进行储存,管理的BFN缓存区编号数为n乘以m,n为RAM的数据位宽,m为RAM的地址数以及FIFO的深度,具体包括如下步骤:
(1)初始化:用户先配置BFN缓存区编号个数大小, 然后配置启动初始化寄存器,BFN缓存区编号控制器随即将0—m-1写入FIFO,将全1写入RAM,并将RAM数据位指针初始化为0,初始化后预取一个FIFO值;
(2)申请:用户发出一个BFN缓存区编号申请到 BFN缓存区编号控制器,BFN缓存区编号控制器根据已经取出的FIFO值读取RAM,再根据RAM数据位指针查询此位是否为1,若为1则此BFN缓存区编号的号有效,将此BFN缓存区编号的号发送给用户,发送给用户BFN缓存区编号的号为{RAM地址,RAM bit位},再将RAM数据位指针+1,将此RAM的bit位反转;若RAM数据指针查询出的此为不为1,则查询下一个直到查到1为止;
(3)释放:用户发出一个BFN缓存区编号释放到BFN缓存区编号控制器,BFN缓存区编号控制器 拆解此BFN缓存区编号为RAM地址和RAM bit位,寻找到对应RAM 地址的对应数据bit, 反转成1。
其中:可根据实际需要管理的BFN(缓存区编号)个数的多少和使用的RAM的规格大小来选择m和n的值。组绑定机制既是把BFN(缓存区编号)号等额划分为若干组,每一个BFN(缓存区编号)对应1bit有效标识,将每一组标识存入可读写RAM中,RAM的读写地址即为组号,将组号存入FIFO中。当用户申请BFN(缓存区编号)时,从FIFO中取出组号,根据组号读取RAM,再根据组内指针(上一次取出有效位标识的bit位置)取到有效标识,根据有效标识在组内位置以及组号,组合而成一个BFN(缓存区编号)响应给用户, 同时翻转此标识位。这样设计可以最大化的压缩BFN(缓存区编号)自身的存储空间,可节省由于BFN(缓存区编号)号过大所需存储的位宽带来的消耗。
作为优选,在步骤(1)中,初始化后预取一个FIFO值,此时取出值为0。
作为优选,在步骤(2)中,在根据RAM数据位指针查询此位为1时,若数据位指针已是最高位n,判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO,再读取一个新的FIFO值替换这个。
作为优选,在步骤(2)中,在根据RAM数据位指针查询此位不为1时,若查询不到1,则判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO, 再读取一个新的FIFO值替换这个。
作为优选,在步骤(3)中,在对应数据bit反转成1时,若RAM的值只有这个bit为1,则将地址写入FIFO,否则不写FIFO。
本发明的有益效果是:可以最大化的压缩BFN(缓存区编号)自身的存储空间,可节省由于BFN(缓存区编号)号过大所需存储的位宽带来的消耗。
附图说明
图1是本发明中初始化的结构示意图;
图2是本发明中申请的结构示意图;
图3是本发明中释放的结构示意图;
图4是本发明实例1中申请的结构示意图;
图5是本发明实例1中释放的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所述的实施例中,一种基于绑定机制的缓存管理方法,将n个BFN缓存区编号绑定成一组写入RAM的一个地址,并将组号为0—m-1 写入FIFO进行储存,管理的BFN缓存区编号数为n乘以m,n为RAM的数据位宽,m为RAM的地址数以及FIFO的深度,具体包括如下步骤:
(1)初始化:如图1所示,用户先配置BFN缓存区编号个数大小, 然后配置启动初始化寄存器,BFN缓存区编号控制器随即将0—m-1写入FIFO,将全1写入RAM,并将RAM数据位指针初始化为0,初始化后预取一个FIFO值,此时取出值为0;
(2)申请:如图2所示,用户发出一个BFN缓存区编号申请到 BFN缓存区编号控制器,BFN缓存区编号控制器根据已经取出的FIFO值读取RAM,再根据RAM数据位指针查询此位是否为1,若为1则此BFN缓存区编号的号有效,将此BFN缓存区编号的号发送给用户,发送给用户BFN缓存区编号的号为{RAM地址,RAM bit位},再将RAM数据位指针+1,将此RAM的bit位反转;若数据位指针已是最高位n,判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO,再读取一个新的FIFO值替换这个;若RAM数据指针查询出的此为不为1,则查询下一个直到查到1为止;若查询不到1,则判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO, 再读取一个新的FIFO值替换这个;
(3)释放:如图3所示,用户发出一个BFN缓存区编号释放到BFN缓存区编号控制器,BFN缓存区编号控制器 拆解此BFN缓存区编号为RAM地址和RAM bit位,寻找到对应RAM 地址的对应数据bit, 反转成1;此时若RAM的值只有这个bit为1,则将地址写入FIFO,否则不写FIFO。
其中:可根据实际需要管理的BFN(缓存区编号)个数的多少和使用的RAM的规格大小来选择m和n的值。组绑定机制既是把BFN(缓存区编号)号等额划分为若干组,每一个BFN(缓存区编号)对应1bit有效标识,将每一组标识存入可读写RAM中,RAM的读写地址即为组号,将组号存入FIFO中。当用户申请BFN(缓存区编号)时,从FIFO中取出组号,根据组号读取RAM,再根据组内指针(上一次取出有效位标识的bit位置)取到有效标识,根据有效标识在组内位置以及组号,组合而成一个BFN(缓存区编号)释放给用户, 同时翻转此标识位。将BFN(缓存区编号)拆分为两部分分别存储在FIFO和RAM中,并且通过指针寻址的方法找到有效BFN(缓存区编号),采用该方法可以大量节省BFN(缓存区编号)管理占用的存储资源,可以最大化的压缩BFN(缓存区编号)自身的存储空间,可节省由于BFN(缓存区编号)号过大所需存储的位宽带来的消耗。
实例1:采用了64个BFN(缓存区编号)为一组的管理方法。初始化时,将右侧RAM全部初始化为1,FIFO写入0—1023。如图4所示,当用户申请BFN(缓存区编号)时,从FIFO中读取第一个组号,即为“0”。 用此组号读取RAM中的0地址的数据,在此数据中从0bit开始寻找,找到第一个“1”。保存bit位置信息数据位指针ptr,保存组号存入strored_data中。向用户释放BFN(缓存区编号)同时将标识为设为“0”,BFN(缓存区编号)号的低6bit为组内第一个“1”的位置,高10bit为组号。此次BFN(缓存区编号)号即为0。当用户第二次来申请时,取用stored_data为组号,读取RAM,从数据位指针ptr的位置开始向左寻找第一个“1”。如此,本次BFN(缓存区编号)号为1。当数据位指针ptr到64时,重新读取FIFO 设为新的组号。如图5所示,当用户释放BFN(缓存区编号)时,BFN(缓存区编号)高10bit为组号,低6bit为组内数据位指针ptr位置。根据BFN(缓存区编号)信息将对应的标识设为1。若本组只有当前bit为“1”,向FIFO写入组号,若不是则不写入组号。
实例2:对于一个1GB DDR 空间,将每个BFN(缓存区编号)管理范围定为4kB,则需256k个BFN(缓存区编号)号。 若用传统的FIFO形式管理,则需要256k x 18bit FIFO(4608kbit)。此处组绑定机制可以将256个BFN(缓存区编号)进行绑定存入位宽为256bit的RAM中,再将RAM的读写地址作为组号存入FIFO中,如此,只需要 1k x 256bit RAM 和 1k x10bit FIFO(266kbit),可节省17倍存储资源。
Claims (3)
1.一种基于绑定机制的缓存管理方法,其特征是,将n个缓存区编号绑定成一组写入RAM的一个地址,并将组号为0到m-1写入FIFO进行储存,管理的缓存区编号个数为n乘以m,n为RAM的数据位宽,m为RAM的地址数以及FIFO的深度,具体包括如下步骤:
(1)初始化:用户先配置缓存区编号个数大小, 然后配置启动初始化寄存器,缓存区编号控制器随即将0到m-1写入FIFO,将全1写入RAM,并将RAM数据位指针初始化为0,初始化后预取一个FIFO值;
(2)申请:用户发出一个缓存区编号申请请求到缓存区编号控制器,缓存区编号控制器根据已经取出的FIFO值读取RAM,再根据RAM数据位指针查询此缓存区编号的RAM bit位是否为1,若为1则此缓存区编号有效,将此缓存区编号发送给用户,发送给用户的缓存区编号为{RAM地址,RAM bit位},再将RAM数据位指针+1,将此缓存区编号的RAM bit位反转;若RAM数据位指针查询出的此缓存区编号的RAM bit位不为1,则查询下一个直到查到1为止;
(3)释放:用户发出一个缓存区编号释放请求到缓存区编号控制器,缓存区编号控制器拆解此缓存区编号为RAM地址和RAM bit位,寻找到对应RAM 地址的对应RAM bit位,反转成1。
2.根据权利要求1所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(1)中,初始化后预取一个FIFO值,此时取出值为0。
3.根据权利要求1所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(3)中,在对应RAM bit位反转成1时,若RAM的值只有这个RAM bit位为1,则将RAM bit位为1的RAM地址写入FIFO,否则不写入FIFO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509797.2A CN109614349B (zh) | 2018-12-11 | 2018-12-11 | 一种基于绑定机制的缓存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509797.2A CN109614349B (zh) | 2018-12-11 | 2018-12-11 | 一种基于绑定机制的缓存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614349A CN109614349A (zh) | 2019-04-12 |
CN109614349B true CN109614349B (zh) | 2023-04-11 |
Family
ID=66007667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811509797.2A Active CN109614349B (zh) | 2018-12-11 | 2018-12-11 | 一种基于绑定机制的缓存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614349B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209355A (zh) * | 2019-05-28 | 2019-09-06 | 深圳忆联信息系统有限公司 | 基于固态硬盘的全固件读写操作优化方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221465A (zh) * | 2008-01-04 | 2008-07-16 | 东南大学 | 用于降低硬盘功耗的数据缓冲区实现方法 |
CN102521149A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种从多缓冲区收取数据的优化轮询系统和方法 |
CN103914404A (zh) * | 2014-04-29 | 2014-07-09 | 东南大学 | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 |
US10120604B1 (en) * | 2017-06-13 | 2018-11-06 | Micron Technology, Inc. | Data programming |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5217432B2 (ja) * | 2007-12-28 | 2013-06-19 | 富士通株式会社 | セクタ機能付きキャッシュメモリ |
US8190794B2 (en) * | 2009-10-21 | 2012-05-29 | Texas Instruments Incorporated | Control function for memory based buffers |
-
2018
- 2018-12-11 CN CN201811509797.2A patent/CN109614349B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221465A (zh) * | 2008-01-04 | 2008-07-16 | 东南大学 | 用于降低硬盘功耗的数据缓冲区实现方法 |
CN102521149A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种从多缓冲区收取数据的优化轮询系统和方法 |
CN103914404A (zh) * | 2014-04-29 | 2014-07-09 | 东南大学 | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 |
US10120604B1 (en) * | 2017-06-13 | 2018-11-06 | Micron Technology, Inc. | Data programming |
Non-Patent Citations (1)
Title |
---|
基于FPGA的四口RAM设计与实现;吕波等;《仪表技术与传感器》;20170115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109614349A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3673377B1 (en) | Logical to physical mapping | |
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
US6968424B1 (en) | Method and system for transparent compressed memory paging in a computer system | |
US6349372B1 (en) | Virtual uncompressed cache for compressed main memory | |
CN102662856B (zh) | 一种固态硬盘及其存取方法 | |
US20080270680A1 (en) | Controller for Non-Volatile Memories and Methods of Operating the Memory Controller | |
WO2016099664A1 (en) | Apparatus, system and method for caching compressed data background | |
EP1550952A3 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
TW201710910A (zh) | 交易式混合記憶體模組及其操作方法 | |
US20140089569A1 (en) | Write cache sorting | |
US20110004720A1 (en) | Method and apparatus for performing full range random writing on a non-volatile memory | |
CN111512290B (zh) | 文件页表管理技术 | |
CN109240944B (zh) | 一种基于可变长缓存行的数据读写方法 | |
KR101400506B1 (ko) | 비휘발성 메모리 제어기 및 그 제어 방법 | |
CN105393228A (zh) | 读写闪存中数据的方法、装置及用户设备 | |
CN112882649A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN109614349B (zh) | 一种基于绑定机制的缓存管理方法 | |
CN103377141A (zh) | 高速存储区的访问方法以及访问装置 | |
US11199983B2 (en) | Apparatus for obsolete mapping counting in NAND-based storage devices | |
CN107102900B (zh) | 一种共享内存空间的管理方法 | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN112148639A (zh) | 一种高效小容量高速缓冲存储器替换方法及系统 | |
CN111290975A (zh) | 使用统一缓存处理读命令与预读命令的方法及其存储设备 | |
CN110309081A (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 |
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 |