CN110990299B - 非规整组相联cache组地址映射方法 - Google Patents

非规整组相联cache组地址映射方法 Download PDF

Info

Publication number
CN110990299B
CN110990299B CN202010137427.1A CN202010137427A CN110990299B CN 110990299 B CN110990299 B CN 110990299B CN 202010137427 A CN202010137427 A CN 202010137427A CN 110990299 B CN110990299 B CN 110990299B
Authority
CN
China
Prior art keywords
group
cache
address
main memory
groups
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
Application number
CN202010137427.1A
Other languages
English (en)
Other versions
CN110990299A (zh
Inventor
杨思博
朱杰
周海斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
Original Assignee
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu Huachuang Micro System Co ltd, CETC 14 Research Institute filed Critical Jiangsu Huachuang Micro System Co ltd
Priority to CN202010137427.1A priority Critical patent/CN110990299B/zh
Publication of CN110990299A publication Critical patent/CN110990299A/zh
Application granted granted Critical
Publication of CN110990299B publication Critical patent/CN110990299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

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组数R,表示为G0,G1…,GR‑1,其中,cache的组数为非2的整次幂;主存的容量为Q块,对主存进行分组,分为g组,当Q能被R整除时,主存每一组的块数等于cache的分组数,将主存每一组内的块进行重新编号,分别表示为b0,b1,…bR‑1;当Q不能被R整除时,主存分组中有g‑1组的块数等于cache的分组数,将这些组内的块进行重新编号,分别表示为b0,b1,…bR‑1,另一组的块数等于Q除以R的余数,对该组内的块依次编号b0,b1,…bREM(Q/R)‑1;主存与cache之间进行映射,将主存中每组中的块拷贝至与之编号相同的组内。采用本发明中的方法将大大减少程序中连续访问cache中同一组或过度使用同一组的机率。

Description

非规整组相联cache组地址映射方法
技术领域
本发明涉及存储技术领域,尤其涉及一种非规整组相联cache 组地址映射方法。
背景技术
高速缓冲存储器(cache)是存在于主存储器与中央处理器(CPU)之间的存储器。CPU的运算速度比主存储器的读写速度要快很多,这就使得CPU在访问内存时要花很长的等待时间,造成系统整体性能的下降。为了弥补计算机系统中CPU与内存之间的运行速度差距,现代CPU普遍采用片上cache来缓存常用的内存数据,cache将CPU使用过的数据及其运算结果进行保存,让CPU下次处理时先访问cache,如果没有可用的数据再去访问内存,因此来提高运行速度。
映射方式是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。Cache按照地址映射方式可以分为三种结构:直接相联方式、全相联方式和组相联方式。
直接相联方式是指主存储器中的一块只能映射到cache中的一个特定的行中。在直接相联方式中,主存和缓存分成相同大小的数据块;主存容量应是缓存容量的整数倍,将主存空间按照缓存的容量分成区,主存中每一区的块数与缓存中的总块数相等;主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。直接相联方式的优点在于地址映射方式简单,数据访问时,只需检查区号是否相等即可,因而可以得到比较快的访问速度,硬件设备简单;其缺点在于替换操作频繁,冲突率高,命中率比较低。
全相联方式是指主存储器中的任意一块可以映射到cache中的任意一行。在全相联方式中,主存和缓存分成相同大小的数据块,主存的某一数据块可以装入缓存的任意一块空间中。全相联方式的优点在于命中率较高,cache的存储空间利用率高;其缺点在于访问全相联cache时,每次都要与cache中的全部内容进行比较,速度低,成本高,难以在大容量cache中实现。
组相联方式是指将cache划分成多个组,每组中又有若干cache行,内存中的任意地址对应于cache中的唯一组,但是可以对应于组中的任意行。可以看出,组相联方式中的组映射和直接映射方式相同,但是组内映射和全相联方式相同。组相联方式结合了直接相联方式和全相联方式的优点,块的冲突概率降低,块的利用率大幅提高,特别适合于实现大容量的cache,因此在现代CPU中得到了广泛应用。
在现有的技术中,组相联方式中的组数一般是2的整次幂,在进行组地址映射时,只需要将地址中的某些位截取下来就可以直接作为组地址使用。由于组相联方式中,组地址采用直接映射方式,内存中的某个地址只能映射到唯一的组中,虽然组内采用全相联的方式,但是当有多个地址都映射到同一个组中时,组冲突的发生仍然会对性能有较大的影响。这主要有以下两点原因:(1)组内的cache行数目是有限的,当要被加载到这个组的数据行的数目超过组内cache行的数目时,就会发生cache行的替换,即cache中原来保存的cache行要被新加载的cache行取代,如果之后CPU要使用被替换的cache行,会造成cache缺失,需要从内存中重新加载;(2)当cache的某一组执行操作时,为了保持操作的原子性,不允许对该组执行其他操作,否则如果替换算法不能分别选出两个替换路,紧挨着的两个操作可能对cache中的同一路进行加载,其中有一路在加载后被覆盖从而产生功能错误和性能问题。由此可见,组数为2的整次幂的cache虽然实现简单,但是由于计算机程序中的数据结构的规格往往也是2的整次幂,因此在数据结构规模很大或者数量很多时,会频繁地发生组冲突,由此引起cache项频频被替换或者cache访问被阻塞,导致CPU的性能下降。
发明内容
本发明所要解决的技术问题在于提供一种组数不是2的整次幂的组相联cache地址映射方法,通过本发明中提供的地址映射方法,使得在处理数据结构较大时,能减少组冲突发生的概率,提高CPU性能。因为本发明中的组数不是2的整次幂,因此,在这种情况下对矩阵的列访问或者对多个相同数据结构的跳跃访问都很难映射到同一组中,通常将组数设置成大的质数或者两个质数的乘积,因为质数只能被1和本身整除,只有当程序的内存访问步长正好等于这个质数或者这两个质数的乘积时相邻的内存访问之间才会发生组冲突,而这在计算机程序中是很罕见的情况。综上所述,采用本发明中的组数不是2的整次幂的组相联cache地址映射方法,将能大大降低发生组冲突的概率,提高CPU的性能。
为了实现上述发明目的,本发明提供一种非规整组相联cache组地址映射方法,cache的容量为P行,分别表示为L0,L0,…LP-1;主存的容量为Q块,分别表示为B0,B1,…BQ-1;其特征在于,包含以下步骤:(1)确定cache的组数R,分别表示为G0,G1…,GR-1,其中所述组数R为非2的整次幂;(2)对主存进行分组,主存的组数为g,当Q能被R整除时,主存的组数g=Q/R,主存每一组的块数等于cache的分组数,将主存每一组内的块进行重新编号,分别表示为b0,b1,…bR-1;当Q不能被R整除时,主存的组数g=int(Q/R)+1,主存分组中有g-1组的块数等于cache的分组数,将这些组内的块进行重新编号,分别表示为b0,b1,…bR-1,另一组的块数等于Q除以R的余数,并对该组内的块从小到大依次编号b0,b1,…bREM(Q/R)-1;(3)主存与cache之间的映射:主存块与cache组之间为直接映射,即主存中每组编号为b0的块在映射时拷贝至G0中,将主存中每组编号为b1的块在映射时拷贝至G1中,以此类推,主存中每组编号为bR-1的块在映射时拷贝至GR-1中;主存中各组编号相同的块在cache中采用全相联映射。采用非2的整次幂的分组数,能大大减少程序中连续访问cache中同一组或过度使用同一组的几率。
优选地,cache的组数为2n-1,即比2的整次幂少一组。
优选地,cache的组数为质数或者为两个质数的乘积。
本发明还提供一种给定主存某一块的地址,进行非规整组相联cache组地址映射的方法,当给定主存中某一块的地址S时,其中,地址S由高位地址和低位地址组成,低位地址表示行内偏移,高位地址为除行内偏移以外的地址。其映射步骤如下:(1)确定cache的组数R,分别表示为G0,G1…,GR-1,其中所述组数R为非2的整次幂;(2)确定该主存块对应的cache组号:组号Gs=REM(S的高位地址/R);(3)将S中的内容拷贝至cache中组号为Gs的组中。
优选地,给定一个cache地址S1,S1由低位地址和高位地址组成,低位地址为cache的行内偏移,高位地址为除行内偏移以外的地址,将cache地址S1的高位地址按n位相加,相加所得的结果对2n-1取余,取余所得结果即为该cache地址的组地址。
优选地,给定一个cache地址S2,S2由低位地址和高位地址组成,低位地址为cache的行内偏移,高位地址为除行内偏移以外的地址,将cache地址S2的高位地址每n位两两相加,对相加后的中间结果分别按2n-1取余,再将取余的结果再次两两相加,再次取余,按此步骤循环,直到相加得到最终结果,并对最终结果取余,所得结果即为该cache地址的组地址。
优选地,在计算主存块对应的cache组号时,还可以采用以下步骤:将高位地址按n位相加,相加结果对2n-1取余,取余所得结果即为该主存块对应的cache组号。
优选地,在计算主存块对应的cache组号时,还可以采用以下步骤:将高位地址每n位两两相加,对相加后的中间结果分别按2n-1取余,再将取余的结果再次两两相加,再次取余,按此步骤循环,直到相加得到最终结果,并对最终结果取余,所得结果即为该主存块对应的cache组号。
优选地,在进行多级相加时,采用压缩树技术并行计算。
本发明提供的一种非规整组相联cache组地址映射方法,其中cache的组数设置为非2的整次幂,采用该组地址映射方法将大大减少程序中连续访问cache中同一组或过度使用同一组的概率,尤其是分组数设置为2n-1且组数为质数或者两个质数的乘积时,组内冲突将会显著降低。当组数为2n-1时,本发明提供一种快速计算组地址的方法,通过加法器替代复杂的除法器,可以快速完成组地址计算。
附图说明
图1是本发明的一种非规整组相联cache组地址映射方法实施例的示意图;
图2是本发明的快速组地址计算示意图;
图3是本发明中使用4-2压缩器实现组地址计算的示意图。
具体实施方式
以下配合附图及本发明较佳实施例,进一步阐述本发明为达成预定发明目的所采取的技术手段。
本发明提供一种非规整组相联cache组地址映射方法,将cache空间分为非2的整次幂组,再将主存也就进行分组,主存中每一组的块数等于cache的分组数。主存块与cache组之间直接映射,而组内各块之间全相联映射。
假设cache的容量为P行,分别表示为L0,L0,…LP-1;主存的容量为Q块,分别表示为B0,B1,…BQ-1。首先,确定cache的组数R,分别表示为G0,G1…,GR-1,其中所述组数R为非2的整次幂。接着,对主存进行分组,主存的组数为g,当Q能被R整除时,主存的组数g=Q/R,主存每一组的块数等于cache的分组数,将主存每一组内的块进行重新编号,分别表示为b0,b1,…bR-1;当Q不能被R整除时,主存的组数g=int(Q/R)+1,主存分组中有g-1组的块数等于cache的分组数,将这些组内的块进行重新编号,分别表示为b0,b1,…bR-1,另一组的块数等于Q除以R的余数,并对该组内的块从小到大依次编号b0,b1,…bREM(Q/R)-1;最后,进行主存与cache之间的映射,主存块与cache组之间为直接映射,即主存中每组编号为b0的块在映射时拷贝至G0中,将主存中每组编号为b1的块在映射时拷贝至G1中,以此类推,主存中每组编号为bR-1的块在映射时拷贝至GR-1中;主存中各组编号相同的块在cache中采用全相联映射。
更形象地解释本发明提供的非规整组相联cache组地址映射方法,参照图1中所示,在该实施例中,cache的容量为8行,主存共16块,cache的8行编号为:L0-L7,主存的16块编号为B0-B15。将cache分成3组,即G0-G2,其中G0和G1每组3行,G2中2行;主存中每一组的块数等于cache的分组数,与之相对应的,将主存分为6组,即g0-g5,g0-g4每组3块,g5中包含1块。将主存组内进行重新编号b0,b1和b2,凡是主存组内编号为b0的主存块,可以拷贝至cache中的G0组,至于拷贝至G0中3行中的哪一行,是随机的无硬性规定,即采用全相联方式。以此类推,组内编号b1的主存块可以拷贝至G1组,组内编号b2的主存块可以拷贝至G2组。因为主存内的数据规格仍然采用2的整次幂,将cache分为任意的非2的整次幂组,在进行映射时,主存中矩阵的列或者相同数据结构的不同位置映射到同一组中的概率都将降低。本发明中提供的地址映射方法将降低发生组内冲突的概率,减少cache项被替换的次数,提高cache的利用率并提高CPU的性能。
为了进一步降低地址映射过程中发生组内冲突的概率,组数可以选择为2n-1,即比2的整次幂少一组。因为主存内的数据规格一般为2的整次幂,组数选择2n-1将能大大减少程序中连续访问cache中同一组或者过度使用同一组的。此外,组数还可以进一步选择为2n-1且为质数,如31,127等;或者组数选择为2n-1且为两个质数的乘积,如15,511(可以分解为83×7)等。在满足以上条件时,组数尽可能大。因为对同一组进行操作时,间隔的数据是组数的整数倍。因此,组数是质数或者是质数的乘积,组数越大,则组数的倍数将越大,越不容易出现相邻的访问都对同一组进行操作的情况。特别地,当2n-1是一个比较容易分解的数时,如255(可表示为5×3×17),此时可以把组数设置为(2n-m-1)×2m,其中(2n-m-1)为质数。如256组的传统cache,在本发明中可以分为254组,即(128-1)×2=254组,因为254是一个较难分解的数,其只能表示为127×2。
当给定主存中某一块的地址S时,S的低位地址为行内偏移,其映射步骤如下:首先确定cache的组数R,分别表示为G0,G1…,GR-1,其中组数R为非2的整次幂;确定该主存块对应的cache组号:Gs=REM(S的高位地址/R);最后,将S中的内容拷贝至cache中组号为Gs的组中。其中cache组数R的设置规则同上,其可以选择为2n-1,进一步地,2n-1且为质数,如31,127等;或者组数选择为2n-1且为两个质数的乘积,如15,511(可以分解为83×7)等。在满足以上条件时,组数尽可能大。
在采用本发明中的非规整组相联cache组地址映射方法进行地址映射时,在确定完组数后,当给定某一地址时,需要映射到cache中特定的组中,即计算对应的cache组号,即计算组地址。在传统的组相联cache中,cache地址可以表示为连续的三个部分:{tag号,组地址,行内偏移},其中tag号可以理解为主存的组号gn。举例说明,当cache行为64字节,组数为64组时,则地址的[5:0]位为行内偏移,[11:6]位为组地址,12位及更高位为tag。因为传统的组相联cache中,组数为2n,因此可以截取地址中的某一段作为组地址。在本发明中,由于非规整组相联cache的组数不是2的整次幂,因此不能直接截取地址中的某一段作为组地址。在本发明中,cache地址也由三部分组成:tag号,组地址和行内偏移,但是tag号和组地址并不是连续的位,具体说,是以tag号的最低位扩展一位。举例说明,当cache行为64字节,组数为64组时,行内偏移为[5:0],本发明中将cache分为62组(31×2),组地址为6位,为第6位及以上的高位地址除以62的余数,而tag号为第11位及更高位。Tag号需要向下扩展的原因是:由于组数不是2的整次幂,在原来组数的表示范围中有些地址会发生组号重叠的情况,在上述例子中,假设12位及更高位可以被62整除,则原来映射到62组,63组的地址此时分别映射到0组和1组,因此用原来的tag号不足以完全区分不同的地址。根据上述说明,给定一个cache地址,其中cache的行内偏移为低位地址,除行内偏移以外的地址为高位地址,在进行组地址计算时,将除cache行内偏移以外的高位地址除以组数得到的余数是组地址,即:
组地址=REM(高位地址/组数),其中REM为求余函数;
在上述实施例中,均采用的除法运算计算组地址。为了简化组地址的计算步骤,本发明还提供一种计算组地址的简便算法,其中组数为2n-1。设组数=2n-1,cache行的大小为2m字节,地址总位宽可表示为:n*l+m+k,其中n、l、m都是自然数,k为大于等于零的整数且k<n,由于cache容量比CPU的地址空间小的多,所以以上假设都是自然成立的。则组地址可以表示成:
组地址=REM(地址[l*n+m+k-1:m]/(2n-1))
=REM(地址[n+m-1:m]/(2n-1)+地址[2n+m-1:n+m]*2n/(2n-1))+...+
地址[l*n+m-1:(l-1)*n+m]*2(l-1)*n/(2n-1)]+地址
[l*n+k+m-1:l*n+m]*2l*n/(2n-1))
也就是将高位地址以每n位为区间分别除以2n-1,对于一个n位的二进制数来说,REM(2n/(2n-1))=1,进而有REM(2l*n/(2n-1))=1,因此有:
组地址= REM(地址[n+m-1:m]+地址[2n+m-1:n+m]+...+地址[l*n+m-1:(l-1)*n+m]+地址[l*n+m+k-1:l*n+m])
= REM(REM(地址[n+m-1:m]+地址[2n+m-1:n+m])+...+REM(地址[l*n+m-1:(l-1)*n+m]+地址[l*n+m+k-1:l*n+m]))
可以看出,在组地址为2n-1的情况下,只要将高位地址按n位相加,将相加得到的结果对2n-1取余即得到组地址。为了便于计算,我们将高位地址每n位两两相加,对相加后的中间结果分别按2n-1取余,之后将取余的结果再次两两相加,再次取余......,如此循环,直到相加得到最终结果并对最终结果取余,即得到了组地址。
以上快速算法也可以应用到主存地址的组地址计算中。在给定一个主存地址S,主存地址由高位地址和低位地址组成,其中低位地址表示主存的行内偏移,在计算该地址对应的cache组号时,也不能直接截取高位地址其中的一段作为组号。其计算方法与cache组地址计算方法相同,即组号Gs=REM(S的高位地址/(2n-1))。在进行计算时,只要将S的高位地址按n位两两相加,并对相加后的中间结果分别按2n-1取余,之后将取余的结果再次两两相加,再次取余......,如此循环,直到相加得到最终结果并对最终结果取余,即得到对应的组号。
对n位二级制数相加的结果针对2n-1取余的硬件实现非常简单:两个n位的数相加得到一个n+1位的结果,判断结果的最高位是否为1,如果是,说明结果超过了2n-1,那么取余操作应该将结果减去2n-1,而直接去掉最高位相当于减去2n,之后再加上1即实现了取余操作;如果最高位为0,说明结果没有超过2n-1,直接将最高位去掉就是取余的结果。
图2是本发明中组地址快速计算的实现框图,在组数为2n-1时,经过多级相加,得到最终的组地址,避免了进行除法运算。在图2中进行组地址计算过程中,将高位地址按n位两两相加,并对相加后的中间结果分别按2n-1取余,再将取余的结果再次两两相加,再次取余,按此步骤循环,直到相加得到最终结果并对最终结果取余,即求得组地址。利用本发明提供的算法,当组数为2n-1时,可以避免除法运算,而采用多级相加运算,能有效地提高计算效率,减少计算时间。
为了进一步提高组地址运算时的效率,在进行多级相加运算时,可使用压缩树技术加速多个加法的并行运算。图3是使用4-2压缩器实现组地址计算的实现框图,由于4-2压缩器直接将四个数相加,因此大大减少了加法运算的步骤,以图3中8个数相加为例,只需要经过两级4-2压缩器和一级全加器,以及相应的取余操作就可得到最终结果。
综上所述,本发明提供的一种非规整组相联cache组地址映射方法,其中cache的组数设置为非2的整次幂,采用该组地址映射方法将大大减少程序中连续访问cache中同一组或过度使用同一组的概率,尤其是分组数设置为2n-1且组数为质数或者两个质数的乘积时,组内冲突将会显著降低。
除此之外,本发明还提供一种当组数为2n-1时的快速组地址计算方法,通过该方法,能用加法器取代复杂的除法器,快速完成组地址的计算,提高运算效率。
以上所述仅是本发明的优选实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以优选实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本实用发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

1.一种非规整组相联cache组地址映射方法,cache的容量为P行,分别表示为L0,L1,…LP-1;主存的容量为Q块,分别表示为B0,B1,…BQ-1;其特征在于,包含以下步骤:
(1)确定cache的组数R,分别表示为G0,G1…,GR-1,其中所述组数R为非2的整次幂;
(2)对主存进行分组,主存的组数为g,当Q能被R整除时,主存的组数g=Q/R,主存每一组的块数等于cache的分组数,将主存每一组内的块进行重新编号,分别表示为b0,b1,…bR-1;当Q不能被R整除时,主存的组数g=int(Q/R)+1,主存分组中有g-1组的块数等于cache的分组数,将这些组内的块进行重新编号,分别表示为b0,b1,…bR-1,另一组的块数等于Q除以R的余数,并对该组内的块从小到大依次编号b0,b1,…bREM(Q/R)-1;
(3)主存与cache之间的映射:主存块与cache组之间为直接映射,即主存中每组编号为b0的块在映射时拷贝至G0中,将主存中每组编号为b1的块在映射时拷贝至G1中,以此类推,主存中每组编号为bR-1的块在映射时拷贝至GR-1中;主存中各组编号相同的块在cache中采用全相联映射。
2.根据权利要求1中所述的非规整组相联cache组地址映射方法,其特征在于,所述cache的组数为2n-1,即比2的整次幂少一组。
3.根据权利要求2中所述的非规整组相联cache组地址映射方法,其特征在于,给定一个cache地址S1,S1由低位地址和高位地址组成,低位地址为cache的行内偏移,高位地址为除行内偏移以外的地址,将cache地址S1的高位地址按n位相加,将相加所得的结果对2n-1取余所得结果即为该cache地址的组地址。
4.根据权利要求2中所述的非规整组相联cache组地址映射方法,其特征在于,给定一个cache地址S2,S2由低位地址和高位地址组成,低位地址为cache的行内偏移,高位地址为除行内偏移以外的地址,将cache地址S2的高位地址每n位两两相加,对相加后的中间结果分别按2n-1取余,再将取余的结果再次两两相加,再次取余,按此步骤循环,直到相加得到最终结果,并对最终结果取余,所得结果即为该cache地址的组地址。
5.根据权利要求1-2中任一项所述的非规整组相联cache组地址映射方法,其特征在于,所述cache的组数为质数或者为两个质数的乘积。
6.根据权利要求3-4中任一项所述的非规整组相联cache组地址映射方法,其特征在于,在进行多级相加时,采用压缩树技术并行计算。
7.一种非规整组相联cache组地址映射方法,其特征在于,当给定主存中某一主存块的地址S时,其中,地址S由高位地址和低位地址组成,低位地址表示行内偏移,高位地址为除行内偏移以外的地址,其映射步骤如下:
(1)确定cache的组数R,分别表示为G0,G1…,GR-1,其中所述组数R为非2的整次幂且为2n-1,即比2的整次幂少一组;
(2)确定该主存块对应的cache组号Gs:将S的高位地址按n位相加,将相加所得的结果对2n-1取余所得结果即为该主存块对应的cache组号Gs;
(3)将S中的内容拷贝至cache中组号为Gs的cache组中。
8.根据权利要求7中所述的非规整组相联cache组地址映射方法,其特征在于,在步骤(2)中计算主存块对应的cache组号时,还可以采用以下步骤:将S的高位地址每n位两两相加,对相加后的中间结果分别按2n-1取余,再将取余的结果再次两两相加,再次取余,按此步骤循环,直到相加得到最终结果,并对最终结果取余,所得结果即为该主存块对应的cache组号。
9.根据权利要求7中所述的非规整组相联cache组地址映射方法,其特征在于,所述cache的组数为质数或者为两个质数的乘积。
10.根据权利要求7-8中任一项所述的非规整组相联cache组地址映射方法,其特征在于,在进行多级相加时,采用压缩树技术并行计算。
CN202010137427.1A 2020-03-03 2020-03-03 非规整组相联cache组地址映射方法 Active CN110990299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010137427.1A CN110990299B (zh) 2020-03-03 2020-03-03 非规整组相联cache组地址映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010137427.1A CN110990299B (zh) 2020-03-03 2020-03-03 非规整组相联cache组地址映射方法

