减少存储体冲突的方法技术

技术编号:21033589 阅读:24 留言:0更新日期:2019-05-04 05:11
本发明专利技术涉及一种减少存储体冲突的方法,包括确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址;确定移位步长,该移位步长表示存储体中的数据被移动的存储体数,是从存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n;并且,存储器中的数据以移位步长移动之后,发生存储体冲突的数据将不再位于同一存储体中;以及按照移位步长移动存储器中的数据,其中存储器中的数据在存储体中的行地址值不变。本发明专利技术使访问时可能发生冲突的数据不再位于同一存储体中,减少存储体冲突,提高存储器性能。

Method of Reducing Storage Conflict

【技术实现步骤摘要】
减少存储体冲突的方法
本专利技术涉及一种减少存储体冲突的方法,属于存储器

技术介绍
最近,随着对处理器的处理数据的能力的要求的提高,一些处理器已经被设计为并行访问存储器。在存储器具有多个存储体(Bank)的情况下,处理器可以同时对多个存储体并行访问而不会发生冲突。然而,在某些情况下,处理器可能需要并行访问存储在同一存储体中的数据,在正常情况下,存储器中数据的地址是固定的,此时便会发生存储体冲突(bankconflict),即,必须逐个访问位于同一存储体中的这些数据。例如,在如图3所示的存储器示例中,每一列代表一个存储体,即该内存中具有Bank0,…,Bank7的8个存储体,若访问同一个存储体中的多个地址的数据,例如在Bank0中点击0,8,16,24,如图3中灰度显示,那么它必须用多个周期来逐个访问Bank0,导致内存性能降低。
技术实现思路
本专利技术的目的在于在处理器的LSU(Load/StoreUnit,存取单元)的微架构设计中,提供一种减少存储体冲突方案,以提高存储器性能。本专利技术的第一方面提供了一种减少存储体冲突的方法,包括:确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址;确定移位步长,移位步长表示存储体中的数据将被移动的存储体数,是从存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n,且N和n均为自然数;并且,存储器中的数据以各自的移位步长移动之后,发生存储体冲突的多个数据将不再位于同一存储体中;以及按照移位步长移动存储器中的数据,其中存储器中的数据在存储体内部的行地址值不变。本专利技术通过地址变换,使访问时可能发生冲突的数据不再位于同一存储体中,减少了存储体冲突,提高了存储器性能。进一步,发生存储体冲突的多个数据的移位步长彼此均不相同,使得存储器中的数据以移位步长移动之后,发生存储体冲突的多个数据将分别位于不同的存储体中。通过将所有发生冲突的数据分别移动到不同存储体中,尽可能的消除所有冲突,充分提高存储器的性能。进一步,从存储器中的数据的二进制地址中选择的n位可以是连续的n位。可选择地,从存储器中的数据的二进制地址中选择的n位也可以是不连续的n位。更具体地,发生存储体冲突的多个数据的行距可以用2^i+j表示,其中,i和j为自然数,且0≤j<2^i;在j=0时,移位步长可以是从存储器中的数据的二进制地址的第n+i位起向高位方向的连续的n位所表示的值。在j≠0时,移位步长可以是从存储器中的数据的二进制地址的第n+i或n+i+1位起向高位方向的连续n位所表示的值,或存储器中的数据的二进制地址中不连续的n位所表示的值。这些不同移位步长的选择取决于存储体冲突的具体情况以及软件的配置。进一步,可以将存储器的存储空间划分为多个页面,提供多组寄存器来配置页面以便为每个页面分别确定移位步长,寄存器的数量小于或等于页面的数量。进一步,在寄存器的数量小于页面的数量时,可以以TLB方式使每个寄存器映射到多个页面。本专利技术的第二方面提供了一种减少存储体冲突的装置,包括:存储体冲突确定单元,被被配置为确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址;移位步长确定单元,被配置为使存储器中的数据以各自的移位步长移动之后,发生存储体冲突的多个数据将不再位于同一存储体中,其中,移位步长表示存储体中的数据将被移动的存储体数,是从存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n,且N和n均为自然数;和移位单元,被配置为按照移位步长移动存储器中的数据,其中所述存储器中的数据在存储体内部的行地址值不变。进一步,移位步长确定单元进一步被配置为,发生存储体冲突的多个数据的移位步长彼此均不相同,使存储器中的数据以移位步长移动之后,发生存储体冲突的多个数据将分别位于不同的存储体中。进一步,从存储器中的数据的二进制地址中选择的n位可以是连续的n位。可选择地,从存储器中的数据的二进制地址中选择的n位也可以是不连续的n位,且发生存储体冲突的数据的移位步长可以完全不同。进一步,移位步长确定单元可以进一步被配置为,将存储器的存储空间划分为多个页面,提供多组寄存器来配置页面以便为每个页面分别选择移位步长,寄存器的数量小于或等于页面的数量。进一步,在寄存器的数量小于页面的数量时,以TLB方式使每个寄存器映射到多个页面。本专利技术的第三方面提供了一种处理器,该处理器包括具有多个存储体的存储器以及如前述第二方面或第二方面的任一实现方式提供的装置。本专利技术的第四方面提供了一种电子设备,该电子设备可以是各种计算机、服务器或各种移动设备,包括如前述第四方面或第四方面的任一实现方式提供的处理器。本专利技术的第五方面提供了一种计算机程序产品,该计算机程序产品包括程序代码,当该计算机程序产品被控制器执行时,该控制器执行前述第一方面或第一方面的任一实现方式提供的方法。本专利技术通过简单提取存储在存储器中的数据的地址中的几位来进行移位操作,将可能发生冲突的数据移动到不同存储体中,减少或消除了存储体冲突,提高了存储器性能。附图说明图1是根据本专利技术的实施例的减少存储体冲突的方法的流程图。图2是根据本专利技术的实施例的能够减少存储体冲突的系统的示意图。图3是根据本专利技术的实施例的具有八个存储体的存储器示意图。图4是根据本专利技术的实施例的使用地址[5:3]移动存储器中的数据后的存储器示意图。图5是根据本专利技术的实施例的使用地址[6:4]移动存储器中的数据后的存储器示意图。图6是根据本专利技术的实施例的使用地址的第6、5、3位所表示的值作为移位步长移动存储器中的数据后的存储器示意图。图7是根据本专利技术的实施例的存储器地址重组的硬件实现示意图。具体实施方式下面结合具体实施例和附图对本专利技术做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本专利技术,而非对本专利技术的限定。此外,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部的结构或过程。诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)等的存储器设备可以包括多个存储体(Bank),处理器等设备可以对多个存储体进行独立访问。在处理器需要并行访问存储在同一存储体中的数据时,会发生存储体冲突,本专利技术通过地址变换,将可能发生冲突的数据移动到不同存储体中,从而减少存储体冲突。根据本专利技术的一个实施例,提供了一种减少存储体冲突的方法,如图1所示,包括以下步骤:首先,步骤S101,确定对包含多个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址。举例来说,如图3中所示,在具有八个存储体Bank0,Bank1,…,Bank7的存储器300中,正常情况下,可以通过8个地址并行访问八个存储体中的数据而不会发生冲突。然而,如果同时点击存储在同一个存储体中的多个数据,例如同时点击Bank0中的四个地址0,8,16,24,如图3中灰色所示,即会发生存储体冲突,在需要同时访问0,8,16,24处的数据时,0,8,16,24即为会发生存储体冲突的位置。随后,步骤S102,确定移位步长,移位步长表示存储体中的数据被移动的存储体数,即数据将被移动几个存储体,它是从存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n,且N和n均为自然数;并且,存储本文档来自技高网...

