一种可重构缓存组织结构的制作方法

文档序号:8319081阅读:242来源:国知局
一种可重构缓存组织结构的制作方法
【技术领域】
[0001]本发明涉及计算机,通讯及集成电路领域。
【背景技术】
[0002]为了提高性能,在现代处理器系统中通常采用缓存暂存主存储器中的指令或数据。存储在缓存中的指令或数据的地址一般分为三个部分:标签(TAG)、索引号(index)和块内偏移量(offset)。缓存一般由标签存储器和数据存储器构成,两者一一对应。其中数据存储器的每一个存储块存储了一个主存块(即指令块或数据块),标签存储器则存储了对应的存储块地址的标签。按组织形式的不同,缓存通常有三种形式:直接映射(directmap)、全相联(fully associative)和组相联(way-set associative)。
[0003]在直接映射的缓存结构里,主存中的每个主存块在高速缓存中只能出现在唯一位置上。在直接映射的情况下,由于每个主存块在高速缓存中仅存在一个位置,因而地址的比较次数仅为一次。直接映射把主存储器分成若干页,主存储器的每一页与高速缓存的容量大小相同,且对应一个标签。根据主存块的地址中的索引号读出对应的标签,并与主存块地址中的标签部分比较,即可确定该索引号对应的存储块中存储的是否就是所述主存块地址对应的主存块。直接映射的缓存结构简单,实现容易,但每个索引号只对应一个存储块,因此直接映射的缓存中无法同时存储两个具有相同索引号的主存块。
[0004]在全相联的缓存结构里,一个主存块可以被放到高速缓存中的任何一个地方,即存储块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。高速缓存中可以保存互不相关的数据块,且必须对每个主存块及其自身的地址加以存储。当请求数据时,缓存控制器必须把主存块地址同所有存储在标签存储器中的块地址加以比较,进行确认。
[0005]组相联是介于全相联和直接映射之间的一种结构。这种结构将高速缓存分成若干个路组(way-set),在路组内实现直接映射,而路组与路组问采用全相联方式。这样对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。
[0006]在上述三种组织结构中,全相联的缓存需要大量的比较器用于比较标签,电路结构复杂导致速度不高;且因所有比较器均同时进行比较,功耗非常大,在现代处理器的大容量缓存中无法实现。直接映射的缓存则因为每个索引号只对应一个存储块的局限,导致频繁替换,效率很低。只能有一个INDEX
[0007]组相联的缓存则是现代处理器中最常用的缓存结构。通常路组数越多,缓存的性能越好,但需要同时读出、比较的标签也越多,导致功耗越高,且用于选择数据的选择器也越复杂,导致时延越大;敏感放大器和Y译码器所占的面积都很大,单靠分割位线(bitline)增加路组数代价很高。此外,有些程序由于其本身的特点,较低路组数的缓存就能实现不错的性能。因此,在组相联的缓存结构中,由于不知道会执行什么样的程序,因此很难在缓存性能与硬件成本之间作出平衡的选择。
[0008]最后,在直接映射缓存结构及组相联结构的每个路组中,各个存储块的索引号是连续的,且每个索引号只能对应一个存储块,不够灵活。
[0009]本发明提出的可重构缓存组织结构能直接解决上述或其他的一个或多个困难。

【发明内容】

[0010]本发明提出了一种可重构缓存组织结构,其特征在于,缓存的指令或数据存储器中的多个存储块可以构成一个组,且对应同一个标签,形成按组可重构结构;当本次寻址地址与上次寻址地址对应同一个组时,可以省略本次寻址地址的标签比较,直接在该组中找到对应的指令或数据。
[0011]可选的,可以将所述缓存中的存储块配置为大小相等或不等的组。
[0012]可选的,所述本次寻址地址和上次寻址地址是:两条地址连续的指令本身的地址;或两条被先后执行的数据访问指令分别对应的数据地址;或同一条数据访问指令先后被执行时分别对应的数据地址。
[0013]可选的,当进行连续地址或相近地址寻址,且地址中的标签部分相同时,即可判定本次寻址地址与上次寻址地址对应同一个组。
[0014]可选的,可以根据所述本次寻址地址与上次寻址地址中的索引号部分的差值,以及上次寻址地址对应的指令或数据在缓存中的位置,确定本次寻址地址对应的指令或数据在缓存中的位置。
[0015]可选的,可以根据寻址地址中的标签、索引号高位部分的匹配结果,以及索引号低位部分的译码结果在缓存中找到相应指令或数据。
[0016]可选的,可以通过选择线将寻址地址中的标签、索引号高位部分的匹配结果送往用于索引号低位部分译码的译码器;仅在匹配成功项对应的译码器中对索引号低位部分进行译码。
[0017]可选的,可以先将选择线上的匹配结果编码后通过总线传输,经解码后再送到对应的译码器。
[0018]可选的,还可以将所述缓存中的若干存储块配置为组相联结构,形成按组可重构结构及组相联结构共存的混合结构。
[0019]可选的,所述缓存组织结构可以构成组相联缓存结构;其中每组(group)存储块均可以被分配给任意一个组(set)构成其的一个路(way);且最大组(set)数目与最大路(way)数目的乘积大于存储块组(group)的数目。
[0020]可选的,在所述缓存组织结构中,所有存储块共享同一组位线。
[0021]可选的,在所述缓存组织结构中,包括一个二维表;所述二维表的行对应组(set),且至少包含一行;所述二维表的列对应路(way),且至少包含一列;所述二维表的表项内容包括:标签、有效位和组号。
[0022]可选的,在所述缓存组织结构中,根据存储器地址中的索引号从所述二维表中读出相应行中所有的有效标签值与存储器地址中的标签进行匹配;根据匹配成功项中的组号在缓存中找到该存储器地址对应组(group);根据存储器地址中的偏移地址在所述组(group)中访问相应指令或数据。
[0023]可选的,在所述缓存组织结构中,还包括至少一个独立标签模块;当一个独立标签模块被分配给一个组(set)时,在所述独立标签模块中存储了所述组(set)对应的索引号值和标签值。
[0024]可选的,在所述缓存组织结构中,当需要对一个组(set)分配新的路(way),且所述二维表中该组(set)对应行中的全部表项均有效时,若尚有未被占用的独立标签模块存在,在将该独立标签模块分配给该组(set)使用;若所有独立标签模块均被占用,则根据替换算法从部分或全部独立标签模块,以及所述二维表中该组(set)对应的路(way)中确定一个用于替换。
[0025]可选的,在所述缓存组织结构中,当根据一个存储器地址在所述缓存中寻址时,根据所述存储器地址中的索引号从所述二维表的相应行中读出所有有效标签值,并从存储了所述索引号的所有独立标签模块中读出标签值与所述存储器地址中的标签进行匹配;根据匹配成功项中的组号在缓存中找到该存储器地址对应组(group);根据存储器地址中的偏移地址在所述组(group)中访问相应指令或数据。
[0026]对于本领域专业人士,还可以在本发明的说明、权利要求和附图的启发下,理解、领会本发明所包含其他方面内容。
[0027]有益.效果
[0028]本发明所述的可重构缓存组织结构可以提供一种可变大小的按组分配的缓存组织结构。每组中的存储块对应的主存地址是连续的,使得处理器核在获取连续地址的指令或数据时,所述缓存只需要经过简单的计算即可直接确定所述指令或数据在缓存中的位置,从而避免了标签匹配,降低了功耗。
[0029]本发明所述的可重构缓存组织结构还可以按需配置为按组分配/组相联混合的缓存结构,将连续地址的指令或数据,以及不连续地址的指令或数据分别存储在按组分配的缓存部分及组相联结构的缓存部分中,使得缓存系统在兼容现有缓存结构的前提下,更好地支持连续地址的指令或数据读取。
[0030]本发明所述的可重构缓存组织结构提供了一种介于组相联和全相联之间的缓存形式,可以根据程序运行时的客观需求,对不同索引号给予不同的路组数,用相当于组相联的硬件代价,实现了全相联的性能。
[0031]对于本领域专业人士而言,本发明的其他优点和应用是显见的。
【附图说明】
[0032]图1是现有组相联缓存结构中标签比较的一个实施例;
[0033]图2是本发明所述可重构缓存中标签比较的一个实施例;
[0034]图3是本发明所述可重构缓存中标签比较的另一个实施例;
[0035]图4是本发明所述可重构缓存中一个组的实施例;
[0036]图5是本发明所述可重构缓存中标签比较的另一个实施例;
[0037]图6是本发明所述可重构缓存中标签比较的另一个实施例;
[0038]图7是本发明所述可重构缓存配置情况的一个实施例;
[0039]图8A是本发明所述可重构缓存的实施例;
[0040]图8B是本发明所述可重构缓存中地址格式和表项格式的一个实施例;
[0041]图8C是本发明所述可重构缓存的一个运行状态实施例;
[0042]图8D是本发明所述可重构缓存的另一个运行状态实施例;
[0043]图9是本发明所述可重构缓存的另一个实施例。
【具体实施方式】
[0044]以下结合附图和
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1