changeset 6:e7c35212c0ae

chapter "cell" add
author admin@mb22-no-macbook.local
date Wed, 18 Mar 2009 00:06:11 +0900
parents 5269ce12fdde
children 3aab00763c40
files paper/cell.tex paper/cell.tex~ paper/sigos.aux paper/sigos.bbl paper/sigos.blg paper/sigos.dvi paper/sigos.log paper/sigos.pdf paper/sigos.tex
diffstat 9 files changed, 493 insertions(+), 85 deletions(-) [+]
line wrap: on
line diff
--- a/paper/cell.tex	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/cell.tex	Wed Mar 18 00:06:11 2009 +0900
@@ -1,63 +1,202 @@
+%\section{Cell}
+\label{chap:chapter2}
+
+\pagenumbering{arabic}
+
 \section{Cell}
-Cell Broadband Engine \cite{cell} は、SCEI と IBM によって開発された
-CPU である。2 thread の PPE (PowerPC Processor Element) と、
-8 個の SPE (Synergetic Processor Element) を持ち、
-EIB と呼ばれる高速リングバスで構成されている。
-本研究で用いた PS3Linux (Fedora 8) では、
-6 個の SPE を使うことができる (\figref{fig-cbe}) 。
+
+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}[hbp]
+  \begin{center}
+    % \vskip -\lastskip \vskip -370pt
+    \includegraphics[scale=0.3]{image/Cell-main2.pdf}
+    \caption{Cell の構成要素}
+    \label{fig:cell-main}
+  \end{center}
+\end{figure}
 
-\begin{figure}[tb]
+\subsection{PPE}
+
+PPE は 複数の SPU をコアプロセッサとして使用することができる汎用プロセッサである。
+オペレーティングシステムの役割であるメインメモリや外部でバイスへの入出力制御に加えて、
+SPEを制御する役割も担っている。
+PPU (PowerPC Processor Unit) は、PPEの演算処理をおこなう核となるユニットで、
+PowerPCアーキテクチャをベースとした命令セットを持つ。
+PPSS (PowerPC Processor Storage Subsystem) は、PPUからメインメモリへの
+データアクセスを制御するユニットである。
+
+本研究で用いた PS3Linux では、6個の SPU を制御することができる。
+
+\begin{figure}[hbp]
   \begin{center}
-    \includegraphics[scale=0.41]{figure/cbe.pdf}
-    \caption{Cell Architecture}
-    \label{fig-cbe}
+    \vskip -\lastskip \vskip -10pt
+    \includegraphics[scale=0.3]{image/PPE.pdf}
+    \caption{PowerPC Processor Element (PPE) の構成要素}
+    \label{fig:ppe}
   \end{center}
 \end{figure}
 
-SPE には 256KB の Local Store (LS) と呼ばれる、SPE から唯一直接参照できる
-メモリ領域があり、バスに負担をかけることなく並列に計算を進めることが出来る。
-SPE からメインメモリへは、直接アクセスすることは出来ず、
-SPE を構成する一つである MFC (Memory Flow Controller) へ、チャネルを介して
-DMA (Direct Memory Access) 命令を送ることで行われる (\figref{fig-cbe-spe}) 。
+\subsection{SPE}
+
+SPE は、 PPE のような複雑なプログラム制御よりも、計算を単純に繰り返すマルチメディア系の処理を得意とする
+演算系プロセッサである。
+SPU (Synergistic Processor Unit) は、SPEの演算処理をおこなう核となるユニットで、
+各SPE上に搭載されている。SPUは、PPUとは異なる独自の命令セットを持つ。また、
+LS (Local Store) という256KBのメモリを持ち、メインメモリへのアクセスはMFC (Memory Flow Controller) へ
+チャンネルを介して DMA (Direct Memory Access) 命令を送ることで行われる。SPU は直接メインメモリへアクセス
+することはできない
+
+\begin{figure}[hbp]
+  \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}
+
+\section{Cellの基本機能}
+\subsection{SIMD (Single Instruction Multiple Data)}
 
