数据缓存处理方法及装置技术领域
本发明涉及逻辑设计领域,具体而言,涉及一种数据缓存处理方法及装置。
背景技术
在芯片设计中,内部缓存经常被用来存储数据,但是内部缓存的容量和数量都很有
限,只能对少量内容进行存储。随着电信级网络的发展,网络设备中物理接口的汇聚和
分发的应用场景会越来越多,涉及的端口数量也会越来越多,根据不同的使用场景,也
会提出不同的要求。如果现有的设计是用芯片实现端口汇聚功能,则需要增加流量管理
(QoS)功能;或者是实现端口分发功能,则要靠缓存吸收对物理端口的突发,防止突
发时的溢出丢包。
要实现类似功能的增加,光靠芯片的内部缓存是远远不够的,需要采用外部缓存替
换内部缓存。
直接用外部缓存(如双倍速率同步动态随机存储器(Double Data Rate SDRAM,
简称DDR SDRAM)、四倍数据传输静态随机存储器(Quad Data rate SRAM,简称QDR
SRAM))等,那么就需要对现有设计代码进行很大的改动,这种改动会延长开发周期,
也容易引入未知问题。
针对相关技术中,如何实现外部缓存替换内部缓存的问题,还未提出有效的解决方
案。
发明内容
本发明提供了一种数据缓存处理方法及装置,以至少解决相关技术中无法实现外部
缓存替换内部缓存的问题。
根据本发明的一个方面,提供了一种数据缓存处理方法,包括:接收写入待缓存数
据的写入请求消息,根据所述写入请求消息将所述待缓存数据缓存至芯片的外部缓存中。
可选地,根据所述写入请求消息将所述待缓存数据缓存至芯片的外部缓存中之后包
括:接收读取所述外部缓存中的指定数据的读取请求消息,根据所述读取请求消息从所
述外部缓存中读取所述指定数据。
可选地,根据所述写入请求消息将所述待缓存数据缓存至芯片的外部缓存中包括:
获取所述外部缓存中当前缓存的数据的缓存状态信息,根据所述缓存状态信息为所述待
缓存数据分配缓存空间,将所述待缓存数据缓存至所述缓存空间中。
可选地,接收写入待缓存数据的写入请求消息之前包括:将所述待缓存数据与读取
的数据进行对比,在对比结果一致的情况下,确定所述外部缓存的状态为正常状态,其
中,所述读取的数据是与所述待缓存数据对应的数据。
可选地,根据所述写入请求消息将所述待缓存数据缓存至芯片的外部缓存中包括:
按照第一预定时序信号将所述待缓存数据缓存至所述外部缓存中;和/或,根据所述读
取请求消息从所述外部缓存中读取所述指定数据包括:按照第二预定时序信号从所述外
部缓存中读取所述指定数据。
根据本发明的另一个方面,提供了一种数据缓存处理装置,包括:第一接收模块,
用于接收写入待缓存数据的写入请求消息,缓存模块,用于根据所述写入请求消息将所
述待缓存数据缓存至芯片的外部缓存中。
可选地,所述装置还包括:第二接收模块,用于接收读取所述外部缓存中的指定数
据的读取请求消息,读取模块,用于根据所述读取请求消息从所述外部缓存中读取所述
指定数据。
可选地,所述缓存模块还包括:获取单元,用于获取所述外部缓存中当前缓存的数
据的缓存状态信息,分配单元,用于根据所述缓存状态信息为所述待缓存数据分配缓存
空间,缓存单元,用于将所述待缓存数据缓存至所述缓存空间中。
可选地,所述装置还包括:对比模块,用于将所述待缓存数据与读取的数据进行
对比,在对比结果一致的情况下,确定所述外部缓存的状态为正常状态,其中,所述读
取的数据是与所述待缓存数据对应的数据。
可选地,所述装置还包括:所述缓存模块,用于按照第一预定时序信号将所述待缓
存数据缓存至所述外部缓存中;和/或,所述读取模块,用于按照第二预定时序信号从
所述外部缓存中读取所述指定数据。
通过本发明,采用接收写入待缓存数据的写入请求消息,根据该写入请求消息将该
待缓存数据缓存至芯片的外部缓存中,解决了相关技术中,无法实现外部缓存替换内部
缓存的问题,进而达到了在使用外部缓存时对现有设计改动小,开发周期短和不易引用
未知问题的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明
的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据缓存处理方法流程图;
图2是根据本发明实施例的数据缓存处理装置结构框图(一);
图3是根据本发明实施例的数据缓存处理装置结构框图(二);
图4是根据本发明实施例的数据缓存处理装置结构框图(三);
图5是根据本发明实施例的数据缓存处理装置结构框图(四);
图6是根据本发明实施例的外部缓存实现方法框图;
图7是根据本发明实施例的缓存划分示意图;
图8是根据本发明实施例的缓存管理示意图;
图9是根据本发明实施例的外部缓存控制方法流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情
况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”
等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据缓存处理方法,图1是根据本发明实施例的数据缓存
处理方法流程图,如图1所示,该流程包括如下步骤:
步骤S102,接收写入待缓存数据的写入请求消息;
步骤S104,根据写入请求消息将该待缓存数据缓存至芯片的外部缓存中。
通过上述步骤,采用接收写入待缓存数据的写入请求消息,根据该写入请求消息将
该待缓存数据缓存至芯片的外部缓存中,相比于现有技术在解决内部缓存不够用时直接
用外部缓存,需要对现有设计代码进行很大改动,延长开发周期等问题,上述步骤解决
了相关技术中,无法实现外部缓存替换内部缓存的问题,进而达到了在使用外部缓存时
对现有设计改动小,开发周期短和不易引用未知问题的效果。
上述步骤S104涉及根据写入请求消息将该待缓存数据缓存至芯片的外部缓存中,
在一个可选实施例中,根据该写入请求消息将该缓存数据缓存至芯片的外部缓存中之后,
接收读取该外部缓存中的指定数据的读取请求消息,根据该读取请求消息从该外部缓存
中读取指定数据。从而可以通过外部缓存实现了对数据的读写操作,扩大了芯片的存储
空间。
在将待缓存数据缓存至上述外部缓存时,需要为待缓存数据分配存储空间,在一个
可选实施例中,通过获取外部缓存中当前缓存的数据的缓存状态信息,根据该缓存状态
信息为待缓存数据分配缓存空间,将待缓存数据缓存至该缓存空间中。从而合理的为待
缓存数据分配了存储空间,实现了存储空间的优化。外部缓存的状态可能存在不正常的
情况,因此需要对外部缓存进行检测,在检测结果为正常的情况下,才使用该外部缓存
进行数据的读写操作。在一个可选实施例中,接收写入待缓存数据的写入请求消息之前,
将该待缓存数据与读取的数据进行对比,在对比结果一致的情况下,确定外部缓存的状
态为正常状态,其中,该读取的数据是与该待缓存数据对应的数据。通过该方法可以保
证将数据写入芯片外部缓存的有效性,避免了数据的丢失,提高了数据缓存的高效性。
在一个可选实施例中,可以按照第一预定时序信号将待缓存数据缓存至外部缓存中,
或者按照第二预定时序信号从该外部缓存中读取指定数据。通过该方法可以实现数据的
写入和读取的有效转换,保证了数据写入外部缓存和从外部缓存读取数据的有效性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例
的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多
情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现
有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个
存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可
以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例上述的方法。
在本实施例中还提供了一种数据缓存处理装置,该装置用于实现上述实施例及优选
实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定
功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但
是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的数据缓存处理装置结构框图(一),如图2所示,该装
置包括:第一接收模块22,用于接收写入待缓存数据的写入请求消息。缓存模块24,
用于根据该写入请求消息将待缓存数据缓存至芯片的外部缓存中。
图3是根据本发明实施例的数据缓存处理装置结构框图(二),如图3所示,该装
置还包括:第二接收模块32,用于接收读取外部缓存中的指定数据的读取请求消息,读
取模块34,用于根据该读取请求消息从该外部缓存中读取上述指定数据。
图4是根据本发明实施例的数据缓存处理装置结构框图(三),如图4所示,该装
置中的缓存模块24还包括:获取单元42,用于获取外部缓存中当前缓存的数据的缓存
状态信息。分配单元44,用于根据该缓存状态信息为该待缓存数据分配缓存空间,缓存
单元46,用于将待缓存数据缓存至该缓存空间中。
图5是根据本发明实施例的数据缓存处理装置结构框图(四),如图5所示,该装
置还包括:对比模块52,用于将待缓存数据与读取的数据进行对比,在对比结果一致
的情况下,确定外部缓存的状态为正常状态,其中,该读取的数据是与该待缓存数据对
应的数据。
可选地,该装置中的缓存模块用于按照第一预定时序信号将待缓存数据缓存至外部
缓存中;和/或,该装置中的读取模块还用于按照第二预定时序信号从该外部缓存中读
取指定数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通
过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位
于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可
以被设置为存储用于执行以下步骤的程序代码:
S1,接收写入待缓存数据的写入请求消息;
S2,根据写入请求消息将该待缓存数据缓存至芯片的外部缓存中。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,
Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、
磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述步骤
S1和S2。
针对相关技术中存在的上述问题,下面结合具体的可选实施例进行说明,在下述可
选实施例中结合了上述可选实施例及其可选实施方式。
本可选实施例针对相关技术中的的设计实现方案,用最简单的方法实现外部大容量
缓存对内部小容量缓存的替换。
本发明可选实施例的外部缓存控制的实现方法和装置包含以下模块:
缓存接口控制模块,实现对外部缓存读写的接口控制;
缓存管理模块,按照实际需要对外部缓存进行划分管理,并提供类似芯片内部缓存
的读写接口供内部访问;
缓存状态指示模块,指示各个划分后模块的数据存储状态;
外部缓存自检模块(相当于上述对比模块52),实现对外部缓存的自检功能,包括
简单自检和所有空间遍历自检。
图6是根据本发明实施例的外部缓存实现方法框图,如图6所示,模块A完成对外
部缓存接口的访问控制,与外部缓存芯片通过物理线路直接连接;模块B实现缓存的管
理功能,包括根据缓存状态以及具体数据情况分配缓存空间,根据信息产生读数据控制
信号,对读写操作进行时序转换,以满足模块A的要求;模块C根据读写缓存情况,
计算各个划分区间的数据存储状态及相关信息;模块D实现自检功能控制,包括启动自
检功能,输出自检结果,选择自检模式。
图7是根据本发明实施例的缓存划分示意图,根据具体使用情况,把地址空间分成
n等份,每个等份看成一个大容量的RAM。然后对每个RAM,根据实际需要存储的数
据长度情况,再分成k个CHUNK,划分CHUNK大小的原则是保证最多同类长度的数
据能正好存储在一个CHUNK里面。
图8是根据本发明实施例的缓存管理示意图,图8中示意了4个数据包的存储和读
取控制情况。用Bi-j-n(s,m,e)表示一个分片,其中字母i表示第i个到达的分片,j表示
该分片需要存储到RAM j里面,n表示RAM j里面第n个分片,括号中的s表示该分片
包含一个数据包的开始,m表示该分片是一个数据包中间分片,e表示该分片是包含一
个数据包的结束。图中的B0-0-0(s)是RAM0第一个分片,并且包含所在数据包的开始,
存储在RAM0的CHUNK0位置;B1-1-0(s,e)是RAM1的第一个分片,并且包含数据的
开始和结束,所以B1-1-0(s,e)是一个完整的数据包,存储在RAM1的CHUNK0位置;
B2-0-1(m)是RAM0的第2个分片,该分片是所在数据包的中间一个分片,存储在RAM0
的CHUNK1位置;B4-0-2(e)是第5个分片,属于RAM0的第3个分片,存储在RAM0
的CHUNK2,包含所在数据包的结束,所以B0-0-0(s),B2-0-1(m),B4-0-2(e)三个分片
组成了RAM0里面完整的一个包,B1-1-0(s,e)是RAM1中完整的一个包,B3-2-0(s)和
B-5-2-1(e)是RAM2中完整的一个包,B6-3-0(s,e)是RAM3中完整的一个包。图中示例
是按照整包读取方式进行的,所以原则上是先有整包的RAM将被优先读取,这样RAM1
的包会B1-1-0(s,e)第一个被读出,然后是RAM0的包B0-0-0(s),B2-0-1(m),B4-0-2(e),
然后是RAM2,RAM3。
图9是根据本发明实施例的外部缓存控制方法流程图,如图9所示,该方法包括以
下步骤:
步骤902:判定是否需要对外部缓存进行自检,如果需要自检,则转到步骤904;
如果不需要自检,则转到步骤906。
步骤904:启动自检状态,根据自检模式,产生自检需要写入外部缓存的数据。
步骤906:有正常需要缓存的数据,可以存储到外部缓存。
步骤908:根据进来的数据以及当前缓存状态信息,给数据分配对应的缓存空间,
并根据接口控制模块要求,产生接口模块要求的时序信号。
步骤910:通过接口控制模块访问外部缓存,并把数据写入对应缓存空间。
步骤912:通过接口控制模块访问外部缓存,读出需要的已存储数据。
步骤914:根据步骤91010和912的相关信息,计算对应缓存区间的数据存储状态
信息。
步骤916:判断当前处理流程是否在自检状态下,如果在自检状态,则转入步骤918;
如果不在自检状态,则转入步骤90A。
步骤918:在自检状态下,对读出缓存的数据和写入缓存数据进行对比,判断外部
缓存状态是否正常。
步骤90A:在非自检状态,把从外部缓存读出的数据,输出给下级模块使用。
步骤90B:根据对比结果,判断自检是否通过。如果对比结果满足要求,则自检通
过,如果不满足,则自检失败,分别会给出对应的状态指示。
综上所述,通过本发明引入外部缓存,并且采用接收写入待缓存数据的写入请求消
息,根据该写入请求消息将该待缓存数据缓存至芯片的外部缓存中,解决了相关技术中,
光靠芯片内部缓存远远不够,直接使用外部缓存又必须对现有设计代码进行很大改动,
导致开发周期长的问题,而且本发明通过间接使用外部缓存又不对现有涉及做很大改动
的技术手段,达到了在使用外部缓存时对现有设计改动小,开发周期短和不易引用未知
问题的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的
计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成
的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们
存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执
行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多
个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件
和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术
人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。