PCI总线核心工作机制分析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1引言

计算机总线是计算机各部件之间进行信息传输的公共通道。计算机系统中广泛采用总线结构,其优点是系统成本低、组态灵活、维修方便。随着视频、数据应用的大量增加,系统中各部件之间的数据吞吐量激增,对总线的带宽提出了较高的要求,传统的总线如ISA、EISA由于传输效率低下,显然不敷使用,正是基于这种背景,INTEL公司联合IBM等多家公司于1993年推出了PC局部总线标准--PCI 局部总线规范1.0,迄今为止,该标准已经演变到2.2版。

PCI局部总线因其所具有的与传统总线截然不同的突出优点,而获得极强的生命力。其最突出的优势在于:

高带宽,传输速率可高达 64bitx66M/s=528Mb/s;

高传输效率,支持突发同步传输,且传输延时低,可预测;

支持动态配置,便于系统扩展,避免系统资源冲突;

支持多总线,平台无关,即不依附于任何特定CPU,但又能为任何高性能 CPU所用;

在以下的论述中,将会看到PCI局部总线是采用何种机制,从而取得上述领先优势。

2 PCI典型系统构成要素、寻址方式及总线信号定义、信号驱动规则

2.1 PCI典型系统构成要素、寻址方式

ͼ1 PCI典型应用系统构成要素

一个典型的PCI应用系统总是包含一个主中央处理单元(HOST CPU)、内存(主要是各种类型的DRAM)、主桥及内存控制器(HOST/PCI Bridge and Memory Controller)、PCI外设或资源(即PCI Master or Target,能够申请并拥有PCI总线使用权,并发起PCI总线传输的PCI外设为PCI Master,响应PCI Master 访问的PCI外设为PCI Target)。为了提高主CPU对内存的访问效率,系统中往往还配备了高速缓存(即CACHE。所谓高速缓存,实际上就是容量小、访问速度快的内存;高速缓存相当于内存中经常被访问到的部分内存的映像,当系统中的部件访问内存时,首先要监听,即看看当前要访问的内存在高速缓存中是否有映像,如果有,则称之为命中,访问只需要对高速缓存进行即可;否则为不命中,对主存的访问照常进行)。此外,为了扩充PCI外设,可能有多于一条的总线,这时就要引入PCI/PCI 桥,用于两条PCI总线之间的连接,桥在实际的总线传输过程中既可以充当Target也可以充当Master。如果系统要兼容传统外设,如ISA 或EISA外设,就有必要引入PCI/ISA 或PCI/EISA桥,用于PCI总线与传统总线ISA or EISA 的连接。所谓桥,实际上相当于不同总线之间的“翻译”,桥存在的必要性是,不同总线上的外设之间要互相利用彼此的资源,它们之间存在互动。当然,PCI总线中还少不了中央资源,或

称系统功能(Central resources or system functions),用于提供总线仲裁、公用信号驱动等公共的总线功能。PCI总线构成要素图如图1所示。

总线是各系统部件传递信息的公共通道,要实现信息的有序流动,必须首先解决总线上外设的识别问题,也就是外设的编址与寻址问题。PCI总线系统中存在三个地址空间:内存地址空间、I/O地址空间和配置地址空间。每个PCI外设都具有 256字节大小的有特定结构的配置空间,系统初始化时,系统初始化软件会对每个配置空间进行读写,从而完成对每个PCI外设的资源动态分配,将每个外设唯一的映射到一定的内存地址空间或I/O地址空间或兼而有之(显然,这种映射可以用一个基址和一个上限来唯一确定)。PCI总线的基本传输类型称之为“突发”(Burst),这种总线传输是基于地址和数据时分复用的同步传输。它一般包括三个阶段:同步标志传输期(同时也是地址传输期)、一个或多个数据传输期、传输结束期,数据期之间可以插入等待状态。当总线上某个Master发起一次传输时,每个具有Target功能的PCI外设都会对地址传输期中的地址进行局部译码,如果访问地址落在所映射的内存或地址空间内,则该外设认为自己是Target,从而会在地址期后1到3个时钟周期内发出确认信号DEVSEL#表示参与本次传输;否则不然;这种在1到3个时钟周期内完成译码的译码方式,称称之为正向译码;如果译码在正向译码没有相应的响应的情况下于地址期后3个时钟后才进行并完成的,称之为负向译码,负向译码方式只适用于PCI总线桥。关于内存或I/O映射是如何完成的,见后文配置机制的详细分析。2.2 PCI总线信号定义及信号驱动规则

ͼ1 PCI总线信号

如图2所示,PCI局部总线规范定义了100根信号线,用于处理总线的数据、地址、总线仲裁、接口控制以及系统功能。对于一个PCI Master 而言,至少需要49根信号线,而对于一个PCI Target 而言,至少需要47根信号线。所有信号线按驱动类型来分,都分属于以下五种类型:焈 IN:输入,该类信号只作输入信号用。

焈OUT:输出,该类信号只作输出用。

焈T/S:该类信号是双向三态输入输出信号。

焈S/T/S:该类信号低电平有效,变为高阻之前必须有至少一个系统时钟宽度的高电平期,另一PCI 外设(Master 或Target) 要对该类信号重新进行驱动之前,其高阻期至少要持续一个时钟周期。前后两次驱动之间的间隔区,称之为交换期,在以后的图示当中,用两个相背的弧形箭头表示。当该类信号持续处于非驱动状态时,必须由系统提供上拉。

焈O/D :该类信号必须以线或的方式相连,该类信号无效时必须作上拉处理。

下面将依据信号功能分组,从每个信号的用途到其驱动规则作简明扼要的综合性的说明,其中交代了信号变化的规则,体现了相关的PCI协议,这将是后面文中分析的基础。

2.2.1系统信号定义和驱动规则

CLK IN:PCI总线系统时钟,频率范围从0到33MHZ再到66MHZ。PCI总线是同步总线,除信号RST#、INTA#、INTB#、INTC#、 INTD#外,所有信号皆在系统时钟上升沿处被采样(#表示该信号低电平有效),在下降沿被驱动。

RST IN:复位信号。除诸如配置器中规定了复位状态的寄存器外,系统中所有寄存器都必须在RST有效时复位到明确的状态。RST有效时,系统中所有输出信号一般都须驱动到三态或由支持总线功能的系统资源驱动到指定电平。

2.2.2地址和数据信号定义和驱动规则

AD[31::00] T/S :地址和数据复用输入输出三态信号组,FRAME#有效时相应的第一个时钟周期为地址期(如果是双地址总线操作且REQ64#无效,则是两个时钟周期),此期间该组信号线上是32bit宽的物理地址,由Master驱动;对于I/O而言,这是一个字节地址,对于配置空间或内存空间而言,这是一个DWORD数据的最低位字节的地址(如果PCI外设地址的步进(Stepping)驱动被使能,则地址期可能延长直至使能信号消失;步进驱动是一种支持弱输出驱动的机制,允许驱动能力弱的信号在几个时钟周期后达到稳定)。如果当前的总线操作是一个读操作,且如果TRDY#有效,则该组信号线上是有效的读数据,而如果当前的总线操作是写操

相关文档
最新文档