0% acharam este documento útil (0 voto)
14 visualizações37 páginas

Memórias

O documento aborda conceitos fundamentais sobre memória em sistemas embarcados, incluindo tipos de memória como ROM e RAM, e suas características de gravação e permanência. Ele discute a hierarquia de memória, a Unidade de Gerenciamento de Memória (MMU) e as diferenças entre memórias voláteis e não voláteis. Além disso, são apresentados exemplos de dispositivos de memória e suas aplicações em sistemas embarcados.

Enviado por

Leonardo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações37 páginas

Memórias

O documento aborda conceitos fundamentais sobre memória em sistemas embarcados, incluindo tipos de memória como ROM e RAM, e suas características de gravação e permanência. Ele discute a hierarquia de memória, a Unidade de Gerenciamento de Memória (MMU) e as diferenças entre memórias voláteis e não voláteis. Além disso, são apresentados exemplos de dispositivos de memória e suas aplicações em sistemas embarcados.

Enviado por

Leonardo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd

Memórias

Capítulo 5 1
Agenda

• Capacidade de gravação na memória e permanência da


informação
• Tipos comuns de memória
• Bancos de memória
• Hierarquia de memória e Cache
• Unidade de Gerenciamento de Memória (MMU)

Embedded Systems Design: A Unified 2


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Introdução

• Aspectos funcionais de um Sistema embarcado


– Processamento
• Processadores
– Transformação de dados
– Armazenamento
• Memória
– Retenção de dados
– Comunicação
• Barramentos
– Transferência de dados

Embedded Systems Design: A Unified 3


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Memória – conceitos básicos

• Armazena um grande número de bits 0


– m x n: m palavras de n bits cada 1
– k = Log2(m) entradas de endereço 2
– or m = 2^k palavras 3
– Ex.: memória de 4,096 x 8 .
• 32,768 bits .
• 12 bits de endereço .
• 8 bits dados (entrada/saída) .
.
.

m-2
m-1
m

Embedded Systems Design: A Unified 4


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Memória – conceitos básicos
• Acesso à memória
– r/w: seleciona operações escrita ou memory external view
leitura
r/w
– enable: escreve ou lê somente quando 2k × n read and write memory

enable
ativo
– multiport: múltiplos acessos à diferentes
A0
posições simultaneamente …

Ak-1

Qn-1 Q0

Embedded Systems Design: A Unified 5


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Capacidade de escrita/ permanência do dado
• Distinção entre ROM/RAM tradicionais

permanence
Storage
– ROM Mask-programmed ROM Ideal memory
• Somente leitura, não volátil
– RAM Life of OTP ROM
product
• Leitura e escrita, volátil
• Distinções podem não valer Tens of
years
EPROM EEPROM FLASH

– Tipos de ROMs podem ser escritas Battery Nonvolatile NVRAM


life (10
• e.g., EEPROM years)
– Tipos de RAMs podem reter a In-system
SRAM/DRAM
informação mesmo sem energia programmable
• Near
e.g., NVRAM zero Write
• Capacidade de escrita ability
During External External External External
– Método e velocidade com que uma fabrication programmer, programmer, programmer programmer
In-system, fast
writes,
only one time only 1,000s OR in-system, OR in-system,
memória é escrita of cycles 1,000s block-oriented
unlimited
cycles
• Permanência do armazenamento (decay) of cycles writes, 1,000s
of cycles
– Capacidade da memória em reter os bits
armazenados após serem escritos Write ability and storage permanence of memories,
showing relative degrees along each axis (not to scale).

Embedded Systems Design: A Unified 6


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Capacidade de escrita
• Faixas de capacidade de escrita
– Alto nível
• Processador escreve na memória de forma simples e rápida
• Ex.: RAM
– Faixa intermediária
• Processador escreve na memória, mas poucas vezes
• Ex.: FLASH, EEPROM
– Faixa inferior
• Equipamentos especiais (programadores) devem ser usados para
escrever na memória
• Ex.: EPROM, OTP ROM
– Baixo nível
• Bits armazenados somente durante o processo de fabricação
• Ex.: Mask-programmed ROM
• Memória programável pelo próprio sistema
– Pode ser escrita pelo processador do Sistema embarcado que usa a
memória
– Memórias de alto nível e da faixa intermediária

Embedded Systems Design: A Unified 7


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Permanência do dado
• Faixas de permanência dos dados
– Alto nível
• Essencialmente nunca perdem os bits
• Ex.: mask-programmed ROM
– Faixa intermediária
• Retém os bits por dias, meses, ou anos após a alimentação da memória ter sido desligada
• Ex.: NVRAM
– Faixa inferior
• Retém os bits enquando a alimentação estiver presente
• Ex.: SRAM
– Baixo nível
• Começa a perder bits quase imediatamente após a escrita
• Ex.: DRAM
• Memória não volátil
– Retém os bits após a alimentação ser retirada
– Memórias de alto nivel e da faixa intermediária

Embedded Systems Design: A Unified 8


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
ROM: “Read-Only” Memory
• Memória não volátil
• Pode ser lida mas não escrita por um processador em
um Sistema embarcado
• Tradicionalmente programada antes de inserida em um External view

Sistema embarcado enable 2k × n ROM

• Usos A0


– Armazenamento de programas em processadores de Ak-1

propósito geral
• Instruções do programa podem estar em uma ou mais Qn-1 Q0

palavras da ROM
– Armazenar dados constantes necessários pelo Sistema
– Implementar circuitos combinacionais

Embedded Systems Design: A Unified 9


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Examplo: 8 x 4 ROM
• Linhas horizontais= words
• Linhas verticais= data Internal view

• Decodificador seta a linha 2 para 1 8 × 4 ROM

se a entrada é 010 enable 3×8


word 0
word 1
decoder
• As linhas de dados Q3 eaQ1 são A0
word 2
word line
A1
setadas para 1 porque estão A2

conectadas a linha 2 do data line

decodificador programmable
connection wired-OR

• Linha 2 não está conectada com as Q3 Q2 Q1 Q0

linhas de dados Q2 e Q0
• Saída é 1010

Embedded Systems Design: A Unified 10


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Implementando uma função combinacional
• Qualquer circuito combinacional de n funções das mesmas k
variáveis podem ser realizado com uma ROM 2^k x n

Embedded Systems Design: A Unified 11


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Mask-programmed ROM

• Conexões programadas na fabricação


– Conjunto de máscaras
• Baixíssima capacidade de escrita
– Somente uma vez
• Altíssima retenção dos dados
– bits nunca mudam, a menos que seja danificada
• Tipicamente usada para projeto final de sistemas com
grande volume de produção
– Distribui o custo NRE para um baixo custo unitário

Embedded Systems Design: A Unified 12


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
OTP ROM: One-time programmable ROM
• Conexões programadas pelo usuário após a fabricação
– Usuário fornece arquivo com o conteúdo da ROM desejado
– Este arquivo é usado como entrada para um programador de ROMs
– Cada conexão programável é um “fusível”
– Programador de ROMs queima os “fusíveis” onde as conexões não devem existir
• Capacidade de escrita muito baixa
– Tipicamente escrita somente uma vez e requer o uso de um dispositivo de
programação
• Capacidade de retenção muito alta
– bits não mudam a menos que conectada ao programador e mais “fusíveis” sejam
queimados
• Comumente usada em produto final
– Barata, difícil de modificar

Embedded Systems Design: A Unified 13


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
EPROM: Erasable programmable ROM
• O componente programável é um transistor MOS
– Transistor tem um gate “flutuando” por um isolante
– (a) Cargas negativas formam um canal entre a fonte e dreno armazenando a floating gate
0V

lógica 1 source drain


– (b) Potencial positive alto no gate levam as cargas negativas a s moverem
para fora do canal e são capturadas pelo gate “flutuante” armazenando a
lógica 0 (a)
– (c) (Apagamento) Exposição a raios UV na superfície do gate “flutuante”
levam as cargas negativas a retornarem para o canal restaurando a lógica 1
– (d) Uma memória EPROM possui uma janela em seu encapsulamento para
que a luz UV possa passar +15V
• Melhor capacidade de escrita source drain
(b)
– Pode ser apagada e reprogramada centenas de vezes
• Capacidade de retenção reduzida
5-30 min
– A programação é perdida em torno de 10 anos e é susceptivel à
radiação e ruido elétrico
• Tipicamente usada durante o desenvolvimento do projeto source drain
(c)

(d)

Embedded Systems Design: A Unified .


