当前位置: 首页 > article >正文

乒乓操作(Ping-Pong)

乒乓操作

“ 乒乓操作” 是一个常常应用于数据流控制的设计思想, 典型的乒乓操作方法如下图 所示:

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

其中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。

波形表示

通过乒乓操作,我们即可通过节拍相互配合,最终实现数据的无缝缓冲与发送。
简单来看就是缓冲1写,则缓冲2读;缓冲2写,缓冲1读。
在这里插入图片描述

乒乓操作优点

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

乒乓速率控制

乒乓操作是一种设计方法,可以用于多种设计结构,这里再举一个例子。

BlockA和BlockB之间有数据流通,考虑两个模块的数据速率和数据读写顺序可能不同,两个模块不能同时工作,可以应用乒乓操作处理,提高系统吞吐率。

  • 当A和B工作频率相同,读写顺序一致,在A和B中间插入一个双端口DPRAM,可以实现A和B同时工作。但当B读顺序与A写顺序相反,那么A和B也不能同时工作,需要等待DPRAM将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什么时候满或什么时候空,来进行两个时钟域数据交换。

Ping-Pong级联

        刚才讨论的仅仅是两个block之间的连接。当有多个function block进行连接时,可以在每两级之间插入一个ping-pong buffer结构,将它们一级一级连接起来,如下图所示。

               

 

 多个buffer的ping-pong

     当block A和block B之间的速率差较高时,可以使用多个buffer构成的ping-pong结构,如下图所示。

                                    

相关文章:

乒乓操作(Ping-Pong)

乒乓操作 “ 乒乓操作” 是一个常常应用于数据流控制的设计思想, 典型的乒乓操作方法如下图 所示: ​ T1周期,输入数据流1缓存到数据缓冲模块1中,如上图棕色;T2周期,输入数据流2缓存到数据缓冲模块2中&…...

微信小程序文章管理系统开发实现

概述 在内容为王的互联网时代,高效的文章管理系统成为各类平台的刚需。幽络源平台今日分享一款基于SSM框架开发的微信小程序文章管理系统完整解决方案,该系统实现了多角色内容管理、智能分类、互动交流等功能。 主要内容 一、用户端功能模块 ​​多角…...

GrassRouter 小草MULE多5G多链路聚合通信路由设备在应急场景的聚合效率测试报告及解决方案

在应急通信场景中,快速、稳定、高效的通信链路是保障救援工作顺利开展的关键。MULE(Multi-Link Unified Link Enhancement)多链路聚合路由通信设备作为一种新型的通信技术解决方案,通过聚合多条通信链路(如4G/5G、卫星…...

筑牢数字防线:商城系统安全的多维守护策略

一、构建网络安全防护屏障​ 网络安全是商城系统安全的第一道防线。企业应采用先进的防火墙技术,实时监控和过滤进出网络的流量,阻止非法访问和恶意攻击。入侵检测与防御系统(IDS/IPS)也是不可或缺的安全组件,它能够及…...

Linux阻塞与非阻塞I/O:从原理到实践详解

Linux阻塞与非阻塞I/O:从原理到实践详解 1. 阻塞与非阻塞I/O基础概念 1.1 阻塞与非阻塞简介 在Linux系统编程中,I/O操作可以分为两种基本模式:阻塞I/O和非阻塞I/O。这两种模式决定了当设备或资源不可用时,程序的行为方式。 阻…...

【MySQL】MySQL索引与事务

目录 前言 1. 索引 (index) 1.1 概念 1.2 作用 1.3 使用场景 1.4 索引的相关操作 查看索引 创建索引 删除索引 2. 索引背后的数据结构 2.1 B树 2.2 B+树的特点 2.3 B+树的优势 3. 事务 3.1 为什么使用事务 3.2 事…...

华为网路设备学习-19 IGP路由专题-路由策略

一、 二、 注意: 当该节点匹配模式为permit下时,参考if else 当该节点匹配模式为deny下时: 1、该节点中的apply子语句不会执行。 2、如果满足所有判断(if-match)条件时,拒绝该节点并跳出(即不…...

力扣-234.回文链表

题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 class Solution { public:bool isPalindrome(ListNode* head) {//快慢指针找到中间结点p1(偶数个结点…...

Spring Boot 整合 Lock4j + Redisson 实现分布式锁实战

本文基于 Spring Boot 2.7.x MyBatis Plus 3.5.9&#xff0c;演示如何通过 Lock4j 与 Redisson 实现高可靠的分布式锁方案&#xff0c;解决高并发场景下的资源竞争问题。 一、依赖配置关键点 1.1 Maven 依赖&#xff08;pom.xml&#xff09; <dependency><groupId&g…...

基于DrissionPage的表情包爬虫实现与解析(含源码)

目录 ​编辑 一、环境配置与技术选型 1.1 环境要求 1.2 DrissionPage优势 二、爬虫实现代码 三、代码解析 3.1 类结构设计 3.2 目录创建方法 3.3 图片链接获取 3.4 图片下载方法 四、技术升级对比 4.1 代码复杂度对比 4.2 性能测试数据 五、扩展优化建议 5.1 并…...

无限debugger实现原理

1. 直接调用 debugger 关键字 代码示例&#xff1a; debugger; // 手动触发调试器中断特点&#xff1a; 最简单的方式&#xff0c;直接插入 debugger 语句。若未在浏览器开发者工具中禁用断点&#xff0c;每次执行到此代码都会暂停。反制手段&#xff1a;可通过浏览器开发者…...

区间和数量统计 之 前缀和+哈希表

文章目录 1512.好数对的数目2845.统计趣味子数组的数目1371.每个元音包含偶数次的最长子字符串 区间和的数量统计是一类十分典型的问题&#xff1a;记录左边&#xff0c;枚举右边策略前置题目&#xff1a;统计nums[j]nums[i]的对数进阶版本&#xff1a;统计子数组和%modulo k的…...

全能 Sui 技术栈,构建 Web3 的未来

本文翻译自&#xff1a;FourPillarsFP&#xff0c;文章仅代表作者观点。 2025 年&#xff0c;SuiNetwork正在以一套全栈区块链策略强势出击&#xff0c;彻底打破加密行业的传统范式。正如 Mysten Labs 联合创始人 Adeniyi Abiodun 所说&#xff1a;“Sui 不只是一条区块链&…...

什么是爬虫?——从技术原理到现实应用的全面解析 V

什么是爬虫?——从技术原理到现实应用的全面解析 V 二十一、云原生爬虫架构设计 21.1 无服务器爬虫(AWS Lambda) # lambda_function.py import boto3 import requests from bs4 import BeautifulSoups3 = boto3.client(s3)def lambda_handler(event, context):# 抓取目标…...

(三) Trae 调试C++ 基本概念

调试C基本概念 一、调试基础概念1.1 调试信息格式1.2 DWARF格式和PDB格式生成(图解)1.3.典型工具链和调试信息 二、各工具链深度解析1. Clang 与 G 的 DWARF 差异 三 调试工具3.1 调试工具3.2 调试插件(Trae) 一、调试基础概念 1.1 调试信息格式 格式类型适用系统存在形式DWA…...

linux安装单节点Elasticsearch(es),安装可视化工具kibana

真的&#xff0c;我安装个es和kibana&#xff0c;找了好多帖子&#xff0c;问了好几遍ai才安装成功&#xff0c;在这里记录一下&#xff0c;我相信&#xff0c;跟着我的步骤走&#xff0c;99%会成功&#xff1b; 为了让大家直观的看到安装过程&#xff0c;我把我服务器的es和ki…...

Python项目--基于计算机视觉的手势识别控制系统

1. 项目概述 1.1 项目背景 随着人机交互技术的快速发展&#xff0c;传统的键盘、鼠标等输入设备已经不能满足人们对自然、直观交互的需求。手势识别作为一种非接触式的人机交互方式&#xff0c;具有操作自然、交互直观的特点&#xff0c;在智能家居、游戏控制、虚拟现实等领域…...

上海SMT贴片加工核心工艺与优化方案

内容概要 作为电子制造领域的核心环节&#xff0c;上海SMT贴片加工技术通过精密工艺实现元器件的高效贴装与可靠焊接。本文聚焦钢网印刷、回流焊、AOI检测等关键工艺节点&#xff0c;结合物料定位误差修正与BGA缺陷预防&#xff0c;系统阐述技术优化路径。同时&#xff0c;基于…...

RK3xxx 部分无法连接虚拟机 无法进行adb连接

我发现部分rk板子可以连接到虚拟机上&#xff0c;部分连接不上。其中尝试了一块是安卓系统的rk板子是可以连接虚拟机。但是用了linux系统的rk板子连接不上虚拟机。尝试了很多办法还是无法连接虚拟机。 然后也看到一些相关资料&#xff0c;但是太少了&#xff0c;只有这个链接提…...

Kohya-ss-gui v25.0.3 训练Flux.1 大模型命令参数

Kohya-ss-gui v25.0.3 训练Flux.1 大模型命令参数 本文是博主的训练笔记&#xff0c;这篇是记录训练Flux.1大模型的命令行参数&#xff1a; 数据结构 /app/data/Flux大模型/train/img . └── 10_skm qili├── 10x4096_4096x4096_flux.npz├── 10x4096.jpg├── 10x4096…...

26考研——存储系统(3)

408答疑 文章目录 一、存储器概述二、主存储器三、主存储器与 CPU 的连接四、外部存储器五、高速缓冲存储器六、虚拟存储器七、参考资料鲍鱼科技课件26王道考研书 八、总结复习提示思考题常见问题和易混淆知识点 一、存储器概述 文章链接: 点击跳转 二、主存储器 文章链接: …...

【prompt是什么?有哪些技巧?】

Prompt&#xff08;提示词&#xff09;是什么&#xff1f; Prompt 是用户输入给AI模型&#xff08;如ChatGPT、GPT-4等&#xff09;的指令或问题&#xff0c;用于引导模型生成符合预期的回答。它的质量直接影响AI的输出效果。 Prompt 的核心技巧 1. 明确目标&#xff08;Clar…...

Yocto meta-toradex-security layer 创建独立数据分区

By Toradex 胡珊逢 简介 Toradex 为其产品使用的软件系统如 Linux 提供了诸多的安全功能&#xff0c;例如 Secure Boot、分区加密、OP-TEE 等&#xff0c;帮助用户应对安全合规。这些功能可以通过在 Yocto Project 中添加由 Toradex 开发的 meta-toradex-securitylayer 被轻松…...

MQTT学习资源

MQTT入门&#xff1a;强烈推荐...

C# 实战_RichTextBox选中某一行条目高亮,离开恢复

C# 中控件richtextbox中某一行的条目内容高亮&#xff0c;未选中保持不变。当鼠标点击某一行的条目高亮&#xff0c;离开该条目就恢复默认颜色。 运行效果&#xff1a; 核心代码实现功能&#xff1a; //高亮指定行的方法private void HighlightLine(RichTextBox rtb,int lineI…...

深度解析:从12306看混合云架构下的高并发系统设计

作为曾参与12306余票查询系统高并发升级的技术从业者&#xff0c;笔者注意到公众对于12306底层技术常存在认知盲区。为破解这一迷思&#xff0c;特此分享十年前的架构解密文献&#xff08;该技术之前名叫 gemfire 现已晋升为Apache顶级项目Geode&#xff0c;代码库详见&#xf…...

分布式队列对消息语义的处理

在分布式系统中&#xff0c;消息的处理语义&#xff08;Message Processing Semantics&#xff09;是确保系统可靠性和一致性的关键。有三种语义&#xff1a; 在分布式系统中&#xff0c;消息的处理语义&#xff08;Message Processing Semantics&#xff09;是确保系统可靠性和…...

Servlet小结

视频链接&#xff1a;黑马servlet视频全套视频教程&#xff0c;快速入门servlet原理servlet实战 什么是Servlet&#xff1f; 菜鸟教程&#xff1a;Java Servlet servlet&#xff1a; server applet Servlet是一个运行在Web服务器&#xff08;如Tomcat、Jetty&#xff09;或应用…...

2025上海车展:光峰科技全球首发“灵境”智能车载光学系统

当AI为光赋予思想&#xff0c;汽车将会变成什么样&#xff1f;深圳光峰科技为您揭晓答案。 2025年4月23日&#xff0c;在刚刚开幕的“2025上海车展”上&#xff0c;全球领先的激光核心器件公司光峰科技举办了主题为“AI光影盛宴&#xff0c;智享未来出行”的媒体发布会&#x…...

BiliNote:开源的AI视频笔记生成工具,让知识提取与分享更高效——跨平台自动生成结构化笔记,实现从视频到Markdown的智能转化

引言:视频学习的痛点与BiliNote的解决方案 随着知识视频化趋势的加速,B站、YouTube等平台成为学习与信息获取的重要渠道,但手动记录笔记耗时低效、信息碎片化等问题依然突出。BiliNote的出现,通过AI驱动的自动化流程,将视频内容转化为结构清晰的Markdown笔记,支持截图插…...