大規模 fpga を用いた ヘテロジニアス構成のメニー …...tokyo institute of...

79
Tokyo Institute of Technology Department of Computer Science FPGA いた ヘテロジニアス メニーコアソフトプロセッサ : 28 1 大学院 14M38379

Upload: others

Post on 01-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Tokyo Institute of TechnologyDepartment of Computer Science

修士論文

大規模 FPGAを用いたヘテロジニアス構成のメニーコアソフトプロセッサ

指導教員: 吉瀬謙二 准教授

平成 28年 1月

提出者

大学院情報理工学研究科計算工学専攻

14M38379 森  悠

Page 2: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 3: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

i

概要

マイクロプロセッサ史において,1つのチップ上に単一のプロセッサコアを有するシングルコアプロセッサが長らく主流であったが,プロセッサのシングルスレッド性能の向上

限界や半導体の集積技術向上により,1つのチップ上に複数のプロセッサコアを搭載するマルチコアプロセッサが一般的となっている.複数のプロセッサコアを効率的に利用する

並列化技術の発展もあり,近年ではより多くのプロセッサコアから成るメニーコアプロ

セッサが現実的なシステムとなりつつある.

一方,従来のプロセッサで動作するソフトウェアシミュレータでは,膨大な回路規模のメ

ニーコアプロセッサのシミュレーションを現実的な時間で行うことは難しい.FPGA(FieldProgrammable Gate Array)を用いた研究基盤も幾つか提案・開発されてきたが,プロセッサアーキテクチャの研究基盤として簡単に導入可能なものはまだ多くない.

このような背景のもと,本研究ではアーキテクチャ研究に適した研究基盤としてメニー

コアプロセッサの設計を行った.設計したプロセッサは様々な種類の FPGA上で動作することを想定しており,サイクルレベルの細粒度なシミュレーションやプロトタイピングを

高速に行うことができる.

このプロセッサはインターコネクトに 2 次元メッシュの Network-on-Chip を採用しており,プロセッサコアやキャッシュ,制御コアといった機能ユニットをそれぞれ独立した

ノードとして設計している.ユーザは機能の必要性や FPGAのハードウェアリソースに応じてこれらのノードを組み合わせることで,ヘテロジニアス構成のメニーコアプロセッサ

環境を容易に入手することができる.このようなノード設計は研究要素の適用を容易にし,

研究基盤としての可用性を高めている.

本論文では設計したメニーコアプロセッサのアーキテクチャについて述べ,大規模

FPGA をターゲットとする構成で実装を行う.また,設計したメニーコアプロセッサがアーキテクチャ研究に適していることを示すため,並列アプリケーションを利用したアー

キテクチャ性能の評価やシミュレーション効率の評価,研究要素の適用を行う.これらの

評価結果をもって,設計したメニーコアプロセッサが研究基盤として有用であることを

示す.

Page 4: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 5: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

iii

目次

目次 iii

図目次 vii

表目次 ix

コード目次 xi

第 1章 緒論 11.1 目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 2章 背景 32.1 マイクロプロセッサ技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 FPGA技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 メニーコアアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3.1 Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.2 Kalray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.3 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.4 Tilera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 関連研究とそのアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . 8

第 3章 設計 113.1 設計指針 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 設計制約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 動作モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4 アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4.1 インターコネクト . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Page 6: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

目次 iv

3.4.2 ノード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4.3 ネットワーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.4.4 インターフェース . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 プログラミングモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5.1 メモリマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5.2 制御コア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.5.3 並列アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . 29

第 4章 実装 314.1 Verilog HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 ハードウェア使用量とコンパイル時間 . . . . . . . . . . . . . . . . . . . . 324.3 動作検証と動作周波数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

第 5章 評価 375.1 環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2 評価方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.2.1 アーキテクチャ性能評価 . . . . . . . . . . . . . . . . . . . . . . . . 375.2.2 シミュレーション効率評価 . . . . . . . . . . . . . . . . . . . . . . 385.2.3 研究要素適用評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.3 評価アプリケーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3.1 n-Queens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3.2 Bitonic sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3.3 Matrix Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . 405.3.4 Stencil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.4 性能評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.4.1 n-Queens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.4.2 Bitonic sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.4.3 Matrix Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . 455.4.4 Stencil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.5 効率評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.6 適用評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.6.1 命令キャッシュクラスタリング . . . . . . . . . . . . . . . . . . . . 515.6.2 実装と評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.6.3 適用結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

第 6章 結論 55

Page 7: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

v

6.1 まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

謝辞 57

参考文献 59

研究業績 63

付録 65

Page 8: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 9: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

vii

図目次

3.1 メニーコアプロセッサの動作モデル . . . . . . . . . . . . . . . . . . . . . 133.2 2次元メッシュトポロジの Network-on-Chip . . . . . . . . . . . . . . . . 143.3 36ノード構成のメニーコアプロセッサのインターコネクト . . . . . . . . 153.4 プロセッサノードの内部構成 . . . . . . . . . . . . . . . . . . . . . . . . . 163.5 MIPSアーキテクチャの 5段パイプラインプロセッサ . . . . . . . . . . . 173.6 キャッシュノードの内部構成 . . . . . . . . . . . . . . . . . . . . . . . . . 183.7 メモリノードの内部構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.8 スケジューラノードの内部構成 . . . . . . . . . . . . . . . . . . . . . . . 203.9 ルータアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.10 パケットフローと仮想チャネルの対応関係 . . . . . . . . . . . . . . . . . 223.11 フリット形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.12 パケット形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.13 UARTインターフェースの内部構成 . . . . . . . . . . . . . . . . . . . . . 253.14 論理アドレスメモリマップ . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1 Verilog実装におけるモジュール関係とコード行数 . . . . . . . . . . . . . 314.2 モジュール関係と slice/BRAMの使用量 . . . . . . . . . . . . . . . . . . . 324.3 動作検証に用いた FPGAボード . . . . . . . . . . . . . . . . . . . . . . . 344.4 実行結果を出力する端末エミュレータのスクリーンショット . . . . . . . 35

5.1 n-Queensにおける問題サイズごとの台数効果 . . . . . . . . . . . . . . . . 415.2 n-Queensの 16コア実行時における問題サイズごとのヒット率 . . . . . . 425.3 Bitonic sortにおける問題サイズごとの台数効果 . . . . . . . . . . . . . . 435.4 Bitonic sortの 16コア実行時における問題サイズごとのヒット率 . . . . . 445.5 Matrix Multiplicationにおける問題サイズごとの台数効果 . . . . . . . . . 455.6 Matrix Multiplicationの 16コア実行時における問題サイズごとのヒット率 46

Page 10: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

図目次 viii

5.7 Stencilにおける問題セットごとの台数効果 . . . . . . . . . . . . . . . . . 475.8 Stencilの 16コア実行時における問題セットごとのヒット率 . . . . . . . . 485.9 n-Queenにおけるコア数とシミュレーション時間の高速化比の関係 . . . . 495.10 Bitonic sortにおけるコア数とシミュレーション時間の高速化比の関係 . . 495.11 Matrix Multiplicationにおけるコア数とシミュレーション時間の高速化比

の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.12 Stencilにおけるコア数とシミュレーション時間の高速化比の関係 . . . . . 505.13 命令キャッシュクラスタリングの概念図 . . . . . . . . . . . . . . . . . . . 515.14 命令キャッシュクラスタリングのクラスタリングパターン . . . . . . . . . 525.15 Matrix Multiplicationにおけるクラスタリングパターンごとの性能向上比 53

6.1 DRAMのバーストアクセスとバンド幅の関係 . . . . . . . . . . . . . . . 65

Page 11: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

ix

表目次

3.1 I/Oのメモリマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1 全体のハードウェア使用量と使用率 . . . . . . . . . . . . . . . . . . . . . 33

Page 12: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 13: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

xi

コード目次

3.1 制御コアの擬似コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2 並列アプリケーションの擬似コード . . . . . . . . . . . . . . . . . . . . . 29

Page 14: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 15: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

1

第 1章

緒論

1.1 目的

マイクロプロセッサ史において,1つのチップ上に単一のプロセッサコアを有するシングルコアプロセッサが長らく主流であったが,プロセッサのシングルスレッド性能の向上

限界や半導体の集積技術向上により,1つのチップ上に複数のプロセッサコアを搭載するマルチコアプロセッサが一般的となっている.複数のプロセッサコアを効率的に利用する

並列化技術の発展もあり,近年ではより多くのプロセッサコアから成るメニーコアプロ

セッサが現実的なシステムとなりつつある.

一方,従来のプロセッサで動作するソフトウェアシミュレータでは,膨大な回路規模のメ

ニーコアプロセッサのシミュレーションを現実的な時間で行うことは難しい.FPGA(FieldProgrammable Gate Array)を用いた研究基盤も幾つか提案・開発されてきたが,プロセッサアーキテクチャの研究基盤として簡単に導入可能なものはまだ多くない.

このような背景のもと,本研究ではアーキテクチャ研究に適した研究基盤としてメニー

コアプロセッサの設計を行った.設計したプロセッサは様々な種類の FPGA上で動作することを想定しており,サイクルレベルの細粒度なシミュレーションやプロトタイピングを

高速に行うことができる.

このプロセッサはインターコネクトに 2 次元メッシュの Network-on-Chip を採用しており,プロセッサコアやキャッシュ,制御コアといった機能ユニットをそれぞれ独立した

ノードとして設計している.ユーザは機能の必要性や FPGAのハードウェアリソースに応じてこれらのノードを組み合わせることで,ヘテロジニアス構成のメニーコアプロセッサ

環境を容易に入手することができる.このようなノード設計は研究要素の適用を容易にし,

研究基盤としての可用性を高めている.

Page 16: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 1 緒論 2

本論文では設計したメニーコアプロセッサのアーキテクチャについて述べ,大規模

FPGA をターゲットとする構成で実装を行う.また,設計したメニーコアプロセッサがアーキテクチャ研究に適していることを示すため,並列アプリケーションを利用したアー

キテクチャ性能の評価やシミュレーション効率の評価を行う.さらに,並列アプリケー

ションの特性を考慮したキャッシュ手法を提案し,設計したメニーコアプロセッサに対

して研究要素の適用と評価を行う.これらの評価結果をもって,設計したメニーコアプロ

セッサが研究基盤として有用であることを示す.

1.2 構成

本論文の構成は次の通りである.2章では,メニーコアプロセッサの要素技術と FPGAを利用したプロセッサ研究について述べる.3章では,設計したメニーコアプロセッサのアーキテクチャについて述べる.4章では,メニーコアプロセッサの FPGA実装について述べる.5章では,FPGA実装したメニーコアプロセッサの評価について述べる.最後に,6章で本論文をまとめる.

Page 17: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3

第 2章

背景

2.1 マイクロプロセッサ技術

マイクロプロセッサは計算機の中心的役割である命令実行を行うハードウェアであり,

プロセッサコアはその処理部のことを指す.シングルコアプロセッサは単一のプロセッ

サコアを有するプロセッサであり,主流なプロセッサとして長らく利用されてきた.プロ

セッサは動作周波数の向上や,命令レベル並列性を抽出する機構を導入することによって

その性能を向上させてきた.しかし動作周波数の増加に伴う消費電力と発熱の増加は避け

られず,冷却問題という物理的制約によって性能向上は困難となった.同様にプロセッサ

が抽出できる命令レベル並列性が限界に近づいているという点や,投機実行のような複雑

な機構は回路面積あたりの性能が得られにくいという点からも性能向上は更に困難になっ

てきている.

こういった問題から,近年では複数のプロセッサコアを搭載するマルチコアプロセッサ

が主流になっている.マルチコアプロセッサでは比較的周波数の低い平易な性能のプロ

セッサコアであっても,回路面積あたりの性能が得られやすい.また,スレッドレベル並

列性あるいはデータレベル並列性といった,命令レベル並列性とは異なる粒度の並列性を

抽出するアプローチがとられているため,マルチスレッド処理の多い実環境で並列性の恩

恵を受けやすいという利点がある.今日の一般的な計算機や,スマートフォンやタブレッ

トといった PMD(Personal Mobile Device)に搭載されるプロセッサの多くはマルチコアプロセッサであり,その性能向上がもたらす影響は大きなものとなる.

プロセスルールの微細化により,ダイあたりに集積されるトランジスタ数とプロセッサ

コア数は年々増加傾向にあり,今後はより多くのプロセッサコアを有するメニーコアプロ

セッサが主流になっていくと予想される.メニーコアプロセッサには,OSの動作をサポートするメインプロセッサと,補助的な処理を行うアクセラレータが存在する.

Page 18: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 2 背景 4

2.2 FPGA技術FPGA(Field Programmable Gate Array) は再構成可能な論理ゲートアレイであり,ユーザが設計した任意の論理回路を実現することができるハードウェアである.FPGA はCLB(Configurable Logic Block),配線チャネル,BRAM(Block RAM),IOB(Input/OutputBlock) などから構成される.CLB は複数の論理セルから成り,論理セルは書き換え可能な LUT(Look Up Table)と FF(Flip Flop)から成る.Xilinxにおける論理セルは sliceと呼ばれ,論理回路の構成に要したハードウェア量を測る単位としても利用される.配線チャ

ネルは任意の CLB やその他のブロックを接続するための内部配線アレイであり,配線アレイの交点にはプログラマブルスイッチが配置されている.BRAMは FPGA内の BRAM層に均等に配置される RAMリソースで,必要に応じて CLBと接続される.IOBは外部との信号のやりとりを行うポートで,FPGAの外縁部に位置する.

FPGA の性能をはかる一つの指標はハードウェアリソースで,リソース量は論理セルの LUT 入力数や slice 数,BRAM の総容量などによって決まる.例えば,一般的な

32bit MIPS アーキテクチャのパイプラインプロセッサ [1][2] を FPGA 実装するのに 600個程度の slice を要すると仮定する.これを Xilinx Spartan-6 XC6SLX45 に実装すると,XC6SLX45 の slice 数は 6,822 個なので,このプロセッサを約 11 個実装することができる.同様に,Xilinx Artix-7 XC7A100T では 15,850 個なので約 26 個,Xilinx Virtex-7XC7VX485Tでは 75,900個なので約 126個実装することができる.slice数が多ければ多いほど大規模な論理回路の実現が可能になるが,論理セルのコンフィギュレーションに要

する時間の増加を伴う.

FPGAの性能をはかるもう一つの指標として,動作周波数が挙げられる.一般的な FPGAの動作周波数は数十~数百 MHz である.Xilinx Virtex-7 のシステムクロックは 200MHzであるが,2015 年に Intel に買収された Altera によれば,Stratix 10 のロジック周波数は1GHz を達成しているとされ [3],今後 FPGA の更なる動作周波数の引き上げが期待できる.

2.3 メニーコアアーキテクチャ

近年ではメニーコアプロセッサが現実的なシステムとして登場している.以下では商用

あるいは研究用として ASIC開発されたメニーコアプロセッサのアーキテクチャについてまとめる.

Page 19: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

2.3 メニーコアアーキテクチャ 5

2.3.1 Intel

Intelが開発したメニーコアプロセッサとして,Teraflops Research Processor (Polaris)[4],Single-chip Cloud Computer (Rock Creek)[5],Many Integrated Core Architecture (MIC)[6]が挙げられる.

Polaris は 80 コアのメニーコアプロセッサで,インターコネクトに 2 次元メッシュのNoC(Network-on-Chip)[7][8] を採用している.NoC に関しては後述する.Polaris は多コアの実装とルータ [9]による高速なメッシュインターコネクトを実証するためのプロトタイプであり,内部構成は浮動小数点を行うため最低限の構成となっている.各ノードは演

算コア,3KB の命令メモリ,2KB のデータメモリ,ルータから成り,演算コアは 2 つの単精度浮動集数点演算器のみを持つ.ルータは仮想 2チャネルのインプットバッファを有する 6段パイプラインルータを採用している.パケットサイズは 3フリットで,1つのパケットにつき 32bitのデータを 1word転送可能である.また,実際の処理性能は 3.16GHz動作時に 1.01Tflops,5.7GHz動作時に 1.81Tflopsを達成している.

Rock Creek は 48 コアのメニーコアプロセッサで,Polaris と同様に 2 次元メッシュのNoCを採用している.Rock Creekはクラウドデータセンターを 1チップで模倣するというコンセプトのもとに開発され,IA-32に準拠したコアで広帯域なコア間通信と低消費電力を達成するためのプロトタイプである.各ノードは 2基のプロセッサコア,2基のプライベート L1命令キャッシュとデータキャッシュ,2基のプライベート L2キャッシュ,1基の MPB(Message Passing Buffer),ルータで構成される.プロセッサコアは単純な機構の Pentium である P54C をベースとするインオーダの 2-way スーパースカラプロセッサで,L1 キャッシュはそれぞれ 16KB,L2 キャッシュは 256KB の 4-way セットアソシアティブキャッシュである.MPB はメモリコヒーレンシ制御に利用されるバッファで,共有メモリシステムである Rock Creekの特徴的な点でもある.Rock Creekでは共有メモリ領域に対するメモリ操作を行うとき,明示的にソフトウェアコヒーレンシ制御のための専

用命令を実行する.キャッシュコントローラはこの命令を通じて与えられたデータに関し

ては L1キャッシュではなくMPBに対して操作を行い,バックグラウンドでルータを通じてMPBの同期が行われる.ノード間通信は最大で 256GB/sの帯域幅を達成している.また,Rock Creekではノードをタイル,4タイルを島,6島をチップと呼び,タイルごとに動作周波数を,島ごとに電圧を制御することにより,全コア動作時でも全体の消費電力を

25∼125Wまで抑えることが可能である.

Page 20: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 2 背景 6

MIC は画像処理分野におけるメニーコアプロセッサ利用を目指した Larrabee[10] のリファインであり,Xeon Phiとして製品化されている.MICアーキテクチャのうちの一つである Knights Cornerは 62コアのメニーコアプロセッサであり,PCI-Expressでホストコンピュータに接続することで,Linuxの動作するメニーコアアクセラレータとして動作する.Knights Cornerは Rock Creekと同様に P54Cをベースとするプロセッサを多数持つが,インターコネクトにはこれまでのものとは異なる双方向リングバスを採用している.各ノー

ドは 1基のプロセッサコア,32KBの L1命令キャッシュとデータキャッシュ,512KBのL2 キャッシュ,ルータで構成される.メモリシステムは分散共有メモリで,タグディレクトリによるハードウェアコヒーレンシ制御が行われており,16 チャネルの GDDR5 メモリを持ちながらも,前述のアーキテクチャよりもキャッシュをより重要視した構成であ

ることがわかる.動作周波数は 1GHz程度で,周波数を抑えながら並列性を抽出する現実的なアプローチとなっている.現在,Intelは MICアーキテクチャの次期プロセッサである Knights Landing の開発を進めている.Knights Corner では一度リングバスが採用されたが,Knights Landingでは再び 2次元メッシュの NoCが採用される.プロセッサコアもP54Cベースのコアではなく,Out-of-Order実行可能な Silvermontベースのコアが採用されるほか,512bitの SIMDユニットが追加され,1ノードあたり 2コアが搭載されることが明らかになっている.

2.3.2 Kalray

Kalray が開発した MPPA-256[11] は 2 次元トーラストポロジの NoC を採用する 256コアのメニーコアプロセッサである.MPPA-256 は大量の VLIW(Very Long InstructionWord)コアでデータレベル並列性を抽出するアクセラレータであり,メニーコアに最適化された独自の言語を利用するのが特徴である.

MPPA-256は内部に 16基の計算クラスタと 4基の I/Oサブシステムを持ち,これらはネットワークで互いに接続されている.計算クラスタは 16 基のプロセッサコア,制御コア,共有メモリ,2基のルータなどを持つ.プロセッサコアは 5-wayの VLIWであり,L1命令キャッシュおよび L1 データキャッシュはそれぞれ 8KB で,2-way セットアソシアティブ方式を採用している.共有メモリは計算クラスタ内で共有される領域で,128KBのバンクが 16並列で計 2MBが利用可能であり,ハードウェアによるキャッシュコヒーレンシ制御はサポートされていない.2基のルータはデータ用と制御用で使い分けられ,ネットワークに物理的な冗長性を持たせることで制御のための帯域を確保している.

Page 21: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

2.3 メニーコアアーキテクチャ 7

2.3.3 Oracle

Oracleの SPARC M7[12]はインターコネクトに多重リングバスを採用する 32コアのメニーコアプロセッサである.リングバスには 8基の SPARCコアクラスタとメモリ管理ユニットが接続され,SPARCコアクラスタにはプロセッサコアから L3キャッシュまでが搭載される.M7の特徴的な点はクラスタ内のキャッシュ構成であり,キャッシュが高次になればなるほど多数のコアに共有される階層構造を形成している.

SPARC コアクラスタは 4 基の SPARC S4 コアを持ち,このコアは 8-way のマルチスレッディングやアウトオブオーダ実行をサポートする.L1 命令キャッシュおよびデータキャッシュは各コアのプライベートキャッシュとして用意される.256KB の L2 命令キャッシュはクラスタに 1 基存在し,4 コアによって共有される.256KB の L2 データキャッシュはクラスタに 2基存在し,それぞれ 2コアによって共有される.L2キャッシュ階層まで命令とデータは分離されており,格納方式は 8-wayセットアソシアティブ方式である.また,L3キャッシュはクラスタあたり 8MBの 8-wayセットアソシアティブキャッシュであるが,全体で合計 64MBの共有キャッシュとなる.

M7 はこれらのキャッシュをチップ上に効率よく配置することで,1TB/sec という高いキャッシュアクセス帯域幅を確保している.また,プロセッサコアの 1スレッドあたりのキャッシュ容量を計算すると,L2命令キャッシュは 8KB,L2データキャッシュは 16KB,L3 キャッシュは 256KB となり,命令とデータの容量比も考慮した構成であることがわかる.

2.3.4 Tilera

Tilera の TILE64[13] は 2 次元メッシュの NoC を採用する 64 コアのメニーコアプロセッサである.クラスタシステムであるMPPA-256やM7とくらべて TILE64のノードはシンプルな構成であり,1 つのノードに 1 基のプロセッサコアと L1 命令キャッシュおよびデータキャッシュ,L2 キャッシュ,5 基のルータが搭載される.プロセッサエンジンは MIPSアーキテクチャをベースとするインオーダの VLIWで,独自の言語を利用する.L1命令キャッシュおよびデータキャッシュはそれぞれ 8KBで,L2キャッシュは 64KBの2-wayセットアソシアティブ方式である.L2キャッシュはノード間協調により L3キャッシュとしても機能する.メッシュネットワークは 5重の接続網で,うち 2本はメモリアクセス,3本はプロセッサ間通信に使われ,240GB/sの帯域を確保している.

Page 22: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 2 背景 8

TILE64の特徴的な点は個々のノードで Linuxを動作させることが可能であるという点と,ノード間で協調動作を行いながらユニファイドキャッシュを構成したり,複数ノード

がクラスタを形成してアプリケーションを実行する点である.クラスタ形成中はアプリ

ケーション網をブロックし,他のアプリケーションとの衝突を避ける保護機能も準備され

ている.

これまでのアーキテクチャ傾向より,多数のコアが接続されるメニーコアプロセッサに

おいては,インターコネクトには配線領域の削減を重視する場合はリングバス,パフォー

マンススケーラビリティを重視する場合は NoCが適していることがわかる.また,メニーコアプロセッサがデータレベルの並列性を抽出するようなケースで恩恵を受けやすいこと

を考慮すると,L1キャッシュと L2キャッシュはいずれもプライベートで用意するのが効果的であることがわかる.Intelの場合,この容量比は 1:16であった.

2.4 関連研究とそのアーキテクチャ

これまでにメニーコアプロセッサのシミュレーションに関する研究は数多く行われてお

り,中には FPGAを用いたメニーコアプロセッサの研究基盤もいくつか存在する.PROTOFLEX[14] は FPGA とソフトウェアの両方を用いたハイブリッドシミュレータで,Virtex-2を 5基搭載する BEE2(Berkeley Emulation Engine 2)[15]または Virtex-5を 1基搭載する XUPV5-LX110Tを利用し,共有メモリの 16コアプロセッサのシミュレーションを行うことができる.RAMP Blue[16]は FPGA上で動作する分散メモリの 12コアプロセッサのエミュレータであり,PROTOFLEX でも使われた BEE2 を利用して uClinux を動作させることができる.RAMP Gold[17]は RAMP Blueと同じく RAMPプロジェクトの一つで,FPGAとホストコンピュータを接続することによりフルシステムのシミュレーションを行う.RAMP Gold では Virtex-5 を 1 基搭載するボードで共有メモリの 64 コアプロセッサのシミュレーションが可能である.

Heracles[18][19]は FPGAで動作するマルチコアプロセッサで,Virtex-5を 1基搭載するLX330Tに共有メモリの 16コアプロセッサを実装することができる.HeraclesではMIPSアーキテクチャに準ずるコアの仕様や共有メモリシステム,トポロジやルータなどのパラ

メータを用意されたものの中から組み合わせて構成することができ,様々な FPGAに対応する.HAsim[20]は FPGA上で時分割シミュレーションを行うシミュレータで,Heraclesと同様に Virtex-5を 1基搭載する LX330Tを利用し,共有メモリの 16コアプロセッサのシミュレーションを行うことが可能である.ScalableCore System[21] は複数 FPGA を利用したタイル型アーキテクチャのプロトタイピングシステムで,Spartan-3Eを搭載する小規模な FPGA ボードを多数接続することで 100 コアを超える多コアプロセッサのシミュレーションが行える.

Page 23: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

2.4 関連研究とそのアーキテクチャ 9

これまでに取り上げた研究基盤の多くはシミュレータであり,規定された構成でのシ

ミュレーションを行うデザインである.しかし FPGAで動作するメニーコアプロセッサを設計する以上,研究要素を適用できるだけの余地が残されていることが望ましい.また,

シミュレーション制御のための回路は FPGA のリソースを消費するので,よりアクセラレータに近い構成のデザインが要求される.

Heraclesはその要求に最も近い研究であるが,ハードウェア記述のコード量は 15,000行近く,パラメータも限定的であるために研究要素を適用できる自由度が低い.また,メモ

リシステムはメニーコアプロセッサにとって重要な要素であるが,キャッシュを含むメモ

リシステムが低機能であるという欠点がある.本論文では,これらの関連研究を踏まえて

設計を行う.

Page 24: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 25: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

11

第 3章

設計

3.1 設計指針

2章で述べたメニーコアプロセッサのアーキテクチャを踏まえ,メニーコアプロセッサのアーキテクチャ研究に適した研究基盤の設計を行う.アーキテクチャ研究においてはサ

イクルレベルでの挙動の再現できることが望ましいが,ソフトウェアシミュレーションで

そのような細粒度のシミュレーションを行う場合,大量の計算資源を必要とするため現実

的ではない.電気的な実現性を検証する要求に応えるという意味でも,論理回路レベルで

設計を行い,ハードウェアで実装することが求められる.

ハードウェア実装には ASICと FPGAの選択肢があり,ASICは大量生産における一般的な回路実現法として知られている.FPGAは ASICに比べて動作周波数が低く,回路面積あたりの性能を出しにくいという欠点がある一方で,時間的・経済的コストを抑えなが

ら導入でき,コンフィギュレーションにより再構成が可能という利点もある.メニーコア

研究において研究要素を繰り返し適用するといったユースケースを考慮すると,FPGAはメニーコアプロセッサのアーキテクチャ研究に適したデバイスであると言える.

2章で述べたように,これまでに FPGAを用いたメニーコアプロセッサや,そのシミュレーション環境がいくつか提案されてきたが,これらがメニーコアプロセッサのアーキテ

クチャ研究に十分適しているとは言い難い.なぜなら,これらはアーキテクチャ研究を行

う上で必要なフレキシビリティが欠如しているからである.以下に要件として満たすべき

フレキシビリティと,それに基づく設計指針を示す.

Page 26: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 12

一つは,アーキテクチャ的なフレキシビリティである.ユーザが研究要素をメニーコア

プロセッサに適用しようとしても,既存のデザインに変更の余地がなければ研究基盤とし

て利用することができない.本研究では,プロセッサやキャッシュ,メモリコントローラ

などの機能ユニット一つ一つをノードとして設計し,これらを組み合わせたヘテロジニア

ス構成のメニーコアプロセッサとすることで,必要な機能の取捨選択と研究要素の適用を

簡単に行えるようにする.

もう一つは,ハードウェア的なフレキシビリティである.FPGA や FPGA ボードには様々なモデルが存在し,その性能や価格はまちまちである.メニーコアプロセッサの研究

で利用されるような大規模 FPGAの価格は 1000ドルを超えるものが大半であり,ASICより安価に導入できるとは言え,その導入コストは安くはない.研究基盤として広く使われ

るためには,安価な FPGAを含むより多くのハードウェア上で動作することが望ましい.本研究では,前述のノードを組み替えることで,ハードウェアリソースに応じたメニーコ

ア (マルチコア)プロセッサが構成できるよう設計する.これにより,今後さらに大規模なFPGAが登場した場合でもアーキテクチャを大幅に変更することなく対応することが可能となる.また,Off-chip DRAMなどのボード依存ハードウェアの利用を前提としたデザインは移植性が低いため,プロセッサ部と切り離して設計を行う.

最後の一つは,実装的なフレキシビリティである.適用先のコード行数が膨大であれば

あるほど,ユーザは高い学習コストを支払わなければならない.特にフルシステムやソフ

トウェア協調のハイブリッドシステムなど,ユーザビリティ向上のための機構が複雑にな

ればなるほど,研究要素の適用は難しくなる.本研究では,FPGAというハードウェア上で完結したシステムとしてメニーコアプロセッサの設計を行う.また,コードをいたずら

に複雑にするような先進的な機能は付けず,シンプルな仕様と少ないコード行数を心が

ける.

3.2 設計制約

本研究では実際に多くのコアを動作させるため,大規模 FPGA を対象にメニーコアプロセッサを構成する.実装においては大規模 FPGA である Xilinx Virtex-7 を搭載するVC707評価ボードを用いる.

VC707はメモリリソースとして,FPGAの内部メモリである BRAMと外部メモリである Off-chip DRAMを 1チャネル有する.BRAMは DRAMに比べてアクセス速度や移植性の点で優れるが,容量の点で大きく劣る.移植性を高く設計するという指針から,デ

フォルトではメインメモリのリソースは BRAM を利用するようになっているが,より現実的なプロセッサの動作を再現できるよう,DRAMを利用するデザインもサポートしている.本論文では DRAMをメインメモリリソースとして利用するが,FPGA内の IOBの物

Page 27: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.3 動作モデル 13

(Program)

(Execution Results)

Host Computer VC707 Evaluation Board

Terminal Emulator

USB Cable

図 3.1 メニーコアプロセッサの動作モデル

理的位置を考慮し,メモリアクセスを行うノードを FPGAの外縁部に配置・配線されるよう構成を行う.

提案するメニーコアプロセッサはシンプルに設計するという指針から OS の動作をサポートしておらず,メモリ操作や実行制御は専用のコントローラや制御用のコアが行う.

単一ボード上での動作となるため,メニーコアプロセッサのメモリシステムは共有メモ

リ型だが,各コアが直接参照可能なメモリ領域は論理的に独立しており,実行するアプリ

ケーションをコアごとに用意する必要がある.

3.3 動作モデル

図 3.1にメニーコアプロセッサの動作モデルを示す.ホストコンピュータと FPGAボードを USBケーブルで接続し,FPGAのコンフィギュレーションを行う.TeraTermなどの端末エミュレータを利用し,ホストコンピュータ側から USB を通じてアプリケーションを FPGAボードのメモリに格納する.アプリケーションの転送が終了すると,プロセッサによるアプリケーションの実行が開始される.プロセッサはアプリケーションに応じてホ

ストコンピュータに対して文字の出力を行うことができ,出力内容は端末エミュレータに

表示される.

Page 28: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 14

R

R

R

R

FU

FUFU

FU

Node

図 3.2 2次元メッシュトポロジの Network-on-Chip

3.4 アーキテクチャ

3.4.1 インターコネクト

インターコネクトはプロセッサの性能を決める上で重要な要素である.従来のインター

コネクトであるバスはデバイス間で信号線を共有する方式であり,デバイスであるところ

のプロセッサコア数が増加したときにリクエストの衝突が頻発し,十分な性能的スケーラ

ビリティが得られない [9]という問題がある.一方,NoCはルータベースのパケットネットワークであり,通信に一定のレイテンシを要する反面,スケーラビリティが維持しやす

いという利点がある.NoCのトポロジは 2次元メッシュだけではなく,3次元にわたるものやトーラス形状のものなどが存在するが,配線領域がプロセッサの回路面積に大きく影

響を与えることもあり,2次元メッシュのトポロジを指すことが多い [8].2章で述べたメニーコアプロセッサの多くも 2 次元メッシュの NoC を採用していることや,ノードにフレキシビリティを持たせる設計指針から,インターコネクトにはこれを採用する.

図 3.2 に 2 次元メッシュトポロジの NoC の概略図を示す.図中の FU は FunctionalUnit,Rは Routerを表す.ノードはプロセッサやキャッシュといった機能ユニットとルータの組で構成される.

Page 29: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 15

Pair

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

0 1 2 3 4 5

6 7 8 9 10 11

12 13 14 15 16 17

18 19 2120 22 23

24 25 26 27 28 29

30 31 32 33 34 35

図 3.3 36ノード構成のメニーコアプロセッサのインターコネクト

このインターコネクトを用い,プロセッサやキャッシュなどをノードとして配置する.

図 3.3に 36ノード構成のメニーコアプロセッサのインターコネクトを示す.数字が付された円はノードを,実線はノード間の物理配線を表す.P,C,M,S,F はノード内の機能ユニットの種別を意味する.

Pと Cはプロセッサとキャッシュを表し,プロセッサとキャッシュは 1対 1の関係をとり,本論文ではこの関係をペアと呼称する.デフォルトでは図 3.3の色掛けされた領域内のノードがペアであり,ペアは 16 組存在する.つまり,全体としてプライベートキャッシュを持つ 16コアプロセッサを構成している.Mはメモリコントローラを表し,メモリリソースへのアクセス権を持つ.Sはスケジューラを表し,ペアを構成するプロセッサの動作を一括して管理している.Fはフリーの意味であり,機能ユニットが何も接続されていないことを示す.

図 3.3は VC707をターゲットとした構成であるが,ユーザは必要に応じてノードの数や配置,ペア関係にあるノードの位置を変更することができる.

Page 30: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 16

Processor Core

DMA Controller

Router

2KB I-Cache

2KB D-Cache

2KB Local Buffer

2KB Receive Buffer

L1 Cache Controller Buffer Controller

図 3.4 プロセッサノードの内部構成

3.4.2 ノード

3.4.2.1 プロセッサノード

プロセッサノードは機能ユニットとしてプロセッサコアを持ち,アプリケーションの実

行を行うノードである.図 3.4にプロセッサノードの内部構成を示す.プロセッサノードは主にプロセッサコア,L1命令キャッシュおよびデータキャッシュ,ローカルバッファ,受信バッファ,ルータで構成され,DMAコントローラ,L1キャッシュコントローラ,バッファコントローラがこれらの間で調停を行っている.

図 3.5にプロセッサコアのデータパスを示す.プロセッサコアは MIPSアーキテクチャに基づく 32bitデータパスのパイプラインプロセッサ [1][2]であり,パイプラインステージは Instruction Fetch(IF), Instruction Decode(ID), Executon(EX), Memory Access(MA), WriteBack(WB) の 5 段からなる.プロセッサコアの命令セットは MIPS アーキテクチャの主要な命令のサブセットであり,Load Double Word, Store Double Wordを除く整数命令と,ゼロ比較に関する疑似命令をサポートしている.プロセッサコアは内部に乗算器を持ち,

FPGA側に用意されている乗加算回路である DSPにうまく割り当てることができれば,1サイクルで整数の乗算が可能である.一方,浮動小数点演算ユニットは持たないため,小

数演算を行いたい場合はソフトウェアフロートなどで代替する必要がある.

Page 31: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 17

decoder

dst

opn/attr

dst

rslt

rt

rs

branch

C

ir

tpc

Mux

operand gen

+

Mux

+4

imempc

C

Mux

Mux

operand gen

hi

lo

Mux

extend

dmem

IO_IN Mux

align/extend

Mux

IF/ID ID/EX EX/MA MA/WB

IF Stage ID Stage EX Stage MA Stage WB Stage

GPR

ALU

図 3.5 MIPSアーキテクチャの 5段パイプラインプロセッサ

L1キャッシュは命令・データそれぞれ 2KBで,格納方式は 2-wayセットアソシアティブ方式,ブロックサイズは 8-wordのライトバックキャッシュである.プロセッサノードはL1キャッシュのほか,バッファコントローラを通じてアクセスできる 2種類のバッファを持つ.ローカルバッファはプロセッサコアが自由にアクセスできる領域で,1サイクルでデータの読み書きが可能である.受信バッファは他のノードから受信したメッセージを格

納しておく領域で,メッセージ受信時に自動的に更新される.自ノードのプロセッサコア

からはメモリマップを通じたアクセスが可能であるが,読み取り専用となっている.

DMA コントローラはメモリマップ機能の提供とパケットの管理を行っている.L1キャッシュがミスしたとき,DMAコントローラはプロセッサコアに対してストール信号を出力する.DMA コントローラは L1 キャッシュコントローラからアドレス情報などを受け取り,キャッシュライン要求のパケットを生成しながら順次ルータに入力していく.

DMA コントローラがキャッシュラインを受け取り,L1 キャッシュに対する操作が終了すると,ストール信号が解除される.プロセッサコアのプログラムカウンタやプライベー

トキャッシュのキャッシュノードの位置などは動作開始前に制御プロセッサであるスケ

ジューラノードによって与えられ,DMAコントローラ内のレジスタに格納される.

Page 32: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 18

DMA Controller

Router

32KB Cache

L2 Cache Controller

図 3.6 キャッシュノードの内部構成

3.4.2.2 キャッシュノード

キャッシュノードは機能ユニットとしてキャッシュを持ち,プロセッサコアのプライ

ベート L2 キャッシュとして機能するノードである.図 3.6 にキャッシュノードの内部構成を示す.キャッシュノードはキャッシュ,L2 キャッシュコントローラ,DMA コントローラ,ルータで構成される.

キャッシュはユニファイドキャッシュで,その容量比は L1に対して 1:16 になるよう,32KB となっている.格納方式は 4-way セットアソシアティブ方式で,ブロックサイズは L1 と同様の 8word,または DRAM のアクセス幅に合わせた 16word が選択できる.キャッシュノード自身にペアを識別する機能はなく,DMAコントローラはキャッシュアクセスと高次の (メモリ)ノードに対する取り次ぎを行う.

Intel の Rock Creek などはノード内に 2 つのプロセッサコアとプライベート L1/L2キャッシュを持つが,本研究では機能ブロックに関する設計指針からキャッシュを別の

ノードとして切り離している.このように設計することで,キャッシュノードはほぼコー

ドを変更することなく L3キャッシュとして構成することなどが可能になるほか,キャッシュに対する研究要素の適用のしやすさを確保している.

Page 33: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 19

DMA Controller

Router

DRAM Controller

To / From DRAM

