CN103116555A - 基于多体并行缓存结构的数据访问方法 - Google Patents

基于多体并行缓存结构的数据访问方法 Download PDF

Info

Publication number
CN103116555A
CN103116555A CN2013100698659A CN201310069865A CN103116555A CN 103116555 A CN103116555 A CN 103116555A CN 2013100698659 A CN2013100698659 A CN 2013100698659A CN 201310069865 A CN201310069865 A CN 201310069865A CN 103116555 A CN103116555 A CN 103116555A
Authority
CN
China
Prior art keywords
data
address
mapping table
cache
dimentional
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.)
Granted
Application number
CN2013100698659A
Other languages
English (en)
Other versions
CN103116555B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201310069865.9A priority Critical patent/CN103116555B/zh
Publication of CN103116555A publication Critical patent/CN103116555A/zh
Application granted granted Critical
Publication of CN103116555B publication Critical patent/CN103116555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种基于多体并行缓存结构的数据访问方法,步骤为:(1)、将数据存入主存储器M;二维Cache阵列C以二维矩阵形式组织,记Cache体的个数为a×b个;(2)、处理部件P将所需a×b数据块的虚拟地址发送到地址映射表AT,地址映射表AT将虚拟地址转换为a×b数据块中每个数据在二维Cache阵列C的相应体中的物理地址;(3)、将步骤(2)得到的物理地址并行发送到二维Cache阵列C中的a×b个体,将a×b数据块的所有数据从二维Cache阵列C中并行读出,送入处理部件P;(4)、地址映射表更新部件ATU负责对地址映射表AT的表项进行更新。本发明可保证访存地址灵活性和高带宽,提高数据存取效率,降低存储层次间的数据传输次数和传输延迟。

Description

