Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de...

Preview:

Citation preview

Arquitectura de Computadores II

Paulo MarquesDepartamento de Eng. InformáticaUniversidade de Coimbrapmarques@dei.uc.pt

2004

/200

5

5. Hierarquia de Memória5.1. Cache

2

“O Fosso de Performance”

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

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

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

6

Cache Directamente Mapeada

7

Associatividade

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]

9

Uma cache associativa em blocos de 4

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

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)

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

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.

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

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

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

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

18

Exemplos de Caches

Arquitectura de Computadores II

Paulo MarquesDepartamento de Eng. InformáticaUniversidade de Coimbrapmarques@dei.uc.pt

2004

/200

5

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

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

21

Mapeamento de endereços

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

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

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

24

Tabela de Páginas (1)

25

Tabela de Páginas (1)

O que é que falta neste diagrama???

26

Translation-Lookaside Buffer (TLB)

27

Exemplo de TLB+Cache (Intrinsity FastMATH)

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

28

Intrinsity FastMATH, c/ TLB hit

29

Vários acontecimentos possíveis

30

Alguns Exemplos de Processadores

31

AMD Athlon64 3500+ (2.2GHz)

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

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

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?!?!?!?!

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]

36

Latência de Acesso a Memória

Celeron @ 1GHz Xeon @ 2GHz

37

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

Xeon @ 2GHzCeleron @ 1GHz

Recommended