CN109614349A - 一种基于绑定机制的缓存管理方法 - Google Patents
一种基于绑定机制的缓存管理方法 Download PDFInfo
- Publication number
- CN109614349A CN109614349A CN201811509797.2A CN201811509797A CN109614349A CN 109614349 A CN109614349 A CN 109614349A CN 201811509797 A CN201811509797 A CN 201811509797A CN 109614349 A CN109614349 A CN 109614349A
- Authority
- CN
- China
- Prior art keywords
- bfn
- buffer area
- ram
- fifo
- area number
- 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.)
- Granted
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/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 (5)
1.一种基于绑定机制的缓存管理方法,其特征是,将n个BFN缓存区编号绑定成一组写入RAM的一个地址,并将组号为0—m-1 写入FIFO进行储存,管理的BFN缓存区编号数为n乘以m,n为RAM的数据位宽,m为RAM的地址数以及FIFO的深度,具体包括如下步骤:
初始化:用户先配置BFN缓存区编号个数大小, 然后配置启动初始化寄存器,BFN缓存区编号控制器随即将0—m-1写入FIFO,将全1写入RAM,并将RAM数据位指针初始化为0,初始化后预取一个FIFO值;
申请:用户发出一个BFN缓存区编号申请到 BFN缓存区编号控制器,BFN缓存区编号控制器根据已经取出的FIFO值读取RAM,再根据RAM数据位指针查询此位是否为1,若为1则此BFN缓存区编号的号有效,将此BFN缓存区编号的号发送给用户,发送给用户BFN缓存区编号的号为{RAM地址,RAM bit位},再将RAM数据位指针+1,将此RAM的bit位反转;若RAM数据指针查询出的此为不为1,则查询下一个直到查到1为止;
释放:用户发出一个BFN缓存区编号释放到BFN缓存区编号控制器,BFN缓存区编号控制器 拆解此BFN缓存区编号为RAM地址和RAM bit位,寻找到对应RAM 地址的对应数据bit,反转成1。
2.根据权利要求1所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(1)中,初始化后预取一个FIFO值,此时取出值为0。
3.根据权利要求1所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(2)中,在根据RAM数据位指针查询此位为1时,若数据位指针已是最高位n,判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO,再读取一个新的FIFO值替换这个。
4.根据权利要求1或3所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(2)中,在根据RAM数据位指针查询此位不为1时,若查询不到1,则判断此时RAM的值是否为全0,若是,说明此组BFN缓存区编号已用完,读取一个新的FIFO值替换这个;若不是,说明此组BFN缓存区编号有被释放过,将此地址再写回FIFO, 再读取一个新的FIFO值替换这个。
5.根据权利要求1所述的一种基于绑定机制的缓存管理方法,其特征是,在步骤(3)中,在对应数据bit反转成1时,若RAM的值只有这个bit为1,则将地址写入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 true CN109614349A (zh) | 2019-04-12 |
CN109614349B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209355A (zh) * | 2019-05-28 | 2019-09-06 | 深圳忆联信息系统有限公司 | 基于固态硬盘的全固件读写操作优化方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221465A (zh) * | 2008-01-04 | 2008-07-16 | 东南大学 | 用于降低硬盘功耗的数据缓冲区实现方法 |
US20090172289A1 (en) * | 2007-12-28 | 2009-07-02 | Fujitsu Limited | Cache memory having sector function |
US20110093629A1 (en) * | 2009-10-21 | 2011-04-21 | Texas Instruments Incorporated | Control Function for Memory Based Buffers |
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 |
-
2018
- 2018-12-11 CN CN201811509797.2A patent/CN109614349B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172289A1 (en) * | 2007-12-28 | 2009-07-02 | Fujitsu Limited | Cache memory having sector function |
CN101221465A (zh) * | 2008-01-04 | 2008-07-16 | 东南大学 | 用于降低硬盘功耗的数据缓冲区实现方法 |
US20110093629A1 (en) * | 2009-10-21 | 2011-04-21 | Texas Instruments Incorporated | Control Function for Memory Based Buffers |
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设计与实现", 《仪表技术与传感器》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209355A (zh) * | 2019-05-28 | 2019-09-06 | 深圳忆联信息系统有限公司 | 基于固态硬盘的全固件读写操作优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109614349B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055230B2 (en) | Logical to physical mapping | |
KR102584018B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
CN104731717B (zh) | 存储器装置及存储器管理方法 | |
US7076598B2 (en) | Pipeline accessing method to a large block memory | |
CN105242871B (zh) | 一种数据写入方法及装置 | |
CN106527969B (zh) | 一种寿命均衡的NandFlash存储器读写方法 | |
CN104461393A (zh) | 一种闪存存储器的混合映射方法 | |
CN100511119C (zh) | 一种实现片上影子堆栈存储器的方法及其电路 | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
CN101719103A (zh) | 基于存储设备的信息处理方法以及存储设备 | |
US20100064095A1 (en) | Flash memory system and operation method | |
JP2011198133A (ja) | メモリシステムおよびコントローラ | |
CN110334035A (zh) | 数据储存系统的控制单元以及逻辑至物理映射表更新方法 | |
TW201710910A (zh) | 交易式混合記憶體模組及其操作方法 | |
CN112882650B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN105103235A (zh) | 具有用于更高性能和能量效率的去耦比特的非易失性多级单元存储器 | |
US20140331024A1 (en) | Method of Dynamically Adjusting Mapping Manner in Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
CN109814811B (zh) | 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法 | |
CN102681946A (zh) | 内存访问方法和装置 | |
CN101625892B (zh) | 动态随机访问存储器的控制器及用户指令处理方法 | |
CN104484129A (zh) | 一读一写存储器、多读多写存储器及其读写方法 | |
CN102650972B (zh) | 数据存储方法、装置及系统 | |
CN109614349A (zh) | 一种基于绑定机制的缓存管理方法 | |
CN1963810A (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
CN111813709B (zh) | 一种基于fpga存算一体架构的高速并行存储方法 |
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 |