Académique Documents
Professionnel Documents
Culture Documents
Componentes de um Computador
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
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
Tecnologias de Memria
Tecnologia Ano Tempo de acesso U$/Gbyte(2004)
2008
0,5 2,5ns
2000 a 5000
2008
20 - 75
Disco
2008
0,5 a 2
Programador deseja ter memria maior e mais veloz Existem vrios tipos de memria construdos com tecnologia diferente
SRAM, DRAM, Magntico, etc
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
1s 10Ks
10s Ms
100s Gs
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
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
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
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
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
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
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
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
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
Cache armazena no s os dados de um bloco de memria, mas tambm parte do endereo deste bloco
Tag
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
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)
64 blocos, 16 bytes/bloco
Endereo 1200 mapeado para que bloco da cache?
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)
22
10 110
Miss
110
V N N N N N N Y N
Tag
Dado
10
Mem[10110]
End. Binrio
11 010
Hit/miss
Miss
Bloco da cache
010
V N N Y N N N Y N
Tag
Dado
11
Mem[11010]
10
Mem[10110]
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]
End. binrio
10 010
Hit/miss
Miss
Bloco da Cache
010
V Y N Y Y N N Y N
Tag 10 10 00
10
Mem[10110]
Desempenho penalizado
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
Dois mtodos requerem que a CPU espere a escrita Soluo: Write buffers