Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso de Tecnologia em Telemática Disciplina Arquitetura de Computadores Memória Prof.ª Daniella Dias danidias.jp@gmail.com Memória 2 A memória é a parte do computador onde os programas e os dados são armazenados Sem a existência da memória o conceito de computador digital com programa armazenado não pode ser implementado A memória de um computador quando energizada, conterá sinais elétricos, mesmo que não seja uma informação útil Memória 3 Memória de um computador⇒ subsistema - construída de vários componentes (vários tipos diferentes de memória) interligados e integrados, com o objetivo de armazenar e recuperar informações. Conceitos Importantes Método de acesso Tempo de acesso Tempo de ciclo Taxa de transferência Capacidade Volatilidade Tecnologia de fabricação Temporariedade Custo Métodos de acesso 4 Sequencial: Começa no início e lê em ordem. Tempo de acesso depende da localização dos dados e local anterior. Exemplo: fita. Direto: Blocos individuais possuem endereço exclusivo. Acesso saltando para vizinhança, mais busca sequencial. Tempo de acesso depende da localização e local anterior. Exemplo: discos magnéticos. Métodos de acesso 5 Aleatório: Endereços individuais identificam localizações com exatidão. Tempo de acesso é independente da localização ou acesso anterior. Exemplo: memória principal (RAM) Associativo: Tipo de acesso aleatório Dados são localizados por uma comparação com conteúdo de uma parte do armazenamento. Tempo de acesso é independente do local ou acesso anterior. Exemplo: alguns tipos de cache Tempo de Acesso (Latência) 6 Memórias de acesso aleatório: Indica o tempo necessário para realizar uma operação de leitura ou escrita na memória, após uma determinada posição ter sido endereçada. Memórias de acesso não aleatório Tempo necessário para posicionar o mecanismo de leitura- escrita no local desejado Um dos principais parâmetros para medir o desempenho da memória. Tempo de Acesso 7 Dependente do modo como o sistema de memória é construído e da velocidade dos seus circuitos. Memórias eletrônicas - igual, independentemente da distância física entre o local de um acesso e o local do próximo acesso - acesso aleatório ou associativo. Dispositivos eletromecânicos (discos, fitas, ..) - tempo de acesso varia conforme a distância física entre dois acessos consecutivos - acesso sequencial ou direto. Tempo de ciclo 8 Termo empregado principalmente em memórias de acesso aleatório Inclui o tempo de acesso e qualquer tempo adicional necessário para o próximo acesso; Normalmente exigido para retirada dos sinais anteriores das linhas de transmissão (liberação dos barramentos) Taxa de transferência 9 Taxa em que os dados podem ser transferidos para dentro ou fora da memória. Acesso aleatório: depende apenas do tempo de ciclo Acesso não aleatório: TN = TA + (n/R) Sendo: TN = tempo médio para ler ou escrever N bits TA = tempo de acesso médio n = número de bits R = taxa de transferência em bits por segundo (bps) Capacidade 10 Quantidade de informação que pode ser armazenada em uma memória; Unidade de medida mais comum - byte, podem ser usadas outras unidades como células (no caso de memória principal ou cache), setores (no caso de discos) e bits (no caso de registradores). Dependendo do tamanho da memória, isto é, de sua capacidade, indica-se o valor numérico total de elementos de forma simplificada, através da inclusão de K (kilo), M (mega), G (giga) ou T (tera). Volatilidade 11 Memórias podem ser do tipo volátil ou não volátil. Memória não volátil - retém a informação armazenada quando a energia elétrica é desligada. Ex.: Discos, Fitas. Memória volátil - perde a informação armazenada na ausência de energia elétrica. Ex.:Registradores, Memória Principal. É possível manter a energia em uma memória originalmente volátil - uso de baterias. Tecnologias de fabricação 12 Memórias de semicondutores Memórias de meio magnético Memórias de meio óptico Memórias de semicondutores 13 Dispositivos fabricados com circuitos eletrônicos e baseados em semicondutores. Rápidas e relativamente caras, se comparadas com outros tipos. Há várias tecnologias específicas, cada uma com suas vantagens, desvantagens, velocidade, custo, etc.. Classificação das Memórias Semicondutoras 14 RAM L/E - Leitura/Escrita (R/W - Read/Write) ROM (Somente Leitura) (Read Only Memory) SRAM DRAM FPM DRAM EDO DRAM BEDO RAM SDRAM RDRAM ROM PROM EPROM EEPROM Memória R/W - Read and Write 15 Memória de leitura e escrita, de acesso aleatório e volátil. Pode ser estática (SRAM) ou dinâmica (DRAM). SRAM - uso de circuitos transistorizados (flip-flops) mantém a informação enquanto estiver energizada, muito rápida (~ns), usada tipicamente como memória cache. DRAM - uso de capacitores (1 transistor e 1 capacitor por bit, não usa flip-flops), necessita de refresh, alta capacidade de armazenamento (> densidade), mais lentas, usadas tipicamente como memória principal (custo regeneração compensado pelo custo menor das células – em grandes quantidades). Evolução: FPM DRAM (Fast Page Mode) assíncrona e mais antiga, EDO DRAM (Extended Data Output), também assíncrona, SDRAM (memórias Síncronas), etc. Em geral, as RAMs estáticas são mais rápidas que as dinâmicas. Memória R/W - Read and Write 16 DDR ou SDRAM-II (Double Data Rate SDRAM) É uma memória SDRAM muito mais avançada e que consegue trabalhar com o dobro do desempenho. Alcança maior largura de banda através da transferência de dados na subida e na descida do sinal de relógio RDRAM (Rambus DRAM) Baseada em protocolo, isto é, usa padrão de barramento proprietário. A arquitetura interna dos circuitos, é muito diferente das demais pois, permite a leitura e escrita de até 16 dados simultaneamente por circuito. Utilizadas, principalmente, em algumas máquinas de jogos e em aplicações gráficas muito intensivas. ROM - Read Only Memory 17 Memória apenas de leitura. Uma vez gravada não pode mais ser alterada. De acesso aleatório, não é volátil. Mais lenta que a R/W e mais barata. Pode ser programada por máscara ("mask programmed“- MROM) em fábrica. Devido ao alto custo da máscara somente se torna econômica em grandes quantidades. Utilizada geralmente para gravar programas que não se deseja permitir que o usuário possa alterar ou apagar (Ex.: o BIOS - Basic Input Output System e Microprogramas de Memórias de Controle). Outros tipos: PROM, EPROM, EEPROM e Flash. PROM - Programmable Read Only Memory 18 Memória apenas de leitura, programável. ROM programável com máquinas adequadas (chamadas queimadores de PROM). Geralmente é comprada "virgem" (sem nada gravado), sendo muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas. Uma vez programada (em fábrica ou não), não pode mais ser alterada. EPROM - Erasable Programmable Read Only Memory Memória apenas de leitura, programável (com queimadores de PROM) e apagável (com máquinas adequadas, à base de raios ultra-violeta). Tem utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada. 19 EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory 20 Memória apenas de leitura, programável e eletronicamente alterável. Também chamada EAROM(Electrically Alterable ROM). EPROM apagável - processo eletrônico, sob controle da UCP (equipamento e programas adequados), menor e mais rápida que a EPROM. Mais cara, geralmente utilizada em dispositivos aos quais se deseja permitir a alteração, via modem (carga de novas versões de programas à distância ou possibilitar a reprogramação dinâmica de funções específicas de um programa, geralmente relativas ao hardware, p.ex., reconfiguração de teclado, programação de terminal, etc). ROM Flash 21 Funcionamento similar ao da EEPROM – conteúdo total ou parcial da memória pode ser apagado normalmente por um processo de escrita. Apagadas e regravadas por blocos (o apagamento não pode ser efetuado ao nível de byte como na EEPROM), alta capacidade de armazenamento O termo flash foi imaginado devido à elevada velocidade de apagamento dessas memórias em comparação com as antigas EPROM e EEPROM. Ideal para várias aplicações portáteis (câmeras digitais, palmtop, assistentes digitais portáteis, aparelhos de música digital ou telefones celulares). Memória CMOS - (Complementary Metal Oxide Semiconductor) 22 Memória especial que é mantida por uma bateria, de forma a que a informação guardada não desapareça quando o PC está desligado. Este espaço de armazenamento permanente é usado para manter um relógio de tempo real e alguma informação sobre a configuração do sistema e seus periféricos (tipo de disco rígido, quantidade de memória RAM, etc.). Durante o arranque da máquina, a BIOS lê a informação da memória CMOS e utiliza-a para determinar a configuração atual, a data e a hora do sistema. Memórias Semicondutoras 23 Tecnologias de fabricação 24 Memórias de semicondutores Memórias de meio magnético Memórias de meio óptico Memórias de meio magnético 25 Fabricadas de modo a armazenar informações sob a forma de campos magnéticos. Devido à natureza eletromecânica de seus componentes e à tecnologia de construção em comparação com memórias de semicondutores, esse tipo é mais barato, permitindo armazenamento de grande quantidade de informação. Método de acesso às informações - sequencial. Exemplos: disquetes, discos rígidos e fitas magnéticas (de carretel ou de cartucho). Memórias de meio óptico 26 Dispositivos que utilizam um feixe de luz para “marcar” o valor (0 ou 1) de cada dado em sua superfície. Exemplos: CD-ROM (leitura) CD-RW (leitura e escrita) DVD Blu-ray Memória 27 Memória de um computador⇒ subsistema - construída de vários componentes (vários tipos diferentes de memória) interligados e integrados, com o objetivo de armazenar e recuperar informações. Conceitos Importantes Tempo de acesso Capacidade Volatilidade Tecnologia de fabricação Temporariedade Custo Temporariedade 28 Indica o conceito de tempo de permanência da informação em um dado tipo de memória. Classificação: Armazenamento “permanente”. Ex.: Discos, disquetes. Armazenamento transitório (temporário). Ex.: registradores, memória cache, memória principal. Custo 29 Bastante variado em função de diversos fatores: tecnologia de fabricação ciclo de memória quantidade de bits em um certo espaço físico, etc. Uma boa unidade de medida de custo é o preço por byte armazenado, em vez do custo total da memória em si. Memória 30 Em um sistema de computação não é possível construir e utilizar apenas um tipo de memória. Para certas atividades, por exemplo, é fundamental que a transferência de informações seja a mais rápida possível. Hierarquia de Memória Memória 31 Hierarquia de Memória Memória Secundária Memória Principal Memória Cache Registradores CD-ROM Discos Custo baixo Velocidade baixa Capacidade elevada Custo alto Velocidade alta Baixa capacidade Bits 32 Unidade básica de memória Pode assumir os valores 0 ou 1 “Eficiência” da aritmética binária Armazenamento baseado na distinção de valores de tensão Quanto mais valores a identificar → menor a diferença entre sinais adjacentes → sistema menos confiável Como só trabalha com dois valores, a codificação da informação no sistema binário é o mais confiável Bits 33 Alguns computadores (IBM – grandes mainframes) se valem da aritmética decimal a partir da codificação no código BCD BCD → Binary Coded Decimal (Decimal Codificado em Binário) Código de 4 bits → 16 combinações diferentes, das quais apenas 10 são válidas Exemplo → número 1944 BCD → 0001 1001 0100 0100 Binário → 0000011110011000 Bits 34 Usando 16 bits para a representação BCD → 0 a 9999 → 10.000 combinações Binário → 65.536 A representação binária é mais eficiente Se existisse um dispositivo eletrônico confiável trabalhando em decimal (10 intervalos de tensão) 4 dispositivos → 10.000 combinações em decimal 4 dispositivos → 16 combinações em binário Neste casos o sistema decimal seria mais eficiente Endereços de Memória 35 Memória Conjunto de células (ou posições) com k bits cada Cada célula possui um endereço n células → endereços de 0 a n-1 Célula de k bits → 2k possíveis combinações para armazenar Células adjacentes possuem endereços consecutivos Endereços de Memória 36 Memória A quantidade de bits de endereçamento está relacionado com o número de células e não com o tamanho das mesmas Três organizações possíveis para uma memória de 96 bits: 12 células de 8 bits→ 4 bits de endereçamento 8 células de 12 bits→ 3 bits de endereçamento 6 células de 16 bits→ 3 bits de endereçamento Endereços de Memória 37 Três maneiras de se organizar uma memória de 96 bits Exercício 38 Uma memória principal RAM (MP) tem um espaço máximo de endereçamento de 2K. Cada célula pode armazenar 16 bits. a) Qual o valor total de bits que pode ser armazenado nesta memória? b) Qual o tamanho de cada endereço? Endereços de Memória 39 Conjunto de 8 bits → byte Os bytes são agrupados em palavras Um computador com palavras de 32 bits tem 4 bytes/palavra 64 bits implicam em 8 bytes/palavra A maioria das instruções operam sobre palavras Chip de memória 40 Cada chip contém um array de células de memória Mémorias semicondutoras: – Quantos bits de dados lidos/escritos por vez? Organização das células de memória X Lógica funcional no chip: Mais simples: • Arranjo físico das células = Arranjo lógico (percebido pelo processador) de palavras • Array de W palavras com B bits cada. • Exemplo: um chip de 16Mbits organizado em 1M palavras de 16 bits Mais complexo: Arranjos físico e lógico diferentes Organização de ROMs é mais simples (operação de leitura é mais frequente) Chip de memória 41 EPROM: chip de 8Mbits organizado 1M x 8 (1 palavra/chip) – 1M palavras → 20 bits endereço (220 = 1M) DRAM: chip de 16Mbits organizado 4M x 4 – Acessada por linha e coluna → endereço multiplexado – 4M combinações → 11 bits de endereço → (211 x 211 = 222 = 4M) Chip de memória 42 4 bits são lidos/escritos de cada vez Logicamente: organizado em arrays quadrados de 2048 x 2048 x 4 bits. Elementos do array são conectados por fileiras horizontais (linha) e verticais (colunas) 11 bits são utilizados para linha Outros 11 bits são utilizados para coluna Fisicamente: diversos arranjos possíveis: 4 bits por coluna (único array) 1 bit por coluna (quatro arrays) Adicionando 1 pino de endereço, duplica-se a faixa de endereços e x4 a capacidade (212 x4) DRAM de 16 Mbits Endereços de Memória 43 Combinação de memórias – Para aumentar o número de células -> memórias em paralelo Endereçamento consecutivo entre as células das memórias Bits de endereço local à memória e bits de seleção de memória a ser endereçada – Para aumentar o tamanho da palavra -> memórias em série Mesmo endereço para as células das memórias diferentes que formam a palavra Ordenação de bytes 44 Refere-se a forma como os bytes são ordenados dentro da palavra. Big Endian – Bytes são numerados da esquerda para a direita – Usado por sistemas Unix (Mainframes IBM, Motorola e arquiteturas Sparc) – Exemplo → 0305H = 00000011 00000101 Little Endian – Bytes são numerados da direita para a esquerda – Usado pelas máquinas da família Intel – Exemplo → 0305H = 00000101 00000011 Big Endian x Little Endian 45 Exemplo Estrutura de Dados em C 46 Ordenação de bytes 47 Problemas (Big Endian x Little Endian) Envio de dados em rede e máquinas com ordenações diferentes Tratamento de números e strings Solução → uso de cabeçalho (ineficiente) Correção de Erros 48 Todo sistema de memória baseado em semicondutor está sujeito a erros. Tipos: Falhas graves: defeito de fabricação ou desgaste (células são inutilizadas) Erros moderados: problemas no fornecimento de energia ou interferências (células não são inutilizadas) A maioria dos sistemas de memória principal modernos inclui uma lógica de detecção e correção de erros Códigos com Correção de Erros 49 Dados armazenados podem ocasionalmente alterar → necessidade do uso de código para a detecção e/ou correção dos erros Para isso são armazenados bits extras aos dados para sua verificação → palavra de código Uma palavra de código agora terá n bits, onde: n = m + r m → dados r → bits de redundância Códigos com Correção de Erros 50 Distância de Hamming Número de bits diferentes nas mesmas posições em duas palavra (função ou-exclusivo) 10001001 e 10110001 → 3 bits diferentes Distância de Hamming = d → necessário d erros para uma palavra se transformar em outra palavra válida Palavras com n bits → 2n possíveis combinações, mas apenas 2m combinações válidas Códigos com Correção de Erros 51 Distância de Hamming Para detectar e erros → distância = e + 1 Para corrigir e erros → distância = 2e + 1 (mesmo em presença de d erros, a palavra de código original pode ser recomposta por meio dos bits redundantes) Detecção de Erros 52 Detecção de erro utilizando bit de paridade Bit de paridade → faz com que o número de bits 1 na palavra seja sempre par (ou ímpar) Com bit de paridade → distância de Hamming = 2 → um erro gera uma palavra inválida Dois erros transformam uma palavra válida em outra palavra válida Bit de paridade serve para detectar a ocorrência de um único erro Um erro é sinalizado, mas não é corrigido. Programa cancela o processamento para não gerar resultados errados. Detecção e Correção de Erros 53 § Função f: produz código de K bits (futura detecção de erros) §Total de bits da Palavra: M + K Nenhum erro detectado Erro detectado (possível corrigir) Erro detectado (impossível corrigir) Códigos de Correção de Erros 54 Um código de correção é caracterizado pelo número de bits incorretos que ele é capaz de detectar e corrigir em uma única palavra O código de correção de erros mais simples é o Código de Hamming Utiliza Diagramas de Venn Diagramas de Venn 55 1. Palavras de Dados: 1110 2. Dados colocados nas interseções: • AB ABC AC BC 3. Utilização Paridade Par 4. Ao ocorrer um erro: • Apenas A e C possuem erro de paridade • Única interseção que pertence a A e C e não a B é AC (erro encontrado) • Erro pode ser corrigido (paridade) Projeto de um Código de Correção de Erro Único (SEC) 56 Se todos os bits da Palavra Síndrome forem 0s, não houve erro Se a Palavra Síndrome contiver apenas um bit 1, ocorreu erro em um dos bits de teste – nenhuma correção é necessária Se a Palavra Síndrome contiver mais de um bit 1, o valor numérico da Palavra Síndrome indica a posição do bit em que ocorreu erro – a palavra é corrigida invertendo-se o valor desse bit de dado Projeto de um Código de Correção de Erro Único (SEC) 57 Como pode ocorrer erro em qualquer um dos M bits de dados ou dos K bits de teste, deve-se ter: Aumento no tamanho da Palavra com a correção de erros: Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 58 Palavra de 8 bits, M = 8, qual o valor de K? 2k – 1 ≥ M + K Se K = 3 23 – 1 = 7 ≥ 8 + 3 Se K = 4 24 – 1 = 15 ≥ 8 + 4 Se K = 5 25 – 1 = 31 ≥ 8 + 5 Logo, K = 4 é suficiente ! 59 A nova palavra será formada pelos bits de dados e os bits de teste Os bits de teste devem ficar nas posições 2n 1, 2, 4, 8, 16, .... (da direita para esquerda) Os outros bits são dos dados propriamente ditos Os bits de teste serão chamados de C1, C2, C4, C8 ... Os bits de dados são M1, M2, M3, M4, M5, M6, M7, M8 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 60 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 61 O cálculo dos bits de teste (C1, C2, C4, C8) : C1 = XOR dos bits cuja posição tenha o bit menos significativo igual a 1 (posições 1, 3, 5, 7, 9, 11 ou M1, M2, M4, M5, M7) C2 = XOR dos bits cuja posição tenha o 2º. bit menos significativo igual a 1 (posições 2, 3, 6, 7, 10, 11 ou M1, M3, M4, M6, M7) C4 = XOR dos bits cuja posição tenha o 3º. bit menos significativo igual a 1 (posições 4, 5, 6, 7, 12 ou M2, M3, M4, M8) C8 = XOR dos bits cuja posição tenha o 4º. bit menos significativo igual a 1 (posições 8, 9, 10, 11, 12 ou M5, M6, M7, M8) Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 62 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 63 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 64 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 65 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 66 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo 67 Projeto de um Código de Correção de Erro Único (SEC) - Exemplo Códigos com Correção de Erros 68 Exemplo apresentado: Código de Correção de um único erro (single-error- correcting - SEC) Usualmente: Código de Detecção de erro duplo e Correção de erro único (single-error-correcting, double-error-detecting – SEC-DED) Requer um bit a mais do que SEC Linha 30xx da IBM: SEC-DED de 8 bits para cada 64 bits de dados (aumento 12%) Computadores VAX: SEC-DED de 7 bits para cada 32 bits de dados (aumento 22%) DRAM modernas: SEC-DED de 9 bits para cada 128 bits de dados (aumento 7%) Códigos com Correção de Erros 69 Memória Cache 70 Processadores são mais rápidos que as memórias Ele espera vários ciclos de clock pelo acesso á memória Existe a tecnologia de construção de memórias rápidas incorporadas ao processador → custo alto Solução → ter uma pequena quantidade de memória rápida interna ao processador (além da memória principal) Fabricada com tecnologia semelhante à da CPU (possui tempos de acesso compatíveis, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache, ao contrário do que acontece em sistemas sem cache). Memória Cache 71 Cache vem do francês cacher que significa esconder Idéia básica da cache: Palavras de memória mais usadas ficam na cache Com isso reduz o acesso a memória principal Se uma parte substancial dos acesso for através da cache, o tempo médio de acesso será menor Memória Cache Atualmente há diversos tipos de memória cache, utilizados em sistemas de computação modernos: – Cache para a Memória Principal (RAM cache), – Cache para Disco... Podem existir cache só para instruções e só para dados. 72 Memória Cache Podem ser inseridas em dois (ou três) níveis: Cache L1 (Level 1) - nível 1), Cache L2 e Cache L3. Cache L1 (primária) - interna ao processador. Cache L2 (externa ou secundária) - instalada, em geral, na placa-mãe do computador. Atualmente: localizada no interior da pastilha do processador, separada deste (cache backside). Cache L3 – Existente em alguns processadores, localizada externamente ao processador. Quanto mais próxima do processador, melhor será o desempenho do mesmo. 73 Memória Cache 74 Memória Cache 75 Tempo médio de acesso à cache Tm = c + ( 1 – h )m c é o tempo de acesso a cache m é o tempo de acesso à memória principal h é a taxa de acertos Normalmente são trazidas para a cache um conjunto de palavras consecutivas → princípio da localidade – É provável que palavras vizinhas sejam referenciadas nos ciclos seguintes. Memória Cache/Memória Principal 76 - Cache consiste de m blocos → linhas - Cada linha → k palavras + tag - Tag identifica o bloco da MP - Cada linha também possui bits de controle - Largura da linha sem tag e bits de controle → tamanho da linha - Número de linhas é muito menor que número de blocos da MP Memória Cache – Operação de Leitura 77 RA = Read Address (endereço de leitura) Memória Cache – Organização Típica 78 - Acerto de cache (cache hit) → desativa buffers - Falha de cache (cache miss) → endereço é carregado no barramento do sistema → dados transferidos pelo buffer de dados para para cache e processador. - Organizações que não utilizam buffers → dados são transferidos primeiro para cache e depois para o processador. Memória Cache 79 Questões relacionada ao projeto da cache Tamanho Tamanho da linha da cache Organização da cache Cache unificada x cache dividida Número de caches → primária (interna ao processador) e secundária Evolução Cache Intel 80
Compartilhar