Vous êtes sur la page 1sur 41

Infraestrutura de Hardware

Explorando a Hierarquia de Memria

Perguntas que Devem ser Respondidas ao Final do Curso

Como um programa escrito em uma linguagem de

alto nvel entendido e executado pelo HW?

Qual a interface entre SW e HW e como o SW instrui o HW a executar o que foi planejado?

O que determina o desempenho de um programa e como ele pode ser melhorado?

Que tcnicas um projetista de HW pode utilizar para melhorar o desempenho?

Componentes de um Computador

Sistema de memria de um computador composto por vrios tipos de memria

Importncia da Memria no Desempenho

Uma forma de aumentar o desempenho de um computador melhorar o desempenho da CPU


Algumas tcnicas vistas:
Pipeline, Superescalar, Multicore

Comumente, programas contm muitas instrues que acessam a memria Portanto, tempo de acesso a memria deve tambm ser otimizado Tempo de acesso a memria representa, na maioria das vezes, o gargalo da execuo de um programa

Processador x Memria: Desempenho

2x /1,5 ano

2x /10 anos

Memory Wall

Desempenho do sistema limitado pela memria Bom projeto de sistema de memria fundamental para melhorar desempenho

Requisitos Mnimos do Windows 7

Requisitos do sistema de memria

Profecia de um Visionrio... Memria Principal 640K ought to be enough for anybody.

Bill Gates, 1981

Tecnologias de Memria
Tecnologia Ano Tempo de acesso U$/Gbyte(2004)

Static RAM (SRAM) Dynamic RAM (DRAM)

2008

0,5 2,5ns

2000 a 5000

2008

50 - 70ns 5-20 ms ou 5.000.000 a 20.000.000 ns

20 - 75

Disco

2008

0,5 a 2

Memria ideal: velocidade de SRAM , tamanho e custo de disco!

RAM Dinmica vs. Esttica

DRAM (Dynamic Random Access Memory)


Maior tempo de acesso (50 70 ns) Perda de informao aps algum tempo
Necessidade de refreshing (~8ms)

Grande capacidade de integrao (baixo custo por bit)

SRAM (Static Random Access Memory)


Pequeno tempo de acesso (0,5 2,5 ns) No existe necessidade de refreshing Alto custo por bit (baixa integrao)

Como Minimizar Tempo de Acesso a Memria?


Programador deseja ter memria maior e mais veloz Existem vrios tipos de memria construdos com tecnologia diferente
SRAM, DRAM, Magntico, etc

Diferena de velocidade e de custo


Fato: Mais velozes mais caros
Maiores so mais lentas, menores so mais rpidas

Deve-se criar iluso de oferecer memria maior, mais barata e mais rpida(na maioria das vezes)

Hierarquia de Memria!

Hierarquia de Memria

Aproveitar princpio da localidade para oferecer o mximo de memria de baixo custo com uma velocidade de acesso oferecida pelo tipo de memria mais rpida

Tempo (%ciclos): s Tamanho(bytes): 100s Custo: mais caro

1s 10Ks

10s Ms

100s Gs

10000s Ts mais barato

O Que Princpio da Localidade?

Localidade Temporal
Programa tende a referenciar as instrues e dados referenciados recentemente
Mantenha itens mais recentemente referenciados junto ao processador Ex: instrues de um loop

Localidade Espacial
Programa tende a referenciar as instrues e dados que tenham endereos prximos das ltimas referncias
Mova blocos de dados de palavras contguas para junto do processador Ex: dados de um array

Aproveitando o Princpio da Localidade

Armazene tudo em disco


Iluso de que a memria muito grande

Copie itens acessados recentemente e itens em endereos prximos do disco para uma memria DRAM que menor
Memria principal

Copie itens acessados mais recentemente e itens em endereos mais prximos da DRAM para uma SRAM menor
Memria cache on-chip Iluso de que a memria muito rpida
Chapter 5 Large and Fast: Exploiting Memory Hierarchy 14

Idia Geral de Hierarquia de Memria

Nveis mais altos de memria so mais rpidas Nveis mais baixos so maiores

Cada nvel mais alto possui um subconjunto de dados/instrues do nvel mais abaixo

Sistema Hierrquico de Memria

Hierarquia de Memria: Terminologias

Bloco (linha) a unidade mnima de informao que pode estar presente ou no em uma cache
Geralmente a unidade que copiada entre um nvel e outro

Bloco copiado entre nveis adjacentes em um determinado instante de tempo

Hierarquia de Memria: Terminologias

Hit (acerto) ocorre quando os dados requisitados pela CPU esto em algum bloco do nvel de memria desejado
Hit time Tempo para acessar dado no nvel desejado Hit rate Hits/acessos

Miss (falta) ocorre quando os dados requisitado pela CPU no esto em algum bloco do nvel de memria desejado
Miss rate Misses/acessos ou (1 hit rate)

Miss penalty o tempo que leva para buscar o bloco de um nvel mais abaixo para o nvel mais acima e envi-lo para a CPU
Tempo de acesso do bloco no nvel mais abaixo + tempo de transmisso do bloco para nvel mais acima + tempo de escrita do bloco no nvel mais acima + tempo de transmisso para a CPU

Exerccio

Quais afirmaes so geralmente verdadeiras?


Caches se aproveitam da localidade temporal. Verdadeiro

Em uma instruo de leitura, o valor retornado depende dos blocos que esto na cache. Falso Maior parte do custo de uma hierarquia de memria da memria de nvel mais alto. Falso Maior parte da capacidade de armazenamento em uma hierarquia de memria vem do nvel mais baixo. Verdadeiro

Cache

Memria SRAM menor que memria principal (DRAM) localizada perto da CPU
Acesso rpido
Tecnologia mais rpida Nvel de memria mais perto da CPU, no utiliza barramento comum aos outros dispositivos

Utiliza-se do princpio da localidade para armazenar dados acessados mais recentemente e de endereos mais prximos

Exemplo de Cache Simples

Suponha cache onde bloco igual a uma palavra Dados os acessos as palavras X1, , Xn1, o acesso a Xn geraria uma falta (miss), depois o elemento seria buscado e colocado na cache

Cache antes do acesso a Xn

Cache depois do acesso a Xn

Acessando Dados da Cache

Pergunta 1: Como saber se um dado est na cache?

Pergunta 2: Se dado estiver, como localizamos ele na cache?

Mapeamento Direto

Forma mais simples de determinar a localizao de um bloco (palavra) na cache pelo endereo do bloco na memria Cache com mapeamento direto faz com que cada bloco da memria seja sempre mapeado para o mesmo bloco da cache

Localizando Blocos com Mapeamento Direto

Localizao do bloco de memria na cache (resposta da pergunta 2):


(endereo do bloco) modulo (#blocos na cache)

Muitos blocos de memria compartilham o mesmo bloco da cache em instantes diferentes

# blocos da cache = 8 Log2 8 = 3


Localizao na cache dado pelos 3 bits menos significativos

Se # blocos da cache, potncia de 2 Usa-se bits menos significativos do endereo da memria do bloco para determinar o nmero do bloco da cache
Log2 #blocos bits menos significativos

Verificando se Bloco Est na Cache

Cache armazena no s os dados de um bloco de memria, mas tambm parte do endereo deste bloco
Tag

Uma tag formada pelos bits mais significativos do endereo do bloco


Todos os bits do endereo do bloco, menos os usados para identificar um bloco da cache

Uso de tags permite saber se bloco de memria est ou no na cache


Resposta para a pergunta 1

Cache ainda armazena um bit de validade (valid bit) para saber se o contedo do bloco ainda valido
Para os casos onde computador iniciado e a cache ainda possuir algum lixo

Endereando a Cache

Composio de um endereo de memria


Tag Endereo do bloco ndice do bloco Endereo de byte dentro do bloco

Exemplo:
Memria: endereo de 32 bits, cada bloco uma palavra, acesso por palavra(32 bits), endereamento por byte Cache: capacidade para armazenar 64 palavras

Tag (24)

ndice(6) Endereo do byte (2)

Mapeando Endereos de Memria na Cache

Exemplo: Mapeando Endereo em Bloco da Cache

64 blocos, 16 bytes/bloco
Endereo 1200 mapeado para que bloco da cache?

Endereo do bloco na memria = 1200/16 = 75 Nmero do bloco da cache = 75 modulo 64 = 11

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 28

Tamanho do Bloco da Cache

Cada bloco de uma cache pode conter mais de uma palavra


Aproveita a localidade espacial

Nesse caso a composio do endereo muda para acessar um byte do endereo


Tag ndice Offset de bloco (qual palavra) Offset de byte

Aumentando o Tamanho do Bloco

Exemplo:
Memria: endereo de 32 bits, acesso por palavra(32 bits), endereamento por byte Cache: capacidade para armazenar 64 blocos de 4 palavras cada

Tag (22)

ndice(6) Offset Endereo de do bloco byte

Processador Intrinsity FastMath Mapeamento Direto Multiword

Exemplo de Utilizao de Cache com Mapeamento Direto

8 blocos, 1 palavra/bloco, mapeamento direto


Estado Inicial
ndice 000 001 010 011 100 101 110 111 V N N N N N N N N Tag Dado

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 32

Exemplo de Utilizao de Cache com Mapeamento Direto


End. decimal End. Binrio Hit/miss Bloco da cache

22

10 110

Miss

110

ndice 000 001 010 011 100 101 110 111

V N N N N N N Y N

Tag

Dado

10

Mem[10110]

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 33

Exemplo de Utilizao de Cache com Mapeamento Direto


End. decimal
26

End. Binrio
11 010

Hit/miss
Miss

Bloco da cache
010

ndice 000 001 010 011 100 101 110 111

V N N Y N N N Y N

Tag

Dado

11

Mem[11010]

10

Mem[10110]

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 34

Exemplo de Utilizao de Cache com Mapeamento Direto


End. decimal End. binrio Hit/miss Bloco da cache

22
26 ndice 000 001 010 011 100 101 110 111 V N N Y N N N Y N

10 110
11 010 Tag Dado

Hit
Hit

110
010

11

Mem[11010]

10

Mem[10110]

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 35

Exemplo de Utilizao de Cache com Mapeamento Direto


End. decimal 16 3 16 ndice 000 001 010 011 100 101 110 111 V Y N Y Y N N Y N 10 Mem[10110] 11 00 Mem[11010] Mem[00011] End. binrio 10 000 00 011 10 000 Tag 10 Dado Mem[10000] Hit/miss Miss Miss Hit Bloco da cache 000 011 000

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 36

Exemplo de Utilizao de Cache com Mapeamento Direto


End. decimal
18

End. binrio
10 010

Hit/miss
Miss

Bloco da Cache
010

ndice 000 001 010 011 100 101 110 111

V Y N Y Y N N Y N

Tag 10 10 00

Dado Mem[10000] Mem[10010] Mem[00011]

Bloco de memria sobrescreve o antigo

10

Mem[10110]

Chapter 5 Large and Fast: Exploiting Memory Hierarchy 37

Faltas (Misses) na Cache

Ocorrendo uma falta na cache


Congela o pipeline Busca bloco na memria Com ajuda de controlador de HW que acessa memria e preenche cache Se o bloco da cache estiver preenchido com outro bloco, a informao sobre-escrita Caso a falta seja referente a uma instruo Reinicia a busca da instruo Caso a falta seja referente a um dado Completa o acesso ao dado

Desempenho penalizado

Tipos de Acesso Cache

Leitura
Simples de implementar

Escrita
Lento e complicado Dado e tag so atualizados na cache Inconsistencia entre memria principal e cache!! se um bloco da cache foi alterado pela CPU, no pode ser descartado da cache sem garantir que foi copiado para a memria principal Como resolver?
Infra-estrutura Hardware

Polticas de Escrita e Consistncia

Caches do tipo Write through


Cache e memria so atualizadas simultaneamente Cache e memria sempre consistentes Penaliza desempenho, CPU deve esperar acesso a memria

Caches do tipo Write back


Memria principal somente atualizada quando bloco substitudo da cache Cache e memria momentaneamente inconsistentes Usa dirty bit para marcar linhas alteradas na cache Reduz quantidade de acessos a memria

Analisando as Diferentes Polticas de Escrita


Write through facilidade de implementao consistncia da memria principal

Write back reduo de acessos memria

Dois mtodos requerem que a CPU espere a escrita Soluo: Write buffers

Bloco escrito no buffer e CPU pode continuar execuo

Vous aimerez peut-être aussi