Memória do computador

Origem: Wikipédia, a enciclopédia livre.
DDR4 SDRAM módulo. 2021, mais de 90 por cento da memória do computadores usada em PCs e servidores era desse tipo.[1]

A memória do computador armazena informações, como dados e programas para uso imediato no computador.[2] O termo memória muitas vezes é sinônimo de armazenamento primário ou memória principal. Um sinônimo arcaico para memória é armazenamento.[3]

A memória do computador opera em alta velocidade em comparação com o armazenamento, que é mais lento, mas mais barato e tem maior capacidade. Além de armazenar programas abertos, a memória do computador funciona como cache de disco e buffer de gravação para melhorar o desempenho de leitura e gravação. Sistemas operacionais utilizam a capacidade da RAM para fazer cache, desde que não seja necessária pelo software em execução.[4] Se necessário, o conteúdo da memória do computador pode ser transferido para o armazenamento; uma maneira comum de fazer isso é por meio de uma técnica de gerenciamento de memória chamada memória virtual.

A memória do computador moderna é implementada como memória semicondutora,[5][6] onde os dados são armazenados dentro de células de memória construídas a partir de transistor MOSFET e outros componentes em um circuito integrado.[7] Existem dois tipos principais de memória semicondutora: volátil e não volátil. Exemplos de memória não volátil são memória flash e ROM, PROM, EPROM e memória EEPROM. Enquanto para memória volátil os exemplos são a memória dinâmica de acesso aleatório (DRAM) usada para armazenamento primário, e a memória de acesso aleatório (SRAM) usada para cache do processador.

A maioria da memória semicondutora é organizada em células de memória, cada uma armazenando um bit (0 ou 1). A organização da memória flash inclui tanto um bit por célula de memória quanto célula de vários níveis capaz de armazenar vários bits por célula. As células de memória são agrupadas em palavras de comprimento fixo, por exemplo, 1, 2, 4, 8, 16, 32, 64 ou 128 bits. Cada palavra pode ser acessada por um endereço binário de N bits, tornando possível armazenar 2N palavras na memória.

História[editar | editar código-fonte]

Memória eletromecânica usada no IBM 602, e calculadora multiplicadora de perfuração inicial
Detalhe da parte traseira de uma seção do ENIAC, mostrando válvulas termiônicas
Tubo de Williams usado como memória no computador IAS c. 1951
Cartão 8 GB micro SDHC sobre 8bytes de memória de núcleo magnético (1 núcleo é 1 bit.)

No início da década de 1940, a tecnologia de memória frequentemente permitia uma capacidade de apenas alguns bytes. O primeiro computador digital eletrônico programável, o ENIAC, usando milhares de tubos de vácuo, podia realizar cálculos simples envolvendo 20 números de dez dígitos decimais armazenados nos tubos de vácuo.

O próximo avanço significativo na memória do computador veio com a memória de linha de atraso acústica, desenvolvida por J. Presper Eckert no início da década de 1940. Através da construção de um tubo de vidro cheio de mercúrio e tampado em cada extremidade com um cristal de quartzo, as linhas de atraso podiam armazenar unidades de informação na forma de ondas sonoras que se propagam através do mercúrio, com os cristais de quartzo atuando como transdutores para ler e gravar bits. A memória de linha de atraso era limitada a uma capacidade de até alguns milhares de bits.

Duas alternativas à linha de atraso, o tubo de Williams e o tubo Selectron, originaram-se em 1946, ambos usando feixes de elétrons em tubos de vidro como meio de armazenamento. Usando tubos de raios catódicos, Fred Williams inventou o tubo de Williams, que foi a primeira memória do computador de acesso aleatório. O tubo de Williams conseguia armazenar mais informações do que o tubo Selectron (o Selectron era limitado a 256 bits, enquanto o tubo de Williams podia armazenar milhares) e era menos caro. No entanto, o tubo de Williams era frustrantemente sensível a perturbações ambientais.

Os esforços começaram no final da década de 1940 para encontrar uma memória não volátil. A memória de núcleo magnético permitia a recuperação da memória após a perda de energia. Foi desenvolvida por Frederick W. Viehe e An Wang no final da década de 1940 e aprimorada por Jay Forrester e Jan A. Rajchman no início da década de 1950, antes de ser comercializada com o computador Whirlwind em 1953.[8] A memória de núcleo magnético foi a forma dominante de memória até o desenvolvimento da memória de semicondutor MOS na década de 1960.[9]

