O que é memória flash não executável?

1

No outro dia, no trabalho, alguém perguntou a how much ‘executable’ flash memory we need . Não é possível executar de toda a memória flash?

Se eu estiver errado, como a memória flash executável é diferente da memória flash não executável?

EDITAR Isso tem a ver com sistemas embarcados. Estamos projetando um novo sistema no trabalho e estamos escolhendo um processador. Um requisito que surgiu foi a quantidade de memória que precisávamos. A citação acima foi em relação a uma clarificação sobre esse requisito.

    
por Mike 26.10.2012 / 19:46

2 respostas

3

Não, não é possível executar toda a memória flash. Por exemplo, digamos que você tenha um chip flash serial que requer várias instruções apenas para ler um único byte desse chip flash. Como você pode executar o código desse chip flash?

Praticamente todo PC tem um chip flash em cada RAM contendo as especificações da RAM. Você com certeza não pode executar o código nesse chip flash, já que ele não está mapeado na memória e só pode ser acessado por seqüências complexas de código conversando com o controlador de memória.

Ou considere uma CPU com espaços de endereçamento de dados e executáveis separados. Um chip flash que foi mapeado no espaço de endereços de dados também não seria executável.

Os detalhes são muito específicos do dispositivo. Mas não é incomum para um dispositivo ter flash que não é executável.

Pense em uma unidade flash USB ou SSD. Você não pode executar o código daqueles sem copiá-lo para a RAM primeiro. (E os sistemas embarcados geralmente não possuem RAM suficiente para armazenar uma cópia.)

Além disso, algumas CPUs têm requisitos de desempenho na memória que são executáveis. Algumas CPUs não têm a capacidade de inserir estados de espera em buscas de programas, mas na busca de dados. Então flash executável deve ser muito rápido. Não é incomum usar flash mais barato para dados. (O DS80C320, por exemplo, pode tolerar memória de dados mais lenta, mas a memória executável deve ser executada na velocidade máxima.)

    
por 26.10.2012 / 20:39
1

Em muitos microcontroladores, que são usados para muitos aplicativos incorporados, existem pelo menos dois tipos de memória: Memória Flash (que geralmente contém o firmware incorporado) e RAM (que é usada para armazenar valores de tempo de execução, registros, pilha etc.).

Alguns microcontroladores têm mais de 1 memória flash e nem todos podem ser usados para armazenar programas (firmware). As outras regiões de memória flash são usadas apenas para armazenamento não volátil.

Em todos esses casos, a memória flash é normalmente programada durante o desenvolvimento (como carregar dados em um disco rígido) e não sobrescrita pelos programas em execução. Em alguns casos, o flash pode ser gravado e você tem sistemas auto-reprogramáveis.

Para ser claro, os programas são executados a partir desta memória flash, mas não estamos falando de nada como um disco flash.

    
por 26.10.2012 / 22:12