BR122017013540B1 - INTEGRATED CIRCUIT DEVICE AND SYSTEM FOR READING TRAINING A MEMORY CONTROLLER - Google Patents

INTEGRATED CIRCUIT DEVICE AND SYSTEM FOR READING TRAINING A MEMORY CONTROLLER Download PDF

Info

Publication number
BR122017013540B1
BR122017013540B1 BR122017013540-6A BR122017013540A BR122017013540B1 BR 122017013540 B1 BR122017013540 B1 BR 122017013540B1 BR 122017013540 A BR122017013540 A BR 122017013540A BR 122017013540 B1 BR122017013540 B1 BR 122017013540B1
Authority
BR
Brazil
Prior art keywords
read
memory module
identifier
data
memory
Prior art date
Application number
BR122017013540-6A
Other languages
Portuguese (pt)
Inventor
Tonia G. Morris
Jonathan C. Jasper
Arnaud J. Forestier
Original Assignee
Intel Corporation
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 Corporation filed Critical Intel Corporation
Publication of BR122017013540B1 publication Critical patent/BR122017013540B1/en

Links

Abstract

A presente invenção fornece um dispositivo e uma mídia de armazenamento legível por computador para programar um módulo de memória a iniciar um modo de treinamento no qual o módulo de memória transmite padrões de bits contínuos em uma raia de faixa lateral da interface de barramento; receber os padrões de bits através da interface de barramento; determinar, a partir dos padrões de bits recebidos, uma transição de valores no padrão de bits para determinar uma vista de dados entre as transições determinadas dos valores; e determinar uma configuração para controlar um interpolador de fase para gerar sinais interpolados usados para amostrar dados dentro da vista de dados determinada.The present invention provides a device and computer-readable storage media for programming a memory module to initiate a training mode in which the memory module transmits continuous bit patterns on a sideband lane of the bus interface; receive bit patterns through the bus interface; determining, from the received bit patterns, a transition of values in the bit pattern to determine a view of data between the determined transitions of values; and determining an arrangement for controlling a phase interpolator to generate interpolated signals used to sample data within the determined data view.

Description

CAMPO DA TÉCNICAFIELD OF TECHNIQUE

[0001] As modalidades descritas no presente documento referem- se, em geral, a um sistema de memória no qual um controlador de memória se comunica em um único canal ou barramento com múltiplos módulos de memória que têm um modelo de pino compatível com as fendas acopladas ao controlador de memória e canal.[0001] The embodiments described in this document refer, in general, to a memory system in which a memory controller communicates on a single channel or bus with multiple memory modules that have a pin model compatible with the slots coupled to the memory and channel controller.

ANTECEDENTESBACKGROUND

[0002] Um controlador de memória gerencia o fluxo de dados entre um processador e um ou mais módulos de memória em uma interface ou barramento. O controlador de memória contém a lógica necessária para ler e gravar em um módulo de memória e renovar os dados armazenados na DRAM. é implementado como um chip separado. O controlador de memória suporta um protocolo usado por múltiplos módulos de memória acoplados ao canal, como o protocolo de Memória de Acesso Aleatório Dinâmico Síncrona (SDRAM) de Taxa de Dados Duplos de Terceira Geração (DDR3) de Conselho Conjunto para Engenharia de Dispositivos de Elétrons (JEDEC).[0002] A memory controller manages the flow of data between a processor and one or more memory modules on an interface or bus. The memory controller contains the logic needed to read and write to a memory module and refresh data stored in DRAM. it is implemented as a separate chip. The memory controller supports a protocol used by multiple memory modules coupled to the channel, such as the Joint Council for Electron Device Engineering Third Generation Double Data Rate (DDR3) Synchronous Dynamic Random Access Memory (SDRAM) protocol (JEDEC).

[0003] Antes de usar a interface para a memória, o controlador de memória deve configurar os módulos de memória para operações, ajustando-se a temporização na qual o controlador de memória ativará para amostrar os dados de leitura a partir dos módulos de memória. Um dispositivo de alinhamento de sinal, como um interpolador de fase, é controlado pelo controlador de memória para gerar informações de fase de relógio e é responsivo aos sinais de controle de fase e sinais de referência que têm diferentes fases determinadas para alinhar o sinal de amostragem de dados para amostrar o centro de dados de leitura no centro no qual os dados de leitura serão transmitidos ou a vista de dados.[0003] Before using the memory interface, the memory controller must configure the memory modules for operations by setting the timing at which the memory controller will wake up to sample data read from the memory modules. A signal alignment device, such as a phase interpolator, is controlled by the memory controller to generate clock phase information and is responsive to phase control signals and reference signals that have different phases determined to align the sampling signal. data center to sample the reading data center in which the reading data will be transmitted or the data view.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0004] As modalidades são descritas a título de exemplo, com referência aos desenhos anexos, que não estão desenhados em escala, no quais numerais de referência similares se referem a elementos similares.[0004] The embodiments are described by way of example, with reference to the attached drawings, which are not drawn to scale, in which similar reference numerals refer to similar elements.

[0005] A Figura 1 ilustra uma modalidade de um sistema que tem um sistema de memória.[0005] Figure 1 illustrates one embodiment of a system that has a memory system.

[0006] A Figura 2 ilustra uma modalidade de um módulo de memória.[0006] Figure 2 illustrates one embodiment of a memory module.

[0007] A Figura 3 ilustra uma modalidade de uma interface de bar- ramento entre o controlador de memória e o módulo de memória.[0007] Figure 3 illustrates a modality of a bus interface between the memory controller and the memory module.

[0008] A Figura 4 é uma modalidade de operações para realizar treinamento de leitura fina para ajustar o interpolador de fase para gerar um sinal de amostra.[0008] Figure 4 is a modality of operations to perform fine reading training to adjust the phase interpolator to generate a sample signal.

[0009] A Figura 5 ilustra uma modalidade de operações para realizar o treinamento de leitura grosseira para determinar um deslocamento de leitura no qual os dados de leitura são recebidos.[0009] Figure 5 illustrates a modality of operations to perform coarse read training to determine a read offset at which read data is received.

[0010] A Figura 6 ilustra uma modalidade de operações para realizar o treinamento do interpolador de fase durante operações normais de leitura.[0010] Figure 6 illustrates a modality of operations to perform phase interpolator training during normal reading operations.

DESCRIÇÃO DAS MODALIDADESDESCRIPTION OF MODALITIES

[0011] Em uma interface de memória, o módulo de memória transmite sinais estroboscópicos com o sinal de dados para o controlador de memória, em que o controlador de memória processa os sinais estroboscópicos para determinar quando ligar os receptores e ler os dados. O controlador de memória pode, então, usar outros procedimentos para determinar onde amostrar os dados de leitura para ler, como com o uso de um interpolador de fase.[0011] In a memory interface, the memory module transmits strobes with the data signal to the memory controller, where the memory controller processes the strobes to determine when to turn on the receivers and read the data. The memory controller can then use other procedures to determine where to sample the read data to read, such as using a phase interpolator.

[0012] As modalidades descritas fornecem técnicas para realizar o treinamento de leitura fina, seguido pelo treinamento de leitura grosseira e, então, o treinamento de leitura avançado para ajustar um interpo- lador de fase durante operações normais de leitura. As modalidades descritas fornecem uma raia de sinal de faixa lateral para que o módulo de memória devolva os sinais usados pelo controlador de memória para ajustar o interpolador de fase. Adicionalmente, o controlador de memória fornece os padrões de sinal do módulo de memória que o módulo de memória devolve pela raia de faixa lateral no barramento separado dos dados e das linhas de barramento de comando para que o controlador de memória use para determinar uma temporização de deslocamento de leitura de quando ligar os receptores para amostrar os dados de leitura devolvidos.[0012] The described modalities provide techniques for performing fine reading training, followed by coarse reading training, and then advanced reading training to adjust a phase interpolator during normal reading operations. The described embodiments provide a sideband signal lane for the memory module to return signals used by the memory controller to adjust the phase interpolator. Additionally, the memory controller provides the memory module signal patterns that the memory module returns across the sideband lane on the bus separate from the data and command bus lines for the memory controller to use to determine a timing of read offset from when connecting receivers to sample read data returned.

[0013] Na descrição a seguir, numerosos detalhes específicos como implantações lógicas, códigos operacionais, meios para especificar operandos, implantações de recurso de partição/compartilhamento/du- plicação, tipos e interrelações de componentes de sistema, e as escolhas lógicas de partição/integração são estabelecidas a fim de fornecer um entendimento mais minucioso da presente invenção. Será apreciado, entretanto, pela pessoa versada na técnica que a presente invenção pode ser praticada sem tais detalhes específicos. Em outras instâncias, as estruturas de controle, os circuitos de nível de portal e as sequências de instrução de software completas não foram mostradas em detalhes a fim de não obscurecer a invenção. As pessoas de habilidade comum na técnica, com as descrições incluídas, terão a capacidade implantar a funcionalidade apropriada sem experimento excessivo.[0013] In the following description, numerous specific details such as logical deployments, operational codes, means for specifying operands, partition/share/duplication feature deployments, types and interrelationships of system components, and the logical partition/share choices integration are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by the person skilled in the art that the present invention can be practiced without such specific details. In other instances, control structures, gate-level circuitry, and complete software instruction sequences have not been shown in detail in order not to obscure the invention. Persons of ordinary skill in the art, descriptions included, will be able to implement the appropriate functionality without undue experimentation.

[0014] As referências no relatório descritivo a "uma (01) modalidade", "uma modalidade", "uma modalidade exemplificativa", etc., indi cam que a modalidade descrita pode incluir um recurso, estrutura ou característica específico, mas cada modalidade pode não necessariamente incluir o recurso, estrutura ou característica específico. Além do mais, tais frases não se referem necessariamente à mesma modalidade.[0014] References in the descriptive report to "one (01) modality", "one modality", "an exemplary modality", etc., indicate that the modality described may include a specific feature, structure or characteristic, but each modality may not necessarily include the specific feature, structure or characteristic. Furthermore, such phrases do not necessarily refer to the same modality.

[0015] Na descrição e reivindicações a seguir, os termos "acoplado" e "conectado", junto com seus derivados, podem ser usados. Deve ser entendido que esses termos não são pretendidos como sinônimos um para o outro. "Acoplado" é usado para indicar que dois ou mais elementos, que podem ou não estar em contato físico ou elétrico direto um com o outro, cooperar ou interagir um com o outro. "Conectado" é usado para indicar o estabelecimento de comunicação entre dois ou mais elementos que estão acoplados um ao outro. Certas modalidades se referem a montagens eletrônicas de dispositivos de memória. As modalidades incluem tanto dispositivos quanto métodos para formar montagens eletrônicas.[0015] In the following description and claims, the terms "coupled" and "connected", together with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for one another. "Coupled" is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, cooperate or interact with each other. "Connected" is used to indicate the establishment of communication between two or more elements that are coupled to each other. Certain embodiments relate to electronic assemblies of memory devices. Embodiments include both devices and methods for forming electronic assemblies.

