这些问题,硬件工程师表示很头疼
1、自激的运放
2、环路不稳定的电源
3、去不掉的噪声
4、cache error的cpu
5、不能上网的研发部??
6、还有芯片不受控制,重启也无效
7、接受电路灵敏度低,EOS问题解决
8、发生软失效的存储器
9、串口调不通,示波器量波形,然后再示波器协议解析
10、NAND flash存放程序半个月,系统报错不能启动
11、软件总说硬件有问题又无法自证(为什么世界上有事情都是硬件的事情?)
12、上电就炸的板子
13、要飞线的BGA
14、没有妹子的硬件部
(图片自行脑补)
15、容易掉的焊盘
16、超低复现概率BUG的调试。 。
17、cpu莫名的死机 或重启
硬件笔记本,一起学习电路设计、PCB设计、仿真、调试以及EMC知识
更多干货文章请点击关注:
搞懂元器件,就搞懂了电路的一半
一起学习吧:
硬件笔记本|加群
声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。
为什么固态会掉盘?著名的30分钟大法修复是什么原理?
如果现代的台式机或者笔记本忽然断电(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:
什么时间写回,这是SSD固件的核心机密之一。另一方面,随着SSD容量的提高,FTL表的容量也快速上涨。我们以8GB的为例,FTL表不加处理可以达到8MB;以此类推,800G的SSD,FTL表可以有800MB!有些省空间的方案可以大大减小FTL表的大小,但也高达数十MB。这么大,FTL表也就有了部分被换入换出的过程。如何设计,也是很讲究技巧的。
FTL表如此重要,没了它,整个SSD/SD卡就没法工作了。如果在FTL写回Flash之前,还在内存的时候,忽然没电了,内存数据丢失,FTL表也就丢失了。有鉴于此,高端SSD和服务器SSD都加上了电容,来作为应急供电方案,让SSD控制器有时间把内存中的FTL表和一些缓存内容存到Flash上去:
现实中的例子,我们在M.2的SSD上面有很多很小的电容:
在Vcc没电的时候,这些电容的gate就会打开,会为主控争取1ms左右的时间。主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。
在企业级的SSD中,有的DRAM大小将近1GB,而企业SSD的数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄快:
它们也是为了这个目的。
但是,一些低端消费级的SSD,没有这种措施,忽然掉电,会造成FTL丢失。那么发生这种情况是不是SSD就报废了呢?也不是。
FTL表的重建
在内存中FTL丢失之前,Flash上还有上次的FTL内容,虽然已经过时了,但总比没有好吧!于是可以搜索SSD中的Flash,找到上次的FTL,这样尽管会丢失一些信息,但大部分数据可以保持。于此同时,有些实际块已经被分配使用过了,再次用会发生错误,就需要修正最后的FTL。那么怎么修正呢?
每个Flash的page都有一些额外的空间,这些空间大部分做ECC校验用,但还有些富余,我们拿来做Mapping Flag(MF):
有了这个提示,我们可以逐Page扫描整个Flash,来修正FTL。
看到逐Page,就知道这是个很耗时的工作。现在SSD那么大,需要不少时间,可以高达数分钟乃至数十分钟!
那么什么时间做FTL的重建呢?不少主控都在发现错误后会开始重建,直到成功重建,主控才会响应ATA等命令。这就是为什么忽然断点后,有些SSD会很长时间没有响应,想掉盘一样了!那么为什么有时候断电后又没问题呢?如果当时最新的FTL已经被写回Flash中去,没有错误,当然也就不会出问题了。
30分钟大法是怎么回事?
掉电后各个主控的表现不一,这和它们的FTL存储算法有关。某些主控可以迅速恢复,有些则可能耗时很久,为了给某些主控充足的时间重建FTL表,掉盘后可以这样做:
1.掉电开机后,发现掉盘。如果是系统盘,则启动失败,如果是数据盘,则在操作系统里面发现该盘没有了。
2.不要立即重启,啥也不干,等待30分钟,让SSD主控充分的时间自行修复FTL。
3. 30分钟后,关机。再开机,看能不能找到该SSD。
有些同学还有些额外的步骤,即不插数据线,光插电源线开机30分钟。尽管我现在已经不做Flash相关工作,但我从经验和原理上认为这个步骤不是必须的。另外M.2的SSD也可照此办理。
需要特别提醒的是,比较忌讳在此过程中十分烦躁,不停关机开机和重启,打断主控重建FTL的过程,有可能加剧错误造成彻底不可以用了。
结论
断电会造成FTL表损坏,进而可能出现掉盘的现象。正确利用30分钟大法,可以修正部分问题,关键是给主控充分的时间进行FTL表的重建。其实不光断电,高温也有可能造成掉盘。我在我的笔记本M.2上插了块500GB某厂SSD,在大量拷贝电影时,过热会让该SSD主控忽然停止工作。我的笔记本这时就会没有响应,在过了一会后,要不蓝屏,要不就是发现该盘符没有了。这是我如果直接重启,就会发现在BIOS里面和Windows中,该硬盘都没有了。我这时就会让笔记本凉一会,再重启,硬盘就又出现了。这也是30分钟大法的一个变种。
如果还不能修复,其实还可以进入工程模式进行恢复。但是该过程比较复杂,软件昂贵,还是留给专业人士吧!
我在下一篇文章会介绍为什么有时候micorSD卡(TFlash卡/T卡)会忽然进入类似写保护状态,敬请期待!
相关问答
电脑上有好多 flash 和NVIDIA怎么处理,要不要卸载-ZOL问答可以卸载,你可以在控制面板——程序和功能里面点击卸载,如果还是卸载不掉的话,那推荐你用卸载能力很强的腾讯电脑管家,管家管理页——软件管理——卸载——选择...
Adobe Flash 插件什么时候才会离开我们?根据Mozilla最新的插件路线图,该公司计划在今年的某个时候在Firefox版本中默认禁用Flash。现在,一个新的Bug报告显示该插件将在Firefox69上被禁用,该版本预...
电脑开机显示 FLASH BIOS(Y/N)是咋回事0 0-ZOL问答3条回答:【推荐答案】flashbios是刷新BIOS的意思,应该是需要你把BIOS文件放在软驱或U盘里。把主板cmos电池拔掉1分钟后看看能不能恢复出厂设置,如果不行的话...
flashfox为什么用不了?方法一:刷新或重启浏览器浏览器有延迟,未能及时检测到Flash,可以通过刷新或关闭后重启一下浏览器,或切换浏览器模式方法二:安全软件影响可能是安全软件拦...
Serial flash 和nor flash nand flash 有什么区别?NandFlash擦除很简单,而NorFlash需要将所有位全部写0(这里要说明一下,Flash器件写入只能把1写为0...性能差别:对于Flash的写入速度,其实是写入和擦除的综合速...
ssd nand 区别?SSD指的固态硬盘,固态硬盘上存储信息的方式是采用Flash芯片,Flash芯片主要分为NANDFlash和NorFlash。简单来说,SSD硬盘是一个由若干个NANDFlash或者NorFl...
AdobeflashplayerActiveX和NPAPI和PPAPI这三个软件有什么区别?哪个是不必要的?不论adobeflashplayer几,都一样activex:适用于windows7及其之前系统的ie内核浏览器、本地flash播放器、客户端npapi:适用于firefox(火狐)、safari...
网页 Flash 崩溃,怎么办?1、打开360浏览器,并使其处于极速模式下(默认此模式),输入有flash显示问题的网址,结果显示flash插件崩溃。2、在浏览器的地址栏处输入se://plugins/,然后...
...我的诺亚舟开不了机了.只是显示:np800+biosv1.12 nandflash ...[最佳回答]格式化机器,插入电脑格式化,再重新下载系统软件
msd6a 848和amlogic t972参数对比?以下是MSD6A848和AmlogicT972的参数对比:1.CPU:-MSD6A848:六核ARMCortex-A55,最高主频2.0GHz-AmlogicT972:四核A...