Você está na página 1de 20

Arquitetura e Organiza

Arquitetura e Organiza

o
o
de Computadores II
de Computadores II
Universidade Federal de Pelotas
Instituto de Fsica e Matemtica
Departamento de Informtica
Bacharelado em Cincia da Computao
Prof. Jos Lus Gntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html
Aula 13
Memria Cache: organizao, acesso,
tratamento de faltas.
slide 13.2
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
ndice val. tag informao
0
1
2

1021
1022
1023
desl
endereo
31 32 . 13 12 11 . 2 1 0
10
=
20
20
acerto
32
informao
Acesso a uma Cache Mapeada Diretamente
slide 13.3
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
O nmero de entradas em uma cache deve ser potncia de
dois
O nmero total de bits necessrios implementao de
uma cache funo do tamanho da cache e do tamanho da
memria principal (i.e., do tamanho do endereo)
Nmero de Bits de uma Cache
slide 13.4
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Supondo
uma memria principal com endereos de 32 bits referenciando bytes
Uma cache mapeada diretamente com 2
n
palavras e blocos de uma
palavra (4 bytes)
Ento:
Tamanho dos tags= 32-(n+2) bits, onde 2 bits so usados para o
deslocamento e n para o ndice
Portanto, o nmero total de bits em uma cache mapeada diretamente
2
n
x (tamanho do bloco + tamanho do tag + tamanho do campo de
validade)
Tamanho da cache em questo ser 2
n
x (32+(32-n-2)+1) = 2
n
x (63-n)
Nmero de Bits de uma Cache
slide 13.5
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Exemplo
Quantos bits so necessrios para implementar uma cache mapeada
diretamente com 64 kB entradas, e blocos de uma palavra, ligada
a uma memria cujo endereo tem 32 bits?
Soluo:
64 kB=16 kpalavras = 2
14
palavras
Cada bloco tem 32 bits de informao mais o campo do tag = 32
- 14 -2 bits, mais o bit de validade
Portanto, o tamanho da cache 2
14
x (32+(32-14-2)+1) = 2
14
x 49
= 784 x 2
10
= 784 kbits
Nmero de Bits de uma Cache
slide 13.6
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Tratamento de Faltas no Acesso Cache
O Bloco de Controle deve tanto detectar quanto processar
a falta (buscando os dados na memria principal ou em outra
cache imediatamente abaixo na hierarquia)
Se a cache informar um acerto:
processamento segue (como se a informao tivesse sido
obtida na memria principal)
O bloco de controle desenvolvido anteriormente (caps 5 e 6)
pode ser usado
As memrias dos blocos operativos dos caps 5 e 6 podem ser
substitudas por caches
slide 13.7
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Se a cache informar uma falta:
O processador deve ser parado (congelando o contedo de todos
os registradores)
Um controlador separado ajuda no tratamento das faltas geradas
no acesso cache, comandando a busca da informao (bloco) na
memria principal ou na cache de prximo nvel
Uma vez que o dado tenha sido obtido, a execuo reiniciada
no ciclo que gerou a falta no acesso a cache
O processamento de uma falta na cache cria uma parada no
processamento similar s paradas do pipeline: todos os
registradores temporrios e visveis ao programador so
congelados, enquanto a informao transferida da memria
Tratamento de Faltas no Acesso Cache
slide 13.8
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Tratamento de Faltas na Cache de Instrues
Considere os Blocos Operativos Multiciclo e Pipeline do MIPS:
Se o acesso a uma instruo resultar em falta, ento o contedo
do IR no vlido (uma vez que o PC incrementado no
primeiro ciclo de relgio, tanto na verso multiciclo quanto na
verso pipeline)
necessrio comandar uma leitura no nvel inferior da
hierarquia da memria, usando o PC-4 (no caso pipeline,
recursos extras de HW sero necessrios: subtrator ou
deslocador)
Instruir a memria para realizar a leitura e esperar a resposta
(uma leitura demora muitos ciclos) e ento escrever a palavra
(instruo) na cache
slide 13.9
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Resumindo os passos para tratamento de uma falta:
1. Enviar memria o valor original do PC (= PC-4)
2. Comandar uma leitura da unidade de memria e esperar o
resultado
3. Escrever o resultado da leitura na entrada da cache,
escrevendo tambm nessa entrada, no campo tag, os bits de
mais alta ordem do endereo, e setando o bit de validade
4. Reiniciar a execuo da instruo a partir do passo nmero
1, gerando uma nova busca da instruo na cache (mas
desta vez, com a certeza de que ela ser encontrada)
Tratamento de Faltas na Cache de Instrues
slide 13.10
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Os passos para o tratamento de faltas no acesso a dados
(cache de dados) so essencialmente os mesmos que os
usados no tratamento de uma falta de instruo
Tambm necessrio parar o processador at que o dado
necessrio esteja disponvel na cache
Tratamento de Faltas na Cache de Dados
slide 13.11
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Exemplo: DECStation 3100 (MIPS R2000)
Usa o processador MIPS R2000, com pipeline idntico ao visto
em aula
Em velocidade mxima, precisa de uma instruo e um dado a
cada novo ciclo de relgio
Cache de dados separada da cache de instrues
Cada cache com 64KB (16K de palavras de 32 bits), com
blocos de uma palavra
slide 13.12
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
val. tag informao
desl
endereo
31 32 . 17 16 15 . 2 1 0
14
=
16
16
acerto
32 informao
16K
entradas
Exemplo: DECStation 3100
Deslocamento
(byte dentro
da palavra)
ndice da cache
Rtulo (tag)
Cada linha tem:
32 + 16 + 1 = 49 bits
Tamanho total da
cache: 49 x 16K
slide 13.13
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
1. Enviar o endereo para a cache apropriada
O endereo vem do PC (para leitura de instruo) ou da ULA (para
leitura de dado)
2. Se a cache sinaliza acerto, a palavra requisitada estar
disponvel nas linhas de dados. Se a cache sinalizar falta, o
endereo causador da falta deve ser enviado memria
principal (ou cache do nvel hierrquico inferior). Quando a
memria retornar a informao solicitada, esta deve ser escrita
na cache.
Passos para atender a uma solicitao de leitura (em qualquer
uma das caches, pois h sinais de controle separados):
Exemplo: DECStation 3100
slide 13.14
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Escrita na cache de dados:
Suponha que na execuo de uma instruo store o dado seja
escrito somente na cache de dados. Isto cusar uma
inconsistncia: aps, a escrita na cache, a memria principal
ter um valor diferente daquele que foi escrito na cache
Write-through: uma soluo escrever o dado tanto na cache
quanto na memria principal (esta soluo usada na
DECStation 3100)
Esquema Write-Through
slide 13.15
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
1. Indexar a cache usando os bits 15-2 do endereo
2. Escrever os bits 31-16 do endereo no campo do tag, escrever a
palavra de informao na parte reservada informao na
entrada da cache e setar o bit de validade
3. Escrever a palavra na memria principal usando o endereo
inteiro
No esquema write-through no h a necessidade de se considerar
se uma escrita gera uma falta ou um acerto na cache. Basta
escrever a palavra na cache
Processo de escrita na DECStation 3100:
Esquema Write-Through
slide 13.16
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
O esquema write-through no favorece o desempenho
Qualquer escrita faz com que a memria principal seja escrita
tambm
Os programas podem ter muitas instrues store. No gcc,
13% das instrues so store, o que pode elevar o CPI de 1,2
para 2,5 (caso o acesso memria principal demorar 10 ciclos
de relgio)
Tratamento das Escritas
slide 13.17
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Escrita na cache de dados com Buffer de escrita:
Buffer de escrita armazena o dado enquanto este aguarda para
ser escrito na memria
Aps escrever o dado na cache e no buffer de escrita, o
processador pode continuar a execuo das instrues
Se o buffer de escrita estiver cheio quando o processador tiver
que executar uma instruo de escrita, o processador precisa
parar, at que haja posio disponvel no buffer
Esquema Write-Through com Buffer de Escrita
slide 13.18
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Escrita na cache de dados com Buffer de escrita:
Se a velocidade da memria para completar as escritas for
menor que a taxa qual o processador est gerando as
escritas, nenhum buffer (por maior que seja) conseguir
resolver o problema
O tamanho do buffer de escrita depende da relao citada no
item anterior
Na DECStation 3100 o buffer de escrita tem 4 palavras
Esquema Write-Through com Buffer de Escrita
slide 13.19
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Exemplos de Taxas de Faltas
1,3 %
2,1 %
Taxa de faltas no
acesso a dados
1,2 % 1,2 % spice
5,4 % 6,1% gcc
Taxa de faltas
combinada
Taxa de faltas no
acesso a instrues
Programa
Taxas de falta obtidas com o esquema write-through da
DECStation 3100 com programas tpicos
slide 13.20
ComputaoUFPel
Arquitetura e Organizao de Computadores II
Prof. Jos Lus Gntzel
3. Hierarquia de Memria: memria cache
Escrita na cache de dados com Write-back:
No esquema write-back, quando ocorre uma escrita, o novo
valor escrito apenas no bloco da cache. Tal bloco somente
ser escrito na memria principal quando ele tiver que ser
substitudo na cache
O esquema pode aumentar bastante o desempenho,
principalmente quando o processador puder gerar escritas to
rapidamente quanto estas puderem ser tratadas pela memria
principal
Esquema Write-Back