Arquitetura de Computadores 2013.1 Subsistemas de Memória (CAP. 5 ou 4) Faculdade Lourenço Filho REDES DE COMPUTADORES Prof. Antonio Filho TÓPICOS MEMÓRIA HIERARQUIA DE MEMÓRIA REGISTRADORES MEMÓRIA CACHE MEMÓRIA PRINCIPAL ESTRUTURA DA MEMÓRIA PRINCIPAL CÉLULA CAPACIDADE DA MEMÓRIA PRINCIPAL MEMÓRIAS AUXILIARES EXERCÍCIOS MEMÓRIA O que são memórias? É um componente de um sistema de computação cuja a função é armazenar as informações que são (ou serão) manipuladas por esse sistema, para que elas (informações) possam ser prontamente recuperadas, quando necessário. MEMÓRIA Tecnologias As primeiras tecnologias utilizadas em memórias foram as memórias de núcleos magnéticos, hoje apenas uma curiosidade. As memórias modernas são compostas por circuitos semicondutores, com novas tecnologias sendo criadas a cada ano permitindo que grandes quantidades de células de memória sejam encapsuladas em pequenas pastilhas. HIERARQUIA DE MEMÓRIA A memória principal – MP, não é o único dispositivo de armazenamento de um computador. Em função de características como tempo de acesso, capacidade de armazenamento, custo, etc., podemos estabelecer uma hierarquia de dispositivos de armazenamento em computadores. HIERARQUIA DE MEMÓRIA HIERARQUIA DE MEMÓRIA A UCP (unidade central de processamento) vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, quanto mais próximo da UCP, maior velocidade, maior custo, porém menor capacidade de armazenamento. CAPACIDADE VELOCIDADE Tipo Capacidade Velocidade Custo Localização Volatilidade Registrador KBytes muito alta muito alto UCP Volátil Memória Cache Mbytes alta alto UCP/placa Volátil Memória Principal Gbytes média médio Placa Volátil Memória Auxiliar Tbytes baixa baixo Externa Não Volátil REGISTRADORES Registradores são dispositivos de armazenamento temporário, localizados na UCP, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como parte da própria pastilha ("chip") da UCP, é muito caro. REGISTRADORES -características Tempo de acesso – Possuem o menor tempo de acesso de memória do sistema. 1 a 5ns Capacidade – armazena um único dado, uma única instrução ou único endereço ( de 8 a 64 bits cada) É um dispositivo volátil Devido sua tecnologia avançada encontra-se no topo dos custos. MEMÓRIA CACHE Com o desenvolvimento da tecnologia de construção da UCP, as velocidades foram ficando muito mais altas que as das memórias, que não tiveram a mesma evolução de velocidade. Desta forma, os tempos de acesso às memórias foram ficando insatisfatórios, e a UCP ao buscar um dado na memória precisa ficar esperando muitos ciclos até que a memória retorne o dado buscado ("wait states"), configurando um gargalo ("bottleneck") ao desempenho do sistema Níveis da Cache Por esse motivo, desenvolveram-se outras arquiteturas de memória privilegiando a velocidade de acesso “As Memórias Cache”. Cache de nível 1 (L1) – Geralmente é dividida para instruções e dados – Fica localizada no mesmo chip do processador – Tamanho variando entre: 16 kB à 64 kB Cache de nível 2 (L2) – “Fica num chip separado do processador”, mas no mesmo encapsulamento – Tamanho variando entre: 64 kB à 2 MB Cache de nível 3 (L3) – Fica localizada na placa mãe (em alguns computadores) – Contém alguns MBytes – Construída com tecnologia SRAM MEMÓRIA CACHE A arquitetura da memória cache é muito diferente da arquitetura da memória principal e o acesso a ela é muitas vezes mais rápido (Por exemplo: 5 ns contra 70 ns). MEMÓRIA CACHE No entanto O custo de fabricação da memória cache é muito maior que o da memória principal - MP. Não é econômico construir um computador somente com tecnologia de memória cache. Criou-se então um artifício, incorporando-se ao computador uma pequena porção de memória cache, localizada entre a UCP e a MP. Memória Cache - Tecnologia SRAM: memórias estáticas – Construída com Flip-flop´s tipo D – Muito rápida, mas ocupa mais espaço no chip do que a memória DRAM : DRAM: memórias dinâmicas – Valor é armazenado como uma carga de capacitor – “bateria” (deve ser refrescada) – Ocupa pouco espaço porém é mais lenta do que a memória SRAM MEMÓRIA CACHE Quando a UCP busca um determinado dado e o encontra na cache, dá-se um "cache hit" . Enquanto se o dado não estiver presente na cache será necessário requisitar o mesmo à MP, acarretando atraso no processamento e dá-se um "cache miss - falta" ou "cache fault – perder tempo". O índice de cache hit ou taxa de acerto da cache é geralmente acima de 99%. MEMÓRIA CACHE Os processadores atuais usam controladores de cache bastante avançados, o que permite que os caches trabalhem com percentagens de acerto surpreendentemente boas considerando o tamanho.. MEMÓRIA CACHE A memória cache é formada por células de memória SRAM, que são tipicamente formadas por conjuntos de 6 transistores, onde 4 deles formam a estrutura que mantém o dado gravados e os outros dois controlam o acesso os valores de tensão. Se você pudesse olhar um chip de memória SRAM com um microscópio de elétrons, veria uma estrutura similar a essa: mais caras: necessários 6 transistores para cada bit de dados e mais um grande número de trilhas e circuitos adicionais MEMÓRIA CACHE Esta é uma foto do núcleo de um Pentium III com seus 256 KB de cache L2 integrado, que são representados pelos 16 retângulos na parte inferior do processador. Você pode notar que o cache L2 ocupa uma área significativa do núcleo do processador, o que explica o fato de serem usados apenas 256 KB Bom Exemplo – core i7 - 975 Core i7 , que usa 64 KB de cache L1 e 256 KB de cache L2 por núcleo e usa um grande cache L3 de 8 MB compartilhado entre todos. Dentro do processador, ele corresponde à área sombreada. core i7 – 980X Com 12M de cache L3 e quatro núcleos virtuais a mais, é de se esperar um ganho de desempenho significativo. MEMÓRIA PRINCIPAL Memória Principal é a parte do computador onde programas e dados são armazenados para processamento. A informação permanece na memória principal apenas enquanto for necessário para seu emprego pela UCP, sendo então a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. Quem controla a utilização da memória principal é o Sistema Operacional. MEMÓRIA PRINCIPAL Tempo de acesso – Possue velocidade de transferência abaixo das memórias cache Atualmente possuem tempos de acesso entre 15 e 70ns. Capacidade – embora ainda oscilem na casa de MEGA, há no mercado MP da ordem de GBytes. É um dispositivo volátil de baixo custo. ESTRUTURA DA MEMÓRIA PRINCIPAL A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Não teria nenhum sentido armazenar informações que não fosse possível recuperar depois. ESTRUTURA DA MEMÓRIA PRINCIPAL Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi armazenada. CÉLULA Célula - é a unidade de armazenamento da MP do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits. CÉLULA Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula. (N é um inteiro positivo Endereço é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço. CÉLULA A estrutura da memória principal é um problema do projeto de hardware: - mais endereços com células menores ou -menos endereços com células maiores? O tamanho mais comum de célula era 8 bits (1 byte); hoje já são comuns células contendo vários bytes. Número de bits para representar um endereço Expressão geral: MP com endereços de 0 a (N-1) N = 2x logo: x = log2 N sendo x = nº de bits para representar um endereço e N o número de endereços CAPACIDADE DA MEMÓRIA PRINCIPAL A memória principal RAM é um conjunto de N células, cada uma armazena um valor com M bits. Então, a quantidade de endereços contida no espaço endereçável da RAM é também igual a N, visto que cada conteúdo da célula está associado com um número que o seu endereço. O valor N – Representa a quantidade de endereços da memória O valor M – Indica a quantidades de bits que pode ser armazenado em cada célula. Logo temos 2M combinações possíveis CAPACIDADE DA MEMÓRIA PRINCIPAL T = N x M – capacidade da memória CAPACIDADE DA MEMÓRIA PRINCIPAL A MP tendo endereços e sendo x =quantidades de bits dos números que representa cada um dos N endereços então: N=2X Por ex.: se N=512, então 512=2X e x = 910 = 10012 O total de bits que podem ser armazenados na MP é denominado T, sendo: T=N x M CAPACIDADE DA MEMÓRIA PRINCIPAL A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula. T = N x M; T = capacidade da memória em bits; N = nº de endereços ( como vimos anteriormente); N=2x sendo x = nº de bits do endereço; M = nº de bits de cada célula; CAPACIDADE DA MEMÓRIA PRINCIPAL Para encontrar a capacidade em bytes, basta encontrar a capacidade em bits e depois dividir por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1). Exemplo Uma memória RAM(MP) tem um espaço máximo de endereçamento 2K. Cada célula pode armazenar 16bits. Qual o valor total de bits que pode ser armazenado nessa memória e qual tamanho de cada endereço. Se o espaço máximo de endereços é 2K, então: N=2K, 1 célula = 16bits então M=16, Logo temos. N=2x : N = 2K = 2*1024 = 21*210 = 211: x=11bits A capacidade (valor total de bits) T = N*M = 211*16 = 211*24 = 215 1K=210 logo T = 25*210 = 32Kbits MEMÓRIA - EXERCÍCIOS 1) Numa MP com 1kbyte de capacidade, onde cada célula tem 8 bits: a) quantas células tem a MP? b) quantos bits são necessários para representar um endereço de memória? 2) Um computador endereça 1k células de 16 bits cada uma. Pede-se: a) sua capacidade de memória; b) o maior endereço que o computador pode endereçar; 3) A memória de um computador tem capacidade de armazenar 256 bits cada célula pode armazenar 16 bits. Pede-se: a) Qual o número de endereço? b) Qual o tamanho de cada endereço? MEMÓRIA - EXERCÍCIOS 04) Uma memória RAM (MP) é fabricada com a possibilidade de armazenar um máximo de 256Kbits.Cada célula pode armazenar 8bits. Qual o tamanho de cada endereço e qual total de células que podem ser utilizadas naquela RAM? MEMÓRIA - EXERCÍCIOS 4) Calcular e completar os campos M - Tamanho da célula x - nº de bits do endereço N - nº de endereços 8 bits 1 K endereços 4 bits 256 bits 4 Gbytes 1 Mbyte 64 bits 0 a (N-1) - Faixa de endereços 1 K byte 16 bits 4 bytes T - Capac. da memória 0 a 65.535 0 a 262.143 FUNCIONAMENTO DA MEMÓRIA PRINCIPAL Toda memória, seja Secundária ou Principal, “pode” permiti a realização de dois tipos de operações: escrita e leitura. Entende-se por leitura a recuperação da informação armazenada e a escrita é a gravação (ou armazenamento) da informação na memória. No caso da Memória Principal (MP), essas operações são realizadas pela UCP e efetuada por células, não sendo possível trabalhar com parte dela. FUNCIONAMENTO DA MEMÓRIA PRINCIPAL A leitura não é uma operação destrutiva, pois ela consiste em copiar a informação contida em uma célula da MP para a UCP, através de um comando desta. Pelo contrário a escrita é uma operação destrutiva, por que toda vez que se grava uma informação em uma célula da MP, o seu contudo anterior de eliminado. OPERAÇÕES DE I/O NA MEMÓRIA A ligação entre MP e UCP é realizada através de dois registradores: o REM (Registrador de endereço de memória) e o RDM (Registrador de dados de memória) e suas respectivas vias. É “feito apenas um acesso por vez” Operação de escrita A UC unidade de controle da UCP envia para o REM o endereço da memória onde o dado será gravado, e coloca o sinal de escrita no barramento de controle para indicar ao circuitos de controle da MP o que fazer em seguida A UCP através do barramento de dados envia os dados para o RDM, então a informação desejada é gravada para a Memória Principal que é o destinatário final Operação de escrita A realização completa desse processo gasta um certo tempo (tempo de acesso), mas não garante que a MP possa realizar em seguida uma nova operação. Esta pronta ou não pra realizar uma nova operação depende do tipo de RAM Memórias Estáticas (SRAM) – Permitem, Memórias Dinâmicas (DRAM) – Não permitem Operação de leitura A realização de uma operação de leitura segue procedimento semelhante ao da operação de escrita, exceto é claro pelo sentido da cópia que é inverso. Operação de leitura A UCP armazena no REM o endereço da posição, onde a informação a ser lida está localizada. A UCP comanda uma leitura (sinal de controle para memória - READ). O conteúdo (palavra) da posição identificada pelo endereço contido no REM é, então, transferido para o RDM; deste, é enviado para a UCP, pela barra de dados. Operação de leitura Conforme já foi explicado para a operação de escrita, a realização dos processo à efetivação de uma operação de leitura gasta um tempo de acesso e a MP pode ou não está preparada para realizar uma nova operação. ERROS Em sistemas de transmissão de informação a distância (telecomunicações) há sempre a possibilidade de ocorrerem deformação ou até mesmo destruição de parte da informação transmitida. Isso ocorre devido a interferência no meio transmitido ERROS A MP (ou qualquer outro tipo de memória) utiliza de um meio de transmissão (barramentos de dado) para o trânsito de informação. Esse trânsito sofre interferência que pode alterar o valor de 1 ou mais bits (de 0 para 1 ou de 1 para 0) ou até mesmo destruí-lo É importante sabermos que os atuais sistemas de memórias possuem mecanismo capazes de detectar e corrigir tais erros ERROS Grupo de Mbits que serão gravados na MP sofrem um processamento específico em um dispositivo próprio de detecção de erros Esse processamento é realizado segundo as etapas de um algoritmo A e produz como resultado um conjunto de K bits. Serão gravados nas células da MP, M+K1bits e não apenas M bits de informação ERROS No processo de leitura (recuperar um dado) o sistema de detecção é acionado, o mesmo algoritmo A é executado sobre os M+K1bits, obtendo um novo conjunto k2 bits ERROS Os k1bits armazenados são comparados com k2bits obtendo-se 1 – Ambos os conjuntos de K tem o mesmo valor ausência de erros, logo M bits são transmitidos 2 – Os conjuntos são diferentes conclui-se existência de erros no bloco de M bits ERROS O processo de correção de erros, denominado comumente ECC ( código de correção de erro), baseia-se no código utilizado para construir os K bits adicionais de cada célula da MP. Eles podem detectar a ocorrência de erro em 1 ou mais bits e corrigir o errado. Ou seja se for detectada a ocorrência de erro em 1 bit é fácil corrigir pelo código; porém se forem detectados mais bits errados O ECC somente indica que há erro sem poder identificar os bits errados TIPOS DE MEMÓRIA Memória RAM– É um tipo de memória essencial para o computador, sendo usada para guardar dados e instruções de um programa. Tem como características fundamentais, a volatilidade, ou seja, o seu conteúdo é perdido quando o computador é desligado; o acesso aleatório aos dados e o suporte à leitura e gravação de dados, sendo o processo de gravação um processo destrutivo e a leitura um processo não destrutivo. Existem dois tipos básicos de memória RAM, RAM Dinâmica e RAM Estática. TIPOS DE MEMÓRIA Dinâmica - Esta é uma memória baseada na tecnologia de capacitores e requer a atualização periódica do conteúdo de cada célula do chip consumindo assim pequenas quantidades de energia, no entanto possui um acesso lento aos dados. Uma importante vantagem é a grande capacidade de armazenamento oferecida por este tipo de tecnologia. Estática - É uma memória baseada na tecnologia de transistores e não requer atualização dos dados. Consome mais energia (o que gera mais calor) comparando-se com a memória dinâmica sendo significativamente mais rápida. É freqüentemente usada em computadores rápidos. Possui uma capacidade de armazenamento bem menor que a memória dinâmica. TIPOS DE MEMÓRIA Memória ROM- É um tipo de memória que contém instruções imutáveis, nela estão localizadas rotinas que inicializam o computador quando este é ligado; É não-volátil, ou seja, os dados não são perdidos com a ausência de energia; É também de acesso aleatório. Alguns dos tipos de memória ROM são: EPROM e EEPROM. TIPOS DE MEMÓRIA EPROM- É um tipo de ROM especial que pode ser programada pelo usuário. Seu conteúdo pode ser apagado pela exposição a raios ultravioletas. EEPROM- É também um tipo especial de ROM muito semelhante á EPROM, tendo como diferença apenas o fato de que seu conteúdo é apagado aplicando-se uma voltagem específica em um dos seus pinos de entrada. Fim de aula