• Nenhum resultado encontrado

Organização de Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Organização de Computadores"

Copied!
63
0
0

Texto

(1)

Organização de Computadores

Aula 20

Memória Principal

Rodrigo Hausen

20 de outubro de 2011

http://cuco.pro.br/ach2034

(2)

Apresentação

● 1. Bases Teóricas ● 2. Organização de computadores – ... – 2.2. Execução de instruções – 2.3. Estruturas de Interconexão

2.4. Visão Geral do Sistema de Memórias

● Aula de hoje: Stallings (5a. Edição), “4.1. Visão geral do

sistema de memória” e “4.2. Memória principal de semicondutor”

(3)

Foco de Hoje: Memória(s)

● Diferentes tipos de memória para diferentes usos

– Buscamos a melhor razão custo/benefício para cada

aplicação

● Características de tipos diferentes de memória

– Tecnologia – Capacidade – Localização – Unidade de transferência – Método de acesso – Desempenho – Características físicas

(4)

Arquitetura Exemplo

Memória Principal Módulo de E/S ULA Barramento do Sistema R1 ... Rn

(5)

Tecnologias de memória

● Desde o advento da computação digital, praticamente

qualquer coisa que poderia ser usada para armazenar informação já foi utilizada:

– cartões e fitas de papel perfurados

– sinais magnéticos em fitas ou superfícies metalizadas – ondas mecânicas propagando-se em um meio físico – alterações de propriedades óticas de um meio físico

– sinais elétricos em relés/capacitores/válvulas/transistores – etc.

(6)

Tecnologias Atuais

● Por razões de praticidade, desempenho e custo de

produção, hoje em dia é comum o uso das seguintes tecnologias:

– Semicondutor: RAM estática, RAM dinâmica, memória Flash (cartões de memória e pendrives).

– Magnética: disco rígido (HD), fita magnética. – Ótica: CD-ROM, DVD, Blu-Ray

(7)

Latch D: uma memória para 1 bit

Vimos que um latch D é uma célula de memória de 1 bit

● Relembrando: toda porta lógica é feita com

“interrruptores” controlados por sinais elétricos.

● Hoje em dia, os “interruptores” das portas lógicas são

feitos com transistores.

Latch D D EN Q

=

D EN Q Din Dout WR

(8)

Latch D: Uma implementação

● Curiosidade: um circuito equivalente a um latch do tipo

D requer, no mínimo, 6 transistores.

Dout WR

Din +Vcc

(9)

Memória de 1 bit mais simples

● É possível criar um circuito mais simples para memória,

usando apenas 1 transistor e 1 capacitor.

● O dado é armazenado como carga no capacitor: capacitor

carregado = 1, capacitor descarregado = 0

● Desvantagem: o capacitor perde a carga com o tempo,

ou seja, o dado é perdido se o capacitor não for recarregado periodicamente (refresh).

Dout WR

(10)

Memória Estática x Dinâmica

Memória Estática Memória Dinâmica

Implementa-ção de 1 bit

Latch D (6 transistores) 1 transistor e 1 capacitor Custo Maior (aprox. 6 x custo

memória dinâmica)

Menor Velocidade Aprox. “6 x mais rápida”

que a memória dinâmica.

Menos “rápida”

● As memórias feitas com transistores são chamadas semicondutoras.

(11)

Localização

● À exceção dos barramentos, dados são armazenados em

todas as partes de um sistema computacional:

– Registradores na CPU

– Memória principal: também chamada memória RAM

(Random Access Memory)

(12)

Capacidade

● A memória interna é organizada em palavras. ● Tamanhos de palavra comuns:

(13)

Capacidade

● A memória interna é organizada em palavras. ● Tamanhos de palavra comuns:

– 8 bits (byte), 16 bits, 32 bits, 64 bits.

● Número de posições: “tamanho” da memória

– geralmente é expresso em bytes, mesmo que a organização

(14)

Capacidade

● A memória interna é organizada em palavras. ● Tamanhos de palavra comuns:

– 8 bits (byte), 16 bits, 32 bits, 64 bits.

● Número de posições: “tamanho” da memória

– geralmente é expresso em bytes, mesmo que a organização

seja em palavras de tamanho diferente.

● Ex.: a memória interna de um computador está

organizada em palavras de 32 bits, e o endereço de cada posição é dado por um número de 24 bits. Qual é a

(15)

Capacidade

● A memória interna é organizada em palavras. ● Tamanhos de palavra comuns:

– 8 bits (byte), 16 bits, 32 bits, 64 bits.

● Número de posições: “tamanho” da memória

– geralmente é expresso em bytes, mesmo que a organização

seja em palavras de tamanho diferente.

● Ex.: a memória interna de um computador está

organizada em palavras de 32 bits, e o endereço de cada posição é dado por um número de 24 bits. Qual é a

capacidade da memória?

(16)

Capacidade

● A memória interna é organizada em palavras. ● Tamanhos de palavra comuns:

– 8 bits (byte), 16 bits, 32 bits, 64 bits.

● Número de posições: “tamanho” da memória

– geralmente é expresso em bytes, mesmo que a organização

seja em palavras de tamanho diferente.

● Ex.: a memória interna de um computador está

organizada em palavras de 32 bits, e o endereço de cada posição é dado por um número de 24 bits. Qual é a

capacidade da memória?

– 24 bits para endereço = 224 posições = 16777216 palavras – 16777216 x 32 bits = 16777216 x 4 bytes

(17)

Multiplicadores do SI

● Multiplicadores (prefixos) do Sistema Internacional de

Unidades

E

exa

10

18

um quintilhão

P

peta

10

15

um quatrilhão

T

tera

10

12

um trilhão

G

giga

10

9

um bilhão

M

mega

10

6

= 1000000

um milhão

k

kilo

10

3

= 1000

um mil

(18)

Multiplicadores Binários

● Para medir capacidade de memória principal, usam-se os

seguintes prefixos:

E

exa

2

60

P

peta

2

50

T

tera

2

40

G

giga

2

30

M

mega

2

20

= 1024 x 1024 = 1048576

k

kilo

2

10

= 1024

(19)

Capacidade: Exemplo

● Uma memória de 536870912 bytes possui:

(53870912 / 1024) kbytes = 524288 kbytes = (524288 / 1024) Mbytes = 512 Mbytes = (512 / 1024) Gbytes = 0,5 Gbyte

● Costuma-se usar B com significado de “byte”: – kB = kilobyte (o certo é usar k minúsculo) – MB = megabyte

– GB = gigabyte – etc.

(20)

Prefixos SI ou Prefixos Binários?

● Note que pode haver confusão no uso dos mesmos

símbolos para prefixos do SI (potências de 10) e prefixos de capacidade de memória (potências de 2).

● Hoje em dia está começando a ficar comum a

diferenciação entre os símbolos, adicionando-se a letra i entre o prefixo binário e o símbolo B (para byte):

kiB = kilobibyte = 1024 bytes

MiB = megabibyte = 1048576 bytesGiB = gigabibyte = 1073741824 bytes – etc.

● Hoje em dia, fabricantes de discos rígidos (muito

(21)

Localização

● À exceção dos barramentos, dados são armazenados em

todas as partes de um sistema computacional:

– Registradores na CPU

– Memória principal: também chamada memória RAM

(Random Access Memory)

(22)

Unidade de Transferência

● Núm. de bits que podem ser lidos/escritos de uma só vez ● Memória interna:

– Geralmente é governado pela largura do barramento de

dados; costuma ser igual a uma palavra de memória

● Memória externa:

Geralmente a leitura/escrita ocorre por bloco, que é muito

maior do que uma palavra de memória

Unidade endereçável:

– Menor posição que pode ser acessada separadamente. – Master System (Z-80): palavra de memória = 8 bits,

unidade endereçável = 8 bits

– PCs com processador 386 até Pentium III: palavra de

(23)

Método de Acesso (1)

Sequencial:

– Comece pelo início e leia sequencialmente, em ordem – Tempo necessário para acessar um dado depende da

posição desse dado relativamente ao início da memória

– Exemplo: fita

Direto:

– Acesso direto a um a vizinhança (bloco), depois busca

sequencial dentro do bloco para encontrar um dado

– Tempo necessário para acessar um dado depende

principalmente do último bloco acessado (tempo de busca no bloco é comparativamente pequeno)

(24)

Método de Acesso (2)

Aleatório:

– Acesso imediato a qualquer posição por seu endereço

Tempo necessário para acessar um dado independe da

posição desse dado da memória ou do acesso anterior

– Exemplo: memória RAM

Associativo:

– Dado é localizado por comparação com parte do que está

armazenado na memória

Tempo necessário para acessar um dado independe da

posição desse dado da memória ou do acesso anterior

(25)

Desempenho

Medido por..

… tempo de acesso: Ta

– Tempo decorrido entre a apresentação de um endereço à

memória e a obtenção/armazenamento desse dado

… tempo de ciclo de memória: Tc

– Pode ser que a memória precise de um tempo para se

“recuperar” de um acesso anterior (Tr)

Tc = Ta + Tr

… taxa de transferência: R

– Relação entre a quantidade de dados que podem ser

(26)

Desempenho: Taxa de Transferência

Em memória de acesso aleatório: R = 1/Tc

● Em memórias com outros métodos de acesso, vale:

Tn = Ta + N / R

onde

R = taxa de transferência

N = número de bits a ser acessadosTa = tempo médio de acesso

(27)

Desempenho: Tempo de Acesso

● Geralmente expresso em frações de segundo ● Prefixos do SI para números pequenos:

● Memória RAM estática: 9ns (nanossegundos) a 15ns ● Memória RAM dinâmica: 50ns a 250ns

m mili 10-3 0,001

μ micro 10-6 0,000001

n nano 10-9 0,000000001

(28)

Características Físicas

Volatilidade: os dados são perdidos se o fornecimento de

energia é interrompido?

– Voláteis: memória de semicondutor estática, memória de

semicondutor dinâmica

– Não voláteis: disco/fita magnéticos, CD-ROM, memória

Flash

Possiblilidade de reescrita/apagamento: é possível

reescrever/apagar os dados gravados?

– Leitura/escrita: memória estática, memória dinâmica,

disco/fita magnéticos

– Somente leitura: (na verdade, permite apenas 1 escrita)

CD-ROM, CD-R, memória ROM

(29)

Organização

● Arranjo físico dos bits para formar unidades de

endereçamento e palavras.

● Nem sempre óbvio (geralmente, procura-se um arranjo

que otimiza o desempenho, mantendo a complexidade de construção da memória razoável)

(30)

Relação entre Características

● A tecnologia e organização de uma memória influenciam

a sua capacidade, desempenho e custo por bit.

● Atualmente, não é possível equilibrar os três fatores

usando um só tipo de memória:

– Desempenho melhor, custo por bit maior – Capacidade maior, custo por bit menor – Capacidade maior, desempenho pior

● Solução: usar uma mistura de tipos de memória,

escolhendo as mais adequadas a cada parte do computador.

(31)

Hierarquia de Memória

Regis-tradores

Cache

Memória Principal Disco Flash (pendrive)

Disco rígido (HD) CD-ROM/DVD/Blu-Ray memória interna memória externa armazenamento de backup mais próximo à CPU mais

(32)

Hierarquia de Memória

custo por b it maior menor capaci dade menor maior tempo de acesso menor maior frequ ência de ace sso maior menor

(33)

Lista da Hierarquia

● Registradores: memória RAM estática (latches D) ● Memória cache: memória RAM estática (latches D) ● Memória principal: memória RAM dinâmica

● Cache de disco: memória RAM dinâmica

● Disco: memória magnética (hoje em dia começa-se a

substitui-la por memória flash)

Memória de backup: memória magnética (fita) ou óptica

(34)

● Pequena quantidade de memória rápida entre a CPU

comum e a memória principal.

– Tempo de acesso típico: 10ns = 10−9 s = 0.000000001s

– Capacidade típica: de centenas de kB a poucos MBs

(compare com a memória principal: Ta aprox. 60ns, capacidade típica de alguns GBs)

● Pode ser localizada no mesmo circuito integrado que

contém a CPU, em um módulo de memória cache na placa-mãe, ou até mesmo em um circuito de cache integrado à memória principal.

(35)
(36)

Por que funciona?

● Imagine o problema de se alimentar em casa:

– Você vai ao supermercado para comprar alimento antes de

toda refeição?

– Ou compra alimento para alguns dias e coloca na

despensa?

● Por que é mais eficiente guardar alimento na despensa?

– Porque o tempo de acesso à despensa é menor, e a

probabilidade de precisar de um item que não esteja na despensa é pequena.

Em inglês: despensa = cache

(37)

Localidade de Referência

● Se você precisar ir ao supermercado comprar farinha,

provavelmente valerá a pena comprar também fermento, açúcar, leite e ovos (muitas receitas usam esses

ingredientes) e colocar tudo na despensa.

● No computador a ideia é similar: se eu precisar acessar o

conteúdo de uma posição de memória e trazê-lo para o cache, muito provavelmente eu precisarei acessar um

bloco de posições próximas a essa em um futuro próximo

– instruções são executadas, quase sempre, sequencialmente – elementos de um vetor estão em posições próximas na

(38)

Operação do “Cache” de Mercado

● Durante a preparação de uma receita, você precisa de um

ingrediente

● Verifique se ingrediente está na despensa ● Se está, obter da despensa (rápido)

● Se não está presente, ir ao supermercado, comprar o

ingrediente e ingredientes relacionados, e colocar na despensa.

● Tire o ingrediente da despensa e continue a preparar a

(39)

Operação da Memória Cache

● CPU requisita conteúdo de posição de memória

Verificar o cache se conteúdo relativo à posição está láSe presente, obter do cache (rápido)

● Caso contrário, ler bloco de dados da memória para o

cache (bloco = conjunto de endereços)

● Então, transferir o dado do cache para a CPU

– O cache deve incluir rótulos que permitam identificar a

qual bloco e endereço da memória corresponde cada dado contido no cache.

(40)

Estrutura do Cache

tamanho Bloco Bloco (K palavras) 2n − 1 3 2 1 0

..

.

..

.

endereço de memória número da linha bloco rótulo C−1 2 1 0 tamanho do bloco (K palavras) K−1 Cache . . . . . . . . . . . .

(41)

Influência no Desempenho

● O principal fator que influencia na melhora do

desempe-nho com o uso do cache é a chamada taxa de acerto (hit rate):

O hit rate depende de vários fatores, mas principalmente

da localidade do código sendo executado:

Programas com saltos condicionais muito frequentes não

têm boa localidade

– Acesso frequente a dados muito espalhados na memória

H =acessos bem sucedidos ao cache acessos totais a dados

(42)

Hit Rate: Exemplo

● Suponha que, de cada 10 requisições de dados feitas pela

CPU, apenas 1 destas requer uma busca à memória

principal. Nas demais, os dados já se encontram no cache pois foram obtidos em uma busca anterior.

(43)

Hit Rate: Exemplo

● Suponha que, de cada 10 requisições de dados feitas pela

CPU, apenas 1 destas requer uma busca à memória

principal. Nas demais, os dados já se encontram no cache pois foram obtidos em uma busca anterior.

(44)

Hit Rate: Exemplo

● Suponha que, de cada 10 requisições de dados feitas pela

CPU, apenas 1 destas requer uma busca à memória

principal. Nas demais, os dados já se encontram no cache pois foram obtidos em uma busca anterior.

● Acessos bem sucedidos ao cache: 10 – 1 = 9 ● H = 9/10 = 0,9 = 90%

(45)

Hit Rate: Exemplo

● Suponha que, de cada 10 requisições de dados feitas pela

CPU, apenas 1 destas requer uma busca à memória

principal. Nas demais, os dados já se encontram no cache pois foram obtidos em uma busca anterior.

● Acessos bem sucedidos ao cache: 10 – 1 = 9 ● H = 9/10 = 0,9 = 90%

Um parâmetro relacionado é a taxa de erro (miss rate),

a porção dos acessos a dados que incorrem em uma busca à memória principal

(46)

Tempo de Acesso Efetivo

● Suponha, no exemplo anterior (9 de 10 acessos ao cache

são bem sucedidos), que os tempos de acesso são: ao cache: Tcache à memória: Tmem

(47)

Tempo de Acesso Efetivo

● Suponha, no exemplo anterior (9 de 10 acessos ao cache

são bem sucedidos), que os tempos de acesso são: ao cache: Tcache à memória: Tmem

● Qual é o tempo de acesso total para os 10 acessos?

1 miss: Tmem (aproximadamente)

9 hits: Tcache

(48)

Tempo de Acesso Efetivo

● Suponha, no exemplo anterior (9 de 10 acessos ao cache

são bem sucedidos), que os tempos de acesso são: ao cache: Tcache à memória: Tmem

● Qual é o tempo de acesso total para os 10 acessos?

1 miss: Tmem (aproximadamente)

9 hits: Tcache

Ttotal = 1 x Tmem + 9 x Tcache = 9Tcache+1Tmem

● Qual é a média dos tempos de acesso?

(49)

Tempo de Acesso Efetivo

● Suponha, no exemplo anterior (9 de 10 acessos ao cache

são bem sucedidos), que os tempos de acesso são: ao cache: Tcache à memória: Tmem

● Qual é o tempo de acesso total para os 10 acessos?

1 miss: Tmem (aproximadamente)

9 hits: Tcache

Ttotal = 1 x Tmem + 9 x Tcache = 9Tcache+1Tmem

● Qual é a média dos tempos de acesso?

Ttotal / Núm. de acessos = 9/10 Tcache + 1/10 Tmem = = H Tcache + (1 - H) Tmem

(50)

Tempo de Acesso Efetivo

● Tempo médio de acesso ao subsistema constituído pela

memória principal/cache

● Uma boa aproximação é dada pela fórmula:

TAE = H Tcache + (1 – H) Tmem

● onde T

cache é o tempo de acesso ao cache

Tmem é o tempo de acesso à memória H é o hit rate

● Note que estamos desprezando o tempo de atualização

das estruturas do cache quando trazemos um bloco da memória principal para o cache.

● O TAE exato é muito difícil de calcular (e pode variar, já

(51)

Hit Rate e o Desempenho

● Suponha que T

cache = 10ns, Tmem = 60ns:

– H = 90%, TAE = 0,9 x 10ns + 0,1 x 60ns = 17ns

(tempo de acesso diminui 75%)

– H = 75%, TAE = 0,75 x 10ns + 0,25 x 60ns = 22,5ns

(tempo de acesso diminui 62,5%)

– H = 60%, TAE = 0,6 x 10ns + 0,4 x 60ns = 30ns

(tempo de acesso diminui 50%)

– H = 45%, TAE = 0,45 x 10ns + 0,55 x 60ns = 37,5ns

(tempo de acesso diminui 37,5%)

– H = 30%, TAE = 0,3 x 10ns + 0,7 x 60ns = 52,5ns

(52)

Hit Rate e o Desempenho

● TAE x hit rate

TAE

Hit rate

Tmem

Tcache

(53)

Por que não Hit Rate = 100%?

● Pelo gráfico, o menor tempo de acesso ao subsistema de

memória é obtido quando H = 100%

● Ou seja, quando todo e qualquer acesso de dado é

satisfeito pelo cache.

● Isto implicaria que todo e qualquer dado na memória

deveria estar também no cache.

● Por que não é viável hit rate de 100%?

● Na prática, é possível fazer cache com hit rate de

aproximadamente 90% (para boa localidade de memória) usando-se apenas 1MB de cache, com memória principal

(54)
(55)
(56)
(57)

Cache Multinível

● Em vez de apenas uma memória mais rápida entre a

CPU e a memória principal, coloca-se uma hierarquia de memórias entre esses componentes:

– Cache L1 (mais próximo da CPU): mais rápido, menor

capacidade

– Cache L2 (imediatamente após L1): um pouco menos

rápido, capacidade um pouco maior

– …

– Cache Ln (último nível antes da memória): cache menos

(58)

TAE com Cache Multinível

● Para entender o TAE de todo o sistema com cache

multinível, basta observar o sistema como sendo:

CPU – Cache L1 – Memória efetiva (composta pelo subsistema memória principal e demais níveis de cache)

Sejam T

i o tempo de acesso e Hi o hit rate do cache Li.

TAE

(59)

● Para um sistema que tenha apenas dois níveis de cache,

L1 e L2, teremos:

TAE com Cache Multinível

(60)

● Para um sistema que tenha apenas dois níveis de cache,

L1 e L2, teremos:

TAE com Cache Multinível

TAE sistema = H1T 1+(1−H1)TAE mem.efetiva

(61)

● Para um sistema que tenha apenas dois níveis de cache,

L1 e L2, teremos:

TAE com Cache Multinível

TAE sistema = H1T 1+(1−H1)(H 2T 2+(1−H2)T mem)

TAE sistema = H1T 1+(1−H1)TAE mem.efetiva

(62)

● Para um sistema que tenha apenas dois níveis de cache,

L1 e L2, teremos:

TAE com Cache Multinível

TAE sistema = H1T 1+(1−H1)(H 2T 2+(1−H2)T mem)

TAE sistema = H1T 1+(1−H1)TAE mem.efetiva

TAE mem.efetiva = H2T 2+(1−H2)T mem

(63)

Para Casa

● Deduzir uma expressão para o tempo de acesso efetivo

para um sistema com 3 níveis de cache, L1, L2, L3, entre a memória e a CPU

● Ler seções (5a ed.) 4.1, 4.2 (com atenção, leia da

introdução da seção até “organização em módulos”), 4.3 e apêndice do capítulo 4

Referências

Documentos relacionados