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

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

Info

Publication number
CN1081361C
CN1081361C CN97120245A CN97120245A CN1081361C CN 1081361 C CN1081361 C CN 1081361C CN 97120245 A CN97120245 A CN 97120245A CN 97120245 A CN97120245 A CN 97120245A CN 1081361 C CN1081361 C CN 1081361C
Authority
CN
China
Prior art keywords
cache
address
matrix
data
field
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.)
Expired - Fee Related
Application number
CN97120245A
Other languages
English (en)
Other versions
CN1217505A (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.)
Ningbo Zhongke IC Design Center Co., Ltd.
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN97120245A priority Critical patent/CN1081361C/zh
Publication of CN1217505A publication Critical patent/CN1217505A/zh
Application granted granted Critical
Publication of CN1081361C publication Critical patent/CN1081361C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

CACHE系统中的地址映射变换技术与装置
本发明属计算机技术领域,特别是指一种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行中。在FORTRAN语言中,每个行的N个数据元素则会被映射到同一个CACHE行中。这时CACHE空间的利用率仅为1/N。易知,若为了提高CACHE的利用率而采用分块运算方式,一个的块对CACHE的利用率仅为
应该指出的是:
第一,CACHE的空间利用率的提高未必能导致CACHE命中率的提高。
第二,上述问题并非可以通过简单地增加CACHE容量所能解决的。
产生上述问题的原因在于程序中的数据访问模式和图1所示的传统的CACHE与内存地址间的映射方式。
美国专利No.5,133,061文献[参考文件4]提出一种方法,改进CACHE的访问性能。该方法提出以数据地址和一个特定设计的位矩阵相乘来产生CACHE行地址,使得数据地址随机化。其特定设计的位矩阵是以“Sierpinsky’s Gasket”(Pascal三角形的二进制形式)来构造的。采用这种方法可以使得以2的任何整数方幂为步距的循环的数据访问模式避免CACHE行冲突。
参考文件7提出,CACHE的行号由数据地址对2″-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 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矩阵的构造为
Figure C9712024500121
本发明一种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。从而
        S1S2=((R×u)(I×v))((R×x)(I×y))
        =R×(ux)I×(vy)=I×(vy)
由于I是一个单位矩阵,它是非奇异的,所以S1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冲突,从而矩阵的任意一主FQ块的N个元素可以同时驻留在一个具有N个CACHE行的CACHE存储体中。
证明:在CACHE行号的产生式中,由于其乘法运算和加法运算都是在GF(2)上进行运算,所以可以对其进行如下改写:Su,v=(R×u)(I×v) = R I × u ν
                     =C×l = C 1 C 2 C 3 C 4 × l 1 l 2 l 3 l 4 = C 1 C 3 × l 1 l 3 ⊕ C 2 C 4 × l 2 l 4