【技术保护点】
1.一种减少存储体冲突的方法,其特征在于,包括:确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址;确定移位步长,所述移位步长表示所述存储体中的数据将被移动的存储体数,是从所述存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n,且N和n均为自然数;并且,所述存储器中的数据以各自的所述移位步长移动之后,所述发生存储体冲突的多个数据将不再位于同一存储体中;以及按照所述移位步长移动所述存储器中的数据,其中所述存储器中的数据在所述存储体内部的行地址值不变。

【技术特征摘要】
1.一种减少存储体冲突的方法,其特征在于,包括:确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地址;确定移位步长,所述移位步长表示所述存储体中的数据将被移动的存储体数,是从所述存储器中的数据的二进制地址中选择的n位所表示的值,其中N=2^n,且N和n均为自然数;并且,所述存储器中的数据以各自的所述移位步长移动之后,所述发生存储体冲突的多个数据将不再位于同一存储体中;以及按照所述移位步长移动所述存储器中的数据,其中所述存储器中的数据在所述存储体内部的行地址值不变。2.根据权利要求1所述的减少存储体冲突的方法,其特征在于,所述发生存储体冲突的多个数据的移位步长彼此均不相同,使得所述存储器中的数据以所述移位步长移动之后,所述发生存储体冲突的多个数据将分别位于不同的存储体中。3.根据权利要求1所述的减少存储体冲突的方法,其特征在于,所述发生存储体冲突的多个数据的行距为2^i+j,其中,i和j为自然数,且0≤j<2^i;在j=0时,所述移位步长是所述存储器中的数据的二进制地址的第n+i位起向高位方向的连续的n位所表示的值。4.根据权利要求1所述的减少存储体冲突的方法,其特征在于,所述发生存储体冲突的多个数据的行距为2^i+j,其中,i和j为自然数,且0≤j<2^i;在j≠0时,所述移位步长是从所述存储器中的数据的二进制地址的第n+i或n+i+1位起向高位方向的连续n位所表示的值,或所述存储器中的数据的二进制地址中不连续的n位所表示的值。5.根据权利要求1-4中任意一项所述的减少存储体冲突的方法,其特征在于,将所述存储器的存储空间划分为多个页面,提供多组寄存器来配置所述页面以便为每个页面分别确定移位步长,所述寄存器的数量小于或等于所述页面的数量。6.根据权利要求5所述的减少存储体冲突的方法,其特征在于,在所述寄存器的数量小于所述页面的数量时,以TLB方式使每个寄存器映射到多个页面。7.一种减少存储体冲突的装置,其特征在于,包括:存储体冲突确定单元,被配置为确定对包含N个存储体的存储器进行并行访问时会发生存储体冲突的多个数据的二进制地...

【专利技术属性】
技术研发人员:丘正前孙锦鸿
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1