CN105518632A - 用于存储器交错的可配置扩展函数 - Google Patents

用于存储器交错的可配置扩展函数 Download PDF

Info

Publication number
CN105518632A
CN105518632A CN201480049360.9A CN201480049360A CN105518632A CN 105518632 A CN105518632 A CN 105518632A CN 201480049360 A CN201480049360 A CN 201480049360A CN 105518632 A CN105518632 A CN 105518632A
Authority
CN
China
Prior art keywords
address bit
storage channel
mapped
bout
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.)
Granted
Application number
CN201480049360.9A
Other languages
English (en)
Other versions
CN105518632B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105518632A publication Critical patent/CN105518632A/zh
Application granted granted Critical
Publication of CN105518632B publication Critical patent/CN105518632B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种通过在连续回合中将存储器的地址位反复地映射到数目N个存储器通道而交错所述存储器的方法,其中在除了最后回合的每一回合中:选择地址位的独特子集;基于地址位的所述所选择子集确定可能独特组合的最大数目(L);将组合以最大可能次数(F)映射到所述N个存储器通道,其中所述N个存储器通道中的每一者被映射到相等数目个组合;及当剩余无法映射到所述N个存储器通道中的每一者的数个组合(K,其小于N)时,进入下一回合。在所述最后回合中,将在先前回合中未用于所述子集中的剩余最高有效地址位映射到所述N个存储器通道中的每一者。

Description

用于存储器交错的可配置扩展函数
根据35U.S.C.§119主张优先权
本专利申请案主张2013年9月27日申请且让渡给本受让人并据此以引用的方式明确并入本文中的标题为“用于存储器交错的可配置扩展函数(CONFIGURABLESPREADINGFUNCTIONFORMEMORYINTERLEAVING)”的临时申请案第61/883,833号的优先权。
技术领域
所揭示实施例是关于横跨两个或两个以上存储器通道的存储器交错。更特定来说,示范性实施例是关于用于横跨任何数目个存储器通道的均匀存储器交错的可缩放且可配置扩展函数。
背景技术
计算机处理系统及应用中已知用于将存储器空间分布到两个或两个以上存储器组的存储器交错。此交错允许同时及/或连续存取两个或两个以上存储器组,从而因此避免如果所有存储器地址都映射到统一非交错存储器结构则可引发的读取/写入等待时间延迟。因此,就存储器存取带宽及存储器存取速度来说存储器交错可提供大量益处。
参看图1,说明到两个存储器组的简单双向存储器交错方案。32位地址102(A[31:0])可用于寻址存储器(未说明),其中奇数地址(例如)是关于通过第一存储器通道,通道Ch0108_0的第一存储器组(未说明),且所有偶数地址是关于通过第二存储器通道,通道Ch1108_1的第二存储器组(未说明)。为了实现此情况,说明简单通道扩展函数104,其中地址102的最低有效位(即,位A[0])可用于决定将特定地址路由到哪个通道。举例来说,如果偶数编号值出现于地址102上,则位A[0]将为“0”,此情况可用于引导对第一存储器通道Ch0108_0的相关存储器存取(例如,基于简单通道扩展函数104包括设定成值~A[0]的用于启用对第一存储器通道Ch0108_0的存取的选择信号CS0)。类似地,基于为“1”的位A[0],地址102的奇数编号值可用于对第二存储器通道Ch1108_1进行相关存储器存取(例如,在通道扩展函数104进一步包含基于用于选择第二存储器通道Ch1108_1的A[0]的选择信号CS1的情况下)。地址102的剩余高阶位用于通道内寻址函数106,即,寻址含有于第一及第二存储器组中的每一者内的关于第一及存储器通道Ch0108_0及Ch1108_1的存储器空间。
虽然上文简单方案良好地起作用于双向交错(或大体来说,交错等于2的幂的存储器通道数目),但此类方案不可容易地或有效地缩放。举例来说,如果在特定存储器架构中希望三个存储器通道之间的三向交错,则常规存储器交错技术无法使用如图1中所说明的用于双向交错的简单技术实现横跨三个存储器通道的均匀交错。这是因为用于三向交错的类似通道扩展函数可要求(例如)地址102的两个最低阶位以在三个存储器通道之间进行选择。然而,两个位产生四个二进制位组合(即,“00”、“01”、“10”及“11”),且简单地将关于额外位组合的地址重新映射到三个存储器通道中的一者将导致在三个存储器通道之间不均匀地划分地址,此情况是不合需要的。
在尝试克服上文缺点(尤其相关于三向交错)时,常规方法涉及使用足够宽以同时存取所有三个存储器通道的更宽数据总线。举例来说,192位宽的数据总线可涵盖对关于32位存储器空间的所有三个存储器通道的读取及写入存取。然而,此类常规方法是浪费的且并不利用交错的益处;其倾向于在功率及面积方面低效。此外,此类方法经紧密定制用于三向交错,且因此不可缩放到横跨其它数目个存储器通道的交错。
用于三向交错的又一常规方法利用模3(模数3)通道扩展函数连同查表法以在三个通道之间进行选择以用于引导地址。然而,此方法涉及生硬使用并未使用模3扩展函数有效地映射的模数函数。实施模3函数要求类似于用于实施硬件除法器的硬件,如所属领域的技术人员将理解所述硬件是昂贵的。因此,此方法也不合乎需要。
所属领域中已知的其它此类方法类似地低效且缺乏扩展函数的可缩放性、简单性及均匀性。因此,需要可缩放(例如,超出仅3个到其它数目个通道,例如5个、7个、13个等);可在其扩展程度上配置(例如,较不积极/较积极);及关于其实施方案简单、便宜且快速的扩展函数。
发明内容
示范性实施例是关于用于可横跨任何数目个存储器通道实施均匀交错的低成本、可高度配置、可容易缩放存储器交错功能的系统及方法。
举例来说,示范性实施例是关于一种交错存储器的方法,所述方法包括:在连续回合中将所述存储器的地址位反复地映射到数目N个存储器通道,其中在除了最后回合的每一回合中:选择地址位的独特子集;基于地址位的所述所选择子集确定可能独特组合的最大数目(L);将组合以最大可能次数(F)映射到所述N个存储器通道,其中所述N个存储器通道中的每一者被映射到相等数目个组合;及当剩余无法映射到所述N个存储器通道中的每一者的数个组合(K,其小于N)时,进入下一回合。在所述最后回合中,将不用于先前回合中的所述子集中的剩余最高有效地址位映射到所述N个存储器通道中的每一者。在所述上文示范性方法中,N、L、K及F满足方程式N=(L-K)/F。
另一示范性实施例是关于一种存储器交错方法,所述方法包括:由存储器控制器在预定数目(G_total)个连续回合中将存储器的地址位反复地映射到数目N个存储器通道,其中除了最后回合的每一回合包括:选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集;确定可由如下表示的独特二进制值的最大数目(L)
(n)个地址位的所述所选择子集;将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者;及当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合。所述最后回合包括由所述存储器控制器将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道。同样,N、L、K及F满足方程式N=(L-K)/F。
另一示范性实施例是关于一种处理系统,其包括:包括数目N个存储器通道的存储器。所述处理系统包括用于在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道的装置,对于除了最后回合的每一回合其包括:用于选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集的装置;用于确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L)的装置;用于将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者的装置;及用于当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时进入下一回合的装置。所述处理系统进一步包括用于在所述最后回合中,将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道的装置。同样,N、L、K及F满足方程式N=(L-K)/F。
又一示范性实施例是关于一种处理系统,其包括:处理器及以通信方式耦合到所述处理器的存储器,所述存储器包括数目N个存储器通道。存储器控制器经配置以在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道,对于除了最后回合的每一回合其包括所述存储器控制器经配置以选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集;确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L);将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者;及当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时进入下一回合。所述存储器控制器进一步经配置以在所述最后回合中将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道。同样,N、L、K及F满足方程式N=(L-K)/F。
又一示范性实施例是关于一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时导致所述处理器执行用于交错耦合到所述处理器的存储器的操作,所述存储器包括N个存储器通道,所述非暂时性计算机可读存储媒体包括:用于在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道的代码,对于除了最后回合的每一回合其包括:用于选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集的代码;用于确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L)的代码;用于将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者的代码;及用于当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时进入下一回合的代码;及用于在所述最后回合中,将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道的代码。同样,N、L、K及F满足方程式N=(L-K)/F。
附图说明
呈现附图以辅助描述本发明的实施例,且提供所述附图仅用于实施例的说明而不加限制。
图1通过描述常规术语说明存储器交错。
图2说明利用可充分配置扩展函数的示范性交错技术。
图3说明用于3个通道的示范性扩展函数。
图4A到C说明用于N=5个通道的示范性扩展函数,其中N由(L-K)/F表示。
图5A到D说明用于N=13个通道的示范性扩展函数,其中N由(L-K)/F表示。
图6通过组合N向扩展与R向扩展说明示范性N*R向扩展。
图7A到B说明用于在示范性实施例中选择交错位数目的业务量不均衡因数。
图8为根据示范性实施例的关于存储器的存储器交错的流程图。
具体实施方式
在以下针对本发明特定实施例的描述及相关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代性实施例。另外,将不会详细描述或将省略本发明的众所周知元件以免混淆本发明的相关细节。
本文中使用词“示范性”意指“充当实例、例子或说明”。本文中描述为“示范性”的任何实施例未必应理解为比其它实施例优选或有利。同样,术语“本发明的实施例”并不要求本发明的所有实施例包含所论述特征、优势或操作模式。
本文中所使用的术语仅仅是为了描述特定实施例的目的,且并不希望限制本发明的实施例。如本文中所使用,单数形式“一”及“所述”希望还包含复数形式,除非上下文另外清楚地指示。应进一步理解,术语“包括(comprises、comprising)”及/或“包含(includes、including)”当在本文中使用时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
另外,依据待由(例如)计算装置的元件执行的动作序列来描述许多实施例。将认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由所述两者的组合来执行。另外,可认为本文中所描述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有一组对应计算机指令,所述计算机指令在被执行时将导致相关联处理器执行本文中所描述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式属于所主张的标的物的范围内。另外,对于本文中所描述的实施例中的每一者,任何此类实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述动作)的逻辑”。
所揭示解决方案解决前述缺点。更具体来说,示范性实施例包含便宜且快速的可充分配置及缩放的存储器交错技术。示范性存储器交错技术还确保横跨任何数目个两个或两个以上所要存储器通道的高度均匀分布并消除可用存储器单元的浪费/利用不足。
参看图2,提供示范性处理系统200的某些方面的示意性描述。如所展示,处理系统200可包含一或多个处理器或中央处理单元(CPU)202a到202d。共用L2高速缓冲存储器204说明为可由CPU202a到202d存取,其中L2高速缓冲存储器以通信方式耦合到系统总线214。另外,图形处理单元(GPU)206、数字信号处理器(DSP)208及视频译码器/解码器(编解码器)214也展示为耦合到系统总线214。系统总线214介接横跨可由32位地址212(A[31:0])寻址的三个存储器通道Ch0222_0、Ch1222_1及Ch2222_2交错的32位可寻址存储器。通道扩展块216可为(例如)存储器控制器(未图示)的部分且可经配置以实施示范性通道扩展函数,出于示范性交错存取这三个存储器通道的目的,所述函数可提供用于分别选择性地启用三个存储器通道Ch0222_0、Ch1222_1或Ch2222_2中的一者的选择线CS0到CS2。通道内寻址块218可经配置以提供用于存取三个存储器通道Ch0222_0、Ch1222_1及Ch2222_2中的每一者内的存储器单元或项的通道内地址。大体来说,将理解实施例不限于图2中所说明的上文所描述元件及配置,且在不脱离本发明的范围的情况下处理系统200的各种替代性配置是可能的。
根据示范性方面,处理系统200中还提供用于在由变量“G”表示的一或多个世代中实施通道扩展函数及通道内寻址的产生(G)块220。可(例如)经由寄存器(未图示)编程可实施示范性通道扩展函数的由可编程常数“G_total”表示的总世代数目。G_total可在(例如)处理系统200的系统启动期间配置或编程到寄存器。另外,可利用于通道扩展函数中的地址位数目也可(例如)经由寄存器(未图示)编程于G块220中。尽管说明为单独块,但关于G块220的逻辑/功能可注入或集成于处理系统200的其它逻辑块内,例如通道扩展块216及/或通道内寻址块218。在一些方面,G块、通道扩展块216及通道内寻址块218可为存储器控制器(未图示)的部分。
现将使用横跨图2的三个存储器通道Ch0222_0、Ch1222_1及Ch2222_2的存储器交错的基线实例在应用通道扩展函数的可选总世代数目G_total上解释横跨数目“N”个存储器通道的示范性通道扩展函数(或“N向交错”)。可用从(例如)G块220获得的值G_total在通道扩展块216中实施通道扩展函数。更具体来说,在世代/回合中的每一者中,在G在1到G_total的范围内的情况下,选择32位地址212(A[31:0])中的一或多个位以用于确定N(=3)个存储器通道中的哪一者将被映射到所选择地址位的特定组合。
举例来说,参看图3,在第一世代(即,G=1)中,可选择地址212的位A[8:7],使得关于位组合的二进制值A[8:7]=00可被映射到Ch0222_0;A[8:7]=01可被映射到Ch1222_1;且A[8:7]=10可被映射到Ch2222_2(在此状况下,地址位A[6:0]可用于(例如)借助于通道内寻址块218进行存储器通道Ch0222_0、Ch1222_1及Ch2222_2的通道内寻址)。然而,将剩余关于位组合的二进制值A[8:7]=11,其无法在不干扰均匀性的情况下被映射到三个存储器通道Ch0222_0、Ch1222_1及Ch2222_2中的一者。因此,当到达关于所选择位的未经映射位组合的此类剩余二进制值时,示范性技术涉及进入第二世代。因此,对于后续回合或世代G=2,选择邻近于且比之前回合的地址位A[8:7]更有效的高阶位A[10:9]且地址212到存储器通道Ch0222_0、Ch1222_1及Ch2222_2的交错或映射是基于关于位组合A[10:9]的二进制值。同样,将剩余关于位组合的二进制值A[10:9]=11,从而因此触发第三世代G=3(未图示)。反复地重复此过程直到到达关于G=G_total的最后世代为止。
大体来说,在最后世代(其中G=G_total)中,可通过确定表示执行交错所横跨的存储器通道数目将要求的最小地址位数目获得地址212的位数目。表示存储器通道数目N将要求的此最小地址位数目(在下文中为“min_bits”)可由数学表达式“min_bits=ceiling(log2N)”确定。“ceiling”函数为将实数映射到最大接下来整数的总所周知数学函数。举例来说,关于实数“x”,ceiling(x)为不低于“x”的最小整数。因此,对于具有N=3个存储器通道的给定实例,ceiling(log23)=2。因此,在最后世代(其中G=G_total)中,选择两个最高阶位(即,位A[31:30])以用于映射通道。将认识到,在此最后世代中,一旦A[31:30]=00被映射到通道Ch0222_0,A[31:30]=01被映射到通道Ch1222_1,且A[31:30]=10被映射到通道Ch2222_2,关于位组合的剩余二进制值A[31:30]=11将不涉及有效地址或实际上将指向未填充存储器。因此,一旦此最后世代的映射或交错完成,所有有效地址位组合将被排出,且横跨三个存储器通道Ch0222_0、Ch1222_1及Ch2222_2的均匀交错将已完成。
可通过对比示范性方面与常规技术理解上文所描述的示范性交错技术的有利方面。举例来说,在用于三向交错的常规3向散列函数中,可类似地选择两个地址位以用于将地址映射到三个存储器通道。同样,关于两个所选择地址位的四个可能位组合中的三者的二进制值可被映射到三个存储器通道。然而,相反于上文所描述的示范性技术,如果关于所选择两个地址位的位组合的剩余二进制值(例如,“11”)被重新指派到三个存储器通道中的一者(例如,第一存储器通道),则将容易地看出相比两个其它通道来说统计上较多存取将是针对第一存储器通道。除针对第一存储器通道的此不成比例数目个存储器存取之外,将也需要把较高比例的整个物理存储器空间指派给此第一存储器通道。物理存储器空间的此不均匀指派将带来如先前所描述的不合需要影响。另一方面,如果按照示范性技术反复地执行交错过程(其中关于位组合的剩余二进制值触发选择用于映射的不同地址位),则避免常规技术的不成比例存取及不均匀存储器空间指派。举例来说,示范性技术可允许使用大小相等的动态随机存取存储器结构(DRAM)而不浪费存储器空间或不均匀地填充存储器通道。具体来说,所有三个通道Ch0222_0、Ch1222_1及Ch2222_2可填充有恰好相同数目个DRAM单元。换句话说,实施例克服与统计存取不均衡以及地址空间不均衡相关联的问题(尤其对于例如主存储器而非高速缓冲存储器的真实物理存储器,这是由于高速缓冲存储器的填充可遵循可不对应于物理存储器地址空间的组织的特定应用存取模式)。
现将上文所描述的用于N=3个存储器通道的示范性扩展函数延伸到任意数目个存储器通道。为验证示范性技术的功能正确性,可使用归纳推理过程。大体来说,归纳推理或数学归纳涉及验证函数或数学方程式的方法,其中通过以下步骤验证给定表述或命题对于所有自然数为真:在第一步骤中验证给定表述对于第一自然数为真;基于表述对于第一自然数为真的验证,在第二步骤中验证给定表述对于下一或第二自然数为真;及借此由数学归纳的理论从第一及第二步骤推断给定表述对于所有自然数必须为真。
关于示范性实施例更具体来说,第一步骤可涉及根据示范性实施例横跨第一数目个存储器通道建立均匀存储器交错。对于此第一步骤,第一数目可为2的幂(例如,N=2^M,其中M为整数)。在此状况下,存储器交错是简单明了的(例如,N=2或4,其中容易横跨两个或四个存储器通道(例如)分别使用n=1或2所选择地址位均匀地分布地址)。
在下一或第二步骤中,考虑横跨N=2^M-1个存储器通道的存储器交错状况。此第二步骤可对应于横跨三个存储器通道(例如,在M=2情况下,N=2^2-1=3)的上文所描述存储器交错。前述章节中已详细论述此第二步骤的功能正确性。
因此,看出示范性技术已针对两个自然数(即,N=2^M及N=2^M-1)获确认,此情况满足由数学归纳所要求的第一及第二验证步骤。因此,基于数学归纳的理论,现在可验证示范性技术已获确认且有效于横跨所有自然数的存储器通道的存储器交错。
现将论述上文所描述技术的数学公式以将示范性实施例延伸到任何一般数目N个存储器通道。为了实现此情况,由数学公式N=(L-K)/F表示执行存储器交错所横跨的存储器通道的数目N。如本文中所使用,L、K及F为自然数,其中在第一世代或G=1中,使用一或多个地址位的所选择集合F次应用L向扩展(即,横跨L个存储器通道)。在应用示范性扩展函数的此第一世代之后,可剩余对应于K个通路的关于位组合的二进制值。在G=2的第二世代中,重复上文扩展过程(即,执行L向扩展)。类似地,反复地重复涉及L向扩展的世代数目,直到仅剩余对应于最后世代G=G_total的地址的数个最高有效位(MSB)为止。
现参看图4(包括图4A到C),说明N=5个存储器通道(即,Ch0到Ch4)的数值实例。详细来说,N由数学公式N=(L-K)/F表示,其中L=16,K=1且F=3,使得N=(16-1)/3=5。理论上,可使用四个所选择地址位A[10:7]获得L个通路或16个通路。在第一世代G=1中,位A[10:7]的关于地址的二进制值到五个存储器通道的映射涵盖F=3次。换句话说,地址位A[10:7]产生由值0到15的十进制范围表示的关于二进制位组合的16个可能二进制值。参看图4A,对应于十进制值0、5、10的位组合可被映射到五个存储器通道中的第一者Ch0;十进制值1、6、11被映射到第二存储器通道Ch1;十进制值2、7、12被映射到第三存储器通道Ch2;十进制值3、8、13被映射到第四存储器通道Ch3;且十进制值4、9、14被映射到第五存储器通道Ch4。
一旦到达对应于十进制值15的二进制位组合(即,二进制位组合“1111”),在下一世代G=2中以下一高阶地址位A[14:11]重复上文映射过程,如图4B中所说明。在连续世代中反复地重复上文过程,直到G=G_total的最后世代为止。对于N=5,由ceiling(log25)=3给出最后世代中所使用的最高阶位数目(min_bits)。
如图4C中所说明,3个地址位A[31:29]用于最后世代G=G_total中以用于横跨5个存储器通道进行交错。这些3个地址位可产生8个可能二进制位组合。然而,仅5个这些可能8个二进制位组合被映射到对应5个存储器通道;剩余3个二进制位组合并不对应于有效映射,且因此,并不执行地址位A[31:29]的这些最后残余组合的映射。32位地址空间到五个存储器通道的映射现在完成。因此,基于N的上文数学公式及所选择地址位在连续世代中的对应反复映射,示范性实施例可延伸到横跨任何任意数目N个存储器通道的存储器交错。
关于在具有(L-K)/F个通路的上文状况中进行通道内寻址,在每一回合或世代中,较低阶地址位用于通道内寻址。更具体来说,如果F>=1,则除了最后世代,将用于横跨通道交错的所选择地址位替换为所选择地址位+顶部MSB位(log2(L)的上部回合)以用于通道内寻址位。在最后世代中,使用与最后世代之前的一者相同的通道内寻址函数。如果F=1,则使用简化算法,其中除了最后世代,将用于横跨存储器通道进行交错的地址位替换为顶部MSB位以用于通道内寻址。在最后世代中,除了顶部MSB地址位的地址位用于通道内寻址。
参看图5(包括图5A到D),说明N=13个存储器通道的示范性交错的又一实例,其中N以具有值L=16,K=3且F=1的(L-K)/F表达。在此状况下,在第一世代中,如图5A中所说明,在第一世代G=1中选择地址位A[10:7],其具有关于二进制位组合的16个可能二进制值。在这些二进制值中,关于位组合的13个二进制值被映射到13个存储器通道Ch0到Ch12。数目min_bits=ceiling(log213)=3个最高阶地址位(即,地址位A[31:29])用于最后世代G=G_total中,如图5B到D中所展示。
在又其它实施例中,可组合通道扩展函数。举例来说,如果扩展函数经计算或预定用于N向存储器交错(即,横跨N个存储器通道)且类似地用于R个通路,则可通过组合N向与R向扩展函数获得用于N*R向存储器交错的组合扩展函数。
参看图6,说明关于组合通道扩展函数的实施例。如所说明,在世代G=1中,可如先前描述使用地址位A[7:8]到A[31:30]执行用于N=3的示范性存储器交错或横跨三个存储器通道的交错。另外,可使用地址位A[9]执行双向交错或横跨数目R(=2)个存储器通道的交错。可组合横跨N及R个通路的上文交错技术以使用地址位A[9:7]执行横跨6个存储器通道Ch0到Ch5的N*R=3*2=6向交错。
另外,一些示范性实施例也可是关于控制“扩展程度”。如本文中所使用,术语“扩展程度”是指横跨存储器通道的存储器业务量分布均匀性。举例来说,较高程度的扩展对应于横跨存储器通道的较大业务量分布均匀性。在一些方面,看出扩展程度与用于将所选择位的位组合映射到希望横跨其进行交错的存储器通道的横跨除了最后一者(即,对于G=G_total)的所有世代G所选择的地址位数目相关。大体来说,使用大量所选择地址位可减小横跨存储器通道的扩展不均匀性。所选择地址位的数目可基于存储器空间中的地址位的整体数目(例如,上文所描述实施例中,为32位)及希望横跨其进行扩展的存储器通道数目。
参看图7(包括图7A到B),说明关于示范性通道扩展函数中的扩展程度的示范性方面。在此上下文中,“业务量不均衡因数”是关于将并不在给定数目个存储器通道当中均匀分布的存储器存取事务的百分比。更具体来说,可通过增加被选择用于交错的所选择地址位数目或交错程度来减少业务量不均衡因数。举例来说,如果每一回合或世代中用于交错的地址位子集中的位数目(或交错程度)加倍,则业务量不均衡因数减少一半。对于横跨N个存储器通道的N向交错(其中N表达为(L-K)/F),交错程度为“n”(即,在每一世代中选择“n”个地址位以用于横跨N个存储器通道进行交错)。如图7A中所说明,在参看图3的用于三向存储器交错的上文所描述实例中n=2的情况下(其中在世代G=1中选择地址位A[8:7]),由表达式K/2^n=1/2^2=1/4提供用于线性存取模式的业务量不均衡因数。如图7B中所说明,如果交错程度加倍到(比如)2n(即,在世代G=1中选择四个位A[10:7]),则用于线性存取模式的业务量不均衡因数急剧地减少到K/2^(2n)=1/2^4=1/16。因此,在相关实施例中,可通过考虑所要业务量不均衡因数来确定交错程度或每一世代中待选择用于交错的地址位数目及世代的总数目G_total。进一步详细来说,出于确定业务量不均衡因数的目的,在(例如)图7中,地址位数目为除了关于G=G_total的最后世代的每一世代G中所选择的地址位数目。
将了解,实施例包含用于执行本文中所揭示的过程、函数及/或算法的各种方法。举例来说,如图8中所说明,实施例可包含存储器交错方法。为方便说明起见,动作中的一些将相关于图2到5的元件。然而,实施例不限于图2到5的元件。方法在框802处开始以用于在预定数目(G_total)个连续回合中将存储器的地址位反复地映射到数目N个存储器通道。在除了最后回合(即,G=G_total,如框804处所确定)的每一回合中:选择包括尚未用于横跨N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集-框806;确定可由(n)个地址位的所选择子集表示的独特二进制值的最大数目(L)-框808;将最大数目内的相等数目个二进制值映射到N个存储器通道中的每一者-框810;及当剩余无法相等次数(F)映射到N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合-框812。最后回合包括将最后数目个最高有效地址位的子集映射到N个存储器通道中的每一者(其中最后数目由方程式或数学表达式ceiling(log2N)获得)-框814。将了解,所说明流程图仅是为了促进论述各种实施例。然而,本文中所揭示的额外标的物/功能可减少为涵盖于本文中所揭示的各种实施例内的未明确说明的各种方法。
所属领域的技术人员应了解,可使用多种不同技术中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示贯穿上文描述可参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于具体应用及施加于整个系统上的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为导致脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。
因此,本发明的实施例可包含计算机可读媒体,其体现用于在两个或两个以上存储器通道上交错存储器地址的方法。因此,本发明不限于所说明实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的实施例中。
虽然前述揭示内容展示本发明的说明性实施例,但应注意,在不脱离如由所附权利要求书界定的本发明的范围的情况下,可在其中做出各种改变及修改。无需按任何特定次序来执行根据本文中所描述的本发明实施例的方法权利要求项的功能、步骤及/或动作。此外,尽管可以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

