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

网站提示危险网站黑龙江省建设集团网站

网站提示危险网站,黑龙江省建设集团网站,开拓网站建设,网站建设业务提成目录 一、什么是DMA#xff1f;为什么需要DMA#xff1f; 二、DMA分类 2.1 Block DMA 2.2 Scatter-Gather DMA 2.3 Ring buffer DMA 三、实际案例 3.1 STM32微处理器 3.1.1 Block DMA 3.1.2 Scatter-Gather DMA 3.1.3 使用场景举例#xff1a; 3.1.4 配置与实现 …目录 一、什么是DMA为什么需要DMA 二、DMA分类 2.1 Block DMA 2.2 Scatter-Gather DMA 2.3 Ring buffer DMA 三、实际案例 3.1 STM32微处理器 3.1.1 Block DMA 3.1.2 Scatter-Gather DMA 3.1.3 使用场景举例 3.1.4 配置与实现 3.2 FPGA 3.2.1 FPGA中DMA的实现方式 3.2.1.1 IP核集成 3.2.2.2 自定义DMA控制器 3.2.2 AXI DMA IP 3.2.3 XDMA 一、什么是DMA为什么需要DMA DMA 技术是Direct Memory Access的缩写其意思是“存储器直接访问”。它是指一种高速的数据传输操作允许在外部设备和存储器之间直接读写数据既不通过CPU也不需要CPU干预。DMA 是所有现代计算机的重要特色它允许不同速度的硬件设备进行沟通而不需要依于中央处理器的大量中断负载。否则中央处理器需要从来源把每一片段的数据复制到寄存器然后把它们再次写回到新的地方。在这个时间里中央处理器就无法执行其它的任务。 DMA 是用硬件实现存储器与存储器之间或存储器与 I/O 设备之间直接进行高速数据传输。使用 DMA 时CPU 向 DMA 控制器发出一个存储传输请求这样当 DMA 控制器在传输的时候CPU 执行其它操作DMA完成后必须以合理的方式通知CPU那么现有的方式主要依赖中断和轮询两种模式。在高性能下更倾向于使用轮询或者半轮询机制。 为了发起传输事务DMA 控制器必须得到以下数据DMA三要素 源地址数据被读出的地址 目的地址数据被写入的地址 传输长度应被传输的字节数 DMA 存储传输的过程如下 为了配置用 DMA 传输数据到存储器处理器发出一条 DMA 命令 DMA 控制器把数据从外设传输到存储器或从存储器到存储器而让 CPU 腾出手来做其它操作。 数据传输完成后向 CPU 发出一个中断来通知它 DMA 传输可以关闭了。 二、DMA分类 一般情况下大家都只需要从使用层面来理解如何使用DMA但是在本文中我们希望从底层原理的角度来详细理解DMA的设计和原理。目前常见的几种DMA设计大致可以分成1Block DMA2Scatter-Gather DMA3Ring buffer DMA 2.1 Block DMA Block DMA 也被称为阻塞式DMA。Block DMA在一次DMA操作中仅能操作一块物理地址连续的数据块。Block DMA 的驱动程序和硬件交互时具有阻塞式的特点驱动程序在启动一次 DMA 操作后直到本次操作完成前不能下发下一次的操作请求。这样一来当驱动程序准备数据时DMA 处于空闲状态当 DMA 处于操作转态时驱动程序处于空闲状态因此其性能较低。 工作原理 初始化CPU设置DMA控制器的源地址数据来源、目的地址数据去向、以及要传输的数据块大小。 传输启动DMA控制器接管控制权开始数据传输过程。在这个过程中CPU不需要进行数据移动的操作。 连续传输DMA控制器连续地从源地址读取数据并将其写入目标地址直到整个数据块被传输完成。 传输结束一旦数据块传输完成DMA控制器会通过中断信号通知CPU传输已经结束CPU可以处理其他任务或对传输的数据进行后续处理。 2.2 Scatter-Gather DMA Scatter-Gather DMA 是一种高级的直接存储器访问DMA技术它允许从非连续的内存区域scatter读取数据并将其写入到一个连续的内存区域或者从一个连续的内存区域读取数据并分散gather到多个非连续的内存位置。这种技术在处理多任务和高数据量的系统中非常有用尤其是在内存布局不是连续分配的情况下。 Scatter-Gather DMA也称分散聚集式 DMA分散聚集指的是它在一次 DMA 传输中将分散在主存中的多块内存空间通过链表的方式聚集在一起从而实现在一次 DMA 传输中进行多次 DMA 操作。 与 Block DMA 相比SG DMA 在一次 DMA 传输中的操作流程更加复杂SG DMA 首先发起一次 DMA 操作读取内存中的链表结构 而后依次处理链表中指向的内存空间数据。可以看到在小数据量的单次内存访问中 SG DMA 反而会带来额外的开销。但是在数据量较大时Scatter-Gather DMA 可以提高主机中内存的利用率以及 DMA 传输的效率因为 SG DMA 将多次 Block DMA 中 的软件硬件交互合并为一次大大降低了由于多次中断带来的延迟和处理器消耗。 工作原理 描述符表CPU或DMA控制器构建一个描述符表这个表包含了多个内存块的地址和大小这些内存块可能分布在物理内存的不同位置。 DMA读写DMA控制器根据描述符表中的信息从多个源内存地址读取数据并将其合并写入单一目标地址或者将数据从单一源地址读取后分散写入多个目标内存地址。 中断处理数据传输完成后DMA控制器通常会发出中断信号通知CPUCPU随后进行后续处理。 2.3 Ring buffer DMA Ring buffer DMA环形缓冲区直接存储器访问是一种常用于流数据处理的DMA技术特别适用于那些数据持续生成并需要周期性处理的场景如音视频流处理、网络数据包处理等。环形缓冲区是一个逻辑上首尾相连的循环数据结构这种结构使得DMA可以持续、高效地管理和传输数据而不需要频繁的中断或复杂的内存管理操作。 Ring Buffer DMA 也被称为队列式 DMA。RB DMA 引擎中的各个队列是独立的并且绑定特定的 CPU 核心以发挥多核心处理器的体系结构优势。此外RB DMA 引擎还优化了主机和 DMA 之间的交互流程RB DMA 使用描述符队列来完成主机与 DMA 之间的命令发布和事件通知。 特性/模式Block DMAScatter-Gather DMARing Buffer DMA描述一次性传输整个数据块从非连续的内存区域收集数据到连续区域反之亦然。使用环形缓冲区循环传输数据适用于流数据处理。数据连续性需要数据在内存中连续。适用于非连续内存区域的数据。数据循环在固定大小的缓冲区内不需连续性。效率高因为是连续快速传输。高特别是在内存碎片化时。高通过减少中断提升处理速度。CPU负担低在DMA传输期间CPU可以执行其他任务。低DMA控制器管理所有内存访问。低自动处理数据流动减少CPU干预。应用场景大文件传输、大数据块处理。数据库系统、文件系统、网络通信。音视频流处理、网络数据包处理、实时系统。内存管理简单因为操作连续内存。复杂需要高级的内存管理技术。中等固定大小的缓冲区需事先配置。同步机制通常不需要复杂同步DMA结束后中断CPU。需要精确控制数据源和目标内存区域的同步。需要同步机制防止写入读取操作冲突。 三、实际案例 3.1 STM32微处理器 在STM32微控制器中通常使用的DMA模式包括Block DMA和Scatter-Gather DMA。这些模式被广泛应用于多种外设与内存间的数据传输任务例如ADC模拟数字转换器、USART通用同步异步接收发射器、SPI串行外设接口等。 3.1.1 Block DMA Block DMA在STM32中非常常见用于处理如SPI或USART等接口的大块数据传输。当数据需要在内存与外设间快速移动时Block DMA可以一次性传输整个数据块提高传输效率且减少CPU的负担。例如从USART接收大量数据并存储到RAM的场景中Block DMA可以连续传输所有数据而无需CPU介入。 3.1.2 Scatter-Gather DMA Scatter-Gather DMA在STM32中主要用于更复杂的数据管理任务特别是当数据源分布在内存的不同区域时。这种模式允许DMA控制器从多个内存位置收集数据并发送到单一或多个目标或者相反。STM32的DMA控制器支持多个通道和流这使得Scatter-Gather操作更为高效特别是在处理如网络数据包或多路ADC数据时。 3.1.3 使用场景举例 Block DMA在需要从内存缓冲区向外设如LCD或音频接口连续发送大量数据时使用。Scatter-Gather DMA在收集来自不同传感器的多个ADC通道数据到单一缓冲区或者从一个缓冲区将数据分发到多个外设时使用。 3.1.4 配置与实现 STM32通过其硬件库HAL或底层库LL提供对DMA的支持使得开发者可以根据需求配置DMA传输类型。配置通常涉及设定源地址、目标地址、传输方向、传输大小、优先级等参数。这些配置可以通过STM32CubeIDE工具链或直接通过编程实现具体取决于应用的复杂度和性能要求。总结来说STM32中的DMA使用情况较为灵活可以根据外设类型和具体应用需求选择合适的DMA模式。 3.2 FPGA 在FPGA现场可编程门阵列中DMADirect Memory Access的使用是一种高效的数据管理技术尤其在处理高速数据流和大量数据传输时。FPGA通过DMA可以直接从内存读取或写入数据而无需CPU干预这样大大提高了数据处理的速度和系统的总体性能。 3.2.1 FPGA中DMA的实现方式 3.2.1.1 IP核集成 FPGA通常使用现成的DMA IP核来实现高效的数据传输。这些IP核可以通过FPGA开发工具如Xilinx的Vivado或Intel的Quartus进行配置和集成。IP核可以配置为支持多种DMA模式如简单的单次传输、突发传输或更复杂的Scatter-Gather DMA。 3.2.2.2 自定义DMA控制器 对于特殊的应用需求开发者可能会使用Verilog或VHDL来自定义DMA控制器逻辑。自定义DMA控制器允许精细控制数据的流动、优先级管理和错误处理。 以下举两个典型的例子来进一步介绍FPGA中DMA的使用。 3.2.2 AXI DMA IP AXI DMA (Direct Memory Access) IP是专为Xilinx FPGA设计的一种高性能、高通量数据传输接口基于AXI (Advanced eXtensible Interface) 总线标准。这种IP核广泛用于需要高速数据传输的FPGA应用中如数据采集、图像处理、网络通信等。AXI DMA IP支持高效的内存到内存、外设到内存以及内存到外设的数据传输。 AXI DMA 用到了三种总线AXI4-Lite 用于对寄存器进行配置AXI4 Memory Map 用于与内存交互又分为 AXI4 Memory Map Read 和 AXI4 Memory Map Write 两个接口一个是读一个是写。AXI4 Stream 接口用于对外设的读写其中 AXI4 Stream MasterMM2SMemory Map to Stream用于对外设写AXI4-Stream Slave(S2MMStream to Memory Map)用于对外设读。总之在以后的使用中需要知道 AXI_MM2S 和 AXI_S2MM 是存储器端映射的 AXI4 总线提供对存储器DDR3的访问。AXIS_MM2S 和 AXIS_S2MM 是 AXI4-streaming 总线可以发送和接收连续的数据流无需地址。 AXI DMA IP核特性 高吞吐量和低延迟AXI DMA利用AXI总线的高带宽和低延迟特性实现快速数据传输。支持高速数据流和大批量数据处理。 支持Scatter-Gather模式通过Scatter-Gather列表AXI DMA可以管理非连续的内存数据块提高内存使用效率。这种模式使得DMA能够从多个内存区域收集数据并传输到单一或多个目的地或反之。 可配置性和灵活性AXI DMA IP核可在Xilinx的Vivado设计套件中配置允许用户根据具体应用需求调整数据宽度、传输模式等参数。支持多种传输模式包括单次传输、连续传输等。 中断和事件管理支持生成中断以便在传输完成或发生错误时通知CPU或处理器实现有效的事件管理。这有助于提高应用的响应能力和可靠性。 3.2.3 XDMA XDMA是Xilinx公司提供的高性能可配置的SG DMA硬核具备AXI Stream接口、AXI Lite接口和AXI4接口三种用户接口。XDMA IP核是对FPGA集成的PCIe硬核进行二次封装开发效率更高。 XDMA的关键特性 高速PCI Express接口支持XDMA支持多种PCIe配置包括1x, 2x, 4x, 8x, 16x等通道兼容PCIe 1.x, 2.x, 3.x, 4.x标准可实现高达16 GT/s的数据传输速率。灵活的数据传输模式支持Memory-Mapped I/O (MMIO) 和 Direct Memory Access (DMA) 操作模式可以根据需要灵活配置和使用。支持多个DMA通道XDMA可以配置多个独立的DMA通道每个通道可以独立进行数据传输增加了数据处理的灵活性和系统的扩展性。高级特性支持中断和信号机制确保数据传输的可靠性和及时响应。支持Scatter-Gather DMA允许从非连续的内存区域收集数据有效管理内存碎片优化内存使用。
http://www.zqtcl.cn/news/649772/

相关文章:

  • 武城网站建设价格东莞容桂网站制作
  • 工作室网站需要备案吗wordpress群发工具
  • 官方网站娱乐游戏城自己做网站的好处
  • 查询建设规范的网站1元网站建设精品网站制作
  • 社交网站的优点和缺点个人网页制作软件
  • 做一家算命的网站有没有专门做淘宝客的网站
  • 网站站点管理在哪里建筑施工图设计
  • 众筹网站开发周期网页云原神
  • 哪些网站可以免费做h5东莞制作企业网站
  • 帝国cms 网站地址设置深圳住房和建设部网站
  • 专业网站建设价格最优网页游戏大全电脑版在线玩
  • 建设租车网站wordpress+js插件开发
  • 定制网站开发与模板商务酒店设计网站建设
  • php 网站部署后乱码wordpress禁止调用头部
  • 网站权重低营销型企业网站建站
  • 大港油田建设网站长春市网站优化公司
  • 嘉峪关市建设局建管科资质网站室内设计入门教程
  • 久久建筑网会员登陆中心百度的搜索引擎优化
  • 做网站好还是做程序员好wordpress new图标
  • 秀洲住房与建设局网站徐州建设工程招投标官方网站
  • 做公司网站要注意哪些问题做章的网站
  • 南京建设网站维护洛阳最新通告今天
  • 网站名称创意大全wordpress公开课插件
  • 淮安市城市建设档案馆网站可以做网页的软件
  • 网站空间服务器wordpress 排除置顶文章
  • 有域名后怎么做网站邯郸做移动网站的地方
  • 商标可以做网站吗网站开发的大学生应届简历
  • 长沙长沙网站建设公司saas系统架构
  • 成都销售型网站长春财经学院多大
  • 手机自己制作表白网站app项目网络计划图怎么画