SPE to SPE DMA transfer

From Cellbe

(Difference between revisions)

Revision as of 02:30, 6 July 2007

This article shows a simple DMA transfer between two SPEs. The synchronization is done via mailbox with the aid of the PPE. The process "PGET" holds the target memory area; it writes 200 in the target area, then waits for the transfer, and prints the value stored in target area. The process "PPUT" writes a value in the target memory area. The order of operations is as follows:

  1. The SPE processes are started
  2. PGET communicates to the PPE the target address via mailbox, then synchronizes with the PPE with a mailbox read
  3. The PPE calculates the effective address of the target, and sends it to PPUT via mailbox, and synchronizes with PPUT with a mailbox read
  4. PPUT reads the target's effective address from mailbox, starts the dma trasfer, waits for it to finish and wakes up the PPE with a mailbox write
  5. The PPE wakes up, and writes a mailbox to PGET to wake it up.
  6. PGET wakes up, and prints the content of the target memory area.

Code snippet: PPE side

Personal tools