Forums

Memory selection for an embedded system

Started by Unknown February 10, 2006
Hi all,
I'm currenlty gettting into embedded system architecture and would like
to know where can I find any kind of tutorial/articles/lecture notes
regarding the "art" of selecting the memory for my design I.E. what
kind of memory to use SDRAM , SRAM ,FLASH ,EEPROM and where to use it.
another thing I'm looking for is stuff on the subject of memory mapping
I.E. how to arrange the different memories , peripherals etc.
I hope you guys will be able to help me with those.
Thanks in advance , Mordehay.

me_2003@walla.co.il wrote:
> Hi all, > I'm currenlty gettting into embedded system architecture and would like > to know where can I find any kind of tutorial/articles/lecture notes > regarding the "art" of selecting the memory for my design I.E. what > kind of memory to use SDRAM , SRAM ,FLASH ,EEPROM and where to use it. > another thing I'm looking for is stuff on the subject of memory mapping > I.E. how to arrange the different memories , peripherals etc. > I hope you guys will be able to help me with those. > Thanks in advance , Mordehay.
I'm not sure if there are any articles, for the simple reason one size never fits all in the embedded space (if anywhere at all). Just what memories you need depends on the system, the processor you use, the code / data requirements etc. There are many systems with no external memory (where external means a separate chip from the processor) and there are some with huge amounts of all the types you list. To determine the type and amount you need, you first need a requirement and know what processor you are going to use. The processor decision is usually driven in part by the memory requirement, too. I usually decide what the processor is going to be (based on all the requirements - performance, integrated options, memory overall requirements), but the processor decision is not simply driven by the performance requirement. It's various built-in interfaces (if they exist) are a large part of the decision. Different processors support differing types of memory directly, which impacts the decision, and differing system requirements will vary what is necessary. So there is no silver bullet for this, nor can it be reduced to an equation - that's why we have designers :) I have personally designed systems from controller only (no external memory) to boards with a SoC [multiple cores], 3 independent DDR memory systems, large amounts of flash (some for FPGA loading, some for boot), lots of serial eeprom and even some SRAM on board (on a single board) and most things in between. So - set a requirement for what your board must do, and go from there. Cheers PeteS
The types of memories that you mentioned, SDRAM, SRAM, FLASH, and
EEPROM, all have certain features that make them an advantage or
dis-advantage in certain situations.  For example, SDRAM will be fast
and high density per dollar, but it requires a refresh circuit  which
isn't necessarilly feasible on an embedded application.  Therefore,
SRAM is often times use instead as it doesn't require this, but it is a
bit slower (70ns is typical I think) and slightly more expensive.  The
last time I looked, a 256K x 16 SRAM chip on digikey was about $4 for
one device, which for most embedded systems, unless you call pentium
computers running windows an embedded system, which I don't, is a lot
of memory.  Flash, on the other hand is non volatile, fairly high
density and is reprogrammable, often times used as ROM while EEPROM is
also nonvolatile, but fairly low density and speed.

The choice of which type of memory you select depends on the goal of
the application and a typical system will likely have multiple form of
memory in it.

Noway2 wrote:
> The types of memories that you mentioned, SDRAM, SRAM, FLASH, and > EEPROM, all have certain features that make them an advantage or > dis-advantage in certain situations. For example, SDRAM will be fast > and high density per dollar, but it requires a refresh circuit which > isn't necessarilly feasible on an embedded application. Therefore, > SRAM is often times use instead as it doesn't require this, but it is a > bit slower (70ns is typical I think) and slightly more expensive. The > last time I looked, a 256K x 16 SRAM chip on digikey was about $4 for > one device, which for most embedded systems, unless you call pentium > computers running windows an embedded system, which I don't, is a lot > of memory. Flash, on the other hand is non volatile, fairly high > density and is reprogrammable, often times used as ROM while EEPROM is > also nonvolatile, but fairly low density and speed. > > The choice of which type of memory you select depends on the goal of > the application and a typical system will likely have multiple form of > memory in it.
The SDRAM size selection is not only depends on the Processor interface
but it has certain other factors also. Processor interface is
responsible for how much maximum size a processor can support SDRAM
The other factors are like a) Code execution from SDRAM ( u have code
on Hard disc or on NAND flash on ur system, u have to copy the code to
SDRAM for execution) b) Runtime allocation of memory ( Task stack,
heap) c) Stack Size d) SDARM used for back up ( say during format).

I am also really interested to know any standard free tool is available
on WEB for initial estimate of SDRAM size

surojit wrote:

> The SDRAM size selection is not only depends on the Processor interface > but it has certain other factors also. Processor interface is > responsible for how much maximum size a processor can support SDRAM > The other factors are like a) Code execution from SDRAM ( u have code > on Hard disc or on NAND flash on ur system, u have to copy the code to > SDRAM for execution) b) Runtime allocation of memory ( Task stack, > heap) c) Stack Size d) SDARM used for back up ( say during format). > > I am also really interested to know any standard free tool is available > on WEB for initial estimate of SDRAM size
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This must be a joke. You will need to know what cpu your using, what application you trying to do. And you want it FREE !!! This is a joke. Look at the stars, its as good as you'll get. donald
Donald wrote:
> surojit wrote: > > > The SDRAM size selection is not only depends on the Processor interface > > but it has certain other factors also. Processor interface is > > responsible for how much maximum size a processor can support SDRAM > > The other factors are like a) Code execution from SDRAM ( u have code > > on Hard disc or on NAND flash on ur system, u have to copy the code to > > SDRAM for execution) b) Runtime allocation of memory ( Task stack, > > heap) c) Stack Size d) SDARM used for back up ( say during format). > > > > I am also really interested to know any standard free tool is available > > on WEB for initial estimate of SDRAM size > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > This must be a joke. > > You will need to know what cpu your using, what application you trying > to do. > > And you want it FREE !!! > > This is a joke. > > Look at the stars, its as good as you'll get. > > donald
Snort It's not free - usually a *minimum* of a decade of experience and caffeine tolerance levels at 'astronomical' are required. Hair loss not guaranteed but likely. :) Cheers PeteS