Anda di halaman 1dari 147

Arquitetura de Computadores

A Hierarquia de Memórias

Prof. Denis Franco

denisfranco@furg.br

Maio 2013

Universidade Federal do Rio Grande


Centro de Ciências Computacionais
Programa de Pós-Graduação em Computação
Mestrado em Engenharia de Computação

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 1 / 47


Outline

1 A Hierarquia de memórias
Introdução
Princı́pio de funcionamento

2 Memórias cache
O desempenho da cache

3 Memória virtual

4 Arquiteturas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 2 / 47


A Hierarquia de memórias

Outline

1 A Hierarquia de memórias
Introdução
Princı́pio de funcionamento

2 Memórias cache
O desempenho da cache

3 Memória virtual

4 Arquiteturas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 3 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 4 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?

Algum problema com a estrutura clássica acima?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 4 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 5 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

SRAM
Alta velocidade
Baixa densidade (6T)
Alto custo
Volátil

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 5 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

SRAM
Alta velocidade
Baixa densidade (6T)
Alto custo
Volátil
DRAM
Média velocidade
Densidade maior que SRAM (1T)
Médio custo
Volátil

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 5 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 6 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Magnéticas (HD)
Baixa velocidade
Alta densidade
Baixo custo
Não volátil

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 6 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Magnéticas (HD)
Baixa velocidade
Alta densidade
Baixo custo
Não volátil
Flash
Média velocidade de leitura
Média densidade
Médio/baixo custo (1/10 DRAM)
Não volátil

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 6 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Magnéticas (HD)
Baixa velocidade
Alta densidade
Baixo custo
Não volátil
Flash
Média velocidade de leitura
Média densidade
Médio/baixo custo (1/10 DRAM)
Não volátil
Escrita em blocos...

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 6 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória não ideais

Magnéticas (HD)
Baixa velocidade
Alta densidade
Baixo custo
Não volátil
Flash
Média velocidade de leitura
Média densidade
Médio/baixo custo (1/10 DRAM)
Não volátil
Escrita em blocos...
Ciclo de vida de ≈ 100.000 escritas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 6 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Magnetic RAM

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Magnetic RAM
3D Resistive RAM

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Magnetic RAM
3D Resistive RAM
Phase change RAM

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Magnetic RAM
3D Resistive RAM
Phase change RAM
Spin-transfer torque RAM

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Tecnologias de memória ideais?

Magnetic RAM
3D Resistive RAM
Phase change RAM
Spin-transfer torque RAM
Para quando?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 7 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


O gap de memória

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 8 / 47


A Hierarquia de memórias Introdução

Por que uma hierarquia de memórias?


Atualmente

Memory technology Typical access time $ per GB in 2008


SRAM 0.5-2.5 ns 2,000-5,000
DRAM 50-70 ns 20-75
Magnetic disk 5,000,000-20,000,000 ns 0.20-2

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 9 / 47


A Hierarquia de memórias Introdução

O que é uma hierarquia de memórias?

Hierarquia de memória
É a organização da memória em múltiplos nı́veis, com desempenhos,
custos e capacidades (tecnologias) diferentes, de forma a criar a ilusão de
uma memória de grande capacidade e alta velocidade, com um custo
próximo ao da memória mais acessı́vel.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 10 / 47


A Hierarquia de memórias Introdução

O que é uma hierarquia de memórias?

Hierarquia de memória
É a organização da memória em múltiplos nı́veis, com desempenhos,
custos e capacidades (tecnologias) diferentes, de forma a criar a ilusão de
uma memória de grande capacidade e alta velocidade, com um custo
próximo ao da memória mais acessı́vel.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 10 / 47


A Hierarquia de memórias Introdução

O que é uma hierarquia de memórias?

Hierarquia de memória
É a organização da memória em múltiplos nı́veis, com desempenhos,
custos e capacidades (tecnologias) diferentes, de forma a criar a ilusão de
uma memória de grande capacidade e alta velocidade, com um custo
próximo ao da memória mais acessı́vel.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 10 / 47


A Hierarquia de memórias Introdução

O que é uma hierarquia de memórias?


Organização em sistemas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 11 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências

Princı́pio da localidade de referências


Estabelece que, em um determinado perı́odo de tempo, um programa
acessa apenas uma pequena parte do seu espaço de endereços.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 12 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências

Princı́pio da localidade de referências


Estabelece que, em um determinado perı́odo de tempo, um programa
acessa apenas uma pequena parte do seu espaço de endereços.

Localidade espacial

Localidade temporal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 12 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências

Princı́pio da localidade de referências


Estabelece que, em um determinado perı́odo de tempo, um programa
acessa apenas uma pequena parte do seu espaço de endereços.

Localidade espacial
Refere-se à grande probabilidade de acesso sequencial a posições
contı́guas do espaço de endereços do programa
Localidade temporal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 12 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências

Princı́pio da localidade de referências


Estabelece que, em um determinado perı́odo de tempo, um programa
acessa apenas uma pequena parte do seu espaço de endereços.

Localidade espacial
Refere-se à grande probabilidade de acesso sequencial a posições
contı́guas do espaço de endereços do programa
Localidade temporal
Refere-se à grande probabilidade de acessos subsequentes às mesmas
posições no espaço de endereços do programa

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 12 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Concentração/localidade de referências

CPU

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 13 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Concentração/localidade de referências

Trechos com
localidade de
CPU referências

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 13 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Concentração/localidade de referências

Trechos com
localidade de
CPU referências

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 13 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

CPU Blocos

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 14 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

CPU

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 14 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

CPU

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 14 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

CPU

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 14 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

CPU

Nível de memória rápida

Espaço de endereços
da memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 14 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

Questões básicas:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 15 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

Questões básicas:
1 Onde colocar um novo bloco na memória mais rápida?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 15 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

Questões básicas:
1 Onde colocar um novo bloco na memória mais rápida?
2 Como encontrar um bloco na memória mais rápida?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 15 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

Questões básicas:
1 Onde colocar um novo bloco na memória mais rápida?
2 Como encontrar um bloco na memória mais rápida?
3 Qual bloco substituir em caso de necessidade?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 15 / 47


A Hierarquia de memórias Princı́pio de funcionamento

Localidade de referências
Transferência de blocos

Questões básicas:
1 Onde colocar um novo bloco na memória mais rápida?
2 Como encontrar um bloco na memória mais rápida?
3 Qual bloco substituir em caso de necessidade?
4 Qual a estratégia de escrita?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 15 / 47


Memórias cache

Outline

1 A Hierarquia de memórias
Introdução
Princı́pio de funcionamento

2 Memórias cache
O desempenho da cache

3 Memória virtual

4 Arquiteturas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 16 / 47


Memórias cache

Transferência de blocos
Endereço original 6= endereço na cache...
1 Onde colocar um novo bloco na memória mais rápida?

2 Como encontrar um bloco na memória mais rápida?

wn 1000
wn+1 1004
bloco b
00 wn+2 1008
04 wn+3 100C
bloco b+1
08 wn+4 1010
0C wn+5 1014
bloco b+1
10 wn+6 1018
14 Endereços na wn+7 101C
18 wn+8 1020 Endereços
memória
1C rápida bloco b+2 1024 originais
20 1028
24 wn+11 102C
28 wn+12 1030
2C bloco b+3 1034
30 1038
34 wn+15 103C
38 wn+16 1040
3C bloco b+4 1044
1048

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 17 / 47


Memórias cache

Mapeamento de blocos na memória cache


Blocos x linhas

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
endereço da linha
011111
Cache 100000
100001
linha 0 00
100010
linha 1 01
100011
linha 2 10
100100
linha 3 11
100101
100110
100111
101000
101001
bloco b+18 101010

endereço do bloco

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 18 / 47


Memórias cache

Mapeamento de blocos na memória cache


Blocos x linhas

palavra do bloco
Principal
bloco b 011000XX
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
endereço da linha
011111
Cache 100000
100001
00
100010
01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

endereço do bloco

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 18 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
bloco b+10 00
bloco b+10 100010
01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
10
100100
bloco b+10 11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
bloco b+10 01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
bloco do endereço 100010? 011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
bloco b+10 01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
bloco b+10 01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
100010 bloco b+10 01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento associativo

Como encontrar um bloco na memória cache?


Memória associativa de n vias para armazenamento dos TAGs

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
100010 bloco b+10 01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 19 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Onde colocar um novo bloco na memória cache?

Linha na cache
Principal
bloco b −−−−00
bloco b+1 −−−−01
bloco b+2 −−−−10
−−−−11
−−−−00
−−−−01
−−−−10
−−−−11
Cache −−−−00
−−−−01
00
bloco b+10 −−−−10
01
−−−−11
10
−−−−00
11
−−−−01
−−−−10
−−−−11
−−−−00
−−−−01
bloco b+18 −−−−10

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Onde colocar um novo bloco na memória cache?

