You are on page 1of 118

Fundamentos de Arquitetura de

Computadores

Prof. Marcos Quinet


Universidade Federal Fluminense UFF
Plo Universitrio de Rio das Ostras - PURO

Representao de Memria
Toda a informao com a qual um sistema
computacional trabalha est, em algum nvel,
armazenada em um sistema de memria, guardando
os dados em carter temporrio ou permanente.
Como j estudamos, a menor quantidade de
informao que podemos armazenar em um dgito
binrio, ou BIT. Utilizando um bit estamos limitados a
representar somente dois dados. Precisamos definir
agrupamentos de bits para representarmos mais
smbolos ou valores.
2

Representao de Memria
Para representarmos uma letra ou nmero atravs de bits
convencionou-se montar um agrupamento de 8 bits,
chamado de byte.
Inicialmente, dos 8 bits, 7 eram usados para combinaes,
permitindo 128 smbolos diferentes, e 1 bit usado para
controle de paridade. Hoje os sistemas so mais confiveis
e os 8 bits podem ser utilizados para combinaes,
permitindo 256 smbolos diferentes.
Um byte pode armazenar um caractere, que a unidade
bsica de armazenamento na maioria dos sistemas
computacionais.
3

Representao de Memria
Vrios padres de codificao de caracteres utilizando
bits foram criados, o que foi adotado pela maioria dos
fabricantes foi o ASCII American Standard Code for
Information Interchange.
Alguns dos padres existentes, como o ABNT
(Associao Brasileira de Normas Tcnicas) baseiam-se
no padro ASCII, fazendo adaptaes para smbolos
particulares de uma linguagem, como ~, ^ e .

Representao de Memria
Alguns exemplos de codificao ASCII:
A 10100001
5 01010101
Espao em branco 01000000

Os primeiros processadores tinham capacidade de


trabalhar com somente um caractere por vez, eram
chamados de processadores de 8 bits.
A palavra a quantidade de bits que uma UCP processa de
uma vez. Quanto mais palavras a UCP consegue processar,
maior sua velocidade. Uma UCP de 64 bits processa em
uma operao a mesma quantidade de dados que uma
UCP de 16 bits faz em quatro operaes.
5

Representao de Memria
O sistema de medida adotado para memria utiliza como
base 2 por estarmos lidando com o sistema binrio. Desta
forma, 2 elevado a dcima potncia (210 = 1024) de uma
unidade equivale a uma unidade no prximo nvel da escala
de valores

1024 bytes = 1 Kilobyte (KB)


1024 kilobytes = 1 Megabyte (MB)
1024 megabytes = 1 Gigabyte (GB)
1024 gigabytes = 1 Terabyte (TB)
1024 terabytes = 1 Petabyte (PB)
1024 petabytes = 1 Exabyte (EB)
1024 exabytes = 1 Zetabyte (ZB)
1024 zetabytes = Yottabyte (YB)
6

Tipos de Memria
Os componentes nos quais podemos armazenar
informaes em um sistema computacional,
chamados de memria do computador podem
formar em uma das seguintes classes:

Memria principal (RAM e ROM);


Memria secundria;
Memria cache;
Memria virtual.

Hierarquia de Memria
Custo alto
Velocidade alta
Baixa capacidade

Registradores

Memria cache
Memria
principal
Memria
secundria
Custo baixo
Velocidade baixa
Capacidade elevada

Hierarquia de Memria
As caractersticas levadas em considerao para a
utilizao de um tipo de memria em um sistema
computacional so o custo, a capacidade de
armazenamento e a velocidade de acesso
informao.
A medida que descemos na hierarquia de memria,
observamos que:

O custo por bit diminui;


A capacidade aumenta;
O tempo de acesso aumenta;
A frequncia de acesso memria pelo processador diminui.
9

Registradores
Registradores so dispositivos de memria presentes no interior da
UCP, construdos utilizando semicondutores (por isso so elementos
de armazenamento voltil).
Sua funo a de armazenar dados que sero utilizados pela UCP para
o processamento da instruo atual ou de uma das prximas; os
resultados de um processamento tambm precisam ser guardados
temporariamente na UCP para serem novamente utilizados pela ULA
ou para serem transferidos a um dispositivo de memria externo
UCP.
Registradores esto no topo da pirmide, portanto possuem baixa
capacidade de armazenamento (normalmente, o tamanho da palavra
do processador), alta velocidade e alto custo. Sua utilizao ser
estudada com mais detalhes durante o estudo da UCP.

10

Memria Principal - Introduo


No projeto de Von Neumann estava prevista uma rea
de memria a partir da qual estariam todos os dados
que seriam lidos e escritos pelo programa em
execuo; necessrio que esta memria apresente
baixo tempo de acesso, pois ser altamente dinmica,
com dados sendo inseridos e retirados de suas
posies de memria a todo momento.
Geometricamente, a memria principal organiza-se
como uma matriz, uma parte dos bits do endereo de
acesso representa a linha e a outra parte, a coluna
aonde est o dado desejado.
11

Comunicao entre Memrias


Na maioria dos sistemas de computao, a memria
principal considerada rpida, mas no existe em
grande quantidade, e a memria secundria barata e
existe em grande quantidade, mas muito lenta se
comparada com as demais. Deve-se analisar as
necessidades de tipo de memria do sistema, para que
este no seja desnecessariamente caro ou
insuportavelmente lento.
Na prtica as memrias so organizadas de modo que
as mais rpidas (e consequentemente, mais caras e de
menor capacidade de armazenamento) so localizadas
mais prximas do processador.
12

Comunicao entre Memrias


So armazenados nas memrias de alta velocidade os
dados e instrues que o processador vai utilizar com
mais frequncia. Em memrias mais lentas, com
grande capacidade de armazenamento podem ser
usadas para guardar dados e instrues que no sero
necessrios naquele momento.
As memrias so organizadas hierarquicamente de
forma a obtermos um sistema com desempenho
(velocidade) prximo ao da memria mas rpida e
custo por bit prximo ao da memria de menor custo.
13

