问题标签 [dma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
495 浏览

cell - 单元处理器上的直接 SPU 到 SPU DMA 请求?

单元上的正常 DMA 请求发生在 SPU 和 PPU 之间。但是,我读过可以直接在 SPU 之间设置 DMA。有人知道这是如何实现的吗?

0 投票
1 回答
2034 浏览

c# - 使用 DMA 进行文件内数据复制

我需要将一些数据从文件的一个区域移动到另一个区域。目前,我正在读取字节并将它们写回。但我想知道如果可能的话,进行 DMA 传输是否会更快。我在 C# 中,但不安全和 p/invoke 函数是可以接受的。

0 投票
1 回答
1465 浏览

windows - 有什么方法可以在 Vista x64 上分配 4GB 以上的物理内存?

我有一台具有 6GB RAM 的 Vista x64 机器,我正在尝试测试设备驱动程序在对 4GB 以上的物理地址执行 DMA 时是否正常工作。

我找到了AllocationPreference 注册表项,它应该“强制分配在较低地址之前从较高地址分配”,但该页面不清楚这是否会影响物理地址或仅影响虚拟地址。根据我的代码行为,我怀疑它只会影响虚拟地址。

我还遇到过 nolowmem 启动选项,它应该将“操作系统、设备驱动程序和所有应用程序加载到 4 GB 边界以上的地址中”,但它似乎只适用于 32 位版本的 Windows。我尝试在 Vista x64 上启用,但机器无法启动。几天前我刚刚设置了这台机器,所以它没有任何服务包;我目前正在安装这些以查看这是否是由于 Windows 错误造成的。

有没有办法强制 Windows 分配由 4GB 以上的物理地址支持的 4GB 以上的虚拟地址?

0 投票
5 回答
1246 浏览

java - java中对网卡的直接内存访问

一些现代网卡支持直接内存访问以提高性能。如何从 Java 中利用此功能?

JVM 是否自动提供此功能,还是我需要在用于与该 NIC 通信的 ByteBuffers 上执行 allocateDirect?

有没有人有讨论这个的文档?

0 投票
3 回答
6006 浏览

c++ - 如何确保缓冲内存对齐?

我正在使用硬件接口发送需要设置DMA缓冲区的数据,该缓冲区需要在 64 位边界上对齐。

DMA 引擎期望缓冲区在至少 32 位边界(4 字节)上对齐。为获得最佳性能,缓冲区应在 64 位边界(8 字节)上对齐。传输大小必须是 4 字节的倍数。

posix_memalign用来创建这样的缓冲区...

pPattern是一个指向 int 的指针,并且是我的DmaBufferSizeinInt32s深缓冲区的开始。

我的缓冲区是否在 64 位上对齐?

0 投票
7 回答
527 浏览

linux - 在这种情况下,我应该在单独的线程中读取文件吗?

我正在为嵌入式 linux 编写一个应用程序,其中 5% 的处理器时间用于读取文件,95% 用于处理文件。如果我在一个线程中读取文件并继续在另一个线程中处理,我可以获得一些性能改进吗?

我正在读取支持 DMA 的 mmc 卡。文件大小为 20mb,以 2 kb 为单位。我将从读取器线程中对块进行排队,并在处理器线程中对其进行处理。因此,仅在从队列中插入和删除时需要线程同步。

我正在为 ARM9 编程。

什么应该是快速的单线程/多线程。

0 投票
2 回答
256 浏览

fread - fread 是否需要处理能力/与 DMA 一起使用?

fread 是否需要处理能力/与 DMA 一起工作?

假设文件所在的设备支持 DMA 吗?

0 投票
3 回答
3805 浏览

c - Linux中的异步memcpy?

linux中是否有任何异步memcpy函数?我希望它与 DMA 一起工作,并在完成时通知我。

0 投票
1 回答
224 浏览

embedded - 嵌入式系统:用两个不同的 DMA 读取同一个内存块

我是嵌入式设备编程的新手。我有一个任务从 DSP 内存地址读取数据块并将其复制到其他地址(映射其他外设的位置)。复制过程是通过对设备中的一个 DMA 通道进行编程来完成的。除了第一个副本之外,我还希望将该数据的副本复制到其他地方。

现在我的问题是,如果我使用第二个 DMA 通道并在第一个 DMA 开始工作后立即触发其复制操作,这两个 DMA 操作会以某种方式相互冲突吗?

0 投票
2 回答
404 浏览

embedded - 在哪里可以找到有关对 TI TMS320C64xx DMA 控制器进行编程的信息

我需要使用这个 DSP 进行一些简单的内存传输,但我找不到任何有关 DMA 功能的文档。我正在使用 C 和代码编写器 3.3