其中:矩阵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′不能同时成立。 s u , v ⊕ s u ′ , v ′ = ( ( C 1 C 3 × l 1 l 3 ) ⊕ ( C 2 C 4 × l 2 l 4 ) ) ⊕ ( ( C 1 C 3 × l 1 ′ l 3 ′ ) ⊕ ( C 2 C 4 × l 2 ′ l 4 ′ ) ) = ( C 1 C 3 × ( l 1 l 3 ⊕ l 1 ′ l 3 ′ ) ) ⊕ ( C 2 C 4 × ( l 2 l 4 ⊕ l 2 ′ l 4 ′ ) ) = C 2 C 4 × ( l 2 l 4 ⊕ l 2 ′ l 4 ′ ) ≠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) = C 1 C 3 × l 1 l 3 ⊕ C 2 C 4 × l 2 l 4 易于证明矩阵[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行中,则: s u , v ⊕ s u ′ , v ′ = ( ( C 1 C 3 × l 1 l 3 ) ⊕ ( C 2 C 4 × l 2 l 4 ) ) ⊕ ( ( C 1 C 3 × l 1 ′ l 3 ′ ) ⊕ ( C 2 C 4 × l 2 ′ l 4 ′ ) ) = ( C 1 C 3 × ( l 1 l 3 ⊕ l 1 ′ l 3 ′ ) ) ⊕ ( C 2 C 4 × ( l 2 l 4 ⊕ l 2 ′ l 4 ′ ) ) = C 1 C 3 × ( l 1 l 3 ⊕ l 1 ′ l 3 ′ ) ≠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,均有,若xk,u∈PRP(k)则xN-1-k,N-1-u
Figure C9712024500201
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)定义为: SEQ ( N , S : k , l ) = { x u , v | ( u = k + [ l + S * q N ] ) Λ ( v = ( l + S * q ) mod ( N ) )
∧(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) = H I × u v
                     =C×l = C 1 C 2 C 3 C 4 × l 1 l 2 l 3 l 4 = C 1 C 4 × l 1 l 4 ⊕ C 2 C 3 × l 2 l 3 其中:矩阵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′不能同时成立。 s u , v ⊕ s u ′ , v ′ = ( ( C 1 C 4 × l 1 l 4 ⊕ ( C 2 C 3 × l 2 l 3 ) ) ⊕ ( ( C 1 C 4 × l 1 ′ l 4 ′ ) ⊕ ( C 2 C 3 × l 2 ′ l 3 ′ ) ) = ( C 1 C 4 × ( l 1 l 4 ⊕ l 1 ′ l 4 ′ ) ) ⊕ ( C 2 C 3 × ( l 2 l 3 ⊕ l 2 ′ l 3 ′ ) ) = C 2 C 3 × ( l 2 l 3 ⊕ l 2 ′ l 3 ′ ) ≠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,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-1-u与xv,N-1-v,设它们分别存储在su,N-1-u与sv,N-1-vCACHE行中:Su,N-1-uhv,N-1-v=((H×u)(I×(N-1-u))((H×v)(I×(N-1-v))
                =(H×(uv)(I×((N-1-u)(N-1-v)))
                =(HI)×(uv)
由定理16的证明知,当n为偶数时,矩阵HI的秩为n,而u≠v,从而本定理得证。
从以上证明可以看出,本发明以主存地址不同位段间的函数EE或LR变换生成主存数据在CACHE中的存储地址,从而减少实用核心算法中CACHE数据存取冲突,提高系统的有效存取速度,以提高整个计算系统的计算速度,本技术已在实验系统“和平机”的二级CACHE系统的设计中实现,即使本技术仅应用于二极CACHE系统的设计中,亦可使整个计算机系统对若干常用算法的运算速度提高30%-60%。

Claims (3)

1、一种高速缓冲存储器系统中的地址变换方法,其特征在于,一个改进了的高速缓冲存储器系统,在这样的高速缓冲存储器系统中采用XOR地址散射机构以改进内存储器数据在高速缓冲存储器数据存储体中的分布方式;其实施方法为,把数据的地址中的高速缓冲存储器标志位字段或其中一个部分字段及高速缓冲存储器行号字段或其中一个部分字段作为XOR地址散射机构的输入,该地址散射机构的输出作为新形式的高速缓冲存储器行号或其中一个部分字段,这一新形式的行号用于指示高速缓冲存储器数据存储体及标志位存储体的实际访问地址,即高速缓冲存储器行号。
2、根据权利要求1所述的一种高速缓冲存储器系统的地址变换方法,其特征在于,所述地址变换由公式
    Sτ=(R×iτ)(I×jτ)
所定义的映射函数EE或公式
    Sτ=(H×iτ)(I×jτ)
所定义的映射函数LR给定;该函数运算均在GF(2)上进行;其中的i及j即为数据的地址中的高速缓冲存储器标志位字段或其中一个部分字段及高速缓冲存储器行号字段或其中一个部分字段,而S即为高速缓冲存储器数据存储体及标志位存储体的访问地址或其中一个部分字段;公式中的参数R、H、及I的定义如下:
R:R为一个n×n的反对角线矩阵:
Figure C9712024500021
H:H为一个n×n的矩阵,即:
Figure C9712024500022
I:I为一个n×n的单位矩阵。
3、一种高速缓冲存储器系统中的地址变换装置,其中的装置即为XOR地址散射机构,XOR地址散射机构包括异或门和与之相连的连线,其特征在于,其中,XOR地址散射机构的输入端中的一端接CPU数据地址寄存器中的高速缓冲存储器行号字段,另一端接CPU数据地址寄存器中的高速缓冲存储器标志位字段;XOR地址散射机构的输出端分别接入高速缓冲存储器数据存储体和标志位存储体,作为高速缓冲存储器行号或其中一个部分字段,用于指示高速缓冲存储器数据存储体及标志位存储体的实际访问地址。
CN97120245A 1997-11-06 1997-11-06 高速缓冲存储器系统中的地址映射变换技术与装置 Expired - Fee Related CN1081361C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN97120245A CN1081361C (zh) 1997-11-06 1997-11-06 高速缓冲存储器系统中的地址映射变换技术与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN97120245A CN1081361C (zh) 1997-11-06 1997-11-06 高速缓冲存储器系统中的地址映射变换技术与装置

Publications (2)

Publication Number Publication Date
CN1217505A CN1217505A (zh) 1999-05-26
CN1081361C true CN1081361C (zh) 2002-03-20

Family

ID=5175833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97120245A Expired - Fee Related CN1081361C (zh) 1997-11-06 1997-11-06 高速缓冲存储器系统中的地址映射变换技术与装置

Country Status (1)

Country Link
CN (1) CN1081361C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323909B (zh) * 2011-09-13 2014-03-19 北京北大众志微系统科技有限责任公司 实现使用大容量高速缓存的内存管理方法及装置
CN103279430B (zh) * 2012-07-27 2015-11-04 中南大学 图形处理单元中的缓存索引映射方法及装置
CN102833769A (zh) * 2012-09-20 2012-12-19 苏州坤里达信息科技有限公司 一种无线通信网络系统中的干扰矩阵高效管理方法
CN103678255A (zh) * 2013-12-16 2014-03-26 合肥优软信息技术有限公司 一种基于龙芯3号处理器的fft高效并行实现优化方法
US9355038B2 (en) * 2014-09-11 2016-05-31 Qualcomm Incorporated Cache bank spreading for compression algorithms
CN105630698A (zh) * 2014-10-28 2016-06-01 华为技术有限公司 配置扩展缓存的方法、装置及扩展缓存

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
US5392408A (en) * 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
JPH08263376A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd キャッシュ制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
US5392408A (en) * 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
US5668969A (en) * 1993-09-20 1997-09-16 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
JPH08263376A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd キャッシュ制御装置

Also Published As

Publication number Publication date
CN1217505A (zh) 1999-05-26

Similar Documents

Publication Publication Date Title
CN1437728A (zh) 多组、容错、高性能存储器寻址系统及其方法
CN1107905C (zh) 在分组数据上执行乘-加运算的装置
CN1121014C (zh) 具有risc结构的八位微控制器
CN1993670A (zh) 信息处理装置
CN100351814C (zh) 用于依据存储器访问模式执行数据存取的装置和方法
CN1801082A (zh) 在分组数据上执行乘-加运算的装置
Kim et al. SHARP: A short-word hierarchical accelerator for robust and practical fully homomorphic encryption
CN1774071A (zh) 使用二维处理元件阵列的移动估计装置及其方法
Stratton et al. Algorithm and data optimization techniques for scaling to massively threaded systems
TW200928780A (en) System, method, and computer program product for performing a scan operation on a sequence of single-bit values using a parallel processor architecture
CN1434380A (zh) 图像处理装置和方法以及用于该装置的编译程序
CN1081361C (zh) 高速缓冲存储器系统中的地址映射变换技术与装置
CN1242321C (zh) 应用蒙哥马利算法的幂剩余运算器
CN1648853A (zh) 多字乘法-累加电路和蒙哥马利模乘法-累加电路
CN1645352A (zh) 管理阵列处理器中的数据的方法及执行此方法的阵列处理器
CN1387340A (zh) 多级计数装置
CN1738238A (zh) 高速可配置rsa加密算法及协处理器
CN1506971A (zh) 半导体器件、图像数据处理装置和方法
CN1806224A (zh) 用于防御微分功率分析攻击的方法
CN1183842A (zh) 接口电路和数据处理装置与方法
CN1790310A (zh) 用于单指令、多数据执行引擎标志寄存器的评估单元
CN1332870A (zh) 地址生成装置以及运动矢量检测装置
CN101031904A (zh) 带有两类子处理器以执行多媒体应用的可编程处理器系统
KR20130122417A (ko) 이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법
CN1142683C (zh) 无转置行列分离二维离散余弦正反变换电路及其方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NINGBO ZHONGKE IC DESIGN CENTER LTD.

Free format text: FORMER OWNER: INST. OF COMPUTING TECHN. ACADEMIA SINICA

Effective date: 20050114

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20050114

Address after: 315040 building, 6 building, Ningbo science and Technology Park, Zhejiang Province

Patentee after: Ningbo Zhongke IC Design Center Co., Ltd.

Address before: 100083 mailbox 912, Beijing City

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20020320

Termination date: 20091207