CN105224258A - 一种数据缓冲区的复用方法与系统 - Google Patents
一种数据缓冲区的复用方法与系统 Download PDFInfo
- Publication number
- CN105224258A CN105224258A CN201510678800.3A CN201510678800A CN105224258A CN 105224258 A CN105224258 A CN 105224258A CN 201510678800 A CN201510678800 A CN 201510678800A CN 105224258 A CN105224258 A CN 105224258A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- data buffer
- bus
- waiting list
- 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
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据缓冲区的复用方法与系统,从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区,将所有所述数据缓冲区存放至等待队列中,当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲,将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中,当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据,可以在数据读写过程中使用RAM的空闲区域缓存总线上收发的数据,在总线等待应答或空闲时,将此RAM空闲区域用于后台处理中临时数据的存放,此区域的复用,可减少数据的调度频率,提高指令的效应速度。
Description
技术领域
本发明涉及嵌入式存储器领域,特别是涉及一种数据缓冲区的复用方法与系统。
背景技术
随着嵌入式系统的飞速发展,各种智能设备对存储系统的读写性能提出了更高的要求,而由此应运而生的eMMC设备,既包含高速的通讯接口,又拥有小巧的身材和极低的功耗,非常适合嵌入式的各种场景,eMMC(EmbeddedMultiMediaCard)为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。但由于成本的限制,导致eMMC复杂的逻辑算法不能仅仅依赖于增加RAM昂贵的容量来提升性能,因此只能从算法着手了。
目前eMMC的数据缓冲区采用特定的RAM空间用于存放总线上收发的数据,并且以PAGE为单位,队列方式依次存放,等待数据接口的访问,但是当这些缓冲区的数据已经被取走时,它们就会一直处于空闲状态,而此时后台程序可能还在做着复杂的数据迁移调度,却因为RAM不够用而反复调度,产生了较大的性能瓶颈。由此可见,现有eMMC的RAM空间并没有得到有效的利用,需要进行优化。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据缓冲区的复用方法与系统,可以将RAM的指定区域进行调度复用。
为实现上述目的,本发明提供了一种数据缓冲区的复用方法,包括:
从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
将所有所述数据缓冲区存放至等待队列中;
当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
优选地,分配所述空闲队列中的数据缓冲区存放临时数据后还包括:
将完成所述数据临时存放请求的数据缓冲区存放回等待队列中。
优选地,所述数据缓冲区的复用方法还包括:
当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
优选地,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲包括:
从等待队列中确定目标数据缓冲区,判断所述总线读写数据缓冲请求的请求类型;
当所述请求类型为读请求时,将目标数据从闪存中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到总线中;
当所述请求类型为写请求时,将目标数据从总线中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到闪存中。
本发明还提供了一种数据缓冲区的复用系统,包括:
数据缓冲区划分模块,用于从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
第一存放模块,用于将所有所述数据缓冲区存放至等待队列中;
协议层分配模块,用于当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
第二存放模块,用于将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
逻辑层分配模块,用于当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
优选地,所述的数据缓冲区的复用系统还包括:
后台释放模块,用于将完成所述数据临时存放请求的数据缓冲区存放回等待队列中;当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
应用本发明提供的一种数据缓冲区的复用方法与系统,从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区,将所有所述数据缓冲区存放至等待队列中,当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲,将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中,当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据,可以在数据读写过程中使用RAM的空闲区域缓存总线上收发的数据,在总线等待应答或空闲时,将此RAM空闲区域用于后台处理中临时数据的存放,此区域的复用,可减少数据的调度频率,提高指令的效应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明一种数据缓冲区的复用方法实施例一的流程图;
图2为本发明一种数据缓冲区的复用方法实施例一的详细原理示意图;
图3为本发明一种数据缓冲区的复用方法实施例一的又一详细原理示意图;
图4为本发明一种数据缓冲区的复用系统实施例二的结构示意图;
图5为本发明一种数据缓冲区的复用系统实施例三的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本发明提供了一种数据缓冲区的复用方法,图1示出了本发明数据缓冲区的复用方法实施例一的流程图,包括:
步骤S101:从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
从RAM空闲区域划分出特定区域用于数据buffer缓冲区,buffer容量为预设值,可为8KB。
步骤S102:将所有所述数据缓冲区存放至等待队列中;
数据buffer依次存放在等待队列中,等待总线调用。
步骤S103:当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
可用来接收总线的数据并写入FLASH,同时也能从FLASH中读出数据并发送到总线,如图2所示,为协议层的buffer调用流程。
步骤S104:将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
而数据取走后,总线进入等待状态,或者空闲状态,没有后续数据请求时,这些buffer会转移到空闲队列中。
步骤S105:当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
后台逻辑算法在RAM不够用时,可以向空闲队列申请buffer,通常申请到的buffer用来存放临时数据,并且随时可以释放,将完成所述数据临时存放请求的数据缓冲区存放回等待队列中,当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中,即当协议层需要传送数据时,自动将buffer释放,并还回等待队列。如图3所示,为逻辑层的buffer调用流程。
应用本实施例提供的一种数据缓冲区的复用方法,从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区,将所有所述数据缓冲区存放至等待队列中,当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲,将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中,当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据,可以在数据读写过程中使用RAM的空闲区域缓存总线上收发的数据,在总线等待应答或空闲时,将此RAM空闲区域用于后台处理中临时数据的存放,此区域的复用,可减少数据的调度频率,提高指令的效应速度。
实施例二:
本发明还提供了一种数据缓冲区的复用系统,图4示出了本发明数据缓冲区的复用系统的结构示意图,包括:
数据缓冲区划分模块101,用于从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
第一存放模块102,用于将所有所述数据缓冲区存放至等待队列中;
协议层分配模块103,用于当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
第二存放模块104,用于将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
逻辑层分配模块105,用于当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
应用本实施例提供的一种数据缓冲区的复用系统,从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区,将所有所述数据缓冲区存放至等待队列中,当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲,将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中,当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据,可以在数据读写过程中使用RAM的空闲区域缓存总线上收发的数据,在总线等待应答或空闲时,将此RAM空闲区域用于后台处理中临时数据的存放,此区域的复用,可减少数据的调度频率,提高指令的效应速度。
实施例三:
图5示出了本发明数据缓冲区的复用系统实施例三的结构示意图,对应于如4,还包括;
后台释放模块106,用于将完成所述数据临时存放请求的数据缓冲区存放回等待队列中;当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种数据缓冲区的复用方法,其特征在于,包括:
从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
将所有所述数据缓冲区存放至等待队列中;
当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
2.根据权利要求1所述的数据缓冲区的复用方法,其特征在于,分配所述空闲队列中的数据缓冲区存放临时数据后还包括:
将完成所述数据临时存放请求的数据缓冲区存放回等待队列中。
3.根据权利要求2所述的数据缓冲区的复用方法,其特征在于,还包括:
当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
4.根据权利要求1所述的数据缓冲区的复用方法,其特征在于,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲包括:
从等待队列中确定目标数据缓冲区,判断所述总线读写数据缓冲请求的请求类型;
当所述请求类型为读请求时,将目标数据从闪存中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到总线中;
当所述请求类型为写请求时,将目标数据从总线中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到闪存中。
5.一种数据缓冲区的复用系统,其特征在于,包括:
数据缓冲区划分模块,用于从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
第一存放模块,用于将所有所述数据缓冲区存放至等待队列中;
协议层分配模块,用于当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
第二存放模块,用于将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
逻辑层分配模块,用于当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
6.根据权利要求5所述的数据缓冲区的复用系统,其特征在于,还包括:
后台释放模块,用于将完成所述数据临时存放请求的数据缓冲区存放回等待队列中;当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510678800.3A CN105224258B (zh) | 2015-10-19 | 2015-10-19 | 一种数据缓冲区的复用方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510678800.3A CN105224258B (zh) | 2015-10-19 | 2015-10-19 | 一种数据缓冲区的复用方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224258A true CN105224258A (zh) | 2016-01-06 |
CN105224258B CN105224258B (zh) | 2018-05-22 |
Family
ID=54993264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510678800.3A Active CN105224258B (zh) | 2015-10-19 | 2015-10-19 | 一种数据缓冲区的复用方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224258B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109640197A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于缓冲区共享的fc通信实现方法 |
CN111290973A (zh) * | 2020-05-11 | 2020-06-16 | 深圳市科信通信技术股份有限公司 | 数据写入方法、装置、计算机设备及存储介质 |
CN112286466A (zh) * | 2020-11-18 | 2021-01-29 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139296A1 (en) * | 1987-12-14 | 2004-07-15 | Intel Corporation | Process for exchanging information in a multiprocessor system |
US20040139284A1 (en) * | 2003-01-09 | 2004-07-15 | Clayton Shawn Adam | Memory management |
CN101866303A (zh) * | 2009-04-13 | 2010-10-20 | 塔塔咨询服务有限公司 | 高性能低等待时间的消息传送系统 |
US20150212934A1 (en) * | 2014-01-27 | 2015-07-30 | Signalchip Innovations Private Limited | System and method to convert lock-free algorithms to wait-free using a hardware accelerator |
-
2015
- 2015-10-19 CN CN201510678800.3A patent/CN105224258B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139296A1 (en) * | 1987-12-14 | 2004-07-15 | Intel Corporation | Process for exchanging information in a multiprocessor system |
US20040139284A1 (en) * | 2003-01-09 | 2004-07-15 | Clayton Shawn Adam | Memory management |
CN101866303A (zh) * | 2009-04-13 | 2010-10-20 | 塔塔咨询服务有限公司 | 高性能低等待时间的消息传送系统 |
US20150212934A1 (en) * | 2014-01-27 | 2015-07-30 | Signalchip Innovations Private Limited | System and method to convert lock-free algorithms to wait-free using a hardware accelerator |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109640197A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于缓冲区共享的fc通信实现方法 |
CN109640197B (zh) * | 2018-12-04 | 2021-12-07 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于缓冲区共享的fc通信实现方法 |
CN111290973A (zh) * | 2020-05-11 | 2020-06-16 | 深圳市科信通信技术股份有限公司 | 数据写入方法、装置、计算机设备及存储介质 |
CN112286466A (zh) * | 2020-11-18 | 2021-01-29 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
CN112286466B (zh) * | 2020-11-18 | 2024-05-07 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105224258B (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517236C (zh) | 智能卡嵌入式操作系统及其控制方法 | |
CN100403739C (zh) | 基于链表的进程间消息传递方法 | |
JP5456632B2 (ja) | スイッチマトリックス経由のデータ転送を改善するフロー制御方法 | |
CN104137081A (zh) | 偏移在先的高等待时间操作的存储器重排序队列 | |
CN103218329A (zh) | 数字信号处理数据传输 | |
CN101873253A (zh) | 带缓冲的纵横式交换机系统 | |
US8886741B2 (en) | Receive queue models to reduce I/O cache consumption | |
CN103543954A (zh) | 一种数据存储管理方法和装置 | |
CN101026526A (zh) | 总线装置、总线系统和信息传输方法 | |
US20210058334A1 (en) | Timestamp-based fairness egress from ingress queues | |
CN105224258A (zh) | 一种数据缓冲区的复用方法与系统 | |
CN103297350A (zh) | 一种信元交换系统的实现方法和交换设备 | |
CN101504632B (zh) | 一种dma数据传输方法、系统及一种dma控制器 | |
CN102937912A (zh) | 虚拟机调度方法和设备 | |
CN102402422A (zh) | 处理器组件及该组件内存共享的方法 | |
CN103324599A (zh) | 处理器间通信方法与系统级芯片 | |
CN103106164A (zh) | 一种高效dma控制器 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
WO2021218101A1 (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
CN103412796A (zh) | 操作系统中任务的堆栈分配方法及装置 | |
CN103927125B (zh) | 分时缓冲器存取系统及存储器控制器 | |
CN101308568B (zh) | 基于fifo的流水线实时处理的方法和装置 | |
CN113568563A (zh) | 用于ssd的自适应存储调度器 | |
US20150032794A1 (en) | End-to-end flow control in system on chip interconnects | |
CN101324863B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |