tag 标签: 9054

相关博文
  • 热度 19
    2015-1-15 09:56
    1808 次阅读|
    0 个评论
    PCI9054    C 模式下的数据传输方式 C 模式下的数据传输分为直接数据传输方式( Direct Data Transfer Modes )与 DMA 方式。直接数据传输方式又分为 Target 与 Initiator 方式,所以 C 模式下这三种数据传输方式,对应了 PCI 的三种数据通信。     1  、 Target 方式 CPU 与 PCI 设备( 9054 )通信,对应了 Target 方式。这种方式又叫程序 IO 方式, CPU 通过执行程序(调用 API )实现对 PCI 设备的访问。 假设访问 9054 , CPU 在 HOST 总线( FSB ,前端总线)上发起一个指向 9054 地址存储器或 IO 端口读写的总线周期, HOST 桥对地址进行译码,由于发起的地址映射于 9054 的地址空间, HOST 桥请求仲裁 PCI 总线的使用权,获得总线后,将 CPU 的该 HOST 总线周期转换并生成一个 PCI 存储器或 IO 读写周期。 PCI 总线上的所有设备都对该地址进行译码,只有 9054 认领该事务,成为该事务的目标。 PCI 总线上的 MASTER 设备( HOST 桥)与 SLAVE 设备( 9054 )之间传送数据。 2 、 Initiator 方式 PCI 设备与 PCI 设备直接通信,对应了 9054 的 Initiator 方式,准确的说是 9054 作为 MASTER 访问 PCI 总线上的其它设备。 比如 9054 访问 PCI 总线上的以太网设备, PCI 总线上的 MASTER 设备( 9054 )申请总线,经总线仲裁器( HOST 桥)仲裁后获得 PCI 总线。 9054 启动一个 PCI 事务(比如存储器读事务),指向以太网映射于 PCI 设备地址空间中的地址,以太网设备识别该地址,认领此总线周期,成为该事务的目标。然后 9054 与以太网设备通过 PCI 总线协议通信。 3 、 DMA 方式 PCI 设备与主存之间的数据通信,可以采用程序 IO 方法,也可以用 DMA 方式实现。 如果使用程序 IO 传送,当 PCI 设备需要传送数据时,它产生中断通知 CPU , CPU 执行设备中断服务程序( ISR ),申请 PCI 总线,从该 PCI 设备中将数据读入 CPU 寄存器中,然后再申请 PCI 总线,将其寄存器中的的数据写入主存。显然,每一个数据传输都要产生两个总线周期,再加上中断时间,所以效率很低。 PCI 设备与主存之间的数据通信,效率较高的方式是 DMA 方式。假设 9054 与主存进行 DMA 通信, 9054 是一个总线主设备, HOST 桥为从设备。首先 9054 申请总线并获得总线使用权,然后在 PCI 总线上启动一个 PCI 事务,指向主存在 PCI 地址空间中的映射地址(由于主存没有直接挂在 PCI 总线上,所以它是通过 HOST 桥把地址映射到 PCI 总线上的)。 HOST 桥译码该地址,认领此总线周期,成为该事务的目标,然后 9054 传输数据到 HOST 桥。同时, HOST 桥又生成一个主存总线周期,与主存传递数据。最后, 9054 设备产生一个中断知 CPU 数据传送已经完成。 转自:http://www.cnblogs.com/spider33/articles/2393079.html