计算机拓扑:为什么要刷BIOS?刷BIOS是否有影响

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 16:03:18

BIOS刷新”并不陌生,因为通过“刷新BIOS”不但可以增加新功能,而且可以解决一些兼容上的问题。但是我们在刷新的过程中,有时会出现一些这样、那样的问题,而使刷新失败。那么是什么原因造成刷新失败呢?其实如果你了解一下BIOS的刷新过程,将解开这些疑问。 要将BIOS文件写入到BIOS芯片中,要涉及到:BIOS文件、BIOS芯片以及BIOS刷新程序。因此我们就从这三方面做一下详细介绍。(主要介绍BIOS芯片,因为了解了BIOS芯片,也就明白了刷新的过程)
BIOS从类型上可分为:AWARD BIOS、AMI BIOS、Phoenix BIOS。三种BIOS各有各的特点(我们这里不详细说明),但是无论是那一类型的BIOS,都是给系统硬件提供最低层、最直接的驱动。BIOS文件是一个压缩的二进制文件(以AWARD BIOS为例,AMIBIOS的原理与其是一致的,有些地方甚至完全一致。如其两种BIOS文件的BOOT块起始地址,1M文件都从1E000H处开始,2M文件从3E000H处开始)(图一),大体可分为三部分,一部分称为SYSTEM BIOS,是系统中最基本的部分,文件名一般为Original.tmp,所有的BIOS都有这一部分(图二),其中包含有基本的BIOS程序、提示信息及指令等;其实这一部分同时也是解压缩程序,在这以后的各模块主要是靠此部分来解压缩的;同时在其中定义了文件的寻址空间。我们用MODBIN程序打开一个BIOS文件时,其临时文件即为SYSTEM BIOS模块,大小为128K(平时,我们修改BIOS中的内容,主要是修改这部分)。第二部分为扩展BIOS程序,是各个厂商自己定制的不同于标准Award BIOS的功能,实际上几乎所有的厂商都会增加这一部分内容;然后是CPU微代码、ACPI等模块,我们可以在这其间加入其它模块(如捷波恢复精灵);第三部分为BOOT BLOCK块,这也是BIOS文件中唯一没有被压缩的模块,因其支持ISA显卡和软驱,因此当BIOS被破坏后,我们可以利用这一部分来启动机器并重新恢复。BIOS文件一般有1M(128KB*8)、2M(256KB*)、4M(512K*8)之分。1Mbit=8*128Kbyte(1Byte=8bit)

BIOS芯片,其实就是BIOS文件的载体。BIOS文件存储在芯片中,通过芯片的外部接口可对芯片中的程序进行擦除和读写。BIOS芯片我们可以理解为一个有多个单元的楼房(芯片的存储单元),每一个单元存储一个二进制代码(0或1)。二进制的BIOS文件,就是这样一一按顺序排列存储在芯片中的。BIOS芯片根据存储原理和工艺,可以分为EPROM、EEPROM、FLASHROM等。EPROM是非易失型存储器(图三)(图四),

具有掉电不丢失的特性;其存储单元由浮栅型场效应管构成,利用高压使浮栅带电实现对芯片的写入,擦除内部数据靠紫外线消除浮栅上的电荷,使其不带电。EPROM工作电压为5V,在写入时要用专用的编程器,并且写入时必须要加一定的编程电压(VPP=12-24V,随不同的芯片型号而定),EPROM的型号是以27开头(如ATMEL27C020)。
EEPROM是电擦除非易失型存储器(图五)(图六),其存储单元也是由浮栅型场效应管构成,写入时,利用高压下的隧道效应,令浮栅带电;擦除时,仍是利用高压下的隧道效应,不过电压极性相反,因此令浮栅不带电。EEPROM工作电压为5V,在写入时,需要加上一定的编程电压(VPP=12V),EERPROM的型号以28开头(如AM28F020)。

FLASH ROM也是电擦除非易失型存储器(快擦写存储芯片)(图七)(图八),其也是浮栅型场效应管构成,写入时,利用热电子注入,使浮栅带电;擦除时,则利用高压下的隧道效应,使浮栅失去电子。FLASH ROM的工作和刷新电压都是5V,其型号一般为29、39、49开头(如SST 39SF020)。目前主板上的BIOS芯片,基本上都属于FLASH ROM。 BIOS芯片有三种基本操作:读取、擦除、编程。要了解以上操作过程,首先了解一下芯片的结构。芯片(存储器)外部接口(引脚)可分为:数据线、地址线、控制线、电源线(图九)。地址线用来确定数据所在的地址,数据线用来输入和输出数据。控制线包括CE、OE、WE;CE是片选信号,当CE为低电平时,芯片被选中(也就是可以对芯片进行任何操作,对于多BIOS芯片串联使用时,可以用CE来选择要操作的芯片是那一片,如RD2000双BIOS系统即为用CE来切换两个BIOS芯片的,通常主板上为单BIOS芯片,因此CE始终为低电平,也就是一直为选中);OE是输出允许,也是低电平时有效,当OE为低电平时,允许数据输出,也就是可以读取芯片中的内容,当OE是高电平时,输出被禁止,无法读取内容;WE为编程允许,也是低电平有效,当WE为低电平时可以对芯片进行编程(写入),当WE为高电平时不能对芯片进行编程(我们可将此脚接为高电平,那么芯片就无法写入,无敌锁即是将此脚升为高电平,来保护芯片的)。对于EEPROM不需要擦除,可以直接进行编程操作,对于FLASH ROM,需要先擦除芯片内的内容,然后才可以写入新的内容。电原线包括VCC、VPP、PR.。VCC为5V工作电源,VPP为28系列写入时12V电源(29系列此脚为NC,即为空脚),PR则是28系列分块式BIOS,对BOOT BLOCK块进行编写的12V电源。芯片无论是读取、擦除还是编程,都需要各种信号按一定的时序、一定的电平相互配合才能完成,控制信号时序是由编程程序来完成的。完成这段时序的过程,也称为刷新流程(其也是一段程序码,由生产厂家提供,同型号的芯片,虽然生产厂家不同,但是其刷新流程是一致的);不同的芯片,其控制时序也是不同的,因此编程程序也会根据芯片的型号进行相应的控制。

不同芯片,其控制时序不同,编程程序会根据芯片的型号进行相应的控制,刷新程序是如何识别芯片的型号呢?其实,每一种芯片,都有自己的标识,这就是芯片ID(也称为芯片的身份证),由于不同的芯片,有不同的ID,因此刷新程序就是通过读取芯片的ID,来分辨不同的芯片,同时根据其芯片ID来调用不同的刷新流程代码(控制程序),来完成对芯片的编程的。

看到这里,我们已经大致明白了刷新是如何进行的。接着我们继续了解刷新程序是如何对芯片进行刷写的。当我们运行刷新程序时(以AWDFLASH为例),刷新程序启动后,直接检测BIOS ID(此为BIOS文件的ID);此时在程序顶端显示BIOS的ID以及BIOS日期,但芯片类型没有显示(由于此时刷新程序是调入内存中的BIOS映象,并没有对BIOS芯片进行操作)(图十);同时提示让你输入即将刷新的BIOS文件名(在这里强调一下,不少网友询问,下载的BIOS文件扩展名不是bin等规则扩展名,如123等。其实BIOS文件只是一个二进制文件,所以无论什么样的扩展名,只要按其文件的文件名和扩展名完整输入即可),当我们输入BIOS文件的路径及文件名回车后,此时刷新程序检测BIOS芯片的CE脚是否为低电平,如是低电平,则为芯片被选中,接着检测芯片的ID,然后根据BIOS ID在程序的上端(Flash Type)显示对应的BIOS芯片的型号(图十一),同时调用其对应的刷新流程代码(这时即可对BIOS芯片进行读写编程了)。如果刷新程序无法读取芯片的ID,由在(Flash Type)显示Unknown Flash,这时我们是无法对BIOS芯片进行读写编程的

(造成的原因可能是BIOS芯片已经损坏,同时如刷新程序无法调入相应的刷新流程代码,则系统会没有任何提示,而退出,这主要是由于刷新程序版本太高或太低的缘故,此时你可更换其它版本的刷新程序)(图十二)。如果正常系统将继续进行,提示是否保存原BIOS,如按保存,则系统根据上步检测到的BIOS ID,调入其对应芯片的刷新流程代码,检测OE脚是否为低电平,如是低电平,则处理器按芯片的刷新流程通过A0~A17地址线确定芯片存储单元的读出地址,然后再通过D0~D7数据线将指定地址的数据从芯片中读出(一次读取8位二进制代码),并按你输入的文件名,保存为文件。如果我们不保存文件,而直接选择写入,首先,系统要将我们即将写入的BIOS文件与内存中的映象文件进行ID对比(此为BIOS文件ID,这也是为什么我们用普通修改工具无法修改ID的原因),如不一致,则提示The Program Files Part Number doesn't match with your system(图十三),如出现这种提示,我们不应强制写入;如一致则处理器按芯片的刷新流程通过A0~A17地址线确定芯片存储单元的写入地址,然后再通过D0~D7数据线将更新的BIOS文件写入到芯片的存储单元中。正常写入后,系统将提示重启或回到操作系统,我们可以自己选择,至此刷新过程完成。 现在我们了解了BIOS芯片的刷新过程,以后在刷新过程中再有什么错误出现,我们就可以清楚知道问题及原因所在了吧!如您对BIOS刷新有不同的见解,请到笔者小居(www.biosrepair.com)与笔者一叙。
笔者注:虽然BIOS芯片的控制线CE、OE、WE有高低电平之分,但在正常情况下都是低电平,也就是可以随时对芯片进行编程操作。上面我们所说的,刷新程序编程时对芯片的控制脚进行检测,只是让大家明白刷新程序是依据芯片的刷新流程来进行读、写操作。这就是为什么CIH病毒可以对芯片中的内容进行破坏的原因。不过,我们可以人为的将WE脚拉到高电平,就是先切断31脚(WE)与主板的连接,然后和32脚(VCC)之间焊接一个1K的电阻,这样就将WE升为高电平,不能再对芯片写入。