14
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
EEPROM: Electrically erasable
programmable ROM
• Programada e apagada eletronicamente
– Tipicamente usando niveis de tensão mais elevados
– Pode programar e apagar palavras individualmente
• Melhor capacidade de escrita
– Pode ser reprogramada in-system com um projeto de circuito apropriado
– Tempos de escritas muito baixos por ter que apagar antes de regravar
• Pino de “ocupado” indica ao processador que ainda está escrevendo
– Pode ser apagada e reprogramada milhares de vezes
• Capacidade de retenção similar ao da EPROM (cerca de 10
anos)
• Mais conveniente que as EPROMs, porém de maior custo

Embedded Systems Design: A Unified 15


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Flash Memory

• Extensão da EEPROM
– Mesmo princípio do gate “flutuante”
– Mesma capacidade de escrita e de retenção
• Apagamento rápido
– Grande blocos de memória apagados em uma única operação
– Blocos tipicamente de varias centenas de bytes
• Escrita pode ser lenta
– Todo o bloco deve ser lido, a palavra atualizada, e então todo o bloco é
escrito de volta
• Usado em sistemas embarcados com grandes quantidade de
dados armazenados em itens de dados não voláteis
– Ex.: cameras digitais, telefones celulares
Embedded Systems Design: A Unified 16
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
RAM: “Random-access” memory
external view
• Memórias voláteis r/w 2k × n read and write
– bits não são retidos quando a alimentação é retirada enable memory

• Leitura e escrita podem ser feitas facilmente pelo Sistema A0



embarcado durante a execução
Ak-1
• Estrutura interna mais complexa que a ROM …

– Uma palavra consistem de várias células de memória,


Qn-1 Q0
cada célula armazenando 1 bit
– Cada linha de dado de entrada e saída conecta com internal view
I3 I2 I1 I0

cada célula na sua coluna


4×4 RAM
– Sinais de controle de rd/wr conectados a todas as
2×4
células enable
decoder
– Quando a linha é habilitada pelo decodificador, cada A0
célula da linha armazena o dado de entrada se for uma A1
Memory
operação de escrita ou apresenta o dado armazenado na cell
rd/wr
saída se for uma operação de leitura To every cell

Q3 Q2 Q1 Q0

Embedded Systems Design: A Unified 17


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Tipos básicos de RAM
• SRAM: Static RAM
– Células de memória usam flip-flop para armazenar
o bit
– Requer 6 transistores
– Armazena o dado enquanto estiver alimentada
• DRAM: Dynamic RAM
– Células de memória usam transistor MOS e
capacitores para armazenar o bit
– Maior capacidade que a SRAM
– “Refresh” necessário devido ao isolamento do
capacitor
• Células da palavra “refrescadas” quando lidas
– Taxa de refresh típica é de 15.625 microsec.
– Mais lenta que a SRAM

Embedded Systems Design: A Unified 18


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Variações da RAM

• PSRAM: Pseudo-static RAM


– DRAM com o controle de refresh interno
– Alternativa de baixo custo para a SRAM
• NVRAM: Nonvolatile RAM
– Retém os dados mesmo após removida a alimentação
– Battery-backed RAM
• SRAM com uma bateria permanente própria
• Tempo de escrita igual ao de leitura
• Sem limite para o número de escritas
– SRAM com EEPROM ou flash
• Armazena o conteúdo complete da RAM em uma EEPROM ou flash antes
de remover a alimetação

Embedded Systems Design: A Unified 19


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Examplo:
HM6264 & 27C256 RAM/ROM devices
• Low-cost low-capacity memory
devices 11-13, 15-19 data<7…0>
11-13, 15-19 data<7…0>
2,23,21,24, addr<15...0> addr<15...0>
• Commonly used in 8-bit 25, 3-10
22 /OE
27,26,2,23,21,
24,25, 3-10
22 /OE

microcontroller-based 27 /WE 20 /CS

embedded systems 20 /CS1

CS2 HM6264 27C256


• First two numeric digits indicate 26
block diagrams

device type Device


HM6264
Access Time (ns)
85-100
Standby Pwr. (mW)
.01
Active Pwr. (mW)
15
Vcc Voltage (V)
5
– RAM: 62 27C256 90 .5 100 5

– ROM: 27 device characteristics

Read operation Write operation


• Subsequent digits indicate data data

capacity in kilobits addr addr


OE WE
/CS1 /CS1
CS2 CS2
timing diagrams

Embedded Systems Design: A Unified 20


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Example:
TC55V2325FF-100 memory device
• 2-megabit data<31…0> Device
TC55V23
Access Time (ns)
10
Standby Pwr. (mW) Active Pwr. (mW)
na 1200
Vcc Voltage (V)
3.3

synchronous pipelined addr<15…0> 25FF-100

addr<10...0>
burst SRAM memory device characteristics

/CS1
device /CS2 A single read operation
• Designed to be CS3
CLK
interfaced with 32-bit /WE
/ADSP
processors /OE
/ADSC
• Capable of fast MODE
/ADV
/ADSP
sequential reads and /ADSC
addr <15…0>
/WE
writes as well as /ADV /OE
single byte I/O CLK /CS1 and /CS2

TC55V2325F CS3
F-100
data<31…0>
block diagram
timing diagram

Embedded Systems Design: A Unified 21


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Banco de memória
• Tamanho das memórias diferem normalmente das memórias Increase number of words
disponíveis 2m+1 × n ROM
• Quando a memória disponível é maior, simplesmente os endereços 2m × n ROM
mais elevados são ignorados
A0
• Quando a memória disponível é menor, deve-se compor várias Am-1
… …

memórias menores e formar uma de maior capacidade 1×2 …



Am decoder
Conectadas lado-a-lado para aumentar o tamanho da palavra
– 2m × n ROM
Conectar uma sobre a outra para aumentar o número de palavras
• linhas de endereço mais significativas adicionais selecionam uma enable
memória menor contend a palavra desejada usando um …
decodificador …
– Técnicas combinadas para aumentar o número e a largura das palavras


Qn-1 Q0
2m × 3n ROM
enable 2m × n ROM 2m × n ROM 2m × n ROM A

Increase width Increase number


A0 and width of
of words … … …
Am words
… … … enable

Q3n-1 Q2n-1 Q0 outputs

Embedded Systems Design: A Unified 22


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Hierarquia de memória
• Deseja-se uma memória
rápida, grande capacidade
e de baixo custo
• Memória principal
– Grande, barata, armazena
programa e dados
• Cache
– Memória pequena, cara,
rápida que armazena cópias
de partes da memória
principal
– Podem existir múltiplos
níveis de cache
Embedded Systems Design: A Unified 23
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Princípio da Localidade

• Localidade Temporal:
– Refere-se a tendência dos programas em referenciar num
futuro próximo unidades de memória referenciadas num
passado recente;
• Localidade Espacial:
– Refere-se a tendência dos programas em referenciar
unidades de memória cujos endereços estão próximos uns
dos outros;

Embedded Systems Design: A Unified 24


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Cache
• Normalmente projetada com SRAM
– Rápida mas de maior custo que a DRAM
• Normalmente no mesmo chip do processador
– Acesso rápido ( 1 cicle vs. vários ciclos para a memória principal)
• Operação da cache:
– Requisição para acesso à memória principal (leitura ou escrita)
– Primeiro verifica por uma cópia na cache
• cache hit
– Cópia está na cache, acesso rápido
• cache miss
– Cópia não está na cache, leitura no endereço requisitado e na sua vizinhança
• Várias escolhas de projeto de memória cache
– Função de mapeamento, políticas de substituição e técnicas de escrita

Embedded Systems Design: A Unified 25


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Embedded Systems Design: A Unified 26
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Cache - Função de mapeamento
• Muitos poucos números de endereços na cache
• O conteúdo endereçado está na cache?
• Mapeamento da cache usado para assumir o endereço da memória principal
para o endereço da memória cache e determinar se é hit ou miss
• Três técnicas de mapeamento:
– Mapeamento direto
– Mapeamento totalmente associativo
– Mapeamento associativo por conjunto
• Cache estruturada em linhas formando blocos com vários endereços de
memória adjacentes
– Normalmente 4 ou 8 endereços por linha

Embedded Systems Design: A Unified 27


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Cache

Embedded Systems Design: A Unified 28


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Mapeamento direto
• Endereço de memória principal é dividido em tres
campos
– Offset
• Usado para localizar uma palavra dentro de um bloco
– Índice
• Endereço de linha da cache
• Número de bits determinado pelo tamanho da cache Tag Index Offset

– Tag V T D
• Camparada com a tag armazenada na linha da cache
• Se as tags combinarem, verifica o bit de validade do bloco Data

