Академический Документы
Профессиональный Документы
Культура Документы
Contm guras de Computer Organization and Design (cap. 7, Ap. B), D. Patterson & J. Hennessey, 3a . ed., Elsevier
Tpicos
Memrias Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache Memria virtual
2/79
2007-04-02
Memrias
Memria virtual
3/79
2007-04-02
Taxonomia
Registos e bancos de registos permitem guardar pequenas quantidades de dados. Para maiores quantidades, usam-se memrias de acesso directo. RAM = random access memory (memria de acesso aleatrio?): permitem leitura e escrita. ROM = read-only memory: pemitem apenas leitura. A maior parte das memrias RAM perde os dados quando desligada a alimentao (memria voltil). Excepes: (E)EPROM: (Electrically) erasable programmable ROM memrias FLASH. Dois tipos de memrias RAM volteis: SRAM: memria esttica (cada clula de memria um ip-op); DRAM: memria dinmica (cada clula deve ser actualizada periodicamente).
4/79
2007-04-02
N-1
endereo (linha)
2 1 0 M bits
dados (M bits)
Para P linhas de endereo: N = 2P Abreviaturas: 210 = 1024 = 1 K, 220 = 1048576 = 1 M O porto de dados bidireccional: preciso especicar o tipo de acesso (leitura ou escrita). M a largura da memria.
5/79
2007-04-02
Memrias estticas
As memrias estticas so as que se aproximam mais do modelo conceptual de funcionamento.
Address
21
Din[15-0]
16
Para aceder memria: activar o circuito: chip select (CS) activo especicar o tipo de acesso: activar output enable (leitura) OU write enable (escrita).
6/79
2007-04-02
Ao contrrio de um banco de registos, o circuito de sada no pode ser baseado num multiplexador: uma SRAM 64K x 1 precisaria de ter um multiplexador 65536-para-1. Soluo: utilizar buffer tristate, cuja sada pode ter 3 estados (0, 1 ou alta-impedncia). No estado de alta-impedncia, a sada do circuito est desligada. O estado da sada determinado por uma entrada de controlo: select. Todas as sadas so ligadas em paralelo. No pode existir mais que uma sada activa (i.e., no em alta-impedncia) em cada instante.
Circuito de sada:
Select 0 In Enable Out
Data 0
Select 1 In
Enable Out
Data 1
Select 2 In
Enable Out
Output
Data 2
Select 3 In
Enable Out
Data 3
8/79
2007-04-02
D C Write enable
D latch Q
D C
D latch Q
Enable
Enable
2-to-4 decoder
D C
D latch Q
D C
D latch Q
Enable
Enable
D Address C
D latch Q
D C
D latch Q
Enable
Enable
SRAM 4x2
D C D latch Q D C D latch Q
Enable
Enable
Dout[1]
Dout[0]
9/79
2007-04-02
Address [90]
1024
Mux
Mux
Mux
Mux
Mux
Mux
Mux
Mux
Dout7
Dout6
Dout5
Dout4
Dout3
Dout2
Dout1
Dout0
Organizao tpica de uma memria 4Mx8 como uma coleco de blocos de memria 4Kx1024. Os blocos MUX so realizados por buffers de trs estados.
10/79
2007-04-02
WE
Endereo
End1
End2
End1
Dados
Dado1
Dado2
Dado1
Leitura
OE identica operao de leitura; endereos devem estar estveis antes de o sinal ser activado.
ArqComp: Sistemas de memria 11/79 2007-04-02
Transstor (interruptor)
Escrita: Valor a armazenar colocado na linha de bit; wordline activada para fechar interruptor. Leitura: Linha de bit pr-carregada a meia escala; wordline activada para fechar interruptor; a variao de tenso na linha de bit amplicada para obter valor nal.
13/79
2007-04-02
Mux
Dout
Endereo: 11+11 bits. Exemplo: DRAM 4Mx1: 11 bits seleccionam a linha, que copiada para 2048 trincos. Multiplexer selecciona 1 de 2048 entradas.
ArqComp: Sistemas de memria 14/79 2007-04-02
DRAM: Leitura
Exemplo simplicado de leitura (CE=1, OE=0, WE=0). RAS = Row Address Strobe (endereo especica linha) CAS = Column Address Strobe (endereo especica coluna)
RAS
CAS
Endereo
End. Linha
End. Coluna
Dados
Dados lidos
15/79
2007-04-02
DRAM: Escrita
RAS
CAS
Endereo
End. Linha
End. Coluna
Dados
Dados a escrever
16/79
2007-04-02
Ram15
d [59:56]
d[63:60]
17/79
2007-04-02
Memrias
Memria virtual
18/79
2007-04-02
Memrias
Memria virtual
19/79
2007-04-02
A memria fsica de um computador geralmente composta por vrios mdulos (circuitos integrados, DIMM, etc.) por forma a ser possvel obter maiores capacidades de armazenamento. Para alm dos mdulos de memria necessrio ter um circuito de descodicao de endereos que selecciona quais os mdulos activos durante um dado acesso (com base no endereo apresentado pelo CPU). Organizao tpica: os bits menos signicativos so ligados directamente aos mdulos individuais, enquanto os bits mais signicativos so usados para fazer a seleco dos mdulos. Linhas de dados podem ser partilhadas por mais que um mdulo (usando buffers tristate). Alguns mdulos usam internamente esta abordagem.
20/79
2007-04-02
N bits End[N-1:0]
CS dados CS dados CS dados CS dados
dados[ ]
Endereo tem M bits, dos quais M-N podem ser usados na descodificao
Para memrias DRAM a descodicao de endereos mais complicada. Apenas abordaremos o caso das memrias SRAM.
ArqComp: Sistemas de memria 21/79 2007-04-02
Para que esta organizao funcione bem, a descodicao de endereos deve garantir que: Para o conjunto de todos os mdulos que partilham uma mesma linha de dados: apenas um (ou nenhum) deve ser activado durante um acesso. Se esta condio no for respeitada, os componentes podem ser denitivamente danicados. O mapeamento de endereos para componentes pode ser classicado de acordo com o nmero de endereos que mapeado na mesma posio fsica: total: 1 endereo 1 posio parcial: N endereos 1 posio Na descodicao total, todos os bits do endereo so usados: ligados directamente aos componentes ou utilizados na seleco dos componentes.
22/79
2007-04-02
RAM1
RAM2
A[15:0] A[11:0]
A[12:0]
RAM1: 4Kx8 RAM2: 8Kx8 Espao de endereamento do CPU: 64 K, 1 byte por endereo RAM 1: 1011 XXXX XXXX XXXX Gama: B000H a BFFFH
8 bits
CS D[7:0]
&
23/79
2007-04-02
RAM2
RAM1: 4Kx8 RAM2: 8Kx8 Espao de endereamento do CPU: 64 K, 1 byte por endereo RAM 1: 10?? XXXX XXXX XXXX Gamas: 8000H a 8FFFH 9000H a 9FFFH A000H a AFFFH B000H a BFFFH RAM2: 0?1X XXXX XXXX XXXX Gamas: 2000H a 3FFFH 6000H a 7FFFH
A[12:0]
CS D[7:0] 8 bits
A[15] A[13]
&
O byte 10 de RAM1 pode ser acedido atravs de que endereos? 800AH, 900AH, A00AH e B00AH
24/79
2007-04-02
Memrias
Memria virtual
25/79
2007-04-02
Organizar o sistema de memria como uma hierarquia: memria rpida para satisfazer a maior parte dos acessos, memria mais lenta para armazenar os dados menos usados. Princpio de funcionamento (para cada nvel):
Procurar a informao (dados ou instrues) num dado nvel (inicialmente no nvel 1, o que est mais prximo do CPU); Caso a informao no exista a, ir busc-la ao nvel seguinte e guardar uma cpia (pode vir a ser reusada brevemente).
Se a maioria dos acessos for satisfeita pelo nvel superior, obtm-se, em mdia, os tempos de acesso do nvel superior e a capacidade de armazenamento do nvel inferior.
26/79
2007-04-02
Tecnologia Rapidez
CPU
Tamanho
Custo(/bit)
corrente
Mais rpido
Memria
Menor
Maior
SRAM
Memria
DRAM
Mais lento
Memria
Maior
Menor
Disco magntico
27/79
2007-04-02
Processador
Transferncias de dados
28/79
2007-04-02
O princpio da proximidade
A organizao hierrquica de memria d muito bons resultados na prtica, porque as situaes em que aplicada se comportam de acordo com o princpio da proximidade. O princpio da proximidade (ou localidade): Programas em execuo acedem apenas a uma pequena parte do seu espao de endereamento (durante um certo intervalo). Proximidade temporal: Se um item de informao usado, tender ser usado de novo em breve. Exemplo: instrues no corpo de um ciclo, variveis. Proximidade espacial: Quando um item de informao usado, itens prximos tendaro tambm a ser usados em breve. Exemplo: o conjunto de variveis de uma subrotina, os elementos de um vector.
30/79
2007-04-02
Memrias
Memria virtual
31/79
2007-04-02
Memrias
Memria virtual
32/79
2007-04-02
X4 X1 X n -2
X4 X1 X n- 2
a. Antes de referncia a X
b. Depois de referncia a X
Se o acesso a memria cache no encontra item desejado, item copiado de nveis inferiores da hierarquia.
33/79
2007-04-02
11001
11101
Questo: Dada a posio de um item em cache, como determinar, se esse item que, de facto, l se encontra? Soluo: Associar a cada bloco, uma etiqueta (tag) nica. A etiqueta pode ser constituda pelos bits mais signicativos do endereo (bits no usados na determinao da posio). No exemplo anterior, a etiqueta teria 2 bits.
4 3 2 1 0
Etiqueta
No do bloco
Em certas situaes, tanto o bloco como a etiqueta so invlidos. Exemplo: arranque do sistema. Para detectar esta situao, cada bloco tem associado um bit de validade. Se o seu valor for zero, ento o bloco invlido (a posio est vazia).
35/79
2007-04-02
ndice 0 1 2
Dados
Como cada palavra (item) tem 4 bytes, os dois bits menos signicativos no so usados. (Todos os endereos so alinhados;tm os 2 bits menos signicativos a 0).
ArqComp: Sistemas de memria 36/79 2007-04-02
O armazenamento de uma palavra (item) por bloco no aproveita a proximidade espacial. Para isso devem ser usados blocos com W itens (W > 1). Para que seja fcil de identicar o item no interior do bloco, o nmero W deve ser uma potncia de 2: W = 2w . Nesta situao, o item pode ser identicado por w bits do endereo. A parte do endereo que especica a posio dentro do bloco designa-se por deslocamento (offset). Interpretao de um endereo de N bits:
Etiqueta (N-b-w-x) ndice (b) Deslocamento (w) x
Quando os itens no tm apenas um byte (a unidade de endereamento), existem alguns bits (menos signicativos) do endereo que no so usados no acesso a memria. No caso do MIPS, os acessos so feitos por palavras de 4 bytes, pelo que 2 bits no so usados.
37/79
2007-04-02
Etiqueta
0 0 1 2 3 4 5 6 7
}
byte
verificao
Etiqueta
ndice
Deslocamento
38/79
2007-04-02
10% 4K
Taxa de falhas
5%
16K
Para tamanhos de blocos crescentes, a taxa de falhas diminui. Mas para tamanhos muito grandes, a taxa de falhas aumenta outra vez! A penalidade de falha tende a aumentar com a dimenso do bloco, porque preciso ir buscar mais dados ao nvel inferior.
ArqComp: Sistemas de memria 39/79 2007-04-02
Endereo
31 14 13 65 210
18
Data
256 posies
16
32
32
32
= Mux 32
40/79
2007-04-02
Capacidade: 16 KB, 256 blocos de 16 palavras. Etiquetas: 18 bits. ndice: 8 bits (28 = 256). Deslocamento (no bloco): 4 bits 24 = 16). Exemplo de clculo de posio:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Desl.
Etiqueta: 0000 0000 0100 0101 01|11 ... 0x00115 Bloco: ... 01|11 0101 01|00 0100 0xD5 (21310 )
41/79
2007-04-02
Em muitos sistemas, existem memrias cache separadas para instrues (I-cache) e dados (D-cache). A I-cache usada no ciclo IF e apenas permite acessos de leitura. A D-cache permite leituras e escritas; usada no tratamento de instrues load/store. A utilizao de caches separadas (split cache), permite evitar conitos entre os estados IF e MEM. Para uma mesma capacidade total, caches unicadas permitem conseguir menores taxas de falha (mas a diferena pequena). Exemplo: (I-Cache + D-Cache) vs. U-Cache: Caches separadas: I-Cache(16 KB): 0.4%, D-Cache (16 KB): 11.4%, Mdia pesada: 3.24% Cache unicada de 32 KB: 3.18%
ArqComp: Sistemas de memria 42/79 2007-04-02
43/79
2007-04-02
44/79
2007-04-02
Escrita de valor cujo bloco est ausenta da cache write miss: As duas variantes principais so: Poltica allocate-on-miss: o bloco necessrio obtido do nvel inferior, aps o que tudo se passa como no caso de um write-hit. Pode envolver a substituio de um bloco j presente em cache. Poltica no-allocate: no alterar o contedo da cache e alterar directamente a memria principal. Funciona como se a cache no existisse para este tipo de transaces. O tratamento de cache miss logicamente independente do tratamento de cache hit. As combinaes mais usadas so: write-through & no-allocate: nfase na simplicidade. write-back & allocate-on-miss: nfase na reduo de trfego para a memria principal.
45/79
2007-04-02
Memrias
Memria virtual
46/79
2007-04-02
Especicao: CPIperf =2, t = 0.02 para instruces e tfd = 0.04 para dados, pf = 100, acessos a memria: 36%. Comparar o desempenho real com o desempenho obtido se a memria cache fosse perfeita. Ci : no de ciclos de protelamento na obteno de instrues: Ci = N 0.02 100 = 2 N Cd : no de ciclos de protelamento no acesso a dados: Cd = N 0.36 0.04 100 = 1.44 N CPIprot = CPIperf + Ci /N + Cd /N = 2 + 1.44 + 2 = 5.44 speedup = E se CPIperf = 1 ? CPIprot = 4.44 speedup = 4.4 Percentagem de tempo em protelamento piora: 3.44/5.44 = 63% 3.44/4.44 = 77%. N CPIprot T N CPIperf T = 5.44 2 = 2.72
48/79
2007-04-02
Melhorar o CPI sem melhorar o subsistema de memria leva a um aumento da percentagem de tempo perdida em protelamentos. (cf. exemplo anterior) O que acontece se a frequncia de relgio aumentar, mas o subsistema de memria permanecer igual? Neste caso a penalidade de falha aumenta: pf = 200 Ci + Cd = 0.02 200 + 0.36 0.04 200 = 6.88 CPIrapido =2 + 6.88 = 8.88 speedup = N CPIlento T N CPIrapido
T 2
= 1.23
Se a inuncia da cache tivesse sido ignorada, seria speedup=2. Processador que melhore simultaneamente CPI e T sofre um impacto duplo negativo.
49/79
2007-04-02
1000
Instructions / item
800
1200
600
800
400
Quicksort
N de itens ordenados
N de itens ordenados
N de itens ordenados
50/79
2007-04-02
Para reduzir a taxa de falhas, pode usar-se uma colocao de blocos mais exvel. Opes: Um item pode ser colocado 1. num nico bloco: mapeamento directo 2. em qualquer bloco: associatividade completa 3. em qualquer bloco de um conjunto: associatividade parcial Nmero de blocos de um conjunto = nmero de vias Exemplos: conjunto de 2 blocos: associatividade 2 vias (2-way) mapeamento directo: associatividade 1-way associatividade total (cache com M blocos): m-way ndice determina apenas o conjunto, mas no o bloco: I = Endereo % (no de conjuntos) Para determinar onde se encontra o item, as etiquetas de todos os blocos vlidos do conjunto devem ser comparadas (em simultneo!): implementao mais complexa, que pode levar ao aumento do tempo de acesso (hit time)
51/79
2007-04-02
Associatividade: exemplo
Mapeamento directo Associatividade por conjuntos Associatividade total
Bloco #
0 1 2 3 4 5 6 7
Conj. #
Dados
Dados
Dados
Etiqueta
1 2
Etiqueta
1 2
Etiqueta
1 2
Busca
Busca
Busca
Resultado emprico: associatividade superior a 8 no til (no leva a qualquer reduo da taxa de falhas). Exemplo (Intrinsity FASTMath): Associatividade 1 2 4 8
ArqComp: Sistemas de memria
Associatividade: 2 vias
Associatividade: 4 vias
Set 0 1 Tag Data Tag Data Tag Data Tag Data
53/79
2007-04-02
22
Etiqueta (tag)
ndice (index) Index 0 1 2 253 254 255 22 32 V Tag Data V Tag Data V Tag Data V Tag Data
4-to-1 multiplexor
Hit
Data
54/79
2007-04-02
55/79
2007-04-02
Poltica de substituio
A poltica de substituio dene qual dos blocos de um conjunto deve ser substitudo quando h uma falha e todos os blocos do conjunto esto ocupados. Substituio aleatria: o bloco a ser substitudo escolhido aleatoriamente de entre os elementos do conjunto. LRU (Least Recently Used): o bloco substitudo aquele que no usado h mais tempo. Implementao para uma cache de 2 vias: para cada bloco usar um bit para marcar o ltimo a ser acedido (o bit do outro bloco do conjunto colocado a zero). A complexidade de implementar LRU cresce com a associatividade. A poltica LRU tenta aproveitar a proximidade temporal: os itens usados mais recentemente tendem a permanecer em cache.
56/79
2007-04-02
Para reduzir a penalidade de falhas pode aplicar-se a mesma abordagem que se usa para reduzir o tempo de acesso memria principal: usar uma cache para a cache. A cache de nvel 2 permite reduzir a penalidade de falha da cache de nvel 1. A cache de nvel 2 contm geralmente os dados residente na cache de nvel 1 (hierarquia de memria inclusiva) e de maior capacidade. Arranjo comum: memrias cache separadas de nvel 1 + cache unicada de nvel 2. Em alguns sistemas de elevado desempenho: 2 nveis de cache on-chip + 1 nvel (L3) no exterior.
57/79
2007-04-02
Usado no Mac G5 58 milhes transstores, 2.2 GHz L1-ICache: 64 KB, m=1, 128 bytes/bloco L1-DCache: 32 KB, m=2, 128 bytes/bloco, LRU, write-through, no-allocate L2-Cache: 512 KB, m=8, 128 bytes/bloco, LRU, write-back, allocate-on-miss
ArqComp: Sistemas de memria 58/79 2007-04-02
Clculo do desempenho de um sistema com dois nveis de cache: Especicao: CPI = 1, F = 5 GHz (T=0.2 ns), acesso a memria principal: 100 ns, taxa de falhas em L1 de 2%. Qual a melhoria de desempenho obtida por uma memria cache L2 (tempo de acesso 5 ns) e com capacidade suciente para reduzir a taxa de falhas para memria principal para 0.5%? Penalidade de falha (mem. principal): 100/0.2 = 500 ciclos. CPI1 = 1 + 0.02 500 = 11 Com 2 nveis: Penalidade de falha por acesso a L2: 5/0.2 = 25 ciclos CPI2 = 1 + ProtL1 + ProtL2 CPI2 = 1 + 0.02 25 + 0.005 500 = 1 + 0.5 + 2.5 = 4 speedup = 11/4 = 2.8 (Extra) taxa de falhas local de L2: 0.005/0.02 = 0.25
59/79
2007-04-02
Memrias
Memria virtual
60/79
2007-04-02
Conceito: memria principal uma cache para memria secundria (em disco magntico). Motivao: 1. remover a limitao do tamanho da memria fsica: o programa pode usar mais memria que a sicamente presente. Vantagem adicional: programa pode ser executado sem modicao em computadores com sistemas de memria diferentes. 2. permitir a utilizao comum eciente e segura de memria principal por vrios programas em execuo simultnea (processos). Aplica-se o princpio da proximidade (local e espacial). Cada programa compilado (e executado) num espao de endereamento separado (virtual). Durante a execuo, os endereos deste espao virtual so convertidos para endereos fsicos (de memria fsica).
61/79
2007-04-02
Durante um acesso a memria principal, o endereo virtual convertido (mapeado) num endereo fsico. Memria virtual tambm implementa automaticamente a relocao do programa: o programa pode ser colocado (carregado) para qualquer zona de memria. A relocao feita por pginas: no necessrio usar uma zona contgua de memria para todo o programa. Mapeamento virtualreal com base em pginas de dimenso xa: paginao. Alternativa: usar blocos de dimenso varivel (segmentos).
62/79
2007-04-02
Modelo conceptual
Endereos virtuais Converso de endereos Endereos fsicos
Endereos de disco
63/79
2007-04-02
Converso
29 28 27 N de pgina fsica
15 14 13 12 11 10 9 8
3210
Endereo fsico
O endereo virtual dividido num nmero de pgina virtual e um deslocamento na pgina. O nmero de pgina virtual convertido num nmero de pgina real. O nmero de bits dos dois nmeros no necessita de ser igual.
ArqComp: Sistemas de memria 64/79 2007-04-02
A penalidade de falha de pgina enorme : alguns milhes de ciclos de relgio. (O acesso a memria principal 100000 mais rpido que o acesso a disco.) Consequncias: A dimenso de uma pgina deve permitir amortizar o elevado tempo de acesso. Dimenso tpica: 4 KB16 KB, com tendncia a aumentar (32 KB64 KB). A reduo da taxa de falhas de extrema importncia: utilizao de associatividade completa. O tratamento das falhas de pgina pode ser feito por software (j que o overhead comparativamente reduzido), o que permite a utilizao de polticas de substituio sosticadas. No se usa write-through, mas apenas write-back (copy-back).
65/79
2007-04-02
Endereo virtual
31 30 29 28 27 N de pgina virtualr 20 Valid N de pgina fsicar 15 14 13 12 11 10 9 8 Deslocamento (pgina) 12 3210
Tabela de pginas
Endereo fsico
67/79
2007-04-02
Vlido 1 1 1 1 0 1 1 0 1 1 0 1
Armazenamento em disco
69/79
2007-04-02
Quando ocorre uma falha de pgina e toda a memria fsica est ocupada, o sistema operativo deve escolher uma pgina fsica a libertar. Se alguma das posies de memria dessa pgina foi alterada, a pgina fsica deve ser copiada para disco (write-back) antes de ser substituda. Blocos de cache pertencentes pgina a substituir devem ser tambm libertados (incluindo write-back se necessrio), se existirem. O acesso a disco magntico (neste caso, para escrita) muito demorado. Para evitar cpias desnecessrias, cada pgina tem um bit (na tabela de pginas) a indicar se foi alterada: bit de modicao (dirty bit). Apenas pginas fsicas com esse bit de substituio a 1 so copiadas para disco.
70/79
2007-04-02
Poltica de substituio
A escolha da pgina fsica a substituir aquando de uma falta de pgina geralmente feita segundo o critrio LRU (Least Recently Used): substituda a pgina no usada h mais tempo (as outras tm mais probabilidade de virem a ser usadas brevemente). A implementao exacta de LRU muito pesada, j que a informao correspondente deve ser actualizada a cada acesso. Na prtica, os S. O. apenas aproximam a poltica LRU. Uma abordagem: o CPU associa a cada pgina um bit de utilizao (ou bit de referncia): esse bit colocado a 1 sempre que ocorre um acesso pgina. Periodicamente, o S. O. coloca todos os bits de referncia a zero, para depois registar as pginas acedidas durante um certo intervalo de tempo. Com esta informao de utilizao, o S. O. pode escolher a pgina a substituir de entre as que foram referenciadas menos recentemente.
ArqComp: Sistemas de memria 71/79 2007-04-02
As tabelas de pginas esto em memria principal. Cada acesso do programa seria transformado em dois acessos: um acesso pgina e um segundo acesso aos dados/instrues. O princpio da localidade aplica-se: um endereo de pgina virtual usado recentemente tem elevada probabilidade de ser re-utilizado. Soluo: usar uma memria cache especial para guardar as converses de endereos mais recentes: translation-lookaside buffer (TLB) A cada acesso, o TLB consultado para determinar a pgina real correspondente pgina virtual especicada no endereo. Em caso de sucesso, o bit de referncia actualizado. No caso de uma escrita, o mesmo sucede com o bit de modicao. TLB deve conter cpia dos bits de controlo associados a cada pgina (incluindo a informao sobre proteco de acesso).
72/79
2007-04-02
Etiqueta
pgina fsica
Memria fsica
Tabela de pginas
Valid Dirty Ref 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 Pgina fsica ou end. disco
Disco magntico
73/79
2007-04-02
Deslocamento de pgina 12
Valid
Dirty = = = = = =
Etiqueta
N de pgina fsica
TLB
TLB hit
20
Deslocamento de pgina
Desl. bloco 4 2
desl.
byte
Cache
= Cache hit
32
Dado
75/79
2007-04-02
acesso TLB
TLB miss
No TLB hit?
No Escrita?
Sim
Sim
No Cache hit?
Sim
Erro de proteco
No
76/79
2007-04-02
Para um sistema com TLB, um nvel de cache e memria principal, um acesso a memria pode encontrar trs eventos: falha TLB, falha de pgina (PT) e falha de cache. Que combinaes destes eventos podem realmente ocorrer?
Possvel? Porqu? Sim. A TP no vericada. Sim. Pgina em memria mas endereo fora da T. P. Sim. Dados/instrues no esto em cache. Sim. No. Se no existe na T. P. no pode estar em TLB. No. (Idem) Nao. Dados no podem estar em cache se a pgina no est em memria.
77/79
2007-04-02
TLB, memria virtual e caches podem ser caracaterizados pelas respostas s seguintes questes: 1. Onde pode ser colocado um bloco? Mapeamento directo: 1 posio. Associatividade completa: todas as posies, associatividade por conjuntos: conjunto restrito de posies. 2. Como encontrar um bloco? Mapeamento directo: ndice. Associatividade por conjuntos: ndice para o conjunto + pesquisa concorrente. Associatividade completa: pesquisa concorrente (cache) ou tabela separada (mem. virtual). 3. Que bloco substituir? Mapeamento directo: s um bloco. Outros: seleco aleatria ou LRU (exacto ou aproximado) 4. Que acontece na escrita? Write-through ou write-back. Memria virtual usa sempre write-back.
78/79
2007-04-02
Elementos de consulta
[Patterson & Hennessy]: Seces 7.17.4, B.9 [Delgado & Ribeiro]: Seces 3.2, 6.1, 7.5, 7.6 [Arroz, Monteiro & Oliveira]: Cap. 13
79/79
2007-04-02
Notas:
79