Publications (2)

Publication Number Publication Date
CN110990299A CN110990299A (zh) 2020-04-10
CN110990299B true CN110990299B (zh) 2020-07-14

Family

ID=70081318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010137427.1A Active CN110990299B (zh) 2020-03-03 2020-03-03 非规整组相联cache组地址映射方法

Country Status (1)

Country Link
CN (1) CN110990299B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553274B (zh) * 2020-04-24 2023-09-12 江苏华创微系统有限公司 用自适应粒度目录表实现片间一致性的方法
CN111666230B (zh) * 2020-05-27 2023-08-01 江苏华创微系统有限公司 在组相联tlb中支持巨页的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437520C (zh) * 2004-09-21 2008-11-26 中国科学院计算技术研究所 一种用计算机对矩阵进行运算的方法
CN1746865A (zh) * 2005-10-13 2006-03-15 上海交通大学 数字信号处理器可重构指令高速缓存部分的实现方法
US8355280B2 (en) * 2010-03-09 2013-01-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof
US20150039823A1 (en) * 2013-07-30 2015-02-05 Mediatek Inc. Table lookup apparatus using content-addressable memory based device and related table lookup method thereof
CN108132893A (zh) * 2017-12-06 2018-06-08 中国航空工业集团公司西安航空计算技术研究所 一种支持流水的常量Cache
CN110018811B (zh) * 2019-04-15 2021-06-15 北京智芯微电子科技有限公司 Cache数据处理方法以及Cache

