annotate manager-cr.tex @ 9:fea1ac32de27

*** empty log message ***
author gongo
date Wed, 26 Mar 2008 12:48:16 +0900
parents b70a62630a57
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
1 \subsubsection{パイプライン処理}
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
2 Cell ではそれぞれのコアがメインメモリを
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
3 直接参照することは出来ず、DMA 転送によりデータをやりとりする。
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
4 DMA は CPU を介さず直接データ転送を行う方式である。
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
5 SPE は DMA 完了を待たずに他の処理を行うことが出来るので、
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
6 DMA のレイテンシを隠すことが出来る。
7
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
7
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
8 また、ダブルバッファリングを行うことで
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
9 パイプライン処理が可能となる (\figref{fig-pipeline}) 。
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
10
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
11 \begin{figure}[tb]
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
12 \begin{center}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
13 \includegraphics[scale=0.43]{figure/pipeline.pdf}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
14 \caption{Pipeline}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
15 \label{fig-pipeline}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
16 \end{center}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
17 \end{figure}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
18
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
19 パイプライン処理を入れた Task Manager の Scheduler を以下に示す。
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
20
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
21 \begin{verbatim}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
22
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
23 do {
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
24 task3->write();
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
25 task2->exec();
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
26 task1->read();
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
27
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
28 taskTmp = task3;
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
29 task3 = task2;
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
30 task2 = task1;
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
31 task1 = task1->next(this, taskTmp);
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
32 } while (task1);
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
33
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
34 \end{verbatim}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
35
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
36 Task Manager を \figref{fig-cerium} に適用させると、
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
37 \figref{fig-manager-pipeline} のようにパイプライン的に動作する。
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
38
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
39 \begin{figure}[tb]
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
40 \begin{center}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
41 \includegraphics[scale=0.36]{figure/manager-pipeline.pdf}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
42 \caption{Task Manager が行う Pipeline}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
43 \label{fig-manager-pipeline}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
44 \end{center}
bd8574dedd1b *** empty log message ***
gongo
parents:
diff changeset
45 \end{figure}