Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Memoria Cache Puc-Rs, Notas de estudo de Eletrônica

Memoria Cache

Tipologia: Notas de estudo

2013

Compartilhado em 20/05/2013

synty-x-12
synty-x-12 🇧🇷

5

(4)

47 documentos

1 / 19

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
César A. F. De Rose e FernandoGehm Moraes 1 Arquitetura de Computadores II- 01/03/05
ARQUITETURA DE COMPUTADORES II
UNIDADE 2: GERÊNCIA DE MEMÓRIA
Conteúdo:
1 INTRODUÇÃO ................................................................................................................. 2
1.1 Exemplo da Biblioteca................................................................................................ 2
2. HIERARQUIA DE MEMÓRIA.......................................................................................... 4
3 GERÊNCIA DE MEMÓRIAS CACHE................................................ ............................... 6
3.1 Mapeamento de endereços em memória cache ........................................................ 6
3.1.1 Mapeamento Direto.............................................................................................. 6
3.1.2 Mapeamento Associativo ..................................................................................... 9
3.1.3 Mapeamento Conjunto associativo .................................................................... 12
Exercícios de dimensionamento de memórias cache .................................................... 15
Cache com mapeamento conjunto associativo (4 conjuntos) ..................................... 16
Cache com mapeamento totalmente associativo........................................................ 16
Cache com mapeamento direto .................................................................................. 17
Cache com mapeamento conjunto associativo (16 conjuntos) ................................... 18
Cache com mapeamento totalmente associativo........................................................ 18
Cache com mapeamento direto .................................................................................. 19
3.2 Integridade dos dados na cache ................. ............................................................. 20
3.2.1 Write-through (escrevo através)......................................................................... 20
3.2.2 Write-back (escrevo de volta)............................................................................. 21
3.3 Passos para escrita e leitura na cache..................................................................... 21
3.3.1 Leitura ................................................................................................................ 21
3.3.2 Escrita ................................................................................................................ 22
4 GERÊNCIA DA MEMÓRIA PRINCIPAL......................................................................... 22
4.1 Histórico da gerência de memória............................................................................ 23
4.2 O problema da fragmentação de memória............................................................... 24
4.3 Endereçamento da memória principal...................................................................... 24
4.3.1 Endereçamento contíguo ................................................................................... 25
4.3.2 Endereçamento não-contíguo............................................................................ 26
4.3.3 Otimização do endereçamento não-contíguo (TLB)........................................... 33
4.4 Memória Virtual........................................................................................................ 34
4.5 Estudo de Casos...................................................................................................... 36
4.5.1 UNIX e SOLARIS............................................................................................... 36
4.5.2 Linux................................................................................................................... 36
4.5.2 IBM OS/2 (hardware Intel).................................................................................. 37
4.5.3 Windows 2000.................................................................................................... 37
5 EXERCÍCIOS................................................................................................................. 38
César A. F. De Rose e FernandoGehm Moraes 2 Arquitetura de Computadores II- 01/03/05
1 INTRODUÇÃO
Nos últimos anos vem se investindo muito no aumento da velocidade dos
processadores, que está ocorrendo de forma significativa
Porém, a velocidade de processamento de um sistema não é determinada somente
pela velocidade do processador
Pouco adianta um processador muito rápido se a alimentação deste processador com
dados não conseguir acompanhar, pelo menos aproximadamente, o mesmo ritmo
Como tanto o fornecimento de dados, como o seu posterior armazenamento após o
processamento são efetuados na memória, a velocidade média de acesso a memória
é um componente importante no cálculo da velocidade de processamento de um
sistema
Além da velocidade, o tamanho da memória é importante, já que ela funciona como
uma área de armazenamento temporário para dados que serão armazenados na
memória secundária (discos rígidos, óticos, etc.), que é ainda mais lenta
Ideal seria:
Memória de tamanho ilimitado
Memória com um tempo de acesso muito rápido
Objetivos são contraditórios
Por problemas tecnológicos, quanto maior a memória mais lento será o seu tempo
de acesso o que faria com que o caso ideal, com a atual tecnologia, não possa
ser alcançado
Solução: criar uma ilusão para o processador de forma que a memória pareça ilimitada
e muito rápida.
1.1 Exemplo da Biblioteca
Um estudante recebe a tarefa de redigir um trabalho sobre os Sistemas Operacionais
encontrados no mercado e suas principais características
Ele se dirige a biblioteca, senta em uma cadeira e inicia sua pesquisa
Transferência
1 minuto
Procura
1 minuto
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Pré-visualização parcial do texto

Baixe Memoria Cache Puc-Rs e outras Notas de estudo em PDF para Eletrônica, somente na Docsity!

César A. F. De Rose e Fernando Gehm Moraes

1

Arquitetura de Computadores II - 01/03/

ARQUITETURA DE COMPUTADORES II

UNIDADE 2: GERÊNCIA DE MEMÓRIAConteúdo: 1 INTRODUÇÃO ................................................................................................................. 2

1.1 Exemplo da Biblioteca................................................................................................ 2

  1. HIERARQUIA DE MEMÓRIA.......................................................................................... 43 GERÊNCIA DE MEMÓRIAS

CACHE

3.1 Mapeamento de endereços em memória

cache

3.1.1 Mapeamento Direto.............................................................................................. 63.1.2 Mapeamento Associativo ..................................................................................... 93.1.3 Mapeamento Conjunto associativo .................................................................... 12 Exercícios de dimensionamento de memórias

cache

Cache

com mapeamento conjunto associativo (4 conjuntos) ..................................... 16

Cache

com mapeamento totalmente associativo........................................................ 16

Cache

com mapeamento direto .................................................................................. 17

Cache

com mapeamento conjunto associativo (16 conjuntos) ................................... 18

Cache

com mapeamento totalmente associativo........................................................ 18

Cache

com mapeamento direto .................................................................................. 19

3.2 Integridade dos dados na

cache

3.2.1 Write-through (escrevo através) ......................................................................... 203.2.2 Write-back (escrevo de volta)............................................................................. 21 3.3 Passos para escrita e leitura na

cache

3.3.1 Leitura ................................................................................................................ 213.3.2 Escrita ................................................................................................................ 22 4 GERÊNCIA DA MEMÓRIA PRINCIPAL......................................................................... 22

4.1 Histórico da gerência de memória............................................................................ 234.2 O problema da fragmentação de memória............................................................... 244.3 Endereçamento da memória principal...................................................................... 24

4.3.1 Endereçamento contíguo ................................................................................... 254.3.2 Endereçamento não-contíguo ............................................................................ 264.3.3 Otimização do endereçamento não-contíguo (TLB)........................................... 33 4.4 Memória Virtual ........................................................................................................ 344.5 Estudo de Casos ...................................................................................................... 36

4.5.1 UNIX e SOLARIS ............................................................................................... 364.5.2 Linux................................................................................................................... 364.5.2 IBM OS/2 (hardware Intel).................................................................................. 374.5.3 Windows 2000.................................................................................................... 37 5 EXERCÍCIOS ................................................................................................................. 38

César A. F. De Rose e Fernando Gehm Moraes

2

Arquitetura de Computadores II - 01/03/

1 INTRODUÇÃO •^

Nos últimos anos vem se investindo muito no aumento da velocidade dosprocessadores, que está ocorrendo de forma significativa

-^

Porém, a velocidade de processamento de um sistema não é determinada somentepela velocidade do processador

-^

Pouco adianta um processador muito rápido se a alimentação deste processador comdados não conseguir acompanhar, pelo menos aproximadamente, o mesmo ritmo

-^

Como tanto o fornecimento de dados, como o seu posterior armazenamento após oprocessamento são efetuados na memória, a velocidade média de acesso a memóriaé um componente importante no cálculo da velocidade de processamento de umsistema

-^

Além da velocidade, o tamanho da memória é importante, já que ela funciona comouma área de armazenamento temporário para dados que serão armazenados namemória secundária (discos rígidos, óticos, etc.), que é ainda mais lenta

-^

Ideal seria:

-^ Memória de tamanho ilimitado –^ Memória com um tempo de acesso muito rápido -^

Objetivos são contraditórios

-^ Por problemas tecnológicos, quanto maior a memória mais lento será o seu tempo

de acesso o que faria com que o caso ideal, com a atual tecnologia, não possaser alcançado

•^

Solução: criar uma ilusão para o processador de forma que a memória pareça ilimitadae muito rápida.

1.1 Exemplo da Biblioteca •^

Um estudante recebe a tarefa de redigir um trabalho sobre os Sistemas Operacionaisencontrados no mercado e suas principais características

-^

Ele se dirige a biblioteca, senta em uma cadeira e inicia sua pesquisa

Transferência1 minuto

Procura1 minuto

César A. F. De Rose e Fernando Gehm Moraes

3

Arquitetura de Computadores II - 01/03/

•^

O algoritmo de acesso neste caso é o seguinte:

ir até a estante de livros

procurar livro desejado

levar livro até a cadeira

consultar livro

se não terminou ir para 1

•^

Considerando que o aluno precisa consultar 10 livros e que leva 1 minuto para buscarcada livro e 1 minuto procurando o livro desejado na estante, ele perderia 20 minutospara fazer o trabalho

-^

Isso se não tiver esquecido de consultar alguma coisa e necessitar buscar novamenteum livro que já consultou, o que custaria 2 minutos adicionais por livro

-^

Agora o aluno procura uma mesa vazia

-^

O algoritmo de acesso neste caso é o seguinte:

ir até a estante de livros

procurar livros desejados

levar livros até a mesa

consultar livros

se não terminou ir para 1

•^

Assumindo que a mesa tenha espaço suficiente, o aluno pode buscar os 10 livros deuma vez o que custaria 11 minutos (10 para a procura e 1 para a transferência).Depois são necessários mais 20 segundos para a consulta dos livros na mesa (1 paraa consulta e 1 para a transferência de cada livro), totalizando 11 minutos e 20segundos

-^

No caso de ter esquecido de algo, o custo para consultar um livro novamente cai para2 segundos assumindo que ele ainda se encontra na mesa

Transferência1 minuto

Procura1 minuto

Procura1 segundo Transferência1 segundo

César A. F. De Rose e Fernando Gehm Moraes

4

Arquitetura de Computadores II - 01/03/

•^

Situações complicadoras

-^ todos os livros que quero não cabem na mesa –^ vou tomar um café e chega um colega e pega a mesa (só que o trabalho dele é

sobre Arquitetura de Computadores)

•^

Posso ampliar o exemplo incluindo uma camada intermediária: uma folha de resumoentre a mesa e o aluno. Na folha são colocados os trechos dos livros que podeminteressar para o trabalho. O acesso a folha é mais rápido que a mesa, mas na folhacabem menos informações, e assim por diante

-^

Porque o tempo de acesso melhora na média?

Localidad

e

-^ trabalho restrito a um grupo de livros. Se o trabalho fosse catalogar todos os livros

da estante, sempre estaria tendo que consultar livros que não estariam na mesae teria que busca-los na estante (Localidade Espacial)

-^ de tempos em tempos noto que esqueci de algum dado de um determinado

sistema e volto a consultar um livro que já tinha consultado antes (LocalidadeTemporal)

2. HIERARQUIA DE MEMÓRIA •^

Ilusão de uma memória ilimitada e rápida obtida através da utilização de diversosníveis de acesso (mesmo princípio do exemplo da biblioteca - Localidade)

-^

Funciona porque programas que executam na CPU também possuem localidadeespacial e temporal

-^ se um endereço foi referenciado, existe grande probabilidade do endereço

seguinte ser referenciado em pouco tempo, Ex: Execução Seqüencial(Localidade Espacial)

-^ se um endereço foi referenciado, existe grande probabilidade de ser referenciado

novamente em pouco tempo, Ex: Loops (Localidade Temporal)

•^

Níveis intermediários usados para amortizar a diferença de velocidade entreprocessador e memória

L1 L

Registradores MemóriaPrincipalMemóriaSecundária

CPU

Maiortamanho

Maior

velocidade

Maiorcusto (MB)

César A. F. De Rose e Fernando Gehm Moraes

7

Arquitetura de Computadores II - 01/03/

00 01 10 11^0

1

2

3

0

1

2

31

00000

00100

11100

-^

Cada posição da

cache

pode ter 8 posições da memória

-^

Pergunta: como podemos obter rapidamente o mapeamento? Utilizando osdois bits menos significativos do endereço

•^

Pergunta: Como saber qual das possíveis palavras está realmente na

cache

? Se faz

necessário um

TAG

(rótulo) de identificação para cada posição da

cache

•^

No exemplo poderia usar os bits mais significativos que sobraram

-^

Pergunta: Só isto já basta? Não, ainda é necessário um

bit de validade

que indique

se a posição da

cache

está ocupada ou se contém lixo

•^

Dessa forma a

cache

de mapeamento direto do exemplo tem a seguinte estrutura

Bit de Validade

