Proposals

Performance degradation problems in Flash Memory card

This proposal has been rejected.

*

One Line Summary

An analysis of the current issues with MMC/SD performance degradation over the time.

Abstract

Every MMC and SD card is a non-volatile (Flash) memory card and has a built in controller that manages the internal NAND memory. The Card Controller runs several tasks including – manages erase, read, write, wear leveling (WLA), bad block management, garbage collection(GC), internal error-correcting code (ECC), CRC. Time for read/write operation depends upon other background tasks running in the card controller. Hence, low read/write times is not guaranteed. This is crucial for achieving required fps in AV record and playback multimedia applications.

The read/write time is between 0 to maximum timeout. The Specifications (MMCA and SDA) have timeout requirements for the card manufacturers to guarantee that after a certain time the card will either complete the read/write task or return an error. So any Card only guarantees that is the timeout for read/write request form host.

The critical and time consuming operation performed by card-controller before actual write to internal card memory are – erase, WLA, bad block management, GC (some are optional depending on card state). Multiple block write takes advantage of the card’s internal parallel writing scheme. Typically the cards will have internal block buffers that take multiple blocks of data and write them in parallel. These speeds up over all write performance. But does NOT necessary reduce the delays.

Debugging these issues brought several observations such as:
1. The card/bus busy time is too huge for the cards which are giving the slower performance. For some card delay up to 300ms.
2. There is bus busy time after every block write as well as after few blocks write (might be because of the internal card buffer full).
3. At the end of write (CMD12) there is big card busy time to complete the write request.

It’s the host need to effectively utilize the performance challenges in MMC/SD card. Also host need to maintain the sustained (minimum performance) rate for crucial application like high density, high bandwidth, high quality AV recording multimedia application.

The proposed solutions in the Kernel – to overcome these performance limitations in MMC/SD cards – that are discussed in the paper include:
1. erase the partition at format
2. pre-erase setting prior to a multiple block write operation
3. Use the pipe line (multiple) buffers before to write and to average out the write throughput.
4. or mount with Sync/ASync mode
5. addition of GC thread (for old data and not used to be erased)

Most of the proposed solution are proven and few are currently undergoing implementation and testing phase.

Tags

MMC/SD, performane, AV recording

Speaker

  • Biography

    Sukumar Ghorai works at Texas Instruments and currently working on OMAP platform and Linux drivers. He is having 10+ years industry experience on different RTOS and with different platforms.
    He has been contributing to the Linux kernel for NAND, MMC/SD and worked in bootloader for for OMAP platforms. He currently focusing on open source and looking on OMAP system level integration issues.

Leave a private comment to organizers about this proposal