Flash Translation layer(FTL): Difference between revisions
Jump to navigation
Jump to search
Created page with " <div id="content"> <h1>What tools you will need</h1> <i> Items are not listed in any particular order </i> <div class="infobox"> <table> <tr> </tr> <tr> <h2> Required </h2> <ul> <li>Test</li> </ul> </tr> <tr> <h2> Optional but useful </h2> <ul> <li>Test</li>..." |
No edit summary |
||
| (7 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
<html lang="en"> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<title>Data Recovery Resources</title> | |||
<style> | |||
/* General page styling */ | |||
body { | |||
font-family: Arial, sans-serif; | |||
line-height: 1.6; | |||
} | |||
/* Table of Contents (TOC) styling to match classic Wikipedia style */ /*format needs fixing*/ | |||
#toc { | |||
background-color: #f9f9f9; | |||
border: 1px solid #a2a9b1; | |||
padding: 10px; | |||
margin-bottom: 20px; | |||
width: 275px; | |||
font-size: 0.875em; | |||
line-height: 1.0; | |||
} | |||
#toc h2 { | |||
font-size: 1em; | |||
margin: 0; | |||
font-weight: bold; | |||
color: #222; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
} | |||
/* Hide link styling */ | |||
#toc h2 .hide-link { | |||
font-size: 0.85em; | |||
color: #0645ad; | |||
cursor: pointer; | |||
text-decoration: none; | |||
} | |||
#toc h2 .hide-link:hover { | |||
text-decoration: underline; | |||
} | |||
/* TOC list styling */ | |||
#toc ul { | |||
list-style-type: none; | |||
padding: 0; | |||
margin: 10px 0; | |||
counter-reset: section; | |||
} | |||
/* Main section numbering */ | |||
#toc ul > li { | |||
counter-increment: section; | |||
margin-bottom: 5px; | |||
} | |||
#toc ul > li::before { | |||
content: counters(section, ".") " "; | |||
font-weight: bold; | |||
} | |||
/* Nested numbering */ | |||
#toc ul li ul { | |||
margin-left: 20px; | |||
counter-reset: subsection; | |||
} | |||
#toc ul li ul li { | |||
counter-increment: subsection; | |||
} | |||
<h2 | #toc ul li ul li::before { | ||
content: counters(section, ".") "." counter(subsection) " "; | |||
font-weight: normal; | |||
} | |||
/* Link styling */ | |||
#toc ul li a { | |||
text-decoration: none; | |||
color: #0645ad; | |||
} | |||
#toc ul li a:hover { | |||
text-decoration: underline; | |||
} | |||
</style> | |||
<script> | |||
// JavaScript to toggle visibility of TOC contents | |||
function toggleTOC() { | |||
const tocList = document.querySelector("#toc ul"); | |||
const hideLink = document.querySelector(".hide-link"); | |||
if (tocList.style.display === "none") { | |||
tocList.style.display = "block"; | |||
hideLink.textContent = "[hide]"; | |||
} else { | |||
tocList.style.display = "none"; | |||
hideLink.textContent = "[show]"; | |||
} | |||
} | |||
</script> | |||
</head> | |||
<body> | |||
<!--formating needs fixing to standardised wikipedia formating --> | |||
<!-- Table of Contents --> | |||
<div id="toc"> | |||
<h2>Contents <a href="javascript:void(0);" class="hide-link" onclick="toggleTOC()">[hide]</a></h2> | |||
<ul> | <ul> | ||
<li><a href="#">Related | <li><a href="#section1">Background information</a></li> | ||
<li><a href="#"> | <li><a href="#section3"> Flow chart of order of operations</a></li> | ||
<li><a href="#section5"> Related Topics</a></li> | |||
<li><a href="#section6"> Further reading</a></li> | |||
</ul> | </ul> | ||
</div> | |||
<h1 id="section1" >Background information </h1> | |||
<p> The Flash Translation Layer acts as the name suggests a translation layer between the physical NAND chips and the digital operating system that runs from them.</br> | |||
The following pages of this segment go into deeper detail of each aspect of the FTL, but an overview of each aspect are as follows | |||
<ul> | |||
<li>Block Mapping - Is responsible for mapping the digital data to the physical location on the chip dies | |||
</br> since there is not always (if ever) 1:1 relation to where data is stored digitally and where it is stored physically.</li> | |||
<li>Wear Levelling-Due to the nature of how NAND functions, each cell within the chip has a limited lifespan, | |||
</br> wear levelling prevent excessive wear on certain areas</li> | |||
<li>Bad Block Management - Once an area does have excess wear or simply does not function correctly | |||
</br>It's located is noted by the FTL and not used with the digital addresses being relocated to a healthy area of the storage</li> | |||
<li>Garbage collection- as the name suggests, this aspect is responsible for clearing blocks that have previously been written too | |||
</br> but are now unused. Or need to store different information.</li> | |||
<li>Block Reclamation- is responsible for moving blocks back to the list of available space after Garbage collection has erased them</li> | |||
<h1 id="section3">Flow chart of order of operations</h1> | |||
<p>Insert a flow chart of steps and actions for each task (create using diagram)</p> | |||
<h1 id="section4">Troubleshooting/tips and tricks</h1> | |||
<p>Fixes to any common issues that were encountered or could be easily encountered</p> | |||
<h1 id="section5">Related Topics</h1> | |||
<p>Topics such as desoldering to chip off or firmware dumping for disk PCB repairs</p> | |||
<ul> | |||
<li><a href="https://datarecoverywiki.com/index.php/Block_Mapping">Block mapping</a></li> | |||
<li><a href="https://datarecoverywiki.com/index.php/Wear_Levelling">Wear levelling</a></li> | |||
<li><a href="https://datarecoverywiki.com/index.php/Bad_Block_Management">Bad block management</a></li> | |||
<li><a href="https://datarecoverywiki.com/index.php/Garbage_collection">Garbage collection</a></li> | |||
<li><a href="https://datarecoverywiki.com/index.php/Block_Reclamation">Block reclamation</a></li> | |||
</ul> | |||
<h1 id="section6">Further reading</h1> | |||
<p>External references in wiki references can just be cited through the keyword link</p> | |||
<div class="reference-list"> | |||
<ol> | |||
<li>Reference 1: <a href="https://www.adreca.net/NAND-Flash-Data-Recovery-Cookbook.pdf">NAND flash data recovery cookbook (free)</a></li> | |||
<li>Reference 2: <a href="https://www.gchandbook.org/editions.html">The Garbage Collection Handbook: The Art of Automatic Memory Management, 2nd Edition (paid)</a></li> | |||
</ol> | |||
</div> | </div> | ||
</body> | |||
</html> | |||
Latest revision as of 13:35, 10 March 2025
Background information
The Flash Translation Layer acts as the name suggests a translation layer between the physical NAND chips and the digital operating system that runs from them.
The following pages of this segment go into deeper detail of each aspect of the FTL, but an overview of each aspect are as follows
- Block Mapping - Is responsible for mapping the digital data to the physical location on the chip dies
since there is not always (if ever) 1:1 relation to where data is stored digitally and where it is stored physically. - Wear Levelling-Due to the nature of how NAND functions, each cell within the chip has a limited lifespan,
wear levelling prevent excessive wear on certain areas - Bad Block Management - Once an area does have excess wear or simply does not function correctly
It's located is noted by the FTL and not used with the digital addresses being relocated to a healthy area of the storage - Garbage collection- as the name suggests, this aspect is responsible for clearing blocks that have previously been written too
but are now unused. Or need to store different information. - Block Reclamation- is responsible for moving blocks back to the list of available space after Garbage collection has erased them
Flow chart of order of operations
Insert a flow chart of steps and actions for each task (create using diagram)
Troubleshooting/tips and tricks
Fixes to any common issues that were encountered or could be easily encountered
Related Topics
Topics such as desoldering to chip off or firmware dumping for disk PCB repairs
Further reading
External references in wiki references can just be cited through the keyword link