资讯
HOME
资讯
正文内容
nand坏 为什么很多用了几十年的主板也没听说过BIOS的数据坏了的呢?
发布时间 : 2025-03-18
作者 : 小编
访问数量 : 23
扫码分享至微信

为什么很多用了几十年的主板也没听说过BIOS的数据坏了的呢?

现代的UEFI BIOS除了传统BIOS的一些配置信息还在CMOS中,绝大部分需要存储的内容都被保存在闪存芯片中,在那里,还居住着BIOS的执行代码、ME的代码和存储部分,以及一些其他固件们(GBe,PMC,TB PHY等等)。闪存,也就是Flash,这个词汇经常出现在我们周围,这不,长江存储又刷屏了 。但是,这种闪存是固态硬盘要用到的NAND Flash,而不是BIOS存储用到的NOR Flash。

BIOS之所以选用NOR,是看中了它的XIP,也就是eXecute in place特性。我粗陋的翻译为原地执行代码 ,而不需要加载Load到某块内存中执行。这个特性十分重要,因为在上电启动后,内存初始化还没有进行,没有内存可供使用,虽然我们可以将Cache偷过来做内存用一段时间(Cache As RAM,CAR),但总是没有直接用起来方便。在CAR好了之前的代码,都是在NOR Flash上直接执行的(XIP)。

BIOS芯片

尽管BIOS使用NOR Flash上已经有很长时间,但它和南桥芯片的接口在经历了从FWH到SPI的转变。十几年前闪存接口是传统的挂在LPC下面的FirmwareHub,那时的BIOS芯片长这样(现在有些古老主板上还可以找到它):

ST FWH 2MB Flash

FWH闪存芯片管脚多,主板走线复杂,成本高,LPC总线速度慢,这些弊病让主板BIOS芯片在十几年前慢慢地向SPI NOR Flash芯片转移。现在的BIOS芯片几乎都是SPI芯片,如果你仔细寻找,你几乎可以在所有的台式机、笔记本、服务器、甚至是嵌入式系统中找到它的身影:

Winbound 25Q64BV

这是两个Winbond 8MB的芯片 ,左边是8个管脚的封装,一般用作笔记本和嵌入式系统上;右边是16 pin的封装,一般用作台式机和服务器中。

BIOS闪存芯片经历了一个逐渐变大的过程。从1MB到2MB,再到8MB,现在很多服务器已经用上了64MB的Flash。闪存内部要也不再仅仅是BIOS了,还有别的小伙伴杂居其中。如果你对闪存芯片内容好奇,可以用UEFITool 打开BIOS Image:

一个BIOS Image例子

可以看到,Flash开头是描述符Descriptor区域。里面的结构是Intel定义的,有其他各个区块的大小、位置和权限等信息,以及SoftStrap等等内容。BIOS的代码和存储只是其中一个区域,尽管在很多情况下是最大的区域。

BIOS区中的可变部分:Variable

BIOS区域中如何划分就是BIOS程序员自己做主了。一般被划分成很多区域(FV),一些是存储代码,一些是存储数据。存储数据是利用了NOR Flash的非易失(NVM)特性,简单来说就是掉电内容不丢失,这样用户的一些选项(setup options)才能长期存储。尽管用在固态硬盘的NAND Flash和BIOS芯片NOR Flash在存储原理上有很大不同,但一点却是相似的,那就是数据可以从1变成0,但不能从0变成1:

想要从0变1,要经历一个擦除操作,这就是闪存所以被称为Flash的原因。而闪存的寿命是由能够擦除多少次来决定的,在NAND Flash是这样,在NOR Flash上也没有不同:

NOR Flash可擦除次数更少

在所有影响寿命的地方,我们一定要精打细算,BIOS 芯片也不能例外,谁也不想用着用着,主板忽然损坏了吧。这就要求BIOS在存储数据的时候,不能采取原地擦除的策略,而只是标记一下无效,在后期一次性擦除,延长Flash寿命 。在NAND Flash里面这个过程叫做GC(Garbage Collection),而在BIOS NOR上我们叫做Reclaim:

从图中,我们看到会有内容搬来搬去和整理的动作,比较两者,就会发现,有效数据一个个拍好了,十分整洁,为下一次的数据加入做好了充分的准备。这个搬迁的过程,不可避免的会将数据搬到内存,再从内存中移到目标块,同学们有没有想过,在搬的过程中,如果出现断电,是不是主板就变砖了?这就是图中有Spare Block的原因,它起到缓存,在搬得过程中,保证数据永远是可用的。它加上其他一些安全特性,就组成了UEFI BIOS存储的基线:高容错(Fault Tolerant)非易失存储系统 -- UEFI Variable。我们在BIOS界面上可见和不可见的改动,都存储在variable中。

红旗能打多久?

说了这么多原理,现在我们可以回答很多人关心的一个问题:如果我经常修改BIOS设置,会不会把BIOS写坏了?

我们已知条件有哪些呢?

1.UEFI BIOS在设计的时候,已经采用算法规避大量的擦除操作,将擦除操作归并,以增加闪存芯片寿命。

2. 不是每次BIOS启动,都有数据需要保存的,大多数情况下启动过程中没有写闪存操作。

那么如果你是个电脑爱好者,又十分勤奋,每天重新启动10次电脑,每次都更改BIOS配置,多久电脑会损坏?我们现在就这种脑洞情况进行一个有趣的计算。

假设你的电脑中BIOS UEFI Variable空间是64KB(台式机一般情况,服务器会大些),有一半的内容被固定配置占据,也就是还剩下32KB给BIOS开机设置项:Setup Variable用。不巧的是,主板的BIOS配置又很多,多达要用4KB来保存(极端情况)!这样每次开机会产生4KB的无效数据块,32 / 4 = 8次开机就要Reclaim一次,也就是要擦除一次。主板BIOS闪存芯片是上例中的W25Q64BV。在芯片手册中(参考资料2),它的擦除次数是:

用它的最小擦除次数10万计算,能用多久呢?很简单的算式:

100000 /(10 / 8)= 80000天 = 219年!

那如果你对BIOS设置有着疯狂的爱好,每天重启100次,而每次又都修改BIOS设置呢?理论上,也能用上近22年!

结论

UEFI BIOS已经做了很多优化,作为普通用户,大家完全没有必要担心Flash写坏。但也不是完全高枕无忧,BIOS业内人士还是要注意防止BIOS写坏的情况发生。我曾经做过一个项目,后期要求做压力测试,机器要在各种情况下(Shell,Windows,Linux)各要重启4000次。我拨了一些板子做这项压力测试,这些板子基本在不停的重启中(自动测试驱动)。过了一段时间测试部门报告一个板子坏了,烧不了BIOS了。我开始还不以为意,渐渐的,越来越多的压力测试主板都不能烧片了,这才引起我的注意,一计算才发现,好家伙,是程序的问题,险些引发大规模召回事件 。原来为了快速启动,内存初始化会保存内存training的参数,下次重启就不需要再Training了,节省了很多时间。而这些参数很大,占据了48KB空间(Variable只有64KB)。好死不死,尽管程序增加了逻辑,内容一样,就不会重复存了,但程序员在参数里面加入了时间戳,结果checksum每次不一样,这样每次重启都要存,每存一次都要Reclaim。每次重启需要10秒,一天可以重启:

24 x 60 x 60 / 10 = 1.44万次

而按照最小擦除次数10万次计算,能用:

10/1.44= 7.14天!

怪不得慢慢地一个个都坏了呢!后来去掉了时间戳,才解决问题。

那些年,那些伤害SSD的“幕后黑手”

固态硬盘在PC硬件里可以说是比较“金贵”的存在了,毕竟数据无价,我们要好好保护才是。那么我们在日常使用过程中,有哪些“凶手”会直接伤害到固态硬盘呢?小星今天就来告诉大家。

断电造成FTL损坏和丢失

由于SSD频繁的擦写过程会产生坏块,为了能够做到寿命均衡和对固态硬盘的坏块进行屏蔽,需要一个逻辑地址(LBA,logical block addresses)和物理地址(PBA, physical block addresses)的对应表,再对外界显示逻辑块,而这个对应表就是FTL

作为基础逻辑和核心数据结构,FTL对于SSD是十分重要的,丢失损坏会使得SSD无法正常工作,比如盘符丢失、电脑蓝屏等,而意外断电则是造成FTL损坏和丢失的最主要原因。

如果突然遇到断电情况,大家要记牢30分钟大法 ,不要立即重启,让电脑静置等待30分钟左右。因为掉电后各个主控的表现不一,这和它们的FTL存储算法有关。某些主控可以迅速恢复,有些则可能需要很长时间,而30分钟这个时间,各个SSD主控也差不多可以自行修复FTL了。

970 EVO Plus采用Phoenix 控制器

由于FTL的重要性,一般高端SSD或者企业级SSD都会采用加电容 的方式来保护它,这样即使在突然断电的情况下,依然可以让SSD的主控有时间把内存中的FTL表和一些缓存内容存到Flash上去,所以在选购SSD时,要以大品牌为准。

970 EVO Plus增加的电容

闪存损坏

闪存由源极(Source)、漏极(Drain)、浮动栅(Float Gate)和控制栅(Control Gate)组成。

我们向闪存写入数据的过程首先是在控制栅加正电压,将电子引入浮动栅,然后囚禁在浮动栅之中,并且由于浮动栅不导电,所以电子将持续在保持在浮动栅中,这也就是固态硬盘在掉电情况下保存数据的原因。

擦除过程正好相反,在源极加正电压利用浮空栅与漏极之间的隧道效应,将注入到浮空栅的负电荷吸引到源极,排空浮动栅的电子。

970 EVO Plus闪存

理论上来说,闪存可以每个单元来单独擦除和编程,但是出于效率和成本的原因,实际上作用在控制栅上的擦除电压是整个块(Block)连接在一起的,这也就是固态硬盘在擦除时是以Block为单位的根本原因。

而电子在浮动栅周围的二氧化硅上频繁读写、擦除会造成闪存的损坏,二氧化硅出现老化的现象使得浮动栅不能锁住电子,长时间以后闪存的主控便会将其标记为坏块,从而影响SSD的寿命。

虽然在使用中,闪存损坏无可避免,但如果选择一块拥有可靠品质与前沿技术的SSD,相信你的数据一定能“更长寿”。

970 EVO Plus NVMe M.2 固态硬盘 便是这样的存在。

它采用的第五代V-NAND闪存技术 在工艺制程方面已经足够领先,能很好的保证闪存芯片本身的质量。而三星的固件算法 能够减少不必要的磨损,主控芯片闪存芯片 的兼容性也是业界领先级,能够使SSD的寿命最大化,让你完全可以放心使用。

好了,今天的小讲堂就到这里了,新知识你学会了吗?

相关问答

苹果5开机出现 nand 怎么处理-ZOL问答

2、正常使用中突然重启显示NAND:这类故障一般不好修复,多数因FLASH闪存电路元件损坏造成。3、FLASH闪存芯片本身损坏:这类情况比较少。修复方法:造成故障原因...

emmc与 nand flash哪个好?

1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...

固态硬盘中的“mlc”,“tlc”和“3dv- nand ”的区别是什么?

tlc最烂,速度慢寿命短,最便宜mlc居中,速度中等,寿命中等,价格中等slc速度快,寿命长,价格贵3d是三星研究的一项技术,不过本质还是tlc,比一般tlc强点,...tlc...

买这个3DNAND颗粒SSD硬盘还是MLC颗粒SSD硬盘哪个好?

tlc最烂,速度慢寿命短,最便宜mlc居中,速度中等,寿命中等,价格中等slc速度快,寿命长,价格贵3d是三星研究的一项技术,不过本质还是tlc,比一般tlc强点,...tlc...

小米路由R1D使用2年后大批量用户有损 情况,是否为设计问题?

路由器的工作是需要一天24小时不间断开机的,而小米路由中内置了一块1TB的硬盘,这本来是一件非常酷炫的事情。但是当时因为当时主板上的NandFlash只有256M,不...

固态硬盘的mlc和tlc和3dv- nand 的区别?

tlc最烂,速度慢寿命短,最便宜mlc居中,速度中等,寿命中等,价格中等slc速度快,寿命长,价格贵3d是三星研究的一项技术,不过本质还是tlc,比一般tlc强点,大...tlc...

优盘会被烫 吗?

感谢邀请!我们先来看看U盘的结构:U盘里面核心的部件就是控制器和NAND闪存颗粒。这些都是电子器件。电子器件的焊接温度380C,正常情况不会影响U盘的结构。但是...

程序员在写代码的时候bug太多会给计算机造成损 吗?为什么?

总之,程序中的bug大部分只会引起程序自身的崩溃,但是从理论上来说,bug是可能造成计算机软件系统的损坏甚至计算机硬件的损坏。此外,还有Bios中的程序,如果有bug...

电脑红灯和绿灯一直亮不会一闪一闪的,显示器也没反应,是什么...

有可能是油污接触到了cpu导致坏了有用(0)回复请检查nand是否有坏到,通常nand有坏到就会出现以上情况。解决方法大部份都是同过吹主板更换nand有用(0)回复...

a9破解,没虚拟,原内存卡 了,怎么换一张新内?

A9破解的原理是让机器直接运行存放在内存卡内的系统。也就是说用内存卡的系统直接代替了机器NAND的系统。不插带有系统的内存卡是无法正常开机的。跟主题、GW...

 扑湿  爱家卡盟 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部