CN113348447A - 用于确定是否对存储器系统进行信号训练的选择裕度测试 - Google Patents

用于确定是否对存储器系统进行信号训练的选择裕度测试 Download PDF

Info

Publication number
CN113348447A
CN113348447A CN201980088498.2A CN201980088498A CN113348447A CN 113348447 A CN113348447 A CN 113348447A CN 201980088498 A CN201980088498 A CN 201980088498A CN 113348447 A CN113348447 A CN 113348447A
Authority
CN
China
Prior art keywords
memory
margin
signal
memory store
test
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.)
Pending
Application number
CN201980088498.2A
Other languages
English (en)
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
Publication of CN113348447A publication Critical patent/CN113348447A/zh
Pending 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了用于基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试的技术的方法、系统和设备。此种技术基于裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据。此种技术基于该第一裕度数据来确定是否执行信号训练过程。

Description

用于确定是否对存储器系统进行信号训练的选择裕度测试
技术领域
实施例总体上涉及存储器管理。更具体地,实施例涉及准确的存储器控制和设计。
背景技术
可训练计算系统(例如,服务器、蜂窝设备等)以有效地利用存储器模块(例如,双列直插存储器模块,其可被称为DIMM)。例如,计算系统可经受信号训练以实现稳定的存储器环境。信号训练可包括标识存储器模块的控制、命令和数据信号的适当的电压、定时和/或电气特性以避免存储器损失和/或故障。信号训练的总等待时间取决于安装在系统上的存储器模块(例如,DIMM)的数量。也就是说,随着DIMM数量增加,执行信号训练所需要的时间增加。此外,计算系统可在该计算系统的引导过程期间执行信号训练,以在引导过程之后提供稳定的操作系统环境。由此,在一些情况下,出于稳定性目的,信号训练是必要的,但其增加了引导过程期间的等待时间。
附图说明
通过阅读以下说明书和所附权利要求并通过参考以下附图,实施例的各种优势对本领域技术人员将变得显而易见,其中:
图1图示出根据实施例的通过测试存储器块的子集来重新训练存储器信号的过程的示例;
图2是根据实施例的信号训练的方法的示例的流程图;
图3是根据实施例的稳定存储器使用的方法的示例的流程图;
图4图示出根据实施例的通过测试存储器块来重新训练存储器信号的过程的示例;
图5是根据实施例的计算系统的示例的框图;
图6是根据实施例的半导体设备的示例的图示;
图7是根据实施例的处理器的示例的框图;以及
图8是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
图1图示出用于以功率高效和低等待时间的方式增强存储器可靠性和使用的过程100。过程100可在当前引导过程期间发生,该当前引导过程包括低等待时间“快速引导”模式。例如,引导过程固件(例如,基本输入输出系统或统一可扩展固件接口)可对在先前的引导过程的全信号训练模式期间被标识的先前标识的信号值(例如,定时和/或电压)进行高速缓存。在快速引导模式下,引导过程固件可在不进行任何信号训练的情况下将所标识的信号值直接应用于系统。例如,存储器控制器102可基于所标识的信号值来控制第一存储器块110、第二存储器块112和第三存储器块114。存储器控制器102可使用第一信号104、第二信号106和第三信号108来与第一存储器块110、第二存储器块112和第三存储器块114交互。存储器控制器102可使用第一信号104、第二信号106和第三信号108将数据编程到(例如,写入)第一存储器块110、第二存储器块112和第三存储器块114中和/或从第一存储器块110、第二存储器块112和第三存储器块114检取(例如,读取)数据。例如,存储器控制器102可传送第一信号104、第二信号106和第三信号108,以编程指令并将指令发送至第一存储器块110、第二存储器块112和第三存储器块114。例如,第三信号108可包括控制、命令和数据信号。例如,存储器控制器102可以是处理器,并且第一存储器块110、第二存储器块112和第三存储器块114可以是存储器存储。
在先前引导过程和当前引导过程之间,外部环境可能改变。此类外部环境改变可导致温度、湿度或电子噪声等的改变。例如,存储器控制器102、第一存储器块110、第二存储器块112、以及第三存储器块114可以是同一计算系统的部分。计算系统可从低纬度区域(例如,温暖区域)被运输到高纬度区域(例如,寒冷区域)。外部环境的改变可能导致信号特性的移位。在一些情况下,计算系统无法通过信号补偿电路来补偿该移位,并且先前标识的信号值可能不是可信的(例如,导致系统不稳定性)。
一些实施例可在增强系统稳定性和安全性的同时提供低等待时间引导过程。详细地说,引导过程固件可采用存储器测试器116基于第三信号108(其在测试期间被输出并被接收)测试第三存储器块114,以诊断存储器信号裕度并标识是否执行信号重新训练过程。通过基于第一信号104、第二信号106和第三信号108的子集仅测试第一存储器块110、第二存储器块112和第三存储器块114的子集,减少了测试过程等待时间。由于过程100可基于存储器测试器116的结果来准确地确定何时进行重新训练,因此还可以增加可靠性。由此,由于测试等待时间减少,因此过程100可在包括第一存储器块110、第二存储器块112和第三存储器块114的计算系统的每个引导过程期间执行,以增强系统可靠性和性能。
例如,存储器测试器116可执行裕度测试(margin testing),以有意识地改变系统参数(例如,将电压电平修改为更高或更低以针对故障和/或误读进行测试、修改温度等),从而将存储器控制器102和第三存储器块114暴露于揭示未通过条件和通过条件的状况。在一些实施例中,测试的结果可包括通过/未通过电平、存储器控制器102的电压电平输出(例如,高或低)、第三存储器块104的电压电平读取(例如,高或低)、第三存储器块114在预期的时钟周期期间是否接收到第三信号108、以及预期的电压值等。可将裕度测试的结果存储为指示裕度质量的裕度数据。
例如,存储器测试器116可确定第三存储器块114并非正在通过第三信号108接收来自存储器控制器102的命令,和/或正在读取导致潜在不安全的计算环境的不恰当的电压电平。例如,存储器控制器102可输出第三信号108中将处于高电压的一个信号,但是第三存储器块114可能不恰当地将这一个信号读取为低。存储器测试器116可标识第三存储器块114在存储器控制器102实际输出高电压时读取低电压,并且由此存储器测试器116确定已经发生测试未通过。
作为另一示例,存储器测试器116可标识存储器控制器102向第三存储器块传送的命令和数据,并且存储器测试器116可读取第三存储器块114以确定第三存储器块114是否接收到正确的命令和数据。例如,存储器测试器116可读取第三存储器块114,以基于第三信号108确定正确的数据正在被存储和检取。在一些实施例中,存储器测试器116可将当前引导过程测试数据与上一全信号测试过程期间生成的测试数据进行比较。上一全信号测试过程可能已经在先前引导过程期间发生。如果当前引导过程的测试数据与先前引导过程的测试数据的差大于特定阈值,则第一至第三信号104、106、108可能经受全信号训练过程。
由此,存储器测试器116可在由先前标识的信号值标识的定时时检查第三信号108的裕度质量。如果存储器测试器116确定裕度质量是不可接受的,则另一信号训练过程可被执行,以修改第一信号104、第二信号106和第三信号108的电气和/或定时特性。在一些实施例中,存储器测试器116可以是引导过程固件的部分,并且包括用于基于第三信号108来执行对第三存储器块114的裕度测试的排裕度工具(Rank Margin Tool,RMT)。
如所图示,在一些实施例中,存储器测试器116可基于第三信号108的子集仅测试第三存储器块114。基于第三信号108的子集的裕度质量的改变可与第一存储器块110、第二存储器块112和第三存储器块114的裕度质量的整体改变相关。由此,可能没有必要基于第一信号104、第二信号106和第三信号108中的全部来测试第一存储器块110、第二存储器块112和第三存储器块114中的每一个。通过省略一些测试,等待时间由于存储器测试器116基于第三信号108的子集仅测试第三存储器块114而减少。此外,仅第三信号108中的一些而非全部可被测试。
虽然当前示例描述了测试第三存储器块114,但是将理解,可测试第一信号104、第二信号106和第三信号108以及第一存储器块110、第二存储器块112和第三存储器块114的各种组合。例如,作为基于第三信号108来测试第三存储器块114的附加,存储器测试器116还可基于第一信号104的子集来测试第一存储器块110,或者存储器测试器116可基于第一信号104的子集来测试第一存储器块110而不是基于第三信号108来测试第三存储器块114。
过程100可基于上文所描述的第三存储器块114测试118来重新训练第一信号104、第二信号106和第三信号108。也就是说,在当前示例中,存储器测试器116确定对第三存储器块114的测试未通过,使得第一信号104、第二信号106和第三信号108应当被修改(即118)。存储器训练器120a、120b、120c可执行全训练过程,该过程可包括重新引导计算系统。存储器训练器120a、120b、120c可执行迭代过程,其中存储器控制器102修改第一信号104、第二信号106和第三信号108的电气和/或定时特性。
例如,存储器训练器120a、120b、120c可基于第一信号104、第二信号106和第三信号108来测试第一存储器块110、第二存储器块112和第三存储器块114,以基于由第一信号104、第二信号106和第三信号108传输的命令和数据来标识第一存储器块110、第二存储器块112和第三存储器块114是否正确地操作。存储器训练器120a、120b、120c可确定对第一信号104、第二信号106和第三信号108的电气和/或定时特性的调整,以使得第一存储器块110、第二存储器块112和第三存储器块114准确地接收来自存储器控制器102的命令和数据。存储器训练器120a、120b、120c可提供对存储器控制器102的调整,该存储器控制器102输出经修改的第一信号104、第二信号106和第三信号108。存储器训练器120a、120b、120c随后可基于经调整的第一信号104、第二信号106和第三信号108来执行另一测试过程,并且相应地调整第一信号104、第二信号106和第三信号108。例如,存储器训练器120a、120b、120c可调整第一信号104、第二信号106和第三信号108的保护带、定时和/或值。
由此,一些实施例可在引导过程固件中利用排裕度功能并对有限数量的存储器块110、112、114和信号104、106、108触发测试(例如,裕度测试),以减少引导次数并增强存储器可靠性。由此,不论计算系统经历了何种环境改变,在快速引导模式下(即,在每一个引导过程中均不进行信号训练)实现可信存储器系统(诸如,第一至第三存储器块110、112、114)都可以是可能的。此外,一些实施例可实现基于软件的解决方案,而不利用定制硬件设计,以促进低成本。
在一些实施例中,第一存储器块110、第二存储器块112和第三存储器块114可以是易失性存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双列直插存储器模块(DIMM)等。在一些实施例中,第一存储器块110、第二存储器块112和第三存储器块114可以是非易失性的。此外,在一些实施例中,第一存储器块110、第二存储器块112和第三存储器块114可以具有彼此不同的类型。
图2示出用于信号训练的方法300,该方法300可提供低等待时间引导过程、稳定的存储器使用以及稳定的操作环境。在实施例中,方法300可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑中,被存储在使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)之类的电路技术或晶体管-晶体管逻辑(TTL)技术之类的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
例如,可以用一种或多种编程语言的任何组合来编写用于实施在方法300中所示的操作的计算机程序代码,这些编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规的过程编程语言。另外,逻辑指令可包括汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使对于硬件(例如,主机处理器、中央处理单元/CPU、微控制器等)而言是原生的电子电路和/或其他结构组件个性化的状态信息。
所图示的处理框302基于与第一存储器存储相关联的第一信号的子集来执行对第一存储器存储的裕度测试。例如,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
所图示的处理框304基于裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据。一个或多个电气约束可以是由第一存储器存储读取的适当电压。例如,一个或多个电气约束可以是第一存储器存储应当在存储器控制器输出对应的高电压信号(即,一个或多个子集信号)时读取到高电压电平。如果第一存储器存储在存储器控制器输出高电压信号时读取到低电压电平,则该一个或多个电气约束可能未被满足。
所图示的处理框306基于第一裕度数据来确定是否执行信号训练过程。信号训练过程包括调整与至少一个第二信号(不同于一个或多个子集信号)相关联的电气或定时特性(例如,定时、电压和/或保护带)中的一者或多者。至少一个第二信号与不同于第一存储器存储的第二存储器存储相关联。
在一些实施例中,所图示的处理框302、304、306在计算架构的当前引导过程期间发生。在一些实施例中,计算架构包括第一和第二存储器存储。在一些实施例中,所图示的处理框306包括基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程。如果第一裕度数据实质上不同于第二裕度数据,则处理框306确定要执行信号训练过程。第二裕度数据是在先前引导序列期间并且基于另一裕度测试来确定的。第二裕度数据指示第一存储器存储是否在先前引导序列期间遵照一个或多个电气约束。
图3示出图示出以低等待时间引导过程速度提供具有增强的信号训练和存储器管理的稳定存储器使用的引导过程流程的方法350。更具体地,方法350可在一个或多个模块中被实现为一组逻辑指令,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS之类的电路技术或TTL技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
所图示的处理框352包括对包括存储器存储和存储器控制器的计算系统的引导过程进行初始化。存储器控制器可使用存储器信号来与存储器存储交互。在一些实施例中,电源按键致动或软件重新引导命令可触发所图示的处理框352。
所图示的处理框354确定“快速引导模式”是否被启用。用户可启用或禁用快速引导模式。当被启用时,快速引导模式在一些情况下可省略全存储器信号训练(在下文进一步解释)。如果快速引导模式被禁用,则所图示的处理框356对存储器结构(例如,存储器存储和存储器信号)执行全信号训练,以确定设置数据(例如,存储器信号的定时和/或电气值)。例如,框356训练与存储器存储相关联的全部控制、命令和数据信号。所图示的处理框358对整个存储器结构执行全裕度测试,以确定第二裕度数据。所图示的处理框在所有的排(rank)和信号(例如,数据、控制等)上执行裕度测试。所图示的处理框360将设置和第二裕度数据存储在非易失性存储器中,以供引导过程完成后(例如,未来引导过程和/或在操作系统正在执行时)进行访问。所图示的处理框360随后进行至所图示的处理框372,以继续引导过程。所图示的处理框374可对操作系统进行初始化,并在操作系统的执行期间利用设置数据。
如果所图示的处理框354确定快速引导模式被启用,则所图示的处理框362确定未通过标志是否被置位。未通过标志指示先前裕度测试是否未通过(在下文进行解释)。如果未通过标签被置位,则方法350进行至图示的处理框356,以执行全信号训练,并且随后进行至处理框358以重置未通过标志。未通过标志指示计算系统是否由于先前引导过程期间(例如,前一个引导过程的快速引导模式期间)检测到的裕度移位而正在经受重新引导。由此,方法350实现一种可信的存储器存储系统架构。
如果未通过标志未被置位,则方法350进行至所图示的处理框364。所图示的处理框364应用所存储的设置数据。所存储的设置数据是在计算系统的先前引导过程期间被确定的,例如,在先前引导过程中的框356处。具体而言,设置数据可包括所保存的存储器信号的定时(例如,相对于计算架构的时钟的上升沿和下降沿,何时发送存储器信号)并且包括电压。
所图示的处理框366对存储器结构(例如,存储器存储的子集和存储器信号的子集)执行部分裕度测试以确定第一裕度数据。相比之下,一些RMT应用可测试所有的存储器存储和存储器信号。由此,所图示的处理框366以增强的时间和功率效率来执行。例如,处理框366可对计算系统的DIMM的一个或两个排并且对这一个或两个排的有限信号运行RMT。例如,处理框366可仅对这一个或两个排执行命令信号裕度测试,而不是数据信号裕度测试或控制信号裕度测试。
也就是说,方法350用于检测显著信号移位的影响,并且通过对存储器信号进行重新训练来纠正信号移位,并且由此,不需要对存储器存储的所有信号或者甚至一个存储器存储的所有信号运行测试。相反,显著信号移位的标识是从存储器信号的子集(即,少于全部存储器信号)和存储器存储的子集(例如,少于全部存储器存储)标识的。DIMM的排可包括动态随机存取存储器(DRAM)芯片(包括DRAM)和一个或多个任选的纠错码(ECC)模块的集合。DRAM芯片和ECC模块的数量可根据不同的排而有所不同。
所图示的处理框368将第一裕度数据与第二裕度数据进行比较。处理框368针对显著信号移位进行检查,并且因此,处理框368标识具有由框356应用的全存储器训练和由框358执行的裕度测试的上一次冷引导与当前快速引导之间的裕度Δ(即,差)。因此,处理框368确定第一裕度数据与第二裕度数据之间的差。
作为示例,处理框368从第二裕度数据确定一个或两个排的(多个)控制信号的第二值。如上文所描述,第二裕度数据是在先前引导过程的裕度测试期间确定的。处理框368从第一裕度数据确定一个或多个排的(多个)控制信号的第一值。如所描述,第一裕度数据是在当前引导过程的裕度测试期间确定的。处理框368确定第一值与第二值之间的差。同样,对第一裕度数据和第二裕度数据中所存储的其他裕度测试结果进行比较。如所提及,在执行裕度测试时可使用相同的设置数据(例如,信号的定时数据)来生成第一裕度数据和第二裕度数据。
处理框370可确定差是否满足阈值。阈值可由用户设置,或者可以是预定值。在一些实施例中,处理框370可确定特定信号的裕度是否存在任何显著改变,而不论当前信号裕度是高于先前信号裕度还是低于先前信号裕度。在一些实施例中,如果采用通过/未通过裕度测试方法,则处理框370可将第一裕度数据与第二裕度数据进行比较,以确定在第二裕度数据与第一裕度数据之间、或者先前引导与当前引导之间是否改变了足够的通过和未通过。如果是,则处理框376可置位未通过标志,以使得在重新引导期间执行处理框356的全信号训练。处理框378可对重新引导(即,重新引导过程)连同存储器重新训练请求(即,未通过标志被置位)进行初始化。
如果处理框370确定阈值未被满足,则信号的质量被认为是足够的,并且所图示的处理框372执行连续引导过程。处理框374可用可信存储器存储来初始化操作系统。
图4图示出用于增强存储器使用同时还维持低等待时间引导过程的过程500。过程500可包括与过程100类似的要素,并且出于简洁性目的,省略对应的描述。在过程500中,存储器测试器516可基于第一信号502的第一子集来测试第一存储器块510。也就是说,并非所有的第一信号504均被测试。存储器测试器516可进一步基于第二信号506的第二子集来测试第二存储器块512。也就是说,并非所有的第二信号506均被测试。存储器测试器516可进一步基于第三信号508的第三子集来测试第三存储器块514。也就是说,并非所有的第三信号508均被测试。更详细地说,存储器测试器516可能并非测试第一信号504、第二信号506和第三信号508中的全部,但是可能测试第一存储器块510、第二存储器块512和第三存储器块514中的每一者。
过程500可基于测试518(并且具体地,基于第二子集和第三子集对第二存储器块510和第三存储器块512的测试)对第二信号506和第三信号508进行重新训练。也就是说,过程500可基于第二和第三子集以及第二存储器块510和第三存储器块512未能符合电气约束而标识第二信号506和第三信号508可能需要被重新训练。因此,可采用存储器训练器520a、520b来重新训练第二信号506和第三信号508。
如所图示,存储器测试器516可标识第一存储器块510和第一信号504符合电气约束。因此,不对第一存储器块510和第一信号504进行重新训练。如此,过程500可将测试限于第一、第二和第三子集,并且将重新训练限于第二存储器块512和第三存储器块514。这样做可以减少重新训练时间,同时还确保稳定的存储器环境,尤其是在第一存储器块510、第二存储器块512和第三存储器块514彼此具有不同类型的情况下。例如,不同类型的存储器能以不同方式响应于环境改变。在当前示例中,第一存储器块510可以是第一类型的存储器(例如,静态随机存取存储器或SRAM),并且第二存储器块514可以是另一类型的存储器(例如,可擦除可编程只读存储器或EPROM),并且由此具有不同的测试结果。在另一示例中,第一存储器块510相比于第二存储器块512可以相对更年轻,并且由此具有表现出对环境改变更高的弹性的增强的硬件。
现在转向图5,示出稳定性增强的计算系统158(例如,服务器、台式机、膝上型计算机、移动设备等)。计算系统158一般可以是具有计算功能的电子设备/系统(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板、服务器)的部分、具有通信功能的电子设备/系统(例如,智能电话)的部分、具有成像功能的电子设备/系统(例如,相机、便携式摄像机)的部分、具有媒体播放功能的电子设备/系统(例如,智能电视/TV)的部分、具有可穿戴功能的电子设备/系统(例如,手表、眼部穿戴物、头戴物、脚部穿戴物、首饰)的部分、具有车载功能的电子设备/系统(例如,汽车、卡车、摩托车)的部分、具有机器人功能的电子设备/系统(例如,自主机器人)的部分等或具有以上各项功能的任何组合的电子设备/系统的部分。在所图示的示例中,系统158包括具有集成存储器控制器(IMC)162的主机处理器160(例如,具有一个或多个处理器核的CPU),该IMC 162耦合至系统存储器164,并且具体地耦合至第一至第三存储140a-140c。IMC 162可与第一至第三存储140a-140c通信,以存储和检取数据。第一至第三存储140a-140c可以是DRAM。存储器测试器178可在系统158的引导过程期间基于由IMC 162使用以与第一至第三存储140a-140c进行通信的信号的子集来测试第一至第三存储140a-140c中的一个或多个。测试可确定第一至第三存储140a-140c是否准确地接收和解释来自IMC162的信号。如果测试指示为否,则系统158可重新引导,并且存储器训练器180可对信号进行重新训练,以确保安全且可靠的存储器使用。由此,存储器测试器178、存储器训练器180以及第一至第三存储140a-140c可实现已讨论的过程100(图1)、方法300(图2)、方法350(图3)、和/或过程500(图4)的一个或多个方面。
所图示的系统158还包括图形处理器168(例如,图形处理单元/GPU)和输入输出(IO)模块166,该图形处理器168和IO模块166与处理器160(例如,作为微控制器)一起在半导体管芯170上被实现为芯片上系统(SoC),其中IO模块166可以与例如显示器172(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、输入外围设备156(例如,鼠标、键盘、麦克风)、网络控制器174(例如,有线和/或无线)、以及大容量存储176(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存或其他非易失性存储器/NVM)进行通信。
图6示出了半导体封装设备180。所图示的设备180包括一个或多个衬底184(例如,硅、蓝宝石、砷化镓)和耦合至(多个)衬底184的逻辑182(例如,晶体管阵列和其他集成电路/IC组件)。在一个示例中,逻辑182至少部分地采用可配置逻辑或固定功能硬件逻辑实现。逻辑182可实现已讨论的过程100(图1)、方法300(图2)、方法350(图3)和/或过程500(图4)的一个或多个方面。在一些实施例中,逻辑182可基于要由第一存储器存储在裕度测试期间接收的第一信号的一个或多个子集信号来执行对该第一存储器存储的裕度测试。逻辑182可基于裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据。逻辑182可基于第一裕度数据来确定是否执行信号训练过程。在一个示例中,逻辑182包括定位(例如,嵌入)在(多个)衬底184内的晶体管沟道区。因此,逻辑182与(多个)衬底184之间的接口可以不是突变结。逻辑182还可被认为包括在(多个)衬底184的初始晶片上生长的外延层。
图7图示出根据一个实施例的处理器核200。处理器核200可以是用于任何类型的处理器的核,这些处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图7中仅图示了一个处理器核200,但处理元件可替代地包括多于一个的图7中所图示的处理器核200。处理器核200可以是单线程核,或对于至少一个实施例,处理器核200可以是多线程的,因为其每个核可包括多于一个的硬件线程上下文(或“逻辑处理器”)。
图7还图示出耦合至处理器核200的存储器270。存储器270可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的各种各样的存储器(包括存储器层级结构的各个层)中的任何一种。存储器270可包括要由处理器核200执行的一条或多条代码213指令,其中代码213可实现已讨论的过程100(图1)、方法300(图2)、方法350(图3)和/或过程500(图4)的一个或多个方面。处理器核200遵循由代码213指示的指令的程序序列。每条指令可进入前端部分210并由一个或多个解码器220处理。解码器220可生成微操作(诸如采用预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。所图示的前端部分210还包括寄存器重命名逻辑225和调度逻辑230,该调度逻辑230一般分配资源并将与转换指令相对应的操作进行排队以供执行。
处理器核200被示为包括具有一组执行单元255-1至255-N的执行逻辑250。一些实施例可包括专用于特定功能或功能集合的数个执行单元。其他实施例可包括仅一个执行单元或可以执行特定功能的一个执行单元。所图示的执行逻辑250执行由代码指令指定的操作。
在完成对由代码指令指定的操作的执行之后,后端逻辑260对代码213的指令进行引退。在一个实施例中,处理器核200允许乱序执行但是要求指令的有序引退。引退逻辑265可采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。以此方式,至少在由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表、以及由执行逻辑250修改的任何寄存器(未示出)方面,处理器核200在代码213的执行期间被变换。
虽然未在图7中图示,但处理元件可包括与处理器核200一起处于芯片上的其他元件。例如,处理元件可包括连同处理器核200一起的存储器控制逻辑。处理元件可包括输入/输出(I/O)控制逻辑,和/或可包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可包括一个或多个高速缓存。
现在参考图8,所示出的是根据实施例的计算系统1000实施例的框图。图8中所示出的是多处理器系统1000,其包括第一处理元件1070和第二处理元件1080。尽管示出了两个处理元件1070和1080,但是要理解,系统1000的实施例还可包括仅一个此类处理元件。
系统1000被图示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应当理解,图8中所图示的互连中的任何或全部互连可被实现为多分支总线而不是点对点互连。
如图8中所示,处理元件1070和1080中的每一者可以是包括第一和第二处理器核(即,处理器核1074a和1074b、以及处理器核1084a和1084b)的多核处理器。此类核1074a、1074b、1084a、1084b可被配置成用于以与上文结合图7所讨论的方式类似的方式来执行指令代码。
每个处理元件1070、1080可包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可存储分别由处理器的一个或多个组件(诸如核1074a、1074b,以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可本地地对存储器1032、1034中所存储的数据进行高速缓存以供处理器的组件进行更快速的访问。在一个或多个实施例中,共享高速缓存1896a、1896b可包括一个或多个中间级别高速缓存(诸如第2级(L2)、第3级(L3)、第4级(L4)、或其他级别的高速缓存)、末级高速缓存(LLC)和/或其组合。
虽然被示出为具有仅两个处理元件1070、1080,但要理解,实施例的范围不限于此。在其他实施例中,在给定的处理器中可存在一个或多个附加处理元件。替代地,处理元件1070、1080中的一者或多者可以是除处理器之外的元件,诸如加速器或现场可编程门阵列。例如,(多个)附加处理元件可包括与第一处理器1070相同的(多个)附加处理器、与第一处理器1070异构或不对称的(多个)附加处理器、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。在包括架构、微架构、热、功耗特性等等一系列品质度量方面,处理元件1070、1080之间可以存在各种差异。这些差异自身可有效地表现为处理元件1070、1080之中的不对称性和异构性。对于至少一个实施例,各处理元件1070、1080可驻留在同一管芯封装中。
第一处理元件1070可进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可包括MC 1082以及P-P接口1086和1088。如图12中所示,MC 1072和1082将处理器耦合至相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附连到相应处理器的主存储器的部分。尽管MC 1072和MC 1082被图示为被集成到处理元件1070、1080中,但对于替代实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成于其中。
第一处理元件1070和第二处理元件1080可分别经由P-P互连1076、1086耦合至I/O子系统1090。如图10中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括将I/O子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可使用总线1049将图形引擎1038耦合至I/O子系统1090。替代地,点对点互连可耦合这些组件。
进而,I/O子系统1090可经由接口1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或诸如PCI快速(PCI Express)总线或另一第三代I/O互连总线之类的总线,但是实施例的范围不限于此。
如图8中所示,各种I/O设备1014(例如,生物计量扫描仪、扬声器、相机、传感器)可连同总线桥1018一起耦合至第一总线1016,该总线桥1018可将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合至第二总线1020,这些设备包括例如键盘/鼠标1012、(多个)通信设备1026、以及诸如盘驱动器或其他大容量存储设备之类的可包括代码1030的数据存储单元1019。所图示的代码1030可以实现已讨论的过程100(图1)、方法300(图2)、方法350(图3)和/或过程500(图4)的一个或多个方面。此外,音频I/O 1024可耦合至第二总线1020,并且电池1010可向计算系统1000提供功率。
注意,构想了其他实施例。例如,代替于图8的点对点架构,系统可实现多分支总线或者另一此类通信拓扑。而且,可替代地使用比图8中所示的更多或更少的集成芯片来对图8的元件进行分区。
附加说明和示例:
示例1包括一种计算设备,该计算设备包括:主机处理器;以及多个存储器存储,其耦合至主机处理器并包括第一存储器存储,该多个存储器存储包括可执行程序指令,这些可执行程序指令在由主机处理器执行时,使得该主机处理器用于:基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试;基于该裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及基于该第一裕度数据来确定是否执行信号训练过程。
示例2包括如示例1所述的计算设备,其中,可执行程序指令在由所述主机处理器执行时使得该主机处理器用于在计算设备的当前引导过程期间执行裕度测试、确定第一裕度数据以及是否执行所述信号训练过程。
示例3包括如示例2所述的计算设备,其中,可执行程序指令在由主机处理器执行时使得该主机处理器用于:在计算设备的先前引导序列期间,对第一存储器存储执行另一裕度测试;在先前引导序列期间并且基于该另一裕度测试,确定指示第一存储器存储是否遵照一个或多个电气约束的第二裕度数据;以及基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程。
示例4包括如示例1所述的计算设备,其中,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
示例5包括如示例4所述的计算设备,其中,可执行程序指令在由主机处理器执行时使得该主机处理器用于:基于第一裕度数据确定信号训练过程要被执行;执行计算设备的重新引导过程;以及在该重新引导过程期间执行信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,该至少一个第二信号不同于第一信号的子集。
示例6包括如示例5所述的计算设备,其中,至少一个第二信号与多个存储器存储中的第二存储器存储相关联。
示例7包括一种半导体设备,该半导体设备包括一个或多个衬底以及耦合至该一个或多个衬底的逻辑,其中,该逻辑采用可配置逻辑或固定功能逻辑硬件中的一者或多者来实现,耦合至一个或多个衬底的逻辑用于:基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试;基于该裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及基于该第一裕度数据来确定是否执行信号训练过程。
示例8包括如示例7所述的半导体装置,其中,逻辑用于在计算设备的当前引导过程期间执行裕度测试、确定第一裕度数据并且确定是否执行信号训练过程,并且计算设备包括第一存储器存储。
示例9包括如示例8所述的半导体设备,其中,耦合至一个或多个衬底的逻辑用于:在先前引导序列期间,对第一存储器存储执行另一裕度测试;在先前引导序列期间并且基于该另一裕度测试,确定指示第一存储器存储是否遵照一个或多个电气约束的第二裕度数据;以及基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程。
示例10包括如示例7所述的半导体设备,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
示例11包括如示例7所述的半导体设备,其中,耦合至一个或多个衬底的逻辑用于:基于第一裕度数据确定信号训练过程要被执行;执行计算设备的重新引导过程,该计算设备包括第一存储器存储;以及在重新引导过程期间执行信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,该至少一个第二信号不同于第一信号的子集。
示例12包括如示例11所述的半导体设备,其中,至少一个第二信号与不同于第一存储器存储的第二存储器存储相关联。
示例13包括如示例7所述的半导体设备,其中,耦合至一个或多个衬底的逻辑包括定位在该一个或多个衬底内的晶体管沟道区。
示例14包括至少一种机器可读存储介质,该至少一种机器可读存储介质包括一组可执行程序指令,这些可执行程序指令在由计算系统执行时使得该计算系统用于:基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试;基于该裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及基于该第一裕度数据来确定是否执行信号训练过程。
示例15包括如示例14所述的至少一种计算机可读存储介质,其中,可执行程序指令在由计算系统执行时使得该计算系统用于在该计算系统的当前引导过程期间执行裕度测试、确定第一裕度数据并且确定是否执行信号训练过程,并且计算系统包括第一存储器存储。
示例16包括如示例15所述的至少一种计算机可读存储介质,其中,可执行程序指令在由计算系统执行时使得该计算系统用于:在该计算系统的先前引导序列期间,对第一存储器存储执行另一裕度测试;在先前引导序列期间并且基于该另一裕度测试,确定指示第一存储器存储是否遵照一个或多个电气约束的第二裕度数据;以及基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程。
示例17包括如示例14所述的至少一种计算机可读存储介质,其中,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
示例18包括如示例14所述的至少一种计算机可读存储介质,其中,可执行程序指令在由计算系统执行时使得该计算系统用于:基于第一裕度数据确定信号训练过程要被执行;执行计算系统的重新引导过程,其中该计算系统包括第一存储器存储;以及在重新引导过程期间执行信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,该至少一个第二信号不同于第一信号的子集。
示例19包括如示例18所述的至少一种计算机可读存储介质,其中,至少一个第二信号与不同于第一存储器存储的第二存储器存储相关联。
示例20包括一种方法,该方法包括:基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试;基于该裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及基于该第一裕度数据来确定是否执行信号训练过程。
示例21包括如示例20所述的方法,其中,执行、确定第一裕度数据以及确定是否执行信号训练过程在计算设备的当前引导过程期间发生,并且计算设备包括第一存储器存储。
示例22包括如示例21所述的方法,进一步包括:在先前引导序列期间,执行对第一存储器存储的另一裕度测试;在先前引导序列期间并且基于该另一裕度测试,确定指示第一存储器存储是否遵照一个或多个电气约束的第二裕度数据;以及基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程。
示例23包括如示例20所述的方法,其中,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
示例24包括如示例20所述的方法,进一步包括:基于第一裕度数据确定信号训练过程要被执行;对包括第一存储器存储的计算设备进行重新引导;以及在重新引导期间执行信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,该至少一个第二信号不同于第一信号的子集。
示例25包括如示例24所述的方法,进一步其中,至少一个第二信号与不同于第一存储器存储的第二存储器存储相关联。
示例26包括一种半导体设备,该半导体设备包括:用于基于与第一存储器存储相关联的第一信号的子集来执行对该第一存储器存储的裕度测试的装置;用于基于该裕度测试来确定指示第一存储器存储是否遵照一个或多个电气约束的第一裕度数据的装置;以及用于基于该第一裕度数据来确定是否执行信号训练过程的装置。
示例27包括如示例26所述的半导体设备,其中,用于执行的装置、用于确定第一裕度数据的装置以及用于确定是否执行信号训练过程的装置在计算设备的当前引导过程期间执行,并且计算设备包括第一存储器存储。
示例28包括如示例27所述的半导体设备,进一步包括:用于在先前引导序列期间执行对第一存储器存储的另一裕度测试的装置;用于在先前引导序列期间并且基于该另一裕度测试确定指示第一存储器存储是否遵照一个或多个电气约束的第二裕度数据的装置;以及用于基于第一裕度数据与第二裕度数据的比较来确定是否执行信号训练过程的装置。
示例29包括如示例26所述的半导体设备,其中,第一信号与第一存储器存储的读取以及向第一存储器存储的写入相关联。
示例30包括如示例26所述的半导体设备,进一步包括:用于基于第一裕度数据确定信号训练过程要被执行的装置;用于对包括第一存储器存储的计算设备进行重新引导的装置;以及用于在重新引导期间执行信号训练过程以调整与不同于第一信号的子集的至少一个第二信号相关联的电气特性或定时特性中的一者或多者的装置。
示例31包括如示例30所述的半导体设备,进一步其中,至少一个第二信号与不同于第一存储器存储的第二存储器存储相关联。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线用线表示。一些线可以是不同的以指示更具构成性的信号路径,可具有数字标号以指示构成性信号路径的数目,和/或可在一端或多端具有箭头以指示主要信息流向。然而,这不应以限制性方式来解释。相反,此类添加的细节可与一个或多个示例性实施例结合使用以促进更容易地理解电路。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,该一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路、和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是实施例不限于此。随着制造技术(例如,光刻法)随时间变得成熟,预计能制造出更小尺寸的设备。另外,为了说明和讨论的简单起见并且为了避免使实施例的某些方面模糊,到IC芯片和其他组件的公知的功率/接地连接可在附图内示出也可不示出。进一步地,可以以框图形式示出布置以避免使实施例模糊,并且还鉴于相对于此类框图布置的实现的细节高度依赖于将在其内实现实施例的计算系统这一事实,即,此类细节应当很好地在本领域技术人员的见识范围之内。在阐述了具体细节(例如,电路)以描述示例实施例的情况下,对本领域技术人员应当显而易见的是,实施例可以在没有这些具体细节的情况下或者利用这些具体细节的变型来实施。描述因此被视为是说明性的而不是限制性的。
术语“耦合的”在本文中可被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等在本文中可仅用于便于讨论,并且不带有特定时间的或按时间顺序的意义,除非另有陈述。
如在本申请和权利要求书中所使用的,由术语“……中的一个或多个”联接的项列表可意指所列项的任何组合。例如,短语“A、B或C中的一个或多个”均可意指A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员从前面的描述将领会,实施例的广泛技术能以各种形式来实现。因此,尽管已结合其特定示例描述了实施例,但实施例的真实范围不应当限于此,因为在研究附图、说明书和所附权利要求书之后,其他修改对于本领域技术人员将变得显而易见。

Claims (20)

1.一种计算设备,包括:
主机处理器;以及
多个存储器存储,耦合至所述主机处理器并包括第一存储器存储,所述多个存储器存储包括可执行程序指令,所述可执行程序指令在由所述主机处理器执行时,使得所述主机处理器用于:
基于与所述第一存储器存储相关联的第一信号的子集来执行对所述第一存储器存储的裕度测试;
基于所述裕度测试来确定指示所述第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及
基于所述第一裕度数据来确定是否执行信号训练过程。
2.如权利要求1所述的计算设备,其中,所述可执行程序指令在由所述主机处理器执行时使得所述主机处理器用于:在所述计算设备的当前引导过程期间执行所述裕度测试、确定所述第一裕度数据以及是否执行所述信号训练过程。
3.如权利要求2所述的计算设备,其中,所述可执行程序指令在由所述主机处理器执行时使得所述主机处理器用于:
在所述计算设备的先前引导序列期间,对所述第一存储器存储执行另一裕度测试;
在所述先前引导序列期间并且基于所述另一裕度测试,确定指示所述第一存储器存储是否遵照所述一个或多个电气约束的第二裕度数据;以及
基于所述第一裕度数据与所述第二裕度数据的比较来确定是否执行所述信号训练过程。
4.如权利要求1所述的计算设备,其中,所述第一信号与所述第一存储器存储的读取以及向所述第一存储器存储的写入相关联。
5.如权利要求4所述的计算设备,其中,所述可执行程序指令在由所述主机处理器执行时使得所述主机处理器用于:
基于所述第一裕度数据确定所述信号训练过程要被执行;
执行所述计算设备的重新引导过程;以及
在所述重新引导过程期间执行所述信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,所述至少一个第二信号不同于所述第一信号的所述子集。
6.如权利要求5所述的计算设备,其中,所述至少一个第二信号与所述多个存储器存储中的第二存储器存储相关联。
7.一种半导体设备,包括:
一个或多个衬底;以及
逻辑,所述逻辑耦合至所述一个或多个衬底,其中,所述逻辑采用能配置的逻辑或固定功能逻辑硬件中的一者或多者来实现,耦合至所述一个或多个衬底的所述逻辑用于:
基于与第一存储器存储相关联的第一信号的子集来执行对所述第一存储器存储的裕度测试;
基于所述裕度测试来确定指示所述第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及
基于所述第一裕度数据来确定是否执行信号训练过程。
8.如权利要求7所述的半导体设备,其中:
所述逻辑用于在计算设备的当前引导期间执行所述裕度测试,确定所述第一裕度数据,并且确定是否执行所述信号训练过程;并且
所述计算设备包括所述第一存储器存储。
9.如权利要求8所述的半导体设备,其中,耦合至所述一个或多个衬底的所述逻辑用于:
在先前引导序列期间,对所述第一存储器存储执行另一裕度测试;
在所述先前引导序列期间并且基于所述另一裕度测试,确定指示所述第一存储器存储是否遵照所述一个或多个电气约束的第二裕度数据;以及
基于所述第一裕度数据与所述第二裕度数据的比较来确定是否执行所述信号训练过程。
10.如权利要求7所述的半导体设备,所述第一信号与所述第一存储器存储的读取以及向所述第一存储器存储的写入相关联。
11.如权利要求7所述的半导体设备,其中,耦合至所述一个或多个衬底的所述逻辑用于:
基于所述第一裕度数据确定所述信号训练过程要被执行;
执行计算设备的重新引导过程,所述计算设备包括所述第一存储器存储;以及
在所述重新引导过程期间执行所述信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,所述至少一个第二信号不同于所述第一信号的所述子集。
12.如权利要求11所述的半导体设备,其中,所述至少一个第二信号与不同于所述第一存储器存储的第二存储器存储相关联。
13.如权利要求7所述的半导体设备,其中,耦合至所述一个或多个衬底的所述逻辑包括定位在所述一个或多个衬底内的晶体管沟道区。
14.至少一种计算机可读存储介质,包括一组可执行程序指令,所述可执行程序指令在由计算系统执行时使得所述计算系统用于:
基于与第一存储器存储相关联的第一信号的子集来执行对所述第一存储器存储的裕度测试;
基于所述裕度测试来确定指示所述第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及
基于所述第一裕度数据来确定是否执行信号训练过程。
15.如权利要求14所述的至少一个计算机可读存储介质,其中:
所述可执行程序指令在由所述计算系统执行时使得所述计算系统用于:在所述计算系统的当前引导过程期间执行所述裕度测试,确定所述第一裕度数据,并且确定是否执行所述信号训练过程;并且
所述计算系统包括所述第一存储器存储。
16.如权利要求15所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在由所述计算系统执行时使得所述计算系统用于:
在所述计算系统的先前引导序列期间,对所述第一存储器存储执行另一裕度测试;
在所述先前引导序列期间并且基于所述另一裕度测试,确定指示所述第一存储器存储是否遵照所述一个或多个电气约束的第二裕度数据;以及
基于所述第一裕度数据与所述第二裕度数据的比较来确定是否执行所述信号训练过程。
17.如权利要求14所述的至少一种计算机可读存储介质,其中,所述第一信号与所述第一存储器存储的读取以及向所述第一存储器存储的写入相关联。
18.如权利要求14所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在由所述计算系统执行时使得所述计算系统用于:
基于所述第一裕度数据确定所述信号训练过程要被执行;
执行所述计算系统的重新引导过程,其中,所述计算系统包括所述第一存储器存储;以及
在所述重新引导过程期间执行所述信号训练过程,以调整与至少一个第二信号相关联的电气特性或定时特性中的一者或多者,所述至少一个第二信号不同于所述第一信号的所述子集。
19.一种方法,包括:
基于与第一存储器存储相关联的第一信号的子集来执行对所述第一存储器存储的裕度测试;
基于所述裕度测试来确定指示所述第一存储器存储是否遵照一个或多个电气约束的第一裕度数据;以及
基于所述第一裕度数据来确定是否执行信号训练过程。
20.如权利要求19所述的方法,其中,所述第一信号与所述第一存储器存储的读取以及向所述第一存储器存储的写入相关联。
CN201980088498.2A 2019-02-08 2019-02-08 用于确定是否对存储器系统进行信号训练的选择裕度测试 Pending CN113348447A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/074738 WO2020160691A1 (en) 2019-02-08 2019-02-08 Selective margin testing to determine whether to signal train a memory system

Publications (1)

Publication Number Publication Date
CN113348447A true CN113348447A (zh) 2021-09-03

Family

ID=71948074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980088498.2A Pending CN113348447A (zh) 2019-02-08 2019-02-08 用于确定是否对存储器系统进行信号训练的选择裕度测试

Country Status (3)

Country Link
US (1) US11894084B2 (zh)
CN (1) CN113348447A (zh)
WO (1) WO2020160691A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI800327B (zh) * 2022-03-23 2023-04-21 慧榮科技股份有限公司 資料儲存系統與參數裕度估計方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210136480A (ko) * 2020-05-07 2021-11-17 삼성전자주식회사 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274778A (en) * 1990-06-01 1993-12-28 National Semiconductor Corporation EPROM register providing a full time static output signal
JPH08179009A (ja) * 1994-12-21 1996-07-12 Yamaha Corp テスト回路
US10126968B2 (en) * 2015-09-24 2018-11-13 International Business Machines Corporation Efficient configuration of memory components
US10007458B2 (en) * 2015-12-18 2018-06-26 Microsemi Solutions (U.S.), Inc. Method of configuring memory cells in a solid state drive based on read/write activity and controller therefor
US10216550B2 (en) * 2016-10-01 2019-02-26 Intel Corporation Technologies for fast boot with adaptive memory pre-training

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI800327B (zh) * 2022-03-23 2023-04-21 慧榮科技股份有限公司 資料儲存系統與參數裕度估計方法

Also Published As

Publication number Publication date
US11894084B2 (en) 2024-02-06
WO2020160691A1 (en) 2020-08-13
US20220093197A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US9619251B2 (en) Techniques for dynamic system performance tuning
CN107636620B (zh) 基于运行时间性能特性的链路再训练
US11422896B2 (en) Technology to enable secure and resilient recovery of firmware data
KR102208835B1 (ko) 역방향 메모리 스페어링을 위한 방법 및 장치
US20210311818A1 (en) Runtime post package repair for dynamic random access memory
US20190108892A1 (en) System and Method for Post-Package Repair Across DRAM Banks and Bank Groups
US10365708B2 (en) Systems and methods for guardband recovery using in situ characterization
US11894084B2 (en) Selective margin testing to determine whether to signal train a memory system
CN113254086A (zh) Bios到操作系统的数据交换的部署
US9904586B2 (en) Interfacing with block-based storage in a processor
CN114902186A (zh) 非易失性存储器模块的错误报告
US10896142B2 (en) Non-volatile memory out-of-band management interface for all host processor power states
US11455261B2 (en) First boot with one memory channel
US10747611B2 (en) Safety enhancement for memory controllers
US20230041115A1 (en) Implementing external memory training at runtime
US11544129B2 (en) Cross-component health monitoring and improved repair for self-healing platforms
US20230176735A1 (en) Accelerating system boot times via host-managed device memory
US20230252767A1 (en) Technology to conduct power-efficient machine learning for images and video
WO2023102714A1 (en) Decentralized active-learning model update and broadcast mechanism in internet-of-things environment
WO2022099531A1 (en) Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules
US20230086101A1 (en) Assessing risk of future uncorrectable memory errors with fully correctable patterns of error correction code
US20220066788A1 (en) Hardware directed core parking based on performance and energy efficiency capabilities of processing units and runtime system characteristics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination