A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

 Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado.

Apresentações semelhantes


Apresentação em tema: " Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado."— Transcrição da apresentação:

1

2  Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto  Localidade Espacial  Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo referenciados 2

3  Localidade temporal:  Em função de sua estrutura, as instruções e dados da maioria dos programas tendem a ser acessados de maneira repetitiva  Localidade espacial:  As instruções são acessadas quase sempre de maneira seqüencial  Elementos de arrays ou registros 3

4  Dados sempre copiados entre níveis de memória adjacentes  Análise focada apenas em dois níveis, um superior e um inferior  Bloco:  Unidade mínima de informação trocada entre níveis 4

5 5 Processador Dados transferidos

6  Mede desempenho da Hierarquia  Acerto:  Informação solicitada pelo processador encontra- se no nível superior  Taxa de acerto: fração de acessos com acerto  Falta:  Informação solicitada pelo processador não se encontrada no nível superior  Nível inferior acessado em busca do bloco.  Taxa de faltas = (1 – taxa de acerto) 6

7  Determinam a eficiência da implementação de uma hierarquia de memória  Tempo de acerto – tempo para acesso ao nível superior, incluindo o tempo para determinar o acerto ou falta  Penalidade por falta – tempo para a substituição dos blocos mais o tempo de envio da informação ao processador  Tempo de acerto <<< penalidade por falta 7

8  Originalmente, nível da hierarquia de memória situado entre o processador e a memória principal  Termo estendido para qualquer memória gerenciada de modo a tirar vantagem da localidade de acesso 8

9  Diminui o gargalo existente entre processador e memória principal  Diferença de velocidade  5 a 10 vezes mais rápidas que a memória principal  Ligada diretamente à MP 9

10  Tecnologia semelhante à da CPU e, em conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache 10

11  L1 – Level 1 (nível 1)  Dentro do processador  Mesma velocidade do processador  L2 – Level 2 (nível 2)  Dentro do invólucro, fora do chip  Metade da velocidade do processador  L3 – Level 3 (nível 3) 11

12 12 Cache L1 Processador Cache L2 Memória principal Invólucro do processador

13  A cache L1 é geralmente dividida em cache de dados e cache de instruções: processamento mais rápido 13 dados processador instruções Cache L1

14  Devido ao princípio da localidade, é interessante que a memória cache armazene o pedaço do programa que é executado repetidas vezes, deixando o restante do programa que não está sendo utilizado na memória principal 14

15  Sempre que o processador vai buscar uma nova instrução (ou dado), ele acessa a memória cache:  Se a instrução estiver na cache (acerto ou hit), ela é transferida em alta velocidade para o processador  Se a instrução não estiver na cache (falta ou miss), a execução do programa é interrompida e a instrução desejada é transferida da MP para a MC 15

16  Não é feita a transferência somente da instrução, mas sim de um bloco que, segundo o princípio da localidade, contém instruções que serão usadas em seguida 16

17 17 Processador Cache controlador de cache Memória principal Bloco de palavras Palavra (instrução ou dado)

18  Função de mapeamento MP/MC  Algoritmos de substituição de dados na cache  Políticas de escrita 18

19  A função de mapeamento indica quais blocos da MP estão presentes na cache e onde eles estão localizados na cache  A MC e MP estão divididas em blocos de x palavras  A MC pode conter m blocos (linhas)  A MP pode conter b blocos 19

20 20...... Bloco 0 Byte 0 Byte 1 Byte 63...... Byte 0 Byte 1 Byte 63 Bloco 1...... Byte 0 Byte 1 Byte 63 Bloco 2 26 -1...... MP Divisão da MP de 4G bytes em blocos de 64 bytes então tem-se 2 26 blocos de 64 bytes

21 21 Byte 0 Tag ou rótulo MC Byte 0 Byte 1 Byte 63......... Linha 0 Linha 1 Linha 2 Linha 1023 Divisão da MC de 64K bytes em linhas de 64 bytes então tem-se 1024 linhas de 64 bytes

22  Cada bloco da MP tem uma linha de cache previamente definida para ser armazenado  Muitos blocos irão ser destinados a uma mesma linha 22

23 23...... B 0 Byte 0 Byte 1 Byte 63...... Byte 0 Byte 1 Byte 63 B 1...... Byte 0 Byte 1 Byte 63 B 2 26 -1...... Byte 0 Byte 1 Byte 63......... Linha 0 Linha 1 Linha 2 Linha 1023 tag Bloco 1023

24  Cada linha da MC deverá acomodar 2 16 blocos ou 65536 blocos (um de cada vez)  O campo tag serve para identificar qual bloco a linha está armazenando no momento 24

25  Cada endereço de MP pode ser dividido nos seguintes elementos: 25 Número do bloco na linha Número da linhaNúmero do byte 16 bits 2 16 = 64K blocos 10 bits 2 10 = 1024 linhas 6 bits 2 6 = 64 bytes 32 bits

26  Exemplo:  O processador manda para a MC o seguinte endereço: 26 00000000000001000000011001001000 4 258

27 27 Byte 0 Tag ou rótulo Byte 0 Byte 1 Byte 63... Linha 0 Linha 1 Linha 2 Linha 1023 00000000000001000000011001001000 4 258 Byte 0Byte 1Byte 63Byte 8 4 Linha 25

28  Se o campo tag do endereço for igual ao campo tag da linha da cache, o conteúdo do byte solicitado é enviado para o processador 28

29  Se os campos tag forem diferentes, isso significa que o bloco desejado não se encontra na cache e, portanto, deve ser transferido da MP para a linha 25, substituindo o atual bloco para, em seguida, a palavra (o byte) requerida ser transferida para o processador pelo barramento de dados 29

30  A técnica de mapeamento direto é simples e de baixo custo  Desvantagem: fixação da localização para os blocos  Imagine se durante a execução de um programa um dado código fizer referências repetidas a palavras situadas em blocos alocados na mesma linha, então haverá necessidade de sucessivas idas à MP para substituição de blocos (muitas faltas) e queda no desempenho do sistema 30

31  Os blocos não têm uma linha fixada previamente para seu armazenamento  O bloco é armazenado em uma linha que é selecionada de acordo com o algoritmo de substituição de cache 31

32 32...... B 0 Byte 0 Byte 1 Byte 63...... Byte 0 Byte 1 Byte 63 B 1...... Byte 0 Byte 1 Byte 63 B 2 26 -1...... Byte 0 Byte 1 Byte 63......... Linha 0 Linha 1 Linha 2 Linha 1023 tag

33  Cada linha da MC pode acomodar um dos 2 26 blocos da memória principal  O campo tag tem agora 26 bits de tamanho 33

34  Cada endereço de MP é dividido nos seguintes elementos: 34 Número do blocoNúmero do byte 26 bits 2 26 blocos 6 bits 2 6 bytes 32 bits

35  Quando o processador realiza um acesso à memória, o campo bloco do endereço é comparado com todos os 1024 tags da cache para verificar se o bloco está ou não presente 35

36  Se o bloco estiver presente, o byte é transferido para a CPU senão o endereço do bloco é usado para buscar na memória principal o bloco ausente 36

37  Desvantagem: teste do campo bloco do endereço de memória com todos os tags da cache 37

38  Esquema intermediário entre o direto e o totalmente associativo  Número fixo de posições onde um bloco pode ser armazenado na cache  Cache associativa de n posições:  n posições possíveis para cada bloco  Cache com conjuntos de n posições  Blocos mapeados diretamente em um conjunto e colocado em qualquer elemento do conjunto 38

39 39

40  Quando o processador é inicializado, a cache está vazia e os rótulos não têm significado  Bits de validade são adicionados à cache para identificar se um bloco tem informações válidas  Bit igual a zero -> Informação inválida 40

41  Atividades do controle principal:  Parar o processador  Congelar o conteúdo dos registradores  Um controle separado trata as faltas:  Busca a informação necessária na memória  Atualiza a informação na cache  Execução retomada no ciclo gerador da falta 41

42 1. Enviar à memória o valor original de PC 2. Comandar uma leitura da unidade de memória e esperar o resultado 3. Escrever o resultado da leitura na entrada da cache, seu rótulo e bit de validade 4. Reiniciar a execução da instrução no passo 1 42

43  Técnica para redução do número de ciclos parados pela falta no acesso à cache  Baseia-se no processamento de outras instruções durante o tratamento de faltas  Na falta produzidas pelo acesso a dados novas instruções que não dependem do dado podem ser executadas  Não ajuda para faltas no acesso a instruções  Geralmente, não mostra ganhos expressivos pela dependência do dado sendo acessado 43

44  Qual bloco atualmente armazenado na cache deve ser retirado para dar lugar a um novo bloco que está sendo transferido?  LRU (Least Recently Used): O controlador de cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU  FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU 44

45  LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU  Escolha aleatória 45

46  Quando o processador realiza uma operação de escrita, esta acorre imediatamente na cache  A memória cache é uma memória intermediária logo é necessário que a MP seja atualizada para que o sistema mantenha sua correção e integridade 46

47 47 Cache Memória Principal X = 1 Y = 7 Z = 2 X = Y + Z X = 1 Y = 7 Z = 2 X = Y + Z Bloco 4 Processador X = Y + Z Antes da execução da instrução X = Y + Z

48 48 Cache Memória Principal X = 9 Y = 7 Z = 2 X = Y + Z X = 1 Y = 7 Z = 2 X = Y + Z Bloco 4 Processador X = Y + Z Depois da execução da instrução X = Y + Z

49 49 Processador Cache X = 1 Processador Cache X = 1 Processador X = Y + Z cache X = 9 MP X = 1 X = 9

50  O bloco 4 (o valor de X) precisa ser atualizado na memória  Quando?  Depende da política de escrita 50

51  Cada escrita em uma palavra da cache acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias  Caso haja outras CPUs, estas alterarão também suas caches 51

52  Simples, mas não favorece o desempenho  Qualquer escrita faz com que a informação seja escrita também na memória principal  Aumento do número de ciclos de clock  Buffer de escrita:  Armazena o dado enquanto este aguarda sua escrita na memória  Reduz o problema das escritas na mem. principal  Buffer cheio – Processador parado em escritas 52

53  Faltas de escrita:  Processador simplesmente atualiza a memória principal, como antes  Não ocorrem leituras da memória principal durante a escrita pelo processador 53

54  Quando ocorre uma escrita, o novo valor é escrito apenas no bloco da cache  O bloco só será escrito na memória principal quando ele precisar ser substituído na cache  Pode melhorar muito o desempenho, porém é mais complexo que o write- through 54


Carregar ppt " Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado."

Apresentações semelhantes


Anúncios Google