本发明涉及数据存储,特别是涉及一种可变换cache存储系统。
背景技术:
1、处理器在执行数据处理任务时,需要从存储器中读取数据,再在处理器内部的寄存器中进行运算,因此数据处理的效率首先于存储器的访问速度,现有的存储容量较大的存储器,例如ssd、emmc等存储器,均需要较长时间的访问速度,导致数据处理的效率较低,因此,现有方法提出了采用cache缓存进行数据缓存的方案,cache缓存可以分为直接映射、全相联映射和组相连映射三种类型。
2、但是,在采用直接映射类型时,主存地址与cache中的cache line地址一一对应,会导致cache可能存在较大的空闲区域,而采用全相联映射和组相联映射能够解决该问题,但又会导致cache中数据缓存变为无序的,导致对已缓存的数据进行请求时,由于是在面对存在关联的数据时,关联数据可能存储于cache的同一set中,需要反复访问单个set以获取关联数据,cache的吞吐率较低。
3、因此,如何在保证cache使用率的同时,提高cache的吞吐率成为了亟待解决的问题。
技术实现思路
1、针对上述技术问题,本发明采用的技术方案为:
2、一种可变换cache存储系统,所述系统包括:数据库、cache缓存、处理器和存储有计算机程序的存储器,其中,所述数据库中包括m个待存储数据组[a1,a2,…,am,…,am],其中,am是指第m个待存储数据组,m为[1,m]范围内的整数,m为待存储数据组的数量,am=[bm1,bm2,…,bmn,…,bmn],bmn是指第m个待存储数据组中的第n个待存储数据,n为[1,n]范围内的整数,n为单个待存储数据组中待存储数据的数量,cache缓存包括t个缓存行[c1,c2,…,ct,…,ct],ct是指第t个缓存行,t为[1,t]范围内的整数,ct=[dt,et],dt是指第t个缓存行中的索引信息,et是指第t个缓存行中的存储信息,当所述计算机程序被处理器执行时,实现以下步骤:
3、s1,根据n,确定所述t个缓存行的分区数量k,k=min(x),x满足条件:t≥x≥n且x=2y,y∈r。
4、s2,将所述cache缓存划分为k个分区,每个分区包含t/k个缓存行。
5、s3,设置第一预设值i=1,设置第二预设值j=1。
6、s4,将ai发送至所述cache缓存。
7、s5,通过所有索引信息检查bij是否存在于所述cache缓存中。
8、s6,若bij不存在于所述cache缓存中,检查所述cache缓存中是否存在空闲缓存行。
9、s8,若存在空闲缓存行,则将bij写入空闲缓存行的存储信息中。
10、s10,更新j=j+1,返回执行步骤s5至步骤s8,直至j=n。
11、s11,更新i=i+1,返回执行步骤s4至步骤s10,直至i=m。
12、本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种可变换cache存储系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
13、本发明提供了一种可变换cache存储系统,所述系统包括:数据库、cache缓存、处理器和存储有计算机程序的存储器,其中,所述数据库中包括m个待存储数据组[a1,a2,…,am,…,am],其中,am是指第m个待存储数据组,m为[1,m]范围内的整数,m为待存储数据组的数量,am=[bm1,bm2,…,bmn,…,bmn],bmn是指第m个待存储数据组中的第n个待存储数据,n为[1,n]范围内的整数,n为单个待存储数据组中待存储数据的数量,cache缓存包括t个缓存行[c1,c2,…,ct,…,ct],ct是指第t个缓存行,t为[1,t]范围内的整数,ct=[dt,et],dt是指第t个缓存行中的索引信息,et是指第t个缓存行中的存储信息,当所述计算机程序被处理器执行时,实现以下步骤:
14、s1,根据n,确定所述t个缓存行的分区数量k,k=min(x),x满足条件:t≥x≥n且x=2y,y∈r。
15、s2,将所述cache缓存划分为k个分区,每个分区包含t/k个缓存行。
16、s3,设置第一预设值i=1,设置第二预设值j=1。
17、s4,将ai发送至所述cache缓存。
18、s5,通过所有索引信息检查bij是否存在于所述cache缓存中。
19、s6,若bij不存在于所述cache缓存中,检查所述cache缓存中是否存在空闲缓存行。
20、s8,若存在空闲缓存行,则将bij写入空闲缓存行的存储信息中。
21、s10,更新j=j+1,返回执行步骤s5至步骤s8,直至j=n。
22、s11,更新i=i+1,返回执行步骤s4至步骤s10,直至i=m。
23、可知,根据关联数据的数量n确定cache分区的数量,使得cache能够将关联数据中的每一项尽可能放置于不同的分区中,从而能够对关联数据请求时,能够同时请求多个分区,提高了cache的吞吐率,并且采用空闲缓存行检查并填充的方式存储新的数据,能够保证cache存储空间的使用率。
1.一种可变换cache存储系统,其特征在于,所述系统包括:数据库、cache缓存、处理器和存储有计算机程序的存储器,其中,所述数据库中包括m个待存储数据组[a1,a2,…,am,…,am],其中,am是指第m个待存储数据组,m为[1,m]范围内的整数,m为待存储数据组的数量,am=[bm1,bm2,…,bmn,…,bmn],bmn是指第m个待存储数据组中的第n个待存储数据,n为[1,n]范围内的整数,n为单个待存储数据组中待存储数据的数量,cache缓存包括t个缓存行[c1,c2,…,ct,…,ct],ct是指第t个缓存行,t为[1,t]范围内的整数,ct=[dt,et],dt是指第t个缓存行中的索引信息,et是指第t个缓存行中的存储信息,当所述计算机程序被处理器执行时,实现以下步骤:
2.根据权利要求1所述的可变换cache存储系统,其特征在于,任一待存储数据和任一缓存行存储信息的尺寸相同。
3.根据权利要求1所述的可变换cache存储系统,其特征在于,t=2z,z∈r。
4.根据权利要求1所述的可变换cache存储系统,其特征在于,在s6步骤中还包括如下步骤:
5.根据权利要求4所述的可变换cache存储系统,其特征在于,所述将bij写入空闲缓存行的存储信息中包括:
6.根据权利要求4所述的可变换cache存储系统,其特征在于,在s62步骤中还包括如下步骤:
7.根据权利要求1所述的可变换cache存储系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:
8.根据权利要求1所述的可变换cache存储系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:
9.根据权利要求8所述的可变换cache存储系统,其特征在于,步骤s9还包括以下步骤: