BRPI0711731A2 - dispositivo hìbrido de memória com interface única - Google Patents
dispositivo hìbrido de memória com interface única Download PDFInfo
- Publication number
- BRPI0711731A2 BRPI0711731A2 BRPI0711731-0A BRPI0711731A BRPI0711731A2 BR PI0711731 A2 BRPI0711731 A2 BR PI0711731A2 BR PI0711731 A BRPI0711731 A BR PI0711731A BR PI0711731 A2 BRPI0711731 A2 BR PI0711731A2
- Authority
- BR
- Brazil
- Prior art keywords
- memory
- type
- controller
- data
- interface
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 165
- 238000000034 method Methods 0.000 claims description 6
- 230000009977 dual effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/104—Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Dram (AREA)
Abstract
DISPOSITIVO HìBRIDO DE MEMóRIA COM INTERFACE úNICA. é descrita uma tecnologia através da qual um controlador de memória é um componente de um dispositivo híbrido de memória tendo diferentes tipos de memória no mesmo (por exemplo, SDRAM e memória flash), no qual o controlador opera de tal modo que o dispositivo de memória tem apenas uma única interface de memória com relação à voltagem e protocolos de acesso definidos para um tipo de memória. Por exemplo, o controlador permite que um dispositivo de memória com uma interface SDRAM padrão proporcione acesso a ambos, memória não-volátil e SDRAM com a memória não-volátil sobreposta em um ou mais blocos designados do espaço de endereço de memória volátil (ou vice-versa). Um protocolo de comando mapeia páginas de memória para o espaço de endereço de interface de memória volátil, por exemplo, permitindo que um pacote de múltiplos chips compatíveis com pino único substitua um dispositivo de memória volátil existente em qualquer dispositivo de computação que deseje prover armazenamento não-volátil, enquanto exigindo apenas mudanças de software ao dispositivo para acessar o flash.
Description
"DISPOSITIVO HÍBRIDO DE MEMÓRIA COM INTERFACE ÚNICA"
ANTECEDENTES
Diversos dispositivos de computação existentes e novos fazem uso de memória vo- látil de alta velocidade (por exemplo, memória de acesso aleatório dinâmica, ou DRAM) para manter instruções de dados de operação. Tais dispositivos incluem telefones móveis, apare- lhos de conversão de sinal de televisão, memória de computador pessoal, e assim por dian- te. Cada vez mais os dispositivos de computação estão incluindo grandes quantidades de memória flash NAND não-voláteis relativamente não-dispendiosas para armazenar aplicati- vos e dados.
Contudo, muitos dispositivos de computador baseados em DRAM existentes são projetados sem as interfaces de barramento apropriadas para suportar memória flash NAND; para suportar memória flash NAND é exigido um remodelamento dispendioso e pro- longado do chipset do dispositivo. Similarmente, a maioria dos dispositivos baseados em memória flash NAND não pode simplesmente adicionar o RAM. Mudanças significativas em uma arquitetura física do dispositivo são exigidas para colocar a memória flash em um mo- delo atualizado do que ora um dispositivo baseado em DRAM, por exemplo, ou vice-versa.
Embora uma combinação de memória volátil e não-volátil proporcione vantagens e muitas situações, freqüentemente o custo de remodelar um chipset de dispositivo é muito dispendioso/arriscado para um fornecedor, pelo que o fornecedor se abstém de novos re- cursos e modelos de negócio que de outro modo seriam habilitados pelo fato de ter memória volátil e não-volátil em um dispositivo. Além disso, não existe uma forma direta de usar os modelos arquiteturais existentes e, por exemplo, atualizar um dispositivo baseado em DRAM existente com memória flash NAND; por exemplo, uma placa de circuito inteira precisaria ser remodelada e substituída, em vez de simplesmente adicionar memória ou mudar a memória em um dispositivo existente (e software de atualização conforme apropriado). Além disso, existe uma grande diferença nas velocidades de barramento entre memória não-volátil e memória baseada em DRAM.
SUMÁRIO
Esse Sumário é provido para introduzir uma seleção de conceitos representativos em uma forma simplificada que são descritos adicionalmente abaixo na Descrição Detalha- da. Esse Sumário não pretende identificar características fundamentais ou características essenciais da matéria reivindicada, nem pretende ser usado de qualquer forma que limitaria o escopo da matéria reivindicada.
Resumidamente, vários aspectos da presente matéria aqui descrita são dirigidos a um dispositivo híbrido de memória que inclui um primeiro tipo de memória (por exemplo, memória do tipo DRAM volátil) e uma interface correspondendo ao primeiro tipo de memó- ria, e um segundo tipo de memória (por exemplo, memória do tipo flash não-volátil). O dís- positivo de memória inclui um controlador que é acoplado à interface, ao primeiro tipo de memória e ao segundo tipo de memória. Com base na informação tais como comandos e/ou endereços de memória recebidos na interface, o controlador determina se um comando tal como uma solicitação E/S (por exemplo, uma leitura ou gravação) é dirigida ao primeiro tipo de memória ou ao segundo tipo de memória.
Desse modo, mediante recebimento dos comandos, endereços e dados em um controlador do dispositivo híbrido de memória, diferentes tipos de memória podem ser aces- sados pelo software (por exemplo, firmware de dispositivo ou um programa) por intermédio de uma única interface definida para um tipo de memória. O controlador inclui lógica que determina se um comando/endereço recebido na interface de um primeiro tipo de memória é dirigido a um segundo tipo de memória associado ao dispositivo de memória, e se esse for o caso, emite sinais para o segundo tipo de memória para comunicar ao menos um comando ao segundo tipo de memória e/ou para realizar ao menos uma operação de entrada/saída (E/S) de dados no segundo tipo de memória.
Outras vantagens podem se tornar evidentes a partir da descrição detalhada se- guinte quando considerada em conjunto com os desenhos.
DESCRIÇÃO RESUMIDA DOS DESENHOS
A presente invenção é ilustrada como exemplo e não é limitada nas figuras anexas nas quais numerais de referência semelhantes indicam elementos semelhantes e nas quais:
A Figura 1 mostra um exemplo ilustrativo de um dispositivo de computação em que vários aspectos da presente invenção podem ser incorporados.
A Figura 2 é uma representação de um dispositivo híbrido de memória exemplar in- cluindo um controlador e dois tipos de memória que são individualmente acessíveis por uma única interface definida por um dos tipos de memória.
A Figura 3A é uma representação de um dispositivo híbrido de memória exemplar com uma interface SDRAM com memória SDRAM e flash que é acessada por intermédio de um bloco de memória designado no espaço endereçável de SDRAM.
A Figura 3B é uma representação de um dispositivo híbrido de memória, exemplar com uma interface de SDRAM com memória SDRAM e flash que é acessada por intermédio de uma pluralidade de blocos de memória designados no espaço endereçável de SDRAM.
A Figura 4 é uma representação de um espaço de memória endereçável corres- pondendo a um primeiro de memória com seções usadas para comunicar dados e coman- dos com um segundo tipo de memória.
A Figura 5 é uma representação exemplar de um tipo adequado de dispositivo de SDRAM que pode ser incorporado em um dispositivo híbrido de memória.
A Figura 6 é uma representação exemplar de um dispositivo híbrido de memória com uma interface SDRAM contendo um dispositivo de SDRAM tal como o dispositivo da Figura 5 e um dispositivo flash.
A Figura 7 é uma representação exemplar de um diagrama de temporização para controlar um dispositivo de SDRAM e um dispositivo flash.
A Figura 8 é uma representação de etapas exemplares correspondendo a como o controlador pode produzir dados flash para o dispositivo SDRAM configurado para saída de dados em rajada.
A Figura 9 é uma representação de como a memória flash pode ser adicionada a um módulo de memória em linha dual (DIMM) para adicionar memória de computador pes- soal baseada em DRAM (incluindo SDRAM).
DESCRIÇÃO DETALHADA
AMBIENTE DE OPERAÇÃO EXEMPLAR
A Figura 1 ilustra um exemplo de alguns componentes funcionais adequados de um dispositivo de computação 188, tal como pode ser encontrado em assistentes pessoais digi- tais de mão/de bolso/do tipo mesa gráfica, aparelho, telefone móvel e assim por diante, in- cluindo um processador 189, uma memória 190, um display 192, e um teclado 193 (o qual pode ser um teclado físico ou virtual). A memória 190 inclui geralmente não somente memó- ria volátil (por exemplo, RAM) como também memória não-volátil (por exemplo, RAM, car- tões PCMCIA, e assim por diante). Além disso, conforme descrito abaixo, a memória exem- plar 190 inclui um dispositivo híbrido de memória (correspondendo a um ou mais chips) que contém mais do que um tipo de memória, tal como flash e DRAM ou flash e SDRAM (DRAM síncrona), na qual um dos tipos compartilha a interface do outro. Um sistema operacional 193 pode ser residente na memória 190 e executar no processador 189, tal como um siste- ma operacional baseado no Microsoft® Windows®, ou outro sistema operacional.
Um ou mais programas de aplicação 194 e dados 195 podem estar na memória 190, por exemplo, com os programas 194 executando no sistema operacional 193. Exem- plos de aplicações incluem programas de correio eletrônico, programas de programação, programas PIM (gerenciamento de informação pessoal), programas de processamento de texto, programas de planilha, programas de navegador da Internet, e assim por diante. O dispositivo de computação 188 também pode incluir outros componentes 196, tal como um gerenciador de notificação carregado na memória 190, o qual executa no processador 189. O gerenciador de notificação, por exemplo, pode processar solicitação de notificação, por exemplo, a partir dos programas de aplicação 195.
O dispositivo de computação 188 tem uma fonte de energia 197, por exemplo, im- plementada como uma ou mais baterias ou um sistema ativado pela luz. A fonte de energia 197 pode incluir ainda uma fonte de energia externa que anula ou recarrega as baterias em- butidas, tal como um adaptador AC ou um berço de suporte acionado por energia.
O dispositivo de computação exemplar 188 representado na Figura 1 é mostrado com três tipos exemplares de dispositivos externos de saída, incluindo o display 192, outros mecanismos de saída 198 (por exemplo, o um ou mais diodos de emissão de luz, ou LEDs) e um gerador de áudio 199, por exemplo, alto-falantes acoplados ou integrados e/ou a uma tomada de áudio. Um ou mais desses dispositivos de saída pode ser acoplado diretamente à fonte de energia 197 de modo que quando ativado, ele permanece ligado por uma duração determinada por um mecanismo de notificação embora o processador 189, e outros compo- nentes, poderiam desligar para conservar a energia da bateria. Por exemplo, um LED pode permanecer ligado (desde que alguma energia esteja disponível) até que o usuário realize a ação. Outros podem ser configurados para desligar quando o restante do sistema desliga ou em alguma duração finita após ativação.
DISPOSITIVO HÍBRIDO DE MEMÓRIA COM INTERFACE ÚNICA
Vários aspectos da tecnologia descrita aqui são geralmente dirigidos à expansão de uma memória de um dispositivo de computação (tal como o dispositivo 188) com relação a ter quantidades relativamente grandes de memória volátil e não-volátil no dispositivo de computação, sem requerer mudanças em uma arquitetura física existente daquele dispositi- vo de computação. Em geral, a presente descrição provê exemplos de incorporação de memória flash NAND em um dispositivo baseado em SDRAM mediante adição ou substitui- ção de um dispositivo híbrido de memória (por exemplo, compreendendo um ou mais chips) contendo SDRAM e a flash NAND, no qual o dispositivo híbrido de memória tem a mesma interface (incluindo pinagem, protocolo de voltagem, e protocolo de acesso) como um com- ponente SDRAM convencional. Contudo, como será entendido, esses aspectos e conceitos se aplicam a qualquer tipo ou tipos de memória volátil e/ou não-volátil, por exemplo, diver- sos tipos de DRAM (por exemplo, EDO) podem ser usados em vez de SDRAM, DRAM ou a SDRAM pode ser incorporada inversamente em um dispositivo baseado em flash, memória flash baseada em NOR pode ser misturada com SDRAM e/ou com flash baseada em NAND, RAM estática (SRAM) ou outros tipos de RAM podem ser um dos tipos de memória, mais memórias voláteis podem ser adicionadas em vez de um dispositivo de memória volátil existente, mais memórias não-voláteis podem ser adicionadas em vez de um dispositivo de memória não-volátil existente, e assim por diante. Observar que a incorporação de diferen- tes tipos de memória em um dispositivo híbrido de memória (com uma interface que comu- mente corresponde a tipo original de memória para um determinado modelo) tipicamente acrescenta memória total a um dispositivo, mas não precisa necessariamente aumentar (e se desejado pelo projetista pode diminuir) a quantidade do tipo original de memória e/ou a quantidade total de memória.
Além disso, como se entenderá, os conceitos aqui descritos não são limitados ao que é considerado como dispositivos de computação convencionais (por exemplo, sistemas de computador de mesa, notebook, laptop, ou baseados em mesa gráfica, assistentes digi- tais pessoais, computadores pessoais de bolso, ou semelhantes), mas mais propriamente podem ser usados em qualquer dispositivo que tenha a necessidade de armazenar dados em memória volátil, ou não-volátil, incluindo os telefones móveis; aparelhos de conversão de sinais; discos rígidos híbridos; aparelhos de televisão; controles remotos; dispositivos audio- visuais; aparelhos elétricos; aparelhos domésticos; e assim por diante. Cada um desses dispositivos pode acrescentar memória não-volátil a um modelo de memória volátil, ou vice- versa, ou aumentar a memória, sem remodelagens de hardware dispendiosas e arriscadas. Dessa maneira, por exemplo, um dispositivo com memória volátil tal como um telefone mó- vel pode ter grandes quantidades de armazenamento não-volátil no mesmo tal como para armazenar programas, música, imagens, e assim por diante, simplesmente mediante substi- tuição de um chip de memória (ou múltiplos chips de memória), e atualizando algum firmwa- re para operar com o armazenamento não-volátil, conforme descrito abaixo.
Como tal, a presente invenção não é limitada aos exemplos, estruturas ou funciona- lidade aqui descrita. Mais propriamente, qualquer um dos exemplos, estruturas ou funciona- lidades aqui descritas são não-limitadores, e a presente invenção pode ser usada de diver- sas formas que proporcionem benefícios e vantagens em computação e armazenamento de dados em geral.
De acordo com a Figura 2 dos desenhos, é mostrado um conceito exemplar geral de um dispositivo híbrido de memória 202 incluindo memória volátil 204 (por exemplo, SDRAM) e memória não-volátil 206 (por exemplo, flash NAND). Um controlador 208 contém a lógica que determina qual das memórias 204 ou 206 deve acessar, com base nos endere- ços e comandos, por exemplo, originados em firmware/software e endereçados através de uma CPU.
Conforme representado na Figura 2, o controlador 208 pode incluir ou de outro mo- do ser associado a um conjunto de armazenamento 210 compreendendo um ou mais arma- zenadores, os quais em uma implementação são usados para fins de equiparação e veloci- dade. Por exemplo, no presente, a SDRAM é significativamente mais rápida do que flash, e desse modo um chip de memória híbrida que tenha uma interface que aparece para os componentes externos como sendo um dispositivo SDRAM necessita armazenar os dados no conjunto de armazenador 210 (por exemplo, SDRAM, DRAM ou SRAM) para estar de acordo com o protocolo SDRAM com relação às exigências de velocidade e saída, incluindo exigências do modo em rajada. Desse modo, o conjunto de armazenador 210 compreende tipicamente memória tal como SDRAM ou RAM estática (SRAM) que é ao menos tão rápida quanto um chip SDRAM determinado e seu protocolo requer, ao contrário, que o dispositivo híbrido às vezes pareça para os componentes externos como sendo memória ruim. Obser- var que um dispositivo híbrido de memória que adicionou memória rápida (por exemplo, SDRAM) a uma interface mais lenta (por exemplo, flash) não necessariamente precisaria de tal armazenador.
A Figura 3A mostra um conceito exemplar de como um dispositivo híbrido de me- mória 302A opera geralmente, no qual memória flash 306 é arranjada como certo número de blocos (por exemplo, blocos F-1 a F-n) e é acessada através de uma interface SDRAM. O dispositivo híbrido de memória 302A inclui também um dispositivo SDRAM 304. Conforme descrito abaixo, um controlador on-chip 308A (por exemplo, correspondendo ao controlador 208 da Figura 2) determina qual seção da SDRAM 304 ou flash deve acessar com relação a um endereço atual originado na CPU 389. Em geral, o controlador 380A recebe comandos, dados e endereços a partir da CPU 389 que são produzidos de acordo com o protocolo SDRAM convencional. Observar que não é exigido que a CPU conheça qualquer coisa so- bre os diferentes tipos de memória no chip híbrido, e opera como normal através de seu barramento baseado em SDRAM existente.
Na Figura 3A, o controlador 308 inclui lógica que pode detectar os endereços envi- ados para as linhas de endereço SDRAM do dispositivo híbrido que são parte de sua inter- face. Alguns dos endereços na faixa de endereços endereçáveis correspondem a SDRAM, e para esses endereços, o controlador 308A permite que os endereços, comandos e dados sejam processados pelo dispositivo SDRAM 304 (por exemplo, envia os uns e zeros equiva- lentes ou não desabilita o dispositivo em termos de visualizar os uns e zeros). Como um resultado desses endereços o dispositivo híbrido atua como um dispositivo SDRAM conven- cional.
Certos endereços na faixa endereçável, contudo, (compreendendo tipicamente uma faixa contígua referida como um bloco designado 320) são conhecidos do controlador 308 para serem associados com o flash, e essencialmente atuam como uma janela para a me- mória flash 306. Por exemplo, o bloco designado pode corresponder ao tamanho de bloco flash, por exemplo, 128 KB em um tipo de dispositivo flash. Quando os endereços dentro do bloco designado 320 são transferidos, o dispositivo SDRAM 304 é desabilitado (realmente ou efetivamente) pelo controlador 308. O controlador 308 em vez disso envia os comandos para o dispositivo de memória flash 306, ou controla o fluxo de dados de leitura e gravação para o dispositivo de memória flash 306. Dependendo do modelo, o controlador 308 pode desabilitar o componente SDRAM 304 mediante mudança de uma linha de entrada de dis- positivo apropriado (por exemplo, habilitação de chip) do dispositivo 304 para desabilitar, mas não enviar os endereços recebidos para o dispositivo 304, e/ou mediante envio dos endereços (por exemplo, se necessário para renovação), mas não permitindo gravações de dados ou retorno de quaisquer dados para uma leitura.
Observar que a quantidade de flash 306 não é limitada ao tamanho do bloco desig- nado 320; mais propriamente pode haver múltiplos blocos flash (ou outros arranjos de me- mória flash), com o controlador 308 acessando cada bloco ou semelhante de acordo com informação de mapeamento adicional que identifica qual parte (por exemplo, bloco) do flash total 306 deve ser acessado. Essa informação de mapeamento adicional pode ser gravada em outros locais de memória conhecidos do controlador 308, por exemplo, na extremidade superior da memória endereçável, (ou possivelmente como um suplemento para o bloco designado). Firmware 330, já presente em essencialmente todos os dispositivos de compu- tação, pode ser atualizado para ler e gravar essa informação de acordo com um protocolo adequado por intermédio da CPU 389, (conforme representado na Figura 3A pelas linhas tracejadas a partir do firmware 330 através da CPU 389 para o controlador 308A; dessa ma- neira, comandos, dados e informação de status 332 podem ser comunicados entre o firmwa- re de dispositivo 330 (e/ou outro código solicitante, em seguida referido como o firmware 330 para simplicidade), e o dispositivo híbrido de memória 302A.
A Figura 3B é uma representação de um conceito similar àquele da Figura 3A, ex- ceto que na Figura 3B o controlador alternativo 308B pode ter múltiplos armazenadores 31 Ο- Ι e 310-2 correspondendo a múltiplas janelas 320A e 320B, separadamente mapeadas para múltiplos blocos flash (por exemplo, atualmente bloco flash A1 e bloco flash BO na Figura 3B). Como pode ser prontamente considerado, embora apenas dois de tais acessos parale- los (e desse modo tipicamente mais rápidos) para os dispositivos de memória flash sejam mostrados na Figura 3B, qualquer número prático pode ser usado.
Como exemplo de como o controlador mapeia a janela (Figura 3A) ou janelas (Figu- ra 3B) para a seção ou seções corretas de flash, a Figura 4 mostra uma faixa de endereços linearmente representados 440 correspondendo à faixa de um dispositivo SDRAM conven- cional, o qual nesse exemplo é de 4 Mwords por 16 bits. Para fins de simplicidade, o mape- amento será descrito com relação ao único bloco designado 320 da Figura 3A, contudo, po- de ser prontamente entendido que mapeamento separado pode ser realizado essencialmen- te da mesma maneira.
No exemplo da Figura 4, os últimos dois blocos correspondendo ao espaço de en- dereço SDRAM são usados pelo controlador 308 e firmware 330 como um canal de coman- do 444 e canal de dados 442 para o dispositivo de memória flash 306. O mapeamento e outra informação 332 (Figura 3) nesses blocos 442 e 444 podem ser lidos e gravados pelo controlador 308 por intermédio de qualquer protocolo adequado entendido pelo controlador 308 e a fonte daquela informação adicional (por exemplo, código de firmware 330). Desse modo, mediante acesso da informação adicional 332 (ou 333 na Figura 3B) no controlador 308, por exemplo, os últimos dois blocos de palavras de um quilobyte, comando e percursos de dados para comunicação com o dispositivo flash 306 são estabelecidos. Outra informa- ção também pode estar nesses espaços. Por exemplo, o firmware de dispositivo 330 pode usar essa seção da memória para empregar um protocolo de inicialização através do qual o firmware 330 pode determinar se o dispositivo de memória é verdadeiramente um dispositi- vo híbrido, porque em geral o dispositivo híbrido de memória 302A da Figura 3 de outro mo- do seria indistinguível a partir de um dispositivo SDRAM convencional. Outros dados possí- veis comunicados por intermédio desses blocos podem, por exemplo, informar o controlador 308A onde o bloco designando 320 está (ou blocos na Figura 3B estão) localizado dentro da memória endereçável; por exemplo, dessa maneira, os blocos designados podem se mover, incluindo dinamicamente, se desejado.
Voltando-se para uma explanação da operação de um dispositivo exemplar de me- mória híbrida, um protocolo de comando adequado compreende um protocolo serial usado para transferir informação de comando e bloco de endereço (por exemplo, 332 na Figura 3A) para o dispositivo flash. Observar que como o controlador 308A é responsável pela con- versão da informação de comando e endereço, o protocolo é configurável para acessar dife- rentes tipos de dispositivos flash; por exemplo, um tipo de dispositivo NAND utiliza uma in- terface NOR SRAM, pelo que a lógica e controle acessa blocos de dados, os quais são en- tão serializados para acomodar o protocolo de entrega de dados SDRAM. Dados de grava- ção para o flash 306 similarmente serão convertidos pelo controlador 308A conforme exigido pelo protocolo flash, por exemplo, 2 KB são gravados de uma vez para tal dispositivo flash.
Como pode ser prontamente considerado, como a SDRAM é atualmente uma ou mais ordens de magnitude mais rápida do que flash, o protocolo inclui uma forma para o controlador 308A sinalizar para o firmware 330 quando uma solicitação de leitura ou grava- ção flash está ocupada e quando a solicitação está pronta. Um registrador de status na loca- lização 332 pode ser utilizado. Por exemplo, o firmware 330 envia um comando de leitura ou gravação por intermédio do bloco de comando 332; o status, o qual pode ser um bit que faz parte do comando, é ajustado pelo controlador a partir do recebimento de uma solicitação flash para zero para indicar ocupado. Observar que o controlador 308A não precisa mudar o status para ocupado se em uma solicitação de leitura o controlador 308A tem conhecimento de que o bloco designado já contém os dados corretos para o mapeamento atual.
Em uma situação típica, o controlador 308A define o status como ocupado e para uma leitura, e começa o preenchimento do armazenador 310 com os dados solicitados. Quando o armazenador contém os dados corretos, (o qual pode ser mais do que solicitado antecipadamente de uma solicitação de leitura subseqüente), o controlador 308A alterna o status para pronto. O firmware 330, o qual está sondando o status desde que ele enviou a solicitação, então tem conhecimento de que os dados solicitados podem ser lidos, os quais o controlador 308A então emite a partir do armazenador 310. Por exemplo, de acordo com o protocolo SDRAM, o controlador emitirá um único conjunto de dados (por exemplo, byte) para o endereço solicitado se uma única saída for solicitada, ou uma saída em rajadas sin- cronizadas de múltiplos conjuntos de dados começando com aquele endereço, com o núme- ro de conjuntos emitidos correspondendo ao modo de rajada atual. Observar que o modo de rajada atual pode ser estabelecido por intermédio de uma configuração de conexão física, incluindo uma configuração que indica que o modo de rajada é controlado por software; de qualquer forma o modo é conhecido do controlador 308A por intermédio das linhas de confi- guração de SDRAM equivalente e/ou um comando (para rajada controlada por software).
As gravações são similarmente processadas, com os dados no bloco designado copiados pelo controlador 308A para o armazenador 310, onde o controlador provê um sinal de ocupado que é sondado pelo firmware até que a solicitação de gravação seja efetivamen- te completada pela gravação para o flash mais lento. Como com uma solicitação de leitura, para uma solicitação de gravação o dispositivo híbrido de memória 302A parece para a CPU 389 operar nas velocidades corretas de SDRAM, e a CPU não tem conhecimento de qual- quer sondagem de status ocorrendo entre o firmware 330 e o controlador 308A. Através do protocolo, a memória síncrona é assim operada adequadamente da perspectiva da CPU, mas é efetivamente operada de forma assíncrona da perspectiva da entidade solicitante.
Desse modo, mediante adição de um controlador de memória a um dispositivo hí- brido de memória compreendendo SDRAM e flash com uma interface SDRAM padrão, a memória flash é sobreposta no espaço de endereço SDRAM. Um protocolo de comando (por exemplo, serial) é usado para gerenciar o mapeamento dos blocos flash/páginas para o espaço de endereço SDRAM. Isso permite que um pacote de múltiplos chips compatíveis de pino único substitua um dispositivo SDRAM existente em qualquer dispositivo de computa- ção que pretenda prover armazenamento flash, ainda assim realizar isso apenas como mu- danças de firmware para o dispositivo. Por exemplo, o armazenador de uma unidade de disco convencional pode ser substituído por uma atualização de chip único que provê arma- zenamento flash, pelo que o armazenamento flash pode ser usado com novo firmware para atualizar as unidades existentes para unidades híbridas. Exemplos adicionais incluem adi- cionar armazenamento não-volátil a um modelo de aparelho de conversão de sinais de TV, ou um modelo de telefone móvel que foi projetado sem armazenamento de massa integrado no momento, mas que agora é desejável, por exemplo, devido a alguma nova aplicação ou modelo de negócio.
Como exemplo de uma arquitetura específica, as Figuras 5 e 6 demonstram o uso de dispositivos flash SDRAM e NAND efetivos, com a interface e os componentes internos configurados para um protocolo de voltagem SDRAM exemplar e protocolo de acesso SDRAM, pelo que apenas mudanças de software (por exemplo, em firmware de dispositivo) são necessários para agora fazer uso da memória não-volátil no pacote. Contudo, entende- se que essencialmente qualquer dispositivo com características de endereçamento, defini- das, pode ser usado. Observar que a arquitetura; nas Figuras 5 e 6; mostra o uso de percur- sos de dados de 16 bits, o qual é uma aplicação comum, embora como se pode prontamen- te considerar, outras larguras de percurso de dados funcionam da mesma maneira. Nesse exemplo, um pacote de múltiplos chips é descrito o qual pode substituir fisicamente o chip SDRAM em um dispositivo de computação, ainda assim incorpora não somente memória SDRAM volátil como também memória flash NAND não-volátil.
O dispositivo SDRAM 504 representado na Figura 5 compreende um dispositivo do modo em rajada (por exemplo, um dispositivo Micron® MT48LC4M16A2) suportando trans- ferências de 1 byte, 2 bytes, 8 bytes, ou página e, por exemplo, pode ser usado em um dis- positivo híbrido de memória 602 (Figura 6) que inclui dois gigabits de NAND Flash 606. Con- forme representado na arquitetura exemplar para o dispositivo SDRAM da Figura 5, como com um dispositivo SDRAM convencional, o dispositivo híbrido de memória aceita sinais RAS/CAS (o estrobo de acesso de linha e estrobo de acesso de coluna bem conhecidos) nas linhas de endereço (por exemplo, A0-A11, BA0-BA1), e para outros exceto leituras ou gravações de byte único, lê ou grava dados seqüencialmente a partir do endereço de partida RAS/CAS. Observar que o dispositivo de computação que usa esse tipo de memória arma- zena os dados serialmente acessados, o que é feito tipicamente pelo cache interno em mui- tos dispositivos de computação.
Como os dados são providos serialmente com base em um endereço de partida, o controlador de memória (latência relativamente baixa) 308 entre o hospedeiro (por exemplo, CPU) e a SDRAM 504 é capaz de detectar os endereços sendo enviados para o chip. Medi- ante detecção de faixas específicas de endereço, o CE# (habilitação) para a interface SDRAM pode ser usado para colocar o dispositivo 504 em um ciclo de renovação, com os dados providos por outra fonte.
Na Figura 5, a lógica de controle do controlador 308 detecta os endereços enviados para a SDRAM. Conforme descrito acima, quando os endereços dentro do bloco designado são transferidos, o controlador tem conhecimento de que a solicitação é para o flash; obser- var que nessa arquitetura exemplar, o dispositivo SDRAM é desabilitado ao se impedir que CE# passe para o dispositivo. A lógica de controle do controlador pode então ou enviar os comandos para o dispositivo flash 606, ou por intermédio de controle de lógica de transfe- rência de dados o fluxo de dados de leitura e gravação para o dispositivo flash. Observar que o fluxo de comando para o dispositivo SDRAM não é interrompido, e a inicialização do dispositivo de pacote de múltiplos chips requer apenas que a lógica de controle detecte o modo de rajada de operação para a SDRAM para entender as rajadas de dados a serem usadas ao transferir dados de flash para o barramento de dados de memória.
Desse modo, nessa arquitetura na qual os endereços são enviados para a SDRAM por intermédio de transferências RAS/CAS em um barramento de endereço separado, me- diante detecção dos ciclos RAS/CAS na lógica de controle, os comandos e dados podem ser transferidos para e a partir do flash 606 conforme apropriado. Um protocolo serial de gravações para o bloco de comando para o flash 606 permite que o protocolo para o dispo- sitivo flash seja suportado.
O dispositivo flash representado na Figura 6 (por exemplo, um dispositivo Micron® MT29F2G16yAABWP) tem um barramento multiplexado, pelo que E/S de dados, endereços, e comandos compartilham os mesmos pinos. Observar que os pinos E/S, E/S [15:8] são usados apenas para os dados na configuração x16, com os endereços e os comandos for- necidos em E/S[7:0]. A seqüência de comandos normalmente inclui um ciclo de retenção de comando, um ciclo de retenção de endereço, e um ciclo de dados, quer seja de leitura ou gravação. Os sinais de controle CE#, WE#, RE#, CLE, ALE e WP# controlam as operações de leitura e gravação do dispositivo flash. Observar que em um flash diferente, por exemplo, um dispositivo Micron® Gb Mt29F8G08FAB, CE# e CE2# controlam individualmente arran- jos independentes de 4Gb. O CE2# funciona da mesma forma como CE# para seu próprio arranjo, e as operações descritas para CE# também se aplicam a CE2#.
CE# é usado para habilitar o dispositivo. Quando CE# é baixo e o dispositivo não está no estado ocupado, a memória flash aceitará informação de comando, dados e endere- ço. Quando o dispositivo não estiver realizando uma operação, o pino de CE# é tipicamente acionado alto e o dispositivo entra no modo de espera. A memória entrará em espera se CE# for alto enquanto os dados tiverem sendo transferidos e o dispositivo não estiver ocu- pado. Isso ajuda a reduzir o consumo de energia.
A operação "Don't Care" do CE# permite que o NAND flash resida no mesmo bar- ramento de memória assíncrona, como outros dispositivos flash ou SRAM. Outros dispositi- vos no barramento de memória podem ser então acessados enquanto o Flash NAND estiver ocupado com operações internas. Essa capacidade é para projetos que requerem múltiplos dispositivos NAND no mesmo barramento, por exemplo, um dispositivo pode ser programa- do enquanto outro está sendo lido. Um sinal CLE alto indica que um ciclo de comando está ocorrendo. Um sinal ALE alto significa que um ciclo de entrada de endereço está ocorrendo.
Os comandos são gravados para o registrador de comandos na extremidade de elevação de WE# quando CE# e ALE estiverem BAIXOS, e CLE estiver alto e o dispositivo não estiver ocupado. Exceções para isso são o status de leitura e os comandos de reinicialização.
Com esse componente específico, os comandos são transferidos para o registrador de comandos na extremidade em elevação de WE#; comandos introduzidos nas linhas E/S[7:0] apenas. Para dispositivos com uma interface x16, linhas E/S[15:8] precisam ser gravados com zeros ao se emitir um comando. Os endereços são gravados para o registra- dor de endereço na extremidade de elevação de WE# quando o CE# e o CLE estiverem baixos, e o ALE estiver alto e o dispositivo não estiver ocupado. Os endereços são introdu- zidos apenas em E/S[7:0]; para dispositivos com uma interface x16, E/S[15:8] precisa ser gravado com zeros ao se emitir um endereço. Geralmente todos os cinco ciclos de endereço são gravados para o dispositivo. Uma exceção para isso é o comando de apagar bloco, o qual requer apenas três ciclos de endereço.
O dispositivo flash aqui exemplificado é um dispositivo multiplexado, pelo que o en- dereço, comandos e dados fluem através de uma interface simples de 16 bits de uma forma serial. A Figura 7 exemplifica a natureza serial da temporização de protocolo de transferên- cia de dados e comando de endereço para o dispositivo flash exemplificado. Observar que o endereço, os comandos e os dados são enviados a partir da interface SDRAM (a qual não é multiplexada) mediante gravação seqüencialmente para os blocos de dados e comandos.
Conforme descrito acima, mediante detecção de gravações para o bloco de co- mandos no espaço de endereço da SDRAM, os dados exigidos podem ser transferidos para o dispositivo flash pelo controlador 508. A transferência de endereço mostrada acima pode ser expandida para mostrar a transferência de informação de endereço para o dispositivo flash. Como também descrito acima, a informação de endereço para a memória flash é transferida mediante realização de múltiplas gravações para o endereço de bloco de co- mando na SDRAM. Dados de SDRAM nessa área são indisponíveis, uma vez que o disposi- tivo seria selecionado para essas gravações. Dessa forma serial a informação de comando e dados de endereço pode ser gravada e lida a partir do dispositivo flash. A lógica de contro- le implementa protocolos de comando adicionais conforme descrito acima, por exemplo, para permitir que o dispositivo flash seja isolado das considerações de velocidade do dispo- sitivo SDRAM. Por exemplo, mediante armazenamento do status do dispositivo flash na ló- gica de controle, respostas de comando adicionais que indicam status de ocupado e de exe- cução podem ser adicionadas ao protocolo serial. Os dados e status retornados a partir do dispositivo flash são armazenados em um pequeno bloco de SRAM na lógica de transferên- cia de dados, de modo que a velocidades de leitura e gravação para flash coincidem com aquelas das SDRAM.
Um exemplo típico de transferência serial para o dispositivo flash é representado na Figura 8, a qual representa leituras e gravações exemplares pelo firmware 330 para o espa- ço de endereço SDRAM 332 (Figura 3) que é reservado para controlar o flash 306. Em ge- ral, o firmware envia um comando flash na etapa 802 mediante gravação de um comando INATIVO para o espaço de endereço 332 o qual o controlador detecta.
Na etapa 804, o firmware envia uma solicitação de endereço de bloco flash, com- preendendo cinco gravações de endereço que indicam qual bloco a ser usado e qual ende- reço, em conjunto com um comando de gravação para o espaço de endereço de comando. O controlador então tem a informação que ele precisa para realizar a gravação.
Em cada uma das etapas 806 e 808, o firmware 330 sonda o status mediante emis- são de um comando de gravação e uma leitura de rajada, em Ioop por intermédio da etapa 810 até que o status de pronto seja detectado, e a rajada de leitura flash (etapa 812) seja enviada. Em uma implementação alternativa, um protocolo baseado em registrador provê acesso ao flash mediante carregamento de uma série de registradoras, incluindo gravar um registrador com um conjunto de palavra ocupado para iniciar a execução do comando. Isso permite que uma única gravação de página inicie a gravação ou a busca de bloco ou blocos flash. Nessa alternativa, a palavra ocupada é alternada pelo controlador quando o comando tiver sido concluído. Comandos suportados incluem buscar endereço/bloco (ou buscar faixa de endereços), gravar endereço/bloco (ou gravar faixa de endereços), e deletar endere- ço/bloco (ou deletar faixa de endereço).
Além disso, como o controlador inclui lógica, o controlador pode realizar gerencia- mento flash. Por exemplo, flash se esgota após certo número de leituras e gravações, e desse modo o controlador pode tornar a mapear o acesso para equilibrar a utilização dos vários blocos disponíveis de flash, referido como nivelamento de desgaste. A lógica contro- ladora também pode realizar detecção e correção de erro, e realizar gerenciamento de bloco ruim mediante remoção logicamente dos blocos ruins conhecidos os quais não ficam dispo- níveis.
A Figura 9 é uma representação exemplar um módulo de memória dual em linha (DIMM) 902, exemplificando como o flash pode ser adicionado à memória de sistema de computador pessoal, convencional. Os chips de flash físicos podem estar no mesmo lado que os chips de SDRAM, no lado oposto, ou ambos. O controlador pode estar na própria DIMM, ou alternativamente pode estar externo a ela, com a capacidade de desabilitar a SDRAM e substituir os dados flash conforme desejado.
Quando o computador pessoal é ligado, a BIOS (firmware) testa no sentido da pre- sença da memória DIMM híbrida, e se presente, carrega ao menos alguma da memória SDRAM (seu código) a partir do flash. A presença da memória flash não-volátil permite as operações de inicialização ou retomada a partir dos dados armazenados no flash. Por e- xemplo, os dados são acessados a partir do cache de memória da CPU o qual é mapeado para blocos de memória e resolvidos a partir da SDRAM ou do flash. Se flash suficiente esti- ver presente, a SDRAM inteira pode ser preservada para fins de hibernação, ou o sistema operacional inteiro carregado, sem precisar acessar dispositivos periféricos tal como a uni- dade de disco rígido.
Embora a invenção seja capaz de diversas modificações e construções alternativas, algumas modalidades ilustradas da mesma são mostradas nos desenhos e foram descritas acima, em detalhe. Deve ser entendido, contudo, que não há intenção de limitar a invenção às formas específicas reveladas, mas ao contrário, a invenção deve abranger todas as mo- dificações, construções alternativas, e equivalentes compreendidos no espírito e escopo da invenção.
Claims (18)
1. Dispositivo de memória, um método sendo CARACTERIZADO por compreender: receber, em um controlador, comandos, endereços e dados no dispositivo de me- mória por intermédio de uma interface definida para um primeiro tipo de memória associada ao dispositivo de memória; determinar no controlador se a informação recebida no dispositivo de memória cor- responde a um segundo tipo de memória associado ao dispositivo de memória, e se assim for, emitir os sinais para o segundo tipo de memória para comunicar ao menos um comando ao segundo tipo de memória e/ou para realizar ao menos uma operação de entrada/saída (E/S) de dados no segundo tipo de memória.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender ainda, quando a informação recebida corresponde ao segundo tipo de memória, desabilitar o primeiro tipo de memória.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender, quando a informação recebida corresponde ao segundo tipo de memória, produzir uma indi- cação de ocupado, realizando uma operação de E/S de dados no segundo tipo de memória, e produzindo uma indicação de pronto quando a operação E/S de dados estiver concluída.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender ainda, quando a informação recebida corresponder ao segundo tipo de memória, acessar informação de comando e/ou informação de endereço de dados em outro conjunto de um ou mais locais do dispositivo de memória.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a informação recebida corresponde à informação de endereçamento de dados, e compreen- dendo ainda ler a informação de endereçamento de dados para mapear um endereço rece- bido para uma seção entre uma pluralidade de possíveis seções do segundo tipo de memória.
6. Dispositivo de memória, um sistema sendo CARACTERIZADO por compreender: um primeiro tipo de memória; uma interface correspondendo ao primeiro tipo de memória de tal modo que o dis- positivo de memória opera com o protocolo de acesso do primeiro tipo de memória; um segundo tipo de memória; e um controlador que é acoplado à interface, ao primeiro tipo de memória e ao se- gundo tipo de memória, no qual com base na informação recebida na interface, o controla- dor determina se outra informação recebida por intermédio da interface se aplica ao primeiro tipo de memória ou ao segundo tipo de memória.
7. Sistema, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que o primeiro tipo de memória compreende memória volátil, o segundo tipo de memória compre- ende memória não-volátil, e em que ao menos parte da informação recebida na interface através da qual o controlador determina se a informação relacionada recebida por intermé- dio da interface se aplica ao primeiro tipo de memória ou ao segundo tipo de memória é re- cebida em um endereço de memória correspondendo ao primeiro tipo de memória.
8. Sistema, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a memória volátil compreende memória do tipo SDRAM ou memória do tipo DRAM, e em que o endereço de memória e a informação relacionada recebida por intermédio da interface compreende estrobo de acesso de linha, estrobo de acesso de coluna e informação de con- trole.
9. Sistema, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a memória não-volátil compreende memória flash, e compreendendo ainda um armazenador associado com o controlador para armazenar operações E/S de dados, realizadas com a memória flash.
10. Sistema, de acordo com a reivindicação 9, CARACTERIZADO por compreen- der ainda um indicador de status, em que o controlador sinaliza por intermédio do indicador de status se uma operação E/S de status está ocupada ou completa.
11. Sistema, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que o dispositivo de memória é incorporado em um módulo de memória em linha dual.
12. Sistema, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que o controlador inclui ainda meio para gerenciamento de memória.
13. Sistema, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que o controlador acessa informação de comando e/ou informação de endereçamento de dados em um conjunto de um ou mais locais correspondendo ao primeiro tipo de memória.
14. Dispositivo de computação, um sistema CARACTERIZADO por compreender: um dispositivo híbrido de memória incluindo uma interface correspondendo a um primeiro tipo de memória, a um segundo tipo de memória e um controlador; e um componente que inicia comandos para o controlador por intermédio da interfa- ce, incluindo mediante gravação de dados relacionados ao comando para um ou mais ende- reços do primeiro tipo de memória, incluindo ao menos um comando dirigido para uma ope- ração de entrada/saída de dados no segundo tipo de memória.
15. Sistema, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o controlador sinaliza o componente com informação de status de uma operação de entrada/saída de dados do segundo tipo de memória mediante gravação de dados relacio- nados a status para um ou mais endereços do primeiro tipo de memória.
16. Sistema, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o componente compreende código executando em firmware do dispositivo de computa- ção.
17. Sistema, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o primeiro tipo de memória corresponde à memória volátil, e o segundo tipo de memória compreende memória não-volátil, com os dados endereçados a determinado local no primei- ro tipo de memória sendo controlados pelo controlador para acessar o segundo tipo de me- mória.
18. Sistema, de acordo com a reivindicação 14, CARACTERIZADO por compreen- der adicionalmente um armazenador associado com o controlador para armazenar opera- ções de E/S de dados realizadas com o segundo tipo de memória.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/449.435 | 2006-06-07 | ||
US11/449,435 US7716411B2 (en) | 2006-06-07 | 2006-06-07 | Hybrid memory device with single interface |
PCT/US2007/013127 WO2007145883A1 (en) | 2006-06-07 | 2007-06-01 | Hybrid memory device with single interface |
Publications (1)
Publication Number | Publication Date |
---|---|
BRPI0711731A2 true BRPI0711731A2 (pt) | 2011-11-29 |
Family
ID=38823267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0711731-0A BRPI0711731A2 (pt) | 2006-06-07 | 2007-06-01 | dispositivo hìbrido de memória com interface única |
Country Status (11)
Country | Link |
---|---|
US (2) | US7716411B2 (pt) |
EP (1) | EP2025001B1 (pt) |
JP (2) | JP2009540431A (pt) |
KR (1) | KR101159400B1 (pt) |
CN (1) | CN101473438B (pt) |
BR (1) | BRPI0711731A2 (pt) |
ES (1) | ES2718463T3 (pt) |
MX (1) | MX2008014859A (pt) |
RU (1) | RU2442211C2 (pt) |
TW (1) | TWI420302B (pt) |
WO (1) | WO2007145883A1 (pt) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
Families Citing this family (190)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250295B2 (en) | 2004-01-05 | 2012-08-21 | Smart Modular Technologies, Inc. | Multi-rank memory module that emulates a memory module having a different number of ranks |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8169233B2 (en) | 2009-06-09 | 2012-05-01 | Google Inc. | Programming of DIMM termination resistance values |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8619452B2 (en) | 2005-09-02 | 2013-12-31 | Google Inc. | Methods and apparatus of stacking DRAMs |
US7392338B2 (en) | 2006-07-31 | 2008-06-24 | Metaram, Inc. | Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US7516293B2 (en) * | 2006-09-08 | 2009-04-07 | International Business Machines Corporation | Increased performance using mixed memory types |
WO2008057557A2 (en) | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
US8135900B2 (en) | 2007-03-28 | 2012-03-13 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
JP5032172B2 (ja) * | 2007-03-28 | 2012-09-26 | 株式会社東芝 | 統合メモリ管理装置及び方法並びにデータ処理システム |
WO2008131058A2 (en) * | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US8301833B1 (en) | 2007-06-01 | 2012-10-30 | Netlist, Inc. | Non-volatile memory module |
US8209479B2 (en) | 2007-07-18 | 2012-06-26 | Google Inc. | Memory circuit system and method |
DE102007038543B4 (de) * | 2007-08-16 | 2022-09-01 | Robert Bosch Gmbh | Begleit-Chip zur Anwendung in einer Motorsteuerung |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
US9201790B2 (en) * | 2007-10-09 | 2015-12-01 | Seagate Technology Llc | System and method of matching data rates |
US8352671B2 (en) * | 2008-02-05 | 2013-01-08 | Spansion Llc | Partial allocate paging mechanism using a controller and a buffer |
US8209463B2 (en) * | 2008-02-05 | 2012-06-26 | Spansion Llc | Expansion slots for flash memory based random access memory subsystem |
US8332572B2 (en) * | 2008-02-05 | 2012-12-11 | Spansion Llc | Wear leveling mechanism using a DRAM buffer |
US8275945B2 (en) | 2008-02-05 | 2012-09-25 | Spansion Llc | Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer |
JP2009211192A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8082384B2 (en) * | 2008-03-26 | 2011-12-20 | Microsoft Corporation | Booting an electronic device using flash memory and a limited function memory controller |
US20090313416A1 (en) * | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US10236032B2 (en) * | 2008-09-18 | 2019-03-19 | Novachips Canada Inc. | Mass data storage system with non-volatile memory modules |
US8599625B2 (en) * | 2008-10-23 | 2013-12-03 | Marvell World Trade Ltd. | Switch pin multiplexing |
KR100987332B1 (ko) | 2008-11-07 | 2010-10-18 | 서울대학교산학협력단 | 메모리 구조에 따른 메모리 관리 장치 |
CN101510174B (zh) * | 2008-11-07 | 2012-05-02 | 慧帝科技(深圳)有限公司 | 一种快闪记忆体更新资料的管理方法及相关的记忆卡 |
US8370603B2 (en) * | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
US20140325129A1 (en) * | 2008-12-31 | 2014-10-30 | Micron Technology, Inc. | Method and apparatus for active range mapping for a nonvolatile memory device |
US8327087B1 (en) * | 2008-12-31 | 2012-12-04 | Micron Technology, Inc. | Method and apparatus for an always open write-only register based memory mapped overlay interface for a nonvolatile memory |
KR101583002B1 (ko) * | 2009-02-23 | 2016-01-21 | 삼성전자주식회사 | 컴퓨팅 시스템, 그것의 부팅 방법, 및 코드 데이터 피닝 방법 |
CN102063939B (zh) * | 2009-11-18 | 2015-01-28 | 中兴通讯股份有限公司 | 一种电可擦除可编程只读存储器的实现方法和装置 |
CN102110057B (zh) * | 2009-12-25 | 2013-05-08 | 澜起科技(上海)有限公司 | 存储器模组及存储器模组内的数据交换方法 |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
JP5570619B2 (ja) | 2010-02-23 | 2014-08-13 | ラムバス・インコーポレーテッド | 異なるメモリ種類にアクセスする異なる速度での時分割多重化 |
KR101840238B1 (ko) * | 2010-03-08 | 2018-03-20 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 데이터 저장 장치 및 방법 |
US20110255335A1 (en) * | 2010-04-20 | 2011-10-20 | Alessandro Grossi | Charge trap memory having limited charge diffusion |
US20120026802A1 (en) * | 2010-07-30 | 2012-02-02 | Emanuele Confalonieri | Managed hybrid memory with adaptive power supply |
KR101670055B1 (ko) * | 2010-08-30 | 2016-11-09 | 삼성전자 주식회사 | 디지털 영상 처리 장치의 제어 방법, 상기 방법을 적용한 디지털 영상 처리 장치, 상기 디지털 영상 처리 장치를 포함하는 통신 시스템 |
JP2012063874A (ja) * | 2010-09-14 | 2012-03-29 | Toshiba Corp | チップセレクト信号を切り替えるセレクタ、ストレージ装置、及び電子機器 |
KR20120028484A (ko) | 2010-09-15 | 2012-03-23 | 삼성전자주식회사 | 모바일 기기에 채용하기 적합한 복합형 반도체 장치 |
EP2453377A1 (en) * | 2010-11-15 | 2012-05-16 | Gemalto SA | Method of loading data into a portable secure token |
US9208071B2 (en) * | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9141527B2 (en) * | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9170744B1 (en) | 2011-04-06 | 2015-10-27 | P4tents1, LLC | Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system |
US9158546B1 (en) | 2011-04-06 | 2015-10-13 | P4tents1, LLC | Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory |
US9164679B2 (en) | 2011-04-06 | 2015-10-20 | Patents1, Llc | System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class |
US9176671B1 (en) | 2011-04-06 | 2015-11-03 | P4tents1, LLC | Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system |
US8930647B1 (en) | 2011-04-06 | 2015-01-06 | P4tents1, LLC | Multiple class memory systems |
US10380022B2 (en) | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US10838646B2 (en) | 2011-07-28 | 2020-11-17 | Netlist, Inc. | Method and apparatus for presearching stored data |
US10198350B2 (en) | 2011-07-28 | 2019-02-05 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US9417754B2 (en) | 2011-08-05 | 2016-08-16 | P4tents1, LLC | User interface system, method, and computer program product |
US11048410B2 (en) | 2011-08-24 | 2021-06-29 | Rambus Inc. | Distributed procedure execution and file systems on a memory interface |
WO2013028854A1 (en) | 2011-08-24 | 2013-02-28 | Rambus Inc. | Methods and systems for mapping a peripheral function onto a legacy memory interface |
US9098209B2 (en) | 2011-08-24 | 2015-08-04 | Rambus Inc. | Communication via a memory interface |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US9361986B2 (en) | 2011-09-19 | 2016-06-07 | Sandisk Technologies Inc. | High endurance non-volatile storage |
KR20130032772A (ko) * | 2011-09-23 | 2013-04-02 | 삼성전자주식회사 | 하이브리드 메모리 장치, 이를 포함하는 컴퓨터 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법 |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
WO2013177313A2 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Processing structured and unstructured data using offload processors |
US20130318268A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US9183910B2 (en) | 2012-05-31 | 2015-11-10 | Samsung Electronics Co., Ltd. | Semiconductor memory devices for alternately selecting bit lines |
US9252996B2 (en) | 2012-06-21 | 2016-02-02 | Micron Technology, Inc. | Apparatuses and methods to change information values |
KR20130143210A (ko) * | 2012-06-21 | 2013-12-31 | 삼성전자주식회사 | 메모리 확장 장치 |
US20140101370A1 (en) * | 2012-10-08 | 2014-04-10 | HGST Netherlands B.V. | Apparatus and method for low power low latency high capacity storage class memory |
US20140108705A1 (en) | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
EP2915049B1 (en) | 2012-10-30 | 2020-03-04 | Hewlett-Packard Enterprise Development LP | Smart memory buffers |
CA2891355C (en) * | 2012-11-20 | 2022-04-05 | Charles I. Peddle | Solid state drive architectures |
US9147461B1 (en) | 2012-11-28 | 2015-09-29 | Samsung Electronics Co., Ltd. | Semiconductor memory device performing a refresh operation, and memory system including the same |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
US9378161B1 (en) | 2013-01-17 | 2016-06-28 | Xockets, Inc. | Full bandwidth packet handling with server systems including offload processors |
EP2946296A4 (en) | 2013-01-17 | 2016-11-16 | Xockets Ip Llc | DELIBRATION PROCESSOR MODULES FOR CONNECTING TO A SYSTEM MEMORY |
CN103970219B (zh) * | 2013-01-30 | 2018-03-20 | 鸿富锦精密电子(天津)有限公司 | 存储设备及支持所述存储设备的主板 |
KR101752583B1 (ko) | 2013-03-14 | 2017-07-11 | 마이크론 테크놀로지, 인크. | 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들 |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
WO2014155592A1 (ja) * | 2013-03-27 | 2014-10-02 | 株式会社日立製作所 | Sdramインターフェイスを有するdram、フラッシュメモリ混載メモリモジュール |
CN105027092B (zh) | 2013-03-27 | 2018-01-30 | 株式会社日立制作所 | 具有sdram接口的dram、混合闪存存储器模块 |
US9552176B2 (en) | 2013-04-12 | 2017-01-24 | Microsoft Technology Licensing, Llc | Block storage using a hybrid memory device |
US9436600B2 (en) | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9858181B2 (en) * | 2013-06-20 | 2018-01-02 | Hitachi, Ltd. | Memory module having different types of memory mounted together thereon, and information processing device having memory module mounted therein |
US9129674B2 (en) * | 2013-06-27 | 2015-09-08 | Intel Corporation | Hybrid memory device |
CN105340017A (zh) * | 2013-07-09 | 2016-02-17 | 惠普发展公司,有限责任合伙企业 | 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制 |
US9921980B2 (en) | 2013-08-12 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for configuring I/Os of memory for hybrid memory modules |
JP6090057B2 (ja) * | 2013-08-15 | 2017-03-08 | 富士ゼロックス株式会社 | 状態情報記録装置及びプログラム |
US10185515B2 (en) * | 2013-09-03 | 2019-01-22 | Qualcomm Incorporated | Unified memory controller for heterogeneous memory on a multi-chip package |
JP6072661B2 (ja) * | 2013-09-30 | 2017-02-01 | ルネサスエレクトロニクス株式会社 | データ処理装置、マイクロコントローラ、及び半導体装置 |
KR20160083926A (ko) | 2013-11-07 | 2016-07-12 | 넷리스트 인코포레이티드 | 하이브리드 메모리 모듈, 및 그를 동작시키는 시스템 및 방법 |
US11182284B2 (en) | 2013-11-07 | 2021-11-23 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US10248328B2 (en) | 2013-11-07 | 2019-04-02 | Netlist, Inc. | Direct data move between DRAM and storage on a memory module |
KR102195896B1 (ko) * | 2014-01-10 | 2020-12-28 | 삼성전자주식회사 | 디스크 캐시 제어 장치 및 방법 |
US9342402B1 (en) | 2014-01-28 | 2016-05-17 | Altera Corporation | Memory interface with hybrid error detection circuitry for modular designs |
US9237670B2 (en) | 2014-02-26 | 2016-01-12 | Samsung Electronics Co., Ltd. | Socket interposer and computer system using the socket |
CN103942159A (zh) * | 2014-03-19 | 2014-07-23 | 华中科技大学 | 一种基于混合存储设备的数据读写方法与装置 |
US9911477B1 (en) | 2014-04-18 | 2018-03-06 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
US20150347151A1 (en) * | 2014-05-28 | 2015-12-03 | Diablo Technologies Inc. | System and method for booting from a non-volatile memory |
US9811263B1 (en) | 2014-06-30 | 2017-11-07 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
US10430092B1 (en) * | 2014-07-28 | 2019-10-01 | Rambus Inc. | Memory controller systems with nonvolatile memory for storing operating parameters |
US9715453B2 (en) * | 2014-12-11 | 2017-07-25 | Intel Corporation | Computing method and apparatus with persistent memory |
US10318340B2 (en) * | 2014-12-31 | 2019-06-11 | Ati Technologies Ulc | NVRAM-aware data processing system |
KR102355436B1 (ko) * | 2015-01-09 | 2022-01-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
KR102076196B1 (ko) * | 2015-04-14 | 2020-02-12 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 |
CN107710175B (zh) * | 2015-04-20 | 2021-12-14 | 奈特力斯股份有限公司 | 存储器模块以及操作系统和方法 |
WO2016182743A1 (en) | 2015-05-09 | 2016-11-17 | Medtronic, Inc. | Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set |
US10261697B2 (en) | 2015-06-08 | 2019-04-16 | Samsung Electronics Co., Ltd. | Storage device and operating method of storage device |
US9904490B2 (en) * | 2015-06-26 | 2018-02-27 | Toshiba Memory Corporation | Solid-state mass storage device and method for persisting volatile data to non-volatile media |
US10078448B2 (en) | 2015-07-08 | 2018-09-18 | Samsung Electronics Co., Ltd. | Electronic devices and memory management methods thereof |
US20170060434A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | Transaction-based hybrid memory module |
KR102367512B1 (ko) | 2015-09-08 | 2022-02-24 | 삼성전자주식회사 | 시스템 온 패키지 |
US10031674B2 (en) * | 2015-10-07 | 2018-07-24 | Samsung Electronics Co., Ltd. | DIMM SSD addressing performance techniques |
US10331586B2 (en) | 2015-10-30 | 2019-06-25 | Samsung Electronics Co., Ltd. | Nonvolatile memory device for providing fast booting and system including the same |
WO2017078681A1 (en) * | 2015-11-03 | 2017-05-11 | Hewlett-Packard Development Company, L.P. | Operating mode memory migration |
US9971511B2 (en) | 2016-01-06 | 2018-05-15 | Samsung Electronics Co., Ltd. | Hybrid memory module and transaction-based memory interface |
US20170220252A1 (en) * | 2016-01-29 | 2017-08-03 | Faraday&Future Inc. | Flash emulated eeprom wrapper |
US10146704B2 (en) * | 2016-02-16 | 2018-12-04 | Dell Products L.P. | Volatile/non-volatile memory device access provisioning system |
US10163508B2 (en) * | 2016-02-26 | 2018-12-25 | Intel Corporation | Supporting multiple memory types in a memory slot |
US10534619B2 (en) | 2016-02-26 | 2020-01-14 | Smart Modular Technologies, Inc. | Memory management system with multiple boot devices and method of operation thereof |
US10621119B2 (en) | 2016-03-03 | 2020-04-14 | Samsung Electronics Co., Ltd. | Asynchronous communication protocol compatible with synchronous DDR protocol |
US10592114B2 (en) | 2016-03-03 | 2020-03-17 | Samsung Electronics Co., Ltd. | Coordinated in-module RAS features for synchronous DDR compatible memory |
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 |
US10810144B2 (en) * | 2016-06-08 | 2020-10-20 | Samsung Electronics Co., Ltd. | System and method for operating a DRR-compatible asynchronous memory module |
US10692555B2 (en) | 2016-06-29 | 2020-06-23 | Samsung Electronics Co., Ltd. | Semiconductor memory devices enabling read strobe mode and related methods of operating semiconductor memory devices |
US10186309B2 (en) | 2016-06-29 | 2019-01-22 | Samsung Electronics Co., Ltd. | Methods of operating semiconductor memory devices and semiconductor memory devices |
KR102554496B1 (ko) | 2016-07-14 | 2023-07-13 | 에스케이하이닉스 주식회사 | 복수개의 메모리 모듈을 포함하는 데이터 처리 시스템 |
US10282108B2 (en) * | 2016-08-31 | 2019-05-07 | Micron Technology, Inc. | Hybrid memory device using different types of capacitors |
US9916256B1 (en) | 2016-09-12 | 2018-03-13 | Toshiba Memory Corporation | DDR storage adapter |
KR20180030329A (ko) * | 2016-09-13 | 2018-03-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10552053B2 (en) | 2016-09-28 | 2020-02-04 | Seagate Technology Llc | Hybrid data storage device with performance mode data path |
DE102017105155B4 (de) | 2016-11-11 | 2023-09-07 | Sandisk Technologies Llc | Schnittstelle für einen nichtflüchtigen speicher |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
KR20180078512A (ko) | 2016-12-30 | 2018-07-10 | 삼성전자주식회사 | 반도체 장치 |
JP6391719B2 (ja) * | 2017-01-10 | 2018-09-19 | マイクロン テクノロジー, インク. | トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 |
US10977057B2 (en) * | 2017-01-23 | 2021-04-13 | Via Labs, Inc. | Electronic apparatus capable of collectively managing different firmware codes and operation method thereof |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US10496584B2 (en) * | 2017-05-11 | 2019-12-03 | Samsung Electronics Co., Ltd. | Memory system for supporting internal DQ termination of data buffer |
US10403342B2 (en) * | 2017-06-20 | 2019-09-03 | Aspiring Sky Co. Limited | Hybrid flash memory structure |
US10845866B2 (en) * | 2017-06-22 | 2020-11-24 | Micron Technology, Inc. | Non-volatile memory system or sub-system |
ES2827790T3 (es) * | 2017-08-21 | 2021-05-24 | Carrier Corp | Sistema antiincendios y de seguridad que incluye bucle accesible por dirección y mejora automática de firmware |
KR102412609B1 (ko) | 2017-11-03 | 2022-06-23 | 삼성전자주식회사 | 내부 커맨드에 따른 어드레스에 대한 저장 및 출력 제어를 수행하는 메모리 장치 및 그 동작방법 |
KR102101622B1 (ko) * | 2017-12-06 | 2020-04-17 | 주식회사 멤레이 | 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스 |
US11216370B2 (en) * | 2018-02-20 | 2022-01-04 | Medtronic, Inc. | Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set |
KR20190105337A (ko) | 2018-03-05 | 2019-09-17 | 삼성전자주식회사 | 반도체 메모리 장치 |
US10534731B2 (en) | 2018-03-19 | 2020-01-14 | Micron Technology, Inc. | Interface for memory having a cache and multiple independent arrays |
US10705963B2 (en) | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
TWI668575B (zh) * | 2018-07-26 | 2019-08-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US10977198B2 (en) * | 2018-09-12 | 2021-04-13 | Micron Technology, Inc. | Hybrid memory system interface |
CN111512374B (zh) * | 2018-10-16 | 2022-11-11 | 华为技术有限公司 | 一种混合存储设备及访问方法 |
US11048654B2 (en) * | 2018-10-24 | 2021-06-29 | Innogrit Technologies Co., Ltd. | Systems and methods for providing multiple memory channels with one set of shared address pins on the physical interface |
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
US11199991B2 (en) | 2019-01-03 | 2021-12-14 | Silicon Motion, Inc. | Method and apparatus for controlling different types of storage units |
KR20210017109A (ko) | 2019-08-07 | 2021-02-17 | 삼성전자주식회사 | 스토리지 장치 |
RU2757659C1 (ru) * | 2020-06-16 | 2021-10-19 | Александр Георгиевич Носков | Накопитель магнитный с разделёнными областями |
KR20220029914A (ko) | 2020-09-02 | 2022-03-10 | 삼성전자주식회사 | 펄스 진폭 변조 기반 데이터 스트로브 신호를 생성하는 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템 |
US20220083252A1 (en) * | 2020-09-14 | 2022-03-17 | Micron Technology, Inc. | Indication-based avoidance of defective memory cells |
CN114895847A (zh) * | 2020-10-12 | 2022-08-12 | 长江存储科技有限责任公司 | 非易失性存储器、存储装置及非易失性存储器的操作方法 |
KR20220077400A (ko) | 2020-12-02 | 2022-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이의 동작 방법 |
US11803326B2 (en) * | 2021-04-23 | 2023-10-31 | Macronix International Co., Ltd. | Implementing a read setup burst command in 3D NAND flash memory to reduce voltage threshold deviation over time |
KR102483906B1 (ko) * | 2021-07-14 | 2022-12-30 | 서울시립대학교 산학협력단 | Nand 플래시 메모리와 sram이 융합된 nas 메모리 셀 및 이를 이용한 nas 메모리 어레이 |
CN116955241B (zh) * | 2023-09-21 | 2024-01-05 | 杭州智灵瞳人工智能有限公司 | 兼容多类型存储介质的存储芯片 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4995004A (en) | 1989-05-15 | 1991-02-19 | Dallas Semiconductor Corporation | RAM/ROM hybrid memory architecture |
JPH05299616A (ja) * | 1992-04-16 | 1993-11-12 | Hitachi Ltd | 半導体記憶装置 |
JPH06195258A (ja) * | 1992-07-08 | 1994-07-15 | Nec Corp | 半導体記憶装置 |
US5696917A (en) | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
US5634112A (en) * | 1994-10-14 | 1997-05-27 | Compaq Computer Corporation | Memory controller having precharge prediction based on processor and PCI bus cycles |
US5701433A (en) * | 1994-10-14 | 1997-12-23 | Compaq Computer Corporation | Computer system having a memory controller which performs readahead operations which can be aborted prior to completion |
US6741494B2 (en) | 1995-04-21 | 2004-05-25 | Mark B. Johnson | Magnetoelectronic memory element with inductively coupled write wires |
US5864671A (en) | 1996-07-01 | 1999-01-26 | Sun Microsystems, Inc. | Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used |
US6418506B1 (en) * | 1996-12-31 | 2002-07-09 | Intel Corporation | Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array |
US6850995B1 (en) * | 1999-01-25 | 2005-02-01 | Canon Kabushiki Kaisha | Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process |
US6380581B1 (en) | 1999-02-26 | 2002-04-30 | Micron Technology, Inc. | DRAM technology compatible non volatile memory cells with capacitors connected to the gates of the transistors |
KR100313514B1 (ko) * | 1999-05-11 | 2001-11-17 | 김영환 | 하이브리드 메모리 장치 |
KR100383774B1 (ko) | 2000-01-26 | 2003-05-12 | 삼성전자주식회사 | 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템 |
US7073014B1 (en) | 2000-07-28 | 2006-07-04 | Micron Technology, Inc. | Synchronous non-volatile memory system |
JP3871853B2 (ja) * | 2000-05-26 | 2007-01-24 | 株式会社ルネサステクノロジ | 半導体装置及びその動作方法 |
JP2002259443A (ja) * | 2001-02-28 | 2002-09-13 | Ricoh Co Ltd | 文書管理システム、文書検索方法および文書検索プログラム |
US6327207B1 (en) * | 2001-04-09 | 2001-12-04 | Lsi Logic Corporation | Synchronizing data operations across a synchronization boundary between different clock domains using two-hot encoding |
JP4059002B2 (ja) * | 2001-06-13 | 2008-03-12 | 株式会社日立製作所 | メモリ装置 |
TWI240864B (en) * | 2001-06-13 | 2005-10-01 | Hitachi Ltd | Memory device |
JP2003006041A (ja) | 2001-06-20 | 2003-01-10 | Hitachi Ltd | 半導体装置 |
US6670234B2 (en) | 2001-06-22 | 2003-12-30 | International Business Machines Corporation | Method of integrating volatile and non-volatile memory cells on the same substrate and a semiconductor memory device thereof |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US6799231B2 (en) * | 2002-10-22 | 2004-09-28 | Asix Electronics Corp. | Virtual I/O device coupled to memory controller |
WO2004049168A1 (ja) * | 2002-11-28 | 2004-06-10 | Renesas Technology Corp. | メモリモジュール、メモリシステム、及び情報機器 |
US7752380B2 (en) | 2003-07-31 | 2010-07-06 | Sandisk Il Ltd | SDRAM memory device with an embedded NAND flash controller |
US6859068B1 (en) * | 2003-08-08 | 2005-02-22 | Sun Microsystems, Inc. | Self-correcting I/O interface driver scheme for memory interface |
US7171526B2 (en) | 2003-11-07 | 2007-01-30 | Freescale Semiconductor, Inc. | Memory controller useable in a data processing system |
US6862206B1 (en) * | 2003-12-19 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | Memory module hybridizing an atomic resolution storage (ARS) memory and a magnetic memory |
KR101085406B1 (ko) | 2004-02-16 | 2011-11-21 | 삼성전자주식회사 | 불 휘발성 메모리를 제어하기 위한 컨트롤러 |
US20050204091A1 (en) | 2004-03-11 | 2005-09-15 | Kilbuck Kevin M. | Non-volatile memory with synchronous DRAM interface |
US20060184710A1 (en) * | 2005-02-17 | 2006-08-17 | Nokia Inc. | Bridge between a single channel high speed bus and a multiple channel low speed bus |
US20060294295A1 (en) * | 2005-06-24 | 2006-12-28 | Yukio Fukuzo | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device |
US7360022B2 (en) * | 2005-12-29 | 2008-04-15 | Intel Corporation | Synchronizing an instruction cache and a data cache on demand |
WO2008131058A2 (en) * | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
-
2006
- 2006-06-07 US US11/449,435 patent/US7716411B2/en active Active
-
2007
- 2007-04-13 TW TW096113112A patent/TWI420302B/zh not_active IP Right Cessation
- 2007-06-01 KR KR1020087029847A patent/KR101159400B1/ko active IP Right Grant
- 2007-06-01 CN CN2007800212183A patent/CN101473438B/zh active Active
- 2007-06-01 MX MX2008014859A patent/MX2008014859A/es active IP Right Grant
- 2007-06-01 ES ES07795704T patent/ES2718463T3/es active Active
- 2007-06-01 WO PCT/US2007/013127 patent/WO2007145883A1/en active Application Filing
- 2007-06-01 BR BRPI0711731-0A patent/BRPI0711731A2/pt not_active Application Discontinuation
- 2007-06-01 RU RU2008148129/08A patent/RU2442211C2/ru active
- 2007-06-01 JP JP2009514323A patent/JP2009540431A/ja active Pending
- 2007-06-01 EP EP07795704.1A patent/EP2025001B1/en active Active
-
2010
- 2010-04-30 US US12/771,670 patent/US8423700B2/en active Active
-
2011
- 2011-05-18 JP JP2011111408A patent/JP5613103B2/ja active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US8990441B2 (en) | 2013-03-14 | 2015-03-24 | Microsoft Technology Licensing, Llc | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
Also Published As
Publication number | Publication date |
---|---|
KR101159400B1 (ko) | 2012-06-28 |
MX2008014859A (es) | 2008-12-01 |
JP5613103B2 (ja) | 2014-10-22 |
TW200745848A (en) | 2007-12-16 |
JP2009540431A (ja) | 2009-11-19 |
TWI420302B (zh) | 2013-12-21 |
US20100217924A1 (en) | 2010-08-26 |
JP2011181098A (ja) | 2011-09-15 |
CN101473438B (zh) | 2012-06-13 |
EP2025001B1 (en) | 2019-01-23 |
KR20090026276A (ko) | 2009-03-12 |
US7716411B2 (en) | 2010-05-11 |
EP2025001A4 (en) | 2010-07-28 |
RU2008148129A (ru) | 2010-06-10 |
RU2442211C2 (ru) | 2012-02-10 |
CN101473438A (zh) | 2009-07-01 |
US20070288683A1 (en) | 2007-12-13 |
ES2718463T3 (es) | 2019-07-02 |
EP2025001A1 (en) | 2009-02-18 |
US8423700B2 (en) | 2013-04-16 |
WO2007145883A1 (en) | 2007-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0711731A2 (pt) | dispositivo hìbrido de memória com interface única | |
KR100281432B1 (ko) | 플래쉬 메모리에 기초한 주메모리 | |
CN109154918B (zh) | 自刷新状态机mop阵列 | |
TWI284261B (en) | Method for dynamically adjusting a memory page closing policy | |
KR100868393B1 (ko) | 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리 | |
US8151036B2 (en) | Memory controller, memory system, and access control method of flash memory | |
US20140181364A1 (en) | Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel | |
US10372446B2 (en) | Technology to dynamically modulate memory device read granularity | |
TWI776553B (zh) | 具有晶片內執行能力的串列式反及閘快閃記憶體 | |
JP2007183961A (ja) | ハードディスクドライブキャッシュメモリ及び再生デバイス | |
US20080010419A1 (en) | System and Method for Issuing Commands | |
TWI828963B (zh) | 用於控制不同類型儲存單元的裝置及電腦程式產品 | |
KR20200076244A (ko) | 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법 | |
US5862320A (en) | SDRAM DIMM presence detect interface | |
Lee et al. | NVDIMM-C: A byte-addressable non-volatile memory module for compatibility with standard DDR memory interfaces | |
KR20210042192A (ko) | 반도체 메모리 장치, 전자 장치, 및 그것의 설정 방법 | |
US11815938B2 (en) | Storage device and method of operating the same | |
US11797450B2 (en) | Electronic device, system-on-chip, and operating method thereof | |
US20230096111A1 (en) | Memory controller, storage device, and host device | |
US20240143508A1 (en) | Ats pri support with implicit cache | |
TW202403556A (zh) | 記憶體系統及其操作方法 | |
TW202307664A (zh) | 記憶體裝置及其操作方法 | |
WO2024097493A1 (en) | Write buffer linking for easy cache reads | |
JPH1185617A (ja) | コンピュータシステム | |
KR20210008712A (ko) | 테스트 패턴 정보를 저장하는 메모리 모듈, 그것을 포함하는 컴퓨터 시스템 및 그것의 테스트 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
B15K | Others concerning applications: alteration of classification |
Ipc: G06F 12/06 (1985.01) |
|
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B15K | Others concerning applications: alteration of classification |
Ipc: G06F 12/06 (2006.01), G06F 13/16 (2006.01), G11C 8 |
|
B09B | Patent application refused [chapter 9.2 patent gazette] | ||
B09B | Patent application refused [chapter 9.2 patent gazette] |
Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL |