Cell Broadband Engineを利用したホログラム計算(後編)

柘植 宗範,伊藤 智義

tag: 組み込み

技術解説 2008年1月31日

● SPE用プログラムを作成する

 SPEプログラムの大きな特徴は,DMA転送によるデータの収受とSIMDを利用した関数群です.こちらも,以下に例を挙げて解説します.

1)ライブラリのインクルード

 まず,組み込み関数とDMA転送を利用するために,それぞれspu_intrinsicsとspu_mfcioをインクルードします〔リスト2(a)〕

#include <spu_intrinsics.h>
#include <spu_mfcio.h>


リスト2 SPE用プログラム (a)ライブラリのインクルード

2)DMA転送用領域の確保

 DMA転送のためのデータ領域を宣言します.SPEがDMA転送を行うのはPPEのメイン・メモリ上のデータなので,転送のためのデータ領域の宣言部はPPEの対応するコードとほぼ同じになります.また,SPEのコードでもバイト境界をそろえるために__attribute__キーワードを指定します〔リスト2(b)〕

typedef struct{
 KATA *dataPos; // メイン・メモリ上での演算用データ格納場所
 KATA *resultPos; // メイン・メモリ上の演算結果データ保存先
 char pat[] __attribute__((aligned(128)));
              // データ・サイズ調整用
}DmaParams __attribute__((aligned(128)));


リスト2 SPE用プログラム (b)DMA転送のためのデータ領域を確保

 また,ローカル・ストア上にDMA転送用パラメータの領域を確保し,バイト境界を128バイトにそろえます〔リスト2(c)〕

static volatile DmaParams dmaParams__attribute__((aligned(128)));


リスト2 SPE用プログラム (c)ローカル・ストア上にDMA転送用パラメータの領域を確保

 ローカル・ストア上に結果格納用領域を確保し,バイト境界を128バイトにそろえます〔リスト2(d)〕

static volatile unsigned char result__attribute__((aligned(128)));


リスト2 SPE用プログラム (d)ローカル・ストア上の結果格納用領域を確保

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日