动态数据选通检测的制作方法

文档序号:6380420阅读:222来源:国知局
专利名称:动态数据选通检测的制作方法
技术领域
本公开一般涉及处理器,并且更明确地说,涉及将处理器与存储器相接口。
背景技术
当数据在处理器和存储器之间传送时,数据选通信号(有时称作DQS)与数据信号一起提供,以指示总线上的电压何时对应于实际数据值以及协调从总线捕获数据值。在写操作中,处理器上的存储器控制器接口负责产生用于正被写入存储器的数据的数据选通信号。在读操作中,存储器产生用于正被读取的数据的数据选通信号。数据选通信号典型地经相同双向总线进行传送。同样地,DQS信号线可允许在读和写操作的性能之间浮动(即,在三态下操作)。如果接收方在数据选通信号有效之前尝试捕获信号,则信号线的三态值可造成错误地捕获数据。更进一步地,如果接收方在DQS信号的初始周期之后开始捕获数据,则并非所有数据都被捕获。

发明内容
本公开描述用于确定数据选通信号何时有效以捕获数据的技术。在一种实施例中,公开了一种处理器,其包括存储器接口电路(例如,存储器PHY),该接口电路配置成利用存储器促进写操作和读操作的性能。在读操作期间,存储器接口电路可基于由存储器提供的数据选通信号通过锁存数据位来捕获从存储器总线接收的数据。为了降低捕获无效数据的机会,在一种实施例中,存储器接口电路执行校准(例如,在处理器和存储器初始化期间,在退出存储器的自动刷新模式之后等等),其中向存储器发送请求已知值。接着,其开始捕获位并将所述位与所存储的该值的拷贝相比校,以确定总线上的数据何时变成有效,这指示了数据选通信号也是有效的。在一种实施例中,存储器接口电路可配置成执行多个读操作,直到其可确定数据选通值何时变为有效(例如,发送读请求之后的3. 5时钟周期)。在另一种实施例中,存储器接口电路可发送单个读请求并以比选通信号的速率(例如,每DQS的四分之一周期)更高的速率捕获数据位,以确定该信号何时变为有效。在一些实施例中,存储器接口单元亦可配置成执行进一步校准,其中其采样该数据选通信号以确定数据选通信号何时有效。存储器接口电路可接着基于该确定调整其何时锁存所述数据位。在一种实施例中,存储器接口电路配置成基于通过从存储器读取已知值所确定的初始时间值来确定何时对数据选通信号进行采样。在一些实施例中,存储器接口电路可对数据选通信号进行周期性重新采样,以随着由于处理、电压和温度(PVT)中的变化造成的选通信号的时序波动而做出微小调整。


图1是一对说明了两个读操作的时序特性的时序图。图2是说明了耦接至一个或多个存储器模块的集成电路的一种实施例的框图。
图3是说明了耦接至存储器模块的存储器PHY的一种实施例的框图。图4是说明了存储器PHY中板准单元的一种实施例的框图。图5A和5B是说明了存储器PHY中数据缓存的实施例的框图。图6是说明了一种用于确定数据选通信号何时有效的方法的一种实施制的流程图。图7是说明了一种用于确定数据选通信号何时有效的方法的另一种实施例的流程图。图8是示例系统的框图。
具体实施方式

