高速缓冲存储器系统中的地址映射变换技术与装置.pdf

上传人:a**** 文档编号:1010661 上传时间:2018-03-25 格式:PDF 页数:28 大小:856.53KB
返回 下载 相关 举报
摘要
申请专利号:

CN97120245.1

申请日:

1997.11.06

公开号:

CN1217505A

公开日:

1999.05.26

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 12/00申请日:19971106授权公告日:20020320终止日期:20091207|||专利申请权、专利权的转移(专利权的转移)变更项目:专利权人变更前权利人:中国科学院计算技术研究所变更后权利人:宁波中科集成电路设计中心有限公司变更项目:地址变更前:100083北京市912信箱变更后:315040浙江省宁波科技园创业大厦6楼登记生效日:2005.1.14|||授权|||公开|||

IPC分类号:

G06F12/00

主分类号:

G06F12/00

申请人:

中国科学院计算技术研究所;

发明人:

刘志勇; 李恩有; 乔香珍

地址:

100083北京市912信箱

优先权:

专利代理机构:

中科专利代理有限责任公司

代理人:

汤保平

PDF下载: PDF下载
内容摘要

本发明提出一种CACHE系统中的地址映射变换技术与装置,在这样的CACHE系统中采用XOR地址散射机构以改进内存储器的数据在CACHE数据存储体中的分布方式;该地址散射机构的输入为数据的地址中的CACHE标志位字段(或其中一个部分字段)及CACHE行号字段(或其中一个部分字段),该地址散射机构的输出为CACHE行号(或其中一个部分字段)。这一新形成的CACHE行号用于指示CACHE数据存储体及CACHE标志位存储体的实际访问地址(行号)。

权利要求书

1: 一种CACHE系统中的地址映射变换技术与装置,其特征在于, 一个改进了的CACHE(高速缓冲存储器)系统,在这样的CACHE系统中采 用XOR地址散射机构以改进内存储器的数据在CACHE数据存储体中的分 布方式;该地址散射机构的输入为数据的地址中的CACHE标志位字段 (或其中一个部分字段)及CACHE行号字段(或其中一个部分字段),该地 址散射机构的输出为CACHE行号(或其中一个部分字段)。这一新形成的 CACHE行号用于指示CACHE数据存储体及CACHE标志位存储体的实际访 问地址(行号)。
2: 按权利要求1所述的一种CACHE的系统中的地址映射变换技术 与装置,其特征在于,所述地址散射机构由公式                 S τ =(R×i τ )(I×j τ ) 所定义的映射函数EE或公式                 S τ =(H×i τ )(I×j τ ) 所定义的映射函数LR实现,其中公式中的i和j即为该地址散射机构的 输入,而S即为该地址散射机构的输出。
3: 一种CACHE系统中的地址映射变换技术与装置,其中的装置为 XOR散射机构,XOR散射机构包括异或门和与之的连线,其特征在于, 其中,异或门的输入端的其中一端接CPU数据地址寄存器的行号字段; 另一端接CPU数据地址寄存器的标志位字段tag,异或门的输出端也分 别接入标志位存储体和数据存储体。

说明书


高速缓冲存储器系统中的地址映射变换技术与装置

    本发明属计算机技术领域,特别是指一种CACHE系统中的地址映射变换技术与装置。

    计算机系统结构技术的进展使得存储系统的速度与运算系统的速度的差距越来越显著。这一方面是由于先进的结构技术(如指令与运算流水线技术、压缩指令集(RISC)技术、特长指令字技术(VLIW)、多部件及并行部件技术等),在控制与运算系统中的应用缩短了指令的执行周期;另一方面则是由于硬件技术的进步使得CPU主频得以迅速提高。CPU的运算速度在以两年左右时间翻一翻的速度迅速增长。与此相对照,主存储器(DRAM)存取速度却进步缓慢。主存储器速度一直是计算机系统处理能力地一大瓶颈。随着CPU与主存速度差距的加大,存储系统速度的提高在整个计算机系统性能提高中的关键地位日益突出。

    提高存储系统性能的一个有效方法是采用高速缓冲存储器(CACHE)。现今的计算机系统已普遍采用了CACHE结构,乃至多级CACHE结构。CACHE(乃至整个层次存储结构)的有效性是基于程序访问的局部性原理。事实上,当且仅当存储于CACHE中的数据能被运算部件反复访问到的情况下,或者说局限于CACHE中的数据具有高复用率的情况下,CACHE的效能才能充分发挥。

    然而在许多常用算法中,尤其是科学与工程计算、图象与信号处理等应用领域的核心算法中,程序对数据的访问不能满足上述的CACHE得以发挥作用的局部性条件,从而使得CACHE的设置不能导致系统速度的提高。造成这种局部性不能得以满足的主要原因是CACHE访问中的行冲突,而从系统结构的角度考虑,形成这种行冲突的根本原因则是传统的CACHE与主存储器的地址映射方式。

    CACHE存储体通常由N=2n个CACHE行组成,每一个CACHE行由2w个字节组成。行是CACHE与内存交换数据的基本单元。假设系统的内存空间尺寸为2m,而一个数据的内存地址字节为A,按传统的CACHE与内存地址的映射方式,则该数据应存放于CACHE中的行号为(行号从“0”开始)

                     1=[A mod(2n+w)/2w]这种映射方式如图1所示,图1为已知的CACHE与内存地址映射图。

    图1中,CPU的数据地址被划分为3个字段,称为标志位字段t,行号字段1,和行内位移字段d。其中标志位字段t的功用将在下面说明。行号字段1指明所要访问的数据在CACHE中的行号,而行内位移字段d则指明行内的字节号。

    CACHE的存储体由标志位存储体和数据存储体组成。数据存储体(及标志位存储体)可以有一个,也可以有多个。仅有一个数据存储体的CACHE称为直接映射CACHE,所要访问的数据即存储于由上述行号字段所指明的行中。具有多个数据存储体的CACHE称为组相联CACHE,而其数据存储体的个数称为其相联度。在组相联CACHE中,所要访问的数据可存储于任何一个体的由上述行号字段所指明的CACHE行中。标志位存储体存放数据地址的标志位字段及其它控制信息。

    在计算机需要访问数据时,就按数据地址的CACHE行号字段所指明的行从标志位存储体中读取标志位,并把所读取的标志位和数据地址中标志位字段进行比较。若比较相符,则说明这时CACHE中该行所存储的数据确为所需的数据,此种情况称为访问命中。所产生的访问命中信号被用于选通按数据地址行号字段所指明的行进行访问(控制把从该行读出的数据送出,或控制向该行写入数据)。如果所读取的标志位和数据地址中标志位字段不符,则称此种情况为不命中,此时则发出不命中信号以启动一个系统CACHE不命中的访存周期。

    由于在本案中所讨论的映射技术理论上与w无关,故在以后的行文中均假设w=0,即假设每个CACHE行仅存储一个数据单位(而不一定是一个字节)。这样,CACHE地址(行号)与内存地址的映射关系为

                     1=A mod 2n

    在这种方式下,CACHE的行地址即是数据的内存地址对2n取模而得到的。

    有关CACHE结构的详情可参考〔参考文件6〕。

    在实际应用问题的核心算法中,对一个数据结构的数据访问往往呈现一定的规律性,我们把这种有规律地被访问的一组数据称为一种数据模式(Data Pattern)[参考文件3]。在上述的传统的地址映射方式下,常用数据模式中的不同的数据常常会被映射到相同的CACHE行中,从而造成了CACHE行使用竞争。这时已占用某一CACHE行的数据会被后一个映射到该行的数据冲掉。此种情况下,我们称为CACHE行访问冲突,或简称CACHE行冲突。由于CACHE冲突,使得即使程序执行中拥有时间局部性的数据也不能反复地被从CACHE中访问到,从而降低了CACHE的访问命中率。

    比如一个N×N的矩阵,在C语言程序的地址分配模式下,其每一列的N个数据元素均可能被映射到同一个CACHE行中。在FOTRAN语言中,每个行的N个数据元素则会被映射到同一个CACHE行中。这时CACHE空间的利用率仅为1/N。易知,若为了提高CACHE的利用率而采用分块运算方式,一个N=N×N]]>的块对CACHE的利用率仅为

    应该指出的是:

    第一,CACHE的空间利用率的提高未必能导致CACHE命中率的提高。

    第二,上述问题并非可以通过简单地增加CACHE容量所能解决的。

    产生上述问题的原因在于程序中的数据访问模式和图1所示的传统的CACHE与内存地址间的映射方式。

    美国专利No.5,133,061文献[参考文件4]提出一种方法,改进CACHE的访问性能。该方法提出以数据地址和一个特定设计的位矩阵相乘来产生CACHE行地址,使得数据地址随机化。其特定设计的位矩阵是以“Sierpinsky’s Gasket”(Pascal三角形的二进制形式)来构造的。采用这种方法可以使得以2的任何整数方幂为步距的循环的数据访问模式避免CACHE行冲突。

    参考文件7提出,CACHE的行号由数据地址对2n-1取模而得到,而不是如同传统的CACHE中由数据地址对2n取模得到。此种方法使得以任何整数为步距的循环的数据访问模式避免CACHE行冲突(除非访问步距为2n-1的倍数或约数),以提高CACHE性能。

    参考文件1提出,当程序运行过程中发现以某种函数映射CACHE行地址时冲突过多,则更换另一种映射函数,以改进CACHE的性能。

    当CACHE中采用多个数据存储体时(即采用组相联CACHE时),参考文献5提出,对不同的存储体采用不同的映射函数以提高CACHE性能。

    本发明的目的在于,提供一种CACHE系统中的地址映射变换技术,也就是一种新颍的简单的CACHE与内存地址的映射机构,即XOR散射机构(XOR Scattering Mechanism),其目的是减少以及消除(在理想情况下)对常用数据模式的CACHE访问冲突,提高CACHE存储系统的有效访问速度,从而提高整个系统的运算速度。

    本发明的特征在于,一个改进了的CACHE系统,在这样的CACHE系统中采用XOR地址散射机构以改进内存储器的数据在CACHE数据存储体中的分布方式;该地址散射机构的输入为数据的地址中的CACHE标志位字段(或其中一个部分字段)及CACHE行号字段(或其中一个部分字段),该地址散射机构的输出为CACHE行号(或其中一个部分字段)。这一新形成的CACHE行号用于指示CACHE数据存储体及CACHE标志位存储体的实际访问地址(行号);所述地址散射机构由公式

                    Sτ=(R×iτ)(I×jτ)

    所定义的映射函数EE或公式

                    Sτ=(H×iτ)(I×jτ)所定义的映射函数LR实现,其中公式中的i和j即为该地址散射机构的输入,而S即为该地址散射机构的输出;其中的装置为XOR散射机构,XOR散射机构包括异或门和与之的连线,其特征在于,其中,异或门的输入端的其中一端接CPC数据地址寄存器的行号字段;另一端接CPU数据地址寄存器的标志位字段tag,异或门的输出端也分别接入标志位存储体和数据存储体。

    我们这里提出的技术有以下显著的特征:

    第一,我们的目的是以一种函数覆盖多种常用的数据访问模式,而不仅是程序中单重循环(即使循环的步距可以不同)所形成的数据访问模式。

    第二,我们专门发明了可以达到上述目的的两种映射函数,而这两种函数在其硬件实现的简单性、时间延迟、以及所能覆盖的数据存取模式等方面优于已有的方案。

    我们这里提出的技术有以下优越性:

    第一,实现简单。由于采用逻辑运算的方式实现CACHE与主存的地址映射而避免任何算术运算方式,整个映射机构仅需少量异或门(XORGates)即可实现。并且,其硬件复杂度仅为0(n),而其时间延迟仅为常数级0(1)(仅为1或2级异或门的延迟)。因此,该项技术不仅适用于大型的系统中,亦适用于中、小型乃至微型系统中;该项技术不仅可以在一级CACHE系统中实现,而且可以在二级CACHE系统中实现;它不但可以以“片内”方式实现(集成于CPU芯片内),亦可以以“片外”方式实现。因此,不但CPU制造商可以实现,计算机系统设计者也可以实现。

    第二,功能强。对常用数据模式的访问并非可以全用单重循环的不同步长来实现,比如对二维矩阵中数据块的访问。通过研究数值分析、图象处理与模式识别、信号处理、科学工程计算中的常用数据模式,我们设计强功能的地址映射方式,以满足对这些模式的无冲突访问或减少这些模式在CACHE中的冲突。

    第三,使用灵活。由于硬件实现简单,可以在同一系统的地址映射机构中实现不同的映射函数,从而满足不同的使用要求。这一点既可以由程序员选择和控制,也可以通过较高级编译系统自动控制,或者以程序员和编译系统相结合的方式实现。

    为便于进一步了解本发明的特征、功效和实现方式,以下结合附图对本发明作进一步的说明,其中:

    图1为传统的CACHE与内存地址映射图。

    图2为本发明新的CACHE结构图。

    图3、图4为本发明16×16矩阵在EE函数映射下的高速缓存映射矩阵。

    图5为本发明EE函数的实现电路图。

    图6为16×16的矩阵在LR映射(n=4)中的高速缓存映射矩阵。

    图7为32×32的矩阵在LR映射(n=5)中的高速缓存映射矩阵。

    图8为本发明LR映射函数的实现电路。

    图9为本发明数据块移动图。

    在图1所示的传统从CACHE与主存地址的映射方式中,主存地址被划分为三个位段。设主存地址为m位。主存地址的最低位为数据在一个CACHE行中的字节号(一个CACHE行含2w个字节),称为行内位移字段d;其中间的n位为CACHE行号(一个CACHE存储体的容量为2n行),称为行号字段1;其最高t位为标志位字段tag(t=m-(n+w))。

    在我们的异或映射方式中,CACHE的标志位字段和CACHE行内位移字段的形成方式与传统的映射方式相同,而CACHE行号字段则是以传统的行号字段1与标志位字段tag的特定位间的按位异或形成的。而CACHE系统的结构便如图2所示。

    图2中的散射机构的映射函数,原则上应使得1与s有一对一的映射关系,以提高CACHE空间的使用效率。依据对系统性能的要求,既可以实现单一的映射函数,也可能同一个机构中实现多于一个的映射函数,使得用户(或编译程序)根据不同的应用问题选择不同的映射函数。而映射函数的选取可以依据不同的数据访问模式进行(选择不同的映射函数),也可以依据不同的数据结构尺寸进行(选取1、tag的不同的位段进行运算以形成s的特定位段)。

    我们将以i表示图2中内存地址中的tag字段,以j表示1字段,而以s表示由映射函数形成的CACHE行号(集号set number)。本文把我们提出的散射机构称为“XOR散射机构”,把所提出的函数统称为“XOR映射函数”。“XOR映射函数”这一名词来源于Frailong等对一类并行存储体斜排方案所给出的一般性描述〔参考文件2〕。把并行存储体斜排方案中的存储体号换为CACHE系统中的CACHE行号,我们给出以下描述。

    一个XOR映射函数由下式描述:

                  Sτ=A×iτB×jτ

    (公式1)中的i和j为n位向量,A和B皆为n×n矩阵,式中的运算均在GF(2)(伽罗华域)上进行,s即为映射函数产生的CACHE行号。

    请注意,第一,这里要求i与j皆为n位,但实际系统中内存地址中的tag位段和1位段却不一定具有相同的位数(或由于机器结构的原因,它们不具有适于变换的相同的位数),这时只要把i与j理解为tag和1中参与变换的相应位段就可以了。第二,为满足充分利用CACHE空间的要求,A和B应为非奇异矩阵,这样才能使得1和s具有一对一的映射关系。

    以下描述两种我们提出的映射函数。

    EE函数是几种并行存储体斜排方案之一,其直观和详细的描述可参看〔(参考文件3〕。须说明的是,在[参考文件3]中,EE函数是做为并行存储系统的斜排方案被提出的,而与CACHE的结构和映射方式无关系。EE函数可由下式表示:

                 Sτ=(R×iτ)(I×jτ)    (公式2)公式2中R为一个n×n的反对角线矩阵,而I为一个n×n的单位矩阵,即:

    以ru,v表示R第u行第v列的元素(0≤u,v≤n-1),则当u=n-1-v时ru,v=1,否则ru,v=0。

    EE函数的一个突出的优点是实现极为简单。从其构造可以看出它的硬件实现仅需要几个异或门电路。考虑到器件技术的发展,在可预见的近些年内,此函数仅要几个到十几个异或门即可实现,其代价可以说是微乎其微的。

    EE函数的另一个突出优点是功能强大。它能覆盖许多最常用的数据访问模式。

    在一个2n×2n的矩阵的首元素地址为0的情况下,它可以保证对以下常用数据模式的CACHE无冲突访问:

    矩阵的一行或一列;

    正方形和各种长宽比例的长方形主块;

    进行了水平或垂直方向移动的正方形或长方形主块;

    离散块,即由2n个正方形或长方形主块中处于块内相同位置的2n个元素所构成的集合;

    由两行(或两列)一定规则的位置上的元素所构成的2n元素的集合,称为“部分行对”(或“部分列对”〕。

    这些数据访问模式是科学与工程计算、数值分析、图象处理、信号处理等应用领域的核心算法中常用的数据访问模式。详细的、形式化的定义和证明请参看下节“映射函数EE和LR的性质”。

    应该指出的是,EE映射函数保障对经水平或垂直移动了的正方形和长方形数据块无冲突存取的性质对CACHE系统是非常有意义的。因为有了这种性质,就可以保障即使对于相联度为1的最简单的CACHE,对任何起始点的由2n个连续元素所构成的数据块,任意一个CACHE行至多发生一次CACHE行冲突。现实的CACHE系统中,大多一级CACHE已实现相联度为2或2以上。因此我们可以说,在以EE函数映射的相联度大于或等于2的具有N行的CACHE系统,对N×N矩阵中任意一个包含N个元素的数据块的访问可以完全避免CACHE冲突。

    考虑到块数据访问对大量实用算法的重要性,显然,EE映射函数的这种性质对于相联度大于或等于2的CACHE系统具有重要意义。这是我们提出采用EE函数做为CACHE与主存间地址映射方式的一个重要原因。

    图3、图4给出了按EE函数映射时,一个16×16矩阵的诸元素被映射到一个有16行的CACHE中的示意。假设该矩阵在主存中按以行为主(C语言所采用的方式)存放占据0~255数据单元,图中的数字即是经过EE映射后相应数据元素被映射到的CACHE行号。我们标出了几种在EE映射下的无冲突访问的数据模式(方形和长方形数据块)。

    图5给出了对一个仅有16行CACHE系统实现EE映射的电路。由EE函数的构造方式公式2,矩阵R(反对角线矩阵)和矩阵I(单位矩阵)的任意一行仅有一个1,从而S的任何一位仅由CPU地址的标志位字段(tag)中的一位与原行号字段(1)中的一位异或而形成。此处,CPU数据地址的标志位字段和行号字段均为4位。由图可见,EE函数仅需n个(此处£nn=4)异或门即可实现,其延迟仅为1级异或门电路的延迟(与n无关)。

    在图5中异或门的输入端的其中一端接CPC数据地址寄存器的行号字段;另一端接CPU数据地址寄存器的标志位字段tag,异或门的输出端分别接入标志位存储体和数据存储体。

    我们前面介绍的EE函数虽然可实现对大量常用的数据访问模式的无冲突访问,并且对数据块访问具有特殊的重要意义,但是却不能保证对2的任意方幂步距向量的无冲突访问。参考文献4中提出的方法可以实现对2的任意方幂步距向量的无冲突访问,但其构造复杂,且不能同时实现对其它的大量的常用数据模式的无冲突访问。考虑到2的任意方幂步距向量模式在实际应用中的重要性,研究同时满足2的任意方幂步距向量及其它常用的数据模式的构造和实现起来简单易行的函数具有重要意义。LR函数是我们为此目的而构造的映射函数。  LR函数以下述方式构造:

                 Sτ=(H×iτ)(I×jτ)    (公式3)式(3)中I仍为单位矩阵,而H矩阵的构造为

    本发明一种CACHE系统中的地址映射变换技术与装置,一个改进了的CACHE系统,在这样的CACHE系统中采用XOR地址散射机构以改进内存储器的数据在CACHE数据存储体中的分布方式;该地址散射机构的输入为数据的地址中的CACHE标志位字段(或其中一个部分字段)及CACHE行号字段(或其中一个部分字段),该地址散射机构的输出为CACHE行号(或其中一个部分字段)。这一新形成的CACHE行号用于指示CACHE数据存储体及CACHE标志位存储体的实际访问地址(行号);所述地址散射机构由公式

                 Sτ=(R×iτ)(I×jτ)

    所定义的映射函数EE或公式

                 Sτ=(H×iτ)(I×jτ)所定义的映射函数LR实现,其中公式中的i和j即为该地址散射机构的输入,而S即为该地址散射机构的输出。

    LR映射函数可以满足对N×N矩阵的如下数据模式的无冲突CACHE访问。矩阵的行和列;

    正方形和各种长宽比例的长方形块;

    离散块,即由N个正方形或长方形主块中处于相同位置的N个元素所构成的数据集合;

    间隔为2I(i为任意整数,i<n)的等间隔主向量;

    移位等间隔主向量(间隔为2i,其中i为小于n的整数);

    主对角线(当n位偶数时)。

    上述等间隔主向量和移位等间隔主向量就是步长为2i的循环所访问的N个数据元素所构成的数据模式。这种数据访问模式是数字图象处理、信号处理核心算法中(例如FFT)最重要的访问模式之一。因此解决此类数据模式的无冲突访问对数字图象处理、信号处理等应用问题具有重要的实际意义。

    图6和图7给出了在LR函数映射下16×16和32×32矩阵各元素的CACHE行号。图7给出了连续块和离散块的示意。图8给出了不同起始点、不同跳距的向量元素所映射到的CACHE行号。

    图8给出了一个16(2n=24)行CACHE系统中LR映射函数的实现电路。由LR函数的构造方式公式3,H矩阵的任意一行仅含最多2个1,而I矩阵(单位矩阵)的任意一行仅含最多1个1,从而S的任何一位仅由标志位字段tag中的最多两位和原行号字段1中的一为异或而形成。从图中可以看出,该函数仅需6个异或门即可实现,而其延迟仅为2级异或门电路延迟。

    本节图5和图8中的输入第7,6,5,4位即相应于前述图2中的CACHE标志位字段tag,本节图5和图8中的输入第3,2,1,0位即相应于前述图2中的原CACHE行号字段1,而本节图5和图8中的新形成的CACHE行号字段即相应于前述图2中的CACHE行号S。

    本节所提出的EE和LR映射函数的硬件开销均为对数量级。即,若CACHE容量为N=2n行,其硬件开销为0(log2N)。再之,无论是EE函数还是LR函数,其延迟均为常数级,即0(1),而与CACHE的大小无关。这些性质对于硬件实现是一个极为重要的优点。

    本部分给出映射函数EE和LR的性质的精确定义和形式化证明。在以下叙述中,我们均假定CACHE存储体含有N=2n行,而每个CACHE行存储一个数据元素;当我们谈到矩阵时,我们假定矩阵的尺寸为N×N;我们假定该矩阵的首元素地址为0,且矩阵的存储方式是“以行为主”(如C语言编译的方式)。如果矩阵的存储方式是“以列为主”(如FORTRAN语言的编译方式)根据证明过程易知以下性质仍成立。以下证明中,凡谈到n×n矩阵,其行号和列号均以n-1,n-1,…,1,0的次序计数;最上方的行为n-1,最左方的列为n-1,从而矩阵的左上角元素的下标为(n-1,n-1),右下角的元素的坐标为(0,0)。

    下面证明EE函数的性能。

    定理1:在EE函数映射下,矩阵的任意一行中的任意两个元素均不产生CACHE冲突,从而矩阵的任意一行的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    证明:设矩阵A的任一行的两元素为au,v和ax,y,它们所应在的CACHE行号为S1和S2。由于此二元素为矩阵同一行的元素,所以有u=x及v≠y。从而

                S1S2=((R×u)(I×v))((R×x)(I×y))

                =R×(ux)I×(vy)=I×(vy)

    由于I是一个单位矩阵,它是非奇异的,所以S!S2非0,即这两个矩阵元素存储于CACHE的不同行中。

    定理2:在EE函数映射下,矩阵的任意一列中的任意两个元素均不产生CACHE冲突,从而矩阵的任意一列的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    注意到R是一个非奇异矩阵,易知此性质可与定理1类似证得。

    EE函数的突出优点是它保证对含有N个元素的各种模式的数据块的无冲突访问的性质。下面我们给出数据块的形式定义和证明。  定义1:N×N的矩阵X的连续PQ块BLK(P,Q:k,1)定义为:

    BLK(P,Q:k,l)={xk+a,l+b(0≤a≤P-1)∧(0≤b≤Q-1)}

    其中P=2p,Q=2q,p与q皆为整数,且p+q=n。

    定义2:N×N的矩阵X的主PQ块MBLK(P,Q:k,1)定义为满足(kMODP=0)∧(lMODQ=0)的连续PQ块。

    图3、图4中标明了16×16的矩阵中的主PQ块MBLK(4,4:0,0)和MBLK(2,8:2,8)。

    在比较复杂的矩阵运算中,由于矩阵尺寸很大,为了充分利用层次存储系统结构中的高速缓存系统提高计算速度,程序设计者常常想采用矩阵分块算法来加速应用程序的执行速度。另外,一种非常典型的矩阵块存取的应用是图象处理中广泛应用的图象滤波算法。由于矩阵分块算法在数值运算和其它应用中的重要性,一般并行存储方法都把它列入非常重要的并行存取模式。但是,具有更重要意义的是行地址和列地址都以2的正整数次幂为起点的主P×Q块,因为在分块矩阵运算中,程序设计者通常把矩阵分为长、宽为2的正整数次幂的矩阵块来进行分块计算,这时的分块矩阵就是矩阵的主PQ块。

    定理3:在EE函数映射下,矩阵的任意一主PQ块中的任何两元素均不产生CACHE冲突,从而矩阵的任意一主PQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    证明:在CACHE行号的产生式中,由于其乘法运算和加法运算都是在GF(2)上进行运算,所以可以对其进行如下改写:Su,v=(R×u)(I×v)=RI×uv]]>=C×l=C1C2C3C4×l1l2l3l4]]>=C1C3×l1l3⊕C2C4×l1l4]]>

    其中:矩阵C1由矩阵R的第n-1至第p列组成,l1=(un-1,un-2…,up)τ

    矩阵C2由矩阵R的第p-1至第0列组成,l2=(up-1,up-2…,u0)τ

    矩阵C3由矩阵I的第n-1至第q列组成,l3=(vn-1,vn-2…,vq)τ

    矩阵C4由矩阵I的第q-1至第0列组成,l4=(vq-1,vq-2…,v0)τ。

    我们考察由C2和C4构成的矩阵[C2 C4]。由于C2是由R的第p-1至第0列(共p列)构成,而C4由I的第q-1至第0列(共q列)构成,考虑p+q=n,易知[C2C4]构成的矩阵是维数为n的矩阵。

    对于N×N的矩阵X的主PQ块中的任意两个元素xu,v与x′u′,v′有l1=l1′,l3=l3′,但l2=l2′与l4=l4′不能同时成立。Su,v⊕Su′,,v′=((C1C3×l1l3⊕(C2C4×l2l4))⊕]]>((C1C3×l1′l3′)⊕(C2C4×l2′l4′))]]>=(C1C3×(l1l3⊕l1′l3′))⊕(C2C4×(l2l4⊕l2′l4′))]]>=C2C4×(l2l4⊕l2′l4′)]]>≠0即任意两元素所映射的CACHE行号均不相同。所以EE函数可以保证矩阵的主PQ块中的任意两个元素分别存储在不同的CACHE行中,即EE函数可保证矩阵的主PQ块的N个元素同时驻留在CACHE中。

    定义3:N×N的矩阵X的移位PQ块SHBLK(P,Q:k,1)定义为满足(kMODP=0)∨(lMODQ=0)的连续PQ块。

    定理4:在EE函数映射下,矩阵的任意-移位PQ块中的任何两元素均不产生CACHE冲突,从而矩阵的任意-移位PQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    证明:类似于定理3的证明,此处从略。

    矩阵的移位PQ块是由主PQ块在水平或垂直方向移位而得。定理4是一个比定理3表示更强功能的定理,因为它不但保证主块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中,而且保证只要主块仅在水平或垂直一个方向移位,它的N个元素也能同时驻留在CACHE中。

    定理5:在相联度等于或大于2而每个CACHE存储体具有N行的的CACHE系统中,如果采用EE函数,则可使得N×N矩阵的任何包含N个连续元素的数据块可同时驻留在CACHE存储体中。

    证明:如图9所示,取任一包含N个元素的p×Q连续块mnop,可以认为它是由一个主块abcd在水平方向移动X个元素点而在垂直方向移动Y个元素点而得到。设主块abcd在水平方向移动X点后为移位块efgh,则易知mnop是由efgh在垂直方向移动Y点而得到的。设主块abcd在垂直方向移动Y点后为移位块ijkl,则易知mnop是由ijkl在水平方向移动X点而得到的。但由定理3知,efgh的N个元素所对应的CACHE行号无冲突,所以mngh中的任意两元素所对应的CACHE行号亦无冲突。同样道理知,hckp中的任意两元素所对应的CACHE行号亦无冲突。

    但我们确知,cgok是属于另一主PQ块,所以其中的任意两元素所对应的CACHE行号亦无冲突。

    另外,由定理3知cgok中的元素与jngc中的元素CACHE行号无冲突,且与hckp中的行号亦无冲突。

    综上所述,我们知道,CACHE行号发生冲突的可能只有cgok中的一个元素和mjch中的一个元素,或者jngc中的一个元素和hckp中的一个元素。发生冲突的元素可能同时有多个,但只能是一对一的。这就证明了定理4的结论。

    由于分块算法在科学与工程计算、数值分析、图象处理与模式识别、信号处理等应用领域中的重要性,定理4表述了EE函数的非常重要和优越的性质。

    在某些图象处理算法中,要访问由图象矩阵的各连续块中处于相同位置的各个点所构成的模式,我们称这种模式为“离散块”(SCatteredBLocKss),如以下形式定义。

    定义4:设a,b为整数,且0≤a≤P-1,0≤b≤Q-1。N×N的矩阵X的离散PQ块SCBLK(P,Q:a,b)定义为所有的元素xu,v,其中u=amod P且v=b mod Q。

    这种模式主要用在图象处理和模式识别算法中。

    定理6:在EE函数映射下,矩阵的任意一离散PQ块中的任何两元素均不产生CACHE冲突,从而矩阵的任意一离散PQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    证明:与定理3的证明中类似,对矩阵元素的CACHE行号表达式做如下改写:

      Sui,v=(R×u)(I×v)=C1C3×l1l3⊕C2C4×l2l4]]>易于证明矩阵[C1 C3]的秩为n。

    对于N×N的矩阵的散列P×Q块SCBLK(P,Q:a,b)中的任意两个元素xu,v与xu′,v′,有l2=l2′,l4=l4′,但l1=l1′与l3=l3′不能同时成立。设在采用EE方法时,xu,v与xu′,v′分别存储在Su,v与Su′,v′CACHE行中,则:Su,v⊕Su′,v′=((C1C3×l1l3)⊕(C2C4×l2l4))⊕]]>((C1C3×l1′l3′)⊕(C2C4×l2′l4′))]]>=(C1C3×(l1l3⊕l1′l3′))⊕(C2C4]]>=C1C3×(l1l3⊕l1′l3′)]]>≠0即任意二元素的CACHE行号不同,从而任意一个离散块的N个元素均可同时驻留在CACHE中。

    在图象处理算法中,有时要用到模式“部分行对”及“部分列对”。它们分别定义如下。

    定义5:N×N矩阵X的下述N-1个元素称为X的部分行对PRP:

    PRP(k)={xk,0,xk,1,…,xk,k-1,xN-l-k,0,xN-l-k,1,…,xN-l-k,N-l-k-1},

    其中0≤k≤N-1 。

    定义6:N×N矩阵X的下述N-1个元素称为X的部分列对PCP:

    PCP(k)={x0,k,x1,k,…,xk-1,k,x0,n-l-k,,x1,n-l-k,…,xN-l-k-1,n-l-k},

    其中0≤k-≤N-1。

    引理1:对于任何u,v,(0≤u,v≤N-1),均有

           Su,v=SN-l-u,N-l-v,其中Su,v

    (SN-l-u,N-l-v)是元素xu,v(元素xN-l-u,N-l-v)在EE函数映射下的CACHE行号。

    证明:由于u(或v)中的任何一位都是N-l-u(或N-l-v)中相应位的反码,因此Su,v中任何一位均为SN-l-u,N-l-v中的相应位经两次求反而得,从而引理得证。

    定理7:在匝函数的映射下,N×N矩阵X中任一个部分行对中的N-1个元素均可同时驻留在CACHE存储体的N行中。

    证明:由定义5知,对于任何一个u,均有,若xk,u∈PRP(k)则xN-1-k,N-1-u∈PRP(k),反之亦然。再由引理1知,该行对中第k行中属于PRP(k)的元素所占用的CACHM行号恰为第N-l-k行中不属于PRP(k)的元素所占用的行号。再由定理2知任一行中的N个元素无CACHE行号冲突。从而知任一行对中的N-1个元素不存在CACHM行号冲突。

    定8:在EE函数的映射下,N×N矩阵X中任一个部分列对中的N-1个元素均可同时驻留在CACHE存储体的N-1行中。

    定8的证明与定理7类似,此处从略。

    下面证明LR函数的性质。

    定理9:在LR函数映射下,矩阵的任意一行中的任意两个元素均不产生CACHE冲突,从而矩阵的任意一行的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    此定理的证明与定理1类似,此处从略。

    定理10:在LR函数映射下,矩阵的任意一列中的任意两个元素均不产生CACHE冲突,从而矩阵的任意一列的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    此定理的证明与定理2类似,此处从略。

    定理1l:在LR函数映射下,矩阵的任意一主PQ块中的任何两元素均不产生CACHE冲突,从而矩阵的任意一主PQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    此定理的证明与定理3类似,此处从略。

    定理12:在LR函数映射下,矩阵的任意一离散PQ块中的任何两元素均不产生CACHE冲突,从而矩阵的任意一离散PQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。

    此定理的证明与定理6类似,此处从略。

    定义4:N×N的矩阵X的连续等间隔向量SEQ(N,S:k,1)定义为:∧(q=0,1,…,N-1)}

    其中S为向量的步距,它是一个正整数,X(k,1)为该向量的第一个元素。

    定义5:N×N的矩阵X的等间隔主向量MSEQ(N,S:k,1)定义为满足条件(k×N)mod(S×N)=0的连续等间隔向量。

    图6中标出了在N=32的并行存储系统中,32×32的矩阵中的等间隔主向量MSEQ(32,4:4,0)及MSEQ(32,16:16,0)。定理13:在LR£函数映射下,步距S为2s的等间隔主向量MSEQ(N,S:k,1)的N个元素可以同时驻留在CACHE中。

    证明:对于S=2s(即步距为2的整数方幂的情况),可以对元素的CACHE行号表达式进行如下改写:Su,v=(H×u)(I×v)=HI×uv]]>=C×l=C1C2C3C4×l1l2l3l4]]>=C1C4×l1l4⊕C2C3×l2l3]]>其中:矩阵C1由矩阵H的第n-1至第s列组成,

               l1=(un-1,un-2…,us)τ

    矩阵C2由矩阵H的第s-1至第0列组成,

              l2=(us-1,us-2…,u0)τ

    矩阵C3由矩阵I的第n-1至第s列组成,

              l3=vn-1,vn-2…,vs)τ

    矩阵C4由矩阵I的第s-1至第0列组成,

              l4=(vs-1,vs-2…,v0)τ

    可以证明矩阵[C2 C3)的秩为n。

    对于N×N矩阵的步距S=25的等间隔主向量MSEQ(N,S:k,1)中的任意两个元素xu,v和xu′,v′均有l1=l1′,l4=l4′,但l2=l2′与l3=l3′不能同时成立。Su,v⊕Su′,v′=((C1C4×l1l4⊕(C2C3×l2l3))⊕]]>((C1C4×l1′l4′)⊕(C2C3×l2′l3′))]]>=(C1C4×(l1l4⊕l1′l4′))⊕(C2C3×(l2l3⊕l2′l3′))]]>=C2C3×(l2l3⊕l2′l3′)]]>≠0

    所以在以LR函数映射的情况下,N×N矩阵中的步距为S=2s的等间隔主向量中的任意两个元素分别被映射在不同的CACHE中,即步距为S=2s的等间隔主向量的N个元素均可同时驻留在CACHE中。

    定义6:N×N的矩阵X的移位等间隔主向量SHMSEQ(N,S:k,1)定义为满足条件0≤(k×N)mod(S×N)≤S-1的连续等间隔向量。

    图7表示了在N=32的并行存储系统中,32×32的矩阵中的移位等间隔主向量SHMSEQ(32,2∶0,1)及SHMSEQ(32,8∶8,2)。定理14:在LR函数映射下,步距为2s的移位等间隔主向量SHMSEQ(N,S:k,1)的N个元素可以同时驻留在CACHE中。此定理的证明与定13的证明类似,此处省略。定15:在LR函数映射下,步距为1/22s的任何等间隔向量SEQ(N,S:k,1)的N个元素可以同时驻留在相联度大于或等于2的CACHE中。

    利用定理5证明中的思想和定理13、定理14的结果可知定理15的正确性,此处证明从略。

    等间隔向量的并行存取在科学计算和工程问题求解中具有非常重要的意义,尤其是快速傅立叶变换(FFT)计算中用到的间隔为2的正整数次幂的等间隔向量。这是因为快速傅立叶变换广泛应用于许多科学和工程计算领域,如在图象处理、数字信号处理、模式识别等领域都有十分广泛的应用。由于FFT算法中反复用到步距为2的不同的整数方幂的循环,而CACHE存储体的行数又是一个2的整数方幂,所以以传统的方式进行CACHE地址映射通常会产生大量的CACHE冲突,难以实现高效计算。利用LR函数进行CACHE映射可以有效地解决这一问题。

    定理16:在LR函数映射下,当n为偶数时,N×N矩阵的主对角线的N个元素可以同时驻留在CACH中。

    证明:矩阵X的主对角线任意两个元素xu,u与xv,v的CACHE行号为Su,u和Sv,v

    Su,uSv,v=((H×u)(I×u))((H×v)(I×v))

                =((HI)×u)((HI)×v)

                =(HI)×(uv)

    只要我们证明出矩阵HI的秩为n,则可由u≠v推出(HI)×(uv)≠0,从而得出Su,u≠Sv,v。

    设矩阵C=HI,cx,y为矩阵C的下标为(x,y)的元素,则矩阵C可以表示如下:

    当n为偶数时,矩阵C是一个上三角矩阵,且其反对角线元素都为1,所以矩阵C的秩为n。

    定理17:在LR函数映射下,当n为偶数时,则N×N矩阵的反对角线上的N个元素可以同时驻留在CACHE中。

    证明:对于矩阵X的反对角线的任意两个元素xu,N-l-u与xv,N-l-v,设它们分别存储在Su,N-l-u与Sv,N-l-vCACHE行中:Su,N-l-uhv,N-l-v=((H×u)(I×(N-l-u))((H×v)(I×(N-l-v))

                    =(H×(uv)(I×((N-l-u)(N-l-v)))

                    =(HI)×(uv)

    由定理16的证明知,当n为偶数时,矩阵HI的秩为n,而u≠v,从而本定理得证。

    从以上证明可以看出,本发明以主存地址不同位段间的函数EE或LR变换生成主存数据在CACHE中的存储地址,从而减少实用核心算法中CACHE数据存取冲突,提高系统的有效存取速度,以提高整个计算系统的计算速度,本技术已在实验系统“和平机”的二级CACHE系统的设计中实现,即使本技术仅应用于二极CACHE系统的设计中,亦可使整个计算机系统对若干常用算法的运算速度提高30%-60%。

高速缓冲存储器系统中的地址映射变换技术与装置.pdf_第1页
第1页 / 共28页
高速缓冲存储器系统中的地址映射变换技术与装置.pdf_第2页
第2页 / 共28页
高速缓冲存储器系统中的地址映射变换技术与装置.pdf_第3页
第3页 / 共28页
点击查看更多>>
资源描述

《高速缓冲存储器系统中的地址映射变换技术与装置.pdf》由会员分享,可在线阅读,更多相关《高速缓冲存储器系统中的地址映射变换技术与装置.pdf(28页珍藏版)》请在专利查询网上搜索。

本发明提出一种CACHE系统中的地址映射变换技术与装置,在这样的CACHE系统中采用XOR地址散射机构以改进内存储器的数据在CACHE数据存储体中的分布方式;该地址散射机构的输入为数据的地址中的CACHE标志位字段(或其中一个部分字段)及CACHE行号字段(或其中一个部分字段),该地址散射机构的输出为CACHE行号(或其中一个部分字段)。这一新形成的CACHE行号用于指示CACHE数据存储体及CA。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1