Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

ARM Community: Impact of a Multi-Threaded File System - ARM Community

Jump to content

Impact of a Multi-Threaded File System

Gone are the days of hard drives, head seek, and enforced single-threaded media access. Modern embedded designs have multiple processors, multiple caches, multiple threads handling graphics and files... and single-threaded file systems that have to handle all that data. Using flash media, using a multi-threaded file system will eliminate this bottleneck and can give a solid performance improvement by allowing parallel access to files.

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:
Attached Image
Thom Denholm, Technical Product Manager, 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.
All company and product names appearing in the ARM Blogs are trademarks and/or registered trademarks of ARM Limited per ARM’s official trademark list. All other product or service names mentioned herein are the trademarks of their respective owners.

0 Comments On This Entry

Please log in above to add a comment or register for an account