• Bit de validade Valid


– Indica se o dado no slot (linha da cache) contém um =

bloco válido

Embedded Systems Design: A Unified 29


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Mapeamento totalmente associativo

• Endereço completo armazenado em cada linha da cache


• Todo endereço armazenado na cache é simultaneamento
comparado com o endereço referenciado
• Bit de validade e offset com o mesmo papel do mapeamento
direto
Tag Offset
Data
V T D V T D V T D

Valid
= =
=

Embedded Systems Design: A Unified 30


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Mapeamento associativo por conjunto

• Meio termo entre o mapeamento direto e o


totalmente associativo
• Índice como no mapeamento direta
• Mas, cada linha da cache contém o conteúdo Tag Index Offset
e tag de dois ou mais endereços de memória V T D V T D
• TAGS do conjunto é simultaneamente Data

comparada como no mapeamento Valid

totalmente associativo = =
• Cache com tamanho de conjunto N é
chamada de N-way set-associative
– 2-way, 4-way, 8-way são comuns

Embedded Systems Design: A Unified 31


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Politica de substituição da cache

• Técnica para escolher qual bloco substituir


• Mapeamento direto não permite escolha
• Randomico
– Substitui o bloco escolhendo de forma aleatória
• LRU: least-recently used
– Substitui o bloco não acessado por mais tempo
• FIFO: first-in-first-out
– Coloca o bloco em uma fila quando acessado
– Escolhe o bloco para substituir no inicio da fila

Embedded Systems Design: A Unified 32


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Técnicas de escrita em cache

• Na escrita de um dado na cache a memória principal deve ser


atualizada
• Write-through
– Escreve na memória principal e na cache
– Facil de implementar
– Processador deve esperar pela memória principal lenta na escrita
– Potencial para escrita desnecessárias
• Write-back
– Memória principal somente é atualizada com um bloco “alterado” é
substituído na memória cache
– Bit extra necessário para cada bloco para indicar alteração
– Reduz o número de escritas na memória principal

Embedded Systems Design: A Unified 33


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Impacto do cache no desempenho do sistema
• Parâmetros mais importantes em termos de desempenho:
– Tamanho total do cache
– número total de bytes de dados que o cache pode conter
– etiqueta, bits válidos e de manutenção não incluídos no total
– Grau de associatividade
– Tamanho do bloco de dados
• Caches maiores alcançam taxas de falha mais baixas, mas maior custo de
acesso
• por exemplo
– Cache de 2 Kbytes: taxa de falha = 15%, custo de acerto = 2 ciclos, custo de falha = 20 ciclos
• média custo de acesso à memória = (0,85 * 2) + (0,15 * 20) = 4,7 ciclos
– Cache de 4 Kbyte: taxa de falha = 6,5%, custo de acerto = 3 ciclos, custo de falha não mudará
• média custo de acesso à memória = (0,935 * 3) + (0,065 * 20) = 4,105 ciclos (melhoria)
– Cache de 8 Kbytes: taxa de falha = 5,565%, custo de acerto = 4 ciclos, custo de falha não
mudará
• média custo de acesso à memória = (0,94435 * 4) + (0,05565 * 20) = 4,8904 ciclos (pior)

Embedded Systems Design: A Unified 34


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Desempenho da Cache

• Melhorar a taxa de hits sem aumentar o tamanho da


cache
– Aumentar o tamanho da linha (bloco)
– Mudar tamanho do conjunto
0.16

0.14

0.12

0.1 1 way
% cache miss
2 way
0.08
4 way
0.06 8 way

0.04

0.02

0
cache size
1 Kb 2 Kb 4 Kb 8 Kb 16 Kb 32 Kb 64 Kb 128 Kb

Embedded Systems Design: A Unified 35


Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Unidade de gerenciamento de memória
(MMU)
• Deveres da MMU
– Lida com atualização de DRAM, interface de
barramento e arbitragem
– Cuida do compartilhamento de memória entre vários
processadores
– Traduz endereços de memória lógica do processador
para endereços de memória física de DRAM
• CPUs modernas geralmente vêm com MMU
embutido
• Processadores de propósito único podem ser usados
Embedded Systems Design: A Unified 36
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Unidade de gerenciamento de memória
(MMU)

Embedded Systems Design: A Unified 37


Hardware/Software Introduction, (c) 2000 Vahid/Givargis

Você também pode gostar