-\begin{figure}[tb]
+Cell は基本的にあらゆるものを並列的に計算できるような構造になっている。
+SPU に実装されている 128 ビットレジスタも SIMD を行う為に設計されている。
+SIMD 演算とは 1 つの命令で複数のデータに対して処理をおこなう演算方式である。
+以下にスカラ演算と SIMD 演算を図で示す。
+
+\begin{figure}[hbp]
   \begin{center}
-    \includegraphics[scale=0.6]{figure/cbe-spe.pdf}
-    \caption{Synergetic Processor Element}
-    \label{fig-cbe-spe}
+    % \vskip -\lastskip \vskip -10pt
+    \includegraphics[scale=0.3]{image/SIMD.pdf}
+    \caption{スカラ演算とSIMD演算}
+    \label{fig:simd}
+  \end{center}
+\end{figure}
+
+スカラ演算では、4 個の処理結果を得るために 4 回の加算命令を逐次的に実行しなければならない。
+一方、SIMD 演算では、1 回の加算命令で 4 個の処理結果を得ることができる。このように SIMD 演算は
+スカラ演算に比べて同じ処理を少ない命令で実行することができる。
+SIMD 演算が行えるのは複数のデータに対して同じ処理の場合である。
+以下のようなデータによって処理が異なる場合には SIMD 演算を行うことができない。
+
+\begin{figure}[hbp]
+  \begin{center}
+    \includegraphics[scale=0.3]{image/SIMD_no.pdf}
+    \caption{SIMD 演算を行えない場合}
+    \label{fig:simd_no}
   \end{center}
 \end{figure}
 
+\subsection{Mailbox}
 
-SPE はグラフィックスに適した、4 つの固定小数点、浮動小数点を
-同時に演算する命令などを持ち、PPE に比べて高速な演算が可能である。
-そのため、ほとんどの演算を SPE 上で行わせることが推奨されている。
+Mailbox は、PPE と SPE 間で通信するための機構の一つである。DMA 転送はメインメモリ
+と LS との間で最大 16KB の大きなデータの受け渡しを行う。それに対し、Mailbox はステータスの変化などの
+小さなデータの受け渡し向けで、PPE と SPE との間で双方向のデータの受け渡しが可能で、FIFO キュー構造になっており、
+3 つの振る舞いができるように設計されている。\cite{akira}
+
+\begin{figure}[hbp]
+  \begin{center}
+    \includegraphics[scale=0.3]{image/Mailbox.pdf}
+    \caption{Mailbox}
+    \label{fig:mailbox}
+  \end{center}
+\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 Interrupt Mailbox 
+
+SPU Outbound MMailbox とほとんど同じだが、SPE からキューにデータが書き込まれると、
+PPE に対して割り込みイベントが発生しデータの読み出しタイミングを通知することができる
+
+\end{enumerate}
+
+\section{開発環境}
+
+\subsection{libSPE2}
+
+libSPE2 とは PPU が SPE を扱うためのライブラリ群である。libSPE2 は SPE Context Creation、
+SPE Program Image Handing、SPE Run Control、SPE Event Handing、SPE MFC PRoblem State Facilities、
+Direct SPE Access for Applications という基本構成できている。Cell に基本プログラムは次のようになる。
+
+\begin{enumerate}
+\item create N SPE context
+\item Load the appropriate SPE executable object into each SPE context's local store
+\item Create N threads
+\item Wait for all N threads to terminate
+\end{enumerate}
+
+\subsection{SPU C/C++言語拡張}
+
+SPE は基本的な C 言語の一部の機能しか使えないが、拡張も行われている。
+以下にその一部を示す。\cite{gongo}
+
+\begin{table}[htb]
+  \begin{center}
+    \caption{SPU C/C++ 言語拡張 API}
+    \label{tab:cell_cpp}
+    \begin{tabular}{|l|l|}
+      \hline
+      spu\_mfcdma32 & DMA 転送を開始する \\
+      \hline
+      spu\_read\_in\_mbox & PPE からの mail を取得する \\
+      \hline
+      spu\_write\_out\_mbox & PPE へ mail を送信する \\
+      \hline
+      spu\_add、spu\_sub、spu\_mul & SIMD 演算 (加算、減算、乗算) \\
+      \hline
+    \end{tabular}
+  \end{center}
+\end{table}
+
+このように Cell 特有の関数やアセンブラ命令を学ぶ事が必要となる。
 
 
 \subsection{SPURS}
