BR102012017717A2 - manipulaÇço de dados temporÁrios nço volÁteis - Google Patents
manipulaÇço de dados temporÁrios nço volÁteis Download PDFInfo
- Publication number
- BR102012017717A2 BR102012017717A2 BRBR102012017717-0A BR102012017717A BR102012017717A2 BR 102012017717 A2 BR102012017717 A2 BR 102012017717A2 BR 102012017717 A BR102012017717 A BR 102012017717A BR 102012017717 A2 BR102012017717 A2 BR 102012017717A2
- Authority
- BR
- Brazil
- Prior art keywords
- data
- temporary
- electronic device
- nvm
- metadata
- Prior art date
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
MANIPULAÇçO DE DADOS TEMPORÁRIOS NçO VOLÁTEIS. A presente invenção refere-se a sistemas e métodos que são fornecidos para manipularn dados temporários que são armazendos em uma memória não volátil, tal comomemória flash NAND. Os dados temporários podem incluir dados de hibernação ou quaisquer outros dados necessários para apenas um ciclo de inicialização de um dispo0sititvo eletrônica. quando armazenar os dados temporários em uma ou mais páginas da memória não volátil, o dispositivo eletronico pode armazenar um marcador temporário como parte dos metadados em pelo menos uma das páginas. Desta forma, na próxima iniialização do dispositivo eletrônico, o dispositivo eletrêonico pode usar o marcados temporário para detreminar que a página associada contém dados desnecessários. O dispositivo pode portando invalidar a página e omitir a página de sua tabela de metadados.
Description
Relatório Descritivo da Patente de Invenção para "MANIPULAÇÃO DE DADOS TEMPORÁRIOS NÃO VOLÁTEIS".
ANTECEDENTES DA REVELAÇÃO
A presente invenção refere-se à memória flash NAND1 bem co
5 mo outros tipos de memórias não voláteis ("NVMs"), que são comumente usadas em dispositivos eletrônicos para armazenamento em massa. Por exemplo, eletrônicos de consumo tal como tocadores de mídia portáteis, frequentemente incluem memória flash NAND para armazenar música, vídeos, e outros programas de mídia. Estes dados são tipicamente destinados a ser 10 armazenados por longos períodos de tempo, tal como na ordem de dias, meses, ou mesmo anos.
As NVMs também podem ser usadas em dispositivos eletrônicos para propósitos diferentes de armazenamento de longo prazo. Por exemplo, o dispositivo eletrônico pode armazenar dados temporariamente de uma 15 memória volátil em uma NVM para habilitar a memória volátil a desligar durante um período de energia reduzida, estado de hibernação sem perder os dados. Como outros exemplos, um NVM pode ser usado em esquemas de memória virtual para aumentar o tamanho aparente da memória volátil do dispositivo eletrônico.
SUMÁRIO DA REVELAÇÃO
São fornecidos sistemas e métodos para processar dados destinados a armazenamento de curto prazo em uma memória não volátil, tal como uma memória flash. Permitindo que armazenamento de curto prazo seja manipulado de forma diferente de dados de longo prazo, a eficiência e 25 eficácia do gerenciamento de memória de uma NVM podem ser aumentadas.
Armazenamento de curto prazo pode incluir o armazenamento de dados em uma NVM que são necessários apenas durante uma instância corrente de um sistema operacional, e não serem mais úteis uma vez que o 30 dispositivo eletrônico é desligado ou reinicializado (ou mesmo mais cedo). Estes dados podem ser referenciados como "dados temporários não voláteis" ou "dados temporários NV," uma vez que os dados são necessários temporariamente, mas são armazenados em um meio não volátil persistente. Os dados temporários NV podem incluir, por exemplo, dados de hibernação baseados em hardware, dados gerados por aplicação, dados de hibernação baseados em aplicação, arquivos de troca, e outros arquivos temporários.
5 Em algumas modalidades, quando armazenando dados tempo
rários NV, o dispositivo eletrônico pode decorar os dados temporários NV com um marcador temporário. Por exemplo, para cada página da NVM em que o dispositivo eletrônico armazena dados temporários NV, o dispositivo eletrônico pode incluir um marcador temporário nos metadados da página. 10 Alternativamente, o dispositivo eletrônico pode fornecer um marcador temporário em pelo menos uma página de um bloco de armazenamento de dados temporários NV. Isto permite que o dispositivo eletrônico distinga os dados temporários NV da informação necessária através de múltiplas inicializações do dispositivo.
Durante a inicialização do dispositivo eletrônico, o dispositivo e
letrônico pode ser configurado para executar vários procedimentos de inicialização, tais como construir a tabela de metadados. A tabela de metadados pode incluir, por exemplo, uma tabela que indica quais endereços lógicos emitidos pelo sistema de arquivos (por exemplo, endereços de blocos lógi20 cos ("LBAs")) estão correntemente alocados e / ou um mapa de endereço lógico para físico. O dispositivo eletrônico pode criar a tabela de metadados varrendo através das páginas da NVM e determinar se cada página inclui um marcador temporário (oi se cada página está em um bloco marcado para armazenar dados temporários NV). Se uma página inclui um marcador tem25 porário, os dados incluídos na página eram úteis apenas na inicialização anterior do dispositivo eletrônico e não são necessários na inicialização corrente. Portanto, o dispositivo eletrônico pode marcar a página como que tem dados inválidos e omitir a página (e seus metadados armazenados) da tabela de metadados. Executando estas operações de limpeza na inicialização, o 30 dispositivo eletrônico pode garantir uso eficiente dos locais de memória NVM do início. Ou seja, em nenhum ponto durante o ciclo de inicialização corrente o dispositivo eletrônico executará operações desnecessárias durante limpeza de áreas ou nivelamento de uso para manter os dados temporários NV obsoletos.
Em algumas modalidades, o dispositivo eletrônico pode selecionar locais de memória e / ou técnicas de programação para armazenar da5 dos baseado em se os dados são dados temporários NV. Por exemplo, o dispositivo eletrônico pode selecionar locais de memória de desempenho menor, tais como páginas ou blocos menos confiáveis (por exemplo, blocos muito usados), para armazenar dados temporários NV. Em algumas modalidades, o dispositivo eletrônico pode selecionar locais de memória ou técni10 cas de programação de maior velocidade para armazenar dados temporários NV, tal como blocos de célula de nível único ("SLC").
BREVE DESCRIÇÃO DAS FIGURAS
Os aspectos e vantagens da invenção descritos acima e outros e outros ficarão evidentes em conseqüência da avaliação da descrição detaIhada a seguir, tomada em conjunto com os desenhos em anexo, em que caracteres similares se referem a partes similares por toda as figuras, e em que:
A figura 1 é um diagrama de blocos de um dispositivo eletrônico ilustrativo que tem uma memória não volátil configurado de acordo com várias modalidades da invenção;
As figuras 2 e 3 são representações gráficas de locais de memória não volátil ilustrativos que armazenam dados temporários não voláteis de acordo com várias modalidades da invenção;
A figura 4 é um fluxograma de um processo ilustrativo para decorar dados temporários não voláteis em uma memória não volátil com um marcador temporário de acordo com várias modalidades da invenção; e
A figura 5 é um fluxograma de um processo ilustrativo para processar dados temporários não voláteis na inicialização de um dispositivo eletrônico de acordo com várias modalidades da invenção.
DESCRIÇÃO DETALHADA
A figura 1 é um diagrama de blocos de dispositivo eletrônico ilustrativo 100. Em algumas modalidades, o dispositivo eletrônico 100 pode ser ou pode incluir um tocador de mídia portátil (por exemplo, um iPod™ disponibilizado pela Apple Inc. de Cupertino, CA), um telefone celular (por exemplo, um iPhone™ disponibilizado pela Apple Inc.), um computador pessoal de bolso, um assistente pessoal digital ("PDA"), um computador de mesa, 5 um computador portátil, e quaisquer outros tipos de dispositivo eletrônico ou sistema adequados.
0 dispositivo eletrônico 100 pode incluir sistema em uma pastilha de microcircuitos ("SoC") 110 e memória não volátil ("NVM") 120.
A NVM 120 pode incluir uma memória flash NAND baseada em 10 tecnologia de porta flutuante ou captura de carga (charge trapping), memória flash NOR, memória apenas de leitura programáveis e apagáveis (11EPROM"), memória apenas de leitura programáveis e apagáveis eletricamente ("EEPROM1'), RAM Ferroelétrica ("FRAM"), RAM magneto resistiva ("MRAM"), ou qualquer combinação das mesmas.
A NVM 120 pode ser organizada em "blocos", que é a menor u
nidade apagável, e adicionalmente organizada em "páginas," que pode ser a menor unidade que pode ser programada ou lida. Em algumas modalidades, a NVM 120 pode incluir múltiplos circuitos integrados, onde cada circuito integrado pode ter múltiplos blocos. Os blocos de circuitos integrados corres20 pondentes (por exemplo, blocos que tem a mesma posição ou número de bloco) podem formar unidades lógicas referenciadas como "superblocos." Cada local de memória (por exemplo, página ou bloco) da NVM 120 pode ser endereçado usando um endereço físico (por exemplo, um endereço físico de página ou endereço físico de bloco). Embora apenas uma NVM seja 25 mostrada na figura 1, o dispositivo eletrônico 100 pode alternativamente incluir múltiplos Pacotes de NVM.
O sistema em uma pastilha de microcircuitos 110 pode incluir conjunto de circuitos de controle 112, memória 114, e interface da NVM 116. O conjunto de circuitos de controle 112 pode controlar as operações e fun30 ções gerais do SoC 110 e dispositivo eletrônico 100 em geral. O conjunto de circuitos de controle 112 pode incluir quaisquer componentes, conjunto de circuitos, ou lógica adequados, tais como um ou mais processadores. O conjunto de circuitos de controle 112 pode operar sob o controle de um programa, tal como um aplicativo, sistema operacional, ou um controlador de NVM (por exemplo, controlador de NVM 117) carregado em memória 114.
A memória 114 pode incluir quaisquer tipos adequados de memória volátil, tais como memória de acesso randômico ("RAM") (por exemplo, RAM estática ("SRAM"), memória de acesso randômico dinâmica ("DRAM"), memória de acesso randômico dinâmica síncrona ("SDRAM"), RAM de taxa dupla de dados ("DDR")), memória de reserva (cache), ou qualquer combinação das mesmas. Em algumas modalidades, a memória 114 pode atuar como a memória principal para quaisquer processadores implementados como parte do conjunto de circuitos de controle 112. Nestas e outras modalidades, a memória 114 pode armazenar dados que também podem ser armazenados, em um ponto ou outro (ou seja, concorrentemente ou em tempos diferentes), na NVM 120 como dados temporários NV. Como descrito acima, dados temporários NV incluem dados armazenados em um NVM que são necessários apenas durante uma instância corrente do sistema operacional, e não são mais úteis uma vez que o dispositivo eletrônico 100 é desligado ou reinicializado (ou antes).
Por exemplo, a memória 114 e / ou NVM 120 podem armazenar dados temporários NV na forma de dados de hibernação baseados em hardware. Dados de hibernação baseados em hardware podem incluir dados transferidos da memória 114 para a NVM 120 responsivos a entrada em um estado de hibernação baseado em hardware (por exemplo, um estado de energia reduzida em que a memória 114 é desligada). Portanto, os dados de hibernação baseados em hardware podem incluir dados que habilitam dispositivo eletrônico 100 a retornar para seu estado operacional préhibernação (por exemplo, o estado em que o meso estava antes da entrada no estado de energia reduzida) quando o mesmo acorda do estado de hibernação. Os dados de hibernação baseados em hardware podem representar os estados operacionais correntes do dispositivo, tanto para hardware como software. Por exemplo, dados de estado do dispositivo podem especificar quais programas estão rodando ativamente, ou mais especificamente, qual recurso de mídia (por exemplo, música) está sendo reproduzido, ou a posição dentro da qual a interface gráfica de usuário o usuário está acessando correntemente. Devido a um usuário não poder esperar o dispositivo eletrônico 100 retornar para seu estado operacional pré-hibernação o usuá5 rio pode desligar o dispositivo eletrônico 100 durante hibernação de hardware, estes dados de hibernação baseados em hardware são um exemplo de dados temporários NV.
Em algumas modalidades, a memória 114 e / ou NVM 120 pode armazenar dados gerados por aplicação como dados temporários NV. Os 10 dados gerados por aplicação podem incluir quaisquer dados temporariamente úteis associados com ou gerados por um aplicativo, tais como dados que pertencem a um jogo corrente em um aplicativo de jogo. Em algumas modalidades, o aplicativo pode fornecer uma indicação para o sistema operacional e sistema de arquivos da natureza temporária dos dados gerados por aplica15 ção de modo que estes dados podem em última análise ser armazenados como dados temporários NV em NVM 120.
Em alguns cenários, a memória 114 e / ou NVM 120 pode ser usada para armazenar dados temporários NV na forma de dados de hibernação baseados em aplicação. Os dados de hibernação baseados em aplicação podem incluir dados, tais como dados gerados por aplicação, transferidos da memória 114 para NVM 120 responsivos a um aplicativo ou programa particular entrar em um estado de hibernação. O dispositivo eletrônico 100 pode selecionar o aplicativo para hibernação para liberar espaço em memória 114 quando o espaço está acabando e o aplicativo não está sendo usado ativamente. Portanto, os dados de hibernação baseados em aplicação podem incluir dados que habilitam o dispositivo eletrônico 100 a retornar um aplicativo hibernado de volta a seu estado operacional pré-hibernação. Devido a um usuário não esperar o aplicativo que está hibernando retornar a seu estado anterior exato se o dispositivo eletrônico 100 foi reinicializado, os dados de hibernação baseados em aplicação são outro exemplo de dados temporários NV.
Nestes e outros cenários, a memória 114 e / ou NVM 120 pode ser usada para armazenar dados temporários NV em conexão com esquemas de memória virtual. Por exemplo, os dados gerados por aplicação, dados de hibernação baseados em aplicação, ou quaisquer outros dados usados por um ou mais aplicativos podem ser transferidos da memória 114 para 5 um "arquivo de troca" ou "arquivo de página" em NVM 120. Aqui, dados podem ser paginados para fora de memória 114 em um arquivo armazenado em NVM 120, deste modo liberando espaço em memória 114 quando espaço é necessário. Outros tipos de arquivos usados em esquemas de memória virtual para transportar dados temporários NV entre memória 114 e NVM 120 10 também podem ser contemplados. Devido aos dados usados no esquema de memória virtual geralmente não serem necessários uma vez que o dispositivo eletrônico 100 é desligado, um arquivo de troca é outro exemplo de dados temporários NV.
A memória 114 e / ou NVM 120 pode armazenar dados temporá15 rios NV de quaisquer outros tipos adequados, tais como quaisquer dados tipicamente armazenados em um "arquivo temporário" em sistemas baseados em UNIX. Por exemplo, dados temporários NV podem incluir dados armazenados em arquivos temporários na NVM 120 que um programa ou aplicativo cria para passar os dados para outro programa ou aplicativo. Como 20 outro exemplo, dados temporários NV podem incluir dados de curto prazo armazenados em arquivos temporários na NVM 120 que são muito grandes para caber na memória 114 ou tomam mais do que uma quantidade predeterminada de espaço em memória 114.
Para habilitar os componentes de SoC 110 (tal como memória 25 114) a passar informação para e da NVM 120, o SoC 110 pode incluir a interface da NVM 116. A interface da NVM 116 pode incluir qualquer combinação adequada de hardware, software, e firmware configurados para atuar como uma interface ou controlador entre a NVM 120 e os componentes específicos não NVM do SoC 110. Por exemplo, a interface da NVM 116 pode 30 incluir controlador de NVM 117 para fornecer uma interface de software / firmware que fornece ao sistema operacional e sistema de arquivos acesso indireto a NVM 120, deste modo permitindo que o sistema operacional e sistema de arquivos emitam solicitações de leitura ou gravação para armazenar ou recuperar dados temporários NV na ou a NVM 120. A interface da NVM 116 pode adicionalmente incluir controlador de barramento 118, que pode incluir quaisquer componentes de hardware adequados que habilitam o con5 trolador de NVM 117 a acessar a NVM 120 usando as especificações de barramento (por exemplo, taxa de dados) de NVM 120.
A interface da NVM 116 pode executar várias tarefas para gerenciar os locais de memória de NVM 120, tais como limpeza de áreas, nivelamento de uso, e gerenciamento de bloco ruim. O controlador de NVM 117 10 pode ser configurado para manter ou gerar "metadados," que podem ser quaisquer dados de gerenciamento de memória usados pelo controlador de NVM 117 para gerenciar a NVM 120 e os locais de memória dentro da mesma. O controlador de NVM 117 pode ser configurado para manter tabela ou mapeamentos de metadados, tal como uma tabela que indica quais endere15 ços lógicos emitidos pelo sistema de arquivos (por exemplo, endereços de blocos lógicos ("LBAs")) estão correntemente alocados para uso e / ou um mapeamento entre endereços lógicos e endereço físicos de NVM 120. Endereços lógicos são emitidos pelo sistema de arquivos nas solicitações de leitura ou gravação, que o controlador de NVM 170 pode mapear para endereços 20 físicos diferentes que realmente correspondem a locais físicos de memória da NVM 120. O controlador de NVM 117 pode portanto manter a tabela de metadados em ordem para manipular adequadamente as solicitações de leitura e gravação do sistema de arquivos.
A interface da NVM 116 é representada na figura 1 como sendo 25 implementada completamente em SoC 110. Em algumas modalidades, alguns dos componentes da interface da NVM 116, bem como algumas das funcionalidades do controlador de NVM 117, podem ser implementadas e executadas por um controlador de memória separado (por exemplo, controlador flash) incluído, por exemplo, na NVM 120. Portanto, deve ser entendido 30 que quaisquer descrições de interface da NVM 116 ou funcionalidades relacionadas à NVM não são limitadas a componentes ou ações executadas no SoC 110. A interface da NVM 116 pode receber solicitações de gravação do sistema de arquivos para armazenar qualquer de uma variedade de tipos de dados. Por exemplo, o sistema de arquivos pode instruir a interface da NVM 116 para armazenar ativos de mídia, tais como músicas e vídeos, por um período de tempo indefinido. Em outros cenários, o sistema de arquivos pode instruir a interface da NVM 116 para armazenar dados temporários NV, tais como dados de hibernação baseados em hardware, dados gerados por aplicação, dados de hibernação baseados em aplicação, arquivos de troca, ou outros arquivos temporários, em NVM 120. Devido a dados temporários NV terem um tempo de vida esperado diferente (ou seja, um ciclo de inicialização de dispositivo eletrônico 100) do que outras formas de dados (ou seja, mais do que um ciclo de inicialização de dispositivo eletrônico 100), a interface da NVM 116 pode ser configurada para manipular dados temporários NV de uma maneira diferente que pode aumentar a eficácia e eficiência de uso de memória em NVM 120.
Em algumas modalidades, a interface da NVM 116 pode selecionar locais de memória (ou seja, páginas, blocos, ou superblocos) em que para armazenar dados baseado em se os dados são dados temporários. Por exemplo, a interface da NVM 116 pode selecionar locais de memória de me20 nor desempenho para armazenar dados temporários NV. Os locais de memória de menor desempenho podem ser páginas ou blocos menos confiáveis, tais como blocos muito usados (ou seja, blocos que têm passado por mais ciclos de apagamento, e portanto podem ter sofrido mais deterioração). A interface da NVM 116 pode selecionar locais de memória de maior de25 sempenho para armazenar dados não temporários, uma vez que é esperado que não sejam mantidos dados temporários na NVM 120 por um período de tempo maios longo.
Em algumas modalidades, a interface da NVM 116 pode selecionar locais de memória ou técnicas de programação de maior velocidade para armazenar dados temporários NV. Desta forma, o atraso entre transferência de dados entre memória 114 e NVM 120 é reduzido, o que pode ser benéfico para esquemas de memória virtual, quando entrando em um modo de hibernação de energia reduzida, ou em uma variedade de outras situações. Para melhorar a velocidade, a interface da NVM 116 pode selecionar blocos de célula de nível único ("SLC") ou pode reduzir o ajuste de resolução quando programa os blocos com dados temporários NV. A interface da NVM 5 116 pode escolher blocos SLC para aumentar velocidade de programação ao mesmo tempo em que também melhora a confiabilidade.
Em algumas modalidades, a interface da NVM 116 pode manipular dados temporários NV diferentemente de outros dados por decorar dados temporários NV com um "marcador temporário” quando armazena os 10 dados temporários NV em NVM 120. Desta forma, quando dados são lidos de volta para fora da NVM 120, a interface da NVM 116 pode rápida e eficientemente diferenciar os dados temporários NV com outras informações destinadas a serem armazenadas por um período de tempo mais longo.
A figura 2 ilustra uma forma em que a interface da NVM 116 pode decorar os dados temporários NV com um marcador temporário. A figura 2 é uma representação gráfica das páginas em um bloco de uma memória não volátil, tal como NVM 120 da figura 1. Como ilustrado, cada página do bloco pode ser usada para armazenar um campo de dados e um campo associado de metadados. Cada campo de dados pode armazenar qualquer tipo de dados adequado, tal como dados temporários NV ou quaisquer dados que o sistema de arquivos solicite para serem armazenados (por exemplo, ativos de mídia). Os campos de metadados da mesma página podem armazenar metadados associados com os dados no campo de dados, tal como quaisquer dados de gerenciamento de memória recebidos ou gerados pelo controlador de NVM 117, incluindo dados de código de correção de erro ("ECC"), qualquer informação usada para gerenciar o mapeamento entre endereços físicos e lógicos (por exemplo, um LBA), e similar.
O campo de metadados pode incluir espaço para armazenar um marcador que indica se os dados no campo de dados são dados temporários NV. Por exemplo, os marcadores "T" (ou "temporário") nos campo de metadados das páginas 1 e 2 na figura 2 indicam que os campos de dados associados incluem dados temporários NV, enquanto os marcadores "P" (ou "persistente") nos campo de metadados da página 0 e da última página do bloco indicam que os dados nos campos de dados associados incluem dados destinados a armazenamento persistente de prazo mais longo. O marcador temporário "T" e o marcador persistente "P" podem ser implementados 5 usando qualquer abordagem adequada. Ou seja, estes marcadores podem incluir quaisquer quantidades adequadas de bits (por exemplo, um ou mais bits) e os valores reais de ou palavra dos marcadores "T" e "P" podem cada um assumir qualquer padrão de bits adequado predeterminado.
Em algumas modalidades, a interface da NVM 116 pode não u10 sar um marcados específico "P", e pode em vez disso usar apenas marcadores temporários "T" para indicar onde os dados temporários NV são armazenados na NVM 120. Nestas modalidades, na leitura de volta de uma página, a interface da NVM 116 pode determinar que o campo de dados da página não contém dados temporários NV baseado na falta de um marcador tempo15 rário no campo de metadados.
A figura 2 fornece um exemplo onde o mesmo bloco pode incluir tanto dados temporários NV bem como dados persistentes. Em outras modalidades, tal como a modalidade ilustrada na figura 3, um bloco ou superbloco inteiro pode ser usado para armazenar ou dados temporários NV ou dados persistentes.
A figura 3 é um representação gráfica de múltiplos blocos através de diversos circuitos integrados de uma memória não volátil, tal como a NVM 120 da figura 1. Cada coluna representa um circuito integrado diferente e cada linha representa um superbloco diferente. Portanto, como ilustrado no 25 primeiro circuito integrado ("IC 0”), um bloco inteiro (ou seja, bloco 2) pode ser usado para armazenar dados temporários NV. Em algumas modalidades, a interface da NVM 116 pode fornecer um marcador temporário em toda página do bloco usada, que pode fornecer garantia extra de que a interface da NVM 116 pode interpretar corretamente este bloco como armazenando 30 dados temporários NV. Em outras modalidades, a interface da NVM 116 pode armazenar marcadores temporários em um subconjunto das páginas no bloco. Por exemplo, a interface da NVM 116 pode armazenar um marcador temporário apenas na primeira página do bloco de modo que a interface da NVM 116 pode posteriormente determinar se o bloco contém dados temporários NV quando Ier o bloco a partir da primeira página até a última página. Alternativamente, a interface da NVM 116 pode armazenar um marcador 5 temporário apenas na última página (assim a interface da NVM 116 pode posteriormente Ier o bloco da última página para a primeira página), ou a interface da NVM 116 pode armazenar marcadores temporários tanto na primeira como última páginas do bloco.
Em algumas modalidades, a interface da NVM 116 pode sele10 cionar um superbloco inteiro para uso no armazenamento de dados temporários NV. Isto é ilustrado no quinto superbloco ("SUPERBLOCO 4") na figura 3, onde todos os blocos no superbloco podem ser usados para armazenar dados temporários NV. Como com o caso de bloco único, a interface da NVM 116 pode armazenar ou não marcadores temporários em todas as pá15 ginas usadas do superbloco. em vez disso, a interface da NVM 116 pode armazenar marcadores temporários apenas na primeira página de cada bloco no superbloco, apenas na última página de cada bloco no superbloco, tanto na primeira como na última páginas de cada bloco, ou em uma ou mais páginas de um subconjunto dos blocos no superbloco.
Embora não representados na figura para preservar a clareza,
os blocos que não incluem marcadores temporários "T" podem (ou pode não) incluir marcadores persistentes "P" em algumas ou todas as páginas. Além disso, embora cinco circuitos integrados e seis superblocos (para um total de 30 blocos) sejam ilustrado, deve ser entendido que a NVM 120 pode 25 incluir qualquer outra quantidade adequada de circuitos integrados e superblocos.
A interface da NVM 116 pode usar os marcadores temporários decorando os dados temporários NV para processar os dados temporários NV diferentemente dos outros tipos de dados. Por exemplo, os marcadores 30 temporários podem afetar o processo de inicialização do dispositivo eletrônico 100. Em conseqüência da inicialização do dispositivo eletrônico 100, o controlador de NVM 117 pode executar uma série de procedimentos de inicialização de modo que o controlador de NVM 117 possa determinar adequadamente o estado corrente da NVM 120. Nos procedimentos de inicialização pode ser incluída a reconstrução de uma ou mais tabelas de ou mapas de metadados, tal como a tabela que indica quais endereços lógicos 5 estão sendo usados e o mapeamento de endereço lógico para físico.
Para reconstruir as tabelas, o controlador de NVM 117 pode Ier cada página de NVM 120 e, para cada página, pode determinar se inclui a página nas tabelas. Se o controlador de NVM 117 determina que a página é designada com um marcador temporário (ou está em um bloco ou superblo10 co correntemente designado com marcadores temporários), o controlador de NVM 117 pode deixar a página fora das tabelas. Isto é devido à página ter sido usada para armazenar dados temporários NV, que foram válidos apenas durante a inicialização anterior do dispositivo eletrônico 100. Portanto, o controlador de NVM 117 pode marcar a página como inválida de modo que, 15 em algum momento apropriado, a página pode ser liberada (por exemplo, durante limpeza de áreas ou nivelamento de uso) e usada para armazenar outra informação. Uma vez que o controlador de NVM 117 invalida a página e omite a mesma das tabelas Iogo no momento da inicialização, o uso da memória da NVM 120 pode ser tornado eficiente imediatamente. Ou seja, 20 em nenhum ponto durante o ciclo de inicialização corrente o controlador de NVM 117 executará operações desnecessárias durante limpeza de áreas ou nivelamento de uso para manter os dados temporários NV agora obsoletos.
Com referência agora as figuras 4 e 5, fluxogramas de processos ilustrativos são mostrados de acordo com várias modalidades da inven25 ção. As etapas destes processos ilustrativos podem ser executadas por qualquer componente ou combinação de componentes adequada em um dispositivo eletrônico, tal como por conjunto de circuitos de controle 112 (figura 1) operando sob o controle do controlador de NVM 117 (figura 1).
Olhando primeiro a figura 4, o processo 400 é mostrado para decorar dados temporários NV com um marcador temporário quando armazena os dados temporários NV em uma NVM, tal como a NVM 120 (figura 1). O processo 400 pode começar na etapa 402, onde o sistema de arquivos pode decidir por armazenar dados na NVM. Para dados temporários NV, isto pode ocorrer, por exemplo, quando a memória volátil está ficando sem espaço ou quando a memória volátil precisa para ser desligada em um estado de energia reduzida (ou seja, estado de hibernação).
5 Na etapa 404, dados podem ser fornecidos do sistema de arqui
vos para a interface da NVM (por exemplo, um controlador de NVM) para armazenamento na NVM. Então, na etapa 406, a interface da NVM pode determinar se estes dados são dados temporários que podem ser armazenados como dados temporários NV. Em algumas modalidades, a interface 10 da NVM pode interpretar se os dados são dados temporários baseados na solicitação de gravação recebida do sistema de arquivos. O sistema de arquivos pode ter emitido uma solicitação de gravação sinalizando que os dados são dados temporários em resposta a uma indicação de um aplicativo.
Se, na etapa 406, a interface da NVM determina que os dados são dados temporários NV, a interface da NVM pode preparar metadados para os dados na etapa 408, onde os metadados incluem um marcador temporário. A preparação dos metadados na etapa 408 (ou etapa 412, discutida abaixo) pode incluir determinar e manter um mapeamento de um endereço lógico (recebido com a solicitação de gravação) para um endereço físico associado com a NVM. A interface da NVM também pode selecionar, na etapa 410, locais de memória (ou seja, páginas, blocos, ou superblocos) ou técnicas de programação de desempenho menor e / ou de maior velocidade para armazenar os dados, uma vez que é esperado que os dados tenham um tempo de vida em memória não volátil. Por exemplo, a interface da NVM pode selecionar blocos menos confiáveis (por exemplo, blocos muito usados) ou blocos SLC em que armazena os dados.
Caso contrário, se a interface da NVM determina na etapa 406 que os dados não são dados temporários NV, a interface da NVM pode preparar metadados que não incluem um marcador temporário (e pode em vez 30 disso incluir um marcador persistente) na etapa 412. Neste caso, devido aos dados poderem ser armazenados a longo prazo em memória não volátil, a interface da NVM pode selecionar locais de memória ou técnicas de programação maior desempenho e / ou menor velocidade para armazenar os dados na etapa 414. Por exemplo, a interface da NVM pode selecionar blocos mais confiáveis ou blocos MLC em que armazena os dados.
Da etapa 410 ou etapa 414, o processo 400 pode continuar para 5 a etapa 416, onde a interface da NVM pode armazenar os dados (se os mesmos são dados temporários NV ou outros dados) e pelo menos alguns de seus metadados associados na uma ou mais páginas selecionadas da NVM. O processo 400 pode em seguida terminar na etapa 418.
Passando agora para a figura 5, o processo 500 é mostrado pa10 ra processamento dos dados temporários NV na inicialização de um dispositivo eletrônico. O processo 500 pode iniciar na etapa 502 na inicialização do dispositivo eletrônico. Na etapa 504, uma interface da NVM pode executar vários procedimentos de inicialização de modo que a interface da NVM pode determinar o estado inicial da NVM e seus locais de memória. Os procedi15 mentos de inicialização podem portanto incluir construir tabelas de metadados, tal como uma tabela que indica quais endereços lógicos estão alocados para uso e / ou um mapeamento de endereços lógicos para físicos para cada página da NVM que contém dados válidos.
Da etapa 504, a interface da NVM pode preparar as tabelas varrendo e processando cada página da NVM. Em particular, na etapa 506, a interface da NVM pode Ier uma primeira página da NVM, e na etapa 508, a interface da NVM pode determinar se esta primeira página inclui um marcador temporário no campo de metadados da página. Se não, a primeira página não inclui dados temporários NV1 assim na etapa 510, a interface da NVM pode adicionar a página às tabelas. Por exemplo, a interface da NVM pode determinar (por exemplo, a partir dos campos de metadados) o endereço lógico associado com a página e pode adicionar o mapeamento de endereço lógico para físico da página à tabela apropriada, ou a interface da NVM pode indicar em uma tabela que o endereço lógico está correntemente alocado pelo sistema de arquivos.
Se, na etapa 508, a interface da NVM determinar em vez disso que a página inclui um marcador temporário no campo de metadados da página, o processo 500 pode coníinuar para a etapa 512. Devido ao marcador temporário indicar que a página armazena dados temporários NV, que não são mais válidos agora que o dispositivo eletrônico foi reinicializado, o processo 500 pode derivar para a etapa 512. Na etapa 512, a interface da 5 NVM pode ignorar os metadados na página para propósitos de reconstrução da tabela de metadados. Por exemplo, embora um endereço lógico armazenado na página deva caso contrário ter indicado que o endereço lógico está sendo usado pelo sistema de arquivos, a interface da NVM pode ignorar a presença do endereço lógico na página. Em seguida, na etapa 514, a inter10 face da NVM pode marcar a página como contendo dados inválidos. Isto pode permitir que a interface da NVM, no momento apropriado, execute a limpeza de áreas na página para liberar espaço para armazenar outra informação.
Da etapa 510 ou etapa 514,o processo 500 pode continuar para 15 a etapa 516, onde a interface da NVM pode determinar se as tabelas de metadados estão sendo construídas. Esta determinação pode envolver determinar se existem páginas adicionais que ainda não foram lidas e processadas. Se existem páginas adicionais que devem ser consideradas para inclusão na tabela de metadados, o processo 500 pode retornar para a etapa 506 20 de modo que a interface da NVM pode Ier outra página da NVM. Caso contrário, se não existirem páginas adicionais, o processo 500 pode terminar na etapa 518.
Deve ser entendido que as etapas dos processos 400 e 500 das figuras 4 e 5, respectivamente, são meramente ilustrativas. Qualquer das etapas pode ser modificada, removida, ou combinada, e podem ser incluídas etapas adicionais, sem se afastar do escopo da invenção.
As modalidades descritas da invenção são apresentadas com o propósito de ilustração e não de limitação.
Claims (20)
1. Dispositivo eletrônico (100), caracterizado pelo fato de que compreende: uma memória volátil para armazenar dados temporários; uma memória não volátil (120) ("NV") que compreende uma pluralidade de páginas; conjunto de circuitos de controle (112) operacional para armazenar os dados temporários na memória não volátil (120) como dados temporários NV1 em que o conjunto de circuitos de controle (112) armazena um marcador temporário em pelo menos uma das páginas em que os dados temporários NV são armazenados.
2. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo eletrônico (100) é adicionalmente operacional para: preparar metadados para os dados temporários NV; e armazenar os metadados e o marcador temporário em um campo de metadados de pelo menos uma das páginas em que os dados temporários NV são armazenados.
3. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que o marcador temporário compreende um padrão de bits predeterminado.
4. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de páginas é organizada em blocos, e em que o conjunto de circuitos de controle (112) é adicionalmente operacional para: selecionar um dos blocos para armazenar os dados temporários NV; e armazenar um marcador temporário em pelo menos uma página do bloco selecionado.
5. Dispositivo eletrônico (100), de acordo com a reivindicação 4, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para armazenar um marcador temporário em todas as páginas do bloco selecionado.
6. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para: identificar que a memória volátil está em um estado com pouca memória; e armazenar os dados temporários na memória não volátil (120) responsivo a identificação do estado com pouca memória.
7. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para selecionar páginas de performance menor para armazenar os dados temporários.
8. Dispositivo eletrônico (100), de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para selecionar uma técnica de programação de maior velocidade para armazenar os dados temporários.
9. Método de armazenamento de dados em uma memória não volátil (120), caracterizado pelo fato de que a memória não volátil (120) compreende uma pluralidade de páginas, em que o método compreende: identificar os dados como dados temporários; preparar metadados para os dados, em que os metadados compreendem um marcador temporário; e armazenar os dados e os metadados em pelo menos uma página da memória não volátil (120).
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente: fornecer os dados de um sistema de arquivos para uma interface de memória não volátil (116) com uma solicitação de gravação, em que a identificação é executada pela interface de memória 30 não volátil (116) em resposta à solicitação de gravação.
11. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o marcador temporário compreende pelo menos um bit de um valor predeterminado.
12. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a preparação compreende adicionalmente determinar um mapeamento de endereço lógico para físico para os dados.
13. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente selecionar a pelo menos uma página da memória não volátil (120) baseado na identificação.
14. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente: identificar dados adicionais para armazenamento na memória não volátil (120), em que os dados adicionais são identificados como não sendo dados temporários; preparar metadados adicionais para os dados adicionais, em que os metadados adicionais não incluem um marcador temporário; e armazenar os dados adicionais e os metadados adicionais em pelo menos uma outra página da memória não volátil (120).
15. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a identificação compreende identificar que os dados compreendem pelo menos um de dados de hibernação baseados em hardware, dados gerados por aplicação, dados de hibernação baseados em aplicação, e dados para esquema de memória virtual.
16. Dispositivo eletrônico (100), caracterizado pelo fato de que compreende: uma memória não volátil (120); conjunto de circuitos de controle (112) operacional para criar uma tabela de metadados para a memória não volátil (120) na inicialização do dispositivo eletrônico (100), em que criar a tabela de metadados compreende: Ier uma pluralidade de páginas da memória não volátil (120), em que pelo menos uma das páginas inclui um marcador temporário; e omitir a pelo menos uma página da tabela de metadados.
17. Dispositivo eletrônico (100), de acordo com a reivindicação .16, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para criar a tabela de metadados marcando a pelo menos uma página como inválida.
18. Dispositivo eletrônico (100), de acordo com a reivindicação 16, caracterizado pelo fato de que o conjunto de circuitos de controle (112) é adicionalmente operacional para criar a tabela de metadados adicionando páginas da memória não volátil (120) válidas que não incluem um marcador temporário para a tabela de metadados.
19. Dispositivo eletrônico (100), de acordo com a reivindicação 16, caracterizado pelo fato de que a tabela de metadados compreende uma tabela que indica quais endereços lógicos estão correntemente alocados para uso por um sistema de arquivos.
20. Dispositivo eletrônico (100), de acordo com a reivindicação 16, caracterizado pelo fato de que a tabela de metadados compreende um mapeamento de endereço lógico para físico.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/184,647 | 2011-07-18 | ||
US13/184,647 US8949508B2 (en) | 2011-07-18 | 2011-07-18 | Non-volatile temporary data handling |
Publications (2)
Publication Number | Publication Date |
---|---|
BR102012017717A2 true BR102012017717A2 (pt) | 2013-07-30 |
BR102012017717B1 BR102012017717B1 (pt) | 2020-09-15 |
Family
ID=46548260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR102012017717-0A BR102012017717B1 (pt) | 2011-07-18 | 2012-07-18 | Dispositivo eletrônico e método para armazenar dados em uma memória não volátil |
Country Status (9)
Country | Link |
---|---|
US (1) | US8949508B2 (pt) |
EP (1) | EP2549385B1 (pt) |
JP (1) | JP5683023B2 (pt) |
KR (2) | KR101385789B1 (pt) |
CN (1) | CN102890620B (pt) |
AU (1) | AU2012205187B2 (pt) |
BR (1) | BR102012017717B1 (pt) |
TW (2) | TWI573019B (pt) |
WO (1) | WO2013012632A1 (pt) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949508B2 (en) | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
WO2013027642A1 (en) * | 2011-08-19 | 2013-02-28 | Kabushiki Kaisha Toshiba | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device |
US20130124778A1 (en) * | 2011-11-10 | 2013-05-16 | Greenliant Llc | Method of storing host data and meta data in a nand memory, a memory controller and a memory system |
EP2960360B1 (en) | 2013-02-22 | 2020-01-15 | Kuraray Co., Ltd. | Fiber, fabric, and nonwoven fabric |
US10528116B2 (en) | 2013-03-14 | 2020-01-07 | Seagate Technology Llc | Fast resume from hibernate |
CN107391389B (zh) | 2013-08-05 | 2020-11-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN107741913B (zh) | 2013-08-05 | 2021-09-07 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
US10140477B2 (en) * | 2013-12-09 | 2018-11-27 | Thales E-Security, Inc. | Obfuscating in memory encryption keys |
FR3046266A1 (fr) * | 2015-12-28 | 2017-06-30 | Proton World Int Nv | Stockage dans une memoire flash |
US9990023B2 (en) * | 2016-03-28 | 2018-06-05 | Apple Inc. | Systems and methods for handling sudden power failures in solid state drives |
CN106569744B (zh) * | 2016-10-31 | 2020-07-14 | 华为数字技术(成都)有限公司 | 一种存储临时数据的方法及存储设备 |
CN108536611B (zh) * | 2017-03-03 | 2022-05-13 | 西部数据技术公司 | 用于损耗均衡的***和方法 |
US10956052B1 (en) * | 2017-07-21 | 2021-03-23 | EMC IP Holding Company LLC | Online address to hash (A2H) metadata scanner |
US10705918B1 (en) | 2017-07-21 | 2020-07-07 | EMC IP Holding Company LLC | Online metadata backup consistency check |
US10515701B1 (en) * | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
CN108304280A (zh) * | 2018-01-30 | 2018-07-20 | 郑州云海信息技术有限公司 | 控制异构混合内存***异常恢复的方法、bmc及装置 |
US10446254B1 (en) * | 2018-05-03 | 2019-10-15 | Western Digital Technologies, Inc. | Method for maximizing power efficiency in memory interface block |
US10936456B1 (en) | 2019-02-20 | 2021-03-02 | Apple Inc. | Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns |
US11216388B2 (en) | 2019-04-30 | 2022-01-04 | EMC IP Holding Company LLC | Tiering between storage media in a content aware storage system |
JP6874814B2 (ja) * | 2019-10-30 | 2021-05-19 | 株式会社安川電機 | 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010A (en) * | 1851-04-01 | Peter mckinlay | ||
US9024A (en) * | 1852-06-15 | Motion of the lay in looms | ||
JP3106401B2 (ja) * | 1993-07-26 | 2000-11-06 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 情報処理システム |
JPH11242631A (ja) | 1998-02-26 | 1999-09-07 | Toshiba Corp | コンピュータシステムおよび同システムにおけるデータ保存/復元方法 |
US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
US6574717B1 (en) * | 2001-05-31 | 2003-06-03 | Oracle Corporation | Techniques for time-based retention of a reusable resource |
US7467274B2 (en) * | 2001-12-31 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Method to increase the life span of limited cycle read/write media |
US7082495B2 (en) * | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
JP3994071B2 (ja) | 2003-06-12 | 2007-10-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ装置、システムの稼働状態の切り換え制御方法、およびプログラム |
US7093089B2 (en) | 2003-08-18 | 2006-08-15 | Hewlett-Packard Development Company, Lp. | Systems and methods for storing data on computer systems |
GB0320142D0 (en) | 2003-08-28 | 2003-10-01 | Ibm | Data storage systems |
JP4688584B2 (ja) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
US20070234028A1 (en) | 2005-09-15 | 2007-10-04 | Rothman Michael A | Method and apparatus for quickly changing the power state of a data processing system |
KR100843543B1 (ko) | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
US20100049775A1 (en) * | 2007-04-26 | 2010-02-25 | Hewlett-Packard Development Company, L.P. | Method and System for Allocating Memory in a Computing Environment |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
US8214343B2 (en) * | 2008-03-19 | 2012-07-03 | Microsoft Corporation | Purposing persistent data through hardware metadata tagging |
DE102008062934A1 (de) | 2008-12-23 | 2010-06-24 | Kuka Roboter Gmbh | Vernetzte Industriesteuerung und Verfahren zum Wechsel des Betriebsmodus einer solchen Industriesteuerung |
US20100169540A1 (en) * | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
US9098396B2 (en) * | 2009-02-13 | 2015-08-04 | Sandisk Il Ltd. | Enhancement of efficiency in power failure handling in flash memory |
US8380676B1 (en) * | 2009-05-27 | 2013-02-19 | Google Inc. | Automatic deletion of temporary files |
EP2441004B8 (en) | 2009-06-12 | 2020-02-19 | Violin Systems LLC | Memory system having persistent garbage collection |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
WO2011031796A2 (en) | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US9063886B2 (en) | 2009-09-18 | 2015-06-23 | Apple Inc. | Metadata redundancy schemes for non-volatile memories |
US8296506B2 (en) | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
US8694814B1 (en) * | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
KR101678911B1 (ko) * | 2010-03-12 | 2016-11-23 | 삼성전자주식회사 | 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 |
US8949508B2 (en) | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
-
2011
- 2011-07-18 US US13/184,647 patent/US8949508B2/en not_active Expired - Fee Related
-
2012
- 2012-07-11 WO PCT/US2012/046236 patent/WO2013012632A1/en active Application Filing
- 2012-07-17 EP EP12176705.7A patent/EP2549385B1/en not_active Not-in-force
- 2012-07-17 AU AU2012205187A patent/AU2012205187B2/en not_active Ceased
- 2012-07-18 BR BR102012017717-0A patent/BR102012017717B1/pt not_active IP Right Cessation
- 2012-07-18 JP JP2012173367A patent/JP5683023B2/ja not_active Expired - Fee Related
- 2012-07-18 CN CN201210248924.4A patent/CN102890620B/zh not_active Expired - Fee Related
- 2012-07-18 KR KR1020120078463A patent/KR101385789B1/ko active IP Right Grant
- 2012-07-18 TW TW102107952A patent/TWI573019B/zh not_active IP Right Cessation
- 2012-07-18 TW TW101125916A patent/TWI519952B/zh not_active IP Right Cessation
- 2012-08-30 KR KR1020120095776A patent/KR101818599B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
AU2012205187A1 (en) | 2013-01-31 |
US20130024600A1 (en) | 2013-01-24 |
JP5683023B2 (ja) | 2015-03-11 |
JP2013033482A (ja) | 2013-02-14 |
KR20130010449A (ko) | 2013-01-28 |
TW201324146A (zh) | 2013-06-16 |
US8949508B2 (en) | 2015-02-03 |
TW201329713A (zh) | 2013-07-16 |
TWI519952B (zh) | 2016-02-01 |
KR101818599B1 (ko) | 2018-01-15 |
BR102012017717B1 (pt) | 2020-09-15 |
WO2013012632A1 (en) | 2013-01-24 |
EP2549385B1 (en) | 2015-06-10 |
EP2549385A1 (en) | 2013-01-23 |
AU2012205187B2 (en) | 2014-10-16 |
CN102890620A (zh) | 2013-01-23 |
CN102890620B (zh) | 2016-05-18 |
KR20130010447A (ko) | 2013-01-28 |
TWI573019B (zh) | 2017-03-01 |
KR101385789B1 (ko) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR102012017717A2 (pt) | manipulaÇço de dados temporÁrios nço volÁteis | |
US8478796B2 (en) | Uncorrectable error handling schemes for non-volatile memories | |
US8812816B2 (en) | Garbage collection schemes for index block | |
US8164967B2 (en) | Systems and methods for refreshing non-volatile memory | |
TWI507871B (zh) | 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統 | |
US8411519B2 (en) | Selective retirement of blocks | |
KR101892302B1 (ko) | 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터 | |
US7941692B2 (en) | NAND power fail recovery | |
US9063728B2 (en) | Systems and methods for handling hibernation data | |
US8954647B2 (en) | Systems and methods for redundantly storing metadata for non-volatile memory | |
CN108369818B (zh) | 一种闪存设备的刷新方法和装置 | |
TW201527970A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TW201821996A (zh) | 管理記憶體裝置中記憶體單元的實體資訊的方法及系統 | |
US9110784B2 (en) | Nonvolatile random access memory and data management method | |
BR112014009915B1 (pt) | Método para alocação de memória, dispositivo e meio de armazenamento não transitório legível por máquina | |
KR20210034677A (ko) | 인-플레이스 데이터 대체 매체를 위한 하이브리드 웨어 레벨링 | |
KR20210038692A (ko) | 비휘발성 메모리를 위한 멀티-레벨 웨어 레벨링 | |
US11579770B2 (en) | Volatility management for memory device | |
US20180137044A1 (en) | Computer system and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B03A | Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette] | ||
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 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 18/07/2012, OBSERVADAS AS CONDICOES LEGAIS. |
|
B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 11A ANUIDADE. |
|
B24J | Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12) |
Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2731 DE 09-05-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |