存储器控制器及其控制方法

文档序号:6758863阅读:90来源:国知局
专利名称:存储器控制器及其控制方法
技术领域
本发明有关一种存储器控制器及其控制方法,且特别是有关一种存储器控制器中 先进先出缓冲器(first in first out, FIFO)的指标控制方法。
背景技术
一般来说,存储器控制器可连接至存储器模块,可将数据写入存储器模块或者由 存储器模块中读取数据。现今最普遍的存储器模块即为双倍数据速率(doubledata rate, 以下简称DDR)存储器模块。一般来说,当存储器控制器发出写入指令时,数据可从存储器控制器传送至于存 储器模块并储存。而当存储器控制器发出读取指令时,数据可从存储器模块传送至存储器 控制器,并进行后续处理。请参照图1,其所绘示为存储器控制器与存储器模块之间的连线示意图。存储器控 制器100与DDR存储器模块200之间的信号至少包括外部时脉CLKext、地址信号、指令信 号、数据串行信号DQO DQ7与数据触发(data strobe)信号DQS。其中,指令信号包括写 入致能信号WE ;地址信号包括存储器地址信号AO A13、列地址触发信号(row address strobe)RAS、行地址触发信号(column address strobe)CAS。再者,一个DDR交易(transaction)包括以下的步骤首先,存储器控制器100发 出指令信号以及地址信号,而DDR存储器模块200即可根据指令信号以及地址信号来获得 一指令,该指令可为一写入指令或者一读取指令。接着,DDR存储器模块200即根据指令来 准备储存或输出数据。当该指令为写入指令时,数据串行信号DQO DQ7与数据触发信号DQS是由存储 器控制器200所产生。因此,DDR存储器模块200根据存储器控制器100所产生的数据触发 信号DQS来拴锁(latch)数据串行信号DQO DQ7上的数据并且写入DDR存储器模块200 内对应的存储器地址内。从存储器模块200接收到读取指令到数据准备好可以输出的时间称为行地址触 发延迟时间(CAS latency)CL0而存储器控制器100于起始测试时(startup test)即可 得知DDR存储器模块200的行地址触发延迟时间CL,一般约为2个外部时脉CLKext周期 (CL = 2)。也就是说,当指令为读取指令时,DDR存储器模块200会在行地址触发延迟时间 CL后,才会驱动数据串行信号DQO DQ7。此时,存储器控制器100即可根据数据触发信号 DQS来拴锁数据串行信号DQO DQ7并获得相对应存储器地址内的数据。请参照图2,其所绘示为读取指令时的信号时序图。一般来说,DDR存储器模块200 于输出数据时,会产生数据触发信号DQS以及数据串行信号DQO DQ7,此时数据触发信号 DQS的频率与外部时脉CLKext相同;反之,DDR存储器模块200未输出数据之前,数据触发 信号DQS是位于高阻抗(high impedance)的第三状态(tri-state)。由图2可知,于时间TO时,由地址信号(Address signal)与指令信号 (Commandsignal)可获得存储器地址AO A13与读取指令(Read),而其它时间则是无运作(nooperation,N0P)。由于行地址触发延迟时间CL为2个外部时脉CLKext周期(CL = 2),因此,数据触发信号DQS于Tl时间由第三状态转变为低电平,并于T2时间至T4时间之 间产生高低电平变换,而于时间T4之后再次转变为第三状态。再者,经过了 2个外部时脉 CLKext周期的行地址触发延迟时间(CL = 2)后,于时间T2至T4的时间内,数据串行信号 DQO DQ7上依序产生DO、Dl、D2、D3的数据。因此,存储器控制器100即可根据数据触发 信号DQS的上升缘与下降缘来拴锁数据串行信号DQO DQ7的DO、Dl、D2、D3数据。一般 来说,存储器控制器100是将数据触发信号DQS延迟相位90度之后即可以拴锁数据串行信 号 DQO DQ7。请参照图3,其所绘示为现有的存储器控制器的示意图。存储器控制器100 包括一时脉产生器102、指令产生器104、写入指标(write pointer) 106、读取指标 (readpointer) 108、先进先出(first-in-first-out,FIFO)缓冲器 110、以及处理电路 112。一般来说,存储器控制器100中的内部时脉CLKin与外部时脉CLKext的频率相同 但是相位不同。因此,DDR存储器模块200输出的数据串行信号DQO DQ7的相位与内部 时脉CLKin的相位并不相同。也就是说,数据串行信号DQO DQ7与内部时脉CLKin不同 步(non-synchronous)0为了要解决存储器控制器110内外数据不同步的问题,于存储器控制器100内会 设置一先进先出缓冲器110。并且,数据串行信号DQO DQ7上的数据是根据数据触发信 号DQS写入先进先出缓冲器110,而存储器控制器100内的处理电路112则根据内部时脉 CLKin来读取先进先出缓冲器110内的数据。如图3所示,指令产生器104可根据外部时脉CLKext产生地址信号与指令信号。 而先进先出缓冲器110可根据数据串行信号DQO DQ7以及数据触发信号DQS将数据写入 先进先出缓冲器110。之后,处理电路112会根据内部时脉CLKin来产生读取信号Fetch至 先进先出缓冲器110,并将先进先出缓冲器110内的数据Data依序读出。为了能够有效地管理先进先出缓冲器110,存储器控制器100还包括一写入指标 106以及一读取指标108。写入指标106与读取指标108可视为一计数器,当DDR存储器模 块200写入一笔数据时,写入指标106会加1 ;同理,当处理电路112读取一笔数据时,读取 指标108也会加1。也就是说,写入指标106可根据数据触发信号DQS来进行计数;而读取 指标108可根据读取信号Fetch来计数。请参照图4A 图4F,其所绘示为先进先出缓冲器的动作示意图。以下范例是以 图3所示信号图为例举例来说,并且,先进先出缓冲器110有四层(layer),#00、#01、#10、 #11,每一层可储存一笔数据。再者,写入指标106与读取指标108皆为二位计数器,并且写 入指标106内的写入计数值与读取指标108内的读取计数值皆为“11”。请参照图4A,于时间T2(数据触发信号DQS上升缘)时,DO数据写入先进先出缓 冲器Iio的00层,此时写入指标Wptr加1使得写入计数值成为“00”,代表已有有效数据 (valid data)暂存于00层;再者,读取指标Rptr的读取计数值维持“ 11”,代表尚未有数据 被读取。请参照图4B,于时间T2’(数据触发信号DQS下降缘)时,Dl数据写入先进先出 缓冲器110的01层,此时写入指标Wptr加1使得写入计数值成为“01”,代表已有有效数据 暂存于01层;再者,读取指标Rptr的读取计数值维持“11”,代表尚未有数据被读取。当写入指标Wptr的写入计数值与读取指标Rptr的读取计数值差异超过一设定值,例如”2”时,处理电路112会开始读取先进先出缓冲器110内的数据。因此,如图4C所 示,于时间T3 (数据触发信号DQS上升缘)时,D2数据写入先进先出缓冲器110的10层, 此时写入指标Wptr加1使得写入计数值成为“10”,代表已有有效数据暂存于10层;再者, 当DO数据被读取之后读取指标Rptr加1使得读取计数值成为“00”,代表DO数据已经成为 无效数据(invalid data)。如图4D所示,于时间T3’(数据触发信号DQS下降缘)时,D3 数据输入先进先出缓冲器110的11层,此时写入指标Wptr加1使得写入计数值成为“11”, 代表已有有效数据暂存于11层;再者,当Dl数据被读取之后读取指标Rptr加1使得读取 计数值成为“01”,代表Dl数据为无效数据。于时间点Τ4之后,已没有任何数据输入先进先出缓冲器110,并且数据触发信号 DQS也不再动作,因此,写入指标Wptr的写入计数值会维持在“11”。再者,处理电路112必 须持续读取先进先出缓冲器110内的数据。如图4Ε所示,当D2数据被读取之后读取指标 Rptr加1使得读取计数值成为“ 10”,代表D2数据可视为无效数据。如图4F所示,当D3数 据被读取之后读取指标Rptr加1使得读取计数值成为“11”,代表D3数据可视为无效数据。同理,当存储器控制器100再次产生读取指令时,读取指标Rptr与写入指标Wptr 会再次以相同的动作原理来操作,因此不再赘述。由上述可知,先进先出缓冲器110可视为 一环缓冲器(ring buffer),而写入指标Wptr的写入计数值代表有效数据位置,而读取指 标Rptr的读取计数值代表无效数据的位置。由于存储器控制器100与DDR存储器模块200是焊接于电路板(未绘示)上,并 且利用电路板上的布线(layout trace)来达成信号连接。不可避免地,电路板上可能会产
生噪声。换句话说,当存储器控制器100未读取数据且数据触发信号DQS在第三状态时,如 果数据触发信号DQS受到噪声干扰而产生闪烁(glitch)时,将造成写入指标Wptr加1。然 而,并没有任何的有效数据输入先进先出缓冲器110。如此,将使得处理电路112接收到错 误的数据,严重的话将造成整个系统的死机。

发明内容
本发明的目的是提出一种存储器控制器及其控制方法,于有效数据即将写入先进 先出缓冲器之前,利用一指标校正单元将正确的数值更新于写入指标内。本发明提出一种存储器控制器,连接至一存储器模块,该存储器控制器包括一时 脉产生器,用以产生一内部时脉以及产生一外部时脉至该存储器模块;一指令产生器,用以 根据该外部时脉产生一读取指令至该存储器模块;一先进先出缓冲器,用以于该指令产生 器产生该读取指令后的一行地址触发延迟时间,根据该存储器模块产生的一数据触发信号 将该存储器模块产生的一数据串行信号中的数据写入该写入先进先出缓冲器;一处理电 路,用以根据该内部时脉进行运作并读取该先进先出缓冲器内的数据;一写入指标,用以根 据该数据触发信号来进行计数,并且该写入指标的计数值是代表该先进先出缓冲器内有效 数据的位置;一读取指标,用以根据处理电路读取该先进先出缓冲器内数据的次数来进行 计数,并且该读取的计数值是代表该先进先出缓冲器内无效数据的位置;以及,一指标校正 单元,连接至该指令产生器,用以于该读取指令产生后该存储器模块输出数据之前,控制该 写入指标内的数值相同于该读取指标内的数值。
本发明还提出一种存储器控制器的控制方法,该存储器控制器连接至一存储器 模块,并可利用一先进先出缓冲器接收该存储器模块输出的数据,一写入指标来代表该先 进先出缓冲器内有效数据的位置,及一读取指标来代表该先进先出缓冲器内无效数据的位 置,根据该存储器控制器的控制方法,于该存储器控制器产生一读取指令产生之后的一行 地址触发延迟时间之内,该写入指标内的数值是控制相同于该读取指标内的数值。


