缓存实现方法、系统、介质及电子设备
文献发布时间:2024-04-18 19:58:26
技术领域
本申请属于缓存技术领域,涉及一种功能存储器,特别是涉及一种缓存实现方法、系统、介质及电子设备。
背景技术
随着处理器技术的不断更新,处理器频率也在不断攀升,基本都在2.5GHz以上,其中处理器内核中一个关键功能组件一级缓存已经成为了处理器内核频率提升的瓶颈。
目前各种架构处理器内核中常用的一级缓存大多采用多路组相联结构,实现这种结构需要每路实现一个多端口存储器,这种情况下,每多一路就要多一块存储器,那在物理实现的过程中,由于存储器与存储器之间需要较大的物理空间来满足物理设计需求,所以每多一块存储器,都会在布局布线时给频率提升带来困难。
发明内容
本申请的目的在于提供一种缓存实现方法、系统、介质及电子设备,用于解决上述背景技术中指出的问题。
第一方面,本申请提供一种缓存实现方法,应用于功能存储器,所述功能存储器采用n路组相联结构,n≥2,且n为整数;定义每一路所述组相联结构的深度为x位,宽度为y位,所述功能存储器的深度为x位,宽度为n×y位;所述功能存储器具有位写使能功能;所述缓存实现方法包括:根据目标指令从所述功能存储器的x个深度中选择一个深度作为目标深度,并将所述目标深度下对应的存储单元作为目标存储单元组;所述目标存储单元组包括n×y个存储单元;基于第一映射规则和写选择信号对所述目标存储单元组执行写操作;和/或基于第二映射规则和读选择信号对所述目标存储单元组执行读操作。
本申请中,针对多路组相联结构的缓存,通过引入功能存储器,将多路组相联结构实现在一块存储器上,节省了多个存储器的间距,减少了布局布线压力,从而提升了处理器内核频率。
在第一方面的一种实现方式中,所述写选择信号包括:n路组相联结构对应的n个写信号,每一所述写信号对应所述目标存储单元组中的y个存储单元;所述基于第一映射规则和写选择信号对所述目标存储单元组执行写操作包括:基于所述第一映射规则和n个所述写信号将待写入数据写入所述目标存储单元组,以实现写操作;所述待写入数据包括y位写数据,每一位所述写数据对应所述目标存储单元组中的n个存储单元;所述第一映射规则包括:将每一位所述写数据分别映射在所述目标存储单元组中与所述写数据对应的n个存储单元上;将每个所述写信号分别映射在所述目标存储单元组中与所述写信号对应的y个存储单元上。
在第一方面的一种实现方式中,所述写信号为1或0;所述基于所述第一映射规则和n个所述写信号将待写入数据写入所述目标存储单元组包括:当所述写信号为1时,按照所述第一映射规则将y位写数据分别写入至所述写信号对应的y个存储单元;当所述写信号为0时,不执行写入操作。
在第一方面的一种实现方式中,所述读选择信号包括:n路组相联结构对应的n个读信号;所述基于第二映射规则和读选择信号对所述目标存储单元组执行读操作包括:从所述目标存储单元组中获取n路组相联结构对应的n路读数据;每一路所述读数据包括y位读出值;基于所述第二映射规则、n个所述读信号及数据选择器从n路读数据中选取目标数据,以实现读操作。
在第一方面的一种实现方式中,所述数据选择器包括:与或门电路;所述与或门电路包括:n个与门和一个或门;一所述与门对应一路所述组相联结构,n个所述与门的输出端均连接至所述或门;所述或门的输出端用于输出所述目标数据;所述第二映射规则包括:将每一路所述读数据分别映射至对应的与门;将每一所述读信号分别映射至对应的与门;所述基于所述第二映射规则、n个所述读信号及数据选择器从n路读数据中选取目标数据包括:将每一路所述读数据分别输入至对应的与门;将每一所述读信号分别输入至对应的与门;所述读信号为1或0;当所述读信号为1时,将对应路的读数据作为所述目标数据。
第二方面,本申请提供一种缓存实现系统,应用于功能存储器,所述功能存储器采用n路组相联结构,n≥2,且n为整数;定义每一路所述组相联结构的深度为x位,宽度为y位,所述功能存储器的深度为x位,宽度为n×y位;所述功能存储器具有位写使能功能;所述缓存实现系统包括:选择模块,用于根据目标指令从所述功能存储器的x个深度中选择一个深度作为目标深度,并将所述目标深度下对应的存储单元作为目标存储单元组;所述目标存储单元组包括n×y个存储单元;写操作模块,用于基于第一映射规则和写选择信号对所述目标存储单元组执行写操作;和/或读操作模块,用于基于第二映射规则和读选择信号对所述目标存储单元组执行读操作。
第三方面,本申请提供一种电子设备,所述电子设备包括:处理器及存储器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的缓存实现方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现上述的缓存实现方法。
第五方面,本申请提供一种缓存实现系统,所述缓存实现系统包括:功能存储器和上述的电子设备;其中,所述功能存储器与所述电子设备连接。
在第五方面的一种实现方式中,所述缓存实现系统还包括:与或门电路;所述与或门电路与所述电子设备连接,所述与或门电路包括:n个与门和一个或门;其中,一所述与门对应所述功能存储器的一路组相联结构,n个所述与门的输出端均连接至所述或门;所述或门的输出端用于输出目标数据。
如上所述,本申请所述的缓存实现方法、系统、介质及电子设备,具有以下有益效果:
与现有技术相比,本申请提供了一种针对处理器内核多路组相联结构一级缓存的高性能实现方法,通过使用具有位写使能功能的功能存储器,利用相关控制信号(包括目标指令、写选择信号和/或读选择信号等)及控制逻辑(包括第一映射规则和/或第二映射规则等),将原本多路存储器融合为一个存储器,但同时又保留单路访问的功能,这样即符合多路组相联结构一级缓存的功能需求,同时又节省了物理空间,满足物理实现上的频率需求。
附图说明
图1显示为本申请实施例所述的功能存储器的结构示意图。
图2显示为本申请实施例所述的缓存实现方法的流程图。
图3显示为本申请实施例所述的写数据与存储单元之间的映射关系示意图。
图4显示为本申请实施例所述的读数据与存储单元之间的映射关系示意图。
图5显示为本申请实施例所述的基于第二映射规则和读选择信号对目标存储单元组执行读操作的流程图。
图6显示为本申请一实施例所述的缓存实现系统的结构示意图。
图7显示为本申请另一实施例所述的缓存实现系统的结构示意图。
标号说明
61选择模块
62写操作模块
63读操作模块
71功能存储器
72电子设备
73与或门电路
S1~S3步骤
S31~S32步骤
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
参阅图1至图7。本申请以下实施例提供了缓存实现方法、系统、介质及电子设备,与现有技术相比,本申请提供了一种针对处理器内核多路组相联结构一级缓存的高性能实现方法,通过使用具有位写使能功能的功能存储器,利用相关控制信号(包括目标指令、写选择信号和/或读选择信号等)及控制逻辑(包括第一映射规则和/或第二映射规则等),将原本多路存储器融合为一个存储器,但同时又保留单路访问的功能,这样即符合多路组相联结构一级缓存的功能需求,同时又节省了物理空间,满足物理实现上的频率需求。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
如图1所示,于一实施例中,本申请提供一种缓存实现方法,应用于功能存储器,所述功能存储器采用n路组相联结构,n≥2,且n为整数;定义每一路所述组相联结构的深度为x位(bit),宽度为y位(bit),所述功能存储器的深度为x位,宽度为n×y位;所述功能存储器具有位写使能功能;使用wl(i)表示所述深度;i取0至x-1;任一所述深度wl(i)下,对应的所述功能存储器的存储单元均表示为:way(p)-bitq;其中,p取0至n-1;q取0至y-1,即任一深度wl(i)下,对应的所有存储单元分别表示为:way(0)-bit0、way(1)-bit0……way(n-1)-bit0、way(0)-bit1、way(1)-bit1……way(n-1)-bit1……way(n-1)-bit(y-1)。
位写使能,是指在写操作时,可以选择把写数据有效的bits写入存储器,比如写数据为1010(二进制形式),写选择信号为0101,那么写数据的第2bit和第4bit,即两个为0的bit会被写入存储器,而第1bit和第3bit,即两个为1的bit不会被写入存储器。
如图1所示,于本实施例中,所述功能存储器包括n路数据存储单元,每一路数据存储单元包括x×y个存储单元;其中,用way(0)-bit[0:y-1]表示第一路数据存储单元,way(1)-bit[0:y-1]表示第二路数据存储单元……way(n-1)-bit[0:y-1]表示第n路数据存储单元。
需要说明的是,当不使用上述功能存储器实现n路组相联一级缓存时,那么每一路数据就需要一块深度为x,宽度为y的标准随机访问存储器,共需要n块这样的随机访问存储器;本申请中,通过使用该功能存储器实现n路组相联一级缓存,那么只需要如图1所示的一块x×n×y的存储器;按照如图3、4所示映射关系访问该功能存储器实现n路组相联一级缓存的读写操作。
如图2所示,所述缓存实现方法包括:
步骤S1、根据目标指令从所述功能存储器的x个深度中选择一个深度作为目标深度,并将所述目标深度下对应的存储单元作为目标存储单元组。
具体地,根据目标指令从图1中的x行中选择一行作为目标行,该目标行下的所有存储单元组成该目标存储单元组。
需要说明的是,所述目标存储单元组包括n×y个存储单元。
步骤S2、基于第一映射规则和写选择信号对所述目标存储单元组执行写操作。
需要说明的是,通过写选择信号控制所述目标存储单元组的位写使能。
如图3所示,于一实施例中,所述写选择信号包括:n路组相联结构对应的n个写信号,将n个写信号记为:way-wsel[0:n-1],该n个写信号分别表示为:way(0)-wsel、way(1)-wsel……way(n-1)-wsel,每一所述写信号对应所述目标存储单元组中的y个存储单元,其中,第p+1个所述写信号对应的y个存储单元分别为:way(p)-bit0至way(p)-bit(y-1)。
诸如,于图3中,第3个写信号way(2)-wsel对应的目标存储单元组中的y个存储单元分别表示为:way(2)-bit0、way(2)-bit1……way(2)-bit(y-1)。
于本实施例中,所述基于第一映射规则和写选择信号对所述目标存储单元组执行写操作包括:基于所述第一映射规则和n个所述写信号将待写入数据写入所述目标存储单元组,以实现写操作。
如图3所示,所述待写入数据包括y位写数据,将y位写数据记为:way-wdata[0:y-1],每一位所述写数据对应所述目标存储单元组中的n个存储单元,其中,第q+1位所述写数据对应的n个存储单元分别为:way(0)-bitq至way(n-1)-bitq。
诸如,于图3中,第2位写数据对应的目标存储单元组中的n个存储单元分别表示为:way(0)-bit1、way(1)-bit1……way(n-1)-bit1。
如图3所示,于本实施例中,所述第一映射规则包括:
(21)将每一位所述写数据分别映射在所述目标存储单元组中与所述写数据对应的n个存储单元上(如图3所示,按照位于目标存储单元组上方的箭头所示方向映射)。
(22)将每个所述写信号分别映射在所述目标存储单元组中与所述写信号对应的y个存储单元上(如图3所示,按照位于目标存储单元组下方的箭头所示方向映射)。
于一实施例中,所述写数据为1或0。
于一实施例中,所述写信号为1或0。
于本实施例中,所述基于所述第一映射规则和n个所述写信号将待写入数据写入所述目标存储单元组包括:当所述写信号为1时,按照所述第一映射规则将y位写数据分别写入至所述写信号对应的y个存储单元;当所述写信号为0时,不执行写入操作。
需要说明的是,理论上,n个写信号中只有一个写信号为1,其余的都为0。
诸如,于一实施例中,第2个写信号为1,其余的n-1个写信号均为0,则将上述的y位写数据分别写入对应的y个存储单元,即将该y位写数据分别写入图3中的存储单元:way(1)-bit0、way(1)-bit1……way(1)-bit(y-1)。
如图2所示,于一实施例中,所述缓存实现方法还包括:
步骤S3、基于第二映射规则和读选择信号对所述目标存储单元组执行读操作。
需要说明的是,在实际应用中,所述步骤S2和所述步骤S3可以选择执行其中的任意一步,也可以这两步都执行。
需要说明的是,在执行步骤S2和步骤S3时,对应的目标存储单元组可以为同一目标存储单元组,也可以为两个不同的目标存储单元组。
具体地,当执行步骤S2和步骤S3,对应的目标存储单元组为同一目标存储单元组时,先执行步骤S2,再执行步骤S3。
当执行步骤S2和步骤S3,对应的目标存储单元组为不同目标存储单元组时,步骤S1中需要确定两个目标存储单元组,其中一个目标存储单元组用于步骤S2中执行写操作,另一个目标存储单元组用于步骤S3中执行读操作,二者互不影响,此时,该步骤S2和步骤S3的执行顺序不作为限制本申请的条件,即可以先执行步骤S2,再执行步骤S3,也可以先执行步骤S3,再执行步骤S2,当然,还可以同时执行该步骤S2和步骤S3。
如图4所示,于一实施例中,所述读选择信号包括:n路组相联结构对应的n个读信号,将n个读信号记为:way-rsel[0:n-1],该n个写信号分别表示为:way(0)-rsel、way(1)-rsel……way(n-1)-rsel。
如图5所示,所述基于第二映射规则和读选择信号对所述目标存储单元组执行读操作包括:
步骤S31、从所述目标存储单元组中获取n路组相联结构对应的n路读数据。
需要说明的是,每一路所述读数据包括y位读出值;将n路读数据记为:way(0:n-1)-rdata[0:y-1];如图4所示,每一路读数据分别表示为:way(0)-rdata[0:y-1]、way(1)-rdata[0:y-1]……way(n-1)-rdata[0:y-1]。
步骤S32、基于所述第二映射规则、n个所述读信号及数据选择器从n路读数据中选取目标数据,以实现读操作。
如图4所示,于一实施例中,所述数据选择器包括:与或门电路;所述与或门电路包括:n个与门和一个或门;一所述与门对应一路所述组相联结构,n个所述与门的输出端均连接至所述或门;所述或门的输出端用于输出所述目标数据way-rdata[0:y-1]。
如图4所示,所述第二映射规则包括:
(31)将每一路所述读数据分别映射至对应的与门(按照图4中的实线映射)。
(32)将每一所述读信号分别映射至对应的与门(按照图4中的虚线映射)。
于本实施例中,所述基于所述第二映射规则、n个所述读信号及数据选择器从n路读数据中选取目标数据包括:将每一路所述读数据分别输入至对应的与门;及将每一所述读信号分别输入至对应的与门。
于一实施例中,所述读信号为1或0。
具体地,当所述读信号为1时,将对应路的读数据作为所述目标数据。
需要说明的是,理论上,n个读信号中只有一个读信号为1,其余的都为0。
诸如,于一实施例中,第3个读信号为1,其余的n-1个读信号均为0,则将第3路的读数据作为目标数据,即将图4中的way(2)-rdata[0:y-1]作为目标数据。
需要说明的是,本申请提供的缓存实现方法是一种针对处理器内核多路组相联结构缓存的高性能实现方法,可以大大缩减物理实现面积,提升处理器频率;该方法不仅适用于处理器一级缓存,还适用于处理器二级缓存、处理器三级缓存等。
本申请实施例所述的缓存实现方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本申请的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本申请的保护范围内。
本申请实施例还提供一种缓存实现系统,所述缓存实现系统可以实现本申请所述的缓存实现方法,但本申请所述的缓存实现方法的实现装置包括但不限于本实施例列举的缓存实现系统的结构,凡是根据本申请的原理所做的现有技术的结构变形和替换,都包括在本申请的保护范围内。
于一实施例中,本申请提供一种缓存实现系统,应用于功能存储器,所述功能存储器采用n路组相联结构,n≥2,且n为整数;定义每一路所述组相联结构的深度为x位,宽度为y位,所述功能存储器的深度为x位,宽度为n×y位;所述功能存储器具有位写使能功能。
如图6所示,于一实施例中,所述缓存实现系统包括:
选择模块61,用于根据目标指令从所述功能存储器的x个深度中选择一个深度作为目标深度,并将所述目标深度下对应的存储单元作为目标存储单元组;所述目标存储单元组包括n×y个存储单元。
写操作模块62,用于基于第一映射规则和写选择信号对所述目标存储单元组执行写操作。
读操作模块63,用于基于第二映射规则和读选择信号对所述目标存储单元组执行读操作。
需要说明的是,所述选择模块61、所述写操作模块62及所述读操作模块63的结构及原理与上述缓存实现方法中的步骤(步骤S1至步骤S3)一一对应,其具体的工作原理也可参考前述实施例中对于缓存实现方法的介绍,故在此不再赘述。
本申请还提供一种电子设备,所述电子设备包括:存储器,所述存储器用于存储计算机程序;处理器,所述处理器用于执行所述计算机程序,以使所述电子设备执行上述缓存实现方法。
如图7所示,于一实施例中,本申请还提供一种缓存实现系统,所述缓存实现系统包括:功能存储器71和上述的电子设备72。
具体地,所述功能存储器71与所述电子设备72连接。
于一实施例中,所述缓存实现系统还包括:与或门电路73。
具体地,所述与或门电路73与所述电子设备72连接,所述与或门电路73包括:n个与门和一个或门;其中,一所述与门对应所述功能存储器71的一路组相联结构,n个所述与门的输出端均连接至所述或门;所述或门的输出端用于输出目标数据。
需要说明的是,该缓存实现系统的工作原理也与上述缓存实现方法的工作原理相同,故在此也不再详细赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块/单元可以是或者也可以不是物理上分开的,作为模块/单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块/单元来实现本申请实施例的目的。例如,在本申请各个实施例中的各功能模块/单元可以集成在一个处理模块中,也可以是各个模块/单元单独物理存在,也可以两个或两个以上模块/单元集成在一个模块/单元中。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现上述缓存实现方法。
本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
- Redis代理客户端的实现方法、系统、存储介质及电子设备
- 引导电子设备系统开机的方法,电子设备,可读存储介质
- ReactNative下拉刷新实现方法、存储介质、电子设备及方法
- 智能水杯及其防洒水实现方法、电子设备、存储介质
- 滑动变焦效果实现方法、装置、电子设备及计算机可读存储介质
- 实现数据缓存层的方法、装置、电子设备和可读存储介质
- 缓存部署系统、缓存部署方法、电子设备及存储介质