0
|
1
|
|
2 \section{ Multi core system}
|
|
3
|
|
4 複数のCPUを載せたコンピュータは昔から使われて来たが、最近の
|
|
5 傾向は、一つのChipに複数のCPUコアを載せたものの登場である。
|
|
6 従来のマルチプロセッサは同期をサポートしたキャッシュを経由し
|
|
7 メインメモリにアクセスすることが多いが、最近開発されたMulti
|
|
8 Core では、CPU間の通信に特別なポートを用意している。
|
|
9 例えば、IntelはQuick Pathと言う通信ポートががある。
|
|
10 これにより、メインメモリへのアクセスによる競合を避けることが
|
|
11 できる。しかし、その分、複雑なプログラミングが必要となる。
|
|
12
|
|
13 Cell Broadband Engine\cite{Cell} は、SCEIとIBMによって開発された
|
|
14 PS3ゲーム
|
|
15 機用のCPUであり、2 thread のPPU(PowerPC Unit)と、8個のSPU (Synergetic
|
|
16 Processing Unit) を持つ(図\ref{cellarch})。本研究で用いたPS3Linux (FedoreCore 6)
|
|
17 では、6個のSPUを使うことが出来る。SPUはそれぞれ256kbのローカル
|
|
18 メモリを持ち、バスに負担をかけることなく並列に計算を進めること
|
|
19 が出来る。SPUからメインメモリへは、SPUの機械語から直接アクセス
|
|
20 することは出来ず、CellのMFC(Memory Flow Controller)へDMA
|
|
21 (Direct Memory Access) 命令を送ることで行われる。
|
|
22 SPUはグラフィックスに適した、4つの固定小数点、浮動小数点を同時に
|
|
23 演算する命令などを持ち、PPUに比べて高速な演算が可能であり、
|
|
24 ほとんどの演算をSPU上で進めることが推奨されている。
|
|
25
|
|
26 \begin{figure}[htb]
|
|
27 \begin{center}
|
|
28 \includegraphics[width=6cm]{fig/cell.eps}
|
|
29 \caption{cellarch}
|
|
30 \end{center}
|
|
31 \label{cellarch}
|
|
32 \end{figure}
|
|
33
|
|
34
|