为什么固态会掉盘?著名的30分钟大法修复是什么原理?这么做对吗? 您所在的位置:网站首页 固态硬盘开机无法启动怎么办 为什么固态会掉盘?著名的30分钟大法修复是什么原理?这么做对吗?

为什么固态会掉盘?著名的30分钟大法修复是什么原理?这么做对吗?

2024-05-30 13:07| 来源: 网络整理| 查看: 265

如果现代的台式机或者笔记本忽然断电(Power Loss),你觉得哪个硬件部分容易损坏?出乎大多数人的意料的是,固态硬盘SSD最脆弱,容易出现掉盘的现象,也就是BIOS和操作系统不认盘的情况。我在这篇颇受欢迎的回答:

中介绍了部分原因,今天我们就一起来Deep Dive一下原理和应对之道,并对有趣的“30分钟大法”的原理和是否正确进行一些分析。

FTL损坏和丢失

本专栏介绍了很多SSD的原理,其中最重要的根本是对FTL的理解:

SSD甚至SD卡、手机存贮的很多问题和解决方案都或多或少地和它相关,再怎么强调都不为过。为了理解后面的原理,我们先来简单回顾一下FTL:我们的写(Program)Flash操作只能把bit 1改成0,而不能从0改成1. 即我们可以把11110000改成11000000,但不能改成11111111。即有点像逻辑and操作(我们可以通过NAND这个名字联想记忆一下)。那么如何把0改回1呢?这就要靠擦除操作了,但是别忘了,NAND flash的寿命是由其擦写次数决定的(P/E数 (Program/Erase Count)来衡量的),频繁的擦除慢慢的会产生坏块,如FAT分区的文件分配表(老狼:FAT文件系统与UEFI)等。为了能够做到寿命均衡(Wear Levelling)和对坏块的遮蔽,就需要一个逻辑地址(LBA,logical block addresses )和物理地址(PBA, physical block addresses)的对应表,对外界暴露逻辑块,里面是具体是哪个物理块,固件自己做主,这个对应关系表就是FTL表:

因为LBA大部分实现是基于Page的,也叫做Page Mapping Table (PMT):

FTL看起来挺简单,但它是SSD、NAND等基础逻辑,它的实现多种多样,是各个固件的核心机密。也有些Open Source的方案。

FTL表在哪里呢?作为核心数据结构,它当然也要存储在Flash上。但由于它会被频繁更新,所以每次改动也不能立刻写会Flash,一般会先暂存在内存中,在积累到一定程度,再写回Flash:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有