本发明涉及刷新技术,特别是涉及一种用于DRAM或eDRAM刷新的装置及其方法。
背景技术:
在传统的刷新方式中,在每个刷新周期内都会有段时间用于刷新,如图1所示,在每个刷新周期内,时间轴被分成两个部分,一部分时间用于读写,另一部分时间用于刷新。
现有刷新方式当DRAM在进行刷新时,无法进行读写操作,被称作死区时间,降低了DRAM吞吐量,并且读写的延迟会变得很高。
技术实现要素:
本发明的目的在于提供一种用于DRAM或eDRAM刷新的装置及其方法,用于减少刷新和读写之间的冲突问题,达到增加DRAM或者eDRAM性能的效果。
为了实现上述目的,本发明提供一种用于DRAM或eDRAM刷新的装置,DRAM或eDRAM设置有存储单元,该装置包括:存储控制装置、刷新控制装置;
所述存储控制装置,用于接收读写请求,并根据所述刷新控制装置的输出决定向存储单元发送读写请求或刷新请求;
所述刷新控制装置,用于控制生成刷新信号,并根据所述存储控制装置的输出来记录刷新是否被延迟和读写的行地址。
所述的用于DRAM或eDRAM刷新的装置,其中,所述存储控制装置包括:
读缓存,用于缓存从存储单元中读出的数据;
写缓存,用于缓存要写入到存储单元的数据;
控制逻辑单元,用于接收读写请求;
存储控制信号发生器,用于接收所述控制逻辑单元发送的命令,并将该命令译码成存储单元可识别的命令。
所述的用于DRAM或eDRAM刷新的装置,其中,所述刷新控制装置包括:
刷新周期寄存器,用于存储刷新周期;
刷新延迟计数器,用于存储当前刷新被延迟的时间;
刷新周期计数器,用于对每个刷新周期计时;
刷新行数计数器,用于记录当前刷新的行数;
刷新逻辑单元,用于判断寄存器当前的被读写状态,并向所述控制逻辑单元发送刷新的状态;
总行数寄存器,用于存储总的行数;
刷新延迟寄存器,用于存储刷新总的可被延迟的时间;
读写标志寄存器,用于存储在可延迟刷新阶段内读写过的行地址。
所述的用于DRAM或eDRAM刷新的装置,其中,所述刷新逻辑单元当接收到读写请求时,停止刷新,控制所述刷新延迟计数器开始计数,同时在所述读写标志寄存器中记录读写的行地址,并发送当前刷新是否可被打断的信号至所述控制逻辑单元。
所述的用于DRAM或eDRAM刷新的装置,其中,所述刷新逻辑单元在当前刷新未完成,且当所述刷新延迟计数器中的时间等于所述刷新延迟寄存器中的时间时,返回一当前刷新不可被打断的信号至所述控制逻辑单元,控制所述控制逻辑单元继续刷新;或在当前刷新已完成或所述刷新延迟寄存器与所述刷新延迟计数器中的时间差值大于所述总行数寄存器与所述刷新行数计数器中的行数差值与每行刷新时间的乘积时,返回一可被读写的信号至所述控制逻辑单元。
所述的用于DRAM或eDRAM刷新的装置,其中,当刷新周期计数器中的时间等于所述刷新周期寄存器中的时间时,所述刷新周期计数器、所述刷新行数计数器、所述刷新延迟计数器归零,所述读写标志寄存器重置。
所述的用于DRAM或eDRAM刷新的装置,其中,所述刷新周期寄存器的刷新周期与所述刷新延迟计数器的已被延迟的时间之和小于数据保持时间。
所述的用于DRAM或eDRAM刷新的装置,其中,当前待刷新的行在所述读写标志寄存器中被标记为读写过时,则跳过此行的刷新。
所述的用于DRAM或eDRAM刷新的装置,其中,所述刷新控制装置为一个或多个,各所述刷新控制装置之间的刷新相互独立。
为了实现上述目的,本发明还提供一种用于DRAM或eDRAM刷新的方法,DRAM或eDRAM设置有存储单元,该方法包括:
步骤一,存储控制装置接收读写请求,并根据刷新控制装置的输出决定向存储单元发送读写请求或刷新请求;
步骤二,刷新控制装置控制生成刷新信号,并根据所述存储控制装置的输出来记录刷新是否被延迟和读写的行地址。
所述的用于DRAM或eDRAM刷新的方法,其中,所述刷新控制装置包括:
刷新周期寄存器,用于存储刷新周期;
刷新延迟计数器,用于存储当前刷新被延迟的时间;
刷新周期计数器,用于对每个刷新周期计时;
刷新行数计数器,用于记录当前刷新的行数;
刷新逻辑单元,用于判断寄存器当前的被读写状态,并向所述控制逻辑单元发送刷新的状态;
总行数寄存器,用于存储总的行数;
刷新延迟寄存器,用于存储刷新总的可被延迟的时间;
读写标志寄存器,用于存储在可延迟刷新阶段内读写过的行地址。
所述的用于DRAM或eDRAM刷新的方法,其中,所述步骤二中,包括:
所述刷新逻辑单元当接收到读写请求时,停止刷新,控制所述刷新延迟计数器开始计数,同时在所述读写标志寄存器中记录读写的行地址,并发送当前刷新是否可被打断的信号至所述存储控制装置的控制逻辑单元。
所述的用于DRAM或eDRAM刷新的方法,其中,所述步骤二中,包括:
所述刷新逻辑单元在当前刷新未完成,且当所述刷新延迟计数器中的时间等于所述刷新延迟寄存器中的时间时,返回一当前刷新不可被打断的信号至所述控制逻辑单元,控制所述控制逻辑单元继续刷新;或在当前刷新已完成或所述刷新延迟寄存器与所述刷新延迟计数器中的时间差值大于所述总行数寄存器与所述刷新行数计数器中的行数差值与每行刷新时间的乘积时,返回一可被读写的信号至所述控制逻辑单元。
所述的用于DRAM或eDRAM刷新的方法,其中,所述步骤二中,包括:
当所述刷新周期计数器中的时间等于所述刷新周期寄存器中的时间时,所述刷新周期计数器、所述刷新行数计数器、所述刷新延迟计数器归零,所述读写标志寄存器重置。
所述的用于DRAM或eDRAM刷新的方法,其中,所述刷新周期寄存器的刷新周期与所述刷新延迟计数器的已被延迟的时间之和小于数据保持时间。
所述的用于DRAM或eDRAM刷新的方法,其中,当前待刷新的行在读写标志寄存器中被标记为读写过时,则跳过此行的刷新。
所述的用于DRAM或eDRAM刷新的方法,其中,所述刷新控制装置为一个或多个,各所述刷新控制装置之间的刷新相互独立。
与现有技术相比,本发明的有益技术效果是:
本发明提供了一种用于DRAM或eDRAM刷新的方法,本刷新方法改进了刷新的方式,使得刷新变得更加灵活,协调刷新与读写冲突,从而提高了DRAM的吞吐量,实现了DRAM性能的提高。具体体现在如下几个方面:
1,通过可中断刷新方式,减少刷新和读写之间的冲突问题,达到增加DRAM或者eDRAM性能的效果。
2,刷新时可以被读写打断,减小了读写延迟。
3,必须设定刷新周期和刷新可延迟时间之和小于数据保持时间。
4,刷新时可以被读写打断。
5,可以有一组刷新装置,也可以多个区块bank共享一组刷新装置,也可以每个区块bank独享一组刷新装置。
6,记录在可延迟刷新阶段读写过的行地址,被读写过的行可以直接跳过刷新,减少了刷新时间及功耗。
附图说明
图1是传统的刷新方式示意图;
图2是本发明的刷新方式示意图;
图3是本发明的刷新装置结构图;
图4是本发明的刷新方法流程图;
图5是本发明的刷新方式第一实施例;
图6是本发明的刷新方式第二实施例。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
如图2所示,是本发明的刷新方式示意图。在图2中示出了刷新的时序,该DRAM刷新电路设定刷新周期小于数据的保持时间。在每个刷新周期内时间域被分成三部分,第一部分叫做刷新时间,在第一部分做刷新,但是当有读写操作时,刷新可以被打断,优先进行读写操作;第二部分叫做延迟刷新时间,在第二部分开始也是优先进行读写,但是当第二部分余下的时间恰能做完刷新操作时,则进行强制刷新操作,此时不响应读写请求。第一部分和第二部分合称为可延迟刷新阶段,第三部分叫做读写时间,在这部分只做读写操作。该刷新方法可以用于DRAM或eDRAM控制器中,下面将以DRAM控制器为例对技术方案进行描述,这同样适用于eDRAM控制器。
DRAM由MOS技术制造,使用电容来做存储单元(对eDRAM控制器来说,也是使用电容来做存储单元)。DRAM的功耗低,速度慢。另一方面,SRAM速度快并且不需要刷新,然而SRAM的面积太大并且更昂贵,因此DRAM应用比SRAM更广泛。
不像SRAM用触发器来存储信息,DRAM用电容来存储信息。但是电容会逐渐漏电,从而丢失数据。因此DRAM的存储单元需要周期性的刷新,刷新周期要小于数据保持时间,如果存储单元没有在数据保持时间内被刷新,存储信息就会丢失。
如图3所示,是本发明的刷新装置结构图,图4是本发明的刷新方法流程图。
结合图3、4,该刷新装置300是用于DRAM或eDRAM刷新的装置,包括存储控制装置31和刷新控制装置32。DRAM或eDRAM包括存储单元33。
刷新控制装置32用于控制生成刷新信号,存储控制装置31用于接收读写请求和向存储单元33发送刷新请求或者读写请求,存储控制装置31根据刷新控制装置32的输出来决定向存储单元33发送读写请求还是刷新请求,刷新控制装置32根据存储控制装置31的输出来记录刷新是否被延迟和读写的行地址。
进一步,存储控制装置31包括:
读缓存1,用于缓存从存储单元33中读出的数据。
写缓存2,用于缓存将要写入到存储单元33的数据。
控制逻辑单元3,用于接收读写请求并向存储单元控制信号发生器4发送命令。
存储控制信号发生器4,用于将控制逻辑单元3发送的命令译码成存储单元33可以识别的命令。
进一步,刷新控制装置32作为一个区块bank,装置300中可以包含多个区块bank。
进一步,刷新控制装置32包括:
刷新周期寄存器5,用于存储刷新周期。
刷新延迟计数器6,用于存储当前刷新已经被延迟的时间。
刷新周期计数器7,用于记录当前刷新周期的时间,对每个刷新周期计时。
刷新行数计数器8,用于记录当前刷新进度,如当前刷新的行数。
刷新逻辑单元9,通过判断关于刷新的几个寄存器(即判断当前是否可以被读写),向控制逻辑单元3发送刷新的状态。
总行数寄存器10,用于存储一个bank中总的行数。
刷新延迟寄存器11,用于存储刷新总的可以被延迟的时间。
读写标志寄存器12,用于存储可延迟刷新阶段被读写过的行地址。
进一步地,刷新周期寄存器5存储的刷新周期小于数据保持时间。
进一步地,刷新延迟寄存器11存储刷新可以被延迟的时间,要满足以下条件:刷新周期和刷新可以被延迟的时间之和小于或等于数据保持时间。
在本发明中,总共只有一组刷新装置,所有的区块bank的刷新操作相同。刷新逻辑单元9通过判断各个刷新寄存器的状态向控制逻辑单元3发送。刷新行数计数器8对区块bank刷新的行数进行计数,刷新延迟计数器11对刷新时的延迟时间进行计数,在刷新时,如果有读写请求则刷新被打断,刷新延迟计数器6开始计数,并且读写标志寄存器12记录读写过的行地址。刷新逻辑单元9发给控制逻辑单元3当前刷新是否可以被打断的信号,如果当前刷新没有完成,并且刷新延迟计数器6中的时间等于刷新延迟寄存器11中的时间,那么刷新逻辑单元9返回一个刷新不可被打断信号,并且控制逻辑单元3继续刷新剩余的行。如果刷新已完成,或者刷新延迟计数器6中的时间小于刷新延迟寄存器11中的时间,那么刷新逻辑单元9返回一个可以被读写的信号。刷新周期寄存器5存储刷新周期的时间,刷新周期计数器7一直开始计时,当刷新周期计数器7等于刷新周期时,表示到了下一个刷新周期,刷新周期计数器7,刷新行数计数器8,刷新延迟计数器6归零,读写标志寄存器12重置。
请参阅图3、4,以下结合图3详细介绍DRAM刷新电路的工作过程:
初始化寄存器,刷新周期寄存器5存储了DRAM的刷新周期,总行数寄存器10存储了DRAM一个区块bank的行数,刷新延迟寄存器11存储了在刷新时刷新可以被延迟的时间。其中,刷新可延迟时间+刷新周期<=存储单元33的数据保持时间,上述寄存器在正常工作前都需要提前配置好。
控制逻辑单元3用于接收外部的命令并执行,在访问存储单元33之前,控制逻辑单元3都要检查一下刷新逻辑单元9返回的信号,如果处于刷新状态,那么就不执行,反之执行。
当进入刷新时间时,如果控制逻辑单元3需要访问存储单元33,刷新逻辑单元9需要判断当前刷新是否能被打断,如果刷新延迟寄存器11与刷新延迟计数器6中的时间差值大于总行数寄存器10与刷新行数计数器8中的行数差值与每行刷新时间的乘积时,则当前刷新可以被打断,控制逻辑单元3开始访问存储单元33,同时刷新延迟计数器6开始计数刷新被延迟的时间。
刷新周期计数器7始终在计时,如果刷新周期计数器7等于刷新周期寄存器5,表示到了下一个刷新周期,刷新周期计数器5、刷新行数计数器8、刷新延迟计数器6归零,读写标志寄存器12重置。如图5所示,是本发明的刷新方式第一实施例。
在本实施例中,每个区块bank都有自己独立的刷新装置,每个区块bank之间的刷新相互独立。每个区块bank都有自己的刷新装置,当一个区块bank在刷新时间内被打断时,不会影响到其他区块bank的刷新。
如图6所示,是本发明的刷新方式第二实施例。
在本实施例中,所有的区块bank分成M个组,每组N个区块bank,每组有一个独立的刷新装置,每个组之间的刷新相互独立。如上图所示,每组都有自己的刷新装置,当一个组在刷新时间内被打断时,不会影响到其他组的刷新。
进一步地,在一个DRAM或eDRAM控制器中只有一个刷新装置。
进一步地,所有的区块bank共享一个刷新装置,所有的区块bank刷新状态完全相同。
进一步地,每一个区块bank有自己的刷新装置,每个区块bank的刷新相互独立。
进一步地,可以将若干个区块bank分为一组,每组区块bank有一个刷新装置。
进一步地,每一组区块bank有自己的刷新装置,每组内的区块bank刷新状态完全相同,组间的刷新相互独立。
本发明改进刷新的方式使刷新变得更加灵活,可有效的协调读写和刷新之间的冲突,提高了DRAM的吞吐量,从而提高了DRAM的性能,同时记录在可延迟刷新阶段读写过的行地址,被读写过的行可以直接跳过刷新,减少了刷新时间及功耗。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。