61
  Microarquiteturas de Alto Desempenho Microarquiteturas de Alto Desempenho DCC-IM/NCE UFRJ Pós-Graduação em Informática Hierarquia de Memória Gabriel P. Silva

Hierarquia de memória

Embed Size (px)

Citation preview

Page 1: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 1/61

 

 

Microarquiteturas de Alto Desempenho

Microarquiteturas de AltoDesempenho

DCC-IM/NCE UFRJPós-Graduação em Informática

Hierarquia de Memória

Gabriel P. Silva

Page 2: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 2/61

 

 

Microarquiteturas de Alto Desempenho

Introdução

• Os programadores sempre ambicionaramter quantidades ilimitadas de memóriarápida.

• Contudo, as memórias rápidas são de altocusto e, normalmente, de pequenacapacidade também.

• Uma solução é a organização do sistema dememória em uma hierarquia, com diversosníveis, onde memórias cada vez maisrápidas, menores e com um custo por bytemaior, são colocadas nos níveis mais altos.

Page 3: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 3/61

 

 

Microarquiteturas de Alto Desempenho

Introdução

• O objetivo é fornecer um sistema dememória com um custo próximo daqueledo nível mais baixo da hierarquia, evelocidade próxima daquela do nível mais

alto.• Os níveis de hierarquia mais altos

normalmente são um subconjunto dosníveis mais baixos.

• À medida que a informação vai sendoutilizada, ela vai sendo copiada para osníveis mais altos da hierarquia dememória.

Page 4: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 4/61

 

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

REGISTRADORES

MEMÓRIACACHE

MEMÓRIAPRINCIPAL

MEMÓRIASECUNDÁRIA

CUSTO

TEMPO DE ACESSO/CAPACIDADE

+

+

Page 5: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 5/61

 

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

REG.

CACHE

MEMÓRIAPRINCIPAL

MEMÓRIASECUNDÁRIA

GB

MB

KB

B

PÁGINAS – S.O

LINHAS - HW

REG.- COMPILADOR 

0,3 ns

3 ns

30 ns

3 ms

Page 6: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 6/61

 

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

• Note que a cada nível que se sobe nahierarquia, endereços de uma memóriamaior são mapeados para uma memóriamenor.

• Junto com esse mapeamento estáassociadoa uma função de proteção,evitando que dados de um usuário sejammodificados por outro.

• A importância da hierarquia de memóriaaumentou nos últimos anos devido aoaumento no desempenho dosprocessadores.

Page 7: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 7/61 

Microarquiteturas de Alto Desempenho

Velocidade dos Processadores xMemórias

0

20

40

60

80

100

120

140

1985 1990 2000 2005

Processadores

Memórias

 

Page 8: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 8/61 

Microarquiteturas de Alto Desempenho

Conceitos de Localidade

• O funcionamento da hierarquia de memóriaestá fundamentado em duas característicasencontradas nos programas.

• Existe uma grande probabilidade de oprocessador executar os mesmos trechos decódigo e utilizar repetidamente dadospróximos

• A essa qualidade dos programas

denominamos:– Localidade Temporal– Localidade Espacial

 

Page 9: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 9/61

 

Microarquiteturas de Alto Desempenho

Conceitos de Localidade

• Localidade temporal: posições de memória,uma vez referenciadas (lidas ou escritas) ,tendem a ser referenciadas novamentedentro de um curto espaço de tempo.

– Usualmente encontrada em laços de instruções eacessos a pilhas de dados e variáveis• Localidade espacial: se uma posição de

memória é referenciada, posições dememória cujos endereços sejam próximos da

primeira tendem a ser logo referenciados. – A informação é manipulada em blocos no sistema dehierarquia de memória para fazer uso da localidadeespacial.

 

Page 10: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 10/61

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

• No início dos tempos o único nível quepossui informação válida é o mais inferiorde toda a hierarquia, composto dedispositivos de armazenamento não

voláteis.• Na medida em que a informação vai sendoutilizada, ela é copiada para os níveis maisaltos da hierarquia.

• Quando fazemos um acesso a um nível dahierarquia e encontramos a informaçãodesejada, dizemos que houve um acerto,em caso contrário dizemos que houve uma

