百科问答小站 logo
百科问答小站 font logo



为什么显卡、声卡甚至鼠标键盘有驱动,而CPU、内存没有驱动?驱动程序又是什么? 第1页

  

user avatar   mikewolfwoo 网友的相关建议: 
      

谢邀(搞不懂为啥这么老的问题现在也有人邀请)。先说结论,严格意思上的CPU驱动和内存驱动是没有的。在答题之前我看了一下别人的答案,居然没有一个完全正确,也是奇事一件。我们来看一下为什么别的答案错了,错在哪里和正确的结论是什么。

为什么intelppm.sys不是CPU的驱动

有人说intelppm.sys是CPU的驱动,看起来的却像,它和其他驱动在设备管理器中位置完全一样:

右键点CPU,查看驱动确实能看到intelppm.sys。那为什么又说不是呢?intelppm全称是IntelProcessorPowerManagement,顾名思义,就是Intel处理器电源管理模块,它的任务十分明确,就是处理Intel CPU的省电功能的。它和BIOS报上来的ACPI SSDT表中的P State和C State一起工作,为大家在不用或者少用CPU时节省一定的电力。P State和C State的详细内容见:

它就管这么点事,别的都不管。有的答案说的中断啊,多CPU啊,X86 CPU和其他CPU不同的部分,并不是在它里面,而是在其他的地方,具体在哪,我后面再讲。它的大小也很小,只有几十K。它的名字叫Intelppm,但它不来自Intel,而是微软home made,AMD有不同的文件。它的功能单一,各种CPU (X86,ARM, MIPS)的不同并不体现在它之内,有的CPU种类干脆就没有这种驱动,所有它不是严格意义上的CPU驱动。

内存有驱动吗?

没有,内存不是即插即用设备。它是隐藏设备,在设备管理器中叫做“Motherboard Resources”,和其他PCIe Root Complex混在一起,不同好找。一个简单的办法是使用资源来查看:

红框部分就是BIOS报告给Windows的可用内存空间。我们点击其他的部分,例如PCIe Root Complex,就可以看到他们的驱动是pci.sys。那内存呢?

答案就是没有。我们知道内存大小是BIOS报告的,但是不同的内存模型是怎么处理的呢?

处理模块在哪里?

真正的处理各种CPU不同架构的程序在HAL里,HAL就是Hardware Abstraction Layer,即硬件抽象层。HAL是个dll,不同的CPU,甚至不同的中断处理架构(PIC/APIC)都有不同的HAL,支持不支持ACPI也有不同的HAL。早期Windows安装后带有很多HAL,还可以切换,后期趋近于安装后只有一个HAL。HAL的名字的信息见参考资料1。

CPU、内存等等不同而的不同操作都抽象在HAL里面,但它也并不是严格意义的驱动。

为什么CPU和内存如此不同?

CPU和内存的操作实际上都包含在Intel的IA32手册中,微软提供独一份就行了,并不要货出多门。主板上的CPU和内存的不同都被BIOS隐藏并通过一致的接口报告给了操作系统,别的程序和驱动并不要关心。这就决定了CPU和内存没有驱动。Intelppm.sys是推出了P/C State后引入了AMD和Intel对电源管理不同才新加的,原先并没有,这也从另外一个方面证明Intelppm.sys并不是CPU的驱动。

欢迎大家关注我的专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

参考资料:




  

相关话题

  Yoga14s 2021作为二奶机选酷睿还是锐龙? 
  现代中央处理器(CPU)是怎样进行分支预测的? 
  如何评价苹果计划在 Mac 上使用自产芯片取代英特尔处理器? 
  生活中有哪些必备的知识技能需要了解? 
  如何看待麒麟970理论性能超骁龙835,而游戏体验却不如835? 
  ps3的cpu算力真的比ps4 xboxone还强? 
  水冷这个温度cpu正常吗? 
  Jim Keller 有什么有趣的故事吗? 
  你在化学科普书中读到的最值得分享的知识是怎样的? 
  现在这个时间段CPU该如何去做选择? 

前一个讨论
大学考试作弊一次就要失去学位证这个处罚严重吗?
下一个讨论
不愿意讨好领导的 90 后都是怎么想的?





© 2024-09-28 - tinynew.org. All Rights Reserved.
© 2024-09-28 - tinynew.org. 保留所有权利