Comments
Description
Transcript
スライド 1
ソフトウエアとハードウエア処理の特徴 とネットワーク処理の高速化 2011年4月20日 @広島工業大学 内田智久 E-sys, IPNS, KEK はじめに はじめに エンジニアが開発する製品は多種多様です 家電や機械制御の 組み込みシステム 特定処理を行うために作られた 専用システム PCやワークステーションを用いた 汎用システム 2 はじめに デジタル技術が使われる場所 非常に広い! ほとんどの製品はデジタル技術を採用している コンピュータPCだけではない CPU数では組み込みの方が圧倒的に多い デジタル技術 = ハードウエア + ソフトウエア 3 はじめに 求められる性能も色々 とにかく 色々な アプリケーション とにかく 小さく とにかく 高速処理! 装置毎に求められている性能が違う 4 はじめに ハードウエアとソフトウエアの比 ハードウエアとソフトウエアの比と内容は どのように決まるのか? 組み込み機器など特定用途向けの専用装置では 自由に設計することになる 皆さんはどうやって決めますか? 5 はじめに より良く分ける為 装置の目的により異なる ハードウエアとソフトウエアの 特徴を理解して適材適所に配置 6 はじめに 一言で言うと・・・ 性能/コストを 最大にする 高性能とは? 速さや複雑さだけが性能だろうか? 7 はじめに 話の内容 どんな処理が ソフトウエアに適し ているのか ソフトウエア どんな処理が ハードウエアに適し ているのか ハードウエア 開発の立場から関係を見てみたい どんな処理をソフトウエアで処理して、どんな処理をハードウエアで処理すればよいのか? どこにどの様に使えば有利なのか分かる 8 はじめに ハードウエア化による高速化例 Hyper Suprime-Camプロジェクト 少し特殊ですがTCPをハード化しました。 主焦点カメラ 149mm x 79mm こんな小型でもギガビット・イーサネットを フルレートでデータ転送できます 何故ハード化しなければいけなかったのか? 9 機器間通信としての ネットワーク技術の有効性 開いたシステムを構築できる 同じ言葉を話す事が出来る ネットワーク 複数の機器が協調して処理をする メンテナンス性向上 処理の分散化 多種多様な機器の組み合わせによる新しい処理の可能性 10 ソフトウエア処理 と ハードウエア処理 11 ソフトウエア処理とハードウエア処理 ソフトウエア プログラムなので変更が簡単 12 ソフトウエア処理とハードウエア処理 ハードウエア 物なので一度作ると簡単には変更できない 13 特徴1 ソフトウエア 変更が容易 ハードウエア 変更が困難 チップ内回路を変更できる物もある(FPGA) 14 ソフトウエア処理とハードウエア処理 ネットワーク処理 例えばWebサーバ 例えばWebクライアント Ethernet ソフトウエアでなければ いけないのか? Webサーバ Webクライアント TCP/IP TCP/IP Ethernet Ethernet 15 ソフトウエア処理とハードウエア処理 ソフトウエア処理とハードウエア処理 多くの処理は お互いに置き換え可能 ソフトウエア 処理 もちろん、ハードは変更できない ハードウエア 処理 変更する事を忘れた場合、 ハード処理、ソフト処理は何で決めるのか それぞれの特徴を見てみます 16 ソフトウエア処理とハードウエア処理 特徴2 処理方法が異なる ソフトウエア(逐次処理) 順番に一つずつ処理する ハードウエア(並列処理) 同時に複数を処理する 回路が同時に複数動く それぞれ長所と短所がある 17 ソフトウエア処理とハードウエア処理 ソフトウエアの処理方法 プログラム プログラムの変更により処理内容を変更できる 一つの仕事 命令1 命令2 同時に複数の命令処理や 仕事が出来ない 命令3 CPU : 演算器 命令 結果 結果が出るまで時間がかかる 最近は複数のCPUを 使う事もあるが数個程度 命令を一つずつ処理する (逐次処理) 18 ソフトウエア処理とハードウエア処理 ソフトウエア処理の特徴 プログラム 【長所】柔軟性が高い プログラムの変更により処理内容を変更できる 一つの仕事 命令1 命令2 同時に複数の命令処理や 仕事が出来ない 命令3 CPU : 演算器 命令 命令を一つずつ処理する (逐次処理) 最近は複数のCPUを 使う事もあるが数個程度 結果 【短所】処理が遅い 結果が出るまで時間がかかる 【長所】処理内容と回路規模が無関係 もちろん速度の限界はある 19 ソフトウエア処理とハードウエア処理 ハードウエアの処理方法 一つの仕事 一つの仕事 同時に複数の命令、仕事を処理できる 命令1処理回路 命令1処理回路 命令2処理回路 命令2処理回路 命令3処理回路 命令3処理回路 : : 命令 命令 結果 結果 一つの命令に一つの処理回路が必要 処理を変更する為には回路変更が必要 20 ソフトウエア処理とハードウエア処理 ハードウエア処理の特徴 一つの仕事 一つの仕事 【長所】高速処理 命令1処理回路 命令1処理回路 命令2処理回路 命令2処理回路 命令3処理回路 同時に複数の命令、仕事を処理できる 【欠点】処理内容と回路規模が関係する 一つの命令に一つの処理回路が必要 命令3処理回路 分岐処理が苦手 : : 命令 命令 【欠点】柔軟性が無い 処理を変更する為には回路変更が必要 結果 結果 21 ソフトウエア処理とハードウエア処理 特徴のまとめ ソフトウエア ハードウエア 長所 長所 変更が容易 処理と回路規模が無関係 逐次処理 並列処理 処理速度が速い 短所 短所 処理速度が遅い 変更が困難 処理と回路規模が関係する 複雑な処理が得意 単純な処理が得意 条件分岐が多く含まれる処理 条件分岐が少ない処理 22 ソフトウエア処理とハードウエア処理 一つの方針(無難な案) 基本はソフトウエアで処理 処理速度が満たされる事を確認する事が重要 ソフトウエア処理では間に合わない時 単純な処理をハードで処理する 分岐が少ない処理 高い柔軟性を持たせたまま高速化 23 ソフトウエア処理とハードウエア処理 仮に・・・・ ハードウエアが ソフトウエアのように変更できたら・・・ どう思いますか? ハードウエア化しても柔軟性を持つ 24 ソフトウエア処理とハードウエア処理 書き換え可能ハードウエア ハードウエアの欠点である低い柔軟性を克服する デジタル回路が実用化されている ソフトウエアの様にダウンロードして 使用する 個人でも集積回路が作れる! 一つからIC化できる 時と場合により機能変更できる 実験しながら処理方法を決定できる FPGA: Field Programmable Gate Array 25 ソフトウエア処理とハードウエア処理 最近の流行 Linuxが動く!! Linuxが動く環境をFPGA内に構築できる 低価格FPGA 47mm Ethernetポート Webサーバを動かしたり出来る ハードも柔軟なシステム 72mm プログラム格納用 Flash Memory *CPUはFPGA内に組み込まれている 価格は数万円 26 高速化の例 TCP/IPのハードウエア化 ソフトウエアが無い特別な例です 27 開発理由 大きいと組み 込めないけど 小型 で 熱が出なけれ ば良いけどね 低消費電力 で とにかく速く 転送して ギガビットとかで 高速にデータ転送 したい! 28 既存技術の問題点 高速PC(ワークステーション)を想像してください CPUが必要 消費電力大 高速転送する為には高速動作CPU 大容量メモリが必要 数Mbyte 部品数が多いので大きくなる 専用ハードウエアを作るしかない! 29 ハードウエア化の問題点 回路が 巨大になる TCP/IPプロトコル スイートは巨大だ! TCP処理 は 複雑だ! TCPの ハードウエア化 30 どうやって解決したのか? 小型装置用に機能を限定した とにかく安定した高速転送 TCP/IPプロトコルスイートの大半は使用頻度が少ない 必要な機能を選びハードウエア化した 複雑な処理は遠隔PC 遠方から制御できる仕組みを実装した 31 専用ハードウエア例 FPGA CCD読み出し制御 メモリ制御 ネットワーク処理 Gigabit Ethernet 149 mm ポート フレームメモリ 79 mm DDR2-SDRAM FPGAとはプログラミング可能なハードウエア 設計したハードをダウンロードして動かすことが出来る 32 転送レート測定結果 Avg. Utilization ~ 95% (950 Mbps) 理論限界値 TCPセグメントの正味の転送レート 安定している Server→ Client Client → Server 33 高速TCPプロセッサの応用例 34 Hyper Suprime-Cam プロジェクト (国立天文台 すばる望遠鏡 次世代主焦点カメラ) 巨大デジカメ!! 国立天文台ハワイ観測所すばる望遠鏡 35 主焦点カメラ ここに取り付けるカメラ CCD 110枚 36 データ処理の内容 ここに使った! TCP通信 旅してきた光子 1010000111010011 0111001001010100 1010010111010011 電荷 CCD Analog信号 Digital信号 ADC (Analog-To-Digital Converter) Packet Packet Packet Network (Ethernet) PC フレーム・メモリ この部分を一つの装置に 37 エレクトロニクスの概要 主焦点カメラに組み込む 小型、低消費電力 CCD 110枚 主焦点カメラ 2GByte/1画像 高速データ転送 ギガビットイーサネット すばる望遠鏡 38 読み出しエレキへの要求 小型であること カメラの近くに置く為 低消費電力である事 熱は悪影響を与える この様な装置は 開発するしかない 大容量画像メモリ 1画像2Gbyteのデータを一時保存する為 1画像を約10秒でコンピュータへ転送する 画像を取る時間を少しでも長くしたい 39 主焦点カメラ ここに取り付けるカメラ CCD 110枚 40 読み出しモジュール このモジュールを2枚使用する FPGA CCD読み出し制御 メモリ制御 ネットワーク処理 Gigabit Ethernet 149 mm ポート フレームメモリ DDR2-SDRAM 79 mm 41 現在は・・・ 現在、最終組み立て確認中! 年末にファーストライト! 42 おわりに ソフトウエア処理とハードウエア処理の特徴 比率と内容で装置が特徴づけられる ハードウエア化TCPによる高速化例 難しい事に惑わされずに 個性ある機器開発を行ってください!! 43