• Nenhum resultado encontrado

EL68E Sistemas Embarcados

N/A
N/A
Protected

Academic year: 2022

Share "EL68E Sistemas Embarcados"

Copied!
48
0
0

Texto

(1)

EL68E Sistemas Embarcados

Prof. Douglas RENAUX

Memórias

(2)

Tecnologias de Memórias

Voláteis x Não-Voláteis

Estáticas x Dinâmicas

Tipos:

ROM

PROM

EPROM

Flash

SRAM

SDRAM

DDR

(3)

Conceitos

Organização externa x interna Diagramas em blocos

Porque usar barramentos ?

CPU 32bits x Memória 8 bits

(4)

Exemplo – 1/8

Processador: Cortex-M3

Chips de memória disponíveis: 1M x 8 bits Total de memória desejado: 2M x 32 bits

Endereço inicial desta memória no mapa de

endereços do Cortex: 0x1000 0000

(5)

Exemplo 2/8

Chip de memória (deste exemplo)

-

para endereçar 1M posições (1.048.576) são necessárias 20 linhas de endereço. 2

20

= 1M

A D /CS /OE /WR

20

8

(6)

Exemplo 3/8

O espaço de endereçamento do Cortex-M3 comporta 4 GBytes, ou seja,

232 = 4.294.967.296.

Para uma memória com 32 bits de largura (4 bytes de largura) existem 1G linhas na memória. Portanto,

30 linhas de endereço são usadas para selecionar uma das 1G linhas.

As outras duas linhas de endereço (A1 e A0) são usadas para selecionar um dos 4 bytes da linha.

Apesar de só se usar 30 bits para o endereço de cada linha, menciona-se os 32 bits

deixando A1 e A0em 0.

Portanto, a primeira linha é 0x0000 0000 e a se- gunda linha é 0x0000 0004 (A1 e A0em 0;

A2 em 1). Desta forma, o endereço da linha é

o endereço do byte menos significativo daquela linha.

4 GBytes de

espaço de

endereçamento

Byte 0 Byte 1

Byte 2

Byte 3 0x0

0xFFFF FFFC Byte no endereço

0xFFFF FFFF

Endereço de cada linha da memória

(7)

Exemplo 4/8

Se o objetivo é ter 2M x 32 bits = 64 Mbits =

8 MBytes = 2 MWords de memória mapeados a partir do endereço 0x1000 0000;

Vamos precisar de 8 chips de 8 Mbits cada (1 M x 8 bits = 8 Mbits = 1 MByte).

Colocando 4 destes chips em “paralelo” teremos os mesmos 1M linhas mas agora cada linha terá 32 bits. Total: 1 MWord.

Concatenando mais 4 chips a partir do endereço seguinte, teremos os 2 MWord desejados.

Portanto, o primeiro grupo de 4 chips deve ser mapeado a partir de 0x1000 0000

Somando-se 4 MBytes (= 1MWord) a partir deste endereço concluímos que o segundo grupo de 4 chips deve ser mapeado a partir de

0x1040 0000.

Byte 0 Byte 1

Byte 2

Byte 3 0x0

0xFFFF FFFC

A:1 MWord B:1 MWord

0x1000 0000 0x1040 0000 0x103F FFFC 0x107F FFFC Byte no endereço

0x107F FFFF

(8)

Exemplo 5/8

Quais linhas de endereço são usadas para cada finalidade ?

A31 A30 A29 A28 A27 A26 A25 A24 A23 A22 A21

...

A4 A3 A2 A1 A0

selecionam o byte dentro de cada linha estas 20 linhas de

endereço selecionam 1 linha de memória dentro de cada região de 1 MWord

estas 10 linhas de endereço selecionam identificam cada uma das regiões de 1 MWord.

Para acessar a região A o valor destes bits de endereço deve ser:

0001 0000 00 (início: 0x100) Para acessar B:

0001 0000 01 (início: 0x104) (observe que para toda a faixa de endereços de 0x1004 0000 até 0x1007 FFFF estes 10 bits – A31 a A22 – não mudam)

(9)

Exemplo 6/8

(10)

Exemplo 7/8

O Gerador de Chip Select (integrado ao LPC1857) é um módulo programável.

Neste caso, seria programado para gerar /CS1 quando a faixa de endereço fosse:

0x1000 0000 a 0x103F FFFF E para gerar /CS2 na faixa:

0x1040 0000 a 0x107F FFFF

Nos demais endereços nem /CS1 nem /CS2

estaria ativos.

(11)

Exemplo 8/8

A implementação do Gerador de Chip Select

poderia ser simplesmente:

(12)

ROM - Conceito

word line

bit line

(13)

Mask ROM (CMOS)

(14)

EPROM e EEPROM - conceito

(15)
(16)
(17)

Memoria Flash

(18)
(19)
(20)
(21)
(22)

Memória Estática (SRAM)

Célula Básica

(23)
(24)
(25)
(26)
(27)

Prática 1/2

Acesso a Memória – Estruturas

struct time_str {

unsigned long long h;

unsigned char a;

long long g;

signed char b;

unsigned short c;

signed short d;

int e;

unsigned f;

};

struct time_str t1;

struct time_good { unsigned long long h;

long long g;

int e;

unsigned f;

unsigned short c;

signed short d;

signed char b;

unsigned char a;

};

struct time_good t2;

#pragma pack(1)

struct time_str_packed { unsigned long long h;

unsigned char a;

long long g;

signed char b;

unsigned short c;

signed short d;

int e;

unsigned f;

};

struct time_str_packed t3;

Para CodeRed

https://gcc.gnu.org/onlinedocs/gcc/

Structure-Packing-Pragmas.html

(28)

Prática 2/2

Acesso a Memória – Estruturas

Escrever código C que escreve em todos os campos destas estruturas.

Observar (janela disassembly) o tipo de instrução STR usado para cada campo

Qual o tamanho ocupado na memória por cada estrutura ?

Imaginando as memórias do exercício anterior, quantos

ciclos de acesso são necessários em cada atribuição ? Quais linhas de controle (/B0, /B1, /B2, /B3) são ativadas em cada caso ?

O que acontece ao se atribuir ao campo ´a´ o valor 1000 ? E ao campo ´b´?

De que forma o compilador organiza os campos da estrutura na memória a partir do endereço inicial da estrutura ?

Qual estrutura está melhor planejada ?

(29)

Memória Dinâmica

Célula básica:

1 transistor + 1 capacitor

(30)

cas

(31)
(32)

DRAM Command summary

/CS /RAS /CAS /WE Address Command

H x x x x Command inhibit (No operation)

L H H H x No operation

L H H L x Burst Terminate: stop a read or write burst in progress

L H L H column Read from currently active row

L H L L column Write to currently active row

L L H H row Activate a row for read and write

L L H L x Precharge (deactivate) the current row

L L L H x Auto refresh: Refresh one row of each bank, using an

internal counter

L L L L mode Load mode register: Address bus specifies DRAM

operation mode.

(33)
(34)
(35)
(36)
(37)

SDRAM -

Dinâmica e Síncrona

(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)

2015

O que se usa hoje como memória em sistemas embarcados ?

Tipos de uso:

1.

Código e dados não voláteis

2.

Variáveis

3.

Sistema de arquivos

(46)

Código e Dados Não-Voláteis

Memória Flash – NOR

Acesso aleatório

Barramentos:

Endereços

Dados (8/16/32 bits)

Controle

Dividida em setores (p.ex. 128 Kbytes/setor) – apagamento por setor

Tamanhos: 8K a 1 GByte

Velocidades: 45 a 150 ns

Possível organização:

Bootloader

Código app (pode fazer update)

Setores reservados para dados de configuração

Setores reservados para emulação de disco rígido

Muitas vezes a Flash-NOR está integrada ao microcontrolador

(47)

Variáveis

Armazenamento em RAM

RAM Estática x Dinâmica RAM estática:

1 Kbyte a 1 Mbyte

4/8/16/32 bits – barramento de dados

8 a 70 ns – tempo de ciclo

Sem refresh => interfaceamento mais simples RAM dinâmica

Preferencia atual para DDR3

Até 1 Gbyte

1600 MHz

(48)

Sistema de Arquivos

Sistemas embarcados costumam usar disco em estado sólido NAND- Flash

Acesso sequencial por setores – equivalente ao acesso de setores de um HD

Erros em parte do setor: uso de códigos corretores de erro (como em HD)

Requer poucos pinos de acesso – p.ex. 16

Tamanho: 1 Mbyte a 64 Gbytes

Muito usada em pen-drives

Solução alternativa para S.E. :

Não usar NOR-FLASH

Alguns microcontroladores sabem dar boot a partir de NAND- FLASH: copiam da NAND para RAM (equivalente ao PC: HD para RAM)

Referências

Documentos relacionados

Relacionar fatores de custos ambientais com ações de simbiose industrial: neste momento da pesquisa os fatores foram relacionados através da junção do modelo de Custos Ambientais

A baixa taxa de desconto ao longo dos anos de produção do campo, para o cálculo da função objetivo, aliada a baixa produção de água que a locação de

 A alocação dinâmica é muito utilizada em problemas de estrutura de dados como por exemplo, listas encadeadas, pilhas, filas, arvores binárias e grafos ...  O interessante

A fim de ampliar os trabalhos que se dedicam especificamente ao ensino da biologia, para que possam fornecer subsídios para a adoção de estratégias mais eficientes em sala de aula,

Período da Viagem: 27/09/2012 à 27/09/2012 Destino: Niterói / Volta Redonda / Niterói Número da Requisição: 004059/12 Valor das Diárias (R$): 64,37 Objetivo: Nacional -

5.1 deste Edital tenham sido preenchidos de forma correta e a documentação obrigatória esteja completa e dentro do prazo de inscrição. Não será permitida a

As diferentes Comissões de Protecção Civil, quer a nível Nacional, Distrital ou Municipal são órgãos de coordenação política, ou seja, organismos que asseguram que todas

Foi lavado com este Magnesol um biodiesel virgem, para que assim fosse possível a comparação entre o biodiesel lavado com um adsorvente virgem, e outro biodiesel lavado com