PDA

View Full Version : Question about EEPROM in S45i (durability).


ntcn
09-10-2004, 11:22
EEPROM physically there is separately or in the same place, as a built-in flex-memory (in the flash) ? If it is necessary for me is relative frequently (up to thousand times a month) to keep the data not in RAM, it is better (from the point of view of reliability / durability) to store them in EEPROM or to write in flex-memory as a file ? For type of flash = C289, EEPROM it is copied at once both in 2Mb (1F0000 in 6Mb fullflash) and in 4Mb (5F0000 in 6Mb fullflash) flash ? Or both methods identical to durability of flash ?

lalo.lerry
09-10-2004, 14:57
double posted - delete please

lalo.lerry
09-10-2004, 14:59
The 2 S45 EEprom are virtually emulated in Flash chips (like flex memory).
So I THINK there isn't any differences to store datas in eeprom of in flex.
Also I sometime wonder about max rewritable amount (hoping is very big!).
C289 Flash S45 has both eeprom eefull (0x1F0000, size 0x10000) and elite (0x1F0000, size 0x10000), and of couse contain different blocks.
Data in eeprom are stored only at shutdown.

ntcn
09-10-2004, 18:12
Data in eeprom are stored only at shutdown.
But data on a flex-disk are written at once! Means, if before shutdowning phone 10 times to write the data in EEPROM and 10 times to write the data on a disk - in the first case really in a flash the data will be written only once (at shutdown), and in a file on a disk the data will be written 10 times and for a case with use of a file deterioration of a flash will be in 10 times more?

rizapn
09-11-2004, 02:57
In SL45 (I think S45 too), we can directly store data into the EEPROM using writeEEP function, no need to wait until the phone is shutdown.

rizapn

lalo.lerry
09-11-2004, 04:14
In S45iv04 WriteEEP() function is:

WriteDataToEEPROM() {
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, size
mov [-r0], r12
mov r12, EEPROM_Block
mov r13, data_Offset
mov r14, data_Page
mov r15, offset
calls 0CCh, 0FEB8h
; calls 0CDh, 0606h ;2nd choice
; calls 0CDh, D063h ;3rd choice
add r0, #8
}

ntcn
09-11-2004, 09:13
How all about reliability? If I shall write in EEPROM (for example how it does patch "SMS counter info" for SL45) up to 1000 times a month, and flash it is designed for 10000 cycles - whether means it, what in 10 months phone "will die"? Or I in vain panic?

rizapn
09-11-2004, 13:59
Hmmm... I dunno about that numbers ... Maybe we have to read the flash hardware docs, and then we know, what is the impact of writing data directly to EEPROM. If the number of re-write-able is very-very big (almost unlimited), then we can continue to use that method. But, if the EEPROM rewriteable is only for (let's say 10,000 times), then it is a real big problem ... But, I think, the number will be almost unlimited (the original Appointment function is also record the data directly to the EEPROM) ...

rizapn

ntcn
09-11-2004, 15:00
My mistake. There 1,000 or 100,000 cycles of rewriting depending on a voltage. The voltage 12V like has no place in phone ? 100,000 cycles mean. In SL45, according to some information, are used Intel 28F160C3 (16-Mbit Top Boot Device, a code 88C2) and 28F320C3 (32 Mbit Top Boot Device, a code 88C4). Citations from the documentation (getting from http://mamaich.fu ckru.net/sl45i/29064516.rar (delete space in URL, this URL was found at http://mamaich.fu ckru.net/sl45i/sl45_re.htm, sorry - russian language) :
===
Provides in-system programming and erase in the 1.65 V–3.6 V range (Minimum 100,000 Block Erase Cycles). For fast production programming, 12V programming can be used (Apply VPP to 12 V + 5% for faster program and erase in a production environment. Applying 12 V + 5% to VPP can only be done for a maximum of 1000 cycles on the main blocks and 2500 cycles on the boot blocks. VPP may be connected to 12 V for a total of 80 hours maximum)..
===

cyperghost
09-11-2004, 21:05
Well if we talk about the question of eeprom durabilty and how to handle the writing process, imho it's better to use the eep instead of MMC. The MMC writing is limited (I don't know how much cycles) but remember always this. If you directly work with the MMC card and want to rename a file....maybe "test.dat to test2.dat" then happens this:

test.dat is copied to a "swap" file maybe ~xcy.dat
test.dat is deleted
~xyc.dat is renamed to test2.dat (that means ~xyc.dat must be deleted).

and if we now count the writing processes it's FOUR! Only to rename ONE file!

ntcn
09-11-2004, 21:28
imho it's better to use the eep instead of MMC.
I have specially specified in the subject of a topic, that a question about EEPROM in S45i, I need to compare deterioration flash at record in EEPROM and in flex-memory S45i (which as it is located in flash).. :)

P.S. But about a MMC card - the number of guaranteed cycles of rewriting is equal 1,000,000 and copying (at renaming) occurs in other area of a card and other area wears out. But even if the same area would be involved - all the same at 4 operations we have 250,000 cycles of rewriting, and at flash only 100,000 cycles.. In SL45 use MMC is more favourable :)

But for a flex-disk in S45 renaming too goes through 4 operations and for a flex-disk in S45 it is possible to execute only 25,000 cycles of renaming. But we do not need to rename, we need to update the data. If them to update in same place EEPROM - 100,000 guaranteed cycles and if it is updated in a file (flex-disk), whether that is not known will be updated in the same place flash or in the other place from flex-disk (if in the other - have more than 100,000 cycles and files it is more favourable)..

ntcn
09-11-2004, 22:22
EEPROM blocks at removal are sometimes rewritten, and the new block with same number (the old block in the table is marked as removed) sometimes leaves simply and created and new contents are written to it.. Who knows in what cases (through functions to what addresses in s45/sl45) the existing block is rewritten, and in what - leaves and created new with the same number?

For example, in my EEPROM the block number 5033 - the list of the accepted calls. At me in phone three blocks 5033: two removed, one is now used. The block in length of 240 bytes, on each record is allocated 30 bytes. How 10 records there were placed? And why only 2 removed blocks? But all three blocks (two removed and one actual) are identical ! During updating the block two times is erased and recreated? But why then contents of all three blocks identically? The same situation (three blocks, two removed, but all three identical) with the block 5039 (RTC) and in it is specified two dates - the middle of August and the beginning of September.. Phone today (12.09.2004) switched off some times - that there the dates is not known..

cyperghost
09-12-2004, 14:30
That's the same problem I've got in my SL45 and it's t9 user database. There are three databases, two marked as delted and one currently used. If I extract the eep area I can read the whole content of this database via hexeditor.... I don't know how and why this is happening. Anyone any idea?

I thought the whole progress of eep operations are unlimited.....

lalo.lerry
09-12-2004, 14:52
No Idea, but that 2 blocks aren't the only ones repeated 3 times in eefull.

I also found another strange behaviour:
searcing the same block bytes in different eefull backup taken after turn-on and immediately turn-off phone, they are at different offsets.
I expected blocks should be always in the same place, specified by Eeprom Index Table... :confused:

k-mac
09-12-2004, 14:54
"There 1,000 or 100,000 cycles of rewriting depending on a voltage"

hmm i use riza`s counter and receive more than 10.000 sms(its not mistake!).
so now i must start thinking about sell back my phone because i consumed 40000from 100000 my eeprom cycles?!? :(:(:(

ntcn
09-12-2004, 15:57
I expected blocks should be always in the same place, specified by Eeprom Index Table... :confused:
The data can be (for the same block):
1) in the same place (offset from begin) in EEPROM
2) in other place: the old block (in offset from "1)") in the index table will be marked as "F0" (for the actual block an attribute in the beginning and at the end of record in the index table - "FC") : is an attribute of removal of the block, and in the table the new block with same number (and attribute "FC") will be added and there the data will be written.
You can check up what blocks on what place and what from them are removed or manually or through the program "smelter" (http://avkiev.siemens-club.ru/Siemens/Smelter/Smelter.rar, choose in the menu, through the right button of the mouse, "show deleted blocks" in a window "EEPROM"). :)

cyperghost
09-12-2004, 19:46
About the fear of killing the phone during massive EEProm writing due the SCI patch... as k-mac considered that he receives 10.000 (!!WOW!!) SMS per month well why we don't switch back to the old SCI patch that stores the data into the EEP during normal Shutoff?
I personally do not have any problems with abnormal shutdown ;)

ntcn
09-12-2004, 22:34
Imho, in a case with 10,000 SMS: outgoing (not archive) SMS saved on a SIM-card, and incoming - in the buffer of phone (in S45i a maximum of 25 messages), that is in flash... 10,000 SMS - 10,000 operations of write to the flash.. :)

lalo.lerry
09-13-2004, 07:15
The data can be (for the same block):
1) in the same place (offset from begin) in EEPROM
2) in other place: the old block (in offset from "1)") in the index table will be marked as "F0" (for the actual block an attribute in the beginning and at the end of record in the index table - "FC") : is an attribute of removal of the block, and in the table the new block with same number (and attribute "FC") will be added and there the data will be written.
You can check up what blocks on what place and what from them are removed or manually or through the program "smelter" (http://avkiev.siemens-club.ru/Siemens/Smelter/Smelter.rar, choose in the menu, through the right button of the mouse, "show deleted blocks" in a window "EEPROM"). :)


Thanks for these infos, ntcn!
I knew Smelter but din't use in that way...