自适应输入/输出缓冲器及其使用方法

文档序号:6375808阅读:414来源:国知局
专利名称:自适应输入/输出缓冲器及其使用方法
自适应输入/输出缓冲器及其使用方法 本申请是国际申请日为2004年10月14日、中国国家阶段申请号为200480037752. X、题为“自适应输入/输出缓冲器及其使用方法”的发明专利申请的分案申请。
_2]
背景技术
随着数字系统中使用的频率的增加,满足定时约束变得更加困难或者甚至是不可能的。例如,公共时钟总线协议被用来在存储器器件和存储器控制器间传递数据、地址和控制信号。这些信号相对于存储器器件和存储器控制器两者公共的时钟而被采样。随着公共时钟的周期减少到与总线上的建立(set-up)和维持(hold)时间要求相
同的量级(order),在信号定时(timing)中涉及的印刷电路板和不同半导体的制造公差(tolerance)可能没有严格到足以保证所有具有类似配置的系统可以满足定时要求。此外,在例如个人计算机(PC)的“开放式”系统中,很多不同的系统配置是可能的,该系统具有来自不同来源的印刷电路板和不同类型和数量的存储器设备。每种这样的配置可以具有不同的定时特性并且这些整体的特性可能超出存储器控制器的定时公差。因此,具有特定配置的系统可能不能运转,而其他的系统可能具有边缘操作并且可能在某些环境条件下不能运转。
_7]附图简要说明在附图的视图中,本发明的实施例以实施例的形式,而非限制性的形式来示出,其中图I是其上安装了器件和控制器的印刷电路板的方框图;图2和图3是帮助理解本发明的一些实施例的示例性的时序图;图4图示设置和调整定时参数的方法的流程图;图5图示产生查找表的示例性方法的流程图;图6图示确定要编程到驱动阻抗(driving impedance)控制寄存器和输出延迟(delay)控制寄存器的数值(digital value)的示例性方法的流程图;图7图示要编程到输出延迟控制寄存器和输入延迟控制寄存器的数值的示例性校准(calibration)序列的流程图;图8图示要编程到输出延迟控制寄存器和输入延迟控制寄存器的数值的示例性的校准算法的流程图;图9是包括印刷电路板的装置的方框图,该印刷电路板具有安装在其之上的存储器控制器;