Linha na cache
Principal
bloco b −−−−00
bloco b+1 −−−−01
bloco b+2 −−−−10
−−−−11
−−−−00
−−−−01
−−−−10
−−−−11
Cache −−−−00
−−−−01
00
bloco b+10 −−−−10
01
−−−−11
bloco b+10 10
−−−−00
11
−−−−01
−−−−10
−−−−11
−−−−00
−−−−01
bloco b+18 −−−−10

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
bloco do endereço 100010? 011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
bloco b+10 10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
bloco do endereço 100010? 011100
ou 000010? 011101
ou 111110? 011110
ou 101010? 011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
bloco b+10 10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
01
100011
bloco b+10 10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
01
100011
1000 bloco b+10 10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento direto

Como encontrar um bloco na memória cache?


Comparação direta do endereço do bloco com o campo TAG
especı́fico

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
TAG Cache 100000
100001
00
bloco b+10 100010
01
100011
1000 bloco b+10 10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 20 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
00
bloco b+10 100010
01
100011
10
100100
11
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Onde colocar um novo bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
011101
011110
011111
Cache 100000
100001
grupo 0 bloco b+10 100010
100011
grupo 1 100100
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Onde colocar um novo bloco na memória cache?

grupo na cache
Principal
bloco b −−−−−0
bloco b+1 −−−−−1
bloco b+2 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
Cache −−−−−0
−−−−−1
grupo 0 bloco b+10 −−−−−0
−−−−−1
grupo 1 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
bloco b+18 −−−−−0

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Onde colocar um novo bloco na memória cache?

grupo na cache
Principal
bloco b −−−−−0
bloco b+1 −−−−−1
bloco b+2 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
Cache −−−−−0
−−−−−1
bloco b+10
grupo 0 bloco b+10 −−−−−0
−−−−−1
grupo 1 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
bloco b+18 −−−−−0

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Onde colocar um novo bloco na memória cache?

grupo na cache
Principal
bloco b −−−−−0
bloco b+1 −−−−−1
bloco b+2 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
Cache −−−−−0
−−−−−1
grupo 0 bloco b+10 −−−−−0
bloco b+10
−−−−−1
grupo 1 −−−−−0
−−−−−1
−−−−−0
−−−−−1
−−−−−0
−−−−−1
bloco b+18 −−−−−0

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Como encontrar um bloco na memória cache?

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
bloco do endereço 100010? 011101
011110
011111
TAG Cache 100000
100001
bloco b+10 100010
10001 bloco b+10
100011
100100
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache


Mapeamento grupo-associativo

Como encontrar um bloco na memória cache?


Busca direta do grupo e associativa nos TAGs do grupo

Principal
bloco b 011000
bloco b+1 011001
bloco b+2 011010
011011
011100
bloco do endereço 100010? 011101
011110
011111
TAG Cache 100000
100001
bloco b+10 100010
10001 bloco b+10
100011
100100
100101
100110
100111
101000
101001
bloco b+18 101010

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 21 / 47


Memórias cache

Mapeamento de blocos na memória cache

Associativo
Melhor aproveitamento da cache
Muito complexo para associatividade maior que 16
Direto
Pior aproveitamento da cache
Implementação simples
Grupo-associativo
Aproveitamento da cache próximo ao do associativo
Complexidade de implementação intermediária

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 22 / 47


Memórias cache

Gerência de blocos na cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 23 / 47


Memórias cache

Gerência de blocos na cache

Qual bloco substituir em caso de necessidade?


Referente apenas ao mapeamento grupo-associativo

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 23 / 47


Memórias cache

Gerência de blocos na cache

Qual bloco substituir em caso de necessidade?


Referente apenas ao mapeamento grupo-associativo
Algoritmos de substituição

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 23 / 47


Memórias cache

Gerência de blocos na cache

Qual bloco substituir em caso de necessidade?


Referente apenas ao mapeamento grupo-associativo
Algoritmos de substituição
Least recently used (LRU)
First in, first out (FIFO)
Random

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 23 / 47


Memórias cache

Gerência de blocos na cache

Qual bloco substituir em caso de necessidade?


Referente apenas ao mapeamento grupo-associativo
Algoritmos de substituição
Least recently used (LRU)
First in, first out (FIFO)
Random
Pseudo-LRU

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 23 / 47


Memórias cache

Atualização de blocos na memória

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?


Bloco presente na cache

Bloco ausente na cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?


Bloco presente na cache
Write-through

Write-back

Bloco ausente na cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?


Bloco presente na cache
Write-through
Write buffer
Write-back

Bloco ausente na cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?


Bloco presente na cache
Write-through
Write buffer
Write-back
Dirty bit
Bloco ausente na cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache

Atualização de blocos na memória

Qual a estratégia de escrita?


Bloco presente na cache
Write-through
Write buffer
Write-back
Dirty bit
Bloco ausente na cache
Write allocate
No-write allocate

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 24 / 47


Memórias cache O desempenho da cache

Hit & miss

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Hit & miss

Tempo de acesso à memória:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Hit & miss

Tempo de acesso à memória:

Average memory access time(AMAT ) = Hit time + Miss rate · Miss penalty

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Hit & miss

Tempo de acesso à memória:

Average memory access time(AMAT ) = Hit time + Miss rate · Miss penalty

Hit time: tempo para acesso à cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Hit & miss

Tempo de acesso à memória:

Average memory access time(AMAT ) = Hit time + Miss rate · Miss penalty

Hit time: tempo para acesso à cache


Miss rate: taxa dos acessos à memória não satisfeitos pela cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Hit & miss

Tempo de acesso à memória:

Average memory access time(AMAT ) = Hit time + Miss rate · Miss penalty

Hit time: tempo para acesso à cache


Miss rate: taxa dos acessos à memória não satisfeitos pela cache
Miss penalty : tempo de acesso à memória principal

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 25 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Estratégias para melhorar o desempenho da cache:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Estratégias para melhorar o desempenho da cache:


Redução do hit time

Redução da miss rate

Redução da miss penalty

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Estratégias para melhorar o desempenho da cache:


Redução do hit time
Menor capacidade da cache
Melhor tecnologia de fabricação
Redução da miss rate

Redução da miss penalty

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Estratégias para melhorar o desempenho da cache:


Redução do hit time
Menor capacidade da cache
Melhor tecnologia de fabricação
Redução da miss rate
Maior capacidade da cache
Blocos maiores
Maior associatividade
Redução da miss penalty

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache

AMAT = Hit time + Miss rate · Miss penalty

Estratégias para melhorar o desempenho da cache:


Redução do hit time
Menor capacidade da cache
Melhor tecnologia de fabricação
Redução da miss rate
Maior capacidade da cache
Blocos maiores
Maior associatividade
Redução da miss penalty
Blocos menores
Caches multinı́vel

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 26 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss rate

Blocos maiores

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 27 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss rate

Blocos maiores

SPEC92, DECstation 5000.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 27 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss rate

Maior associatividade

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 28 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss rate

Maior associatividade

Tempo médio de acesso (ns).

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 28 / 47


Memórias cache O desempenho da cache

Otimização da cache
hit time x associatividade

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 29 / 47


Memórias cache O desempenho da cache

Otimização da cache
hit time x associatividade

Tempo de acesso (ps).

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 29 / 47


Memórias cache O desempenho da cache

Otimização da cache
Consumo x associatividade

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 30 / 47


Memórias cache O desempenho da cache

Otimização da cache
Consumo x associatividade

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 30 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss rate

Split caches
Arquitetura Harvard de memória

Taxa de miss para 1000 acessos, Alpha, SPEC2000, 2 vias, blocos de 64


bytes.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 31 / 47


Memórias cache O desempenho da cache

Otimização da cache
Desempenho x algoritmos de substituição

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 32 / 47


Memórias cache O desempenho da cache

Otimização da cache
Desempenho x algoritmos de substituição

Taxa de miss para 1000 acessos, Alpha, SPEC2000.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 32 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss penalty

Caches multinı́vel

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 33 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss penalty

Caches multinı́vel

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 33 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss penalty

Caches multinı́vel

AMAT = Hit timeL1 + Miss rateL1 · (Hit timeL2 + Miss rateL2 · Miss penaltyL2 )

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 33 / 47


Memórias cache O desempenho da cache

Otimização da cache
Redução da miss penalty

Caches multinı́vel

AMAT = Hit timeL1 + Miss rateL1 · (Hit timeL2 + Miss rateL2 · Miss penaltyL2 )

Miss local x miss global

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 33 / 47


Memórias cache O desempenho da cache

Otimização da cache
Sumário das técnicas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 34 / 47


Memórias cache O desempenho da cache

Otimização da cache
Sumário das técnicas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 34 / 47


Memória virtual

Outline

1 A Hierarquia de memórias
Introdução
Princı́pio de funcionamento

2 Memórias cache
O desempenho da cache

3 Memória virtual

4 Arquiteturas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 35 / 47


Memória virtual

Por que memória virtual?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 36 / 47


Memória virtual

Por que memória virtual?


