Organização de Computadores 1 3.3 – SISTEMAS DE MEMÓRIA Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann: Computadores atuais Memória: Unidade de Processamento Central (CPU) Registradores Sistema Memória PC Unidade Lógica e Aritmética Sistema de E/S Unidade de Controle Sistema de Interconexão (Barramento do Sistema) Memórias São componentes em um computador capazes de armazenar informações (dados e instruções). 9 Ex: registradores, memória principal, disco rígido, etc. Existe uma grande variedade de tipos e tecnologias empregadas nas memórias atuais. 9 A escolha é feita de acordo com os requisitos de custo e desempenho. As memórias tem um papel desempenho de um computador. crítico no Algumas Formas de Armazenamento Dígito Binário (BIT) Informações digitais podem ser armazenadas pela distinção entre valores de alguma grandeza física contínua. 9 Ex: tensão ou corrente. Maior qtde. de valores distintos reduz a separação entre valores adjacentes, minimizando a confiabilidade do armazenamento. Sistema binário é o método mais confiável para codificar informações digitais. 9 Requer a distinção entre 2 valores apenas (0 ou 1). Unidade básica de armazenamento: Bit é a unidade básica de dado de um sistema de computador e, portanto, da memória. BCD (Binary Coded Decimal) Código decimal codificado em binário: 9 Utiliza 4 bits para representar um dígito decimal. Empregado em alguns computadores para implementar aritmética decimal. 9 Ex: mainframes da IBM. Exemplo de codificação: número 1944. 9 Binário: 9 BCD: 0000 0111 1001 1000 0001 1001 0100 0100 A mesma qtde. de bits representa menos números em BCD comparado com a representação binária (desperdício de bits). 9 16 combinações para 10 dígitos = desperdício de 6. 9 16 bits = 0 a 9999 em BCD. 9 16 bits = 0 a 65.536 em binário. Classificação de Memória Organização da Memória A memória do computador é dividida em células. 9 Todas as células possuem o mesmo nº de bits. 9 Células de K bits → armazenam 2K valores diferentes. 9 Uma célula é a menor unidade endereçável da memória, ou seja, menor localização unicamente endereçada. Palavra é a unidade natural de organização da memória. 9 Grande parte das instruções efetuam operações com palavras. 8 A comunicação com a CPU é feita por palavras. 9 Tamanhos usuais: 8, 16, 32 e 64 bits. 9 Ex: computador de 32 bits → 4 bytes/palavra. Organização: arranjo físico dos bits para formar palavras. Localização Processador: memórias locais do processador. 9 Ex: memória de controle (UC) e registradores. Interna ou primária: memórias que podem ser acessadas diretamente pelo processador. 9 Estão contidas em circuitos integrados (chips). 9 São + rápidas, + caras e com < capacidade (> custo/bit). 9 Ex: cache e memória principal. Externa ou secundária: memórias acessíveis indiretamente pelo processador através de módulos de E/S (dispositivos de armazenamento periféricos). 9 São + lentas, + baratas e com > capacidade. 9 Ex: discos e fitas magnéticos, discos ópticos, etc. Capacidade da Memória Capacidade está associada à quantidade e ao tamanho (nº de bits) da célula. 9 Para otimizar a qtde. de sinais de endereçamento, o nº de células sempre é uma potência de 2. A capacidade da memória interna é expressa em bytes ou palavras. 9 Ordens de grandeza: 103 = Kb (cache L1); 106 = Mb (cache L2); e 109 = Gb (memória principal). A capacidade da memória externa é tipicamente expressa em bytes. 9 Ordens de grandeza: 106 = Mb; 109 = Gb e 1012 = Tb. Exemplos de Arranjos de Memórias Memória de 96 bits Unidade de Transferência Unidade de transferência de dados corresponde ao nº de bits que podem ser lidos ou escritos de cada vez. Memória interna: a unidade de transferência é governada pela largura do barramento de dados. 9 Normalmente o nº de linhas de dados = tamanho da palavra. 9 Internamente, o endereçamento é feito por palavras. Memória externa: a unidade de transferência é feita por blocos de dados. 9 Um bloco é muito maior que uma palavra (bloco >> palavra). 9 Em unidades de disco, o bloco é a unidade de endereçamento dos dados (clusters). Método de Acesso Seqüencial ou serial: o acesso é feito seguindo uma seqüência linear específica. 9 Mecanismo compartilhado para leitura e escrita. 9 Tempo de acesso variável, dependente da posição. 9 Ex: fitas magnéticas. Direto: o acesso é feito por um salto até um bloco de registros, seguido por uma pesquisa seqüencial até o registro (posição) desejado. 9 Cada bloco possui um endereço único (localização física). 9 Mecanismo compartilhado para leitura e escrita. 9 Tempo de acesso variável. 9 Ex: Unidades de disco. Método de Acesso Aleatório: acesso é feito diretamente ao registro através de seu endereço. 9 Endereços individuais indicam a localização exata. 9 Mecanismo independente para leitura e escrita. 9 Tempo de acesso constante, independente da localização e dos acessos anteriores. 9 Ex: memória principal. Associativo: acesso é feito diretamente ao registro com base em parte de seu conteúdo. 9 Mecanismo de endereçamento próprio, baseado na comparação simultânea de alguns bits da palavra com todas as palavras da memória (identificação por padrão de bits). 9 Tempo de acesso constante. 9 Ex: memória cache. Desempenho Parâmetros de medida de desempenho de uma memória: 9 Tempo de acesso: tempo necessário para localizar, ler ou escrever um dado na memória. 8 Acesso aleatório: tempo gasto desde a apresentação do endereço, até o armazenamento ou a disponibilização do dado (operação L/E). 8 Acesso não-aleatório: tempo de posicionamento do mecanismo de leitura-escrita na posição desejada. 9 Tempo de ciclo de memória: tempo de acesso + tempo adicional requerido pela memória antes de iniciar o próximo acesso. 8 Tempo adicional para desaparecimento de transientes nas linhas ou para regeneração dos dados (memórias destrutivas). 9 Taxa de transferência: taxa na qual os dados podem ser movidos. 8 Acesso aleatório: 1 / TC onde: TC é o tempo de ciclo 8 Acesso não-aleatório: N / (TN - TA) onde: TN é o tempo médio de L/E de N bits e TA é o tempo médio de acesso. Tipo Físico Tipo físico: refere-se ao material empregado na construção da memória. Memórias internas: 9 Núcleo ferro-magnéticos: utilizada nos primeiros computadores. 9 Semicondutores: empregada atualmente. Memórias externas: 9 Superfície magnética: utilizada em discos e fitas. 9 Óptica: empregada em CDs e DVDs. Características Físicas Persistência: capacidade de manter a informação armazenada na ausência de energia. 9 Memórias voláteis: perdem seu conteúdo se faltar energia. 8 Ex: memória cache e memória principal. 9 Memórias não-voláteis: mantém o conteúdo mesmo sem energia. 8 Ex: memórias secundárias (discos, fitas, etc.). Alterabilidade: capacidade de modificar o conteúdo. 9 Memórias somente de leitura: não permitem gravação, só leitura. 8 Ex: memórias ROM e PROM. 9 Memórias principalmente de leitura: permitem gravações, mas sua principal utilização é a leitura. 8 Ex: memórias EPROM, EEPROM e flash. 9 Memórias de leitura e gravação: permitem operações de leitura e escrita rápidas e fáceis. 8 Ex: memórias RAM (cache e principal) e memórias secundárias. Tipos de Memória de Semicondutores Memória RAM (Random Access Memory): 9 Memória volátil que permite leitura e escrita. 9 Utilizada para armazenamento temporário. 9 Estática (SRAM): composta por circuitos do tipo flip-flop D. 8 Seu conteúdo é conservado enquanto houver energia. 8 São memórias rápidas. 8 Ex: memórias cache L2. 9 Dinâmica (DRAM): composta por arranjo de células, cada uma contendo um transistor e um pequeno capacitor. 8 Precisa de renovação periódica do conteúdo (refreshing). 8 Interface + complexa por causa da lógica externa de renovação. 8 São memórias + densas (> capacidade), + baratas e + lentas. 8 Ex: memória principal. Tipos de Memória de Semicondutores Memórias não-voláteis: 9 Utilizada para armazenamento persistente de dados e programas. 8 Ex: rotinas de inicialização do computador. 9 ROM (Read-Only Memory): seu conteúdo é gravado no processo de fabricação e não pode ser alterado. 8 Memória somente de leitura. 8 Usadas na microprogramação e em outras aplicações. 9 PROM (Programmable ROM): permite uma única gravação em campo (pós-produção) pelo fabricante ou cliente. 8 Necessita de um equipamento especial para gravação elétrica. 9 EPROM (Erasable PROM): permite várias gravações. 8 Memória principalmente de leitura. 8 Antes de uma gravação, deve ser totalmente apagada. 8 Necessita de um dispositivo especial. Tipos de Memória de Semicondutores Memórias não-voláteis (cont.): 9 EEPROM (Electrical EPROM): permite apagar parte de seu conteúdo (nível de bytes) eletronicamente. 8 Reprogramada no local pelo barramento. 8 Combina a não-volatilidade com a atualização direta. 9 Memória Flash: permite o apagamento parcial (nível de blocos) por pulsos elétricos. 8 Pode ser totalmente apagada em poucos segundos (+ rápida). 8 Características intermediárias entre a EPROM e a EEPROM. z z Deleção parcial de dados (apaga apenas alguns blocos da memória). Densidade similar a EPROM (apenas 1 transistor por bit). Endereçamento da Memória Células de memória são referenciadas por um nº identificador único (endereço da célula). 9 Memória com N células → endereços de 0 a N-1. 9 Células adjacentes possuem endereços consecutivos. 9 Byte é a menor unidade endereçável da memória. Endereços de memória são expressos no mesmo sistema numérico do computador (binário). 9 Nº bits no endereço define a qtde máx. de células endereçáveis. 8 Endereço de X bits → endereça até 2X células. 8 Independe do nº de bits por célula. Hierarquia de Memória Projeto de sistemas de memória: 9 Meta: reduzir a latência da memória (pedir e receber). 9 Fatores: capacidade, velocidade e custo. Objetivo: Prover boa capacidade de armazenamento a um custo razoável e um desempenho aceitável. Possível solução: utilizar + de uma tecnologia de memória organizada hierarquicamente em níveis. 9 Níveis + altos: + rápidas, < capacidade e > custo/bit. 9 Níveis + baixos: + lentas, > capacidade e < custo/bit. Hierarquia de Memória Importância: suaviza o gap de desempenho entre processadores e memórias. Idéia básica: memórias menores e mais rápidas sejam supridas pelas memórias maiores e + lentas. À medida que descemos na hierarquia temos: 9 Diminuição no custo/bit. 9 Aumento da capacidade de armazenamento. 9 Aumento no tempo de acesso. 9 Diminuição na freqüência de acesso à memória pelo processador (chave do sucesso). Hierarquia de Memória Registradores Memória cache L1 Memória cache L2 Memória principal Cache de disco Disco magnético Disco óptico Fita magnética + barato + lento > capacidade < capacidade + rápido + caro Hierarquia de Memória Nível Tecnologia Tamanho Tempo de acesso típico Custo/MB (US$) Registrador Flip-Flop D 32 - 64 bits 2 - 3 ns N/A Cache L1 SRAM 512 Kbytes 12 - 25 ns 400,00 Cache L2 SRAM 1 - 6 Mbytes 12 - 25 ns 400,00 Memória principal DRAM 1 – 8 Gbytes 60 - 70 ns 50,00 Memória secundária Disco magnético 80–500 Gbytes (∃ Tbytes) 8 - 10 ms 0,50 Princípios Básicos Inclusão: todo conteúdo da memória do nível i deve estar no nível i+1. 9 Níveis + altos são subconjuntos dos níveis + baixos. 8 Mi deve estar em Mi+1, Mi+2,...,Mk. 8 Mn NÃO está necessariamente em Mn-1. 9 Cada nível mapeia endereços de uma memória maior para uma memória menor (interface). Coerência: cópias de um mesmo conteúdo devem ser consistentes ao longo de níveis sucessivos. 9 Deve haver políticas de escrita entre os níveis para garantir a correta atualização das cópias. Princípios Básicos Localidade de referência: acessos à memória feitos em um intervalo curto de tempo tendem a usar apenas pequena fração da memória total. 9 Conceito fundamental para o funcionamento adequado da hierarquia de memória. 9 Localidade temporal: posições de memória acessadas, tendem a ser novamente referenciadas em um curto intervalo de tempo. 8 Ex: sub-rotinas, laços de repetição, variáveis temporárias e pilhas. 9 Localidade espacial: conteúdos próximos a uma posição de memória acessada, tendem a ser referenciados em breve. 8 Ex: instruções seqüenciais e vetores Acertos e Falhas Acerto: encontra o dado desejado naquele nível. Falha: o dado NÃO está na memória pesquisada. Taxa de acerto (H) = nº acertos / nº de acessos Taxa de falha = 1 - H Tempo de acerto: tempo necessário para acessar a memória e determinar um acerto ou uma falha. Penalidade por falha: tempo necessário para substituir um bloco da memória pelo bloco do nível superior que contém o dado, e o seu envio ao processador. 9 É maior que o acesso direto ao nível superior. Hierarquia de Memória Exemplo: Sistema de Memória em 2 Níveis Tempo de acesso: 9 Nível 1: T1 = 1μs. 9 Nível 2: T2 = 10 μs. Tempo médio de acesso: H1(1) + (1-H1)(1+10) μs Onde:H1 é a taxa de acerto (hit) da memória N1. H1 alto → TA ≈ T1 H1 baixo → TA > T2 Eficiência de acesso: T1 1 = TA 1 + (1 − H ) T2 T1 Custo Médio do Sistema em 2 Níveis Custo médio por bit do sistema (Cs): C1S1 + C2 S 2 CS = S1 + S2 Onde: - C1 é o custo/bit da memória do nível 1. - C2 é o custo/bit da memória do nível 2. - S1 é o tamanho da memória do nível 1. - S2 é o tamanho da memória do nível 2. Desejado → Cs ≈ C2 C1 >> C2 Questão: Qual é o custo médio de um sistema abaixo? Nível 1: custo/bit = $5,00 Nível 2: custo/bit = $0,50 tamanho = 512Kb tamanho = 4Gb Registradores Pequenas unidades de memória com alta velocidade. 9 Material semicondutor (circuitos Flip-Flop D) 9 É a memória + rápida, menor e + cara (custo/bit). 8 Tempo de acesso < 1 ciclo do relógio. 8 Capacidade para apenas um dado (palavra). Armazenamento temporário de dados, instruções e endereços em utilização pelo processador. 9 Armazena internamente resultados (ex: AC, MQ, AX - DX) 9 Auxilia no controle das operações (ex: PC, IR, MAR, MBR) Possuem diferentes funções, mas apresentam um uso bem definido dentro da arquitetura. Memória Principal Formada por elementos armazenadores de informação. 9 Material semicondutor (pastilhas de memória DRAM). Armazena temporariamente toda informação (dado e instrução) manipulada pelo computador. Memória interna + importante do computador. 9 A CPU só processa informações contidas na MP. 8 Dados e instruções são copiados da MP para os registradores. Memória Principal: exemplo distribuição Lógica Internas das Pastilhas Memória de semicondutores é empacotada em pastilhas. Organização das células x lógica funcional de uma pastilha. 9 Vários arranjos físicos são possíveis para um único arranjo lógico. Arranjo típico de uma memória DRAM: 9 Linhas de sinais horizontais (linhas). 9 Linhas de sinais verticais (colunas). 9 Linhas de dados. 9 Linhas de temporização (memória síncrona) e controle. 9 Áreas de armazenamento temporário dos sinais. 9 Mecanismo de regeneração. 9 Mecanismo de seleção de linha e coluna. 9 Mecanismo de leitura e gravação. Lógica Internas das Pastilhas Linhas de endereço multiplexadas: 9 Usa metade das linhas de endereço necessárias. 9 Necessita lógica externa para endereçamento. 9 Endereçamento em duas etapas: linha e coluna. 9 Proporciona economia na pinagem. 9 Cada novo pino de endereço = 4x capacidade da pastilha. DRAM Típica de 16 Mbits (4M x 4) 11 linhas de endereço (211 = 2048) 4 linhas de dados x x Sinais e Pinos Típicos x Organização em Módulos Se a qtde. de bits acessados < tamanho da palavra, então conectar várias pastilhas formando um módulo. Exemplo 1: 9 Pastilha com apenas 1 bit por palavra. 9 Módulo de 256K palavras de 8 bits. 8 pastilhas por módulo (cada pastilha gera 1 bit da palavra) 9 Endereço de 18 bits ⇒ 218 = 256K Endereço é apresentado a todas as pastilhas do módulo. Maior capacidade de memória pode ser obtida pelo agrupamento de conjuntos de pastilhas. 9 Ex 2: para 1M de palavra seria necessário 4 colunas de pastilhas do exemplo 1. 8 + 2 bits no endereço para seleção da coluna. Decodifica 1 palavra Organização de Memória de 256K 9 Decodifica 1 palavra Endereço (MAR) Pastilha 1 (512 palavras por 512 bits) Decodifica 1 bit Pastilha 2 (512 palavras por 512 bits) Decodifica 1 bit ● ● ● Decodifica 1 palavra 9 Pastilha 8 (512 palavras por 512 bits) Decodifica 1 bit Dado (MBR) 1 2 ... 8 Organização de Memória de 1M Endereço (MAR) 9 Pastilha 1 Pastilha 1 Pastilha 1 Pastilha 1 A B C D Dado (MBR) Pastilha 2 Pastilha 2 Pastilha 2 Pastilha 2 A B C D 1 2 ... ● ● ● 9 2 8 Pastilha 8 Pastilha 8 Pastilha 8 Pastilha 8 A B C D Detecção e Correção de Erros Memórias de semicondutores estão suscetíveis a erros. Sistemas de memória podem incluir lógica de detecção e correção de erros. 9 Aumenta o nº de bits (M bits de dados + K bits de teste). 2K - 1 ≥ M + K Código de correção mais simples é o código de Hamming. 9 Utiliza o conceito de bit de paridade. 9 SEC (single error correcting) ou SEC-DEC (double error detecting). Modo de Detecção e Correção de Erro Código de Hamming: Palavra de 4 bits Bits da palavra Bits de paridade Bits com erro A A 0 1 1 1 1 C 1 ⇒ 0 0 1 0 0 B C 1 0 0 B Correção de Erros Os bits de teste são colocados nas posições que são potência de 2. 12 11 10 9 8 7 6 5 4 3 2 1 M8 M7 M6 M5 C4 M4 M3 M2 C3 M1 C2 C1 O bit da posição N é testado pelos bits de controle Ci, tal que: Σ i = N. 9 Este teste é feito pela operação XOR (ou-exclusivo) sobre os bits. Detecção do erro e feito através de uma operação XOR sobre os códigos de testes gerados antes e depois. 9 Código resultante é chamado palavra síndrome. 8 Todos os bits é zero: não tem erro. 8 Apenas um bit 1: erro nos bits de teste (não precisa correção). 8 Mais de um bit 1: erro nos bits da palavra (valor numérico da palavra síndrome indica a posição do bit errado). Memória Cache Pequena quantidade de memória rápida localizada entre a CPU e a memória principal. 9 Material semicondutor (pastilhas de memória SRAM). 9 Pode estar no chip da CPU ou em um módulo externo. 9 Realiza a interface entre registradores e MP. Funciona de forma transparente para a CPU e o programador. Visa melhorar o desempenho da comunicação entre o processador e a memória principal. 9 Idéia: manter as palavras usadas com + freqüência. Memória Cache Comunicação com a CPU é feita por palavras. Comunicação feita por blocos de palavras de tamanho fixo. Contém cópia de partes da memória principal. 9 Nº blocos na MP é muito maior que na cache (M >> C). 9 A cache inclui rótulos (tags) para identificar qual bloco de MP está em cada linha da cache. 8 Rótulo é parte do endereço enviado pela CPU (associativo). Estrutura Cache / Memória Principal CACHE Nº da Linha Rótulo Endereço MP Bloco Bloco 0 (K palavras) C << M M = 2n / K Tamanho do bloco (K palavras) Cache ⇒ C blocos Bloco ⇒ K palavras MP ⇒ 2n palavras Bloco M-1 Tamanho da palavra Operação da Cache CPU faz referência ao conteúdo de uma determinada posição de memória (palavra). 9 Se o conteúdo está na cache (acerto ou hit): 8 A palavra desejada é enviada para a CPU. 9 Se o conteúdo NÃO está na cache (falha ou miss): 8 O bloco correspondente é transferido da MP à cache. 8 A palavra desejada é enviada para a CPU. BLOCO DE PALAVRAS PALAVRA REGISTRADORES CACHE MEMÓRIA PRINCIPAL Exemplo de Operação da Cache: Leitura Este paralelismo depende da organização da memória cache (típico das memórias modernas) Aspectos do Projeto de Cache Elementos de projeto para classificar e diferenciar as várias implementações: 9 Quantidade de memórias cache. 9 Tamanho da memória cache. 9 Tamanho da linha de cache. 9 Função de mapeamento. 9 Algoritmo de substituição. 9 Política de escrita. Quantidade de Memórias Cache Cache unificada para dados e instruções: 9 Permite busca + balanceada entre instruções e dados. Cache separada para dados e instruções: 9 Dobra a largura de banda e melhora a latência da memória. Arquitetura com um único nível de cache (L1): 9 Implementada dentro do chip do processador. 9 Empregada nas primeiras implementações de cache. Arquitetura com multiníveis de cache: 9 2 níveis de cache (L1 e L2): + usada atualmente. 8 A cache L2 no pacote do processador, mas fora do chip. 9 Pode existir um 3º nível (L3): não usual. 8 A cache L3 é implementada na placa-mãe. Tamanho de Cache Paradoxo: 9 Caches maiores → maiores custos. 9 Caches menores → menor desempenho. O tamanho ideal é: 9 Pequeno bastante para aproximar o custo/bit ao da MP. 9 Grande o suficiente para atingir um tempo de acesso médio do sistema de memória próximo ao seu. 8 Como se ∀ MP ⊆ Cache. Outros fatores para redução da cache: 9 Cache maior → + portas envolvidas no endereçamento. 9 Limitado pelo tamanho da pastilha ou placa de circuito. Tamanho da Linha de Cache Aumento no tamanho da linha proporciona: 9 + informação útil (+ palavras) armazenada na cache. 9 Aumento da taxa de acerto (até certo ponto). Aumento excessivo pode degradar o desempenho: 9 - linhas na cache → troca + rápida de linhas recentes. 9 > distância entre as palavras adicionais e a referida. 8 P(uso da palavra adicional) < P(reuso da linha velha). O relacionamento entre tamanho da linha e taxa de acerto da cache é complexo. 9 Não existe um valor ótimo definitivo. 9 Depende do programa em execução. Função de Mapeamento Meio de associar o bloco da memória principal a uma linha da cache (M >> C). Escolha da função define a organização da cache e afeta custo e desempenho. Mapeamento direto: cada bloco da MP é mapeado em uma única linha de cache (+ simples e de baixo custo). 9 Endereço da MP é dividido em 3 campos: 8 Rótulo (tag): verifica se o bloco da MP está na cache. 8 Linha: indica qual linha de cache pode conter o bloco. 8 Palavra: indica qual palavra dentro do bloco está sendo referenciada. 9 Desvantagem: Se programa usa com freqüência 2 blocos mapeados na mesma linha, provoca uma alta taxa de falha. Mapeamento Direto 1º 2º 3º 1º - Acha a linha na cache 2º - Compara o rótulo 3º - Busca a palavra Exemplo: Direto Main Memory Address i = j modulo m sendo: i = Nº da linha de cache j = Nº do bloco da MP m = Nº de linhas do cache Função de Mapeamento Mapeamento associativo: cada bloco da MP pode ser mapeado em qualquer linha da cache. 9 Endereço da MP é dividido em 2 campos: 8 Rótulo: verifica se o bloco da MP está em alguma linha de cache. 8 Palavra: indica qual palavra dentro do bloco está sendo referenciada. 9 Compara parte do endereço de memória (rótulo) com TODOS os rótulos da cache. 9 Necessita de algoritmos de substituição. 9 Desvantagem: pesquisa na cache é uma operação de alto custo. Mapeamento Associativo 1º 2º 1º - Compara o rótulo 2º - Busca a palavra Exemplo: Associativo Main Memory Address Função de Mapeamento Mapeamento associativo por conjunto: mescla a simplicidade do modo direto com a flexibilidade do modo associativo. 9 Cache é dividida em conjuntos de N linhas. 9 A identificação do conjunto é feita de modo direto. 9 A busca da linha dentro do conjunto é feita de forma associativa. 9 Endereço da MP é dividido em 3 campos: 8 Rótulo: verifica se alguma linha do conjunto contém o bloco da MP. 8 Conjunto: indica qual conjunto da cache pode conter o bloco. 8 Palavra: indica qual palavra dentro do bloco está sendo referenciada. Mapeamento Associativo por Conjunto 2º 3º 1º 1º - Acha o conjunto 2º - Compara o rótulo das linhas do conjunto 3º - Busca a palavra Ex: Associativo por Conjunto de 2 linhas Main Memory Address C=IxJ Sendo: C = Tamanho cache I = Nº conjuntos J = Nº linhas/conj I = C e J = 1 → direto I = 1 e J = C → associativo Address 1FF7FFC 0017FFC Tag 1FF 001 Data Set number 12345678 1FFF 11223344 1FFF Algoritmo de Substituição Define em qual bloco da cache deve ser colocado um novo conteúdo trazido da memória principal. Implementação em hardware. Blocos modificados na cache devem ser gravados antes de sua troca (política de atualização). LRU (Least Recently Used): substitui o bloco da cache que está mais tempo sem uso. 9 Provavelmente o algoritmo mais eficiente. 9 Implementado através de adição de bits de uso. Algoritmo de Substituição FIFO (First In, First Out): substitui a linha de cache que está a mais tempo na cache. 9 Implementado através de um armazenamento circular. LFU (Least Frequently Used): substitui a linha de cache que foi menos referenciada. 9 Implementada através de um campo contador. Aleatório: escolhe aleatoriamente a linha de cache a ser substituída. 9 Não é baseada no histórico de uso das linhas. 9 Apresenta uma ligeira perda no desempenho. Política de Atualização ou Escrita Propaga as modificações nas linhas da cache para as demais cópias. Problemas: 9 Vários dispositivos podem acessar a MP. 9 Arquiteturas com múltiplas CPUs e caches locais. Escrita direta (write-throught): as operações de escrita são feitas tanto na cache quanto na MP. 9 Abordagem mais simples e confiável. 8 MP está sempre atualizada e válida. 9 Desvantagem: aumenta o tráfego de escrita na MP. 8 Pode criar um gargalo no sistema. Política de Atualização Escrita retroativa (write-back): as atualizações são realizadas somente na cache e repassadas à MP somente na substituição do bloco na cache. 9 Visa minimizar o nº de operações de escrita na MP. 9 Cada linha possui um bit de update que é ativado quando uma atualização ocorre na cache. 9 Problema: parte da MP pode ficar invalidada. Escrita única (write-once): 1ª atualização é feita de forma direta e as demais de modo retroativo. Política de Atualização Algumas abordagens para manter a coerência entre caches em sistemas multiprocessados: 9 Monitoramento do barramento com escrita direta: analisa o tráfego para a MP para identificar alterações. 9 Trasparência em HW: usa um circuito especial que replica as alterações na MP para as demais caches. 9 Memória não-cacheável: somente uma parte da MP é compartilhada e não pode ser associada à cache. Memória Secundária Formada por componentes de armazenamento com grande capacidade e baixo custo por bit. 9 Tipicamente composta por dispositivos de armazenamento magnético ou óptico. Utilizada para armazenamento persistente de dados e instruções. 9 Informações armazenadas na forma de arquivos. 9 Dados e instruções visíveis ao programador/usuário. Pode estar interna ou externa ao computador. 9 Interna: discos rígidos. 9 Externa: CDs, DVDs, fitas magnéticas, etc. Discos Magnéticos Principal meio de armazenamento secundário. Unidade leitura = haste com eixo rotativo + braço com cabeça de leitura e gravação (bobina indutora). Discos = pratos de alumínio coberto com material magnetizável. 9 Dividido em anéis concêntricos (trilhas). 9 Trilhas separadas em setores. 9 Deve haver um espaço entre as divisões. 8 Evita ou diminui os erros por falta de alinhamento dos cabeçotes ou interferência de campos magnéticos. Organização de um Disco Formatação de Disco Formatação reduz cerca de 15% a capacidade. 9 Bits para identificação da trilha. 9 Espaços entre setores. 9 Bits para identificação de início e fim dos setores. Estes dados extras não são visíveis ao usuário. Synch: código especial para determinar o início. CRC: código de correção de erro. Discos Magnéticos Tempo de acesso: 9 Espera pelo dispositivo 9 Espera pelo canal de E/S 9 Busca da trilha 9 Atraso rotacional (busca pelo setor) Velocidade rotacional: 9 Velocidade angular constante 9 Setores mais largos na borda externa. Aspectos de Projeto Movimentação cabeçote: 9 Cabeçote fixo (um por trilha). 9 Cabeçote móvel (um por superfície). Qtde. lados: 9 Lado único. 9 Dupla face. Qtde. pratos: 9 Prato único. 9 Múltiplos platos. Aspectos de Projeto Transportabilidade do disco: 9 Discos removíveis. 9 Discos não-removíveis. Mecanismo do cabeçote: 9 Contado (disquete). 9 Espaço fixo (bolhas de ar). 9 Espaço aerodinâmico (Winchester). RAID (Redundant Array of Independent Disks) Mapeamento de dados para o RAID 0 RAID (Redundant Array of Independent Disks) Tira 0 Tira 1 Tira 2 Tira 3 Tira 0 Tira 1 Tira 2 Tira 3 Tira 4 Tira 5 Tira 6 Tira 7 Tira 4 Tira 5 Tira 6 Tira 7 Tira 8 Tira 9 Tira 10 Tira 11 Tira 8 Tira 9 Tira 10 Tira 11 Tira 12 Tira 13 Tira 14 Tira 15 Tira 12 Tira 13 Tira 14 Tira 15 RAID 1 (espelhamento) B1 B2 B3 B4 C1 C2 C3 RAID 2 (Código de Hamming) RAID 3 (paridade por bit) RAID (Redundant Array of Independent Disks) RAID 4 (paridade por bloco) RAID 5 (paridade distribuída) RAID 6 (paridade dupla)