77
Organização de Computadores 1 3.3 – SISTEMAS DE MEMÓRIA Prof. Luiz Gustavo A. Martins

Organização de Computadores 1 - Iníciogustavo/OC1/Apresentacoes/Memorias.pdf · registros, seguido por uma ... 9Diminuição na freqüência de acesso à memória pelo processador

  • Upload
    vudan

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Organização de Computadores 1

3.3 – SISTEMAS DE MEMÓRIA

Prof. Luiz Gustavo A. Martins

Arquitetura de von Newmann: Computadores atuais

Memória:

SistemaMemória

Registradores

Unidade de Controle

UnidadeLógica e

AritméticaPC Sistemade E/S

Unidade de ProcessamentoCentral (CPU)

Sistema de Interconexão (Barramento do Sistema)

MemóriasSão componentes em um computador capazes de armazenar informações (dados e instruções).

Ex: registradores, memória principal, disco rígido, etc.

Existe uma grande variedade de tipos etecnologias empregadas nas memórias atuais.

A escolha é feita de acordo com os requisitos de custoe desempenho.

As memórias tem um papel crítico nodesempenho de um computador.

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.

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.

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:

Utiliza 4 bits para representar um dígito decimal.

Empregado em alguns computadores para implementar aritmética decimal.

Ex: mainframes da IBM.

Exemplo de codificação: número 1944.Binário: 0000 0111 1001 1000BCD: 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).

16 combinações para 10 dígitos = desperdício de 6.16 bits = 0 a 9999 em BCD.16 bits = 0 a 65.536 em binário.

Classificação de Memória

Organização da MemóriaA memória do computador é dividida em células.

Todas as células possuem o mesmo nº de bits.Células de K bits → armazenam 2K valores diferentes.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.Grande parte das instruções efetuam operações com palavras.

A comunicação com a CPU é feita por palavras.Tamanhos usuais: 8, 16, 32 e 64 bits.Ex: computador de 32 bits → 4 bytes/palavra.

Organização: arranjo físico dos bits para formar palavras.

LocalizaçãoProcessador: memórias locais do processador.

Ex: memória de controle (UC) e registradores.

Interna ou primária: memórias que podem ser acessadasdiretamente pelo processador.

Estão contidas em circuitos integrados (chips).São + rápidas, + caras e com < capacidade (> custo/bit).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).

São + lentas, + baratas e com > capacidade.Ex: discos e fitas magnéticos, discos ópticos, etc.

Capacidade da MemóriaCapacidade está associada à quantidade e aotamanho (nº de bits) da célula.

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.

Ordens de grandeza: 103 = Kb (cache L1); 106 = Mb (cache L2); e 109 = Gb (memória principal).

A capacidade da memória externa é tipicamenteexpressa em bytes.

Ordens de grandeza: 106 = Mb; 109 = Gb e 1012 = Tb.

Exemplos de Arranjos de Memórias

Memória de 96 bits

Unidade de TransferênciaUnidade 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.

Normalmente o nº de linhas de dados = tamanho da palavra.Internamente, o endereçamento é feito por palavras.

Memória externa: a unidade de transferência é feita por blocos de dados.

Um bloco é muito maior que uma palavra (bloco >> palavra).Em unidades de disco, o bloco é a unidade de endereçamento dos dados (clusters).

Método de AcessoSeqüencial ou serial: o acesso é feito seguindo uma seqüência linear específica.

Mecanismo compartilhado para leitura e escrita.Tempo de acesso variável, dependente da posição.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.

Cada bloco possui um endereço único (localização física).Mecanismo compartilhado para leitura e escrita.Tempo de acesso variável.Ex: Unidades de disco.

Método de AcessoAleatório: acesso é feito diretamente ao registro através de seu endereço.

Endereços individuais indicam a localização exata.Mecanismo independente para leitura e escrita.Tempo de acesso constante, independente da localização e dos acessos anteriores.Ex: memória principal.

Associativo: acesso é feito diretamente ao registro com base em parte de seu conteúdo.

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).Tempo de acesso constante.Ex: memória cache.

DesempenhoParâmetros de medida de desempenho de uma memória:

Tempo de acesso: tempo necessário para localizar, ler ou escrever um dado na memória.

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).Acesso não-aleatório: tempo de posicionamento do mecanismo de leitura-escrita na posição desejada.

Tempo de ciclo de memória: tempo de acesso + tempo adicional requerido pela memória antes de iniciar o próximo acesso.

Tempo adicional para desaparecimento de transientes nas linhas ou para regeneração dos dados (memórias destrutivas).

Taxa de transferência: taxa na qual os dados podem ser movidos.Acesso aleatório: 1 / TC onde: TC é o tempo de ciclo

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ísicoTipo físico: refere-se ao material empregado na construção da memória.

Memórias internas:Núcleo ferro-magnéticos: utilizada nos primeiros computadores.Semicondutores: empregada atualmente.

Memórias externas:Superfície magnética: utilizada em discos e fitas.Óptica: empregada em CDs e DVDs.

Características FísicasPersistência: capacidade de manter a informação armazenada na ausência de energia.

Memórias voláteis: perdem seu conteúdo se faltar energia.Ex: memória cache e memória principal.

Memórias não-voláteis: mantém o conteúdo mesmo sem energia. Ex: memórias secundárias (discos, fitas, etc.).

Alterabilidade: capacidade de modificar o conteúdo.Memórias somente de leitura: não permitem gravação, só leitura.

Ex: memórias ROM e PROM.Memórias principalmente de leitura: permitem gravações, mas sua principal utilização é a leitura.

Ex: memórias EPROM, EEPROM e flash.Memórias de leitura e gravação: permitem operações de leitura e escrita rápidas e fáceis.

Ex: memórias RAM (cache e principal) e memórias secundárias.

Tipos de Memória de SemicondutoresMemória RAM (Random Access Memory):

Memória volátil que permite leitura e escrita.Utilizada para armazenamento temporário.

Estática (SRAM): composta por circuitos do tipo flip-flop D.Seu conteúdo é conservado enquanto houver energia.São memórias rápidas.Ex: memórias cache L2.

Dinâmica (DRAM): composta por arranjo de células, cada uma contendo um transistor e um pequeno capacitor.

Precisa de renovação periódica do conteúdo (refreshing).Interface + complexa por causa da lógica externa de renovação.São memórias + densas (> capacidade), + baratas e + lentas.Ex: memória principal.

Tipos de Memória de SemicondutoresMemórias não-voláteis:

Utilizada para armazenamento persistente de dados e programas.Ex: rotinas de inicialização do computador.

ROM (Read-Only Memory): seu conteúdo é gravado no processo de fabricação e não pode ser alterado.

Memória somente de leitura.Usadas na microprogramação e em outras aplicações.

PROM (Programmable ROM): permite uma única gravação em campo (pós-produção) pelo fabricante ou cliente.

Necessita de um equipamento especial para gravação elétrica.

EPROM (Erasable PROM): permite várias gravações.Memória principalmente de leitura.Antes de uma gravação, deve ser totalmente apagada.Necessita de um dispositivo especial.

Tipos de Memória de SemicondutoresMemórias não-voláteis (cont.):

EEPROM (Electrical EPROM): permite apagar parte de seu conteúdo (nível de bytes) eletronicamente.

Reprogramada no local pelo barramento.Combina a não-volatilidade com a atualização direta.

Memória Flash: permite o apagamento parcial (nível de blocos) por pulsos elétricos.

Pode ser totalmente apagada em poucos segundos (+ rápida).Características intermediárias entre a EPROM e a EEPROM.

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óriaCélulas de memória são referenciadas por um nºidentificador único (endereço da célula).

Memória com N células → endereços de 0 a N-1.Células adjacentes possuem endereços consecutivos.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).

Nº bits no endereço define a qtde máx. de células endereçáveis.

Endereço de X bits → endereça até 2X células.Independe do nº de bits por célula.

Hierarquia de MemóriaProjeto de sistemas de memória:

Meta: reduzir a latência da memória (pedir e receber).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.

Níveis + altos: + rápidas, < capacidade e > custo/bit.Níveis + baixos: + lentas, > capacidade e < custo/bit.

Hierarquia de MemóriaImportâ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:Diminuição no custo/bit.Aumento da capacidade de armazenamento.Aumento no tempo de acesso.Diminuição na freqüência de acesso à memória pelo processador (chave do sucesso).

Hierarquia de Memória

RegistradoresMemória cache L1Memória cache L2Memória principal

Cache de discoDisco magnético

Disco ópticoFita 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ásicosInclusão: todo conteúdo da memória do nível ideve estar no nível i+1.

Níveis + altos são subconjuntos dos níveis + baixos.Mi deve estar em Mi+1, Mi+2,...,Mk.Mn NÃO está necessariamente em Mn-1.

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.

Deve haver políticas de escrita entre os níveis para garantir a correta atualização das cópias.

Princípios BásicosLocalidade de referência: acessos à memória feitos em um intervalo curto de tempo tendem a usar apenas pequena fração da memória total.

Conceito fundamental para o funcionamento adequado da hierarquia de memória.

Localidade temporal: posições de memória acessadas, tendem a ser novamente referenciadas em um curto intervalo de tempo.

Ex: sub-rotinas, laços de repetição, variáveis temporárias e pilhas.

Localidade espacial: conteúdos próximos a uma posição de memória acessada, tendem a ser referenciados em breve.

Ex: instruções seqüenciais e vetores

Acertos e FalhasAcerto: 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.

É maior que o acesso direto ao nível superior.

Exemplo: Sistema de Memória em 2 NíveisTempo de acesso:

Nível 1: T1 = 1μs.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.

Hierarquia de Memória

H1 alto → TA ≈ T1

H1 baixo → TA > T2

Eficiência de acesso:

1

2

1

1

1 (1 )A

TTT HT

=+ −

Custo médio por bit do sistema (Cs):

Custo Médio do Sistema em 2 Níveis

Desejado → Cs ≈ C2

C1 >> C2

1 1 2 2

1 2S

C S C SCS S+

=+

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.

Questão: Qual é o custo médio de um sistema abaixo?

Nível 1: custo/bit = $5,00 tamanho = 512KbNível 2: custo/bit = $0,50 tamanho = 4Gb

Pequenas unidades de memória com alta velocidade.Material semicondutor (circuitos Flip-Flop D)É a memória + rápida, menor e + cara (custo/bit).

Tempo de acesso < 1 ciclo do relógio.Capacidade para apenas um dado (palavra).

Armazenamento temporário de dados, instruções eendereços em utilização pelo processador.

Armazena internamente resultados (ex: AC, MQ, AX - DX)Auxilia no controle das operações (ex: PC, IR, MAR, MBR)

Possuem diferentes funções, mas apresentam um usobem definido dentro da arquitetura.

Registradores

Memória PrincipalFormada por elementos armazenadores de informação.

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.A CPU só processa informações contidas na MP.

Dados e instruções são copiados da MP para os registradores.

Memória Principal: exemplo distribuição

Lógica Internas das PastilhasMemória de semicondutores é empacotada em pastilhas.

Organização das células x lógica funcional de uma pastilha.Vários arranjos físicos são possíveis para um único arranjo lógico.

Arranjo típico de uma memória DRAM:Linhas de sinais horizontais (linhas).Linhas de sinais verticais (colunas).Linhas de dados.Linhas de temporização (memória síncrona) e controle.Áreas de armazenamento temporário dos sinais.Mecanismo de regeneração.Mecanismo de seleção de linha e coluna.Mecanismo de leitura e gravação.

Lógica Internas das PastilhasLinhas de endereço multiplexadas:

Usa metade das linhas de endereço necessárias.Necessita lógica externa para endereçamento.Endereçamento em duas etapas: linha e coluna.Proporciona economia na pinagem.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ódulosSe a qtde. de bits acessados < tamanho da palavra, então conectar várias pastilhas formando um módulo.

Exemplo 1:Pastilha com apenas 1 bit por palavra.Módulo de 256K palavras de 8 bits.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.

Ex 2: para 1M de palavra seria necessário 4 colunas de pastilhasdo exemplo 1.

+ 2 bits no endereço para seleção da coluna.

8 pastilhas por módulo(cada pastilha gera 1 bit da palavra)

Organização de Memória de 256KPastilha 1(512 palavras por 512 bits)

Decodifica 1 bitDec

odifi

ca

1pa

lavr

a

Pastilha 2(512 palavras por 512 bits)

Decodifica 1 bitDec

odifi

ca

1pa

lavr

a

Pastilha 8(512 palavras por 512 bits)

Decodifica 1 bitDec

odifi

ca

1pa

lavr

a

9

9

Endereço(MAR)

●●●

1

Dado(MBR)

2...

8

Organização de Memória de 1MPastilha 1

9

9

Endereço(MAR)

●●●

1

Dado(MBR)

2...

8

2

A

Pastilha 1

B

Pastilha 1

C

Pastilha 1

D

Pastilha 2

A

Pastilha 2

B

Pastilha 2

C

Pastilha 2

D

Pastilha 8

A

Pastilha 8

B

Pastilha 8

C

Pastilha 8

D

Detecção e Correção de ErrosMemó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.

Aumenta o nº de bits (M bits de dados + K bits de teste).

2K - 1 ≥ M + KCódigo de correção mais simples é o código de Hamming.

Utiliza o conceito de bit de paridade.SEC (single error correcting) ou SEC-DEC (double error detecting).

Modo de Detecção e Correção de Erro

A

BC

01

0

Código de Hamming: Palavra de 4 bits

1

11 0

Bits da palavraBits de paridadeBits com erro

A

BC

00

1

1

10 0⇒ 0

Correção de ErrosOs bits de teste são colocados nas posições que são potência de 2.

O bit da posição N é testado pelos bits de controle Ci, tal que: Σ i = N.

Este teste é feito pela operação XOR (ou-exclusivo) sobre os bits.

Detecção do erro e feito através de uma operação XORsobre os códigos de testes gerados antes e depois.

Código resultante é chamado palavra síndrome.Todos os bits é zero: não tem erro.Apenas um bit 1: erro nos bits de teste (não precisa correção).Mais de um bit 1: erro nos bits da palavra (valor numérico da palavra síndrome indica a posição do bit errado).

M711

M610

M59

M812

C48

M47

M36

M25

C34

M13

C22

C11

Memória CachePequena quantidade de memória rápidalocalizada entre a CPU e a memória principal.

Material semicondutor (pastilhas de memória SRAM).Pode estar no chip da CPU ou em um módulo externo.Realiza a interface entre registradores e MP.

Funciona de forma transparente para a CPU e o programador.

Visa melhorar o desempenho da comunicaçãoentre o processador e a memória principal.

Idéia: manter as palavras usadas com + freqüência.

Memória CacheComunicaçã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.Nº blocos na MP é muito maior que na cache (M >> C).A cache inclui rótulos (tags) para identificar qual bloco de MP está em cada linha da cache.

Rótulo é parte do endereço enviado pela CPU (associativo).

Estrutura Cache / Memória PrincipalNº daLinha Rótulo Bloco

Tamanho do bloco(K palavras)

Tamanhoda palavra

Endereço

Bloco 0(K palavras)

BlocoM-1

Cache ⇒ C blocosBloco ⇒ K palavrasMP ⇒ 2n palavras

C << M

MPCACHE

M = 2n / K

Operação da CacheCPU faz referência ao conteúdo de uma determinada posição de memória (palavra).

Se o conteúdo está na cache (acerto ou hit):A palavra desejada é enviada para a CPU.

Se o conteúdo NÃO está na cache (falha ou miss):O bloco correspondente é transferido da MP à cache.A palavra desejada é enviada para a CPU.

REGISTRADORES CACHE MEMÓRIA PRINCIPAL

PALAVRABLOCO DEPALAVRAS

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 CacheElementos de projeto para classificar e diferenciar as várias implementações:

