The invention belongs to a buffering method, in particular to a method for buffering data with a cyclic queue. A method for circular queue buffer data, which comprises the following steps: step one: create a queue, set up to increase the length, also can reduce the length of the queue, step two: data access, when new data is stored in the queue, the first increase in the head of the queue corresponding to the address, then the address memory into the corresponding data; when the data is read out of the queue, the queue tail data output, and then increase the queue tail corresponding address, step three: address cycle use, the queue sign and queue mark the corresponding address separately. The effect of the invention is to greatly increase the utilization ratio of the hardware, and the method is not for a particular data processing, so regardless of the operating system or application program, can optimize the method used, all optimization to the cumulative effect is large.
【技术实现步骤摘要】
一种用循环队列缓冲数据的方法
本专利技术属于缓冲方法,具体涉及一种用循环队列缓冲数据的方法。
技术介绍
通信和信号处理领域经常要用到的数据缓冲。由于数据接收和处理往往不是同频同步,需要有一个足够大的缓冲区来缓冲数据。一般用队列来缓冲数据。队列是一种常用的线性表数据结构,在一端插入数据,在另一端删除数据,就是我们常说的FIFO。用链表的方式实现涉及到动态内存分配,效率较低,而且在很多嵌入式应用中无法实现。用数组的方式,由于缓冲区大小有限且位置固定,每次数据更新都要移动已经收到的数据。如果缓冲区大小为N,那么最不利的情况下队列数据更新的时间复杂度为o(N)。在N很大的时候,会占用很多CPU的宝贵时间。
技术实现思路
本专利技术针对现有技术的缺陷,提供一种用循环队列缓冲数据的方法。本专利技术是这样实现的:一种用循环队列缓冲数据的方法,包括下述步骤:步骤一:建立队列建立能够增加长度,也能够减少长度的队列,步骤二:数据的存取当有新数据存入队列时,首先增加队列头对应的地址,然后在该地址内存入相应数据;当有数据被读取出队列时,首先将队列尾的数据输出,然后增加队列尾对应的地址,步骤三:地址循环使用将队列的标志和队列标志对应的地址分开处理。如上所述的一种用循环队列缓冲数据的方法,其中,所述的步骤一中设置两个标志位,一个标志位表示队列的头,一个标志位表示队列的尾,当需要增加队列长度时,增加队列头对应的地址,当需要减小队列的长度时,增加队列尾对应的地址。如上所述的一种用循环队列缓冲数据的方法,其中,所述的步骤一中,表示队列头的标志位的数值大于标志队列尾的标志位的数值。如上所述的一种 ...
【技术保护点】
一种用循环队列缓冲数据的方法,其特征在于,包括下述步骤:步骤一:建立队列建立能够增加长度,也能够减少长度的队列,步骤二:数据的存取当有新数据存入队列时,首先增加队列头对应的地址,然后在该地址内存入相应数据;当有数据被读取出队列时,首先将队列尾的数据输出,然后增加队列尾对应的地址,步骤三:地址循环使用将队列的标志和队列标志对应的地址分开处理。
【技术特征摘要】
1.一种用循环队列缓冲数据的方法,其特征在于,包括下述步骤:步骤一:建立队列建立能够增加长度,也能够减少长度的队列,步骤二:数据的存取当有新数据存入队列时,首先增加队列头对应的地址,然后在该地址内存入相应数据;当有数据被读取出队列时,首先将队列尾的数据输出,然后增加队列尾对应的地址,步骤三:地址循环使用将队列的标志和队列标志对应的地址分开处理。2.如权利要求1所述的一种用循环队列缓冲数据的方法,其特征在于:所述的步骤一中设置两个标志位,一个标志位表示队列的头,一个标志位表示队列的尾,当需要增加队列长度时,增加队列头对应的地址,当需要减小队列的长度时,增加队列尾...
【专利技术属性】
技术研发人员:王大雨,
申请(专利权)人:北京自动化控制设备研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。