基于多体并行缓存结构的数据访问方法
技术领域
本发明主要涉及到缓存结构的设计领域,特指一种基于多体并行缓存结构的数据访问方法。
背景技术
在计算机结构中,存储系统负责存储数据、以及接收并处理其它计算机部件对数据的访问请求。存储系统的设计技术与处理器结构的演进同步发展,以减小访问延迟、提高访问效率,从而匹配处理器的能力和需求。存储系统可以采用多体并行或多体交叉并行存储技术以适应程序访存的顺序特性,或者采用宽字访问、顺序交叉访问主存模块的方式以获得高访存带宽,又或者基于程序访存的时间局部性和空间局部性原理构造层次存储器系统,使层次系统的速度接近最高一级存储器的速度,容量和价格接近最低一级存储器的容量和价格。
层次存储器结构通过设计存储器之间数据块的映射机制、数据块的替换算法以及数据一致性的维护策略来实现对数据的高效调度。
基于程序访问的局部性特点把存储器组织成层次结构,在较高层次的存储器中存放进程空间局部性和时间局部性所确定的工作集,从而支持程序的运行并有较高的命中率和效率。记程序x的虚拟地址空间为Vx={0,1,...,n-1},在[t,t+Δ]期间访问的虚地址空间或工作集为W(t,Δ),则W(t,Δ)是进程运行时间的函数,且|W(t,Δ)|<<|Vx|。利用程序访存的局部性原理,把程序x的虚拟地址Vx={0,1,...,n-1}与Cache的子集Mx的物理地址Mx={0,1,...,m-1}动态建立映射关系,即提供一种机制,将程序在[t,t+Δ]期间所要访问Vx中的局部地址即工作集W(t,Δ)按照映射关系fx:Vx→Mx∪M从主存M调入Mx中,Cache中的Mx即可支持程序x的运行。
当访问Cache失效时,从主存M中调入失效单元所在的数据块到Cache中进行数据更新或替换。随机替换策略从Cache中随机选取一个数据块进行替换;先进先出策略会替换Cache中最早调入的数据块;最常用的近期最少使用策略(Least Recently Used,LRU)则记录近期每块被访问情况,用计数器定量反映未被访问的时间,计数值最大的数据块将被替换。
层次存储系统不同层次之间的数据集具有包含关系。当一级Cache的数据块由于写操作而更新时,通过数据一致性维护策略来保证读取任何一级存储器都能获得最新的结果。可以通过写通过法和写回法保证存储器数据的一致性,写通过法在更新Cache的同时对主存也进行更新,写回法则只在进行块替换时才将块内容集中写回主存。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够保证访存地址灵活性和高带宽、可避免存储体的访存冲突、提高存储器数据存取效率、降低存储层次间的数据传输次数和传输延迟的基于多体并行缓存结构的数据访问方法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于多体并行缓存结构的数据访问方法,当处理某个数据W(t,Δ)时,该数据将以每次访存W字节的传输速度从主存储器M读出并写入二维Cache阵列C;其步骤为:
(1)、将数据存入主存储器M;所述二维Cache阵列C以二维矩阵形式组织,记Cache体的个数为a×b个,二维Cache阵列C位于主存储器M和处理部件P之间,记二维Cache阵列C和主存储器M之间的带宽为W字节,二维Cache阵列C和处理部件P之间的带宽为a×b字节;
(2)、处理部件P将所需a×b数据块的虚拟地址发送到地址映射表AT,地址映射表AT将虚拟地址转换为a×b数据块中每个数据在二维Cache阵列C的相应体中的物理地址;
(3)、将步骤(2)得到的物理地址并行发送到二维Cache阵列C中的a×b个体,从而将a×b数据块的所有数据从二维Cache阵列C中并行读出,送入处理部件P;
(4)、在将数据由主存储器M向二维Cache阵列C传送时,地址映射表更新部件ATU对地址映射表AT的表项进行更新。
作为本发明的进一步改进:
所述步骤(1)的具体步骤为:
(1.1)数据划分:初始时,程序x的虚拟地址空间Vx保存在线性编址且字长为W字节的主存储器M中,大小为A×B,将Vx划分为
Figure BDA00002886107800021
个a×b矩形数据块;
(1.2)数据选择:对于数据W(t,Δ),选定它的以a×b数据块为单位的矩形闭包L;
(1.3)存储体映射:定义L中任意位置(i,j)的a×b数据块B(i,j)为:
B(i,j)={I(i+p,j+q)|0≤p≤a,0≤q≤b},iL≤i≤i′L-a,jL≤j≤j′L-b,
其中,(iL,jL)和(i′L,j′L)分别为矩形闭包L左上角和右下角元素在Vx中的坐标;通过一个存储体分配函数mp,q(i,j)来描述Vx中(i,j)位置的数据与二维Cache阵列C中某个Cache体(p,q)的映射关系,其中0≤p<a,0≤q<b,把存储体分配函数mp,q(i,j)分割为两个正交的函数mp(i)和mq(j),对于某个体(p,q):
mp(i)=(i-p)moda,    (1a)
mq(j)=(j-q)modb.    (1b)
(i,j)保存在使mp(i)和mq(j)均为0的存储体(p,q)中;
(1.4)地址映射:通过寻址机制确定B(i,j)在每个体中的偏移地址。
所述步骤(1.4)的具体步骤为:
(1.4.1)虚拟地址计算:首先确定B(i,j)的虚拟地址,通过虚拟地址计算函数Ap,q(i,j)确定B(i,j)中每个元素在某个体(p,q)中的虚拟地址,把该函数分割为两个正交的函数Ap(i)和Aq(j):
Ap(i)=idiva-iLdiva+ci,    (2a)
Aq(j)=jdivb-jLdivb+cj,    (2b)
其中, c i = 1 , i mod a > p 0 , otherwise . c j = 1 , j mod b > q 0 , otherwise . ;
(1.4.2)虚拟地址转换为物理地址:通过对地址映射表AT进行查找操作T(Ap(i),Aq(j))将虚拟地址转换为对应的物理地址。
所述步骤(2)的具体步骤为:
(2.1)地址映射表划分:将地址映射表AT划分成以2×2矩阵形式组织的4个子表,用来并行地把每个a×b数据块对应的共4个虚拟地址映射为物理地址;地址映射表AT中元素的个数与单个Cache体的容量相同,称imoda=0且jmodb=0的a×b数据块为对齐数据块,处于同一个对齐数据块内的所有元素具有相同的虚拟地址(iA,jA)=(idiva-iLdiva,jdivb-jLdivb),其中iL≤i≤i′L-a,jL≤j≤j′L-b, 0 ≤ i A ≤ i L ′ - i L a - 1 , 0 ≤ j A ≤ j L ′ - j L b - 1 ; 将虚拟地址数组(iA,jA)看成大小为 i L ′ - i L a × j L ′ - j L b 的二维矩阵,与这些虚拟地址对应的地址映射表项分布在4个AT子表中;
(2.2)地址映射表子表定位:使用子表分配函数m′p,q′(iA,jA)将虚拟地址(iA,jA)映射到某个子表(p′,q′)上,其中0≤p′<2,0≤q′<2;把该函数分割为两个正交的函数m′p′(iA)和m′q′(jA),对于每个子表(p′,q′):
m′P′(iA)=(iA-p′)mod2    (3a)
m′q′(jA)=(jA-q′)mod2    (3b)
(2.3)地址映射表子表寻址:通过子表寻址函数A′p′,q′(iA,jA)确定虚拟地址(iA,jA)在子表(p′,q′)中所对应的偏移地址:
Figure BDA00002886107800041
其中, c i A = 1 , i A mod 2 > p ′ 0 , otherwise . c j A = 1 , j A mod 2 > q ′ 0 , otherwise . A′p,q′(iA,jA)中所保存的信息即为物理地址信息。
与现有技术相比,本发明的优点在于:
1、本发明可以对位于W(t,Δ)内任意位置固定大小的矩形数据块进行无冲突并行存取。因此能够保证访存地址灵活性和高带宽的同时避免存储体的访存冲突,提高对存储器数据的存取效率,降低存储层次问的数据传输次数和传输延迟。
2、本发明的寻址机制是基于一个地址映射表结构对多个Cache体进行动态寻址,而不是基于传统的固定寻址函数,在保证编址一致性的前提下提高了不同W(t,Δ)之间数据的重用性。由于地址映射表内容对于不同W(t,Δ)是实时更新的,因此该寻址机制保证了W(t,Δ)随时间发生变化时Cache体内数据的实时更新。
附图说明
图1是应用本发明方法后的多体并行Cache结构示意图。
图2是基于地址映射表AT的Cache地址映射结构示意图。
图3是地址映射表AT的更新机制的原理示意图。
图4是二维Cache阵列C与主存储器M的接口以及地址映射表更新部件ATU的结构示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,为应用本发明方法后的多体并行Cache结构示意图,该多体并行Cache结构包括主存储器M、二维Cache阵列C、地址映射表AT、地址映射表更新部件ATU以及处理部件P。二维Cache阵列C以二维矩阵形式组织,记Cache体的个数为a×b个,二维Cache阵列C位于主存储器M和处理部件P之间,记二维Cache阵列C和主存储器M之间的带宽为W字节,二维Cache阵列C和处理部件P之间的带宽为a×b字节。地址映射表AT与二维Cache阵列C和处理部件P均相连。
在处理某个W(t,Δ)时,数据将会以每次访存W字节的传输速度从主存储器M读出并写入二维Cache阵列C中。处理部件P将所需a×b数据块的虚拟地址发送到地址映射表AT,地址映射表AT将虚拟地址转换为a×b数据块中每个数据在二维Cache阵列C的相应体中的物理地址,然后将这些物理地址并行发送到二维Cache阵列C中的a×b个体,从而将a×b数据块的所有数据从二维Cache阵列C中并行读出,送入处理部件P。地址映射表更新部件ATU与地址映射表AT连接,对于每个W(t,Δ),在将数据由主存储器M向二维Cache阵列C传送时,地址映射表更新部件ATU负责对地址映射表AT的表项进行更新。
在具体应用实例中,本发明的基于多体并行缓存结构的数据访问方法,其具体执行流程为:
1、对于某个W(t,Δ),将数据存入二维Cache阵列C。
1.1.数据划分:初始时,程序x的虚拟地址空间Vx保存在线性编址且字长为W字节的主存储器M中,大小为A×B。将Vx划分为
Figure BDA00002886107800051
个a×b矩形数据块。
1.2.数据选择:对于工作集W(t,Δ),选定它的以a×b数据块为单位的矩形闭包L。
1.3.存储体映射:定义L中任意位置(i,j)的a×b数据块B(i,j)为:
B(i,j)={I(i+p,j+q)|0≤p≤a,0≤q≤b},iL≤i≤i′L-a,jL≤j≤j′L-b,
其中,(iL,jL)和(i′L,j′L)分别为矩形闭包L左上角和右下角元素在Vx中的坐标。本发明通过一个存储体分配函数mp,q(i,j)来描述Vx中(i,j)位置的数据与二维Cache阵列C中某个Cache体(p,q)(0≤p<a,0≤q<b)的映射关系。把存储体分配函数mp,q(i,j)分割为两个正交的函数mp(i)和mq(j),对于某个体(p,q):
mp(i)=(i-p)moda,    (1a)
mq(j)=(j-q)modb.    (1b)
(i,j)保存在使mp(i)和mq(j)均为0的存储体(p,q)中。
1.4.地址映射:本发明通过一种寻址机制确定B(i,j)在每个体中的偏移地址。
1.4.1.虚拟地址计算:首先确定B(i,j)的虚拟地址,通过虚拟地址计算函数Ap,q(i,j)确定B(i,j)中每个元素在某个体(p,q)中的虚拟地址,把该函数分割为两个正交的函数Ap(i)和Aq(j):
Ap(i)=idiva-iLdiva+ci,    (2a)
Aq(j)=jdivb-jLdivb+cj,    (2b)
其中, c i = 1 , i mod a > p 0 , otherwise . c j = 1 , j mod b > q 0 , otherwise .
1.4.2.虚拟地址转换为物理地址:通过对地址映射表AT进行查找操作T(Ap(i),Aq(j))将虚拟地址转换为对应的物理地址。
2、处理部件P将所需a×b数据块的虚拟地址发送到地址映射表AT,地址映射表AT将虚拟地址转换为a×b数据块中每个数据在二维Cache阵列C的相应体中的物理地址。
2.1.地址映射表划分:将地址映射表AT划分成以2×2矩阵形式组织的4个子表,用来并行地把每个a×b数据块对应的共4个虚拟地址映射为物理地址。地址映射表AT中元素的个数与单个Cache体的容量相同。称imoda=0且jmodb=0的a×b数据块为对齐数据块,处于同一个对齐数据块内的所有元素具有相同的虚拟地址(iA,jA)=(idiva-iLdiva,jdivb-jLdivb),其中iL≤i≤i′L-a,jL≤j≤j′L-b, 0 ≤ i A ≤ i L ′ - i L a - 1 , 0 ≤ j A ≤ j L ′ - j L b - 1 . 将虚拟地址数组(iA,jA)看成大小为 i L ′ - i L a × j L ′ - j L b 的二维矩阵,与这些虚拟地址对应的地址映射表项分布在4个AT子表中。
2.2.地址映射表子表定位:使用子表分配函数m′p′,q′(iA,jA)将虚拟地址(iA,jA)映射到某个子表(p′,q′)上,其中0≤p′<2,0≤q′<2。把该函数分割为两个正交的函数m′p′(iA)和m′q′(jA),对于每个子表(p′,q′):
m′p′(iA)=(iA-p′)mod2    (3a)
m′q′(jA)=(jA-q′)mod2    (3b)
2.3.地址映射表子表寻址:通过子表寻址函数A′p′,q′(iA,jA)确定虚拟地址(iA,jA)在子表(p′,q′)中所对应的偏移地址:
Figure BDA00002886107800071
其中, c i A = 1 , i A mod 2 > p ′ 0 , otherwise . c j A = 1 , j A mod 2 > q ′ 0 , otherwise . A′p′,q′(iA,jA)中所保存的信息即为物理地址信息。
3、将这些物理地址并行发送到二维Cache阵列C中的a×b个体,从而将a×b数据块的所有数据从二维Cache阵列C中并行读出,送入处理部件P。
如图2所示,为基于地址映射表AT的Cache地址映射结构示意图。在访问一个a×b数据块B(i,j)时,
3.1.首先计算虚拟地址(iA,jA);
3.2.然后根据上述公式(4)计算A′p′,q′(iA,jA),A′p′,q′(iA,jA)可以表示成i方向和j方向的两个函数的和,即A′p′,q′(iA,jA)=Ai′p′(iA)+Aj′q′(jA)。4个子表的地址通过图2中上半部分所示的结构产生;
3.3.每个子表从地址A′p′,q′(iA,jA)处输出对应虚拟地址iA,jA)的物理地址。全部4个物理地址被送入一个由4个4路选择器所组成的分配器,该分配器决定哪一个物理地址应该送入哪一个Cache存储体。对于分配器的控制,首先使用地址映射表AT的子表分配函数R′i(iA)=iAmod2和R′j(jA)=jAmod2以及二维Cache阵列C的模块分配函数Ri(i)=imoda和Rj(j)=jmodb计算出B(i,j)的左上角元素(i,j)所对应的子表以及该元素所在的Cache存储体,进而判断出地址映射表AT中子表与Cache存储体之间的对应关系,从而控制物理地址信号的路由。
3.4.B(i,j)的a×b个元素从a×b个存储体中并行读出后,图2中所示的由多个多路选择器组成的shuffle部件将输出的a×b个数值重新排列成正确的顺序。shuffle部件的控制方式类似于分配器的控制方式,由Ri(i)和Rj(j)控制。
4、在将数据由主存储器M向二维Cache阵列C传送时,地址映射表更新部件ATU负责对地址映射表AT表项进行更新。
如图3所示,为地址映射表AT的更新机制的原理示意图。对于两个工作集W(t0,Δ0)和W(t1,Δ1)的矩形数据块闭包L0和L1,当L0中的数据已经保存在C中,P开始对L1进行处理时,只将L1中与L0没有重叠的数据从M写入C,而重叠数据不进行替换。同时,对AT的内容进行更新。AT中的每个元素包含三个数据域:iAT、jAT与addrphy,其中iAT和jAT表示当前元素的虚拟地址所对应数据在Vx中的坐标,addrphy为该数据在C存储体中的物理地址。
记L0、L1以及它们的重叠区域左上角与右下角的坐标为(iL0,jL0)、(i′L0,j′L0)、(jL1,jL1)、(i′L1,j′L1)、(iC,jC)和(i′C,j′C),对于L1中的每个对齐数据块B(i,j):
●如果B(i,j)不是重叠数据块,将B(i,j)中的数据写入C的a×b个存储体。
■在数据传送之前,在每个C存储体中找出具有相同偏移量的空闲地址,空闲地址是指没有保存重叠区域数据的地址。通过判断尚未更新的AT中某个元素的iAT和jAT信息与(iC,jC)和(i′C,j′C)的位置关系来确定该元素对应的物理地址addrphy是否为空闲地址。如果iC≤iAT<i′C,并且jC≤jAT<j′C,那么对应的addrphy不是空闲地址;否则,是空闲地址。
■一旦确定一个空闲地址,就开始并行的向C中每个存储体的该空闲地址写入B(i,j)中的一个数据。同时,对AT进行更新,更新方式如下:新的iAT=i、jAT=j和addrphy被写入AT中一个新的根据公式(3a)、(3b)、(4)计算出的地址,计算时公式中的(iL0,jL0)和(i′L0,j′L0)被替换为(iL1,jL1)和(i′L1,j′L1);
●如果B(i,j)是重叠数据块,则不传送B(i,j)中的数据,只将地址映射表AT中对应于iAT=i和jAT=j的元素写入一个根据公式(3a)、(3b)、(4)计算出的新地址。
如图4所示,为二维Cache阵列C与主存储器M的接口以及地址映射表更新部件ATU的结构示意图。本发明中构建双AT结构:Table0和Table1来解决在地址映射表AT更新过程中由于AT中元素的地址迁移导致的写后读相关问题。每个AT结构拥有独立的读写控制电路,为了便于说明,图4中在Table0上只注明读控制电路,在Table1中只注明写控制电路。当L0已处理完毕,开始对L1进行处理时,二维Cache阵列C中保存的是L0中的数据,而其中一个AT(假定为Table0)中保存对应的地址映射信息。该结构的工作流程如下:
(1).对于Table0,Rd_Addr_Gen部件在Next_En信号的控制下,每次产生一个地址,每4次令地址加1,从而在4个Table0子表中依次循环读取结点数据,MUX部件从Table0输出的数据中每次选择一个送入FIFO保存。
(2).在准备处理L1中一个对齐数据块B(i,j)时,首先检查FIFO的状态,若FIFO不空,则从FIFO中读出一个AT表项,将其送入Addr_Info_Updater部件,该部件将AT表项中的(iAT,jAT)同(iC,jC)和(i′C,j′C)进行比较,判断该AT表项所指向的物理地址addrphy是否为空闲地址。
(2.1).如果addrphy不是空闲地址,将B(i,j)的处理过程挂起,转而处理B(iAT,jAT)。B(iAT,jAT)已保存在二维Cache阵列C中,不需要重新传送,只将Table0中的对应表项Addr_Info写入Table1中的一个新地址。Addr_Info_Updater部件将iAT和jAT送入Table1的地址计算部件生成写地址。写使能信号Wr_En用来对写操作进行控制。B(i,j)维持挂起状态直到找到一个可用的空闲地址。
(2.2).如果addrphy是空闲地址,MM_Addr_Gen部件根据(i,j)信息生成读地址Rd_Addr送入主存储器M,从主存储器M中将B(i,j)数据读出。同时,Addr_Info_Updater部件和MM_Addr_Gen部件一起生成写使能信号Wr_En控制B(i,j)的写操作。AT的更新过程也同时进行:用i和j替换掉iAT和jAT完成AT表项Addr_Info的更新,i和j同时送入Table1的地址计算部件生成写地址。
(3).对于对齐数据块B(i,j),MM_Addr_Gen部件通常顺序生成(a·b/W)个主存储器M地址。Vx在主存储器M中以线性方式顺序保存,这(a·b/W)个地址的定义为:
AMM(i,j)=(i+k)·B+j+l·W,    (5)
其中,k=0,1,...,a-1;读出的数据被并行写入二维Cache阵列C的如下存储体中:
(p,q)=(k,l·W),(k,l·W+1),...,(k,l·W+W-1)    (6)
且地址相同,均为addrphy
(4).在数据传送与AT更新过程完成后,Table1成为活动AT。在以后的不同W(t,Δ)的处理过程中,Table0和Table1交替成为活动AT。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (4)

