PCI局部总线规范

上传人:痛*** 文档编号:113254623 上传时间:2022-06-24 格式:DOC 页数:12 大小:4.20MB
返回 下载 相关 举报
PCI局部总线规范_第1页
第1页 / 共12页
PCI局部总线规范_第2页
第2页 / 共12页
PCI局部总线规范_第3页
第3页 / 共12页
点击查看更多>>
资源描述
PCI局部总线规范目录一 简要介绍二 信号定义三 总线操作四 电器规范五 机械规范六 配置空间第一章简要介绍外围组件接口技术(Peripheral Component Interconnect PCI)是一种新型的高带宽、处理器无关的总线系统。它既可以作为中间层的总线也可以作为周边总线系统使用。与其他普通总线规范想对照,PCI 总线为高速I/O设备提供了更好的支持(比如图形适配器、网络接口控制器、磁盘控制器,等等)。现行的标准允许在33Mhz下使用64根数据线,纯传输速率可达2.11Gbps。但是PCI吸引人的地方不在于它的高速度,它适应了现代I/O设备对系统的要求,并且只需要很少的芯片就可以实现并支持其他总线系统。PCI被设计为支持各种处理器环境,所以它提供了很多通用的功能,这些功能是构筑在同步时序和中央仲裁机制基础上的。PCI局部总线是为了在高集成化外围控制设备,系统/存储器等之间提供一种交互的机制。下图是一个典型的PCI局部总线系统的结构。PCI局部总线有如下特点:高性能、低费用、易用性、耐用性、可靠性、灵活性、软件兼容性。这些特点在后面可以看出。第二章总线定义PCI能够作为32或64位总线使用。它们可以按照功能不同化为以下几组:1 系统引脚:包括时钟和重启引脚。2 地址和数据引脚:包括32条传输地址和数据的引线,其余的引线是为了配合它而使用的。3 接口控制引脚:用来保持master和target之间通信的一致性。4 仲裁引脚:和其他的PCI信号线不同,这些不是共享的数据线。每一个PCI master都有它自己的仲裁信号线来直接和ARBITOR相连接。5 错误监测引脚:用于奇偶校验和其他错误的报告。除此而外,PCI还提供了另外50条可选的信号线来支持中断、缓存、及64位扩展等功能。对于只做target 设备的PCI设备而言,至少需要47个管脚;而对于用作master的设备而言,至少需要48个管脚。下图是对target/master兼容设备管脚定义的说明。左边的管脚是必需的,右边的是可选的。第三章总线操作一 总线命令总线上的活动表现为master和target之间的信息传输和交互。当一个master得到总线的控制权后,由它来决定下一次传输的类型。在传输的地址段,C/BE信号线用于给出传输的类型命令。这些命令包括:中断确认,特殊周期,I/O读,I/O写,读内存,写内存,读配置空间,写配置空间,双地址周期 等。下面分别作简单介绍:1 中断确认中断确认用于对PCI总线上的中断控制器进行读操作,地址线没有作用,BE线用来决定中断类型的大小。2 特殊周期被master用于向一个或多个target广播消息。3 I/O读4 I/O写I/O读写用于在I/O控制器和master之间传输数据。每一个I/O设备都有它自己的地址空间。地址线用来指示一个特定的设备以保证数据传输的正确。5 读内存6 写内存内存的读写用于确认一次内存和master之间的数据传输。具体的数据格式取决于内存和缓存的具体形式。7 读配置空间8 写配置空间配置空间调配命令允许master读协和改变PCI设备的配置。每一个PCI设备可以有最多256个内置寄存器来初始化和配置。9 双地址周期 用于64位的操作。二 总线传输32位的数据的读写操作对各个主要信号线的时序提出了很高的配合要求。下面分别从读和写两个方面来说明他们的配合关系。1 读操作下图示意了当FRAME#置“1”后开始的地址段和数据段中各个数据信号之间的配合关系。2 写操作一个读操作和写操作很相似,也是当FRAME#置“1”后传输开始,但是写操作不需要回转周期,因为master提供了所有的地址和数据。数据段两个操作相同。3传输终止传输终止有两种方式:master发起的终止和target发起的终止。三 仲裁机制为了减小传输延迟,PCI仲裁机制是基于连接的而不是基于时间片的。也就是说,总线上的master必须对每一次连接做出仲裁。PCI使用一个中心仲裁机制,每一个master有一个唯一的REQ#和GNT#信号。仲裁是隐藏的,即仲裁有前一次连接发出,这样就可以不花费PCI总线周期,除非总线闲置。一个设备通过置REQ#信号来发出请求使用总线,当然这是当它有确实需要的时候。一个仲裁者可以在任何时钟周期取消一个AGENT的GNT#,一个master允许开始一个传输当它的GNT#置“1”后且总线空闲。下图示意了基本的仲裁机制,这里有两个AGENT来申请使用总线,一个仲裁者在两个AGENT之间做出调度。四 延迟PCI是一个低延迟,告诉的I/O总线。master和target在一个传输中可以加入的等待周期均有一定的限制。每一个master有一个可编程的定时器来决定它在总线忙时可以占用总线的最大时间。有了这些限制和总线仲裁顺序,总线延迟变得可以预测了。1Target延迟Target延迟是一个target在置TRDY#“1”之前需要等待的时钟周期数。2 master数据延迟master数据延迟是master用来置IRDY#“1”表示已经准备好传输数据的时钟周期数。3仲裁延迟而仲裁延迟是当master发出使用总线请求之后到总线空闲及master得到总线使用权之间的时钟周期数。这三个延迟具体的信号配合见PCI规范和附录。五 纠错功能PCI提供了奇偶校验及其它系统错误校验机制。PCI错误恢复机制能够允许AGENT从错误中恢复而不影响其他的AGENT。PCI上的奇偶校验用来判断master是否成功的寻址到了它所想要的target及是否正确的传输了数据。奇偶校验遵循以下原则:对于任何PCI传输过程,奇偶校验都是一样的。AD31:00, C/BE3:0和PAR上的“1”的个数是一个偶数。奇偶检验不是可选的,它必须被任何PCI兼容设备所支持。下图示意了一个奇偶校验操作的主要信号时序配合关系:PCI总线操作涉及到很多的信号时序要求,具体的要求见PCI时序要求附录。第四章电气特性因为此章的内容主要是对电气特性的描述,所以应结合实际问题具体研究,在此不作详细介绍。第五章机械特性因为此章主要讲述了PCI制造商的工艺要求,对于硬件设计没有很大的帮助,故在此也不作详细介绍。第六章配置空间本章定义了PCI兼容设备上的可配置寄存器的编程和使用规则。PCI配置空间的定义是为了提供一个适当的接口来满足系统配置的需要,包括:对设备重新定位(包括中断绑定)的支持;不需要用户干预的安装调试和测试;设备无关的系统地址映射表等。所有的PCI设备必须实现配置空间。多功能的设备必须为所实现的每一种功能提供配置空间。1 配置空间(Configuration Space)的组织该空间由预定义的头部分和设备相关部分组成,共有256个字节,其中与设备相关的部分因为涉及到具体的设备,在此不做讨论。预定义的头部分由设备唯一确定的域组成,分为两个部分:一开始的16个字节对所有的设备都是一样的,剩下的字节相应于设备支持的基本功能而有不同的布局,布局由0Eh处的头类型域决定。系统软件有时需要获取供应商的ID,北桥芯片必须确定的对不存在的设备做出判断,这要通过在ID返回0FFFFh达到。下图描绘了类型为00h的256字节的配置空间。所有的PCI兼容设备必须支持Vendor ID, Device ID, Command, Status, Revision ID, Class Code, Header Type 等等域,其它域则是可选的2 功能PCI大大地提高了系统的易配置性,这些是通过由PCI设备提供相应的功能来实现的。虽然寄存器的具体位的设置因设备而异,但是所有的寄存器必须能够被读写。由这些寄存器的操作要能反映以下的信息:1) 设备的标示:包括Vendor ID, Device ID等等的信息。2) 设备控制:这是由Command 寄存器来实现的,Command寄存器的具体各位的信息可以通过PCI规范查得。3) 设备状态:用来反映PCI总线上的相关事件的信息,Status寄存器的具体各位的信息也可以通过PCI规范查得。4) 基址:系统加电后,软件需要决定哪些设备存在,然后建立一个固定的地址映射表,然后决定一个设备是否有扩展ROM等。这些也都需要在配置空间中体现。3 PCI扩展ROMPCI规范提供了机制来允许设备用自身的ROM来完成特定的初始化工作。ROM可以设计成对很多不同的系统和处理器有效。PCI扩展ROM与标准ISA, EISA, MC ROM的不同在于PCI ROM总是调入RAM中来执行,这样就使得动态确定编码大小和提高运行速度成为可能。下图示意了一个可以适用于多个处理器的ROM的结构。每一个IMAGE可以适用于一种系统。4 设备驱动由两个特点使得PCI设备驱动与标准的设备驱动不同:一个是PCI设备是可以在地址空间中重新定位的。PCI设备驱动从设备的配置空间中获取映射的信息来定位设备的位置。另一个是PCI的中断是可共享的。PCI设备驱动要求支持共享中断,因为系统很可能将多个设备连接到一条中断线上。5 系统重置系统重启后,处理器需要定位BOOT代码和设备。相似地,PCI设备也需要识别固定的地址来支持系统的BOOT过程。以上就是对PCI总线规范的简要说明,该说明应该结合PCI时序操作规范和PCI规范的英文版阅读,这个简要说明仅仅起了一个指导进一步学习的作用。希望本文能够对PCI的学习有一定的帮助。盛 佳2000/9/8附录:PCI 时序操作规范以下仅是最基本的时序配合的要求,为PCI规范的第三章提供了一个快速参考。信号稳定时:1 当reset完成时,下列信号要求在CLK的正沿稳定:LOCK#,IRDY#,FRAME#,DEVSEL#,STOP#,REQ#,GNT#,REQ64#,ACK64#,SBO#,SDONE,SERR# (负沿)和PERR#.2 AD线要求在下列时钟边沿稳定:a. FRAME#置“1”后的第一个周期内,地址AD31:00要求稳定。b. 读过程中TRDY#置“1”及写过程中IRDY#置“1”后,数据AD31:00要求稳定且有效。当TRDY#和IRDY#置“1”后,AD不能改变,除非当前的数据传输完成。c. 读过程中TRDY#置“1”及写过程中IRDY#置“1”后,不要直接传输异步的数据到PCI设备上。3 C/BE线要求在下列时钟边沿稳定:a. FRAME#置“1”后的第一个周期,命令C/BE3:0要求稳定。b. 在地址段或数据段完成后的时钟周期,字节使能C/BE3:0有效和稳定,并且要求在整个数据段保持有效。4 PAR在AD31:00有效后的一个时钟周期有效5 IDSEL只有在configuration命令发出后FRAME#有效后的第一个时钟周期有效。6 RST#,INTA#,INTB#,INTC#,INTD#不要求同步master端信号:7 当FRAME#置“1”后,传输开始。8 下面是控制FRAME#和IRDY#的规则:a FRAME#和IRDY#决定总线的忙/空闲状态:当两者之一置“1”时,总线忙;否则总线空闲。b 若FRAME#置“0”,在同一个传输过程中不能重新置“1”;c 若IRDY#没有置“1”,FRAME#不能置“0”。d 如果一个master置IRDY#“1”,它不能改变IRDY#或FRAME#,除非当前的数据段结束。9 当FRAME#和IRDY#置“0”后,传输结束。10 当target发出RETRY 或DISCONNECT命令中断当前传输时,master在重复传输前必须置REQ#“0”。至少置REQ#“0”两个时钟周期。11 如果master由target的RETRY命令结束必须无条件的重复相同的命令直到结束,而如果是DISCONNECT命令就没有这个要求。target端信号:12 下面时结束传输时控制FRAME#,IRDY#,TRDY#,STOP#信号的规则。a. 当IRDY#置“1”,STOP#和TRDY#中一个置“1”后,数据段结束。b. 如果IRDY#和TRDY#都置“1”后,数据传输进行,且与STOP#的状态无关。c. 一旦target置STOP#“1”,它必须保持STOP#直到FRAME#置“0”。d. 如果target置TRDY#或STOP#“”,它不能改变DEVSEL#,TRDY#,STOP#直到当前数据段结束。e. 如果STOP#置“1”,master必须接着置IRDY#置“1”后立即置FRAME#“0”。f. 在上一个数据段结束后的一个时钟周期,TRDY#,STOP#,DEVSEL#必须置“0”,在接下来的一个时钟周期要置为高阻态。13 agent通过置DEVSEL#“1”来声明为当前传输的目标。14 在target输出使能时或之前,DEVSEL#要求置“1”。15 一旦DEVSEL#置“1”,它不能置“0”除非上一个数据段结束。数据段:16 数据有效时,数据源无条件的要求置xDRY#“1”。(IDRY#,TDRY#)17 如果IRDY# 和 TRDY# 都置“1”,数据就可以在master 和 target 之间传输。18 上一个数据段在下列时刻结束:a FRAME#置“0”,TRDY#置“1”(正常结束)或b FRAME#置“0”,STOP#置“1”(target结束)或c FRAME#置“0”及设备选择时间已过(master放弃)或d DEVSEL#置“0”,STOP#置“1”(target放弃)19 当TRDY# 和STOP# 置“0”时,target没有义务结束当前的数据段,target只是插入了等待状态。ARBITRATION20 当FRAME# 和 IRDY#置“0”及GNT#置“1”时,agent可以开始一个ACCESS21 arbitor可以随时终止一个agent的GNT#。22 GNT#可以在下列情况下终止:a 如果GNT#和FRAME#在同一个时钟周期内置“1”,总线上的传输有效,并将继续。b 如果总线不在空闲状态,一个GNT#的置“0”可以和另一个GNT#的置“1”同时进行,否则至少要间隔一个时钟周期。c 当FRAME#置“0”后,GNT#可以随时被置“0”来满足更高特权级master的要求。23 当ARBITER置agent的GNT#信号“1”且总线处于空闲状态,agent 必须使能AD31:00,C/BE3:0#,PAR的缓冲输入也要在八个PCI时钟周期内完成。延迟:24 所有的agent要求在FRAME#置“1”后的16个时钟周期内完成初始的数据段。25 target 要求在前一个数据段完成后8个时钟周期内完成下一个数据段。26 master要求在任一个数据段8个周期内置IRDY#“1”。独占请求:27 当LOCK#置“1”后,LOCK#的拥有者可以被访问。28 如果master在数据传输被RETRY终止,LOCK#必须释放。29 LOCK#只被一个agent拥有和驱动30 支持LOCK#的target 必须遵循下列原则:a 当地址段内LOCK#置“0”,target锁定了自己b 一旦锁定建立,target不会被解锁除非FRAME#和LOCK# 均置“0”,或者它发出target-ABORT命令。31 使用LOCK#的master 必须遵循下列原则:a 在一个锁定操作期间,一个master 只能得到一个资源。b 在一个锁定操作期间,16 字节是最大的资源独占单位。c 锁定操作的第一个传输必须是“读”操作。d 在地址段后的时钟周期,LOCK# 必须置“1”并保持。e 如果在数据段结束和锁定尚未建立之前有RETRY命令,LOCK#必须被释放。f 如果一次请求被target-ABORT或master-ABORT终止,LOCK#必须被释放。g 在两个连续的锁定操作之间LOCK# 至少被置“0”一个空闲周期。设备选择:32 一个target在驱动/置“1”DEVSEL#信号之前必须作完全得译码。33 target被允许处理其他target请求之前必须置DEVSEL# “1”。34 除了target-ABORT,一旦target置DEVSEL# “1”,它不能把它置“0”除非FRAME#置“0”且上一个数据段结束。奇偶校验:35 奇偶校验遵循下列规则产生:a 奇偶校验不论传输的类型都同样计算。b AD31:00,C/BE3:0#和PAR上的“1”的个数是一个偶数。c 产生奇偶校验不是可选的,它必须应用于所有的PCI 设备。36 只有损坏的数据传输的master才可以报告奇偶错误。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!