Memória

Propaganda
Organização de
Computadores 1
3.3 – SISTEMAS DE MEMÓRIA
Prof. Luiz Gustavo A. Martins
Arquitetura de von Newmann: Computadores atuais
Memória:
Unidade de Processamento
Central (CPU)
Registradores
Sistema
Memória
PC
Unidade
Lógica e
Aritmética
Sistema
de E/S
Unidade de Controle
Sistema de Interconexão (Barramento do Sistema)
Memórias
São componentes em um computador capazes de
armazenar informações (dados e instruções).
9 Ex: registradores, memória principal, disco rígido, etc.
Existe uma grande variedade de tipos e
tecnologias empregadas nas memórias atuais.
9 A escolha é feita de acordo com os requisitos de custo
e desempenho.
As memórias tem um papel
desempenho de um computador.
crítico
no
Algumas Formas de Armazenamento
Dígito Binário (BIT)
 Informações digitais podem ser armazenadas pela distinção
entre valores de alguma grandeza física contínua.
9 Ex: tensão ou corrente.
 Maior qtde. de valores distintos reduz a separação entre
valores adjacentes, minimizando a confiabilidade do
armazenamento.
 Sistema binário é o método mais confiável para codificar
informações digitais.
9 Requer a distinção entre 2 valores apenas (0 ou 1).
 Unidade básica de armazenamento: Bit é a unidade
básica de dado de um sistema de computador e, portanto,
da memória.
BCD (Binary Coded Decimal)
 Código decimal codificado em binário:
9 Utiliza 4 bits para representar um dígito decimal.
 Empregado em alguns computadores para implementar aritmética
decimal.
9 Ex: mainframes da IBM.
 Exemplo de codificação: número 1944.
9 Binário:
9 BCD:
0000 0111 1001 1000
0001 1001 0100 0100
 A mesma qtde. de bits representa menos números em BCD comparado
com a representação binária (desperdício de bits).
9 16 combinações para 10 dígitos = desperdício de 6.
9 16 bits = 0 a 9999 em BCD.
9 16 bits = 0 a 65.536 em binário.
Classificação de Memória
Organização da Memória
 A memória do computador é dividida em células.
9 Todas as células possuem o mesmo nº de bits.
9 Células de K bits → armazenam 2K valores diferentes.
9 Uma célula é a menor unidade endereçável da memória, ou seja,
menor localização unicamente endereçada.
 Palavra é a unidade natural de organização da memória.
9 Grande parte das instruções efetuam operações com palavras.
8 A comunicação com a CPU é feita por palavras.
9 Tamanhos usuais: 8, 16, 32 e 64 bits.
9 Ex: computador de 32 bits → 4 bytes/palavra.
 Organização: arranjo físico dos bits para formar palavras.
Localização
 Processador: memórias locais do processador.
9 Ex: memória de controle (UC) e registradores.
 Interna ou primária: memórias que podem ser acessadas
diretamente pelo processador.
9 Estão contidas em circuitos integrados (chips).
9 São + rápidas, + caras e com < capacidade (> custo/bit).
9 Ex: cache e memória principal.
 Externa ou secundária: memórias acessíveis
indiretamente pelo processador através de módulos de
E/S (dispositivos de armazenamento periféricos).
9 São + lentas, + baratas e com > capacidade.
9 Ex: discos e fitas magnéticos, discos ópticos, etc.
Capacidade da Memória
Capacidade está associada à quantidade e ao
tamanho (nº de bits) da célula.
9 Para otimizar a qtde. de sinais de endereçamento, o nº
de células sempre é uma potência de 2.
A capacidade da memória interna é expressa
em bytes ou palavras.
9 Ordens de grandeza: 103 = Kb (cache L1); 106 = Mb
(cache L2); e 109 = Gb (memória principal).
A capacidade da memória externa é tipicamente
expressa em bytes.
9 Ordens de grandeza: 106 = Mb; 109 = Gb e 1012 = Tb.
Exemplos de Arranjos de Memórias
Memória
de 96 bits
Unidade de Transferência
 Unidade de transferência de dados corresponde ao nº de
bits que podem ser lidos ou escritos de cada vez.
 Memória interna: a unidade de transferência é governada
pela largura do barramento de dados.
9 Normalmente o nº de linhas de dados = tamanho da palavra.
9 Internamente, o endereçamento é feito por palavras.
 Memória externa: a unidade de transferência é feita por
blocos de dados.
9 Um bloco é muito maior que uma palavra (bloco >> palavra).
9 Em unidades de disco, o bloco é a unidade de endereçamento
dos dados (clusters).
Método de Acesso
 Seqüencial ou serial: o acesso é feito seguindo uma
seqüência linear específica.
9 Mecanismo compartilhado para leitura e escrita.
9 Tempo de acesso variável, dependente da posição.
9 Ex: fitas magnéticas.
 Direto: o acesso é feito por um salto até um bloco de
registros, seguido por uma pesquisa seqüencial até o
registro (posição) desejado.
9 Cada bloco possui um endereço único (localização física).
9 Mecanismo compartilhado para leitura e escrita.
9 Tempo de acesso variável.
9 Ex: Unidades de disco.
Método de Acesso
 Aleatório: acesso é feito diretamente ao registro através de
seu endereço.
9 Endereços individuais indicam a localização exata.
9 Mecanismo independente para leitura e escrita.
9 Tempo de acesso constante, independente da localização e dos
acessos anteriores.
9 Ex: memória principal.
 Associativo: acesso é feito diretamente ao registro com
base em parte de seu conteúdo.
9 Mecanismo de endereçamento próprio, baseado na comparação
simultânea de alguns bits da palavra com todas as palavras da
memória (identificação por padrão de bits).
9 Tempo de acesso constante.
9 Ex: memória cache.
Desempenho
 Parâmetros de medida de desempenho de uma memória:
9 Tempo de acesso: tempo necessário para localizar, ler ou escrever
um dado na memória.
8 Acesso aleatório: tempo gasto desde a apresentação do endereço, até
o armazenamento ou a disponibilização do dado (operação L/E).
8 Acesso não-aleatório: tempo de posicionamento do mecanismo de
leitura-escrita na posição desejada.
9 Tempo de ciclo de memória: tempo de acesso + tempo adicional
requerido pela memória antes de iniciar o próximo acesso.
8 Tempo adicional para desaparecimento de transientes nas linhas ou
para regeneração dos dados (memórias destrutivas).
9 Taxa de transferência: taxa na qual os dados podem ser movidos.
8 Acesso aleatório: 1 / TC
onde: TC é o tempo de ciclo
8 Acesso não-aleatório: N / (TN - TA) onde: TN é o tempo médio de L/E
de N bits e TA é o tempo
médio de acesso.
Tipo Físico
Tipo físico: refere-se ao material empregado na
construção da memória.
Memórias internas:
9 Núcleo ferro-magnéticos: utilizada nos primeiros
computadores.
9 Semicondutores: empregada atualmente.
Memórias externas:
9 Superfície magnética: utilizada em discos e fitas.
9 Óptica: empregada em CDs e DVDs.
Características Físicas
 Persistência: capacidade de manter a informação
armazenada na ausência de energia.
9 Memórias voláteis: perdem seu conteúdo se faltar energia.
8 Ex: memória cache e memória principal.
9 Memórias não-voláteis: mantém o conteúdo mesmo sem energia.
8 Ex: memórias secundárias (discos, fitas, etc.).
 Alterabilidade: capacidade de modificar o conteúdo.
9 Memórias somente de leitura: não permitem gravação, só leitura.
8 Ex: memórias ROM e PROM.
9 Memórias principalmente de leitura: permitem gravações, mas
sua principal utilização é a leitura.
8 Ex: memórias EPROM, EEPROM e flash.
9 Memórias de leitura e gravação: permitem operações de leitura e
escrita rápidas e fáceis.
8 Ex: memórias RAM (cache e principal) e memórias secundárias.
Tipos de Memória de Semicondutores
Memória RAM (Random Access Memory):
9 Memória volátil que permite leitura e escrita.
9 Utilizada para armazenamento temporário.
9 Estática (SRAM): composta por circuitos do tipo flip-flop D.
8 Seu conteúdo é conservado enquanto houver energia.
8 São memórias rápidas.
8 Ex: memórias cache L2.
9 Dinâmica (DRAM): composta por arranjo de células, cada uma
contendo um transistor e um pequeno capacitor.
8 Precisa de renovação periódica do conteúdo (refreshing).
8 Interface + complexa por causa da lógica externa de renovação.
8 São memórias + densas (> capacidade), + baratas e + lentas.
8 Ex: memória principal.
Tipos de Memória de Semicondutores
 Memórias não-voláteis:
9 Utilizada para armazenamento persistente de dados e programas.
8 Ex: rotinas de inicialização do computador.
9 ROM (Read-Only Memory): seu conteúdo é gravado no processo
de fabricação e não pode ser alterado.
8 Memória somente de leitura.
8 Usadas na microprogramação e em outras aplicações.
9 PROM (Programmable ROM): permite uma única gravação em
campo (pós-produção) pelo fabricante ou cliente.
8 Necessita de um equipamento especial para gravação elétrica.
9 EPROM (Erasable PROM): permite várias gravações.
8 Memória principalmente de leitura.
8 Antes de uma gravação, deve ser totalmente apagada.
8 Necessita de um dispositivo especial.
Tipos de Memória de Semicondutores
Memórias não-voláteis (cont.):
9 EEPROM (Electrical EPROM): permite apagar parte de seu
conteúdo (nível de bytes) eletronicamente.
8 Reprogramada no local pelo barramento.
8 Combina a não-volatilidade com a atualização direta.
9 Memória Flash: permite o apagamento parcial (nível de blocos)
por pulsos elétricos.
8 Pode ser totalmente apagada em poucos segundos (+ rápida).
8 Características intermediárias entre a EPROM e a EEPROM.
z
z
Deleção parcial de dados (apaga apenas alguns blocos da memória).
Densidade similar a EPROM (apenas 1 transistor por bit).
Endereçamento da Memória
Células de memória são referenciadas por um nº
identificador único (endereço da célula).
9 Memória com N células → endereços de 0 a N-1.
9 Células adjacentes possuem endereços consecutivos.
9 Byte é a menor unidade endereçável da memória.
Endereços de memória são expressos no mesmo
sistema numérico do computador (binário).
9 Nº bits no endereço define a qtde máx. de células
endereçáveis.
8 Endereço de X bits → endereça até 2X células.
8 Independe do nº de bits por célula.
Hierarquia de Memória
Projeto de sistemas de memória:
9 Meta: reduzir a latência da memória (pedir e receber).
9 Fatores: capacidade, velocidade e custo.
Objetivo: Prover boa capacidade de
armazenamento a um custo razoável e um
desempenho aceitável.
Possível solução: utilizar + de uma tecnologia de
memória organizada hierarquicamente em níveis.
9 Níveis + altos: + rápidas, < capacidade e > custo/bit.
9 Níveis + baixos: + lentas, > capacidade e < custo/bit.
Hierarquia de Memória
Importância: suaviza o gap de desempenho entre
processadores e memórias.
Idéia básica: memórias menores e mais rápidas
sejam supridas pelas memórias maiores e + lentas.
À medida que descemos na hierarquia temos:
9 Diminuição no custo/bit.
9 Aumento da capacidade de armazenamento.
9 Aumento no tempo de acesso.
9 Diminuição na freqüência de acesso à memória pelo
processador (chave do sucesso).
Hierarquia de Memória
Registradores
Memória cache L1
Memória cache L2
Memória principal
Cache de disco
Disco magnético
Disco óptico
Fita magnética
+ barato
+ lento
> capacidade
< capacidade
+ rápido
+ caro
Hierarquia de Memória
Nível
Tecnologia
Tamanho
Tempo de
acesso típico
Custo/MB
(US$)
Registrador
Flip-Flop D
32 - 64 bits
2 - 3 ns
N/A
Cache L1
SRAM
512 Kbytes
12 - 25 ns
400,00
Cache L2
SRAM
1 - 6 Mbytes
12 - 25 ns
400,00
Memória
principal
DRAM
1 – 8 Gbytes
60 - 70 ns
50,00
Memória
secundária
Disco
magnético
80–500 Gbytes
(∃ Tbytes)
8 - 10 ms
0,50
Princípios Básicos
Inclusão: todo conteúdo da memória do nível i
deve estar no nível i+1.
9 Níveis + altos são subconjuntos dos níveis + baixos.
8 Mi deve estar em Mi+1, Mi+2,...,Mk.
8 Mn NÃO está necessariamente em Mn-1.
9 Cada nível mapeia endereços de uma memória maior
para uma memória menor (interface).
Coerência: cópias de um mesmo conteúdo devem
ser consistentes ao longo de níveis sucessivos.
9 Deve haver políticas de escrita entre os níveis para
garantir a correta atualização das cópias.
Princípios Básicos
Localidade de referência: acessos à memória
feitos em um intervalo curto de tempo tendem a
usar apenas pequena fração da memória total.
9 Conceito fundamental para o funcionamento adequado
da hierarquia de memória.
9 Localidade temporal: posições de memória acessadas,
tendem a ser novamente referenciadas em um curto
intervalo de tempo.
8 Ex: sub-rotinas, laços de repetição, variáveis temporárias e pilhas.
9 Localidade espacial: conteúdos próximos a uma
posição de memória acessada, tendem a ser
referenciados em breve.
8 Ex: instruções seqüenciais e vetores
Acertos e Falhas
 Acerto: encontra o dado desejado naquele nível.
 Falha: o dado NÃO está na memória pesquisada.
 Taxa de acerto (H) = nº acertos / nº de acessos
 Taxa de falha = 1 - H
 Tempo de acerto: tempo necessário para acessar a
memória e determinar um acerto ou uma falha.
 Penalidade por falha: tempo necessário para substituir
um bloco da memória pelo bloco do nível superior que
contém o dado, e o seu envio ao processador.
9 É maior que o acesso direto ao nível superior.
Hierarquia de Memória
Exemplo: Sistema de Memória em 2 Níveis
 Tempo de acesso:
9 Nível 1: T1 = 1μs.
9 Nível 2: T2 = 10 μs.
 Tempo médio de acesso:
H1(1) + (1-H1)(1+10) μs
Onde:H1 é a taxa de acerto
(hit) da memória N1.
H1 alto → TA ≈ T1
H1 baixo → TA > T2
Eficiência de acesso:
T1
1
=
TA 1 + (1 − H ) T2
T1
Custo Médio do Sistema em 2 Níveis
Custo médio por bit do sistema (Cs):
C1S1 + C2 S 2
CS =
S1 + S2
Onde:
- C1 é o custo/bit da memória do nível 1.
- C2 é o custo/bit da memória do nível 2.
- S1 é o tamanho da memória do nível 1.
- S2 é o tamanho da memória do nível 2.
Desejado → Cs ≈ C2
C1 >> C2
Questão: Qual é o custo médio de um sistema abaixo?
Nível 1: custo/bit = $5,00
Nível 2: custo/bit = $0,50
tamanho = 512Kb
tamanho = 4Gb
Registradores
 Pequenas unidades de memória com alta velocidade.
9 Material semicondutor (circuitos Flip-Flop D)
9 É a memória + rápida, menor e + cara (custo/bit).
8 Tempo de acesso < 1 ciclo do relógio.
8 Capacidade para apenas um dado (palavra).
 Armazenamento temporário de dados, instruções e
endereços em utilização pelo processador.
9 Armazena internamente resultados (ex: AC, MQ, AX - DX)
9 Auxilia no controle das operações (ex: PC, IR, MAR, MBR)
 Possuem diferentes funções, mas apresentam um uso
bem definido dentro da arquitetura.
Memória Principal
Formada por elementos armazenadores de
informação.
9 Material semicondutor (pastilhas de memória DRAM).
Armazena temporariamente toda informação
(dado e instrução) manipulada pelo computador.
Memória interna + importante do computador.
9 A CPU só processa informações contidas na MP.
8 Dados e instruções são copiados da MP para os registradores.
Memória Principal: exemplo distribuição
Lógica Internas das Pastilhas
 Memória de semicondutores é empacotada em pastilhas.
 Organização das células x lógica funcional de uma pastilha.
9 Vários arranjos físicos são possíveis para um único arranjo lógico.
 Arranjo típico de uma memória DRAM:
9 Linhas de sinais horizontais (linhas).
9 Linhas de sinais verticais (colunas).
9 Linhas de dados.
9 Linhas de temporização (memória síncrona) e controle.
9 Áreas de armazenamento temporário dos sinais.
9 Mecanismo de regeneração.
9 Mecanismo de seleção de linha e coluna.
9 Mecanismo de leitura e gravação.
Lógica Internas das Pastilhas
Linhas de endereço multiplexadas:
9 Usa metade das linhas de endereço necessárias.
9 Necessita lógica externa para endereçamento.
9 Endereçamento em duas etapas: linha e coluna.
9 Proporciona economia na pinagem.
9 Cada novo pino de endereço = 4x capacidade da
pastilha.
DRAM Típica de 16 Mbits (4M x 4)
11 linhas de endereço
(211 = 2048)
4 linhas de dados
x
x
Sinais e Pinos Típicos
x
Organização em Módulos
 Se a qtde. de bits acessados < tamanho da palavra,
então conectar várias pastilhas formando um módulo.
 Exemplo 1:
9 Pastilha com apenas 1 bit por palavra.
9 Módulo de 256K palavras de 8 bits.
8 pastilhas por módulo
(cada pastilha gera 1 bit da palavra)
9 Endereço de 18 bits ⇒ 218 = 256K
 Endereço é apresentado a todas as pastilhas do módulo.
 Maior capacidade de memória pode ser obtida pelo
agrupamento de conjuntos de pastilhas.
9 Ex 2: para 1M de palavra seria necessário 4 colunas de pastilhas
do exemplo 1.
8 + 2 bits no endereço para seleção da coluna.
Decodifica
1 palavra
Organização de Memória de 256K
9
Decodifica
1 palavra
Endereço
(MAR)
Pastilha 1
(512 palavras
por 512 bits)
Decodifica 1 bit
Pastilha 2
(512 palavras
por 512 bits)
Decodifica 1 bit
●
●
●
Decodifica
1 palavra
9
Pastilha 8
(512 palavras
por 512 bits)
Decodifica 1 bit
Dado
(MBR)
1
2
...
8
Organização de Memória de 1M
Endereço
(MAR)
9
Pastilha 1
Pastilha 1
Pastilha 1
Pastilha 1
A
B
C
D
Dado
(MBR)
Pastilha 2
Pastilha 2
Pastilha 2
Pastilha 2
A
B
C
D
1
2
...
●
●
●
9
2
8
Pastilha 8
Pastilha 8
Pastilha 8
Pastilha 8
A
B
C
D
Detecção e Correção de Erros
 Memórias de semicondutores estão suscetíveis a erros.
 Sistemas de memória podem incluir lógica de detecção e
correção de erros.
9 Aumenta o nº de bits (M bits de dados + K bits de teste).
2K - 1 ≥ M + K
 Código de correção mais simples é o código de Hamming.
9 Utiliza o conceito de bit de paridade.
9 SEC (single error correcting) ou SEC-DEC (double error detecting).
Modo de Detecção e Correção de Erro
Código de Hamming: Palavra de 4 bits
Bits da palavra
Bits de paridade
Bits com erro
A
A
0
1
1
1
1
C
1
⇒
0
0
1
0
0
B
C
1
0
0
B
Correção de Erros
 Os bits de teste são colocados nas posições que são
potência de 2.
12
11
10
9
8
7
6
5
4
3
2
1
M8
M7
M6
M5
C4
M4
M3
M2
C3
M1
C2
C1
 O bit da posição N é testado pelos bits de controle Ci, tal
que: Σ i = N.
9 Este teste é feito pela operação XOR (ou-exclusivo) sobre os bits.
 Detecção do erro e feito através de uma operação XOR