-ここでは、現在発表されている Cell の開発環境である SPURS \cite{spurs} について説明する。
+
+ここでは現在発表されている Cell の開発環境 SPURS について説明する。
+SPURS \cite{spurs}とは閉じた並列分散システムと考えることができる。Cell の環境で
+いかに効率よく動作させるかということを考えたシステムである。Cell の性能を存分に生かすためには 
+SPE を効率よく使い切ることと、あらゆるレベルで並列処理を行うことである。\\
 
-SPURS は、閉じた並列分散と考えることができる Cell の環境で、
-いかに効率よく動作させるかということを考えたシステムである (\figref{fig-spurs-pipeline}) (\figref{fig-spurs-task}) 。
+Cell の性能を最大限に生かすためには、SPE を止めることなくデータのアクセスを最小限に
+留めて行うことが重要になる。
+
+そこで SPURS では、SPE を効率よく利用するために、PPU に依存せずに SPU コードを選択し、
+実行することと機能は効率重視で割り切ることを挙げている。そのために SPE にカーネルを組み込んでいる。
 
-\begin{figure}[tb]
+アプリケーションを複数 SPE で実行するとき、アプリケーションプログラムをできるだけ小さな Task に分割し、
+通信ライブラリを用いて Task 間を依存関係で結合する。LS 常駐のカーネルは実行可能な Task を選んで実行する。
+
+また、アプリケーションを分割するとき、プログラムがデータを伴うとき、ジョブに分割し、並び替えた上で、
+LS 常駐のカーネルはジョブリストからジョブをとってきて実行する。
+
+また、これたはデータを扱うため、SPURS はパイプライン実行を行う。
+
+SPURS は確かにライブラリとして優れた物であると思われるが、公開はされてない。
+
+\begin{figure}[hbp]
   \begin{center}
-    \includegraphics[scale=0.36]{figure/spurs-pipeline.pdf}
-    \caption{SPURS Pipeline}
-    \label{fig-spurs-pipeline}
+    \vskip -\lastskip \vskip +30pt
+    \includegraphics[scale=0.3]{image/SPURS_task.pdf}
+    \caption{Task}
+    \label{fig:spurs_task}
   \end{center}
 \end{figure}
-
-\begin{figure}[tb]
-  \begin{center}
-    \includegraphics[scale=0.36]{figure/spurs_task.pdf}
-    \caption{SPURS Task}
-    \label{fig-spurs-task}
-  \end{center}
-\end{figure}
-
-Cell の性能を存分に生かすためには SPE を効率よく使い切ることである。
-SPE の動作を止めることなく、同期を最小限に行う必要がある。 
-そこで SPURS では SPE を効率よく利用するために、PPE に依存せずに SPE コードを 
-選択し、実行することと機能は効率重視で割り切ることを挙げている。
-現在 SPURS は一般には公開されていない。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cell.tex~	Wed Mar 18 00:06:11 2009 +0900
@@ -0,0 +1,202 @@
+\chapter{CELL BROADBAND ENGINE}
+\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}[hbp]
+  \begin{center}
+    % \vskip -\lastskip \vskip -370pt
+    \includegraphics[scale=0.7]{image/Cell-main2.pdf}
+    \caption{Cell の構成要素}
+    \label{fig:cell-main}
+  \end{center}
+\end{figure}
+
+\subsection{PPE}
+
+PPE は 複数の SPU をコアプロセッサとして使用することができる汎用プロセッサである。
+オペレーティングシステムの役割であるメインメモリや外部でバイスへの入出力制御に加えて、
+SPEを制御する役割も担っている。
+PPU (PowerPC Processor Unit) は、PPEの演算処理をおこなう核となるユニットで、
+PowerPCアーキテクチャをベースとした命令セットを持つ。
+PPSS (PowerPC Processor Storage Subsystem) は、PPUからメインメモリへの
+データアクセスを制御するユニットである。
+
+本研究で用いた PS3Linux では、6個の SPU を制御することができる。
+
+\begin{figure}[hbp]
+  \begin{center}
+    \vskip -\lastskip \vskip -10pt
+    \includegraphics[scale=0.43]{image/PPE.pdf}
+    \caption{PowerPC Processor Element (PPE) の構成要素}
+    \label{fig:ppe}
+  \end{center}
+\end{figure}
+
+\subsection{SPE}
+
+SPE は、 PPE のような複雑なプログラム制御よりも、計算を単純に繰り返すマルチメディア系の処理を得意とする
+演算系プロセッサである。
+SPU (Synergistic Processor Unit) は、SPEの演算処理をおこなう核となるユニットで、
+各SPE上に搭載されている。SPUは、PPUとは異なる独自の命令セットを持つ。また、
+LS (Local Store) という256KBのメモリを持ち、メインメモリへのアクセスはMFC (Memory Flow Controller) へ
+チャンネルを介して DMA (Direct Memory Access) 命令を送ることで行われる。SPU は直接メインメモリへアクセス
+することはできない
+
+\begin{figure}[hbp]
+  \begin{center}
+    \vskip -\lastskip \vskip -10pt
+    \includegraphics[scale=0.43]{image/SPE.pdf}
+    \caption{Synergistic Processor Element (SPE) の構成要素}
+    \label{fig:spe}
+  \end{center}
+\end{figure}
+
+\section{Cellの基本機能}
+\subsection{SIMD (Single Instruction Multiple Data)}
+
+Cell は基本的にあらゆるものを並列的に計算できるような構造になっている。
+SPU に実装されている 128 ビットレジスタも SIMD を行う為に設計されている。
+SIMD 演算とは 1 つの命令で複数のデータに対して処理をおこなう演算方式である。
+以下にスカラ演算と SIMD 演算を図で示す。
+
+\begin{figure}[hbp]
+  \begin{center}
+    % \vskip -\lastskip \vskip -10pt
+    \includegraphics[scale=0.7]{image/SIMD.pdf}
+    \caption{スカラ演算とSIMD演算}
+    \label{fig:simd}
+  \end{center}
+\end{figure}
+
+スカラ演算では、4 個の処理結果を得るために 4 回の加算命令を逐次的に実行しなければならない。
+一方、SIMD 演算では、1 回の加算命令で 4 個の処理結果を得ることができる。このように SIMD 演算は
+スカラ演算に比べて同じ処理を少ない命令で実行することができる。
+SIMD 演算が行えるのは複数のデータに対して同じ処理の場合である。
+以下のようなデータによって処理が異なる場合には SIMD 演算を行うことができない。
+
+\begin{figure}[hbp]
+  \begin{center}
+    \includegraphics[scale=0.7]{image/SIMD_no.pdf}
+    \caption{SIMD 演算を行えない場合}
+    \label{fig:simd_no}
+  \end{center}
+\end{figure}
+
+\subsection{Mailbox}
+
+Mailbox は、PPE と SPE 間で通信するための機構の一つである。DMA 転送はメインメモリ
+と LS との間で最大 16KB の大きなデータの受け渡しを行う。それに対し、Mailbox はステータスの変化などの
+小さなデータの受け渡し向けで、PPE と SPE との間で双方向のデータの受け渡しが可能で、FIFO キュー構造になっており、
+3 つの振る舞いができるように設計されている。\cite{akira}
+
+\begin{figure}[hbp]
+  \begin{center}
+    \includegraphics[scale=0.75]{image/Mailbox.pdf}
+    \caption{Mailbox}
+    \label{fig:mailbox}
+  \end{center}
+\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 Interrupt Mailbox 
+
+SPU Outbound MMailbox とほとんど同じだが、SPE からキューにデータが書き込まれると、
+PPE に対して割り込みイベントが発生しデータの読み出しタイミングを通知することができる
+
+\end{enumerate}
+
+\section{開発環境}
+
+\subsection{libSPE2}
+
+libSPE2 とは PPU が SPE を扱うためのライブラリ群である。libSPE2 は SPE Context Creation、
+SPE Program Image Handing、SPE Run Control、SPE Event Handing、SPE MFC PRoblem State Facilities、
+Direct SPE Access for Applications という基本構成できている。Cell に基本プログラムは次のようになる。
+
+\begin{enumerate}
+\item create N SPE context
+\item Load the appropriate SPE executable object into each SPE context's local store
+\item Create N threads
+\item Wait for all N threads to terminate
+\end{enumerate}
+
+\subsection{SPU C/C++言語拡張}
+
+SPE は基本的な C 言語の一部の機能しか使えないが、拡張も行われている。
+以下にその一部を示す。\cite{gongo}
+
+\begin{table}[htb]
+  \begin{center}
+    \caption{SPU C/C++ 言語拡張 API}
+    \label{tab:cell_cpp}
+    \begin{tabular}{|l|l|}
+      \hline
+      spu\_mfcdma32 & DMA 転送を開始する \\
+      \hline
+      spu\_read\_in\_mbox & PPE からの mail を取得する \\
+      \hline
+      spu\_write\_out\_mbox & PPE へ mail を送信する \\
+      \hline
+      spu\_add、spu\_sub、spu\_mul & SIMD 演算 (加算、減算、乗算) \\
+      \hline
+    \end{tabular}
+  \end{center}
+\end{table}
+
+このように Cell 特有の関数やアセンブラ命令を学ぶ事が必要となる。
+
+
+\subsection{SPURS}
+
+ここでは現在発表されている Cell の開発環境 SPURS について説明する。
+SPURS \cite{spurs}とは閉じた並列分散システムと考えることができる。Cell の環境で
+いかに効率よく動作させるかということを考えたシステムである。Cell の性能を存分に生かすためには 
+SPE を効率よく使い切ることと、あらゆるレベルで並列処理を行うことである。\\
+
+Cell の性能を最大限に生かすためには、SPE を止めることなくデータのアクセスを最小限に
+留めて行うことが重要になる。
+
+そこで SPURS では、SPE を効率よく利用するために、PPU に依存せずに SPU コードを選択し、
+実行することと機能は効率重視で割り切ることを挙げている。そのために SPE にカーネルを組み込んでいる。
+
+アプリケーションを複数 SPE で実行するとき、アプリケーションプログラムをできるだけ小さな Task に分割し、
+通信ライブラリを用いて Task 間を依存関係で結合する。LS 常駐のカーネルは実行可能な Task を選んで実行する。
+
+また、アプリケーションを分割するとき、プログラムがデータを伴うとき、ジョブに分割し、並び替えた上で、
+LS 常駐のカーネルはジョブリストからジョブをとってきて実行する。
+
+また、これたはデータを扱うため、SPURS はパイプライン実行を行う。
+
+SPURS は確かにライブラリとして優れた物であると思われるが、公開はされてない。
+
+\begin{figure}[hbp]
+  \begin{center}
+    \vskip -\lastskip \vskip +30pt
+    \includegraphics[scale=0.8]{image/SPURS_task.pdf}
+    \caption{Task}
+    \label{fig:spurs_task}
+  \end{center}
+\end{figure}
--- a/paper/sigos.aux	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/sigos.aux	Wed Mar 18 00:06:11 2009 +0900
@@ -1,8 +1,26 @@
 \relax 
+\citation{cell}
+\citation{cell}
+\newlabel{chap:chapter2}{{1}{1}}
+\newlabel{fig:cell-main}{{1}{1}}
+\citation{akira}
+\newlabel{fig:ppe}{{2}{2}}
+\newlabel{fig:spe}{{3}{2}}
+\newlabel{fig:simd}{{4}{2}}
+\newlabel{fig:simd_no}{{5}{2}}
+\newlabel{fig:mailbox}{{6}{2}}
+\citation{gongo}
+\citation{spurs}
 \citation{kono}
 \citation{libspe2}
 \bibstyle{ipsjunsrt}
 \bibdata{sigos}
-\bibcite{kono}{1}
-\bibcite{libspe2}{2}
-\gdef\ipsj@lastpage{1}
+\bibcite{cell}{1}
+\bibcite{akira}{2}
+\bibcite{gongo}{3}
+\newlabel{tab:cell_cpp}{{1}{3}}
+\newlabel{fig:spurs_task}{{7}{3}}
+\bibcite{spurs}{4}
+\bibcite{kono}{5}
+\bibcite{libspe2}{6}
+\gdef\ipsj@lastpage{4}
--- a/paper/sigos.bbl	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/sigos.bbl	Wed Mar 18 00:06:11 2009 +0900
@@ -1,5 +1,20 @@
 \begin{thebibliography}{1}
 
+\bibitem{cell}
+{Sony Corporation}: {Cell broadband engine architecture} (2005).
+
+\bibitem{akira}
+{Akira KAMIZATO}: {Cell
+  を用いたゲームフレームワークの提案},{琉球大学理工学研究科情報工学専攻
+  平成19年度学位論文} (2008).
+
+\bibitem{gongo}
+: {SourceForge.JP: Project Info - Cerium Rendering Engine},
+  \url{https://sourceforge.jp/projects/cerium/}.
+
+\bibitem{spurs}
+{Keisuke Inoue}: {SPU Centric Execution Model} (2006).
+
 \bibitem{kono}
 {Shinji KONO}: {検証を自身で表現できるハードウェア、ソフトウェア記述言語
   Continuation ba sed C と、その Cell
--- a/paper/sigos.blg	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/sigos.blg	Wed Mar 18 00:06:11 2009 +0900
@@ -3,38 +3,41 @@
 The style file: ipsjunsrt.bst
 Reallocated wiz_functions (elt_size=4) to 3400 items from 0.
 Database file #1: sigos.bib
+Warning--there's no number and/or volumeakira
+Warning--Missing required argument pages in akira
+Warning--Missing required argument author in gongo
 Warning--there's no number and/or volumekono
 Warning--Missing required argument pages in kono
-You've used 2 entries,
+You've used 6 entries,
             2207 wiz_defined-function locations,
-            540 strings with 4413 characters,
-and the built_in function-call counts, 297 in all, are:
-= -- 17
-> -- 8
+            554 strings with 4745 characters,
+and the built_in function-call counts, 786 in all, are:
+= -- 47
+> -- 21
 < -- 0
-+ -- 4
-- -- 2
-* -- 20
-:= -- 53
-add.period$ -- 2
-call.type$ -- 2
++ -- 11
+- -- 5
+* -- 45
+:= -- 123
+add.period$ -- 6
+call.type$ -- 6
 change.case$ -- 0
 chr.to.int$ -- 0
-cite$ -- 4
-duplicate$ -- 20
-empty$ -- 34
-format.name$ -- 4
-if$ -- 63
+cite$ -- 11
+duplicate$ -- 48
+empty$ -- 98
+format.name$ -- 10
+if$ -- 178
 int.to.chr$ -- 0
-int.to.str$ -- 2
-missing$ -- 1
-newline$ -- 9
-num.names$ -- 2
-pop$ -- 8
+int.to.str$ -- 6
+missing$ -- 2
+newline$ -- 21
+num.names$ -- 5
+pop$ -- 32
 preamble$ -- 1
 purify$ -- 0
 quote$ -- 0
-skip$ -- 11
+skip$ -- 35
 stack$ -- 0
 substring$ -- 0
 swap$ -- 1
@@ -42,9 +45,9 @@
 text.prefix$ -- 0
 top$ -- 0
 type$ -- 0
-warning$ -- 2
-while$ -- 2
-width$ -- 3
-write$ -- 15
-is.kanji.str$ -- 7
-(There were 2 warnings)
+warning$ -- 5
+while$ -- 5
+width$ -- 7
+write$ -- 40
+is.kanji.str$ -- 17
+(There were 5 warnings)
Binary file paper/sigos.dvi has changed
--- a/paper/sigos.log	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/sigos.log	Wed Mar 18 00:06:11 2009 +0900
@@ -1,4 +1,4 @@
-This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4) (format=platex-euc 2009.2.10)  16 MAR 2009 17:25
+This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4) (format=platex-euc 2009.2.10)  18 MAR 2009 00:04
 **sigos
 (./sigos.tex
 pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2003/12/01> patch level 0)
