CN107229575A - 缓存性能的评估方法及装置 - Google Patents
缓存性能的评估方法及装置 Download PDFInfo
- Publication number
- CN107229575A CN107229575A CN201610169855.6A CN201610169855A CN107229575A CN 107229575 A CN107229575 A CN 107229575A CN 201610169855 A CN201610169855 A CN 201610169855A CN 107229575 A CN107229575 A CN 107229575A
- Authority
- CN
- China
- Prior art keywords
- memory block
- data
- storage address
- cache
- assessed
- 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.)
- Withdrawn
Links
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/0871—Allocation or management of cache space
-
- 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/0877—Cache access modes
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
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
一种缓存性能的评估方法及装置。所述方法包括:获取n个待访问数据的存储地址;调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据,分别获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;将所述各配置参数在不同数值下对应的平均访存时间作为评估结果并输出。应用所述方法及装置可以提高Cache性能评估的准确性。
Description
技术领域
本发明涉及集成电路设计技术领域,具体涉及一种缓存性能的评估方法及装置。
背景技术
嵌入式片上系统(System On Chip,SOC)中,一般采用EEPROM或Flash等非挥发性存储器(Non-Volatile memory,NVM)作为存储指令的存储器。微处理器(MCU)通过读取NVM存储器中的指令并执行,完成系统设计的功能。
通常情况下,MCU执行的速度比NVM的读取速度快得多,导致MCU经常处于读取指令的等待状态,这使得读取指令的速度成为片上系统、尤其是高性能片上存储系统的瓶颈。
解决这一技术问题的主流方案是采用指令缓存(Instruction Cache,简称Cache)。通过在Cache内存储MCU频繁访问的数据及这些数据的存储地址,当MCU引用NVM中的某地址时,Cache便先检查是否存有该地址。若存有该地址,则将对应的指令返回MCU,否则MCU从NVM中获取对应的指令。
由于Cache的读取速度比NVM快得多,因此,当访问的数据在Cache中找到,即命中时,MCU可以直接从Cache中读取对应的数据,而无需访问速度较慢的NVM。如果Cache的命中率足够高,MCU近似于直接从RAM中读取指令,因而整体读取速度可以大大提高。
在实际应用中,嵌入式SOC的应用需求多种多样,如何根据特定的应用需求,选择最合适的Cache结构和参数,是嵌入式SOC设计者面临的一个很大挑战。为此,在嵌入式SOC的Cache设计中,通常需要评估不同的结构和参数对最终Cache性能的影响。
目前,对所设计的Cache进行性能评估时,通常采用Cache的命中率来评估Cache的性能。然而,Cache的命中率并不能真实地反映Cache的真实性能,导致根据评估结果所确定的配置参数非最优配置参数,也就是说,现有缓存性能评估方法对所设计的Cache性能评估的准确性较低。
发明内容
本发明解决的技术问题是如何提高Cache性能评估的准确性。
为解决上述技术问题,本发明实施例提供一种缓存性能的评估方法,包括:获取n个待访问数据的存储地址,n为自然数;调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据,分别获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;将所述各配置参数在不同数值下对应的平均访存时间作为评估结果并输出。
可选地,所述模拟所述待评估的缓存访问各所述待访问数据,包括:采用如下步骤对所述待评估的缓存访问其中任一所述待访问数据进行模拟,直至所述待评估的缓存访问n个所述待访问数据:当获取到所述待评估的缓存的配置参数时,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息;根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,所述第一存储区适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度;根据搜索结果判断所述存储地址在所述第一存储区中是否命中;根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回。
可选地,所述根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回,包括:当所述存储地址在所述第一存储区中命中时,更新所述第一存储区中存储的信息,以及从第二存储区中读取对应数据并返回,其中,所述第二存储区适于存储与所述第一存储区所存储的存储地址对应的数据。
可选地,所述根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回,包括:当所述存储地址在所述第一存储区中未命中时,根据所述缓存块的地址信息搜索第三存储区中存储的信息,所述第三存储区适于存储预取的数据及对应的缓存块的地址信息;根据搜索结果判断所述存储地址在所述第三存储区中是否命中;根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回。
可选地,所述根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回,包括:当所述存储地址在所述第三存储区中命中时,更新所述第一存储区及第二存储区中存储的信息,从所述第三存储区中读取对应的数据并返回;按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区中;当所述存储地址在所述第三存储区中未命中时,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
可选地,当所述第一存储区的对应位置处均已存储相应的信息时,所述更新所述第一存储区包括:根据所述第一存储器中各缓存块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区的缓存块进行替换,将在所述第三存储区中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
可选地,在所述根据所述存储地址对应的缓存块的地址信息,搜索第一存储区之前,所述方法还包括:根据所述存储地址对应的缓存块的地址信息搜索第四存储区,所述第四存储区适于存储前一次在所述第一存储区中命中时所对应的缓存块的地址信息;并根据搜索结果判断所述存储地址在所述第四存储区中是否命中;当所述存储地址在所述第四存储区中命中时,从所述第二存储区中读取对应的数据并返回,否则搜索所述第一存储区。
可选地,所述缓存块的地址信息包括:所述缓存块的标识信息及地址索引信息。
可选地,所述待评估的缓存包括至少一个存储区,所述至少一个存储区分别用于存储不同的信息;
所述获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间,包括:分别计算通过所述待评估的缓存访问各所述待访问数据时,所述各配置参数在不同数值下对应的各个所述存储区的访问时间及命中率;获取所述各配置参数在不同数值下对应的所述待评估的缓存的失效开销;根据所述各配置参数在不同数值下对应的所述待评估的缓存的命中率、访问时间及失效开销,计算得到所述各配置参数在不同数值下对应的所述待评估的缓存的平均访存时间。
可选地,所述待评估的缓存的配置参数包括:所述待评估的缓存的特征参数以及影响所述待评估的缓存性能的系统参数。
本发明实施例还提供了一种缓存性能的评估装置,所述评估装置包括:获取单元,适于获取n个待访问数据的存储地址,n为自然数;模拟单元,适于调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据;计算单元,适于根据所述模拟子单元的模拟过程,获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;评估单元,适于将所述各配置参数在不同数值下访问各所述待访问数据时的平均访存时间作为评估结果并输出。
可选地,所述模拟单元适于对所述待评估的缓存访问其中任一所述待访问数据进行模拟,直至所述待评估的缓存访问n个所述待访问数据;
所述模拟单元包括:地址划分子单元,适于当获取到所述待评估的缓存的配置参数时,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息;存储子单元,包括第一存储区,所述第一存储区适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度;第一处理子单元,适于根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中;第一执行子单元,适于根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回。
可选地,所述存储子单元还包括:第二存储区,适于存储与所述第一存储区所存储的存储地址对应的数据;
所述第一执行子单元包括:第一执行模块,适于更新所述第一存储区中存储的信息,以及从所述第二存储区中读取对应数据并返回。
可选地,所述存储子单元还包括:第三存储区,适于存储预取的数据及对应的缓存块的地址信息;所述第一执行子单元包括:第一处理模块以及第二执行模块,所述第一处理模块适于当所述存储地址在所述第一存储区中未命中时,根据所述缓存块的地址信息搜索所述第三存储区中存储的信息;根据搜索结果判断所述存储地址在所述第三存储区中是否命中;所述第二执行模块,适于根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回。
可选地,所述第二执行模块包括:第一执行子模块,适于当所述存储地址在所述第三存储区中命中时,更新所述第一存储区及第二存储区中存储的信息,从所述第三存储区中读取对应的数据并返回;按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区中;第二执行子模块,适于当所述存储地址在所述第三存储区中未命中时,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
可选地,所述第二执行子模块适于当所述第一存储区的对应位置处均已存储相应的信息时,采用如下步骤更新所述第一存储区:根据所述第一存储区中各缓存块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区的缓存块进行替换,将在所述第三存储区中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
可选地,所述存储子单元还包括:第四存储区,适于存储前一次在所述第一存储区中命中时所对应的缓存块的地址信息;
所述模拟单元还包括:第二处理子单元及第二执行子单元,其中:所述第二处理子单元,适于在所述根据所述存储地址对应的缓存块的地址信息,搜索第一存储区之前,根据所述存储地址对应的缓存块的地址信息搜索所述第四存储区,判断所述存储地址在所述第四存储区中是否命中;所述第二执行子单元,适于当所述存储地址在所述第四存储区中命中时,从所述第二存储区中读取对应的数据并返回;
所述第一处理子单元适于当所述存储地址在所述第四存储区中未命中时,搜索所述第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中。
可选地,所述缓存块的地址信息包括:所述缓存块的标识信息及地址索引信息。
可选地,所述待评估的缓存包括至少一个存储区,所述至少一个存储区分别用于存储不同的信息;
所述计算单元包括:第一计算子单元,适于分别计算通过所述待评估的缓存访问各所述待访问数据时,所述各配置参数在不同数值下对应的各个所述存储区的访问时间及命中率;获取子单元,适于获取所述各配置参数在不同数值下对应的所述待评估的缓存的失效开销;第二计算子单元,适于根据所述各配置参数在不同数值下对应的所述待评估的缓存的命中率、访问时间及失效开销,计算得到所述各配置参数在不同数值下对应的所述待评估的缓存的平均访存时间。
可选地,所述待评估的缓存的配置参数包括:所述待评估的缓存的特征参数以及影响所述待评估的缓存性能的系统参数。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在上述缓存性能的评估方法中,通过采用平均访存时间来评估缓存的性能,相对于采用命中率来评估缓存的性能,由于所述平均访存时间不仅与缓存的命中率相关,还与缓存的访问时间及失效开销等特征参数相关,故平均访存时间可以更加真实地反映缓存的真实性能,故利用平均访存时间来评估缓存的性能可以提高评估的准确性。
附图说明
图1是本发明实施例中一种缓存性能评估方法流程图;
图2是一种Cache容量与平均访存时间之间对应关系的曲线示意图;
图3是一种Cache块大小与平均访存时间之间对应关系的曲线示意图;
图4是一种Cache相联度与平均访存时间之间对应关系的曲线示意图;
图5是本发明实施例中一种缓存模拟方法流程图;
图6是本发明实施例中一种缓存模拟过程的原理示意图;
图7是本发明实施例中另一种缓存模拟方法流程图;
图8是本发明实施例中另一种缓存模拟过程的原理示意图;
图9是本发明实施例中一种缓存性能评估装置的结构示意图;
图10是本发明实施例中一种模拟单元的结构示意图;
图11是本发明实施例中另一种模拟单元的结构示意图;
图12是本发明实施例中模拟单元不同结构下对平均访存时间的影响示意图。
具体实施方式
在实际应用中,嵌入式SOC的应用场景各种各样,各种应用场景的特点都不尽相同,特定结构的Cache很难保证在不同的应用场景之间具有通用性。另外,嵌入式SOC的设计不仅需要考虑系统的性能,系统的功耗、面积和成本也是设计者需要考虑的问题。因此,在嵌入式SOC的Cache设计中,通常需要评估不同的应用需求下,各种结构和参数对最终Cache加速效果的影响。
然而,利用现有的Cache性能评估方法进行Cache性能评估时,根据模拟过程仅能得到Cache的命中率,而Cache的命中率不能反映Cache真实加速效果,最终导致Cache性能评估的准确性较低。
针对上述问题,本发明实施例提供了一种缓存性能的评估方法,所述方法可以根据待评估缓存的模拟过程,获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间,进而根据所述各配置参数在不同数值下访问各所述待访问数据时的平均访存时间,评估所述待评估的缓存的性能。由于所述平均访存时间不仅与缓存的命中率相关,还与缓存的访问时间及失效开销等特征参数相关,故平均访存时间可以更加真实地反映缓存的真实性能,利用平均访存时间来评估缓存的性能的准确性也就更高。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细地说明。
参照图1,本发明实施例提供了一种缓存性能的评估方法,所述方法可以包括如下步骤:
步骤11,获取n个待访问数据的存储地址,n为自然数。
在具体实施中,可以采用多种方式获取所述待访问数据的存储地址。在本发明的一实施例中,可以通过提取待评估的缓存在某一应用场景下的地址访存踪迹信息(Memory Access Trace,MAT),来获取待访问数据的存储地址。其中,所述MAT中不仅可以包括待访问数据及对应的存储地址,还包括MCU在NVM中访问所述待访问数据所需的时间,这样在后续对待评估的缓存进行性能评估时,则无须再获取MCU在NVM中访问所述待访问数据所需的访问时间,为后续进行性能评估提供便利。
需要说明的是,在具体实施中,n的值可以根据实际情况进行设置。可以理解的是,n的值越大,评估的准确性越高,但评估所需时间也就越长,代价越大。因此,本领域技术人员可以实际情况合理设置n的值,此处不作限制。
步骤12,调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据,分别获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间。
在具体实施中,所述待评估的Cache通常存在多个配置参数。所述配置参数既可以包含所述待评估的Cache的特征参数,又包含可以影响所述待评估的Cache性能的系统参数。其中,所述待评估的Cache的特征参数可以包括:所述待评估的Cache的容量、Cache块的大小,Cache相联度以及替换算法等。影响所述待评估的Cache性能的系统参数可以包括:NVM、Cache及MCU三者的访问时间、访问功耗及数据位宽等。
当然,所述配置参数还可以包括其他参数,并不局限于上述实施例所给出的参数。并且,所获取到的配置参数中可以仅包含一个参数,也可以包含两个或两个以上的参数。
在具体实施中,所述配置参数通常基于所述待评估的Cache的应用需求进行配置。也就是说,所获取到的配置参数与所述待评估的Cache的应用需求相对应。所述待评估的Cache的应用需求不同,所获取到的配置参数也就不同。
例如,当所述待评估的Cache应用在AES(对称加密算法)中时,所述配置参数可以为:Cache容量2Kbyte,Cache块大小16Byte,Cache相联度2,最近最少使用(LRU)替换算法等。当所述待评估的Cache应用在Dhrystone(处理器整形运算性能测试)程序下时,所述配置参数可以为:Cache容量512Byte,Cache块大小16Byte,Cache相联度1等。
以所述待评估的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为M1,NVM为M2为例,对每个配置参数对应的平均访存时间的具体计算过程进行详细说明:
需要说明的是,为使本领域人员更好地理解和实施本发明,在本发明的以下的实施例中,所述平均访存时间,即MCU访问NVM及Cache等存储器所需的平均访问时间。所述Cache的命中率,即MCU在Cache中命中待访问数据的概率。所述Cache的缺失率,即MCU未在Cache中命中待访问数据的概率。
通常情况下,所述平均访存时间T=M1命中率*M1访问时间+M2命中率*M2访问时间,其中,M1命中率即MCU在待评估的Cache中命中待访问数据的概率,M1访问时间即MCU在待评估的Cache中访问数据的时间,M2命中率即MCU在NVM中命中待访问数据的概率,M2访问时间即MCU在NVM中访问数据的时间。
其中,M2命中率=1-M1命中率=M1缺失率,M2访问时间=M1访问时间+M2到M1调入数据的时间,而M2到M1调入数据的时间=失效开销T2,当所述待评估的Cache的配置参数及NVM确定时,失效开销T2也是确定的因此,平均访存时间T=M1访问时间+M1缺失率*失效开销T2。由此可以获得各个配置参数对应的平均访存时间。
在具体实施中,所述待评估的Cache通常包括一个以上的存储区,所述一个以上的存储区分别用于存储不同的信息,因此,M1访问时间及M1命中率或缺失率与所述待评估的Cache中各个存储区的访问时间或命中率相关。
以所述待评估的Cache包括K个存储区为例,K≥1,且K为整数,在获得某一配置参数在不同数值下对应的平均访存时间时,可以先分别计算通过所述待评估的Cache访问各所述待访问数据时,该配置参数在不同数值下对应的各个所述存储区的访问时间Ti及命中率Pi,i≤K,再获取该配置参数在不同数值下对应的所述待评估的Cache的失效开销T2,最后根据访问时间Ti、命中率Pi以及失效开销T2,计算得到该配置参数在不同数值下对应的所述待评估的Cache的平均访存时间T,即T=∑Ti+(1-∑Pi)*T2。
需要说明的是,在具体实施中,计算访问时间Ti及命中率Pi的操作,与获取所述各配置参数在不同数值下对应的所述待评估的Cache的失效开销T2的操作,不存在执行顺序的限制,既可以先计算访问时间Ti及命中率Pi,再获取所述各配置参数在不同数值下对应的所述待评估的Cache的失效开销T2,也可以先获取所述各配置参数在不同数值下对应的所述待评估的Cache的失效开销T2,再计算访问时间Ti及命中率Pi,还可以同时执行上述两个操作。但无论按照何种顺序执行上述两个操作,均不构成对本发明的限制,且均在本发明的保护范围之内。
每获得一组所述待评估的Cache的配置参数,即按照上述的描述计算得到对应的平均访存时间。保持其它配置参数不变,调整其中一个配置参数时,即可获得被调整的配置参数在不同数值下对应的平均访存时间。由此可以获得各个配置参数在不同数值下对应的平均访存时间。
例如,在计算某一Cache块大小对应的平均访存时间T时,可以先获得MCU在所述待评估的Cache各个存储区的Ti及命中率Pi,再获得所述待评估的Cache的失效开销T2,最后根据T=∑Ti+(1-∑Pi)*T2,计算得到该Cache块大小对应的平均访存时间T。每次调整Cache块大小后,均按照上述实施例中的描述进行计算,即可获得Cache块大小在不同数值下对应的平均访存时间。
步骤13,将所述各配置参数在不同数值下对应的平均访存时间作为评估结果并输出。
在具体实施中,根据所述各配置参数在不同数值下访问各所述待访问数据时的平均访存时间,可以评估所述各配置参数对于Cache平均访存时间的影响,进而可以根据各配置参数与平均访存时间的对应关系,确定各配置参数的合理数值,以得到最优的一组配置参数。平均访存时间越小,对应的配置参数值越优,按照所得到的最优的一组配置参数设置缓存,可以使得所设计的缓存性能最佳。
由上述内容可知,在本发明实施例中所述的缓存性能的评估方法中,通过采用平均访存时间来评估Cache的性能,相对于采用命中率来评估Cache的性能,由于所述平均访存时间不仅与缓存的命中率相关,还与Cache的访问时间及失效开销等特征参数相关,故平均访存时间可以更加真实地反映缓存的真实性能,利用平均访存时间来评估缓存的性能的准确性也就更高。
图2~图4为不同应用场景下,Cache容量、Cache块大小及Cache相联度分别与缺失率Q和平均访存时间T之间的对应曲线,其中,所述缺失率Q=1-命中率P。
如图2所示,所述待评估的Cache的配置参数为:Cache块大小=32byte,相联度为全相联,替换算法为LRU替换算法,分别在AES、SHA(哈希算法)、Dhystone、Comb(AES、SHA及Dhystone的组合)四种应用环境下,调整Cache容量,分别得到Cache容量与待评估的Cache的缺失率Q之间的对应曲线(如图2(a)所示),以及得到Cache容量与待评估的Cache的平均访存时间T之间的对应曲线(如图2(b)所示)。
以所述待评估的Cache应用在AES中为例,按照图2(a)得到的曲线确定Cache容量的最优值时,缺失率Q的最小值所对应的Cache容量值为最优值,即8192byte。按照图2(b)得到的曲线确定Cache容量的最优值时,平均访存时间T的最小值所对应的Cache容量值为最优值,即2048byte。
如图3所示,所述待评估的Cache的配置参数为:Cache容量=512byte,相联度为全相联,替换算法为LRU替换算法,分别在AES、SHA及Dhystone三种应用环境下,调整Cache块的大小,得到Cache块的大小与待评估的Cache的缺失率Q之间的对应曲线(如图3(a)所示),以及得到Cache块的大小与待评估的Cache的平均访存时间T之间的对应曲线(如图3(b)所示)。
以所述待评估的Cache应用在SHA中为例,按照图3(a)得到的曲线确定Cache块的大小的最优值时,缺失率Q的最小值所对应的Cache块的大小值为最优值,即128byte。按照图3(b)得到的曲线确定Cache块的大小的最优值时,平均访存时间T的最小值所对应的Cache块的大小值为最优值,即16byte。
如图4所示,所述待评估的Cache的配置参数为:Cache容量=512byte,Cache块的大小=16byte,替换算法为LRU替换算法,分别在AES、SHA及Dhystone三种应用环境下,调整Cache的相联度,得到Cache的相联度与待评估的Cache的缺失率Q之间的对应曲线(如图4(a)所示),以及得到Cache的相联度与待评估的Cache的平均访存时间T之间的对应曲线(如图4(b)所示)。
以所述待评估的Cache应用在Dhystone中为例,按照图4(a)得到的曲线确定Cache的相联度的最优值时,缺失率Q的最小值所对应的Cache的相联度为最优值,即1(1表示直接映射)。按照图4(b)得到的曲线确定Cache的相联度的最优值时,平均访存时间T的最小值所对应的Cache的相联度的值为最优值,即0(0表示全相联)。
从图2~图4可以看出,在实际应用中,采用Cache的命中率来评估Cache的性能,与采用Cache的平均访存时间来评估Cache的性能,所选择的Cache的配置参数可能完全不同。然而,可以理解的是,Cache的平均访存时间与Cache的命中率相关,而且与Cache的访问时间及失效开销相关,更能反映Cache的真实性能,因此利用Cache的平均访存时间来评估Cache的性能,评估结果的准确性也就越高。
在本发明的一实施例中,可以参照图5示出的Cache的模拟方法,对本发明实施例中所述待评估的Cache访问所述待访问数据进行模拟,所述方法可以包括如下步骤:
步骤501,获取待评估的缓存的配置参数。
在具体实施中,所述配置参数的参数可以通过多种方式进行获取,比如,所述配置参数可以是用户输入的,也可以是通过访问其它存储介质获取到的。当然,还可以存在其它获取方式,只要所获取到的配置参数与具体的应用需求相对应即可。
步骤502,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息。
在设置有Cache的嵌入式SOC中,Cache通常包括若干个Cache块,每个Cache块的大小相等。相似地,所述待评估的Cache也设置有若干个缓存块,每个缓存块的大小相等。每个存储地址对应一缓存块。所述存储地址通常为所对应的缓存块的起始地址信息。
在具体实施中,对所述存储地址进行划分时,通常可以获得如下三部分信息:所述存储地址对应的Cache块的标识信息和地址索引信息,以及所述存储地址在所述Cache块中的偏移信息。其中,所述Cache块的标识信息和地址索引信息,作为所述Cache块地址信息。
具体地,所述Cache块的标识信息可以唯一标识一Cache块,通常为所述存储地址的高位。通过所述地址索引信息可以在相应的存储区中的到所述Cache块的信息。所述偏移信息为所述存储地址在所述Cache块中的偏移量。根据获取到的所述待模拟Cache的容量、Cache块大小及相联度等信息,可以在所述存储地址中分别获得对应的Cache块的标识信息和地址索引信息,以及所述存储地址在所述对应的Cache块中的偏移信息。
步骤503,根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中。
在具体实施中,所述第一存储区适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度。也就是说,所述第一存储区适于存储MCU经常使用的存储地址的标识信息及相应的使用频度。其中,所述预设频度可以根据MCU的实际访问数据的情况进行设置。
在具体实施中,所述第一存储区可以划分为多个组,每组中可以存储多个存储地址的标识信息以及对应的使用频度信息。其中,所述第一存储区中组的数量与Cache的相联度相关,比如,Cache的相联度为4时,所述第一存储区包含4组。当Cache的相联度为2时,所述第一存储区包含2组。每组中可以存储的存储地址的标识信息的数量,与所述第一存储区所存储的存储地址的总数和组数相关。比如,当所述第一存储区所存储的存储地址的总数为20,Cache的相联度为4时,每组中可以存储的存储地址的标识信息为5个。当所述第一存储区所存储的存储地址的总数为20,Cache的相联度为2时,每组中可以存储的存储地址的标识信息为10个。
在具体实施中,根据所述存储地址对应的Cache块的地址索引信息,搜索所述第一存储区中存储的信息,由此可以获得所述第一存储区中各组在相应位置上的标识信息。
在具体实施中,获得第一存储区中各组在相应位置上的标识信息后,分别将搜索到的标识信息与所述存储地址对应的Cache块的标识信息进行比较。当二者相同时,判定所述存储地址在所述第一存储区中命中,否则表示所述存储地址在第一存储区中缺失,则判定所述存储地址在所述第一存储区中未命中。
当所述存储地址在所述第一存储区中命中时,执行步骤504,否则执行步骤505。
步骤504,更新所述第一存储区中存储的信息,以及从第二存储区中读取对应数据并返回。
在具体实施中,所述第二存储区适于存储与所述第一存储区所存储的存储地址对应的数据。当所述存储地址在所述第一存储区中命中时,更新所述第一存储区中所述存储地址对应的Cache块的使用频度信息,以及从所述第二存储区中读取相应的数据并返回。
需要说明的是,在具体实施中,所述第二存储区也可以分为多组,每组中存储的数据与所述第一存储区中各组所存储的Cache块的标识信息相对应。执行步骤503的同时,可以同时执行读取所述第二存储区的操作,最终根据步骤503的判断结果,将所述第二存储区中对应的数据返回至MCU,进一步缩短Cache的模拟时间。
需要说明的是,在具体实施中,执行更新所述第一存储区中存储的信息的操作,以及执行从第二存储区中读取对应数据并返回的操作,不存在实现顺序的限制,二者既可以同时执行,也可以顺序执行。
步骤505,根据所述缓存块的地址信息搜索第三存储区中存储的信息,并根据搜索结果判断所述存储地址在所述第三存储区中是否命中。
在具体实施中,所述存储地址在所述第一存储区中未命中时,表示所述存储地址在第一存储区中缺失。根据所述Cache块的地址索引信息,搜索所述第三存储区,可以获得所述第三存储区对应位置上的数据及所述数据对应的Cache块的标识信息。将所述存储地址对应Cache块的标识信息与搜索到的标识信息进行比较,当二者相同时,判定所述存储地址在所述第三存储区中命中,否则判定所述存储地址在所述第三存储区中未命中。
其中,所述第三存储区适于存储预取的数据及对应的Cache块的地址索引信息及标识信息。所述预取的数据可以仅为一个,也可以为多个,具体不受限制。
当所述存储地址在所述第三存储区中命中时,执行步骤506,否则执行步骤507。
步骤506,更新所述第一存储区及第二存储区中存储的信息,从所述第三存储区中读取对应的数据并返回。
在具体实施中,当所述存储地址在所述第三存储区中命中时,可以先根据在所述第三存储区中命中的数据所对应的Cache块的地址索引信息,确定所述第一存储区中对应的位置是否已存储相应的信息。
若所述第一存储区中有某一组中对应的位置未存储相应的信息,则将在所述第三存储区中命中的数据所对应的Cache块的标识信息以及对应的使用频度信息写入至该位置。
若所述第一存储区所有组中对应的位置均已存储相应的信息,则可以根据所述第一存储器中各Cache块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区的Cache块进行替换,将在所述第三存储区中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
需要说明的是,所述替换算法作为待模拟Cache的一配置参数,可以在对所述待模拟Cache进行模拟之前预先获取到。在具体实施中,所述替换算法可以是为先进先出替换算法(FIFO),也可以为LRU,还可以为二叉树伪LRU替换算法(Pseudo-LRU)。当然,还可以为其他替换算法,具体不作限制。
更新所述第一存储区后,将在所述第三存储区中命中的数据写入至所述第二存储区的相应位置处。从第三存储区中读取所命中的数据并返回至MCU。需要说明的是,更新所述第一、第二存储区以及向MCU返回数据的操作既可以同时执行,也可以顺序执行。
从所述第三存储区读取所命中的数据后,按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区中,即通过数据预取更新所述第三存储区。
需要说明的是,在具体实施中,所述预设顺序作为待评估的Cache的一配置参数,可以在对所述待评估的Cache进行模拟之前预先获取到。比如,所述预设顺序可以为:在所访问存储地址上加1。
步骤507,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
在具体实施中,所述存储地址在所述第三存储区中未命中时,表示所述存储地址在所述第三存储区中缺失,此时,从所述NVM中读取对应的数据并返回至MCU,并更新所述第三存储区中存储的信息,也就是将从NVM中读取的数据写入至所述第三存储区。
为了使本领域技术人员更好地理解和实现本发明,下面结合图2,对上述缓存模拟过程的工作原理进行详细描述。
如图6所示,以所述待评估的缓存的相联度为2、NVM为flash为例,所述第一存储区包括两个组,每组中分别存储若干个存储地址的标识信息Tag及对应的使用频度信息RepInfo。第二存储区中包括两个组,每组中存储的数据与所述第一存储区中各组所存储的存储地址的标识信息对应。
接收到MCU发送的待访问数据的存储地址Addr后,对所述存储地址Addr进行划分,分别获得对应的标识信息Tag、地址索引信息Index及偏移信息offset。根据所述地址索引信息Index搜索第一存储区,并判断所述存储地址Addr是否在所述第一存储区中命中。同时读取所述第二存储区。若在第一存储区中命中,则从第二存储区中搜索到的数据中选择一个并返回至MCU,否则搜索第三存储区中存储的信息。
若在第三存储区中命中,则直接从第三存储区中读取相应的数据并返回至MCU,否则从flash中读取相应的数据并返回至MCU。
由上述内容可以看出,本发明实施例中的缓存模拟方法中,由于该缓存方法可以给出在各存储区命中所需的时间,进而可以计算出存储系统的平均访存时间,该指标反映了待评估的Cache的真实加速效果,因此更有利于准确地进行缓存性能的估计。
在本发明的另一实施例中,可以参照图7示出的缓存的模拟方法,对本发明实施例中所述待评估的缓存访问所述待访问数据进行模拟,所述方法可以包括如下步骤:
步骤701,获取待评估的缓存的配置参数。
步骤702,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息。
需要说明的是,在具体实施中,步骤701及702可以分别参照上述对步骤501及502的描述进行实施,此处不再赘述。
步骤703,根据所述存储地址对应的缓存块的地址信息搜索所述第四存储区,并根据搜索结果判断所述存储地址在所述第四存储区中是否命中。
在具体实施中,所述第四存储区适于存储前一次在所述第一存储区中命中时所对应的Cache块的地址信息。搜索所述第四存储区,获得前一次在所述第一存储区中命中时对应的Cache块的地址信息,并将其与所述存储地址对应的缓存块的地址信息进行比较。若二者相同,则所述存储地址在所述第四存储区中命中,否则未命中。
当所述存储地址在所述第四存储区中命中时,执行步骤704,否则执行步骤705。
步骤704,从所述第二存储区中读取对应的数据并返回。
由于MCU访问前一次在所述第一存储区中命中的存储地址的频度较高,因此,在搜索第一存储区之前,通过先判断所述存储地址在所述第一存储区中是否命中,且在命中时,直接从第二存储区中读取对应的数据并返回,可以有效减少对第三存储区及第一存储区的读取次数。
步骤705,根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中。
当所述存储地址在所述第一存储区中命中时,执行步骤706,否则执行步骤707。
步骤706,更新所述第一存储区及第四存储区中存储的信息,以及从第二存储区中读取对应数据并返回。
需要说明的是,在本发明的实施例中,当所述存储地址在所述第一存储区中命中时,除更新所述第一存储区外,还要更新所述第四存储区,以使得所述第四存储区中所存储的地址信息始终为前一次在所述第一存储区中命中的地址信息。
步骤707,根据所述缓存块的地址信息搜索第三存储区中存储的信息,并根据搜索结果判断所述存储地址在所述第三存储区中是否命中。
当所述存储地址在所述第三存储区中命中时,执行步骤708,否则执行步骤709。
步骤708,更新所述第一存储区、第二存储区及第四存储区中存储的信息,从所述第三存储区中读取对应的数据并返回。
需要说明的是,在本发明的实施例中,当所述存储地址在所述第三存储区中命中时,除更新所述第一存储区及第二存储区外,还要更新所述第四存储区,以使得所述第四存储区中所存储的地址信息始终为前一次在所述第一存储区中命中的地址信息。
步骤709,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
需要说明的是,在具体实施中,可以分别参照上述对步骤关于步骤503~507的描述实施步骤705~709,此处不再赘述。
为了使本领域技术人员更好地理解和实现本发明,下面结合图8,对上述缓存模拟过程的工作原理进行详细描述。
如图8所示,以所述待评估的Cache的相联度为4、NVM为flash为例,所述第一存储区包括4个组,每组中分别存储若干个存储地址的标识信息Tag及对应的使用频度信息RepInfo。第二存储区中仅包括1个组,每组中存储的数据与所述第一存储区中各组所存储的存储地址的标识信息对应。
接收到MCU发送的待访问数据的存储地址Addr后,对所述存储地址Addr进行划分,分别获得对应的标识信息Tag、地址索引信息Index及偏移信息offset。
根据所述地址索引信息Index搜索第四存储区,并判断所述存储地址在所述第四存储区是否命中。若在所述第四存储区命中,则从所述第二存储区中搜索相应的数据并返回至MCU,否则根据所述地址索引信息Index搜索第一存储区。
判断所述存储地址Addr是否在所述第一存储区中命中,若在第一存储区中命中,则从第二存储区中搜索相应的数据并返回至MCU,否则搜索第三存储区中存储的信息。
若在第三存储区中命中,则直接从第三存储区中读取相应的数据并返回至MCU,否则从flash中读取相应的数据并返回至MCU。
由上述内容可知,通过设置第四存储区,在对待访问数据的存储地址进行划分后,先判断所述存储地址在所述第四存储区中是否命中,再依次判断在第一存储区及第三存储区中是否命中,可以有效减少第一存储区及第二存储区的读取次数,降低Cache模拟的功耗。并且,由于该缓存方法可以给出在各存储区命中所需的时间,进而可以计算出待评估的Cache的平均访存时间,该指标反映了待评估的Cache的真实加速效果,因此更有利于准确地进行缓存性能的估计。
需要说明的是,在具体实施中,还可以采用其它缓存模拟方法来模拟待评估的Cache的工作流程,具体不受限制,只要根据模拟的工作流程可以计算得到所述各配置参数在不同数值下对应的平均访存时间。可以理解的是,具体无论采用何种方法来模拟待评估的Cache的工作流程,均不构成对本发明的限制,且均在本发明的保护范围之内。
为了使本领域技术人员更好地理解和实现本发明,以下对上述方法对应的装置进行详细描述。
参照图9,本发明实施例提供了一种缓存性能的评估装置,所述装置可以包括:获取单元91,模拟单元92,计算单元93以及评估单元94。其中:
所述获取单元91适于获取n个待访问数据的存储地址,n为自然数;
所述模拟单元92适于调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据;
所述计算单元93适于根据所述模拟子单元的模拟过程,获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;
所述评估单元94适于将所述各配置参数在不同数值下访问各所述待访问数据时的平均访存时间作为评估结果并输出。
在具体实施中,所述获取单元91可以采用多种方式获取所述待访问数据的存储地址。在本发明的一实施例中,可以通过提取待评估的缓存在某一应用场景下的地址访存踪迹信息(Memory Access Trace,MAT),来获取待访问数据的存储地址。其中,所述MAT中不仅可以包括待访问数据及对应的存储地址,还包括MCU在NVM中访问所述待访问数据所需的时间,这样在后续对待评估的缓存进行性能评估时,则无须再获取MCU在NVM中访问所述待访问数据所需的访问时间,为后续进行性能评估提供便利。
在具体实施中,所述待评估的缓存的配置参数包括:所述待评估的缓存的特征参数以及影响所述待评估的缓存性能的系统参数。其中,所述待评估的Cache的特征参数可以包括:所述待评估的Cache的容量、Cache块的大小,Cache相联度以及替换算法等。影响所述待评估的Cache性能的系统参数可以包括:NVM、Cache及MCU三者的访问时间、访问功耗及数据位宽等。当然,所述配置参数还可以包括其他参数,并不局限于上述实施例所给出的参数。并且,所获取到的配置参数中可以仅包含一个参数,也可以包含两个或两个以上的参数。并且,所获取到的配置参数与所述待评估的Cache的应用需求相对应。
在具体实施中,所述模拟单元92对各配置参数调整的顺序不受限制。另外,在对每个配置参数的调整过程中,调整的次数不受限制,并且各个配置参数调整的次数可以相同,也可以不同。可以理解的是,调整的次数越多,所获得的平均访存时间也就越准确,但性能评估所需时间也就越大,故本领域人员可以根据实际情况进行设置。
在具体实施中,所述待评估的缓存包括至少一个存储区,所述至少一个存储区分别用于存储不同的信息,相应地,所述计算单元93可以包括:第一计算子单元931,获取子单元932,以及第二计算子单元933。其中:
所述第一计算子单元931,适于分别计算通过所述待评估的缓存访问各所述待访问数据时,所述各配置参数在不同数值下对应的各个所述存储区的访问时间及命中率;
所述获取子单元932适于获取所述各配置参数在不同数值下对应的所述待评估的缓存的失效开销;
所述第二计算子单元933适于根据所述各配置参数在不同数值下对应的所述待评估的缓存的命中率、访问时间及失效开销,计算得到所述各配置参数在不同数值下对应的所述待评估的缓存的平均访存时间。
在具体实施中,所述待评估的Cache通常存在多个配置参数,下面以待评估的Cache为M1,NVM为M2为例,对所述第二计算子单元933每个配置参数对应的平均访存时间的具体计算过程进行详细说明:
通常情况下,所述平均访存时间T=M1命中率*M1访问时间+M2命中率*M2访问时间,其中,M1命中率即MCU在待评估的Cache中命中待访问数据的概率,M1访问时间即MCU在待评估的Cache中访问数据的时间,M2命中率即MCU在NVM中命中待访问数据的概率,M2访问时间即MCU在NVM中访问数据的时间。
其中,M2命中率=1-M1命中率=M1缺失率,M2访问时间=M1访问时间+M2到M1调入数据的时间,而M2到M1调入数据的时间=失效开销T2,当所述待评估的Cache的配置参数及NVM确定时,失效开销T2也是确定的因此,平均访存时间T=M1访问时间+M1缺失率*失效开销T2。由此可以获得各个配置参数对应的平均访存时间。
在具体实施中,所述待评估的Cache通常包括一个以上的存储区,所述一个以上的存储区分别用于存储不同的信息,因此,M1访问时间及M1命中率或缺失率与所述待评估的Cache中各个存储区的访问时间或命中率相关。
以所述待评估的Cache包括K个存储区为例,K≥1,且K为整数,在获得某一配置参数在不同数值下对应的平均访存时间时,所述第一计算子单元931可以先分别计算通过所述待评估的Cache访问各所述待访问数据时,该配置参数在不同数值下对应的各个所述存储区的访问时间Ti及命中率Pi,i≤K,再由所述获取子单元932获取该配置参数在不同数值下对应的所述待评估的Cache的失效开销T2,最后由所述第二计算子单元933根据访问时间Ti、命中率Pi以及失效开销T2,计算得到该配置参数在不同数值下对应的所述待评估的Cache的平均访存时间T,即T=∑Ti+(1-∑Pi)*T2。
每获得一组所述待评估的Cache的配置参数,即按照上述的描述计算得到对应的平均访存时间。保持其它配置参数不变,调整其中一个配置参数时,即可获得被调整的配置参数在不同数值下对应的平均访存时间。由此可以获得各个配置参数在不同数值下对应的平均访存时间。
例如,在计算某一Cache块大小对应的平均访存时间T时,所述第一计算子单元931可以先获得MCU在所述待评估的Cache各个存储区的Ti及命中率Pi,再由所述获取子单元932获得所述待评估的Cache的失效开销T2,最后由所述第二计算子单元933根据T=∑Ti+(1-∑Pi)*T2,计算得到该Cache块大小对应的平均访存时间T。每次调整Cache块大小后,均按照上述实施例中的描述进行计算,即可获得Cache块大小在不同数值下对应的平均访存时间。
由于所述平均访存时间不仅与缓存的命中率相关,还与缓存的访问时间及失效开销等特征参数相关,故平均访存时间可以更加真实地反映缓存的真实性能,利用平均访存时间来评估缓存的性能的准确性也就更高。
在具体实施中,所述模拟单元92适于对所述待评估的缓存访问其中任一所述待访问数据进行模拟,直至所述待评估的缓存访问n个所述待访问数据。
在本发明的一实施例中,如图10所示,所述模拟单元92可以包括:地址划分子单元101,存储子单元102,第一处理子单元103以及第一执行子单元104。其中:
所述地址划分子单元101适于当获取到所述待评估的缓存的配置参数时,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息;
所述存储子单元包括:第一存储区1021,适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度;
所述第一处理子单元103适于根据所述存储地址对应的缓存块的地址信息,搜索第一存储区1021,并根据搜索结果判断所述存储地址在所述第一存储区1021中是否命中;
所述第一执行子单元104适于根据所述存储地址在所述第一存储区1021中是否命中的判断结果,获取相应的数据并返回。
在具体实施中,所述存储子单元还包括:第二存储区1022,适于存储与所述第一存储区1021所存储的存储地址对应的数据;
所述第一执行子单元104包括:第一执行模块1041,适于更新所述第一存储区1021中存储的信息,以及从所述第二存储区1022中读取对应数据并返回。
在具体实施中,所述存储子单元102还包括:第三存储区1023,适于存储预取的数据及对应的缓存块的地址信息;
所述第一执行子单元104包括:第一处理模块1042以及第二执行模块1043,其中:
所述第一处理模块1042适于当所述存储地址在所述第一存储区1021中未命中时,根据所述缓存块的地址信息搜索所述第三存储区1023中存储的信息;根据搜索结果判断所述存储地址在所述第三存储区1023中是否命中;
所述第二执行模块1043,适于根据所述存储地址在所述第三存储区1023中是否命中的判断结果,获取相应的数据并返回。
在具体实施中,所述第二执行模块1043包括:
第一执行子模块1043a,适于当所述存储地址在所述第三存储区1023中命中时,更新所述第一存储区1021及第二存储区1022中存储的信息,从所述第三存储区1023中读取对应的数据并返回;按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区1023中;
第二执行子模块1043b,适于当所述存储地址在所述第三存储区1023中未命中时,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区1023中存储的信息。
在具体实施中,所述第二执行子模块1043b适于当所述第一存储区1021的对应位置处均已存储相应的信息时,采用如下步骤更新所述第一存储区1021:
根据所述第一存储区1021中各缓存块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区1021的缓存块进行替换,将在所述第三存储区1023中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
在具体实施中,所述缓存块的地址信息包括:所述缓存块的标识信息及地址索引信息。
由上述内容可以看出,采用上述实施例中所述的模拟装置进行缓存性能评估时,可以计算得到待评估的缓存的各个配置参数对应的平均访存时间,进而根据各个配置参数的平均访存时间评估该缓存的性能,提高缓存性能评估的准确性。
在本发明的另一实施例中,参照图11,相对于图10示出的模拟单元的实施例,所述存储子单元102还包括:第四存储区1024,适于存储前一次在所述第一存储区1021中命中时所对应的缓存块的地址信息;
所述模拟单元92还包括:第二处理子单元105及第二执行子单元106。其中:
所述第二处理子单元105适于在所述根据所述存储地址对应的缓存块的地址信息,搜索第一存储区1021之前,根据所述存储地址对应的缓存块的地址信息搜索所述第四存储区1024,判断所述存储地址在所述第四存储区1024中是否命中;
所述第二执行子单元106适于当所述存储地址在所述第四存储区1024中命中时,从所述第二存储区1022中读取对应的数据并返回。
相应地,所述第一处理子单元103适于当所述存储地址在所述第四存储区1024中未命中时,搜索所述第一存储区1021,并根据搜索结果判断所述存储地址在所述第一存储区1021中是否命中。
需要说明的是,在具体实施中,所述模拟单元92可以存在多种结构,并不限于上述实施例中的结构。可以理解的是,所述模拟单元92的结构不同,对平均访存时间的影响也就不同。但无论所述模拟单元92的具体结构如何,均不够成对本发明的限制,且均在本发明的保护范围之内。
为了使本领域人员更加清楚、直观地理解和实现本发明,将不同模拟单元对平均访存时间T的影响进行了比对。
参照图10、11及12,以所述待评估的Cache应用在AES中,且被调整的参数为Flash的延迟时间Flash latency为例,所述待评估的Cache的配置参数为:Cache容量=1024byte,Cache块的大小=32byte,Cache的相联度为全相联,Flash位宽=32bit。曲线1为MCU直接从Flash中读取数据所需的平均访存时间曲线,曲线2、3及4为MCU经模拟单元获取待访问数据所需的平均访存时间曲线。其中,曲线2为模拟单元中设置第一执行子模块1043a,但未设置第四存储区1024时,对应的平均访存时间曲线;曲线3为模拟单元中未设置第一执行子模块1043a、第一存储区1021、第二存储区1022及第三存储区1023,仅设置有第四存储区1024时,所对应的平均访存时间曲线;曲线4为模拟单元中同时设置有第一执行子模块1043a、第一存储区1021、第二存储区1022、第三存储区1023及第四存储区1024时,所对应的平均访存时间曲线。
从图12中可以看出,在Flash的延迟时间相同的情况下,曲线1对应的平均访存时间<曲线2对应的平均访存时间<曲线3对应的平均访存时间<曲线4对应的平均访存时间。也就是说,应用本发明实施例中的模拟单元可以减小MCU访问数据时所需的平均访存时间,并且,调整模拟单元92的结构,可以对平均访存时间产生一定的影响,尤其第四存储区1024的设置,使得MCU访问数据时所需的平均访存时间最小。
由上述内容可以看出,采用上述实施例中所述的模拟装置进行缓存性能评估时,可以计算得到待评估的缓存的各个配置参数所对应的平均访存时间,进而根据缓存的平均访存时间评估该缓存的性能,提高缓存性能评估的准确性。另外,相对于图10中示出的缓存模拟装置,可以有效减少第一存储区及第二存储区的读取次数,降低缓存模拟的功耗。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (20)
1.一种缓存性能的评估方法,其特征在于,包括:
获取n个待访问数据的存储地址,n为自然数;
调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据,分别获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;
将所述各配置参数在不同数值下对应的平均访存时间作为评估结果并输出。
2.如权利要求1所述的缓存性能的评估方法,其特征在于,所述模拟所述待评估的缓存访问各所述待访问数据,包括:
采用如下步骤对所述待评估的缓存访问其中任一所述待访问数据进行模拟,直至所述待评估的缓存访问n个所述待访问数据:
当获取到所述待评估的缓存的配置参数时,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息;
根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,所述第一存储区适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度;根据搜索结果判断所述存储地址在所述第一存储区中是否命中;
根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回。
3.如权利要求2所述的缓存性能的评估方法,其特征在于,所述根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回,包括:
当所述存储地址在所述第一存储区中命中时,更新所述第一存储区中存储的信息,以及从第二存储区中读取对应数据并返回,其中,所述第二存储区适于存储与所述第一存储区所存储的存储地址对应的数据。
4.如权利要求3所述的缓存性能的评估方法,其特征在于,所述根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回,包括:
当所述存储地址在所述第一存储区中未命中时,根据所述缓存块的地址信息搜索第三存储区中存储的信息,所述第三存储区适于存储预取的数据及对应的缓存块的地址信息;根据搜索结果判断所述存储地址在所述第三存储区中是否命中;
根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回。
5.如权利要求4所述的缓存性能的评估方法,其特征在于,所述根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回,包括:
当所述存储地址在所述第三存储区中命中时,更新所述第一存储区及第二存储区中存储的信息,从所述第三存储区中读取对应的数据并返回;按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区中;
当所述存储地址在所述第三存储区中未命中时,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
6.如权利要求5所述的缓存性能的评估方法,其特征在于,当所述第一存储区的对应位置处均已存储相应的信息时,所述更新所述第一存储区包括:
根据所述第一存储器中各缓存块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区的缓存块进行替换,将在所述第三存储区中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
7.如权利要求4所述的缓存性能的评估方法,其特征在于,在所述根据所述存储地址对应的缓存块的地址信息,搜索第一存储区之前,所述方法还包括:
根据所述存储地址对应的缓存块的地址信息搜索第四存储区,所述第四存储区适于存储前一次在所述第一存储区中命中时所对应的缓存块的地址信息;并根据搜索结果判断所述存储地址在所述第四存储区中是否命中;
当所述存储地址在所述第四存储区中命中时,从所述第二存储区中读取对应的数据并返回,否则搜索所述第一存储区。
8.如权利要求2所述的缓存性能的评估方法,其特征在于,所述缓存块的地址信息包括:所述缓存块的标识信息及地址索引信息。
9.如权利要求1所述的缓存性能的评估方法,其特征在于,所述待评估的缓存包括至少一个存储区,所述至少一个存储区分别用于存储不同的信息;
所述获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间,包括:
分别计算通过所述待评估的缓存访问各所述待访问数据时,所述各配置参数在不同数值下对应的各个所述存储区的访问时间及命中率;
获取所述各配置参数在不同数值下对应的所述待评估的缓存的失效开销;
根据所述各配置参数在不同数值下对应的所述待评估的缓存的命中率、访问时间及失效开销,计算得到所述各配置参数在不同数值下对应的所述待评估的缓存的平均访存时间。
10.如权利要求1所述的缓存性能的评估方法,其特征在于,所述待评估的缓存的配置参数包括:所述待评估的缓存的特征参数以及影响所述待评估的缓存性能的系统参数。
11.一种缓存性能的评估装置,其特征在于,包括:
获取单元,适于获取n个待访问数据的存储地址,n为自然数;
模拟单元,适于调整待评估的缓存的各配置参数,模拟所述待评估的缓存访问各所述待访问数据;
计算单元,适于根据所述模拟子单元的模拟过程,获得访问各所述待访问数据时,所述各配置参数在不同数值下对应的平均访存时间;
评估单元,适于将所述各配置参数在不同数值下访问各所述待访问数据时的平均访存时间作为评估结果并输出。
12.如权利要求11所述的缓存性能的评估装置,其特征在于,所述模拟单元适于对所述待评估的缓存访问其中任一所述待访问数据进行模拟,直至所述待评估的缓存访问n个所述待访问数据;所述模拟单元包括:
地址划分子单元,适于当获取到所述待评估的缓存的配置参数时,对所述存储地址进行划分,获得所述存储地址对应的缓存块的地址信息;
存储子单元,包括第一存储区,所述第一存储区适于存储存储地址的标识信息以及对应的使用频度信息,所述第一存储区所存储的存储地址的使用频度均大于预设频度;
第一处理子单元,适于根据所述存储地址对应的缓存块的地址信息,搜索第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中;
第一执行子单元,适于根据所述存储地址在所述第一存储区中是否命中的判断结果,获取相应的数据并返回。
13.如权利要求12所述的缓存性能的评估装置,其特征在于,所述存储子单元还包括:第二存储区,适于存储与所述第一存储区所存储的存储地址对应的数据;
所述第一执行子单元包括:第一执行模块,适于更新所述第一存储区中存储的信息,以及从所述第二存储区中读取对应数据并返回。
14.如权利要求13所述的缓存性能的评估装置,其特征在于,所述存储子单元还包括:第三存储区,适于存储预取的数据及对应的缓存块的地址信息;
所述第一执行子单元包括:第一处理模块以及第二执行模块,所述第一处理模块适于当所述存储地址在所述第一存储区中未命中时,根据所述缓存块的地址信息搜索所述第三存储区中存储的信息;根据搜索结果判断所述存储地址在所述第三存储区中是否命中;所述第二执行模块,适于根据所述存储地址在所述第三存储区中是否命中的判断结果,获取相应的数据并返回。
15.如权利要求14所述的缓存性能的评估装置,其特征在于,所述第二执行模块包括:
第一执行子模块,适于当所述存储地址在所述第三存储区中命中时,更新所述第一存储区及第二存储区中存储的信息,从所述第三存储区中读取对应的数据并返回;按照预设顺序从NVM中进行数据预取,并将预取到的数据存储在所述第三存储区中;
第二执行子模块,适于当所述存储地址在所述第三存储区中未命中时,从所述NVM中读取对应的数据并返回,以及更新所述第三存储区中存储的信息。
16.如权利要求15所述的缓存性能的评估装置,其特征在于,所述第二执行子模块适于当所述第一存储区的对应位置处均已存储相应的信息时,采用如下步骤更新所述第一存储区:
根据所述第一存储区中各缓存块的使用频度信息,按照预先获取到的替换算法,对所述第一存储区的缓存块进行替换,将在所述第三存储区中命中的缓存块的标识信息以及对应的使用频度信息写入至被替换的位置。
17.如权利要求14所述的缓存性能的评估装置,其特征在于,
所述存储子单元还包括:第四存储区,适于存储前一次在所述第一存储区中命中时所对应的缓存块的地址信息;
所述模拟单元还包括:第二处理子单元及第二执行子单元,其中:
所述第二处理子单元,适于在所述根据所述存储地址对应的缓存块的地址信息,搜索第一存储区之前,根据所述存储地址对应的缓存块的地址信息搜索所述第四存储区,判断所述存储地址在所述第四存储区中是否命中;
所述第二执行子单元,适于当所述存储地址在所述第四存储区中命中时,从所述第二存储区中读取对应的数据并返回;
所述第一处理子单元适于当所述存储地址在所述第四存储区中未命中时,搜索所述第一存储区,并根据搜索结果判断所述存储地址在所述第一存储区中是否命中。
18.如权利要求12所述的缓存性能的评估装置,其特征在于,所述缓存块的地址信息包括:所述缓存块的标识信息及地址索引信息。
19.如权利要求11所述的缓存性能的评估装置,其特征在于,所述待评估的缓存包括至少一个存储区,所述至少一个存储区分别用于存储不同的信息;
所述计算单元包括:
第一计算子单元,适于分别计算通过所述待评估的缓存访问各所述待访问数据时,所述各配置参数在不同数值下对应的各个所述存储区的访问时间及命中率;
获取子单元,适于获取所述各配置参数在不同数值下对应的所述待评估的缓存的失效开销;
第二计算子单元,适于根据所述各配置参数在不同数值下对应的所述待评估的缓存的命中率、访问时间及失效开销,计算得到所述各配置参数在不同数值下对应的所述待评估的缓存的平均访存时间。
20.如权利要求11所述的缓存性能的评估装置,其特征在于,所述待评估的缓存的配置参数包括:所述待评估的缓存的特征参数以及影响所述待评估的缓存性能的系统参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169855.6A CN107229575A (zh) | 2016-03-23 | 2016-03-23 | 缓存性能的评估方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169855.6A CN107229575A (zh) | 2016-03-23 | 2016-03-23 | 缓存性能的评估方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107229575A true CN107229575A (zh) | 2017-10-03 |
Family
ID=59931681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610169855.6A Withdrawn CN107229575A (zh) | 2016-03-23 | 2016-03-23 | 缓存性能的评估方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229575A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158578A (zh) * | 2018-11-08 | 2020-05-15 | 浙江宇视科技有限公司 | 存储空间管理方法及装置 |
CN112416820A (zh) * | 2020-11-04 | 2021-02-26 | 国网山东省电力公司信息通信公司 | 一种数据包分类存储方法及系统 |
CN112732545A (zh) * | 2021-01-22 | 2021-04-30 | 中电海康无锡科技有限公司 | 一种mcu中 flash cache性能的测试方法 |
CN112825058A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 处理器性能评估方法及装置 |
CN113778912A (zh) * | 2021-08-25 | 2021-12-10 | 深圳市中科蓝讯科技股份有限公司 | cache映射架构动态调整方法及cache控制器 |
WO2022105591A1 (zh) * | 2020-11-20 | 2022-05-27 | 上海连尚网络科技有限公司 | 缓存服务器性能测试方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499382A (zh) * | 2002-11-05 | 2004-05-26 | 华为技术有限公司 | 廉价冗余磁盘阵列系统中高效高速缓存的实现方法 |
WO2010113203A1 (en) * | 2009-03-30 | 2010-10-07 | Hitachi, Ltd. | Information processing system, information processing methods and programs |
CN103455364A (zh) * | 2013-09-05 | 2013-12-18 | 北京航空航天大学 | 一种多核环境并行程序Cache性能在线获取系统及方法 |
CN105094686A (zh) * | 2014-05-09 | 2015-11-25 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
-
2016
- 2016-03-23 CN CN201610169855.6A patent/CN107229575A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499382A (zh) * | 2002-11-05 | 2004-05-26 | 华为技术有限公司 | 廉价冗余磁盘阵列系统中高效高速缓存的实现方法 |
WO2010113203A1 (en) * | 2009-03-30 | 2010-10-07 | Hitachi, Ltd. | Information processing system, information processing methods and programs |
CN103455364A (zh) * | 2013-09-05 | 2013-12-18 | 北京航空航天大学 | 一种多核环境并行程序Cache性能在线获取系统及方法 |
CN105094686A (zh) * | 2014-05-09 | 2015-11-25 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
Non-Patent Citations (3)
Title |
---|
张怀宁等: "《互联网技术》", 30 August 2002 * |
马娜等: "磁盘阵列性能测试工具研究", 《计算机工程与应用》 * |
马娜等: "磁盘阵列性能测试研究", 《计算机工程与应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158578A (zh) * | 2018-11-08 | 2020-05-15 | 浙江宇视科技有限公司 | 存储空间管理方法及装置 |
CN112825058A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 处理器性能评估方法及装置 |
CN112416820A (zh) * | 2020-11-04 | 2021-02-26 | 国网山东省电力公司信息通信公司 | 一种数据包分类存储方法及系统 |
CN112416820B (zh) * | 2020-11-04 | 2022-05-27 | 国网山东省电力公司信息通信公司 | 一种数据包分类存储方法及系统 |
WO2022105591A1 (zh) * | 2020-11-20 | 2022-05-27 | 上海连尚网络科技有限公司 | 缓存服务器性能测试方法、装置、设备和介质 |
CN112732545A (zh) * | 2021-01-22 | 2021-04-30 | 中电海康无锡科技有限公司 | 一种mcu中 flash cache性能的测试方法 |
CN113778912A (zh) * | 2021-08-25 | 2021-12-10 | 深圳市中科蓝讯科技股份有限公司 | cache映射架构动态调整方法及cache控制器 |
CN113778912B (zh) * | 2021-08-25 | 2024-05-07 | 深圳市中科蓝讯科技股份有限公司 | cache映射架构动态调整方法及cache控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229575A (zh) | 缓存性能的评估方法及装置 | |
US11119694B2 (en) | Solid-state drive control device and learning-based solid-state drive data access method | |
Irazoqui et al. | Systematic reverse engineering of cache slice selection in Intel processors | |
Shevgoor et al. | Efficiently prefetching complex address patterns | |
CN104133780B (zh) | 一种跨页预取方法、装置及系统 | |
CN105701033B (zh) | 取决于模式而可动态配置的高速缓存存储器 | |
US9304919B2 (en) | Detecting multiple stride sequences for prefetching | |
US9223705B2 (en) | Cache access arbitration for prefetch requests | |
Abel et al. | Reverse engineering of cache replacement policies in intel microprocessors and their evaluation | |
CN109783399B (zh) | 一种动态可重构处理器的数据缓存预取方法 | |
US20060107025A1 (en) | Mechanism and method for determining stack distance including spatial locality of running software | |
JP2013520756A (ja) | データ格納デバイスへのアクセスの空間分布に基づくキャッシュ | |
CN108509723A (zh) | 基于人工神经网络的LRU Cache预取机制性能收益评估方法 | |
Awad et al. | Stm: Cloning the spatial and temporal memory access behavior | |
CN104021226B (zh) | 预取规则的更新方法及装置 | |
CN105359142B (zh) | 哈希连接方法和装置 | |
CN110018811A (zh) | Cache数据处理方法以及Cache | |
CN107562806A (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
CN109491619A (zh) | 缓存数据处理方法、装置和系统 | |
CN107229574A (zh) | 缓存及其控制方法 | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
US7103517B2 (en) | Experimental design and statistical modeling tool for workload characterization | |
CN103514107B (zh) | 高性能数据缓存系统和方法 | |
CN107085545A (zh) | 基于Cache的AES算法的安全评估方法和系统 | |
CN108874690A (zh) | 数据预取的实现方法和处理器 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20171003 |
|
WW01 | Invention patent application withdrawn after publication |