Evolução do conceito de overlays
Gerencia a relação entre a memória principal e a secundária
Gerencia a relocação de código
Implementa esquemas de proteção do espaço de endereços dos
aplicativos

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 36 / 47


Memória virtual

Por que memória virtual?


Evolução do conceito de overlays
Gerencia a relação entre a memória principal e a secundária
Gerencia a relocação de código
Implementa esquemas de proteção do espaço de endereços dos
aplicativos

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 36 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?
Mapa da memória
Page fault

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?
Mapa da memória
Page fault
Qual bloco substituir em caso de necessidade?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?
Mapa da memória
Page fault
Qual bloco substituir em caso de necessidade?
Least recently used (LRU)

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?
Mapa da memória
Page fault
Qual bloco substituir em caso de necessidade?
Least recently used (LRU)
Qual a estratégia de escrita?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Princı́pios de funcionamento
Memória virtual x memória cache

Gerência por SW(OS) x gerência por HW(MMU)


Transferência de blocos entre os nı́veis
Páginas e segmentos x blocos/linhas
Onde colocar um novo bloco na memória mais rápida?
Mapeamento associativo
Como encontrar um bloco na memória mais rápida?
Mapa da memória
Page fault
Qual bloco substituir em caso de necessidade?
Least recently used (LRU)
Qual a estratégia de escrita?
Write-back

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 37 / 47


Memória virtual

Memória virtual x memória cache

Parâmetros nos diferentes nı́veis:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 38 / 47


Memória virtual

Páginas x segmentos
Caracterı́sticas:

Divisão de um programa:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 39 / 47


Memória virtual

Mapa da memória
Tabela de páginas:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 40 / 47


Memória virtual

Mapa da memória
Tabela de páginas:

Tamanho dependente do número de páginas no espaço de endereços


virtual

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 40 / 47


Memória virtual

Mapa da memória
Tabela de páginas:

Tamanho dependente do número de páginas no espaço de endereços


virtual
Tabela de páginas invertida: função Hash para endereçamento

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 40 / 47


Memória virtual

Mapa da memória
Tabela de páginas:

Tamanho dependente do número de páginas no espaço de endereços


virtual
Tabela de páginas invertida: função Hash para endereçamento
Tamanho dependente do número de páginas fı́sicas
Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 40 / 47
Memória virtual

Endereços virtuais → endereços fı́sicos

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 41 / 47


Memória virtual

Endereços virtuais → endereços fı́sicos

Tradução de endereços = acesso à tab. páginas na memória

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 41 / 47


Memória virtual

Endereços virtuais → endereços fı́sicos

Tradução de endereços = acesso à tab. páginas na memória


Translation lookaside buffer (TLB)

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 41 / 47


Memória virtual

Endereços virtuais → endereços fı́sicos

Tradução de endereços = acesso à tab. páginas na memória


Translation lookaside buffer (TLB)

TLB do processador Opteron.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 41 / 47


Arquiteturas recentes

Outline

1 A Hierarquia de memórias
Introdução
Princı́pio de funcionamento

2 Memórias cache
O desempenho da cache

3 Memória virtual

4 Arquiteturas recentes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 42 / 47


Arquiteturas recentes

ARM Cortex-A8
Split cache

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 43 / 47


Arquiteturas recentes

ARM Cortex-A8
Split cache

L1 cache
32 KB, blocos de 64 bytes
Grupo-associativa com 4 vias
L2 cache
1 MB, blocos de 64 bytes
Grupo-associativa com 8 vias
TLB
32 entradas
Associativa

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 43 / 47


Arquiteturas recentes

ARM Cortex-A8

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 44 / 47


Arquiteturas recentes

ARM Cortex-A8

Minniespec benchmark.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 45 / 47


Arquiteturas recentes

ARM Cortex-A8

Minniespec benchmark.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 46 / 47


Arquiteturas recentes

Intel Core-i7
Por núcleo:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 47 / 47


Arquiteturas recentes

Intel Core-i7
Por núcleo:
L1 cache
32 KB + 32 KB, blocos de 64 bytes
Grupo-associativa com 4(I)/8(D) vias
Latência: 4 ciclos
L2 cache
256 KB, blocos de 64 bytes
Grupo-associativa com 8 vias
Latência: 10 ciclos
Compartilhada:
L3 cache
8 MB, blocos de 64 bytes
Grupo-associativa com 16 vias
Latência: 35 ciclos
TLB
128(I)/64(D)/512(L2) entradas
Grupo-associativa com 4 vias
Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Maio 2013 47 / 47

Anda mungkin juga menyukai