碧波液压网 欢迎你,游客。 登录 注册

一种PCI总线仲裁器的设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  随着VLSI/ULSI技术的发展,可编程逻辑器件EPLD/FPGA越来越受到人们的青睐,由于它具有集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,其应用领域不断扩大。这些器件的灵活性和通用性使得它们已成为研制和开发复杂数字系统的理想选择。在PCI总线技术规范的基础上,采用EPLD实现了高速PCI总线背板中多主控设备的总线仲裁。

  1 PCI总线的仲裁机制

  PCI总线仲裁是基于访问而不是基于时间片,也就是说,对于一个PCI总线主设备,必须为它在总线上进行的每次访问提出仲裁要求。PCI总线上采用的是并行仲裁(也叫独立请求仲裁)方案,其仲裁机制如图1所示。在这种仲裁中,每个主控器各有自己独立的总线请求线_REQ 和总线允许线_GNT 与总线仲裁器相连,相互间没有任何控制关系。PCI总线的仲裁是“隐含的”,就是说一次仲裁可以在前一次总线访问期间完成,这样就使得仲裁的具体实现不必占用PCI总线周期。当然在总线空闲时除外。

  当PCI总线进行操作时,发起者(Master)先置REQ#,当得到仲裁器(Arbiter)的许可时(GNT#),会将FRAME#置低,并在AD总线上放置Slave地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#都置低时,可以传输数据。当Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。

  在实际的PCI总线仲裁电路中,与仲裁直接有关的控制线除_REQ和_GNT外,还有_FRAME、_IRDY。此外,为了保证总线交换的同步,还应有一根总线时钟信号PCIclk和一根总线复位信号_PCIrst,如图1虚线所示。

  2 总线的缺省占用

  总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

  当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。

  所谓总线的缺省占用,就是指在当前没有设备使用总线或请求总线的情况下,允许仲裁器根据一定的方式选定一个设备作为总线缺省的拥有者,并向它发出_GNT信号。选择的方式有多种,如可为某一固定设备,也可为最后一次使用总线的设备,当然也可以指定自己(仲裁器本身)为总线缺省的拥有者。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论