comparison cerium-manager.tex @ 5:30bf38a518e8

*** empty log message ***
author gongo
date Tue, 25 Mar 2008 09:48:38 +0900
parents 869c475cc108
children a46c6f313a0b
comparison
equal deleted inserted replaced
4:869c475cc108 5:30bf38a518e8
1 \subsection{Task Manager} 1 \section{Task Manager}
2 Task Manager は、Task と呼ばれる分割された各プログラムを 2 Task Manager は、Task と呼ばれる分割された各プログラムを
3 管理するライブラリである。Task 同士の依存関係を考慮しながら 3 管理するライブラリである。Task 同士の依存関係を考慮しながら
4 メモリ上にマッピングし、SPE 上ではそのプログラムを 4 メモリ上にマッピングし、SPE 上ではそのプログラムを
5 DMA 転送によりロードする (\figref{fig-manager-load}) 。 5 DMA 転送によりロードする (\figref{fig-manager-load}) 。
6 SPE は 256KB という小さなデータ量しか持てず、 6 SPE は 256KB という小さなデータ量しか持てず、
62 return 0; 62 return 0;
63 } 63 }
64 \end{verbatim} 64 \end{verbatim}
65 } 65 }
66 66
67 \subsubsection{並列処理} 67 \subsection{並列処理}
68 68
69 Cell ではあらゆるレベルで並列に動作させることが求められる。 69 Cell ではあらゆるレベルで並列に動作させることが求められる。
70 ダブルバッファがその一例として挙げられる。 70 ダブルバッファがその一例として挙げられる。
71 前述した通り、Cell ではそれぞれのコアがメインメモリを 71 前述した通り、Cell ではそれぞれのコアがメインメモリを
72 直接参照することは出来ず、DMA 転送によりデータをやりとりする。 72 直接参照することは出来ず、DMA 転送によりデータをやりとりする。
81 \caption{Pipeline} 81 \caption{Pipeline}
82 \label{fig-pipeline} 82 \label{fig-pipeline}
83 \end{center} 83 \end{center}
84 \end{figure} 84 \end{figure}
85 85
86 パイプライン処理を入れた Task Manager の Scheduler を以下に示す。
87
88 \begin{verbatim}
89
90 do {
91 task3->write();
92 task2->exec();
93 task1->read();
94
95 taskTmp = task3;
96 task3 = task2;
97 task2 = task1;
98 task1 = task1->next(this, taskTmp);
99 } while (task1);
100
101 \end{verbatim}
102
86 Task Manager を \figref{fig-cerium} に適用させると、 103 Task Manager を \figref{fig-cerium} に適用させると、
87 \figref{fig-manager-pipeline} のようにパイプライン的に動作する。 104 \figref{fig-manager-pipeline} のようにパイプライン的に動作する。
88 105
89 \begin{figure}[tb] 106 \begin{figure}[tb]
90 \begin{center} 107 \begin{center}