330 likes | 615 Views
Hierarquia de Memória Arquitetura de Computadores Aula 4 – Memória 23/08/2012. Bruno Iran Ferreira Maciel Mestrando em Ciências da Computação – Cin/UFPE. Revisão da aula passada. Memória secundária (memória de massa) Não é acessada diretamente pela CPU
E N D
Hierarquia de Memória Arquitetura de Computadores Aula 4 – Memória 23/08/2012 Bruno Iran Ferreira Maciel Mestrando em Ciências da Computação – Cin/UFPE
Revisão da aula passada • Memória secundária (memória de massa) • Não é acessada diretamente pela CPU • acesso é feito através de interfaces ou controladoras especiais • Memória do tipo permanente • não se apaga quando o computador está desligado • para armazenamento de programas e dados por um longo período • Tem alta capacidade de armazenamento • Custo muito mais baixo que o da memória principal • 1GB de RAM custa cerca de R$ 90,00 • disco rígido de 500 GB custa cerca de R$ 300
Revisão da aula passada • Não é formada por chips • Formada por dispositivos que utilizam outras tecnologias de armazenamento • Exemplos de memória secundária • disco rígido, disquetes, CD-ROM e fita magnética
Aula de hoje • Hoje vamos ver • Memória principal e cache
Memória principal • Definição: “Parte do computador onde programas e dados são armazenados”. • Bit (Binary Digit): Unidade básica de memória. 1 Bit pode armazenar os valores 0 ou 1. • É possível realizar duas operações em uma MP: escrita e leitura.
Memória principal • Endereços de memória • Memórias são organizadas em células • Cada célula possui um número associado: endereço • Programas referenciam uma célula a partir deste endereço • Se uma memória possui n células, tais células possuirão os endereços 0 à n – 1.
Memória principal • Endereços de memória • Todas as células de uma memória possuem o mesmo número de bits.
Memória principal • Endereços de 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 palavras de 8 bits → 4 bits de endereçamento • 8 palavras de 12 bits → 3 bits de endereçamento • 6 palavras de 16 bits → 3 bits de endereçamento
Memória principal • Endereços de memória • Células adjacentes tem endereços consecutivos • Computadores que utilizam sistemas de numeração binária expressam endereços de memória como número binário
Memória principal • Capacidade • As memórias são organizadas em conjunto de células, cada uma podendo armazenar uma quantidade de bits: instruções ou dados. • Capacidade de memória é a quantidade de informações que nela podem ser armazenadas em um instante de tempo. A unidade básica de representação de informação é o bit.
Memória principal • A quantidade de bits que pode ser armazenada em cada célula (valor M da figura anterior) é um requisito definido pelo fabricante. • A quantidade de bits do número que representa um determinado endereço, define a quantidade máxima de endereços que uma MP pode ter, bem como o seu espaço de endereçamento.
Memória principal • Capacidade • 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 da instruções operam sobre palavras
Memória principal • Endereços de memória • Uma memória com 212 células de 8 bits cada e uma memória de 212 células de 64 bits cada, precisam de endereços de 12 bits. • MP com endereços de 0 a (N – 1). X representa número de linhas de endereço: • N = 2X • X=log2 N
Memória principal • Cálculos com a Capacidade de Memória • • Como 1 bit representa apenas um entre dois valores (base binária), então podemos concluir que: • Pode-se armazenar em cada célula um valor entre 0 e (2M– 1), porém um de cada vez. São 2M combinações possíveis. • Por exemplo, se M = 8 bits, temos 28= 256. • Seriam armazenados valores entre: • 00000000 (010 ou 016) e 11111111 (25510 ou FF16).
Memória principal • Cálculos com a Capacidade de Memória • A memória tem N endereços: • N = 2E, sendo E = quantidade de bits dos números que representam cada um dos N endereços. • Por exemplo, se N=512 (512 células), então, 512 = 2E, ou E=9, pois 29 =512
Memória principal • Cálculos com a Capacidade de Memória • O total de bits que podem ser armazenados na referida memória é T, sendo: • T = N x M ou T = 2Ex M • Do exemplo anterior temos: • N = 512 células, M = 8 bits, E = 9 bits, T = 4096 bits • N = 2E ->512 = 29 • T = N x M = 2Ex M = 4096 bits = 4K bits
Memória principal • Exemplo 1 • Uma memória RAM tem um espaço máximo de endereçamento de 16K. Cada célula pode armazenar 16 bits. Qual o valor total de bits que podem ser armazenados nesta memória e qual o tamanho de cada endereço? • Se o espaço máximo endereçável é 2K, então N = 2K • 1 célula = 16 bits. Então: M = 16 bits = 24 bits • N=2E, N=16K=21x1024=21x210=211 • Se N=2E e 211,então: 2E=211 e E=11 • E = quantidade de bits de cada número que expressa um endereçamento, ou seja: os endereços de cada célula são números que têm 11 bits. • T= N x M=211x16=215=32Kbit
Memória principal • Exemplo 2 • Uma memória RAM é fabricada com a possibilidade de armazenar um máximo de 256kbits. Cada célula pode armazenar 8 bits. Qual é o tamanho de cada endereço e qual é o total de células que podem ser utilizadas na RAM? • Total de bits = T = 256K = 28x210= 218 • 1 célula=8bits=M=23 • Sendo T=NxM ,então:N=T/M=218/23=215 • Se N=2E,então:215=2E, E=15 • N = 215= 25x210= 32k
Memória cache • Significado da palavra cache – Lugar seguro para guardar (esconder coisas) • Considerando que a cache só pode ter parte dos dados do nível mais abaixo, por causa do menor tamanho, temos dois problemas: • Como identificar se o dado procurado está na cache e • Se ele estiver na cache, como acessá-lo de forma rápida
Memória cache • O processador não sabe que está sendo enganado e gera um endereço para um espaço de endereçamento que não necessariamente existe fisicamente • Endereçar a cache com este endereço não faz nenhum sentido (na maioria dos casos a cache nem teria essa posição gerada por ser muito menor) • Uma varredura seqüencial também não é uma solução aceitável, pelo tempo que levaria (não esquecer que o objetivo é acelerar o acesso)
Memória cache • Problema: CPUs são mais rápidas que memórias do sistema • CPUs devem esperar vários ciclos p/ que o dado requerido seja carregado • Problema de custo e não de engenharia: é possível construir memórias tão rápidas quanto a CPU (Precisam ficar dentro do chip da CPU). CUSTO MUITO ALTO
Exercício • Hoje tem exercício em aula e p/ entregar na próxima aula