CN112988622A - 一种队列缓存方法及设备 - Google Patents

一种队列缓存方法及设备 Download PDF

Info

Publication number
CN112988622A
CN112988622A CN202110234334.5A CN202110234334A CN112988622A CN 112988622 A CN112988622 A CN 112988622A CN 202110234334 A CN202110234334 A CN 202110234334A CN 112988622 A CN112988622 A CN 112988622A
Authority
CN
China
Prior art keywords
queue
buffer
cache
extraction
data
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
Application number
CN202110234334.5A
Other languages
English (en)
Other versions
CN112988622B (zh
Inventor
叶国洪
胡胜发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ankai Microelectronics Co ltd
Original Assignee
Guangzhou Ankai Microelectronics Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Ankai Microelectronics Co ltd filed Critical Guangzhou Ankai Microelectronics Co ltd
Priority to CN202110234334.5A priority Critical patent/CN112988622B/zh
Publication of CN112988622A publication Critical patent/CN112988622A/zh
Application granted granted Critical
Publication of CN112988622B publication Critical patent/CN112988622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种队列缓存方法及设备,方法包括:将缓存数据储存至第一缓存队列或第二缓存队列中,当对提取队列中的缓存数据进行提取时,将第一缓存队列中的缓存数据或第二缓存队列中的缓存数据移动至提取队列中,对提取队列中的缓存数据进行更新。本发明通过将缓存数据预先储存在第一缓存队列或第二缓存队列中,当对提取队列中的缓存数据进行提取时,即将第一缓存队列中的缓存数据或所述第二缓存队列中的缓存数据移动至提取队列中,对提取队列进行更新,替换提取队列中的旧缓存数据,从而使得消费者能够获得的较新的缓存数据而非旧的缓存数据。

Description

一种队列缓存方法及设备
技术领域
本发明涉及数据存储领域,尤其涉及一种队列缓存方法及设备。
背景技术
生产者一般为固定频率生成固定数据大小的模块,例如视频图像采集模块采集图像的频率和大小是固定不变的,音频采集模块采集音频的频率和大小是固定不变的。
但是,消费者会因为种种原因导致获取数据和消耗数据的速度低于生产者生产数据的速度。特别对于视频数据来说,消费者对视频数据的处理(例如视频编码)的能力是很有限的,在某一时刻没有视频编码,则总体消耗的数据就会降低。例如芯片视频编码能力是30fps(即30帧图像每秒钟),如果有33ms内因为系统问题没有从消费者获取数据也没有开始编码,则这段时间内就是白白浪费了编码器的性能,导致该秒内实际编码能力下降。对于生产者,由于固定生成30fps不变,所以缓冲区队列中积累的视频帧就会越来越大,而系统的视频帧的缓冲是很少的,一般只能缓存几帧,从而导致生产者生成的最新数据无法进行缓存,使得消费者获取到的是旧数据,而非最新数据的技术问题。
综上所述,现有技术中当消费者消耗数据的能力低于生产者生产数据的能力时,存在着消费者获取并非是最新数据的技术问题。
发明内容
本发明提供了一种队列缓存方法及设备,本发明能够使得消费者获取到生产者生成的最新数据。
为了解决上述技术问题,本发明实施例提供了一种队列缓存方法,包括以下步骤:
判断第一缓存队列是否存在空闲的第一缓存区或第二缓存队列是否存在空闲的第二缓存区,当所述第一缓存队列存在空闲的第一缓存区时,将缓存数据储存至所述第一缓存队列的第一个第一缓存区,当所述第一缓存队列不存在空闲的第一缓存区时,所述第二缓存队列存在空闲的第二缓存区,将所述缓存数据储存至所述第二缓存队列的第一个第二缓存区;
当对提取队列中的缓存数据进行提取时,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,从所述提取队列中读取缓存数据;
其中,所述第一缓存队列包括多个第一缓存区,当某个第一缓存区中的缓存数据已经被消费者读取,该第一缓存区空闲;所述第二缓存队列包括多个第二缓存区,当某个第二缓存区中的缓存数据已经被消费者读取,则该第二缓存区空闲,所述提取队列包括多个第三缓存区,当某个第三缓存区中的缓存数据已经被消费者读取,则该第三缓存区空闲。
优选的,当对所述提取队列中的缓存数据进行提取时,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,形成提取队列,从所述提取队列中读取缓存数据的具体过程为:
当对提取队列中的缓存数据进行提取时,判断是否存在队列空标志,若存在队列空标志,清除队列空标志,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,从所述提取队列中读取缓存数据。
优选的,从所述提取队列中读取缓存数据的具体过程为:
执行提取步骤,其中,提取步骤包括:
判断所述提取队列中的第三缓存区是否均空闲,若否,从所述提取队列中的第一个第三缓存区中读取缓存数据;若是,判断所述第二缓存队列中的第二缓存区是否均为空闲;若否,将所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,并移除所述提取队列的第一个第三缓存区,从所述提取队列中提取缓存数据。
优选的,在提取步骤中,若所述第二缓存队列中的第二缓存区均为空闲时,生成队列空标志,进入等待状态。
优选的,在清除队列空标志后,退出等待状态,从所述提取队列中读取缓存数据。
优选的,若不存在队列空标志,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述第二缓存队列的最后一个第二缓存区后的位置,移除所述第二缓存队列的第一个第二缓存区,将所述第二缓存队列的第一个第一缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,执行提取步骤。
优选的,当从所述提取队列中读取所述缓存数据后,还包括以下步骤:
将从所述提取队列中移除的第一个第三缓存区移动至所述第一缓存队列的最后一个第一缓存区后的位置,并移除所述第一缓存队列的第一个第一缓存区。
优选的,当所述第一缓存队列和所述第二缓存队列均为空闲队列时,停止生产者工作,设置第一标志。
优选的,当从所述提取队列中提取缓存数据后,判断所述生产者是否停止工作,若是,重新触发所述生产者工作,清除所述第一标志,若否,结束流程。
本发明实施例还提供了一种队列缓存设备,包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述的一种队列缓存方法。
相比于现有技术,本发明实施例具有如下有益效果:
本发明实施例通过将缓存数据预先储存在第一缓存队列或第二缓存队列中,当对提取队列中的缓存数据进行提取时,即将第一缓存队列中的缓存数据或所述第二缓存队列中的缓存数据移动至提取队列中,对提取队列进行更新,替换提取队列中的旧缓存数据,从而使得消费者能够获得的较新的缓存数据而非旧的缓存数据。
附图说明
图1:为本发明实施例提供的一种队列缓存方法的流程图。
图2:为本发明实施例提供的一种队列缓存方法的流程图。
图3:为本发明实施例提供的一种队列缓存方法的执行第一异常处理的流程图。
图4:为本发明实施例提供的一种队列缓存方法的执行第二异常处理的流程图。
图5:为本发明实施例提供的一种队列缓存设备的框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参照图1,为本发明实施例提供的一种队列缓存方法,包括以下步骤:
S101:对第一缓存队列、第二缓存队列以及提取队列进行初始化。
需要进一步说明的是,初始化的具体过程为:
清空第一缓存队列、第二缓存队列以及提取队列,为了避免后续申请缓存区失败,分配好N帧缓存区作为专用内存,将N帧缓存区移动到第一缓存队列中。
其中,需要进一步说明的是,第二缓存队列表示已经对缓存数据进行更新但是消费者还尚未取走更新后缓存数据的队列,提取队列表示用于消费者直接取走更新后的缓存数据的队列。第二缓存队列相当于缓存数据的暂存,当消费者需要缓存数据时,则从第二缓存队列获取缓存数据到提取队列,然后消费者直接从提取队列获得缓存数据。第一缓存队列包括多个第一缓存区,当某个第一缓存区中的缓存数据已经被消费者读取,该第一缓存区空闲;第二缓存队列包括多个第二缓存区,当某个第二缓存区中的缓存数据已经被消费者读取,则该第二缓存区空闲,提取队列包括多个第三缓存区,当某个第三缓存区中的缓存数据已经被消费者读取,则该第三缓存区空闲。
S102:判断第一缓存队列是否存在空闲的第一缓存区。
S103:当第一缓存队列存在空闲的第一缓存区,将缓存数据储存至所述第一缓存队列的第一个第一缓存区。
S104:当第一缓存队列不为空闲队列,判断第二缓存队列是否为存在空闲的第二缓存区;
S105:当第二缓存队列存在空闲的第二缓存区时,将缓存数据储存至第二缓存队列的第一个第二缓存区。
S106:当对提取队列中的缓存数据进行提取时,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,从所述提取队列中读取缓存数据。
本发明实施例通过将缓存数据预先储存在第一缓存队列或第二缓存队列中,当对提取队列中的缓存数据进行提取时,将第一缓存队列中的缓存数据或第二缓存队列中的缓存数据移动至提取队列中,对提取队列进行更新,替换提取队列中的旧缓存数据,从而使得消费者能够获得的较新的缓存数据而非旧的缓存数据。
实施例二
请参照图2,为本发明实施例提供的一种队列缓存方法,包括以下步骤:
S201:对第一缓存队列、第二缓存队列以及提取队列进行初始化。
需要进一步说明的是,初始化的具体过程为:
清空第一缓存队列、第二缓存队列以及提取队列,为了避免后续申请缓存区失败,分配好N帧缓存区作为专用内存,将N帧缓存区移动到第一缓存队列中。
其中,需要进一步说明的是,第二缓存队列表示已经更新缓存数据但是消费者没有取走的队列,提取队列表示用于消费者直接取走缓存数据的队列。第二缓存队列相当于缓存数据的暂存,当消费者需要缓存数据时,则从第二缓存队列获取缓存数据到提取队列,然后消费者直接从提取队列获得缓存数据。第一缓存队列包括多个第一缓存区,当某个第一缓存区中的缓存数据已经被消费者读取,该第一缓存区空闲;第二缓存队列包括多个第二缓存区,当某个第二缓存区中的缓存数据已经被消费者读取,则该第二缓存区空闲,提取队列包括多个第三缓存区,当某个第三缓存区中的缓存数据已经被消费者读取,则该第三缓存区空闲。
S202:判断第一缓存队列是否存在空闲的第一缓存区,若第一缓存队列存在空闲的缓存区,将缓存数据储存至第一缓存队列的第一个第一缓存区中;
S203:若第一缓存队列不存在空闲的第一缓存区,则判断第二缓存队列是否存在空闲的第二缓存区,若第二缓存队列存在空闲的第二缓存区,将缓存数据储存至第二缓存队列的第一个第二缓存区中;
S204:若第二缓存队列不存在空闲的第二缓存区,则执行第一异常处理。其中,第一异常处理的过程为:停止生产者工作,设置“生产者已停止工作”的标志,如图3所示。
S205:判断是否存在队列空标志,即判断提取队列中的第三缓存区是否均为空闲以及第二缓存队列中的第二缓存区是否均为空闲;
S206:若存在队列空标志,则清空队列空标志;
S207:将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区。从而对提取队列中的缓存数据进行更新,使得消费者能够从提取队列中获取较新的缓存数据。
其中,需要进一步说明的是,得到提取队列具体过程为:当缓存数据储存至第一缓存队列时,将第一缓存队列的第一个第一缓存区移动至提取队列的最后一个第三缓存区后的位置,并删除提取队列的第一个第三缓存区。
当缓存数据储存至第二缓存队列时,将第二缓存队列的第一个第二缓存区移动至提取队列的最后一个第三缓存区后的位置,并删除提取队列的第一个第三缓存区。
S208:若不存在队列空标志,即当提取队列中存在不空闲的第三缓存区和第二缓存队列中存在不空闲的第二缓存区时,将第一缓存队列的第一个第一缓存区或第二缓存队列第一个第二缓存区移动至第二提取队列的最后一个第二缓存区后的位置,并删除第二缓存队列的第一个第二缓存区。通过对第二缓存队列进行更新,使用新缓存数据覆盖第二缓存队列中的旧缓存数据,保证第二缓存队列的缓存数据比较新,等到消费者重新取缓存数据时,第二缓存队列的数据已经是较新数据了。
其中,需要进一步说明的是,当缓存数据储存在第一缓存队列时,将第一缓存队列的第一个第一缓存区移动至第二缓存队列的最后一个第二缓存区后的位置,并删除二缓存队列的第一个第二缓存区。
当缓存数据储存在第二缓存队列时,将第二缓存队列的第一个第二缓存区移动至第二缓存队列的最后一个第二缓存区后的位置,并删除二缓存队列的第一个第二缓存区。
S209:在对提取队列进行更新以后,退出等待状态;
S210:判断提取队列中的第三缓存区是否均为空闲,若否,从提取队列中的第一个第三缓存区中获取缓存数据,
S211:当从提取队列中的第一个第三缓存区读取缓存数据后,将提取队列的第一个第三缓存区移动至第一缓存队列的最后一个第一缓存区后的位置,并删除第一缓存队列的第一个第一缓存区。
S212:执行第二异常处理步骤。
其中,需要进一步说明的是,第二异常处理的具体过程为:判断生产者是否停止工作,若是,重新触发生产者工作,清除“生产者已停止工作”的标志,若否,结束流程,如图4所示。
S213:当提取队列中的第三缓存区均为空闲,判断第二缓存队列中的第二缓存区是否均为空闲。
S214:若第二缓存队列中的第二缓存区均为空闲,生成队列空标志,进入等待状态;
S215:若第二缓存队列中的第二缓存区并非均为空闲,则将第二缓存队列的第一个第二缓存区移动至提取队列的最后一个第三缓存区后的位置,并删除提取队列的第一个第三缓存区,对提取队列进行更新,重新执行步骤210。
实施例三
如图5所示,本发明还提供了一种队列缓存设备,所述设备包括处理器300以及存储器301;
所述存储器301用于存储程序代码302,并将所述程序代码302传输给所述处理器;
所述处理器300用于根据所述程序代码302中的指令执行上述的一种队列缓存方法中的步骤。
示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由所述处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述终端设备中的执行过程。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图5仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器300可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-ProgrammaBle Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器301可以是所述终端设备的内部存储单元,例如终端设备的硬盘或内存。所述存储器301也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器301还可以既包括所述终端设备的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种队列缓存方法,其特征在于,包括以下步骤:
判断第一缓存队列是否存在空闲的第一缓存区或第二缓存队列是否存在空闲的第二缓存区,当所述第一缓存队列存在空闲的第一缓存区时,将缓存数据储存至所述第一缓存队列的第一个第一缓存区,当所述第一缓存队列不存在空闲的第一缓存区时,所述第二缓存队列存在空闲的第二缓存区,将所述缓存数据储存至所述第二缓存队列的第一个第二缓存区;
当对提取队列中的缓存数据进行提取时,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,从所述提取队列中读取缓存数据;
其中,所述第一缓存队列包括多个第一缓存区,当某个第一缓存区中的缓存数据已经被消费者读取,则该第一缓存区空闲;所述第二缓存队列包括多个第二缓存区,当某个第二缓存区中的缓存数据已经被消费者读取,则该第二缓存区空闲,所述提取队列包括多个第三缓存区,当某个第三缓存区中的缓存数据已经被消费者读取,则该第三缓存区空闲。
2.根据权利要求1所述的一种队列缓存方法,其特征在于,当对所述提取队列中的缓存数据进行提取时,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,形成提取队列,从所述提取队列中读取缓存数据的具体过程为:
当对提取队列中的缓存数据进行提取时,判断是否存在队列空标志,若存在队列空标志,清除队列空标志,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,从所述提取队列中读取缓存数据。
3.根据权利要求2所述的一种队列缓存方法,其特征在于,从所述提取队列中读取缓存数据的具体过程为:
执行提取步骤,其中,提取步骤包括:
判断所述提取队列中的第三缓存区是否均空闲,若否,从所述提取队列中的第一个第三缓存区中读取缓存数据;若是,判断所述第二缓存队列中的第二缓存区是否均为空闲;若否,将所述第二缓存队列的第一个第二缓存区移动至所述提取队列的最后一个第三缓存区后的位置,并移除所述提取队列的第一个第三缓存区,从所述提取队列中提取缓存数据。
4.根据权利要求3所述的一种队列缓存方法,其特征在于,在提取步骤中,若所述第二缓存队列中的第二缓存区均为空闲时,生成队列空标志,进入等待状态。
5.根据权利要求4所述的一种队列缓存方法,其特征在于,在清除队列空标志后,退出等待状态,从所述提取队列中读取缓存数据。
6.根据权利要求5所述的一种队列缓存方法,其特征在于,若不存在队列空标志,将所述第一缓存队列的第一个第一缓存区或所述第二缓存队列的第一个第二缓存区移动至所述第二缓存队列的最后一个第二缓存区后的位置,移除所述第二缓存队列的第一个第二缓存区,将所述第二缓存队列的第一个第一缓存区移动至所述提取队列的最后一个第三缓存区后的位置,移除所述提取队列的第一个第三缓存区,执行提取步骤。
7.根据权利要求6所述的一种队列缓存方法,其特征在于,当从所述提取队列中读取所述缓存数据后,还包括以下步骤:
将从所述提取队列中移除的第一个第三缓存区移动至所述第一缓存队列的最后一个第一缓存区后的位置,并移除所述第一缓存队列的第一个第一缓存区。
8.根据权利要求7所述的一种队列缓存方法,其特征在于,当所述第一缓存队列和所述第二缓存队列均为空闲队列时,停止生产者工作,设置第一标志。
9.根据权利要求8所述的一种队列缓存方法,其特征在于,当从所述提取队列中提取缓存数据后,判断所述生产者是否停止工作,若是,重新触发所述生产者工作,清除所述第一标志,若否,结束流程。
10.一种队列缓存设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1至权利要求9中任一项所述的一种队列缓存方法。
CN202110234334.5A 2021-03-03 2021-03-03 一种队列缓存方法及设备 Active CN112988622B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110234334.5A CN112988622B (zh) 2021-03-03 2021-03-03 一种队列缓存方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110234334.5A CN112988622B (zh) 2021-03-03 2021-03-03 一种队列缓存方法及设备

Publications (2)

Publication Number Publication Date
CN112988622A true CN112988622A (zh) 2021-06-18
CN112988622B CN112988622B (zh) 2024-07-26

Family

ID=76352305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110234334.5A Active CN112988622B (zh) 2021-03-03 2021-03-03 一种队列缓存方法及设备

Country Status (1)

Country Link
CN (1) CN112988622B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629878A (zh) * 2022-10-20 2023-01-20 北京力控元通科技有限公司 一种基于内存交换的数据处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180248813A1 (en) * 2017-02-28 2018-08-30 Huawei Technologies Co., Ltd. Queue Flushing Method and Related Device
CN108763103A (zh) * 2018-05-24 2018-11-06 郑州云海信息技术有限公司 一种内存管理方法、装置、系统及计算机可读存储介质
KR20200074707A (ko) * 2018-12-17 2020-06-25 성균관대학교산학협력단 그래픽 프로세싱 유닛 상에서 작업을 프로세싱하기 위한 시스템 및 방법
CN112131002A (zh) * 2020-09-24 2020-12-25 腾讯科技(深圳)有限公司 数据管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180248813A1 (en) * 2017-02-28 2018-08-30 Huawei Technologies Co., Ltd. Queue Flushing Method and Related Device
CN108763103A (zh) * 2018-05-24 2018-11-06 郑州云海信息技术有限公司 一种内存管理方法、装置、系统及计算机可读存储介质
KR20200074707A (ko) * 2018-12-17 2020-06-25 성균관대학교산학협력단 그래픽 프로세싱 유닛 상에서 작업을 프로세싱하기 위한 시스템 및 방법
CN112131002A (zh) * 2020-09-24 2020-12-25 腾讯科技(深圳)有限公司 数据管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张卜方;李斌;刘淑涛;: "CICQ交换结构中共享缓存的研究与应用", 无线电通信技术, vol. 41, no. 1, 26 January 2015 (2015-01-26), pages 94 - 96 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629878A (zh) * 2022-10-20 2023-01-20 北京力控元通科技有限公司 一种基于内存交换的数据处理方法及系统
CN115629878B (zh) * 2022-10-20 2024-07-19 北京力控元通科技有限公司 一种基于内存交换的数据处理方法及系统

Also Published As

Publication number Publication date
CN112988622B (zh) 2024-07-26

Similar Documents

Publication Publication Date Title
US20220035655A1 (en) Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium
CN109800181B (zh) 一种基于磁盘的数据写入方法、数据写入装置及终端设备
CN110727606A (zh) 内存回收方法、装置以及电子设备
WO2020006860A1 (zh) 一种图片缓存清理方法、装置、终端设备及介质
CN110727607A (zh) 内存回收方法、装置以及电子设备
CN105786997A (zh) 基于iOS系统的图片缓存与压缩方法
CN113297409A (zh) 一种图像搜索方法、装置、电子设备及存储介质
CN110704189A (zh) 内存回收方法、装置以及电子设备
CN112988622B (zh) 一种队列缓存方法及设备
CN111669599A (zh) 视频解码方法、视频解码装置及终端设备
CN111258649B (zh) 处理器、芯片和电子设备
CN109727187B (zh) 用于调整多个感兴趣区域数据的存储位置的方法和装置
CN113780163B (zh) 一种页面加载时间的检测方法、装置、电子设备及介质
CN111858393B (zh) 内存页面管理方法、内存页面管理装置、介质与电子设备
CN110852250B (zh) 一种基于最大面积法的车辆排重方法、装置及存储介质
CN111047657A (zh) 图片压缩方法、装置、介质及电子设备
CN111833232B (zh) 一种图像处理装置
CN109271538A (zh) 一种图片存储方法及相关设备
US7778475B2 (en) Motion picture processing device
CN113934692A (zh) 文件清理方法、装置、存储介质及设备
CN115729765A (zh) 一种数据采集方法、装置、电子设备及存储介质
CN114691603A (zh) 目标信息存储方法、装置、电子设备及介质
CN110782389A (zh) 一种图像数据字节对齐方法和终端
CN112364682A (zh) 一种案件搜索方法及装置
CN112532905B (zh) 车载音视频帧数据处理方法及装置

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
CB02 Change of applicant information

Country or region after: China

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Applicant after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: Unit 301, 302, 303, 3 / F, C1 area, 182 science Avenue, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou, Guangdong 510000

Applicant before: Guangzhou Ankai Microelectronics Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant