********************************************************************** セッションS2-a チュートリアル テーマ:組み込みシステムの低消費電力化技術 講師:冨山宏之(名古屋大学)、近藤正章(電気通信大学) 日時:2009/8/28 9:10〜10:20 参加人数:53名(終了時) ********************************************************************** ☆このセッションの流れの説明と自己紹介  最初20分〜25分 T氏による簡単な説明  残り        K氏による具体的な説明 ☆紹介  K氏:計算機アーキテクチャ、プロセッサ関連に詳しい方 ☆T氏の話(20分〜25分) ○背景  組み込み、LSI設計では低消費は重要(1990年代初旬ごろから)。   ←携帯電話の登場。  携帯機器を作っているメーカーの目指していたもの(差別化)。   1.軽量化 ⇔ バッテリーの寿命     →機器そのものの消費電力を下げる。   2.通話時間  デジタル情報家電の普及   ICチップ;微小な電流で動作させなければならない。 ○低消費化のメリット  1.バッテリの長期化。  2.製造コストの低減。   LSIを冷やさないといけない(自分の熱で死ぬ(誤動作)→違う部品で直す)。   電源は重い。   地球温暖化対策。  3.信頼性   電力を下げるとシステムを安定に動かせる。  4.環境   地球の温暖化対策に役立つ。    一人10ワット → 全体で130万キロワット ○今日のプロセッサの電力消費量(インテル)  サーバ気むけ 100W  デスクトップ  60W (最近は100ワット近い)   DSPに特化させるだけで電力を低消費化できる  ノートPC    30W  組み込みシステム向け           1W ○電力消費のメカニズム  1.消費電力    LSIには特有の式 E=RIじゃない。    瞬間的発熱量、冷却量を決めるときに用いる  2.消費エネルギー    仕事量    消費電力の時間積分    バッテリ寿命をのばす時に用いる ※今回の講義では2つを同じものとして見る ○消費電力  動的な消費電力   スイッチングによる消費電力  静的な消費電力   リーク電力による消費電旅行 ○今日のLSI = CMOS  pMOS、nMOSを使用  0で1、1で0. 導通⇔遮断  電力を消費する=電荷が流れる 。電荷がためってGNDに流れ出すと電力を消費する。  これを水道管にたとえることが出来る。   水をためて捨てる=電荷をためて流す(電力を消費する) ○CMOS回路のまとめ  出力が安定しているときには電流が流れない。  だだもれになることがない。←どちらか一方は閉じている。  ←ただ、これも限界に達してきている。 ○消費電力の計算式 それぞれの回路の消費電力の合計  全部たすのは無理(100万ゲート)  →回路全体で見る(活性化率など)    ○静的な消費電力:リーク電力って?  CMOS回路では理想どうりに遮断されず、だだもれはしないまでも、下の止める力が 弱くて漏れてしまう  トランジスタを小さくする  トランジスタの微細化→全体を小さく→電源電圧を下げなくてはならない   →ばねの強さも小さくしなけれ ばならない       ←直感的で現実的には正しくないかもしれない ○リーク電力の式  Vth=ばねの強さ  ばねの強さが小さく、熱量が大きくなるとリークが大きくなる  →リーク電力が加速度で的に増加する(何もしないと)   自分の熱でまた消費電力が上がってしまう ○デスクトップ用Intelプロセッサの歴史  回路の規模が年々大きくなっている  約10年前5V →1V   少ない電源  消費電力 16W→100W  大きくなっている ○消費電力の今後の動向  消費電力   現在:100W   将来:200Wで頭うち   ←200Wを超えると経済的に成り立たない。熱に対する対策などで    技術的に200Wに抑えれるわけではない。 ○消費電力の今後の動向2  今までは電源電圧を下げるおかげで消費電力ののびをおさえてきた(5V→1V)  ←ノイズが大きくなっている   →これ以上無理   →これからは電源電圧に頼らずにほかの方法でおさえる必要性が出てきている ○まとめ  これから具体的にどう避けるか、という技術について近藤先生に ☆質疑応答(なし) ☆K氏のお話 :内容の説明 組み込みシステムの低消費化技術ということで、今回基礎的なみなさんがすぐに使える ようなすでに使われるようになっている技術を中心に紹介 ●5W1H(5W1H)  WHO :消費電力化の主体  WHAT :電力の式のどこを対象に下げようとしているのか  WHEN :低消費電力化を実施する時期  WHERE:どこを対象にしているのか  WHY :なんのために行うか      どれかを意識して設計しないといけない  HOW :どのように →今回はHOWを中心に紹介 :動的電源管理 ●動的電力管理=DPM  システムの運営中の状態によってし電力供給などを制御  各コンポーネントが電力モードを備えている必要がある。   電力モード    アクティブモード;高性能モード/低電力モード。    他にスリープ(スタンバイ)モード     スイッチング電力リーク電力を抑える手法 ●電力モード切替  ポリシーベース   あらかじめ設定されたポリシーに従い、電力モードを切り替え    1.バッテリー駆動時にモード切替(画面暗くなる等)     2.時間できりかえ    3.負荷ベース      システムやコンポーネントの稼働状況/負荷に応じて電力モード切替    4.ユーザ指示 ●電力モードの実装技術(3つ)  クロックゲーティング   使用していない回路ブロックのクロック供給を停止    無駄なスイッチングを抑制    Aの削減  パワーゲーティング   使用していない回路ブロックん電力供給を停止    供給電圧低減    リーク電力削減  供給電圧の低減   使用していない回路ブロックの供給電圧を低減    リーク電力の低減 これからこの3つを具体的に説明 ●クロックゲーティング  使用していないブロックのクロック供給を停止  停止信号をもちいることによって、細かく供給電圧の制御可能    = クロック供給を停止  原理:ブロックに供給すると動いていなくても電力を消費する。     クロック信号もスイッチングにより電力    消費→これらを抑制できる ●パワーゲーティング  電源供給を停止   無駄なスイッチング抑制   リーク電力抑制 ●最近のシステムでクロックゲーティングやパワーゲーティング等の制御方法  ACPI=仕様   アプリケーションからのインターフェースを定義   システムの各コンポーネントの状態を定義    1.グローバル/スリープステート    2.Processor Power State     C1ステートなど:CPUの電源管理用の状態を定義。それぞれによって何    3.Device Power state    4.Deveice and Processor Performance State   インテルでは    C0〜c6ステートまで保持     C0〜c3は同じ、c4からは最近追加。    マルチコアへの拡張も行われている     各コアごとにステートを切り替えできるようになっている。      ただこれはハードウェアで自動的に制御されている。  なぜステートを分けるか   消費電力と復帰時間にはトレードオフの関係    場合によって適切にステートを設定する必要がある。 ●モード切替時のオーバヘッド  モード切替時にはオーバヘッドが発生する   時間的オーバヘッド    モード切替にかかる時間   エネルギー的オーバヘッド    モード切替に必要なエネルギー    BEP(Break Evan Point)     消費電力の削減量とオーバヘッドが釣り合った状態      これ以上時間がたつならスリープモードに切り替えてもよい時間 ●オーバヘッドを考慮した切り替えポリシー  一般的に、どこでウェイクアップするかなど間隔を知ることは難しいが、 統計的な傾向は存在(プロファ イル)しているので、それを利用する。 ●最適なタイムアウト時間の決定  積分して平均消費エネルギーを求めて定める。 :動的電源電圧制御 ●動的電源電圧制御(DVS;Dynamic Voltage Scaling)   実行時に電源電圧Vを変更    消費電力と性能のトレードオフ ●DVSの利用  時間に余裕がある場合にゆっくり実行   変更できない時間の途中でで終了して無駄ができないように、パワーを平均的に   利用できるようにする  にする。  プロセッサのストール時間を利用   ストールが頻発する場合周波数を下げてもほとんど性能は低下しない  図:メモリで性能が抑えられない場合は周波数下げてもだめ?   ●DVS VS DPM  時間に余裕がある場合   一般的にゆっくり実行したほうが消費エネルギーは小さくなる。 ●DVSの制御手法  5W1Hが重要 ●動的な電圧切替のデモ  何も動かしていなくてもウインドウズが勝手にモードを変えてくれる。   ●最適な電源電圧、周波数の設定  任意の電圧が設定できる場合   ちょうどデッドラインでタスクが終了するような電圧が最適。   例:)350→300と400がベスト :低消費電力化プログラミング ●メモリアクセスの削減  メモリアクセスは消費電力大→消費電力を抑えるうえでメモリアクセスの削減が 一番大切  削減手法   キャッシュヒット率の向上    ループブロッキング     実行時間がはやくなって消費電力が小さくなる   スクラッチパッドメモリの利用    ソフトウェアで制御可能な高速、小容量なオンチップSRAM     置き換え制御が不要などのメリット      →キャッシュ使用よりも消費電力を削減できる。    スクラッチパッドメモリの有効性     全データがSPMに収まりきる場合には消費電力が削減できる ●低消費電力化の最近の動向  1.マルチコア化   経験則。周波数に頼らずに性能を向上できる。   マルチコアの性能と電力のトレードオフ    複雑なコアを用いるよりも複数のコアを用いたほうが消費電力を抑えられる。  2.アクセラレータの利用   多数のシンプルなプロセッシングエレメント(PE)を搭載し、複数PEで並列に   処理することで高性能を達成。    柔軟性と電力効率のトレードオフ     例;高並列型アレイ型プロセッサ、再構成可能プロセッサ   欠点;プログラムが複雑になる。 ☆まとめ  低消費電力化   非常に重要   現在でも非常に多くの手法が提案されている   ソフトウェアでの指示をどのようにしていくかを研究することがこれから重要に   なってくる。   ☆質疑応答 <質問者K> 質問:シンプルなコアをたくさん使うということだったが、そのコアのシンプルさは そのぐらい? 回答:要求される性能に依存。    性能と電力は指数的な関係→立ち上がらない範囲でのシンプルさに抑える。    だが一概にはどのぐらいシンプルにすればよいとはいえない。 以上。