裸芯上信号校准的制作方法

文档序号:15619197发布日期:2018-10-09 21:54阅读:278来源:国知局

本申请要求ravindraarjunmadpur等于2017年3月17日提交的申请号为201721009431、题为“on-diesignalcalibration”的印度临时专利申请的权益,其通过引用以其整体为全部目的并入本文。

在各种实施例中,本公开涉及信号校准,并且更特别地涉及对于一个或多个集成电路装置的建立(setup)时间和/或保留(holdup)时间校准。



背景技术:

随着集成电路装置的速度提高,也提高了定时要求。例如,数据关于时钟信号的输入建立和保留时间可能具有严格要求,否则可能发生错误。在具有多个集成电路装置的系统中,满足定时要求可能甚至更困难,尤其如果它们共享相同的总线和/或控制器。



技术实现要素:

提出了用于裸芯上信号校准的设备。在一个实施例中,裸芯上控制器设置在集成电路装置上。在某些实施例中,裸芯上控制器包含校准电路,其从集成电路装置的有效数据路径接收数据,并且检测所接收的数据从校准数据图形上的变化。在一个实施例中,响应于检测所接收的数据上的第一变化,调整电路减少集成电路装置的有效数据路径的延迟。在某些实施例中,响应于检测所接收的数据上的第二变化,调整电路增加集成电路装置的有效数据路径的延迟。

提出了用于裸芯上信号校准的其他设备。在一个实施例中,设备包含用于响应于校准命令,分接(tap)来自存储器装置的有效数据路径的端部处的数据缓冲器的校准数据的构件。在某些实施例中,设备包含用于检测所分接的校准数据与校准数据图形之间的变化的构件。在一个实施例中,设备包含用于基于所检测的变化来调整有效数据路径的延迟的构件。

提出了用于裸芯上信号校准的系统。在一个实施例中,装置控制器配置为发送校准命令和校准数据。在某些实施例中,存储器元件的阵列与装置控制器通信。在一个实施例中,阵列中的存储器元件包含不同输入/输出垫与存储器缓冲器之间的不同有效数据路径。在某些实施例中,阵列中的存储器元件配置为分接存储器缓冲器,以检测来自不同有效数据路径的校准数据上的不同变化。在一个实施例中,阵列中的存储器元件基于所检测的不同变化对不同有效数据路径进行不同延迟调整。

提出了用于裸芯上信号校准的方法和计算机程序产品。在某些实施例中,计算机程序产品包括非瞬态计算机可读储存介质,其储存可执行程序代码,以执行用于裸芯上信号校准的操作。在一个实施例中,计算机程序产品的方法和/或操作的步骤可以包含上面关于所公开的设备和系统所描述的功能中的一个或多个。

附图说明

下面参考附图中所图示的特定实施例,包含了更详细的描述。应理解,这些附图仅描绘了本公开的某些实施例,并且因此不认为是限制其范围,通过采用附图,以附加的具体内容和细节描述和解释了本公开,附图中:

图1是包括校准部件的系统的一个实施例的示意性框图;

图2是图示包括校准部件的系统的另一实施例的示意性框图;

图3是图示校准部件的一个实施例的示意性框图;

图4是图示裸芯上信号校准的系统的一个实施例的示意性框图;

图5是图示裸芯上信号校准的系统的进一步实施例的示意性框图;

图6a是图示校准操作的一个实施例的示意性框图;

图6b是图示校准操作的进一步实施例的示意性框图;

图6c是图示校准操作的某实施例的示意性框图;

图7是图示裸芯上信号校准的方法的一个实施例的示意流程图;以及

图8是图示裸芯上信号校准的方法的进一步实施例的示意流程图。

具体实施方式

本公开的方面可以实施为设备、系统、方法,或计算机程序产品。相应地,本公开的方面可以采取完全硬件实施例、完全软件实施例(包含固件、常驻软件,微代码等)或组合软件和硬件方面的实施例的形式,其在本文中可以全部总体上称为“电路”、“模块”、“设备”或“系统”。此外,本公开的方面可以采取实施为储存计算机可读和/或可执行程序代码的一个或多个非瞬态计算机可读储存介质的计算机程序产品的形式。

本说明书中所描述的许多功能单元已经被标记为模块,以便更特定地强调它们的实现方式独立性。例如,模块可以实现为硬件电路,其包括定制vlsi电路或门阵列,诸如逻辑芯片、晶体管,或其他分立部件的现成(off-the-shelf)半导体。模块还可以实现为可编程硬件装置,诸如场可编程门阵列、可编程阵列逻辑器、可编程逻辑装置等。

模块还可以至少部分地实现为软件,以由各种类型的处理器执行。可执行代码的识别的模块可以例如包括计算机指令的一个或多个物理或逻辑区块,其可以例如组织为任务、程序或功能。但是,识别的模块的可执行代码不需物理地位于一起,但可以包括不同位置中储存的不同的(disparate)指令,当其被逻辑上结合在一起时,包括模块并实现模块的所述目的。

实际上,可执行代码的模块可以包含单个指令或许多指令,并且甚至可以分布在若干不同代码区段中、在不同程序之间、在若干存储器装置之间等。在模块或模块的部分实现为软件的情况下,软件部分可以储存在一个或多个计算机可读和/或可执行储存介质上。可以采用一个或多个计算机可读储存介质的任意组合。计算机可读储存介质可以包含例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备、或装置或前述的任意适当组合,但不会包含传播的信号。在本文档的上下文中,计算机可读和/或可执行储存介质可以为任何有形的和/或非瞬态介质,其可以含有或储存程序,该程序由指令执行系统、设备、处理器、或装置使用或与之相关。

用于执行本公开的方面的操作的计算机程序代码可以编写为编程语言中的一种或多种的任意组合,包含诸如python、java、smalltalk、c++、c#、objectivec等的面向对象编程语言,诸如“c”编程语言的常规程序编程语言,脚本编程语言,和/或其他相似编程语言。程序代码可以部分或完全地在用户计算机和/或远程计算机或数据网络等之上的服务器上中的一个或多个执行。

如本文中所使用的,部件包括有形的、物理的、非瞬态装置。例如,部件可以实现为硬件逻辑电路,其包括定制vlsi电路、门阵列、或其他集成电路;现成半导体,诸如逻辑芯片、晶体管、或其他分立装置;和/或其他机械或电装置。部件还可以实现为可编程硬件装置,诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。部件可以包括一个或多个硅集成电路装置(例如,芯片、裸芯、裸芯平面、封装体)或其他分立电装置,其与一个或多个其他部件通过印刷电路板(pcb)等的电导线电通信。在某些实施例中,本文所描述的模块中的每一个可以替代地通过部件实现或实现为部件。

如本文中所使用的,电路包括一个或多个电气和/或电子部件的集,其为电流提供一个或多个通路。在某些实施例中,电路可以包含电流的返回通路,使得电路为封闭环路。然而,在另一实施例中,不包含电流的返回通路的部件的集可以称为电路(例如,开放环路)。例如,集成电路可以称为电路,无论集成电路是否耦合到接地(作为电流的返回通路)。在各种实施例中,电路可以包含集成电路的部分、集成电路、集成电路的集、具有或不具有集成电路装置的非集成电气部件和/或电气部件的集等。在一个实施例中,电路可以包含定制vlsi电路、门阵列、逻辑电路、或其他集成电路;现成半导体,诸如逻辑芯片、晶体管、或其他分立装置;和/或其他机械或电气装置。电路还可以实现为诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等中的可编程硬件装置中的综合电路(例如,作为固件、网表(netlist)等)。电路可以包括一个或多个硅集成电路装置(例如,芯片、裸芯、裸芯平面、封装体)或其他分立电装置,其与一个或多个其他部件通过印刷电路板(pcb)等的电导线电通信。在某些实施例中,本文中所描述的模块中的每一个可以通过电路实施或实现为电路。