Claims (23)

1.一种存储器交错方法,所述方法包括:
由存储器控制器在预定数目(G_total)个连续回合中将存储器的地址位反复地映射到数目N个存储器通道,其中除了最后回合的每一回合包括:
选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集;
确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L);
将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者;及
当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合;及
在所述最后回合中,由所述存储器控制器将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道。
2.根据权利要求1所述的方法,其中N、L、K及F满足方程式N=(L-K)/F。
3.根据权利要求1所述的方法,其进一步包括在连续回合中将所述存储器反复地映射到数个数目N*R存储器通道,其中在每一回合中,将地址位的不同子集映射到所述R个存储器通道。
4.根据权利要求1所述的方法,其中在后续回合中的地址位的所述子集邻近于所述之前回合的地址位且比所述地址位更有效。
5.根据权利要求1所述的方法,其中如果增加地址位的所述子集中的位数目,则业务量不均衡因数减少。
6.根据权利要求5所述的方法,其中如果地址位的所述子集中的所述位数目加倍,则所述业务量不均衡因数减少一半。
7.根据权利要求1所述的方法,其中所述预定数目(G_total)为可编程常数。
8.根据权利要求1所述的方法,其中所述最后数目由数学表达式ceiling(log2N)确定。
9.一种处理系统,其包括:
存储器,其包括数目N个存储器通道;
用于在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道的装置,对于除了最后回合的每一回合其包括:
用于选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集的装置;
用于确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L)的装置;
用于将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者的装置;及
用于当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合的装置;及
用于在所述最后回合中将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道的装置。
10.根据权利要求1所述的处理系统,其中N、L、K及F满足方程式N=(L-K)/F。
11.根据权利要求9所述的处理系统,其进一步包括用于在连续回合中将所述存储器反复地映射到数个数目N*R存储器通道的装置,其包括在每一回合中,用于将地址位的不同子集映射到所述R个存储器通道的装置。
12.一种处理系统,其包括:
处理器;
存储器,其以通信方式耦合到所述处理器,所述存储器包括数目N个存储器通道;
存储器控制器,其经配置以在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道,对于除了最后回合的每一回合其包括所述存储器控制器经配置以:
选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集;
确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L);
将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者;及
当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合;及
在所述最后回合中,将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道。
13.根据权利要求12所述的处理系统,其中N、L、K及F满足方程式N=(L-K)/F。
14.根据权利要求12所述的处理系统,其中所述存储器控制器进一步经配置以在连续回合中将所述存储器反复地映射到数个数目N*R存储器通道,其中在每一回合中,所述存储器控制器经配置以将地址位的不同子集映射到所述R个存储器通道。
15.根据权利要求12所述的处理系统,其中在后续回合中的地址位的所述子集邻近于所述之前回合的地址位且比所述地址位更有效。
16.根据权利要求12所述的处理系统,其中如果增加地址位的所述子集中的位数目,则业务量不均衡因数减少。
17.根据权利要求16所述的处理系统,其中如果地址位的所述子集中的所述位数目加倍,则所述业务量不均衡因数减少一半。
18.根据权利要求12所述的处理系统,其中所述预定数目(G_total)为可编程常数。
19.根据权利要求18所述的处理系统,其中所述预定数目(G_total)可经由耦合到所述处理器的寄存器编程。
20.根据权利要求12所述的处理系统,其中所述存储器控制器进一步经配置以基于数学表达式ceiling(log2N)确定所述最后数目。
21.一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时导致所述处理器执行用于交错耦合到所述处理器的存储器的操作,所述存储器包括N个存储器通道,所述非暂时性计算机可读存储媒体包括:
用于在预定数目(G_total)个连续回合中将所述存储器的地址位反复地映射到所述N个存储器通道的代码,对于除了最后回合的每一回合其包括:
用于选择包括尚未用于横跨所述N个存储器通道交错的预定义数目(n)个最低阶地址位的地址位的子集的代码;
用于确定可由(n)个地址位的所述所选择子集表示的独特二进制值的最大数目(L)的代码;
用于将所述最大数目内的相等数目个二进制值映射到所述N个存储器通道中的每一者的代码;及
用于当剩余无法相等次数映射到所述N个存储器通道中的每一者的数个二进制值(K<N)时,进入下一回合的代码;及
用于在所述最后回合中将由最后数目(min_bits)个最高有效地址位表示的二进制值映射到所述N个存储器通道的代码。
22.根据权利要求21所述的非暂时性计算机可读存储媒体,其中N、L、K及F满足方程式N=(L-K)/F。
23.根据权利要求21所述的非暂时性计算机可读存储媒体,其进一步包括用于在连续回合中将所述存储器反复地映射到数个数目N*R存储器通道的代码,其包括在每一回合中用于将地址位的不同子集映射到所述R个存储器通道的代码。
CN201480049360.9A 2013-09-27 2014-09-12 用于存储器交错的可配置扩展函数 Expired - Fee Related CN105518632B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361883833P 2013-09-27 2013-09-27
US61/883,833 2013-09-27
US14/251,626 2014-04-13
US14/251,626 US9495291B2 (en) 2013-09-27 2014-04-13 Configurable spreading function for memory interleaving
PCT/US2014/055449 WO2015047753A1 (en) 2013-09-27 2014-09-12 Configurable spreading function for memory interleaving

