Académique Documents
Professionnel Documents
Culture Documents
Organizao da memria
Organiza o e Organizao Arquitetura de Computadores
Objetivo
Apresentar uma organizao hierrquica da memria que possibilita um melhor desempenho do sistema computacional.
Controle
Datapath
Memria
Entrada Sada
Reduzindo energia/OP
ADD ADD MUX MUX ADD Mult Mult ADD
Mult Mult
Mult Mult
Mult Mult
word
SRAM
Valores so armazenados num par de portas inversoras. Bastante rpida porm necessita mais espao que a DRAM (4 a 6 transistores).
bit bit
Write:
1. Ativar as linhas de bit: bit = 1 e bit = 0 2. Selecionar linha. bit
Read:
bit
1. Pr-carga de bit e bit em Vdd ou Vdd/2 assegurar que so iguais! 2. Selecionar linha. 3. Clulas levam uma das linhas para low. 4. Sense amp na coluna detecta a diferena entre bit e bit
WrEn
A0 A1 A2 A3
Address Decoder
SRAM Cell
Word 1
SRAM Cell
:
SRAM Cell - Sense Amp +
:
SRAM Cell - Sense Amp +
:
SRAM Cell - Sense Amp +
:
Word 15
Dout 3
Dout 2
Dout 1
Dout 0
2N words x M bits
WE_L OE_L
SRAM
Write Enable normalmente active low (WE_L) Din and Dout so combinados para economia de pinos:
necessrio um novo sinal de controle: output enable (OE_L) WE_L ativado (Low), OE_L desativado (High)
D funciona como entrada de dados
SRAM: timing
Write Timing: High Z
WE_L OE_L
Read Timing:
D A OE_L WE_L
DRAM
Valor armazenado como carga num capacitor (necessita refresh). Bem menor, porm mais lenta que a SRAM (fator de 5 a 10).
Word line
Transistor de passagem Capacitor
Bit line
row select
Read:
1. Pr-carga da bit line para Vdd 2. Seleciona linha (row) 3. Clula e bit line compartilham cargas
Pequena variao de voltagem na bit line
bit
Refresh
1. Executa uma leitura em cada clula.
row address
Column Address
data
A0 A10
11
Storage cell
coluna
Endere o Endereo
linha
N
Bloco Bloco Linha Linha Decod Decod 9:512 9:512
I/O I/O
Endereo
I/O I/O
128 128 K Kbits bits 512 SAmp 512 SAmp 128 Kbits bits 128 K
Decodificador Decodificador coluna coluna 9:512 9:512 Decodificador Decodificador coluna coluna 9:512 9:512
128 128 K Kbits bits 512 SAmp 512 SAmp 128 128 K Kbits bits
Bloco 0
I/O I/O
I/O I/O
Controlador DRAM
128 128 K Kbits bits 512 512 SAmp SAmp 128 128 K Kbits bits
Bloco 3 Decodificador Decodificador coluna coluna 9:512 9:512
128 128 K Kbits bits 512 SAmp 512 SAmp 128 128 K Kbits bits
I/O I/O
128 128 K Kbits bits 512 512 SAmp SAmp 128 bits 128 K Kbits
Decodificador Decodificador coluna coluna 9:512 9:512
Dados
I/O I/O
I/O I/O
128 Kbits bits 128 K 512 SAmp 512 SAmp 128 Kbits bits 128 K
256K x 8 DRAM
8
OE_L WE_L D
Sinais de controle: RAS_L, CAS_L, WE_L, OE_L todos active low Din e Dout so combinados: D
WE_L ativado (Low), OE_L desativado (High)
D funciona como entrada.
RAS_L CAS_L A
9
OE_L
256K x 8 DRAM
8
WE_L D
Row Address
Col Address
Junk
OE_L WE_L D Junk Data In WR Access Time Ciclo Early Wr: WE_L ativado antes de CAS_L Junk Data In WR Access Time Ciclo Late Wr: WE_L ativado depois de CAS_L Junk
RAS_L CAS_L A
9
OE_L
256K x 8 DRAM
8
WE_L D
Row Address
Col Address
Junk
WE_L OE_L D High Z Junk Read Access Time Data Out High Z Output Enable Delay Data Out
10
DRAM: desempenho
Uma DRAM de 60 ns (tRAC) pode
executar um acesso linha somente a cada 110 ns (tRC) executar um acesso coluna em 15 ns (tCAC), porm o tempo entre dois acessos colunas de pelo menos 35 ns (tPC).
Na prtica varia em torno de 40 a 50 ns devido a atrasos externos de endereamento e barramentos.
Estes tempos no incluem o tempo de obteno do endereo do microprocessador nem o overhead do controlador de memria.
DRAMs paralelas, controlador externo de memria, barramentos, mdulos SIMM, pinos 180 ns to 250 ns de latncia memria-processador bom para uma DRAM 60 ns (tRAC)
CPU CPU
Melhorando o desempenho
Facilitando a leitura de mltiplas words com a utilizao de bancos de memria.
Cache Cache
CPU CPU
CPU CPU
Bus Bus
Multiplexador Multiplexador
Cache Cache
Bus Bus Memria Memria Memria Memria Memria Memria Memria Memria banco banco 0 0 banco banco 1 1 banco banco 2 2 banco banco 3 3
Bus Bus
Memria Memria
Wide: CPU/Mux 1 word; Mux/Cache, bus, memria N words (Alpha: 64 bits & 256 bits)
Interleaved: CPU, Cache, bus 1 word Memria N mdulos (4 mdulos); exemplo word interleaved
11
Memria interleaved
ENDERE ENDEREOS
M dulo 0 Mdulo 0
M dulo 1 Mdulo 1
DADOS
Memria interleaved
A idia bsica de um esquema de memria interleaved (N-way) organizar N mdulos de memria de modo que N endereos seqenciais, a0, a1, , aN-1 sejam distribudos atravs dos mdulos de acordo com a seguinte regra: endereo ai atribudo ao mdulo Mj se j = i mod N
Endereo Banco 0 Endereo Banco 1 Endereo Banco 2 Endereo Banco 3
0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15
12
Memria: desempenho
Tempo de ciclo Tempo de acesso Tempo
DRAM (Read/Write)
Tempo de ciclo >> Tempo de acesso (2:1, porque?)
Inicia acesso a D2
Memria Memria banco banco 0 0 Memria Memria banco banco 1 1 Memria Memria banco banco 2 2 Memria Memria banco banco 3 3
CPU CPU
Acesso banco 0 Acesso banco 1 Acesso banco 2 Acesso banco 3 Banco 0 pode ser acessado novamente
13
Memria: desempenho
Modelo de timing 1 para envio de endereo, 4 para tempo de acesso, 10 para tempo de ciclo, 1 para enviar dado Bloco de cache de 4 words Simples = 4 x (1 + 10 + 1) Wide = 1 + 10 + 1 Interleaved = 1 + 10 + 1 + 3 = 48 = 12 = 15
Problema de latncia
Latncia: perodo de inatividade entre um estmulo e a resposta por ele provocada (Aurlio). Tempo decorrido entre uma requisio de informao do processador para a memria e a recepo da informao pelo processador.
14
IBM breakthrough! Velocidade da SRAM, densidade da DRAM, no-voltil (sem refresh). Nova rea chamada Spintronics, combinao de spin (fsica quntica) e eletrnica. Mesma tecnologia utilizada em discos de alta densidade.
15
DDR ou SDRAM II
Double-data rate SDRAM uma verso mais rpida da SDRAM, capaz de ler dados tanto na subida quanto na descida do clock do sistema, dobrando a taxa de transferncia do chip de memria.
16
Hierarquia da memria
Velocidade Mais rpida CPU Memria Memria Tamanho Menor Custo ($/bit) Mais alto
Hierarquia da memria
CPU
Nvel 1
Nvel 2
...
Nvel n
Tamanho da memria em cada nvel
17
Memria
secundria
Fita
10s s 10s Tbs
Processador Processador
Controle Controle
Disco
10s ms 10s Gbs
Registros
Hierarquia da memria
Controlador cache
Processador
Memria Local Registros - b Cache - Kb
Memria cache SRAM
Kb
10 000 000
100
10
18
Hierarquia da memria
Tem como objetivo estabelecer, atravs de meios arquiteturais, um subsistema de memria que apresenta ao usurio a capacidade (virtualmente ilimitada) da memria secundria com a velocidade dos componentes mais rpidos (memria local ou cache).
Hierarquia da memria
Este objetivo alcanado pela combinao dos seguintes meios:
Memrias interleaved, onde a informao distribuda em vrios mdulos de memria podendo ser acessada em paralelo. Projeto e implementao de um mecanismo de memria virtual que oferece ao usurio a iluso de uma memria principal ilimitada com um mnimo de latncia. Gerenciamento eficiente do subsistema memria principal/memria cache, de modo que as requisies de instrues e dados possam ser resolvidas mais rapidamente pela memria cache.
19
Desempenho
Eficincia = f (freqncia de faltas) Porque latnciamemria secundria >> latnciamemria principal Excessivas faltas resultam em muito tempo despendido transferindo dados para a memria principal.
Desempenho
Transferncia de blocos para minimizar freqncia de faltas O bloco no contm somente o item que falta mas tambm os itens com expectativa de serem referenciados num futuro imediato.
20
Princpio da localidade
Um princpio que torna a existncia de uma hierarquia de memria uma boa idia. o que faz funcionar a hierarquia de memria. Se um item referenciado, a tendncia que ele seja referenciado novamente em breve (localidade temporal) e, itens prximos sero referenciados em breve (localidade espacial). Porque o cdigo possui estes tipos de localidade?
Princpio da localidade
Localidade espacial
Os endereos gerados por um programa normalmente esto restritos a uma pequena regio do espao de endereamento virtual (instrues de um programa e estruturas de dados).
Probabilidade de referncia
2N - 1
21
Princpio da localidade
Localidade temporal
O conjunto de endereos varia lentamente no tempo. Se um item referenciado, itens cujos endereos so prximos tendem a ser referenciados brevemente (execuo de loops).
Resumindo
Dois tipos de localidade:
Localidade temporal (localidade no tempo): se um item referenciado, a tendncia que ele seja referenciado novamente em breve. Localidade espacial (localidade no espao): se um item referenciado, itens vizinhos tendem a ser referenciados em breve.
22
Memria cache
Processador
Controlador cache
23
Memria cache
endereo_fsico
buffer de endereos
Memria Principal
endereo
informao
cache
Traduo de endereo
informao se $ k | cache(k ).endereo = endereo_fsico dados ento nova_informao = cache(k ).informao seno nova_informao = memria(endereo_fsico) $ l | nova cache(l ).endereo = endereo_fsico nova cache(l ).informao = memria(endereo_fsico) buffer de
Memria cache
(Caractersticas de projeto)
Poltica de alocao Tamanho e natureza dos blocos transferidos Poltica de substituio Tamanho do cache Poltica de atualizao da memria principal Coerncia em sistemas multiprocessados
24
Acertos x falhas
Read hits
o que queremos!
Read misses
pausa a CPU, busca o bloco na memria, escreve na cache, restart
Write hits
pode atualizar dado na cache e na memria (write-through) escreve o dado somente na cache (write-back na memria depois)
Write misses
leva o bloco inteiro para a cache e ento escreve a word.
Medida de desempenho
O desempenho de uma memria cache depende de um conjunto de parmetros tais como tamanho de blocos, tamanho da cache e do tipo de mapeamento utilizado. Taxa de acerto: HR (hit rate) Nmero de referncias memria encontradas na cache Nmero total de referncias memria Taxa de falha: MR ( miss rate) MR = 1 - HR
25
Desempenho
Modelo simplificado:
tempo_de_execuo = (ciclos_de_execuo + ciclos_de_pausa) x tempo_de_ciclo ciclos_de_pausa = # de_instrues x taxa_de_falha x penalidade_de_falha
Dois modos de melhorar o desempenho: diminuir a taxa de falha diminuir a penalidade de falha
Desempenho
Miss rate
40% 35% 30% 25% 20% 15% 10% 5% 0% 4 16 Block size (bytes) 64 1 KB 8 KB 16 KB 64 KB 256 KB 256
26
Alocao e organizao
Como sabemos se um dado se encontra na cache? Caso afirmativo como localiz-lo?
Mapeamento direto
Memria cache
FRAME 000 FRAME 000 FRAME 001 FRAME 001 FRAME 010 FRAME 010 FRAME 011 FRAME 011 FRAME 100 FRAME 100 FRAME 101 FRAME 101 FRAME 110 FRAME 110 FRAME 111 FRAME 111
Para cada item da memria principal existe exatamente uma localizao na cache onde o item pode estar. Endereo mdulo(nmero_de_blocos_na_cache). Vrios itens da memria principal compartilham localizaes na cache.
BLOCO 000000 BLOCO 000000 BLOCO 000001 BLOCO 000001 BLOCO 000010 BLOCO 000010 BLOCO 000011 BLOCO 000011 BLOCO 000100 BLOCO 000100 BLOCO 000101 BLOCO 000101 BLOCO 000110 BLOCO 000110 BLOCO 000111 BLOCO 000111 BLOCO 001000 BLOCO 001000 BLOCO 001001 BLOCO 001001 BLOCO 001010 BLOCO 001010 BLOCO 001011 BLOCO 001011 BLOCO 001100 BLOCO 001100 BLOCO 001101 BLOCO 001101 BLOCO 001110 BLOCO 001110 BLOCO 001111 BLOCO 001111 BLOCO 010000 BLOCO 010000 BLOCO 010001 BLOCO 010001 BLOCO 010010 BLOCO 010010 BLOCO 010011 BLOCO 010011 BLOCO 010100 BLOCO 010100 BLOCO 010101 BLOCO 010101 BLOCO 010110 BLOCO 010110 BLOCO 010111 BLOCO 010111 BLOCO 011000 BLOCO 011000 BLOCO 011001 BLOCO 011001 BLOCO 011010 BLOCO 011010 BLOCO 011011 BLOCO 011011 BLOCO 011100 BLOCO 011100 BLOCO 011101 BLOCO 011101 BLOCO 011110 BLOCO 011110 BLOCO 011111 BLOCO 011111 BLOCO 100000 BLOCO 100000 BLOCO 100001 BLOCO 100001 BLOCO 100010 BLOCO 100010
. .. .. .
27
31
Tag
20 Index VL
0 1 2 . . . . . 1021 1022 1023
12
11
Index
10
Word offset
Endereo
Tag
Data
20
32
=
Que tipo de localidade est sendo explorada?
Data Hit
31
Tag
16 VL Tag
16
15
Index
12 Data
2 1
Endereo
4K entradas
16
32
32
32
32
Hit
28
. . .
endereo tag
. . .
bloco frame F-1
4-to-1 multiplexor
Hit
Data
29
9% M is s r at e
0 1 2 3
3%
0% O n e- w a y Tw o-w ay A s s o ci ati vi ty F o ur - w a y 1 KB 2 KB 4 KB 8 KB Ei g h t- w a y 16 K B 32 K B 64 K B 12 8 KB
Four-way set associative Set 0 1 Tag Data Tag Data Tag Data Tag Data
Eight-way set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
Exemplo:
CPI de 1.0 numa mquina de 500Mhz com uma taxa de falha de 5%, DRAM com tempo de acesso de200ns. Adicionar uma cache L2 com tempo de acesso de 20ns diminui a taxa de falha para 2%.
30
Poltica de substituio
FIFO
Fcil de implementar, mas tem uma taxa de falha aproximadamente 12% maior que
LRU
Melhor desempenho a um custo maior que FIFO.
Write-through (store-through)
Sempre que uma palavra modificada na cache, ela atualizada na memria principal.
31
Memria virtual
um dos mecanismos utilizados para explorar a hierarquia de memria a fim de maximizar a disponibilidade de espao de memria sem pagar um custo excessivo de latncia. O papel especfico do mecanismo de memria virtual criar para o usurio a iluso de um espao de memria, diretamente enderevel, maior do que existe fisicamente.
Memria virtual
A implementao da memria virtual envolve pelo menos dois nveis de memria (primria e secundria) e uma ao cooperativa entre o processador e o sistema operacional.
32
Memria virtual
Definio Um endereo utilizado por um programador chamado de endereo virtual e o conjunto de tais endereos chamado de espao de endereamento virtual.
Memria virtual
Definio Um endereo de uma word (ou byte) na memria fsica chamado de endereo de memria ou endereo fsico ou real e o conjunto de tais endereos chamado de espao de memria ou espao de endereamento fsico ou real.
33
Memria virtual
Denominando N={0, 1, 2, , n-1} o espao de endereamento virtual e M={0, 1, 2, , m-1} o espao de endereamento fsico, em geral n >> m. O objetivo de um mecanismo de memria virtual realizar uma funo de mapeamento MAP: N M {f} | " a N MAP(a) = a' se o item no endereo virtual a est presente no endereo de memria a' M MAP(a) = f se o item no endereo virtual a no est presente em M
Memria virtual
a
PROCESSADOR PROCESSADOR
Espao de Espao de endereamento endereamento virtual N virtual N
f
Tradutor de Tradutor de endereo endereo
a'
Hierarquia de memria
MAP: N M {f} | " a N MAP(a) = a' se o item no endereo virtual a est presente no endereo de memria a' M MAP(a) = f se o item no endereo virtual a no est presente em M
34
Memria virtual
A memria principal pode funcionar como cache para a memria secundria
Endereos virtuais Traduo de endereos Endereos fsicos
Vantagens: iluso de ter uma memria fsica maior realocao de cdigo proteo
Endereos em disco
35
36
3. De modo similar, a definio da regio de M a ser utilizada para receber o novo bloco de informao chamada poltica de alocao.
37
Paginao
Para um dado programa ocupando um espao de endereamento virtual N, um subconjunto de suas pginas pode ser mapeado num subconjunto de frames em M.
38
Paginao
Mapeamento direto
0 1024 2048 3072 4096 Endereos virtuais
Pgina 0 Pgina 0 Pgina 1 Pgina 1 Pgina 2 Pgina 2 Pgina 3 Pgina 3 Pgina 4 Pgina 4
. . . . . . . . . . . . . .. .
31744
Pgina 31 Pgina 31
. . . . . . . . . .. .
Frame 77 Frame
7168
Paginao
A pgina serve tanto como unidade de mapeamento lgico de N para M como unidade de transferncia entre memria secundria e memria principal.
39
Tabelas de pgina
Endereo virtual
lid o
1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1
Memria fsica
Tabela de pgina
Memria em disco
Registro Base Tabela de P Pgina Endereo virtual Nmero de p pgina virtual Offset na p pgina
Tabela de pgina
VL DA
Endereo
Se VL= 1 ento pgina est na memria Seno pgina est na memria secundria DA: R=read only; W= read/write; X=execute only Nmero de p pgina f fsica Offset na p pgina
Endereo fsico
40
Paginao
Traduo de endereo
VL DA Endereo
if is_valid PT(P).DA then if PT(P).VL = 1 then new memory address = PT(P).ENDR + desl; else trap page_fault; else trap protection_violation_fault;
lid o
TLB size: 32 - 4096 entradas Block size: 1-2 entradas de tabela de pgina (4-8 bytes cada) Hit time: 0.5 - 1 ciclo de clock Penalidade: 10-30 ciclos de clock Taxa de falha: 0.01% - 1%
1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1
Tabela de pgina
41
Tabela de pgina
Falha de p pgina
Referncia
Resume
MEMRIA MEMRIA VIRTUAL VIRTUAL Endereo Endereo Lgico Lgico
1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1
Acesso invlido
Memria fsica
Disco
Paginao
Paginao
A principal vantagem dos sistemas de paginao que a unidade de transferncia de tamanho fixo: a pgina. O algoritmo de alocao pode ser bastante simples: atribuir uma pgina a qualquer frame disponvel ou liberado pelo algoritmo de substituio.
42
Paginao
Fragmentao
O termo refere-se s reas do espao de endereamento real, que por alguma razo deixam de estar disponveis para armazenamento de programas e seus dados.
Paginao
Fragmentao de Tabela
Ocorre quando as tabelas de pginas tornam-se extremamente grandes devido a espaos de endereamento virtuais muito grandes. Uma parte significativa da memria principal no estar disponvel para atribuio de pginas.
43
Paginao
Uma maneira de reduzir o tamanho da tabela de pginas a utilizao do mapeamento associativo ao invs do mapeamento direto. Neste caso o tamanho da tabela dado por |M|, o nmero de frames do espao de endereamento real e no |N|, o nmero de pginas do espao de endereamento virtual.
Paginao
Endereo virtual
Nmero de p pgina virtual Offset na p pgina
Tabela de pgina
VL DA
NP
Endereo ADDR
Mapeamento associativo
Cada entrada da tabela contm o nmero da pgina (NP) e o endereo do frame (ADDR).
Nmero de p pgina f fsica Offset na p pgina
Endereo fsico
Dado um endereo virtual, a tabela pesquisada associativamente, comparando np com o campo NP.
44
Paginao
Fragmentao interna
Parte no utilizada do ltimo frame
Acontece quando o programa no ocupa um nmero inteiro de pginas. Quando o programa trazido para a memria principal, uma parte do ltimo frame utilizado para armazenar o programa perdida.
45
Segmentao
Endereo virtual
Nmero de segmento virtual Offset no segmento
VL DA
LGTH
Endereo ADDR
Endereo fsico
if VL=1 then segmento est na memria em ADDR else segmento est no disco em ADDR
Segmentao
Traduo de endereo
VL DA LGTH Endereo ADDR
if TS(P)(ns).VL=0 then trap segment_fault else if TS (P)(ns).DA vlido then if TS (P)(ns).LGTH < offset then trap overflow_fault else novo Endereo_memria=TS (P)(ns).ADDR+offset else trap protection_violation_fault
46
Segmentao
Cada entrada na tabela de segmentos TS(P) denominada descritor de segmento.
VL DA
LGTH
Endereo ADDR
Corresponde a um dos segmentos de P e contm o endereo de incio (ADDR) do segmento na memria principal, o comprimento do segmento (LGTH) e os campos de direito de acesso (DA) e presente na memria (VL).
BASE 31...24
BASE 23...16
+4 +0
0
Nvel de privilgio do descritor Granulosidade (fator de escala de LIMIT) Limite do segmento (b/4Kb) Segmento presente Tipo de descritor
0 = sistema; 1 = aplicao
47
Alocao
Diferentes das pginas, os segmentos podem variar consideravelmente em tamanho. Enquanto a alocao uma questo trivial nos sistemas paginados, mais srio nos sistemas segmentados visto que deve ser preciso encontrar uma rea na memria fsica, de tamanho suficiente para receber o segmento transferido.
Algoritmos de alocao
S1 S2 h1 S3 h2 S4 S5 S6 h3 S7 h4
Sejam l1, l2, , ln os comprimentos e a1, a2, , an os endereos das lacunas h1, h2, , hn, respectivamente.
48
Algoritmos de alocao
Algoritmo best-fit
As lacunas esto ordenadas de tal modo que l1 l2 ln. O novo segmento S de comprimento L alocado na lacuna hi de modo que li o menor comprimento e L li.
Algoritmos de alocao
Algoritmo first-fit
As lacunas esto ordenadas de tal modo que a1 a2 an. O novo segmento S de comprimento L alocado na lacuna hi com o menor endereo tal que L li.
49
Algoritmos de alocao
Fragmentao externa
Independente da regra de alocao utilizada, pode ocorrer que as lacunas disponveis na memria sejam muito pequenas para receberem um determinado segmento.
Algoritmos de alocao
Fragmentao externa
Quando isto ocorre, deve ser acionado um procedimento de compactao de memria para coletar todas as lacunas dispersas e criar um nico bloco de memria disponvel: garbage collection.
S1
S2
S3
S4
S5
S6
S7
50
Polticas de substituio
Quando uma pgina trazida para a memria principal e no h nenhum frame disponvel, a seleo da pgina a ser removida definida pelo algoritmo de substituio.
Polticas de substituio
String de referncias R = r1 r2 r3 rk
a seqncia de referncias sucessivas s pginas no curso de execuo de um programa.
t(ri )
o instante em que a referncia ri produz uma falta de pgina.
51
Polticas de substituio
Se o algoritmo de substituio exige um conhecimento preciso das referncias de pginas futuras ri+1, ri+2, , no instante da falta de pgina t(ri ), o algoritmo dito irrealizvel. Se o algoritmo baseado em suposies acerca das referncias futuras, ele dito realizvel.
Polticas de substituio
Nosso objetivo principal selecionar um algoritmo de substituio que minimiza a freqncia de faltas de pginas. Isto , que minimiza os instantes em que uma pgina referenciada no encontrada na memria principal. Um modo maximizar o tempo entre faltas de pgina (o que conduz ao princpio da otimalidade).
52
Polticas de substituio
Princpio de otimalidade
Seja {0,1, 2, 3, , n} o conjunto de pginas na memria no instante t(ri ) em que ocorre uma falta de pgina e seja t( j ) t(ri ) a mais prxima referncia (subseqente) pgina j. Definindo T( j ) = t( j ) - t(ri ) para todas as pginas em {0,1, 2, 3, , n}, ento a pgina j selecionada para substituio aquela cujo T( j ) mximo. (irrealizvel)
Polticas de substituio
Algoritmo FIFO (First-In, First-Out)
No instante t(ri ), de falta de pgina, substituir a pgina que est na memria por mais tempo. Fcil de implementar (nonlookahead) mas no respeita o princpio da localidade. Uma pgina freqentemente referenciada pode ser substituda por ser a mais antiga na memria.
53
Polticas de substituio
Algoritmo LRU (Least-Recently-Used)
No instante t(ri ), de falta de pgina, substituir a pgina que est na memria com a referncia mais antiga. Menos fcil de implementar que a FIFO, pois exige conhecimento das referncias passadas, mas respeita o princpio da localidade.
Polticas de substituio
Algoritmo PFF (Page-Fault-Frequency)
Tenta manter a freqncia de faltas abaixo de um valor mximo especificado utilizando um parmetro P, freqncia de faltas de pgina. No instante t(rk ) da falta, a distncia temporal Df at a falta anterior comparada com 1/P. Se Df 1/P nenhuma pgina substituda, ao contrrio, a alocao de memria do programa aumentada de uma pgina. Se Df > 1/P, as pginas no referenciadas no intervalo Df (se houver alguma) so retiradas da memria.
54
Polticas de substituio
Algoritmo NRU (Not-Recently-Used)
Associado a cada pgina j na memria h um flag de referncia ref(j ) tal que ref(j ) = 1 se a pgina j foi referenciada recentemente = 0 seno. No instante t(ri ) da falta, substituir a pgina j cujo valor de ref(j ) = 0
Polticas de substituio
Working Set
Seja N = {0,1, 2, 3, , n} o conjunto de pginas que constituem um programa. Dada uma string de referncias R = r0r1 r2 r3 rk, o working set de um programa na ksima referncia, rk, definido como WS(k, h) = {i N | i {rk-h+1, , rk}}
55
Polticas de substituio
Exemplos de Working Set
Seja R* = <4,4,5,4,5,5,6,20,20,21,4,5,5,6,20> uma string de referncias de um programa.
k
3 6 9 12 15
WS(k, 2)
{4, 5} {5} {20} {4, 5} {6, 20}
WS(k, 4)
{4, 5} {4, 5} {5, 6, 20} {4, 5, 20, 21} {5, 6, 20}
WS(k, 6)
{4, 5} {4, 5} {4, 5, 6, 20} {4, 5, 6, 20, 21} {4, 5, 6, 20, 21}
Polticas de substituio
Algoritmo WS ( Working Set)
O algoritmo WS mantm todo o tempo o working set WS(k, h), para uma determinada janela h. Numa falta de pgina t(rk ), uma pgina s removida se ela no estiver referenciada nas h referncias.
56
Pr-paginao
Tenta antecipar referncias futuras s pginas e trazlas antes de sua utilizao. Pode reduzir o overhead de transferncia de pginas.
Sistemas modernos
Sistemas de memria bastante complicados:
Characteristic Cache organization Cache size Cache associativity Replacement Block size Write policy Intel Pentium Pro Split instruction and data caches 8 KB each for instructions/data Four-way set associative Approximated LRU replacement 32 bytes Write-back PowerPC 604 Split intruction and data caches 16 KB each for instructions/data Four-way set associative LRU replacement 32 bytes Write-back or write-through
Intel Pentium Pro 32 bits 32 bits 4 KB, 4 MB A TLB for instructions and a TLB for data Both four-way set associative Pseudo-LRU replacement Instruction TLB: 32 entries Data TLB: 64 entries TLB misses handled in hardware
PowerPC 604 52 bits 32 bits 4 KB, selectable, and 256 MB A TLB for instructions and a TLB for data Both two-way set associative LRU replacement Instruction TLB: 128 entries Data TLB: 128 entries TLB misses handled in hardware
57
Referncias
Dasgupta, S. Computer architecture. A modern synthesis. Vol 1: Foundations. Wiley. John Kubiatowicz http://www-inst.eecs.berkeley.edu/~cs152/ Patterson, D. A., Hennessy, J. L., Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann.
Pseudo-LRU
The Pentium processor with MMX technology employs a pseudo-LRU replacement algorithm which requires three blts per set in each of the caches. When a line must be replaced, the cache will first select which of l0:l1 and l2:l3 was least recently used. Then the cache will determine which of the two lines was least recently used and mark it for replacement. This decision tree is shown in Figure 2-7.
58