2012/10/2   Utsunomiya University, Dept. of Information Systems Sci.   1




 研究室紹介(2012)
   宇都宮大学 大学院工学研究科
   情報システム科学専攻
   大川猛
2012/10/2        Utsunomiya University, Dept. of Information Systems Sci.   2




 大川研究室の研究テーマ
• Reconfigurable Computingという研究分野
         (リコンフィギャラブル:機能可変)

• 【1】機能可変なハードウェア(FPGAなど)による、
プログラム実行の変化に対応する実行時最適化方式
 • 目的:       処理性能向上、消費電力削減
             + 設計生産性向上(コスト削減)


• 【2】 FPGAを含む分散システム向け基本ソフトウェア
 • 目的:       処理性能向上、消費電力削減
             + 設計生産性向上(コスト削減)
2012/10/2             Utsunomiya University, Dept. of Information Systems Sci.   3




FPGAとは
• FPGA : Field Programmable Gate Array
• 現場(フィールド)で(機能を)プログラム可能なゲートアレイ
   • ゲートアレイとは:  トランジスタ(ゲートアレイ)を作ってある半導体
      基板に、配線層だけをオーダーメイドで作る製造手法
• フィールドでプログラム可能にする方法は?
   • 配線+スイッチをたくさん用意しておく
   • スイッチのON/OFFで、配線を(ある程度)自由につなぎかえる
   • スイッチ=トランジスタ



            mem                                  mem
2012/10/2             Utsunomiya University, Dept. of Information Systems Sci.   4




FPGAのデザインフロー
                 ソース
                 (RTL)                                          デザイン検証

                                                           論理シミュレーション
               Synthesis                                      (RTL)
               論理合成
                                                           論理シミュレーション
             Implementation                                 (ゲートレベル)
                配置配線
                                                         タイミング情報を含めた
            コンフィギュレーション                                    シミュレーション
               データ生成


  FPGAデバイスへの                                                  実デバイスでの
    ダウンロード                                                     動作検証
2012/10/2                        Utsunomiya University, Dept. of Information Systems Sci.   5




RTLの例 (Verilog-HDL)
            module bcount4 ( RSTb, clk, Q );
            output [3:0] Q;                                クロックが立ち上がる度に
            input RSTb, clk;

            always @ (posedge clk)
            begin
                    if (!RSTb)                                   ここに書かれたことをする
                             Q <= 4'h00;                         (レジスタQを書き換える)
                    else                                         →Register Transfer Level
                             Q <= Q + 4'h01;
            end

            endmodule
2012/10/2                              Utsunomiya University, Dept. of Information Systems Sci.   6




RTLからの回路合成後のネットリスト例
 module bcount4 ( clk, RSTb, Q );
 output [3:0] Q;
 input clk, RSTb;
 wire N7, N8, N9, N10, N4, N5, N6, n1, ¥add_12/carry[2] , ¥add_12/carry[3] ;
              AND2 I11 ( .A(n1), .B(RSTb), .Y(N10) );
              AND2 I6 ( .A(Q[1]), .B(Q[0]), .Y(¥add_12/carry[2] ) );
              XOR2 I7 ( .A(Q[1]), .B(Q[0]), .X(N4) );

             AND2 I4 ( .A(Q[2]), .B(¥add_12/carry[2] ), .Y(¥add_12/carry[3] ) );
             XOR2 I5 ( .A(Q[2]), .B(¥add_12/carry[2] ), .X(N5) );
             AND2 I8 ( .A(RSTb), .B(N4), .Y(N9) );
             DF ¥Q_reg[0] ( .CP(clk), .A(N10), .X(Q[0]), .Y(n1) );

             XOR2 I3 ( .A(Q[3]), .B(¥add_12/carry[3] ), .X(N6) );
             AND2 I9 ( .A(N5), .B(RSTb), .Y(N8) );
             DF ¥Q_reg[1] ( .CP(clk), .A(N9), .X(Q[1]) );

             AND2 I10 ( .A(N6), .B(RSTb), .Y(N7) );
             DF ¥Q_reg[2] ( .CP(clk), .A(N8), .X(Q[2]) );

             DF ¥Q_reg[3] ( .CP(clk), .A(N7), .X(Q[3]) );
 endmodule
2012/10/2      Utsunomiya University, Dept. of Information Systems Sci.   7




機能可変なハードウェア(FPGA)の応用
• FPGAは最大で約200万の基本素子が搭載
   • 超並列で計算するシステムを設計することが可能

• 例)
   • 画像処理・画像認識・音声処理
   • 流体シミュレーション・電磁界シミュレーション

【1】プログラム実行の変化に対応する実行時最適化方式
• 複雑なアプリ → 入力データにより処理の負荷が大幅に変動する
  • 通常の固定的なハードウェアは、画一的処理しかしない。
  • 機能可変なハードウェアを活用し、ハードウェアを必要に応じてプログラム
• 機能可変なシステムを如何に設計するか(プログラミングモデル)
  • RTLでの設計では難しい → 高位言語合成、設計言語の適材適所組合せなど
