BR112013033196B1 - Processo de gestão da durabilidade de um sistema de armazenagem de dados e dispositivo para aplicação do processo - Google Patents

Processo de gestão da durabilidade de um sistema de armazenagem de dados e dispositivo para aplicação do processo Download PDF

Info

Publication number
BR112013033196B1
BR112013033196B1 BR112013033196-8A BR112013033196A BR112013033196B1 BR 112013033196 B1 BR112013033196 B1 BR 112013033196B1 BR 112013033196 A BR112013033196 A BR 112013033196A BR 112013033196 B1 BR112013033196 B1 BR 112013033196B1
Authority
BR
Brazil
Prior art keywords
sector
sectors
durability
work
memory
Prior art date
Application number
BR112013033196-8A
Other languages
English (en)
Other versions
BR112013033196A8 (pt
BR112013033196A2 (pt
Inventor
Samuel Charbouillot
Yves Fusella
Stéphane Ricard
Original Assignee
Starchip
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 Starchip filed Critical Starchip
Publication of BR112013033196A2 publication Critical patent/BR112013033196A2/pt
Publication of BR112013033196A8 publication Critical patent/BR112013033196A8/pt
Publication of BR112013033196B1 publication Critical patent/BR112013033196B1/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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

processo de gestão da resistência de memórias não voláteis. a invenção se refere a um processo de gestão da resistência de um sistema de armazenagem de dados provido de um conjunto de setores oriundos de uma capacidade de resistência nativa garantida (g), comportando as etapas que consistem em : - dividir esse sistema de armazenagem de dados em uma pluralidade de setores de trabalho, e em uma pluralidade de setores de substituição, aptos a formarem um reservatório de resistência, certos setores de trabalho sendo destinados a serem substituídos por setores de substituição, quando esses setores de trabalho estão usados, após um certo número de ciclos de programação e/ou apagamento ; - definir uma zona de gerenciamento de endereços, permitindo encontrar o local dos setores de substituição afetados a setores de trablhos usados ; - determinar, setor por setor, se um setor de trabalho corrente está fisicamente usado, e executar uma etapa de substituição desse setor de trabalho por um setor de substituição, unicamente quando esse setor de trabalho corrente é declarado fisicamente usado. esse processo de gestão de resistência é notadamente caracterizado pelo fato de, para medir o uso de um setor, se proceder a uma leitura automática da qualidade de apagamento dos pontos da memória do setor em relação um critério de leitura rigoroso (margin vref), isto é, mais rigoroso que um critério normal (normal vref).

Description

[0001] A invenção se refere a um novo processo de gestão da durabilidade destinado a dispositivos de armazenagem de dados, tais como, por exemplo, memórias não voláteis e, em particular, as memórias não voláteis, utilizáveis em aplicações embarcadas. Esse processo, mesmo que se baseie em determinados mecanismos conhecidos de gestão da durabilidade, propõe uma nova maneira de utilizá-los para se obter um melhor resultado do que os processos anteriores. Ele tem também por finalidade propor uma solução muito onerosa e que não necessita de memória particular.
Contexto da invenção
[0002] No domínio das memórias informáticas, as memórias não voláteis se caracterizam pelo fato de poderem conservar seu conteúdo, mesmo quando elas não são mais alimentadas. Todavia, uma das características limitativas dessas memórias não voláteis é sua capacidade de durabilidade.
[0003] Define-se a capacidade de durabilidade como o número de vezes que se pode apagar e reescrever um compartimento de memória, antes que esta não esteja mais em condições de ser utilizada corretamente. Uma vez “degradado”, o compartimento de memória pode apresentar seja problemas de estabilidade dos valores armazenados, seja mais simplesmente não restituir à leitura o valor que foi previamente escrito.
[0004] A presente invenção se liga mais especificamente em melhorar a capacidade de durabilidade dos dispositivos de armazenagem de dados, conforme será descrito em particular no caso das memórias não voláteis.
A capacidade de durabilidade das memórias não voláteis
[0005] Segundo o tipo de memória não volátil (E2PROM, FLASH, MRAM, ), a capacidade de durabilidade é muito variável. Pode-se falar de alguns milhares de ciclos de apagamento / escritura sobre determinadas memórias FLASH até algumas centenas de milhares de ciclos de programação e de apagamento sobre as melhores dentre elas (FLASH ou E2PROM).
[0006] Essa capacidade de durabilidade é evidentemente função do tipo de memória (por exemplo, uma memória E2PROM é frequentemente melhor do que uma memória FLASH do ponto de vista da durabilidade) do processo tecnológico de fabricação empregado (por exemplo, um processo que utiliza uma finura de gravura de 0.09 μm), mas ela é também muito variável de compartimento memória de compartimento memória (no caso das memórias FLASH, por exemplo, fala-se, por outro lado, de setor de memórias mais do que de compartimento memória).
[0007] Para uma tecnologia determinada, um fabricante deverá garantir uma capacidade de durabilidade mínima (por exemplo, de 10000 ciclos). Essa capacidade de durabilidade é denominada “durabilidade nativa” ou “durabilidade garantida G”. Na realidade, isto voltará a assegurar que o “pior” dos setores pode suportar, por exemplo, 10 000 ciclos. Os outros setores poderão suportar capacidades bem acima de 10000 ciclos com uma variabilidade que pode leva-las, às vezes, a várias centenas de milhares até mesmo de milhões de ciclos.
[0008] Essa variabilidade da capacidade de durabilidade segue uma distribuição estatística dita de « de Weibull ». Tradicionalmente, os dispositivos de gestão de durabilidade não procuram tirar partido dessa divisão estatística. Uma das finalidades dessa invenção será de tirar partido dessa divisão estatística da capacidade de durabilidade das memórias não voláteis.
Necessidade de durabilidade das aplicações
[0009] Segundo o tipo de utilização da memória não volátil, a necessidade de durabilidade é extremamente variável, conforme mostram os exemplos abaixo.
Armazenagem permanente de programa
[0010] Se a NVM (« Non Volatile Memory» em terminologia anglo-saxônica, ou memória não volátil) armazena um programa destinado a ser executado por um microprocessador (é o caso do programa nos sistemas embarcados), a necessidade de durabilidade é muito baixa, já que esse programa não vai quase mudar no decorrer do tempo. Historicamente, esse tipo de conteúdo era armazenado na memórias ROM (não modificável), o que explica que a necessidade de durabilidade seja muito baixa.
Armazenagem de arquivos
[0011] É o caso típico, por exemplo, das memórias de tipo « Solid State Drive » (SSD) muito utilizadas atualmente nos computadores de escritório ou computadores portáteis, as chaves USB ou os MP3. Para esse tipo de aplicação, a necessidade de durabilidade é elevada, mas sem regra de utilização definível a priori. Todos os setores da memórias SSD têm a priori de um ponto de vista estatístico a mesma necessidade de durabilidade com uma exceção, todavia, para a tabela de alocação dos arquivos que vai ser atualizada cada vez que um arquivo é modificado e, portanto, vai ter uma necessidade de durabilidade bem mais elevada. Deve ser observado que, caso se armazene um sistema de exploração sobre uma memória de tipo SSD, se terá uma necessidade de durabilidade bem baixa para essa zona, mas não detectável a priori, portanto, não explorável para reduzir a necessidade de durabilidade. Tipicamente, a granularidade dos arquivos nos sistemas de armazenagem de arquivos é da ordem de 4 quilo-octetos.
Armazenagem de dados
[0012] No domínio das aplicações embarcadas, por exemplo, o microprocessador vai necessitar cada vez mais da zona de armazenagem de programa, uma zona de armazenagem de dados. Pode-se encontrar nessa zona um sistema de armazenagem de arquivos (como no exemplo precedente), mas também dos objetos de programas utilizados para o funcionamento corrente (« buffers » ou zons tampões de comunicações, dados de trabalho, etc...) Esses objetos se caracterizam, em geral, por um tamanho pequeno (da ordem de grandeza de uma ou de várias palavras CPU até alguns quilo-octetos), mas com uma necessidade de durabilidade extremamente elevada. Deve ser observado que a tabela de alocação dos arquivos do caso precedente (armazenagem de arquivos) pode muito bem entrar nessa definição. A granularidade dos dados vai ser aqui da ordem da palavra CPU (tipicamente 16, 32 ou 64 bitas).
[0013] Mais uma vez, uma das finalidades dessa invenção será de tirar partido das características intrínsecas dos diferentes tipos de armazenagem para poder melhorar muito a eficácia da gestão de durabilidade. Um exemplo de implementação não limitativo será proposto no caso de sistemas embarcados que integram uma CPU e uma memória não volátil.
Estado da técnica
[0014] Conhece-se já um certo número de processos de gestão da durabilidade das memórias não voláteis. Sem ser exaustivo, vai-se lembrar de certos, assim como suas principais características.
A correção de erro (ECC)
[0015] Esse processo consiste em acrescentar a cada palavra de memória uma extensão de ECC(« Error Correction Code »). Isto permite corrigir erros de tipo unitário, ditos de « single bit fail » em terminologia anglo-saxônica, que são típicos dos problemas de retenção ou durabilidade.
[0016] A correção de erro tem, dentre suas vantagens, o fato de permitir multiplicar a durabilidade nativa de cada setor de memória por um fator multiplicativo (2 a 4). Ela pode também auxiliar a resolução de outros tipos de problemas (como, por exemplo, uma melhor resistência às perturbações e melhor retenção, etc). Além diso, é um processo local antes de tudo simples que não necessita de memória RAM suplementar. Ele necessita apenas de um codificador / decodificador de ECC, apresentando um baixo custo em portas lógicas.
[0017] Ao contrário, a correção de erros tem também uma série de inconvenientes. Assim, é um processo muito caro em memória não volátil adicional : tipicamente 25 % da memória não volátil total podem ser ocupados pelo ECC. Além disso, só uma implementação material é possível. O sobrecusto material deve ser pago sobre cada palavra memória, independentemente da necessidade real de durabilidade. Uma correção sobre mais de um bit pode ser considerada, mas a custos proibitivos.
[0018] Em resumo, o ECC é, portanto, um sistema simples de utilizar, permitindo melhorar a durabilidade nativa das memórias não voláteis de maneira artificial, mas a preço de um custo na superfície adicional de silício importante.
A substituição de setores memória (« Sector Sparing »)
[0019] Nesse processo, acrescenta-se à memória não volátil um certo número de setores que vão servir para substituir os setores fora de uso. Será necessário utilizar uma tabela de translação de endereços para aceder aos setores substituídos em seu novo local.
[0020] É uma solução que foi abundantemente utilizada sobre os circuitos controladores de discos rígidos, isto seria apenas para gerir os setores degradados, na origem ou no decorrer do tempo.
[0021] Dentre as vantagens desse processo, pode-se citar o fato de ser uma solução possível de usar por um software. Pode-se decidir o número de setores adicionais em função da necessidade de substituição visada (o processo é dito modulável, ou ainda « scalable » em terminologia anglo-saxônica). Dentre os inconvenientes desse processo, observa-se que ele necessita de usar um critério para determinar que um setor está degradado. Habitualmente, utiliza-se um medidor de ciclos e compara-se sua saída com a garantia de durabilidade G determinada pelo fornecedor da memória. Além disso, esse processo não será suficiente, caso a maioria dos setores tenha uma necessidade de durabilidade superior à durabilidade nativa, já que o número de setores adicionais é limitado. Esse processo é, portanto, sobretudo adaptado a um pequeno número de predadores de durabilidade.
[0022] Por outro lado, será preciso salvaguardar (ou recriar) a tabela de translação de endereços em caso de corte de corrente. Convém, portanto, prever a memória não volátil adicional para isso. O ganho em durabilidade é globalizado e limitado a N * durabilidade nativa na qual N é o número de setores adicionais. Além disso, esse processo se torna rapidamente mais complexo, caso seja preciso organizar substituições de setores já substituídos.
[0023] Em definitivo, é um processo com desempenho, relativamente pouco caro em material e em desempenhos CPU, mas cuja capacidade de durabilidade adicional é limitada pelo número de setores de substituição alocados. Esse sistema é, por exemplo, descrito no doc 2004/0057316 A1.
A repartição do consumo de durabilidade (« Wear Leveling »)
[0024] Esse processo de gestão de durabilidade consiste em tentar repartir da maneira a mais homogênea possível a necessidade de durabilidade sobre um máximo de setores, a fim de poder aproveitar a durabilidade nativa de todos. Para isto, a técnica geral consiste em escrver o novo conteúdo de um setor em um setor livre, depois em invalidar o antigo setor que se torna, por sua vez, livre para uma próxima operação. Essa tabela de alocação bem complexa é necessária para armazenar as novas localizações dos setores.
[0025] Há duas declinações possíveis conhecidas desse processo : • « Wear Leveling » dinâmico : no « Wear Leveling » dinâmico, utilizam-se apenas os setores ativos (aqueles que são atualizados regularmente) mais um setor de substituição para as rotações. Isto limita a capacidade de durabilidade a um subconjunto da memória. Esse processo é muito utilizado nas chaves USB. Esse processo é descrito notadamente no doc « US 2007/0294490 A1 (Freitas et al.) » ; • « Wear Leveling » estático : no caso, além do « Wear Leveling » dinâmico, trocam-se de tempos em tempos setores ativos com setores inativos para aumentar a capacidade de durabilidade. Esse processo é aplicado, por exemplo, nas memórias de tipo SSD, mas é bem mais complexo.
[0026] Dentre as vantages do « Wear Leveling », anota-se que ele permite teoricamente ter uma durabilidade global igual à soma da durabilidade nativa de TODOS os setores da memória. Esse método dá, portanto, o mais alto nível de durabilidade possível. Ele permite tratar um grande número de predadores de durabilidade. E é uma solução possível de aplicar em programa.
[0027] Dentre os inconvenientes desse processo, observa-se que, na prática, a durabilidade global é limitada aos setores ativos (para o « Wear Leveling » dinâmico). Caso contrário, é preciso organizar a rotação de setores inativos, o que aumenta muito a complexidade dos algoritmos, conforme no caso do « Wear Leveling » estático. Além disso, há uma baixa de desempenhos de acesso à memória, quando da rotação dos setores inativos ou a identificação de períodos nos quais a rotação pode ser feita em tempo oculto.
[0028] Por outro lado, a falta de direção de endereço sendo generalizada a qualquer memória, esse processo afeta também os desempenhos de leitura e de execução de código (dita « fetch »), caso o código fique contido na memória Flash e não somente os desempenhos de leitura de dados (dita « data read »). Além disso, a necessidade de memórias RAM é muito importante para armazenar as novas localizações de setores. Além disso, esse processo impõe a necessidade absoluta de saber recriar a tabela de alocação ao acionamento do circuito e, portanto, armazenar seu conteúdo na memória não volátil de uma maneira ou de outra. A rotação dos setores sendo homogênea, o processo vai parar, quando o menos importante dos setores implicados na rotação vai atingir seu limite de durabilidade nativo.
Inconvenientes do estado da técnica.
[0029] Em resumo, conforme se constata, nenhum dos processos de gestão de durabilidade conhecidos sabe tirar partido de maneira fina e granular das características intrínsecas de durabilidade das memórias, nem das diferenças de necessidade de durabilidade, em função das aplicações visadas para as memórias. Cada um dos processos conhecidos se baseia em características fixas, como um alisamento sistemático da necessidade de durabilidade global da aplicação em uma pluralidade de setores (wear-leveling), ou certamente uma substituição de setores, em função de um critério (« sector sapring »), mas nenhum tenta tirar partido da dispersão importante da capacidade de durabilidade por setor (curva de Weibull) ou muitas necessidades intrínsecas de durabilidade das aplicações.
Finalidade da invenção
[0030] [1] Uma finalidade geral da invenção é, por conseguinte, propor um processo de gestão da durabilidade de uma memória não volátil que esteja em condições de prevenir os inconvenientes dos processos de gestão de durabilidade conhecidos, a fim de melhorar a durabilidade global de uma memória.
[0031] [2] Uma outra finalidade da invenção é de utilizar o sistema de gestão de durabilidade e, em particular, de extração da capacidade real de durabilidade de cada setor para limitar o estresse aplicado às células memórias, quando do apagamento e assim aumentar naturalmente a capacidade real de durabilidade de todos os setores utilizados.
[0032] [3] Uma finalidade mais específica da invenção é de propor um processo de gestão da durabilidade de uma memória apta a utilizar o limite real, físico, de durabilidade de cada setor de memória em tempo real, a fim de tirar o máximo de durabilidade possível de cada setor, sem a priori sobre o limite real deste ou sem utilizar as garantias de durabilidade fornecidas pelos fabricantes.
[0033] [4] Uma outra finalidade da invenção é de considerar as necessidades específicas de durabilidade das aplicações para se obter uma adequação entre a capacidade de durabilidade da memória e a necessidade real das aplicações.
[0034] [5] Uma outra finalidade da invenção é de conceber um processo e um sistema extremamente barato na superfície silício em relação aos sistemas convencionais, tais como aquele em US 2004/0057316 A1, oferecendo melhor eficácia.
[0035] [6] Uma outra finalidade da invenção é de poder conseguir um processo e um sisteam completamente transparente para o usuário final (a CPU) e cuja penalidade sobre os desempenhos de acesso é quase desprezível.
[0036] [7] Uma outra finalidade da invenção é de poder se livrar de uma memória não volátil especialmente desenvolvida para gerar a durabilidade, mas, ao contrário, utilizar uma memória perfeitamente genérica.
[0037] [8] Uma outra finalidade da invenção é conseguir um sistema modulável, ou ainda « escalável » em terminologia anglo-saxônica,a fim de deixar ao usuário final (a CPU) o cuidado de fazer uma escolha entre a capacidade de durabilidade ou memória utilizável.
Sumário da invenção
[0038] Essas finalidades são atingidas pelo processo de gestão de durabilidade, de acordo com a invenção.
[0039] A invenção utiliza um processo de gestão clássico da durabilidade dos sistemas de armazenagem de dados, fazendo apelo a um conjunto de setores saídos de uma capacidade de durabilidade nativa (G) garantida pela fundição, de uma pluralidade de setores de trabalho, e de uma pluralidade de setores de substituição aptos a formarem um reservatório de durabilidade, certos setores de trabalho sendo destinados a serem substituídos por setores de substituição, quando esses setores de trabalho estão degradados, após um certo número de ciclos de programação e/ou de apagamento. A invenção utiliza também uma zona de gerenciamento da memória não volátil, permitindo armazenar as informações referentes aos setores degradados, assim como seus substituintes (é a tabela de translação). Um processo básico de « sector sparing » é, por exemplo, descrito em « US 2004/0057316 A1 » e retomado no caso no parágrafo « Estado da Técnica ». Pode ser esquematizado pela figura 2.
[0040] Classicamente, nesse tipo de processo, encontra-se uma etapa de detecção de apagamento não de acordo com um setor 22, seguida de uma etapa de substituição do setor degradado por um setor de substituição 25.
[0041] A presente invenção se propõe a melhorar o processo e o algoritmo de base de « sector sparing » por um certo número de meios adicionais que são resumidos abaixo.
[0042] Um primeiro meio adicional consiste em efetuar a etapa de apagamento 22 de maneira particular, segundo três métodos considerados.
[0043] Um primeiro método para fazer isto poderia consistir em verificar de maneira automática, por exemplo, por uma máquina de estado (figura 6) que todos os compartimentos memória do setor apagado tenham bem um valor conforme o apagamento, utilizando comandos de leitura normal. Esse método tem, todavia, a desvantagem de não detectar os valores limites de apagamento, dos quais certos bits poderiam mudar de estado por fenômenos de má retenção.
[0044] Um segundo método consistirá em utilizar o mecanismo automático do método precedente, repetindo várias vezes a leitura 60 da figura 6, a fim de aprisionar uma eventual instabilidade (« Retry » em terminologia anglo-saxônica).
[0045] Um terceiro método consistirá em utilizar o mecanismo automático do primeiro método, utilizando desta vez uma leitura em modo rigoroso (« Margin mode ») para a etapa 60 da figura 6, quando esse modo está disponível sobre a memória. Esse método rigoroso, conhecido como tal e frequentemente utilizado em teste das memórias não voláteis para triar os setores não de acordo com uma especificação de fabricação (« Yield » em terminologia anglo-saxônica), poderá ser utilizado no caso de forma inovadora para detectar uma fraqueza do setor antes que não esteja completamente degradado. Em outros termos, quando uma verificação é corretamente efetuada nesse modo rigoroso, pode-se garantir que a leitura do setor passará sempre de maneira correta em modo normal. Isto permite, portanto, se livrar dos problemas de retenção descritos no primeiro método.
[0046] Independentemente disso, esses três métodos permitem extrair de cada setor o máximo de durabilidade, sem considerar o valor de durabilidade garantida G ou de qualquer outro critério fixo (um valor de referência, por exemplo). Isto permite atingir a finalidade [3] da invenção e adaptar o processo de « sector sparing » à especificidade da curva de Weibull, extraindo de cada setor o máximo de durabilidade possível. A simplicidade e o baixo custo da máquina de estado de verificação permite também atingir a finalidade [5] (baixo custo), assim como [6] (transparência e baixa penalidade em desempenhos).
[0047] Um segundo meio adicional acumulado com o precedente consiste em uma máquina de estado (figura 5), que permite recortar o tempo de apagamento prescrito pelo fabricante (isto é,o tempo durante o qual uma fonte de alta tensão é aplicada sobre os pontos memória do setor para apagá-los). Esse segundo meio permite verificar em pontos temporais intermediários, caso a qualidade de apagamento seja suficiente para poder parar o procedimento de apagamento. Isto permite limitar o estresse devido ao apagamento sobre os pontos memória e assim aumentar significativamente a capacidade de durabilidade intrínseca do setor considerado, o que permite atingir a finalidade [2]. A simplicidade e o baixo custo da máquina de estado, gerando o recorte do tempo de apagamento, permite também satisfazer a finalidade [5] (baixo custo), assim como [6] (transparência e baixa penalidade em desempenhos). Ele permite, além disso, ter em média um tempo de apagamento bem menor que a prescrição da fundição, já que a maior parte do tempo, somente uma fração do tempo de apagamento prescrito será necessário para apagar corretamente o setor.
[0048] A invenção prevê um terceiro meio adicional que consiste em adaptar o algoritmo de « sector sparing » às necessidades específicas das aplicações (finalidade [4]). Uma implementação particular desse terceiro meio permite se adaptar às necessidades específicas do mundo das aplicações embarcadas. Essas aplicações se caracterizam frequentemente por uma necessidade extremamente forte de durabilidade sobre um pequeno número de setores e uma necessidade média, até baixa, sobre os outros setores. O primeiro e o segundo meios contribuem já fortemente para as necessidades de durabilidade baixas e intermediárias, maximizando a capacidade intrínseca de durabilidade de todos os setores. Para as necessidades fortes de durabilidade, a invenção prevê, portanto, esse terceiro meio adicional, permitindo efetuar substituições múltiplas do mesmo setor de origem. Assim, a capacidade intrínseca de tantos setores que será preciso ser adicionada para cobrir a necessidade de durabilidade elevada e isto até não ter mais setor de substituição disponível.
[0049] Em uma primeira implementação desse terceiro meio, isto é tornado possível, pois se utiliza uma memória perfeitamente genérica, de estrutura regular (finalidade [7]), na qual não há diferença física entre um setor de origem e um setor de substituição). Assim, um setor de substituição tendo substituído um setor de origem pode, por sua vez, se tornar um setor de origem para uma próxima substituição. Conforme mostra a figura 7, isto é obtido, utilizando-se uma zona de gerenciamento da memória não volátil 7, onde cada elemento da zona é específico a um setor substituído e representa o endereço do setor de substituição. Poder-se-á, portanto, seguindo-se um encaminhamento das substituições sucessivas de um setor de origem, acabar por chegar à última versão do setor de origem, após múltiplas substituições. Nessa implementação, poder-se-á encontrar a última versão de um setor substituído no momento em que a CPU acede ao setor de origem.
[0050] Em uma segunda implementalçaio mais otimizada desse terceiro meio, poder-se-á reconstruir o encaminhamento ao acionamento do circuito e armazenar em uma RAM o atalho do setor de origem e o último setor de substituição. Essa segunda versão da implementação é mais cara que a primeira, já que ela utiliza uma RAM adicional. Ao contrário, ela permite respeitar a finalidade [6] (transparência e baixa penalidade de acesso).
[0051] Um quarto meio adcional consiste em assegurar a criação da zona de disposição da memória não volátil. Essa zona é escrita a cada substituição para armazenar, em um elemento consagrado ao setor substituído, o endereço do setor a substituir. Perder o conteúdo dessa zona voltaria, portanto, a tornar a memória inutilizável. Esse quarto meio utiliza um mecanismo de segurança para se pré-munir da perda de alimentação que poderia levar a uma corrupção da zona de gerenciamento. Esse mecanismo consiste em efetuar o algoritmo, de acordo com a figura 7. A primeira etapa desse mecanismo consiste em escrever o endereço do setor de origem 73 em uma primeira zona de assinatura 72.
[0052] Em seguida, uma assinatura de fim de escritura 74 é escrita, a fim de assegurar a validade do endereço anteriormente programada.
[0053] Uma vez essas duas etapas efetuadas, o elemento 75 da zona de gerenciamento 70 associado ao setor substituído é carregado com o endereço do setor de substituição.
[0054] A fim de validar esta última operação uma assinatura de fim de substituição 76 será de novo programada em uma segunda zona de assinatura 71).
[0055] Esse mecanismo sendo sequenciado no tempo, no caso de uma perda de alimentação, uma única etapa será corrompida. Assim, será fácil determinar a etapa em que o algoritmo terminou e retomá-la a fim de concluí-la.
[0056] De maneira geral, a adjunção ao algoritmo de « setor sparing » clássico de um ou de vários desses quatro meios adicionais permite notadamente adaptar esse algoritmo às necessidades particulares das memórias embarcadas tanto em termos de capacidade elevada de durabilidade, de segurança de funcionamento, de baixa penalidade de tempo de acesso e de esforço de baixo custo.
[0057] O conjunto das finalidades [1] a [8] é atingido pelo processo, de acordo com a invenção, aí compreendidas as exigências de utilização de memória genérica, já que o conjunto dos dispositivos não requer nenhuma característica particular da memória. Além disso, o objetivo [8] de sistema escalável é também atingido, já que o limite entre setores de origem e setores de substituição pode ser determinada pelo usuário final (a CPU).
[0058] Em definitivo, a invenção tem por objeto um processo de gestão da durabilidade de um sistema de armazenagem de dados provido de um conjunto de setores saídos de uma capacidade de durabilidade nativa garantida (G), comportando as etapas que consistem em: - dividir esse sistema de armazenagem de dados em uma pluralidade de setores de trabalho, e em uma pluralidade de setores de substituição, aptos a formar um reservatório de durabilidade, certos setores de trabalho sendo destinados a serem substituídos por setores de substituição, quando esses setores de trabalho estão degradados, após um certo número de ciclos de programação e/ou apagamento; - definir uma zona de gerenciamento de endereços, permitindo encontrar o local dos setores de substituição afetados a setores de trabalhos degradados; - determinar, setor por setor, se um setor de trabalho corrente está fisicamente degradado, e executar uma etapa de substituição desse setor de trabalho por um setor de substituição, unicamente quando esse setor de trabalho corrente é declarado fisicamente degradado; - esse processo sendo caracterizado pelo fato de, para medir a degradação de um setor, se proceder a uma leitura automática da qualidade de apagamento dos pontos da memória do setor em relação um critério de leitura rigoroso (Margin Vref.), isto é, mais rigoroso que um critério normal (normal Vref.), esses critérios rigorosos e normal sendo tais como descritos depois.
[0059] Se a leitura ocorrer de maneira correta em modo rigoroso, isto permitirá garantir que a leitura do setor ocorra sempre de maneira correta em modo normal.
[0060] De acordo com uma variante vantajosa do processo, um pulso de apagamento único de um setor é substituído por vários pulsos mais breves aplicados, de forma sequencial, e um teste de qualidade de apagamento é praticado após cada pulso, um setor de memórias de trabalho sendo declarado degradado, caso esses testes de qualidade permaneçam negativos, após um número máximo pré-definido de pulsos e de testes.
[0061] Dessa maneira, limita-se o estresse devido ao apagamento sobre os pontos memória e aumenta-se significativamente a capacidade de durabilidade intrínseca do setor considerado.
[0062] Idealmente, utiliza-se uma memória perfeitamente genérica de estrutura regular onde não há diferença física entre um setor de origem e um setor de substituição. Assim, o número de setores de substituição pode ser determinado pelo usuário final em função das necessidades de durabilidade visadas. Além disso, um setor de trabalho substituído por um setor de substituição se torna ele próprio um setor de trabalho capaz de ser substituído, quando terá sido atingido seu limite de durabilidade.
[0063] O processo, de acordo com a invenção, prevê que, para reconstruir o encaminhamento entre setores substituídos e setores de substituição, utiliza-se uma zona de gerenciamento da memória não volátil onde cada elemento da zona é específico a um setor de substituição e representa o endereço do setor de origem substituído.
[0064] Além disso, o caminho da reconstrução entre setor de origem e setor de substituição, utilizando a zona de gerenciamento é determinado em tempo real, quando do acesso ao setor de origem.
[0065] De acordo com a invenção, reconstrói-se o encaminhamento entre setor de origem e setor de substituição ao acionamento do circuito e armazena-se em uma memória RAM o atalho entre o setor de origem e o último setor de substituição.
[0066] De acordo com uma variante preferida do processo, maneira de a atualizar a zona de gerenciamento é concebida para ser robusta em relação a perdas eventuais de alimentação, de maneira a evitar qualquer corrupção dessa zona de gerenciamento.
[0067] A invenção tem também por objeto um dispositivo para a aplicação do processo de gestão de durabilidade, tal como descrito acima, caracterizado pelo fato de comportar uma memória dividida em uma pluralidade de setores de trabalho e de setores de substituição, uma zona de gerenciamento dos setores de substituição, um autômato concebido e apto a executar as etapas do processo descrito.
[0068] Outras características e vantagens da invenção aparecerão com a leitura da descrição detalhada dos desenhos anexados, nos quais : - a figura 1 representa uma curva de distribuição da durabilidade nativa dos setores de uma memória; - a figura 2 representa um organograma das etapas de um processo conhecido de setor sparing; - a figura 3 representa uma vista esquemática da organização de uma memória não volátil à qual pode ser aplicado o processo, de acordo com a invenção; - a figura 4 representa, de forma esquemática, o princípio aplicado para a medida da qualidade de apagamento; - a figura 5 representa, de forma mais detalhada o organograma das etapas correspondentes à operação de apagamento no organograma da figura 2, quando esse apagamento é efetuado em várias eteapas temporais; - a figura 6 representa um organograma das etapas de um processo de verificação do apagamento utilizado em um processo de setor sparing; - a figura 7 representa uma vista esquemática da organização da zona de gerenciamento e das 2 zonas de assinatura utilizadas para recriar o encaminhamento entre setores de origem e setores de substituição.
[0069] Refere-se à figura 1. Representou-se nessa figura um gráfico da divisão estatística dos setores de uma memória em função de sua capacidade de durabilidade. Ter-se-á, portanto, a percentagem dos setores para uma durabilidade determinada em abscissa. A durabilidade em abscissa pode ser expressa em um número de apagamentos possíveis, que representa, na realidade, a capacidade de durabilidade do setor.
[0070] Conforme se vê no gráfico 10, a distribuição da proporção dos setores em função da durabilidade tem uma forma gaussiana, repartida em torno de um valor médio anotado com EM, e todos os setores têm uma durabilidade superior à durabilidade mínima garantida para os setores dessa memória, ainda denominada durabilidade nativa ou intrínseca, e anotada com G.
[0071] Na prática, o fabricante da memória vai dar um valor de durabilidade garantida G, indicando que a durabilidade de todos os setores é superior a esse valor de durabilidade garantida. Ora, a forma das curvas de durabilidade é, na prática, muito aferida (ela não está representa na escala na figura 1), o que significa que o valor da durabilidade mínima G é muito inferior ao valor de durabilidade média EM. Um dos objetivos essenciais do processo de gestão de durabilidade, de acordo com a invenção, é de agir de modo que, graças ao processo,o valor mínimo de durabilidade realmente utilizável seja muito superior, a saber superior de várias ordens de grandeza, ao que ela é no estado da técnica.
[0072] Refere-se a seguir à figura 2, que representa um organograma das etapas do processo clássico de « setorsparing ». Esse processo é aplicado por uma máquina de estado, e aplicado a um setor corrente da memória.
[0073] A partir de um estado de repouso 20, decide-se em 21, se for previso apagar o setor corrente. Na afirmativa, em 22, procede-se ao apagamento, o que consiste em enviar ao setor corrente da memória uma tensão suficiente para provocar o apagamento das células. Depois em 27 e 23 procede-se a uma verificação da qualidade de apagamento, de acordo com um método de verificação escolhido dentre vários métodos disponíveis. Se o resultado do teste da qualidade de apagamento for bom (ramificação 24) , passar-se-á à etapa 26 e considera-se que o apagamento foi feito de forma satisfatória. Se, ao contrário, o resultado da qualidade do teste de apagamento em 23 for mau, considerar-se-á que o setor corrente da memória está degradado, e será substituído em 25 por um setor de substituição bom (e previamente apagado), o que leva a considerar que o apagamento foi feito (marcação 26).
[0074] Refere-se à figura 3, mostrando, de forma esquemática, a organização de uma memória 30 não volátil, por exemplo, de tipo FLASH, compreendendo uma zona de trabalho 31 e uma zona de substituição 32, cada zona sendo recortada em setores, por exemplo, setores de trabalho 33 e setores de substituição 34. Quando o teste de apagamento aplicado a um setor de trabalho indica que esse setor está degradado, redireciona-se esse setor para um setor determinado dentre os setores de substituição 34 da zona de substituição 32. O setor de substituição preciso da zona de substituição, que será afetado na substituição do setor de trabalho, será determinado em uma zona de gerenciamento da durabilidade 35, permitindo manter o traço das substituições efetuadas.
[0075] Um setor de trabalho 33 da memória de trabalho 31 pode ser substituído um número inteiro n de vezes, n sendo superior a um número N correspondente ao número de setores de substituição 34 cont6idos na zona de substituição 32.
[0076] A invenção prevê que setores 34 da zona de substituição 32 possam também ser substituídos por outros setores da zona de substituição, com o mesmo título que os setores de trabalho, o que permite ainda aumentar a capacidade de durabilidade da memória 30.
[0077] Para aplicar o processo acima, utilizar-se-á um autômato (não representado), uma zona de gerenciamento da durabilidade 35, uma memória não volátil 30 e um dispositivo de medida (não representado) do uso dos setores da memória.
[0078] O autômato pode ser realizado sob a forma de u'a máquina de estados material ou de programa.
[0079] A memória não volátil 30 pode ser uma memória física ou um outro dispositivo de armazenagem de dados.
[0080] O dispositivo de medida pode utilizar um modo de leitura normal,ou um modo de leitura mais rigoroso da memória ou qualquer dispositivo, permitindo determinar se uma operação de apagamento ou de programação não foi efetuada de maneira correta.
[0081] Um exemplo de dispositivo de medida do uso dos setores vai ser descrito em relação com a figura 4, na qual se representou um gráfico que comporta em ordenada a população de bits de um setor determinado da memória, em função da tensão limite Vt dos transistores memória, representada em abscissa.
[0082] Por convenção, considera-se que um bit é « programado » ou em um nível zero, quando a tensão limite do transistor correspondente é superior a uma tensão limite anotada com Vtmin, que depende da tecnologia utilizada para a memória.
[0083] Inversamente, considera-se que um bit é « apagado » ou em um nível um, quando a tensão limite do transistor correspondente a esse bit é inferior a uma tensão limite anotada com Vtmax.
[0084] Conforme está representado na figura 4, as tensões limite para um ponto memória programado (0) ou apagado (1) variam, e as populações respectivas de bits em zero ou em um, em função da tensão limite aplicada, seguem distribuições 40, 41, de forma geralmente gaussiana.
[0085] Em leitura dita em « modo normal », compara-se a tensão limite Vt doponto memória corrente a uma referência fixa, anotada como Normal Vref, situada entre as tensões limites Vtmin e Vtmax (e esquematizada por um traço interrompido 42) e classifica-se o ponto memória determinado como estando em zero ou em um em função do resultado da comparação em relação à tensão limite de referência normal, Normal Vref.
[0086] Em leitura dita em « modo rigoroso », compara-se a tensão limite do ponto memória corrente a uma outra referência, anotada como Margin Vref. (não representada), superior a Vtmax, mas inferior à referência precedente Normal Vref. Por conseguinte, um ponto memória tendo uma tensão limite Vt situada entre a referência de leitura em modo normal, Normal Vref., e a referência de leitura em “modo rigoroso”, Margin Vref., poderia ser considerado como tendo um valor diferente em modo normal (por exemplo, um zero no lugar de um 1, ou inversamente), mas seria considerado como um « zero » em modo rigoroso.
[0087] Esses modos de leitura da tensão limite de um ponto memória, quer se trate do modo normal ou do modo rigoroso, podem ser utilizados no processo, de acordo com a invenção, para medir a qualidade de apagamento de um setor. Eles vão com efeito permitir detectar se um setor está realmente bem apagado, sem se basear no limite teórico de durabilidade deste, mas certamente em suas qualidades físicas intrínsecas. O processo permite também garantir que leitura de verificação do apagamento é robusto.
[0088] Refere-se à figura 5 que representa uma variante do processo de apagamento de um setor de memória, na qual a etapa de apagamento normal 22 com pulso único do organograma, da figura 2, é substituída por um apagamento com pulsos de apagamento múltiplos.
[0089] De forma geral, apagar um ponto memória consiste em lhe aplicar uma alta tensão e levar-lhe uma certa energia, o que acaba por estragá-la e torná-la ilegível.
[0090] Em uma variante vantajosa da invenção, é previsto só aplicar a cada ponto memória a tensão de apagamento necessária, o que permite aumenta a duração de vida de cada ponto memória, e, por conseguinte, a duração de vida do reservatório de durabilidade e, portanto, da memória total.
[0091] Para isso, a invenção prevê substituir um pulso de apagamento normal e único 22, por vários pulsos mais fracos aplicados de forma sequencial 50, com um teste de qualidade de apagamento 54, praticado após cada pulso de apagamento. Os pulsos fracos sendo aplicados até que o teste de qualidade de apagamento seja positivo, ou até que um número pré-definido de pulsos fracos tenham sido aplicados 53. Se o teste de qualidade de apagamento é ainda mau, após a aplicação do número máximo pré-definido de pulsos fracos, considera-se que o setor de memória está degradado 55 e procede-se a sua substituição por alocação de um setor da zona de substituição.
[0092] Vê-se bem que, se o teste de qualidade de apagamento der um bom resultado, após um número de pulsos inferior ao número máximo pré-definido de pulsos 52, a quantidade total de energia aplicada para apagar esse setor terá sido inferior àquela de um apagamento clássico, o que contribui para prolongar a duração de vida da memória.
[0093] Conforme explicado anteriormente, o teste de qualidade de apagamento pode ser feito em modo normal, ou em modo rigoroso.
[0094] Refere-se à figura 6 que representa um procedimento clássico de verificação de apagamento.
[0095] Na etapa 60, lê-se um compartimento memória do setor apagado, depois se verifica em 61 que o compartimento está corretamente apagado. Na afirmativa, passa-se ao compartimento seguinte do setor 65 e reiteram-se as operações 60, 61 e 65, tanto que a operação 63 não detecata o último compartimento de setor. Caso se atinja o último compartimento do setor sem fracasso de apagamento 61, conclui-se em 64 por uma apagamento validado. Em caso de fracasso de apagamento 61, conclui-se em 62 por um apagamento não válido.
[0096] Refere-se à figura 7, que representa o processo correspondente ao quarto meio:
[0097] esse processo utiliza uma zona de gerenciamento 70, assim como duas zonas de assinaturas 71 e 72.
[0098] A primeira etapa desse processo consiste em escrever o endereço do setor de origem 73 em uma primeira zona de assinatura 72.
[0099] Em seguida, uma assinatura de fim de escritura 74 é escrita, a fim de assegurar a validade do endereço anteriormente programada.
[0100] Uma vez essas duas etapa realizadas, o elemento da zona de gerenciamento associado ao setor substituído 75 é carregado com o endereço do setor de substituição.
[0101] A fim de validar esta última operação uma assinatura de fim de substituição 76 será de novo programada em uma segunda zona de assinatura 71.
Vantagens da invenção
[0102] A invenção, tal como descrita, permite atingir as finalidades fixadas. Ela permite antes de tudo atuingor capacidades de durabilidade muito elevadas, quase equivalentes àquelas obtidas pelos métodos ditos de « Wear Leveling », mas sem os inconvenientes destas.
[0103] A invenção é, por conseguinte, particularmente útil em ambientes onde todos os objetos de dados não têm uma necessidade elevada de durabilidade, o que é, em geral, o caso notadamente em aplicações de tipo programa de computador e seguro, onde só um pequeno número de objetos necessita de uma durabilidade elevada. Esse método prende-se, então, a qualquer sentido para um custo muito limitado, mas ela é utilizável spbre qualquer outro tipo de aplicação ou de dispositivo de armazenagem conhecido ou a vir e tendo necessidades de durabilidade similares.
[0104] O mecanismo de medida da qualidade de apagamento em relação a um critério de limite de durabilidade e não simplemente estatístico é absolutamente fundamental para a assegurar uma durabilidade global elevada da memória. Isto permite, ao memso tempo maximizar a utilização de um setor de origem anterior ter de substituí-lo (e, portanto, diminuir a necessidade em setores de substituição), mas também maximizar o valor do « reservatório de durabilidade».
[0105] A utilização do mecanismo de medida da qualidade de apagamento permite também aplicar apenas a quantidade necessária de tensão de apagamento a um setor e, portanto, de maximizar a duração de vida.
[0106] Na prática, o número de setores de sb necessários pode ser facilmente ajuatado em função da necessidade de durabilidade visado.
[0107] Além disso, o processo, de acordo com a invenção, permite eliminar rapidamente do reservatório de durabilidade os setores fracos, demandando muita durabilidade.
[0108] O processo, de acordo com a invenção, é apenas ligeiramente penalizante em termos de custo de memória suplementar, esse custo é, com efeito, muito baixo, já que é proporcional à durabilidade global visada e não ao tamanho da memória.
[0109] A necessidade em memória RAM e em lógica de controle é extremamente baixo sobretudo comparado àquele requerido pelos processos ditos de « wear Leveling » dinâmico ou estático.
[0110] O processo, de acordo com a invenção, permite uma utilização ótima da durabilidade dos setores que participam do sistema. Os setores de origem que não demandam mais durabilidade que não são capazes eles próprios de fornecer não entram jamais no sistema de substituição (diferentemente do « wear Leveling » onde teoricamente todos os setores participam do sistema). Há, portanto, uma baixa drástica do número de setores de substituição necessários, graças à utilização ótima dos setores de origem.
[0111] A invenção se aplica atualmente essencialmente às memórias não voláteis, mas é capaz de se aplicar a qualquer sistema de armazenagem de dados que apresentam fenômenos de degradação.

