Flash Translation layer(FTL): Difference between revisions

From datarecoverywiki.com
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;
        }


<div id="content">
         #toc h2 {
    <h1>What tools you will need</h1>
             font-size: 1em;
<i> Items are not listed in any particular order </i>
            margin: 0;
    <div class="infobox">
             font-weight: bold;
         <table>
             color: #222;
             <tr>
             display: flex;
               
             justify-content: space-between;
             </tr>
             align-items: center;
             <tr>
         }
                <h2> Required </h2>
                <ul>
                <li>Test</li>
                </ul>
             </tr>
             <tr>
              <h2> Optional but useful </h2>
                <ul>
                <li>Test</li>
                </ul>
             </tr>
         </table>
    </div>


        /* Hide link styling */
        #toc h2 .hide-link {
            font-size: 0.85em;
            color: #0645ad;
            cursor: pointer;
            text-decoration: none;
        }


    <div id="toc">
        #toc h2 .hide-link:hover {
        <h2>Uses of this skill</h2>
            text-decoration: underline;
          
         }
    </div>


        /* TOC list styling */
        #toc ul {
            list-style-type: none;
            padding: 0;
            margin: 10px 0;
            counter-reset: section;
        }


    <h2 id="section2">1. Step-by-step guide with images</h2>
        /* Main section numbering */
    <p>The history of the topic is often presented in chronological order, detailing significant events, figures, and periods that shaped its development.</p>
        #toc ul > li {
            counter-increment: section;
            margin-bottom: 5px;
        }


   
        #toc ul > li::before {
            content: counters(section, ".") " ";
            font-weight: bold;
        }


    <h2 id="section3">3. Step-by-Step guide with images</h2>
        /* Nested numbering */
    <p>In the present day, the topic has taken on new forms and relevance, influencing various sectors of society and undergoing further development.</p>
        #toc ul li ul {
            margin-left: 20px;
            counter-reset: subsection;
        }


      <h2>4. Flow chart of order of operations</h3>
        #toc ul li ul li {
    <p>The origins of the subject can be traced back to earlier centuries, where it evolved through various phases.</p>
            counter-increment: subsection;
   
        }
      <h2>5. Troubleshooting/tips and tricks </h3>
    <p>The origins of the subject can be traced back to earlier centuries, where it evolved through various phases.</p>


     <h2 id="section4">6. Related Topics </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 Topic 1</a></li>
      <li><a href="#section1">Background information</a></li>
         <li><a href="#">Related Topic 2</a></li>
        <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>


    <h2 id="section5">7. Further reading</h2>
<h1 id="section1" >Background information </h1>
    <div class="reference-list">
<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>
        <ol>
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
            <li>Reference 1: <a href="#">Source details</a></li>
<ul>
            <li>Reference 2: <a href="#">Source details</a></li>
<li>Block Mapping - Is responsible for mapping the digital data to the physical location on the chip dies
        </ol>
</br> since there is not always (if ever) 1:1 relation to where data is stored digitally and where it is stored physically.</li>
    </div>
<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

Data Recovery Resources

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