sobre os códigos de testes gerados antes e depois.
9 Código resultante é chamado palavra síndrome.
8 Todos os bits é zero: não tem erro.
8 Apenas um bit 1: erro nos bits de teste (não precisa correção).
8 Mais de um bit 1: erro nos bits da palavra (valor numérico da palavra
síndrome indica a posição do bit errado).
Memória Cache
Pequena quantidade de memória rápida
localizada entre a CPU e a memória principal.
9 Material semicondutor (pastilhas de memória SRAM).
9 Pode estar no chip da CPU ou em um módulo externo.
9 Realiza a interface entre registradores e MP.
Funciona de forma transparente para a CPU e o
programador.
Visa melhorar o desempenho da comunicação
entre o processador e a memória principal.
9 Idéia: manter as palavras usadas com + freqüência.
Memória Cache
Comunicação com a CPU é feita por palavras.
Comunicação feita por blocos de palavras de
tamanho fixo.
Contém cópia de partes da memória principal.
9 Nº blocos na MP é muito maior que na cache (M >> C).
9 A cache inclui rótulos (tags) para identificar qual bloco
de MP está em cada linha da cache.
8 Rótulo é parte do endereço enviado pela CPU (associativo).
Estrutura Cache / Memória Principal
CACHE
Nº da
Linha Rótulo
Endereço
MP
Bloco
Bloco 0
(K palavras)
C << M
M = 2n / K
Tamanho do bloco
(K palavras)
Cache ⇒ C blocos
Bloco ⇒ K palavras
MP
⇒ 2n palavras
Bloco
M-1
Tamanho
da palavra
Operação da Cache
CPU faz referência ao conteúdo de uma
determinada posição de memória (palavra).
9 Se o conteúdo está na cache (acerto ou hit):
8 A palavra desejada é enviada para a CPU.
9 Se o conteúdo NÃO está na cache (falha ou miss):
8 O bloco correspondente é transferido da MP à cache.
8 A palavra desejada é enviada para a CPU.
BLOCO DE
PALAVRAS
PALAVRA
REGISTRADORES
CACHE
MEMÓRIA PRINCIPAL
Exemplo de Operação da Cache: Leitura
Este paralelismo depende da
organização da memória cache
(típico das memórias modernas)
Aspectos do Projeto de Cache
Elementos de projeto para classificar e diferenciar
as várias implementações:
9 Quantidade de memórias cache.
9 Tamanho da memória cache.
9 Tamanho da linha de cache.
9 Função de mapeamento.
9 Algoritmo de substituição.
9 Política de escrita.
Quantidade de Memórias Cache
Cache unificada para dados e instruções:
9 Permite busca + balanceada entre instruções e dados.
Cache separada para dados e instruções:
9 Dobra a largura de banda e melhora a latência da
memória.
Arquitetura com um único nível de cache (L1):
9 Implementada dentro do chip do processador.
9 Empregada nas primeiras implementações de cache.
Arquitetura com multiníveis de cache:
9 2 níveis de cache (L1 e L2): + usada atualmente.
8 A cache L2 no pacote do processador, mas fora do chip.
9 Pode existir um 3º nível (L3): não usual.
8 A cache L3 é implementada na placa-mãe.
Tamanho de Cache
Paradoxo:
9 Caches maiores → maiores custos.
9 Caches menores → menor desempenho.
O tamanho ideal é:
9 Pequeno bastante para aproximar o custo/bit ao da MP.
9 Grande o suficiente para atingir um tempo de acesso
médio do sistema de memória próximo ao seu.
8 Como se ∀ MP ⊆ Cache.
Outros fatores para redução da cache:
9 Cache maior → + portas envolvidas no endereçamento.
9 Limitado pelo tamanho da pastilha ou placa de circuito.
Tamanho da Linha de Cache
Aumento no tamanho da linha proporciona:
9 + informação útil (+ palavras) armazenada na cache.
9 Aumento da taxa de acerto (até certo ponto).
Aumento excessivo pode degradar o desempenho:
9 - linhas na cache → troca + rápida de linhas recentes.
9 > distância entre as palavras adicionais e a referida.
8 P(uso da palavra adicional) < P(reuso da linha velha).
O relacionamento entre tamanho da linha e taxa
de acerto da cache é complexo.
9 Não existe um valor ótimo definitivo.
9 Depende do programa em execução.
Função de Mapeamento
 Meio de associar o bloco da memória principal a uma linha
da cache (M >> C).
 Escolha da função define a organização da cache e
afeta custo e desempenho.
 Mapeamento direto: cada bloco da MP é mapeado em
uma única linha de cache (+ simples e de baixo custo).
9 Endereço da MP é dividido em 3 campos:
8 Rótulo (tag): verifica se o bloco da MP está na cache.
8 Linha: indica qual linha de cache pode conter o bloco.
8 Palavra: indica qual palavra dentro do bloco está sendo referenciada.
9 Desvantagem: Se programa usa com freqüência 2 blocos
mapeados na mesma linha, provoca uma alta taxa de falha.
Mapeamento Direto
1º
2º
3º
1º - Acha a linha na cache
2º - Compara o rótulo
3º - Busca a palavra
Exemplo: Direto
Main Memory Address
i = j modulo m
sendo: i = Nº da linha de cache
j = Nº do bloco da MP
m = Nº de linhas do cache
Função de Mapeamento
Mapeamento associativo: cada bloco da MP
pode ser mapeado em qualquer linha da cache.
9 Endereço da MP é dividido em 2 campos:
8 Rótulo: verifica se o bloco da MP está em alguma linha de cache.
8 Palavra: indica qual palavra dentro do bloco está sendo referenciada.
9 Compara parte do endereço de memória (rótulo) com
TODOS os rótulos da cache.
9 Necessita de algoritmos de substituição.
9 Desvantagem: pesquisa na cache é uma operação de
alto custo.
Mapeamento Associativo
1º
2º
1º - Compara o rótulo
2º - Busca a palavra
Exemplo: Associativo
Main Memory Address
Função de Mapeamento
Mapeamento associativo por conjunto: mescla
a simplicidade do modo direto com a flexibilidade
do modo associativo.
9 Cache é dividida em conjuntos de N linhas.
9 A identificação do conjunto é feita de modo direto.
9 A busca da linha dentro do conjunto é feita de forma
associativa.
9 Endereço da MP é dividido em 3 campos:
8 Rótulo: verifica se alguma linha do conjunto contém o bloco da MP.
8 Conjunto: indica qual conjunto da cache pode conter o bloco.
8 Palavra: indica qual palavra dentro do bloco está sendo referenciada.
Mapeamento Associativo por Conjunto
2º
3º
1º
1º - Acha o conjunto
2º - Compara o rótulo das
linhas do conjunto
3º - Busca a palavra
Ex: Associativo por Conjunto de 2 linhas
Main Memory Address
C=IxJ
Sendo: C = Tamanho cache
I = Nº conjuntos
J = Nº linhas/conj
I = C e J = 1 → direto
I = 1 e J = C → associativo
Address
1FF7FFC
0017FFC
Tag
1FF
001
Data
Set number
12345678
1FFF
11223344
1FFF
Algoritmo de Substituição
Define em qual bloco da cache deve ser colocado
um novo conteúdo trazido da memória principal.
Implementação em hardware.
Blocos modificados na cache devem ser gravados
antes de sua troca (política de atualização).
LRU (Least Recently Used): substitui o bloco da
cache que está mais tempo sem uso.
9 Provavelmente o algoritmo mais eficiente.
9 Implementado através de adição de bits de uso.
Algoritmo de Substituição
FIFO (First In, First Out): substitui a linha de cache
que está a mais tempo na cache.
9 Implementado através de um armazenamento circular.
LFU (Least Frequently Used): substitui a linha de
cache que foi menos referenciada.
9 Implementada através de um campo contador.
Aleatório: escolhe aleatoriamente a linha de
cache a ser substituída.
9 Não é baseada no histórico de uso das linhas.
9 Apresenta uma ligeira perda no desempenho.
Política de Atualização ou Escrita
Propaga as modificações nas linhas da cache
para as demais cópias.
Problemas:
9 Vários dispositivos podem acessar a MP.
9 Arquiteturas com múltiplas CPUs e caches locais.
Escrita direta (write-throught): as operações de
escrita são feitas tanto na cache quanto na MP.
9 Abordagem mais simples e confiável.
8 MP está sempre atualizada e válida.
9 Desvantagem: aumenta o tráfego de escrita na MP.
8 Pode criar um gargalo no sistema.
Política de Atualização
Escrita retroativa (write-back): as atualizações
são realizadas somente na cache e repassadas
à MP somente na substituição do bloco na cache.
9 Visa minimizar o nº de operações de escrita na MP.
9 Cada linha possui um bit de update que é ativado
quando uma atualização ocorre na cache.
9 Problema: parte da MP pode ficar invalidada.
Escrita única (write-once): 1ª atualização é feita
de forma direta e as demais de modo retroativo.
Política de Atualização
Algumas abordagens para manter a coerência
entre caches em sistemas multiprocessados:
9 Monitoramento do barramento com escrita direta:
analisa o tráfego para a MP para identificar alterações.
9 Trasparência em HW: usa um circuito especial que
replica as alterações na MP para as demais caches.
9 Memória não-cacheável: somente uma parte da MP é
compartilhada e não pode ser associada à cache.
Memória Secundária
Formada por componentes de armazenamento
com grande capacidade e baixo custo por bit.
9 Tipicamente composta por dispositivos de
armazenamento magnético ou óptico.
Utilizada para armazenamento persistente de
dados e instruções.
9 Informações armazenadas na forma de arquivos.
9 Dados e instruções visíveis ao programador/usuário.
Pode estar interna ou externa ao computador.
9 Interna: discos rígidos.
9 Externa: CDs, DVDs, fitas magnéticas, etc.
Discos Magnéticos
 Principal meio de armazenamento secundário.
 Unidade leitura = haste com eixo rotativo + braço com
cabeça de leitura e gravação (bobina indutora).
 Discos = pratos de alumínio coberto com material
magnetizável.
9 Dividido em anéis concêntricos (trilhas).
9 Trilhas separadas em setores.
9 Deve haver um espaço entre as divisões.
8 Evita ou diminui os erros por falta de alinhamento dos cabeçotes ou
interferência de campos magnéticos.
Organização de um Disco
Formatação de Disco
 Formatação reduz cerca de 15% a capacidade.
9 Bits para identificação da trilha.
9 Espaços entre setores.
9 Bits para identificação de início e fim dos setores.
 Estes dados extras não são visíveis ao usuário.
Synch: código especial
para determinar o início.
CRC: código de correção
de erro.
Discos Magnéticos
Tempo de acesso:
9 Espera pelo dispositivo
9 Espera pelo canal de E/S
9 Busca da trilha
9 Atraso rotacional (busca pelo setor)
Velocidade rotacional:
9 Velocidade angular constante
9 Setores mais largos na borda externa.
Aspectos de Projeto
Movimentação cabeçote:
9 Cabeçote fixo (um por trilha).
9 Cabeçote móvel (um por superfície).
Qtde. lados:
9 Lado único.
9 Dupla face.
Qtde. pratos:
9 Prato único.
9 Múltiplos platos.
Aspectos de Projeto
Transportabilidade do disco:
9 Discos removíveis.
9 Discos não-removíveis.
Mecanismo do cabeçote:
9 Contado (disquete).
9 Espaço fixo (bolhas de ar).
9 Espaço aerodinâmico (Winchester).
RAID (Redundant Array of Independent Disks)
Mapeamento de dados para o RAID 0
RAID (Redundant Array of Independent Disks)
Tira 0
Tira 1
Tira 2
Tira 3
Tira 0
Tira 1
Tira 2
Tira 3
Tira 4
Tira 5
Tira 6
Tira 7
Tira 4
Tira 5
Tira 6
Tira 7
Tira 8
Tira 9
Tira 10
Tira 11
Tira 8
Tira 9
Tira 10
Tira 11
Tira 12
Tira 13
Tira 14
Tira 15
Tira 12
Tira 13
Tira 14
Tira 15
RAID 1
(espelhamento)
B1
B2
B3
B4
C1
C2
C3
RAID 2
(Código de
Hamming)
RAID 3
(paridade por bit)
RAID (Redundant Array of Independent Disks)
RAID 4
(paridade por bloco)
RAID 5
(paridade distribuída)
RAID 6
(paridade dupla)
Download