<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Data Matters - A blog about flash memory &#187; Flash Memory</title>
	<atom:link href="http://blog.datalight.com/tag/flash-memory/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.datalight.com</link>
	<description>Datalight's blog on flash memory, device data storage, data reliability and the embedded industry</description>
	<lastBuildDate>Wed, 23 Jun 2010 16:59:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Durability: The Next Killer App</title>
		<link>http://blog.datalight.com/durability-the-next-killer-app</link>
		<comments>http://blog.datalight.com/durability-the-next-killer-app#comments</comments>
		<pubDate>Wed, 25 Mar 2009 20:37:31 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Cost Savings]]></category>
		<category><![CDATA[Extended Flash Life]]></category>
		<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[flash memory performance]]></category>
		<category><![CDATA[power-fail safe]]></category>
		<category><![CDATA[reliable file system]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/durability-the-next-killer-app</guid>
		<description><![CDATA[Sea Change Hits Consumer Electronics as Customers Demand Long-term Value
For the first time in more than a decade, people are saving again. In 2007 and years prior, the savings rate hovered around zero as we maxed our credit cards and lines of credit, driving the savings rate into the red and giving the world’s manufacturing [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Sea Change Hits Consumer Electronics as Customers Demand Long-term Value</strong></p>
<p>For the first time in more than a decade, people are saving again. In 2007 and years prior, the savings rate hovered around zero as we maxed our credit cards and lines of credit, driving the savings rate into the red and giving the world’s manufacturing base an almost unbelievable boom. In January 2009 though, something unexpected happened; the US savings rate suddenly moved above 5%, the highest in decades. As news of our cloudy economic picture has emerged, consumer behavior is shifting away from status-seeking luxury purchases toward more value-based buying patterns, forcing manufacturers around the world to take notice. And after decades of excess, the shift to thrift is looking like a lasting trend.</p>
<p>But what does this mean for Embedded? As consumers focus on needs over wants, they will increasingly seek out products that are proven durable and reliable.</p>
<p>This will have broad implications for manufacturers of everything from cars to clothing, refrigerators to embedded devices. Today’s consumers are choosing efficiency, durability and value over gee-whiz gadgetry. Consumer mobile OEMs too must focus on delivering value and fewer, more targeted features. Rather than packing devices full of a laundry list of apps and expensive hardware, this means streamlined offerings and more segmented products, while making sure the consumer doesn’t feel like they’re missing out. Motorola’s new EM330 is a prime example of this kind of pared-down, demographic-specific approach. The phone, called the MOTOROKR STAR is marketed specifically toward music lovers, offering a basic clamshell with music recognition software and download-on-the-go at a price point in the sub-$200 range.</p>
<p>As OEMs scramble to add value and enhance their reputations for durability and reliability, Datalight responds with products that support those goals. The combination of flexible flash management that lowers bill of material costs, wear-leveling algorithms extend flash life by several times, and the rock-solid reliability of our file system become essential components of a strategy to provide value to customers.</p>
<p>Many have remarked that markets are driven by a combination of fear and greed. Though the pendulum has recently taken a dramatic &#8211;and we believe temporary&#8211; move in the direction of fear, ultimately we know a move away from excess is good for all of us and good for the world we live in. Here’s hoping the trend toward value and quality is a long-lasting one.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/durability-the-next-killer-app/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datalight Products on VxWorks</title>
		<link>http://blog.datalight.com/datalight-products-on-vxworks</link>
		<comments>http://blog.datalight.com/datalight-products-on-vxworks#comments</comments>
		<pubDate>Thu, 07 Aug 2008 17:19:42 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Datalight Products]]></category>
		<category><![CDATA[bad block management]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[Operating system]]></category>
		<category><![CDATA[VxWorks]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=48</guid>
		<description><![CDATA[Datalight FlashFX Pro ships as an evaluation version in all VxWorks distributions since version 6.5. Customers who need support for NAND flash on VxWorks chose FlashFX Pro for abstracting the intricacies of working with flash memory. FlashFX Pro provides Bad Block Management (BBM), Wear Leveling, Garbage collection and background compaction functionalities on VxWorks along with [...]]]></description>
			<content:encoded><![CDATA[<p>Datalight FlashFX Pro ships as an evaluation version in all <a class="zem_slink" title="VxWorks" rel="homepage" href="http://www.windriver.com/" onclick="javascript:pageTracker._trackPageview('/www.windriver.com');">VxWorks</a> distributions since version 6.5. Customers who need support for <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND flash</a> on VxWorks chose FlashFX Pro for abstracting the intricacies of working with flash memory. FlashFX Pro provides Bad Block Management (BBM), Wear Leveling, Garbage collection and background compaction functionalities on VxWorks along with support for 200+ flash parts. VxWorks is one of the top OS amongst Datalight Reliance customers. This is because Reliance provides a 100% reliable file system that provides fast performance.</p>
<p>Given the popularity of VxWorks amongst our customer based, we have prospective VxWorks customers ask us how our products are installed and configured on that platform. This short blog post will try and answer these questions. If you have more questions, please leave a comment and we will get back to you.</p>
<p>Q: How does a customer install Datalight VxWorks products<br />
We ship our products with an image of what would be put on a CD, so customers can extract our installation ZIP files into a temporary directory, and run SETUP.  This will install our product into a directory that they tell us (usually c:\dl\flashfx or c:\dl\reliance) and will add our CDF (WorkBench catalog files) in the appropriate place in the Workbench tree.<br />
Q: How do they configure it?  If it’s a menu structure (like Tornado’s Project) where is the menu, what are the options, and what are their effect?</p>
<p>In Workbench and Tornado, FlashFX Pro shows up in the Catalog right next to the TFFS flash driver, and Reliance shows up right next to dosFS.  Our manuals for VxWorks provide step-by-step guidance on how our products can be configured using the VxWorks development <a class="zem_slink" title="Integrated development environment" rel="wikipedia" href="http://en.wikipedia.org/wiki/Integrated_development_environment" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">IDEs</a><br />
Q: What effort is involved in using the Datalight Reliance or FlashFX Pro file system on VxWorks?<br />
Developers use the standard file system APIs of VxWorks (file open, file close, etc) like they would if dosFS or another file system and don’t need to know anything specific about the API of Reliance.  Same with FlashFX Pro – once we’re working in the environment, we’re a “disk”, and the people writing applications don’t need to know any special APIs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/datalight-products-on-vxworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Economic slump does not affect the high end phone market</title>
		<link>http://blog.datalight.com/economic-slump-does-not-affect-the-high-end-phone-market</link>
		<comments>http://blog.datalight.com/economic-slump-does-not-affect-the-high-end-phone-market#comments</comments>
		<pubDate>Tue, 05 Aug 2008 18:24:12 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Mobile phone]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=45</guid>
		<description><![CDATA[Image via Wikipedia
WindowsForDevices has an interesting article today that shows the results from a recent ABI research study on high-end handset sales. It is interesting to note that the economy has not slowed down sale of higher-end mobile phones and the overall mobile market has been strong as well. This bodes well for flash memory [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://commons.wikipedia.org/wiki/Image:Mobile_Phone.jpg" onclick="javascript:pageTracker._trackPageview('/commons.wikipedia.org');"><img style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Mobile_Phone.jpg/202px-Mobile_Phone.jpg" alt="Ina and mobile phone" width="106" height="140" /></a><span class="zemanta-img-attribution">Image via <a href="http://commons.wikipedia.org/wiki/Image:Mobile_Phone.jpg" onclick="javascript:pageTracker._trackPageview('/commons.wikipedia.org');">Wikipedia</a></span></div>
<p>WindowsForDevices has an interesting <a href="http://www.windowsfordevices.com/news/NS5292060320.html" onclick="javascript:pageTracker._trackPageview('/www.windowsfordevices.com');">article </a>today that shows the results from a recent ABI research study on high-end handset sales. It is interesting to note that the economy has not slowed down sale of higher-end mobile phones and the overall mobile market has been strong as well. This bodes well for <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">flash memory</a> vendors, especially for NOR flash vendors like Spansion and Numonyx since mobile handset industry has been a NOR stronghold (though lately NAND is making heavy inroads &#8211; call it the iPhone effect).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/economic-slump-does-not-affect-the-high-end-phone-market/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Datalight Reliance on rotating-media devices (hard drives)</title>
		<link>http://blog.datalight.com/using-datalight-reliance-on-rotating-media-devices-hard-drives</link>
		<comments>http://blog.datalight.com/using-datalight-reliance-on-rotating-media-devices-hard-drives#comments</comments>
		<pubDate>Thu, 31 Jul 2008 19:37:34 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Datalight Products]]></category>
		<category><![CDATA[Flash File System]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[data corruption]]></category>
		<category><![CDATA[flash file system]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Hard disk drive]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MLC NAND]]></category>
		<category><![CDATA[Solid-state drive]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=42</guid>
		<description><![CDATA[Image via Wikipedia
Being in the flash memory management space for 15+ years, a very high number of our customers use our products on flash memory (NAND, NOR, NAND controllers, Fusion flash like Samsung OneNAND, etc). Now FlashFX Pro is designed only for flash memory but Datalight Reliance is a file system that works on all [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://en.wikipedia.org/wiki/Image:Western_Digital_Caviar280.JPG" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');"><img style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/en/thumb/9/91/Western_Digital_Caviar280.JPG/202px-Western_Digital_Caviar280.JPG" alt="Western Digital Caviar280 (WDAC280-32) - 85." /></a><span class="zemanta-img-attribution">Image via <a href="http://en.wikipedia.org/wiki/Image:Western_Digital_Caviar280.JPG" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">Wikipedia</a></span></div>
<p>Being in the flash memory management space for 15+ years, a very high number of our customers use our products on flash memory (<a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND</a>, NOR, NAND controllers, Fusion flash like Samsung OneNAND, etc). Now FlashFX Pro is designed only for flash memory but Datalight Reliance is a file system that works on all block devices. This includes <a class="zem_slink" title="Hard disk drive" rel="wikipedia" href="http://en.wikipedia.org/wiki/Hard_disk_drive" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">hard drives</a>, <a class="zem_slink" title="USB flash drive" rel="youtube" href="http://www.youtube.com/watch?v=NyOFIH-6WGs" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');">USB flash drives</a>, removable cards like SD, CF, solid state drives (<a class="zem_slink" title="Solid-state drive" rel="wikipedia" href="http://en.wikipedia.org/wiki/Solid-state_drive" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">SSD</a>), etc. The advantage Reliance brings to these devices is of reliability against data corruption, fast mount times and fast I/O throughput. It also mandates certain requirements on the physical media to ensure reliability against data corruption. We have had customers use Reliance on hard drives before and I want to share some requirements for Reliance to provide high reliability on rotating media. This post is specific to <a class="zem_slink" title="Linux kernel" rel="homepage" href="http://www.kernel.org/" onclick="javascript:pageTracker._trackPageview('/www.kernel.org');">Linux</a> but the general concepts should be applicable to all OSes.</p>
<p>Reliance is a transactional file system and at each transaction point it flushes all its internal caches and commits the data to disk in atomic operations. Primary requirement for Reliance to function on hard drives is that the hardware and the ATA driver must support the “FLUSH CACHE” command. The Linux IDE disk driver checks bits 12 and 13 of word 83 in the IDENTIFY DEVICE information to determine whether FLUSH CACHE is supported.  These bits are defined by the <a class="zem_slink" title="AT Attachment" rel="wikipedia" href="http://en.wikipedia.org/wiki/AT_Attachment" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">ATA-6</a> specification, and are not set in earlier drives.  The IDE disk driver will report whether it has detected this capability in a drive.  This is available in the system log.  A typical message will look like:</p>
<p><em>Jun  9 09:49:23 billr-qa kernel: [   18.621740] hda: cache flushes supported</em></p>
<p>Since there are a vast number of hard disks on the market and new ones are constantly being introduced (and old ones discontinued), it is a little difficult for Datalight to qualify all hard drives and recommend a specific one. Generally any disk that conforms to the ATA-6 specification and reports that it supports FLUSH CACHE should work correctly with Reliance.  Reliance reports whether it is able to use flush to ensure correct operation, the system log typically looks like this:</p>
<p><em>Jun  9 09:52:44 billr-qa kernel: [  240.283463] relfs: <a class="zem_slink" title="Device node" rel="wikipedia" href="http://en.wikipedia.org/wiki/Device_node" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">block device</a> supports flush.</em></p>
<p>If this message appears in the log, Reliance should operate correctly when power is interrupted unexpectedly.</p>
<p><em>Datalight&#8217;s power interruption testing has been performed on a Western Digital AC29100D using kernel version 2.6.21.1</em></p>
<p>If you have any questions on the FLUSH CACHE on an OS other than Linux, please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/using-datalight-reliance-on-rotating-media-devices-hard-drives/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash Wear leveling</title>
		<link>http://blog.datalight.com/flash-wear-leveling</link>
		<comments>http://blog.datalight.com/flash-wear-leveling#comments</comments>
		<pubDate>Wed, 16 Jul 2008 05:17:57 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[dynamic wear leveling]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[static wear leveling]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[weal leveling]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=32</guid>
		<description><![CDATA[Contrary to popular belief, flash memory does not last forever. Every flash part in existence comes with a finite number of write and erase cycles before the data stored becomes corrupted and the flash part unusable. Most flash file systems on the market today include a basic type of wear leveling, but all wear leveling [...]]]></description>
			<content:encoded><![CDATA[<p>Contrary to popular belief, flash memory does not last forever. Every flash part in existence comes with a finite number of write and erase cycles before the data stored becomes corrupted and the flash part unusable. Most <a href="http://www.datalight.com/products/flashfx" >flash file systems </a>on the market today include a basic type of wear leveling, but all wear leveling algorithms are not created equal. Chiefly, wear leveling strategies can be broken into two camps: <strong>Dynamic</strong> wear leveling monitors high and low-use areas of the flash, and after a certain set point, will swap out high-use erase blocks with low-use erase blocks. Large areas of a disk may be occupied by rarely-changing data, forcing frequent system writes/erases to occur on the remainder of the disk and increasing the wear on those areas. <strong>Static </strong>wear leveling deals with this by moving static data to higher-use areas of the flash, thereby balancing the load. The idea system would use both kinds of wear leveling. Check out some real-world examples by reading our whitepaper on the topic:</p>
<h3><em>A Short Study on Wear‑Leveling</em></h3>
<p>Over the past fifteen years, flash memory has been widely adopted in mainstream consumer grade products having short lifetimes, often measured in months. In recent years however, flash memory has begun to break into more industrial and commercial grade devices with lifetimes counted in years. There are many unique characteristics of flash memory that have fueled its growth across these varying market segments, such as its ability to retain data without continued power; this benefit, however, comes at a cost of a finite lifetime and endurance. The hardware architecture and software technologies that extend the life of a flash chip are often ill‑considered or, at times, given more worry than necessary. While the limited lifetime of flash memory may or may not be problematic for products that are expected to last ten or more years, flash management software can expand the breadth of available flash parts for your project.</p>
<p>This paper focuses on determining when the limitations of flash memory lifetime become significant and what can be done about them.</p>
<h3>Flash Lifetime Metrics</h3>
<p><a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">Flash memory</a> lifetimes are described in two primary metrics which are generally touted on the first page of any flash memory manufacturers’ data sheets:</p>
<ul>
<li>Data retention</li>
<li>Endurance cycles</li>
</ul>
<p><em>Data retention</em> is often listed at 20 years at a given operating temperature. Increased temperature ranges reduce the data retention period which further decrease as the flash memory is used at or near its specified operating temperatures. It is important to note that data retention is measured from the time data is successfully programmed.</p>
<p>The second metric, <em>endurance cycles</em>, is a measure of the number of write and erase cycles that the flash memory can endure before becoming unreliable. Flash memories are organized into a number of erase blocks or sectors and each must be erased prior to writing data. A typical erase block is 128KB in size, however may range from 512B to 2,048KB or even more. Any given address within an erase block cannot be rewritten without an intervening erase. Erase cycles are cumulative and affect only those erase blocks being cycled. In other words, an error in any erase block is constrained to the data of that block.</p>
<p>Erase cycles range from 1,000 to 1,000,000. While these ranges have an order of magnitude difference, <strong>it is the application the flash is placed into that will primarily define the product lifetime.</strong></p>
<h3>What is Wear-Leveling?</h3>
<p><em>Wear‑leveling</em> is a process to ensure that an entire flash memory device or an array of devices is used in a uniform fashion in order to extend the overall lifetime of the flash.</p>
<p>For a simplistic example of <a class="zem_slink" title="Wear levelling" rel="wikipedia" href="http://en.wikipedia.org/wiki/Wear_levelling" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">wear-leveling</a>, let’s look at a data recorder device with the following characteristics:</p>
<ul>
<li><strong>Application:</strong> The device collects and stores the past 24 hours of field data by simply writing and rewriting the data to the same location on the flash.</li>
<li><strong>File size of data to be recorded:</strong> 128KB</li>
<li><strong>Erase <a class="zem_slink" title="Block (data storage)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Block_%28data_storage%29" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">block size</a> (of the flash):</strong> 128KB</li>
<li><strong>Flash memory endurance: </strong>1,000 cycles</li>
</ul>
<p>With one spare area, the device is assumed one cycle per day each year:</p>
<p>(1,000 cycles ÷ 365 days) * 1 spare area = 2.74 years</p>
<p>In this example, it would take about 2.74 years to cycle that one erase sector 1,000 times.</p>
<p>For the data recorder device to accommodate the write‑erase rules of flash memory, it would have to complete an erase operation to start writing the next day’s set of data. To make the data recorder more robust – to ensure that it doesn’t lose a whole day’s worth of data – we can set aside a second erase block, and erase the first block only after the second set of data was recorded. The resulting side effect is the introduction of a simple wear-leveling scheme.</p>
<p>With two spare areas, the device is assumed one cycle every two days each year:</p>
<p>(1,000 cycles ÷ 365 days) * 2 spare areas = 5.48 years</p>
<p>With these parameters, the period of time prior to cycling the flash to its lifetime has just been increased to almost 5.5 years!</p>
<p>This simple example shows how <strong>distributing a fixed set of writes across more flash sectors can increase the period of time prior to cycling the flash to its specified limits.</strong> The following sections describe how to account for the important variables associated with wear-leveling techniques, and determine the expected lifetime of the flash in any application.</p>
<p><em><a href="http://www.datalight.com/shortstudy" >Continue: A Short Study on Wear-Leveling</a></em></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/7b3a03d5-ae83-48b4-a52d-36777968c97c/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/flash-wear-leveling/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YAFFS &#8211; Linux Flash File System</title>
		<link>http://blog.datalight.com/yaffs-linux-flash-file-system</link>
		<comments>http://blog.datalight.com/yaffs-linux-flash-file-system#comments</comments>
		<pubDate>Thu, 10 Jul 2008 17:50:04 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[flash file system]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[wear leveling]]></category>
		<category><![CDATA[YAFFS]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=31</guid>
		<description><![CDATA[Continuing the conversation started in Flash File Systems and JFFS2 blog posts, this post talks about a YAFFS, another Linux flash file system alternative. YAFFS (Yet Another Flash File System) was designed to solve some of the performance issues suffered by JFFS2 on NAND flash. Later, YAFFS was upgraded (to YAFFS2) to work with modern, [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing the conversation started in <a href="http://blog.datalight.com/?p=11" >Flash File Systems</a> and <a href="http://blog.datalight.com/?p=24" >JFFS2 blog posts</a>, this post talks about a YAFFS, another <a class="zem_slink" title="Linux" rel="youtube" href="http://www.youtube.com/watch?v=5IfHm6R5le0" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');">Linux</a> flash file system alternative. YAFFS (Yet Another Flash File System) was designed to solve some of the performance issues suffered by <a class="zem_slink" title="JFFS2" rel="wikipedia" href="http://en.wikipedia.org/wiki/JFFS2" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">JFFS2</a> on <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND flash</a>. Later, YAFFS was upgraded (to YAFFS2) to work with modern, high-density NAND flash. Like JFFS2, YAFFS2 is a log-structured flash file system. YAFFS2 is licensed under the <a class="zem_slink" title="GNU General Public License" rel="wikipedia" href="http://en.wikipedia.org/wiki/GNU_General_Public_License" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">GPL</a> for use with Linux; it also can be ported to and licensed for non-GPL environments, if needed</p>
<p><strong>Interesting facts about YAFFS</strong></p>
<p>1. Reliability against data corruption &#8211; As a <a class="zem_slink" title="Log-structured file system" rel="wikipedia" href="http://en.wikipedia.org/wiki/Log-structured_file_system" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">log-structured file system</a>, YAFFS2 is intended to be power-fail safe, though there have been reports of <a href="http://osdir.com/ml/linux.file-systems.yaffs/2005-03/msg00003.html" onclick="javascript:pageTracker._trackPageview('/osdir.com');">data corruption during the garbage collection</a> process and cases where <a href="http://osdir.com/ml/linux.file-systems.yaffs/2005-12/msg00053.html" onclick="javascript:pageTracker._trackPageview('/osdir.com');">YAFFS2 has lost directories</a>.</p>
<p>2. Wear Leveling &#8211; YAFFS2 only implements dynamic wear leveling. Wear leveling is not performed for static data. This may cause a higher number of blocks to be rendered useless at a faster rate than if both static and dynamic <a class="zem_slink" title="Wear levelling" rel="wikipedia" href="http://en.wikipedia.org/wiki/Wear_levelling" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">wear-leveling</a> scheme were available. [For more information on static and dynamic wear-leveling, see our whitepaper on the topic at <a href="http://www.Datalight.com/whitepapers" onclick="javascript:pageTracker._trackPageview('/www.Datalight.com');">www.Datalight.com/<em>whitepapers</em></a>].</p>
<p>3. Performance: According to the YAFFS development team, YAFFS2 will perform best on disks that are greater than 64MB, while JFFS2 is still preferred for smaller disks.</p>
<p>For a detailed look at YAFFS, there is a <a href="http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2007Presentations?action=AttachFile&amp;do=get&amp;target=yaffs.pdf" onclick="javascript:pageTracker._trackPageview('/tree.celinuxforum.org');">great presentation on YAFFS</a> by Wookey at Embedded Linux Conference 2007.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/c8ed9477-f02b-41ff-95ed-85d134329056/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/yaffs-linux-flash-file-system/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Choosing NAND or NOR Flash Memory: Tradeoffs and Strategies</title>
		<link>http://blog.datalight.com/choosing-nand-or-nor-flash-memory-tradeoffs-and-strategies</link>
		<comments>http://blog.datalight.com/choosing-nand-or-nor-flash-memory-tradeoffs-and-strategies#comments</comments>
		<pubDate>Tue, 08 Jul 2008 20:53:09 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Cost Savings]]></category>
		<category><![CDATA[Extended Flash Life]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[bad block management]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[reliability]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=30</guid>
		<description><![CDATA[Consumer electronics and embedded software devices are using larger amounts of flash memory for nonvolatile storage than ever before. So what kind of flash memory should you use? The choice between using NAND and NOR Flash may not be a simple one for the complex embedded devices being developed today. While ever-larger media files are [...]]]></description>
			<content:encoded><![CDATA[<p>Consumer electronics and embedded software devices are using larger amounts of flash memory for nonvolatile storage than ever before. So what kind of flash memory should you use? The choice between using NAND and NOR Flash may not be a simple one for the complex <a class="zem_slink" title="Embedded system" rel="wikipedia" href="http://en.wikipedia.org/wiki/Embedded_system" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">embedded devices</a> being developed today. While ever-larger media files are driving increased demand for inexpensive NAND, powerful new operating systems and intricate applications running on fast processors ask for the fast-executing code NOR can support.</p>
<p>Read Datalight whitepaper <em>Choosing NAND or NOR <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">Flash Memory</a>: Tradeoffs and Strategies to Learn More</em></p>
<p>Consumer electronics and embedded software devices are using larger amounts of flash memory for nonvolatile storage than ever before. One important decision in designing such devices is what kind of flash memory to use: NAND or NOR?</p>
<p>NOR flash memory has traditionally been used to store relatively small amounts of executable code for embedded computing devices such as PDAs and cell phones. NOR is well suited to use for code storage because of its reliability, fast read operations, and random access capabilities. Because code can be directly executed in place, NOR is ideal for storing firmware, boot code, operating systems, and other data that changes infrequently.</p>
<p>NAND flash memory has become the preferred format for storing larger quantities of data on devices such as USB Flash drives, digital cameras and MP3 players. Higher density, lower cost, and faster write and erase times, and a longer re-write life expectancy make NAND especially well suited for consumer media applications in which large files of sequential data need to be loaded into memory quickly and replaced with new files repeatedly.</p>
<p>The choice between using NAND and NOR Flash may not be a simple one for the complex embedded devices being developed today. While ever-larger media files are driving increased demand for inexpensive NAND, powerful new operating systems and intricate applications running on fast processors call for the kind of fast-executing code NOR can support. An important example is a smart phone or PDA that combines a tremendous need for storage with a demanding set of application performance requirements. In some cases an optimal design might call for both types of flash memory in the same device.</p>
<p>Whichever type of flash is used in a device, there are certain negative performance characteristics that need to be mitigated. NOR is fast to read current data but markedly slower to erase it and write new data. NAND is fast to erase and write, but slow to read non-sequential data through its serial interface. NAND is also prone to single-bit errors, requiring rigorous algorithms for <a class="zem_slink" title="Error detection and correction" rel="wikipedia" href="http://en.wikipedia.org/wiki/Error_detection_and_correction" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">error detection and correction</a>.</p>
<p>Well-designed software strategies can be very effective in increasing the performance and reliability of Flash hardware. The goals of flash memory management software include:</p>
<p><strong>Avoid loss of data. </strong>Perhaps the most important goal in managing flash memory is to assure that no data is ever lost as a result of an interrupted operation or the failure of a memory block. <strong> </strong>There are several ways that flash management software can achieve this goal. Rewrite operations, for example, can be managed in such a way that new data is written and verified before the old data is deleted, so that no power loss or other interruption can result in the loss of both old and new data. Bad block management is another important safeguard to prevent data being written to memory blocks that have failed. Software can check for bad blocks shipped from the factory, as is typical with NAND, and avoid writing to those blocks from the beginning. When blocks go bad over time they can be identified and managed so that they are no longer used. Finally, as the end of media life nears, good memory management software can implement a graceful strategy such as placing the entire flash unit in a read-only state, thereby avoiding data loss when the number of block errors exceeds a predefined number.</p>
<p><strong> </strong></p>
<p><strong>Improve effective performance. </strong>Two ways media management software can improve performance are background compaction and multithreading. Compaction reclaims space by identifying blocks that have obsolete data that can be erased, copying any valid data to a new location, then erasing the blocks to make them available for reuse. Such compaction increases the amount of usable space on the media and improves write performance. Compaction may also help to defragment noncontiguous data for improved performance on read operations. The space recovery is particularly valuable for the more costly NOR memory and the defragmentation benefits the slower-reading NAND. Compaction is best performed in the background during idle time, however, or it can interfere with critical operations and degrade performance. This is where a multithreading system becomes important. By allowing high-priority read requests to interrupt low-priority maintenance operations, a multithreading system can reduce read latency by orders of magnitude compared to a single-thread solution.</p>
<p><strong> </strong></p>
<p><strong>Maximize media lifespan. </strong>When some blocks of memory contain fixed content, such as binary code, the remaining blocks will experience increased demand for erase and write operations, leading to earlier failure. Wear-leveling algorithms can prevent overuse of memory blocks and prevent a “stalemate” scenario in which a small region of memory becomes locked in a pattern of repeated writing and compaction. Wear leveling software can monitor block usage to identify high-use areas and low-use areas containing static data, then swap the static data into the high use areas. It can also balance write operations across all available blocks by choosing the optimal location for each write operation.</p>
<p>The decision between NAND and NOR memory will ultimately depend on both technical and pricing requirements of the device being built. Whatever type or combination of flash is used, it is prudent to include memory management software to prevent data loss while improving the performance and maximizing the lifespan of the memory.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/dfbaefae-a323-47e9-8f3f-48bbf380b6fd/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/choosing-nand-or-nor-flash-memory-tradeoffs-and-strategies/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Risks on relying on a single flash vendor</title>
		<link>http://blog.datalight.com/risks-on-relying-on-a-single-flash-vendor</link>
		<comments>http://blog.datalight.com/risks-on-relying-on-a-single-flash-vendor#comments</comments>
		<pubDate>Wed, 02 Jul 2008 23:28:18 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Cost Savings]]></category>
		<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[3G iPhone]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[IPhone]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=29</guid>
		<description><![CDATA[Interesting piece of news today &#8211; Digitimes is reporting that Samsung has informed its customers that it will be reducing supply of NAND Flash chips because of the huge order placed by Apple. This story is being picked up by several news outlet including Engadget. While this is good news for Apple and all those [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting piece of news today &#8211; Digitimes is <a href="http://www.digitimes.com/news/a20080702PD209.html" onclick="javascript:pageTracker._trackPageview('/www.digitimes.com');">reporting</a> that <a class="zem_slink" title="Samsung Group" rel="homepage" href="http://www.samsung.com" onclick="javascript:pageTracker._trackPageview('/www.samsung.com');">Samsung</a> has informed its customers that it will be reducing supply of <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND Flash</a> chips because of the huge order placed by <a class="zem_slink" title="Apple Inc." rel="homepage" href="http://www.apple.com/" onclick="javascript:pageTracker._trackPageview('/www.apple.com');">Apple</a>. This story is being picked up by several news outlet including <a href="http://www.engadget.com/2008/07/02/apple-eats-first-at-samsungs-nand-table-rest-of-industry-starv/" onclick="javascript:pageTracker._trackPageview('/www.engadget.com');">Engadget</a>. While this is good news for Apple and all those vying for the 3G <a class="zem_slink" title="IPhone" rel="wikipedia" href="http://en.wikipedia.org/wiki/IPhone" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">iPhone</a>, it underscores the challenges other OEMs that depended on Samsung Flash will be facing. NAND flash market is very volatile with demand &#8211; supply economics changing rapidly. Intricacies of flash memory force most OEMs to rely on a single vendor for supply, that way they do not have to implement support for several flash parts in their design. While this may seem the easier route, situations such as today&#8217;s causes production to come to halt or a significant redesign, both which are very expensive alternatives.</p>
<p>One of the ways to reduce such risk is to include support for multiple flash parts and use multi-sourcing to source flash parts from 3-4 flash vendors. If you are using an intelligent flash manager like <a href="http://www.datalight.com/products/flashfx/" >FlashFX Pro</a> , you are already covered since FlashFX pro supports 200+ flash parts from all top flash vendors. For others, it can still be done with some serious effort during planning and design time. Consider this work as an insurance against an event such as today&#8217;s.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/7fdc2e3f-02e5-4902-a2f7-bde0a58c8062/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/risks-on-relying-on-a-single-flash-vendor/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is General Embedded Ready for MLC NAND?</title>
		<link>http://blog.datalight.com/is-general-embedded-ready-for-mlc-nand</link>
		<comments>http://blog.datalight.com/is-general-embedded-ready-for-mlc-nand#comments</comments>
		<pubDate>Wed, 02 Jul 2008 03:38:46 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[MLC NAND]]></category>
		<category><![CDATA[Multi-Level Cell]]></category>
		<category><![CDATA[Single-level cell]]></category>
		<category><![CDATA[SLC]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=28</guid>
		<description><![CDATA[Adoption by Industrial &#38; Mil-Aero Promises Some Rewards &#38; Major Issues
MLC NAND is experiencing a high rate of adoption and within the consumer electronics sector – MP3 players, digital cameras, smart phones, flash cards and USB drives – it is everywhere you look. However, other embedded segments (industrial, automotive, military, aerospace, etc), are hesitating to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Adoption by Industrial &amp; Mil-Aero Promises Some Rewards &amp; Major Issues</strong></p>
<p><a class="zem_slink" title="Multi-level cell" rel="wikipedia" href="http://en.wikipedia.org/wiki/Multi-level_cell" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">MLC</a> <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND</a> is experiencing a high rate of adoption and within the consumer electronics sector – MP3 players, digital cameras, smart phones, flash cards and USB drives – it is everywhere you look. However, other embedded segments (industrial, automotive, military, aerospace, etc), are hesitating to take advantage of MLC’s low-cost, high-density attributes. There are good reasons behind the cautious stance; these applications are often mission critical, have a low tolerance for failure, and are expected to perform consistently over a much longer lifespan than their counterparts in the nearly-disposable consumer world. These requirements are in direct conflict with some of MLC’s known shortcomings: shorter lifespan, shorter data retention times, higher error rates, more complex (and consequently slower) <a class="zem_slink" title="Error detection and correction" rel="wikipedia" href="http://en.wikipedia.org/wiki/Error_detection_and_correction" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">error detection and correction</a>.</p>
<p>On the topic of lifespan, traditional single-level NOR parts are typically expected to endure up to 100,000 cycles, which could translate to 20 years of use in a typical embedded application.  Most MLC NAND is rated for 10,000 cycles, rendering these parts unusable in 2 years under the same use case.  While 2 years is a long time for many consumer grade products, it is unacceptably short for the vast majority of industrial products. Similarly, data retention requirements differ.  Traditional flash data retention rates have been 20 years, but recently some flash parts are being introduced with only a 10 or 15 year rating. Applications involving products with life times in the 10 year range need to consider such limitations.</p>
<p>Lower erase cycle endurance is conceptually easy to manage: track high use areas and occasionally swap the data within those areas with a low use area. However, a major difficulty is brewing that involves how errors are introduced and the performance impact of detecting and correcting them.</p>
<p>When writing pages within an erase block, disturb errors may be introduced, causing some number of bits to be flipped in pages other than the one being written to. The time required to read and verify the contents of the entire erase block can cause unacceptable delays, leading programmers to defer the detection until the next read operation, which may occur infrequently. Consequently, bit errors can exist in these “not written to” pages for a long time before they are detected.</p>
<p>And the issues with MLC error rates will worsen, as each new generation of chips pushes the cell size down even further. Future generations of MLC NAND devices beyond the 35nm range may have to distinguish between only a few hundred electrons on each cell. With so few electrons, discerning among the multiple levels of charge in a cell will be a time-consuming, error-prone process.</p>
<p>The somewhat obvious solution is to put in place a process to read and verify areas in the vicinity of writes in an attempt to detect disturb errors earlier.  A solution like this must be carefully balanced with the system performance requirements.</p>
<p>MLC NAND has many compelling reasons for adoption, but until its challenges are successfully dealt with, it will not be broadly accepted by industrial, mil-aero, and automotive device designers as a viable replacement for tried and true technologies of <a class="zem_slink" title="Single-level cell" rel="wikipedia" href="http://en.wikipedia.org/wiki/Single-level_cell" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">SLC</a> NAND and NOR.</p>
<p>At Datalight, we are focused on easing many of the problems of MLC NAND. For more information on our <a href="http://www.datalight.com/products" >intelligent flash management solutions</a>, please visit our <a href="http://www.datalight.com/products/reliance/resources.php" >resources</a> page.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/d813ae88-d37f-4f06-905e-61546d9afd9b/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/is-general-embedded-ready-for-mlc-nand/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JFFS2 &#8211; Linux Flash File System</title>
		<link>http://blog.datalight.com/jffs2-linux-flash-file-system</link>
		<comments>http://blog.datalight.com/jffs2-linux-flash-file-system#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:08:20 +0000</pubDate>
		<dc:creator>michele</dc:creator>
				<category><![CDATA[Flash File System]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Computer data storage]]></category>
		<category><![CDATA[File system]]></category>
		<category><![CDATA[flash file system]]></category>
		<category><![CDATA[jfs2]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=24</guid>
		<description><![CDATA[
Image via Wikipedia
Linux has been slowly but surely establishing itself as the predominant OS in the embedded industry. ABI research report suggested that 23% of Smartphones will be based on Linux by 2013. High-profile industry support from Android and the LiMo foundation has put the spotlight back on embedded Linux.
In a previous post, we talked [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; float: right; display: block;"><a href="http://commons.wikipedia.org/wiki/Image:DSCN0411.JPG" onclick="javascript:pageTracker._trackPageview('/commons.wikipedia.org');"><img style="border: medium none ; display: block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/DSCN0411.JPG/202px-DSCN0411.JPG" alt="A USB flash drive. The chip on the left is the flash memory. The microcontroller is on the right." /></a></div>
<p class="zemanta-img-attribution">Image via <a href="http://commons.wikipedia.org/wiki/Image:DSCN0411.JPG" onclick="javascript:pageTracker._trackPageview('/commons.wikipedia.org');" target="_blank">Wikipedia</a></p>
<p>Linux has been slowly but surely establishing itself as the predominant OS in the embedded industry. ABI research report suggested <a href="http://gigaom.com/2008/06/03/the-mobile-linux-war/" onclick="javascript:pageTracker._trackPageview('/gigaom.com');">that 23% of Smartphones</a> will be based on Linux by 2013. High-profile industry support from Android and the LiMo foundation has put the spotlight back on embedded Linux.</p>
<p>In a <a href="http://blog.datalight.com/?p=11" >previous post</a>, we talked about flash memory and the various layers of flash management. In this post, I will talk about <a class="zem_slink" title="JFFS2" rel="wikipedia" href="http://en.wikipedia.org/wiki/JFFS2" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">JFFS2</a>, the most popular flash <a class="zem_slink" title="File system" rel="wikipedia" href="http://en.wikipedia.org/wiki/File_system" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">file systems</a> available on the Linux platform</p>
<p><strong>JFFS2</strong></p>
<p>The Journaling Flash File System version 2 (JFFS2) is a log-structured file system that was originally designed in 1999. The original <a class="zem_slink" title="JFFS" rel="wikipedia" href="http://en.wikipedia.org/wiki/JFFS" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">JFFS</a> was developed by Axis Communications (and later enhanced by Red Hat) to provide support for NOR flash devices. The current version has been updated to include support for <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">NAND flash</a>. JFFS2 is open-source software, distributed under the terms of GPL license.</p>
<p><strong> </strong></p>
<p><strong>JFFS2 Strengths</strong></p>
<p><strong> </strong></p>
<p>1. Portability to Development Environments: Included with the Linux kernel since version 2.4.10, JFFS2 has become a de facto standard flash file system for Linux developers. Today, it is included in most commercial Linux distributions (such as MontaVista and Wind River Linux). Because of this wide distribution and use, it has been integrated into many varying environments and is known to be relatively easy to build.</p>
<p>2. Reliability: As changes are made to the file system, a “log” is built; this log provides information about where a file and its associated metadata are located on the flash chip.<a name="_ftnref1_5511" href="#_ftn1_5511"><sup><sup>[1]</sup></sup></a> As the log is consistently maintained, it will be read back in the event of an unexpected power loss to determine the location of a missing file. Although the log structure provides a level of data reliability, this is accomplished at a cost to performance</p>
<p>3. Support for disk-wide compression: The benefit, or cost, of using compression depends on each specific use case. Compression will be useful in making efficient use of disk space when several text-only or code data (OS, etc.) files are being stored. Media files are already compressed (in *.jpg, *.mpg, or other formats), so the time used to attempt data compression is wasted. It is even possible that media files may take up more space after an unnecessary compression than originally needed. Disk usage and performance for the type and number of files to be maintained must be considered by the device designer in order to determine whether compression will yield a benefit or not</p>
<p><strong>JFFS2 Shortcomings</strong></p>
<p>1. Resource usage: <a class="zem_slink" title="Computer data storage" rel="wikipedia" href="http://en.wikipedia.org/wiki/Computer_data_storage" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');">RAM</a> usage by JFFS2 increases in linear proportion to the number of nodes. Hence on large flash volumes, the system resources required by JFFS2 can be very significant</p>
<p>2. System performance: For devices that primarily use the file system for read operations, JFFS2 performance may be acceptable. However, for multi-functional devices whose applications perform a continuous mix of read and write operations, it is likely that the performance of a system using JFFS2 will not pass a rigorous standard. In addition to slow writes, the flash disk mount times of JFFS2 are exceptionally slow and worsen as the amount of data stored increases. Upon start-up after an unexpected power failure, JFFS2 must reconstruct the file system structure from the log. This is a costly operation that requires several seconds – more for volumes that are large or near-capacity. The device will be halted during this check operation, as any data that is stored on the disk will not be ready for use until the start-up completes</p>
<p>Informative links on JFFS2</p>
<p>1. <a href="http://sources.redhat.com/jffs2/jffs2.pdf" onclick="javascript:pageTracker._trackPageview('/sources.redhat.com');">JFFS2 Technical paper [PDF]</a></p>
<p>2. <a href="http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2007Presentations?action=AttachFile&amp;do=get&amp;target=ELC-E-JFFS2_RAM_Usage_impr.ppt" onclick="javascript:pageTracker._trackPageview('/tree.celinuxforum.org');">JFFS2 RAM usage</a> [ppt] – Presentation at Embedded Linux Conf 2007</p>
<p>In the next post in this series, we will look at another popular Linux flash file system – YAFFS.</p>
<hr size="1" /><a name="_ftn1_5511" href="#_ftnref1_5511">[1]</a> Details on JFFS2 log structure can be found here <a href="http://sourceware.org/jffs2/jffs2-slides-transformed.pdf" onclick="javascript:pageTracker._trackPageview('/sourceware.org');">http://sourceware.org/jffs2/jffs2-slides-transformed.pdf</a></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/11432df7-9231-4922-bcc6-a4e3d82b0aa1/" onclick="javascript:pageTracker._trackPageview('/reblog.zemanta.com');"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=11432df7-9231-4922-bcc6-a4e3d82b0aa1" alt="Zemanta Pixie" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/jffs2-linux-flash-file-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
