动态随机访问存储器刷新的方法和系统的制作方法

文档序号:6782479阅读:171来源:国知局
专利名称:动态随机访问存储器刷新的方法和系统的制作方法
技术领域
本发明一般涉及动态随机访问存储器,更具体地,涉及动态随机访问存储器刷新 的方法和系统。
背景技术
动态随机访问存储器(Dynamic Random Access Memory,DRAM)是一种半导体存储 器,其原理是利用电容内是否储有电子来代表一个二进制位元(bit)是1还是0。由于在现 实中电容会有漏电的现象,导致电位差不足而使记忆消失,因此需要电容经常周期性地充 电,来确保记忆长存。由于这种需要定时刷新的特性,才会被称为“动态”,而静态随机存取 存储器(SRAM)只要存入资料后,即使不刷新也不会遗失记忆。与SRAM相比,DRAM的优势在于结构简单,其每一个位元的数据都只需一个电容跟 一个晶体管来处理,相比之下,在SRAM上一个位元就需要六个晶体管。正因这个缘故,DRAM 比SRAM在相同的存储位元下,面积更小;所以DRAM拥有非常高的密度,单位体积的容量较 高,成本较低。但相反的,DRAM也有存取速度较慢,耗电量较大的缺点。与大部分的随机存 取器(RAM) —样,由于存在DRAM中的资料会在电源切断以后立刻消失,因此它也是一种挥 发性记忆体(volatile memory)设备。DRAM在保持时间内因为漏电流必须被刷新,当刷新操作和正常的访问操作(例如 读或者写操作)发生冲突时,正常的访问操作必须被挂起,直到刷新操作完成。DRAM由多个 存储体(Bank)组成,每个存储体包含多个行(Row),在每个时钟周期,存储体的一个行被刷 新,同时,其它存储体可以被访问,只有被刷新的存储体不能被访问。对一个给定的存储体 的连续访问会被其刷新操作打断,尤其是对于长期连续被访问的存储体,访问的吞吐量被 降低。美国专利申请2005/006954387B2 “具有灵巧的刷新调度器的动态随机访问存储 器”提出了一种通过使用移动的上/下标志位寄存器的改进访问吞吐量的刷新方法。该申 请提出一种可配置的动态随机访问存储器刷新方法。但是,对于长期连续被访问的存储体, 上述方法访问的吞吐量还是较低,这对于某些要求高吞吐量访问的应用来说,使用现有的 DRAM刷新方法和系统难以满足应用的要求。

发明内容
为了解决现有技术中DRAM刷新对于长期连续被访问的存储体,访问的吞吐量较 低这一问题,本发明提出了一种新的刷新方法,该方法比现有的刷新方法提高了几十倍的 连续访问能力,因此也提高了动态随机访问存储器的访问性能。根据本发明的一个方面,提供了一种DRAM刷新的方法,包括,将DRAM中的全部存 储体分为多个存储体组,每个组中有η个存储体,其中,η为大于等于1的整数;为每个存储 体组确定可用保持时间阈值;对每个存储体组的存储体的每个存储体行进行刷新,其中,对 一个存储体组的一个存储体行进行刷新包括判断对该存储体行的刷新操作和对该存储体行所在的存储体的访问操作是否冲突;如果冲突,判断对于当前存储体行,是进行刷新操作 还是访问操作;如果判断结果为进行访问操作,则继续访问操作。根据本发明的另一个方面,提供了一种DRAM刷新的系统,包括全局刷新顺序控 制器,用于将DRAM中的全部存储体分为多个存储体组,每个组中有η个存储体,其中,η为大 于等于1的整数,为每个存储体组确定可用保持时间阈值,并且控制刷新子单元顺序控制 器对每个存储体组的每个存储体行进行刷新;刷新子单元顺序控制器,用于对每个存储体 组的存储体的每个存储体行进行刷新,其中对一个存储体组的一个存储体行进行刷新时, 首先判断对该存储体行的刷新操作和对该存储体行所在的存储体的访问操作是否冲突;如 果冲突,判断对于当前存储体行,是进行刷新操作还是访问操作;如果判断结果为进行访问 操作,则继续访问操作。


