Memory’s type will decide that the entire embedded system’s operation and the performance, memory’s choice is therefore a very important decision-making. Regardless of the system is uses the battery power supply by the city electricity power supply, the application demand will decide that memory’s type (volatility or non-volatility) as well as the use goal (memory code, data or both have at the same time). Moreover, in the choice process, memory’s size and the cost is also the important attribute which needs to consider. Regarding the small system, the micro controller bringing memory has the possibility to satisfy the system request, but the big system possibly requests to increase the exterior memory. When for embedded system choice memory type, needs to consider that some design variable, the durability which as well as the system total cost including the micro controller’s choice, the voltage range, the battery life, the read-write speed, the memory size, memory’s characteristic, the cleaning/reads.
Figure 1 has listed in the embedded application system the most commonly used memory type. The following discussion when chooses the memory should follow basic principle.
Chooses when the memory should follow basic principle
1. internal memory and exterior memory
In ordinary circumstances, when had determined the stored routine code and the data need after storage space, project engineer the decision uses the internal memory exterior memory. Usually in the situation, the internal memory’s performance-to-price ratio is highest, but the flexibility is lowest, therefore project engineer must determine that to memory demand whether to grow in the future, as well as whether to have some way to be possible to promote to a code space bigger micro controller. Considered based on the cost that the people usually choose can satisfy the application request the storage capacity smallest micro controller, therefore in forecast code scale time must be specially careful, because the code scale possibly increases to request to replace the micro controller.
At present in the market has each scale the exterior memory component, we through increase the memory to adapt code scale increase very easily. Sometimes this means that seals the size to be the same, but the capacity bigger memory substitution existing memory, or increases the memory on the main line. Even if the micro controller has the internal memory, may also serial EEPROM or dodges through increase outside saves satisfies the system to nonvolatile storage’s demand.
![]() |
2. bootstrap memory
In the big micro controller system or based on processor’s system, project engineer may carry on the initialization using the guidance code. Had usually decided using itself whether to need the guidance code, as well as whether to need the special bootstrap memory. For example, if does not have the exterior addressing main line or the serial guidance connection, usually uses the internal memory, but does not need the special guidance component. But in some do not have in the internal procedure memory’s system, the initialization is an operation code part, therefore all codes will be resident in the identical exterior program memory. Some slightly controller already has the internal memory also to have the exterior addressing main line, in this case, the guidance code will be resident in the internal memory, but operation code in the exterior memory. This very possible is the safest method, because time change operation code will not appear revises the guidance code accidentally. In all situations, the bootstrap memory must the right and wrong volatility memory.
3. disposes the memory
Regarding the scene programmable gate array (FPGA) or on piece system (SoC), the people use the memory memory layout information. This kind of memory must right and wrong volatility EPROM, EEPROM or dodges saves. In the majority situations, FPGA uses the SPI connection, but some old component still used the FPGA serial interface. Serial EEPROM or dodges saves the component to be most commonly used, EPROM uses little.
4. program memory
All belt processor’s system uses the program memory, but project engineer must decide that this memory is located at the processor interior exterior. After having made this decision-making, project engineer can further determine memory’s capacity and the type. Certainly sometimes, the micro controller already has the internal procedure memory also to have the exterior addressing main line, this time project engineer may choose uses in the middle of them any, or both use. Why is this for some application choice best memory’s question, because the micro controller’s choice becomes frequently complex, as well as why will change memory’s scale also to cause to change the micro controller’s choice reason.
If the micro controller already uses the internal memory also to use the exterior memory, then the internal memory is usually used for the code which saves not often changes, but the exterior memory uses in saving renews the quite frequent code and the data. Project engineer also needs to consider whether the memory online will be programmed or substitutes with the new programmable component. Regarding needs to program the function again the application, the people usually select have the micro controller which the interior dodges saves, but has internal OTP either ROM and exterior dodges saves or the EEPROM micro controller also satisfies this request. In order to reduce the cost, the outside dodges saves may use for to save the code and the data, but in stored datum time must avoid the accident revising the code carefully.
In majority embedded systems, the people use dodge save the stored routine, so that online promotion firmware. The code stable old application system still might use ROM and the OTP memory, but because dodges the versatility which saves, more and more more application system clockwise to dodges saves. Table 1 has given the program memory type parameter comparison.
5. data-carrier storage
Is similar with the program memory, the data-carrier storage may be located in the micro controller, or is the exterior component, but these two kind of situations have some differences. Sometimes the micro controller interior contains SRAM (volatility) and EEPROM (non-volatile) two kind of data-carrier storages, but sometimes does not contain internal EEPROM, in this case, when needs to save the mass data, project engineer may choose exterior serial EEPROM or serial dodges saves the component. Certainly, may also use parallel EEPROM or dodge saves, but usually they only serve as the program memory.
When exterior needs the high speed data memory, exterior usually choice parallel SRAM and uses the serial EEPROM component to satisfy for nonvolatile storage’s request. Some designs will also dodge save the component to serve as the program memory, but retains a sector to take the data memory block. This method may reduce the cost, the space and provides the non-volatility data-carrier storage.
In view of the nonvolatile storage request, the serial EEPROM component supports I2C, SPI or the micro line (Microwire) communication main line, but serial dodges saves usually uses the SPI main line. Because the writing speed is very quick, and has I2C and the SPI serial interface, FRAM obtains the application in some systems. Table 2 have compared each kind of data-carrier storage’s good and bad points.
![]() |
6. volatility and nonvolatile storage
The memory separable becomes the volatility memory or the nonvolatile storage, the former after the power failure obliterated data, but the latter after the power failure still might maintain a data. Project engineer sometimes together uses the volatility memory and the reserve battery, causes its performance just likes the non-volatility component, but this possibly simply uses the nonvolatile storage to be more expensive. However, speaking of requests the storage capacity very big system, has reserve battery’s DRAM possibly satisfies the design requirements, and performance-to-price ratio very high one method.
In has in the continual power supply system, the volatility or the nonvolatile storage may use, but must make the final decision-making based on the power failure possibility. If in memory’s information may when the electric power restores restores from another source, then may use the volatility memory.
The choice volatility memory and the battery use together another reason is a speed. Although the non-volatile memory component may in the power failure time maintains a data, but write data (a byte, page or sector) the time is long.
![]() |
7. serial storage and parallel memory
After having defined the application system, the micro controller’s choice is decides the choice serial or a parallel memory’s factor. Regarding the big application system, the micro controller usually does not have big the enough internal memory, by must use the exterior memory, because the exterior addressing main line usually is parallel, the exterior program memory and the data-carrier storage will also be parallel.
The small application system usual use has the internal memory but not to have the exterior address bus’s micro controller. If needs the extra data-carrier storage, the outside serial storage component is the best choice. In majority situations, this extra exterior data-carrier storage right and wrong volatility.
According to the different design, the bootstrap memory may be serial may also be parallel. If the micro controller does not have the internal memory, the parallel nonvolatile storage speaking of the majority application systems is the correct choice. But to some high speed applications, may use the exterior non-volatility serial storage component to guide the micro controller, and allows the main code to save in the interior or exterior in high speed SRAM.
8.EEPROM with dodges saves
The memory technology causes between RAM and the ROM boundary becomes maturely very fuzzy, now had some type memory (for example EEPROM and dodges saves) combined both’s characteristic. These components look like RAM to carry on the read-write equally, and looks like ROM equally when the power failure maintains a data, they may the electricity cleaning, and is programmable, but has their good and bad points respectively.
Looking from the software angle, independent EEPROM and dodges saves the component is similar, both main difference is the EEPROM component may chase the byte place revision, but dodges saves the component only to support the sector cleaning as well as to is cleaned the unit the character, the page or the sector carries on the programming. To dodges saves programs also needs to use SRAM, therefore it requests in a longer time to have more components in the work, thus needs to consume the more battery energies. Project engineer must confirm when revises the data has enough capacity SRAM available.
The memory density is decided that choice serial EEPROM or dodges another factor which saves. In market present available independence serial EEPROM component’s capacity in 128KB or below, the independence dodges saves component’s capacity in 32KB or above.
If many component cascades in the same place, may use serial EEPROM to realize is higher than 128KB the capacity. The very high cleaning/reads in the durability to request to urge project engineer to choose EEPROM, because model serial EEPROM may clean/reads in 1,000,000 times. Dodges saves may clean generally/reads in 10,000 times, only then the minority several kind of components can achieve 100,000 times.
Today, the majority dodges saves component’s voltage range is 2.7V to 3.6V. If does not request the byte addressing ability or the very high cleaning/reads in the durability, uses in this voltage range’s application system dodges saves, may cause the cost to be relatively low.
9.EEPROM and FRAM
EEPROM and the FRAM design variable is similar, but FRAM may the read-write number of times be high, and the writing speed is quick. However in the usual situation, the user will still choose EEPROM, but was not FRAM, its primary cause was the cost (FRAM is more expensive), the quality level and the goods supply situation. Project engineer uses cost low serial EEPROM frequently, only if the durability or the speed are the compulsory system requests.
DRAM and SRAM are the volatility memory, although these two type’s memory may serve as the program memory and the data-carrier storage, but SRAM mainly uses in the data-carrier storage. Between DRAM and the SRAM main difference is the data storage life. So long as the power failure, SRAM cannot maintain its data, but DRAM only then the extremely short data life, usually is about 4 milliseconds.
Compares with SRAM, DRAM as if is useless, but is located at the micro controller internal DRAM controller to cause DRAM the performance and SRAM is the same. DRAM controller before data vanishing the periodic floor brush saves newly data, therefore memory’s content may according to need to maintain the long time.
Because a bit cost is low, DRAM usually serves as the program memory, therefore has the huge memory request application to be possible from the DRAM benefit. Its biggest shortcoming is the speed is slow, but computer system use high speed SRAM takes the cache memory to make up DRAM the speed flaw.
Table 3 summarized each kind of memory’s characteristic which this article mentioned. What needs to pay attention, the different type’s memory’s suitable situation to be different, each type has own merit and weakness, therefore compares item by item can always obtain the meaningful result by no means.
![]() |
This article subtotal
Although we may use any type nearly the memory to satisfy embedded system’s request, but the terminal application and the total cost request usually are affect us to make policy-making the primary factor. Sometimes, unifies several type’s memories the use to be able to satisfy well application system’s request. For example, some PDA design simultaneously uses the volatility memory and the nonvolatile storage takes the program memory and the data-carrier storage. Permanent procedure preservation in non-volatility ROM, but by user downloading procedure and data storage, in has in volatility DRAM which the battery supports. Which kind of memory type no matter chooses, before the determination will use in finally application system’s memory, project engineer must compromise carefully considers each kind of design factor.
Author: Alex Martinez, product marketing manager, Microchip Tecnologies Corporation
Email:alex.martinez@microchip.com



