BR102012022563A2 - Detecção de validação de dados dinâmina - Google Patents

Detecção de validação de dados dinâmina Download PDF

Info

Publication number
BR102012022563A2
BR102012022563A2 BRBR102012022563-8A BR102012022563A BR102012022563A2 BR 102012022563 A2 BR102012022563 A2 BR 102012022563A2 BR 102012022563 A BR102012022563 A BR 102012022563A BR 102012022563 A2 BR102012022563 A2 BR 102012022563A2
Authority
BR
Brazil
Prior art keywords
memory
data
interface circuit
memory interface
value
Prior art date
Application number
BRBR102012022563-8A
Other languages
English (en)
Inventor
Hao Chen
Rakesh L Notani
Sukalpa Biswas
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of BR102012022563A2 publication Critical patent/BR102012022563A2/pt

Links

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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

Detecção de validação de dados dinâmica.técnicas estão descritas relativas à determinação quando um sinal de validação de dados é válido para capturar os dados. Em uma modalidade, um aparelho está descrito que inclui um circuito de interface de memória configurado para determinar um valor de tempo inicial para capturar os dados de uma memória com base em um sinal de validação de dados. Em algumas modalidades, o circuito de interface de memória pode determinar este valor de tempo inicial lendo um valor conhecido da memória. Em uma modalidade, o circuito de interface de memória está ainda configurado para determinar um valor de tempo ajustado para capturar os dados, onde o circuito de interface de memória está configurado para determinar o valor de tempo ajustado utilizando o valor de tempo inicial para amostrar o sinal de validação de dados.

Description

Relatório Descritivo da Patente de Invenção para "DETECÇÃO DE VALIDAÇÃO DE DADOS DINÂMICA".
ANTECEDENTES
CAMPO DA TÉCNICA
Esta descrição refere-se genericamente a processadores, e, mais especificamente, a processadores de interfaceamento com memória.
DESCRIÇÃO DA TÉCNICA RELATIVA
Quando os dados são transmitidos entre um processador e uma memória, um sinal de validação de dados (algumas vezes referido como DQS) é provido com o sinal de dados para indicar quando as voltagens no barramento correspondem a valores de dados reais e coordenar a captura dos valores de dados do barramento. Em uma operação de escrita, a interface de controlador de memória no processador é responsável para gerar o sinal de validação de dados para os dados que estão sendo escritos na memória. Em uma operação de leitura, a memória gera o sinal de validação de dados para os dados que estão sendo lidos. O sinal de validação de dados é tipicamente transmitido sobre a mesma linha de barramento bidirecional. Como tal, a linha de sinal de DQS pode ser permitida flutuar (isto é, operar em um triestado) entre as execuções de operações de leitura e de escrita. Se o recebedor tenta capturar os dados antes do sinal de validação de dados ser válido, o valor de triestado da linha de sinal pode fazer com que os dados sejam capt1 irados incorretamente. Mais ainda, se o recebedor começar a capturar os uados após um ciclo inicial do sinal de DQS, nem todos os dados serão capturados.
SUMÁRIO A presente descrição descreve as técnicas para determinar quando um sinal de validação de dados é valido para capturar os dados.
Em uma modalidade, um processador está descrito que inclui um circuito de interface de memória (por exemplo, uma memória PHY) configurado para facilitar a execução de operações de escrita e operações de leitura com a memória. Durante uma operação de leitura, o circuito de interface de memória pode capturar os dados recebidos de um barramento de memória engatando bits dos dados com base em um sinal de validação de dados provido pela memória. Para reduzir as chances de capturar dados inválidos, o circuito de interface de memória, em uma modalidade, pode e-xecutar uma calibração (por exemplo, durante a inicialização do processador e da memória, após sair de um modo de autorregeneração para memória, etc.) na qual este envia uma solicitação de leitura para a memória para um valor conhecido. Este então começa a capturar os bits e compará-los com uma cópia armazenada do valor para determinar quando os dados sobre o barramento tornam-se válidos indicando que o sinal de validação de dados é também válido. Em uma modalidade, o circuito de interface de memória pode estar configurado para executar múltiplas operações de leitura até que este possa determinar quando o valor de validação de dados torna-se válido (por exemplo, 3,5 ciclos de relógio após enviar uma solicitação de leitura). Em outra modalidade, o circuito de interface de memória pode enviar uma única solicitação de leitura e capturar os bits dos dados em uma taxa mais alta do que a taxa do sinal de validação (por exemplo, a cada quarto de ciclo de DQS) para determinar quando o sinal torna-se válido.
Em algumas modalidades, o circuito de interface de memória pode também ser configurado para executar uma calibração adicional na qual este amostra o sinal de validação de dados para determinar quando o sinal de validação de dados é válido. O circuito de interface de memória pode então ajustar quando engatar os bits dos dados com base nesta determinação. Em uma modalidade, o circuito de interface de memória está configurado para determinar quando amostrar o sinal de validação de dados com base em um valor de tempo inicial determinado pela leitura de um valor conhecido da memória. Em algumas modalidades, o circuito de interface de memória pode periodicamente reamostrar o sinal de validação de dados para fazer ajustes menores conforme o tempo do sinal de validação flutua devido a mudanças em processo, voltagem, e temperatura (PVT).
BREVE DESCRIÇÃO DOS DESENHOS
Figura 1 é um diagrama de tempo que ilustra as características de tempo para duas operações de leitura.
Figura 2 é um diagrama de blocos que ilustra uma modalidade de um circuito integrado acoplado a um ou mais módulos de memória.
Figura 3 é um diagrama de blocos que ilustra uma modalidade de uma memória PHY acoplada a um módulo de memória.
Figura 4 é um diagrama de blocos que ilustra uma modalidade de uma unidade de calibração em uma memória PHY.
Figuras 5A e 5B são diagramas de blocos que ilustram modalidades de um armazenamento de dados temporário em uma memória PHY.
Figura 6 é um fiuxograma que ilustra uma modalidade de um método para determinar quando um sinal de validação de dados é válido.
Figura 7 é um fiuxograma que ilustra outra modalidade de um método para determinar quando um sinal de validação de dados é válido.
Figura 8 é um diagrama de blocos de um sistema exemplar.
DESCRIÇÃO DETALHADA DE MODALIDADES
Este relatório descritivo inclui referências a "uma modalidade" ou "a modalidade". As aparições das frases "em uma modalidade" ou "na modalidade" não necessariamente referem-se à mesma modalidade. Aspectos, estruturas, ou características específicos podem ser combinados em qualquer modo adequado consistente com esta descrição.
Terminologia. Os seguintes parágrafos proveem definições e/ou contexto para os termos encontrados nesta descrição (incluindo as reivindicações anexas): "Compreendendo". Este termo é aberto. Como utilizado nas reivindicações anexas, este termo não impede estruturas ou etapas adicionais. Considere uma reivindicação que recita: "Aparelho que compreende uma ou mais unidades de processador ...". Tal reivindicação não impede o aparelho de incluir componentes adicionais (por exemplo, uma unidade de interface de rede, um circuito gráfico, etc.). "Configurado Para". Várias unidades, circuitos, ou outros componentes podem ser descritos ou reivindicados como "configurado para" e-xecutar uma tarefa ou tarefas. Em tais contextos, "configurado para" é utilizado para conotar uma estrutura indicando que as unidades / circuitos / componentes incluem uma estrutura (por exemplo, um circuito) que executa aquela tarefa ou tarefas durante a operação. Como tal, a unidade / circuito / componente pode ser dito estar configurado para executar a tarefa mesmo quando a unidade / circuito / componente não está correntemente operacional (por exemplo, não está ligado). As unidades / circuitos / componentes utilizados com a linguagem "configurado para" inclui um hardware - por e-xemplo, circuitos, memória que armazena as instruções de programa executáveis para implementar a operação, etc. Recitando que uma unidade / circuito / componente está "configurado para" executar uma ou mais tarefas é expressamente pretendido não invocar a 35 U.S.C. § 112, sexto parágrafo, para aquela unidade / circuito / componente. Além disso, "configurado para" pode incluir uma estrutura genérica (por exemplo, um circuito genérico) que é manipulado por software e/ou firmware (por exemplo, um FPGA ou um processador de uso geral que executa o software) para operar em um modo que seja capaz de executar a(s) tarefa(s) em questão. "Configurado para" pode também incluir adaptar um processo de fabricação (por exemplo, uma instalação de fabricação de semicondutor) para fabricar dispositivos (por e-xemplo, circuitos integrados) que estão adaptados para implementar ou executar uma ou mais tarefas. "Primeiro", "Segundo", etc. Como aqui utilizados, estes termos são utilizados como rótulos para substantivos que estes precedem, e não implicam em nenhum tipo de ordem (por exemplo, espacial, temporal, lógica, etc.). Por exemplo, em um processador que tem oito elementos ou núcleos de processamento, os termos "primeiro" e "segundo" elementos de processamento podem ser utilizados para referir a quaisquer dois dos oito elementos de processamento. Em outras palavras, o "primeiro" e "segundo" elementos de processamento não estão limitados aos elementos de processamento lógicos 0 e 1. "Com Base Em". Como aqui utilizado, este termo é utilizado para descrever um ou mais fatores que afetam uma determinação. Este termo não impede fatores adicionais que podem afetar uma determinação. Isto é, uma determinação pode ser somente baseada nestes fatores ou baseada pelo menos em parte, nestes fatores. Considere a frase "determinar A com base em B". Apesar de B poder ser um fator que afeta a determinação de A, tal frase não impede a determinação de A de ser também baseada em C. Em outros casos, A pode ser determinado com base somente em B. "Sinal de Validação de Dados". Este termo tem o seu significado comum e aceito na técnica, e inclui um sinal que é acionado em conjunto com um ou mais sinais de dados para indicar que dados válidos estão sendo transmitidos. Um sinal de validação tipicamente tem uma frase e frequência similares que um sinal de dados e pode ser utilizado para capturar dados do sinal de dados.
Observando agora à Figura 1, um par de diagramas de tempo 110A e 110B que ilustram possíveis características de tempo para duas operações de leitura está apresentado. Como mostrado, cada diagrama 110 inclui um sinal de relógio CK (representado pelo par de sinais diferenciais CK_t e CK_c), um sinal de comando [CMD], um sinal de validação de dados DQS (representado pelo par de sinais diferenciais DQS_c e DQS t), e um sinal de dados DQ. O sinal de relógio CK pode ser utilizado para coordenar o tempo de várias operações entre um circuito integrado e uma memória. O sinal de comando [CMD] pode ser gerado por um circuito de interface física de memória (PHY) para fazer com que a memória execute várias operações (por exemplo, validações de endereço de linha e coluna para uma leitura, etc.). O sinal de validação de dados DQS é um sinal que oscila quando o sinal de dados DQ tem dados válidos (mostrados como bits Di, D2, D3, etc.).
Em ambas as operações de leitura, uma memória PHY começa enviando um comando de leitura para a memória através do sinal de CMD no tempo TO. A memória pode então recuperar os dados durante os próximos um ou mais ciclos de relógio e prover os dados solicitados de volta para a memória PHY. Quando a memória começa a prover os dados, a memória aciona o DQS baixo e então oscila o DQS conforme os bits são acionados através do barramento. No diagrama 110A, a memória aciona o DQS baixo após T2 e começa a oscilar o DQS após T3. No diagrama 110B, a memória aciona o DQS baixo após T3 e começa a oscilação após T4. Conforme o DQS oscila, a memória PHY, em uma modalidade, engata os bits de DQ nas bordas descendentes de DQS começando com a borda descendente 104.
Para capturar corretamente todos os dados em tal modalidade, a memória PHY deve começar a engatar os dados durante a primeira descida total de DQS (isto é, a descida 104 de um um lógico para um zero lógico, em oposição à descida 102 de um valor flutuante para um zero lógico). Se o primeiro bit de dados for engatado na ou durante esta descida (por exemplo, em 102A ou antes), o estado flutuante de DQS pode fazer com que bits inválidos sejam engatados. Se o primeiro bit for engatado após 104A, o bit inicial Di não é capturado. Em várias modalidades, uma memória PHY pode controlar quando os dados são capturados comutando DQS (por exemplo, im-pedindo-o de acionar um engate de DQ de captura) até que o DQS torne-se válido - por exemplo, o tempo após a descida 102. Consequentemente, no diagrama 110A, a memória PHY deve desengatar o DQS (isto é, provê-lo para o engate de captura) dentro do período 120A para capturar corretamente todos os bits de dados corretamente. Vários padrões de memória podem especificar um período de retardo para quando o DQS se tornará válido após um comando de leitura ter sido emitido para assegurar que os dados sejam capturados corretamente. Um exemplo deste período de retardo está mostrado nos diagramas 110A e 110B como um retardo de três ciclos de CK do início de um comando de leitura em TO. Enquanto que, em ambos os diagramas 110A e 110B, o DQS torna-se válido após este período de três ciclos (note que o tempo entre o final deste retardo e o início de oscilação de DQS pode ser referido como tooscx), que define este período não garante que o DQS será válido no final deste período como mostrado no diagrama 110B no qual o DQS está flutuando em T3. Por exemplo, no diagrama 110A, se uma memória PHY desen-gata o DQS em T3, o DQS não está flutuando e a memória PHY capturará corretamente os dados. No entanto, no diagrama 110B, o DQS está flutuando durante o periodo 130 após T3. Se o DQS for permitido acionar um engate de captura na memória PHY durante o periodo 130, dados inválidos podem ser capturados. Se, no entanto, o DQS for desengatado durante o perí- odo 120B, os dados devem ser capturados corretamente.
Como será abaixo descrito, em várias modalidades, um circuito integrado pode utilizar várias técnicas para determinar quando começar a utilizar um sinal de validação de dados para capturar os dados. Por exemplo, tal circuito pode utilizar várias técnicas para determinar um valor de tempo dentro de ambos os períodos 120A e 120B e começar a capturar os dados com base naquele valor de tempo.
Observando agora a Figura 2, um diagrama de blocos de um sistema 10 está apresentado. Na modalidade ilustrada, o sistema 10 inclui um circuito integrado (IC) 200 acoplado a módulos de memória externos 240A-240B. O circuito integrado 200 inclui um ou mais núcleos de processamento 210A-210B, um controlador de memória 220, e um ou mais circuitos de interface física de memória (PHYs) 230A-230B. O controlador de memória 220 está acoplado aos núcleos 210A e 210B através de respectivas intercone-xões 212A e 212B e nas memórias PHYs 230 através de respectivas inter-conexões 222A e 222B. As memórias PHYs estão acopladas nos módulos de memória 240A e 240B através de respectivas interconexões 232A e 232B.
Os núcleos 210, em uma modalidade, estão configurados para gerar solicitações de leitura e de escrita para dados. Os núcleos 210 podem implementar qualquer arquitetura de conjunto de instruções, e podem estar configurados para executar as instruções definidas naquela arquitetura de conjunto de instruções. Os núcleos 210 podem empregar qualquer microar-quitetura, incluindo escalar, superescalar, encadeada, superencadeada, fora de ordem, em ordem, especulativa, não especulativa, etc., ou suas combinações. Os núcleos 210 podem incluir circuitos, opcionalmente podem implementar técnicas de microcodificação. Os núcleos 210 podem incluir um ou mais níveis de cache. Um ou mais núcleos 210 podem implementar um controlador gráfico configurado para renderizar os objetos a serem exibidos em um armazenamento temporário de quadro. O controlador de memória 220, em uma modalidade, está configurado para processar as solicitações geradas pelos núcleos 210 e emitir os comandos correspondentes para os módulos de memória 240 para causar a execução de várias operações de memória. O controlador de memória 220 pode também processar as solicitações de outras fontes tal como vários dispositivos periféricos, dispositivos de rede, dispositivos de armazenamento, dispositivos de l/O, etc. (tal como aqueles descritos em conjunto com a Figura 8). O controlador de memória 220 pode incluir várias estruturas para implementar uma memória virtual tal como estruturas de tradução, unidades de revisão de página, etc. Em uma modalidade, o controlador de memória 220 está configurado para facilitar a regeneração de módulos de memória 240 emitindo comandos de regeneração para os módulos 240.
As memórias PHYs 230, em uma modalidade, estão configuradas para manipular o interfaceamento físico de baixo nível do IC 200 com os módulos de memória 240 para facilitar a troca de dados. Por exemplo, as memórias PHYs 230 podem ser responsáveis pelo tempo dos sinais, pela sincronização apropriada à memória DRAM sincrona, etc. As memórias PHYs 230 podem estar configuradas para travar em um relógio suprido dentro do circuito integrado 200 e gerar um relógio correspondente (por exemplo, o sinal de relógio CK acima descrito) utilizado pelos módulos de memória 240. As memórias PHYs 230 podem estar configuradas para transferir os comandos do controlador de memória 220 para os módulos de memória 240. As memórias PHYs 230 também podem estar configuradas para receber os comandos do controlador de memória 220 e gerar um ou mais sinais correspondentes (por exemplo, CMD, DQS, DQ, etc.) para os módulos de memória 240.
Os módulos de memória 240 podem ser qualquer tipo de memória, tal como as memórias de acesso randômico dinâmico (DRAM), DRAM sincrona (SDRAM), taxa de dados dupla (DDR, DDR2, DDR3, etc.) SDRAM (incluindo as versões móveis das SDRAMs tal como mDDR3, etc., e/ou as versões de baixa potência das SDRAMs tal como LPDDR2, LPDDR3, etc.), RAMBUS DRAM (RDRAM), RAM estática (SRAM), etc. Um ou mais dispositivos de memória podem estar acoplados por sobre uma placa de circuito para formar módulos de memória tal como os módulos de memória em linha únicos SIMMs), os módulos de memória em linha duplos (DIMMs), etc. Ai-ternativamente, os dispositivos podem ser montados com o circuito integrado 200 em uma configuração de chip sobre chip, uma configuração de pacote sobre pacote, ou uma configuração de múltiplos módulos de chip.
Em várias modalidades, as memórias PHYs 230 estão configuradas para capturar os dados de DQ recebidos dos módulos de memória 240 com base em um sinal de validação de dados DQS. Para assegurar que os dados estão sendo capturados quando o DQS é válido, as PHYs 230, em uma modalidade, estão configuradas para executar um processo de calibra-ção no qual estas determinam quando o DQS torna-se válido após enviar um comando correspondente para os módulos de memória 240. Como será a-baixo descrito, em uma modalidade, este processo de calibração pode incluir ler um valor conhecido da memória e determinar quando o valor pode ser capturado corretamente indicando que o DQS é válido naquele ponto. Em algumas modalidades, este processo de calibração pode ainda incluir periodicamente amostrar o DQS para determinar mais precisamente o tempo de DQS e detectar quaisquer mudanças de tempo subsequentes.
Observando agora a Figura 3, uma modalidade de uma memória PHY 230 acoplada a um módulo de memória 240 está apresentada. Na modalidade ilustrada, a memória PHY 230 inclui um loop de travamento retardado mestre (DLL) 304, um ou mais armazenamentos temporários de dados 310A e 310B, uma unidade de retardo 320, uma porta 330, e uma unidade de calibração 340. O módulo de memória 240 também inclui um armazenamento de valor de teste 350. O DLL mestre 304, em uma modalidade, está configurado para suprir um sinal de relógio 302 recebido para várias unidades na PHY 230 para coordenar a execução de várias operações. Em uma modalidade, o DLL mestre 304 pode ainda estar configurado para gerar um sinal de relógio CK para os módulos de memória 240 com base no sinal 302. Em algumas modalidades, o sinal CK pode ter o dobro da taxa do sinal 302 se o módulo de memória 240 for uma memória de taxa de dados dupla (DDR).
Os armazenamentos temporários de dados 310, em uma moda- lidade, estão configurados para capturar e armazenar os dados de DQ recebidos do módulo de memória 240 até que estes possam ser providos para o controlador de memória 220. Nas várias modalidades, os armazenamentos de dados 310 estão configurados para engatar os bits de dados de DQ com base no sinal de validação de dados DQS (por exemplo, quando de cada borda descendente (ou ascendente) de DQS). Como será abaixo descrito, a unidade de calibração 340, em uma modalidade, pode capturar os bits do armazenamento temporário 310 para determinar as características de tempo de DQS. Os armazenamentos de dados 310 estão abaixo descrito em maiores detalhes em conjunto com as Figuras 5A e 5B. A unidade de retardo 320, em uma modalidade, está configurada para controlar quando um armazenamento temporário de dados 310 recebe o DQS pela porta de operação 330. Na modalidade ilustrada, a unidade de retardo 320 está configurada para asseverar um sinal de início de captura 324 para abrir a porta 330 após um retardo apropriado 322 (por exemplo, 3,5 ciclos de sinal de relógio 302) ter passado desde que um comando de CMD foi enviado para o módulo de memória 240. Em uma modalidade, a unidade de retardo 320 pode ser implementada utilizando um loop de travamento retardado. Em várias modalidades, a asseveração do sinal de início de captura 324 é temporizada de acordo com a chegada de DQS (isto é, quando o DQS torna-se válido). Por exemplo, nos diagramas 110A e 110B acima descritos, a unidade de retardo 320 pode estar configurada para abrir a porta 330 durante a sobreposição de períodos 120A e 120B para fazer com que o DQS acione os armazenamentos 310 para capturar os dados. Como acima notado, se o início de captura 324 for asseverado após a primeira borda descendente de DQS, o armazenamento 310 pode não corretamente capturar todos os bits de DQ. Similarmente, se o início de captura 324 for asseverado quando o DQS está flutuando, os armazenamentos 310 podem capturar dados inválidos ou bordas de DQS falsas. A unidade de calibração 340, em uma modalidade, está configurada para determinar quando o DQS é provável tornar-se válido e executar um ajuste de retardo 342 de valor de retardo 322 de modo que a unidade de retardo 320 assevere o início de captura 330 durante o período apropriado. Em várias modalidades, a unidade de calibração 340 determina um valor de retardo 322 para a unidade de retardo 320 lendo um valor de teste do módulo de memória 240 e analisando os bits conforme o armazenamento 310 captura-os. Quando a unidade de calibração 340 reconhece o valor de teste capturado 352 no fluxo de bits capturados, a unidade de calibração 340 pode determinar que o DQS é válido durante este período. A unidade de calibração 340 pode então ajustar o valor de retardo 322 da unidade de retardo 320 consequentemente. Em algumas modalidades, a unidade de calibração 340 determina um valor de retardo 322 analisando os dados capturados de múltiplas operações de leitura, onde os dados para cada operação lida foram capturados utilizando um valor de retardo 322 respectivamente diferente. A unidade de calibração 340 pode continuar a testar diferentes valores de retardo 322 até esta determinar um valor de retardo 322 que produza uma captura correta do valor de teste. Em outras modalidades, a unidade de calibração 340 pode alternativamente, analisar os dados de somente uma única operação de leitura, onde os dados são capturados a uma taxa mais aíta do que DQS (por exemplo, a cada quarto de ciclo de DQS) para determinar quando os dados estão corretos e o DQS torna-se válido. Em algumas modalidades, o valor de teste utilizado para determinar um valor de retardo 322 é inicialmente escrito na memória e subsequentemente lido. Em outras modalidades, o valor de teste é armazenado em uma porção dedicada do módulo de memória 240 - por exemplo, é permanentemente inserido no código. O armazenamento de valor de teste 350, em uma modalidade, é uma porção do módulo 240 dedicada ao armazenamento de valores de teste acessíveis. Em algumas modalidades, o armazenamento 350 pode incluir registros acessíveis, os quais retomam valores de teste conhecidos. Por e-xemplo, em uma modalidade na qual o módulo de memória 240 implementa um padrão LPDDR, o armazenamento 350 inclui os registros de modo (MR) 32 e 40, os quais retornam padrões de dados conhecidos em resposta a comandos de leitura de registro de modo (MRR). Em uma modalidade, a calibração 340 pode estar configurada para emitir uma solicitação de leitura diretamente para o módulo de memória 240 para fazê-lo retornar um valor de teste do armazenamento 350. Em outra modalidade, a calibração 340 pode ao invés fazer com que o controlador de memória 220 emita um comando de leitura (por exemplo, através de uma instrução de leitura 344), cuja memória PHY 230 então transfere para o módulo de memória 240 para o valor de teste.
Em algumas modalidades, o valor de retardo 322 determinado pela leitura de um valor conhecido pode não ser preciso o bastante para garantir que os dados serão consistentemente capturados corretamente (ou, levar o tempo para ler um valor conhecido, em alguns casos, pode não ser uma opção viável devido a várias restrições de tempo). Em várias modalidades, a unidade de calibração 340 está configurada para utilizar um valor de retardo 322 prevíamente determinado como um valor de tempo inicial para amostrar o DQS para determinar quando este torna-se válido. Em uma modalidade, quando a unidade de calibração 340 está amostrando o DQS, esta pode tentar identificar a primeira borda de relógio descendente total (ou ascendente) de DQS e ajustar o valor de retardo 322 consequentemente. Em algumas modalidades, a unidade de calibração 340 pode determinar este valor de retardo 322 ajustado durante a execução de uma operação de leitura normal / funcional (isto é, uma operação de leitura que não é para um valor de teste conhecido). A unidade de calibração 340 pode determinar quando ler um valor conhecido ou amostrar o DQS com base em vários critérios. Em uma modalidade, a unidade de calibração 340 pode ler um valor conhecido para executar uma calibração (isto é, executar uma "calibração de valor conhecido") quando a memória PHY 230 e os módulos de memória 240 são iniciali-zados na partida (por exemplo, após um sinal de travamento ser asseverado do DLL mestre 304, em uma modalidade). (Em uma modalidade, o controlador de memória 220 pode fazer com que a unidade de calibração 340 execute esta calibração inicial; a unidade de calibração 340 pode então determinar quando executar as calibrações subsequentes por sua conta). Em algumas modalidades, a unidade de calibração 340 pode também executar uma cali- bração de valor conhecido após o unidade de calibração 340 sair de um modo de autorregeneração, sair de um modo de energia mais baixa, após um período predeterminado ter passado, etc. Em algumas modalidades, a unidade de calibração 340 pode amostrar o DQS para executar uma calibração (isto é, executar uma "calibração de amostragem") após cada execução de uma calibração de valor conhecido (por exemplo, para determinar um valor de retardo 322 mais preciso). Em algumas modalidades, a unidade de calibração 340 pode também periodicamente executar calibrações de amostragem (por exemplo, após um período específico ter passado).
Observando agora a Figura 4, uma modalidade de uma unidade de calibração 340 está apresentada. Na modalidade ilustrada, a unidade de calibração 340 inclui uma unidade de comparação 410, uma unidade de a-mostra 420, e um ou mais temporizadores 430. A unidade de comparação 410, em uma modalidade, está configurada para facilitar a execução de calibrações de valor conhecido. Na modalidade ilustrada, a unidade de comparação 410 compara os bits capturados pelo armazenamento temporário 310 com os valores de teste 412 armazenados (por exemplo, cópias dos valores no armazenamento 350 tal como os padrões retornados pelo MR32 e o MR40) para identificar um valor de teste 352 capturado. A unidade de comparação 410 pode então determinar um valor de retardo 414 com base sobre quando esta identifica o valor de teste 352 capturado. Em algumas modalidades, a unidade de comparação 410 está configurada para comparar os bits capturados de múltiplas operações de leitura para identificar o valor 352 e determinar um valor de retardo 414. Em outras modalidades, a unidade de comparação 410 está configurada para comparar os bits capturados de somente uma única operação de leitura para identificar o valor 352 e determinar um valor de retardo. Em tal modalidade, os bits pode ser capturados em uma taxa mais alta do que a taxa de DQS (por exemplo, a cada quarto de ciclo de DQS) de modo que múltiplas operações de leitura são desnecessárias. Na modalidade ilustrada, a unidade de comparação 410 provê o valor 414 para facilitar a amostragem de DQS. Em outra modalidade, a unidade de calibração 340 pode direta- mente utilizar o valor 414 como um valor de retardo 322 para executar um ajuste de retardo 342. A unidade de amostragem 420, em uma modalidade, está configurada para facilitar a execução de calibrações de amostragem. Em várias modalidades, a unidade de amostragem 420 está configurada para amostrar o DQS que entra para verificar um padrão predeterminado de bordas ascendentes e descendentes de DQS para determinar quando o DQS torna-se válido. Em uma modalidade, a unidade de amostragem 420 amostra a uma taxa de, pelo menos, cada 1/16 de ciclo (por exemplo, 1/16 tCK relógios deslocados em fase podem ser gerados por uma DLL de sobreamostragem). Como acima notado, em uma modalidade , a unidade de amostragem 420 está configurada para amostrar o DQS durante uma operação de leitura normal; em outra modalidade, a unidade de amostragem 420 pode amostrar o DQS durante uma calibração de valor conhecido. Na modalidade ilustrada, a unidade de calibração 340 executa um ajuste 342 da unidade de retardo 342 com base no valor de retardo determinado pela 420 (em alguma modalidades, o valor de retardo determinado pela 420 pode ser mais preciso do que o valor 414 devido à taxa de amostragem mais alta utilizada pela unidade 420). Como acima notado, em várias modalidades, o ajuste de retardo 342 pode ser executado para posicionar a asseveração de início de captura 324 no meio da janela na qual o DQS é provável tornar-se válido.
Os temporizadores 430, em uma modalidade, são utilizados pela unidade de calibração 340 para determinar quando executar calibrações de valor conhecido e/ou de amostragem. Como acima notado, em algumas modalidades, a unidade de calibração 340 pode estar configurada para executar uma calibração de valor conhecido após uma inicialização (por exemplo, durante o boot de sistema), após sair do modo de autorregeneração de DRAM, etc., e pode executar uma calibração de amostragem imediatamente a seguir. Em algumas modalidades, a unidade de calibração 340 pode ainda executar calibrações de amostragem periodicamente. Em várias modalidades, os temporizadores 430 podem ser utilizadas para rastrear quando tais calibrações foram executada por último. Por exemplo, cada temporizador 430 pode ser carregado com um valor de partida na reinicialização e recarregado com o mesmo valor de partida após uma calibração. Em uma modalidade, quando um temporizado 430 atinge um primeiro limite, a unidade de calibração 340 pode determinar executar uma calibração de amostragem sobre a próxima leitura disponível. Se o temporizador 430 atingir um segundo limite antes que a leitura ocorra, a unidade de calibração 340 pode instruir o controlador de memória 220 para emitir um comando de leitura e amostrar o DQS durante a execução daquela operação de leitura. Se a unidade de calibração 340 não for capaz de completar a calibração de amostragem (por exemplo, a próxima leitura não ocorre cedo o suficiente ou a unidade de calibração 340 é incapaz de determinar quando o DQS torna-se válido) e um temporizador 430 atinge um terceiro limite, a unidade de calibração 340 pode então determinar executar uma calibração de valor conhecido. Em algumas modalidades, os temporizadores 430 podem incluir respectivos tempori-zadores 430 para cada classificação de memória controlados por uma memória PHY 230.
Observando agora a Figura 5A, uma modalidade do armazenamento temporário de dados 310 está apresentada. Na modalidade ilustrada, o armazenamento temporário 310 está configurado como um armazenamento de leitura / escrita de apontador primeiro que entra primeiro que sai (Fl-FO). Como mostrado, o armazenamento temporário 310 inclui engates 510A-D (por exemplo flip-flops de DQ), uma unidade de controle 520, e um multiplexador (MUX) 530.
Em uma modalidade, os engates 510A-D estão configurados para armazenar bits de dados de DQ recebidos do módulo de memória 240 até que os bits possam providos para o controlador de memória 220. Durante a operação normal (isto é, quando um valor de retardo 322 não está sendo determinado) em uma modalidade, a unidade de controle 520 seleciona um engate para cada DQ de bit recebido e temporiza o engate selecionado (isto é, faz com que o engate capture e armazene o bit) com base em DQS. A unidade de controle 520 pode então selecionar a saída de um engate 510 utilizando o MUX 530 durante uma leitura do armazenamento temporário 310. Para rasírear as escritas e leituras, a unidade de controle 520 pode manter contadores de captura e recaptura 522, os quais podem indicar a-queles últimos engates escritos para e lidos de {ou os próximos engates a serem escritos para e lidos de). Consequentemente, em uma modalidade, a lógica de controle 520 pode incrementar um contador de captura sobre a borda descendente (ou ascendente) de DQS quando um bit está sendo engatado, e pode incrementar um contador de recaptura sobre a borda descendente (ou ascendente) do sinal de relógio 302 quando um bit está sendo lido.
Em uma modalidade, quando um valor retardo 322 está sendo determinado, a unidade de controle 520 não incrementa os seus contadores de captura e recaptura 522, e ao invés, faz com que o mesmo engate 510 capture os bits do valor de teste. Como acima discutido, em várias modalidades, a unidade de calibração 340 (por exemplo, especificamente a unidade de comparação 410 na modalidade ilustrada) pode estar configurada para amostrar a saída do engate 510 para executar uma comparação dos bits. Como acima notado, em algumas modalidades, a unidade de calibração 340 está configurada para amostrar a saída de uma taxa mais alta do que a taxa de DQS (por exemplo, pelo menos a cada quarto de ciclo de DQS); em outras modalidades, a unidade 340 pode amostrar um único bit durante cada ciclo de DQS.
Observando agora a Figura 5B, outra modalidade do armazenamento temporário de dados 310 está apresentada. Na modalidade ilustrada, o armazenamento 310 está configurado como um armazenamento de FIFO de registro de deslocamento. Como mostrado, o armazenamento temporário 310 inclui os engates 550A-D e uma porta 560. Durante uma operação de leitura normal, os engates 550, em uma modalidade, são temporiza-dos por DQS conforme os bits de dados de DQ são deslocados de um engate 550 para o próximo. Na modalidade ilustrada, quando um valor de teste está sendo lido, no entanto, a porta 560 está fechada de modo que o DQS aciona somente o engate 550A e os bits não são deslocados para os engates 550B-550D subsequentes. A unidade de comparação 510 pode então ser configurada para amostrar a saída de somente o engate inicial 550A.
Observando agora à Figura 6, um fluxograma de um método 600 para determinar quando um sina! de validação de dados é válido está apresentado. O método 600 é uma modalidade de um método que pode ser executado por um circuito de interface de memória tal como a memória PHY 230. Em algumas modalidades, o método 600 pode ser executado durante uma inicialização da memória PHY 230 (por exemplo, durante um boot do IC 200), após sair de um modo de restauração para a memória, etc. Em muitos casos, a execução de método 600 pode reduzir os riscos de capturar dados inválidos.
Na etapa 610, a memória PHY 230 envia uma solicitação de leitura para a memória (por exemplo, o módulo de memória 240) para um valor de dados. Em uma modalidade, o valor de dados é um valor de teste armazenado em uma porção dedicada da memória (por exemplo, os registros MR 32 ou MR 34). Em outra modalidade, o valor de dados foi previamente escrito na memória. Em uma modalidade, a memória PHY 230 pode não gerar (isto é, emitir) a solicitação, mas ao invés fazer com que um controlador de memória (por exemplo, o controlador de memória 220) emita a solicitação de dados.
Na etapa 620, a memória PHY 230 executa uma captura do valor de dados (por exemplo, de um barramento 232). Em uma modalidade, a memória PHY 230 compara o valor de dados capturado com uma cópia correta (por exemplo, um dos valores de teste 412) para determinar se o valor de dados foi capturado corretamente. Em algumas modalidades, a memória PHY 230 pode executar uma pluralidade de capturas (por exemplo, pelo menos quatro), durante a etapa 620, para a mesma solicitação de leitura de modo que cada captura esteja associada com um respectivo valor de tempo (por exemplo, um valor potencial diferente de valor de retardo 322).
Na etapa 630, a memória PHY 230 determina um valor de tempo para determinar quando capturar os dados com base em um sinal de validação de dados (por exemplo, DQS). Em uma modalidade, o valor de tempo determinado é um valor (por exemplo, o valor de retardo 322) representativo do período entre a emissão de uma solicitação de leitura para a memória e o sinal de validação de dados sendo acionado pela memória. Em uma modalidade, se múltiplas capturas fossem executadas na etapa 620 para diferentes respectivos valores de tempo, a memória PHY 230 pode selecionar um dos respectivos valores de tempo como o valor de tempo inicial determinado. Consequentemente, em várias modalidades, um valor de tempo pode ser selecionado se este estiver no meio da janela na qual o sinal de validação de dados é provável tornar-se válido (por exemplo, dentro da sobreposição de períodos 120A e 120B acima descrita). Em uma modalidade, o valor selecionado pode então ser utilizado para subsequentemente capturar os dados da memória (por exemplo, controlando a porta 330).
Em algumas modalidades, o método 600 pode ser executado em conjunto com o método 700 descrito a seguir.
Observando agora a Figura 7, um fluxograma de outro método 700 para determinar quando um sinal de validação de dados é válido está apresentado. O método 700 é uma modalidade do método que pode ser e-xecutado por um circuito de interface de memória tal como a memória PHY 230. Em muitos casos, a execução do método 700 pode reduzir os riscos de capturar dados inválidos.
Na etapa 710, a memória PHY 230 determina um valor de tempo inicial para capturar os dados de uma memória com base em um sinal de validação de dados. Em algumas modalidades, a etapa 710 inclui executar o método 600 acima descrito.
Na etapa 720, a memória PHY 230 determina um valor de tempo ajustado utilizando o valor de tempo inicial (determinado na etapa 710 ou durante uma execução anterior da etapa 720) para amostrar o sinal de validação de dados. Em uma modalidade, a memória PHY 230 executa múltiplas amostras do sinal de validação de dados dentro de um único ciclo do sinal de validação de dados (por exemplo, a cada 1/16 de um ciclo). Em algumas modalidades, a memória PHY 230 amostra uma saída de um engate (por exemplo, o engate 510A ou 550A) dentro do armazenamento temporário para executar a pluralidade de amostras. Como acima discutido, em uma modalidade, a memória PHY 230 pode amostrar o sinal de validação de dados para verificar por um padrão predeterminado (por exemplo, de bordas ascendentes e descendentes de DQS) indicando quando o sinal de validação de dados torna-se válido. A memória PHY 230 pode então utilizar este valor de tempo ajustado para capturar os dados recebidos da memória.
Em várias modalidades, a memória PHY 230 pode continuar a executar periodicamente a etapa 720 por conta de qualquer ajuste do sinal de validação de dados. Para determinar quando reexecutar a etapa 720, a memória PHY 230, em uma modalidade, mantém um contador (por exemplo, um ou mais temporizadores 430) indicando quando uma última redetecção do tempo (por exemplo, determinado na execução anterior da etapa 720) foi executada e executa outra redetecção quando da expiração do contador.
SISTEMA DE COMPUTADOR EXEMPLAR
Observando a seguir a Figura 8 um diagrama de blocos de uma modalidade de um sistema 850 (o qual, em algumas modalidades, pode ser utilizado para implementar o sistema 10 acima descrito) está mostrado. Na modalidade ilustrada, o sistema 850 inclui pelo menos uma instância de um circuito integrado 200 acoplado a uma memória externa 852. A memória externa 852 pode formar o subsistema de memória principal acima discutido com referência à Figura 2 (por exemplo, a memória externa 852 pode incluir os módulos de memória 240). O circuito integrado 200 está acoplado a um ou mais periféricos 854 e na memória externa 852. Uma fonte de alimentação 856 está também provida a qual supre as voltagens de suprimento para o circuito integrado 858 assim como uma ou mais voltagens de suprimento para a memória 852 e/ou os periféricos 854. Em algumas modalidades, mais de uma instância do circuito integrado 200 pode ser incluída (e mais de uma memória externa 852 pode estar incluída também). A memória 852 pode ser qualquer tipo de memória, tal como uma memória de acesso randômico dinâmico (DRAM), DRAM síncrona (S-DRAM), taxa de dados dupla (DDR, DDR2, DDR3, etc.) SDRAM (incluindo as versões móveis das SDRAMs tal como mDDR3, etc., e/ou as versões de baixa potência das SDRAMs tal como LPDDR2, etc.), RAMBUS DRAM (R- DRAM), RAM estática (SRAM), etc. Um ou mais dispositivos de memória podem estar acoplados por sobre uma placa de circuito para formar módulos de memória tal como os módulos de memória em linha únicos SIMMs), os módulos de memória em linha duplos (DIMMs), etc. Alternativamente, os dispositivos podem ser montados com o circuito integrado 200 em uma configuração de chip sobre chip, uma configuração de pacote sobre pacote, ou uma configuração de múltiplos módulos de chip.
Os periféricos 854 podem incluir qualquer circuito desejado, dependendo do tipo de sistema 850. Por exemplo, em uma modalidade, o sistema 850 pode ser um dispositivo móvel (por exemplo, um assistente digital pessoal (PDA), smartphone, etc.) e os periféricos 854 podem incluir dispositivos de vários tipos de comunicação sem fio, tal como wifi, Bluetooth, celular, sistema de posicionamento global, etc. Os periféricos 854 podem também incluir um armazenamento adicional, incluindo um armazenamento de RAM, um armazenamento de estado sólido ou um armazenamento de disco. Os periféricos 854 podem incluir dispositivos de interface de usuário tal como uma tela de display, que inclui telas de display de toque ou telas de dis-play de múltiplos toques, teclado ou outros dispositivos de entrada, microfones, alto-falantes, etc. Em outras modalidades, o sistema 850 pode ser qualquer tipo de sistema de computação (por exemplo, computador pessoal desktop, laptop, estão de trabalho, net top, etc.
Apesar de modalidades específicas terem sido acima descritas, estas modalidades não pretendem limitar o escopo da presente descrição, mesmo onde somente uma única modalidade está descrita com relação a uma característica específica. Exemplos de características providas na descrição pretendem ser ilustrativos ao invés de restritivos a menos que de outro modo declarado. A descrição acima pretende cobrir tais alternativas, modificações, e equivalentes como seria aparente para uma pessoa versada na técnica tendo o benefício desta descrição. O escopo da presente descrição inclui qualquer característica ou combinação de características aqui descritas (ou explicitamente ou implicitamente), ou qualquer sua generalização, caso esta mitiga qualquer um ou todos os problemas aqui tratados. Consequentemente, novas reivindicações podem ser formuladas durante o prosseguimento deste pedido (ou um pedido que reivindica prioridade a este) a qualquer tal combinação de características. Especificamente, com referência às reivindicações anexas, as características de reivindicações dependentes podem ser combinadas com aquelas das reivindicações independentes e as características de respectivas reivindicações independentes podem ser combinadas em qualquer modo apropriado e não meramente nas combinações específicas enumeradas nas reivindicações anexas.

Claims (17)

1. Aparelho, que compreende: um circuito de interface de memória configurado para determinar um valor de tempo inicial para capturar os dados de uma memória com base em um sinal de validação de dados; e um circuito de interface de memória configurado para determinar um valor de tempo ajustado para capturar os dados, em que o circuito de interface de memória está configurado para determinar o valor de tempo a-justado utilizando o valor de tempo inicial para amostrar o sinal de validação de dados.
2. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória está configurado para: executar uma captura de um valor conhecido da memória; e determinar o valor de tempo inicial com base em se o valor conhecido é capturado corretamente; em que o valor de tempo inicial é um valor representativo de um período entre a emissão de uma solicitação de leitura para a memória e o sinal de validação de dados sendo acionado pela memória.
3. Aparelho de acordo com a reivindicação 2, em que o circuito de interface de memória está configurado para: executar uma pluralidade de capturas em resposta a uma única operação de leitura do valor conhecido, em que cada captura está associada com um respectivo valor de tempo; e selecionar um dos respectivos valores de tempo como o valor de tempo inicial determinado.
4. Aparelho de acordo com a reivindicação 2, ainda compreendendo: um controlador de memória acoplado no circuito de interface de memória; em que o circuito de interface de memória está configurado para fazer com que o controlador de memória emita a solicitação de leitura.
5. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória está configurado para: executar uma pluralidade de amostras do sinal de validação de dados dentro de um único ciclo do sinal de validação de dados; e utilizar o valor de tempo ajustado para determinar quando permitir que o sinal de validação de dados cause uma captura de dados.
6. Aparelho de acordo com a reivindicação 5, em que o circuito de interface de memória está configurado para executar uma pluralidade de amostras em resposta a uma operação de regeneração da memória.
7. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória está configurado para executar periodicamente uma determinação de um valor de tempo ajustado para capturar os dados.
8. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória está configurado para determinar o valor de tempo ajustado durante a execução de uma operação de leitura.
9. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória está configurado para: manter um contador que indica quando uma última determinação de um valor de tempo para capturar os dados foi executada; e executar uma determinação de um valor de tempo quando da expiração do contador.
10. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória inclui um armazenamento temporário configurado para capturar os dados de um barramento acoplado entre o circuito de interface de memória e a memória, e em que o circuito de interface de memória está configurado para amostrar uma saída de um engate dentro do armazenamento temporário para executar uma pluralidade de amostras.
11. Aparelho de acordo com a reivindicação 1, em que o circuito de interface de memória inclui um engate configurado para capturar os dados de um barramento, e em que o circuito de interface de memória está configurado para controlar quando o sinal de validação de dados é provido para o engate com base no valor de tempo inicial.
12. Método, que compreende: um circuito de interface de memória enviando uma solicitação de leitura para uma memória para um valor de dados; um circuito de interface de memória executando uma pluralidade de amostras do valor de dados durante um único ciclo de um sinal de validação de dados; e com base na pluralidade de amostras, o circuito de interface de memória determinando um tempo quando o sinal de validação de dados é válido para capturar os dados da memória.
13. Método de acordo com a reivindicação 12, em que o circuito de interface de memória inclui um armazenamento temporário configurado para capturar o valor de dados de um barramento acoplado entre o circuito de interface de memória e a memória, e em que o circuito de interface de memória está configurado para amostrar uma saída de um engate dentro do armazenamento temporário para executar a pluralidade de amostras.
14. Método de acordo com a reivindicação 12, em que a pluralidade de amostras é executada em resposta a uma operação de restauração da memória.
15. Método de acordo com a reivindicação 12, em que a pluralidade de amostras inclui pelo menos 4 amostras.
16. Método, que compreende: uma memória recebendo uma solicitação de leitura de um circuito de interface de memória para um valor de dados; a memória enviando o valor de dados para o circuito de interface de memória, em que o de interface de memória está configurado para executar uma pluralidade de amostras do valor de dados durante um único ciclo de um sinal de validação de dados, e em que o circuito de interface de memória está configurado para determinar, com base na pluralidade de amostras, um tempo quando um sinal de validação de dados é válido para capturar os dados da memória.
17. Método de acordo com a reivindicação 16, em que a memória está configurada para armazenar pelo menos dois valores de teste em porções dedicadas da memória, e em que o circuito de interface de memória está configurado para comparar uma versão capturada do valor de dados enviado com uma cópia de um dos pelo menos dois valores para determinar se a versão capturada do valor de dados enviado foi capturada corretamente.
BRBR102012022563-8A 2011-09-08 2012-09-06 Detecção de validação de dados dinâmina BR102012022563A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/227,974 US8897084B2 (en) 2011-09-08 2011-09-08 Dynamic data strobe detection

Publications (1)

Publication Number Publication Date
BR102012022563A2 true BR102012022563A2 (pt) 2015-06-09

Family

ID=47148587

Family Applications (1)

Application Number Title Priority Date Filing Date
BRBR102012022563-8A BR102012022563A2 (pt) 2011-09-08 2012-09-06 Detecção de validação de dados dinâmina

Country Status (9)

Country Link
US (1) US8897084B2 (pt)
EP (1) EP2568387A1 (pt)
JP (1) JP2013058209A (pt)
KR (1) KR101471251B1 (pt)
CN (1) CN102999454B (pt)
AU (1) AU2012216673B8 (pt)
BR (1) BR102012022563A2 (pt)
TW (1) TWI474178B (pt)
WO (1) WO2013036477A1 (pt)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9431091B2 (en) 2008-06-06 2016-08-30 Uniquify, Inc. Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers
US8949520B2 (en) * 2009-01-22 2015-02-03 Rambus Inc. Maintenance operations in a DRAM
JP2013065372A (ja) * 2011-09-16 2013-04-11 Elpida Memory Inc 半導体装置およびそれを利用した情報処理システム
US9123408B2 (en) * 2013-05-24 2015-09-01 Qualcomm Incorporated Low latency synchronization scheme for mesochronous DDR system
US9166590B1 (en) 2014-01-23 2015-10-20 Altera Corporation Integrated circuits with improved memory interface calibration capabilities
JP6367591B2 (ja) * 2014-03-31 2018-08-01 株式会社メガチップス データストローブエッジ検出回路、データストローブ処理回路及びデータリード回路
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
US9209961B1 (en) * 2014-09-29 2015-12-08 Apple Inc. Method and apparatus for delay compensation in data transmission
KR102235521B1 (ko) * 2015-02-13 2021-04-05 삼성전자주식회사 특정 패턴을 갖는 저장 장치 및 그것의 동작 방법
JP6451505B2 (ja) 2015-05-28 2019-01-16 株式会社ソシオネクスト 受信回路、受信回路のタイミング調整方法、半導体装置
US9577854B1 (en) * 2015-08-20 2017-02-21 Micron Technology, Inc. Apparatuses and methods for asymmetric bi-directional signaling incorporating multi-level encoding
US9672882B1 (en) * 2016-03-29 2017-06-06 Apple Inc. Conditional reference voltage calibration of a memory system in data transmisson
US10083736B1 (en) * 2016-06-23 2018-09-25 Apple Inc. Adaptive calibration scheduling for a memory subsystem based on calibrations of delay applied to data strobe and calibration of reference voltage
JP6171066B1 (ja) * 2016-09-01 2017-07-26 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN108874686B (zh) * 2017-05-08 2021-08-03 龙芯中科技术股份有限公司 内存参数调节方法、装置及设备
US10204668B1 (en) * 2017-10-09 2019-02-12 Sandisk Technologies Llc On die delay range calibration
US10347347B1 (en) * 2017-12-18 2019-07-09 Intel Corporation Link training mechanism by controlling delay in data path
US10402121B2 (en) * 2017-12-21 2019-09-03 Apple Inc. Systems and methods for reducing performance state change latency
US10566037B1 (en) * 2018-07-27 2020-02-18 Western Digital Technologies, Inc Automated voltage and timing margin measurement for NAND flash interface
KR20200052562A (ko) 2018-11-07 2020-05-15 삼성전자주식회사 스토리지 장치
US11226752B2 (en) 2019-03-05 2022-01-18 Apple Inc. Filtering memory calibration
CN113450867B (zh) * 2020-03-27 2022-04-12 长鑫存储技术有限公司 形成用于存储器测试的数据库的方法及存储器测试方法
CN113568848B (zh) * 2020-07-29 2023-07-11 华为技术有限公司 处理器、信号调整方法及计算机系统
US11862224B2 (en) * 2021-01-22 2024-01-02 Realtek Semiconductor Corp. Method for performing memory calibration, associated system on chip integrated circuit and non-transitory computer-readable medium

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453402B1 (en) 1999-07-13 2002-09-17 Micron Technology, Inc. Method for synchronizing strobe and data signals from a RAM
JP4450586B2 (ja) 2003-09-03 2010-04-14 株式会社ルネサステクノロジ 半導体集積回路
US7259606B2 (en) 2004-01-27 2007-08-21 Nvidia Corporation Data sampling clock edge placement training for high speed GPU-memory interface
CN1930559A (zh) * 2004-01-27 2007-03-14 辉达公司 对高速gpu存储器接口的数据采样时钟边缘布置训练
US7079427B2 (en) 2004-07-02 2006-07-18 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for a high-speed access architecture for semiconductor memory
US7171321B2 (en) * 2004-08-20 2007-01-30 Rambus Inc. Individual data line strobe-offset control in memory systems
US7366862B2 (en) 2004-11-12 2008-04-29 Lsi Logic Corporation Method and apparatus for self-adjusting input delay in DDR-based memory systems
US7215584B2 (en) 2005-07-01 2007-05-08 Lsi Logic Corporation Method and/or apparatus for training DQS strobe gating
US7443741B2 (en) 2005-07-07 2008-10-28 Lsi Corporation DQS strobe centering (data eye training) method
JP5013394B2 (ja) * 2005-09-13 2012-08-29 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US7698589B2 (en) * 2006-03-21 2010-04-13 Mediatek Inc. Memory controller and device with data strobe calibration
US7603246B2 (en) * 2006-03-31 2009-10-13 Nvidia Corporation Data interface calibration
US7685393B2 (en) 2006-06-30 2010-03-23 Mosaid Technologies Incorporated Synchronous memory read data capture
JP2008103013A (ja) 2006-10-18 2008-05-01 Nec Electronics Corp メモリリード制御回路およびその制御方法
US7948812B2 (en) 2006-11-20 2011-05-24 Rambus Inc. Memory systems and methods for dynamically phase adjusting a write strobe and data to account for receive-clock drift
US7983368B2 (en) * 2006-12-11 2011-07-19 International Business Machines Corporation Systems and arrangements for clock and data recovery in communications
WO2008079910A2 (en) * 2006-12-20 2008-07-03 Rambus Inc. Strobe acquisition and tracking
EP2140454A2 (en) * 2007-04-19 2010-01-06 Rambus, Inc. Clock synchronization in a memory system
JP4517312B2 (ja) 2008-07-08 2010-08-04 ソニー株式会社 メモリアクセス制御装置および撮像装置
JPWO2010137330A1 (ja) * 2009-05-27 2012-11-12 パナソニック株式会社 遅延調整装置、遅延調整方法
JP2011003088A (ja) * 2009-06-19 2011-01-06 Panasonic Corp データラッチ調整装置およびそれを用いたメモリアクセスシステム
JP5258687B2 (ja) 2009-07-13 2013-08-07 ルネサスエレクトロニクス株式会社 メモリインタフェース制御回路
JP2011059762A (ja) 2009-09-07 2011-03-24 Ricoh Co Ltd メモリ制御システム及びメモリ制御方法
US8284621B2 (en) 2010-02-15 2012-10-09 International Business Machines Corporation Strobe offset in bidirectional memory strobe configurations
US8300464B2 (en) * 2010-04-13 2012-10-30 Freescale Semiconductor, Inc. Method and circuit for calibrating data capture in a memory controller

Also Published As

Publication number Publication date
AU2012216673A1 (en) 2013-03-28
AU2012216673A8 (en) 2014-07-03
KR20130028013A (ko) 2013-03-18
TWI474178B (zh) 2015-02-21
TW201319815A (zh) 2013-05-16
AU2012216673B8 (en) 2014-07-03
EP2568387A1 (en) 2013-03-13
WO2013036477A1 (en) 2013-03-14
CN102999454B (zh) 2016-01-27
US8897084B2 (en) 2014-11-25
JP2013058209A (ja) 2013-03-28
US20130064025A1 (en) 2013-03-14
CN102999454A (zh) 2013-03-27
AU2012216673B2 (en) 2014-02-27
KR101471251B1 (ko) 2014-12-09

Similar Documents

Publication Publication Date Title
BR102012022563A2 (pt) Detecção de validação de dados dinâmina
KR101549648B1 (ko) 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치
US9715907B1 (en) Optimal data eye for improved Vref margin
US8880831B2 (en) Method and apparatus to reduce memory read latency
KR101295994B1 (ko) 주파수 변경 동안의 효율적인 dll 훈련 프로토콜을 위한 메커니즘
US20110040902A1 (en) Compensation engine for training double data rate delays
US8422319B2 (en) System and method for gate training in a memory system
US10224072B2 (en) Error detection code hold pattern synchronization
US6898682B2 (en) Automatic READ latency calculation without software intervention for a source-synchronous interface
US9111050B2 (en) Switching a computer system from a high performance mode to a low power mode
JPH0916282A (ja) クロック制御方式
US11829640B2 (en) Asynchronous arbitration across clock domains for register writes in an integrated circuit chip
Sreehari et al. AHB DDR SDRAM enhanced memory controller
KR20070071158A (ko) 디스플레이 드라이버 회로에서 sram을 제어하는 장치및 방법
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories
Vijayaraghavan et al. SVA for Memories: Memory controller protocol
Chin 32-bit memory controller design: design of memory controller for micron SDR SDRAM

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 4A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2385 DE 20-09-2016 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.