|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
| | 作者:lr1 文章来源:本站原创 点击数: 更新时间:2004-10-12 | - U+ M9 }7 c+ D0 Q' V
|
( e6 x% t- @% i9 S5 \ | 熟悉电脑的朋友都知道BIOS这个概念,我们也会经常听到老鸟在解决系统故障时候重复的那些话语:“先清除一下CMOS”或者“进入BIOS默认设置”等等。在普通人眼里,BIOS似乎就是主机板上那块四四方方的小晶片和开机时候显示的蓝色功能表。它究竟对使用者有什么特别的意义呢?它究竟是不是高手或维修工程师的专利呢?一台电脑是通过怎么样的方式开始工作的呢?希望通过阅读本文,你可以得到一个答案。
u4 | a% v8 f2 r" _, }1 r: ]4 b x, a3 z& Z& K! ?) `9 p5 D
BIOS内部结构
4 q. \4 [, |) n" D对于我们日常使用的个人电脑来说,采用的BIOS并不是完全相同的,分别由Award、Phoenix和AMI这个三个厂商提供(注:Award已被Phoenix收购,其实是一家公司)。以目前主板的状况而言,大多数都是采用Award BIOS或者基于Award BIOS 内核改进的产品(采用AMI BIOS的产品相对要少,Phoenix BIOS主要是笔记本电脑和不少国外品牌机采用)。本文介绍的一些BIOS知识和结构,也只围绕市场占有率最高的Phoenix-Award来展开。' C$ g3 S; U2 Z: }, u6 ~3 B: ^2 o
, ^0 r8 L$ _; C4 ?* S' D拿常见的Award的2Mbit CMOS位址结构来说,从FFFF到FFFC区域是用于储存16Kbit容量的Boot Block(启动模组)、接着是8Kbit的即插即用延伸系统配置资料ESCD区、4Kbit的处理器微代码Micro code和4Kbit的DMI资料区。FFF8到FFF6是解压缩引擎区,这里的指令可以释放FFF6之后区域的大容量代码和资讯,比如厂商Logo、OEM资料等等。最后一部分是安放BIOS主程序的地方,通常这些程式也就是我们从网上下载的以bin为尾码名的BIOS升级档。
- R& e; N+ g: B* k
8 F% ~% e/ d5 n8 tBIOS主要功能2 |$ H* Z Q y3 I) b6 Y: Y* A
主板BIOS掌握着系统的启动、部件之间的相容和程式管理等多项重任。只要按下电源开关启动主机后,BIOS就开始接管主板启动的所有自检工作,系统首先由POST (Power On Self Test,上电自检) 程式来对内部各个设备进行检查(这个过程在下文中另作表述)。通常完整的POST自检将包括对CPU、基本记忆体、1MB以上的扩展记忆体、ROM、主板、CMOS记忆体、串并口、显示卡、软硬碟子系统及键盘进行测试,一旦在自检中发现问题,系统将给出提示资讯或鸣笛警告。然后BIOS就按照系统CMOS设置中保存的启动顺序搜寻软盘机、IDE设备和它们的启动顺序,读入作业系统引导记录,最后将系统控制权交给引导记录,并最终完全过渡到作业系统的工作状态。' {3 J* O, n: K5 O
) Y, O. z- E1 h
除了基本的启动功能外,BIOS还有硬体中断处理、系统设计管理、程式请求等作用。作业系统对硬碟、光碟机、键盘、显示器等周边设备的管理,都是直接建立在BIOS系统中断服务程式的基础上的,它是PC系统中的软体与硬体之间的一个可编程介面。电脑开机的时候,BIOS会分配CPU等硬体设备一个中断号。当执行了使用某个硬体的操作命令后,它就会根据中断号使用相应的硬体来完成命令的工作,最后根据其中断号把它跳回原来的状态。同样,BIOS也可以通过特定的资料埠发送、接受指令,以实现软体应用程式对硬体的操作。
+ u/ E8 A6 p+ x" s2 t$ B
+ k% h- Y2 ~6 Y. P6 l UBIOS的系统管理功能是大家最为熟悉的,即平时说的BIOS设置。BIOS程式会调用储存在CMOS RAM部分的记录,用户可以通过显示器看到系统基本情况,包括CPU频率、IDE驱动器、ACPI电源管理和密码设置等资讯。正如笔者在一开始说过的那样,这部分资讯是依靠电池单独供电储存在RAM中的,只要断电一段时间或人为给CMOS接通高电平信号(跳线短接),任何修改过的设置都会不复存在。+ M8 r! `7 c( G2 y% A' i
# u5 J+ @8 x" L' Y; y3 ~
BIOS如何工作?
( h, I5 L6 I9 H5 |- B有了以上这些基本知识作为铺垫,读者朋友应该对BIOS有了一定的瞭解。接下来的问题就是,掌握PC枢纽的BIOS是如何工作的呢?鉴于这个过程的复杂,不妨让我们将BIOS运行中的几个关键点罗列出来,稍做分析。这里需要事先声明,以下介绍的有关BIOS运行代码统一成十六进位,有兴趣的朋友可以在市场上买回Debug卡(俗称也叫Port 80卡)来查询、观察。1 Y0 e/ G# ]5 h5 l# F
+ I/ j* a6 i- f: \* ~9 H" N4 F简单地说,BIOS启动会经过好几个检测、命令、执行的回圈流程(如图2),当然,在进入BIOS控制之前,CPU还需要一个热身的过程。拿P4系统为例,如果按照PC启动的流程来讲解的话,这个先后秩序是这样的:首先是主机电源开始供电,CPU接收到VR(电压调节系统)发出的一个电压信号,然后经过一系列的逻辑单元确认CPU运行电压之后,主板晶片接收到发出“启动”工作的指令,让CPU重定。CPU“苏醒”后的第一工作就是,读取BIOS中的初始化指令。在对CPU(2次检查)和记忆体(640KB基本模组)状态做一系列校验之后,BIOS会完成电路片的初始准备,停用视频、奇偶性和DMA电路片,并且使CMOS计时器开始运行。随后,BIOS程式会逐步检查CPU是否和默认设定相同,DMA是否有故障,显示通道测试等等,一旦出现故障,就会有蜂鸣器发出报警。不过,这些步骤都是在后台后悄悄进行的,我们是看不到萤幕上的任何资讯。8 d, H0 `* Z/ i/ ?* P
: W4 o& [. o/ O. W
在上面的流程图中,很清楚地表明瞭引导模组工作的几个步骤。当CPU被正式启动以后,POST(Power-On Self Test,加电后自检)进入记忆体侦测阶段,一旦基本记忆体检测出错,系统死机并会长时间报错;如果一切顺利,BIOS继续往下POST,检查CMOS内的其他BIOS主程序、扩展程式,直到完成这些工作,系统进入常规流程,显示器上才会显示出时间日期、BIOS版本型号、CPU频率、记忆体容量等基本资讯。在BIOS引导IDE设备和I/O设备以后,接下来的过程便交给作业系统来继续了。; O' j* e2 y& c
$ F7 E4 h3 w+ S2 G. @4 j {BIOS在电脑启动过程中大体是这样工作的,实际上远比我们介绍的要复杂得多。中间任何一个小的步骤出错都会导致系统无法启动,崩溃,而且BIOS设置不当也会给系统造成隐患。有经验的老鸟可以通过BIOS启动时候的声音来判断故障,而一般用户可以通过查看Debug卡的检错信号,瞭解POST停滞在哪个阶段。还是拿Award BIOS来说,开机Debug卡显示FF和C0表示CPU自检没有通过,应该停电检查处理器状况;如果是C1、C3等数位显示,很有可能是BIOS在检测记忆体时候发生问题了;系统自检过了2D,并且伴随清脆的“嘀”声,说明系统已经通过显卡检测,这个时候显示幕上也开始出现画面。知道了故障可能发生的部件,我们可以通过替换法来最终确定问题源头,顺利解决问题。# ^/ z: b! z5 I% O
/ n, n" p8 L' K) ^& {BIOS也要保护6 G5 V5 o4 t9 E7 D! b( H% s4 U
除了硬体设备的相容问题之外,BIOS还有可能面临病毒、错误擦写等外因的危害,BIOS如果不能工作,整台电脑也就瘫痪了。% W2 _- u: G5 ~* \; K8 a8 D' {
& c3 H; `3 l. q, f" U" o不少主板厂商都通过专门的设计来增加BIOS的可靠性。有的是做成Dual BIOS双模组的方式,一旦其中一块出现故障,能够通过跳线设置让系统从另外一块引导启动,再对损坏模组进行修复。由于BIOS中Boot Block区是重要的资料块,所以厂商将Boot Block块设计成分块式的BIOS结构,在BIOS晶片中保留了一个区域,该区域中保存有BIOS系统中最重要的启动资讯。最新的刷新程式的预设值就是刷新时不更新BIOS的Boot Block块,这样的主板即使刷新失败,也能很容易恢复。* Z! H9 F5 s: `$ p1 {6 B+ i
& T) i2 ?" p4 F, q4 K% I4 u8 j/ e! f8 B/ |
遇到BIOS刷新失败,也可以自己用热插拔的办法来替换受损晶片,前提是你能找到一片和原来BIOS容量一样的晶片。有动手能力的玩家还可以在BIOS晶片的管脚上动脑筋,因为绝大多数的CMOS晶片为32脚的DIP封装,它们的针脚排列、功能基本上一致。晶片的写操作一般是通过写入允许脚的电平变化来控制的,只有12V或者5V的高电平被调成低电平以后,资料才能写入到晶片中去。根据此原理,只要把这个管脚从电路中脱离出来,一直处于高电平,即处于“读”状态,那么不论是病毒还是误操作,都不会对晶片内的资料进行改写。不过,这个方法存在一定的危险性,它不适用所有的BIOS晶片,而且容易失去主板的保修,大家一定要谨慎为之。7 f4 V5 G M# ]- w: S/ }
; Y3 W$ f3 Y) W1 E# c( l. q0 e写在最后% c6 q i; i' i; b
BIOS就像系统管家,电脑的“每一笔收支出入”都要经过它的事先安排和检查;每一个故障和隐患都逃不过它的眼睛。这篇文章只是粗略地介绍了有关BIOS的一些基础概念和常识。当然,想要深入研究BIOS代码和根源程式编写,没有一点技术功底可不行。希望本文能够抛砖引玉,引起大家对解读PC和主板部件的兴趣。3 B$ @$ w% v k4 |% o8 ^7 B
" x+ Q! X0 `$ Y(上海 大海马、小Paul)' R8 J2 T) J5 @# b
1 k; m% r: A7 }% h6 t必备知识:BIOS与CMOS说起BIOS,必须澄清它和CMOS之间的关系。BIOS是基本输入输出系统(Basic Input & Output System)的缩写形式,它的全称应该是ROM-BIOS,意思是唯读记忆体基本输入输出系统。从本质上说,它是一组固化到电脑主板上一个ROM晶片中的程式,也可以被称之为一种“软体”。当然,它和一般的“软体”有重要的区别,它和PC的硬体设备紧密相连,负责保存电脑最重要的基本输入输出程式、系统设置资讯、开机上电自检程式和系统启动自检程式等责任。有人形象地称BIOS是连接软体设置和硬体设备的一座“桥梁”,这是比较贴切的。在某种程度上,一块主板的性能也在很大程度上取决于BIOS程式的管理功能是否合理、先进。
. Q: A7 ?# q3 `, `) D8 B& c) x5 S, t( I, r/ |0 G
而CMOS是互补型金属氧化物半导体(Complementary Metal Oxide Semiconductor)的缩写,原意是指一种大规模应用于积体电路晶片制造上的原料,实际上是指应用这种材料制造出来的一种记忆体。CMOS主要是由可擦可编程唯读记忆体EPROM (Erasable Programmable Read-Only Memory)构成,它是一种可以重复利用的可编程晶片,核心内容可以在带电状态下进行擦写。CMOS的内部物理结构可以简单地分成ROM和RAM两个部分,前者安装设置专案,后者负责保存设置参数),需要电池对它进行独立供电。一旦电池被取走或者通过跳线短接,静态记忆体(SRAM)内部的参数就会恢复到预设值。0 G3 g: G" U7 O& r7 \ P
' k# |% L% M2 T' N2 a说到这里,大家应该已经明确了一个概念,CMOS是一种半导体材料制成的存储晶片,也就是我们在电脑上见到的那块小晶片。它属于硬体范畴。CMOS只能对其中的资料起到存储的作用,而不能对存储于其中的资料进行设置,要对其中的各项参数进行设置就要通过专门的设置程式——BIOS Setup。 5 e% J w* b% C( T# q
|
) p! Q1 j& f4 z+ J0 q |
|