Você está na página 1de 141

http://sites.google.

com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

2015.1

PARTE 5

(Ref. Cap. 4 e 5 do livro do Stallings)


(Ref. Cap. 2 e 3 do livro do Tanenbaum)

Prof. Misael Morais


moraiscg@uol.com.br

http://sites.google.com/site/moraiscg

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

MEMRIA

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria
Conceito:

Em sistema digital, um conjunto de clulas ou dispositivos


capaz de armazenar informaes binria

Unidade bsica de armazenamento: Bit (Binary digIT)

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Hierarquias de memria no Computador


Custo, acesso

Menor capacidade

Custo, acesso

Interna
Externa
Maior capacidade

Hierarquia de memria de cinco nveis.

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Classificao de Memria

Quanto sua localizao:


Memria Interna

Memria Externa

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria Interna
Categoria:
Principal: de acesso mais rpido, mas de capacidade
mais restrita. Armazena informaes temporariamente
durante um processamento realizado pela UCP.

Secundria: de acesso mais lento, mas de capacidade

bem maior. Armazena grande conjunto de dados que a


memria principal no suporta.

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria Externa
Categoria:

Disco magntico
ptica
CD-ROM
CD-Writable (WORM)
CD-R/W
DVD

Fita magntica

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Caractersticas fundamentais das memrias

Localizao

Processador, Interna e Externa

Organizao

Palavras, Unidades endereveis, Unidade de transferncia (veja capacidade)

Palavra e unidades endereveis

Capacidade

Transferncia

Tempo de acesso (latncia), tempo de ciclo, taxa de transferncia

Tecnologia

Seqencial, Direto, Aleatrio e Associativo

Desempenho (terminologia principais parmetros)

Palavra (interna largura do barramento) e Bloco (normalmente externa)

Mtodo de acesso

Tamanho da palavra e nmero de palavras

Semicondutor, magntica, tica, magntica-tica

Caractersticas fsicas

Voltil, no-voltil, apagvel, no-apagvel

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Organizao/Capacidade/Palavra
Tamanho da Palavra: quantidade de bits lidos ou escritos paralela ou simultaneamente.
Ex.: palavra de 8 bits, 16 bits, ....., 64 bits

Capacidade: numero total de bits ou de palavras que a memria pode armazenar


Nmero total de palavras X tamanho da palavra:
16K X 8 = 16K Bytes = 16 x 1024 x 8 bits = 16384 palavras de 8 bits = 31072 bits

Organizao: disposio ou arranjo com que a memria constituda.


EX.: 16K X8;

8K X 16 (mesma capacidade; organizaes diferentes)

Densidade: capacidade de armazenamento de bits no mesmo espao


Endereo: Conjunto de bits que identificam a posio de memria onde est

armazenada uma palavra.


Escrita: operao de colocao de uma palavra (contedo) em uma posio (endereo)

especificado, substituindo a anterior.


Leitura: operao de recuperao da informao armazenada (contedo) de uma

determinada posio (endereo).

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Organizao/Capacidade/Palavra
Memrias com Endereamento Explcito: A palavra a lida ou escrita na memria associada a
um numero inteiro de 0 a N-1 (o endereo)

Se: m linhas de dados (entrada/sada), e K nmero de linhas de endereo, ento, a memria


ter cada palavra com m bits e 2K palavras (ou endereos) e arranjo N x m, onde N = 2K .

.
Memrias com Endereamento Implcito: a palavra a ser lida ou escrita implicitamente

especificada

10

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


11

Organizao em detalhes
Um chip de 16 Mbits pode ser organizado como 1M de palavras de 16

bits.
Um sistema de um bit por chip tem 16 lotes de chip de 1 Mbit com bit 1

de cada chip no chip 1, e assim por diante.


Um chip de 16 Mbits pode ser organizado como um array de 2048 x

2048 x 4 bits.
Reduz nmero de pinos de endereo.

Multiplexa endereo de linha e endereo de coluna.

11 pinos para enderear (211=2048).

Aumentar um pino dobra o intervalo de valores, de modo que a


capacidade multiplica por 4.

11

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


12

Organizao

Dois modos de organizar um chip de memria de 4 Mbits.

12

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


13

Organizao (2)

CS

13

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


14

Organizao (4)
o arranjo fsico dos bits para formar palavras

Trs maneiras de organizar uma memria de 96 bits

14

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


15

Ordenao na organizao
ordem que os dados sero interpretados
Dado

(a) Memria big endian

Os bytes so guardados por ordem


decrescente do seu "peso numrico" em
endereos
sucessivos
da
memria
(extremidade maior primeiro ou big-endian).

Dado

(b) Memria little endian

Os bytes so guardados por ordem crescente do


seu
"peso
numrico"
em
endereos
sucessivos da memria (extremidade menor
primeiro ou little-endian).

15

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

16

16

Organizao em mdulos (1)


Arranjos de 256Kbytes
Endereos

Dados

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


17

Organizao em mdulos (2)

17

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mtodos de acesso
Seqencial:
Comea no incio e l em ordem.
Tempo de acesso depende da localizao dos dados e local anterior.
Por exemplo, fita.

Direto:
Blocos individuais possuem endereo exclusivo.
Acesso saltando para vizinhana, mais busca sequencial.
Tempo de acesso depende da localizao e local anterior.
Por exemplo, disco.

18

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Hierarquia de memria
Registradores:
Na CPU.

Memria interna ou principal:


Pode incluir um ou mais nveis de cache.
RAM.

Memria externa:
Armazenamento de apoio.

19

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Desempenho
Tempo de acesso: (TA)
Tempo entre apresentar o endereo e obter os dados

vlidos.
Tempo de ciclo de memria: (TN)
Tempo que pode ser exigido para a memria se recuperar

antes do prximo acesso.


Tempo de ciclo acesso + recuperao.

Taxa de transferncia: (R)


Taxa em que os dados podem ser movidos. (TN=TA+n/R)

20

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tipos Fsicos - Tecnologias


Semicondutor:
RAM;
ROM

Magntico:
Disco e fita.

ptico:
CD e DVD.

Outros:
.

Esttica
Dinmica

21

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tipos de memria de semicondutor


Tipo

Categoria

Apagamento

Escrita

Volatilidade

RAM

Leitura e escrita

Eltrico

Eltrico

Voltil

ROM

Mscara
No possvel

PROM
EPROM

Apenas Leitura

Luz UV

No-voltil
Eltrico

Flash

Eltrico

EEPROM

Eltrico

22

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tipos de memria RAM (1)


Requerem energia para reter a informao armazenada
RAM Dinmica (DRAM) - Esta uma memria baseada na tecnologia de
capacitores e requer a atualizao peridica do contedo de cada clula 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.

RAM Esttica (SRAM)- - uma memria baseada na tecnologia de transistores


e no requer atualizao dos dados. Consome mais energia (o que gera mais
calor) comparando-se com a memria dinmica sendo significativamente mais
rpida. frequentemente usada em computadores rpidos. Possui uma
capacidade de armazenamento bem menor que a memria dinmica.

23

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tipos de memria RAM (2)

Vantagens

Desvantagens

RAM Dinmica

Barata
Baixo Consumo
Alta Densidade

Necessita de Atualizao
Lenta

RAM Esttica

Mais cara
Rpida
Consome Mais Energia
No necessita de atualizao
Baixa Densidade

24

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


25

Memria DRAM
Bits armazenados com carga em capacitores.
As cargas vazam.
Precisa de renovao mesmo se alimentada.
Construo mais simples.
Menor por bit.
Mais barata.
Precisa de circuitos de refresh.
Mais lenta.
Memria principal.
Dispositivo basicamente analgico.
Nvel de carga determina o valor.

25

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Caractersticas fsicas
Deteriorao.
Volatilidade. (externa no-voltil chamada memria
secundria ou auxiliar)

