专利名称:用于嵌入式dram的刷新控制器及刷新控制方法
技术领域:
本发明涉及DRAM刷新控制,具体地,涉及用于嵌入式DRAM的刷 新控制器及刷新控制方法。
背景纟支术
相比于传统的外接式动态随机存取存储器(dynamic random access memory, DRAM),嵌入式DRAM (embedded DRAM, eDRAM)具有 更宽的带宽,并能够降低耗电量和芯片的引脚数目。在65nm—代技术中, 嵌入式DRAM已经可以具有超过500MHz的性能。但是,和传统的DRAM 一样,为了保持嵌入式DRAM中存储的数据,必须要周期性对各个存储 单元进行刷新。刷新结构的滞后可能会限制嵌入式DRAM系统性能的进 一步发展。
和传统的DRAM —样,嵌入式DRAM的同时刷新(concurrent refresh, CCR)模式能够允许刷新操作与读/写操作同时进行。但是,嵌入式DRAM 的CCR刷新操作的目标存储库(memory bank)必须不同于当前正在进 行读/写操作的存储库,也就是,不能够同时对同一存储库执行刷新操作和 读/写操作。在嵌入式DRAM的CCR刷新中,存在多种刷新方式。单倍 CCR是指在一个刷新周期内,只对一个存储库进行刷新,而双倍CCR意 味着,在一个刷新周期内,对两个存储库进行刷新,类似地,四倍CCR 意味着每次刷新四个存储库。此外,嵌入式DRAM可以将每个操作在多 个时钟周期之内完成,以支持更高的工作频率。并且,除了一个时钟周期 完成一个操作的单流水级操作之外,嵌入式DRAM还支持多流水级的操 作方式。2流水级操作是指,刷新、读、写操作中的每一操作都在两个时钟周期之内完成,4流水级操作是指,每一操作都在四个时钟周期之内完 成。
为了支持各种方式下的CCR刷新,现有4支术提出了多种刷新方式。 例如,美国专利US. 6195303提出一种用于DRAM的基于时钟的刷新机制。 然而,但是该机制不能应用于嵌入式DRAM。美国专利US. 6393534提出 一种用于避免同时请求中存储器沖突的规划电路,然而该规划电路仅应用 于RDRAM,不能应用于嵌入式DRAM,并且非常复杂,难以实现和综合 (synthesis)。美国专利US 6967885提出一种嵌入式DRAM,具有分布 的行地址计数器的同时刷新模式。该刷新模式在65nm技术中可以达到 lGHz的频率。该4支术是通过在嵌入式DRAM内部添加行地址计数器而实 现的,是对嵌入式DRAM本身进行的改进。本发明在该专利的基础上, 通过在嵌入式DRAM外部添加刷新控制器来控制CCR刷新。
发明内容
本发明的目的是对嵌入式DRAM提供一种灵活的刷新控制器,以在 各种刷新方式中控制刷新的进行,消除或避免存储库的沖突。
为此,根据本发明的第一方面,提供一种用于嵌入式DRAM的刷新 控制器,被配置为接收外部存取信号,产生刷新使能信号REFN、刷 新地址信号CRA和冲突信号,并将该刷新使能信号REFN和刷新地址 信号CRA传送给所述嵌入式DRAM,所述嵌入式DRAM包括多个 存储库组,所述控制器包括状态控制模块,被配置为根据刷新 间隔和时钟周期产生所述刷新使能信号REFN和所述最后刷新信号 last—ccr;刷新搜索模块,被配置为在所述多个存储库组中搜索至 少一个该刷新间隔内待刷新的存储库组,并根据所述外部存取信 号和搜索到的存储库组产生所述刷新地址信号CRA;记分板模块, 被配置为根据所述刷新地址信号CRA和外部存取信号记录所述多 个存储库组的每一个的状态;冲突探测模块,被配置为根据所述 外部存取信号、最后刷新信号last_ccr和所述每个存储库的状态产生冲突信号。
根据本发明的第二方面,提供一种用于嵌入式DRAM的刷新控制方 法,所述嵌入式DRAM包括多个存储库组,所述方法包括接收外部存 取信号;在每一刷新间隔内,根据时钟周期产生刷新使能信号REFN和最 后刷新信号last一ccr;在所述多个存储库组中搜索至少一个该刷新间隔内待 刷新的存储库组,并根据外部存取信号和搜索到的存储库组产生刷新地址 信号CRA;根据所述刷新地址信号CRA和外部存取信号记录所述多个存 储库组的每一个的状态;根据所述外部存取信号、最后刷新信号last_CCr 和所述每个存储库的状态产生沖突信号,并将该刷新使能信号REFN和刷 新地址信号CRA传送给所述嵌入式DRAM。
根据本发明的刷新控制器和控制方法,能够适用于单倍、双倍、四倍 CCR以及各种流水级操作方式的组合,具有极大的灵活性和可配置性。针 对各种刷新方式,本发明的控制器和方法都能够进行简单而高效的刷新控 制,避免存取冲突和刷新冲突。
以下结合附图描述本发明的实施例,图中
图l是根据本发明一个实施例的刷新控制器的体系结构图2示出状态控制模块12的工作流程;
图3示出刷新搜索模块13的示例结构;
图4示出记分板模块14中任一记分板X的工作流程;
图5示出冲突探测模块15的工作流程;
图6是
图1中刷新控制器的刷新工作流程;以及
图7示出图6中刷新流程的时序图。
具体实施例方式
以下参照附图,结合具体的实施例说明本发明的实现方式。
图l是根据本发明一个实施例的刷新控制器的体系结构图。图1的刷新控制器总体由数字100表示。该控制器100与嵌入式DRAM相连,被 配置为从外部接收针对存储库bai的存取信号,产生刷新使能信号REFN, 刷新地址信号CRA和沖突信号。其中产生的刷新使能信号REFN和刷新 地址信号CRA被传送给嵌入式DRAM,通过这两个信号来实现对嵌入式 DRAM的刷新控制。沖突信号被返回给存取请求发起者,以告知其沖突的 发生。上述的嵌入式DRAM中包括多个存储库(memory bank)。根据嵌 入式DRAM的不同配置和刷新模式,这些存储库被分为多个存储库组。 例如,对于单倍CCR模式,每个存储库组就对应一个存储库;对于双倍 CCR模式,由于每个刷新周期要刷新两个存储库,因此每个存储库组中包 含两个存储库。对于四倍CCR模式,每个存储库组可包括四个存储库。
更具体地,外部存取信号bai可以是读请求信号或者写请求信号,并 且该信号指示要存取的存储库的地址。刷新使能信号REFN具有两个状态, 用于指示嵌入式DRAM目前A/否处于刷新状态之中。刷新地址信号CRA 指示要刷新的存储库组的地址。REFN信号与CRA信号结合在一起,就 可以指示嵌入式DRAM是否在刷新,以及刷新哪一个存储库组的信息。
为了产生和处理上述的信号,如图所示,控制器100包括状态控制模 块12,刷新搜索模块13,记分板模块14以及冲突探测模块15。
状态控制模块12用于监控刷新间隔和时钟周期,由此产生刷新使能信 号REFN和最后刷新信号last_ccr。刷新搜索模块13用于在多个存储库组 中搜索待刷新的存储库组,并根据外部存取信号bai和搜索到的存储库组 产生刷新地址信号CRA。记分板模块14用于根据刷新地址信号CRA和外 部存取信号bai记录每个存储库组的状态。冲突探测模块15用于根据外部 存取信号bai、最后刷新信号last一ccr和每个存储库的状态产生冲突信号。
下面结合具体的刷新操作的例子说明控制器100中各个模块的工作流程。
在一个示例中,假定对于65nm工艺下的Cu65型嵌入式DRAM,各 个存储单元的数据保持时间为tREF = 40,960ns。系统的时钟周期为 tCK=3ns。该嵌入式DRAM中存储库的数目为N_BANKS=8,单倍CCR,从而存储库组的数目N—BG也等于8,每个存储库中的行数M-256。为 了保证每个存储单元中的数据不会丟失,就要保证每个存储库的每一行在 保持时间tREF之内被刷新一次,也就是,对于每一个存储库,相邻的刷 新操作之间的平均刷新间隔应该不超过tREF/tCK/M个时钟。然而,存储 库并不是每次按照同一顺序进行刷新的,因此,存在这样一种可能,某存 储库在一个刷新间隔内第一个^^,J新,而在下一刷新间隔之内最后一个被 刷新。为了保证在这种最恶劣情况下的存储库也能按时被刷新,可以将刷 新间隔设定为tREF/tCK/M-N一BG个时钟。也就是,上述例子中,刷新间 隔的时钟数N—RFC=tREF/tCK/M-N—BG=45 。本领域技术人员可以理解, 这并不是唯一的i殳定刷新间隔的方式。可以设定更短的刷新间隔以保iiM!" 储单元的及时刷新。
现在参照图2,以刷新间隔为N—RFC为例,说明状态控制模块12的 工作流程。总体来说,状态控制模块12基于时序来产生刷新使能信号REFN 和最后刷新信号laSt_ccr,使得在每个刷新间隔的一开始,就开始启动对嵌 入式DRAM中存储库组的刷新,并且每一个时钟周期开始启动一组存储 库的刷新,以确保尽快完成刷新操作。其中,REFN信号具有两个状态, 笫一状态和第二状态,这里假设REFN的第一状态(0)表示目前嵌入式 DRAM处于正在刷新的状态,REFN为第二状态(1)表示嵌入式DRAM 没有处于刷新状态。las^ccr信号也具有两个状态,这里假i殳last—ccr的第 一状态(0)表示目前有多于一个存储库组有待刷新;last—ccr的第二状态 (1)表示当前刷新周期内只剩最后一个存储库组有待刷新。具体地一状态 和第二状态为0或者为1和具体电路实现有关,本发明以下内容都基于上 述假设。
如图2所示,首先在步骤20中,将信号REFN和last一ccr都设置为第 一状态。这是一个新的刷新间隔开始时的初始设定,因为刷新间隔一开始, 就要开始启动存储库的刷新,并且目前有多于一个存储库有待刷新。除此 之外,在步骤20中,还设置一个计数器LRFC,用于对时钟周期进行计数。 在步骤20中,也将iRFC设定为O,表明开始一个新的刷新间隔。接着,在步骤21,随着时钟周期的增加,i一RFC增加l。 然后,在步骤22,判断i—RFC是否等于刷新间隔的时钟数N—RFC。 如果二者相等,意味着,这一刷新间隔已经结束,于是回到步骤20,开始 下一新的刷新间隔。如果二者不相等,意味着,这一刷新间隔还没有结束, 前进至步骤23。
在步骤23,判断i一RFC与嵌入式DRAM中存储库组的数目N一BG的 关系。其中,对于单倍CCR,存储库组数目N—BG与存储库数目N一BANKS 相等;对于双倍CCR,每一存储库组包含两个存储库,N—BG=N_BANKS/2; 对于四倍CCR, N—BG=N—BANKS/4。由于状态控制模块12每一时钟周期 开始启动对一个存储库组的刷新,因此,如果i一RFC大于或等于N一BG, 就表明已经完成了对所有存储库组的刷新,不再需要继续启动刷新,因此, 在步骤24中将REFN设定为第二状态,last—ccr仍然为第一状态,并回到 步骤21继续进行时钟计数,直至该刷新间隔结束。如果i—RFC小于N一BG, 则前进至步骤25。
在步骤25,判断i—RFC与N一BG-1是否相等。如果两者相等,则意味 着,刷新还没有完成,并且目前只剩最后一个存储库组有待刷新,因此, 在步骤26中将last一ccr设定为第二状态,REFN信号仍然为第一状态。如 果两者不相等,则在步骤27中将REFN, last一ccr都设为第一状态。步骤 26, 27之后,都回到步骤21进行时钟计数,直至该刷新间隔结束。
根据图2的流程图,状态控制模块12基于时序产生刷新使能信号 REFN和最后刷新信号last—ccr,并将信号REFN传送^:入式DRAM, 将信号last—ccr传送给刷新搜索模块13和沖突探测模块14。
刷新搜索模块13接收外部存取信号bai和最后刷新信号last一ccr,基 于双重搜索模式搜索出待刷新的存储库组,并产生刷新地址信号CRA。图 3示出刷新搜索才莫块13的示例结构。
如图3所示,刷新搜索模块13包括第一搜索模块31,第二搜索模块 32,比较器33和复用器34。在一个具体的实施例中,第一搜索模块31为 前向搜索模块,第二搜索模块32为后向搜索模块,它们都连接到记分板模块15,分别从前向后和从后向前搜索出待刷新的存储库组X和Y,也就是 进行双向搜索。如果只有一个存储库组有待刷新,那么X-Y。
双向搜索可按照下述方式实现。前向搜索模块将其搜索的存储库组序 号初始设定为X=0,后向搜索模块将其搜索的存储库组序号初始设定为 Y=N_BG-1。在以后的每一时钟周期,判断上一周期刷新的存储库组是选 自哪一搜索才莫块,如果选自前向搜索模块,则令X-X+1, Y不变;如果选 自后向搜索模块,则令Y-Y-1, X不变。因为X和Y只向同一方向增加或 减少,因此这样前后逼近的方式可以有序搜索待刷新的存储库组,保证每 一存储库组在一个刷新间隔之内只被刷新一次。
可以理解,第 一搜索模块和第二搜索模块可以通过其他搜索算法实现 双重搜索,只要能够有序搜索出待刷新的存储库组就可以。例如,第一搜 索模块搜索序号为奇数的存储库组,第二搜索模块搜索序号为偶数的存储 库组。或者以如下方式实现第一搜索模块将其搜索的存储库组序号初始 设定为X-l,第二搜索模块将其搜索的存储库组初始序号设定为Y = 0, 在以后的每一时钟周期,令X-X + 1,并判断上一周期刷新的存储库组选 自哪一搜索模块。若选自第一搜索模块,则Y不变,则选自第二搜索模块, 则Y = X - 1,即Y等于上一周期的X,也就^1刷新过程中漏掉的存储库組。 本领域技术人员可以根据需要采用不同的算法来实现这样的双重搜索过 程。
第一搜索模块31和第二搜索模块32分别搜索出待刷新的存储库组X, Y之后,这两个存储库组X, Y被送往一个多路复用器34,同时,存储库 组X还被传送至一个比较器33。比较器33对外部存取信号bai和存储库 组X进行比较,产生比较信号,并将该比较信号输出到复用器34作为其 控制信号。具体地,比较器33判断信号bai指示的存储库地址是否属于存 储库组X,如果不属于,则产生第一状态的比较/ft号。该比较信号控制复 用器34从X和Y中选择输出X。如果bai指示的存储库地址属于存储库 组X,则比较33产生第二状态的比较信号,该信号控制复用器34从X和 Y中选择Y作为输出。从复用器34输出的信号(X或Y)就作为下一时钟周期将要进行刷新的存储库组的地址信号CRA。该刷新地址信号CRA 被输出给嵌入式DRAM以指示其进行刷新,同时,该信号还传送给记分 板模块14和冲突探测模块15。
记分板模块14用于记录各个存储库组的状态。在一个实施例中,记分 板模块14包括记分板0,记分板1,…,记分板N—BG-1,也就是,每一记分板 对应于一个存储库组,记录该存储库组的状态。在一个例子中,每一记分 板由一个计数器实现。当计数器X的计数为0时,表明对应的存储库组X 处于空闲状态;当计数器X的计数不为0时,表明对应的存储库组X正在 进行某种IHt。
图4示出记分板模块14中任一记分板X的工作流程。首先,在刷新 间隔的开始,记分板X的计数score[X被设为0,如步骤41所示。然后在 步骤42,判断是否要刷新存储库组X,或者是否将要对其进行存取。这个 判断的步骤可以通过将存储库组X与外部存取信号bai以及刷新地址信号 CRA进行比对来执行。如果bai指示的地址属于存储库组X,则表明将要 对其进行存取。如果CRA指示的地址为存储库组X,则表明将要对其进 行刷新。
通过这样的比对,如果判断的结果是将要刷新或者存取存储库组X, 那么就执行步骤43,将记分板X的计数score[X设定为S-l ,其中S为流 水级数目。也就是说,对于2流水级操作,S-2,score[X就被设定为1,对 于4流水级操作,S-4, score[X就被设定为3。之后回到步骤42,在下 一时钟周期继续进^f于判断。
如果步骤42中判断的结果是下一时钟不会对存储库组X进行刷新或 存取,那么就前进至步骤44,判断scoreX是否为0。如果score[X为0, 则执行步骤45,保持score[X的当前值,然后回到步骤42,在下一时钟周 期继续进"ff判断。如果score [X不为0,则在步骤46将score[X的值减1, 即,score[X-score[X]-l。之后回到步骤42,在下一时钟周期继续进行判 断。
以上的流程意味着,对于将要开始刷新操作或读取操作的存储库组,将其对应的记分板计数设定为s-i,对于当前不为o的记分板计数,每个 时钟将其值减l。这是因为,对于s流水级操作来说,每个操作会在s个
时钟周期内完成。当某个存储库组开始进行操作时,将其对应的记分板计
数设为S-l就指示出,这个记分板对应的存储库组开始ii^操作状态。之 后,对于非0的记分板计数,每个周期将其减1。这就保证,每个存储库 组从开始i^操作状态(score[Xl=S-l)时起,需要经过S个时钟周期才 会变回空闲状态(score[X=0)。在这S个时钟周期之内,对应的存储库 一直处于操作状态。对于单流水级操作,即S-1来说,记分板计数一直保 持为0,相当于记分板不发挥作用。
根据以上描述的记分板模块14所记录的存储库组的状态,以及外部存 取信号的目标存储库bai、刷新地址信号CRA,沖突探测模块15可以据此 探测是否存在沖突,并产生沖突信号。图5示出冲突探测模块15的工作流 程。
如图5所示,首先在步骤50,冲突探测模块15接收到外部存取信号, 要求对存储库bai进行读/写操作。接着在步骤51,判断存储库bai所对应 的记分板的计数是否为0。如果该计数不为0,则意味着,该存储库的上一 操作还没有执行完毕,目前处于操作状态,不能被访问,因此要执行步骤 52,产生冲突信号,也就是,将conflict设为l。如果该计数为O,则说明, 该存储库当前处于空闲状态,有可能4皮访问,因此,进入步骤53,进行进 一步判断。
在步骤53,判断last—ccr信号是否为第二状态。如上所述,last—ccr 信号为第一状态时,说明还有多于一个存储库有待刷新。在这样的情况下, 总可以找到一个不与存取信号沖突的库进行刷新。因此,如果判断last一ccr 为第一状态,则执行步骤54,令conflict为0,也就是认为没有出现冲突, 确认可以对存储库bai进行存取。而在last—ccr为第二状态时,说明当前 的刷新间隔中,只有一个存储库组可供刷新。此时,有可能出现沖突,因 此ii^步骤55,继续进行判断。
在步骤55,判断要存取的存储库bai是否属于要刷新的存储库组,即信号CRA所指示的存储库组。如果不属于,那么没有出现冲突,于是同 样执行步骤54。如果bai属于CRA指示的存储库组,同时,由于last一ccr 位第二状态,这一存储库组是唯一有待刷新的存储库组,这时就出现了存 取与刷新的冲突。这种情况下,执行步骤56,即产生冲突信号。
在单流水级操作中,如上所述,每个记分板的计数一直为0。因此, 步骤51中的判断结果必然是肯定的。也就是说,在单流水级操作中,由于 每一操作都是在一个时钟周期之内就完成了,因此,不会出现因为要访问 的存储库仍然处于上一操作状态而引起的冲突。因此,对于单流水级操作, 可以省略掉步骤51和52,直接进入步骤53开始判断。
在CCR刷新中,为了保持存储单元中的数据,刷新操作要优先于存 取操作来执行。因此,在产生沖突信号,即conflict = 1时,冲突信号被返 回给存取请求发起者,通知该发起者将该存取请求延迟,直至不再出现冲 突。
如上所述描述了状态控制模块12,刷新搜索模块13,记分板模块14 和冲突探测模块15各自的工作流程。现在参照图6描述刷新控制器体系的 刷新工作流程。
图6是图1中刷新控制器的刷新工作流程。如图6所示, 一开始,在 步骤60,刷新控制器体系处于空驶状态。接下来要通过判断刷新使能信号 REFN和最后刷新信号last一ccr来确定要实施的步骤。如上所述,信号 REFN和last一ccr都是由状态控制模块12产生的,具体产生过程如图2中 所示。对于产生的信号REFN,在步骤61中判断其是否为1。如果REFN 为第二状态,表明嵌入式D RAM没有处于刷新状态,因此,刷新控制器 不必对其进行刷新控制,只需返回到步骤60,保持在空驶状态即可。如果 REFN为第一状态,表明嵌入式DRAM已经i^Aj'J新状态,刷新控制器必 须对其进行刷新控制。因此,控制器^步骤62继续进行判断。
在步骤62,刷新控制器判断最后刷新信号last一ccr是否为第二状态。 如果last—ccr不为第二状态,表明当前刷新间隔中还有多个存储库组有待 刷新,于是控制器i^V步骤63,利用双重搜索在存储库组中搜索出两个待刷新的存储库组X和Y。然后在步骤64,判断外部存取信号指示的存储库 bai是否属于存储库组X。如果bai属于存储库组X,则执行步骤65,将 下一个刷新的存储库组设定为Y,也就是,使得刷新地址信号CRA指示 存储库组Y。同时,将存储库组Y对应的记分板的计数score[Y]设定为S-l, 其中S为流水级数目。如果bai不属于存储库组X,则执行步骤66,将下 一个刷新的存储库组设定为X,也就是,使得刷新地址信号CRA指示存 储库组X。同时,将存储库组X对应的记分板的计数scoreX]设定为S-l。 其中,从步骤63至步骤66中的搜索和判断由刷新搜索模块13来执行。将 记分板的计数设为S - 1的意义参照图4中记分板的工作流程。
如果在步骤62中判断的结果为last一ccr为第二状态,就意味着在当前 刷新间隔内只有一个存储库组有待刷新。这时,控制器进入步骤67,执行 双重搜索,搜索出唯一的一个待刷新存储库组。接着在步骤68中,将该存 储库组设定为下一个刷新的存储库组,也就是,使得刷新地址信号CRA 指示该存储库组。同时,将该存储库组对应的记分板计数设定为S-l。类 似的,步骤67, 68中的搜索由刷新搜索模块13来执行。
在执行上述流程的同时,沖突探测模块15根据外部存取信号bai,刷 新地址信号CRA以及记分板模块14记录的状态,来判断是否出现冲突, 判断方法参照图5。在出现冲突的时候,冲突探测模块15以沖突信号的方 式通知存取请求发起者,如此来延迟该存取请求,直至不再出现冲突。因 此,从刷新流程的角度,在上述步骤67中搜索到唯一待刷新的存储库組之 后,就可以直接对其进行刷新了。刷新的时序不会受到存取沖突的影响, 因为冲突探测模块15已经通过延i^"取请求的方式避开了这种沖突。
图7示出刷新流程的时序图。从图7中可以看到刷新使能信号REFN, 刷新地址信号CRA和最后刷新信号last一ccr随时钟的改变。
具体地,如图7所示,时间被划分为多个刷新间隔,每个刷新间隔包 含N—RFC个时钟。刷新控制器通过信号REFN和CRA,控制嵌入式DRAM 在每个刷新间隔一开始就启动对存储库组的刷新,并尽快完成刷新操作。 因此,在每个刷新间隔的第0个时钟到第N—BG-1个时钟,每个时钟启动对一个存储库组的刷新。在这期间,信号REFN为低电平,即REFN-0 的状态(第一状态),以指示^式DRAM处于刷新状态。
在REFN处于低电平的期间,刷新搜索模块通过双向搜索,不断搜索 出待刷新的存储库组,来作为信号CRA指向的刷新地址。因此,可以看 到,CRA信号指向的存储库组的号码不断变化,直到第N一BG个时钟,所 有存储库组都被刷新。可以看到,在第一个刷新间隔,0号存储库组第一 个被刷新,而在第二个刷新间隔,0号存储库组最后一个被刷新。这就是 以上描述过的可能出现的最恶劣情况。正是因为这种情况,刷新间隔的时 钟数才需要在原来的基础上减去存储库组的数目。
最后刷新信号last一ccr在整个刷新间隔中,只在一个时钟周期,也就 是第N一BG个时钟周期处于高电平状态,即last_CCr=l的状态(第二状态)。 这个状态表明在当前的刷新间隔之内,只有一个存储库组还没有被刷新。
从图5中的沖突探测流程可以看到,仅仅在last_ccr=l (第二状态), 并且要存取的存储库bai属于下一刷新存储库组CRA时,才会出现存取与 刷新的冲突。而从图7的时序图中明显可以看到,last_ccr=l (第二状态) 出现的概率为1/N一RFC。因此,如果每个时钟顺序依次地访问嵌入式 DRAM中的存储库,出现存取刷新冲突的概率最大为1/N_RFC。
在以上描述的实施例中,刷新控制器及其模块、单元主要由集成电路 或门阵列、诸如晶体管等的半导体、或者诸如可编程门阵列、可编程逻辑 设备等的硬件电路实现。并且,可以理解,本发明的刷新控制器和方法可 以适用于单流水级操作、2流水级操作、4流水级操作以及单倍CCR、双 倍CCR、四倍CCR的各种组合操作方式,具有极大的灵活性和可配置性。
以上结合具体实施例描述了本发明的实施方式。但是,本发明并不限 于以上具体描述的实施例。本领域普通技术人员能够理解,可以对本发明 进行多种变换、替换和修改而不偏离本发明的精神和范围;本发明的保护 范围由所附权利要求来限定。
权利要求
1.一种用于嵌入式DRAM的刷新控制器,被配置为接收外部存取信号,产生刷新使能信号REFN、刷新地址信号CRA和冲突信号,并将该刷新使能信号REFN和刷新地址信号CRA传送给所述嵌入式DRAM,所述嵌入式DRAM包括多个存储库组,所述控制器包括状态控制模块,被配置为根据刷新间隔和时钟周期产生所述刷新使能信号REFN和所述最后刷新信号last_ccr;刷新搜索模块,被配置为在所述多个存储库组中搜索至少一个该刷新间隔内待刷新的存储库组,并根据所述外部存取信号和搜索到的存储库组产生所述刷新地址信号CRA;记分板模块,被配置为根据所述刷新地址信号CRA和外部存取信号记录所述多个存储库组的每一个的状态;冲突探测模块,被配置为根据所述外部存取信号、最后刷新信号last_ccr和所述每个存储库的状态产生冲突信号。
2. 如权利要求1的刷新控制器,其中,所述状态控制模块被 配置为,在每一刷新间隔内对时钟周期进行计数,当该计数小于 所述存储库组的数目减1时,将所述刷新使能信号REFN设定为第 一状态,将所述最后刷新信号last一ccr设定为第一状态;当该计数等 于所述存储库组的数目减1时,将所述刷新使能信号REFN设定为 第一状态,将所述最后刷新信号last一ccr设定为第二状态;以及,当 该计数大于或等于存储库组的数目时,将所述刷新使能信号REFN 设定为第二状态,将所述最后刷新信号last一ccr设定为第 一 状态。
3. 如权利要求1或2的刷新控制器,其中,所述刷新搜索模 块包括第一搜索模块,被配置为在所述多个存储库组中搜索该刷新 间隔内待刷新的第 一存储库组;第二搜索模块,被配置为在所述多个存储库组中搜索该刷新间隔内待刷新的第二存储库组;比较器,被配置为将搜索出的第一存储库组与外部存取信号 相比较,产生比较信号;以及复用器,被配置为在所述比较信号的控制下,对第一存储库 组和第二存储库组进行复用,产生所述刷新地址信号CRA。
4. 如权利要求3的刷新控制器,其中,当所述最后刷新信号 last—ccr处于第二状态时,所述第一搜索模块和第二搜索模块搜索 出的第一存储库组和第二存储库组相同。
5. 如权利要求3的刷新控制器,其中所述第一搜索模块为前 向搜索模块,被配置为在所述多个存储库组中从前向后进行搜索; 所述第二搜索模块为后向搜索模块,被配置为在所述多个存储库 组中从后向前进行搜索。
6. 如权利要求3的刷新控制器,其中,所述复用器被配置为 当所述比较信号处于第一状态时,选择第一存储库组地址作为所 述刷新地址信号CRA;当比较信号处于第二状态时,选择第二存储 库组地址作为所述刷新地址信号CRA。
7. 如权利要求1的刷新控制器,其中,所述记分板模块包括 多个计数器,每一计数器对应于所述多个存储库组中的每一个组。
8. 如权利要求7的刷新控制器,其中,所述记分板模块被配 置为,将所述外部存取信号或所述刷新地址信号CRA指示的存储库 组所对应的计数器设定为第二状态。
9. 如权利要求1的刷新控制器,其中,所述沖突探测模块被 配置为,当所述最后刷新信号last一ccr处于第二状态并且外部存取信 号的目标存储库属于所述刷新地址信号CRA指示的存储库组时,产 生冲突信号。
10. 如权利要求9的刷新控制器,其中,所述沖突探测模块被 配置为,当外部存取信号指示的存储库组处于第二状态时,产生冲突信号。
11. 如权利要求1的刷新控制器,其中,所述多个存储库组的每一个包括l个、2个或者4个存储库。
12. —种用于嵌入式DRAM的刷新控制方法,所述嵌入式 DRAM包括多个存储库组,所述方法包括接收外部存取信号;在每一刷新间隔内,根据时钟周期产生刷新使能信号REFN和 最后刷新信号last一ccr;在所述多个存储库组中搜索至少 一个该刷新间隔内待刷新的 存储库组,并根据外部存取信号和搜索到的存储库组产生刷新地址 信号CRA;根据所述刷新地址信号CRA和外部存取信号记录所述多个存 储库组的每一个的状态;根据所述外部存取信号、最后刷新信号last一ccr和所述每个存 储库的状态产生冲突信号;并将该刷新使能信号REFN和刷新地址信号CRA传送给所述嵌 入式DRAM。
13. 如权利要求12的刷新控制方法,其中,所述产生刷新使 能信号REFN和最后刷新信号last—ccr的步骤包括在每一刷新间隔内对时钟周期进行计数,当该计数小于所述 存储库组的数目减一时,将刷新使能信号REFN设定为第一状态, 将最后刷新信号last—ccr设定为第一状态;当该计数等于所述存 储库组的数目减一时,将刷新使能信号REFN设定为第一状态, 将最后刷新信号last一ccr设定为第二状态;以及,当该计数大于 或等于存储库组的数目时,将刷新使能信号REFN设定为第二状 态,将最后刷新信号last一ccr设定为第一状态。
14. 如权利要求12的刷新控制方法,其中所述搜索存储库组, 并产生刷新地址信号CRA的步骤包括在所述多个存储库組中搜索该刷新间隔内待刷新的第 一存储库组和第二存储库组;将搜索出的第一存储库组与外部存取信号相比较,产生比较 信号;以及在所述比较信号的控斜下,对第 一存储库组和第二存储库组 进行复用,产生所述刷新地址信号CRA。
15. 如权利要求14的刷新控制方法,其中,当所述最后刷新信 号last一ccr处于第二状态时,所述第一搜索模块和第二搜索模块搜 索出的第 一存储库组和第二存储库组相同。
16. 如权利要求14的刷新控制方法,其中,搜索待刷新的第 一存储库和第二存储库组的步骤包括,在所述多个存储库组中分 别从前向后和从后向前进行搜索。
17. 如权利要求14的刷新控制方法,其中对第一存储库组和 第二存储库组进行复用的步骤包括当所述比较信号处于第一状态时,选择第一存储库组地址作为所述刷新地址信号CRA;当比较 信号处于第二状态时,选择第二存储库组地址作为所述刷新地址信 号CRA。
18. 如权利要求12的刷新控制方法,其中记录所述多个存储 库组的每一个的状态的步骤包括将刷新地址信号CRA或外部存取信号指示的存储库组所对 应的记分板设定为第二状态。
19. 如权利要求12的刷新控制方法,所述产生冲突信号的步 骤包括当所述最后刷新信号last_ccr处于第二状态并且外部存取信 号的目标存储库属于所述刷新地址信号CRA指示的存储库组时,产 生冲突信号。
20. 如权利要求12的刷新控制方法,所述产生冲突信号的步 骤包括当外部存取信号指示的存储库组处于第二状态时,产生 冲突信号。
全文摘要
一种用于嵌入式DRAM的刷新控制器,被配置为接收外部存取信号,产生刷新使能信号(REFN)、刷新地址信号(CRA)和冲突信号,所述嵌入式DRAM包括多个存储库组,所述控制器包括状态控制模块,根据刷新间隔和时钟周期产生刷新使能信号REFN和最后刷新信号last_ccr;刷新搜索模块,在所述多个存储库组中搜索至少一个该刷新间隔内待刷新的存储库组,并根据所述外部存取信号和搜索到的存储库组产生刷新地址信号CRA;记分板模块,根据所述刷新地址信号CRA和外部存取信号记录所述多个存储库组的每一个的状态;冲突探测模块,根据所述外部存取信号、最后刷新信号last_ccr和所述每个存储库的状态产生冲突信号。本发明还提供了相应的刷新控制方法。
文档编号G11C11/406GK101640065SQ200810128078
公开日2010年2月3日 申请日期2008年7月29日 优先权日2008年7月29日
发明者李宇飞, 浩 杨, 泳 陆 申请人:国际商业机器公司