看MMF文档的时候,发现有个ping-pong buffer。
定义:
Ping-pong实质是一种数据缓冲的手段(是一种数据传输技术),能够同时利用两个数据缓冲区达到数据连续传输的目的,从而提高数据传输速率。由于单个缓冲区得到的数据在传输和处理中很容易被覆盖,而Ping-pong缓冲区的方式能够总是保持一个缓冲区的数据被利用,另一个缓冲去用于存储数据。即两个相同的对象作为缓冲区交替地被读和被写。
比较:
常规数据交换机制:项目中两个模块间交换数据时,第一个模块(上级)向另一个模块发送数据,接受模块(下级)不能马上处理完成并返回,这样上级必须等待下级处理完成才可以送新的数据,这样就会对性能产生很大的损失,影响了数据传输效率。
ping-pong buffer:
-
初始状态下,数据被写入到其中一个缓冲区(例如 ping 缓冲区)。
-
处理器或设备可以从另一个缓冲区(例如 pong 缓冲区)读取数据。
-
当处理器完成对当前缓冲区的读取操作后,它可以开始读取另一个缓冲区中的数据。
-
同时,数据生成器可以将新的数据写入空闲的缓冲区(之前的例子中为 ping 缓冲区)。
-
这样,读取操作和写入操作可以同时进行,提高了数据传输的效率和并行性。
Ping-pong buffer 的优势在于它可以实现数据的无缝传输,不需要等待传输的完成或进行同步操作。这对于需要高速数据传输和并行处理的应用非常有用,如图形渲染、音视频处理、信号处理等。