arquitetura de computadores - dcc.ufrj.brgabriel/arqcomp/hierarquia.pdf · hierarquia de memória....

77
Arquitetura de Computadores Departamento de Ciência da Computação Bacharelado em Ciência da Computação Hierarquia de Memória Gabriel P. Silva

Upload: nguyenphuc

Post on 30-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Arquitetura de Computadores

Departamento de Ciência da ComputaçãoBacharelado em Ciência da Computação

Hierarquia de Memória

Gabriel P. Silva

Page 2: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Ementa

Unidade 3: Hierarquia de Memória 3.1 Registradores 3.2 Memória Cache 3.3 Memória Principal 3.3.1 Organização da Memória Principal (split memory”, “interleaving”) 3.3.2 Operações com a Memória Principal 3.3.3 Capacidade da Memória Principal 3.3.4 Introdução ao Gerenciamento de Memória 3.4 Barramento de Memória * 3.5 Memória Secundária

Page 3: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Introdução

• Os programadores sempre ambicionaram ter quantidades ilimitadas de memória rápida.

• Contudo, as memórias rápidas são de alto custo e, normalmente, de pequena capacidade também.

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

Page 4: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Introdução

• O objetivo é fornecer um sistema de memória com um custo próximo daquele do nível mais baixo da hierarquia, e velocidade próxima daquela do nível mais alto.

• Os níveis de hierarquia mais altos normalmente são um subconjunto dos níveis mais baixos.

• À medida que a informação vai sendo utilizada, ela vai sendo copiada para os níveis mais altos da hierarquia de memória.

Page 5: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

REGISTRADORES

MEMÓRIA CACHE

MEMÓRIA PRINCIPAL

MEMÓRIA SECUNDÁRIA

CUSTO

TEMPO DE ACESSO/CAPACIDADE

+

+

Page 6: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

REG.

CACHE

MEMÓRIAPRINCIPAL

MEMÓRIA SECUNDÁRIA

TB

GB

MB

B

PÁGINAS – S.O

LINHAS - HW

REG.- COMPILADOR

0,3 ns

3 ns

30 ns

3 ms

Tempo de Acesso

Capacidade Movimentação

Page 7: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

Hennessy & Patterson

Page 8: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

Jean-Loup Baer

Page 9: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

• Note que a cada nível que se sobe na hierarquia, endereços de uma memória maior são mapeados para uma memória menor.

• Junto com esse mapeamento está associado a uma função de proteção, evitando que dados de um processo sejam modificados por outro.

• A importância da hierarquia de memória aumentou nos últimos anos devido ao aumento no desempenho dos processadores.

Page 10: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Velocidade dos Processadores x Memórias

Henessy & Patterson

Page 11: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Conceitos de Localidade

• O funcionamento da hierarquia de memória está fundamentado em duas características encontradas nos programas.

• Existe uma grande probabilidade de o processador executar os mesmos trechos de código e utilizar repetidamente dados próximos

• A essa qualidade dos programas denominamos:– Localidade Temporal– Localidade Espacial

Page 12: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Conceitos de Localidade

• Localidade temporal: posições de memória, uma vez referenciadas (lidas ou escritas), tendem a ser referenciadas novamente dentro de um curto espaço de tempo.– Usualmente encontrada em laços de instruções e acessos

a pilhas de dados e variáveis.

• Localidade espacial: se uma posição de memória é referenciada, posições de memória cujos endereços sejam próximos ao da primeira tendem a ser referenciadas logo em sequência. – A informação é manipulada em blocos no sistema de

hierarquia de memória para fazer uso da localidade espacial.

Page 13: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

• No início dos tempos o único nível que possui informação válida é o mais inferior de toda a hierarquia, composto de dispositivos de armazenamento não voláteis, normalmente na memória secundária.

• Na medida em que a informação vai sendo utilizada, ela é copiada para os níveis mais altos da hierarquia.

• Quando fazemos um acesso a um nível da hierarquia e encontramos a informação desejada, dizemos que houve um acerto, em caso contrário dizemos que houve uma falha.

Page 14: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

• Acessos que resultam em acertos nos níveis mais altos da hierarquia podem ser processados mais rapidamente.

• Os acessos que geram falhas, obrigando a buscar a informação nos níveis mais baixos da hierarquia, levam mais tempo para serem atendidos.

• Para um dado nível da hierarquia possa ser considerado eficiente é desejável que o número de acertos seja bem maior do que o número de falhas.

Page 15: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

• Taxa de Acerto h: probabilidade de que uma posição referenciada seja encontrada em determinado nível da hieraquia de memória.

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

h = número acertos / total de acessos

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

Page 16: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Hierarquia de Memória

• O tempo de acesso com acerto é o tempo necessário para buscar a informação em um dado nível de hierarquia, que inclui o tempo necessário para determinar se o acesso à informação vai gerar um acerto ou uma falha.

• A penalidade por falha ou tempo acesso com falha é o tempo necessário para buscar a informação nos níveis inferiores da hierarquia, armazená-la no nível atual e enviá-la para o nível superior.

Page 17: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Tempo Médio de Acesso

• Tempo Médio de Acesso (Tma) é a média ponderada entre o tempo gasto nos acessos com acerto na cache e o tempo gasto no acesso aos dados quando ocorre uma falha. É uma medida da eficência de uma cache ou nível de hierarquia de memória.

Ta = tempo de acesso com acertoTf = tempo de acesso com falhaTma = tempo médio de acesso

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

Se Ta = 10 ns Tf = 80 ns h = 0,85 então Tma = 20,5 ns

Se h = 1 então Tma = Ta

Page 18: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Componentes da Hierarquia

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

– Registradores

– Memória Cache

– Memória Principal

– Memória Secundária

Page 19: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Registradores

• Os registradores estão localizados no núcleo do processador. São caracterizados por um tempo de acesso menor que um ciclo de relógio e sua capacidade é da ordem de centenas de bytes.

• O controle de qual informação deve estar nos registradores é feita explicitamente pelo compilador, que determina quais variáveis serão colocadas no registrador.

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

Page 20: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Cache

Processador

Cache

Memória Principal

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

Page 21: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Funcionamento da Cache

• O processador inicia a busca a instrução ou 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ão o processador aguarda, enquanto a instrução/dados desejados são transferidos da memória principal para a cache e também para o processador.

Page 22: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Funcionamento da Cache

Jean-Loup Baer

Page 23: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Funcionamento da Cache

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

• O objetivo é minimizar a taxa de falhas nos próximos acessos, seguindo o princípio da localidade espacial.

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

Page 24: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Funcionamento da Cache

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

• No momento em que for feita uma leitura de dados ou instrução pelo processador, os endereços armazenados na cache são comparados com o endereço fornecido pelo processador, para saber se houve um acerto ou falha.

• Caso haja acerto, a informação armazenada na memória cache é fornecida para o processador, evitando a ida à memória principal.

Page 25: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Cache

• As células de memória da cache são elaboradas com tecnologia que permite um tempo de acesso menor que o memória principal.

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

• Associado a essas memórias está um controlador, normalmente uma máquina de estados, que faz o controle da transferência dos blocos de/para a memória principal.

Page 26: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Principal

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

• As memórias DRAM tem grande capacidade de armazenamento, mas são mais lentas que as memórias estáticas.

• As memórias DRAM possuem também tempos de acesso distintos para leitura e escrita, e necessitam de uma lógica de restauração (“refresh”), quer embutida ou fora da pastilha, que afetam o tempo médio de acesso.

Page 27: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Secundária

• A memória secundária é o último nível da hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos, de grande capacidade e menor custo por byte armazenado.

• Os programas e arquivos são armazenados integralmente na memória secundária, que são dispositivos de memória não volátil.

Page 28: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual

• O controle de qual informação deve permanecer na memória principal ou na memória secundária é feito pela Memória Virtual.

• A memória virtual é um conjunto de “hardware” e de rotinas do sistema operacional. Além do controle da hierarquia entre a memória principal e a memória secundária, ela realiza a proteção, evitando que um programa modifique informações que pertençam a algum outro.

Page 29: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual

• Finalmente, a memória virtual também faz a translação de endereços virtuais em endereços reais, já que os programas normalmente enxergam um espaço de endereçamento maior que a memória física.

• As translações mais freqüentes ficam armazenadas em uma pequena memória associativa chamada TLB.

• O método mais usual utilizado pela memória virtual é a divisão do espaço de endereçamento em páginas de tamanho fixo, que são a unidade de transferência entre o disco e a memória principal.

Page 30: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual

Jean-Loup Baer

Page 31: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual

Jean-Loup Baer

Page 32: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual

Jean-Loup Baer

Page 33: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Aspectos Operacionais Comuns

• Apesar de muitos aspectos dos componentes da hierarquia de memória diferirem quantitativamente, muitas das políticas e das características são semelhantes em termos quantitativos:

– 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ída quando ocorrer uma falha e não houver espaço?

– O que acontece em uma escrita?

Page 34: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Onde Colocar um Bloco?

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

• Consideramos que a capacidade da memória cache será sempre dada em múltiplo inteiro de linhas.

• Existem três mapeamentos possíveis:

– Mapeamento Totalmente Associativo– Mapeamento Direto– Mapeamento Associativo por Conjunto

Page 35: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

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-se os bits menos significativos do endereço do bloco para definir qual 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 36: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Onde Colocar um Bloco?

Page 37: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

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 a capacidade

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ária quando a

cache está totalmente cheia;– O endereço do bloco deve ser totalmente armazenado

junto com a linha;

Page 38: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Totalmente Associativa

● Processador endereça até 4 Gbytes de memória. ● Eu tenho uma memória cache totalmente associativa,

com 4 Kbytes de capacidade.● Cada bloco de memória tem 128 bytes de

comprimento.● Quantas linhas possui a cache? ● Quantos bits são utilizados para endereçar os bytes

em uma linha?● Qual o tamanho em bits do rótulo do endereço

associado a cada linha na memória cache?

Page 39: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Totalmente Associativa

● 4 Gbytes = 2**32 ==> 32 bits . ● 4 Kbytes = 2**12 ==> 12 bits.● 128 bytes ==> 2**7 ==> 7 bits.● Total de linhas na cache: 4 Kbytes / 128 = 32 linhas● Total de bits para endereçar os bytes em uma linha

são 7 bits.● Rótulo = 32 – 7 = 25 bits.

25 bits 128 bytes

Rótulo Linha da Cache

V

Page 40: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Onde Colocar um Bloco?

• Mapeamento Direto– Cada bloco só pode ocupar uma determinada linha na

cache, definida pelo seu índice, que são os bits mais baixos do endereço de memória do bloco;

– Existem tantos conjuntos quantos forem as linhas da cache;

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

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

– Pode ocorrer que dois blocos freqüentemente referenciados estejam mapeados na mesma linha da cache, o que diminui a taxa de acerto;

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

Page 41: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Mapeamento Direto

Hennessy & Patterson

Page 42: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Mapeamento Direto

Hennessy & Patterson

Page 43: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Mapeamento Direto

● Processador endereça até 4 Gbytes . ● Memória cache com mapeamento direto, com 64

Kbytes de capacidade.● Cada bloco da memória principal tem 64 bytes de

comprimento.● Quantas linhas possui a cache? ● Quantos bits são utilizados para endereçar os bytes

em uma linha?● Quantos bits do endereço são usados para indexar a

memória cache?● Qual o tamanho em bits do rótulo do endereço

associado a cada linha na memória cache?

Page 44: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Mapeamento Direto● 4 Gbytes = 2**32 ==> 32 bits.● 64 Kbytes = 2**16 ==> 16 bits.● 64 bytes = 2**6 ==> 6 bits.● Total de blocos na cache: 64 Kbytes / 64 = 1024

blocos● Total de bits para endereçar os bytes em uma linha

são 6 bits.● Total de bits para indexar cache: 1024 = 2**10 ==>

10 bits● Rótulo = 32 – 10 – 6 = 16 bits

16 bits 64 bytes

Rótulo Linha da Cache

V

Page 45: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

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 46: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Mapeamento Associativo por Conjunto

Hennessy & Patterson

Page 47: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Mapeamento Associativo por Conjunto

● Processador endereça até 4 Gbytes de memória. ● Memória cache associativa por conjunto com 4 vias,

com 64 Kbytes de capacidade.● Cada bloco de memória tem 32 bytes de

comprimento.● Quantas linhas e conjuntos possui a cache? ● Quantos bits são utilizados para endereçar os bytes

em uma linha?● Quantos bits do endereço são usados para indexar a

memória cache?● Qual o tamanho em bits do rótulo do endereço

associado a cada linha na memória cache?

Page 48: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Mapeamento Associativo por Conjunto

● 4 Gbytes = 2**32 ==> 32 bits. ● 64 Kbytes = 2**16 ==> 16 bits.● 32 bytes ==> 2**5 ==> 5 bits.● Associatividade = 4.● Total de linhas = 64 Kbytes /32 = 2048 ● Total de bits para endereçar os bytes em uma linha são 5

bits.● Total de conjuntos = 2048 / 4 = 512 conjuntos● Total de bits para indexar ==> 512 = 2**9 ==> 9 bits● Rótulo = 32 – 9 – 5 = 18 bits

