<?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 manager</title>
	<atom:link href="http://blog.datalight.com/tag/flash-manager/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>Mon, 23 Jan 2012 17:25:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>InHand Chooses FlashFX Pro for Fingertip Modules</title>
		<link>http://blog.datalight.com/inhand-chooses-flashfx-pro-for-fingertip-modules</link>
		<comments>http://blog.datalight.com/inhand-chooses-flashfx-pro-for-fingertip-modules#comments</comments>
		<pubDate>Tue, 03 Nov 2009 22:45:16 +0000</pubDate>
		<dc:creator>RobHart</dc:creator>
				<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[InHand]]></category>
		<category><![CDATA[Success Story]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/inhand-chooses-flashfx-pro-for-fingertip-modules</guid>
		<description><![CDATA[InHand’s development platforms are known in the embedded industry for their generous list of features, fast time-to-market, and solid performance. Recently, when a customer’s unusual flash configuration began causing corruption issues related to the default flash driver on Windows CE, InHand turned to Datalight FlashFX Pro, with immediate results. The InHand team was so impressed [...]]]></description>
			<content:encoded><![CDATA[<p>InHand’s development platforms are known in the embedded industry for their generous list of features, fast time-to-market, and solid performance. Recently, when a customer’s unusual flash configuration began causing corruption issues related to the default flash driver on Windows CE, InHand turned to Datalight FlashFX Pro, with immediate results. The InHand team was so impressed with the ease of implementation and improved flexibility of <a href="http://www.datalight.com/products/flashfxpro" target="_blank">FlashFX Pro</a>, that they decided to include it with every Fingertip4 and Fingertip5 module they sell. Continue reading for more about <a href="http://www.datalight.com/resources/success-story-inhand-preserves-reputation-of-reliability-oct-2009" target="_blank">InHand’sDatalight FlashFX Pro</a> experience with .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/inhand-chooses-flashfx-pro-for-fingertip-modules/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Raw NAND Flash with Hardware-based ECC is the Way to Go</title>
		<link>http://blog.datalight.com/why-raw-nand-flash-with-hardware-based-ecc-is-the-way-to-go</link>
		<comments>http://blog.datalight.com/why-raw-nand-flash-with-hardware-based-ecc-is-the-way-to-go#comments</comments>
		<pubDate>Thu, 20 Nov 2008 18:21:14 +0000</pubDate>
		<dc:creator>Michele Pike</dc:creator>
				<category><![CDATA[Cost Savings]]></category>
		<category><![CDATA[Flash Industry Info]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[flash file system]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[Raw NAND]]></category>
		<category><![CDATA[reliability]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/why-raw-nand-flash-with-hardware-based-ecc-is-the-way-to-go</guid>
		<description><![CDATA[5 Reasons for Ditching Managed NAND Everyone knows that NAND has challenges: from factory bad blocks and spontaneous bit failures to endurance limits, etc. That’s why a few years ago managed NAND (NAND flash plus an integrated controller) seemed to be the answer, offering the density of raw NAND, while mitigating many of its inherent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>5 Reasons for Ditching Managed NAND<br />
</strong>Everyone knows that NAND has challenges: from factory bad blocks and spontaneous bit failures to endurance limits, etc. That’s why a few years ago managed NAND (NAND flash plus an integrated controller) seemed to be the answer, offering the density of raw NAND, while mitigating many of its inherent limitations. What many device manufacturers may not realize is that the management hardware comes with significant costs, both in terms of dollars per part as well as design limitations. In the world of tradeoffs in which every system designer lives, there are solid technical reasons to consider using raw NAND and leaving the management to software instead. While there are clear commercial advantages for Datalight (as a provider of vendor-neutral software-based flash management) to advocate this approach, we also believe that there are strong technical reasons that flash silicon vendors would do well to embed ECC capabilities into their NAND flash devices rather than relying on ‘total hardware’ solutions such as eMMC or other complex and costly controllers. Beyond the benefits outline below, this approach would allow the flash manufacturers the ability to continue to differentiate their products from others in the industry.</p>
<p><strong>1.    Cost</strong><br />
The cost of managed NAND parts is coming down, but the stuff still sells at a premium over its raw NAND brethren. </p>
<p><strong>2.    Flash Optimization</strong><br />
There are many new features of NAND available to us today.  Performance features such as cached reads, multi-plane operations, concurrency, and others are becoming invaluable to keep performance at the ever-increasing demands of portable media. The Open NAND Flash Interface (ONFI) has defined a standard method to query the capabilities and characteristics of NAND flash which can be put to use by both software and hardware systems. A <a href="http://www.datalight.com/products/flashfx">software media manager</a> offers the flexibility to take advantage of the most current flash memory features and put them to use efficiently, or to avoid certain features that may be unproven or problematic. A software solution will allow a developer to take full advantage of the media’s characteristics and features unburdened by the indirection or inability for the hardware to expose them.</p>
<p><strong>3.    Visibility/Flexibility</strong><br />
Software (in general) is easily inspected and validated. Features such as <a href="http://www.datalight.com/products/flashfx">wear-leveling</a> move data around the flash device to optimize its life expectancy. Without the ability to inspect source code, a managed NAND solution makes it difficult to validate wear-leveling operation and/or characterize its effect on performance and reliability.  Hardware implementations are often generalized to suit a majority of use cases, while a software solution is easily tailored to the specific use case during development.</p>
<p><strong>4.    Performance</strong><br />
Speaking of use cases, there are many system features that are not available to hardware that may make a generalized hardware solution less advantageous to a specific use case.  For example, system idle time can be used to improve the media performance by scheduling background cache operations and compaction to occur then.  Coordination between the <a href="http://www.datalight.com/products/reliance">file system</a> and flash media manager can further optimize operations by freeing space when it will no longer be needed and having the media manager code cache certain regions of the flash where meta data might be held. Migrating flash management features to hardware removes this ability to coordinate with other components of the software stack, such as file systems.</p>
<p><strong>5.    Reliability</strong><br />
Lest you think we believe that everything is better left to software, consider error detection and correction (EDC). Error rates are increasing substantially as flash manufacturers push the limits of physics.  Errors can be introduced externally by heat or other radiation, during writes or reads of data, and even to data that was successfully written at a different time. Historically SLC NAND flash required only a single bit error detection and correction (a hamming code is usually sufficient), while MLC parts require minimally four bit EDC.  As the die sizes continue to shrink, error rates will continue to increase, even for SLC flash. <br />
Calculating the codes to detect and correct such errors is getting increasingly complex and solving such a solution in software for higher-bit EDCs (above 4-bit) is time consuming and often unacceptably slow.  Hardware ECC is a necessary requirement for systems with high EDC requirements and where performance is a concern.</p>
<p>Many of the processors on the market today are incorporating EDC in their NAND controllers. Choosing one of these processors (e.g. TI OMAP 35xx) in combination with raw NAND flash and software management can give you the high-performance EDC to handle next generation flash while maintaining the design flexibility that a software manager provides.</p>
<p>Flash manufacturers have much to gain by adding ECC code into their NAND flash parts.  They know better than anyone what kind of ECC is necessary for a specific part and by adding just that one piece of hardware to their offerings, rather than the jack of all trades, master of none approach of complete flash management, they will better serve the markets. </p>
<p>In short, features should reside where they can be handled most efficiently; ECCs belong in hardware, other flash management functions belong in software.  While managed NAND certainly has its place and its appeal in the market, we believe the best combination of value, performance and flexibility lies in using a combination of raw NAND and hardware with built-in ECC capabilities.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/why-raw-nand-flash-with-hardware-based-ecc-is-the-way-to-go/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datalight Cuts Boot Time in Half for New LG Navigator</title>
		<link>http://blog.datalight.com/datalight-cuts-boot-time-in-half-for-new-lg-navigator</link>
		<comments>http://blog.datalight.com/datalight-cuts-boot-time-in-half-for-new-lg-navigator#comments</comments>
		<pubDate>Thu, 06 Nov 2008 21:36:05 +0000</pubDate>
		<dc:creator>RobHart</dc:creator>
				<category><![CDATA[Consumer Other]]></category>
		<category><![CDATA[Cost Savings]]></category>
		<category><![CDATA[Flash Memory Manager]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[bad block management]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Windows CE]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/datalight-cuts-boot-time-in-half-for-new-lg-navigator</guid>
		<description><![CDATA[The Challenge Recently, LG Electronics, a well-known Korean-based manufacturer of consumer electronics, created a multimedia-enabled portable navigator for the North American market. The LN790 features a 4.3” LCD screen, Bluetooth hands-free functionality, and video-enabled playback. Ruggedness and fast access to data are important to consumers in this market, so the device was designed to boot [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Challenge</strong><br />
Recently, LG Electronics, a well-known Korean-based manufacturer of consumer electronics, created a multimedia-enabled portable navigator for the North American market. The LN790 features a 4.3” LCD screen, Bluetooth hands-free functionality, and video-enabled playback. Ruggedness and fast access to data are important to consumers in this market, so the device was designed to boot directly from a NAND mass storage environment using Windows CE. Unfortunately, LG product engineers had a difficult time getting the device to boot fast enough using CE’s FAL/FMD flash drivers.  At just over two minutes, the startup time did not match LG’s reputation for high-performance consumer devices.</p>
<p><strong>The Datalight Solution</strong><br />
As LG engineers went searching for solutions to the boot speed problem, they discovered that Datalight FlashFX® Pro uses a more efficient approach to managing bad blocks than CE’s standard FMD/FAL drivers, which can speed boot time significantly.  This difference is especially apparent when the device is using a large NAND disk, because boot time is somewhat proportional to the size of the flash.<br />
Why is FlashFX Pro more efficient? Startup with FAL requires the driver to read more data as part of its mount sequence, a lengthy process particularly if the disk is large. In contrast, FlashFX Pro requires a much simpler check of the media to complete the initial mount.</p>
<p><strong>The Customer Payoff</strong><br />
After implementation of FlashFX Pro, LG engineers were delighted to discover that the device’s boot time was cut by more than half. By using FlashFX Pro instead of the native Windows CE drivers, LG designers were able to achieve the performance their customers expect from a premium-quality personal navigator.  There was also an additional benefit they hadn’t counted on – FlashFX Pro support for over 200 flash parts means that the LN790 will be future-proof from flash parts going on allocation, unexpected price fluctuations, and end-of-life issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/datalight-cuts-boot-time-in-half-for-new-lg-navigator/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 Pike</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/">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">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">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>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 Pike</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" href="http://en.wikipedia.org/wiki/Flash_memory" rel="wikipedia">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" href="http://en.wikipedia.org/wiki/Wear_levelling" rel="wikipedia">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)" href="http://en.wikipedia.org/wiki/Block_%28data_storage%29" rel="wikipedia">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/resources/flash-wear-leveling-06-dec-2007">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>5</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 Pike</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">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">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">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>2</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 Pike</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">reporting</a> that <a class="zem_slink" title="Samsung Group" rel="homepage" href="http://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">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/">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/">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">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>0</slash:comments>
		</item>
		<item>
		<title>Factors Affecting Flash Memory Performance</title>
		<link>http://blog.datalight.com/factors-affecting-flash-memory-performance</link>
		<comments>http://blog.datalight.com/factors-affecting-flash-memory-performance#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:04:11 +0000</pubDate>
		<dc:creator>Michele Pike</dc:creator>
				<category><![CDATA[Flash File System]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[bad block management]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[flash memory performance]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=25</guid>
		<description><![CDATA[The read, write and erase timing characteristics of flash hardware specifications are useful for comparing different products, but don’t tell the whole story about what you will get from your real-world devices. When Flash memory is incorporated into a system, the performance of the system depends on a number of factors. One key factor that [...]]]></description>
			<content:encoded><![CDATA[<p>The read, write and erase timing characteristics of flash hardware specifications are useful for comparing different products, but don’t tell the whole story about what you will get from your real-world devices. When <a class="zem_slink" title="Flash memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Flash_memory">Flash memory</a> is incorporated into a system, the performance of the system depends on a number of factors. One key factor that can reduce the effective performance of flash memory involves the shared bus topology of your system. Optimal flash performance depends on the speed and availability of the bus that connects the flash to the system. Also critical are the manner in which the operating system handles interrupts and whether the flash device is connected to the system’s interrupt architecture.</p>
<p>The published read, write, and erase timing characteristics of flash hardware specifications are useful for comparing different products, but don’t tell the whole story about what you will get from your real-world devices. When Flash memory is incorporated into a system, the performance of the system depends on a number of factors in addition to the capabilities of the flash hardware.</p>
<p>One key factor that can reduce the effective performance of flash memory involves the shared bus topology of your system. Optimal flash performance depends on the speed and availability of the bus that connects the flash to the system. For example, if your flash shares a bus with parts that operate at slower clock speeds, the timing of the accesses to the flash part may be extended to match. On the other hand, your flash part may be competing for bus availability with other demanding high-speed system components.</p>
<p><a class="zem_slink" title="Random access memory" rel="wikipedia" href="http://en.wikipedia.org/wiki/Random_access_memory">RAM</a> memory, network interfaces, and LCD screens are demanding components that can compete with flash for bus and CPU bandwidth. The use of certain features of the processor and operating system, such as DMA and caching, can have a similar impact. As more components, peripherals, and device drivers are added to the system, more opportunities arise for the bus to be shared. The proliferation of high performance audio and video features, now common on mobile devices, can further tax a shared bus system on a general purpose chipset. For this reason special-purpose chipsets designed for a specific application, as well as tuning the characteristics of your flash management software to meet your specific needs, will generally enable higher levels of flash performance.</p>
<p>Well designed hardware bus topology can alleviate the issue of shared bus contention, yet other factors may still impact flash memory performance. Even if the flash part has full speed access to the processor’s external bus, the availability of the CPU to service that bus is still a question. Bus arbitration may take CPU cycles away from the flash bus in favor of other system busses or internal accesses. Operating system timer interrupts and other peripheral device driver interrupts can interfere with flash software operations, as can a CPU that is simply overloaded by running complex applications.</p>
<p>Also critical are the manner in which the operating system handles interrupts and whether the flash device is connected to the system’s interrupt architecture. Some flash is connected to processors in such a way that the signal generated by the flash is connected to a GPIO, or not connected at all. This may have little impact on flash performance, but it will limit the ability of the CPU to execute other flash-related software, such as garbage collection, or even unrelated tasks. Additionally, many systems have an explicit or implied interrupt priority that must be considered at the system level. Responsiveness requirements of all interrupt-driven components in the system must be carefully weighed against the desire to maximize flash performance.</p>
<p>An equally significant factor affecting flash performance that might be easily overlooked is the flash management software itself. There is a necessary amount of overhead inherent in running software to manage your flash memory, and there are some complex operations that the software needs to accomplish well in order to optimize flash performance. The software provided by your flash vendor may or may not provide satisfactory performance for your particular application.</p>
<p>While flash memory often appears to the end user like a virtual hard drive, the underlying technology is quite different and presents certain challenges. Flash management software can do more than bad block management and wear leveling, it can increase the effective performance of the flash part by addressing these challenges:</p>
<ol>
<li>Flash performance can be impeded by the need for a slow erase operation before writing new data, but software that intelligently performs background garbage collection during idle time can solve that problem.</li>
<li>Fragmented data can degrade performance in applications such as streaming media from NAND memory, but compaction software that de-fragments the data can improve performance in these situations.</li>
<li>With some algorithms, throughput is maximized for performance until a percentage of the flash memory is used, at which point performance can degrade. The percentage of the flash that is used before performance suffers can be tuned in some implementations, by allowing the system designer to reserve a specified amount of ‘cushion’ of unused memory.</li>
<li>In some solutions, maintenance operations such as garbage collection can preempt high-priority read requests. Implementations that make careful use of multithreading operating systems’ capabilities to manage this issue can reduce read latency by orders of magnitude.</li>
</ol>
<p>Several factors will affect the performance of flash memory in your real-world system, some of which may be beyond your control. Chipset hardware and system bus topology decisions may have been made already. No matter whether your hardware is specially designed for your application or you are using a general-purpose hardware design, though, the effective performance of your flash memory can be improved through software methods. <a href="http://www.datalight.com/products/flashfx">Datalight FlashFX</a> is a multithreading memory management software solution that enables garbage collection, data compaction, memory cushion, and high priority read interrupts to allow the highest real-world flash performance your hardware configuration can support.</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/2bc0b5d6-0579-4a2e-b3b5-7983d9609349/"><br />
</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/factors-affecting-flash-memory-performance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash File Systems</title>
		<link>http://blog.datalight.com/flash-file-systems</link>
		<comments>http://blog.datalight.com/flash-file-systems#comments</comments>
		<pubDate>Tue, 10 Jun 2008 17:56:33 +0000</pubDate>
		<dc:creator>Michele Pike</dc:creator>
				<category><![CDATA[Flash File System]]></category>
		<category><![CDATA[Flash Memory]]></category>
		<category><![CDATA[Computer data storage]]></category>
		<category><![CDATA[data corruption]]></category>
		<category><![CDATA[flash driver]]></category>
		<category><![CDATA[flash file system]]></category>
		<category><![CDATA[flash file systems]]></category>
		<category><![CDATA[flash management]]></category>
		<category><![CDATA[flash manager]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[wear leveling]]></category>

		<guid isPermaLink="false">http://blog.datalight.com/?p=11</guid>
		<description><![CDATA[Flash memory has established itself as the technology of choice for device data storage on embedded devices. The advantages it brings in terms of storage capacity, I/O throughput, power consumption and board space savings are significant. In 2007, flash memory was a $7.7 billion industry. Analysts predict a 23% growth of the flash memory market [...]]]></description>
			<content:encoded><![CDATA[<p>Flash memory has established itself as the technology of choice for device data storage on embedded devices. The advantages it brings in terms of storage capacity, I/O throughput, power consumption and board space savings are significant. In 2007, flash memory was a $7.7 billion industry. Analysts predict a 23% growth of the flash memory market between 2007 and 20111; surpassing the history-making growth of <a class="zem_slink" title="Dynamic random access memory" href="http://en.wikipedia.org/wiki/Dynamic_random_access_memory" rel="wikipedia">DRAM</a> ten times over.</p>
<p>One of the barriers to flash memory adoption is its perceived complexity of integration into a product design. With the flash memory market branching to multiple product lines beyond traditional NAND and NOR devices, this perception, along with a concern about the reliability of flash, is becoming magnified. Basic flash management software can lessen the complexity of integration, and sophisticated flash software can ensure the optimum lifetime and reliability of a flash device.</p>
<p>The challenges of integrating flash memory are broad, including operations from the seemingly simple – like reading, writing, and overwriting data – to the exceedingly complex – such as bad block management and <a class="zem_slink" title="Wear levelling" href="http://en.wikipedia.org/wiki/Wear_levelling" rel="wikipedia">wear-leveling</a>. When flash memory is not accompanied by an intelligent software manager, the system will suffer from slow reads and writes, data corruption, and a short usable life.</p>
<p>There has been a lot of interpretations for the term “<a class="zem_slink" title="Flash memory" href="http://en.wikipedia.org/wiki/Flash_memory" rel="wikipedia">Flash File System</a>”. Some consider it as the combination of flash management software and a block file system. For some it is just the flash management piece. The following diagram shows the different layers involved in managing data on flash memory and the corresponding terminologies for software components</p>
<p><a href="http://blog.datalight.com/wp-content/uploads/2009/09/clip_image002.jpg"><img class="alignnone size-full wp-image-246" title="clip_image002.jpg" src="http://blog.datalight.com/wp-content/uploads/2009/09/clip_image002.jpg" alt="" width="440" height="307" /></a></p>
<p>&nbsp;</p>
<p>· <strong>Flash Driver</strong>: Basic software that provides rudimentary read/write access to flash; this software is often acquired from the chip provider, and is usually part-specific.</p>
<p>· <strong>Flash Manager</strong>: In addition to the functionality of a flash driver, a flash manager also intelligently determines which part is being used, and handles it accordingly – whether it is NAND, NOR, or a fusion of the two (i.e. Samsung OneNAND, or Spansion ORNAND). Bad block management, wear-leveling, garbage collection, and <a class="zem_slink" title="Error detection and correction" href="http://en.wikipedia.org/wiki/Error_detection_and_correction" rel="wikipedia">error detection and correction</a> are features that a flash manager provides. A flash manager may also be designed to take advantage of unique performance or technical characteristics a specific part provides. Flash managers are sometimes referred to as FTL (flash translation layers).</p>
<p>· <strong>Flash File System</strong>: Contains the flash driver and the flash manager aspects, but also incorporates a file system that is designed for use with flash memory. In the way of performance optimizations, a flash file system includes a discard interface which ensures that erased blocks are immediately available for use by both the file system and the flash manager without additional queries to those blocks.</p>
<p>Hope this post was useful in understanding the layers of flash management. In the next post in the series, we will look at various flash <a class="zem_slink" title="File system" href="http://en.wikipedia.org/wiki/File_system" rel="wikipedia">file systems</a> for one of the most talked-about embedded OS – Linux.</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/27077ad0-f62a-4a2a-a992-2dd649f0504d/"><img class="zemanta-pixie-img" style="float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=27077ad0-f62a-4a2a-a992-2dd649f0504d" alt="Zemanta Pixie" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.datalight.com/flash-file-systems/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