Tag

Dado

1

001

00110110

001

000

11100011

•^

Passos para um acesso

Calculo o módulo do endereço que procuro pelo número de posições da^ cache

(ou uso os bits menos significativos do endereço)

Verifico o bit de validade da posição da

cache

correspondente e se for

invalido acuso

miss

(vou para 4), senão verifico o Tag

Se Tag diferente do endereço procurado acuso

miss

(vou para 4), senão

tenho

hit

e leio a posição (fim)

Busco o dado no nível inferior coloco na posição e efetuo a leitura (fim)

•^

Divisão de bits no registrador de endereçamento

-^

Exemplo de uma

cache

com 1024 linhas (

10

) com palavra de 32 bits

César A. F. De Rose e Fernando Gehm Moraes

8

Arquitetura de Computadores II - 01/03/

22 bits

10 bits

Endereço 32 bits (4 Giga)

Dados

Tag

Válido 01... 1023

Hit

22 bits

Dados

32 bits

Tag

Linha

-^

Neste caso o espaço de endereçamento tem 4 Gigabytes (

32

-^

Pergunta: Já vimos que na realidade são transferidos blocos entre níveis.Como ficaria a divisão de bits neste caso?

-^

Exemplo de uma

cache

com 1024 linhas (bloco com 4 palavras de 32 bits)

20 bits

10 bits

Endereço 32 bits (4 Giga)

Dados

Tag

Válido 0 1. .. 1023

Hit

20 bits

Dados

32 bits

2 bits

Mux

Tag

Linha

P

=

-^

Pergunta: Considere agora um espaço de endereçamento de 1 Giga. Comoficaria a divisão de bits para uma

cache

de 2048 posições que trabalhe com

blocos de 8 palavras?

16 (Tag)

11 (Linha)

3 (Palavra)

Endereço de 30 bits (1 Giga)

César A. F. De Rose e Fernando Gehm Moraes

9

Arquitetura de Computadores II - 01/03/

-^

Pergunta: Quanto se tem efetivamente de dados nessa

cache

? (Bit de

validade + Tag + Dados) * linhas = (1+16+(832)) = 273 bits dos quais 832= 256 são dados. 256 * 100 / 273 = 93.77% (regra de três para uma linha)

•^

Exercício de mapeamento – Parênteses representam conteúdo da posição

Cache

Mapeamento Direto H^

Conteúdo da

cache

MP

M^

0

1

2

3

154

M

(154)

68

M

(68)

34

M

“^

(34)

67

M

“^

“^

(67)

154

M

“^

(154)

100

M

(100)

“^

67

H^

"^

“^

(67)

68

M

(68)

“^

69

M

“^

(69)

“^

70

M

“^

“^

(70)

68

H^

(68)

“^

“^

34

M

(68)

(69)

(34)

(67)

2

•^

Vantagens/Desvantagens dessa técnica de mapeamento

Barato (hardware)

Posso ter um mau aproveitamento

Procura é simples (posição fixacalculada)

das posições da

cache

(dependendo dos endereçosgerados)

Escolha da vítima não existe(é dada pelo módulo)

Uso parte da área da

cache

para

controle

Simplicidade / Velocidade

•^

Como poderia melhorar o mapeamento apresentado? Como retirar a dependênciaentre o endereço na memória e a posição da

cache

sem comprometer o desempenho

da procura? Não dá. Uso artifício para acelerar procura.

3.1.2 Mapeamento Associativo •^

Endereço da memória em qualquer endereço da

cache

(100% de aproveitamento).

Conseqüências:

-^

Tenho que fazer procura

1 (validade)

16 (tag)

8*32 (bloco de dados)

Linha da

Cache

César A. F. De Rose e Fernando Gehm Moraes

10

Arquitetura de Computadores II - 01/03/

-^

Preciso política de substituição (Quando tenho

miss

e busco no nível mais

abaixo, caso a

cache

já esteja cheia quem tirar para abrir lugar?)

•^

Solução para a procura: procura em paralelo. Uso memória associativa

-^

Memória cara e de tamanho limitado

•^

Solução para a substituição: uso política

-^

Possibilidades

-^

Randômica: escolho aleatoriamente uma posição a ser substituída

-^

LFU (

Least Frequent Used

) - a posição da

cache

que foi usada menos vezes

será substituída (menos freqüentemente usada) – preciso incrementar umcontador a cada acesso e comparação para escolha

-^

LRU (

Least Recent Used

) - a posição da

cache

que foi usada a mais tempo

será substituída (menos recentemente usada) – preciso incrementar umcontador a cada acesso e comparação para escolha

•^

Quero aproximação do melhor caso sem perder tempo …

-^

Passos para um acesso

Alimento a memória associativa com o Tag procurado

Se o Tag procurado não está na memória associativa tenho

miss

(vou para 4)

Senão tenho

hit

e acesso a memória

cache

com o índice fornecido pela

memória associativa e efetuo a leitura (fim)

Se não existir posição livre na

cache

escolho um endereço para substituir (LRU)

César A. F. De Rose e Fernando Gehm Moraes

13

Arquitetura de Computadores II - 01/03/

•^

Se

S

= 1 tenho mapeamento associativo e se

S

= número de blocos/palavras da

cache

tenho o mapeamento direto

-^

O endereço

i^

da memória principal pode mapear para qualquer endereço no conjunto

( i^

mod

S

) da

cache

-^

Tenho que fazer procura dentro do conjunto

-^

Preciso política de substituição (Quando tenho

miss

e busco no nível mais

abaixo, caso o conjunto já esteja cheio quem tirar para abrir lugar?)

•^

Passos para um acesso

Calculo o módulo do endereço que procuro pelo número de conjuntos S da^ cache

(ou uso os bits menos significativos do endereço)

Alimento a memória associativa deste conjunto com o Tag procurado

Se o Tag procurado não está na memória associativa tenho

miss

(vou para 5)

Senão tenho

hit

e acesso à memória

cache

com o índice fornecido pela

memória associativa e efetuo a leitura (fim)

Se não existir posição livre no conjunto escolho um endereço para substituir(LRU)

Busco o endereço procurado no nível mais baixo e coloco em uma posiçãolivre (ou escolhida) da

cache

cadastrando essa posição e Tag na memória

associativa do conjunto e efetuo a leitura (fim)

•^

Divisão de bits no registrador de endereçamento

-^

Exemplo de uma

cache

com 1024 posições (

10 ) com palavra de 32 bits e 2

conjuntos (S=2)

1

31 bits

Dados

0... 1023

Hit

Dados

32 bits

Memórias Associativas

1 bit

(^0151201512)

Endereço 32 bits (4 Giga)

Tag

C

-^

Neste caso o espaço de endereçamento tem 4 Gigabytes (

32

-^

Pergunta: Quanto se tem efetivamente de dados nessa

cache

César A. F. De Rose e Fernando Gehm Moraes

14

Arquitetura de Computadores II - 01/03/

-^

Pergunta: Qual o tamanho das memórias associativas?

Duas MAs

de

512 * 31 (tag) = 15872 bits / 8 = 1984 bytes / 1024 = 1,93 Kbytes

-^

Como ficaria a mesma

cache

com 4 conjuntos (S=4)?^1

30 bits

Dados

0 ... 1023

Hit

Dados

32 bits

Memórias Associativas

2 bits

Tag (^01256)

Tag (^01256)

Endereço 32 bits (4 Giga)

Tag

C

-^

Pergunta: Qual o tamanho das memórias associativas?

Quatro MAs

de

256 * 30 (tag) = 7680 bits / 8 = 960 bytes / 1024 = 0,94 Kbytes

-^

Pergunta: Já vimos que na realidade são transferidos blocos entre níveis.Como ficaria a divisão do endereço de uma

cache

conjunto associativa de 4

conjuntos com 2048 posições (bloco com 4 palavras de 32 bits)

•^

Exercício de mapeamento – Parênteses representam conteúdo da posição

Cache

Mapeamento Conjunto Associativo – 2 Conjuntos

Conteúdo da

cache

H^

Conjunto 1

Conjunto 2

MP

M^

0

1

2

3

154

M

(154)

68

M

“^

(68)

34

M

(34)

67

M

“^

“^

(67)

154

M

“^

(154)

100

M

(100)

“^

67

H^

"^

“^

(67)

68

M

“^

(68)

69

M

“^

“^

“^

(69)

70

M

(70)

“^

“^

68

H^

“^

(68)

“^

34

M

(34)

(68)

(67)

(69)

2

28 (Tag)

2 (Conjunto)

2 (Palavra)

Endereço de 32 bits (4 Giga)

César A. F. De Rose e Fernando Gehm Moraes

15

Arquitetura de Computadores II - 01/03/

•^

Quantidade de associatividade de uma

cache

é dada pelo número de Vias (

Ways

•^

Exemplo: uma

cache

de 8 posições pode ter de 1 a 8 vias (

ways

Vias / Ways

Mapeamento

Desenho

Direto

Conjunto-associativo

(2 conjuntos)Associativo Conjunto-associativo

(4 conjuntos)

•^

Exercício: Quantos conjuntos possui a

cache

L1 4-Way de 64 Kbytes de um

processador Ultra Sparc III (assumir bloco de 32 palavras de 64 bits)? –^

A família Ultra Sparc é utilizada nas estações SUN (A versão III possui um pipelinecom 14 estágios – Superpipeline)

Resposta: tamanho do bloco = 32 * 64 bits = 2048 bits = 256 bytes = 0,25 Kbytes

64 Kbytes / 0,25 Kbytes = 256 blocos / 4 (4-Way = quatro blocos por conjunto)= 64 conjuntos –

cache

conjunto-associativa com 64 conjuntos

•^

Vantagens/Desvantagens dessa técnica de mapeamento

Aumento o tamanho da

cache

mantendo o tamanho da memóriaassociativa (limitação tecnológicaou custo)

Memória associativa tem altocusto e tamanho limitado

Bastante flexível

Necessito política desubstituição

•^

Custa tempo

-^

Pode escolher mal

Uso a totalidade da área da

cache

para dados (os bits de controleestão nas memórias associativas)

Tempo de acesso maior(cálculo + consulta associativa)Dependendo da geração deendereços não aproveito atotalidade das posições da cache

Exercícios de dimensionamento de memórias

cache

A área de memória disponível para implementação de uma

cache

L2 é 512 Kbytes.

Considerando que a memória a ser endereçada possui 64 Mbytes (

26 ) e a

cache

53 (Tag)

6 (Conjunto)

5 (Palavra)

Assumindo um endereçamento de 64 bits

César A. F. De Rose e Fernando Gehm Moraes

16

Arquitetura de Computadores II - 01/03/

deve trabalhar com blocos de 16 palavras de 32 bits calcule para a técnica direta,totalmente associativa e conjunto associativa (4 conjuntos):

-^

Divisão de bits do endereço

-^

Aproveitamento efetivo da área da

cache

(relação entre dados e controle)

-^

Número de linhas da

cache

-^

Quantidade e tamanho em Kbytes das memórias associativas (quandonecessário)

Cache

com mapeamento conjunto associativo (4 conjuntos) – Divisão de bits do endereço: – Aproveitamento efetivo:

100% (só dados na

cache

, controle fica nas MAs)

-^

Número de linhas da

cache

Tamanho da linha?Cada linha tem bloco de 16 palavras de 32 bits = 16 * 32 = 512 bits / 8 = 64 bytesQuantas linhas cabem na

cache?

Cache

tem 512 Kbytes = 512 * 1024 = 524288 bytes / 64 =

8192 linhas

-^ Tamanho das memórias associativas:

Quantas?Uma para cada conjunto, ou seja 4Tamanho de cada uma?Cada linha da MA tem tamanho do Tag = 20 bitsO número de linhas da MA é igual ao número de linhas da

cache

que ela endereça.

Como a

cache

tem 8192 e são 4 MAs, cada MA endereça 8192 / 4 = 2048 linhas

Uma MA tem então 2048 (linhas) * 20 (tag) = 40960 bits / 8 = 5120 bytes / 1024 = 5 Kbytes

Cache

com mapeamento totalmente associativo – Divisão de bits do endereço: – Aproveitamento efetivo:

100% (só dados na

cache

, controle fica nas MAs)

-^

Número de linhas da

cache

Tamanho da linha?Cada linha tem bloco de 16 palavras de 32 bits = 16 * 32 = 512 bits / 8 = 64 bytesQuantas linhas cabem na

cache?

Cache

tem 512 Kbytes = 512 * 1024 = 524288 bytes / 64 =

8192 linhas

20 (Tag)

2 (Conjunto)

4 (Palavra)

Endereço de 26 bits (64 Mbytes) Endereço de 26 bits (64 Mbytes)

22 (Tag)

4 (Palavra)

César A. F. De Rose e Fernando Gehm Moraes

19

Arquitetura de Computadores II - 01/03/

-^

Número de linhas da

cache

Tamanho da linha?Cada linha tem bloco de 8 palavras de 16 bits = 8 * 16 = 128 bits / 8 = 16 bytesQuantas linhas cabem na

cache?

Cache

tem 256 Kbytes = 256 * 1024 = 262144 bytes / 16 =

16384 linhas

-^ Tamanho das memórias associativas:

Quantas?Uma única memória associativaTamanho da MA?Cada linha da MA tem tamanho do Tag = 25 bitsO número de linhas da MA nessa técnica é igual ao número de linhas da

cache

que

ela endereça. Como a

cache

tem 16384 a MA endereça 16384 linhas

Uma MA tem então 16384 (linhas) * 25 (tag) = 409600 bits / 8 = 51200 bytes / 1024=^

50 Kbytes

Cache

com mapeamento direto – Número de linhas da

cache

Tamanho da linha?Cada linha tem um bit de validade, os bits de Tag e bloco de 8 palavras de 16 bitsO problema é o tamanho do Tag pois como ele depende do número de linhas da cache

que é o que estou calculando tenho que experimentar ...

  1. com

12 bits

para linha (podendo endereçar

^4096

linhas da

cache

)

-^ Divisão de bits do endereço:

Tamanho da linha = 1+13 (Tag)+128 = 142 bits / 8 = 17.75 bytesQuantas linhas cabem na

cache?

Cache

tem 256 Kbytes = 256 * 1024 = 262144 bytes / 17.75 =

14768 linhas

  1. com

15 bits

para linha (podendo endereçar

^32768

linhas da

cache

)

-^ Divisão de bits do endereço:

Tamanho da linha = 1+10 (Tag)+128 = 139 bits / 8 = 17.37 bytesQuantas linhas cabem na

cache?

Cache

tem 256 Kbytes = 256 * 1024 = 262144 bytes / 17.37 =

15091 linhas

1 (Validade)

? (Tag)

128 (Bloco)

Conteúdo da linha

Poucos bits!!! Muitos bits!!!

13 (Tag)

12 (Linha)

3 (Palavra)

Endereço de 28 bits (256 Mbytes)

10 (Tag)

15 (Linha)

3 (Palavra)

Endereço de 28 bits (256 Mbytes)

César A. F. De Rose e Fernando Gehm Moraes

20

Arquitetura de Computadores II - 01/03/

  1. com

14 bits

para linha (podendo endereçar

^16384

linhas da

cache

)

-^ Divisão de bits do endereço:

Tamanho da linha = 1+11 (Tag)+128 = 140 bits / 8 = 17.5 bytesQuantas linhas cabem na

cache?

Cache

tem 256 Kbytes = 256 * 1024 = 262144 bytes / 17.5 =

14979 linhas

Cache

tem

14979 linhas

e Tag = 28 (endereço) – 3 (palavra) – 14 (linha) =

-^ Divisão de bits do endereço: –^

Aproveitamento efetivo:

Dados em cada linha: um bloco de 8 palavras de 16 bits = 128 bitsTamanho total da linha: 1 (validade) + 11 (Tag) + 128 (bloco) = 140 bitsPercentual de aproveitamento:

140 -> 100%128 ->

?%

(uso para dados)

Aproveitamento efetivo = 128 * 100 / 140 =

-^ Tamanho das memórias associativas:

Não utiliza MAs nessa técnica

3.2 Integridade dos dados na

cache

•^

Problema: ocorreu um

miss

e o endereço desejado foi buscado no nível inferior da

hierarquia de memória. Só que a

cache

está cheia e não há lugar para escrever este

dado. O algoritmo de substituição é acionado e uma posição é escolhida. Só que estesdados foram alterados e não podem ser simplesmente descartados.

-^

Este problema ocorre porque uma escrita foi efetuada apenas no nível da

cache

e as

cópias deste dado nos outros níveis não estão atualizadas

-^

Perguntas:

-^ Como saber que os dados foram alterados? –^ Como salvar essas alterações? –^ Em que momento salvar as informações? -^

Existem duas técnicas para manter a Integridade dos dados

-^ Write-through –^ Write-back

3.2.1 Write-through (escrevo através) •^

Técnica mais antiga

-^

Escrevo as alterações em todos os níveis (escrevo através)

11 (Tag)

14 (Linha)

3 (Palavra)

Endereço de 28 bits (256 Mbytes)

OK!!!

11 (Tag)

14 (Linha)

3 (Palavra)

Endereço de 28 bits (256 Mbytes)

César A. F. De Rose e Fernando Gehm Moraes

21

Arquitetura de Computadores II - 01/03/

•^

Quando? Sempre que escrevo

-^

Quanto? Somente a palavra alterada

-^

Vantagens / Desvantagens dessa técnica

Dado sempre atual em todos os

Escreve mais vezes

níveis

Precisa mais do barramento

Escreve menos dado

3.2.2 Write-back (escrevo de volta) •^

Técnica mais recente

-^

Escrevo alterações só quando substituo

-^

Quando: substituição

-^

Quanto: unidade do nível (bloco no caso da

cache

•^

Como sei quem foi alterado:

dirty-bit

(bit de sujeira) no bloco

•^

Vantagens / Desvantagens dessa técnica

Escreve menos vezes

Escreve mais dados de cada vez

Precisa menos do barramento

Aumento tempo de substituição

3.3 Passos para escrita e leitura na

cache

•^

Para solucionar o problema da integridade dos dados as técnicas acima sãoincorporadas nas operações de leitura e escrita

3.3.1 Leitura

Verifico se foi

hit

, se não foi vou para 3

Procuro por bloco desejado (Tag ou direto), leio e repasso ao processador. Voupara 8

Requisito ao nível mais baixo

Recebo bloco, procuro onde colocar e se

cache

cheia vou para 5. Se acho

posição livre escrevo bloco, leio a palavra desejada no bloco, repasso dado aoprocessador e vou para 8

Procuro bloco para substituir (uso política)

Se Write-back e

dirty-bit

ligado, salvo bloco a ser substituído no nível mais baixo

Substituo bloco, leio a palavra desejada no bloco e repasso dado aoprocessador

Pronto

César A. F. De Rose e Fernando Gehm Moraes

22

Arquitetura de Computadores II - 01/03/

3.3.2 Escrita

Verifico se foi

hit

, se não foi vou para 3

Procuro por bloco desejado (Tag ou direto) e escrevo. Se Write-through escrevopalavra também nos níveis mais baixos. Se Write-back ligo

dirty-bit

. Vou para 8

Requisito ao nível mais baixo

Recebo bloco, procuro onde colocar e se

cache

cheia vou para 5. Se acho

posição livre escrevo bloco e efetuo escrita da palavra. Se replicação Write-through escrevo palavra também nos níveis mais baixos. Se Write-back ligo dirty-bit

. Vou para 8

Procuro bloco para substituir (uso política)

Se replicação Write-back e

dirty-bit

ligado, salvo substituído no nível mais baixo

Substituo bloco e escrevo palavra. Se replicação Write-through escrevo palavratambém nos níveis mais baixos. Se Write-back ligo

dirty-bit

Pronto

•^

Pergunta: Para que buscar dados do nível mais baixo quando tenho

miss

na operação

de escrita se vou escrever os dados novamente? Para que buscar para escrever porcima? Porque só escrevo uma palavra e estou buscando o bloco. 4 GERÊNCIA DA MEMÓRIA PRINCIPAL •^

Referência: Stallings, Capítulos 7 e 8

-^

Em um sistema monoprogramado a memória principal é dividida em duas partes: umapara o sistema operacional (monitor residente, núcleo) e outra para o programa queestá sendo executado

-^

Em um sistema multiprogramado a memória “de usuário” ainda tem que ser divididaentre vários processos

-^

Essa divisão é feita pelo sistema operacional de forma dinâmica e é chamada deGerencia de Memória

-^

Uma gerência de memória eficiente é vital em um sistema multiprogramado. Sesomente poucos processos couberem na memória o processador ficará parado grandeparte do tempo esperando por operações de E/S. Sendo assim, uma técnica degerência que consiga colocar mais processos na memória melhora a taxa de utilizaçãodo processador e consequentemente o desempenho da máquina como um todo

-^

A memória principal pode ser vista como mais um nível da hierarquia de memória deforma que o princípio da gerência é o mesmo dos outros níveis: os dados mais usadossão trazidos para a memória para diminuir o tempo médio de acesso ao nível maisbaixo, neste caso o disco

César A. F. De Rose e Fernando Gehm Moraes

25

Arquitetura de Computadores II - 01/03/

4.3.1 Endereçamento contíguo •^

O programa é carregado inteiro em uma única área de memória contígua

-^

Posso ter duas formas de endereçamento no caso da gerência de áreas de memória contíguas

-^

direto

-^

relativo

Endereçamento Direto •^

Os endereços de um programa executável são usados diretamente no acesso àmemória principal

-^

Estes endereços são definidos

durante a compilação/lincagem

•^

A posição do programa na memória está assim definida e não pode ser alterada

Endereço do Programa

Memória Principal

•^

No caso de multiprogramação este tipo de endereçamento pode gerar conflitos noacesso à memória já que a posição do programa na memória foi definida semconhecimento do que estava alocado

Memória Principal

Programa B

Programa A

•^

Programas só podem ser carregados na memória se seus espaços de endereçamentosão disjuntos

-^

Uma alternativa é a definição dos endereços somente

durante a carga

do programa

•^

O espaço de endereçamento de um programa inicia sempre em 0 e podendo serfacilmente relocados na carga pelo carregador

César A. F. De Rose e Fernando Gehm Moraes

26

Arquitetura de Computadores II - 01/03/

ocupado

d:

MOV R1, adr

: :

+d

Programa Relocável

Memória Principal

Carregador

•^

A conversão dos endereços pode atrasar consideravelmente a operação de carga

-^

O programa não pode ser mudado de lugar durante a sua execução (compactação, swap

Endereçamento Relativo •^

Uma alternativa bem mais flexível é a composição do endereço somente

na hora do

acesso

-^

O programa é carregado para a memória com seus endereços relativos (espaço deendereçamento lógico inicia em 0)

-^

O processador possui um registrador de endereçamento (registrador de base) quecontém a base do espaço de endereçamento físico para cada programa

-^

Essa base é somada ao endereço relativo do programa em cada acesso à memória

Endereço do Programa

Memória Principal

Registrador de Base

d

b

b d

•^

O custo da conversão é pago em cada acesso à memória

-^

Nesse caso o programa pode ser trocado de lugar na memória em tempo de execução(compactação,

swap

4.3.2 Endereçamento não-contíguo •^

A quebra do programa em pedaços que são carregados em áreas distintas dememória sem a necessidade de respeitar qualquer ordem resulta em: –^

Um melhor aproveitamento da memória (menor fragmentação externa peloaproveitamento de lacunas)

-^

A gerência de memória fica mais trabalhosa

César A. F. De Rose e Fernando Gehm Moraes

27

Arquitetura de Computadores II - 01/03/

•^

A conversão de endereços é dita

dinâmica

•^

Os endereços do programa (endereços lógicos) são convertidos na hora do acesso emendereços físicos (normalmente feito em hardware para acelerar o procedimento, Ex.MMU –

Memory Manager Unit

•^

Posso ter três formas de endereçamento no caso da gerência de áreas de memória não-contíguas

-^

Paginação

-^

Segmentação

-^

Segmento-paginação

Endereçamento Paginado •^

Memória física quebrada em

frames

(moldura) com um tamanho fixo de 2k, 4k, ou 8k

•^

Espaço de endereçamento lógico do programa quebrado em

páginas

que possuem o

mesmo tamanho dos frames

-^

Quando o processo é executado todas as suas páginas são carregadas para frameslivres da memória (qualquer página em qualquer frame livre)

-^

Unidade de gerência de memória de tamanho

fixo

(página-frame)

Frame 0Frame 1Frame 2Frame 3Frame 4Frame 5Frame 6

Página 0Página 1Página 2Página 3Página 4Página 5Página 6

EE Lógico do Programa

13 Kbytes

Memória Principal

Página 2 Kbytes

•^

Conversão de endereços

p^

d

Base da tabela de páginas (registrador)

Tabela de Páginas (Page Table)

Memória Principal

f^

d

p^

f

Endereço Lógico

Endereço Físico

César A. F. De Rose e Fernando Gehm Moraes

28

Arquitetura de Computadores II - 01/03/

•^

Número de bits usados para

d

determina o tamanho das páginas (e frames)

•^

Número de bits usados para

p

determina o número máximo de páginas de um

processo

-^

Número de bits de

f^

determina o número total de frames da memória principal e é dado

pela divisão do tamanho da memória principal pelo tamanho da página (Ex: MP1Mbyte (

20

),^

p^

10 bits (

10

  • página de 1kbyte) resulta em 10 bits para

f^

10

frames na MP)

-^

Unidade de gerência de tamanho fixo não gera fragmentação externa e gerafragmentação interna

-^

A tabela de páginas (

page table

) é usada para a conversão de páginas em frames

(uma tabela para cada processo)

-^

Tabela de páginas pode ser armazenada em: –^

Registradores: rápido mas limita tamanho da tabela

-^

Memória principal (área do sistema): lento, pois são necessários dois acessos mastabela de páginas pode ter tamanho ilimitado (porém alguns sistemas limitam atabela pelo tamanho dapágina)

-^

TLB (

Translation Lookaside Buffer

): área de memória associativa usada como

cache

para as conversões mais efetuadas (ver 4.2.3)

•^

Tamanho da página –^

Pequena: menor fragmentação interna, tabela de páginas fica maior

-^

Grande: maior fragmentação interna, tabela de páginas fica menor

-^

Deve ser considerada também a operação de transferência para o nível maisbaixo, o disco, cuja unidade de transferência é o setor com normalmente 512 bytes

-^

Tabela de Frames (

Frame Table

) usada para controle de quais frames se encontram

livres ou não estão sendo mais usados (para alocação e substituição de páginas) –^

Uma tabela de frames para todo o sistema

-^

Seu tamanho é fixo, já que o número de frames da memória principal é conhecido(tamanho da memória / tamanho da página)

-^

Procura por first-“found” (qualquer lacuna serve para qualquer página)

-^

Possui campos adicionais para controle da política de troca de páginas (LRU, LFU)

-^

Quando os processos morrem suas páginas na tabela de frames são marcadas comolivres

-^

É possível o compartilhamento de frames entre vários processos (leitura) –^

Fácil de implementar com várias tabelas de página apontando para o mesmo frame

-^

Controle adicional para verificação de quando frame compartilhado pode serdesalocado

César A. F. De Rose e Fernando Gehm Moraes

31

Arquitetura de Computadores II - 01/03/

-^

Liberação de segmentos pode resultar na junção de vários segmentos e nadiminuição do número de entradas da tabela

-^

Possui campos adicionais para controle da política de troca de páginas (LRU, LFU)

-^

É possível o compartilhamento de segmentos entre vários processos (leitura) –^

Fácil de implementar com várias tabelas de segmento apontando para a mesmaárea de memória

-^

Controle adicional para verificação de quando segmento compartilhado pode serdesalocado

-^

Vantagens/Desvantagens dessa técnica

Fragmentação externa

Maior localidade na unidade degerência (dados dentro dosegmento estão relacionados)

Gerência da memória bem maiscomplexa que na paginação porcausa da unidade variável –^

Gerência da tabela de alocação

-^

Alocação e liberação de páginas

-^

Verificação de

segmentation

fault

Sem fragmentação interna(unidade de tamanho variável)

Compactação da memória pode sernecessária (alto custo)

Endereçamento Segmento-Paginado •^

Combinação entre segmentação e paginação

-^

Aproveito a visão lógica de memória mais próxima do usuário da segmentação e agerência de memória mais simples da paginação

-^

Usuário aloca segmentos e estes são mapeados em um grupo de páginas

-^

Memória física quebrada em

frames

(moldura) com um tamanho fixo de 2k, 4k, ou 8k

como na paginação, porém existe a informação de que páginas compõem cadasegmento

-^

Unidade de gerência de memória é na realidade de tamanho

fixo

(página-frame)

César A. F. De Rose e Fernando Gehm Moraes

32

Arquitetura de Computadores II - 01/03/

•^

Conversão de endereços

p^

d

Tabela de Páginas (Page Table)

Base da tabela de segmento (registrador)

Memória Principal

f^

d

p^

f

s

Tabela de Segmentos (Segment Table)

base

Endereço Lógico

Endereço Físico

•^

Seqüência de um acesso1.

Com o numero do segmento descubro na tabela de segmentos a base da tabela depáginas deste segmento (usando o registrador como base)

Com o número da página e a base da tabela de páginas descubro o framecorrespondente

Com o número do frame e o deslocamento dentro dele acesso a memória

-^

Unidade de gerência de tamanho fixo não gera fragmentação externa e gerafragmentação interna como na paginação

-^

Tabela de Segmentos (

Segment Table

) usada para a obtenção da base da tabela de

páginas do segmento desejado – uma para cada processo

-^

A tabela de páginas (

page table

) é usada para a conversão das páginas de cada

segmento em frames (uma tabela para cada segmento de cada processo)

-^

Tabela de Frames (

Frame Table

) usada para controle de quais frames se encontram

livres ou não estão sendo mais usados (para alocação e substituição de páginas)como na paginação –^

Uma tabela de frames para todo o sistema

-^

Seu tamanho é fixo, já que o número de frames da memória principal é conhecido(tamanho da memória / tamanho da página)

-^

Procura por first-“found” (qualquer lacuna serve para qualquer página)

-^

Possui campos adicionais para controle da política de troca de páginas (LRU, LFU)

-^

Quando os processos morrem suas páginas na tabela de frames são marcadas comolivres

César A. F. De Rose e Fernando Gehm Moraes

33

Arquitetura de Computadores II - 01/03/

•^

Vantagens/Desvantagens dessa técnica

Gerência da memória principal ésimples: -^

Substituição 1:1 (página eframe tem mesmo tamanho)

-^

Alocação com primeiro framelivre

Três acessos são necessários paracada operação com a memória

Segmento dá noção de localidadeà um grupo de páginas

Preciso mais memória para tabelas

Sem fragmentação externa (árealivre em frames, sempre cabempáginas)

Fragmentação Interna

4.3.3 Otimização do endereçamento não-contíguo (TLB) •^

Problema: tabelas de páginas e de segmento acabam ficando tão grandes queprecisam ser armazenadas na memória

-^

Dessa forma para cada acesso à memória se faz necessário no mínimo um outroacesso (na segmento paginada até dois acessos) para a obtenção das tabelasreduzindo consideravelmente a velocidade de acesso à memória

-^

Para acelerar a conversão é usada uma área de memória associativa adicionalchamada TLB –

Translation Lookaside Buffer

•^

A TLB funciona como uma

cache

guardando as conversões mais usadas

•^

Como é uma memória associativa, a procura é feita em paralelo em todas as suasposições

-^

Características –^

Tamanho da linha 4-8 bytes (pode conter segmento, página e frame)

-^

Número de linhas 24-1024Ex: TLB de um Pentium III possui 32 linhas

-^

Hit-time 1 ciclo, Miss-Penalty 10-30 ciclos

-^

Hit-ratio aproximadamente 99%Como pode ser tão alto? Devido a localidade dos acessos!!!

-^

Exemplo de utilização (segmento paginação)

César A. F. De Rose e Fernando Gehm Moraes

34

Arquitetura de Computadores II - 01/03/

Segmento

Deslocamento

Base da tabela (registrador)

MP

Página

Tabela de Segmentos

Tabela de Páginas Frame

Segmento

Página

TLB (Memória Associativa)

f^

d

•^

A TLB é consultada antes do acesso as tabelas e se ocorrer um hit retorna o framedesejado

-^

Ocorrendo um miss a consulta as tabelas é feita normalmente e o frame obtido écolocado na TLB no lugar da conversão menos recentemente utilizada (LRU)

4.4 Memória Virtual •^

Na gerência de memória convencional as unidades (páginas ou segmentos) de umprograma eram todas carregadas para memória principal antes de sua execução

-^

Como vimos anteriormente, devido as regras da localidade, um programa só precisade algumas dessas unidades em um determinado momento

-^

Dessa forma é possível gerenciar a memória de forma que só as unidades que sãonecessárias em um determinado momento se encontrem na memória principal

-^

A memória física pode ser melhor aproveitada dessa forma sendo possível: –^

A execução de um programa maior que a memória

-^

A execução de vários programas “ao mesmo tempo” que somados são maioresque a memória

-^

O processador gera endereços para um espaço de endereçamento lógico bem maiordo que o tamanho da memória física (daí o nome

virtual

já que essa quantidade de

memória não existe fisicamente na memória principal) e o SO aplica as seguintesregras: –^

Quando um processo inicia suas unidades não são todas carregadas para memória

-^

Nas tabelas de conversão de endereços é indicado que as unidades não estão namemória (Ex: bit de validade)

-^

Quando uma conversão de endereço se faz necessária, o sistema gera um

page-

fault

e manda buscar a página do disco (

são carregadas por demanda

). O

processo perde o processador

César A. F. De Rose e Fernando Gehm Moraes

37

Arquitetura de Computadores II - 01/03/

•^

Páginas de 4K na famíla X86 e 8k na famíla Alpha

-^

Para facilitar a portabilidade tem um nível intermediário de gerência de memória Architecture Independent Memory Model

-^

A substituição de páginas é feita com uma variação do algoritmo do relógio

-^

Alocação dinâmica feita na pilha do sistema (

stack

•^

Para as necessidades do kernel (pequenos blocos) é utilizado uma variação doalgoritmo de buddy. O linux implementa o Buddy sobre páginas mas subdivide-as emmenores unidades para melhor atender as necessidades do kernel

4.5.2 IBM OS/2 (hardware Intel)

Diretório

Deslocamento

Base da tabelaSegmentos (registrador)

MP

Página

Diretório

Tabela de Páginas

Frame

f^

d

Tabela de Descritores^ Descritor de^ Base da tabelade páginas

segmentos

Base da tabela dediretórios (registrador)

10

10

12

32

Seletor

Deslocamento

32

14

2 Proteção Endereço Lógico 48 bits

4.5.3 Windows 2000 •^

Utiliza uma variação da memória virtual paginada

-^

Divide o seu espaço de memória virtual de 4 Gigabytes (registrador de 32 bits) em 2Giga para os processos de usuário e 2 Giga para o sistema operacional

-^

Quando um processo de usuário é disparado ele recebe um número de frames dememória (

Working Set - WS

-^

Substituições de páginas são efetuadas apenas dentro deste WS, ou seja, sópáginas do mesmo processo são candidatas para a substituição

-^

Se o número de substituições de um processo for grande e bastante memóriaestiver disponível, o WS pode ser aumentado

-^

Se a memória livre ficar escassa, o sistema operacional diminui o WS dosprocessos de usuário retirando as suas páginas menos recentemente utilizadas

César A. F. De Rose e Fernando Gehm Moraes

38

Arquitetura de Computadores II - 01/03/

5 EXERCÍCIOS 1.

O que vem a ser uma hierarquia de memória? Qual problema tento resolver com essasolução?

Se o tempo para ler um dado da memória principal aumenta com os vários níveis deuma hierarquia de memória, como o tempo médio de acesso pode ficar melhor?

Qual o princípio que faz com que uma hierarquia de memória funcione e quais os seusdois tipos (cite exemplos práticos)?

O que vem a ser

miss-penalty

? Por que ele tem que ser necessariamente expresso

por um tempo médio?

Quais os dois principais problemas que os mapeamentos para memória

cache

tem

que resolver?

Compare o mapeamento de

cache

direto com o associativo em relação à política de

substituição, uso de área da

cache

com dados de controle, e a possibilidade de se ter

mau aproveitamento da

cache

Explique como funciona o mapeamento de

cache

conjunto associativo e responda

quais são as suas duas principais vantagens.

Para uma

cache

com 8 posições desenhe como fica a divisão de conjuntos no caso de

associatividade 1 way, 2 way, 4 way e 8 way.

Desenhe a divisão de bits do endereço lógico, calcule o aproveitamento efetivo e otamanho das memórias associativas em Kbytes (se for o caso) para as técnicas demapeamento de memórias

cache

direta, totalmente associativa e conjunto associativa

com 4 conjuntos (4 Gbytes de memória,

cache

com 1024 linhas, bloco de 8 palavras

de 32 bits)

  1. A área de memória disponível para implementação de uma

cache

L2 é 256 Kbytes.

Considerando que a memória a ser endereçada possui 256 Mbytes (

28

) e a

cache

deve trabalhar com blocos de 8 palavras de 16 bits calcule para a técnica direta econjunto associativa (16 conjuntos): Divisão de bits do endereço e número de linhasda

cachê.

  1. O que vem a ser o problema de integridade de dados na

cache

? Descreva de forma

sucinta as duas possíveis estratégias para sua solução.

  1. Por que preciso trazer um dado da memória principal para a

cache

no caso de uma

escrita? Este dado não vai ser de qualquer forma apagado pelo dado a ser escrito?

  1. Compare a técnica de gerência de memória paginada com a gerência segmentada em

relação a fragmentação gerada, alocação de unidades e substituição de unidades?

  1. Desenhe como fica a conversão de endereços na gerência de memória segmento-

paginada e descreva os passos de uma conversão.

  1. Faça uma tabela com o número de tabelas de páginas, tabelas de segmentos, tabelas

de frames e tabelas de gerência de memória para as três técnicas de gerência dememória vistas em aula.

  1. O que vem a ser

trashing

e qual a sua principal causa?