18 bits 64 bytes

Rótulo Linha da Cache

V

Page 49: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Mapeamento Associativo por Conjunto

1

0

23

510

511

V

VVV

V

V

V

V

Rótulo Rótulo Linha da CacheLinha da Cache

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

.

.

V

VVV

V

V

V

V

Rótulo Linha da Cache

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

V

VVV

V

V

V

V

Rótulo Linha da Cache

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

V

VVV

V

V

V

V

Rótulo Linha da Cache

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

18 bits18 bits 64 bytes64 bytes

Page 50: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Onde Colocar um Bloco?

• A vantagem de se aumentar o grau de associatividade é a consequente queda na taxa 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 da memória cache.

• As desvantagens de se aumentar a associatividade são um ligeiro aumento no custo e no tempo de acesso.

Page 51: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Qual o Tamanho um Bloco?

• Tamanhos de bloco/páginas maiores tendem a fazer uso melhor da localidade espacial, aumentando a taxa de acerto.

• Contudo, o uso de bloco maiores nas memórias caches tende a aumentar a penalidade por falha.

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

• Uso de páginas maiores tende a diminuir o tamanho da tabela de páginas, melhorando a penalidade por falha das TLBs.

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

Page 52: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Como Encontrar um Bloco?

• A forma de localização de um bloco depende do esquema de mapeamento utilizado.

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

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

• No caso das memórias totalmente associativas, é necessário que todas as posições da memória cache sejam comparadas.

• Normalmente essas comparações são realizadas em paralelo por vários circuitos.

Page 53: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Como Encontrar um Bloco?

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

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

• Caso a página não esteja carregada na memória, a posição correspondente na memória principal é marcada como inválida.

Page 54: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Como Encontrar um Bloco?

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

• Para solucionar este problema, utiliza-se uma pequena memória associativa (TLB), localizada junto ao processador, que guarda as translações realizadas mais freqüentemente.

• Uma vez feito o primeiro acesso, a translação é armazenada e todos os demais acessos a essa página podem ser feitos sem atrasos adicionais relativos à translação.

Page 55: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Esquema de Memória Virtual Paginada

Esta operação resulta em uma troca de processo

Page 56: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Memória Virtual Paginada

Hennessy & Patterson

Page 57: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Qual Bloco deve ser Substituído?

• Em uma cache de mapeamento direto há apenas 1 bloco por conjunto. Quando ocorre uma falha é este o bloco que vai ser substituído.

• Nas caches associativas, caso todas as posições do conjunto estejam ocupadas, é necessário escolher quais dos blocos do conjunto vai ser substituído, segundo uma das políticas:– Aleatória– LRU– FIFO

Page 58: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

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, mas gera problemas de desempenho em esquemas totalmente 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 taxa de acerto quando o bloco mais antigo ainda estiver sendo muito utilizado.

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

há mais tempo. É o esquema de melhor desempenho, mas cuja implementação é a mais complexa.

Page 59: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Qual Página deve ser Substituída?

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

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

• Nos modernos sistemas operacionais, para cada processo, 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) ou global (todas as páginas de todos os processos na memória são analisadas).

Page 60: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

O que Acontece na Escrita?

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

– Write-through (Cache)• Escreve-se o dado no nível da hierarquia atual e 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ágina for substituído, ele é atualizado no nível inferior.

Page 61: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

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 da hierarquia, apenas a palavra sendo atualizada.

– Essa técnica é mais simples de se implementar.

– Quando existe mais de uma cache no mesmo barramento, permite a implementação fácil de técnicas de “snooping” para a manutenção da coerência entre as caches.

Page 62: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Write-back

– As palavras podem ser escritas na velocidade da cache, ao invés da memória principal;

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

– Uso de transferências em rajada para atualização do bloco no nível de hierarquia inferior;

– Quando houver mais de uma cache no barramento, há a necessidade de se adotar protocolos mais complexos para a manutenção da coerência das caches.

Page 63: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Write-back

– Esses protocolos visam forçar a colocação no barramento de informações sobre operações de escrita sempre que necessário, pois a memória principal nem sempre possui uma cópia válida do bloco que está sendo solicitado.

– Esses protocolos definem a responsabilidade sobre quem deve fornecer um bloco de dados quando uma operação de leitura com falhas ocorre.

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

Page 64: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

O que Acontece na Escrita?

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

• O bloco onde vai ser feita a operação de escrita é 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 a memória

cache e, portanto, a operação de escrita sempre se realiza apenas na memória principal.

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

Page 65: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Os Três Cs

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

• Falhas devido à Capacidade: São faltas que ocorrem porque a cache não pode armazenar todos os blocos necessários à execução de um programa.

• Falhas por Conflitos ou Colisão: São faltas que ocorrem no acesso à cache quando diversos blocos competem pelo mesmo conjunto. Não ocorrem em caches totalmente associativas.

Page 66: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Os Três Cs

Tamanho da Cache (KB)

Ta

xa

de

Fa

lha

%

0

2

4

6

8

10

12

14

1 2 4 8 16 32 64 128

1-way

2-way

4-way

8-way

Capacidade

Compulsória

Conflito

Page 67: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Virtual

• Endereços virtuais dos blocos de memória são armazenados na cache.

• A leitura do bloco na cache pode ser feita em paralelo com a conversão do endereço virtual em físico pela gerência de memória.

• Existe a possibilidade de ocorrência de “aliasing”: dois ou mais endereços virtuais idênticos gerados por processos diferentes, que se referem a endereços físicos distintos precisa ser realizado um flush a cada troca de processo.

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

Page 68: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Físico

• Os endereços físicos dos blocos de memó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 em ambientes com múltiplos processadores.

Page 69: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Caches de Dados e Instruções

Memória Principal

Cache de Instruções

Cache de Dados

Unidade de Buscade Instruções

Unidade de Acessoà Memória

Instruções Dados

PROCESSADOR

Page 70: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Caches de Dados e Instruções

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

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

dados;– caminhos separados entre memória principal e cada

cache, permitindo transferências simultâneas (p.ex. quando o processador possui um pipeline);

– Estratégias diferentes para cada cache: tamanho total, tamanho de linha, organização.

• Caches separadas são usadas, p.ex., no Pentium e no 68040.

Page 71: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Processador

Cache Multinível

Memória Principal

Cache de Instruções

Cache de Dados

CACHENÍVEL 1

Cache UnificadaCACHE

NÍVEL 2

Page 72: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Multinível

Processador

Cache Nivel 3

Cache de Instruções

Cache de Dados

CACHE

NÍVEL 1

Nivel 2 CACHE

NÍVEL 2

Processador

Cache de Instruções

Cache de Dados

CACHE

NÍVEL 1

Nivel 2CACHE

NÍVEL 2

Memória

Page 73: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Tempo Médio de Acesso

TrThThrT ffama )1())1((

Cache de um nível com write-through

Onde r é igual ao percentual de leituras

Page 74: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Tempo Médio de AcessoCache Multinível

))(()(2222111

11 ThhThhTTmisshithit

ma

ThhTT ma

hit

ma 2111)(1

ThhTTmisshit

ma 22222)(1

Cache de dois níveis unificada write-back

Page 75: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Cache Multinível

• Manter a cache de nível 1 pequena e muito rá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 1 separada para dados e instruções e a cache de nível 2 unificada.

))(()(2222111

11 ThhThhTTmisshithit

ma

Page 76: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Comparação de Caches

PROCESSADOR TAMANHO DA CACHE

Intel CELERON L1 – (12 K µop+ 16KB) (int.)L2 – 256 KB (int.)

Intel PENTIUM III L1 – (16 KB+ 16KB)L2 – 256 KB (int.) ou 512 KB (ext.)

Intel PENTIUM IV HT L1 – (12 K µop + 8KB) (int.) L2 – 512 KB (int.)

AMD DURON

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

AMD ATHLON L1 – (64 KB + 64 KB) (int.)L2 – 512 KB (int.) (excl.)

Page 77: Arquitetura de Computadores - dcc.ufrj.brgabriel/arqcomp/Hierarquia.pdf · hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos,

Comparação entre os Diversos Níveis

TLB Cache L1 Cache L2 Mem. Virtual

Tam. Bloco (bytes)

4 – 8 4 – 32 32 – 256 4K – 16K

Tempo de Hit (Ciclos)

1 1—2 6 – 15 10 –100

Penalidade Miss (Ciclos)

10 – 30 8 – 66 30 – 200 700K – 6M

Tamanho (bytes)

32 – 8K 1 – 128 K 256K – 16M 16M – 64G

Colocação dos Blocos

Tot. Assoc./ Assoc. Conj.

Direto Direto/

Assoc. Conj.

Totalmente Assoc.

Subst. Blocos Aleatória - Aleatória LRU

Pol. Escrita Flush WT ou WB WT ou WB WB