図 3.7 メモリノードの内部構成

3.4.2.3 メモリノード

キャッシュノードは機能ユニットとしてメモリコントローラを持ち,プロセッサとメ

インメモリリソースの仲介を行うノードである.図 3.7 にメインメモリリソースとしてDRAMを利用した場合のメモリノードの内部構成を示す.メモリノードは DRAMコントローラ (メモリコントローラに相当),DMAコントローラ,ルータで構成される.メモリコントローラはプロセッサ外のメインメモリリソースとの接続部であり,BRAMと DRAMを切り替えることができる.メモリノードはメモリチャネルごとに接続できるので,複数のメモリチャネルを持つ FPGA ボードを利用する場合,複数のメモリノードによる分散メモリシステムを構成することが可能である.また,メモリチャネルが 1チャネルであっても,柔軟性の高い BRAMを利用すれば同様の分散メモリシステムが構成できる.

設計制約で述べたように,本論文ではよ現実的な計算機に近い構成を再現するため,

VC707上の 1チャネルの Off-chip DRAMのみを利用し,単一メモリによる共有メモリシステムを構成する.

Page 34: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 20

Processor Core

DMA Controller

Router

64KB I-MEM

64KB D-MEM

2KB Local Buffer

2KB Receive Buffer

RAM Controller Buffer Controller

図 3.8 スケジューラノードの内部構成

3.4.2.4 スケジューラノード

スケジューラノードは機能ユニットとして制御プロセッサコアを持ち,他のプロセッサ

コアのアプリケーション実行を管理するノードである.図 3.8にスケジューラノードの内部構成を示す.スケジューラノードの構成はプロセッサノードの構成と似ており,主にプ

ロセッサコア,命令メモリおよびデータメモリ,2 種類のバッファ,ルータで構成され,DMAコントローラ,RAMコントローラ,バッファコントローラがこれらの調停を行う.プロセッサコア,DMAコントローラおよびバッファコントローラはプロセッサノードのものと同等である.スケジューラノードとプロセッサノードの違いはメモリシステムで,

スケジューラノードは L1キャッシュではなく 64KBの命令メモリとデータメモリを持つ.プロセッサ管理のためのプログラムはこのメモリに直接格納され,メモリノードへのアク

セスを必要としない.

プロセッサの動作開始時,制御コアは他のプロセッサコアに先立って制御プログラムの

実行を開始する.制御コアは制御プログラムに従い,パケット送信によって各プロセッサ

コアに対して幾つかの IDを割り当てる.IDにはプログラムカウンタの初期値 (オフセット) やプロセッサ ID,ペアとなるキャッシュノードの物理的位置などが含まれる.ID の割り当てが完了すると,プロセッサコアは割り当てられたアプリケーションの実行を開始

する.

Page 35: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 21

XBAR SwitchInput Buffers

Credits

Input 1

Input 5

Credits

Output 1

Output 5

VC 0

VC 1

VC 2

VC 3

.

.

.

.

.

.

.

.

.

RouteComputation

Virtual Channel Allocator

Switch Allocator

図 3.9 ルータアーキテクチャ

3.4.3 ネットワーク

3.4.3.1 ルータ

各ノードに配置されるルータは,パケットネットワークを形成する上で必要不可欠な

モジュールである.図 3.9 にルータのアーキテクチャを示す.ルータには仮想チャネル(Virtual Channel, VC)を備える一般的なインプットバッファルータを採用しており,パイプラインステージは Routing Computation, Virtual Channel Allocation, Switch Allocation,Switch Traversal の 4 段である.ポートは上下左右方向の 4 ポートと機能ユニット方向の計 5ポートを備え,インプットバッファの仮想チャネルは 4本,FIFOの深度は 4である.ノード間通信を行うとき,パケットは少なくとも 2個以上のルータを経由して宛先ノードに到達する.経路上のルータの入力バッファに空きがないとき,パケットは目的地に向

かって進むことができず,経路上のバッファに留まり続ける.このパケットの転送が処理

されるまで,他のいかなるパケットもこの経路を利用することができず,パケット間に依

存関係が生じている.単一の依存関係であれば処理待ちにより依存関係は解消されるが,

循環構造の依存関係が生じてしまうと,デッドロックとなってしまう.XY 次元順ルーティング [9]はターン方向を制限することでデッドロックを避けることができ,ルータのルーティングアルゴリズムにはこれを採用している.

Page 36: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 22

Processor Node #0

Processor Node #1 Cache Node

Processor Node #15

VC0

VC3Cache Node

Scheduler Node

VC3

VC2

VC3

VC3

VC0

VC3

Cache Node

Memory Node

VC0

VC3

VC1

VC3

……

……

図 3.10 パケットフローと仮想チャネルの対応関係

また,デッドロックはターン以外の原因によっても発生する可能性があるため,仮想チャ

ネルを使い分け,依存関係を分離することでデッドロックの発生を防いでいる.図 3.10にノード間通信のパケットフローと割り当てた仮想チャネルの対応関係を示す.

VC0はプロセッサノードがキャッシュノードに対して送信するキャッシュライン要求パケットに割り当てられるチャネルである.キャッシュノードの DMAコントローラは同時に 1つのキャッシュライン要求しか処理することができず,その処理を完了するまでは他のパケットの受信を拒む.そのため,プロセッサノードがキャッシュライン要求を連続し

て行った場合や,複数のプロセッサによる共有キャッシュノードを構成した場合に処理待

ちが発生する.このとき,応答パケットに同一のチャネルを利用すると循環依存が生じる

ため,チャネルを分離している.

VC1 はキャッシュノードがメモリノードに対して送信するパケットに割り当てられるチャネルである.キャッシュノードと同様,メモリノードの DMAコントローラは並列してパケットを処理できず,複数のキャッシュノードから要求を受けると処理待ちが発生す

る.ここでも応答パケットとチャネルを分離することでデッドロックを防いでいる.

VC2はプロセッサノードがスケジューラノードに対して送信するパケットに割り当てられるチャネルである.スケジューラノードにはパケットが集中するため処理待ちは発生す

るが,それに対する応答は必須ではない.しかし,ユーザが複雑な制御を行おうとすると

循環依存が生じる可能性があり,また制御に関するパケットはプロセッサ全体の動作に関

係している事からも,チャネルを分離した.

VC3は全てのノード間で行われる通信の応答パケットや,応答の必要ないメッセージパケットに割り当てられるチャネルである.このような通信はパケットの受信をもって依存

関係が解消されるため,このチャネル内で循環依存は生じない.

Page 37: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 23

� � � �� ��� ��� ����

� � � �� ������������ ����� ������������ �����

� � � �� ���� ����

P-format

C-format

D-format

37 36 35 34 32 31 16 15 0

37 36 35 34 32 31 27 26 0

37 36 35 34 32 31 0

header payload

図 3.11 フリット形式

3.4.3.2 フリット

ノード間通信で用いられるパケットは複数のフリットから構成され,フリットは 38bitである.インターコネクトは 38bitのパラレル信号線で配線され,サイクル毎にフリットを転送することができる.図 3.11にフリット形式を示す.フリット形式には P-format/C-format/D-formatが存在し,これらを組み合わせてパケットを構成する.各形式において,上位 6bit のヘッダにはルータの動作に必要な情報が格納され,有効ビット (V),先頭ビット (H),後尾ビット (T),仮想チャネル (VC)から構成される.上位3bitはフリットが有効であるとき,パケットの先頭であるとき,パケットの後尾であるときにアサートされる.仮想チャネルはパケットが利用するチャネルを指定するものであり,

通信に関する拡張を見越して 3bit(8チャネル分)を確保した.P-format はノード固有の物理的位置を示す形式であり,これはルータがルーティングを行う上で必要な情報でもある.2 次元メッシュネットワークにおける位置は 2 次元座標で表現し,最北西 (左上)のノードを原点 (0,0),行方向を X軸,列方向を Y軸とする.P-formatには 16bitの X座標と 16bitの Y座標から構成され,232 ノードまで扱うことが

できる.

C-formatは 5bitのコマンドと 27bitのデータから構成され,パケット要求を示すとともに,制御に必要な情報があれば 27bitの制限内で利用できる.コマンドはキャッシュラインのフェッチやライトバックに関する要求や応答,制御コアによる制御の要求,プロセッ

サ間通信におけるデータ転送の要求などを区別するのに用いられる.32bitアドレスは 2bitのワードオフセットと 3bitのキャッシュラインオフセットを除いた 27bitアドレスに省略でき,キャッシュラインに関する要求であれば C-formatのフリットに収まる.

Page 38: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 24

����������� ����� ����������

�������������� ����� ����������

������������� ����� �����������

(a) control packet (b) data packet

��������������� ��� �������������������

head

tail

��������������� ��� �������������������

head

tail

body

��������������� ����� ����������

��������������� ����� ����������

��������������� ����� �����������

��������������� ����� ���������� ���

���������������������� ���������� ���

���������������������� ���������� ���

body

図 3.12 パケット形式

D-format は 32bit のデータから構成され,純粋なペイロードフリットとして機能する.例えば,フェッチしたキャッシュラインや制御情報,プロセッサ間通信で転送したいデー

タなどがペイロードに格納される.パケット長はヘッダの先頭ビットおよび後尾ビットに

よって決まるので,任意長のデータ列を扱うことができる.

3.4.3.3 パケット

図 3.12にパケット形式を示す.パケットは前述のフリットの組み合わせたものであり,ヘッダの制御ビットによって head,body,tailフリットが決定する.パケットの制約として,ルータの仕様からパケットの先頭はパケットの宛先を示す P-formatのフリットでなければならず,DMAコントローラの仕様から先頭から 2番目のフリットはパケットの送信元を示す P-format,3番目のフリットはパケットの要求を示す C-formatのパケットでなければならない.

図 3.12(a)control packetはパケット長が最も短い形式であり,D-formatのフリットを持たない.control packetは単純な処理の要求や応答に用いられるほか,キャッシュライン要求なども control packetによって行うことができる.図 3.12(b)data packetは可変長のパケット形式であり,control packetの内容に加え,任意長のデータ列が含まれている.データ列の長さには制約はないが,ノード DMAコントローラでは 1word,8word,16word転送のパケットを利用している.例えば,プロセッサ間通信や制御コアによる IDの割り当てでは 1wordまたは 8word転送を利用しており,メモリによるキャッシュラインの転送は 8wordまたは 16word転送を利用している.

Page 39: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.4 アーキテクチャ 25

���� �����

����

����� ��

������ �

������

���

FIFO

UART_TXRX

TX

1 32

8

8

1

8

88

UART_RX

図 3.13 UARTインターフェースの内部構成

3.4.4 インターフェース

3.4.4.1 UART設計したメニーコアプロセッサはホストコンピュータと通信を行うための I/O インターフェースとして,シリアル・インターフェースである UART を利用する.VC707 はOff-chipデバイスである USB-UARTブリッジチップを備えており,これと USBケーブルを利用することで,UART通信が可能である.図 3.13に UARTインターフェースの内部構成を示す.

図 3.13 の UART_RX は受信のためのモジュールで,RX ポートに入力されたシリアルデータをリトルエンディアンで 32bitに変換する.ホストコンピュータから転送されるアプリケーションのバイナリをメモリノードやスケジューラノードの RAMに格納する役割を持つ.

図 3.13の UART_TXは送信のためのモジュールで,8bitデータである ASCIIコードをRS-232Cプロトコルで TXポートから出力する.プロセッサコアや制御コアの出力するテキストを整列化し,ホストコンピュータに転送する役割を持つ.UART通信のボーレートはプロセッサの処理に比べて低速であるため,出力テキストが衝突しないよう,各ポート

に 1024バイトの FIFOが配置される.マルチプレクサは FIFOの中身を固定優先度で選択する.複数のコアが同時にテキストを出力しようとするとテキストが混在してしまう可能

性があるので,その場合はアプリケーション側で同期を行う必要がある.

Page 40: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 26

3.4.4.2 Off-chip DRAMDRAM は半導体メモリの一種で,揮発性でメモリセルの集積度が高いという特徴がある.近年の計算機の多くはメインメモリに DRAMを利用しており,これまでに様々な種類の DRAMが開発されてきた.DDR-SDRAMはそのメインストリームで,クロック同期して動作する SDRAMに,分周による内部コントローラの高速動作と,連続したアドレスの複数データを参照するバーストアクセスを組み合わせることにより高い帯域幅を実現し

ている.DDR3-SDRAMはその後継規格で,8倍の内部クロックで 8バーストアクセスを行うよう定められている.

VC707 は小規模規格である SODIMM スロットを備え,DDR3-SDRAM を Off-chipDRAM として利用することができる.この規格は一般的なノートパソコンなどに広く採用される規格であり,市販の同規格モジュールと交換することができる.

Xilinxが提供する Memory Interface Generatorは,DRAM物理制御のための IPコアを生成するツールであり,これを利用することで比較的容易に Off-chip DRAM を使用することができる.ハードウェア環境ごとに IPコアを生成するのが一般的であるが,導入コストを削減するために既に生成済みのコードを組み込んでいる.メモリモジュールの変更を

行った場合は,このコード内の制御パラメータもメモリモジュールに合わせて変更する必

要がある.

