CN1437728A - 多组、容错、高性能存储器寻址系统及其方法 - Google Patents
多组、容错、高性能存储器寻址系统及其方法 Download PDFInfo
- Publication number
- CN1437728A CN1437728A CN00819216A CN00819216A CN1437728A CN 1437728 A CN1437728 A CN 1437728A CN 00819216 A CN00819216 A CN 00819216A CN 00819216 A CN00819216 A CN 00819216A CN 1437728 A CN1437728 A CN 1437728A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- group number
- memory device
- storer
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种多组存储器寻址系统以及通常提供间隔为1的访问方式下无组冲突并在其他所关心的访问方式下很少发生组冲突的方法。在一个实施例中,所提供的存储器件具有多个包括多个可寻址存储器单元的存储器组。每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括组号和存储器组(2)中的局部地址。存储器件含有包括地址翻译单元(1)的地址系统,对于每个逻辑地址得到对应的物理地址。
Description
发明领域
本发明通常涉及存储器寻址系统及其方法,并且具体的涉及提供高性能访问具有任意组数的多组存储器的存储器寻址系统和方法。
发明背景
对于实现最高性能的常规存储器设计,存储器空间由独立元件组成,通常称为组,其数量通常是2的幂。存储器空间在组中交叉存取,即连续的地址通常映射到不同的组。在这种情况下,组数可以通过简单地看地址的最低位A来确定:即,组=A模2b,其中2b为组数N。该方法已被用于采用多达512组存储器的高性能系统中。增加存储器组的数量通常增加了存储器的处理量并由此增加了存储器系统到处理单元的带宽。该处理量通常是计算机运算的最弱点。
该存储器的已知的问题表现在当以偶数或能被2的更高次幂整除的间隔访问数组或其它数据结构时性能的降低。例如,在16组的系统中,以16的间隔访问将导致最差的性能,因为只有16组中的一组被访问。在许多实际的应用中,阵列访问具有能被2的高次幂整除的间隔。例如,在2m×2m尺寸的矩阵中,由于m≥b,列访问只能提供峰值性能的1/N,因为整个列属于同一个存储区组。类似的性能降低发生在其他类型的明确图形的访问中(即,明确限定的访问顺序,通常称为有规律的访问顺序,例如,上述矩阵中的对角线访问)。
该存储器的另一个问题表现为缺乏容错性,特别是在单个芯片中具有多个存储器组的存储器器件中。在这种单芯片器件中,单个坏组(即,具有至少一个不能使用的存储器单元的组)通常导致或者整个存储器件报废或者所用的组数减少为2的更低一次幂。该问题特别明显,因为新存储器部件的产量非常低,所以,制造这种器件的设备的部分生产能力被用于制造卖不出去的产品。在具有嵌入存储器单元的新一代多处理器芯片中,该问题进一步恶化。例如,这种芯片可能包含2b个微处理器和2b个存储单元(例如,每个单元具有1到8Mbit的DRAM),理论上,相互通信需要全2b×2b的纵横交换网络。在这种芯片中的存储器可以作为2b·2m的存储单元的浮动地址空间的共享存储器方式来处理,其中2m为每个独立存储单元的尺寸。嵌入存储器芯片比普通存储器单元复杂得多;因此,这种芯片报废或降级的成本相对比普通存储器单元这样做的成本高。
尝试解决这些问题并未取得完全的成功。
例如,RAMBUS和其它类似的技术尝试对不分组存储器通过更快的存储器操作或简化交叉存取的多组存储器来缓解处理器-存储器之间的瓶颈。但是,主要在仅用于连续存储器请求上取得了进步。此外,随着处理单元速度的显著增加,瓶颈依然存在。
特别针对组冲突问题的另一个技术在P.P.Budnick and D.J.Kuck,“The organization and use of parallel memories”,IEEE Trans.Computers,20,pp.1566-1569(1971)中进行了说明。Budnick等人建议采用p个存储器组来实现存储器,其中p为素数。在这种情况下,对于线性阵列的组冲突仅发生在间隔能被p整除的情况下。可以证明,在这种情况下组冲突可能比实际的少。但是,译码逻辑显著地增加了一一特别是需要除数为p的全整数除法电路。对于请求的地址A,Amod P的余数给定了地址的组,同时A/p的商给定了组内的地址。早期的BSP(巴勒斯科学处理机)具有这种类型的存储器系统,其中p=17。除了译码逻辑的增加,这种解决方法是不适当的,因为组数限定为素数对于例如布局、布线和接口造成了太多的限制,非素数组数,特别是2的幂是最佳选择。
另一个组冲突问题的补救方法是采用伪随机数发生器产生逻辑地址A和对应组之间的映射。例如,在R.Raghavan,J.P.Hayes,“Onrandomly interleaved memories”,Proceedings of Supercomputing,pp.49-58,1990中说明了一个这种系统。伪随机发生器为输入值的有序序列产生输出值的随机序列,但对于给定的输入值将一直产生相同的输出值。这种技术的一个问题是对于间隔为1的访问将产生组冲突。间隔为1的访问在大多数计算机应用中是最普通的访问模式(例如,当读取指令流时发生),因此,对于这种访问在存储器性能的任何降低都是不能接受的。通常的问题是伪随机或真随机映射产生的组冲突即使对于相当大的N平均不少于访问的1/e%(即,36.78…%)(其中e为自然对数的底)。这导致相当大的峰值性能降低。此外,某种已知的伪随机数发生器可能在地址空间和所有组之间产生不一致的映射(即,某些组可能比其它组具有更多的地址映射),从而增加组冲突并降低性能。
因此,当简单地址翻译方案(标准交叉存取方案或来自Budnick-Kuck翻译的各种方案)产生用于固定间隔方式的序列(并由此在许多间隔遇到可重复的组冲突)的组数的简单周期序列时,一般的地址不规则映射产生用于任意具体访问序列的组数的随机序列。如上所述,属于相应的物理地址的这些组数的序列具有统计上的显著的组冲突(在N地址的序列内),并且,充分随机化后,没有小于加扰的地址空间的尺寸的周期。
因此,通常提供用于间隔为1的访问方式的无冲突访问的低复杂性的容错加扰技术、其它特别重要的明确访问方式,例如偶间隔方式、2的幂间隔方式或对角线和其它感兴趣的访问方式是非常需要的。
发明概要
因此,本发明的目的是提供一种多组存储器寻址系统以及通常提供间隔为1的访问方式下无组冲突并在其他所关心的访问方式下很少发生组冲突的方法。在一个实施例中,所提供的存储器件具有N个包括多个可寻址存储器单元的存储器组。每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括组号和存储器组中的局部地址。存储器件含有包括地址翻译单元的地址映射系统,对于每个逻辑地址得到对应的物理地址。在优选实施例中,地址翻译单元工作,从而,对于逻辑地址的至少一个明确的访问序列(例如,序列中的每一个逻辑地址与序列中的其它地址相隔间隔值),在对应的物理地址的序列中得到的物理地址具有形成的重复方式不小于N+1的周期并在对应的物理地址的序列中平均重复组号不在大约N地址之内的存储器组号(或者甚至周期小于地址空间的尺寸)。
由地址翻译单元进行的映射在这里称作“有限准晶体映射”。该术语是由根据本发明的优选实施例的翻译单元对于大多数间隔产生几乎是周期性的组访问方式(即,准晶体形)得出的;例如,所选择的组通常间隔固定的值,但偶尔也会间隔不同的值。为了说明的目的,一个给定间隔的16组存储器系统的准晶体映射的例子为0、2、4、6、8、10、13、15、1、3、5、7、9、12、14…,其中组编号为0到15。在该例子中,序列中的组编号通常间隔为2,但偶尔间隔为其它值(例如3,从10到13和从9到12)。对于特别明确的访问方式的优选准晶体映射为每个存储器组的访问次数大致相等。在优选实施例中,差异(在这里该术语的意思为组访问与均匀分布的偏差)为最小。这里每组的偏差仅仅为O(1)(order 1)。
在一个实施例中,准晶体映射通过采用下面形式的模变换加扰地址a来实现:
a-A=Λa mod 2K其中A为对应于a的加扰后的地址,2K为地址空间(其中K依赖于存储器制造工艺,并且在下面的例子中对于字对准存储器通常为大约21),Λ为奇数常数。在该例子中的组号由加扰地址A的高位得到。
为了在该方案中得到有限准晶体映射,选择Λ以便使在2K的地址空间上的重要的明确访问方式(例如变化的固定间隔或在二维或多维表中访问的线性序列,包括对角线访问方式)中发生的组号的均匀分布的偏差最小。
采用各种技术使Λ的适当范围变窄。例如,最小化与组号均匀分布的偏差类似于最小化与{n·θ}的小数部分的一致分配偏差的问题。因此,类似于二次方程的无理解(quadratic irrationality)的乘数Λ给出了更好的均匀分布特性。(例如,参考H.Behnke,ZiirTheorie der Diophantischen Approximationen,I,Abh.Math Sem.Hamburg 3(1924),pp.261-318)。受到黄金分割
(大约为0.6180)的启发,一种方法是对于M≤K将Λ设为接近于τ·2M的整数。这不是优选实施例,并且遇到性能下降的问题。下面说明更好的实施例。
此外,通过用于有理数的公式Λ/2K的连续小数展开式算法的优化使Λ的潜在的合适范围变窄。例如,参考Rockett和Szüsz的Continued Fractions,World Scientifica Publishing Co.Pte.Ltd.(1994)。优化算法设法找到潜在的适当的整数乘数Λ,从而两个条件同时满足:(a)对于M≤K,在Λ/2M的连续小数展开式中的初项ai都很小(例如,1或2);并且(b)在满足条件(a)的乘数中Λ的二进制(或Booth编码二进制)展开式中的非零位的位数最少。该非线性优化提供用于加扰和实现加扰器的最小化电路所需的最佳乘数Λ。Λ的最终选择仅仅根据用于地址空间上的各种明确的访问方式的组访问的均匀分布偏差的最小化。通过在整个地址空间上对各种间隔或其它明确的访问方式的组访问的彻底模拟来计算偏差。通过对Λ的所有可能值的偏差的彻底计算来选择合适的ΛS(即,奇数,并在范围1≤Λ≤2K内)。
本领域的技术人员应当理解:各种组合电路、查表法或者甚至模拟方法而不是模乘法可以与实现低差异映射相同的效果构成有限准晶体映射。
如果所有的组是无缺陷的(N=2b),组和逻辑地址可由如下的加扰地址A得到:A的最高b位为组号,而A的其它位为组中的局部地址。
但是,如果一个或多个组有缺陷,则地址空间收缩到N·2m个存储单元,其中N<2b。在这种情况下,需要将有效范围为0…N·2m-1的逻辑地址a翻译为在范围0…N-1中的唯一组号u,和在范围0…2m-1的局部地址la。实现翻译的硬件逻辑的复杂性是至关重要的。
在具有在同一个芯片中多处理器与多个存储单元通信的嵌入逻辑的多组存储器部分中特别重要。在芯片上具有嵌入存储器的多处理器芯片的常规结构由N=2b个微处理器和每个尺寸为2m(例如,每个为1到8Mbit的DRAM)的N=2b个存储器组(单元)组成,通过交换网络相互通信。该交换网络为全2b×2b的纵横交换网络。如上所述,在该芯片中的全部存储器可以作为N·2m的存储单元的平坦地址空间的共享存储器方式来处理。因为在部件中的所有多处理器都需要这些翻译单元,地址翻译逻辑的硬件实现的简单性是至关重要的。作为实际的例子,在这里和后面,我们考虑b=6的情况,64个存储器组与64个微处理器,每个存储器组包含213个高速缓存线(每个高速缓存线有多达32个字节)。在这种情况下,地址空间在“无缺陷”的情况下的可寻址单元(所说的高速缓存线)为219。由于相对较大的芯片面积,缺陷是常见的,并且好的处理器的数量N可能低于32或者更低。这些部件只能由存储器翻译单元来补救。对于高带宽容错大存储器模块和特别是具有嵌入存储器作为多组模块的大的片上系统产品,具有上述额外加扰特性的动态地址重映射单元的结构是至关重要的应用。
本发明针对存储器翻译(重映射)问题提供了几种低成本解决方法,并采用加扰技术实现更好的固定间隔访问(以及其它明确的访问方式)。这些解决方法基于普通的有限准晶体映射方法来实现高性能。在优选实施例中的解决方法采用模乘法(具有额外的低偏差特性)。
可能的实现方法之一是将地址空间细分为N组并同时进行加扰的新颖方法。例如,对于2K的地址空间(如前所述)和N个存储器单元(组),其中N为任意数,首先进行加扰映射:
a-A=Λa mod 2K然后确定单元数u=A·N/2K,具有局部地址la=A-u·2K/N的存储单元的位置。这里N为短常数,2K/N为(更长的)常数。除了标准的加扰,该方法只要求2乘以短数(6位)和加法/减法。可以将各种模乘法(加扰和翻译)合并到一个模块中,以加速整个过程,从而优选在一个周期时间T(~2.5)ns内完成。
在上述的例子中,每单元的局部子组的数量为1(S=1)。这使下面说明的普通方法的最简单的情况。对于可变组数N和子组数S操作的方案,明显优于上述例子,并且由于它们具有最小的复杂性和高性能,我们推荐他们。这种由加扰地址A获得组号u和局部地址la的低复杂性的技术在下面的本发明的实施例的详细说明中提供。
附图简要说明
图1是本发明的存储器寻址系统的一个实施例的框图。
图2是本发明的一个实施例的存储器部分的框图。
图3是本发明的一个实施例的翻译单元的框图。
图4示出了S-Box工作的流程图。
图5示出了M-Box工作的流程图。
图6示出了N-Box工作的流程图。
图7示出了连接到单存储器阵列的本发明的实施例。
图8示出了连接到可切换总线结构中的单存储器阵列的本发明的实施例。
图9示出了多处理器和存储器系统。
图10示出了在多处理器和存储器系统中连接到局部存储器单元的本发明的实施例。
图11示出了本发明的另一个实施例的流程图。
图12-37为本发明的实施例的硬件实现的层次设计图。
附图中采用的公共原理图模块
如在图12-37中所述,下面列出在分层设计原理图中采用的公共功能模块。他们为本领域的技术人员所熟知的逻辑模块,并由一个或多个数据确定其参数。对于每一个模块类型,由图12-37中的全部原理图说明一个例子。
模块名称和功能说明
1.Bits_N_K_L 输入N位总线A[N-1:0],输出子总线A[L:K]。
2.AddN 在A[N-1:0]和B[N-1:0]上的N位加法器。
3.CSA 进位存储(全)加法器。
4.CSA-N 具有X[N-1:0]、Y[N-1:0]、Z[N-1:0]输入,S[N-1:0]、C[N-1:0]
输出的CSA的N个长阵列。
5.DECNE(其中N为任意数)
具有使能E的[log2N]到N的译码器。
6.GNDxN 返回N个地(0);Q[N-1:0]=0。
7.INS_N_M_L 接收A[N-1:0](N个输入),并在其下面填充L个地,在
其上面插入适合M个输出的A[J:0]位,并且如果N+L<M,
在结果Q[M-1:0]的上面增加地(0)。
8.N_K_M 具有M位输出Q[M-1:0]的硬接线的十进制常数K。
9.Pad_N_M 在A[N-1:0]下面加入M-N个地(0)以得到M位输出。
10.PDMuxN_M 预译码多路器。输入N个独立选择信号S[N-1:0]和矢量总
线A[0][M-1:0],…,A[N-1][M-1:0],得到输出Q[M-1:0]。
11.Up_N_M 接收A[N-1:0]并在其低位加入M个0(左移M位)。结果
为N+M长。
12.TrAddN 带进位输入CI和进位输出CO的N位加法器
13.SubN N长度的减单元
14.CPM N(截断乘积多路器(chopped product mux))
以译码的形式从0、B[N-1:0]、左移仅左移N-1位的B[N-
1:0]和B[N-1:0]的反中以该顺序选择。选择线为A[2:0]。
15.ProdMux_N B[N-1:0]和{0,1,2,3=-1}的简化有符号的乘积。在最
高位(第N位)上加VCC(=1)。
16.Recode 将0、1、2、3、进位输入(CI)以基数4重新编码(recoding)
为0、1、2、-1、进位输出(CO)。
17.Recode_{6,8}采用重新编码模块连续重新编码6或8位。
详细说明
I.2的幂组数的实施例
如果组数N为2的幂(即,N=2b),根据本发明的实施例的地址翻译单元执行如下步骤:
(1)设置A=Λa mod 2K,其中A为对应于逻辑地址a的加扰
后的地址,2K为地址空间(其中K对于字对准存储器通常
为大约21),Λ为奇数值常数;并且
(2)将组号设置在A的高b位并将逻辑地址设置在A的剩余
位。
选择Λ从而最小化与在2K的地址空间上发生在所关心的明确的访问方式(例如,各种固定间隔或对角线访问方式)中的组号的均匀分布的偏差。对Λ的选择依赖于用户的要求,并且本发明不限定于任何特定的标准。适当的Λ可以通过例如直接计算机模拟将Λ的所有可能的值(即,1≤Λ≤2K)的偏差的彻底计算来选择,选择Λ以最小化与用于所关心的明确的一维和多维存储器访问方式的特定类型的组访问的均匀分布的偏差。此外,基于Λ在数论上的性质的分析技术可用于预选择满足最小化与均匀分布的偏差的所需性质的Λ的类型;从而减少彻底模拟所需要的时间。
模块2K的选择是最佳的,因为Λa mod 2K的乘法可以用相对简单的硬件来实现,就像在本领域的技术人员理解的那样。该方案在其实现中只要求几个门延时,并由此在存储器访问上至多增加一个额外的管线级。模乘法mod,比方说216,只占16位定点乘法器的芯片面积的一半(即,只需要一半的门)。它也足够快,因为乘数Λ预先是已知的,并可以是布斯译码以减少在乘法树(Wallace)中的级数。通过在硬件中固定Λ的值可以进一步减小电路的复杂性。
在下面介绍在相当典型的多组存储器片上子系统的情况下准晶体地址映射方案的特殊例子。在该特殊例子中,片上有16个存储器组,并且访问流由在每个存储器组的输入端的FIFO和在输出端的FIFO缓冲。缓冲确保了存储器访问的正确顺序。组冲突的定义只是基于每个存储器组的周期时间。在该例子中,代表当前先进技术的系统周期时间为T ns(T~2.5),并且每个存储器组具有10T ns的周期时间(或者在下一代技术中甚至为8T ns)。因此,访问的非冲突方式是不很严格的条件。在该例中,组冲突只发生在如果在10个连续的存储器请求之内访问同一个组时。相反地,如果在10个连续的存储器请求之内没有发生组冲突,则访问在没有额外等待时间的情况下进行并且处在系统的峰值带宽。虽然随后的讨论假设该存储器结构是恰当的,但是本发明并不限于该结构,并且本领域的技术人员应当理解具体的制造商可能具有不同的结构或不同的定时特性。
在该特殊例子中,在存储器中采用逻辑地址到物理地址的伪随机或随机映射将产生存储器冲突并将显著降低系统的峰值性能。这里所有的明确的逻辑地址访问方式,包括最重要的间隔为1的访问方式,将变为具有不可避免的组冲突的物理地址的随机访问。例如,在存储器组的输入和输出上具有深度为2的FIFO,处理量仅为66%。增加FIFO的深度到6使处理量增加到96%,但要花费超过三倍的平均等待时间。
例如,在对于尺寸达到不是13的倍数的O(2M)的所有间隔的存储器访问中,可选择Λ以产生非冲突的组访问,并由此最小化等待时间。数字13是具有该特性的最大(并且因此是最佳的)数字,但是可以采用其它数字,例如11或其它更小的素数。例如,对于M=14,加扰乘数Λ=3781提供了100%的存储器利用率,并且对于直到不能被13整除的350的所有间隔等待时间最小。
该特定例子对于大多数间隔和任意数量的存储器组保持了非冲突组访问(包括,但不限定于2的幂的组数),同时提供随机化的其它访问。该加扰器对于固定的乘数Λ具有最小的复杂度(其尺寸仅为输入/输出的线性关系),这对于该寻址方案的实际实现很重要,因为它减少了电路中门的数量。此外,在该加扰方案中对于固定间隔阵列的组访问方式类似于有限准晶体tiling。该存储器翻译单元的例子的特征在于在这里公开的系统的所有优选实施例中的地址加扰方案。
在Λ的选择中可采用类似的优化方法以最小化与对于间隔大于1的逻辑地址的其它序列和其它明确的存储器访问的一维和多维方式的组访问的均匀分布的偏差。在其它的这种例子中,可选择Λ从而对于间隔为1(连续)的阵列提供无冲突访问,对于所有更大的不能被89整除的间隔(直到O(2M))提供100%的带宽,但是对于小于89的某些间隔组访问具有比最小等待时间大的等待时间。
在该存储器组结构的特殊例子中,本发明的总的性能,如在模拟中所测定的,几乎是单处理器的存储器处理量的有效带宽的两倍。
II.任意组数的实施例
但是,如果一个或多个组有缺陷,则地址空间收缩到N·2m个存储单元,其中N<2b。在这种情况下,必须将具有有效范围0…N·2m-1的逻辑地址a翻译为在0…N-1范围内的唯一组号u,并且局部地址la在0…2m-1的范围内。进行翻译的硬件逻辑的复杂性对于应用(特别是当这种地址翻译单元与多处理器系统中的各处理单元相连时)是至关重要的。此外,存储器组的尺寸是可变的。这通常通过进一步将N个组的每一个细分为S个子组来实现(由此N和S都可变)。设计存储器地址翻译(和加扰)单元使得当存储器组数N和子组数S被设置(动态地)为小于或等于在存储器系统中的可能的最大值时,该存储器地址翻译(和加扰)单元能够工作。
下面提供用于在这种一般情况下由加扰的地址A得到的组数u和局部地址la的低复杂性技术的特殊例子。
A.定义/基本假设
在这里所用到的术语“逻辑地址”是指器件向外输出到存储器系统的用于识别存储器中的一个对象的地址。术语“物理地址”是指物理存储器单元并包含组号和组内的局部地址。在整个地址空间上逻辑地址和物理地址的映射是一一对应的。
该实施例结合N组存储器进行说明,其中1≤N≤64,在每组中包含S·210个字,其中1≤S≤8。“字”或“高速缓存线”是可寻址的存储器单元,并且可以是任意长度的。在典型的存储器系统中,每个可寻址的存储器单元包含预定的字节数,例如32字节。在该例子中,地址空间为N·S·210,最大为219有效字节。因此,所有的有效存储器单元可由19位逻辑地址A表示,范围为0≤A ≤ N·S·210。每个逻辑地址对应于物理存储器单元,其中物理存储器单元由组号和组内的局部地址确定;即A→(组,局部),其中0≤组≤N,0≤局部≤S·210。本发明并不局限于具有上述结构的存储器。例如,本发明可以应用于具有多于或少于64组或者每组多于8·210字或少于1·210字的存储器。
B.存储器寻址系统说明
在地址翻译和加扰单元中,根据优选实施例,组号Bank(=u)和局部物理地址Local(=la)都由逻辑地址A的位的几个模块上的模乘法确定,然后选择相应结果的位范围。如上所述,该原理在N=2b的情况下非常容易实施,并且实施起来对于任意的组号N和子组号S变化较小。这里对于存储器翻译单元采用模乘法作为构造有限准晶体映射的方法(多个可能的方法之一,但在本实施例中是最佳的)。
图1是根据本发明的用于任意组数的存储器寻址系统的框图。在该实施例中,翻译单元1接收19位逻辑地址A、组号N、子组号S和乘数Λ,并将逻辑地址A翻译为6位组号和13位局部地址,然后输出。然后组号被用于在存储器部分2中寻址将组号依次映射为无缺陷组的物理组号的无缺陷组表6。物理组号和局部地址用来寻址附属的存储器件。无缺陷组表6优选可写存储器(例如RAM)。或者,如果只设置一次,例如在附属存储器件初始测试之后,可以是只读存储器(ROM)。在一个实施例中,无缺陷组表6为64×6位的表,其中行号对应于逻辑组号,并且表中每一行的内容提供了相应的无缺陷组的物理组号。如果少于64组,表中的行并不是都被使用。存储器表6显示为64×6位的存储器是因为在该例中的有效组最大为64。当然,如果存储器系统具有更多的组,则需要更大的存储器,而如果存储器系统具有更少的组,则只需要较小的存储器。
N、S和Λ的值分别储存在存储器部分2的寄存器3、4和5中。或者,它们的值可以储存在只读存储器或硬连线中。
优选的,配置寄存器3、4和5以及无缺陷组表6从而他们能够采用例如图2所示的扫描路径加载来更新(注意,在不同的图中相同的编号代表相同的元件)。采用该技术,N、S和Λ的值进入寄存器3,进入寄存器3的每一位使得寄存器3、4和5的内容右移,同时寄存器3的最后一位移入寄存器4,寄存器4的最后一位移入寄存器5,直到所有三个寄存器填入所需要的值。在无缺陷组表6中的值采用同样的方法设置。
图3是翻译单元1的框图。S-Box 12在其B输入端接收A的高9位(即,A[18:10],在下面表示为Atop)并在其S输入端接收S。它产生Atop/S的商Q和余数R,在本实施例中,其中S的值在1到8之间;即,Atop=Q·S+R。Q和R可以采用如下方法更有效的得到:Q=(L(S)·Atop+C(S))[高位:低位],其中L(S)和C(S)是只依赖于S的常数,并且[高位:低位]定义了位的范围。例如,L(S)和C(S)可存储在寄存器或在硬件中实现。R为Atop-Q·S模8;即,Atop-Q·S的最低三位。对于L(S)和C(S)的值,1≤S≤8,对于位范围[15:10]如下:
Case S=1→L=1024,C=0
Case S=2→L=512,C=0
Case S=3→L=342,C=0
Case S=4→L=256,C=0
Case S=5→L=205,C=0
Case S=6→L=171,C=0
Case S=7→L=146,C=128
Case S=8→L=128,C=0
此外,例如Q可以如下确定:
Case S=1→Q=(Atop·128)[12:7]或Q=Atop[5:0]
Case S=2→Q=(Atop·64)[12:7]或Q=Atop[6:1]
Case S=3→Q=(Atop·171)[14:9]
Case S=4→Q=(Atop·32)[12:7]或Q=Atop[7:2]
Case S=7→Q=(Atop·73+64)[14:9]
图4示出了用于确定Q和R的上述过程。在步骤20中,输入Atop和S的值并设置B等于Atop。在步骤21、22和23中,L(S)、C和范围[高位:低位]的值分别根据S的值确定。在步骤24中,商Q设置为(B·L(S)+C)[高位:低位]。在步骤25中,R设置为(B-S·Q)模8。在步骤26中,Q和R为输出。
再参考图3,M-Box 14(a)在其B输入端接收A的低10位(即,A[9:0],在下面表示为Abot),并在其A输入端输入乘数Λ,(b)计算D=(Abot·Λ)模210,并且(c)在其Q输出端输出结果D。该过程在图5中的步骤31、32和33中分别示出。
例如,通过彻底计算重新确定适当的Λ;即,通过在翻译单元中采用这里所述的各种值并确定对于N和S的特定值产生最佳组访问方式的Λ值。如上所述,当两个逻辑地址被映射到同一个组号时发生冲突。这种冲突每N+1次访问至少发生一次。此外,最佳组访问方式对于所关心的明确的访问方式使组冲突最小化,例如,固定间隔方式和线性两维和多维访问方式(包括在矩阵中的对角线访问方式)。在优选实施例中,间隔1冲突和对于所关心的其它明确访问方式的冲突(包括固定间隔方式)平均发生的次数不超过每N次访问。对于各种间隔,产生最少组冲突的ΛS为最佳。根据该说明书的原理构成的地址翻译单元包括采用模乘法或下面所述的其它选择中的一个的地址翻译单元,避免例如在“发明背景”中所述的伪随机映射的缺点。
对于N的各种值,优选的ΛS对于低范围间隔并且特别是间隔1的优化在下面提供;对于所有的S在其允许的范围1≤S≤8内采用相同的值:
N=33,Λ=33,83,99,165,231,247,249,353,415,459;
N=34,Λ=25,33,83,99,165,231,247,249,353,415,459;
N=35,Λ=25,33,75,83,99,119,165,231,247,249,353,415,459;
N=36,Λ=25,33,75,83,99,119,165,231,247,249,381,415;
N=37,Λ=25,33,75,83,99,119,165,231,249,381,415;
N=38,Λ=25,75,83,119,165,231,249,381,415;
N=39,Λ=25,75,83,119,231,249,305,381,415;
N=40,Λ=25,75,83,119,249,305,381;
N=41,Λ=25,75,83,119,209,249,305,381;
N=42,Λ=25,75,83,119,209,249,305,381;
N=43,Λ=25,75,83,87,119,209,249,305,381,425;
N=44,Λ=25,87,119,209,249,305,381,425;
N=45,Λ=25,87,119,209,305,381,425,483;
N=46,Λ=25,87,209,305,381,425,483;
N=47,Λ=25,87,209,305,381,425,483;
N=48,Λ=25,87,209,305,381,425,483;
N=49,Λ=109,209,305,381,425,483;
N=50,Λ=109,209,305,381,425,483;
N=51,Λ=109,209,243,305,425,483;
N=52,Λ=109,209,243,305,425,483;
N=53,Λ=109,209,235,243,305,397,483;
N=54,Λ=109,209,235,243,305,397,483;
N=55,Λ=109,209,235,243,319,397,483;
N=56,Λ=209,235,243,319,397,483;
N=57,Λ=107,235,243,319,483;
N=58,Λ=107,235,243,319,483;
N=59,Λ=107,235,243,319,483;
N=60,Λ=107,235,243,319,483;
N=61,Λ=107,235,243,319,483;
N=62,Λ=107,235,243,319;
N=63,Λ=107,235,243,375;
N=64,Λ=107,235,243,375;
重新参考图3,N-Box 16在其Q输入端接收S-Box 12的Q输出;在其D输入端接收M-Box 14的输出,并且组号N在其N输入端。N-Box 16计算并输出组号和局部地址的低10位LA[9:0],如图6所述。由N-Box 16输出的局部地址的低10位与由S-Box的R输出端输出的高3位LA[12:10]组合形成整个局部地址。
由N-Box 16执行的过程在图6中示出。在步骤41中,Q、D和N输入。步骤42将X设置为D·N+Q。步骤43将逻辑组号设置为X的位[15:10];即,Logical Bank=X[15:10]。步骤44将局部地址的位[9:0]设置为X[9:0];即,Local Address[9:0]=X[9:0]。步骤45输出逻辑组号和局部地址的低位。
然后逻辑组号发送并作为无缺陷组表6的地址,如上面结合图1的说明。
下面提供的是S-Box 12、M-Box 14和N-Box 16对于N=64、S=8、Λ=235(=28-24-22-20)和逻辑地址A=0x3DF29(或二进制0111101111100101001)的工作的例子:
十进制 | 十六进制 | 二进制 | |
A | 253737 | 3DF29 | 0111101111100101001 |
S-Box | |||
Atop | 247 | 0F7 | 011110111 |
S | 8 | 8 | 1000 |
L(S) | 128 | 80 | 10000000 |
(Atop·L(S)) | 31616 | 7B80 | 0111101110000000 |
Q=(Atop·L(S))[15:10] | 30 | 1E | 011110 |
R=(Atop-S·Q)mod 23 | 7 | 7 | 111 |
M-Box | |||
Abot | 809 | 329 | 1100101001 |
Λ | 235 | EB | 11101011 |
(Abot·Λ) | 190115 | 2E6A3 | 00101110011010100011 |
D=(Abot·Λ)mod 210 | 675 | 2A3 | 1010100011 |
N-Box | |||
N | 64 | 40 | 01000000 |
X=D·N+Q | 43230 | A8DE | 1010100011011110 |
X[15:10] | 42 | 2A | 101010 |
X[9:0] | 222 | DE | 0011011110 |
Output | |||
Local[12:10]=R | 7 | 7 | 111 |
Loca1[9:0]=X[9:0] | 222 | DE | 0011011110 |
Local | 7390 | 1CDE | 1110011011110 |
Bank | 42 | 2A | 101010 |
所说明的该实施例具有2K地址空间,其中K=19。不需要任何进一步的改进,通过例如采用地址的19位子集(例如低19位)所得到的组号即可在任意K>19的地址空间上实施。在这种情况下,局部地址可通过例如将由19位子集所获得的局部地址添加到K位地址的未使用位来获得。
此外,在该实施例中所说明的技术可以容易地适应下面值的范围的任何一个:K大于或小于19;N大于或小于64;S大于或小于8。在这种变型中,参数Λ的选择根据上述的准晶体映射的原理作出。建立在适当改进的S-、M-和N-Box上的正确选择Λ的地址翻译单元的性能随着K的增加(对于K>19)而提高。
C.硬件实现
对于图1-6中示出的实施例的硬件实现,在图12-37中示出的层次设计图中进行了说明。在这些原理图中的低级模块的实现代表说明性的目的,并且在产品中以库和技术特定方式来实现。本领域的技术人员应理解特定实现的范围并能选择适当的库和特定工艺。例如,在较新的技术中采用缓冲器来减小写长度,而在较早的技术中优选更小门延时的更长的线。
图12示出了S-Box 12的硬件实现。Sub3 101接收4四位常数S[3:0]和来自硬连线的常数114(或者,从寄存器)的值1,并由S中减去1。这将包含在范围1到8中的S转换为包含在范围0到7中,作为索引。结果发送到选择的相应的L(S)的多路器MUX8×8 104的S输入端和确定C的相应值和范围[高位:低位]的译码器DEC8110。
多路器MUX8×8 104根据输入S的值选择并输出八个输入值A-H中的一个。这些输入值(对应于图4中的L(S))来自常数排102。如图所示,常数排102在位置0到7中分别包含如下的硬编码常数:128、64、171、32、205、171、146和128。此外,在排102中的值可存储在寄存器中。
译码器DEC8 110也接收Box Sub3 101的输出,并将其输出Q0-Q7中的一个根据接收的值置为高(例如,如果接收的值为0,则Q0置为高;如果接收的值为1,则Q1置为高;等)。
SBox_Mult 105计算B·L(S)+C,其中C对于S=7等于128,否则为0,并在其Q输出端输出结果。它在其A输入端接收来自多路器104的L(S),并在其B输入端接收记作B[8:0]的逻辑地址A的高9位。在该实施例中,C只在S=7时非零,在此情况下译码器DEC8 110的Q6输出端输出1并送到SBox_Mult 105的ADD128输入端。
元件106、107和108,PDMux3_6 109和OR门111和112选择SBox_Mult 105的输出的位范围(即,[高位:低位])。范围取决于译码器DEC8 110的输出。元件106引导这里为SBox_Mult 105的输出Q的位Q[12:7]到PDMux3_6 109的输入端A;元件107引导位Q[14:9]到PDMux3_6 109的输入端B;元件108引导位Q[15:10]到PDMux3_6109的输入端C。PDMux3_6 109为具有只有一个为逻辑1的三个独立选择线S[2:0]的预译码多路器,选择并输出三个对应的输入A、B和C中的一个。在该实施例中,如果S等于1、2或4(即,由译码器DEC8 110到OR门111的输出Q0、Q1或Q3为逻辑1)则选择输入端A(范围[12:7]);如果S等于3(即,译码器DEC8 110的输出Q2为逻辑1)则选择输入端B(范围[14:9]);如果S等于5、6、7或8(即,由译码器DEC8 110到OR门112的输出Q4、Q5、Q6或Q7为逻辑1)则选择输入端C(范围[15:10])。多路器PDMux3_6 109的输出对应于图1所示的S-Box 2的Q输出。
SBox_BMSQ 113计算(B-S·Q)mod 23;具体地,它在其B[2:0]、S[2:0]和Q[2:0]输入端上分别接收B[2:0]、S[2:0]和多路器109的输出的低三位,并在其R输出端上输出结果。每个输入仅为3位,因为计算只决定结果的低三位(即,模23)。
在图14中示出了SBox_Mult 105的实现。Recode8 250重新编码在8位输入端A的位,以利于高效率的乘法。在图15中示出了具有四个Recode 300模块的Recode 250的实现。在图16中示出了Recode300模块的实现。ProdMux_9 251、252、253和254根据其A输入端是否为0、1、2或3分别计算其9位B输入端与0、1、2或-1的简单有符号乘积,并产生11位输出Q,其中Q[10]只在输入端A等于3时置1,而Q[11]一直置为1。ProdMux_9可以以与图17中所示的ProdMux_10相同的方式实现。元件256、257、258、259和260进行总线交换。元件261和262为通用形式Pad_N_M的电路;每个在其长度为N的输入端加入(Pad)M-N个地(0),以产生长度为M的输出。在图18中示出了Pad_N_M的例子Pad_6_10;它在其6位输入中加入4个0以产生10位输出。在图18中的元件Gndx4 340为返回N个地(0)的通用形式GndxN的元件;在Gndx4 340的情况下返回4个地。Up_14_2 263为通用形式Up_N_M的电路;它接收N位输入并在其低位加入M个0,产生长度为N+M的结果。在图19中示出了Up_N_M的例子Up_8_2。元件264、265、269、271和272为通用形式Ins_N_M_L的电路;每个接收长度为N的输入,在其低位增加L个地,在其高位插入适合M个输出的位数,并且,如果N+L<M,在结果的高位增加地(0)。在图20中示出了Ins_N_M_L的例子Ins_14_20_5。CSA_16 266、270和273以及CSA_14 268为通用形式CSA_N的电路;每个为N位长的进位存储(全)加法器CSA的阵列。在图21中示出了CSA_N的例子CSA_10,并且在图22中示出了构成CSA电路的实现。如图22所示,CSA分别计算其三个输入X、Y和Z的和以及进位S和C。如果(XY)Z为1,XOR 135设置和S为1,其它情况为0(即,如果X、Y和Z中的一个为1或它们都为1,则S置1)。如果X、Y和Z中的至少两个为1,则AND门136和OR门139设置进位C为1,否则设为0。最后,在图14中的Add16274为N位加法器的通用形式AddN的电路。在图23中示出了AddN电路的一个例子Add16;它由四个作为TrAddN电路的例子的TrAdd4290电路组成。TrAddN电路为具有进位输入(CI)和进位输出(CO)的N位加法器。在图24中示出了TrAddN电路的一个例子TrAdd4290。
在图13中示出了Sbox_BMSQ 113的实现。AND门200、201和202、Up_2_1 203和Up_1_2 204、CSA_3 205、Ins_3_3_1 206和Add3207计算由Add3 207输出的S·Q。Sub3 208接收Add3 207的输出并将其从B中减去(其中B是Atop的低三位)。在上面说明了在Up_2_1203和Up_1_2 204、CSA_3 205、Ins_3_3_1 206和Add3 207中的电路。Sub3 208是减去N位输入产生N位输出的通用形式SubN的电路。在图25中示出了SubN电路的一个例子Sub3 208。
图25示出了3位输入A减去3位输入B并输出3位结果的电路。NOT门130输出B的反码,记为Y。输入A记为X。CSA 131、132和133为进位储存(全)加法器,每个在其S输出端输出结果,并在其C输出端输出进位。CSA 131计算结果的低位Q[0],CSA 132计算结果的中间位Q[1],而CSA 133计算结果的高位Q[2]。具体地,CSA131将X[0]、Y[0]和硬连线1(即,VCC)相加并在其S输出端输出结果的第一位Q[0],在其C输出端输出进位值。CSA 132接收并将X[1]、Y[1]和CSA 131的C输出相加并在其S输出端输出结果的第二位Q[1],在其C输出端输出进位值。CSA 133接收并将X[2]、Y[2]和CSA 133的C输出相加并在其S输出端输出结果的第三位Q[2]。
在图26-28中示出了图12中的MUX8×8 104的实现。如图26所示,多路器104为8个MUX8 150单元的硬件阵列,一个单元对应于8位输入值A-H的每一位。在图27中示出了MUX8 150单元并包含7个MUX单元170-176。每个MUX单元根据其S输入选择并输出其输入端A或B中的一个。MUX单元170-173根据S的低位(即,S[0])选择输出;MUX单元174-175根据S[1]选择输出;MUX单元176根据S[2]选择输出。在图28中示出了MUX单元的实现,并且其工作原理对于本领域的技术人员是容易理解的。
在图12中的常数排102和N_1_3 114为通用形式N_K_M的硬连线常数,其中K为常数的值,M为输出的位数。在图29中示出了N_K_M的例子N_171_8。它在8位总线上输出值171(二进制10101011)。
在图12中的元件106、107和108为通用形式Bit_N_K_L的子总线结点;结点接收N位总线A[N-1:0],并输出子总线A[L:K]。在图30中示出了Bit_N_K_L的例子Bit_16_9_14。它输出16位输入总线的9-14位。
图12中的PDMux3_6 109为通用形式PDMuxN_M的预编码多路器;这种多路器接收N个独立的选择线并输出宽度为M的N个矢量总线中的一个。在图31中示出了PDMuxN_M的例子PDMux3_10。它具有三个选择线S选择三个10位宽的输入A、B、C中的一个的选择线S并输出选中的输入。
在图36中示出了译码器DEC8 110的实现。DEC8 110根据其3位输入端A接收的值将其输出Q0-Q7中的一个置为高。它包括通用形式的电路的例子的DEC2E 281和DEC4E 283和285;每一个接收log2N宽的输入,并且如果其使能输入E也高,则设置其N个输出中的一个为高。在图37中示出了DECNE的例子DEC2E。
图32示出了M-Box 14的硬件实现。它在其A输入端接收8位值A,并在其B输入端上接收地址A的低10位(即,A[9:0]或Abot),计算Abot·Λmod 210,并输出10位结果。上面已讨论了图32的所有元件,除了CPM_10 301、CPM_8 302、CPM_6 303和CPM_4 304,他们中的每一个都是CPM_N形式的chopped product多路器。CPM_N多路器接收N位输入B[N-1:0],并根据输入A[2:0]的选择线哪一个为逻辑1输出B[N-1:0](即,1·B)、B[N-1:0]左移一位(即,2·B)或B[N-1:0]的反码(即,-1·B)。在图33中示出了CPM_N的例子CPM_10301。在该例子中,输入为10位宽。
图34示出了N-Box 16的硬件实现。它在其D输入端上接收M-Box14的输出、在其Q输入端上接收S-Box 12的Q输出并在其N输入端上接收组号N。D、Q和N输入分别送到Nbox_Mult 350的B、C和A输入端,计算D·N+Q,并输出16位的结果。当没有缺陷组时,对于N=64的情况也有特殊的规定。
在图35中示出了Nbox_Mult 350的硬件实现。图35的所有元件已在上面说明过了。
优选的硬件实现具有单周期操作,通常用于常规系统。在系统中,存储器子系统通过例如当服务上一个请求时,准备新的未完成的请求可容许等待状态,“S-,M-,N-Box”的流水线操作是有利的——他能够在只增加几个用于保存中间结果的短寄存器的成本的条件下显著缩短循环时间。另一个可能性是在上述S-,M-,N-Box中的所有短乘法采用异步实现。对于异步访问存储器阵列,这种方法去掉了建立/保持常数,并为大多数数据方式提供了最快的时间。根据异步乘法器阵列的实现,这种方法导致数据相关定时。
D.备选实施例
根据模乘法作为产生准晶体映射的方法,对于本系统的地址翻译的各种实现有广泛的选择。它们在实现的复杂性以及对于不同的组数和不同的存储器访问的明确方式上变化。在这些优选的实施例中,对于任意的组数存在最小复杂度的硬件实现。
对于由加扰地址A(其中A=Aa mod 2K)得到的组号u和局部地址la,一个低复杂度技术是当每组的子组数S为1(S=1)时,设u=(A·N)/2K和la=A-u·2K/N,其中N为组数。这里N为短常数,对于固定数N,2K/N为(更长的)常数。因此,除了标准加扰以外,该方法只要求两个短数(例如,6位)乘法和加法/减法。此外,各种模乘法(加扰和翻译)可以合并到一个模块中,以加速整个过程,结果在过程中能在时间Tns内完成。
图11示出了根据本发明的翻译单元的备选实施例。这里,如上所述,组数N不超过64。如在上一个实施例中,翻译单元接收地址A并产生相应的组号和局部地址。在步骤51中,A_Top设为A[18:13],A_Mid设为A[12:7],A_Bot设为A[6:0]。在步骤52中,A_S设为A_Top·27+A_Bot。步骤51和52从A中选12位用于确定组号。也可以用在这些步骤中指定的位以外的其它位。在步骤53中,Middle_bits设为(A_S·Λ)[18:13]。在步骤54中,Middle_bits通过无缺陷组表或类似的翻译机制映射到组号。最后,在步骤55中,局部地址A_Local设为A_Mid·27+A_S[E:S],其中[E:S]对于奇数N和N=64为[6:0];对于偶数N但N≠64为[N2+6:N2],其中N=N_Odd*2N2(即,N_Odd为N的奇数系数并且N2为2的最大幂次除以N)。
根据本发明的另一个实施例,采用模乘法以产生准晶体映射,对于各种明确的存储器访问方式用于最小化组冲突。在又一个这种实施例中,A首先与19位常数LL相乘,看乘积A·LL的位[36:18]。在这种实施例的不同例子中,采用如下的模乘法(变换)方法:
A→A·4161+127乘积位[17:14]和[19:18]提供有效的组号,同时乘积的更高位提供局部地址。
上面所示的实施例立即采用更多的门,并且可能比图1-4中所示的实施例慢。在某些情况下,(例如,N=61)它们对于固定间隔访问较好,而对于其它(例如,N=63)它们要差一些。
本领域的技术人员应当理解,各种组合电路,包括加法器(例如,在有限或无限域上多项式乘法的实现等)、查表和模乘法的变形,或者甚至是模拟方案而不是模乘法可用来构成用在地址翻译单元中的与在多组存储器的明确访问方式中减少存储器组冲突具有相同效果的有限准晶体映射(包括,但不限定于在多维表中的固定间隔方式和/或线性访问方式)。
E.容错工作
上述的重映射和加扰系统允许整个存储器系统容错工作,以及片上多处理器和多组存储器的容错工作。
对于任何容错工作的先决条件是确定个存储器组或模块失效的存储器测试和/或控制这些组或模块(单元)的处理器单元。该测试可在存储器和/或处理器使用中的任何阶段进行——在元件制造后的初始测试,或在寿命期和元件工作期间的任何时间。该测试可在外部(例如,通过外部存储器总线进行存储器访问的方法)或内部采用现有技术的各种形式,例如串行或并行扫描路径、BIST(内建自测试)或产生测试图形用于全面测试的专用的片上电路。
一旦进行测试并发现缺陷元件——存储器模块、组或处理单元,必须存储缺陷信息,从而能够被重映射电路有效地利用。有很多普通的方法存储该信息。首先,在制造期间进行测试,缺陷信息可以在芯片中以硬连线的形式存储——但是,通常不能进行进一步的修改。其次,在测试之后,缺陷信息可以写入或下载到芯片上的RAM区。这要求分别存储坏元件号。这种存储可在外部的PROM或其它机械可读形式(条形码、磁条码、系统存储等)进行。第三,在芯片上的专用非易失性区域可用于这种存储和后来的访问或进一步测试后的重新写入。第四,在许多情况下,测试和重新写入可完全由软件进行,例如,起动过程后软件测试存储器并将坏元件的列表下载到芯片上的RAM(或寄存器)区中。在上面结合图1和2说明的无缺陷组表6特别适合于第三和第四种技术。本领域的技术人员应当理解,用于存储缺陷信息的其它技术也可以采用,并且本发明并不局限于上述特定技术。
关于缺陷元件的信息(例如,存储器组、单元或处理单元)可采用多种形式。例如,如果预计只有几个缺陷元件,可存储缺陷元件号,用重映射确保这些元件号不被使用。在缺陷元件的数量很多的情况下,可采用简单的RAM存储好(无缺陷)元件的列表。作为这种实现的典型情况,考虑64个存储器组(单元)的系统,其中任何数量的组可以标记为有缺陷的,并且只有N个是好的(无缺陷的)。在图1中的无缺陷组表6是这种RAM的一个例子。如上所述,它含有存储每个有效的6位组号Bank(1≤Bank≤N)的64×6 RAM(或ROM)阵列,Bank是在芯片上的N个无缺陷组中的一个的实际号。
此外,缺陷或无缺陷组的列表可以采用各种用于RAM阵列的压缩技术进行压缩,从而显著地减少存储缺陷信息所需要的位数。例如,位数可由64×6位(即,如果几乎所有的组都有缺陷,不压缩所需的最大位数)减少到最多W×6位,其中W为最小的缺陷或无缺陷组的数量。虽然这种压缩产生额外的解压缩电路的成本(大约为O(W)个门),以及翻译组号的额外的时间延迟。只有当在芯片上的小RAM(ROM)模块不能被有效的利用时,并且在用存储阵列而不是寄存器来实现的情况下,它可能是有用的。
其它参数的值可能也需要调整,以提供容错工作,例如N和S的值——即,存储器组的数量和子组(单元)、常数L和乘数Λ或LL。N、S、L和/或Λ的值可以与无缺陷单元的列表一起存储或下载。它们应当保存在有缓冲输出信号的快速寄存器中,或直接硬连线的(如果在制造期间进行了测试和更改)。可以下载或用于L、Λ或LL的固定值的常数L、A或LL的值可以是简单的硬连线。如果相当数量的模块失效(大于50%),硬连线L、Λ或LL会降低性能,但也能显著地减少在图3中的S-Box 12和M-Box 14中的门的数量。
存储有缺陷或无缺陷元件的列表的位置依赖于放置在芯片上的存储器系统的类型。在如图7所示的表示具有用于所有存储器元件的单个存储器总线的单个存储器模块的芯片中,或如图8所示的具有可切换总线的单个存储器模块中,一个位置用于存储列表(无缺陷组表和地址翻译参数值),一个位置用于重映射和加扰电路,即,存储器区2和翻译单元1。(在图7中,无缺陷组标记为60,有缺陷组标记为61。)
但是,在片上系统中,如图9和10所示,可能多个处理器访问多个存储器单元和组,有缺陷或无缺陷单元的列表以分布方式与各处理单元存储在一起(或其簇)。此外,重映射和加扰电路与各处理单元(或它们的簇)放置在一起。这显著增加了实现重映射和加扰电路所需的最少的门,并使图1-6的实现为最佳。图9示出了多处理器和由单元70组成的存储器系统。图10示出了各单元70中与存储器相关的部分。翻译单元81和存储区82控制对局部存储单元(子组)B1-B883的访问。开关80为局部和全局地址以及控制位的通道,并为存储器数据信息进出各单元(70)往来于整个片上系统的通信开关提供通路,
提出重映射电路(或其软件实现)的目的是允许有许多存储器和处理元件的大系统的容错工作,其能容忍许多失效的存储器或处理元件而不降低系统性能。为以降低的是适当减小的可用存储容量(或处理器性能)。地址翻译和加扰单元确保与可用(无缺陷的)存储器系统相同质量的存储器访问。
此外,如果在芯片上要求具有固定数量的存储器组和/或处理单元,提出的容错解决方案是在芯片上增加一定数量的额外(称作空闲或保留)存储器组和/或处理单元。这种空闲组或单元的数量由成品率和工艺因素决定并且可以变化。此外,也可以配置系统使某些存储器组优于其它原因而被忽略。在这里公开的系统允许这种可变性。具有空闲组或单元的备选方法对用户有效地隐藏了在芯片上不可避免地存在的缺陷和失效元件。此外,在不允许出故障的关键性任务(mission-critical)的应用中,比如说3个处理器/存储器单元执行相同的任务,通过比较,一个可以对芯片的内部工作进行连续的检验。这允许对各元件进行动态运转检查,允许他们离线运转而不对芯片的工作造成任何中断。与空闲的概念结合,这能保持芯片对于在其寿命期和工作期间的故障能够不降低性能的工作。
在上述实施例上进行许多变形对于本领域的技术人员是可能的和显然的,并且本发明并不限于这些实施例。例如,在上述实施例中示出的电路对于特定的硬件可以很容易地改变和优化,并且可以包含更多或更少的电路和元件。而且,除了以片上电路和分立元件组合的形式硬件实现以外,本方面可以将虚拟地址访问重映射到物理地址或重新组织的访问重映射到程序可用的可变存储器阵列,从而用软件实现。此外,虽然本发明的某些实施例结合19位(字或高速缓存线)地址空间和特定最大数量的组和子组进行说明,但是本发明可以很容易地适应更大或更小的地址空间和更大或更小的可变数量的组和子组和处理器单元。
Claims (45)
1.一种存储器件,具有多个,N个,存储器组,每个存储器组包括多个寻址存储器单元,每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括存储器组号和局部地址;存储器件含有地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有形成的重复方式不小于N+1的周期,并在对应的物理地址的序列中平均重复组号不在大约N个地址之内的存储器组号。
2.根据权利要求1的存储器件,其中在至少一个明确的逻辑地址的访问序列中的每个逻辑地址在序列中与另一个地址间隔固定的值。
3.根据权利要求1的存储器件,其中至少一个明确的逻辑地址的访问序列是在一维或多维表中的线性访问序列。
4.根据权利要求1的存储器件,其中对于多个明确的逻辑地址的访问序列,所得到的对应于物理地址的序列中的物理地址具有形成的重复方式不小于N+1的周期并在相应的物理地址的序列中平均重复组号不在大约N地址之内的存储器组号。
5.根据权利要求4的存储器件,其中在多个明确的逻辑地址的访问序列中的每个逻辑地址在序列中与另一个地址间隔固定的值。
6.根据权利要求4的存储器件,其中多个明确的逻辑地址的访问序列是在一维或多维表中的线性访问序列。
7.根据权利要求1的存储器件,其中对于每一个逻辑地址a,相应的组号B和相应的局部地址la在模乘法结果Λ·a’中的位的范围得到,其中a’含有a的位的范围,Λ代表不等于1的整数乘数。
8.根据权利要求7的存储器件,其中Λ由下面确定:
(a)将Λ设为值的范围;
(b)对于每个值计算与在至少一个明确的访问方式上的组号的均匀分布的偏差;并且
(c)从产生最小偏差的值中选择Λ。
9.根据权利要求7的存储器件,其中每组包含子组数量S,并且对于每个逻辑地址a,对应的组号B进一步由S获得。
10.根据权利要求9的存储器件,除了S个存储器子组,还包括至少一个缺陷存储器子组。
11.根据权利要求9的存储器件,还包括:
(a)存储值Λ的Λ存储器;
(b)存储值N的N存储器;
(c)存储值S的S存储器;以及
(d)将组号映射到无缺陷组号的组表;
其中如果在一个或多个组中检测到错误,Λ存储器、N存储器、S存储器和组表是可修改的。
12.根据权利要求9的存储器件,还包括存储S的值的S存储器。
13.根据权利要求7的存储器件,还包括存储Λ的值的Λ存储器。
14.根据权利要求7的存储器件,还包括存储N的值的N存储器。
15.根据权利要求7的存储器件,除了N个存储器组,还包括至少一个缺陷存储器组。
16.根据权利要求7的存储器件,还包括将组号映射到无缺陷组号的组表。
17.根据权利要求1的存储器件,其中对于每一个逻辑地址a,相应的组号B和相应的局部地址la由号a’的查表结果中的位的范围得到,其中a’含有a的位的范围。
18.根据权利要求1的存储器件,其中对于每一个逻辑地址a,相应的组号B和相应的局部地址la由a’的一个系数在有限或无限域上的多项式乘法的结果中的位的范围得到,其中a’含有a的位的范围。
19.根据权利要求1的存储器件,其中对于每一个逻辑地址a,相应的组号B和相应的局部地址la由具有输入a’的组合电路的输出中的位的范围得到,其中a’含有a的位的范围。
20.一种具有多个,N个,存储器组的存储器件,每个存储器组包括多个寻址存储器单元,每个存储器单元具有逻辑地址a和对应的物理地址,物理地址由存储器组号B和局部地址la组成,存储器件含有地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中
(a)对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有平均重复组号不在对应的物理地址的序列中的大约N个地址之内的存储器组号,并且
(b)N的值可以重新设置为在所述存储器件上小于可用组的最大数量的任何数量的组。
21.根据权利要求20的存储器件,其中在至少一个明确的逻辑地址的访问序列中的每个逻辑地址在序列中与另一个地址间隔固定的值。
22.根据权利要求20的存储器件,其中至少一个明确的逻辑地址的访问序列是在一维或多维表中的线性访问序列。
23.根据权利要求20的存储器件,其中对于多个明确的逻辑地址的访问序列,所得到的对应于物理地址的序列中的物理地址具有形成的重复方式不小于N+1的周期并在对应的物理地址的序列中平均重复组号不在大约N地址之内的存储器组号。
24.根据权利要求23的存储器件,其中在多个明确的逻辑地址的访问序列中的每个逻辑地址在序列中与另一个地址间隔固定的值。
25.根据权利要求23的存储器件,其中多个明确的逻辑地址的访问序列是在一维或多维表中的线性访问序列。
26.根据权利要求20的存储器件,其中:
(a)存储器件包含一个或多个缺陷存储器组;
(b)对于这种有缺陷的存储器组的数量,值N小于在所述存储器件上的可用存储器组的最大数量;并且
(c)重新配置所述存储器件,使N个存储器组的工作不受影响。
27.根据权利要求20的存储器件,其中:
(a)存储器件包含一个或多个保留的存储器组;
(b)对于这种保留的存储器组的数量,值N小于在所述存储器件上的可用存储器组的最大数量;并且
(c)重新配置所述存储器件,使N个存储器组的工作不受影响。
28.根据权利要求20的存储器件,其中:
(a)存储器件包含一个或多个被忽略的存储器组;
(b)对于这种被忽略的存储器组的数量,值N小于在所述存储器件上的可用存储器组的最大数量;并且
(c)重新配置所述存储器件,使N个存储器组的工作不受影响。
29.根据权利要求20的存储器件,还包括将组号映射到无缺陷组号的组表。
30.根据权利要求20的存储器件,还包括存储N的值的N存储器。
31.一种系统,包括:
多个,N个,存储器组,每个存储器组包括多个寻址存储器单元,每个存储器单元具有逻辑地址a和对应的物理地址,物理地址包括存储器组号B和局部地址la;
多个,M个,处理单元,与所述存储器单元通信
地址翻译单元,对于每个逻辑地址得到对应的物理地址,
其中,对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有平均重复组号不在对应的物理地址的序列中的大约N个地址之内的存储器组号,
并且其中系统进一步的特征为下面中的一个,从下面组成的组中选取:
(i)N的值可以重新设置为在所述系统上小于这种可用单元的最大数量的存储器组的任何数量,并且
(ii)M的值可以重新设置为在所述系统上小于这种可用单元的最大数量的处理单元的任何数量。
32.根据权利要求31的系统,其中对于逻辑地址的多个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有平均重复组号不在对应的物理地址的任何序列中的大约N个地址之内的存储器组号。
33.一种在具有多个,N个,包括多个寻址存储器单元的存储器组的存储器件,每个存储器单元具有逻辑地址a和对应的物理地址,物理地址包括存储器组号B和局部地址la,一种方法,其中相应的组号B和相应的局部地址la在模乘法结果Λ·a’中的位的范围得到,其中a’含有a的位的范围,Λ代表整数乘数,其中(a)对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有平均重复组号不在对应的物理地址的序列中的大约N个地址之内的存储器组号,以及(b)N的值可以重新设置为在所述存储器件上小于可用组的最大数量的组的任何数量。
34.根据权利要求33的方法,其中在给定的逻辑地址的访问序列中的每个逻辑地址与序列中的另一个地址间隔固定的值。
35.根据权利要求33的方法,其中每个明确的逻辑地址的访问序列是在一维或多维表中的线性访问序列。
36.根据权利要求33的方法,还包括存储将组号映射到无缺陷组号的组表的步骤。
37.根据权利要求33的方法,还包括在N存储器中储存N的值的步骤。
38.根据权利要求33的方法,其中每组包含子组数量S,并且对于每个逻辑地址a,对应的组号B进一步由S获得。
39.根据权利要求38的方法,还包括在S存储器中储存S的值的步骤。
40.根据权利要求38的方法,还包括步骤:
(a)在Λ存储器中存储Λ的值;
(b)在N存储器中存储N的值;
(c)在S存储器中存储S的值;
(d)存储将组号映射到无缺陷组号的组表;以及
(e)如果在一个或多个组中检测到错误,修改Λ存储器、N存储器、S存储器和组表中的一个或多个。
41.根据权利要求33的方法,还包括在Λ存储器中存储Λ的值的步骤。
42.一种存储器件,包括:
多个,N个,存储器组,每个存储器组由多个寻址存储器单元组成,每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括存储器组号和局部地址;以及
一种地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中,对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有形成的重复方式不小于N+1的周期的存储器组号,并其中在对应的物理地址的序列中组冲突的数量平均少于访问的1/e。
43.一种存储器件,包括:
多个,N个,存储器组,每个存储器组包括多个寻址存储器单元,每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括存储器组号和局部地址;
一个地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中,对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有形成的重复方式不小于N+1的周期的存储器组号,并在对应的物理地址的序列中平均重复组号不在大约N个地址之内的存储器组号;
其中N等于2b,并且
逻辑地址a包含2K地址空间,
并且其中对于每一个逻辑地址a,加扰地址A包含Λa mod 2K,
相应的组号B由A的第一选择位得到,并且
相应的局部地址la由A的第二选择位得到。
44.一种存储器件,包括:
多个,N个,存储器组,每个存储器组由多个寻址存储器单元组成,每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括存储器组号和局部地址;
一个地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中,对于逻辑地址的至少一个明确的访问序列,在对应的物理地址的序列中得到的物理地址具有形成的重复方式不小于N+1的周期的存储器组号,并在对应的物理地址的序列中平均重复组号不在大约N个地址之内的存储器组号;
其中N:
(a)对于每一个逻辑地址a
(i)加扰地址A包含Λa’,其中Λ是不为1的奇整数乘数并且a’含有a的选定位,以及
(ii)相应的组号B由A的第一选择位得到,并且
(iii)相应的局部地址la由A的第二选择位得到。
45.一种存储器件,包括:
多个,N个,存储器组,每个存储器组由多个寻址存储器单元组成,每个存储器单元具有逻辑地址和对应的物理地址,物理地址包括存储器组号和局部地址;以及
一个地址翻译单元,对于每个逻辑地址得到对应的物理地址,其中,每个逻辑地址及其对应的物理地址通过准晶体映射相联系。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/472,930 | 1999-12-27 | ||
US09/472,930 US6381669B1 (en) | 1999-12-27 | 1999-12-27 | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1437728A true CN1437728A (zh) | 2003-08-20 |
Family
ID=23877479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00819216A Pending CN1437728A (zh) | 1999-12-27 | 2000-12-26 | 多组、容错、高性能存储器寻址系统及其方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6381669B1 (zh) |
EP (1) | EP1247185A4 (zh) |
JP (1) | JP5089842B2 (zh) |
KR (1) | KR100781132B1 (zh) |
CN (1) | CN1437728A (zh) |
AU (1) | AU2455201A (zh) |
WO (1) | WO2001048610A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035865A (zh) * | 2009-09-30 | 2011-04-27 | 阿里巴巴集团控股有限公司 | 数据存储及数据寻址方法、系统和设备 |
CN103399827A (zh) * | 2013-07-25 | 2013-11-20 | 华为技术有限公司 | 存储装置、执行访问操作的系统和方法 |
CN105518632A (zh) * | 2013-09-27 | 2016-04-20 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN103914390B (zh) * | 2013-01-06 | 2016-08-17 | 北京忆恒创源科技有限公司 | 存储设备 |
CN110350922A (zh) * | 2019-07-18 | 2019-10-18 | 南京风兴科技有限公司 | 一种二进制编码的寻址方法及寻址器 |
CN114385089A (zh) * | 2022-03-22 | 2022-04-22 | 北京清微智能信息技术有限公司 | 一种基于交叉编址的动态bank存储方法、装置及电子设备 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748480B2 (en) * | 1999-12-27 | 2004-06-08 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
JP2002064145A (ja) * | 2000-06-09 | 2002-02-28 | Fujitsu Ltd | 冗長素子を備える集積回路チップ、マルチプロセッサおよびその製法 |
US6671822B1 (en) * | 2000-08-31 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache |
US6968300B2 (en) * | 2001-01-26 | 2005-11-22 | Dell Products L.P. | Computer system and printed circuit board manufactured in accordance with a quasi-Monte Carlo simulation technique for multi-dimensional spaces |
US6831649B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Two-dimensional buffer pages using state addressing |
US6850241B2 (en) * | 2001-02-15 | 2005-02-01 | Sony Corporation | Swapped pixel pages |
US6828977B2 (en) * | 2001-02-15 | 2004-12-07 | Sony Corporation | Dynamic buffer pages |
US6831650B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Checkerboard buffer using sequential memory locations |
US7205993B2 (en) * | 2001-02-15 | 2007-04-17 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using memory bank alternation |
US7038691B2 (en) * | 2001-02-15 | 2006-05-02 | Sony Corporation | Two-dimensional buffer pages using memory bank alternation |
US6803917B2 (en) * | 2001-02-15 | 2004-10-12 | Sony Corporation | Checkerboard buffer using memory bank alternation |
US7379069B2 (en) * | 2001-02-15 | 2008-05-27 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages |
US6992674B2 (en) * | 2001-02-15 | 2006-01-31 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using state addressing |
US7088369B2 (en) * | 2001-02-15 | 2006-08-08 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using bit-field addressing |
US6801204B2 (en) * | 2001-02-15 | 2004-10-05 | Sony Corporation, A Japanese Corporation | Checkerboard buffer using memory blocks |
US6765580B2 (en) * | 2001-02-15 | 2004-07-20 | Sony Corporation | Pixel pages optimized for GLV |
US6791557B2 (en) * | 2001-02-15 | 2004-09-14 | Sony Corporation | Two-dimensional buffer pages using bit-field addressing |
US6831651B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Checkerboard buffer |
US6795079B2 (en) * | 2001-02-15 | 2004-09-21 | Sony Corporation | Two-dimensional buffer pages |
US20030058368A1 (en) * | 2001-09-24 | 2003-03-27 | Mark Champion | Image warping using pixel pages |
US6965980B2 (en) * | 2002-02-14 | 2005-11-15 | Sony Corporation | Multi-sequence burst accessing for SDRAM |
US7155575B2 (en) * | 2002-12-18 | 2006-12-26 | Intel Corporation | Adaptive prefetch for irregular access patterns |
US7013378B2 (en) * | 2003-04-30 | 2006-03-14 | Hewlett-Packard Development Company, L.P. | Method and system for minimizing the length of a defect list for a storage device |
JP4765260B2 (ja) * | 2004-03-31 | 2011-09-07 | 日本電気株式会社 | データ処理装置およびその処理方法ならびにプログラムおよび携帯電話装置 |
KR100539261B1 (ko) * | 2004-05-04 | 2005-12-27 | 삼성전자주식회사 | 디지털 데이터의 부호화 장치와 dvd로의 기록 장치 및그 방법 |
US7685354B1 (en) * | 2004-06-30 | 2010-03-23 | Sun Microsystems, Inc. | Multiple-core processor with flexible mapping of processor cores to cache banks |
US7873776B2 (en) * | 2004-06-30 | 2011-01-18 | Oracle America, Inc. | Multiple-core processor with support for multiple virtual processors |
FR2889349A1 (fr) * | 2005-07-26 | 2007-02-02 | St Microelectronics Sa | Procede et dispositif de securisation d'un circuit integre, notamment une carte a microprocesseur |
KR100855467B1 (ko) * | 2006-09-27 | 2008-09-01 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법 |
US7694193B2 (en) * | 2007-03-13 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Systems and methods for implementing a stride value for accessing memory |
US7472038B2 (en) * | 2007-04-16 | 2008-12-30 | International Business Machines Corporation | Method of predicting microprocessor lifetime reliability using architecture-level structure-aware techniques |
US20100262751A1 (en) * | 2009-04-09 | 2010-10-14 | Sun Microsystems, Inc. | Memory Control Unit Mapping Physical Address to DRAM Address for a Non-Power-of-Two Number of Memory Ranks Using Lower Order Physical Address Bits |
US9348751B2 (en) * | 2009-09-25 | 2016-05-24 | Nvidia Corporation | System and methods for distributing a power-of-two virtual memory page across a non-power-of two number of DRAM partitions |
WO2013187862A1 (en) * | 2012-06-11 | 2013-12-19 | Intel Corporation | A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM |
US10268601B2 (en) | 2016-06-17 | 2019-04-23 | Massachusetts Institute Of Technology | Timely randomized memory protection |
US10310991B2 (en) * | 2016-08-11 | 2019-06-04 | Massachusetts Institute Of Technology | Timely address space randomization |
KR102540964B1 (ko) | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
KR20210129370A (ko) | 2020-04-20 | 2021-10-28 | 삼성전자주식회사 | 메모리 모듈 및 적층형 메모리 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063526A (en) * | 1987-06-03 | 1991-11-05 | Advanced Micro Devices, Inc. | Bit map rotation processor |
JPH063589B2 (ja) * | 1987-10-29 | 1994-01-12 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | アドレス置換装置 |
US5111389A (en) * | 1987-10-29 | 1992-05-05 | International Business Machines Corporation | Aperiodic mapping system using power-of-two stride access to interleaved devices |
US5043874A (en) | 1989-02-03 | 1991-08-27 | Digital Equipment Corporation | Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory |
JPH04293135A (ja) * | 1991-03-20 | 1992-10-16 | Yokogawa Hewlett Packard Ltd | メモリアクセス方式 |
JP3532932B2 (ja) | 1991-05-20 | 2004-05-31 | モトローラ・インコーポレイテッド | 時間重複メモリ・アクセスを有するランダムにアクセス可能なメモリ |
US5526507A (en) * | 1992-01-06 | 1996-06-11 | Hill; Andrew J. W. | Computer memory array control for accessing different memory banks simullaneously |
US5479624A (en) | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
EP0615190A1 (en) | 1993-03-11 | 1994-09-14 | Data General Corporation | Expandable memory for a digital computer |
JP3304531B2 (ja) | 1993-08-24 | 2002-07-22 | 富士通株式会社 | 半導体記憶装置 |
US5530837A (en) | 1994-03-28 | 1996-06-25 | Hewlett-Packard Co. | Methods and apparatus for interleaving memory transactions into an arbitrary number of banks |
US6021482A (en) * | 1997-07-22 | 2000-02-01 | Seagate Technology, Inc. | Extended page mode with a skipped logical addressing for an embedded longitudinal redundancy check scheme |
-
1999
- 1999-12-27 US US09/472,930 patent/US6381669B1/en not_active Expired - Fee Related
-
2000
- 2000-12-26 CN CN00819216A patent/CN1437728A/zh active Pending
- 2000-12-26 WO PCT/US2000/035209 patent/WO2001048610A1/en active Application Filing
- 2000-12-26 EP EP00988335A patent/EP1247185A4/en not_active Withdrawn
- 2000-12-26 AU AU24552/01A patent/AU2455201A/en not_active Abandoned
- 2000-12-26 JP JP2001549196A patent/JP5089842B2/ja not_active Expired - Fee Related
- 2000-12-26 KR KR1020027008395A patent/KR100781132B1/ko not_active IP Right Cessation
-
2002
- 2002-03-26 US US10/107,079 patent/US6519673B1/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035865A (zh) * | 2009-09-30 | 2011-04-27 | 阿里巴巴集团控股有限公司 | 数据存储及数据寻址方法、系统和设备 |
CN103914390B (zh) * | 2013-01-06 | 2016-08-17 | 北京忆恒创源科技有限公司 | 存储设备 |
CN103399827A (zh) * | 2013-07-25 | 2013-11-20 | 华为技术有限公司 | 存储装置、执行访问操作的系统和方法 |
CN103399827B (zh) * | 2013-07-25 | 2015-11-25 | 华为技术有限公司 | 存储装置、执行访问操作的系统和方法 |
US9483428B2 (en) | 2013-07-25 | 2016-11-01 | Huawei Technologies Co., Ltd. | Storage apparatus, and system and method for executing access operations |
CN105518632A (zh) * | 2013-09-27 | 2016-04-20 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN105518632B (zh) * | 2013-09-27 | 2019-07-09 | 高通股份有限公司 | 用于存储器交错的可配置扩展函数 |
CN110350922A (zh) * | 2019-07-18 | 2019-10-18 | 南京风兴科技有限公司 | 一种二进制编码的寻址方法及寻址器 |
CN114385089A (zh) * | 2022-03-22 | 2022-04-22 | 北京清微智能信息技术有限公司 | 一种基于交叉编址的动态bank存储方法、装置及电子设备 |
CN114385089B (zh) * | 2022-03-22 | 2022-08-05 | 北京清微智能信息技术有限公司 | 一种基于交叉编址的动态bank存储方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
AU2455201A (en) | 2001-07-09 |
WO2001048610A8 (en) | 2001-11-29 |
US6381669B1 (en) | 2002-04-30 |
KR100781132B1 (ko) | 2007-12-03 |
JP2003520368A (ja) | 2003-07-02 |
KR20020079764A (ko) | 2002-10-19 |
EP1247185A4 (en) | 2008-01-02 |
US6519673B1 (en) | 2003-02-11 |
JP5089842B2 (ja) | 2012-12-05 |
EP1247185A1 (en) | 2002-10-09 |
WO2001048610A1 (en) | 2001-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1437728A (zh) | 多组、容错、高性能存储器寻址系统及其方法 | |
Imani et al. | Ultra-efficient processing in-memory for data intensive applications | |
US5754753A (en) | Multiple-bit error correction in computer main memory | |
US6748480B2 (en) | Multi-bank, fault-tolerant, high-performance memory addressing system and method | |
US5459742A (en) | Solid state disk memory using storage devices with defects | |
CN112506567B (zh) | 数据读取方法和数据读取电路 | |
US5343426A (en) | Data formater/converter for use with solid-state disk memory using storage devices with defects | |
Bu et al. | A design methodology for fixed-size systolic arrays | |
US20110083001A1 (en) | Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture | |
CN1652092A (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
Kim et al. | SHARP: A short-word hierarchical accelerator for robust and practical fully homomorphic encryption | |
CN101782893A (zh) | 可重构数据处理平台 | |
JP2009529756A (ja) | テストデータのフォーマット変換 | |
JP2000231513A (ja) | N次元矩形データアレイの任意の所与次元におけるパラレルデータアクセスのためのメモリアーキテクチャ | |
CN1648853A (zh) | 多字乘法-累加电路和蒙哥马利模乘法-累加电路 | |
CN1120196A (zh) | 地址变换电路 | |
Ghaffar et al. | A low power in-DRAM architecture for quantized CNNs using fast Winograd convolutions | |
KR20090060666A (ko) | 메모리 액세스 충돌 감소 장치 및 방법 | |
Liu et al. | Accelerating Personalized Recommendation with Cross-level Near-Memory Processing | |
CN115827211A (zh) | 近内存计算加速器、双列直插式内存模块以及计算设备 | |
Lin et al. | Gratetile: Efficient sparse tensor tiling for CNN processing | |
CN113704142B (zh) | 片上存储的地址重映射电路 | |
CN1081361C (zh) | 高速缓冲存储器系统中的地址映射变换技术与装置 | |
CN112925727B (zh) | Tensor高速缓存及访问结构及其方法 | |
Wu et al. | SWG: an architecture for sparse weight gradient computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1058565 Country of ref document: HK |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1058565 Country of ref document: HK |