Вы находитесь на странице: 1из 44

1

Professores:

Aula 2

Lcia M. A. Drummond Simone de Lima Martins

Contedo:
Subsistemas de memria
- Memria Cache - Detalhes

Memria Cache
Diferena de velocidade UCP/MP
MP transfere bits para a UCP em velocidades sempre inferiores s que a UCP pode receber e operar os dados - tempo de espera na UCP (wait state) Difcil de resolver. Enquanto o desempenho dos processadores dobra a cada 18 ou 24 meses, o mesmo no acontece com as memrias DRAM (aumento de 10% a cada ano) Tecnologia para aumentar a velocidade de MP bem conhecida problema: CUSTO!!

Memria Cache
Conceitos de Localidade
A execuo de programas se realiza, na mdia, em pequenos grupos de instrues. Duas facetas: espacial e temporal Localidade espacial: se o programa acessa uma palavra de memria, h uma boa probabilidade de que ele acesse uma palavra subseqente ou de endereo adjacente Localidade temporal: Se um programa acessa uma palavra de memria, h uma boa probabilidade de que em breve ele acesse a mesma palavra novamente

Memria Cache
Conceitos de Localidade
MP
Outro programa

Parte 1 do progr. A

Executado em seqncia

Call sub-rotina 1

loop 1

loop 2

sub-rotina 1

parte 2

parte 3

(Fig. 5.20 do livro texto)

Memria Cache
Utilizao da Memria Cache
Sempre que a UCP vai buscar uma nova instruo (ou dado), ela acessa a memria cache Se a instruo estiver na cache, chama-se de acerto (hit). Ela transferida em alta velocidade Se a instruo no estiver na cache, chama-se de falta (miss). O grupo de instrues a que a instruo pertence transferida da MP para a cache, considerando o princpio da localidade
UCP
Transferncia cache/UCP: palavra por palavra

CACHE
Transferncia cache/UCP: bloco por bloco de palavras

MP (Fig. 5.21 do livro texto)

Memria Cache
Utilizao da Memria Cache
Para melhorar o desempenho necessrio muito mais acertos do que faltas

UCP

MEMRIA CACHE

SISTEMA DE E/S

CONTROLADOR DE DISCO

MP

BARRAMENTO NICO - DADOS, ENDEREOS E CONTROLE

(Fig. 5.22 do livro texto)

Memria Cache
Tipos de Memria Cache
Dois tipos bsicos de emprego de cache: Na relao UCP/MP (cache de RAM) Na relao MP/disco (cache de disco) Funciona segundo o mesmo princpio da cache de memria RAM porm em vez de utilizar a memria de alta velocidade SRAM para servir de cache, o sistema usa uma parte da memria principal, DRAM como se fosse um espao em disco

Memria Cache
Nveis de Cache da Memria RAM
Para no aumentar muito o custo da cache, conforme o aumento da sua capacidade: sistema hierrquico de caches Nvel 1 ou L1 sempre localizada no interior do processador Nvel 2 ou L2 localizada em geral na placa me, externa ao processador Nvel 3 ou L3 existente em poucos processadores, localizada externamente ao processador Cache tambm pode ser dividida: dados e instruo

Memria Cache
Nveis de Cache da Memria RAM

Processadores 486 C6 K5 K7 Pentium Pentium MMX Pentium PRO Power PC601 Pentium III

Fabricante Intel Cyrix AMD AMD Intel Intel Intel Motorola/IBM Intel

Tamanho 8KB, unificado 64KB, dividido 24KB, dividido 128KB, dividido 16KB, dividido 32KB, dividido 16KB, dividido 32KB 32KB, dividido

10

Memria Cache
Elementos de Projeto de uma Memria Cache
Definio do tamanho das memrias cache, L1 e L2 Funo de mapeamento de dados MP/cache Algoritmos de substituio de dados na cache Poltica de escrita pela cache

11

Memria Cache
Elementos de Projeto de uma Memria Cache Tamanho da Memria Cache (fatores):
Tamanho da memria principal Relao acertos/faltas Tempo de acesso da MP Custo mdio por bit, da MP, e da memria cache L1 ou L2 Tempo de acesso da cache L1 ou L2 Natureza do programa em execuo (princpio da localidade)

12

Memria Cache
Elementos de Projeto de uma Memria Cache Mapeamento de dados MP/Cache:
A memria RAM est dividida em conjuntos de B blocos, cada um com K clulas e a cache com Q linhas, cada uma com K clulas. Q muito menor do que B Para garantir acerto de 90% a 95% - conceito da localidade

13

Memria Cache
Elementos de Projeto de uma Memria Cache
Mapeamento de dados MP/Cache:
MP
Clula de end. 0 Clula de end. 1 Clula de end. 2 Bloco 0 (K clulas)

CACHE

Bloco 1
-

tag tamanho do bloco (K palavras)

End. N-1

Bloco (B-1)

- MP possui N palavras (clulas). - MP dividida em B blocos com K palavras cada. - Cache possui Q quadros (linhas de dados), cada uma contendo K palavras = tamanho do bloco da MP. - Cada quadro possui um campo(campo TAG) que contm o nmero de identificao do bloco que est nele armazenado.

(Fig. 5.23 do livro texto)

14

Memria Cache
Elementos de Projeto de uma Memria Cache
Para efetuar a transferncia de um bloco da MP para uma especfica linha da memria cache, escolhe-se um das 3 alternativas: Mapeamento Direto Mapeamento Associativo Mapeamento Associativo por conjuntos

15

Memria Cache
Mapeamento Direto
MP = 4 Gbytes
Bloco 0 Bloco 1 Bloco 2 64 bytes = 6 palavras 64 bytes = 6 palavras 64 bytes = 6 palavras

Cache = 64 Kbytes
16 bits 16 bits 64 bytes Quadro 0 Quadro 1

Bloco 1024 Bloco 1025 16 bits Tag

Bloco Quadro

Quadro 1023

Bloco 64M-1

Endereo da MP = 32 bits
No do bloco no quadro (tag) 16 bits No do quadro 10 bits End. da palavra 6 bits

(Fig. 5.24 do livro texto)

16

Memria Cache
Mapeamento Direto
Cada bloco da MP tem uma linha de cache Como h mais blocos do que linhas de cache, muitos blocos vo ser destinados a uma mesma linha

Memria Cache
Mapeamento Direto
Exemplo:
1. 2. 3. 4.

17

MP com 4G palavras (N) e endereos de 32 bits Cache com 64Kbytes, 1024 linhas (Q) com 64 bytes de dados cada uma (K) Nmero de blocos da MP = B = N/K = 4G/64= 64 M blocos Para localizar um endereo de MP (end) em Cache (EQ): EQ= end mdulo 1024
MP = 4 Gbytes
Bloco 0 Bloco 1 Bloco 2 64 bytes = 6 palavras 64 bytes = 6 palavras 64 bytes = 6 palavras

Cache = 64 Kbytes
16 bits 16 bits 64 bytes Quadro 0 Quadro 1

Bloco 1024 Bloco 1025 16 bits Tag

Bloco Quadro

Quadro 1023

Bloco 64M-1

(Fig. 5.24 do livro texto)

Memria Cache
Mapeamento Direto
Cada endereo da memria pode ser dividido da seguinte forma:

18

6 bits menos significativos: indicam a palavra (26= 64 palavras no bloco B e na linha Q) 10 bits do meio: indicam o endereo da linha da cache (210 = 1024 linhas) 16 bits mais significativos: qual o bloco dentre os 64 K blocos que podem ser alocados na linha
MP = 4 Gbytes
Bloco 0 Bloco 1 Bloco 2 64 bytes = 6 palavras 64 bytes = 6 palavras 64 bytes = 6 palavras

Cache = 64 Kbytes
16 bits 16 bits 64 bytes Quadro 0 Quadro 1

Bloco 1024 Bloco 1025 16 bits Tag

Bloco Quadro

Quadro 1023

Bloco 64M-1

No do bloco no quadro (tag) 16 bits

Endereo da MP = 32 bits
No do quadro 10 bits End. da palavra 6 bits

19

Memria Cache
Mapeamento Direto
Exemplo: UCP apresenta endereo de 32 bits ao circuito da cache: 00000000000001000000011001001000 Parte 1: 0000000000000100 (comparado com o tag do quadro 25 da cache) Parte 2: 0000011001 (quadro 25) Parte 3: 001000 (palavra 8 acessada)
Tag 0000000000000100 Quadro 0000011001 Palavra 001000 Endereo de leitura enviada pela UCP

Cache 4 4 byte 63 byte 8 byte 0 Quadro 0

4=4
-----------

Quadro 25

Quadro 1023 Tag Dados

(Fig. 5.25 do livro texto)

20

Memria Cache
Mapeamento Direto
Se os valores dos campos tag, do endereo e da linha cache no forem iguais - bloco deve ser transferido da MP para o quadro 25, substituindo o atual bloco. Em seguida, o byte 8 transferido para a UCP 26 bits mais significativos so utilizados como o endereo do bloco desejado (226 = 64M)
Tag 0000000000000100 Quadro 0000011001 Palavra 001000 Endereo de leitura enviada pela UCP

Mapeamento Direto
Cache 4 4 byte 63
------

Quadro 0

4=4 byte 8
------

Voltar

byte 0

Quadro 25

Quadro 1023 Tag Dados

21

Memria Cache
Mapeamento Direto
Consideraes: simples, de baixo custo, no acarreta sensveis atrasos de processamento de endereos Problema: fixao da localizao para os blocos (65.536 blocos destinados a uma linha) Se durante a execuo houver repetidas referncias a palavras situadas em blocos alocados na mesma linha: muitas substituies de blocos

22

Memria Cache
Mapeamento Associativo
Os blocos no tm uma linha fixada previamente para seu armazenamento Se for verificado que o bloco no est armazenado na cache, este ser transferido, substituindo um bloco j armazenado Endereo da MP dividido em duas partes: 6 bits menos significativos: palavra desejada 26 bits restantes: endereo do bloco desejado

23

Memria Cache
Mapeamento Associativo
Bloco 0 Bloco 1 Quadro 0 Quadro 1


Tag Palavras 538 bits (26 + 8 64)


Quadro 1023

Bloco (64M-1)

26 bits

(Fig. 5.26 do livro texto)

Sempre que a UCP realizar um acesso, o controlador da cache deve examinar e comparar os 26 bits de endereo do bloco com o valor dos 26 bits do campo de tag de todas as 1024 linhas.

24

Memria Cache
Mapeamento Associativo
Consideraes: Evita a fixao de blocos s linhas Necessidade de uma lgica complexa para examinar cada campo de tag de todas as linhas de cache

25

Memria Cache
Mapeamento Associativo por Conjuntos
Compromisso entre as duas tcnicas anteriores: tentar resolver o problema de conflito de blocos e da busca exaustiva e comparao do campo tag Organiza as linhas da cache em grupos, denominados conjuntos Nos conjuntos, as linhas so associativas

26

Memria Cache
Mapeamento Associativo por Conjuntos
A cache dividida em C conjuntos de D linhas: Quantidade de linhas Q = C x D Endereo da linha no conjunto K = E mdulo C

27

Memria Cache
Mapeamento Associativo por Conjuntos
O algoritmo estabelece que: O endereo da MP dividido da seguinte forma:

Tag 17 bits

Nmero do conjunto 9 bits

Endereo da palavra 6 bits