Also Published As

Publication number Publication date
CN110990299A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
KR102168960B1 (ko) 이레이저 코드 데이터 보호 및 복구 계산 시스템 및 방법
JP4339381B2 (ja) 共有メモリ型マルチプロセッサシステム及びその情報処理方法
US10067881B2 (en) Compression and caching for logical-to-physical storage address mapping tables
JP5575997B1 (ja) 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法
CN110990299B (zh) 非规整组相联cache组地址映射方法
US20060294118A1 (en) Skip list with address related table structure
KR20090033139A (ko) 스캔 연산을 수행하기 위한 시스템, 방법 및 컴퓨터 판독가능한 기록 매체
CN104809179A (zh) 访问哈希表的装置和方法
EP0124799A2 (en) Memory access arrangement in a data processing system
JPS62113234A (ja) レコ−ドセツト分類方法
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
CN107291630B (zh) 一种高速缓冲存储器处理方法及装置
CN110019184A (zh) 一种压缩和解压缩有序整数数组的方法
US10339052B2 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
CN108021678B (zh) 一种结构紧凑的键值对存储结构及快速键值对查找方法
US6189083B1 (en) Method and apparatus for accessing a cache memory utilization distingushing bit RAMs
US10749545B1 (en) Compressing tags in software and hardware semi-sorted caches
CN111341374A (zh) 存储器的测试方法、装置及可读存储器
Feng et al. A segment‐based sparse matrix–vector multiplication on CUDA
CN111338884B (zh) 缓存缺失率监测方法、装置、电子设备及可读存储介质
JP2022545644A (ja) エンコーディング及びデコーディングテーブルを用いたセミソーティング圧縮
CN113919289A (zh) 比特币钱包地址字符串的编码方法及地址编号表生成方法
JP5206385B2 (ja) バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム
US11868644B1 (en) Techinques for tracking frequently accessed memory
US20240143276A1 (en) Advanced digital sorting and search

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