CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

Which is the best memory technology?????

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
cfernandez



Joined: 18 Oct 2003
Posts: 145

View user's profile Send private message

Which is the best memory technology?????
PostPosted: Sat Aug 13, 2005 9:14 am     Reply with quote

Hi,

I have a important question: I need to include in my design memory for save information, this information change all days. This information contain data that include the transaction and I need big memory.

For this I see the following technology:

EEPROM
-Reduce memory space
-100.000 / 1.000.000 Write Cycles
- Slow transmition
- Retain information

Flash
-Big memory
-100.000 Write Cycles
- Fast Transmition
- Retain information

RAM
- Big Memory
- No Limit Write Cycles
- Very fast Transmition
- Not Retain information (for this battery backup)


For this technology, I have the following question:

1) Which is the best technology for save big data?
2) The write cycles is for byte??, The byte update 100.001 not change the old value?
3) Which is the best way for prevent the update 100.001 ??

Is possible that some guy, help me with this?

Thank you very much!!

Best Regards,
Ttelmah
Guest







PostPosted: Sat Aug 13, 2005 9:46 am     Reply with quote

Depends how big is 'big'. For medium sizes, consider FRAM as another alternative. Almost infinite write life, long data retention, and fast.
If you go for larger flash memories designed for 'disk replacement' situations, these include technologies to reduce the write count. The cycle 'life' is per block, so most have a few extra blocks, and use a 'walking' cycle technology, where when you change a block, it is written to the next 'spare' block, and the old block is flagged as spare. This spreads the writes across the memory, allowing far more cycles before problems are encountered. Really large versions, then add a RAM cache, and memory back-up capacitors, and do immediate changes to the cache, and not the memory itself, then use the backup capacitors to ensure the data is written when power is removed.
You could use an approach like this yourself. for instance, have a RAM large enough to hold an hour or more of transactions, and a flash memory as the main store. You then write once per hour to the flash from this RAM, or if the power fails, write immediately, using a memory backup capacitor to keep the system running long enough to complete the write. This way, the write life of a typical flash memory, will exceed 10 years of continuous use.

Best Wishes
future



Joined: 14 May 2004
Posts: 330

View user's profile Send private message

PostPosted: Sat Aug 13, 2005 5:27 pm     Reply with quote

Do you know how long it takes to write 256 bytes to flash. The datasheet talks about theoretical timing, but in practice with a 452 I don't know.
Ttelmah
Guest







PostPosted: Sun Aug 14, 2005 2:47 am     Reply with quote

This is a 'how long is a piece of string' question...
The total time, is normally going to be limited by the transfer speed, rather than the write speed. If you are prepared to use enough pins, you can control the memory (assuming the type chosen supports this), using a parallel interface, and transfer a byte in only about four instruction times. It'll normally take longer to address and fetch the next byte than to do the transfer. However assuming that on the grounds of number of pins, you use a serial interfaced memory, then you will normally be talking a minimum of 32 clocks to transfer a byte. Assuming that you use the hardware SPI, this can be occuring while you fetch the next byte, so on a processor at 40Mhz, I'd expect something in the order of perhaps 600K bytes/sec to be achievable with care, which is not much slower than using the parallel interface mode. Assuming the chip has a block mode, so you send the address etc., once, then just transfer the data, this gives a 'sector transfer' for 256bytes, of about 450uSec, plus a write time of typically 2mSec. So perhaps 2.5mSec for 256bytes. However remember that most flash chips erase in 'blocks', not sectors. They are fine, if you can erase the chip/block, and just write sequentially as more data arrives, but if you need to change a sector, you end up having to read the entire block (which means having a lot of storage for this), do a block-erase (typically a couple of seconds!), and then write all the data for this block back...

Best Wishes
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group