evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · josé delgado © 2012 arquitetura...

61
Arquitetura de Computadores Evolução da arquitetura básica 1 José Delgado © 2012 Evolução da arquitetura básica Processamento em estágios (com pipeline) • Caches Memória virtual

Upload: truongtu

Post on 02-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 1 José Delgado © 2012

Evolução da arquitetura básica

• Processamento em estágios (com pipeline)

• Caches

• Memória virtual

Page 2: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 2 José Delgado © 2012

A microprogramação é sequencial

• A microprogramação divide o processamento de uma instrução em vários estágios: – Busca instrução (BI)

– Descodifica instrução (DI)

– Busca operandos (BO)

– Executa instrução (EI)

– Escreve resultado (ER)

BI DI BO EI ER BI DI BO EI ER BI DI BO EI ER

Page 3: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 3 José Delgado © 2012

Processamento com pipeline

• Cada estágio é efetuado por um bloco de hardware diferente

• Começa-se a tratar da instrução seguinte mal acabe o primeiro estágio da instrução corrente.

BI DI

BI

BO

DI

BI

EI

BO

DI

BI

ER

EI

BO

DI

BI

ER

EI

BO

DI

BI

ER

EI

BO

DI

ER

EI

BO

ER

EI ER

BI DI BO EI ER BI DI BO EI ER BI DI BO EI ER

O tempo que cada instrução demora a executar mantém-se.

Mas o processador completa uma instrução por cada ciclo de relógio!

Page 4: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 4 José Delgado © 2012

Desempenho do pipeline • A latência (tempo de espera até

que uma dada instrução acabe) mantém-se. O que melhora é o ritmo (número de instruções executadas por unidade de tempo).

BI DI

BI

BO

DI

BI

EI

BO

DI

BI

ER

EI

BO

DI

BI

ER

EI

BO

DI

BI

ER

EI

BO

DI

ER

EI

BO

ER

EI ER

• Idealmente, o pipeline melhora o desempenho N vezes, mas: – Há estágios inativos durante o enchimento/esvaziamento;

– Nem todas as instruções necessitam dos estágios todos;

– A frequência do relógio é limitada pelo estágio mais lento;

– A sequência temporal foi alterada (escala de tempos sobreposta), o que cria problemas de dependências (ler um valor antes de ele ter sido produzido, por exemplo).

Page 5: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 5 José Delgado © 2012

Unidade de dados com pipeline

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

+

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução

Escreve

resultado

M

U

X

Page 6: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 6 José Delgado © 2012

Organização do pipeline

• Os registos NÃO são edge-triggered. Permitem escrita na primeira metade do relógio e leitura na segunda (incluindo os dados escritos na primeira metade – read-after-write).

• Memórias de instruções e de dados separados, para maior eficiência (na realidade, só as caches estão separadas – a ver mais tarde).

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

+

M

U

X

EA

EB

EE DE

DA

DB Endereço

M

U

X

Page 7: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 7 José Delgado © 2012

+ M

U

X

MOV – 1º estágio

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução

Escreve

resultado

Page 8: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 8 José Delgado © 2012

+ M

U

X

MOV – 2º estágio

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução

Escreve

resultado

Page 9: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 9 José Delgado © 2012

+ M

U

X

MOV – 3º estágio

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução

Escreve

resultado

Page 10: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 10 José Delgado © 2012

+ M

U

X

MOV – 4º estágio

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução

Escreve

resultado

Page 11: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 11 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 1

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos

Executa instrução Escreve

resultado

MOV

Page 12: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 12 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 2

PC

Memória

de

instruções

+1

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução Escreve

resultado

PC

+2

M

U

X

MOV ADD

Page 13: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 13 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 3

PC

Memória

de

instruções

+1

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos Executa instrução Escreve

resultado

PC

+2

M

U

X

MOV ADD JMP

Page 14: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 14 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 4

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos

Executa instrução Escreve

resultado

MOV ADD JMP . . .