通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目 的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中 的相同部件。图1示意性地示出了美国专利申请2005/006卯4387Β2“具有灵巧的刷新调度器的 动态随机访问存储器”中使用的方法;图2示意性地示出了根据本发明的一个实施例的对DRAM中的存储体进行刷新的 方法流程图;图3示意性地示出了根据本发明的一个实施例的对DRAM中的存储体进行分组的 示意图;图4示出了对于一个存储体组的刷新过程的一种实施方式;图5示出了对于一个存储体组的刷新过程的另一种实施方式;以及图6示出了本发明的对DRAM中的存储体进行刷新的系统与存储体之间的连接关系。
具体实施例方式将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优 选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。 相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给 本领域的技术人员。图1示意性地示出了美国专利申请2005/006卯4387Β2“具有灵巧的刷新调度器的 动态随机访问存储器”中使用的方法,在该方法中,包含着多个存储体,图1示意性地示出了 M个存储体,每个存储体具有256个行。由于电容器漏电流的存在,每个存储体都要定时 刷新。刷新操作必须在保持时间内完成。保持时间就是每个存储体必须刷新的时间间隔。 但是刷新是以“行”为单位进行的。由于存储体在刷新某一行时,整个存储体都不可以被访 问,在美国专利申请中,如图1所示,使用两个指针指示将要被刷新的行,第一个指针为主 指针,从第一个存储体的第一行开始,刷新该行后,指针1指向第二个存储体的第一行,然 后为第三个存储体的第一行,等等,以存储体个数加一的顺序,直至每个存储体的第一行都被刷新后,再分别刷新每个存储体的第二行,等等。第二个指针为副指针,其从第M个存储
体开始,依次对应每个存储体的1行,2行,3行,......,以存储体个数减一的顺序。当指针
1指向的要被刷新的行正在进行访问操作时,刷新指针2指向的行,然后更新指针2,这样, 就可以防止刷新操作和访问操作的冲突。当指针1指向的行因为保持时间的限制必须被刷 新,而该行要被访问时,该访问操作暂停,等待刷新操作完毕后进行。例如,DRAM的全部存储体的总保持时间为36us(us为微秒),如果时钟周期为 5ns (ns为纳秒),那么,全部存储体一行的最小刷新时间保守计算为存储体的保持时间/ (一个存储体的行数+1) = 36us/(256+1) = 140ns,也就是观个时钟周期。因此,全部存 储体的一行的最大刷新间隔时间为140ns或者说观个时钟周期。每个时钟周期可以刷新 一行,如果恰好存储体1的第一行被连续访问,以致不能够被刷新,这时,指针2指向存储体
24的第一行,进行刷新,然后指针2指向存储体23的第一行进行刷新,......,直到指针2
指向存储体2的第一行进行刷新,存储体1的第一行可以仍然被访问,因为还没有到存储体 1的第一行必须被刷新的时间,此时可以暂时停止刷新操作,最多可以停止4个时钟周期, 当到第5个时钟周期时,存储体1的第一行必须停止被访问,进行刷新操作,否则会因为漏 电流,该存储的数据不能保持。也就是说,某一行数据的最大连续访问时间为5nsM28-l) =135ns ;同理,如果每个存储体的第一行都被刷新,直到第23个存储体的第一行被刷新完 毕,这时本来要开始刷新存储体M的第一行,但是存储体M的正在进行连续的访问操作, 此时暂时停止刷新操作,最多可以停止4个时钟周期,当到第5个时钟周期时,存储体M必 须停止被访问,进行刷新操作,否则会因为漏电流,该存储的数据不能保持。也就是说,某一 行数据的最小连续访问时间为5ns*08-24) = 20ns。因此,在刷新和访问冲突的情况下,存 储体的某一行的连续访问时间在[20ns,135ns]之间。美国专利申请中的存储体的连续访问时间不是很长的一个原因是观个时钟周 期,存储体行必须被更新;如果将这个必须被更新时间延长,就可能延长连续访问时间。本 发明就是基于这样一个思想。图2示意性地示出了根据本发明的一个实施例的对DRAM中的存储体进行刷新的 方法流程图,根据图2,在步骤S201,将DRAM中的全部存储体分为多个存储体组,每个组中 有η个存储体,其中,η为大于等于1的整数;在步骤S202中,为每个存储体组确定可用保 持时间阈值;在步骤S203中,对每个存储体组的每个存储体行进行刷新,其中,对一个存储 体组的一个存储体行进行刷新包括判断对该存储体行的刷新操作和对该存储体行所在的 存储体的访问操作是否冲突;如果冲突,如果冲突,判断对于当前存储体行,是进行刷新操 作还是访问操作;如果判断结果为进行访问操作,则继续访问操作。下面对每个步骤进行详 细描述。对于步骤S201,图3示意性地示出了根据本发明的一个实施例的对DRAM中的存储 体进行分组的示意图。图3中,DRAM —共包含M个存储体,如果每组存储体的个数为η,η 为大于0的整数,这样,共分为Μ/η个存储体组。对于步骤S202,如果DRAM的总保持时间平 均确定给每个存储体组,每个存储体组确定的可用保持时间为(DRAM总保持时间/ (M/n)), 这里为了保险起见,采用更为保守的方式,即为每个存储体组确定的可用保持时间阈值为 (总保持时间/(M/n+k)),k为大于等于1的整数,优选地,k= 1。这里,k越大,分配的可 用保持时间阈值越小,影响使得连续访问时间越小。
6
对于步骤S203中的对每个存储体组的每个存储体行进行刷新,根据上述的分组 情况,如果每个存储体有m个行,则每个存储体组共有m*n行。在对这m*n行的一行进行刷 新时,对一个存储体组的一个存储体行进行刷新包括判断对该存储体行的刷新操作和对 该存储体行所在的存储体的访问操作是否冲突;如果冲突,判断对于当前存储体行,是进行 刷新操作还是访问操作;如果判断结果为进行访问操作,则继续访问操作。优选地,发生冲 突时,要根据确定的给该存储体组的可用保持时间阈值,以及与组刷新时间,判断对于当前 行,是进行刷新操作还是访问操作,这里,组刷新时间为存储体组中从开始刷新到当前刷新 的时间差;如果组刷新时间远小于确定的给该存储体组的可用保持时间阈值,则剩下的时 间相对于还未刷新的行来说还有富裕,那么可以先不刷新,继续访问操作。如果时间比较紧 张,也就是说,如果所述给该存储体组的可用保持时间阈值与组刷新时间的差,与该存储体 组的未刷新行需要的全部刷新时间之间的差小于设定阈值,则进行刷新操作。这里,可以根 据DRAM本身的特性、以及控制的复杂度来设定阈值,例如,如果控制时间较长,设定阈值就 要较大于0,否则,只要很小的设定阈值即可。下面的实施例会详细描述。具体来说,图4示出了对于一个存储体组的刷新过程的一种实施方式,根据图4, 在步骤S401,初始化未刷新行,初始化组刷新时间以及记录当前时间为初始时间。一个存储 体组的所有行被编上行号,可以用数组、表等数据结构来记录所有未被刷新的行的行号,如 果该行完成刷新,就从该数据结构中删除该行的行号,否则,该行号保留在该数据结构中。 组刷新时间为存储体组中从开始刷新到当前刷新的时间差,可以通过使用刷新过程中的当 前时间减去初始时间获得。在步骤S402,对于下一个未被刷新的行,判断是否有针对该行所 在的的存储体访问操作;在步骤S403,如果没有针对该行的访问操作,更新该行,并且在未 刷新行中删除该行行号,然后在步骤S404,更新组刷新时间。在步骤S405,判断是否所有未 被刷新的行都被刷新,如果是,则在步骤S407,结束本流程,否则,返回步骤S402,继续判断 下一未刷新行;在步骤S405,如果有针对该行所在存储体的访问操作,根据确定的给该存 储体组的可用保持时间阈值,组刷新时间,以及剩下的未刷新的存储体行数,判断对于当前 行,是进行刷新操作还是访问操作,例如,如果采用先前所述的DRAM保持时间为36us,η = 2,则确定给每个存储体的可用保持时间为3000ns,每个存储体组有256 个行,一个时钟 周期为5ns,则每行全部刷新时间为256拉*5 = 2560ns < 3000ns,显然,组刷新时间相对于 确定的给该存储体组的可用保持时间阈值有富余。对于某一行,发现有针对该行的访问操 作,这时,在步骤S406,对于该存储体组,如果还有足够的时间用于刷新,也就是说,未刷新 行的行数乘以每行的刷新时间加上组刷新时间还没有达到该存储体组的可用保持时间阈 值,可以先不刷新该行,使该行所在的存储体可以继续访问操作,就选择访问操作,这时返 回步骤S402,继续对下一未刷新行进行判断,由于下一未刷新行和当前行很可能在一个存 储体中,则就会继续判断下一未刷新行,直到位于下一个存储体的未刷新行;在步骤S406, 如果不刷新该行,就会造成整个存储体组刷新时间超过确定的该存储体组的可用保持时间 阈值,则进入步骤S403,刷新该行,然后,在步骤S404,更新组刷新时间,在步骤S405判断是 否所有未被刷新的行都被刷新,直至该存储体组中的所有行都被刷新。该实施例中,只有一 个当前要刷新行的指针,在遇到访问刷新冲突时,效率较低,但是,仍然可以显著增加对一 个存储体的连续访问时间。图5示出了对于一个存储体组的刷新过程的另一种实施方式,根据图5,在步骤S501,为组中每一行提供一个计数器,并清零,组刷新时间清零。计数器可以用来记录当前 行被刷新的次数,组刷新时间用于累计存储体组中从开始刷新到当前的时间差,记录初始 时间。在步骤S502,判断是否所有行都被刷新?可以根据计数器中记录的当前行被刷新的 次数判断。如果是,在步骤S509,刷新过程就结束了 ;否则,在步骤S503,对一未刷新行,判 断是否有对该行所在存储体的读写操作,如果没有,在在步骤S504刷新该行,并且更该行 的刷新计数器的刷新次数。在步骤S505,更新组刷新时间和刷新行数,组刷新时间可以使用 当前时间减去初始时间获得,刷新行数为从该存储体组开始刷新到当前的总刷新行数。然 后在步骤S508,判断组刷新时间是否已经到了确定的给该存储体组的可用保持时间阈值, 如果已经到了确定的给该存储体组的可用保持时间阈值,就在步骤S509结束该流程,否 则,回到步骤S502,继续判断是否所有行都已经被刷新。在步骤S503,如果判断存在对该行 所在存储体的读写操作,在步骤S506,判断对于当前行,是进行刷新操作还是访问操作?该 判断可以根据确定的给该存储体组的可用保持时间阈值,组刷新时间,以及已经刷新的存 储体行数来进行,或者是类似的变体来进行。对于该存储体组,如果还有足够的时间用于刷 新,也就是说,未刷新行的行数乘以每行的刷新时间加上组刷新时间还没有达到确定的给 该存储体组的可用保持时间阈值,可以先不刷新该行,使该行所在的存储体可以继续访问 操作,就选择访问操作,本实施例的访问操作中,要在步骤S507刷新其它存储体的一行,这 样就不会有冲突了。可以使用不同的策略选择其他的存储体以及其它的行。例如,均衡的 分配策略,即选择存储体组中被刷新行数最少的那个存储体为本次的刷新存储体。然后,回 到步骤S505,更新组刷新时间和刷新行数,继续进行步骤S508的判断,或者返回步骤S502 的判断(图中未示出),直至所有行都被刷新。在本实施例中,由于对刷新存储体的灵活选 择,效率更高,并且,很可能在远远小于确定的给该存储体组的可用保持时间阈值的时间内 就完成存储体组的刷新。本发明图4和图5的具体方法中,还可以进行任意的组合,例如,图5中的方法可 以不使用计数器,而采用图4的循环方法等,所有的组合都在本发明的保护范围之内。表1示出了本发明提出的方法与美国专利申请2005/006954387B2的存储体连续 访问时间的比较,表1中采用的参数为=DRAM的全部存储体的总保持时间为36us,DRAM包 含M个存储体,每个存储体具有256个行,每个时钟周期为5ns。由表1可见,本发明提出 的方法大大提高了存储体的连续访问时间。表1本发明提出的方法与美国专利申请2005/006954387B2的存储体连续访问时 间的比较(单位ns)
8
权利要求
1.一种DRAM刷新的方法,包括,将DRAM中的全部存储体分为多个存储体组,每个组中有η个存储体,其中,η为大于等 于1的整数;为每个存储体组确定可用保持时间阈值;对每个存储体组的存储体的每个存储体行进行刷新,其中,对一个存储体组的一个存 储体行进行刷新包括判断对该存储体行的刷新操作和对该存储体行所在的存储体的访问操作是否冲突; 如果冲突,判断对于当前存储体行,是进行刷新操作还是访问操作; 如果判断结果为进行访问操作,则继续访问操作。
2.根据权利要求1所述的方法,其中如果判断结果为刷新操作,则刷新该存储体行。
3.根据权利要求2所述的方法,其中所述判断对于当前存储体行,是刷新操作还是访 问操作包括如果所述给该存储体组的可用保持时间阈值与组刷新时间的差,与该存储体 组的未刷新行需要的全部刷新时间之间的差小于设定阈值,则进行刷新操作,其中组刷新 时间为存储体组中从开始刷新到当前刷新的时间差。
4.根据权利要求1-3之一所述的方法,其中继续访问操作包括 保持对该存储体行所在的存储体的访问操作,不对该存储体行刷新。
5.根据权利要求4所述的方法,其中继续访问操作还包括 对该一个存储体组的其它存储体上的存储体行进行刷新。
6.根据权利要求1-5之一所述的方法,其中如果判断不存在对该存储体行的刷新操作 和对该存储体行所在的存储体的访问操作之间的冲突,则刷新该存储体行。
7.根据权利要求2-6之一所述的方法,其中为每个存储体组确定的可用保持时间阈值 为DRAM总保持时间/ (M/n+k),其中,DRAM包含M个存储体,分为Μ/η个存储体组,k为大于 等于1的整数。
8.一种DRAM刷新的系统,包括全局刷新顺序控制器,用于将DRAM中的全部存储体分为多个存储体组,每个组中有η 个存储体,其中,η为大于等于1的整数,为每个存储体组确定可用保持时间阈值,并且控制 刷新子单元顺序控制器对每个存储体组的每个存储体行进行刷新;刷新子单元顺序控制器,用于对每个存储体组的存储体的每个存储体行进行刷新,其 中对一个存储体组的一个存储体行进行刷新时,首先判断对该存储体行的刷新操作和对该 存储体行所在的存储体的访问操作是否冲突;如果冲突,判断对于当前存储体行,是进行刷 新操作还是访问操作;如果判断结果为进行访问操作,则继续访问操作。
9.根据权利要求8所述的系统,其中如果所述刷新子单元顺序控制器判断结果为刷新 操作,则刷新该存储体行。
10.根据权利要求9所述的系统,其中所述刷新子单元顺序控制器判断对于当前存储 体行,是刷新操作还是访问操作包括如果所述给该存储体组的可用保持时间阈值与组刷 新时间的差,与该存储体组的未刷新行需要的全部刷新时间之间的差小于设定阈值,则进 行刷新操作,其中组刷新时间为存储体组中从开始刷新到当前刷新的时间差。
11.根据权利要求8-10之一所述的系统,其中所述刷新子单元顺序控制器的继续访问 操作被配置成保持对该存储体行所在的存储体的访问操作,不对该存储体行刷新。
12.根据权利要求11所述的系统,其中所述刷新子单元顺序控制器被进一步配置成 对该一个存储体组的其它存储体上的存储体行进行刷新。
13.根据权利要求9-12之一所述的系统,其中所述刷新子单元顺序控制器被配置成 如果判断不存在对该存储体行的刷新操作和对该存储体行所在的存储体的访问操作之间 的冲突,则刷新该存储体行。
14.根据权利要求9-13之一所述的系统,其中为每个存储体组确定的可用保持时间阈 值为(DRAM总保持时间/ (M/n+k),其中,DRAM包含M个存储体,分为Μ/η个存储体组,k为 大于等于1的整数。
全文摘要
本发明公开了一种DRAM刷新的方法和系统,方法包括将DRAM中的全部存储体分为多个存储体组,每个组中有n个存储体,其中,n为大于等于1的整数;为每个存储体组确定可用保持时间阈值;对每个存储体组的存储体的每个存储体行进行刷新,其中,对一个存储体组的一个存储体行进行刷新包括判断对该存储体行的刷新操作和对该存储体行所在的存储体的访问操作是否冲突;如果冲突,判断对于当前存储体行,是进行刷新操作还是访问操作;如果判断结果为进行访问操作,则继续访问操作。该方法比现有的刷新方法具有几十倍的连续访问能力,因此也提高了动态随机访问存储器的访问性能。
文档编号G11C11/406GK102081964SQ200910225879
公开日2011年6月1日 申请日期2009年11月30日 优先权日2009年11月30日
发明者孙旭光, 张凯, 李厚刚, 王宏伟 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1