Exemplo de uma memória flash utilizada em um flash drive USB (oupen drive).
Umamemória flash é um tipo dedispositivo de armazenamento não volátil, ou seja, mesmo se não tiver energia, manterá as informações salvas nela. Diferente da memória ROM, a memória flash (ou flash ROM) pode ser atualizada.
AToshiba desenvolveu a Memória Flash a partir da MemóriaEEPROM (Electrically-Erasable Programmable Read-Only Memory), em meados da década de 1980, cujos chips são semelhantes ao daMemória RAM, permitindo que múltiplos endereços sejam apagados ou escritos numa só operação. Em termos leigos, trata-se de um chip reescrevível que, ao contrário de uma memória RAM convencional, preserva o seu conteúdo sem a necessidade de fonte de alimentação.[1][2] Esta memória é comumente usada emcartões de memória,flash drives USB (pen drives),SSD,MP3 Players, dispositivos como osiPods com suporte a vídeo,PDAs, armazenamento interno decâmeras digitais ecelulares.
A memória flash é do tiponão-volátil, o que significa que não precisa de energia para manter as informações armazenadas no chip. Além disso, a memória flash oferece um tempo de acesso rápido, embora não tão rápido como a memória volátil (DRAM utilizadas para a memória principal emPCs), e melhor resistência do quediscos rígidos. Estas características explicam a popularidade da memória flash em dispositivos portáteis. Outra característica da memória flash é que, quando embaladas em"cartões de memória", são extremamente duráveis, sendo capazes de resistir a pressão intensa, variações extremas de temperatura, e até mesmo imersão em água.[3]
Uma limitação é que a memória flash tem um número finito de modificações (escrita/exclusão). Porém este efeito é parcialmente compensado por alguns chipsfirmware ou drivers de arquivos de sistema de forma dinâmica e escreve contando o remapeamento dos blocos, a fim de difundir as operações escritas entre os setores.[3]
Dois chips de memória flash em comparação com umamoeda.
A memória flash (ambos os tipos,NOR eNAND), foi inventada pelo Dr.Fujio Masuoka enquanto trabalhava para aToshiba em 1980. De acordo com aToshiba, o nome "flash" foi sugerido por um colega do Dr. Masuoka, Sr. Shoji Ariizumi, pois o processo de apagamento do conteúdo da memória se assemelhava ao flash de uma câmera fotográfica. O Dr. Masuoka apresentou a invenção aoIEEE 1984 International Electron Devices Meeting (IEDM) realizada emSan Francisco,Califórnia.A Intel viu o enorme potencial da invenção e introduziu o primeiro chip flash comercial do tipoNOR em 1988. O flash baseado emNOR leva muito tempo para gravar e apagar, porém fornece completamente o endereço e o barramento de dados, permitindo o acesso aleatório a qualquer posição da memória. Isso o torna um substituto adequado para o antigos chips ROM (Read-Only Memory), que são utilizados para armazenar o código do programa que raramente precisa ser atualizado, como a BIOS ou a firmware do set-top boxes de um computador. Sua resistência é de 10 mil a 1 milhão de ciclos de limpeza. O NOR baseado em flash foi a base do início damídia removível baseada em flash, o compactflash veio a ser baseado nele, embora mais tarde os cartões tenham deixado de custar caro como os flash baseados em NAND.
As maiores vantagens desse tipo de memória é sua ocupação mínima de espaço, seu baixo consumo de energia, sua alta resistência, sua durabilidade e segurança, contando com recursos comoECC (Error Correcting Code), que permite detectar erros natransmissão de dados. A tecnologia faz uso desemicondutores (solid state), sendo assim, não tem peças móveis, evitando problemas de causa mecânica.[1][2]
Também vem começando a ser chamado de disco sólido pelo grande futuro que tem pela frente, já que além de ser muito mais resistente que osdiscos rígidos atuais, apresenta menor consumo deenergia elétrica,latências e peso muito mais baixos. Chega a utilizar apenas 5% dos recursos normalmente empregados na alimentação de discos rígidos.
Com tantas vantagens, a tendência futura é que os fabricantes de computadores tendem a substituir os disco rígidos por unidades flash. O que poderá ser expandida para osdesktop nos próximos 5 anos, pois a suafabricação ainda é de alto custo para asempresas.[1]
A memória flash armazena informações em uma matriz de células de memória compostas de transistores de porta flutuante. Nos dispositivos de célula de nível único (SLC), cada célula armazena apenas um bit de informação. Os dispositivos de célula multinível (MLC), incluindo dispositivos de célula de nível triplo (TLC), podem armazenar mais de um bit por célula.
O portão flutuante pode ser condutor (normalmentepolissilício na maioria dos tipos de memória flash) ou não condutor (como na memória flash SONOS).[4]
A memória flashNOR (Not OR) permite acessar os dados da memória de maneira aleatória, com alta velocidade. Foi a primeira a se popularizar, chegando ao mercado em 1988, seus chips possuem uma interface de endereços semelhante à da RAM, sendo utilizado para armazenar oBIOS das placas-mãe e tambémfirmwares de vários dispositivos, que antes eram armazenados emROM ouEPROM. Alguns dos problemas nesse tipo de memória devem-se ao seu alto custo, e ao seu alto tempo de gravação nas células. Mas embora esses problemas existam, é largamente utilizada até hoje em celulares, palmtops e firmware. Chegaram a ser empregadas na fabricação das memóriasPCMCIA eCompactFlash, mas com a introdução do tipo NAND, desapareceram deste ramo.[2][5]
O flash NAND também usatransistores de porta flutuante, mas eles são conectados de uma maneira que se assemelha a umaporta NAND: vários transistores são conectados em série e a linha de bits é puxada para baixo somente se todas as linhas de palavras forem puxadas para cima (acima do VT dos transistores).[2] Esses grupos são então conectados através de alguns transistores adicionais a uma matriz de linhas de bits no estilo NOR da mesma maneira que transistores únicos são vinculados no flash NOR.
Comparado ao flash NOR, a substituição de transistores únicos por grupos vinculados em série adiciona um nível extra de endereçamento. Enquanto o flash NOR pode endereçar a memória por página e depois por palavra, o flash NAND pode endereçar por página, palavra e bit. O endereçamento no nível de bits é adequado para aplicativos seriais de bits (como emulação de disco rígido), que acessam apenas um bit de cada vez. Os aplicativos de execução no local, por outro lado, exigem que cada bit de uma palavra seja acessado simultaneamente. Isso requer endereçamento no nível da palavra. De qualquer forma, os modos de endereçamento de bits e palavras são possíveis com o flash NOR ou NAND.
Para ler os dados, primeiro o grupo desejado é selecionado (da mesma maneira que um único transistor é selecionado de uma matriz NOR). Em seguida, a maioria das linhas de palavras é puxada acima do VT de um bit programado, enquanto uma delas é puxada para cima do VT de um bit apagado. O grupo de séries conduzirá (e puxará a linha de bits para baixo) se o bit selecionado não tiver sido programado.
Apesar dos transistores adicionais, a redução de fios terra e linhas de bits permite um layout mais denso e maior capacidade de armazenamento por chip. (Os fios de aterramento e as linhas de bits são, na verdade, muito mais largos que as linhas dos diagramas.) Além disso, normalmente é permitido que o flash NAND contenha um certo número de falhas (espera-se que o flash NOR, como é usado para uma ROM da BIOS, sem falhas). Os fabricantes tentam maximizar a quantidade de armazenamento utilizável diminuindo o tamanho dos transistores.
Essa arquitetura foi introduzida pela Toshiba em 1989. Cada bloco consiste em um determinado número de páginas. As páginas são tipicamente 512, 1 024, 2 048 ou 4 096bytes em tamanho. A página é associada a alguns bytes (tipicamente 12-16 bytes). Atualmente são os tipos de memória mais usados em dispositivos portáteis.[5]
32 páginas de 512 bytes para cada tamanho de um bloco de 16 kB;
64 páginas de 2 048 bytes para cada tamanho de um bloco de 128 kB;
64 páginas de 4 096 bytes para cada tamanho de um bloco de 256 kB;
128 páginas de 4 096 bytes para cada tamanho de um bloco de 512 kB.
Embora a programação seja realizada em uma página base,a exclusão dos dados só pode ser executada em um bloco base. Outra limitação do flash NAND é que um bloco de dados só pode ser escrito sequencialmente. Número de Operações (NOPs) é o número de vezes que os setores podem ser programados. A maior parte dos dispositivos NAND saem da fábrica com alguns blocos defeituosos, que normalmente são identificados e classificados de acordo com uma determinada marcação de bloco defeituoso. Ao permitir que alguns blocos defeituosos saiam os fabricantes alcançam mais rendimentos do que seria possível, caso todos os blocos fossem bons. Isto reduz significativamente os custos da Memória flash NAND e diminui ligeiramente a capacidade de armazenamento das partes.[3]
O conceito básico dos sistemas de arquivos flash é o seguinte: quando os dados armazenados vão ser atualizados, osistema de arquivos faz uma cópia deles para um novo bloco de memória, remapeia os ponteiros de arquivo e depois apaga o antigo bloco quando tiver tempo. Na prática, esse sistema de arquivos é utilizado em dispositivos com memória flash embutida que não possuem controladores.
Estrutura e fiação da memória flash NAND em silício.
Os cartões de memória e drives USB flash são incorporados de controladores e devem desempenhar correção de erros, então o uso de um ou outro sistema de arquivos flash pode não acrescentar nenhum benefício, então os dispositivos flash removíveis utilizam o sistema de arquivosFAT universal, permitindo assim a compatibilidade com câmeras, computadores, PDAs e outros dispositivos portáteis com slots para cartões de memória.[3]
Um grupo chamadoOpen Nand Flash Interface Working Group(ONFI) desenvolveu uma interface padronizada para os chips NAND flash, tornando possível ainteroperabilidade entre dispositivos NAND de diferentes fornecedores. A versão 1.0 da especificação ONFI foi liberada em Dezembro de 2006, com as seguintes especificações:
interface física normalizada(pinout) para NAND flash em TSOP-48,LGA-52 e BGA-63.
um comando padrão estabelecido para ler, escrever e apagar dados nos chips NAND.
mecanismo de auto-identificação, comparável aoSerial Presence detection(características dosSDRAM)
O grupo tem apoio dos principais fabricantes de memória NAND - tais como aIntel, Micron Technology eSony - e dos principais fabricantes de dispositivos que integram chips NAND. Alguns fornecedores, incluindo Intel,Dell eMicrosoft, formaram um grupo para proporcionar um padrão de software e hardware programando interfaces para subsistemas de memória não-volátil, incluindo aflash cache, dispositivo ligado aoPCI Express.[3]
Geralmente é anunciada somente a velocidade máxima de leitura, pois os cartões de memória NAND são mais rápidos lendo do que escrevendo dados. O tempo de acesso influencia no desempenho, mas não tem tanta importância comparando com o disco rígido. Às vezes denotado em MB/s(megabytes por segundo), ou em número de “X” como 60x, 100x ou 150x. O “X” se refere à velocidade com que uma única unidade de CD entregaria os dados, 1x é o mesmo que 150kilobytes por segundo. Por exemplo, um cartão de memória 100x vai a 150 KiB x 100 = 15 000 KiB por segundo = 14,65 MiB por segundo (A velocidade exata depende da definição deMegabyte que o comerciante opta por utilizar).[3]
Uma extensão óbvia da memória flash seria um substituto para os discos rígidos, já que ela não possui as limitações mecânicas e latência dos mesmos. A ideia de um drive de estado sólido, ouSSD, torna-se atraente se considerarmos velocidade, ruído, consumo de energia e confiabilidade. Porém, ainda existem algumas desvantagens que devem ser consideradas. Por exemplo, o custo por gigabyte de memória flash ainda é maior do que dos discos rígidos. Algumas técnicas estão sendo utilizadas na tentativa de combinar as vantagens das duas tecnologias, usando a flash como umacache de alta velocidade para arquivos do disco que são muito referenciados mas pouco modificados, tais como aplicativos earquivos executáveis do sistema operacional.[3]