文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院电脑入门硬件诊所死机与内存的关系
精品推荐
特别推荐
·电脑声音失真故障的处理
·防止数码照片模糊的三种方法
·软件“煲”耳机,让音质更好
·改BIOS设置,解决CMOS掉电烦恼
·ATX 电源维修方法
·开机时间清零,竟是电源在作怪
·忘记IBM笔记本密码怎么办?
·电脑死机的故障分析
·避免网络IP地址被非法的修改
·经验点滴,查看XP是否激活等
·电脑高手的140个电脑技巧
·如何降低CPU温度?
·自己动手修耳机
·笔记本电脑启动故障两则
·苹果Powerbook G4最真实测试
·常见CRT显示器问题汇集
·使硬盘长寿的维护招数
·笔记本电脑技术名词
·使用液晶显示器如何避免眼睛疲劳?
·格式化影响硬盘寿命吗?
热点TOP10
·电脑高手的140个电脑技巧
·BIOS详解
·电脑提速的新方法
·电脑故障维修判断指导大全(2)
·开机提示reboot and select proper boot device or insert boot Media in selected boot device的解决
·如何降低CPU温度?
·CPU型号大全总结
·一步成高手:终极图解内存(下篇)
·打造自己的“品牌机”——修改BIOS全屏开机画面
·格式化影响硬盘寿命吗?
·使硬盘长寿的维护招数
·电脑硬件 由新手到维修高手
·如何正确给你的笔记本电脑电池充电?
·图文详解:如何调整光驱激光头功率
·改BIOS设置,解决CMOS掉电烦恼
·使用液晶显示器如何避免眼睛疲劳?
·图文详尽解说:如何调整光驱激光头功率
·USB口供电不足,引发的移动硬盘不能使用故障
·显示器高压包改用秘技
·ATX 电源维修方法

死机与内存的关系

日期:2007年4月23日 作者: 查看:[大字体 中字体 小字体]



  从电脑出现至今就一直被死机伴随着,几乎没有谁的电脑从不遭遇死机。在使用过程中,偶尔一次死机应该算是正常现象,如果经常死机,电脑就存在一定的问题了。那么,电脑为什么会死机呢?有哪些因素会造成电脑死机呢?要搞清楚这些问题,首先要弄清楚,到底什么是死机?为什么会发生死机?

造成死机的原因是多种多样的,有软件问题,有硬件问题,不过,死机的本质都是一样的。

早在N年前,我主持某大学计算机专业本科生毕业答辩的时候,就向某学生提出过这样两个问题:
1.电脑死机的时候,CPU在干什么(或者说,CPU处于什么状态?)”
2.在计算机中,无论指令代码还是数据代码,都是用二进制来表示的,请问,CPU是如何判定某二进制代码是指令代码还是数据代码?
其实,上面两个问题的实质是一样的,主要涉及到CPU是如何取得指令和如何执行指令的,把这两个问题搞清楚了,死机的问题也就容易理解了。

首先来看看,冯.诺依曼结构的电脑是如何取得指令、又是如何执行指令的:

冯.诺依曼(1903~1957),匈牙利裔数学家,1945年戈德斯坦、勃克斯等人,联名发表了一篇长达101页纸的报告,即计算机史上著名的“101页报告”,提出了现代计算机结构的理论模型--存储程序计算机模型(Stored Program Computer),这就是今天计算机最基本的原理模型。

这种结构类型计算机工作的时候,首先必须把完成工作步骤和相关的数据用二进制代码表示出来(编写程序),然后再把它们保存在计算机的内存中,CPU依次从内存中读相关的指令代码和数据进行运算,直到完成整个运算过程并输出结果。

要完成这样的运算过程,人们在设计运算器(CPU)的时候,首先就要考虑的是,在一段内存中,CPU怎样区分指令代码和数据代码。熟悉计算机的人都清楚,指令用来确定“做什么”和“怎样做”,数据是“做”的时候需要原始数。

比如:要计算机做1+2=?中,“+”表示要做什么和怎样做,1和2则是做的时候需要的原始数。现在假设某CPU中,“+”用二进制“00000001”来表示,“1、2”分别用“00000001、00000010”来表示。那么,这段程序存入内存中就是这样的:
XXXX1:00000001
XXXX2:00000001
XXXX3:00000010              前面的XXXX1 XXXX2 XXXX3表示内存的地址