Apagvel.
Consumo de energia.

26

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


27

Refreshing (DRAM)
Circuito de refresh includo no chip.
Desabilita chip.
Conta por linhas.
L e escreve de volta.
Leva tempo.
Atrasa o desempenho aparente.

27

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


28

Operao memria DRAM


Linha de endereo ativa quando bit lido ou escrito.
Chave de transistor fechada (corrente flui).

Escrita:
Voltagem na linha de bit.

Alta para 1 baixa para 0.

Depois sinaliza linha de endereo.

Transfere carga ao capacitor.

Leitura:
Linha de endereo selecionada.

Transistor liga.

Carga do capacitor alimentada por linha de bit para amplificador comparar.

Compara com valor de referncia para determinar 0 ou 1.

Carga do capacitor deve ser restaurada.

28

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

DRAM 16Mb (4M x 4) - Esquema

29

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

SRAM versus DRAM


Ambas volteis.
preciso energia para preservar os dados.

Clula dinmica:
Mais simples de construir, menor.
Mais densa.
Mais barata.
Precisa de refresh.
Maiores unidades de memria.

Esttica:
Mais rpida.
Cache.

30

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


31

Read Only Memory (ROM)


Armazenamento permanente.
No voltil.

Microprogramao.
Sub-rotinas de biblioteca.
Programas do sistema (BIOS).
Tabelas de funo.

31

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


32

Tipos de ROM
Gravada durante a fabricao:
Muito cara para pequenas quantidades.

Programvel (uma vez):


PROM.
Precisa de equipamento especial para programar.

Lida na maioria das vezes:


Erasable Programmable (EPROM).

Apagada por UV.

Electrically Erasable (EEPROM):

Leva muito mais tempo para escrever que para ler.

Memria flash:

Apaga memria inteira eletricamente.

32

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


33

Barramento da unidade de memria


Memria: formada por N palavras de um mesmo tamanho.
Cada palavra possui um nico endereo (0,1,...,N-1)
Uma palavra pode ser lida ou escrita na memria
Recebe e envia sinais de dados
Recebe sinais de endereos
Recebe sinais de controle
Ler (read)
Escreve (write)
Temporizao (timming)

33

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


34

Barramento da unidade de memria

Leitura

Memria

Escrita

N palavras
Endereo

Dados

.
.
.
N-1

Contrl

Dados

34

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


35

Decodificao de endereo (1)

Localizao de EPROM, RAM e Porta (E/S) em nosso espao


de endereo de 64 KB

35

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


36

Decodificao de endereo (2)

(E/S)

Decodificao de endereo completo com E/S


mapeado na memria

36

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


37

Decodificao de endereo (3)

Decodificao parcial de endereo com E/S mapeado


na memria

37

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Principio de operao da memriaResumo


38

Selecionar o endereo
Selecionar uma operao de leitura ou escrita
Fornecer os dados para serem escritos
Manter os dados de sada vindo da memria
Habilitar e desabilitar a memria
MSB

A4

MSB
D3

A3

Entrada
de endereo

A2
A1

LSB

A0

Memria
32x4

Habilitao de memria

D1
D0

LSB
R/W

Comando de leitura/escrita

Entrada/sada
de dados

D2

CS (ou ME)

38

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


39

Empacotamento (1)
Taxa de transferencia em MB;s

CL- tRCD - tRP - tRAS - CMD


Clock mximo

Capacidade

Memria da Corsair

39

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


40

Empacotamento (2)

40

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

41

Empacotamento (3)
SDR DIM

Transmite 8 dados por ciclo de


clock

Transmite 4 dados por ciclo de


clock

DDR, DDR2, DDR3


Transmite 2 dados por ciclo de
clock

DDR-Double Data Rate

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

42

42

Gerenciamento de memria por segmentao


no processador da Intel
Segmento -> uma rea de memria
Offset -> um endereo dentro do segmento
Endereo lgico / endereo efetivo
Endereo fsico

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)


43

Correo de erro
Falhas graves
Defeito permanente

Erros moderados (no permanente)


Aleatrio, no destrutivo
Causados por problema de alimentao presena de

partculas alfas
Lgica de deteo e correo de erro. (cdigo Hamming)

43

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

A ideia de Hamming
1- Qual carta foi virada?

Richard W. Hamming
(1915-1998)

2-Coloco uma fileira extra

44

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mudou uma carta. Qual?

Isto uma algoritmo real de


deteco e correo de erro.
PARIDADE EM BLOCOS.

45

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Sabe-se qual linha errada,


mas no qual carta
PARIDADE SIMPLES.

46

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Distncia de Hamming
o nmero de bits diferentes entre duas cadeias.
Ex.:

Sem erros: distncia = 0


Um erro: distncia = 1
Dois erros: distncia = 2

47

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Cdigo de correo de erro

Sendo: 2K - 1 M + K

48

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Cdigo de correo de erro de Hamming

49

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

50

http://sites.google.com/site/moraiscg

51

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo
Posio do bit 12

11

10

Nr. da posio

1100

1011

1010

1001

1000

0111

0110

0101

0100

0011

0010

0001

Bit de dados

D8

D7

D6

D5

D4

D3

D2

C2

C1

Bit de
verificao

C8

C1 =

D1 +

C2 =

D1 +

C4 =
C8 =

D2

D2

+
+

D4 +
D3 +

D4 +

D3 +

D4 +

D1
C4

D5

D7
D6 + D7
D8

D5 +

D6 + D7 + D8

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria Cache
CPU
Registradores
Cache

Interna
Memria principal

O cache localiza-se logicamente entre a CPU e a memria


principal. Fisicamente h vrios locais onde ela pode ser
colocada

Cache

Pequena quantidade de memria rpida.

Fica entre a memria principal normal e a CPU.

Pode estar localizada no chip da CPU ou mdulo.

Externa
Dispositivo de massa

52

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria cache e principal

53

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Operao da cache viso geral


CPU requisita contedo do local de memria.
Verifica se os dados esto em cache.
Se estiverem, apanha da cache (rpido).
Se no, l bloco solicitado da memria principal para

a cache.
Depois, entrega da cache CPU.
Cache inclui tags para identificar qual bloco da

memria principal est em cada slot da cache.

54

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Lgica de funcionamento

55

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Ento voc quer velocidade?


possvel montar um computador que usa apenas RAM

esttica (veja adiante).


Este seria muito rpido.
Este no precisaria de cache.
Como voc pode manter o cache em cache?

Isso sairia muito caro.

56

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Resumo: Memria Cache

Idia bsica: manter no Cache as palavras mais usadas pelo processador.


Se a maior parte dos acessos for satisfeita pelo Cache, o tempo mdio de
acesso ser prximo do tempo de acesso ao Cache, que pequeno.

57

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Resumo: Memria cache


Princpios fundamentais:
Memria pequena e rpida
Situada entre a CPU e memria principal
Pode est montada na CPU ou fora

58

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Outros conceitos: Memria Cache


Falha de acesso Cache: Quando uma palavra procurada no estiver
no Cache, a linha correspondente trazida da memria principal.
Cache unificada: instrues e dados usam a mesma Cache. Mais
simples de projetar.
Caches divididas (arquitetura Harvard): utiliza uma Cache para
instrues e uma Cache para dados. Permite paralelizar a busca
dedados e instrues em processadores pipeline. Como as instrues
no so modificadas, o Cache de instrues no precisa ser
atualizado na memria principal.
Estrutura da Cache em nveis: Cache Primria (dentro do chip), Cache
Secundria (fora do chip, mas no mesmo invlucro), Cache Terciria
(totalmente dissociada da CPU).

59

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Arquitetura de cache harvard


Processador

Cache de
instrues

Cache de
dados

Memria
principal

60

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Cache lgica e fsica

61

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria Cache
Taxa de acertos (h)
h = (k-1)/k
onde k nmero de referncias a uma determinada palavra.

Tempo mdio de acesso (t)


t = c.h + (1 - h).(c+m).
Onde, m = tempo de acesso memria principal;
c = tempo de acesso Cache.
h = Taxa de acertos a memria cache
Est na cache hits
No est na cache - miss

62

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Memria Cache
Tempo mdio de acesso (t) a uma posio de

memria dada por:


t = c.h + (1 - h).(c+m).

Onde, m = tempo de acesso memria principal;


c = tempo de acesso Cache.
h = Taxa de acertos a memria cache

Est na cache hits


No est na cache - miss

63

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Entendendo Projeto de cache


Endereando.
Tamanho.
Funo de mapeamento.
Algoritmo de substituio.
Poltica de escrita.
Tamanho de bloco.
Nmero de caches.

64

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Consideraes a memria cache


Onde fica a cache?
Entre processador e unidade de gerenciamento de memria virtual.
Entre MMU e memria principal.

Cache lgica (cache virtual) armazena dados usando endereo virtual.


Processador acessa cache diretamente, no atravs da cache fsica.
Acesso cache mais rpido, antes da traduo de endereo da

MMU.
Endereos virtuais usam o mesmo espao de endereos para

diferentes aplicaes.

Deve esvaziar cache a cada troca de contexto.

Cache fsica armazena dados usando endereos fsicos da memria

principal.

65

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Elementos do anlise de memrias cache


Tamanho
Funo de mapeamento
Direto
Associativo
Associativo por conjunto

Algoritmo de substituio
FIFO, aleatrio, menos usado,...

Poltica de escrita
Quantidade de memrias cache

66

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tamanho
Custo
Quanto mais cache mais caro

Velocidade
Mais cache mais rpido at certo ponto

Comprimento da linha o tamanho do bloco

67

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento direto

68

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento direto

Cada bloco de memria principal mapeado apenas para uma

linha de cache.
Ou seja, se um bloco est na cache, ele deve estar em um

local especfico.

69

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto

70

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto

71

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto

72

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto

73

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto

74

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto
Exemplo de uma cache com 1024 (210) linhas com palavra de 32 bits

75

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto - Passos

76

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Mapeamento Direto

77

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Mapeamento Direto

Como fica o contedo da cache depois


desta sequencia de acessos
memria? Assumir cache inicialmente
vazia.
0000, 0010, 0110, 0000, 1000, 0000

78

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

79

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

80

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

81

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

82

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

83

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplos: Cont.

84

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exerccio: Mapeamento Direto

85

http://sites.google.com/site/moraiscg

Exemplos: Resposta

Prof. Misael Morais (moraiscg@uol.com.br)

86

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Direto Transferncia


Transferncia de Blocos (linha com capacidade maior) entre nveis de memria
Exemplo: Memria de 32 bits de endereo e dados de 8 bits (4Giga Byte) e
cache de 1024 linhas de 32 Bytes

87

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

88

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

0
0
0
0

89

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

0
0
0
0

90

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

0
0
0
0

91

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

0
0
0
0

92

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

93

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

94

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

95

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

96

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exerccio: Mapeamento Direto


MAMRIA PRINCIPAL

CACHE

97

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exerccio: Resposta
MAMRIA PRINCIPAL

CACHE

98

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Dever de Casa

99

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Concluses e Questes

100

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Anexo: Tabela de converso de


endereamento de memria
22 = 4

220 = 1.048.576 = 1 MB

23 = 8

221 = 2.097.152 = 2 MB

24 = 16

222 = 4.194.304 = 4 MB

25 = 32

...

26 = 64

230 = 1.073.741.824 = 1 GB

27 = 128

231 = 2.147.483.648 = 2 GB

28 = 256

232 = 4.294.967.296 = 4 GB

29 = 512

233 = 8.589.934.592 = 8 GB

210 = 1024 = 1 KB

...

211 = 2048 = 2 KB
212 = 4096 = 4 KB
...

101

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Organizao da memria com


mapeamento direto

102

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo de mapeamento direto - cache


Parte do
endereo Dados
Rtulo

Rtulo

Dados

Nr. da
linha

Memria cache de 16 K linhas

8bits

Memria principal de 16 MBytes

14bits

2bits

103

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

104

Estrutura do mapeamento direto - cache


Rtulo - tag

Linha

Palavra

16 bits

10 bits

6 bits

32 bit de endereo
6 bit para identificar a palavra (blocos de 64 bytes)
26 bit para bloco identificando
16 bit rtulo (=26-10)
10 bit para linha (slot)

No existe dois blocos do mesmo conjunto na cache (mesmo

rtulo mais de uma vez na cache)


checado o contedo do cache para localizar a linha e o rtulo

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Resumo

105

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento associativo

106

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento Associativo

107

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000, 0010, 0110, 0000, 1000, 0000,0101


Endereo 4 bits (16 posies)
Tag; 4 bits

108

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000

AAAA

Preenche linha 00 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Miss

109

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0010

AAAA
BBBB

Preenche linha 01 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Miss

110

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0010
0101

AAAA
BBBB
EEEE

Preenche linha 10 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Miss

111

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0010
0101

AAAA
BBBB
EEEE

Preenche linha 10 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Hit

112

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0010
0101
1000

AAAA
BBBB
EEEE
DDDD

Preenche linha 11 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Miss

113

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0010
0101
1000

AAAA
BBBB
EEEE
DDDD

Preenche linha 11 da cache


0000, 0010, 0110, 0000, 1000, 0000,0101
Hit

114

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exemplo: Mapeamento Associativo


Memria
Principal

Tag

Cache

0000
0101
0101
1000

AAAA
EEEE
EEEE
DDDD

Linha 01 da cache substituida


0000, 0010, 0110, 0000, 1000, 0000, 0101
Miss
Total 5 Misses e 2 Hits

115

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Substituio na Cache

116

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

117

Exemplo: Mapeamento associativo por bloco


Memria
Principal

Tag

Cache

Endereo 6 bits (64 posies)


Tag; 4 bits | bloco (2 bits)

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

118

Exemplo: Mapeamento associativo por bloco


Memria
Principal

Tag

Cache

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento associativo - estrutura de


endereo
Tag 22 bit

Palavra
2 bit

Tag de 22 bits armazenado a cada bloco de 32 bits de dados.


Compara campo de tag com entrada de tag na cache para procurar

acerto.
2 bits menos significativos do endereo identificam qual word de 16
bits exigida do bloco de dados de 32 bits.
Ex.:
Endereo
Tag
Dados
Linha de cache
FFFFFC
3FFFFF
24682468
3FFF

119

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Organizao da memria com


mapeamento associativo

120

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Estrutura do mapeamento totalmente associativo - cache

121

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Resumo do mapeamento associativo


Tamanho do endereo= (s + w) bits.
Nmero de unidades endereveis= 2s+w words ou bytes.
Tamanho do bloco= tamanho de linha= 2w palavras ou

bytes.
Nmero de blocos na memria principal= 2s+w/2w = 2s.
Nmero de linhas na cache= indeterminado.
Tamanho da tag= s bits.

122

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exerccio

Endereo de 28 bits (256 Mega)


25 bits (Tag)

3 bits

123

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Exerccio
Das afirmaes a seguir, sobre memoria cache, so verdadeiras?

124

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Concluses

125

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento associativo em conjunto


um meio-termo entre a tcnica direta e associativa.
Cache dividida em uma srie de conjuntos.
Cada conjunto contm uma srie de linhas.
Determinado bloco mapeado a qualquer linha em determinado

conjunto.
Ex.,Bloco B pode estar em qualquer linha do conjunto i.

Ex.: 2 linhas por conjunto:


