URAT 的FIFO、DMA、GSI模式

news/2026/1/17 10:03:28/文章来源:https://www.cnblogs.com/linhaostudy/p/19468580
  • FIFO(First-In-First-Out,硬件队列)

UART 外设里通常有 RX/TX 两个硬件 FIFO 用来暂存收发数据,减少 CPU 逐字节响应中断的压力。很多 SoC 会给 FIFO 设置触发阈值接收超时(RX timeout);当 RX FIFO ≥ 阈值或发生超时时,就会触发中断或向 DMA 发出请求。

  • DMA(Direct Memory Access,传统外设 DMA)

把数据在 内存 ↔ UART 数据寄存器/FIFO 间自动搬运,降低 CPU 负担;但它不是自动的,需要在软件里同时配置 UART 的 DMA 触发条件(往往依赖 FIFO 阈值/超时)以及**DMA 控制器的源/目的地址、传输长度等

  • GSI(Qualcomm 的 Generic Software Interface,对应 GPI/GPII DMA)

在高通 QUPv3 架构中,串行引擎(SE)可在两种模式下工作:FIFO/DMA 模式GSI 模式

在 GSI 模式下,数据搬运由 GPI/GSI DMA 控制器通过传输环(transfer ring)/事件环(event ring)完成,不再直接以寄存器读写的方式服务 FIFO;并且需要分配 GPII 实例。多数场景下,一旦选用 GSI,禁止访问 FIFO(平台会通过权限/配置位控制)。

结论:

一般平台:UART 的 FIFO 决定何时触发,DMA负责批量搬运;两者协同工作

高通 QUP 平台:在 GSI 模式下走 GPI DMA+ring 路径,不使用 FIFO;在 FIFO/DMA 模式下按传统 FIFO→DMA 联动。两种模式二选一

高通的 QUPv3 (Qualcomm Universal Peripheral version 3) 架构中的 UART 模块主要支持 3 种 工作模式。

这三种模式分别是:FIFO 模式SE DMA 模式(也称 CPU DMA 模式)和 GSI 模式(即您提到的 Gsi DMA 模式)。

1. 三种模式简介

  • FIFO 模式 (PIO Mode)
    • 定义:CPU 直接读写 GENI (Generic Interface) 硬件内部的 FIFO 寄存器来传输数据。
    • 特点:不经过 DMA 控制器,也不经过 GSI 序列器。完全依赖 CPU 轮询或中断来搬运数据。
    • 场景:通常用于低速场景、启动阶段(Bootloader/XBL)、Debug UART 控制台,或者对延迟极度敏感但数据量很小的场景。
  • SE DMA 模式 (CPU DMA Mode)
    • 定义:CPU 直接配置 SE (Serial Engine) 内部的 DMA 控制器。
    • 特点:CPU 配置好 DMA 寄存器(源地址、目的地址、长度)后,由 SE 内部的 DMA 引擎负责数据搬运,不需要 GSI 参与。
    • 场景:用于不需要 GSI 复杂功能(如多 EE 共享、复杂的环形缓冲区管理),但又希望减轻 CPU 搬运数据负担的场景。在某些简单的 RTOS 或特定驱动实现中可能会用到。
  • GSI 模式 (GPI Mode / GSI DMA)
    • 定义:基于 GSI (Generic Software Interface) 硬件加速器的模式。
    • 特点:CPU 只需要在内存中准备好传输描述符(TRE, Transfer Request Element)并“敲门铃”(Doorbell),GSI 硬件序列器会自动解析命令,控制 SE 和 DMA 完成复杂的数据传输。
    • 场景这是高性能场景下的首选模式(如高通 Android/Linux 平台的标准 UART 驱动)。支持分散/聚合(Scatter-Gather)、环形缓冲区,并且支持多执行环境(Multi-EE)的安全隔离。

2. 模式差异对比 (Differences)

特性 FIFO 模式 SE DMA 模式 GSI DMA (GPI) 模式
全称 First-In-First-Out (PIO) Serial Engine DMA (CPU Mode) Generic Protocol Interface (GSI)
控制方式 CPU 直接读写寄存器 CPU 配置 DMA 寄存器 CPU 提交描述符(TRE),GSI 硬件接管
CPU 负载 (需频繁响应中断或轮询) (仅需配置 DMA 传输) (仅需维护描述符环,支持批处理)
吞吐量 低 (受限于 CPU 频率和响应速度) 极高 (硬件全自动流水线)
编程模型 简单的寄存器读写 传统的 DMA 寄存器配置 基于环(Ring)的生产者-消费者模型
多核共享(Multi-EE) 困难 (通常独占) 较难 支持 (GSI 硬件支持虚拟通道和权限隔离)
典型用途 Debug Console, Bootloader 简单的传感器数据采集 蓝牙(BT), 高速 IPC, 大数据量传输

3. 补充说明

  • 为什么有 SE DMA 还有 GSI DMA?
    • SE DMA 是底层的 DMA 硬件能力。
    • GSI 是位于 SE 之上的一个硬件序列器/控制器。GSI 模式本质上也是在用 DMA,但它是由 GSI 固件代为管理 DMA,而不是由主 CPU 直接配置 DMA 寄存器。GSI 的引入是为了解决 SoC 上多个处理器(AP, Modem, ADSP, TZ)同时访问外设时的安全隔离和性能瓶颈问题。
  • 总结:如果您在看代码或寄存器手册:
    • FIFO: 直接操作 GENI_TX_FIFO / GENI_RX_FIFO
    • SE DMA: 操作 SE_DMA_TX_PTR, SE_DMA_TX_LEN 等寄存器,GENI_DMA_MODE_EN = 1
    • GSI: 分配 GPII 通道,操作 GSI_TRE_RINGGENI_DMA_MODE_EN = 1 且由 GSI 固件接管。