Quantidade de memórias cache.Tamanho da memória cache.Tamanho da linha de cache.Função de mapeamento.Algoritmo de substituição.Política de escrita.

Quantidade de Memórias CacheCache unificada para dados e instruções:

Permite busca + balanceada entre instruções e dados.Cache separada para dados e instruções:

Dobra a largura de banda e melhora a latência da memória.

Arquitetura com um único nível de cache (L1):Implementada dentro do chip do processador.Empregada nas primeiras implementações de cache.

Arquitetura com multiníveis de cache:2 níveis de cache (L1 e L2): + usada atualmente.

A cache L2 no pacote do processador, mas fora do chip.

Pode existir um 3º nível (L3): não usual.A cache L3 é implementada na placa-mãe.

Tamanho de CacheParadoxo:

Caches maiores → maiores custos.Caches menores → menor desempenho.

O tamanho ideal é:Pequeno bastante para aproximar o custo/bit ao da MP.Grande o suficiente para atingir um tempo de acesso médio do sistema de memória próximo ao seu.

Como se ∀ MP ⊆ Cache.

Outros fatores para redução da cache:Cache maior → + portas envolvidas no endereçamento.Limitado pelo tamanho da pastilha ou placa de circuito.

Tamanho da Linha de CacheAumento no tamanho da linha proporciona:

+ informação útil (+ palavras) armazenada na cache.Aumento da taxa de acerto (até certo ponto).

Aumento excessivo pode degradar o desempenho:- linhas na cache → troca + rápida de linhas recentes. > distância entre as palavras adicionais e a referida.

P(uso da palavra adicional) < P(reuso da linha velha).

O relacionamento entre tamanho da linha e taxa de acerto da cache é complexo.

Não existe um valor ótimo definitivo.Depende do programa em execução.

Função de MapeamentoMeio 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).

Endereço da MP é dividido em 3 campos:Rótulo (tag): verifica se o bloco da MP está na cache.Linha: indica qual linha de cache pode conter o bloco.Palavra: indica qual palavra dentro do bloco está sendo referenciada.

Desvantagem: Se programa usa com freqüência 2 blocos mapeados na mesma linha, provoca uma alta taxa de falha.

Mapeamento Direto

1º - Acha a linha na cache

2º - Compara o rótulo

3º - Busca a palavra

Exemplo: Direto

i = j modulo m

sendo: i = Nº da linha de cachej = Nº do bloco da MPm = Nº de linhas do cache

Main Memory Address

Função de MapeamentoMapeamento associativo: cada bloco da MP pode ser mapeado em qualquer linha da cache.

Endereço da MP é dividido em 2 campos:Rótulo: verifica se o bloco da MP está em alguma linha de cache.Palavra: indica qual palavra dentro do bloco está sendo referenciada.

Compara parte do endereço de memória (rótulo) comTODOS os rótulos da cache.

Necessita de algoritmos de substituição.

Desvantagem: pesquisa na cache é uma operação de alto custo.

Mapeamento Associativo

1º - Compara o rótulo

2º - Busca a palavra

Exemplo: Associativo

Main Memory Address

Função de MapeamentoMapeamento associativo por conjunto: mescla a simplicidade do modo direto com a flexibilidade do modo associativo.

Cache é dividida em conjuntos de N linhas.

A identificação do conjunto é feita de modo direto.A busca da linha dentro do conjunto é feita de forma associativa.

Endereço da MP é dividido em 3 campos:Rótulo: verifica se alguma linha do conjunto contém o bloco da MP.Conjunto: indica qual conjunto da cache pode conter o bloco.Palavra: indica qual palavra dentro do bloco está sendo referenciada.

Mapeamento Associativo por Conjunto

1º - Acha o conjunto

1º2º

2º - Compara o rótulo das linhas do conjunto

3º - Busca a palavra

Ex: Associativo por Conjunto de 2 linhas

Main Memory Address

Address Tag Data Set number1FF7FFC 1FF 12345678 1FFF0017FFC 001 11223344 1FFF

C = I x J

Sendo: C = Tamanho cacheI = Nº conjuntosJ = Nº linhas/conj