Publications (2)

Publication Number Publication Date
CN105518632A true CN105518632A (zh) 2016-04-20
CN105518632B CN105518632B (zh) 2019-07-09

Family

ID=52741322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480049360.9A Expired - Fee Related CN105518632B (zh) 2013-09-27 2014-09-12 用于存储器交错的可配置扩展函数

Country Status (6)

Country Link
US (1) US9495291B2 (zh)
EP (1) EP3049935B1 (zh)
JP (1) JP6105814B2 (zh)
KR (1) KR101779545B1 (zh)
CN (1) CN105518632B (zh)
WO (1) WO2015047753A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643327A (zh) * 2016-09-01 2019-04-16 高通股份有限公司 使用查找表以固定点来近似非线性函数
WO2020024113A1 (zh) * 2018-07-31 2020-02-06 华为技术有限公司 一种内存交织方法及装置
CN113010445A (zh) * 2019-12-20 2021-06-22 爱思开海力士有限公司 数据存储装置、其操作方法及使用其的存储系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102464801B1 (ko) * 2015-04-14 2022-11-07 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
CN107180001B (zh) * 2016-03-10 2020-02-21 华为技术有限公司 访问动态随机存储器dram的方法和总线
US10140223B2 (en) 2016-06-27 2018-11-27 Qualcomm Incorporated System and method for odd modulus memory channel interleaving
US10642733B1 (en) * 2018-07-12 2020-05-05 Lightbits Labs Ltd. System and method for memory interface load balancing
US10990517B1 (en) * 2019-01-28 2021-04-27 Xilinx, Inc. Configurable overlay on wide memory channels for efficient memory access
CN112395216A (zh) 2019-07-31 2021-02-23 北京百度网讯科技有限公司 用于存储管理的方法、装置、设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479624A (en) * 1992-10-14 1995-12-26 Lee Research, Inc. High-performance interleaved memory system comprising a prime number of memory modules
CN1437728A (zh) * 1999-12-27 2003-08-20 格里高里·V·朱德诺夫斯基 多组、容错、高性能存储器寻址系统及其方法
CN101682338A (zh) * 2007-06-04 2010-03-24 诺基亚公司 用于并行涡轮解码器的多址访问
US20110047346A1 (en) * 2009-08-19 2011-02-24 Sun Microsystems, Inc. Efficient interleaving between a non-power-of-two number of entities

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6097446A (ja) * 1983-10-31 1985-05-31 Mitsubishi Electric Corp 記憶装置
US5341486A (en) * 1988-10-27 1994-08-23 Unisys Corporation Automatically variable memory interleaving system
US5924111A (en) * 1995-10-17 1999-07-13 Huang; Chu-Kai Method and system for interleaving data in multiple memory bank partitions
JP2003228517A (ja) * 2002-02-01 2003-08-15 Matsushita Electric Ind Co Ltd メモリ装置
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US20050172091A1 (en) 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US8190809B2 (en) * 2004-11-23 2012-05-29 Efficient Memory Technology Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines
KR100699491B1 (ko) * 2005-07-19 2007-03-26 삼성전자주식회사 인터리빙 방법 및 그 장치
JP4810542B2 (ja) * 2005-12-28 2011-11-09 富士通株式会社 メモリ制御方法、プログラム及び装置
US20080250212A1 (en) 2007-04-09 2008-10-09 Ati Technologies Ulc Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information
US8397010B1 (en) * 2007-04-16 2013-03-12 Juniper Networks, Inc. Convenient, flexible, and efficient management of memory space and bandwidth
US8438320B2 (en) 2007-06-25 2013-05-07 Sonics, Inc. Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US8751769B2 (en) * 2007-12-21 2014-06-10 Qualcomm Incorporated Efficient address generation for pruned interleavers and de-interleavers
US8438434B2 (en) * 2009-12-30 2013-05-07 Nxp B.V. N-way parallel turbo decoder architecture
US20120054455A1 (en) 2010-08-31 2012-03-01 Qualcomm Incorporated Non-Uniform Interleaving Scheme In Multiple Channel DRAM System
US20120137090A1 (en) * 2010-11-29 2012-05-31 Sukalpa Biswas Programmable Interleave Select in Memory Controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479624A (en) * 1992-10-14 1995-12-26 Lee Research, Inc. High-performance interleaved memory system comprising a prime number of memory modules
CN1437728A (zh) * 1999-12-27 2003-08-20 格里高里·V·朱德诺夫斯基 多组、容错、高性能存储器寻址系统及其方法
CN101682338A (zh) * 2007-06-04 2010-03-24 诺基亚公司 用于并行涡轮解码器的多址访问
US20110047346A1 (en) * 2009-08-19 2011-02-24 Sun Microsystems, Inc. Efficient interleaving between a non-power-of-two number of entities

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643327A (zh) * 2016-09-01 2019-04-16 高通股份有限公司 使用查找表以固定点来近似非线性函数
WO2020024113A1 (zh) * 2018-07-31 2020-02-06 华为技术有限公司 一种内存交织方法及装置
CN112513824A (zh) * 2018-07-31 2021-03-16 华为技术有限公司 一种内存交织方法及装置
CN112513824B (zh) * 2018-07-31 2024-04-09 华为技术有限公司 一种内存交织方法及装置
CN113010445A (zh) * 2019-12-20 2021-06-22 爱思开海力士有限公司 数据存储装置、其操作方法及使用其的存储系统

