百科问答小站 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",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

参考资料:




  

相关话题

  老电脑还能发挥余热么? 
  Big-endian和Little-endian各有什么利弊? 
  计算机学术界是不是喜欢发明一些没什么用的概念? 
  如何看待「禁止用没学过的知识解题」这样的要求? 
  决定同时执行线程数的是逻辑核还是物理核? 
  为什么 Intel 在 10980xe 后至今没再推出 X 系芯片? 
  为何目前有eGPU(外接显卡), 而没有eCPU(外接中央处理器)? 
  为什么我们总能听到计算机图形学,而很少听到计算机音频学之类的? 
  为什么10年前不会出现980,855,a12这样性能的芯片? 
  为什么现在的芯片公司都在急需做编译器的人?这个职位是要去解决什么样的问题? 

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





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