为了使能更进一步了解本发明特征及技术内容,请参阅以下有关本发明的详细说 明与附图,然而附图仅提供参考与说明,并非用来对本发明加以限制,其中图1所绘示为存储器控制器与存储器模块之间的连线示意图。图2所绘示为读取指令时信号示意图。图3所绘示为现有的存储器控制器的示意图。图4A 图4F所绘示为先进先出缓冲器的动作示意图。图5所绘示为本发明存储器控制器的示意图。图6所绘示为根据本发明的一实施例的存储器控制器的控制方法流程图。图7所绘示为根据本发明的一另实施例的存储器控制器的控制方法流程图。
具体实施例方式根据本发明的实施例,于存储器控制器内增加一指标校正单元,并于DDR存储器 模块即将输出有效数据至先进先出缓冲器之前,利用该指标校正单元将正确的数值更新于 写入指标。请参照图5,其所绘示为本发明存储器控制器的示意图。存储器控制器300包括一 时脉产生器302、指令产生器304、写入指标306、读取指标308、先进先出缓冲器310、以及处 理电路312、以及指标校正单元320。其中,时脉产生器302可产生一外部时脉CLKext至DDR存储器模块400,以及产生 一内部时脉CLKin至处理电路312使得处理电路312根据内部时脉CLKin来运作。指令产 生器304可根据外部时脉CLKext产生一读取指令至DDR存储器模块400。先进先出缓冲器 310根据DDR存储器模块400产生的数据触发信号DQS将数据串行信号DQO DQ7中的数 据写入先进先出缓冲器310,以及,先进先出缓冲器310根据处理电路312所产生的读取信 号Fetch来输出数据Data。写入指标306根据数据触发信号DQS来进行计数,并且其计数 值可代表先进先出缓冲器310内有效数据的位置。读取指标308根据读取信号Fetch来进 行计数,并且其计数值可代表先进先出缓冲器310内无效数据的位置。根据本发明的实施例,由于存储器控制器300已先行得知DDR存储器模块400的 行地址触发延迟时间CL。因此,指标校正单元320连接至指令产生器304,当指令产生器 304产生读取指令时,可输出一校正信号CHK至指标校正单元320,而指标校正单元320即 可根据行地址触发延迟时间CL并在有效数据输入之前适时的将读取指标308内的读取计 数值更新于写入指标306的写入计数值。由先前技术的说明可知,当处理电路312读取先前最后一笔数据后,写入指标306 与读取指标308内的的写入计数值与读取计数值会相同。因此,当下一个读取指令产生到
7有效数据写入先进先出缓冲器310之前,写入指标306与读取指标308内的写入计数值与 读取计数值也必须维持相同的数值。因此,本发明的指标校正单元320即利用上述特性来 更新写入指标306的写入计数值,亦即利用读取指标308内的读取计数值来更新写入指标 306写入计数值。因此可以确定DDR存储器模块400产生有效数据并写入先进先出缓冲器 310之前,写入指标306与读取指标308内的写入计数值与读取计数值相同。以行地址触发延迟时间CL等于2为例(CL = 2),当指令产生器304产生读取指令 后的2个外部时脉CLKext周期时间之内,就算数据触发信号DQS受到噪声干扰而产生闪烁 造成写入指标306改变写入计数值,然而此时读取指标308的读取计数值并不会受到影响。 因此,于有效数据输入先进先出缓冲器310之前,指标校正单元320会先行将正确的读取计 数值更新于写入指标306内的写入计数值。之后,当存储器模块400开始产生数据触发信号DQS与数据串行信号DQO DQ7 并将有效数据输入先进先出缓冲器310时,写入指标306内的写入计数值已经确认为正确 的数值。因此,写入指标306根据数据触发信号DQS来继续计数也可以进一步确定处理电 路312将不会接收到错误的数据而产生误动作。上述的实施例是利用指标校正单元304利用行地址触发延迟时间CL,于读取指令 产生后且有效数据输入先进先出存储器310之前,将读取指标308内的读取计数值更新于 写入指标306内。请参照图6,其所绘示为根据本发明一实施例的存储器控制器的控制方法流程图。 于存储器控制器开始运作时,获得一行地址触发延迟时间CL(步骤S10)。接着,当指令产 生器304发出一读取指令时(步骤S12),则于行地址触发延迟时间CL之内将读取指标308 内的读取计数值更新于写入指标306的写入计数值(步骤S14)。反之,当指令产生器304 未发出读取指令时(步骤S12),则继续等待指令产生器304发出读取指令。当然,于写入指 标306的写入计数值被更新之后,即可再次等待下一次的读取指令产生。因此,于行地址触发延迟时间CL之后,存储器模块400开始产生数据触发信号DQS 与数据串行信号DQO DQ7并将有效数据输入先进先出缓冲器310时,写入指标306内的 写入计数值已经确认为正确的数值。据此,写入指标306根据数据触发信号DQS来继续计 数并可进一步确定处理电路312将不会接收到错误的数据而产生误动作。然而,在此技术领域的技术人员也可以利用其它方式来达成相同的功效。请参照 图7,其所绘示为根据本发明另一实施例的存储器控制器的控制方法流程图。于存储器控制 器开始运作时,获得一行地址触发延迟时间CL (步骤S20)。接着,当指令产生器304发出一 读取指令时(步骤S22),则判断读取指标308内的读取计数值是否等于写入指标306的写 入计数值(步骤S24)。反之,当指令产生器304未发出读取指令时(步骤S12),则继续等 待指令产生器304发出读取指令。接着,当读取指标308内的读取计数值不等于写入指标306的写入计数值时(步 骤S24),于行地址触发延迟时间CL之内将读取指标308内的读取计数值更新于写入指标 306的写入计数值(步骤S26),并且于写入指标306的写入计数值被更新之后,即可再次等 待下一次的读取指令产生。接着,当读取指标308内的读取计数值等于写入指标306的写入计数值时(步骤 S24),则不需进行写入指标306的更新,直接等待下一次的读取指令产生。
也就是说,于读取指令产生后且有效数据输入先进先出存储器310之前,指标校 正单元304可比较读取指标308与写入指标306内的写入计数值与读取计数值。当写入计 数值与读取计数值相同时,指标校正单元304不更新写入指标306 ;反之,当写入计数值与 读取计数值不相同时,指标校正单元304利用正确的读取计数值来更新写入指标306的写 入计数值。因此,本发明提出一种存储器控制器及其控制方法,于有效数据即将写入先进先 出缓冲器之前,利用一指标校正单元将正确的读取计数值更新于写入指标内的写入计数 值,确保后续的处理电路不会读取到无效数据而造成系统的死机。综上所述,虽然本发明已以较佳实施例揭露如上,然而其并非用以限定本发明,任 何熟悉此技术者,在不脱离本发明之精神和范围内,当可作出各种等同的改变或替换,因此 本发明的保护范围当视后附的本申请权利要求范围所界定的为准。
权利要求
1.一种存储器控制器,连接至一存储器模块,该存储器控制器包括一时脉产生器,用以产生一内部时脉,以及产生一外部时脉至该存储器模块; 一指令产生器,用以根据该外部时脉产生一读取指令至该存储器模块; 一先进先出缓冲器,用以于该指令产生器产生该读取指令后的一行地址触发延迟时 间,根据该存储器模块产生的一数据触发信号将该存储器模块产生的一数据串行信号中的 数据写入该先进先出缓冲器;一处理电路,用以根据该内部时脉运作并读取该先进先出缓冲器内的数据; 一写入指标,用以根据该数据触发信号进行计数以产生一写入计数值,并且该写入计 数值是代表该先进先出缓冲器内有效数据的位置;一读取指标,用以根据该处理电路读取该先进先出缓冲器内数据的次数进行计数以产 生一读取计数值,并且该读取计数值是代表该先进先出缓冲器内无效数据的位置;以及一指标校正单元,连接至该指令产生器,用以于该读取指令产生后且该存储器模块输 出数据之前,控制该写入计数值相同于该读取计数值。
2.根据权利要求1所述的存储器控制器,其特征在于,该存储器模块为一双倍数据速 率存储器模块。
3.根据权利要求1所述的存储器控制器,其特征在于,当该处理电路读取一次该先进 先出缓冲器内的数据时,该读取指标加1。
4.根据权利要求1所述的存储器控制器,其特征在于,该先进先出缓冲器是一环缓冲 器,且该读取指标与该写入指标是计数器。
5.根据权利要求1所述的存储器控制器,其特征在于,该指标校正单元是比较该读取 计数值与该写入计数值,且于该读取计数值与该写入计数值不相同时,将该读取指标内的 该读取计数值更新于该写入指标内的该写入计数值。
6.一种存储器控制器的控制方法,该存储器控制器连接至一存储器模块,该控制方法 包括下列步骤获得该存储器模块的一行地址触发延迟时间; 判断该存储器控制器中的一指令产生器是否产生一读取指令;以及 当该指令产生器产生该读取指令时,于该行地址触发延迟时间内,将该存储器控制器 中一读取指标的一读取计数值更新于一写入指标的一写入计数值。
7.根据权利要求6所述的存储器控制器的控制方法,其特征在于,该存储器模块为一 双倍数据速率存储器模块。
8.根据权利要求7所述的存储器控制器的控制方法,其特征在于,还包括下列步骤 于产生该读取指令之后的该行地址触发延迟时间,根据该双倍数据速率存储器模块的一数据触发信号来更改该写入指标的该写入计数值,并且该写入计数值是代表该存储器控 制器中一先进先出缓冲器内有效数据的位置。
9.根据权利要求8所述的存储器控制器的控制方法,其特征在于,还包括下列步骤 于该存储器控制器中的一处理电路读取该先进先出缓冲器内数据的次数来改变该读取计数值,并且该读取计数值是代表该先进先出缓冲器内无效数据的位置。
10.根据权利要求8所述的存储器控制器,其特征在于,该先进先出缓冲器是一环缓冲 器,且该读取指标与该写入指标是计数器。
11.一种存储器控制器的控制方法,该存储器控制器连接至一存储器模块,该控制方法 包括下列步骤获得该存储器模块的一行地址触发延迟时间; 判断该存储器控制器中的一指令产生器是否产生一读取指令; 当该指令产生器产生该读取指令时,比较该存储器控制器中一读取指标的一读取计数 值与一写入指标的一写入计数值;以及于该读取计数值与该写入计数值不相同时,于该行地址触发延迟时间内,将该存储器 控制器中该读取指标的该读取计数值更新于该写入指标的该写入计数值。
12.根据权利要求11所述的存储器控制器的控制方法,其特征在于,该存储器模块为 一双倍数据速率存储器模块。
13.根据权利要求12所述的存储器控制器的控制方法,其特征在于,还包括下列步骤 于产生该读取指令之后的该行地址触发延迟时间,根据双倍数据速率存储器模块的一数据触发信号来更改该写入指标的该写入计数值,并且该写入计数值是代表该存储器控制 器中一先进先出缓冲器内有效数据的位置。
14.根据权利要求13所述的存储器控制器的控制方法,其特征在于,还包括下列步骤 于该存储器控制器中的一处理电路读取该先进先出缓冲器内数据的次数来改变该读取计数值,并且该读取计数值是代表该先进先出缓冲器内无效数据的位置。
15.根据权利要求13所述的存储器控制器,其特征在于,该先进先出缓冲器是一环缓 冲器,且该读取指标与该写入指标是计数器。
全文摘要
本发明揭露一种存储器控制器及其控制方法。此存储器控制器连接至一存储器模块,并以一先进先出缓冲器接收存储器模块输出的数据,以一写入指标来代表该先进先出缓冲器内有效数据的位置,及以一读取指标来代表该先进先出缓冲器内无效数据的位置。根据该存储器控制器的控制方法,于该存储器控制器产生一读取指令产生之后的一行地址触发延迟时间之内,该写入指标内的写入计数值是控制相同于该读取指标内的读取计数值。
文档编号G11C7/10GK102110461SQ20091026255
公开日2011年6月29日 申请日期2009年12月24日 优先权日2009年12月24日
发明者刘先凤, 叶明杰, 陈宥霖 申请人:晨星半导体股份有限公司, 晨星软件研发(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1