DMA方式是在外围设备和内存之间开辟直接的数据交换通路进行数据传送。外围设备通过通用总线直接访问内存,将其收到的数据写入内存或将要发送的数据读出内存。上述操作完成后,再通过中断的方式通知CPU,由CPU进行后继的处理。它的优点是除了在数据块传送开始时需要CPU的启动指令,在整个数据块传送结束时需要发中断通知CPU进行中断处理之外,不需要CPU的干涉。
可见,下载设备和微机之间通过主DMA方式进行通信,可以大大的提高数据传输速率。66MHz/64位宽的PCI总线在理想情况下可以提供近500Mb/s的传输速率,可以比较容易的达到250Mb/s的光纤下载速度,所以下载的瓶颈在于硬盘的读写速度。普通硬盘的平均读写速度在60Mb/s,采用4个盘一组的阵列盘,差不多可以达到60×4=240Mb/s的速度。
由上述数据可以看出,采用64位的PCI总线,用主DMA方式进行数据传输,下载的最大速度将大于200Mb/s。
FPGA逻辑内部结构
逻辑总体结构图如图3所示,数据流方向为:串行的光纤数据首先进入ATM(Aurora Transmit Module)模块,由ATM模块内部的Xilinx RocketIo核将串行数据转换成并行32位数据。并行数据经过FIFO进行缓存后,进入PING64模块。Pin64模块内部逻辑产生主DMA时序,并将FIFO数据送上内部总线。Pcim_lc将内部总线信号转换成PCI总线信号并送出去。各个模块的功能具体如下。
图3 FPGA内部结构图
● Pcim_lc模块为Xilinx提供的PCI64位的软核;
● Ping64模块包括和PCI64软核的接口以及主DMA处理逻辑;
● ATM为和光纤输入的接口模块,采用Xilinx提高的Aurora协议对数据进行控制,ATM只需提高用户逻辑和Aurora的接口即可;
● CRM为时钟和复位信号产生模块。