falha. 

Page 11: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 11/61

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

• Acessos que resultam em acertos nosníveis mais altos da hierarquia podem serprocessados mais rapidamente.

• Os acessos que geram falhas, obrigando a

buscar a informação nos níveis mais baixosda hierarquia, levam mais tempo paraserem atendidos.

•Para um dado nível da hierarquia possa

ser considerado eficiente é desejável que onúmero de acertos seja bem maior do que onúmero de falhas.

 

Page 12: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 12/61

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

• Define-se como taxa de acertos (h) arelação entre o número de acertos e onúmero total de acessos para um dado nívelda hierarquia de memória.

h = número acertos / total de acessos

• O total de acessos inclui tanto os acessosde leitura como os de escrita.

 

Page 13: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 13/61

 

Microarquiteturas de Alto Desempenho

Hierarquia de Memória

•O tempo de acesso com acerto é o temponecessário para buscar a informação em umdado nível de hierarquia, que inclui o temponecessário para determinar se o acesso à

informação vai gerar um acerto ou umafalha.

• A penalidade por falha ou tempo acessocom falha é o tempo necessário para buscar

a informação nos níveis inferiores dahierarquia, armazená-la no nível atual eenviá-la para o nível superior.

 

Page 14: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 14/61

 

Microarquiteturas de Alto Desempenho

Taxa de Acerto

• Taxa de Acerto  h: probabilidade de que umaposição referenciada seja encontrada em dado nívelda hieraquia de memória.

Ta = tempo de acesso com acerto

Tf = tempo de acesso com falhaTma = tempo médio de acesso

Tma = h*Ta +(1 – h)*Tf 

Se Ta = 10 ns

Tf = 80 nsh = 0,85 então Tma = 20,5 ns

Se h = 1 então Tma = Ta

 

Page 15: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 15/61

 

Microarquiteturas de Alto Desempenho

Componentes da Hierarquia

• Os elementos mais importantes da umahierarquia de memória são:

– Registradores– Memória Cache

– Memória Principal

– Memória Secundária

 

Page 16: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 16/61

 

Microarquiteturas de Alto Desempenho

Registradores

• Os registradores estão localizados nonúcleo do processador. São caracterizadospor um tempo de acesso menor que umciclo de relógio e sua capacidade é da

ordem de centenas de bytes.• O controle de qual informação deve estarnos registradores é feita explicitamentepelo compilador, que determina quaisvariáveis serão colocadas no registrador.

• É o único nível da hierarquia que permitemovimentações iguais apenas ao tamanhoda informação desejada.

 

Page 17: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 17/61

 

Microarquiteturas de Alto Desempenho

Memória Cache

Processador 

Cache

Memória Principal

Memória Cache: Elemento de memória intermediárioentre o Processador e a Memória Principal

 

Page 18: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 18/61

 

Microarquiteturas de Alto Desempenho

Funcionamento da Cache

• O processador inicia a busca a instruçãoou dados na memória cache.

• Se os dados ou a instrução estiverem na

cache (denomina-se acerto), a informaçãoé transferida para o processador.• Se os dados ou a instrução não estiverem

na memória cache (chama-se falha), entãoo processador aguarda, enquanto ainstrução/dados desejados sãotransferidos da memória principal para acache e também para o processador.

 

Page 19: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 19/61

 

Microarquiteturas de Alto Desempenho

Funcionamento da Cache

• Durante a busca da palavra que estáfaltando na cache, é trazido um bloco (oulinha) inteiro da memória principal, aoinvés de apenas uma palavra.

• O objetivo é minimizar a taxa de falhasnos próximos acessos, seguindo oprincípio da localidade espacial.

• O tamanho de um bloco é um parâmetrode projeto na memórias caches, tamanhosusuais são 32, 64 e 128 bytes.

 

Page 20: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 20/61

 

Microarquiteturas de Alto Desempenho

Funcionamento da Cache

• É necessário guardar o endereço do bloco,ou parte dele, para permitir a identificaçãodos blocos que estão armazenados nacache.

• No momento em que for feita uma leiturade dados ou instrução pelo processador,os endereços armazenados na cache sãocomparados com o endereço fornecidopelo processador, para saber se houve um

acerto ou falha.• Caso haja acerto, a informaçãoarmazenada na memória cache é fornecidapara o processador, evitando a ida àmemória principal.

 

Page 21: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 21/61

 

Microarquiteturas de Alto Desempenho

Memória Cache

• As células de memória da cache sãoelaboradas com tecnologia que permiteum tempo de acesso menor que o memóriaprincipal.

• Normalmente são células de memóriaestática (SRAM), com menor capacidade,porém maior custo e maior velocidade.

• Associado a essas memórias está umcontrolador, normalmente uma máquina deestados, que faz o controle datransferência dos blocos de/para amemória principal.

 

Page 22: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 22/61

 

Microarquiteturas de Alto Desempenho

Memória Principal

• A memória principal é constituída porcélulas de memória dinâmica (DRAM).

• As memórias DRAM tem grandecapacidade de armazenamento, mas sãomais lentas que as memórias estáticas.

• As memórias DRAM possuem tambémtempos de acesso distintos para leitura eescrita, e necessitam de uma lógica de

restauração (“refresh”), quer embutida oufora da pastilha, que afetam o tempomédio de acesso.

 

Page 23: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 23/61

 

Microarquiteturas de Alto Desempenho

Memória Secundária

• A memória secundária é o último nível dahierarquia de memória. É composta pelosdispositivos de armazenamento de massa,normalmente discos rígidos, de grande

capacidade e menor custo por bytearmazenado.

• Os programas e arquivos sãoarmazenados integralmente na memória

secundária, que são dispositivos dememória não volátil.

 

Page 24: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 24/61

 

Microarquiteturas de Alto Desempenho

Memória Virtual

• O controle de qual informação devepermanecer na memória principal ou namemória secundária é feito pela MemóriaVirtual.

• A memória virtual é um conjunto de“hardware” e de rotinas do sistemaoperacional. Além do controle dahierarquia entre a memória principal e amemória secundária, ela realiza a

proteção, evitando que um programamodifique informações que pertençam aalgum outro.

 

Page 25: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 25/61

 

Microarquiteturas de Alto Desempenho

Memória Virtual

• Finalmente, a memória virtual também faza translação de endereços virtuais emendereços reais, já que os programasnormalmente enxergam um espaço de

endereçamento maior que a memóriafísica.• As translações mais freqüentes ficam

armazenadas em uma pequena memóriaassociativa chamada TLB.

• O método mais usual utilizado pelamemória virtual é a divisão do espaço deendereçamento em páginas de tamanhofixo, que são a unidade de transferênciaentre o disco e a memória principal.

 

Page 26: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 26/61

 

Microarquiteturas de Alto Desempenho

Aspectos Operacionais Comuns

• Apesar de muitos aspectos doscomponentes da hierarquia de memóriadiferirem quantitativamente, muitas daspolíticas e das características são

semelhantes em termos qualitativos:– Onde se colocar uma linha ou página?

– Qual o tamanho de uma linha ou página?

– Como encontrar uma linha ou página?

– Qual das linhas/páginas deve ser substituídaquando ocorrer uma falha e não houver espaço?

– O que acontece em uma escrita?

 

Page 27: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 27/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• Esta questão afeta apenas a memória cache, já queo método utilizado pela memória virtual é omapeamento totalmente associativo.

• Ou seja, no caso da memória virtual uma página doprograma pode ser colocada em qualquer posição

da memória física.• Em nosso estudos, consideramos que a capacidade

da memória cache será sempre dada em múltiplointeiro de linhas / blocos.

• Existem três maneira possíveis de tratar este

problema, chamadas de mapeamentos:– Mapeamento Totalmente Associativo– Mapeamento Direto– Mapeamento Associativo por Conjunto

 

Page 28: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 28/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• Mapeamento completamente associativo –  Um bloco da memória principal pode ser armazenado em

qualquer linha da memória cache.

Mapeamento direto –  Cada bloco da memória principal só pode ser mapeado em

uma única linha da memória cache. Normalmente utilizam-seos bits menos significativos do endereço do bloco para definirqual será esta linha.

• Mapeamento associativo por conjunto –  Cada bloco da memória principal pode ser armazenado apenas

em um determinado conjunto de linhas da cache.

 

Page 29: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 29/61

 

Microarquiteturas de Alto Desempenho

Mapeamento

Direto

Hennessy & Patterson 

Page 30: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 30/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• Mapeamento Totalmente Associativo– Todos os blocos da memória principal podem ser

armazenados em qualquer linha na cache;– Existe 1 único conjunto na memória cache;

– O número de linhas por conjunto é igual acapacidade total de linhas da cache.

• Características– Demorado para descobrir se um bloco reside ou

não na cache;

– A substituição de uma linha só é necessáriaquando a cache está totalmente cheia;

– O endereço do bloco deve ser totalmentearmazenado junto com a linha;

 

Page 31: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 31/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• Mapeamento Direto– Cada bloco só pode ocupar uma determinada linha nacache, definida pelo seu índice, que são os bits maisbaixos do endereço de memória do bloco;

– Existem tantos conjuntos quantos forem as linhas dacache;

– Existe apenas 1 linha em cada conjunto.• Características

– Rápido para descobrir se um bloco está presente nacache;

– Pode ocorrer que dois blocos freqüentementereferenciados estejam mapeados na mesma linha dacache;

– Apenas parte do endereço precisa ser armazenadaprecisa ser armazenada junto com o bloco na cache.

 

Page 32: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 32/61

 

Microarquiteturas de Alto Desempenho

Mapeamento Direto

Hennessy & Patterson 

Page 33: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 33/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• Mapeamento Associativo por Conjunto– Cada bloco pode ser armazenado em um

determinado conjunto de linhas da cache.– O número de linhas que existem em cada

conjunto é definido como a associatividade(normalmente de 2 a 8) da cache.

– O número de conjuntos é dado pela fórmula:• Número de linhas na cache / associatividade

• Características– Reduz as chances de conflito.– É rápido para descobrir se um bloco está

armazenado na cache.

 

Page 34: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 34/61

 

Microarquiteturas de Alto Desempenho

Onde Colocar um Bloco?

• A vantagem de se aumentar o grau deassociatividade é a conseqüente queda nataxa de falhas.

• Isso se deve a uma menor competição

pela mesma posição na memória cache.• Essa melhora é tão mais significativa

quanto menor for a capacidade damemória cache.

• As desvantagens de se aumentar aassociatividade são um ligeiro aumento nocusto e no tempo de acesso.

 

Page 35: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 35/61

 

Microarquiteturas de Alto Desempenho

Qual o Tamanho um Bloco?

• Tamanhos de bloco/páginas maiorestendem a fazer uso melhor da localidadeespacial, aumentando a taxa de acerto.

• Contudo, o uso de bloco maiores nasmemórias caches tende a aumentar apenalidade por falha.

• Tamanhos típicos de blocos situam-seentre 16 e 128 bytes.

• Uso de páginas maiores tende a diminuir o

tamanho da tabela de páginas,melhorando a penalidade por falha dasTLBs.

• Tamanhos típicos de páginas situam-seentre 1K a 16 Kbytes.

 

Page 36: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 36/61

 

Microarquiteturas de Alto Desempenho

Como Encontrar um Bloco?

• A forma de localização de um blocodepende do esquema de mapeamentoutilizado.

• No caso do mapeamento direto énecesário apenas uma comparação.

• No caso do mapeamento associativo, sãonecessárias tantas comparações quantoforem os blocos/linhas em cada conjunto.

• No caso das memórias totalmente

associativas, é necessário que todas asposições da memória cache sejamcomparadas.

• Normalmente essas comparações sãorealizadas em paralelo por várioscircuitos.

 

Page 37: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 37/61

 

Microarquiteturas de Alto Desempenho

Como Encontrar um Bloco?

• Nos sistemas de memória virtual,mantém-se uma tabela de mapeamento,chamada de tabela de páginas, paraindexar a memória principal.

• Esta tabela contém todas as translaçõesde endereços virtuais para endereçosfísicos de todas as páginas em uso.

• Caso a página não esteja carregada na

memória, a posição correspondente namemória principal é marcada comoinválida.

 

Page 38: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 38/61

 

Microarquiteturas de Alto Desempenho

Como Encontrar um Bloco?

• Para cada acesso seria necessário umacesso extra à memória para consulta àtabela de páginas.

• Para solucionar este problema, utiliza-seuma pequena memória totalmenteassociativa (TLB), localizada junto aoprocessador, que guarda as translaçõesrealizadas mais freqüentemente.

• Uma vez feito o primeiro acesso, a

translação é armazenada e todos osdemais acessos a essa página podem serfeitos sem atrasos adicionais relativos àtranslação.

 

Page 39: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 39/61

 

Microarquiteturas de Alto Desempenho

Esquema de Memória VirtualPaginada

Endereço Virtual

Endereço daPágina está no

TLB ?

Busca Endereço na Tabela dePáginas na Memória

A página estápresente namemória?

Busca Página no Disco

Atualiza a Tabela dePáginas

Atualiza a TLB

Faz Acesso à Memória

SIM

NÂO

SIM

NÃO

Page Miss

Page Fault

Forma o Endereço Real

 

Page 40: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 40/61

 

Microarquiteturas de Alto Desempenho

Qual Bloco deve ser Substituído?

• Em uma cache de mapeamento direto háapenas 1 bloco por conjunto. Quandoocorre uma falha é este o bloco que vai sersubstituído.

• Nas caches associativas, caso todas asposições do conjunto estejam ocupadas, énecessário escolher qual dos blocos doconjunto vai ser substituído, segundo umadas políticas:– Aleatória– LRU– FIFO

 

Page 41: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 41/61

 

Microarquiteturas de Alto Desempenho

Algoritmos de Substituição

Algoritmo de Substituição Aleatório (randômico)– Um bloco é escolhido aleatoriamente para ser

substituído. É uma política de fácil implementação, masgera problemas de desempenho em esquemastotalmente associativos.

Substituição por Fila FIFO (first-in first-out)– O bloco que está há mais tempo na cache é removido.Menos simples de implementar e pode diminuir a taxade acerto quando o bloco mais antigo ainda estiversendo muito utilizado.

Substituição LRU (Least Recently Used)– O bloco a ser substituído é aquele que não é

referenciado há mais tempo. É o esquema de melhordesempenho, mas cuja implementação é a maiscomplexa.

 

Page 42: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 42/61

 

Microarquiteturas de Alto Desempenho

Qual Página deve serSubstituída?

• No sistema de memória virtual, utilizam-se osmesmos algoritmos para decidir qual a página quedeve ser removida da memória.

• Um bit de modificado na tabela de páginas indica sea página removida deve ser atualizada em disco.

• Nos modernos sistemas operacionais, para cadaprocesso, apenas um subconjunto de suas páginas émantido em memória. Ele é denominado de“conjunto de trabalho”.

• O universo das páginas candidatas à substituição

pode ser local (do mesmo conjunto de trabalho) ouglobal (todas as páginas de todos os processos namemória são analisadas).

 

Page 43: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 43/61

 

Microarquiteturas de Alto Desempenho

O que Acontece na Escrita?

• Ao ser escrever em um bloco, temos duaspolíticas básicas em caso de acerto:

– Write-through (Cache)

• Escreve-se o dado no nível da hierarquia atuale no inferior

– Write-back (Memória Virtual e Cache)• Escreve-se o dado apenas no nível de

hierarquia atual e, quando o bloco ou páginafor substituído, ele é atualizado no nívelinferior.

 

Page 44: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 44/61

 

Microarquiteturas de Alto Desempenho

Write-through

– As falhas são mais simples de tratar,pois nunca há necessidade de escrever-se todo o bloco no nível mais inferior dahierarquia, apenas a palavra sendo

atualizada.– Essa técnica é mais simples de seimplementar.

– Quando existe mais de uma cache no

mesmo barramento, permite aimplementação fácil de técnicas de“snooping” para a manutenção dacoerência entre as caches.

 

Page 45: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 45/61

 

Microarquiteturas de Alto Desempenho

Write-back

– As palavras podem ser escritas navelocidade da cache, ao invés damemória principal;

– Várias escritas para o mesmo bloco sãoatualizadas em uma única operação nonível mais inferior da hierarquia;

– Uso de transferências em rajada paraatualização do bloco no nível dehierarquia inferior;

– Quando houver mais de uma cache nobarramento, há a necessidade de seadotar protocolos mais complexos paraa manutenção da coerência das caches.

 

Page 46: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 46/61

 

Microarquiteturas de Alto Desempenho

Write-back

– Esses protocolos visam forçar acolocação no barramento deinformações sobre operações de escritasempre que necessário, pois a memóriaprincipal nem sempre possui uma cópia

válida do bloco que está sendosolicitado.– Esses protocolos definem a

responsabilidade sobre quem devefornecer um bloco de dados quando umaoperação de leitura com falhas ocorre.

– No caso de memória virtual, o algoritmoutilizado para atualização das páginasem disco é sempre o “write-back”.

 

Page 47: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 47/61

 

Microarquiteturas de Alto Desempenho

O que Acontece na Escrita?

• Se houver uma falha, duas estratégias sãopossíveis de se utilizadas:– Write Allocate

• O bloco onde vai ser feita a operação deescrita é trazido primeiramente para a

memória cache e a operação de escrita éentão realizada.– No Write Allocate

• O bloco a ser escrito não é trazido para amemória cache e, portanto, a operação deescrita sempre se realiza apenas na memóriaprincipal.

– Usualmente a política write allocate é adotadacom o modo write back e a política no writeallocate com o modo write through.

 

Page 48: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 48/61

 

Microarquiteturas de Alto Desempenho

Cache Virtual

• Endereços virtuais dos blocos de memóriasão armazenados na cache.• A leitura do bloco na cache pode ser feita

em paralelo com a conversão do endereçovirtual em físico pela gerência dememória.

• Existe a possibilidade de ocorrência de“aliasing”: dois ou mais endereços virtuaisidênticos gerados por processos

diferentes, que se referem a endereçosfísicos distintos precisa ser realizadoum flush a cada troca de processo.

• De uso difícil em ambientes com múltiplosprocessadores.

 

Page 49: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 49/61

 

Microarquiteturas de Alto Desempenho

Cache Físico

• Os endereços físicos dos blocos dememória são armazenados na cache.• O tempo de acesso é mais lento porque o

acesso à cache deve ocorrer após a

conversão do endereço virtual em físico.• Mais simples de implementar e usar emambientes com múltiplos processadores.

 

Page 50: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 50/61

 

Microarquiteturas de Alto Desempenho

Caches de Dados e Instruções

Memória Principal

Cache deInstruções

Cache deDados

Unidade de Buscade Instruções

Unidade de Acessoà Memória

Instruções Dados

PROCESSADOR

 

Page 51: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 51/61

 

Microarquiteturas de Alto Desempenho

Caches de Dados e Instruções

• Dados e instruções: cache unificada x cachesseparadas.

• Vantagens das caches separadas:– política de escrita só precisa ser aplicada à cache

de dados;– caminhos separados entre memória principal ecada cache, permitindo transferênciassimultâneas (p.ex. quando o processador possuium pipeline);

– Estratégias diferentes para cada cache: tamanhototal, tamanho de linha, organização.• Caches separadas são usadas, p.ex., no Pentium e

no 68040.

  

Page 52: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 52/61

 

Microarquiteturas de Alto Desempenho

Processador

Cache Multinível

Memória Principal

Cache deInstruções Cache deDados CACHENÍVEL 1

Cache UnificadaCACHE

NÍVEL 2

  

Page 53: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 53/61

 

Microarquiteturas de Alto Desempenho

Processador

Cache Multinível

Cache Unificada

Memória Principal

CACHENÍVEL 1

Cache UnificadaCACHE

NÍVEL 2

  

Page 54: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 54/61

 

Microarquiteturas de Alto Desempenho

Processador

Cache Multicore

Memória Principal

Cache deInstruções Cache deDados CACHENÍVEL 1

