Buscar

3 Memória

Prévia do material em texto

Curso de Tecnologia em Telemática
Disciplina Arquitetura de Computadores
Memória
Prof.ª Daniella Dias 
danidias.jp@gmail.com
Memória
2
— A memória é a parte do computador onde os programas e os 
dados são armazenados
— Sem a existência da memória o conceito de computador 
digital com programa armazenado não pode ser 
implementado
— A memória de um computador quando energizada, conterá 
sinais elétricos, mesmo que não seja uma informação útil
Memória
3
— Memória de um computador⇒ subsistema - construída de vários 
componentes (vários tipos diferentes de memória) interligados e 
integrados, com o objetivo de armazenar e recuperar informações.
— Conceitos Importantes
— Método de acesso
— Tempo de acesso
— Tempo de ciclo
— Taxa de transferência
— Capacidade
— Volatilidade
— Tecnologia de fabricação
— Temporariedade
— Custo
Métodos de acesso
4
— Sequencial:
—Começa no início e lê em ordem.
—Tempo de acesso depende da localização dos dados e local anterior.
—Exemplo: fita.
—Direto:
—Blocos individuais possuem endereço exclusivo.
—Acesso saltando para vizinhança, mais busca sequencial.
—Tempo de acesso depende da localização e local anterior.
—Exemplo: discos magnéticos.
Métodos de acesso
5
—Aleatório:
—Endereços individuais identificam localizações com exatidão.
—Tempo de acesso é independente da localização ou acesso anterior.
—Exemplo: memória principal (RAM)
—Associativo:
—Tipo de acesso aleatório
—Dados são localizados por uma comparação com conteúdo de uma 
parte do armazenamento.
—Tempo de acesso é independente do local ou acesso anterior.
—Exemplo: alguns tipos de cache
Tempo de Acesso (Latência)
6
—Memórias de acesso aleatório:
— Indica o tempo necessário para realizar uma operação de 
leitura ou escrita na memória, após uma determinada 
posição ter sido endereçada. 
—Memórias de acesso não aleatório
—Tempo necessário para posicionar o mecanismo de leitura-
escrita no local desejado
—Um dos principais parâmetros para medir o desempenho da 
memória. 
Tempo de Acesso
7
— Dependente do modo como o sistema de memória é construído e da 
velocidade dos seus circuitos.
— Memórias eletrônicas - igual, independentemente da distância física 
entre o local de um acesso e o local do próximo acesso - acesso 
aleatório ou associativo.
— Dispositivos eletromecânicos (discos, fitas, ..) - tempo de acesso varia 
conforme a distância física entre dois acessos consecutivos - acesso 
sequencial ou direto.
Tempo de ciclo
8
— Termo empregado principalmente em memórias de acesso aleatório
— Inclui o tempo de acesso e qualquer tempo adicional 
necessário para o próximo acesso; 
— Normalmente exigido para retirada dos sinais anteriores das linhas de 
transmissão (liberação dos barramentos)
Taxa de transferência
9
— Taxa em que os dados podem ser transferidos para dentro ou fora da 
memória.
— Acesso aleatório: depende apenas do tempo de ciclo
— Acesso não aleatório: 
TN = TA + (n/R)
Sendo:
TN = tempo médio para ler ou escrever N bits
TA = tempo de acesso médio
n = número de bits
R = taxa de transferência em bits por segundo (bps)
Capacidade
10
— Quantidade de informação que pode ser armazenada em uma 
memória; 
— Unidade de medida mais comum - byte, podem ser usadas outras 
unidades como células (no caso de memória principal ou cache), 
setores (no caso de discos) e bits (no caso de registradores).
— Dependendo do tamanho da memória, isto é, de sua capacidade, 
indica-se o valor numérico total de elementos de forma simplificada, 
através da inclusão de K (kilo), M (mega), G (giga) ou T (tera). 
Volatilidade
11
— Memórias podem ser do tipo volátil ou não volátil.
— Memória não volátil - retém a informação armazenada quando a 
energia elétrica é desligada. Ex.: Discos, Fitas.
— Memória volátil - perde a informação armazenada na ausência de 
energia elétrica. Ex.:Registradores, Memória Principal.
— É possível manter a energia em uma memória originalmente volátil -
uso de baterias. 
Tecnologias de fabricação
12
— Memórias de semicondutores
— Memórias de meio magnético
— Memórias de meio óptico
Memórias de semicondutores
13
— Dispositivos fabricados com circuitos eletrônicos e baseados em 
semicondutores. 
— Rápidas e relativamente caras, se comparadas com outros tipos. 
— Há várias tecnologias específicas, cada uma com suas vantagens, 
desvantagens, velocidade, custo, etc.. 
Classificação das Memórias Semicondutoras
14
RAM
L/E - Leitura/Escrita
(R/W - Read/Write) 
ROM (Somente 
Leitura) 
(Read Only Memory) 
SRAM
DRAM
FPM DRAM
EDO DRAM
BEDO RAM
SDRAM
RDRAM
ROM
PROM
EPROM
EEPROM
Memória R/W - Read and Write
15
—Memória de leitura e escrita, de acesso aleatório e volátil.
— Pode ser estática (SRAM) ou dinâmica (DRAM).
— SRAM - uso de circuitos transistorizados (flip-flops) mantém a informação 
enquanto estiver energizada, muito rápida (~ns), usada tipicamente como 
memória cache.
— DRAM - uso de capacitores (1 transistor e 1 capacitor por bit, não usa flip-flops), 
necessita de refresh, alta capacidade de armazenamento (> densidade), mais lentas, 
usadas tipicamente como memória principal (custo regeneração compensado pelo 
custo menor das células – em grandes quantidades). 
— Evolução: FPM DRAM (Fast Page Mode) assíncrona e mais antiga, EDO DRAM 
(Extended Data Output), também assíncrona, SDRAM (memórias Síncronas), 
etc.
— Em geral, as RAMs estáticas são mais rápidas que as dinâmicas.
Memória R/W - Read and Write
16
DDR ou SDRAM-II (Double Data Rate SDRAM) 
— É uma memória SDRAM muito mais avançada e que consegue trabalhar 
com o dobro do desempenho. Alcança maior largura de banda através da 
transferência de dados na subida e na descida do sinal de relógio
RDRAM (Rambus DRAM) 
— Baseada em protocolo, isto é, usa padrão de barramento proprietário. A 
arquitetura interna dos circuitos, é muito diferente das demais pois, 
permite a leitura e escrita de até 16 dados simultaneamente por circuito. 
Utilizadas, principalmente, em algumas máquinas de jogos e em 
aplicações gráficas muito intensivas.
ROM - Read Only Memory
17
— Memória apenas de leitura. Uma vez gravada não pode mais ser alterada. De 
acesso aleatório, não é volátil. 
— Mais lenta que a R/W e mais barata.
— Pode ser programada por máscara ("mask programmed“- MROM) em fábrica. Devido 
ao alto custo da máscara somente se torna econômica em grandes quantidades. 
— Utilizada geralmente para gravar programas que não se deseja permitir que o 
usuário possa alterar ou apagar (Ex.: o BIOS - Basic Input Output System e 
Microprogramas de Memórias de Controle). 
— Outros tipos: PROM, EPROM, EEPROM e Flash.
PROM - Programmable Read Only 
Memory
18
— Memória apenas de leitura, programável. 
— ROM programável com máquinas adequadas (chamadas 
queimadores de PROM).
— Geralmente é comprada "virgem" (sem nada gravado), sendo muito 
utilizada no processo de testar programas no lugar da ROM, ou 
sempre que se queira produzir ROM em quantidades pequenas.
— Uma vez programada (em fábrica ou não), não pode mais ser 
alterada.
EPROM - Erasable Programmable 
Read Only Memory
— Memória apenas de leitura, programável (com queimadores de 
PROM) e apagável (com máquinas adequadas, à base de raios 
ultra-violeta).
— Tem utilização semelhante à da PROM, para testar programas no 
lugar da ROM, ou sempre que se queira produzir ROM em 
quantidades pequenas, com a vantagem de poder ser apagada e 
reutilizada. 
19
EEPROM (ou E2PROM) - Electrically Erasable 
Programmable Read Only Memory
20
— Memória apenas de leitura, programável e eletronicamente alterável. 
Também chamada EAROM(Electrically Alterable ROM). 
— EPROM apagável - processo eletrônico, sob controle da UCP 
(equipamento e programas adequados), menor e mais rápida que a 
EPROM. 
— Mais cara, geralmente utilizada em dispositivos aos quais se deseja 
permitir a alteração, via modem (carga de novas versões de programas à 
distância ou possibilitar a reprogramação dinâmica de funções específicas 
de um programa, geralmente relativas ao hardware, p.ex., reconfiguração 
de teclado, programação de terminal, etc).
ROM Flash
21
— Funcionamento similar ao da EEPROM – conteúdo total ou parcial da 
memória pode ser apagado normalmente por um processo de escrita.
— Apagadas e regravadas por blocos (o apagamento não pode ser efetuado 
ao nível de byte como na EEPROM), alta capacidade de 
armazenamento 
— O termo flash foi imaginado devido à elevada velocidade de 
apagamento dessas memórias em comparação com as antigas EPROM e 
EEPROM.
— Ideal para várias aplicações portáteis (câmeras digitais, palmtop, 
assistentes digitais portáteis, aparelhos de música digital ou telefones 
celulares).
Memória CMOS - (Complementary Metal 
Oxide Semiconductor) 
22
— Memória especial que é mantida por uma bateria, de forma a que a 
informação guardada não desapareça quando o PC está desligado. 
— Este espaço de armazenamento permanente é usado para manter um relógio 
de tempo real e alguma informação sobre a configuração do sistema e seus 
periféricos (tipo de disco rígido, quantidade de memória RAM, etc.). 
— Durante o arranque da máquina, a BIOS lê a informação da memória CMOS 
e utiliza-a para determinar a configuração atual, a data e a hora do sistema.
Memórias Semicondutoras
23
Tecnologias de fabricação
24
— Memórias de semicondutores
— Memórias de meio magnético
— Memórias de meio óptico
Memórias de meio magnético
25
— Fabricadas de modo a armazenar informações sob a forma de campos 
magnéticos.
— Devido à natureza eletromecânica de seus componentes e à 
tecnologia de construção em comparação com memórias de 
semicondutores, esse tipo é mais barato, permitindo armazenamento 
de grande quantidade de informação. 
— Método de acesso às informações - sequencial. 
— Exemplos: disquetes, discos rígidos e fitas magnéticas (de carretel ou 
de cartucho). 
Memórias de meio óptico
26
— Dispositivos que utilizam um feixe de luz para “marcar” o valor (0 
ou 1) de cada dado em sua superfície.
— Exemplos: 
—CD-ROM (leitura) 
—CD-RW (leitura e escrita)
—DVD
— Blu-ray 
Memória
27
— Memória de um computador⇒ subsistema - construída de vários 
componentes (vários tipos diferentes de memória) interligados e 
integrados, com o objetivo de armazenar e recuperar informações.
— Conceitos Importantes
— Tempo de acesso
— Capacidade
— Volatilidade
— Tecnologia de fabricação
— Temporariedade
— Custo
Temporariedade
28
— Indica o conceito de tempo de permanência da informação em um 
dado tipo de memória.
— Classificação: 
—Armazenamento “permanente”. Ex.: Discos, disquetes.
—Armazenamento transitório (temporário). Ex.: registradores, memória 
cache, memória principal.
Custo
29
— Bastante variado em função de diversos fatores:
— tecnologia de fabricação
— ciclo de memória
— quantidade de bits em um certo espaço físico, etc.
— Uma boa unidade de medida de custo é o preço por byte 
armazenado, em vez do custo total da memória em si. 
Memória
30
— Em um sistema de computação não é possível construir e utilizar 
apenas um tipo de memória.
— Para certas atividades, por exemplo, é fundamental que a 
transferência de informações seja a mais rápida possível. 
Hierarquia de Memória
Memória
31
Hierarquia de Memória
Memória Secundária
Memória Principal
Memória Cache
Registradores
CD-ROM
Discos
Custo baixo 
Velocidade baixa 
Capacidade elevada
Custo alto 
Velocidade alta 
Baixa capacidade
Bits
32
— Unidade básica de memória
— Pode assumir os valores 0 ou 1
— “Eficiência” da aritmética binária
— Armazenamento baseado na distinção de valores de tensão
— Quanto mais valores a identificar → menor a diferença entre sinais 
adjacentes → sistema menos confiável
— Como só trabalha com dois valores, a codificação da informação no 
sistema binário é o mais confiável
Bits
33
— Alguns computadores (IBM – grandes mainframes) se valem da 
aritmética decimal a partir da codificação no código BCD
— BCD → Binary Coded Decimal (Decimal Codificado em Binário) 
—Código de 4 bits → 16 combinações diferentes, das quais apenas 
10 são válidas
— Exemplo → número 1944
— BCD → 0001 1001 0100 0100
— Binário → 0000011110011000
Bits
34
— Usando 16 bits para a representação
— BCD → 0 a 9999 → 10.000 combinações
— Binário → 65.536
— A representação binária é mais eficiente
— Se existisse um dispositivo eletrônico confiável trabalhando em 
decimal (10 intervalos de tensão) 
— 4 dispositivos → 10.000 combinações em decimal
— 4 dispositivos → 16 combinações em binário
— Neste casos o sistema decimal seria mais eficiente
Endereços de Memória
35
— Memória
—Conjunto de células (ou posições) com k bits cada
—Cada célula possui um endereço
— n células → endereços de 0 a n-1
—Célula de k bits → 2k possíveis combinações para armazenar
—Células adjacentes possuem endereços consecutivos
Endereços de Memória
36
— Memória
—A quantidade de bits de endereçamento está relacionado com o 
número de células e não com o tamanho das mesmas
— Três organizações possíveis para uma memória de 96 bits:
— 12 células de 8 bits→ 4 bits de endereçamento
— 8 células de 12 bits→ 3 bits de endereçamento
— 6 células de 16 bits→ 3 bits de endereçamento
Endereços de Memória
37 Três maneiras de se organizar uma memória de 96 bits
Exercício
38
Uma memória principal RAM (MP) tem um espaço máximo de 
endereçamento de 2K. Cada célula pode armazenar 16 bits. 
a) Qual o valor total de bits que pode ser armazenado nesta 
memória?
b) Qual o tamanho de cada endereço? 
Endereços de Memória
39
— Conjunto de 8 bits → byte
— Os bytes são agrupados em palavras
—Um computador com palavras de 32 bits tem 4 bytes/palavra
— 64 bits implicam em 8 bytes/palavra
— A maioria das instruções operam sobre palavras
Chip de memória
40
— Cada chip contém um array de células de memória
— Mémorias semicondutoras: 
– Quantos bits de dados lidos/escritos por vez?
— Organização das células de memória X Lógica funcional no chip:
— Mais simples: 
• Arranjo físico das células = Arranjo lógico (percebido pelo processador) de palavras
• Array de W palavras com B bits cada.
• Exemplo: um chip de 16Mbits organizado em 1M palavras de 16 bits
— Mais complexo: Arranjos físico e lógico diferentes
— Organização de ROMs é mais simples (operação de leitura é mais frequente)
Chip de memória
41
— EPROM: chip de 8Mbits organizado 1M x 8 (1 palavra/chip)
– 1M palavras → 20 bits endereço (220 = 1M)
— DRAM: chip de 16Mbits organizado 4M x 4 
– Acessada por linha e coluna → endereço multiplexado
– 4M combinações → 11 bits de endereço → (211 x 211 = 222 = 4M)
Chip de memória
42
— 4 bits são lidos/escritos de cada vez
— Logicamente:
— organizado em arrays quadrados de 2048 x 2048 x 4 bits.
— Elementos do array são conectados por fileiras horizontais 
(linha) e verticais (colunas)
— 11 bits são utilizados para linha
— Outros 11 bits são utilizados para coluna
— Fisicamente: diversos arranjos possíveis:
— 4 bits por coluna (único array)
— 1 bit por coluna (quatro arrays)
— Adicionando 1 pino de endereço, duplica-se a 
faixa de endereços e x4 a capacidade (212 x4)
DRAM de 16 Mbits
Endereços de Memória
43
— Combinação de memórias
– Para aumentar o número de células -> memórias em paralelo— Endereçamento consecutivo entre as células das memórias
— Bits de endereço local à memória e bits de seleção de memória a ser
endereçada
– Para aumentar o tamanho da palavra -> memórias em série
— Mesmo endereço para as células das memórias diferentes que formam a 
palavra
Ordenação de bytes
44
— Refere-se a forma como os bytes são ordenados dentro da palavra.
— Big Endian
– Bytes são numerados da esquerda para a direita
– Usado por sistemas Unix (Mainframes IBM, Motorola e arquiteturas Sparc) 
– Exemplo → 0305H = 00000011 00000101
— Little Endian
– Bytes são numerados da direita para a esquerda
– Usado pelas máquinas da família Intel
– Exemplo → 0305H = 00000101 00000011
Big Endian x Little Endian
45
Exemplo Estrutura de Dados em C
46
Ordenação de bytes
47
— Problemas (Big Endian x Little Endian) 
— Envio de dados em rede e máquinas com ordenações diferentes
— Tratamento de números e strings
— Solução → uso de cabeçalho (ineficiente) 
Correção de Erros 
48
— Todo sistema de memória baseado em semicondutor está sujeito 
a erros.
— Tipos:
— Falhas graves: defeito de fabricação ou desgaste (células são 
inutilizadas)
— Erros moderados: problemas no fornecimento de energia 
ou interferências (células não são inutilizadas)
— A maioria dos sistemas de memória principal modernos inclui 
uma lógica de detecção e correção de erros
Códigos com Correção de Erros
49
— Dados armazenados podem ocasionalmente alterar → necessidade 
do uso de código para a detecção e/ou correção dos erros
— Para isso são armazenados bits extras aos dados para sua verificação 
→ palavra de código
— Uma palavra de código agora terá n bits, onde:
— n = m + r
— m → dados
— r → bits de redundância
Códigos com Correção de Erros
50
— Distância de Hamming
— Número de bits diferentes nas mesmas posições em duas palavra (função 
ou-exclusivo) 
— 10001001 e 10110001 → 3 bits diferentes
— Distância de Hamming = d → necessário d erros para uma palavra se 
transformar em outra palavra válida
— Palavras com n bits → 2n possíveis combinações, mas apenas 2m
combinações válidas
Códigos com Correção de Erros
51
— Distância de Hamming
— Para detectar e erros → distância = e + 1
— Para corrigir e erros → distância = 2e + 1
(mesmo em presença de d erros, a palavra de código original pode 
ser recomposta por meio dos bits redundantes) 
Detecção de Erros
52
— Detecção de erro utilizando bit de paridade
— Bit de paridade → faz com que o número de bits 1 na palavra seja 
sempre par (ou ímpar) 
— Com bit de paridade → distância de Hamming = 2 → um erro gera 
uma palavra inválida
— Dois erros transformam uma palavra válida em outra palavra válida
— Bit de paridade serve para detectar a ocorrência de um único erro
— Um erro é sinalizado, mas não é corrigido. Programa cancela o 
processamento para não gerar resultados errados.
Detecção e Correção de Erros
53
§ Função f: produz código de K bits (futura detecção de erros)
§Total de bits da Palavra: M + K
Nenhum erro detectado
Erro detectado 
(possível corrigir)
Erro detectado 
(impossível corrigir)
Códigos de Correção de Erros
54
— Um código de correção é caracterizado pelo número de 
bits incorretos que ele é capaz de detectar e corrigir em 
uma única palavra 
— O código de correção de erros mais simples é o Código 
de Hamming 
— Utiliza Diagramas de Venn
Diagramas de Venn
55
1. Palavras de Dados: 1110
2. Dados colocados nas interseções: 
• AB ABC AC BC
3. Utilização Paridade Par
4. Ao ocorrer um erro:
• Apenas A e C possuem erro 
de paridade
• Única interseção que pertence 
a A e C e não a B é AC (erro 
encontrado)
• Erro pode ser corrigido 
(paridade)
Projeto de um Código de Correção de 
Erro Único (SEC)
56
— Se todos os bits da Palavra Síndrome forem 0s, não houve erro 
— Se a Palavra Síndrome contiver apenas um bit 1, ocorreu erro 
em um dos bits de teste – nenhuma correção é necessária 
— Se a Palavra Síndrome contiver mais de um bit 1, o valor 
numérico da Palavra Síndrome indica a posição do bit em que 
ocorreu erro – a palavra é corrigida invertendo-se o valor desse 
bit de dado
Projeto de um Código de Correção de 
Erro Único (SEC)
57
— Como pode ocorrer erro em qualquer um dos M bits de dados 
ou dos K bits de teste, deve-se ter: 
— Aumento no tamanho da Palavra com a correção de erros: 
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
58
— Palavra de 8 bits, M = 8, qual o valor de K? 
— 2k – 1 ≥ M + K 
— Se K = 3 
23 – 1 = 7 ≥ 8 + 3 
— Se K = 4 
24 – 1 = 15 ≥ 8 + 4 
— Se K = 5 
25 – 1 = 31 ≥ 8 + 5 
— Logo, K = 4 é suficiente ! 
59
— A nova palavra será formada pelos bits de dados e 
os bits de teste 
— Os bits de teste devem ficar nas posições 2n
— 1, 2, 4, 8, 16, .... (da direita para esquerda)
— Os outros bits são dos dados propriamente ditos 
— Os bits de teste serão chamados de C1, C2, C4, C8 ... 
— Os bits de dados são M1, M2, M3, M4, M5, M6, M7, M8
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
60
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
61
— O cálculo dos bits de teste (C1, C2, C4, C8) : 
— C1 = XOR dos bits cuja posição tenha o bit menos 
significativo igual a 1 (posições 1, 3, 5, 7, 9, 11 ou M1, 
M2, M4, M5, M7) 
— C2 = XOR dos bits cuja posição tenha o 2º. bit menos 
significativo igual a 1 (posições 2, 3, 6, 7, 10, 11 ou M1, 
M3, M4, M6, M7) 
— C4 = XOR dos bits cuja posição tenha o 3º. bit menos 
significativo igual a 1 (posições 4, 5, 6, 7, 12 ou M2, M3, 
M4, M8) 
— C8 = XOR dos bits cuja posição tenha o 4º. bit menos 
significativo igual a 1 (posições 8, 9, 10, 11, 12 ou M5, M6, M7, 
M8) 
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
62
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
63
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
64
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
65
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
66
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
67
Projeto de um Código de Correção de Erro Único 
(SEC) - Exemplo
Códigos com Correção de Erros
68
— Exemplo apresentado:
— Código de Correção de um único erro (single-error-
correcting - SEC)
— Usualmente: 
— Código de Detecção de erro duplo e Correção de erro único 
(single-error-correcting, double-error-detecting – SEC-DED)
— Requer um bit a mais do que SEC
— Linha 30xx da IBM: SEC-DED de 8 bits para cada 64 bits de 
dados (aumento 12%)
— Computadores VAX: SEC-DED de 7 bits para cada 32 bits de 
dados (aumento 22%) 
— DRAM modernas: SEC-DED de 9 bits para cada 128 bits de 
dados (aumento 7%)
Códigos com Correção de Erros
69
Memória Cache
70
— Processadores são mais rápidos que as memórias
— Ele espera vários ciclos de clock pelo acesso á memória
— Existe a tecnologia de construção de memórias rápidas incorporadas ao 
processador → custo alto
— Solução → ter uma pequena quantidade de memória rápida interna ao 
processador (além da memória principal) 
— Fabricada com tecnologia semelhante à da CPU (possui tempos de acesso 
compatíveis, resultando numa considerável redução da espera da CPU para 
receber dados e instruções da cache, ao contrário do que acontece em sistemas 
sem cache). 
Memória Cache
71
— Cache vem do francês cacher que significa esconder
— Idéia básica da cache:
— Palavras de memória mais usadas ficam na cache— Com isso reduz o acesso a memória principal
— Se uma parte substancial dos acesso for através da cache, o tempo médio 
de acesso será menor
Memória Cache
— Atualmente há diversos tipos de memória cache, utilizados em 
sistemas de computação modernos: 
– Cache para a Memória Principal (RAM cache), 
– Cache para Disco... 
— Podem existir cache só para instruções e só para dados.
72
Memória Cache
— Podem ser inseridas em dois (ou três) níveis: Cache L1 (Level 1) - nível 
1), Cache L2 e Cache L3.
— Cache L1 (primária) - interna ao processador.
— Cache L2 (externa ou secundária) - instalada, em geral, na placa-mãe do 
computador. Atualmente: localizada no interior da pastilha do 
processador, separada deste (cache backside). 
— Cache L3 – Existente em alguns processadores, localizada externamente 
ao processador. 
— Quanto mais próxima do processador, melhor será o desempenho do 
mesmo.
73
Memória Cache
74
Memória Cache
75
— Tempo médio de acesso à cache
— Tm = c + ( 1 – h )m
— c é o tempo de acesso a cache
—m é o tempo de acesso à memória principal
— h é a taxa de acertos
— Normalmente são trazidas para a cache um conjunto de 
palavras consecutivas → princípio da localidade
– É provável que palavras vizinhas sejam referenciadas nos 
ciclos seguintes.
Memória Cache/Memória Principal
76
- Cache consiste de m blocos → linhas
- Cada linha → k palavras + tag 
- Tag identifica o bloco da MP
- Cada linha também possui bits de controle 
- Largura da linha sem tag e bits de controle → 
tamanho da linha
- Número de linhas é muito menor que número 
de blocos da MP 
Memória Cache – Operação de Leitura
77 RA = Read Address (endereço de leitura)
Memória Cache – Organização Típica
78
- Acerto de cache (cache hit) 
→ desativa buffers
- Falha de cache (cache miss) 
→ endereço é carregado no 
barramento do sistema → 
dados transferidos pelo buffer 
de dados para para cache e 
processador.
- Organizações que não 
utilizam buffers → dados são 
transferidos primeiro para 
cache e depois para o 
processador.
Memória Cache
79
— Questões relacionada ao projeto da cache
— Tamanho
— Tamanho da linha da cache
— Organização da cache
— Cache unificada x cache dividida
— Número de caches → primária (interna ao processador) e secundária
Evolução Cache Intel
80

Continue navegando