BR122017013533B1 - Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória - Google Patents

Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória Download PDF

Info

Publication number
BR122017013533B1
BR122017013533B1 BR122017013533-3A BR122017013533A BR122017013533B1 BR 122017013533 B1 BR122017013533 B1 BR 122017013533B1 BR 122017013533 A BR122017013533 A BR 122017013533A BR 122017013533 B1 BR122017013533 B1 BR 122017013533B1
Authority
BR
Brazil
Prior art keywords
read
data
memory module
pattern
continuous
Prior art date
Application number
BR122017013533-3A
Other languages
English (en)
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 BR122017013533B1 publication Critical patent/BR122017013533B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Error Detection And Correction (AREA)
  • Information Transfer Systems (AREA)

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 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.

Description

Dividido do BR112016003865-7, depositado em 29.07.2014. CAMPO DA TÉCNICA
[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.
ANTECEDENTES
[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).
[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.
BREVE DESCRIÇÃO DOS DESENHOS
[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.
[0005] A Figura 1 ilustra uma modalidade de um sistema que tem um sistema de memória.
[0006] A Figura 2 ilustra uma modalidade de um módulo de memória.
[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.
[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.
[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.
[0010] A Figura 6 ilustra uma modalidade de operações para realizar o treinamento do interpolador de fase durante operações normais de leitura.
DESCRIÇÃO DAS MODALIDADES
[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.
[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.
[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.
[0014] As referências no relatório descritivo a "uma (01) modalidade", "uma modalidade", "uma modalidade exemplificativa", etc., indicam 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.
[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.
[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.
[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.
[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, respectivamente, 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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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, de-pendendo 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.
[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.
[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).
[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.
[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.
[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.
[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.
[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).
[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 fil-tragem 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.
[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.
[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.
[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.
[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 da-dos 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.
[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.
[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.
[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 modalidade 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.
[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.
[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.
EXEMPLOS
[0046] Os exemplos a seguir pertencem às modalidades adicionais.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[0056] No Exemplo 10, a matéria do Exemplo 9 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.
[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.
[0058] No Exemplo 12, a matéria do Exemplo 9 pode incluir opcionalmente 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.
[0059] No Exemplo 13, a matéria do Exemplo 9 pode incluir opcionalmente 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.
[0060] No Exemplo 14, a matéria do Exemplo 9 pode incluir opcionalmente que o identificador de leitura seja transmitido a partir do módulo de memória na raia de faixa lateral.
[0061] No Exemplo 15, a matéria do Exemplo 8 pode incluir opcionalmente 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.
[0062] No Exemplo 16, a matéria do Exemplo 15 pode incluir opcionalmente que o identificador de leitura seja devolvido em sinais de relógio a partir do módulo de memória.
[0063] No Exemplo 17, a matéria do Exemplo 9 pode incluir opcionalmente 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.
[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.
[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.
[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 treinamento de leitura grosseira e quanto usa o deslocamento de leitura para determinar quando iniciar dados de amostragem na vista de dados.
[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 armazenamento 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.
[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.
[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.
[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.
[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 determinado em resposta aos dados de leitura recebidos a partir do módulo de memória que inclui o novo identificador de leitura gerado.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[0080] No Exemplo 34, a matéria da reivindicação 31 pode incluir opcionalmente meios para enviar um comando de leitura com um identificador 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.
[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 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 em resposta à determinação de que o identificador de leitura recebido não corresponde ao identificador de leitura enviado com o comando de leitura.
[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.

Claims (18)

1. Dispositivo de circuito integrado, caracterizado pelo fato de que compreende: uma interface para comunicação com um módulo de memória (200) em uma interface de barramento (108); e lógica de controlador de memória (110) para realizar operações que compreendem: enviar uma solicitação ao módulo de memória (200) para iniciar um modo de treinamento no qual o módulo de memória (200) transmite padrões de bits contínuos em uma raia de faixa lateral (300) da interface de barramento (108) para dados relacionados a uma solicitação de leitura; receber os padrões de bits contínuos pela raia de faixa lateral (300) da interface de barramento (108); detectar uma transição entre valores em um padrão de bits recebido dentre os padrões de bits contínuos recebidos para determinar uma vista de dados para um bit no padrão de bits recebido; determinar uma vista de dados para um bit no padrão de bits recebido; determinar que uma configuração para um interpolador de fase (112) para gerar sinais interpolados para amostrar dados dentro da vista de dados determinada; e receber dados de leitura por linhas de dados da interface de barramento (108), separados das raias de faixa lateral (300), pelo uso da configuração determinada para o interpolador de fase (112) para amostrar os dados de leitura dentro da vista de dados quando os dados de leitura são transmitidos pelas linhas de dados.
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 (110) realiza ainda operações que compreendem: enviar uma solicitação ao módulo de memória (200) para terminar o modo de treinamento no qual o módulo de memória (200) transmite padrões de bits contínuos em resposta à determinação da vista de dados; e aplicar a configuração para o interpolador de fase (112) para um atraso de interpolador de fase (112).
3. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que detectar uma transição entre valores no padrão de bits recebido e determinar uma vista de dados para um bit no padrão de bits recebido compreende ainda: armazenar um valor de leitura a partir do padrão de bits recebido 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.
4. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que os padrões de bits contínuos compreendem um primeiro padrão de bits contínuo na raia de faixa lateral (300) da interface de barramento (108) e um segundo padrão de bits contínuo na raia de faixa lateral (300), em que o primeiro e o segundo padrões debits contínuos têm valores opostos.
5. Dispositivo de circuito integrado, de acordo com a reivindicação 4, caracterizado pelo fato de 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 de bits contínuo é enviado em uma segunda linha de sinal de identificador de leitura e compreende um padrão 0101 contínuo.
6. Dispositivo de circuito integrado, de acordo com a reivindicação 5, caracterizado pelo fato de que o primeiro e o segundo padrões de bits contínuos alternam entre um 0 e 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 (108).
7. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que a interface de barramento (108) compreende 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 contínuos recebidos 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.
8. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que a lógica de controlador de memória (110) realiza ainda operações que compreendem: enviar um comando de leitura com um identificador de leitu ra para o módulo de memória (200), em resposta à determinação da configuração para um interpolador de fase (112); receber dados de leitura a partir do módulo de memória (200) 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 é 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 (112).
9. Dispositivo de circuito integrado, de acordo com a reivindicação 1, caracterizado pelo fato de que os dados relacionados à solicitação de leitura enviada na raia de faixa lateral (300) compreendem um sinal identificador de leitura enviado previamente ao módulo de memória com uma solicitação de leitura.
10. Sistema (100) caracterizado pelo fato de que compreende: um processador (102); um módulo de memória (200); uma interface de barramento (108); e um controlador de memória (104), em que o controlador de memória (104) é conectado ao processador (102), em que o módulo de memória (200) é conectado ao controlador de memória (104) através da interface de barramento (108), e em que o controlador de memória (104) compreende lógica para realizar operações que compreendem: enviar uma solicitação ao módulo de memória (200) para iniciar um modo de treinamento no qual o módulo de memória (200) transmite padrões de bits contínuos em uma raia de faixa lateral (300) da interface de barramento (108); receber os padrões de bits contínuos pela raia de faixa lateral (300) da interface de barramento (108) para dados relacionados a uma solicitação de leitura; detectar uma transição entre valores em um padrão de bits recebido dentre os padrões de bits contínuos recebidos para determinar uma vista de dados para um bit no padrão de bits recebido; determinar uma vista de dados para um bit no padrão de bits recebido; determinar que uma configuração para um interpolador de fase (112) para gerar sinais interpolados para amostrar dados dentro da vista de dados determinada; e receber dados de leitura por linhas de dados, separa dos das raias de faixa lateral (300), pelo uso da configuração determinada para o interpolador de fase (112) para ler os dados dentro da vista de dados quando os dados de leitura são transmitidos pelas linhas de dados.
11. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que o controlador de memória (104) realiza ainda:enviar uma solicitação ao módulo de memória (200) para terminar o modo de treinamento no qual o módulo de memória (200) transmite padrões de bits contínuos em resposta determinar a vista de dados; e aplicar a configuração para controlar o interpolador de fase (112) para um atraso de interpolador de fase (112).
12. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que detectar uma transição entre valores em um padrão de bits recebido e determinar uma vista de dados para um bit no padrão de bits recebido compreende ainda:armazenar um valor de leitura a partir do padrão de bits recebido em um registro; e determinar se um valor de leitura subsequentemente, a par tir 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.
13. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que os padrões de bits contínuos compreendem um primeiro padrão de bits contínuo na raia de faixa lateral (300) da interface de barramento (108) e um segundo padrão de bits contínuo na raia de faixa lateral (300), em que o primeiro e o segundo padrões de bits contínuos têm valores opostos.
14. Sistema (100), de acordo com a reivindicação 13, caracterizado pelo fato de 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 de bits contínuo é enviado em uma segunda linha de sinal de identificador de leitura e compreende um padrão 0101 contínuo.
15. Sistema (100), de acordo com a reivindicação 13, caracterizado pelo fato de que o primeiro e o segundo padrões de bits contínuos alternam entre um 0 e 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 (108).
16. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que a interface de barramento (108) 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.
17. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que a lógica de controlador de memória (110) realiza ainda operações que compreendem: enviar um comando de leitura com um identificador de leitu ra para o módulo de memória (200), em resposta à determinação da configuração para um interpolador de fase (112);receber dados de leitura a partir do módulo de memória (200) 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 con figuração determinada para o interpolador de fase (112).
18. Sistema (100), de acordo com a reivindicação 10, caracterizado pelo fato de que os dados relacionados à solicitação de leitura enviada na raia de faixa lateral (300) compreendem um sinal identificador de leitura enviado previamente ao módulo de memória (200) com uma solicitação de leitura.
BR122017013533-3A 2013-09-27 2014-07-29 Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória BR122017013533B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/040,548 US9021154B2 (en) 2013-09-27 2013-09-27 Read training a memory controller
US14/040,548 2013-09-27
PCT/US2014/048719 WO2015047532A1 (en) 2013-09-27 2014-07-29 Read training a memory controller

Publications (1)

Publication Number Publication Date
BR122017013533B1 true BR122017013533B1 (pt) 2023-03-07

Family

ID=52741301

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122017013533-3A BR122017013533B1 (pt) 2013-09-27 2014-07-29 Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória
BR122017013543-0A BR122017013543B1 (pt) 2013-09-27 2014-07-29 Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória
BR112016003865A BR112016003865A2 (pt) 2013-09-27 2014-07-29 Treinamento de leitura de um controlador de memória

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122017013543-0A BR122017013543B1 (pt) 2013-09-27 2014-07-29 Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória
BR112016003865A BR112016003865A2 (pt) 2013-09-27 2014-07-29 Treinamento de leitura de um controlador de memória

Country Status (8)

Country Link
US (6) US9021154B2 (pt)
EP (1) EP3049946B1 (pt)
JP (4) JP6084756B2 (pt)
KR (3) KR101855512B1 (pt)
CN (2) CN112069110A (pt)
BR (3) BR122017013533B1 (pt)
RU (1) RU2643664C2 (pt)
WO (1) WO2015047532A1 (pt)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021154B2 (en) 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller
WO2016081192A1 (en) 2014-11-20 2016-05-26 Rambus Inc. Memory systems and methods for improved power management
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9921763B1 (en) * 2015-06-25 2018-03-20 Crossbar, Inc. Multi-bank non-volatile memory apparatus with high-speed bus
US10141034B1 (en) 2015-06-25 2018-11-27 Crossbar, Inc. Memory apparatus with non-volatile two-terminal memory and expanded, high-speed bus
US10222989B1 (en) 2015-06-25 2019-03-05 Crossbar, Inc. Multiple-bank memory device with status feedback for subsets of memory banks
US9558850B1 (en) 2015-12-01 2017-01-31 International Business Machines Corporation Efficient calibration of a data eye for memory devices
US9620184B1 (en) 2015-12-16 2017-04-11 International Business Machines Corporation Efficient calibration of memory devices
KR102536657B1 (ko) * 2016-07-12 2023-05-30 에스케이하이닉스 주식회사 반도체 장치 및 반도체 시스템
US10034407B2 (en) 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10067689B1 (en) * 2016-08-29 2018-09-04 Cadence Design Systems, Inc. Method and apparatus for high bandwidth memory read and write data path training
US10552252B2 (en) * 2016-08-29 2020-02-04 Seagate Technology Llc Patterned bit in error measurement apparatus and method
US10148416B2 (en) 2016-09-02 2018-12-04 Intel Corporation Signal phase optimization in memory interface training
US10262751B2 (en) * 2016-09-29 2019-04-16 Intel Corporation Multi-dimensional optimization of electrical parameters for memory training
KR20180049338A (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10416912B2 (en) 2016-11-03 2019-09-17 Intel Corporation Efficiently training memory device chip select control
KR20180069565A (ko) * 2016-12-15 2018-06-25 에스케이하이닉스 주식회사 반도체 장치, 반도체 시스템 및 트레이닝 방법
BR112019026942B1 (pt) 2017-06-23 2024-02-15 Huawei Technologies Co., Ltd Tecnologia de acesso à memória e sistema de computador
KR102353027B1 (ko) * 2017-07-03 2022-01-20 삼성전자주식회사 스토리지 장치의 데이터 트레이닝 방법
US20190095308A1 (en) 2017-09-26 2019-03-28 Intel Corporation Registering clock driver controlled decision feedback equalizer training process
US10810141B2 (en) * 2017-09-29 2020-10-20 Intel Corporation Memory control management of a processor
US11074151B2 (en) 2018-03-30 2021-07-27 Intel Corporation Processor having embedded non-volatile random access memory to support processor monitoring software
US10691466B2 (en) * 2018-04-02 2020-06-23 Intel Corporation Booting a computing system using embedded non-volatile memory
JP2019215662A (ja) * 2018-06-12 2019-12-19 株式会社日立製作所 不揮発性メモリデバイス、及びインターフェース設定方法
JP2020046918A (ja) 2018-09-19 2020-03-26 キオクシア株式会社 記憶装置及び制御方法
KR102648186B1 (ko) * 2018-12-24 2024-03-18 에스케이하이닉스 주식회사 트래이닝 기능을 갖는 반도체 시스템
CN110210018B (zh) * 2019-05-14 2023-07-11 北京百度网讯科技有限公司 挂号科室的匹配方法和装置
WO2020237410A1 (en) 2019-05-24 2020-12-03 Intel Corporation Training for chip select signal read operations by memory devices
CN112764667A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备、存储系统和计算机程序产品
TWI693796B (zh) * 2019-11-08 2020-05-11 群聯電子股份有限公司 訊號產生電路、記憶體儲存裝置及訊號產生方法
US11126585B1 (en) 2020-03-09 2021-09-21 Western Digital Technologies, Inc. Data storage device with improved interface transmitter training
US11288225B2 (en) 2020-04-14 2022-03-29 Western Digital Technologies, Inc. Adapting transmitter training behavior based upon assumed identity of training partner
KR20210136203A (ko) * 2020-05-06 2021-11-17 삼성전자주식회사 저장 장치 및 그것의 리트레이닝 방법
US11190331B1 (en) * 2020-12-16 2021-11-30 Cadence Design Systems, Inc. Data alignment in physical layer device
CN116052742A (zh) * 2022-07-13 2023-05-02 成都海光集成电路设计有限公司 数据处理方法、装置、存储控制器、设备及介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570944B2 (en) 2001-06-25 2003-05-27 Rambus Inc. Apparatus for data recovery in a synchronous chip-to-chip system
KR100233122B1 (ko) 1992-03-25 1999-12-01 윤종용 모뎀 운용 테스트 회로
US6266379B1 (en) * 1997-06-20 2001-07-24 Massachusetts Institute Of Technology Digital transmitter with equalization
JP3922765B2 (ja) * 1997-07-22 2007-05-30 富士通株式会社 半導体装置システム及び半導体装置
JPH11139869A (ja) 1997-11-10 1999-05-25 Murata Mfg Co Ltd 半導体セラミックおよびその製造方法
JP2002082830A (ja) 2000-02-14 2002-03-22 Mitsubishi Electric Corp インターフェイス回路
WO2001084702A2 (en) 2000-04-28 2001-11-08 Broadcom Corporation High-speed serial data transceiver systems and related methods
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
US6658523B2 (en) 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US7437624B2 (en) * 2002-09-30 2008-10-14 Lecroy Corporation Method and apparatus for analyzing serial data streams
US7167946B2 (en) * 2003-09-30 2007-01-23 Intel Corporation Method and apparatus for implicit DRAM precharge
US6958634B2 (en) 2003-12-24 2005-10-25 Intel Corporation Programmable direct interpolating delay locked loop
US7403584B2 (en) 2003-12-31 2008-07-22 Intel Corporation Programmable phase interpolator adjustment for ideal data eye sampling
US7107424B1 (en) * 2004-03-25 2006-09-12 Emc Corporation Memory read strobe pulse optimization training system
KR100594294B1 (ko) * 2004-09-21 2006-06-30 삼성전자주식회사 메모리 장치 및 데이터 트레이닝 방법
KR100618870B1 (ko) * 2004-10-23 2006-08-31 삼성전자주식회사 데이터 트레이닝 방법
JP2006260071A (ja) * 2005-03-16 2006-09-28 Oki Data Corp メモリ制御装置および情報処理装置
KR100703976B1 (ko) * 2005-08-29 2007-04-06 삼성전자주식회사 동기식 메모리 장치
US7607031B2 (en) * 2006-03-28 2009-10-20 Advanced Micro Devices, Inc. Power management in a communication link
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US7983368B2 (en) 2006-12-11 2011-07-19 International Business Machines Corporation Systems and arrangements for clock and data recovery in communications
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7886174B2 (en) 2007-06-27 2011-02-08 Intel Corporation Memory link training
US8341450B2 (en) * 2007-07-23 2012-12-25 Rambus Inc. Continuous timing calibrated memory interface
US7913033B2 (en) 2007-10-09 2011-03-22 Micron Technology, Inc. Non-volatile memory device having assignable network identification
US8793525B2 (en) * 2007-10-22 2014-07-29 Rambus Inc. Low-power source-synchronous signaling
WO2010080174A1 (en) * 2009-01-12 2010-07-15 Rambus Inc. Mesochronous signaling system with core-clock synchronization
US7978538B2 (en) * 2009-01-29 2011-07-12 International Business Machines Corporation Setting memory device termination in a memory device and memory controller interface in a communication bus
US8037375B2 (en) * 2009-06-30 2011-10-11 Intel Corporation Fast data eye retraining for a memory
US8578086B2 (en) 2009-09-25 2013-11-05 Intel Corporation Memory link initialization
US8681571B2 (en) * 2010-06-15 2014-03-25 International Business Machines Corporation Training a memory controller and a memory device using multiple read and write operations
US8533538B2 (en) * 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory
KR20120011491A (ko) 2010-07-29 2012-02-08 주식회사 하이닉스반도체 반도체 시스템 및 그 데이터 트래이닝 방법
US20120066471A1 (en) 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
US8631256B2 (en) * 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
KR101571278B1 (ko) * 2011-07-01 2015-11-24 퀄컴 인코포레이티드 시리얼 통신 시스템에서의 대기 전력 감소를 위한 시스템 및 방법
US8954408B2 (en) 2011-07-28 2015-02-10 International Business Machines Corporation Allowing writes to complete without obtaining a write lock to a file
US9021154B2 (en) 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller

Also Published As

Publication number Publication date
CN105723351B (zh) 2020-08-18
US9058111B2 (en) 2015-06-16
JP2017107584A (ja) 2017-06-15
KR101855512B1 (ko) 2018-06-25
US20150095565A1 (en) 2015-04-02
US9021154B2 (en) 2015-04-28
EP3049946B1 (en) 2021-06-23
US9495103B2 (en) 2016-11-15
JP6327762B2 (ja) 2018-05-23
EP3049946A1 (en) 2016-08-03
JP6327763B2 (ja) 2018-05-23
JP6327764B2 (ja) 2018-05-23
US20170286330A1 (en) 2017-10-05
US9766817B2 (en) 2017-09-19
US20150113215A1 (en) 2015-04-23
KR20180049244A (ko) 2018-05-10
BR122017013543B1 (pt) 2023-03-07
US20150113235A1 (en) 2015-04-23
RU2643664C2 (ru) 2018-02-02
WO2015047532A1 (en) 2015-04-02
KR20180050765A (ko) 2018-05-15
CN105723351A (zh) 2016-06-29
JP2017097907A (ja) 2017-06-01
US10482041B2 (en) 2019-11-19
CN112069110A (zh) 2020-12-11
US20150113234A1 (en) 2015-04-23
KR102058019B1 (ko) 2019-12-20
KR20160034961A (ko) 2016-03-30
EP3049946A4 (en) 2017-04-26
KR102058018B1 (ko) 2019-12-20
US20170031846A1 (en) 2017-02-02
JP2017097908A (ja) 2017-06-01
BR112016003865A2 (pt) 2017-08-01
JP6084756B2 (ja) 2017-02-22
US10331585B2 (en) 2019-06-25
JP2016534472A (ja) 2016-11-04
RU2016107022A (ru) 2017-08-31

Similar Documents

Publication Publication Date Title
BR122017013533B1 (pt) Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória
US20230236970A1 (en) Memory module with local synchronization and method of operation
TWI735529B (zh) 多階層記憶體之管理的技術
CN110023914B (zh) 用于重复写入存储器的可编程数据样式
BR122016007765A2 (pt) sistema de memória
US10482921B2 (en) Error detection code hold pattern synchronization
US20200110716A1 (en) Techniques for command bus training to a memory device
BR122017013540B1 (pt) Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 7A ANUIDADE

B08H Application fees: decision cancelled [chapter 8.8 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 8.6 NA RPI NO 2684 DE 14/06/2022 POR TER SIDO INDEVIDA.

B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 4A ANUIDADE.

B08G Application fees: restoration [chapter 8.7 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 29/07/2014, OBSERVADAS AS CONDICOES LEGAIS