...

大規模組み合わせ回路による 演算器アレイを用いたアクセラレータ

by user

on
Category: Documents
4

views

Report

Comments

Transcript

大規模組み合わせ回路による 演算器アレイを用いたアクセラレータ
学位論文 博士(工学)
学位論文 博士 (工学)
大規模組み合わせ回路による
大規模組み合わせ回路による
演算器アレイを用いたアクセラレータに関する研究
演算器アレイを用いたアクセラレータに関する研究
2014年度
2014 年度
慶應義塾大学大学院理工学研究科
慶應義塾大学大学院理工学研究科
小崎 信明
信明
小
論文要旨
近年,スマートフォンやコンパクトデジタルカメラなどモバイル端末の多機能化に
伴い,モバイル端末に対してはこれらの処理の高速化とバッテリー駆動時間長期化の
両立が求められるようになった.これらの要求を満たすために,低電力で高性能なアク
セラレータである粗粒度動的再構成プロセッサ (CGDRP) が注目されている.CGDRP
はアレイ状に配置された演算素子 (PE) とメモリから構成され,演算素子の接続網や
演算内容を毎クロック切り換えることで様々な画像処理アプリケーションを実現する.
しかし,動的再構成や PE 間の同期をとるためのクロックツリーで多くの電力を消費
しており,電力効率に改善の余地がある.
そこで,同等の性能をより低消費電力で実現するアーキテクチャとして Cool Mega
Array(CMA) を提案する.CMA は大規模な組み合わせ回路による PE アレイ,マイク
ロコントローラ,データメモリの 3 つのモジュールで構成する.PE アレイは再構成す
る頻度をアプリケーション毎とするが,比較的大規模化することで柔軟性を維持する.
また,PE アレイからメモリを排除することでクロックツリーをマイクロコントロー
ラに集約でき,クロックツリーによる電力オーバヘッドに悩まされず PE アレイを拡
張できる.CGDRP ではパイプライン段数を増やす際に演算毎の遅延時間の差が性能
オーバヘッドになっていた.CMA では組み合わせ回路を用いることでこのオーバヘッ
ドを削減し,効果的に性能を制御できる.
本論文では 8 × 8 サイズの PE アレイをもつ CMA-1 を提案し,アプリケーションの
実装手法と制御手法の最適化を行う.次に PE アレイ接続網の最適化により面積効率
を高める.最後にオフロードエンジン型とコプロセッサ型の CMA を比較し,より電
力効率の高いアーキテクチャを明らかにする.CMA-1 にアプリケーションを実装する
際,一つの入力データに対する演算を PE アレイの列方向に配置し,直結網を優先的
に用いることで PE アレイの遅延を最小化できる.また,PE アレイに与えるデータ幅
を 8bit から 24bit に拡張してアプリケーションを実装することで PE アレイ使用率を高
めつつコントローラの負荷を下げる.これにより,CMA-1 は最大で 2.72 GOPS/11.2
mW(247 MOPS/mW) の電力効率を達成した.これは同じプロセスで同じサイズに実
装された CGDRP である MuCC RA-3 の 10 倍の電力効率で,世界でも最高レベルの電
力効率を達成した.
また,PE アレイへの供給電圧を下げると電力効率が悪化する課題を解決するため
に,ウェーブパイプラインを適用する.そのために,PE アレイの遅延時間をモデル化
し,アプリケーション構成情報から動作周波数を算出可能にした.ウェーブパイプラ
インの適用により,PE アレイへの供給電圧が 0.45V の時の電力効率を最大で 2.1 倍改
善し,CMA-1 の PE アレイへの供給電圧が 0.6V 以下の領域ではウェーブパイプライ
ンの適用で電力効率を改善できることを明らかにした.次に,PE アレイ接続網の最
適化を行った.PE アレイの行に対して同じ定数を供給する定数パスを設けることで,
柔軟性を損なうことなく配線資源を削減し,PE アレイの面積を 22%,電力を 23%削
減した.
最後にオフロードエンジン型とコプロセッサ型の CMA を比較し,コプロセッサ型
の CMA は面積を 24.8%削減し,性能を 2.7 倍改善でき,システム全体で消費される
電力が少ないと判明した.これにより,65 nm CMOS プロセスを用いた小規模なシス
テムではコプロセッサ型のアクセラレータの方が効率が良いことを明らかにした.
Abstract
Recently, mobile devices like smart phone have become multifunctional. High
performance and prolongation of time driven by a battery are required along with
it. Coarse Grained Dynamically Reconfigurable Processors (CGDRPs) have been
paid considerably attention as an accelerator. CGDRP has an array of processing
elements (PEs) and memory modules. Some CGDRPs provide multiple sets of
configuration data called hardware contexts, and execute application programs by
switching them in one or a few clock cycles. Since the data flow graph of the target
computation can be directly mapped and executed with the numerous PEs in the
PE array, the required performance can be achieved. However, CGDRPs still have
energy can be saved. One is the frequent dynamically reconfiguration of the PE
operations and their interconnection. Another is for storing of intermediate results
in PE registers. The large clock tree distributed in the PE array for the dynamic
reconfiguration and intermediate storing also consumes a lot of power.
Therefore, I proposed a highly power efficient media accelerator architecture
called Cool Mega Array or CMA. CMA architecture consists of a large PE array
using combinational circuit, micro controller for data management, and the data
memory. PE array reconfigures application by application, and maintains flexibility
by using large scale array. PE array can be extended without being bothered decrease of energy efficiency because of the clock tree localized to micro controller.
CGDRPs are bothered by difference of delay of each PE operations for increasing
the pipeline stage, on the other hand, CMA can reduce this overhead and control
performance easily by using combinational circuit.
In this thesis, I propose CMA-1 which has 8 × 8 PE Array, and optimize implementation method of application and control method. When implementing an
application to CMA, place operations for single data in the vertical direction of the
PE array and use direct-link preferentially in order to reduce delay of PE array.
Additionally, I have extended the bit width of input data to PE array and reduced
the frequency of data fetch in order to reduce workload of micro controller. As a
result, CMA-1 has achieved 2.72 GOPS/11.2 mW (247 MOPS/mW). This result is
10 times the power efficiency of MuCCRA-3 implemented in the same area using
same 65nm CMOS process, and highest level power efficiency in the world. Wavepipelining improves power efficiency 2.1 times when the supply voltage to PE array
is lowered below 0.6V.Next, I optimize connection network of PE array. 22% area
and 23% power reduction were achieved without impairing the flexibility by providing links that share the same constant value for the PEs in the same row in PE
array.
Then, I compared offload engine style CMA and co-processor style CMA. As
a result, co-processor style CMA reduced 24.8% area, and achieved 2.7 times improvement of performance. Therefore, I revealed that co-processor stile accelerator
is suitable for small-scale system using 65nm CMOS process in order to enhance
power efficiency.
i
目次
第1章 緒論
1.1 研究背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 研究目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第 2 章 リコンフィギャラブルアクセラレータ
2.1 概要 . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 オフロードエンジン型の CGDRP . . . . . . . . .
2.2.1 DRP . . . . . . . . . . . . . . . . . . . . .
2.2.2 STP エンジン . . . . . . . . . . . . . . .
2.2.3 D-Fabrix . . . . . . . . . . . . . . . . . .
2.2.4 IPFlex DAPDNA . . . . . . . . . . . . . .
2.3 コプロセッサ型の CGDRP . . . . . . . . . . . .
2.3.1 S5 Engine . . . . . . . . . . . . . . . . . .
2.3.2 ADRES . . . . . . . . . . . . . . . . . . .
2.4 本章のまとめ . . . . . . . . . . . . . . . . . . . .
2.4.1 オフロードエンジン型とコプロセッサ型
2.4.2 構成情報の格納 . . . . . . . . . . . . . .
2.4.3 レジスタの配置 . . . . . . . . . . . . . .
2.4.4 PE 間の接続網 . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 3 章 低消費電力化手法
3.1 消費電力の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 ダイナミック電力 . . . . . . . . . . . . . . . . . . . . . .
3.1.2 スタティック電力 . . . . . . . . . . . . . . . . . . . . . .
3.2 ダイナミック電力削減手法の例 . . . . . . . . . . . . . . . . . .
3.2.1 コンフィギュレーションにかかる電力 . . . . . . . . . .
3.2.2 クロックゲーティング及びオペランドアイソレーション
3.2.3 DVS を用いた電力削減手法 . . . . . . . . . . . . . . . .
3.2.4 Dual-Vdd の適用 . . . . . . . . . . . . . . . . . . . . . . .
3.2.5 SOTB . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 リーク電力削減手法の例 . . . . . . . . . . . . . . . . . . . . . .
3.3.1 パワーゲーティング . . . . . . . . . . . . . . . . . . . . .
3.3.2 Dual-Vth . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 CMA の基礎となる省電力化手法 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
9
13
15
20
20
22
25
25
26
26
26
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
28
29
29
30
30
31
32
33
33
34
35
ii
第 4 章 CMA アーキテクチャ
4.1 CMA の概要 . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 CMA のアーキテクチャ . . . . . . . . . . . . . . . . . . . .
4.3 CGDRP との比較 . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 クロックツリーの局所化 . . . . . . . . . . . . . . .
4.3.2 時間効率の改善 . . . . . . . . . . . . . . . . . . . .
4.3.3 コンテキストメモリの削減と PE アレイの大規模化
4.3.4 コンセプトのまとめ . . . . . . . . . . . . . . . . . .
第5章
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
CMA-1
PE アレイ . . . . . . .
PE . . . . . . . . . . .
データメモリ . . . . .
マイクロコントローラ
構成情報転送 . . . . .
CMA-1 の実装 . . . .
CMA-1 評価環境 . . .
評価 . . . . . . . . . .
5.8.1 面積 . . . . . .
5.8.2 電力 . . . . . .
5.8.3 電力効率 . . .
本章のまとめ . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 6 章 アプリケーションの最適化と評価
6.1 CMA-1 のアプリケーション開発環境
6.1.1 shapa . . . . . . . . . . . . . .
6.1.2 Black Diamond コンパイラ . .
6.2 開発した評価アプリケーション . . .
6.2.1 DCT(離散コサイン変換) . . .
6.2.2 SAD . . . . . . . . . . . . . .
6.2.3 SATD . . . . . . . . . . . . . .
6.2.4 SSD . . . . . . . . . . . . . . .
6.2.5 Edge Filter . . . . . . . . . . .
6.2.6 α-Blender . . . . . . . . . . . .
6.2.7 Sepia Filter . . . . . . . . . . .
6.3 アプリケーションの最適化 . . . . . .
6.3.1 演算配置の最適化 . . . . . . .
6.3.2 データ幅の拡張 . . . . . . . .
6.3.3 電力評価 . . . . . . . . . . . .
6.3.4 CMA 向きのアプリケーション
6.4 本章のまとめ . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
38
38
39
40
40
.
.
.
.
.
.
.
.
.
.
.
.
43
43
44
46
47
48
48
49
49
50
51
51
52
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
55
55
55
56
57
58
58
59
59
59
60
60
60
63
66
67
68
iii
第7章
7.1
7.2
7.3
7.4
電力効率の最適化手法と評価
ウェーブパイプラインの概要 . . . . . . . . . . . . .
タイミング制御 . . . . . . . . . . . . . . . . . . . .
遅延の推定 . . . . . . . . . . . . . . . . . . . . . . .
ウェーブパイプラインの適用による電力効率の改善
第8章
8.1
8.2
8.3
8.4
8.5
PE アレイ接続網の最適化
モチベーション . . . . . . . . . . . .
代表的な CGDRP の PE アレイ接続網
CMA 接続網の課題 . . . . . . . . . .
定数専用リンクの提案 . . . . . . . . .
様々な接続網の CMA . . . . . . . . .
8.5.1 CMA-DL . . . . . . . . . . . .
8.5.2 CMA-3SE . . . . . . . . . . .
8.5.3 CMA-EN . . . . . . . . . . . .
8.5.4 CMA-NN . . . . . . . . . . . .
8.5.5 CMA-Const . . . . . . . . . . .
8.5.6 CMA-Const-H . . . . . . . . .
接続網の評価 . . . . . . . . . . . . . .
8.6.1 評価環境 . . . . . . . . . . . .
8.6.2 面積評価 . . . . . . . . . . . .
8.6.3 遅延評価 . . . . . . . . . . . .
8.6.4 電力評価 . . . . . . . . . . . .
8.6.5 構成情報転送量評価 . . . . . .
本章のまとめ . . . . . . . . . . . . . .
8.6
8.7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
9.1 モチベーション . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 CMA-Geyser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 コプロセッサ型のアクセラレータ . . . . . . . . . . . . . .
9.2.2 CMA-Geyser の設計方針 . . . . . . . . . . . . . . . . . . .
9.2.3 CMA-Geyser の制御 . . . . . . . . . . . . . . . . . . . . . .
9.2.4 CMA-Geyser の PE アレイモジュール . . . . . . . . . . . .
9.3 比較対象:Cube-1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Cube-1 アーキテクチャ概要 . . . . . . . . . . . . . . . . .
9.3.2 Geyser-Cube . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.3 CMA-Cube . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.4 誘導結合によるネットワーク形成 . . . . . . . . . . . . . .
9.3.5 ルータによる通信制御 . . . . . . . . . . . . . . . . . . . .
9.3.6 垂直バブルフロー制御 . . . . . . . . . . . . . . . . . . . .
9.3.7 データ転送制御 . . . . . . . . . . . . . . . . . . . . . . . .
9.4 評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.1 アプリケーションの実行 . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
70
73
75
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
77
77
77
77
79
79
79
81
81
82
82
83
84
84
84
86
86
87
88
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
91
91
91
92
93
94
94
95
96
98
98
98
99
100
100
100
iv
9.5
9.4.2 面積 .
9.4.3 性能 .
9.4.4 電力 .
本章のまとめ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 10 章 結論
10.1 本研究のまとめ . . . . . . . . . . . . . . . . . . . . . .
10.1.1 CMA-1 の提案 . . . . . . . . . . . . . . . . . . .
10.1.2 PE アレイへの演算配置最適化 . . . . . . . . . .
10.1.3 ウェーブパイプラインの適用 . . . . . . . . . .
10.1.4 PE アレイ接続網の最適化 . . . . . . . . . . . .
10.1.5 オフロードエンジン型とコプロセッサ型の比較
10.1.6 総括 . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
101
102
104
105
.
.
.
.
.
.
.
.
107
107
108
108
108
108
109
109
110
謝辞
113
参考文献
115
論文目録
119
v
表目次
2.1
DNA の PE の種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1
5.2
ALU に実装された命令群 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DAC の命令群 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.1
開発したアプリケーションプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1
評価アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.1
チップ実装環境
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
vi
図目次
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
Tile の構造 . . . . . . . . . . . . . . . . . .
Processing Element(PE)の構造 . . . . . .
DRP-1 の構造 . . . . . . . . . . . . . . . . .
DRP のコンパイルフローと動作検証フロー
状態に基づくコンテキスト分割 . . . . . .
STP エンジンの構成 . . . . . . . . . . . . .
プログラマブル演算器アレイの概要 . . . .
DMA エンジンの概要 . . . . . . . . . . . .
STP エンジン向け合成フロー . . . . . . . .
D-Fabrix のアレイ構成 . . . . . . . . . . . .
D-Fabrix のプログラミング例 . . . . . . . .
DAPDNA-2 のアーキテクチャ . . . . . . .
DNA のアレイアーキテクチャ . . . . . . .
S5610 の構成 . . . . . . . . . . . . . . . . .
S5 エンジンの構成 . . . . . . . . . . . . . .
コンパイラフロー . . . . . . . . . . . . . .
ADRES の構成 . . . . . . . . . . . . . . . .
再構成セル (RC) . . . . . . . . . . . . . . .
DRESC コンパイラのフレームワーク . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
7
8
9
10
11
12
13
15
16
17
18
20
21
22
23
24
25
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
トランジスタのゲートやメタル配線に生じるキャパシタンス
nMOS トランジスタ内を流れるリーク電流 . . . . . . . . . .
プロセスルールの微細化に伴うリーク電力の増加 . . . . . .
DVS による電力削減 . . . . . . . . . . . . . . . . . . . . . . .
並列コンフィギュレーションが可能なモデル . . . . . . . . .
論理ブロックへの Dual-Vdd の適用 . . . . . . . . . . . . . .
グローバル配線への Dual-Vdd の適用 . . . . . . . . . . . . .
SOTB の模式図 . . . . . . . . . . . . . . . . . . . . . . . . . .
スリープトランジスタの挿入 . . . . . . . . . . . . . . . . . .
Dual Vth の基本的適用法 . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
29
31
31
32
32
33
33
34
4.1
4.2
4.3
(a) 動的再構成プロセッサ (b)CMA アーキテクチャ . . . . . . . . . . . . . . . . . . . 38
処理時間の内訳 (a) 動的再構成プロセッサ (b)CMA . . . . . . . . . . . . . . . . . . . 39
CMA の電力効率コンセプト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1
CMA-1 のブロック図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
vii
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
CMA-1 の PE の構成 . . . . . . . . . . . . . . . . . . . . . . .
CMA-1 の SE の構成 . . . . . . . . . . . . . . . . . . . . . . .
CMA-1 のデータメモリ . . . . . . . . . . . . . . . . . . . . .
CMA-1 のチップ写真 . . . . . . . . . . . . . . . . . . . . . .
評価ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . .
評価環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
比較対象:MuCCRA-3 のフロアプラン . . . . . . . . . . . .
PE1 つの面積比率 . . . . . . . . . . . . . . . . . . . . . . . .
チップ面積使用率 . . . . . . . . . . . . . . . . . . . . . . . .
1.2V 供給時に 41.4 MHz で alpha ブレンダ実行時の消費電力
様々なアプリケーションの電力性能 . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
46
46
48
49
49
50
50
50
51
52
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
Black Diamond の GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
左:通常の Black Diamond のマッピング 右:並列処理を意識したマッピング
マッピングによる遅延の調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
演算配置の改善による性能の改善 . . . . . . . . . . . . . . . . . . . . . . . . .
演算配置の改善による電力性能の改善 . . . . . . . . . . . . . . . . . . . . . . .
PE アレイでの処理の拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ビット幅拡張による電力効率の改善 . . . . . . . . . . . . . . . . . . . . . . . .
電力消費の内訳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
様々なアプリケーションの電力性能 . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
56
61
62
63
64
65
65
66
67
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
通常の制御手法 . . . . . . . . . . . . . . . . . . . . . . .
ウェーブパイプラインの制御手法 . . . . . . . . . . . . .
演算結果を格納出来ない場合 . . . . . . . . . . . . . . . .
演算結果を格納するために 1 クロック遅らせた場合 . . .
演算結果を格納するために動作周波数を低くした場合 . .
1 クロック遅らせた場合に動作周波数を調整した場合 . .
ウェーブパイプラインを適用したときのタイミング制御
PE での各演算ごとの遅延時間 . . . . . . . . . . . . . . .
データフローグラフの例 . . . . . . . . . . . . . . . . . .
マッピングの例 . . . . . . . . . . . . . . . . . . . . . . .
ウェーブパイプラインを適用したときの電力効率 . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
70
70
71
71
71
72
73
74
74
75
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
代表的なデータパス . . . . . .
演算配置するときの課題 . . .
定数の伝搬 . . . . . . . . . . .
CMA-DL の PE の接続網 . . .
CMA-3SE の PE のブロック図
CMA-EN の PE . . . . . . . . .
CMA-NN の接続網 . . . . . . .
CMA-Const の PE アレイ . . .
CMA-Const-H の PE の構成 . .
CMA の面積比較 . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
78
78
80
80
81
82
82
83
84
85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
viii
8.11 CMA の遅延比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.12 100MHz でグレイスケールを実行したときの消費電力 . . . . . . . . . . . . . . . . . 87
8.13 CMA の構成情報量比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
9.15
9.16
9.17
CMA-Geyser アーキテクチャの概要 . . . . . . . . . . . . . .
CMA-Geyser のパイプライン処理 . . . . . . . . . . . . . . .
CMA-Geyser の PE アレイ . . . . . . . . . . . . . . . . . . . .
Cube-1 アーキテクチャの概要図 . . . . . . . . . . . . . . . .
三次元積層におけるボンディング接続 . . . . . . . . . . . . .
Geyser-Cube 全体像 . . . . . . . . . . . . . . . . . . . . . . .
Geyser-Cube レイアウト図 . . . . . . . . . . . . . . . . . . .
CMA-Cube レイアウト図 . . . . . . . . . . . . . . . . . . . .
誘導結合によるチップ間通信を利用した三次元ネットワーク
垂直バブルフロー制御 . . . . . . . . . . . . . . . . . . . . . .
JPEG デコードのタスクフロー . . . . . . . . . . . . . . . . .
CMA-Geyser と CMA-Cube の面積比較 . . . . . . . . . . . .
グレースケールの実行サイクル比較 . . . . . . . . . . . . . .
グレースケール実行サイクル数のスケーラビリティ . . . . .
JPEG デコードの実行サイクル比較 . . . . . . . . . . . . . .
グレースケール処理の消費電力 . . . . . . . . . . . . . . . .
JPEG デコード処理の消費電力 . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
92
93
94
95
96
97
97
98
99
100
101
102
102
103
103
104
104
10.1 研究の対応関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1
第1章 緒 論
1.1
研究背景
近年スマートフォンやタブレット端末などのモバイル端末などに,カメラモジュールが組み込
まれる様になり [1, 2],動画のストリーミング処理やグラフィック処理などのマルチメディア処理
がモバイル端末で頻繁に行われるようになった.モバイル端末に対しては,これらの処理の高速
化とバッテリー駆動時間の長期化の両立に対する要求が高まっている.
これらの要求を満たす手段として,汎用 CPU へのソフトウェアプログラミングの工夫による
高速化と,application-specific integrated circuit(ASIC) を用いた高速化が広く知られている.汎用
CPU を用いたプログラミングによる高速化は,様々なアプリケーションに対応可能であり柔軟性
が高い反面,性能の劇的な向上が難しく,電力面の削減が困難であるという課題がある.ASIC を
用いる場合,特定のアプリケーションの性能を大きく向上でき,電力効率が高いという点では優
れているが,高速化可能なアプリケーションが限定的であるという課題がある.そこで,粗粒度動
的再構成プロセッサ (CGDRP) [3, 4, 5, 6] が盛んに研究され,製品に組み込まれるるようになった.
CGDRP はアレイ状に配置された複数の演算素子 (PE) とメモリモジュールから構成される.PE
には,数値演算や論理演算を行う ALU,レジスタファイル,そして PE 間の接続を行う配線素子
(SE) やダイレクトリンクが含まれている.CGDRP は複数のハードウェアコンテキストと呼ばれ
る構成情報を持ち,この情報により各 PE の演算内容や SE の接続関係を制御している.動的(毎
クロックもしくは数クロック毎)にハードウェアコンテキストを切り替えることでハードウェア
構成を再構成し,様々なアプリケーションプログラムを実行可能である.アプリケーションプロ
グラムのデータフローグラフが直接的に PE アレイに配置され,複数の PE で同時に処理を行うた
め,比較的低い動作周波数と供給電圧で要求性能を満たすことができる.
これらの CGDRP は大変優れた性能を発揮するが,動的な再構成で消費する電力と,PE アレイ
全体にクロックを供給するクロックツリーで消費する電力が大きく,電力効率に関しては改善の
余地がある.
そこで,CGDRP の電力オーバヘッドを削減する電力効率の高いアクセラレータとして Cool Mega
Array(CMA) を提案する.
CMA は PE アレイとマイクロコントローラ,データメモリの 3 つのモジュールで構成する.
PE アレイはメモリ素子を排除した組み合わせ回路で構成する.また,再構成の頻度をアプリ
ケーション単位とすることで動的な再構成に必要な電力を削減する.メモリ素子を排除することに
より CGDRP よりも PE の面積を小さくできるので,同じ面積により多くの PE を搭載できる.PE
数を増やすことにより,動的な再構成をしないことによる柔軟性の低下を防ぐことが出来る.PE
アレイからメモリ素子を排除することにより,レジスタのセットアップ時間やクロックスキュー
に悩まされることなく,PE アレイへの供給電圧を下げることができる.CMA では要求性能を満
たせる範囲で積極的に PE アレイへの供給電圧を下げることで消費電力を削減できる.
第1章緒論
2
マイクロコントローラは,PE アレイとデータメモリ間のデータ転送の制御を行うモジュールと
PE アレイの構成情報の制御を行うモジュールで構成する.データ転送の制御を行うモジュールは,
データメモリからのデータフェッチ処理と PE アレイでの演算処理,データメモリへの演算結果の
書き込み処理をパイプライン化させることで,CMA の処理時間を最適化する.構成情報の制御を
行うモジュールは,アプリケーション実行中は値が変化しないため,クロックを遮断することで
消費電力を削減できる.
データメモリはデュアルポート構成にする.一方がマイクロコントローラと接続されている間,
もう一方は外部メモリと接続でき,これにより外部メモリとの読み書きに必要な時間と CMA で
の処理をオーバーラップさせ,データ転送時間を隠蔽する.
1.2
研究目的
本研究は CMA の電力効率最適化を目的とする.本論文では,まず CMA のプロトタイプであ
る CMA-1 を提案し CGDRP と電力効率を比較する.次に,CMA の高性能化を目的としたアプリ
ケーション実装の最適化手法を提案する.そして,電力効率の向上を目的としウェーブパイプラ
インの適用を行う.更に,PE アレイ接続網の最適構成を提案し,最後に,コプロセッサ型の CMA
とオフロードエンジン型の CMA を比較し,より電力効率の優れた CMA の構成を明らかにする.
まず,65 nm CMOS プロセスを用いて 4.2mm × 2.1mm サイズのチップに実装した CMA-1 を同
じプロセスを用いて同じ面積に実装された CGDRP である MuCCRA-3 [7] と面積,電力効率を比
較する.これにより,CGDRP の PE アレイを,組み合わせ回路で構成される PE アレイとマイク
ロコントローラに分割する CMA の設計方針の妥当性を検証する.
CMA-1 の PE アレイは,レジスタを持たない点以外は MuCCRA-3 の PE と同じ構成をしている.
そのため,アプリケーション実装のための PE アレイへの演算配置には MuCCRA 用に開発された
Black Diamond コンパイラを用いている.しかし,CMA はレジスタを持たずアプリケーション実
行中は再構成しないため,MuCCRA 用の演算配置では電力効率や性能が不十分である.また,PE
アレイの使用率が 40%を越えると BlackDiamond では演算を配置しきれなくなることが頻発する.
そこで,CMA 向けの演算配置手法をとして,PE アレイの列方向に演算を直線的に配置していく
演算配置手法を提案する.これにより,PE アレイに入力される複数のデータ間での遅延が平準化
し,PE アレイ全体での遅延時間を最適化する.また,CMA では PE アレイの伝搬遅延に対してマ
イクロコントローラの動作周波数が十分ではなく,マイクロコントローラの性能がボトルネック
になりやすい.そこで,8 ビットの RGB に分解されたデータではなく 24 ビットの画素データを
PE アレイに供給し,PE アレイ上で分解,処理,結合して出力するアプリケーションの実装手法
を提案する.これにより,PE アレイの利用効率を高めつつ,マイクロコントローラのボトルネッ
クを解消し,高性能化を実現する.
PE アレイへの電圧を下げると消費電力は削減できるが,遅延が増大する.PE アレイへの供給電
圧を下げても高い電力効率を維持する制御手法として,ウェーブパイプラインを適用する.ウェー
ブパイプラインは伝搬遅延の大きさを利用し,PE アレイで演算しているデータがマイクロコン
トローラに返ってくる前に次の演算データを PE アレイに入力させる手法である.前述の PE アレ
イへの演算配置の最適化により PE アレイの最大遅延と最小遅延の差が十分に小さくなったため
にウェーブパイプラインを適用が可能となった.PE アレイの遅延時間に合わせてマイクロコント
ローラの動作周波数を制御する必要がある.そのために,PE の遅延をモデル化し,ウェーブパイ
プラインの適用を実現する.
第1章緒論
3
CGDRP 向けの PE アレイ接続網に関しては研究されてきた [8, 9].前述のとおり,CMA-1 の PE
アレイはメモリ素子を持たない以外は MuCCRA-3 と同じ構成をしているが,再構成を行わない組
み合わせ回路であるため,配線資源の利用方法が MuCCRA-3 とは異なる.特に,PE アレイのサ
イズが大きいため,PE アレイへの入力値や中間変数を伝搬させるための配線資源が不足しがちで
あるという特性がある.しかし,配線資源を豊富にすると面積と消費電力が増加する.電力効率
や歩留まりの観点から,PE アレイを実装する面積は小さく抑えたい.そこで,CMA-1 に実装可
能なアプリケーションが減らない範囲で余分な配線資源を削減し,電力と面積を削減する PE ア
レイ接続網を検討する.
一般的に処理性能を高めるハードウェアの設計手法として次の 2 種類が知られている.1 つめ
が,CGDRP のように汎用 CPU の代わりに処理を行うコアを配置するオフロードエンジン型の設
計,2 つめが汎用 CPU に巨大な演算機を持たせるコプロセッサ型の設計である.オフロードエン
ジン型とコプロセッサ型ではアーキテクチャの構成が異なるため,公平な比較が困難であり,我々
が知る範囲ではこれまでに両者の実現方式で性能や電力効率を比較をした報告を見たことはない.
幸いにも,CMA はコントローラと PE アレイモジュールが独立しており両者の構成での比較が可
能である.そこで,ホスト CPU の演算ステージとして PE アレイを利用可能なコプロセッサ型の
CMA-Geyser を開発し,ホスト CPU と CMA コアが 3 次元無線接続されたオフロードエンジン型
の構成の Cube-1 と比較する.これにより,システム全体で電力効率の高い高性能なシステム構成
を明らかにする.
1.3
本論文の構成
本論文は以下に示すような構成を取る.始めに,第 2章で既存の CGDRP デバイスの紹介をす
る.第 3章で消費電力の概要,及び今までに研究されてきた電力削減手法を示す.第 4章では CMA
アーキテクチャの概略と設計について述べる.次に,第 5章で CMA-1 の設計と MuCCRA-3 との
比較結果を示す.そして第 6章で,アプリケーションの実装手法とそれによる電力効率の改善率、
CMA-1 の実チップに DVFS を適用したときに各アプリケーションの電力性能がどのように変化す
るかを示す.第 7章では,ウェーブパイプラインの概要とウェーブパイプラインを CMA に適用し
たときのにどの程度電力効率が改善されたかを示す.その後に,第 8章で,PE アレイ接続網の最
適化の検討結果を示す.第 9章では,オフロードエンジン型とコプロセッサ型の CMA の比較結果
を示す.最後に,第 10章で本論文の結論及び本研究の課題を述べる.
第1章緒論
4
5
第 2 章 リコンフィギャラブルアクセラレータ
2.1
概要
近年,モバイル端末の多機能化が進み,電子機器のシステム構成は大規模複雑化しており開発
コストが高まっている. しかし,商品寿命が短期化しており,開発コストの回収が困難になると
いう問題が発生している. 特に高速化が必要な処理に対して,従来は,ASIC(Application Specific
Integrated Circuit) により対処していたが,ASIC は特定アプリケーションの高速化に特化している
ため,近年の多機能化の要求を満足するのが困難である.
そこで,プログラムにより再構成可能な再構成可能デバイス(リコンフィギャラブルデバイス)
が用いられるようになった. 再構成可能デバイスは大きく 2 種類に分類できる. 一つ目が ANDOR アレイを組み合わせた Complex PLD や SRAM ベースの Look-Up Table(LUT) を用いた FPGA
など,1bit から 4bit の細粒度で再構成するデバイスである. 二つ目が数十ビット幅の ALU やス
イッチから構成されるプロセシングエレメント (PE) の単位で再構成する粗粒度な再構成デバイス
(CGDRP:Coarse Grained Dynamic Reconfigurable Processor) である. これらの再構成可能デバイス
は,回路の開発と検証が容易であり,システム開発工数を効果的に削減できる.
細粒度な再構成デバイスは 1 ビット単位で設計でき,プログラミングにより細かな調整が出来
るため高性能を発揮するが,メモリを多くもつため消費電力が大きく,また再構成にも時間がか
かる. 一方で,粗粒度な再構成デバイスは ALU や PE などの単位で再構成するため,細かな調整
は難しいが,比較的低消費電力で稼働し,短時間で再構成できる.
モバイル端末でのマルチメディア処理の高速化をターゲットとする場合,プログラムの書き換
えが頻繁であることと,バッテリー駆動時間の長期化のための低電力での稼働が望まれることか
ら,粗粒度再構成デバイスの方が利用価値が高い.
CGDRP はハードウェアコンテキストと呼ばれる構成情報により ALU の演算内容やスイッチン
グエレメント (SE) の接続方向を制御している. ハードウェアコンテキストを動的 (毎クロック,あ
るいは数クロック毎) に切り替えることでハードウェア構成を再構成する. CGDRP は,再構成す
る演算器アレイをモジュールを CPU の演算器モジュールとして持たせるコプロセッサ型の実装方
法と,CPU とは別のコアとして処理を行うオフロードエンジン型の実装方法がある. また,演算
器アレイの配置や,レジスタの配置,構成情報の持たせ型なでどで特徴が異なる. そこで,本章で
は粗粒度再構成デバイスに関する調査をまとめる.
2.2
オフロードエンジン型の CGDRP
2.2.1
DRP
Dynamically Reconfigurable Processor(DRP)は,旧 NEC エレクトロニクス社の動的リコンフィ
ギャラブルデバイスのアーキテクチャである [10].
第 2 章 リコンフィギャラブルアクセラレータ
2.2.1.1
6
アーキテクチャ
DRP の基本的なアーキテクチャを 図 2.1 に示す.DRP は,Tile と呼ばれる基本ユニットをアレイ
状に配置する事で,所望の規模の DRP コアを実現する.各 Tile は,演算器とレジスタファイル等
から構成される Processing Element(PE)を 8 × 8 の 2 次元アレイ状に並べ,その周辺に VMEM,
HMEM と呼ばれる分散メモリを縦横に拡散配置し,更に中央部に State Transition Controller(STC)
を配置した構成となっている.Tile ごとに STC と PE のアレイが組み合わされている為,各 Tile
が独自のステートマシンの制御下で独立して動作する事が可能である.
HMEM
HMEM
HMEM
Instruction Pointer
Flag Bus
HMEM HMCTR
Data Bus
Flag Input
PE PE PE PE PE PE PE PE VMEM
PE PE PE PE PE PE PE PE VMEM
Data Output
8bit
Register File
FLIP FLOP
VMCTR
VMCTR
ALU
State Transition Controller
Data Input
8bit x 2
PE PE PE PE PE PE PE PE VMEM
Instruction Memory
PE PE PE PE PE PE PE PE VMEM
DMU
PE PE PE PE PE PE PE PE VMEM
PE PE PE PE PE PE PE PE VMEM
PE PE PE PE PE PE PE PE VMEM
Bus Selector
Flag Output
PE PE PE PE PE PE PE PE VMEM
図 2.1
Tile の構造
図 2.2
Processing Element(PE)の構造
各 PE の構成を 図 2.2 に示す.各 PE は 8bit の ALU,シフトやデータ制御,簡単な論理演算を
行う Data Management Unit(DMU),8bit の Flip Flop,レジスタファイルから構成される.また,
コンフィギュレーション時には命令データが命令メモリに書き込まれ,実行中に STC が発行した
命令ポインタを命令メモリが受け,利用する命令データをロードする事でハードウェア構成を変
更する.
DRP のプロトタイプチップである DRP-1 の構造を図 2.3 に示す [10].DRP-1 は,DRP アーキテ
クチャの実証とアプリケーション開発・評価を目的としている.また,DRP-1 は 0.15µm の CMOS
プロセスを使用して設計,試作されている.
DRP-1 は Core の周辺部に 32bit の乗算器を 8 セット,メモリモジュール,PCI バスインタフェー
ス,SDRAM/SRAM/CAM インタフェースを搭載したシステム LSI である.また,PCI バスイン
タフェース,SDRAM/SRAM/CAM インタフェースにより単独で PCI バスへの接続や外部メモリ
の制御が可能である.
DRP-1 では 4 × 2 個の Tile が配置されており,全体では 512 個の PE をもつ.チップ中央に
は,DRP-1 全体の状態遷移を制御する為のシーケンサである Centeral State Transition Controller
(CSTC)が配置されている.また,VMEM と呼ばれる 8 bit×256 エントリのメモリを 8 セットと
これらを制御するメモリコントローラ 2 セットを両側にもち,HMEM と呼ばれる 8bit × 8192 エ
ントリのメモリを 4 セットとメモリコントローラを Tile の上部もしくは下部にもつ.DRP-1 全体
では,VMEM を合計 80 セット,HMEM を合計 32 セットもつ.
DRP-1 のアーキテクチャ的な特徴を以下にまとめる.
第 2 章 リコンフィギャラブルアクセラレータ
CLK
PLL
7
To SDRAM/SRAM/CAM
MU L
MU L
MC
MU L
CLK
MU L
PLL
MU L
PLL
Data
Tile
Tile
Tile
Tile
Ctrl
CSTC
Test
Tile
Tile
Tile
Tile
Program
PLL
MU L
MU L
CLK
PCIC
PCI IF
図 2.3
MU L
CLK
DRP-1 の構造
• マルチコンテキスト機能
内部のメモリに最大 16 コンテキスト分の情報を蓄える事ができ,最大で 5 コンテキストの
中から次のコンテキストを選択し,クロックサイクル毎にコンテキストを切り替える事がで
きる.次のコンテキストの選択は STC に信号を送る事で行なう.更に,動作中に,切り替
えの対象外のコンテキストに対してコンフィギュレーションロードが可能である.この特徴
により,仮想ハードウェアや動的適応ハードウェアの効率的な実現が可能となる.
• プロセッサアレイ構成
FPGA 等の LUT によりロジックを実現する細粒度構成とは異なり,データパスを再構成す
るデバイスである.この為,8bit を基本単位とした効率的なデータフローの制御及び多桁演
算の高速実装が可能である.LUT を書き換えるのに比べて高速な再構成が可能であり,全
く無駄なクロックなしに,切り替えと同時に動作を行なう事ができる.また,PE がチップ
全体に配置されている為,並列処理を効率的に行う事が可能である.
• パーシャルリコンフィギャラビリティ
コンテキスト切り替えは Tile 単位で行う事ができ,コンフィギュレーションデータのロー
ドは PE 単位で行なう事ができる.これにより,Tile ごとに異なるコンテキスト構成を取る
事ができる.
• メモリ拡散配置型のアーキテクチャ
各 PE が Flip Flop 及びレジスタファイルを独立にもち,Tile の周辺には VMEM と HMEM
第 2 章 リコンフィギャラブルアクセラレータ
8
を分散配置する事により,パイプライン構成,データ駆動型制御,フィードバック構成が簡
単かつ高速に実現する事ができる.
2.2.1.2
開発環境
DRP の開発環境は,性能とプログラマビリティの両立という観点から,ソフトウェアライクな
コンパイル環境が提供されている [11].DRP コンパイラは,C 言語ベースの動作合成エンジンを
フロントエンドとし,マッピング,配置配線等の動作合成エンジンを有機的に統合したものである.
Behavior Description(BDL)
BDL
Source Code
C Level Operation
Verification
Operation Synthesis
RTL Verilog
Controller(FSM )
Data Path
Test Bench
RTL Function
Verification
Technology M apping
Block Verilog
Placem ent and Routing
Test Bench
Block Level Function
Verification
Code G eneration
Configuration Code
図 2.4
Hardw are Level Function
Verification
On-Chip Verification
DRP のコンパイルフローと動作検証フロー
DRP のコンパイルフローを 図 2.4 に示す.DRP のフロントエンド合成部である動作合成段階は,
NEC が 専用ハードウェア に対して開発した動作合成エンジン Cyber をベースに開発されている
[12].動作合成部は,C 言語をハードウェア記述用に拡張した Behavior Design Language(BDL)
と呼ばれる動作記述言語を入力とし,スケジューリング,リソースの割当てを行い,中間コードと
して RTL 記述を出力する.バックエンド合成部は,テクノロジマッピング,配置配線,オブジェ
クトコード生成からなる合成段階である.
動作合成部の出力する RTL は,制御回路である Finite State Machine(FSM)とデータパス回路
に分かれており,FSM とデータパスがそれぞれ DRP の STC と PE アレイに対応する.これらは
バックエンド合成を経て,STC と PE アレイに割当てられる.
DRP コンパイラの動作合成段階において最も重要な概念が,状態に基づくコンテキスト分割で
ある.動作合成の結果,データパス回路は複数の状態 (論理コンテキスト) に分割される.ここ
で,データパスの状態と DRP のコンテキストを対応させる事により,効率的なマルチコンテキス
ト分割を実現する.状態とコンテキストの対応関係を 図 2.5 に図示する.
DRP コンパイラでは,データパス回路の状態とコンテキストを 1 対 1 対応の関係で割り当て
るマッピング方法(図 2.5(a)) と,複数の状態を 1 つのコンテキストに割当てる面内多状態(図
第 2 章 リコンフィギャラブルアクセラレータ
STC
D ata Path
State
0
State
1
9
STC
Data Path
State
0
Context 0
State
2
Context 1
State
3
Context 3
Context 2
(a) 1 State to 1 Context
図 2.5
State
1
State
2
Context 0
Context 1
State
3
(b) Multiple States to 1 Context
状態に基づくコンテキスト分割
2.5(b)) をサポートする.面内多状態方式は,少ないリソース数の状態が存在した場合に,その
状態を他の状態と共に同一のコンテキストにマッピングする事で,コンテキストサイズのバラン
スを改善し,全体的なリソース使用率を向上させる.
また,DRP コンパイラは,コンテキスト分割を自動で行う自動スケジューリングモードと,ク
ロックの境界をソースコード上で明示的に記述する事で合成を行う手動スケジューリングモード
をサポートする.
これらの DRP コンパイラのフロントエンド合成部とバックエンド合成部をシームレスに統合
した GUI による開発環境 Musketeer が提供されている [11].Musketeer はコンパイル操作の簡略
化や,PE 使用状況,メモリアクセス状況の視覚化等を実現している.また,ソースコード,中間
コード,オブジェクトコード間のクロスレファレンス機能も特徴の 1 つである.更に,ソースコー
ドの変数とレジスタ,メモリの関係だけでなく,ソースコードのどの部分がどの状態にスケジュー
リングされたかといった情報も視覚化する事ができる.
また,図 2.4 に示すように,各合成段階で出力される中間コードからシミュレーションを行う
事により動作検証を行う事ができる.最終的に,DRP コンパイラの生成したオブジェクトコード
を,実際に DRP にロードし実行する事ができる.この際,オンチップデバッガによりスタート,
ストップ,ブレイクポイントの設定,ステップ実行等,効率的なデバッグを行う事が可能となる.
またオンチップデバッガは,ソースコード上の変数名,配列名によるシンボリックデバッグが可
能である.これらの動作検証のプロセスやオンチップデバッガの機能は,統合開発環境 Musketeer
に統合され,ソフトウェアライクなデバッグ作業を実現する.
また,DRP のプログラミング方法として,PE や VMEM 等のブロックの RTL エントリを記述
する方法と,スケマティックエディタによる方法も利用可能である.
2.2.2
STP エンジン
STP(Stream Transpose) エンジンは旧 NEC エレクトロニクス社が DRP シリーズの後継機として
開発した動的リコンフィギャラブルデバイスのアーキテクチャであり,X-Bridge などに搭載され
第 2 章 リコンフィギャラブルアクセラレータ
10
ている [13, 14].NEC エレクトロニクスの半導体部門は 2011 年に Renesas テクノロジーに統合さ
れた.
SIMD 型プロセッサはアプリケーションを単純な並列処理テンプレートに合わせ込み処理する
ため,画素並列のような規則的な並列性に対しては強い一方で,型にはまらないアプリケーショ
ンの場合性能が急激に低下する.STP エンジンは SIMD 型プロセッサとは異なりプログラマブル
ハードウェアであり,アプリケーションに合わせてデータパスをカスタマイズ可能で,画素並列,
パイプライン処理,タスク並列などのアプリケーションに内在する様々な並列性を利用したアプ
リケーションの実装が可能である.高い柔軟性と性能絶対値を両立をしている.
2.2.2.1
アーキテクチャ
16bit
MPY/ACC
Reg.
Reg.
Input FIFO
Output FIFO
8bit
8bit
ALU
ALU
Reg.
Reg.
4KBitt
2p SRAM
Reg.
Reg.
64KBitt
1p SRAM
Reg.
Reg.
図 2.6
STP エンジンの構成
STP エンジンの基本的な構成を図 2.6に示す.STP エンジンは SoC に搭載するプログラマブル
HW コアとして開発され,プログラマブル基本演算器の 2 次元アレイ (DRP) とデータ転送 (DMA)
コントローラから構成される.データ転送処理を DRP モジュールから分離することにより,性能
及び面積効率の向上を図り,CPU 負荷を軽減しシステム全体の性能向上を実現する.
STP エンジンは特にストリームデータ処理にフォーカスをあてており,C プログラマブルであ
ることを重視して開発された.プログラマブル演算器アレイは演算器やメモリで構成されており,
8 ビット演算器アレイの周囲をメモリや乗算器が取り囲む構成になっている.STP エンジンでは,
多くの演算器とメモリを用いて処理を並列に実行することで,より高い性能を発揮する.
プログラマブル演算器アレイ プログラマブル演算器アレイの概要を図 2.7に示す.STP エンジン
のプログラマブル演算器アレイも DRP と同様にタイル構造をしている.演算器アレイは図 2.7に
示すように,4 つのタイルから構成され,アレイ全体で 8 ビット演算器を 512 個,16 ビット演算
器を 32 個もち,データメモリは 512 バイトの 2 ポートメモリを 56 個で 28K バイト分と,8K バ
イトの 1 ポートメモリを 16 個で 128K バイト分保持している.
第 2 章 リコンフィギャラブルアクセラレータ
11
16bit
MPY
64KBitt
1p SRAM
8bit
8bit
ALU
ALU
Reg.
Reg.
16bit
MPY
4KBitt
2p SRAM
16bit
State Trans.
Tile
Tile
#1
#2
Tile
Tile
#3
#4
MPY
Controller
4KBitt
32bit
MPY/DIV
16bit
2p SRAM
MPY
Reg.
Reg.
64KBitt
1p SRAM
図 2.7
プログラマブル演算器アレイの概要
DMA エンジン 図 2.8に示すように,DMA エンジン部は,プログラマブル演算器アレイとの I/O
FIFO 部と,プログラマブル演算器アレイのコンフィギュレーションアンドレジスタアクセスコン
トローラ,外部と内部メモリ間のデータ通信を制御するグローバルメモリアクセスコントローラ,
内部メモリとアレイとの I/O FIFO との通信を制御するイングレス DMA から構成される.Input
FIFO はプログラマブル演算器とイングレス DMA に接続されており,Output FIFO はグローバル
メモリアクセスコントローラと接続されている.コンフィギュレーションアンドレジスタアクセ
スコントローラはプログラマブル演算器アレイと接続されている.グローバルメモリアクセスコ
ントローラの出力は Input FIFO の入力とコンフィギュレーションアンドレジスタアクセスコント
ローラにも接続されている.イングレス DMA とグローバルメモリアクセスコントローラ,コン
フィギュレーションアンドレジスタアクセスコントローラはそれぞれ並列での動作が可能である.
また,これらは直接オンチップバスと接続されており,外部との入出力が可能である.
2.2.2.2
データ転送
STP エンジンは機能を強化した DMA により,メモリ間のデータ転送を効率的に実行する.DMA
とプログラマブル演算器アレイを並列に動作させることで,外部メモリとのデータ転送オーバー
ヘッドの隠蔽をしている.
STP エンジンの検証モデルは設計ツールに組み込まれており,DMA に対するアクセス命令発
行と,プログラマブル演算器アレイで実行するアルゴリズムは同一の C プログラムとして記述可
第 2 章 リコンフィギャラブルアクセラレータ
DMA Engine
Input FIFO
FIFO
FIFO
Output FIFO
Programmable
Block Array
FIFO
Tile
Tile
64bit
#1
#2
64bit
64bit
Tile
Tile
64bit
#3
#4
(256W)
...
12
(256W)
...
(256W)
...
FIFO
(256W)
...
Global
Memory
Ingress
...
Configuration
and Reg. Access
Controller
...
Ctrl.
FIFO
Table
Access
(32W)
Ctrl.
FIFO
Cmd
(32W)
Desc
...
FIFO
Desc
(32W)
DMA
Controller
On-chip Bus
図 2.8
DMA エンジンの概要
能であり,STP エンジンとホスト CPU での機能分担がソフトウェアにより変更が可能となってお
り,要求仕様に合わせて柔軟なシステムを構成できる.
2.2.2.3
コンテキスト切り換え
STP エンジンは 2 種類のハードウェア切り換えが可能である.
ダイナミックリコンフィギュレーション STP エンジン内に最大 64 個,もしくは 32 個のデータ
パス情報を格納可能で,限定的なプログラマブル演算器アレイ領域に実装する回路を,動的に再
構成し,切り換えることで実効的なロジック領域を拡張する.1ns 以下でデータパスを切り換え
て処理することが可能である.
ダイナミックローディング 実行中に,外部から別のファームウェアを追加で読み込み,全く異
なる機能に対応したハードウェアへの切り換えが可能である.チップに乗り切らない大規模なア
プリケーションを時分割で実行する.切り換え時間は数百 µsec 程度である.
2.2.2.4
開発環境
STP エンジンへのアプリケーションの実装には,STP エンジンと密接に連携したファームウェ
ア開発を行う C ベースの統合開発環境を提供するツールである STP ツールを用いる.STP ツール
は組込みプログラマの為のハードウェア設計環境である.STP エンジンの実用性を高める意味で,
開発ツールは非常に大きな役割を果たす.
第 2 章 リコンフィギャラブルアクセラレータ
13
࣐ࣝࢳࢥࣥࢸ࢟ࢫࢺ໬
図 2.9
STP エンジン向け合成フロー
STP ツールを用いた開発フローを図 2.9に示す.STP ツールはアプリケーションの動作を記述さ
れた C 言語のソースコードと制約ファイルを入力とし,STP エンジンの動作に必要な STC コード
と PE アレイコードを出力する.STP エンジンはフロントエンドである動作合成から,中間コード
である RTL を生成し,バックエンド合成であるマッピング,配置配線とオブジェクト生成の STP
エンジンを動作させるのに必要なすべての段階をカバーしている.中間コードである RTL である
Verilog HDL のサイクル精度シミュレーションまで可能である.
STP エンジン向けのファームウェアの開発には 2 ステップあり,一つがアルゴリズム開発であり,
普段使用する C 言語開発環境で開発を進める.次に,STP ツールを用いて最初のステップで開発
した C 言語 (ANSI-C 準拠) 記述から直接 STP エンジンのファームウェアを出力する.STP ツール
は出力されたファームウェアの特徴を C 言語のソースコードと関連付けて視覚的に表示するツー
ルである.合成ステータスや並列化状況,遷移状態と C によるソースコードが表示される.設計
者はこれを用いてアルゴリズムの最適化を行う.実機評価環境には,X-Bridge に搭載される DRP
Express が存在する.
2.2.3
D-Fabrix
D-Fabrix は,Elixent Ltd.が開発し,2006 年 7 月に Panasonic がライセンスを受けた製品であ
る [15].回路の集積度は FPGA に匹敵し,マルチメディア処理や暗号処理を得意とする動的再構
成プロセッサである.130 nm プロセスを用いて開発された D-Fabrix は 1.7GOPS /mm2 という高い
面積当たりの処理性能を発揮する.オフィス用プリンタ複合機やビデオカメラなどに内蔵されて
いる.
D-Fabrix は ALU,マルチプレクサ,レジスタ,メモリ,これらの要素を動的に切り換え可能な
第 2 章 リコンフィギャラブルアクセラレータ
14
高速スイッチが行列に配置された構成をとる.このアーキテクチャは,ソフトウェア命令によるラ
ンタイム制御に悩まされることなく,D-Fabrix アレイに数値演算アルゴリズムを効率的にサポー
トすることを可能としている.データはローカル PE に保持され,必要に応じて PE 間の通信を行
う.プロセッサとメモリ間のデータ転送はソフトウェア指向システムの電力消費の原因の大部分
である.キャッシュやメモリコントローラの複雑な階層構造やワイヤのキャパシタンスは消費電
力を増大させる.D-Fabrix はデータ転送を必要最低限に抑えることで,多くの RISC コアや DSP
コアと比較して消費電力を削減している.
2.2.3.1
アーキテクチャ
D-Fabrix の ALU は比較的細粒度の 4bit 幅である.必要に応じて ALU の接続を変えることで任
意のビット幅の演算を可能とし,32bit,16bit,12bit,8bit と様々なデータ幅のアプリケーション
プログラムを効率的に実装可能である.PE に組み込まれたメモリはローカルデータストアの高い
バンド幅を実現する.デザインの簡素化と実装の効率化の為に,D-Fabrix はタイル構造による階
層編成をしている.
D-Fabrix の PE は ALU,一時変数を保持する 3 エントリのレジスタ,2 つのマルチプレクサと
SE から構成される.D-Fabrix はコンテキスト配送型で構成情報を保持しているが,複雑な再構成
であっても 10µsec 以内に再構成が可能である.D-Fabrix のアレイは 24×24 のタイル構造で構成さ
れ,1152 個の ALU,各 256 バイトの容量を持つ 72 個ののメモリモジュールを持つ.D-Fabrix の
アレイ構造を図 2.10に示す.この D-Fabrix アレイは 70 から 150MHz で動作し,14.4BOPS(Billion
Operation Per Second) の性能を発揮する.
2.2.3.2
システム設計
D-Fabrix はブロック指向とストリーム指向の両方の処理をサポートしている.
ブロック指向の演算の場合,D-Fabrix は SoC 上のメモリーマップドコプロセッサの様に振る舞
う.そのとき,PE アレイはバスインターフェースを介してオンチップバスと接続され,SoC 上の
ホスト CPU はメモリアクセスコントローラを利用して直接メモリアクセスが可能となる.メモ
リアクセスコントローラはソースデータのアレイへ転送することが出来ると伴に,演算結果をオ
ンチップメモリに書き込むことが出来る.D-Fabrix での演算が終了すると割り込み信号をホスト
CPU に送ることで演算の終了を知らせる.DMA 命令によりホスト CPU はデータ転送のオーバー
ヘッド無く D-Fabrix への演算のオフロードが可能となる.このモードは,フレーム処理の様な場
合に高い性能を発揮する.
ストリーム指向の演算の場合,ホスト CPU と SoC の他のコアは直接 D-Fabrix の I/O ポートに
アクセスし,PE アレイはパイプライン演算に適合する.D-Fabrix コア同士も直接アクセスしあう
ことでマルチコア間でのパイプライン処理を可能としている.バスインターフェースが PE アレ
イの再構成をホスト CPU の管理下に置くのを補助している.このモードは入出力バンド幅と処理
性能の両方が高く求められる場合に性能を発揮する.
2.2.3.3
開発環境
D-Fabrix のアレイ用のアルゴリズムの記述は Verilog HDL を用いる.クロックスピードを上げ
処理性能を向上させる為に,パイプライン処理の明示的な記述を可能としている.PE に内蔵され
第 2 章 リコンフィギャラブルアクセラレータ
15
AHB
AHB
AHB
I/F
I/F
I/F
HIP + Static clock divider
Chain Controller
Buffer
Buffer
16 * 16 D-Fabrix Array
Direct
I/O
Direct
Configuration from
I/O
North Edge
Multiplier
図 2.10
I/O
Auxiliary
SRAM
I/O
4Kbyte
Auxiliary
4Kbyte
SRAM
Multiplier
D-Fabrix のアレイ構成
ているレジスタを利用しないで次の ALU に出力する場合を図 2.11(a) に示し,レジスタに一時的
に中間変数を格納し遅延時間を短くすることで動作周波数を高くする場合を図 2.11(b) に示す,
2.2.4
IPFlex DAPDNA
DAPDNA は,旧 IPFlex 社の開発した,RISC プロセッサコア Digital Application Processor (DAP)
と動的リコンフィギャラブルプロセッサコア Distributed Network Architecture(DNA) からなるマル
チコアプロセッサである.DAP コアは,DNA コアの制御とシーケンシャルな処理を行い,DNA
は多数の PE を用いて大量のデータを並列処理する.純日本発の CPU ベンダーである IPFlex 社は
2009 年に倒産したが,DAPDNA アーキテクチャは日本計器によって引き継がれている.
DAPDNA-2 は,DAPDNA アーキテクチャを採用した 2 世代目の LSI である [16].DAPDNA-2
のアーキテクチャを 図 2.12 に示す.DAP コアは 32bit の RISC コアで,5 段パイプラインのマ
イクロアーキテクチャを採用しており,8K バイトの命令キャッシュと 8K バイトのデータキャッ
シュをもつ.DNA の制御は,割り込み処理や DAP コアに実装された専用の命令により行われる.
DAPDNA-2 は DAP と DNA マトリクスの他に,DRAM コントローラやその他の周辺インタフェー
スを集積したシステム LSI である.また,DNA マトリクスの高速演算に不可欠な広帯域なデー
タ入出力はスイッチバス,あるいは DNA マトリクス専用の入出力ポートである DNA ダイレクト
第 2 章 リコンフィギャラブルアクセラレータ
16
proccess(clk, rst)
y <= a + b - c;
if (rst = 1 )
x <= 0 ;
y <= 0 ;
y
y
elsif (clk RESING)
x <= a + b;
Regs.
y <= x - c;
SUB
endif;
SUB
end proccess;
Regs.
ADD
a
ADD
c
b
(a) combinatorial calculation
図 2.11
a
b
c
(b) pipelined calculation
D-Fabrix のプログラミング例
I/O を介して行われる.
2.2.4.1 DAP アーキテクチャ
32bit RISC プロセッサ・コアである DAP は,32 個の 32bit 汎用レジスタ,8K バイトの命令キャッ
シュ,8K バイトのデータキャッシュを保持する.動作周波数は他のブロックと同様の 166MHz で
ある.
DAP は一般的な汎用プロセッサとしての用途の他に,DNA マトリクスの動的再構成の制御に
も使用する.また,DAP と DNA マトリクスは並列動作が可能であるので,DNA マトリクスの演
算中に,処理速度のあまり要求されない処理を DAP で実行する事も可能である.
2.2.4.2 DNA コア
DNA マトリクスは, 32bit 演算器である PE が 2 次元アレイ状に配置された構造となっている.
DNA コアのアーキテクチャを図 2.13に示す.
PE は,25 種類の算術演算,論理演算,比較の機能や,データ入出力機能,メモリアドレス生
成等の機能を選択する事ができる.また,PE には,16K バイトのオンチップ RAM エレメントが
32 個搭載されている.DNA マトリクスの回路構成は,すべての PE の動作設定と PE 間の接続設
定によって定義され,これを 1 つのコンフィギュレーションデータとしてプログラミングする.
PE マトリックスは,6 セグメントから構成されており,1 セグメントに 8 × 8 の 64 個の PE を持
第 2 章 リコンフィギャラブルアクセラレータ
17
DN A
Configuration Mem ory
Debug Interface
RISC Processor Core
Instruction
Cache
Data
Cache
DN A Direct I/O
DAP
DN A-Matrix
(376 PEs)
Load
Buffer
Store
Buffer
Sw itch Bus
図 2.12
IN TC
DMA
Controller
G PIO
DDR SDRAM
Interface
U ART
PCI
Interface
S-RO M
Peripherals
DAPDNA-2 のアーキテクチャ
つ.表 2.1に,PE の種類をまとめる.1 つのセグメント内の PE の間は自由に接続可能であるのに
対して,セグメントを越える接続は,隣接セグメント同士で接続しなければならない事と,セグ
メント境界上の PE を経由しなければならないという 2 つの制約がある.この制約によって,デー
タパスはセグメントで切断され,デバイス全体の動作周波数が配線によって左右される事がなく
なる.こうして,使用する PE や配線経路によって LSI 全体の動作周波数が変化する事を防ぐ.
また,DNA マトリクスのデータ入出力の経路は,
• スイッチングバスに接続されるロード/ストアバッファ経由
• 外部インタフェースに接続される DNA ダイレクト I/O 経由
の 2 つが存在する.前者の場合,外部 DRAM を利用する処理となり,後者の場合は外部とのデー
タ入出力となる.またこれらの入出力は組み合わせて利用する事が可能である.DAPDNA-2 では,
DNA ダイレクト I/O の入出力は,合計 6 チャネル搭載され,各チャネルは 32bit 幅で最大 166MHz
の外部供給クロックに合わせてデータの入出力を行う.
2.2.4.3 DAPDNA-2 のコンフィギュレーション機構
DAPDNA-2 の PE マトリックスは,各 PE の機能,PE 間のネットワークを動的に切り換え,各
種アプリケーションのデータフローに最適な構成に ns 単位で変更できる.各 PE は 32bit の粗粒度
アーキテクチャのため,細粒度の FPGA と比較して,コンフィギュレーションデータの総量は約
32Kbit と非常に小さい.アクティブなコンフィギュレーションデータの他に,オンチップに 3 面
第 2 章 リコンフィギャラブルアクセラレータ
18
! " # $
%&"
%& "
%& "
% &"
() *
+ %,+ %,+ %-+ %-+ %-+ %.&
() *
3 2 +43 2 +43 2 +53 2 +53 2 +53 2 6
&
() *
3 2 43 2 43 2 53 2 53 2 53 2 6
&
() *
3 2 (43 2 (43 2 (53 2 (53 2 (53 2 6
&
() *
& % 34& % 34& % 35& % 35& % 35& % 3
&
3 2 *03 2 *03 2 *03 2 *13 2 *13 2 *13 2 *
&
& % /0& % /0& % /0& % /1& % /1& % /1& % /1&
&%
()
()
()
()
()
()
/0&
*
3
*
3
*
&
*
3
*
3
*
3
& % /0&
& 7 )8& 9 ! ;:
= <
&%
32
()
()
()
()
()
% /0&
20
*
3
2 643
% 34&
2 +43
2 (43
2 *03
% /0&
% /0&
20
*
3
2 643
% 34&
2 +43
2 (43
2 *03
% /0&
% /1&
21
*
3
2 653
% 35&
2 +53
2 (53
2 *13
% /1&
% /1&
21
*
3
2 653
% 35&
2 +53
2 (53
2 *13
% /1&
% /1&
21
*
3
2 53
% 35&
2 53
2 53
2 *13
% /1&
%
%
%
%
%
%
%/
% /1&
2*
&
2*
&
%3
&
2 &
2*
&
2*
&
% /1&
%2
/0& % /0& % /0& % /1& % /1& % /1& % /1&
*03 2 *03 2 *03 2 *13 2 *13 2 *13 2 *
&
*
& % 34& % 34& % 35& % 35& % 35& % 3
&
*
3 2 (43 2 (43 2 (53 2 (53 2 (53 2 6
&
*
3 2 43 2 43 2 53 2 53 2 53 2 6
&
*
3 2 +43 2 +43 2 +53 2 +53 2 +53 2 6
&
*
+ ,+ ,+ -+ -+ 3-+ 3
&
' "
' "
' "
' "
%2
%
%
%
%
%
%
%2
%
%
%
%
%
%
32 5
+
3 2 +53 2 653 2 65% & 20% & 20% & 2
%
& %
+ %-+ %-+ %-+ %-+ 3-+ 3
(
& %
3 2 653 2 +53 2 +53 2 +43 2 +43 2 +
(
& %
3 2 653 2 53 2 53 2 43 2 43 2 (
& %
3 2 653 2 (53 2 (53 2 (43 2 (43 2 (
(
& %
& % 35& % 35& % 35& % 34& % 34& % 3
(
& %
3 2 *13 2 *13 2 *13 2 *03 2 *03 2 *03
& % 21& % /1& % /1& % /1& % /0& % /0& % /0&
&2
)*
32 5
+
3 2 +53 2 653 2 65% & 20% & 20% & 2
%
& %
+ %-+ %-+ %-+ %-+ 3-+ 3
(
& %
3 2 653 2 +53 2 +53 2 +43 2 +43 2 +
(
& %
3 2 653 2 53 2 53 2 43 2 43 2 (
& %
3 2 653 2 (53 2 (53 2 (43 2 (43 2 (
(
& %
& % 35& % 35& % 35& % 34& % 34& % 3
(
& %
3 2 *13 2 *13 2 *13 2 *03 2 *03 2 *03
& % 21& % /1& % /1& % /1& % /0& % /0& % /0&
&2
)*
32 5
+
3 2 +53 2 653 2 65% & 20% & 20% & 2
%
& %
+ %-+ %-+ %-+ %-+ 3-+ 3
(
& %
3 2 653 2 +53 2 +53 2 +43 2 +43 2 +
(
& %
3 2 653 2 53 2 53 2 43 2 43 2 (
& %
3 2 653 2 (53 2 (53 2 (43 2 (43 2 (
(
& %
& % 35& % 35& % 35& % 34& % 34& % 3
(
& %
3 2 *13 2 *13 2 *13 2 *03 2 *03 2 *03
& % 21& % /1& % /1& % /1& % /0& % /0& % /0&
&2
)*
! " # $
図 2.13
)*
)*
)*
)*
2*
%/
)*
)*
)*
)*
2*
%/
)*
)*
)*
)*
2*
%/
& 7 )8& 9 ! ;:
= <
DNA のアレイアーキテクチャ
分のコンフィギュレーションデータを保持できる.つまり,同時に 4 つのコンフィギュレーショ
ンデータを保持できる.4 つ以上のコンフィギュレーションデータは,メインメモリからロード
する事ができる.DNA マトリクスの 1 部分だけを書換えたり,コンフィギュレーションデータの
差分だけを書換えるといった事も可能である.コンフィギュレーションデータの切り替えは,演
算結果のストア終了やロード終了,PE へのトリガ入力検出等の状態で行う.切り替えトリガは,
割込みにより DAP を使って行う方法と,DNA マトリクス自身で行う方法がある.メインメモリ
から 1 面分のコンフィギュレーションデータ転送に要する時間は,DMA 転送により数 10µs 程度
ですむ.
2.2.4.4
開発環境
DAPDNA の開発環境は,Software to Silicon のコンセプトを基に,ハードウェア設計の知識が
なくても,高級言語によって設計したアプリケーションを,シームレスにハードウェアに移行し製
品開発を行う事を目標としている.これにより,設計生産性を向上させ,開発期間を短縮しユー
ザのニーズにタイムリに対応する事ができる.
DAPDNA-2 の統合開発環境として,DAPDNA-FW II が提供されている [16].DAPDNA-FW II
は,以下の構成要素から構成される.
• DAP Compiler: GNU gcc ベースの C コンパイラ
• DFC Compiler: 拡張 C 言語である DFC (Data Flow C) から DNA マトリクスのコンフィ
ギュレーションデータを生成するコンパイラ
第 2 章 リコンフィギャラブルアクセラレータ
Element Type
表 2.1 DNA の PE の種類
Description
EXE(EXM/EXC/EXF/EXR/EXS)
DLY(DLE/DLV/DLX/DLH)
RAM
C32(C32L/C32S/C32E)
C16(C16L/C16S/C16E)
LDB
STB
LDX
STX
Arithmetic, logical, bit, comparing,
mask, and MAC
Variable delays for data synchronization
Temporary memory
32bit address generator
16bit address generator
Data input from high speed switch bus
Data output to high speed switch bus
Data input from DNA direct I/O
Data output to DNA direct I/O
19
Elements
168
138
32
12
12
4
4
4
4
• DNA Designer: DNA マトリクスのグラフィカル設計ツール
• DAP Library: DAP 上で動作するデバッグ機能,DNA 制御等の機能を抽象化するライブラ
リ群
• DNA Library: DNA Designer 上で使用する複数の PE で構成された DNA 用のライブラリ
• DNA Generator: MATLAB/Simulink の標準 Blockset を DNA のコンフィギュレーションデー
タに変換するトランスレータ
• DNA Blockset: MATLAB/Simulink 上で利用できる PE ブロックライブラリ
• DAPDNA Co-Simulator/Emulator: DAPDNA のターゲットプログラムのサイクルレベルシミュ
レータ
• DAPDNA Debugger: DAP に関してはソースレベル,DNA に関しては DNA Designer を介し
たデバッガ
これらのツールは,DAPDNA-FW II に統合され,効率的なアプリケーション開発及びシミュ
レーションやデバッグ作業を実現する.
また,DNA マトリクスのコンフィギュレーションデータを生成する方法は以下の 3 通りである.
• DFC と DFC Compiler を用いる方法
• MATLAB/Simulink を用いる方法
• DNA Designer を用いる方法
DAPDNA-2 では,DAPDNA 用に拡張した C 言語である Data Flow C (DFC) で記述したアル
ゴリズムを,DFC Compiler を使ってコンパイルし,DNA マトリクスのコンフィギュレーション
データを生成する事が可能である.こうして,HDL 等による従来のハードウェア設計手法に比べ,
開発期間を短縮する事ができる.
また,DNA Blockset を用いて MATLAB/Simulink 上でアルゴリズム設計及び検証を行う事がで
きる.生成した MATLAB/Simulink の Blockset を,DNA Generator を用いて DNA マトリクスの
第 2 章 リコンフィギャラブルアクセラレータ
20
コンフィギュレーションデータに変換する事ができる.これにより,MATLAB/Simulink 上でアプ
リケーション開発をシームレスに行う事ができる.
更に,スケマティックエディタである DNA Designer を使用してアルゴリズムを設計し,コン
フィギュレーションデータを生成する事も可能である.DNA Designer は,DAPDNA-2 の PE を,
ドラック・アンド・ドロップで接続する事ができる.
2.3
コプロセッサ型の CGDRP
2.3.1
S5 Engine
S5 エンジンは Stretch 社が開発した組込みシステム向けの CGDRP である S5000 シリーズに用
いられているアクセラレータである [17].
2.3.1.1
アーキテクチャ
S5000 は組込みアプリケーション用の高性能なソフトウェア再構成プロセッサであり,32 ビッ
トの RISC プロセッサに Instruction Set Extension Fabric (ISEF) をコプロセッサとして組み合わせ
ている.ISEF で用いられる拡張命令 (EI) はメモリへ非常に高いバンド幅でアクセスすることが
可能となっている.EI の引数は Wide Register file (WR) より与えられ,EI は最大 128bit のオペラ
ンドを 3 つ読み出し,128bit の演算結果を 2 つ書き込める.ISEF は最大 27 段パイプラインを実
現できる.
DDR
SysAD
PCI/
PCI-X
GMAC
Misc
I/O
Communication infrastructure
DMA
Inst
Cache
Data
Cache
Data
RAM
SRAM
MMU
S5 Engine
S5610
図 2.14
S5610 の構成
図 2.14 に S5000 シリーズの一つである S5610 の構成を示す.Memory Management Unit (MMU)
は,S5 エンジンとキャッシュ間やメモリシステム,I/O 間のアドレス転送とメモリ保護を行う.
キャッシュとデータ RAM 間は 128bit のデータを転送でき,300MHz で動作する.命令キャッシュ
第 2 章 リコンフィギャラブルアクセラレータ
21
とデータキャッシュはそれぞれラインサイズは 16 バイト,エントリ数は 32KB である.データ
RAM は 32KB のデュアルポート RAM であり,SRAM は 256KB である.
Inst
Cache
Data
Cache
MMU
Inst
Unit
S5 Engine
Load /
Store
Unit
FR
AR
WR
FPU
ALU
ISEF
Integer Unit
Extension Unit
FP Unit
図 2.15
S5 エンジンの構成
S5 エンジンの構成を図 2.15 に示す.コアプロセッサは 32bit の RISC プロセッサである Tensilica
Xtensa を用いている.S5 エンジンの大部分は 300MHz で動作するが,ISEF は 150MHz で動作
する.
Inst Unit 命令キャッシュから命令をフェッチし,デコードを行って,適切なユニットに命令を転
送する.
Load / Store Unit サブメモリシステムと整数,浮動小数点,拡張ユニットのレジスタファイル
間におけるデータの読み書きを行う.
Integer,Floating Point Unit 整数演算と浮動小数点演算を行う.整数ユニットは 5 段パイプラ
インの 32bit RISC エンジンである.16 × 16 ビットの乗算器も実装されている.浮動小数点ユニッ
トは IEEE 754 準拠の単精度浮動小数点演算である.
Extension Unit ISEF を含む拡張ユニットである.ISEF には算術論理演算器と乗算器で構成され
ている.算術,論理演算器は最大 64 ビットの演算が行え,乗算器は最大 32 × 32 ビットの演算が
可能である.ISEF の構成は拡張命令に対応して動的に再構成される.
第 2 章 リコンフィギャラブルアクセラレータ
22
Application
(C / C++)
Ext Inst
SCG
Xt-xcc
Map
Place
Route
Retim e
Bit Stream
Linker
ELF
Executable
図 2.16
2.3.1.2
コンパイラフロー
開発環境
S5 エンジンにはコンパイラが用意されており,C 言語で記述されたソースコードと拡張命令に
よってアプリケーション開発が可能である.図 2.16 にコンパイラフローを示す.
SCG は拡張命令のコンパイルを行い,定数伝搬,ループアンローリング,ビット幅,命令間の
リソース共有などの最適化を行う.Xt-xcc は Xtensa コンパイラであり,C または C++ 言語で記
述されたアプリケーションと,拡張命令を SCG でコンパイルした結果を用いてコンパイルを行う.
Map ステージでは SCG で生成した演算セットからモジュールを生成し,Place ステージでは Map
ステージで生成したモジュールを配置する.そして Route ステージでネットリストを基にルーティ
ングが行われ,Retime ステージでパイプラインの各ステージにおける遅延のバランスを取る.Bit
Stream ステージでは ISEF や命令ユニットのコンフィギュレーションファイルの生成を行う.そ
して Linker においてこれまで生成した結果を一つのファイルにまとめることで,アプリケーショ
ンの実行ファイルを生成することができる.
2.3.2
ADRES
ADRES (Srchitecture for Dynamically Reconfigurable Embedded System) は IMEC が開発したシ
ングルプロセッサおよびマルチプロセッサアーキテクチャの無線システムやマルチメディア処理
システム向けのプロセッサアーキテクチャである [3].
第 2 章 リコンフィギャラブルアクセラレータ
2.3.2.1
23
アーキテクチャ
VLIW
Instruction Fetch
Instruction D ispatch
D A TA Cache
Instruction D ecode
RF
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
FU
FU
FU
FU
FU
FU
FU
FU
RF
RF
RF
RF
RF
RF
RF
RF
Reconfigurable A rray
図 2.17
ADRES の構成
ADRES の基本的なアーキテクチャを図 2.17 に示す.ADRES は VLIW (Very Long Instruction
Word) プロセッサと,アクセラレータ部である再構成セル (RC) アレイによる Reconfigurable Array
で構成されている.メイン CPU として VLIW プロセッサ部が動作し,アプリケーションを高速化
する際にアクセラレータ部で処理を行うコプロセッサ型のプロセッサである.VLIW プロセッサ
部はロードやストア制御に最適化されており,アクセラレータ部はデータフローカーネルに最適
化されている.アクセラレーションモードでは VLIW プロセッサ部の機能ユニット (FU) は再構
成セルアレイの最初の列として動作する.アーキテクチャ内のデータ幅は 32bit である.ADRES
は VLIW プロセッサ部で処理するには時間のかかるアプリケーションをアクセラレータ部にプロ
セッサアレイにマッピングし,データアクセスやマルチスレッド動作は VLIW プロセッサで処理
することで,性能向上と柔軟性を両立させている.
VLIW プロセッサ部 VLIW プロセッサ部は最大 8 つの機能ユニットを一列に並べた構造をして
いる.機能ユニット間は水平方向に設けられたデータパスを用いることでデータ通信を行うこと
第 2 章 リコンフィギャラブルアクセラレータ
24
ができる.また,機能ユニットは垂直方向のデータパスを用いて汎用レジスタファイルへのデー
タの読み書きが可能である.VLIW プロセッサ部の機能ユニットには乗算器も搭載されている.
VLIW モードでは複数の機能ユニットへの命令が一つの命令にまとめられ,一度に送られる.
アクセラレータ部 アクセラレータ部は複数の再構成セルによって構成され,再構成セルはアレ
イ状に配置されている.それぞれの再構成セル内には構成情報メモリが含まれており,この構成
情報メモリから必要な構成情報を読み出すことで動作する.構成情報はデバイス起動時に構成情
報メモリにセットされ,実行時には構成情報メモリに与えるポインタによって,毎クロックの動
的再構成を可能にしている.アクセラレーションモードでは VLIW プロセッサ部のユニットはア
クセラレータ部アレイの最初の行として動作し,動的再構成をしながら処理を行う.再構成セル
間のデータ通信は内部のネットワークを用いて行われる.
図 2.18 に再構成セル (RC) の構成を示す.RC には構成情報メモリ,ALU,入出力マルチプレ
From different src.
Conf. RAM
buffer
m ux
m ux
m ux
pred
src1
src2
FU
pred_dst1 pred_dst2
reg
reg
RF
dst1
reg
conf.
counter
To different dest.
図 2.18
再構成セル (RC)
クサ,演算結果を格納するレジスタファイル (RF) から構成されている.ALU に与えられる命令
セットはデータ処理命令を含めて 20 命令ある.レジスタファイルは 8 エントリである.
また,ADRES は 16K バイトの L1 命令キャッシュと 16K バイトの L1 データキャッシュが設け
られている.
2.3.2.2
開発環境
ADRES には DRESC というコンパイラが用意されており,このコンパイラによってアプリケー
ションの開発を行うことができる.DRESC のフレームワークを図 2.19 に示す.DRESC コンパイ
ラは C 言語で記述されたアプリケーションから ADRES を用いたシミュレーションを可能にする.
C 言語記述のアプリケーションを入力すると,まず profiling / portitioning ステップで実行時
間を基に再構成セルアレイで高速化可能なループ処理の候補を検出する.そして,source-lebel
transformation ステップにおいて,処理をパイプライン化し,最大限の性能を出せるようにするた
め,ソースレベルでのカーネルの書き換えが行われるその次のステップでは VLIW コンパイラフ
レームワークである IMPACT [18] を用いて VLIW プロセッサ部用に C コードの解析と最適化を
第 2 章 リコンフィギャラブルアクセラレータ
C Impl.
profiling / partitioning
25
architecture
description
architecture parser
source-level
transformation
IMPACT frontend
Lcode
architecture
abstraction
ILP Scheduling
dataflow analysis &
optimization
register allocation
modulo scheduling
external tool
code generation
kernel scheduling
図 2.19
co-simulator
DRESC コンパイラのフレームワーク
行い,Lcode と呼ばれるスケジューリング用の中間コードを生成する.
図 2.19 の右側のフェーズでは,ターゲットアーキテクチャは XML ベースの言語で記述され,
architecture parser ステップと architecture abstruction ステップで modulo scheduling に入力するた
めのアーキテクチャ記述に変更される.modulo scheduling アルゴリズムはカーネルにおける高い
並列性を抽出し,ILP scheduling ではカーネル部以外における並列性を抽出する.そしてそれぞれ
の結果は DRESC コンパイラで自動的に組み合わされ,VLIW プロセッサ部と再構成セルアレイ
部に与えるコードが生成される.このコードを用いてシミュレーションを行うことで,設計者は
アプリケーションの最適化を行うことができる.
2.4
2.4.1
本章のまとめ
オフロードエンジン型とコプロセッサ型
CGDRP の構成には,PE アレイを CPU の外部のコアとし,処理命令と対象のデータを送ること
で CPU の処理を削減するオフロードエンジン型と,PE アレイを CPU の演算器として扱い CPU の
性能をスケールアップさせるコプロセッサ型に分けることができる.近年では,オフロードエン
ジン型の CGDRP が主流である.この理由として,オフロードエンジン型のアクセラレータはホ
スト CPU とは独立して動作するため,ホスト CPU に改良を加える必要性がなく,開発が容易で
あることが挙げられる.また,異なるアクセラレータコアを組み合せるなどの拡張性が高く,用
途に応じてシステム設計が出来る利点があるからと考えられる.コプロセッサ型の場合,アクセ
ラレータコアの制御のためにホスト CPU に改良を加える必要があり開発工数が高く,システム設
第 2 章 リコンフィギャラブルアクセラレータ
26
計の柔軟性が低くなることが想定される.
近年プロセスの微細化が限界に近づき,製品の上位バージョンと下位バージョンで電子部品の
性能差が小さくなってきている.複数世代の製品で同じ CGDRP モジュールを長く使いつづける
観点から,CMA では拡張性の高いオフロードエンジン型で CMA を設計すると良いと考えられる.
2.4.2
構成情報の格納
構成情報の格納方式は大きく 2 種類に大別できる.PE アレイの外部のモジュールで構成情報
を一括管理す集中管理方式と,各 PE がそれぞれ構成情報用のメモリで保持する分散管理方式で
ある.
集中管理方式の場合,メモリモジュールを統合できるため面積効率に優れるが,構成情報の配送
に配線遅延が大きく毎クロック構成を切り替えるのが困難となる.PACT Informations Technology
社の Xpp[19] や Elixent 社の DFA100[20] は集中管理方式を採用している.
分散格納方式の場合,各 PE にメモリモジュールを配置するため面積効率が劣るが,メモリと
PE 間の配線遅延が短く高速なメモリの読み出しが可能であり動的な再構成に向いている.NEC
社の DRP など多くの CGDRP が分散格納方式を採用している.
CMA の場合,PE アレイを動的に再構成しないため,集中管理方式の方が適していると考えら
れる.
2.4.3
レジスタの配置
通常,レジスタは ALU の入力,または出力の場所に配置される.PE 間の配線遅延が大きくな
る場合,両方の場所に配置することで動作周波数を高めることができる.しかし,ALU の入力と
出力の両方にレジスタを配置すると電力と面積の効率が下がるため,ほとんどの CGDRP が入力
か出力のいずれか一方にレジスタを配置している.
CMA では PE アレイを組み合わせ回路とするため,レジスタをいずれの位置にも配置しない.
CMA では PE アレイの内部にレジスタを配置しない代わりに,マイクロコントローラにレジスタ
をまとめて配置する.
2.4.4
PE 間の接続網
PE 間の接続網の構成は,SE を用いたアイランドスタイルと,ALU の出力を隣接する PE の ALU
に直接接続する直結網の 2 種類がある.アイランドスタイルの場合,SE を配置するにはある程度
の面積が必要になるが,接続網の柔軟性が極めて高い.直結網の場合,SE を用いないため面積効
率に優れるが,接続できる PE が限定的であり柔軟性の面でアイランドスタイルに劣る.SIMD,
MIMD の様に必ず同じ経路で PE を経由するようなデータフローを展開する場合は主に直結網を
用いると効率が良い.
CMA の場合,画像フィルタやデータ圧縮など様々な処理を対象とするため,直結網だけでは配
線資源が不足することが考えられる. そのため, アイランドスタイルをベースに配線資源を構成し,
SE だけでは不足する配線資源を直結網で補うように接続網を設計すると良いと考えられる.
27
第 3 章 低消費電力化手法
本章では,まず 3.1節で消費電力の概要を述べる.続いて 3.2節でダイナミック電力の削減手法,
3.3節でリーク電流の削減手法の例について述べる.低電力化のためにはここで紹介するような手
法をうまく組みあわせて実装する必要がある.
3.1
消費電力の概要
今日使われている消費電力の削減手法を述べる前に,本節で消費電力の分類と概要を記述する.
消費電力は
• ダイナミック電力
• スタティック電力
の 2 種類に分類できる.ダイナミック電力は,プロセッサが演算処理を行う際に消費する電力,ス
タティック電力は,アクティブ時にもスタンバイ時にも生じてしまう電力である.第 2章でも少
し触れたが,一般的にアーキテクチャの粒度が粗くなるにつれ,全体の消費電力に占めるダイナ
ミック電力の割合が増加し,スタティック電力の割合が減少していくことが確認されている.
3.1.1
ダイナミック電力
ダイナミック電力は,インターナル電力及びスイッチ電力の和である.
インターナル電力は,トランジスタがスイッチ(トグル)する時に,入力電圧がスレッショル
ド電圧付近で遷移している有限時間の間,電源ラインとグラウンドラインがショートし生じる.
一方スイッチ電力は,キャパシタンスの充放電により消費される電力である.図 3.1はトランジ
スタ内,及びロジック回路において,キャパシタンスが生じる場所を示している.チップ上で配
線及びトランジスタは密集している為,図に示す所にトランジスタの寄生キャパシタンスや,メ
タル配線キャパシタンスが生じる.トランジスタがトグルする際,キャパシタンスに電荷が充放
電される事で,スイッチ電力の消費が起こる.トランジスタ寄生キャパシタンスはトグルするト
ランジスタの数やサイズ,メタル配線キャパシタンスはデバイス中の配線長に依存する.その為,
プロセスルールの微細化が進むと配線長は短くなり,トランジスタのサイズも小さくなる為,ダ
イナミック電力は削減される.
スイッチ電力は以下の 3.1式で求める事ができる.
1
Pswitch = CV 2 f α
(3.1)
2
但し,Pswitch はスイッチ電力,C は寄生容量,V は供給電圧, f は動作周波数,α はトグルレー
トである.トグルレートとは,クロックの立ち上がる,もしくは立ち下がる時にトグルする,デ
第 3 章 低消費電力化手法
28
Gate O xide
Gate
Source
Drain
P-w ell
Capacitance
図 3.1
トランジスタのゲートやメタル配線に生じるキャパシタンス
バイス中のトランジスタの数の平均の割合である.故にスイッチ電力は,全てのトランジスタが
トグルした時の,1 クロックで消費する電力 12 CV 2 に,トグルレート及び動作周波数をかけた値
となる.
3.1.2
スタティック電力
スタティック電力はリーク電力とも呼ばれ,演算処理を行っていない時でも,回路に常に一定
に流れてしまうリーク電流によって生じる.以降,スタティック電力をリーク電力と記述する.
CMOS トランジスタは 図 3.2のような構造をしている.ゲートに対してかける電圧を変える事
で,ドレインからソースに電流を流したり,遮断したりできる.
Gate O xide
Source
P-w ell
図 3.2
Gate
Gate Leakage Current
Drain
Subthreshold Leakage Current
nMOS トランジスタ内を流れるリーク電流
ところが,ゲートに対して電圧をかけている,いないにも関わらず,ソースドレイン間の間隔
が小さいとトンネル効果が発生し,常にある一定の量で電流が流れる.これがリーク電流である.
図中には 2 本の矢印があるが,ソースドレイン間を流れる電流をサブスレッショルドリーク電流,
ゲートからサブスレッショルドに向かって流れる電流をゲートリーク電流といい,リーク電流は
これらの和となる.
ロジック回路に対する供給電圧を一定とした場合,リーク電力は 3.2式から求まる.
第 3 章 低消費電力化手法
29
PLeakage をリーク電力,ILeakage をリーク電流,VSupply を供給電力としている.
PLeakage = VSupply ILeakage
(3.2)
従来,リーク電力の占める割合は全体の消費電力のごくわずかで無視できるほどであった.し
かし近年プロセスルールの微細化が進み, 90 nm 以下のプロセスルールになってからは,トラン
ジスタのゲートが薄くなるにつれ,リーク電力は指数関数的に増加し,消費電力全体に対して占
める割合が大きくなっている [21].
85 ℃ の条件で 90nm プロセスルールで設計した FPGA が,アクティブの時のリーク電力は,消
費電力全体の 20% ∼ 25% である [22].
Geoff Merett 氏らは,プロセスルールを 0.13µm,0.1µm,及び 0. 07µm と変化させた時の,2 入
力 NAND ゲートのリーク電力の変化を測定している [23].図 3.3はその結果である.
14000
Leakage Pow er [pW ]
12000
2-input CPL N A N D
2-input CO M P N A N D
10000
8000
6000
4000
2000
0
図 3.3
0.13
0.1
Process Rule[µm ]
0.07
プロセスルールの微細化に伴うリーク電力の増加
図中には 2 本の曲線があり,それぞれ Complementary CMOS (COMP)及び Complementary
Pass Logic(CPL)という異なるデザインスタイルで,NAND を設計した時の変化を表している.
COMP NAND ゲート及び CPL NAND ゲートを比較すると,グラフでは後者の方がリーク電力が
低いので優勢に見えるが,遅延が大きくなってしまう欠点がある.いずれにせよ,この図からリー
ク電力の指数関数的な増加が分かる.
3.2
3.2.1
ダイナミック電力削減手法の例
コンフィギュレーションにかかる電力
リコンフィギャラブルデバイスでは,アプリケーションを実行している時だけでなく,演算器
やデータバスのコンフィギュレーションを行う際にも電力を消費する.この電力はダイナミック
電力として扱われ,動的リコンフィギャラブルデバイスにおけるその割合は,ダイナミック電力
第 3 章 低消費電力化手法
30
全体の約 20%に達する [24].Michael G. Lorenz 氏らは,コンフィギュレーションにかかる電力
について測定を行っている.対象としたデバイスは部分再構成可能な FPGA (Atmel 社 AT40K20
FPGA) で,これに乗算器をコンフィギュレーションする際の消費電力について,乗算器のビット
幅とクロック周波数を変えて測定している.この結果によると,演算器のコンフィギュレーション
よりもデータパスのコンフィギュレーションの方が,コンフィギュレーションにかかる時間と消
費電力が大きくなっている.またデータパスを変更した場合,コンフィギュレーションする部分
が増えるため,その幅に比例して消費電力は増大した.一方クロック周波数を変えた場合は,低
い周波数になるほど消費エネルギーが増大した.これは,実行時間が増えることにより次節で説
明するリーク電力が増加したことによるものと思われる [25].
Yoonjin Kim らは,以前自身が提案した,Spatial Mapping[26] と Temporal Mapping[27] を組み
合わせた Reusable Context Pipelining(RCP)[28] というコンフィギュレーションデータのマッピン
グ手法を提案した.Spatial Mapping と Temporal Mapping については以下の通りである.
• Spatial Mapping : コンフィギュレーションを固定する.ループの多いアプリケーションに対
して有効.
• Temporal Mapping : コンフィギュレーションデータをパイプラインのように流す.一部の PE
以外はコンフィギュレーションキャッシュを読む必要がないので,低消費電力.
RCP はパイプラインの様に流すコンフィギュレーションデータを,ループさせることで再利用す
るという手法である.コンフィギュレーションデータを流すパスにレジスタを設置して,各 PE が
コンフィギュレーションデータを選択できるようにした.その結果,最大で 55%の電力を削減す
ることができた.しかし,評価結果を見るとアプリケーションによってばらつきが有り,新たに
追加したハードウェアについての評価は一切加えられていない.
3.2.2
クロックゲーティング及びオペランドアイソレーション
クロックゲーティングは,値を更新しないフリップフロップに対するクロック供給を遮断する
ことで消費電力を削減する方式で,式 3.1のトグルレート α を小さくし,スイッチ電力を削減す
る技術である.
オペランドアイソレーションは,モジュールを分割し演算に使用されない部分の入力値を,フ
リップフロップや AND ゲートで固定する事でトグルレート α を小さくし,スイッチ電力を削減
する手法である.
クロックゲーティングやオペランドアイソレーションは,今日では多くの回路で利用される一
般的な技術である.
3.2.3
DVS を用いた電力削減手法
Yang Qu らは,Dynamic Voltage Scaling (DVS) を用いて再構成にかかる電力を削減する手法を
提案した [29].今,図 3.4 (a) のように,task1 の実行時間よりも task2 の再構成にかかる時間が少
ない場合があるとする.この時,図 3.4 (b) のように task2 の再構成にかかる実行時間が task1 の実
行時間を越えないように電圧を下げることで,性能低下を隠蔽しつつ電力を削減するという方法
である.アーキテクチャのモデルは 図 3.5 のようになっており,FPGA ライクな構造に加え,コ
第 3 章 低消費電力化手法
31
ンフィギュレーションコントローラを複数持っている.これにより,コンフィギュレーションを
並列に行えるようになり,実行時間のオーバヘッドをより多く隠蔽することが可能となる.また
彼らは,コンフィギュレーションをマッピングする際,遺伝的アルゴリズムを用いてこれを行っ
ている.
task 1
configuration
task 2
idle tim e
(a) H SV :H igh Supply Voltage
task 1
configuration
task 2
idle tim e
(b) Low Supply Voltage
図 3.4
DVS による電力削減
Configuration Controller 2
Configuration Controller 3
Configuration Controller N
M ultiple Read-Port
M em ory or M em ory Banks
for Configuration D ata
Tile N
Configuration Controller 1
Crossbar
Connection
Com m unication
N etw orks
Tile 1
Tile 2
Tile 3
Tile 4
Tile 5
Logic
Configuration SRA M
図 3.5
並列コンフィギュレーションが可能なモデル
そして,4 種類の異なる電圧を用いて FPGA に実装し,アプリケーションを実行した際の評価
をとった.その結果,再構成にかかる電力を 19.3%削減することに成功している.
しかし,この手法はアプリケーションによっては効果が得られない場合が有ることや,コンフィ
ギュレーションコントローラを複数も搭載したことによる面積オーバヘッドが全く評価されてい
ない.
3.2.4
Dual-Vdd の適用
Dual-Vdd は,供給電圧を複数用意し,使用頻度の低い部分に低電圧を供給する手法である.Li
ら,及び Tran らは,複数個の論理ブロックをひとまとめにした電圧ブロックとして扱い,電圧ブ
ロック単位で FPGA に Dual-Vdd を適用している.図 3.6は,Li らが実装した Dual-Vdd の概略図
である.FPGA のアレイにおいて,論理ブロックを列毎に一つの電圧ブロックとしている.Tran
第 3 章 低消費電力化手法
32
らの実装では,2 × 2 の計 4 個のロジックブロックを一つの電圧ブロックとしている.
一方 Lin らは,図 3.7のように一部のグローバル配線に Dual-Vdd を適用し,クリティカルでな
いパスを低 Vdd のグローバル配線に接続することにより,処理速度を犠牲にすることなく FPGA
の低消費電力化を行っている [30].
これらのように,複数の電圧電圧を供給可能にし, 動的な切り替えを実現すると,動的な電力を
効果的に削減できるが,複数電圧を制御する回路の面積オーバヘッドが大きく,面積の増大にとも
なう消費電力の増加が起こる.Dual-Vdd の適用による動的な消費電力の削減の効果と,Dual-Vdd
の導入コストのトレードオフを考慮した設計が求められる.
LB:Logic Block
LB:Logic Block
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
LB
Low Vdd
図 3.6
3.2.5
H igh Vdd
論理ブロックへの Dual-Vdd の適用
Low Vdd
図 3.7
H igh Vdd
グローバル配線への Dual-Vdd の適用
SOTB
SOTB とは,超低電圧デバイス技術研究組合 (LEAP:Low-power Electronics Association & Profect)
が開発した,超低電圧 (0.4V) で動作するトランジスタである [31].低電圧供給時でもチップ間の
ばらつきが少なく,SRAM などでの利用可能である.
SOTB の模式図を図 3.8に示す.
SOTB は従来同様のシリコン基盤の上に,ともに 10 ナノメートル程度の極薄の絶縁膜 (シリコン
酸化膜からなる埋め込み絶縁 BOX 層) とシリコン薄膜 (SOI 層) が積層された SOI 基盤 (SOI:Silicon
On Insulator シリコン基盤状に絶縁膜とシリコン膜が順に形成された基盤) の上に形成されたトラ
ンジスタである.
トランジスタの動作を行う薄膜 SOI 層に含まれる不純物が少なく,従来のバルク CMOS と比較
し,トランジスタ特性のばらつきを大幅に削減している.
BOX 層裏面 (裏面ゲート) に電圧を引加することで基盤バイアス制御を行うことができる.
従来のバルク CMOS も一緒に製作可能な構成であり,製造技術と回路開発技術の多くの点で従
来技術と共通点が多く,これまでの設計資産を継承しやすい.
第 3 章 低消費電力化手法
33
Gate Electrode
Back Gate Bias
Terminal
D rain/Source
SOI
Insulation Film
Back Gate
Silicon Substrate
SOTB
for low power logic
図 3.8
Traditional
Bulk CM OS
SOTB の模式図
基盤バイアスを印加すると,トランジスタの特性を変化させることができる.ここでは,nMOS
の場合で説明する.基盤バイアスに性のバイアスを掛けると nMOS の閾値電圧が低くなり回路の
動作速度が向上し,消費電力も増大する.一方で,基盤バイアスに負の電圧を印加すると,閾値
電圧が上昇し回路の動作速度が遅くなり消費電力も削減される.
回路の稼働状況に合わせて基盤バイアスを制御することで,性能を犠牲にすることなく効果的
に消費電力を削減することができる.
3.3
3.3.1
リーク電力削減手法の例
パワーゲーティング
パワーゲーティングは,リーク電力を削減する為の手法の 1 つである.図 3.9のように,電源ラ
イン及びロジックセルの間,ロジックセル及びグラウンドラインの間のどちらか,もしくは両方
にスリープトランジスタを挿入し,また,ロジック回路のグラウンドラインと接続されていた配
線を仮想グラウンドライン(図中の VGND)とする.
VDD
Logic
Circuit
Logic
Circuit
VGND
Sleep Signal
GND
Sleep Transistor
図 3.9
スリープトランジスタの挿入
スリープトランジスタに対して与えるスリープ信号を制御する事で,電源ラインからグラウン
ドラインへの回路が電気的に遮断され,リーク電流を低減でき,結果的にリーク電力が削減され
る.このスリープトランジスタには,ロジック回路よりもスレッショルド電圧が高いものが用い
第 3 章 低消費電力化手法
34
られ,遮断された時のリーク電力が小さくなるように設計されている.回路に電流が流れている
時,ロジック回路で演算を行う事ができ,この状態をアクティブ状態という.一方,遮断された
時は演算処理ができず,この状態をスリープ状態という.また,スリープ状態からアクティブ状
態へと状態遷移する事をウェイクアップという.
ロジック回路をスリープさせたり,ウェイクアップさせたりする際に,スレッショルド電圧の高
いスリープトランジスタがトグルする為,電力オーバヘッドが生じる.故に短い期間中に頻繁に
スリープ及びウェイクアップを繰り返すと,電力削減効果を得る事ができない.パワーゲーティ
ングによる電力削減効果を得る為には,十分に長い時間スリープさせる必要があり,電力オーバ
ヘッドもなく電力削減効果も得られないスリープ時間を損益分岐点と呼ぶ.
FPGA にパワーゲーティングを施した結果,リーク電力は最大 54% 削減されている [21].
3.3.2
Dual-Vth
リーク電力は,トランジスタのゲートの酸化膜を厚くし,スレッショルド電圧の高いトランジ
スタを用いる事で低減する事ができる.Xilinx 社の Virtex-4 FPGA ではリーク電力を,競合他社
の高性能 90 nm FPGA の約 13 程度に抑えられている.
閾値 Vth の高いトランジスタで構成されたセルを用いれば,遅延は増大するが,リーク電力は
閾値 Vth の低いトランジスタで構成されたセルよりも小さくなる.
そこで,Li ら [32] 及び Tran ら [33] は図 3.10のように,高速な処理の要求されない部分に閾値
Vth の高いトランジスタを用いる手法を用いることで,性能を犠牲にすることなくリーク電力を
削減している.この手法は適用範囲が広く,クリティカルパス及びそれに準ずるパス以外のほと
んどすべてのセルに適用できる.したがって高いリーク電力削減が見込める. SRAM
SRAM
SRAM
OUT
SRAM
High Vth
for short path
Low Vth
for long path
図 3.10
Dual Vth の基本的適用法
第 3 章 低消費電力化手法
35
3.4 CMA の基礎となる省電力化手法
CMA においては PE アレイとマイクロコントローラモジュールが独立しているため,電源を
Dual Vdd にすることで効果的に電力効率を高められる.消費電力は供給電圧の二乗に比例するた
め,電力効率を高めるには供給電圧を下げて動作させると良い.PE アレイの電源に対しては,要
求性能に応じて DVS を適用することで更に電力効率を高めることができると考えられる.
従来技術でも再構成にかかる電力を削減する手法が検討されている.CMA ではアプリケーショ
ン実行中は PE アレイを再構成しないことで再構成に必要な電力オーバーヘッドを最小化する.
更に,演算器の設計にはハードウェアオーバーヘッドの少ない省電力化手法であるオペランド
アイソレーションやクロックゲーティングを行い余計な動的電力は可能な限り削減する.
第 3 章 低消費電力化手法
36
37
第4章
CMA アーキテクチャ
本章では CMA の設計コンセプトや,消費電力削減の根拠を説明し,CGDRP と比較しながら CMA
の特徴を述べる.
4.1 CMA の概要
CMA は,例えば CMOS カメラモジュールの画像処理 LSI など,バッテリー駆動する組込みシ
ステムのマルチメディア処理をターゲットとする.これらの処理は,一定量のデータを要求時間
内に処理する必要があるが,要求時間よりも早くに処理を終わらせることに優位性はない.バッ
テリー時間を確保するために,最小限の処理エネルギーで処理を完了させることが重要である.
消費エネルギーは動作時間と消費電力の積により求められる.システムの動作時間が一定とす
ると消費エネルギーは消費電力に依存して変化する.消費電力は (P = CV 2 f ) 式であり,供給電圧
(V) の二乗に比例する.そのため,供給電圧は可能な限り 低い方が消費電力の削減に貢献する.し
かし,以下の式 (4.1) で表される論理回路の遅延時間は電圧 V を下げスレッショルド電圧 Vth に近
づけるほど長くなる.従って,供給電圧を下げる場合は要求性能を満たせことを考慮しつつ,下
げていく.なお,α は 1.1 から 1.3 [34] 程度である.
Delay = β
CV
(V − Vth)α
(4.1)
幸いにも,CMA がターゲットとする画像などのストリーム処理には高い並列性があるため,チッ
プ面積の許す限り多くの PE を搭載し並列処理することで供給電圧を下げ低電力で処理すること
ができる.しかし,演算器にレジスタやメモリなどの記憶素子を搭載しているアーキテクチャで
は,供給電圧を Vth 以下にさげると記憶素子に演算結果を正しく格納できなくなるため,Vth 以
下では動作させることが出来ない [35].
そこで,CMA では演算器アレイから記憶素子を排除して組み合わせ回路で構成し,コントロー
ラモジュールと電源分離することで,演算器アレイへの供給電圧を Vth ぎりぎりまで下げても正
常な動作を可能にし,消費電力を削減を目指す.
4.2 CMA のアーキテクチャ
CMA は,組み合わせ回路で構成される大規模な PE アレイ,マイクロコントローラ,データメ
モリの 3 つのモジュールで構成する.
PE アレイはメモリやレジスタなどの記憶素子を排除した組み合わせ回路で構成する.要求性能
を満たせる範囲で PE アレイへの供給電圧を下げて動作させることで消費電力を削減する.CMA
の PE アレイは組み合わせ回路であるため,供給電圧が Vth ぎりぎりまで下げても動作可能であ
る.また,面積の大半を占める PE アレイにクロックを供給する必要がなく,クロックツリーを大
第 4 章 CMA アーキテクチャ
38
幅に削減できる.更に,PE アレイの再構成の頻度をアプリケーション毎とすることで,再構成で
消費される電力も削減する.
マイクロコントローラは PE アレイとデータメモリ間の通信制御と,PE アレイの構成情報の管
理,PE アレイへの定数の供給を行う.アプリケーション実行時は PE アレイの構成は変化せず,
PE アレイに供給する定数も一定であるため,マイクロコントローラ内で通信制御を行うモジュー
ル以外にはクロックゲーティングを施し,消費電力を削減する.通信制御では,1) データメモリ
から処理するデータをフェッチする時間 (T f etch ),2)PE アレイで処理する時間 (T PEArray ),3) 演算
結果をデータメモリに書き戻す時間を重複させ,パイプライン処理することで実演算以外に必要
な処理時間を隠蔽する.T f etch よりも T PEArray の方が早い場合は PE アレイの供給電圧を下げるこ
とで T f etch と T PEArray のバランスをとり,処理性能に悪影響を与えることなく消費電力を削減す
る.これとは逆に,T f etch よりも T PEArray の方が遅い場合,マイクロコントローラの動作周波数を
下げることで消費電力の削減を図る.
データメモリはデュアルポートで設計し,CMA コア内での演算処理と,CMA コアと外部のコ
アとのデータ通信処理を同時に実行可能とする.これにより,システム全体での処理性能への影
響を最小限に抑える.
4.3 CGDRP との比較
ここで,CGDRP と比較しながら CMA の特徴を述べる.図 4.1に CGDRP と CMA のアーキテ
クチャの比較図を示す.
PE Array
PE Array
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
SEL SEL
PE
PE
PE
PE
Swit ch ing
Element
PE
PE
PE
PE
clock
ALU
Confi g u ration
Memory
reg is ter
PE
PE
PE
PE PE PE PE
PE PE PE PE
PE PE PE PE
PE
PE PE PE PE
PE
PE PE PE PE
ALU
SEL SEL
Swit ch ing
Element
reg is ter
Confi g u ration Memory
Data Memory
Data Memory
clock
(a) CG DR P
図 4.1
4.3.1
PE PE PE PE
DV S
controller
clock
PE
(b ) CMA
(a) 動的再構成プロセッサ (b)CMA アーキテクチャ
クロックツリーの局所化
CGDRP では PE がアレイ状に配置されており,各 PE にクロックを入力するためにクロックツ
リーが PE アレイ全体に広がっている.一方で,CMA の PE アレイはメモリ素子を持たない組み
合わせ回路であるため面積の大部分を占める PE アレイへのクロックツリーが不要であり,メモ
リーモジュールとコントローラのみにクロックを供給すればよいためクロックツリーによる電力
第 4 章 CMA アーキテクチャ
39
オーバーヘッドを削減できる.
CGDRP では PE アレイが記憶素子を保持しているため記憶素子の閾値電圧以下に PE アレイの
供給電圧を下げることができない.しかし,CMA の PE アレイは記憶素子を排除しているため,
記憶素子の閾値電圧以下まで PE アレイへの供給電圧を下げて動作させることが可能であり,要
求性能を満たせる範囲で積極的に PE アレイへの供給電圧の低下を試みることができる.
4.3.2
時間効率の改善
CMA は CGDRP よりも処理時間の効率が良い.CGDRP と CMA の処理時間効率の模式図を図
4.2に示す.
Re-configuration
margine store
mult
time w aste
OR
add
1 clock sycle
mult
OR
add
mult
add
time
(a) CGDRP
Data fetch
mult
add O R
Data fetch
Data Store
mult
add O R
Data fetch
Data Store
mult
add O R
Data Store
time
(b) CM A
図 4.2
処理時間の内訳 (a) 動的再構成プロセッサ (b)CMA
CGDRP では全 PE がタイミングを合わせて,1 クロックサイクルの間に PE の再構成と,実演
算,演算結果のレジスタへの書き込みを行う.CGDRP で動作周波数を上げる,または PE アレイ
への供給電圧を下げる場合は,全 PE のなかで一番遅延時間の長い PE に合わせて制御を行う.特
に,実演算に必要な時間では,加算や論理和などの単純な処理よりも乗算などの複雑な処理の方
が時間がかかるため,単純な処理を行う PE は複雑な処理を行う PE の処理待ち時間が発生する.
一方で CMA はアプリケーション実行前に PE アレイを再構成した後は構成変更を行わないため
動的な再構成に必要な時間をまるまる削減可能である.また,CGDRP では全ての PE を同一のク
ロックサイクルで動作させるため,演算の種類による処理時間の差が時間的なオーバヘッドになっ
ていたが,CMA の PE アレイはアレイ全体が一つのデータパスであり各 PE は非同期で動作する
ため,PE 間の演算時間の差のオーバヘッドを削減できる.
第 4 章 CMA アーキテクチャ
4.3.3
40
コンテキストメモリの削減と PE アレイの大規模化
CMA では演算結果を格納するレジスタと PE の構成情報用のコンテキストメモリはコントローラ
に集約されているため,PE 数を増やすとコントローラの面積と電力が増加する.しかし,CGDRP
の PE 数を増やすよりも CMA の PE 数を増やす方がレジスタとコンテキストメモリのオーバー
ヘッドが小さい.CGDRP では PE 毎にレジスタを保持しているのに対して,CMA では PE アレイ
の列毎にレジスタを保持するため CGDRP よりも必要なレジスタが少ない.また,CGDRP はク
ロック毎に構成を切り替えるため複数種類の構成情報を保持する必要があるが,CMA ではアプ
リケーション実行中は PE を再構成しないため,PE 一つあたりに必要なコンテキストメモリの量
が CGDRP よりも少ない.CMA では各 PE に必要なレジスタやコンテキストメモリの面積オーバ
ヘッドが小さいために,同じ面積に CGDRP よりも多くの PE を実装可能である.
これにより,同じ面積に実装可能な PE 数を増やすことで単位時間あたりに処理可能な演算数
が増え,CMA の電力効率を効果的に向上させることができる.
4.3.4
コンセプトのまとめ
CMA は CGDRP の電力オーバヘッドを削減し電力効率を高めることを目的として提案された.
電力効率の比較を図 4.3に示す.
Power Efficiency
3 Dual Vdd
CMA
2 Increase PE
1 Eliminate memory from PE array
CGDRP
Vdd
図 4.3
CMA の電力効率コンセプト
通常,回路への供給電圧を下げると電力効率は高まっていく.しかし,供給電圧を下げ続ける
と,遅延時間の増加により性能が下がり,消費電力のうちリーク電力が支配的になり電力効率は
悪化していく.
回路の電力効率として一般的にはメモリ素子の電力効率のピークは 0.7V 周辺であり,ロジック
回路部分の電力効率のピークは 0.35∼0.5V 程度であることが知られている.CMA ではシングル
第 4 章 CMA アーキテクチャ
41
コンテキストにすることで構成メモリを削減していることと,PE からレジスタを排除することで,
前述の電力効率のピークを CGDRP よりも低い電圧の領域に拡大する.
また,PE からメモリを削除することにより PE 一つあたりの面積を削減することで,同じ面積
により多くの PE を実装することができ,CGDRP よりも単位時間で処理可能な演算数を高めるこ
とで,電力効率を全体として高める.
更に,PE アレイとコントローラで異なる電源を設けることで PE アレイで動的に消費電力を効
果的に削減することが出来る.CGDRP の場合,PE にメモリやレジスタがあるため,メモリの閾
値電圧以下まで下げて動作させることが出来ない.一方,CMA では PE アレイとコントローラで
電源を分離し,PE アレイとコントローラ間にレベルシフタを設けることで,PE アレイに対して
はメモリの閾値電圧以下の供給電圧でも動作を可能としている.これにより,性能要件を満たせ
る範囲で最大限 PE アレイへの供給電圧をさげ,電力効率を高めることができる.
第 4 章 CMA アーキテクチャ
42
43
第5章
CMA-1
本章では,CMA の試作 1 号機として開発した CMA-1 について説明し,同じプロセスを用いて同
じサイズのチップに実装された CGDRP である MuCCRA-3 と比較する.CMA-1 設計のブロック
図を図 5.1に示す.
supply voltage scaling
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
0
0
0
0
0
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
0
0
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
0
0
0
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
0
0
0
0
0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
0
0
0
0
0
0
0
0
Const. registers
0
0
COL_0
COL_1
COL_2
COL_3
COL_4
COL_5
Initial only
clock region
COL_6
Initial only
clock region
0
0
Configuration registers
0
0
0
0
Const. registers
Configuration registers
PE_ARRAY
COL_7
Feedback Lines
launch register
fetch register
gather register
micro controller
24bit X 1K
図 5.1
DMEM
24bit X 1K
runtime clock region
CMA-1 のブロック図
5.1 PE アレイ
CMA-1 の PE アレイは 8 × 8 サイズの組み合わせ回路であり,各 PE のデータ幅はキャリー 1 ビッ
ト,データ 24 ビットの計 25 ビットである.供給電圧は 0.4∼1.2 V という広い電圧帯で動作する.
第 5 章 CMA-1
44
CMA-1 で用いられている RAM のスレッショルド電圧は 0.65 V であるが,PE アレイとマイクロ
コントローラの間にレベルシフタを用いているため,スレッショルド電圧よりも PE アレイへの
供給電圧が低い場合でも正確な演算結果を得ることができる.
PE アレイの入出力は 8 ポートずつ存在し,すべてマイクロコントローラと接続 (図 5.1 DAC 中
の launch regs. の出力が PE アレイの入力と,PE アレイの出力は DAC 中の gather regs. の入力と
繋がっている) されている.PE アレイの入出力は,PE アレイの南端の行の PE の SW_A の to/from
south PE と繋がっている.PE アレイには同時に 8 つのデータが入力されるので,最大 8 並列の
データ処理が可能である.このアレイサイズはコンセプトのわりに小さいが,テストプログラム
を動かすのには十分なサイズである.
5.2 PE
次に,PE の構成を図 5.2に示す.PE の入出力は,東西南北方向の PE とのアイランドスタイル
(図 5.2内に示す SE) による入出力と,直結方式 (図 5.2内 from direct link, to north-east PE directly
及び to east PE directly で示す) によるものがある.
CMA-1 は,CMA への演算配置の特性に関する研究がなされる以前に開発された為,CGDRP の
接続網に関する研究の結果を用いて直結網を張った.そのため CMA では比較的優先順位の低い
北東方向にリンクを持っている.
PE のデータ幅はキャリー 1 ビットとワード幅 24 ビットの計 25 ビットであり,図 5.2に示すよ
うに ALU と SE,ALU SEL から構成される.
to north-east PE directly
ALU
to/from east PE
to/from w est PE
ALU selector
SW_A
SW_B
to/from south PE
図 5.2
to w est PE directly
to/from north PE
from direct link
CMA-1 の PE の構成
ALU は算術演算や論理演算を実現するため,加減算器,乗算器,シフタ,論理演算器から構成
第 5 章 CMA-1
45
される.オペランドアイソレーションが適用されており,使わない演算器の入力は 0 に固定され
る.表 5.1に実装されている演算を示す.
SE は,ALU の演算結果を東南北方向に出力可能で,東西南方向の PE からと,ダイレクトリン
クからの値を東西北方向に出力可能で,北側の PE からの値はフィードバックループ回避のため,
南側のみに出力する.
ALU SEL は東西南方向の PE からと,ダイレクトリンクからの値を入力とし,演算に必要な値
を 2 つ ALU に対して出力する.
表 5.1
命令
NOP
ADD
SUB
MULT
SL
SR
SRA
SEL
EQL
CAT
NOT
AND
OR
XOR
GT
LT
ALU に実装された命令群
出力
0
IN A + IN B
IN A - IN B
IN A * IN B
IN B ビット IN A を算術左シフト
IN B ビット IN A を算術右シフト
IN B ビット IN A を算術右シフト
IN A のキャリーがあれば IN A,そうでなければ IN B
IN A == IN B ならば IN A,そうでなければ 0 IN A
~IN A
IN A & IN B
IN A | IN B
IN A ^ IN B
IN A > IN B ならば IN A,そうでなければ IN B
IN A < IN B ならば IN A,そうでなければ IN B
図 5.3に SE の内部構成を示す.SE は,ALU の演算結果を東南北方向に出力可能で,東西南方
向の PE からの値を東西北方向に出力可能で,北側の PE からの値は南側のみに出力する.これら
は,フィードバックループを回避するための設計である.CMA-1 の定数は図 5.1に示すように PE
アレイの一番下の行の PE と左右の端の列の中央 4 つの PE に存在する SW_B を介して,計 16 個
供給される.PE 間の接続網は 2 セットのスイッチングエレメント (SE) によるアイランドスタイ
ルと SE を介さないで ALU の出力を東方向に隣接 PE と東北方向に存在する PE に出力する直結
網のハイブリッドで接続される.
PE アレイの西端の列の PE と南端の行の PE の直結網からの入力 (図 5.2中 from direct link) は,
接続される PE が存在しないため,0 が入力されるようになっている.
基本的に演算途中のデータは PE アレイの北側,東側方向に流れていき,演算結果は南方向に
流れていく.
フィードバックライン (北から南方向への接続) は各列に 1 つだけ設けられており,各 PE から
そのラインに ALU の出力をのせることが可能である.フィードバックループを防ぐため,フィー
ドバックラインの値は演算に用いることは出来ない.
第 5 章 CMA-1
46
to/from north PE
ALU OUT
from d ire c t link
to/from w e st PE
to/from e a st PE
SW_A
SW_B
to/from south PE
図 5.3
5.3
CMA-1 の SE の構成
データメモリ
動的再構成プロセッサではマルチバンクデータ RAM モジュールが用いられることが一般的だ
が (図 4.1(a)),多くの電力を消費する.そこで,CMA-1 では,25 ビット幅 1024 エントリのデュ
アルポートの RAM2 つの計 12K バイトの容量を持つをデータメモリを用いている (図 5.4).
Micro Controller
25bit
BA N K SEL
Data Memory
Bank 0
Bank 1
0
1
0
1
2
2
3
4
3
4
.....
.....
1022
1023
1022
1023
External Memory
図 5.4
CMA-1 のデータメモリ
CMA-1 のデータメモリは (図 5.1中 DMEM,または図 5.4) 2バンク構成となっており (図 5.1
DMEM 中の Bank0, Bank1,または図 5.4中の Bank0, Bank1),一方のバンクがマイクロコント
ローラの持つ PE アレイの入出力レジスタ (図 5.1中 fetch regs. と gather regs.) と接続されている
間,もう一方は CMA-1 外部との入出力に接続される.これにより,CMA-1 内部での演算時間と
第 5 章 CMA-1
NOP
BEQZ rd, imm
BNEZ rd, imm
MV rd, rs
WAIT_BANK_SEL
ADD rd, rs
LD_ADD rd, imm
LD_ADDI rd, imm
LDSQ rd
LDLI rd, imm
LDHI rd, imm
DONE
SCATTER
GATHER
47
表 5.2 DAC の命令群
何もしない
rd が 0 なら imm に移動
rd が 0 でなければ imm に移動
rd に rs の中身をコピーする
BANK_SEL 信号が切り替わるまで待つ
rd に rs を加算する
メモリの rd 番地の値を rd 番の FR に読込み
rd に rs を加算する
LD_ADD と同様で,最後に rd に imm を加算
rd 番地の値から順に 8 個のデータを FR に読込む
rd の下位 16 ビットに imm の値をロードする
rd の上位 8 ビットに imm の値をロードする
演算終了の信号を発信する
FR の値を LR にコピーし,PE アレイに出力する
PE アレイの出力を GR に格納する
CMA-1 外部との入出力に掛かる時間をオーバーラップすることを可能にしている.
どちらのバンクがコントローラと接続されるかは,外部から入力される 1 ビットの BANK_SEL
信号によって切り換える.
5.4
マイクロコントローラ
マイクロコントローラはデータメモリと PE アレイ間のデータ転送を制御するデータメモリアク
セスコントローラ (DAC:図 5.1中 DAC) と定数及び構成情報コントローラ (CCC:図 5.1中 Const.regs.
,Configuration regs.) から構成される.DAC は最大で 210MHz で動作する.
CMA の PE アレイは動的再構成を行わないため,入力されるデータは予め整列されている必要
があり,そのための柔軟なメモリアクセスを DAC が行う.
DAC は,Fetch Register と Launch Register,Gather Register の 3 種類のレジスタを保持しており,
それぞれが 25 ビット幅のレジスタを 8 ポートずつ存在する.データメモリから取得したデータ
を FetchRegister に格納する.CMA-1 のマイクロコントローラは 1 クロックサイクルで 1 ポートの
データを取得するため,全ての Fetch Register にデータを取得するのには 8 クロックサイクルを必
要とする.Launch Register の値が PE アレイに入力され,PE アレイの出力が Gather Register に入
力されている.Fetch Register の値は 1 クロックサイクルで 8 ポート分全ての値が Launch Register
にコピーされる.同様に PE アレイの出力も 1 クロックサイクルで Gather Register に格納できる.
CMA-1 ではこれらの 3 種類のレジスタが存在することで,データメモリからのデータフェッチ
に必要な時間と PE アレイでの演算時間,演算結果をデータメモリに書き戻す時間を重複させた
動作を可能としている.
DAC に実装されているマイクロオペレーションを表 5.2に示す.
CCC は PE アレイの構成情報とアプリケーションの実行に必要な定数を供給する.演算実行中
は CCC の出力の値は変化しない (CMA は動的再構成を行わないので PE アレイの構成情報は変化
第 5 章 CMA-1
48
しない) ため,演算実行中の CCC へのクロックは根元から遮断される (図 5.1では Initial only clock
region と表記).他の多くの粗粒度再構成デバイスと同様に,CMA-1 も PE の演算の種類と接続網
の構成情報と,演算に使われる定数を保存するレジスタを CCC 内に持っており,アプリケーショ
ンプログラムの実行前にセットアップされる.CMA-1 では,CCC は PE アレイの外部に配置され
ており,ここから各 PE に構成情報の信号が送られ,定数は PE アレイの東西南方向に対して供給
される.CMA-1 では動的再構成をせず,構成情報のセットアップがアプリケーションプログラム
の実行前に行われるため,構成情報,定数レジスタを PE アレイの外部に配置することによる配
線遅延の増大を気にする必要がない.
アプリケーションプログラム実行中にはこのレジスタの値は書き換わることがないため,この
レジスタへのクロックはアプリケーションプログラム実行中は根元からゲーティングされる (図
5.1中の initial only clock region).したがって,クロックツリーは,実行前の構成情報セットアッ
プ時のみアクティブとなる.
5.5
構成情報転送
CMA では,RoMultiC[36] という構成情報のマルチキャスト手法を採用している.構成情報に
PE アレイの各行と列に対応した 2 次元のビットマップを持たせ,行と列両方のビットマップがア
クティブな PE に対し,構成情報が配送されるという手法である.この手法は,構成情報そのもの
の削減のみならず,構成情報配送にかかる時間と電力両方を削減できる.
5.6 CMA-1 の実装
富士通 e-shuttle 65 nm 12 層 CMOS プロセスを用い,4.2mm × 2.1mm サイズのチップに CMA-1
を実装した.CMA-1 のチップ写真を図 5.5に示す.論理設計には Verilog HDL を,論理合成には
Synopsys Design Compiler (2007,12-SP3) を,配置配線には Synopsys Astro (2007.03-SP3) を用いた.
図 5.5
CMA-1 のチップ写真
第 5 章 CMA-1
49
5.7 CMA-1 評価環境
CMA-1 の性能評価は,図 5.6に示すように,独自に開発したボードに FPGA(Virtex4) と CMA-1
ドータボードをのせ,FPGA をホスト CPU とみなし CMA-1 に処理をオフロードさせ,動作中の
電流と電圧を直接測定することで行った.クロックはシグナルジェネレータからマザーボードに
入力され,マザーボードから FPGA に入力されたクロックが直接ドータボード上の CMA-1 に入
力される.CMA-1 は PLL を持たない為,システムクロックと内部クロックが同じであるが,ドー
タボードの I/O パッドの性能の限界から,CMA-1 には 210MHz までしか入力出来ないという問題
がある.
CMA-1 はマイクロコントローラおよびその他のテスト回路やレジスタの電源と PE アレイの電
源が分離されているため,PE アレイとマイクロコントローラの電力を分離して測定した (図 5.7).
CMA-1 に入力されるクロックと,PE アレイの供給電圧は手動で変化させ評価を行った.
PE アレイとマイクロコントローラそれぞれの電源の入力には可変抵抗が設置されており,これ
により入力電圧を上下に 0.4V 程度の調整は出来るがそれ以上の大きな範囲では調整出来ないため,
電源装置の出力を調整する必要がある.また,可変抵抗は微小な電圧の調整も困難であり 0.01V
違うだけで数 mA の電流が変化してしまい,極小レベルの測定を必要とする CMA の電力評価は
困難を究めた.性能は,マイクロコントローラの動作周波数と,各アプリケーション毎の PE アレ
イの使用率,コントローラがデータをスキャターする頻度を掛け合わせて求めた.
xillinx Virtex4
図 5.6
5.8
評価ボード
図 5.7
評価環境
評価
同じ Fujitsu65 nm プロセスを用いて,同じ 4.2mm × 2.1mm サイズのチップに実装された CGDRP
である MuCCRA-3 と CMA-1 を比較する.MuCCRA-3 は 4 × 4 サイズ PE アレイで構成され,デー
タ幅は 16 ビットである.MuCCRA-3 はマルチコンテキスト型であるため,各 PE は 16 エントリ
のコンテキストメモリを保持している.また,各 PE は演算結果を保存するレジスタを保持して
いる.MuCCRA-3 のフロアプランを図 5.8[37] に示す.一方,CMA-1 の PE アレイは 8 × 8 サイズ
で,データ幅は 25 ビットである.アプリケーション実行中は PE アレイは再構成しないため,各
PE の構成情報は 1 エントリ分である.CMA-1 の PE アレイは組み合わせ回路であるため,PE の
演算結果を格納するレジスタは存在しない.
第 5 章 CMA-1
50
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
図 5.8
5.8.1
比較対象:MuCCRA-3 のフロアプラン
面積
1.2
70
1
60
Chip Area Usage[%]
PE Area Rate
図 5.9に PE ひとつあたりの面積比率を比較した結果を,図 5.10にチップ面積のうちコアの占め
る割り合いを比較した結果を示す.
0.8
0.6
0.4
0.2
0
MuCCRA-3
図 5.9
CMA-1
PE1 つの面積比率
50
40
30
20
10
0
MuCCRA-3
図 5.10
CMA-1
チップ面積使用率
MuCCRA-3 のビット幅は 16 ビットであるのに対し,CMA-1 のビット幅は 24 ビットで実装した
が,CMA-1 は PE から構成情報メモリとレジスタを排除することで,1PE あたりの面積を 72.9%削
減した.同じビット幅である場合はさらに面積を削減できるといえる.
MuCCRA-3 の PE アレイはチップ面積の 60%を占めている.一方,CMA-1 のマイクロコント
ローラはチップ面積の 5%,PE アレイは 60%を占めている.MuCCRA-3 に比べ,CMA-1 は PE
アレイとマイクロコントローラで合わせて 8.3%面積が増えているが,実装している PE の数は
CMA-1 の方が 4 倍多く実装できた.
第 5 章 CMA-1
5.8.2
51
電力
1.2 V 供給時に 41.4 MHz で alpha ブレンダを実行させたときの消費電力を図 5.11に示す.
Power Consumption[mW]
12
10
8
Dynamic
Reconfig
Standby
Leak
6
4
2
0
MuCCRA-3
図 5.11
CMA-1
1.2V 供給時に 41.4 MHz で alpha ブレンダ実行時の消費電力
消費電力を比較すると MuCCRA-3 は 11 mW で,CMA-1 は 4 mW であり,トータルで 63.6%
消費電力を削減した.CMA-1 では PE からメモリ素子を排除したことで動的に消費される電力を
大幅に削減している.また,動的な再構成を回避したことで再構成で電力を消費していない.ま
た,クロックツリーをマイクロコントローラに集約することで待機電力も大幅に削減出来ている.
デバッグ用の周辺回路で消費される電力を分離して評価することが出来なかったため,CMA-1 で
はリーク電力が増大している.純粋な CMA の回路のみのリーク電力はこの値よりも小さいこと
が期待される.
5.8.3
電力効率
CMA-1 の PE アレイは 0.4∼1.2 V の供給電圧の範囲で動作する.そして,マイクロコントロー
ラは 1.2 V で稼働し,最大動作周波数は 210 MHz まで計測した.実験装置の限界により 210 MHz
までしか動作周波数を計測出来なかったが,実際の最大動作周波数は更に高いことが想定される.
図 5.12は PE アレイの供給電圧を変化せたときの電力効率の変化を示している.横軸が PE アレ
イへの供給電圧,縦軸が電力効率の高さを示している.評価したアプリケーション毎にプロット
している線の種類が異なる.評価に用いたアプリケーションについては,6章で説明する.
CMA-1 は PE アレイの供給電圧を 0.7∼0.9 V で動作させたときが最も電力効率が良く,最大で
2.72 GOPS の性能を 11 mW の消費電力で達成し,247 MOPS/mW (Million Operations/mW) の電力
効率を達成した.CMA-1 は PE アレイで消費する電力よりもマイクロコントローラで消費される
電力が大きい.そのため,PE アレイの利用効率が低いと電力効率が良くならない.目安としては,
PE アレイの使用率が 50%を越えると,100 MOPS/mW の電力効率を達成する.PE アレイの使用
率が高く,マイクロコントローラの負荷が低くなると更に電力効率が高くなる傾向がある.PE ア
レイの供給電圧を下げていくと,伝搬遅延が増大し最大動作周波数が下がるため電力効率が下が
る.特に,データパス内で乗算を多様するアプリケーションになるほどこの傾向が顕著に表れて
いる (図 5.12中:gray).
第 5 章 CMA-1
52
300
MOPS/mW
250
af
sf
sepialpha
gray
edge
ssatdd
Sepia
DCT
Alpha
sad
satd
ssd
200
150
100
50
0
0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9
1
1.1
1.2
Supply Voltage for PE array[V]
図 5.12
様々なアプリケーションの電力性能
CMA-1 と MuCCRA-3 の電力効率を比較する.MuCCRA-3 は 1.2 V で稼働し,最大動作周波数
41.4MHz で動作する.供給電圧を下げると同じアーキテクチャでも電力効率が良くなるため,PE
アレイへの供給電圧を 1.2 V で動作させた時の CMA-1 の電力効率を比較する.MuCCRA-3 の最
大電力効率は 22.86 MOPS/mW であるが,PE アレイへの供給電圧が 1.2 V の時の CMA-1 の最大
電力効率は 213.41 MOPS/mW を達成しており,CMA-1 は電力効率を 9.33 倍改善した.
近年発表された電力効率の良いアクセラレータとも CMA-1 を比較する.Yuyama らの開発した
CGDRP[38] の電力効率は 41.5 GOPS/775 mW (54.8 MOPS/mW) で,Clemidy らの開発した VLIW
型のアクセラレータ [39] の電力効率は 3.2 GOPS/50 mW (64 MOPS/mW) であり,これらと比較し
ても 1.2 V 供給時に 213.41 MOPS/mW を達成している CMA-1 の電力効率の方が 3 倍以上優れて
いる.
Kaul らの発表した SIMD 型アクセラレータ [40] は,CMA-1 の 2 倍近く電力効率が高く,494
GOPS/W の性能を達成している.しかし,この性能は演算器アレイ部分のみの電力効率であり,
チップ全体での性能ではないため,正確には CMA-1 と比較できない.
5.9
本章のまとめ
65 nm CMOS プロセスを用いて 4.2mm × 2.1mm サイズのチップに実装された 8 × 8 サイズの PE ア
レイを持つ CMA-1 は DVFS を適用することで最大で 2.72 GOPS/11 mW(247 MOPS/mW) の電力効
率を達成した.同じプロセスを用いて同じサイズのチップに実装された CGDRP である MuCCRA-3
と比較し,1PE あたりの面積を 72.9%削減し,チップの電力効率を 9.33 倍改善することに成功し
た.これにより,演算回路を比較的大規模な組み合わせ回路で構成する CMA アーキテクチャが
電力効率を高めるうえで有効であることを示した.
第 5 章 CMA-1
53
CMA-1 は,近年報告された電力効率の高いアクセラレータである,Yuyama らの 41.5 GOPS /775
mW (54.8 MOPS/mW) の CGDRP[38] や,Clemidy らの 3.2 GOPS /50 mW (64 MOPS/mW) の VLIW
型アクセラレータ [39] と比較して 3 倍以上の電力効率を発揮しており,世界でも最高レベルの電
力効率を達成した.
CGDRP である MuCCRA-3 に対しても DVS を適用することで消費電力を削減し,電力効率を
高めることが出来ると考えられるが,そのような評価結果は報告されていない.そのため,本章
ではフェアな比較が出来るように CMA の PE アレイに 1.2V を供給した状態での電力効率を比較
した.実際には,動作可能な供給電圧の帯域を下げて消費電力を削減出来る点や,それにともな
う電力効率のピーク,電力効率が高い電圧帯域も比較の対象として考えられる.
なお,本章で示した電力効率は第 6章で説明するアプリケーション実行の最適化を施した結果
を用いている.
第 5 章 CMA-1
54
55
第 6 章 アプリケーションの最適化と評価
本章では,CMA-1 へのアプリケーションの実装手法の最適化について説明する.CMA は CGDRP
と同様に PE アレイによる並列処理で高性能を発揮することを狙っている.しかし,CMA の PE
アレイは組み合わせ回路で構成されるため,CGDRP とは PE アレイに展開されるデータフローの
特性が異なる.そこで,本章では CMA の特性を活かした PE アレイへの演算配置手法を明らかに
する.また,PE アレイでの演算時間とマイクロコントローラの性能のバランスをとって CMA 全
体の電力効率を高める手法を明らかにする.
6.1 CMA-1 のアプリケーション開発環境
この節ではアプリケーションの開発環境の説明をする.CMA でアプリケーションを動作させる
場合,PE アレイの構成情報を生成するための演算配置のプログラミングと,マイクロコントロー
ラの挙動を指定するプログラミングが必要となる.PE アレイへの演算配置のプログラミングには,
Black Diamond コンパイラを用い,マイクロコントローラのプログラムには shapa コンパイラを
用いる.各コンパイラを以下の節で説明する.
6.1.1
shapa
マイクロコントローラ用のコードには,簡単なアセンブリ言語を用いた.PE アレイでの演算結
果の格納のタイミングや,メモリアクセスなどの記述がプログラムのメインである.shapa はこの
プログラムのアセンブラである.
通常の DVFS の適用に於いては,プログラマはメモリアクセスにかかる時間と PE アレイでの
処理時間を意識せずにプログラムできる.
6.1.2
Black Diamond コンパイラ
PE アレイへの演算の配置には"Black Diamond[41]"という動的再構成プロセッサ向けのリター
ゲッタブルコンパイラを用いる.これは C ライクの言語で記述されたコードを読み込み構成情報
を生成する.どの PE に何の演算を配置するかを指定することが出来る.特に指定がない場合は,
ソースコードに記載されている演算を上から順番に PE アレイの行方向を優先に配置していく.配
線資源の不足により演算を配置出来なくなった場合は,演算を配置する PE の間隔を広げて演算
を自動配置する試行錯誤を数回行う.それでも配置しきれなかった場合はコンパイルエラーとな
る.その場合,適当な演算配置を指定し,再度コンパイルする必要がある.コンパイルに成功し
た場合,図 6.1のような GUI が表示される,
GUI の左側に読み込まれたコードが表示され,各行に示される演算が配置された PE と線で繋
がっている.また,各 PE の出力がどこの SE を通して次の PE と繋がっているため,マッピング
第 6 章 アプリケーションの最適化と評価
図 6.1
56
Black Diamond の GUI
結果を視覚的に確認できる.
6.2
開発した評価アプリケーション
表 6.1に示すマルチメディア処理に用いられるアプリケーションプログラムを開発し,CMA-1
の評価に用いた.
今回の評価では,単純な画像フィルタや H264 で用いられるコア関数など,画像処理に用いら
れる関数を実装した.実装したアプリケーションの中でも,特に 8 × 8 離散コサイン変換 (DCT)
やエッジフィルタなどは,画素データの順列を整えてから CMA に入力する必要がある.画像を
構成する画素データの順列を揃えることなく CMA に与えるとマイクロコントローラのプログラ
ムが繁雑になるほか,整列前のデータを蓄えるには CMA-1 のデータメモリの容量が不十分であ
る問題があるためである.
一方で,α ブレンダやセピアフィルタなどの単純なアプリケーションの場合は,画素データを
整列する必要が無く,容易に CMA で処理させることができる.
ここでは,PE アレイに入力されるデータは事前にホスト CPU などにより整列されており,CMA
は入力されたデータを規定の構成情報に従って処理すれば良い状態である前提で評価を行う.こ
れにより,データの整列が必要なアプリケーション群と単純な画像処理アプリケーションを区別
せず,電力効率の観点で CMA 向きのアプリケーションを明らかにすることを狙う.
第 6 章 アプリケーションの最適化と評価
57
表 6.1 開発したアプリケーションプログラム
tag
content
使用 PE 数
DCT 離散コサイン変換 for JPEG coder
60/64
sad
差分絶対和
15/64
ssd
差分二乗和
11/64
satd
差分変換和
31/64
edge
エッジフィルタ
43/64
sf
24-bit セピアフィルタ
60/64
af
24-bit α ブレンダ
48/64
alpha
8-bit α ブレンダ
16/64
sepia
8-bit セピアフィルタ
24/64
gray
24-bit グレイスケール
52/64
6.2.1
DCT(離散コサイン変換)
DCT はフーリエ変換の一種で,離散信号を周波数成分に変換する関数である.変換後,特定の
周波数成分に値が集中しやすいことから,DCT を行ったあとに量子化,符号化を行うことで,大
幅なデータ圧縮が可能である.この性質から,JPEG や MPEG などの画像圧縮,AAC や MP3 等
の音声圧縮に広く利用されている.
画像圧縮処理等でよく用いられる N × N の 2 次元 DCT は,式 6.1 で表される.式 6.1で, f (x,y)
は原信号,F(µ,
ν) は変換後の周波数空間における DCT 係数である.
r
F(µ,
ν) =
N−1
X N−1
X
1
(2x + 1)µπ
(2y + 1)νπ
C(µ)C(ν)
f (x,y) cos
cos
N
2N
2N
x=0 y=0


1


 √2
C(µ) = 


1


1


 √2
C(ν) = 


1
µ=0
µ,0
(6.1)
ν=0
ν,0
画像圧縮処理等では,N = 8 の 2 次元 DCT がよく用いられる.本研究の評価でも,1 つの要素
が 32bit の 8×8 行列を演算対象とした.N = 8 の場合,式 6.1の計算には 4096 回の積和演算を行う
ことになり,非常に計算量が多い.そこで,一般的には 2 次元 DCT を x 方向および y 方向の 1 次
元 DCT に分割して演算を行う.
第 6 章 アプリケーションの最適化と評価
58
N = 8 の 1 次元 DCT は,式 6.2に示す行列演算で表現することができる.
  
 
X0  A A
A
A
A
A
A
A   x0
  
  
B   x1
X1  B C −C −B −B −C C
  
  
X2  A −A −A −A −A −A −A A   x2
  
 
X3 C −B B −C −C B −B C   x3
  = 
 
X4 D E
F
G −G −F −E −D  x4
  
  
X5  E −G −D −F F
D G
E   x5
  
  
X6  F −D G
E −E −G D −F   x6
  
  
X7
G F
E −D D −E F −G x7
π
π
π
π
A = cos ,B = cos ,C = sin ,D = cos ,
4
8
8
16
3π
π
3π
E = cos ,F = sin ,G = sin
16
16
16
(6.2)
2 次元 DCT は,式 6.2の演算を 2 回行うことで実現できるため,積和演算の回数は 1024 回にま
で減少する.さらに,この 1 次元 DCT を高速に演算するためのアルゴリズムがいくつか発表さ
れている.W.H.Chen らが発表した高速 DCT アルゴリズムでは,計 32 回の積和演算で 1 次元
DCT を計算することができる [42].
本研究では,Chen らのアルゴリズムを用いて,一次元データセット 8×8 の 64 データセットを
演算対象とする DCT の実装を行った.
6.2.2
SAD
SAD は the Sum of Absolute Difference の略であり,原画と予測画素の間で差分の絶対和をとる
処理で,連続した動画像の圧縮に用いられる.H264 のコア関数としても利用されている.
Xi j を原画,Yi j を予測画素としたとき,N × N の SAD 変換は式 6.3で表わされる.
S AD =
N X
N
X
|Xi j − Yi j |
(6.3)
i=0 j=0
本研究では,2×2 のデータセットを演算対象とする SAD 変換の実装を行った.
6.2.3
SATD
SATD は the Sum of Absolute Transfered coefficient Difference の略で,原画と予測画素の間で差
分をとった後で差分にアダマール変換をかけて,変換結果の係数の絶対和をとる処理を行う.SAD
変換に比べると重い処理だが,エンコード時に発生しうる DCT 係数をより反映したコストを算出
できる.H264 のコア関数としても利用されている.
Xi j を原画,Yi j を予測画素としたとき,N × N の SATD 変換は式 6.4で表わされる.
S AT D =
N X
N
X
i=0 j=0
|T (Xi j − Yi j )|
(6.4)
第 6 章 アプリケーションの最適化と評価
59
2 × 2 のアダマール変換は式 6.5で,4 × 4 のアダマール変換は式 6.6で表わされる.



 

T 00 T 01  1 1  C00 C01  1 1 

 
 

 = 
T 10 T 11  1 −1 C10 C11  1 −1

T 00

T 10

T 20

T 30
T 01
T 11
T 21
T 31
T 02
T 12
T 22
T 32
 

T 03  1 1
1
1  C00
 
 
T 13  1 1 −1 −1 C10
 = 
 
T 23  1 −1 −1 1  C20
 
 
1 −1 1 −1 C30
T 33
C01
C11
C21
C31
C02
C12
C22
C32


1
1 
C03  1 1

 
C13  1 1 −1 −1

 
C23  1 −1 −1 1 

 
C33 1 −1 1 −1
(6.5)
(6.6)
本研究では,2×2 のデータセットを演算対象とする SATD 変換の実装を行った.
6.2.4
SSD
SAD は the Sum of Squared Difference の略で,原画と予測画素の間で差分の二乗和をとる処理を
行う.フレーム間の類似度の尺度を測るのに用いており,H264 のコア関数として利用されている.
Xi j を原画,Yi j を予測画素としたとき,N × N の SSD 変換は式 6.7で表わされる.
SSD =
N X
N
X
(Xi j − Yi j )2
(6.7)
i=0 j=0
本研究では,2×2 のデータセットを演算対象とする SSD 変換の実装を行った.
6.2.5
Edge Filter
Edge Filter は画像のエッジ検出に用いられる,画像処理フィルタとして知られる.
1 枚の画像をエッジフィルタにかけると物体の境界を示す連続した曲線,面の向きが不連続に
変化した曲線が得られる.
エッジフィルタの実装法はいくつかあるが,今回のエッジフィルタは以下の式 6.8, 6.9に示す
中央差分方を用いて実装し 32 ピクセルのデータセットを演算し,評価に用いた.
1
L x (x,y) = − L(x − 1,y) + L(x,y) −
2
1
Ly (x,y) = − L(x,y − 1) + L(x,y) −
2
6.2.6
1
L(x + 1,y)
2
1
L(x,y + 1)
2
(6.8)
(6.9)
α-Blender
α-Bldender は,透過処理を行う画像処理フィルタとして知られる.2 つの画像 I ,J を,アルファ
ブレンダにかけると重ねあわされた画像が生成される.
画像サイズが m×n であるとき,任意の位置 (m,n) のピクセルにおけるフィルタは次の式で表
せる.
Kmn = αImn + (1 − α)Jmn
(6.10)
第 6 章 アプリケーションの最適化と評価
60
α(0 ≤ α ≤ 1) は透過率を表しており,値が大きいと画像 I が濃く表示される.今回は,ピクセル
のデータ, Imn と Jmn ,を演算対象としたα-Blender を実装し,32 ピクセルのデータセットを演算
し,評価に用いた.
6.2.7
Sepia Filter
Sepia Filter は,グレイスケール変換と同種のカラーエフェクトを加える画像処理フィルタとし
て知られる.
1 枚の画像をセピアフィルタにかけると紫単色の濃淡に変換された画像が出力される.
演算方法は,まず各ピクセルを一度グレイスケール変換する.その後,グレイスケース化した
値に赤緑青の各色に応じたパラメータ P を掛け,最後に右シフトした値を出力とする.
1
Lgray = (Lred pred + lgreen pgreen + Lblue pblue )
3
L sepiar ed = Lgray Pred
(6.11)
(6.12)
L sepiag reen = Lgray Pgreen
(6.13)
L sepiab lue = Lgray Pblue
(6.14)
本研究では,32 ピクセルのデータセットを演算対象とした Sepia Filter を実装し,評価に用いた.
6.3
アプリケーションの最適化
本節では,アプリケーションプログラムの最適化手法とその評価結果を示す.アプリケーション
プログラムの最適化手法として,1 セットの入力データに対するデータパスを PE アレイの縦方向
に優先的に配置することで PE アレイでの遅延時間を削減する手法と,PE アレイに入力するデー
タを 8 ビットから 24 ビットに拡張して入力するとでコントローラの性能ボトルネックを解消する
手法を提案する.
6.3.1
演算配置の最適化
BlackDiamond は基本的にソースコードの上の行から順に PE アレイの下の列の左から右側に向
かって演算を割り当て,トライアルアンドエラーで最初に配置しきれた結果で構成情報を生成す
る.そのためソースコードの記述の段階である程度配置されかたを見越した記述が必要である.
ソースコード中に演算の配置場所を指定することが可能であり,並列処理するデータの遅延の平
均化や最大遅延と最小遅延の調整ができる.PE アレイの使用率が 20%∼30%程度のアプリケー
ションであれば,人の手を加えなくても BlackDiamond による自動配置でマッピング可能である
が,PE アレイの使用率がさらに高くなってくると,配置しきれなくなるため,手動で演算の配置
を設定する必要がでてくる.これは,BlackDiamond は登録されている演算素子や配線素子をリス
トの昇順に割り当てていくトライアルアンドエラー方式で実装されているため,アプリケーショ
ンの搭載の為に適当な PE には演算を割り当てずに次の PE に割り当てるといったヒューリスティッ
クな割り当てが出来ないためである.
CMA-1 の PE アレイのデータ入力は PE アレイの下側から各列に 1 つ入力されるため,並列に
処理する場合縦方向にデータが流れていくと,すべてのデータが同じ程度の経路をもつようにな
第 6 章 アプリケーションの最適化と評価
61
る.また,PE アレイの下側から入力されたデータが,PE で演算されていきながら PE 上方に伝搬
していくため,配線素子の混雑が緩和され,PE アレイに存在する演算素子を効率的に使用しなが
ら配線素子を使用していくため,PE アレイを効率的に使用できる.
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
図 6.2
左:通常の Black Diamond のマッピング 右:並列処理を意識したマッピング
そのとき,図 6.2(右) に示すように,一つのデータフローグラフはなるべく縦方向に配置し,図
6.2(右) のように同じフローグラフを横に並べることで並列で処理できるように配置する.もし横
方向に順番に配置されたとすると,図 6.2(左) のように PE アレイの下 2 列を最初のデータパスが,
その続きから次のデータパス配置されていき,それぞれのデータパスごとに遅延が異なり PE ア
レイの上の方に配置されたデータパスの遅延がボトルネックとなり性能を圧迫する.また,PE ア
レイの下側から入力されたデータを PE 上部の方までそのまま伝搬させる必要があるため,PE ア
レイの配線領域を占領し,PE の演算素子は余っていても,配線領域の不足によりアプリケーショ
ンの搭載が困難となる場合がでてくる.特に,アプリケーションで用いられる定数は PE アレイ
の左右と下側からしか入力されないため,各定数を任意の PE まで伝搬させるのに多くの配線素
子を必要としている.
次に,図 6.2(右) の各データパスの実装の詳細について説明する.
CMA-1 の PE アレイは 1 度に 8 個のデータを入力できるため,例えば 2 入力の演算を 4 並列で
処理できる.演算の多い処理であれば 1 入力の演算も 2 行ぶんの PE アレイを使って実装する.図
6.3(a) に示すようなデータフローグラフで実現されるようなアプリケーションがあった場合,最
大経路が長くならないように PE アレイの演算のマッピングは図 6.3(b-1) のように配置する.これ
は,先に述べたように,PE アレイの下側から入力されたデータが PE で演算されながら PE アレ
イ上方に伝搬していくようにヒューリスティックに配置していく必要がある.これを横に 4 つな
らべることで 4 つのデータの処理を並列に行う.
また,BlackDiamond では PE の余計なスイッチを防ぐために演算に使用しなかった PE に対し
てソフトウェアレベルでのアイソレーションを施すことが出来る.ソフトウェアレベルでのアイ
ソレーションとは,実演算の処理では使われない部分の PE アレイにデータが伝搬されないよう
に構成情報を操作して消費電力の削減を行うということである.これにより,PE アレイで動的に
消費される電力を最小限にとどめている.このソフトウェアレベルのアイソレーションを施すこ
とで,最大で 40%程度の動的電力の削減に成功している.
BlackDiamond コンパイラを用いた PE アレイへの演算のマッピングの最適化による性能と電力
第 6 章 アプリケーションの最適化と評価
62
row7
DATA_ O U T
AND
<<
<<
<<
+
* * *
>>
>>
DATA_ IN
>>
row6
AND
AND
row5
<<
AND
<<
AND
row4
<<
<<
<<
<<
row3
+
+
+
+
row2
* *
*
row1
>>
row0
>>
DATA_ IN
図 6.3
* *
*
>>
>>
DATA_ O U T
>>
DATA_ IN
>>
DATA_ O U T
マッピングによる遅延の調整
の向上について説明する.前述のように,BlackDiamond は演算をソースコードの上の行から順番
に図 5.1の PE アレイの下の行の左側から右側へ配置していき,トライアルアンドエラー方式で最
初に配線しきれた配置の構成情報を生成する.
BlackDiamond の自動配置によって実装されたエッジフィルタ (edge) と,並列処理を意識してヒ
ューリスティックに演算を最適配置したエッジフィルタ (edge-effort) の性能を比較した結果を図 6.4に
示す.図 6.4に赤い線で示される性能が改善後の性能で,青い線で示される性能が BlackDiamond
による自動配置で実装された時の性能である.線グラフの背景に示される黄緑色の棒グラフが PE
アレイへの供給電圧ごとの性能の改善率を示しており,グラフ右側の第二系列に数値が示されて
いる.PE アレイの供給電圧が 0.9V 以上の領域では,どちらの方法で実装された場合でもマイク
ロコントローラの最大動作周波数である 210MHz での動作が可能であり,性能には変化が無い.
しかし,PE アレイへの供給電圧が 0.7∼0.9V の領域では自動配置された edge では 210MHz では
動作できず性能が下がっているが,最適化の施された edge-effort では 210MHz で動作できており,
高い性能を維持できている.PE アレイへの供給電圧が 0.7V 以下の領域ではどちらの実装方法で
も PE アレイでの遅延時が間がボトルネックとなり性能が緩やかに下がっているが,edge-effort で
は edge に比べて常に 1.6 倍から 2 倍の性能を発揮している.エッジフィルタは,入力されたデー
タすべてが一つに集まって結果が出力されるデータパスの長いアプリケーションであるため,演
算配置の最適化によるデータパスの短縮が大きく性能の改善につながった.つまり,この演算配
置の最適化手法は画素処理などの並列処理だけでなく,ひとつの大きな演算に於いても効果的で
あることが判った.
BlackDiamond の自動配置によって実装されたエッジフィルタ (edge) と,並列処理を意識して
ヒューリスティックに演算を最適配置したエッジフィルタ (edge-effort) の電力効率を比較した結果
を図 6.5に示す.この図には並列処理を意識してマッピングした上に,アプリケーションの実現に
63
250
2.5
200
2
150
1.5
100
1
50
0.5
0
Performance Rate
Frequency[MHz]
第 6 章 アプリケーションの最適化と評価
Rate
edge
edge-effort
0
0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9
1
1.1
1.2
Supply Voltage for PE array[V]
図 6.4
演算配置の改善による性能の改善
必要なかった PE に対してアイソレーションを施した結果 (edge-min) も合わせて示されている.
マッピングの改善により,PE アレイでの遅延時間が短縮されたため,PE アレイへの供給電圧
をより低い領域までさげてもマイクロコントローラの動作周波数を高く維持できるようになった.
もともと edge に示される結果でマイクロコントローラが 210MHz で動作できたのは,1.2∼0.9V
までであったが,演算配置を最適化した edge-effort,edge-min では 0.75V まで PE アレイの供給電
圧をさげてもマイクロコントローラは 210MHz で動作させることができた.もともとマイクロコ
ントローラが PE アレイの遅延に合わせた最大周波数で動作している 0.75V 以下の領域で性能を
比較した場合,演算配置の最適化により性能を最大で 1.98 倍に改善することに成功した.消費電
力に関して比較すると,edge の結果と edge-min を比較すると平均で 32.7% の電力削減ができて
いる.これは,演算配置の最適化により余計なデータの伝搬が最小化された結果であるといえる.
図 6.5に示す電力効率で比較すると,edge と edge-effort では最大で 47.8%,edge と edge-min で比
較すると最大で 48.4%の電力効率の改善がみられた.性能の向上と,消費電力の改善の相乗効果
により,同じハードウェアを用いてもソフトウェアレベルでも大きな電力効率の改善に成功した.
以下の評価に用いられるアプリケーションは,すべてに並列処理を意識した配置をしたうえに,
ソフトウェアレベルでのアイソレーションを施して,性能と消費電力の最適化がなされている.
6.3.2
データ幅の拡張
通常の画像処理アプリケーションは,画像素子データのうち RGB の各色 8 ビットのデータ幅で
処理を行っていた.そのため,マイクロコントローラは 1 ピクセルの画像処理の為には各色の素
子分 3 回のデータフェッチをする必要がある.画像処理アプリケーションの場合,8 × 8 サイズの
PE アレイの使用率は低く,PE アレイでの処理の割にマイクロコントーラでのデータ制御にかか
る負荷が大きいということが判った.
そこで,マイクロコントローラの扱うデータ幅を 1 ピクセル分の 24 ビットとし,PE アレイ上
でデータを分割し,演算処理を行い結合するというアプリケーションの実装を行った.これによ
第 6 章 アプリケーションの最適化と評価
64
150
MOPS/mW
130
110
90
edge
edge-effort
70
edge- min
50
0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9
1
1.1 1.2
Supply Voltage for PE array[V]
図 6.5
演算配置の改善による電力性能の改善
り,PE アレイの使用率は高くなり,マイクロコントローラの負荷も軽減でき,同じ量のデータを
処理するのに掛かる時間の短縮と処理効率の向上を図る.
CMA-1 のマイクロコントローラは最大で 210MHz で動作しているが,電力や遅延時間の解析
の結果マイクロコントローラのエネルギー効率の最も高い動作周波数は 180MHz 前後であるとい
うことが判っている.また,CMA-1 では PE アレイへの供給電圧は 0.8 から 0.9V 前後のとき電力
効率が最も高まることも解析結果から判っており,PE アレイへの供給電圧が 0.8 から 0.9V とのき
の遅延時間が,マイクロコントローラがデータマネジメントを 180MHz で行った時に CMA-1 の
電力効率が最大となる.
PE アレイで処理する演算量が増えるため,PE アレイでの遅延時間は長くなり,マイクロコント
ローラの処理するデータ量は単純に 3 分の 1 になる.簡単な画像処理の場合,PE アレイでの遅延
時間が短いため,PE アレイへの供給電圧が 0.6V 前後まではマイクロコントローラは常に 210MHz
で動作させることが出来る.この場合にも,マイクロコントローラの動作周波数を下げて動作さ
せることも出来るが,そうすると電力効率は上昇しても処理に掛かる総時間は長くなり性能の悪
化を招く.マイクロコントローラが常に正しい演算結果を格納できる範囲では最大周波数で動作
させる場合,PE アレイでの遅延時間はもっと長くてもよい.
PE アレイで処理するビット幅を拡張するときの処理のイメージを図 6.6に示す.
図 6.6の左側が通常の画像処理アプリケーションを CMA に実装したときの PE アレイでの処理
イメージである.この場合では処理が小さいために PE アレイの下側の部分しか利用できていな
い.図 6.6の右側がデータ幅を拡張したときの処理のイメージである.このように PE アレイ上で
ピクセルのデータを各色の素子に分割して画像処理を施し,各色素子のデータをピクセルデータ
に結合するまでを PE アレイで処理する.
第 6 章 アプリケーションの最適化と評価
図 6.6
65
PE アレイでの処理の拡張
α ブレンダを 8 ビットから 24 ビットに拡張して実装した場合に,PE アレイの使用率を 25%か
ら 81%にすることに成功し,PE アレイでの遅延時間は約 3 倍になった.これにより PE アレイで
同時に処理していたデータ量を 1.5 倍にし,マイクロコントローラの負荷を 2 分の 1 にすること
に成功した.同じく,セピアフィルタも 8 ビットから 24 ビットに拡張して実装し,PE アレイの
使用率を 37.5%から 93.8%にすることに成功し,PE アレイでの遅延時間は約 2.5 倍となった.PE
アレイで処理可能なデータ量は 1.5 倍に,マイクロコントローラの負荷は 2 分の 1 になった.
250
MOPS/mW
200
150
24bit alpha
24bit sepia
100
8bit alpha
8bit sepia
50
0
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
1
1.1
1.2
Supply Voltage for PE array[V]
図 6.7
ビット幅拡張による電力効率の改善
このときの電力効率の改善を示したグラフを図 6.7に示す.電力効率では,α ブレンダでは最大
で 6.7 倍,セピアフィルタでは最大で 3.2 倍にすることに成功した.α ブレンダはもともと単純な
第 6 章 アプリケーションの最適化と評価
66
演算が多いため,PE アレイの使用率が高まっても PE アレイでの電力消費はあまり増加しなかっ
たため電力効率の飛躍的な向上に成功した.セピアフィルタは乗算が多いため消費電力が増え,α
ブレンダ程の電力効率の改善はできなかったが,それでも電力効率を大きく改善することに成功
した.
6.3.3
電力評価
MOPS
pow er[mW ]
CMA-1 の消費電力の内訳をセピアフィルタと α ブレンダのマルチタスクのアプリケーションを
実行し DVFS を適用したときの結果を図 6.8 に示し説明する.
array dynamic
array leak
ctrl. dynamic
ctrl. leak
MOPS
Supply Voltage for PE array[V]
図 6.8
電力消費の内訳
この図は横軸がアレイの供給電圧で,縦の主軸が棒グラフで電力を示しており,第 2 軸が性能
を示している.性能の単位は MOPS(million operation per second) であり,単位時間あたりの処理
性能である.これはマイクロコントローラの動作周波数に単調に比例する.PE アレイの供給電圧
が 0.9 から 1.2V の間では,演算にかかる時間が短くマイクロコントローラがボトルネックとなっ
ている (図 7.7(a-1)) が,I/O パッドの性能が悪く,これ以上動作周波数を上げられないため,性能
が頭打ちになっている.PE アレイの供給電圧が 0.8 V 以下の状態では,PE アレイで演算にかかる
時間に合わせて動作周波数を下げているため,性能と電力は同じ程度の比率で変化していること
がわかるが,PE アレイを低電圧にするほど,電力の減りよりも性能の悪化の方がはやい.
次に電力の内訳に注目する.PE アレイで消費される電力は,PE アレイの使用率と供給電圧と
動作周波数に応じで敏感に変化し,総量は大きくない.また,面積のわりにリーク電流は十分に
小さいといえる.PE アレイの電圧 1.2V,マイクロコントローラの動作周波数が 210 MHz の条件
で,実装したすべてのアプリケーションで平均をとると PE アレイでの消費電力はおよそ 8 mW で
あった.
図 6.8の棒グラフの赤い部分がマイクロコントローラで動的に消費される電力として示してお
り消費電力の大半を占めているが,これは測定上の問題で,このなかにはテスト回路や構成情報
レジスタ等でコンスタントに消費される電力が含まれており,純粋にマイクロコントローラで動
第 6 章 アプリケーションの最適化と評価
67
的に消費される電力はこのなかの 20%弱であることが判っている.これを考えると,CMA-1 は非
常に少ない電力で高い性能を発揮しているといえる.マイクロコントローラで消費される電力は,
PE アレイの使用率には依存せず,動作周波数と処理するデータの数に依存する.210 MHz で動作
させたときの消費電力はおよそ 9 mW 程度であった.
6.3.4
CMA 向きのアプリケーション
表 6.1に示すアプリケーションを実行したときの電力効率を図 6.9に示す. なお, 図 6.9は図 5.12と
同じである.
300
MOPS/mW
250
af
sf
sepialpha
gray
edge
ssatdd
Sepia
DCT
Alpha
sad
satd
ssd
200
150
100
50
0
0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9
1
1.1
1.2
Supply Voltage for PE array[V]
図 6.9
様々なアプリケーションの電力性能
図 6.9に示すように,CMA-1 では 24 ビットに拡張した α ブレンダとセピアフィルタを実行した
ときに電力効率が最も高い. 次に, グレースケールフィルタやエッジフィルタを実行したときが電
力効率が良い. しかし,SSD,SAT,SATD 関数や DCT では, 高い電力効率を発揮出来なかった.
24 ビット版の α ブレンダとセピアフィルタの電力効率が高いのは前述のとおりであるが, グレー
スケースやエッジフィルタを実行したときの電力効率の高さも同様に,PE アレイの使用率が高いた
めである. SSD,SAT,SATD 関数では処理するデータの数が決っておりコントローラの負荷の調整
が困難で, データパス自体も短いため,CMA の特徴を活かした電力効率の達成が困難である. DCT
では PE アレイの使用率は高いが, マイクロコントローラの負荷が高く他のアプリケーションと比
べて 2 倍近くマイクロコントローラの消費電力が高いため, 高い電力効率の達成が出来なかった.
本章の冒頭で述べたとおり, 今回の評価では CMA に入力されるデータは事前に整列されている
前提で行っている. そのため, 実際にグレースケールフィルタやエッジフィルタを実行する場合には
ホスト CPU にも負荷がかかる. 一方で,α ブレンダとセピアフィルタではデータの順列を気にする
必要がないため, ホスト CPU にデータを整列させる負荷を掛ける必要がない. そのため, オフロー
ドエンジンとして用いる場合は,CMA が得意なアプリケーションは画像フィルタであるといえる.
データの整列が必要な処理自体も CMA は低電力で処理可能である. そのため, コンパクトデジ
タルカメラのイメージセンサに画像圧縮専用 LSI として CMA を搭載する場合など, 用途が明確な
場合はイメージセンサの出力をワイヤロジックを組んで CMA の入力データメモリに接続するこ
第 6 章 アプリケーションの最適化と評価
68
とで, データの順列を揃えることができる. また, 画像圧縮など用途に合わせて PE アレイサイズを
設計することでハードウェアの面積と電力などのオーバヘッドを最適化すると良い.
6.4
本章のまとめ
本章では,PE アレイへの演算配置の最適化手法として PE アレイの縦方向に演算を配置し,PE ア
レイに入力するデータ幅を大きくし PE アレイ内でデータの分割と集約を行うアプリケーション
の実装方法を提案した. これにより, コントローラの負荷を最大で 50%削減し,PE アレイの使用率
を 3.2 倍改善し,CMA-1 の電力効率を最大で 6.5 倍改善することに成功した.
CGDRP の場合, 各 PE 毎にレジスタを持っており毎クロック値を格納しているため, 演算配置に
よる遅延時間の差が性能に大きな影響を与えることが少なかった. 特に, 演算の種類毎に PE 毎の
演算時間が異なり, 論理和や加算などの演算時間の短い PE への値の伝搬時間はマージン (PE 間の
演算時間の差) に収まるため, 乗算など処理時間の PE への演算の配置にさえ注意しておれば良かっ
た. しかし,CMA の場合,PE アレイ全体の遅延時間に合わせてコントローラが動作しているため,PE
アレイへの演算配置による PE アレイ全体の伝搬遅延が性能に大きな影響を与える構成となって
いる. 本章では,CMA アーキテクチャならではの演算配置の課題を解決したといえる.
CMA に様々なアプリケーションを実装した結果,PE アレイの遅延時間に対してコントローラの
動作周波数が遅いことが CMA の性能のボトルネックとなっていることが明らかになった. 今後の
課題として, コントローラが 1 クロックでデータメモリからにフェッチできるデータ数を増やすな
どの改善を行うことで電力効率が改善すると考えられる. また,CMA が消費している電力のうち,
リーク電力が 10∼40%を占めている (PE アレイへの供給電圧により変化する. 供給電圧が高いほ
どリーク電力の比率は小さい) ため, パワーゲーティングや, リーク電力の少ないプロセスを用いる
などしてリーク電力を削減し,CMA の電力効率を向上させることができると考えられる.
69
第 7 章 電力効率の最適化手法と評価
本章では,ウェーブパイプラインの適用による電力効率の最適化とその評価結果を示す.
前節までで,CMA-1 に DVFS を適用したときの電力の内訳や電力効率について説明したが,PE
アレイへの供給電圧を 0.65V 以下まで下げた場合,電力効率が急激に下がることが判った.CMA-1
が PE アレイへの供給電圧を下げた場合でも比較的高い電力効率を達成するために CMA の組合せ
回路による非同期演算という特性を活かしウェーブパイプラインを適用する.
7.1
ウェーブパイプラインの概要
ウェーブパイプラインは,中間変数のラッチやレジスタを用いない組合せ回路上で実現される
パイプラインの実装手法で,ウェーブパイプラインの適用にはプロセスやレイアウト,回路,理
論,タイミング,アーキテクチャなど様々なレベルでのシステムの解析が必要となるため,適用
の難しい挑戦的な高性能化手法である [43].通常,フリップフロップの動作周波数は,演算回路
での最大遅延時間を基準に設定される (図 7.1) が,ウェーブパイプラインでは,最大遅延ではな
く,最大遅延と最小遅延の差を基準に動作周波数を設定する (図 7.2).
通常の動作では,データが演算回路に入力されてから演算結果が出力されるまで,同じデータを
出力し続ける.データが入力されてから正しい演算結果が出力されるまでの時間が最大遅延であ
る.この場合,次のデータの正しい演算結果が出力されるまでに,最大遅延時間待つ必要がある.
一方,ウェーブパイプラインでは,データが演算回路に入力されてから次のデータを入力する
まで,演算回路での最大遅延と最小遅延の差だけしか待たない.これにより,同じ時間に処理で
きるデータの量が増える.
Dmin
Dmax
PE array Delay
output clock
Input clock
Dmax
図 7.1
通常の制御手法
第 7 章 電力効率の最適化手法と評価
70
Dmin
Ddif
Dmax
PE array Delay
output clock
Input clock
Ddif
図 7.2
ウェーブパイプラインの制御手法
PE array Delay
output clock
Input clock
図 7.3
7.2
演算結果を格納出来ない場合
タイミング制御
ウェーブパイプラインの適用により,処理性能は飛躍的に向上する.しかし,演算結果格納の
タイミング制御に厳密な解析が必要となる.例えば,図 7.2では,背景の緑色で示されるタイミン
グでしか最初のデータの演算結果を正しく格納できない.PE アレイでの演算結果が帰ってくるタ
イミングが悪く,正しい結果を格納できない場合 (図 7.3),次に PE アレイにデータを与えるタイ
ミングを 1 クロック後のタイミングにずらすことで,正しい結果を格納できるタイミングを広く
することが可能である (図 7.4).
動作クロックが可変である場合は次のデータを与えるタイミングをクロック単位で制御するよ
りも細かい性能の調整が可能である.図 7.3のような場合でも,動作周波数を下げることで演算結
果を格納できるタイミングとクロックのタイミングを合わせることが出来 (図 7.5),図 7.4の様に
1 クロック遅らせるよりもトータルでかかる処理時間を短く抑えることが出来る.また,図 7.4の
様に 1 クロック遅らせた場合にも,動作周波数を早くすることで処理性能の調整が可能である (図
7.6).
消費電力は動作周波数に比例して大きくなるため,動作周波数が可変である場合は,処理性能
第 7 章 電力効率の最適化手法と評価
PE array Delay
output clock
Input clock
図 7.4
演算結果を格納するために 1 クロック遅らせた場合
PE array Delay
output clock
Input clock
図 7.5
演算結果を格納するために動作周波数を低くした場合
図 7.6
1 クロック遅らせた場合に動作周波数を調整した場合
PE array Delay
output clock
Input clock
71
第 7 章 電力効率の最適化手法と評価
72
Scatter
Scatter
0
1
Scatter
N O P
Scatter
Scatter
Scatter
0 2
1 3
2 4
3 5
Gather
Gather
Gather
Gather
4
...
...
Scatter
Scatter
Scatter
0
1
2
N O P
N O P
Scatter
Scatter
Scatter
...
0 3
1 4
2 5
3
Gather
Gather
Gather
Gather
...
Tgather
図 7.7
ウェーブパイプラインを適用したときのタイミング制御
が最も高く保てる手法でウェーブパイプラインを適用し,かつ可能な限り動作周波数を低く動作
できるようにプログラムを調整する必要がある.
CMA-1 へのウェーブパイプラインの適用には,マイクロコントーラ用のプログラムを書き換え
る必要がある.CMA-1 では PE アレイへの入力を与えるタイミングも PE アレイの出力を格納す
るタイミングのどちらもマイクロコントローラが管理しており,そのプログラミングは困難を究
める.
ウェーブパイプラインを適用する場合,先に述べたとおり正しい演算結果を格納できる期間が
限られてしまう.図 7.7に CMA-1 の場合のタイミングを示す.ウェーブパイプラインを適用する
場合,プログラマはこれをふまえ,マイクロコントローラがデータを PE アレイに与えてから格
納するまでの時間を T gather ,マイクロコントローラが一度に PE アレイに与えるデータを準備して
PE アレイに与えるまでにかかる時間を T ctrl ,PE アレイでの最小遅延を Dmin ,最大遅延を Dmax と
定義すると,図 7.7で示すように T gather を以下の式を満たす範囲になるように設定する必要があ
る.
T ctrl + Dmin < T gather < T max
(7.1)
ここで,Dmin が Dmax に対して短過ぎて
T ctrl + Dmin > T max
(7.2)
となってしまった場合ウェーブパイプラインの適用が不可能になってしまうため,図 6.3(b-2) の
ように Dmax が長くなってしまわないように注意しながら最短経路を長くし Dmin を調整する必要
がある.最長経路や遅延に関する調整の詳細については,次の第 7.3節で説明する.
第 7 章 電力効率の最適化手法と評価
73
以上の点を注意しながら,図 7.7コントローラに示すようなプログラムを記述し,前節で述べた
ような動作周波数を調整を行う.
現状では,ウェーブパイプラインの段数は 2 段と 3 段で実装されている.最小遅延と最大遅延
の問題からこれ以上の段数ではウェーブパイプラインの適用は不可能である.CMA は,ウェーブ
パイプラインを適用する場合も,そうでない場合も PE アレイの構成情報は同一のものを用いる
ことができる.
7.3
遅延の推定
ウェーブパイプラインの適用に先立ち,各 PE での遅延時間の解析を行った.これにより,アプ
リケーションの実装時に PE アレイでの遅延時間の推定が可能となり,マイクロコントローラのプ
ログラミングを容易にする.図 7.8に供給電圧を変化させたときに PE 一つで様々な演算を行った
ときの遅延時間の評価結果を示す.
35
30
mult
add
sub
sft
and
Delay[nsec]
25
20
15
or
not
xor
10
gt
lt
5
eql
Bypass
0
0.5
0.55
0.6
0.65
0.7
Supply Voltage for PE array[V]
図 7.8
PE での各演算ごとの遅延時間
EQL や MULT など,キャリーの伝搬のおこる演算は演算時間が長く,OR や AND など 1 ビッ
トごとに処理できる演算では比較的処理時間が短いことがわかる.図中に示される Bypass は PE
の入力が ALU を介さずに SE だけを通過するときの時間である.最も遅延時間の長い演算と短い
演算とでは遅延時間が 1.46 倍異なる.
アプリケーションの最大遅延と最小遅延は図 6.3(b-1) に示す最長経路と最短経路の結果と,図
7.8に示す PE での各演算の遅延時間の結果を使って推定することが可能である.図 6.3(b-1) の最長
経路は >>, Bypass, Bypass, ∗, Bypass, +, +, Bypass, <<, Bypass, AND であり,図 7.8の結果から PE
アレイへの供給電圧が 0.5V のときの最大遅延は,24+13+13+29+13+21+21+13+24+13+23(nsec)
第 7 章 電力効率の最適化手法と評価
74
Output
Input
図 7.9
Output
Input
データフローグラフの例
Input
図 7.10
Input
マッピングの例
とわかる.最小遅延も同様に求めることが出来る.
図 6.3(a) にしめされるようなデータフローグラフで実現されるアプリケーションの場合,どの
経路を通っても演算の数や演算に掛かる時間は同じであるが,短い経路の演算と長い経路の演算
の両方が最後に結合されうような演算では最小遅延と最大遅延の差が大きくなってしまう.また,
経路の長さは同じであっても演算の比重が異なる場合も最小遅延と最大遅延の差が大きくなる.例
えば図 7.9に示されるようなデータフローグラフで実現されるアプリケーションがあった場合に,
図 7.9の赤い経路で示されるオレンジの演算と,青い経路で示される水色の演算では演算の数は同
じである.しかし,オレンジの演算は時間がかかる演算で,水色の演算は時間のかからない演算
であった場合に,最小遅延と最大遅延に大きな差ができることになる.
最大遅延と最小遅延の差が小さい場合,つまり,図 7.2に示す Ddi f f と Dmax の差が小さい様な
場合,ウェーブパイプラインの適用による演算時間の重複が難しくなり,性能の向上につながら
なくなる場合がある.
この問題を回避し,効果的にウェーブパイプラインを適用する為に,データパス全体での最大
遅延をベストエフォートで小さくしながら,最小遅延はなるべく最大遅延に近くなるように演算
を配置していく必要がある.演算配置を行う時に,図 7.10の様に演算の重たい部分は短い経路で
演算できるように PE アレイに対して直線的に演算を配置し,演算の比重の軽い部分は演算の重
たい部分を迂回するように配置し Bypass を多く含ませることで経路の長さを調整し,最大遅延は
可能な限り小さくしながら,最小遅延が長くなるようにする.
第 7 章 電力効率の最適化手法と評価
7.4
75
ウェーブパイプラインの適用による電力効率の改善
通常のパイプライン処理では, 演算ステージと比べてデータのフェッチやストアに必要な時間が
短い場合は動作周波数を下げる. 一方, ウェーブパイプラインを適用する場合は動作周波数を下げ
る代わりに処理するデータ数を増やす. そのため, コントローラの性能がボトルネックになりやす
い. そのため, ウェーブパイプラインを適用するアプリケーションは PE アレイの使用率が高いア
プリケーションに限定する (af,sf,edge,gray). 図 7.11にウェーブパイプラインを適用したときの電
力効率を比較した結果を示す.
300
250
MOPS/mW
200
af
sf
gray
150
edge
af-pipe
100
sf-pipe
gray-pipe
edge-pipe
50
0
0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9
1
1.1 1.2
Supply Voltage for PE array[V]
図 7.11
ウェーブパイプラインを適用したときの電力効率
図 7.11からわかるようにウェーブパイプラインの適用により,電力効率が改善していることが
分かる. 特にグレースケールフィルタを 0.45V で実行したときの電力効率を 2.1 倍に改善した. こ
とのきは 3 段のウェーブパイプラインを適用している. その他のアプリケーションに関しても PE
アレイへの供給電圧が 0.6V 以下の領域では電力効率を改善できている. この領域ではコントロー
ラの負荷の上昇による消費電力の増加よりも処理性能の向上の効果が大きい. しかし,PE アレイが
0.65V 以上の領域では電力効率が悪化している. これはコントローラの負荷の上昇による消費電力
の増加の影響が大きいことが起因していると考えられる.
第 7 章 電力効率の最適化手法と評価
76
77
第8章
PE アレイ接続網の最適化
本章では CMA の PE アレイ接続網の最適化を行う.CMA-1 に実装可能なアプリケーションが減
少しないことを条件に,様々な接続網の PE アレイを開発し,面積,電力,性能を比較する.
8.1
モチベーション
CMA は比較的大きな PE アレイが特徴であるが,チップサイズの制約がありドラスティックな
大規模化が困難である.また,同一チップ内にチップ間通信用のインターフェースモジュールを
実装することもあり,CMA の面積削減は重要な課題である.そこで,本章では CMA の PE アレ
イ接続網の最適化を行い,CMA の面積の削減をはかる.ただし,面積を削減することで CMA の
柔軟性が失われないように,CMA-1 で実装可能なアプリケーションが減少しないことを条件とし
て最適化を行う.また,一般的には回路規模に比例して電力と性能が変化することが知られてい
る.本章では,構成を変化させた時の電力と性能に与える影響も明らかにする.
8.2
代表的な CGDRP の PE アレイ接続網
CGDRP の PE の接続方式は,ALU の出力を別の PE に直結させる方式,アレイ状に配置された
PE に行と列方向の共有バスの接続関係をスイッチングエレメント (SE) により柔軟に切り替える
アイランドスタイル,直結網とアイランドスタイルの両方をそなえるハイブリッド型の大きく 3
種類がある.
直結方式は PE 間の接続関係が固定的である一方で,構成情報が必要なく,PE 間の伝搬遅延が
短いメリットがあり,多くの商用の CGDRP で採用されている [44, 45, 46, 47].
アイランドスタイルは,回路面積が大きく,接続関係の制御のために構成情報を必要とするが,
柔軟性が高く,任意の PE を接続することができる [16].
これらの方式は接続の自由度と面積オーバヘッドのトレードオフがある [8, 9].ハイブリッド型
は隣接 PE 間の接続を直結方式,遠方の PE 間の接続をアイランドスタイルで接続するといった使
い分けができ,柔軟性と電力のバランスをとりやすい構成である [48].
8.3 CMA 接続網の課題
アプリケーションの実装により CMA の PE アレイに展開されるデータパスは,図 8.1に示すよ
うに大きく直線フロー,集約フロー,バタフライフロー,分散フローの 4 種類に大別できる.
CMA の PE アレイは組み合わせ回路であるため,フィードバックループを回避するために基本
的に PE アレイ上方に直線的に伝搬させる必要がある.上記フローを PE アレイに展開するときに
特に問題となるのが,バタフライフローや分散フローを展開する場合である.図 8.2に示す様に行
第 8 章 PE アレイ接続網の最適化
78
図 8.1
代表的なデータパス
を跨いで値を上方の PE に伝搬させる必要があり,図中の PE0 と PE1 間のように PE0 の演算結果
の伝搬に配線資源を占有してしまう.
PE2
SE
SE
ALU
PE1
SE
SE
ALU
PE0
SE
SE
ALU
図 8.2
演算配置するときの課題
一般的な CGDRP の場合,演算で利用する定数は PE 内部のレジスタに格納しておき適宜利用す
る.しかし,CMA の PE は PE 内部にレジスタを持たないため,CMA では PE アレイ外部のコン
トローラから,PE アレイの下端と左右の SE を介して定数を供給している.そのため,バタフラ
イフローや分散フローで定数を用いる演算を行う場合に,PE アレイ中央付近の PE へ定数を供給
する配線資源不足する問題が顕在化する.
CMA-1 で評価に用いた代表的なアプリケーションと,アプリケーションを実装したときの PE
アレイの使用率 (利用している PE 数) を表 8.1に示す.また,前述した,行を跨ぐ変数の伝搬が
第 8 章 PE アレイ接続網の最適化
79
データパス上に存在するか否かも併せて示している.
表 8.1 評価アプリケーション
アプリケーション
行を跨いた変数の伝搬
24-bit α ブレンダ
24-bit セピアフィルタ
8-bit α ブレンダ
8-bit セピアフィルタ
離散コサイン変換 (DCT)
エッジフィルタ
24-bit グレイスケール
差分絶対和
差分二乗和
差分アダマール変換和
有
有
無
有
有
有
有
無
無
無
CMA はメディア処理を目指して設計されたため,画像フィルタや H264 のコア関数などを評価
アプリケーションとして実装している.本章では,ここに示す全てのアプリケーションが実装で
きることを条件に接続網の最適化を検討する.表 8.1に示す様に行を跨いだ変数の伝搬は多くのア
プリケーションで用いており,配線資源の削減は容易ではない.
8.4
定数専用リンクの提案
CMA の PE アレイへの演算配置は図 6.2や図 6.3に示す様に,一つのデータセットに対する処理
を PE アレイの行方向に配置し,同じ演算を PE アレイの横方向に並列に展開することで,同時に
複数データに対して演算処理を行う.そのため,CMA の PE アレイでは同じ列で同じ定数を利用
することが多い.また,一つのデータセットに対する演算は 1-2 行内に実装されるため,ひとつ
の列で利用する定数は多くても 2 つである場合がほとんどである (セピアフィルタやグレースケー
スフィルタではアプリケーションの実装によって,同じ列で 3 つの定数を利用する場合がある).
そこで,PE アレイの列に対して同じ定数を共有する定数専用リンクを提案する.SE を介した
定数の伝搬と定数専用リンクを用いた定数の伝搬の模式図を図 8.3に示す.定数専用リンクによ
り,定数を PE アレイ中央付近の PE に伝搬させる際に配線資源が不足する問題の解消を目指す.
8.5
様々な接続網の CMA
定数専用リンクをもつ PE アレイ接続網を検討するにあたり,直結網,アイランドスタイル,ハ
イブリッド型の様々な構成の CMA を開発し,効果を比較した.
8.5.1
CMA-DL
CMA-DL は PE 間の接続網が直結方式のみで構成される PE アレイの CMA である.マイクロコ
ントローラなど,PE 間の接続網以外は CMA-1 と同じ設計である.CMA-DL の PE のブロック図
第 8 章 PE アレイ接続網の最適化
80
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
SE
SE
ALU
ALU
ALU SEL
SE
SE
SE
ALU
ALU SEL
SE
SE
ALU
ALU SEL
SE
ALU
ALU SEL
SE
SE
SE
ALU
ALU SEL
SE
SE
ALU
ALU SEL
SE
ALU
ALU SEL
SE
ALU SEL
SE
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
SE
SE
SE
SE
SE
SE
SE
SE
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
ALU SEL
SE
SE
SE
SE
図 8.3
SE
SE
SE
SE
定数の伝搬
を図 8.4に示す.
ALU
ALU
ALU selector
ALU
from west PE
ALU selector
ALU selector
ALU selector
from west west PE
from south west PE
from
from South-south
south PE
west PE
from South-south PE
constant values
ALU
ALU
ALU
ALU selector
ALU selector
ALU selector
ALU
ALU
ALU
ALU selector
ALU selector
ALU selector
図 8.4
CMA-DL の PE の接続網
from
from south east PE
South-south east PE
ALU
第 8 章 PE アレイ接続網の最適化
81
ALU の出力は直結網で伝播する.SE を持たないため,CMA-1 と異なり定数は定数専用リン
クを用いて各 PE に供給される.定数専用リンクは PE アレイの各列に 2 つずつ設けられており,
CMA-DL 全体で 16 個の定数を供給可能で,CMA-1 と同等の定数供給能力である.CMA-DL は
SE を持たないため,演算結果を PE アレイの出力に接続する専用の機構を備えている.CMA-DL
は,DCT と 24 ビットセピアフィルタという一部のアプリケーションが搭載できなかった.本来
であれば,全てのアプリケーションを再現できるまで直結網を増やして評価を取るべきであった
が,これ以上に直結網を増やした場合,物理的な配置は緯線の混雑により 8×8 のアレイを構成で
きなくなる.8×8 のアレイを配置配線できるギリギリまで直結網を構成した状態がこの CMA-DL
の構成である.そのため,この構成だけはアプリケーション実装出来ない点で,他の構成と公平
ではない.
8.5.2
CMA-3SE
PE 間の接続網が SE によるアイランドスタイルのみで構成される CMA-3SE の構成を図 8.5に
示す.
to/from north PE
ALU
SW_A
to/from east PE
to/from west PE
ALU selector
SW_B
SW_C
to/from south PE
図 8.5
Constant values
CMA-3SE の PE のブロック図
CMA-3SE の SE は図 5.3に示す SW_A 一つと,SW_B が二つ (図 8.5中の SW_B,SW_C に対応)
の配線素子から構成される.PE 間の接続網以外は CMA-1 と同じである.CMA-3SE は定数専用
ラインを持たないため,定数は CMA-1 と同様に SE_B を介して PE アレイの下側の 1 行と PE ア
レイの左端と右端の列の中央 4 行からの計 16 個供給可能である.
8.5.3
CMA-EN
CMA-EN は SW を 2 つもつ SE によるアイランドスタイルと2方向の直結網のハイブリッド型で
構成される.CMA-1 では,前述のとおり,行を跨いで値を伝搬させるために配線資源が不足する.
また,隣接する PE2 行間でのデータ移動も多いことが判っている.そこで,東と北方向への直結
網を持つ CMA-EN(EN:East と North 方向への直結網をもつの意) を設計した.CMA-1 と CMA-EN
第 8 章 PE アレイ接続網の最適化
82
は,入出力されるダイレクトリンクの入力の方向が異なるのみで,他の部分は同じ構成である.
CMA-EN の PE アレイのブロック図を図 8.6に示す.ALU_SEL の直結網からの入力は,CMA-1 で
は西と南西方向からであったが,CMA-EN では西と南方向からとなっている.CMA-EN の PE の
構成は CMA-1 と直結網の出力の方向が異なるのみで,他の SE や ALU の構成はまったく同じで
ある.
direct link
SE connection
ALU
to north PE directly
ALU OUT
ALU
ALU SEL
ALU SEL
SE
to west PE directly
to/from north PE
ALU
ALU SEL
SW_A
SW_B
SE
to/from south PE
図 8.6
8.5.4
to/from east PE
to/from west PE
SE
ALU
ALU SEL
SE
from direct link
CMA-EN の PE
図 8.7
CMA-NN の接続網
CMA-NN
CMA-NN は特に北方向 (PE アレイ上方) へのリンクの不足の解消を目指して,北方向に隣接す
る PE と,一つ飛ばしで北方向に存在する PE に接続される直結網と SE によるアイランドスタイ
ルのハイブリッド方式で構成される.CMA-NN と CMA-1 は,入出力されるダイレクトリンクの
入力の方向が異なるのみで,他の部分は CMA-1 のものと同じ構成であり,定数専用リンクは存
在しない.CMA-NN の PE の接続網を図 8.7に示す.CMA-1 との違いは直結網の出力の方向の異
差とそれに伴う ALU_SEL の入力の変化のみで,他の部分は同じである.
8.5.5
CMA-Const
CMA-1,CMA-EN,CMA-NN では,2 つの SW から構成される SE と 2 方向の直結網を設ける
ところに,配線の自由度と面積や構成情報のオーバーヘッドの折衷点を置いてたが,CMA-Const
は図 8.8に示す様に,2 つの SW をもつ SE によるアイランドスタイルによって構成される接続網
に加え,CMA-DL と同様の定数専用リンクを持つ.定数専用リンクは PE アレイの左右から各列
第 8 章 PE アレイ接続網の最適化
83
に向かって供給され,合計で 16 個の定数が PE アレイに供給され,CMA-1 と同等の定数供給能力
である.
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
図 8.8
8.5.6
Const registers
Const registers
PE_ARRAY
CMA-Const の PE アレイ
CMA-Const-H
アイランドスタイルによる接続網は SW 一つだけをもつ SE から構成され,北方向と東方向の 2 方
向に隣接する PE と接続される直結方式とのハイブリッドで構成される接続網をもつ CMA-Const-H
を設計した.図 8.9に CMA-Const-H の PE の構成を示す.
CMA-Const 同様に PE アレイの各列に2つで計 16 個の定数が供給可能であり,CMA-Const-H
は接続網の構成が異なる以外,定数供給能力やコントローラやメモリなどは CMA-1 と同じ構成
をしている.
直結網による接続網の方向と数の構成については,最も利用頻度が高い北方向と東方向に隣接
する PE の 2 方向に設定した.
第 8 章 PE アレイ接続網の最適化
84
ALU
to west PE directly
to/from north PE to north PE directly
SW_A
to/from east PE
to/from west PE
ALU selector
to/from south PE
from direct links
from constant values
図 8.9
8.6
CMA-Const-H の PE の構成
接続網の評価
本節では,前節で紹介した 6 種類の異なった接続網をもつ CMA の論理合成時に面積,4 種類の
アプリケーションを動作させた際の電力,アプリケーションの実現に必要な構成情報量の比較を
行う.
8.6.1
評価環境
今回設計した CMA は,論理設計を Verilog HDL で行い,論理合成には Fujitsu 65 nm プロセ
スを用いて Synopsys Design Compiler(2007,12-SP3) で行った.電力の評価は合成後の遅延付きシ
ミュレーションを Cadence Design Systems の ncverilog(64) で行い,電力解析には Synopsys Prime
Ttime(A-2007,12-SP3) を用いた.
なお,以降の評価は CMA-1 を基準とした改善率を示す.CMA-1 の達成した 247MOPS/mW と
いう電力効率は実チップに DVS を適用して計測された値であるが,この値は合成後のシミュレー
ション値とは厳密には一致していないため,CMA-1 のみ実チップ値を用いると正確な比較を行う
ことができない.そこで,CMA-1 と他の CMA とで同じプロセス,ライブラリ,ツールを用いて
実装し,論理合成後のシミュレーションによって評価,比較している.
8.6.2
面積評価
今回新たに設計した CMA の面積を,CMA-1 の面積で正規化した結果を図 8.10に示す.
マイクロコントローラのうち,メモリアクセスコントーラの部分で占める面積を DAC,定数及
び構成情報コントローラで占める面積を CCC で,PE アレイが占める面積を Array で示しており,
その他の配線で必要な面積を Other に示す.
第 8 章 PE アレイ接続網の最適化
85
1.2
1
Area Ratio
0.8
Array
Array
0.6
CCC
CCC
DAC
DAC
0.4
other
other
0.2
0
CMA-1
CMA-1
DL
DL
3SE
3SE
図 8.10
EN
EN
NNN
N
Const
Const
Const-H
Const-H
CMA の面積比較
DAC の面積は,すべての CMA において同じである.PE アレイの接続網に関わらず,PE アレ
イの入出力の数が同じであり,DAC モジュールに関してはすべての CMA で共通だからである.
一方 CCC は,PE アレイの接続網の実現のされ方で必要となる構成情報量が増減するため,そ
れに伴って面積も増減する (直結方式に関しては,入出力先が固定であるため構成情報による制御
の必要が無い).PE の構成情報は,ALU,ALU_SEL,SE に対してそれぞれ必要となる.今回実
装した CMA の PE は,ALU はすべて同じ構成をしているため,ALU の構成情報は同じであるが,
接続網の変化で ALU_SEL と SE の構成情報量が変化する.それに伴い CCC 内の構成情報を格納
するメモリの量が変化し,面積にも影響を与える.
CMA-DL が最も面積を削減できていることがわかる,CMA-DL の PE 及び PE アレイは CMA-1
と比較しておよそ 72%の面積で実装できている.CCC に関しては 47%の面積で実装できている.
一方,CMA-3SE では全体で面積が 16%増加した.これは 2 方向の直結網よりも SE 内の SW 一
つ分の方が多くの面積を必要とするからである.また,CCC の面積は CMA-1 と比較して 26%近
く増加しており (SW1 つ分の構成情報が増えたため),CMA-1 で問題であったコントローラで消
費される電力問題を悪化させる結果となった.
CMA-EN,CMA-NN では CMA-1 に設けられている直結網の接続方向を変化させただけの設計
であるため CCC や DAC の面積は CMA-1 と同様であるが,CMA-NN ではアレイ面積を CMA-1
から 2%程度削減できている.CMA-EN では CMA-1 とほぼ同等の面積であった.
CMA-Const は,CMA-DL ほどの著しい差異はないが,CMA-1 と比較して全体で 6%程度の面
積の削減が達成できた.これは,2 方向への直結網よりも定数専用リンクの方が少ない面積で実
装出来ることを示している.
CMA-Const-H は,CMA-1 と比べ 22%面積を削減できている.これは定数専用リンクの面積が
SW 一つ分よりも少ないからである.
第 8 章 PE アレイ接続網の最適化
8.6.3
86
遅延評価
図 8.11に開発した CMA の各 PE での最大遅延時間を CMA-1 の最大遅延時間を基準として比較
した結果を示す.
1.002
1.001
Delay Ratio
1
0.999
0.998
0.997
0.996
0.995
CMA-1
CMA-1
DL
DL
3SE
3SE
図 8.11
EN
EN
NNN
N
Const
Const
Const-H
Const-H
CMA の遅延比較
図 8.11からどの CMA でも PE の最大遅延時間はほぼ同じであることが判る.これは PE 内の遅
延時間のうち,ALU による遅延時間がほぼ同じであることと,SE での遅延時間は SW 一つのあ
たりの遅延時間と近いからと考えられる.そのため,SE をもつ設計の CMA の遅延時間はほぼ同
じとなった.CMA-Const-H の遅延時間が他の CMA と比べ若干削減できているのは,斜め方向や
行を跨いだ直結網が存在せず,SE も 1 セットしか存在しないため,配線資源の方向が単純になり,
クリティカルパスが短くなったと考えられる.
CMA-DL においては,SE が存在しないにもかかわらず,SE をもつ構成の CMA と遅延に差が
でていない.これは,離れた位置の PE への直結網が存在するために配線遅延が増大した結果 SE
をもつ CMA と最大遅延時間は同じ程度となったと考えられる.
8.6.4
電力評価
開発した CMA 上でグレイスケールのアプリケーションをマイクロコントローラの動作周波数
を 100MHz で動作させた時の消費電力の内訳を図 8.12に示す.
グレイスケールは PE アレイの占有率も比較的高く,図 8.1 に示した PE アレイに展開される代
表的なデータフローのすべての配線方式が使われているため,電力比較のサンプルとしてここで
取り上げている.
図 8.12の Array,CCC,DAC はそれぞれ PE アレイ,定数及び構成情報コントローラ,データメ
モリアクセスコントローラで消費される電力を示している.Other の部分は,その他の配線などで
消費される面積を示している.
電力はほぼ面積と比例して増減していることが判る.アプリケーションによって消費電力の絶
対値は変化するが,異なる接続網の CMA 間での消費電力の比率はどのアプリケーションでも面
第 8 章 PE アレイ接続網の最適化
87
power consumption[mw]
18
16
14
12
Array
Array
10
CCC
CCC
8
DAC
DAC
6
Other
other
4
2
0
CMA-1
CMA-1
図 8.12
DL
DL
EN
3SE
3SE
NNN
N
Const
Const
Const-H
Const-H
100MHz でグレイスケールを実行したときの消費電力
積に比例した.これはどの CMA も保有している演算素子 (ALU) の数が同じであり,演算配置も
ほぼ同じであるため,動的に消費される電力は同じである.また,リーク電力は回路規模 (面積)
に比例するため,消費電力全体も面積と比例して増減したと考えられる.
8.6.5
構成情報転送量評価
各 CMA にアプリケーションを実装したときの PE アレイの構成情報の転送量を CMA-1 で正規
化して比較した結果を図 8.13に示す.PE アレイで行われる演算数の多さが構成情報に与える影響
が比較できるように,演算数の少ない演算 (8 ビット α ブレンダ,セピアフィルタ),演算の多い演
算 (24 ビット α ブレンダ), 電力評価に用いるグレイスケールの 4 つの構成情報量を比較する.
Configuration Data Amount Ratio
1.8
1.6
1.4
CCM
M AA-1
-1
1.2
DDL
L
33SE
SE
1.0
EEN
N
0.8
NNNN
CConst
o n st
0.6
CConst-h
o n st-H
0.4
0.2
0
alpha
alpha
alpha(24bit)
alpha(
2 4 b it)
図 8.13
sepia
se
pia
CMA の構成情報量比較
gray
g
ray
第 8 章 PE アレイ接続網の最適化
88
演算数の多いアプリケーションでも少ないアプリケーションでも概ね同じ比率で構成情報量が
増減していることが判る.
CMA-3SE はアイランドスタイルのみで構成されるため PE アレイの対称性は CMA-NN,CMAEN よりも高いが,SW1 つ分の構成情報の量が増えたため,全体の構成情報は CMA-1 のものに比
べて平均で 32%程度増加した.グレイスケースフィルタにおいて特に構成情報量の増加率が高い
のは,データの集約のデータパスの実現の際に CMA-1 では東北方向の直結網が使われていたが,
CMA-3SE では SE を用いるために新たに構成情報が必要となったためと考えられる.
一方,CMA-DL では定数専用リンクによ り PE アレイの対称性が高まり構成情報量を削減でき
る他,ALU の構成情報だけが 必要で,SE の構成情報がまったく必要ないため,CMA-1 に比べ平
均して 58%の構成情報量を削減できた.
CMA-1 と比較して,CMA-NN,CMA-EN では 1 割程度構成情報量を削減できている.これは
CMA-1 では東北方向に張られた直結網が,PE アレイの対称性を壊してしまっていたため,RoMultiC
による有効な構成情報量の削減ができていなかったことと,使用頻度の高い方向に直結網が設け
られているため,SE の使用率を低下させたことが考えられる.
CMA-Const,CMA-Const-H は最も効果的に構成情報の量を削減できており,CMA-1 と比較し
て平均で 50%削減し,SE の構成情報を必要としない CMA-DL に匹敵する削減率である.これは,
SE を介して定数を伝搬させる場合,PE アレイの列毎に SE の構成異なっていたが,定数リンクを
用いることで,異なる列で SE の構成が同じになり,RoMultC により効果的に構成情報を削減で
きるようになったからであると考えられる.
定数リンクを用いることで,構成情報の対称性が高まり RoMultiC により効果的に構成情報の
転送量を削減できた.CMA-Const,CMA-Const-H では,平均で 50%構成情報の転送量を削減し
た.CMA のメインターゲットとするストリーミング処理では,構成情報の転送時間は支配的では
ない.しかし,構成情報の転送量の削減は CMA のセットアップ時間を短縮する.
8.7
本章のまとめ
本章では配線資源を最適化する手法として定数専用ラインを提案し,CMA-1 に実装可能であっ
たアプリケーションが減らない,CMA の柔軟性を維持する条件化で CMA の PE アレイ接続網の
最適化を検討した.
定数専用ラインと 1 セットの SE,2 方向 (北方向と東方向) の直結網をもつ CMA-Const-H の構
成は,CMA-1 と比べ,同等の遅延時間であり,面積を 22%,PE アレイの消費電力 23%削減する
ことに成功した.
PE アレイに演算を配置していく際,基本的に隣接する PE への変数の伝搬は優先的に直結網を
利用し,直結網では接続出来ない場合に SE を利用するように配線資源を利用していくと,配線
資源の枯渇に悩まされずにアプリケーションを実装できる.
今後アレイサイズを拡張していく場合,配線資源のバランスがくずれることが考えられる.PE
アレイを横方向に拡張する場合,同じ処理の並列度を増やすようにアプリケーションを実装する
ことになるため,定数専用リンクを持つ構成の場合配線資源の強化は特に必要ない.一方で,PE
アレイのサイズを縦方向に拡張する場合,行を跨いだ変数の伝搬が頻繁に起こるため,配線資源
の強化が必要になってくる.この時は,接続方向の出現率の高い方向の直結網を増強していくと
良い.
定数専用リンクの副次的な効果として,構成情報の転送量も削減した.これは,SE を介して定
第 8 章 PE アレイ接続網の最適化
89
数を伝搬させる場合,PE アレイの列毎に SE の構成が異なっていたが,定数リンクを用いること
で,異なる列で SE の構成が同じになり,RoMultC により効果的に構成情報を削減できるように
なったからである.構成情報の削減により,CMA の初期化のためにホスト CPU から CMA に転
送するデータ量が削減し,システム全体でのアプリケーション実行サイクル数を削減できる.
第 8 章 PE アレイ接続網の最適化
90
91
第 9 章 オフロードエンジン型とコプロセッサ型の
アーキテクチャの比較
本章では,オフロードエンジン型とコプロセッサ型のシステムで CMA の比較を行う.オフロー
ドエンジン型のアーキテクチャとして,3 次元無線積層によりホスト CPU とアクセラレータが接
続される Cube アーキテクチャを用いる.コプロセッサ型のアーキテクチャとして,CMA-Geyser
を開発し Cube と回路面積,性能,電力を比較する.
9.1
モチベーション
第 2章で述べたように,アクセラレータのアーキテクチャはオフロードエンジン型とコプロセッ
サ型に大別できる.オフロードエンジン型のアクセラレータは,コア間のデータ転送オーバヘッ
ドがあるが,ホスト CPU に改良を加える必要性が無く開発が容易であり,用途に応じて異なる
アーキテクチャのアクセラレータコアと組み合せやすいなどの拡張性が高い利点がある.一方で,
コプロセッサ型のアクセラレータは面積の制約により拡張性は乏しいが,コア間のデータ転送の
必要が無く高性能を発揮しやすい利点がある.近年はオフロードエンジン型のアクセラレータが
主流であるが,我々が知る限りでは,両者の構成で性能や電力を比較したレポートは存在しない.
これは,アーキテクチャの特徴が異なるため,公平な比較が困難であることに起因する.
幸いにも,CMA はコントローラと PE アレイが独立しているため,両者の方式での公平な比較
が行いやすいアーキテクチャである.そこで,両者の構成の CMA で面積と電力,性能を比較し,
より電力効率の良いアーキテクチャを明らかにすることを目指す.
本章では,Geyser のコプロセッサとして CMA の PE アレイを備える CMA-Geyser を開発し,オ
フロードエンジン型の Cube システムと電力と性能を比較する.Cube システムは,低電力な CPU
である Geyser[49] と,高電力効率なオフロードエンジン型アクセラレータである CMA[50, 51] が
3 次元無線通信により接続されるシステム [52, 53, 54] である.
9.2 CMA-Geyser
9.2.1
コプロセッサ型のアクセラレータ
第 2.3節でも示した S5/S6 エンジン [17] は典型的はコプロセッサ型のアクセラレータである.ホ
スト CPU の演算器とは別に再構成可能な PE アレイモジュールを保持しており,ホスト CPU と
PE アレイモジュールがレジスタ共有方式によりデータ共有している.プログラマは PE アレイモ
ジュールの利用の可否を制御できる.しかし,この密結合の方式では,PE アレイモジュールと
CPU モジュール間で広帯域を発揮することが困難である.CHIMAERA[55] も同様にレジスタ共
有方式で PE アレイモジュールとホスト CPU モジュールが接続されている.PE アレイモジュール
の演算結果の書き込み用シャドウレジスタを持たせることによりモジュール間のデータ転送性能
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
92
を高めている.
Garp[56] はキャッシュ共有方式であり,ホスト CPU モジュールと PE アレイモジュールが比較
的疎結合である.CPU モジュールが PE アレイに対して命令を発行することで PE アレイでの演算
が開始される.PE アレイモジュールに演算開始命令を発行した後は CPU モジュールは別の処理
を実行できるため,処理効率が高い.
ADRES[3],SRP[57] はホスト CPU の VLIW プロセッサとして PE アレイを利用可能であり,密
結合なコプロセッサ型アーキテクチャである.PE アレイモジュールと CPU モジュールのデータ
共有オーバヘッドは小さいが,ホスト CPU が I/O などの OS 処理よりも,コンピューティングに
特化されている.
9.2.2
CMA-Geyser の設計方針
CMA-Geyser はオフロードエンジン型のシステムと比較することを目的とするため,Geyser コ
アを単体で用いる場合と Geyser コアと CMA コアの両方を用いる場合を再現できるように設計す
る.図 9.1に CMA-Geyser アーキテクチャの概要を示す.
CMA-Geyser
Instruction
Cache
Geyser Main CPU
Data Cache
CMA Controller
CMA PE Array
Shift
Unit
Mult
Unit
DIV
Unit
...
...
ALU
Unit
Const. Reg.
図 9.1
Conf. Reg.
CMA-Geyser アーキテクチャの概要
まず,Geyser コアがもともと所有している演算器を残し,CMA の PE アレイの演算器とは並列
で利用可能にする.CPU モジュールと PE アレイモジュール間のデータ共有方式として,レジス
タ共有方式とキャッシュ共有方式があるが,ホスト CPU が演算開始命令を出すことによるアクセ
ラレータコアの制御を再現できるように,CMA の PE アレイモジュールと Geyser コアモジュー
ルはキャッシュ共有方式によりデータを共有させる.また,CMA の PE アレイを Geyser コアから
制御可能にするために,CMA のコントローラモジュールを Geyser コアに組み込み,Geyser コア
が PE アレイへのデータ入出力管理と構成管理を行う.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
9.2.3
93
CMA-Geyser の制御
図 9.2に CMA-Geyser の 5 段パイプラインによる処理フローの概要図を示す.PE アレイモジュー
ルの CMA-CTRL により Geyser の CPU モジュールの EX ステージと並列で PE アレイを利用可
能である.前述のとおり,CPU モジュールと PE アレイモジュールでアドレススペースセグメン
トを共有しており,両者が直接データキャッシュに接続されている.アクセスが競合した場合は
CMA-CTRL よりも Geyser のアクセスが優先される.また,キャッシュミスが発生した場合,Geyser
も CMA-CTRL もストールする.
Geyser
Instruction
D ecode
Instruction
Fetch
Execution
register
file
Memory
W rite
Back
CMA Controller
PE Array
Instruction
Cache
D ata Cache
Main Memory
図 9.2
CMA-Geyser のパイプライン処理
CMA-Geyser において CMA コントローラには以下の命令が与えられる.
• MT : Move To 命令
• MF : Move From 命令
• CMA_SET : CMA の初期化命令
• CMA_RUN : CMA での演算開始命令
MT 命令と MF 命令は Geyser にあらかじめ用意されているコプロセッサを利用するための命令
セットであり,MT 命令はコプロセッサへデータを転送する命令,MF 命令はコプロセッサから
データを取ってくる命令である.
また,CMA_SET 命令と CMA_RUN 命令は新たに実装した CMA を制御するための命令であ
る.CMA_SET 命令は,CMA の初期化を行う命令であり,データキャッシュから必要なデータの
読み出しを行う.CMA_RUN 命令は,CMA での演算を行う命令であり,データキャッシュから必
要なデータを読み出してそれを CMA に転送し,また,CMA での演算結果を集め,データキャッ
シュに書き戻すことを行う.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
9.2.4
94
CMA-Geyser の PE アレイモジュール
図 9.3に示す様に CMA-Geyser の PE アレイは 8 × 8 サイズのアレイ構造を持つ.PE アレイと
PE は比較対象である Cube-1 と同様に,CMA-Const の構成である.
PE_A RRA Y
COL_0
COL_1
COL_2
COL_3
COL_4
COL_5
COL_6
COL_7
CON ST Links
Passing Links
0
0
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
PE_7
0
0
0
0
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
PE_6
0
0
0
0
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
PE_5
0
0
0
0
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
PE_4
0
0
0
0
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
PE_3
0
0
0
0
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
PE_2
0
0
0
0
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
PE_1
0
0
0
0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
PE_0
0
0
Constant Value
Register
Configuratio
Register
図 9.3
9.3
CM A Controller
CMA-Geyser の PE アレイ
比較対象:Cube-1
Cube-1[52] はホスト CPU である Geyser チップ [49] とアクセラレータである CMA チップが接続
されるヘテロジニアスマルチコアシステムの試作機である.Cube-1 は 3-D SiP(System in Package)
構成により複数チップを接続する構成を利用している.通常の SiP とは異なり,インダクティブ
カップリングワイヤレス接続を用いており柔軟性が高い.要求性能に合わせて,3 次元積層する
CMA チップの枚数を変更できる.図 9.4に Cube アーキテクチャの概要図を示す.
現在,2 種類の Cube システムを開発している.2 枚のチップ (1 Geyser + 1 CMA) を積層した
Cube システムと,4 枚のチップ (1 Geyser + 3 CMA) を積層した Cube システムがあり,2 枚積層
の Cube-1 が利用可能である.4 枚積層の Cube-1 は現在デバッグ中である.
Cube システムを構成する Geyser と CMA チップは e-shuttle 65 nm プロセスを用いて開発され
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
95
To ExternalCPU Chip
router0
router2
router4
router6
CPU Chip
A ccelerator Chip
A ccelerator Chip
A ccelerator Chip
router1
router3
router5
router7
Cube-1
図 9.4
Cube-1 アーキテクチャの概要図
表 9.1 チップ実装環境
Logic Synthesis tool Synopsys Design Compiler 2010.03
Layout tool
Synopsys IC Compiler 6.12
Chip size
Process rule
2.5 mm × 5.0 mm
Fujitsu e-shuttle 65 nm
た.表 9.1にチップの実装環境を示す.
3 次元積層されるシステムは発熱が主な問題点となるが,Geyser コアも CMA コアも消費電力
が 20mW 以下と低いため,Cube-1 では問題となっていない.
9.3.1
Cube-1 アーキテクチャ概要
図 9.5 は三次元積層時にどのようにボンディングを行うかを示したものである.
現在の実装技術では,電源,リセットの供給及び I/O のために,積層チップ全てに対してボン
ディングを施さなければならない.誘導結合によるチップ間接続では,チップ間の距離を数十 µm
程の非常に短い間隔で積層する必要がある.このため,チップを完全に重ねて積層すると,ボン
ディングが行えないため,図 9.5のようにチップをずらして積層する必要があり,チップの四辺の
うちずらしている一辺のみにボンディングを施す.また最上部のチップは,側面の浮いていない
部分も追加でボンディングが可能となるが,通常のチップ実装よりは利用できる I/O は減少する.
チップがずれていても通信路が正常に機能するよう,受信用のインダクタと送信用のインダクタ
が重なるように積層するため,チップのずれ幅はインダクタ 1 つ分のサイズに依存する.Cube-1
ではこのチップのずれを考慮し,積層の崩れを防ぐために最大積層数を 4 としている.
また,Cube-1 ではアクセラレータは受動ノードで,データ転送の制御は CPU のみが行うため,
アクセラレータチップには電源,リセットと最低限のデバッグ用の I/O のみが用意されている.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
96
Top Chip
Board
Disable
Bonding
図 9.5
三次元積層におけるボンディング接続
データ転送の制御を行う最上位の CPU チップには,外部 I/O が通常のチップ実装通り必要となる
が,利用できる I/O 数の制限からデータ,アドレスなどいくつかの信号を分割して送受信を行って
いる.
Cube-1 では,各チップは通信用の受信,送信用インダクタが 2 セット実装されている.インダ
クタに付随して,ネットワークを構築するためのルータも 2 セット持っている.このルータにより
誘導結合による無線接続を通信路として用いて片方向のリングネットワークを構築する.各チッ
プにルータが 2 つ存在することから,プロセッサノードも 1 チップに 2 つ持つことが可能である
が,今回は実装面積の都合上から 1 チップに 1 プロセッサのみが実装されており,片方のルータ
はノードを持たない形となっている.プロセッサには,CPU,アクセラレータ共に低消費電力プ
ロセッサを採用している.
9.3.2
Geyser-Cube
Cube-1 用に開発されたインダクタを備える Geyser-Cube の全体構成を図 9.6に示す.
Geyser-Cube は,主に CPU のコア部分,積層チップ外部及びチップ間ネットワークへのインタ
フェース,リークモニタなどのサブモジュール,それらを接続するオンチップバスから構成される.
Geyser は MIPS R3000 と互換性のある,標準的な以下の 5 段インオーダーパイプラインを用い
た 32bit マイクロプロセッサである.
• IF (Instruction Fetch) ステージ
• ID (Instruction Decode) ステージ
• EX (Execution) ステージ
• MEM (Memory Access) ステージ
• WB (Write Back) ステージ
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
Instruction
Cache
CPU
Core
Leak
Monitor
Perform ance
Counter
A dress
D ecoder
TLB
N etw ork
I/F
D ata
Cache
35
97
32
32/16
Converter
16
External
I/O
packet
Router
N etw ork
図 9.6
Geyser-Cube 全体像
IF ステージはプログラムカウンタをセットし,命令メモリから命令を読み出すステージである.
読み出してきた命令は ID ステージでデコードされ,EX ステージで演算処理を行う.MEM ステー
ジでは,データメモリへのアクセスを行い,WB ステージではレジスタへの書き込みを行う.
Geyser には,L1 命令キャッシュおよび L1 データキャッシュが搭載され,それぞれ 32 エントリ
の共有 TLB による 4KB の 2way セットアソチアティブ方式のキャッシュである.
Geyser は細粒度のパワーゲーティング技術を用いている点が特徴であるが,この点は本研究の
スコープ外である.
図 9.7に Geyser-Cube のレイアウト図を示す.
Geyser Core
図 9.7
Inductor
Geyser-Cube レイアウト図
Cube-1 では積層チップ外,チップ間ネットワーク共に同一のアドレス空間上にマッピングを行っ
ており,CPU である Geyser-Cube によって両方の転送制御を行う.このため,Geyser-Cube では,
専用のアドレスデコーダをオンチップバスに設けており,これにより積層チップ内外及びサブモ
ジュールへのアクセス制御を行っている.
Geyser-Cube が積層チップ外にアクセスする場合は,積層時の I/O 利用量制限から,アドレス,
データを 16bit ずつ切り分けて転送を行う.このためのコンバータが外部 I/O との間に設けられて
いる.チップ間ネットワークの転送はルータを介してパケットによって行われる.このため,チッ
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
98
プ間ネットワークへデータを転送する際はデータ及びアドレスをパケットに変換する必要があり,
パケット生成用の専用インタフェースを設けている.
9.3.3
CMA-Cube
CMA-Cube はチップ内にインダクタを持つ以外は基本的に CMA-1 と同じ構成をしている.CMA1 と CMA-Cube の違いは PE アレイの接続網である.CMA-Cube ではインダクタを配置するために
面積制約が厳しいため,第 8章で述べる最適化された接続網の PE アレイを用いている.CMA-Cube
の全体構成を図 9.8に示す.
Inductor
CMA Core
図 9.8
9.3.4
CMA-Cube レイアウト図
誘導結合によるネットワーク形成
図 9.9は 4 枚のチップを積層した場合の誘導結合によるチップ間通信を利用した,積層及びネッ
トワーク形成の概要である.無線による積層の利点を活かした積層内容の自由な変更を実現する
ためには,対称性のあるネットワークを構築する必要がある.Cube-1 に先だって開発されたネッ
トワーク試作チップである Cube-0 では対称性のあるネットワークとして片方向のリングネット
ワーク方式とバス型の方式を実装し検証を行ったが,ネットワークの利用率,誘導結合における遠
方と通信する際の問題点から Cube-1 では片方向のリングネットワークを採用している.図 9.9に
おける TX, RX はそれぞれ送信用インダクタ,受信用インダクタを表している.Cube-1 では,1
つのチップにこの TX, RX を 2 組ずつ持たせ,それぞれのインダクタの組に対して,ネットワー
クを制御するルータを持たせている.積層する際にはチップをずらす必要があり,これを利用し
て積層する片方のチップの TX がもう片方のチップの RX と重なるように積層することでネット
ワークを構築する.
9.3.5
ルータによる通信制御
Cube-1 は,誘導結合によるチップ間接続によるネットワークをルータによって制御する.ルー
タは前述の通り,1 チップに対して 2 つ設けられている.ルータは積層された異なるチップ間及
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
RX TX
Chip 3
RX TX
RX TX
図 9.9
TX RX
Chip 2
RX TX
99
TX RX
Chip 1
Chip 0
TX RX
TX RX
誘導結合によるチップ間通信を利用した三次元ネットワーク
び,同一チップのルータ間での転送制御を行う.ルータに設定されているルータ ID 及び自身の積
層位置を示すレジスタがそれぞれ用意されており,これに従ってルーティングが行われる.この
ID 及び積層位置の情報はコンフィギャラブルとなっており,このルータの設定を変更することで,
積層数が変更されても常にリングネットワークが形成されるようになっている.
9.3.6
垂直バブルフロー制御
Cube-1 で採用しているリング状のネットワーク構造では,循環依存によるパケット通信のデッ
ドロックが発生する可能性がある.そこで,Cube-1 ではこのデッドロックを回避する機構として
垂直バブルフロー制御を採用している.
垂直バブルフロー制御 [58, 59] は,図 9.9に示すようなリングネットワークにおいて,ルータの
バッファのすべてのエントリを使いきらないように常に 1 パケット分の空き(バブル)を残して
おくようにフロー制御することで,デッドロックを回避する手法である.垂直バブルフロー制御
の模式図を図 9.10に示す.
垂直バブルフロー制御における具体的なパケット転送のルールは以下に示す 3 つである.
• 転送ルール 1: リング内のパケット転送の場合,転送先ルータに 1 パケット分の空きバッ
ファがあれば前進できる.
• 転送ルール 2: リング外のルータおよびコアからリング内へのパケット注入は,転送先ルー
タの入力ポートに 2 パケット分の空きバッファがある場合にのみ転送を許可する.
• 転送ルール 3: リング内からリング外のルータおよびコアへのパケット出力の場合,転送
先ルータの入力ポートに 1 パケット分の空きバッファがある場合のみ転送を許可する.出力
できない場合はリング内を直進する,つまり,リングをもう一周回る(ミスルーティングす
る)ことになる.
バブルフロー制御は仮想チャネル方式などと比較して,ネットワーク利用効率が良い.しかし,
各入力バッファはパケットを最低 2 個格納できるだけの容量が必要である.パケットのスイッチ
ング方法はワームホール方式ではなく,バーチャルカットスルー(virtual cut-through,VCT)方
式であるため,パケットサイズが大きくなると必要なバッファサイズが増大しやすい.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
Router
100
Core
OK
Chip 2
Logic
D isable
OK
OK
Logic
Chip 1
OK
OK
D isable
Chip 0
Logic
OK
1-packet buffer space
O ccupied
Em pty
図 9.10
9.3.7
垂直バブルフロー制御
データ転送制御
チップ間の通信方式は,シングル転送とバースト転送,DMA 転送が用意されている.シングル
転送は 1 ワードのデータ転送を行い,Geyser コアから CMA コアに対して演算開始命令を転送す
るときなどに用いる.バースト転送は 16 ワード単位のデータを転送することができ,Geyser コア
と CMA コア間の演算データ転送に用いる.DMA 転送は CMA コア間でのデータ転送に用いる.
Geyser コアが DMA 転送の制御データを CMA コアに送ることで DMA 転送が実行される.チッ
プ間の無線通信は 8Gbps と高帯域を発揮するが,Geyser コアと CMA コア間の通信時間は Cube
システムの処理時間の 20%を占めている [52].
9.4
評価
Cube-1 は実チップが存在するが,CMA-Geyser は実チップが無いため,配置配線後のシミュレー
ションにより比較する.論理合成には 65 nm プロセスで,Synopsys 社の Design Compiler2009.06SP5 を用いた.配置配線には Synopsys 社の IC Compiler2008.09-SP4 を用いた.遅延付きゲートレ
ベルシミュレーションは Cadence 社の NC-Verilog3.2 を用いた.消費電力の評価には Synopsys 社
の PrimeTime2007.12-SP3 を用いた.動作周波数は 100MHz に設定した.Geyser にはパワーゲー
ティングを適用出来るが,本論文のスコープ外であるため,今回は適用せずに評価した.
9.4.1
アプリケーションの実行
性能と電力の比較には,グレースケール処理と JPEG デコード処理を用いた.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
101
グレースケール処理では 2 チップ (1 Geyer × 1 CMA) の Cube システムで実行させた場合と
CMA-Geyser で実行させた場合を比較した.
JPEG デコードでは,まず JPEG 画像のヘッダ解析を行い,ハフマンテーブルと量子化テーブル
を定義する.これらのテーブルはハフマンデコードおよび逆量子化の際に必要になる.ヘッダの
解析が終わると画像のデコード処理を行う.
ヘッダの解析の次に画像のデコード処理を行う.デコード処理では,画像データを MCU(Minimum
Coded Unit) という単位に分割し,各 MCU に対してハフマンデコード,逆量子化,逆 DCT,YUV
形式から RGB 形式へのフォーマット変換を行う.図 9.11に JPEG デコードのタスクフローを示す.
Input Jpeg Image
H eader
Analysis
Phase
D efine H uffman Table
D efine Q uantization Table
D ecode
Phase
G eyser
H uffman D ecode
Inverse Q uantization
Inverse D CT
CMA
Convert YU V to RG B
Outpuut PPM Image
図 9.11
JPEG デコードのタスクフロー
今回の評価ではヘッダの解析とハフマンデコード処理を Geyser で実行し,逆量子化処理と逆
DCT 処理,フォーマット変換処理を CMA の PE アレイで実行させる.
JPEG デコード処理では,Geyser 単体で処理させた場合と,4 チップ (1 Geyser× 3 CMA) の Cube-1
を用いた場合と CMA-Geyser を用いた場合を比較する.Cube-1 で JPEG デコードを処理するとき
は,各 CMA チップにそれぞれ逆量子化処理と逆 DCT 処理とフォーマット変換処理用の構成情報
を送り,各処理をパイプライン化する.
9.4.2
面積
図 9.12に CMA-Geyser と 2 チップ (1 Geyser × 1 CMA) の Cube-1 の面積を比較した結果を示す.
縦軸には面積の目安としてゲート数を示している.ルータなどの面積を除外して,Geyser と CMA
コアの回路面積を比較すると,CMA-Geyser は 24.8%の面積を削減した.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
102
500000
Area [μm2]
400000
300000
Geyser
200000
CMA
100000
0
CMA-Geyser
図 9.12
Cube
CMA-Geyser と CMA-Cube の面積比較
CMA-Geyser では CMA のマイクロコントローラが Geyser コアに取り込まれているため,Cube-1
の CMA コアと比較して面積を 27.6%削減した.Geyser コアにおいてもインダクタとのインター
コネクトに必要な回路が削減されているため面積を 19%削減できた.
9.4.3
性能
図 9.13にグレースケール処理の実行サイクル数を比較するグラフを示す.
50000
Cycle
40000
Others
30000
Execu on
20000
Data Transfer
CMA Ini aliza on
10000
0
CMA-Geyser
図 9.13
Cube
Geyser
グレースケールの実行サイクル比較
1024 ピクセルの画像を処理させた場合,CMA-Geyser は Geyser 単体に処理させた場合の 3.6 倍,
Cube-1 と比べて 2.27 倍の処理性能を達成した.CMA コアの初期化に必要なサイクル数を除外し
て比較すると,CMA-Geyser は Cube-1 と比較して 1.8 倍の処理性能である.
CMA-Cube のデータメモリはデュアルポートの 2 バンク構成のため,一方のバンクのデータを
CMA コアで演算している間に,他方のバンクのデータは外部のチップとデータ転送させること
ができる.これにより,Cube-1 ではデータ転送時間と CMA での演算時間をオーバーラップさせ
ている.そのため,純粋に演算のみに必要なサイクル数は Cube-1 は CMA-Geyser の 24%と短い.
しかし,CMA の構成情報の転送や,最初に処理させる画像データの転送と,最後に処理したデー
タの転送時間を隠蔽出来ないことから,チップ間のデータ転送がボトルネックとなっている.特
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
103
に,CMA の初期化は Cube-1 では CMA-Geyser の 15 倍のサイクル数を必要としている.
図 9.13にグレースケール処理するデータ量を増やしたときの実行サイクル数の推移を示す.デー
タ量の増加に線形に比例して実行サイクル数が増えていることが分かる.小サイズのサンプルデー
タでのテストでも十分に傾向を判断できるため,以下の JPEG デコードのサイクル数の比較では,
小サイズのデータを処理したときの実行サイクル数のみで比較する.
800000
700000
600000
Cycle
500000
CMA-Geyser
400000
Cube
300000
Geyser
200000
100000
0
0
2000 4000 6000 8000 10000 12000 14000 16000 18000
図 9.14
グレースケール実行サイクル数のスケーラビリティ
次に,図 9.15に JPEG デコードの実行サイクル数を比較するグラフを示す.
800000
700000
Cycle
600000
500000
Other
400000
Processing
300000
Data Transfer
200000
CMA ini!aliza!on
100000
0
CMA-Geyser
図 9.15
Cube(3-CMA)
Geyser
JPEG デコードの実行サイクル比較
400×400 ピクセルの画像データを処理させたとき,CMA-Geyser は Geyser 単体と比べて 4.1 倍,
Cube-1 と比べて 2.7 倍の処理性能を達成した.Cube-1 では 3 枚の CMA でパイプライン的に逆量
子化と逆 DCT,フォーマット変換を実行している.しかし,CMA チップ間のデータ転送待ちに
より処理がストールしているため 1 枚の CMA チップで処理が完了するグレースケール処理より
も演算に必要なサイクル数が増大した.
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
9.4.4
104
電力
Power Consumpon
[mW]
図 9.16にグレースケール処理を実行したときの消費電力を示す.
60
50
40
30
20
10
0
Router
CMA
Geyser
CMA-Geyser
図 9.16
Cube(1-CMA)
グレースケール処理の消費電力
Power Consumpon
[mW]
CMA-Geyser の消費電力は 30.5mW で,Cube-1 はルータで消費される電力を含めると 53mw,
ルータで消費される電力を除外すると 27.2mW であった.Cube-1 ではルータで消費される電力が
48.7%を占めており,CMA-Geyser ではその電力を大幅に削減できている.CMA-Geysr の Geyser
コアでの消費電力は 19mW で,Cube-1 の Geyser コアの消費電力は 13mW である.CMA-Geysr の
Geyser コアは CMA のマイクロコントローラを取り込んでいるため消費電力が増加している.CMAGeyser の CMA コアの消費電力は 11.5mW であり,Cube-1 の CMA コアの消費電力は 14.2mW で
ある.Geyser コアの電力変化と同様の理由により CMA の電力の増減が入れ替わっている.
PE アレイモジュールと Geyser コアを接続する配線が増加したため,CMA-Geyser の消費電力
は Cube-1 の Geyser と CMA 部分の総和よりも 3.3mW(12.2%) 増加したと考えられる.しかし,
Cube-1 のルータで消費される電力と比較すると十分に小さい.ルータで消費される電力を含めて
比較すると CMA-Geyser は Cube-1 と比べて 42.4% 消費電力を削減した.
図 9.17に JPEG デコード処理を実行したときの消費電力を示す.
120
100
80
60
40
20
0
Router
CMA
Geyser
CMA-Geyser
図 9.17
Cube(3-CMA)
JPEG デコード処理の消費電力
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
105
CMA-Geyser の消費電力は 31mW で,Cube-1 はルータで消費される電力を含めると 102.2mW,
ルータで消費される電力を除外すると 50.6mW であった.
JPEG デコードは Cube-1 では CMA チップを 3 枚用いているため,消費電力が増加している他
は,グレースケールの消費電力と同じ傾向である.
9.5
本章のまとめ
ホスト CPU である Geyser がアクセラレータである CMA の PE アレイをコプロセッサとして備
える CMA-Geyser を開発し,Geyser と CMA を 3 次元積層し,チップ間でワイヤレス通信を行う
オフロードエンジン型のシステムである Cube-1 と,65 nm CMOS プロセスを用いた配置配線後
シミュレーションにより比較した,
CMA-Geyser は,ルータなどの面積を除外した Geyser と CMA コアの回路面積を,Cube-1 と比
較し 24.8%削減した,また,グレースケール処理の実行サイクル数を 56%,JPEG デコード処理の
サイクル数を 32%削減した,CMA-Geyser はグレースケール処理を実行したとき,Cube-1 のルー
タで消費される電力を含めると消費電力を 42.4%削減できた,しかし,ルータで消費される電力
を除外すると,12.2%消費電力が増加した,
65 nm CMOS を用いた場合,小規模のシステムであれば,コプロセッサ型のシステムの方が性
能が発揮でき,電力や面積を抑えられることが分かった,しかし,チップ面積の制約から,コプ
ロセッサ型のシステムは拡張性が低いという欠点がある,
一方,オフロードエンジン型のシステムの場合,積層枚数を増減させることでシステム性能を
スケールアウトさせることが出来る,今後,プロセスの進歩や制御の向上によりチップ間無線通
信の性能が向上し,消費電力が少なくなることが期待される,また,CMA-Cube のデータメモリ
を 3 バンク構成にし,データフェッチと演算,ライトバックの 3 段パイプライン構成にする,また
は,処理済みのデータを随時転送するような通信方式を用いることにより,現在の Cube-1 のボト
ルネックであるチップ間通信性能が向上すると考えられる,
CMA-Geyer の今後の課題として,PE アレイモジュールを複数もった構成やより巨大な PE アレ
イを持たせる構成など,CPU モジュールと PE アレイモジュールの最適なサイズ比率の検討が挙
げられる,
今回はオフロードエンジン型のシステムとの比較のために,コプロセッサ型の実装としてキャッ
シュ共有方式を採用した,しかし,レジスタ共有方式との比較検討も今後の課題として挙げられ
る,また,キャッシュのデュアルポート化も課題である,
更に消費電力を削減するために,PE アレイに対して細粒度のパワーゲーティングや SOTB(Silicon
on Thin Buried Oxide) を適用することが考えられる,そのための制御に必要な回路面積や電力と
効果のトレードオフを明らかにしていくことも今後の課題である,
第 9 章 オフロードエンジン型とコプロセッサ型のアーキテクチャの比較
106
107
第 10 章
10.1
結論
本研究のまとめ
本研究では低電力粗粒度再構成アクセラレータ CMA に関して, 8×8 サイズの PE アレイを持つ
CMA-1 を提案し, アプリケーション実装時の演算配置最適化手法の検討と,PE アレイへの供給電
圧を下げた時の高効率な制御手法としてウェーブパイプラインの適用を行い,CMA-1 の電力効率
の向上を行った.また,CMA-1 のアーキテクチャの改善策として,面積や電力効率を高めること
を目的とした CMA の PE アレイ接続網の最適化を行った,更に最適なアクセラレータのアーキテ
クチャを明らかにする目的でオフロードエンジン型コプロセッサ型で CMA を実装した場合の比
較を行った.本研究の対応関係を図 10.1に示す.
HW
SW
Chapter2,Chapter3
CG D RP / Low Pow er Technology
Chapter4
Chapter5
Perform ance
Pow er Consum ption
CM A
Architecture
Proposal
ofCM A-1
Chapter8
Perform ance
Pow er Consum ption
PE Array
O ptim ization
Pow er Consum ption
O ptim ization of
Application
Im plem entation
Perform ance
Pow er Consum ption
Chapter7
Chapter9
Perform ance
Chapter6
Coprocesser
Style CM A
図 10.1
Wave-pipelining
Perform ance
Pow er Consum ption
研究の対応関係
本研究では,まず CMA-1 を提案し CGDRP と比較して処理性能を向上させると共に消費電力削
減し,電力効率を 9 倍以上改善した.
次に,CMA-1 をベースにした CMA を使いこなすソフトウェアレベルの研究として,アプリケー
ション実装の最適化とウェーブパイプラインの適用を行った.これらの研究は,CMA アーキテク
チャであれば CMA-1 に限定せず適用可能である.アプリケーション実装の最適化により処理性
能を大幅に向上させ,消費電力に関してもわずかに削減した.ウェーブパイプラインの適用によ
り,CMA の PE アレイの供給電圧が低いときの処理性能を効果的に高めることができ,処理性能
第 10 章 結論
108
を改善した.
次に,CMA-1 のハードウェア構成の見直しとして,PE アレイ接続網の最適化を行った.これ
により PE アレイの面積を削減し処理性能をわずかに向上させ,消費電力の削減に貢献した.
最後に,CMA の実装方式としてオフロードエンジン型とコプロセッサ型の CMA の比較を行い,
コプロセッサ型の実装をすることで,オフロードエンジン型と比べ性能を向上させることができ,
消費電力も削減できることを明らかにした.
以下の小節でそれぞれの研究項目の成果をまとめる.
10.1.1
CMA-1 の提案
8 × 8 サイズでキャリーを含め 25 ビット幅の PE アレイを持ち,65 nm CMOS プロセスを用いて
4.2mm×2.1mm サイズのチップに実装された CMA-1 は最高で 2.72 GOPS/11.2 mW (247 MOPS/mW)
の電力効率を発揮し,世界でも最高レベルの電力効率を達成した.CMA-1 は同じプロセスを用い
て同じサイズのチップに実装された CGDRP である MuCCRA-3 よりも電力効率を 9.33 倍改善し,
PE1 つあたりの面積を 72.9%削減した.
10.1.2
PE アレイへの演算配置最適化
毎クロック PE アレイを再構成する一般的な CGDRP と異なり,CMA アプリケーション単位で
PE アレイを再構成するため,CGDRP と CMA では演算配置方針が異なる.一つの入力データに
対する処理を PE アレイの列方向に整列配置させる手法により,CGDRP 向けの演算配置で実装し
た場合のアプリケーションと比較して電力効率を 48.4%改善した.また,PE アレイ内で 24 ビッ
トの画素データを 8 ビットの RGB データに分割し,演算処理を実行し,再度 24 ビットに結合し
てコントローラに出力するアプリケーションの実装を行うことで更に電力効率を 6.7 倍改善した.
なお,提案手法による演算配置は Simple Logic コンパイラを作成し自動化した.
10.1.3
ウェーブパイプラインの適用
CMA はコントローラと PE アレイが独立しているため,DVFS を適用しやすい構成である.し
かし,PE アレイへの供給電圧を下げると消費電力は下がるが遅延時間が長くなり性能が悪くなる.
そこで,回路の特性を解析して PE アレイの供給電圧とコントローラの動作周波数をモデル化す
ることでウェーブパイプラインの適用を可能にし,高性能化を行った.ウェーブパイプラインの
適用により,PE アレイへの供給電圧を 0.45 V でグレースケールフィルタを実行したときの電力
効率を最大で 2.1 倍改善した.PE アレイへの供給電圧が 0.6 V 以下の時はウェーブパイプライン
の適用により電力効率を改善できることが明らかになった.
10.1.4
PE アレイ接続網の最適化
CMA のプロトタイプである CMA-1 は CGDRP である MuCCRA-3 と同様の接続網の PE で構
成されている.しかし,MuCCRA と異なり CMA の PE アレイは再構成の頻度が低く,レジスタ
を保持しないため,必要な配線資源の特性が異なる.前述の PE アレイへの演算配置手法により,
PE アレイ上に配置されるデータパスに規則性ができ,接続網の過不足を検討出来るようになった.
第 10 章 結論
109
CMA では一つの入力データに対する演算を基本的に 1∼2 列の PE アレイで行い,同じデータパ
スを残りの PE アレイの列に配置していくため,同じ行の PE アレイで同じ定数を利用する.従来
は PE アレイの下方と左右から定数を供給し,PE 内のスイッチ要素により内部の PE まで定数を
伝搬させていたが,CMA では,定数各行に定数専用の供給パスを設ける構成を提案した.また,
定数専用パスを持たせる構成からは,利用頻度が低い従来の PE が持っていた PE 間のダイレクト
リンクを削除した.従来実行可能であったアプリケーションが減らない条件で,ダイレクトリン
クのみで接続される PE アレイや,PE 内のスイッチを多く保持させる構成の PE アレイなど複数
の構成を比較した結果,上記構成は面積と電力の効率が一番良く,CMA-1 と比較して PE アレイ
の面積を 22%削減し,23%の消費電力削減に成功した.
10.1.5
オフロードエンジン型とコプロセッサ型の比較
CMA-Geyser というコプロセッサ型の低電力粗粒度再構成アクセラレータ CMA を提案し,オ
フロードエンジン型の CMA とホスト CPU である Geyser をワイヤレス 3 次元接続した Cube-1 と
の比較を行った.CMA-Geyser はホスト CPU である Geyser と CMA の PE アレイでデータキャッ
シュを共有しており,Geyser からの演算開始の命令により Geyser と並列して PE アレイで演算処
理できる.
CMA-Geyser はコア間を接続するインターフェースを削減することで,オフロードエンジン型
の CMA コアと比べて面積を 24.8%削減した.また,オフロードエンジン型で必要であったホス
トとアクセラレータのコア間のデータ転送時間を短縮することにより,2.7 倍の性能を発揮でき
た.Geyser コア一枚と CMA コア一枚を接続した Cube-1 と CMA-Geyser を比較し 42.4%の消費電
力の削減に成功した.しかし,Cube-1 のチップ間通信を行うルータの消費電力を除いて比較する
と CMA-Geyser の消費電力は 1.12 倍に増加した.
チップ間のデータ転送にかかる電力を除外すると,複数の CMA コアを低電圧で利用可能なオ
フロードエンジン型の方がトータルの消費エネルギーを削減できる.しかし,システム全体での
消費電力を考慮すると,65 nm CMOS プロセスを用いた小規模なシステムの場合,コプロセッサ
型の CMA-Geyser の方が優れている.
10.1.6
総括
65nm CMOS プロセスを用いて開発された,8×8 サイズの PE アレイを持つ CMA-1 は世界でも
最高レベルの 2.72 GOPS/11.2 mW (247 MOPS/mW) の電力効率を達成した.これにより,低電力
で高性能なアクセラレータとして CMA が優れていることが判明した.65 nm CMOS プロセスを
用いた CMA で比較した場合,汎用 CPU とアクセラレータが 3 次元無線接続オフロードエンジン
型よりもコプロセッサ型の方がシステムトータルでの電力効率と性能が良いことも分かった.
しかし,更に微細なプロセスの登場や,チップ間接通信術の向上によりチップ間通信の性能,電
力オーバヘッドが小さくなると,オフロードエンジン型の方が拡張性が高く,DVFS などの手法
の適用によりシステムの電力効率と高性能化を達成できるようになると考えられる.
CMA への演算配置の最適化手法と CMA の PE アレイの接続網最適化はオフロードエンジン型
とコプロセッサ型の両方のシステムで適用可能な手法であり,電力効率のよい高性能なシステム
の構築に貢献する.
また,CMA へのウェーブパイプラインの適用手法は,特にオフロードエンジン型のシステム
第 10 章 結論
110
で,複数のチップを用いて並列処理させる場合の省電力化と高性能化に貢献する.
近年,モバイル機器への多機能高性能化とバッテリー駆動時間の長期化の要求の両立が求めら
れている.しかし,価格競争が厳しく企業ではシステム設計の研究に多くの時間と費用をかけら
れないのが現状である.モバイル向けコンピュータアーキテクチャの発展に本研究の成果が貢献
できたら幸いである.
10.2
今後の課題
PE アレイアーキテクチャに関して,本研究では接続網の最適化は行ったが,PE アレイの最適
な規模に関しては検討出来ていない.処理の並列度を高めるために PE アレイの列数を増やす (横
方向への拡張) とマイクロコントローラのデータフェッチ性能がボトルネックになりやすい.一方
で,より多くの演算を単一の列処理できるように PE アレイの行数を増やす (縦方向への拡張) と
PE アレイの遅延がボトルネックになりやすい.また,行数を増やす場合,コントローラから供給
されたデータを PE アレイの上方に伝搬させるための配線資源の増強が必要である.また,本研
究ではマイクロコントローラの性能改善に関しては言及していない.同時にフェッチ出来るデー
タの並列度を高めることによる性能改善とそれに伴う消費電力の増加を考慮した検討を行う必要
がある.現在のプロセスの性能と動作電圧,チップサイズを考慮した最適な PE アレイサイズと
マイクロコントローラ性能設計の検討が今後の課題の一つである.
PE アレイが大きくなるほどアプリケーション毎の PE アレイ使用率のばらつきやリーク電力が
大きくなる.使用していない PE に対して,PE 単位または PE アレイの行単位などでパワーゲー
ティングを適用する,あるいは SOTB の適用などのリーク電力を削減する仕組みにより電力効率
を高められる.パワーゲーティングや SOTB の電圧制御に必要なシステムオーバヘッドとリーク
電力削減の効果のトレードオフを考慮した電力効率最適化の検討も今後の課題である.
ウェーブパイプラインでは PE アレイの伝搬遅延を考慮して,コントローラの動作周波数を制
御する必要がある.伝搬遅延は供給電圧の他に動作温度にも大きく影響を受けるが,本研究では
摂氏 28 度環境下における供給電圧を変化させた場合しか考慮できていない.温度の変化による伝
搬遅延の変化をモデル化し,コントローラの最適な動作周波数を導く検討も今度の課題といえる.
CMA にアプリケーションを実装する場合,PE アレイの構成情報を生成するためのプログラミ
ングとマイクロコントローラの挙動のプログラミングの 2 つが必要である.PE アレイへの演算の
配置は提案手法を自動化した SILO コンパイラを用いれば良いが,マイクコントローラへのプロ
グラムは手動で行う必要がある.オフロードエンジン型とコプロセッサ型でコントローラの挙動
が異なるため,手動でのプログラミングの参入障壁は高い.CMA のコントローラのプログラミン
グの容易化は今後の課題の一つである.
オフロードエンジン型とコプロセッサ型ではアーキテクチャの特徴が異なり,公正な比較が困
難であると考えられるため,両者を定量的に比較した論文は我々が知る限りでは存在しない.幸
いにも,CMA はコントローラモジュールと PE アレイモジュールが独立しているため,同じ PE
アレイを用いることで両方の型での比較が出来た.65 nm CMOS プロセスを用いた小規模のシス
テムでは,コプロセッサ型の CMA の方が低電力で優れた性能を発揮することが判明した.しか
し,コプロセッサ型の場合,チップ面積の制約があるため,スケールアップには限界がある.限
られた面積を最大限活用することを目的とした,PE アレイモジュールを複数モジュールに分割す
る構成や,より巨大な PE アレイ構成にするなど,CPU モジュールと PE アレイモジュールの性能
比率のバランスの検討などは今後の課題の一つである.
第 10 章 結論
111
現在はオフロードエンジン型のシステムの性能ボトルネックはチップ間の通信性能であるが,
CMA のメモリを 3 バンク構成にし,データフェッチと PE アレイの演算とライトバックの 3 段パ
イプライン処理を実現することで通信性能を改善できると考えられる.また,チップ間の通信方
式としてストリーミング転送を行うことで,通信性能を向上できると考えられる.
最後に,パッケージシステム全体の制御として,要求性能と動作温度に基づき最適な PE アレ
イの供給電圧と CMA コントローラの動作周波数の制御,ホスト CPU と CMA 間のデータ転送ス
ケジューリングなど協調動作の制御方式の検討が今後の大きな課題である.
第 10 章 結論
112
113
謝辞
本研究は,多くの方々のご助力をいただいて初めて完了させることができたものであり,ここ
に謹んで感謝の意を表します.
本研究の機会を与えて下さり,6 年間もの長きにわたり絶えずご指導くださった,慶應義塾大
学理工学部 天野 英晴 教授に深く感謝いたします.CMA-1 のアプリケーション開発から始まり,
CMA-2 のテープアウトなど多くの貴重な経験をさせていただきました.出張時のトラブル対応な
ど,生活面でも多くのご指導と御協力をいただきました.社会人と博士課程の両立ができたのも
天野英晴 教授の御協力があればこそでした.6 年間,本当にありがとうございました.
本論文の執筆にあたり,ご多忙にもかかわらず副査を引き受けてくださった教授方に感謝いた
します.黒田忠宏教授,回路の視点から電力効率の考え方を指導してくださり,議論すべき点が
明瞭になりました.斉藤英雄教授,アプリケーションの視点から CMA の活用先について深い洞察
をあたえてくださいました.松谷宏紀教授,アーキテクチャの研究の位置付けについて,まとめ
方を指導してくださいました.また,お忙しいなか私の拙い文章の細かな校正をいただきまして
本当にありがとうございました.公聴会に駆けつけてくださった山中直明教授,アーキテクチャ
の進化の方向性について深い議論をすることができました.ありがとうございました.
CMA-1 の実チップという研究素材を残してくださった偉大なる先輩の,斎藤貴樹さん,池淵大
輔さんに感謝いたします.お二人が研究室の夏合宿にも参加せずにテープアウトをしてくださっ
たおかげで,私は様々な研究成果を残すことが出来ました.卒業してからも飲み会に誘ってくだ
さったり,お付き合いいただきましてありがとうございます.これからも宜しくお願いします.
研究室配属後のチーム決めから,博士課程に進学するときや審査まで,研究人生の分岐点で必
ず相談に乗ってくださり,また,私を導いてくださった西川由理さんに感謝いたします.由理さ
んがいなかったら私は博士課程には進学していなかったと思います.ありがとうございます.
一緒に CMA の研究を推進してくれた後輩の伊澤麻衣さん,宇野理恵さんに感謝いたします.二
人がいなければ,私はここまで頑張れなかったと思います.卒業して仕事で忙しい中,本論文の
執筆にあたり,いろいろとお手数おかけしてしまいましたが,快く対応してくださいまして本当
にありがとうございます.
同じタイミングで研究室に入り,卒業後も一緒に遊んでくれる佐々木瑛一くん,鎌田俊明さん
に感謝します.飲みに行ったり,スノボに行ったり,両名のおかげで充実した生活を送れていま
す.これからも宜しくお願いします.
本論文執筆中,話相手になってくれた後輩の河野隆太くん,藤田悠くん,奥原颯くん,杉本成
くん,蓼誠一くん,三石拓司くん,安戸僚汰くんにも感謝します.研究室で一人さみしく論文を
書くはめにならず,皆さんとおしゃべりできて楽しく執筆作業をすすめることが出来ました.
また,日頃より暖かいご支援をいただきました天野研究室のすべての卒業生,現役生の皆様に
心より感謝いたします.
謝辞
114
情報の同期でサークルも同じ中谷文香さん,修士から慶應で一緒になった瀬下裕介くんにも感
謝します.修士在学中はしょっちゅう藤代研究室にお邪魔して,おしゃべりしました.おかげでい
い気分転換になり,研究をすすめることが出来ました.藤代研の卒業旅行にも一緒に行かせても
らいましたし,卒業後も映画に行ったり,ボルダリングに行ったりとお付き合いくださいまして
ありがとうございます.これからも仲よくしてください.
年末,期末の忙しい時期に学位審査や論文執筆で職場を離れることが多かったにもかかわらず,
仕事を調整してくださり,応援してくださった上司の増田さん,江丸さんにも感謝します.集中
して審査と論文の執筆に望むことが出来ました.また,博士進学を応援し,励ましててくださっ
た工藤さん,森村さん,飯塚さん,名倉さんにも感謝します.自分を奮い立たせることが出来ま
した.
学位取得を応援してくれた会社の同期の大西さん,小泉くん,消防の先輩の山崎さんにも感謝
します.近くに応援してくれる人がいて心強かったです.よく飲み会にさ誘ってくれる同期のも
とこちゃん,バーをおごってくださる先輩のかとたさん,日々あらゆることを気遣ってくださり
お茶に付き合ってくださるはつみ姉さんにも感謝しています.とても良い息抜きになり精神面の
支えになりました.
日吉のお店の皆様にも応援いただき,日吉に通うことがとても楽しみでした.三日月のおかあ
さま方,おまけをつけてくださったり,忙しいときでも暖かく向かえてくださり,いつも応援い
ただきまして誠にありがとうございます.おいしい餃子と優しいおかあさま方に励まされ元気に
研究に取り組めました.竹寿しの森さん,勝田さん.在学中はバイトでもお世話になりましたし,
就職後も優しく向かえてくださり,ありがとうございます.とりゆうにもお世話になりました.と
りゆうのレバーとカモロースは絶品で,英気を養わせていただきました.
最後になりましたが,いつも暖かく見守ってくれ,社会人になってからも博士進学を応援して
くれた両親には本当に感謝しています.あまり連絡していなくても,何かあったときはいつも見
方になってくれて心強かったです.本当に,本当にありがとうございます.たくさん恩返しした
いと思っているので,長生きしてください.
2015 年 2 月 某日
矢上キャンパス 26-112A にて
小崎 信明
115
参考文献
[1] SHARP. http://www.sharp.co.jp/products/device/about/ic/ccd_cmos/imagesensor/index.html.
[2] SONY. http://www.sony.co.jp/Products/SC-HP/tech/isensor/cmos/index.html.
[3] F.J. Veradas, et. al. Custom implementation of the coarse-grained reconfigurable adres architecture
for multimedia purposes. In Field Programmable Logic and Applications (FPL), pp. 106–111.
IEEE Press., Aug. 2005.
[4] H. Singh, et. al. Morphosys: An integrated reconfigurable system for data-parallel and
computation-intensize applications. IEEE Transaction on Conputers, Vol. 49, No. 5, pp. 465 –
480, May 2000.
[5] C. Ebeling, et. al. Rapid -reconfigurable pipelined datapath. In Field Programmable Logic and
Applications (FPL), pp. 126–135. Springer, 1996.
[6] H. Schmit, et. al. Piperench: A virtualized programmable datapath in 0.18 micron technology. In
Custom Integrated Circuits Conference, pp. 63–66. IEEE International Conference, 2002.
[7] Y. Saito, et. al. A real chip evaluation of muccra-3: A low power dynamically reconfigurable
processor array. In The International Conference on Engineering of Reconfigurable Systems and
Algorithms (ERSA), July 2009.
[8] Y. Kim, et. al. Design Space Exploration for Efficient Resource Utilization in Coarse-Grained
Reconfigurable Architecture. IEEE Transaction on Very Large Scale Integration(VLSI) Systems,
Vol. 18, No. 10, Oct 2010.
[9] M. Kato et. al. A study on interconnection networks of the dynamically reconfigurable prosessor.
In IEEE Intl. Conf. on Field Programmable Technology(FPT), Dec. 2009.
[10] M. Motomura. A dynamically reconfigurable processor architecture. Microprocessor Forum, October 2002.
[11] 粟島 他. 動的再構成可能チップ DRP の C コンパイラ. 電子情報通信学会技術研究報告
VLD2003-118, Vol. 103, No. 578, pp. 23–28, 2004.
[12] 大山 他. C 言語ベースのシステムレベル合成・設計手法と開発事例. 第 13 回軽井沢ワーク
ショップ, 2000.
[13] M. Motomura. Stp engine, a c-based programmable hw core featuring massively parallel and
reconfigurable pe array:its architecture, tool, and system implications. In Symposium on LowPower and High-Speed Chips (CoolChips XII). IEEE Press., Apr. 2009.
参考文献
116
[14] Renesus Electronics. http://japan.renesus.com/products/soc/asic/programmable/stp/index.jsp.
[15] Panasonic. http://www.panasoniceurope.com.
[16] IPFlex. http://www.ipflex.com/.
[17] J.M. Arnold, et. al. S5: The Architecture and Development Flow of a Software Configurable
Processor. In Proceedings of the International Conference on Field Programmable Technology
(FPT), pp. 121 – 128, 2005.
[18] The IMPACT group. http://www.crhc.uiuc.edu/impact.
[19] PACT. http://www.pactxpp.com/.
[20] Elixent. http://www.pactxpp.com/.
[21] Xilinx. http://japan.xilinx.com/xcell/xl55/jp55xcell_09.pdf.
[22] A. Rahman, et. al. Determination of Power Gating Granularity for FPGA Fabric. IEEE 2006
Custom Integrated Circuits Conference (CICC), pp. 9–12, September 2006.
[23] G. Merrett, et. al. Leakage power analysis and comparison of deep submicron logic gates. In
PATMOS, pp. 198–207, 2004.
[24] T. Nishimura, et. al. Power reduction techniques for dinamically reconfigurable processor arrays.
Proc. of Int’l Conf. on Field Programmable Logic and Application (FPL), pp. 305–310, 2008.
[25] M.G. Lorenz, et. al. Power Consumption Reduction Through Dynamic Reconfiguration. In Lecture
Notes in Computer Science, Vol. Volume 3203/2004, pp. 751–760, August 2004.
[26] M. Ahn, et. al. A Spatial Mapping Algorithm for Heterogeneous Coarse-Grained Reconfigurable
Architectures. In Conference on Design Automation and Test in Europe(DATE‘06), pp. 363–368,
2006.
[27] Y. Kim, et. al. Power-Conscious Configuration Cache Structure and Code Mapping for CoarseGrained Reconfigurable Architecture. In International Symposium on Low Power Electronics and
Design(ISLPED‘06), pp. 310–315, 2006.
[28] Y. Kim, et. al. Low Power Reconfiguralbe Technique for Coarse Grained Reconfigurable Architecture. IEEE Transaction on Very Large Scale Integration(VLSI) Systems, Vol. 17, No. 5, pp.
593–603, May 2009.
[29] Y. Qu, et. al. Using Dynamic Voltage Scaling to Reduce the Configuration Energy of Run Time
Reconfigurable Devices. In Conference on Design Automation and Test in Europe(DATE‘07), pp.
147–152, 2007.
[30] Y. Lin, et. al. Routing Track Duplication with Fine-Grained Power-Gating for FPGA Interconnect
Power Reduction. In Proc. of the 2005 conference on Asia South Pacific design automation, pp.
645–650, November 2005.
参考文献
117
[31] LEAP:超低電圧デバイス技術研究組合. 薄膜 BOX-SOI(SOTB) による超低電圧 (0.4V) 動作 LSI
で, チップ毎の性能ばらつきを半減する技術を開発, 2013. http://www.leap.or.jp/idem2013.pdf.
[32] F. Li, et. al. Low-Power FPGA Using Pre-defined Dual-Vdd/Dual-Vt Fabrics. In Proc. of the
2004 ACM/SIGDA 12th international symposium on Field programmable gate arrays, pp. 42–50,
February 2004.
[33] Canh Q Tran and others. 95% leakage-reduced FPGA using Zigzag power-gating, dual-VTH/VDD
and micro-VDD-hopping. In Proc. of Asian Solid-State Circuits Conference 2005, pp. 149–152,
November 2005.
[34] T. Sakurai and A.R. Newton. Alpha-power law mosfet model and its applications to cmos inverter
delay and other formulas. IEEE Solid-State Circuits, Vol. 25, No. 2, pp. 584 – 594, Apr. 1990.
[35] H. Amano, et. al. ACD13-02805 A high speed reconfigurable processor Chip evaluation report. In
Starc Report 2014. STARC, 2014.
[36] V. Tunbunheng, et. al. Romultic: Fast and simple configuration data multicasting scheme for coarse
grain reconfigurable devices. In Field-Programable Tecnology (FPT), pp. 129 – 136. IEEE Press.,
Dec. 2005.
[37] H. Amano. Low power techniques for reconfigurable devies focusing on dynamically reconfigurable processors, 2009.
[38] Y. Yuyama et. al. A 45nm 37.3gops/w heterogeneous multi-core soc. In Solid-State Circuits
Conference Digest of Technical Papers (ISSCC), pp. 100 – 101. IEEE Press., Feb. 2010.
[39] F. Clermidy et. al. A 477mw noc-based digital baseband for mimo 4g sdr. In Solid-State Circuits
Conference Digest of Technical Papers (ISSCC), pp. 278 – 279. IEEE Press., Feb. 2010.
[40] H. Kaul, et. al. A 300mv 494gops/w reconfigurable dual-supply 4-way simd vector processing
accelerator in 45nm cmos. IEEE Solid-State Circuits, Vol. 45, No. 1, pp. 95 – 102, Jan. 2010.
[41] V. Tunbunheng and H.Amano. Black-diamond: a retargetable compiler using graph with configuration bits for dynamically reconfigurable architectures. In The 14th SASIMI, pp. 412 – 419,
2007.
[42] W.H. Chen, et. al. A Fast Computational Algorithm for the Discrete Cosine Transform. IEEE
Transactions on Communications, Vol. 25, No. 9, pp. 1004–1009, September 1977.
[43] W.P. Burleson, et. al. Wave Pipelining: A Tutorial and Research Survey. IEEE Transaction on
Very Large Scale Integration(VLSI) Systems, Vol. 6, No. 3, pp. 464–474, September 1998.
[44] 津野田賢伸 他. ディジタルメディア向け再構成型プロセッサ FE-GA の概要. 電子情報通信学
会技術研究報告 RECONF2005-65, Vol. 105, No. 451, pp. 37–42, December 2005.
[45] 高田雅士 他. 構成情報の階層記憶制御による再構成プロセッサ FE-GA の性能面積比の向上
. 電子情報通信学会技術研究報告 RECONF2005-66, Vol. 105, No. 451, pp. 43–48, December
2005.
参考文献
118
[46] 田中博志 他. 再構成型プロセッサ FE-GA のオーディオ処理への応用. 電子情報通信学会技術
研究報告 RECONF2005-67, Vol. 105, No. 451, pp. 49–54, December 2005.
[47] 佐藤真琴 他. 再構成プロセッサ FE-GA 上への FFT のマッピング. 電子情報通信学会技術研究
報告 RECONF2005-68, Vol. 105, No. 451, pp. 55–60, December 2005.
[48] H. Amano et. al. Muccra chips: Configurable dynamically-reconfigurable processors. In Asian
Solid-State Circuits Conference (ASSCC’07). IEEE Asian, Nov. 2007.
[49] D. Ikebuchi, et.al. . Geyser-1: A MIPS R3000 CPU core with fine grain runtime power gating. In
Solid-State Circuits Conference, 2009. A-SSCC 2009. IEEE Asian, pp. 281–284. IEEE, 2009.
[50] N. Ozaki, et. al. Cool Mega-Arrays: Ultralow-Power Reconfigurable Accelerator Chips. IEEE
Micro, Vol.31, pp. 6–18, 2011.
[51] 小崎信明 他. 低電力アクセラレータ SLD-1 におけるアプリケーションプログラムの最適化.
IEICE RECONF 研究会, May 2011.
[52] N. Miura, et. al. A-scalable 3d heterogenious multicore with an inductive thruchip interface. IEEE
Micro, Vol. 33, pp. 62–69, 2013.
[53] Y. Koizumi, et. al. CMA-CUBE: A SCALABLE RECONFIGURABLE ACCELERATOR WITH
3-D WIRELESS INDUCTIVE COUPLING INTERCONNECT. In Proceedings of the FieldProgrammable Logic and Applications (FPL12), pp. 543 – 546, Aug 2012.
[54] 佐々木瑛一 他. チップ間ワイヤレス接続を利用した三次元積層アーキテクチャの研究. 電子
情報通信学会 コンピュータシステム研究会 (CPSY), pp. 7 – 12, July 2011.
[55] Z. Ye, et. al. . Chimaera: A high-performance architecture with a tightly-coupled reconfigurable
functional unit. In Int. Symposium on Computer Architecture, pp. 225–235. ACM/IEEE, 2000.
[56] T. Callahan, et. al. . The garp architecture and c compiler. In IEEE Computer, Vol.33,, pp. 62–69,
2000.
[57] H.S. Kim, et. al. . ULP-SRP: Ultra Low Power Samsung Reconfigurable Processor for Biomedical
Applications. In Prof. of ICFPT 2012, pp. 329–334, 2012.
[58] V. Puente, et. al. Adaptive Bubble Router: A Design to Improve Performance in Torus Networks.
In Proceedings of the International Conference on Parallel Processing (ICPP’99), pp. 58–67, Sep
1999.
[59] P. Abad, et. al. Rotary Router: An Efficient Architecture for CMP Interconnection Networks. In
Proceedings of the International Symposium on Computer Architecture (ISCA’07), pp. 116–125,
May 2007.
119
論文目録
公開論文
• N. Ozaki, Y. Yasuda, Y. Saito, D. Ikebuchi, M. Kimura, H, Amano, H. Nakamura, K. Usami, M.
Namiki, M. Kondo. "Cool Mega-Array:Ultra Low Power Reconfigurable Accelerator Chips"
IEEE Micro Magazine, November/December 2011, Vol31, No.6
• 小崎信明,宇野理恵,野 英晴 (慶大). "超低消費電力アクセラレータ CMA の PE アレイアー
キテクチャの最適化" 情報処理学会論文誌 2012 年 2 月,Vol.53,No.2
• M. Izawa, N. Ozaki, Y. Koizumi, R. Uno, H. Amano, "A Co-Processor Design for an Energy
Efficient Reconfigurable Accelerator CMA" International Journal of Networking and Computiong
2014, vol.4, No.2
国際会議
• N. Ozaki, Y. Yasuda, Y. Saito, D. Ikebuchi, M. Kimura, H. Amano, H. Nakamura, K. Usami, M.
Namiki, M. Kondo. "SLD-1(Silent Large Datapath):A Ultra Low Power Reconfigurable Accelerator" IEEE Symposium on Low-Power and High-Speed Chips COOL CHIPS XIV,2011/4/20-22
• N. Ozaki, Y. Yasuda, Y. Saito, D. Ikebuchi, M. Kimura, H. Amano, H. Nakamura, K. Usami, M.
Namiki, M. Kondo. "Cool Mega-Array:a highly energy efficient reconfigurable accelerator" IEEE
ICFPT,2011/12/12-14
• K. Hironaka, N. Ozaki, H. Amano. "CMA-1:An Ultra Low-power Reconfigurable Accelerator"
IEEE ICFPT,2011/12/12-14
• N. Ozaki, Y. Yasuda, Y. Saito, D. Ikebuchi, M. Kimura, H. Amano, H. Nakamura, K. Usami, M.
Namiki, M. Kondo. "A 2.72GOPS/11mW low power reconfigurable accelerator with a highly
parallel datapath consisting of combinatorial circuits in 65nm CMOS" ISIC,2011/12/12-14
• M. Izawa , N. Ozaki, Y. Yasuda, M. Kimura, H. Amano. "CMA-2:The second prototype of a ultra
low power reconfigurable accelerator" ASP-DAC,2012/1/30-2012/2/2
• R. Uno , N. Ozaki, H. Amano. "Design Explore of PE Array Networks for Cool Mega Array"
IEEE Symposium on Low-Power and High-Speed Chips Cool Chips XV, 2012/4/18-22
• M. Izawa , N. Ozaki, Y. Koizumi, R. Uno, H. Amano. "A co-Processor design of an energy
efficient reconfigurable accelerator CMA" CANDAR, 2013/12
参考文献
120
• R. Uno , N. Ozaki, H. Amano. "Research of PE Array Connection Network for Cool Mega-Array"
International Workshop on Renewable Computation Systems, 2013/3
研究会
• 小崎信明,齊藤 貴樹,池淵 大輔,安田 好宏,木村 優之,天野 英晴 (慶大). "低消費電力リコ
ンフィギャラブルプロセッサアレイ SMA-1 の予備評価" IPSJ SACSIS 2010,pp123-124,2010
• 天野英晴,木村優之,小崎信明(慶大). "マルチコンテキスト型動的リコンフィギャラブ
ルプロセッサからコンテキストメモリをなくす方法の提案" IEICE RECONF 研究会,pp97102,2010/9/16-17
• 安田好宏,小崎信明,木村優之,齊藤貴樹,池淵大輔,天野英晴(慶大),中村 宏(東大),
宇佐美公良(芝浦工大),並木美太郎(東京農工大),近藤正章(電通大)"超低電力アクセラ
レータ SLD(Silent Large Datapath) の提案" IEICE RECONF 研究会,pp169-174,2011/1/16-17
• 小崎信明,安田好宏,木村優之,齊藤貴樹,池淵大輔,天野英晴(慶大),中村 宏(東大),宇
佐美公良(芝浦工大),並木美太郎(東京農工大),近藤正章(電通大)"超低電力アクセラレー
タ SLD(Silent Large Datapath)の実機評価" IEICE RECONF 研究会,pp175-180,2011/1/17-18
• 小崎信明,安田好宏,木村優之,齊藤貴樹,池淵大輔,天野英晴(慶大),中村 宏(東
大),宇佐美公良(芝浦工大),並木美太郎(東京農工大),近藤正章(電通大)"低電力ア
クセラレータ SLD-1 におけるアプリケーションプログラムの最適化" IEICE RECONF 研究
会,pp85-90,2011/5/12-13
• 伊澤麻衣, 小崎信明, 安田好宏, 木村優之, 天野英晴(慶大). "低電力アクセラレータ SLD-2
の実装と評価" IEICE RECONF 研究会,pp85-90,2011/5/12-13
• 小崎信明,安田好宏,木村優之,齊藤貴樹,池淵大輔,天野英晴(慶大),中村 宏(東大),
宇佐美公良(芝浦工大),並木美太郎(東京農工大),近藤正章(電通大)"低電力アクセラ
レータ CMA-1 におけるウェーブパイプラインの適用" IEICE RECONF 研究会,2011/9/26-27
• 小崎信明,安田好宏,木村優之,齊藤貴樹,池淵大輔,天野英晴(慶大),中村 宏(東大),
宇佐美公良(芝浦工大),並木美太郎(東京農工大),近藤正章(電通大)"CMA:超低電力
再構成アクセラレータ" IPSJ 組込みシステム研究会,2011/10/19-21
• 伊澤麻衣,小崎信明,安田好宏,木村優之,天野英晴(慶大)"低消費電力アクセラレータ
Cool Mega-Array(CMA)-2 の実チップ評価" IPSJ 組込みシステム研究会,2011/10/19-21
Fly UP