[0016] A Figura 1 ilustra uma modalidade de um sistema de computação 100 que inclui um ou mais processadores 102, um controlador de memória 104 e múltiplos módulos de memória 200a, 200b, que são tipicamente montados em uma placa mãe. Os processadores 102 podem compreender uma unidade de processamento central e um processador de múltiplos núcleos. O controlador de memória 104, em resposta às solicitações de acesso de memória a partir dos processadores 102, se comunica com múltiplos módulos de memória 200a, 200b por um barramento 108, também referido como um canal, uma interface de barramento, etc., em que ambos os módulos de memória 200a, 200b estão conectados separada e independentemente ao mesmo barramento 108. O controlador de memória 104 pode incluir a lógica de controlador 110 que compreende o código ou a lógica executados para realizar operações; um interpolador de fase 112 para rece- ber sinais de temporização de entrada e produzir um sinal de amostragem interpolado alinhado com a vista de dados do sinal de dados de leitura recebidos; um Registro de Deslocamento de Retorno Linear (LFSR) 114 para gerar identificadores de leitura aleatórios usados nas fases de treinamento de leitura grosseiro e avançado; e registros de treinamento 116 para armazenar valores usados durante as operações de treinamento.[0016] Figure 1 illustrates one embodiment of a computing system 100 that includes one or more processors 102, a memory controller 104 and multiple memory modules 200a, 200b, which are typically mounted on a motherboard. Processors 102 may comprise a central processing unit and a multi-core processor. Memory controller 104, in response to memory access requests from processors 102, communicates with multiple memory modules 200a, 200b over a bus 108, also referred to as a channel, a bus interface, etc., in that both memory modules 200a, 200b are connected separately and independently to the same bus 108. Memory controller 104 may include controller logic 110 comprising code or logic executed to perform operations; a phase interpolator 112 for receiving input timing signals and producing an interpolated sampling signal aligned with the data view of the received read data signal; a Linear Return Shift Register (LFSR) 114 for generating random read identifiers used in the coarse and advanced read training phases; and training registers 116 for storing values used during training operations.

[0017] Na modalidade da Figura 1, os módulos de memória 200a, 200b são montados em fendas ou soquetes de memória na placa mãe do sistema 100. Os módulos de memória 200a, 200b podem compreender tipos iguais ou diferentes de módulos de memória que tenham uma disposição de pino compatível com a disposição de pino nas fendas de memória na placa mãe. Adicionalmente, os módulos de memória podem suportar protocolos de memória iguais ou diferentes, como o protocolo de Taxa de Dados Duplos de Quarta Geração (DDR4) e protocolos adicionais. Embora apenas dois módulos de memória 200a, 200b sejam mostrados, pode haver múltiplos módulos de memória.[0017] In the embodiment of Figure 1, the memory modules 200a, 200b are mounted in memory slots or sockets on the system motherboard 100. The memory modules 200a, 200b can comprise the same or different types of memory modules that have a pin arrangement compatible with the pin arrangement in the memory slots on the motherboard. Additionally, memory modules can support the same or different memory protocols, such as the Fourth Generation Double Data Rate (DDR4) protocol and additional protocols. Although only two memory modules 200a, 200b are shown, there can be multiple memory modules.

[0018] Cada um dos módulos de memória 200a, 200b inclui chips de memória 202a, 204a, 206a, 208a e 202b, 204b, 206b, 208b, res-pectivamente, em um ou ambos os lados do módulo de memória 200a, 200b, para armazenar os dados. Os chips de memória, por exemplo, chips DRAM, localizados em um ou ambos os lados do pacote de módulo de memória 200a, 200b, compreendem os elementos de armazenamento que armazenam dados que são usados pelo processador 102.[0018] Each of the memory modules 200a, 200b includes memory chips 202a, 204a, 206a, 208a and 202b, 204b, 206b, 208b, respectively, on one or both sides of the memory module 200a, 200b, to store the data. Memory chips, for example DRAM chips, located on one or both sides of the memory module package 200a, 200b, comprise the storage elements that store data that is used by the processor 102.

[0019] Cada módulo de memória 200a, 200b pode incluir um controlador de módulo de memória 210a, 210b para coordenar o gerenciamento de memória e operações de acesso com o controlador de memória 104. O controlador de memória 104 inclui uma lógica, como a lógica 110, para gerenciar operações de treinamento de leitura, opera- ções de leitura e gravação e operações de gerenciamento de memória em relação aos módulos de memória 200a, 200b conectados ao bar- ramento 108, e realizar interface do processador 2 com os módulos de memória 200a, 200b. O controlador de memória 104 e/ou os módulos de memória 200a, 200b podem ser integrados com o processador 102 ou implementados em lógica separados do processador 102 na placa mãe do sistema 100 conforme mostrado na Figura 1.[0019] Each memory module 200a, 200b may include a memory module controller 210a, 210b for coordinating memory management and access operations with the memory controller 104. The memory controller 104 includes logic, such as logic 110, to manage read training operations, read and write operations, and memory management operations with respect to the memory modules 200a, 200b connected to the bus 108, and to interface the processor 2 with the memory modules 200a, 200b. Memory controller 104 and/or memory modules 200a, 200b may be integrated with processor 102 or implemented in logic separate from processor 102 on system motherboard 100 as shown in Figure 1.

[0020] A placa mãe do sistema 100 pode incluir um soquete de memória compatível com diferentes tipos de chips de memória, para permitir diferentes tipos de módulos de memória 200a, 200b que suportam tipos de dispositivos de memória que suportam diferentes protocolos de memória contanto que os diferentes tipos de módulos de memória 200a, 200b sejam compatíveis com a arquitetura de pino nos soquetes de memória.[0020] The system motherboard 100 may include a memory socket compatible with different types of memory chips, to allow different types of memory modules 200a, 200b that support types of memory devices that support different memory protocols as long as the different types of memory modules 200a, 200b are compatible with the pin architecture on the memory sockets.

[0021] Em uma modalidade, os módulos de memória 200a, 200b podem compreender um tipo igual ou diferente de módulo de memória de Memória de Acesso Aleatório Dinâmico Síncrono de Taxa de Dados Dupla (DDR SDRAM), como LPDDRs, Módulos de Memória Em Linha Duplos (DIMMs), como DIMMs não armazenados em memória temporária (UDIMM), Módulo de Memória Em Linha Dupla de Carga Reduzida (LRDIMM), um Pequeno Módulo de Memória Em Linha Dupla Fora de Linha (SODIMM), etc. Os módulos de memória 200a, 200b podem implantar várias formas de memória, que incluem, mas sem limitação, memória NAND (flash), memória de acesso aleatório ferroe- létrica (FeTRAM), memória não volátil baseada em nanofio, memória de ponto cruzado tridimensional (3D) como memória de mudança de fase (PCM), memória que incorpora tecnologia de resistor de memória, memória de acesso aleatório magnetorresistiva (MRAM), MRAM de Torque de Transferência de Rotação (STT), etc.[0021] In one embodiment, the memory modules 200a, 200b may comprise the same or different type of Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM) memory module, such as LPDDRs, In-Line Memory Modules Dual In-Line Memory Modules (DIMMs), such as non-buffered DIMMs (UDIMM), Low Load Dual In-Line Memory Module (LRDIMM), a Small Dual Off-Line In-Line Memory Module (SODIMM), etc. Memory modules 200a, 200b can deploy various forms of memory, including, but not limited to, NAND (flash) memory, ferroelectric random access memory (FeTRAM), nanowire-based non-volatile memory, three-dimensional cross-point memory (3D) such as phase shift memory (PCM), memory incorporating memory resistor technology, magnetoresistive random access memory (MRAM), Rotation Transfer Torque (STT) MRAM, etc.

[0022] A Figura 2 fornece detalhes adicionais de uma modalidade de um módulo de memória 200, como os módulos de memória 200a, 200b, como incluindo um controlador de módulo de memória 210 que realiza as operações de módulo de memória e interage com o controlador de memória 104. O módulo de memória 200 pode incluir registros de modo 212 no controlador de módulo de memória 210 que tem dados que podem ser configurados com o uso de um comando de Conjunto de Registros de Modo (MRS), um armazenamento temporário de leitura 214 e um armazenamento temporário de gravação 216 para armazenar temporariamente dados de leitura e de gravação para os chips de memória 202, 204, 206, 208. Os armazenamentos temporários 214, 216 podem ser implementados dentro do controlador de módulo de memória 210 ou em um conjunto de circuitos externo ao controlador de módulo de memória 210 no módulo de memória 200. Em modalidades adicionais, os registros de modo 212 podem ser implementados nos chips de memória 202, 204, 206, 208.[0022] Figure 2 provides additional details of one embodiment of a memory module 200, such as memory modules 200a, 200b, such as including a memory module controller 210 that performs memory module operations and interacts with the controller memory module 104. The memory module 200 may include mode registers 212 in the memory module controller 210 that have data that may be set using a Mode Register Set (MRS) command, a read-only temporary storage 214 and a write buffer 216 for temporarily storing read and write data for the memory chips 202, 204, 206, 208. The buffers 214, 216 may be implemented within the memory module controller 210 or in a circuitry external to memory module controller 210 in memory module 200. In additional embodiments, mode registers 212 may be implemented in memory chips 202, 204, 206, 208.

[0023] O código ou a lógica que implanta as operações do controlador de módulo de memória 210 e do controlador de memória 104 podem ser implementados como código legível por computador carregado em uma memória e executado por um processador ou pode ser criptografado em lógica de hardware, como em um Circuito Integrado de Aplicação Específica (ASIC), um Arranjo de Portas Programável em Campo (FPGA), etc.[0023] The code or logic that implements the operations of the memory module controller 210 and the memory controller 104 can be implemented as computer-readable code loaded into a memory and executed by a processor, or it can be encrypted in hardware logic , such as in an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), etc.

[0024] A lógica ou o código das modalidades descritas podem ser implementados em uma mídia de armazenamento legível por máquina que compreende em um dispositivo ou aparelho que tem elementos elétricos ou outros elementos de hardware para armazenar as instruções executáveis por máquina. A mídia legível por máquina pode incluir, mas sem limitação, memória flash, discos ópticos, memória de apenas leitura em discos compactos (CD-ROM), ROM de discos digitais versáteis/de vídeo (DVD), memória de acesso aleatório (RAM), memória de apenas leitura programável apagável (EPROM), memória de apenas leitura programável apagável eletricamente (EEPROM), cartões magnéticos ou ópticos e outras mídias legíveis por máquina adequadas para armazenar instruções eletrônicas.[0024] The logic or code of the described embodiments may be implemented on a machine-readable storage medium comprising a device or apparatus having electrical elements or other hardware elements for storing the machine-executable instructions. Machine-readable media may include, but is not limited to, flash memory, optical discs, read-only memory on compact discs (CD-ROM), Digital Versatile/Video Disc (DVD) ROM, random access memory (RAM) , erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, and other machine-readable media suitable for storing electronic instructions.

[0025] Em implantações alternativas, a lógica ou o código das modalidades descritas podem ser implementados em uma mídia de transmissão de sinal.[0025] In alternative implementations, the logic or code of the described embodiments can be implemented in a signal transmission medium.

[0026] A Figura 3 ilustra uma modalidade das linhas de interface de barramento 108 entre o controlador de memória 104 e o módulo de memória 200, incluindo uma raia de faixa lateral 300 que tem linhas de faixa lateral; as linhas de sinal de comando e controle 302 nas quais o controlador de memória 104 comunica comandos ao módulo de memória 200; um sinal de entrada de relógio diferencial (DCLK) 304 a partir do controlador de memória 104 para o módulo de memória 200 para que o módulo de memória 200 use para amostrar sinais de endereço e controle nas linhas de comando/controle 302; e linhas de dados 306 nas quais os dados de leitura e de gravação são transmitidos entre o controlador de memória 104 e o módulo de memória 200. Podem ser incluídas linhas de barramento adicional para outros propósitos.[0026] Figure 3 illustrates one embodiment of the bus interface lines 108 between the memory controller 104 and the memory module 200, including a sideband lane 300 having sideband lines; the 302 command and control signal lines on which the 104 memory controller communicates commands to the 200 memory module; a differential clock input (DCLK) signal 304 from the memory controller 104 to the memory module 200 for the memory module 200 to use to sample address and control signals on command/control lines 302; and data lines 306 on which read and write data is transmitted between memory controller 104 and memory module 200. Additional bus lines may be included for other purposes.

[0027] A raia de faixa lateral 300 tem uma ou mais linhas de sinal para transmitir informações adicionais que o controlador de memória 104 pode usar para treinar e outros propósitos e, em resposta, para controlar sinais a partir do controlador de memória 104. Por exemplo, o controlador de memória 104 pode enviar uma mensagem de garantia para o módulo de memória 200 em resposta ao recebimento de um reconhecimento recebido de leitura, que pode fazer com que o módulo de memória 200 envie um sinal de identificador de leitura (ID) na raia de faixa lateral 300 antes de enviar os dados. O módulo de memória 200 pode usar a raia de faixa lateral 300 para comunicar, a um ID de leitura, o controlador de memória 104 transmitido anteriormente com uma solicitação de leitura e, em resposta, o módulo de memória 200 pode retornar o ID de leitura na raia de faixa lateral 300 sem processamento, por exemplo, filtragem, interpretação, etc. Adicionalmente, em certas modalidades, a raia de faixa lateral 300 pode compreender pares de sinal de relógio no módulo de memória 200.[0027] The sideband lane 300 has one or more signal lines to convey additional information that the memory controller 104 can use for training and other purposes and, in response, to control signals from the memory controller 104. For example, memory controller 104 may send an assurance message to memory module 200 in response to receipt of a read received acknowledgment, which may cause memory module 200 to send a read identifier (ID) signal. in side lane lane 300 before sending the data. Memory module 200 may use sideband lane 300 to communicate, to a read ID, previously transmitted memory controller 104 with a read request, and in response, memory module 200 may return the read ID. in sideband lane 300 without processing, e.g., filtering, interpreting, etc. Additionally, in certain embodiments, sideband lane 300 may comprise clock signal pairs in memory module 200.

[0028] Em uma modalidade, a raia de faixa lateral 300 que transmite o ID de leitura de volta para o controlador de memória 104 transmite sinais na frequência de comando, não na frequência de relógio. Em uma modalidade, a raia de faixa lateral 300 pode ser destinada a transmitir relógios e transmitir um padrão de relógio que é o dobro do período do sinal de entrada de relógio (DCLK) 304. O módulo de memória 200 pode transmitir sinais e um ID de leitura recebido, como parte de um sinal de controle, na raia de faixa lateral 300 antes de transmitir os dados de leitura. Esses sinais de ID de leitura podem transmitir uma intermitência de dados, com uma relação de temporização específica em relação a um sinal de controle, como um sinal de garantia. Essa relação de temporização pode variar dentro de uma faixa, dependendo dos atrasos do módulo de memória e do canal. Em certas modalidades, o módulo de memória 200 pode não transmitir um es- trombo com a intermitência de dados, para que o controlador de memória 104 realize o treinamento de leitura fina para treinar os atrasos de amostragem de sinal de ID de leitura para se alinharem no centro da vista de sinalização de ID de leitura para conseguir uma baixa taxa de erro de bits. Os sinais de ID de leitura podem ser transmitido à metade da frequência do barramento de dados, mas essas velocidades ainda podem chegar até 1600MTps.[0028] In one embodiment, the sideband lane 300 that transmits the read ID back to the memory controller 104 transmits signals at the command frequency, not the clock frequency. In one embodiment, the sideband lane 300 can be assigned to transmit clocks and transmit a clock pattern that is twice the period of the input clock signal (DCLK) 304. The memory module 200 can transmit signals and an ID read data received, as part of a control signal, in sideband lane 300 before transmitting the read data. These read ID signals may transmit a burst of data, with a specific timing relationship to a control signal, such as an assurance signal. This timing ratio can vary within a range depending on memory module and channel delays. In certain embodiments, the memory module 200 may not transmit a stump with the burst of data, so the memory controller 104 performs fine read training to train the read ID signal sampling delays to align. in the center of the read ID signaling view to achieve a low bit error rate. Read ID signals can be transmitted at half the data bus frequency, but these speeds can still reach up to 1600MTps.

[0029] A Figura 4 ilustra uma modalidade de operações realizadas pela lógica de controlador de memória 110 e o controlador de módulo de memória 202 lógica para permitir que a lógica de controlador de memória 110 em conjunto com o módulo de memória 200 para realizar o treinamento de leitura fina do interpolador de fase 112 para fornecer sinais de amostra interpolados alinhados na vista de dados. O treinamento de leitura fina pode ser iniciado durante uma prova do barra- mento 108 durante uma inicialização do sistema 100. Para iniciar o treinamento de leitura fina, a lógica de controlador de memória 110 transmite um comando (no bloco 400) para programar os registros de modo 212 no módulo de memória 200 para começar um modo de treinamento de leitura fina. Em resposta a ter os registros de modo 212 gravados para indicar o modo de treinamento de leitura fina, o controlador de módulo de memória 210 transmite (nos blocos 404 e 406) um primeiro padrão em uma primeira linha de sinal lateral da raia de faixa lateral 300 e um segundo padrão em uma segunda linha de sinal, diferente da primeira linha de sinal, na raia de faixa lateral 300. O primeiro e o segundo padrões podem compreender sinais de relógio que têm valores opostos, como 1010 e 0101. Em certas modalidades, os padrões de relógio podem ter um período que é o dobro do período do sinal de relógio DCLK 304, e pode ter uma frequência na linha de co- mando/de sinal de controle 302, não a frequência de relógio 304. Os sinais, como 1010 e 0101, em linhas separadas de sinal da raia de faixa lateral 300 podem estar fora de fase ou em fase. Adicionalmente, os padrões transmitidos nos blocos 404 e 406 podem ser transmitidos de modo contínuo nas linhas separadas da raia de faixa lateral 300.[0029] Figure 4 illustrates an embodiment of operations performed by the memory controller logic 110 and the memory module controller 202 logic to allow the memory controller logic 110 in conjunction with the memory module 200 to perform training fine readout of phase interpolator 112 to provide aligned interpolated sample signals in the data view. Fine read training may be initiated during a test of bus 108 during a system startup 100. To initiate fine read training, memory controller logic 110 issues a command (at block 400) to program the registers mode 212 into memory module 200 to begin a fine reading training mode. In response to having the mode registers 212 written to indicate the fine read training mode, the memory module controller 210 transmits (at blocks 404 and 406) a first pattern on a first side signal line of the side lane lane 300 and a second pattern on a second signal line, different from the first signal line, in sideband lane 300. The first and second patterns may comprise clock signals that have opposite values, such as 1010 and 0101. In certain embodiments , the clock patterns may have a period that is twice the period of the DCLK clock signal 304, and may have a command/control signal line frequency 302, not the clock frequency 304. The signals, such as 1010 and 0101, on separate sideband lane signal lines 300 may be out of phase or in phase. Additionally, patterns transmitted in blocks 404 and 406 may be transmitted continuously on separate lines of sideband lane 300.

[0030] Após transmitir os bits do primeiro e do segundo padrões, se (no bloco 408) os registros de modo 212 continuarem a indicar o modo de treinamento de leitura fina, então, o controle retorna para o bloco 404 para continuar a transmitir os padrões que têm os valores opostos. Se (no bloco 408) o treinamento de modo fino tiver terminado, então, a fase de treinamento de leitura grosseira pode começar (no bloco 410).[0030] After transmitting the bits of the first and second patterns, if (at block 408) the mode registers 212 continue to indicate the fine read training mode, then control returns to block 404 to continue transmitting the patterns that have the opposite values. If (at block 408) the fine mode training has ended, then the coarse read training phase can begin (at block 410).

[0031] Mediante a lógica de controlador de memória 110, o rece- bimento (no bloco 412) do padrão de bits transmitido, se (no bloco 414) o bit recebido não for o valor oposto do valor de bit armazenado nos registros de treinamento 116, 0 versus 1 ou 1 versus zero, então, o bit recebido é armazenado (no bloco 416) nos registros de treinamento 116. Se (no bloco 414) o valor de bit recebido for o oposto ao valor de bit armazenado, então, é feita uma determinação (no bloco 418) da temporização na qual o bit oposto (ou padrão). A lógica de controlador de memória 110, então, determina (no bloco 422) bordas a partir da temporização determinada mudando-se as temporizações para ser, isto é, varrer, para fora da temporização determinada em ambas as direções até que uma correspondência não seja encontrada, em cujo ponto as bordas da vista de dados são determinadas em cada direção a partir da temporização determinada na qual o padrão de bits oposto foi recebido. A vista de dados é, então, determinada (no bloco 422) a estar em uma temporização entre a temporização das bordas. Em uma modalidade, as bordas da vista de dados são determinadas mudando-se as temporizações do interpolador de fase 112 para varrer para fora a partir da vista de dados determinada em cada direção para encontrar o ponto no qual não existe correspondência.[0031] By means of memory controller logic 110, receiving (at block 412) the transmitted bit pattern, if (at block 414) the received bit is not the opposite value of the bit value stored in the training records 116, 0 versus 1 or 1 versus zero, then the received bit is stored (at block 416) in training registers 116. If (at block 414) the received bit value is the opposite of the stored bit value, then A determination is made (at block 418) of the timing at which the opposite (or pattern) bit. Memory controller logic 110 then determines (at block 422) edges from the determined timing by changing the timings to be, i.e., sweep, outside the determined timing in both directions until a match is not found. found, at which point the edges of the data view are determined in each direction from the determined timing at which the opposite bit pattern was received. The data view is then determined (at block 422) to be on a timing between timing edges. In one embodiment, the edges of the data view are determined by changing the timings of the phase interpolator 112 to scan out from the determined data view in each direction to find the point at which there is no match.

[0032] Com base nesses sinais de temporização, é feita uma determinação (no bloco 424) de uma configuração para controlar o inter- polador de fase 112 para gerar sinais interpolados usados para amostrar dados na vista de dados determinada. Após treinar o interpolador de fase 112 para gerar sinais interpolados para amostragem na vista de dados entre as bordas, a lógica de controlador de memória 110 grava (no bloco 426) ao registro de modo 212 do módulo de memória 220 para parar o modo de treinamento de leitura fina para parar o controlador de módulo de memória de continuar a envia padrões de bits opostos na raia de faixa lateral 300.[0032] Based on these timing signals, a determination is made (at block 424) of a setting for controlling the phase interpolator 112 to generate interpolated signals used for sampling data in the determined data view. After training phase interpolator 112 to generate interpolated signals for sampling in the data view between the edges, memory controller logic 110 writes (in block 426) to mode register 212 of memory module 220 to stop training mode fine readout to stop the memory module controller from continuing to send opposite bit patterns in sideband lane 300.

[0033] Em certas modalidades, a detecção de transições entre uma amostra de um 1 e 0, e vice versa, indica uma temporização que tem dados de leitura, que podem compreender a vista de dados, as bordas ou os dados de leitura entre as bordas. Essas operações de treinamento podem necessitar de quatro bits de resultado de treinamento para capturar par/ímpar por sinal. Dois bits podem ser usados se for apenas para capturar par ou ímpar. O interpolador de fase 112 é configurado para gerar uma amostra interpolada a dados de leitura no meio das margens da vista de dados.[0033] In certain embodiments, detection of transitions between a sample of a 1 and 0, and vice versa, indicates a timing that has read data, which may comprise the data view, edges or read data between the edges. These training operations may need four bits of training result to capture even/odd by sign. Two bits can be used if only to capture even or odd. Phase interpolator 112 is configured to generate an interpolated sample of readout data in the middle of the edges of the data view.

