这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » PC 单片机与PC机程序运行的差异(瞎想)

共2条 1/1 1 跳转至

PC 单片机与PC机程序运行的差异(瞎想)

院士
2006-09-17 18:14:16     打赏
PC 单片机与PC机程序运行的差异(瞎想)



关键词: 单片机     程序     行的     差异     瞎想    

院士
2006-12-22 22:43:00     打赏
2楼
问 现象:

单片机运行的时候代码可以放到RAM中,可以放到EEPROM中,还可以放到FLASH里。它甚至可以刚才还在ram中运行着,过一会跳到了flash里去运行。而不是像pc机一样把eeprom中的代码先读到ram中,然后再ram中运行。


计算机运行时代码主要在RAM里面,而不是用它的硬盘来运行。
即使他想要运行硬盘里面有代码,也是把代码调到ram里面来之后再运行,
(这就是缺页中断后做的操作)



原因1:
访问速度的问题。
运行程序必然要频繁的访问代码,而把代码放到硬盘里必定要频繁的访问硬盘,
而cpu的执行速度和读取硬盘的速度差着好几个数量级。

原因2:
出于保护硬盘的目的
eeprom,flash在芯片中是固定的。写eeprom,flash的次数有限制,读应该没有限制,所以可以尽管去读
而访问硬盘是靠硬盘的高速运转来实现的。频繁的访问硬盘(即使只有读没有写)也会影响硬盘的寿命。 1: 有一定道理. 2: 好象错误不少... 3: 总线结构决定的。硬盘是外设,并不是真正意义上的存储器。它并不是总线上的一部分,CPU是不能直接对其内部数据单元寻址的,
而是通过IDE接口(注意叫做IDE接口,而不能叫做IDE总线)读取数据。


PC中,CPU只能从存储器中运行程序,存储器包括ROM和RAM。ROM例如主板上BIOS部分,这跟MCU系统中的FLASH中的BOOT作用是一样的。
现在的主板中的BIOS一般也是用FLASH做的,可以升级,使用刷BIOS的工具就行了,不过没必要还是别乱刷,因为如果刷的过程中,
出现错误,就不能再引导系统了(双BIOS的主板除外)。而电脑启动之后,则一般是在RAM中运行的,包括BIOS部分,也被读出放入
到RAM中,以加快运行速度。而操作系统跟应用程序,则一定是在主存中运行的,从外设硬盘中将数据读入到主存中,然后在里面运行之。 4: 上述的比较过于笼统    低速单片机的处理过程确实如楼上各位所说。但是单片机的速度提高较快,高速单片机的内部结构逐步向通用CPU靠近,高性能单片机开始外挂SDRAM,这时的单片机的执行过程就向通用CPU靠拢了。
    与单片机实现简单的可以预测的控制和计算不同,通用CPU负担很多计算量很大,而且不可预测的任务,CPU的计算能力远远超出单片机,CPu的内核速度达到了GHz数量级,但是由于高速SRAM的成本过高,只能做成CPU内部的cache等,外部存储器只能采用动态存储器(Flash存储器速度不过15MHz,远远不能适应CPU的速度)。目前存储器的速度是制约CPU性能的最大障碍,即使采用DDR RAM或是QDDR RAM,存储器的速度也不能满足CPU的接口速度要求,所以只好采用CPU内核/L1 cache /L2 cache /外部DRAM的体系,这就是通用CPU与单片机的本质区别,这样就决定了两者的执行过程不相同。CPU除了在启动时处于低速阶段可以从BIOS(Flash存储器)中执行初始化以外,一旦完成初始化,就可以提升CPU速度到额定速度,这时CPU与FLASH之间已经无法接口,只能在DRAM中或是CPU内部RAM/cache中执行程序了。
5: 感谢大家原来不能再硬盘里直接运行代码的原因是这个啊。
谢谢了

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]