乒乓操作


1. 什么是乒乓操作

  • T1周期,输入数据流1缓存到数据缓冲模块1中,如上图棕色;
  • T2周期,输入数据流2缓存到数据缓冲模块2中;同时将缓冲模块1中的数据送入数据流运算处理模块中,如上图蓝色。
  • T3周期,输入数据流3缓存到数据缓冲模块1中,同时将缓冲模块2中的数据送入数据流运算处理模块中,如上图绿色。
  • ...依次类推,每一阶段的读写传输完成后可使用flag信号标识,方便下一步传输的处理。

2. 乒乓操作优缺点

  • 优点
    • 没有乒乓操作时,数据首先进入存储模块,等待数据被取走送去处理模块。必须等待处理模块把数据都取走后,才能再送数据到存储模块,否则原数据会被新数据覆盖;这样存储模块和处理模块总是有一个空闲。
    • 站在整个模块的输入和输出端口看,输入的数据流和输出数据流是连续不断的。实现了数据连续的缓冲和处理。
    • 可以看成另一种流水线技术,对于传统的pipeline是对组合逻辑进行寄存器切割,是cycle级的操作。而乒乓是通过插入缓冲单元,对数据流从source流到destination的过程进行切割,是function block级的。
    • 增加系统的吞吐量,避免了存储模块和处理模块相互等待的情况。
  • 缺点
    • 面积换速度。

3. 乒乓速率控制

  • 乒乓操作是一种设计方法,可以用于多种设计结构,这里再举一个例子。
    • BlockA和BlockB之间有数据流通,考虑两个模块的数据速率和数据读写顺序可能不同,两个模块不能同时工作,可以应用乒乓操作处理,提高系统吞吐率。
    • 当A和B工作频率相同,读写顺序一致,在A和B中间插入一个双端口TPRAM,可以实现A和B同时工作。但当B读顺序与A写顺序相反,那么A和B也不能同时工作,需要等待TPRAM将A写的数据全部接收后,才可以再传给B。
      • 再加入一个SPRAM,形成乒乓结构,与前面介绍的相同,以周期为单位就可以完成两个Block之间的数据交互,且两者可同时工作。
    • 当A和B工作频率不同
      • A的工作频率高于B的工作频率,那么一段相同时间下,A可能写8个数据,而B只能读走4个数据;一段时间后,SRAM会被A的数据填满,此时A往SRAM写的速率受B读的速率限制。
      • A的工作频率低于B的工作频率,那么一段相同时间下,A可能写4个数据,而B只能读走8个数据;那么SRAM经常会被读空。
      • 有些类似跨时钟域异步FIFO的情况,所以可同样使用wptr/rptr指针来判断SRAM什么时候满或什么时候空,来进行两个时钟域数据交换。
posted @ 2023-06-15 13:09  可达达鸭  阅读(75)  评论(0编辑  收藏  举报