changeset 5:30bf38a518e8

*** empty log message ***
author gongo
date Tue, 25 Mar 2008 09:48:38 +0900
parents 869c475cc108
children a46c6f313a0b
files cerium-manager.tex cerium-rendering.tex cerium-scene_graph.tex compare.tex introduction.tex sigos.bib sigos.tex
diffstat 7 files changed, 100 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/cerium-manager.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/cerium-manager.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -1,4 +1,4 @@
-\subsection{Task Manager}
+\section{Task Manager}
 Task Manager は、Task と呼ばれる分割された各プログラムを
 管理するライブラリである。Task 同士の依存関係を考慮しながら
 メモリ上にマッピングし、SPE 上ではそのプログラムを
@@ -64,7 +64,7 @@
 \end{verbatim}
 }
 
-\subsubsection{並列処理}
+\subsection{並列処理}
 
 Cell ではあらゆるレベルで並列に動作させることが求められる。
 ダブルバッファがその一例として挙げられる。
@@ -83,6 +83,23 @@
   \end{center}
 \end{figure}
 
+パイプライン処理を入れた Task Manager の Scheduler を以下に示す。
+
+\begin{verbatim}
+
+    do {
+        task3->write();
+        task2->exec();
+        task1->read();
+
+        taskTmp = task3;
+        task3 = task2;
+        task2 = task1;
+        task1 = task1->next(this, taskTmp);
+    } while (task1);
+
+\end{verbatim}
+
 Task Manager を \figref{fig-cerium} に適用させると、
 \figref{fig-manager-pipeline} のようにパイプライン的に動作する。
 
--- a/cerium-rendering.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/cerium-rendering.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -1,4 +1,4 @@
-\subsection{Rendering Engine} \label{sec-rendering-engine}
+\section{Rendering Engine} \label{sec-rendering-engine}
 Rendering Engine は Polygon から Span を生成する部分と Span に RGB を
 マッピングし描画する部分と二つに分けることが出来る。
 Span とは、Polygon に対するある特定の Y 座標に関するデータを抜き出した
@@ -21,7 +21,7 @@
 先に述べたように、SPE が扱えるメモリ領域は 256KB と非常に小さい。
 本研究の画面環境が 1920x1080 であるため、Span の情報は元より、
 描画に使う Z Buffer のサイズも、
-1 line だけで 1920 * 4byte(RGBA) = 7 KB となる。
+1 line だけで 1920 * 4byte(RGB$\alpha$) = 7 KB となる。
 そこで、SPE に DMA 転送する前に、Y 座標を 8 line 毎に
 Span のリストを生成する。これを SpanPack とする。
 8 line 毎にとっている理由は、SPE が持てる Z Buffer が 8 line 分 (60KB)
--- a/cerium-scene_graph.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/cerium-scene_graph.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -1,6 +1,7 @@
-\subsection{Scene Graph}
+\section{Scene Graph}
 本研究では、ゲーム中の一つの場面 (Scene) を構成するオブジェクトやその振る舞い、
-ゲームのルールの集合を Scene Graph とする。Scene Graph のノードは
+ゲームのルールの集合を Scene Graph とする \cite{chiaki} 。
+Scene Graph のノードは
 親子関係を持つ木構造で構成される (\figref{fig-scene_graph}) 。
 
 \begin{figure}[tb]
--- a/compare.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/compare.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -1,5 +1,7 @@
 \section{評価と考察}
-Cerium Rendering Engine を用いて、OSMesa と同様に立方体を回転させる。
+
+Cerium Rendering Engine を用いて、
+OSMesa と同様に立方体を回転させる処理を評価する。
 今回、\figref{fig-cerium} で示した Task に対する CPU の割り振りは
 \tabref{tab:hyoka1} とする。
 
@@ -8,26 +10,52 @@
   \hbox to\hsize{\hfil
   \begin{tabular}{c|l} \hline \hline
     Task & CPU \\ \hline
-    SceneGraph to PolygonPack & PPE \\ \hline
-    Polygonpack to SpanPack   & PPE \\ \hline
+    SceneGraph to PolygonPack & PPE \\
+    Polygonpack to SpanPack   & PPE \\
     Rendering & SPE \\ \hline
   \end{tabular}\hfil}
 \end{table}
 
-PPE/SPE に対するコンパイルの最適化及びその時の実行 FPS を
-\tabref{tab:hyoka2} に示す。描画領域は 640x88 である。
+PPE/SPE に対するコンパイルの最適化レベル及びその時の実行 FPS を
+\tabref{tab:hyoka2} に示す。描画領域は 640x80 である。
 
 \begin{table}[b]
-  \caption{Cerium 実行速度 640x88} \label{tab:hyoka2}
+  \caption{Cerium 実行速度 (640x80)} \label{tab:hyoka2}
   \hbox to\hsize{\hfil
   \begin{tabular}{cc|l} \hline \hline
     PPE & SPE & FPS \\ \hline
     最適化なし & 最適化なし & 263 FPS \\
-    -O9 & 最適化なし & 317 FPS \\
-    最適化なし & -O9 & 812 FPS \\
-    -O9 & -O9 & 1610 FPS \\ \hline    
+    -O2 & 最適化なし & 317 FPS \\
+    最適化なし & -O2 & 812 FPS \\
+    -O2 & -O2 & 1355 FPS \\ \hline    
   \end{tabular}\hfil}
 \end{table}
 
 \tabref{tab:hyoka2} より、SPE に対する最適化が非常に有効であるといえる。
-(続き有ります)
+また、描画領域の大きさと実行速度は反比例すると考えると、
+1920x1080の時、OSMesa も合わせると \tabref{tab:hyoka3} のようになる。
+
+\begin{table}[b]
+  \caption{実行速度 (1920x1080)} \label{tab:hyoka3}
+  \hbox to\hsize{\hfil
+  \begin{tabular}{r|l|l} \hline \hline
+    & 実行環境 & 実行速度\\ \hline
+    1 & SDL(1.2)+OSMesa(6.5.2) & 18 FPS \\ 
+    2 & SDL(1.2)+OSMesa(6.5.2) with SPE & 24 FPS \\ 
+    3 & SDL(1.2.13)+OSMesa(7.0.2) with SPE & 43 FPS \\ 
+    4 & Cerium & 33 FPS \\ \hline
+  \end{tabular}\hfil}
+\end{table}
+
+Cerium は 環境 3 の速度を下回っている。
+この理由としては、SPE 上で動かしていない Task があるのが挙げられる。
+現在、DMA で SPE 上にプログラムをロードする機能を実装していないため、
+必要なプログラムを入れ替えることができない。
+そのため、現在は Renderer の Task だけを SPE 上にマッピングしてある。
+オーバーレイ機能を導入するという手法もあるが、
+ロード中は SPE が止まってしまうため好ましくない。
+
+また、パイプラインが正常に動いているかなど、
+アルゴリズムの検証を行う必要もある。
+この場合、C の下位言語である Continuation based C (CbC) を用いて、
+開発過程の各段階で検証する手法がある \cite{kono} 。
--- a/introduction.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/introduction.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -1,3 +1,5 @@
 \section{はじめに}
 %% シーケンシャルな実装ではマルチコアの力は引き出せないとか
-%% Cell の並列ほげほげは簡単じゃないとか(簡単って書いたらアウトだが)
+%% OSMesa はあれだから自分たちで作ったとか
+
+(続きます)
--- a/sigos.bib	Mon Mar 24 23:10:27 2008 +0900
+++ b/sigos.bib	Tue Mar 25 09:48:38 2008 +0900
@@ -6,4 +6,32 @@
 @misc{blender,
 author = "{Satoshi Yamasaki.}",
 title  = "Blender.jp - Blender Japanese Website",
-howpublished = "\url{http://blender.jp/}"}
\ No newline at end of file
+howpublished = "\url{http://blender.jp/}"}
+
+@article{kono,
+author = "{Shinji KONO.}",
+title = "検証を自身で表現できるハードウェア、ソフトウェア記述言語 Continuation ba sed C と、その Cell への応用",
+journal = "電子情報通信学会VLSI設計技術研究会",
+year  = 2008}
+
+@misc{osmesa,
+author = "",
+title  = "The Mesa 3D Graphics Library", 
+howpublished = "\url{http://www.mesa3d.org/}"}
+
+@misc{sdl,
+author = "",
+title  = "Simple DirectMedia Layer",
+howpublished = "\url{http://www.libsdl.org/}"}
+
+@article{akira,
+author = "{Akira KAMIZATO.}",
+title = "Cell を用いたゲームフレームワークの提案",
+journal = "琉球大学工学部情報工学科平成19年度学位論文",
+year  = 2008}
+
+@article{chiaki,
+author = "{Chiaki SUGIYAMA.}",
+title = "SceneGraph と StatePattern を用いたゲームフレームワークの設計と実装",
+journal = "琉球大学工学部情報工学科平成19年度学位論文",
+year  = 2008}
\ No newline at end of file
--- a/sigos.tex	Mon Mar 24 23:10:27 2008 +0900
+++ b/sigos.tex	Tue Mar 25 09:48:38 2008 +0900
@@ -68,13 +68,12 @@
 
 % 本文はここから始まる
 
-\input{introduction} % はじめに
-\input{cell}         % Cell
-\input{cerium}       % Cerium
-\input{cerium_dev}   % 開発過程
-\input{compare}      % 評価と考察
-
-%\input{conclusion.tex}
+\input{introduction}   % はじめに
+\input{cell}           % Cell
+\input{cerium}         % Cerium
+\input{cerium_dev}     % 開発過程
+\input{compare}        % 評価と考察
+\input{conclusion.tex} % まとめ
 
 \bibliographystyle{ipsjunsrt}
 \bibliography{sigos}