BR122016007765A2 - sistema de memória - Google Patents

sistema de memória Download PDF

Info

Publication number
BR122016007765A2
BR122016007765A2 BR122016007765A BR122016007765A BR122016007765A2 BR 122016007765 A2 BR122016007765 A2 BR 122016007765A2 BR 122016007765 A BR122016007765 A BR 122016007765A BR 122016007765 A BR122016007765 A BR 122016007765A BR 122016007765 A2 BR122016007765 A2 BR 122016007765A2
Authority
BR
Brazil
Prior art keywords
memory module
memory
error
error signal
controller
Prior art date
Application number
BR122016007765A
Other languages
English (en)
Other versions
BR122016007765B1 (pt
Inventor
Nale Bill
V Lovelace John
C Jasper Jonathan
Zhu Jun
K Nachimuthu Murugasamy
M Quach Tuan
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of BR122016007765A2 publication Critical patent/BR122016007765A2/pt
Publication of BR122016007765B1 publication Critical patent/BR122016007765B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06COMPUTING OR CALCULATING; 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/0683Plurality of storage devices
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • 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
    • G11C7/1003Interface circuits for daisy chain or ring bus memory arrangements
    • 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
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • 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
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

patente de invenção: "sistema de memória". trata-se de um dispositivo para uso em um módulo de memória acoplado a um controlador de memória do host através de um barramento, que compreende lógica de controle de módulo de memória para gerar um sinal de solicitação para um controlador de memória do host que tem uma largura de pulso maior que ou igual a uma largura de pulso mínima, em que a largura de pulso mínima compreende um número de ciclos de relógio necessário para garantir que o controlador de memória do host detecte o sinal de solicitação, e em que a largura de pulso do sinal de solicitação indica pelo menos uma função em adição ao sinal de solicitação para o controlador de memória do host.

Description

CAMPO DA TÉCNICA [002] Modalidades descritas no presente documento referem-se, em geral, a um sistema de memória no qual um controlador de memória do host se comunica em um canal ou barramento único com múltiplos módulos de memória que têm um formato de pino compatível com as aberturas acopladas ao canal e controlador de memória do host. O controlador de memória do host suporta um protocolo usado pelos múltiplos módulos de memória acoplados ao canal, tal como o protocolo de Taxa de Dados Dupla de Terceira Geração (DDR3). Se os módulos de memória, tais como Módulos de Memória Duais Em Linha (DIMMs), têm sincronismos diferentes para emitir dados no barramento, tal como o caso com tipos diferentes de DIMMs, então, o controlador de memória do host tem que se ajustar àquelas diferenças de sincronismo entre os diferentes DIMMs acoplados. O controlador de memória do host pode comunicar comandos de ciclo único.
[003] Antes de usar o barramento, o controlador de memória do host precisa configurar os módulos de memória para operações. No protocolo DDR3, o controlador de memória do host pode usar um comando de Definição de Registro de Modo (MRS) para programar até oito registros de modo nos chips de memória, tais como chips de Memória de Acesso Aleatório Dinâmica (DRAM), no pacote de módulo de memória. O comando de MRS identifica o registro de modo no chip de memória e inclui um bit de inversão que indica se os dados são invertidos. Após o barramento ser treinado, o controlador de memória do host pode, então, usar o barramento para comandos de leitura e gravação e transferir dados.
2/44 [004] Os comandos podem ser enviados um bit por faixa por comando. Durante um modo de sincronismo normal, por exemplo, sincronismo 1N, o sinal de seleção de chip é colocado no barramento no ciclo do comando para fazer com que o módulo de memória selecionado aceite o comando. Durante as operações de velocidade alta, tal como durante sincronismo 2N, o controlador de memória do host coloca o sinal de seleção de chip no barramento de um ciclo de relógio antes do comando para permitir tempo de instalação adicional.
[005] Um sinal de habilitação de relógio pode ser usado para gerenciar sinais de relógio interno no módulo de memória. Um sinal alto de habilitação de relógio (CKE) ativa os sinais de relógio interno e é mantido alto por todos os acessos de leitura e gravação. Um sinal baixo de CKE para o módulo de memória desativa os sinais de relógio interno, armazenamentos temporários de entrada de dispositivo e controladores de saída. Receber sinais Baixos de CKE desliga e atualiza as operações.
[006] Quando gravações são comunicadas do controlador de memória do host para um módulo de memória, as gravações no módulo de memória podem ser diretamente gravadas para os chips de memória. Entretanto, em módulos de memória que têm um armazenamento temporário de gravação, um sistema de crédito pode ser implantado em que é atribuído, para o controlador de memória do host, um número máximo de créditos de gravação e não pode enviar um comando de gravação a menos que haja créditos de gravação disponíveis. Os créditos de gravação são decrementados mediante o envio de um comando de gravação. O módulo de memória enviará uma mensagem através do barramento quando cada gravação tiver sido concluída para retornar o crédito para o controlador de memória do host, o que incrementa o contador de créditos de gravação quando a mensagem é recebida.
3/44 [007] Para evitar comunicar um padrão vexatório quando do envio de solicitações de leitura e gravação, os controladores de memória do host atuais podem embaralhar os dados para reduzir a probabilidade de produzir repetidamente um padrão vexatório que possa provocar um erro no barramento. Mediante a recepção de dados de gravação embaralhados com um endereço de gravação, o módulo de memória armazena os dados de gravação embaralhados no endereço de gravação. Em resposta a uma solicitação de leitura, os dados embaralhados que estão armazenados são enviados através do barramento para o controlador de memória do host desembaraihar e usar.
BREVE DESCRIÇÃO DAS FIGURAS [008] Modalidades são descritas a título de exemplo, com referência aos desenhos anexos, que são não desenhados em escala, nos quais numerais de referência semelhantes se referem a elementos similares.
[009] A Figura 1 ilustra uma modalidade de um sistema que tem um sistema de memória.
[0010] A Figura 2 ilustra uma modalidade de um módulo de memória.
[0011] A Figura 3 ilustra uma modalidade de um projeto de pinagem do sistema de memória.
[0012] A Figura 4 é uma modalidade de operações para gerar e processar um sinal de solicitação que codifica uma função.
[0013] A Figura 5 ilustra uma modalidade de operações para determinar um ajuste de sincronismo para emitir em um módulo de memória.
[0014] A Figura 6 ilustra uma modalidade de um comando de definição de registro de modo (MRS).
[0015] A Figura 7 ilustra uma modalidade de operações para gerar e processar o comando de MRS.
4/44 [0016] As Figuras 8 e 9 fornecem gráficos de sincronismo para emitir um comando em duas partes.
[0017] As Figuras 10 e 11 ilustram modalidades de operações para gerar e aceitar um comando enviado em múltiplos ciclos de relógio.
[0018] A Figura 12 ilustra uma modalidade de operações para indicar uma configuração de interface suportada para o controlador de módulo de memória.
[0019] A Figura 13 ilustra uma modalidade de operações para o controlador de módulo de memória para usar bits de endereço com base em uma configuração de interface suportada.
[0020] A Figura 14 ilustra uma modalidade de operações para usar comandos para indicar operações de gerenciamento de potência.
[0021] A Figura 15 ilustra uma modalidade de operações para usar créditos de gravação para enviar comandos de gravação e retornar créditos de gravação para o controlador de memória do host.
[0022] A Figura 16 ilustra uma modalidade de operações para gerar um pacote de dados de leitura com um contador de créditos de gravação.
[0023] A Figura 17 ilustra uma modalidade de operações para processar um pacote de dados de leitura.
[0024] A Figura 18 ilustra uma modalidade de operações para processar um fluxo de operações de erro com o uso de um sinal de erro.
[0025] A Figura 19 ilustra uma modalidade de operações para processar um erro de gravação, [0026] A Figura 20 ilustra uma modalidade de operações para embaralhar e desembaralhar dados transmitidos através do barramento.
[0027] A Figura 21 ilustra uma modalidade de operações para desembaralhar dados de gravação no módulo de memória.
[0028] A Figura 22 ilustra uma modalidade de operações para definir um parâmetro que indica uma configuração de interface de barra
5/44 mento.
[0029] A Figura 23 ilustra uma modalidade de operação para selecionar uma configuração de interface de barramento para processar uma solicitação de transferir.
DESCRIÇÃO DE MODALIDADES [0030] Na descrição a seguir, numerosos detalhes específicos tais como implantações lógicas, opcodes, meios para especificar operandos, implantações de particionamento/ compartilhamento/ duplicação de recursos, tipos e inter-relacionamentos de componentes do sistema, e escolhas de particionamento/integração lógica são apresentados a fim de fornecer uma compreensão mais profunda da presente invenção. Será entendido, entretanto, por uma pessoa versada na técnica que a invenção pode ser praticada sem esses detalhes específicos. Em outros casos, estruturas de controle, circuitos ao nível de porta e sequências de instruções de software completas não são mostrados em detalhes a fim de não obscurecer a invenção. As pessoas com conhecimentos comuns da técnica, com as descrições incluídas, serão capazes de implantar funcionalidade apropriada sem experimentação desnecessária.
[0031] Referências no relatório descritivo a uma modalidade, uma modalidade exemplificativa, etc., indicam que a modalidade descrita pode incluir um recurso, estrutura ou característica particular, mas toda modalidade pode não incluir necessariamente o recurso, estrutura, ou característica particular. Além disso, essas expressões não estão necessariamente se referindo à mesma modalidade.
[0032] Na descrição e reivindicações a seguir, os termos acoplado e conectado, juntamente com seus derivativos, podem ser usados. Deve ser compreendido que esses termos são não entendidos como sinônimos entre si. Acoplado é usado para indicar que dois ou mais elementos, que podem, ou não, estar em contato físico ou elétri
6/44 co direto entre si, cooperam ou interagem entre si. Conectado é usado para indicar o estabelecimento de comunicação entre dois ou mais elementos que são acoplados entre si. Certas modalidades são relacionadas a conjuntos eletrônicos de dispositivos de memória. Modalidades incluem tanto dispositivos como métodos para formar conjuntos eletrônicos.
[0033] A Figura 1 ilustra uma modalidade de um sistema de computação 2 que inclui um ou mais processadores 4, um controlador de memória do host 6 e múltiplos módulos de memória 8a, 8b, que são, tipicamente, montados em uma placa mãe. Os processadores 4 podem compreender um processador de múltiplos núcleos de unidade de processamento central. O controlador de memória do host 6, em resposta a solicitações de acesso à memória a partir dos processadores 4, se comunica com múltiplos módulos de memória 8a, 8b através de um barramento 10, também referenciado como um canal, interface de barramento, etc., em que ambos os módulos de memória 8a, 8b são conectados separada e independentemente ao mesmo barramento 10. O controlador de memória do host 6 pode incluir um contador de solicitação 7 que é incrementado quando recebe um sinal de solicitação para uma concessão para usar quando, posteriormente, emite concessões com base no número de solicitações indicado no contador de solicitação 7, um contador de créditos de gravação 9 que indica um número ou créditos que permitem escrever solicitações para serem enviadas para um dos módulos de memória 8a, 8b, e um valor de semente de embaralhar 11 usado para desembaralhar os dados solicitados de leitura de um dos módulos de memória 8a, 8b.
[0034] Na modalidade da Figura 1, os módulos de memória 8a, 8b são montados em aberturas ou soquetes de memória na placa mãe do sistema 2. Os módulos de memória 8a, 8b podem compreender o mesmo tipo ou tipos diferentes de módulos de memória que têm uma
7/44 disposição de pinos compatível com a disposição de pinos nas aberturas de memória na placa mãe. Adicionalmente, os módulos de memória podem suportar os mesmos protocolos ou protocolos diferentes de memória, tais como protocolo de Taxa de Dados Duplicada de Quarta Geração (DDR4) e protocolos adicionais. Embora apenas dois módulos de memória 8a, 8b sejam mostrados, pode haver múltiplos módulos de memória.
[0035] Cada um dos módulos de memória 8a, 8b inclui chips de memória 12a, 14a, 16a, 18a e 12b, 14b, 16b, 18b, respectivamente, em um ou ambos os lados do módulo de memória, 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 8a, 8b, compreendem os elementos de armazenamento que armazenam dados que são usados pelo processador 4.
[0036] Cada módulo de memória 8a, 8b pode incluir um controlador de módulo de memória 20a, 20b para coordenar operações de gerenciamento e acesso de memória com o controlador de memória do host 6. O controlador de memória do host 6 inclui lógica para gerenciar operações de leitura e gravação e operações de gerenciamento de memória com relação aos módulos de memória 8a, 8b conectados ao barramento 10, e fazer interface com o processador 4 aos módulos de memória 8a, 8b. O controlador de memória do host 6 pode ser integrado ao processador 4 ou implantado em lógica separada do processador 4 na placa mãe de sistema 2.
[0037] A placa mãe de sistema 2 pode incluir um soquete de memória compatível com tipos diferentes de chips de memória, para permitir tipos diferentes de módulos de memória 8a, 8b que suportam tipos diferentes de dispositivos de memória que suportam protocolos de memória diferentes desde que os tipos diferentes de módulos de memória 8a, 8b sejam compatíveis com a arquitetura de pinos nos soque
8/44 tes de memória.
[0038] Em uma modalidade, os módulos de memória 8a, 8b podem compreender um mesmo tipo ou tipo diferente de Memórias de Acesso Aleatório Dinâmico (DRAMs). Em uma modalidade, os módulos de memória 8a, 8b podem compreender Módulos de Memória Em Linha Duais (DIMMs), tais como DIMMs sem armazenamento temporário (UDIMM), Módulo de Memória Em Linha Dual de Carga Reduzida (LRDIMM), um Módulo de Memória Em Linha Dual de Perfil Baixo (SODIMM), etc.. Os módulos de memória 8a, 8b podem implantar várias formas de memória, que incluem, porém sem limitações, memória NAND (flash), memória de acesso aleatório ferroelétrica (FeTRAM), memória não volátil baseada em nanofios, memória de ponto cruzado tridimensional (3D) tal como memória de mudança de fase (PCM), memória que incorpora tecnologia de memristor, memória de acesso aleatório Magnetoresistiva (MRAM), MRAM de Transferência de Torque por Meio da Rotação do Spin (STT), etc..
[0039] Em certas modalidades, devido a tipos diferentes de módulos de memória 8a, 8b poderem ser montados e conectados ao barramento 10, os módulos de memória 8a, 8b podem suportar protocolos diferentes. Por exemplo, o módulo de memória 8a pode compreender um tipo de DIMM que se conforma ao protocolo Taxa de Dados Dupla de Quarta Geração (DDR4) de DRAM Estática (SDRAM) e o módulo de memória 8b pode usar um protocolo diferente, mas ser compatível no mesmo barramento 10 ao módulo de memória 8a que usa o protocolo DDR4. Protocolos alternativos e diferentes também podem ser usados e implantados nos módulos de memória 8a, 8b.
[0040] Se os módulos de memória 8a, 8b suportarem protocolos DRAM diferentes, então o controlador de memória do host 6 é configurado para comunicar com o uso de protocolos diferentes através do barramento 10, um primeiro protocolo específico para o módulo de
9/44 memória 8a, por exemplo, DDR4, e um segundo protocolo de memória específico para o módulo de memória 8b. Solicitações de leitura e gerenciamento para o módulo de memória 8a são implantadas com o primeiro protocolo de memória e para o segundo módulo de memória 8b com o uso do segundo protocolo de memória.
[0041] A Figura 2 fornece detalhes adicionais de uma modalidade de um módulo de memória 8, tal como os módulos de memória 8a, 8b, como incluindo um controlador de módulo de memória 20 que realiza as operações de módulo de memória e as interações com o controlador de memória do host 6. Em certas implantações, um dos módulos de memória, por exemplo, 8b, pode incluir o módulo de memória da Figura 2, e o outro módulo de memória, por exemplo, 8a, pode não incluir o controlador de módulo de memória 20, tal como um módulo de memória 8a em conformidade com o padrão DDR4. Nessas modalidades, o módulo de memória 8a, pode incluir um registro, tal como o caso com um RDIMM ou um armazenamento temporário, tal como o caso com um LRDIMM.
[0042] O módulo de memória 8 pode incluir registros de modo 22 no controlador de módulo de memória que têm dados que podem ser configurados com o uso de um comando de Definição de Registro de Modo (MRS), um armazenamento temporário de leitura 24 para armazenamento temporário de dados de leitura que são retornados para o controlador de memória do host 6 em resposta a um comando de leitura, um registro de operações de gerenciamento de potência 26 que indica operações de gerenciamento de potência para realizar, um armazenamento temporário de gravação 28 para armazenamento temporário de dados de gravação antes de serem escritos para os chips de memória 12, 14, 16, 18, um contador de créditos de gravação 30 que indica um número de créditos de gravação para retornar para o controlador de memória do host 6, um valor de semente de embara
10/44 lhamento 32 usado para randomizar dados de leitura transferidos através do barramento 10 para o controlador de memória do host 6, e um parâmetro de interface 34 que identifica uma configuração de interface suportada do barramento 10. Os armazenamentos temporários e parâmetros 24, 26, 28, 30, 32, e 34 podem ser implantados dentro do controlador de módulo de memória 20 ou em conjunto de circuitos externo ao controlador de módulo de memória 20 no módulo de memória
8. Alguns dos parâmetros 26, 30, 32, e 34 podem ser implantados em registros de modo 22.
[0043] Em certas modalidades, o módulo de memória 8a pode compreender uma memória próxima que é configurada como uma camada de armazenamento em cache para uma memória distante que compreende o módulo de memória 8b. Nessa configuração, o módulo de memória próxima 8a deve ter o efeito de reduzir os tempos de acesso dos endereços de memória de sistema acessados mais frequentemente que o módulo de memória distante específico 8b é projetado para armazenar em cache. Os dispositivos de memória próxima podem ser configurados como um cache mapeado direto para sua contrapartida de memória distante.
[0044] As modalidades de controlador de módulo de memória 20 e controlador de memória do host 6 descritas podem ser codificadas em lógica de hardware, tal como em um Circuito Integrado de Aplicação Específica (ASIC), Arranjo de Portas Programável em Campo (FPGA), etc..
[0045] Elementos de modalidades da presente invenção também podem ser fornecidos como uma mídia legível por máquina para armazenar as instruções executáveis por máquina. A mídia legível por máquina pode incluir, porém sem limitações, memória flash, discos ópticos, memória somente de leitura de disco compacto (CD-ROM), discos versáteis/vídeo digitais (DVD) ROM, memória de acesso aleató
11/44 rio (RAM), memória somente de leitura programável apagável (EPROM), memória somente de leitura programável apagável eletricamente (EEPROM), cartões magnéticos ou ópticos, mídias de propagação ou outro tipo de mídias legíveis por máquina adequadas para armazenar instruções eletrônicas. Por exemplo, modalidades da invenção podem ser transferidas por download como um programa de computador que pode ser transferido de um computador remoto (por exemplo, um servidor) para um computador solicitante (por exemplo, um cliente) por meio de uma transmissão de rede.
[0046] A Figura 3 ilustra uma disposição dos pinos no módulo de memória 8a, 8b, com o controlador de memória do host 6, linhas de barramento 10 e os módulos de memória 8a, 8b, em que essas designações de pino são descritas abaixo ou conhecidas na técnica.
FUNÇÕES DE CODIFICAÇÃO EM UM SINAL DE SOLICITAÇÃO [0047] Em certas modalidades, o controlador de módulo de memória 20 pode enviar um sinal de solicitação, por exemplo, REQ# 50, para o controlador de memória do host 6 para indicar que há dados no armazenamento temporário de leitura 24 para o controlador de memória do host 6 retornar como parte de um comando de leitura. O sinal de solicitação pode compreender o sinal de habilitação de relógio (CKE) REQ# 50 mostrado no diagrama de pinagem da Figura 3. O controlador de módulo de memória 18 pode transmitir o sinal de solicitação em uma largura de pulso mínima para garantir a detecção pelo controlador de memória do host 6, o que em certas implantações pode compreender dois ciclos de relógio. O controlador de módulo de memória 20 pode codificar adicionalmente uma função adicional no sinal de solicitação para o controlador de memória do host 6 realizar. Codificando-se funções adicionais no sinal de solicitação, múltiplas funções podem ser indicadas em um sinal a fim de maximizar o número de operações e informações comunicadas em um único sinal.
12/44 [0048] A Figura 4 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 e pelo controlador de módulo de memória 20 para usar o sinal de solicitação para comunicar funções adicionais para o controlador de memória do host 6. Mediante o início de (no bloco 100) uma operação para gerar um sinal de solicitação, que pode ser parte de um comando de leitura para transferir dados do armazenamento temporário de leitura 24 de volta para o controlador de memória do host 6, o controlador de módulo de memória 20 determina (no bloco 102) uma função para incluir com o sinal de solicitação, função esta que pode indicar operações adicionais para o controlador de memória do host 6 realizar, tais como uma condição ou interrupção de erro específica ou outras funções. O controlador de módulo de memória 20 então determina (no bloco 104) uma largura de pulso usada para indicar ou codificar a função determinada. Por exemplo, uma largura de pulso igual à largura de pulso mínima, para garantir a detecção pelo controlador de memória do host 6 do sinal de solicitação, pode ser usada para indicar ou codificar uma primeira função, larguras de pulso adicionais que sejam maiores do que a largura de pulso mínima podem ser usadas para indicar funções adicionais. Por exemplo, se a largura de pulso mínima para garantir detecção for de dois relógios, então essa largura de pulso mínima para o sinal de solicitação pode indicar uma função, e larguras de pulso de 6, 10, e 14 podem indicar ainda funções adicionais diferentes. Uma largura de pulso de 14 pode indicar uma falha catastrófica. Adicionalmente, as larguras de pulso diferentes para o sinal de solicitação, associadas a funções diferentes, podem ser separadas por um número de ciclos de relógio mínimo, tal como 3 ciclos em certas modalidades, para garantir a detecção apropriada pelo controlador de memória do host 6 da largura de pulso. O controlador de módulo de memória 20 gera (no bloco 106) o sinal de solicitação que tem a largura de pulso determinada pa
13/44 ra enviar para o controlador de memória do host 6.
[0049] Mediante a detecção (no bloco 108) do sinal de solicitação REQO# no pino 50 que tem a largura de pulso mínima ou primeira, por exemplo, 2 relógios, o controlador de memória do host 6 incrementa (no bloco 110) um contador de solicitação 7 que indica um número de sinais de concessão que precisam ser enviados para o módulo de memória 8b o envio do sinal de solicitação. Após incrementar o contador de solicitação 7, o controlador de memória do host 6 pode esperar até que uma abertura no barramento 10, ou seja, barramento de dados, esteja disponível para emitir múltiplas das solicitações de concessão, de modo que as solicitações indicadas no contador de solicitação 7 sejam processadas em um lote em tempos aleatórios diferentes. Mediante a recepção do sinal de concessão, o controlador de módulo de memória 20 envia (no bloco 112) dados no armazenamento temporário de leitura 24 para o controlador de memória do host 6, tal como dados recolhidos e armazenados temporariamente em resposta a uma solicitação de leitura do controlador de memória do host 6.
[0050] Após determinar a largura de pulso mínima ou primeira do sinal de solicitação 50, se o sinal de solicitação 50 (no bloco 114) não continuar além da largura de pulso mínima medida, então o controle termina. Caso contrário, se (no bloco 116) o sinal de solicitação medido não continuar além de uma segunda largura de pulso, por exemplo, 6 relógios, então o controlador de memória do host 6 pode executar (no bloco 118) uma segunda função associada àquela da segunda largura de pulso. Caso contrário, se (no bloco 120) o sinal de solicitação 50 não continuar além de uma terceira largura de pulso medida, por exemplo, 10 relógios, então o controlador de memória do host 6 pode executar (no bloco 122) uma terceira função associada àquela terceira largura de pulso. Se a largura de pulso continuar e uma quarta largura de pulso, por exemplo, 14 relógios, for medida (no bloco 124), então o
14/44 controlador de memória do host 6 pode executar (no bloco 126) manipulação de falha catastrófica para o controlador de memória do host 6 realizar.
[0051] Embora as modalidades descritas digam respeito a quatro funções para quatro larguras de pulso diferentes do sinal de solicitação, em certas implantações pode haver mais ou menos do que quatro funções representadas por mais ou menos do que quatro larguras de pulso. Adicionalmente, uma largura de pulso pode indicar uma definição de múltiplas funções para realizar.
[0052] Nas operações da Figura 4, as funções além da função de concessão de solicitação inicial são processadas apenas após determinar que a largura de pulso não continua além da largura de pulso associada àquelas funções adicionais. Em uma modalidade alternativa, cada função adicional pode executar mediante medição da largura de pulso associada àquela função mesmo se a largura de pulso continuar além daquela largura de pulso medida, assim cada função é executada quando as medições da largura de pulso se estendem além da largura de pulso de disparo.
[0053] Com a modalidade descrita da Figura 4, funções diferentes podem ser codificadas em um sinal de solicitação pelo controlador de módulo de memória 20 usando-se diferente larguras de pulso para o controlador de módulo de memória que podem ser separadas por um número de relógios mínimo que garante a detecção da largura de pulso pelo controlador de memória do host 6. Dessa forma, em um único sinal de solicitação, o controlador de módulo de memória 20 pode sinalizar um sinal de solicitação, tal como uma solicitação para retornar dados do armazenamento temporário de leitura 24, e uma de uma pluralidade de funções diferentes.
AJUSTE DO SINCRONISMO DE SAÍDA DE UM PRIMEIRO MÓDULO DE MEMÓRIA COM BASE EM DIFERENÇAS DE COMPONENTE
15/44
COM UM SEGUNDO MÓDULO DE MEMÓRIA PARA CORRESPONDER AO SINCRONISMO DO SEGUNDO MÓDULO DE MEMÓRIA [0054] Em certas implantações, os módulos de memória 8a e 8b podem compreender tipos de módulos de memória diferentes que têm componentes diferentes. Por exemplo, o módulo de memória 8a pode incluir, ou não, registros e armazenamentos temporários de dados não incluídos no módulo de memória 8b, e vice-versa, e os módulos de memória 8a, 8b podem suportar protocolos de memória diferentes. As modalidades descritas fornecem técnicas para um módulo de memória, tal como 8b, ajustar seu sincronismo para corresponder àquele do outro módulo de memória, por exemplo, 8a, para que o controlador de memória do host 6 não tenha que se ajustar a sincronismos diferentes de módulos de memória diferentes, tais como tipos diferentes de DIMMs. Tendo-se o controlador de módulo de memória 20a, 20b manipulando os ajustes de sincronismo, os ciclos de retorno excessivos e perda de desempenho no controlador de memória do host são evitados.
[0055] A Figura 5 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20, tal como o controlador de módulo de memória 20b, para ajustar o sincronismo de saída com base em diferenças de componente com outros módulos de memória 8a, 8b no barramento 10. Mediante o início (no bloco 200) de uma operação para emitir dados a partir do armazenamento temporário de dados 24, o controlador de módulo de memória 20b determina (no bloco 202) um ajuste de sincronismo com base em pelo menos um componente em pelo menos um dos módulos de memória 8a, 8b no canal. Os blocos 204 a 208 fornecem uma modalidade de operações para determinar o ajuste de sincronismo. O controlador de módulo de memória 20b pode acelerar (no bloco 204) o sincronismo em resposta ao primeiro módulo de memória 8b ter pelo menos um componente que efetua
16/44 sincronismo da saída que não é incluído no outro segundo módulo de memória 8a. Adicionalmente, um retardo pode ser adicionado (no bloco 206) ao sincronismo em resposta ao outro segundo módulo de memória 8a no barramento 10 que tem pelo menos um componente que efetua o sincronismo da saída no segundo módulo de memória 8b que não é incluído no primeiro módulo de memória 8b.
[0056] O controlador de módulo de memória 20b pode então determinar (no bloco 208) um ajuste de sincronismo de rede a partir de qualquer retardo ou aceleração adicionados do sincronismo. O controlador de módulo de memória 20b ajusta (no bloco 210) um sincronismo de saída do armazenamento temporário de dados 24 para o controlador de memória do host 6 com base no ajuste de sincronismo determinado para corresponder a um sincronismo de saída no segundo módulo de memória 8a.
[0057] Por exemplo, se o módulo de memória 8b que inclui o controlador 8b que realiza os cálculos inclui um armazenamento temporário de dados 24 não encontrado no outro módulo de memória 8a, então o ajuste de sincronismo pode compreender acelerar o sincronismo da saída quando o outro segundo módulo de memória 8a não incluir um armazenamento temporário de dados tal como incluído no primeiro módulo de memória 8b. Em outra implantação, se o outro módulo de memória 8a tiver um registro não incluído no módulo de memória 8b que realiza o cálculo, tal como o caso com um RDIMM, então o ajuste de sincronismo compreende retardar o sincronismo da saída para acomodar ao registro no outro módulo de memória 8a não incluído no módulo de memória 8b que faz o cálculo. Se a aceleração de sincronismo para o armazenamento temporário de dados 24 foi maior do que o retardo adicionado ao registro no outro módulo de memória 8a, então o ajuste de sincronismo de rede compreendería uma aceleração do sincronismo. Do mesmo modo, se o retardo adicionado for maior do
17/44 que a aceleração, então o ajuste de rede compreendería adicionar um retardo ao sincronismo. Se o módulo de memória 8b que faz os cálculos não incluir registros ou armazenamentos temporários de dados 24 incluídos no outro módulo de memória, tal como se o outro módulo de memória 8a for um RDIMM e LRDIMM, então o controlador de módulo de memória 20b pode retardar o sincronismo para levar em conta retardos causados pelos componentes adicionais no outro módulo de memória 8a.
[0058] Os módulos de memória 8a, 8b podem ter tipos de componentes diferentes em seus barramentos de comando, endereço e controle para o barramento 10 se os mesmos compreenderem tipos diferentes de DIMMs, tais como UDIMMs, RDIMMs e LRDIMMs.
[0059] Em certas modalidades descritas, a saída à qual o sincronismo é ajustado compreende a saída de dados em um barramento de dados no barramento 10 do armazenamento temporário de dados 24. Em modalidades alternativas, os sinais de saída ajustados podem compreender saídas além das saída de dados.
[0060] Embora as operações sejam descritas com relação a um módulo de memória que realiza ajustes de sincronismo, um ou múltiplos módulos de memória 8a, 8b no barramento 10 podem realizar os ajustes de sincronismo da Figura 5.
[0061] Com os ajustes de sincronismo descritos, o controlador de módulo de memória 20b pode ajustar o sincronismo de sua saída, tal como saída de um armazenamento temporário de dados 24, para corresponder o sincronismo do outro módulo de memória 8a para tipos similares de saída para que o controlador de memória do host 6 não precise realizar qualquer dos ajustes de sincronismo para acomodar as configurações diferentes dos módulos de memória diferentes 8a, 8b no barramento 10.
USO DE CODIFICAÇÃO DE REGISTROS EM UM COMANDO DE
18/44
DEFINIÇÃO DE REGISTRO DE MODO (MRS) [0062] O controlador de módulo de memória 20 pode incluir registros de modo 22. Em certas modalidades, o controlador de módulo de memória 20b pode implantar um primeiro protocolo que é diferente de um segundo protocolo de memória usado em outro controlador 8a, tal como DDR 4. Entretanto, o controlador de módulo de memória 20b pode suportar certos comandos do segundo protocolo do outro módulo de memória 8a, tal como DDR4, tal como o comando de Definição de Registro de Modo (MRS), ainda que use o comando para um propósito diferente do usado pelo controlador de módulo de memória 20a que implanta o primeiro protocolo de memória.
[0063] A Figura 6 ilustra uma modalidade do comando de MRS 250, que pode incluir, ou não, campos de MRS de outro protocolo de memória, tal como DDR4. O comando 250 especifica um código de operação 252 que indica a operação de MRS. Os registros de endereço A0 a A13 podem ser usados para fornecer dados para um dos registros de modo 22 no controlador de módulo de memória 20 e os bits de registro 254 que indicam o registro de modo 22 para o qual escrever os dados nos endereços A0 a A13. Por exemplo, se houver 16 registros de modo 22, então quatro bits de registro 254, tais como BA0, BA1, BG0, BG1, podem indicar um dos 16 registros de modo 22 no controlador de módulo de memória 20 para uso.
[0064] Em uma modalidade, o comando de MRS 250 pode compreender um comando de ciclo único que pode ser usado para fornecer parâmetros de configuração para o módulo de memória 8 antes de o barramento 10 ser treinado para operações de barramento, tais como operações de leitura e gravação que podem compreender dois comandos de ciclo. Dessa forma, o comando de MRS 250 usa sinais de entrada de endereço A0 a A17, mostrados no projeto de pinagem da Figura 3 como linha 52 e sinais de entrada de comando BG1:0 e
19/44
ΒΑ1:0, mostrados como linhas 54 e 56, respectivamente, no projeto de pinagem da Figura 3. Em certas modalidades, os sinais de entrada de endereço A14 a 16 contêm o código de operação de comando de MRS.
[0065] A Figura 7 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 e pelo controlador de módulo de memória 20 para programar os registros de modo 22 no controlador de módulo de memória 20. Durante a inicialização, tal como antes de o barramento 10 ser treinado para leitura e operações, que podem compreender comandos enviados em dois relógios, o controlador de memória do host 6 pode gerar (no bloco 280) e enviar um comando de MRS 250 para indicar um registro de modo 22 no controlador de módulo de memória 20 para configurar com dados incluídos nos campos de endereço A13:0, qual comando de MRS 250 pode ser enviado em um ciclo de relógio.
[0066] O controlador de módulo de memória 20 recebe (no bloco 282) o comando de MRS 250 e determina (no bloco 284) o registro de modo 22 indicado nos bits de registro 254 nas linhas 34 e 35 (Figura
3). O controlador de módulo de memória 20 então escreve (no bloco 286) os dados fornecidos nos bits de endereço A0:A13 no registro de modo determinado 22.
[0067] O controlador de memória do host 6 pode adicionalmente usar o comando de MRS 250 de acordo com o protocolo DDR4 para enviar para um módulo de memória, por exemplo, o módulo de memória 8a, que implanta o protocolo DDR4, para programar um de oito registros de modo em um dos chips de memória 12a, 14a, 16a, 18a, onde os bits de registro BA0, BA1, BG0 identificam o registro de modo no chip de memória e o bit BG1 que indica se os bits são invertidos. Dessa forma, o controlador de memória do host 6 pode usar o mesmo comando de formato de MRS para os controladores de memória 20a,
20/44
20b que implantam protocolos de memória diferentes para provocar operações diferentes de acordo com os protocolos diferentes. Por exemplo, quando o comando de MRS 250 é usado para um módulo de memória 8a que suporta DDR4, o comando de MRS 250 escreve dados para um registro de modo em um dos chips de memória 12a, 14a, 16a, 18a. Quando usado para um módulo de memória 8b que tem registros de modo 22 no controlador de módulo de memória 20, o comando de MRS 250 escreve dados para os registros de modo 22 no controlador de módulo de memória 20 e não para os chips de DRAM 12, 14, 16, 18. Dessa forma, o controlador de memória do host 6 pode usar o mesmo formato de comando de MRS com módulos de memória que suportam protocolos de memória diferentes, por exemplo, DDR4 e algum outro protocolo.
ACEITAÇÃO POR UM MÓDULO DE MEMÓRIA DE UMA SEGUNDA METADE DE UM COMANDO QUANDO UM SINAL DE SELEÇÃO DE CHIP É RECEBIDO APENAS PARA UMA PRIMEIRA METADE DO COMANDO [0068] As modalidades descritas fornecem técnicas para um módulo de memória aceitar um comando em múltiplas partes, tal como em duas metades, tendo apenas que aceitar um sinal de seleção de chip para o módulo de memória 8 para que o módulo de memória 8 aceite automaticamente a segunda metade do comando em um intervalo de retardo a partir de quando a primeira metade do comando foi enviada. Modalidades adicionais fornecem técnicas para incorporar um retardo de modo a aceitar automaticamente a segunda metade do comando em um modo de sincronismo de velocidade alta, por exemplo, sincronÍsmo2N, quando o módulo de memória 8a, 8b está operando em velocidades mais altas ao contrário de um modo de sincronismo regular, por exemplo, sincronismol N.
[0069] Em certas modalidades, os comandos ocupam dois bits por
21/44 faixa e são enviados em relógios consecutivos. Isso permite que o endereço inteiro seja enviado em um comando em vez de dois, tal como o envio de informações de fila e coluna em um comando. O controlador de módulo de memória 20 é informado do modo de sincronismo de velocidade alta (2N) através do controlador de memória do host 6 que programa os registros de modo 22 no controlador de módulo de memória 20.
[0070] A Figura 8 fornece uma modalidade de um gráfico de sincronismo para um modo de sincronismo regular, por exemplo, sincronismo 1N, para comandos, tais como comandos de leitura, que são enviados em duas partes, mostradas como CMDOa, CMDOb, CMD1a, CMD1b, CMD2a, CMD2b. O controlador de memória do host 6 pode colocar uma primeira metade do comando CMDOa e um sinal de seleção de chip S0# 302, também mostrado como SO# linha 58 na Figura 3, no barramento em um ciclo de relógio 300 para um primeiro módulo de memória 8a. O primeiro módulo de memória 8a pode aceitar a primeira metade do comando CMDOa no ciclo 300 mediante a recepção do sinal de seleção de chip 302 e pode adicionalmente aceitar, de forma automática, a segunda metade do comando CMDOb em um intervalo de retardo a partir da primeira metade do comando CMDOa, tal como um ciclo de relógio depois no ciclo de relógio 304.
[0071] O controlador de memória do host 6 pode colocar uma primeira metade do comando CMD1a e um sinal de seleção de chip S2# 306, também mostrado como S2# linha 60 na Figura 3, no barramento em um ciclo de relógio 308 para selecionar um segundo módulo de memória 8b. O segundo módulo de memória 8b pode aceitar a primeira metade do comando CMD1a no ciclo 308 mediante a recepção do sinal de seleção de chip 306 e pode adicionalmente aceitar, de forma automática, a segunda metade do comando CMD1b um ciclo de relógio depois no ciclo 310.
22/44 [0072] A Figura 9 fornece uma modalidade de um sincronismo gráfico para um modo de sincronismo de velocidade alta para velocidades mais altas do que sincronismo regular, por exemplo, sincronismo2N, em que ambas as partes de cada comando, mostradas como CMDOa, CMDOb, CMD1a, CMD1b, CMD2a, CMD2b, permanecem no barramento 10 por dois ciclos de relógio. O controlador de memória do host 6 pode colocar uma primeira metade do comando CMDOa no barramento em um ciclo de relógio 320 por dois ciclos e colocar um sinal de seleção de chip S0# 322, também mostrado como SO# linha 38 na Figura 3, no barramento em um ciclo de relógio 324 para o primeiro módulo de memória 8a um ciclo a partir de quando a primeira metade do comando CMDOa foi colocada no barramento 10, para, desse modo, retardar o sinal de seleção de chip em modo de sincronismo de velocidade alta. O primeiro módulo de memória 8a pode aceitar a primeira metade do comando CMDOa no ciclo de relógio 324 na recepção do sinal de seleção de chip 322 e pode adicionalmente aceitar, de forma automática, a segunda metade do comando CMDOb em um intervalo de retardo, mostrado como dois ciclos de relógio a partir do sinal de seleção de chip 322, no início do ciclo de relógio 328.
[0073] O controlador de memória do host 6 pode colocar uma primeira metade do comando CMD1a para fora no ciclo 330 e um sinal de seleção de chip S2# 332, também mostrado como S2# linha 60 na Figura 3, um ciclo depois no ciclo 332 para um segundo módulo de memória 8b. O segundo módulo de memória 8b pode aceitar a primeira metade do comando CMD1a no ciclo de relógio 336 do sinal de seleção de chip 332 e pode adicionalmente ler, de forma automática, a segunda metade do comando CMD1b dois ciclos de relógio depois no ciclo 338. Dessa forma, o controlador de memória do host 6 retarda o sinal de chip um ciclo de relógio na metade através da primeira metade do comando e o controlador de módulo de memória 20 retarda a
23/44 leitura da segunda metade do comando dois ciclos após ler a primeira metade do comando.
[0074] A Figura 10 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 e pelo controlador de módulo de memória 20 para um modo de sincronismo 1N para comandos que ocupam dois bits em ciclos consecutivos. O controlador de memória do host 6 pode programar o controlador de módulo de memória 20 através de bits nos registros de modo 22 durante inicialização para operar em modo de sincronismo 1N. Mediante iniciação (no bloco 350) de um comando de dois ciclos em modo de sincronismo regular, 1N, o controlador de memória do host 6 coloca (no bloco 352) uma primeira metade de um comando (um ciclo) no barramento 10 em um primeiro ciclo de relógio. Um comando de seleção de chip também é colocado (no bloco 354) no barramento 10 no primeiro ciclo de relógio. Mediante a detecção pelo controlador de módulo de memória 20 (no bloco 356) do sinal de seleção de chip direcionado ao módulo específico de memória 8 que inclui o controlador de módulo de memória 20 quando programado em modo de sincronismo regular, o controlador de módulo de memória 20 aceita (no bloco 358) a primeira metade do comando no barramento 10 no primeiro ciclo de relógio.
[0075] Além disso, o controlador de memória do host 6 coloca (no bloco 360) uma segunda metade do comando (em um ciclo consecutivo a partir da primeira metade) no barramento 10 em um segundo ciclo de relógio um ciclo de relógio a partir do primeiro ciclo de relógio. O módulo de memória 8 selecionado pelo sinal de seleção de chip aceita (no bloco 362) a segunda metade do comando no barramento 10 no segundo ciclo de relógio esperando-se um retardo de ciclo a partir de quando o sinal de seleção de chip foi recebido e a primeira metade do comando aceito. O controlador de módulo de memória 20 pode aceitar automaticamente a segunda metade do comando no barramento 10
24/44 sem exigir um sinal de seleção de chip para acessar o barramento 10. [0076] A Figura 11 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 e o controlador de módulo de memória 20 para um modo de sincronismo de alta velocidade, por exemplo, 2N, para comandos que ocupam dois bits em ciclos consecutivos. O controlador de módulo de memória 20 pode ser programado através de bits nos registros de modo 22 durante inicialização para operar em modo de sincronismo de alta velocidade. Mediante iniciação (no bloco 380) de um comando de dois ciclos em modo de sincronismo de alta velocidade, o controlador de memória do host 6 coloca (no bloco 382) uma primeira metade de um comando (um ciclo) no barramento 10 em um primeiro ciclo de relógio. Um sinal de seleção de chip é, então, colocado (no bloco 384) no barramento 10 em um segundo ciclo de relógio que pode ser um ciclo de relógio a partir do primeiro ciclo de relógio. Desse modo, o sinal de seleção de chip é colocado no barramento com um retardo, tal como um ciclo de relógio, a partir da colocação da primeira metade do comando. Mediante a detecção, pelo controlador de módulo de memória 20 (no bloco 386) do sinal de seleção de chip direcionado para o módulo específico 8 quando programado em modo de sincronismo de alta velocidade, o controlador de módulo de memória 20 aceita (no bloco 388) a primeira metade do comando no barramento 10 no segundo ciclo de relógio com um retardo. [0077] Além disso, o controlador de memória do host 6 coloca (no bloco 390) uma segunda metade do comando (dois ciclos a partir da primeira metade) no barramento 10 em um terceiro ciclo de relógio dois ciclos a partir do primeiro ciclo de relógio. O controlador de módulo de memória 20 no módulo de memória 8 selecionado pelo sinal de seleção de chip aceita (no bloco 392) a segunda metade do comando no barramento 10 em um quarto ciclo de relógio pela espera de um retardo de dois ciclos a partir de quando o sinal de seleção de chip foi
25/44 recebido e a primeira metade do comando aceito. O controlador de módulo de memória 20 pode automaticamente aceitar a segunda metade do comando sem esperar por um sinal de seleção de chip no barramento 10.
[0078] As modalidades descritas proporcionam que o sinal de seleção de chip seja retardado por um sinal de relógio no modo de sincronismo de alta velocidade, por exemplo, sincronismo 2N, no envio da primeira metade do comando. Além disso, o módulo de memória pode automaticamente aceitar a segunda metade dos dois sinais de relógio de comando depois do sinal de seleção de chip. Esse retardo no sinal de seleção de chip permite tempo de instalação adicional em modo de alta velocidade. O retardo em aceitar a segunda metade do comando permite aceitação automática do comando sem exigir um sinal de seleção de chip.
[0079] Em modalidades alternativas, o sinal de seleção de chip pode ser colocado no barramento e a segunda metade do comando pode ser aceita em intervalos diferentes dos do descrito um sinal de relógio. Além disso, em modalidades alternativas, os comandos podem compreender mais de duas partes (por exemplo, bits) e usar mais de dois ciclos de relógio e o módulo de memória 8a, 8b pode automaticamente aceitar mais de uma parte adicional do comando a intervalos de retardo de sinal de relógio do sinal de seleção de chip sem exigir sinais de seleção de chip adicionais para aceitar.
DETERMINAR COMO DEFINIR BITS DE ENDEREÇO ALTO EM UM MÓDULO DE MEMÓRIA [0080] O controlador de módulo de memória 20 pode ser configurado para operar em módulos de memória 8 que têm diferentes configurações de pino e interface, tal como um módulo de memória que tem mais pinos para endereçamento que outro módulo de memória que tem menos pinos, tal como um SO-DIMM. O módulo de memória
26/44 com menos pinos de endereçamento pode fornecer um espaço de endereço menor que um módulo de memória que tem mais pinos disponíveis para endereçamento. A configuração suportada de interface pode variar devido às capacidades do controlador de memória a quente 6 e do barramento 10 ou variar devido às capacidades da configuração de pino e interface do módulo de memória 8, tal como enviar um SODIMM ou UDIMM.
[0081] Para tais modalidades, o controlador de módulo de memória 20 pode usar um dos registros de modo 22 para indicar configurações de interface suportadas, tal como indicar se o módulo de memória tem pinos disponíveis para bits de endereço alto ou não. Nesse caso, se o controlador de módulo de memória 20 estiver operando em um módulo 8 que não tem um ou mais pinos para bits de endereço alto disponíveis em outros módulos de memória, então, o controlador de módulo de memória 20 iria usar um valor predeterminado, tal como zero, para aqueles bits de endereço alto indisponíveis no módulo. Desse modo, o controlador de módulo de memória 20 assume um valor de zero para os bits de endereço alto quando não houver pinos para receber valores para aqueles bits de endereço alto. Em uma modalidade, os bits de endereço alto podem compreender o bit de endereço A17 52 e o bit C2:0 62 mostrado no diagrama de pinagem da Figura 3. Determinados módulos de memória, tais como um SO-DIMM, pode não incluir os pinos 52 e 62.
[0082] A Figura 12 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 para configurar definições para endereçamento. O controlador de memória do host 6 pode enviar um sinal MRS para o módulo de memória 8 que indica a configuração suportada de interface. Mediante recebimento (no bloco 400) o sinal MRS que indica a configuração suportada de interface, o controlador de módulo de memória 20 pode atualizar o registro de modo
27/44 endereçado pelo sinal MRS para indicar a configuração suportada de interface, que pode indicar o tipo de DIMM, por exemplo, SO-DIMM, UDIMM, etc. ou indicar o que a interface suporta, por exemplo, que os bits de endereço alto são suportados ou não. Em resposta, o controlador de módulo de memória 20 define (no bloco 402) o registro de modo endereçado 22 que indica a configuração de interface para indicar a configuração de interface comunicada, tal como indicar se bits de endereço alto são suportados ou não.
[0083] A Figura 13 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 para manipular endereçamento que usam os bits de endereço de nível mais alto. Mediante recebimento (no bloco 420) de um comando do controlador de memória do host 6 que tem bits de endereço, o controlador de módulo de memória 20 determina a configuração suportada de interface a partir do registro de modo 22, sendo que essas informações indicam se o módulo de memória atual 8 suporta endereçamento nos bits de endereço alto. Se (no bloco 422) a configuração suportada de interface não suporta bits de endereço alto, por exemplo, o módulo de memória 8 não tem pinos 52 e 62, então, pelo menos um dentre os bits de endereço alto para o endereço recebido é definido para ser um valor predeterminado, isto é, presume-se que os bits de endereço alto sejam zero quando não houver pinos para os bits de endereço alto. Se (no bloco 422) a configuração suportada de interface indicada no registro de modo 22 indicar que bits de endereço alto estão disponíveis, então, o controlador de módulo de memória 20 usa (no bloco 426) pelo menos um bit de endereço alto para o endereço recebido no pelo menos um pino de endereço alto 52, 62.
[0084] Em modalidades alternativas, o controlador de módulo de memória 20 pode abastecer valores predeterminados para bits de endereço que não sejam os bits de endereço alto que não têm pinos no
2QIAA módulo de memória.
[0085] As modalidades descritas permitem a um controlador de módulo de memória operar dentro de módulos de memória que têm diferentes configurações de pino disponíveis para endereçamento de modo a fornecer bits de endereço de ordem alta para uma configuração de módulo de memória que não tenha pinos para fornecer bits de endereço alto. Desse modo, o controlador de módulo de memória pode estar posicionado e operar em módulos de memória tais como um SO-DIMM e UDIMM e fornecer as capacidades de endereçamento totais para ambas as configurações de interface.
FORNECER OPERAÇÕES ESTENDIDAS PARA UM SINAL CKE BAIXO [0086] As modalidades descritas fornecem técnicas para permitir a pré-configuração de operações de gerenciamento de potência em um módulo de memória 8 que devem ser realizadas em um momento posterior quando o controlador de módulo de memória detecta um sinal baixo de habilitação de relógio (CKE) em um pino CKE, tal como os pinos 64 ou 66 mostrados no diagrama de pinagem da Figura 3. Isso permite que uma série estendida de operações de gerenciamento de potência seja realizada mediante ativação do sinal baixo de CKE, tal como entrar em um estado inativo predefinido.
[0087] Diferentes estados inativos possíveis poderíam ser ativados mediante recebimento do sinal baixo de CKE dependendo do comando de pré-CKE anteriormente enviado. Esses estados indicados podem compreender aqueles especificados na especificação de Interface Avançada de Configuração e Energia (ACPI), tal como um estado de espera S3, inativo ou suspenso para o módulo de memória 8, que permanece ligado a um nível mais baixo, um estado S4 de hibernação onde o conteúdo do módulo de memória 8 é salvo em uma memória não volátil e o módulo de memória 8 tem a potência diminuída, e um
29/44 estado S5, onde o módulo de memória 8 tem a potência diminuída enquanto uma quantidade mínima de potência é abastecida à unidade de fonte de alimentação. A memória não volátil em que o conteúdo é salvo pode vir em várias formas, o que inclui, porém, sem limitação, memória (flash) NAND, memória de acesso aleatório ferroelétrica (FeTRAM), memória não volátil com base em nanofio, memória de ponto cruzado tridimensional(3D) tal como memória de mudança de fase (PCM), memória que incorpora tecnologia de memristor, memória de acesso aleatório magnetorresistiva (MRAM), Torque de Transferência de Giro (STT)-MRAM.
[0088] A Figura 14 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 e pelo controlador de módulo de memória 20 para facilitar operações de gerenciamento de potência que usem o sinal baixo de CKE. Para iniciar operações para mudar o modo de gerenciamento de potência, tal como mudar para um dos vários modos inativos reconhecidos, o controlador de memória do host 6 envia (no bloco 500) um comando de pré-CKE para o controlador de módulo de memória 20 através do barramento 10 que indica uma ou mais operações de gerenciamento de potência. Em uma modalidade, o comando de pré-CKE pode indicar uma ou mais operações específicas ou fornece um código que representa uma série de operações. Por exemplo, o comando de pré-CKE pode indicar a estado de gerenciamento de potência, tal como a estado de sistema ou modo inativo, por exemplo, S3, S4, e S5 dos estados de modo inativo ACPI, que o controlador de módulo de memória 20 pode interpretar como a série de operações a realizar para implantar esse estado.
[0089] Mediante recebimento (no bloco 502) do comando de préCKE, o controlador de módulo de memória 20 define um registro de operação de gerenciamento de potência 26 para indicar pelo menos uma operação de gerenciamento de potência indicada no comando de
30/44 pré-CKE. Em um momento subsequente quando o controlador de memória do host 6 quer que o módulo de memória 8a, 8b implante a mudança de estado das operações de gerenciamento de potência indicadas, o controlador de memória do host 6 aponta (no bloco 506) o sinal baixo de CKE 56, por exemplo, baixo nos pinos 64 ou 66 (Figura
2). Mediante detecção (no bloco 508) do sinal baixo de CKE, o controlador de módulo de memória 20 determina (no bloco 510) se o registro de operação de gerenciamento de potência 56 indica operações a realizar, tal como por indicar um modo estado inativo ou operações específicas. Se não há operações indicadas, tal como um valor nulo ou padrão, o controlador de módulo de memória 20 pode realizar (no bloco 512) uma operação padrão para manipular um sinal baixo de CKE, tal como a desativação de sinais de relógio internos, uma operação précarga de diminuição de potência ou autoatualização. Se operações ou um modo de potência forem indicados no registro 26, então, o controlador de módulo de memória 20 realiza (no bloco 514) as operações de gerenciamento de potência indicadas no registro 26 para implantar um estado de gerenciamento de potência especificado, por exemplo, estado inativo.
[0090] As modalidades descritas fornecem técnicas para configurar um controlador de módulo de memória para realizar uma série de operações de gerenciamento de potência em um momento subsequente que usam o sinal baixo de CKE, Depois do comando de préCKE ser enviado, o controlador de memória do host 6 irá apontar o sinal baixo de CKE para disparar operações de gerenciamento de potência mais envolvidas para mudar o modo de potência do que seriam normalmente disparadas em resposta ao sinal baixo de CKE. Com as modalidades descritas, menos sinais são necessários para o gerenciamento de potência porque uma operação de gerenciamento de potência mais envolvida, tal como fazer a transição para o modo inativo,
31/44 pode ser iniciada com o sinal baixo de CKE
FORNECER PARA UM CONTROLADOR DE MEMÓRIA DO HOST CRÉDITOS DE GRAVAÇÃO PARA COMANDOS DE GRAVAÇÃO [0091] As modalidades descritas fornecem técnicas para fornecer para o controlador de memória do host 6 créditos de gravação para uso no envio de comandos de gravação pela inclusão dos créditos de gravação em pacotes de dados de leitura retornados para reduzir o consumo da largura de banda de barramento no barramento 10.
[0092] Com relação à Figura 1, o controlador de memória do host 6 inclui um contador de crédito de gravação 9 e irá enviar comandos de gravação somente quando o contador de crédito de gravação 9 tiver créditos positivos. O contador de crédito de gravação 9 é diminuído quando se envia um comando de gravação. Pode haver um contador de crédito de gravação 9 para cada módulo de memória 8a, 8b. O módulo de memória 8 inclui um armazenamento temporário de gravação 28 para armazenar temporariamente dados de gravação recebidos que são, então, posteriormente desescalonados em elementos de armazenamento nos chips de memória 12, 14, 16, 18. O controlador de módulo de memória 20 tem um contador de crédito de gravação 30 que indica créditos acumulados de gravação para retorno para o controlador de memória do host 6. Os créditos de gravação são usados para regular o uso do armazenamento temporário de gravação 28 de modo que o controlador de memória do host 6 não envie dados de gravação para estourar o armazenamento temporário de gravação 28.
[0093] A Figura 15 ilustra uma modalidade de operações para o controlador de memória do host 6 e para o controlador de módulo de memória 20 para processar um comando de gravação. Mediante a geração de um comando de gravação, o controlador de memória do host 6 determina (no bloco 602) se o contador de crédito de gravação 30 é maior que zero, não vazio. Se assim for, o comando de gravação é
32/44 enviado (no bloco 604) para o módulo de memória 8. Se (no bloco 602) o contador de crédito de gravação do host 9 estiver vazio, então, o controlador de memória do host 6 espera até que créditos estejam disponíveis para enviar o comando de gravação.
[0094] Mediante recebimento (no bloco 610) de um comando de gravação, o controlador de módulo de memória 20 armazena temporariamente (no bloco 612) os dados de gravação no armazenamento temporário de gravação 30. Mediante desalojamento (no bloco 614) dos dados de gravação do armazenamento temporário de gravação 30 nos elementos de armazenamento nos chips de memória 12, 14, 16, 18, o controlador de módulo de memória 20 aumenta (no bloco 616) o contador de crédito de gravação 30 que indica um crédito para retorno para o controlador de memória do host 6 para permitir outro comando de gravação. Se (no bloco 618) o contador de crédito de gravação 30 exceder um limiar, então, o controlador de módulo de memória 20 irá gerar (no bloco 620) um pacote de dados de leitura que não indica quaisquer dados de leitura e que indica pelo menos um dos créditos de gravação indicados no contador de crédito de gravação 30. O pacote de dados de leitura é enviado (no bloco 622) para o controlador de memória do host 6 e o contador de crédito de gravação 30 é reduzido (no bloco 624) pelo número de créditos retornados. Em determinadas modalidades, pode haver um número limitado de créditos retornados, de modo que o contador de crédito de gravação 30 possa ou não ser reduzido a zero. Desse modo, se um pacote de leitura não for enviado por um tempo estendido, o controlador de módulo de memória 20 envia um pacote de dados de leitura sem dados para fornecer créditos de gravação de modo que o controlador de memória do host 8 não seja desprovido de créditos de gravação e o envio de comandos de gravação seja bloqueado. Alternativamente, os créditos de gravação podem ser retornados em pacotes que não sejam um pacote de dados de lei
33/44 tura.
[0095] A Figura 16 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 para gerar um pacote de dados de leitura para retorno para o controlador de memória do host 4. Mediante a geração (no bloco 640) de um pacote de dados de leitura que inclua dados de leitura para retorno para uma solicitação de leitura do controlador de memória do host 6, se (no bloco 642) o contador de crédito de gravação 30 for maior que zero, o controlador de módulo de memória 20 irá indicar, então, (no bloco 644) no pacote de dados de leitura alguns dos ou todos os créditos de gravação no contador 30 e enviar (no bloco 646) o pacote de dados de leitura para o controlador de memória do host 6. O contador de crédito de gravação 30 é reduzido (no bloco 648) pelo número de créditos de gravação retornados, que podem ou não ser todos os créditos no contador 30. Desse modo, os créditos de gravação são juntados em lote no pacote de dados de leitura para retorno para o controlador de memória do host 6, otimizando assim o uso de mensagem para comunicar informações. O controlador de módulo de memória 20 pode não indicar todos os créditos em um pacote, pois há um conjunto fixo de respostas. Por exemplo, o controlador de módulo de memória 20 pode ter a capacidade de indicar 0, 1, ou 4 no pacote de leitura para o número de créditos de gravação para retorno ou 0, 1, 4, ou 8 para o pacote sem dados se créditos de gravação estiverem sendo retornados (no bloco 620 na Figura 15) sem dados de leitura.
[0096] A Figura 17 ilustra uma modalidade de operações realizadas pelo controlador de memória do host 6 para processar um pacote de dados de leitura a partir do módulo de memória 8. Mediante recebimento (no bloco 660) do pacote de dados de leitura, se (no bloco 662) o pacote de dados de leitura indicar créditos de gravação, então, o controlador de memória do host 6 aumenta (no bloco 664) o conta
34/44 dor de crédito de gravação 9 pelo número de créditos de gravação indicado no pacote de dados de leitura. Depois de aumentar o contador de crédito de gravação 9 (do bloco 664) ou se não houver créditos fornecidos para gravação (ramificação não do bloco 662), se (no bloco 666) o pacote de dados de leitura incluir dados de leitura, os dados de leitura são processados (no bloco 670). O pacote de dados de leitura é descartado (no bloco 668) depois da leitura dos dados ou se o pacote não incluir dados (ramificação não do bloco 666).
[0097] As modalidades descritas fornecem técnicas para o módulo de memória 8 comunicar créditos de gravação para o controlador de memória do host 6 de maneira que reduza a largura de banda do barramento 10 juntando créditos de gravação em pacotes de leitura ou outras mensagens que já estejam em uso.
REALIZAR OPERAÇÕES DE MANIPULAÇÃO DE ERRO COM Q USO DE SINAIS DE ERRO [0098] As modalidades descritas fornecem técnicas para um fluxo de erro simplificado no módulo de memória 8 para coordenar manipulação de erro com o controlador de memória do host 6. Em modalidades descritas, o controlador de módulo de memória 20 pode sinalizar um erro no pino de erro 68 ERRO# mostrado no projeto de pinagem da Figura 2. O controlador de módulo de memória 20 pode apontar um sinal de baixo erro (ERR) no pino de erro 68 para sinalizar o começo de operações de manipulação de erro e apontar um sinal alto de erro (ERR) no pino de erro 68 para sinalizar que o modo de erro acabou e o barramento 10 é retornado a um estado inicial pronto para operação. Desse modo, a comunicação para coordenar manipulação de erro entre o controlador de módulo de memória 20 e o controlador de memória do host 6 no barramento 10 compreende um número limitado de sinais para evitar consumir a largura de banda com uma coordenação de manipulação de erro mais extensiva.
35/44 [0099] A Figura 18 ilustra uma modalidade de operações entre o controlador de módulo de memória 20 e o controlador de memória do host 6 para gerenciar operações de manipulação de erro mediante a detecção de um erro no módulo de memória 8. Mediante a detecção (no bloco 700) de um erro, o controlador de módulo de memória 20 aponta (no bloco 702) um primeiro sinal de erro, por exemplo, um sinal baixo ERR no pino 68 (Figura 2), no barramento 10 para sinalizar para o controlador de memória do host 6 que operações de manipulação de erro começaram. Mediante detecção (no bloco 704) do primeiro sinal de erro, por exemplo, um sinal baixo ERR no pino 68, o controlador de memória do host 6 envia (no bloco 706) uma confirmação de que o primeiro sinal de erro foi recebido e, então, continua a suspender (no bloco 708) operações de leitura e gravação para o módulo de memória 8 que têm o erro em resposta ao primeiro sinal de erro. O controlador de memória do host 6 pode realizar, além disso, operações de manipulação de erro, tal como definir (no bloco 710) o contador de crédito de gravação 9 até um valor máximo. Desse modo, o controlador de memória do host 6 presume que como parte de manipulação de erro todas as escritas vão ser liberadas do armazenamento temporário de gravação 28 para elementos de armazenamento nos chips de memória 12, 14, 16, 18.
[00100] Mediante recebimento (no bloco 712) a confirmação pelo controlador de memória do host 6 do recebimento do primeiro sinal de erro, o controlador de módulo de memória 20 realiza operações de manipulação de erro para retorno do barramento 10 até um estado inicial. Essas operações podem incluir descartar (no bloco 716) todas as solicitações de leitura pendentes, desalojar (no bloco 718) escritas no armazenamento temporário de gravação 28 para elementos de armazenamento nos chips de memória 12, 14, 16, 18, e limpar (no bloco 722) o contador de crédito de gravação 30 de créditos de gravação
36/44 para retorno. Depois de concluir as operações de manipulação de erro, o controlador de módulo de memória 20 aponta (no bloco 724) um segundo sinal de erro, tal como alto ERR no pino de erro 68, para sinalizar que a manipulação de erro foi concluída. Mediante detecção (no bloco 726) desse segundo sinal de erro, o controlador de memória do host 6 retoma (no bloco 728) as operações de leitura e gravação para o módulo de memória em resposta à detecção do segundo sinal de erro.
[00101] Com as modalidades descritas, o módulo de memória 8 e o controlador de memória do host 6 coordenam com um número limitado de sinais e realizam operações de manipulação de erro inteiras sem a troca de numerosas comunicações sobre os erros e transações realizados através do barramento. Cada componente 8 e 20 presume que o outro realiza reinicialíza totalmente o barramento 10 em resposta ao erro no módulo de memória 8.
USO DE UM SINAL DE ERRO PARA INDICAR UM ERRO EM SOLICITAÇÃO DE GRAVAÇÃO E ACEITAÇÃO DE SOLICITAÇÃO DE GRAVAÇÃO [00102] As modalidades descritas fornecem técnicas para o controlador de módulo de memória 20 indicar para o controlador de memória do host 6 que uma solicitação de gravação concluída com sucesso por não apontar um sinal de erro, tal como um baixo sinal de erro, a partir de um tempo predeterminado desde o envio da solicitação de gravação e que indica que uma solicitação de gravação falhou quando aponta um sinal de erro. Mediante detecção do sinal de erro, o controlador de memória do host 6 reenvia a solicitações de e o sinal de erro for recebido dentro de um tempo predeterminado desde o envio da solicitação de gravação. Desse modo, a largura de banda do barramento 10 é conservada porque não se enviam identificações completas de gravação para o controlador de memória do host 6 depois de concluir
37/44 toda solicitação de gravação.
[00103] A Figura 19 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 e um controlador de memória do host 6 para indicar a aceitação de uma solicitação de gravação e erros em uma solicitação de gravação. Mediante detecção pelo controlador de módulo de memória 20 (no bloco 750) de um erro de gravação com uma das solicitações de gravação em processo, o controlador de módulo de memória 20 aponta um sinal de erro, tal como um sinal de baixo erro ERRO# no pino 68 (Figura 3). O controlador de módulo de memória 20 mantém o sinal alto de erro ativo para indicar que não ocorreu nenhum erro. O controlador de módulo de memória 20 pode de modo adicional usar o sinal ERRO# no pino 68 para indicar erros não relacionados a erros de solicitação de gravação. Além disso, o controlador de módulo de memória 20 implicitamente indica término bem-sucedido de uma solicitação de gravação por não enviar o sinal de baixo erro dentro de um tempo predeterminado a partir da solicitação de gravação, tal como quando a solicitação de gravação foi enviada ou recebida.
[00104] Mediante detecção pelo controlador de memória do host 6 (no bloco 754) do sinal de baixo erro, se (no bloco 756) o sinal de baixo erro for recebido dentro de um tempo predeterminado de uma ou mais solicitações de gravação, então, o controlador de memória do host 20 reenvia (no bloco 758) a uma ou mais solicitações determinadas enviadas dentro do tempo predeterminado de recebimento do sinal de baixo erro. Em determinadas modalidades, o controlador de memória do host 20 reenvia as solicitações de gravação mesmo se o sinal de erro não estiver relacionado a erros de gravação. Desse modo, o controlador de memória do host 20 processa solicitações de gravação como tendo sido concluídas com sucesso se o baixo sinal de erro não for recebido dentro do tempo predeterminado e processa a
38/44 solicitação de gravação como tendo falhado se o baixo sinal de erro for recebido dentro do tempo predeterminado mesmo se o baixo sinal de erro estivesse sinalizando um erro não relacionado a erros de solicitação de gravação.
[00105] Depois de reenviar as solicitações de gravação (no bloco 758) ou se houver solicitações de gravação enviadas dentro do tempo predeterminado (ramificação não do bloco 756), o controlador de memória do host 6 determina (no bloco 760) se há uma operação de manipulação de erro relacionada ao sinal de baixo erro para realizar não relacionada a erros de gravação. Se assim for, então, o controlador de memória do host 6 realiza (no bloco 762) a operação de manipulação de erro não relacionada a erros de gravação.
[00106] Com as modalidades descritas, o módulo de memória 8 não envia confirmações completas de gravação depois de concluir toda a gravação. Em vez disso, o controlador de memória do host 6 presume que a gravação terminou se um sinal de erro não for recebido dentro de um tempo predeterminado em seguida à solicitação de gravação. Além disso, o controlador de memória do host 6 reenvia a solicitação de gravação se o sinal de erro for recebido dentro do tempo predeterminado de enviar a solicitação de gravação mesmo se o controlador de módulo de memória 20 estivesse sinalizando um erro não relacionado a um erro de gravação.
EMBARALHAR DADOS DE LEITURA EM UM MÓDULO DE MEMÓRIA [00107] As modalidades descritas fornecem técnicas para o controlador de módulo de memória 20 desembaralhar dados de gravação e armazenar os dados de gravação desembaralhados e, então, embaralhar os dados armazenados para retorno a uma solicitação de leitura, que inclui o embaralhamento do endereço de leitura. A transmissão do embaralhamento dos dados no barramento 10 tanto para leitura quan
39/44 to para escritas é realizado para evitar a probabilidade de ocorrer uma sequência vexatória na transmissão, o que iria causar erros no barramento 10.
[00108] Para permitir o embaralhamento dos dados de leitura, o controlador de memória do host 6 e o controlador de módulo de memória 20 mantêm valores de semente de embaralhar 11 e 32 (mostrados nas Figuras 1 e 2), respectivamente. Ambos os valores de semente são inicializados para um valor comum e, então, aumentados depois do processamento de um pacote de dados de leitura de modo que os valores de semente aumentados 32 e 11 sejam independentemente definidos no mesmo valor para o mesmo pacote de dados de leitura e são usados para embaralhar e desembaralhar solicitação de leitura de dados em um pacote de dados de leitura retornado para o controlador de memória do host 6 em resposta a uma solicitação de leitura. Além disso, o controlador de módulo de memória 20 e o controlador de memória do host 6 implantam lógica de circuito para o mesmo algoritmo de embaralhamento de dados pelo uso dos valores de semente 11,32 para embaralhar e desembaralhar dados para remover a possibilidade de ocorrer uma sequência vexatória no barramento 10. Em modalidades alternativas, o controlador de memória do host 6 e o controlador de módulo de memória 20 pode atualizar os valores de semente 11 e 32 por operações adicionais conhecidas na técnica.
[00109] A Figura 20 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 e um controlador de memória do host 6 para embaralhar dados de leitura transmitidos através do barramento 10. Mediante recebimento (no bloco 800) da solicitação de leitura para um endereço de leitura do controlador de memória do host 6, o controlador de módulo de memória 20 recupera (no bloco 802) os dados de leitura desembaralhados de um elemento de armazenamento, por exemplo, chip de DRAM 12, 14, 16, 18, no módu
40/44
Io de memória 8. O controlador de módulo de memória 20 usa (no bloco 804) a semente de embaralhar 32 para embaralhar os dados solicitados de leitura e o endereço de leitura para incluir em um pacote de dados de leitura para retorno (no bloco 806) para a solicitação de leitura do controlador de memória do host 6. A semente de embaralhar 32 é, então, atualizada (no bloco 808). Em uma modalidade, então, a semente de embaralhar 11, 32 é atualizada de uma maneira pseudoaleatória que usa um circuito de registro de turno de retroalimentação (LFSR) linear.
[00110] Mediante recebimento de um pacote de leitura, o controlador de memória do host 6 usa (no bloco 812) a semente de embaralhar 11 para desembaralhar o pacote de dados de leitura para determinar os dados de leitura e endereço de leitura. A solicitação de leitura associada ao endereço desembaralhado é, então, determinada (no bloco 814) de modo que os dados de leitura possam ser retornados para aquela solicitação de leitura. A semente de embaralhar 11 é atualizada (no bloco 816). Em uma modalidade alternativa, as sementes de embaralhar 11 e 32 podem ser atualizadas antes de serem usadas para embaralhar e desembaralhar.
[00111] A Figura 21 ilustra uma modalidade de operações realizada pelo controlador de módulo de memória 20 para gerenciar dados de gravação embaralhados. Mediante recebimento (no bloco 830) de uma solicitação de gravação que tem dados de gravação embaralhados do controlador de memória do host 6, o controlador de módulo de memória 20 desembaralha (no bloco 832) os dados de gravação embaralhados pelo uso do endereço de gravação da solicitação de gravação e, então, escreve (no bloco 834) os dados desembaralhados para o chip de memória 12, 14, 16, 18 no módulo de memória 8.
[00112] As modalidades descritas permitem ao controlador de módulo de memória 20 armazenar os dados de leitura desembaralhados
41/44 e, então, embaralhar tanto os dados de leitura quanto o endereço para retorno no barramento 10 pelo uso de valores de semente 11 e 32 que cada componente 8 e 20 atualiza para embaralhar e desembaralhar operações.
SELECIONAR UMA DENTRE UMA PLURALIDADE DE CONFIGURAÇÕES DE BARRAMENTO DE INTERFACES PARA USAR [00113] As modalidades descritas fornecem um parâmetro de interface 34 para configurar no módulo de memória 8 que é usado pelo controlador de memória 20 para determinar a configuração de interface de barramento usada pelo módulo de memória 8. Desse modo, o controlador de módulo de memória 20 pode operar com diferentes interfaces de barramento 10, tais como interfaces de barramento que têm diferentes larguras de barramento, isto é, larguras de dados de barramento, tais como interface de 9 bits, interface de 18 bits, interface de 72 bits, etc.. Por exemplo, diferentes tipos de DIMMs em que o controlador de módulo de memória 20 pode ser implantado podem ter diferentes configurações de largura de barramento, tais como diferentes números de pinos, por exemplo, 72, 168, 184, 240, etc., para implantar as diferentes larguras de barramento.
[00114] A Figura 22 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 para determinar (no bloco 900) o parâmetro de interface 34. O controlador de módulo de memória 20 pode determinar a configuração de interface de barramento 10 durante a inicialização por varredura do barramento 10 ou por consulta ao controlador de memória do host 6. Alternativa mente, o controlador de memória do host 6 ou outro componente pode comunicar informações na configuração de interface de barramento 10, tais como a largura de barramento, configuração de pino, etc., através do barramento 10 durante inicialização. Ainda em outra modalidade, o módulo de memória 8 pode ter um ou mais ou mais pinos de interliga
42/44 ção externos ao barramento 10 que são acoplados ao módulo de memória 8 que comunicam a configuração de interface do barramento 10. O controlador de memória do host 6 ou outro componente pode apontar a configuração de interface de barramento no pelo menos um pino de interligação. Um pino de interligação pode ser usado se houver somente duas configurações de interface de barramento suportadas para comunicar. Se houver mais de duas configurações de interface de barramento suportadas que o controlador de módulo de memória 20 suporta, então, podem haver pinos adicionais para indicar mais de duas configurações de barramento de interfaces. Mediante a determinação (no bloco 900) da configuração de interface de barramento, o parâmetro de interface 32 é definido para indicar o parâmetro de interface determinado.
[00115] A Figura 23 ilustra uma modalidade de operações realizadas pelo controlador de módulo de memória 20 para processar uma solicitação de transferência com base na configuração de interface de barramento. Mediante a iniciação de uma operação para processar uma solicitação de transferência (no bloco 930), o controlador de módulo de memória 20 seleciona (no bloco 932) uma configuração de interface de barramento que corresponde ao parâmetro de interface 32, onde a configuração de barramento selecionada pode compreender uma dentre uma primeira, segunda ou terceira, ou outras, configurações de barramento, sendo que cada uma tem uma diferente largura de barramento e configuração de pino. Por exemplo, as configurações de barramento podem compreender um barramento de dados com 9 bits, 18 bits, e 72 bits, onde cada uma dessas configurações de barramento pode ter um número diferente de pinos. Essa configuração de barramento selecionada é usada quando do processamento das solicitações de transferência e outras operações.
[00116] O controlador de módulo de memória 20 gera (no bloco
43/44
934) um número de transferências para processar a solicitação de transferência com base na largura de barramento da configuração de interface de barramento selecionada. Por exemplo, se a configuração de barramento selecionada tem uma menor largura de barramento que outras configurações possíveis suportadas pelo controlador de módulo de memória 20, então, aquela configuração de barramento irá exigir mais transferências para acomodar sua menor largura de barramento do que exigido para uma configuração suportada de interface de barramento que tenha uma maior largura de barramento e mais pinos. Desse modo, o controlador de módulo de memória 20 pode dividir uma solicitação de transferência em um número diferente de transações de barramento com base na largura de barramento da configuração de interface de barramento selecionada. As transferências geradas são transmitidas (no bloco 936) na configuração de interface de barramento selecionada.
[00117] As modalidades descritas fornecem um controlador de módulo de memória 20 que é operável em módulos de memória 8 que têm diferentes configurações de interface de barramento para permitir ao controlador de módulo de memória 20 suportar a configuração de barramento do módulo de memória 8 no qual o mesmo está implantado.
[00118] Deve ser observado que a referência ao longo desse relatório descritivo a uma (número) modalidade ou a uma (artigo) modalidade significa que um recurso, estrutura ou característica em particular descrito(a) em conexão com a modalidade está incluído(a) em pelo menos uma modalidade da presente invenção. Portanto, é enfatizado e deve ser observado que uma ou mais referências a uma (artigo) modalidade ou uma (número) modalidade ou uma modalidade alternativa em vários trechos deste relatório descritivo não estão todas necessariamente se referindo à mesma modalidade. Além disso, os
44/44 recursos, estruturas ou características particulares podem ser combinados conforme adequado em uma ou mais modalidades da invenção. [00119] De modo similar, deve ser observado que na descrição precedente de modalidades da invenção, vários recursos são por vezes agrupados em conjunto em uma única modalidade, figura ou descrição dos mesmos com o propósito de organizar a revelação ajudando no entendimento de um ou mais dos vários aspectos inventivos. Esse método de revelação, entretanto, não deve ser interpretado como reflexo de uma intenção de que a matéria reivindicada exija mais recursos do que os expressamente enunciados em cada reivindicação. Ao contrário, conforme as reivindicações a seguir refletem, os aspectos inventivos se encontram em menos que todos os recursos de uma única modalidade anteriormente revelada. Assim, as reivindicações que seguem a descrição detalhada são pelo presente expressamente incorporadas nessa descrição detalhada.

Claims (22)

1. Aparelho em comunicação com um controlador de memória de host através de um barramento caracterizado pelo fato de que compreende:
uma lógica de controlador de módulo de memória para um módulo de memória para:
detectar um erro de escrita para uma solicitação de escrita no módulo de memória; e afirmar um sinal de erro no barramento para o controlador de memória de host em resposta à detecção do erro de escrita.
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o sinal de erro é uma única comunicação para o controlador de memória de host relativo ao erro de escrita detectado.
3. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o sinal de erro é afirmado em um pino de erro no barramento.
4. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a lógica de controlador de módulo de memória indica a conclusão bem sucedida da solicitação de escrita por não enviar o sinal de erro dentro de um tempo predeterminado da solicitação de escrita.
5. Aparelho acoplado a um módulo de memória através de um barramento caracterizado pelo fato de que compreende:
uma lógica de controlador de módulo de memória para um módulo de memória para:
enviar uma solicitação de escrita para o módulo de memória;
detectar um sinal de erro afirmado a partir do módulo de memória; e reenviar a solicitação de escrita em resposta à detecção do
2/4 sinal de erro dentro de um tempo predeterminado de enviar a solicitação de escrita.
6. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que o sinal de erro compreende um sinal de baixo erro afirmado em um pino de erro no barramento.
7. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que a lógica de controlador de módulo de ainda:
processa a solicitação de escrita como concluída com sucesso em resposta a não receber o sinal de erro após o tempo prédeterminado.
8. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que a solicitação de escrita é reenviada se o sinal de erro é enviado para um erro não relacionado a um erro de solicitação de escrita quando o sinal de erro é recebido dentro do tempo predeterminado.
9. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que reenviar a solicitação de escrita compreende:
determinar uma pluralidade de solicitações de escrita enviadas dentro do tempo predeterminado do sinal de erro, em que o reenvio da solicitação de escrita compreende reenviar a pluralidade determinada de solicitações de gravação.
10. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que a lógica de controlador de módulo de memória ainda:
executa uma operação de tratamento de erros não relacionados com erros de solicitação de escrita determinados para o sinal de erro.
11. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que a operação de tratamento de erros não relacionados com erros de escrita é realizada, além de enviar a solicitação de
3/4 escrita.
12. Método caracterizado pelo fato de que compreende: detectar um erro de escrita para uma solicitação de escrita em um módulo de memória; e afirmar um sinal de erro em um barramento para um controlador de memória de host em resposta à detecção do erro de escrita.
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que o sinal de erro é uma única comunicação com o controlador de memória de host relativo a erro de escrita detectado.
14. Método de acordo com a reivindicação 12, caracterizado pelo fato de que o sinal de erro é afirmado em um pino de erro no barramento.
15. Método de acordo com a reivindicação 12, caracterizado pelo fato de que compreende ainda:
indicar a conclusão bem sucedida da solicitação de escrita por meio de não enviar o sinal de erro dentro de um tempo predeterminado a partir da solicitação de escrita.
16. Método caracterizado pelo fato de que compreende: enviar uma solicitação de escrita para um módulo de memória atrves de um barramento;
detectar um sinal de erro afirmado a partir do módulo de memória; e reenviar a solicitação de escrita em resposta à detecção do sinal de erro dentro de um tempo predeterminado de enviar a solicitação de escrita.
17. Método de acordo com a reivindicação 16, em que o sinal de erro compreende um sinal de erro baixa afirmado em um pino de erro no barramento.
18. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que compreende ainda:
4/4 processar a solicitação de escrita como estando concluída com sucesso em resposta a não receber o sinal de erro após o tempo pré-determinado.
19. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que a solicitação de escrita é reenviada se o sinal de erro é enviado para um erro não relacionado com erro de solicitação de escrita quando o sinal de erro é recebido dentro do período de tempo predeterminado.
20. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que reenviar a solicitação de escrita compreende:
determinar uma pluralidade de solicitações de escrita enviadas dentro do tempo predeterminado do sinal de erro, em que o reenvio compreende reenviar a pluralidade determinada de solicitações de escrita.
21. Método de acordo com a reivindicação 16, caracterizado pelo fato de que compreende ainda:
executar uma operação de tratamento de erros não relacionados com erros de solicitação de escrita determinados para o sinal de erro.
22. Método de acordo com a reivindicação 21, caracterizado pelo fato de que a operação de tratamento de erros não relacionados com erros de escrita é realizada, além de enviar a solicitação de escrita.
BR122016007765-9A 2013-03-15 2013-03-15 Aparelho em comunicação com controlador de memória de host, aparelho acoplado a um módulo de memória e métodos para formar conjuntos eletrônicos BR122016007765B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/032633 WO2014143056A1 (en) 2013-03-15 2013-03-15 A memory system

Publications (2)

Publication Number Publication Date
BR122016007765A2 true BR122016007765A2 (pt) 2019-08-27
BR122016007765B1 BR122016007765B1 (pt) 2022-03-03

Family

ID=51537392

Family Applications (4)

Application Number Title Priority Date Filing Date
BR122016007765-9A BR122016007765B1 (pt) 2013-03-15 2013-03-15 Aparelho em comunicação com controlador de memória de host, aparelho acoplado a um módulo de memória e métodos para formar conjuntos eletrônicos
BR122016006764-5A BR122016006764B1 (pt) 2013-03-15 2013-03-15 Aparelhos e métodos de memória
BR122016006765-3A BR122016006765B1 (pt) 2013-03-15 2013-03-15 Aparelho acoplado ao módulo de memória, sistema de memória e método
BR112015019459-1A BR112015019459B1 (pt) 2013-03-15 2013-03-15 Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória

Family Applications After (3)

Application Number Title Priority Date Filing Date
BR122016006764-5A BR122016006764B1 (pt) 2013-03-15 2013-03-15 Aparelhos e métodos de memória
BR122016006765-3A BR122016006765B1 (pt) 2013-03-15 2013-03-15 Aparelho acoplado ao módulo de memória, sistema de memória e método
BR112015019459-1A BR112015019459B1 (pt) 2013-03-15 2013-03-15 Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória

Country Status (8)

Country Link
US (11) US9990246B2 (pt)
EP (1) EP2973571B1 (pt)
JP (1) JP6139010B2 (pt)
KR (2) KR101670917B1 (pt)
CN (1) CN104981872B (pt)
BR (4) BR122016007765B1 (pt)
RU (1) RU2628124C2 (pt)
WO (1) WO2014143056A1 (pt)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101670917B1 (ko) 2013-03-15 2016-11-01 인텔 코포레이션 메모리 시스템
WO2014193574A1 (en) 2013-05-13 2014-12-04 Rambus Inc. Buffer circuit with data bit inversion
US9740423B2 (en) * 2013-07-26 2017-08-22 Hitachi, Ltd. Computer system
IN2013CH04449A (pt) * 2013-09-30 2015-04-03 Empire Technology Dev Llc
US9484070B2 (en) * 2014-04-30 2016-11-01 Micron Technology, Inc. Apparatuses supporting multiple interface types and methods of operating the same
WO2016081192A1 (en) 2014-11-20 2016-05-26 Rambus Inc. Memory systems and methods for improved power management
US10528410B2 (en) * 2014-12-16 2020-01-07 Intel Corporation Apparatus, method and system to exchange error information in a unified protocol communication
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
WO2016122498A1 (en) 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Supporting differfent types of memory devices
US9594689B2 (en) * 2015-02-09 2017-03-14 International Business Machines Corporation Designated cache data backup during system operation
US10387259B2 (en) * 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
JP2017045311A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
US10031677B1 (en) 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
CN106611608B (zh) * 2015-10-23 2019-01-15 群联电子股份有限公司 存储器控制电路单元、存储器储存装置与数据传输方法
JP2017097825A (ja) * 2015-11-16 2017-06-01 株式会社東芝 ホスト機器および拡張デバイス
US10503686B2 (en) * 2015-12-09 2019-12-10 Microchip Technology Incorporated SPI interface with automatic slave select generation
US9785359B2 (en) * 2016-02-26 2017-10-10 Intel Corporation Sending packets using optimized PIO write sequences without sfences and out of order credit returns
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US10592114B2 (en) * 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10621119B2 (en) 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US10310547B2 (en) * 2016-03-05 2019-06-04 Intel Corporation Techniques to mirror a command/address or interpret command/address logic at a memory device
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
KR102525229B1 (ko) 2016-05-13 2023-04-25 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 시스템
US10163485B2 (en) * 2016-05-25 2018-12-25 Mediatek Inc. Memory module, memory controller and associated control method for read training technique
US10198204B2 (en) 2016-06-01 2019-02-05 Advanced Micro Devices, Inc. Self refresh state machine MOP array
US10459855B2 (en) 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface
KR102679057B1 (ko) * 2016-08-18 2024-07-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US20180059933A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Electrically-Buffered NV-DIMM and Method for Use Therewith
US10359933B2 (en) 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
CN107885671B (zh) * 2016-09-30 2021-09-14 华为技术有限公司 一种非易失性内存的持久化方法和计算设备
US10521351B2 (en) * 2017-01-12 2019-12-31 International Business Machines Corporation Temporarily suppressing processing of a restrained storage operand request
US10180793B2 (en) * 2017-01-31 2019-01-15 Hewlett Packard Enterprise Development Lp Performance attributes for memory
US10846018B2 (en) 2017-04-05 2020-11-24 Mediatek Inc. Memory device, memory controller and associated memory system operated according to selected clock signals
CN110520929B (zh) 2017-04-14 2022-07-22 华为技术有限公司 内存刷新方法、装置及计算机系统
CN107291421A (zh) * 2017-06-09 2017-10-24 中国电子科技集团公司第四十研究所 一种可编程图形序列发生系统及方法
US11099774B2 (en) * 2017-08-30 2021-08-24 Micron Technology, Inc. Command address input buffer bias current reduction
US10162406B1 (en) * 2017-08-31 2018-12-25 Micron Technology, Inc. Systems and methods for frequency mode detection and implementation
JP2019046051A (ja) 2017-08-31 2019-03-22 東芝メモリ株式会社 メモリ装置およびデータ処理装置
US10592121B2 (en) 2017-09-14 2020-03-17 Samsung Electronics Co., Ltd. Quasi-synchronous protocol for large bandwidth memory systems
US10996888B2 (en) * 2017-10-31 2021-05-04 Qualcomm Incorporated Write credits management for non-volatile memory
US10769074B2 (en) 2017-11-09 2020-09-08 Microsoft Technology Licensing, Llc Computer memory content movement
DE102018124375A1 (de) * 2017-11-21 2019-05-23 Samsung Electronics Co., Ltd. Betriebsverfahren eines signalempfängers, pulsbreitensteuerungund elektronische vorrichtung mit denselben
KR102370278B1 (ko) * 2017-11-30 2022-03-07 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법
KR102493964B1 (ko) * 2017-12-18 2023-02-01 삼성전자주식회사 스토리지 컨트롤러, 그것을 포함하는 스토리지 장치, 및 스토리지 컨트롤러의 동작 방법
US11226768B2 (en) * 2018-01-04 2022-01-18 Montage Technology Co., Ltd. Memory controller and method for accessing memory module
US10929029B2 (en) 2018-01-04 2021-02-23 Montage Technology Co., Ltd. Memory controller and method for accessing memory modules and processing sub-modules
CN110008147B (zh) * 2018-01-04 2021-11-19 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法
US11048645B2 (en) 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10963404B2 (en) 2018-06-25 2021-03-30 Intel Corporation High bandwidth DIMM
US10884958B2 (en) 2018-06-25 2021-01-05 Intel Corporation DIMM for a high bandwidth memory channel
KR102029035B1 (ko) * 2018-07-26 2019-10-07 주식회사 우리비전 메인 보드 리버스 인터커넥션을 통한 메모리 모듈의 실장 테스트에 사용되는 메모리 모듈을 수납하는 메인 보드
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US11074007B2 (en) * 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system
US10969994B2 (en) 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11080210B2 (en) * 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
US11061751B2 (en) * 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US10740031B2 (en) 2018-09-25 2020-08-11 International Business Machines Corporation Interface scheduler for a distributed memory system
KR20200040183A (ko) 2018-10-08 2020-04-17 박흥균 라인 형태의 전자빔 방출 장치
US11650943B2 (en) 2018-10-16 2023-05-16 Micron Technology, Inc. Flexible bus management
US10901657B2 (en) 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module
US11403035B2 (en) * 2018-12-19 2022-08-02 Micron Technology, Inc. Memory module including a controller and interfaces for communicating with a host and another memory module
US10606794B1 (en) * 2019-05-14 2020-03-31 Infineon Technologies Ag Clock signal monitor for slave device on a master-slave bus
KR102743222B1 (ko) * 2019-06-12 2024-12-17 삼성전자 주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11249539B2 (en) * 2019-06-28 2022-02-15 Integrated Device Technology, Inc. DDR5 client PMIC power up sequence and state transitions
US11699471B2 (en) 2019-09-25 2023-07-11 Intel Corporation Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth
JP7419010B2 (ja) * 2019-10-04 2024-01-22 キヤノン株式会社 データ処理システムおよびデータ処理システムの制御方法
US11656673B2 (en) * 2019-12-30 2023-05-23 Micron Technology, Inc. Managing reduced power memory operations
US11182312B2 (en) * 2020-04-02 2021-11-23 Micron Technology, Inc. Memory sub-system manufacturing mode
US11513835B2 (en) * 2020-06-01 2022-11-29 Micron Technology, Inc. Notifying memory system of host events via modulated reset signals
US11372544B2 (en) * 2020-09-24 2022-06-28 Netapp, Inc. Write type based crediting for block level write throttling to control impact to read input/output operations
US11709538B2 (en) * 2020-11-19 2023-07-25 Micron Technology, Inc. Minimizing power loss and reset time with media controller suspend
US11609868B1 (en) 2020-12-31 2023-03-21 Waymo Llc Control calibration timing to avoid memory write blackout period
US12147698B2 (en) 2021-03-26 2024-11-19 Intel Corporation High performance memory module with reduced loading
US12118235B2 (en) 2021-08-13 2024-10-15 Kioxia Corporation Method and system for buffer allocation management for a memory device
US12079068B2 (en) * 2021-08-27 2024-09-03 Micron Technology, Inc. Error log indication via error control information
US11733925B2 (en) * 2021-08-30 2023-08-22 Micron Technology, Inc. Enabling multiple data capacity modes at a memory sub-system
US11842056B2 (en) * 2021-10-25 2023-12-12 EMC IP Holding Company, LLC System and method for allocating storage system resources during write throttling
KR20230155145A (ko) * 2022-05-03 2023-11-10 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US12451209B2 (en) 2022-06-02 2025-10-21 Micron Technology, Inc. Error handling
US20240195635A1 (en) * 2022-12-12 2024-06-13 Intel Corporation Roots of trust in intellectual property (ip) blocks in a system on a chip (soc)

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4148099A (en) * 1978-04-11 1979-04-03 Ncr Corporation Memory device having a minimum number of pins
US5448706A (en) * 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
JP3369227B2 (ja) 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
US5555250A (en) 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
US5784390A (en) 1995-06-19 1998-07-21 Seagate Technology, Inc. Fast AtA-compatible drive interface with error detection and/or error correction
US5805905A (en) * 1995-09-06 1998-09-08 Opti Inc. Method and apparatus for arbitrating requests at two or more levels of priority using a single request line
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
JPH1078934A (ja) 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US6260101B1 (en) 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
EP1036362B1 (en) 1997-12-05 2006-11-15 Intel Corporation Memory system including a memory module having a memory module controller
US6088762A (en) 1998-06-19 2000-07-11 Intel Corporation Power failure mode for a memory controller
US6260127B1 (en) 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6457081B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7363422B2 (en) * 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US6683884B1 (en) 2000-03-31 2004-01-27 Intel Corporation Shared credit round robin queuing
US7100028B2 (en) 2000-08-09 2006-08-29 Advanced Micro Devices, Inc. Multiple entry points for system call instructions
US6625685B1 (en) 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6931128B2 (en) 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US6658523B2 (en) 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6615217B2 (en) * 2001-06-29 2003-09-02 Bull Hn Information Systems Inc. Method and data processing system providing bulk record memory transfers across multiple heterogeneous computer systems
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
KR100408419B1 (ko) 2001-12-19 2003-12-06 삼성전자주식회사 반도체 메모리 장치의 동작 타이밍 제어회로 및 동작타이밍 제어 방법
US7076678B2 (en) * 2002-02-11 2006-07-11 Micron Technology, Inc. Method and apparatus for data transfer
US6781911B2 (en) 2002-04-09 2004-08-24 Intel Corporation Early power-down digital memory device and method
US7469420B2 (en) 2002-05-21 2008-12-23 Thomson Licensing Key transport tamper protection
JP4222803B2 (ja) * 2002-09-11 2009-02-12 Necエレクトロニクス株式会社 データ処理装置およびデータ処理回路
KR100524952B1 (ko) 2003-03-07 2005-11-01 삼성전자주식회사 기록 매체의 데이터 보호 방법 및 이를 이용한 디스크드라이브
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
KR100475125B1 (ko) 2003-06-21 2005-03-14 삼성전자주식회사 데이터 버스 폭 변경이 자유로운 이동형 저장 장치 및이에 대한 데이터 버스 폭 설정 방법
JP2005025903A (ja) 2003-07-01 2005-01-27 Nec Micro Systems Ltd 半導体記憶装置
KR100951158B1 (ko) * 2003-09-10 2010-04-06 콸콤 인코포레이티드 고속 데이터 인터페이스
US7177989B1 (en) 2003-12-31 2007-02-13 Intel Corporation Retry of a device read transaction
KR100840441B1 (ko) 2004-03-31 2008-06-20 마이크론 테크놀로지, 인크. 집적 회로들에서의 신호 타이밍의 재구성
US7579683B1 (en) * 2004-06-29 2009-08-25 National Semiconductor Corporation Memory interface optimized for stacked configurations
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7660938B1 (en) 2004-10-01 2010-02-09 Super Talent Electronics, Inc. Flash card reader and data exchanger utilizing low power extended USB protocol without polling
US7525986B2 (en) 2004-10-28 2009-04-28 Intel Corporation Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US7571296B2 (en) 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
US20060117160A1 (en) * 2004-12-01 2006-06-01 Intel Corporation Method to consolidate memory usage to reduce power consumption
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US7319612B2 (en) * 2005-05-18 2008-01-15 Intel Corporation Performing multiple read operations via a single read command
US8335894B1 (en) * 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8327104B2 (en) * 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
JP2007004522A (ja) 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US8055833B2 (en) * 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
DE102005035207A1 (de) 2005-07-27 2007-02-01 Siemens Ag Verfahren und Vorrichtung zur Datenübertragung zwischen zwei relativ zueinander bewegten Komponenten
US7426607B2 (en) 2005-08-05 2008-09-16 Infineon Technologies Ag Memory system and method of operating memory system
US20110022850A1 (en) 2006-07-26 2011-01-27 Hondar Lee Access control for secure portable storage device
US8272781B2 (en) 2006-08-01 2012-09-25 Intel Corporation Dynamic power control of a memory device thermal sensor
US7900079B2 (en) 2006-08-11 2011-03-01 International Business Machines Corporation Data capture window synchronizing method for generating data bit sequences and adjusting capture window on parallel data paths
US7761725B2 (en) 2006-08-30 2010-07-20 Ati Technologies Ulc Clock generation for synchronous circuits with slow settling control signals
KR101227770B1 (ko) 2006-10-24 2013-01-29 후지쯔 가부시끼가이샤 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체
US8122202B2 (en) 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
US7624225B2 (en) 2007-03-22 2009-11-24 International Business Machines Corporation System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US7624211B2 (en) 2007-06-27 2009-11-24 Micron Technology, Inc. Method for bus width negotiation of data storage devices
US7787375B2 (en) 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US7882324B2 (en) 2007-10-30 2011-02-01 Qimonda Ag Method and apparatus for synchronizing memory enabled systems with master-slave architecture
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
US8045416B2 (en) 2008-03-05 2011-10-25 Micron Technology, Inc. Method and memory device providing reduced quantity of interconnections
US8255783B2 (en) 2008-04-23 2012-08-28 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US8154918B2 (en) 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory
TWI370361B (en) * 2008-08-21 2012-08-11 Ili Technology Corp Memory access controlling apparatus and control method thereof
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
WO2010101835A1 (en) 2009-03-02 2010-09-10 The Board Of Trustees Of The University Of Illinois Decoupled memory modules: building high-bandwidth memory systems from low-speed dynamic random access memory devices
TWI416523B (zh) 2009-06-10 2013-11-21 Silicon Motion Inc 非揮發性記憶體之寫入錯誤管理方法、非揮發性記憶體、記憶卡、以及非揮發性記憶體之控制器
KR101585213B1 (ko) 2009-08-18 2016-01-13 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8862966B2 (en) * 2009-09-09 2014-10-14 Advanced Micro Devices, Inc. Adjustment of write timing based on error detection techniques
US8996785B2 (en) 2009-09-21 2015-03-31 Aplus Flash Technology, Inc. NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface
KR101620348B1 (ko) 2009-10-16 2016-05-12 삼성전자주식회사 내부전원 발생장치, 이를 구비한 멀티채널 메모리 장치 및 이를 채용한 프로세싱 시스템
US8862973B2 (en) * 2009-12-09 2014-10-14 Intel Corporation Method and system for error management in a memory device
JP5421152B2 (ja) 2010-03-08 2014-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路
JP5139465B2 (ja) 2010-03-31 2013-02-06 株式会社東芝 メモリチップ、情報記憶システム、読み出し装置
US8339891B2 (en) 2010-05-25 2012-12-25 Lsi Corporation Power savings and/or dynamic power management in a memory
US8898511B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8972723B2 (en) 2010-07-14 2015-03-03 Sandisk Technologies Inc. Storage device and method for providing a partially-encrypted content file to a host device
RU2556443C2 (ru) 2010-09-16 2015-07-10 Эппл Инк. Многопортовый контроллер запоминающего устройства с портами, ассоциированными с классами трафика
US8615638B2 (en) 2010-10-08 2013-12-24 Qualcomm Incorporated Memory controllers, systems and methods for applying page management policies based on stream transaction information
JP5032647B2 (ja) 2010-11-26 2012-09-26 株式会社東芝 データ記憶装置、コントロール装置及び暗号化方法
US8410819B2 (en) * 2010-12-29 2013-04-02 Stmicroelectronics, Inc. Programmable pulse width discriminator
US8321649B2 (en) 2011-03-18 2012-11-27 Freescale Semiconductor, Inc. Memory controller address and data pin multiplexing
US8665665B2 (en) 2011-03-30 2014-03-04 Mediatek Inc. Apparatus and method to adjust clock duty cycle of memory
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
KR101457451B1 (ko) 2011-04-29 2014-11-05 엘에스아이 코포레이션 암호화된 전송 고체 상태 디스크 제어기
JP5720470B2 (ja) 2011-07-27 2015-05-20 富士通株式会社 処理装置,試験信号生成装置及び試験信号生成方法
US9025409B2 (en) * 2011-08-05 2015-05-05 Rambus Inc. Memory buffers and modules supporting dynamic point-to-point connections
US9047418B2 (en) * 2011-11-22 2015-06-02 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication
US9330031B2 (en) 2011-12-09 2016-05-03 Nvidia Corporation System and method for calibration of serial links using a serial-to-parallel loopback
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US8638153B2 (en) * 2012-03-29 2014-01-28 Qualcomm Incorporated Pulse clock generation logic with built-in level shifter and programmable rising edge and pulse width
US8667205B2 (en) 2012-04-30 2014-03-04 International Business Machines Corporation Deadlock resolution in end-to-end credit protocol
JP5836903B2 (ja) * 2012-09-04 2015-12-24 株式会社東芝 情報処理装置
US8730750B1 (en) * 2012-10-28 2014-05-20 Lsi Corporation Memory device with control circuitry for generating a reset signal in read and write modes of operation
US20140122777A1 (en) 2012-10-31 2014-05-01 Mosaid Technologies Incorporated Flash memory controller having multi mode pin-out
KR101670917B1 (ko) 2013-03-15 2016-11-01 인텔 코포레이션 메모리 시스템

Also Published As

Publication number Publication date
BR122016006765B1 (pt) 2022-02-01
US10783028B2 (en) 2020-09-22
US10795755B2 (en) 2020-10-06
US10185618B2 (en) 2019-01-22
EP2973571A1 (en) 2016-01-20
US10198306B2 (en) 2019-02-05
BR112015019459B1 (pt) 2021-10-19
US20160179604A1 (en) 2016-06-23
US20160147678A1 (en) 2016-05-26
JP2016514320A (ja) 2016-05-19
US10152370B2 (en) 2018-12-11
US20160179742A1 (en) 2016-06-23
BR122016006764A2 (pt) 2019-08-27
US20160210187A1 (en) 2016-07-21
US20160211973A1 (en) 2016-07-21
US9852021B2 (en) 2017-12-26
KR20150120359A (ko) 2015-10-27
EP2973571A4 (en) 2016-11-02
JP6139010B2 (ja) 2017-05-31
US9990246B2 (en) 2018-06-05
US20160099044A1 (en) 2016-04-07
BR122016006764B1 (pt) 2022-02-01
KR101670917B1 (ko) 2016-11-01
BR112015019459A2 (pt) 2017-07-18
BR122016006765A2 (pt) 2019-08-27
US10579462B2 (en) 2020-03-03
EP2973571B1 (en) 2020-04-22
CN104981872A (zh) 2015-10-14
US20160132269A1 (en) 2016-05-12
US20150149735A1 (en) 2015-05-28
WO2014143056A1 (en) 2014-09-18
US10747605B2 (en) 2020-08-18
US20160148653A1 (en) 2016-05-26
US20160098366A1 (en) 2016-04-07
RU2628124C2 (ru) 2017-08-15
KR20160127168A (ko) 2016-11-02
RU2015134146A (ru) 2017-02-17
CN104981872B (zh) 2018-11-06
US20160098195A1 (en) 2016-04-07
BR122016007765B1 (pt) 2022-03-03

Similar Documents

Publication Publication Date Title
BR122016007765A2 (pt) sistema de memória
US10324841B2 (en) Memory module with local synchronization
BR122017013543B1 (pt) Dispositivo de circuito integrado e sistema para treinamento de leitura de um controlador de memória
US20210382638A1 (en) Data scrambler to mitigate row hammer corruption
US12586626B2 (en) Randomization of directed refresh management (DRFM) pseudo target row refresh (PTRR) commands
US20230103368A1 (en) Memory module management device
US12524357B2 (en) Buffer communication for data buffers supporting multiple pseudo channels
KR20250146343A (ko) 가속 dram(동적 랜덤 액세스 메모리) 트레이닝 기법
US20230385208A1 (en) Accelerated memory training through in-band configuration register update mode
JP6370958B2 (ja) デバイス
EP4657289A1 (en) Host-memory certificate exchange for secure access to memory storage and register space

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 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 15/03/2013, OBSERVADAS AS CONDICOES LEGAIS.