A primeira memória de semicondutor foi implementada como um circuito flip-flop no início da década de 1960 usando transistores de junção bipolar.[9] A memória de semicondutor feita a partir de dispositivo discretos foi enviada pela primeira vez pela Texas Instruments para a Força Aérea dos Estados Unidos em 1961. No mesmo ano, o conceito de estado sólido de memória em um circuito integrado (CI) foi proposto pelo engenheiro de aplicações Bob Norman na Fairchild Semiconductor.[10] O primeiro chip de CI de memória de semicondutor bipolar foi o SP95 introduzido pela IBM em 1965.[9] Embora a memória de semicondutor oferecesse melhor desempenho em relação à memória de núcleo magnético, ela permanecia maior e mais cara e não substituiu a memória de núcleo magnético até o final da década de 1960.[9][11]

Memória MOS[editar | editar código-fonte]

A invenção do transistor de efeito de campo metal-óxido-semicondutor (MOSFET) permitiu o uso prático de transistores de metal-óxido-semicondutor (MOS) como elementos de armazenamento de células de memória. A memória MOS foi desenvolvida por John Schmidt na Fairchild Semiconductor em 1964.[12] Além de maior desempenho, a memória semicondutor MOS era mais barata e consumia menos energia do que a memória de núcleo magnético.[13] Em 1965, J. Wood e R. Ball da Royal Radar Establishment propuseram sistemas de armazenamento digital que usam células de memória CMOS (metal-óxido-semicondutor complementar), além de dispositivos de potência MOSFET para a fonte de alimentação semicondutora, acoplamento cruzado comutado, fontes de alimentação e armazenamento de linha de atraso.[14] O desenvolvimento da tecnologia de porta de silício MOSFET (CI MOS) por Federico Faggin na Fairchild em 1968 permitiu a produção de chip de memória MOS.[15] A memória NMOS foi comercializada pela IBM no início da década de 1970.[16] A memória MOS ultrapassou a memória de núcleo magnético como a tecnologia de memória dominante no início da década de 1970.[13]

Os dois principais tipos de memória de acesso aleatório volátil (RAM) são a de acesso aleatório (SRAM) e a memória dinâmica de acesso aleatório (DRAM). A SRAM bipolar foi inventada por Robert Norman na Fairchild Semiconductor em 1963,[9] seguida pelo desenvolvimento da SRAM MOS por John Schmidt na Fairchild em 1964.[13] A SRAM tornou-se uma alternativa à memória de núcleo magnético, mas requer seis transistores para cada bit de dados.[17] O uso comercial da SRAM começou em 1965, quando a IBM introduziu seu chip SRAM SP95 para o System/360 Model 95.[9]

A Toshiba introduziu células de memória DRAM bipolares para sua calculadora eletrônica Toscal BC-1411 em 1965.[18][19] Embora tenha oferecido desempenho aprimorado, a DRAM bipolar não pôde competir com o preço mais baixo da então dominante memória de núcleo magnético.[20] A tecnologia MOS é a base para a DRAM moderna. Em 1966, Robert H. Dennard no Thomas J. Watson Research Center do IBM estava trabalhando em memória MOS. Ao examinar as características da tecnologia MOS, ele descobriu que era possível construir capacitores e que armazenar uma carga ou nenhuma carga no capacitor poderia representar o 1 e o 0 de um bit, enquanto o transistor MOS poderia controlar a gravação da carga no capacitor. Isso levou ao desenvolvimento de uma célula de memória DRAM de um único transistor.[17] Em 1967, Dennard registrou uma patente para uma célula de memória DRAM de um único transistor baseada na tecnologia MOS.[21] Isso levou ao primeiro chip comercial de DRAM IC, o Intel 1103, em outubro de 1970.[22][23][24] A memória dinâmica de acesso aleatório síncrona (SDRAM) estreou posteriormente com o chip Samsung KM48SL2000 em 1992.[25][26]

O termo memória também é frequentemente usado para se referir à memória não volátil, incluindo a memória somente de leitura (ROM) até a moderna memória flash. A memória somente de leitura programável (PROM) foi inventada por Wen Tsing Chow em 1956, enquanto trabalhava para a Arma Division da American Bosch Arma Corporation.[27][28] Em 1967, Dawon Kahng e Simon Sze da Bell Labs propuseram que a porta flutuante de um dispositivo semicondutor MOS poderia ser usada para a célula de uma ROM reprogramável, o que levou Dov Frohman da Intel a inventar a EPROM (PROM apagável) em 1971.[29] A EEPROM (PROM apagável eletricamente) foi desenvolvida por Yasuo Tarui, Yutaka Hayashi e Kiyoko Naga no National Institute of Advanced Industrial Science and Technology em 1972.[30] A memória flash foi inventada por Fujio Masuoka na Toshiba no início dos anos 1980.[31][32] Masuoka e colegas apresentaram a invenção da memória NOR flash em 1984,[33] e depois a memória NAND flash em 1987.[34] A Toshiba comercializou a memória NAND flash em 1987.[35][36][37]

Desenvolvimentos em tecnologia e economias de escala tornaram possíveis os chamados computadores de memória muito grande (VLM).[37]

Memória volátil[editar | editar código-fonte]

Vários módulos de memória contendo diferentes tipos de DRAM (de cima para baixo): DDR SDRAM, SDRAM, EDO DRAM e FPM DRAM
Ver artigo principal: Memória volátil

A memória volátil é a memória do computador que requer energia para manter as informações armazenadas. A maioria da memória volátil moderna semicondutor é composta por RAM estática (SRAM) ou RAM dinâmica (DRAM).[a] A DRAM domina a memória do sistema desktop. A SRAM é usada para o cache do processador. A SRAM também é encontrada em pequenos sistemas embarcados que exigem pouca memória.

A SRAM retém seu conteúdo enquanto a energia está conectada e pode usar uma interface mais simples, mas requer seis transistores por bit. A DRAM é mais complicada para a interface e controle, exigindo ciclos de atualização regulares para evitar a perda de conteúdo, mas usa apenas um transistor e um capacitor por bit, permitindo alcançar densidades muito maiores e custos muito mais baixos por bit.[2][23][37]

Memória não volátil[editar | editar código-fonte]

Ver artigo principal: Memória não-volátil

A memória não volátil pode reter as informações armazenadas mesmo quando não está alimentada. Exemplos de memória não volátil incluem memória somente de leitura, memória flash, a maioria dos tipos de dispositivos de armazenamento de computador magnéticos (por exemplo, discos rígidos, disquetes e fita magnética), disco óptico e métodos de armazenamento de computador mais antigos, como fita de papel e cartão perfurado.[37]

Tecnologias de memória não volátil em desenvolvimento incluem FRAM, célula de metalização programável, RAM magnética com torque de transferência de spin, SONOS, memória RAM resistiva, memória racetrack, Nano-RAM, 3D XPoint e memória milípede.

Memória semi-volátil[editar | editar código-fonte]

Uma terceira categoria de memória é semi-volátil. O termo é usado para descrever uma memória que tem alguma duração não volátil limitada após a remoção da energia, mas depois os dados são perdidos. Um objetivo típico ao usar uma memória semi-volátil é fornecer o desempenho e durabilidade elevados associados à memória volátil, ao mesmo tempo em que oferece alguns benefícios da memória não volátil.

Por exemplo, alguns tipos de memória não volátil sofrem desgaste quando gravados. Uma célula "gasta" tem volatilidade aumentada, mas continua a funcionar. As localizações de dados que são gravadas com frequência podem ser direcionadas para usar circuitos desgastados. Contanto que a localização seja atualizada dentro de algum tempo de retenção conhecido, os dados permanecem válidos. Após um período sem atualização, o valor é copiado para um circuito menos desgastado com retenção mais longa. Gravar primeiro na área desgastada permite uma alta taxa de gravação, evitando o desgaste nos circuitos não desgastados.[38]

Como segundo exemplo, um STT-RAM pode ser tornado não volátil construindo células grandes, mas isso aumenta o custo por bit e os requisitos de energia e reduz a velocidade de gravação. Usar células pequenas melhora o custo, energia e velocidade, mas leva a um comportamento semi-volátil. Em algumas aplicações, a volatilidade aumentada pode ser gerenciada para fornecer muitos benefícios de uma memória não volátil, por exemplo, removendo a energia mas forçando uma reinicialização antes que os dados sejam perdidos; ou armazenando em cache dados somente leitura e descartando os dados em cache se o tempo sem energia exceder o limiar não volátil.[39]

O termo semi-volátil também é usado para descrever comportamento semi-volátil construído a partir de outros tipos de memória. Por exemplo, uma memória de acesso aleatório estática não volátil e uma memória de acesso aleatório estática podem ser combinadas, onde um sinal externo copia dados da memória volátil para a memória não volátil, mas se a energia for removida antes que a cópia ocorra, os dados são perdidos. Ou, uma memória volátil com backup de bateria, e se a energia externa for perdida, há algum período conhecido em que a bateria pode continuar a alimentar a memória volátil, mas se a energia ficar desligada por um período prolongado, a bateria se esgota e os dados são perdidos.[37]

Gerenciamento[editar | editar código-fonte]

Ver artigo principal: Gerenciamento de memória

O gerenciamento adequado da memória é vital para o funcionamento adequado de um sistema de computador. Sistemas operacionais modernos têm sistemas complexos para gerenciar adequadamente a memória. A falha em fazê-lo pode levar a bugs ou desempenho lento.

Bugs[editar | editar código-fonte]

O gerenciamento inadequado da memória é uma causa comum de bugs, incluindo os seguintes tipos:

  • Um vazamento de memória ocorre quando um programa solicita memória ao sistema operacional e nunca devolve a memória quando termina de usá-la. Um programa com esse bug gradualmente exigirá mais e mais memória até que o programa falhe, pois o sistema operacional fica sem memória.
  • Uma falha de segmentação ocorre quando um programa tenta acessar memória para a qual não tem permissão de acesso. Geralmente, um programa que faz isso será encerrado pelo sistema operacional.
  • Um estouro de buffer ocorre quando um programa escreve dados no final de seu espaço alocado e continua a escrever dados além disso na memória alocada para outros fins. Isso pode resultar em comportamento errático do programa, incluindo erros de acesso à memória, resultados incorretos, uma falha ou uma violação da segurança do sistema. Portanto, são a base de muitas vulnerabilidades de software e podem ser explorados maliciosamente.

Memória virtual[editar | editar código-fonte]

Ver artigo principal: Memória virtual

A memória virtual é um sistema em que a memória física é gerenciada pelo sistema operacional, geralmente com a assistência de uma unidade de gerenciamento de memória, que faz parte de muitas CPUs modernas. Isso permite o uso de vários tipos de memória. Por exemplo, alguns dados podem ser armazenados na RAM, enquanto outros dados são armazenados em um disco rígido (por exemplo, em um arquivo de troca), funcionando como uma extensão da hierarquia de cache. Isso oferece várias vantagens. Os programadores de computadores não precisam mais se preocupar com onde seus dados estão fisicamente armazenados ou se o computador do usuário terá memória suficiente. O sistema operacional colocará dados usados ativamente na RAM, que é muito mais rápida que os discos rígidos. Quando a quantidade de RAM não é suficiente para executar todos os programas atuais, pode resultar em uma situação em que o computador gasta mais tempo movendo dados da RAM para o disco e vice-versa do que realizando tarefas; isso é conhecido como thrashing.

Memória protegida[editar | editar código-fonte]

Ver artigo principal: Proteção de memória

A memória protegida é um sistema em que cada programa recebe uma área de memória para usar e é impedido de sair desse intervalo. Se o sistema operacional detectar que um programa tentou alterar a memória que não pertence a ele, o programa será encerrado (ou restrito ou redirecionado de outra forma). Dessa forma, apenas o programa ofensivo trava, e outros programas não são afetados pelo mau comportamento (seja acidental ou intencional). O uso de memória protegida melhora significativamente a confiabilidade e a segurança de um sistema de computador.

Sem memória protegida, é possível que um bug em um programa altere a memória usada por outro programa. Isso fará com que o outro programa execute com memória corrompida e resultados imprevisíveis. Se a memória do sistema operacional estiver corrompida, o sistema de computador inteiro pode travar e precisar ser reinicializado. Às vezes, programas intencionalmente alteram a memória usada por outros programas. Isso é feito por vírus e malware para assumir o controle de computadores. Também pode ser usado benevolentemente por programas desejáveis que têm a intenção de modificar outros programas, depuradores, por exemplo, para inserir pontos de interrupção ou ganchos.

Ver também[editar | editar código-fonte]

Notas

  1. Outras tecnologias de memória volátil que tentaram competir ou substituir SRAM e DRAM incluem Z-RAM e A-RAM.

Referências

  1. Read, Jennifer (5 de novembro de 2020). «Era DDR5 Oficialmente Inicia em 2021, Com o Mercado de DRAM Atualmente em Transição Entre Gerações, Diz TrendForce». EMSNow. Consultado em 2 de novembro de 2022 
  2. a b Hemmendinger, David (15 de fevereiro de 2016). «Memória de Computador». Enciclopédia Britannica. Consultado em 16 de outubro de 2019 
  3. A.M. Turing e R.A. Brooker (1952). Manual do Programador para o Computador Eletrônico Mark II de Manchester Arquivado em 2014-01-02 no Wayback Machine. Universidade de Manchester.
  4. «Documentação para /proc/sys/vm/» 
  5. «O Mercado de Memória MOS» (PDF). Integrated Circuit Engineering Corporation. Smithsonian Institution. 1997. Consultado em 16 de outubro de 2019. Cópia arquivada (PDF) em 25 de julho de 2003 
  6. «Tendências do Mercado de Memória MOS» (PDF). Integrated Circuit Engineering Corporation. Smithsonian Institution. 1998. Consultado em 16 de outubro de 2019. Cópia arquivada (PDF) em 16 de outubro de 2019 
  7. «1960 - Transistor MOS de Metal-Oxido-Semicondutor (MOS) Demonstrado». The Silicon Engine. Computer History Museum 
  8. «1953: Whirlwind computer debuts core memory». Computer History Museum. Consultado em 2 de agosto de 2019 
  9. a b c d e f «1966: Semiconductor RAMs Serve High-speed Storage Needs». Computer History Museum. Consultado em 19 de junho de 2019 
  10. «1953: Transistors make fast memories | The Storage Engine | Computer History Museum». www.computerhistory.org. Consultado em 14 de novembro de 2019 
  11. Orton, John W. (2009). Semiconductors and the Information Revolution: Magic Crystals that made IT Happen. [S.l.]: Academic Press. p. 104. ISBN 978-0-08-096390-7 
  12. Solid State Design - Vol. 6. [S.l.]: Horizon House. 1965 
  13. a b c «1970: MOS Dynamic RAM Competes with Magnetic Core Memory on Price». Computer History Museum. Consultado em 29 de julho de 2019 
  14. Wood, J.; Ball, R. (Fevereiro de 1965). «The use of insulated-gate field-effect transistors in digital storage systems». 1965 IEEE International Solid-State Circuits Conference. Digest of Technical Papers. 1965 IEEE International Solid-State Circuits Conference. Digest of Technical Papers. VIII. pp. 82–83. doi:10.1109/ISSCC.1965.1157606 
  15. «1968: Silicon Gate Technology Developed for ICs». Computer History Museum. Consultado em 10 de agosto de 2019 
  16. Critchlow, D. L. (2007). «Recollections on MOSFET Scaling». IEEE Solid-State Circuits Society Newsletter. 12 (1). pp. 19–22. doi:10.1109/N-SSC.2007.4785536 
  17. a b «DRAM». IBM100. IBM. 9 de agosto de 2017. Consultado em 20 de setembro de 2019 
  18. «Ficha Técnica para Toshiba "TOSCAL" BC-1411». Old Calculator Web Museum. Consultado em 8 de maio de 2018. Cópia arquivada em 3 de julho de 2017 
  19. «Toshiba "Toscal" BC-1411 Desktop Calculator». Cópia arquivada em 20 de maio de 2007 
  20. «1966: Semiconductor RAMs Serve High-speed Storage Needs». Computer History Museum 
  21. «Robert Dennard». Encyclopedia Britannica. Consultado em 8 de julho de 2019 
  22. «Intel: 35 Years of Innovation (1968–2003)» (PDF). Intel. 2003. Consultado em 26 de junho de 2019. Cópia arquivada (PDF) em 4 de novembro de 2021 
  23. a b A memória DRAM de Robert Dennard history-computer.com
  24. Lojek, Bo (2007). História da Engenharia de Semicondutores. [S.l.: s.n.] pp. 362–363. ISBN 9783540342588. O i1103 foi fabricado em um processo de silício P-MOS de porta MOS de 6 máscaras com características mínimas de 8 µm. O produto resultante tinha um tamanho de célula de memória de 2.400 µm, um tamanho de matriz de apenas menos de 10 mm² e era vendido por cerca de US$ 21. 
  25. «KM48SL2000-7 Datasheet». Samsung. Agosto de 1992. Consultado em 19 de junho de 2019 
  26. «Electronic Design». 41 (15–21). Hayden Publishing Company. 1993. O primeiro DRAM síncrono comercial, o Samsung 16-Mbit KM48SL2000, emprega uma arquitetura de banco único que permite aos projetistas de sistemas fazerem a transição facilmente de sistemas assíncronos para síncronos. 
  27. Han-Way Huang (5 de dezembro de 2008). Projeto de Sistemas Embarcados com C805. [S.l.]: Cengage Learning. p. 22. ISBN 978-1-111-81079-5. Cópia arquivada em 27 de abril de 2018 
  28. Marie-Aude Aufaure; Esteban Zimányi (17 de janeiro de 2013). Business Intelligence: Segunda Escola de Verão Europeia, eBISS 2012, Bruxelas, Bélgica, 15 a 21 de julho de 2012, Palestras Tutorial. [S.l.]: Springer. p. 136. ISBN 978-3-642-36318-4. Cópia arquivada em 27 de abril de 2018 
  29. «1971: ROM semicondutor reutilizável introduzido». Computer History Museum. Consultado em 19 de junho de 2019 
  30. Tarui, Y.; Hayashi, Y.; Nagai, K. (1972). «Memória semicondutora não volátil reprogramável eletricamente». IEEE Journal of Solid-State Circuits. 7 (5). pp. 369–375. Bibcode:1972IJSSC...7..369T. ISSN 0018-9200. doi:10.1109/JSSC.1972.1052895 
  31. Fulford, Benjamin (24 de junho de 2002). «Herói desconhecido». Forbes. Consultado em 18 de março de 2008. Cópia arquivada em 3 de março de 2008 
  32. US 4531203 
  33. «Toshiba: Inventor da Memória Flash». Toshiba. Consultado em 20 de junho de 2019 
  34. Masuoka, F.; Momodomi, M.; Iwata, Y.; Shirota, R. (1987). «Nova EPROM de alta densidade e EEPROM flash com célula de estrutura NAND». Reunião Internacional de Dispositivos Eletrônicos, 1987. IEDM 1987. IEEE. pp. 552–555. doi:10.1109/IEDM.1987.191485 
  35. «1987: Toshiba Lança NAND Flash». eWeek. 11 de abril de 2012. Consultado em 20 de junho de 2019 
  36. «1971: ROM semicondutor reutilizável introduzido». Computer History Museum. Consultado em 19 de junho de 2019 
  37. a b c d e Stanek, William R. (2009). Windows Server 2008 Inside Out. [S.l.]: O'Reilly Media, Inc. 1520 páginas. ISBN 978-0-7356-3806-8. Consultado em 20 de agosto de 2012. Cópia arquivada em 27 de janeiro de 2013. [...] O Windows Server Enterprise suporta clustering com clusters de até oito nós e configurações de memória muito grande (VLM) de até 32 GB em sistemas de 32 bits e 2 TB em sistemas de 64 bits. 
  38. Montierth, Briggs, Keithley. «Semi-volatile NAND flash memory». Consultado em 20 de maio de 2018 
  39. Keppel, Naeimi, Nasrullah. «Method and apparatus for managing a spin-transfer torque memory». Google Patents. Consultado em 20 de maio de 2018 

Leitura adicional[editar | editar código-fonte]

  • Miller, Stephen W. (1977), Memory and Storage Technology, Montvale.: AFIPS Press 
  • Memory and Storage Technology, Alexandria, Virginia.: Time Life Books, 1988