Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510PCI总线介绍1.PCI简介1.1PCI总线的历史Intel公司对PCI总线进行了定义,并于1992年6月发布了PCI技术规范1.0版本。随后,2.0修改版于1993年4月发布,2.1修改版于1995年一季度发布,最新的2.2修改版于1998年12月完成,1999年2月发布。1.2PCI总线的特点PCI全称为周边器件互连(PeripheralComponentInterconnect)。其能够配合要求彼此间快速访问或快速访问系统存储器的适配器工作,也能让处理器以接近自身总线全速的速度访问适配器。通过PCI总线的全部读写传送都可以使用突发传送(BurstTransfers)。突发传送的长度由主设备决定。在交易(Transaction)开始时,目标设备得到起始地址和交易类型,但没有传送长度。当主设备准备传送最后一个数据项时,主设备通知目标设备是否为最后一个数据项。当最后一个数据项传送后一次交易结束。PCI总线的主要特点如下:◊独立于处理器。◊每个PCI总线支持10个电气负载,即10个PCI设备。每个设备可包括8个PCI功能。◊技术规范提供对256个PCI总线的支持。◊低功耗。◊在全部读写传送中都可实现突发传送。因此,32位PCI总线支持132Mb/s的峰值传送速率;对于64位66MHz的PCI总线,峰值速度更高达528Mb/s。◊全面支持PCI总线主设备,允许同级PCI总线访问和通过PCI-PCI与扩展总线桥访问主存储器和扩展总线设备。另外,PCI主设备能够访问驻留于总线级别较低的另一个PCI总线上的目标。◊隐式总线仲裁。◊引脚较少,一个功能PCI目标设备约47个引脚,主设备也仅仅有49个引脚。◊含交易完成性校验。◊三类地址空间,包括存储器、I/O和配置地址空间。◊配置寄存器的全位级别规范,支持自动的设备检测与配置。◊软件透明,在与PCI设备或面向扩展总线的同类设备通信时,软件驱动程序使用相同的命令集和状态定义。◊有固定的连接器和插卡尺寸。1.3PCI的端接——反射波转换(Reflected-WaveSwitching)常用的方法称之为入射波转换(Incident-WaveSwitching),两者的区别实际上就类似于末端匹配和始端匹配的区别。Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510采用入射波转换时,若信号线作为传输线,则需要末端接匹配电阻,但驱动器内阻不可能为0,故其内阻上必然消耗部分电压,由于内阻很小,因此驱动器消耗的电流达几十mA量级。若仅仅考虑一条信号线,几十mA问题不大。但若一个设备同时驱动很多信号线,如32跟地址线,假定所有的驱动器都在一个封装内,则该封装必须提供A量级的瞬时电流(约1ns时间),这个浪涌电流会带来如增大EMI,在内部接线引起尖峰等很多问题。因此,若采用反射波转换,末端不端接,驱动器可以驱动部分的驱动信号,如一半,信号波前段沿着信号线传输,达到末端后由于不匹配会产生全反射,反射回来的信号于入射波叠加幅度加倍,达到要求,反射波到达始端后备低阻抗吸收,完成一次驱动。这种情况驱动器内阻上消耗电压极小,电流大大降低。缺点在于由于利用了全反射,因此信号线走线不能过长,否则总线上的设备不能保证在下一个上升沿采样到合适的驱动电平。如下图所示,PCI设备总是在PCI时钟的上升沿开始驱动信号。驱动器将信号驱动到新的逻辑状态所需要的时间为Tval,最大11ns;波前端传递到信号线另一端,反射并传递回来所需要的时间为传输延迟时间Tprop,不得大于10ns;信号在下一个时钟沿之前必须稳定的时间称为建立时间Tsu,最小为7ns;信号在采样点之后需要保持的一段时间称为保持时间Th,PCI信号的保持时间规定为0ns。2.PCI信号组2.1简介PCI信号组如下图所示。对于主设备和目标设备,◊Address&Data信号组都是必需的,且为双向端口。◊InterfaceControl信号组中,主设备时必需的有FRAME#(inout),TRDY#(in),IRDY#(out),STOP#(in),DEVSEL#(in),IDSEL是不需要的;对于从设备,必需的有FRAME#(in),TRDY#(out),IRDY#(in),STOP#(out),DEVSEL#(out),IDSEL(in)。◊ErrorReporting信号组为可选信号,PERR#作为主设备时为双向,作为从设备时仅为输出,SERR#始终为输出。◊Arbitration信号组仅用于主设备。申请总线控制权时用到。PCICLKCycle30nsat33MHzTval11nsmaxTprop10nsmaxTsu7nsmaxTitle:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510◊System为必需信号,且都为输入。◊其他信号组为可选信号。2.2信号功能简述2.2.1系统信号信号描述CLK系统时钟RST#系统复位2.2.2地址/数据总线、命令总线和字节使能如下表:信号描述AD[31:0]地址数据复用总线。C/BE#[3:0]命令或字节使能信号PAR奇偶校验信号,在每个数据段中再IRDY#有效(写交易)或TRDY#有效(读交易中)之后的一个时钟,由主设备(写交易中)或当前寻址的目标(读交易中)驱动的,用来保证奇偶校验通过AD[31:0]和C/BE[3:0],即保证37个信号的电平状态中有偶数个1。2.2.3接口控制信号如下表:Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510信号主设备目标设备描述FRAME#InoutIn周期帧信号,当前主设备驱动,指明交易的起始(第一次有效)和交易的持续时间(它持续有效的时间)。TRDY#InOut目标准备信号(TargetReady),由当前寻址目标驱动,当目标准备完成当前数据段传送时,此信号有效。IRDY#InoutIn启动方准备信号(InitiatorReady),由当前总线主设备驱动,表明主设备已经准备好完成当前数据段的传送。STOP#InoutOut停止信号,目标有效STOP#表明它希望主设备在进程中停止当前交易。IDSELNCIn初始化设备选择(InitializationDeviceSelect)信号,目标设备的输入,在访问一个设备的配置寄存器时作为一个芯片选择。LOCK#InoutIn主设备用以锁定当前交易的目标。DEVSEL#InOut设备选择(DeviceSelect)信号,当目标译码到它的地址时,需要有效设备选择信号。若主设备在启动一个交易并且在6个时钟周期没有检测到DEVSEL#信号有效,则假定目标没有反应或者不存在,导致该次交易失败。2.2.4中断请求信号共4路,分别为:INTA#,INTB#,INTC#,INTD#。2.2.5错误报告信号信号描述PERR#数据奇偶校验出错标志SERR#系统错标志2.2.664位扩展信号如下表:信号描述AD[63:32]高4位数据通道C/BE#[7:4]数据通道4到7位的字节使能REQ64#请求64位传送ACK64#确认64位传送PAR64高位双字奇偶校验2.2.7仲裁信号Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510包括REQ#和GNT#。当一个主设备请求使用PCI总线时,它会使连到仲裁器上的REQ#有效;当仲裁器决定正在请求使用的主设备应该授权控制PCI总线时,它会使连到正在请求的主设备的GNT#有效。2.2.8JTAG/边界扫描信号如下表:信号描述TCK测试时钟TDI测试输入TDO测试输出TMS测试模式选择TRST#测试复位3.配置寄存器3.1简介除主/PCI桥外,每个PCI设备必须实现PCI配置空间,使得PCI配置寄存器驻留其中。每个PCI功能拥有64个配置双字的单元,保留用于实现配置寄存器。第一个16双字的格式和用法由PCI规范定义,这个区域称为设备的首部空间。目前规范定义了三种首部格式,称为首部类型0、1、2.◊首部类型1:为了PCI-PCI桥而定义。◊首部类型2:为了PCI-CardBus桥而定义。◊首部类型0:为了用于除上述两种之外的所有设备。3.2首部类型寄存器首部类型0的格式如下表:其中,棕色是必须配置的寄存器。Byte3Byte2Byte1Byte000DeviceIDVendorID01StatusRegistorCommandRegistor02ClassCodeRevisionID03BISTHeaderTypeLatencyTimerCasheLineSize04BaseAddress005BaseAddress106BaseAddress207BaseAddress3Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP51008BaseAddress409BaseAddress510CardBusCISPoninter11SubsystemIDSubsystemVendorID12EapansionRomBaseAddress13ReservedCapabilitiesPointer14Reserved15Max_latMin_GntInterruptPinInterruptLine3.2.1设备ID和供应商ID16bit设备ID和供应商ID由设备制造商提供,表明设备类型。注意,供应商ID中值FFFF被保留,当读取一个不存在的设备配置寄存器时,返回这个值。3.2.2子系统ID和子系统供应商IDSIG分配子系统供应商ID,而供应商则提供自己的子系统ID。这些寄存器若为0则表示没有相关的子系统供应商和子系统ID。这一对寄存器的用途是显而易见的,如果我们使用了相同的PCI接口芯片,且供应商将供应商ID和设备ID硬连线,那么两个不同功能的设备必须有一种被区分开来的办法。利用这样两个寄存器,操作系统可以区分使用同样接口芯片的不同设备。3.2.3版本(RevisionID)该8bit由设备制造商分配,表示设备的版本号。3.2.4类代码寄存器一个24bit的只读寄存器。分为3个单元:基类型(bit23~16)、子类型(bit15~8)和可编程接口(bit7~0)。它代表设备的基本功能(如大容量存储控制器)、更详细的设备子类型(如IDE大容量存储控制器),以及在一些情况下寄存器制定的编程接口(如IDE寄存器组的指定格式)。3.2.5命令寄存器3.2.6状态寄存器3.2.7首部类型寄存器3.2.8其他首部寄存器3.2.8.1基地址寄存器3.2.8.2Cashe行容量寄存器3.2.8.3延迟定时器3.2.8.4BIST寄存器3.2.8.5扩展ROM基地址寄存器Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP5103.2.8.6CardBusCIS指针3.2.8.7中断引脚寄存器和中断线寄存器3.2.8.8Min_GNT寄存器:时间片请求3.2.8.9Max_Lat寄存器:优先级请求4.命令4.1命令简介C/BE#[3:0](二进制)命令类型0000中断确认0001专用周期0010IO读0011IO写0100保留01010110存储器读0111存储器写1000保留10011010配置读1011配置写1100存储器多行读1101双地址周期1110存储器行读1111存储器写和使无效4.2命令功能介绍4.2.1中断确认命令4.2.2专用周期命令4.2.3IO读和写命令4.2.4访问存储器命令4.2.6配置读和写命令4.2.7双地址周期4.2.8保留的总线命令5.读写传送5.1配置读写传送Title:PCI总线介绍Author:李世平Date:2011-4-15Ver:1.1NIP510如下图所示:在时钟2,主设备有效FRAME#,发起一次交易。在时钟3,目标设备采样到FRAME