Mapeamento associativo com 2 linhas.
Determinado bloco pode estar em uma de 2 linhas em apenas

um conjunto.

126

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Organizao da memria com


mapeamento associativo por conjunto

127

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Mapeamento associativo em conjunto


Exemplo
Memria cache de 32KB de capacidade,

constituda de linhas de 8 bytes e conjunto de 4.


A MP de 16MBytes. Qual o total de bits da
cache?

128

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Estrutura do mapeamento associado por conjunto

129

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Tcnicas de atualizao do cache


Escrita direta (write though)
Sempre que houver uma escrita, o controlador atualiza o cache e, em
seguida, a memria principal

Contra escrita (write back)


Quando houver uma escrita, ela atualizada apenas no cache e s escrita na
memria principal quando a posio do cache for requisitada.

130

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Poltica de escrita
No deve sobrescrever bloco de cache a menos

que a memria principal esteja atualizada.


Mltiplas CPUs podem ter caches individuais.
E/S pode enderear memria principal

diretamente.

131

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Write-through
Todas as escritas vo para a memria principal e

tambm para a cache.


Mltiplas CPUs podem monitorar o trfego da memria

principal para manter a cache local ( CPU) atualizada.


Muito trfego.
Atrasa as escritas.
Lembre-se de caches write-through falsos!

132

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Write-back
Atualizaes feitas inicialmente apenas na

cache.
Bit de atualizao para slot de cache definido
quando ocorre a atualizao.
Se o bloco deve ser substitudo, escreve na
memria principal apenas se o bit atualizado
estiver marcado.
Outras caches saem de sincronismo.
E/S deve acessar a memria principal atravs da
cache.
15% das referncias de memria so escritas.

133

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Obs.:
Blocos maiores:
Reduzem nmero de blocos que cabem na cache.
Dados sobrescritos pouco depois de serem buscados.
Cada palavra adicional menos local, de modo que

menos provvel de ser necessria.


Nenhum valor ideal definitivo foi descoberto.
8 a 64 bytes parece ser razovel.
Para sistemas HP, 64 e 128 bytes mais comum.

134

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Algoritmos de substituio
Mapeamento direto
Sem escolha.
Cada bloco mapeado apenas a uma linha.
Substitui essa linha.

135

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Algoritmos de substituio
Associativa e associativa em conjunto
Algoritmo implementado no hardware (velocidade).
Least Recently Used (LRU).
Ex., na associativa em conjunto com 2 linhas.
Qual dos 2 blocos LRU?

First In First Out (FIFO).


Substitui bloco que est na cache h mais tempo.

Least Frequently Used (LFU).


Substitui bloco que teve menos acertos.

Aleatrio.

136

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Algoritmo de substituio

LRU Menos recentimento usado


FIFO
FLU Menos frequentemente usado

137

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Caches unificadas versus separadas


Uma cache para dados e instrues ou duas, uma para dados e uma

para instrues.
Vantagens da cache unificada:
Maior taxa de acerto.

Equilibra carga entre buscas de instruo e dados.

Apenas uma cache para projetar e implementar.

Vantagens da cache separada:


Elimina disputa pela cache entre a unidade de busca/decodificao

de instruo e a unidade de execuo.

Importante no pipeline de instrues.

138

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Format ST506

Gap1

Sync
Byte

Id

Track

Gap2

Head

Data Gap3

Sector

Gap1

CRC

Id

Gap2

Sync
Byte

Data Gap3

Data

CRC

139

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

Disco SCSI

Alguns dos possveis parmetros SCSI.

140

http://sites.google.com/site/moraiscg

Prof. Misael Morais (moraiscg@uol.com.br)

12 byte
Sync

Mode

Sector

00

Sec

00

FF
x 10

Min

Formato de um bloco do CD-ROM

4 byte
Id

Data

2.048 byte

2.352 byte

Mode 0=blank data field


Mode 1=2.048 byte data+error correction
Mode 2=2.336 byte data

Layered
ECC

288 byte

141