The first step to a multi-threaded file system is to allow multiple simultaneous reads from the media. A typical design will read from separate files, so allowing those reads to operate simultaneously will give a performance boost larger than the overhead for managing threads. For each write though, the typical single threaded file system has to wait for the other threads to finish reading, then commit the data write, and then finally reads can continue. This prevents partial or corrupted reads from data files. By bundling writes or writing primarily to an application cache, the wait time can be reduced. That data sits in RAM, however, meaning it is vulnerable to unexpected power loss. For temporary data such as a browser cache this doesn't pose too much of a problem, but for emails, text messages and data logs, it is not an acceptable scenario. The second logical step is to build the file system with the capability of performing multiple reads while writing. At the application level, this means building in intelligence about what is being read while understanding that a read from a file currently being written can return garbage. At the file system level, it means handling multiple channels on the media, and taking advantage of any media characteristics that will improve performance. The best multi-threaded file system is therefore highly media aware. For various embedded OS and RTOS solutions, the built-in "free" file system is usually thread-safe, but not multi-threaded. Part of the problem is that they aren't (and often can't be) very media aware. With proper integration, an enhanced file system can provide the media awareness and multi-threading required, resulting in better performance than the basic solution.
Thus, the way to satisfy the requirement for high multi-threaded performance is to use an enhanced file system which is media aware. With modern multicore processors and multi-threaded applications and operating systems, the basic single-threaded file system has to be replaced, but the resulting performance and reliability gains are worth the additional step.
Datalight has recently published a white paper comparing the performance and latency of two embedded file systems using a Texas Instruments OMAPTM 35x based on the ARM CortexTM-A8 processor. Using just one write and three read threads, a comparison shows that a fully multithreaded file system is able to read more than twice the data while cutting the thread latency in half.
Guest Partner Blogger:
Datalight, is an embedded software engineer with over 20 years experience, combining a strong focus on operating system and file system internals with a knowledge of modern flash devices. He has a degree in Mathematics and Computer Science from Gonzaga University. His love for solving difficult technical problems has served him well in his ten years with Datalight. In his spare time, he works as a professional baseball umpire and an internet librarian. Though he has lived in and around Seattle all his life, he has never had a cup of coffee.
ARM welcomes its wealth of Partners in the ARM Connected Community (CC) to submit guest blogs to be published on our multiple community blogs. If interested in participating please submit email inquiries to Tell.Us@arm.com.
The ARM Connected Community (CC) is an extensive ecosystem covering all aspects of ARM processor-based design, from chip implementation through to system and device design. The CC provides a platform for collaborative innovation, with multiple types of forums for members to work with one another, and with customers, to solve industry challenges, all with the purpose of enabling designers to focus on differentiating features and an accelerated time-to-market for ARM powered solutions.
0 Comments On This Entry
Please log in above to add a comment or register for an account
Sensing new opportunities at Sensors Expo
on Jun 12 2013 09:03 AM
ARM Cortex-M Processors Excite the Market: ARM MCU Workshop - Tokyo
on Jun 11 2013 02:24 PM
Train-the-Trainer Workshops in India
on Jun 10 2013 02:38 PM
The Freescale Cup: Intelligent Car Racing
on May 29 2013 02:47 PM
Dentistry & IoT, Sensors Expo, DAC all at the same time! Which one to attend?
on May 28 2013 02:17 PM