Therefore, they cannot be accessed directly, but must be moved in through DMA.
因而,它们不能被直接访问,而必须通过DMA 移进来。
The third copy happens as the DMA engine passes the data from the kernel socket buffers to the protocol engine.
数据的第三次复制发生在dma引擎将数据从内核套接字缓冲区传到协议引擎时。
It takes a tag as its only parameter, converts it to a tag mask, requests a DMA status, and then reads the status.
它接受标签作为惟一一个参数,将它转换为标签掩码、请求dma状态然后再读取状态。
In some cases, the data passed in as arguments will have more addresses that are, in turn, DMA-ed over in whole or in part.
在某些情况下,作为参数传递进来的数据会有更多地址,它们可能是采用dma方式一起或部分传入的。
All DMA commands issued with the same tag are considered a single group, and status updates and sequencing operations apply to the group as a whole.
所有用相同的标签发出的dma命令被认为是单一一个组,并且状态更新和排序操作都会作用于整个组。
In this application, you will only have one DMA command active at a time, so all of your operations will use 0 as the DMA tag.
在这个应用程序中,一次只有一个dma命令是激活的,所以所有的操作都将使用0作为DMA标签。
The real power of mailboxes comes when a program combines the mailbox and the DMA approach.
当程序组合使用了邮箱和DMA方法时,才会显出邮箱的真正实力。
Moreover, the chip includes all the necessary plumbing to move bite-size chunks of DMA data around without any additional hardware design effort on your part.
另外,芯片还包括了所有必需的管道技术以便随意移动少量的dma数据而且无需设计任何其他硬件。
These all need to be quadword aligned, so that you can copy it into your main program and use the values with DMA transfers.
而且它们都是按四字节对齐的以便能够将其复制进您的主程序并在DMA 传输时使用值。
The SPE can't hold that much data at once in the 256kb local store, but it can DMA over one chunk at a time for processing.
SPE不能在256kb本地存储中一次保存这么多数据,但是它可以采用dma方式一次获取一部分数据进行处理。
Whether it's an argument passed in or an address gotten some other way, the DMA targets must be aligned on cache lines (16 bytes).
不管是传入的参数还是通过其他方式获得的地址,DMA的目标地址必须要与缓存线路(16字节)进行对齐。
So how does this wait for the DMA operation to complete?
但这是如何实现等待dma操作完成的呢?
When the command is written, the DMA request is enqueued into the MFC provided it has available slots -- yours certainly does as you are not doing any other concurrent DMA requests.
当命令被写入时,DMA请求会被排队放入MFC,条件是 MFC具有可用的槽 —— 本例中自然如此,原因是本例没有进行任何并发的 DMA 请求。
The problem is that there are unusually strict alignment requirements on data that will be transferred through DMA.
这个问题由于通常通过dma方式传递数据时,会有严格的对齐要求。
The SPU queues a DMA GET to pull a portion of the problem data set from main memory to a buffer.
SPU对DMA GET进行排队,从而将涉及的数据集的一部分从主内存传输到一个缓冲区。
Queue a DMA GETB to refill the buffer with more data after the existing data is stored back.
对DMAGETB进行排队,从而在将现有数据存储回去之后,用更多数据重新填充缓冲区。
By mapping multiple SPUs into a single process, it becomes possible to use DMA to transfer data between the local store of two SPUs directly.
通过将多个SPU映射到一个进程中,就可以使用DMA来在两个SPU的本地存储之间直接传输数据。
Note that all of the declared variables which will be copied using DMA are aligned on quadword boundaries and are multiples of quadwords.
注意所有声明的变量(使用DMA复制的)都是按四字边界对齐的且都是四字的整数倍。
Queue a DMA PUT to transfer the buffer back to main memory.
对DMA PUT 进行排队,从而将缓冲区传输回主内存。
Finally, all DMA command names have a _cmd suffix.
最后,所有的dma命令名都有一个_ CMD后缀。
A DMA request always involves moving data between the SPE local store and a virtual address space on the PPE side.
dma请求通常会涉及数据在SPE本地存储与ppe端虚拟地址空间之间进行移动。
Before getting into the details of the main program, I'll explore the DMA utility functions.
在深入介绍主程序细节之前,我要先来探讨一下dma实用函数。
The DMA command can also have certain levels of synchronization applied to it.
dma命令也可以应用一些特定级别的同步。
Next, it performs a DMA transfer to copy in the parameter structure from the PPE.
接下来,执行dma传输以在参数结构内从ppe复制。
As you may have guessed, most of the interesting parts of the program are taking place on the SPE, including all of the DMA transfers.
正如您所猜测的那样,程序大多数有趣的部分都发生在SPE,包括所有的dma传输。
The "tag" is a number which can be assigned to one or many DMA commands.
“标签”是一个数值,可分配给一个或多个dma命令。
For instance, one of the problems with the original code is that it is limited to the size of a DMA transfer.
举例来说,原来代码的一个问题是一次dma传输的大小有限制。
The SPU queues a DMA PUT to transmit the buffer back to main memory.
SPU对DMA PUT进行排队,从而将缓冲区传输回主内存。
Once the DMA is completed, your function is done.
一旦DMA完成,函数也即完成。
DMA transfers are almost always done by the SPEs rather than by the PPE because they can handle much more data and many more active DMA operations than the PPE.
dma传输基本上总由spe而非ppe完成,原因是SPE较P pe而言可以处理更多的数据和更多的当前dma操作。
应用推荐