6.2 PowerPC处理器如何处理MSI中断…

本文介绍了PowerPC处理器如何处理MSI中断,尤其是MPC8572处理器的中断控制器MSIIR寄存器的角色。内容涵盖MPIC中断控制器的工作原理,MSI中断机制涉及的多个寄存器,以及系统软件初始化PCIe设备MSI机制的步骤。通过对比x86处理器,展示了PowerPC处理器在中断处理上的特点和优化。
摘要由CSDN通过智能技术生成

PowerPC处理器使用OpenPIC中断控制器或者MPIC中断控制器,处理外部中断请求。其中MPIC中断控制器基于OpenPIC中断控制器,但是作出了许多增强,目前Freescale新推出的PowerPC处理器,其中断控制器多与MPIC兼容。

值得注意的是,PowerPC处理器和x86处理器处理MSI报文的方式有较大的不同。其中x86处理器使用的机制比PowerPC处理器更为合理,但是PowerPC处理器使用的方法使用的硬件资源相对较少。本节将MPC8572处理器为例说明MSI机制的处理过程,在第6.3节介绍x86处理器如何实现MSI机制。

MPIC中断控制器是FreescalePowerPC处理器使用的通用中断控制器,目前基于E500内核的处理器,如MPC854x8572等处理器使用这种中断控制器。目前Freescale使用QorIP架构,该架构使用的中断控制器与MPIC兼容。

使用MPIC中断控制器处理MSI中断时,PCIe设备的MSI报文,其目的地址为MPIC中断控制器的MSIIR寄存器。当该寄存器被PCIe设备写入后,MPIC中断控制器将向处理器内核提交中断请求,之后处理器再通过读取MPIC中断控制器的ACK寄存器获得中断向量号,并进行相应的中断处理。这种方式与x86处理器的FSB Interrupt Message机制相比,处理器需要读取ACK寄存器,从而中断处理的延时较大。

目前FreescaleP4080处理器对MPIC中断控制器进行了优化。在P4080处理器中,MPIC中断控制器向处理器提交中断请求的同时,也向处理器内核提交中断向量,处理器内核不必读取ACK寄存器获得中断向量,从而缩短了中断处理延时。使用这种方法的效率与x86处理器使用的FSB Interrupt Message机制相当。

目前Freescale并没有完全公开P4080处理器的实现细节,因此本节仍以MPC8572处理器为例介绍PCIe设备的MSI中断请求。在MPC8572处理器中,MPIC中断控制器的拓扑结构如65所示。


6.2 <wbr>PowerPC处理器如何处理MSI中断请求


由上图所示,MPIC中断控制器可以处理内部中断请求[1]、外部中断请求,Message、处理器间中断请求和Share MSI中断请求等。而MPIC中断控制器使用Int0Int1等中断线向处理器提交这些中断请求。其中Internal InterruptsExternal Interrupts模块处理MPC8572内部和外部的中断请求,而Share MSI处理来自PCIe设备的MSI或者MSI-X中断请求。

MPIC中断控制器收到MSI报文后,将使用中断线Int0Int1或者cintn向处理器内核提交中断请求。处理器内核被中断后,将读取ACK寄存器获得中断向量,然后执行相应的中断服务例程。为此PowerPC处理器设置了一系列寄存器,如下文所示。

6.2.1 MSI中断机制使用的寄存器

PowerPC处理器设置了一系列寄存器,处理来自PCIe设备的MSI报文,其中最重要的寄存器是MSIIR寄存器。在PowerPC处理器系统中,PCIe设备Message Address寄存器中存放的值都为MSIIR寄存器的物理地址,而Message Data寄存器中存放的数据也与MSIIR寄存器相关。

PowerPC处理器系统中,MSI机制的实现过程是PCIe设备向MSIIR寄存器写入指定的数据。MPIC中断控制器发现该寄存器被写入后,将向处理器提交中断请求。处理器收到这个中断请求后,将通过读取MPIC中断控制器的ACK寄存器确定中断向量,并依此确定中断源。为此PowerPC处理器还设置了其他寄存器实现MSI中断机制。

1 MSIIR寄存器

PowerPC处理器中,MSIIR(Shared Message Signaled Interrupt Index Register)寄存器是实现MSI机制的重要寄存器。

PCIe设备对MSIIR寄存器进行写操作时,MPC8572处理器将使能MSIR0–MSIR7寄存器的相应位,从而向MPIC中断控制器提交中断请求,而中断控制器将转发这个中断请求,由处理器进一步处理。该寄存器各字段的详细描述如63所示。

 63 MSIIR寄存器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值