一种基于访存地址连续性的cache模块制造技术

技术编号:16902292 阅读:67 留言:0更新日期:2017-12-28 14:08
本实用新型专利技术公开一种基于访存地址连续性的cache模块,若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache、缓存连续访存数据的Ccache;地址判断与数据返回单元,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;接口转换单元,执行系统总线到flash memory接口的转换及cache的预取命令发出与作废的操作。本实用新型专利技术主要通过访存的连续性规律,将CPU需要的数据提前放在cache中,加快了访存速度,提升了SOC的性能。

【技术实现步骤摘要】
一种基于访存地址连续性的cache模块
本技术涉及集成电路片上系统(SOC)架构设计
,具体涉及一种基于访存地址连续性的cache模块。
技术介绍
存储墙是计算机发展过程中的一个重大挑战,制约着计算机性能的提升。在SOC系统中存储器访问速度是评价计算机性能的一个重要指标。为了应对存储墙问题,业界开发了一系技术,如使用层次化的存储系统,并采用预取、推断、指令调度、线程调度等技术。这些技术的目标是:利用缓存的速度优势,CPU直接读写缓存中的数据,最大程度的避免访问低速低层次的存储器。但CPU直接读写缓存的前提是目标数据必需备份在缓存中。现有的高性能计算机系统中几乎都采用层次化存储器设计。在性能测试benchmark(测试工具)中,stream主要用来测试CPU的访存性能。根据命中率、实现的复杂度及速度的快慢等各种因素,缓存cache的替换策略有随机法、先进先出、最近最少使用法等。这些替换策略应用在不同的场景,有着不同的侧重点。Cache(快速缓冲贮存区)替换策略利用的是程序的局部性规律,减少CPU直接访问低速存储器的机率。然而不可忽视的是程序访存还具有很强的规律性。例如,从程序指令的角度来说,编译后生成的指令存放有很强的连续性,大块的数据作为一个对象时也总是连续的分布在存储空间内,循环的结构也使得访存地址变得有机可循。
技术实现思路
本技术旨在从CPU访存的连续性和规律性角度出发,提供一种加速访存的cache模块,能够有效地提升CPU访存性能。本技术由以下技术方案实现:一种基于访存地址连续性的cache模块,设置于SOC系统总线到flashmemory的路径上,其特征在于,所述cache模块包括:若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache、缓存连续访存数据的Ccache;地址判断与数据返回单元,分别与Dcache、Ccache及接口转换单元连接,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;接口转换单元,分别与Dcache、Ccache及地址判断与数据返回单元连接,执行系统总线到flashmemory接口的转换及cache的预取命令发出与作废的操作。作为具体的技术方案,所述Ccache包括:cacheline结构、数据预取模块和cacheline替换电路;所述cacheline结构包含两部份内容:起始项和预取项,起始项为每个连续数据的前几个数据,预取项为连续数据预取部分的暂存空间;所述的数据预取模块用于对后面连续地址进行预取,预取到的数据存于预取项中;所述的cacheline替换电路用于替换预取项中的内容或替换整个cacheline。作为具体的技术方案,所述访存地址连续性包括:地址自增、地址自减、移位的地址有规律的变化。本技术的有益效果在于:相比慢速的存储器,这种cache结构能有效的加快访存速度;无论哪种CPU体系结构,这种cache结构可以方便应用到各种SOC中;对于大部分程序而言,访存中包含了大量的重复连续性或规律性的访问,本技术对连续访存的加速效果较强;不需要在cache中存入所有的连续数据,只需要存入连续数据的前面几个,减少了cache大小,降低了电路成本。【附图说明】图1为实施例提供的SOC的总线系统与访存的结构图。图2为实施例提供的cache模块中Ccache的cacheline结构图。图3为实施例提供的cache模块结构下的访存流程图。【具体实施方式】为使本申请所阐述的技术方案及有益效果更加清晰明白,下面结合附图及具体实施例进行详细说明:如图1所示,一个SOC的总线系统,包括CPU、DMA、系统总线、flashmemory及cache模块,cache模块设置于CPU到flashmemory的路径上,cache模块中包含一个Dcache、一个Ccache、地址判断与数据返回单元及接口转换单元。Dcache用于缓存非连续的访存数据,Ccache用于缓存连续数据的cache,Ccache中的连续性为特定的可识别序列即可,如地址自增,自减,移位等。假定在上述电路中,flashmemory的访问时间为3个时钟周期,且不能够流水化。如图2所示,Ccache每个cacheline中起始项的个数为3,预取项的个数为3。如图3所示,访存行为产生时,地址判断与数据返回单元把当前地址与上一次地址比较,判断是否连续并将结果输出Dcache与Ccache。当前地址送Dcache与Ccache中,如在Dcache命中则返回命中数据,如果在Ccache中命中则返回命中数据,在Ccache命中的同时,Ccache会进行预取,即进行后面第3个连续地址的预取。反之,在所有cache都没有命中的情况下,如果不连续,则Dcache根椐当前替换策略替换cacheline,此时访存结果需要从flashmemory中取出。如果满足对应的连续性,则Ccache根据当前替换策略决定是否将这次连续的访存写入cacheline中。在Ccache命中的同时,Ccache会进行预取。预取的过程中,如收到非连续请求,则中断当前预取。中断预取的情况下,Ccache的起始项没有填充完,Ccache的替换策略决定在起始项未填充完成时,是否disable当前的cacheline。每个cache项中有相应的使能标志,没有被填充或被disable的cache项有与之对应的标识。这些标识控制Ccache的命中与预取。其中,Ccache的当前替换策略包括:在cacheline的预取项未填满时,是否将该cacheline置换出Ccache;在Ccache满时,如何替换新的cacheline,可以采用常用的LRU、FIFO和随机等策略;如何看待连续数据中的子集,子集如果包含了相同的起始项,则可以不作为新的连续数据,因为Ccache的预取机制保证了子集的访存性能不受影响。本技术主要通过访存的连续性规律,将CPU需要的数据提前放在cache中,加快了访存速度,提升了SOC的性能。上述实施例仅为充分公开而非限制本技术,凡是依据本技术创新主旨且未经创造性劳动即可获得的等效技术特征替换及增减,均应属于本技术揭露的范围。本文档来自技高网...
一种基于访存地址连续性的cache模块

【技术保护点】
一种基于访存地址连续性的cache模块,设置于SOC系统总线到flash memory的路径上,其特征在于,所述cache模块包括:若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache、缓存连续访存数据的Ccache;地址判断与数据返回单元,分别与Dcache、Ccache及接口转换单元连接,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;接口转换单元,分别与Dcache、Ccache及地址判断与数据返回单元连接,执行系统总线到flash memory接口的转换及cache的预取命令发出与作废的操作。

【技术特征摘要】
1.一种基于访存地址连续性的cache模块,设置于SOC系统总线到flashmemory的路径上,其特征在于,所述cache模块包括:若干块以连续性为原则划分的cache,其中包括缓存非连续访存数据的Dcache、缓存连续访存数据的Ccache;地址判断与数据返回单元,分别与Dcache、Ccache及接口转换单元连接,执行访存行为监测及地址连续性判断并将结果输出Dcache与Ccache的操作,同时执行数据返回的操作;接口转换单元,分别与Dcache、Ccache及地址判断与数据返回单元连接,执行系统总线到flashmemory接口的转换及cache的预取命令发出与作废的操作...

【专利技术属性】
技术研发人员:李璋辉许登科
申请(专利权)人:珠海市一微半导体有限公司
类型:新型
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1