@@ -134,18 +134,49 @@
 LaTeX Font Info:    External font `cmex10' loaded for size
 (Font)              <7> on input line 67.
 
-(./introduction.tex) (./cell2.tex) (./cerium.tex) (./texture.tex)
-(./compare.tex) (./conclusion.tex) (./sigos.bbl) [1
+(./introduction.tex) (./cell.tex
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 12.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 12.
+File: image/Cell-main2.pdf Graphic file (type eps)
+ <image/Cell-main2.pdf>
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <7> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 21.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <7> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 21.
+ [1
+
 
+]
+File: image/PPE.pdf Graphic file (type eps)
+ <image/PPE.pdf>
+File: image/SPE.pdf Graphic file (type eps)
+
+<image/SPE.pdf>
+File: image/SIMD.pdf Graphic file (type eps)
+ <image/SIMD.pdf>
+File: image/SIMD_no.pdf Graphic file (type eps)
+ <image/SIMD_no.pdf>
+File: image/Mailbox.pdf Graphic file (type eps)
+ <image/Mailbox.pdf>
+[2]
+Overfull \hbox (14.60057pt too wide) in paragraph at lines 155--166
+ [] 
+ []
+
+File: image/SPURS_task.pdf Graphic file (type eps)
+<image/SPURS_task.pdf>) (./cerium.tex) (./texture.tex) (./compare.tex)
+(./conclusion.tex) (./sigos.bbl [3]) [4
 
 ] (./sigos.aux) ) 
 Here is how much of TeX's memory you used:
- 1256 strings out of 95542
- 14875 string characters out of 1190860
- 67554 words of memory out of 1500000
- 4419 multiletter control sequences out of 10000+50000
- 16567 words of font info for 64 fonts, out of 1200000 for 2000
+ 1301 strings out of 95542
+ 15389 string characters out of 1190860
+ 68554 words of memory out of 1500000
+ 4450 multiletter control sequences out of 10000+50000
+ 17648 words of font info for 68 fonts, out of 1200000 for 2000
  14 hyphenation exceptions out of 8191
- 30i,10n,21p,194b,260s stack positions out of 5000i,500n,6000p,200000b,5000s
+ 30i,10n,22p,194b,428s stack positions out of 5000i,500n,6000p,200000b,5000s
 
-Output written on sigos.dvi (1 page, 5072 bytes).
+Output written on sigos.dvi (4 pages, 19888 bytes).
Binary file paper/sigos.pdf has changed
--- a/paper/sigos.tex	Tue Mar 17 23:50:24 2009 +0900
+++ b/paper/sigos.tex	Wed Mar 18 00:06:11 2009 +0900
@@ -69,7 +69,7 @@
 % 本文はここから始まる
 
 \input{introduction}   % 研究目的
-\input{cell2}
+\input{cell}           % Cell
 \input{cerium}         % Cerium
 \input{texture}        % 開発過程
 \input{compare}        % 評価と考察