CN113778912B - cache映射架构动态调整方法及cache控制器 - Google Patents
cache映射架构动态调整方法及cache控制器 Download PDFInfo
- Publication number
- CN113778912B CN113778912B CN202110982126.3A CN202110982126A CN113778912B CN 113778912 B CN113778912 B CN 113778912B CN 202110982126 A CN202110982126 A CN 202110982126A CN 113778912 B CN113778912 B CN 113778912B
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- data
- cache line
- architecture
- 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
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000000694 effects Effects 0.000 claims description 14
- 230000005055 memory storage Effects 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 7
- 230000007423 decrease Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000009514 concussion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及芯片技术领域,公开一种cache映射架构动态调整方法及cache控制器。cache映射架构动态调整方法包括:配置cache架构参数,cache架构参数用于动态配置cache控制器,cache控制器包括用于存储内存数据的cache存储模组;发送cache架构参数至cache控制器,以使cache控制器根据cache架构参数,动态调整cache存储模组对内存的映射架构。因此,本实施例能够相对地节约芯片设计面积,并且能够根据不同应用场景动态调整不同映射架构,从而满足不同应用需求。
Description
技术领域
本发明涉及芯片技术领域,具体涉及一种cache映射架构动态调整 方法及cache控制器。
背景技术
高速缓冲存储器(cache)技术是现代处理器设计中核心技术之一, 有效地解决了处理速度和内存速度之间的匹配问题,其中,Cache映射 架构包括全相联映射架构、直接映射架构及组相联映射架构,通常, cache架构是固定的,亦即,cache控制器的缓存行数(way)、组数(set) 及缓存长度都是固定的。
由于目前SOC应用场景越来越多,导致不同应用场景中对cache特 性的需求都不一样,而由于cache映射架构是固定的,就会发生在应对 不同应用场景时,cache的效率良莠不齐,甚至会发生cache失效以及减慢访问速度的问题,而如果根据不同的应用场景设计不同架构的 cache时,又费时费力并且提高成本,容易增加或浪费芯片面积。
发明内容
本发明实施例的一个目的旨在提供一种cache映射架构动态调整方 法及cache控制器,用于解决现有技术存在的技术缺陷。
在第一方面,本发明实施例提供一种cache映射架构动态调整方法, 包括:
配置cache架构参数,所述cache架构参数用于动态配置cache控 制器,所述cache控制器包括用于存储内存数据的cache存储模组;
发送所述cache架构参数至所述cache控制器,以使所述cache控 制器根据所述cache架构参数,动态调整所述cache存储模组对内存的 映射架构。
可选地,所述cache存储模组包括由至少一个缓存行组成的至少一 个缓存组,所述cache架构参数包括每个所述缓存组的缓存行数,所述 配置cache架构参数包括:
根据同时访问所述内存的主设备数量,配置每个所述缓存组的缓存 行数。
可选地,所述根据同时访问所述内存的主设备数量,配置每个所述 缓存组的缓存行数包括:
若所述主设备数量大于现有行数时,则增加每个所述缓存组的缓存 行数。
可选地,所述cache存储模组包括由至少一个缓存行组成的至少一 个缓存组,所述cache架构参数包括每个所述缓存行的缓存长度,所述 配置cache架构参数包括:
根据主设备访问所述内存的连续性,配置每个所述缓存行的缓存长 度。
可选地,所述根据主设备访问所述内存的连续性,配置每个所述缓 存行的缓存长度包括:
若主设备访问所述内存的地址连续次数大于或等于第一预设次数 阈值时,则增加每个所述缓存行的缓存长度;
若主设备访问所述内存的地址连续次数小于或等于第二预设次数 阈值时,则降低或保持每个所述缓存行的缓存长度,所述第二预设次数 阈值小于或等于所述第一预设次数阈值。
可选地,所述cache存储模组包括由至少一个缓存行组成的至少一 个缓存组,所述cache架构参数包括缓存组的组数,所述配置cache架构参数包括:
根据所述cache存储模组映射所述内存的存储空间的大小,配置所 述组数。
可选地,所述根据所述cache存储模组映射所述内存的存储空间的 大小,配置所述组数包括:
若所述cache存储模组映射所述内存的存储空间大于预设存储阈值 时,则增加组数;
若所述cache存储模组映射所述内存的存储空间小于预设存储阈值 时,则降低或保持组数。
可选地,所述配置cache架构参数包括:配置多组cache架构参数;
相应的,所述方法还包括:
依序获取在每组所述cache架构参数对应的映射架构下,运行软件 程序的运行效果;
根据各个所述运行效果,确定最优架构参数;
发送所述最优架构参数至所述cache控制器,以使所述cache控制 器根据所述最优架构参数,动态调整所述cache存储模组对内存的映射 架构。
可选地,所述运行效果包括运行所述软件程序的运行时间,所述根 据各个所述运行效果,确定最优架构参数包括:
在各个所述运行时间中搜索最小运行时间;
确定所述最小运行时间对应的cache架构参数为最优架构参数。
在第二方面,本发明实施例提供一种存储介质,存储有计算机可执 行指令,所述计算机可执行指令用于使处理器执行如权利要求1至9任 一项所述的cache映射架构动态调整方法。
在第三方面,本发明实施例提供一种芯片,包括:
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令 被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的 cache映射架构动态调整方法。
在第四方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令 被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的cache映射架构动态调整方法。
在第五方面,本发明实施例提供一种cache控制器,包括:
cache存储模组,包括若干缓存行,每个所述缓存行用于存储内存 数据、标签数据及有效位数据;
编程寄存器组,用于存储cache架构参数,所述cache架构参数可 动态配置在所述编程寄存器组中,以动态调整所述cache存储模组对内 存的映射架构;
命中判断模组,用于根据所述标签数据、所述有效位数据及所述 cache架构参数,在动态调整后的映射架构下判断是否命中所述cache 存储模组中的缓存行,若是,控制所述cache存储模组与主设备交互内 存数据,若否,产生加载命令;
缓存行加载模组,用于根据所述加载命令,访问所述内存;
缓存行更新模组,用于在所述缓存行加载模组的控制下,对所述 cache存储模组中与cache架构参数对应的缓存行进行数据更新。
在本发明实施例提供的cache映射架构动态调整方法中,配置cache 架构参数,cache架构参数用于动态配置cache控制器,cache控制器 包括用于存储内存数据的cache存储模组,发送cache架构参数至cache 控制器,以使cache控制器根据cache架构参数,动态调整cache存储 模组对内存的映射架构,因此,本实施例能够相对地节约芯片设计面积,并且能够根据不同应用场景动态调整不同映射架构,从而满足不同应用 需求。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明, 这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标 号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例 限制。
图1为本发明实施例提供的一种cache系统的结构示意图;
图2为本发明另一实施例提供的一种cache系统的结构示意图;
图3为本发明实施例提供的一种cache映射架构动态调整方法的流 程示意图;
图4a至图4c为本发明实施例提供的在不同cache架构参数下的映 射架构示意图;
图5a为本发明实施例提供的在增加缓存长度下的映射架构示意图;
图5b为本发明实施例提供的在减小缓存长度下的映射架构示意图;
图6a为本发明实施例提供的在增加缓存组数下的映射架构示意图;
图6b为本发明实施例提供的在缓存长度L变化下的映射架构示意 图;
图7a为本发明另一实施例提供的一种cache映射架构动态调整方 法的流程示意图;
图7b为图7a所示的S34的流程示意图;
图8为本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附 图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的 具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的 实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所 有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互 结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了 功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以 以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步 骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进 行区分。
请参阅图1,cache系统100包括主设备11、cache控制器12及内 存13,cache控制器12分别与主设备11和内存13电连接。
主设备11执行软件程序,需要从内存13中抓取内存数据。当主设 备11访问内存13时,会转移到对cache控制器12的访问,若cache控 制器12中有相应缓存行的存储地址和主设备11对内存13的访问地址 一致,则cache控制器12命中,主设备11可以直接从所述缓存行中取 走内存数据,若不一致,则cache控制器12不命中,于是,cache控制 器12向内存13发出访问请求,从内存13中加载与缓存行长度一样大 小的内存数据到cache控制器12中,以便主设备11从cache控制器12 中取内存数据。
在一些实施例中,主设备11可以为任意合适类型设备,诸如耳机 或摄像模组等电子设备。可以理解的是,请参阅图2,主设备11的数量可以为多个,多个主设备11可以同时访问内存13。
在一些实施例中,请继续参阅图1,cache控制器12包括cache存 储模组121、编程寄存器组122、命中判断模组123、缓存行加载模组 124及缓存行更新模组125。
cache存储模组121包括若干缓存行(cacheline),每个缓存行都用 于存储内存数据、标签(tag)数据及有效位(valid)数据,内存数据为 cache映射内存的数据,标签数据包括内存数据在内存相应位置的区号 地址,有效位数据用于表示缓存行的内存数据是否有效,通常,有效位 数据为1时,则内存数据无效,有效位数据为0时,则内存数据有效。通常,当内存数据不在内存中时,即使内存数据存储在缓存行中,此内 存数据可视为无效。同理,当内存数据在内存中时,内存数据存储在缓 存行中,此内存数据可视为有效。
cache存储模组121包括M个缓存组(set),每个缓存组包括N路(way) 缓存行,每路缓存行的缓存长度为L字节。
在一些实施例中,cache存储模组121为寄存器组或RAM存储器。
编程寄存器组122用于存储cache架构参数,cache架构参数可动 态配置在编程寄存器组122中,以动态调整cache存储模组121对内存 13的映射架构,其中,cache架构参数包括缓存组数M、缓存行数N及 缓存长度L,映射架构可以为全相联映射架构、直接映射架构或组相联 映射架构。
命中判断模组123用于根据标签数据、有效位数据及cache架构参 数,在动态调整后的映射架构下判断是否命中cache存储模组中的缓存 行,若是,控制编程寄存器组122与主设备11交互内存数据,若否,产生加载命令。举例而言,命中判断模组123获取主设备11的外部访 问请求,外部访问请求携带内存地址,内存地址=内存区号地址+内存块 号地址+块内地址。命中判断模组123根据cache架构参数{M,N,L},对内存地址作译码,判断译码后的地址是否与标签数据的区号地址一致, 若一致,且有效位数据为0,则cache命中,命中判断模组123控制cache 存储模组121与主设备11交互内存数据,例如读取内存数据等。
若不一致,或者有效位数据为1,缓存行加载模组124用于根据加 载命令,访问内存13,例如,缓存行加载模组124以缓存长度L对内存 13进行访问,从内存13加载数据长度为L的内存数据。
缓存行更新模组125用于在缓存行加载模组124的控制下,对cache 存储模组121中与cache架构参数对应的缓存行进行数据更新,例如, 缓存行更新模组125根据cache架构参数中的缓存组数M和缓存行数N, 结合待加载内存数据的内存地址,将待加载内存数据加载到相应缓存行 中,从而完成数据加载操作。
可以理解的是,上述的命中判断模组123、缓存行加载模组124及 缓存行更新模组125可由集成电路元件组成的具有逻辑运算功能和存储 功能的芯片设计电路。
可以理解的是,上述cache架构参数可重复编程配置,以满足不同 应用场景需求。
作为本发明实施例另一方面,本发明实施例提供一种cache映射架 构动态调整方法。请参阅图3,cache映射架构动态调整方法S300包括:
S31、配置cache架构参数,cache架构参数用于动态配置cache控 制器,cache控制器包括用于存储内存数据的cache存储模组;
作为示例但非限定的是,cache架构参数用于指示cache存储模组 对内存的映射架构,映射架构为内存的内存数据映射到cache存储模组 中相应缓存行的地址映射关系,如前所述,映射架构包括全相联映射架 构、直接映射架构或组相联映射架构。
在一些实施例中,cache架构参数包括缓存组数M、缓存行数N及 缓存长度L,缓存组数M、缓存行数N及缓存长度L可以为大于或等于1 的自然数,缓存组数为cache存储模组中缓存组的个数,缓存行数为每 个缓存组中缓存行的个数,缓存长度为缓存行的内存数据的字节总数或 比特总数,其中,缓存长度L的单位可以为字节或比特。
在一些实施例中,主设备已配置cache架构参数,主设备的CPU与 cache控制器通信,将cache架构参数写入编程寄存器组122,以便后 续其它模组调用编程寄存器组122的cache架构参数,对cache存储模 组执行读取操作或写入操作。
S32、发送cache架构参数至cache控制器,以使cache控制器根 据cache架构参数,动态调整cache存储模组对内存的映射架构。
举例而言,映射架构为组相联映射架构,执行第一软件程序时,主 设备11将cache架构参数{M=4,N=3,L=128}发送给cache存储模组121, 请参阅图4a,cache存储模组121按照cache架构参数{M=4,N=3,L=128} 与内存13形成地址映射关系。
执行第二软件程序时,主设备11cache架构参数{M=3,N=3,L=128} 发送给cache存储模组121,以动态调整cache存储模组121对内存13 的映射架构,请参阅图4b,cache存储模组121按照cache架构参数 {M=3,N=3,L=128}与内存13形成地址映射关系。
执行第三软件程序时,主设备11将cache架构参数{M=3,N=4,L=128} 发送给cache存储模组121,请参阅图4c,cache存储模组121按照cache 架构参数{M=3,N=4,L=128}与内存13形成地址映射关系。
可以理解的是,M可以为1或者其它大于1的自然数,其中,当M=1 时,组相联映射架构可以变成全相联映射架构。
可以理解的是,N可以为1或者其它大于1的自然数,其中,当N=1 时,组相联映射架构可以变成直接映射架构。
还可以理解的是,本文提供的cache映射架构动态调整方法可以适 用于全相联映射架构、直接映射架构或组相联映射架构。
由于缓存组数M,缓存行数N及缓存长度L都可以配置,且设计cache 架构参数{M,N,L}的cache控制器,至少需要消耗M*N*L面积大小,采 用本实施例提供的方法,可使得在相同芯片面积下,根据不同应用场景 动态调整不同映射架构,从而满足不同应用需求,举例而言,比如对标一款M=1,N=4,L=256字节的cache存储模组,本实施例可以在同样 4*1*256byte的面积消耗下,动态变为M=1,N=2,L=256字节的架构,或 者动态变为M=1,N=8,L=128byte架构,或者,动态变为M=1,N=8,L=64byte 架构。
在一些实施例中,当前程序阶段需要多个主设备同时对内存进行访 问时,当主设备数量大于每个缓存组的缓存行数时,则会出现震荡失效 现象,举例而言,请结合图4a,cache映射架构采用3路4组128字节 的结构,亦即,M=4,N=3,L=128byte。当4个主设备同时访问内存时,则4个主设备转移至cache控制器进行访问,由于主设备数量=4大于缓 存行数M=3,则在当前程序阶段中大概率会发生cache不命中的情况。
如图4a所示,主设备P0访问内存13第0区第0块,主设备P1访 问内存13第1区第0块,主设备P2访问内存13第2区第0块,主设 备P3访问内存13第3区第0块。按照组相联映射架构,第0区第0块、 第1区第0块、第2区第0块及第3区第0块都可映射到cache存储模 组121第0组中第0缓存行、第1缓存行及第2缓存行中任一缓存行。
假设内存13的第0区第0块映射到cache存储模组的第0组第0 缓存行,内存13的第1区第0块映射到cache存储模组的第0组第1 缓存行,内存13的第2区第0块映射到cache存储模组的第0组第2 缓存行,由于主设备P3需要访问内存13第3区第0块,但是cache未 命中内存13第3区第0块,因此,cache控制器需要将内存13的第0 区第0块至第2区第0块中选择一块进行刷掉(假设刷掉第2区第0块), 再从内存13加载内存13的第3区第0块。
当主设备P2需要重复访问内存13的第2区第0块时,cache控制 器又需要将内存13的第0区第0块至第2区第0块中选择一块进行刷 掉,再从内存13加载内存13的第2区第0块。如此一来,由于加载缓 存行需要时间但所加载到缓存行的数据没被访问又不停地被刷掉,导致访问效率比较低下。
在一些实施例中,cache存储模组包括由至少一个缓存行组成的至 少一个缓存组,cache架构参数包括每个缓存组的缓存行数,配置cache 架构参数时,S31包括:根据同时访问内存的主设备数量,配置每个缓 存组的缓存行数,其中,主设备数量为同时访问内存的设备数量,
本实施例能够根据主设备数量,灵活地配置每个缓存组的缓存行 数,降低震荡失效概率,提高数据访问效率。
在一些实施例中,若主设备数量大于现有行数时,则增加每个缓存 组的缓存行数,其中,现有行数为cache存储模组中每个缓存组对应的 缓存行的当前行数。
请结合图4c,由于每个缓存组都有4个缓存行,当4个主设备同时 访问内存时,则4个主设备转移至cache控制器进行访问,例如,主设 备P0访问内存13第0区第0块,主设备P1访问内存13第1区第0块, 主设备P2访问内存13第2区第0块,主设备P3访问内存13第3区第0块。按照组相联映射架构,第0区第0块、第1区第0块、第2区第 0块及第3区第0块都可映射到cache存储模组121第0组中第0缓存 行、第1缓存行、第2缓存行及第3缓存行中任一缓存行。
假设内存13的第0区第0块映射到cache存储模组的第0组第0 缓存行,内存13的第1区第0块映射到cache存储模组的第0组第1 缓存行,内存13的第2区第0块映射到cache存储模组的第0组第2 缓存行,内存13的第3区第0块映射到cache存储模组的第0组第3 缓存行,cache都命中主设备P0至主设备P3所需的缓存行,由于无需 频繁在相应缓存行中刷掉其它主设备在后续步骤所需的内存数据,此种 方式能够提高数据访问效率。
在一些实施例中,若主设备数量小于或等于现有行数时,则降低或 保持每个缓存组的缓存行数。
在一些实施例中,缓存长度L影响到cache控制器从内存中加载内 存数据的时间,并且,在当前程序阶段中,当主设备访问内存的连续性 比较弱时,若缓存长度L过大,cache控制器花费过多加载时间来加载无关数据。或者,当主设备访问内存的连续性比较强时,若缓存长度L 过小,主设备需要花费过多时间访问内存。
举例而言,以图4a为例子,主设备只需读取64字节的内存数据即 可,并且主设备所需的64字节内存数据存储在内存的第1区第2块。 若按照图4a所示的映射架构,由于缓存长度为128字节,且cache控 制器是按照一整个缓存行的缓存长度从内存中加载内存数据,因此,当 主设备访问内存第1区第2块的内存数据时,cache控制器需要相对花 费过多加载时间,从内存将第1区第2块的内存数据加载到cache存储 模组中第2组中相应缓存行。
再举例而言,请继续结合图4a,主设备需要连续访问内存第1区第 2块和第1区第3块的内存数据,但由于缓存长度为128字节,且cache 控制器是按照一整个缓存行的缓存长度从内存中加载内存数据,因此, cache控制器需要从内存将第1区第2块的内存数据加载到cache存储 模组中第2组中相应缓存行,再从内存将第1区第3块的内存数据加载 到cache存储模组中第3组中相应缓存行,此种访问数据的效率比较低。
在一些实施例中,cache存储模组包括由至少一个缓存行组成的至 少一个缓存组,cache架构参数包括每个缓存行的缓存长度,配置cache 架构参数时,S31包括:根据主设备访问内存的连续性,配置每个缓存 行的缓存长度。
本实施例能够根据主设备访问内存的连续性,灵活地配置每个缓存 行的缓存长度,一方面,根据数据需求,针对性地调整缓存长度,有利 于提高加载数据的效率,另一方面,有利于提高主设备访问内存的数据 效率。
在一些实施例中,若主设备访问内存的地址连续次数大于或等于第 一预设次数阈值时,则增加每个缓存行的缓存长度。若主设备访问内存 的地址连续次数小于或等于第二预设次数阈值时,则降低或保持每个缓 存行的缓存长度,第二预设次数阈值小于或等于第一预设次数阈值,其 中,第一预设次数阈值或第二预设次数阈值由设计者自定义,例如,第一预设次数阈值为2,第二预设次数阈值为2,或者,第一预设次数阈 值为4,第二预设次数阈值为3。
举例而言,请继续参阅图4a,假设第一预设次数阈值为2,主设备 需要连续访问内存第1区第2块和第1区第3块的内存数据,此时,主 设备将原先缓存长度L1=128增加到当前缓存长度L2=256,得到如图5a 所示的新映射架构。
其中,在图5a所示的映射架构中,缓存组数为2,每组的缓存行数 为3,亦即在图5a中,M=2,N=3,L=256。内存一共被划分8个区,每 个区有2个内存块,其中,在图5a所示的内存的第1区第1块的内存 数据为在图4a所示的内存第1区第2块和第3块的内存数据。
在图5a所示的内存的第1区第1块的内存数据映射到图5a所示的 cache存储模组中第1组中相应缓存行。后续,主设备一次性直接从 cache存储模组的第1组中相应缓存行取走内存数据即可,无需在图4a 所示的映射架构中连续访问内存第1区第2块和第1区第3块的内存数 据,有利于提高主设备访问内存的数据效率。
可以理解的是,在图5a所示的映射架构中的缓存组数与缓存行数 可以与图4a所示的映射架构中的缓存组数与缓存行数相同或不同,可 由设计者自行设计。
再举例而言,请继续参阅图4a,假设第二预设次数阈值为2,主设 备只需读取64字节的内存数据即可,并且主设备所需的64字节内存数 据存储在内存的第1区第2块的相应块内地址中。此时,主设备将原先 缓存长度L3=128降低到当前缓存长度L4=64,得到如图5b所示的新映射架构。
其中,在图5b所示的映射架构中,缓存组数为4,每组的缓存行数 为6,亦即在图5b中,M=4,N=6,L=64。内存一共被划分8个区,每个 区有4个内存块,假设在图5b所示的内存的第3区第1块的内存数据 为图4a所示的内存的第1区第2块的内存数据(主设备所需的64字节 内存数据)。
在图5b中,内存的第3区第1块的内存数据映射到cache存储模 组的第1组中相应缓存行。后续,主设备一次性直接从cache存储模组的第1组中相应缓存行取走内存数据即可,无需在图4a所示的映射架 构中,加载128字节的内存数据到图4a所示的cache存储模组的第2 组中相应缓存行,从而提高数据访问效率。
在一些实施例中,当cache存储模组映射内存的存储空间比较大, cache存储模组的缓存组数越小,cache存储模组的每段缓存行映射的 内存地址越多,导致cache寻址负担增加,芯片面积设计增大。
举例而言,请继续参阅图4a,缓存长度L=128B,缓存组数M=4,缓 存行数N=3,cache大小=128*4*3=1536B。
假设内存大小=4*4*128=2048B,内存被划分为4个区,每个区有4 个内存块。当cache存储模组与内存采用组相联映射架构时,每个缓存 行可对应4个内存块,如前所述,内存地址=内存区号地址+内存块号地 址+块内地址,并且,在cache存储模组的地址转换表中,地址转换表 存储与缓存行的总行数相同的表格单元,每个表格单元存放着对应缓存行所存放着内存区号地址。在判断命中过程中,命中判断模组先取出内 存地址中的内存块号地址,根据内存块号地址跳转到地址转换表中对应 序号的缓存组,例如,在图4a中,内存地址(11位)=内存区号地址(2 位)+内存块号地址(2位)+块内地址(7位),假设内存块号地址为01,则 命中判断模组根据内存块号地址01,跳转到地址转换表中第1缓存组。 然后再在第1缓存组中逐个判断是否存在与内存区号地址一致的表格单 元,若存在,则命中,后续便可以根据缓存地址取内存数据。由上述论 述可知,每个缓存行对应的内存区号地址存在4种结果。
假设内存大小增加一倍,则内存大小=2048*2=4096B,若依然按照 cache架构参数{M=4,N=3,L=128}进行映射,则:此时的内存被划分为8 个区,每个区有4个内存块,此时,内存地址(12位)=内存区号地址(3 位)+内存块号地址(2位)+块内地址(7位),每个缓存行对应的内存区号 地址存在8种结果。
因此,当增加内存大小而使得cache存储模组映射内存的存储空间 比较大时,若不调整映射架构,则会增加cache寻址压力。
在一些实施例中,cache存储模组包括由至少一个缓存行组成的至 少一个缓存组,cache架构参数包括缓存组的组数,配置cache架构参数时,S31包括:根据cache存储模组映射内存的存储空间的大小,配 置组数。
本实施例能够根据cache存储模组映射内存的存储空间的大小,灵 活地配置组数,能够降低cache寻址压力。
在一些实施例中,若cache存储模组映射内存的存储空间大于预设 存储阈值时,则增加组数;若cache存储模组映射内存的存储空间小于 预设存储阈值时,则降低或保持组数。
举例而言,本实施例将图4a所示的cache存储模组的缓存组数由 M=4变成M=8,则cache存储模组与内存的映射架构需要改变,改变后 的结果如图6a所示。
即使将内存大小增加一倍,内存大小=2048*2=4096B,但是此时 cache架构参数为{M=8,N=3,L=128},在图6a中,内存被划分为4个区, 每个区有8个内存块,内存地址(12位)=内存区号地址(2位)+内存块号地址(3位)+块内地址(7位)。由于每个缓存行对应的内存区号地址存在 4种结果,因此,通过采用本方法,在增加内存而使得cache存储模组映射内存的存储空间变大的情况下,却能够不增加cache寻址压力,相对而言,本实施例能够降低cache寻址压力,提高数据访问效率。
综上所述,经过上述各个实施例所阐述的cache映射架构动态调整 方法,通过动态配置cache架构参数,一方面,有利于提高数据访问效 率,另一方面,可以节约芯片设计面积,以及兼容多种应用场景,降低 设计成本。
在经过上述各个实施例所阐述的cache映射架构动态调整方法,在 cache存储模组的原有内存数据的处理方式如下:
在一些实施例中,本实施例可将cache存储模组的有效位数据都设 置为无效状态,亦即将cache存储模组恢复至初始使能状态。
在另一些实施例中,与上述实施例不同点在于,本实施例可以将相 应缓存行的内存数据进行保留,即使调整了映射架构,也能够得以重新 利用,有利于提高数据访问效率,其中,在下文涉及的例子中,内存大 小都为2048B,每个缓存组或缓存行的内存数据具体处理如下:
1)在缓存长度L不变的前提下:
1.1、当缓存组数M不变,且缓存行数N增多时,新增缓存行的内 存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的标 签数据保持不变,有效位数据被配置为0。
举例而言,请继续参阅图4a,cache架构参数为{M=4,N=3,L=128}, 以cache存储模组的第0缓存组为例子,第0组包括3路缓存行,通过 执行本方法,在每个缓存组中增加1路缓存行,则N’=4,其中,第0 缓存行、第1缓存行及第2缓存行的内存数据和标签数据保持不变,第 3缓存行的内存数据为空。
可以理解的是,即使新增缓存行与原有缓存行在物理电路位置上存 在间隔,亦即不连续,但是,本实施例可通过软件逻辑,在软件层面上, 将新增缓存行与原有缓存行归类到同一缓存组,例如,第3缓存行与第 0缓存行、第1缓存行或第2缓存行都不连续,但是,本实施例可将第 0缓存行、第1缓存行、第2缓存行及第3缓存行归类到同一缓存组。
1.2、当缓存组数M不变,且缓存行数N减少时,减掉的缓存行的 内存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的 标签数据保持不变,有效位数据被配置为0。
举例而言,请继续参阅图4a,cache架构参数为{M=4,N=3,L=128}, 以cache存储模组的第0缓存组为例子,第0组包括3路缓存行,通过 执行本方法,在每个缓存组中减掉1路缓存行,则N’=2,其中,第0 缓存行和第1缓存行的内存数据和标签数据保持不变,第2缓存行的内 存数据为空。
1.3、当缓存行数N不变,且缓存组数M增多时,新增缓存组的内 存数据被配置为空。原有缓存组中各个缓存行的内存数据保持不变,但 是,命中判断模组依序判断每个原有缓存组中每个缓存行的标签数据是 否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数 据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为无效状态。
举例而言,请继续参阅图4a,cache架构参数为{M=4,N=3,L=128}。 当增加4个缓存组时,cache架构参数变成{M=8,N=3,L=128},此时,cache 存储模组与内存的映射架构也随之变化,其中,内存被划分为2个区, 每个区有8个内存块。
以图4a的第0组第0缓存行作为例子,假设第0组第0缓存行的 标签数据为图4a所示的内存第0区第0块的内存区号地址,在调整后 的映射架构中,图4a的原有第0组第0缓存行的标签数据依然为调整 后的映射架构下的内存第0区第0块的内存区号地址,原有第0组第0 缓存行的标签数据符合在调整后的映射架构下的地址映射关系,因此, 保持调整后的映射架构下的第0组第0缓存行的标签数据和有效位数据 不变。
但是,以图4a的第1组第1缓存行作为例子,假设第1组第1缓 存行的标签数据为图4a所示的内存第3区第1块的内存区号地址,在 调整后的映射架构中,图4a所示的内存第3区第1块变成了内存第1 区第5块,但是按照组相联映射架构,内存第1区第5块的内存数据是 映射在调整后的映射架构下的第5组的相应缓存行,原有第1组第1缓 存行的标签数据不符合在调整后的映射架构下的地址映射关系,则将原 有第1组第1缓存行的有效位数据配置为无效状态。
1.4、当缓存行数N不变,且缓存组数M减少时,减掉的缓存组的 内存数据被配置为空。原有缓存组中各个缓存行的内存数据保持不变, 但是,命中判断模组依序判断每个原有缓存组中每个缓存行的标签数据 是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位 数据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为无效状态,具体原理过程如上所述,在此 不赘述。
1.5、当缓存组数M增多,且缓存行数N增多时,新增缓存组的内 存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组中 各个缓存行的内存数据保持不变,但是,命中判断模组依序判断每个原 有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为无效 状态。
1.6、当缓存组数M增多,且缓存行数N减少时,新增缓存组的内 存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存组 中各个缓存行的内存数据保持不变,但是,命中判断模组依序判断每个 原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下 的地址映射关系,若符合,保持有效位数据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为无 效状态。
1.7、当缓存组数M减少,且缓存行数N增多时,减掉的缓存组的 内存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组 中各个缓存行的内存数据保持不变,但是,命中判断模组依序判断每个 原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下 的地址映射关系,若符合,保持有效位数据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为无 效状态。
1.8、当缓存组数M减少,且缓存行数N减少时,减掉的缓存组的 内存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存 组中各个缓存行的内存数据保持不变,但是,命中判断模组依序判断每 个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构 下的地址映射关系,若符合,保持有效位数据不变,亦即保持有效位数据为有效状态。若不符合,保持标签数据不变,但将有效位数据配置为 无效状态。
2)在缓存长度L变化的前提下:
2.1、当缓存组数M不变,缓存行数N增多/减少时:新增加的缓存 行中数据为空;减掉的缓存行中数据为空。
对于原有缓存行,缓存长度L增加时:新增加部分的数据为空,原 有数据保持不变,此时缓存行中标签数据的位数根据缓存长度L的增加 而减少,Valid标志位的长度增加,保持原有Valid标志位不变,新增Valid 标志位置0,原有数据有效。
举例而言,请参阅图6b,cache架构参数为{M=2,N=2,L=16},其中, Valid标志位的长度=16bit,每个valid标志位对应每个byte内存,标签 数据的位数tag=8bit。内存被划分为256个区,每个区被划分有2个内 存块,每个内存块的大小为16byte,标签数据可映射至内存中相应的内 存块的内存区块地址,例如,内存的第0区第0块的内存区块地址为“h00”(十六进制),第0区第1块的内存区块地址为“h01”,第1 区第0块的内存区块地址为“h02”,第1区第1块的内存区块地址为“h03”。
当缓存长度L变为32byte,并且每个缓存组的缓存行数增加2行, 则cache架构参数更新为{M=2,N=4,L=32},标签数据的位数tag更新为 7bit,Valid标志位的长度更新为32bit,新增加部分的数据为空,具体示 意图如图6b所示。
对于原有缓存行,缓存长度L减少时:减去部分的数据无效,原有 数据保持不变,此时缓存行中标签数据的位数根据缓存长度L的减小而 增加,Valid标志位长度减少,剩下的Valid标志位不变,剩下部分数据 有效。
2.2、当缓存组数M增多/减少,缓存行数N不变时:新增的缓存组 的缓存行的数据为空;减掉的缓存组的缓存行的数据为空;原有缓存组 的缓存行中数据保持不变,但需判断每个缓存组中每个新增缓存长度后 的缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,如符合,则缓存行中Valid标志位置0,数据有效;反之,则dirty标志 位置1,数据无效;
对于原有缓存行,缓存长度L增加时:新增加部分的数据为空,原 有数据保持不变,此时缓存行中标签数据的位数根据缓存长度L的增加 而减少,Valid标志位长度增加,保持原有Valid标志位不变,新增Valid 标志位置0,原有数据是否有效取决于dirty位的值。
对于原有缓存行,缓存长度L减少时:减去部分的数据无效,原有 数据保持不变,此时缓存行中标签数据的位数根据缓存长度L的减小而 增加,Valid标志位长度减少,剩下的Valid标志位不变,剩下部分数据 是否有效取决于dirty位的值;
2.3、当缓存组数M增多/减少,缓存行数N增多/减少时:依次进 行2.1和2.2两种情况的判断。
综上所述,采用上文所阐述的实施例,本文可以保留原有缓存行的 数据,无需重新加载,有利于提高数据访问效率。
在一些实施例中,为了使得调整后的cache架构参数更加贴合当前 的应用场景,本实施例还可以进一步优化cache架构参数,请参阅图7a, S31包括:配置多组cache架构参数,相应的,cache映射架构动态调 整方法S300还包括:
S33、依序获取在每组cache架构参数对应的映射架构下,运行软 件程序的运行效果;
S34、根据各个运行效果,确定最优架构参数;
S35、发送最优架构参数至cache控制器,以使cache控制器根据 最优架构参数,动态调整cache存储模组对内存的映射架构。
作为示例但非限定的是,运行效果为表征在调整后的映射架构下执 行软件程序的效率,其中,运行效果可由运行时间等其它合理参数表征。
作为示例但非限定的是,最优架构参数为主设备执行软件程序时最 高效率对应的cache架构参数。
采用上述方法,本实施例可以优化cache架构参数,使得主设备能 够高效率地在调整后的映射架构下执行软件程序。
在一些实施例中,请参阅图7b,运行效果包括运行软件程序的运行 时间,S34包括:
S341、在各个运行时间中搜索最小运行时间;
S342、确定最小运行时间对应的cache架构参数为最优架构参数。
本实施例能够以运行时间为评价要素来筛选cache架构参数,有利 于精确地选择可提高数据访问效率的cache架构参数。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然 存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描 述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦 即,可以并行执行,亦可以交换执行等等。
请参阅图8,图8为本发明实施例提供的一种电子设备的电路结构 示意图,其中,电子设备可以为具有逻辑计算和分析功能的设备、芯片 或电子产品。如图8所示,电子设备800包括一个或多个处理器81以 及存储器82。其中,图8中以一个处理器81为例。
处理器81和存储器82可以通过总线或者其他方式连接,图8中以 通过总线连接为例。
存储器82作为一种非易失性计算机可读存储介质,可用于存储非 易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施 例中的cache映射架构动态调整方法对应的程序指令/模块。处理器81 通过运行存储在存储器82中的非易失性软件程序、指令以及模块,从而执行上述方法实施例提供的cache映射架构动态调整方法的各个模块或单元的功能。
存储器82可以包括高速随机存取存储器,还可以包括非易失性存 储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存 储器件。在一些实施例中,存储器82可选包括相对于处理器81远程设 置的存储器,这些远程存储器可以通过网络连接至处理器81。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组 合。
所述程序指令/模块存储在所述存储器82中,当被所述一个或者多 个处理器81执行时,执行上述任意方法实施例中的cache映射架构动 态调整方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机 存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个 处理器执行,例如图8中的一个处理器81,可使得上述一个或多个处理器可执行上述任意方法实施例中的cache映射架构动态调整方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品 包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机 程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设 备执行任一项所述的cache映射架构动态调整方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分 离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择 其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到 各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过 硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡 献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储 在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非 对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特 征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的 本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供; 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使 相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种cache映射架构动态调整方法,其特征在于,包括:
配置cache架构参数,所述cache架构参数用于动态配置cache控制器,所述cache控制器包括用于存储内存数据的cache存储模组;
发送所述cache架构参数至所述cache控制器,以使所述cache控制器根据所述cache架构参数,动态调整所述cache存储模组对内存的映射架构;
在缓存长度不变的前提下:
当缓存组数不变,且缓存行数增多时,新增缓存行的内存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的标签数据保持不变,有效位数据被配置为0;
当缓存组数不变,且缓存行数减少时,减掉的缓存行的内存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的标签数据保持不变,有效位数据被配置为0;
当缓存行数不变,且缓存组数增多时,新增缓存组的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存行数不变,且缓存组数减少时,减掉的缓存组的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变;
当缓存组数增多,且缓存行数增多时,新增缓存组的内存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数增多,且缓存行数减少时,新增缓存组的内存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数减少,且缓存行数增多时,减掉的缓存组的内存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数减少,且缓存行数减少时,减掉的缓存组的内存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态。
2.根据权利要求1所述的方法,其特征在于,所述cache存储模组包括由至少一个缓存行组成的至少一个缓存组,所述cache架构参数包括每个所述缓存组的缓存行数,所述配置cache架构参数包括:
根据同时访问所述内存的主设备数量,配置每个所述缓存组的缓存行数。
3.根据权利要求2所述的方法,其特征在于,所述根据同时访问所述内存的主设备数量,配置每个所述缓存组的缓存行数包括:
若所述主设备数量大于现有行数时,则增加每个所述缓存组的缓存行数。
4.根据权利要求1所述的方法,其特征在于,所述cache存储模组包括由至少一个缓存行组成的至少一个缓存组,所述cache架构参数包括每个所述缓存行的缓存长度,所述配置cache架构参数包括:
根据主设备访问所述内存的连续性,配置每个所述缓存行的缓存长度。
5.根据权利要求4所述的方法,其特征在于,所述根据主设备访问所述内存的连续性,配置每个所述缓存行的缓存长度包括:
若主设备访问所述内存的地址连续次数大于或等于第一预设次数阈值时,则增加每个所述缓存行的缓存长度;
若主设备访问所述内存的地址连续次数小于或等于第二预设次数阈值时,则降低或保持每个所述缓存行的缓存长度,所述第二预设次数阈值小于或等于所述第一预设次数阈值。
6.根据权利要求1所述的方法,其特征在于,所述cache存储模组包括由至少一个缓存行组成的至少一个缓存组,所述cache架构参数包括缓存组的组数,所述配置cache架构参数包括:
根据所述cache存储模组映射所述内存的存储空间的大小,配置所述组数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述cache存储模组映射所述内存的存储空间的大小,配置所述组数包括:
若所述cache存储模组映射所述内存的存储空间大于预设存储阈值时,则增加组数;
若所述cache存储模组映射所述内存的存储空间小于预设存储阈值时,则降低或保持组数。
8.根据权利要求1至7任一项所述的方法,其特征在于,
所述配置cache架构参数包括:配置多组cache架构参数;
相应的,所述方法还包括:
依序获取在每组所述cache架构参数对应的映射架构下,运行软件程序的运行效果;
根据各个所述运行效果,确定最优架构参数;
发送所述最优架构参数至所述cache控制器,以使所述cache控制器根据所述最优架构参数,动态调整所述cache存储模组对内存的映射架构。
9.根据权利要求8所述的方法,其特征在于,所述运行效果包括运行所述软件程序的运行时间,所述根据各个所述运行效果,确定最优架构参数包括:
在各个所述运行时间中搜索最小运行时间;
确定所述最小运行时间对应的cache架构参数为最优架构参数。
10.一种存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于使处理器执行如权利要求1至9任一项所述的cache映射架构动态调整方法。
11.一种芯片,其特征在于,包括:
与至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至9任一项所述的cache映射架构动态调整方法。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至9任一项所述的cache映射架构动态调整方法。
13.一种cache控制器,其特征在于,包括:
cache存储模组,包括若干缓存行,每个所述缓存行用于存储内存数据、标签数据及有效位数据;
编程寄存器组,用于存储cache架构参数,所述cache架构参数可动态配置在所述编程寄存器组中,以动态调整所述cache存储模组对内存的映射架构;
命中判断模组,用于根据所述标签数据、所述有效位数据及所述cache架构参数,在动态调整后的映射架构下判断是否命中所述cache存储模组中的缓存行,若是,控制所述cache存储模组与主设备交互内存数据,若否,产生加载命令;
缓存行加载模组,用于根据所述加载命令,访问所述内存;
缓存行更新模组,用于在所述缓存行加载模组的控制下,对所述cache存储模组中与cache架构参数对应的缓存行进行数据更新,其中,
在缓存长度不变的前提下:
当缓存组数不变,且缓存行数增多时,新增缓存行的内存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的标签数据保持不变,有效位数据被配置为0;
当缓存组数不变,且缓存行数减少时,减掉的缓存行的内存数据被配置为空,原有缓存行的内存数据保持不变,原有缓存行的标签数据保持不变,有效位数据被配置为0;
当缓存行数不变,且缓存组数增多时,新增缓存组的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存行数不变,且缓存组数减少时,减掉的缓存组的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变;
当缓存组数增多,且缓存行数增多时,新增缓存组的内存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数增多,且缓存行数减少时,新增缓存组的内存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数减少,且缓存行数增多时,减掉的缓存组的内存数据被配置为空,新增缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态;
当缓存组数减少,且缓存行数减少时,减掉的缓存组的内存数据被配置为空,减掉的缓存行的内存数据被配置为空,原有缓存组中各个缓存行的内存数据保持不变,依序判断每个原有缓存组中每个缓存行的标签数据是否符合在调整后的映射架构下的地址映射关系,若符合,保持有效位数据不变,保持有效位数据为有效状态,若不符合,保持标签数据不变,将有效位数据配置为无效状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110982126.3A CN113778912B (zh) | 2021-08-25 | 2021-08-25 | cache映射架构动态调整方法及cache控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110982126.3A CN113778912B (zh) | 2021-08-25 | 2021-08-25 | cache映射架构动态调整方法及cache控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778912A CN113778912A (zh) | 2021-12-10 |
CN113778912B true CN113778912B (zh) | 2024-05-07 |
Family
ID=78839239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110982126.3A Active CN113778912B (zh) | 2021-08-25 | 2021-08-25 | cache映射架构动态调整方法及cache控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778912B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207843A (zh) * | 2013-04-15 | 2013-07-17 | 山东大学 | 一种数据行宽度可动态配置的cache结构设计方法 |
CN103246613A (zh) * | 2012-02-08 | 2013-08-14 | 联发科技(新加坡)私人有限公司 | 缓存装置及用于缓存装置的缓存数据获取方法 |
CN103778069A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN107229575A (zh) * | 2016-03-23 | 2017-10-03 | 上海复旦微电子集团股份有限公司 | 缓存性能的评估方法及装置 |
CN108139872A (zh) * | 2016-01-06 | 2018-06-08 | 华为技术有限公司 | 一种缓存管理方法、缓存控制器以及计算机系统 |
CN108228094A (zh) * | 2016-12-09 | 2018-06-29 | 英特尔公司 | 存储器侧高速缓存中通路的伺机增加 |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
-
2021
- 2021-08-25 CN CN202110982126.3A patent/CN113778912B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246613A (zh) * | 2012-02-08 | 2013-08-14 | 联发科技(新加坡)私人有限公司 | 缓存装置及用于缓存装置的缓存数据获取方法 |
CN103778069A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN103207843A (zh) * | 2013-04-15 | 2013-07-17 | 山东大学 | 一种数据行宽度可动态配置的cache结构设计方法 |
CN108139872A (zh) * | 2016-01-06 | 2018-06-08 | 华为技术有限公司 | 一种缓存管理方法、缓存控制器以及计算机系统 |
CN107229575A (zh) * | 2016-03-23 | 2017-10-03 | 上海复旦微电子集团股份有限公司 | 缓存性能的评估方法及装置 |
CN108228094A (zh) * | 2016-12-09 | 2018-06-29 | 英特尔公司 | 存储器侧高速缓存中通路的伺机增加 |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113778912A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100389549B1 (ko) | 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조 | |
JP4098347B2 (ja) | キャッシュメモリおよびその制御方法 | |
US7913041B2 (en) | Cache reconfiguration based on analyzing one or more characteristics of run-time performance data or software hint | |
US20160034396A1 (en) | Programmable Address-Based Write-Through Cache Control | |
US6385697B1 (en) | System and method for cache process | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
US20060277365A1 (en) | Method and system for on-chip configurable data ram for fast memory and pseudo associative caches | |
US20050086435A1 (en) | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory | |
US20100217937A1 (en) | Data processing apparatus and method | |
US8364904B2 (en) | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer | |
JP2008502069A (ja) | メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法 | |
US20140095794A1 (en) | Apparatus and Method For Reducing The Flushing Time Of A Cache | |
US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
US20130232320A1 (en) | Persistent prefetch data stream settings | |
US20110099337A1 (en) | Processing circuit with cache circuit and detection of runs of updated addresses in cache lines | |
US7555610B2 (en) | Cache memory and control method thereof | |
US20060265551A1 (en) | Handling of cache accesses in a data processing apparatus | |
CN113778912B (zh) | cache映射架构动态调整方法及cache控制器 | |
US20040243765A1 (en) | Multithreaded processor with multiple caches | |
WO2023173991A1 (en) | Cache line compression prediction and adaptive compression | |
US8108611B2 (en) | Cache memory system | |
CN113791989B (zh) | 基于cache的缓存数据处理方法、存储介质及芯片 | |
KR100486240B1 (ko) | 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 | |
CN117917648A (zh) | 缓存数据的方法、装置、芯片、处理器和系统 | |
US11860784B1 (en) | Live profile-driven cache aging policies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |