首页> 中国专利> 包括具有固定延迟数据输出的内存块的内存装置

包括具有固定延迟数据输出的内存块的内存装置

摘要

本发明涉及包括具有固定延迟数据输出的内存块的内存装置。内存块包括内存电路和时钟产生单元。内存电路可以响应于被具有可选延迟的时钟信号时钟控制而输出读数据,可选延迟可以取决于在内存块处接收到读命令之后通过内存磁芯输出读数据所用的时间。时钟产生单元可以响应于被选定数据时钟信号时钟控制而使读数据被提供为内存块的输出。数据时钟信号可以从通过系统时钟的若干个时钟边沿之一产生的若干个时钟边沿之一来选择,使得不管系统时钟的频率如何,在内存块处接收到读命令之后的预定的时间量,通过内存块提供读数据。

著录项

  • 公开/公告号CN102939631A

    专利类型发明专利

  • 公开/公告日2013-02-20

    原文格式PDF

  • 申请/专利权人 莫塞斯股份有限公司;

    申请/专利号CN201180014148.5

  • 发明设计人 D·斯克达;

    申请日2011-02-08

  • 分类号G11C7/10(20060101);G11C7/22(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李镇江

  • 地址 美国加利福尼亚

  • 入库时间 2024-02-19 16:54:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-06-25

    授权

    授权

  • 2013-03-27

    实质审查的生效 IPC(主分类):G11C7/10 申请日:20110208

    实质审查的生效

  • 2013-02-20

    公开

    公开

说明书

技术领域

本公开涉及内存系统,尤其涉及流水线内存电路。

背景技术

多数计算机系统总是使用某些形式的随机存取存储器(RAM)。 通常在易失性存储器应用中,由于成本考虑而使用动态随机存取存储 器(DRAM)家族中的存储装置。与任何存储器一样,DRAM具有当 读命令已经在DRAM输入端被接收到之后,数据出现在DRAM输出 端所用的固有时间量。这个固有时间量通常被称为读延迟或存取时间。 为了减少一些这样的读延迟,已知作为同步DRAM的一类DRAM是 使用流水线结构来实现,在流水线结构中读延迟超过多个周期,但每 个周期都发出新命令。使用这项技术,装置的有效数据输出带宽会被 增加,此带宽对应于被减少的读周期时间。当使用流水线结构时,术 语读周期时间通常用于指连续读数据输出周期之间的时间或期间。

许多传统的流水线内存装置采用若干个时序逻辑时钟存储装置, 诸如读地址路径和数据输出时钟路径内的锁存器、触发器等等。这些 时序逻辑装置可以被系统时钟或它的一些派生物时钟控制。因此,对 于给定的系统时钟频率,内存装置将具有对应的周期时间。然而,随 着系统时钟频率变化,内存周期时间将变化。当试图维持用于不同时 钟频率的相对恒定的延迟时,这个不同的读周期时间可能会成为问题。

发明内容

包括具有固定延迟读数据输出的内存块的内存装置的不同实施 例被公开。在一个实施例中,内存块包括内存电路和输出时钟单元。 内存电路包括内存磁芯,内存磁芯被配置成响应于接收到读命令而输 出读数据。内存电路可以被进一步配置成响应于被具有可选延迟的时 钟信号时钟控制而输出来自内存磁芯的读数据。延迟可以取决于在内 存块处接收到读命令之后通过内存磁芯输出读数据所用的时间。输出 时钟单元可以被配置成响应于被选定版本的数据时钟信号时钟控制而 从内存电路捕获读数据,并且使读数据被提供为内存块的输出。选定 版本的数据时钟信号可以从通过系统时钟的多个时钟边沿之一产生的 多个时钟边沿之一来选择,使得不管系统时钟的工作频率如何,在内 存块处接收到读命令之后预定的时间量,读数据被提供为内存块的输 出。

附图说明

图1是具有固定延迟数据输出的内存块的一个实施例的方框图。

图2A是描述图1的内存块的一个实施例的工作时序的时序图。

图2B是描述图1的内存块的另一个实施例的工作时序的时序图。

图2C是描述图1的内存块的另一个实施例的工作时序的时序图。

图2D是描述图1的内存块的另一个实施例的工作时序的时序图。

图3是描述图1所示内存块的一个实施例的工作的工作流程图。

图4是包括图1的内存块的内存系统的一个实施例的方框图。

具体实施例通过附图中的实例被示出,并且将在本文中详细描 述。然而,应该理解的是,附图和详细描述并非旨在将权利要求限制 于所公开的特定实施例,即使只是关于特定特征所描述的单独的实施 例。正相反,旨在涵盖所有的修改、等价物及替代物,它们对受益于 本公开的本领域技术人员将是明显的。本公开中提供的特征的实例旨 在为示例性的,而非限制性的,除非另有说明。

正如贯穿本申请所使用的那样,单词“可以”用于容许的意义(即, 意味着具有可能性),而非强制性的意义(即,意味着必须)。同样, 单词“包括”意味着包括,但不限于包括。

不同的单元、电路或其它组件可以被描述成“被配置成”执行一项 或多项任务。在这种上下文中,“被配置成”是结构的宽泛叙述,一般 意味着在工作期间“具有…的电路”执行一项或多项任务。这样,甚至 当单元/电路/组件当前未接通时,单元/电路/组件也能够被配置成执行 任务。一般地,形成对应于“被配置成”的结构的电路系统可以包括硬 件电路。同样,为了方便说明,不同的单元/电路/组件可以被描述成 执行一项或多项任务。这种说明应该被解释为包括短语“被配置成”。 叙述被配置成执行一项或多项任务的单元/电路/组件明确地不旨在援 引35U.S.C.§112第六段对该单元/电路/组件的解释。

具体实施方式

现在转向图1,内存块的一个实施例的方框图被示出。内存块10 包括耦接至时钟产生单元110的内存电路100。内存电路100包括耦 接至内存磁芯102的输入端的触发器(FF)101。内存磁芯102的输 出端被耦接至FF 103。如图所示,FF 101的输入端被耦接成接收读和 地址输入命令(RADD[M:0]),并且被内存时钟信号(MCLK)时 钟控制。内存电路还包括可调延迟单元104,其被耦接成接收读允许 信号(RDEN)。可调延迟104还被MCLK信号时钟控制,并且产生 用于对FF 103进行时钟控制的流水线时钟信号(PCLK)。应当注意 到,RADD[M:0]信号对应于包括M+1个信号路径的多个信号路径。 因此,FF 101的描述是多触发器实施方式,其中对于每个信号路径可 以都有一个FF 101。

在示出的实施例中,时钟产生单元110包括除法器111,除法器 111被耦接成接收系统时钟信号(SCLK)输入,并且将MCLK信号 输出(在一个实施例中,MCLK信号输出可以是小于1的SCLK的倍 频)提供给内存电路100。时钟产生单元110还包括触发器链(例如, 触发器(FF)113A、113B及113n),每个触发器都被SCLK信号时 钟控制。FF链的输入端被耦接成接收RDEN信号。FF链的每个输 出端都被耦接至多路复用器(mux)117的各输入端。多路复用器117 选择的输入被耦接至可以是多位信号的DSEL信号。多路复用器117 的输出端被耦接至FF 112的时钟输入端。FF 112的输入端被耦接成 接收指定为DOBANK[N:0]信号的FF 103的输出。不同SCLK频率 的上述信号的时序在图2A至图2D中示出,并且在下文进一步描述。 应当注意到,虽然在图1的FF链中只有三个FF装置(例如,113A、 113B及113n),但是可以预期在FF链中可能有n个FF装置,这 里n可以是任何正整数。还应当注意到,与是多个信号路径的RADD [M:0]信号相似,DOBANK[N:0]信号和DOUT[N:0]信号每个都代表 包括N+l个数据路径的多位数据路径。因而,FF 103和FF 112是多 触发器实施方式,其中对于每个数据路径都可以是一个FF 103和FF 112。

在一个实施例中,读地址和读命令通过内存电路100在FF 101 输入端处经由RADD[M:0]信号被接收到。当FF 101被MCLK信号 时钟控制时,RADD[M:0]信号由FF 101捕获(即被暂时存储),并 且被提供给内存磁芯102作为MADD[M:0]信号,其中读操作通过内 存磁芯开始传送。一段时间之后,读数据出现在内存磁芯102的输出 端,并且被施加至FF 103的输入端。同时,在内存磁芯102内一些数 量的附加的读操作可以同时在进行中(例如,对于MCLK的每个周 期都有一个),以便内存磁芯102可以在FF 103的输入端提供读数据 (例如,以MCLK频率)。因此,为了FF 103从内存磁芯102捕获 每个读数据输出,PCLK信号必须在适当的时间对FF 103进行时钟控 制。当FF 103被PCLK时钟控制时,读数据出现在FF 103的输出端 作为DOBANK[N:0]信号。

然而,由于各种因素,导致读周期(read cycle period)会变化。 例如,由于过程变化和工作电压及温度变化,导致内存时序能够变化。 为了适应会变化的读数据输出窗,可调延迟单元104可以被配置成调 整PCLK相位(phase)以便对FF 103进行准确的时钟控制而从内存 磁芯102捕获读数据输出。在一个实施例中,内存磁芯102可以是具 有任意数量内存单元的内存阵列,并且其特征可以为在不同的制造阶 段,诸如在第一个硅测试期间,跨过程、电压和温度角(corner)获 得最佳的读周期时序。在一个实施例中,可调延迟单元104可以包括 可以使用DELC信号选择的若干个可选延迟阶段。DELC信号可以是 通过内存控制器(如图4所示)提供的多位信号。可选地是,DELC 信号可以通过例如硬连线信号或系统板上的跳线器被提供。在另一个 实施例中,对应于DELC信号的延迟信号可以被提供至内存控制器, 其可以接着将DELC信号提供至可调延迟单元104。当DELC信号通 过内存控制器被提供时,在一些实施例中,这些值在操作期间可以被 动态改变。例如,在一个实施例中,内置式自测试(BIST)程序可以 指出时序不准确,并且内存控制器可以改变DELC信号以便修改 PCLK时序直到BIST通过。

虽然PCLK信号是可调整的以解决内存磁芯读数据输出时序中 的变化,但是如图2A-图2D所示,如果SCLK的频率改变,则由于 MCLK和PCLK随着SCLK改变,会导致读数据输出(DOBANK [N:0])也将随之改变。为了跨系统时钟频率的改变而提供相对固定的 读延迟,使用附加补偿。

更具体地,如图1所示,DOBANK[N:0]信号被提供至FF 112 的输入端。FF 112被数据时钟(DCLK)信号时钟控制以便提供数据 输出(DOUT)。通过使用多路复用器117选择包括FF 113-FF 115 在内的FF链的输出端之一产生DCLK信号。每个版本都是通过利用 SCLK对每个FF 113进行时钟控制并且在FF链开始处使用RDEN 信号而产生的。如图2A-图2D所示,通过选择适当的DCLK版本, FF 112可以被时钟控制成正确捕获DOBANK[N:0]信号,并且在 SCLK周期的增量内RADD[M:0]信号被提供至内存块10后的预定时 间输出DOUT[N:0]信号。通过这样做,不管SCLK频率如何,都可以 实现相对固定的读数据输出(DOUT)延迟。

与DELC信号相似,多路复用器选择的信号DSEL还可以是通 过内存控制器(如图4所示)提供的多位信号。在一个实施例中,对 于给定的SCLK频率,可以选择FF链的特定的各输出端。如结合图 4的描述在下文中更详细描述的那样,内存控制器可以使用查找表、 配置寄存器,或其它适当的配置机构,以便基于SCLK频率选择 DCLK。

应当注意到,虽然在上述实施例中装置已经被指定为触发器,但 是可以预期任何类型的时钟控制存储装置(例如,寄存器、锁存器等 等)都可以被使用。

图2A至2D示出图1所示内存块10的不同实施例的时序图。更 具体地,每个时序图都示出当利用系统时钟(SCLK)频率、可调延 迟及输出时钟(DCLK)时序的不同组合进行工作,使得读数据输出 延迟对于不同的SCLK频率为相对固定时,内存块的时序。

参考图2A,描述图1所示内存块的一个实施例的时序的时序图 被示出。时序图示出从左到右开始时出现的几个信号。更具体地,系 统时钟(SCLK)是在顶部的第一个信号。下一个信号是读命令/地址 信号(RADD[M:0]),接着是内存时钟信号(MCLK),随后是流 水线时钟信号PCLK。接下来示出通过FF 103输出的读数据 (DOBANK[N:0]),随后是读允许(RDEN)信号、和数据时钟(DCLK), 接着是数据输出信号(DOUT [N:0])。

如图所示,SCLK周期是1ns,其对应于1GHz频率。这个周期 对应于可以使用的系统时钟,例如,当实现10G SerDes时。如图1 所示,SCLK的前沿产生MCLK信号(如箭头所示)。另外,如图所 示,SCLK信号被除以四以便产生MCLK信号。在SCLK的第一周 期以及每四个周期(其代表一个250MHz内存周期)期间,RADD[M:0] 信号是有效的。因此,MCLK的上升沿引起FF 101捕获RADD[M:0] 信号并且将MADD[M:0]信号提供至内存磁芯102的输入端。如上所 述,可调延迟单元104由MCLK信号产生PCLK信号(如箭头所示)。 因此,如图2A所示,PCLK信号是利用适当的延迟产生的,以便捕 获从内存磁芯102输出的读数据并且将该读数据提供为DOBANK [N:0]输出。如图所示,PCLK的第一个上升沿在约6ns处出现。这表 示用于这个实施方式的内存磁芯延迟或内存磁芯存取时间。

另外,如上所述,DOBANK[N:0]信号被提供至FF 112的输入 端,其被DCLK信号时钟控制。DCLK信号从DCLK的几个版本中 选择,每个都通过SCLK的不同上升沿被触发。在图2A中,DCLK 与第8个SCLK边沿大致对齐。因此,DOUT[N:0]信号在RADD[M:0] 信号被施加至内存块10后大约8ns是可用的。因而,对于250MHz 内存读周期和大约6ns的内存磁芯读延迟,内存块延迟大约为8ns。

参考图2B,描述图1所示内存块的另一个实施例的时序的时序 图被示出。图2B中的时序图与图2A所示的时序图相似。然而,如图 2B所示,SCLK周期为2ns,其可以对应于500MHz工作频率。这个 周期对应于可以使用的系统时钟,例如,当实现5G SerDes时。

如图所示,MCLK信号以1:4比率的SCLK工作,因而,内存 读周期为125MHz。因此,如果RADD[M:0]信号被捕获并且在MCLK 的第一个上升沿被施加至内存磁芯102,则大约6ns后,PCLK信号 捕获通过FF 103内的内存磁芯102输出的读数据,FF 103提供 DOBANK[N:0]信号。

选择DCLK信号的第一个上升沿以便捕获DOBANK[N:0]信号, 同时它仍是可用的。如图2B所示,选择一个版本的DCLK以便在 RADD[M:0]信号被施加至内存块10之后大约8ns时DOUT[N:0]信号 出现,其与图2A中的时序图大约相同。然而,如图2B所示,只使用 四个SCLK边沿而非八个SCLK边沿来产生DCLK信号,以便获得 8ns读数据输出延迟。

转向图2C,描述图1所示内存块的另一个实施例的时序的时序 图被示出。图2C中的时序图与图2A所示的时序图相似。具体地, DCLK版本被选择成使得DOUT[N:0]信号在RADD[M:0]信号被施加 至内存块10后大约8ns(八个SCLK周期)出现,其与图2A和图2B 中的时序图大约相同。

然而,如图2C中箭头所示,PCLK的第一个上升沿在MCLK的 第二个周期内出现,并且由MCLK的第二个上升沿产生,但在图2A 中,PCLK的第一个上升沿由MCLK的第一个上升沿产生。在图2B 中,PCLK的第一个上升沿在MCLK的第一个周期内出现,并且由 MCLK的第一个上升沿产生。因此,可调延迟单元104可以被配置成 在相对宽的窗(wide widow)内使用多于一个的MCLK边沿来调整 PCLK的延迟,以便适应内存磁芯延迟的巨大变化。

参考图2D,描述图1所示内存块的又一个实施例的时序的时序 图被示出。图2D中的时序图与图2C所示的时序图相似。然而,图 2D的时序图包括具有1.67ns的周期的SCLK,1.67ns的周期对应于 600MHz工作频率。这个周期对应于可以使用的系统时钟,例如,当 实现6G SerDes时。

如图所示,MCLK信号仍以1:4比率的SCLK工作,并因此具 有大约150MHz的内存读周期。然而,在这个实施方式中,MCLK周 期(6.7ns)比可以约为6ns的内存磁芯102的延迟更长。因而,MCLK 至PCLK的延迟保持小数值或最小值,否则数据将在FF 103的输入 端准备好并且不被使用。因此,在图2D中,在大约7.5ns处,PCLK 信号捕获由FF 103内的内存磁芯102输出的读数据,FF 103提供 DOBANK[N:0]信号。这与图2C所示的从MCLK至PCLK的更大的 延迟形成对照,因为在MCLK周期结束时,在内存磁芯102的输出 端读数据是不可用的。

在图2D中,当DOBANK[N:0]信号仍可用时,DCLK信号的第 一个上升沿被选择成捕获DOBANK[N:0]信号。如图2D所示,给定 可用的SCLK边沿,DCLK版本被选择成使得DOUT[N:0]信号尽可 能地在接近8ns时出现。如图所示,DOUT[N:0]在RADD[M:0]信号 被施加至内存块10之后大约8.33ns时出现,其与图2A至图2C中的 时序图的延迟大约相同。因此,如图2D所示,只使用五个SCLK边 沿而非图2C所示的八个SCLK边沿产生DCLK信号,以便获得8.33ns 读数据输出延迟。

在图3中,描述图1的内存块的一个实施例的工作的流程图被示 出。总体参考图1至图3,并且在图3的方框301中开始,基于内存 磁芯102的读存取时间,为MCLK的延迟版本(例如,PCLK)选择 适当的延迟。在一个实施例中,系统时钟频率被确定(方框303), 并且对应的数据输出时钟被选择(方框305)。更具体地,如上所述, 根据SCLK频率,特定的数据输出时钟(DCLK)版本被选择。每个 版本都被SCLK的不同边沿时钟控制。

因此,延迟的PCLK被提供至输出FF 103以便从内存磁芯102 捕获读数据(方框307)。输出数据时钟的选定版本被提供至输出FF 112以便输出来自内存块10的读数据。通过这样做,不管SCLK频率 如何,读数据输出的延迟变成相对固定于预定的延迟。

参考图4,包括图1的内存块的一个实施例的内存系统被示出。 内存系统500包括内存控制器510,其被耦接成接收延迟控制信号(例 如,DELC和DSEL)、命令、地址及数据(例如,RADD[M:0]和 RDEN)。如图所示,RADD[M:0]和RDEN信号可以经由接收(Rx) SerDes单元525被接收到。在一个实施例中,延迟控制信号可以经由 诸如联合测试行动组(JTAG)接口之类单独的接口被接收到。内存 控制器510还被耦接至内存块10,其继而被耦接至传送(Tx)SerDes 单元550。应当注意到,为了清晰和简明,对应于其它图中示出的那 些组件的组件已经被给予相同的附图标记。

在一个实施例中,结合图1至图3的描述,内存块10可以如上 所述地工作。因此,为简单起见此处省略大量描述。

然而,如图4示出的实施例所示,内存控制器510包括存储器511。 在一个实施例中,存储器511可以是寄存器组,而在其它的实施例中, 存储器511可以是诸如来自RAM族的存储器之类的存储器,无论易 失性的或非易失性的,或某些类型的只读存储器(ROM)装置。因此, 查找表可以以多种方式被编程到存储器511中。例如,存储器511可 以在制造时被编程,或者可选地,存储器511可以在通过系统的基本 输入输出系统(BIOS)进行系统初始化期间、或者在作为配置空间写 入的一部分的操作期间被编程。

在一个实施例中,存储器可以被配置成存储用于内存块10的时 钟信息。更具体地,内存控制器510可以维持包括几个条目的查找表。 每个条目可以对应于SCLK的一个特定频率,此频率可以取决于 SerDes单元(例如,525和550)的频率。因而,对于每个可以的SCLK 频率,查找表可以保持各自的数据时钟选择值。如上所述,数据时钟 选择值可以是多位值,其可以被内存控制器510使用,以便产生被发 送至内存块10的数据时钟选择信号。因此,启动期间,内存控制器可 以基于SCLK频率选择适当的数据时钟选择值。

另外,在一个实例中,内存控制器510被配置成产生延迟选择信 号,此延迟选择信号被内存块10使用以便调整PCLK的延迟。在一 个实施例中,内存控制器510还可以维持对应于延迟量的时钟信息, 此延迟量对应于用于内存电路100的内存磁芯的内存存取延迟。例如, 在初始化期间,内存控制器510可以给内存块10提供初始延迟值。这 个初始值可以足够允许在处理、工作温度和电压方面跨越巨大变化来 正确工作。然而,在某些情况下,用于内存块的特定内存磁芯的存取 时间可以不同。因此,如上所述,在诸如BIST的工作期间,内存块 可能故障并且需要时序调整。在这种实施例中,内存控制器510可以 共同地和反复地(iteratively)调整流水线时钟(PCLK)的延迟直到 时序被最佳化。内存控制器510可以维持存储器511内的值。

因而,通过调整流水线时钟(PCLK)的延迟来适应内存磁芯存 取时间的差异,并且通过选择系统时钟(例如,SCLK)的适当边沿 来产生输出数据时钟(DCLK),即使系统时钟频率被改变,内存块 10也可以提供相对固定的延迟读数据输出。

应当注意到,在一个实施例中,内存系统500可以是实现为芯片 上系统的内存装置。另外,图1和图4所示的内存块10可以是,例如, 来自设计库的内存宏块的单独实例(instantiation)。还应当注意到, 在其它的实施例中,可以有更多被使用的内存块,并且那些内存块可 以是共同多路传输的,例如,以便提供数据输出。

虽然已经相当详细地描述了上述实施例,但是一旦上述公开得到 充分理解,许多变化和修改对于本领域技术人员将变得明显。期望下 面的权利要求被解释为包含所有这种变化和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号