VC707で利用できる DDR3-SDRAM-SODIMMは 64bitのデータ幅であり,8バーストアクセスを行うのでメモリアクセス幅は 512bitと計算できる.これは L2キャッシュのブロックサイズと同じであり,1回のメモリアクセスで 1エントリのキャッシュラインを処理することができる.

3.5 プログラミングモデル

3.5.1 メモリマップ

設計したプロセッサでは,プロセッサコアに MIPSアーキテクチャを採用しており,C言語などで記述されたアプリケーションを設計したメニーコアプロセッサで実行するため

には,MIPSクロスコンパイラを用いて MIPSマイクロプロセッサが解釈できる命令列に変換する必要がある.メモリ空間は論理的に分割されており,プロセッサコアは制御コア

が割り当てたメモリ領域しか参照することができないため,少なくともコア数と同じ数だ

けのメモリ領域が必要である.本論文では 16コアプロセッサを構成しているため,メモリ空間を 16等分し,16の領域を用意した.プロセッサノードの DMAコントローラは論理アドレスに領域オフセットを加算することでアドレス変換を行っている.

Page 41: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.5 プログラミングモデル 27

���

����

���� ����������

������

����

���

�����������

�����������

�����������

�������� �� ���

!����� ""��

�����#��� ""��

�����������

�����������

��$��������

�����������

��������%��

��$�����%�������������

図 3.14 論理アドレスメモリマップ

表 3.1 I/Oのメモリマップ

address r/w bit width attribute function

0x8000_0000 read 32 value cycle counter

0x8000_0000 write 8 control output text data

0x8000_0004 write any control finalize program

0x8000_0010 read 32 value processor node location

0x8000_0014 read 32 value cache node location

0x8000_0018 read 32 value memory space offset

0x8000_001C read 32 value processor ID

0x8000_0030 write 32 message set destination node

0x8000_0034 write 32 message set destination address

0x8000_0038 write 32 message set payload and send packet

0x8000_0040 - 0x8000_005C write 32 message set payload and send burst packet

0xA000_0000 - 0xA000_07FF any 32 RAM access local buffer

0xC000_0000 - 0xC000_07FF read 32 RAM access receive buffer

図 3.14に論理アドレスメモリマップを示す.0x0000_0000 - 0x7FFF_FFFFは RAMアクセスのためのアドレスで,アドレス変換の対象となる.RAM の容量は領域の分割方法によって変化するが,論理アドレスの制約から最大容量は 2GBである.また,RAMの先頭 64KBにはホストコンピュータから転送されたアプリケーションのバイナリが格納される.0x8000_0000 - 0xFFFF_FFFFはメモリマップド I/Oアクセスのためのアドレスで,アドレス変換は行われない.

Page 42: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 28

表 3.1にメモリマップされたの I/O機能を示す.系列は対象となるアドレス,アドレスに対する操作,有効なビット幅,機能の属性,機能の内容をそれぞれ表している.

メッセージパッシングによるデータ転送を行うとき,マップされたアドレスに対して

宛先のノード,宛先のアドレスの書き込みを行う.アドレス 0x8000_0038 およびアドレス 0x8000_005cはそれぞれ 1word転送,8word転送パケットの送信トリガとなっており,8word 転送を行う場合は事前にアドレス 0x8000_0040 - 0x8000_0058 に対し,7word のペイロードの書き込む必要がある.また,メッセージパッシングにおける書き込み内容は

DMAコントローラ内のレジスタの内容は保持され,再利用が可能である.

3.5.2 制御コア

コード 3.1 制御コアの擬似コード

1 #include "./lib.c"2 #define NUM_CORE 163 #define MEM_OFFSET 0x400000004