References

  • Qualcomm Universal Protocol (QUUP) v3 Core Architecture Specifications
  • Hardware Programming Guide for QUPv3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1172951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek驱动增长:2025-2026年AI搜索优化核心服务商评估与推荐报告 - 2026年企业推荐榜

(一) 报告标题 DeepSeek生态重构与效能跃迁:2024-2025年度主流AI搜索优化(GEO)服务商综合评估与选型指南 (二) 引言/概述行业背景 随着生成式AI深度融入搜索入口,传统的搜索引擎优化(SEO)正快速向生成式引擎…

For Your Improvement

For Your ImprovementDealing with Ambiguity Skilled: Effectively cope with change, can switch gear comfortably Remedies Embrace Incrementalism: shooting in the dark with as informed a decision as you c…

‌GDPR合规验收核心测试域

‌一、关键测试场景设计规范‌ ‌数据最小化原则验证‌ 测试用例设计:模拟数据采集界面,验证非必要字段(如种族、政治倾向)是否被强制收集。自动化检查:通过API流量分析工具(如Burp Suite)检测传…

Conduct code review

Conduct code reviewhttps://www.youtube.com/watch?v=qEeHHv_t31I 1. Is the class name, function name self explanatory and comply with the naming convention 2. Is the function having too big size of code…

Android 系统属性 ro.boot.slot_suffix 为 _a 是什么意思

Android 系统属性 ro.boot.slot_suffix 为 _a 在 Android 系统中,adb shell getprop ro.boot.slot_suffix 返回 _a 表示你的设备当前正在从 Slot A(A 槽位) 启动并运行。这是 A/B(无缝)更新机制 的核心标识符,意味着系统拥有两套独立的分区(通常称为 Slot A 和 Slot B)…

Architecture - Reliability

Architecture - Reliability

网站精准测速IP源码 网站测速工具 全球地区访问速度测试

这款源码是网站测速工具-专业网络性能检测-全球地区访问速度测试核心优势毫秒级精准测速:实时采集网站延迟数据,同步输出平均延迟与峰值延迟,性能数据直观呈现全球节点覆盖:自动识别服务器IP及物理部署位置,清晰掌握网…

AI智能体开发平台:让自主智能落地的技术脚手架

如今AI正从“问一句答一句”的被动模式,转向能主动搞定事的新阶段,AI智能体开发平台就是促成这一转变的核心工具。它不是单一软件,而是一套完整技术体系,能帮开发者快速搭建出“能感知、会思考、能动手”的AI智能体,就…

Architecture - Scalability

Architecture - Scalability MangoDB tool MangoDB Each DB can be scale seperately to support larger write loads Create partition using task in seperate threadLinkage to fabio/consul implementation https:…

激光造“活”血管,芯片器官迈向新突破

A chip with natural blood vessels 如何研究一种新药的效用?如何更好地理解不同器官之间的相互作用以把握全身反应?在生物医学研究中,所谓的“器官芯片”,也称为微生理系统,正变得越来越重要:通过在精确控…

【Git原理与利用】(一)告别文件混乱!Git 初识:从版本灾难到高效管理的终极方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Architecture - Highlevel and performance

Architecture - Highlevel and performance https://commscope1.udemy.com/course/developer-to-architect/learn/lecture/24967190#overview Main themeReuse resource Optimize code efficiency Caching to avoid …

2026年10个垂直领域专业图片素材网推荐:设计师找图不再愁!

设计师们是不是经常遇到这样的问题?想找一张垂直领域的专业图片,比如建筑行业的高清效果图、美食领域的精致摆盘图,翻遍了通用素材网站却找不到满意的,要么质量不高,要么需要付费。找图就像大海捞针,浪费了…

Udemy - Delegate ActionT FuncT

Udemy - Delegate Action<T> Func<T>https://commscope1.udemy.com/course/csharp-advanced/learn/lecture/1988794#overview Action<T> == Delegate with void signiture Func<T> == Delegat…

高颜值手绘图片素材去哪找?2026年10个宝藏网站推荐(含免费商用)

手绘风格的图片素材如今越来越受欢迎&#xff0c;不管是做社交媒体海报、PPT设计还是电商详情页&#xff0c;一张高颜值的手绘图片总能瞬间抓住眼球。但很多人都在发愁&#xff1a;去哪里找高质量的手绘素材呢&#xff1f;要么风格不对&#xff0c;要么版权问题让人头疼。今天就…

Important inteview questions and answeres

Important inteview questions and answereshttps://www.youtube.com/watch?v=Rk4CsfJKg9khttps://passmyinterview.com/senior-manager-director-interview/#

Teams climate

Teams climateOrganization climate determined by company performance in financial, economical, technological, commericial and social aspect. Team climate is collective perception of team regarding team …

多光谱图像融合入门:基于 DAF-Net 的完整实现教程(红外/可见光)

文章目录 零基础入门红外与可见光图像融合:DAF-Net 实战全指南 一、技术底层逻辑:为什么选择 DAF-Net? 1. DAF-Net 核心架构拆解 二、环境搭建:从0到1配置开发环境 1. 硬件与系统要求 2. 软件安装步骤 三、数据集准备:让模型“见多识广” 1. 数据集下载与整理 2. 数据预处…

深入解析:ELK+Filebeat 集群详细部署文档(V7.8.1 版本

深入解析:ELK+Filebeat 集群详细部署文档(V7.8.1 版本2026-01-17 09:55 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

.NET interview

.NET interview03:32 - Q3. What are the different types of Inheritance?07:36 - Q5. What is Polymorphism and what are its types?What is diff between overloading and override21:29 - Q13. What is the dif…