CN102436429A - Dram存储器及提升dram数据访问带宽的方法 - Google Patents
Dram存储器及提升dram数据访问带宽的方法 Download PDFInfo
- Publication number
- CN102436429A CN102436429A CN2011103589118A CN201110358911A CN102436429A CN 102436429 A CN102436429 A CN 102436429A CN 2011103589118 A CN2011103589118 A CN 2011103589118A CN 201110358911 A CN201110358911 A CN 201110358911A CN 102436429 A CN102436429 A CN 102436429A
- Authority
- CN
- China
- Prior art keywords
- logic
- write
- read
- data
- dram
- 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
Landscapes
- Dram (AREA)
Abstract
本发明揭示了一种DRAM存储器及提升DRAM数据访问带宽的方法,其中,方法包括一种刷新逻辑的优化,具体包括以下步骤:S11、获得完成四个WRAP的刷新所需的最长时间间隔,并将所述最长时间间隔划分为第一阶段和第二阶段,S12、在所述第一阶段,设置读/写逻辑的优先级高于刷新逻辑,所述刷新逻辑自动选择不被读/写逻辑使用的Bank进行刷新;S13、在所述第二阶段,设置读/写逻辑的优先级低于刷新逻辑,所述刷新逻辑刷新未被刷新的Bank。本发明在不提高存储器访问时钟频率、不增加接口数据位宽和尽量不增加逻辑设计复杂度的条件下,最大程度地提高接口数据访问带宽,满足了IC设计中对数据存储的需求。
Description
技术领域
本发明涉及集成电路设计领域,尤其涉及一种DRAM存储器,以及实现最大程度地提升DRAM接口的数据访问带宽的方法。
背景技术
当前在IC(集成电路)设计中大数据量的存储主要有两种形式:外挂存储器和内嵌存储器。其中,外挂存储器需要设计较复杂的接口逻辑,且增加了较多的IC外接口管脚信号,这便导致IC本身和系统成本上升,此外,外挂存储器很难达到较高的访问速度。所以现在的IC设计中尽量都把数据存储器内嵌到IC内部。内嵌存储器也有两种可以选择:SRAM(静态随机存储器)和DRAM(动态随机存储器)。相比于SRAM,由于工艺的不同,DRAM在内嵌设计中有着非常大的优势,它本身结构简单、集成度高、生产成本低,不仅可以集成比SRAM大的多的容量到IC内部,而且在功耗等特性上也明显优于SRAM。但DRAM的缺点也非常明显:一是需要不断刷新以保持存储在其内部的数据,二是随机访问的DRAM比SRAM的访问速度有较大的差距。以IBM的内嵌DRAMT为例,它可以在不增加面积的情况下做成一个假双口的存储器(没有读写冲突情况下可以实现读写双口同时访问),但在访问速度上却和SRAM有着较大差距。在45纳米工艺下,IBM的SRAM的访问时钟周期可以在1.0纳秒以下,而随机访问(Pipeline级数为1)的DRAMT的时钟周期却只能在3.2纳秒以上。现在DRAM工艺可以在增加Pipeline(流水线)级数的条件下提高DRAM的访问时钟频率。如Pipeline级数在2级时,IBM相同工艺的DRAMT可以降低时钟周期到1.6纳秒,而Pipeline级数为4时,这个值甚至可以降低到1.0纳秒。但是同样因为Pipeline级数的增加,连续的几个时钟周期内存储器相同Bank(存储体)内数据是不可以访问的。实际上这就限制了DRAM的随机访问特性,而不像SRAM和只有一级Pipeline的DRAM那样实现真正的随机访问。所以当前内嵌存储器的设计要么是选择面积和功耗都很大的SRAM来实现,要么是限制访问接口带宽用DRAM来实现。
在采用DRAM作为内嵌存储的设计中,因为要对DRAM不断地进行刷新,而且刷新的同时为了防止与读写操作的冲突一般要限制在刷新时不能进行正常的数据读写,所以刷新过程实际上也占用了存储器接口的访问带宽。为了可以在IC中内嵌大容量的存储器,只能选用DRAM作为存储器。而为了提高接口数据的访问带宽,满足设计中对数据访问的需求,一般有两种设计方案:一是增大存储器的数据接口宽度,二是提高存储器的访问时钟频率。
然而,上述现有技术的也有不足之处,增加数据接口宽度会同样增加接口其他辅助逻辑里的数据宽度,这就会导致整个逻辑设计中所用的资源变多,IC面积增大,最终也就导致了IC成本的增加;单独提高接口时钟频率会导致整个IC中主时钟频率有可能是低于DRAM的时钟频率,这样就需要进行数据接口在这两个时钟域间的切换,从而增加了接口设计难度、逻辑资源使用量和IC的面积。
发明内容
本发明的目的在于提供一种可用来提升数据访问带宽的DRAM存储器。
本发明的目的还在于提供一种应用上述的DRAM存储器实现DRAM数据访问带宽提升的方法,该方法在不提高存储器访问时钟频率、不增加接口数据位宽和尽量不增加逻辑设计复杂度(资源使用量)的条件下,实现最大程度地提高存储器的接口数据访问带宽,以满足IC设计中对数据存储的需求。
为实现上述发明目的之一,本发明的提供了一种DRAM存储器,所述DRAM存储器具有一额定存储空间,所述额定存储空间被均分为四个独立的WRAP,每个WRAP包含16个Bank,其中,所述额定存储空间由若干个具有256B存储空间的最小单元BufUnit组成,所述最小单元BufUnit包括四个分别存储于不同WRAP内的64B存储空间。
作为本发明的进一步改进,所述额定存储空间为被划为32768个最小单元BufUnit的8MB空间,其中,所述最小单元BufUnit中四个64B存储空间的存放原则为:
第0个至第15个的最小单元BufUnit对应存放于四个WRAP的第0个至第15个的Bank的0地址上,然后,再从每个WRAP的第0个Bank的1地址开始重新分配,直到所有32768个最小单元BufUnit分配完毕。
为实现上述发明目的之一,本发明的一种应用所述的DRAM存储器提升DRAM带宽的方法,该方法包括如下步骤:
S11、获得完成四个WRAP的刷新所需的最长时间间隔,并将所述最长时间间隔划分为第一阶段和第二阶段,其中,在第一阶段和第二阶段中,读/写逻辑和刷新逻辑的优先级不同;
S12、在所述第一阶段,设置读/写逻辑的优先级高于刷新逻辑,所述刷新逻辑自动选择不被读/写逻辑使用的Bank进行刷新;
S13、在所述第二阶段,设置读/写逻辑的优先级低于刷新逻辑,所述刷新逻辑刷新未被刷新的Bank。
作为本发明的进一步改进,所述最长时间间隔为80个时钟周期,所述第一阶段的长度为72个时钟周期,所述第二阶段的长度为8个时钟周期。
作为本发明的进一步改进,DRAM流水线长度为2,所述步骤S12还包括:
获取读写请求列表的当前读写请求和下一个读写请求分别所需使用的Bank;
选择未被所述当前读写请求和下一个读写请求使用的Bank进行刷新。
作为本发明的进一步改进,所述步骤S13具体为:
S131、判断是否有Bank未刷新,若是,执行步骤S132;若否,结束此次刷新;
S132、对未被刷新的Bank进行刷新,其中,若读/写逻辑仍需使用所述未被刷新的Bank,则设置读/写逻辑进入等待状态。
为实现上述发明目的之一,本发明的一种应用所述的DRAM存储器提升DRAM带宽的方法,该方法包括如下步骤:
S21、任意选择所述最小单元BufUnit中一未被读逻辑使用的64B存储空间作为起始地址,写逻辑从所述起始地址按顺序写入数据;
S22、将所述起始地址送给读逻辑;
S23、从所述起始地址按顺序开始,选择未被写逻辑使用的存储有有效数据的64B存储单元进行读出数据;
S24、按照数据写入顺序将读出的数据进行组合。
作为本发明的进一步改进,所述步骤S23具体为:
S231、判断所述起始地址是否被写逻辑使用,若是,选任意不发生冲突的地址来写数据;若否,从所述起始地址开始按顺序读出数据;
S232、判断欲读取64B存储空间是否被写逻辑使用,若是,执行S233;若否,执行S234;
S233、选择其它未被写逻辑使用的存储有有效数据的64B存储空间进行读数据,读完后跳转到S232;
S234、按照顺序读取数据,直至读出所有数据。
作为本发明的进一步改进,该方法还包括:
若读逻辑读取到最后一个数据所在的64B存储空间时,写逻辑也在使用该64B存储空间且不能选择其它存储空间进行写数据,便选择读/写逻辑中的任意一个进入等待状态。
为实现上述发明目的之一,本发明的一种应用所述的DRAM存储器提升DRAM带宽的方法,该方法包括如下步骤:
S31、写逻辑选择未被读逻辑使用的64B存储空间按照特定顺序写入数据;
S32、将所述特定顺序送给读逻辑;
S33、读逻辑选择未被写逻辑使用的64B存储空间进行读数据,直至读出所有被写入数据;
S34、按照特定顺序组合所有被读出数据。
与现有技术相比,本发明可以最大程度的避免DRAM存储器刷新的带宽占用、读写冲突对带宽的损耗,并可以实现采用多级流水线的DRAM情况下对数据存储器的随机访问。在不提高存储器访问时钟频率、不增加接口数据位宽和尽量不增加逻辑设计复杂度(资源使用量)的条件下,最大程度地使得存储器的接口数据访问带宽大大提高,从而满足了IC设计中对数据存储的需求。
附图说明
图1是本发明一实施方式中的DRAM存储器的架构图;
图2是本发明一实施方式中DRAM刷新逻辑操作的流程图;
图3是本发明一实施方式中DRAM刷新逻辑的时间分配图;
图4是本发明一实施方式中DRAM刷新操作过程中读写逻辑与刷新逻辑状态示意图,其中,第二阶段内不作刷新;
图5是图4的另一种状态示意图,其中,第二阶段内作刷新操作;
图6是本发明一实施方式中优化读/写逻辑的方法流程图;
图7是图6中优化读/写逻辑的方法中步骤S13的具体步骤流程图;
图8是本发明另一实施方式中优化读/写逻辑的方法流程图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
本发明采用了两个方面的创新设计来达到提高接口访问带宽的要求:一是优化DRAM刷新逻辑,尽量减少刷新操作所占用的访问带宽;二是利用多级流水线处理DRAM的高速特性以及大容量DRAM物理上分为多个Bank(存储块)的特性来实现可以随机访问的高速存储器。以下将以一个在以太网交换芯片设计中的数据报文的存储器设计实例来解释本发明的设计方案,但是,需要说明的是,本发明的应用不仅局限在交换芯片。以太网交换芯片中数据报文会同时来自于不同的输入端口,也会同时输出到不同的输出端口。因为数据报文存储器一般只有一个,所以这些数据在读写时要分时复用,如在写数据时,把从一个端口接收到的数据组成宽度较大的一条数据总线后一次性写进存储器内,在一个端口的数据正在组成这样的一个数据总线的过程中可以分时处理其他端口的数据总线的写操作。这个数据总线的宽度要求可以满足系统中总端口个数和总带宽的需求。另外,来自同一个端口的数据报文并不一定会被发送到同一个输出端口,所以一个接收报文的结束部分是不能和该端口的下一个报文组成一条总线写进存储器的,也就是说可能会存在写存储器的数据总线上的数据并不是所有字节都有效的情况,例如一个65B的报文在写数据总线宽度为64B的情况下,最后的一个字节是要单独写进存储器的,这时相当于浪费了64B的宽度。
首先请参图1,其为本发明提供了一种DRAM存储器的物理架构图。
在本实施方式中,内嵌存储器选用IBM的DRAMT。时钟频率定为400MHz,DRAM的Pipeline级数为2。存储器接口总线宽度为64B,存储器具有一额定存储空间,其总容量为8MB(在其他实施方式中,可根据需要选取一定的总容量)。DRA存储器内每个Bank的宽度为64B,深度为2048,包含256条行地址,在0-105℃条件下的刷新间隔为41.0微秒,也就是说要求在41.0微秒内对一个Bank刷新256次才可以完成整个刷新的过程。
首先,定义数据存储单元的最小单位是256B,并称其为一个BufUnit。将8MB的额定存储空间分成了32768个BufUnit。一个数据报文最少也要占用一个BufUnit。如果这个报文大于256B,则它要被分配到多个BufUnit内存储。因为一个BufUnit包含了4个64B,所以可以把整个存储空间分拆成4个独立的存储空间,称为4个WRAP。最小单元BufUnit包括四个分别存储于不同WRAP内的64B存储空间。这样一个WRAP内实际上包含(8MB÷64B÷2048÷4=)16个Bank。整个存储空间被分成64个Bank。
继续参图1所示,在本实施方式中,其中,所述最小单元BufUnit中四个64B存储空间的存放原则为:第0个BufUnit位于四个WRAP的第0个Bank的0地址上,第1个BufUnit位于四个WRAP的第1个Bank第0地址上,依次类推,第15个BufUnit位于四个WRAP的第15个Bank第0地址上;然后,再从每个WRAP的第0个Bank和1地址开始重新分配,直到所有32768个BufUnit都分配完毕。
如图2所示,一种应用权利上述的DRAM存储器提升DRAM带宽的方法,包括一种刷新逻辑的优化,其具体包括如下步骤来实现:
S11、获得完成四个WRAP的刷新所需的最长时间间隔,并将所述最长时间间隔划分为第一阶段和第二阶段,其中,在第一阶段和第二阶段中,读/写逻辑和刷新逻辑的优先级不同;
在以上描述的DRAM存储器架构基础上优化DRAM的刷新操作过程。为了简化刷新控制逻辑,四个WRAP的刷新同时进行。把刷新间隔换算为时钟周期,再平均分256份,可以得到四个WRAP要求刷新一次的最长时间间隔为(41微秒÷2.0纳秒÷256)80个时钟周期。在这段时间内必须对每个WRAP内的16个Bank各刷新一次。参见图3所示,在本发明一优选的实施方式中,把这80个时钟周期的时间分为两个阶段,第一阶段定义为X1,长度为72个时钟周期,第二阶段定义为X2,长度为剩余的8个时钟周期。把总的刷新间隔时钟周期数定义为M,切成256份后的间隔时钟周期数为N,第一阶段所对应的时钟周期个数为N1,第二阶段时钟周期个数为N2,则这几个参数的值分别是:M=20500;N=80;N1=72;N2=8。
S12、在所述第一阶段,设置读/写逻辑的优先级高于刷新逻辑,所述刷新逻辑自动选择不被读/写逻辑使用的Bank进行刷新;所述步骤S12还包括:
获取读写请求列表的当前读写请求和下一个读写请求分别所需使用的Bank;选择未被所述当前读写请求和下一个读写请求使用的Bank进行刷新。
本发明中,为实现发明目的,首先在DRAM刷新控制逻辑增加冲突检测逻辑,在普通读写控制逻辑中增加冲突避免逻辑,在X1内正常读写请求的处理优先级设为高,刷新的优先级设为低。也就是说在X1阶段内如果读写操作了某些Bank,那么刷新操作就只能操作其他的那些Bank。并且因为该DRAM流水线长度为2,所以控制逻辑要判断的不仅是当前读写请求列表最上面的请求(当前读写请求),而且紧接着的第二个请求(下一个读写请求)里需要读写的Bank也是禁止做刷新的。基于这样的限制条件,刷新逻辑会根据读写的请求自动选择不会发生冲突的Bank来做刷新。如果所有的操作可以把Bank相互错开,就能实现刷新过程在读写过程的同时进行,刷新操作也就不会占用存储器接口的带宽(如图4所示,其中,字母所代表的含义同图5)。
S13、在所述第二阶段,设置读/写逻辑的优先级低于刷新逻辑,所述刷新逻辑刷新未被刷新的Bank。步骤S13具体为:
S131、判断是否有Bank未刷新,若是,执行步骤S132;若否,结束此次刷新;
S132、对未被刷新的Bank进行刷新,其中,若读/写逻辑仍需使用所述未被刷新的Bank,则设置读/写逻辑进入等待状态。
如图5所示,其中,Wr0表示对Bank0进行写操作,Wr1表示对Bank1进行写操作,以次类推;Rd0表示对Bank0进行读操作,Rd1表示对Bank1进行读操作,以次类推;Rf0表示对Bank0进行刷新,Rf1表示对Bank1进行刷新,以次类推。
在某种特殊情况下,如读写请求一直在操作同样的Bank,这样就限制了刷新逻辑对这些Bank的刷新,所以在第二阶段内需要把刷新访问的处理优先级设置为高,也就是说一旦通过判断后,发现在第二阶段仍有Bank没有被刷新过,那就必须在这个阶段完成对它们的刷新,而读/写逻辑的请求如果有冲突,就必须要进入等待状态。这种情况下刷新逻辑是占用一定的带宽的。因为本设计中流水线长度为2,所以最极端的情况下也只可能有4个Bank是在进入X2阶段仍没有被刷新的。所以X2阶段只需要完成最多4个Bank的刷新,也就是说它最多也只需要占用4个时钟周期就可以了。因为读写访问的Bank基本上是随机的,所以发生类似图4的情况的可能性不会低于(1-4*(2/72)*(1/16)=)99%。
接下来将结合图6来介绍本发明对读/写逻辑的优化方法,同样也是应用上述的DRAM存储器,其也是为了达到提升DRAM数据访问带宽的目的,该方法包括如下步骤:
S21、任意选择所述最小单元BufUnit中一未被读逻辑使用的64B存储空间作为起始地址,写逻辑从所述起始地址按顺序写入数据;
S22、将所述起始地址送给读逻辑;
S23、从所述起始地址按顺序开始,选择未被写逻辑使用的存储有有效数据的64B存储单元进行读出数据;
如图7所示,步骤S23具体为:
S231、判断所述起始地址是否被写逻辑使用,若是,选任意不发生冲突的地址来写数据;若否,从所述起始地址开始按顺序读出数据;
S232、判断欲读取64B存储空间是否被写逻辑使用,若是,执行S233;若否,执行S234;
S233、选择其它未被写逻辑使用的存储有有效数据的64B存储空间进行读数据,读完后跳转到S232;
S234、按照顺序读取数据,直至读出所有数据。
S24、按照数据写入顺序将读出的数据进行组合。
在本发明中的一优选实施例中,假设读写接口所需要的带宽是相等的,所以它们的优先级是相同的。当然,在其他实施方式中,若读写需要设置不同的带宽,则只要简单地把这两种操作进行处理的比例改为期望值就可以了。在本实施方式中,一个数据报文每次读写操作的数据最多是64B,那么一个完整的BufUnit就需要四次操作才可以完成。因为在交换机芯片的系统处理中都是以BufUnit为一个单位来处理的,所以系统仅会指定BufUnit的地址,具体到其中一个64B的数据的位置是可以任意分配的,只要在将这个BufUnit再次从存储器中读取出来时可以恢复原来的数据顺序就可以了。在本发明中为了实现简单,规定每个BufUnit的第一个64B的数据可以随意选择一个位置(因为一个BufUnit包含四个WRAP,实际上就是选择一个WRAP),而这个BufUnit的后续数据必须以这个WRAP为起始地址按顺序存储到指定的地址。另外这个起始的WRAP地址(起始地址)会随数据报文的其他信息送给读操作控制逻辑。在把该报文从存储器读出来时,只要送出BufUnit的地址,然后由存储器读接口控制逻辑(读逻辑)按照指定的起始WRAP的位置按顺序依次将数据读出来就可以了。这样做的好处是,当有读操作和写操作发生冲突时,如果写操作的是一个BufUnit的第一个64B的数据,就可任意选择一个不会冲突的WRAP来写。只是该BufUnit的后续数据要以这个WRAP为起始地址按顺序写入就可以了。如果在写后续数据时发生读写冲突,可以调整读操作中的WRAP,选择包含有效数据并且没有冲突的那个WRAP进行读操作,只需在所有WRAP里的数据都读出来后按照原来的顺序重新组合数据就可以了。若读逻辑读取到最后一个数据所在的64B存储空间时,写逻辑也在使用该64B存储空间且不能选择其它存储空间进行写数据,便选择读/写逻辑中的任意一个进入等待状态。也就是说,在读取最后一个数据所在的WRAP时是没有其他选择的,如果这时写操作也刚好不能再重新选择WRAP,那就只能采取乒乓操作的方式让其中一个操作暂时进入等待状态。同样基于随机访问的考虑,发生类似冲突的情况的机率不会超过(1/(16*4))1.5625%。
如果一个BufUnit内要存储的数据长度足256B,如报文长度较短或者一个报文的最后一段数据不足256B时,真正操作一个BufUnit的次数就可能不是四次。在这种情况下,因为操作一个BufUnit的后续操作次数也少于四次,所以实际上发生冲突的机率也是减少的。
请参见图8,其示出本发明的另一实施中优化读写逻辑的方法流程图,在此实施例中,包括以下几个步骤:
S31、写逻辑选择未被读逻辑使用的64B存储空间按照特定顺序写入数据;
S32、将所述特定顺序送给读逻辑;
S33、读逻辑选择未被写逻辑使用的64B存储空间进行读数据,直至读出所有被写入数据;
S34、按照特定顺序组合所有被读出数据。
在本实施方式中,采取一种更灵活的存储方式,值得一提的是,事先需要设定好一个数据写入到存储器中的特定顺序并记录下来,这个特定顺序将随同标志实际有效的WRAP的位置信息被发送给读逻辑。然后让每个64B存储空间的写操作都可以任意选择一个空闲的WRAP作为起始写地址开识写数据,而读操作可以根据从数据写操作控制逻辑传输来的标志实际有效的WRAP的位置随机地选择一个WRAP来读取数据,只要在所有包含有效数据的WRAP内的数据都读出来后,再按原有特定顺序组合起来就可以了。只是这种控制逻辑需要写逻辑侧多传输两个位的数据顺序(特定顺序)标志给读侧的控制逻辑。
以上描述的各个实施方式,在对于以太网报文的读写带宽要求最严格的是65B的报文。这是因为这种长度的报文在第二次写一个BufUnit时,只有一个字节的有效数据,所以最大的浪费了存储器的接口带宽。理想情况下(没有刷新也没有读写冲突),存储器可以达到的带宽是:400MHz×64B×65B/128B = 104Gbps。考虑到以上的冲突,实际的读写带宽分别要大于104*(1-1.5625%)*99% = 101.35Gbps。
在实测过程中,该接口的数据读写带宽平均可以达到大于103Gbps并非常接近104Gpbs的结果。所以最初设计要求的读写总带宽200Gpbs的目标是可以得到保证的。
如果再提高接口带宽要求,可以选择Pipeline级数为4的DRAMT来实现,但这时的控制逻辑在时行冲突检测时要检测连续的四次操作请求中的Bank信息,而不是以上实式例所描述的两次操作。
该补偿方案所使用的代价就是在DRAM刷新控制逻辑增加冲突检测逻辑,在普通读写控制逻辑中增加冲突避免逻辑和一个标志数据存储位置的2位标志信息。在这样的控制逻辑下,可以最大程度的避免DRAM存储器刷新的带宽占用、读写冲突对带宽的损耗,并可以实现采用多级流水线的DRAM情况下对数据存储器的随机访问。在本发明的设计方案下,用DRAM也可以实现存储器的高速随机访问,解决了集成电路内无法内嵌高速大容量随机访问RAM的限制。不仅在上述的交换机芯片设计中,在其他的需要大容量内嵌存储器的芯片设计都可以采用本发明的设计方案。
值得一提的是,如果数据报文在写进存储器时控制逻辑已经可以等到该报文目的端口的信息,那么就有可能在写数据时就解决一部分可能存在的读写冲突,并可以减少读写数据时有效字节数不足所带来的带宽浪费的情况。例如为了避免连续读取的多个BufUnit出现Bank冲突情况,可以将这些BufUnit按照目的地分别存储到不会发生冲突的多个Bank中;为了减少数据读写时的带宽浪费,可以在将有效字节数据不足的数据与后续目的地相同的其他报文拼凑起来再一起写到存储器内。但这两种读写方式都要求必须在写数据时就要得到报文目的地的信息,这在大部分的应用环境中是不可能的,所以这种控制逻辑的应用也就不能通用了。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置、或通讯系统环境或设备中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等,以及交换机、路由器、包括以上任何设备的通讯系统环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种DRAM存储器,其特征在于,所述DRAM存储器具有一额定存储空间,所述额定存储空间被均分为四个独立的WRAP,每个WRAP包含16个Bank,其中,所述额定存储空间由若干个具有256B存储空间的最小单元BufUnit组成,所述最小单元BufUnit包括四个分别存储于不同WRAP内的64B存储空间。
2.根据权利要求1所述的DRAM存储器,其特征在于,所述额定存储空间为被划为32768个最小单元BufUnit的8MB空间,其中,所述最小单元BufUnit中四个64B存储空间的存放原则为:
第0个至第15个的最小单元BufUnit对应存放于四个WRAP的第0个至第15个的Bank的0地址上,然后,再从每个WRAP的第0个Bank的1地址开始重新分配,直到所有32768个最小单元BufUnit分配完毕。
3.一种应用权利要求1所述的DRAM存储器提升DRAM访问带宽的方法,其特征在于,该方法包括如下步骤:
S11、获得完成四个WRAP的刷新所需的最长时间间隔,并将所述最长时间间隔划分为第一阶段和第二阶段,其中,在第一阶段和第二阶段中,读/写逻辑和刷新逻辑的优先级不同;
S12、在所述第一阶段,设置读/写逻辑的优先级高于刷新逻辑,所述刷新逻辑自动选择不被读/写逻辑使用的Bank进行刷新;
S13、在所述第二阶段,设置读/写逻辑的优先级低于刷新逻辑,所述刷新逻辑刷新未被刷新的Bank。
4.根据权利要求3所述的方法,其特征在于,所述最长时间间隔为80个时钟周期,所述第一阶段的长度为72个时钟周期,所述第二阶段的长度为8个时钟周期。
5.根据权利要求3或4所述的方法,其特征在于,DRAM流水线长度为2,所述步骤S12还包括:
获取读写请求列表的当前读写请求和下一个读写请求分别所需使用的Bank;
选择未被所述当前读写请求和下一个读写请求使用的Bank进行刷新。
6.根据权利要求3或4所述的方法,其特征在于,所述步骤S13具体为:
S131、判断是否有Bank未刷新,若是,执行步骤S132;若否,结束此次刷新;
S132、对未被刷新的Bank进行刷新,其中,若读/写逻辑仍需使用所述未被刷新的Bank,则设置读/写逻辑进入等待状态。
7.一种应用权利要求1所述的DRAM存储器提升DRAM访问带宽的方法,其特征在于,该方法包括如下步骤:
S21、任意选择所述最小单元BufUnit中一未被读逻辑使用的64B存储空间作为起始地址,写逻辑从所述起始地址按顺序写入数据;
S22、将所述起始地址送给读逻辑;
S23、从所述起始地址按顺序开始,选择未被写逻辑使用的存储有有效数据的64B存储单元进行读出数据;
S24、按照数据写入顺序将读出的数据进行组合。
8.根据权利要求7所述的方法,其特征在于,所述步骤S23具体为:
S231、判断所述起始地址是否被写逻辑使用,若是,选任意不发生冲突的地址来写数据;若否,从所述起始地址开始按顺序读出数据;
S232、判断欲读取64B存储空间是否被写逻辑使用,若是,执行S233;若否,执行S234;
S233、选择其它未被写逻辑使用的存储有有效数据的64B存储空间进行读数据,读完后跳转到S232;
S234、按照顺序读取数据,直至读出所有数据。
9.根据权利要求7所述的方法,其特征在于,该方法还包括:
若读逻辑读取到最后一个数据所在的64B存储空间时,写逻辑也在使用该64B存储空间且不能选择其它存储空间进行写数据,便选择读/写逻辑中的任意一个进入等待状态。
10.一种应用权利要求1所述的DRAM存储器提升DRAM访问带宽的方法,其特征在于,该方法包括如下步骤:
S31、写逻辑选择未被读逻辑使用的64B存储空间按照特定顺序写入数据;
S32、将所述特定顺序送给读逻辑;
S33、读逻辑选择未被写逻辑使用的64B存储空间进行读数据,直至读出所有被写入数据;
S34、按照特定顺序组合所有被读出数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103589118A CN102436429A (zh) | 2011-11-14 | 2011-11-14 | Dram存储器及提升dram数据访问带宽的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103589118A CN102436429A (zh) | 2011-11-14 | 2011-11-14 | Dram存储器及提升dram数据访问带宽的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102436429A true CN102436429A (zh) | 2012-05-02 |
Family
ID=45984500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103589118A Pending CN102436429A (zh) | 2011-11-14 | 2011-11-14 | Dram存储器及提升dram数据访问带宽的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102436429A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108417235A (zh) * | 2018-06-06 | 2018-08-17 | 珠海市微半导体有限公司 | 一种基于3d封装的dram存储器及访问方法 |
CN109411002A (zh) * | 2017-08-15 | 2019-03-01 | 华为技术有限公司 | 一种数据读取的方法及闪存控制器 |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN109710547A (zh) * | 2018-12-29 | 2019-05-03 | 浙江理工大学 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
CN109857616A (zh) * | 2019-01-25 | 2019-06-07 | 山东华芯半导体有限公司 | 一种基于指令的dram控制器带宽效率检测方法 |
CN110299183A (zh) * | 2018-12-26 | 2019-10-01 | 贵阳忆芯科技有限公司 | In-LineECC模块及其实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050013185A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Dynamic random access memory with smart refresh scheduler |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
-
2011
- 2011-11-14 CN CN2011103589118A patent/CN102436429A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050013185A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Dynamic random access memory with smart refresh scheduler |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN101788963A (zh) * | 2010-03-18 | 2010-07-28 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
(美)布莱恩特,奥哈拉伦: "《深入理解计算机系统》", 31 January 2011, 机械工业出版社 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109411002A (zh) * | 2017-08-15 | 2019-03-01 | 华为技术有限公司 | 一种数据读取的方法及闪存控制器 |
CN109411002B (zh) * | 2017-08-15 | 2021-01-29 | 华为技术有限公司 | 一种数据读取的方法及闪存控制器 |
CN108417235A (zh) * | 2018-06-06 | 2018-08-17 | 珠海市微半导体有限公司 | 一种基于3d封装的dram存储器及访问方法 |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN109491926B (zh) * | 2018-10-26 | 2023-03-28 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN110299183A (zh) * | 2018-12-26 | 2019-10-01 | 贵阳忆芯科技有限公司 | In-LineECC模块及其实现方法 |
CN110299183B (zh) * | 2018-12-26 | 2024-01-30 | 贵阳忆芯科技有限公司 | In-LineECC模块及其实现方法 |
CN109710547A (zh) * | 2018-12-29 | 2019-05-03 | 浙江理工大学 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
CN109857616A (zh) * | 2019-01-25 | 2019-06-07 | 山东华芯半导体有限公司 | 一种基于指令的dram控制器带宽效率检测方法 |
CN109857616B (zh) * | 2019-01-25 | 2021-05-18 | 山东华芯半导体有限公司 | 一种基于指令的dram控制器带宽效率检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103354939B (zh) | 用于使dram和mram访问交错的存储器控制器和方法 | |
CN102436429A (zh) | Dram存储器及提升dram数据访问带宽的方法 | |
CN108701081B (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
CN102292715B (zh) | 存储器装置功率管理器及其方法 | |
CN102405498B (zh) | 可配置带宽存储器装置及方法 | |
US8225064B2 (en) | Storage region allocation system, storage region allocation method, and control apparatus | |
CN100440124C (zh) | 用于选择命令发送到存储器的方法、存储器控制器和系统 | |
CN101308697B (zh) | 基于sdram的大容量fifo突发缓存器及数据存储方法 | |
CN103092785B (zh) | Ddr2 sdram控制器 | |
CN101952808A (zh) | 存储设备的扩展利用区域 | |
US20140344513A1 (en) | Methods and systems for smart refresh of dynamic random access memory | |
CN102859504B (zh) | 复制数据的方法和系统以及获得数据副本的方法 | |
EP3373150B1 (en) | Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers | |
CN103927268A (zh) | 一种存储器的访问方法及装置 | |
CN101233575A (zh) | 存储器的控制方法、存储系统 | |
KR20160116533A (ko) | 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법 | |
CN102855199B (zh) | 数据处理设备和数据处理装置 | |
JP2013047952A (ja) | 構成可能な入出力ポートを伴うメモリモジュール | |
CN104375895A (zh) | 用于多种存储器间的数据存储调度方法以及装置 | |
CN105912270B (zh) | 一种面向pm的访存请求解析装置与方法 | |
CN101344812A (zh) | 一种基于嵌入式系统的磁盘动态电源管理方法 | |
CN100511470C (zh) | 双倍速动态随机存取存储器的读写方法 | |
CN104866432A (zh) | 具有绕回-至-连续读取的存储器子系统 | |
CN102567225A (zh) | 一种管理系统内存的方法及装置 | |
US20240036754A1 (en) | Adjustable access energy and access latency memory system and devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120502 |