PCI系统结构(第四版) 第7章 之一

上一篇 / 下一篇  2008-01-02 19:06:56 / 个人分类:读书笔记

7章:命令

简介

   当一个主设备获得PCI总线的拥有权时,它可以起动表7-1中的任何一种交易类型。在一个交易的地址段中,命令/字节使能总线C/BE[30]用于表明命令或交易类型。表7-1也给出了主设备位于命令/字节使能总线上的设置以表明进程中的交易类型。

 

中断确认命令

   简介

   PC兼容系统中,中断可用下面三种方法之一传送给处理器。

   方法1:在只有一个处理器的系统中(图7-1),中断处理器使INTR有效给X86处理器。在此情况下,处理器用一个中断确认交易来回应。

   方法2:在多处理器系统中,以消息包形式传送给排列在APIC(高级可编程中断控制器)总线上的处理器阵列。

   方法3:在支持消息信号中断的系统中,中断以存储器写的形式传送给HOST/PCI桥。

   为了反应在INTR信号线上传送的中断请求,INTEL X86处理器会发出两个中断确认交易(注意P6家族处理器仅发送一个),读取来自中断控制器的中断向量。中断向量告知处理器哪一个中断服务路由在执行。

   背景

   在基于INTEL X86系统中,中央处理器通常就是服务中断请求的设备,此中断请求来自要求服务的子系统。在一个PC兼容系统中,要求服务的子系统通过使一个系统中断请求信号IRQ0——IRQ15为有效来发出一个请求。在南桥(图7-1)的中断控制器检测到IRQ时,它使INTR有效并传给主处理器。假设主处理器能够识别中断请求(在EFLAGS寄存器中的中断标志位设为1),处理器通过请求来自中断控制器的中断向量来回应。这是通过处理器按以下顺序执行来实现的。

1. 处理器产生一个中断确认总线周期:请注意P6家族处理器不能产生这个中断确认总线周期,处理器不输出地址,因为目标设备、中断控制器的地址含在总线周期类型中。这个总线周期的目的是命令中断控制器优先处理当前来决的请求及选择被处理的请求,在此总线周期中,处理器不希望中断控制器返回数据。

2. 处理器产生第二个中断确认总线周期,请求来自主设备的中断向量。如果是P6家族的处理器,这是处理器产生的唯一中断确认交易。处理器使BE0#有效,表明一个8位向量在低数据通道D[70]上返回。为了更精确地表示,处理器请求中断控制器将索引返回给存储器中的中断表。这就告诉处理器读哪一个表入口,表入口含有在存储器中的设备中断服务起始地址。为了回应第二个中断确认总线周期,中断控制器必须驱动中断表索引或向量,并与当前未决的最高优先权请求一起在低数据通道上返回给处理器,处理器读总线向量表并用它来确定必须执行的中断服务路由的起始地址。

   HOST/PCI桥中断确认的处理

   以下描述的是假设处理器属于P6家族,所以只产生一个中断确认交易以回应有效的INTR。当HOST/PCI桥在主机一方检测到一个中断确认的开始时,桥要求占有PCI总线并开始一个PCI中断确认交易。这个交易如图7-2

   当含有中断控制器(南桥)的PCI目标检测到中断确认交易时,它有效DEVSEL#以声明交易,然后内部产生2个背靠背中断确认脉冲给8259A中断控制器,从而模仿P6以前的X86处理器产生的双中断确认。作为回应,中断控制器在低数据通道上驱动中断向量,并使TRDY#有效以表明给起动方(HOST/PCI桥)的中断向量存在。当HOST/PCI桥采样到TRDY#IRDY#有效时,它就从低端数据通道上读取向量并终止PCI中断确认交易。在此期间桥不是将等待状态插入处理器的中断确认交易中,就是作为延迟交易来处理它,然后驱动8位中断向量到处理器低端数据通道上,并且处理器读取总线上的向量。桥用此向量编入已基于存储器的中断表索引中,以得到要执行的中断服务例程的起始地址。

 

   PCI中断确认交易

   7-2PCI中断确认交易图示。

时钟1:在地址段中,桥不能驱动一个地址到AD总线上,但必须在PAR线上随当前奇偶校验一起驱动稳定的数据到AD总线上。在地址段中,C/BE总线包含中断确认命令。

时钟2HOST/PCI桥使IRDY#有效以表明它准备读取中断向量,同时使FRAME#无效以表明这是最后的数据段。在时钟2期间,目标使TRDY#DEVSEL#无效,强置一个等待状态给第一个数据段。在目标(中断控制器)开始在AD总线上驱动请求的中断向量回应给桥之前,允许桥有足够的时间关闭它的AD总线输出驱动器是非常必要的。时钟2是交接周期。

时钟3:目标(南桥)已完成了译码地址段信息(地址和命令)并且有效DEVSEL#以声明交易。在时钟3的上升沿,HOST/PCI桥采样DEVSEL#仍无效,表明目标仍没有声明交易。作为结果,数据段延长了一个额外时钟(时钟3),在数据段上插入一个等待状态。在等待状态过程中(时钟3),目标驱动位于C/BE总线上的字节使能设置指明的数据通道的向量(在X86环境BEO#有效,但其他处理器类型要求一个32位向量),并且有效TRDY#以表明所请求的中断向量的存在。此字节使能是在第二个中断确认总线周期内,主处理器有效的字节使能的副本。

时钟4:在时钟4的上升沿,HOST/PCI桥采样到有效的DEVSEL#,表明目标已声明交易。

在时钟4的上升沿,HOST/PCI桥也采样到IRDY#TRDY#同时有效,表明数据存储在(TRDY#有效),它从AD总线读取向量。在时钟4的上升沿采样到IRDY#有效而FRAME#无效时,表明主设备准备完成交易的最后数据段(事实上只有一个)。在时钟4的上升沿完成了仅有的数据段后,主设备停止驱动使能字节并使IRDY#无效,以使总线回到空闲状态。目标使TRDY#DEVSEL#无效并停止驱动中断向量。

时钟5:在时钟5的上升沿,总线返回空闲状态(FRAME#IRDY#同时无效)HOST/PCI桥将向量返回给处理器,然后处理器从数据总线上读取向量并终止中断确认交易。   

   PowerPC PReP中断请求的处理

   PowerPC PReP兼容平台,程序员从存储器地址BFFFFFF0h执行一次4个字节存储器读操作。当HOST/PCI桥检测到这个读操作,它要求占用PCI总线并开始PCI中断确认交易。当中断控制器提供给HOST/PCI桥所请求的向量时,桥反过来提供向量给处理器并使TA#有效(传送确认)以表明它的存在。处理器读取向量并将它放进正在执行的装入指令所指的GPR中(通用目标存储器)。程序员利用向量作为索引进入中断表。

   在基于X86处理器系统中,处理器所请求的中断向量可能是4个字节而不是一个字节宽度。若是此情况,HOST/PCI桥将有效所有4个字节使能以请求32位向量。


FPGA/CPLD器件价格查询

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar