PCI-中断路由机制_第1页
PCI-中断路由机制_第2页
PCI-中断路由机制_第3页
PCI-中断路由机制_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业PCI中断路由机制PCI中断是可选的,中断是电平触发,低电平有效,集电极开路驱动。中断信号与PCI CLK异步,设备一旦断言为低,则要维持低电平状态,直到驱动程序清除这个中断请求。PCI中断可以为通过链的方式来共享。下文会仔细分析。1. PCI 中断的硬件组成如图1所示:在PCI 总线上中断请求信号引出脚有INTA# - INTD# 4个,单功能设备只能使用INTA#,而对于多功能设备,各功能设备可任意接至PCI 总线的四条中断申请线INTA# - INTD# 。与中断

2、密切相关的PCI配置寄存器是中断引脚寄存器(Interrupt Pin:0 x3C) 和中断线寄存器(Interrupt Line:0 x3B)。图1中断的硬件结构中断引脚寄存器(Interrupt Pin:0 x3C): 它是一个8 位的寄存器,由接口设计者根据PCI设备使用的PCI 总线中断引脚(INTA# - INTD#)来设置:如果设备使用INTA#脚来申请中断,该寄存器应写入1;如果设备使用INTB#脚来申请中断,该寄存器应写入2;如果设备使用INTC#脚来申请中断,该寄存器应写入3 ;如果设备使用INTD#脚来申请中断,该寄存器应写入4;如果设备不使用中断,该寄存器应写入0,0 x

3、05 到0 xFF为保留值。中断线寄存器(Interrupt Line:0 x3B): 对于X86 系列的PC 机,各个插槽的INTA# - INTD#引脚由主板设计者通过可编程路由器接到由主从两个8259A 组成的系统中断控制器的IRQ0 - IRQ15 引脚共计16个引脚中的未使用引脚上。中断线寄存器(Interrupt Line)用于保存中断路由信息的寄存器,在初始化和配置系统时,HOST把路由信息写入到该寄存器。在PCI 接口卡配置空间中,该寄存器的值表明设备的中断引脚( INTA# - INTD#)被连接到系统中断控制器的哪一个引脚(1RQO - IRQ15中的哪一个)上了。设备本身

4、不使用这个值,设备驱动和操作系统使用该值来决定中断的优先权和中断矢量信息, 义,值0 15 对应16个IRQ 引脚号,值255 用于表示“未知”或“没有连接到中断控制器”,值16 到254 保留。例如:某设备的INTA#被路由至IRQ3 脚,其中断线寄存器的值会设置为3。可编程中断控制器(PIC:Programmable interrupt controller) 是用来检测中断申请。如图1所示。可编程中断路由器集成在PCI/ ISA 桥芯片(南桥)中,并且提供了四个中断输入端INTA#、INTB#、INTC#、INTD#;通过路由器编程可以使其与系统中断控制器的输入端IRQi连接。INTX#

5、线怎样路由到IRQi 线上,由系统定义。如果系统的中断控制器有四个未使用的中断请求信号脚可供使用,如图1所示的IRQW,IRQX ,IRQY,IRQZ ,下面给出的路由机制可以将所有设备的中断请求均匀地分配到四条IRQ线上。设:MB = IRQ 引脚号( IRQW:0 ,IRQX:1 ,IRQY:2 ,IRQZ:3) D = 设备号I = INTX # 线号( INTA#:0 ,INTB#:1 , INTC#:2 , INTD#:3)MB = ( D + I) MOD 4在母板上的设备号在PCI设备上的中断脚在母板上的中断脚0,4,8,12,16,20,24,28INTA#IRQWINTB#I

6、RQXINTC#IRQYINTD#IRQZ1,5,9,1317,21,25,29INTA#IRQXINTB#IRQYINTC#IRQZINTD#IRQW2,6,10,1418,22,26,30INTA#IRQYINTB#IRQZINTC#IRQWINTD#IRQX3,7,11,1519,23,27,31INTA#IRQZINTB#IRQWINTC#IRQXINTD#IRQY如下图2以COM Express的PCI中断路由为例:图2 COM Express的中断路由按照上面的中断路由表,图1 设计中四个设备的七个中断的路由情况为: 设备0 的INTA#, 设备2 的INTC# 连接IRQW设备1

7、 的INTA# 连接IRQX设备2 的INTA#, 设备1 的INTB# 连接IRQY设备3 的INTA#, 设备2 的INTB# 连接IRQZ如此,通过中断脚和中断线配置寄存器实现了中断的路由和自动配置。2. PCI 中断共享的处理 系统必须为每个中断提供对应的中断服务程序,所有中断服务程序的入口地址即中断向量通常组织在一起形成一个中断入口表,在WINDOWS 操作系统中该表称为中断描述符表。 由于PCI 的中断是可以共享的,如图1所示,按照路由机制,设备0的INTA#和设备2的INTC#共享IRQW线而在中断入口表中,所有由IRQW线送来的中断中只能有一个中断,其服务程序的入口存储在系统中

8、断入口表中。那么其他中断服务程序的入口如何组织呢? 这一般应由操作系统决定,通常,如果多个设备使用同一个中断请求线IRQi,则后登记的中断入口会覆盖先登记的服务程序的入口,先登记中断的入口被存储在后登记中断的服务程序中,依次形成一条链。 按照路由机制,如果系统在建立中断入口表时,先扫描到设备0 的INTA#中断,则设备0 中断服务程序的入口地址先被写入中断入口表中IRQW对应的表项,其后又扫描到设备2 的INTC#也使用了IRQW线申请中断,系统便把设备2 的INTC#中断服务程序的入口地址写入中断入口表中IRQW对应的表项,而设备O的INTA#中断服务程序的入口地址保存在设备2的INTC#的

9、中断服务程序中,如此形成一条链。当某条IRQ 线有设备申请中断时,CPU首先转入最后登记入口的中断服务中,可查询该设备的中断请求位,若该位被置1,则执行该程序,否则找到下一个共享中断的入口,转入下一个中断服务程序执行,在该程序中再查询该设备的中断请求位,判断是否是该设备提出的中断,依次类推。如此实现了中断的共享处理。3. PCI 中断共享的实现PCI总线的中断共享由硬件与软件两部分组成。硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低;而只有当所有板卡的中断都得到处理后,中断信号才会恢复高电平。软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论