在图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 nmber)。本文把我们提出的散射机构称为“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的单位矩阵,即:
以γu,v表示R第u行第v列的元素(0≤u,v≤n-1),则当u=n-1-v时γu,v=1,否则γu,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矩阵的如下数据模式的无冲突CAGE访问。
矩阵的行和列;
正方形和各种长宽比例的长方形块;
离散块,即由N个正方形或长方形主块中处于相同位置的N个元素所构成的数据集合;
间隔为2I(i为任意整数,i<n)的等间隔主向量;
移位等间隔主向量(间隔为2i,其中i为小于n的整数);
主对角线(当n位偶数时)。
上述等间隔主向量和移位等间隔主向量就是步长为2i的循环所访问的N个数据元素所构成的数据模式。这种数据访问模式是数字图象处理、信号处理核心算法中(例如FFT)最重要的访问模式之一。因此解决此类数据模式的无冲突访问对数字图象处理、信号处理等应用问题具有重要的实际意义。
图6和图7给出了在LR函数映射下16×16和32×32矩阵各元素的CACHE行号。图7给出了连续块和离散块的示意。图8给出了不同起始点、不同跳距的向量元素所映射到的CAGE行号。
图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中的CAGE行号S。
本节所提出的EE和LR映射函数的硬件开销均为对数量级。即,若CAGE容量为N=2n行,其硬件开销为0(log2N)。再之,无论是EE函数还是LR函数,其延迟均为常数级,即0(1),而与CAGE的大小无关。这些性质对于硬件实现是一个极为重要的优点。
本部分给出映射函数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的任一行的两元素为αu,v和αx,y,它们所应在的CACHE行号为S1和S2。由于此二元素为矩阵同一行的元素,所以有u=X及v≠y。从而
S1S2=((R×u)(I×v))((R×x)(I×y))
=R×(ux)I×(vy)=I×(vy)
由于I是一个单位矩阵,它是非奇异的,所以S1S2非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冲突,从而矩阵的任意一主FQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。
证明:在CACHE行号的产生式中,由于其乘法运算和加法运算都是在GF(2)上进行运算,所以可以对其进行如下改写:Su,v=(R×u)(I×v)
=C×l
其中:矩阵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构成的矩阵[C2C4]。由于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′不能同时成立。 ≠0即任意两元素所映射的CACHE行号均不相同。所以EE函数可以保证矩阵的主PQ块中的任意两个元素分别存储在不同的CACHE行中,即EE函数可保证矩阵的主FQ块的N个元素同时驻留在CACHE中。
定义3:N×N的矩阵X的移位PQ块SHBLK(P,Q:k,l)定义为满足(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行号表达式做如下改写:su,v=(R×u)(I×v) 易于证明矩阵[C1C3]的秩为n。
对于N×N的矩阵的散列P×Q块SCBLK(P,Q:a,b)中的任意两个元素xu,v与xiu′,v′,有l2=l2′,l4=l4′,但l1=l1′与l3=l3′不能同时成立。设在采用EE方法时,xu,v与′xiu′,v′分别存储在su,v与su′,v′CACHE行中,则: ≠0
即任意二元素的CACHE行号不同,从而任意一个离散块的N个元素均可同时驻留在CACHE中。
在图象处理算法中,有时要用到模式“部分行对”及“部分列对”。它们分别定义如下。
定义5:N×N矩阵X的下述N-1个元素称为X的部分行对PRP:
PRP(k)={xk,0,xk,1,…,xk,k-1,xN-1-k,0,xN-1-k,1,…,xN-1-k,N-1-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-1-k,,x1,n-1-k,…,xN-1-k-1,n-1-k},
其中0≤k≤N-1。
引理1:对于任何u,v,(0≤u,v≤N-1),均有
su,v=sN-1-u,N-1-v,其中su,v
(sN-1-u,N-1-v,)是元素xu,v(元素xN-1-u,N-1-v)在EE函数映射下的CACHE行号。
证明:由于u(或v)中的任何一位都是N-1-u(或N-1-v)中相应位的反码,因此su,v中任何一位均为sN-1-u,N-1-v中的相应位经两次求反而得,从而引理得证。
定理7:在EE函数的映射下,N×N矩阵x中任一个部分行对中的N-1个元素均可同时驻留在CACHE存储体的N行中。
证明:由定义5知,对于任何一个u,均有,若x
k,u∈PRP(k)则x
N-1-k,N-1-u PRP(k),反之亦然。再由引理1知,该行对中第k行中属于PRP(k)的元素所占用的CACHE行号恰为第N-1-k行中不属于PRP(k)的元素所占用的行号。再由定理2知任一行中的N个元素无CACHE行号冲突。从而知任一行对中的N-1个元素不存在CACHE行号冲突。
定理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类似,此处从略。
定理11:在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,l)的N个元素可以同时驻留在CACHE中。
证明:对于S=2s(即步距为2的整数方幂的情况),可以对元素的CACHE行号表达式进行如下改写:
Su,v=(H×u)(I×v)
=C×l 其中:矩阵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)τ
可以证明矩阵[C2C3]的秩为n。
对于N×N矩阵的步距S=2s的等间隔主向量MSEQ(N,S:k,l)中的任意两个元素xu,v和xu′,v′均有l1=l1′,l4=l4′,但l2=l2′与l3=l3′不能同时成立。 ≠0
所以在以LR函数映射的情况下,N×N矩阵中的步距为S=2s的等间隔主向量中的任意两个元素分别被映射在不同的CACHE中,即步距为S=2s的等间隔主向量的N个元素均可同时驻留在CACHE中。
定义6:N×N的矩阵X的移位等间隔主向量SHMSQ(N,S:k,l)定义为满足条件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,l)的N个元素可以同时驻留在CACHE中。
此定理的证明与定理13的证明类似,此处省略。
定15:在LR函数映射下,步距为2s的任何等间隔向量SEQ(N,S;k,l)的N个元素可以同时驻留在相联度大于或等于2的CACHF中。
利用定理5证明中的思想和定理13、定理14的结果可知定理15的正确性,此处证明从略。
等间隔向量的并行存取在科学计算和工程问题求解中具有非常重要的意义,尤其是快速傅立叶变换(FFT)计算中用到的间隔为2的正整数次幂的等间隔向量。这是因为快速傅立叶变换广泛应用于许多科学和工程计算领域,如在图象处理、数字信号处理、模式识别等领域都有十分广泛的应用。由于FFT算法中反复用到步距为2的不同的整数方幂的循环,而CACHE存储体的行数又是一个2的整数方幂,所以以传统的方式进行CACHE地址映射通常会产生大量的CACHE冲突,难以实现高效计算。利用LR函数进行CACHE映射可以有效地解决这一问题。
定理16:在LR函数映射下,当n为偶数时,N×N矩阵的主对角线的N个元素可以同时驻留在CACHE中。
证明:矩阵X的主对角线任意两个元素xu,u与xv,v的CACHE行号为su,u和sv,v
su,usv,v=((H×u)(I×u))((H×v)(I×v))
=((HI)×u)((HI)×v)
=(HI)×(uv)
只要我们证明出矩阵HI的秩为n,则可由u≠v推出(HI)×(uv)≠0,从而得出su,u≠sv,v。
设矩阵C=HI,cx,y为矩阵C的下标为(x,y)的元素,则矩阵C可以表示如下:当n为偶数时,
,矩阵C是一个上三角矩阵,且其反对角线元素都为1,所以矩阵C的秩为n。
定理17:在LR函数映射下,当n为偶数时,则N×N矩阵的反对角线上的N个元素可以同时驻留在CACHE中。
证明:对于矩阵X的反对角线的任意两个元素xu,N-1-u与xv,N-1-v,设它们分别存储在su,N-1-u与sv,N-1-vCACHE行中:Su,N-1-uhv,N-1-v=((H×u)(I×(N-1-u))((H×v)(I×(N-1-v))
=(H×(uv)(I×((N-1-u)(N-1-v)))
=(HI)×(uv)
由定理16的证明知,当n为偶数时,矩阵HI的秩为n,而u≠v,从而本定理得证。
从以上证明可以看出,本发明以主存地址不同位段间的函数EE或LR变换生成主存数据在CACHE中的存储地址,从而减少实用核心算法中CACHE数据存取冲突,提高系统的有效存取速度,以提高整个计算系统的计算速度,本技术已在实验系统“和平机”的二级CACHE系统的设计中实现,即使本技术仅应用于二极CACHE系统的设计中,亦可使整个计算机系统对若干常用算法的运算速度提高30%-60%。