Also Published As

Publication number Publication date
EP3049935A1 (en) 2016-08-03
US20150095595A1 (en) 2015-04-02
JP2016536658A (ja) 2016-11-24
US9495291B2 (en) 2016-11-15
WO2015047753A1 (en) 2015-04-02
KR101779545B1 (ko) 2017-09-18
JP6105814B2 (ja) 2017-03-29
KR20160061387A (ko) 2016-05-31
CN105518632B (zh) 2019-07-09
EP3049935B1 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
CN105518632A (zh) 用于存储器交错的可配置扩展函数
US11487676B2 (en) Address mapping in memory systems
CN102483717B (zh) 用于存储器磨损平衡的重映射方法及设备
US9465731B2 (en) Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) Memory system having an unequal number of memory die on different control channels
US9734911B2 (en) Method and system for asynchronous die operations in a non-volatile memory
CN103782266B (zh) 针对存储器持久性操作的设备及方法
US20140189207A1 (en) Method and system for managing background operations in a multi-layer memory
WO2014105829A2 (en) Method and system for asynchronous die operations in a non-volatile memory
US10430101B2 (en) Semiconductor memory device that randomizes data and randomizer thereof
CN102043721A (zh) 闪存存储管理方法
CN101727983A (zh) 存储设备及其编程方法
US7318114B1 (en) System and method for dynamic memory interleaving and de-interleaving
TW201445567A (zh) 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法
US20170017578A1 (en) Generation of random address mapping in non-volatile memories using local and global interleaving
KR20210063432A (ko) 메모리에서의 데이터 재배치
US20170199786A1 (en) Assigning redundancy in encoding data onto crossbar memory arrays
TWI473014B (zh) 增強型微處理器或微控制器
Lastras-Montaño et al. A low-power hybrid reconfigurable architecture for resistive random-access memories
CN103377135A (zh) 寻址方法、装置及系统
US20080301400A1 (en) Method and Arrangement for Efficiently Accessing Matrix Elements in a Memory
US8773193B2 (en) Methods, devices, and systems for switched capacitor array control
CN108053852A (zh) 一种基于交叉点阵列的阻变存储器的写入方法
CN108231119A (zh) 用每单元分数比特低延迟读取快闪存储设备的方法和装置
US20200194080A1 (en) Consolidation of copy-back and write in pram blocks

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190709

Termination date: 20210912

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