spu_intrinsics.h
出典: CellFanWiki
spu_intrinsics.h はCell Broadband Engineアーキテクチャ用C/C++言語拡張の仕様によって定められたヘッダファイルであり、SPUの機能をC/C++言語から容易にアクセスするための関数や定数などの定義が記されている。
[編集] spu_intrinsics.h で定義されている内容
[編集] 単一トークンベクタデータ型
Cell Broadband Engineアーキテクチャ用C/C++言語拡張により、ベクタデータ型という型が導入されている。 spu_intrinsics.h には、このベクタデータ型に呼応する単一トークン型が定義されている。
| ベクタデータ型 | 単一トークン型 | 内容 |
|---|---|---|
| vector unsigned char | vec_uchar16 | 16個の8ビット符号なしchar |
| vector signed char | vec_char16 | 16個の8ビット符号付きchar |
| vector unsigned short | vec_ushort8 | 8個の16ビット符号なしhalfword |
| vector signed short | vec_short8 | 8個の16ビット符号付きhalfword |
| vector unsigned int | vec_uint4 | 4個の32ビット符号なしword |
| vector signed int | vec_int4 | 4個の32ビット符号付きword |
| vector unsigned long long | vec_ullong2 | 2個の64ビット符号なしdoubleword |
| vector signed long long | vec_llong2 | 2個の64ビット符号付きdoubleword |
| vector float | vec_float4 | 4個の32ビット単精度float |
| vector double | vec_double2 | 2個の64ビット倍精度float |
| qword | (なし) | quadword (16バイト) (注:個別組み込み関数の入出力専用) |
[編集] SPUチャネル列挙子、MFCチャネル列挙子
チャネル操作に対応する組み込み関数はチャネル番号を引数にとる。チャネル番号は0から127までの範囲の符号無しリテラル値であり、 spu_intrinsics.h にて、以下の表に示すように列挙子が定義されている。
| チャネル番号 | SPUチャネル列挙子 | 説明 |
|---|---|---|
| 0 | SPU_RdEventStat | イベントステータスの読み込み |
| 1 | SPU_WrEventMask | イベントステータスマスクの書き込み |
| 2 | SPU_WrEventAck | イベント受け付けフラグの書き込み |
| 3 | SPU_RdSigNotify1 | シグナル通知1の読み込み |
| 4 | SPU_RdSigNotify2 | シグナル通知2の読み込み |
| 7 | SPU_WrDec | デクリメンタのカウントの書き込み |
| 8 | SPU_RdDec | デクリメンタのカウントの読み込み |
| 11 | SPU_RdEventMask | イベントステータスマスクの読み込み |
| 13 | SPU_RdMachStat | SPU実行ステータスの読み込み |
| 14 | SPU_WrSRR0 | SPUマシン状態の保存/復元レジスタ0(SRR0)の書き込み |
| 15 | SPU_RdSRR0 | SPUマシン状態の保存/復元レジスタ0(SRR0)の読み込み |
| 28 | SPU_WrOutMbox | Outbound Mailbox の内容の書き込み |
| 29 | SPU_RdInMbox | Inbound Mailbox の内容の書き込み |
| 30 | SPU_WrOutIntrMbox | Outbound Interrupt Mailbox の内容の書き込み(PPUに対する割り込み) |
| チャネル番号 | MFCチャネル列挙子 | 説明 |
|---|---|---|
| 9 | MFC_WrMSSyncReq | マルチソース同期リクエストの書き込み |
| 12 | MRC_RdTagMask | タグマスクの読み込み |
| 16 | MFC_LSA | ローカルメモリアドレスコマンドパラメータの書き込み |
| 17 | MFC_EAH | 上位DMA実効アドレスコマンドパラメータの書き込み |
| 18 | MFC_EAL | 下位DMA実効アドレスコマンドパラメータの書き込み |
| 19 | MFC_Size | DMA転送サイズコマンドパラメータの書き込み |
| 20 | MFC_TagID | タグ識別子コマンドパラメータの書き込み |
| 21 | MFC_Cmd | DMA コマンドを関連するクラスIDと共に書き込み、キューに入れる |
| 22 | MFC_WrTagMask | タグマスクの書き込み |
| 23 | MFC_WrTagUpdate | 条件付きまたは無条件のタグステータス更新リクエストの書き込み |
| 24 | MFC_RdTagStat | マスク適用後のタグステータスの読み込み |
| 25 | MFC_RdListStallStat | DMAリストのストール通知ステータスの読み込み |
| 26 | MFC_WrListStallAck | DMAリストのストール通知受領応答の書き込み |
| 27 | MFC_RdAtomicStat | 最後に完了した即時実行するMFCアトミック更新コマンドの終了ステータスの読み込み |
(以下、執筆中)

