易截截图软件、单文件、免安装、纯绿色、仅160KB

Interrupt in Linux(硬件篇)—— APIC2


1.2.2 LAPIC
收到来自IOAPIC的中断消息后,LAPIC会将该中断交由CPU处理。和IOAPIC比较,LAPIC具有更多的寄存器以及更复杂的机制。但对于处理来自IOAPIC的中断消息,最重要的寄存器还是IRR、ISR以及EOI。
图1-4显示了x86平台上,IRR和ISR的格式:
 
图1-4 IRR、ISR构成
与PIC中的IRR、ISR不同的是,LAPIC的ISR、IRR均为256bit寄存器,对应x86平台上的256个中断vector,其中0~15为架构预留。
u       IRR:功能和PIC的类似,代表LAPIC已接收中断,但还未交CPU处理。
u       ISR:功能和PIC类似,代表CPU已开始处理中断,但还未完成。与PIC有所不同的是,当CPU正在处理某中断时,同类型中断如果发生,相应的IRR bit会再次置一(PIC模式下,同类型的中断被屏蔽);如果某中断被pending在IRR中,同类型的中断发生,则ISR中相应的bit被置一。这说明在APIC系统中,同一类型中断最多可以被计数两次(想不通什么意思?想不通就联想一下Linux可信信号)。超过两次时,不同架构处理不一样。对于Pentium系列CPU和P6架构,中断消息被LAPIC拒绝;对于Pentium4和Xeon系列,新来的中断和IRR中对应的bit重叠。
笔者:上图还有个TMR寄存器,即Trigger Mode Register,用于表示当前正在处理中断的触发模式。1为level,0为edge。对于level触发的中断,当软件写EOI时,会被广播到所有IOAPIC,消息中含有中断的vector,IOAPIC收到后检查自己的PRT表,把相应RTE的Remote IRR位清零。
对于IRR,x86 spec说:“当CPU准备处理中断时,IRR中最高优先级的bit被清零,ISR中对应bit被置一”。这样说不能算错,但至少不准确。根据《Multi-Processor Computer System With Interrupt Controllers Providing Remote Reading》一文中APIC的实现,只有对于edge触发的中断,ISR对应bit置一时IRR相应 bit才清零。对于level触发,IRR中的bit保留到软件写EOI,LAPIC收到IOAPIC发出的Level-deassert消息后才清零。
如果你仔细看了前面关于Remote IRR的介绍,此时一定会产生一个疑问。这里说同类型中断发生两次,会同时Pending在ISR和IRR的对应bit中。问题是,前面Remote IRR的异或逻辑保证了在写EOI前,新的中断不会发过来啊?呵呵,或许你想到答案了,这种pending两次的机制,只对edge触发中断有效。
与PIC一样,LAPIC同样需要软件写EOI来知会中断处理的完成,不同的是,LAPIC中的EOI是一个32bit寄


相关文档:

linux pppoe

手头有个ep9315的板,今天突然想起跑一下adsl上网。晚上回来就开始搞。
从10点到现在,终于能够跑起来。
给大家借鉴一下。
1.编译内核,把ppp的那些选项选上。 (我用2.6.8.1的kernel,cirrus 的patch)
2.libpcap-0.9.1 这个包是pppd需要的。
./configure CC=arm-linux-gcc CFLAGS=-msoft-float --target=arm-linu ......

让Solaris和Linux一样多彩


在Solaris上面工作有几个不方便地方:
一个是ls不能按照文件类型显示颜色;
另一个是VI也不能显现语法色彩;
这里就来说明如何解决这两个问题:
其实这两个问题都是Solaris自身所带的ls和vi版本的问题;
所以解决办法就是下载最新的ls和vim源文件包重新编译进行安装,看上去好像挺麻烦,其实就几步,很简单的:
最新的ls是在 ......

Linux定时器 详解[转]


[转]Linux定时器

核主要需要两种类型的时间:


1.

在内核运行期间持续记录当前的时间与日期,以便内核对某些对象和事件作时间标记(

timestamp

,也称为



时间戳



),或供用



户通过时间

syscall ......

轻型Linux大放光彩






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
         
Linux
世界很精彩,令人眼花缭乱。近期以来,各种轻型
Linux
版本不断登台亮相,知名的
Puppy
(小狗之名)便是一例。何故?
 
     ......

Interrupt in Linux(硬件篇)—— APIC

1.2现代的APIC
APIC虽号称现代,但也出现10几年了,PC机市场总是很晚才能接触到新的技术,前面说了,我的T42用的还是PIC呢。APIC相较于PIC来说,最大的优点是能适用于MP平台,当然,管脚多是它另一个优点。APIC由两部分组成,一个称为LAPIC(Local APIC,本地高级中断控制器),一个称为IOAPIC(I/O APCI,I/O高级中断控制 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号