背景技术:
诸如台式计算机、膝上型计算机或平板电脑、智能电话、便携式数字助理、便携式游戏控制台等的计算设备包括一个或多个处理器(比如中央处理单元、图形处理单元、数字信号处理器等)以及一个或多个存储器。为了提升较高吞吐量,这样的存储器可以是能够进行高速操作的类型,比如双倍数据速率同步动态随机存取存储器(“ddrsdram”)。
同步dram或sdram利用源同步存储器接口,其中依赖数据传送期间的数据源(“dq”)信号来提供由数据传送的目标使用的数据选通(“dqs”)信号,以在数据信号正在数据线(通道)上向目标传送时来捕获这样的数据信号。在ddrsdram中,通过dqs信号的上升沿和下降沿二者来将dq信号采样(即,锁存)在目标处。
电路布线的密集走线可能提升相邻布线(包括那些携带dq和dqs信号的布线)之间的串扰。阻抗不匹配也可能对dq和dqs信号产生不利影响,比如环回(ring-back)噪声。串扰、环回噪声和其它不利影响可以引起存储器系统中的数据错误。在其具有最大完整性的时间点处对dq信号进行采样促进了低数据错误率。
信号完整性可以由所谓的眼图来特性化。直接、常规的dq信号采样技术基于以下假设:dq信号在眼睛中心处具有最大的信号完整性。相应地,在这样的常规技术中,将dqs信号关于dq信号来延迟,以在它们之间提供90度的相位偏移(skew),使得dq信号在眼睛中心处被采样。该技术可能无法使数据错误最小化,因为诸如环回噪声之类的影响可能削弱(impair)眼睛中心处的dq信号完整性。
更复杂的常规dq信号采样技术是基于校准过程的。在校准过程中,dqs和dq信号之间的相位偏移逐步通过0和180度之间的值的范围。对于dqs-dq相位偏移的每个值,将数据写入dram并从dram读回,并对错误的数量进行计数。以这种方式,生成了指示在该处错误计数最低的dqs-dq相位偏移值的直方图。随后利用该dqs-dq相位偏移值来对存储器接口进行设置或编程,使得在计算设备的正常或所谓的任务模式操作中,存储器接口在写入操作中使用该值。虽然该技术可以在上述直接的技术之上进行改进,但是诸如串扰之类的影响可能在任务模式操作期间引起数据错误。
技术实现要素:
公开了用于控制对同步动态随机存取存储器(“sdram”)系统的校准的系统、方法和计算机程序产品。
在一个方面中,方法可以包括:对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;以及使用存储器控制器和sdram来执行多个系统级存储器测试。每个存储器测试可以与在数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应。每个存储器测试可以包括:将针对存储器控制器的数据选通信号延迟设置为与多个相位偏移值中的一个相位偏移值相对应;在数据信号通道上向sdram写入多个数据字;在数据信号通道上从sdram读取多个数据字;以及确定针对存储器测试的错误计数。错误计数指示在从sdram读取的多个数据字与向sdram写入的多个数据字之间的数据不匹配错误。方法还可以包括:在多个系统级存储器测试之后,确定与在多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及将针对存储器控制器的数据选通信号延迟设置为与最佳相位偏移值相对应。
在另一个方面中,用于对存储器系统进行校准的系统可以包括:存储器系统,其包括存储器控制器和sdram。系统还可以包括一个或多个处理器,其被配置为进行以下操作:对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;以及执行多个系统级存储器测试。每个存储器测试与在数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应。一个或多个处理器可以被配置为针对每个存储器测试来进行以下操作:将针对存储器控制器的数据选通信号延迟设置为与多个相位偏移值中的一个相位偏移值相对应;在数据信号通道上向sdram写入多个数据字;在数据信号通道上从sdram读取多个数据字;确定针对存储器测试的错误计数。错误计数指示在从sdram读取的多个数据字与向sdram写入的多个数据字之间的数据不匹配错误。一个或多个处理器还可以被配置为进行以下操作:在多个系统级存储器测试之后,确定与在多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及将针对存储器控制器的数据选通信号延迟设置为与最佳相位偏移值相对应。
在另一个方面中,一种用于控制存储器系统校准的计算机程序产品可以包括体现在至少一个非暂时性存储介质中的处理器可执行逻辑单元。由系统的一个或多个处理器对逻辑单元的执行可以将系统配置为进行以下操作:对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;使用存储器控制器和sdram来执行多个系统级存储器测试。每个存储器测试可以与在数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应。由一个或多个处理器对逻辑单元的执行可以将系统配置为针对每个存储器测试来进行以下操作:将针对存储器控制器的数据选通信号延迟设置为与多个相位偏移值中的一个相位偏移值相对应;在数据信号通道上向sdram写入多个数据字;在数据信号通道上从sdram读取多个数据字;以及确定针对存储器测试的错误计数。错误计数指示在从sdram读取的多个数据字与向sdram写入的多个数据字之间的数据不匹配错误。由一个或多个处理器对逻辑单元的执行可以进一步将系统配置为进行以下操作:在多个系统级存储器测试之后,确定与在多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及将针对存储器控制器的数据选通信号延迟设置为与最佳相位偏移值相对应。
附图说明
在附图中,除非另有说明,否则相似的参考标号在各个图中指代相似的部分。对于具有字母字符标示的参考标号,例如“102a”或“102b”,字母字符标示可以区分相同附图中存在的两个相似的部分或元素。当参考标号旨在涵盖所有附图中具有相同参考标号的所有部分时,可以省略参考标号的字母字符标示。
图1是根据示例性实施例的便携式计算设备的方块图。
图2是根据示例性实施例的处理系统的方块图。
图3是根据示例性实施例的处理系统的存储器系统的方块图。
图4是根据示例性实施例的存储器系统的数据信号和数据选通信号的波形时序图。
图5是根据示例性实施例示出的用于存储器系统校准的方法的流程图。
图6是根据示例性实施例的与存储器测试错误计数对在数据信号和数据选通信号之间的相位偏移值有关的直方图。
图7是根据示例性实施例示出的用于确定削弱数据通道上的阻抗匹配的数据信号驱动器阻抗水平的方法的流程图。
具体实施方式
本文中使用的词语“示例性的”意指“用作示例、实例或说明”。在本文中被描述为“示例性的”的任何方面不一定被解释为优选的或者比其它方面更有优势的。
本文中对“sdram”或“ddr”存储器组件的引用将被理解为设想更广泛类别的同步动态随机存取存储器(“sdram”)中的任何sdram,并且不将本文中公开的解决方案的范围限制为特定类型或特定代的sdram。此外,本文中公开的解决方案的某些实施例可以适用于ddr、ddr-2、ddr-3、低功率ddr(“lpddr”)或任何后续代的sdram。
术语“中央处理单元”(“cpu”)、“数字信号处理器”(“dsp”)和“图形处理单元”(“gpu”)是可以驻留在pcd中的处理器的非限制性示例。除非另有说明外,否则这些术语在本文中可互换使用。
术语“便携式计算设备”(“pcd”)在本文中用于描述在有限容量电源(比如电池)上操作的任何设备。虽然电池操作的pcd已经使用了数十年,但与第三代(“3g”)和第四代(“4g”)无线技术的到来耦合的可再充电电池的技术进步已经使得大量pcd能够具有多种能力。因此,除了其它的之外,pcd可以是蜂窝电话或移动电话、卫星电话、寻呼机、个人数字助理(“pda”)、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接或链路的膝上型或手持计算机。
术语“组件”、“数据库”、“模块”、“系统”等在本文中指代与计算机相关的实体,不论是硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行程序,执行的线程、程序、和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以位于进程和/或执行的线程之内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质来执行。组件可以通过本地和/或远程进程的方式来进行通信,例如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统和/或跨越诸如互联网的网络中的另一个组件,通过信号的方式与其它系统进行交互的一个组件的数据)的信号。
术语“应用”或“应用程序”可以用于同义地指代具有可执行内容的软件实体,比如目标代码、脚本、字节代码、标记语言文件、补丁等等。另外,“应用”还可以包括本质上不可执行的文件,比如数据文件、配置文件、文档等。
如图1所示,在说明性或示例性实施例中,用于存储器系统校准的系统、方法和计算机程序产品可以体现在pcd100中。pcd100包括片上系统(“soc”)102,即,体现在集成电路芯片中的系统。soc102可以包括中央处理单元(“cpu”)104、图形处理单元(“gpu”)106或其它处理器。pcd102可以包括模拟信号处理器108。
显示器控制器110和触摸屏控制器112可以耦合到cpu104。在soc102外部的触摸屏显示器114可以耦合到显示器控制器110和触摸屏控制器112。pcd102还可以包括视频解码器116。视频解码器116耦合到cpu104。视频放大器118可以耦合到视频解码器116和触摸屏显示器114。视频端口120可以耦合到视频放大器118。通用串行总线(“usb”)控制器122也可以耦合到cpu104,并且usb端口124可以耦合到usb控制器122。用户身份模块(sim)卡126也可以耦合到cpu104。
一个或多个存储器可以耦合到cpu104。一个或多个存储器可以包括易失性和非易失性存储器二者,分别比如闪存存储器128和ddrsdram130。在其它实施例中,额外的存储器(比如额外的ddrsdram)可以包括在soc102的外部。耦合到cpu104的存储器控制器132控制将数据向ddrsdram130的写入以及数据从ddrsdram130的读取。在其它实施例中,这样的存储器控制器可以包括在处理器(比如cpu104)内。
立体声音频编解码器134可以耦合到模拟信号处理器108。此外,音频放大器136可以耦合到立体声音频编解码器134。第一和第二立体声扬声器138和140可以分别耦合到音频放大器136。另外,麦克风放大器142也可以耦合到立体声音频编解码器134,并且麦克风144可以耦合到麦克风放大器142。频率调制(“fm”)无线调谐器146可以耦合到立体声音频编解码器134。fm天线148可以耦合到fm无线调谐器146。此外,立体声耳机150可以耦合到立体声音频编解码器134。可以耦合到cpu104的其它设备包括数字摄像头152。
调制解调器或射频(“rf”)收发机154可以耦合到模拟信号处理器108。rf开关156可以耦合到rf收发机154和天线158。另外,按键160、具有麦克风的单声道头戴式受话器162以及振动器设备164可以耦合到模拟信号处理器108。
电源供应166可以经由功率管理集成电路(“pmic”)168来耦合到soc102。电源供应166可以包括可再充电电池或从连接到ac电源的ac到dc变压器导出的dc电源供应。
cpu104还可以耦合到一个或多个内部的、片上热传感器170a以及一个或多个外部的、片外热传感器170b。热传感器170a和170b可以产生压降,使用模数转换器(“adc”)控制器222将所述压降转换成数字信号。
触摸屏显示器114、视频端口120、usb端口124、摄像头152、第一立体声扬声器138、第二立体声扬声器140、麦克风144、fm天线148、立体声耳机150、rf开关156、rf天线172、按键160、单声道头戴式受话器162、振动器164、热传感器170b、pmic168以及电源供应166在该示例性或说明性实施例中在soc102外部。然而,将理解的是:在其它实施例中,这些设备中的一个或多个设备可以包括在这样的soc中。
术语“正常操作模式”和“任务模式”在本文中同义地用于指代而除了以下各项之外的设备的任何操作模式:其中设备正在经历配置、设定、校准、测试、引导(booting)、通电或断电,或者类似的暂时性操作的模式。例如,在正常操作模式或任务模式下,pcd100可以执行本领域普通技术人员认识到的为便携式计算设备的特性的那些操作或功能,比如语音电话、消息传送、电子邮件、视频和音频流或者回放等。这样的功能可以与应用相关联。本文中可以使用术语“业务”来指代与任务模式功能相关联的产生、发送、接收、或以其它方式传送或处理的数据。
如图2所示,在示例性实施例中,处理系统200包括处理器202和非易失性引导(boot)存储器204。处理器202和引导存储器204可以分别是pcd100(图1)的处理器和存储器。例如,处理器202可以是pcd100的cpu104。存储器204可以是pcd100的存储器128,其中可以在非易失性形式的软件或固件中,存储用于引导pcd100的功能(除了其它功能之外)。处理器202和引导存储器204可以经由一个或多个互连206(比如总线来)彼此以及与其它设备传送信号。根据常规计算原理,处理器202在软件或固件代码的控制下进行操作,所述软件或固件代码将处理器202配置为执行各种功能或方法,包括本文中描述的存储器系统校准方法。通过这样的代码,处理器202可以配置有与本文中描述的存储器系统校准方法有关的校准逻辑单元208。校准逻辑单元208可以包括阻抗逻辑单元209、相位偏移逻辑单元210、数据写入逻辑单元212、数据读取逻辑单元214和错误计数逻辑单元216。尽管逻辑单元208-216在概念上出于说明的目的示出为以软件或固件的方式存储或驻留在引导存储器204中,但应当理解的是:在处理系统200中通过处理器202的操作,在软件或固件的控制下在处理系统200中出现逻辑单元208-216,所述软件或固件可以存储在引导存储器204或其它存储器中。在操作中,逻辑单元208-216定义了处理器202的配置。处理器202因此被配置为执行本文中描述的存储器系统校准方法。尽管为了清楚起见未在图2中示出,但是除了被配置为执行本文中描述的存储器系统校准方法之外,处理器202或处理系统200可以被配置为执行常规方法,比如,例如,操作系统方法、应用程序方法等。应该指出的是:逻辑单元208-216或相关软件元素与它们在其中存储或驻留的非暂时性介质(例如,引导存储器204或其它存储器)的组合通常定义专利词汇中称为的“计算机程序产品”。另外,逻辑单元208-216定义用于执行下述功能的单元。
处理系统200还包括sdram218和存储器控制器220。sdram218可以是,例如,pcd100的ddrsdram130(图1)。存储器控制器220可以是,例如,pcd100的存储器控制器132。sdram218可以是由处理器202在执行应用222时使用的系统存储器或者主存储器。如图2中的虚线箭头概念性地指示的,本文中描述的存储器系统校准方法涉及确定在数据选通(“dqs”)和数据(“dq”)信号之间的相位偏移,并且利用对应的相位偏移值来配置存储器控制器220。根据这样的方法操作的处理器202可以确定这样的相位偏移值并且经由互连206来实施它们向存储器控制器220的传送或通信。
如图3所示,存储器控制器220可以使用相位偏移值来对可调延迟元件302进行调整。延迟元件302被配置为将dqs信号延迟可调时间量,所述可调时间量可以与相位偏移值相对应。存储器控制器220可以以常规方式生成dqs信号,如本领域普通技术人员所充分理解的,并且将dqs信号提供给延迟元件302的信号输入。存储器控制器220可以通过向延迟元件302的延迟调整输入提供延迟值(“dly_adj”)来调整延迟元件302。响应于延迟值,延迟元件302输出经延迟的dqs信号,所述经延迟的dqs信号已经从延迟元件302的输入处的dqs信号延迟了由延迟值表示的时间量。(在对dqs信号进行延迟之前在dq和dqs信号之间提供同步的方式是本领域普通技术人员所充分理解的,并且因此在本文中没有描述)。延迟元件302的输出处的经延迟的dqs信号经由总线304来提供给sdram218。尽管dq和dqs信号在总线304上是双向的,但为了清楚起见,未示出存储器控制器220中与经由总线304接收的dq和dqs信号有关的电路。
总线304可以是ddrsdram系统中采用的常规类型。相应地,总线304不仅可以包括dqs和dq信号,还可以包括写使能(enable)(“we”)信号、行地址选通(“ras”)信号、列地址选通(“cas”)信号、命令和地址总线信号(“ca”)、片选信号(“cs”)、体(bank)地址信号(“ba”)、时钟(“ck”)信号、时钟使能(“cke”)信号或其它在这样的ddrsdram系统总线中通常包括的信号。虽然这些信号中的一些信号可能是差分的而不是单端的,但为了清楚起见,它们在图3中被描绘为单端的。由于结合写入、读取和其它存储器操作来生成和使用这些信号的方式是本领域普通技术人员所充分理解的,因此在本文中不描述这样的方面。
存储器控制器220还包括可调阻抗驱动器306,所述可调阻抗驱动器306将传出的dq信号提供到总线304的双向dq信号线部分上。驱动器306被配置为具有可调输出阻抗。存储器控制器220可以以常规方式关于写操作来生成dq信号,如本领域普通技术人员所充分理解的那样,并且将dq信号提供给可调阻抗驱动器306的信号输入。存储器控制器220可以通过向驱动器306的阻抗调整输入提供阻抗值(“z_adj”)来设置或调整驱动器306将dq信号利用其耦合到总线304的dq信号线上的输出阻抗。驱动器306的输出经由总线304的dq信号线部分来提供给sdram218。
本文中描述的存储器系统校准方法包括确定驱动器306的阻抗被设置或调整到的阻抗值。根据这样的方法操作的处理器202可以确定这样的阻抗值,并且经由互连206(图2)来实施它们向存储器控制器220的传送或通信。
由于ddrsdram总线操作用于实施写入、读取和其它操作的方式是本领域普通技术人员所充分理解的,因此在本文中不描述这样的方面。除了本文中描述的存储器控制器220的方面之外,考虑到本文中的描述,存储器控制器220的所有其它方面对于本领域的普通技术人员而言可以是传统的或以其它方式显而易见的。相应地,本文中没有描述存储器控制器220的结构和操作的这种常规方面。
由总线304的dq信号线部分定义的信号通道中的阻抗不匹配可能通过引入环回噪声来对dq信号的信号完整性产生不利影响。sdram218处的传入dq信号的较差信号完整性可能导致写入错误。在图4的眼图400中(以实线)示出了在sdram218处表现出环回噪声的dq信号402的示例。表现出环回噪声的dq信号402的该示例可以与不表现出环回噪声的dq信号404(以虚线示出)的示例形成对照。注意:环回噪声在示例性dq信号402中在眼睛中心附近最为突出。如果sdram218要在眼睛的中心406附近(即,在距眼睛的开始或转变408为90度的时间点处)对示例性dq信号402进行采样(此处信号完整性较差),则与如果sdram218要在信号完整性更好的时间点处对示例性dq信号402进行采样相比,可以预期更大数量的写入错误。
根据下文描述的示例性方法,处理系统200(图2)对dqs信号的时序关于dq信号进行校准,使得dqs信号的边缘与具有良好信号完整性的dq信号的一部分一致。图4中示出了根据示例性方法确定的最佳相位偏移(“skew”)的示例。在图4中,示出了被延迟了时间量的dqs信号410的示例,所述时间量在dqs信号的边缘和具有良好信号完整性的dq信号的一部分之间提供了最佳相位偏移。以下文描述的方式,具有良好信号完整性的dq信号的一部分是通过在sdram218(图2)上迭代地执行系统级存储器测试来间接地确定的。dqs和dq信号之间的相位偏移在范围上扫过。也就是说,每个存储器测试或迭代与范围内的离散相位偏移值相对应。将与在所有存储器测试中产生最低错误计数的存储器测试或迭代相对应的相位偏移值确定并选择为上述最佳相位偏移值。因此,例如,如图4所示,将在示例性dqs信号410和示例性dq信号402之间的相位偏移设置为最佳相位偏移值“skew”造成sdram218在时间点412处对示例性dq信号402进行采样。也就是说,采样在时间点412处由示例性dqs信号402的上升沿来触发。根据ddr原理,这种采样响应于示例性dqs信号402的上升沿和下降沿二者来发生。在该示例中,作为将在示例性dqs信号410和示例性dq信号402之间的相位偏移设置为最佳相位偏移值“skew”的结果,写操作可能造成较少的存储器错误,因为示例性dq信号402在采样时间点412处比在眼睛的中心406附近显示出更少的环回噪声。
由图5的流程图示出了用于控制存储器系统校准的示例性方法。虽然下文中描述的方法中的某些动作或步骤自然地先于其它的动作或步骤,以用于示例性实施例如描述地操作,但是如果这样的次序或顺序不改变本发明的功能,则本发明不限于这些动作或步骤的次序。也就是说,应该认识到:在不脱离本发明的范围和精神的情况下,一些动作或步骤可以在其它动作或步骤之前、之后或并行地(即,基本上同时)执行。在某些情况下,可以在不脱离本发明的范围和精神的情况下,省略或不执行某些动作或步骤。此外,诸如“此后”、“随后”、“接下来”等等的词不旨在限制动作或步骤的次序。而是使用这样的词语来帮助引导读者通过示例性方法的描述。
如图5的流程图所示,在示例性实施例中,上文关于图2描述的处理系统200可以关于dq信号来对dqs信号的时序进行校准,以用于写操作。该方法可以与为准备pcd100或开始或返回到任务模式操作的其它设备来执行的常规启动方法基本上并发地执行。执行这种启动方法通常被称为自举或引导pcd100或这种其它设备。替代地或另外地,可以在制造pcd100或这样的其它设备时执行方法。
如方块502所指示的,示例性方法开始于对驱动器306(图3)的输出阻抗进行调整或设置。例如,处理器202(图2)可以向存储器控制器220提供阻抗值(“z_adj”)。或许违反直觉地,驱动器306的阻抗被设置为可能在随后的系统级存储器测试期间削弱dq信号通道上的阻抗匹配的阻抗值。也就是说,驱动器306的阻抗被设置为可能引入或加剧通常不希望的效应(比如环回噪声)的阻抗值。驱动器306被设置或调整到的阻抗值可以通过诸如下文关于图7描述的方法或其它方法来确定。阻抗逻辑单元209(图2)可以有助于该功能。相应地,处理器系统200或处理器202(如配置有阻抗逻辑单元209的)可以用作用于执行该功能的单元。
如方块504指示的,对在dqs和dq信号之间的相位偏移进行设置或调整。例如,处理器202可以向存储器控制器220提供延迟值(“dly_adj”)。dqs信号从dq信号延迟的时间量可以用作针对在dqs和dq信号之间的相对相位偏移的代理,因为这些信号否则是彼此同步的。在延迟值从,例如,零度的初始值向,例如,180度的最终值扫过的情况下,方法以迭代方式执行。延迟值的范围可以以,例如,10度的增量划分成一系列离散延迟值。因此,例如,在第一迭代或存储器测试期间,对应的延迟值被设置为10度;在第二迭代或存储器测试期间,对应的延迟值被设置为20度等,一直到180度。相位偏移逻辑单元210可以有助于该功能。相应地,(如配置有相位偏移逻辑单元210的)处理器系统200或处理器202可以用作用于执行该功能的单元。
如方块506指示的,将多个数据字写入sdram218。数据字可以表示会写入sdram218的实际任务模式数据业务。以这种方式,存储器测试在潜在的不利信号完整性条件下执行,所述不利信号完整性条件是由于在任务模式操作下可能出现的影响(比如串扰和功率波动)而产生的,但其在常规存储器测试条件下可能不出现,在所述常规存储器测试条件下,较短的可预测的数据模式在设备中没有其它活动的情况下被写入存储器以及从存储器读出。数据写入逻辑单元212可以包括对应用222中的一个或多个应用中的部分进行仿真的部分,如图2中在数据写入逻辑单元212和应用222之间由虚线连接来概念性地指示的。数据写入逻辑单元212可以有助于配置处理系统200或pcd100的部分以仿真任务模式操作的方面。以这种方式,在存储器测试期间的数据到sdram218的写入仿真了在pcd100的任务模式操作期间数据到sdram218的写入。(如配置有数据写入逻辑单元212的)处理器系统200或处理器202可以用作用于执行该功能的单元。
如方块508所指示的,从与sdram218中数据字被写入到的位置相同的位置读取多个数据字。在本说明书中,术语“错误”是指在写入到存储器位置的数据字与随后从相同存储器位置读取的数据字之间的不匹配。如本文中所使用的,术语“错误计数”或“通过/未通过计数”是指由存储器测试导致的不同错误的数量。数据读取逻辑单元214(图2)可以有助于该功能。相应地,(如配置有数据读取逻辑单元214的)处理器系统200或处理器202可以用作用于执行该功能的单元。
如方块510所指示的,确定用于存储器测试的错误计数。可以以各种方式来检测存储器测试错误,如本领域普通技术人员所充分理解的,例如对输入和输出数据文件进行比较。
如方块512所指示的,确定提供给存储器控制器220的延迟值是否如上文关于方块504所述已经达到180度,即,是否要执行进一步的迭代。如果确定(方块512)要执行进一步的迭代,则延迟值增加,如由方块514所指示,并且方法在上述方块504处继续。在方块504处继续,随后以上文关于方块504-512描述的方式来执行另一个存储器测试或迭代。
如果确定(方块512)不会执行进一步的迭代,即,延迟值已经从0扫到180度,则如方块516指示的,根据错误计数来确定最佳延迟值。如图6所示,可以使用包括点602的直方图600来确定最佳延迟值。每个点602表示延迟值和相对应的错误计数。在图6中,示例性dq信号402被示为叠加在直方图600上。可以从最低错误计数来确定最佳延迟值。对于存储器测试,最低的错误计数可以被称为“通过”错误计数。错误计数逻辑单元216(图2)可以有助于这些功能。相应地,(如配置有错误计数逻辑单元216的)处理器系统200或处理器202可以用作用于执行这些功能的单元。
在一些情况下,可能存在引起最小或最低错误数量的不多于一个延迟值。然而,图6描绘了若干延迟值引起最小或最低错误数量的实例或示例。在该示例中,在执行的所有存储器测试中,在使用对应的40、50、60、70、80、120、130、140和150度的延迟值执行的存储器测试中发生最低的错误数量。通过选择延迟值的范围中的中点来从这些延迟值中选择最佳延迟值。例如,可以选择60度作为最佳延迟值,因为60是在40和80之间的中点。
可以注意到:在该示例中,存在引起最小或最低错误数量的两个延迟值范围。也就是说,存在两个通过范围:40-80度以及120-150度。在存储器测试引起两个或更多个这样的延迟值的通过范围的情况下,可以从最大的通过范围中选择最佳延迟值。在图6所示的示例中,因为40-80的通过范围大于120-150的通过范围,所以可以从40-80的通过范围而不是120-150的通过范围中选择最佳延迟值。
返回到图5,如方块518所指示的,将dqs信号要从dq信号延迟的时间量设置为最佳延迟值。处理器202可以向存储器控制器220提供最佳延迟值,并且存储器控制器220可以以上文关于方块504所描述的方式来使用最佳延迟值。相应地,存储器控制器220将dqs信号从dq信号延迟由最佳延迟值表示的时间量,从而产生在dqs和dq信号之间的最佳相位偏移。当pcd100或其它设备随后开始或返回到任务模式时,存储器控制器220在任务模式写入操作中相应地对dqs信号进行延迟。此外,在进入任务模式之前,驱动器306的阻抗被设置为恢复dq信号通道上的阻抗匹配的阻抗值。
如图7所示,可以执行或实现方块502(图5)所指示的操作的方式的一个示例涉及确定错误计数如何对驱动器阻抗的改变进行响应并相应地选择驱动器阻抗,使得阻抗匹配被削弱。也就是说,确定较高的驱动器阻抗与较低的驱动器阻抗相比是否导致较高的错误计数。
如方块702所指示的,当执行存储器测试时,(如上文关于方块504所描述的)将延迟值初始化或设置为可能导致低(但不一定为零或最小)错误计数的值。例如,可以将延迟值设置为90度。如上文关于图4所描述的,在眼睛的中心406附近对示例性dq信号404(其不受环回噪声、串扰或其它不利条件影响)进行采样可能引起较低的错误计数。
如方块704所指示的,(如上文关于方块502所描述的)将驱动器阻抗设置为低值。如在本说明书中所使用的,术语“低值”和“高值”除了指示关于彼此的相对值之外,旨在不具有其它意义;高值高于低值。
如方块706所指示的,将测试数据模式写入sdram218。测试数据模式可以包括常规用于测试存储器系统的类型的短数据模式。如方块708所指示的,对写入测试模式的相同存储器位置进行读回。如方块710所指示的,确定错误计数(“错误计数a”)。
如方块712所指示的,(如上文关于方块502所描述的)随后将驱动器阻抗设置为高值。方块714、716和718可以分别与方块706、708和710相同。因此,将测试数据模式写入sdram218中的存储器位置,读取存储器位置,以及确定错误计数(“错误计数b”)。
如方块720所指示的,确定错误计数a是否大于错误计数b。如果(方块720)确定错误计数a大于错误计数b,则选择高值,如方块722指示的。随后,在方块502(图5)处,将驱动器阻抗设置为所选择的高值。如果(方块720)确定错误计数a不大于错误计数b,则选择低值,如方块724指示的。随后,在方块502(图5)处,将驱动器阻抗设置为所选择的低值。如上文关于图7所描述的方法旨在仅作为可以如何确定错误计数对驱动器阻抗的变化(即,增大和减小)进行响应的方式的一个示例。考虑到这些描述和示例,其它的对于本领域普通技术人员来说可以很容易地发生。
在不脱离本发明的精神和范围的情况下,替换的实施例对本发明属于的领域的普通技术人员来说将变得显而易见。因此,虽然已经示出并详细描述了所选择的方面,但将理解的是:如由所附权利要求所定义的,可以在不脱离本发明的精神和范围的前提下进行各种替换和改变。
技术特征:
1.一种用于控制存储器系统校准的方法,包括:
对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;
使用存储器控制器和同步动态随机存取存储器(“sdram”)来执行所述多个系统级存储器测试,每个存储器测试与在所述数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应,每个存储器测试包括:
将针对所述存储器控制器的数据选通信号延迟设置为与所述多个相位偏移值中的一个相位偏移值相对应;
在所述数据信号通道上向所述sdram写入多个数据字;
在所述数据信号通道上从所述sdram读取所述多个数据字;以及
确定针对所述存储器测试的错误计数,所述错误计数指示在从所述sdram读取的所述多个数据字与向所述sdram写入的所述多个数据字之间的数据不匹配错误;
在所述多个系统级存储器测试之后,确定与在所述多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及
将针对所述存储器控制器的所述数据选通信号延迟设置为与所述最佳相位偏移值相对应。
2.根据权利要求1所述的方法,其中,所述多个数据字模仿任务模式数据业务。
3.根据权利要求2所述的方法,其中,所述任务模式数据业务是基于一个或多个应用的。
4.根据权利要求1所述的方法,其中,对数据信号驱动器电路进行调整包括:
确定较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应还是与较低数据信号驱动器电路阻抗相对应;
响应于关于较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应的确定,来增大所述数据信号驱动器电路阻抗;以及
响应于关于较高存储器测试错误计数与较低数据信号驱动器电路阻抗相对应的确定,来减小所述数据信号驱动器电路阻抗。
5.根据权利要求1所述的方法,其中,确定与最低错误计数相对应的最佳相位偏移值包括:
确定多个存储器测试通过范围;以及
从所述多个存储器测试通过范围中的最大存储器测试通过范围选择出所述最佳相位偏移值。
6.根据权利要求1所述的方法,其中,所述sdram包括双倍数据速率sdram(“ddrsdram”)。
7.根据权利要求1所述的方法,其中,所述存储器系统是包括在便携式计算设备(“pcd”)中的。
8.根据权利要求7所述的方法,其中,所述pcd包括以下各项中的至少一项:移动电话、个人数字助理、寻呼机、智能电话、导航设备以及具有无线连接或链路的手持计算机。
9.根据权利要求1所述的方法,其中,对所述数据信号驱动器电路进行调整,执行所述多个系统级存储器测试,确定最佳相位偏移值以及设置所述数据选通信号延迟是在对所述pcd的引导期间执行的。
10.根据权利要求1所述的方法,其中,对所述数据信号驱动器电路进行调整,执行所述多个系统级存储器测试,确定最佳相位偏移值以及设置所述数据选通信号延迟是在对所述pcd的制造期间执行的。
11.一种用于存储器系统校准的系统,所述系统包括:
存储器系统,其包括存储器控制器和同步动态随机存取存储器(“sdram”);以及
一个或多个处理器,其被配置为进行以下操作:
对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;
执行所述多个系统级存储器测试,每个存储器测试与在所述数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应,所述一个或多个处理器被配置为针对每个存储器测试来进行以下操作:
将针对所述存储器控制器的数据选通信号延迟设置为与所述多个相位偏移值中的一个相位偏移值相对应;
在所述数据信号通道上向所述sdram写入多个数据字;
在所述数据信号通道上从所述sdram读取所述多个数据字;以及
确定针对所述存储器测试的错误计数,所述错误计数指示在从所述sdram读取的所述多个数据字与向所述sdram写入的所述多个数据字之间的数据不匹配错误;
在所述多个系统级存储器测试之后,确定与在所述多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及
将针对所述存储器控制器的所述数据选通信号延迟设置为与所述最佳相位偏移值相对应。
12.根据权利要求11所述的系统,其中,所述多个数据字模仿任务模式数据业务。
13.根据权利要求12所述的系统,其中,所述任务模式数据业务是基于一个或多个应用的。
14.根据权利要求11所述的系统,其中,所述一个或多个处理器被配置为通过被配置为进行以下操作来对数据信号驱动器电路进行调整:
确定较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应还是与较低数据信号驱动器电路阻抗相对应;
响应于关于较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应的确定,来增大所述数据信号驱动器电路阻抗;以及
响应于关于较高存储器测试错误计数与较低数据信号驱动器电路阻抗相对应的确定,来减小所述数据信号驱动器电路阻抗。
15.根据权利要求11所述的系统,其中,所述一个或多个处理器被配置为通过被配置为进行以下操作来确定与最低错误计数相对应的最佳相位偏移值:
确定多个存储器测试通过范围;以及
从所述多个存储器测试通过范围中的最大存储器测试通过范围选择出所述最佳相位偏移值。
16.根据权利要求11所述的系统,其中,所述sdram包括双倍数据速率sdram(“ddrsdram”)。
17.根据权利要求11所述的系统,其中,所述存储器系统是包括在便携式计算设备(“pcd”)中的。
18.根据权利要求17所述的系统,其中,所述pcd包括以下各项中的至少一项:移动电话、个人数字助理、寻呼机、智能电话、导航设备以及具有无线连接或链路的手持计算机。
19.根据权利要求11所述的系统,其中,所述一个或多个处理器被配置为:在对所述pcd的引导期间,对所述数据信号驱动器电路进行调整,执行所述多个系统级存储器测试,确定最佳相位偏移值以及设置所述数据选通信号延迟。
20.根据权利要求11所述的系统,其中,所述一个或多个处理器被配置为:在对所述pcd的制造期间,对所述数据信号驱动器电路进行调整,执行所述多个系统级存储器测试,确定最佳相位偏移值以及设置所述数据选通信号延迟。
21.一种用于控制存储器系统校准的计算机程序产品,所述计算机程序产品包括体现在至少一个非暂时性存储介质中的处理器可执行逻辑单元,由系统的一个或多个处理器对所述逻辑单元的执行将所述系统配置为进行以下操作:
对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配;
使用存储器控制器和同步动态随机存取存储器(“sdram”)来执行所述多个系统级存储器测试,每个存储器测试与在所述数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应,所述系统被配置为针对每个存储器测试来进行以下操作:
将针对所述存储器控制器的数据选通信号延迟设置为与所述多个相位偏移值中的一个相位偏移值相对应;
在所述数据信号通道上向所述sdram写入多个数据字;
在所述数据信号通道上从所述sdram读取所述多个数据字;以及
确定针对所述存储器测试的错误计数,所述错误计数指示在从所述sdram读取的所述多个数据字与向所述sdram写入的所述多个数据字之间的数据不匹配错误;
在所述多个系统级存储器测试之后,确定与在所述多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值;以及
将针对所述存储器控制器的所述数据选通信号延迟设置为与所述最佳相位偏移值相对应。
22.根据权利要求21所述的计算机程序产品,其中,所述多个数据字模仿任务模式数据业务。
23.根据权利要求22所述的计算机程序产品,其中,所述任务模式数据业务是基于一个或多个应用的。
24.根据权利要求21所述的计算机程序产品,其中,对所述逻辑单元的执行通过将所述系统配置为进行以下操作来将所述系统配置为对所述数据信号驱动器电路进行调整:
确定较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应还是与较低数据信号驱动器电路阻抗相对应;
响应于关于较高存储器测试错误计数与较高数据信号驱动器电路阻抗相对应的确定,来增大所述数据信号驱动器电路阻抗;以及
响应于关于较高存储器测试错误计数与较低数据信号驱动器电路阻抗相对应的确定,来减小所述数据信号驱动器电路阻抗。
25.根据权利要求21所述的计算机程序产品,其中,对所述逻辑单元的执行通过将所述系统配置为进行以下操作来将所述系统配置为确定与最低错误计数相对应的最佳相位偏移值:
确定多个存储器测试通过范围;以及
从所述多个存储器测试通过范围中的最大存储器测试通过范围选择出所述最佳相位偏移值。
26.根据权利要求21所述的计算机程序产品,其中,所述sdram包括双倍数据速率sdram(“ddrsdram”)。
27.根据权利要求21所述的计算机程序产品,其中,所述存储器系统是包括在便携式计算设备(“pcd”)中的。
28.根据权利要求27所述的计算机程序产品,其中,所述pcd包括以下各项中的至少一项:移动电话、个人数字助理、寻呼机、智能电话、导航设备以及具有无线连接或链路的手持计算机。
29.根据权利要求21所述的计算机程序产品,其中,对所述逻辑单元的执行将所述系统配置为:在对所述pcd的引导期间,对所述数据信号驱动器电路进行调整,执行所述多个系统级存储器测试,确定最佳相位偏移值以及设置所述数据选通信号延迟。
30.一种用于控制存储器系统信号校准的系统,包括:
用于对数据信号驱动器电路进行调整,以在多个系统级存储器测试期间削弱数据信号通道上的阻抗匹配的单元;
用于使用存储器控制器和同步动态随机存取存储器(“sdram”)来执行所述多个系统级存储器测试的单元,每个存储器测试与在所述数据信号通道上的在数据选通信号和数据信号之间的多个相位偏移值中的一个相位偏移值相对应,用于执行所述多个系统级存储器测试的所述单元针对每个存储器测试包括:
用于将针对所述存储器控制器的数据选通信号延迟设置为与所述多个相位偏移值中的一个相位偏移值相对应的单元;
用于在所述数据信号通道上向所述sdram写入多个数据字的单元;
用于在所述数据信号通道上从所述sdram读取所述多个数据字的单元;以及
用于确定针对所述存储器测试的错误计数的单元,所述错误计数指示在从所述sdram读取的所述多个数据字与向所述sdram写入的所述多个数据字之间的数据不匹配错误;
用于在所述多个系统级存储器测试之后,确定与在所述多个系统级存储器测试之中的最低错误计数相对应的最佳相位偏移值的单元;以及
用于将针对所述存储器控制器的所述数据选通信号延迟设置为与所述最佳相位偏移值相对应的单元。
技术总结
在设备中对在SDRAM数据选通(“DQS”)信号和数据(“DQ”)信号之间的相位偏移进行校准时,对数据信号驱动器电路阻抗进行调整以在执行系统级存储器测试时削弱DQ信号通道上的阻抗匹配。在存储器测试期间,相位偏移会逐步通过范围,并针对每个测试确定错误计数。存储器测试可以仿真设备的任务模式操作。在存储器测试之后,确定与最低错误计数相对应的最佳相位偏移。在设备的后续任务模式操作中,DQS信号可以关于DQ信号延迟与最佳相位偏移相对应的值。
技术研发人员:L·N·加米尼;S·慕克吉
受保护的技术使用者:高通股份有限公司
技术研发日:.04.24
技术公布日:.02.14
如果觉得《双倍数据速率同步动态随机存取存储器(“DDRSDRAM”)数据选通信号校准的制作方法》对你有帮助,请点赞、收藏,并留下你的观点哦!