位置:51电子网 » 技术资料 » 其它综合

嵌入式系统中PCI总线仲裁器的设计与实现

发布时间:2007/8/30 0:00:00 访问次数:730

来源:电子技术应用  作者:中国科学技术大学 李德升 罗玉平


摘要:描述了PCI总线仲裁的原理和仲裁算法,阐述了用可编程器件实现总线仲裁的具体方法,并实现了一个双主设备仲裁器。


关键词:PCI总线仲裁CPLD VHDL嵌入式系统


PCI(Peripheral Component Interconnect)总线是现今最为流行的工业控制总线之一。它广泛地应用在计算机中,并且由于众多厂商对PC]的良好支持,使得目前嵌入式设备中的很多解决方案都包含了PCI总线。在多主设备的PCI系统应用中,必须为各个主设备提供仲裁授权信号。很多厂家有针对性地发布了PCI仲裁逻辑的专用芯片或者集成了PCI仲裁逻辑的专用芯片,但使用不够灵活。为了使PCI设备能够更方便地应用在嵌入式系统中,本文介绍了一种基于CPLD(复杂可编程逻辑器件)的PCI总线仲裁器的设计方法。此方法可以为系统量身定制适合于系统本身的PCI总线仲裁器,而不必局限于特定芯片的要求,在体积、功能、成本等诸多方面都有很好的应用前景。


1 PCI总线仲裁简介
1.1 PCI总线的仲裁原理
PCI总线是一种共享式的总线,可以连接多个主设备,但由于数据传输的独占性,每一时刻只能由一个主设备占用总线。因此,为了有效地利用PCI总线带宽,必须设置一个总线仲裁器,按照一定的算法协调系统中各个主设备的操作。

每个具备主设备功能的PCI设备必须提供两个与仲裁有关的信号:REQ#和GNT#。其中REQ#为请求总线信号,由需要发起PCI传输事务的设备发出;GNT#为总线授权信号,由PCI总线仲裁器裁决后给出。接到GNT#信号的PCI设备将在下一次总线空闲后
开始操作。

PCI总线仲裁的裁决过程可以在PCI传输期间完成,并不占用PCI总线的带宽,这称为隐式仲裁。即需要发起PCI操作的设备可以随时发出请求REO#,PCI仲裁器立即批准该请求并给出GNT#。但是真正的传输操作一定要等到当前传输完成,即总线空闲后才可以开始。图l描述了PCI总线设备与仲裁器的关系。‘



1.2 PCI总线仲裁规则约定
(1)仲裁器的仲裁算法必须保证所有的设备都能得到授权的机会,否则将会出现某个优先级低的设备永远不能占有总线进行事务操作的情况。
(2)如果FRAME无效,GNT可以在任意时间撤消,以便服务于另一个主设备或者作为对主设备撤销REQ的响应。
(3)如果GNT信号被撤消但FRAME有信号,当前的总线正在传输数据,则操作合法。
(4)如果总线不处于空闲状态,则允许一个GNT的撤消和另一个GNT的发生在同一个周期。如果处在空闲状态,则要求一个GNT撤消到下一个GNT的发出之间必须有一个时钟周期间隔,否则可能会在AD线和PAR线上出现冲突。
(5)GNT信号的每次发出,只限于相应的总线主控器可以使用总线进行一次总线操作(一个FRAME发出到撤销)。如果该主控器需要多次总线访问,它可以保持REQ信号一直有效。仲裁器会按照特定的仲裁算法来决定是否仍判给该主设备。
(6)一个主控器可以在任意时刻撤消其REQ信号。REQ信号一旦撤消,仲裁器将认为该设备不再请求使用总线,因而撤消其GNT信号(参考上文(1))。如果一个主控器只希望做一次总线传输,则它应当在发出FRAME的同一时钟周期撤消REQ。
(7)如果当前的主控器在它的GNT信号发出后,持续16个空闲周期还没有开始总线操作,则仲裁器视其为超时,仲裁器可以在任意时刻撤消GNT信号,以便服务于另一个设备。

1.3 PCI总线仲裁的算法

目前,应用于PCI总线总裁的算法主要有固定优先级算法和动态优先级算法两种。在固定优先级算法中,各个设备的优先级是事先确定好的,仲裁器针对事先设定好的优先级为每个设备分配使用权。这种算法的缺点是:一旦PCI总线事务非常繁忙,优先级高的设备会占有总线不放,将导致优先级低的设备无法申请到总线。可见这是一种并不公平的算法,只适用于总线利用率非常低的情况。动态优先级算法是在每次仲裁授权后动态改变各个设备的优先级。在保证每个设备都有机会获得总线的情况下,优先级改变的算法可以是各种各样的。最常用的是循环优先级算法,即每次仲裁授权后将排队中的设备优先级加l。因其算法简单,且对大部分应用都十分有效,本设计采用循环优先级算法。

1.4 总线停靠
当PCI总线空闲时,一个设备从申请总线到被授权使用,最少也需要2个时钟周期,这对于PCI总线是一种浪费。因此仲裁器通常选中一个最经常占用总线的设备,在PCI总线空闲时将GNT#赋予它,这叫做总线停靠。当总线空闲时,该设备需要占用总线时可马上得到批准。


2 双主设备PCI总线仲裁器的实现
下面描述了一个具有两个设备的总线仲裁器的硬件实现,其一为TriMedia嵌入式DSPCPU PNXl300,其二为Intel i82559网