2012/10/2                       Utsunomiya University, Dept. of Information Systems Sci.   8


問題1:FPGAに作った回路を
どうやってソフトウェアから動かす?
 • ALTERA SOPC Builder
 • Xilinx EDK (Embedded Development Kit)
 →FPGAベンダーからツールが販売されています

 – Xilinx EDKの概要
   – プラットフォーム・ベースの回路設計ツール
        • IP部品をバスに接続することで、FPGA回路を設計可能
    – 組込みソフトウェア開発ツール
      • FPGA上のARMハードコアもしくはMicroBlazeソフトコアを上記プラット
          フォームに接続
        • ソフトウェア開発(C/C++)Eclipse環境
        • JTAG経由でのデバッグ(ソースコードレベル)
        • OS
            – XMK(Xilinx Micro Kernel)
            – 商用Linux (MontaVista, WindRiver, BlueCat…)
            – 商用RTOS(VxWorks)
2012/10/2               Utsunomiya University, Dept. of Information Systems Sci.   9


問題2:FPGAに作ったソフトウェアを
どうやって外部のシステム(PC等)から
動かす? FPGA ソフトウェア
           C/C++
                 PC
                     ソフトウェア
                    Java・C#など

                   CPU                                            CPU


                  自分の
                  作った
                   回路



【2】FPGAを含む分散システム向け基本ソフトウェア
      FPGAとPCを接続する為のソフトウェア開発
         ◦   FPGA上のソフトウェアはC/C++で記述、何らかのOS・ミドルウェアを使用
      FPGA上の回路やソフトウェアをオブジェクトとして扱うことで
        開発生産性を向上(オブジェクト指向の設計が可能)
            ORB(オブジェクト要求ブローカ)の考え方
2012/10/2        Utsunomiya University, Dept. of Information Systems Sci.   10




教育方針
• 学部の卒業生には
  • 【防御力】企業に勤めた時に周囲の環境に負けない力
       • 自分で成長するための力、這い上がれる力                          (メタスキル)
   • 【防御力】情報技術者としての常識
     • プログラミング・情報整理術・情報検索術
   • 【攻撃力】就職活動でアピールできる力
     • 自分を売り込む能力 (プレゼン能力)
• 大学院の卒業生には
  • 上記の力にくわえて・・・
  • 【防御力】セルフマネジメント力
       • 計画的に物事を進める力、プロジェクトを失敗しないスキル
   • 【攻撃力】情報技術者としての強み
     • 世界一・世界初の成果
2012/10/2   Utsunomiya University, Dept. of Information Systems Sci.   11




大川研究室のまとめ
• つまり研究テーマは、
  • 【1】機能可変なハードウェア(FPGAなど)による、
    プログラム実行の変化に対応する実行時最適化方式
  • 【2】 FPGAを含む分散システム向け基本ソフトウェア
• 応用は、
  • Android(スマートフォン)・組込みシステム・ロボッ
     ト制御
• 情報工学と半導体・電子工学の境界
   = ソフトウェアとハードウェアの境界
    Reconfigurable Computing
• 興味を持ったら説明会にどうぞ

2012研究室紹介(大川)

  • 1.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 1 研究室紹介(2012) 宇都宮大学 大学院工学研究科 情報システム科学専攻 大川猛
  • 2.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 2 大川研究室の研究テーマ • Reconfigurable Computingという研究分野 (リコンフィギャラブル:機能可変) • 【1】機能可変なハードウェア(FPGAなど)による、 プログラム実行の変化に対応する実行時最適化方式 • 目的: 処理性能向上、消費電力削減 + 設計生産性向上(コスト削減) • 【2】 FPGAを含む分散システム向け基本ソフトウェア • 目的: 処理性能向上、消費電力削減 + 設計生産性向上(コスト削減)
  • 3.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 3 FPGAとは • FPGA : Field Programmable Gate Array • 現場(フィールド)で(機能を)プログラム可能なゲートアレイ • ゲートアレイとは: トランジスタ(ゲートアレイ)を作ってある半導体 基板に、配線層だけをオーダーメイドで作る製造手法 • フィールドでプログラム可能にする方法は? • 配線+スイッチをたくさん用意しておく • スイッチのON/OFFで、配線を(ある程度)自由につなぎかえる • スイッチ=トランジスタ mem mem
  • 4.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 4 FPGAのデザインフロー ソース (RTL) デザイン検証 論理シミュレーション Synthesis (RTL) 論理合成 論理シミュレーション Implementation (ゲートレベル) 配置配線 タイミング情報を含めた コンフィギュレーション シミュレーション データ生成 FPGAデバイスへの 実デバイスでの ダウンロード 動作検証
  • 5.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 5 RTLの例 (Verilog-HDL) module bcount4 ( RSTb, clk, Q ); output [3:0] Q; クロックが立ち上がる度に input RSTb, clk; always @ (posedge clk) begin if (!RSTb) ここに書かれたことをする Q <= 4'h00; (レジスタQを書き換える) else →Register Transfer Level Q <= Q + 4'h01; end endmodule
  • 6.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 6 RTLからの回路合成後のネットリスト例 module bcount4 ( clk, RSTb, Q ); output [3:0] Q; input clk, RSTb; wire N7, N8, N9, N10, N4, N5, N6, n1, ¥add_12/carry[2] , ¥add_12/carry[3] ; AND2 I11 ( .A(n1), .B(RSTb), .Y(N10) ); AND2 I6 ( .A(Q[1]), .B(Q[0]), .Y(¥add_12/carry[2] ) ); XOR2 I7 ( .A(Q[1]), .B(Q[0]), .X(N4) ); AND2 I4 ( .A(Q[2]), .B(¥add_12/carry[2] ), .Y(¥add_12/carry[3] ) ); XOR2 I5 ( .A(Q[2]), .B(¥add_12/carry[2] ), .X(N5) ); AND2 I8 ( .A(RSTb), .B(N4), .Y(N9) ); DF ¥Q_reg[0] ( .CP(clk), .A(N10), .X(Q[0]), .Y(n1) ); XOR2 I3 ( .A(Q[3]), .B(¥add_12/carry[3] ), .X(N6) ); AND2 I9 ( .A(N5), .B(RSTb), .Y(N8) ); DF ¥Q_reg[1] ( .CP(clk), .A(N9), .X(Q[1]) ); AND2 I10 ( .A(N6), .B(RSTb), .Y(N7) ); DF ¥Q_reg[2] ( .CP(clk), .A(N8), .X(Q[2]) ); DF ¥Q_reg[3] ( .CP(clk), .A(N7), .X(Q[3]) ); endmodule
  • 7.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 7 機能可変なハードウェア(FPGA)の応用 • FPGAは最大で約200万の基本素子が搭載 • 超並列で計算するシステムを設計することが可能 • 例) • 画像処理・画像認識・音声処理 • 流体シミュレーション・電磁界シミュレーション 【1】プログラム実行の変化に対応する実行時最適化方式 • 複雑なアプリ → 入力データにより処理の負荷が大幅に変動する • 通常の固定的なハードウェアは、画一的処理しかしない。 • 機能可変なハードウェアを活用し、ハードウェアを必要に応じてプログラム • 機能可変なシステムを如何に設計するか(プログラミングモデル) • RTLでの設計では難しい → 高位言語合成、設計言語の適材適所組合せなど
  • 8.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 8 問題1:FPGAに作った回路を どうやってソフトウェアから動かす? • ALTERA SOPC Builder • Xilinx EDK (Embedded Development Kit) →FPGAベンダーからツールが販売されています – Xilinx EDKの概要 – プラットフォーム・ベースの回路設計ツール • IP部品をバスに接続することで、FPGA回路を設計可能 – 組込みソフトウェア開発ツール • FPGA上のARMハードコアもしくはMicroBlazeソフトコアを上記プラット フォームに接続 • ソフトウェア開発(C/C++)Eclipse環境 • JTAG経由でのデバッグ(ソースコードレベル) • OS – XMK(Xilinx Micro Kernel) – 商用Linux (MontaVista, WindRiver, BlueCat…) – 商用RTOS(VxWorks)
  • 9.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 9 問題2:FPGAに作ったソフトウェアを どうやって外部のシステム(PC等)から 動かす? FPGA ソフトウェア C/C++ PC ソフトウェア Java・C#など CPU CPU 自分の 作った 回路 【2】FPGAを含む分散システム向け基本ソフトウェア  FPGAとPCを接続する為のソフトウェア開発 ◦ FPGA上のソフトウェアはC/C++で記述、何らかのOS・ミドルウェアを使用  FPGA上の回路やソフトウェアをオブジェクトとして扱うことで 開発生産性を向上(オブジェクト指向の設計が可能)  ORB(オブジェクト要求ブローカ)の考え方
  • 10.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 10 教育方針 • 学部の卒業生には • 【防御力】企業に勤めた時に周囲の環境に負けない力 • 自分で成長するための力、這い上がれる力 (メタスキル) • 【防御力】情報技術者としての常識 • プログラミング・情報整理術・情報検索術 • 【攻撃力】就職活動でアピールできる力 • 自分を売り込む能力 (プレゼン能力) • 大学院の卒業生には • 上記の力にくわえて・・・ • 【防御力】セルフマネジメント力 • 計画的に物事を進める力、プロジェクトを失敗しないスキル • 【攻撃力】情報技術者としての強み • 世界一・世界初の成果
  • 11.
    2012/10/2 Utsunomiya University, Dept. of Information Systems Sci. 11 大川研究室のまとめ • つまり研究テーマは、 • 【1】機能可変なハードウェア(FPGAなど)による、 プログラム実行の変化に対応する実行時最適化方式 • 【2】 FPGAを含む分散システム向け基本ソフトウェア • 応用は、 • Android(スマートフォン)・組込みシステム・ロボッ ト制御 • 情報工学と半導体・電子工学の境界 = ソフトウェアとハードウェアの境界 Reconfigurable Computing • 興味を持ったら説明会にどうぞ