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

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

Info

Publication number
CN1894679A
CN1894679A CNA200480037752XA CN200480037752A CN1894679A CN 1894679 A CN1894679 A CN 1894679A CN A200480037752X A CNA200480037752X A CN A200480037752XA CN 200480037752 A CN200480037752 A CN 200480037752A CN 1894679 A CN1894679 A CN 1894679A
Authority
CN
China
Prior art keywords
controller
delay unit
value
output
programmable delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200480037752XA
Other languages
English (en)
Other versions
CN1894679B (zh
Inventor
韦卡·库尔兹
泽里格·韦纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201510305117.5A priority Critical patent/CN104978297B/zh
Priority to CN201210310608.5A priority patent/CN102880582B/zh
Publication of CN1894679A publication Critical patent/CN1894679A/zh
Application granted granted Critical
Publication of CN1894679B publication Critical patent/CN1894679B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Pulse Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Dram (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

在其输入/输出通道中具有可编程延迟单元的控制器还可以包括储存数值的分别的寄存器,所述数值控制由分别的延迟单元引入的时间延迟。通过测试在控制器和耦合到通道的一个或更多个器件之间的信号的定时可以确定被编程到寄存器的值。测试可以包括使用来自一组顺序的测试值中的测试值来设置寄存器,在从控制器到一个或更多个器件的信号上驱动特定模式,并且核查所述模式的部分是否被所述一个或更多个器件准确地接收。调整信号的定时可以涉及相对于建立和维持时间限制来进行所述信号的定中心。

Description

自适应输入/输出缓冲器及其使用方法
发明背景
随着数字系统中使用的频率的增加,满足定时约束变得更加困难或者甚至是不可能的。
例如,公共时钟总线协议被用来在存储器器件和存储器控制器间传递数据、地址和控制信号。这些信号相对于存储器器件和存储器控制器两者公共的时钟而被采样。随着公共时钟的周期减少到与总线上的建立(set-up)和维持(hold)时间要求相同的量级(order),在信号定时(timing)中涉及的印刷电路板和不同半导体的制造公差(tolerance)可能没有严格到足以保证所有具有类似配置的系统可以满足定时要求。
此外,在例如个人计算机(PC)的“开放式”系统中,很多不同的系统配置是可能的,所述系统包括来自不同来源的印刷电路板和不同类型和数量的存储器设备。每种这样的配置可以具有不同的定时特性并且这些整体的特性可能超出存储器控制器的定时公差。
因此,具有特定配置的系统可能不能运转,而其他的系统可能具有边缘操作并且可能在某些环境条件下不能运转。
附图简要说明
在附图的视图中,本发明的实施方案以实施例的形式,而非限制性的形式来示出,其中:
图1是其上已经安装了器件和控制器的印刷电路板的方框图;
图2和图3是帮助理解本发明的一些实施方案的示例性的时序图;
图4图示设置和调整定时参数的方法的流程图;
图5图示产生查找表的示例性方法的流程图;
图6图示确定要编程到驱动阻抗(driving impedance)控制寄存器和输出延迟(delay)控制寄存器的数值(digital value)的示例性方法的流程图;
图7图示要编程到输出延迟控制寄存器和输入延迟控制寄存器的数值的示例性校准(calibration)序列的流程图;
图8图示要编程到输出延迟控制寄存器和输入延迟控制寄存器的数值的示例性的校准算法的流程图;
图9是包括印刷电路板的装置的方框图,所述印刷电路板具有安装在其之上的存储器控制器;
图10A-10D图示要编程到图9的存储器控制器的延迟控制寄存器的数值的示例性校准序列的流程图;以及
图11是根据本发明的一些实施方案的示例性可编程延迟单元的简化示意图。
应该可以意识到,为了描述的简单和清晰,图中所示的要素没有一定按照比例来绘制。例如,为了清晰起见,一些要素的尺寸可能相对于其他要素被放大了。此外,在被认为适当的地方,在图中重复了标号,用来指示对应的或类似的要素。
发明详细说明
在以下详细描述中,阐述了大量具体的细节以提供对本发明的实施方案的透彻理解。然而,本领域普通技术人员将会理解,无需使用这些具体的细节可以实现本发明的实施方案。此外,没有详细描述公知的方法、过程、组件和电路,以免模糊本发明。
以下详细描述的一些部分是根据算法和对计算机存储器中的数据位或二进制数字信号的操作的符号表示来介绍的。这些算法描述和表示可以是数据处理领域内的技术人员使用的技术,以将他们工作的内容传达给本领域的其他技术人员。
本发明的一些实施方案涉及设置和/或动态调整控制器的物理组件(component)的参数,所述设置和/或动态调整操作基于电气耦合到控制器的一个或更多个器件(device)的属性,并且基于将一个或更多个器件电气耦合到控制器的介质的属性。其参数正被设置和/或被调整的物理组件可以包括那些使得由控制器发送的电信号能够被一个或更多个器件准确接收的组件,以及那些使得由一个或更多个器件发送的电信号能够被控制器准确接收的组件。
如图1所示,根据本发明的一些实施方案,印刷电路板(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以周期TPERIOD纳秒(在上升沿(例如上升沿102、104和106)之间测得)振荡。在本实施例中,信号18的逻辑电平在时钟20的每个上升沿的TCO1纳秒后改变。在图2的示例性时序图中,时间延迟TCO1是恒定的,但本发明的范围不限于此。
输出通道(channel)可以包括可选的可编程延迟单元(delay cell)26和可编程输出缓冲器28。
可编程延迟单元26可以连续地采样信号18的逻辑电平,并且可以在信号30上连续地输出与信号18上采样得到的逻辑电平基本上相等的逻辑电平。当信号18的逻辑电平发生改变时,信号30的逻辑电平可以相应地在时间延迟TPD1后改变。正如以下更详细解释的,时间延迟TPD1在一时间范围内可以是可编程的,并且可以根据存入输出延迟控制寄存器14的数值来设置。
可编程缓冲器28可以接收信号30作为输入并且可以在导体8上产生输出信号,所述输出信号可以反映信号30的逻辑电平的改变。在导体8上可以使用电压电平表示逻辑电平。例如高电压电平可以表示一个逻辑电平,而低电压电平可以表示另一个逻辑电平。因此,可编程输出缓冲器28可以在导体8上产生电压电平来反映信号30的逻辑电平的改变。
虽然本发明的范围不限于此,可编程输出缓冲器28可以借助于将低电压源(例如地)通过可编程输出缓冲器28内部的反向驱动阻抗(sink driving impedance)耦合到导体8而在导体8上产生低电压电平。类似地,可编程输出缓冲器28可以借助于将高电压源通过可编程输出缓冲器28内部的源驱动阻抗(source driving impedance)耦合到导体8而在导体8上产生高电压电平。
驱动阻抗控制寄存器16可以被耦合到可编程输出缓冲器28,并且存储在驱动阻抗控制寄存器16中的数值可以控制可编程输出缓冲器28的源驱动阻抗和反向驱动阻抗。(可替换地,驱动阻抗控制寄存器16可以用两个寄存器来代替,一个用于存储可以控制可编程输出缓冲器28的源驱动阻抗的数值,另一个用于存储可以控制可编程输出缓冲器28的反向驱动阻抗的数值。)
因为从低到高的过渡时间TPLH1(从高到低的过渡时间TPHL1)可能受到可编程输出缓冲器28的源驱动阻抗(反向驱动阻抗)的影响,其中在所述过渡时间期间导体8上的信号的电压可能不能适当地表示任何逻辑电平,所以驱动阻抗控制寄存器16可以控制导体8上的信号的从低到高的过渡时间TPLH1和从高到低的过渡时间TPHL1。此外,从低到高的过渡时间TPLH1和从低到高的过渡时间TPHL1可能受到导体8的物理布局拓扑(layouttopology)、导体8上的总的电容性负载、导体8的阻抗以及输入通道22的输入阻抗的影响。
在图2中示出了时钟24的示例性时序图,虽然本发明不局限于该实施例。在本实施例中,时钟24可以以与时钟20相同的频率振荡,具有TPERIOD纳秒的周期(在上升沿之间测得),并且时钟24的上升沿距时钟20的上升沿可以具有TSKW纳秒的恒定时间偏移。
当输出通道12在时钟20的上升沿后在导体8上产生逻辑电平,输入通道22应该在时钟24的上升沿采样该逻辑电平,所述时钟24的上升沿距时钟20随后的上升沿偏移了TSKW纳秒。
例如,当输出通道12在时钟20的上升沿102(104)后在导体8上产生高逻辑电平(低逻辑电平),输入通道22应该在时钟24的上升沿114(116)采样该逻辑电平。
为了使输入通道22能够准确地采样导体8上的信号的逻辑电平,导体8上的信号的电压可能必须至少在时钟24的上升沿前的“建立时间”TSU1上稳定于相应的电压电平,并且可能必须至少在时钟24的上升沿后的“维持时间”TH1上保持稳定于该电压电平。
换句话说,为了使输入通道22准确地采样导体8上的信号的高(低)逻辑电平,必须满足以下条件:
(a)导体8上的信号的高(低)电压必须在一时间段(time period)上是稳定的,所述时间段至少等于建立时间和维持时间的和;
(b)导体8上的信号的高(低)电压必须至少在时钟24的上升沿后的TH1上是稳定的;以及
(c)导体8上的信号的高(低)电压必须至少在时钟24的上升沿前的TSU1上是稳定的。针对高电压和低电压,条件(a)可以用以下关系式来表示:
1.TPERIOD-TPLH1≥TSU1+TH1
1’.TPERIOD-TPHL1≥TSU1+TH1
条件(b)可以用以下关系式来表示(高电压和低电压的关系式相同):
2.TCO1+TPD1≥TH1+TSKW
针对高电压和低电压,条件(c)可以用以下关系式来表示:
3.TPERIOD-TCO1-TPD1-TPLH1≥TSU1-TSKW
3’.TPERIOD-TCO1-TPD1-TPHL1≥TSU1-TSKW
条件(b)和(c)可以表示为可编程延迟单元26引入的时间延时TPD1的上限和下限,如以下关系式所示:
4.TPERIOD-TPLH1-TCO1-TSU1+TSKW≥TPD1≥TH1+TSKW-TCO1
5.TPERIOD-TPHL1-TCO1-TSU1+TSKW≥TPD1≥TH1+TSKW-TCO1
可以看出,在采样高电压时,关系式1是满足关系式2和3两者的必要但不充分的条件。类似地,在采样低电压时,关系式1’是满足关系式2和3’两者的必要但不充分的条件。因此,一旦编程到驱动阻抗控制寄存器16的数值被调整,从而关系式1和1’被满足时,编程到输出延迟控制寄存器14的数值可以被调整,从而关系式4和5两者都被满足。
正如以下将详细解释的,可以通过编程到驱动阻抗控制寄存器16和输出延迟控制寄存器14的数值来调整关系式1、1’、4和5的可控参数,以补偿关系式中所有其他参数的变化,从而满足条件(a)、(b)和(c)。
关系式1和1’
TPERIOD是固定值,而建立时间TSU1和维持时间TH1的准确值可以受到例如器件6的制造公差的影响并且可以随着例如周围温度的变化而变化。通过调整可编程输出缓冲器28的源(反向)驱动阻抗,可以调整从低到高的过渡时间TPLH1(从高到低的过渡时间TPHL1)从而满足关系式1(1’),也即导体8上的信号的高(低)电压在至少等于建立时间TSU1和维持时间TH1之和的时间段上是稳定的。
应该可以理解,从低到高的过渡时间TPLH1(从高到低的过渡时间TPHL1)不是由可编程输出缓冲器28的源(反向)驱动阻抗单独来确定。相反,正如前面解释的,从低到高的过渡时间TPLH1和从高到低的过渡时间TPHL1的准确值受到导体8上的总的电容性负载、导体8的物理布局拓扑、导体8的阻抗和输入通道22的输入阻抗的影响。此外,根据例如耦合到导体8的器件6的数量和类型以及根据每个器件6的制造公差,导体8上的总的电容性负载可以变化。根据耦合到导体8的器件6的数量以及根据PCB 2的设计,导体8的物理布局拓扑可以变化。根据例如PCB 2的设计以及根据PCB 2的制造公差,导体8的阻抗可以变化。例如,根据器件6的类型和制造公差,输入通道22的输入阻抗可以变化。
因为存在如此多可以影响关系式1和1’中的其他参数的不同因素,控制从低到高的过渡时间TPLH1和从高到低的过渡时间TPHL1的能力使得关系式1和1’能够在各种情形下被满足。
关系式4和5
TPERIOD是固定值,并且在试图满足关系式4和5前,从低到高的过渡时间TPLH1和从高到低的过渡时间TPHL1将已经做过调整。然而,正如前面关于关系式1和1’所讨论的,建立时间TSU1和维持时间TH1可以受到例如器件6的制造公差的影响并且可以例如随着周围温度的变化而变化。类似地,时间延迟TCO1的准确值可以受到例如控制器4的制造公差的影响并且可以随着例如周围温度的变化而变化。此外,时钟20和时钟24的上升沿之间的时间偏移TSKW的准确值可以受到例如用于产生时钟20和时钟24的方法的影响。例如,时钟24可以通过锁相环(PLL)来产生,所述锁相环被锁定到时钟20并且具有一个恒定或变化的相位误差。在另一个实施例中,时间偏移TSKW可以作为在用于产生时钟20和时钟24的时钟分配树(未示出)中的信号间的歪斜(skew)的结果而发生,或者通过时钟分配树的信号的上升时间的差来发生。
因此,为了使输入通道22准确地采样导体8上的信号的逻辑电平,在调整可编程输出缓冲器28的反向驱动阻抗和源驱动阻抗从而满足关系式1和1’后,可以通过在输出延迟控制寄存器14中设置适当的数值来调整可编程延迟单元26的延迟TPD1从而满足关系式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以周期TPERIOD纳秒(在上升沿之间测得)振荡。在本实施例中,导体10上的信号的逻辑电平在时钟24的每个上升沿后的TCO2纳秒开始改变。在图3的示例性时序图中,时间延迟TCO2是恒定的,虽然本发明的范围不限于此。
此外,导体10上从低电压电平到高电压电平的信号的过渡可以用低到高的过渡时间TPLH2来表征,在TPLH2期间,导体10上的信号的电压可能不能适当地表示任何逻辑电平。类似地,导体10上从高电压电平到低电压电平的信号的过渡可以用高到低的过渡时间TPHL2来表征,在TPHL2期间,导体8上的信号的电压可能不能适当地表示任何逻辑电平。
从低到高的过渡时间TPLH2可以受到输出通道32的源驱动阻抗、导体10上的总的电容性负载、导体10的物理布局拓扑、导体10的阻抗和输入通道36的输入阻抗的影响。
类似地,从低到高的过渡时间TPLH2可以受到输出通道32的反向驱动阻抗、导体10上的总的电容性负载、导体10的物理布局拓扑、输出通道32的反向驱动阻抗、导体10的阻抗和输入通道36的输入阻抗的影响。
在图3的示例性时序图中,导体10上的电压在时钟24的上升沿202后的(TCO2+TPLH2)纳秒实现稳定的高电压电平,并且在时钟24的上升沿204后的(TCO2+TPHL2)纳秒实现稳定的低电压电平,并且在时钟24的上升沿206后的(TCO2+TPLH2)纳秒实现稳定的高电压电平。
输入通道36可以包括输入缓冲器40、可编程延迟单元42和输入寄存器44。输入寄存器44是用于数字子系统(未示出)的前端的一部分。
在一些实施方案中,输入缓冲器40可以接受导体10上的信号作为输入并且可以产生输出信号46,所述输出信号46可以反映导体10上的信号的逻辑电平的改变。当导体10上的信号的电压表示特定的逻辑电平,输入缓冲器40可以在信号46上输出相同的逻辑电平。然而,当导体10上的信号的电压没有适当地表示任何逻辑电平,例如在时间段TPLH2和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.TPERIOD-TPLH2≥TSU2+TH2
6’.TPERIOD-TPHL2≥TSU2+TH2
条件(e)可以用以下关系式来表示(高和低电压具有相同的关系式):
7.TCO2+TPD2+TSKW≥TH2
针对高电压和低电压,条件(f)可以用以下关系式来表示:
8.TPERIOD-TCO2-TPD2-TPLH2≥TSU2+TSKW
8’.TPERIOD-TCO2-TPD2-TPHL2≥TSU2+TSKW
条件(e)和(f)可以表示为可编程延迟单元42引入的时间延时TPD2的上限和下限,如以下关系式所示:
9.TPERIOD-TPLH2-TCO2-TSU2-TSKW≥TPD2≥TH2-TSKW-TCO2
10.TPERIOD-TPHL2-TCO2-TSU2-TSKW≥TPD2≥TH2-TSKW-TCO2
正如以下将详细解释的,可以通过编程到输入延迟控制寄存器13的数值来调整关系式9和10的可控参数(在关系式中用黑体强调),以补偿关系式中所有其他参数的变化,从而满足条件(e)和(f)。
关系式6和6’
根据本发明的实施方案,从低到高的过渡时间TPLH2和从高到低的过渡时间TPHL2是不能通过控制器4来控制的,并且因此假设满足关系式6和6’。
关系式9和10
TPERIOD是固定值,然而建立时间TSU2和维持时间TH2可以受到例如控制器4的制造公差的影响,并且可以随着例如周围的温度变化而变化。类似地,时间延迟TCO2的准确值可以受到例如器件6的制造公差的影响,并且可以随着例如周围温度的变化而变化。此外,时钟20和时钟24的上升沿之间的时间偏移TSKW的准确值可以受到例如用于产生时钟20和时钟24的方法的影响。
从低到高的过渡时间TPLH2和从低到高的过渡时间TPHL2的准确值可以受到导体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引入的时间延迟TPD1的数值,所述数值使得条件(b)和(c)能够满足。
输入窗口中心LUT 58可以包括一个或更多个表项。针对导体10的特定的总的电容性负载、特定的时间偏移TSKW、导体10的特定的阻抗和输入通道36的特定的输入阻抗的表项可以包括控制可编程延迟单元42引入的时间延迟TPD2的数值,所述数值使得条件(e)和(f)能够满足。
黄金模式表60可以包括数值的模式,所述数值用于测试输入通道22是否准确地采样导体8上的信号的逻辑电平。例如,黄金模式表60可以包括针对维持时间/建立时间违例(violation)设计的松弛(relaxed)/压力(stress)测试模式。要用到的精确的模式可以依赖于许多因素,例如导体8的具体的拓扑以及在导体8上传递数值使用的协议。然而,当这些针对维持(建立)时间违例的数值的模式在导体8上产生并且时间延迟TPD1接近其范围的最小值(最大值)时,相比于用于压力测试模式,用于松弛测试的模式的输入通道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上的信号的一个或更多个定时参数(TCO1、TPD1、TPHL1、TPLH1、TSU1、TH1和TSKW)和关于导体10上的信号的一个或更多个定时参数(TCO2、TPD2、TPHL2、TPLH2、TSU2、TH2和TSKW)可以具有与在仿真和验证测试期间用于定义存入存储器52的验证版本的“验证”数值的值偏离(deviate)的值。因此,在某些操作条件下,存入存储器52的验证版本的数值可能不足以使得输入通道22准确地采样导体8上的信号的逻辑电平并且不足以使输入寄存器44准确地采样导体10上的信号的逻辑电平。
如果不期望表54、56和58的表项的校准(502),存储器52的验证版本可以用作存储器52的“产品(production)”版本(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°。当到达期望的温度时,可以执行结合图7更详细描述的校准序列,以确定驱动阻抗查找表54和输出窗口中心查找表56的数值,所述数值针对PCB 2的具体的参数和安装在PCB 2上的器件6和控制器4的具体参数来校准。此外,可以执行类似的校准序列(512)以确定输入窗口中心查找表58的数值,所述数值针对PCB 2的具体的参数和安装在PCB2上的器件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上的信号的逻辑电平。
虽然本发明的范围不限于此,包括图1中的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℃。
当到达期望的温度时,使用存入黄金模式表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中的配置信息,所述默认值已经从表中被选出。
类似地,当图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)。
要被校准的寄存器可以随后被编程为增大的值,从而由控制器控制的延迟单元具有仍处于其区间内的增大的延迟,并且第一测试(和第二测试,如果适合)可以被重复。增大的被编程的值可以被标记为失败或通过。当寄存器的所有的可编程值都已经被测试(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中的一个或两个可以是可移除模块,例如双列直插式存储器模块(DIMM)、小型双列直插式存储器模块(SODIMM)、单列直插式存储器模块(SIMM)、RAMBUS直插式存储器模块(RIMM)等。可替换地,存储器库916和917中的一个或两个可以是不可移除的,例如可以永久地附接在PCB 902上。
存储器库916和917可以分别包括一个或更多个存储器器件906和907。存储器器件906和907的实施例的非穷举性列表包括同步动态随机访问存储器(SDRAM)器件、RAMBUS动态随机访问存储器(RDRAM)器件、双倍数据速率(DDR)存储器器件、静态随机访问存储器(SRAM)等。
BIOS器件952是图1的存储器52的特定实施例,存储器控制器904是图1的控制器4的特定实施例,而存储器器件906和907是图1的器件6的特定实施例。因此,以下描述将关注控制存储器控制器904中的寄存器的编程,所述存储器控制器904控制存储器控制器904和存储器器件906和907间的信号的存储器控制器904中的输入和输出通道。
存储器控制器904可以通过各种导体组耦合到存储器器件906和存储器器件907。对于一组载送一个或更多个输出信号的一个或更多个导体来说,存储器控制器904可以包括类似于图1的输出通道12的一个或更多个输出通道(未示出)。对于一组载送一个或更多个输入信号的一个或更多个导体来说,存储器控制器904可以包括类似于图1的输入通道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(类似于图1的时钟20和时钟24)。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制将导体924上的时钟信号输出的存储器控制器904的输出通道。
导体926(927)的另一组可以将“芯片选择”信号从存储器控制器904载送到存储器器件906(907)。芯片选择信号用于向特定存储器器件通知在其他导体上发送的信号,也即地址信号和MDIN信号,是针对该存储器器件的。存储器控制器904可以包括单个驱动阻抗控制寄存器和可选的单个输出延迟控制寄存器,用于控制将导体926上的芯片选择信号输出的存储器控制器904的输出通道,并且可以包括另一个单个驱动阻抗控制寄存器和另一个可选的单个输出延迟控制寄存器,用于控制将导体927上的芯片选择信号输出的存储器控制器904的输出通道。
示例性的校准序列
图10A-10D是根据本发明的一些实施方案,要被编程到存储器控制器904的延迟控制寄存器的数值的示例性校准序列的流程图描述。图10A-10D的示例性校准序列所影响的控制寄存器有:
a)“数据输出延迟控制寄存器”-用于将导体920上的MDOUT信号输出的存储器控制器904的输出通道的输出延迟控制寄存器(在图10A中示出数据输出延迟控制寄存器的校准过程);
b)“数据输入延迟控制寄存器”-用于接收导体920上的MDIN信号的存储器控制器904的输入通道的输入延迟控制寄存器(在图10B中示出数据输入延迟控制寄存器的校准过程);
c)“地址延迟控制寄存器”-用于将导体922上的地址信号输出的存储器控制器904的输出通道的输出延迟控制寄存器(在图10C中示出地址延迟控制寄存器的校准过程);
d)“第一芯片选择控制寄存器”-用于将导体926上的芯片选择信号输出到存储器器件906的存储器控制器904的输出通道的输出延迟控制寄存器(在图10D中示出第一芯片选择控制寄存器的校准过程);以及
e)“第二芯片选择控制寄存器”-用于将导体927上的芯片选择信号输出到存储器器件907的存储器控制器904的输出通道的输出延迟控制寄存器(在图10D中示出第二芯片选择控制寄存器的校准过程)。
在产品BIOS的产生期间,当图10A-10D的序列被调用时,寄存器已经被处理器903使用来自BIOS器件952中的查找表的值编程,所述值已经由处理器903根据存储在存储器(例如EEPROM、闪存存储器等)中的配置信息936选出。例如,当存储器库916和/或存储器库917是DIMM存储器时,用于读取配制信息936和937的协议可以是串行存在检测(SPD)协议。
类似地,在上电校准或反复校准(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以周期TPERIOD=7.519纳秒振荡。当存储器库916和存储器库917是DIMM存储器时,紧随时钟924的上升沿的由存储器库916或存储器库917发送的导体920上的MDIN信号最终保持稳定的时间(max(TCO2+TPLH2,TCO2+TPHL2))可以是例如大约1.8纳秒到大约4.2纳秒,也就是大约2.4纳秒的区间。max(TCO2+TPLH2,TCO2+TPHL2)的精确值可以例如取决于存储器器件906和存储器器件907的数量和类型。
在本实施例中,由接收导体920上的MDIN信号(由图8的校准算法的点818上的“数据输入延迟控制寄存器”控制)的存储器控制器904的输入通道的可编程延迟单元引入的延迟TPD2可以具有以下值:
  延迟(皮秒)   相对于中点的延迟(皮秒)
  0   -2000
  250   -1750
  500   -1500
  750   -1250
  1000   -1000
  1250   -750
  1500   -500
  1750   -250
  2000   0
  2250   250
  2500   500
  2750   750
  3000   1000
  3250   1250
  3500   1500
  3750   1750
其中2000皮秒的延迟TPD2大致对应于延迟TPD2的期望区间的中点。
此外,在本实施例中,导体920包括64个导体,其中每个导体表示1位。导体920的64位被分成8个字节,每个字节包括从0到7编号的八位。导体920的拓扑可以是这样的:属于不同字节的导体间的噪声耦合和干扰足够小。因此可以针对建立时间违例和维持时间违例分别测试每个字节。
此外,导体920的拓扑可以是这样的:对于每个字节,编号为3的位对于与该字节其他位耦合带来的干扰和噪声最敏感。
因此,对于组成导体920的一个字节的一组导体来说,以下黄金模式可以被用于执行建立时间违例和维持时间违例的压力测试:
  模式   时钟          写操作           读操作
  位7、6、5、4、2、1、0   位3   位7、6、5、4、2、1、0   位3
  建立   1   1   0
  2   0   1
  3   1   0   0   1
  4   0   1   1   0
  维持   5   0   1   0   1
  6   0   1
  7   0   1
  8   0   0
  9   0   1   0   0
  10   0   0   0   1
在建立时间违例的示例性的压力测试中,存储器控制器904将字节发送到存储器器件906或907,其中字节的位7、6、5、4、2、1和0具有相同的逻辑值,所述逻辑值在接续的四个时钟(时钟1-4)中的每一个时钟上发生改变,并且字节的位3在接续的四个时钟中的每一个时钟上具有相反的逻辑值。字节的位7、6、5、4、2、1和0可能产生很多噪声,并且如果存储器器件906或907在时钟3、4和5中的每一个时钟上准确地接收位3,那么测试将通过。
在维持时间违例的示例性的松弛性测试中,在时钟5-10中,存储器控制器904发送字节的位7、6、5、4、2、1和0的不变的逻辑值,以使系统稳定。在时钟5-7中,发送位3的不变的相反逻辑值,也用于使系统稳定。位3的逻辑值随后在时钟8和9上改变,并且如果存储器器件906或907在时钟9和10中的每一个时钟上准确地接收位3,那么测试将通过。
可编程延迟单元
图11是根据本发明的一些实施方案的示例性可编程延迟单元1100的简化示意图。可编程延迟单元1100可以被用于实现图1的可编程延迟单元26和/或可编程延迟单元42。
可编程延迟单元1100可以接收输入信号1102、控制信号1106、1108、1110、1112和1128,并且可以产生输出信号1104。可编程延迟单元1100可以连续地采样信号1102的逻辑电平,并且可以连续地输出信号1104上的逻辑电平,所述输出的逻辑电平与信号1102上采样的逻辑电平基本相等。当信号1102的逻辑电平发生改变时,信号1104的逻辑电平可以在时间延迟TPD后相应地改变。
时间延迟TPD在某一时间区间内可以是可编程的,并且可以根据控制信号1106、1108、1110和1112的数值被设置为十六个时间延迟中的一个。此外,控制信号1128可以使能(enable)由控制信号1106、1108、1110和1112选择的时间延迟TPD的连续调整或微粒度(fine grain)调整。例如可以使用控制信号1128,以便时间延迟TPD更接近预期值。在另一个实施例中,如果时间延迟TPD从预期值漂移,可以使用控制信号1128向TPD施加校正,例如,所述时间延迟TPD的漂移是由于以下因素中的任何因素或其组合:电源电压的变化、周围温度的变化以及控制器4的温度的变化。响应于来自用于探测这些变化的测量系统(未示出)的输出,可以产生由控制信号1128施加的校正。
可编程单元1100可以包括电容1150。正如以下将详细解释的,通过控制对电容1150充电和放电的电路的阻抗,控制信号1106、1108、1110和1112的数值可以设置时间延迟TPD。此外,通过控制对电容1150充电的电路的阻抗,控制信号1128可以调整时间延迟TPD
可编程延迟单元1100可以包括开关(switching)晶体管1114、开关晶体管1116、可变阻抗晶体管1118和非门(inverter)1120。
非门1120可以接收输入信号1102,并且可以输出信号1122,所述信号1122具有从信号1102的逻辑电平取反(invert)得到逻辑电平。
当输入信号1102的逻辑电平是逻辑“0”时,信号1122的逻辑电平是逻辑“1”,并且导体1124可以通过由开关晶体管1114呈现的足够低的阻抗ZL被耦合到低电源轨(rail)1140,并且通过由开关晶体管1116呈现的足够高的阻抗ZZ被耦合到高电源轨VCCC,因此实际上解耦合导体1124和导体1126。
当输入信号1102的逻辑电平是逻辑“1”时,信号1122的逻辑电平是逻辑“0”,并且导体1124可以通过由开关晶体管1114呈现的足够高的阻抗ZH被耦合到低电源轨1140,并且通过由开关晶体管1116呈现的足够低的阻抗ZH以及由控制器信号1128确定并由可变阻抗晶体管1118呈现的阻抗ZV被耦合到高电源轨。
然而,为了说明的简单,如果阻抗ZZ大大高于阻抗ZL和ZH,那么阻抗ZZ可以被近似为无穷阻抗。因此,使用该近似,当输入信号1102的逻辑电平是逻辑“0”时,导体1124可以通过由开关晶体管1114呈现的足够低的阻抗ZL被耦合到低电源轨1140,并且当输入信号1102的逻辑电平是逻辑“1”时,导体1124可以通过由开关晶体管1116呈现的足够低阻抗ZH以及由可变阻抗晶体管1118呈现的阻抗ZV被耦合到高电源轨VCCC。
可编程延迟单元1100可以包括通过门(pass gate)1130、1132、1134和1136。通过门1130、1130、1134和1136可以分别接收控制信号1106、1108、1110和1112作为输入。当这些控制信号中的一个的逻辑电平是逻辑“0”时,对应的通过门可以以足够高的阻抗ZZ将导体1124耦合到电容1150,因此实际上从电容1150解耦合导体1124。当这些控制信号中的一个的逻辑电平是逻辑“1”时,对应的通过门可以以足够低的阻抗将导体1124耦合到电容1150,例如通过门130的阻抗是Z1、通过门132的阻抗是Z2、通过门134的阻抗是Z3、通过门136的阻抗是Z4,。在一个实施例中,阻抗Z2可以是阻抗Z1的两倍,阻抗Z3可以是阻抗Z2的两倍,并且阻抗Z4可以是阻抗Z3的两倍。
本领域普通技术人员将会意识到,导体1124以阻抗ZPASS耦合到电容1150,所述阻抗ZPASS是一些阻抗的组合,其中通过门1130、1132、1134和1136以这些阻抗将导体1124耦合到电容1150(Z1、Z2、Z3、Z4和ZZ)。此外,根据控制信号1106、1108、1110和1112的逻辑电平的组合,ZPASS可以具有十六个值中的一个。
当输入信号1102从逻辑电平“0”断言(assert)为逻辑电平“1”时,电流从高电源轨VCCC通过阻抗ZV、ZH和ZPASS流向电容1150。因此,电容1150和导体1124上的电压电平相对于低电源轨可以增加。当导体1124上的电压变为等于或高于预定的第一阈值时,输出信号1104可以被视为具有逻辑电平“1”。从输入信号1102被断言到导体1124上的电压变为等于或高于预定的第一阈值的时间延迟TPD可以至少部分地被电容1150的电容值、高电源轨VCCC相对于低电源轨的电压电平以及阻抗ZV、ZH和ZPASS影响。
当输入信号1102从逻辑电平“1”解断言(disassert)为逻辑电平“0”时,电流从电容1150通过阻抗ZPASS和ZL流向低电源轨1140。因此,电容1150和导体1124上的电压电平相对于低电源轨可以降低。当导体1124上的电压电平变为等于或低于预定的第二阈值时,输出信号1104可以被视为具有逻辑电平“0”。从输入信号1102被解断言到导体1124上的电压变为等于或低于预定的第二阈值的时间延迟可以至少部分地被电容1150的电容值和阻抗ZL和ZPASS的值所影响。
尽管在此已图示并描述了本发明的某些特征,但是本领域普通技术人员将会想到许多修改、替换、改变和等同物。因此,可以理解,所附的权利要求书打算覆盖落入本发明的真正精神内的所有这些修改和改变。

Claims (64)

1.一种可编程延迟单元,包括:
耦合到低电源轨的电容;
耦合到所述可编程延迟单元的输出的导体;以及
并联地耦合到所述导体和所述电容的两个或更多个通过门。
2.如权利要求1所述的可编程延迟单元,其中所述通过门中的每一个的阻抗由分别的控制信号控制。
3.如权利要求1所述的可编程延迟单元,还包括:
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
4.一种可编程延迟单元,包括:
耦合到所述可编程延迟单元的输出的导体;以及
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
5.如权利要求4所述的可编程延迟单元,其中所述控制信号响应于系统的输出而被设置,所述系统测量包括所述可编程延迟单元的集成电路的行为的改变,所述改变至少部分是由所述集成电路的电源电压的变化、周围温度的变化和所述集成电路的温度的变化产生的。
6.如权利要求4所述的可编程延迟单元,其中所述控制信号是连续信号。
7.一种控制器,包括:
用于在耦合到所述控制器的导体上产生电信号的输出缓冲器;
耦合到所述输出缓冲器的可编程延迟单元,其中所述可编程延迟单元包括至少:
耦合到低电源轨的电容;
耦合到所述可编程延迟单元的输出的导体;以及
并联地耦合到所述导体和所述电容的两个或更多个通过门。
8.如权利要求7所述的控制器,还包括:
耦合到所述可编程延迟单元的寄存器,用于存储确定由所述可编程延迟单元引入的时间延迟的值。
9.如权利要求8所述的控制器,还包括:
用于存储编程到所述寄存器的一个或更多个值的存储器。
10.如权利要求7所述的控制器,其中所述控制器是存储器控制器。
11.如权利要求7所述的控制器,还包括:
耦合到所述输出缓冲器的一个或两个寄存器,用于存储确定所述输出缓冲器的源驱动阻抗的第一值和用于存储确定所述输出缓冲器的反向驱动阻抗的第二值。
12.一种控制器,包括:
用于在耦合到所述控制器的导体上产生电信号的输出缓冲器;
耦合到所述输出缓冲器的可编程延迟单元,其中所述可编程延迟单元包括至少:
耦合到所述可编程延迟单元的输出的导体;
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
13.如权利要求12所述的控制器,其中所述控制信号响应于系统的输出而被设置,所述系统测量所述控制器的行为的改变,所述改变至少部分由所述控制器的电源电压的变化、周围温度的变化和所述控制器的温度的变化产生。
14.如权利要求12所述的控制器,还包括:
耦合到所述可编程延迟单元的寄存器,用于存储确定由所述可编程延迟单元引入的时间延迟的值。
15.如权利要求14所述的控制器,还包括:
存储编程到所述寄存器的一个或更多个值的存储器。
16.如权利要求12所述的控制器,其中所述控制器是存储器控制器。
17.如权利要求12所述的控制器,还包括:
耦合到所述输出缓冲器的一个或两个寄存器,用于存储确定所述输出缓冲器的源驱动阻抗的第一值和用于存储确定所述输出缓冲器的反向驱动阻抗的第二值。
18.一种控制器,包括:
用于从耦合到所述控制器的导体接收电信号的输入缓冲器;以及
耦合到所述输入缓冲器的可编程延迟单元,其中所述可编程延迟单元包括至少:
耦合到低电源轨的电容;
耦合到所述可编程延迟单元的输出的导体;以及
并联地耦合到所述导体和所述电容的两个或更多个通过门。
19.如权利要求18所述的控制器,还包括:
耦合到所述可编程延迟单元的寄存器,用于存储确定由所述可编程延迟单元引入的时间延迟的值。
20.如权利要求19所述的控制器,还包括:
用于存储编程到所述寄存器的一个或更多个值的存储器。
21.如权利要求18所述的控制器,其中所述控制器是存储器控制器。
22.一种控制器,包括:
用于从耦合到所述控制器的导体接收电信号的输入缓冲器;以及
耦合到所述输入缓冲器的可编程延迟单元,其中所述可编程延迟单元包括至少:
耦合到所述可编程延迟单元的输出的导体;以及
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
23.如权利要求22所述的控制器,其中所述控制信号响应于系统的输出而被设置,所述系统测量所述控制器的行为的改变,所述改变至少部分由所述控制器的电源电压的变化、周围温度的变化和所述控制器的温度的变化产生。
24.如权利要求22所述的控制器,还包括:
耦合到所述可编程延迟单元的寄存器,用于存储确定由所述可编程延迟单元引入的时间延迟的值。
25.如权利要求24所述的控制器,还包括:
用于存储编程到所述寄存器的一个或更多个值的存储器。
26.如权利要求22所述的控制器,其中所述控制器是存储器控制器。
27.一种印刷电路板,包括:
图形芯片;
控制器,所述控制器包括至少:
用于在耦合到所述控制器的导体上产生电信号的输出缓冲器;
连接到所述输出缓冲器的可编程延迟单元,以直接向所述输出缓冲器提供输入;以及
耦合到所述可编程延迟单元的寄存器,以存储输出窗口中心值,所述输出窗口中心值确定所述输入相对于到所述可编程延迟单元的输入的时间延迟;以及
存储器,所述存储器具有被编程在其中的输出窗口中心值,所述输出窗口中心值用于要被安装在所述印刷电路板上并且被耦合到所述控制器的器件的一个或更多个配置。
28.如权利要求27所述的印刷电路板,其中所述控制器是存储器控制器。
29.如权利要求28所述的印刷电路板,还包括:
耦合到所述存储器控制器的一个或更多个存储器器件,并且其中所述存储器控制器通过所述导体将所述电信号驱动到所述一个或更多个器件中的一个或更多个。
30.如权利要求27所述的印刷电路板,其中所述控制器还包括:
耦合到所述输出缓冲器的一个或两个寄存器,用于存储确定所述输出缓冲器的所述源驱动阻抗的源驱动阻抗值和用于存储确定所述输出缓冲器的所述反向驱动阻抗的反向驱动阻抗值。
31.一种印刷电路板,包括:
图形芯片;
控制器,所述控制器包括至少:
用于从耦合到所述控制器的导体上接收电信号的输入缓冲器;
连接到所述输入缓冲器的可编程延迟单元,以直接接收所述输入缓冲器的输出;以及
耦合到所述可编程延迟单元的寄存器,以存储输入窗口中心值,所述输入窗口中心值确定所述可编程延迟单元的输出相对于所述输入缓冲器的所述输出的时间延迟;以及
存储器,所述存储器包括被编程的输入窗口中心值,所述输入窗口中心值用于要被安装在所述印刷电路板上并且被耦合到所述控制器的器件的一个或更多个配置。
32.如权利要求31所述的印刷电路板,其中所述控制器是存储器控制器。
33.如权利要求32所述的印刷电路板,还包括:
耦合到所述存储器控制器的一个或更多个存储器器件,并且其中所述存储器器件的一个或更多个通过所述导体将所述电信号驱动到所述存储器控制器。
34.一种印刷电路板,包括:
图形芯片;
至少包括可编程延迟单元的控制器,所述可编程延迟单元至少包括:
耦合到低电源轨的电容;
耦合到所述可编程延迟单元的输出的导体;以及
并联地耦合到所述导体和所述电容的两个或更多个通过门。
35.如权利要求34所述的印刷电路板,其中每个所述通过门的阻抗由分别的控制信号控制。
36.如权利要求34所述的印刷电路板,其中所述可编程延迟单元还包括:
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
37.一种印刷电路板,包括:
图形芯片;
至少包括可编程延迟单元的控制器,所述可编程延迟单元至少包括:
耦合到所述可编程延迟单元的输出的导体;以及
耦合到高电源轨和所述导体的可变阻抗晶体管,其中所述可变阻抗晶体管的阻抗由控制信号确定。
38.如权利要求37所述的印刷电路板,其中所述控制信号响应于系统的输出而被设置,所述系统测量所述控制器的行为的改变,所述改变至少部分由所述控制器的电源电压的变化、周围温度的变化和所述控制器的温度的变化产生。
39.如权利要求37所述的印刷电路板,其中所述控制信号是连续信号。
40.一种计算机装置,包括:
音频输入设备;以及
印刷电路板,所述印刷电路板包括:
存储器控制器,所述存储器控制器至少包括:
输出延迟控制寄存器,所述输出延迟控制寄存器用于存储输出窗口中心值,所述输出窗口中心值影响由第一可编程延迟单元直接引入到所述存储器控制器的输出缓冲器的输入的时间延迟;以及
输入延迟控制寄存器,所述输入延迟控制寄存器用于存储输入窗口中心值,所述输入窗口中心值影响由第二可编程延迟单元直接引入所述存储器控制器的数据输入缓冲器的输出的时间延迟;以及
基本输入/输出系统设备,所述基本输入/输出系统设备包括被编程在其中的输出窗口中心值和输入窗口中心值,所述输出窗口中心值和输入窗口中心值用于要被安装在所述印刷电路板上并且被耦合到所述控制器的器件的一个或更多个配置。
41.如权利要求40所述的装置,其中所述存储器控制器还包括:
为所述输出缓冲器存储源驱动阻抗值和反向驱动阻抗值的驱动阻抗控制寄存器。
42.如权利要求41所述的装置,其中所述基本输入/输出系统设备具有被编程在其中的用于存储器器件的所述一个或更多个配置的源驱动阻抗值和反向驱动阻抗值。
43.一种方法,包括:
通过控制可编程延迟单元内部的通过门的阻抗来确定由所述可编程延迟单元引入到信号的时间延迟。
44.如权利要求43所述的方法,还包括:
通过控制所述可编程延迟单元内部的可变阻抗晶体管的可变阻抗来调整所述时间延迟。
45.如权利要求44所述的方法,其中控制所述可变阻抗的操作至少包括响应于系统的输出来控制所述可变阻抗,所述系统测量包括所述可编程延迟单元的集成电路的行为的改变,所述改变至少部分由所述集成电路的电源电压的变化、周围温度的变化和所述集成电路的温度的变化产生。
46.一种方法,包括:
通过控制所述可编程延迟单元内部的可变阻抗晶体管的可变阻抗来确定由可编程延迟单元引入到信号的时间延迟。
47.如权利要求46所述的方法,还包括:
通过控制所述可编程延迟单元内部的通过门的阻抗来调整所述时间延迟。
48.如权利要求46所述的方法,其中控制所述可变阻抗的操作包括至少响应于系统的输出来控制所述可变阻抗,所述系统测量包括所述可编程延迟单元的集成电路的行为的改变,所述改变至少部分由所述集成电路的电源电压的变化、周围温度的变化和所述集成电路的温度的变化产生。
49.一种方法,包括:
针对要被安装在印刷电路板上的器件的一个或更多个配置,确定要编程到控制器的寄存器的值,所述控制器要被安装在所述印刷电路板上,
其中所述控制器和所述器件被安装在所述印刷电路板上后,所述寄存器通过影响下面因素中的一个或更多个来影响在所述控制器和所述器件之间的信号的定时:所述控制器的输出缓冲器的驱动阻抗,由第一可编程延迟单元直接引入到所述输出缓冲器的输入的时间延迟和由第二可编程延迟单元直接引入到所述控制器的输入缓冲器的输出的时间延迟。
50.如权利要求49所述的方法,还包括:
将所述值存入要被安装在所述印刷电路板上的存储器。
51.如权利要求49所述方法,还包括:
所述控制器和所述器件被安装在特定的类型的印刷电路板上后,基于在所述控制器和所述器件之间的信号的定时确定要编程到所述寄存器的校准值;以及
将所述校准值存入要被安装在所述特定的类型的印刷电路板上的存储器。
52.一种方法,包括:
将数值编程到控制器的寄存器,所述数值基于关于一个或更多个器件的配置信息从存储器取得,
其中所述寄存器通过影响下面因素中的一个或更多个来影响在所述控制器和所述器件之间的信号的定时:由第一可编程延迟单元直接引入到所述控制器的输出缓冲器的输入的时间延迟和由第二可编程延迟单元直接引入到所述控制器的输入缓冲器的输出的时间延迟。
53.如权利要求52所述的方法,还包括:
使所述控制器和所述器件处于操作条件下;以及
执行所述信号被准确地接收的一个或更多个测试。
54.如权利要求53所述的方法,其中所述一个或更多个测试测试对所述器件的输入通道的建立时间限制和维持时间限制的违例。
55.如权利要求53所述的方法,其中所述一个或更多个测试测试对所述控制器的输入通道的建立时间限制和维持时间限制的违例。
56.如权利要求53所述的方法,其中执行一个或更多个测试的操作包括至少:
在所述控制器和所述器件上执行一个或更多个压力测试;以及
如果所述一个或更多个压力测试失败,在所述控制器和所述器件上执行一个或更多个松弛测试。
57.如权利要求53所述的方法,其中执行一个或更多个测试包括至少:
将信号上的特定的模式从所述控制器驱动到所述器件;以及
核查是否所述特定的模式的部分被所述器件准确地接收。
58.一种方法,包括:
通过测试所述控制器和一个或更多个器件间的信号的定时来为控制器的寄存器确定校准数字窗口中心值,
其中所述寄存器通过影响下面因素中的一个或更多个来影响所述定时:由第一可编程延迟单元直接引入到所述控制器的输出缓冲器的输入的时间延迟和由第二可编程延迟单元直接引入到所述控制器的输入缓冲器的输出的时间延迟。
59.如权利要求58所述的方法,其中确定所述校准数字窗口中心值的操作在反复进行的基础上实现。
60.如权利要求58所述方法,其中测试所述信号的定时至少包括:
针对一组连续测试值中的每个测试值:
将所述寄存器中的特定一个设置为所述测试值;
将信号上的特定的模式从所述控制器驱动到所述器件;以及
核查所述特定的模式的部分是否准确地被所述器件接收,
其中所述组中下述测试值被确定为用于所述特定的寄存器的校准数字窗口中心值,所述下述测试值是最接近所述组中所述部分被准确地被接收的测试值的中间值的测试值。
61.一种包括储存介质的制品,所述制品具有储存在其上的指令,当所述指令被计算机平台执行时,所述指令导致:
通过将信号上的特定的模式从控制器驱动到一个或更多个器件并且核查所述特定的模式的部分是否准确地被所述一个或更多个器件接收,从而针对所述控制器和所述一个或更多个器件的输入通道的建立时间限制和维持时间限制的违例,测试所述控制器和所述一个或更多个器件的信号的定时。
62.如权利要求61所述的制品,其中所述指令还导致:
重复对所述控制器的寄存器的所述测试操作,所述控制器的寄存器被设置为一组顺序测试值中的测试值;以及
使用所述组中下述测试值编程所述寄存器,该测试值最接近于所述组中所述部分被准确地接收的测试值的中间值。
63.如权利要求62所述的制品,其中所述寄存器控制由所述控制器的可编程延迟单元引入到所述控制器的输出信号的时间延迟。
64.如权利要求62所述的制品,其中所述寄存器控制由所述控制器的可编程延迟单元引入到所述控制器的输入信号的时间延迟。
CN200480037752XA 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法 Expired - Fee Related CN1894679B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510305117.5A CN104978297B (zh) 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法
CN201210310608.5A CN102880582B (zh) 2003-10-16 2004-10-14 可编程延迟单元、其方法以及控制器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/685,418 2003-10-16
US10/685,418 US20050083095A1 (en) 2003-10-16 2003-10-16 Adaptive input/output buffer and methods thereof
PCT/US2004/033694 WO2005038657A2 (en) 2003-10-16 2004-10-14 Adaptive input/output buffer and methods for use thereof

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201210310608.5A Division CN102880582B (zh) 2003-10-16 2004-10-14 可编程延迟单元、其方法以及控制器
CN201510305117.5A Division CN104978297B (zh) 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法

Publications (2)

Publication Number Publication Date
CN1894679A true CN1894679A (zh) 2007-01-10
CN1894679B CN1894679B (zh) 2012-09-19

Family

ID=34465468

Family Applications (3)

Application Number Title Priority Date Filing Date
CN200480037752XA Expired - Fee Related CN1894679B (zh) 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法
CN201510305117.5A Expired - Fee Related CN104978297B (zh) 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法
CN201210310608.5A Expired - Fee Related CN102880582B (zh) 2003-10-16 2004-10-14 可编程延迟单元、其方法以及控制器

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201510305117.5A Expired - Fee Related CN104978297B (zh) 2003-10-16 2004-10-14 自适应输入/输出缓冲器及其使用方法
CN201210310608.5A Expired - Fee Related CN102880582B (zh) 2003-10-16 2004-10-14 可编程延迟单元、其方法以及控制器

Country Status (6)

Country Link
US (1) US20050083095A1 (zh)
JP (1) JP2007509541A (zh)
CN (3) CN1894679B (zh)
DE (1) DE112004003057B4 (zh)
TW (1) TWI341461B (zh)
WO (1) WO2005038657A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239223A (zh) * 2013-06-20 2014-12-24 慧荣科技股份有限公司 存储器控制器及其存取系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009698B2 (en) * 2002-10-15 2015-04-14 Rpx Corporation System and method for providing computer upgrade information
US7529955B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
US8819474B2 (en) * 2009-04-03 2014-08-26 Intel Corporation Active training of memory command timing
TWI489718B (zh) * 2009-10-14 2015-06-21 Inventec Appliances Corp 儲存裝置及其運作方法
US8806093B2 (en) * 2010-04-01 2014-08-12 Intel Corporation Method, apparatus, and system for enabling a deterministic interface
KR102628533B1 (ko) * 2016-08-16 2024-01-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN108009372B (zh) * 2017-12-15 2020-07-31 中国科学院计算技术研究所 一种ddr内存虚拟写电平校准响应的方法
US11079946B2 (en) 2018-10-26 2021-08-03 Micron Technology, Inc. Write training in memory devices
CN109857684B (zh) * 2019-01-04 2020-11-06 烽火通信科技股份有限公司 通信设备板卡槽位地址和类型识别的装置、方法和系统
CN112035520A (zh) * 2019-06-03 2020-12-04 吕纪竹 一种实时判断流数据自身给定延迟重复性的方法
CN112069768B (zh) * 2020-09-08 2024-07-16 飞腾信息技术有限公司 一种针对双端口sram输入输出延时优化的方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54153565A (en) * 1978-05-24 1979-12-03 Nec Corp Semiconductor circuit using insulation gate type field effect transistor
FR2501813B1 (fr) * 1981-03-13 1986-06-13 Amiot Expl Procedes Felix Perfectionnements aux dispositifs pour accoupler selectivement a un arbre a entrainer deux organes entraineurs distincts
JPS5861629A (ja) * 1981-10-09 1983-04-12 Hitachi Ltd ビツトパタ−ン発生装置
US4584492A (en) * 1984-08-06 1986-04-22 Intel Corporation Temperature and process stable MOS input buffer
JPS61129916A (ja) * 1984-11-29 1986-06-17 Fujitsu Ltd 遅延回路
JPH0681018B2 (ja) * 1986-03-31 1994-10-12 三菱電機株式会社 半導体集積回路
JPH02195716A (ja) * 1989-01-25 1990-08-02 Nec Eng Ltd 半導体集積回路の論理ゲート回路
JPH02274121A (ja) * 1989-04-17 1990-11-08 Nec Corp Cmos遅延回路
JP2671516B2 (ja) * 1989-08-02 1997-10-29 日本電気株式会社 スキュー補正回路
DE69024582T2 (de) * 1989-10-06 1996-05-15 Sumitomo Metal Mining Co Stahllegierung zum Anwenden in spritzgegossenen pulvermetallurgisch hergestellten gesinterten Formkörpern
US5140554A (en) * 1990-08-30 1992-08-18 Texas Instruments Incorporated Integrated circuit fuse-link tester and test method
JPH0661810A (ja) * 1992-08-12 1994-03-04 Hitachi Ltd 可変遅延回路、及びこれを用いた半導体集積回路装置
JPH07115351A (ja) * 1993-10-19 1995-05-02 Hitachi Ltd 遅延回路およびそれを用いた信号処理回路、ならびにこの信号処理回路を内蔵した半導体集積回路装置
JPH08330921A (ja) * 1995-06-02 1996-12-13 Advantest Corp 可変遅延回路
JP3547854B2 (ja) * 1995-06-08 2004-07-28 株式会社ルネサステクノロジ 駆動電流調整機能付きバッファ回路
JPH09172356A (ja) * 1995-12-19 1997-06-30 Fujitsu Ltd 遅延回路及びデジタル位相ロック回路
US5847617A (en) * 1996-08-12 1998-12-08 Altera Corporation Variable-path-length voltage-controlled oscillator circuit
US5946712A (en) * 1997-06-04 1999-08-31 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory
US6073259A (en) * 1997-08-05 2000-06-06 Teradyne, Inc. Low cost CMOS tester with high channel density
JPH11145800A (ja) * 1997-11-10 1999-05-28 Toshiba Corp Cmos型可変遅延回路及びその遅延時間の制御方法並びに半導体試験装置
JP3348432B2 (ja) * 1999-09-14 2002-11-20 日本電気株式会社 半導体装置および半導体記憶装置
US6731667B1 (en) * 1999-11-18 2004-05-04 Anapass Inc. Zero-delay buffer circuit for a spread spectrum clock system and method therefor
JP2002082830A (ja) * 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
TW498778U (en) * 2000-08-03 2002-08-11 Paokai Electronic Entpr Co Ltd Structure of frame for game machine
US6868504B1 (en) * 2000-08-31 2005-03-15 Micron Technology, Inc. Interleaved delay line for phase locked and delay locked loops
US6665624B2 (en) * 2001-03-02 2003-12-16 Intel Corporation Generating and using calibration information
US7805628B2 (en) * 2001-04-02 2010-09-28 Credence Systems Corporation High resolution clock signal generator
US6456126B1 (en) * 2001-05-25 2002-09-24 Xilinx, Inc. Frequency doubler with polarity control
JP2003050738A (ja) * 2001-08-03 2003-02-21 Elpida Memory Inc キャリブレーション方法及びメモリシステム
EP1294205A1 (en) * 2001-09-13 2003-03-19 Alcatel Digital signal processor multi-channel time alignment device and method
US6954134B2 (en) * 2001-09-28 2005-10-11 Alps Automotive, Inc. Apparatus and method for timing an output of a remote keyless entry system
US6605969B2 (en) * 2001-10-09 2003-08-12 Micron Technology, Inc. Method and circuit for adjusting the timing of ouput data based on an operational mode of output drivers
KR100507877B1 (ko) * 2002-03-28 2005-08-18 주식회사 하이닉스반도체 면적 축소용 알디엘엘 회로
JP3498741B2 (ja) * 2002-05-07 2004-02-16 株式会社日立製作所 可変遅延回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239223A (zh) * 2013-06-20 2014-12-24 慧荣科技股份有限公司 存储器控制器及其存取系统

Also Published As

Publication number Publication date
TWI341461B (en) 2011-05-01
CN102880582A (zh) 2013-01-16
WO2005038657A2 (en) 2005-04-28
CN1894679B (zh) 2012-09-19
JP2007509541A (ja) 2007-04-12
US20050083095A1 (en) 2005-04-21
TW200525349A (en) 2005-08-01
WO2005038657A3 (en) 2005-06-16
DE112004003057B4 (de) 2011-09-15
DE112004003057A1 (de) 2008-12-18
CN104978297A (zh) 2015-10-14
CN102880582B (zh) 2016-04-27
CN104978297B (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN1655279A (zh) 在半导体存储器装置中的片内终结上的模式转移电路
CN1894679A (zh) 自适应输入/输出缓冲器及其使用方法
CN1320760C (zh) 钟控反相器、“与非”门、“或非”门和移位寄存器
CN1166060C (zh) 电压容许接口电路
CN1114267C (zh) 由时钟信号控制的电平转换电路
CN1540756A (zh) 控制输出阻抗和转换速率的半导体集成电路
CN1797951A (zh) 用于调节可编程逻辑器件的性能特性的设备和方法
CN1272763C (zh) 显示装置
CN1244066C (zh) 串扰分析方法、利用串扰的电子线路装置的设计和制造方法、以及用于该目的的电子电路库的记录媒体
CN1617336A (zh) 半导体集成电路装置
CN1204126A (zh) 可以减少备用时耗电的同步式半导体存储器
CN1914818A (zh) 针对漂移条件的通信信道校准
CN1606095A (zh) 能调节数据输出驱动器的阻抗的半导体存储器件
CN1495792A (zh) 半导体集成电路
CN1700346A (zh) 用于监视存储设备的内部控制信号的方法及其装置
CN100338684C (zh) 可在电源电压相异的两个系统中使用的半导体装置
CN1941196A (zh) 半导体存储装置
CN1630190A (zh) 延迟调整电路、集成电路装置以及延迟调整方法
CN1601597A (zh) 显示驱动器、电光学装置以及电光学装置的驱动方法
CN1169156C (zh) 具备能抑制消耗电流的接口电路的半导体存储器
CN1123834C (zh) 避免浮动状态、进行双向数据传输的双向总线电路
CN1497414A (zh) 数据转换电路和半导体装置
CN1231947C (zh) 半导体器件
CN1791802A (zh) 电源装置、测试装置以及电源电压稳定装置
CN1591694A (zh) 用于测试半导体存储器件的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120919

Termination date: 20211014

CF01 Termination of patent right due to non-payment of annual fee