来源:电子技术应用  作者:中国科学技术大学 李德升 罗玉平


摘要:描述了PCI总线仲裁的原理和仲裁算法,阐述了用可编程器件实现总线仲裁的具体方法,并实现了一个双主设备仲裁器。


关键词:PCI总线仲裁CPLD VHDL嵌入式系统


PCI(Peripheral Component Interconnect)总线是现今最为流行的工业控制总线之一。它广泛地应用在计算机中,并且由于众多厂商对PC]的良好支持,使得目前嵌入式设备中的很多解决方案都包含了PCI总线。在多主设备的PCI系统应用中,必须为各个主设备提供仲裁授权信号。很多厂家有针对性地发布了PCI仲裁逻辑的专用芯片或者集成了PCI仲裁逻辑的专用芯片,但使用不够灵活。为了使PCI设备能够更方便地应用在嵌入式系统中,本文介绍了一种基于CPLD(复杂可编程逻辑器件)的PCI总线仲裁器的设计方法。此方法可以为系统量身定制适合于系统本身的PCI总线仲裁器,而不必局限于特定芯片的要求,在体积、功能、成本等诸多方面都有很好的应用前景。


1 PCI总线仲裁简介
1.1 PCI总线的仲裁原理
PCI总线是一种共享式的总线,可以连接多个主设备,但由于数据传输的独占性,每一时刻只能由一个主设备占用总线。因此,为了有效地利用PCI总线带宽,必须设置一个总线仲裁器,按照一定的算法协调系统中各个主设备的操作。

每个具备主设备功能的PCI设备必须提供两个与仲裁有关的信号:REQ#和GNT#。其中REQ#为请求总线信号,由需要发起PCI传输事务的设备发出;GNT#为总线授权信号,由PCI总线仲裁器裁决后给出。接到GNT#信号的PCI设备将在下一次总线空闲后
开始操作。

PCI总线仲裁的裁决过程可以在PCI传输期间完成,并不占用PCI总线的带宽,这称为隐式仲裁。即需要发起PCI操作的设备可以随时发出请求REO#,PCI仲裁器立即批准该请求并给出GNT#。但是真正的传输操作一定要等到当前传输完成,即总线空闲后才可以开始。图l描述了PCI总线设备与仲裁器的关系。‘



1.2 PCI总线仲裁规则约定
(1)仲裁器的仲裁算法必须保证所有的设备都能得到授权的机会,否则将会出现某个优先级低的设备永远不能占有总线进行事务操作的情况。
(2)如果FRAME无效,GNT可以在任意时间撤消,以便服务于另一个主设备或者作为对主设备撤销REQ的响应。
(3)如果GNT信号被撤消但FRAME有信号,当前的总线正在传输数据,则操作合法。
(4)如果总线不处于空闲状态,则允许一个GNT的撤消和另一个GNT的发生在同一个周期。如果处在空闲状态,则要求一个GNT撤消到下一个GNT的发出之间必须有一个时钟周期间隔,否则可能会在AD线和PAR线上出现冲突。
(5)GNT信号的每次发出,只限于相应的总线主控器可以使用总线进行一次总线操作(一个FRAME发出到撤销)。如果该主控器需要多次总线访问,它可以保持REQ信号一直有效。仲裁器会按照特定的仲裁算法来决定是否仍判给该主设备。
(6)一个主控器可以在任意时刻撤消其REQ信号。REQ信号一旦撤消,仲裁器将认为该设备不再请求使用总线,因而撤消其GNT信号(参考上文(1))。如果一个主控器只希望做一次总线传输,则它应当在发出FRAME的同一时钟周期撤消REQ。
(7)如果当前的主控器在它的GNT信号发出后,持续16个空闲周期还没有开始总线操作,则仲裁器视其为超时,仲裁器可以在任意时刻撤消GNT信号,以便服务于另一个设备。

1.3 PCI总线仲裁的算法

目前,应用于PCI总线总裁的算法主要有固定优先级算法和动态优先级算法两种。在固定优先级算法中,各个设备的优先级是事先确定好的,仲裁器针对事先设定好的优先级为每个设备分配使用权。这种算法的缺点是:一旦PCI总线事务非常繁忙,优先级高的设备会占有总线不放,将导致优先级低的设备无法申请到总线。可见这是一种并不公平的算法,只适用于总线利用率非常低的情况。动态优先级算法是在每次仲裁授权后动态改变各个设备的优先级。在保证每个设备都有机会获得总线的情况下,优先级改变的算法可以是各种各样的。最常用的是循环优先级算法,即每次仲裁授权后将排队中的设备优先级加l。因其算法简单,且对大部分应用都十分有效,本设计采用循环优先级算法。

1.4 总线停靠
当PCI总线空闲时,一个设备从申请总线到被授权使用,最少也需要2个时钟周期,这对于PCI总线是一种浪费。因此仲裁器通常选中一个最经常占用总线的设备,在PCI总线空闲时将GNT#赋予它,这叫做总线停靠。当总线空闲时,该设备需要占用总线时可马上得到批准。


2 双主设备PCI总线仲裁器的实现
下面描述了一个具有两个设备的总线仲裁器的硬件实现,其一为TriMedia嵌入式DSPCPU PNXl300,其二为Intel i82559网

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!