Comunicao entre Memrias


Memria em 2 nveis:
Memria
secundria

Memria
principal

UCP

Memria em 3 nveis:

UCP

Cache

Memria
principal

Memria
secundria

A partir do Intel 80486 (8 Kbytes)

14

Interao entre UCP e Memria


Principal
Apesar de nosso componente bsico da memria
principal ser uma clula de bit, em uma referncia a
memria, o processador no realiza o acesso ao
contedo de uma nica clula de bit, mas sim a um
conjunto de clulas de bits.
O menor conjunto de clulas de bits onde feito o
acesso chamado de locao de memria.
Na maioria dos sistemas uma locao de memria
formada por 8 clulas de bit, logo uma locao de
memria conhecida como byte de memria.

15

Interao entre UCP e Memria


Principal
Em um acesso, a UCP deve fornecer uma identificao
da locao onde ser feito o acesso. Esta identificao
somente um nmero, chamado endereo de
memria.
De posse deste endereo, a memria principal
seleciona a locao correspondente e fornece UCP a
informao ali contida, no caso de um acesso de
leitura; em um acesso de escrita, a memria principal
armazena na locao indicada pelo endereo o dado
fornecido pela UCP.
16

Interao entre UCP e Memria


Principal
A memria principal e a UCP so interligados
atravs de trs barramentos distintos.
UCP

Um barramento formado por


n vias

Endereo
Dados
Controle
Informa o sentido da operao

Memria
Principal

17

Interao entre UCP e Memria


Principal
O barramento de endereo a via atravs da qual a
UCP transmite para a memria principal o endereo da
locao onde ser feito o acesso.
O barramento de dados a via atravs da qual o
contedo da locao transferida entre a UCP e a
memria principal.
Pelo barramento de controle trafegam diversos sinais,
atravs dos quais a UCP controla o acesso a memria,
indicando, por exemplo, se o acesso de leitura ou de
escrita.
18

Interao entre UCP e Memria


Principal
O nmero de vias no barramento de dados o fator determinante
para o desempenho do processamento do sistema.
O fator limitante para a quantidade de memria que pode ser
utilizada pelo sistema o nmero de vias do barramento de
endereo. Um sistema com barramento de n bits poderia enderear
at 2n locaes distintas de memria, porm, isso no significa que o
sistema possua essa capacidade de memria principal instalada; por
exemplo, sistemas baseados em processadores 80386 ou 80486 em
geral possuam no mximo 16 Mbytes de memria principal.
No caso de programas que utilizem uma capacidade de memria
maior do que a memria principal existente no sistema utilizado o
mecanismo de memria virtual.

19

Memria Principal
Memria Principal

UCP
Memria Auxiliar

Informaes/Dados

Leitura/
Escrita

RAM

Arquivos
Sistema operacional
Aplicativos, utilitrios
Dados carregados
da ROM
20

Memria Principal
Da capacidade total da memria principal, existir uma
rea reservada aonde estaro carregados os dados da
memria ROM, que apesar de estarem armazenados em
um circuito de memria no-voltil, ao iniciar-se o
computador so carregados para uma parte da memria
principal para que possam ser executados.
Memrias de somente leitura (ROM) tambm possuem a
caracterstica do tempo de acesso aleatrio, ou seja,
tambm podem ser referidas como RAM. A utilizao dos
termos RAM e ROM popularmente utilizado pelo
comrcio, no so empregados da forma mais correta
possvel
21

Memria Principal
A memrias principal implementada utilizando
semicondutores organizados em pastilhas, cuja
principal caracterstica de que operaes de leitura
e gravao possam ser realizadas rapidamente.
A memria principal voltil, isto , os dados nela
armazenados s existem enquanto alimentados
continuamente por corrente eltrica. No caso da
ausncia de corrente, todos os dados so
imediatamente apagados de forma irrecupervel. A
MP s pode ser usada para o armazenamento
temporrio de dados.
22

Organizao da Memria Principal


Endereo 0
Endereo 1
Endereo 2
Endereo 3

M bits
M bits
M bits

A memria principal
dividida em N clulas,
todas formadas pela
mesma quantidade de M
bits.

Bit 1

Bit 2

Bit M-1
23

Memria ROM
A memria principal formada por mdulos divididos
em duas categorias: leitura e escrita (que
popularmente tratada como RAM) e ROM.
A memria ROM (Read Only Memory memria
somente de leitura) previamente gravada, podendo
apenas ser acessada, e no modificada; os dados nela
armazenados mantm-se ntegros na ausncia de
energia eltrica; isso a caracteriza como uma
memria no-voltil
A memria ROM pode ser de trs tipos: PROM
(Programmable Read Only Memory), EPROM
(Erasable PROM) ou EEPROM (Electrically EPROM).
24

Memria ROM
A memria PROM permite apenas acessos para leitura
dos dados nela gravados. As memrias EPROM e
EEPROM podem ter seu contedo apagado atravs da
exposio a raios ultravioleta e corrente eltrica,
respectivamente.
Em um dos tipos de memria ROM so armazenadas
as sub-rotinas utilizadas pelo sistema operacional para
interao com o hardware do computador, conhecidas
como firmware. O mais conhecido firmware utilizados
em sistemas microcomputadores o BIOS (Basic
Input/Output System).
25

Memria RAM
A memria RAM (Random Access Memory) do
computador utilizada para a UCP efetuar acessos de
leitura e escrita ao dispositivo na qual esteja
implementada (por exemplo, bancos ou pentes de
memria).
As memrias do tipo RAM so utilizadas
fundamentalmente para o armazenamento de
instrues e dados de um programa em execuo.
O acesso aleatrio se refere ao fato de palavras
individuais da memria poderem ser acessadas
diretamente, utilizando uma lgica de endereamento
implementada em hardware.
26

Memria RAM
A caracterstica do acesso aleatrio (randmico)
considerada boa, pois o tempo de acesso igual para
todas as localidades de memria.
Em tecnologias de acesso sequencial, o tempo de
acesso proporcional localidade na qual a
informao se encontra. Por exemplo, se voc est na
primeira posio de memria de uma fita magntica,
para acessar o dado que est na ltima posio, devese passar toda a fita at alcanar o final da mesma. Se
em seguida quisermos acessar a segunda posio de
memria, a fita deve ser rebobinada quase at o
comeo. Na mdia, o tempo de acesso sequencial
sempre pior do que o aleatrio.
27

Tipos de Memria RAM


Dependendo dos materiais utilizados na fabricao
da memria, existem dois tipos de RAM: esttica
(SRAM Static RAM) ou dinmica (DRAM Dynamic
RAM).
SRAM e DRAM se diferem quanto capacidade de
armazenamento e ao tempo de acesso.
Uma DRAM constituda por clulas que armazenam
dados com a carga de capacitores, onde a presena
ou ausncia de carga em um capacitor representa um
dgito binrio 0 ou 1.
28

DRAM e SRAM
A DRAM requer uma regenerao peridica de carga
(refresh) para manter os dados nela armazenados,
pois um capacitor tem a tendncia natural de se
descarregar com o tempo.
Na memria SRAM os dgitos binrios so
armazenados utilizando configuraes flip-flop
(tambm chamado de latch) com portas lgicas,
mantendo
estes
dados
enquanto
houver
fornecimento de energia; um circuito flip-flop pode
ser usado como uma memria de 1 bit.
29

DRAM e SRAM
Nas memrias DRAM a clula de bit implementada
por um circuito eletrnico que ocupa uma rea de
integrao menor que a ocupada pelo circuito usado
nas memria SRAM.
Como a rea por clula bit menor, para a mesma
rea total de integrao o nmero total de clulas de
bit em uma DRAM maior, tornando-a mais densa.

30

DRAM e SRAM
As memrias SRAM possuem como vantagem sobre
as DRAM um tempo de acesso reduzido, chegando a
ter um tempo de acesso at quatro vezes menor (por
exemplo, para uma tecnologia de SRAM com tempo
de acesso de 15 ns, a DRAM apresenta um tempo de
acesso de 60 ns).
Enquanto a capacidade de armazenamento das
memrias DRAM cresce rapidamente, a diminuio
do tempo de acesso de cerca de 30% a cada dez
anos.
31

DRAM e SRAM
Dispositivos DRAM so utilizados em sistemas de
baixo e mdio custo, permitindo dotar o sistema com
uma capacidade de memria elevada, sem aumentar
significativamente seu custo.
Por apresentarem um custo mais elevado, as
memrias SRAM so utilizadas apenas para sistemas
de alto desempenho ou para implementar pequenas
pores de memria de funes especficas, como a
cache.

32

SRAM vs. DRAM


Transistores por
bit

Tempo de
acesso

Custo

Aplicaes

SRAM

1x

100x

Memrias
cache

DRAM

10x

1x

Memrias
principais

33

Memria Cache
A memria cache uma pequena poro de
memria inserida entre a UCP e a memria
principal.
UCP
Memria Cache
Endereo
Dados
Controle
Memria
Principal
34

Memria Cache
A memria cache implementada com o mesmo
tipo de circuito eletrnico usado nas clulas de bit
de uma memria RAM esttica (SRAM).
Devido ao custo, a capacidade de armazenamento
costuma ser da ordem de Kbytes. Nos sistemas mais
modernos j encontramos caches com 1 Mbyte ou
mais.
O tempo de acesso o mais baixo dentre os tipos de
memria, possibilitando que a UCP acesse os dados
ali armazenados em apenas um nico ciclo de clock.

35

Caching na hierarquia de memrias


Nvel k:

Nvel k+1:

48

Dispositivo menor, mais rpido,


mais caro no nvel k armazena
subconjunto de blocos do
nvel k+1

10
14

140
10

Dados so copiados entre nveis


em blocos

10

11

12

13

14

15

Dispositivo maior, mais lento,


mais barato do nvel k+1
particionado em blocos

36

Memria Cache
Neste modelo de organizao, o processador
direciona os acessos para a memria cache. Se o
dado referenciado encontra-se na cache, o acesso
completado em apenas um ciclo de clock.
Caso o dado referenciado encontre-se na cache,
dizemos que ocorreu um cache hit, caso contrrio,
ocorre um cache miss.
Quando ocorre um cache miss, um bloco contendo o
dado referenciado, mais os dados armazenados em
sua vizinhana, copiado da memria principal para
a memria cache.
37

Conceitos gerais de caching


Nvel
k:

14
12
0

4*
12

9
12
4*

Nvel
k+1:

Pede
12
2

14

Programa precisa do objeto d, que est


armazenado em algum bloco b
Acerto de cache (cache hit)
Programa encontra b na cache nvel k.

E.x., bloco 14.

Falta de cache (cache miss)

Pede
12

b no est no nvel k, ento a cache do

10

11

12

13

14

15

nvel k precisa pegar o bloco do nvel


k+1. Ex., bloco 12.
Se a cache do nvel k est cheia, ento
algum bloco corrente ter que sair
para dar lugar ao novo. Quem ser a
vtima?
Poltica de colocao: onde o novo
bloco deve ir ? Ex., b mod 4
Poltica de substituio: qual bloco
deve sair ? Ex., LRU
38

Localidade de Referncia
Somente aps a transferncia deste bloco de dados
para a memria cache o processador consegue
completar o acesso. Quando ocorre um cache miss, o
acesso consome vrios ciclos de clock para ser
completado.
Na prtica, observa-se que entre 90% e 98% dos
acessos resultam em um cache hit. Isso acontece
devido a uma propriedade exibida por vrios tipos de
programa, chamada propriedade da localidade de
referncia.
39

Localidade de Referncia
Segundo esta propriedade, os acessos memria que
acontecem ao longo da execuo de um programa so
uniformemente distribudos atravs da memria, mas
tendem a se concentrar em pequenas regies da
memria durante um certo intervalo de tempo.

40

Localidade de Referncia
endereo
de memria

tempo
41

Localidade de Referncia
Cada ponto no grfico representa a ocorrncia de um
acesso memria. A localidade de referncia mostra-se
no fato que, durante alguns intervalos de tempo, so
feitos acessos a locaes de memria em endereos
prximos.
O princpio da localidade diz que quando feito um
acesso a uma locao de memria, existe uma grande
probabilidade que acessos a locaes em endereos
vizinhos sejam feitos em endereos prximos. Na
memria cache, se estes acessos de fato acontecerem,
ocorrer um cache hit em todos os acessos, que sero
computados em um nico ciclo de clock.
42

Acesso Cache
A memria cache armazena os dados que se
encontram em regies da memria principal onde se
verifica uma concentrao de acessos.
Observe que a cache tem a capacidade de se adaptar
a mudanas nas regies de concentrao de acesso
que ocorrem ao longo da execuo de um programa.
Uma nova regio com concentrao de acessos
torna-se ativa quando feito um acesso a um dado
que se encontra distante dos dados que foram
acessados recentemente; como esse dado no est
na cache, ocorrer um cache miss.
43

Acesso Cache
Devido ao cache miss, sero copiados para a memria
cache no somente o dado referenciado, mas todos os
dados na vizinhana, que pertencem a nova regio
onde se concentraro os prximos acessos, que
resultaro em caches hit.
Com a utilizao de memria cache, apenas uma
pequena parcela dos acessos realizados sofrem com o
alto tempo de acesso da memria principal. Assim, as
memrias cache so extremamente importantes para
obter-se um melhor desempenho.

44

Acesso Cache
Normalmente, a frequncia de cache hit aumenta
medida que o tamanho da memria cache aumenta.
Porm, na prtica observamos que a partir de um
certo ponto o nmero de cache hits no aumenta
significativamente com o aumento da capacidade da
memria cache.
A partir deste ponto no compensa aumentar o
tamanho da cache, pois o aumento no custo do
processador no traz um benefcio proporcional.

45

Acesso Cache
Para minimizar os cache hits residuais (que podem
chegar a cerca de 10%), alguns sistemas utilizam duas
memrias cache, uma primria (L1) e outra
secundria (L2), em uma estrutura chamada de
memria cache em dois nveis.
A cache primria integrada ao processador, possui
um tamanho pequeno e apresenta um tempo de
acesso que permite acessos em um nico ciclo de
clock.

46

Conceitos gerais de caching


Tipo de cache miss:
Falta compulsria

Ocorrem porque a cache est vazia.


Falta por conflito

Ocorrem quando mltiplos objetos de dados so


mapeados em um mesmo bloco no nvel k.
Falta por capacidade

Ocorrem quando o nmero de blocos ativos da


cache maior que a capacidade da cache.

47

Cache Primria e Secundria


Os acessos a cache primria que resultam em miss
so direcionados para a cache secundria. Apesar de
um pouco mais lenta que a cache primria, ainda
significativamente mais rpida que a memria
principal.
Desta forma, os misses da cache primria
apresentam uma penalidade menor quando
capturados pela cache secundria do que se fossem
direcionados diretamente para a memria principal.

48

Organizao de memrias cache


A CPU procura por dados em L1, depois em L2 e finalmente
na memria principal.
UCP
registradores
barramento de
cache
L2 cache

L1
cache

interface de
barramento

ALU barramento
barramento de
de sistema memria
ponte
E/S

memria
principal

49

Organizao geral da memria


cache
1bit vlido t bits para
por linha tag por linha

conj. 0:

S = 2s
conjuntos

conj. 1:

valid

tag

valid

tag

valid

tag

valid

tag

B = 2b bytes
por bloco de cache

0 1

0 1

B1

B1

0 1

0 1

B1

B1

B1

B1

E linhas
por
conjunto

conj. S-1:

valid

tag

valid

tag

0 1

0 1

Tamanho da cache: C = B x E x S bytes


50

Endereamento de cache
Endereo A:
t bits
v

tag

tag

tag

tag

conj.0:

conj 1:

0 1

0 1

B1

0 1

0 1

B1

B1

B1

conj.
S-1:

tag

tag

0 1

0 1

B1
B1

s bits

b bits
0

m-1

<tag>

<nd. conj.> <offset>

A palavra no endereo A est na cache


se os bits de tag em uma das linhas vlidas
no conjunto <ind. conj.> so idnticos
aos bits do campo <tag>.
O contedo da palavra comea no
deslocamento de
<offset> bytes a partir do incio do bloco
51

Cache mapeada diretamente


Forma mais simples.
Caracterizada por ter uma linha por conjunto.

conj. 0:

valid

tag

bloco da cache

conj. 1:

valid

tag

bloco da cache

E=1 linha por


conjunto

conj. S-1:

valid

tag

bloco da cache

52

Accesso a caches mapeadas


diretamente
Seleo do conjunto feita pelos bits de ndice de
conjunto.
conj. selecionado

conj. 0:

valid tag

bloco da cache

conj. 1:

valid tag

bloco da cache

t bits
m-1

tag

s bits
00 001
ind. conj

b bits
offset

conj. S-1: valid tag

bloco da cache

53

Accesso a caches mapeadas


diretamente
Encontre uma linha vlida no conjunto selecionado
com campo tag idntico a bits de tag e extrai a
palavra desejada.
=1? (1) O bit vlido tem que ser 1
conj. (i)
1
0110
selecionado:
(2) Os bits de tags na linha
da cache tem que casar
=?
com os bits de tag do
endereo
t bits
0110
m-1
tag

w0 w1 w2 w3
(3) Se (1) e (2), ento
acerto,
e offset
seleciona
o byte inicial.

s bits

b bits
i
100
ind. conj. offset

54

Caches associativas por conjunto


Caracterizadas por mais de uma linha no conjunto.

conj. 0:

conj. 1:

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

E=2 linhas
por conj.

conj. S-1:

valid

tag

bloco de cache

valid

tag

bloco de cache

55

Acesso a caches associativas por


conjuntos
Seleo do conjunto igual memria mapeada
diretamente.
conj. 0:

Conj. selecionado

conj. 1:

valid tag

bloco de cache

valid tag

bloco de cache

valid tag

bloco de cache

valid tag

bloco de cache

m-1

t bits

s bits
00001

b bits

tag

nd. conj.

offset

conj. S-1:

valid tag

bloco de cache

valid tag

bloco de cache

56

Acesso a caches associativas por


conjunto
Compara o tag de cada linha vlida do conjunto
selecionado.
=1? (1) Bit vlido deve ser 1.
0

conj.(i)
selecionado):

1001

0110

(2) Os bits de tag em


uma das linhas de
cache tem que casar com
bits de tag do
endereo

w0 w1 w2 w3
(3) Se (1) e (2), ento
acerto, e offset seleciona
byte inicial.

=?
t bits
0110
m-1
tag

s bits

b bits
i
100
ind. conj.
offset

57

Caches totalmente associativas


Caracterizadas por um nico conjunto conter todas
as linhas.

conj. 0:

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

E=C/B linhas
em um
nico
conjunto

58

Acesso a caches totalmente


associativas
Conjunto 0 sempre selecionado.

conj. 0:

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

valid

tag

bloco de cache

t bits
m-1

tag

b bits
offset

valid

tag

bloco de cache

valid

tag

bloco de cache

59

Acesso a caches totalmente


associativas
Compara tag do endereo com campo tag da cache
(1) Bit vlido deve ser 1.

=1?

cache
inteira:

1001

0110

1001
=?
0110

0
(2) Os bits de tag em
uma das linhas de
cache tem que casar
com bits de tag do
endereo

w0 w1 w2 w3

=?
t bits
1001
m-1

tag

(3) Se (1) e (2), ento


b bits acerto, e
offset seleciona
100
0
offset
byte inicial.
60

Algoritmo de substituio de dados


Consiste em determinar qual o bloco da memria
cache deve ser retirado para ceder lugar a outro por
ocasio de uma falta.
No mapeamento direto no h opo!
Nos demais mapeamentos

LRU - Least Recently Used


FIFO - First In First Out
LFU - Least Frequently Used
Escolha aleatria

61

Poltica de escrita
A escrita sempre realizada na cache pela CPU.
Quando deve ser realizada na memria principal?
Problema: vrios processos em vrias CPU ou
dispositivos de E/S podem acessar um mesmo bloco
na MP.
valores diferentes para um mesmo dado!

Polticas de escrita:
write through
write back
write once

62

Poltica de escrita
Escrita em ambas (write through)
Sempre que se escreve na cache, escreve-se na memria principal;
Pode haver queda no desempenho.

Escrita somente no retorno (write back)


Escreve apenas quando o bloco substitudo: h bit de alterao;
A memria principal pode ficar desatualizada.

Escrita uma vez (write once)


utilizada quando h mltiplas CPUs;

A UCP que primeiro alterar o bloco autaliza-o na memria local,


avisando s demais;
As demais UCPs no utilizam mais o dado gravado na cache;
A atualizao final ocorre na substituio.
63

Memria Virtual
Como j vimos anteriormente, a memria principal
disponvel em um computador em geral bem menor
do que o tamanho mximo de memria permitido
pelo processador (por exemplo, em uma arquitetura
de 32 bits podemos enderear at 4 GB de memria
principal).
O mecanismo de memria virtual foi criado para
permitir a execuo de programas que necessitem de
mais memria do que a quantidade instalada no
sistema.

64

Fundamentos de Memria Virtual


Memria virtual separao da memria lgica do
usurio da memria fsica
somente uma parte do programa precisa estar na memria para
execuo;
espao de endereamento lgico pode ser muito maior que espao de
endereamento fsico;
permite o compartilhamento de espaos de endereos por vrios
processos;
compartilhamento possibilita criao mais eficiente de processos.

Memria virtual pode ser implementada por:


Paginao sob demanda;
Segmentao sob demanda.
65

Memria Virtual
Em um sistema de memria virtual, o endereo de
memria gerado pelo programa um endereo
virtual, sendo diferente do endereo real usado para
o acesso a memria principal.
Os possveis endereos virtuais que podem ser
gerados pelo programa formam o espao de
endereamento virtual, enquanto a faixa de
endereos na memria principal constitui o espao de
endereamento real.

66

Memria Virtual
Embora sob o ponto de vista do programa as
instrues e dados estejam armazenados no espao
de endereamento virtual, na realidade eles
continuam armazenados na memria principal,
representada pelo espao de endereamento real.
Esta diferena entre endereamento virtual e real
utiliza um mecanismo que faz a correspondncia
entre o endereo virtual gerado pelo programa e o
endereo real que ser usado para acessar a
memria principal, o gerenciador de memria
virtual, ou DAT (Dynamic Address Translator).
67

Memria Virtual
UCP

DAT
Endereo
Dados
Controle
Ligado ao barramento de endereo!

Memria
Principal

Sub-sistema de memria

68

Memria Virtual
Como a memria virtual pode ser muito maior do
que a memria principal presente, pode acontecer
que o bloco de dados referenciado pelo programa
no esteja presente na memria principal no
momento que referenciado.
Os blocos de dados e instrues de um programa em
execuo ficam armazenados na memria
secundria, que uma unidade de disco do sistema.

69

Memria Virtual
Na ausncia do bloco referenciado pelo programa no
momento que o DAT realiza o mapeamento, este
carregado da memria secundria para a memria
principal.
A operao de movimentao de blocos (swapping)
envolvem as seguintes questes:
Quando movimentar os blocos?
Onde colocar um novo bloco na memria principal?
Qual o tamanho ideal do bloco?

70

Memria Virtual Segmentao e


Paginao
Blocos de memria podem ser organizados de duas
formas: em segmentos ou pginas.
O segmento pode ser formado por um bloco de
informaes logicamente relacionadas (por exemplo,
os dados armazenados em uma matriz); os
segmentos podem ter tamanho varivel.
Uma pgina um bloco de dados de tamanho fixo e
no segue nenhuma coeso lgica, isto , os dados
podem no ter relao entre si.
71

Segmentao e Paginao
O DAT possui uma pequena memria interna
chamada TLB (Translation Lookaside Buffer), que
armazena os pares de endereos virtual/principal
acessados recentemente, como uma memria cache.
No acesso a uma posio de memria virtual, se o
dado requerido no possui um registro relacionando
com a memria principal, o bloco de dados tambm
no se encontra na memria principal. Essa ausncia
de bloco denominada falha de pgina ou falha de
segmento.
72

Controle de Memria Virtual


Ao ocorrer uma falha o DAT gera uma interrupo,
transferindo o controle do processador para o sistema
operacional, para que este transfira o bloco de dados
referenciado da memria secundria para a memria
principal.
Aps a transferncia do bloco de dados ser concluda,
o controle do processador retorna ao programa em
execuo, exatamente para o ponto onde foi
interrompido, agora com os dados referenciados
presentes na memria principal.
73

Controle de Memria Virtual


Com a utilizao da memria principal, no
necessrio que todas as instrues e dados de um
programa permaneam na memria principal durante
a execuo do programa, blocos so transferidos da
memria secundria para a principal a medida que
forem referenciados.
importante ressaltarmos que todo o mecanismo de
memria virtual funciona de forma totalmente
transparente para o programa, e mais importante,
para o programador que o desenvolveu.
74

Memria virtual maior que


memria fsica

75

Paginao sob demanda


Uma pgina colocada na memria somente
quando se necessita dela

Menos E/S para carregamento e swap de programas;


Menos memria para os processos;
Resposta mais rpida;
Maior nmero de usurios.

Se necessita de uma pgina quando uma referncia


feita a ela
referncia invlida aborta;
no-est-na-memria traz para memria.

76

Transferncia de memria paginada para


espao de disco contnuo

77

Bit vlido
vlido--invlido
Cada entrada da tabela de pginas possui um bit
vlido-invlido
associado,
representando:
1 est na memria, 0 no est na memria
Inicialmente bit vlidoinvlido colocado em 0
em todas as entradas da tabela.

78

Bit vlido
vlido--invlido
Exemplo:
Frame #

Bit de validao

1
1
1
1
0
M
0
0
Tabela de pgina

Bit vlido-invlido igual a 0 quando estiver sendo realizada uma


traduo de endereos falta de pgina (page fault).
79

Tabela de pginas quando algumas pginas


no esto na memria principal

80

Falta de pgina
A primeira referncia a uma pgina sempre ir gerar
uma exceo ao sistema operacional indicando uma
falta de pgina.
S.O consulta uma tabela interna para verificar se a
referncia invlida (processo ser abortado) ou se
a pgina no est na memria.
Obtm um frame (pgina na memria principal)
livre;
Traz a pgina do disco para o frame;
Atualiza bit vlido nas entradas das tabelas.
81

Tratando uma falta de pgina

82

O que acontece se no existir frame


livre ?
Substituio de pgina encontra uma pgina que
est na memria mas no est sendo utilizada e a
coloca no disco.
algoritmo utilizado deve fornecer menor nmero de faltas de
pginas.

A mesma pgina pode ser trazida para a memria


vrias vezes.

83

Thrashing
Se um processo no possui pginas suficientes para
ser executado na memria, a taxa de falta de pginas
pode se tornar muito alta.
baixa utilizao de CPU
sistema operacional acha que precisa aumentar o nvel de
multiprogramao
permite que outro processo entre para ser executado causando
mais faltas de pgina

Thrashing: um processo est ocupado realizando a


troca de pginas entre a memria e o disco.

84

Thrashing

85

Memria Secundria
Dispositivos de memria secundria so necessrios a
qualquer sistema de computao, pois nenhum
computador fica ininterruptamente ligado, ou seja, os
dados e instrues no podem ficar armazenados
indefinidamente na memria principal.
necessrio um meio de armazenamento mais
permanente dos dados. Estes meios podem ser
atravs de mdias magnticas (disquetes, HDs) ou
dispositivos de armazenamento ptico (CDs, DVDs).

86

Geometria dos discos


Um disco consiste de pratos, cada qual com duas
superfcies.
Cada superfcie consiste de anis concntricos
denominados trilhas.
Cada trilha consiste de setores separados por
espaos.
trilhas

superfcie

trilha k espaos

eixo

setores
87

Discos com mltiplos pratos


Trilhas alinhadas formam um cilindro.

cilindro k
superfcie 0

prato 0

superfcie 1
superfcie 2

prato 1

superfcie 3
superfcie 4

prato 2

superfcie 5
eixo

88

Operao do disco
A cabea de leitura/escrita
est ligada ao final do brao
e flutua sobre a superfcie
do disco em cima de uma
fina camada de ar

spindle

spindle

A superfcie do
disco gira com
uma velocidade
de rotao
constante
spindle

eixo
spindle

O brao pode posicionar a


cabea sobre qualquer trilha
atravs de um movimento
radial
89

Operao de disco com mltiplos


discos
cabeas de leitura/escrita
se movem em conjunto
de cilindro para cilindro

brao

eixo

90

Capacidade do disco
Capacidade: nmero mximo de bits que podem ser armazenados
expresso em gigabytes (1 GB = 109).
Fatores que determinam a capacidade:
Densidade de gravao (bits/in): nmero de bits que podem ser
gravados em 1 polegada de uma trilha.
Densidade de trilha(trilhas/in): nmero de trilhas que podem existir
em um segmento radial.
Densidade de armazenamento (bits/in2): produto da densidade de
gravao com densidade de trilha.
Disco modernos particionam as trilhas em conjuntos disjuntos
denominados zonas de armazenamento.
Cada trilha em uma zona possui o mesmo nmero de setores,
determinado pela circunferncia da trilha mais interna.
Cada zona possui um nmero diferente de setores/trilha.
91

Calculando capacidade de disco


Capacidade = (# bytes/setor) x (md. # setores/trilha) x
trilhas/superfcie) x (# superfcies/prato) x(# pratos/disco)
Exemplo:

(#

512 bytes/setor
300 setores/trilha (em mdia)
20.000 trilhas/superfcie
2 superfcies/prato
5 pratos/disco

Capacidade = 512 x 300 x 20000 x 2 x 5


= 30.720.000.000
= 30,72 GB

92

Tempo de acesso ao disco


Tempo mdio de acesso a um setor desejado:
Tacesso = Tmed procura + Tmed rotao + Tmed transferncia

Tempo de procura (Tmed procura)


Tempo para posicionar as cabeas no clindro que contm o setor
desejado
Tpico Tmed procura = 9 ms

Latncia rotacional (Tmed rotao)


Tempo de espera para que o primeiro bit do setor passe pela cabea
Tmed rotao = 1/2 x 1/RPMs x 60 seg/1 min

Tempo de transferncia (Tmed transferncia)


Tempo para ler os bits do setor
Tmed transferncia = 1/RPM x 1/(med # setores/trilha) x 60 segs/1 min.

93

Exemplo
Dados:
Velocidade de rotao= 7.200 RPM
Tempo mdio de procura = 9 ms.
Med # setores/trilha = 400.
Teremos:
Tmed rotao = 1/2 x (60 segs/7200 RPM) x 1000 ms/seg = 4 ms.
Tmed transferncia = 60/7200 RPM x 1/400 segs/trilha x 1000 ms/seg =
0.02 ms
Tacesso = 9 ms + 4 ms + 0.02 ms
Pontos importantes:
Tempo de acesso dominado pelo tempo de procura e latncia rotacional.
Tempo de acesso da SRAM 4 ns/doubleword, DRAM por volta de 60 ns
Disco aprox. 40.000 vezes mais devagar que SRAM, e 2.500 vezes
mais devagar que DRAM.
94

Blocos lgicos
Discos modernos apresentam uma viso abstrata
mais simples da geometria complexa de setores:
O conjunto de setores disponveis modelado como uma sequncia de
blocos lgicos de tamanho b

O mapeamento entre os blocos lgicos e fsicos


realizado pelo hardware/firmware dos controladores
de disco.
Permite que o controlador separe cilindros
sobressalentes para cada zona.

95

Discos Rgidos
Tcnica para reduzir o tempo de acesso:
entrelaamento (interleaving):
Setores so numerados com um espao entre eles;
Entre o setor K e o setor K+1 existem n (fator de
entrelaamento) setores;
Nmero n depende da velocidade do processador,
do barramento, da controladora e da velocidade de
rotao do disco;

96

Discos Rgidos
Exemplo: trilhas com 16 setores
14 15 0
1
13
2
12

10 5
15
4
5

8 7
Disco A
N=0

11
6

11
10

1
12

9
14

7
3

8 13
Disco B
N=2

97

Organizao do Disco Setor de Boot


Nem toda a rea disponvel no disco pode ser utilizada para a
gravao de arquivos de dados, necessrio reservar certas
pores para operaes necessrias a qualquer sistema, como
o setor de boot e tabelas de alocao de arquivos.
A BIOS (Basic Input/Output System) l um setor especfico do
disco rgido, chamado se setor de boot mestre MBR (Master
Boot Record), que armazena a tabela de partio, que indica
qual partio do disco ser usada para o boot.
O setor de boot o primeiro setor de rea reservada, e
armazena o bloco de parmetros da BIOS que descreve a
partio do disco, e ainda, pode conter um programa que inicia
a carga do sistema operacional, chamado de bootstrap loader.
98

Organizao do disco - endereamento


Para que o sistema operacional seja capaz
recuperar dados rapidamente de um sistema
memria de armazenamento secundrio,
necessria a utilizao de um sistema
endereamento, denominado genericamente
formatao.

de
de

de
de

A formatao organiza trilhas e setores do disco em


regies onde os dados so, de fato, gravados; o
tamanho destas regies varia segundo o processo de
formatao utilizado.
99

File Allocation Table - FAT


Toda a rea de arquivos divida em clusters. Arquivos so
alocados nessa rea um cluster de cada vez, mas no
necessariamente em clusters adjacentes. Utilizamos uma
tabela de alocao de arquivos (FAT- file allocation table)
para encadear todos os clusters de um arquivo.
Para cada cluster na rea de arquivos existe uma entrada
na FAT, contendo um ponteiro, que nada mais do que
um endereo de cluster. Desta forma, um arquivo
representado por uma cadeia de entradas na FAT, cada
entrada apontando para a prxima entrada na cadeia.

100

File Allocation Table FAT


Dependendo da quantidade de bits utilizada no
endereamento, podemos indexar uma diferente
quantidade de clusters.
O tamanho mnimo j adotado para um cluster de 512
bytes. Em um sistema FAT-16, temos 16 bits disponveis
para o endereamento de memria, ou seja, podemos
enderear 216 = 65.536 posies diferentes. Se cada
cluster tem 512 bytes, ento 512 x 65.536 = 33.554.432
bytes, ou 32 MB.
Para enderear uma maior quantidade de espao em
disco necessrio utilizar cluster de maior capacidade e
um sistema de endereamento com mais bits, como o
FAT-32.
101

Exemplo de FAT
FAT
Cluster inicial

ARQUIVO

TXT

0003

0000

0006

0000

BAD

0007

FFFF 0000
7

9
102

Organizao do Disco Clusters


Cluster a menor unidade de rea alocada pelos
sistemas operacionais que trabalham com o padro
FAT nas regies de armazenamento de arquivos. Um
cluster pode ser formado por um ou mais setores.
Sempre que o sistema operacional necessita alocar
uma rea na regio de dados, em operaes como a
criao de um arquivo ou um diretrio, sempre
utilizado um nmero inteiro de clusters.

103

Organizao do Disco Clusters


Dependendo do tamanho atribudo aos clusters,
podemos encontrar duas situaes que levam o
sistema a apresentar um desempenho abaixo do
possvel. So elas:
Clusters pequenos: grande fragmentao de arquivos
(fragmentao externa);
Clusters grandes: espao ocioso em disco, pois os
arquivos ocuparo pouco espao em cada cluster
(fragmentao interna).

104

Fragmentao
Arquivos sofrem alteraes quando uma certa
quantidade de bits que os compem so alterados,
eliminados ou atualizados.
Nem sempre os espaos disponveis podem ser
reutilizados de imediato, fazendo com que a memria
fique cheia de buracos.

105

Fragmentao
A fragmentao interna ocorre quando a rea mnima de
gravao que definimos para arquivos no totalmente
utilizada.
A fragmentao externa ocorre quando temos muitas sobras
de espaos, que so muito pequenas para armazenar qualquer
informao.
O problema de fragmentao externa pode ser resolvido
atravs da operao de desfragmentao, mas
computacionalmente muito custosa.

106

NTFS
Para discos de maior capacidade, procuramos reduzir o
tamanho do cluster, para evitar a fragmentao interna, e a
consequente perda de espao de armazenamento.
O NTFS (New Technology File System) foi desenvolvido pela
Microsoft para ser utilizado pelo Windows NT para ser um
sistema de arquivos mais flexvel, confivel, adaptvel, seguro e
veloz para operaes com arquivos, como leitura, escrita e
busca.
O acesso direto ao setor fsico, de 512 bytes, independente
do tamanho do disco.
Com parties NTFS ainda possvel armazenar um maior
volume de dados, suporte a nomes longos de arquivos e
facilidades para operaes de rede.
107

Parties
Discos podem ser divididos logicamente em espaos
que chamamos de parties, com o objetivo de
realizar um melhor gerenciamento de uma grande
quantidade de dados.
Cada partio contm seu prprio setor de boot, o
que quer dizer que cada uma pode ter seu prprio
sistema operacional.
No primeiro setor fsico do disco rgido fica
armazenado o MBR (Master Boot Record), que uma
tabela de partio, onde ficam armazenadas as
informaes sobre as parties.
108

Parties
Junto ao MBR fica armazenado um programa de prboot, que manipula a tabela de partio,
determinando de qual partio ser realizada a
inicializao (boot) do computador. Somente uma
partio pode ser considerada ativa por vez.
Parties estendidas no contm em seu primeiro
setor lgico um setor de boot, mas uma tabela de
particionamento secundria, contendo apenas o
tamanho do disco atual e o endereo que indica o
prximo disco, caso este exista.
109

CD--ROM de armazenamento ptico


CD
Originalmente para udio.
650 MB gerando mais de 70 minutos de udio.
Policarbonato
com
cobertura
altamente
reflexiva,
normalmente alumnio.
Dados armazenados como sulcos, na forma de uma espiral,
que abrange toda a estrutura fsica do disco.
Lidos pela reflexo do laser.
Densidade de empacotamento constante.
Velocidade linear constante.
Somente para leitura (CD-ROM), gravvel uma vez (CD-R) e
regravvel (CD-RW).

Estrutura fsica

CD e DVD

Discos pticos de alta definio


Projetados para vdeos de alta definio.
Capacidade muito mais alta que DVD.
Laser com comprimento de onda mais curto.

Faixa do azul violeta.


Sulcos menores.
HD-DVD:
15 GB de nico lado, nica camada.
Blu-ray:
Camada de dados mais prxima do laser.

Foco mais estreito, menos distoro, sulcos menores.


25 GB em nica camada.
Disponvel para apenas leitura (BD-ROM), regravvel uma vez (BR-R) e reregravvel (BR-RE).

Caractersticas da memria ptica

Fita magntica
Acesso serial.
Lenta.
Muito barata.
Backup e arquivamento.
Forma mais moderna: unidades de fita Linear Tape Open
(LTO).
Desenvolvida no final da dcada de 1990.
Alternativa de fonte aberto para os diversos sistemas de
fita patenteados.

Unidades de fita Linear Tape Open


(LTO)

Memrias Flash
Dispositivos de memria flash, como pen drives,
mdulos SSD e cartes de memria so
essencialmente EEPROMs.
Sua estrutura uma malha formada por transistores
em cada interseo, separados por uma camada de
xido ferroso.
Os transistores assumem diferentes funes, um
como porto de controle, e o outro, de flutuao.
Enquanto a carga de eltrons na camada de xido
ferroso for acima de 50%, representado o bit 1;
abaixo disso, representa o bit 0.
117

Memrias Flash

118

You might also like