微型计算机原理
1/4 ページ
8.4.2 PCI总线信号定义
在一个PCI应用系统中,如果某设备取得了总线控制权,就称其为"主设备";而被主设备选中以进行
通信的设备称为"从设备"或"目标节点''。对于相应的接口信号线,通常分为必备的和可选的两大类,为了
进行数据处理、寻址、接口控制、仲裁等系统功能, PCI接口要求作为目标的设备至少需要47条引脚,
若作为主设备则需要49条引脚。下面对主设备与目标设备综合考虑,并按功能分组将这些信号表示在图
8.19中。其中,必要的引脚在左边,任选的引脚在右边。
一.信号类型说明
图8.19 PCI引脚示图
为了叙述方便,将PCI信号按数传方向及驱动特性划分为五种类型,各种类型的规定 如下:
in:输入信号。
out:输出驱动信号。
t/s:表示双向三态输入/输出驱动信号。
s/t/s:持续三态(Sustained Tri-State),表示持续的并且低电平有效的三态信号。在某一时刻只
能属于一个主设备并被其驱动。这种信号从有效变为浮空(高阻状态)之前必须保证使其具有至少一个
时钟周期的高电平状态。另一主设备要想驱动它,至少要等到该信号的原有驱动者将其释放(变为三
态)一个时钟周期之后才能开始。同时,如果此信号处于持续的非驱动状态时,在有新的主设备驱动它
之前应采取上拉措施,并且该措施必须由中央资源提供。
o/d:漏极开路(Open Drain)可作线或形势允许多个设备共同使用,
二. PCI总线信号定义
PCI总线的信号线共有100根,下面按功能分组进行说明。
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-2.htm
2006-11-24
微型计算机原理
2/4 ページ
1.系统引线
CLK in:时钟输入,为所有PCI上的接口传送提供时序。其最高频率可达66MHz,最低频率一般为0
(DC),这一频率也称为PCI的工作频率。对于PCI的其他信号,除
其余信号都在CLK的上升沿有效(或采样)。
之外,
、
、
、
in:复位,用来使PCI专用的特性寄存器和定时器相关的信号恢复规定的初始状况。每当复位
时, PCI的全部输出信号一般都应驱动到第三态。
2.地址和数据引线
AD0~AD31 t/s:地址、数据多路复用的输入/输出信号。在
有效时,是地址周期;在
和
同时有效时,是数据周期。一个PCI总线的传输中包含了一个地址信号周期和一个(或多
个)数据周期。PCI总线支持突发方式的读写功能。
地址周期为一个时钟周期,在该周期中AD0~AD31线上含有一个32位的物理地址。对于I/O操作,
它是一个字节地址;若是存储器操作和配置操作,则是双字地址。
在数据周期, AD0~AD7为最低字节, AD24~AD31为最高字节。当
有效时,表示写数据稳
定有效,
有效表示读数据稳定有效。
~3 t/s:总线命令和字节使能多路复用信号线。在地址周期内,这四条线上传输的是总线命
令;在数据周期内,传输的是字节使能信号,用来表示在整个数据期中, AD0~AD31上哪些字节为有
效数据。
3.接口控制信号
时,是传输的最后一个数据周期。
s/t / s:帧周期信号。由当前主设备驱动,表示一次访问的开始和持续时间。
无效
s / t / s:主设备准备好信号。该信号有效表明发起本次传输的设备(主设备)能够完成一个
配合使用,当这两者同时有效时,才能进行完整的数据传输,否则即为等待周期。
数据期。它要与
在写周期,该信号有效时,表示有效的数据信号已在AD0~AD31中建立;在读周期,该信号有效时,表
示主设备已做好接收数据的准备。
s/t/s:从设备准备好信号。该信号有效表示从设备已做好完成当前数据传输的准备工作,
此时可进行相应的数据传输。同样,该信号要与
配合使用,这两者同时有效数据才能进行完整传
输。在写周期内该信号有效表示从设备已做好了接收数据的准备。在读周期内,该信号有效表示有效数
据已被送入AD0~AD31中,同理,
的任何一个无效时都为等待周期。
和
止当前的数据传送。
s / t / s:停止数据传送信号,该信号由从设备发出。当它有效时,表示从设备请 求主设备终
s / t / s:锁定信号。是由PCI总线上发起数据传输的设备控制的,如果有几个不同的设备在
信号的控制权只属于一个主设备(由
使用总线,但对
信号有效时,表
示驱动它的设备所进行的操作可能需要多个传输才能完成,如果对某一设备具有可执行的存储器,那么
它必须能实现锁定,以便实现主设备对该存储器的完全独占性访问。对于支持 锁定的目标设备,必须能
提供一个互斥访问块,且该块不能小于16 个字节。连接系统存储器的主桥路也必须使用
IDSEL in:初始化设备选择信号。在参数配置读写传输期间,用作片选信号。
信号标定)。当
。
s/t/s:设备选择信号,由从设备驱动,该信号有效时,表示驱动它的设备已成为当前访
问的从设备。它有效表明总线上的某一设备已被选中。
4.仲裁信号
t/s:总线请求信号。该信号一旦有效即表示驱动它的设备要求使用总线。它是一个点到点的
信号线,任何主设备都应有自己的
信号。
t /s:总线允许信号。用来向申请占用总线的设备表示其请求已获批准。这也是一 个点到点的
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-2.htm
2006-11-24
微型计算机原理
3/4 ページ
信号线,任何主设备都应有自己的
5.错误报告信号
信号。
为了能使数据可靠、完整地传输,PCI局部总线标准要求所有挂于其上的设备都应具有错误报告线。
s / t / s:数据奇偶校验错误报告信号,但是该信号不报告特殊周期中的数据奇偶 错。一个设
备只有在响应设备选择信号
和完成数据期之后,才能报告一个
。 对于每个数据接收设备,
如果发现数据有错误,就应在数据收到后的两个时钟周期将
激活。该信号的持续时间与数据期的
多少有关,如果是一个数据期,则最小持续时间为一 个时钟周期;若是一连串的数据期并且每个数据期
都有错,那么
前必须先驱动为高电平。另外,对数据奇偶错的报告不能丢失也不能推迟。
的持续时间将多于一个时钟周期。由于该信号是持续的三态信号,所以该信号在释放
o/d:系统错误报告信号。该信号用于报告地址奇偶错,特殊命令序列中的数据奇偶错,以
是漏极开路信号,由返遣错误的单元驱动,在一个PCI
及其他可能引起灾难性后果的系统错误。
时钟内有效。
求。
6.中断信号
信号的发出和时钟同步,因而满足总线上所有其他信号的建立时间和保持时间的要
中断在PCI总线上是可选用的,低电平有效,用漏极开路方式驱动。同时,此类信号的建立和撤销是
与时钟不同步的。PCI为每一个单功能设备定义一根中断线。对于多功能设备或连接器,最多可有4条中
断线。对于单功能设备,只能使用
PCI局部总线有四条中断线,定义如下:
,其余3条中断线无意义。
o/d:中断A,用于请求一次中断。
o/d:中断B,用于请求一次中断并只在多功能设备上有意义。
o/d:中断C,功能同中断B。
o/d:中断D,功能同中断B。
多功能设备上的任何一种功能都能连到任何一条中断线上。中断寄存器决定该功能用哪一条中断线
去请求中断。如果一个设备只用一条中断线,则这条中断线就称为INTA,如果该设备用了两条中断线,
那么它们就称为INTA和INTB,依此类推。对于多功能设备,可以是所有功能用一条中断线,也可以是每
种功能有自己的一条中断线,还可以是上两种情况的综合,一个单功能设备不能用一条以上的中断线去
申请中断。
系统供应商在对PCI连接器的各个中断信号和中断控制器进行连接时,其方法是随意的,可以是线
或方式、程控电子开关方式,或者是二者的组合,这就是说,设备驱动程序对于中断共享事先无法作出
任何假定,即它必须能够给任何逻辑设备提供中断。
7.高速缓存(Cache)支持信号
为了使具有可缓存功能的PCI存储器能够和贯穿写(Write-Through)或回写(Write- Back)的
Cache相配合工作,可缓存的PCI存储器应该能实现两条高速缓存支持信号作为 输入。如果可缓存的存
储器位于PCI总线上,那么连接回写式Cache和PCI的桥路必须要利用两条引脚,且作为输出,而连接贯
穿写式Cache的桥只需要实现一个信号。上述两个信号的定义如下:
in/out:双向试探返回信号(Snoop Backoff)。当其有效时,说明对某修改行的一次命中,
无效而SDONE有效时,说明PCI发起方正在访问存储器的有效行并可
所访问的数据为无效数据。当
进行高速缓存的操作。
SDONE in/out:监听完成信号(Snoop Done),表明对处理器Cache对主存的监听状态。当其
无效时,说明监听仍在进行,否则表示监听已经完成。
8. 64位总线扩展信号
如果要进行64位扩展,以下信号都要使用。
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-2.htm
2006-11-24
微型计算机原理
4/4 ページ
AD32~AD63 t / s:扩展的32位地址和数据多路复用线,在地址周期(如果使用了双地址周期DAC
命令且
有效时)这32条线上含有64位地址的高32位,否则它们是保留的;在数据周期,当
和
同时有效时,这32条线上含有高32位数据。
~7 t/s:总线命令和字节使能多路复用信号线。在数据周期,若
效时,该4条线上传输的是表示数据线上哪些字节是有意义的字节使能信号。如
同时有
和
对应第4个字
节,
上传输的是总线命令,否则这些位是保留的且不确定。
对应第5个字节。在地址周期内,如果使用了DAC命令且
信号有效,则表明
~7
s / t/s: 64位传输请求。该信号由当前主设备驱动,表示本设备要求采用64位通路传输数
据。它与
有相同的时序。
s / t / s: 64位传输认可。表明从设备将用64位传输。此信号由从设备驱动,并且和
具有相同的时序。
PAR64 t/s:奇偶双字节校验。是AD32~AD63和
~
3上是DAC命令时, PAR64将在初始地址周期之后一个时钟周期有效,并在DAC命令的第二个地址周期
~7的校验位。当
有效且
和
后的一个时钟周期失效。当
PAR64在备数据期内稳定有效,并且在
发出后的第一个时钟处失效。PAR64信号一旦有
效,将保持到数据周期完成之后的一个时钟周期。该信号与AD32~AD63的时序相同,但延迟一个时钟
周期。该信号线在任何给定的总线周期内应保证连同AD32~AD63和
~7在内的所有信号线上的
“1”的个数为偶数(偶校验)或者为奇数(奇校验)。在发送时产生而在接收时进行校验。
同时有效时,
或
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-2.htm
2006-11-24
微型计算机原理
1/5 ページ
8.4.3 PCI总线的操作
※ 总线命令
※ 命令使用规则
※ PCI总线协议
※ PCI总线的数据传输过程
一.总线命令
总线命令是由主设备发向从设备,其作用是规定主、从设备之间的传输类型,它出现 于地址周期的
3上。这里的主设备是指通过仲裁而获得总线控制权的设备;从设备是指由:
上的地址所选中的目标设备。
表8.1给出了总线编码及类型说明。其中,命令编码中的1表示高电平,0表示低电平。
1.中断应答命令
中断应答命令是一个读命令,执行主设备从申请中断的从设备中读回中断矢量的操作。
2.特殊周期命令
该命令为PCI总线提供了一个简单的信息广播机制,通报处理器的状态或在各个从设备之间传递信息。
~3上命令及AD0~A
表8.1 总线命令表
3.I/O读命令
该命令用来从一个映射到I/O地址空间的设备中读取数据。
4.1/O写命令
该命令用来向一个映射到1/O地址空间的设备写入数据。
5.保留命令
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-3.htm
2006-11-24
微型计算机原理
2/5 ページ
保留命令编码留作将来使用。PCI的任何设备都不能将它们挪作它用,任何设备也不允许对保留命令
出反应。
6.存储器读命令
该命令用来从一个映射到存储器地址空间的设备读取数据。
7.存储器写命令
该命令用来向一个映射到存储器空间的设备写入数据。
8.配置读命令
该命令用来从每个设备的配置空间读取数据。
9.配置写命令
该命令向每个设备的配置空间写入数据。
10.存储器多行读命令
该命令的作用是试图在主设备断开连接之前读取多行高速缓存数据。存储控制器应保证,只要
效,就连续不断地发存储器请求。该命令预定用于大块连续数据的传输。
11.双地址周期(DAC)
命令 该命令用于传送64位地址给支持64位寻址的设备。只支持32位寻址的目标把这种命 令当作保留
待,而对该命令不响应。
12.存储器一行读命令
该命令与存储器读命令不同之处在于它还表示主设备要求读取多于两个32位的PCI数据周期,即进行
据传送。此时,一次读一行缓存范围内所有数据,而不是一个单一的存储器周期。
13.存储器写无效命令
该命令与存储器写命令不同之处是它要保证最小的传输量是一个高速缓存的行,即主设备要在一次P
中将寻址的高速缓存行的每个字节都写入,写入后发布写无效命令,用于维护Cache一致性的写无效协议。
二.命令使用规则
所有PCI设备都是配置(读和写)命令的目标,都必须做出应答。对其他的命令则有选择地 响应。命令执
保证I/O(读和写)命令的执行顺序。有重定位功能或寄存器的目标设备 应能通过配置寄存器映射到存储空
就为没有I/O空间设备的使用提供了一种选择。当这种映射实现时,无论设备映射到I/O空间还是存储器
命令执行规则都对系统设计者 提供保证。
总线主控可以根据需要使用任选指令,目标(从设备)也可根据需要而选用指令,但如果它 选用了基本
指令,它就必须支持所有存储器命令。否则,就必须利用别名将这些为优 化性能而设的命令(存储器一行
储器多行读和存储器写无效命令),转变为基本的存储 器命令。例如,一个从设备可以不实现存储器一行
令,但是它必须能接受该命令的请求 ,并按存储器读命令来处理。同理,一个从设备可以不实现存储器写
但它必须能接受该命令的请求,并按存储器写命令来处理。
对于系统存储器的数据读写,建议在主设备支持的情况下尽量采用存储器写无效命令和存 储器行读命
果主设备确实不能支持上述优化性能的命令,可采用存储器读写命令。
对于使用存储器读命令的主设备,所有命令可进行任何长度的访问。
三. PCI总线协议
PCI的总线传输机制是突发成组传输。一个突发分组由一个地址周期和一个(多个)数据周期组成。
存储器空间和I/O空间的突发传输。这里的突发传输是指主桥(位于主处理器和PCI总线之间)可以将多个
写访问在不产生副作用的前提下合并为一次传输,一个设备通过将基址寄存器的预取位置1,来表示允许预
和合并写数据。一个桥可利用初始化时配置软件所提供的地址范围,来区分哪些地址空间可以合并,哪些不
并。当遇到要写的后续数据不可预取或者一个对任何范围的读操作时,在缓冲器的数据合并操作必须停止并
的合并结果清洗,但其后的写操作,如果是在预取范围内,便可与更后面的写操作合并,但无论如何不能与
并过的数据合并。
只要处理器发出的一系列写数据(双字)所隐含的地址顺序相同,主桥路总是可以将它们组成突发数据
于从处理器中发出的I/O操作不能被组合,所以这种操作一般只有一个数据周期。
在PCI总线中,除了
个信号都有相对于时钟前沿的建立和保持时间,在此期间不允许有信号跳动,该时间一过,信号的变化就无
了。这样的时间范围,对AD0~AD31、AD32~AD63、PAR、PAR64和IDSEL信号,只是在适当的时钟沿
之外,其他所有信号都在时钟上升沿被采
、
、
、
、
对
、
、
、
、
、
、
、
、
、
、
、
、
,在每个时钟沿都存在;对
、
~3、
~7(用作总线命令),只在
一次有 效的时钟沿存在。
~3和
~7(用作字节允许)在地址段或数据段完成后的那个时钟
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-3.htm
2006-11-24
微型计算机原理
3/5 ページ
有时间限制。
、
1. PCI总线的传输控制
、
、
和
则不受此限制。
PCI总线上所有的数据传输基本上都是由以下三条信号线控制的:
:由主设备驱动,指明一个数据传输的起始和结束。
:由主设备驱动,允许插入等待周期。
:由从设备驱动,允许插入等待周期。
一般来说, PCI总线的传输遵循如下管理规则:
(1)
空闲状态。
和
定义了总线的忙、闲状态。当其中一个有效时,总线是忙的;两个都无效时,总
(2)一旦
信号被置为无效,在同一传输期间不能重新设置。
(3)除非设置了
信号,一般情况下不能设置
信号无效。
(4)一旦主设备设置了
状态。
2. PCI的编址
信号,直到当前数据期结束为止。主设备不能改变
信号和
PCI定义了三个物理地址空间:存储器地址空间、I/O地址空间和配置地址空间,前两个是一般总线都有
空间;第三个是用以支持PCI硬件配置的特殊空间。
PCI总线的编址是分布式的,每个设备都有自己的地址译码,从而省去了中央译码逻辑。PCI支持两种
设备地址译码:正向译码和负向译码。所谓正向译码就是每个设备都监视地址总线上的访问地址是否落在它
范围内,因而速度较快。而负向译码是指该设备要接受未被其他设备在正向译码中接受的所有访问,因此,
码方式只能由总线上的一个设备来实现。由于它要等到总线上其他所有设备都拒绝之后才能译码,所以速度
然而,负向译码对于标准扩展总线这类设备是很有用的,因为这类设备必须响应一个很零散的地址空间。正
和反向译码设备都不对保留的总线命令发出
(1)I/O地址空间
响应信号。
在I/O地址空间,全部32位AD线都被用来提供一个完整的地址编码(字节地址),使得要求地址精确
一级的设备不需多等一个周期就可完成地址译码(产生
在I/O访问中, AD0~AD1这两位很重要,并要与
(2)内存地址空间
信号),也使负向地址译码节省了一个时钟
~3配合,才能进行一次有效的访问。
在存储器访问中,所有的目标设备都要检查AD0~AD1,要么提供所要求的突发传输顺序,或者执行一
备断开操作。对于所有支持突发传输的设备都应能实现线性突发性传输顺序,而高速缓存的行切换不一定实
存储器地址空间,用AD2~AD31译码得到一个双字地址的访问。在线性增长方式下,每个数据周期过后,
一个DWORD(4个字节)增长,直到对话结束。在存储器访问期间,AD0AD1的含义如下:
当AD0AD1为00时,突发传输顺序为线性增长方式; AD0AD1为01时,为高速缓存行切换方。式; A
为1X时,为保留。
(3)配置地址空间
在配置的地址空间中,要用AD2~AD7将访问落实到一个DWORD地址。当一个设备收到配置命令时,
IDSEL信号成立且AD0AD1为00,则该设备即被选为访问的目标。否则就不参与当前的对话。如果译码出来
符合某桥路的编号,且AD0AD1为01,则说明配置访问是对该桥后面的设备,即不与桥直接连接的设备。
(4)字节校正
用字节使能信号
能,使之对传输数据的实际含义和有效部分进行界定,这一功能称作字节校正或字节对齐。
(5)总线的驱动与过渡
~3来指出哪些字节带了有意义的数据,在每个数据周期内,可以自由改变字节
为了避免多个设备同时驱动一个信号到PCI总线上而产生竞争,在一个设备驱动到另 一个设备之间设
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-3.htm
2006-11-24
微型计算机原理
4/5 ページ
个过渡期,又称为交换周期。在时序图上,交换期用"→←"来表示。
在每个地址周期和数据周期,所有的AD线都必须被驱动到稳定的状态(数据),即使是在当前数据传
涉及到的字节所对应的AD线也不例外。在实际应用中,如果对功耗要求较高时,为尽量减少由于总线上信
所造成的功耗,对当前总线周期中不用的字节用与前一周期相同的数据去驱动它们。
四. PCI总线的数据传输过程
PCI的数据传输过程包括读传送、写传送、传送终止等。由于篇幅的原因,本节只介绍PCI总线上的读
(读操作)。
时序图8.20中示出了参与32传送的各种重要信号之间的关系。实线表示正被当前总线主控或目标驱动
号;虚线表示没有设备驱动的信号,但若此虚线处在基准位置时,仍然可表示它具有一个稳定的值;当三态
虚线画在高、低状态之间时,说明它的值是不稳定的(如,AD线或
线);当一实线变成连续的点画线
表明它由原来的被驱动状态变成了现在的三态;当一实线由低向高跳变后成为连续的点画线时,则说明该信
过预充电变为高电平,然后变成三态(释放)。
图8.20表示了PCI总线上的一次读操作中有关信号的变化情况。
从图中可看出,一旦
AD0~AD31上包含有效地址,
此期间, AD0~AD31线上传送的是数据,而
信号有效,地址周期就开始,并在时钟2的上升沿处稳定有效。在地址周
~3上含有一个有效的总线命令。数据期是从时钟3的上升沿处开始
线上的信息指出数据线上的哪些字节是有效的(即哪几
是当前要传输的)。要特别指出的是,无论是读操作还是写操作,从数据周期的开始一直到传输的完成,
的输出缓冲器必须始终保持有效状态。
图8.20 PCI的基本读操作
图中的
信号和
信号是由地址周期内所发地址选中的设备(从设备)提供的,但要保证
http://www.hljnzy.net/kejian/weijijiekou/second/chapter8/c2-8-4-3.htm
2006-11-24