Comments
Description
Transcript
ソフトコアプロセッサを用いた ハードウェア/ソフトウェア協調
平成22年2月5日(金) 平成21年度 日本大学 卒業研究発表会 @37号館204教室 ソフトコアプロセッサを用いた ハードウェア/ソフトウェア協調設計における 機能分割手法に関する研究 日本大学 生産工学部 数理情報工学科 須釜 裕太 1 発表内容 背景・目的 機能分割問題 機能分割アルゴリズム 実験結果 まとめ 2 携帯電話の構造 3 携帯電話の構造 制御システム 4 黄:ハードウェア領域 従来のシステム PLL UART 緑:ソフトウェア領域 ADC/DAC DMA MPU User Logic RAM Timer Interface Interface Interface 5 黄:ハードウェア領域 現在のシステム 緑:ソフトウェア領域 青:中間領域 SoC(System on a chip) PLL UART ADC/DAC DMA MPU User Logic RAM Timer Interface Interface Interface 6 背景・目的 ハードウェア/ソフトウェア協調設計:SoCに対応した現在のシステム設計 問題点 中間領域に対して ハードウェアとソフトウェア どちらで実装するべきか? 7 SoCにおける ハードウェア領域の実装方法 SoC PLL UART ADC/DAC DMA MPU User Logic RAM Interface Interface Timer Interface データバスを介して接続(ハードウェア・アクセラレータ実装) 8 SoCにおける ハードウェア領域の実装方法 SoPC(System on a Programmable Chip) PLL UART ADC/DAC DMA MPU User Logic RAM Timer Interface Interface Interface 9 SoPC特有の ハードウェア領域の実装方法 Logic A IN ー ALU + OUT & B MPU内部のALUに接続(カスタム命令実装) 10 背景・目的 ハードウェア/ソフトウェア協調設計:SoCに対応した現在のシステム設計 問題点 中間領域について ハードウェアとソフトウェア どちらで実装するべきか? 問題点 ハードウェア領域に対して ハードウェア・アクセラレータとカスタム命令 どちらで実装するべきか? 機能分割問題 解決策 機能分割アルゴリズムが注目されている 目的:ソフトウェア/ハードウェア・アクセラレータ/カスタム命令の 3分割に対応した機能分割アルゴリズムを提案し、実機で評価する 発表内容 背景・目的 機能分割問題 機能分割アルゴリズム 実験結果 まとめ 12 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] M1 M2 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] M1 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M3 M4 M2 目的:面積最小化 SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] M3 M4 SW 0 12 28 48 56 実行時間:56[ms] 実行時間[ms] 13 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] M1 M2 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] 目的:面積最小化 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M3 M4 SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] 実行時間:56[ms] 面積:0[LCs] SW 0 面積[LCs] 14 目的:面積最小化 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M1 M2 M3 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] M1 M4 M3 HW SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] M4 実行時間:15[ms] M2 0 2.5 13.5 15 実行時間 [ms] 15 目的:面積最小化 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M1 M2 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] M1 M3 SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] M4 M2 M3 M4 HW 0 680 1040 1520 1840 実行時間:15[ms] 面積:1840[LCs] 面積[LCs] 16 目的:面積最小化 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M1 M2 M3 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] SW M1 M4 M3 HW SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] M4 実行時間:40[ms] M2 12 32 40 実行時間 17 機能分割問題 SW実行時間 :16[ms] HW実行時間:8[ms] HW面積:360[LCs] M1 M2 SW実行時間 :8[ms] HW実行時間:1.5[ms] HW面積:320[LCs] SW HW 制約条件:実行時間40[ms]以下 SW実行時間 :12[ms] HW実行時間:2.5[ms] HW面積:680[LCs] M3 M4 SW実行時間 :20[ms] HW実行時間:11[ms] HW面積:480[LCs] 実行時間:40[ms] 面積:360[LCs] M2 0 目的:面積最小化 360 面積[LCs] 18 発表内容 背景・目的 機能分割問題 機能分割アルゴリズム 実験結果 まとめ 19 機能分割アルゴリズム ① システムの有向グラフ入力 ② 中間領域をハードウェア/ソフトウェア分割 ③ ハードウェア領域をハードウェアアクセラレータ/ カスタム命令分割 ④ 最小カット容量を求める 最大フロー問題の解法を用いたアルゴリズム 20 中間領域を ハードウェアとソフトウェアに分割 中間領域 ノード A B C D E エッジ 21 コストの設定 SWコスト:4 HAコスト:5 CIコスト:5 A SWコスト :5 HAコスト:3 CIコスト:3 SWコスト :1 HAコスト:2 CIコスト:2 B C SWコスト :9 HAコスト:7 CIコスト:7 D E SWコスト :9 HAコスト:6 CIコスト:6 定義①: コスト=実行時間+面積 22 コストの設定 SWコスト:4 HAコスト:5 CIコスト:5 A SWコスト :5 HAコスト:3 CIコスト:3 SWコスト :1 HAコスト:2 CIコスト:2 B C SWコスト :9 HAコスト:7 CIコスト:7 D E SWコスト :9 HAコスト:6 CIコスト:6 仮定①: HAコスト=CIコスト 23 コストの設定 SWコスト:4 HWコスト:5 A SWコスト :5 HWコスト:3 SWコスト :1 HWコスト:2 B C SWコスト :9 HWコスト:7 D E SWコスト :9 HWコスト:6 定義②: HWコスト=HAコスト or CIコスト 24 コストの設定 SW-HA間の通信コスト:4 SW-CI間の通信コスト:7 HA-CI間の通信コスト:∞ A SW-HA間の通信コスト:2 SW-CI間の通信コスト:2 HA-CI間の通信コスト:∞ B SW-HA間の通信コスト:8 SW-CI間の通信コスト:6 HA-CI間の通信コスト:∞ C SW-HA間の通信コスト:3 SW-CI間の通信コスト:1 HA-CI間の通信コスト:∞ D E SW-HA間の通信コスト:6 SW-CI間の通信コスト:4 HA-CI間の通信コスト:∞ 定義③: 通信コスト=通信時間 25 コストの設定 SW-HA間の通信コスト:4 SW-CI間の通信コスト:7 HA-CI間の通信コスト:∞ A SW-HA間の通信コスト:2 SW-CI間の通信コスト:2 HA-CI間の通信コスト:∞ B SW-HA間の通信コスト:8 SW-CI間の通信コスト:6 HA-CI間の通信コスト:∞ C SW-HA間の通信コスト:3 SW-CI間の通信コスト:1 HA-CI間の通信コスト:∞ D E SW-HA間の通信コスト:6 SW-CI間の通信コスト:4 HA-CI間の通信コスト:∞ 仮定②: HA-CI間の通信コスト=∞ 26 コストの設定 SW-HA間の通信コスト:4 SW-CI間の通信コスト:7 HA-CI間の通信コスト:∞ A SW-HA間の通信コスト:8 SW-CI間の通信コスト:6 HA-CI間の通信コスト:∞ SW-HA間の通信コスト:2 SW-CI間の通信コスト:2 HA-CI間の通信コスト:∞ B C SW-HA間の通信コスト:3 SW-CI間の通信コスト:1 HA-CI間の通信コスト:∞ D E SW-HA間の通信コスト:6 SW-CI間の通信コスト:4 HA-CI間の通信コスト:∞ 仮定③: 上記の通信コスト以外の通信コストは発生しない 27 ネットワークグラフの作成 中間領域 A B C D E 28 ネットワークグラフの作成 ソース 中間領域 SW 0/5 0/3 0/7 0/6 0/2 A B C D E 0/1 0/5 青:HWコスト 赤:SWコスト 0/4 0/9 HW シンク 0/9 29 最小カットを求める ソース 中間領域 SW 0/5 0/3 0/7 0/6 0/2 A B C D E 0/1 0/5 青:HWコスト 赤:SWコスト 0/4 0/9 HW シンク 0/9 30 最小カットを求める ソース 中間領域 SW 4/5 3/3 最小カット 7/7 6/6 1/2 A B C D E 1/1 3/5 青:HWコスト 赤:SWコスト 4/4 6/9 HW シンク 7/9 31 最小カットを求める ソース SW領域 HW領域 SW 4/5 3/3 最小カット 7/7 6/6 1/2 A B C D E 1/1 3/5 青:HWコスト 赤:SWコスト 4/4 6/9 HW シンク 7/9 32 ハードウェア領域を ハードウェアアクセラレータとカスタム命令に分割 ソース SW領域 HW領域 SW 4/5 3/3 最小カット 7/7 6/6 1/2 A B C D E 1/1 3/5 青:HWコスト 赤:SWコスト 4/4 6/9 HW シンク 7/9 33 ハードウェア領域を ハードウェアアクセラレータとカスタム命令に分割 ソース SW領域 HA領域 SW 4/5 CI領域 3/3 最小カット 7/7 6/6 1/2 A B C D E 1/1 3/5 青:HWコスト 赤:SWコスト 4/4 6/9 HW シンク 7/9 34 最小カット容量を求める 最小カット容量:34 ソース SW領域 SW 4/5 HA領域 CI領域 最小カット 7/7 3/3 6/6 1/2 A 4/4 B C 3/3 D E 6/6 1/1 定理: 最小カット容量は機能分割の最小コストに等しい 3/5 6/9 Harold S.Stone, "Multiprocessor Scheduling with the Aid of 4/4 7/9 HW Network Flow Algorithms.", IEEE Transaction on Software 赤:SWコスト Engineering, Vol.SE-3, No.1, シンク pp.85-93, January 1977. 黒:SW-HW間の通信コスト 青:HWコスト 35 発表内容 背景・目的 機能分割問題 機能分割アルゴリズム 実験結果 まとめ 36 実験環境 Terasic Technologies社製 DE2開発学習ボード CycloneⅡ(EP2C35 FPGA)※内部にM4K(4kByte RAM) NiosⅡ/f(ソフトコアプロセッサ 32bit) 開発ソフト QuartusⅡver9.0 NiosⅡIDE ver9.0 SOPC Builder ModelSim-Altera ver6.4a 等 被分割システム 64点高速フーリエ変換システム 37 PUSH! 緑:ソフトウェア領域 黄:ハードウェアアクセラレータ領域 青:中間領域 送信機 受信機 64点FFT演算器 ROM RAM 38 入力データ 出力データ ヘッドシグナル ステート・マシン 4点FFT演算器 コントローラー ROM メモリ メモリ・ マネージャ ヘッドシグナル シフト・ レジスタ RADIX-4 バタフライ 演算器 回転因子 乗算器 39 目的:面積最小化 緑:ソフトウェア領域 出力データ 制約条件:実行時間3000[s]/ 4846.64[s] 入力データ 緑:ハードウェアアクセラレータ領域 ヘッドシグナル ステート・マシン 4点FFT演算器 コントローラー ROM メモリ メモリ・ マネージャ ヘッドシグナル シフト・ レジスタ RADIX-4 バタフライ 演算器 回転因子 乗算器 40 コントローラの処理負荷の割合[%] 20.92 19.09 アドレス保持 ROM読み込み アドレス計算 24.16 35.82 各演算器の制御 41 FFT実行回数:1,000,000回 目的:面積最小化 制約条件:実行時間3000[s]/4846.64[s] 実験結果 システムの面積[LCs] システムの実行時間[s] 800 6000 696 700 5000 5004.31 4846.64 5049.69 600 4000 500 400 3000 300 2000 200 100 0 0 56 86 1000 0 3.53 42 発表内容 背景・目的 機能分割問題 機能分割アルゴリズム 実験結果 まとめ 43 まとめ ソフトウェア/ハードウェア・アクセラレータ/カスタム命令 の3分割に対応した機能分割アルゴリズムを提案・評価 提案手法により分割したシステムを実装した結果、以下 のような結果が得られた 全てハードウェアで実装した場合に比べて面積が約92%減 全てソフトウェアで実装した場合に比べて実行時間が約3%増 制約条件を約40%オーバー 私は実験において、失敗など一度たりともしていない。この方法ではうまく行か ないということを発見したのだ。 -Thom as Alva Edison-