何为“乒乓操作”?
“乒乓操作”是一个经常应用于数据流控制的处理技术。最大的特点是通过输入选择单元和输出选择单元,按照节拍、相互配合地切换, 将经过缓冲的数据流没有停顿地送到数据处理单元。如果将乒乓操作看成一个整体的模块的话,这个模块的输入数据流与输出数据流都是连续不断,没有任何停顿,因此非常适合对输入数据进行流水线式处理。也就是在遇到输入数据存在延迟,又想排除延迟所造成的影响的时候,可以使用乒乓操作。由此也可以看出,乒乓操作常常应用于流水线式算法,完成数据的无缝缓冲与处理。
乒乓操作的应用还可以节约缓冲区空间,就是可以通过比较小的缓冲空间来解决数据的无缝缓冲,而不需要一次进行大量的数据缓冲。
还可以通过巧用乒乓操作达到用低速的模块处理高速数据流的效果。
下面给出一个示例,用来表示乒乓操作。
由上图所示,设计使用两个FIFO(FIFO1和FIFO3)以乒乓操作的方式存储图像的数据。整个乒乓操作分为两个过程,当系统上电后,接收的图像数据首先存入FIFO1中,当FIFO1满后,产生写入SDRAM请求,请求应答后,将FIFO1的数据写入到SDRAM中,在FIFO1满后向SDRAM发送写请求的同时,FIFO3开始写入数据,当FIFO3满后,产生写入SDRAM的请求,请求应答后,将FIFO3中的数据写入到SDRAM。在此时,数据写入FIFO1.即在FIFO1满后将数据发送的同时往FIFO3中写入数据,当FIFO1发送完后FIFO3写满进行发送。使用两个FIFO进行轮流写入图像数据,并轮流写入SDRAM中。即实现了乒乓操作。