Prévia do material em texto
Resumo Detalhado dos Capítulos 4, 5 e 6 - Stallings: Arquitetura e Organização de Computadores Capítulo 4 - Memória Cache 4.1 Visão Geral do Sistema de Memória do Computador A memória cache é um dos principais componentes de um sistema computacional moderno, funcionando como um armazenamento intermediário entre o processador e a memória principal. Seu objetivo é minimizar o tempo de acesso aos dados e instruções frequentemente utilizados pelo processador. Como a memória RAM ainda apresenta uma latência considerável em relação à velocidade do processador, a cache armazena um subconjunto dos dados acessados recentemente, proporcionando um acesso mais rápido e eficiente. 4.2 Princípios da Memória Cache A eficiência da memória cache é baseada nos princípios da localidade: • Localidade Temporal: Dados ou instruções recentemente utilizados possuem maior probabilidade de serem acessados novamente em um curto período de tempo. Isso justifica a existência de memórias cache pequenas e de alta velocidade. • Localidade Espacial: Quando um dado é acessado, é provável que os dados adjacentes também sejam acessados em breve. Esse conceito é aproveitado por técnicas como o carregamento de blocos inteiros na cache. A hierarquia de memória segue um modelo que equilibra capacidade, velocidade e custo, com diferentes níveis de memória (L1, L2, L3), RAM e armazenamento em disco. 4.3 Elementos de Projeto da Cache A memória cache pode ser projetada de diferentes maneiras para otimizar o desempenho do sistema: • Tamanho da cache: Memórias cache maiores reduzem a taxa de falhas, mas aumentam a latência e o consumo de energia. • Política de mapeamento: Define como os dados da memória principal são alocados na cache. Os principais tipos são: o Mapeamento Direto: Cada bloco de memória principal pode ser armazenado apenas em um único lugar na cache. o Mapeamento Associativo: Qualquer bloco pode ser armazenado em qualquer local da cache, proporcionando maior flexibilidade e menor taxa de falhas. o Mapeamento Associativo por Conjunto: Compromisso entre os dois anteriores, dividindo a cache em conjuntos de vias, permitindo um balanceamento entre desempenho e custo. • Política de substituição: Quando a cache está cheia, é necessário remover um bloco para armazenar um novo. Algumas políticas incluem: o FIFO (First-In, First-Out): Remove o bloco mais antigo. o LRU (Least Recently Used): Remove o bloco menos utilizado recentemente. o Aleatório: Escolhe um bloco aleatoriamente. • Política de escrita: Define como os dados modificados na cache são gravados na memória principal: o Write-through: Cada alteração é imediatamente gravada na memória principal, garantindo consistência, mas aumentando a latência. o Write-back: As alterações são mantidas na cache e escritas na memória principal apenas quando necessário, melhorando o desempenho. 4.4 Organização da Cache do Pentium 4 O processador Pentium 4 utiliza um sistema multinível de cache para otimizar o acesso a dados e instruções: • Cache L1: Dividida em cache de instruções e cache de dados, proporcionando latência reduzida. • Cache L2: Armazena um maior volume de dados acessados recentemente. • Cache L3: Compartilhada entre os núcleos do processador, melhorando a eficiência no processamento paralelo. Capítulo 5 - Memória Interna 5.1 Memória Principal Semicondutora A memória principal de um computador moderno é composta por chips semicondutores, sendo as duas principais tecnologias: • SRAM (Static RAM): o Armazena dados sem necessidade de refrescamento constante. o Mais rápida e eficiente, mas mais cara. o Usada em caches L1, L2 e L3. • DRAM (Dynamic RAM): o Precisa ser refrescada periodicamente para manter os dados. o Mais barata e densa, mas com maior latência. o Utilizada como memória principal do sistema. 5.2 Correção de Erro Os sistemas de memória utilizam técnicas de detecção e correção de erros, sendo a mais comum o código SEC-DED (Single Error Correction, Double Error Detection), que permite detectar e corrigir um erro de bit e identificar dois erros simultâneos. 5.3 DDR-DRAM A evolução da memória DRAM levou ao desenvolvimento das memórias DDR (Double Data Rate), que oferecem maior largura de banda. As versões modernas incluem DDR2, DDR3, DDR4 e DDR5, cada uma trazendo melhorias em velocidade e eficiência energética. 5.4 Memória Flash A memória flash é amplamente utilizada para armazenamento permanente, com aplicações em SSDs e dispositivos USB. Divide-se em: • NOR Flash: Permite acesso aleatório rápido, ideal para firmware. • NAND Flash: Maior densidade e velocidade de gravação, usada em SSDs e dispositivos de armazenamento de massa. Capítulo 6 - Memória Externa 6.1 Disco Magnético Os discos rígidos armazenam dados magneticamente em pratos rotativos. As principais características incluem tempo de busca, latência rotacional e taxa de transferência de dados. O desempenho de um disco depende da velocidade de rotação e da eficiência dos algoritmos de leitura e escrita. 6.2 RAID (Redundant Array of Independent Disks) RAID é uma tecnologia que combina múltiplos discos rígidos para melhorar desempenho e/ou redundância. Os principais níveis são: • RAID 0: Distribuição de dados sem redundância, aumentando a velocidade. • RAID 1: Espelhamento de discos, garantindo maior segurança. • RAID 5: Distribuição de dados com paridade, oferecendo um equilíbrio entre segurança e desempenho. 6.3 SSDs (Drives de Estado Sólido) SSDs utilizam memória flash NAND para armazenamento, sendo mais rápidos e confiáveis que HDDs, pois não possuem partes móveis. Seu desempenho é determinado pela interface (SATA, NVMe) e pelo controlador interno. 6.4 Memória Óptica A memória óptica, como CDs, DVDs e Blu-rays, utiliza feixes de laser para leitura e gravação. Esses dispositivos oferecem armazenamento de longo prazo, mas possuem menor velocidade de acesso quando comparados a SSDs e HDDs. 6.5 Fita Magnética Usada para backups de longo prazo, a fita magnética possui alta capacidade de armazenamento e custo reduzido, mas seu acesso é sequencial, tornando-a menos eficiente para recuperação rápida de dados.