一种数据缓冲区的复用方法与系统的制作方法

文档序号:9471098阅读:253来源:国知局
一种数据缓冲区的复用方法与系统的制作方法
【技术领域】
[0001]本发明涉及嵌入式存储器领域,特别是涉及一种数据缓冲区的复用方法与系统。
【背景技术】
[0002]随着嵌入式系统的飞速发展,各种智能设备对存储系统的读写性能提出了更高的要求,而由此应运而生的eMMC设备,既包含高速的通讯接口,又拥有小巧的身材和极低的功耗,非常适合嵌入式的各种场景,eMMC (Embedded Multi Media Card)为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。但由于成本的限制,导致eMMC复杂的逻辑算法不能仅仅依赖于增加RAM昂贵的容量来提升性能,因此只能从算法着手了。
[0003]目前eMMC的数据缓冲区采用特定的RAM空间用于存放总线上收发的数据,并且以PAGE为单位,队列方式依次存放,等待数据接口的访问,但是当这些缓冲区的数据已经被取走时,它们就会一直处于空闲状态,而此时后台程序可能还在做着复杂的数据迀移调度,却因为RAM不够用而反复调度,产生了较大的性能瓶颈。由此可见,现有eMMC的RAM空间并没有得到有效的利用,需要进行优化。

【发明内容】

[0004]有鉴于此,本发明的主要目的在于提供一种数据缓冲区的复用方法与系统,可以将RAM的指定区域进行调度复用。
[0005]为实现上述目的,本发明提供了一种数据缓冲区的复用方法,包括:
[0006]从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
[0007]将所有所述数据缓冲区存放至等待队列中;
[0008]当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
[0009]将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
[0010]当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
[0011 ] 优选地,分配所述空闲队列中的数据缓冲区存放临时数据后还包括:
[0012]将完成所述数据临时存放请求的数据缓冲区存放回等待队列中。
[0013]优选地,所述数据缓冲区的复用方法还包括:
[0014]当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
[0015]优选地,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲包括:
[0016]从等待队列中确定目标数据缓冲区,判断所述总线读写数据缓冲请求的请求类型;
[0017]当所述请求类型为读请求时,将目标数据从闪存中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到总线中;
[0018]当所述请求类型为写请求时,将目标数据从总线中读到所述目标数据缓冲区中,再将所述目标数据缓冲区中的所述目标数据发送到闪存中。
[0019]本发明还提供了一种数据缓冲区的复用系统,包括:
[0020]数据缓冲区划分模块,用于从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
[0021]第一存放模块,用于将所有所述数据缓冲区存放至等待队列中;
[0022]协议层分配模块,用于当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
[0023]第二存放模块,用于将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
[0024]逻辑层分配模块,用于当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
[0025]优选地,所述的数据缓冲区的复用系统还包括:
[0026]后台释放模块,用于将完成所述数据临时存放请求的数据缓冲区存放回等待队列中;当所述等待队列为空时,将进行数据临时存放的数据缓冲区进行释放,并存放回等待队列中。
[0027]应用本发明提供的一种数据缓冲区的复用方法与系统,从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区,将所有所述数据缓冲区存放至等待队列中,当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲,将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中,当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据,可以在数据读写过程中使用RAM的空闲区域缓存总线上收发的数据,在总线等待应答或空闲时,将此RAM空闲区域用于后台处理中临时数据的存放,此区域的复用,可减少数据的调度频率,提高指令的效应速度。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0029]图1为本发明一种数据缓冲区的复用方法实施例一的流程图;
[0030]图2为本发明一种数据缓冲区的复用方法实施例一的详细原理示意图;
[0031]图3为本发明一种数据缓冲区的复用方法实施例一的又一详细原理示意图;
[0032]图4为本发明一种数据缓冲区的复用系统实施例二的结构示意图;
[0033]图5为本发明一种数据缓冲区的复用系统实施例三的结构示意图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]实施例一:
[0036]本发明提供了一种数据缓冲区的复用方法,图1示出了本发明数据缓冲区的复用方法实施例一的流程图,包括:
[0037]步骤SlOl:从RAM的空闲区域中以预设容量大小为单位划分预设数量的区域分别作为数据缓冲区;
[0038]从RAM空闲区域划分出特定区域用于数据buffer缓冲区,buffer容量为预设值,可为8KB。
[0039]步骤S102:将所有所述数据缓冲区存放至等待队列中;
[0040]数据buffer依次存放在等待队列中,等待总线调用。
[0041]步骤S103:当收到协议层的总线读写数据缓冲请求时,根据所述总线读写数据缓冲请求分配所述等待队列中的数据缓冲区进行总线读写数据的缓冲;
[0042]可用来接收总线的数据并写入FLASH,同时也能从FLASH中读出数据并发送到总线,如图2所示,为协议层的buffer调用流程。
[0043]步骤S104:将完成所述总线读写数据缓冲请求的数据缓冲区转移到空闲队列中;
[0044]而数据取走后,总线进入等待状态,或者空闲状态,没有后续数据请求时,这些buffer会转移到空闲队列中。
[0045]步骤S105:当收到逻辑层的数据临时存放请求时,分配所述空闲队列中的数据缓冲区存放临时数据。
[0046]后台逻辑算法在RAM不够用时,可以向空闲队列申请buffer,通常申请到的buffer用来存放临时数据,并且随时可以释放,将完成所述数据临时存放请求的数据缓冲区存放回等
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1