Arquitectura de Computadores – Evolução da arquitectura básica1José Delgado © 2011 Evolução...
Transcript of Arquitectura de Computadores – Evolução da arquitectura básica1José Delgado © 2011 Evolução...
Arquitectura de Computadores – Evolução da arquitectura básica 1José Delgado © 2011
Evolução da arquitectura básica
• Processamento em estágios (com pipeline)
• Caches• Memória virtual
Arquitectura de Computadores – Evolução da arquitectura básica 2José Delgado © 2011
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
Arquitectura de Computadores – Evolução da arquitectura básica 3José Delgado © 2011
Processamento com pipeline
• Cada estágio é efectuado 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!
Arquitectura de Computadores – Evolução da arquitectura básica 4José Delgado © 2011
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 inactivos 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).
Arquitectura de Computadores – Evolução da arquitectura básica 5José Delgado © 2011
Unidade de dados com pipeline
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
+
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos Executa instrução Escreve
resultado
MUX
Arquitectura de Computadores – Evolução da arquitectura básica 6José Delgado © 2011
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óriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
+
MUX
EA
EBEEDE
DA
DBEndereço
MUX
Arquitectura de Computadores – Evolução da arquitectura básica 7José Delgado © 2011
+ MUX
MOV – 1º estágio
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos Executa instrução Escreve
resultado
Arquitectura de Computadores – Evolução da arquitectura básica 8José Delgado © 2011
+ MUX
MOV – 2º estágio
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos Executa instrução Escreve
resultado
Arquitectura de Computadores – Evolução da arquitectura básica 9José Delgado © 2011
+ MUX
MOV – 3º estágio
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos Executa instrução Escreve
resultado
Arquitectura de Computadores – Evolução da arquitectura básica 10José Delgado © 2011
+ MUX
MOV – 4º estágio
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos Executa instrução Escreve
resultado
Arquitectura de Computadores – Evolução da arquitectura básica 11José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 1
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
MOV
Arquitectura de Computadores – Evolução da arquitectura básica 12José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 2
PC
Memóriade
instruções
+1
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
PC
+2
MUX
MOVADD
Arquitectura de Computadores – Evolução da arquitectura básica 13José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 3
PC
Memóriade
instruções
+1
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
PC
+2
MUX
MOVADDJMP
Arquitectura de Computadores – Evolução da arquitectura básica 14José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 4
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
MOVADDJMP. . .
Arquitectura de Computadores – Evolução da arquitectura básica 15José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 5
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
JMP. . . ADD. . .
Arquitectura de Computadores – Evolução da arquitectura básica 16José Delgado © 2011
+ MUX
MOV, ADD, JMP – Passo 6
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Busca instrução Descodifica instruçãoe obtém operandos
Executa instrução Escreve resultado
. . .
Arquitectura de Computadores – Evolução da arquitectura básica 17José Delgado © 2011
+ MUX
Controlo
PC
Memóriade
instruções
+2
MUX
Registos
MUX
ALU
Memóriade
dados
MUX
EA
EBEEDE
DA
DBEndereço
EA – Endereço registo AEB – Endereço registo BDA – Conteúdo registo ADB – Conteúdo registo BDE – Dado a escreverEE – Endereço do registo a escrever
Controlo
Arquitectura de Computadores – Evolução da arquitectura básica 18José Delgado © 2011
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
Arquitectura de Computadores – Evolução da arquitectura básica 19José Delgado © 2011
Atraso das instruções em SW
• Solução em software (implementada pelo compilador) inserir instruções “dummy”:
BI DBO EI ERMOV R1, R2
BI DBO EI ERADD R1, R3 R1 R1 + R3
BI DBO EI ERADD 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
Arquitectura de Computadores – Evolução da arquitectura básica 20José Delgado © 2011
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 ERMOV R1, R2
EI ERADD R1, R3 R1 R1 + R3
EI ERADD R3, R1 R3 R3 + R1
BI DBO
BI DBO
R1 R2
ADD R3, R1
ADD R1, R3
DBOBI
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
Arquitectura de Computadores – Evolução da arquitectura básica 21José Delgado © 2011
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
Arquitectura de Computadores – Evolução da arquitectura básica 22José Delgado © 2011
Antecipação dos dados (cont.)
MUX
IND_C_BO
Banco de registos
Gerador de constantes
MUX
ALU
RMI ROP RSA
Busca dos Operandos
Execução da Microinstrução
Escrita do Resultado
MUX
MUX
IND_C_EMIND_C_ER
REM
Cache de
dadosBits deestado
ENTR_RE
IND_CBARR_C
IND_B
IND_A
MUX
MUX
MUX
NUM_EXC_EDetector de conflitos de
dados
Arquitectura de Computadores – Evolução da arquitectura básica 23José Delgado © 2011
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, R4ADD 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)
Arquitectura de Computadores – Evolução da arquitectura básica 24José Delgado © 2011
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 actuam como caches de outros.
Cache nível 2(RAM estática)
4 MB
Memória central(RAM dinâmica)
2 GB
Disco300 GB
Processador
registos
Cache 32 KB
men
or t
emp
o d
e ac
esso
maior cap
acidad
e, men
or custo
Arquitectura de Computadores – Evolução da arquitectura básica 25José Delgado © 2011
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
Arquitectura de Computadores – Evolução da arquitectura básica 26José Delgado © 2011
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.
Arquitectura de Computadores – Evolução da arquitectura básica 27José Delgado © 2011
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%.
Arquitectura de Computadores – Evolução da arquitectura básica 28José Delgado © 2011
Desempenho das caches• Quanto maior a cache face à memória principal, maior
a hit rate. • Tem um impacto grande no desempenho, mas também
no custo (os Celerons, mais baratos, são Pentiums com metade da cache)
• 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ó tivessemos a memória principal
Arquitectura de Computadores – Evolução da arquitectura básica 29José Delgado © 2011
0000 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
1111 00001111 00011111 00101111 00111111 01001111 01011111 01101111 0111
etiqueta índice2 bits6 bits
. . . . . .00011011
etiqueta dados
endereço
memória
0000
válido
cache
Caches de mapeamento directo
• 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)
0000011
111101111110010000011
Arquitectura de Computadores – Evolução da arquitectura básica 30José Delgado © 2011
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 directo de 1K palavras:
01
1 bit 20 bits 32 bitsvalidade etiqueta dados
23
. . .102110221023
. . .
=? Cache hit
processador
Endereço (32 bits)
1020 2byte
Arquitectura de Computadores – Evolução da arquitectura básica 31José Delgado © 2011
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).
01
1 bit 20 bits 32 bitsvalidade etiqueta dados
23
. . .102110221023
. . .
Endereço (32 bits)
1020
1Memória principal
2byte
Arquitectura de Computadores – Evolução da arquitectura básica 32José Delgado © 2011
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 palavra mas várias de endereços consecutivos (bloco).
• Assim, enquanto o processador aceder aos endereços das palavras no bloco não será necessário efectuar carregamentos na cache (porque dá cache hit).
• O bloco passa a ser a unidade de leitura e escrita da memória.
Arquitectura de Computadores – Evolução da arquitectura básica 33José Delgado © 2011
Cache com blocos de 4 palavras
01
Validade (1 bit) Etiqueta (20 bits)
Dados (4 x 32 bits)
2
. . .
. . .253254255
. . .
=?
Cache hit processador
Endereço (32 bits)
820
Multiplexer
2 2 Byte na palavra
Arquitectura de Computadores – Evolução da arquitectura 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 00003084H 0…00 0011 0000 1000 01003088H 0…00 0011 0000 1000 1000308CH 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 © 2011
01
Validade (1 bit) Etiqueta (20 bits)
Dados (4 x 32 bits)
2. . .
. . .253254255
8
=?
Cache hitprocessador
Endereço (32 bits)
820
Multiplexer
2
Exemplo (endereços de byte)
palavraíndiceetiqueta
byte2
byte
20 8 2 2
Arquitectura de Computadores – Evolução da arquitectura básica 35José Delgado © 2011
Mapeamento associativo• O mapeamento directo 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), excepto 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)
Arquitectura de Computadores – Evolução da arquitectura básica 36José Delgado © 2011
Implementação da associatividade
=?
=?
=?
=?
28
Cache hit
Endereço(32 bits)
2
• Uma cache associativa precisa de muito hardware!
byte
2
Arquitectura de Computadores – Evolução da arquitectura básica 37José Delgado © 2011
Mapeamento associativo por conjuntos de K vias
• Uma solução intermédia é usar K caches de mapeamento directo e fazer a procura em todas elas em paralelo (mapeamento associativo de K vias).
• Uma linha das várias caches de mapeamento directo é um conjunto (uma cache associativa).
=?=?
hit
etiqueta índice
palavra dentro do bloco
conjuntoconjuntoconjunto Via 0 Via 1
byte
Arquitectura de Computadores – Evolução da arquitectura básica 38José Delgado © 2011
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 é directo.
01234567
1 via,8 conjuntos com
1 bloco cada
2 vias,4 conjuntos com
2 blocos cada0123
4 vias,2 conjuntos com
4 blocos cada
01
8 vias, 1 conjunto com 8 blocos
0
Mapeamento directo
Mapeamento associativo
Arquitectura de Computadores – Evolução da arquitectura básica 39José Delgado © 2011
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 directo: 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
Arquitectura de Computadores – Evolução da arquitectura básica 40José Delgado © 2011
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 actualiza 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
Arquitectura de Computadores – Evolução da arquitectura básica 41José Delgado © 2011
Exercícios de caches1. Considere uma cache de mapeamento directo 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
Arquitectura de Computadores – Evolução da arquitectura básica 42José Delgado © 2011
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?
Arquitectura de Computadores – Evolução da arquitectura básica 43José Delgado © 2011
Exercícios (endereços de palavra)Caso A - Cache de mapeamento directo com 8 blocos de 1 palavra cada
Endereçomemó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 %
Arquitectura de Computadores – Evolução da arquitectura básica 44José Delgado © 2011
Caso B - Cache associativa de 2 vias com um total de 8 blocos de 1 palavra cada
Endereçomemó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)
Arquitectura de Computadores – Evolução da arquitectura básica 45José Delgado © 2011
Caso C - Cache associativa de 4 vias com um total de 8 blocos de 1 palavra cada
Endereçomemó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)
Arquitectura de Computadores – Evolução da arquitectura básica 46José Delgado © 2011
Caso D - Cache totalmente associativa com um total de 8 blocos de 1 palavra cada
Endereçomemó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)
Arquitectura de Computadores – Evolução da arquitectura básica 47José Delgado © 2011
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 “vêem”) para físicos é transparente e automático.
• Também actua como mecanismo de protecção (porque um processo não tem acesso ao espaço de endereçamento dos outros).
Arquitectura de Computadores – Evolução da arquitectura básica 48José Delgado © 2011
Espaço de endereçamento virtual
• O espaço de endereçamento virtual existe parte em memória física, parte em disco.
Endereços virtuais Endereços físicos
Endereços no disco
Tradução deEndereços
Arquitectura de Computadores – Evolução da arquitectura básica 49José Delgado © 2011
Memória virtual paginada• Para optimizar, 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
011
111231
31 12
Arquitectura de Computadores – Evolução da arquitectura básica 50José Delgado © 2011
Tabela de páginas
Nº página virtual Deslocamento
0111231
Nº página física Deslocamento
01131 12
Registo com endereço base
da tabela
Tabela de páginas
“1” se a página estiver carregada em
memória
Arquitectura de Computadores – Evolução da arquitectura básica 51José Delgado © 2011
Tamanho da tabela de páginas
Nº página virtual Deslocamento
0111231
Nº página física Deslocamento
031
Registo com endereço base
da tabela
Tabela de páginas
“1” se a página estiver carregada em
memória1112
• 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!!!
Arquitectura de Computadores – Evolução da arquitectura básica 52José Delgado © 2011
Tabela de páginas hierárquica
4 Kbytes
páginas físicas
1 Kentradas
(4 Kbytes)
. . .
. . .
Tabelas de páginas
. . .
. . .
deslocamento
Directórioregisto
• As próprias tabelas de páginas estão na memória virtual (sujeitas a swapping), excepto o directório.
Nº de página virtual12 bits10 bits10 bits
Arquitectura de Computadores – Evolução da arquitectura básica 53José Delgado © 2011
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 Kentradas
(4 Kbytes)
. . .
. . .
Tabelas de páginas
. . .
. . .
deslocamento
Directórioregisto
Nº de página virtual
12 bits10 bits10 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.
Arquitectura de Computadores – Evolução da arquitectura básica 54José Delgado © 2011
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ál
ido
Alt
erad
a
Arquitectura de Computadores – Evolução da arquitectura básica 55José Delgado © 2011
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 Kentradas
(4 Kbytes)
. . .
. . .
Tabelas de páginas
. . .
. . .
deslocamento
Directórioregisto
Nº de página virtual
12 bits10 bits10 bits
• A ocorrência de uma page fault gera uma excepção. O sistema operativo é reponsá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!
Arquitectura de Computadores – Evolução da arquitectura básica 56José Delgado © 2011
Memória virtual + cachesEndereço virtual
(32 bits)Número de página virtual Deslocamento
Etiqueta Nº página físicaVál
ido
Alt
erad
a
Número de página física DeslocamentoEndereço físico (32 bits)
20 12
20
TLB
Etiqueta física Índice
=?=?
hit
16
12 4Palavra dentro do bloco + byte
Palavra acedidaPalavra acedida
Cache
Palavra pretendida
4 Kbytes
páginas físicas
1 Kentradas
(4 Kbytes)
. . .
. . .
Tabelas de páginas
. . .
. . .
deslocamento
Directórioregisto
Nº de página virtual
12 bits10 bits10 bits
TLB fault
Arquitectura de Computadores – Evolução da arquitectura básica 57José Delgado © 2011
Tipos de missesNúmero de página virtual Deslocamento
Etiqueta Nº página físicaVál
ido
Alt
erad
a
Número de página física Deslocamento
20 12
20
Etiqueta física Índice
=?=?
hit
16
12 4Palavra dentro do bloco + byte
Palavra acedidaPalavra 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 milisegundos (pode implicar vários acessos ao disco).
• Felizmente, estas situações são a excepção e não a regra!
. . .
. . .
. . .
. . .Page fault
Arquitectura de Computadores – Evolução da arquitectura básica 58José Delgado © 2011
Exercícios de memória virtual1. 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
7b) 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
Arquitectura de Computadores – Evolução da arquitectura básica 59José Delgado © 2011
Exercícios de memória virtual2. 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á actualmente com o conteúdo indicado pela tabela seguinte.
Válida Alterada Nº pág. virtual Nº pág. física
1 1 01AF4H FFFH0 0 0E45FH E03H0 0 012FFH 2F0H1 0 01A37H 788H1 0 02BB4H 45CH1 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 respectivo
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.
Arquitectura de Computadores – Evolução da arquitectura básica 60José Delgado © 2011
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 LRUiv. uma memória física de 4 páginasv. uma página com 256 palavras de dimensãovi. 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
Arquitectura de Computadores – Evolução da arquitectura básica 61José Delgado © 2011
Endereço virtual 505 7A0 322 5F5 322 505 4C0 435 100 723
TLB0 5 0 5 01 7 1
TLB miss/hit miss miss
Tabela páginas
012345 0 067 1
Page fault/hit miss missEndereço físico 005 1A0
Cache
0 M[1A0]1 M[005] M[005]230123
Cache miss/hit miss miss
Exercícios de memória virtual