本说明书包括提到“一种实施例”或者“一个实施例”。短语“在一种实施例中”或者“在一个实施例中”不必指相同实施例。具体特征、结构、或者特性可以与本公开一致的任意适宜方式来组合。术语。下列段落提供了本公开(包括所附权利要求)中找到的术语的定义和/或上下文。“包括”。该术语是开放式的。根据所附权利要求中使用的,该术语不排除额外的结构或者步骤。考虑一项权利要求,其如下“一种装置,包括一个或多个处理器单
元......”。这种权利要求不排除该装置还包含额外的组件(例如,网络接口单元、图形电
路等等)。“配置成”。不同单元、电路或其它组件可描述或要求为“配置成”执行任务。在这种上下文中,“配置成”用于通过指示单元/电路/组件包括操作期间执行那些任务的结构(例如,电路)。同样地,单元/电路/组件可以理解为配置成即使在指定单元/电路/组件并非当前可操作的(例如未开启的)时候执行任务。与该“配置成“语言一起使用的单元/电路/组件包括硬件-例如,电路、存储程序指令的存储器,该指令可执行来实施该操作等。叙述“一种单元/电路/组件“配置成”执行一个或多个任务”清楚地旨在不为该单元/电路/组件适用35U. S. C. §112第6段。另外,“配置成”可包括由软件和/或固件(例如,FPGA或运行软件的通用处理器)操作按照能执行所关注任务的方式工作的一般结构(例如一般电路)。“配置成”也可包括采用制造处理(例如,半导体制造设备)以制造用来实施或执行一个或多个任务的设备(例如,集成电路)。“第一”、“第二”等等。根据所使用的,这些术语用作名词之前的标签,并且不暗示任意类型的排序(例如,空间的、时间的、逻辑的,等等)。例如,在具有8个处理元件或核的处理器中,术语“第一”和“第二”处理元件可用来指代所述8个处理元件中的任意两个元件。换句话说,“第一”和“第二”处理元件不限于逻辑处理元件O和I。“基于”。这里使用该术语用来描述影响决定的一个或多个因素。该术语不排除影响确定的额外因素。也就是说,确定可仅仅基于那些因素或者至少部分基于那些因素。考虑短语“基于B决定A”。当B可能是影响A的确定的因素时,这种短语不排除也从基于C来确定A。在其他实例中,A可仅仅基于B来确定。“数据选通信号(data strobe signal) ”。该术语在现有技术中具有其普通及接受的含义,并且包括结合一个或多个数据信号驱动以指示有效数据正在传送的信号。选通信号典型地具有与数据信号相类似的相位和频率,并且可用来从数据信号捕获数据。现在转到图1,描绘了一对说明了两个读操作的可能时序特性的时序图1lOA和IlOB0如所示,每幅图110包括时钟信号CK(由差分信号对CK_t和CK_c表示)、命令信号[CMD]、数据选通信号DQS (由差分信号对DQS_c和DQS_t表示)、数据信号DQ。时钟信号CK可用来调整集成电路和存储器之间的不同操作的时序。命令信号[CMD]可由存储器物理接口电路(PHY)产生以使存储器执行不同操作(例如,用于读的行及列地址选通,等等)。数据选通信号DQS是在数据信号DQ具有有效数据(示出为位D1、D2、D3等)时进行振荡的信号。在两个读操作中,存储器PHY通过在时间TO处经由CMD信号将读命令发送至存储器来开始。存储器可接着在下面一个或多个时钟周期期间取回数据并将所请求的数据送回存储器PHY。当存储器开始提供数据时,存储器将DQS驱低并接着随着驱动所述位通过总线来振荡DQS。在图1lOA中,存储器在T2之后将DQS驱低并在T3之后开始振荡DQS。在图1lOB中,存储器在T3之后将DQS驱低并在T4之后开始振汤。随着DQS振汤,在一种实施例中,存储器PHY在始于下降沿104的DQS的下降沿上锁存DQ的位。在这种实施例中为了正确捕获所有数据,存储器PHY在DQS的第一全下降期间必须开始锁存数据(即,从逻辑I到逻辑O的下降104,与从浮点值到逻辑O的下降102相反)。如果第一数据位在该下降处或者在该下降前(例如在102A处或者在之前)锁存,DQS的浮点状态可导致锁存无效的位。如果在104A之后锁存第一位,则未捕获初始位D1。在不同实施例中,存储器PHY可控制数据何时通过选通DQS (例如,防止其驱动捕获DQ锁存器)捕获,直到DQS变为有效,例如,下降102之后的时间。因此,在图1IOA中,存储器PHY必须在时段120A内闭锁DQS (即,将其提供给捕获锁存器),以正确捕获所有数据位。不同的存储器标准可规定在已定布读命令之后为DQS何时变为有效的延迟时段,来确保数据正确捕获。该延迟时段的示例在图1lOA和IlOB中示出为自TO处的读命令的开始的三个CK周期延迟。在两幅图1lOA和IlOB中,当DQS在三个周期时段(注意在该延迟的结尾和DQS振荡之间的时间可称为tDQSCK)之后变得有效时,限定出该时段不保证DQS在图1lOB中示出的该时段的结尾处有效,在图1lOB中,DQS在T3浮动。例如,在图110A,如果存储器PHY在T3处闭锁DQS,则DQS不浮动且存储器PHY将正确捕获数据。然而,在图1lOB中,DQS在T3之后的时段130内浮动。如果允许DQS在时段130期间驱动存储器PHY中的捕获锁存器,则可捕获无效数据。然而,如果DQS在时段120B期间闭锁,则应正确捕获数据。如下所述,在各种实施例中,集成电路可使用各种技术来确定何时开始利用数据选通信号捕获数据。例如,这种电路可使用各种技术来确定时段120A和120B内的时间值以及基于该时间值开始捕获数据。现在转至图2,描绘了系统10的框图。在所说明的实施例中,系统10包括与外部存储器模块240A-240B相耦接的集成电路(IC) 200。集成电路200包括一个或多个处理核210A-210B、存储器控制器220以及一个或多个存储器物理接口电路(PHY) 230A-230B。存储器控制器220经由各个互联212A和212B与核210A和210B相耦接并经由各个互联222k和222B与存储器PHY230相耦接。存储器PHY经由各个互联232A和232B与存储器模块240A和240B相耦接。
在一种实施例中,核210配置成产生数据的读和写请求。核210可实施任意指令集架构,并且可配置成执行指令集架构中所限定的指令。核210可实施任意微架构,包括标量、超标量、流水线、超流水线、无序、有序、推测、非推测等或其组合。核210可包括电路,并且优选地可实施微编码技术。核210可包括一个或多个缓存级。一个或多个核可实现图形控制器,其配置成将待显示对象渲染至帧缓冲器。在一种实施例中,存储器控制器220配置成处理由核210产生的请求并向存储器模块240发布对应命令以执行各种存储器操作。存储器控制器220也可处理来自譬如各种外部设备、联网设备、存储设备、I/O设备等(例如结合图8描述的那些)之类的其它来源的请求。存储器控制器220可包括用于实现例如转换结构、页面行走(page walk)单元等之类的虚拟存储器。在一种实施例中,存储器控制器220配置成通过向模块240发布刷新命令来促进存储器模块240的刷新。在一种实施例中,存储器PHY230配置成处理IC200与存储器模块240的低级别物理接口,以促进数据交换。例如,存储器PHY230负责信号时序、负责对同步DRAM存储器的适宜时钟等。存储器PHY230配置成锁定至集成电路200内提供的时钟以及产生由存储器模块240使用的对应时钟(例如,上述时针信号CK)。存储器PHY230可配置成将命令从存储器控制器220中继传送至存储器模块240。存储器PHY230也可配置成从存储器控制器220接收命令以及产生到存储器模块240的一个或多个对应信号(例如,CMD、DQS、DQ等)。存储器模块240可以是任意类型的存储器,譬如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据率(DDR、DDR2、DDR3等)SDRAM(包括移动版本的SDRAM,譬如mDDR3等,和/或低功率版本的SDRAM,譬如LPDDR2、LPDDR3等)、RAMBUS DRAM (RDRAM)、静态RAM(SRAM)等。一个或多个设备可耦接至电路板上,以形成譬如单内嵌存储器模块(SIMM)、双内嵌存储器模块(DIMM)等之类的存储器模块。可替代地,所述设备可按照芯片叠层(chip-on-chip)配置、封装体叠层(package-on-package)配置、或者多芯片模块配置与集成电路200安装在一起。在各种实施例中,存储器PHY230配置成基于数据选通信号DQS捕获从存储器模块240接收的数据DQ。为了确保DQS有效时捕获数据,在一种实施例中,PHY230配置成执行校准处理,其中他们确定在向存储器模块240发送对应命令之后确定DQS何时变为有效。如下所述,在一种实施例中,该校准处理可包括从存储器读取已知值以及确定何时正确获取该值,以指示DQS在此时有效。在一些实施例中,该校准处理可进一步包括周期性采样DQS以更精确地确定DQS的时序并检测任意后续时序变化。现在转向图3,描绘了一种与存储器模块240相耦接的存储器PHY230的实施例。在所说明的实施例中,存储器PHY230包括主延迟锁环(DLL) 304、一个或多个数据缓冲器310A和310B、延迟单元320、门控330以及校准单元340。存储器模块240也包括测试值存储器350。在一种实施例中,主DLL304配置成向PHY230中的各个单元提供接收到的主时钟信号302,以协调各个操作的执行。在一种实施例中,主DLL304可进一步配置成基于信号302产生存储器模块240的时钟信号CK。在一些实施例中,如果存储器模块240是双数据率(DDR)存储器,则信号CK的速率是信号302的速率的两倍。在一种实施例中,数据缓冲器310配置成捕获和缓冲从存储器模块240接收的数据DQ,直到其提供互存储器控制器220。在各种实施例中,数据缓冲器310配置成基于所述数据选通信号DQS (例如在DQS的每个下降沿(或者上升沿))来锁存数据DQ的位。如下所述,在一种实施例中,校准单元340可从缓冲器310获取位以确定DQS的时序特性。下面结合图5A和5B来详细描述数据缓冲器310。在一种实施例中,延迟单元320配置成通过操作门控330来控制数据缓冲器310何时接收DQS。在所说明的实施例中,延迟单元320配置成声明一个捕获开始信号324以在自命令CMD发送至存储器模块240以来已经过合适的延迟322 (例如,时钟信号302的3. 5个周期)之后打开门控330。在一种实施例中,延迟单元320可利用延迟锁环来实施。在各种实施例中,所述捕获开始信号324的声明是根据DQS到达(即,当DQS变为有效时)来计时。例如,在上述图1lOA和IlOB中,延迟单元320可配置成在时段120A和120B的重叠期间打开门控330,以使DQS驱动缓冲器310捕获数据。如上所示,如果在DQS的第一下降沿之后声明捕获开始324,则缓冲器310不能正确捕获所有DQ位。类似地,如果在DQS浮动时声明捕获开始324,则缓冲器310可在错误DQS沿上捕获无效数据。在一种实施例中,校框单元340配置成确定DQS何时可能变为有效以及执行延迟值322的延迟调整342,以便延迟单元320在该合适的时段期间声明捕获起始330。在各种实施例中,校准单元340通过从存储器模块240读取测试值以及分析所述缓冲器310所捕获的所述位,来确定所述延迟单元320的延迟值322。当校准单元340识别所捕获的位流中的所捕获的测试值352时,校准单元340可确定DQS在该时段期间有效。然后,校准单元340可接着调整延迟单元320的延迟值322。在一些实施例中,校准单元340通过分析从多个读操作中捕获的数据来确定延迟值322,其中利用分别不同的延迟值322来捕获每个读操作的数据。校准单元340可继续测试不同延迟值322,直到其确定某个延迟值322,该延迟值322产生对所述测试值的正确捕获。在其它实施例中,校准单元340可替代地分析仅来自单个读操作的数据,其中该数据以比DQS(例如,每DQS的四分之一周期)更高的速率被捕获,以确定何时该数据正确且DQS变为有效。在一些实施例中,用来确定延迟值322的测试值初始地写入存储器并随后读取。在其它实施例中,所述测试值存储在存储器模块240的专用部分中-例如永久硬编码化。在一种实施例中,测试值存储器350是模块240的一部分,其专用于存储可访问的测试值。在一些实施例中,存储器350可包括可访问寄存器,其返回已知测试值。例如,在一种实施例中,其中存储器模块240实施LPDDR标准,存储器350包括模式寄存器(MR) 32和40,其响应于模式寄存器读(MRR)命令返回已知数据模式。在一种实施例中,校准340可配置成向存储器模块240直接发布读请求以使其从存储器350返回测试值。在另一种实施例中,校准340可替代地使存储器控制器220发布读命令(例如,经由读指令344),为了该测试值,存储器PHY230接着将其中继转发互存储器模块240。在一些实施例中,通过读取已知值确定的所述延迟值322可能不足以准确到保证数据将持续地正确捕获(或者,在一些实例中,花时间读取已知值可能不是可行的选项,因为有各种时序约束)。在各种实施例中,校准单元340配置成使用先前确定为用于采样DQS的初始时间值的延迟值322来确定其何时变为有效。在一种实施例中,当采样单元340采样DQS时,其可尝试识别DQS的第一全下降(或上升)时钟沿以及因而调整延迟值322。在一些实施例中,校准单元340可在执行常规/功能读操作(即,不是用于已知测试值的读操作)期间确定该经调整的延迟值322。校准单元340可基于不同标准确定何时读取已知值或采样DQS。在一种实施例中,校准单元340可读取已知值以在存储器PHY230和存储器模块240启动进行初始化(例如,在一种实施例中,在锁信号从主DLL304中进行声明之后)的时候执行校准(即,执行“已知值校准”)。(在一种实施例中,存储器220可使校准单元340执行该初始化校准;校准单元340可接着确定何时独立地执行后续校准)。在一些实施例中,校准单元340也可在存储器模块340退出自动刷新模式、退出低功率模式之后,在已经过预定时段之后等,校准单元340也可执行已知值校准。在一些实施例中,校准单元可在每次执行已知值校准(例如,以确定更精确的延迟值322)之后,采样DQS以执行校准(即,执行“采样校准”)。在一些实施例中,校准单元340也可周期性地执行采样校准(例如,在已经过具体时段之后)。 现在转向图4,描绘了一种校准单元340的实施例。在所说明的实施例中,校准单元340包括比较单元410、采样单元420和一个或多个定时器430。在一种实施例中,比较单元410配置成促进已知值校准的执行。在所说明的实施例中,比较410将由缓冲器310捕获的所述位与所存储的测试值412(例如,存储器350中的值的拷贝,譬如由MR32和MR40返回的模式)相比较以识别所捕获的测试值352。比较单元410可接着基于当其识别该所捕获的测试值352来确定延迟值414。在一些实施例中,比较单元410配置成比较从多个读操作所捕获的位来识别所述值352并确定延迟值414。在其它实施例中,比较单元410配置成比较仅从单个读操作捕获的位以识别所述值352并确定延迟值。在这种实施例中,位可以比DQS的速率更高的速率被捕获(例如,DQS的每四分之一周期),因此多个读操作是不必需的。在所说明的实施例中,比较单元410提供值414以促进采样DQS。在另一实施例中,校准单元340可直接使用作为延迟值322的值414来执行延迟调整342。在一种实施例中,采样单元420配置成促进采样校准的执行。在各种实施例中,采样单元420配置成采样该输入DQS来检查DQS上升及下降沿的预定模式,以确定DQS何时变为有效。在一种实施例中,采样单元420以至少每1/16周期的速率进行采样(例如,l/16tCK相移时钟可由过度采样DLL产生)。如上所述,在一种实施例中,采样单元420配置成在常规读操作期间采样DQS;在另一种实施例中,采样单元420可在已知值校准期间采样DQS。在所说明的实施例中,校准单元340基于由采样单元420确定的延迟值来执行延迟单元342的调整342 (在一些实施例中,由采样单元420确定的延迟值由于单元420采用了更高的采样速率可比值414更精确)。如上所述,在各种实施例中,延迟调整342可执行来在窗口中间定位捕获开始324的声明,其中DQS可能变为有效。在一种实施例中,定时器430由校准单元340用来确定何时执行已知值和/或采样校准。如上所述,在一些实施例中,校准单元340可配置成在初始化之后(例如在条统引导期间)、在退出DRAM自刷新模式之后等执行已知值校准,以及之后可立即执行采样校准。在一些实施例中,校准单元340可进一步周期性地执行采样校准。在各种实施例中,定时器430可用来追踪何时最后一次执行这种校准。例如,每个定时器430可利用复位时的起始值被加载,并在校准之后利用相同起始值重新被加载。在一种实施例中,当定时器430达到第一阈值时,校准单元340可再下一可用读上执行采样校准。如果定时器430在进行所述读之前达到第二阈值,则校准单元340可指示存储器控制器220发布读命令并且在该读操作执行期间采样DQS。如果校准单元340不能完成该采样校准(例如,下一个读发生的不够快或者校准单元340不能确定DQS何时变为有效)以及定时器430达到第三阈值,则校准单元340可确定执行已知值校准。在一些实施例中,计数器430可包括由存储器PHY230控制的每个存储器级的各个定时器430。现在转向图5A,描绘了一种数据缓冲器310的实施例。在所描绘的实施例中,缓冲器配置为读/写指针先进先出(FIFO)缓冲器。如所示,缓冲器310包括锁存器510A-D (例如DQ触发器)、控制单元520和多路复用器(MUX) 530。在一种实施例中,锁存器510A-D配置成存储从存储器模块240接收的数据DQ的位,直到所述位可提供至存储器控制器220。在一种实施例的一般操作(即,当延迟值322未被确定时)期间,控制单元520为每个所接收的位DQ选择锁存器,并基于DQS确定所选择的锁存器的时钟。控制单元520可接着在从缓冲器310的读期间通过使用MUX530,选择锁存器510的输出。为了追踪读和写,控制单元520可维持捕获和重新捕获计数器522,其可指示该最后写入及读取的锁存器(或者要写入和读取的下一锁存器)。因此,在一种实施例中,控制逻辑520可当正锁存位时在DQS的下降(或上升)沿上递增捕获计数器,并且可当正读取位时在时钟信号302的下降(或者上升)沿上递增重新捕获计数器。在一种实施方式中,当确定延迟值322时,控制单元520不递增其捕获或者重新捕获计数器522,并且反之,使相同锁存器510捕获该测试值的位。如上所述,在各种实施例中,校准单元340 (例如,具体地说是所说明的实施例中的比较单元410)可配置成采样锁存器510的输出以执行所述位的比较。如上所述,在一些实施例中,校准单元340配置成以比DQS的速率更高的速率(例如,至少每DQS的四分之一周期)对输出进行采样;在其它实施例中,单元340可在每DQS周期期间采样单个位。现在转向图5B,描绘了另一种数据缓冲器310的实施例。在所说明的实施例中,缓冲器310配置为移位寄存器FIFO缓冲器。如所示,缓冲器310包括锁存器550A-D和门控560。在一般读操作期间,在一种实施例中,随着数据DQ的位从一个锁存器550移至下一锁存器,锁存器550由DQS确定时钟。然而,在所说明的实施例中,当测试值正被读取时,关闭门控560,以便DQS仅驱动锁存器550A,并且位未移入随后的锁存器550B-550D。比较单元410可接着配置成采样仅初始锁存器550A的输出。现在转向图6,描绘了一幅用于确定数据选通信号何时有效的方法600的流程图。方法600是一种方法的实施例,该方法可由譬如存储器PHY230之类的存储器接口电路执行。在一些实施例中,方法600可在存储器PHY230初始化期间(例如,在引导IC200期间)、在退出存储器的刷新模式之后等来执行。在许多实例中,执行方法600可降低捕获无效数据的风险。在步骤610,存储器PHY230发送读请求至存储器(例如,存储器模块240)以请求数据值。在一种实施例中,所述数据值是存储在存储器(例如,寄存器MR32或MR40)的专用部分中的测试值。在另一种实施例中,所述数据值之前写入该存储器中。在一种实施例中,存储器PHY230没有产生(即,发布)该请求,反之,使存储器控制器(例如存储器控制器220)发布该数据请求。在步骤620,存储器PHY230执行所述数据值的捕获(例如,从总线232中)。在一种实施例中,存储器PHY230比较所捕获的数据值与正确拷贝(例如,测试值412之一)以确定是否正确捕获该数据值。在一些实施例中,存储器PHY230可在步骤620期间对相同读请求执行多次捕获(例如,至少4次),从而使得每次捕获与各个时间值(例如,延迟值322的不同潜在值)相关联。在步骤630,存储器PHY230确定时间值以用于确定何时基于数据选通信号(例如DQS)捕获数据。在一种实施例中,所确定的时间值是表示向存储器发布读请求和由存储器驱动数据选通信号之间时段的值(例如,延迟值322)。在一种实施例中,如果在步骤620为各个不同时间值执行多次捕获,则存储器PHY230可选择所述各个时间值其中之一作为所确定的初始时间值。因此,在各种实施例中,如果处于时间窗口的中间,则可选择该时间值,在该时间窗口中,数据选通信号可能变为有效(例如,在上述时段120A和120B的重叠内)。在一种实施例中,所选择的值可接着用来随后从存储器捕获数据(例如,通过控制门控 330)。在一些实施例中,方法600可结合下述方法700来执行。现在转向图7,描绘了一幅另一种用于确定数据选通信号何时有效的方法700的流程图。方法700是一种方法的实施例,该方法由譬如存储器PHY230之类的存储器接口电路来执行。在许多实例中,执行方法700可降低捕获无效数据的风险。在步骤710,存储器PHY230基于数据选通信号确定用于从存储器捕获数据的初始时间值。在一些实施例中,步骤710包括执行上述方法600。在步骤720,存储器PHY230通过使用该初始时间值(在步骤710确定或者在步骤720的前一执行期间)确定调整时间值以采样该数据选通信号。在一种实施例中,存储器PHY230在数据选通信号的单个周期内执行对数据选通信号的多次采样(例如每1/16周期)。在一些实施例中,存储器PHY230对缓冲器内的锁存器(例如锁存器510A或550A)的输出进行采样以执行该多次采样。如上所述,在一种实施例中,存储器PHY230可采样该数据选通信号以检测预定的模式(例如,DQS上升及下降沿的),其指示该数据选通信号何时变为有效。存储器PHY230可接着使用该调整时间值来捕获自存储器接收的数据。在各种实施例中,存储器PHY230可继续周期性地执行步骤720以解决对该数据选通信号的任意调整。为了确定何时重新执行步骤720,在一种实施例中,存储器PHY230保持计数器(例如,一个或多个定时器430),该计数器指示何时执行了最后一次时间重检测(例如,在步骤720的前一执行中确定),并且计数器一过期就执行另一次重新检测。示例性计算机系统接着转向图8,示出了一种系统850 (在一种实施例中,其可用来实施上述系统10)的实施例的框图。在所描述的实施例中,系统850包括集成电路200的至少一个实例,该集成电路耦接至外部存储器852。外部存储器852可形成上面关于图2所讨论的主存储器子系统(例如,该外部存储器852可包括存储器模块240)。集成电路200耦接至一个或多个外部设备854以及外部存储器852。也提供了一种电源856,其向集成电路858提供电源电压以及向存储器852和/或外部设备854提供一个或多个电源电压。在一些实施例中,可包括集成电路200的不止一个实例(以及也可包括不止一个外部存储器852)。存储器852可以是任意类型的存储器,譬如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据率(DDR、DDR2、DDR3 等)SDRAM(包括移动版本的 SDRAM,譬如 mDDR3等,和 / 或低功率版本的 SDRAM,譬如 LPDDR2 等)、RAMBUS DRAM (RDRAM)、静态 RAM(SRAM)等。一种或多种存储器设备可耦接在电路板上以形成存储器模块,譬如单内嵌存储器模块(SIMM)、双内嵌存储器模块(DIMM)等。可替代地,所述设备可按照芯片叠层配置、封装体叠层配置、或者多芯片模块配置与集成电路200安装在一起。外部设备854可包括任意期望电路,这取决于系统850的类型。例如,在一种实施例中,系统850可以是移动设备(例如个人数字助理(PDA)、智能手机等),以及外部设备854可包括用于各种类型无线通信的设备,例如wif1、蓝牙、蜂窝式、全球定位系统等。外部设备854也可包括额外的存储器,包括RAM存储器、固态存储器或磁盘存储器。外部设备854可包括譬如显示屏之类的用户接口设备,包括触摸显示屏或多触摸显示屏、键盘或者其他输入设备、麦克风、扬声器等。在其它实施例中,系统850可以是任意类型的计算系统(例如,桌上式个人计算机、膝上型计算机、工作站、低成本简易台式机(net top)等。虽然上面已经描述了特定实施例,但是这些实施例并非旨在限制本公开的范围,即使其中仅就具体特征描述了单个实施例。本公开中提供的特征的实施例旨在说明性的而非限制性的,除非另外指明。上述描述旨在覆盖这些对本领域技术人员显而易见的具有本公开优点的替代、修改和等价物。本公开的范围包括这里描述(或明确或者隐含)的任意特征或者特征组合,或其任意概括,无论其是否消除了这里所指出的任意或全部问题。因此,新的权利要求可在该申请(或其请求优先权的申请)被审查期间被表示为特征的任意这种组合。具体地,参考所附权利要求,来自从属权利要求的特征可与独立权利要求的那些特征相组合,以及来自各个从属权利要求的特征可按照任意合适的而不仅仅是在所附权利要求中枚举的特定组合中的方式进行组合。
权利要求
1.一种装置,包括 存储器接口电路,配置成基于数据选通信号确定用于从存储器捕获数据的初始时间值;以及 所述存储器接口电路被配置成确定用于捕获所述数据的调整时间值,其中该存储器接口电路配置成通过使用所述初始时间值采样所述数据选通信号,来确定所述调整时间值。
2.权利要求1的装置,其中所述存储器接口电路配置成 执行从存储器捕获已知值;以及 基于所述已知值是否被正确捕获来确定所述初始时间值; 其中所述初始时间值是表示发布对所述存储器的读请求与由所述存储器驱动的所述数据选通信号之间的时段的值。
3.权利要求2的所述装置,其中所述存储器接口电路配置成 响应于所述已知值的单个读操作来执行多个捕获,其中每个捕获与各个时间值相关联;以及 选择所述各个时间值其中之一作为所述确定的初始时间值。
4.权利要求2的所述装置,进一步包括 存储器控制器,其与所述存储器接口电路相耦接; 其中所述存储器接口电路配置成使所述存储器控制器发布所述读请求。
5.权利要求1的装置,其中所述存储器接口电路配置成 在所述数据选通信号的单个周期内,执行所述数据选通信号的多次采样;以及 使用所述调整时间值来确定何时允许所述数据选通信号以捕获数据。
6.权利要求5的所述装置,其中所述存储器接口电路配置成响应于所述存储器的刷新操作来执行所述多次采样。
7.权利要求1的所述装置,其中所述存储器接口单元配置成周期性地确定用于捕获所述数据的调整时间值。
8.权利要求1的所述装置,其中所述存储器接口电路配置成在执行读操作期间确定所述调整时间值。
9.权利要求1的装置,其中所述存储器接口电路配置成 保持计数器以指示何时执行捕获数据的时间值的最后确定;以及 计数器一过期就执行时间值的确定。
10.权利要求1的所述装置,其中所述存储器接口电路包括缓冲器,所述缓冲器配置成从耦接在所述存储器接口电路和所述存储器之间的总线中捕获所述数据,以及其中所述存储器接口电路配置成对所述缓冲器内的锁存器的输出进行采样以执行多次采样。
11.权利要求1的所述装置,其中所述存储器接口电路包括锁存器,所述锁存器配置成从总线捕获数据,以及其中所述存储器接口电路配置成基于所述初始时间值来控制所述数据选通信号何时被提供给所述锁存器。
12.—种方法,包括 存储器接口电路将读请求发送至存储器以请求数据值; 所述存储器接口电路在数据选通信号的单个周期期间执行对所述数据值的多次采样;以及基于所述多次采样,所述存储器接口电路确定所述数据选通信号有效的时间以从所述存储器捕获数据。
13.权利要求12的方法,其中所述存储器接口电路包括缓冲器,所述缓冲器配置成从耦接在所述存储器接口电路和所述存储器之间的总线上捕获所述数据值,以及其中所述存储器接口电路配置成对所述缓冲器内的锁存器的输出进行采样以执行所述多次采样。
14.权利要求12的所述方法,其中响应于所述存储器的刷新操作执行所述多次采样。
15.权利要求12的所述方法,其中所述多次采样包括至少4次采样。
16.—种方法,包括 存储器以存储器接口电路接收对数据值的读请求; 所述存储器将所述数据值发送至所述存储器接口电路,其中所述存储器接口电路配置成在数据选通信号的单个周期期间执行对所述数据值的多次采样,以及其中所述存储器接口电路配置成基于所述多次采样确定所述数据选通信号有效的时间以从所述存储器捕获数据。
17.权利要求16的所述方法,其中所述存储器配置成将至少两个测试值存储在存储器的专用部分中,以及其中所述存储器接口电路配置成将所发送的数据值的捕获版本与所述至少两个值其中之一的拷贝相比较,以确定是否获了所发送的数据值的捕获版本。
全文摘要
公开涉及确定数据选通信号何时有效用于捕获数据的技术。在一种实施例中,公开了一种装置,其包括存储器接口单元,该存储器接口单元配置成基于数据选通信号确定用于从存储器捕获数据的初始时间值。在一些实施例中,该存储器接口电路可通过从存储器读取已知值来确定该初始值。在一种实施例中,该存储器接口电路进一步配置成确定用户捕获该数据的调整时间值,其中该存储器接口电路配置成通过使用该初始时间值采样该数据选通信号来确定该调整时间值。
文档编号G06F13/16GK102999454SQ20121043441
公开日2013年3月27日 申请日期2012年9月7日 优先权日2011年9月8日
发明者陈浩, R·L·诺塔尼, S·比斯韦斯 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1