INTEL手册中,APIC部分阅读笔记

INTEL手册中,APIC部分阅读笔记INTEL手册中,APIC部分阅读笔记以前看手册的时候没仔细看APIC这部分,最近要用到,所以又看了下。几分钟前刚看完,趁热打铁,把有印象的东西记录一下。免得自己以后忘记,也希望对新手有所帮助。不对的地方也欢迎指正。参考资料:INTEL手册的下载连接看这里:http://biosren.com/thread-92-1-1.htmlAPIC部分在第三册A的 CHAPTER 10.正文:APIC的全写是Advanced Programmable Interrupt Controller,用来管理中断的。注意不要和ACPI(Advanced Configuration and Power Interface电源管理)搞混。APIC的前身是PIC,比如8259A.不过现在已经很少用了。APIC实际上分成2类。一类叫LOCAL APIC,直接连在PROCESSOR上,每个PROCESSOR一个。还有一类叫I/O APIC,用来管理外设过来的中断,一般一个机器里面就一个(即使是多核系统)。在INTEL IA32手册中讲的是LOCAL APIC,下面说的APIC都是指LOCAL APIC。所谓的LOCAL,应该是相对PROCESSOR而言的,因为离PROCESSOR比较近,所以叫LOCAL.LOCAL APIC可以处理以下的中断来源:1)本地相连的I/O设备。比如直接连在LINT0,LINT1管脚上的设备。不过我不知道一般什么样的设备是这么连的。2)外部的I/O设备。这些设备产生的中断先经过I/O APIC,然后再通过LOCAL APIC到达处理器。3)Inter-processor interrupts (IPIs) 处理器之间的中断。现在多处理器结构已经很常见了。当一个处理器想中断另外一个的时候,就可以用IPI。4)APIC定时器中断。APIC上自带了定时器,这个在OS中也是很常用的。5)Performance monitoring counter interrupts,性能监视计数器中断。看来INTEL还是很替软件开发人员考虑的,直接在硬件上作了个性能监视计数器。6)温度传感器中断。估计是防止CPU温度过高用的。在PENTIUM 4 AND XEON的处理器上有。7)APIC内部错误中断。APIC可以看成是一个独立的硬件,有自己的一堆寄存器,叫做local vector table or LVT。可以进行读写来控制APIC的某些特性和设置。APIC实际上又可以细分为3个版本。(这里插一句,以前只觉得软件版本特别多,对硬件没啥很深的感触。现在看看INTEL的东西,版本也不少。)最早的P6家族用的是APIC。PENTIUM 4 AND XEON 用的是xAPIC,然后还有个x2APIC。以后不知道是不是再出什么x4APIC OR x8APIC。检测APIC版本可以用CPUID指令。在xAPIC模式中,它的寄存器是通过内存映射的方式映射到一段物理地址。有一个默认值。为了防止同其他地址冲突,这个基地址又可以重新指定到另外一个地方。估计BIOS开发人员在对付APIC时会用到这个功能。在x2APIC模式中,取消了内存映射方式来读取APIC的寄存器,而是采用了MSR的方式。MSR的全写是Model-specific register。也就是每个型号特有的寄存器。这样的好处是不用再担心内存地址的冲突问题。不同的APIC模式的开启,关闭以及状态切换之间又有一些规则。如果你要自己改这些地方,就要按照规定来。同时注意在x2APIC模式下,写入寄存器的时候不保证顺序,所以要自己小心,比如用个BARRIER之类的。最后说下MSI(MESSAGE SIGNALLED INTERRUPTS). 在PCI 3.0中已经有了MSI,不过是可选的。到了PCI EXPRESS,这个就变成必须支持的了。实现的方式主要靠2个寄存器:a Message Data Register(MDR) and a Message Address Register(MAR)。当要发送MSI的时候,PCI设备往MAR写一个MDR规定好的数据即可。具体的含义可以看手册。

http://www.biosren.com/viewthread.php?tid=1940

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值