Page 15: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 15 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 5

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos

Executa instrução Escreve

resultado

JMP . . . ADD . . .

Page 16: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 16 José Delgado © 2012

+ M

U

X

MOV, ADD, JMP – Passo 6

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Busca instrução Descodifica instrução

e obtém operandos

Executa instrução Escreve

resultado

. . .

Page 17: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 17 José Delgado © 2012

+ M

U

X

Controlo

PC

Memória

de

instruções

+2

M

U

X

Registos

M

U

X

ALU

Memória

de

dados

M

U

X

EA

EB

EE DE

DA

DB Endereço

EA – Endereço registo A

EB – Endereço registo B

DA – Conteúdo registo A

DB – Conteúdo registo B

DE – Dado a escrever

EE – Endereço do registo

a escrever

Controlo

Page 18: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 18 José Delgado © 2012

Conflitos de dados

• As setas indicam as dependências entre instruções: – As caudas indicam onde os registos são escritos

– As cabeças indicam onde os registos são lidos

• Setas para trás indicam conflitos de dados

• Formas de resolver o problema: – Atrasando as instruções seguintes

– Disponibilizando os dados mais cedo (data forwarding)

BI DBO EI ER

BI DBO EI ER

BI DBO EI ER

MOV R1, R2

ADD R3, R1

ADD R1, R3

R1 R2

R3 R3 + R1

R1 R1 + R3

Page 19: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 19 José Delgado © 2012

Atraso das instruções em SW

• Solução em software (implementada pelo compilador)

inserir instruções “dummy”:

BI DBO EI ER MOV R1, R2

BI DBO EI ER ADD R1, R3 R1 R1 + R3

BI DBO EI ER ADD R3, R1 R3 R3 + R1

BI DBO EI ER

BI DBO EI ER

R1 R2

NOP

NOP

BI DBO EI ER

BI DBO EI ER

BI DBO EI ER

MOV R1, R2

ADD R3, R1

ADD R1, R3

R1 R2

R3 R3 + R1

R1 R1 + R3

Page 20: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 20 José Delgado © 2012

Atraso das instruções em HW

• Solução em hardware (implementada pela unidade de controlo do processador) inserir “bolhas” (desperdiçar ciclos do estágio do pipeline):

BI DBO EI ER MOV R1, R2

EI ER ADD R1, R3 R1 R1 + R3

EI ER ADD R3, R1 R3 R3 + R1

BI DBO

BI DBO

R1 R2

ADD R3, R1

ADD R1, R3

DBO BI

BI DBO

Bolhas

BI DBO EI ER

BI DBO EI ER

BI DBO EI ER

MOV R1, R2

ADD R3, R1

ADD R1, R3

R1 R2

R3 R3 + R1

R1 R1 + R3

Page 21: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 21 José Delgado © 2012

Antecipação dos dados

• Não esperar pelo “Escreve resultado” mas usar logo os dados que já estão disponíveis no estágio de execução (saída da ALU). A escrita do resultado nos registos sucede em paralelo.

BI DBO EI ER

BI DBO EI ER

BI DBO EI ER

MOV R1, R2

ADD R3, R1

ADD R1, R3

R1 R2

R3 R3 + R1

R1 R1 + R3

Conflito

Data forwarding

Page 22: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 22 José Delgado © 2012

Antecipação dos dados (cont.)

M

U

X

IND_C_BO

Banco de

registos

Gerador de

constantes

M

U

X

ALU

RMI ROP RSA

Busca dos

Operandos

Execução da

Microinstrução

Escrita do

Resultado

M

U

X

M

U

X

IND_C_EMIND_C_ER

R

E

M

Cache

de

dadosBits de

estado

ENTR_RE

IND_C

BARR_C

IND_B

IND_A

MUX

M

U

X

M

U

X

NUM_EXC_E

Detetor de

conflitos de

dados

Page 23: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 23 José Delgado © 2012

Exercícios de pipelines

1. Um processador com um pipeline com 5 estágios é 5 vezes mais rápido

(para a mesma frequência de relógio) do que um processador sem

pipeline. Concorda com esta afirmação? Porquê? 2. Considere o código seguinte e assuma que é para ser executado num

processador com um pipeline de 4 estágios (o usado nestes slides) ADD R2, R4 ADD R5, R2

MOV R3, [R5+6] ADD R3, R5

a) Identifique todas as dependências de dados que terão problemas neste pipeline.

b) Indique que dependências poderão ser resolvidas com antecipação dos dados (data forwarding)

Page 24: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 24 José Delgado © 2012

Hierarquia de memória • Os computadores possuem uma

hierarquia de memória com vários níveis.

• As caches têm cópias das células de memória mais usadas e são de funcionamento automático.

• A memória central (ou principal) pode servir de cache do disco (memória virtual)

• O disco pode servir de cache à informação em servidores.

• Os “mirrors” são servidores que atuam como caches de outros.

Cache nível 2

(RAM estática)

4 MB

Memória central

(RAM dinâmica)

2 GB

Disco

300 GB

Processador

registos

Cache 32 KB

men

or

tem

po

de

ace

sso

maio

r cap

acid

ad

e, men

or cu

sto

Page 25: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 25 José Delgado © 2012

PEPE com caches

• As caches são pequenas memórias internas (mais rápidas

que a memória externa) que contêm os dados e instruções

mais usados (dão ao núcleo do processador a ilusão de

memórias separadas).

Processador

Núcleo do

processador

Cache de

instruções

Cache de

dados

Interface

de

memória

Memória

principal

(dados e

instruções)

instruções

dados

dados

endereços

dados/instruções

endereços

de instruções

endereços

de dados

WR

RD

Page 26: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 26 José Delgado © 2012

Princípios de funcionamento

das caches • Felizmente, os programas acedem à memória com:

– Localidade temporal. Se um endereço for acedido agora, há uma grande probabilidade de ser acedido no futuro próximo (ciclos, rotinas de invocação frequente, dados importantes);

– Localidade espacial. Se um endereço for acedido, a probabilidade de os próximos acessos serem em endereços próximos é grande (execução sequencial, ciclos, arrays cujos dados são acedidos sequencialmente).

• Assim, a cache só tem as células de memória mais frequentemente acedidas.

• Pode ser mais pequena que a memória completa, logo muito mais rápida sem o custo ser muito elevado.

Page 27: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 27 José Delgado © 2012

Acesso às caches

• Quando se acede a um determinado endereço: – Se a célula com esse endereço estiver na cache, o acesso é

muito rápido (cache hit);

– Se não estiver, dá-se um cache miss. Tem de se ir à memória principal, carregar essa célula na cache e repetir o acesso.

• O desempenho das caches é normalmente medido pelo hit rate (percentagem média dos acessos com cache hit, tipicamente superiores a 95%)

• Também se pode falar na miss rate (percentagem média dos acessos com cache miss = 1 – hit rate), tipicamente inferior a 5%.

Page 28: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 28 José Delgado © 2012

Desempenho das caches

• Quanto maior a cache face à memória principal, maior a hit rate.

• Tem um impacte grande no desempenho, mas também no custo (há processadores mais baratos, só por terem menos cache – na realidade, são chips iguais aos outros em que parte da cache não funciona…)

• Supondo: – Tempo de acesso da cache: 5 ns

– Tempo de acesso da memória principal: 50 ns

– Hit rate média: 95%

• Então, o tempo de acesso médio será:

0.95 * 5 ns + 0.05 * 55 ns = 7. 5 ns

• Ou seja, 50 ns/7.5 ns = 6.7 vezes mais rápido do que se só tivéssemos a memória principal

Page 29: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 29 José Delgado © 2012

0000 0000

0000 0001

0000 0010

0000 0011

0000 0100

0000 0101

0000 0110

0000 0111

1111 0000

1111 0001

1111 0010

1111 0011

1111 0100

1111 0101

1111 0110

1111 0111 etiqueta índice

2 bits 6 bits

. . . . . . 00

01

10

11

etiqueta dados

endereço

memória

0

0

0

0

válido

cache

Caches de mapeamento direto

• Cada célula da cache só pode ter

uma das células de memória que

tenham o mesmo índice

• A etiqueta identifica o resto do

endereço (distinguindo entre

células com o mesmo índice)

000001 1

111101 1

111100 1

000001 1

Page 30: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 30 José Delgado © 2012

Como saber se é um cache hit? • Exemplo com um endereço (de byte) de 32 bits, um bus de dados

de 32 bits e uma cache de mapeamento direto de 1K palavras:

0

1

1 bit 20 bits 32 bits

validade etiqueta dados

2

3

. . .

1021

1022

1023

. . .

=? Cache hit

pro

cessad

or

Endereço (32 bits)

10 20 2

byte

Page 31: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 31 José Delgado © 2012

E se for um cache miss? • O controlador da cache carrega automaticamente a palavra em

falta (o processador pode ter de esperar). Em seguida repete o acesso (que já dá cache hit).

0

1

1 bit 20 bits 32 bits

validade etiqueta dados

2

3

. . .

1021

1022

1023

. . .

Endereço (32 bits)

10 20

1 Memória principal

2 byte

Page 32: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 32 José Delgado © 2012

Localidade espacial • Ter na cache as palavras recentemente acedidas

explora a localidade temporal, mas não a espacial.

• A localidade espacial pode ser aproveitada lendo para a cache não uma mas várias palavras, de endereços consecutivos (bloco).

• Assim, enquanto o processador aceder aos endereços das palavras no bloco não será necessário efetuar carregamentos na cache (porque dá cache hit).

• O bloco passa a ser a unidade de leitura e escrita da memória principal.

Page 33: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 33 José Delgado © 2012

Cache com blocos de 4 palavras

0

1

Validade (1 bit) Etiqueta (20 bits)

Dados (4 x 32 bits)

2

. . .

. . .

253

254

255

. . .

=?

Cache hit processador

Endereço (32 bits)

8 20

Multiplexer

2 2 Byte na palavra

Page 34: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 34

• Quais os endereços (de byte) das palavras no

mesmo bloco (que partilham a mesma etiqueta)? 3080H 0…00 0011 0000 1000 0000 3084H 0…00 0011 0000 1000 0100 3088H 0…00 0011 0000 1000 1000 308CH 0…00 0011 0000 1000 1100

• Onde é armazenada a

palavra com endereço

(de byte) 03088H?

• Endereço em binário:

0...00 0011 0000 1000 1000

José Delgado © 2012

0 1

Validade (1 bit) Etiqueta (20 bits)

Dados (4 x 32 bits)

2 . . .

. . .

253 254 255

8

=?

Cache hit processador

Endereço (32 bits)

8 20

Multiplexer

2

Exemplo (endereços de byte)

palavra índice etiqueta

byte 2

byte

20 8 2 2

Page 35: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 35 José Delgado © 2012

Mapeamento associativo • O mapeamento direto tem o problema de dois blocos

com o mesmo índice não poderem coexistir na cache, mesmo que: – os dois blocos estejam a ser muito usados

– o resto da cache esteja vazia!!!

• No mapeamento associativo qualquer bloco pode ocupar qualquer posição na cache, mas : – A etiqueta tem de ser o endereço todo (para distinguir

quaisquer blocos), exceto os bits de endereço da palavra dentro do bloco

– A procura do bloco (para ver se é cache hit) já não é por índice. Tem de se comparar o endereço com a etiqueta em todos os blocos ao mesmo tempo (para ser rápido)

Page 36: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 36 José Delgado © 2012

Implementação da associatividade

=?

=?

=?

=?

28

Cache hit

Endereço

(32 bits)

2

• Uma cache associativa precisa de muito hardware!

byte

2

Page 37: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 37 José Delgado © 2012

Mapeamento associativo por conjuntos de K vias

• Uma solução intermédia é usar K caches de mapeamento direto e fazer a procura em todas elas em paralelo (mapeamento associativo de K vias).

• Uma linha das várias caches de mapeamento direto é um conjunto (uma cache associativa).

=? =?

hit

etiqueta índice

palavra dentro

do bloco

conjunto conjunto conjunto Via 0 Via 1

byte

Page 38: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 38 José Delgado © 2012

Variabilidade entre extremos • Uma cache com N blocos pode ter K vias (K [0, N-1]),

cada uma com N/K conjuntos de K blocos.

• Dentro de cada via o mapeamento é direto.

0

1

2

3

4

5

6

7

1 via,

8 conjuntos com

1 bloco cada

2 vias,

4 conjuntos com

2 blocos cada

0

1

2

3

4 vias,

2 conjuntos com

4 blocos cada

0

1

8 vias, 1 conjunto com 8 blocos

0

Mapeamento direto

Mapeamento associativo

Page 39: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 39 José Delgado © 2012

Política de substituição • Onde colocar uma célula de memória que se foi buscar

à memória principal devido a um cache miss? – Caches de mapeamento direto: na célula indicada pelo índice

– Caches de mapeamento completamente associativo:

• Com lugares vagos: num lugar vago qualquer

• Cheia: no lugar da célula usada menos recentemente (LRU – Least Recently Used)

• Na prática, costuma usar-se um contador para ir escrevendo na célula seguinte, independentemente de estar cheia ou vazia, de ter sido muito usada ou não. É um método simples e não muito pior que os anteriores

– Caches associativas com K vias: obtém-se o conjunto através do índice e escolhe-se uma via

Page 40: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 40 José Delgado © 2012

Política de escrita • Quando a célula está na cache (write hit):

– Write-through: escreve-se na cache e na memória principal

– Write-back: escreve-se só na cache e só se atualiza a

memória principal quando o bloco tem de sair da cache

• Quando a célula NÃO está na cache (write miss):

– Write around: escreve na memória principal sem escrever na

cache (bom se a célula não for lida a curto prazo)

– Write allocate: faz um cache miss (carrega a célula) e faz write

through

Page 41: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 41 José Delgado © 2012

Exercícios de caches 1. Considere uma cache de mapeamento direto com capacidade para 8

Kbytes de dados e blocos de 8 palavras de 32 bits, a usar por um processador de 32 bits, com endereçamento de byte e 32 bits de endereço.

a) Quantos bits deve ter a etiqueta de cada bloco?

b) Quantos blocos é que a cache consegue armazenar simultaneamente?

c) Indique em que bloco (numerado entre 0 e o número obtido na alínea anterior menos um) ficará armazenada a palavra com o endereço 1000H. Dê a sua resposta em hexadecimal.

d) Indique os endereços das palavras que ficam no mesmo bloco que a palavra com o endereço 1000H.

e) Dê o endereço (à sua escolha) de duas palavras que nunca poderão estar ao mesmo tempo na cache e explique porquê.

f) Supondo que, para além dos dados, a cache tem de guardar as etiquetas e os bits de validade, indique o número total de bits que a cache tem de poder armazenar.

g) Indique qual o overhead da cache em termos de capacidade, isto é, o rácio

dosbits de danúmero de

al de bitsnúmero tot

Page 42: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 42 José Delgado © 2012

Exercícios de caches (cont.) 2. Pretende-se escolher um sistema de cache para um determinado

processador. Assume-se 8 blocos, cada um com 1 palavra do processador, mas qual o melhor tipo de cache? Para melhor se aferir o comportamento dos vários tipos de cache dispõe-se de um simulador em que se regista os acessos à referida cache. No simulador executa-se um benchmark (programa de teste) que acede aos seguintes endereços (em decimal): 1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17. Admita que a cache está inicialmente vazia e que o algoritmo de substituição de blocos é LRU (quando se aplicar).

a) Preenchendo as tabelas seguintes (são dadas as duas primeiras linhas para servir de exemplo), represente para os tipos de cache nelas indicados:

i. os sucessivos conteúdos da cache (usando a notação M[endereço] para representar o conteúdo de uma dada posição de memória)

ii. o tipo de acesso (hit ou miss)

iii. a miss rate

b) Em que medida é que o aumento da dimensão da cache (mais blocos ou mais vias, conforme o caso) para o dobro melhoraria a miss rate de cada um dos sistemas referidos, no caso deste benchmark?

Page 43: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 43 José Delgado © 2012

Exercícios (endereços de palavra) Caso A - Cache de mapeamento direto com 8 blocos de 1 palavra cada

Endereço memória

hit ou miss

Nº de bloco

0 1 2 3 4 5 6 7

1 miss M[1]

4 miss M[1] M[4]

8

5

20

17

19

56

9

11

4

43

5

6

9

17

Miss rate %

Page 44: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 44 José Delgado © 2012

Caso B - Cache associativa de 2 vias com um total de 8 blocos de 1 palavra cada

Endereço memória

hit ou miss

Nº de bloco via 0 Nº de bloco via 1

0 1 2 3 0 1 2 3

1 miss M[1]

4 miss M[4] M[1]

8

5

20

17

19

56

9

11

4

43

5

6

9

17

Miss rate %

Exercícios (endereços de palavra)

Page 45: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 45 José Delgado © 2012

Caso C - Cache associativa de 4 vias com um total de 8 blocos de 1 palavra cada

Endereço memória

hit ou miss

Nº de bloco via 0 Nº de bloco via 1 Nº de bloco via 2 Nº de bloco via 3

0 1 0 1 0 1 0 1

1 miss M[1]

4 miss M[4] M[1]

8

5

20

17

19

56

9

11

4

43

5

6

9

17

Miss rate %

Exercícios (endereços de palavra)

Page 46: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 46 José Delgado © 2012

Caso D - Cache totalmente associativa com um total de 8 blocos de 1 palavra cada

Endereço memória

hit ou miss

Nº de bloco

0 1 2 3 4 5 6 7

1 miss M[1]

4 miss M[1] M[4]

8

5

20

17

19

56

9

11

4

43

5

6

9

17

Miss rate %

Exercícios (endereços de palavra)

Page 47: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 47 José Delgado © 2012

Memória virtual • Mecanismo que permite tratar a memória principal como cache de

uma memória virtual (não existe na realidade) igual ao somatório dos espaços de endereçamento dos vários processos.

• As zonas de memória virtual não carregadas em memória principal e com dados/código dos processos estão em disco (swap file)

• O mecanismo de tradução de endereços virtuais (os que os processos “veem”) para físicos é transparente e automático.

• Também atua como mecanismo de proteção (porque um processo não tem acesso ao espaço de endereçamento dos outros).

Page 48: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 48 José Delgado © 2012

Espaço de endereçamento

virtual • O espaço de endereçamento virtual existe parte em memória física

e parte em disco.

Endereços virtuais Endereços físicos

Endereços no disco

Tradução de

Endereços

Page 49: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 49 José Delgado © 2012

Memória virtual paginada • Para otimizar, o espaço de endereçamento é dividido em páginas,

todas de igual dimensão (4 Kbytes, por exemplo).

• Assim, apenas é necessário traduzir o endereço de base da página, de virtual para físico.

• Os espaços de endereçamento virtual e físico podem ter dimensões diferentes.

Nº página virtual Deslocamento

Nº página física Deslocamento

Tradução virtual físico

0

0 11

11 12 31

31 12

Page 50: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 50 José Delgado © 2012

Tabela de páginas

Nº página virtual Deslocamento

0 11 12 31

Nº página física Deslocamento

0 11 31 12

Registo com

endereço base

da tabela

Tabela de páginas

“1” se a página

estiver carregada em

memória

Page 51: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 51 José Delgado © 2012

Tamanho da tabela de páginas

Nº página virtual Deslocamento