[0034] Na modalidade descrita acima, um bit do padrão é comparado para determinar a temporização determinada na qual começar a varrer pelas bordas da vista de dados. Em uma modalidade alternativa, o controlador de memória 110 pode não comparar apenas um bit, mas, em vez disso, todo o padrão (por exemplo, 0101, 1010), para que a vista de dados seja determinada nos blocos 414 e 418 na temporização na qual o oposto do padrão armazenado é detectado, não apenas um único bit. Adicionalmente, em tais modalidades em que todo o padrão é comparado, todo o padrão seria armazenado no bloco 416 nos registros de treinamento 116, não apenas um único bit.[0034] In the embodiment described above, a bit of the pattern is compared to determine the given timing at which to start scanning the edges of the data view. In an alternative embodiment, memory controller 110 may not compare just one bit, but instead the entire pattern (e.g., 0101, 1010), so that the view of data is determined at blocks 414 and 418 in timing in which the opposite of the stored pattern is detected, not just a single bit. Additionally, in such embodiments where the entire pattern is compared, the entire pattern would be stored in block 416 in training registers 116, not just a single bit.

[0035] A Figura 5 ilustra uma modalidade de operações realizadas pela lógica de controlador de memória 110 e pela lógica de controlador de módulo de memória 202 para permitir que a lógica de controlador de memória 110 em conjunto com o módulo de memória 200 realize o treinamento de leitura grosseira do controlador de memória 104 para determinar um deslocamento ou temporização para esperar antes do controlador de memória 104 ativar dados de leitura após um sinal de garantia enviado para recuperar dados de leitura. Mediante a inicialização (no bloco 500) do treinamento de leitura grosseira, a lógica de controlador de memória 110 gera (no bloco 502) um ID de leitura aleatório com o uso do LFSR 114. O ID de leitura gerado é armazenado temporariamente (no bloco 504) nos registros de treinamento 116. A lógica de controlador de memória 110 envia (no bloco 506) um comando de leitura com o ID de leitura gerado para o módulo de memória 200. Embora o controlador de módulo de memória 210 opere em um modo de treinamento de leitura grosseira (no bloco 508), mediante o recebimento (no bloco 510) do comando de leitura e do ID de leitura, o controlador de módulo de memória 210 realiza o comando de leitura (no bloco 512).[0035] Figure 5 illustrates a modality of operations performed by the memory controller logic 110 and the memory module controller logic 202 to allow the memory controller logic 110 in conjunction with the memory module 200 to perform training coarse read data from the memory controller 104 to determine an offset or timing to wait before the memory controller 104 activates read data after an escrow signal is sent to retrieve read data. Upon initialization (at block 500) of coarse read training, the memory controller logic 110 generates (at block 502) a random read ID using the LFSR 114. The generated read ID is temporarily stored (at block 504) in the training records 116. The memory controller logic 110 sends (at block 506) a read command with the generated read ID to the memory module 200. Although the memory module controller 210 operates in a mode coarse read training method (at block 508), upon receipt (at block 510) of the read command and the read ID, the memory module controller 210 performs the read command (at block 512).

[0036] Após enviar o comando de leitura com o ID de leitura (no bloco 506), a lógica de controlador de memória 110 transmite (no bloco 514) um sinal de garantia para o módulo de memória 200 pela interface de barramento 108. Mediante o recebimento (no bloco 516) do sinal de garantia, os dados solicitados são devolvidos (no bloco 518) no barramento de dados 306 e o ID de leitura recebido é devolvido (no bloco 520) na raia de faixa lateral 300. O sinal de ID de leitura é devolvido em disparo contínuo. Em certas modalidades, o ID de leitura é devolvido primeiro antes dos dados de leitura no sinal de ID de leitura de faixa lateral 300. Desse modo, o controlador de módulo de memória 200 retorna o ID de leitura para o controlador de memória 104 sem filtragem ou interpretação dos dados. Em certas modalidades, a lógica de controlador de memória 110 pode fornecer o sinal de garantia sem esperar por um reconhecimento (ACK) a por parte do módulo de memória 200 para o comando de leitura.[0036] After sending the read command with the read ID (in block 506), the memory controller logic 110 transmits (in block 514) a guarantee signal to the memory module 200 through the bus interface 108. upon receipt (at block 516) of the escrow signal, the requested data is returned (at block 518) on data bus 306 and the received read ID is returned (at block 520) on sideband lane 300. Read ID is returned in burst. In certain embodiments, the read ID is returned first before the read data in the sideband read ID signal 300. In this way, the memory module controller 200 returns the read ID to the memory controller 104 without filtering. or interpretation of the data. In certain embodiments, memory controller logic 110 may provide the assurance signal without waiting for an acknowledgment (ACK) from memory module 200 for the read command.

[0037] Mediante o controlador de memória 104 receber (no bloco 522) o ID de leitura na raia de faixa lateral 300, a lógica de controlador de memória 110 determina (no bloco 524) se o ID de leitura recebido corresponde ao ID de leitura transmitido armazenado nos registros de treinamento 116. Se (a partir da ramificação "não" do bloco 524) não houver correspondência, então, a lógica de controlador de memória 110 modifica (no bloco 526) uma configuração de atraso de ciclo para ser o número de ciclos a partir de quando a garantia foi enviada para quando o ID de leitura foi recebido. As configurações de atraso de ciclo são uma configuração de temporização grosseira de quando a lógica de controlador de memória 110 tenta ler os dados, e essa temporização de atraso de ciclo grosseira ou tempo de nível de ciclo é ajustada no bloco 526 até que a temporização corresponda a quando o ID de leitura for recebida, ou a configuração de latência de viagem de ida e volta a partir de quando a garantia for enviada. A partir do bloco 526 o controle prossegue de volta para o bloco 502 para gerar continuamente IDs de leitura aleatórios para o treinamento de leitura grosseira até que haja uma correspondência. Se (no bloco 524) o ID de leitura enviado e o ID de leitura recebido corresponderem, então, a lógica de controlador de memória 110 determina (no bloco 526) um deslocamento de leitura como um tempo diferencial do envio do sinal de garantia para quando o ID de leitura correspondente recebeu. Após determinar o deslocamento de leitura, a lógica de controlador de memória 110 pode enviar (no bloco 530) um registro de modo comando para o módulo de memória 200 para determinar o treinamento de leitura grosseira. O controlador de módulo de memória 200 programa (no bloco 540) os registros de modo 212 mediante o recebimento do comando para terminar (no bloco 542) o treinamento de leitura grosseira.[0037] Upon memory controller 104 receiving (at block 522) the read ID in sideband lane 300, memory controller logic 110 determines (at block 524) whether the received read ID matches the read ID transmitted stored in training records 116. If (from the "no" branch of block 524) there is no match, then memory controller logic 110 modifies (at block 526) a cycle delay setting to be the number of cycles from when the guarantee was sent to when the read ID was received. The cycle delay settings are a coarse timing setting of when memory controller logic 110 attempts to read the data, and this coarse cycle delay timing or cycle level time is adjusted in block 526 until the timing matches to when the read ID is received, or the round-trip latency setting from when the escrow is sent. From block 526 control proceeds back to block 502 to continuously generate random read IDs for coarse read training until there is a match. If (at block 524) the sent read ID and the received read ID match, then memory controller logic 110 determines (at block 526) a read offset as a differential time from sending the escrow signal to when the corresponding read ID received. After determining the read offset, memory controller logic 110 may send (at block 530) a command mode register to memory module 200 to determine coarse read training. The memory module controller 200 programs (at block 540) the mode registers 212 upon receipt of the command to terminate (at block 542) the coarse read training.

[0038] O treinamento de leitura fina produz configurações para controlar o interpolador de fase 112 para gerar um sinal de amostra interpolado para ler dentro da vista de dados quando os dados de leitura forem transmitidos e o resultado da etapa de treinamento de leitura grosseira for um deslocamento de leitura que é usado para determinar quando começar a receber dados de leitura após o sinal de garantia ser enviado. Após o treinamento de leitura fina e grosseira, as operações normais de leitura podem começar a usar o as configurações determinadas do interpolador de fase 112 e o deslocamento de leitura.[0038] The fine reading training produces settings to control the phase interpolator 112 to generate an interpolated sample signal to read within the data view when the reading data is transmitted and the result of the coarse reading training step is a read offset which is used to determine when to start receiving read data after the escrow signal is sent. After fine and coarse read training, normal read operations can begin using the determined settings of phase interpolator 112 and read offset.

[0039] A Figura 6 ilustra uma modalidade de operações realizadas pela lógica de controlador de memória 110 e pela lógica de controlador de módulo de memória 202 para realizar o treinamento de leitura avançado durante operações normais de leitura para melhorar ainda mais as configurações de interpolador de fase 112 usadas para gerar o sinal de amostra usado para amostrar o sinal de dados de leitura. Mediante o início (no bloco 600) do treinamento avançado durante operações normais de leitura/gravação com o uso das configurações determinadas de interpolador de fase e o deslocamento de leitura, a lógica de controlador de memória 110 realiza (no bloco 602) as operações nos blocos 502 a 514 na Figura 5 para gerar e transmitir o sinal de ID de leitura com o comando de leitura. Embora no modo de treinamento avançado durante operações normais de leitura/gravação (no bloco 604), o controlador de módulo de memória 210 realize (no bloco 606) as operações nos blocos 510, 512, 516, 518 na Figura 5 para processar um comando de leitura recebido e devolver o ID de leitura na raia de faixa lateral 300.[0039] Figure 6 illustrates a modality of operations performed by the memory controller logic 110 and the memory module controller logic 202 to perform advanced read training during normal read operations to further improve the interpolator settings of phase 112 used to generate the sample signal used to sample the read data signal. Upon initiating (at block 600) advanced training during normal read/write operations using the determined phase interpolator and read offset settings, memory controller logic 110 performs (at block 602) the operations on blocks 502 to 514 in Figure 5 for generating and transmitting the read ID signal with the read command. While in advanced training mode during normal read/write operations (at block 604), the memory module controller 210 performs (at block 606) the operations at blocks 510, 512, 516, 518 in Figure 5 to process a command received and return the read ID in side lane lane 300.

[0040] Mediante o controlador de memória 104 receber (no bloco 608) o ID de leitura na raia de faixa lateral 300, se (no bloco 610) o ID de leitura recebido corresponder ao ID de leitura transmitido armazenado nos registros de treinamento 116, então, uma temporização na qual o ID de leitura foi lido é determinada (no bloco 612). A lógica de controlador de memória 110, então, realiza (no bloco 614) as operações nos blocos 418 a 426 para determinar as bordas a partir da temporização determinada de ID de leitura, uma vista de dados a partir das bordas determinadas e uma configuração para controlar o interpo- lador de fase para gerar sinais interpolados usados para amostrar dados na vista de dados determinada. Essas operações para ajustar o interpolador de fase 112 com o uso dos IDs de leitura gerados aleatoriamente são realizadas continuamente para determinar as margens da vista de dados e recentralizar as configurações do interpolador de fase 112 com padrões mais agressivos e realistas na forma dos IDs de leitura gerados aleatoriamente, em oposição aos padrões opostos de repetição usados durante o treinamento de leitura fina.[0040] Upon the memory controller 104 receiving (at block 608) the read ID in the sideband lane 300, if (at block 610) the received read ID matches the transmitted read ID stored in the training records 116, then, a time at which the read ID was read is determined (at block 612). Memory controller logic 110 then performs (at block 614) the operations in blocks 418 to 426 to determine edges from the determined read ID timing, a view of data from the determined edges, and a setting for control the phase interpolator to generate interpolated signals used to sample data in the given data view. These operations to adjust the phase interpolator 112 using the randomly generated read IDs are performed continuously to determine the margins of the data view and re-center the phase interpolator settings 112 with more aggressive and realistic patterns in the form of the read IDs. randomly generated, as opposed to the opposite repetition patterns used during fine reading training.