1.一种基于多体并行缓存结构的数据访问方法,当处理某个数据W(t,Δ)时,该数据将以每次访存W字节的传输速度从主存储器M读出并写入二维Cache阵列C,其特征在于,步骤为:
(1)、将数据存入主存储器M;所述二维Cache阵列C以二维矩阵形式组织,记Cache体的个数为a×b个,二维Cache阵列C位于主存储器M和处理部件P之间,记二维Cache阵列C和主存储器M之间的带宽为W字节,二维Cache阵列C和处理部件P之间的带宽为a×b字节;
(2)、处理部件P将所需a×b数据块的虚拟地址发送到地址映射表AT,地址映射表AT将虚拟地址转换为a×b数据块中每个数据在二维Cache阵列C的相应体中的物理地址;
(3)、将步骤(2)得到的物理地址并行发送到二维Cache阵列C中的a×b个体,从而将a×b数据块的所有数据从二维Cache阵列C中并行读出,送入处理部件P;
(4)、在将数据由主存储器M向二维Cache阵列C传送时,地址映射表更新部件ATU对地址映射表AT的表项进行更新。
2.根据权利要求1所述的基于多体并行缓存结构的数据访问方法,其特征在于,所述步骤(1)的具体步骤为:
(1.1)数据划分:初始时,程序x的虚拟地址空间Vx保存在线性编址且字长为W字节的主存储器M中,大小为A×B,将Vx划分为
Figure FDA00002886107700011
个a×b矩形数据块;
(1.2)数据选择:对于数据W(t,Δ),选定它的以a×b数据块为单位的矩形闭包L;
(1.3)存储体映射:定义L中任意位置(i,j)的a×b数据块B(i,j)为:
B(i,j)={I(i+p,j+q)|0≤p≤a,0≤q≤b},iL≤i≤i′L-a,jL≤j≤j′L-b,
其中,(iL,jL)和(i′L,j′L)分别为矩形闭包L左上角和右下角元素在Vx中的坐标;通过一个存储体分配函数mp,q(i,j)来描述Vx中(i,j)位置的数据与二维Cache阵列C中某个Cache体(p,q)的映射关系,其中0≤p<a,0≤q<b,把存储体分配函数mp,q(i,j)分割为两个正交的函数mp(i)和mq(j),对于某个体(p,q):
mp(i)=(i-p)moda,    (1a)
mq(j)=(j-q)modb.    (1b)
(i,j)保存在使mp(i)和mq(j)均为0的存储体(p,q)中;
(1.4)地址映射:通过寻址机制确定B(i,j)在每个体中的偏移地址。
3.根据权利要求2所述的基于多体并行缓存结构的数据访问方法,其特征在于,所述步骤(1.4)的具体步骤为:
(1.4.1)虚拟地址计算:首先确定B(i,j)的虚拟地址,通过虚拟地址计算函数Ap,q(i,j)确定B(i,j)中每个元素在某个体(p,q)中的虚拟地址,把该函数分割为两个正交的函数Ap(i)和Aq(j):
Ap(i)=idiva-iLdiva+ci,    (2a)
Aq(j)=jdivb-iLdivb+cj,    (2b)
其中, c i = 1 , i mod a > p 0 , otherwise . c j = 1 , j mod b > q 0 , otherwise . ;
(1.4.2)虚拟地址转换为物理地址:通过对地址映射表AT进行查找操作T(Ap(i),Aq(j))将虚拟地址转换为对应的物理地址。
4.根据权利要求1或2或3所述的基于多体并行缓存结构的数据访问方法,其特征在于,所述步骤(2)的具体步骤为:
(2.1)地址映射表划分:将地址映射表AT划分成以2×2矩阵形式组织的4个子表,用来并行地把每个a×b数据块对应的共4个虚拟地址映射为物理地址;地址映射表AT中元素的个数与单个Cache体的容量相同,称imoda=0且jmodb=0的a×b数据块为对齐数据块,处于同一个对齐数据块内的所有元素具有相同的虚拟地址(iA,jA)=(idiva-iLdiva,jdivb-jLdivb),其中iL≤i≤i′L-a,jL≤j≤j′L-b, 0 ≤ i A ≤ i L ′ - i L a - 1 , 0 ≤ j A ≤ j L ′ - j L b - 1 ; 将虚拟地址数组(iA,jA)看成大小为 i L ′ - i L a × j L ′ - j L b 的二维矩阵,与这些虚拟地址对应的地址映射表项分布在4个AT子表中;
(2.2)地址映射表子表定位:使用子表分配函数m′p′,q′(iA,jA)将虚拟地址(iA,jA)映射到某个子表(p′,q′)上,其中0≤p′<2,0≤q′<2;把该函数分割为两个正交的函数m′p′(iA)和m′q′(jA),对于每个子表(p′,q′):
m′q′(iA)=(iA-p′)mod2    (3a)
m′q′(jA)=(jA-q′)mod2    (3b)
(2.3)地址映射表子表寻址:通过子表寻址函数A′p′,q′(iA,jA)确定虚拟地址(iA,jA)在子表(p′,q′)中所对应的偏移地址:
Figure FDA00002886107700031
其中, c i A = 1 , i A mod 2 > p ′ 0 , otherwise . c j A = 1 , j A mod 2 > q ′ 0 , otherwise . A′p′,q′(iA,jA)中所保存的信息即为物理地址信息。
CN201310069865.9A 2013-03-05 2013-03-05 基于多体并行缓存结构的数据访问方法 Active CN103116555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310069865.9A CN103116555B (zh) 2013-03-05 2013-03-05 基于多体并行缓存结构的数据访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310069865.9A CN103116555B (zh) 2013-03-05 2013-03-05 基于多体并行缓存结构的数据访问方法

Publications (2)

Publication Number Publication Date
CN103116555A true CN103116555A (zh) 2013-05-22
CN103116555B CN103116555B (zh) 2014-03-05

Family

ID=48414935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310069865.9A Active CN103116555B (zh) 2013-03-05 2013-03-05 基于多体并行缓存结构的数据访问方法

Country Status (1)

Country Link
CN (1) CN103116555B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455442A (zh) * 2013-08-30 2013-12-18 华为技术有限公司 多通道先进先出缓存队列控制器及访问方法
CN104699624A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 面向fft并行计算的无冲突存储访问方法
CN106959969A (zh) * 2016-01-12 2017-07-18 恒生电子股份有限公司 一种数据处理方法及装置
CN107430671A (zh) * 2015-03-31 2017-12-01 西门子公司 用于在缓存中保护对安全重要的数据的方法
CN108809514A (zh) * 2018-04-23 2018-11-13 华为技术有限公司 一种数据传输方法及相关设备
CN111813451A (zh) * 2020-06-05 2020-10-23 上海赛昉科技有限公司 一种cpu数据读取装置及方法
WO2021072721A1 (zh) * 2019-10-17 2021-04-22 华为技术有限公司 一种地址翻译方法及装置
CN113157603A (zh) * 2021-04-29 2021-07-23 上海阵量智能科技有限公司 数据读取装置、方法、芯片、计算机设备及存储介质
CN116010299A (zh) * 2023-03-29 2023-04-25 摩尔线程智能科技(北京)有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555393A (en) * 1992-02-25 1996-09-10 Matsushita Electric Industrial Co., Ltd. Method and apparatus for a cache memory with data priority order information for individual data entries
CN1192009A (zh) * 1996-12-23 1998-09-02 英特尔公司 预加载不同缺省地址转换属性的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555393A (en) * 1992-02-25 1996-09-10 Matsushita Electric Industrial Co., Ltd. Method and apparatus for a cache memory with data priority order information for individual data entries
CN1192009A (zh) * 1996-12-23 1998-09-02 英特尔公司 预加载不同缺省地址转换属性的方法和装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015027754A1 (zh) * 2013-08-30 2015-03-05 华为技术有限公司 多通道先进先出缓存队列控制器及访问方法
CN103455442B (zh) * 2013-08-30 2016-06-08 华为技术有限公司 多通道先进先出缓存队列控制器及访问方法
CN103455442A (zh) * 2013-08-30 2013-12-18 华为技术有限公司 多通道先进先出缓存队列控制器及访问方法
CN104699624A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 面向fft并行计算的无冲突存储访问方法
CN104699624B (zh) * 2015-03-26 2018-01-23 中国人民解放军国防科学技术大学 面向fft并行计算的无冲突存储访问方法
US11003594B2 (en) 2015-03-31 2021-05-11 Siemens Aktiengesellschaft Method for protecting security-relevant data in a cache memory
CN107430671A (zh) * 2015-03-31 2017-12-01 西门子公司 用于在缓存中保护对安全重要的数据的方法
CN106959969A (zh) * 2016-01-12 2017-07-18 恒生电子股份有限公司 一种数据处理方法及装置
CN106959969B (zh) * 2016-01-12 2020-07-17 恒生电子股份有限公司 一种数据处理方法及装置
CN108809514B (zh) * 2018-04-23 2021-01-12 华为技术有限公司 一种数据传输方法及相关设备
CN108809514A (zh) * 2018-04-23 2018-11-13 华为技术有限公司 一种数据传输方法及相关设备
US11476977B2 (en) 2018-04-23 2022-10-18 Huawei Technologies Co., Ltd. Data transmission method and related device
WO2021072721A1 (zh) * 2019-10-17 2021-04-22 华为技术有限公司 一种地址翻译方法及装置
CN111813451A (zh) * 2020-06-05 2020-10-23 上海赛昉科技有限公司 一种cpu数据读取装置及方法
CN113157603A (zh) * 2021-04-29 2021-07-23 上海阵量智能科技有限公司 数据读取装置、方法、芯片、计算机设备及存储介质
WO2022227561A1 (zh) * 2021-04-29 2022-11-03 上海阵量智能科技有限公司 用于数据读取的装置、方法、芯片、计算机设备及存储介质
CN116010299A (zh) * 2023-03-29 2023-04-25 摩尔线程智能科技(北京)有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN103116555B (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
CN103116555B (zh) 基于多体并行缓存结构的数据访问方法
CN105830059B (zh) 文件访问方法、装置及存储设备
Loh et al. Supporting very large DRAM caches with compound-access scheduling and MissMap
CN104133780B (zh) 一种跨页预取方法、装置及系统
CN108231109B (zh) 动态随机存取存储器dram的刷新方法、设备以及系统
CN103218208B (zh) 用于实施成形的存储器访问操作的系统和方法
CN106104499B (zh) 存储器设备及用于操作高速缓冲存储器的方法
CN103246542B (zh) 智能缓存及智能终端
CN109522254A (zh) 运算装置及方法
CN105283855B (zh) 一种寻址方法及装置
CN107066393A (zh) 提高地址映射表中映射信息密度的方法
CN101290613A (zh) Fft处理器的数据存储系统和方法
CN104346284B (zh) 一种内存管理方法及内存管理设备
CN110362504A (zh) 对一致性链路和多级存储器的管理
CN104461393A (zh) 一种闪存存储器的混合映射方法
CN103927270B (zh) 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
CN105094691B (zh) 一种数据操作的方法、设备和系统
CN110018971A (zh) 缓存替换技术
CN103106150A (zh) 一种实现存储系统自动精简配置和精简分配的方法
Chen et al. Unified non-volatile memory and NAND flash memory architecture in smartphones
CN104808950B (zh) 对嵌入式存储器元件的模式依赖性访问
CN102541755A (zh) 闪存存储器及其接收数据的方法
CN107544912A (zh) 一种日志记录方法、加载方法及其装置
CN101425044B (zh) 一种面向写穿透cache的SDRAM读写方法
CN106293491B (zh) 写请求的处理方法和内存控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant