Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Arquitetura de Computadores Profa. Carla Katarina de Monteiro Marques UERN ARMAZENAR (ESCRITA, WRITE) RECUPERAR (LEITURA, READ) A memória de um computador quando energizada, conterá sinais elétricos, mesmo que não seja uma informação útil. Organização Básica de Computadores Memória Elemento a ser manipulado: bit (armazena a informação na forma de bits) Unidade de informação a ser armazenada, recuperada ou transferida (célula) - Grupo de n bits (n = 8) 1 Byte • ENDEREÇO: é o código de identificação da localização das células (informações). Operações: • ESCRITA: transferência de informações de outro componente do sistema de computação para a memória (CPU memória) • LEITURA: transferência de bits da memória para a CPU, disco. Memória 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. 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. Necessidade de construção de vários tipos de memória: Velocidade das UCP ( > tempo de acesso da memória) Capacidade de armazenamento. Hierarquia de Memória 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 Hierarquia de Memória – Conceitos Importantes Tempo de acesso Volatilidade Capacidade Tempo de acesso Indica quanto tempo a memória gasta para colocar uma informação no barramento de dados após uma determinada posição ter sido endereçada. É um dos parâmetros que pode medir o desempenho da memória. Denominação: tempo de acesso para leitura (ou tempo de leitura). 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 (direto). Dispositivos eletromecânicos (discos, fitas, ..) - tempo de acesso varia conforme a distância física entre dois acessos consecutivos - acesso seqüencial. Tempo de acesso 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). Capacidade Armazenamento de bits: 1 byte = 8 bits 1 KB = 1 quilobyte = 1024 bytes 1 MB = 1 megabyte = 1024*1024 bytes 1 GB = 1 gigabyte = 1024*1024*1024 bytes Ex: 64MB de memória = 536.870.912 bits Capacidade Volatilidade 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 não volátil - uso de baterias. Organização da Memória Principal A MP é o depósito de trabalho da CPU, isto é, a CPU e a MP trabalham íntima e diretamente na execução de um programa; Palavra: é a unidade de informação do sistema CPU/MP que deve representar o valor de um número (dado) ou uma instrução de máquina; Endereço, conteúdo e posição de MP Unidade de Armazenamento Consiste no grupo de bits que é identificado e localizado por um endereço; A MP é organizada em unidades de armazenamento, denominada células, cada uma possuindo um número de identificação – seu endereço – e contendo em seu interior uma quantidade M de bits, que se constitui na informação propriamente dita (pode ser uma instrução ou parte dela, pode ser um dado ou parte dele). Memória Principal É organizada como um conjunto de N células seqüencialmente dispostas a partir da célula de endereço igual a 0 até a última, de endereço igual a N-1. Células e endereço Unidade de Transferência De ou para a MP, consiste na quantidade de bits que é transferida da memória em uma operação de leitura ou transferida para a memória em uma operação de escrita; Na prática é diferente da palavra e da célula. Considerações sobre a Organização da MP Quantidade de bits de uma célula Considerações sobre a Organização da MP Relação endereço x conteúdo de uma célula Elementos que compõem a estrutura CPU/MP Barramento de dados Interliga o RDM à MP, para a transferência de informações entre a CPU e a MP. É bidirecional; RDM Armazena temporariamente a informação que está sendo transferida entre a CPU e a MP; Armazena a mesma quantidade de bits do barramento de dados; Elementos que compõem a estrutura CPU/MP REM Armazena temporariamente o endereço de acesso a uma posição da memória. Em seguida, o endereço é encaminhado à área de controle da MP para localização da célula desejada; Armazena a mesma quantidade de bits do barramento de endereços; Elementos que compõem a estrutura CPU/MP Barramento de endereços Interliga o REM à MP para a transferência dos bits que representam um determinado endereço; É unidirecional; Somente a CPU aciona a MP para realização de operações de leitura e escrita. Possui tantos fios (ou linhas de transmissão) quantos os bits que representam o valor de um endereço. Elementos que compõem a estrutura CPU/MP Barramento de controle Liga a CPU à MP para a passagem dos sinais de controle durante uma operação de leitura ou escrita; É bidirecional. Memória pode enviar sinais do tipo WAIT (para a CPU aguardar o término de uma operação). Elementos que compõem a estrutura CPU/MP Controlador (ou Decodificador) Decodifica o endereço colocado no barramento de endereços, localizando a célula desejada; Gera sinais necessários para controlar o processo de leitura ou escrita, além de ligar a memória aos demais componentes do sistema. Elementos que compõem a estrutura CPU/MP Operação de Leitura Operação de Escrita Capacidade de MP - Cálculos N → Total de células. N = 2E M → Tamanho de cada célula Tamanho da célula é definido pelo fabricante E → Tamanho de bits do número que representa cada endereço T → Total de bits da memória. T=N x M= 2E x M Tecnologias de fabricação Memórias de semicondutores Memórias de meio magnético Memórias de meio óptico Memórias de semicondutores 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.. Exemplos: Registradores, Memória Principal e Memória Cache. Classificação de Memórias Semicondutoras 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 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ápidas (~ns), usadas tipicamente como memórias 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. 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. Memória R/W - Read and Write 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. Pode- se encontrá-la, por exemplo, em placas-mãe equipadas com o processador AMD K7. 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 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. MROM- O firmware era gravado durante a fabricação do circuito, com o auxílio de um filme fotográfico - máscara. As máscaras apresentam o inconveniente de serem caras e não permitem regravação. ROM - Read Only Memory 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 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. EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory 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 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) Tipo especial de memória para armazenamento das opções essenciais de configuração de inicialização quantidade de memória instalada, data, hora. Alimentação via bateria. Máquinas Macintosh RAM de parâmetros. Memórias de meio magnético 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 - seqüencial. Exemplos: disquetes, discos rígidos e fitas magnéticas (de carretel ou de cartucho). Memórias de meio óptico 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) Temporariedade 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 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. Hierarquia de Memória - Elementos Registradores Memória Cache Memória Principal Memória Secundária Registradores Elementos superiores da pirâmide de memória, por possuírem a maior velocidade de transferência dentro do sistema (menor tempo de acesso), menor capacidade de armazenamento e maior custo. Maiores informações sobre registradores foram apresentadas anteriormente (UCP). Registradores - Parâmetros Tempo de acesso/ciclo de memória (Ex.: 1 a 5 ns) Capacidade - baixa (Ex.: 8 a 64 bits) Volatilidade - dispositivos voláteis. Tecnologia - memória de semicondutores Temporariedade - armazenamento temporário. Custo - mais elevado. Citar 1 a 5 ns neste instante pode significar um valor já (ou em breve) desatualizado. Problemas (Processador – Memória) Acesso à memória, leitura e escrita, é um dos motivos para menor velocidade de processamento. Processador é muito mais rápido do que a transferência de dados. Soluções Processador deve executar outras instruções enquanto aguarda acesso à memória. Porém isto nem sempre é possível e é difícil de implementar. Colocar memória principal no Chip do processador. Isto tornaria o chip maior e mais caro. Uso de uma memória menor e mais rápida (em relação à memória principal) chamada Memória Cache. Memória Cache Dispositivo de memória entre a CPU e a MP Função: acelerar a velocidade de transferência das informações entre CPU e MP, aumentando o desempenho dos sistemas. Usada para armazenamento de instruções e dados mais freqüentemente acessados do programa em execução. As palavras de memória mais usadas pelo processador devem permanecer armazenadas na cache. Somente no caso de ela não estar armazenada na cache é que a busca se dará na memória principal. Memória Cache 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). 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. Podem existir caches primárias (dentro do processador) e outra secundária (fora do chip do processador) e até uma terceira cache mais externa. Memória Cache - Parâmetros Tempo de acesso/ciclo de memória (Ex.: 5 a 7 ns). Capacidade - deve-se conciliar o compromisso de uma apreciável capacidade com a não-elevação demasiada de seu preço. Ex.: 16K a 2 MB. Volatilidade - dispositivos voláteis. Tecnologia - circuitos eletrônicos de alta velocidade. Em geral, são memórias RAM estáticas (SRAM). Temporariedade - armazenamento temporário. Custo - o custo de fabricação das memórias cache é alto. Memórias cache internas à CPU ainda são mais caras do que as externas. Princípio da Localidade Localidade Temporal Num futuro próximo, o programa irá referenciar os programas e dados referenciados recentemente Localidade Espacial Num futuro próximo, o programa irá referenciar os programas e objetos de dados que tenham endereços próximos das últimas referências. Acertos X Faltas Dentro da hierarquia de memória, o acerto ocorre quando o dado é encontrado no nível mais superior, caso contrário, ocorre uma falta. Tempo de Acerto Tempo necessário para acessar o nível superior da hierarquia. Inclui o tempo para se determinar se vai gerar um acerto ou uma falta. Penalidade por Falta Tempo necessário para substituir o bloco do nível superior pelo bloco do nível inferior, contendo a informação desejada. BLOCO – Unidade de transferência entre níveis de hierarquia. Avanços em implementação de caches Obter vantagens dos princípios da localidade Colocando a parte repetitiva do programa em uma memória mais rápida Tamanho Suficientemente grande para armazenar trechos dos programas para aproveitar os princípios da localidade. Suficientemente pequena para não elevar o custo do sistema. Aproveitando os princípios da localidade Funcionamento da cache 1. Sempre que a CPU vai buscar um dado ou instrução na memória, ela acessa inicialmente a cache. 2. Se a instrução ou dado estiver na cache (acerto), ela é transferida em alta velocidade para CPU. 3. Se a instrução (dado) não estiver na cache (falta), o sistema interrompe a execução do programa vai transferir a instrução da MP para a cache. 4. A transferência não é somente da instrução desejada, mas dela e de um grupo subseqüente, na pressuposição de que as instruções do grupo serão requeridas logo em seguida (localidade espacial), aumentando a taxa de acertos. 5. Para a cache cumprir seu papel, é necessário que haja mais acertos que faltas, sendo que essa razão tem que ser cada vez maior, pois as perdas com faltas representam uma queda considerável da performance. Funcionamento da cache 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; nesse caso, é localizada na placa-mãe; Quanto mais próxima do processador, melhor será o desempenho do mesmo. Memória Cache: Tipos de Mapeamento Mapeamento – Como a informação vinda da Memória Principal é colocada na cache. Mapeamento Direto Mapeamento Associativo Mapeamento Associativo por Conjunto Mapeamento Direto Por esta técnica, cada bloco da MP tem uma linha da cache previamente definida para ser armazenada. Como há mais blocos que linhas de cache, há blocos destinados a uma mesma linha Mapeamaneto Direto Vantagens Simples, baixo custo de implementação, não acarreta atrasos de processamento de endereços; Desvantagens Fixação da localização para os blocos Mapeamento Associativo Vantagem: Máxima flexibilidade no posicionamento de qualquer palavra (ou linha) da memória principal em qualquer palavra (ou linha) da cache Desvantagens: Custo em hardware da comparação simultânea de todos os endereços armazenados na cache Utilizado apenas em memórias associativas de pequeno tamanho Mapeamento Associativo por Conjunto Uma linha na memória principal pode ocupar qualquer posição dentro de um conjunto definido de linhas da cache; Combinação das anteriores. Memória Principal A memória básica de um sistema de computação desde seus primórdios. É o dispositivo no qual o programa (e seus dados) que vai ser executado é armazenado para que a CPU "busque" instrução por instrução. Uma das principais características definidas no projeto de arquitetura do sistema de Von Neumann, o qual se constitui na primeira geração dos computadores, consistia no fato de ser uma máquina "de programa armazenado". O fato de as instruções, uma após a outra, poderem ser imediatamente acessadas pela CPU é que garante o automatismo do sistema e aumenta a velocidade de execução dos programas. Memória Principal - Parâmetros Tempo de acesso/ciclo de memória (Ex.: 7 a l5 ns). Capacidade - na ordem de até 4 Gbytes Volatilidade - volátil. Há normalmente uma pequena quantidade de memória não volátil fazendo parte da memória principal (contém o BIOS). Tecnologia - em sistemas atuais esta tecnologia produz memória com elementos dinâmicos (DRAM). Memória Principal - Parâmetros Temporariedade - variável, depende de várias circunstâncias (p. ex.: tamanho do programa e sua duração, a quantidade de programas que estão sendo processados juntos, etc.). A transitoriedade com que as informações permanecem armazenadas na MP é, em geral, mais duradoura que na memória cache ou nos registradores. Custo - DRAM têm um custo mais baixo que o das memórias cache - são vendidos computadores com quantidade apreciável de MP (32 MB, 64 MB, 128 MB, 256 MB, 512 MB) sem que o preço seja inaceitável. Memória Principal Quanto maior a capacidade de armazenamento (em Bytes), maior a capacidade de processamento Uso de memória virtual Uso do HD como extensão da Memória Principal Memória Principal - Ordenação dos Bytes Existem, basicamente, 2 formas de organização dos bytes em uma palavra de memória Ordenação Big endian Ordenação Little endian Os termos big endian (maior valor-big-em primeiro lugar-menor endereço) e little endian (menor valor-little-em primeiro lugar) foram inseridos no jargão da computação por um artigo publicado em 1981, citando o problema e relacionando-o a um episódio mencionado no livro As Viagens de Gulliver – povo que foi à guerra para decidir qual a melhor maneira de quebrar ovos, se pelo maior (big) lado ou se pelo menor (little) lado.Memória Principal - Ordenação dos Bytes Ordenação Big endian Bytes são numerados da esquerda para a direita (0, 1, 2,..., n-1) Usada por sistemas Unix (arquiteturas SPARC, IBM Mainframe) Exemplo numérico com 2 bytes: 0305H = 00000011 00000101 Memória Principal - Ordenação dos Bytes Ordenação Little endian Bytes são numerados da direita para esquerda (n-1, ..., 2, 1, 0) Usada por IBM PCs (arquiteturas INTEL) Exemplo numérico com 2 bytes: 0305H = 00000101 00000011 Memória Principal - Ordenação dos Bytes Exemplo: Problemas causados pela falta de padronização do armazenamento em memória: interpretação de instruções e dados em redes softwares que rodam em várias plataformas devem tratar essas diferenças uso de plataformas de palavras de diferentes tamanhos Importante: A solução para o problema não é trivial, em geral se baseia em inversão dos bytes. Isto funciona para valores numéricos mas não para cadeias de caracteres. Memória Principal - Códigos com correção de erros Problema: Dados da memória podem, ocasionalmente, conter erros causados por oscilação de tensão, por exemplo Solução: Dados são armazenados na memória com um código que permita a detecção ou correção de erros São acrescentados bits extras nas palavras de memória usados para verificar a exatidão da informação Uma palavra de código de n (=m+r) bits conterá: m bits de dados + r bits de redundância (ou verificação). Memória Principal - Códigos com correção de erros Distância de Hamming - igual ao número de bits correspondentes que diferem em duas palavras de código quaisquer. As propriedades de detecção de erros e de correção de erros dependem fundamentalmente da sua distância de Hamming. Exemplo: As palavras de código 10001001 e 10110001 distam 3 unidades de Hamming. Observação: É necessário que ocorram 3 erros (inversões) nos bits em destaque da palavra 2 para que ela se transforme na palavra 1. Exemplo de Código com correção de erros Bit de Paridade: Definido pelo número de 1s que ocorrem em uma palavra. Paridade par está associada a um número par de 1s e paridade ímpar está associada a um número ímpar de 1s Exemplo Simples: Inclusão de 1 bit de paridade (0 - par e 1 - impar) aos bits de dados da palavra de código. A ocorrência de 1 único erro produz palavra de código errada. Erro só é detectado, e não corrigido. Programa cancela o processamento para não gerar resultados errados. Memória Secundária Denominada memória secundária, memória auxiliar ou memória de massa. Objetivo: garantir um armazenamento mais permanente à toda a estrutura de dados e programas do usuário - deve possuir maior capacidade que a memória principal. Pode ser constituída por diferentes tipos de dispositivos, alguns diretamente ligados ao sistema para acesso imediato (Ex.: discos rígidos), e outros que podem ser conectados quando desejado (Ex.: disquetes, fitas, CD-ROM etc.). Memória Secundária - Parâmetros Tempo de acesso/ciclo de memória - são, em geral, dispositivos eletromecânicos e não circuitos puramente eletrônicos - possuem tempo de acesso maiores. Tempos de acesso típicos: ordem de 8 a 15 ms. Discos do tipo CD-ROM: 120 a 300 ms, fitas magnéticas - ordem de segundos. Capacidade - varia bastante dependendo do tipo de dispositivo utilizado. Discos rígidos - entre 2 e 50 Gbytes, CD-ROM - ordem de 600 MB, fitas magnéticas (a capacidade depende do comprimento da fita e da densidade de gravação). Memória Secundária - Parâmetros Volatilidade - não voláteis. Tecnologia - este parâmetro possui uma variedade imensa de tipos, visto que, para cada dispositivo entre os já mencionados (discos rígidos, disquetes, fitas, CD-ROM, CD R/W, DVD, etc.), há diferentes tecnologias de fabricação. Temporariedade - armazenamento com caráter permanente ou, pelo menos, de longo período de armazenamento. Custo - bastante variado.
Compartilhar