BR112015031202B1 - Método, aparelho para armazenar dados, sistema de computador e sistema para gerenciamento de apagamento em sistemas de memória - Google Patents

Método, aparelho para armazenar dados, sistema de computador e sistema para gerenciamento de apagamento em sistemas de memória Download PDF

Info

Publication number
BR112015031202B1
BR112015031202B1 BR112015031202-0A BR112015031202A BR112015031202B1 BR 112015031202 B1 BR112015031202 B1 BR 112015031202B1 BR 112015031202 A BR112015031202 A BR 112015031202A BR 112015031202 B1 BR112015031202 B1 BR 112015031202B1
Authority
BR
Brazil
Prior art keywords
data
region
storage
storage cells
time
Prior art date
Application number
BR112015031202-0A
Other languages
English (en)
Other versions
BR112015031202A2 (pt
Inventor
Yogesh B. Wakchaure
David J. Pelster
Xin Guo
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to BR122018075830-9A priority Critical patent/BR122018075830B1/pt
Publication of BR112015031202A2 publication Critical patent/BR112015031202A2/pt
Publication of BR112015031202B1 publication Critical patent/BR112015031202B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

GERENCIAMENTO DE APAGAMENTO EM SISTEMAS DE MEMÓRIA. Trata-se de um hardware de processador de computador que recebe notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos. Em resposta à notificação, o hardware de processador de computador marca a região como armazenando dados inválidos. O hardware de processador de computador controla a magnitude de tempo de espera de apagamento (isto é, a quantidade de tempo que uma ou mais células são configuradas para um estado apagado) associado à substituição dos dados inválidos nas células de armazenamento com dados de substituição. Por exemplo, para reprogramar as respectivas células de armazenamento, o gerenciador de dados deve apagar as células de armazenamento e então programar as células de armazenamento com dados de substituição. A lógica de gerenciamento de dados pode controlar o tempo de espera de apagamento, de modo que o mesmo seja um valor de tempo limítrofe para melhorar uma vida útil do sistema de memória não volátil.

Description

CAMPO DA TÉCNICA
[001] As modalidades da presente revelação referem-se geralmente a gerenciamento de dados em um sistema de memória.
ANTECEDENTES
[002] Os sistemas de computador têm dispositivos muito usados para armazenar dados. Por exemplo, uma Unidade de Disco Rígido convencional (HDD) é um dispositivo de armazenamento de dados usado para armazenar e recuperar informações digitais com uso de discos de rotação rápida. Esses discos são revestidos com material magnético que persistentemente armazena os respectivos dados. Conforme um respectivo disco gira, uma cabeça magnética lê dados ou grava dados para o material magnético sobre a superfície do disco.
[003] Outro tipo de tecnologia convencional para armazenar da dos é uma unidade de estado sólido. Como seu nome sugere, uma unidade de estado sólido inclui um ou mais dispositivos de estado sólido ou circuitos integrados que são configurados para persistentemente armazenar dados. Não há partes móveis reais em uma unidade de estado sólido. O acesso aos dados armazenados na memória não volátil na unidade de estado sólido é realizado com uso de uma interface de circuito eletrônico.
[004] Uma razão para o uso amplamente difundido de uma uni dade de estado sólido em vez de unidades de disco giratório é a velocidade. Por exemplo, o acesso aos dados na memória não volátil é tipicamente mais rápido do o que acesso aos dados armazenados em um disco (por exemplo, um meio de armazenamento fisicamente giratório). Um lado negativo de usar a memória não volátil em oposição ao armazenamento em unidade de disco é o custo. Por exemplo, o custo por bit para armazenar dados na memória pode ser consideravelmente mais alto do que o custo por bit para armazenar dados em um disco de mídia magnética de uma HDD.
[005] Os sistemas de memória tipicamente incluem várias células de armazenamento para armazenar bits de informações. O gerenciamento adequado do sistema de memória e das respectivas células de armazenamento é importante para longevidade e utilidade. Determinado gerenciamento dos vários elementos de armazenamento pode causar falha prematura.
[006] As células de armazenamento em um sistema de memória não volátil tipicamente podem ser usadas várias vezes. Por exemplo, uma região de células de armazenamento em um dispositivo de memória não volátil inicialmente pode ser programada para armazenar um conjunto de dados. Para substituir o conjunto de dados, a região de células de armazenamento deve ser apagada primeiro. Novos dados são escritos para a região de células de armazenamento.
BREVE DESCRIÇÃO DOS DESENHOS
[007] A Figura 1 é um diagrama exemplificativo que ilustra a de gradação em desempenho de armazenamento de dados em células de memória, de acordo com técnicas convencionais.
[008] A Figura 2 é um diagrama exemplificativo que ilustra uma perda de margem RWB, de acordo com técnicas convencionais.
[009] A Figura 3 é um diagrama exemplificativo que ilustra um sistema de memória não volátil, de acordo com as modalidades no presente documento.
[0010] A Figura 4 é um diagrama exemplificativo que ilustra o ge renciamento de células de armazenamento em um sistema de memória não volátil, de acordo com as modalidades no presente documento.
[0011] A Figura 5 é um diagrama exemplificativo que ilustra a de- gradação de desempenho reduzido de armazenamento de dados em células de armazenamento, de acordo com as modalidades no presente documento.
[0012] A Figura 6 é um diagrama exemplificativo que ilustra um apagamento parcial de dados em células de armazenamento, de acordo com as modalidades no presente documento.
[0013] A Figura 7 é um diagrama exemplificativo que ilustra uma arquitetura de computador que pode ser usada para executar um ou mais métodos, de acordo com as modalidades no presente documento.
[0014] A Figura 8 é um fluxograma exemplificativo que ilustra um método, de acordo com as modalidades no presente documento.
[0015] A Figura 9 é um diagrama exemplificativo que ilustra o uso de memória em um respectivo sistema de computador, de acordo com as modalidades no presente documento.
DESCRIÇÃO DAS MODALIDADES
[0016] De acordo com uma aplicação convencional, um gerenciador de dados pode receber a notificação de que as células de armazenamento em uma região de uma memória não volátil (como a tecnologia de memória NAND) armazenam atualmente dados inválidos. Em resposta à notificação, o gerenciador de dados imediatamente apaga a região de células de armazenamento para tornar as células de armazenamento disponíveis para programação subsequente. A região de células de armazenamento apagada é colocada em uma fila. Quando o sistema exige recursos adicionais para armazenar dados, o gerenciador de dados aloca uma região apagada anteriormente para armazenar os dados novos.
[0017] Determinadas modalidades, conforme discutido no presente documento, são baseadas pelo menos em parte na revelação de que a duração de tempo que uma célula de armazenamento em uma memória não volátil em um estado de apagamento pode impactar negativa- mente uma capacidade das respectivas células de armazenamento de armazenar dados subsequentes. As células de armazenamento em um dispositivo de memória não volátil são configuradas para um estado de apagamento antes de serem subsequentemente reprogramadas com dados de tipo não apagável.
[0018] Cada célula em um dispositivo de memória não volátil é suscetível à determinada quantidade de perda de carga intrínseca e recurso de janela de leitura reduzido (RWB) com o tempo durante utilização normal dos dispositivos de armazenamento. Em geral, a perda de carga intrínseca é um vazamento de elétrons da porta flutuante após um pulso de programação. A carga interceptada como resultado de programação inicialmente faz com que a tensão limítrofe da célula de dispositivo de memória não volátil (Vt) aparente ser mais alta que a tensão da porta flutuante. No entanto, o vazamento desses elétrons após a programação tipicamente produz um desvio na tensão limítrofe. O RWB representa a soma de margens de borda entre estados limítrofes de ajuste (discutido em mais detalhes em relação à Figura 1).
[0019] Quando as células em um dispositivo de memória não volátil estão em um estado apagado por um longo período de tempo, a taxa de perda de carga intrínseca aumenta para os dados armazenados subsequentemente naquelas células. A taxa de degradação da margem de RWB para aquelas células também é reduzida como resultado de células de armazenamento expostas a tempos de espera de apa- gamento mais longos.
[0020] Em determinados casos, um sistema de memória não volátil pode ser exposto a temperaturas elevadas (como superior a 35 graus Celsius sem ser energizado) por um período de tempo estendido. Conforme mencionado acima, a taxa de perda de carga intrínseca e a quantidade de degradação de margem de RWB com o tempo dependerá de uma duração de tempo que as células estão em um esta- do apagado. Se as células de armazenamento expostas a altas temperaturas estavam anteriormente em um estado apagado por um longo período de tempo, o sistema de memória não volátil é susceptível a uma taxa mais alta de perda de carga intrínseca e maior degradação de margens de RWB.
[0021] Uma modalidade no presente documento inclui controlar o tempo que células de armazenamento em um sistema de memória não volátil estão no estado apagado. Por exemplo, em uma modalidade, um gerenciador de dados recebe notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos. Em resposta à notificação, o gerenciador de dados marca a região como armazenando dados inválidos. O gerenciador de dados controla a quantidade de tempo em que uma célula é configurada para um estado apagado associado à substituição dos dados inválidos nas células de armazenamento por dados de substituição. Por exemplo, para reprogramar as respectivas células de armazenamento, o gerenciador de dados apaga as células de armazenamento e, em seguida, programa as células de armazenamento com dados de substituição. Em uma modalidade exemplificativa não limitante, o gerenciador de dados controla o tempo em que as células estão em um estado apagado, de modo que o mesmo esteja abaixo de um valor de tempo limítrofe para melhorar uma vida das células de armazenamento e sua capacidade para armazenar dados.
[0022] Consequentemente, ao invés de apagar imediatamente os dados inválidos e esperar uma duração de tempo substancial para gravar os respectivos dados novos para as células de armazenamento, as modalidades no presente documento incluem atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento, de modo a estar mais próxima em tempo a um tempo de re- programação das células de armazenamento com os dados de substituição. Reduzir o tempo em que as células estão em um estado apagado, conforme discutido no presente documento, reduz a taxa de perda de carga intrínseca e uma taxa que as margens de RWB se degradam para os dados de substituição armazenados subsequentemente. Dessa forma, as modalidades no presente documento incluem preservar o desempenho associado a células de armazenamento em um respectivo sistema de memória não volátil.
[0023] Agora, mais especificamente, a Figura 1 é um diagram exemplificativo que ilustra a degradação em desempenho de armazenamento de dados em células de memória, de acordo com técnicas convencionais.
[0024] Conforme mostrado no gráfico 110-1, inicialmente, múltiplas células de armazenamento de um dispositivo de memória não volátil são programadas em níveis diferentes L0, L1, L2, e L3. A título de um exemplo não limitante, cada uma das múltiplas células de armazenamento pode ser uma célula de NAND com múltiplos níveis ou elemento de armazenamento de célula de NAND com um único nível pode armazenar dois bits de informações.
[0025] Quando um valor é gravado em uma respectiva célula, uma carga é aplicada à porta flutuante. Quantidades diferentes de carga são aplicadas à respectiva célula para gravar uma configuração de bit diferente para a célula. Por exemplo, assumindo que um dispositivo de célula com múltiplos níveis de 2 bits por célula, uma primeira quantidade de carga é aplicada para configurar uma respectiva célula para um valor de bit 11; uma segunda quantidade de carga é aplicada para configurar uma respectiva célula para um valor de bit 10; uma terceira quantidade de carga é aplicada para configurar uma respectiva célula para um valor de bit 01; uma quarta quantidade de carga é aplicada para configurar uma respectiva célula para um valor de bit 00. A ten- são Vt (quando lida em um estado da célula) varia dependendo da configuração da respectiva célula e da carga aplicada.
[0026] Uma leitura de Vt de uma célula dentro da faixa R0 indica que a célula é configurada para um valor de bit 11; uma leitura de Vt de uma célula dentro da faixa R1 indica que a célula é configurada para um valor de bit 10; uma leitura de Vt de uma célula dentro da faixa R2 indica que a célula é configurada para um valor de bit 01 e uma leitura de Vt de uma célula dentro da faixa R3 indica que a célula é configurada para um valor de bit 00.
[0027] O nível de Vt (tensão limítrofe) (representativo da quantidade de carga interceptada durante a programação) detectado por uma célula indica um estado correspondente que uma respectiva célula é programada em uma leitura subsequente da célula. Por exemplo, o nível L0 no gráfico 110-1 representa uma distribuição de Vt para múltiplas células em um dispositivo de memória programado com dados = 11; o nível L1 representa uma distribuição de Vt para múltiplas células no dispositivo de memória programado com dados = 10; o nível L2 representa uma distribuição de Vt ou múltiplas células no dispositivo de memória programado com dados = 01; o nível L3 representa uma distribuição de Vt para múltiplas células no dispositivo de memória pro-gramado com dados = 00.
[0028] Quando lidas, todas as células de armazenamento progra madas para um nível L0 (por exemplo, valor de dados 11) produzem um respectivo Vt dentro da faixa R0; todas as células de armazenamento programadas para um nível L1 (por exemplo, valor de dados 10) têm um respectivo Vt dentro da faixa R1; todas as células de armazenamento programadas para um nível L2 (por exemplo, valor de dados 01) têm um respectivo Vt dentro da faixa R2; todas as células de armazenamento programadas para um nível L3 (por exemplo, o valor de dados 00) têm um respectivo Vt dentro da faixa R3. A tensão Vt de cada representa um nível de tensão detectado por um respectivo circuito que lê o estado da célula.
[0029] Presume-se nesse exemplo que o gráfico 110-1 mostra uma distribuição de um estado inicial de células de memória configuradas para níveis de lógica diferentes logo após a programação.
[0030] Presume-se adicionalmente nesse exemplo que a células de memória foram anteriormente expostas a um longo período de tempo em um estado de apagamento tal como muito superior a vários dias. Em outras palavras, antes de serem programadas para o estado inicial como no gráfico 110-1, as células de memória foram apagadas e permaneceram em um estado de apagamento por uma quantidade substancial de tempo (isto é, presume-se que todas as células de armazenamento foram configuradas para um estado de apagamento de nível L0 por vários dias).
[0031] O gráfico 110-2 ilustra a degradação de desempenho de armazenamento que ocorre como resultado da manutenção das células de armazenamento no estado de apagamento por tempo demais. Inicialmente, as distribuições de configurações são conforme mostradas no gráfico 110-1. No entanto, visto que as células de armazenamento estavam em um estado de apagamento por um longo período de tempo conforme discutido anteriormente, as configurações se degradam com o tempo. Mais especificamente, a taxa de perda de carga intrínseca é maior como resultado de estar no estado de apagamento por um longo período de tempo; a taxa de degradação de margem de RBW também é maior.
[0032] Nesse exemplo, devido a uma perda de carga intrínseca, com o tempo, o agregado de distribuições de Vt para células programadas nos níveis L0, L1, L2, e L3 se desvia para a esquerda a partir do gráfico 110-1 para o gráfico 110-2. Nesse exemplo, o pico P1 representa uma distribuição de pico em nível L1 no gráfico 110-1; o pico P1' representa uma distribuição de pico em nível L1 no gráfico 110-2. Conforme mostrado, o pico P1' é desviado em relação ao pico P1. A diferença entre P1 e P1' representa uma quantidade do desvio.
[0033] Adicionalmente, com o tempo, as distribuições de Vt se ampliaram a partir do estado inicial como no gráfico 110-1 para as dis-tribuições, conforme mostrado no gráfico 110-2. Por exemplo, a margem de RWB no estado inicial de programação de células de armazenamento é igual a uma soma de faixas E0, E1, E2, E3, E4 e E5 no gráfico 110-1. As margens suficientemente grandes entre níveis garantem que é possível distinguir em que nível uma respectiva célula de armazenamento é configurada. Conforme mencionado, com o tempo, devido ao fato de que as células de armazenamento estavam no estado de apagamento por um período de tempo substancialmente longo nesse exemplo, as distribuições associadas a células de armazenamento degradam-se com o tempo. Isto é, conforme mostrado no gráfico 110-2, além do desvio, conforme discutido acima, cada uma das distribuições de Vt para níveis diferentes de L0, L1, L2, e L3 se ampliou, de modo que a margem de RWB diminua a um ponto em que é difícil ou possi-velmente não mais possível determinar configurações adequadas para as células de armazenamento.
[0034] Por exemplo, uma célula de armazenamento inicialmente programada para o nível L1 no gráfico 110-1 pode parecer ter sido configurada para um nível L0 devido ao desvio e/ou ampliação de uma distribuição, conforme mostrado no gráfico 110-2. Inversamente, uma célula de armazenamento inicialmente programada para o nível L0 no gráfico 110-1 pode parecer ter sido configurada para um nível L1 devido ao desvio e/ou ampliação de uma distribuição, conforme mostrado no gráfico 110-2 e assim por diante. Consequentemente, a degradação de desempenho de armazenamento, conforme mostrado no gráfico 110-2, como causado estando-se em um estado de apagamento por um longo período de tempo é indesejável.
[0035] A Figura 2 é um diagrama exemplificativo que ilustra uma perda de margem de RWB teórica, de acordo com as técnicas convencionais.
[0036] Conforme mostrado no gráfico 210, a linha 220 indica um grau no qual a margem de RWB se degrada com o tempo como resultado do tempo gasto no estado apagado. O eixo geométrico x do gráfico 210 representa o tempo no estado apagado em segundos para as respectivas células de armazenamento; o eixo geométrico y do gráfico 210 representa uma perda de margem de RWB em milivolts (mV). Para tempos aumentados durante os quais todas as células de armazenamento estão no estado apagado, a margem de RWB se degrada a valores menores, tornando mais difícil ler dados armazenados, conforme mencionado acima. As margens de RWB podem se degradar tanto que o número bits de falha não pode ser corrigido com uso de um respectivo código de correção de erro ou outro mecanismo de correção de dados adequados no respectivo sistema de memória não volátil. Consequentemente, um tempo excessivo gasto no estado apagado pode causar uma perda catastrófica de dados armazenados.
[0037] A Figura 3 é um diagrama exemplificativo que ilustra uma configuração de dispositivos de memória em um sistema de memória não volátil, de acordo com as modalidades no presente documento.
[0038] Conforme mostrado, o sistema de memória exemplificativo 100 inclui lógica de gerenciamento de dados 140 e um ou mais dispositivos de memória como o dispositivo de memória 110-A, o dispositivo de memória 110-B, o dispositivo de memória 110-C, etc., (coletivamente, os dispositivos de memória 110) para armazenar dados. O sistema de memória 100 pode incluir uma cadeia de qualquer número adequado de dispositivos de memória 100.
[0039] O sistema de memória 100 pode ser parte de um aparelho como uma unidade de estado sólido (SSD) incluindo múltiplos dispositivos de memória. Conforme discutido no presente documento, uma técnica de encadeamento de dados (por exemplo, em que porções de uma cadeia de dados são armazenadas em cada um dos múltiplos dispositivos) pode ser usada para armazenar dados.
[0040] Observa-se que o sistema de memória 100 e/ou a lógica de gerenciamento de dados 140 pode incluir hardware, software, firmware, etc., para realizar qualquer uma das funções adequadas (por exemplo, acesso de dados, geração de informações de paridade, reparo de memória (como blocos de células de armazenamento retraídos que não podem mais armazenar dados corretamente), correção de dados, gasto de controle de tempo em estado apagado, etc.), conforme discutido no presente documento.
[0041] Observa-se que cada um dos recursos revelados na Figura 1 pode ser qualquer tipo adequado de recurso. Por exemplo, os dispositivos de memória 110 (por exemplo, NAND flash, NOR flash, Memória de Acesso Aleatório Magneticamente Resistente, Memória de Acesso Aleatório Ferroelétrica, memória de ponto cruzado tridimensional, etc.) podem incluir um ou mais planos de armazenamento (por exemplo, uma arquitetura com dois planos que divide o dispositivo em dois planos físicos que consiste em blocos impares e pares) para armazenar dados.
[0042] A lógica de gerenciamento de dados 140 e/ou os compo nentes relacionados podem ser executados através de qualquer tipo adequado de recurso como um ASIC (Circuito integrado de Aplicação Específica), instruções de execução de hardware de processador de computador, firmware, hardware, software, híbrido de hardware e software, etc.
[0043] A título de um exemplo não limitante, cada um dos disposi tivos de memória 110 pode incluir múltiplas células de armazenamento para armazenar os respectivos dados. Por exemplo, o dispositivo de memória 110-A inclui o bloco 120-A1, o bloco 120-A2, o bloco 120-A3 e assim por diante; um dispositivo de memória 110-B inclui o bloco 120-B1, o bloco 120-B2, o bloco 120-B3 e assim por diante; o dispositivo de memória 110-C inclui o bloco 120-C1, o bloco 120-C2, o bloco 120-C3 e assim por diante.
[0044] Cada bloco inclui múltiplas páginas; cada página em um bloco inclui múltiplas células de armazenamento para armazenar os respectivos dados. Como um exemplo, a região 210-2 inclui a página 245-X, como uma cadeia de informações de bit armazenadas em múltiplos dispositivos de memória 110.
[0045] Conforme mostrado, cada região (ou banda) no sistema de memória 100 pode incluir uma classe de blocos dos múltiplos dispositivos de memória 110. Nessa modalidade exemplificativa não limitante, a região 210-1 inclui o bloco 120-A1, bloco 120-B1, bloco 120-C1, etc.; a região 210-2 inclui o bloco 120-A2, bloco 120-B2, bloco 120-C2, etc.; a região 210-3 inclui o bloco 120-A3, bloco 120-B3, bloco 120-C3, etc. e assim por diante.
[0046] Em uma modalidade exemplificativa não limitante, os elementos de memória em cada bloco são configurados para ser células com múltiplos níveis; cada elemento de armazenamento pode armazenar múltiplos bits de dados conforme mencionado. Conforme mencionado, dependendo da modalidade, cada célula pode ter capacidade para armazenar um ou múltiplos bits de dados dependendo de uma configuração de modo de um bit por célula (por exemplo, célula com múltiplos níveis MLC, célula com um único nível SLC, etc.).
[0047] Consequentemente, os recursos de armazenamento nos dispositivos de memória 110 podem ser particionados em múltiplas regiões incluindo a região 210-1, a região 210-2, a região 210-3, etc. Em uma modalidade, a região 210-1 representa uma primeira banda, a região 210-2 representa uma segunda banda, a região 210-3 representa uma terceira banda e assim por diante.
[0048] Em qualquer tempo determinado, dados armazenados em uma ou mais das regiões 210 (ou porção da mesma) podem ser desativados para uso adicional por qualquer número de razões. Por exemplo, os dados em uma respectiva banda podem ser desativados como sendo inválidos como resultado da realização de análise de desfrag- mentação em que é determinado se os dados relacionados armazenados em múltiplas localizações na memória são melhor armazenados de uma maneira diferente como próximos entre si por razões de desempenho; dados em uma respectiva banda podem ser desativados como sendo inválidos como resultado de um usuário que executou uma operação de exclusão indicando que os dados não são mais necessários; etc.
[0049] Após a recepção da notificação de que os dados armazenados em uma respectiva região não estão mais válidos, a lógica de gerenciamento de dados 140 armazena uma identidade da região de dados recém-desativada na lista 320. Nessa modalidade exemplificati- va, a lista 320 indica que a região 210-5, a região 210-6, ..., a região 210-2, foram desativadas e todas armazenam dados inválidos (por exemplo, os dados não têm mais qualquer utilidade).
[0050] Ao invés de apagar imediatamente as respectivas regiões que têm dados inválidos, conforme indicado por inclusão na lista 320, as modalidades no presente documento incluem atrasar a operação de apagamento das células de armazenamento dentro das respectivas regiões após terem sido desativadas ou rotuladas como sendo dados inválidos.
[0051] Presume-se nesse exemplo que a lógica de gerenciamento de dados 140 recebe a notificação de que os dados armazenados em uma respectiva região 210-2 de células de armazenamento em um sis- tema de memória 100 agora armazenam dados inválidos. Em resposta à recepção da notificação, a lógica de gerenciamento de dados 140 marca a região 210-2 como armazenando dados inválidos. Isso pode incluir armazenar a identidade da região 210-2 na lista 320. Adicional ou alternativamente, as modalidades adicionais no presente documento podem incluir modificar pelo menos uma porção dos dados armazenados na região desativada para indicar que os dados armazenados na mesma não são mais dados válidos ou úteis.
[0052] Algum tempo após a região ter sido marcada como armazenando dados inválidos, a lógica de gerenciamento de dados 140 grava dados de substituição para todas ou uma porção das células de armazenamento na região 210. Para fornecer desempenho de armazenamento elevado e evitar RWB em excesso e degradação de perda de carga intrínseca, a lógica de gerenciamento de dados 140 controla uma quantidade de tempo em que as células de armazenamento são configuradas para um estado apagado antes da substituição subsequente pelos respectivos dados de substituição nas células de armazenamento da região 210-2.
[0053] Conforme descrito no presente documento, uma modalidade no presente documento inclui atrasar uma operação de apagamen- to de dados inválidos nas células de armazenamento na região 210-2 e substituição dos dados inválidos pelos dados de substituição. Por exemplo, a lógica de gerenciamento de dados 140 atrasa a operação de apagamento (que é exigida antes de gravar os dados de substituição nas células de armazenamento) para reduzir o tempo que as células de armazenamento estão no estado de apagamento abaixo de um valor limítrofe de tempo predeterminado. Reduzir o tempo de espera de apagamento para um valor abaixo de um valor limítrofe de tempo predeterminado em casos subsequentes de dados de substituição nas regiões garante que o sistema de memória 100 fornecerá um determi- nado nível de desempenho no curso de sua vida útil.
[0054] A Figura 4 é um diagrama exemplificativo que ilustra o gerenciamento de células de armazenamento em um sistema de memória não volátil, de acordo com as modalidades no presente documento.
[0055] Em qualquer tempo determinado, nenhuma, uma ou mais dentre as regiões 210 podem armazenar dados válidos conforme representado pelo estado gravado 410. Em outras palavras, o estado gravado 410 representa porções do sistema de memória 100 que armazenam dados válidos.
[0056] Conforme discutido anteriormente, determinadas regiões de dados armazenados no sistema de memória 100 podem tornar-se eventualmente inválidas. O estado 420 representa regiões que foram desativadas e armazenam agora dados inválidos. Em resposta à detecção de que uma região foi desativada ou colocada no estado de dados inválidos 420, a lógica de gerenciamento de dados 140 armazena uma identidade da região que inclui os dados inválidos na lista 320. Qualquer método adequado pode ser usado para marcar ou sinalizar a região desativada.
[0057] Em uma modalidade, novas regiões são necessárias paraarmazenar dados de substituição 490 recebidos pela lógica de gerenciamento de dados 140, a lógica de gerenciamento de dados 140 inicia a execução da função de apagamento 430. Por exemplo, presume-se que a região atual 450 é a região 210-3 e que a região 210-4 é a região reservada 440. Subsequente à finalização da programação da região atual 450 (região 210-3), a lógica de gerenciamento de dados 140 configura a região 210-3 para o estado gravado 410. Conforme discutido abaixo, a região 210-3 pode ser desativada, pois não há mais células de armazenamento livres para gravar novos dados na região 210-3 ou um tempo pode ocorrer. Conforme explicado no presente documento, uma região de memória pode ser apagada e gravada dentro de uma determinada janela de tempo. Após a expiração da janela de tempo, a região pode ser desativada para um estado gravado 410 em que a região não está mais disponível para gravar dados. A região pode ser desativada apesar de toda a região não ter sido gravada com dados válidos. Consequentemente, o tempo de apagamento de uma região é inferior à janela de tempo. Detalhes adicionais são discutidos abaixo. Observa-se que as células de armazenamento na região 210-4 são configuradas para um estado de apagamento pela função de apa- gamento 430 quando a região 210-4 foi alocada como a região reservada 440 da lista 320.
[0058] Para preencher a vacância na região reservada 440 (visto que a região 210-4 foi movida para a região atual 450), a lógica de ge-renciamento de dados 140 aplica a função de apagamento 430 na próxima região disponível (por exemplo, a região 210-5) na lista 320. A aplicação da função de apagamento 430 inclui apagar substancialmente todas as células de armazenamento em uma respectiva região para um estado de apagamento. Após designar a região 210-4 como a região atual 450, a lógica de gerenciamento de dados 140 designa a região 210-5 (no estado apagado) como a região reservada 440.
[0059] Em uma modalidade, a lógica de gerenciamento de dados 140 inicia o temporizador 555 em um momento de configuração da região 210-4 como a região atual 450, durante o qual quaisquer dados de substituição disponíveis 490 são armazenados na região 210-4. O temporizador 555 mantém o controle de quanto tempo a região 210-4 é designada como a região atual 450 e é usada pela lógica de gerenciamento de dados 140 para armazenar dados recém-recebidos 490.
[0060] É possível que a lógica de gerenciamento de dados 140 não receba uma quantidade suficiente de dados de substituição 490 para programar todas as células de armazenamento dentro da região 210-4 durante um período de tempo específico. Recordar que a região atual 450 foi recentemente apagada. Recordar também que é desejável reduzir o tempo de espera de apagamento (isto é, um tempo em que as células de armazenamento em uma respectiva região são configuradas para um estado de apagamento antes de serem gravadas com dados válidos). Em uma modalidade, em resposta à detecção de que o temporizador 555 alcança um valor limítrofe de tempo como 1,5 dia após a região 210-4 ser configurada como sendo a região atual 450 e independentemente se todas as células de armazenamento na região 210-4 foram completamente gravadas com novos dados de substituição 490, a lógica de gerenciamento de dados 140 desativa a região 210-4 para o estado gravado 410. Desativar a região 210-4 para o estado gravado 410 (como oposto a deixar como a região atual 450 indefinidamente) significa que a região 210-4 não está mais disponível para gravar dados adicionais. Isso mantém o tempo de espera de apagamento para a região 210-4 sob um valor limítrofe. Por exemplo, a região 210-4 é armazenada em um estado de apagamento como a região reservada 440 para no máximo 1,5 dias (uma quantidade limítrofe de tempo); a região 210-4 é armazenada em um estado de apa- gamento como a região atual 450 por no máximo 1,5 dias (uma quantidade limítrofe de tempo). Por conseguinte, nessa modalidade exem- plificativa, a região 210-4 está no estado apagado por um período máximo de 3 dias.
[0061] Em uma modalidade, uma porção das células de armazenamento apagadas (se essas células de armazenamento apagadas não são gravadas quando a região 210-4 é a região atual 450), é programada com valores não apagáveis (como valor 01, valor 10 ou valor 00) antes da região atual 450 ser desativada para o estado gravado 410. Dessa forma, as regiões desativadas para o estado gravado 410 não são preenchidas completamente com os valores apagáveis (como valor de dados 11). Isso limita uma quantidade de tempo em que as células de armazenamento na região 210-4 permanecem no estado apagado.
[0062] Com base na transição da região 210-4 da lista 320 (como uma fila) para a região reservada 440 e para a região atual 450, as células de armazenamento na região 210-4 experimentam um tempo de espera de apagamento de até 3 dias, conforme mencionado acima. Mais especificamente, a região 210-4 se encontra no máximo na região reservada 440 por 1,5 dia; a região 210-4 encontra-se na região atual 450 por no máximo 1,5 dia. Dessa forma, toda ou uma porção das células de armazenamento na região 210-4 experimentam um tempo de espera de apagamento máximo de 3 dias. De uma maneira semelhante, cada uma das regiões pode vivenciar um tempo de espera de apagamento máximo de 3 dias. É evidente que o tempo de espera de apagamento máximo não precisa ser de 3 dias e pode ser qualquer valor adequado.
[0063] Também, observa-se que as regiões podem não se encontrar no estado apagado pela quantidade de tempo máxima, pois a lógica de gerenciamento de dados 140 pode ser configurada para armazenar imediatamente os dados 490 nas respectivas células de armazenamento da região 210-3 e da região 210-4. Nesse caso, o tempo de espera de apagamento para cada região é muito inferior a 3 dias. O tempo de espera de apagamento pode estar na ordem inferior a 1 segundo.
[0064] Controlar o tempo de espera de apagamento dessa maneira reduz uma taxa de perda de carga intrínseca e uma taxa de perda de margem de RWB associada aos dados de substituição 490 armazenados nas células de armazenamento da região 210-4 (e outras regiões). Conforme mencionado, a taxa de perda de carga intrínseca e a taxa de perda de margem de RWB dependem de uma quantidade de tempo em que as configurações das células de armazenamento na região 210-4 são configuradas para um estado de apagamento antes do armazena- mento dos dados de substituição nas células de armazenamento.
[0065] Conforme mencionado, é possível que a região 210-3 (quando designada como a região atual 450) se preencha com dados de substituição 490 antes de um tempo limite ocorrer. Nesse caso, a lógica de gerenciamento de dados seleciona e desvia a região reservada 440 como sendo a nova região atual 450. Ao fazer isso, a lógica de gerenciamento de dados 140 atrasa a operação de apagamento dos dados inválidos em cada uma das regiões como na lista 320. A lógica de gerenciamento de dados 140 pode ser configurada para monitorar uma necessidade por novo espaço de armazenamento para armazenar dados de substituição 490 no sistema de memória 100.
[0066] Como uma alternativa a apagar imediatamente os dados inválidos nas respectivas regiões desativadas conforme especificado na lista 320, a lógica de gerenciamento de dados 140 pode ser configurada para apagar os dados inválidos nas regiões de armazenamento à medida que há uma necessidade de armazenar os dados de substituição 490. Em outras palavras, a lógica de gerenciamento de dados 140 mantém as configurações de células de armazenamento em um estado anteriormente programado de dados inválidos de armazenamento até a função de apagamento 430 receber um comando para apagar as células de armazenamento. Conforme discutido anteriormente, o comando recebido pela função de apagamento 430 a partir da lógica de gerenciamento de dados 140 pode ser recebido em resposta à detecção de que uma banda-reserva (como a região reservada 440) foi realocada como uma banda atual (como a região atual 450) para armazenar dados recém-recebidos. A lógica de gerenciamento de dados 140 designa a região de células de armazenamento recém- apagada como a região reservada 440.
[0067] Observa-se que a região atual 450 e a região reservada 440 podem incluir qualquer número de regiões. Por exemplo, a lógica de gerenciamento de dados 140 pode ter capacidade para detectar quando e como várias regiões serão necessárias para armazenar dados de substituição 490. Nesse caso, a lógica de gerenciamento de dados 140 pode ser configurada para controlar uma taxa de apagamento como regiões e disponibilizar as mesmas como regiões reservadas.
[0068] Ter pelo menos uma região disponível na região reservada 440 garante que a lógica de gerenciamento de dados 140 não será atrasada quando os dados de substituição 490 são armazenados no sistema de memória 100. Por exemplo, após transitar de uma região reservada 440 para a região atual 450, a lógica de gerenciamento de dados 140 inicia o apagamento de uma nova região como a região reservada 440, de modo que a próxima região seja apagada antes que a mesma seja necessária. Em uma modalidade, o tempo de apagamen- to de uma região é de 3 a 10 milissegundos. O tempo programado para modificar as configurações de células de armazenamento em uma região ou banda pode ser de aproximadamente 1 segundo.
[0069] A Figura 5 é um diagrama exemplificativo que ilustra a degradação de desempenho reduzida de armazenamento de dados em células de armazenamento, de acordo com as modalidades no presente documento.
[0070] Em contraste à Figura 1, conforme discutido acima, a Figura 5 ilustra a utilidade de atrasar e/ou reduzir um tempo em que as células são configuradas para um estado apagado de acordo com as modalidades no presente documento. Conforme mostrado, as células de armazenamento podem vivenciar uma quantidade de degradação devido ao fato de serem apagadas. Por exemplo, presume-se que as células de armazenamento foram gravadas com valores que têm uma distribuição, conforme mostrado no gráfico 510-1. O gráfico 510-2 ilustra um estado das células de armazenamento após uma quantidade de tempo. Há um leve desvio de distribuições para a esquerda no gráfico 510-2 em relação a gráfico 510-1. No entanto, conforme mostrado, o tempo de espera de apagamento encurtado garante que a degradação de dados armazenados ocorre em uma taxa muito mais lenta do que quando as células de armazenamento experimentam longo tempo de espera de apagamento, conforme mostrado na Figura 1.
[0071] A Figura 6 é um diagrama exemplificativo que ilustra um apagamento parcial de dados em células de armazenamento, de acordo com as modalidades no presente documento.
[0072] Pode haver casos em que é desejável impedir o acesso ou destruir os dados inválidos antes de serem apagados através da função de apagamento 430. O enfileiramento de regiões na lista 320, conforme discutido no presente documento, pode resultar na respectiva região armazenando dados inválidos por uma quantidade de tempo substancial.
[0073] Uma maneira de destruir dados inválidos após terem sido desativados e movidos para a lista 320 é apagar dados em uma respectiva região de células de armazenamento para destruir os dados inválidos após receber a notificação de que a região armazena 100% de dados inválidos. Para tornar os dados indisponíveis, as modalidades no presente documento podem incluir apagar a região e programar a região de células de armazenamento com dados temporários. Conforme mencionado, a identidade da região que foi desativada pode permanecer na lista 320 por uma quantidade de tempo substancial. De acordo com uma modalidade, ao invés de armazenar os dados inválidos enquanto a identidade de região é enfileirada na lista 320, a respectiva região armazena os dados temporários antes de serem subse-quentemente substituídos pelos dados novos 490. Essa modalidade pode afetar uma vida do sistema de memória 100, pois exige uma operação extra de pré-programação de células de armazenamento em uma região desativada com os dados temporários. Os dados temporá- rios são apagados subsequentemente e substituídos pelos dados de substituição 490. Os dados temporários podem ter uma distribuição semelhante aos dados mostrados no gráfico 510-1.
[0074] Outra maneira de destruir os dados inválidos é realizar um chamado apagamento parcial da região recém-desativada. Nesse caso, a lógica de gerenciamento de dados 140 programa pelo menos uma porção das células de armazenamento na região para os estados de não apagamento (por exemplo, estados além do nível L0).
[0075] Como um exemplo adicional, o gráfico 610-1 ilustra uma distribuição exemplificativa associada a células de armazenamento em uma região. Presume-se que o gráfico 610-1 representa configurações de dados inválidos em uma região a ser destruída. Em uma modalidade, a lógica de gerenciamento de dados 140 aumenta o valor limítrofe de apagamento TEV1 associado a células de armazenamento que devem ser aproximadamente iguais ao valor PV2 (ou algum outro valor adequado maior que TEV1) no gráfico 610-1. Em outras palavras, a lógica de gerenciamento de dados 140 configura o valor limítrofe de apagamento para TEV2, conforme mostrado no gráfico 610-2.
[0076] A lógica de gerenciamento de dados 140 modifica as configurações de bit das células de armazenamento na região recém- desativada que está dentro de uma faixa definida pelo valor limítrofe de apagamento aumentado (valor limítrofe de apagamento modificado TEV2). O valor limítrofe de apagamento original TEV1 foi usado como uma base para definir configurações originais associadas às células de armazenamento, conforme mostrado no gráfico 610-1.
[0077] A lógica de gerenciamento de dados 140 modifica as configurações de células de armazenamento na região a fim de produzir a distribuição de configurações, conforme mostrado no gráfico 610-2. Essa nova distribuição inclui configurar um número suficiente de células de armazenamento na região recém-desativada para estados de não apagamento fora do nível L0. Esse tipo de apagamento destrói os dados inválidos nas células de armazenamento, de modo que os dados inválidos não estejam mais disponíveis. Adicionalmente, devido ao fato de a distribuição de maneira eficaz se expandir em um estado de apagamento (por exemplo, nível L0) e pelo menos um estado de não apagamento (como nível L1, faixa E1, faixa E2), a região de células de armazenamento não é substancialmente afetada pelo longo período de tempo no estado de apagamento, conforme discutido anteriormente. Em outras palavras, a distribuição de configurações nas células de armazenamento modificas conforme mostrado no gráfico 610-2 é suficientemente diferente, de modo a não ser prejudicial às células de ar-mazenamento se não for alterada por períodos de tempo estendidos.
[0078] Observa-se que toda ou uma porção das células de arma zenamento na respectiva região pode ser parcialmente apagada, de modo que os dados inválidos não estejam mais acessíveis.
[0079] Em vista das modalidades acima, as modalidades adicionais no presente documento podem incluir receber um comando para modificar os dados inválidos nas células de armazenamento a fim de impedir o acesso e uso desses dados. Em resposta à recepção do comando, a lógica de gerenciamento de dados 140 modifica uma porção menor que o todo das configurações dos dados células na região para um estado de não apagamento em que os dados inválidos tornam-se corrompidos ou são destruídos. Em outras palavras, os dados originais são modificados a partir de seu estado original. Uma porção ou grupo de células de armazenamento anteriormente configurado para o nível L2 e/ou o nível L3 no gráfico 610-1 é trocado para configurações de Vt próximo ao nível L1 (estado de não apagamento) e/ou nível L0 no gráfico 610-2.
[0080] Como um exemplo mais específico, a região de células de armazenamento, conforme ilustrado pelo gráfico 610-1 pode incluir uma sequência de dados originais como: célula de armazenamento #1 = 11 (estado de apagamento); célula de armazenamento #2 = 10 (estado de não apagamento); célula de armazenamento #3 = 00 (estado de não apagamento); célula de armazenamento #4 = 10 (estado de não apagamento); célula de armazenamento #5 = 11 (estado de apa- gamento); célula de armazenamento #6 = 00 (estado de não apaga- mento); célula de armazenamento #7 = 01 (estado de não apagamen- to); célula de armazenamento #8 = 00 (estado de não apagamento); e assim por diante.
[0081] Presume-se que, em resposta à região que é desativada, a lógica de gerenciamento de dados 140 modifica os estados através de um apagamento parcial, conforme discutido acima, para tornar os dados indisponíveis. A região, conforme ilustrado pelo gráfico 610-2, após a aplicação de um apagamento parcial, pode incluir células de armazenamento configuradas para armazenar uma sequência de dados como: célula de armazenamento #1 = 11 (estado de apagamento); célula de armazenamento #2 = 10 (estado de não apagamento); célula de armazenamento #3 = 10 (estado de não apagamento); célula de armazenamento #4 = 10 (estado de não apagamento); célula de armazenamento #5 = 11 (estado de apagamento); célula de armazenamento #6 = 10 (estado de não apagamento); célula de armazenamento #7 = 10 (estado de não apagamento); célula de armazenamento #8 = 11 (estado de apagamento); e assim por diante.
[0082] Observa-se que, como resultado do apagamento parcial,conforme discutido no presente documento, determinadas células de armazenamento na região recém-desativada podem ser configuradas para valores limítrofes como entre a faixa E0, E1, E2 e E3.
[0083] Conforme discutido anteriormente, mudar as configurações de um primeiro grupo de células na região de dados inválidos de um primeiro estado de não apagamento (como o nível L2 e/ou o nível L3) para um segundo estado de não apagamento (como nível L1) tornaria os dados inválidos indisponíveis. A modificação das configurações de dados nas células de armazenamento também evita o problema de danos às células de armazenamento, visto que as células de armazenamento são mantidas no estado conforme mostrado no gráfico 610-2 por um período de tempo estendido. Em outras palavras, as células não experimentam um longo tempo de espera de apagamento quando configuradas com as configurações no gráfico 610-2.
[0084] Eventualmente, a região de células de armazenamento de sativada e parcialmente apagada como (cujas configurações são repre-sentadas por configurações no gráfico 610-2) é a próxima na lista 320 a ser designada como a região reservada 440. Nesse caso, a função de apagamento 430 apaga todas as células de armazenamento na região dentro do nível L0 (o estado de apagamento), de acordo com o valor limítrofe de apagamento TEV1. Conforme mencionado, a lógica de gerenciamento de dados 140 grava para (programa) a respectiva região de células de armazenamento quando é designada subsequentemente como a região atual 450. No entanto, observa-se que, quando os dados de substituição 490 são armazenados nas células de armazenamento da região novamente, a lógica de gerenciamento de dados 140 configura cada uma das células de modo que estejam dentro de um nível apropriado L0, L1, L2 ou L3 dependendo dos dados de substituição a serem armazenados. Consequentemente, mediante leitura subsequente de células de armazenamento na região, as células de armazenamento serão configuradas para um dentre os múltiplos estados.
[0085] Referindo-se novamente à Figura 4, observa-se que, em certas modalidades, a lista 320 pode ser armazenada em um dispositivo de memória não volátil, de modo que os dados possam ser recuperados após uma falha na potência esperada. Em outras palavras, uma falha de potência pode resultar em uma perda completa da lista 320, pois a lista é armazenada na memória volátil. Em outras palavras, uma falha na potência pode resultar em uma perda completa da lista 320, pois a lista é armazenada na memória volátil.
[0086] Em vista de possíveis falhas na potência do sistema de memória 100, uma modalidade no presente documento pode incluir marcar a uma ou mais regiões de dados inválidos para indicar que a respectiva região inclui dados inválidos. Por exemplo, após detectar que uma região foi desativada para o estado inválido 420, a lógica de gerenciamento de dados 140 pode ser configurada para modificar dados armazenados em uma localização predeterminada nas regiões diferentes para indicar que a respectiva região inclui dados inválidos. Subsequente à ocorrência de uma falha na potência, posteriormente à elevação da potência, a lógica de gerenciamento de dados 140 pode ser configurada para acessar e utilizar configurações de dados na localização predeterminada em uma respectiva região para determinar se a região correspondente armazena dados válidos ou inválidos. Para aquelas regiões que armazenam dados inválidos, a lógica de gerenciamento de dados 140 inclui identidades das regiões na lista 320 e ope-ra de uma maneira, conforme discutido acima. Essas regiões na lista 320 que incluem dados inválidos não são usadas para criar uma lógica para tabela física que permita o mapeamento de endereços lógicos para localizações físicas correspondentes na memória em que os dados são armazenados.
[0087] As modalidades no presente documento podem incluir modificar os dados na localização predeterminada para garantir que uma falha de leitura subsequente ocorrerá quando tentar ler a localização predeterminada após elevação da potência. Em uma modalidade, a falha de leitura subsequente pela lógica de gerenciamento de dados após a potência ser restabelecida indica que uma respectiva região inclui dados inválidos.
[0088] Conforme mencionado acima, outra modalidade no presente documento pode incluir realizar um chamado apagamento ou dano parcial (leitura de falha subsequente) em que toda ou uma porção (como uma última página ou linha de palavra) em uma respectiva banda é parcialmente apagada. No estado de apagamento parcial de gráfico 610-2, após elevação subsequente da potência do respectivo dispositivo de computador que inclui o sistema de memória 100, a lógica de gerenciamento de dados 140 pode ser configurada para tentar ler a uma respectiva página na região que foi parcialmente apagada. Quando a lógica de gerenciamento de dados 140 tenta ler esses dados, de acordo com níveis predeterminados L0, L1, L2, e L3, um erro de leitura de ECC (Código de correção de erro) ou erro de paridade irá ocorrer, indicando, assim, que a região ou banda inclui dados inválidos.
[0089] Ainda outro método para recuperação após uma falha na potência pode incluir reconstruir um mapeamento de L2P (Lógica para Física) associado ao sistema de memória 100. Por exemplo, presume- se que todos os blocos em uma região devem inicialmente armazenar dados válidos (mesmo se eles armazenam dados inválidos). Os dados armazenados em cada uma das respectivas bandas podem ser usados para determinar se pelo menos um endereço de bloco de lógica (LBA) no mapeamento L2P aponta para uma localização (como um bloco) na respectiva região. Se nenhum apontador de Endereço de Bloco Lógico apontar para qualquer um dos blocos em uma banda quando o mapeamento L2P é criado, em seguida, a banda (por exem-plo, a região) será determinada como incluindo dados inválidos. As identidades de quaisquer regiões tendo todos os dados inválidos são incluídas na lista 320.
[0090] De acordo ainda com modalidades adicionais, a lógica de gerenciamento de dados 140 pode ser configurada para armazenar uma cópia das identidades de regiões na lista 320 em uma região de- signada como uma primeira página da região atual 450. Por exemplo, em uma modalidade, a lógica de gerenciamento de dados 140 armazena as identidades (lista 320) em uma localização predeterminada da região atual 450 como a primeira página após designação da região como a região atual 450.
[0091] Após armazenar as identidades na região atual 450 na primeira página, presume-se que o sistema de memória 100 experimenta uma falha na potência em que os dispositivos de memória 110 são todos despotencializados sem prévio aviso. Por exemplo, uma falha na potência inesperada pode ocorrer enquanto a região atual 450 é usada pela lógica de gerenciamento de dados 140 para armazenar dados recebidos. Presume-se que a potência é restaurada, na elevação de potência de sistema subsequente, a lógica de gerenciamento de dados 140 (ou outro adequado recurso) pode ser configurado para identificar qual dentre as regiões 210 foi designada como a última região atual 450 usada pela lógica de gerenciamento de dados 140 antes da falha na potência.
[0092] Qualquer método adequado pode ser usado para determinar a última região atual 450 subsequente à repotencialização do sistema. Por exemplo, em uma modalidade, antes da falha na potência, a lógica de gerenciamento de dados 140 armazena as identidades na lista 320 em uma página designada (como uma primeira página) da região atual 450. Devido ao fato de a falha na potência ocorrer, a lógica de gerenciamento de dados 140 é impossibilitada de gravar na página da região atual 450. Portanto, a última página da região atual 450 ainda está em um estado apagado. Observa-se que todas as páginas na região reservada 440 são configuradas para um estado de apaga- mento. A região atual 450 foi anteriormente a região reservada 440 e estava no estado apagado.
[0093] Após uma falha na potência e a repotencialização do siste- ma de memória 100, a lógica de gerenciamento de dados 140 lê o estado da última página de cada região no sistema de memória 100. Com base na leitura da última página de cada região, a lógica de gerenciamento de dados 140 identifica duas regiões candidatas (a última região atual 450 e a última região reservada 440) como possivelmente sendo a última região atual 450. As duas regiões candidatas incluem uma última página de dados apagados. A lógica de gerenciamento de dados 140 lê a primeira página das duas regiões candidatas para determinar que uma é a última região atual 450. Por exemplo, a uma dentre as duas regiões candidatas na qual a primeira página é gravada é a região que foi a última região atual 450. Recordar que a lógica de gerenciamento de dados 140 grava a lista 320 na primeira página da região atual 450. A outra região candidata (a região reservada prévia 440) terá uma página de dados apagados. Dessa forma, a região atual prévia 450 será identificável como uma única banda parcialmente gravada que inclui dados escritos na primeira página e dados apagados na última página. A região reservada 440 incluirá uma primeira página de dados apagados e uma última página de dados apagados. Nesse caso, determina-se que a região é usada como a região reservada prévia 440 antes da falha na potência.
[0094] Após identificar a banda específica (ou região) que foi designada como a região atual 450 antes da perda de potência, a lógica de gerenciamento de dados 140 (ou outro recurso adequado) irá ler e recriar a lista 320 a partir da primeira página correspondente da região atual 450 e, em seguida, excluirá tais regiões (por exemplo, a região 210-5, 210-6, 210-12, etc.) na lista a partir da construção da tabela L2P. Dessa forma, apesar da lista 320 ser armazenada em memória volátil e poder ser perdida por uma falha na potência, as modalidades no presente documento podem incluir recriar a lista 320 com base em dados armazenados na região atual 450.
[0095] A Figura 7 é um diagrama de blocos exemplificativo de um sistema de computador para implantar qualquer uma das operações, conforme discutido no presente documento, de acordo com as modalidades no presente documento.
[0096] O sistema de computador 850 pode ser configurado para executar qualquer uma das operações em relação à lógica de gerenciamento de dados 140.
[0097] Conforme mostrado, o sistema de computador 850 do presente exemplo pode incluir uma interconexão 811 que acopla mídia de armazenamento legível por computador 812 como um tipo não transitório físico de mídia (isto é, qualquer tipo de meio de armazenamento de hardware físico) em que as informações digitais podem ser armazenadas e recuperadas, um processador 813 (isto é, um ou mais dispositivos de processador), interface de I/O 814, interface de comunicações 817, etc.
[0098] Conforme mostrado, a interface de I/O 814 fornece conectividade de sistema de computador 850 a dados armazenados nos dispositivos de memória 220.
[0099] O meio de armazenamento legível por computador 812 pode ser qualquer dispositivo ou dispositivos de armazenamento em hardware físico ou tangível como memória, armazenamento óptico, disco rígido, disquete, etc. Em uma modalidade, o meio de armazenamento legível por computador 812 (por exemplo, um armazenamento em hardware legível por computador) armazena instruções e/ou dados.
[00100] Em uma modalidade, a interface de comunicações 817 permite que o sistema de computador 850 e o respectivo processador 813 se comunicam em um recurso como rede 190 para recuperar informações de fontes remotas e se comunicam com outros computadores. A interface I/O 814 permite que o processador 813 recupere informações armazenadas a partir de um repositório como dispositivos de memória 220.
[00101] Conforme mostrado, mídia de armazenamento legível por computador 812 é codificada com aplicativo de gerenciamento de dados 140-1 (por exemplo, software, firmware, etc.) executado pelo processador 813. O aplicativo de gerenciamento de dados 140-1 pode ser configurado para incluir instruções a fim de implantar qualquer uma das operações, conforme discutido no presente documento.
[00102] Durante a operação de uma modalidade, o processador 813 acessa uma mídia de armazenamento legível por computador 812 através do uso de interconexão 811 a fim de disparar, correr, executar, interpretar ou realizar de outra forma as instruções no aplicativo de gerenciamento de dados 140-1 armazenadas no meio de armazenamento legível por computador 812.
[00103] A execução do aplicativo de gerenciamento de dados 140-1 produz funcionalidade de processamento como processo de gerenciamento de dados 140-2 no processador 813. Em outras palavras, o de gerenciamento de dados 140-2 associado ao processador 813 representa um ou mais aspectos de execução do aplicativo de gerenciamento de dados 140-1 dentro ou através do processador 813 no sistema de computador 850.
[00104] Aqueles versados na técnica compreenderão que o sistema de computador 850 pode incluir outros processos e/ou componentes de software e hardware, como um sistema operacional que controla alocação e uso dos recursos de hardware, recursos de software, etc., para executar aplicativo de gerenciamento de dados 140-1.
[00105] De acordo com modalidades diferentes, observa-se que o sistema de computador 850 pode ser qualquer um dos vários tipos de dispositivos, os quais incluem, porém sem limitação, um computador móvel, um sistema de computador pessoal, um dispositivo sem fio, estação-base, dispositivo de telefone, computador do tipo desktop, computador do tipo laptop, computador do tipo notebook, computador do tipo netbook, sistema de computador central, computador portátil, estação de trabalho, computador em rede, servidor de aplicativo, dispositivo de armazenamento, um dispositivo eletrônico de consumidor como uma câmera, filmadora, decodificador de sinais, dispositivo móvel, console de videogame, dispositivo de videogame portátil, um dispositivo periférico como um comutador, modem, roteador ou, em geral, qualquer tipo de dispositivo de computador ou eletrônico.
[00106] A funcionalidade sustentada pelos diferentes recursos será discutida agora por meio de fluxogramas na Figura 8. Observa-se que o processamento nos fluxogramas abaixo pode ser executado em qualquer ordem adequada.
[00107] A Figura 8 é um fluxograma 800 que ilustra um método exemplificativo de acordo com as modalidades. Nota-se que haverá alguma sobreposição em relação aos conceitos descritos acima.
[00108] No processamento do bloco 810, a lógica de gerenciamento de dados 140 recebe a notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos.
[00109] No processamento do bloco 820, em resposta à notificação, a lógica de gerenciamento de dados 140 marca a região como armazenando dados inválidos.
[00110] No processamento do bloco 830, a lógica de gerenciamento de dados 140 controla o tempo em que as células de armazenamento estão no estado de apagamento associado à substituição dos dados inválidos nas células de armazenamento por dados de substituição. A título de um exemplo não limitante, a lógica de gerenciamento de dados 140 atrasa o apagamento das células de armazenamento mais próximas no tempo quando as células de armazenamento serão programadas com os respectivos dados de substituição.
[00111] A Figura 9 é um diagrama exemplificativo que ilustra o uso de sistema de memória em um respectivo sistema de computador, de acordo com as modalidades no presente documento.
[00112] Conforme mostrado, o sistema de computador 1100 pode incluir um recurso de processador hospedeiro 1120 e um sistema de memória 100. O recurso de processador hospedeiro 1120 pode ser ou incluir hardware de processador de computador como um ou mais dispositivos de processador. A título de um exemplo não limitante, o sistema de computador 1100 pode ser qualquer tipo adequado de recurso como um computador pessoal, um telefone celular, um dispositivo móvel, uma câmera, etc., que usa o sistema de memória 100 para armazenar dados.
[00113] Em uma modalidade, o sistema de memória 100 é uma unidade de estado sólido usada para armazenar dados.
[00114] O recurso de processador hospedeiro 1120 tem acesso ao sistema de memória 100 através de interface 1011. A interface 1011 pode ser qualquer ligação adequada que permite a transferência de dados. Por exemplo, a interface 1011 pode ser uma SCSI (Interface de Sistema de computador Pequena), SAS (SCSI com Série Fixada), SATA (Fixação de Tecnologia Em Série Avançada), USB (Barramento Serial Universal), barramento de Pcie (Interconexão de Componente Periférica Expressa), etc.
[00115] Através da interface 1011, o recurso de processador hospedeiro 1120 do sistema de computador 1100 pode recuperar e armazenar dados no sistema de memória 100.
[00116] Como um exemplo, presume-se que o recurso de processador hospedeiro 1120 recebe uma solicitação para realizar uma respectiva função conforme especificado pela entrada 105 de um usuário que opera a estação de verificação 1100. O recurso de processador hospedeiro 1120 executa a função que pode incluir transmitir uma solicitação sobre a interface 1011 para a lógica de gerenciamento de da dos 140 para recuperação de dados em um endereço lógico específico. Adicionalmente, para realizar outras funções, a lógica de gerenciamento de dados 140 pode ser configurada para mapear o endereço lógico para um endereço físico apropriado no sistema de memória 100 e recuperar os dados dos dispositivos de memória não volátil 220. Subsequente à recuperação dos dados apropriados a partir do sistema de memória 100, a lógica de gerenciamento de dados 140 transmite os dados recuperados para recurso de processador hospedeiro 1120 satisfazendo a solicitação por dados.
[00117] Em uma modalidade exemplificativa não limitante, o recurso de processador hospedeiro inicia a exibição de uma imagem na tela de exibição 130 dependendo dos dados recebidos a partir da lógica de gerenciamento de dados 140.
[00118] Como um exemplo adicional, observa-se que o recurso de processador hospedeiro 1120 pode receber uma solicitação para realizar uma respectiva função, conforme especificado pela entrada 105 de um usuário. O recurso de processador hospedeiro 1120 executa a função e se comunica com a lógica de gerenciamento de dados 140 para armazenar dados em um endereço lógico, conforme especificado pelo recurso de processador hospedeiro 1120. Em resposta à recuperação da solicitação, a lógica de gerenciamento de dados 140 mapeia o endereço lógico em um endereço físico apropriado e armazena os dados recebidos em uma localização correspondente dos dispositivos de memória não volátil 220.
[00119] Conforme discutido anteriormente, a lógica de gerenciamento de dados 140 pode ser configurada para gerenciar o tempo de espera de apagamento associado à programação de células de armazenamento no sistema de memória 100. Conforme discutido anteriormente, uma determinada quantidade de degradação pode ser aceitável como informações de correção de erro podem ser usadas para re- parar dados danificados. No entanto, reduzir o tempo de espera de apagamento substancialmente aumenta uma vida útil do sistema de memória 100.
PERMUTAÇÕES DIFERENTES DE MODALIDADES EXEMPLIFICA- TIVAS REVELADAS
[00120] Uma primeira modalidade exemplificativa, conforme discutido no presente documento, inclui um método, o método compreende: em resposta à recepção de uma notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos, marcar a região como armazenando dados inválidos e controlar um tempo em que a região de células de armazenamento está em um estado de apaga- mento associado à substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição. A primeira modalidade exemplificativa pode ser implantada juntamente com qualquer de um ou mais dentre os recursos para produzir ainda as modalidades adicionais abaixo:
[00121] Em uma modalidade, o tempo representa uma quantidade de tempo em que as células de armazenamento são configuradas para um estado apagado antes de substituição subsequente pelos dados de substituição. Controlar o tempo pode incluir: atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição; a operação atrasada reduz o tempo abaixo de um valor limítrofe de tempo predeterminado.
[00122] As modalidades adicionais no presente documento podem incluir iniciar um temporizador substancialmente ao redor de um tempo de apagamento na região de células de armazenamento; monitorar o temporizador e utilizar a região de células de armazenamento apagada para armazenar os dados de substituição antes do temporizador al- cançar um valor de tempo limítrofe.
[00123] De acordo com as modalidades adicionais, atrasar a operação de apagamento dos dados inválidos pode incluir: monitorar uma necessidade por espaço de armazenamento no sistema de memória não volátil e apagar os dados inválidos na região de armazenamento em resposta à detecção de uma necessidade de armazenar os dados de substituição no sistema de memória não volátil.
[00124] De acordo ainda com outra modalidade do método, subsequente ao apagamento dos dados inválidos, as modalidades no presente documento incluem iniciar o armazenamento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para um estado apagado esteja abaixo do valor limítrofe de tempo predeterminado.
[00125] Controlar o tempo pode incluir adicionalmente reduzir uma taxa de perda de carga intrínseca associada aos dados de substituição armazenados nas células de armazenamento. A taxa de perda de carga intrínseca associada aos dados de substituição depende de uma quantidade de tempo em que as configurações das células de armazenamento foram configuradas para um estado de apagamento antes do armazenamento dos dados de substituição nas células de armazenamento.
[00126] Ainda nas modalidades adicionais, controlar o tempo associado à substituição dos dados inválidos pode incluir: manter as configurações das células de armazenamento em um estado programado anteriormente de armazenamento dos dados inválidos até receber um comando para apagar as células de armazenamento, o comando recebido em resposta à detecção de que uma banda-reserva no sistema de memória não volátil foi realocada como uma banda atual na qual armazena-se dados recém-recebidos e designar a região de células de armazenamento apagada como sendo a banda-reserva.
[00127] De acordo com outra modalidade, controlar as configurações das células de armazenamento na região para reduzir a perda de carga intrínseca pode incluir: receber um comando para modificar os dados inválidos nas células de armazenamento e, em resposta à recepção do comando, modificar uma porção menor que o todo das configurações das células de dados na região para um estado de não apagamento em que os dados inválidos são corrompidos.
[00128] Modificar uma porção menor que o todo de configurações das células de dados para o estado de não apagamento pode incluir: mudar as configurações de um primeiro grupo de células na região a partir de um primeiro estado de não apagamento para um segundo estado de não apagamento a fim de tornar os dados inválidos indisponíveis.
[00129] Controlar o tempo pode incluir, adicionalmente: reduzir o tempo de espera de apagamento abaixo de um valor limítrofe de tempo, atrasar uma operação de apagamento dos segundos dados não apagáveis nas células de armazenamento na região e substituir os segundos dados não apagáveis pelos dados de substituição.
[00130] As modalidades do método adicionais no presente documento podem incluir realizar um apagamento parcial da região para destruir os dados inválidos; pelo menos uma porção das células de armazenamento na região pode ser configurada para estados de não apagamento.
[00131] De acordo com as modalidades adicionais, controlar o tempo pode incluir: apagar a região de células de armazenamento para destruir os dados inválidos e programar a região de células de armazenamento com dados temporários antes da substituição dos dados temporários pelos dados de substituição.
[00132] Conforme discutido anteriormente, as modalidades do método podem incluir marcar a região como armazenando dados inválidos. Marcar a região pode incluir, adicionalmente: modificar dados armaze- nados em uma localização predeterminada na região para indicar que a região inclui dados inválidos. As modalidades do método podem incluir, adicionalmente, utilizar configurações dos dados na localização prede-terminada para determinar se a região armazena dados inválidos.
[00133] Uma segunda modalidade exemplificativa, conforme discutido no presente documento, inclui um aparelho, o aparelho compreende: um sistema de memória não volátil que inclui múltiplos dispositivos de memória não volátil e lógica de processamento configurada para: receber notificação de que os dados armazenados em uma região de células de armazenamento no sistema de memória não volátil armazenam dados inválidos; em resposta à notificação, marcar a região como armazenando dados inválidos, e controlar uma quantidade de tempo em que a região é configurada para um apagamento associado à substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição.
[00134] A segunda modalidade exemplificativa pode ser implantada juntamente com qualquer dentre um ou mais dos seguintes recursos a fim de produzir ainda as modalidades adicionais abaixo:
[00135] Em uma modalidade, o tempo representa uma quantidade de tempo em que as células de armazenamento são configuradas para um estado apagado antes de substituição subsequente pelos dados de substituição. A lógica de processamento pode ser configurada adicionalmente para atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição. A operação atrasada reduz o tempo abaixo de um valor limítrofe de tempo predeterminado.
[00136] De acordo com as modalidades adicionais, a lógica de processamento é configurada adicionalmente para: monitorar uma necessidade por espaço de armazenamento no sistema de memória não volátil e apagar os dados inválidos na região de armazenamento em res- posta à detecção de uma necessidade para armazenar os dados de substituição no sistema de memória não volátil.
[00137] Ainda nas modalidades adicionais, a lógica de processamento é configurada adicionalmente para: subsequente a apagar os dados inválidos, iniciar o armazenamento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para o um estado apagado esteja abaixo de um valor limítrofe de tempo predeterminado.
[00138] Em outra modalidade exemplificativa, a lógica de processamento é configurada adicionalmente para: reduzir uma taxa de perda de carga intrínseca associada aos dados de substituição armazenados nas células de armazenamento, em que a taxa de perda de carga intrínseca depende de uma quantidade de tempo, em que as configurações das células de armazenamento são configuradas para o estado de apagamento antes de armazenamento dos dados de substituição nas células de armazenamento.
[00139] Em uma modalidade adicional, a lógica de processamento é configurada adicionalmente para: manter as configurações das células de armazenamento em um estado programado anteriormente para armazenar os dados inválidos até receber um comando para apagar as células de armazenamento, em que o comando é recebido em resposta à detecção de que uma banda reserva no sistema de memória não volátil foi realocada como uma banda atual na qual armazena-se dados recém-recebidos.
[00140] A lógica de processamento pode ser configurada adicionalmente para: receber um comando para modificar os dados inválidos nas células de armazenamento e, em resposta à recepção ao comando, modificar uma porção menor das configurações das células de dados na região a um estado de não apagamento.
[00141] De acordo com modalidades adicionais, a lógica de proces- samento pode ser configurada adicionalmente para: mudar as configurações de um primeiro grupo de células na região de um primeiro estado de não apagamento para um segundo estado de não apagamen- to a fim de tornar os dados inválidos indisponíveis.
[00142] De acordo ainda com modalidades adicionais, a lógica de processamento pode ser configurada adicionalmente para: reduzir o tempo abaixo de um valor limítrofe de tempo, atrasar uma operação de apagamento dos segundos dados não apagáveis nas células de armazenamento na região e substituir os segundos dados não apagáveis pelos dados de substituição.
[00143] Ainda nas modalidades adicionais, a lógica de processamento pode ser configurada adicionalmente para: realizar um apaga- mento parcial da região para destruir os dados inválidos, pelo menos uma porção das células de armazenamento na região configurada para estados de não apagamento.
[00144] Em uma modalidade, a lógica de processamento é ainda configurada para: apagar a região de células de armazenamento para destruir os dados inválidos; e programar a região de células de armazenamento com dados temporários antes da substituição dos dados temporários pelos dados de substituição.
[00145] Um sistema de computador pode ser configurado para incluir o aparelho. Esse sistema de computador pode ser configurado para incluir hardware de processador de computador hospedeiro configurado para se comunicar com a lógica de processamento e armazenar os dados correspondentes no sistema de memória.
[00146] O sistema de memória não volátil, conforme discutido no presente documento, pode ser uma unidade de estado sólido à qual o sistema de computador tem acesso.
[00147] O sistema de computador, conforme discutido no presente documento, pode incluir, adicionalmente, uma tela de exibição para renderizar uma imagem baseada pelo menos em parte nos dados ar-mazenados correspondentes na unidade de estado sólido.
[00148] Uma terceira modalidade exemplificativa, conforme discutido no presente documento, inclui hardware de armazenamento legível por computador (meio de armazenamento legível por computador) que tem instruções armazenadas no mesmo, as instruções, quando executadas pelo hardware de processador de computador, fazem com que o hardware de processador de computador realize uma ou mais operações. As operações podem incluir, em resposta à recepção de uma notificação que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos, marcar a região como armazenando dados inválidos e controlar um tempo que a região de células de armazenamento está em um estado de apagamento associado à substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição.
[00149] A terceira modalidade exemplificativa pode ser implantada juntamente com qualquer um dentre um ou mais dos seguintes recursos para produzir ainda as modalidades adicionais abaixo:
[00150] De acordo com outra modalidade de meio de armazenamento legível por computador, o tempo representa uma quantidade de tempo em que as células de armazenamento são configuradas para um estado apagado antes da substituição subsequente pelos dados de substituição. Controlar o tempo pode incluir: atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição; a operação atrasada reduz o tempo abaixo de um valor limítrofe de tempo predeterminado.
[00151] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações pa ra: monitorar uma necessidade por espaço de armazenamento no sistema de memória não volátil e apagar os dados inválidos na região de armazenamento em resposta à detecção de uma necessidade de armazenar os dados de substituição no sistema de memória não volátil.
[00152] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações de: subsequente a pagar os dados inválidos, iniciar o armazenamento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para um estado apagado esteja abaixo de um valor limítrofe de tempo predeterminado.
[00153] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: reduzir uma taxa de perda de carga intrínseca associada aos dados de substituição armazenados nas células de armazenamento, em que a taxa de perda de carga intrínseca depende de uma quantidade de tempo na qual as configurações das células de armazenamento são configuradas para um estado de apagamento antes do armazenamento dos dados de substituição nas células de armazenamento.
[00154] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que sustentam operações para: manter as configurações das células de armazenamento em um estado anteriormente programado de armazenamento dos dados inválidos até receber um comando para apagar as células de armazenamento, o comando recebido em resposta à detecção de que uma banda-reserva no sistema de memória não volátil foi realocada como uma banda atual na qual armazena-se dados recém-recebidos e designar a região de células de armazenamento apagada como sendo a banda-reserva.
[00155] De acordo com outra modalidade, o meio de armazena- mento legível por computador inclui instruções que suportam operações para: receber um comando para modificar os dados inválidos nas células de armazenamento e, em resposta à recepção do comando, modificar uma porção menor que o todo das configurações das células de armazenamento na região que deve estar dentro de um estado de não apagamento em que os dados inválidos se tornam corrompidos.
[00156] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: mudar as configurações de um primeiro grupo de células na região a partir de um primeiro estado de não apagamento para um segundo estado de não apagamento para tornar os dados inválidos indisponíveis.
[00157] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: aumentar um valor limítrofe de apagamento associado às células de armazenamento e modificar as configurações das células de armazenamento de modo que se enquadrem dentro de uma faixa definida pelo valor limítrofe apagado aumentado.
[00158] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: realizar um apagamento parcial da região para destruir os dados inválidos.
[00159] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: apagar a região de células de armazenamento para destruir os dados inválidos e programar a região de células de armazenamento com dados temporários antes da substituição dos dados temporários pelos dados de substituição.
[00160] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações pa ra: reduzir uma taxa de perda de carga intrínseca associada aos dados de substituição armazenados nas células de armazenamento.
[00161] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: controlar o tempo abaixo de um valor limítrofe.
[00162] De acordo com outra modalidade, o meio de armazenamento legível por computador inclui instruções que suportam operações para: modificar dados armazenados em uma localização predeterminada na região para indicar que a região inclui dados inválidos e utilizar as configurações dos dados na localização predeterminada para determinar se a região armazena dados inválidos.
[00163] Uma quarta modalidade exemplificativa, conforme discutido no presente documento, inclui um sistema para gerenciar tempo, o sistema compreende: meios para receber notificação se os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos; meios para marcar a região como armazenando dados inválidos em resposta à notificação e meios para controlar uma quantidade de tempo em que a região é configurada para um apagamento associado à substituição subsequente dos dados inválidos nas células de armazenamento pelos dados de substituição.
[00164] A quarta modalidade exemplificativa pode ser implantada juntamente com qualquer um dentre um ou mais dos seguintes recursos para produzir ainda as modalidades adicionais abaixo:
[00165] Em uma ou mais modalidades exemplificativas, o tempo representa uma quantidade de tempo em que as células de armazenamento são configuradas para um estado apagado antes da substituição subsequente das células de armazenamento pelos dados de substituição. Controlar o tempo pode incluir: atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição; a operação atrasada reduz o tempo abaixo de um valor limítrofe de tempo predeterminado.
[00166] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para monitorar uma necessidade por espaço de armazenamento no sistema de memória não volátil e meios para apagar os dados inválidos na região de armazenamento em resposta à detecção de uma necessidade de armazenar os dados de substituição no sistema de memória não volátil.
[00167] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para iniciar, subsequente ao apa- gamento dos dados inválidos, armazenamento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para um estado apagado esteja abaixo do valor limítrofe de tempo predeterminado.
[00168] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para reduzir uma taxa de perda de carga intrínseca associada aos dados de substituição armazenados nas células de armazenamento, em que a taxa de perda de carga intrínseca depende de uma quantidade de tempo em que as configurações das células de armazenamento são configuradas para um estado de apagamento antes de armazenamento dos dados de substituição nas células de armazenamento.
[00169] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para manter as configurações das células de armazenamento em um estado anteriormente programado de armazenamento dos dados inválidos até receber um comando para apagar as células de armazenamento, o comando recebido em resposta à detecção de que uma banda-reserva no sistema de memória não volátil foi realocado como uma banda atual na qual armazena-se dados recém-recebidos e meios para designar a região de células de armazenamento apagada como sendo a banda-reserva.
[00170] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para receber um comando para modificar os dados inválidos nas células de armazenamento e meios para modificar uma porção menor que o todo das configurações das células de armazenamento na região de modo que estejam dentro de um estado de não apagamento em que os dados inválidos se tornam corrompidos em resposta à recepção do comando.
[00171] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para mudar as configurações de um primeiro grupo de células na região de um primeiro estado de não apagamento para um segundo estado de não apagamento para tornar os dados inválidos indisponíveis.
[00172] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para aumentar um valor limítrofe de apagamento associado às células de armazenamento e meios para modificar as configurações das células de armazenamento de modo que se enquadrem dentro de uma faixa definida pelo valor limítrofe de apagamento aumentado.
[00173] Em uma ou mais modalidades exemplificativas, o sistema compreende, adicionalmente: meios para realizar um apagamento parcial da região para destruir os dados inválidos.
[00174] Qualquer um dos recursos, conforme discutido no presente documento, podem incluir um ou mais dispositivos computadorizados, sistemas de computador, servidores, estações-base, equipamento de comunicação sem fio, sistemas de gerenciamento de comunicação, estações de trabalho, computadores portáteis ou do tipo laptop, etc., para realizar e/ou suportar qualquer uma ou todas as operações do método reveladas no presente documento. Em outras palavras, um ou mais dispositivos computadorizados ou processadores podem ser pro-gramados e/ou configurados para operar conforme explicado no presente documento a fim de realizar modalidades diferentes.
[00175] Ainda outras modalidades no presente documento incluem programas de software, firmware, lógica, etc., para realizar operações conforme revelado no presente documento. Essa modalidade compreende um produto de programa de computador que inclui um meio de armazenamento legível por computador não transitório (isto é, qualquer meio de armazenamento de hardware legível por computador) em que as instruções de software são codificadas para execução subsequente. As instruções, quando executadas em um dispositivo computadorizado que tem um ou mais processadores, programa e/ou faz com que o processador realize as operações reveladas no presente documento. Essas disposições podem ser fornecidas como software, firmware, código, instruções, dados (por exemplo, estruturas de dados), etc., arranjados ou codificados em um meio de armazenamento legível por computador não transitório como um meio óptico (por exemplo, CD-ROM), disquete, disco rígido, memória, etc., ou outro meio como firmware ou código curto em uma ou mais ROM, RAM, PROM., etc., ou como lógica em um Circuito integrado de Aplicação Específica (ASIC), etc. O software ou firmware ou outras configurações podem ser instaladas em um dispositivo computadorizado para fazer com que o dispositivo computadorizado realize as técnicas explicadas no presente documento.
[00176] Consequentemente, as modalidades no presente documento estão voltadas para um aparelho, um método, um sistema, um produto de programa de computador, etc., que suporta operações, conforme discutido no presente documento.
[00177] Uma modalidade inclui um meio de armazenamento legível por computador e/ou um sistema que tem instruções, lógica, etc., arma- zenadas no mesmo para gerenciar dados em um sistema de memória que inclui um ou mais dispositivos de memória não volátil. As instruções e/ou a lógica, quando executadas por pelo menos um dispositivo de processador de um respectivo computador, fazem com que o pelo menos um dispositivo de processador: receba notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos; em resposta à notificação, marcar a região como armazenando dados inválidos e controlar um tempo associado à substituição dos dados inválidos nas células de armazenamento por dados de substituição.
[00178] Observa-se que qualquer um dos processamentos, conforme discutido no presente documento, pode ser realizado em qualquer ordem adequada.
[00179] Deve ser compreendido que o aparelho, sistema, método, aparelho, as instruções na mídia de armazenamento legível por computador, etc., conforme discutido no presente documento, também podem ser empregados estritamente como um programa de software, firmware, como um híbrido de software, hardware e/ou firmware ou como hardware isoladamente como dentro de um dispositivo de processador, dentro de um sistema operacional ou dentro de um aplicativo de software, etc.
[00180] Adicionalmente, observa-se que, embora cada um dos recursos, técnicas, configurações diferentes, etc., na presente invenção podem ser discutidos em locais diferentes desta revelação, deseja-se, onde adequado, que cada um dos conceitos possa opcionalmente ser executado independentemente entre si ou em combinação entre si. Qualquer permutação dos recursos revelados é possível. Consequentemente, as uma ou mais modalidades, conforme descrito no presente documento, podem ser empregadas e vistas de várias maneiras diferentes.
[00181] Adicionalmente, observa-se que as técnicas no presente documento são bem adequadas para uso nos sistemas de memória que incluem um ou mais dispositivos de memória não volátil. No entanto, deve-se notar que as modalidades no presente documento não se limitam ao uso em tais aplicações e que as técnicas discutidas no presente documento são bem adequadas para outras aplicações também.
[00182] Embora os detalhes tenham sido mostrados, em particular, e descritos com referência às modalidades preferenciais dos mesmos, deve ser compreendido por aqueles versados na técnica que várias mudanças na forma e nos detalhes podem ser feitas nos mesmos sem que se afaste do espírito e escopo do presente pedido, conforme definido pelas reivindicações anexas. Tais variações são destinadas a ser cobertas pelo escopo deste presente pedido. Como tal, a descrição anterior de modalidades do presente pedido não se destina a ser limi- tante. Em vez disso, quaisquer limitações da invenção são apresentadas nas reivindicações seguintes.

Claims (28)

1. Método caracterizado pelo fato de que compreende: em resposta à recepção (810) de uma notificação de que dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam dados inválidos, marcar (820) a região como armazenando os dados inválidos; controlar um tempo (830) que a região de células de arma-zenamento está em um estado de apagamento associado com substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição; e em que controlar o tempo inclui: atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região, a operação atrasada reduzindo o tempo abaixo de um valor limítrofe de tempo predeterminado.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que controlar o tempo ainda inclui: subsequente a apagar os dados inválidos nas células de armazenamento na região, armazenar os dados de substituição nas células de armazenamento apagadas. .
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que atrasar a operação de apagamento dos dados inválidos inclui: monitorar uma necessidade de espaço de armazenamento no sistema de memória não volátil; e apagar os dados inválidos na região de armazenamento em resposta à detecção de uma necessidade de armazenar os dados de substituição no sistema de memória não volátil.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que ainda compreende: subsequente a apagar os dados inválidos, iniciar o armaze- namento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para um estado apagado esteja abaixo de um valor limítrofe de tempo predeterminado.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que controlar o tempo inclui: reduzir uma taxa de perda de carga intrínseca associada com os dados de substituição armazenados nas células de armazenamento, a taxa de perda de carga intrínseca dependendo de tempo no qual as configurações das células de armazenamento são configuradas para um estado de apagamento antes do armazenamento dos dados de substituição nas células de armazenamento.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que controlar o tempo inclui: manter as configurações das células de armazenamento em um estado programado anteriormente de armazenar os dados inválidos até receber um comando para apagar as células de armazenamento, o comando recebido em resposta à detecção de que uma banda reserva no sistema de memória não volátil foi realocada como uma banda atual na qual se armazena os dados recém-recebidos; e designar a região apagada de células de armazenamento como sendo a banda reserva.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: receber um comando para modificar os dados inválidos nas células de armazenamento; e em resposta à recepção do comando, modificar uma porção menor que o todo das configurações das células de armazenamento na região para ficar em um estado de não apagamento no qual os dados inválidos se tornam corrompidos.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que modificar a porção menor que o todo de configurações das células de armazenamento para o estado de não apagamen- to inclui: mudar as configurações de um primeiro grupo de células na região de um primeiro estado de não apagamento para um segundo es-tado de não apagamento para tornar os dados inválidos indisponíveis.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: aumentar um valor de tensão limítrofe de apagamento as-sociado com as células de armazenamento; e modificar as configurações das células de armazenamento para que se encontrem dentro de uma faixa definida pelo valor de tensão limítrofe de apagamento aumentado.
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: realizar um apagamento parcial da região para destruir os dados inválidos.
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que controlar o tempo inclui: apagar a região de células de armazenamento para destruir os dados inválidos; e programar a região de células de armazenamento com dados temporários antes da substituição dos dados temporários pelos dados de substituição.
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que controlar o tempo inclui: reduzir uma taxa de perda de carga intrínseca associada com os dados de substituição armazenados nas células de armazenamento.
13. Método, de acordo com a reivindicação 1, caracteriza-do pelo fato de que controlar o tempo inclui: controlar o tempo para que fique abaixo de um valor limítrofe.
14. Método, de acordo com a reivindicação 1, caracteriza-do pelo fato de que marcar a região inclui: modificar os dados armazenados em uma localização pre-determinada na região para indicar que a região inclui dados inválidos, o método ainda compreende: utilizar as configurações dos dados na localização predeterminada para determinar se a região armazena dados inválidos.
15. Método, de acordo com a reivindicação 1, caracteriza-do pelo fato de que controlar o tempo inclui: ativar um temporizador (555) para rastrear o tempo que a região de células de armazenamento está no estado apagado.
16. Método, de acordo com a reivindicação 1, caracteriza-do pelo fato de que ainda compreende: em resposta à detecção de que o temporizador (555) alcançou um valor limítrofe de tempo que indica que a região de células de armazenamento está no estado apagado por um tempo predeterminado, completar gravação de dados em qualquer porção não gravada da região de células de armazenamento.
17. Método, de acordo com a reivindicação 1 ou 16, carac-terizado pelo fato de que ainda compreende: subsequente a apagar os dados inválidos na região de células de armazenamento, gravar novos dados nas células de armazenamento na região em uma base conforme necessário conforme os novos dados fiquem disponíveis para armazenamento.
18. Aparelho para armazenar dados, o aparelho caracteri-zado pelo fato de que compreende: um sistema de memória não volátil que inclui múltiplos dispositivos de memória não volátil (220-1, 220-2, 220-3); e lógica de processamento configurada para: receber notificação de que dados armazenados em uma região de células de armazenamento no sistema de memória não volátil armazenam dados inválidos; em resposta à recepção da notificação, marcar a região como armazenando dados inválidos; e controlar um tempo que a região é configurada para um estado de apagamento associado com substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição, o tempo controlado abaixo de um valor limítrofe.
19. Aparelho, de acordo com a reivindicação 18, caracteri-zado pelo fato de que a lógica de processamento é ainda configurada para atrasar uma operação de apagamento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição, a operação atrasada reduzindo o tempo abaixo de um valor limítrofe de tempo.
20. Aparelho, de acordo com a reivindicação 19, caracteri-zado pelo fato de que a lógica de processamento é ainda configurada para: monitorar uma necessidade de espaço de armazenamento no sistema de memória não volátil; e apagar os dados inválidos na região de armazenamento em resposta à detecção de uma necessidade de armazenar os dados de substituição no sistema de memória não volátil.
21. Aparelho, de acordo com a reivindicação 20, caracteri-zado pelo fato de que a lógica de processamento é ainda configurada para: subsequente a apagar os dados inválidos, iniciar armaze- namento dos dados de substituição nas células de armazenamento da região para garantir que o tempo no qual as células de armazenamento são configuradas para um estado apagado esteja abaixo de um valor limítrofe de tempo.
22. Aparelho, de acordo com a reivindicação 19, caracteri-zado pelo fato de que a lógica de processamento é ainda configurada para: reduzir uma taxa de perda de carga intrínseca associada com os dados de substituição armazenados nas células de armazenamento, a taxa de perda de carga intrínseca dependendo de tempo no qual as configurações das células de armazenamento são configuradas para o estado de apagamento antes de armazenamento dos dados de substituição nas células de armazenamento.
23. Aparelho, de acordo com a reivindicação 18, caracteri-zado pelo fato de que a lógica de processamento é ainda configurada para: manter as configurações das células de armazenamento em um estado programado anteriormente de armazenar os dados inválidos até receber um comando para apagar as células de armazenamento, o comando recebido em resposta à detecção de que uma banda reserva no sistema de memória não volátil foi realocada como uma banda atual na qual se armazena os dados recém-recebidos.
24. Sistema de computador que inclui o aparelho, como definido na reivindicação 18, o sistema de computador caracterizado pelo fato de que ainda compreende: hardware de processador de computador hospedeiro configurado para se comunicar com a lógica de processamento e armazenar os dados correspondentes no sistema de memória.
25. Sistema de computador que inclui o aparelho, como definido na reivindicação 18, caracterizado pelo fato de que o sistema de memória não volátil é uma unidade de estado sólido à qual o sistema de computador tem acesso.
26. Sistema de computador, de acordo com a reivindicação 25, caracterizado pelo fato de que o sistema de computador ainda compreende: uma tela de exibição (130) na qual se renderiza uma imagem com base pelo menos em parte nos dados correspondentes armazenados na unidade de estado sólido.
27. Sistema caracterizado pelo fato de que compreende: meios para receber notificação de que os dados armazenados em uma região de células de armazenamento em um sistema de memória não volátil armazenam os dados inválidos; meios para marcar a região como armazenando os dados inválidos em resposta à recepção da notificação, e meios para controlar um tempo que a região de células de armazenamento fica em um estado de apagamento associado à substituição subsequente dos dados inválidos nas células de armazenamento por dados de substituição.
28. Sistema, de acordo com a reivindicação 24, caracteri-zado pelo fato de que os meios para controlar o tempo de espera para apagamento incluem: meios para atrasar uma operação de apaga- mento dos dados inválidos nas células de armazenamento na região e substituir os dados inválidos pelos dados de substituição, em que a operação atrasada reduz o tempo abaixo de um valor limítrofe de tempo predeterminado.
BR112015031202-0A 2013-07-16 2014-07-16 Método, aparelho para armazenar dados, sistema de computador e sistema para gerenciamento de apagamento em sistemas de memória BR112015031202B1 (pt)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BR122018075830-9A BR122018075830B1 (pt) 2013-07-16 2014-07-16 Sistema de memória, sistema de computador e meio legível por computador não-transitório

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/943,762 US9483397B2 (en) 2013-07-16 2013-07-16 Erase management in memory systems
US13/943,762 2013-07-16
PCT/US2014/046849 WO2015009827A1 (en) 2013-07-16 2014-07-16 Erase management in memory systems

Publications (2)

Publication Number Publication Date
BR112015031202A2 BR112015031202A2 (pt) 2017-07-25
BR112015031202B1 true BR112015031202B1 (pt) 2022-06-14

Family

ID=52344556

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112015031202-0A BR112015031202B1 (pt) 2013-07-16 2014-07-16 Método, aparelho para armazenar dados, sistema de computador e sistema para gerenciamento de apagamento em sistemas de memória
BR122018075830-9A BR122018075830B1 (pt) 2013-07-16 2014-07-16 Sistema de memória, sistema de computador e meio legível por computador não-transitório

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122018075830-9A BR122018075830B1 (pt) 2013-07-16 2014-07-16 Sistema de memória, sistema de computador e meio legível por computador não-transitório

Country Status (8)

Country Link
US (1) US9483397B2 (pt)
EP (2) EP3489956B1 (pt)
JP (1) JP6112595B2 (pt)
KR (1) KR101686376B1 (pt)
CN (2) CN110047546B (pt)
BR (2) BR112015031202B1 (pt)
RU (1) RU2638006C2 (pt)
WO (1) WO2015009827A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390003B2 (en) * 2013-12-09 2016-07-12 International Business Machines Corporation Retirement of physical memory based on dwell time
US9274866B2 (en) * 2013-12-09 2016-03-01 International Business Machines Corporation Programming non-volatile memory using a relaxed dwell time
US10019179B2 (en) 2015-10-16 2018-07-10 Toshiba Memory Corporation Memory device that writes data into a block based on time passage since erasure of data from the block
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
CN108664482B (zh) * 2017-03-27 2021-09-07 珠海极海半导体有限公司 Flash存储器及存储文件管理方法
KR102611345B1 (ko) * 2018-07-31 2023-12-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10628076B1 (en) * 2018-10-01 2020-04-21 Micron Technology, Inc. Data erasure in memory sub-systems
CN109920462B (zh) * 2019-03-01 2021-01-22 中国科学院微电子研究所 一种数据写入控制电路和控制方法
JP7132291B2 (ja) * 2020-08-31 2022-09-06 キオクシア株式会社 メモリシステムおよび制御方法
JP2020198128A (ja) * 2020-08-31 2020-12-10 キオクシア株式会社 メモリシステム
US11579772B2 (en) * 2020-11-25 2023-02-14 Micron Technology, Inc. Managing page retirement for non-volatile memory
US11734193B2 (en) * 2020-12-14 2023-08-22 Micron Technology, Inc. Exclusion regions for host-side memory address translation
CN112908392B (zh) * 2021-02-09 2023-09-15 东芯半导体股份有限公司 控制非易失性存储器参数的控制方法
US11550955B1 (en) * 2021-07-20 2023-01-10 Red Hat, Inc. Automatically anonymizing data in a distributed storage system
CN113835970B (zh) * 2021-10-09 2022-05-10 南阳理工学院 一种计算机存储器优化装置及其优化方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5808937A (en) * 1994-12-16 1998-09-15 National Semiconductor Corporation Self-convergent method for programming FLASH and EEPROM memory cells that moves the threshold voltage from an erased threshold voltage range to one of a plurality of programmed threshold voltage ranges
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
JP2004240660A (ja) * 2003-02-05 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性メモリ装置の制御方法
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7873885B1 (en) * 2004-01-20 2011-01-18 Super Talent Electronics, Inc. SSD test systems and methods
US20060002197A1 (en) 2004-06-30 2006-01-05 Rudelic John C Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US7783845B2 (en) * 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
KR100848315B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 이중 저널링을 이용한 데이터 저장 공간 확보 방법
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
JP4461170B2 (ja) * 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US7907449B2 (en) * 2009-04-09 2011-03-15 Sandisk Corporation Two pass erase for non-volatile storage
US8166233B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
TWI457940B (zh) 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
RU90233U1 (ru) * 2009-08-31 2009-12-27 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Накопитель с контролем местоположения
EP2299363B1 (fr) * 2009-09-21 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de nivellement de l'usure dans une mémoire non volatile
US8271719B2 (en) 2009-10-29 2012-09-18 Freescale Semiconductor, Inc. Non-volatile memory controller device and method therefor
US8296506B2 (en) 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
TWI489466B (zh) 2011-06-15 2015-06-21 Phison Electronics Corp 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
JP4988054B2 (ja) * 2011-08-12 2012-08-01 株式会社東芝 メモリシステム
WO2013030866A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
US9274937B2 (en) * 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations

Also Published As

Publication number Publication date
KR20160003720A (ko) 2016-01-11
US9483397B2 (en) 2016-11-01
CN110047546A (zh) 2019-07-23
EP3022740B1 (en) 2019-03-06
EP3022740A4 (en) 2017-03-08
US20150026386A1 (en) 2015-01-22
CN105340020B (zh) 2019-08-20
JP6112595B2 (ja) 2017-04-12
EP3489956A1 (en) 2019-05-29
RU2015154180A (ru) 2017-06-21
EP3489956B1 (en) 2021-09-08
JP2016525240A (ja) 2016-08-22
RU2638006C2 (ru) 2017-12-08
CN105340020A (zh) 2016-02-17
WO2015009827A1 (en) 2015-01-22
BR112015031202A2 (pt) 2017-07-25
CN110047546B (zh) 2023-04-04
BR122018075830B1 (pt) 2023-11-07
KR101686376B1 (ko) 2016-12-13
EP3022740A1 (en) 2016-05-25

Similar Documents

Publication Publication Date Title
BR112015031202B1 (pt) Método, aparelho para armazenar dados, sistema de computador e sistema para gerenciamento de apagamento em sistemas de memória
US11967369B2 (en) Lifetime mixed level non-volatile memory system
US20210073120A1 (en) Directed sanitization of memory
TWI507871B (zh) 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統
US8732388B2 (en) Embedded mapping information for memory devices
CN111752487B (zh) 一种数据恢复方法、装置及固态硬盘
US20100205354A1 (en) Storage device using flash memory
KR101103110B1 (ko) 메모리 시스템
KR100672996B1 (ko) 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
KR101090394B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
KR20120081351A (ko) Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
WO2018188618A1 (zh) 固态硬盘访问
JPWO2011118114A1 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2008181203A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
TWI354892B (en) Method of immediate data update with flash memory
JP2009211202A (ja) メモリシステム
JP2003263894A (ja) 不揮発性半導体メモリ装置の制御方法
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法
JP6037116B2 (ja) 記憶制御装置及び記憶制御プログラム
JP2010079860A (ja) 記憶装置およびメモリ制御方法
JP2009211188A (ja) メモリシステム

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 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 16/07/2014, OBSERVADAS AS CONDICOES LEGAIS