本说明书通篇对于“一个实施例”、“实施例”或相似语言方式的引用是指关于实施例所描述的特定特征、结构或特性包含在本公开的至少一个实施例中。从而,短语“在一个实施例中”、“在实施例中”以及类似语言的在本说明书通篇中的出现可以但不一定全部指代相同的实施例,而意味着“一个或多个但不是全部实施例”,除非明确地另有指明。术语“包含”、“包括、“具有”及其变体意味着“包含但不限于”,除非明确地另有指明。项目的枚举列出不表示项目中的任意或全部相互排除和/或相互包含,除非明确地另有指明。术语“一”、“该”以及“所述”也指代“一个或多个”,除非明确地另有指明。

下面参考根据本公开的实施例的方法、设备、系统以及计算机程序产品的示意流程图和/或示意性框图描述了本公开的方面。应当理解,示意流程图和/或示意性框图的每个框,以及示意流程图和/或示意性框图中的框的组合,可以通过计算机程序指令实现。这些计算机程序指令可以提供到计算机或用来制造机器的其他可编程数据处理设备的处理器,使得经由处理器或其他可编程数据处理设备执行的指令产生实现示意流程图和/或示意性框图的框或框所指定的功能和/或行动的构件。

还应注意到,在一些替代实现方式中,框中提到的功能可能不按照图中提到的顺序发生。例如,相继示出的两个框可能实际上实质上同时执行,或框有时可能以相反顺序执行,取决于涉及的功能。可以设想其他步骤和方法,其在功能、逻辑、或对所图示的图的一个或多个框或其部分的影响上等效。尽管可能在流程图和/或框图中采用各种箭头类型和线类型,它们理解为不限制对应的实施例的范围。例如,箭头可以指示所描绘的实施例的所枚举步骤之间的未指定持续时间的等待或监测周期。

在下面的详细说明书中,对附图进行了参考,其形成说明书的一部分。前述发明内容仅为说明性的,并且不意图以任何方式为限制性。除了图示的方面、实施例以及上述特征,其他方面、实施例以及特征通过参考附图和下面的详细说明书将变得显而易见。每个附图中的元件的描述可以指代先前的附图的元件。相同附图标记可以在附图中指代相同元件,包含相同元件的替代实施例。

图1是系统100的一个实施例的框图,系统100包括存储器装置120和/或另一集成电路装置120的一个或多个校准部件150。校准部件150可以为存储器元件123的部分,并且可以与装置控制器126、装置驱动器等通信。在一些实施例中,校准部件150可以至少部分地在计算装置110的存储器系统102上运行和/或与之通信,计算装置110可以包括处理器111、易失性存储器112以及通信接口113。处理器111可以包括一个或多个中央处理单元、一个或多个一般用途处理器、一个或多个应用专用处理器、一个或多个虚拟处理器(例如,计算装置110可以为主机中运行的虚拟机)、一个或多个处理器核心等。通信接口113可以包括一个或多个网络接口,其配置为通信地将计算装置110和/或装置126耦合到通信网络115,诸如互联网协议(ip)网络、存储区域网络(san)、无线网络、有线网络等。

在各种实施例中,存储器装置120可以设置在相对于计算装置110的一个或多个不同位置。在一个实施例中,存储器装置120包括一个或多个易失性和/或非易失性存储器元件123,诸如设置在一个或多个印刷电路板、储存外壳、和/或其他机械和/或电气支承结构上的半导体芯片、裸芯、封装体、或其他集成电路装置。例如,存储器装置120可以包括一个或多个直接插入式存储器模块(dimm)卡、一个或多个扩展卡和/或子卡、存储器卡、通用串行总线(usb)驱动器、固态驱动器(ssd)或其他硬盘驱动器装置,和/或可以具有另一存储器和/或储存形式。存储器装置120可以与计算装置110的母板集成和/或安装在之上,安装在计算装置110的端口和/或插槽中,安装在不同计算装置110上和/或网络115上的专用储存设备上,与计算装置110在外部总线(例如,外部硬盘驱动器)上通信等。

在一个实施例中,存储器装置120可以设置在处理器111的存储器总线上(例如,在与易失性存储器112相同的存储器总线上,在与易失性存储器112不同的存储器总线上,取代易失性存储器112等)。在其他实施例中,存储器装置120可以设置在计算装置110的外围总线上,诸如外围部件互连高速(pciexpress或pcie)总线、串行先进技术附件(sata)总线、并行先进技术附件(pata)总线、小型计算机系统接口(scsi)总线、火线(firewire)总线、光纤信道连接、通用串行总线(usb)、pcie先进切换(pcie-as)总线等。在另一实施例中,存储器装置120可以设置在数据网络115上,诸如以太网络、无限带宽网络、网络115之上的scsirdma、储存区域网络(san)、局域网络(lan)、诸如互联网的广域网络(wan),另一有线和/或无线网络115等。

计算装置110还可以包括非瞬态、计算机可读储存介质114。计算机可读储存介质114可以包括可执行指令,其配置为使得计算装置110(例如,处理器111)进行本文所公开的方法中的一个或多个的步骤。替代地,或附加地,校准部件150可以包含非瞬态储存介质114上储存的一个或多个计算机可读指令。

在描绘的实施例中,存储器系统102包含一个或多个校准部件150。在一个实施例中,校准部件150配置为提供建立时间(tds)、保留时间(tdh)、和/或从存储器元件123或其他集成电路装置123内的其他裸芯上信号校准(例如,响应于来自装置控制器126的单个校准命令,响应于从装置控制器126在总线127之上接收校准数据,在不将校准数据在总线127之上发送回到装置控制器126和/或等情况下)。

某些信号(例如,数据信号、命令信号、控制信号等)可以取决于一个或多个其他信号(例如,时钟信号,定时信号等)和/或鉴于一个或多个其他信号来解释。由于存储器元件123或其他集成电路装置123、装置控制器126或两者中的过程和/或材料的变化,相关信号(例如,数据信号与时钟信号)之间可能存在定时错配,或由于操作条件、损坏、老化等,错配可能随着时间发展。此外,由于距装置控制器126的不同距离、材料和/或制造工艺等上的变化,相同集成电路装置123的不同数据路径可能具有不同定时错配。如果信号(例如,上升边缘)比相关联的时钟信号更早到达集成电路装置123处,建立时间(例如,时钟信号边缘之前的时间量)可能是充足的,但可能存在不充足的保留时间(例如,时钟信号边缘之后的时间量),如下面所描述的,导致保留时间错误等。如果信号比相关联的时钟信号更晚到达集成电路装置123处,保留时间可能是充足的,但可能存在不充足的建立时间,导致建立时间错误等。

如本文中所使用的,校准可以包括两个或更多个信号的调整和/或同步。例如,在某些实施例中,校准数据信号和时钟信号的定时(例如,调整延迟、增加延迟、减少延迟等)可以减少或消除数据信号中由于定时的传输错误(例如,建立时间错误、保留时间错误等)。在一个实施例中,校准部件150可以在制造时间或附近(例如,在裸芯分类或由制造商、供应商、经销商等进行的另一测试期间)为集成电路装置123校准一个或多个信号。在其他实施例中,校准部件150可以响应于一个或多个触发(例如,响应于来自装置控制器126的校准命令、集成电路装置123和/或存储器装置120的启动或开机过程、检测到集成电路装置123上的定时或其他数据错误、背景校准过程等),周期性地为集成电路装置123校准一个或多个信号。

以此方式,在某些实施例中,校准部件150可以从裸芯123内进行信号校准,其比装置控制器126能够外部地对裸芯123进行校准更快(例如,通过消除校准数据在总线127上回到装置控制器150的传输,共同允许多个裸芯123并行地和/或同时地校准自身等)。例如,在某些实施例中,装置120可以包含多个集成电路芯片123、裸芯123、和/或裸芯平面123,其中的每一个可以包括一个或多个校准部件150,以与裸芯123内分开地独立地校准信号(例如,建立时间和/或保留时间等)。在一个实施例中,多个裸芯123和/或裸芯平面123可以堆叠或以其他方式组合为多裸芯123布置(例如,在制造之后),在该过程期间,裸芯123的信号校准和/或表征可能从其初始被制造时改变。此外,在一些实施例中,由于裸芯123通过使用的磨损和/或损坏等,裸芯123的信号校准和/或表征在现场可能随着时间改变。在某些实施例中,校准部件150可能随着时间(例如,在制造时间或附近组合多个裸芯123之后,在运行时间期间在现场等)为裸芯123动态地更新、重新表征、和/或重新校准信号定时(例如,建立时间和/或保留时间)。

在各种实施例中,通过在集成电路装置123的数据路径中引入和/或移除延迟(例如,检测和/或补偿建立失败和/或保留失败),校准部件150可以校准信号(例如,建立时间和/或保留时间)。如本文中所使用的,建立时间包括时钟信号的边缘之前的时间量,其中数据信号是稳定的以便锁存或以其他方式接收。如本文中所使用的,保留时间包括在时钟信号的边缘之后的时间量,其中数据信号是稳定的以便锁存或以其他方式接收。

在一个实施例中,装置控制器126可以发送校准命令和/或校准数据到一个或多个存储器元件123和/或其他集成电路装置,响应于该校准命令和/或校准数据,裸芯上校准部件150可以进行一个或多个校准操作。例如,在某些实施例中,校准部件150可以从存储器元件123或其他集成电路装置的有效数据路径接收校准数据(例如,预定的数据图形),检测所接收的数据上的一个或多个变化,并且基于所检测一个或多个变化而增加或减少有效数据路径的延迟。如本文中所使用的,变化可以包括差异。例如,数据上的变化可以包含不同数据值、数据错误、定时偏斜(skew)(例如,建立时间错误、保留时间错误等)、所接收的数据与原始地发送的数据上的差异、所接收的数据与预定的校准数据图形上的差异等。

如本文中所使用的,集成电路装置123的有效数据路径可以包括电气和/或通信路线,工作负荷数据(例如,来自装置控制器126的数据、用户数据、客户端数据、来自储存客户端116的数据等)在集成电路装置123内在该电气和/或通信路线上行进(例如,在集成电路装置123的输入/输出电接触体与存储器介质的数据缓冲器之间延伸,在集成电路装置123的输入/输出电接触体与存储器介质之间延伸等)。有效数据路径可以包括待校准的实际路径,在某些实施例中,其允许校准部件150基于其实际偏斜(而非基于副本数据路径、基于另一位置或电路等)来精确地校准实际有效数据路径。在其他实施例中,校准部件150可以独立地校准相同集成电路装置123上的多个不同有效数据路径,各自基于不同有效数据路径的实际偏斜或其他变化。

在其他实施例中,与从装置控制器126接收校准数据图形不同,校准部件150可以从集成电路装置123内产生预定的和/或固定的校准数据图形,校准部件150可以将其发送和/或传输在集成电路装置123的内部有效数据路径的用于信号校准的至少部分上。

在一个实施例中,校准部件150从集成电路装置123的有效数据路径的端部接收校准数据图形或其变化的版本(例如,由于信号定时错误)(例如,分接、复制、监测、读取/和/或以其他方式从有效数据路径的端部处的数据缓冲器接收数据等),并且可以基于所接收的数据来确定是否已经存在建立或保留失败。如本文中所使用的,分接来自有效数据路径的数据,可以包括将直接来自有效数据路径的数据接收和/或重新路由(例如,而非采用副本数据路径、不同数据路径、预定的延迟设定等)。例如,校准部件150可以分接(例如,监测、复制、读取、重新路由、转移、和/或以其他方式访问)数据,诸如从有效数据路径的端部和/或输出(例如,有效数据路径的端部处的数据缓冲器等)所接收的校准数据图形或其他校准数据。校准部件150,在一个实施例中,可以具有用于分接和/或以其他方式监测来自有效数据路径(例如,来自有效数据路径的端部处的数据缓冲器等)的校准数据的分开的数据连接,而不干扰有效数据路径(例如,有效数据路径的数据缓冲器)和存储器介质(例如,存储器单元的阵列等)之间的数据连接。例如,有效数据路径与校准部件150之间的数据连接可以是选择性的,并且可以响应于来自装置控制器126的校准命令、响应于校准操作等而连接和/或激活。如本文中所使用的,数据缓冲器包括易失性或非易失性数据储存体。例如,数据缓冲器可以包括非易失性存储器介质123的数据锁存器、寄存器、触发器、ram、页面缓冲器、缓存或便笺本(scratchpad)区域等。

可以选择校准模式,使得所接收的数据上的第一变化指示建立失败(例如,诸如预定的时间、位位置、时钟边缘等处的二进制零的变化和伴随的另一预定的线上的脉冲信号和/或时钟脉冲),并且第二变化指示保留失败(例如,诸如预定的时间、位位置、时钟边缘等处的二进制一的变化),而第三变化(例如,原始校准数据、预定的时间和/或位位置处的二进制零,而没有伴随的另一预定的线上的脉冲信号和/或时钟脉冲等)可以指示没有失败(例如,正确和/或校准的定时)。例如,在一个实施例中,校准部件150可以在每个时钟边缘上(例如,双倍数据速率(ddr)以校准建立时间和保留时间两者)将“01000000”等的模式发送在集成电路装置123的有效数据路径上。

在某些实施例中,响应于保留失败,校准部件150可以增加有效数据路径上的信号的延迟,减少时钟信号的延迟等。在某些实施例中,响应于建立失败,校准部件150可以减少有效数据路径上的信号的延迟,增加时钟信号的延迟等。如本文中所使用的,延迟可以包括数据(例如,数据信号)在两个点之间行进的时间量。例如,有效数据路径的延迟可以包括数据、信号等从有效数据路径的一个端部(例如,输入/输出电接触体等)行进到另一端部(例如,数据缓冲器等)所用的时间量。在各种实施例中,校准部件150可以通过引入或有效数据路径移除延迟来调整延迟(例如,增加延迟、减少延迟)。例如,通过增加计数器的计数以增加延迟、减少计数器的计数以减少延迟(或反之亦然),校准部件150可以使用计数器(诸如配置为计数器的数字到模拟转换器(dac)等)来调整集成电路装置123的内部有效数据路径的延迟。校准部件150的计数器可以将当前计数(例如,表现延迟)提供到集成电路装置123的有效数据路径中的中继器(repeater)、缓冲器、和/或另一可编程和/或可调整延迟分量,以提供确定的延迟。

在某些实施例中,校准部件150可以通过对有效数据路径添加一个或多个延迟部件来增加有效数据路径的延迟(例如,添加第一、第二、和/或第n延迟;激活一个或多个晶体管或其他开关,以将有效数据路径路由通过一个或多个延迟部件;等)。在其他实施例中,校准部件150可以通过从有效数据路径移除一个或多个延迟部件来减少有效数据路径的延迟(例如,移除第一、第二、和/或第n延迟;激活一个或多个晶体管或其他开关,以从有效数据路径移除一个或多个延迟部件;等)。不论校准部件150添加分立延迟部件到有效数据路径、和/或从有效数据路径移除分立延迟部件,或采用单个、可编程、和/或可调整延迟部件来调整延迟,增加延迟可以使得数据信号行进穿过有效数据路径比增加之前花费更久,并且减少延迟可以使得数据信号行进穿过有效数据路径比减少之前更快。

在某些实施例中,集成电路装置123的校准部件150可以跨装置120的关机和/或重启事件储存延迟设定(例如,dac和/或另一计数器的当前延迟计数),以在没有重新校准的情况下继续提供延迟。在其他实施例中,在装置120的每次关机和/或重启事件之后(例如,在开机程序期间等),集成电路装置123的校准部件150可以重新校准和/或重新表征信号(例如,确定dac和/或另一计数器的新的延迟计数)。

在一个实施例中,校准部件150包括时钟分割器电路(例如,其可以对于多个i/o信道、裸芯、裸芯平面等共用);一个或多个触发器、锁存器、寄存器、或其他储存体;诸如上/下计数器、dac等的计数器(例如,对于多个i/o信道、裸芯、裸芯平面等中的每一个);等。在某些实施例中,校准部件150可以进行包括四个循环ddr协议的校准,将校准数据图形在关于时钟信号的两个边缘上发送(例如,诸如上述的01000000的固定的数据图形)。

在一个实施例中,校准部件150可以包括存储器元件123的逻辑硬件、其他可编程逻辑、存储器元件123的固件、用于由存储器元件123执行的微代码等。在另一实施例中,校准部件150可以包括可执行软件代码、储存在计算机可读储存介质上,用于由存储器元件123的逻辑硬件执行。在其他实施例中,校准部件150可以包含可执行软件代码和逻辑硬件的两者的组合。

在一个实施例中,校准部件150配置为经由总线125,127、装置控制器126等接收来自装置驱动器的储存请求或其他可执行应用。校准部件150可以还配置为经由总线125与装置驱动器和/或储存客户端116往复传递数据。相应地,在一些实施例中,校准部件150可以包括一个或多个直接存储器访问(dma)模块、远程dma模块、总线控制器、电桥、缓冲器等和/或与之通信,以便于储存请求和相关联的数据的传递。在另一实施例中,校准部件150可以将储存请求接收作为来自储存客户端116的api调用,作为io-ctl命令等。下面关于图3更详细地描述了校准部件150。

根据各种实施例,装置控制器126可以管理一个或多个存储器装置120和/或存储器元件123。(多个)存储器装置120可以包括记录、存储器、和/或储存装置,诸如(多个)固态储存装置和/或(多个)半导体储存装置,其布置和/或分割为多个可寻址介质储存位置。如本文中所使用的,介质储存位置是指存储器的任意物理单元(例如,存储器装置120上的任意数目的物理储存介质)。存储器单元可以包含但不限于:页面、存储器分区、区块、扇区、集合或物理储存位置的组(例如,逻辑页面、逻辑区块)等。

在某些实施例中,装置驱动器和/或装置控制器126可以将逻辑地址空间134呈现到储存客户端116。如本文中所使用的,逻辑地址空间134是指存储器资源的逻辑表现。逻辑地址空间134可以包括多个(例如,范围)逻辑地址。如本文中所使用的,逻辑地址是指参考存储器资源(例如,数据)的任意标识符,包含但不限于:逻辑区块地址(lba)、柱面/头/扇区(chs)地址、文件名、对象标识符、索引节点(inode)、通用唯一标识符(uuid)、全局唯一标识符(guid)、散列码、签名、索引入口、范围、外延等。

存储器装置120的装置驱动器可以保持元数据135,诸如逻辑到物理地址映射结构,以将逻辑地址空间134的逻辑地址映射到(多个)存储器装置120上的介质储存位置。装置驱动器可以配置为向一个或多个储存客户端116提供储存服务。储存客户端116可以包含计算装置110上运行的本地储存客户端116和/或经由网络115和/或网络接口113可访问的远程、储存客户端116。储存客户端116可以包含但不限于:操作系统、文件系统、数据库应用、服务器应用、内核级进程、用户级进程、应用等。

装置驱动器可以通信地耦合到一个或多个存储器装置120。一个或多个存储器装置120可以包含不同类型的存储器装置,包含但不限于:易失性存储器装置、固态储存装置、半导体储存装置、san储存资源等。一个或多个存储器装置120可以包括一个或多个相应的装置控制器126和存储器介质122。装置驱动器可以经由传统区块i/o接口131提供对一个或多个存储器装置120的访问。附加地,装置驱动器可以通过scm接口132提供对增强功能的访问。元数据135可以用来管理和/或追踪通过区块i/o接口131、scm接口132、缓存接口133或其他相关接口中的任一个进行的数据操作。

缓存接口133可以暴露缓存专用特征,其经由存储器装置120的装置驱动器可访问。此外,在一些实施例中,呈现到储存客户端116的scm接口132提供对数据转化的访问,其由一个或多个存储器装置120和/或一个或多个装置控制器126实现。

装置驱动器可以通过一个或多个接口将逻辑地址空间134呈现给储存客户端116。如上面所讨论的,逻辑地址空间134可以包括多个逻辑地址,各自对应于一个或多个存储器装置120上的相应的介质位置。装置驱动器可以保持元数据135,其包括逻辑地址与介质位置之间的任意到任意映射等。

装置驱动器还可以包括和/或与存储器装置接口139通信,存储器装置接口139配置为将数据、命令、和/或查询在总线125之上传递到一个或多个存储器装置120,总线125可以包含但不限于:处理器111的存储器总线、外围部件互连高速(pciexpress或pcie)总线、串行先进技术附件(ata)总线、并行ata总线,小型计算机系统接口(scsi)、火线(firewire)、光纤信道、通用串行总线(usb)、pcie先进切换(pcie-as)总线、网络115、无限带宽网络、scsirdma等。存储器装置接口139可以采用(多个)输入输出控制(io-ctl)命令、(多个)io-ctl命令扩展、远程直接存储器访问等与一个或多个存储器装置120通信。

通信接口113可以包括一个或多个网络接口,其配置为将计算装置110和/或装置控制器126通信地耦合到网络115和/或到一个或多个远程的、网络可访问储存客户端116。储存客户端116可以包含计算装置110上运行的本地储存客户端116和/或远程的、经由网络115和/或网络接口113可访问的储存客户端116。装置控制器126是一个或多个存储器装置120的部分和/或与之通信。尽管图1描绘了单个存储器装置120,本公开不限于此,并且可以适配为整合任意数目的存储器装置120。

存储器装置120可以包括易失性和/或非易失性存储器介质122的一个或多个元件123,其可以包含但不限于:易失性存储器,诸如sram和/或dram;非易失性存储器,诸如reram、忆阻器(memristor)存储器、可编程金属化单元存储器、相变存储器(pcm、pcme、pram、pcram、双向统一存储器、硫族化物ram、或c-ram)、nand闪存(例如,2dnand闪存、3dnand闪存)、nor闪存、纳米随机存取存储器(纳米ram或nram)、纳米晶体线基存储器(nanocrystalwire-basedmemory)、硅氧化物基亚10纳米工艺存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(sonos)、可编程金属化单元(pmc)、导电桥ram(cbram)、磁阻式ram(mram)、磁性储存介质(例如,硬盘、磁带)、和/或光学储存介质;或其他存储器和/或储存介质。在某些实施例中,存储器介质122的一个或多个元件123包括储存级存储器(scm)。

尽管诸如nand闪速的旧有技术可以为区块和/或页面可寻址的,在一个实施例中,储存级存储器是字节可寻址的。在其他实施例中,储存级存储器可以比nand闪速更快和/或具有更长寿命(例如,耐久性);可以比dram具有更低成本、使用更少电力、和/或具有更高储存密度;或提供当与其他技术相比时的一个或多个其他优点或改善。例如,储存级存储器可以包括reram、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米ram、纳米晶体线基存储器、硅氧化物基亚10纳米工艺存储器、石墨烯存储器、sonos存储器、pmc存储器、cbram、mram、和/或其变化的一个或多个非易失性存储器元件123。

尽管存储器介质122本文中称为“存储器介质”,在各种实施例中,存储器介质122可以更总体地包括能够记录数据的一个或多个易失性和/或非易失性记录介质,其可以称为存储器介质、储存介质等。此外,在各种实施例中,存储器装置120可以包括记录装置、存储器装置、储存装置等。相似地,在各种实施例中,存储器元件123可以包括记录元件、存储器元件、储存元件等。在其他实施例中,存储器元件123可以包括不同类型的集成电路装置(例如,asic、cpu、通信装置、图形装置、系统级芯片、可编程逻辑装置等),并且存储器元件123仅作为一类集成电路装置(例如,集成电路裸芯、芯片、裸芯平面、封装体等)的示例,校准部件150可以为其校准一个或多个信号,并且设想其他类型的集成电路装置在本公开的范围内。

存储器介质122可以包括一个或多个存储器元件123,其可以包含但不限于:芯片、封装体、平面、裸芯等。装置控制器126可以配置为管理存储器介质122上的数据操作,并且可以包括一个或多个处理器、可编程处理器(例如,fpga)、asic、微控制器等。在一些实施例中,装置控制器126配置为在存储器介质122上储存数据和/或从存储器介质122读取数据,与存储器装置120传递数据等。

装置控制器126可以通过总线127通信地耦合到存储器介质122。总线127可以包括与存储器元件123往复通信数据的i/o总线。总线127还可以包括将地址和其他命令和控制信息通信到存储器元件123的控制总线。在一些实施例中,总线127可以将存储器元件123并行地通信地耦合到装置控制器126。该并行访问可以允许存储器元件123作为组被管理,形成逻辑存储器元件129。逻辑存储器元件可以分割为相应的逻辑存储器单元(例如,逻辑页面)和/或逻辑存储器分区(例如,逻辑区块)。逻辑存储器单元可以由存储器元件123中的每一个的逻辑上组合的物理存储器单元形成。

装置控制器126可以包括计算装置110上执行的装置驱动器和/或与之通信。装置驱动器可以经由一个或多个接口131,132和/或133为储存客户端116提供储存服务。在一些实施例中,装置驱动器提供区块-装置i/o接口131,储存客户端116通过该区块-装置i/o接口131进行区块级i/o操作。替代地,或附加地,装置驱动器可以提供储存级存储器(scm)接口132,其可以为储存客户端116提供其他储存服务。在一些实施例中,scm接口132可以包括对区块装置接口131的扩展(例如,储存客户端116可以通过对区块装置接口131的扩展或添加而访问scm接口132)。替代地,或附加地,scm接口132可以提供为分开的api、服务、和/或档案库(library)。装置驱动器可以还配置为提供缓存接口133,以使用存储器系统102缓存数据。装置驱动器还可以包括存储器装置接口139,其配置为在总线125之上将数据、命令、和/或查询传递到装置控制器126,如上面所描述的。

图2描绘了储存装置210的一个实施例,其可以包含一个或多个存储器裸芯或芯片212,和/或另一类型的集成电路装置212。储存装置210可以实质上相似于参考图1所描述的存储器装置120。在一些实施例中,存储器裸芯212包含存储器单元200、裸芯控制器220以及读取/写入电路230a/230b的阵列(二维或三维)。在一个实施例中,在阵列的相对侧上,通过各种外围电路对存储器阵列200的访问以对称方式实现的,使得存取线和电路的密度在各侧上减少一半。在其他实施例中,读取/写入电路230a/230b包含多个感测区块250,其允许存储器单元的页面被并行地读取或编程。

在各种实施例中,存储器阵列200为通过字线经由行解码器240a/240b且通过位线经由列解码器242a/242b可寻址的。在一些实施例中,装置控制器126包含在与一个或多个存储器裸芯212相同的存储器装置210(例如,可移除储存卡或封装体)中。命令和数据在主机与装置控制器126之间经由线路232传递,且在装置控制器126与一个或多个存储器裸芯212之间经由线路234传递。一个实现方式可以包含多个芯片212,芯片212可以包含多个裸芯212和/或裸芯平面212等。

在一个实施例中,裸芯控制器220与读取/写入电路230a/230b协作,以在存储器阵列200上进行存储器操作。在某些实施例中,裸芯控制器220包含校准部件150、状态机222、裸芯上地址解码器224以及电力控制电路226。在一个实施例中,校准部件150配置为从装置控制器126在总线234和裸芯/芯片212的活动路径之上接收一个或多个校准命令和/或校准数据(例如,从裸芯/芯片212的外表面上的输入/输出接触体或垫,通过各种通信电路到存储器阵列200的数据缓冲器和/或锁存器等)。校准部件150可以检测和/或确定所接收的校准数据上的一个或多个变化,并且使用变化来调整裸芯/芯片212的有效数据路径的建立和/或保留时间。下面关于图4描述了单个裸芯/芯片212或其他集成电路装置的多个有效数据路径402a-n的一个实施例。

在一个实施例中,状态机222提供存储器操作的芯片级控制。裸芯上地址解码器224提供地址接口,以在由主机或存储器控制器使用的地址到由解码器240a,240b,242a,242b使用的硬件地址之间转换。电力控制电路226控制在存储器操作期间供应到字线和位线的电力和电压。在一个实施例中,电力控制电路226包含一个或多个电荷泵浦,其可能产生比供应电压更高的电压。

在某些实施例中,状态机222包含校准部件150的实施例。在某些实施例中,校准部件150可以包含裸芯控制器220和/或状态机222中的软件、固件、和/或硬件。

在一个实施例中,裸芯控制器220、校准部件150、电力控制电路226、解码器电路224、状态机电路222、解码器电路242a、解码器电路242b、解码器电路240a、解码器电路240b、读取/写入电路230a、读取/写入电路230b、和/或控制器126一个或任意组合可以称为一个或多个管理电路。

图3描绘了校准部件150的一个实施例。校准部件150可以实质上相似于上面关于图1和图2所描述的校准部件150。总体上,如上面所描述的,校准部件150配置成为一个或多个集成电路裸芯123和/或另一类型的集成电路装置123提供裸芯上信号校准。在所描绘的实施例中,校准部件150包含模式电路302、校准电路304以及调整电路306,其可以是裸芯上控制器或其他裸芯上电路的部分。

在一个实施例中,模式电路302可以接收校准数据图形作为校准命令(例如,来自装置控制器126等)的参数和/或响应于校准命令而接收校准数据图形。在其他实施例中,模式电路302为一个或多个集成电路装置123(例如,设置在装置控制器126上的模式电路302,设置在集成电路装置123中的模式电路302等)产生校准数据图形。模式电路302可以在集成电路装置123的数据路径上发送和/或传输校准数据图形(例如,从输入/输出垫或其他接触体到触发器、锁存器、或其他数据缓冲器等)。

在某些实施例中,模式电路302可以响应于从集成电路装置123的装置控制器126接收校准命令而产生校准数据图形。如上面所描述的,在某些实施例中,装置控制器126可以将校准命令和/或校准数据并行地发送到多个不同集成电路装置123,其中的每一个可以包括实质上同时、并行的裸芯上信号校准的独立校准部件150等。在其他实施例中,模式电路302可以响应于集成电路裸芯123和/或装置120的启动操作而产生校准数据图形。

在一个实施例中,装置控制器126可以将校准数据并行地发送到一个或多个集成电路装置123的多个不同有效数据路径(例如,到不同输入/输出垫或其他接触体),发送到校准不同有效数据路径。在一个实施例中,单个校准部件150校准集成电路装置123的多个有效数据路径。在其他实施例中,每个集成电路装置123的有效数据路径包括其自身的校准部件150和/或校准部件150的部分等。

在一个实施例中,校准电路304接收校准数据(例如,在集成电路装置123上,从模式电路302,在集成电路装置123的有效数据路径的端部处等),并且确定所接收的校准数据上是否存在与原始地发送的和/或接收的校准数据图形(例如,与预限定的、预期的、和/或已知的校准数据图形)的变化。例如,校准电路304可以在有效数据路径的相对端部处从模式电路302和/或装置控制器126,从有效数据路径的端部处的触发器或其他数据锁存器等接收数据。

在某些实施例中,校准电路304可以检测所接收的数据上的第一变化(例如,所接收的数据上的在预定的位置处的二进制零,和另一线路上的脉冲信号和/或时钟脉冲),第二变化(例如,所接收的数据上的预定的位置处的二进制一),和/或指示数据信号错误(诸如保留时间错误、建立时间错误等)的其他预定的变化。例如,在一个实施例中,当预定的时钟边缘和不同时钟边缘两者上的二进制零(例如,在两者之间的下降时钟边缘上具有二进制一)将指示没有失败等时,校准电路304通过检测指示建立失败的在预定的时钟边缘(例如,所接收的数据的初始或第一上升时钟边缘)上的二进制零和在不同时钟边缘(例如,在初始/第一上升时钟边缘之后的所接收的数据的下一上升时钟边缘)上的二进制一,来检测所接收的校准数据上的第一变化,并且调整电路306可以减少有效数据路径的延迟和/或增加时钟路径中的延迟,以减少和/或消除建立失败。

在其他实施例中,当预定的时钟边缘和不同时钟边缘两者上的二进制零(例如,在两者之间的下降时钟边缘上都具有二进制一)将指示没有失败等时,校准电路304通过检测指示保留失败的在预定的时钟边缘(例如,所接收的数据的初始或第一上升时钟边缘)上的二进制一来检测所接收的校准数据的第二变化,并且调整电路306可以增加有效数据路径的延迟和/或减少时钟路径中的延迟,以减少和/或消除保留失败。以此方式,在某些实施例中,校准电路304可以基于是比预期更早还是更晚(例如,比要求形成预定的校准数据图形更早还是更晚)接收预定的二进制值(例如,二进制一或二进制零)来检测定时错误。模式电路302可以重复校准模式多次(例如,两次、三次、四次、五次、六次、七次、八次,直到所重复的校准数据图形的整个页面已经被发送,或更多次),以允许校准电路304检测所接收的数据多次,并允许调整电路306反复地和/或重复地对有效数据路径的定时进行多个调整,以反复地减少和消除有效数据路径中的一个或多个建立和/或保留失败。

校准电路304的一个实施例可以包括时钟分割器502、一个或多个触发器504a-n、和/或一个或多个上/下计数器506a-n,其在下面关于图5描述。在其他实施例中,调整电路306可以包括一个或多个上/下计数器506a-n,如下面所描述的。因为,在某些实施例中,预定的时钟边缘上的某预定的二进制值(例如,二进制零或二进制一)可以指示定时错误(例如,建立或保留错误)或没有错误(例如,初始/第一上升边缘上的二进制一可以指示保留失败,并且初始/第一上升边缘上的二进制零可以指示建立失败或没有失败,或反之亦然),在某些实施例中,校准电路304可以响应于下一/第二上升时钟边缘上的相反二进制值(例如,在初始上升时钟边缘上的二进制零之后的下一上升时钟边缘上的二进制一,或对于不同校准数据图形反之亦然)而产生和/或接收脉冲信号和/或时钟脉冲。例如,在一个实施例中,所接收的校准数据图形的初始/第一上升边缘上的二进制零和另一线路(例如,data_ff线路)上的脉冲信号和/或时钟脉冲可以指示建立失败,以将建立失败区别于正常或没有失败条件(例如,对于“01000000”的校准数据图形等)。在其他实施例中,所接收的校准数据图形的初始/第一上升边缘上的二进制一和另一线路(例如,data_ff线路)上的脉冲信号和/或时钟脉冲可以对于不同校准数据图形指示保留失败等。

在某些实施例中,校准电路304可以向调整电路306指示是否检测到建立失败、保留失败,还是没有失败。例如,校准电路304可以向调整电路306提供延迟的标识符,诸如上/下计数器值和/或信号、脉冲信号和/或时钟脉冲(例如,在data_ff线路上)等,调整电路306可以用其确定是否在一个方向或另一个方向上增量上/下计数器(例如,对于建立失败减少计数,对于保留失败增加计数,或反之亦然)。

调整电路306可以将上/下计数器的值初始化为上/下计数器的范围的中点或附近(例如,对于3位0-7上/下计数器为3或4,对于2位0-3上/下计数器为1或2,对于3位0-15上/下计数器为7或8等)。模式电路302可以重复校准数据图形(例如,重复校准循环、校准命令等)多次。在某些实施例中,可以基于上/下计数器的位数来选择校准数据图形的重复次数,使得校准电路304可以在重复的校准数据图形期间将上/下计数器的计数值从缺省值调整到上/下计数器的最小值或最大值(例如,对于3位0-7上/下计数器重复4次,使得计数值可以从缺省的3或4被对于最大建立失败调整到0或对于最大保留失败被调整到7等)。

在一个实施例中,调整电路306基于由校准电路304所接收的数据来纠正和/或调整集成电路装置123的有效数据路径上的信号的定时。例如,如上面所描述的,在某些实施例中,调整电路306可以从校准电路304接收建立失败的、保留失败的、待进行的调整的、待进行的调整的方向等的指示符。例如,调整电路306可以从校准电路304接收脉冲信号和/或时钟脉冲、上/下信号、或其他指示符,调整电路306可以用其来增量上/下计数器,上/下计数器指示引入到有效数据路径中的延迟的量(例如,使用中继器、缓冲器、和/或实际有效数据路径中设置的另一延迟元件)。

在某些实施例中,调整电路306响应于校准电路304检测所接收的数据上的第一变化而减少集成电路装置123的数据路径的延迟,并且响应于校准电路304检测所接收的数据上的第二变化而增加集成电路装置123的数据路径的延迟。例如,响应于从校准电路304接收脉冲信号和/或时钟脉冲(例如,在data_ff线路或其他信号线路上),调整电路306可以响应于来自校准电路304的上/下信号的第一状态(例如,二进制一、二进制零等)而向上计数上/下计数器,并且调整电路306可以响应于来自校准电路304的上/下信号的第二状态(例如,相反状态、与第一状态不同的状态等)而向下计数上/下计数器。

在一个实施例中,有效数据路径中的中继器、缓冲器、或调整电路306的其他延迟元件可以响应于从上/下计数器接收较高的计数值(其响应于校准电路304检测到保留失败等)而增加延迟(例如,配置为上/下计数器的数字到模拟转换器等),并且响应于从上/下计数器接收较低计数值而减少延迟(其响应于校准电路304检测到建立失败等)。在不同实施例中,调整电路306的中继器、缓冲器、或其他延迟元件可以响应于接收较低计数值而减少延迟并响应于接收较高计数值而增加延迟(例如,与上述相反的编码)。

调整电路306可以减少延迟,以增加数据路径的建立时间,并且增加延迟,以增加数据路径的保留时间。在某些实施例中,调整电路306可以包括配置为上/下计数器的数字到模拟转换器(dac),其将延迟的标识符(例如,计数值)提供到有效数据路径中的调整电路306的中继器、缓冲器、和/或另一延迟元件,以引入识别的延迟。例如,如上面所描述的,调整电路306可以包括配置为上/下计数器的数字到模拟转换器(dac),调整电路306可以将其向下计数以减少延迟并向上计数以增加延迟。如上面所描述的,在某实施例中,集成电路装置123和/或多个集成电路装置123中的每一个的多个有效数据路径中的每一个可以各自包括校准电路304和/或调整电路306,以对于不同有效数据路径并行地校准信号和/或调整延迟(例如,每个有效数据路径包括中继器、缓冲器、和/或另一延迟元件,其独立地可调整,以提供对于特定有效数据路径定制的延迟等)。

在某实施例中,存储器裸芯123的裸芯上控制器(诸如图2的裸芯控制器220)可以包含模式电路302、校准电路304、和/或调整电路306中的一个或多个。如上面所描述的,在一个实施例中,装置控制器126可以包括模式电路302的至少部分,以便将一个或多个校准命令和/或校准数据图形并行地发送到多个集成电路裸芯123,以便校准一个或多个整个有效数据路径(例如,从输入/输出接触体或垫到数据缓冲器等)。在某些实施例中,裸芯123可以为易失性和/或非易失性存储器的半导体装置。在各种实施例中,裸芯123可以涉及集成电路(例如,单片集成电路装置),其包含存储器单元的芯阵列和用于与芯通信的外围部件两者。在一个实施例中,这样的集成电路可以为三维集成电路,其包含多个裸芯平面和/或层,但仍可以称为裸芯。

如上面关于图1和图2所描述的,存储器装置120可以包含一个或多个存储器元件123或裸芯123。在其他实施例中,取代或附加于包括存储器,裸芯123可以包括不同类型的集成电路(例如,asic、cpu、通信装置、图形装置、系统级芯片、可编程逻辑装置等)。在各种实施例中,裸芯上控制器220可以涉及裸芯上部件、裸芯上控制/操作逻辑器、裸芯上部件的组等,其控制裸芯上的存储器阵列200的数据操作。

