CN106933749A - 应用于缓存验证系统的地址随机方法和装置 - Google Patents
应用于缓存验证系统的地址随机方法和装置 Download PDFInfo
- Publication number
- CN106933749A CN106933749A CN201511030234.1A CN201511030234A CN106933749A CN 106933749 A CN106933749 A CN 106933749A CN 201511030234 A CN201511030234 A CN 201511030234A CN 106933749 A CN106933749 A CN 106933749A
- Authority
- CN
- China
- Prior art keywords
- address
- cache
- data
- caching
- bit address
- 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.)
- Granted
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
-
- 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/10—Address translation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
本发明公开了一种应用于缓存验证系统的地址随机方法和装置,其中,该方法包括以下步骤:将从处理器获取到的虚拟内存地址转换为物理内存地址;确定高速缓存的缓存结构信息;根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据;基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合;基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合;判断缓存标记位地址集合中是否存在相同的缓存标记位地址;若不存在,则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合。本发明的实施例,能够在保证高速缓存正常工作的基础上,提高高速缓存验证的效率。
Description
技术领域
本发明涉及缓存验证领域,特别涉及一种应用于缓存验证系统的地址随机方法和装置。
背景技术
在计算机系统中寄存器速度快、容量小、成本高,内存速度慢、容量大、成本低,为了弥补寄存器与内存之间的巨大速度差距,人们在访存局部性原理基础上发明了高速缓存。
在高速缓存中,存放着常用的存储器的数据,由于高速缓存的容量比主存要小,因此在设计时需要选择主存的子集存放在高速缓存中。在处理器尝试访问数据时会首先检查高速缓存的数据。如果高速缓存命中,那么处理器直接使用高速缓存中的数据。如果在高速缓中未查询到该数据,处理器会从主存中获得对应的数据,并将主存中的数据放到高速缓存中以便以后使用。由于高速缓存的容量有限,在将数据放到高速缓存的过程中,如果高速缓存中的容量已满,为了放置新数据,高速缓存必须替换旧数据。
在访问高速缓存的过程中,需要对物理内存地址进行验证,相关技术中,在现有的缓存随机验证时候,随机方案就是以验证平台在高速缓存支持的地址范围内任意做随机,因此造成高速缓证效率低下,以及出现缓存缺失和缓存替换率较低。然而高速缓存验证时候由于处理器支持的物理地址范围较大。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种应用于缓存验证系统的地址随机方法,该方法能够在保证高速缓存正常工作的基础上,提高高速缓存验证的效率。
本发明的第二目的在于提出一种应用于缓存验证系统的地址随机装置。
为实现上述目的,本发明第一方面实施例提出了一种应用于缓存验证系统的地址随机方法,包括以下步骤:将从处理器获取到的虚拟内存地址转换为物理内存地址;确定高速缓存的缓存结构信息,其中,所述缓存结构信息由缓存标记位、缓存索引位和字节偏移位组成;根据所述缓存结构信息对所述物理内存地址进行拆分,以生成所述物理内存地址的标记位数据、索引数据和字节偏移数据;基于所述缓存标记位,对所述索引数据进行随机,以生成缓存索引位地址集合,其中,所述缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的;基于所述缓存索引位,对所述标记位数据进行随机,以生成缓存标记位地址集合;判断所述缓存标记位地址集合中是否存在相同的缓存标记位地址;若不存在,则根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,其中,所述物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
根据本发明实施例的应用于缓存验证系统的地址随机方法,在将从处理器获取到的虚拟内存地址转换为物理内存地址之后,首先确定高速缓存的缓存结构信息,并根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据,然后基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,而后基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合,最后判断缓存标记位地址集合中是否存在相同的缓存标记位地址,若不存在,则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合。因此,该方法根据高速缓存的缓存结构对物理地址进行随机,并将所获得的物理地址集合提供给高速缓存验证系统,由此在保证高速缓存正常工作的基础上,提高了高速缓存验证的效率。
另外,根据本发明上述应用于缓存验证系统的地址随机方法还可以具有如下附加的技术特征:
在本发明的一个实施例中,在所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合之后,还包括:判断所述物理地址集合中是否存在缓存索引位地址相同的物理地址;若存在,则根据预设替换原则对所述高速缓存中的数据进行替换。
在本发明的一个实施例中,所述确定高速缓存的缓存结构信息,包括:根据预先保存的所述处理器与所述高速缓存的结构对应关系,确定所述高速缓存的缓存结构信息。
在本发明的一个实施例中,所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,包括:基于预设拼接规则,对所述缓存标记位地址和所述索引位地址和所述字节偏移数据进行拼接,以生成物理地址。
在本发明的一个实施例中,在所述物理内存地址位数为40位时,N为16至64之间的任一整数,M为51至128之间的任一整数。
在本发明的一个实施例中,在所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合之后,还包括:判断所述物理地址中是否存储有数据,若包含,则所述数据返回给所述处理器。
为实现上述目的,本发明第二方面实施例提出了一种应用于缓存验证系统的地址随机装置,包括:转换模块,用于将从处理器获取到的虚拟内存地址转换为物理内存地址;转换模块,用于将从处理器获取到的虚拟内存地址转换为物理内存地址;第一生成模块,用于根据所述缓存结构信息对所述物理内存地址进行拆分,以生成所述物理内存地址的标记位数据、索引数据和字节偏移数据;第二生成模块,用于基于所述缓存标记位,对所述索引数据进行随机,以生成缓存索引位地址集合,其中,所述缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的;第三生成模块,用于基于所述缓存索引位,对所述标记位数据进行随机,以生成缓存标记位地址集合;第一判断模块,用于判断所述缓存标记位地址集合中是否存在相同的缓存标记位地址;第四生成模块,用于若所述第一判断模块判断所述缓存标记位地址集合中不存在相同的缓存标记位地址,则根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,其中,所述物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
根据本发明实施例的应用于缓存验证系统的地址随机装置,首先通过转换模块将从处理器获取到的虚拟内存地址转换为物理内存地址,然后确定模块确定高速缓存的缓存结构信息,并且第一生成模块根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据,而后第二生成模块基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,并且第三生成模块基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合,最后第一判断模块判断缓存标记位地址集合中是否存在相同的缓存标记位地址,若不存在,第四生成模块则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合。因此,该装置根据高速缓存的缓存结构对物理地址进行随机,并将所获得的物理地址集合提供给高速缓存验证系统,由此在保证高速缓存正常工作的基础上,提高了高速缓存验证的效率。
上述应用于缓存验证系统的地址随机装置还可以具有如下附加的技术特征:
在本发明的一个实施例中,上述应用于缓存验证系统的地址随机装置还包括:第二判断模块,用于判断所述物理地址集合中是否存在缓存索引位地址相同的物理地址;替换模块,用于若所述第二判断模块判断所述物理地址集合中存在缓存索引位地址相同的物理地址,则根据预设替换原则对所述高速缓存中的数据进行替换。
在本发明的一个实施例中,所述确定模块,具体用于:根据预先保存的所述处理器与所述高速缓存的结构对应关系,确定所述高速缓存的缓存结构信息。
在本发明的一个实施例中,所述第四生成模块,具体用于:基于预设拼接规则,对所述缓存标记位地址和所述索引位地址和所述字节偏移数据进行拼接,以生成物理地址。
在本发明的一个实施例中,在所述物理内存地址位数为40位时,N为16至64之间的任一整数,M为51至128之间的任一整数。
在本发明的一个实施例中,上述应用于缓存验证系统的地址随机装置还包括:第三判断模块,用于判断所述物理地址中是否存储有数据,若包含,则所述数据返回给所述处理器。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是根据本发明一个实施例的应用于缓存验证系统的地址随机方法的流程图。
图2是根据本发明另一个实施例的应用于缓存验证系统的地址随机方法的流程图。
图3是根据本发明又一个实施例的应用于缓存验证系统的地址随机方法的流程图。
图4是根据本发明一个实施例的应用于缓存验证系统的地址随机装置的方框示意图。
图5是根据本发明另一个实施例的应用于缓存验证系统的地址随机装置的方框示意图。
图6是根据本发明又一个实施例的应用于缓存验证系统的地址随机装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图来描述根据本发明实施例提出的应用于缓存验证系统的地址随机方法和装置。
图1是根据本发明一个实施例的应用于缓存验证系统的地址随机方法的流程图。
如图1所示,该应用于缓存验证系统的地址随机方法包括以下步骤:
S1,将从处理器获取到的虚拟内存地址转换为物理内存地址。
具体地,根据处理器访问高速缓存的虚拟地址,产生物理内存地址,即将从处理器获取到的虚拟内存地址转换为物理内存地址。
S2,确定高速缓存的缓存结构信息,其中,缓存结构信息由缓存标记位、缓存索引位和字节偏移位组成。
具体而言,在本发明的一个实施例中,可根据预先保存的处理器与高速缓存的结构对应关系,确定高速缓存的缓存结构信息。
其中,预先保存的处理器与高速缓存的结构对应关系可以是厂商初始化保存的。
例如,处理器支持40bit的物理地址,高速缓存为8路组相连,其容量为1M,一个缓存行为1024bit。根据预先保存的处理器与高速缓存的结构对应关系可确定高速缓存的缓存结构中的缓存标记位(tag)为物理地址的第39到17位,缓存索引位(index)为物理地址的第16到7位,字节偏移位(byte offset)为物理地址的第6到0位。
S3,根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据。
S4,基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,其中,缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的。其中,第一预设随机函数可以根据实际情况进行标定。
其中,在本发明的一个实施例中,在物理内存地址位数为40位时,N为16至64之间的任一整数。
通常可将缓存索引位地址存在地址数组中,为了提高验证平台的验证效率,可限制存放缓存索引位地址数组的大小,具体而言,可预先将第一预设随机函数可随机出的整数进行限定,以使得通过该第一预设随机函数可以随机数一个位于限定的数字范围之内的整数,并通过该随机出的整数来限制存储缓存索引位地址数组的大小,即缓存索引位地址数组的大小为该随机出的整数。
S5,基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合。
其中,需要理解的是,上述对标记位数据进行随机可以是第二预设随机函数根据缓存索引位生成的标记位数据,其中第二预设随机函数可以是根据规范预先设定的函数。
其中,需要理解的是,该实施例中所说的规范可以根据实际情况自行建立的规范。
S6,判断缓存标记位地址集合中是否存在相同的缓存标记位地址。
S7,若不存在,则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合,其中,物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
其中,在本发明的一个实施例中,在物理内存地址位数为40位时,M为51至128之间的任一整数。
通常可将物理地址存在地址数组中,为了进一步提高验证平台的验证效率,可限制存放物理地址数组的大小,具体而言,可预先将第一预设随机函数可随机出的整数进行限定,以使得通过该第二预设随机函数可以随机数一个位于限定的数字范围之内的整数,并通过该随机出的整数来限制存储物理地址数组的大小,即物理地址数组的大小为该随机出的整数。
其中,需要理解的是,上述物理内存地址位数可表示物理地址位数,其中,物理地址的位数可以根据操作系统支持的位数进行标定。即,物理内存地址位数可以根据操作系统支持的位数进行标定。
在本发明的一个实施例中,根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合可包括,基于预设拼接规则,对缓存标记位地址和索引位地址和字节偏移数据进行拼接,以生成物理地址。
例如,缓存标记位地址集合内的缓存标记位地址,按照集合内的排布顺序依次提取,并与缓存索引位地址集合内随机提取的缓存索引位地址进行拼接,以便生成完整的物理地址,并存储在大小固定的保存物理地址的数组中。
其中,需要理解的是,该实施例中所说的数组中存放的物理地址结构信息中缓存标记位是不同,但缓存索引位是有可能相同的。
其中,需要理解的是,上述缓存标记位地址集合和上述物理地址集合的大小是一致的。
其中,需要理解的是,上述预设拼接规则可以是根据实际情况自行建立的规则。其中,该规则符合物理地址的规范。
其中,需要理解的是,上述物理地址可为存储在高速缓存中的CPU(Central ProcessingUnit,中央处理器)指令和数据,或者操作系统的指令、程序数据和地址指针等的映射地址。
例如,随机出物理地址的数组大小,其中,该物理地址的数组大小范围在128~51之间。随机出缓存索引地址的数组大小,其中,该缓存索引地址的数组大小范围在16~64之间。通过得到缓存索引地址的数组大小来限制缓存索引地址数组,其中,该缓存索引地址数组中存放的各个索引地址不相同。
将缓存索引地址数组中填写入缓存索引位地址其地址范围0~1023,其中,需要保证写入到数组中的数据不能有重复值。随机出缓存标记位(tag),缓存标记位(tag)地址的范围为0~8388607,并且在缓存标记位地址表中查询,如果查出缓存标记位(tag)没有相同项时,随机缓存索引地址数组,并从相应地址中取出index的数据。将缓存标记位(tag)、缓存索引位(index)和字节偏移位(byte offset)为物理地址。由于高速缓存的缓存行为1024bit,那么字节偏移位(byte offset)为7bit。
综上可以看出,相对于以高速缓存支持的地址范围内任意做随机的方式来说,该实施例根据高速缓存的缓存标记位和缓存索引位进行地址随机,并限制缓存索引位地址集合、缓存标记位地址集合和物理地址集合的大小,大大提高了随机到相同地址的概率。从而可提高高速缓存验证的效率。
例如,假设高速缓存所支持物理地址的位数为0~240,缓存标记位的位数为0~223,缓存索引位的位数为0~210,以现有的以高速缓存的高速缓存支持的地址范围内任意做随机的方式来说,随机到相同地址的概率为1/240。
再例如,就验证高速缓存平台随机地址命中缓存的概率来说。在对该地址范围不做相应约束的情况下,在缓存验证平台做地址随机时,至少出现两次相同地址的概率为1/2n*2。其中,n表示高速缓存所支持的物理地址的位数。
然而,在使用上述应用于缓存验证系统的地址随机方法的时候,验证平台中使用的物理地址是存储在空间大小为C的数组中,随机到相同地址的概率为1/C2,其中,C的大小远小于2n。
由此,就对高速缓存验证平台中随机到的地址命中缓存率来说,上述对址范围不做相应约束的随机策略命中的概率远小于使用上述应用于缓存验证系统的地址随机方法中命中的概率。
其中,需要理解的是,该实施例中所说的命中的概率为随机到相同地址的概率。
在本发明的一个实施例中,如图2所示,在根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合之后,还可包括:
S8,判断物理地址集合中是否存在缓存索引位地址相同的物理地址。
在本发明的实施例中,如果物理地址集合中存在缓存索引位地址相同的物理地址,则表明上述缓存索引位地址相同的物理地址所要存储在高速缓存中的数据来源可能是同一来源。
例如,就验证高速缓存平台随机地址引起缓存替换的概率来说,在高速缓存中,只有在缓存标记位不相同和缓存索引位相同的情况下才可能有缓存替换的情况发生。
在原有的缓存随机验证中,对地址范围不进行相应约束,出现上述情况的概率及其低。
然而根据上述应用于缓存验证系统的地址随机方法,在验证平台中使用的物理地址存储空间大小远小于原有的空间范围,在物理地址存储数组中存放的缓存标记位只是原有缓存标记位范围的一个子集,因此提高了缓存随机标记位出现不相同的概率。同时在物理地址存储数组中存放的缓存索引位只是原有缓存索引位范围的一个子集,因此提高了缓存随机索引位相同的概率。
由此,出现如上情况的概率比原有随机策略提高了好几个量级。从而可以提高缓存中出现替换的概率。
S9,若存在,则根据预设替换原则对高速缓存中的数据进行替换。
其中,需要理解的是,上述预设替换原则可以是国际标准的高速缓存中数据替换的原则。
在本发明的另一个实施例中,如图3所示,在根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合之后,还可包括:
S10,判断物理地址中是否存储有数据,若包含,则数据返回给处理器。
具体地,当处理器读取高速缓存数据时,根据物理地址(物理内存地址)与高速缓存中的物理地址集合进行检索,如果高速缓存中的物理地址集合中包括该物理地址,则根据该物理地址获取存储在高速缓存中的相关数据。
根据本发明实施例的应用于缓存验证系统的地址随机方法,在将从处理器获取到的虚拟内存地址转换为物理内存地址之后,首先确定高速缓存的缓存结构信息,并根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据,然后基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,而后基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合,最后判断缓存标记位地址集合中是否存在相同的缓存标记位地址,若不存在,则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合。因此,该方法根据高速缓存的缓存结构对物理地址进行随机,并将所获得的物理地址集合提供给高速缓存验证系统,由此在保证高速缓存正常工作的基础上,提高了高速缓存验证的效率。
为了实现上述实施例,本发明还提出一种应用于缓存验证系统的地址随机装置。
图4是根据本发明一个实施例的应用于缓存验证系统的地址随机装置的方框示意图。
如图4所示,该应用于缓存验证系统的地址随机装置包括转换模块100、确定模块200、第一生成模块300、第二生成模块400、第三生成模块500、第一判断模块600和第四生成模块700。
具体地,转换模块100用于将从处理器获取到的虚拟内存地址转换为物理内存地址。
更具体地,转换模块100根据处理器访问高速缓存的虚拟地址,产生物理内存地址,即将从处理器获取到的虚拟内存地址转换为物理内存地址。
确定模块200用于确定高速缓存的缓存结构信息,其中,缓存结构信息由缓存标记位、缓存索引位和字节偏移位组成。
具体而言,在本发明的一个实施例中,确定模块200具体用于根据预先保存的处理器与高速缓存的结构对应关系,确定高速缓存的缓存结构信息。
其中,预先保存的处理器与高速缓存的结构对应关系可以是厂商初始化保存的。
例如,处理器支持40bit的物理地址,高速缓存为8路组相连,其容量为1M,一个缓存行为1024bit。确定模块200根据预先保存的处理器与高速缓存的结构对应关系可确定高速缓存的缓存结构中的缓存标记位(tag)为物理地址的第39到17位,缓存索引位(index)为物理地址的第16到7位,字节偏移位(byte offset)为物理地址的第6到0位。
第一生成模块300用于根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据。
第二生成模块400用于基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,其中,缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的。
其中,在本发明的一个实施例中,在物理内存地址位数为40位时,N为16至64之间的任一整数。
通常可将缓存索引位地址存在地址数组中,第二生成模块400为了提高验证平台的验证效率,可限制存放缓存索引位地址数组的大小,具体而言,可预先将第一预设随机函数可随机出的整数进行限定,以使得通过该第一预设随机函数可以随机数一个位于限定的数字范围之内的整数,并通过该随机出的整数来限制存储缓存索引位地址数组的大小,即缓存索引位地址数组的大小为该随机出的整数。
第三生成模块500用于基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合。
其中,需要理解的是,上述对标记位数据进行随机可以是第二预设随机函数根据缓存索引位生成的标记位数据,其中第二预设随机函数可以是根据规范预先设定的函数。
其中,需要理解的是,该实施例中所说的规范可以根据实际情况自行建立的规范。
第一判断模块600用于判断缓存标记位地址集合中是否存在相同的缓存标记位地址。
第四生成模块700用于若第一判断模块判断缓存标记位地址集合中不存在相同的缓存标记位地址,则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合,其中,物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
其中,在本发明的一个实施例中,在物理内存地址位数为40位时,M为51至128之间的任一整数。
通常可将物理地址存在地址数组中,第四生成模块700为了进一步提高验证平台的验证效率,可限制存放物理地址数组的大小,具体而言,可预先将第二预设随机函数可随机出的整数进行限定,以使得通过该第二预设随机函数可以随机数一个位于限定的数字范围之内的整数,并通过该随机出的整数来限制存储物理地址数组的大小,即物理地址数组的大小为该随机出的整数。
其中,需要理解的是,上述物理内存地址位数可表示物理地址位数,其中,物理地址的位数可以根据操作系统支持的位数进行标定。即,物理内存地址位数可以根据操作系统支持的位数进行标定。
在本发明的一个实施例中,第四生成模块700具体用于基于预设拼接规则,对缓存标记位地址和索引位地址和字节偏移数据进行拼接,以生成物理地址。
例如,缓存标记位地址集合内的缓存标记位地址,按照集合内的排布顺序依次提取,并与缓存索引位地址集合内随机提取的缓存索引位地址进行拼接,以便生成完整的物理地址,并存储在大小固定的保存物理地址的数组中。
其中,需要理解的是,该实施例中所说的数组中存放的物理地址结构信息中缓存标记位是不同,但缓存索引位是有可能相同的。
其中,需要理解的是,上述缓存标记位地址集合和上述物理地址集合的大小是一致的。
其中,需要理解的是,上述预设拼接规则可以是根据实际情况自行建立的规则。其中,该规则符合物理地址的规范。
其中,需要理解的是,上述物理地址可为存储在高速缓存中的CPU(Central ProcessingUnit,中央处理器)指令和数据,或者操作系统的指令、程序数据和地址指针等的映射地址。
例如,随机出物理地址的数组大小,其中,该物理地址的数组大小范围在128~51之间。随机出缓存索引地址的数组大小,其中,该缓存索引地址的数组大小范围在16~64之间。通过得到缓存索引地址的数组大小来限制缓存索引地址数组,其中,该缓存索引地址数组中存放的各个索引地址不相同。
将缓存索引地址数组中填写入缓存索引位地址其地址范围0~1023,其中,需要保证写入到数组中的数据不能有重复值。随机出缓存标记位(tag),缓存标记位(tag)地址的范围为0~8388607,并且在缓存标记位地址表中查询,如果查出缓存标记位(tag)没有相同项时,随机缓存索引地址数组,并从相应地址中取出index的数据。将缓存标记位(tag)、缓存索引位(index)和字节偏移位(byte offset)为物理地址。由于高速缓存的缓存行为1024bit,那么字节偏移位(byte offset)为7bit。
综上可以看出,相对于以高速缓存支持的地址范围内任意做随机的方式来说,该实施例根据高速缓存的缓存标记位和缓存索引位进行地址随机,并限制缓存索引位地址集合、缓存标记位地址集合和物理地址集合的大小,大大提高了随机到相同地址的概率。从而可提高高速缓存验证的效率。
例如,假设高速缓存所支持物理地址的位数为0~240,缓存标记位的位数为0~223,缓存索引位的位数为0~210,以现有的以高速缓存的高速缓存支持的地址范围内任意做随机的方式来说,随机到相同地址的概率为1/240。
再例如,就验证高速缓存平台随机地址命中缓存的概率来说。在对该地址范围不做相应约束的情况下,在缓存验证平台做地址随机时,至少出现两次相同地址的概率为1/2n*2。其中,n表示高速缓存所支持的物理地址的位数。
然而,在使用上述应用于缓存验证系统的地址随机装置的时候,验证平台中使用的物理地址是存储在空间大小为C的数组中,随机到相同地址的概率为1/C2,其中,C的大小远小于2n。
由此,就对高速缓存验证平台中随机到的地址命中缓存率来说,上述对址范围不做相应约束的随机策略命中的概率远小于使用上述应用于缓存验证系统的地址随机装置中命中的概率。
其中,需要理解的是,该实施例中所说的命中的概率为随机到相同地址的概率。
在本发明的一个实施例中,如图5所示,上述应用于缓存验证系统的地址随机装置还包括第二判断模块800和替换模块900。
具体地,第二判断模块800用于判断物理地址集合中是否存在缓存索引位地址相同的物理地址。
在本发明的实施例中,如果物理地址集合中存在缓存索引位地址相同的物理地址,则表明上述缓存索引位地址相同的物理地址所要存储在高速缓存中的数据来源可能是同一来源。
例如,就验证高速缓存平台随机地址引起缓存替换的概率来说,在高速缓存中,只有在缓存标记位不相同和缓存索引位相同的情况下才可能有缓存替换的情况发生。
在原有的缓存随机验证中,对地址范围不进行相应约束,出现上述情况的概率及其低。
然而根据上述应用于缓存验证系统的地址随机装置,在验证平台中使用的物理地址存储空间大小远小于原有的空间范围,在物理地址存储数组中存放的缓存标记位只是原有缓存标记位范围的一个子集,因此提高了缓存随机标记位出现不相同的概率。同时在物理地址存储数组中存放的缓存索引位只是原有缓存索引位范围的一个子集,因此提高了缓存随机索引位相同的概率。
由此,出现如上情况的概率比原有随机策略提高了好几个量级。从而可以提高缓存中出现替换的概率。
替换模块900用于若第二判断模块判断物理地址集合中存在缓存索引位地址相同的物理地址,则根据预设替换原则对高速缓存中的数据进行替换。
其中,需要理解的是,上述预设替换原则可以是国际标准的高速缓存中数据替换的原则。
在本发明的另一个实施例中,如图6所示,上述应用于缓存验证系统的地址随机装置还包括,第三判断模块1000用于判断物理地址中是否存储有数据,若包含,则数据返回给处理器。
具体地,当处理器读取高速缓存数据时,第三判断模块1000根据物理地址(物理内存地址)与高速缓存中的物理地址集合进行检索,如果高速缓存中的物理地址集合中包括该物理地址,则根据该物理地址获取存储在高速缓存中的相关数据。
根据本发明实施例的应用于缓存验证系统的地址随机装置,首先通过转换模块将从处理器获取到的虚拟内存地址转换为物理内存地址,然后确定模块确定高速缓存的缓存结构信息,并且第一生成模块根据缓存结构信息对物理内存地址进行拆分,以生成物理内存地址的标记位数据、索引数据和字节偏移数据,而后第二生成模块基于缓存标记位,对索引数据进行随机,以生成缓存索引位地址集合,并且第三生成模块基于缓存索引位,对标记位数据进行随机,以生成缓存标记位地址集合,最后第一判断模块判断缓存标记位地址集合中是否存在相同的缓存标记位地址,若不存在,第四生成模块则根据缓存标记位地址集合、缓存索引位地址集合和字节偏移数据生成物理地址集合。因此,该装置根据高速缓存的缓存结构对物理地址进行随机,并将所获得的物理地址集合提供给高速缓存验证系统,由此在保证高速缓存正常工作的基础上,提高了高速缓存验证的效率。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种应用于缓存验证系统的地址随机方法,其特征在于,包括以下步骤:
将从处理器获取到的虚拟内存地址转换为物理内存地址;
确定高速缓存的缓存结构信息,其中,所述缓存结构信息由缓存标记位、缓存索引位和字节偏移位组成;
根据所述缓存结构信息对所述物理内存地址进行拆分,以生成所述物理内存地址的标记位数据、索引数据和字节偏移数据;
基于所述缓存标记位,对所述索引数据进行随机,以生成缓存索引位地址集合,其中,所述缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的;
基于所述缓存索引位,对所述标记位数据进行随机,以生成缓存标记位地址集合;
判断所述缓存标记位地址集合中是否存在相同的缓存标记位地址;
若不存在,则根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,其中,所述物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
2.如权利要求1所述的应用于缓存验证系统的地址随机方法,其特征在于,在所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合之后,还包括:
判断所述物理地址集合中是否存在缓存索引位地址相同的物理地址;
若存在,则根据预设替换原则对所述高速缓存中的数据进行替换。
3.如权利要求1所述的应用于缓存验证系统的地址随机方法,其特征在于,所述确定高速缓存的缓存结构信息,包括:
根据预先保存的所述处理器与所述高速缓存的结构对应关系,确定所述高速缓存的缓存结构信息。
4.如权利要求1所述的应用于缓存验证系统的地址随机方法,其特征在于,所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,包括:
基于预设拼接规则,对所述缓存标记位地址和所述索引位地址和所述字节偏移数据进行拼接,以生成物理地址。
5.如权利要求1所述的应用于缓存验证系统的地址随机方法,其特征在于,在所述物理内存地址位数为40位时,N为16至64之间的任一整数,M为51至128之间的任一整数。
6.如权利要求1所述的应用于缓存验证系统的地址随机方法,其特征在于,在所述根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合之后,还包括:
判断所述物理地址中是否存储有数据,若包含,则所述数据返回给所述处理器。
7.一种应用于缓存验证系统的地址随机装置,其特征在于,包括:
转换模块,用于将从处理器获取到的虚拟内存地址转换为物理内存地址;
确定模块,用于确定高速缓存的缓存结构信息,其中,所述缓存结构信息由缓存标记位、缓存索引位和字节偏移位组成;
第一生成模块,用于根据所述缓存结构信息对所述物理内存地址进行拆分,以生成所述物理内存地址的标记位数据、索引数据和字节偏移数据;
第二生成模块,用于基于所述缓存标记位,对所述索引数据进行随机,以生成缓存索引位地址集合,其中,所述缓存索引位地址集合中包含N个缓存索引位地址,其中,N为大于1的正整数,且N是由第一预设随机函数预先生成的;
第三生成模块,用于基于所述缓存索引位,对所述标记位数据进行随机,以生成缓存标记位地址集合;
第一判断模块,用于判断所述缓存标记位地址集合中是否存在相同的缓存标记位地址;
第四生成模块,用于若所述第一判断模块判断所述缓存标记位地址集合中不存在相同的缓存标记位地址,则根据所述缓存标记位地址集合、所述缓存索引位地址集合和所述字节偏移数据生成物理地址集合,其中,所述物理地址集合中包含M个物理地址,其中,M为大于1的正整数,且M是由第二预设随机函数预先生成的。
8.如权利要求7所述的应用于缓存验证系统的地址随机装置,其特征在于,还包括:
第二判断模块,用于判断所述物理地址集合中是否存在缓存索引位地址相同的物理地址;
替换模块,用于若所述第二判断模块判断所述物理地址集合中存在缓存索引位地址相同的物理地址,则根据预设替换原则对所述高速缓存中的数据进行替换。
9.如权利要求7所述的应用于缓存验证系统的地址随机装置,其特征在于,所述确定模块,具体用于:
根据预先保存的所述处理器与所述高速缓存的结构对应关系,确定所述高速缓存的缓存结构信息。
10.如权利要求7所述的应用于缓存验证系统的地址随机装置,其特征在于,所述第四生成模块,具体用于:
基于预设拼接规则,对所述缓存标记位地址和所述索引位地址和所述字节偏移数据进行拼接,以生成物理地址。
11.如权利要求7所述的应用于缓存验证系统的地址随机装置,其特征在于,在所述物理内存地址位数为40位时,N为16至64之间的任一整数,M为51至128之间的任一整数。
12.如权利要求7所述的应用于缓存验证系统的地址随机装置,其特征在于,还包括:
第三判断模块,用于判断所述物理地址中是否存储有数据,若包含,则所述数据返回给所述处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030234.1A CN106933749B (zh) | 2015-12-31 | 2015-12-31 | 应用于缓存验证系统的地址随机方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030234.1A CN106933749B (zh) | 2015-12-31 | 2015-12-31 | 应用于缓存验证系统的地址随机方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933749A true CN106933749A (zh) | 2017-07-07 |
CN106933749B CN106933749B (zh) | 2020-10-13 |
Family
ID=59444328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511030234.1A Active CN106933749B (zh) | 2015-12-31 | 2015-12-31 | 应用于缓存验证系统的地址随机方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933749B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428749A (zh) * | 2022-04-07 | 2022-05-03 | 沐曦科技(北京)有限公司 | 用于验证cache的检测器 |
CN117687929A (zh) * | 2024-02-02 | 2024-03-12 | 北京壁仞科技开发有限公司 | 验证高速缓存的请求生成器、方法、设备、介质、程序 |
CN117687929B (zh) * | 2024-02-02 | 2024-05-10 | 北京壁仞科技开发有限公司 | 验证高速缓存的请求生成器、方法、设备、介质、程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715427A (en) * | 1996-01-26 | 1998-02-03 | International Business Machines Corporation | Semi-associative cache with MRU/LRU replacement |
CN101034412A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种信息存储的方法、信息查找的方法及引擎装置 |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
CN104657285A (zh) * | 2013-11-16 | 2015-05-27 | 上海芯豪微电子有限公司 | 一种数据缓存系统和方法 |
-
2015
- 2015-12-31 CN CN201511030234.1A patent/CN106933749B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715427A (en) * | 1996-01-26 | 1998-02-03 | International Business Machines Corporation | Semi-associative cache with MRU/LRU replacement |
CN101034412A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种信息存储的方法、信息查找的方法及引擎装置 |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
CN104657285A (zh) * | 2013-11-16 | 2015-05-27 | 上海芯豪微电子有限公司 | 一种数据缓存系统和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428749A (zh) * | 2022-04-07 | 2022-05-03 | 沐曦科技(北京)有限公司 | 用于验证cache的检测器 |
CN117687929A (zh) * | 2024-02-02 | 2024-03-12 | 北京壁仞科技开发有限公司 | 验证高速缓存的请求生成器、方法、设备、介质、程序 |
CN117687929B (zh) * | 2024-02-02 | 2024-05-10 | 北京壁仞科技开发有限公司 | 验证高速缓存的请求生成器、方法、设备、介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN106933749B (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318434B2 (en) | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application | |
US20230153251A1 (en) | Cache Memory That Supports Tagless Addressing | |
CN105830022B (zh) | 访问文件的方法和装置 | |
US7636810B2 (en) | Method, system, and apparatus for memory compression with flexible in-memory cache | |
CN107273042A (zh) | 重复删除dram系统算法架构 | |
CN104809179B (zh) | 访问哈希表的装置和方法 | |
CN111602377B (zh) | 高速缓存中资源调整方法、数据访问方法及装置 | |
US20080209112A1 (en) | High Endurance Non-Volatile Memory Devices | |
CN105069379B (zh) | 一种基于写计数器的存储器完整性保护方法 | |
CN107949833A (zh) | 交换机中的地址缓存 | |
CN106030549B (zh) | 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统 | |
CN107273397A (zh) | 用于有效的存储器在线重复删除应用的虚拟桶多哈希表 | |
JPH07104816B2 (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
CN102662869A (zh) | 虚拟机中的内存访问方法和装置及查找器 | |
CN112558889A (zh) | 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置 | |
CN101292227B (zh) | 具有高访问存储带宽的高速缓冲存储器 | |
CN109446835A (zh) | 数据访问控制方法、装置及设备 | |
CN110297787A (zh) | I/o设备访问内存的方法、装置及设备 | |
CN105260332A (zh) | 一种对cpld数据包进行有序存储的方法及系统 | |
CN108139989A (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
US6324632B1 (en) | Processing a data stream | |
CN108665939A (zh) | 为存储器提供ecc的方法与装置 | |
CN106933749A (zh) | 应用于缓存验证系统的地址随机方法和装置 | |
CN101593158A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180921 Address after: 100085 west 4 Street 5, five street, Haidian District, Beijing. Applicant after: Beijing Guorui Zhongshu Technology Co.,Ltd. Applicant after: No. 14 Inst., China Electronic Science & Technology Group Corp. Address before: 100085 Haidian District, Beijing, Shanghai Information Road 5 Street high Li two thousand science and Technology Building 4 story West. Applicant before: Beijing Guorui Zhongshu Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |