21
veiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau ([email protected])

Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau([email protected])

Embed Size (px)

Citation preview

Page 1: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

1

Arquitectura de Computadores II

Ano lectivo 2002/2003

Nuno Lau ([email protected])

Page 2: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

2

Memória Virtual

Eficiência da utilização da memóriaMemória deve ser partilhada pelos processosManter em memória apenas o necessárioEndereços usados pelos processos não correspondem com endereços da memória física

Segurançamecanismos de segurança que impeçam que um processo altere as zonas de memória dos outros processos.

TransparênciaProcesso tem acesso a muita memória (eventualmente mais do que a memória física)Processo corre como se toda a memória lhe pertencesse

Partilha de memóriaVários processos acedem à mesma zona de memória (de forma controlada)

Page 3: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

3

Memória virtual

Cada processo corre num espaço de endereçamento virtual (igual para todos)

Os endereços usados pelos processos e os endereços físicos que lhes correspondem podem ser distintos

Os endereços que o processo usa são virtuais, o mesmo endereço virtual de 2 processos pode corresponder a endereços físicos distintos

Os endereços da memória virtual têm de ser convertidos em endereços de memória física

Alguns endereços de memória virtual podem estar armazenados em disco

Page 4: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

4

Mapeamento Virtual-Físico

É necessária a conversão (rápida) do endereço virtual para o endereço físico

Endereço virtual

Endereço físico

Page 5: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

5

Memória física como cache

O conteúdo dos endereços virtuais pode ser armazenado em disco

0x100x3

0x33

0x21

Endereço virtual0:4:8:

0:0x3 4:

Endereço físico

0x2112:

0x330x10

Disco

Page 6: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

6

Paginação e Segmentação

Paginação

Memória dividida em páginasPáginas têm tamanho fixoFragmentação internaUm processo necessita de um certo número de páginas livres

Segmentação

Memória dividida em segmentosSegmentos podem ter tamanho variávelFragmentação externaUm processo necessita de uma zona contígua de memória livre para cada segmento

Page 7: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

7

Memória virtual vs cache

A página é o equivalente na memória virtual ao bloco da cache

A page fault equivale ao miss

Endereço virtual

Endereço físico

Mapeamento de memória ou Tradução de endereços

O custo de um page fault é muito elevado

Milhões de ciclosPolítica de posicionamento, substituição e de escrita sofisticadas

Page 8: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

8

Endereço virtual paginado

Nº página virtual

Offset no interior da páginaTamanho da página?

Page 9: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

9

Características de memória paginada

O custo de um page fault é muito elevado

Páginas são relativamente grandes para amortizar o tempo de acesso

4KB a 64KBUsar uma organização completamente associativa

Page faults são tratados por software pois o atraso principal é o acesso ao disco.

Algoritmos mais sofisticadosWrite-back

Page 10: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

10

Encontrar uma página

Organização completamente associativaPágina virtual pode ser mapeada em qualquer página físicaReduzir page faults

Não é possível usar procura associativa

Tabela relaciona página virtual com a sua posiçãoPage tableIndexada por nº página virtualEntrada indica posição real da página virtualCada processo tem a sua tabela de página

Page 11: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

11

Tabela de página

Registo de tabela de página

Valid bit

Permissões

Sem tags! Porquê?

Page 12: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

12

Page fault

Valid bit da tabela de página com 0

Tratado pelo sistema operativo

Estrutura mantém posição das página virtuais em disco

Política de substituição tipo LRUTabela de páginas contém reference bitPeriodicamente reference bits colocados a zeroSe página é acedida (touched) reference bit a 1Substituir páginas com reference bit a 0

Page 13: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

13

Tamanho da tabela de página

Considere um sistema com endereços de 32 bits, páginas de 4KB e 4 bytes por entrada na tabela de página. Qual o espaço ocupado pela tabela de página?

Nº de entradas = 232 / 212 = 220

Tamanho da tabela = 220 * 4 = 4MB

100 processos implicaria 400MB de memória usados em tabelas de página!

Page 14: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

14

Tamanho da tabela de página

Técnicas para reduzir o tamanho da tabela de página

Registo limita o tamanho da tabela• Memória associada ao processo cresce num só sentido

2 páginas por processo com 2 registos limite• 2 segmentos (stack e heap) crescem em direcções opostas

Hashing• Tabela de página depende do tamanho da memória física

Tabelas de página com vários níveis

Tabelas de página em memória virtual!

Page 15: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

15

Política de escrita

Write-through não é eficiente

Write-backEscrita em disco página a páginaPágina só é escrita em disco quando necessita de ser retirada de memória física…

Dirty bite só se foi alterada desde que foi lida do disco

Write allocateEscrita numa página que não reside em memória física, carrega essa página para a memória física e escreve

Page 16: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

16

Problemas

Memória virtual obriga a 2 referências à memória para aceder a um endereço virtual!

Tabela de página reside em memóriaAcesso à tabela de páginaAcesso à memória física

CPUTradução

de endereçosMemória

EV EF

Page 17: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

17

Solução

Os acessos à memória virtual contêm localidade espacial e temporal

Cache de endereços traduzidos recentemente

TLB – Translation-lookaside buffer

Entrada do TLB pode incluir tag, página física e reference, dirty, access bits

Em cada acesso o TLB é verificadoHit - continuaMiss - verificar a tabela de página

• Podem originar (ou não) page faults• Podem ser tratados por hardware ou software

Page 18: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

18

Características do TLB

Tamanho: 32 – 4096 bytes

Tamanho bloco: 1-2 entradas de página

Hit time: 0.5 a 1 ciclo

Miss penalty: 10-30 ciclos

Miss rate: 0.01% a 1%

Associatividade varia de completa (para TLBs pequenos) a mapeamento directo

Page 19: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

19

Memória virtual com TLB

TLB funciona como cache das entradas da tabela de página

Tag, valid, etc

Page 20: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

20

Memória virtual, TLB e cache

DecStation 3100

Cache de endereços físicos

TLB completamente associativo

Page 21: Aveiro, 28 de Maio de 2003 1 Arquitectura de Computadores II Ano lectivo 2002/2003 Nuno Lau(lau@det.ua.pt)

Aveiro, 28 de Maio de 2003

21

3 níveis de miss

cache TLB page fault

miss hit hit Possível

hit miss hit Possível

miss miss hit Possível

miss miss miss Possível

miss hit miss Impossível

hit hit miss Impossível

hit miss miss Impossível