从上面可以看出,“+”指令和被加数是完全相同的,当然,这是我故意这样假设的,但是,在实际情况中,这种情况是大量存在的。在正常情况下,CPU只能把XXXX1内存中的00000001作为指令,XXXX2内存中的00000001作为被加数才能得到正确的结果。那么CPU如何才能做到不把第二个00000001也当成“+”呢?

1.人们把内存的某个地址规定为起始地址(又称为复位地址),也就是说,当计算机开机或者被强行复位(也就是机箱上那个重启动按钮按下的的时候),CPU立即跳转到这个地址中,并且把它里面的代码作为指令来执行,同时根据这个指令的长度和格式判断下一条指令在什么地方。

对于X86系列CPU(也就是现在人们常用的什么奔XX、赛XX系列),它的复位地址是FFFF0,如果表示成逻辑地址则是:FFFF:0000。对DEBUG比较熟悉的朋友或者会在一些高级语言中嵌入汇编语言的朋友可以这样做一个试验:

用DEBUG执行一条指令(这是一条无条件跳转指令):jmp FFFF:0000,或者在高级语言中嵌入这条汇编指令,执行后,你就会发现,计算机重新启动了。其实,用程序控制计算机重启的最本质的操作就是这样的。

2.给各种指令规定了相应的长度和格式。比如:某数+某数这条指令就规定:这条指令的长度是3个字节,其中第一个字节表示“+”,后面两个字节表示被加数和加数。于是,当CPU到达这个指令后,就自动把第一个代码作为指令,后面两个代码作为数据,依次类推,第4个代码就必然是指令.....

现在假设,CPU在执行指令的时候因某种原因,误把本来是数据的代码当成了指令,结果除了是计算结果出错外死机也就是必然的了。

还是以前面那个加法程序为例:当CPU把第三个代码(也就是00000010)当成了指令,而恰好这个代码是一跳转指令,CPU的执行结果将是:XXXX3--跳转--执行--跳转--执行........进入周而复始的乱条,不过注意,虽然是在乱跳,CPU却始终是在不停的正常地执行指令,所谓的“乱”是对用户而言,对CPU来说却是正常的。

还有一种情况就是,如果恰好跳转到了FFFF:0000这个地址,计算机便重新启动了。呵呵,,这下搞清楚了为什么计算机有时会“莫名其妙地重启”了把。

有朋友可能会问,内存中怎么可能有如此多的跳转指令呢?是怎么形成的呢?

计算机中的最小存储单位是字节(8个二进制位),指令功能、长度和格式也是在一个字节中规定的。因此,平均来说,每256个代码中就有可能出现一条跳转指令(8位二进制数最多表示256)。

还有一种情况:现在计算机的内存已经达到数G的存储容量,绝大多数都不可能用到这个极限,也就是说,有相当长一段区域是空白,即使内存只有数百M的计算机中也不可能把内存用完,同样存在相当数量的空白区域。特别需要注意的是,空白区域不等于里面就没有代码。因为,在数字逻辑电路中,不可能存在“没有”这种情况,即使是表示没有(叫做“空”--NULL)也是要用一个代码来表示的(NULL用00000000)来表示,所以,空白区域内的代码是“11111111”或者干脆就是一些随机代码。
[1] [2] 下一页 




上一篇:联想系列打印机自检与复位操作

下一篇:机箱前置音频接线正确连接方法

死机与内存的关系 相关文章:
·高手进阶,终极内存技术指南——完整/进阶版
·一步成高手:终极图解内存(下篇)
·血型与性的关系
·主流DDR内存芯片与编号识别
·内存不能为read written解决方法
·大容量内存的电脑提速技巧
·看内存不能为read written 解决方法
·针对小内存-WinXP内存优化法
·0X000000该内存不能为read的解决方法
·Windows XP操作系统内存性能优化技巧
死机与内存的关系 相关软件:
·死亡之屋3 内存修改器
·三国志10威力加强PK版中文版 内存+存档+剧本修改器v1.10
·中苏关系内幕纪实
·红楼梦人物关系表
·剑侠情缘外传月影传说中文版 完美内存修改器v2.0A版
·剑侠情缘外传月影传说中文版v1.01升级版 完美内存修改器v2.5A版
·AdslTime上网计时 内存注册机
·RAM Defrag(内存优化整理)V2.8.4.14 绿色汉化版
·人际关系与处世风格
·防死机卫士--CrashGuard Deluxe教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot