arquitectura de computadores ii paulo marques departamento de eng. informática universidade de...

37
Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra [email protected] 2004/200 5 5. Hierarquia de Memória 5.1. Cache

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

Arquitectura de Computadores II

Paulo MarquesDepartamento de Eng. InformáticaUniversidade de [email protected]

2004

/200

5

5. Hierarquia de Memória5.1. Cache

Page 2: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

2

“O Fosso de Performance”

Page 3: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

3

Hierarquia de Memória

Princípio da localidade espacial“Se eu acedi a estes dados, é provável que aceda aos dados que estão próximos”

Princípio da localidade temporal“Se eu acedi à pouco tempo a estes dados, é provável que lhes vá aceder dentro de pouco tempo”

Registos

Cache

Memória Central (RAM)

Memória de Massa (Disco)

~128x32bits, 0.25ns

~1MByte, 10ns$5000/GB

~512Mbyte, 100ns$100/GB

~200Gbyte, 5ms$1/GB

VelocidadePreço

Tamanho

Page 4: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

4

Conceitos Básicos (Cache Directamente Mapeada)

Cache

Memória

0 1 2 3 4 5 6 7

......

10

00

10

01

10

02

10

03

10

04

10

05

10

06

10

07

10

08

10

09

10

10

10

11

10

12

10

13

10

14

10

15

10

16

10

17

10

18

10

19

10

20

10

21

10

22

10

23

10

24

10

25

10

26

10

27

10

28

10

29

10

30

10

31

10

32

10

33

10

34

10

35

10

36

10

37

10

38

10

39

10

40

LD R1, 1012Cache Directamente Mapeada

1012 MOD 8 = 4

Cache Hit O bloco está na cacheCache Miss O bloco não está na cache

Page 5: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

5

Conceitos Básicos (Cache Directamente Mapeada)

Memória

0000

0001

0010

0011

0100

0101

0110

0111

......

10

00

10

01

10

02

10

03

10

04

10

05

10

06

10

07

10

08

10

09

10

10

10

11

10

12

10

13

10

14

10

15

10

16

10

17

10

18

10

19

10

20

10

21

10

22

10

23

10

24

10

25

10

26

10

27

10

28

10

29

10

30

10

31

10

32

10

33

10

34

10

35

10

36

10

37

10

38

10

39

10

40

1000

1001

1010

1011

1100

1101

1110

1111

LB R1, 1012

Cache Line

Page 6: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

6

Cache Directamente Mapeada

Page 7: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

7

Associatividade

Page 8: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

8

Porquê diferentes tipos de associatividade?

Directamente Mapeada Rápida a aceder aos dados (só podem estar num local) Sempre que existe um miss, limpa a entrada

correspondente(hit rate baixo)

Completamente Associativa Lenta a aceder aos dados (têm de se comparar todas as

tags) Quando existe um miss, podemos escolher qual a

entrada a eliminar (hit rate elevado) [E.g. Caches a nível do sistema operativo]

Associativa Por blocos O melhor (e/ou pior) de ambos os mundos [E.g. Caches no processador]

Page 9: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

9

Uma cache associativa em blocos de 4

Page 10: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

10

Efeito da associatividade no miss rate

Associativity

0One-way Two-way

3%

6%

9%

12%

15%

Four-way Eight-way

1 KB

2 KB

4 KB

8 KB

16 KB

32 KB64 KB 128 KB

Page 11: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

11

Efeito do tamanho do bloco no miss rate

À medida que o tamanho do bloco aumenta... Localidade Espacial (reaproveitamento de dados) Poucos Blocos (competição pelos mesmos blocos) Penalidade nos misses aumenta (...o tempo de ir buscar os blocos)

Page 12: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

12

O que acontece num cache read miss?

1. Envia o endereço em falta para a memória2. Ordena à memória que efectue a leitura e espera

que a mesma complete3. Escreve o valor lido na cache, actualizando os

dados, tag e ligando o bit validNo caso das caches associativas utiliza-se uma das seguintes técnicas para seleccionar o bloco: Random Least-Recently Used (LRU) First-in, First-out (FIFO)

4. Efectivamente lê o valor, partindo da cache

Page 13: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

13

O que acontece numa escrita?

A memória central e a cache devem de estar consistentes Manter ambas consistentes pode sair bastante caro...

Write-through: Sempre que se escreve na cache, os dados são também enviados para a memória central Utilização de um write-buffer de actualização da memória central Simples de implementar Coerência de dados (importante em multi-processadores) Pode ser lenta, se os programas têm uma taxa de escritas superior

ao o write-buffer aguenta

Write-back: Apenas se escreve na cache; a memória central só é actualizada quando o bloco tem de ser eliminado da cache É necessária a presença de um dirty-bit a marcar cada entrada em

cache Utiliza menos largura de banda com a memória (importante em

multi-processadores) Várias escritas num bloco apenas implicam uma escrita em

memória Read misses podem implicar escritas em memória (e.g. se é

necessário substituir um bloco dirty) Escritas complicadas (e potencialmente lentas). É necessário

verificar se se trata de um hit ou miss antes de actualizar a memória; não se pode simplesmente “escrever”. Utilização de um store-buffer.

Page 14: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

14

Considerações sobre Memória

DRAM = Dynamic Random Access Memory Ênfase na densidade (bits/cm^2) Latência de acesso / Velocidade de transferência Tem de ser refrescada periodicamente

(basta “ler” os bits de uma linha)

RAS = Row Access StrobeCAS = Column Access Strobe

Page 15: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

15

Evolução da tecnologia DRAM

Year Chip Size $/MBTotal Access Time

(RAS + CAS)

Column Access time for an Existing Row

(CAS)1985 1 Mbit $200 135 ns 40 ns1989 4 Mbit $50 110 ns 40 ns1992 16 Mbit $15 90 ns 30 ns1996 64 Mbit $10 60 ns 12 ns1998 128 Mbit $4 60 ns 10 ns2000 256 Mbit $1 55 ns 7 ns2002 512 Mbit $0.25 50 ns 5 ns2004 1024 Mbit $0.10 45 ns 3 ns

Page 16: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

16

Como aumentar a largura de banda com a memória?

Vencer a latência de acesso é complicado; mas é possível melhorar a largura de banda!

(a) Abordagem assumida até agora(b) Bus largo, acede a todas as palavras de um

bloco simultaneamente(c) Interleaved memory, evita o custo da

latência de acesso (embora ainda pague o custo da transferência dos dados)

CPU

Cache

Memory

Bus

One-word-widememory organization

a.

b. Wide memory organization

CPU

Cache

Memory

Bus

Multiplexor

CPU

Cache

Bus

Memory

bank 0

Memory

bank 1

Memory

bank 2

Memory

bank 3

c. Interleaved memory organization

Page 17: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

17

Algumas técnicas para melhorar a performance

1. Hierarquias de Caches

2. “Requested Word First” & “Early Restart”

3. Merge Write Buffer

4. Victim Caches

Page 18: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

18

Exemplos de Caches

Page 19: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

Arquitectura de Computadores II

Paulo MarquesDepartamento de Eng. InformáticaUniversidade de [email protected]

2004

/200

5

5. Hierarquia de Memória5.2. Memória Virtual

Page 20: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

20

Conceito

A memória física de um computador pode ser considerada apenas como uma “cache” para os dados em disco Os dados em disco correspondem à memória virtual

swap file

Page 21: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

21

Mapeamento de endereços

Atenção: Nada obriga a que os endereços físicos tenhamo mesmo tamanho que os endereços virtuais

Page 22: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

22

Aspecto de um sistema com memória virtual

0 0

4Gb 4Gb

Espaço de endereçamento do processo A

Espaço de endereçamento do processo B

1000 1000

Memória física0

256Mb5000

Tabela(s) de Tradução deEndereços

Disco

Nota: não existe apenas uma tabela de tradução de endereços, mas várias.A tabela do processo corrente é carregada utilizando um registo especialdo processador

Page 23: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

23

Considerações Importantes

O tamanho das páginas deve ser grande para amortizar o enorme tempo de acesso ao disco Hoje são tipos valores de 4KB e 16KB. Começam a surgir

sistemas de 32KB e 64KB.

É importantíssimo baixar o miss rate Abordagens completamente associativas

Quando existe uma page fault, a mesma é resolvida em software e não em hardware O preço de resolver o problema em software é baixo

comparado com o preço de ir a disco e/ou de incorporar tal solução em hardware. Para além disso, podem-se utilizar algoritmos mais sofisticados em software.

Write-thought não é uma opção

Page 24: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

24

Tabela de Páginas (1)

Page 25: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

25

Tabela de Páginas (1)

O que é que falta neste diagrama???

Page 26: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

26

Translation-Lookaside Buffer (TLB)

Page 27: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

27

Exemplo de TLB+Cache (Intrinsity FastMATH)

Nota: Falta mostrar a tabela de páginas(no caso de TLB miss)

Page 28: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

28

Intrinsity FastMATH, c/ TLB hit

Page 29: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

29

Vários acontecimentos possíveis

Page 30: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

30

Alguns Exemplos de Processadores

Page 31: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

31

AMD Athlon64 3500+ (2.2GHz)

Page 32: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

32

Material para ler

Computer Architecture: A Quantitative Approach, 3rd Ed. Secções 5.1, 5.2, 5.3 (Brevemente) 5.4 e 5.5 Secção 5.8 e a parte de 5.9 que diz respeito à tecnologia

DRAM Secção 5.10

Alternativamente (ou complementarmente), a matéria encontra-se bastante bem explicada no Capítulo 7 do Computer Organization and Design, 3rd Ed.

D. Patterson & J. HennessyMorgan Kaufmann, ISBN 1-55860-604-1 August 2004

Page 33: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

33

» People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise, the programs they write will be pretty weird «

Donald Knuth

Page 34: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

34

Questão Interessante

Multiplicação de Matrizes, 1024x1024 INT @XTITAN (Dual Xeon – 2 GHz)

[pmarques@ingrid ~/tmp] ./Mult 1024Size = 1024x1024Total time = 57 sec

@T01 (Pentium Celeron – 1 GHz)[pmarques@t10 ~/tmp] ./Mult 1024Size = 1024x1024Total time = 16 sec

O que é que se passa aqui?!?!?!?!

Page 35: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

35

Organização da Memória

[pmarques@t01 ~/tmp] cat /proc/cpuinfo (...)model name : Celeron (Coppermine)cpu MHz : 1002.301cache size : 128 KBbogomips : 1998.84(...)[pmarques@t01 ~/tmp]

[pmarques@ingrid ~/tmp] cat /proc/cpuinfo (...)model name : Intel(R) XEON(TM) CPU 2.00GHzcpu MHz : 1993.562cache size : 512 KBbogomips : 3971.48(...)[pmarques@ingrid ~/tmp]

Page 36: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

36

Latência de Acesso a Memória

Celeron @ 1GHz Xeon @ 2GHz

Page 37: Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2004/2005 5. Hierarquia de Memória

37

Largura de Banda de Acesso a Memória (MB/s)

Xeon @ 2GHzCeleron @ 1GHz