28

Memria Cache
Mapeamento Associativo por Conjuntos
O algoritmo estabelece que: Ao se iniciar uma operao de leitura, o controlador da cache interpreta os bits do campo de conjuntos para identificar qual o conjunto desejado. Em seguida, o sistema compara, no conjunto encontrado, o valor do campo tag do endereo com o valor do campo tag de cada linha do conjunto encontrado.
Bloco 0 Bloco 1 Quadro 0 Quadro 2 Quadro 1 Quadro 3 Conjunto 0 Conjunto 1


Palavras


Conjunto 511

Bloco (64M-1) Tag 17 bits

No do conjunto 9 bits End. da palavra 6 bits

Quadro 1022 Quadro 1023

(Fig. 5.27 do livro texto)

29

Memria Cache
Mapeamento Associativo por Conjuntos
Tag 00000000000000000 Conjunto 000000000 Palavra 001000 Endereo de leitura enviada pela UCP

Bloco 0 Bloco 1

Quadro 0 0

Quadro 1

byte 63 -- byte 8 -- byte 0 1023 byte 63 ----- byte 0 Conjunto 0 Conjunto 1


Palavras


Conjunto 511

Bloco(64M-1)

Exemplo Voltar

30

Memria Cache
Algoritmos de Substituio de Dados na Cache
Definir qual dos blocos atualmente armazenados na cache deve ser retirado para dar lugar a um novo bloco que est sendo transferido (j que Q<<B)

31

Memria Cache
Algoritmos de Substituio de Dados na Cache
Dependendo de qual tcnica de mapeamento se esteja usando, pode-se ter algumas opes de algoritmos: Se o mtodo de mapeamento for o direto, somente h uma nica linha possvel para um dado bloco Para os outros dois mtodos - associativo e associativo por conjunto existem vrias opes

32

Memria Cache
Algoritmos de Substituio de Dados na Cache
LRU: o sistema escolhe para ser substitudo o bloco que est h mais tempo sem ser utilizado FILA: o primeiro a chegar o primeiro a ser atendido. O sistema escolhe o bloco que est armazenado h mais tempo na cache. LFU: o sistema escolhe o bloco que tem tido menos acessos por parte da CPU Escolha aleatria: trata-se de escolher aleatoriamente um bloco para ser substitudo

33

Memria Cache
Poltica de Escrita pela Memria Cache
Toda vez que a UCP realiza uma operao de escrita, esta ocorre imediatamente na cache. Quando atualizar a MP?

34

Memria Cache
Poltica de Escrita pela Memria Cache
Consideraes: MP pode ser acessada tanto pela cache quanto por elementos de E/S. possvel que uma palavra da MP tenha sido alterada s na cache, ou um elemento de E/S pode ter alterado a palavra da MP e a cache esteja desatualizada MP pode ser acessada por vrias UCPs. Uma palavra da MP atualizada para atender alterao de uma cache especfica e as demais caches estaro desatualizadas.

35

Memria Cache
Poltica de Escrita pela Memria Cache
Tcnicas: Escrita em ambas (write through): cada escrita em uma palavra de cache acarreta escrita igual na palavra correspondente da MP Escrita somente no retorno (write back):atualiza a MP apenas quando o bloco for substitudo e se tiver ocorrido alguma alterao na cache. Uso do bit ATUALIZA Escrita uma vez (write once): uma tcnica apropriada para sistemas multi UCP/cache, que compartilhem o mesmo barramento. Primeira atualizao: write through + alerta os demais componentes que compartilham o barramento nico.

36

Memria Cache
Poltica de Escrita pela Memria Cache
Comparaes: Com write through pode haver uma grande quantidade de escritas desnecessrias na MP Com write back, a MP fica desatualizada para dispositivos de E/S, por exemplo, o que os obriga a acessar o dado atravs da cache (problema!) write once conveniente para sistemas com mltiplas UCPs Estudos mostram que a percentagem de escritas na MP baixa (15%), o que aponta para uma simples poltica write through

37

Detalhes
Localizao da Clula desejada
O processo de localizao de uma determinada clula para efeito de uma operao de leitura ou escrita o mesmo, qualquer que seja a tecnologia de fabricao de MP

38

Detalhes
Organizao de memria Tipo Seleo Linear - 1 Dimenso
Com esta tcnica todos os bits de uma dada palavra esto na mesma pastilha Arranjo fsico igual ao arranjo lgico: o conjunto organizado em N palavras de M bits cada Ex: uma pastilha de 16 K bits pode conter 1024 palavras de 16 bits cada Elementos de cada conjunto so conectados por linhas horizontais e verticais

Detalhes
Organizao de memria Tipo Seleo Linear - 1 Dimenso
8 bits Linha de bit Linhas de endereos (E = log2 N linhas) Decodificador por seleo de linha (1 entre N linhas) Linha de clula

39

REM E bits

Memria

Read / Write (Fig. 5.35 do livro texto)

Circuitos de E/S p/ colunas Linhas de dados

Cada linha horizontal da memria uma sada do decodificador de linha e cada linha vertical da memria se conecta ao sensor de dados para receber ou enviar 1 bit de palavra O decodificador tem 2E sadas para E entradas, isto , se cada endereo armazenado no REM tem E bits, a ligao REM-decodificador tem E linhas

N clulas

Detalhes
Organizao de memria Tipo Seleo Linear - 1 Dimenso
8 bits Linha de bit Linhas de endereos (E = log2 N linhas) Decodificador por seleo de linha (1 entre N linhas) Linha de clula

40

REM E bits

Memria

Read / Write (Fig. 5.35 do livro texto)

Circuitos de E/S p/ colunas Linhas de dados

Ex: a pastilha de 16K bits teria um REM de 10 bits, 10 linhas de sada do REM para o decodificar e deste sairiam 1024 linhas, uma para cada clula da memria Tomemos, o endereo 12 decimal, armazenado no REM. Isto acarretaria uma sada 1 na 13 linha do decodificador e as demais linhas seriam iguais zero.

N clulas

41

Detalhes
Organizao de memria Tipo Matriz Linha/Coluna
Uma memria com 16K clulas, onde cada endereo um nmero com 14 bits, visto que 214=16K Cada pastilha possui 14 linhas de endereo, identificadas pela nomenclatura A0 a A13 Divididas em duas: A0 a A6 conectadas ao decodificador de colunas, A7 a A13 conectadas ao decodificador de linhas

Detalhes
Organizao de memria Tipo Matriz Linha/Coluna
Clula de memria 4095 Decodificador de linha Clula de memria 3968 Entrada de dados

42

A13 A12
7 a 128 decodificador de linha

129 126 123

A8

A7

3 2 1 0
Clula de memria 0

Sada de dados

Clula de memria 127

127 126 124 123 122

7 a 128 - decodificador de linha


Decodificador de coluna

(Fig. 5.37 do livro texto)

A6

A5

A4

A1

A0

O cruzamento de linha e coluna ativadas pelos respectivos decodificadores corresponde clula desejada endereada pelos 14 bits Ocorrem 128x128 cruzamentos = 16K clulas. Uma memria com 16K clulas, onde cada endereo um nmero com 14 bits, visto que 214 =16K

43

Detalhes
Organizao de memria
Comparao Seleo linear: nmero de linhas de sada muito maior, mais circuitos em uma nica pastilha Na tcnica de matriz por linhas e colunas que seleciona 1 bit de palavra por pastilha so usadas vrias pastilhas mais simples para totalizar a quantidade de bits por palavra.

44

Memria Cache
Exerccios: Captulo 5 do livro texto. Questes: 1 at 15, 17, 20, 21, 23, 24 e 28.

Вам также может понравиться