图4描绘了裸芯上信号校准的系统400的一个实施例。在所描绘的实施例中,系统400包含校准部件150、多个有效数据路径402a-n、一个或多个时钟路径404a-n、数据缓冲器412以及存储器阵列200。在一个实施例中,校准部件150可以实质上相似于上面关于图1、图2、和/或图3所描述的校准部件150中的一个或多个。

在一个实施例中,一个或多个模式电路302将一个或多个校准命令和/或校准数据图形发送到一个或多个集成电路装置123的有效数据路径402a-n的一个或多个输入/输出(io)接触体401a-n。一个或多个io接触体401a-n可以包括配置为发送和/或接收数据(例如,从装置控制器126和/或主机装置110接收数据,以校准部件150和/或存储器阵列200,从校准部件150和/或存储器阵列200将数据发送到装置控制器126和/或主机装置110等)的电接触体(诸如导电垫、端口、线路、导线、连接器等)。

在所描绘的实施例中,一个或多个有效数据路径401a-n延伸在一个或多个io接触体401a-n与数据缓冲器412之间(例如,在有效数据路径401a-n的相对端部处)。如上面所描述的,数据缓冲器412可以包括易失性或非易失性数据储存体,诸如存储器阵列200的数据锁存器、寄存器、触发器、ram、页面缓冲器、缓存或便笺本区域等。数据缓冲器412可以缓存和/或储存要储存在存储器阵列200中和/或已经从存储器阵列200读取的数据,包含由一个或多个有效数据路径401a-n的io接触体401a-n所接收的校准数据图形和其他数据。因为不同有效数据路径402a-n的制造、材料、位置、几何结构、距离等上的变化,延迟偏移、漂移、错配、故障、变化等可以对于不同有效数据路径402a-n是不同的,。

在某些实施例中,对于有效数据路径401a-n中的每一个采用相同的延迟调整或校准可能不补救或纠正有效数据路径401a-n中的每一个中的不同延迟错误。例如,一些有效数据路径401a-n可能具有建立失败,其他的可能具有保留失败,一些可能已经比其他的漂移得更远,导致更大的失败等。通过沿着整个有效数据路径401a-n传输校准数据图形,并且基于不同有效数据路径401a-n中的实际延迟进行调整,校准部件150可以比如果校准部件150使用副本电路、模拟等来估测延迟更精确地补偿和/或纠正实际延迟。

在所描绘的实施例中,每个有效数据路径401a-n包括io接触体401、接收器406、驱动器408、中继器410以及数据缓冲器412。在其他实施例中,有效数据路径401可以包括不同部件、附加部件等,诸如发射器、收发器、滤波器、放大器等,以传输、接收、和/或处理在导线、总线、线路、或其他通信信道(例如,在io接触体401a-n与装置控制器126、主机装置110、储存客户端116之间等)之上接收的或要在导线之上传输的电数据信号。在一个实施例中,一个或多个时钟路径404a-n可以实质上相似于一个或多个有效数据路径401a-n,但可以接收时钟信号403而非发送和/或接收数据。

如上面所描述的,在某些实施例中,有效数据路径402从装置控制器126等接收校准数据图形(例如,响应于校准命令和/或作为校准命令的部分)。所接收的校准数据图形可以到达io接触体401上,并且通过有效数据路径402被发送/传输(例如,通过接收器406、驱动器408、中继器410到数据缓冲器412)。在某些实施例中,中继器410可以基于延迟标识符414而动态地和/或可配置地将延迟引入到有效数据路径402中。中继器410可以初始化为延迟标识符414的缺省值(例如,在潜在延迟范围的中间或朝向潜在延迟范围的中间,使得中继器410可以随着时间增加或减少其引入到有效数据路径402中的延迟量)。校准部件150(例如,校准电路304、调整电路306等)可以将延迟标识符414a-n提供到中继器410,以增加、减少、或保留延迟(例如,校准部件150的调整电路306可以包括配置为上/下计数器的数字到模拟转换器,其将诸如计数值的延迟标识414a-n提供到中继器410,以调整和/或控制延迟量)。

在某些实施例中,一个或多个中继器410可以接收附加延迟调整416a-n,418(例如,除了来自校准部件150的延迟值414a-n,在时钟路径404a-n取代延迟值414的情况下等),其可以基于有效数据路径402a-n和/或时钟路径404a-n的初始延迟和/或定时校准(例如,可以为从只读存储器(rom)或其他非易失性存储器提供到中继器410的配置设定等)。如上面所描述的,中继器410可以包括缓冲器、放大器、滤波器、和/或另一延迟元件,其在有效数据路径402a-n中接收数据(例如,信号),并且将所接收的数据在时间周期(例如,延迟周期)之后重新传输。在某些实施例中,中继器410的延迟周期是基于一个或多个所接收的延迟标识符414,416,418而可配置的和/或可调整。在一个实施例中,中继器410可以接收一位计数(例如,1位、2位、3位、4位、5位、6位、7位、或更多)的延迟标识符414,416,418,并且可以在中继器410内内部地将所接收的延迟标识符414,416,418转换和/或解码为不同位计数(例如,更多位计数,诸如8位、16位、32位等)(例如,基于单个延迟标识符414,416,或418,以控制延迟步骤;组合多个延迟标识符414,416,和/或418;等)。

在所描绘的实施例中,校准部件150读取、分接、监测、和/或以其他方式从数据缓冲器412接收校准数据420a-n(例如,从一个或多个有效数据路径402a-n的端部处),并且接收一个或多个时钟信号403(例如,从一个或多个时钟路径404a-n)。在一个实施例中,校准数据420a-n可以包括(多个)实际校准数据图形(例如,具有由有效数据路径402a-n中的延迟失败导致的任意数据错误或其他变化),校准部件150可以处理该实际校准数据图形以检测校准数据420a-n与原始地发送的和/或预期的来自模式电路302的校准数据图形的变化等。

在另一实施例中,数据缓冲器412可以包括校准部件150的至少部分(例如,校准电路304的至少部分等),并且校准数据420a-n可以包括校准部件150可以用来确定一个或多个延迟标识符414a-n(例如,而非发送数据自身)的脉冲信号和/或时钟脉冲、上/下信号、和/或其他信息。例如,数据缓冲器412可以包括校准电路304的逻辑,以检测预定的时钟边缘处的预定的二进制值或信号,其指示所接收的校准数据图形上的变化,并且产生校准数据420a-n(例如,数据脉冲和/或上/下信号等),并将其发送到校准部件150的不同部分(例如,调整电路306、一个或多个中继器410等)。

尽管一个或多个有效数据路径402a-n可以将数据从数据缓冲器412发送到存储器阵列200,用于写入/编程操作,和/或将数据从存储器阵列200载入到数据缓冲器412中以用于读取操作,对于响应于校准命令的校准操作,一旦校准部件150已经处理了来自数据缓冲器412的校准数据420a-n以确定一个或多个延迟标识符414a-n等,一个或多个有效数据路径402a-n可以丢弃、删除,覆写、和/或忽略数据缓冲器412中的校准数据(例如,不将校准数据发送到存储器阵列200)。

图5描绘了裸芯上信号校准的系统500的一个实施例。在所描绘的实施例中,系统500包含校准部件150。在某些实施例中,校准部件150可以实质上相似于上面关于图1、图2、图3、和/或图4所描述的校准部件150中的一个或多个。在一个实施例中,校准部件150包括调整电路306的示例性实施例。在所描绘的实施例中,校准部件150包括时钟分割器502、多个触发器504a-n以及多个上/下计数器506a-n。

在一个实施例中,校准部件150的时钟分割器502接收一个或多个时钟信号403(例如,从时钟路径403a-n,从数据缓冲器412,从装置控制器126等)。时钟分割器502可以划分所接收的一个或多个时钟信号403的时钟循环的数目(例如,频率)和/或调整时钟循环的数目,以提供划分的时钟信号503。划分的时钟信号503可以包括每个校准数据图形、每个校准操作等一个时钟循环(例如,一个上升边缘、一个下降边缘等)。例如,时钟分割器502可以包括三比一(threetoone)分割器和/或产生器,其对于八位双倍数据速率(ddr)校准数据图形,可以对于每四个所接收的时钟循环提供一个时钟循环(例如,三个时钟循环的高时间(hightime)和一个时钟循环的低时间(lowtime)等)。

在某些实施例中,划分的时钟信号503充当时钟,以将校准数据420a-n(例如,脉冲信号和/或时钟脉冲)锁存到触发器504a-n中(例如,在划分的时钟信号503的第一/初始上升时钟边缘上等),使得触发器504a-n输出上/下信号508a-n(例如,响应于时钟信号403和/或503的第一/初始上升边缘上的二进制一,对上/下计数器506指示向上计数的上/下信号508,其指示保留失败等),其响应于校准数据线路420a-n上的脉冲信号和/或时钟脉冲(例如,其可以充当上/下计数器506a-n的时钟信号等)而对上/下计数器506a-n指示将相关联的计数值414a-n向上计数还是向下计数。上/下计数器506a-n(例如,配置为上/下计数器506a-n的dac等)可以对有效数据路径402a-n中的中继器410提供计数值414a-n等。

图6a描绘了校准操作600的一个实施例。校准操作600包含多个重复的校准循环602a-n,在校准循环602a-n中的每一个期间,有效数据路径402接收校准数据图形401和时钟信号403,时钟分割器502将其划分,使得划分的时钟信号503具有每个校准循环602单个上升边缘(例如,与时钟信号403的第一/初始上升边缘对准等)。在所描绘的实施例中,有效数据路径402具有很小的定时错误或失败或不具有定时错误或失败(例如,没有建立或保留时间失败),因此校准电路304不在校准数据线路420上产生脉冲信号和/或时钟脉冲,或出发上/下信号508,因此调整电路306不从缺省值改变计数值414(例如,在描绘的实施例中,“4”)。

图6b描绘了具有建立失败的校准操作610的一个实施例。在所描绘的实施例中,由于建立失败(例如,不足够的建立时间、过长保留时间等),取代于接收“01000000”的预定的校准模式,校准电路304接收“00100000”,因为初始二进制零延伸到时钟信号403的第一/初始上升边缘和第一/初始下降边缘两者,且整个校准数据图形401向右偏斜半个时钟循环。

响应于检测时钟信号403的下一(例如,第二)上升时钟边缘的数据线路401上的二进制一,校准电路304在校准数据线路420上(例如,data_ff)产生脉冲信号和/或时钟脉冲,而不触发上/下信号508(例如,保持上/下信号508低,以发送建立失败的信号并触发向下计数),并且调整电路306通过从缺省值向下计数来将计数值414增量(例如,在描绘的实施例中,从“4”向下计数到“3”)。在所描绘的实施例中,响应于重复的校准循环802a-n期间的2或更多重复的建立失败,调整电路306将计数值414向下计数到“1”的值,并且由于中继器410基于所减少的计数值414减少有效数据路径402的延迟,在最终校准循环602n期间不存在建立或保留失败。

图6c描绘了具有保留失败的校准操作610的一个实施例。在所描绘的实施例中,由于保留失败(例如,不足够的保留时间,过长建立时间等),取代于接收“01000000”的预定的校准模式,校准电路304接收“10000000”,因为初始二进制一被计时到时钟信号403的第一/初始上升边缘上,而非第一/初始下降边缘上,整个校准数据图形401向左偏斜半个时钟循环。

响应于检测时钟信号403的第一/初始上升时钟边缘上的数据线路401上的二进制一,校准电路304在校准数据线路420(例如,data_ff)上产生脉冲信号和/或时钟脉冲,并且将上/下信号508触发为高值(例如,以发送保留失败的信号并且触发向上计数),并且调整电路306通过从缺省值向上计数而增量计数值414(例如,在所描绘的实施例中,从“4”向上计数到“5”)。在所描绘的实施例中,响应于重复的校准循环802a-n期间的2或更多重复的保留失败,调整电路306将计数值414向上计数到“7”的值,并且由于中继器410基于所增加的计数值414而增加有效数据路径402的延迟,在最终校准循环602n期间不存在建立或保留失败。

图7描绘了裸芯上信号校准的方法700的一个实施例。方法700开始,并且校准电路304从集成电路装置123的有效数据路径402接收702校准数据,并且检测704所接收的校准数据与预定的和/或预期的校准数据图形的变化。调整电路306响应于检测704所接收的校准数据上的变化而调整706集成电路装置123的有效数据路径402的延迟,并且方法700结束。

图8描绘了裸芯上信号校准的方法800的一个实施例。在所描绘的实施例中,方法800开始,并且校准电路304取样802来自在有效数据路径402的端部处的数据缓冲器412的锁存的数据,以检查804锁存的数据内预定的位置处的二进制零或二进制一(例如,第一位、第二位、第三位等)。

如果校准电路304检测804二进制一(例如,指示保留失败),则调整电路306通过向上计数或增量计数器值414对有效数据路径402添加806延迟,并且将计数器值414发送到有效数据路径402中的中继器410。如果校准电路304检测804二进制零,则校准电路304确定808是否产生脉冲信号420和/或时钟脉冲420(例如,在data_ff上等)以发送到调整电路306(例如,基于二进制一是否被接收在时钟信号403的下一/第二上升边缘上等)。如果校准电路304检测804二进制零并且产生808脉冲信号420和/或时钟脉冲420(例如,指示建立失败),则调整电路306通过向下计数或减量计数器值414而从有效数据路径402移除810延迟。方法800以重复的校准数据图形来重复多个校准循环,直到模式电路302确定812校准阈值被满足(例如,2个校准循环、4个校准循环、8个校准循环、16个校准循环、或另一预定的阈值),并且方法800结束。

在各种实施例中,用于响应于校准命令而分接来自存储器装置123的有效数据路径402的端部处的数据缓冲器412的校准数据的构件可以包含校准部件150、校准电路304、数据缓冲器412、锁存器、触发器504、导电线路或迹线、裸芯上控制器220、裸芯状态机222、其他逻辑硬件、和/或计算机可读储存介质上储存的其他可执行代码。其他实施例可以包含用于分接校准数据的相似或等效构件。

在各种实施例中,用于检测分接的校准数据与校准数据图形之间的变化的构件可以包含校准部件150、校准电路304、调整电路306、数据缓冲器412、裸芯上控制器220、裸芯状态机222、装置控制器126、处理器、主机计算装置110、装置驱动器、其他逻辑硬件、和/或计算机可读储存介质上储存的其他可执行代码。其他实施例可以包含用于检测变化的相似或等效构件。

在各种实施例中,用于基于所检测的变化而调整有效数据路径402的延迟的构件可以包含校准部件150、调整电路306、中继器410或其他延迟元件、接收器406、驱动器408、数据缓冲器412、其他逻辑硬件、和/或计算机可读储存介质上储存的其他可执行代码。其他实施例可以包含用于调整延迟的相似或等效构件。

在各种实施例中,用于检测多个有效数据路径402a-n的不同有效数据路径402a-n中的不同变化的构件可以包含校准部件150、校准电路304、调整电路306、数据缓冲器412、裸芯上控制器220、裸芯状态机222、装置控制器126、处理器、主机计算装置110、装置驱动器、其他逻辑硬件、和/或计算机可读储存介质上储存的其他可执行代码。其他实施例可以包含用于检测不同变化的相似或等效构件。

在各种实施例中,用于基于不同变化而对不同有效数据路径402a-n的延迟做出不同调整的构件可以包含校准部件150、调整电路306、中继器410或其他延迟元件、接收器406、驱动器408、数据缓冲器412、其他逻辑硬件、和/或计算机可读储存介质上储存的其他可执行代码。其他实施例可以包含用于对不同有效数据路径402a-n的延迟做出不同调整的相似或等效构件。

本公开可以实施为其他具体形式,而不背离其精神或基本特性。所描述的实施例应完全认为是仅为说明性的,而非限制性的。因此,本公开的范围由所附权利要求而非前述描述指示。权利要求的等效的含义和范围中的全部改变都包含在其范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1