Cache UnificadaCACHE

NÍVEL

2

Processador

Cache deInstruções

Cache deDados

Cache Unificada

  

Page 55: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 55/61

 

Microarquiteturas de Alto Desempenho

Processador

Cache Multicore

Memória Principal

Cache deInstruções Cache deDados CACHENÍVEL 1

CACHE

NÍVEL

2

Processador

Cache deInstruções

Cache deDados

Cache Unificada

 

Page 56: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 56/61

 

Microarquiteturas de Alto Desempenho

Cache Multinível

• Manter a cache de nível 1 pequena e muitorápida, acompanhando o relógio da CPU.• Utilizar um cache de nível 2 grande, mas

não tão rápida, mas capaz de reduzir a

penalidade das falhas.

• Normalmente utiliza-se a cache de nível 1separada para dados e instruções e acache de nível 2 unificada.

 )T  )h( +h(T  )h( +hT =T  misshit hit 

m 222211111 ×−××−×

 

Page 57: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 57/61

 

Microarquiteturas de Alto Desempenho

Os Três Cs

• Falhas Compulsórias: São faltas no acessoà cache, causadas pelo primeiro acessoque nunca esteve na cache.

• Falhas devido à Capacidade: São faltas que

ocorrem porque a cache não podearmazenar todos os blocos necessários àexecução de um programa.

• Falhas por Conflitos ou Colisão: São faltas

que ocorrem no acesso à cache quandodiversos blocos competem pelo mesmoconjunto. Não ocorrem em cachestotalmente associativas.

 

Page 58: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 58/61

 

Microarquiteturas de Alto Desempenho

Comparação de Caches

L1 – (64 KB + 64 KB) (int.)

L2 – 512 KB (int.)

AMD ATHLON

L1 – (64 KB + 64 KB) (int.)L2 – 64 KB (int.) (excl.)

AMD DURON 

L1 – (12 K µ op + 8KB) (int.)L2 – 512 KB (int.)

Intel PENTIUM IV HT

L1 – (16 KB + 16KB)

L2 – 256 KB (int.) ou

512 KB (ext.)

Intel PENTIUM III

L1 – (12 K µop + 16KB) (int.)

L2 – 256 KB (int.)

Intel CELERON

TAMANHO DA CACHEPROCESSADOR

 

Page 59: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 59/61

 

Microarquiteturas de Alto Desempenho

Comparação entre os Diversos Níveis

WBWT ou WBWT ou WBFlushPol. Escrita

LRUAleatória-AleatóriaSubst. Blocos

TotalmenteAssoc.Direto/Assoc. Conj.

DiretoTot. Assoc./Assoc. Conj.Colocação dosBlocos

16M – 64G256K – 16M1 – 128 K32 – 8KTamanho

(bytes)

700K – 6M30 – 2008 – 6610 – 30PenalidadeMiss (Ciclos)

10 –1006 – 151—21Tempo de Hit

(Ciclos)

4K – 16K32 – 2564 – 324 – 8Tam. Bloco

(bytes)

Mem.

Virtual

Cache L2Cache L1TLB

 

Page 60: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 60/61

 

Microarquiteturas de Alto Desempenho

Exercícios

• Utilize o simulador “sim-cache”, da versão3.0 do SimpleScalar. Escolha um programainteiro e outro de ponto flutuante da suíteSPEC95. Faça uma variação da

associatividade entre 1 e 8, e calcule a taxade acerto para caches com capacidades de16, 32, 64 e 128 Kbytes. Considere umtamanho de bloco com 16 bytes. Apresenteum gráfico e comentários sobre os dados

obtidos.

 

Page 61: Hierarquia de memória

5/11/2018 Hierarquia de memória - slidepdf.com

http://slidepdf.com/reader/full/hierarquia-de-memoria-55a0c8ef333c3 61/61

Referências

2. “Organização e Projeto de Computadores – AInterface Hardware/Software “ David A. Patterson eJohn L. Henessy, Editora LTC, 2ed.

3. “Cache Memories” Alan Jay Smith, ACM Computing

Surveys, Volume 14 Issue 3, September 1982