5 int main(void){6 int i, j;7

8 for(i=0; i<NUM_CORE; i++){9 assign_core(p_loc(i), // table of processor location10 c_loc(i), // table of cache location11 i*MEM_OFFSET , // memory offset for address translation12 i); // processor ID13 }14

15 while(1);16 return 0;17 }

コード 3.1に制御コアの実行する擬似コードを示す.このコードは,1GBごとに分割されたメモリ領域を 16 個のプロセッサコアに対して 1 回ずつ割り当てを行うものである.9-12行目で実行される assign_core関数は,プロセッサノードの位置,キャッシュノードの位置,メモリオフセット,プロセッサ IDを引数にとり,割り当てパケットを送信する.9-10行目の p_loc関数および c_loc関数は,プロセッサやキャッシュの位置が記録されたテーブルを参照し,引数で与えられたインデックスに対応する XY座標を返す.11行目では参照を許可するメモリ領域へのオフセットを与え,12行目では論理番号としてプロセッサ IDを与えている.プロセッサノードの DMAコントローラは,これらの情報が含まれる割当パケットを受信すると,コントローラの持つ制御レジスタにこれらの情報を格納する.これらの処理に

よって,割り当てられたメモリ領域からの命令フェッチが可能となり,プロセッサコアは

アプリケーションの実行を開始することができる.

Page 43: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

3.5 プログラミングモデル 29

3.5.3 並列アプリケーション

並列プログラミングでは,一つのタスクを複数のプロセッサが並列処理することにより

スループットが向上する.多くの場合,それらのプロセッサは同一のプログラムを実行し,

プログラム中の条件文によって処理系列を制御する SPMD(Single Program Multiple Data)型のプログラミングモデルが採用されている.

SPMD の並列化アプローチは大別して 2 種類存在し,メモリアーキテクチャによって使い分けるのが一般的である.共有メモリアーキテクチャにおける並列化アプローチには

OpenMPなどが挙げられ,スレッド間でメモリ領域を共有し,複数のスレッドが同一データに対して処理を行う方法である.このアプローチではスレッド単位での処理となるため

に実行コストが低いという利点があるが,データのコヒーレンシ制御やメモリボトルネッ

クによるスループットが低下してしまうといった欠点がある.

一方,分散メモリアーキテクチャにおける並列化アプローチには MPIなどが挙げられ,各プロセッサが独立したメモリ領域を持ち,スレッド同士がメッセージパッシングによる

通信を行いながら処理を行う.このアプローチでは並列化コストが高い反面,多コア実行

時の性能スケーラビリティが高いという利点がある.

設計したメニーコアプロセッサでは論理的に共有メモリ空間を持たず,メインメモリを

介したデータ共有を行うことができないが,プロセッサ間ではメッセージパッシングによ

るデータ共有が可能である.この動作は分散メモリアーキテクチャに近く,プログラムに

はMPIを意識した SPMD型のプログラミングモデルを採用する.

コード 3.2 並列アプリケーションの擬似コード

1 #include "./lib.c"2 #define NUM_CORE 163

4 int main(void){5 int id = get_pid();6 int n = NUM_CORE;7 int ans, rx, i;8

9 ans = do_part(id, n);10 if(id){11 mp_send(0, id, ans);12 global_barrier();13 }14 else{15 global_barrier();16 for(i=1; i<n; i++) ans += mp_recv(i);17 uart_tx(ans);18 }19

20 app_finalize();21 return 0;22 }

Page 44: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 3 設計 30

コード 3.2 にプロセッサの実行する並列アプリケーションの擬似コードを示す.このコードは,プロセッサごとに処理を分割して行い,最後に処理結果を 1つのコアに集計して出力するものである.5行目の get_pidは割り当てられたプロセッサ IDを取得する関数である.9行目の do_partは処理を n分割し,id番目の処理を行うカーネル部分である.処理が終わると,プロセッサ 0 とプロセッサ 1-15 で実行系列が分かれる.プロセッサ

1-15は 11行目で 0番コアの id番地に処理結果を転送し,12行目では同期を行っている.global_barrierは同期のひとつで,全てのプロセッサが barrier同期関数を実行していることが確認できるまで後続の命令をブロックする.一方,プロセッサ 0は 15行目で同期処理に入っており,プロセッサ 1-15 の全てがメッセージを送信するまで後続の処理を行わないことを意味する.同期が終了するとプロセッサ 0は 16行目で処理結果の集計を行い,17行目で UARTによるテキスト出力を行ってから終了処理に入る.以降の並列アプリケーションは,このようなプログラミングモデルで記述されたもので

あり,分割処理を行ってから結果の集計までを実行系列とし,計測の対象としている.

Page 45: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

31

第 4章

実装

4.1 Verilog HDL大規模 FPGAでの実装を目指し,設計したメニーコアプロセッサを Verilog HDLにより論理記述した.図 4.1 に Verilog コードのモジュール関係とコード行数を示す.モジュール間の矢印はインスタンスの関係を表している.

����

����

�� �

����

�����

����

�����

����

�����

���

����

���

�� �

����

���

����

����

����

���

����

���

����

���

����

���

����

�����

���

�� ���

���

�� � �

���

����

���

���

���

����

� ��

����

� �

���� �

��

����

�����

����

������

����

図 4.1 Verilog実装におけるモジュール関係とコード行数

Page 46: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 4 実装 32

ハードウェア的なフレキシビリティを持たせるため,UARTや DRAMといった FPGAボード依存のハードウェア制御モジュールとメニーコアプロセッサは分離されている.

DRAM の物理制御には Xilinx Memory Interface Generator の生成する VC707 用の IP コアを利用しており,DRAM コントローラ (DRAMC) は内部でこの IP コアをインスタンシェートしている.定義ファイル (DEFINE)にはプロセッサコアの実行可能な命令やノード構成情報が記述されており,その実体はマクロに近い.

コード行数はおよそ 5,000行で,既存の FPGAを利用したメニーコアプロセッサと比較しても非常に少ないコード量となっており,実装的なフレキシビリティも同時に追求して

いる.

4.2 ハードウェア使用量とコンパイル時間

論理記述したコードは VC707 Evaluation Boardをターゲットボードとし,Xilinx VivadoHL System Edition (2014.4)を用いてコンパイルを行った.ツールでは phys_opt_designオプションによる物理最適化を有効にしている.物理最適化は FPGA内のアーキテクチャを考慮した物理再配置を行うオプションであり,これを有効にすることでハードウェア使用

量の削減やタイミング制約の緩和が見込める.

����

�������� �

�����

� �������

�����

���� ��

�����

��� ����

�����

�������

�����

�����

����

������

���

� ��

������

������

����

������

����

�������

����

��� ���

����

������

�����

������

������

����

������

������

����

�� ��

����

�����

���

����

�����

��� ��� �

���� ��

������� �

����

�����

���!�

������

���

�����

���!�

������

������

����

図 4.2 モジュール関係と slice/BRAMの使用量

Page 47: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

4.2 ハードウェア使用量とコンパイル時間 33

表 4.1 全体のハードウェア使用量と使用率

Utilization Available Utilization ratio

Slice 63,447 75,900 83.59%

Slice LUTs 204,081 303,600 67.22%

Slice Regs 165,698 607,200 27.28%

BRAM 370.5 1,030 35.97%

図 4.2にモジュールごとの sliceと BRAMの使用量を示す.上位のモジュールのハードウェア使用量は下位モジュールの使用量を含み,複数インスタンシェートされるモジュー

ルに関しては平均のハードウェア量を用いている.

モジュール単位で比較すると,メインメモリへのアクセス要求を並列化するメモリノー

ドの DMA コントローラが最も slice を消費している.これは DMA コントローラが内部にメインメモリへのアクセス幅と同じ幅の FIFOを持つためである.次点で DRAMの IPコアが slice を消費している.一方,スケジューラノードの RAM やキャッシュノードのキャッシュが BRAMを多く利用している.RAMリソースは論理ブロックの FFを RAMとして利用する分散メモリよりも BRAMを利用した方がリソース効率はよく,64KBの命令メモリおよびデータメモリやキャッシュ本体をうまく BRAMに割り当てることができていることがわかる.

表 4.1に VC707(Virtex-7 XC7VX485T)における全体のハードウェア使用量と使用率を示す.Utilization はハードウェア使用量,Available は FPGA の利用可能なハードウェア量,Utilization ratio は使用率を表す.slice は LUT と FF の組み合わせから成り,SliceLUTs および Slice Regs はそれぞれ slice の LUT と FF ごとのハードウェア量を示している.

sliceの使用率は 80%を超えており,図 4.2を参照するとメモリノードは sliceのおよそ10%を消費してしまっていることがわかる.一方,BRAMは全体のおよそ 35%を使用しており,slice と比較すると利用率は比較的少ない.メモリノードの FIFO 内部に BRAMを利用することで,更なる slice使用量の削減が見込める.

コンパイルは主に論理合成 (Synthesis) と配置配線 (Place and Route) の 2 つのフローで実行される.論理合成は論理記述をゲートレベルに変換するフローであり,配置配線は合

成結果を FPGA のリソースにマッピングするフローである.Intel Core i7-4770,メモリ16GB,Windows7(64bit)環境では,論理合成に要した時間は 24分,配置配線に要した時間は 1時間 16分の計 1時間 40分であった.

Page 48: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 4 実装 34

4.3 動作検証と動作周波数

動作検証には,有償の Verilog シミュレータである Synopsys VCS MX H-2013.06 および Xilinx の FPGA を搭載した評価ボードである Digilent Atlys,Digilent Nexys4 DDR,Xilinx VC707 Evaluation Board を用いた.図 4.3 に動作検証に用いた FPGA ボードを示す.左上が Atlys,左下が Nexys4,右が VC707で,それぞれの FPGAのハードウェアリソースに応じたプロセッサの構成を行った.

ソフトウェアシミュレーションでは簡素な RAMをメインメモリリソースとして接続し,アプリケーションのバイナリを RAM の初期値として与える.Atlys および Nexys4 ではBRAM,VC707では BRAMと DRAMをメインメモリリソースとして接続し,UART経由でバイナリを与える.システムの動作周波数は Atlysと Nexys4では 50MHz,VC707では 100MHz,VC707の DRAM動作周波数は 400MHzである.

VC707は Off-chip DRAMである DDR3-SDRAM-SODIMMを交換することができ,デフォルトのMicron MT8JTF12864HZ-1G6G1から Sanmax SMD-N4G28CP-16Kへ変更した.これにより,物理メインメモリ容量が 1GBから 4GBに拡張されている.

図 4.3 動作検証に用いた FPGAボード

Page 49: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

4.3 動作検証と動作周波数 35

図 4.4 実行結果を出力する端末エミュレータのスクリーンショット

機能テスト用のアプリケーションとして,命令列の実行,キャッシュの動作,文字出力

やプロセッサ間通信などのライブラリの実行を行うものを用意した.また,評価用のアプ

リケーションとしてソートによる配列操作など,アプリケーション全体の動作と結果の出

力行うものを用意し,検証を行った.図 4.4に実行結果を出力する端末エミュレータのスクリーンショットを示す.上は文字を出力する機能テスト用のアプリケーションによる出

力が,下は動作パラメータと実行結果を出力する評価用のアプリケーションによる出力が

得られている.

前述の全ての環境で機能テストや評価に用いるアプリケーションが正しく,かつ全ての

環境で同一の結果を出力することが確認でき.この結果をもって設計したメニーコアプロ

セッサが正しく動作していると判断した.

Page 50: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 51: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

37

第 5章

評価

5.1 環境

FPGA ボードを利用した評価では,FPGA ボードに Xilinx VC707 Evaluation Board を利用する.ホストコンピュータは OS に Windows 7(64bit),合成ツールに Xilinx Vivado2014.4(64bit),端末エミュレータに Teratermを利用する.ソフトウェアシミュレータを利用した評価では,OSに Ubuntu 14.04(64bit),Verilogシミュレータに Synopsys VCS MXH-2013.06を利用する.また,評価アプリケーションのコンパイルには gcc 4.3.6のMIPSクロスコンパイラを利用する.

5.2 評価方法

5.2.1 アーキテクチャ性能評価

並列アプリケーションは,同時に複数のプロセッサコアを利用してスループットを向上

させるプログラミング手法である.並列アプリケーションでは利用したコア数に比例した

性能を達成することが期待されるが,並列化不可能なシーケンスを含むことや,並列化の

ためのオーバーヘッドが発生することから,一般に理想的な線形性能を達成することは難

しい.また,メモリなどの限られたハードウェア資源を共有しているために衝突が発生し,

かえって性能が悪化する場合もある.

アーキテクチャ性能評価では,設計したメニーコアプロセッサが実用に耐えうる性能を

有しているのかを評価するため,利用したコア数に応じた性能向上率,即ち台数効果を確

認する.FPGA に実装したメニーコアプロセッサ上で特性の異なる 4 種類の並列アプリケーションを動作させ,アプリケーションの実行に要したサイクル数およびキャッシュ

ヒット率からアーキテクチャ性能の考察を行う.

Page 52: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 38

5.2.2 シミュレーション効率評価

プロセッサのアーキテクチャ研究においては,シミュレーションの実行時間もまた重要

な要素である.従来のマルチコアプロセッサで動作するソフトウェアシミュレータでは,

その何倍もの回路規模を有するメニーコアプロセッサのシミュレーションを現実的な時間

で行うことは難しく,ハードウェアやアプリケーションのシミュレーションセットを変更

しない場合でも,シミュレーションごとに膨大な時間を要する.一方,FPGAを用いたシミュレーションでは,FPGAのコンフィギュレーションのためのビットストリーム生成に時間を要するが,一度生成したビットストリームはハードウェア構成を変更しない限り再

利用することができるという利点がある.

シミュレーション効率評価では,従来のソフトウェアシミュレータと比較して FPGAによるシミュレーションがどの程度効率的なのかを評価する.ソフトウェアシミュレーショ

ン環境と FPGA環境で並列アプリケーションの実行を行い,実行シミュレーションに要した時間を測定・算出してシミュレーション効率の考察を行う.

5.2.3 研究要素適用評価

プロセッサのアーキテクチャ研究においては,研究要素を容易に適用できることが望ま

しい.3章で述べたように,設計したメニーコアプロセッサはアーキテクチャ的なフレキシビリティに着目しており,少ないコストで研究要素を適用できるようなアーキテクチャ

を目指している.

研究要素適用評価では,設計したメニーコアプロセッサが研究基盤としての実用性を評

価するため,新規手法を提案し,設計したメニーコアプロセッサに対して手法の適用と性

能評価を行う.Instruction Cache Clustering は新規提案するキャッシュ共有手法で,異なるコアが同一の命令列を実行する SPMD型の並列アプリケションの特性を利用し,メニーコアプロセッサにおけるプロセッサコアのクラスタリングと,プログラムカウンタのオフ

セット除去による命令キャッシュの共有を行う手法である.

FPGA実装したメニーコアプロセッサ上で,この手法を適用したスケジューリングプログラムを動作させ,並列アプリケーションの実行における性能測定と,その結果から研究

基盤としての考察を行う.

Page 53: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.3 評価アプリケーション 39

5.3 評価アプリケーション

5.3.1 n-Queens

8-Queensは 8×8のチェスの盤上に 8個のクイーンを配置するパズルであり,互いに駒を取られないように配置するパターンを解として,全ての解を見つけることが目標である.

n-Queensは 8-Queensの拡張で,n×nの盤上に n個のクイーンを配置することで解となる.n-Queensのアプリケーションは動作開始時,問題を分割し部分問題を生成する.部分問題の生成後,各部分問題につき解の探索と個数のカウントを行い,最後に集計結果を出力

する.並列化は特定の 1 コアをマスターノード,それ以外のコアをスレーブノードとし,部分問題の解の探索を並列処理することで行う.マスターノードは部分問題番号の割り当

てと解の個数の集計を行い,スレーブノードは割り当てられた部分問題の解の探索を行う.

サイクル数およびキャッシュアクセスの計測は,部分問題が生成されてから解の集計が完

了するまでの間を対象とする.

n-Queensは主に比較的小規模な命令の繰り返しと,部分問題が格納されるデータセグメントへのアクセスで構成されるため,台数効果からキャッシュを含むメモリシステムの基

本的な性能が評価できる.また,並列化によるオーバーヘッドは部分問題の割り当てと探

索結果の集計であり,同時にプロセッサ間通信のインターコネクト性能を評価できる.

5.3.2 Bitonic sort

Bitonic sortはソーティングアルゴリズムの一つで,昇順と降順の組み合わせからなるバイトニック列を再帰的に要素交換することでソート列を生成する方法である.n個の配列における計算量は O(n log2 n)であるが,配列操作が要素交換で済むために並列化による恩恵が大きいという利点がある.

アプリケーションは,擬似乱数によって生成したデータセットを 1次元配列として解釈しソートを行う.並列化は配列をコア数で等分し,各コアは担当した領域をローカルソー

トする.このときソート方向を交互にすることにより,バイトニック列を形成する.他の

コアの担当領域との比較交換にはメッセージパッシングを利用し,グローバルソートを実

現する.メッセージの最大長は担当領域のデータ長と等しい.

Bitonic sortは主に比較命令とデータセット領域へのアクセス,データ列の転送で構成され,台数効果からプロセッサ間通信のインターコネクト性能が評価できる.並列化によっ

てメモリアクセスが局所化すると,キャッシュヒットによる性能向上が期待できる一方,

データ列の転送が台数効果を下げる原因となる.

Page 54: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 40

5.3.3 Matrix Multiplication

Matrix Multiplication は一般的な正方行列積計算で,行と列の積和計算により解要素を得ることから n次正方行列における計算量は O(n3)である.アプリケーションは擬似乱数によって生成したデータセットを 2次元配列として解釈し,行列積を計算する.行データをローカルバッファに格納し,再利用することで行単位での

計算におけるメモリアクセスを削減している.並列化はローカルバッファを考慮して解行

列を行分割する.各コアは担当した領域の解要素を計算し,解要素の計算にはメッセージ

パッシングは利用しない.

Matrix Multiplication は主に演算命令とデータセット領域へのアクセスで構成される.計算に際してプロセッサコアはMUL演算を 1サイクルで実行することができるので,アプリケーション実行時間のほとんどはロードストアなどのメモリ命令によるものであり,

台数効果からはメモリシステムの性能が評価できる.

5.3.4 Stencil

Stencilはステンシル計算のことを指し,データセットの各要素に特定のパターンで処理を適用する.ステンシル計算は流体計算などに応用でき,科学計算においては重要な計算

カーネルの一つである.ここでは 2次元 5点ステンシル計算を行い,n次正方データセットにおける計算量は O(n2)である.アプリケーションはデータセットを 2 次元配列として解釈し,対象要素とその 4 近傍要素の算術 5 平均を計算する.ステンシル計算は内部でダブルバッファリングを行っており,全要素への処理を 1 イテレーションとして繰り返し処理を行う.並列化は MatrixMultiplication と同様,データセットを行分割して行う.ステンシル計算では要素計算に近傍要素の値が必要であり,他コアと隣接した袖領域と呼ばれる領域では,隣接コアとの

プロセッサ間通信が必要になる.一般的な 2次元メッシュ型のアーキテクチャではデータセットをプロセッサ全体にマッピングすることで通信量の削減とインターコネクトを考慮

したパフォーマンス向上が図られるが,設計したメニーコアプロセッサではインターコネ

クトにキャッシュノードが入り込んでおり,マッピングによる恩恵が少ないという理由か

ら行分割を採用している.

Stencilは主に演算命令とデータセット領域へのアクセス,袖領域の転送で構成され,台数効果からはメモリシステムとインターコネクト性能が評価できる.処理には複合的で大

きな負荷がかかるが,反復処理においてキャッシュヒットによる性能向上が期待できる.

Page 55: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.4 性能評価 41

5.4 性能評価

5.4.1 n-Queens

図 5.1に n-Queensにおける問題サイズごとの台数効果を示す.並列 n-Queensでは 1コアはマスターコアとして動作するので,探索を行うスレーブコア数をコア数としている.

性能はサイクル数の逆数に基づくもので,相対性能は 1コア時の性能で正規化した値である.評価系列は問題サイズ nが 8~13のときであり,破線の linearは参考理想値である.

n=8 のとき,相対性能がピークとなるのはスレーブコアが 12 台のときで,このときの相対性能は 7.4 倍であった.問題サイズが小さいときではスレーブコアを増加させても,利用コア数から期待される相対性能は得られず,15台実行時でもその性能は 10台実行時と同程度の 6.9倍であった.一方,問題サイズを大きくするにつれて相対性能のピークはコア数が多いときに遷移するとともに,台数効果は理想値の系列に近付いていく様子が観

測できる.最終的には n=13のとき,15台実行時に最も高い相対性能が得られ,その値は14.9倍であった.

��

��

��

��

� � � � � �� �� �� ��

��������������

����

��

��

��

��

図 5.1 n-Queensにおける問題サイズごとの台数効果

Page 56: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 42

����

����

����

����

����

����

����

� � �� �� �� �

����������

�� �� ���� �� ����� �� �� ���� �� �����

図 5.2 n-Queensの 16コア実行時における問題サイズごとのヒット率

図 5.2に n-Queensの 16コア実行時における問題サイズごとのヒット率を示す.評価系列は左から順に, L1 命令キャッシュの命令フェッチに関するヒット率,L1 データキャッシュのリードに関するヒット率,L1 データキャッシュのライトに関するヒット率,L2キャッシュの命令フェッチに関するヒット率,L2 キャッシュのデータフェッチに関するヒット率,L2キャッシュのデータライトバックに関するヒット率である.問題サイズを大きくするにつれて L2キャッシュのデータフェッチに関するヒット率が上昇していく様子が観測できる.n-Queensでは部分問題の割り当てレイテンシが発生するが,コア数を増加させても部分問題の数が変わらないため,相対性能の低下原因は動作コ

ア数の増加によるメモリ負荷の上昇であると考えられる.問題サイズが小さい時には L2キャッシュミスによるペナルティが性能に大きな影響を与えていたが,問題サイズが大き

くなり部分問題の数が増加すると,キャッシュ済みの部分問題への参照回数が増え,L2キャッシュミスが性能に及ぼす影響が小さくなったと推測できる.

n-Queensにおける測定結果から,小規模な問題を並列処理しようとするとキャッシュミスによるメモリ負荷が大きくなってしまい,利用コア数から期待される性能が得られない,

という共有メモリ特有のボトルネックが明らかになった.このような問題に対しては,複

数メモリチャネル環境を利用することで相対性能の向上が期待できる.

Page 57: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.4 性能評価 43

5.4.2 Bitonic sort

図 5.3 に Bitonic sort における問題サイズごとの台数効果を示す.並列実行する場合のBitonic sortでは,2の冪乗のコア数で実行しなければならないという制約が存在するため,コア数は 1,2,4,8,16 台で測定を行った.性能は n-Queens と同様にサイクル数の逆数に基づくもので,相対性能は 1コア時の性能で正規化した値である.評価系列は問題サイズ nが 2048と 4096のときであり,破線の linearは参考理想値である.いずれの系列の場合でも,コア数が最も大きい時に最も高い相対性能が得られており,

その値はそれぞれ n=2048のときは 13.7倍,n=4096のときは 14.7倍であった.この並列実行時の高い相対性能は,要素の比較交換で済むというソーティングアルゴリズムによる

ところが大きい.Bitonic sortのアルゴリズムは比較交換の計算量が線形に減少するという特徴を持つうえ,グローバルソートにおける比較交換は担当領域と受信バッファの間で行

われるため,各コアのメモリ参照範囲はたかだか分割後のデータ列長と等しくなり,コア

数が増加すればするほどキャッシュの恩恵が大きくなる.

��

��

��

��

��

� � � � � �� �� �� �� ��

��������������

����

����

����

図 5.3 Bitonic sortにおける問題サイズごとの台数効果

Page 58: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 44

����

����

����

����

����

����

����

���� ����

����������

� ��� ��� ���� �� � ��� ��� ���� ��

図 5.4 Bitonic sortの 16コア実行時における問題サイズごとのヒット率

図 5.4に Bitonic sortの 16コア実行時における問題サイズごとのヒット率を示す.評価系列は n-Queensと同様である.問題サイズを大きくしたときの傾向は n-Queens に似ており,L2 キャッシュのデータフェッチに関するヒット率が上昇している.特に相対性能が向上した 16コア実行時,1コアあたりの担当領域の長さは n=2048のとき 128,n=4096のとき 256であり,データセットは int型であるので,それぞれ 512Bと 1KBと計算できる.これらは L1データキャッシュ内に収まるサイズであり,L2キャッシュのデータフェッチに関するミス回数から算出したフェッチサイズは 2KB未満であることから,ミスの内訳はほとんどが初期参照であると考えられる.

Bitonic sortにおける測定結果から,キャッシュが有効に機能している場合であっても,メニーコア環境においては初期参照によるメモリアクセス負荷が高くなり,性能が低下す

る場合があることがわかった.また,実装されているメッセージパッシングの通信方式は

ブロッキング通信であり,アプリケーションでは通信の前後に同期を行っているため,グ

ローバルソートの度に通信時間が発生している.プロセッサは通信時間を加味しても 13倍以上の相対性能を達成できるだけのインターコネクト性能を有しているが,計算とイン

ターリーブできる通信機構を導入することで更なる並列性能の向上が期待できる.

Page 59: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.4 性能評価 45

5.4.3 Matrix Multiplication

図 5.5 に Matrix Multiplication における問題サイズごとの台数効果を示す.コア数は1,2,4,8,16台で,評価系列は問題サイズ nが 32と 64のときであり,破線の linearは参考理想値である.

いずれの系列においてもコア数が最大のときに最も高い相対性能が得られ,その相対

性能は n=32 のときは 12.6 倍,n=64 のときは 14.3 倍であった.Bitonic sort における台数効果と比較すると,Bitonic sort が線形に近いグラフを示しているのに対し,MatrixMultiplicationでは 8台実行時から 16台実行時の範囲で相対性能の低下が顕著である.

Matrix Multiplication は解要素を独立して計算可能なため,並列化に際して複雑な計算や通信を必要とせず,利用コア数から期待される相対性能は高い.一方で,MatrixMultiplicationの計算量は O(n3)と高く,その操作のほとんどがメモリ参照で構成されているために,メモリ負荷は高い.そのため,並列実行時の相対性能はメモリシステム性能に

大きく依存する.

��

��

��

��

��

� � � � � �� �� �� �� ��

��������������

����

��

��

図 5.5 Matrix Multiplicationにおける問題サイズごとの台数効果

Page 60: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 46

����

����

����

����

����

����

����

�� ��

����������

� ��� ��� ���� �� � ��� ��� ���� ��

図 5.6 Matrix Multiplicationの 16コア実行時における問題サイズごとのヒット率

図 5.6にMatrix Multiplicationの 16コア実行時における問題サイズごとのヒット率を示す.評価系列は n-Queensと同様である.キャッシュヒット率の傾向は n-Queensや Bitonic sortとは異なり,L1データキャッシュのリードに関するヒット率が 50%まで落ちており,一方,L2キャッシュのデータフェッチに関するヒット率は 97%以上を維持している.Matrix Multiplicationでは要素計算にデータセットに対する行アクセスと列アクセス,解行列の格納に行アクセスが行われる.デー

タセットの行データはローカルバッファにコピーされるので,要素計算では C言語において空間的局所性が抽出できない列アクセスが頻繁に行われ,ヒット率低下の原因となって

いると考えられる.また,16コア実行時の 1コアあたりの参照容量は n=32のとき 4KB,n=64のとき 16KB程度であり,L2キャッシュにキャッシュされた列データが再利用されることによって,L2キャッシュの高いヒット率が維持されていると考えられる.

Matrix Multiplicationにおける測定結果から,利用コア数に見合った相対性能を得るためには,並列化によって局所化されたメモリアクセスを有効活用することが求められ,アー

キテクチャ面においてプライベートキャッシュを構築することの有用性を示す結果となっ

た.一方,データの再利用が行えない場合やキャッシュに収まりきらないデータセットを

扱う場合はメモリ負荷の増大が予想され,この問題に対応するための機構も必要である.

Page 61: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.4 性能評価 47

5.4.4 Stencil

図 5.7に Stencilにおける問題サイズごとの台数効果を示す.コア数は 1,2,4,8,16台で,評価系列は問題サイズ n が 32 と 64,イテレーション i が 1 と 16 のときである.破線のlinearは参考理想値である.

n=32,i=1のとき,相対性能のピークは 8コア実行時であり,その性能は 3.3倍であった.問題サイズ nを固定してイテレーション iを増加させると台数効果は改善され,16コア実行時の相対性能は 6.6 倍となる.このときの台数効果は n=64,i=1 のときとほぼ一致している.n=64,i=16 では台数効果は更に改善され,16 コア実行時に 10.8 倍の相対性能を達成している.問題サイズあるいはイテレーションを増加させたときに台数効果は理想値に

近づくが,他のアプリケーションと比較すると多コア実行時での相対性能が得られにくく

なっている.

計算量こと異なるものの,StencilはMatrix Multiplicationのようなメモリアクセスを伴うデータセットの操作と Bitonic sort のようなメッセージパッシングによるデータ列の転送を行うアプリケーションであることに留意したい.

��

��

��

��

��

� � � � � �� �� �� �� ��

��������������

����

����� ��

����� �

����� ��

����� �

図 5.7 Stencilにおける問題セットごとの台数効果

Page 62: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 48

����

����

����

����

����

����

����

���� � ���� �� ����� � ����� ��

���������

��� �������� ��������� ��� �������� ���������

図 5.8 Stencilの 16コア実行時における問題セットごとのヒット率

図 5.8に Stencilの 16コア実行時における問題サイズごとのヒット率を示す.評価系列は n-Queensと同様である.イテレーション回数が同じ問題セットの組に着目すると,問題サイズの増加によって L1データキャッシュのライトに関するヒット率が 3~6% 減少し,L2 キャッシュのデータフェッチに関するヒット率が 15%増加する.これはそれぞれ,データの書き込み頻度が低い袖領域が増加によるものと,担当領域の増加によるものである.

問題サイズが同じ問題セットの組に着目すると,イテレーション回数の増加によって L2キャッシュの命令フェッチに関するヒット率が 40%増加するほか,L1データキャッシュのライトに関するヒット率が 4~7%,L2 キャッシュのデータフェッチに関するヒット率が 24% 増加する.命令フェッチに関するヒット率の向上は命令列の増加によるものである.データに関するヒット率の向上は,イテレーションの増加によって前述の袖領域の更

新回数が増えるとともに,L2キャッシュにキャッシュされたデータセットの再利用頻度が高くなったため,このような測定結果になったと考えられる.

Stencilにおける測定結果から,メモリシステム性能が相対性能に与える影響が大きいことがわかる.また,台数効果を下げる残りの原因はメッセージパッシングにおける通信時

間であると推測され,ここでもバックグラウンドで通信を行う機構の導入が求められる.

Page 63: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.5 効率評価 49

5.5 効率評価

図 5.9,図 5.10,図 5.11,図 5.12にそれぞれ,n-Queen,Bitonic sort,Matrix Multiplication,Stencilにおけるコア数とシミュレーション時間の高速化比の関係を示す.FPGA環境の実行時間はサイクル数と動作周波数から算出し,問題セットは最もシミュレーション時間が

長くなるものを選択した.

�����

�����

�����

�����

������

������

� � � � � �� �� �� ��

��������������

��

図 5.9 n-Queenにおけるコア数とシミュレーション時間の高速化比の関係

�����

�����

�����

�����

�����

�����

����

����

�����

������

� � � � �� �� �� �� �

��������������

� ����

図 5.10 Bitonic sortにおけるコア数とシミュレーション時間の高速化比の関係

Page 64: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 50

�����

�����

�����

�����

������

������

������

������

������

� � � � � �� �� �� �� ��

��������������

���

図 5.11 Matrix Multiplicationにおけるコア数とシミュレーション時間の高速化比の関係

�����

�����

�����

�����

������

������

������

������

������

� � � � � �� �� �� �� ��

��������������

�������

図 5.12 Stencilにおけるコア数とシミュレーション時間の高速化比の関係

いずれのケースにおいても,ソフトウェアシミュレーションに対する高速化比はコア数

に対して線形増加であり,Stencilでは 16コア実行時に 16,000倍を超える高速化が得られている.また,ソフトウェアシミュレーションで最も時間を要したのは n-Queensの 5,296秒であり,これはハードウェアのコンパイル時間とほぼ同等である.

これらの測定結果から,FPGAでのシミュレーションはコア数が増加すればするほど高速化が得られ,メニーコアプロセッサ研究の要求に合致したシミュレーション環境である

ことがわかった.

Page 65: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.6 適用評価 51

5.6 適用評価

5.6.1 命令キャッシュクラスタリング

分散メモリシステム上で並列アプリケーションを実行するとき,各プロセッサは実行す

る命令列を別のトランザクションとしてフェッチし,実行する.SPMD 型の並列アプリケーションでも各プロセッサは同一内容の命令列をフェッチするが,データの実体は別の

ものとして扱われる.そのため命令の初期参照においてメモリに負荷がかかり,十分な並

列性能が抽出できないという問題がある.また,ハーバードアーキテクチャでは命令メモ

リとデータメモリが区別されるが,多くのシステムでは命令とデータが混在するメインメ

モリへのアクセスを考慮し,LLC(Last Level Cache)階層はユニファイドキャッシュとなっている.各プロセッサがそれぞれ命令列をフェッチすると,本来は同一であるはずの命令

がこのキャッシュを圧迫してしまうという問題もある.

命令キャッシュクラスタリング (Instruction Cache Clustering, ICC)はこれを緩和するための提案手法である.ICC では,LLC 階層まで命令の要求とデータの要求を区別し,複数のプロセッサを一つのクラスタとしてまとめる.クラスタに対してピボットと呼ばれる

キャッシュを 1基定め,クラスタ内のプロセッサは命令に関するアクセスをピボットに対して行う.ピボットは命令に関する要求を受け取ると,アドレスからメモリ領域オフセッ

トを除去し,ヒット判定を行う.これによりクラスタ内で命令列が共有され,他のコアが

キャッシュした命令列を再利用することができる.

� �

� �

� �

(a) non-clustered (b) clustered

� �

cluster

pivot

図 5.13 命令キャッシュクラスタリングの概念図

Page 66: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 52

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(a) 2x2 clustering

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(b) 2x3 clustering

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(c) 3x3 clustering

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(d) 2x6 clustering

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(e) 3x6 clustering

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

F

C

F

P

P

P

P

P

P

P

P

P

P

P

P

P

M

P P

SP

(f) 6x6 clustering

図 5.14 命令キャッシュクラスタリングのクラスタリングパターン

図 5.13に設計したメニーコアプロセッサにおける命令キャッシュクラスタリングの概念図を示す.図 5.13(a)non-clustered はクラスタリングを行わない場合の命令キャッシュアクセスを表しており,各プロセッサノードがプライベートなキャッシュノードにアクセス

し,同一の命令列のフェッチによってメモリに負荷がかかっている.図 5.13(b)clusteredはこれらのプロセッサノード間で ICCを行った場合を表しており,色掛けされた領域がクラスタ,色掛けされたキャッシュノードがピボットを表す.ピボットがクラスタ内の命令ア

クセスを引き受けることでメモリ負荷が低減されている.

図 5.14に設計したメニーコアプロセッサにおける命令キャッシュクラスタリングのクラスタリングパターンを示す.クラスタ及びピボットは図 5.13と同様の表記を行っている.クラスタリングパターンはクラスタサイズの異なる 6種類を用意した.図 5.14(a)-(b)はクラスタ内のプロセッサノードとピボットの距離が最短である.図 5.14(b)-(e)はピボットがより多くの数のプロセッサと通信を行うようになるが,ピボットとの距離は広くなる.

Page 67: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

5.6 適用評価 53

5.6.2 実装と評価

ICCの実装にあたって,パケットにおける命令とデータの cmdをそれぞれ用意し,制御コアによるキャッシュノードの割り当てに関しても命令キャッシュとデータキャッシュを

それぞれ指定できるよう変更を行った.この機能の追加は 100行程度のコードの変更で済み,低コストで要素の適用が可能であった.また,このデザインで論理コードの再コンパ

イルを行い,FPGA実装を行った.評価は FPGAを利用して並列アプリケーションを実行し,アプリケーションの実行に要したサイクル数を計測する.並列アプリケーションには Matrix Multiplication を利用し,パラメータは n=32の問題を 16コア実行する.アプリケーション内ではループアンローリングを行い,命令サイズは 25.8KBである.図 5.15 に Matrix Multiplication におけるクラスタリングパターンごとの性能向上比を示す.評価パターンは defaultのクラスタリングを行わない場合と,図 5.14に示した 6パターンである.クラスタサイズが小さい 2パターンは性能の向上が見られ,その向上比は2x2で 1.24倍,2x3で 1.21倍であった.一方,3x3以上のクラスタサイズでは性能が低下

����

����

����

����

����

����

����

����

��� � ��� ��� ��� ��� ��� ���

���������� ����

図 5.15 Matrix Multiplicationにおけるクラスタリングパターンごとの性能向上比

Page 68: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

Chapter 5 評価 54

してしまい,6x6では defalutの 0.38倍であった.L1命令キャッシュと L2キャッシュの命令に関するヒット率はそれぞれ 88%,86-99%であり,ピボットの L2キャッシュのデータに関するヒット率は他のキャッシュノードと同程度であった.

測定結果から,命令キャッシュクラスタリングによって L2キャッシュのヒット率は向上し,メモリ負荷は低減されていると推測できる.しかしその負荷がピボットに集中した

結果,クラスタ内のデータ要求を処理しきれず,全体性能を下げるケースも観測された.

この手法による性能向上を更に引き出すためには,ヒット率だけではなくこのキャッシュ

ボトルネックを考慮する必要があることがわかった.

5.6.3 適用結果

命令キャッシュクラスタリングの適用結果から,設計したメニーコアプロセッサには新

規手法を適用するだけ余地があるだけでなく,フレキシブルさを追求する設計指針からそ

の適用を容易に行えることを確認した.また,FPGA実装したプロセッサを用いて高速な評価を行うことができ,研究基盤としての有用性が示された.

Page 69: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

55

第 6章

結論

6.1 まとめ

アーキテクチャ研究に適した研究基盤として,研究基盤に必要なフレキシビリティを追

求するという設計指針のもと,メニーコアプロセッサの設計を行った.FPGAを用いてこのプロセッサの実装を行い,3つの評価項目から考察を行った.アーキテクチャ性能評価から実際に並列アプリケーションを動作させることのできる実用性と,使用コア数から期

待される台数効果を達成できる高いアーキテクチャ性能を示した.シミュレーション効率

評価では多コア環境であればあるほどソフトウェアに対して高速なシミュレーションが行

えることが判明し,メニーコア研究に適した環境であることを示した.そして研究要素適

用評価では新規手法を提案・適用・評価することで,研究基盤としての有用性を示した.

6.2 今後の課題

本研究ではフレキシビリティに着目した設計と実装を行ったが,独自ライブラリによる

アプリケーションサポートや簡易的なメモリマップ制御など,ユーザビリティの点で既存

の研究基盤に劣る部分がある.今後,MPI のような規格に準拠したライブラリを設計し,より詳細なアプリケーション制御が行えるように拡張を行っていくことが課題である.

Page 70: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 71: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

57

謝辞

本研究を進めるにあたり,学部生時代より研究室に席を設けていただいた吉瀬謙二准教

授に深く感謝いたします.先生の熱心なご指導なくして本研究は有り得ませんでした.

また,本研究を始める際にネットワークに関する知識をご教授頂いたほか,ご卒業後も

長きに渡って研究のアドバイスをして頂いた佐藤真平先輩に深くお礼申し上げます.小林

諒平先輩には,私が論文を執筆する際には必ずと言っていいほど校閲・校正をお手伝いし

て頂きました.貴重なお時間を割いていただき,心より感謝申し上げます.

そして,本論文を執筆する上でデータ測定の補佐や校閲,モチベーションの維持に献身

してくれた小川愛理さん,眞下達君,味曽野智礼君,並びに吉瀬研究室の皆様に感謝いた

します.

最後に,私の学生生活を支えてくれた妻の真理子に尊敬と感謝の意を贈ります.

Page 72: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 73: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

59

参考文献

[1] D. A. Patterson and J. L. Hennessy, Computer Organization and Design, Fourth Edition:The Hardware/Software Interface. Morgan Kaufmann, 2011.

[2] J. L. Hennessy and D. A. Patterson, Computer Architecture, Fifth Edition: A QuantitativeApproach. Morgan Kaufmann, 2011.

[3] Altera, “Stratix 10 SoC,” https://www.altera.com/products/soc/portfolio/stratix-10-soc/overview.html.

[4] Y. Hoskote, S. Vangal, A. Singh, N. Borkar, and S. Borkar, “A 5-GHz Mesh Interconnectfor a Teraflops Processor,” IEEE Micro, vol. 27, no. 5, pp. 51–61, Sep-Oct 2007.

[5] J. Howard, S. Dighe, Y. Hoskote, S. Vangal, D. Finan, G. Ruhl, D. Jenkins, H. Wilson,N. Borkar, G. Schrom, F. Pailet, S. Jain, T. Jacob, S. Yada, S. Marella, P. Salihundam,V. Erraguntla, M. Konow, M. Riepen, G. Droege, J. Lindemann, M. Gries, T. Apel,K. Henriss, T. Lund-Larsen, S. Steibl, S. Borkar, V. De, R. Van Der Wijngaart, andT. Mattson, “A 48-Core IA-32 message-passing processor with DVFS in 45nm CMOS,”in Proceedings of the 2010 IEEE International Solid-State Circuits Conference Digest ofTechnical Papers (ISSCC). IEEE, Feb 2010, pp. 108–109.

[6] J. Reinders and J. Reinders, Intel Xeon Phi Coprocessor High-Performance Program-ming. Morgan Kaufmann, 2013.

[7] L. Benini and G. De Micheli, “Networks on chips: a new SoC paradigm,” Computer,vol. 35, no. 1, pp. 70–78, Jan 2002.

[8] S. Kumar, A. Jantsch, J.-P. Soininen, M. Forsell, M. Millberg, J. Oberg, K. Tiensyrja, andA. Hemani, “A network on chip architecture and design methodology,” in Proceedingsof the IEEE Computer Society Annual Symposium on VLSI (ISVLSI). IEEE, Apr 2002,pp. 105–112.

[9] W. J. Dally and B. P. Towles, Principles and Practices of Interconnection Networks.Morgan Kaufmann, 2004.

[10] L. Seiler, D. Carmean, E. Sprangle, T. Forsyth, P. Dubey, S. Junkins, A. Lake, R. Cavin,

Page 74: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

参考文献 60

R. Espasa, E. Grochowski, T. Juan, M. Abrash, J. Sugerman, and P. Hanrahan, “Larrabee:A Many-Core x86 Architecture for Visual Computing,” IEEE Micro, vol. 29, no. 1, pp.10–21, Jan 2009.

[11] B. de Dinechin, R. Ayrignac, P.-E. Beaucamps, P. Couvert, B. Ganne, P. de Massas,F. Jacquet, S. Jones, N. Chaisemartin, F. Riss, and T. Strudel, “A clustered manycoreprocessor architecture for embedded and accelerated applications,” in Proceedings of the2013 IEEE High Performance Extreme Computing Conference (HPEC). IEEE, Sep2013, pp. 1–6.

[12] K. Aingaran, S. Jairath, G. Konstadinidis, S. Leung, P. Loewenstein, C. McAllister,S. Phillips, Z. Radovic, R. Sivaramakrishnan, D. Smentek, and T. Wicki, “M7: Oracle’sNext-Generation Sparc Processor,” IEEE Micro, vol. 35, no. 2, pp. 36–45, Mar 2015.

[13] D. Wentzlaff, P. Griffin, H. Hoffmann, L. Bao, B. Edwards, C. Ramey, M. Mattina, C.-C. Miao, J. Brown, and A. Agarwal, “On-Chip Interconnection Architecture of the TileProcessor,” IEEE Micro, vol. 27, no. 5, pp. 15–31, Sep 207.

[14] E. S. Chung, M. K. Papamichael, E. Nurvitadhi, J. C. Hoe, K. Mai, and B. Falsafi,“ProtoFlex: Towards Scalable, Full-System Multiprocessor Simulations Using FPGAs,”ACM Transactions on Reconfigurable Technology and Systems (TRETS), vol. 2, no. 2,pp. 15:1–32, Jun 2009.

[15] B. Berkeley Wireless Research Center, University of California, “BEE2 - Berkeley Em-ulation Engine 2,” http://bee2.eecs.berkeley.edu/.

[16] A. Krasnov, A. Schultz, J. Wawrzynek, G. Gibeling, and P.-Y. Droz, “RAMP Blue: AMessage-Passing Manycore System in FPGAs,” in Proceedings of the International Con-ference on Field Programmable Logic and Applications (FPL). IEEE, Aug 2007, pp.54–61.

[17] Z. Tan, A. Waterman, R. Avizienis, Y. Lee, H. Cook, D. Patterson, and K. Asanovic,“RAMP gold: An FPGA-based architecture simulator for multiprocessors,” in Proceed-ings of the 2010 47th ACM/IEEE Design Automation Conference (DAC). ACM/IEEE,Jun 2010, pp. 463–468.

[18] M. Kinsy, M. Pellauer, and S. Devadas, “Heracles: Fully Synthesizable ParameterizedMIPS-Based Multicore System,” in Proceedings of the International Conference on FieldProgrammable Logic and Applications (FPL). IEEE, Sep 2011, pp. 356–362.

[19] M. A. Kinsy, M. Pellauer, and S. Devadas, “Heracles: A Tool for Fast RTL-based De-sign Space Exploration of Multicore Processors,” in Proceedings of the ACM/SIGDAInternational Symposium on Field Programmable Gate Arrays (FPGA). ACM, 2013,pp. 125–134.

Page 75: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

61

[20] M. Pellauer, M. Adler, M. Kinsy, A. Parashar, and J. Emer, “HAsim: FPGA-basedhigh-detail multicore simulation using time-division multiplexing,” in Proceedings ofthe IEEE 17th International Symposium on High Performance Computer Architecture(HPCA). IEEE, Feb 2011, pp. 406–417.

[21] S. Takamaeda-Yamazaki, S. Sano, Y. Sakaguchi, N. Fujieda, and K. Kise, “ScalableCoreSystem: A Scalable Many-core Simulator by Employing over 100 FPGAs,” in Proceed-ings of the 8th International Conference on Reconfigurable Computing: Architectures,Tools and Applications, 2012, pp. 138–150.

Page 76: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 77: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

63

研究業績

国際会議

1. Haruka Mori and Kenji Kise: Design and Performance Evaluation of a Manycore Pro-cessor for Large FPGA, In proceedings of IEEE 8th International Symposium on Em-bedded Multicore/Many-core Systems-on-Chip (MCSoC ’14), pp.207-214, September2014.

口頭発表

1. 森 悠,佐藤真平, Chu Van Thiem,吉瀬謙二: Design and Implementation of ManycoreProcessor for a Large FPGA,情報処理学会第 76回全国大会, Vol.1, No.4J-2, pp.107-108, March 2014.

2. 森 悠, 吉瀬謙二: 大規模 FPGA をターゲットとするメニーコアプロセッサの設計と性能評価, Summer United Workshop on Parallel, Distributed and CooperativeProcessing (SWoPP ’14), 電子情報通信学会技術研究報告 CPSY2014-18, Vol.114,No.115, pp.49-54, July 2014.

3. 森 悠, 吉瀬謙二: DRAM リソースに着目したメニーコアソフトプロセッサの性能チューニング,情報処理学会第 77回全国大会, Vol.1, No.3K-04, pp.165-166, March2015.

Page 78: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ
Page 79: 大規模 FPGA を用いた ヘテロジニアス構成のメニー …...Tokyo Institute of Technology Department of Computer Science 修士論文 大規模FPGA を用いた ヘテロジニアス構成のメニーコアソフトプロセッサ

65

付録

本文中には掲載しなかった図をここに掲載する.

図 6.1に VC707の DRAMに対してバーストアクセスを行ったときのバースト長とバンド幅の関係を示す.バースト長が最も短いときでは,64Bの連続した領域へのアクセスを行い,バースト長が最も長いときでは,128KBの連続した領域へのアクセスを行う.毎回ランダムに定めたアドレスに対してアクセスを繰り返し,アクセスを行った総容量が 4GBに達するまでのサイクル数から平均のバンド幅を算出した.VC707における DRAMバンド幅の理論値は 12.8GB/sであり,バースト長が十分長い場合には 10GB/sを超えるバンド幅を達成している.

��

��

�� ��� ��� ��� �� �� �� �� ��� �� ��� ����

����������� ��

��� ����� ���

��� ���� ���

図 6.1 DRAMのバーストアクセスとバンド幅の関係