Claims (7)

1. Processo de gestão da durabilidade de um sistema de armazenagem de dados provido de um conjunto de setores associados a uma capacidade de durabilidade nativa garantida (G), compreendendo as etapas de: - dividir esse sistema de armazenagem de dados em uma pluralidade de setores de trabalho, e em uma pluralidade de setores de substituição, aptos a formar um reservatório de durabilidade, certos setores de trabalho sendo destinados a serem substituídos por setores de substituição, quando esses setores de trabalho estiverem degradados após um certo número de ciclos de programação e/ou apagamento; - definir uma zona (70) de gerenciamento de endereços permitindo encontrar o local dos setores de substituição associados a setores de trabalho degradados; - determinar, setor por setor, se um setor de trabalho corrente está fisicamente degradado, e executar uma etapa de substituição (25) desse setor de trabalho por um setor de substituição, apenas quando esse setor de trabalho corrente é declarado fisicamente degradado; - realizar uma leitura automática da qualidade de apagamento de pontos da memória do setor, comparando-se uma tensão limite (Vt) do ponto memória corrente com uma primeira referência fixa (Vref) compreendida entre duas tensões limites (Vtmin, Vtmax) e com uma segunda referência fixa maior do que uma das duas tensões limites (Vtmin, Vtmax), mas menor do que a primeira referência fixa (Vref), caracterizado pelo fato de um pulso de apagamento único de um setor ser substituído por vários pulsos (50) mais curtos aplicados de forma sequencial, e em que um teste (54) de qualidade de apagamento é praticado após cada pulso, um setor de memória de trabalho sendo declarado degradado se esses testes de qualidade permanecerem negativos após um número máximo pré-definido de pulsos e de testes (55).
2. Processo, de acordo com a reivindicação 1, caracterizado pelo fato de: - se utilizar uma memória perfeitamente genérica de uma estrutura regular em que não há diferença física entre um setor de origem e um setor de substituição; - o número de setores de substituição poder ser determinado pelo usuário final em função das necessidades de durabilidade visadas; - um setor de trabalho substituído por um setor de substituição se tornar ele próprio um setor de trabalho suscetível de ser substituído, quando é atingido seu limite de durabilidade.
3. Processo, de acordo com a reivindicação 2, caracterizado pelo fato de, para reconstruir o encaminhamento entre setores substituídos (75) e setores de substituição, se utilizar uma zona (70) de gerenciamento da memória não volátil em que cada elemento da zona é específico a um setor de substituição e representa o endereço do setor de origem substituído (75).
4. Processo, de acordo com a reivindicação 3, caracterizado pelo fato de o caminho de reconstrução entre o setor de origem (75) e o setor de substituição utilizando a zona de gerenciamento (70) ser determinado, em tempo real, quando do acesso ao setor de origem (75).
5. Processo, de acordo com a reivindicação 3, caracterizado pelo fato de se reconstruir o encaminhamento entre o setor de origem (75) e o setor de substituição quando o circuito é acionado, e se armazenar em uma memória RAM o atalho entre o setor de origem e o último setor de substituição.
6. Processo, de acordo com a reivindicação 3, caracterizado pelo fato de a maneira de atualizar a zona de gerenciamento (70) ser concebida para ser robusta em relação a perdas eventuais de alimentação, de maneira a evitar qualquer corrupção dessa zona de gerenciamento (70).
7. Dispositivo para aplicação do processo de gestão da durabilidade como definido em qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de compreender uma memória (30) dividida em uma pluralidade de setores de trabalho (33) e de setores de substituição (34), uma zona de gerenciamento dos setores de substituição, um autômato apto a executar as etapas do processo como definido em qualquer uma das reivindicações 1 a 6.
BR112013033196-8A 2011-06-22 2012-06-22 Processo de gestão da durabilidade de um sistema de armazenagem de dados e dispositivo para aplicação do processo BR112013033196B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR11/01929 2011-06-22
FR1101929A FR2977047B1 (fr) 2011-06-22 2011-06-22 Procede de gestion de l'endurance de memoires non volatiles.
PCT/FR2012/000251 WO2012175827A1 (fr) 2011-06-22 2012-06-22 Procédé de gestion de l'endurance de mémoires non volatiles

