view doublebuffer.tex @ 12:b0a2b2ca2123 default tip

update tags
author convert-repo
date Mon, 10 Nov 2008 04:59:52 +0000
parents a9f3e198cb96
children
line wrap: on
line source

\section{並列処理}
Cellではあらゆるレベルで並列に動作させることが求められる。
ダブルバッファがその一例として挙げられる。Cellではそれぞれのコアがメイン
メモリを直接参照することができない。そのためDMAによりデータをやり取りす
るのは前述した通りである。DMAはCPUを介さずに直接データ転送を行う方式のこ
とである。そのためDMAしている間、SPUは何らかの処理を行うことができる。
SPUは入力用のBufferと出力用のバッファを二つずつ用意する。そうすることにより図\ref{fig:pipeline1}のようなパイプライン処理が可能となる。
\begin{figure}[htb]
\begin{center}
\includegraphics[scale=.5]{./fig/pipeline1.pdf}
\end{center}
\caption{パイプライン}
\label{fig:pipeline1}
\end{figure}
またタスクマネージャはPPUで実行するかSPUで実行するかを明示的に書くことができる。またSPUを使う場合は使うSPUの数を指定することができるようになる。
そのため、ダブルバッファを利用した図\ref{fig:pipeline}のようなSceneGraphとCreate\_SPANとDRAWがパイプライン的に動作することができる可能性もある。またこれらの動作はそれぞれ内部でもパイプライン的に動作する。
\begin{figure}[htb]
\begin{center}
\includegraphics[scale=.5]{./fig/pipeline.pdf}
\end{center}
\caption{タスクマネージャが行うパイプライン}
\label{fig:pipeline}
\end{figure}