Dispositivos de memória para sistemas digitais – DE Parte 21

Dispositivos de memória para sistemas digitais – DE Parte 21

Nos tutoriais anteriores, aprendemos que circuitos sequenciais requerem elementos de memória para reter estados anteriores de um sistema digital. Os flip-flops e registradores foram então introduzidos como blocos de construção de memória em um circuito sequencial. Os registradores são suficientes para armazenar dados de tempo de execução em pequenos microcontroladores e ASICs. Os sistemas de computação complexos requerem memória digital não apenas para armazenar informações de tempo de execução (conforme armazenadas pelos registros em um microcontrolador), mas para armazenar programas e dados permanentemente dentro do sistema digital. Portanto, eles requerem memória dedicada interna ou externa.

Uma memória é definida como um dispositivo que pode armazenar informações binárias para serem acessadas quando necessário para processamento. Após o processamento, os resultados finais podem ser armazenados de volta na memória. Os sistemas digitais podem ser de 8 bits, 16 bits, 32 bits, 64 bits e assim por diante. Os sistemas de 8 bits, 16 bits, 32 bits e 64 bits armazenam dados como palavras de 8 bits, 16 bits, 32 bits e 64 bits, respectivamente. O tamanho da memória é expresso em bytes, quilo bytes, mega bytes, giga bytes e assim por diante. Qualquer memória é dividida em blocos de construção chamados células. Cada célula é identificada por um endereço exclusivo que varia de 0 ao número de células menos uma. Dependendo do tipo de sistema digital, ou seja, 8 bits, 16 bits, 32 bits ou 64 bits, as células na memória podem ter comprimento de 8 bits, 16 bits, 32 bits, 64 bits.

A memória em um sistema digital pode ser usada para armazenar programas e dados permanentemente ou para armazenar dados e instruções de um programa temporariamente durante o tempo de execução de um programa ou aplicativo. A maioria dos sistemas digitais requer recursos de memória para armazenamento temporário e permanente de dados e programas para executar as aplicações pretendidas. Em alguns sistemas digitais, a memória pode ser usada apenas para reter dados enquanto eles são transferidos de um dispositivo de entrada para um dispositivo de saída.

A categorização da memória digital geralmente é feita no contexto de sistemas de computação de desktop e servidor. Com base na localização e uso de memórias (em sistemas desktop e servidores), existem três tipos de memórias –

1) Memória Cache

2) Memória Principal

3) Memória Secundária

Memória cache

A memória cache é uma memória semicondutora de alta velocidade integrada no chip do processador ou interconectada ao processador por um barramento separado. A CPU ou processador pode acessar dados da memória cache mais rapidamente em comparação com a memória principal. O cache geralmente é um grupo de registradores semicondutores ou memória estática de acesso aleatório. Em microcontroladores e pequenos microprocessadores, um grupo de poucos registros pode servir de forma semelhante à memória cache.

O cache é usado para armazenar dados e instruções que são usados ​​repetidamente pelo processador na execução de um programa, ou dados e instruções que podem ser necessários em seguida pelo processador. Como a memória cache é uma memória de alta velocidade integrada ou intimamente interconectada ao processador, ou seja, está mais próxima do processador, ela ajuda a aumentar a velocidade geral de execução do programa.

A memória cache é mais rápida que a memória principal e pode ser acessada em menos tempo em comparação com a memória principal de qualquer sistema digital. Como a memória cache é muito cara e tem tamanho limitado, ela é usada apenas para armazenamento de dados temporários e instruções de tempo de execução que devem ser executadas imediatamente em um curto período de tempo.

A maioria dos processadores de desktop e servidores possui memória cache multicamadas ou multinível. Dependendo da proximidade e acessibilidade, esses níveis são categorizados da seguinte forma –

1) Cache L1 – Nível 1 ou Cache Primário é o cache mais rápido e mais próximo do processador, sempre incorporado no chip do processador.

2) Cache L2 – O cache de nível 2 ou secundário geralmente é maior em tamanho que o cache L1. Ele está incorporado no chip do processador ou conectado ao processador por um barramento de interconexão dedicado. É usado quando o cache L1 é consumido pelos dados de tempo de execução.

3)L3 Cache – O nível 3 é uma memória cache mais rápida que a RAM (memória primária), mas significativamente mais lenta que o cache L2. Ele foi projetado para acompanhar as memórias cache L1 e L2 durante a execução de grandes programas. Em processadores multi-core, cada núcleo geralmente possui cache L1 e L2 individuais e compartilha um cache L3 comum. Hoje em dia, a maioria dos chips processadores possui cache L1, L2 e L3 integrados no próprio chip processador.

4) Caches especializados – Um sistema de computação digital pode ter diferentes caches especializados. Como pode haver capturas de disco para armazenar e acessar rapidamente os dados usados ​​com frequência. Pode haver capturas especializadas para aplicações específicas, como navegadores, vinculação de endereços de rede, bancos de dados, etc.

Imagem típica de memória cache externa

Figura 1: Imagem típica de memória cache externa

Memória principal

A memória principal é a memória externa usada para armazenar dados, programas ou sistema operacional que um sistema de computação está executando no momento. Também tem capacidade limitada, mas significativamente grande em comparação com as memórias cache. Assim como as memórias cache geralmente têm poucos kilobytes ou megabytes, enquanto a memória principal geralmente está em gigabytes. A memória principal é novamente uma memória semicondutora, mas é mais lenta em comparação aos registradores. É uma memória volátil e os dados armazenados/carregados nela são perdidos quando a energia é desligada. A memória principal, também chamada de memória primária, é classificada como RAM (Random Access Memory) e ROM (Read Only Memory).

Imagem típica de Memórias Primárias – RAM e ROM

Figura 2: Imagem típica de memórias primárias – RAM e ROM

Memória secundária

A memória secundária é uma memória externa usada para armazenamento permanente de dados e programas. São memórias ópticas (CD, DVD ou Blu-Ray Discs) ou magnéticas (Discos Rígidos) que são memórias não voláteis e podem reter os dados nelas armazenados mesmo quando não estão ligadas. Qualquer processador acessa essas memórias através de rotinas de entrada e saída. Os dados (arquivos do sistema operacional, dados e programas) armazenados nessas memórias são primeiro lidos e carregados na memória primária (RAM) e depois lidos pelo processador a partir da memória primária. Os discos ópticos podem armazenar dados de até alguns gigabytes, enquanto os discos magnéticos com capacidade em terabytes estão disponíveis.

Imagem típica de memórias secundárias, como discos rígidos

Figura 3: Imagem típica de memórias secundárias, como discos rígidos

Memórias semicondutoras, ópticas e magnéticas

Com base na construção, as memórias podem ser classificadas como memórias semicondutoras, ópticas e magnéticas. As memórias semicondutoras são construídas em wafers de silício usando tecnologias LSI, VLSI ou ULSI. Eles são semelhantes aos ICs digitais que possuem portas lógicas usadas em sua construção, exceto pelo fato de serem construídas explicitamente apenas para armazenar dados. Memória cache, memórias Flash e memórias primárias (RAM e ROM) são memórias semicondutoras.

As memórias ópticas armazenam dados em meio legível opticamente. CD, DVD e Blu-Ray Discs são exemplos populares de memórias ópticas. Os dados são gravados e lidos a partir de memórias ópticas com a ajuda de unidades de disco óptico, focalizando a luz laser em um disco óptico giratório. Os discos compactos (CDs) podem armazenar dados de até 700 MB. Os DVDs de camada única podem armazenar 4,7 GB de dados, enquanto os DVDs de camada dupla podem armazenar 8,5 GB de dados. Os HD DVDs podem armazenar 15 GB de dados em camada única e 30 GB em camada dupla. Os discos blu-ray de camada única podem armazenar 25 GB de dados, enquanto os discos blu-ray de camada dupla podem armazenar 50 GB de dados. Os blu-rays de quatro camadas podem armazenar 128 GB de dados.

As memórias magnéticas armazenam dados em meio magnetizado. Os dados são armazenados e lidos na memória magnética usando o cabeçote de leitura/gravação, onde os dados são armazenados permanentemente no disco como padrões magnéticos. A memória magnética mais utilizada são os discos rígidos. Sua capacidade pode variar de gigabytes a terabytes. Outros exemplos de memórias magnéticas são disquetes, tiras magnéticas e fitas magnéticas de gravação (fitas de áudio) que já não estão obsoletas.

Memória volátil e não volátil

A memória volátil é um tipo de memória que perde os dados armazenados quando a energia do circuito de memória é cortada. A memória cache e a RAM são memórias voláteis. A memória não volátil retém os dados armazenados permanentemente mesmo depois que a fonte de alimentação é desligada. A ROM, as memórias Flash e os dispositivos de memória secundária, sejam eles ópticos ou magnéticos, são todos memórias não voláteis.

Memórias Estáticas e Dinâmicas (Voláteis)

Em memórias voláteis como a RAM, os dados são retidos pelo dispositivo de memória até que a energia esteja disponível para o dispositivo de memória. A memória volátil pode ser novamente do tipo estático ou dinâmico. Na memória estática volátil, os dados permanecem armazenados na memória até que a energia esteja disponível, sem qualquer necessidade de atualizar ou reescrever dados periodicamente. Registros, RAM estática e cartões perfurados são memórias estáticas voláteis.

Na memória dinâmica volátil, os dados não permanecem armazenados permanentemente; em vez disso, precisam ser reescritos periodicamente, apesar do fornecimento contínuo de energia. A memória dinâmica usa a capacitância de um transistor como dispositivo de armazenamento. Apenas um transistor é necessário para armazenar um bit de informação. O capacitor deve ser atualizado periodicamente sem ser descarregado para evitar perda de informações. RAM dinâmica e registros circulantes usando CCD (Charge Coupled Devices) são exemplos de memórias voláteis dinâmicas.

Memórias de acesso sequencial e acesso aleatório

Os dispositivos de memória também podem ser classificados com base no método de acesso. Com base no método de acesso, os dispositivos de memória podem ser classificados como memórias de acesso sequencial e memórias de acesso aleatório. Em uma memória de acesso sequencial, um determinado local de memória é acessado sequencialmente, ou seja, qualquer local de memória é acessado somente após o sequenciamento dos locais de memória anteriores. Portanto, o tempo de acesso de uma memória sequencial varia dependendo do local a ser acessado. A ROM e os dispositivos de armazenamento secundário, como discos rígidos e discos ópticos, são memórias de acesso sequencial.

Por outro lado, na memória de acesso aleatório, qualquer local da memória pode ser acessado de forma aleatória e, portanto, sempre tem tempo de acesso igual para todos os locais da memória. As memórias Cache e RAM (Random Access Memory) são exemplos de memórias de acesso aleatório.

Memória virtual

A memória virtual é uma técnica de gerenciamento de memória que permite a transferência temporária de dados de tempo de execução da RAM para o armazenamento secundário (disco rígido) para suprir a falta de memória primária (RAM) durante a execução de programas grandes. Desta forma, uma memória virtual extremamente grande fica disponível para o programador, apesar do tamanho menor da memória física disponível. Esta técnica é implementada pelo sistema operacional onde o sistema operacional forma endereços contíguos entre a RAM e a memória virtual alocada no disco rígido para armazenar dados de tempo de execução ativos na RAM e dados de tempo de execução inativos no disco rígido. Nas situações a seguir, não é necessário que todo o programa seja totalmente carregado na memória principal (RAM) e, portanto, a memória virtual pode ser usada –

  • As rotinas de tratamento de erros escritas pelo usuário são usadas somente quando ocorre um erro nos dados ou na computação.
  • Certas opções e recursos de um programa podem ser usados ​​raramente.
  • Muitas tabelas recebem uma quantidade fixa de espaço de endereço, embora apenas uma pequena parte da tabela seja realmente usada.
  • A capacidade de executar um programa que está apenas parcialmente na memória contrariaria muitos benefícios.
  • Seria necessário menos E/S para carregar ou trocar cada programa do usuário na memória.
  • Um programa não seria mais limitado pela quantidade de memória física disponível.
  • Cada programa do usuário pode ocupar menos memória física; mais programas poderiam ser executados ao mesmo tempo, com um aumento correspondente na utilização e rendimento da CPU.

Os sistemas computacionais (microcontroladores, placas filhas e placas-mãe) dependem principalmente de memórias semicondutoras (cache, RAM e ROM) para execução de programas. No próximo tutorial, RAM e ROM será discutido em detalhes.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.