CN114840137A - 用于在动态随机存取存储器上执行写入训练的技术 - Google Patents
用于在动态随机存取存储器上执行写入训练的技术 Download PDFInfo
- Publication number
- CN114840137A CN114840137A CN202210088813.5A CN202210088813A CN114840137A CN 114840137 A CN114840137 A CN 114840137A CN 202210088813 A CN202210088813 A CN 202210088813A CN 114840137 A CN114840137 A CN 114840137A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory device
- data
- data pattern
- training
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 228
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000015654 memory Effects 0.000 claims abstract description 223
- 238000012545 processing Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 18
- 230000007704 transition Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 102100035964 Gastrokine-2 Human genes 0.000 description 4
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 108091026890 Coding region Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012012 milestone trend analyses Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及用于在动态随机存取存储器上执行写入训练的技术。各个实施例包括能够执行写入训练操作以确定满足某些时序条件而无需在存储器中存储数据模式的存储器设备。用于写入训练的现有方法涉及存储长数据模式到存储器中,随后读取长数据模式以确定数据是否被正确地写入到存储器。相反,本公开的存储器设备在存储器设备内生成与外部存储器控制器发送到存储器设备的数据模式相匹配的数据模式。如果存储器设备生成的数据模式与从存储器控制器接收的数据模式相匹配,则存储器设备在寄存器中存储通过状态。数据模式不匹配,则存储器设备在寄存器中存储通过状态。存储器控制器读取寄存器以确定写入训练通过还是失败。
Description
相关申请的交叉引用
本申请要求2021年2月2日提交的标题为“传输命令至DRAM的技术(TECHNIQUESFOR TRANSFERRING COMMANDS TO A DRAM)”的美国临时专利申请第63/144971号的优先权。本申请进一步要求2021年2月23日提交的标题为“存储器接口上的数据加扰(DATASCRAMBLING ON A MEMORY INTERFACE)”的美国临时专利申请第63/152814号的优先权。本申请进一步要求2021年2月23日提交的标题为“DRAM命令接口训练(DRAM COMMANDINTERFACE TRAINING)”的美国临时专利申请第63/152817号的优先权。本申请进一步要求2021年4月26日提交的标题为“DRAM写训练(DRAM WRITE TRAINING)”的美国临时专利申请第63/179954号的优先权。这些相关申请的主题以引用的方式合并到本文中。
背景技术
各个实施例的领域
各个实施例总体上涉及计算机存储器设备,尤其涉及在动态随机存取存储器上执行写入训练的技术。
相关技术的描述
除其他事项之外,计算机系统通常包括一个或更多个处理单元,如中央处理单元(CPU)和/或图形处理单元(GPU),以及一个或更多个存储器系统。一种存储器系统称为系统存储器,其可由CPU和GPU访问。另一种存储器系统是图形存储器,其通常仅可由GPU存取。这些存储器系统包括多个存储器设备。在系统存储器和/或图形存储器中使用的一个示例存储器设备是同步动态随机存取存储器(SDRAM,或更简要地,DRAM)。
通常,高速DRAM存储器设备采用多个接口。这些接口包括用于传输命令到DRAM的命令地址接口。这样的命令包括发起写入操作的命令、发起读取操作的命令等。这些接口还包括用于向DRAM传输数据以及从DRAM传输数据的数据接口。命令写入操作同步传输命令到DRAM。在命令写入操作期间,DRAM相对于时钟信号的上升沿或下降沿对某些命令输入引脚上的传入命令进行采样。类似地,数据写入操作同步传输数据到DRAM。在数据写入传输期间,DRAM相对于时钟信号的上升沿或下降沿对某些数据输入引脚上的传入数据进行采样。进一步,数据读取操作从DRAM同步地传输数据。在读写传输期间,DRAM相对于时钟信号的上升沿或下降沿在某些数据输出引脚上呈现传出数据。用于传输到DRAM的命令、传输到DRAM的数据和从DRAM传输的数据的时钟信号可以使用相同或不同的时钟信号。进一步,数据输入引脚可以与数据输出引脚相同或不同。
为了可靠地向DRAM传输命令和数据和从DRAM传输命令和数据,必须满足某些时间要求。一个定时要求是设置时间,其定义命令或数据信号在各自传输命令或数据信号的时钟边沿之前必须稳定的最小时间量。另一定时要求是保持时间,其定义命令或数据信号在各自传输命令或数据信号的时钟边沿之后必须稳定的最小时间量。如果不满足设置时间和/或保持时间,则可能传输具有一个或更多个错误的命令和/或数据,从而导致破坏的命令或数据信息。
随着DRAM存储器设备的速度增加,连续时钟边沿之间的时间减小,从而导致满足设置时间和保持时间的更短的时间段。进一步,时钟信号、命令信号和数据信号的时序受到由于制造时的工艺改变而引起的改变以及由于操作温度、电源电压、来自其他信号的干扰等引起的局部改变的影响。结果,设置时间和保持时间随着DRAM设备速度提高而更难以满足。为缓解该问题,DRAM存储器设备通常具有偏斜电路以相对于时钟信号改变命令信号和/或数据信号的时序。周期性地,与DRAM相关联的存储器控制器使DRAM进入用于命令写入操作、数据写入操作和/或数据读取操作的训练过程。在这样的训练过程期间,存储器控制器改变一个或更多个命令输入引脚、数据输入引脚和/或数据输出引脚的偏斜,直到存储器控制器确定DRAM各自可靠地执行命令写入操作、数据写入操作和/或数据读取操作。存储器控制器在操作条件随时间改变时,如操作温度、电源电压等的改变,周期性地重复这些训练操作,以便确保可靠的DRAM操作。
特别地,关于写入训练,存储器控制器向DRAM存储器核心的一部分写入写入训练数据模式,或更简要地,写入数据模式。通常,数据模式是适合于检测DRAM存储器设备的特定数据输入上的错误的伪随机位序列。存储器控制器然后从DRAM存储器核心的相同部分读取数据模式。如果存储器控制器从DRAM存储器核心的该部分读取的数据模式与存储器控制器先前写到DRAM存储器核心的该部分的数据模式匹配,则训练操作成功。然而,如果两个数据模式不匹配,则存储器控制器调整显示一个或更多个错误的数据输入引脚的偏斜。存储器控制器迭代地重复写入训练操作并调整数据输入引脚的偏斜,直到数据模式匹配。存储器控制器然后返回DRAM到正常操作。
这种用于DRAM写入训练的技术的一个缺点是,随着DRAM设备的速度提高,充分且可靠地执行训练操作所需的数据模式的长度也将增加,无论是对于写入训练操作还是对于读取训练操作。长数据模式通常需要更多的向DRAM写入的时间和从DRAM读取的时间,从而增加了在写入训练期间写入数据模式和读取数据模式的时间量。同样地,长数据模式通常需要DRAM的更多存储容量,与此同时减少了用于存储除写入训练以外的数据的存储器空间的量。
在一些实现方式中,单独的存储器,如用于存储写入训练的数据模式的先进先出(FIFO)存储器,而不是DRAM存储器核心部分的一部分。FIFO存储器存储写入训练模式,而不是DRAM存储器核心。存储器控制器然后从单独的FIFO存储器而不是从DRAM存储器核心读回写训练模式。然而,随着数据模式的大小增加,FIFO存储器的大小也增加,从而消耗了DRAM管芯的大部分面积并且提高DRAM的成本。虽然可以减小FIFO存储器的大小,但是这将导致仅部分写入训练数据模式被存储在FIFO存储器中,从而降低写入训练操作的有效性。
此外,无论使用DRAM存储器核心的一部分还是单独的存储器,如FIFO存储器,存储器控制器将长写入训练数据模式写入到DRAM并且在每个写入训练操作期间多次从DRAM读取相同的长写入训练数据模式,从而减少用于执行除写入训练之外的加载和存储操作的DRAM的可用带宽。
如上所述,在本领域中需要的是用于执行存储器设备的信号训练的更有效的技术。
发明内容
本公开的各个实施例阐述了一种用于在存储器设备上执行写入训练操作的计算机实现方法。该方法包括用第一数据模式初始化存储器设备上的第一寄存器。该方法还包括在存储器器件的输入引脚上接收第二数据模式。该方法还包括比较第一数据模式和第二数据模式以生成结果值。所述该方法还包括将结果值存储在第二寄存器中。该方法还包括所述结果值指明所述写入训练操作是否成功。
其他实施例包括但不限于实现本公开技术的一个或更多个方面的系统、以及包括用于执行本公开技术的一个或更多个方面的命令的一个或更多个计算机可读介质,以及执行本公开技术的一个或更多个方面的方法。
相对于现有技术,本公开技术的至少一个技术优点是,通过本公开的技术,在写入训练操作期间发送到存储器设备的冗长的写入训练数据模式不需要被存储在存储器设备中或从存储器设备中读出以确定写入训练操作是否成功。相反,存储器控制器仅需要发送写入训练数据模式并读出通过/失败结果以确定写入训练操作是否成功。因此,相对于需要从存储器设备读出写入训练数据模式的现有技术,写入训练操作在大约一半的时间内完成。
本公开技术的另一个优点是数据接口的所有引脚被同时训练,因此相对于传统方法需要更短的训练时间。相比之下,根据传统的写入数据模式到DRAM存储器核心然后读回数据模式的方法,仅训练数据输入/输出引脚本身。在数据引脚的训练完成之后,未存储到DRAM存储器核心的数据接口的附加引脚在单独的训练操作中被训练。通过使用工作在输入/输出引脚电平上的伪随机位序列(PRBS)模式校验器,并行训练数据接口的所有引脚,进一步减少训练时间。这些优点呈现出相对于现有技术的一个或更多个技术进步。
附图说明
为了详细理解各个实施例的上述特征所采用的方式,可以参考各个实施例得到以上简要概述的发明构思的更具体描述,在附图中示出了这些实施例中的一些实施例。然而,应注意,附图仅示出了本发明构思的典型实施例,并且因此不应被视为以任何方式限制范围,并且存在其他同样有效的实施例。
图1是被配置成用于实现各个实施例的一个或更多个方面的计算机系统的框图;
图2是根据各个实施例的图1的计算机系统的系统存储器控制器和/或PPS存储器控制器中包括的训练架构的框图;
图3是根据各个实施例的图1的计算机系统的系统存储器和/或并行处理存储器中包括的存储器设备的训练架构的框图;
图4是根据各个实施例的图1的计算机系统的系统存储器和/或并行处理存储器中包括的存储器设备的线性反馈移位寄存器(LFSR)子系统的框图;以及
图5是根据各个实施例的图1的计算机系统的系统存储器和/或并行处理存储器中包括的存储器设备执行写入训练操作的方法步骤的流程图。
具体实施方式
在以下描述中,阐述了许多具体细节以便提供对各个实施例的更彻底的理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一个或更多个的情况下实践本发明构思。
系统概述
图1是配置为用于实现各个实施例的一个或更多个方面的计算机系统100的框图。如图所示,计算机系统100包括但不限于通过存储器桥105和通信路径113耦合到并行处理子系统112的中央处理单元(CPU)102和系统存储器104。存储器桥105通过系统存储器控制器130耦合到系统存储器104。存储器桥105进一步通过通信路径106耦合至I/O(输入/输出)桥107,I/O桥107进而耦合至交换机116。并行处理子系统112通过并行处理子系统(PPS)存储器控制器132耦合到并行处理存储器134。
在操作中,I/O桥107配置为用于从输入设备108,如键盘或鼠标,接收用户输入信息,并发送输入信息到通过通信路径106和存储器桥105处理数据的CPU 102。交换机116配置为在I/O桥107和计算机系统100的其他组件之间,如网络适配器118和各种插入卡120和121,提供连接。
继续结合附图,I/O桥107耦合至系统盘114,所述系统盘可以配置为存储用于CPU102和并行处理子系统112的内容、应用和数据。一般而言,系统盘114为应用和数据提供非易失性存储,并且可以包括固定或可移动硬盘驱动器、闪存设备、CD-ROM(压缩光盘只读存储器)、DVD-ROM(数字通用盘-ROM)、蓝光、HD-DVD(高清晰度DVD)、或其他磁、光或固态存储设备。最后,虽然未明确示出,但是其他组件,如通用串行总线或其他端口连接、压缩光盘驱动器、数字通用盘驱动器、胶片记录设备等,也可以连接到I/O桥107。
在各个实施例中,存储器桥105可以是北桥芯片,并且I/O桥107可以是南桥芯片。此外,可以使用任何技术上合适的协议来实现通信路径106和113以及计算机系统100内的其他通信路径,包括但不限于AGP(加速图形端口)、超传输或本领域中已知的任何其他总线或点对点通信协议。
在一些实施例中,并行处理子系统112包括传递像素至显示设备110的图形子系统,该显示设备可以是任何常规的阴极射线管、液晶显示器、发光二极管显示器等。在这样的实施例中,并行处理子系统112结合了为图形和视频处理优化的电路,包括例如视频输出电路。可跨包括在并行处理子系统112内的一个或更多个并行处理单元(PPU)包含这类电路。在一些实施例中,每个PUPS包括图形处理单元(GPU),所述图形处理单元可以配置为用于使图形渲染管线执行关于基于由CPU 102和/或系统存储器104提供的图形数据生成的像素数据的各个操作。每一PPU可使用一个或更多个集成电路设备,如可编程处理器、专用集成电路(ASIC)、存储器设备),或以任何其他技术上可行的方式来实现。
在一些实施例中,并行处理子系统112结合了为通用和/或计算处理而优化的电路。再者,可跨并行处理子系统112内的一个或更多个PPU包含这类电路,这些PPU配置为执行此类通用和/或计算操作。在其他实施例中,并行处理子系统112内的一个或更多个PPU可配置为执行图形处理、通用处理和计算处理操作。系统存储器104包括被配置为管理并行处理子系统112内的一个或更多个PPU的处理操作的至少一个设备驱动器103。
在各个实施例中,并行处理子系统112可以集成图1的一个或更多个其他元件以形成单个系统。例如,并行处理子系统112可与CPU 102和其他连接电路集成在单个芯片上以形成片上系统(SoC)。
在操作中,CPU 102是计算机系统100的主处理器,控制和协调其他系统部件的操作。特别是,CPU 102发出控制并行处理子系统112内PPU的操作的命令。在一些实施例中,CPU 102将并行处理子系统112内的PPU的命令流写入到数据结构(图1中未明确示出),所述数据结构可位于系统存储器104、PP存储器134或CPU 102和PPU皆可访问的另一存储位置。数据结构的指针被写入入栈缓冲区(pushbuffer)以启动对数据结构中的命令流的处理。PPU从入栈缓冲区读取命令流,然后相对于CPU 102的操作异步地执行命令。在生成多个入栈缓冲区的实施例中,应用程序通过设备驱动器103可以为每个入栈缓冲区指定执行优先级,以控制不同入栈缓冲区的调度。
每个PPU包括通过通信路径113和存储器桥105与计算机系统100的其余部分通信的I/O(输入/输出)单元。该I/O单元生成用于在通信路径113上发送的包(或其他信号),还从通信路径113接收所有传入包(或其他信号),从而引导传入包到PPU的合适的元件。PPU与计算机系统100的其余部分的连接可以不同。在一些实施例中,包括至少一个PPU的并行处理子系统112被实现为可插入到计算机系统100的扩展插槽中的插入卡。在其他实施例中,PPU可与总线桥集成在单个芯片上,如存储器桥105或I/O桥107。再者,在其他实施例中,PPU的一些或全部元件可与CPU 102一起被包括在单个集成电路或芯片系统(SoC)中。
并行处理系统112内的CPU 102和PPU通过系统存储器控制器130访问系统存储器。系统存储器控制器130发送信号至系统存储器104中的存储器设备传输以启动存储器设备、向存储器设备发送命令、向存储器设备写入数据、从存储器设备读取数据等。在系统存储器104中采用的一个示例存储器设备是双倍数据速率SDRAM(DDR SDRAM,或更简要地DDR)。DDR存储器设备以前一代单数据速率(SDR)存储器设备的两倍数据速率执行存储器写入和读取操作。
此外,并行处理系统112内的PPU和/或其他组件通过并行处理系统(PPS)存储器控制器132访问PP存储器134。PPS存储器控制器132发送信号到PP存储器134中的存储器设备以启动存储器设备、将命令发送到存储器设备、将数据写入到存储器设备、从存储器设备读取数据等。PP存储器134同步图形随机存取存储器(SGRAM)中使用的示例存储器设备,是用于计算机图形应用的SDRAM的专门形式。SGRAM的一种具体类型是图形双倍数据速率SGRAM(GDDR SDRAM,或更简要地GDDR)。与DDR存储器设备相比,GDDR存储器设备配置有更宽的数据总线,以便根据每个存储器写入和读取操作来传输更多的数据位。通过采用双倍数据速率技术和更宽的数据总线,GDDR存储器设备能够实现PPU通常所需的高数据传输速率。
可以理解的是,以下所示的系统是说明性的,可以有变化和修改。连接拓扑,包含桥接器的数量和布置、CPU 102的数量以及并行处理子系统112的数量,可根据需要修改。例如,在一些实施例中,系统存储器104可以直接连接至CPU 102而不是通过存储器桥105,其他设备将通过存储器桥105和CPU 102与系统存储器104通信。在其他备选拓扑中,并行处理子系统112可以连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。在其他实施例中,I/O桥107和存储器桥105可以集成到单个芯片中,而不是作为一个或更多个分立器件存在。最后,在某些实施例中,可以不存在图1中所示的一个或更多个组件。例如,可以除去交换机116,并且网络适配器118和插入卡120、121将直接连接到I/O桥107。
可以理解的是,以下描述的核心架构是说明性的,可以有变化和修改。除其他事项之外,在本公开的实施例的范围内,图1的计算机系统100可以包括任何数量的CPU 102、并行处理子系统112或存储器系统,如系统存储器104和并行处理存储器134。进一步,如本文所使用的,对共享存储器的引用可包括任何一个或更多个技术上可行的存储器,包括但不限于并行处理子系统112内的由一个或更多个PPU共享的本地存储器、多个并行处理子系统112之间共享的存储器、高速缓存存储器、并行处理存储器134和/或系统存储器104。还请注意,如本文所使用的,对高速缓存存储器的引用可以包括任何一个或更多个技术上可行的存储器,包括但不限于L1高速缓存、L1.5高速缓存和L2高速缓存。鉴于上述内容,本领域普通技术人员将认识到,在图1中描述的架构丝毫未限制本公开的各个实施例的范围。
在DRAM上执行写入训练操作
各个实施例针对用于有效地执行DRAM存储器设备的写入训练的技术。DRAM存储器设备包括一个或更多个线性反馈移位寄存器(LFSR),其以伪随机位序列(PRBS)的形式生成写入样式。在一些实施例中,经历写训练操作的接口(如数据接口)的若干输入引脚中的每个被耦合至单独的LFSR,以检查在对应的输入引脚上接收的PRBS模式。为了开始写入训练,与存储器设备相关的存储器控制器向存储器设备上的LFSR发送复位命令和/或复位信号以播种LFSR。作为响应,存储器设备以预定的种子值和/或多项式对LFSR进行播种。附加地或可替代地,存储器控制器通过已经被训练的另一接口(如单独的命令地址接口)向存储器设备发送种子值和/或多项式来播种LFSR。作为响应,存储器设备根据从存储器控制器接收的种子值和/或多项式对LFSR进行播种。在一些实施例中,存储器控制器将复位命令、复位信号或种子值和/或多项式包括在存储器控制器通过命令地址接口向存储器设备传输的写入训练命令中。在一些实施例中,当存储器设备将种子值加载到LFSR中以使写入训练结果寄存器准备好接收用于当前写入训练操作的通过/失败状态(在本文中也称为通过/失败结果值)时,写入训练结果寄存器被自清除为初始值。
在写入训练操作期间,存储器控制器基于存储器设备用于播种LFSR的相同种子值和/或多项式发送写入训练模式至存储器设备上的一个或更多个接口引脚。随着存储器设备接收位模式,一个或更多个接口引脚上的写入训练检验器对照存储器设备中的LFSR的输出检查一个或更多个接口引脚上的传入写入训练模式。在一些实施例中,使用异或(XOR)逻辑来实现用于输入引脚的PRBS检验器。
如果传入写入数据模式与由存储器设备中的LFSR生成的数据模式匹配,则写入训练操作通过,并且存储器设备在写入训练结果寄存器中记录通过状态。然而,如果传入写入数据模式与存储器设备中的LFSR生成的数据模式不匹配,则写入训练操作失败,并且存储器设备在写入训练结果寄存器中失败状态。在一些实施例中,对于经历写入训练操作的每个输入引脚,写入训练结果寄存器包括单独的通过/失败状态位。
在写训练操作期间,存储器控制器通过移位存储器控制器上的LFSR中的值来周期性地推进存储器控制器上的LFSR。相应地,存储器控制器发送新的写入训练命令到存储器设备。作为响应,存储器设备通过移位存储器设备上的LFSR中的值来推进存储器设备上的LFSR。以这种方式,存储器控制器上的LFSR和存储器设备上的LFSR在写入训练操作期间保持相同值。因此,存储器控制器上的LFSR和存储器设备上的LFSR在写入训练操作期间生成相同的数据模式。
当存储器设备完成全部或部分写入训练操作时,存储器控制器读取写入训练结果寄存器中的值以确定写入训练操作通过还是失败。在一些实施例中,当存储器控制器读取写入训练结果寄存器的值时,写入训练结果寄存器被自清除为初始值。在一些实施例中,最初清空写入训练结果寄存器以指示失败状态。此后,在每个写入训练命令之后根据需要更新写入训练结果寄存器,以指示与该写入训练命令相对应的写入训练操作通过还是失败。当状态寄存器被读取到存储器控制器时,状态寄存器被再次自清除以指示失败状态。
图2为根据各个实施例的在图1的计算机系统100的系统存储器控制器130和/或PPS存储器控制器132中包括的训练架构200的框图。
训练架构200包括存储器控制器处理器226,该存储器控制器处理器发送信号至存储器控制器中所包括的训练架构200的组件和系统存储器104和/或PP存储器134中所包括的存储器设备中的图3的训练架构300。存储器控制器处理器226发送信号以启动存储器设备、向存储器设备发送命令、向存储器设备写入数据、从存储器设备读取数据等。存储器控制器处理器226生成发送到存储器设备的命令并且发送所述命令到发射器208。发射器208进而通过命令地址(CA)输出引脚206将命令发送到存储器设备。
此外,存储器控制器处理器226发送读/写命令触发器至读/写线性反馈移位寄存器(R/WLFSR)220,从而产生同步操作。读取/写入命令触发器可以为存储器控制器处理器226所发送且R/W LFSR 220所接收的命令、信号等的形式。读/写命令触发器产生的第一种同步操作初始化R/W LFSR220为已知状态以便生成序列值。读/写命令触发产生的第二种同步操作使R/W LFSR 220从生成当前序列值改变为生成下一序列值。当R/W LFSR220被初始化时,R/W LFSR 220从配置寄存器234加载LFSR种子值以生成初始序列值。在R/W LFSR 220初始化之前,存储器控制器处理器226在配置寄存器234中存储LFSR种子值。当R/W LFSR220被推进时,R/WLFSR 220从生成当前序列值推进到下一序列值。存储器控制器处理器226根据用于推进图3的R/W LFSR 320的存储器设备同步地初始化和推进R/W LFSR 220,以便保持R/W LFSR 220和R/W LFSR 320之间的同步。以这种方式,训练架构300可以验证存储器设备接收的数据与系统存储器控制器中的训练架构200发送的数据匹配。
R/W LFSR 220发送序列值至编码器230。编码器230对序列值执行编码操作。通常对训练架构200发送到DQ、DQX I/O、EDC引脚216的序列值进行编码以优化存储器接口上的信号发送。在存储器控制器与存储器设备之间的物理I/O层上发送编码数据的目标是优化信号发送的数据。编码优化数据以最小化接口上的过渡、最小化串扰、减少接口上的终端电路直流(DC)功率的消耗量等。可通过最大过渡避免(MTA)操作来编码数据,减少低到高和/或高到低信号过渡的数量以便改进存储器接口上的信噪比(SNR)。附加地或可替代地,可以通过数据总线反转(DBI)操作来对数据进行编码,以减少存储器接口上的高信号值的数量,从而减少存储器接口消耗的功率。另外或替代地,可通过任何技术上可行的操作对数据编码。
编码器230生成发送到存储器设备的编码序列值并且传输该编码序列值至发射器218。发射器218进而通过一个或更多个数据(DQ)、扩展数据(DQX)和/或错误检测和校正(EDC)引脚216传输编码序列值至存储器设备。
图3是根据各个实施例的图1的计算机系统100的系统存储器104和/或并行处理存储器134中包括的存储器设备的训练架构300的框图。如进一步描述的,训练架构300包括用于命令地址接口训练、数据读取接口训练和数据写入接口训练的组件。通过这些组件,训练架构300执行命令地址训练操作、数据读取训练操作和数据写入训练操作,而无需在存储器设备的DRAM核心326中存储训练数据。当以较高速度操作存储器设备时,存储器控制器周期性地执行这些训练操作,以便在存储器设备的所有输入引脚和输出引脚上满足建立时间和保持时间。
一般来说,存储器控制器以特定顺序执行训练操作。首先,存储器控制器对命令地址接口执行训练操作。可通过任何技术上可行的技术来执行命令地址接口训练。通过首先训练命令地址接口,存储器设备准备好根据需要接收命令和写入模式寄存器以执行数据读取接口训练和数据写入接口训练。一般来说,只要在所有命令地址(CA)输入引脚306上满足设置和保持时间,命令地址接口就无需训练。存储器控制器使种子值和/或多项式被加载到命令地址线性反馈移位寄存器(CALFSR)310中。存储器控制器应用数据模式到一个或更多个CA输入引脚306。CA输入引脚306通过接收器308发送至CA LFSR 310和XOR门312。CALFSR310复制与存储器控制器相同的模式。XOR门312比较CA输入引脚306上的数据模式和来自CALFSR 310的数据。如果CA输入引脚306上的数据模式与来自CA LFSR 310的数据匹配,则XOR门312发送低值。如果CA输入引脚306上的数据模式与来自CALFSR 310的数据不匹配,则XOR门312发送高值。输入多路复用器302的模式304选择底部输入以发送XOR门312的输出到发射器314,然后到一个或更多个数据(DQ)、扩展数据(DQX)和/或错误检测和校正(EDC)引脚316。存储器控制器然后读取一个或更多个DQ、DQX和/或EDC引脚316以确定命令地址输入训练是否成功。一旦命令地址输入训练完成,从存储器控制器接收的命令地址经过CA输入引脚306和接收器308,然后到达DRAM核心326。在各个实施例中,存储器设备对于接口训练引起的不同使用情况的反馈可以由存储器设备以任何技术上可行的结合通过任何一个或更多个DQ、DQX和/或EDC引脚316发达到存储器控制器。
在完成命令地址接口训练之后,存储器控制器可以发送命令至存储器设备以促进数据读接口训练和数据写接口训练。存储器设备通过CA输入引脚306接收这些命令。接收器308从CA输入引脚306发送命令到命令解码器332。命令解码器332对从存储器控制器中的训练架构200接收的命令进行解码。一些命令用于存储值到配置寄存器334和/或从配置寄存器334加载值。例如,命令解码器332可以接收将值存储在配置寄存器334中的命令以存储线性反馈移位寄存器(LFSR)种子值,每次初始化R/WLFSR 320时,线性反馈移位寄存器(LFSR)种子值被加载到读/写线性反馈移位寄存器(R/W LFSR)320中。
一些命令在存储器设备中执行不同操作。例如,命令解码器332可以接收读命令,并且作为响应,存储器设备执行读取操作以从DRAM核心326加载数据并且发送该数据到存储器控制器。类似地,命令解码器332可以接收写入命令,作为响应,存储器设备执行写入操作以在DRAM核心326中存储从存储器控制器接收的数据。进一步,如果命令解码器332在数据读取接口训练或数据写入接口训练期间接收读取命令或写入命令,则命令解码器332发送从读取/写入命令获取的触发到R/W LFSR 320。读/写命令触发器初始化R/W LFSR 320以生成第一序列值和/或从当前序列值推进R/W LFSR 320到下一序列值。
第二,存储器控制器对数据读取接口执行训练操作。一般来说,在对数据写接口的训练操作之前进行对数据读接口的训练操作。该训练操作的顺序确保从存储器设备读取数据正确,这允许存储器控制器执行最佳写入训练操作。存储器控制器发送使种子值和/或多项式被加载到R/W LFSR320中的命令到存储器设备。R/W LFSR 320基于种子值和/或多项式发送一系列序列值至编码器330。
编码器330对序列值执行编码操作。通常对由R/W LFSR 320发送到DQ、DQX I/O引脚316的序列值进行编码以优化存储器接口上的信号发送。在存储器控制器与存储器设备之间的物理I/O层上发送编码数据的目标是优化信号发送的数据。编码优化数据以最小化接口上的过渡、最小化串扰、减少在接口上的终端电路消耗的直流(DC)功率的量等。可通过最大过渡避免(MTA)操作来对数据编码,来减少低到高和/或高到低信号过渡的数量以改进存储器接口上的信噪比(SNR)。附加地或可替代地,可以通过数据总线反转(DBI)操作来对数据进行编码,以减少存储器接口上的高信号值的数量,以便减少在存储器接口上消耗的功率。另外或替代地,可通过任何技术上可行的操作来对数据编码。
输入多路复用器302的模式304选择顶部输入以发送编码器330的输出至发送器314然后至一个或更多个数据(DQ)、扩展数据(DQX)、和/或错误检测和校正(EDC)引脚316。存储器控制器随后读取一个或更多个DQ、DQX和/或EDC引脚316以确定从R/W LFSR 320接收的数据是否为期望模式。
第三,存储器控制器对数据写入接口执行训练操作。存储器控制器使种子值和/或多项式被加载到R/W LFSR 320中。存储器控制器将数据模式应用到一个或更多个DQ、DQX和/或EDC引脚316。通过接收器318发送DQ、DQX和/或EDC引脚316至R/W LFSR 320和XOR门322。R/WLFSR 320在存储器控制器上复制与R/W LFSR 220相同的模式。编码器330对R/WLFSR 320呈现的模式编码以复制通过接收器318从存储器控制器接收的编码数据。XOR门322对DQ、DQX和/或EDC引脚316上的数据模式和来自编码器330的数据。如果CA输入引脚306上的数据模式与来自编码器330的数据匹配,则XOR门322发送低值。如果DQ、DQX和/或EDC引脚316上的数据模式与来自编码器330的数据不匹配,则XOR门322发送高值。发送XOR门322的输出到写入训练结果寄存器324,并为每个经历写入训练的DQ、DQX和/或EDC引脚316存储通过/失败写入训练状态。存储器控制器读取写入训练结果寄存器324以确定写入训练操作的结果。当存储器控制器读取写入训练结果寄存器324时,输入多路复用器302的模式304从顶部输入选择第二个,以通过发送器314发送写入训练结果寄存器324的输出到一个或更多个DQ、DQX和/或EDC引脚316。存储器控制器然后读取一个或更多个DQ、DQX和/或EDC引脚316以确定数据写入训练是否成功。一旦数据写入训练完成,从存储器控制器接收的写入数据经过DQ、DQX和/或EDC引脚316和接收器318,然后到达DRAM核心326。
在一些实施例中,一旦失败状态被存储到写入训练结果寄存器324中,失败状态就保持在写入训练结果寄存器324中,直到存储器设备发生复位。即使随后的数据写入接口训练操作结果为通过状态,写入训练结果寄存器324的失败状态也不会变为通过状态。相反,写入训练结果寄存器324保持先前的失败数据写入接口训练操作的失败状态。在这些实施例中,自从存储器设备的最后复位导致失败状态,失败状态指示执行的至少一个数据写入接口训练操作。在存储器设备复位时清除失败状态。响应于读取触发复位的寄存器、通过根据种子值加载R/W LFSR 220、通过在存储器设备的复位引脚上接收信号等来执行存储器设备的复位。
一旦数据读取训练和数据写入训练完成,输入多路复用器302的模式304从底部输入选择第二个,以发送DRAM核心326的输出到发射器314,然后到一个或更多个数据(DQ)、扩展数据(DQX)、和/或错误检测和校正(EDC)引脚316。
可以理解的是,以下所示的系统是说明性的,可以有变化和修改。除其他事项之外,训练架构300包括用于命令地址接口训练、数据读取接口训练和数据写入接口训练的组件。然而,在本公开的范围内训练架构300可以包括用于训练任何其他技术上可行的输入和/或输出接口的组件。进一步,在一些实例中,单个LFSR产生源信号,例如伪随机位序列(PRBS),用于训练存储器设备的一个或更多个I/O引脚的任意组合,包括存储器设备的所有I/O引脚。另外或可替代地,一个LFSR可以生成用于训练存储器设备的任意一个或更多个I/O引脚的PRBS。另外或可替代地,多个LFSR可以生成用于存储器设备的一个或更多个I/O引脚的PRBS,如上所述。
图4为根据各个实施例的图1的计算机系统100的系统存储器104和/或并行处理存储器134中包括的存储器设备的线性反馈移位寄存器(LFSR)子系统400的框图。如图所示,LFSR子系统400包括多个LFSR 410(0)-410(4)以及多个XOR门420(0)-420(3)。
LFSR子系统400包括直接生成位序列的LFSR 410(0)-410(3),如用于存储器设备的特定I/O引脚的伪随机位序列(PRBS)。由此,DQ0LFSR 410(0)生成用于存储器设备的数据引脚总线的位0的DQ0 PRBS 430(0)。同样地,DQ2 LFSR 410(2)生成用于存储器设备的数据引脚总线的位2的DQ2 PRBS 430(2)。以类似的方式,DQ4 LFSR 410(4)生成用于存储器设备的数据引脚总线的位4的DQ4 PRBS 430(4),并且DQ6 LFSR410(6)生成用于存储器设备的数据引脚总线的位6的DQ6 PRBS 430(6)。错误检测和校正(EDC)LFSR 410(8)生成用于存储器设备的EDC引脚总线的EDC位的EDC PRBS 430(8)。
LFSR子系统400基于LFSR子系统400中的DQ LFSR 410(0)-(8)的输出中的任何技术上可行的两个或更多个组合生成用于剩余DQ位的PRBS。在一些示例中,LFSR子系统400基于两个或更多个其他LFSR的逻辑组合生成DQ1 PRBS 430(1),如对DQ0 LFSR 410(0)和DQ2LFSR410(2)的输出执行XOR功能的XOR门420的输出。类似地,LFSR子系统400基于两个或更多个其他LFSR的逻辑组合,如对DQ2 LFSR 410(2)和DQ4 LFSR 410(4)的输出执行XOR功能的XOR门422的输出,生成DQ3 PRBS 430(1)。
LFSR子系统400基于两个或更多个其他LFSR的输出的任何技术上可行的逻辑组合,如对DQ4 LFSR 410(4)和DQ6 LFSR 410(6)的输出执行XOR功能的XOR门424的输出,生成DQ5 PRBS 430(5)。LFSR子系统400基于两个或更多个其他LFSR的逻辑组合,如对DQ6 LFSR410(6)的输出和EDC LFSR 410(8)的输出执行XOR功能的XOR门426的输出,生成DQ7 PRBS430(7)。通过在多个输出之间共享LFSR,LFSR子系统400为特定信号总线的每个输出生成唯一的PRBS,而无需为每个信号总线的输出规定单独的LFSR。在以上示例中,LFSR子系统400仅包括5个LFSR并且还生成用于8个信号总线输出中的每个的唯一PRBS。
可以理解的是,本文所示的系统是说明性的,可以有变化和修改。在一些示例中,本文描述的技术结合存储器设备的数据(DQ)引脚可以用于存储器设备的扩展数据(DQX)引脚、错误检测和校正(EDC)引脚、命令地址(CA)引脚和/或任何其他输入/输出引脚。
另外或可替代地,由存储器设备生成的模式可能经受减少和/或消除训练的最大过渡的编码方案,如基于相位幅度调制(PAM4)信令参数的编码方案。结果,由存储器设备生成的模式可以消除添加完整的MTA编码器逻辑的需要,这可能很贵。
在一些示例中,当LFSR子系统400从并行处理子系统112发送随机化的LFSR数据至DRAM核心326时,如果LFSR子系统400未执行某种类型的编码来避免最大过渡,则训练结果可能受到负面影响。因此,训练结果可能是次优的,因为通过使用MTA编码逻辑,常规读/写操作避免最大过渡。因此,LFSR子系统400可执行低开销技术来模拟MTA的益处,而不必实现完整的MTA编码和解码逻辑。这些技术涉及随机LFSR输出的最大转换的检测。该技术将随机LFSR输出上的最大过渡转换成非最大过渡(0<->2、0<->1、无转换等)。更一般地,由LFSR子系统400执行的编码可操纵随机数据以便模拟MTA编码/解码的特性,而无需向LFSR子系统400添加完整的MTA编码器/解码器逻辑。
图5为根据各个实施例的对图1的计算机系统的系统存储器104和/或并行处理存储器134中的存储器设备执行写入训练操作的方法步骤的流程图。尽管已结合图1-4的系统描述了方法步骤,但本领域的普通技术人员将理解,配置为按任意次序执行所述方法步骤的任意系统都在本发明的范围内。
如图所示,方法500在步骤502开始,其中存储器设备根据种子值对存储器设备上的写训练LFSR(如R/W LFSR 320)进行初始化。存储器控制器使种子值和/或多项式被加载到R/W LFSR 320中。为了开始写入训练,与存储器设备相关联的存储器控制器发送复位命令和/或复位信号到存储器设备上的R/W LFSR 320以播种R/W LFSR 320。作为响应,存储器设备以预定的种子值和/或多项式播种R/W LFSR 320。附加地或可替代地,存储器控制器通过已经被训练的另一接口(诸如单独的命令地址接口)发送到种子值和/或多项式存储器设备来播种R/W LFSR 320。作为响应,存储器设备根据从存储器控制器接收的种子值和/或多项式播种R/W LFSR 320。在一些实施例中,在存储器控制器通过命令地址接口向存储器设备发送的写入训练命令中,存储器控制器包括了复位命令、复位信号或种子值和/或多项式。在一些实施例中,当存储器设备加载种子值到LFSR中以使写入训练结果寄存器准备接收当前写入训练操作的传递/失败状态时,写入训练结果寄存器自清除为初始值。
在步骤504,存储器设备以输入引脚上的信号的形式接收数据模式。存储器控制器将数据模式应用于一个或更多个DQ、DQX和/或EDC引脚316。
在步骤506,存储器设备比较输入引脚上的信号和写训练LFSR中的值,如R/W LFSR320。通过接收器318发送DQ、DQX和/或EDC引脚316至R/W LFSR 320和XOR门322。R/W LFSR320复制与存储器控制器相同的模式。XOR门322比较DQ、DQX和/或EDC引脚316上的数据模式和来自R/W LFSR 320的数据。如果CA输入引脚306上的数据模式与来自R/W LFSR 320的数据匹配,则XOR门322发送低值。如果DQ、DQX和/或EDC引脚316上的数据模式与来自R/W LFSR320的数据不匹配,则XOR门322发送高值。
在步骤508,存储器设备将结果记录在结果寄存器中,如写入训练结果寄存器324。XOR门322的输出被发送到写入训练结果寄存器324,并且为经历写入训练的每个DQ、DQX和/或EDC引脚316存储通过/失败写入训练状态。存储器设备可选地推进R/W LFSR 320。在写训练操作期间,存储器控制器通过移位存储器控制器上的LFSR中的值来周期性地推进存储器控制器上的LFSR。相应地,存储器控制器发送新的写入训练命令到存储器设备。作为响应,存储器设备通过移位存储器设备上的R/W LFSR320中的值来推进存储器设备上的R/W LFSR320。以这种方式,存储器控制器上的LFSR和存储器设备上的R/W LFSR 320在写入训练操作期间保持相同的值。因此,存储器控制器上的LFSR和存储器设备上的R/W LFSR320在写入训练操作期间生成相同的数据模式。
在步骤510,存储器设备确定写入测试是否完成。存储器设备可基于完成写入训练操作的多次迭代、基于从存储器控制器接收的命令等确定测试是否完成。如果存储器设备确定写入测试未完成,则方法500进入到步骤504,如上所述。
然而,如果存储器设备确定写入测试完成,则方法500进入步骤512,其中存储器设备发送结果至存储器控制器。当存储器设备完成全部或部分写入训练操作时,存储器控制器读取写入训练结果寄存器324以确定写入训练操作的结果,从而确定写入训练操作是通过还是失败。当存储器控制器读取写入训练结果寄存器324时,输入多路复用器302的模式304从顶部输入选择第二个,以通过发送器314发送写入训练结果寄存器324的输出,然后到一个或更多个DQ、DQX和/或EDC引脚316。存储器控制器然后读取一个或更多个DQ、DQX和/或EDC引脚316以确定数据写入训练是否成功。
在步骤514,存储器设备清除结果寄存器。在一些实施例中,当存储器控制器读取写入训练结果寄存器的值时,写入训练结果寄存器被自清除为初始值。在一些实施例中,最初清空写入训练结果寄存器以指示失败状态。此后,在每次写入训练命令之后根据需要更新写入训练结果寄存器,以指示与该写入训练命令相对应的写入训练操作是通过还是失败。当状态寄存器被读取到存储器控制器时,状态寄存器被再次自清除以指示失败状态。
方法500随后终止。或者,方法500进入步骤502以执行附加的写入训练操作。
总之,各个实施例针对高效地执行DRAM存储器设备的写入训练的技术。DRAM存储器设备包括一个或更多个线性反馈移位寄存器(LFSR),其以伪随机位序列(PRBS)的形式生成写入样式。在一些实施例中,经历写入训练操作的接口的若干输入引脚中的每个,如数据接口,被耦合至相应的LFSR,以检查在对应的输入引脚上接收的PRBS样式。为了开始写入训练,与存储器设备相关联的存储器控制器发送复位命令和/或复位信号至存储器设备上的LFSR以播种LFSR。作为响应,存储器设备以预定的种子值和/或多项式对LFSR进行播种。附加地或可替代地,存储器控制器通过已经被训练的另一接口,如单独的命令地址接口,发送种子值和/或多项式到存储器设备来播种LFSR。作为响应,存储器设备通过从存储器控制器接收的种子值和/或多项式对LFSR进行播种。在一些实施例中,在存储器控制器通过命令地址接口发送至向存储器设备的写入训练命令中,存储器控制器包括复位命令、复位信号或种子值和/或多项式。在一些实施例中,当存储器设备加载种子值到LFSR中以使写入训练结果寄存器准备接收用于当前写入训练操作的通过/失败状态时,写入训练结果寄存器被自清除为初始值。
在写入训练操作期间,存储器控制器基于存储器设备用于播种LFSR的相同种子值和/或多项式发送写入训练模式至存储器设备上的一个或更多个接口引脚。随着存储器设备接收位模式,一个或更多个接口引脚上的写入训练检验器对照存储器设备中的LFSR的输出检查一个或更多个接口引脚上的传入写入训练模式。在一些实施例中,使用XOR逻辑实现用于输入引脚的PRBS检验器。
如果传入的写入数据模式与由存储器设备的LFSR生成的数据模式相匹配,则写入训练操作通过,并且存储器设备在写入训练结果寄存器中记录通过状态。然而,如果传入的写入数据模式与存储器设备的LFSR生成的数据模式不匹配,则写入训练操作失败,并且存储器设备在写入训练结果寄存器中记录失败状态。在一些实施例中,对于经历写入训练操作的每个输入引脚,写入训练结果寄存器包括单独的通过/失败状态位。
在写训练操作期间,存储器控制器通过移位存储器控制器上的LFSR中的值来周期性地推进存储器控制器上的LFSR。相应地,存储器控制器发送新的写入训练命令到存储器设备。作为响应,存储器设备通过移位存储器设备上的LFSR中的值来推进存储器设备上的LFSR。以这种方式,在写入训练操作期间存储器控制器上的LFSR和存储器设备上的LFSR保持相同值。因此,存储器控制器上的LFSR和存储器设备上的LFSR在写入训练操作期间生成相同的数据模式。
当存储器设备完成全部或部分写入训练操作时,存储器控制器读取写入训练结果寄存器中的值以确定写入训练操作是通过还是失败。在一些实施例中,当存储器控制器读取写入训练结果寄存器的值时,写入训练结果寄存器被自清除为初始值。在一些实施例中,最初清空写入训练结果寄存器以指示失败状态。此后,在每次写入训练命令之后根据需要更新写入训练结果寄存器,以指示与该写入训练命令相对应的写入训练操作通过还是失败。当状态寄存器被读取到存储器控制器时,状态寄存器被再次自清除以指示失败状态。
本公开的技术相对于现有技术的至少一个技术优点是,根据本公开的技术,在写入训练操作期间发送至存储器设备的冗长的写入训练数据模式不需要被存储在存储器设备中或从存储器设备中读出以确定写入训练操作是否成功。相反,存储器控制器仅需要发送写入训练数据模式并读出通过/失败结果以确定写入训练操作是否成功。因此,相对于需要从存储器设备读出写入训练数据模式的现有技术,写入训练操作在大约一半的时间内完成。
本公开的技术的另一个优点是数据接口的所有引脚被同时训练,从而导致相对于传统方法更短的训练时间。相比之下,根据写入数据模式到DRAM存储器核心并且随后读回数据模式的传统方法,仅训练数据输入/输出引脚本身。在数据引脚的训练完成之后,在单独的训练操作中训练未存储到DRAM存储器核心的数据接口的附加引脚。通过使用工作在输入/输出引脚电平上的PRBS模式检验器,并行训练数据接口的所有引脚,进一步减少训练时间。这些优点表示相对于现有技术方法的一个或更多个技术改进。
在任何权利要求中列举的任何权利要求要素和/或在本申请中描述的任何要素以任何方式的任何和所有组合均落入本公开和保护的预期范围内。
已经出于说明的目的呈现了各个实施例的描述,但并不旨在是详尽的或限于本公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。
本实施例的多个方面可以体现为一种系统、方法、或计算机程序产品。因此,本公开的各方面可采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在本文中可全部统称为“模块”或“系统”。此外,本公开的方面可以采取体现在一个或更多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
可以利用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者上述的任意合适的组合。计算机可读存储媒质的更具体的示例(非穷举的列表)将包括以下:具有一个或更多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备或者上述的任意合适的组合。在本文档的上下文中,计算机可读存储媒质可以是任何包含或存储程序的有形媒质,该程序可以由命令执行系统、装置或设备使用或者与其结合使用。
以上参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序命令实现。这些计算机程序命令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序命令在通过计算机或其他可编程数据处理装置的处理器执行时,能够实现在流程图和/或框图的或多个框中指定的功能/动作。这样的处理器可以是,但不限于,通用处理器、专用处理器、专用处理器或现场可编程门阵列。
图中的流程图和框图示出了根据本公开的各个实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可表示代码的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或更多个可执行命令。还应注意,在一些替代实施例中,框中所指出的功能可不按图中所指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机命令的组合来实现。
虽然前述内容针对本公开的实施例,但是在不背离其基本范围的情况下,可以设计本公开的其他和进一步的实施例,并且其范围由以下权利要求书确定。
Claims (20)
1.一种用于在存储器设备上执行写入训练操作的计算机实现的方法,所述方法包括:
用第一数据模式初始化所述存储器设备上的第一寄存器;
在所述存储器设备的输入引脚上接收第二数据模式;
比较所述第一数据模式和所述第二数据模式以生成结果值;以及
将所述结果值存储在第二寄存器中,其中所述结果值指明所述写入训练操作是否成功。
2.根据权利要求1所述的计算机实现的方法,还包括:
确定所述第一数据模式与所述第二数据模式匹配,
其中所述结果值指示通过结果。
3.根据权利要求1所述的计算机实现的方法,还包括:
确定所述第一数据模式与所述第二数据模式不匹配,
其中所述结果值指示失败结果。
4.根据权利要求1所述的计算机实现的方法,还包括:
接收读取所述结果值的命令;以及
将所述结果值发送至所述存储器设备的输出引脚。
5.根据权利要求1所述的计算机实现的方法,还包括:在发送所述结果值之后,将所述第二寄存器初始化为初始值。
6.根据权利要求1所述的计算机实现的方法,其中比较所述第一数据模式和所述第二数据模式包括:对所述第一数据模式和所述第二数据模式执行异或XOR运算。
7.根据权利要求6所述的计算机实现的方法,其中所述结果值基于所述异或运算的输出。
8.根据权利要求1所述的计算机实现的方法,其中初始化所述第一寄存器包括:
从存储器控制器接收复位命令;以及
将预定值存储在所述第一寄存器中。
9.根据权利要求1所述的计算机实现的方法,还包括:在初始化所述第一寄存器之后,将所述第二寄存器初始化为初始值。
10.根据权利要求9所述的计算机实现的方法,其中所述初始值包括失败状态。
11.根据权利要求1所述的计算机实现的方法,还包括:
从存储器控制器接收初始值;以及
将所述初始值存储在所述第一寄存器中。
12.根据权利要求1所述的计算机实现的方法,其中所述第一寄存器包括线性反馈移位寄存器。
13.根据权利要求1所述的计算机实现的方法,其中所述第一数据模式或所述第二数据模式中的至少一个包括伪随机位序列。
14.一种系统,包括:
存储器控制器;以及
耦合到所述存储器控制器的存储器设备,其:
用第一数据模式初始化所述存储器设备上的第一寄存器;
在所述存储器设备的输入引脚上从所述存储器控制器接收第二数据模式;
比较所述第一数据模式和所述第二数据模式以生成结果值;以及
将所述结果值存储在第二寄存器中。
15.根据权利要求14所述的系统,其中所述存储器设备进一步:
确定所述第一数据模式与所述第二数据模式匹配,
其中所述结果值指示通过结果。
16.根据权利要求14所述的系统,其中所述存储器设备进一步:
确定所述第一数据模式与所述第二数据模式不匹配,
其中所述结果值指示失败结果。
17.根据权利要求14所述的系统,其中所述存储器设备进一步:
接收读取所述结果值的命令;以及
将所述结果值发送至所述存储器设备的输出引脚。
18.根据权利要求14所述的系统,其中在发送所述结果值之后,所述存储器设备进一步将所述第二寄存器初始化为初始值。
19.根据权利要求14所述的系统,其中当所述存储器设备比较所述第一数据模式和所述第二数据模式时,所述存储器设备对所述第一数据模式和所述第二数据模式执行异或XOR运算。
20.根据权利要求19所述的系统,其中所述结果值基于所述异或运算的输出。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163144971P | 2021-02-02 | 2021-02-02 | |
US63/144,971 | 2021-02-02 | ||
US202163152814P | 2021-02-23 | 2021-02-23 | |
US202163152817P | 2021-02-23 | 2021-02-23 | |
US63/152,814 | 2021-02-23 | ||
US63/152,817 | 2021-02-23 | ||
US202163179954P | 2021-04-26 | 2021-04-26 | |
US63/179,954 | 2021-04-26 | ||
US17/523,779 | 2021-11-10 | ||
US17/523,779 US11742007B2 (en) | 2021-02-02 | 2021-11-10 | Techniques for performing write training on a dynamic random-access memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840137A true CN114840137A (zh) | 2022-08-02 |
Family
ID=82402835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210088813.5A Pending CN114840137A (zh) | 2021-02-02 | 2022-01-25 | 用于在动态随机存取存储器上执行写入训练的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11742007B2 (zh) |
CN (1) | CN114840137A (zh) |
DE (1) | DE102022102128A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11742006B2 (en) * | 2021-02-02 | 2023-08-29 | Nvidia Corporation | Techniques for performing command address in interface training on a dynamic random-access memory |
US11824563B2 (en) * | 2021-03-10 | 2023-11-21 | Samsung Electronics Co., Ltd. | Encoding and decoding apparatuses and methods for implementing multi-mode coding |
US11966303B2 (en) * | 2022-06-02 | 2024-04-23 | Micron Technology, Inc. | Memory system failure detection and self recovery of memory dice |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130044604A1 (en) * | 2011-08-18 | 2013-02-21 | Spirent Communications, Inc. | Methods and apparatuses for enhanced transmission selection-capable simulated traffic generation |
US20180130516A1 (en) * | 2016-11-07 | 2018-05-10 | SK Hynix Inc. | Training controller, and semiconductor device and system including the same |
US20190050159A1 (en) * | 2017-08-09 | 2019-02-14 | Samsung Electronics Co., Ltd. | Memory device for efficiently determining whether to perform re-training operation and memory system including the same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003303499A (ja) | 2002-04-08 | 2003-10-24 | Mitsubishi Electric Corp | 半導体集積回路 |
JP2007207075A (ja) * | 2006-02-03 | 2007-08-16 | Seiko Epson Corp | Cpu、集積回路装置、マイクロコンピュータ、電子機器、及びcpuの制御方法 |
JP2020048022A (ja) * | 2018-09-18 | 2020-03-26 | 株式会社東芝 | 半導体集積回路及び再構成半導体システム |
JP2020046918A (ja) | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 記憶装置及び制御方法 |
KR102693546B1 (ko) * | 2018-11-07 | 2024-08-08 | 삼성전자주식회사 | 스토리지 장치 |
-
2021
- 2021-11-10 US US17/523,779 patent/US11742007B2/en active Active
-
2022
- 2022-01-25 CN CN202210088813.5A patent/CN114840137A/zh active Pending
- 2022-01-31 DE DE102022102128.9A patent/DE102022102128A1/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130044604A1 (en) * | 2011-08-18 | 2013-02-21 | Spirent Communications, Inc. | Methods and apparatuses for enhanced transmission selection-capable simulated traffic generation |
US20180130516A1 (en) * | 2016-11-07 | 2018-05-10 | SK Hynix Inc. | Training controller, and semiconductor device and system including the same |
US20190050159A1 (en) * | 2017-08-09 | 2019-02-14 | Samsung Electronics Co., Ltd. | Memory device for efficiently determining whether to perform re-training operation and memory system including the same |
CN109390024A (zh) * | 2017-08-09 | 2019-02-26 | 三星电子株式会社 | 确定是否进行重新训练操作的存储器装置及包含其的系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220246184A1 (en) | 2022-08-04 |
US11742007B2 (en) | 2023-08-29 |
DE102022102128A1 (de) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114840137A (zh) | 用于在动态随机存取存储器上执行写入训练的技术 | |
US11809719B2 (en) | Techniques for performing write training on a dynamic random-access memory | |
KR102393427B1 (ko) | 반도체장치 및 반도체시스템 | |
US9792173B2 (en) | Interface control circuit, memory system, and method of controlling an interface control circuit | |
EP2297641B1 (en) | Efficient in-band reliability with separate cyclic redundancy code frames | |
CN109712661B (zh) | 半导体存储器装置和包括半导体存储器装置的存储器系统 | |
US20100180143A1 (en) | Techniques for improved timing control of memory devices | |
CN106205728B (zh) | 奇偶校验电路及包括该奇偶校验电路的存储器装置 | |
US8566685B2 (en) | Command control circuit, integrated circuit having the same, and command control method | |
US10388401B2 (en) | Semiconductor device, semiconductor system, and method thereof | |
KR20090051715A (ko) | 메모리 기술에 대한 신뢰성, 가용성 및 서비스편의성 해결책 | |
CN109256172B (zh) | 包括检测时钟样式生成器的存储器设备 | |
KR20180106494A (ko) | 반도체장치 | |
CN114840455B (zh) | 存储器接口上的数据加扰技术 | |
TWI566096B (zh) | 資料儲存系統與其相關方法 | |
US9239755B2 (en) | Semiconductor device and semiconductor system including the same | |
KR20190072144A (ko) | 에러정정방법 및 이를 이용한 반도체장치 | |
US11742006B2 (en) | Techniques for performing command address in interface training on a dynamic random-access memory | |
US20230195561A1 (en) | Techniques for data scrambling on a memory interface | |
US11599413B2 (en) | Electronic system including error calculation circuit for performing error correction operation | |
WO2023122445A1 (en) | Techniques for data scrambling on a memory interface | |
CN115148274A (zh) | 用于测试错误校正电路的半导体器件和半导体系统 |
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 |