CN102023929B - 基于乒乓缓存方式的数据缓存系统结构及其实现方法 - Google Patents

基于乒乓缓存方式的数据缓存系统结构及其实现方法 Download PDF

Info

Publication number
CN102023929B
CN102023929B CN2009101957090A CN200910195709A CN102023929B CN 102023929 B CN102023929 B CN 102023929B CN 2009101957090 A CN2009101957090 A CN 2009101957090A CN 200910195709 A CN200910195709 A CN 200910195709A CN 102023929 B CN102023929 B CN 102023929B
Authority
CN
China
Prior art keywords
buffer
data
location
performance element
buffering
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.)
Active
Application number
CN2009101957090A
Other languages
English (en)
Other versions
CN102023929A (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Shanghai Mobilepeak Semiconductor 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 Shanghai Mobilepeak Semiconductor Co Ltd filed Critical Shanghai Mobilepeak Semiconductor Co Ltd
Priority to CN2009101957090A priority Critical patent/CN102023929B/zh
Publication of CN102023929A publication Critical patent/CN102023929A/zh
Application granted granted Critical
Publication of CN102023929B publication Critical patent/CN102023929B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种基于乒乓缓存方式的数据缓存系统结构,其中包括缓冲区单元、缓存执行单元、缓存控制单元、对上层接口单元、对下层接口单元,缓存控制单元与记录缓冲区单元的缓存控制信息,并控制缓存执行单元对缓冲区单元进行数据缓冲操作处理,对上层接口单元接收外部发送来的缓冲数据并送至缓存执行单元,对下层接口单元接收缓存执行单元读取出的缓冲数据并向外部发送,本发明还涉及一种利用该系统结构实现基于乒乓缓存方式的数据缓存的方法。采用该种基于乒乓缓存方式的数据缓存系统结构及其实现方法,提高了数据传输的有效性,具有实时报错统计系统,在瞬时数据流量巨大时能够按重要性来保留关键数据,工作性能稳定可靠,适用范围较为广泛。

Description

基于乒乓缓存方式的数据缓存系统结构及其实现方法
技术领域
本发明涉及数据通信领域,特别涉及大数据量缓存和处理技术领域,具体是指一种基于乒乓缓存方式的数据缓存系统结构及其实现方法。
背景技术
缓存(buffer)是一种在通信领域应用非常广泛的技术。不同的通信设备对数据处理的速率不一致,不同的任务因为优先级的差别有时较难保证对数据的同步处理,比如,CPU拷贝数据给USB,USB将数据传递给另一个CPU,由于CPU对数据的拷贝速率远远大于USB,如果单个字(word)的拷贝,CPU和USB都全速运行,很显然数据在传递过程中可能被丢失或损毁,使用缓存技术在一定程度上能解决这个问题:CPU拷贝数据到缓冲区,缓冲区满后CPU不再往其中填入数据,此时USB开始搬移数据,搬完后通知CPU,CPU又可以往缓冲区中填入数据。对数据处理的速度不一致时。现实环境中不同设备不同任务间的速率不匹配较为常见,为了保证数据在速率不匹配的设备间传递的正确性和完整性,缓存机制的应用就非常必要。
所谓乒乓buffer,是指定两个缓冲区,来交替存储和处理数据。其经典算法如下:
第一个buffer在接受高速率设备或高优先级任务发送过来的数据的同时,第二个buffer将数据传递给低速率设备或低优先级任务进行处理;当第一个buffer被填满,且第二个buffer中的数据已全部处理完毕时,第二个buffer开始接受数据,同时第一个buffer中的数据则被传递给低速率设备或低优先级任务进行处理,直到第二个buffer满且第一个buffer数据被处理完毕;重复上面的步骤。
常规的乒乓buffer功能单一,结构简单,虽然设计与实现较为方便,且有效的解决了高速率设备和低速率设备、高优先级任务和低优先级任务间的速率不匹配问题,提高了设备的使用效率和数据的传输效率,优化了系统的性能,但同时存在如下一些问题,特别是在大数据流量的系统中表现的尤为突出:
(1)buffer的大小较易改变,但buffer的个数却不易改变;
(2)当系统资源有限但数据流量巨大,必须对数据进行丢弃时,不能对数据进行选择性的丢弃与保留;
(3)缺少报错与统计系统。当数据丢失时无法提供一个错误的统计信息。
发明内容
本发明的目的是克服了上述的现有技术中的缺点,提供一种能够高效安全的实现数据缓存、结构简单实用、使用快捷方便、工作性能稳定可靠、适用范围较为广泛的基于乒乓缓存方式的数据缓存系统结构及其实现方法。
为了实现上述的目的,本发明的基于乒乓缓存方式的数据缓存系统结构及其实现方法如下:
该基于乒乓缓存方式的数据缓存系统结构,其主要特点是,包括:
缓冲区单元,进行缓冲数据的存放;
缓存执行单元,与所述的缓冲区单元相连接,执行数据的缓存操作;
缓存控制单元,与所述的缓存执行单元相连接,记录所述的缓冲区单元的缓存控制信息,并控制所述的缓存执行单元对所述的缓冲区单元进行数据缓冲操作处理;
对上层接口单元,与所述的缓存执行单元相连接,接收外部发送来的缓冲数据并送至所述的缓存执行单元;
对下层接口单元,与所述的缓存执行单元相连接,接收所述的缓存执行单元读取出的缓冲数据并向外部发送。
该基于乒乓缓存方式的数据缓存系统结构中的缓存控制信息包括缓冲区类型信息、缓冲区状态信息和缓冲区空间信息。
该基于乒乓缓存方式的数据缓存系统结构中的缓冲区单元包括通用型缓冲区单元、专用型缓冲区单元和报错型缓冲区单元,所述的缓冲区类型信息包括通用型、专用型和报错型。
该基于乒乓缓存方式的数据缓存系统结构中的缓冲区状态信息包括空状态、可用状态、满但未发送状态、满且已发送状态。
该基于乒乓缓存方式的数据缓存系统结构中的缓冲区空间信息包括缓冲区总空间信息和缓冲区已用空间信息。
该利用上述的系统结构实现基于乒乓缓存方式的数据缓存的方法,其主要特点是,所述的方法包括数据缓存系统结构初始化操作、缓冲数据接收存储操作和缓冲数据发送操作,所述的数据缓存系统结构初始化操作,包括以下步骤:
(11)系统将所有的缓冲区单元的状态信息设置为可用状态;
(12)所述的缓存控制单元将所有通用型缓冲区单元链接形成环行双向链表;
所述的缓冲数据接收存储操作,包括以下步骤:
(21)所述的对上层接口单元接收外部发送来的缓冲数据并送至所述的缓存执行单元;
(22)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲数据进行相应的数据存储处理操作;
所述的缓冲数据发送操作,包括以下步骤:
(31)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲区单元中的缓冲数据进行相应的数据读取处理操作,并将读取的缓冲数据送至所述的对下层接口单元;
(32)所述的缓存控制单元检查并设置各个缓冲区单元的状态信息;
(33)所述的对下层接口单元将所述的缓冲数据向外部发送。
该实现基于乒乓缓存方式的数据缓存的方法中的缓存执行单元根据缓存控制单元所记录的缓存控制信息对缓冲数据进行数据存储处理操作,包括以下步骤:
(41)所述的缓存控制单元将所记录的缓存控制信息送至所述的缓存执行单元;
(42)所述的缓存执行单元判断所述的通用型缓冲区单元的环行双向链表中是否存在缓冲区状态信息为可用状态的缓冲区单元;
(43)如果存在,则所述的缓存执行单元将所述的缓冲数据写入相应的缓冲区单元中,并结束;
(44)如果不存在,则所述的缓存控制单元判断是否还有可用状态的专用型缓冲区单元;
(45)如果存在,则所述的缓存控制单元在所述的环行双向链表中插入该专用型缓冲区,且所述的缓存执行单元将所述的缓冲数据写入相应的专用型缓冲区单元中;
(46)如果不存在,则所述的缓存执行单元将所述的缓冲数据丢弃,并进行丢弃的缓冲数据的统计,然后将统计的结果以报错信息的形式写入所述的报错型缓冲区单元中;
(47)所述的缓存控制单元持续检查所述的环行双向链表中各个缓冲区单元的状态,如果某个缓冲区单元填充数据满,则将该缓冲区单元的状态信息设置为满但未发送状态。
该实现基于乒乓缓存方式的数据缓存的方法中的进行丢弃的缓冲数据的统计,具体为:
根据缓冲数据的优先级进行区分并分别进行统计。
该实现基于乒乓缓存方式的数据缓存的方法中的缓存执行单元对缓冲区单元中的缓冲数据进行数据读取处理操作,包括以下步骤:
(51)所述的缓存执行单元从缓冲区单元中读取相应的缓冲数据;
(52)如果所述的缓冲区单元中的数据已经被全部读取,则通知所述的缓存控制单元将该缓冲区单元的状态设置为空状态。
该实现基于乒乓缓存方式的数据缓存的方法中的缓存控制单元检查并设置各个缓冲区单元的状态信息,包括以下步骤:
(61)所述的缓存控制单元在一个缓冲区单元中的数据被全部读取完毕后将该缓冲区单元的状态设置为空状态;
(62)所述的缓存控制单元持续检测所述的环行双向链表中的各个缓冲区单元,如果该缓冲区单元的状态为空状态,则设置该缓冲区单元对应的缓存控制信息,并将该缓冲区单元的状态设为可用状态;
(63)当所述的缓存执行单元将某个缓冲区单元中的数据读取并送至所述的对下层接口单元,则将该缓冲区单元的状态设置为满且已发送状态。
该发明的基于乒乓缓存方式的数据缓存系统结构及其实现方法,由于其可对信息进行筛选,其中包括缓存模块的控制部分、缓存模块的缓冲区部分、缓存模块的执行部分、缓存模块的对上层接口部分、缓存模块的对下层接口部分,对结构进行了优化,功能进行了增强,因此提高了数据传输的有效性,并具有实时的报错统计系统,强化了系统的性能,在资源有限数据流量巨大的系统中提供一个接口更为友好、对数据进行分级处理、具有统计与报错能力的缓存机制,在瞬时数据流量巨大的系统中能够按重要性来保留关键数据,从而使重要信息不丢失、不损坏,使关键信息获得更有保障的传递,不仅结构简单实用,使用快捷方便,工作性能稳定可靠,而且适用范围也较为广泛。
附图说明
图1为本发明的基于乒乓缓存方式的数据缓存系统结构示意图。
图2为本发明的基于乒乓缓存方式的数据缓存实现方法中的单个缓冲区的状态转换示意图。
图3为本发明的基于乒乓缓存方式的数据缓存实现方法中的缓存系统状态示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实例详细说明。
请参阅图1所示,该基于乒乓缓存方式的数据缓存系统结构,其中包括:
(1)缓冲区单元,进行缓冲数据的存放;
(2)缓存执行单元,与所述的缓冲区单元相连接,实现数据的缓存操作;
(3)缓存控制单元,与所述的缓存执行单元相连接,记录所述的缓冲区单元的缓存控制信息,并控制所述的缓存执行单元对所述的缓冲区单元进行数据缓冲操作处理;
(4)对上层接口单元,与所述的缓存执行单元相连接,接收外部发送来的缓冲数据并送至所述的缓存执行单元;
(5)对下层接口单元,与所述的缓存执行单元相连接,接收所述的缓存执行单元读取出的缓冲数据并向外部发送。
其中,所述的缓存控制信息包括缓冲区类型信息、缓冲区状态信息和缓冲区空间信息;所述的缓冲区单元包括通用型缓冲区单元、专用型缓冲区单元和报错型缓冲区单元,所述的缓冲区类型信息包括通用型、专用型和报错型;所述的缓冲区状态信息包括空状态、可用状态、满但未发送状态、满且已发送状态;所述的缓冲区空间信息包括缓冲区总空间信息和缓冲区已用空间信息。
在实际使用当中,本发明的数据缓存系统结构可对信息进行筛选,包括如下几个部分:缓存模块的控制部分、缓存模块的缓冲区部分、缓存模块的执行部分、缓存模块的对上层接口部分、缓存模块的对下层接口部分。
缓存模块的控制部分是本发明的核心。控制模块记录着各缓冲区的类型、状态、总空间、已用空间和其他一些相关信息。在某一时刻可以通过查询某个缓冲区对应的控制部分来获得该缓冲区的状态信息和即时信息,并以此为依据来决定对缓冲区的数据操作。
缓存模块的缓冲区部分是本发明的基础。缓冲区是一块用来真正存放和处理数据的空间。根据不同的用途申请大小不等的空间,使缓存空间得到合理有效的应用。
缓存模块的执行部分是本发明的根本。执行部分根据控制部分给予的相关信息,将从对上层接口中获取的数据存入缓冲区中,若缓冲区满,需将已准备好的数据传递给对下层接口。
缓存模块的对上层接口是本发明的输入接口。高速率设备或高级别的任务通过该接口向缓存模块输入数据。可以根据实际的数据类型提供多个接口。
缓存模块的对下层接口是本发明的输出接口。缓存模块通过该接口将数据传递给低速率设备或低优先级别的任务。
再请参阅图2和图3所示,该利用上述的系统结构实现基于乒乓缓存方式的数据缓存的方法,其中包括数据缓存系统结构初始化操作、缓冲数据接收存储操作和缓冲数据发送操作,所述的数据缓存系统结构初始化操作,包括以下步骤:
(11)系统将所有的缓冲区单元的状态信息设置为可用状态;
(12)所述的缓存控制单元将所有通用型缓冲区单元链接形成环行双向链表;
所述的缓冲数据接收存储操作,包括以下步骤:
(21)所述的对上层接口单元接收外部发送来的缓冲数据并送至所述的缓存执行单元;
(22)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲数据进行相应的数据存储处理操作,包括以下步骤:
(a)所述的缓存控制单元将所记录的缓存控制信息送至所述的缓存执行单元;
(b)所述的缓存执行单元判断所述的通用型缓冲区单元的环行双向链表中是否存在缓冲区状态信息为可用状态的缓冲区单元;
(c)如果存在,则所述的缓存执行单元将所述的缓冲数据写入相应的缓冲区单元中,并结束;
(d)如果不存在,则所述的缓存控制单元判断是否还有可用状态的专用型缓冲区单元;
(e)如果存在,则所述的缓存控制单元在所述的环行双向链表中插入该专用型缓冲区,且所述的缓存执行单元将所述的缓冲数据写入相应的专用型缓冲区单元中;
(f)如果不存在,则所述的缓存执行单元将所述的缓冲数据丢弃,并进行丢弃的缓冲数据的统计,然后将统计的结果以报错信息的形式写入所述的报错型缓冲区单元中;该实现基于乒乓缓存方式的数据缓存的方法中的进行丢弃的缓冲数据的统计,具体为:
根据缓冲数据的优先级进行区分并分别进行统计;
(g)所述的缓存控制单元持续检查所述的环行双向链表中各个缓冲区单元的状态,如果某个缓冲区单元填充数据满,则将该缓冲区单元的状态信息设置为满但未发送状态;
所述的缓冲数据发送操作,包括以下步骤:
(31)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲区单元中的缓冲数据进行相应的数据读取处理操作,并将读取的缓冲数据送至所述的对下层接口单元;该数据读取处理操作,包括以下步骤:
(a)所述的缓存执行单元从缓冲区单元中读取相应的缓冲数据;
(b)如果所述的缓冲区单元中的数据已经被全部读取,则通知所述的缓存控制单元将该缓冲区单元的状态设置为空状态;
(32)所述的缓存控制单元检查并设置各个缓冲区单元的状态信息,包括以下步骤:
(a)所述的缓存控制单元在一个缓冲区单元中的数据被全部读取完毕后将该缓冲区单元的状态设置为空状态;
(b)所述的缓存控制单元持续检测所述的环行双向链表中的各个缓冲区单元,如果该缓冲区单元的状态为空状态,则设置该缓冲区单元对应的缓存控制信息,并将该缓冲区单元的状态设为可用状态;
(c)当所述的缓存执行单元将某个缓冲区单元中的数据读取并送至所述的对下层接口单元,则将该缓冲区单元的状态设置为满且已发送状态;
(33)所述的对下层接口单元将所述的缓冲数据向外部发送。
在实际应用当中,下面给出利用本发明的缓存系统结构进行数据缓存的具体例子。
其中描述了嵌入式系统将调试信息通过串行总线输出至PC的例子,在CPU和USB接口间使用了本发明实现的一个缓存系统。当瞬时数据流量巨大时,本发明与传统的乒乓buffer算法相比优势明显。
利用该系统结构实现数据缓存的主要步骤如下:
(1)缓存模块的控制部分
根据缓冲区装载的数据类型的不同,将缓冲区分为三种类型:通用型、专用型、报错型。这三种类型的缓冲区有各自不同的用途:通用型的缓冲区可以存储所有级别的数据;专用型的缓冲区只能存储具有一定优先级别的数据;报错型的缓冲区只能存储报错信息。每个缓冲区具有如下四种状态:
●空(EMPTY)
●可用(AVAILABLE)
●满但未发送(FULL_UNSEND)
●满且已发送(FULL_SENDED)
任意一个缓冲区在某个时刻必然处在以上四种状态中的一种。单个缓冲区的状态转换图如图2所示。缓冲区的状态切换发生在如下几个时刻:
●每个缓冲区的初始状态为可用(AVAILABLE);
●低速率设备或低优先级任务将一个缓冲区的数据传输完毕时,将该缓冲区的状态设置为空(EMPTY);
●缓冲模块在某一时刻检测到某个缓冲区的状态为空(EMPTY),设置该缓冲区相应的参数,并将该缓冲区的状态设为可用(AVAILABLE);
●当某个缓冲区填充数据满,但基于数据同步的考虑,延迟该缓冲区的发送,则将该缓冲区状态置为满但未发送(FULL_UNSEND);
●某时刻将某个缓冲区的数据发送给低速率设备或低优先级任务,将该缓冲区的状态置为满且已发送(FULL_SENDED)。
由控制部分维护一个环行双向链表。该链表的初始状态为所有通用型缓冲区链接而成的环行双向表,通用型缓冲区够用时,该表不再插入新的节点,也不移除任何节点;当数据流量增大,通用型缓冲区不够时启用专用型缓冲区,此时向表中插入该专用型缓冲区,直到所有的专用型缓冲区被使用完毕;若开始丢失数据,报错并开始丢失数据的统计,统计信息在该次丢失数据结束时以报错信息的形式输出;低优先级数据和高优先级数据可以统一报错,也可分别各自报错。系统状态切换如图3所示。
如下为控制部分在ARM平台上的C语言实现:
typedef struct
{
   unsinged char*pPoolHead;
   unsigned char*pWritePoint;
   unsigned int uPoolMaxSize;
   unsigned int uPoolMsgSize;
   poolStatus_e PoolStatus;
   poolStyle_e PoolStyle;
   unsigned char next;
   unsigned char previous;
}PoolEntity_t;
(2)缓存结构的缓冲区单元部分
对于三种不同类型的缓冲区,具有相同的控制节点入口。各种类型之间缓冲空间的大小、个数可以各不相同,在实现上可以通过几个宏定义来代替常数,方便修改。例如:单个通用型缓冲区大小为8×1024,定义4个这样的缓冲区(共计32K的空间);单个专用型缓冲区大小为4×1024,定义两个这样的缓冲区(共计8K的空间);单个报错型缓冲区大小为256Bytes,定义四个这种缓冲区(共计1K的空间)。三种类型的缓冲区都可从静态空间中申请获取。
(3)缓存模块的执行部分
执行部分根据控制部分提供的缓冲区状态信息、缓冲区类型信息、缓冲区空间的使用情况将来自对上层接口的数据填入缓冲区或丢弃。同时,各缓冲区的状态切换(请参阅图2所示)、缓冲模块的状态切换(请参阅图2所示)的具体实施也是由执行部分实现的。
(4)缓存模块的对上层接口
对上层的接口根据不同类型的数据进行某种协议的封装。封装完成后将数据传递给执行部分进行处理。对上层接口的存在保证了数据类型的多样性。
(5)缓存模块的对下层接口
对下层的接口设计要注意两个方面:通过低速率设备或低优先级别任务的数据传输接口将数据传递过去;提供一个Callback函数给数据接受者或处理者,当某个缓冲区的数据被接受或处理完毕时通知缓冲区的控制部分将该缓冲区的状态置为空(EMPTY)。
上述的基于乒乓缓存方式的数据缓存系统结构及其实现方法,由于其可对信息进行筛选,其中包括缓存模块的控制部分、缓存模块的缓冲区部分、缓存模块的执行部分、缓存模块的对上层接口部分、缓存模块的对下层接口部分,对结构进行了优化,功能进行了增强,因此提高了数据传输的有效性,并具有实时的报错统计系统,强化了系统的性能,在资源有限数据流量巨大的系统中提供一个接口更为友好、对数据进行分级处理、具有统计与报错能力的缓存机制,在瞬时数据流量巨大的系统中能够按重要性来保留关键数据,从而使重要信息不丢失、不损坏,使关键信息获得更有保障的传递,不仅结构简单实用,使用快捷方便,工作性能稳定可靠,而且适用范围也较为广泛。
在此说明书中,本发明已参照其特定的实例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (7)

1.一种基于乒乓缓存方式的数据缓存系统结构,其特征在于,包括:
缓冲区单元,进行缓冲数据的存放,所述的缓冲区单元包括通用型缓冲区单元、专用型缓冲区单元和报错型缓冲区单元;
缓存执行单元,与所述的缓冲区单元相连接,执行数据的缓存操作;
缓存控制单元,与所述的缓存执行单元相连接,记录所述的缓冲区单元的缓存控制信息,并控制所述的缓存执行单元对所述的缓冲区单元进行数据缓冲操作处理,所述的缓存控制信息包括缓冲区类型信息、缓冲区状态信息和缓冲区空间信息,所述的缓冲区类型信息包括通用型、专用型和报错型,所述的数据缓冲操作处理包括以下步骤:
(a)所述的缓存控制单元将所记录的缓存控制信息送至所述的缓存执行单元;
(b)所述的缓存执行单元判断所述的通用型缓冲区单元的环行双向链表中是否存在缓冲区状态信息为可用状态的缓冲区单元;
(c)如果存在,则所述的缓存执行单元将所述的缓冲数据写入相应的缓冲区单元中,并结束;
(d)如果不存在,则所述的缓存控制单元判断是否还有可用状态的专用型缓冲区单元;
(e)如果存在,则所述的缓存控制单元在所述的环行双向链表中插入该专用型缓冲区,且所述的缓存执行单元将所述的缓冲数据写入相应的专用型缓冲区单元中;
(f)如果不存在,则所述的缓存执行单元将所述的缓冲数据丢弃,并进行丢弃的缓冲数据的统计,然后将统计的结果以报错信息的形式写入所述的报错型缓冲区单元中;
(g)所述的缓存控制单元持续检查所述的环行双向链表中各个缓冲区单元的状态,如果某个缓冲区单元填充数据满,则将该缓冲区单元的状态信息设置为满但未发送状态;
对上层接口单元,与所述的缓存执行单元相连接,接收外部发送来的缓冲数据并送至所述的缓存执行单元;
对下层接口单元,与所述的缓存执行单元相连接,接收所述的缓存执行单元读取出的缓冲数据并向外部发送。
2.根据权利要求1所述的基于乒乓缓存方式的数据缓存系统结构,其特征在于,所述的缓冲区状态信息包括空状态、可用状态、满但未发送状态、满且已发送状态。
3.根据权利要求1所述的基于乒乓缓存方式的数据缓存系统结构,其特征在于,所述的 缓冲区空间信息包括缓冲区总空间信息和缓冲区已用空间信息。
4.一种利用权利要求1所述的系统结构实现基于乒乓缓存方式的数据缓存的方法,其特征在于,所述的方法包括数据缓存系统结构初始化操作、缓冲数据接收存储操作和缓冲数据发送操作,所述的数据缓存系统结构初始化操作,包括以下步骤:
(11)系统将所有的缓冲区单元的状态信息设置为可用状态;
(12)所述的缓存控制单元将所有通用型缓冲区单元链接形成环行双向链表;
所述的缓冲数据接收存储操作,包括以下步骤:
(21)所述的对上层接口单元接收外部发送来的缓冲数据并送至所述的缓存执行单元;
(22)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲数据进行相应的数据存储处理操作,该数据存储处理操作包括以下步骤:
(41)所述的缓存控制单元将所记录的缓存控制信息送至所述的缓存执行单元;
(42)所述的缓存执行单元判断所述的通用型缓冲区单元的环行双向链表中是否存在缓冲区状态信息为可用状态的缓冲区单元;
(43)如果存在,则所述的缓存执行单元将所述的缓冲数据写入相应的缓冲区单元中,并结束;
(44)如果不存在,则所述的缓存控制单元判断是否还有可用状态的专用型缓冲区单元;
(45)如果存在,则所述的缓存控制单元在所述的环行双向链表中插入该专用型缓冲区,且所述的缓存执行单元将所述的缓冲数据写入相应的专用型缓冲区单元中;
(46)如果不存在,则所述的缓存执行单元将所述的缓冲数据丢弃,并进行丢弃的缓冲数据的统计,然后将统计的结果以报错信息的形式写入所述的报错型缓冲区单元中;
(47)所述的缓存控制单元持续检查所述的环行双向链表中各个缓冲区单元的状态,如果某个缓冲区单元填充数据满,则将该缓冲区单元的状态信息设置为满但未发送状态;
所述的缓冲数据发送操作,包括以下步骤:
(31)所述的缓存执行单元根据所述的缓存控制单元所记录的缓存控制信息对所述的缓冲区单元中的缓冲数据进行相应的数据读取处理操作,并将读取的缓冲数据送至所述的对下层接口单元;
(32)所述的缓存控制单元检查并设置各个缓冲区单元的状态信息;
(33)所述的对下层接口单元将所述的缓冲数据向外部发送。
5.根据权利要求4所述的实现基于乒乓缓存方式的数据缓存的方法,其特征在于,所述 的进行丢弃的缓冲数据的统计,具体为:
根据缓冲数据的优先级进行区分并分别进行统计。
6.根据权利要求4所述的实现基于乒乓缓存方式的数据缓存的方法,其特征在于,所述的缓存执行单元对缓冲区单元中的缓冲数据进行数据读取处理操作,包括以下步骤:
(51)所述的缓存执行单元从缓冲区单元中读取相应的缓冲数据;
(52)如果所述的缓冲区单元中的数据已经被全部读取,则通知所述的缓存控制单元将该缓冲区单元的状态设置为空状态。
7.根据权利要求4所述的实现基于乒乓缓存方式的数据缓存的方法,其特征在于,所述的缓存控制单元检查并设置各个缓冲区单元的状态信息,包括以下步骤:
(61)所述的缓存控制单元在一个缓冲区单元中的数据被全部读取完毕后将该缓冲区单元的状态设置为空状态;
(62)所述的缓存控制单元持续检测所述的环行双向链表中的各个缓冲区单元,如果该缓冲区单元的状态为空状态,则设置该缓冲区单元对应的缓存控制信息,并将该缓冲区单元的状态设为可用状态;
(63)当所述的缓存执行单元将某个缓冲区单元中的数据读取并送至所述的对下层接口单元,则将该缓冲区单元的状态设置为满且已发送状态。 
CN2009101957090A 2009-09-15 2009-09-15 基于乒乓缓存方式的数据缓存系统结构及其实现方法 Active CN102023929B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101957090A CN102023929B (zh) 2009-09-15 2009-09-15 基于乒乓缓存方式的数据缓存系统结构及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101957090A CN102023929B (zh) 2009-09-15 2009-09-15 基于乒乓缓存方式的数据缓存系统结构及其实现方法

Publications (2)

Publication Number Publication Date
CN102023929A CN102023929A (zh) 2011-04-20
CN102023929B true CN102023929B (zh) 2012-07-25

Family

ID=43865248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101957090A Active CN102023929B (zh) 2009-09-15 2009-09-15 基于乒乓缓存方式的数据缓存系统结构及其实现方法

Country Status (1)

Country Link
CN (1) CN102023929B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309767B (zh) * 2012-03-08 2016-01-13 阿里巴巴集团控股有限公司 一种客户端日志处理方法和装置
CN103076737A (zh) * 2013-01-04 2013-05-01 西北工业大学 基于乒乓缓冲和消息机制的高精度gps分布式授时方法
CN104660569A (zh) * 2013-11-21 2015-05-27 中国科学院沈阳自动化研究所 一种基于cdma远程数据传输方法
CN105049203B (zh) * 2015-06-17 2018-06-29 复旦大学 一种支持多工作模式的可配置3des加解密算法电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585373A (zh) * 2004-05-28 2005-02-23 中兴通讯股份有限公司 一种乒乓缓冲装置
US7111093B2 (en) * 2003-06-23 2006-09-19 Intel Corporation Ping-pong buffer system having a buffer to store a subset of data from a data source
CN101236528A (zh) * 2008-02-20 2008-08-06 华为技术有限公司 一种乒乓控制的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111093B2 (en) * 2003-06-23 2006-09-19 Intel Corporation Ping-pong buffer system having a buffer to store a subset of data from a data source
CN1585373A (zh) * 2004-05-28 2005-02-23 中兴通讯股份有限公司 一种乒乓缓冲装置
CN101236528A (zh) * 2008-02-20 2008-08-06 华为技术有限公司 一种乒乓控制的方法及装置

Also Published As

Publication number Publication date
CN102023929A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
CN100458757C (zh) 嵌入式实时操作系统中多核处理器的核间通信方法及装置
CN106489136B (zh) 用于在可扩展存储器系统协议中调节包传输的系统及方法
US7012448B2 (en) Integrated circuit and related improvements
CN101950261B (zh) 数据存储与鉴权并行的处理方法和终端
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
US20160132541A1 (en) Efficient implementations for mapreduce systems
CN101986305B (zh) 一种文件系统的操作方法及一种通信装置
US20030182464A1 (en) Management of message queues
CN103200128A (zh) 一种网络包处理的方法、装置和系统
CN1997987A (zh) 用于在互连网络路由器内进行分组合并的方法和设备
CN104503863B (zh) 用于虚拟容器系统容灾的内核态与用户态数据交换方法
CN102023929B (zh) 基于乒乓缓存方式的数据缓存系统结构及其实现方法
CN100489770C (zh) 处理指令的系统和方法
CN102033818A (zh) 媒体缓冲和流水线式处理组件
EP1508100B1 (en) Inter-chip processor control plane
CN116547644A (zh) 检测可编程原子事务中的无限循环
US7710904B2 (en) Ring network with variable token activation
CN116583829A (zh) 可编程原子操作符资源锁定
CN100419723C (zh) 多中断的缓存装置和方法
CN103227755B (zh) 使用推测技术的处理器到基于消息的网络的接口
CN101471955A (zh) 一种双控制器网络储存环境下的设备数据写入方法
US11210089B2 (en) Vector send operation for message-based communication
CN107911317A (zh) 一种报文调度方法及装置
CN116529721A (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170703

Address after: 201203 Shanghai Zhangjiang High Tech Park of Pudong New Area Chunxiao Road No. 439 Building No. 2

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 201204, building 1, building 180, Zhang Heng Road, Pudong New Area, Shanghai, 4F

Patentee before: Shanghai Mobilepeak Semiconductor Co.,Ltd.

CP02 Change in the address of a patent holder

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 201203 Shanghai Zhangjiang High Tech Park of Pudong New Area Chunxiao Road No. 439 Building No. 2

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

CP02 Change in the address of a patent holder
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180419

Address after: The 300456 Tianjin FTA test area (Dongjiang Bonded Port) No. 6865 North Road, 1-1-1802-7 financial and trade center of Asia

Patentee after: Xinji Lease (Tianjin) Co.,Ltd.

Address before: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110420

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinji Lease (Tianjin) Co.,Ltd.

Contract record no.: 2018990000196

Denomination of invention: Data buffering system structure based on ping-pong buffering way and implementation method thereof

Granted publication date: 20120725

License type: Exclusive License

Record date: 20180801

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221020

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 300456 1-1-1802-7, north area of financial and Trade Center, No. 6865, Asia Road, Tianjin pilot free trade zone (Dongjiang Bonded Port Area)

Patentee before: Xinji Lease (Tianjin) Co.,Ltd.