[0041] Se (a partir da ramificação "não" do bloco 610) não houver correspondência, então, a lógica de controlador de memória 110 modifica (no bloco 616) uma configuração de atraso de ciclo para ser o número de ciclos a partir de quando a garantia foi enviada para quando o ID de leitura foi recebido. As configurações de atraso de ciclo são uma configuração de temporização grosseira de quando a lógica de controlador de memória 110 tenta ler os dados, e essa temporização de atraso de ciclo grosseira ou tempo de nível de ciclo é ajustada no bloco 526 até que a temporização corresponda a quando o ID de leitura for recebida, ou a configuração de latência de viagem de ida e volta a partir de quando a garantia for enviada. A partir do bloco 616 o controle prossegue de volta para o bloco 602 para gerar continuamente IDs de leitura aleatórios para o treinamento de grão fino avançado até que haja uma correspondência.[0041] If (from the "no" branch of block 610) there is no match, then memory controller logic 110 modifies (at block 616) a cycle delay setting to be the number of cycles from when the escrow was sent to when the scan ID was received. The cycle delay settings are a coarse timing setting of when memory controller logic 110 attempts to read the data, and this coarse cycle delay timing or cycle level time is adjusted in block 526 until the timing matches to when the read ID is received, or the round-trip latency setting from when the escrow is sent. From block 616 control proceeds back to block 602 to continuously generate random read IDs for advanced fine grained training until there is a match.

[0042] As modalidades descritas permitem o treinamento dos sinais de ID de leitura de faixa lateral na linha de ID de leitura 300 para alcançar baixas taxas de erro de bits no barramento 100. O treinamento de leitura descrito é eficaz em conseguir amostragem centrada por vista com um padrão simples. As modalidades descritas podem gerar adicionalmente padrões de alta tensão no ID de leitura barramento 300, a fim de determinar margens de pior caso.[0042] The described embodiments allow training the sideband read ID signals on the read ID line 300 to achieve low bit error rates on the bus 100. The described read training is effective in achieving view-centered sampling with a simple pattern. The described embodiments can additionally generate high voltage patterns on bus read ID 300 in order to determine worst case margins.

[0043] Deve ser observado que a referência ao longo deste relatório descritivo a "uma (1) modalidade" e "uma modalidade" significa que um determinado recurso, estrutura ou características descrito em ligação com a modalidade está incluído em uma pelo menos uma (1) modalidade presente invenção. Portanto, é enfatizado e deve ser observado que duas ou mais referências a "uma modalidade" ou "uma (1) modalidade" ou "uma modalidade alternativa" em várias partes desse relatório descritivo não são necessariamente referentes à mesma mo-dalidade em sua totalidade. Além disso, os atributos, estruturas, ou características particulares podem ser combinados conforme adequado em uma ou mais modalidades da invenção.[0043] It should be noted that the reference throughout this specification to "one (1) embodiment" and "an embodiment" means that a particular feature, structure or characteristics described in connection with the embodiment is included in at least one ( 1) Embodiment of the present invention. Therefore, it is emphasized and it should be noted that two or more references to "one modality" or "one (1) modality" or "an alternative modality" in various parts of this specification are not necessarily referring to the same modality in its entirety. . Furthermore, particular attributes, structures, or characteristics may be combined as appropriate in one or more embodiments of the invention.

[0044] De modo similar, deve ser verificado que na descrição supracitado de modalidades da invenção, vários recursos são, algumas vezes, agrupados juntos em uma única modalidade, Figura ou descrição das mesmas com o propósito de simplificação da revelação auxiliando no entendimento de um ou mais dos diversos aspectos inventivos. Esse método de revelação, entretanto, não deve ser interpretado como o reflexo de uma intenção de que a matéria reivindicada exige mais recursos do que são expressamente citados em cada reivindicação. Em vez disso, conforme as reivindicações a seguir refletem, os aspectos inventivos repousam em menos que todos os recursos de uma única modalidade anterior revelada. Dessa forma, as reivindicações após a descrição detalhada estão por meio desta expressamente incorporadas nessa descrição detalhada.[0044] Similarly, it should be noted that in the aforementioned description of embodiments of the invention, several features are sometimes grouped together in a single embodiment, Figure or description thereof for the purpose of simplifying the disclosure helping to understand a or more of several inventive aspects. This method of disclosure, however, should not be construed as reflecting an intention that the matter claimed requires more resources than are expressly named in each claim. Rather, as the following claims reflect, the inventive aspects rest on less than all the features of a single prior disclosed embodiment. Accordingly, the claims following the detailed description are hereby expressly incorporated into this detailed description.

[0045] As operações descritas do controlador de memória 104 e os módulos de memória 200 podem ser implementados como um método, aparelho ou mídia de armazenamento legível por computador com o uso de técnicas padrão de programação e/ou engenharia para produzir software, firmware, hardware ou qualquer combinação dos mesmos. As operações descritas podem ser implantadas como código ou lógica mantidos em uma "mídia de armazenamento legível por computador", que podem executar diretamente as funções ou em que um processador pode ler e executar o código a partir da mídia legível de armazenamento em computador. A mídia de armazenamento legível por computador inclui pelo menos um dentre conjunto de circuitos eletrônicos, materiais de armazenamento, materiais inorgânicos, mate- riais orgânicos, materiais biológicos, um invólucro, um alojamento, um revestimento e hardware. Uma mídia de armazenamento legível por computador pode compreender, mas sem limitação, uma mídia de ar-mazenamento magnética (por exemplo, unidades de disco rígido, disquetes, fita, etc.), armazenamento magnético (CD-ROMs, DVDs, discos ópticos, etc.), dispositivos de memória voláteis e não voláteis (por exemplo, EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Memória Flash, firmware, lógica programável, etc.), Diapositivos em Estado Sólido (SSD), etc. A mídia de armazenamento legível por computador pode compreender adicionalmente lógica digital implantada em um dispositivo de hardware (por exemplo, um chip de circuito integrado, um dispositivo de lógica programável, uma Matriz de Portal Programável (PGA), Matriz de Portal Programável por Campo (FPGA), Circuito Integrado de Aplicação Específica (ASIC), etc.). Ainda adicionalmente, o código que implanta as operações descritas pode ser implementado em "sinais de transmissão", em que sinais de transmissão podem se programar através do espaço ou através de uma mídia de transmissão, como uma fibra óptica, um fio de cobre, etc. Os sinais de transmissão no qual o código ou a lógica são codificados podem compreender adicionalmente um sinal sem fio, transmissão por satélite, ondas de rádio, sinais infravermelhos, Bluetooth, etc. O código de programa embutido em uma mídia de armazenamento legível por computador pode ser transmitido como sinais de transmissão a partir de uma estação de transmissão ou computador para uma estação de recebimento ou computador. Uma mídia de armazenamento legível por computador não é composta apenas por sinais de transmissão. As pessoas versadas na técnica reconhecerão que muitas modificações podem ser feitas a essa configuração sem sair do escopo da presente invenção, e que o artigo de fabricação pode compreender informações adequadas que carregam a mídia conhecida na técnica.[0045] The described operations of the memory controller 104 and the memory modules 200 can be implemented as a method, apparatus or computer-readable storage media using standard programming and/or engineering techniques to produce software, firmware, hardware or any combination thereof. The operations described may be implemented as code or logic maintained on "computer-readable storage media" which can directly execute the functions or where a processor can read and execute code from the computer-readable storage media. The computer-readable storage media includes at least one of electronic circuitry, storage materials, inorganic materials, organic materials, biological materials, an enclosure, a housing, a coating, and hardware. Computer-readable storage media may include, but are not limited to, magnetic storage media (e.g., hard disk drives, floppy disks, tape, etc.), magnetic storage (CD-ROMs, DVDs, optical discs, etc.), volatile and non-volatile memory devices (e.g. EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), Solid State Devices (SSD), etc. The computer-readable storage media may further comprise digital logic embedded in a hardware device (e.g., an integrated circuit chip, a programmable logic device, a Programmable Gate Array (PGA), Field Programmable Gate Array ( FPGA), Application Specific Integrated Circuit (ASIC), etc.). Still further, the code that implements the described operations can be implemented in "transmission signals", where transmission signals can be programmed through space or through a transmission medium, such as an optical fiber, a copper wire, etc. . The transmission signals in which the code or logic is encoded may additionally comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. Program code embedded in a computer-readable storage medium may be transmitted as broadcast signals from a transmitting station or computer to a receiving station or computer. A computer-readable storage medium is not just made up of broadcast signals. Those skilled in the art will recognize that many modifications can be made to this configuration without departing from the scope of the present invention, and that the article of manufacture can comprise adequate information carrying media known in the art.

EXEMPLOSEXAMPLES

[0046] Os exemplos a seguir pertencem às modalidades adicionais.[0046] The following examples pertain to additional embodiments.

[0047] O Exemplo 1 é um dispositivo acoplado a pelo menos um módulo de memória por um barramento, que compreende: uma interface de barramento ao pelo menos um módulo de memória; uma lógica de controlador de memória que, quando opera, realiza operações, sendo que as operações compreendem: programar um módulo de memória a iniciar um modo de treinamento no qual o módulo de memória transmite padrões de bits contínuos em uma raia de faixa lateral da interface de barramento; receber os padrões de bits pela interface de barramento; determinar, a partir dos padrões de bits recebidos, uma transição de valores no padrão de bits para determinar uma vista de dados entre as transições determinadas dos valores; e determinar uma configuração para controlar um interpolador de fase para gerar sinais interpolados usados para amostrar dados dentro da vista de dados determinada.[0047] Example 1 is a device coupled to at least one memory module by a bus, comprising: a bus interface to the at least one memory module; a memory controller logic that, when it operates, performs operations, the operations comprising: programming a memory module to initiate a training mode in which the memory module transmits continuous bit patterns on a sideband lane of the interface bus; receive bit patterns over the bus interface; determining, from the received bit patterns, a transition of values in the bit pattern to determine a view of data between the determined transitions of values; and determining an arrangement for controlling a phase interpolator to generate interpolated signals used to sample data within the determined data view.

[0048] No Exemplo 2, a matéria do Exemplo 1 pode incluir opcionalmente que as operações compreendem adicionalmente: programar o módulo de memória para terminar o modo de treinamento e enviar os padrões de bits em resposta à determinação da vista de dados e da configuração para controlar o interpolador de fase.[0048] In Example 2, the subject matter of Example 1 may optionally include that operations further comprise: programming the memory module to terminate training mode and sending bit patterns in response to determining the data view and configuration to control the phase interpolator.

[0049] No Exemplo 3, a matéria do Exemplo 1 pode incluir opcionalmente que a determinação, a partir dos padrões de bits de relógio recebidos, da transição compreende: armazenar um valor de leitura a partir do padrão de bits em um registro; e determinar se um valor de leitura subsequentemente a partir de uma transmissão subsequente do padrão de bits corresponde ao valor de leitura no registro, em que a vista de dados é determinada entre bordas de dois valores de leitura que correspondem a valores armazenados no registro.[0049] In Example 3, the subject matter of Example 1 may optionally include that determining, from the received clock bit patterns, the transition comprises: storing a read value from the bit pattern into a register; and determining whether a subsequently read value from a subsequent transmission of the bit pattern corresponds to the read value in the register, wherein the data view is determined between edges of two read values that correspond to values stored in the register.

[0050] No Exemplo 4, a matéria do Exemplo 1 pode incluir opcionalmente que os padrões de bits compreendem um primeiro padrão de bits contínuo na raia de faixa lateral da interface de barramento usada para sinais de identificador de leitura e um segundo padrão de bits contínuo na raia de faixa lateral, em que o primeiro e o segundo padrões de bits contínuos têm valores opostos.[0050] In Example 4, the subject matter of Example 1 may optionally include that the bit patterns comprise a first continuous bit pattern in the sideband lane of the bus interface used for read identifier signals and a second continuous bit pattern in the sideband lane, where the first and second continuous bit patterns have opposite values.

[0051] No Exemplo 5, a matéria do Exemplo 4 pode incluir opcionalmente que o primeiro padrão de bits contínuo é enviado em uma primeira linha de sinal de identificador de leitura e compreende um padrão 1010 contínuo e em que o segundo padrão contínuo é enviado em uma segunda linha de sinal de identificador de leitura e compreende um padrão 0101 contínuo.[0051] In Example 5, the subject matter of Example 4 may optionally include that the first continuous bit pattern is sent on a first read identifier signal line and comprises a continuous 1010 pattern and that the second continuous pattern is sent on a second read identifier signal line and comprises a continuous 0101 pattern.

[0052] No Exemplo 6, a matéria do Exemplo 5 pode incluir opcionalmente que o primeiro e o segundo padrões contínuos alternam entre um 0 e um 1 a cada intervalo de relógio para criar um padrão de relógio que tem um período que é o dobro do período de um intervalo de relógio na interface de barramento.[0052] In Example 6, the subject matter of Example 5 can optionally include that the first and second continuous patterns alternate between a 0 and a 1 every clock interval to create a clock pattern that has a period that is twice the period of a clock interval on the bus interface.

[0053] No Exemplo 7, a matéria do Exemplo 1 pode incluir opcionalmente que a interface de barramento inclui linhas de comando nas quais são transmitidos comandos, linhas de dados nas quais são transmitidos dados e linhas de sinal de identificador de leitura, em que os padrões de bits são transmitidos nas linhas de sinal de identificador de leitura em uma frequência de comando menor que uma frequência de relógio.[0053] In Example 7, the subject matter of Example 1 may optionally include that the bus interface includes command lines on which commands are transmitted, data lines on which data is transmitted, and read identifier signal lines on which Bit patterns are transmitted on the read identifier signal lines at a command frequency less than a clock frequency.

[0054] No Exemplo 8, a matéria do Exemplo 1 pode incluir opcionalmente que as operações compreendam adicionalmente: em resposta à determinação da configuração para controlar o interpolador de fase, enviar um comando de leitura com um identificador de leitura para o módulo de memória; receber dados de leitura a partir do módulo de memória que inclui um identificador de leitura devolvido; e determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura devolvido corresponde ao identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem dos dados de leitura na vista de dados com o uso da configuração determinada para o interpolador de fase.[0054] In Example 8, the subject matter of Example 1 may optionally include that operations further comprise: in response to determining the configuration to control the phase interpolator, sending a read command with a read identifier to the memory module; receiving read data from the memory module including a returned read handle; and determining a read offset in response to determining that the returned read identifier matches the read identifier sent with the read command, wherein the read offset is used to determine when to start sampling the read data in the read view. data using the configuration determined for the phase interpolator.

[0055] O Exemplo 9 é um dispositivo acoplado a pelo menos um módulo de memória por um barramento, que compreende: uma interface de barramento ao pelo menos um módulo de memória; uma lógica de controlador de memória que, quando opera, realiza operações de treinamento de leitura grosseira, sendo que as operações compreendem: enviar um comando de leitura e um identificador de leitura para o módulo de memória; receber dados de leitura e um identificador de leitura recebido a partir do módulo de memória pela interface de barramento; e determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura recebido, a partir do módulo de memória, inclui o identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem de dados em uma vista de dados de dados de leitura recebidos.[0055] Example 9 is a device coupled to at least one memory module by a bus, comprising: a bus interface to the at least one memory module; a memory controller logic that, when operated, performs coarse read training operations, the operations comprising: sending a read command and a read handle to the memory module; receiving read data and a read handle received from the memory module over the bus interface; and determining a read offset in response to determining that the read identifier received from the memory module includes the read identifier sent with the read command, wherein the read offset is used to determine when to start the read data sampling in a data view of received read data.

[0056] No Exemplo 10, a matéria do Exemplo 9 pode incluir opcio-nalmente que as operações compreendem adicionalmente: em resposta à determinação de que o identificador de leitura recebido não corresponde ao identificador de leitura enviado com o comando de leitura, responder pelo menos uma iteração de geração de um novo identificador de leitura a incluir em um novo comando de leitura enviado para o módulo de memória até que o deslocamento de leitura seja determinado em resposta aos dados de leitura recebidos a partir do módulo de memória que inclui o novo identificador de leitura gerado.[0056] In Example 10, the matter of Example 9 may optionally include that the operations additionally comprise: in response to the determination that the read identifier received does not match the read identifier sent with the read command, respond at least an iteration of generating a new read identifier to include in a new read command sent to the memory module until the read offset is determined in response to read data received from the memory module that includes the new identifier generated reading.

[0057] No Exemplo 11, a matéria do Exemplo 10 pode incluir opci- onalmente um Registro de Deslocamento de Retorno Linear (LFSR) usado para gerar o identificador de leitura e os novos identificadores de leitura para fornecer valores de identificador de leitura aleatórios.[0057] In Example 11, the subject of Example 10 can optionally include a Linear Return Shift Register (LFSR) used to generate the read identifier and new read identifiers to provide random read identifier values.

[0058] No Exemplo 12, a matéria do Exemplo 9 pode incluir opcio-nalmente que o treinamento de leitura grosseira é terminado em resposta ao identificador de leitura recebido que inclui o identificador de leitura enviado com o comando de leitura.[0058] In Example 12, the subject matter of Example 9 can optionally include that coarse read training is terminated in response to the received read identifier which includes the read identifier sent with the read command.

[0059] No Exemplo 13, a matéria do Exemplo 9 pode incluir opcio-nalmente que o identificador de leitura faz com que o módulo de memória retorne o identificador de leitura quando devolver os dados de leitura em resposta ao comando de leitura.[0059] In Example 13, the subject of Example 9 can optionally include that the read handle causes the memory module to return the read handle when it returns read data in response to the read command.

[0060] No Exemplo 14, a matéria do Exemplo 9 pode incluir opcio-nalmente que o identificador de leitura seja transmitido a partir do módulo de memória na raia de faixa lateral.[0060] In Example 14, the matter of Example 9 can optionally include that the read identifier is transmitted from the memory module in the sideband lane.

[0061] No Exemplo 15, a matéria do Exemplo 8 pode incluir opcio-nalmente que a interface de barramento inclui linhas de comando nas quais os comandos são transmitidos, linhas de dados nas quais os dados são transmitidos e linhas de sinal de identificador de leitura, em que o módulo de memória devolve o identificador de leitura nas linhas de sinal de identificador de leitura.[0061] In Example 15, the subject matter of Example 8 can optionally include that the bus interface includes command lines on which commands are transmitted, data lines on which data is transmitted, and read identifier signal lines , where the memory module returns the read handle on the read handle signal lines.

[0062] No Exemplo 16, a matéria do Exemplo 15 pode incluir opci-onalmente que o identificador de leitura seja devolvido em sinais de relógio a partir do módulo de memória.[0062] In Example 16, the matter of Example 15 can optionally include that the read identifier is returned in clock signals from the memory module.

[0063] No Exemplo 17, a matéria do Exemplo 9 pode incluir opcio-nalmente que as operações compreendem adicionalmente: enviar um sinal de garantia para o módulo de memória após o envio do comando de leitura, em que o módulo de memória envia o sinal de identificador de leitura em resposta ao sinal de garantia, em que o deslocamento de leitura mede um tempo quando os dados chegam após o sinal de garantia ser enviado.[0063] In Example 17, the matter of Example 9 may optionally include that the operations additionally comprise: sending a guarantee signal to the memory module after sending the read command, in which the memory module sends the signal of read handle in response to the escrow signal, where the read offset measures a time when the data arrives after the escrow signal is sent.

[0064] O Exemplo 18 é um dispositivo acoplado a pelo menos um módulo de memória por um barramento, que compreende: uma interface de barramento ao pelo menos um módulo de memória; um inter- polador de fase; uma lógica de controlador de memória que, quando opera, realiza operações de treinamento de leitura grosseira, sendo que as operações compreendem: usar um identificador de leitura devolvido a partir do módulo de memória em uma raia de faixa lateral da interface de barramento separada do comando e linhas de sinal de dados da interface de barramento para determinar um deslocamento de leitura no qual dados de leitura sejam amostrados na interface de barramento; e enquanto usa o deslocamento de leitura para determinar quando iniciar os dados de amostragem em uma vista de dados de dados de leitura, realizar: o envio de um comando de leitura com um identificador de leitura para o módulo de memória; o recebimento de um identificador de leitura recebido a partir do módulo de memória na raia de faixa lateral da interface de barramento; em resposta à determinação de que o identificador de leitura recebido corresponde ao identificador de leitura enviado com o comando de leitura: determinar a vista de dados como onde o identificador de leitura recebido foi lido; e determinar uma configuração para controlar o interpolador de fase para gerar sinais interpolados usados para amostrar dados na vista de dados determinada na qual o identificador de leitura recebido foi lido.[0064] Example 18 is a device coupled to at least one memory module by a bus, comprising: a bus interface to the at least one memory module; a phase interpolator; a memory controller logic that, when it operates, performs coarse read training operations, the operations comprising: using a read handle returned from the memory module in a bus interface side lane lane separate from the command and bus interface data signal lines for determining a read offset at which read data is sampled at the bus interface; and while using the read offset to determine when to start sampling data in a read data data view, performing: sending a read command with a read handle to the memory module; receiving a read handle received from the memory module in the sideband lane of the bus interface; in response to determining that the received read identifier matches the read identifier sent with the read command: determining the data view as where the received read identifier was read; and determining a setup for controlling the phase interpolator to generate interpolated signals used to sample data in the determined data view in which the received read identifier was read.

[0065] No Exemplo 19, a matéria da reivindicação 18 pode incluir opcionalmente que o uso do identificador de leitura para determinar o deslocamento de leitura compreenda: enviar um comando de leitura com um identificador de leitura para o módulo de memória; receber dados de leitura e um identificador de leitura recebido a partir do módulo de memória pela interface de barramento, em que o identificador de leitura recebido seja recebido na raia de faixa lateral da interface de barramento; determinar o deslocamento de leitura como uma tempori- zação na qual os dados de leitura recebidos correspondem ao identificador de leitura enviado com o comando de leitura.[0065] In Example 19, the subject matter of claim 18 may optionally include that using the read identifier to determine the read offset comprises: sending a read command with a read identifier to the memory module; receiving read data and a read identifier received from the memory module by the bus interface, wherein the received read identifier is received in the sideband lane of the bus interface; determine the read offset as a time at which the received read data matches the read identifier sent with the read command.