0 11 12 31

Nº página física Deslocamento

0 31

Registo com

endereço base

da tabela

Tabela de páginas

“1” se a página

estiver carregada em

memória 11 12

• Assim, a tabela de páginas: – é feita em vários níveis hierárquicos

– só tem as entradas necessárias

– está, ela própria, sujeita ao mecanismo de memória virtual

• Se o espaço virtual for de 32 bits (4 Gbytes) e a página for de 4 Kbytes, então a tabela de páginas tem 1 M entradas de 32 bits. Ou seja, gasta 4 Mbytes!

• Se o espaço virtual for de 48 bits, gasta 64 K vezes mais, ou 256 Gbytes!!!

Page 52: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 52 José Delgado © 2012

Tabela de páginas hierárquica

4 Kbytes

páginas físicas

1 K

entradas

(4 Kbytes)

. . .

. . .

Tabelas de páginas

. . .

. . .

deslocamento

Diretório registo

• As próprias tabelas de páginas estão na memória virtual (sujeitas a swapping), exceto o diretório.

Nº de página virtual

12 bits 10 bits 10 bits

Page 53: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 53 José Delgado © 2012

Tradução de endereços

• A tradução do número de página virtual para físico implica aceder às tabelas.

4 Kbytes

páginas físicas

1 K

entradas

(4 Kbytes)

. . .

. . .

Tabelas de páginas

. . .

. . .

deslocamento

Diretório registo

Nº de página virtual

12 bits 10 bits 10 bits

• É incomportável percorrer as várias tabelas em cada acesso à memória!!!

• Solução: cache que tenha a tradução de endereços das páginas mais usadas.

• Se houver um cache hit, a cache diz logo qual o endereço físico da página.

• Se houver um cache miss, então é preciso percorrer as várias tabelas.

Page 54: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 54 José Delgado © 2012

TLB • TLB = Translation Lookaside Buffer (cache de

tradução de endereços virtuais para físicos).

Etiqueta Dados

Número de página virtual Deslocamento

Número de página física Deslocamento

Váli

do

Alt

erad

a

Page 55: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 55 José Delgado © 2012

Falta de página (page fault)

• Page fault – acesso a uma página que não está carregada em memória.

4 Kbytes

páginas físicas

1 K

entradas

(4 Kbytes)

. . .

. . .

Tabelas de páginas

. . .

. . .

deslocamento

Diretório registo

Nº de página virtual

12 bits 10 bits 10 bits

• A ocorrência de uma page fault gera uma exceção. O sistema operativo é responsável por percorrer as tabelas de páginas e carregar a página em falta.

• Esta operação é lenta. É preciso: – Percorrer as várias tabelas (vários acessos à memória)

– Carregar as tabelas de páginas que não estiverem em memória

– Carregar a página que originou a page fault

• Felizmente, os programas têm localidade espacial e temporal e esta operação não acontece em todos os acessos!

Page 56: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 56 José Delgado © 2012

Memória virtual + caches Endereço virtual

(32 bits) Número de página virtual Deslocamento

Etiqueta Nº página física Váli

do

A

lter

ad

a

Número de página física Deslocamento Endereço físico

(32 bits)

20 12

20

TLB

Etiqueta física Índice

=? =?

hit

16

12 4 Palavra dentro do bloco + byte

Palavra acedida Palavra acedida

Cache

Palavra pretendida

4 Kbytes

páginas físicas

1 K

entradas

(4 Kbytes)

. . .

. . .

Tabelas de páginas

. . .

. . .

deslocamento

Diretório registo

Nº de página virtual

12 bits 10 bits 10 bits

TLB fault

Page 57: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 57 José Delgado © 2012

Tipos de misses Número de página virtual Deslocamento

Etiqueta Nº página física Vá

lid

o

Alt

era

da

Número de página física Deslocamento

20 12

20

Etiqueta física Índice

=? =?

hit

16

12 4 Palavra dentro do bloco + byte

Palavra acedida Palavra acedida

• O que pode falhar no acesso: – Cache miss (um

acesso à memória)

– TLB miss (vários acessos à memória)

– Page fault (acesso ao disco)

• As cache e TLB misses medem-se em dezenas de ciclos de relógio.

• As page faults medem-se em dezenas de milissegundos (podem implicar vários acessos ao disco).

• Felizmente, estas situações são a exceção e não a regra!

. . .

. . .

. . .

. . . Page fault

Page 58: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 58 José Delgado © 2012

Exercícios de memória virtual 1. Um sistema de memória virtual tem um tamanho de página de 1000

palavras, 8 páginas virtuais e 4 páginas físicas. Assuma que inicialmente a tabela de páginas está vazia (nenhuma página carregada em memória).

a) Preencha a tabela seguinte com o estado que terá após acesso aos endereços (de palavra) virtuais 7000, 2000, 5000, 1000.

Página virtual Página física

0

1

2

3

4

5

6

7

b) Após estes acessos, quais os endereços físicos dos endereços virtuais 0, 3728, 999, 1025, 7800 e 4096 (endereços de palavra)?

c) Dê um exemplo de um endereço virtual que provoque agora uma page fault

Page 59: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 59 José Delgado © 2012

Exercícios de memória virtual 2. O TLB de um sistema de memória virtual, com 20 bits de número de

página virtual, 12 bits de número de página física e 12 bits de deslocamento dentro de cada página, está atualmente com o conteúdo indicado pela tabela seguinte.

Válida Alterada Nº pág. virtual Nº pág. física

1 1 01AF4H FFFH

0 0 0E45FH E03H

0 0 012FFH 2F0H

1 0 01A37H 788H

1 0 02BB4H 45CH

1 1 03CA0H 657H

a) Qual a dimensão de cada página? b) Qual a dimensão dos espaços de endereçamento virtual e físico? c) Indique, para cada um dos endereços virtuais seguintes, o respetivo

endereço físico (ou se originam page fault): 2BB4A65H, E45FB32H, D34E9DCH, 3CA0777H e 1AF4E06H.

d) Para cada um destes endereços, indique quais não foram, garantidamente, escritos desde que foram carregados em memória.

Page 60: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 60 José Delgado © 2012

3. Um processador tem: i. um TLB completamente associativo de 2 palavras, com algoritmo de

substituição FIFO (rotativo)

ii. uma cache de mapeamento associativo de 2 vias, com um total com 8 blocos de 1 palavra cada.

iii. uma tabela linear (um só nível) de 8 páginas virtuais, com algoritmo de substituição LRU

iv. uma memória física de 4 páginas

v. uma página com 256 palavras de dimensão

vi. endereçamento exclusivamente em palavras (bytes não)

a) Qual a dimensão, em palavras, dos espaços de endereçamento virtual e físico?

b) Assumindo que inicialmente a memória não tem nenhum programa ou dados carregados, preencha a tabela seguinte, indicando o que acontece em cada acesso aos endereços virtuais indicados e qual o estado em que o sistema fica. Use a notação M[endereço] para indicar o conteúdo da cache. No TLB indique o nº de página virtual e física. As duas primeiras colunas estão preenchidas para servir de exemplo.

Exercícios de memória virtual

Page 61: Evolução da arquitetura básica - fenix.tecnico.ulisboa.pt · José Delgado © 2012 Arquitetura de Computadores – Evolução da arquitetura básica 6 Organização do pipeline

Arquitetura de Computadores – Evolução da arquitetura básica 61 José Delgado © 2012

Endereço virtual 505 7A0 322 5F5 322 505 4C0 435 100 723

TLB 0 5 0 5 0

1 7 1

TLB miss/hit miss miss

Tabela páginas

0

1

2

3

4

5 0 0

6

7 1

Page fault/hit miss miss

Endereço físico 005 1A0

Cache

0 M[1A0]

1 M[005] M[005]

2

3

0

1

2

3

Cache miss/hit miss miss

Exercícios de memória virtual