view paper/cell.tex @ 11:cb4939e15c42

fix
author admin@e055734.st.ie.u-ryukyu.ac.jp
date Fri, 20 Mar 2009 20:23:52 +0900
parents e7c35212c0ae
children 2ebe1eb3177a
line wrap: on
line source

%\section{Cell}
\label{chap:chapter2}

\pagenumbering{arabic}

\section{Cell}

Cell\cite{cell}は、マルチコアCPUの1つで、構成は「ヘテロジニアス・マルチコアプロセッサ構成」である。
汎用的な用途に対応した1種類のコアを用意するのではなく、
制御系プロセッサコア(PPE)と演算系プロセッサコア(SPE)という異なるコアを用意している。

\subsection{Cellの構成}

Cellはメインプロセッサである 1基の PowerPC Processor Element (PPE) と
8基のデータ処理プロセッサアーキテクチャー Synergistic Processor Element (SPE)
からなる非対称なマルチコアプロセッサであり、高速リングバスで構成されている。\cite{cell}

\begin{figure}[!h]
  \begin{center}
     \vskip -\lastskip \vskip -12pt
    \includegraphics[scale=0.3]{image/Cell-main2.pdf}
    \caption{Cell の構成要素}
    \label{fig:cell-main}
  \end{center}
\end{figure}

\newpage

\subsection{PPE}

PPE は 複数の SPU をコアプロセッサとして使用することができる汎用プロセッサである。
オペレーティングシステムの役割であるメインメモリや外部でバイスへの入出力制御に加えて、
SPEを制御する役割も担っている。
PPU (PowerPC Processor Unit) は、PPEの演算処理をおこなう核となるユニットで、
PowerPCアーキテクチャをベースとした命令セットを持つ。
PPSS (PowerPC Processor Storage Subsystem) は、PPUからメインメモリへの
データアクセスを制御するユニットである。

本研究で用いた PS3Linux では、6個の SPU を制御することができる。

\begin{figure}[!h]
  \begin{center}
    \vskip -\lastskip \vskip -10pt
    \includegraphics[scale=0.3]{image/PPE.pdf}
    \caption{PowerPC Processor Element (PPE) の構成要素}
    \label{fig:ppe}
  \end{center}
\end{figure}

\subsection{SPE}

SPE は、計算を単純に繰り返すマルチメディア系の処理を得意とする
演算系プロセッサである。
SPU (Synergistic Processor Unit) は、SPEの演算処理をおこなう核となるユニットで、
各SPE上に搭載されている。SPUは、PPUとは異なる独自の命令セットを持つ。また、
LS (Local Store) という256KBのメモリを持ち、メインメモリへのアクセスは
MFC (Memory Flow Controller) へチャンネルを介して 
DMA (Direct Memory Access) 命令を送ることで行われる。
SPU は直接メインメモリへアクセスすることはできない。

\begin{figure}[!h]
  \begin{center}
    \vskip -\lastskip \vskip -10pt
    \includegraphics[scale=0.3]{image/SPE.pdf}
    \caption{Synergistic Processor Element (SPE) の構成要素}
    \label{fig:spe}
  \end{center}
\end{figure}

\subsection{DMA (Directi Memory Access)}

DMA (Direct Memory Access) 転送とは、CPUを介さずに周辺装置と
メモリとの間で高速にデータ転送する手段である。
Cellでは、DMA転送を利用してメインメモリとLS間のデータ転送をおこなう。
DMA転送の実行は、基本的にSPEプログラムで制御されます。SPEプログラムが、
メインメモリとLSとの間でDMA転送を実行する手順は以下のとおりである。

\begin{enumerate}
\item DMA 転送の命令発行
\item メインメモリと LS 間 の DMA 転送の実行
\item DMA 転送の完了待ち
\end{enumerate}

DMA 転送には待ち時間が存在する。\\

\subsubsection{SPE 内の処理の様子}

\begin{enumerate}
\item Task のデータを読み込む 
\item 読み込んだデータの処理を行っている間に次の Task のデータを読み込む
\item 処理したデータの転送の間に、2 で読み込んだデータの処理、次の Task のデータの読み込みを行う。
\end{enumerate}