[0066] No Exemplo 20, a matéria da reivindicação 18 pode incluir opcionalmente que um Registro de Deslocamento de Retorno Linear (LFSR) usado para gerar os identificadores de leitura durante o trei-namento de leitura grosseira e quanto usa o deslocamento de leitura para determinar quando iniciar dados de amostragem na vista de dados.[0066] In Example 20, the subject matter of claim 18 may optionally include that a Linear Return Offset Register (LFSR) used to generate the read identifiers during coarse read training and how much use the read offset to determine when to start sampling data in the data view.

[0067] O Exemplo 21 é uma mídia de armazenamento legível por computador acoplada a pelo menos um módulo de memória por um a interface de barramento a um barramento, em que a mídia de armaze-namento legível por computador implanta uma lógica que, quando executada, realiza operações que compreendem: programar um módulo de memória a iniciar um modo de treinamento no qual o módulo de memória transmite padrões de bits contínuos em uma raia de faixa lateral da interface de barramento; receber os padrões de bits pela interface de barramento; determinar, a partir dos padrões de bits recebidos, uma transição de valores no padrão de bits para determinar uma vista de dados entre as transições determinadas dos valores; e determinar uma configuração para controlar um interpolador de fase para gerar sinais interpolados usados para amostrar dados dentro da vista de dados determinada.[0067] Example 21 is a computer-readable storage medium coupled to at least one memory module by a bus interface to a bus, in which the computer-readable storage medium implements a logic that, when executed , performs operations comprising: programming a memory module to initiate a training mode in which the memory module transmits continuous bit patterns on a sideband lane of the bus interface; receive bit patterns over the bus interface; determining, from the received bit patterns, a transition of values in the bit pattern to determine a view of data between the determined transitions of values; and determining an arrangement for controlling a phase interpolator to generate interpolated signals used to sample data within the determined data view.

[0068] No Exemplo 22, a matéria da reivindicação 21 pode incluir opcionalmente que os padrões de bits compreendem um primeiro padrão de bits contínuo na raia de faixa lateral da interface de barramen- to usada para sinais de identificador de leitura e um segundo padrão de bits contínuo na raia de faixa lateral, em que o primeiro e o segundo padrões de bits contínuos têm valores opostos.[0068] In Example 22, the subject matter of claim 21 can optionally include that the bit patterns comprise a first continuous bit pattern in the sideband lane of the bus interface used for read identifier signals and a second bit pattern continuous bits in the sideband lane, where the first and second continuous bit patterns have opposite values.

[0069] No Exemplo 23, a matéria da reivindicação 18 pode incluir opcionalmente que as operações compreendam adicionalmente: em resposta à determinação da configuração para controlar um interpola- dor de fase, enviar um comando de leitura com um identificador de leitura para o módulo de memória; receber dados de leitura a partir do módulo de memória que inclui um identificador de leitura devolvido; e determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura devolvido corresponde ao identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem dos dados de leitura na vista de dados com o uso da configuração determinada para o interpolador de fase.[0069] In Example 23, the subject matter of claim 18 may optionally include operations further comprising: in response to determining the configuration to control a phase interpolator, sending a read command with a read identifier to the read module memory; receiving read data from the memory module including a returned read handle; and determining a read offset in response to determining that the returned read identifier matches the read identifier sent with the read command, wherein the read offset is used to determine when to start sampling the read data in the read view. data using the configuration determined for the phase interpolator.

[0070] O Exemplo 24 é uma mídia de armazenamento legível por computador acoplada a pelo menos um módulo de memória por uma interface de barramento a um barramento para realizar operações de treinamento de leitura grosseira, em que a mídia de armazenamento legível por computador implanta uma lógica que, quando executada, realiza operações que compreendem: enviar um comando de leitura e um identificador de leitura para o módulo de memória; receber dados de leitura e um identificador de leitura recebido a partir do módulo de memória pela interface de barramento; e determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura recebido, a partir do módulo de memória, inclui o identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem de dados em uma vista de dados de dados de leitura recebidos.[0070] Example 24 is a computer readable storage medium coupled to at least one memory module via a bus interface to a bus to perform coarse read training operations, wherein the computer readable storage medium deploys a logic that, when executed, performs operations that include: sending a read command and a read handle to the memory module; receiving read data and a read handle received from the memory module over the bus interface; and determining a read offset in response to determining that the read identifier received from the memory module includes the read identifier sent with the read command, wherein the read offset is used to determine when to start the read data sampling in a data view of received read data.

[0071] No Exemplo 25, a matéria da reivindicação 24 pode incluir opcionalmente que as operações compreendem adicionalmente: em resposta à determinação de que o identificador de leitura recebido não corresponde ao identificador de leitura enviado com o comando de leitura, responder pelo menos uma iteração de geração de um novo identificador de leitura a incluir em um novo comando de leitura enviado para o módulo de memória até que o deslocamento de leitura seja de-terminado em resposta aos dados de leitura recebidos a partir do módulo de memória que inclui o novo identificador de leitura gerado.[0071] In Example 25, the subject matter of claim 24 may optionally include that the operations further comprise: in response to determining that the received read identifier does not match the read identifier sent with the read command, responding at least one iteration generating a new read identifier to include in a new read command sent to the memory module until the read offset is determined in response to read data received from the memory module that includes the new identifier generated reading.

[0072] O Exemplo 26 é um método para treinar uma interface de barramento a um barramento acoplado a pelo menos um módulo de memória por uma interface de barramento, que compreende: uma interface de barramento ao pelo menos um módulo de memória; uma lógica de controlador de memória que, quando opera, realiza operações, sendo que as operações compreendem: programar um módulo de memória a iniciar um modo de treinamento no qual o módulo de memória transmite padrões de bits contínuos em uma raia de faixa lateral da interface de barramento; receber os padrões de bits pela interface de barramento; determinar, a partir dos padrões de bits recebidos, uma transição de valores no padrão de bits para determinar uma vista de dados entre as transições determinadas dos valores; e determinar uma configuração para controlar um interpolador de fase para gerar sinais interpolados usados para amostrar dados dentro da vista de dados determinada.[0072] Example 26 is a method for training a bus interface to a bus coupled to at least one memory module by a bus interface, comprising: a bus interface to the at least one memory module; a memory controller logic that, when it operates, performs operations, the operations comprising: programming a memory module to initiate a training mode in which the memory module transmits continuous bit patterns on a sideband lane of the interface bus; receive bit patterns over the bus interface; determining, from the received bit patterns, a transition of values in the bit pattern to determine a view of data between the determined transitions of values; and determining an arrangement for controlling a phase interpolator to generate interpolated signals used to sample data within the determined data view.

[0073] No Exemplo 27, a matéria da reivindicação 26 pode incluir opcionalmente que os padrões de bits compreendem um primeiro padrão de bits contínuo na raia de faixa lateral da interface de barramen- to usada para sinais de identificador de leitura e um segundo padrão de bits contínuo na raia de faixa lateral, em que o primeiro e o segundo padrões de bits contínuos têm valores opostos.[0073] In Example 27, the subject matter of claim 26 can optionally include that the bit patterns comprise a first continuous bit pattern in the sideband lane of the bus interface used for read identifier signals and a second bit pattern continuous bits in the sideband lane, where the first and second continuous bit patterns have opposite values.

[0074] No Exemplo 28, a matéria das reivindicações 26 e 27 pode incluir opcionalmente uma mídia legível por máquina que inclui um código que, quando executado, faz com que uma máquina realize o método de acordo com qualquer uma das reivindicações 26 e 27.[0074] In Example 28, the subject matter of claims 26 and 27 may optionally include machine-readable media that includes code that, when executed, causes a machine to perform the method according to any one of claims 26 and 27.

[0075] O Exemplo 29 é um método para treinar uma interface de barramento a um barramento acoplado a pelo menos um módulo de memória por uma interface de barramento, que compreende: enviar um comando de leitura e um identificador de leitura para o módulo de memória; receber dados de leitura e um identificador de leitura recebido a partir do módulo de memória pela interface de barramento; e determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura recebido, a partir do módulo de memória, inclui o identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem de dados em uma vista de dados de dados de leitura recebidos.[0075] Example 29 is a method for training a bus interface to a bus coupled to at least one memory module by a bus interface, comprising: sending a read command and a read handle to the memory module ; receiving read data and a read handle received from the memory module over the bus interface; and determining a read offset in response to determining that the read identifier received from the memory module includes the read identifier sent with the read command, wherein the read offset is used to determine when to start the read data sampling in a data view of received read data.

[0076] No Exemplo 30, a matéria da reivindicação 29 pode incluir opcionalmente que as operações compreendem adicionalmente: em resposta à determinação de que o identificador de leitura recebido não corresponde ao identificador de leitura enviado com o comando de leitura, responder pelo menos uma iteração de geração de um novo identificador de leitura a incluir em um novo comando de leitura enviado para o módulo de memória até que o deslocamento de leitura seja determinado em resposta aos dados de leitura recebidos a partir do módulo de memória que inclui o novo identificador de leitura gerado.[0076] In Example 30, the subject matter of claim 29 may optionally include that the operations further comprise: in response to determining that the received read identifier does not match the read identifier sent with the read command, responding at least one iteration generating a new read handle to include in a new read command sent to the memory module until the read offset is determined in response to read data received from the memory module that includes the new read handle generated.

[0077] O Exemplo 31 é um aparelho acoplado a pelo menos um módulo de memória por um barramento, que compreende: meios para programar um módulo de memória a iniciar um modo de treinamento no qual o módulo de memória transmite padrões de bits contínuos em uma raia de faixa lateral da interface de barramento; meios para receber os padrões de bits pela interface de barramento; meios para determinar, a partir dos padrões de bits recebidos, uma transição de valores no padrão de bits para determinar uma vista de dados entre as transições determinadas dos valores; e meios para determinar uma configuração para controlar um interpolador de fase para gerar sinais interpolados usados para amostrar dados dentro da vista de dados de- terminada.[0077] Example 31 is an apparatus coupled to at least one memory module by a bus, comprising: means for programming a memory module to initiate a training mode in which the memory module transmits continuous bit patterns in a bus interface side lane lane; means for receiving the bit patterns over the bus interface; means for determining, from the received bit patterns, a transition of values in the bit pattern for determining a view of data between the determined transitions of values; and means for determining a setting for controlling a phase interpolator to generate interpolated signals used to sample data within the determined data view.

[0078] No Exemplo 32, a matéria da reivindicação 31 pode incluir opcionalmente meios para programar o módulo de memória para terminar o modo de treinamento e enviar os padrões de bits em resposta à determinação da vista de dados e da configuração para controlar o interpolador de fase.[0078] In Example 32, the subject matter of claim 31 may optionally include means for programming the memory module to terminate training mode and send bit patterns in response to determining the data view and configuration to control the data interpolator phase.

[0079] No Exemplo 33, a matéria da reivindicação 31 pode incluir opcionalmente que os meios para determinação, a partir dos padrões de bits de relógio recebidos, da transição compreendem: meios para armazenar um valor de leitura a partir do padrão de bits em um registro; e meios determinar se um valor de leitura subsequentemente a partir de uma transmissão subsequente do padrão de bits corresponde ao valor de leitura no registro, em que a vista de dados é determinada entre bordas de dois valores de leitura que correspondem a valores armazenados no registro.[0079] In Example 33, the subject matter of claim 31 may optionally include that the means for determining, from the received clock bit patterns, the transition comprises: means for storing a read value from the bit pattern in a record; and means for determining whether a subsequently read value from a subsequent transmission of the bit pattern corresponds to the read value in the register, wherein the data view is determined between edges of two read values that correspond to values stored in the register.

[0080] No Exemplo 34, a matéria da reivindicação 31 pode incluir opcionalmente meios para enviar um comando de leitura com um iden-tificador de leitura para o módulo de memória em resposta À determinação da configuração para controlar o interpolador de fase; meios para receber dados de leitura a partir do módulo de memória que inclui um identificador de leitura devolvido; e meios para determinar um deslocamento de leitura em resposta à determinação de que o identificador de leitura devolvido corresponde ao identificador de leitura enviado com o comando de leitura, em que o deslocamento de leitura é usado para determinar quando iniciar a amostragem dos dados de leitura na vista de dados com o uso da configuração determinada para o interpo- lador de fase.[0080] In Example 34, the subject matter of claim 31 may optionally include means for sending a read command with a read identifier to the memory module in response to the configuration determination for controlling the phase interpolator; means for receiving read data from the memory module including a returned read identifier; and means for determining a read offset in response to determining that the returned read identifier matches the read identifier sent with the read command, wherein the read offset is used to determine when to start sampling the read data in the read command. data view using the configuration determined for the phase interpolator.

[0081] No Exemplo 35, a matéria da reivindicação 34 pode incluir opcionalmente meios para realizar pelo menos uma iteração de geração de um novo identificador de leitura para incluir em um novo co- mando de leitura enviado para o módulo de memória até que o deslo-camento de leitura seja determinado em resposta aos dados de leitura recebidos a partir do módulo de memória que inclui o novo identificador de leitura gerado em resposta à determinação de que o identificador de leitura recebido não corresponde ao identificador de leitura enviado com o comando de leitura.[0081] In Example 35, the subject matter of claim 34 may optionally include means to perform at least one generation iteration of a new read identifier to include in a new read command sent to the memory module until the offset - read handle is determined in response to read data received from the memory module that includes the new read handle generated in response to the determination that the read handle received does not match the read handle sent with the read command .

[0082] No Exemplo 36, a matéria da reivindicação 31 pode incluir opcionalmente meios para usar um identificador de leitura devolvido a partir do módulo de memória em uma raia de faixa lateral da interface de barramento separada do comando e linhas de sinal de dados da interface de barramento para determinar um deslocamento de leitura no qual os dados de leitura são amostrados na interface de barramen- to; e meios para usar o deslocamento de leitura para determinar quando iniciar a amostragem de dados em uma vista de dados de dados de leitura realizando-se: envio de um comando de leitura com um identificador de leitura para o módulo de memória; recebimento de um identificador de leitura recebido a partir do módulo de memória na raia de faixa lateral da interface de barramento; em resposta à determinação do identificador de leitura recebido corresponde ao identificador de leitura enviado com o comando de leitura: determinar a vista de dados como onde o identificador de leitura recebido foi lido; e determinar uma configuração para controlar o interpolador de fase para gerar sinais interpolados usados para amostrar dados na vista de dados determinada na qual o identificador de leitura recebido foi lido.[0082] In Example 36, the subject matter of claim 31 may optionally include means for using a read identifier returned from the memory module on a bus interface side lane lane separate from the command and interface data signal lines bus interface to determine a read offset at which read data is sampled on the bus interface; and means for using the read offset to determine when to start sampling data in a data view of read data by performing: sending a read command with a read handle to the memory module; receiving a read handle received from the memory module in the sideband lane of the bus interface; in response to determining the received read identifier corresponds to the read identifier sent with the read command: determining the data view as where the received read identifier was read; and determining a setup for controlling the phase interpolator to generate interpolated signals used to sample data in the determined data view in which the received read identifier was read.

Claims (9)

1. Dispositivo de circuito integrado que compreende: uma interface para comunicação com um módulo de memória através de uma interface de barramento; e lógica de controlador de memória para realizar operações de treinamento de leitura, em que a lógica de controlador de memória é para: enviar um primeiro comando de leitura e um primeiro identificador de leitura ao módulo de memória através da interface de barramento em que o primeiro identificador de leitura é um identificador de leitura aleatório; enviar uma mensagem de garantia ao módulo de memória através da interface de barramento; receber um segundo identificador de leitura a partir do módulo de memória através de uma raia de faixa lateral da interface de barramento; determinar um deslocamento de leitura em resposta a uma determinação de que o segundo identificador de leitura a partir do módulo de memória inclui o primeiro identificadorde leitura; e determinar um tempo de amostragem de dados a partir do deslocamento de leitura; caracterizado pelo fato de que a lógica de controlador de memória é ainda para: determinar que o segundo identificador de leitura não inclui o primeiro identificador de leitura; realizar iterações de: gerar um terceiro identificador de leitura em que o terceiro identificador de leitura é um identificador de leituraaleatório, e enviar um segundo comando de leitura para o módulo de memória que inclui o terceiro identificador de leitura; e finalizar iterações após a determinação do deslocamento de leitura; sendo que o dispositivo de circuito integrado compreende ainda: um registro de deslocamento de retorno linear (LFSR) e o registro de deslocamento de retorno linear (LFSR) é para gerar o primeiro identificador de leitura e o terceiro identificadores de leitura.1. Integrated circuit device comprising: an interface for communicating with a memory module via a bus interface; and memory controller logic for performing read training operations, wherein the memory controller logic is for: sending a first read command and a first read handle to the memory module over the bus interface on which the first read handle is a random read handle; sending a guarantee message to the memory module via the bus interface; receiving a second read-only identifier from the memory module via a sideband lane of the bus interface; determining a read offset in response to a determination that the second read identifier from the memory module includes the first read identifier; and determining a data sampling time from the reading offset; characterized in that the memory controller logic is further to: determine that the second read handle does not include the first read handle; performing iterations of: generating a third read identifier wherein the third read identifier is a random read identifier, and sending a second read command to the memory module that includes the third read identifier; and ending iterations after determining the reading offset; the integrated circuit device further comprising: a linear return shift register (LFSR) and the linear return shift register (LFSR) is for generating the first read identifier and the third read identifier. 2. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que a lógica de controlador de memória é ainda para: terminar operações de treinamento de leitura em resposta à inclusão do primeiro identificador de leitura no segundo identificador de leitura.2. Integrated circuit device according to claim 1, characterized in that the memory controller logic is further for: terminating read training operations in response to the inclusion of the first read identifier in the second read identifier. 3. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que a interface de barramento inclui linhas de comando nas quais são transmitidos comandos, linhas de dados nas quais são transmitidos dados, e uma linha de sinal de identificador de leitura, em que o segundo identificador de leitura a partir do módulo de memória é recebido através da linha de sinal de identificador de leitura.3. Integrated circuit device according to claim 1, characterized in that the bus interface includes command lines on which commands are transmitted, data lines on which data is transmitted, and a line of signal identifier of read, wherein the second read identifier from the memory module is received over the read identifier signal line. 4. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que o deslocamento de leitura mede uma quantidade de tempo entre a saída do sinal de garantia e a chegada de dados.4. Integrated circuit device, according to claim 1, characterized in that the reading shift measures an amount of time between the output of the guarantee signal and the arrival of data. 5. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que a lógica de controlador de memória é ainda para: receber dados de leitura a partir do módulo de memória através de uma linha de dados da interface de barramento.5. Integrated circuit device according to claim 1, characterized in that the memory controller logic is further for: receiving read data from the memory module via a data line from the bus interface. 6. Sistema que compreende: um processador; um módulo de memória; uma interface de barramento; e um controlador de memória, em que o controlador de memória é conectado ao processador, em que o módulo de memória é conectado ao controlador de memória através da interface de barramento, e em que o controlador de memória compreende lógica, emque a lógica de controlador de memória é para: enviar um primeiro comando de leitura e um primeiro identificador de leitura ao módulo de memória através da interface de barramento em que o primeiro identificador de leitura é um identificador de leitura aleatório; enviar uma mensagem de garantia ao módulo de memória através da interface de barramento; receber um segundo identificador de leitura a partir do módulo de memória através de uma raia de faixa lateral da interface de barramento; determinar um deslocamento de leitura em resposta a uma determinação de que o segundo identificador de leitura a partir do módulo de memória inclui o primeiro identificadorde leitura; e determinar um tempo de amostragem de dados a partir do deslocamento de leitura; caracterizado pelo fato de que a lógica de controlador de memória é ainda para: determinar que o segundo identificador de leitura não inclui o primeiro identificador de leitura; realizar iterações de: gerar um terceiro identificador de leitura em que o terceiro identificador de leitura é um identificador de leitura aleatório, e enviar um segundo comando de leitura para o módulo de memória que inclui o terceiro identificador de leitura; e finalizar iterações após a determinação do deslocamento de leitura terminar operações de treinamento de leitura em resposta à inclusão do primeiro identificador de leitura no segundo identificador de leitura; sendo que o controlador de memória inclui ainda um registro de deslocamento de retorno linear (LFSR) e o registro de deslocamento de retorno linear (LFSR) é para gerar o primeiro identificador de leitura.6. System comprising: a processor; a memory module; a bus interface; and a memory controller, wherein the memory controller is connected to the processor, wherein the memory module is connected to the memory controller via the bus interface, and wherein the memory controller comprises logic, wherein controller logic of memory is for: sending a first read command and a first read handle to the memory module via the bus interface wherein the first read handle is a random read handle; sending a guarantee message to the memory module via the bus interface; receiving a second read-only identifier from the memory module via a sideband lane of the bus interface; determining a read offset in response to a determination that the second read identifier from the memory module includes the first read identifier; and determining a data sampling time from the reading offset; characterized in that the memory controller logic is further to: determine that the second read handle does not include the first read handle; performing iterations of: generating a third read identifier wherein the third read identifier is a random read identifier, and sending a second read command to the memory module that includes the third read identifier; and ending iterations after determining the read offset, terminating read training operations in response to including the first read identifier in the second read identifier; wherein the memory controller further includes a linear return shift register (LFSR) and the linear return shift register (LFSR) is for generating the first read handle. 7. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que a interface de barramento inclui linhas de comando nas quais são transmitidos comandos, linhas de dados nas quais são transmitidos dados, e uma linha de sinal de identificador de leitura, em que o segundo identificador de leitura a partir do módulo de memória érecebido através da linha de sinal de identificador de leitura.7. System according to claim 6, characterized in that the bus interface includes command lines on which commands are transmitted, data lines on which data are transmitted, and a read identifier signal line, in that the second read identifier from the memory module is received over the read identifier signal line. 8. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que a lógica de controlador de memória é ainda para: receber dados de leitura a partir do módulo de memória através de uma linha de dados da interface de barramento.8. System according to claim 6, characterized in that the memory controller logic is further for: receiving read data from the memory module via a data line from the bus interface. 9. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que o deslocamento de leitura mede uma quantidade de tempo entre a saída do sinal de garantia e a chegada de dados.9. System, according to claim 6, characterized in that the reading offset measures an amount of time between the output of the guarantee signal and the arrival of data.
BR122017013540-6A 2013-09-27 2014-07-29 INTEGRATED CIRCUIT DEVICE AND SYSTEM FOR READING TRAINING A MEMORY CONTROLLER BR122017013540B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/040,548 2013-09-27

Publications (1)

Publication Number Publication Date
BR122017013540B1 true BR122017013540B1 (en) 2023-06-06

Family

ID=

Similar Documents

Publication Publication Date Title
BR122017013543B1 (en) INTEGRATED CIRCUIT DEVICE AND SYSTEM FOR READING TRAINING A MEMORY CONTROLLER
US11513955B2 (en) Memory module with local synchronization and method of operation
BR122016007765A2 (en) memory system
US10482921B2 (en) Error detection code hold pattern synchronization
BR122017013540B1 (en) INTEGRATED CIRCUIT DEVICE AND SYSTEM FOR READING TRAINING A MEMORY CONTROLLER