Cソースコード解析による ハード/ソフト最適分割システムの構築

Slides:



Advertisements
Similar presentations
生体情報を利用したオンライン認証システムに関する研 究 情報工学科 大山・山口・小尾研究室 学士課程4年田中 丈登.
Advertisements

Chapter11-4(前半) 加藤健.
2000年 3月 10日 日本電信電話株式会社 三菱電機株式会社
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
Capter9 Creating an Embedded Test Bench ( )
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
計算機アーキテクチャ特論Chapter.6.6~6.9
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
Verilog HDL 12月21日(月).
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
「まめだくん Ver.1.0」 特徴と利用方法.
CSP記述によるモデル設計と ツールによる検証
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
A Study on Performance Enhancement of Symmetric-Key Cryptography and its VLSI Implementation Zaldy ANDALES 大阪大学大学院工学研究科情報システム工学専攻 白川研究室.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Occam言語による マルチプリエンプティブシステムの 実装と検証
プログラム実行時情報を用いたトランザクションファンクション抽出手法
OpenMPハードウェア動作合成システムの検証(Ⅰ)
静的情報と動的情報を用いた プログラムスライス計算法
オペレーティングシステムJ/K (実時間処理システム)
高速剰余算アルゴリズムとそのハードウェア実装についての研究
読み出し回路のアップグレードに向けた研究
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
「iQUAVIS」 によるハード・ソフトの 横断的な構想検討
動的依存グラフの3-gramを用いた 実行トレースの比較手法
MPIとOpenMPを用いた Nクイーン問題の並列化
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
リモートホストの異常を検知するための GPUとの直接通信機構
実行時情報に基づく OSカーネルのコンフィグ最小化
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
Ibaraki Univ. Dept of Electrical & Electronic Eng.
TIME SIGNAL: 集合知を利用した赤信号点灯時間の取得手法
通信機構合わせた最適化をおこなう並列化ンパイラ
動的データ依存関係解析を用いた Javaプログラムスライス手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
Q q 情報セキュリティ 第11回:2004年6月18日(金) q q.
5.RSA暗号 素因数分解の困難性を利用した暗号.
実行時情報を用いて通信を最適化するPCクラスタ上の並列化コンパイラ
各種ソート回路のハードウェア化と ハード/ソフト最適分割化の検討
ディジタル回路の設計と CADによるシステム設計
Javaバイトコードの 動的依存解析情報を用いた スライシングシステムの実現
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
バイトコードを単位とするJavaスライスシステムの試作
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Q q 情報セキュリティ 第4回:2005年5月12日(金) q q.
Intel SGXを用いた仮想マシンの 安全な監視機構
ソフトウェア保守のための コードクローン情報検索ツール
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
秘匿リストマッチングプロトコルとその応用
静的情報と動的情報を用いた Javaプログラムスライス計算法
高精細計算を実現するAMR法フレームワークの高度化 研究背景と研究目的 複数GPU間での袖領域の交換と効率化
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
プロセッサ設計支援ツールを用いた 独自プロセッサの設計
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
並列処理プロセッサへの 実数演算機構の開発
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

Cソースコード解析による ハード/ソフト最適分割システムの構築 高性能計算研究室 M2 和田智行 2009/02/20

研究背景と目的 背景 目的 高速化、低消費電力化などにコデザインは必要 大規模化によるシステムの複雑化 システムにはハードとソフトのバランスが必要 目的 Cソースコード解析による最適なハード/ソフト分割案を提案するシステムの構築 ソフトマクロCPUによるハード/ソフトの分割実験 ハード/ソフト最適分割システムの適用と検証 Misty1暗号、AES暗号、SHA-1

ハード/ソフト最適分割システム 目的 条件・制約 設計の早期段階で分割領域の特定 ハード/ソフトの最適な分割を支援 Cソースコード解析 性能・コスト・並列性解析 分割パターン評価 分割パターン生成 最適分割パターン出力 C言語ソースコード システムの特徴 性能・コスト・並列性 分割パターン ユーザ要求 最適な分割パターン 関数・モジュール分割 目的 設計の早期段階で分割領域の特定 ハード/ソフトの最適な分割を支援 Cソースコード解析 条件・制約 ハードウェアのリファレンスとなるソースコード 関数がハードウェアモジュールに対応 ポインタ・構造体・標準関数は対象外 各関数の制御はmain文にまとめる

ハード/ソフト最適分割システムの構成 実装言語はRuby 独自の内部表現を使用 制御(インタフェース) ― ソースコード 字句解析 関数・モジュール分割&抽出 プリプロセッサ抽出 CDFG・FSM抽出 制御文・変数抽出 分割パターン生成部 全分割パターン生成 前処理部 CDFG・FSM 演算式評価データ ループ文 実装環境記述ファイル 並列効果算出 並列性解析部 DFG・FSM 変数リスト クロック数 回路規模 メモリ量 動作周波数 SW負荷割合 性能・コスト解析部 出力部 分割パターン モジュール並列効果 モジュール性能 ユーザ要求 最適な分割パターン出力 並列可能性出力 実装言語はRuby 独自の内部表現を使用

実験方法 Misty1暗号、AES暗号、SHA-1に適用 各関数の解析値を算出 全分割パターンの評価値を算出 SW実行サイクル数、SW負荷割合、HW実行サイクル数、回路規模、メモリ量、最高動作周波数、並列性 全分割パターンの評価値を算出 実行サイクル数と回路規模のみで全パターン評価 速度(1:0)・回路規模(0:1)・バランス重視(0.5:0.5) ユーザ要求を満たす、最適な分割パターンを算出 ソフトマクロCPUで実測値を求め、解析値と比較

Misty1暗号アルゴリズム 64ビットブロック・128ビット秘密鍵暗号 FL・FO・FI・KSの4つの機能ブロックモジュールに分割 8ループの場合を対象 FL 16 32 KLi1 KLi2 Loop(N times) KLi KLi+1 KLi+1, KOi+1 KLi, KOi 平文(64bit) 暗号文(64bit) FO FL KLn+2 KLn+1 FO 16 9 7 32 16 16 S9 KOij S7 FI KIij KIi2 KIi1 S9

Misty1暗号で各モジュールの性能解析 全体の誤差の平均は0.1 FI・FLのハードウェア化が効果的 各性能により分割パターンの評価 FI FO FL KS 解析値 実測値 SW実行サイクル数[Cycles] 47 36 247 199 48 41 576 551 SW負荷割合[%] 45 46 52 10 5 12 17 HW実行サイクル数[Cycles] 1 4 3 8 回路規模[Slices] 256 232 784 1026 16 2064 2489 メモリ量[Bytes] 28 39 140 43 24 228 最高動作周波数[MHz] 88 63 20 34 108 155 35 59.6 並列性 なし ― 全体の誤差の平均は0.1 FI・FLのハードウェア化が効果的 各性能により分割パターンの評価

Misty1暗号での全分割パターン評価 FI S H FO FL KS 全ての重視項目で、KS以外がハードウェアのパターンが優秀

ユーザ要求を考慮した分割案の評価 要求を満たさないものは0 FO以外をハードウェア化したものが優秀 ◎要求 回路規模:実行サイクル数=0.1:0.9 回路規模・・・3000slice以下 実行サイクル数・・・4500clock以下 動作周波数・・・30MHz以上 メモリ使用量・・・10KByte以下 FI S H FO FL KS 要求を満たさないものは0 FO以外をハードウェア化したものが優秀

AES暗号アルゴリズム 128ビットブロック秘密鍵暗号(鍵は可変) 5つの機能ブロックモジュールに分割 鍵長が128ビットの場合を対象 AddRoundKey SubBytes ShiftRows MixColumns 暗号文(128bit) KeyExpansion 拡大鍵 (128 or 192 or 256 bit) 平文(128bit) 秘密鍵 (128 or 192 or 256bit) Loop(N times)

AES暗号での実験 AddRoundKey、ShiftRows、MixColumnsのハードウェア化が効果的 重視項目 KE Add Shift Mix Sub 回路規模 [Slices] 実行サイク ル数[Cycles] 評価値 解析値 実測値 速度 バランス H 2314 1600 1775 1397 1 0.5 S 25269 31246 512 1266 7285 5618 0.765 0.779 0.770 AddRoundKey、ShiftRows、MixColumnsのハードウェア化が効果的 全体的に妥当な最適パターンを選出 回路規模比率 SW負荷割合

ハッシュ生成アルゴリズムSHA-1 組込み機器向けベンチマークMiBenchより選出 5つの機能ブロックモジュールに分割 ハッシュ計算を行う MessagePaddingはソフトウェアで固定 ハッシュ計算を行う GetF・GetK・Rotateの3つの  モジュールを使用 メッセージ 512bit Block生成 Loop(Block数) Loop 80times{  Temp=Rotate+f(b,c,d)+e+K+input e=d d=c c= Rotate b=a a=Temp } Message Padding 32bitシーケンス を80個生成 Sequence Generate Culculate Hash ハッシュ値の更新 Add Hash Rotate GetF GetK ハッシュ化データ

SHA-1での実験 実測値と解析値によるバランス重視の評価値で比較 2つの評価値の整合性が高い SG S H Add GetF GetK Rotate 2つの評価値の整合性が高い ハードウェア化の優先度の高いモジュールの割り出し

考察 Misty1暗号、AES暗号 SHA-1 ハード/ソフト最適分割システムは有効 性能値の解析精度が高い 分割パターンの選出は妥当 ユーザ要求を満たした最適な分割パターンの選出 SHA-1 全パターンの評価値を参照することで、分割パターンの傾向探索 ハードウェア化の優先度の決定 ハード/ソフト最適分割システムは有効

まとめ 今後の課題 ハード/ソフト最適分割システムによるMisty1暗号、AES暗号の分割パターンの妥当性検討 ユーザ要求を考慮したハード/ソフト最適分割による分割パターン検討 SHA-1における分割パターンの傾向探索と分割パターンの妥当性検討 ハードウェアのコスト・性能見積もりの向上 様々なアプリケーションへのシステムの適用 マルチコア実験による並列性解析の妥当性検証 今後の課題