免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zx_wing

《Interrupt in Linux(硬件篇)》(1楼有更新 2008.5.3) [复制链接]

论坛徽章:
0
发表于 2008-04-28 15:22 |显示全部楼层

回复 #29 zx_wing 的帖子

一共才16个地址,如果15个被LAPIC用掉了,一个被IOAPIC用了,如何表示广播呢?我想错了,我一直以为会为广播保留地址:)

论坛徽章:
0
发表于 2008-04-28 16:25 |显示全部楼层
下了   回头慢慢研究  完了再请教~~~

论坛徽章:
0
发表于 2008-04-28 16:59 |显示全部楼层
好贴是要顶的!
顶!

论坛徽章:
0
发表于 2008-04-28 17:12 |显示全部楼层
原帖由 jiangqiangq 于 2008-4-28 16:59 发表
好贴是要顶的!
顶!

这个不会是yunhong老大吧

论坛徽章:
0
发表于 2008-04-28 17:57 |显示全部楼层
原帖由 zx_wing 于 2008-4-28 14:21 发表

IRR是指PIC的IRR吗?
看来我看的还是不仔细啊,内核邮件列表有人说对于edge中断,即使mask掉,也会被pending住,在unmask的时候发给CPU。看来就是这个机制保证ISA接PIC不丢中断了。
补充的好,又搞清楚一个 ...

  这个问题也是上次和你讨论的疑惑之一啊,貌似这样确实可以解决edge trigger的中断丢失问题。

论坛徽章:
0
发表于 2008-04-28 18:14 |显示全部楼层
拜读一下

论坛徽章:
0
发表于 2008-04-28 18:38 |显示全部楼层
这样,就避免多打断CPU一次。更为先进的APIC,例如IA64平台的SAPIC,就有中断批处理的功能,减少因每次中断而引起的上下文切换开销。也是类似道理。


中断批处理是不是中断计数?中断次数到一定数量才向cpu发起一次处理请求。

论坛徽章:
0
发表于 2008-04-28 18:50 |显示全部楼层
原帖由 rtcontrol 于 2008-4-28 18:38 发表


中断批处理是不是中断计数?中断次数到一定数量才向cpu发起一次处理请求。

不是。
SAPIC里面有个IVR寄存器,读它可以得到当前需要处理中断的vector,每处理完一个就写一个EOI,就像下面的伪代码表示的:

  1. while ( (vec=read_IVR()) !=0 )
  2. {
  3.        handle_interrupt(vec);
  4.        wirte_EOI(vec)
  5. }
复制代码

当在处理一个中断时,其它中断可以pending住,处理完后通过读IVR处理下一个,直到完成。
这样,只用一次中断时的上下文切换,就可以处理接下来的所有中断。
而不用像x86一样,处理完一次后iret后,CPU又被中断,再处理 …… 节省上下文切换的开销。

论坛徽章:
0
发表于 2008-04-28 18:50 |显示全部楼层
原帖由 dengcainiao 于 2008-4-28 17:57 发表

  这个问题也是上次和你讨论的疑惑之一啊,貌似这样确实可以解决edge trigger的中断丢失问题。

我已经在首页作为补充内容更新了,看来应该在标题上写出来。

论坛徽章:
0
发表于 2008-04-28 19:48 |显示全部楼层
仰慕啊!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP