view paper/cell.tex @ 2:76144c47b4fc

Initial revision
author akira
date Wed, 13 Feb 2008 17:40:26 +0900
parents
children 3f96fdc6d522
line wrap: on
line source

\chapter{CELL BROADBAND ENGINE}
\section{cell broandband engineの構造}
ここでは研究・実験題材の対象となったCellというアーキテクチャーについて説
明する。CellはメインプロセッサであるPowerPC Processor Element(PPE)と8個
のデータ処理プロセッサアーキテクチャーSynergistic Processor Element(SPE)からな る非対称なマルチコアプロセッ
サでなり、リングバスで構成されている。(図\ref{fig:cell})
\begin{figure}[htb]
\begin{center}
\includegraphics[width=17cm]{./fig/cell.eps}
\end{center}
\caption{cell}
\label{fig:cell}
\end{figure}
\\
PPEはCell Broadband Engineのメインプロセッサで、複数のSPUをコアプロセッ
サとして使用することができる汎用プロセッサで、オペレーティングシステムの役割であるメインメモリや外部デバイスへの入出力制御を行います。
%Cellの内部でのデータ通信はDMAで行われCPUに負担をかけない。\\
\subsection{spe}
SPEは
%128個の128ビット汎用レジスタと256kbのローカルストア(LS)と呼ばれる専用メモリを備えたSIMD構成のアーキテクチャーとなっており、
PPEのような複雑な制御よりも計算を単純に繰り返すマルチメディア系の処理を得意とする演算系プロセッサコアです。(図\ref{fig:spe}参照)
%メインメモリ上のプログラムとデータは直接扱えず、MFCを用いてメインメモリとLS間の転送を行う必要がある。
SPUとMFCから構成され、SPUは独自規格の命令セットを持ち、各々のSPUはLocal Store(LS)とよばれる256kbのメモリ量を持ちます。LSは各SPUから直接参照できる唯一のメモリです。MFCはメインメモリや他のSPEなどとデータをやり取りするためのユニットで、SPUはチャネルというインタフェースを介してMFCに対してデータ転送などを依頼し、各々のSPUが持つLSにメインメモリ上のデータなどを転送します。
\begin{figure}[htb]
\begin{center}
\includegraphics{./fig/spe.eps}
\end{center}
\caption{spe}
\label{fig:spe}
\end{figure}

% ここでPPEとSPEの詳細必要?
%http://www.cellusersgroup.com/modules/feature/co_tutorial/ch01s01s02.php
%http://cell.fixstars.com/ps3linux/index.php/1.2 Cellの物理構成
% wikipedia
% SPE単体の図とか
% とりあえず保留
\section{cellの基本機能}
\subsection{SIMD}
Cellは基本的にあらゆるものを並列的に計算できるような構造になっている。SPUに実装されている128ビットレジスタもSIMDを行うために設計されている。通常は32ビットのデータを4回計算できるところを1回の計算で行うことができる。
\subsection{メールボックス}
メールボックスは、PPEとSPE間で通信するための機構の一つです。DMA転送はメインメモリとLSとの間で最大16Kバイトの大きなデータの受け渡しを行います。それに対し、メールボックスはステータスの変化などの小さなデータ受け渡し向けで、PPEとSPEとの間で双方向のデータの受け渡しが可能です。メールボックスはFIFOキュー構造になっており、3つの振る舞いができるよう設計されています。(図\ref{fig:Mailbox}参照)\\
\begin{figure}[htb]
\begin{center}
\includegraphics[width=17cm,height=10cm]{./fig/Mailbox.eps}
\end{center}
\caption{Mailbox}
\label{fig:Mailbox}
\end{figure}
\begin{enumerate}
\item SPU Inbound Mailbox\\
	PPEからSPEへデータを渡すためのキューで、最大4個までのデータを蓄積できます。もし、SPEがキューを読むときにキューにデータをない場合は、キューにデータが書き込まれるまで待ち続けます。
\item SPU Outbound Mailbox\\
	SPEからPPEへデータを渡すためのキューでSPU Inbound Mailboxと同様にデータがない場合はデータが書き込まれるまで待ち続けます。一番の違いはデータが1個までしかキューに格納できないことです。
\item SPU Outbound Intterupt Mailbox\\
	SPU Outbound Mailboxとほとんど同じですが、SPU Outbound Interrupt MailboxではSPEからキューにデータが書き込まれると、PPEに対して割り込みイベントが発生しデータの読み出しタイミングを通知することができます。
\end{enumerate}
\subsection{パイプライン}
CellはDMAの機能を持っているので、パイプライン的な処理が可能となる。基本的な要素としてRead、Exec、Writeから構成できる。(図\ref{fig:pipeline})\\
\begin{figure}[htb]
\begin{center}
\includegraphics{./fig/pipeline.eps}
\end{center}
\caption{pipeline実行}
\label{fig:pipeline}
\end{figure}