[HD2 Android NAND Development] gecata:
In theory they are same, but...

MLC NAND work with little bit lower voltage and have better IOPS, caused from different hardware controller (well-selected and tuned pair from hardware vendor) and optimized software (kernel part) for this controller. For MMC card many vendors select controller wich support wide range cards with wide range of read/write speed (mean class 2 - 10). Our phones are equipped with class 2 cards in package, but they work well with class 6 cards. Speed limitations (IOPS) with class 10 cards is caused from this controller, because they are made with idea to align speed differences between cpu and external memory. Figuratively procedure is such:

1. Cpu say to controller : write/read this data to memory

2. Controller say to cpu: Ok, but you need to wait some time.

3. Controller go to make his work, while cpu wait on full power

3a. While controller work with memory, if kernel support some type of scheduler - make some other work, if not support scheduler - just wait

4. Controller say to cpu: Ok, i make my work

4a. If cpu just wait - go to make another work, if make another work, say to controller - now you wait, finish another work and go to work with controller

5. Finish read/write operation

For this scenario (with or without scheduler) cpu is always on and eat battery, also heat. When heating go to some limit, there is another controller, who say to cpu: Oh men, you are so hot - go to sleep little bit. When cpu going to "sleep" all other parts also go slowdown, because they are depend from him and frequency bus(controlled from cpu). When this happen frequency bus also go down and all other chips also. After some time(1-2 sec.) cpu say: I'm not hot, will go to work. They also fire up frequency bus and bus fire up all others. And again and again and ... so on. While this is happening we lost battery power and time. Another problem there is frequency synchronization between all other chips. And this happen thousands of times on a day - eat power and time. Also.. after a time of use some parts some time say: Feel tired, going to sleep little. Again losing time. And if this sleep time is more than expected from other parts - the chain is interrupted and.. phone freeze - You need to pull out battery! This is also reason for possibility some phones to can overclock more from another.

So ... if You like to look at this with as diagram - just imagine upper part of AC voltage diagram.

While emmc(NAND) controller know exactly his opportunities and don't let cpu to sleep or doing another work. Or if it let cpu do something else - they tell him what time have to do his another work before go back.

Other reason for lag and freeze is under voltage. Figuratively procedure is such:

Cpu is on deep sleep mode - caused from under voltage. When we want to use phone - we wake it up, but they need some time (to wash his eyes :) ). When is really waked up, cpu need to wake another parts, and they also need time - while we wait. At this moment power consumption is really at big peak. Here is the main trouble. Outputs from the situation are 3:

1. After little time all going well :)

2. Battery and power controller cannot withstand peak and phone freeze :(

3. Some parts cannot weak up and ... and phone freeze :(

P.S. This is very long story and i think its not for this thread. If someone want - we can open another thread to discuss these problems. Also think there in forum has mans (and hope women) whit good knowledge and can help to make software makers life more easy and effective.

P.P.S. Our phones are great! They are like universal weapon! Just .. we need to know hot to use this weapon correctly!