Publications (3)

Publication Number Publication Date
BR112013033196A2 BR112013033196A2 (pt) 2017-03-01
BR112013033196A8 BR112013033196A8 (pt) 2018-07-10
BR112013033196B1 true BR112013033196B1 (pt) 2021-04-27

Family

ID=46579142

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013033196-8A BR112013033196B1 (pt) 2011-06-22 2012-06-22 Processo de gestão da durabilidade de um sistema de armazenagem de dados e dispositivo para aplicação do processo

Country Status (7)

Country Link
US (1) US9286207B2 (pt)
EP (1) EP2724237B1 (pt)
CN (1) CN103842974B (pt)
BR (1) BR112013033196B1 (pt)
FR (1) FR2977047B1 (pt)
RU (1) RU2600525C2 (pt)
WO (1) WO2012175827A1 (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
CN109448774B (zh) * 2018-10-15 2021-03-19 上海华虹宏力半导体制造有限公司 快闪存储器干扰存储区位置的判定方法
FR3125897A1 (fr) 2021-07-30 2023-02-03 Idemia Identity & Security France Procédé pour optimiser un fonctionnement d’un élément sécurisé
FR3138536A1 (fr) 2022-07-28 2024-02-02 Idemia Identity & Security France Procédé de gestion d’une mémoire d’un élément sécurisé
CN115509465B (zh) * 2022-11-21 2023-03-28 杭州字节方舟科技有限公司 一种扇区管理方法、装置、电子设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
IT1302433B1 (it) * 1998-08-13 2000-09-05 Texas Instruments Italia Spa Circuito di lettura per dispositivi di memoria flash con perfezionatimargini di programmazione e procedimento di funzionamento
JP2002074999A (ja) * 2000-08-23 2002-03-15 Sharp Corp 不揮発性半導体記憶装置
JP4129381B2 (ja) * 2002-09-25 2008-08-06 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7106636B2 (en) * 2004-06-22 2006-09-12 Intel Corporation Partitionable memory device, system, and method
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
WO2007134133A2 (en) * 2006-05-15 2007-11-22 Sandisk Corporation Non-volatile memory system with end of life calculation
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
CN100592427C (zh) * 2007-12-05 2010-02-24 苏州壹世通科技有限公司 一种数据块的磨损处理方法和装置
US8244959B2 (en) * 2008-11-10 2012-08-14 Atmel Rousset S.A.S. Software adapted wear leveling
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
US20120117303A1 (en) * 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer

Also Published As

Publication number Publication date
RU2014101458A (ru) 2015-07-27
RU2600525C2 (ru) 2016-10-20
FR2977047A1 (fr) 2012-12-28
CN103842974A (zh) 2014-06-04
EP2724237A1 (fr) 2014-04-30
EP2724237B1 (fr) 2018-03-28
US20140223082A1 (en) 2014-08-07
WO2012175827A1 (fr) 2012-12-27
FR2977047B1 (fr) 2013-08-16
BR112013033196A8 (pt) 2018-07-10
CN103842974B (zh) 2016-06-29
BR112013033196A2 (pt) 2017-03-01
US9286207B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
US9146821B2 (en) Methods and systems for monitoring write operations of non-volatile memory
US8737148B2 (en) Selective retirement of blocks
US8910002B2 (en) NAND flash-based storage device with built-in test-ahead for failure anticipation
Nair et al. Reducing read latency of phase change memory via early read and turbo read
US20110239064A1 (en) Management of a non-volatile memory based on test quality
BR112013033196B1 (pt) Processo de gestão da durabilidade de um sistema de armazenagem de dados e dispositivo para aplicação do processo
US8645776B2 (en) Run-time testing of memory locations in a non-volatile memory
US9881682B1 (en) Fine grained data retention monitoring in solid state drives
US11455194B2 (en) Management of unmapped allocation units of a memory sub-system
Gao et al. Constructing large, durable and fast SSD system via reprogramming 3D TLC flash memory
US10915400B1 (en) Dynamic over provisioning allocation for purposed blocks
US10089170B1 (en) Open block management
CN112053733A (zh) 故障敏感存储器页面的选择性加速取样
US10761739B2 (en) Multi-level wear leveling for non-volatile memory
KR20100090001A (ko) 메모리 장치, 메모리 관리 장치 및 메모리 관리 방법
US10761740B1 (en) Hierarchical memory wear leveling employing a mapped translation layer
Choi et al. Exploiting data longevity for enhancing the lifetime of flash-based storage class memory
US11626182B2 (en) Selective power-on scrub of memory units
Gao et al. Reprogramming 3D TLC flash memory based solid state drives
US11646077B2 (en) Memory sub-system grading and allocation
KR20210020161A (ko) 센티넬 셀을 기초로 한 데이터 무결성 결정
CN107680632B (zh) 一种固态硬盘的寿命测试方法及装置
US10777297B2 (en) Age-based refresh of firmware
US11183267B2 (en) Recovery management of retired super management units
Hui et al. Revisiting Behavior Amplification of NAND Flash-Based Storage Devices in Embedded Systems

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 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 22/06/2012, OBSERVADAS AS CONDICOES LEGAIS.

B25D Requested change of name of applicant approved

Owner name: IDEMIA STARCHIP (FR)