I = C e J = 1 → diretoI = 1 e J = C → associativo

Algoritmo de SubstituiçãoDefine 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.

Provavelmente o algoritmo mais eficiente.Implementado através de adição de bits de uso.

Algoritmo de SubstituiçãoFIFO (First In, First Out): substitui a linha de cacheque está a mais tempo na cache.

Implementado através de um armazenamento circular.

LFU (Least Frequently Used): substitui a linha de cache que foi menos referenciada.

Implementada através de um campo contador.

Aleatório: escolhe aleatoriamente a linha de cache a ser substituída.

Não é baseada no histórico de uso das linhas.Apresenta uma ligeira perda no desempenho.

Política de Atualização ou EscritaPropaga as modificações nas linhas da cachepara as demais cópias.

Problemas:Vários dispositivos podem acessar a MP.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.

Abordagem mais simples e confiável.MP está sempre atualizada e válida.

Desvantagem: aumenta o tráfego de escrita na MP.Pode criar um gargalo no sistema.

Política de AtualizaçãoEscrita retroativa (write-back): as atualizações são realizadas somente na cache e repassadas à MP somente na substituição do bloco na cache.

Visa minimizar o nº de operações de escrita na MP.Cada linha possui um bit de update que é ativado quando uma atualização ocorre na cache.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çãoAlgumas abordagens para manter a coerência entre caches em sistemas multiprocessados:

Monitoramento do barramento com escrita direta:analisa o tráfego para a MP para identificar alterações.

Trasparência em HW: usa um circuito especial que replica as alterações na MP para as demais caches.

Memória não-cacheável: somente uma parte da MP é compartilhada e não pode ser associada à cache.

Memória SecundáriaFormada por componentes de armazenamento com grande capacidade e baixo custo por bit.

Tipicamente composta por dispositivos de armazenamento magnético ou óptico.

Utilizada para armazenamento persistente de dados e instruções.

Informações armazenadas na forma de arquivos.Dados e instruções visíveis ao programador/usuário.

Pode estar interna ou externa ao computador.Interna: discos rígidos.Externa: CDs, DVDs, fitas magnéticas, etc.

Discos MagnéticosPrincipal 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.

Dividido em anéis concêntricos (trilhas).Trilhas separadas em setores.Deve haver um espaço entre as divisões.

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 DiscoFormatação reduz cerca de 15% a capacidade.

Bits para identificação da trilha.Espaços entre setores.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éticosTempo de acesso:

Espera pelo dispositivoEspera pelo canal de E/SBusca da trilhaAtraso rotacional (busca pelo setor)

Velocidade rotacional:Velocidade angular constanteSetores mais largos na borda externa.

Aspectos de ProjetoMovimentação cabeçote:

Cabeçote fixo (um por trilha).Cabeçote móvel (um por superfície).

Qtde. lados:Lado único.Dupla face.

Qtde. pratos:Prato único.Múltiplos platos.

Aspectos de ProjetoTransportabilidade do disco:

Discos removíveis.Discos não-removíveis.

Mecanismo do cabeçote:Contado (disquete).Espaço fixo (bolhas de ar).Espaço aerodinâmico (Winchester).

RAID (Redundant Array of Independent Disks)

Mapeamento de dados para o RAID 0

RAID (Redundant Array of Independent Disks)

RAID 3(paridade por bit)

B 1 B 2 B 3 B 4

Tira 0 Tira 1 Tira 2 Tira 3Tira 4 Tira 5 Tira 6 Tira 7Tira 8 Tira 9 Tira 10 Tira 11

Tira 12 Tira 13 Tira 14 Tira 15

Tira 0 Tira 1 Tira 2 Tira 3Tira 4 Tira 5 Tira 6 Tira 7Tira 8 Tira 9 Tira 10 Tira 11

Tira 12 Tira 13 Tira 14 Tira 15

RAID 2(Código deHamming)

RAID 1(espelhamento)

C 1 C 2 C 3

RAID 4(paridade por bloco)

RAID 5(paridade distribuída)

RAID 6(paridade dupla)

RAID (Redundant Array of Independent Disks)