图10A-10D图示要编程到图9的存储器控制器的延迟控制寄存器的数值的示例性校准序列的流程图;以及图11是根据本发明的一些实施例的示例性可编程延迟单元的简化示意图。应该可以意识到,为了描述的简单和清晰,图中所示的要素不一定按照比例来绘制。例如,为了清晰起见,一些要素的尺寸可能相对于其他要素被放大了。此外,在被认为适当的地方,在图中重复了标号,用来指示对应的或类似的要素。发明详细说明在以下详细描述中,阐述了大量具体的细节以提供对本发明的实施例的透彻理解。然而,本领域普通技术人员将会理解,可在无需这些具体的细节的情况下实现本发明的实施例。此外,没有详细描述公知的方法、过程、组件和电路,以免模糊本发明。以下详细描述的一些部分是根据算法和对计算机存储器中的数据位或二进制数字信号的操作的符号表示来介绍的。这些算法描述和表示可以是数据处理领域内的技术人员使用的技术,以将他们工作的内容传达给本领域的其他技术人员。本发明的一些实施例涉及设置和/或动态调整控制器的物理组件(component)的参数,该设置和/或动态调整操作基于电气耦合到控制器的一个或更多个器件(device)的属性,并且基于将一个或更多个器件电气耦合到控制器的介质的属性。其参数正被设置和
/或被调整的物理组件可以包括那些使得由控制器发送的电信号能够被一个或更多个器件准确接收的组件,以及那些使得由一个或更多个器件发送的电信号能够被控制器准确接收的组件。如图I所示,根据本发明的一些实施例,印刷电路板(PCB)2可以包括控制器4、一个或更多个器件6、导体8和导体10。可选地,PCB 2可以包括图形芯片5。控制器4的示例的非穷尽列表包括中央处理单元(CPU)和存储器控制器。例如,控制器4可以具有驱动控制信号执行读和写命令的能力,并且导体8和导体10可以是那些控制信号的总线的部分。器件6的示例的非穷尽列表可以包括存储器器件和协处理器。以下描述针对单个器件6,但本发明的范围不限于此。当器件6装配到PCB 2上时,导体8和导体10可以包括印刷电路板上的迹线(trace)。当器件6装配到可移除模块上时,导体8和导体10可以包括例如印刷电路板上的迹线、可移除模块的迹线和耦合这些迹线的导电连接器。本发明的实施例的以下描述参考时钟的上升沿。然而,在本发明的其他实施例中可以改为参考时钟的下降沿。输出信号的参数以下描述阐述了控制器的物理组件以及如何设置和/或动态调整这些物理组件的参数,以使得由控制器发送的电信号能够被电气耦合到控制器的一个或更多个器件准确地接收。这些参数的设置和/或调整可以基于电气耦合到控制器的一个或更多个器件的属性以及基于将一个或更多个器件电气耦合到控制器的介质的属性。控制器4可以包括由可选的输出延迟控制寄存器14和驱动阻抗控制寄存器16控制的输出通道12,该控制器4是集成电路或集成电路的一部分。输出通道12可以从数字子系统(未示出)接收信号18,其稳定的逻辑电平在时钟20的每个周期内改变不超过一次,并且可以在导体8上产生反映信号18的逻辑电平改变的输出信号。器件6可以包括可以接收时钟24和导体8上的信号作为输入的输入通道22。输入通道22可以在时钟24的上升沿对导体8上的信号的逻辑电平进行采样并且可以将采样的逻辑电平输出到信号25上。输出通道12、输出延迟控制寄存器14和驱动阻抗控制寄存器16的一个目的可以是确保信号18的逻辑电平的改变由信号25的逻辑电平的改变准确地反映。事实上,这将信号18转换为信号25。由控制器4和器件6所形成的系统是公共时钟系统。
在图2的示例性时序图中,时钟20以周期Tpekiqd纳秒(在上升沿(例如上升沿102、104和106)之间测得)振荡。在本实施例中,信号18的逻辑电平在时钟20的每个上升沿的Tajl纳秒后改变。在图2的示例性时序图中,时间延迟Tajl是恒定的,但本发明的范围不限于此。输出通道(channel)可以包括可选的可编程延迟单元(delay cell) 26和可编程输出缓冲器28。可编程延迟单元26可以连续地采样信号18的逻辑电平,并且可以在信号30上连续地输出与信号18上采样得到的逻辑电平基本上相等的逻辑电平。当信号18的逻辑电平发生改变时,信号30的逻辑电平可以相应地在时间延迟Tpdi后改变。正如以下更详细解释的,时间延迟Tpdi在一时间范围内可以是可编程的,并且可以根据存入输出延迟控制寄存器14的数值来设置。可编程缓冲器28可以接收信号30作为输入并且可以在导体8上产生输出信号,
该输出信号可以反映信号30的逻辑电平的改变。在导体8上可以使用电压电平表示逻辑电平。例如高电压电平可以表示一个逻辑电平,而低电压电平可以表示另一个逻辑电平。因此,可编程输出缓冲器28可以在导体8上产生电压电平来反映信号30的逻辑电平的改变。虽然本发明的范围不限于此,可编程输出缓冲器28可以借助于将低电压源(例如地)通过可编程输出缓冲器28内部的反向驱动阻抗(sink driving impedance) f禹合到导体8而在导体8上产生低电压电平。类似地,可编程输出缓冲器28可以借助于将高电压源通过可编程输出缓冲器28内部的源驱动阻抗(source driving impedance) f禹合到导体8而在导体8上产生高电压电平。驱动阻抗控制寄存器16可以被耦合到可编程输出缓冲器28,并且存储在驱动阻抗控制寄存器16中的数值可以控制可编程输出缓冲器28的源驱动阻抗和反向驱动阻抗。(可替换地,驱动阻抗控制寄存器16可以用两个寄存器来代替,一个用于存储可以控制可编程输出缓冲器28的源驱动阻抗的数值,另一个用于存储可以控制可编程输出缓冲器28的反向驱动阻抗的数值。)因为从低到高的过渡时间Tpmi (从高到低的过渡时间Tphu)可能受到可编程输出缓冲器28的源驱动阻抗(反向驱动阻抗)的影响,其中在过渡时间期间导体8上的信号的电压可能不能适当地表示任何逻辑电平,所以驱动阻抗控制寄存器16可以控制导体8上的信号的从低到高的过渡时间Tpmi和从高到低的过渡时间TPHU。此外,从低到高的过渡时间tPLHI和从高到低的过渡时间Tphu可能受到导体8的物理布局拓扑(layout topology)、导体8上的总的电容性负载、导体8的阻抗以及输入通道22的输入阻抗的影响。在图2中示出了时钟24的示例性时序图,虽然本发明不局限于该实施例。在本实施例中,时钟24可以以与时钟20相同的频率振荡,具有Tpekiqd纳秒的周期(在上升沿之间测得),并且时钟24的上升沿距时钟20的上升沿可以具有Tskw纳秒的恒定时间偏移。当输出通道12在时钟20的上升沿后在导体8上产生逻辑电平,输入通道22应该在时钟24的上升沿采样该逻辑电平,该时钟24的上升沿距时钟20随后的上升沿偏移了Tskw纳秒。例如,当输出通道12在时钟20的上升沿102 (104)后在导体8上产生高逻辑电平(低逻辑电平)时,输入通道22应该在时钟24的上升沿114 (116)采样该逻辑电平。
为了使输入通道22能够准确地采样导体8上的信号的逻辑电平,导体8上的信号的电压可能必须至少在时钟24的上升沿前的“建立时间”Tsui上稳定于相应的电压电平,并且可能必须至少在时钟24的上升沿后的“维持时间”Thi上保持稳定于该电压电平。换句话说,为了使输入通道22准确地采样导体8上的信号的高(低)逻辑电平,必须满足以下条件Ca)导体8上的信号的高(低)电压必须在一时间段(time period)上是稳定的,该时间段至少等于建立时间和维持时间的和;(b)导体8上的信号的高(低)电压必须至少在时钟24的上升沿后的Tm上是稳定的;以及(c)导体8上的信号的高(低)电压必须至少在时钟24的上升沿前的Tsm上是稳定的。针对高电压和低电压,条件(a)可以用以下关系式来表示I. Tpeeiod — Tplhi ^ TSU1+TH1 ;I’ . Tpeeiod — Tphli彡TSU1+TH1。条件(b)可以用以下关系式来表不(高电压和低电压的关系式相同)2. TC01+TPD1彡TH1+TSKW。针对高电压和低电压,条件(c)可以用以下关系式来表示3. Tpeeiod — Tcoi — Tpdi — Tplhi ^ Tsui — Tskw ;3 . Tpeeiod — Tcoi — Tpdi — Tphli ^ Tsui — TSKW。条件(b)和(c)可以表示为可编程延迟单元26引入的时间延时Tpdi的上限和下限,如以下关系式所示4. Tpeeiod — Tplhi — Tcoi — TSU1+TSKW ^ Tpdi ^ Tm+Tskw — Tcoi ;5. Tpeeiod — Tphli — Tcoi — TSU1+TSKW ^ Tpdi ^ Tm+Tskw — Tcoi。可以看出,在采样高电压时,关系式I是满足关系式2和3两者的必要但不充分的条件。类似地,在采样低电压时,关系式I’是满足关系式2和3’两者的必要但不充分的条件。因此,一旦编程到驱动阻抗控制寄存器16的数值被调整,从而关系式I和I’被满足时,编程到输出延迟控制寄存器14的数值可以被调整,从而关系式4和5两者都被满足。正如以下将详细解释的,可以通过编程到驱动阻抗控制寄存器16和输出延迟控制寄存器14的数值来调整关系式1、1’、4和5的可控参数,以补偿关系式中所有其他参数的变化,从而满足条件(a)、( b )和(c )。关系式I和I’Tpeeiod是固定值,而建立时间Tsm和维持时间Tm的准确值可以受到例如器件6的制造公差的影响并且可以随着例如周围温度的变化而变化。通过调整可编程输出缓冲器28的源(反向)驱动阻抗,可以调整从低到高的过渡时间Tmi (从高到低的过渡时间Tphu)从而满足关系式I (I’),也即导体8上的信号的高(低)电压在等于至少建立时间Tsm和维持时间Thi之和的时间段上是稳定的。应该可以理解,从低到高的过渡时间Tmi (从高到低的过渡时间Tphu)不是由可编程输出缓冲器28的源(反向)驱动阻抗单独来确定。相反,正如前面解释的,从低到高的过渡时间Tmi和从高到低的过渡时间Tphu的准确值受到导体8上的总的电容性负载、导体8的物理布局拓扑、导体8的阻抗和输入通道22的输入阻抗的影响。此外,根据例如耦合到导体8的器件6的数量和类型以及根据每个器件6的制造公差,导体8上的总的电容性负载可以变化。根据耦合到导体8的器件6的数量以及根据PCB 2的设计,导体8的物理布局拓扑可以变化。根据例如PCB 2的设计以及根据PCB 2的制造公差,导体8的阻抗可以变化。例如,根据器件6的类型和制造公差,输入通道22的输入阻抗可以变化。因为存在如此多可以影响关系式I和I’中的其他参数的不同因素,控制从低到高的过渡时间Tpmi和从高到低的过渡时间Tphu的能力使得关系式I和I’能够在各种情形下被满足。关系式4和5Tpeeiod是固定值,并且在试图满足关系式4和5前,从低到高的过渡时间Tpmi和从高到低的过渡时间Tphu将已经做过调整。然而,正如前面关于关系式I和I’所讨论的,建立时间Tsm和维持时间Thi可以受到例如器件6的制造公差的影响并且可以例如随着周围温度的变化而变化。类似地,时间延迟Τωι的准确值可以受到例如控制器4的制造公差的
影响并且可以随着例如周围温度的变化而变化。此外,时钟20和时钟24的上升沿之间的时间偏移Tskw的准确值可以受到例如用于产生时钟20和时钟24的方法的影响。例如,时钟24可以通过锁相环(PLL)来产生,该锁相环被锁定到时钟20并且具有恒定或变化的相位误差。在另一个示例中,时间偏移Tskw可以作为在用于产生时钟20和时钟24的时钟分配树(未示出)中的信号间的歪斜(skew)的结果而发生,或者通过时钟分配树的信号的上升时间的差来发生。因此,为了使输入通道22准确地采样导体8上的信号的逻辑电平,在调整可编程输出缓冲器28的反向驱动阻抗和源驱动阻抗从而满足关系式I和I’后,可以通过在输出延迟控制寄存器14中设置适当的数值来调整可编程延迟单元26的延迟Tpdi从而满足关系式4和5两者。用于输入信号的参数以下的描述说明控制器的物理组件以及如何设置和/或动态调整这些物理组件的参数以使得由电气地耦合到控制器的一个或更多个器件所发送的电信号能够被控制器准确地接收。这些参数的设置和/或调整可以基于电气地耦合到控制器的一个或更多个器件的属性以及基于将一个或更多个器件耦合到控制器的介质的属性。器件6可以包括输出通道32。输出通道32可以接收信号34,其稳定的逻辑电平在时钟24的每个周期中改变不超过一次,并且可以在导体10上产生反映信号34的逻辑电平的改变的输出信号。在导体10上可以使用电压电平表示逻辑电平控制器4可以包括由输入延迟控制寄存器13控制的输入通道36。输入通道36可以接收时钟20和导体10的信号作为输入,并且可以输出信号38。输入通道36可以在时钟20的上升沿采样导体10上的信号的逻辑电平并且可以在信号38上输出经采样的逻辑电平。输入通道36和输入延迟控制寄存器13的一个目的可以是确保信号34的逻辑电平的改变由信号38的逻辑电平的改变来准确地反映。实际上,这可以将信号34转换为信号38。在图3的示例性时序图中,时钟24以周期TP_D纳秒(在上升沿之间测得)振荡。在本示例中,导体10上的信号的逻辑电平在时钟24的每个上升沿后的Iro2纳秒开始改变。在图3的示例性时序图中,时间延迟Iro2是恒定的,虽然本发明的范围不限于此。此外,导体10上从低电压电平到高电压电平的信号的过渡可以用低到高的过渡时间Tpm2来表征,在Tm2期间,导体10上的信号的电压可能不能适当地表示任何逻辑电平。类似地,导体10上从高电压电平到低电压电平的信号的过渡可以用高到低的过渡时间Tpm2来表征,在T·期间,导体8上的信号的电压可能不能适当地表示任何逻辑电平。从低到高的过渡时间Tm2可以受到输出通道32的源驱动阻抗、导体10上的总的电容性负载、导体10的物理布局拓扑、导体10的阻抗和输入通道36的输入阻抗的影响。类似地,从高到低的过渡时间Tm2可以受到输出通道32的反向驱动阻抗、导体10上的总的电容性负载、导体10的物理布局拓扑、输出通道32的反向驱动阻抗、导体10的阻抗和输入通道36的输入阻抗的影响。在图3的示例性时序图中,导体10上的电压在时钟24的上升沿202后的(TC02+TpLH2)纳秒实现稳定的高电压电平,并且在时钟24的上升沿204后的(Τω2+ΤΡΗ 2)纳秒实现稳定的低电压电平,并且在时钟24的上升沿206后的(TCQ2+TPm2)纳秒实现稳定的高电压电平。输入通道36可以包括输入缓冲器40、可编程延迟单元42和输入寄存器44。输入寄存器44是用于数字子系统(未示出)的前端的一部分。在一些实施例中,输入缓冲器40可以接收导体10上的信号作为输入并且可以产生输出信号46,该输出信号46可以反映导体10上的信号的逻辑电平的改变。当导体10上的信号的电压表示特定的逻辑电平时,输入缓冲器40可以在信号46上输出相同的逻辑电平。然而,当导体10上的信号的电压没有适当地表示任何逻辑电平时,例如在时间段T—和Tphl2期间,信号46也可能没有适当地表示任何逻辑电平,如图3的划斜线的矩形所示。(在其他实施例中,输入缓冲器40可以具有不同的行为。例如,输入缓冲器40可以是施密特触发输入缓冲器,其中信号46总是表示适当的逻辑电平,但是根据上升时间和下降时间,逻辑电平改变的时间可以变化。)可编程延迟单元42可以接收信号46作为输入并且可以输出信号48。可编程延迟单元42可以连续地采样信号46的逻辑电平,并且可以在信号48上连续地输出与在信号46上采样的逻辑电平基本相等的逻辑电平。当信号46的逻辑电平发生改变时,信号48的逻辑电平可以在时间延迟Tpd2后相应地改变。时间延迟Tpd2可以是可编程的,并且可以根据储存在输入延迟控制寄存器13中的数值来设置。输入寄存器44可以在上升沿采样信号48的逻辑电平并且可以输出信号38。在时钟20的每个上升沿后输入寄存器44可以在信号38上输出的逻辑电平可以与在时钟20的上升沿在信号48上采样到的逻辑电平基本相等。当输出通道32在时钟24的上升沿后在导体10上产生逻辑电平时,输入寄存器44应该在时钟20的上升沿采样在信号48上的逻辑电平,该时钟20的上升沿距时钟20随后的上升沿偏移了 Tskw纳秒。例如,当输出通道32在时钟24的上升沿202后在导体10上产生高逻辑电平时,输入寄存器44应该在时钟20的上升沿214采样在信号48上的逻辑电平。类似地,当输出通道32在时钟24的上升沿204后在导体10之上产生低逻辑时,输入寄存器44应该在时钟20的上升沿216采样在信号48上的逻辑电平。为了使输入寄存器44准确地采样信号48的逻辑电平,信号48的逻辑电平可能必须至少在时钟20的上升沿前的“建立时间” Tsu2上稳定,并且可能必须至少在时钟20的上升沿后的“维持时间” Th2上保持稳定。换句话说,为了使输入寄存器44准确地采样信号48上的高(低)逻辑电平,必需满足以下条件(d)信号48上的高(低)电压必须在一时间段上是稳定的,该时间段等于至少建立时间和维持时间的和;(e)信号48上的高(低)电压必须至少在时钟20的上升沿后的Th2上是稳定的;以及(f)信号48上的高(低)电压必须至少在时钟20的上升沿前的Tsu2上是稳定的。针对高电压和低电压,条件(d)可以用以下关系式来表示6. Tpeeiod — Tplh2 ^ TSU2+TH2 ;6’ . Tpeeiod — Tphl2彡TSU2+TH2。条件(e)可以用以下关系式来表示(高和低电压具有相同的关系式)7. TC02+TPD2+TSKff彡TH2。针对高电压和低电压,条件(f)可以用以下关系式来表示8. Tpericid-T⑶2-Tpd2-Tplh2 ^ Tsu2+Tskw ;8 . Tperiod-Tco2-Tpd2-Tphl2 ^ TSU2+TSKW。条件(e)和(f)可以表示为可编程延迟单元42引入的时间延时Tpd2的上限和下限,如以下关系式所示9. Tpeeiod — Tplh2 — Tc02 — Tsu2 — Tskw ^ Tpd2 ^ Th2 — Tskw — Tc02 ;10. Tpeeiod — Tphl2 — Tc02 — Tsu2 — Tskw ^ Tpd2 ^ Th2 — Tskw — Tc02。正如以下将详细解释的,可以通过编程到输入延迟控制寄存器13的数值来调整关系式9和10的可控参数(在关系式中用黑体强调),以补偿关系式中所有其他参数的变化,从而满足条件(e)和(f)。关系式6和6’根据本发明的实施例,从低到高的过渡时间Tpui2和从高到低的过渡时间Tm2是不能通过控制器4来控制的,并且因此假设满足关系式6和6’。关系式9和10Tpekmi是固定值,然而建立时间Tsu2和维持时间Th2的准确值可以受到例如控制器4的制造公差的影响,并且可以随着例如周围的温度变化而变化。类似地,时间延迟Iro2的准确值可以受到例如器件6的制造公差的影响,并且可以随着例如周围温度的变化而变化。此外,时钟20和时钟24的上升沿之间的时间偏移Tskw的准确值可以受到例如用于产生时钟20和时钟24的方法的影响。从低到高的过渡时间Tpm2和从高到低的过渡时间Tpm2的准确值可以受到导体10上的总的电容性负载、导体10的物理布局拓扑、导体10的阻抗和输入通道36的输入阻抗的影响。此外,导体10上的总的电容性负载可以例如根据输出通道32的输出电容(capacitance)的变化以及根据每个器件6的类型和制造公差而变化。此外,导体10上的总的电容性负载可以例如根据电气地耦合到导体10的可选的器件50的类型、数量和制造公差而变化。导体10的物理布局拓扑可以例如根据PCB 2的布局而变化。导体10的阻抗可以根据PCB 2的设计和PCB 2的制造公差而变化。输出通道32的输出阻抗可以例如根据器件6的制造公差而变化。
因此,为了使输入寄存器44准确地采样信号48的逻辑电平,可以通过在输入延迟控制寄存器13中设置适当的数值来调整可编程延迟单元42的延迟Tpd2,从而满足关系式9和10两者。设置和调整参数控制器的物理组件的参数由输入延迟控制寄存器13、输出延迟控制寄存器14以及驱动阻抗控制寄存器16中的数值来确定。如图4所示,这些寄存器的默认值可以由实验室工作(400)来确定并且可以存入安装在印刷电路板上的存储器(401)。印刷电路板可以安装在装置中(402),并且如果需要的话,存入寄存器的数值可以在装置的操作期间进行调整(403)。正如以下更详细解释的,图5是400的更详细的描述,而图6是403的更详细的描述。图7描述了由图5和图6的方法所调用的方法,而图8描述了由图7的方法所调用的方法。PCB 2可以包括存储关于PCB 2的配置信息64的一个或更多个存储器62。配置信息64可以包括影响编程到驱动阻抗控制寄存器16和输出延迟控制寄存器14的数值的信息,例如电气地耦合到导体8的器件6的类型和数量,并且可选择地包括关于导体8的拓扑和阻抗的信息。配置信息64还可以包括影响编程到输入延迟控制寄存器13的数值的信息,例如将电信号发送到导体10的器件6的类型、电气地耦合到导体10的可选的器件50的类型和数量,并且可选地包括关于导体10的拓扑和阻抗的信息。PCB 2可以包括存储用于编程驱动阻抗控制寄存器16和输出延迟控制寄存器14以及用于编程延迟控制寄存器13的信息的存储器52。可替换地,存储器52可以是控制器4的部分。这样的信息可以以例如以下的数据结构来安排驱动阻抗查找表(LUT) 54、输出窗口(window)中心查找表56、输入窗口中心查找表58以及黄金模式表60。存储器52的数据结构的所有或一些中的数据可以是可编程的。此外,存储器52可以包括一个或更多个存储器器件,并且数据结构可以分布在这些器件中。存储器52还可以包括用于实现图6、图7和图8的方法的软件模块。驱动阻抗LUT 54可以包括一个或更多个表项(entry)。针对导体8上的特定的总的电容性负载、导体8上的特定的阻抗和输入通道22的特定的输入阻抗的表项可以包括控制可编程输出缓冲器28的源驱动阻抗的数值以及控制可编程输出缓冲器28的反向驱动阻抗的另一数值,这两个数值使条件(a)能够满足。输出窗口中心LUT 56可以包括一个或更多个表项。针对导体8上的特定的总的电容性负载、特定的时间偏移Tskw、导体8的特定的阻抗和输入通道22的特定的输入阻抗的表项可以包括控制可编程延迟单元26引入的时间延迟Tpdi的数值,该数值使得条件(b)和(C)能够满足。输入窗口中心LUT 58可以包括一个或更多个表项。针对导体10的特定的总的电容性负载、特定的时间偏移Tskw、导体10的特定的阻抗和输入通道36的特定的输入阻抗的表项可以包括控制可编程延迟单元42引入的时间延迟Tpd2的数值,该数值使得条件(e)和Cf)能够满足。黄金模式表60可以包括数值的模式,该数值用于测试输入通道22是否准确地采样导体8上的信号的逻辑电平。例如,黄金模式表60可以包括针对维持时间/建立时间违例(violation)设计的松弛(relaxed) /压力(stress)测试模式。要用到的精确的模式可以依赖于许多因素,例如导体8的具体的拓扑以及在导体8上传递数值使用的协议。然而,当这些针对维持(建立)时间违例的数值的模式在导体8上产生并且时间延迟Tpdi接近其范围的最小值(最大值)时,相比于用于压力测试模式,用于松弛测试的模式的输入通道22可以更有可能准确地采样导体8上的信号的逻辑电平。类似地,黄金模式表60可以包括数值的模式,该数值用于测试输入寄存器44是否准确地采样导体10上的信号的逻辑电平。例如,黄金模式表60可以包括针对维持时间/建立时间违例设计的松弛/压力测试模式。要用到的精确的模式可以依赖于许多因素例如导体10的具体的拓扑以及在导体10上传递数值使用的协议。然而,当这些用于维持(建立)时间违例的数值的模式在导体10上产生并且时间延迟Tpd2接近于其范围的最小值(最大值)时,相比于用于压力测试的模式,用于松弛测试的模式的输入寄存器44可以更有可能准确地采样导体10上的信号的逻辑电平。此外黄金模式表60可以是可编程的,并且当提供更加有效的测试的模式被开发
出时,如果需要的话,其内容可以被更新或替换。图5示出根据本发明的一些实施例确定要存入驱动阻抗LUT 54、输出窗口中心LUT56和输入窗口中心LUT 58的默认值的示例性方法的流程图。虽然本发明的范围不限于此,图5的方法可以在特定的类型的PCB 2和安装在其之上的存储器52的组合的大批量生产之前执行。存储器52的“验证”版本可以例如使用控制器4的仿真和验证测试来产生(302),以确定存入驱动阻抗查找表54、输出窗口中心查找表56和输入窗口中心查找表58的表项中的“验证”数值。然而,由于例如PCB 2、控制器4、器件6和可选的器件50的制造公差,关于导体8上的信号的一个或更多个定时参数(Ta^ TPD1、Tphli, Tplhi, Tsui, Thi和Tskw)和关于导体10上的信号的一个或更多个定时参数和Tskw)可以具有与在仿真和验证测试期间用于定义存入存储器52的验证版本的“验证”数值的值偏离(deviate)的值。因此,在某些操作条件下,存入存储器52的验证版本的数值可能不足以使得输入通道22准确地采样导体8上的信号的逻辑电平并且不足以使输入寄存器44准确地采样导体10上的信号的逻辑电平。如果不期望表54、56和58的表项的校准(502 ),存储器52的验证版本可以用作存储器52的“产品(piOduction)”版本(504)。因此,寄存器的默认值是验证值。如果期望校准(502),可以在PCB 2上安装存储器52的“验证”版本(506)。PCB2可以被上电(power up)并且可以随后读取配置信息64。基于配置信息64选择验证存储器的驱动阻抗查找表54、输出窗口中心查找表56和输入窗口中心查找表58的适当的表项,并且在选出的表项中的数值可以分别被编程到驱动阻抗控制寄存器16、输出延迟控制寄存器14和输入延迟控制寄存器13 (508)。可以使控制器4和器件6处于操作条件(510)下。例如,控制器4和器件6可以例如通过切换(toggle)导体8上的信号和导体10上的信号而被加热到操作温度,例如50° C。当到达期望的温度时,可以执行结合图7更详细描述的校准序列,以确定驱动阻抗查找表54和输出窗口中心查找表56的数值,该数值针对PCB 2的具体的参数和安装在PCB2上的器件6和控制器4的具体参数来校准。此外,可以执行类似的校准序列(512)以确定输入窗口中心查找表58的数值,该数值针对PCB 2的具体的参数和安装在PCB 2上的器件
6、可选的器件50和控制器4的具体参数来校准。可以使用由校准序列确定的值来更新驱动阻抗查找表54、输出窗口中心查找表56和输入窗口中心查找表58的一个或更多个适当的表项(514),并且可以创建使用已更新值作为寄存器的默认值的存储器52的产品版本。此外,如果可能存在PCB 2的不同配置(例如,控制器4和可选的器件50可以永久地安装在PCB 2上,而PCB 2的不同配置可以具有不同类型和数量的器件6)并且期望使得存储器52的表存储适合于每个不同配置的表项,那么可以在创建 要被安装在PCB 2上的存储器52的产品版本(504)前为每个配置(516和518)重复校准过程(508到514)。图6图示根据本发明的一些实施例的示例性方法的流程图,用于确定编程到驱动阻抗控制寄存器16和输出延迟控制寄存器14的数值,从而输入通道22准确地采样导体8上的信号的逻辑电平,以及确定编程到输入延迟控制寄存器13的数值,从而输入寄存器44准确地采样导体10上的信号的逻辑电平。虽然本发明的范围不限于此,包括图I中的PCB 2的装置每次上电时,可以执行图6的方法。PCB 2已在其上安装有控制器4、一个或更多个器件6、可选的器件50、存储器62和存储器52的产品版本。可以给PCB 2上电并且随后读取配置信息64。可以基于配制信息64选择驱动阻抗查找表54、输出窗口中心查找表56和输入窗口中心查找表58的适当的表项,并且可以将在选出表项中的数值分别编程到驱动阻抗控制寄存器16、输出延迟控制寄存器14和输入延迟控制寄存器13 (508)。可以使控制器4和器件6处于操作条件(510)下。例如,控制器4和器件6可以例如通过切换导体8上的信号和导体10上的信号而被加热到操作温度,例如50°C。当到达期望的温度时,使用存入黄金模式表60的针对维持时间和建立时间违例设计的压力测试的模式来测试输入通道22准确地采样导体8上的信号的逻辑电平和输入寄存器44准确地采样导体10上的信号的逻辑电平(612)。如果测试失败(614),该方法可以退出,同时报告该失败(616)。可选择地,在退出前,可以使用存入黄金模式表60的针对维持时间和建立时间违例设计的松弛测试的模式来重复该测试(618)。如果该重复测试失败(620),该方法可以退出,同时报告该失败(616)。然而,如果压力测试没有失败或者如果松弛测试没有失败,该方法可以继续到关于上电校准的判断622。如果期望在驱动阻抗控制寄存器16和输出窗口延迟控制寄存器14中的数值的上电校准(622),可以执行关于图7更详细描述的校准序列以确定驱动阻抗控制寄存器16和输出窗口延迟控制寄存器14的数值,该数值针对PCB 2的当前参数和安装在PCB 2上的器件6和控制器4的当前参数而被调整。此外,可以执行类似的校准序列(512)以确定输入延迟控制寄存器13的数值,该数值针对PCB 2的当前参数和安装在PCB 2上的器件6、可选器件50和控制器4的当前参数而被调整。如果校准失败(624),该方法可以退出,同时报告该失败(626)。但是,如果该校准没有失败并且如果该校准序列为驱动阻抗控制寄存器16、输出延迟控制寄存器14和输入延迟控制寄存器13中的至少一个确定不同于在508中编程的默认值的值,对应寄存器的内容将被校准序列确定的值所替换(630 )。在控制器4和器件6操作期间,周围温度的改变、控制器4和器件6的电源电压的漂移(drift)和其他因素可以导致导体8和10上的信号的定时参数的变化。为了补偿这些变化,如果需要的话,可以在反复操作(recurring)的基础来重复(632和634)对寄存器13、14和16的内容的校准(512)。该校准的重复甚至可以发生在不需要上电校准(622)的情况下。应该注意到,即使在上电时刻,基于配置信息64的存入存储器52和编程到寄存器的默认值导致了使用压力黄金模式的实际运行(alive)测试或使用松弛黄金模式的实际运行测试的成功执行,实际运行测试可能在小的余量上成功。通过使用校准序列校准所述值并且使用校准值来更新寄存器,使用黄金模式成功通过测试的余量可以增加。图7示出根据本发明的实施例,针对被编程到输出延迟控制寄存器14和输入延迟
控制寄存器13的数值的示例性校准序列的流程图。图5和图6的方法涉及的校准序列512可以包括图7的序列,但本发明的范围不限于此。当图7的序列被图5的方法调用时,输入延迟控制寄存器13和输出延迟控制寄存器14已经被分别被编程为来自输入中心查找表58和输出中心查找表56的默认值,根据图5的508中的配置信息64,该默认值已经从表中被选出。类似地,当图7的序列被图6的序列调用时,输入延迟控制寄存器13和输出延迟控制寄存器14已经被编程为根据图6的508中的配置信息从查找表选出的默认值或被编程为由先前的图6的630中调用图7的校准序列所确定的值。可以执行校准算法来求输出延迟控制寄存器14的值(704)。正如下面关于图8所解释的,校准算法可以为输出延迟控制寄存器14确定一个或更多个值,其中在该值上输入通道22准确地采样导体8上的信号的逻辑电平。输出延迟控制寄存器14的校准值可以被选为这些值的中间值(706)。输出延迟控制寄存器14可以随后编程为校准值(708),并且针对输入延迟控制寄存器13的值可以执行校准算法(710)。校准算法可以为输入延迟控制寄存器13确定一个或更多个值,其中在该值上输入寄存器44可以正确采样导体10上的信号的逻辑电平。输入延迟控制寄存器13的校准值可以被选为这些值的中间值(712)。然而,如果校准算法(704)不能确定输出延迟控制寄存器14的任何值,其中在该值上输入通道22准确地采样导体8上的信号的逻辑电平,那么,该方法可以报告失败(714)并退出。类似地,如果校准算法(710)不能确定输入延迟控制寄存器13的任何值,其中在该值上输入寄存器44准确地采样导体10上的信号的逻辑电平,那么,该方法可以报告失败(714)并退出。图8图示根据本发明的一些实施例的示例性校准算法的流程图,该示例性校准算法用来获得被编程到输出延迟控制寄存器14和输入延迟控制寄存器13的数值。图6的方法在704和710涉及的校准算法可以包括图8的算法,但本发明的范围不限于此。要被校准的寄存器(在图7的704中的输出延迟控制寄存器14和在图7的710中的输入延迟控制寄存器13)被编程到对应于由寄存器控制的延迟单元的值,该延迟单元具有其区间内最小延迟(802)。在第一测试中,被设计为用于建立时间违例的压力测试的模式通过信号18被发送到器件6并且从信号34被发送回控制器4 (804)。如果在信号38上接收到的数值与通过信号18发送的数值不同(806),被编程的值被标记为失败(808)。然而,如果在信号38上接收到的数值与从信号18发送的数值匹配,执行第二测试。在第二测试中,被设计为用于维持时间违例的压力测试的模式通过信号18被发送到器件6并且从信号34被发送回控制器4 (810)。如果在信号38上接收到的数值与通过信号18发送的数值不同(812),被编程的值被标记为失败(808)。然而,如果在信号38上接收的数值与从信号18发送的数值匹配(806),被编程的值被标记为通过(814)。要被校准的寄存器可以随后被编程为增大的值,从而由寄存器控制的延迟单元具有仍处于其区间内的增大的延迟(848),并且第一测试(和第二测试,如果适合)可以被重复。增大的被编程的值可以被标记为失败或通过。当寄存器的所有的可编程值都已经被测
试(816)后,核查可编程值的结果(820)。如果所有的编程值使测试失败,那么报告失败并且该方法退出。如果并非所有的编程值使测试失败,那么报告通过测试的值(824)并且该方法退出。双向信号前面的描述集中于分开的导体8和10,其中每个导体载送各自的信号。然而,本发明的实施例同样可以应用于将控制器4的输出通道12电气耦合到器件6的输入通道22以及将器件6的输出通道32电气耦合到控制器4的输入通道36的单个导体的情况。在控制器4内,可编程输出缓冲器28的输出和输入缓冲器40的输入将被电气耦合。在器件6内,通道32的输出和通道22的输入将被电气耦合。可以使用任何适当的技术来确保在任何给定的时间输出通道12和输出通道32中只有一个在单个导体上发送信号,该技术包括例如开漏(open drain)输出和高阻抗输出的公知技术。导体组前面的描述集中于单个导体8和10。在前面的描述中,每个导体具有各自的输入通道和输出通道,其中控制器4中的通道由寄存器控制。然而应该理解,当一组导体类似时,控制器4可以具有包括用于控制导体组中的导体的输入通道的单个输入延迟控制寄存器,以及用于控制导体组中导体的输出通道的单个输出延迟控制寄存器和单个驱动阻抗控制寄存器。在导体组中的导体间的相似性可以包括例如在可应用的情况下的迹线拓扑的相似性、信号转换行为的相似性和信号协议的相似性。例如,如果地址信号用64位来表示,那么载送这些位的64个导体可以被视为相同组的一部分,并且控制器4可以包括单个输出延迟控制寄存器和单个驱动阻抗控制寄存器,以控制地址信号的64个导体的输出通道。示例件装置根据本发明的一些实施例在图9中示出了示例性装置900。装置900可以包括印刷电路板(PCB) 902。装置900可以可选地包括音频输入器件901。在图9中未示出装置900的公知的组件和电路,以免模糊本发明。装置900的示例的非穷据性列表包括桌面型个人计算机、服务器计算机、膝上型计算机、笔记本式计算机、手持型计算机、个人数字助理(PDA)、移动电话等,以及任何具有高速总线和存储器子系统的嵌入式应用。
处理器903、基本输入/输出系统(BIOS)器件952、存储器控制器904、存储器库(bank)916和可选的存储器库917可以安装在PCB 902上。(在一些实施例中,存储器控制器904可以是处理器903的一部分。)图形芯片905可以可选地安装在PCB 902上。未示出也可以安装在PCB 902上的附加组件,以免模糊本发明。处理器903的示例的非穷举性列表包括中央处理单元(CPU)、数字信号处理器(DSP)、精简指令集计算机(RISC)、复杂指令集计算机(CISC)等。此外,处理器903可以是专用集成电路(ASIC)的一部分,或者可以是专用标准产品(ASSP)的一部分。BIOS器件952的示例的非穷举性列表包括闪存存储器、电可擦除可编程只读存储器(EEPROM)等。BIOS器件952可以包括用于实现图6、图10A-10D和图8的方法的软件模块。存储器控制器904的示例的非穷举性列表包括总线桥(bridge)、外设部件互联
(PCI)北桥、PCI南桥、图形加速端口(AGP)桥、存储器接口器件等,或它们的组合。此外,存储器控制器904可以是专用集成电路(ASIC)的一部分,或芯片组的一部分,或专用标准产品(ASSP)的一部分。存储器库916和917中的一个或两个可以是可移除模块,例如双列直插式存储器模块(DMM)、小型双列直插式存储器模块(SODMM)、单列直插式存储器模块(SMM)、RAMBUS直插式存储器模块(RIMM)等。可替换地,存储器库916和917中的一个或两个可以是不可移除的,例如可以永久地附接在PCB 902上。存储器库916和917可以分别包括一个或更多个存储器器件906和907。存储器器件906和907的示例的非穷举性列表包括同步动态随机访问存储器(SDRAM)器件、RAMBUS动态随机访问存储器(RDRAM)器件、双倍数据速率(DDR)存储器器件、静态随机访问存储器(SRAM)等。BIOS器件952是图I的存储器52的特定实施例,存储器控制器904是图I的控制器4的特定实施例,而存储器器件906和907是图I的器件6的特定实施例。因此,以下描述将关注控制存储器控制器904中的寄存器的编程,该存储器控制器904控制存储器控制器904和存储器器件906和907间的信号的存储器控制器904中的输入和输出通道。存储器控制器904可以通过各种导体组耦合到存储器器件906和存储器器件907。对于一组载送一个或更多个输出信号的一个或更多个导体来说,存储器控制器904可以包括类似于图I的输出通道12的一个或更多个输出通道(未示出)。对于一组载送一个或更多个输入信号的一个或更多个导体来说,存储器控制器904可以包括类似于图I的输入通道36的一个或更多个输入通道(未不出)。导体920的一组可以载送用于从存储器器件906和/或存储器器件907读取数据的存储器数据输入(MDIN)信号。导体920还可以载送用于将数据写入存储器器件906和/或存储器器件907的存储器数据输出(MDOUT)信号。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制在导体920上输出MDOUT信号存储器控制器904的输出通道。类似地,存储器控制器904可以包括单个输入延迟控制寄存器,用于控制接收导体920上的MDIN信号的存储器控制器904的输入通道。导体922的另一组可以将地址信号从存储器控制器904载送到存储器器件906和/或存储器器件907。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制在导体922上输出地址信号的存储器控制器904的输出通道。单个导体924可以将时钟信号从存储器控制器904载送到存储器器件906和/或存储器器件907 (类似于图I的时钟20和时钟24)。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制在导体924上输出时钟信号的存储器控制器904的输出通道。导体926 (927)的另一组可以将“芯片选择”信号从存储器控制器904载送到存储器器件906(907)。芯片选择信号用于向特定存储器器件通知在其他导体上发送的信号,也即地址信号和MDIN信号,是针对该存储器器件的。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制将导体926上的芯片选择信号输出的存储器控制器904的输出通道,并且可以包括另一个单个驱动阻抗控制寄存器和另一个可选的单个输出延迟控制寄存器,用于控制在导体927上输出芯片选择信号的存储
器控制器904的输出通道。
_0] 示例性的校准序列图10A-10D是根据本发明的一些实施例,要被编程到存储器控制器904的延迟控制寄存器的数值的示例性校准序列的流程图描述。图10A-10D的示例性校准序列所影响的控制寄存器有a) “数据输出延迟控制寄存器” 一用于在导体920上输出MDOUT信号的存储器控制器904的输出通道的输出延迟控制寄存器(在图IOA中示出数据输出延迟控制寄存器的校准过程);b) “数据输入延迟控制寄存器用于接收导体920上的MDIN信号的存储器控制器904的输入通道的输入延迟控制寄存器(在图IOB中示出数据输入延迟控制寄存器的校准过程);c)“地址延迟控制寄存器”一用于在导体922上输出地址信号的存储器控制器904的输出通道的输出延迟控制寄存器(在图IOC中示出地址延迟控制寄存器的校准过程);d) “第一芯片选择控制寄存器” 一用于在导体926上将芯片选择信号输出到存储器器件906的存储器控制器904的输出通道的输出延迟控制寄存器(在图IOD中示出第一芯片选择控制寄存器的校准过程);以及e) “第二芯片选择控制寄存器” 一用于在导体927上将芯片选择信号输出到存储器器件907的存储器控制器904的输出通道的输出延迟控制寄存器(在图IOD中示出第二芯片选择控制寄存器的校准过程)。在产品BIOS的产生期间,当图10A-10D的序列被调用时,寄存器已经被处理器903使用来自BIOS器件952中的查找表的值编程,该值已经由处理器903根据存储在存储器(例如EEPR0M、闪存存储器等)中的配置信息936选出。例如,当存储器库916和/或存储器库917是DIMM存储器时,用于读取配制信息936和937的协议可以是串行存在检测(STO)协议。类似地,在上电校准或反复校准(recurring calibration)期间,当图10A-10D的序列被调用以补偿改变(如图6所示)时,已经用根据配制信息936和937选自BIOS器件952中的查找表的值或由之前对10A-10D的校准序列的调用所确定的值编程了寄存器。
可以对“数据输出延迟控制寄存器”的值执行校准算法,其中存储器控制器904的延迟控制寄存器可以被编程到默认值(1000),并且存储器数据输出信号(MDOUT)被发送到存储器器件906(1002)。以上结合图8描述了示例性的校准算法。正如上面结合图8所解释的,校准算法可以为“数据输出延迟控制器寄存器”确定一个或更多个值,其中在该值上存储器器件906的输入通道准确地采样导体920上的MDOUT信号的逻辑电平。存储器控制器904的延迟控制寄存器可以被编程到默认值(1004)。可以为“数据输出延迟控制寄存器”的值重复校准算法,其中,这一次存储器数据输出(MDOUT)信号被发送到存储器器件907 (1006)。这一次,校准算法可以为“数据输出延迟控制器寄存器”确定一个或更多个值,其中在该值上存储器器件907的输入通道准确地采样导体920上的MDOUT信号的逻辑电平。如果在1002和1006中由校准算法确定的值中的一些定义了通过算法测试的值的重叠区域,那么“数据输出延迟控制寄存器”的校准值可以被选为这些 重叠值的中间值(1008)。随后可以用校准值编程“数据输出延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1010)。可以对“数据输入延迟控制寄存器”的值执行校准算法,其中从存储器器件906接收存储器数据输入信号(MDIN) (1012)。校准算法可以为“数据输入延迟控制寄存器”确定一个或更多个值,其中在该值上存储器控制器904的输入通道准确地采样导体920上的来自存储器器件906的MDIN信号的逻辑电平。随后可以用校准值编程“数据输出延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1014)。可以为“数据输入延迟控制寄存器”的值重复校准算法,其中,这一次存储器数据输入(MDIN)信号接收自存储器器件907 (1016)。这一次,校准算法可以为“数据输入延迟控制器寄存器”确定一个或更多个值,其中在该值上存储器器件904的输入通道准确地采样导体920上的来自存储器器件907的MDIN信号的逻辑电平。如果在1012和1016中由校准算法确定的值中的一些定义了通过了算法测试的值的重叠区域,那么“数据输入延迟控制寄存器”的校准值可以被选为这些重叠值的中间值(1018)。随后可以用校准值编程“数据输出延迟控制寄存器”和“数据输入延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1020)。可以对“地址延迟控制寄存器”的值执行校准算法(1022)。校准算法可以为“地址延迟控制寄存器”确定一个或更多个值,其中在该值上存储器器件906的输入通道准确地采样导体922上的地址信号的逻辑电平。随后可以用校准值编程“数据输出延迟控制寄存器”和“数据输入延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1024)可以对“地址延迟控制寄存器”的值重复校准算法,其中这一次地址信号接收自存储器器件907 (1026)。这一次,校准算法可以为“地址延迟控制器寄存器”确定一个或更多个值,其中在该值上存储器器件907的输入通道准确地采样导体922上的地址信号的逻辑电平。如果在1022和1026中由校准算法确定的值的一些定义了通过算法测试的值的重叠区域,那么“地址延迟控制寄存器”的校准值可以被选为这些重叠值的中间值(1028)。随后可以用校准值编程“数据输出延迟控制寄存器”、“数据输入延迟控制寄存器”和“地址延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1030 )。可以对“第一芯片选择延迟控制寄存器”的值执行校准算法(1032)。校准算法可以为“第一芯片选择延迟控制寄存器”确定一个或更多个值,其中在该值上存储器器件906的输入通道准确地采样导体926上的芯片选择信号的逻辑电平。“第一芯片选择延迟控制寄存器”的校准值可以被选为这些值的中间值(1034 )。随后可以用校准值编程“数据输出延迟控制寄存器”、“数据输入延迟控制寄存器”、“地址延迟控制寄存器”和“第一芯片选择延迟控制寄存器”,并且可以用默认值编程其他的延迟控制寄存器(1036)。可以对“第二芯片选择延迟控制寄存器”的值执行校准算法(1038)。校准算法可以为“第二芯片选择延迟控制寄存器”确定一个或更多个值,其中在该值上存储器器件907的输入通道准确地采样导体927上的芯片选择信号的逻辑电平。“第二芯片选择延迟控制寄存器”的校准值可以被选为这些值的中间值,并且“第二芯片选择延迟控制寄存器”可以被编程到校准值(1040)。如果在校准算法的执行期间测试失败,可以报告该失败(1042)。用于示例性校准算法的延迟值和黄金模式在一个实施例中,为图9的装置从图10A-10D的校准序列中调用图8的校准算法。在本实施例中,时钟924的频率是133兆赫,然而在其他实施例中,该频率可以具有其他值,例如100兆赫、166兆赫、200兆赫、266兆赫等。对于时钟频率是133兆赫的情况,时钟924以周期Tpekmd = 7. 519纳秒振荡。当存储器库916和存储器库917是DIMM存储器时,紧随时钟924的上升沿的由存储器库916或存储器库917发送的导体920上的MDIN信号最终保持稳定的时间(maxd^+T·,TC02+TPHL2))可以是例如大约I. 8纳秒到大约4. 2纳秒,也就是大约2. 4纳秒的区间。maxO^+T—,TC02+TPHL2)的精确值可以例如取决于存储器器件906和存储器器件907的数量和类型。在本实施例中,由接收导体920上的MDIN信号(由图8的校准算法的点818上的“数据输入延迟控制寄存器”控制)的存储器控制器904的输入通道的可编程延迟单元引入的延迟Tpd2可以具有以下值
权利要求
1.一种与一个或多个存储器器件通信的存储器控制器,包括 耦合到导体的输出缓冲器,所述导体耦合到存储器器件的输入缓冲器,所述输出缓冲器具有可操作用于在所述控制器操作时相关于所述导体被校准的输出驱动阻抗;以及 电路,控制来自所述输出缓冲器的数据信号延迟用于符号眼中心过程以将来自所述控制器的写操作校准到所述存储器器件。
2.如权利要求I所述的存储器控制器,其特征在于,所述导体实现双向、单端的信号通道。
3.如权利要求I所述的存储器控制器,其特征在于,所述数据在脱离来自所述控制器的前向时钟的情况下被写入所述存储器器件。
4.如权利要求I所述的存储器控制器,其特征在于,所述输出缓冲器是作为DDR接口的部分的多个相似输出缓冲器之一。
5.如权利要求4所述的存储器控制器,其特征在于,用于所述输出缓冲器的每一个的延迟可被独立校准以使其符号眼居中。
6.如权利要求I所述的存储器控制器,其特征在于,所述电路包括用于控制所述数据信号延迟的可编程延迟单元。
7.如权利要求6所述的存储器控制器,其特征在于,所述可编程延迟单元包括由两个或更多数值的控制信号确定的可变阻抗电路。
8.如权利要求7所述的存储器控制器,其特征在于,所述控制信号响应于所述控制器输出缓冲器和存储器器件输入缓冲器的行为中的物理参数变化而被设置。
9.如权利要求7所述的存储器控制器,其特征在于,还包括寄存器,所述寄存器耦合到所述可编程延迟单元以存储确定由所述可编程延迟单元引入的时间延迟的值。
10.如权利要求I所述的存储器控制器,其特征在于,还包括至少一个寄存器,所述寄存器存储用于确定输出驱动阻抗的输出缓冲器源驱动阻抗的第一值,并且存储用于确定输出驱动阻抗的反向驱动阻抗的第二值。
11.一种具有DDR接口以与存储器器件通信的控制器,包括 输入缓冲器,从耦合到存储器器件输出缓冲器的导体接收电信号;以及 电路,依据符号眼中心过程来控制从所述存储器器件输出缓冲器到控制器输入缓冲器的数据信号延迟以将来自所述控制器的读操作校准到器件。
12.如权利要求11所述的控制器,其特征在于,所述电路包括耦合到所述输入缓冲器的可编程延迟单元; 其中所述可编程延迟单元至少包括耦合到低电源轨的电容器;耦合到所述可编程延迟单元的输出的导体;以及并联耦合到所述导体和所述电容器的两个或更多通过门。
13.如权利要求12所述的控制器,其特征在于,还包括寄存器,所述寄存器耦合到所述可编程延迟单元以存储确定由所述可编程延迟单元引入的时间延迟的值。
14.如权利要求12所述的控制器,其特征在于,还包括存储用于编程到所述寄存器的一个或多个值的存储器。
15.如权利要求11所述的控制器,其特征在于,所述导体实现双向、单端的信号通道。
16.如权利要求11所述的控制器,其特征在于,所述数据在脱离来自所述控制器的前向时钟的情况下被从所述存储器器件读取。
17.如权利要求11所述的控制器,其特征在于,所述输入缓冲器是作为DDR接口的部分的多个相似输入缓冲器之一。
18.如权利要求17所述的控制器,其特征在于,用于所述输入缓冲器的每一个的延迟可被独立校准以使其符号眼居中。
全文摘要
公开一种自适应输入/输出缓冲器及其使用方法。在其输入/输出通道中具有可编程延迟单元的控制器还可以包括储存数值的分别的寄存器,所述数值控制由分别的延迟单元引入的时间延迟。通过测试在控制器和耦合到通道的一个或更多个器件之间的信号的定时可以确定被编程到寄存器的值。测试可以包括使用来自一组顺序的测试值中的测试值来设置寄存器,在从控制器到一个或更多个器件的信号上驱动特定模式,并且核查所述模式的部分是否被所述一个或更多个器件准确地接收。调整信号的定时可以涉及相对于建立和维持时间限制来进行所述信号的定中心。
文档编号G06F13/16GK102880582SQ201210310608
公开日2013年1月16日 申请日期2004年10月14日 优先权日2003年10月16日
发明者韦卡·库尔兹, 泽里格·韦纳 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1