- MFC commands can either be issued by code running on the SPU, or by code running on another processor or device, such as the PPE.
- SPU executes a series of channel instructions to issue an MFC command.
- other processors or devices performs a series of memory-mapped I/O (MMIO) transfers to issue an MFC command to an SPE.
- The commands issued are queued to one of these command queues of the MFC:
• MFC proxy command queue for any MMIO-initiated commands
• MFC SPU command queue for any channel-initiated commands - MFC commands that transfer data are referred to as MFC DMA commands.
- Transfer data into an SPE (from main storage to local storage) are considered get commands.
- Transfer data out of an SPE (from local storage to main storage) are considered put
commands.
- Commands can be categorized into three classes, as follows:
• Defined
• Illegal
• Reserved
7.1.1 Defined Commands
- Defined commands fall into one of three categories:
• Data transfer commands
– Data moved from local storage and placed in main storage (put commands)
– Data moved into local storage from main storage (get commands)
• SL1 cache-management commands
• Synchronization commands
- Unaligned DMAs are not supported by the CBEA.
- If an unaligned DMA operation is encountered, the MFC command queue processing is suspended and an DMA alignment interrupt is generated.
- Commands with a suffix of “l” use list elements located in the local storage pointed to by the DMA list local storage address (LA) parameter of a list command.
- The element contains the lower order word of the effective address (LEAL) and the transfer size (LTS).
- The DMA list commands use a list of effective addresses and transfer size pairs, or list elements, stored in local storage as the parameters for the DMA transfer. These parameters are used for SPU-initiated DMA list commands, which are not supported on the MFC proxy command queue.
沒有留言:
張貼留言