12/02/2006

CBEA Note - 07

7. MFC Commands

  1. 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.
  2. SPU executes a series of channel instructions to issue an MFC command.
  3. other processors or devices performs a series of memory-mapped I/O (MMIO) transfers to issue an MFC command to an SPE.
  4. 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
  5. MFC commands that transfer data are referred to as MFC DMA commands.
  6. Transfer data into an SPE (from main storage to local storage) are considered get commands.
  7. Transfer data out of an SPE (from local storage to main storage) are considered put
    commands.
7.1 Command Classes

  1. Commands can be categorized into three classes, as follows:
    • Defined
    • Illegal
    • Reserved

7.1.1 Defined Commands
  1. 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
7.2 Command Exceptions

  1. Unaligned DMAs are not supported by the CBEA.
  2. If an unaligned DMA operation is encountered, the MFC command queue processing is suspended and an DMA alignment interrupt is generated.
7.4 DMA List Elements

  1. 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.
  2. The element contains the lower order word of the effective address (LEAL) and the transfer size (LTS).
  3. 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.

沒有留言: