ヒューマノイド・ロボットのための実時間分散情報処理 Distributed - Staff

CREST Symposium 2008 年 10 月
ヒューマノイド・ロボットのための実時間分散情報処理
産業技術総合研究所研究コーディネータ 松井俊浩
[email protected] http://drtp.dip.jp/
梗概: ヒューマノイド・ロボットのより高度な機能の実現には、内蔵する情報処理系の能力拡大、信頼性向上、
省電力化が必要である。そのために従来の集中制御方式に代わって、30 以上の各関節の半数を小型計算ノ
ードが制御する分散制御方式を取り入れる。分散化によって、スケーラブルな処理能力の向上とデジタルネッ
トワークによる信頼性の向上が可能となる。ヒューマノイドロボットは、全体が大規模な実時間システムであり、分
散システム実現のためには、大容量の実時間通信が必要となる。システムのキーコンポーネントとなるのは、実
時間計算と実時間通信に優れた新規のプロセッサ RMTP の設計とそのシステム LSI としての実現、また実時
間分散処理、高度な電力制御を可能とするオペレーティングシステムと WCET 解析技術である。ロボットプロ
グラムの性能計測についても述べる。
キーワード: 実時間処理、分散処理、ヒューマノイド・ロボット、実時間 OS、並列処理、システム・オン・チップ
Distributed Real-Time Processing for Humanoid Robots
Toshihiro MATSUI
Digital Human Research Center (DHRC)
National Institute of Advanced Industrial Science and Technology (AIST)
Abstract: In order for humanoid robots to perform skillful tasks, a scalable and reliable computing
system at low power consumption is required. A distributed computing system where a half of the
total 30 motors are controlled by separated processing nodes instead of traditional centralized
configurations is presented. Distributed processing provides the scalable computing power
together with a higher reliability by digital networking. Since a humanoid robot is a large scale
dynamic system, real-time networking is needed for a distribution. Key components are a novel
processor with real-time processing and real-time communication capabilities and its
implementation as a system LSI for miniatulization, and software technologies for real-time
operating systems, for WCET analysis and for power conservation. Robot software benchmarks
are also discussed
Keywords: real-time processing, distributed processing, humanoid robot, real-time operating
system, parallel processing, system LSI
1. 研究の背景と狙い
1.1. 人間型ロボットの誕生
来るべき少子高齢化社会においては、ロボットが人間のパートナーとしてより重要な役割を果たすことが
期待されている。従来のロボットは、主に産業用ロボット、すなわち溶接、塗装、搬送、部品実装などを行う
自動機械として発展してきた。オフィスやホームにおける多様な環境、局面において適切な機能を発揮す
るためには、知覚、知能、運動のそれぞれにおいて飛躍的な性能改善が必要となる。また、人間と共存し
て人間の活動を補助する目的からは、その形態として人間型のロボットを目標にするのが自然である。
人のように歩くロボットの研究は 1970 年代に開始されたが、本格的な二足歩行が可能になったのは、
1996 年に発表されたホンダの P-2 である[Hirai1997]。その後、多くの研究機関で二足歩行ロボットの研
究が活発化し、東京大学と川田工業によって H-7 ヒューマノイドロボットが、また産総研と川田工業によって
HRP-2(図1)[五十棲 2004]が発表されている。H-7 は、床と障害物の判別して短時間での歩行軌跡の生
成、オンラインでバランスをとりながらの遠隔制御、つま先を使った階段昇降、人間の動作を規範にした全
身動作のプラニングなどの成果を上げた。HRP-2 は、人間との協調作業(パネルの搬送)、視覚を使った
ハンドリング、転倒からの復帰、階段昇降、全身を使ったクランク回し、狭隘地のすり抜けなど各種の新しい
動作を実現し、愛知万博では、恐竜ロボットに姿を変えて二足歩行の可能性をアピールした。静的なバラ
ンスを保った歩行からダイナミクスを考慮した歩行に、バランスを維持しながら未知の物体を押す、簡単な
不整地の歩行などに進化しており、2005 年には、ソニーの QRIO、ホンダの ASIMO が、両足が地面から
離れるランニングをデモした。QRIO は、ロボットに情動を持たせることの可能性にもチャレンジした。
産業型ロボットと比較して、ヒューマノイドロボットでは、次の四点が重要である。
①
自由度(アクチュエータ)数の違い: 自律搬送台車では多くて 4 個、単体のマニピュレータではグリ
ッパを入れても 7 個であるのに対し、ヒューマノイドロボットは全身に 30 個ほどの自由度を有する。
このためコンフィギュレーション空間(各関節の角度を一つの次元とする多次元空間)が膨大になり、
全探索による軌道計画が不可能になる。多軸制御のための電気的入出力機構、信号線、制御タス
クの数が増え、システムが大規模かつ複雑になる。
②
実時間制約の違い: ロボットは実世界とインタフェースするために、物理的、時間的制約を受ける。
すなわち複数のアクチュエータに対して規則正しく、短時間で新しい目標値指令を送り出す必要が
ある。従来ロボットでは、情報処理の負荷が増大してモータサーボの実時間制約が守れなくなった
場合には、精度を犠牲にしてサンプリング
図1 HRP-2 ヒューマノイドロボット
周期を延長させたり、動作を停止させること
③
身長 1539 ㎜、体重 58 ㎏、可動関節
で安全性を保つ。ヒューマノイドは、直立し
数 30 (2 足 2 腕はそれぞれ 6 自由
ているだけでも全身のサーボを継続する必
度)、歩行速度 2 ㎞/h 。経済産業省
要がある。周期が乱れた不完全な制御に
「人間協調・共存型ロボット」プロジェ
陥ると転倒して事故につながる深刻さがあ
クトにおいて産総研と川田工業が中
る。
心になって開発
センシング、認識、動作計画の多様性:
従来ロボットは専用性が強いので、単一の
2
動作にチューニングすることができるが、人間型ロボットは、人間と共存する環境で人間と同じような
多様な動作を求められる。赤外線レーザーを使って対象を計測するような方法は不適当で、人間と
同じような五感を駆使して環境を認識し、条件に応じた適切な動作を計画・選択する機能が必要で
ある。
④
自律系、大電力制御: 人間型ロボットは移動するので、外部から電力を供給したり、知能処理系を
外部に設置することができない。ロボットに内蔵する電源によって多数のアクチュエータを駆動し、
大規模な情報処理系を行う。2 足歩行は瞬間的に大きな出力を必要とし、情報処理系に使える電
力はさらに制約される。これらを人間と等サイズの小さな筐体に搭載するための実装技術、放熱技
術も重要である。
1.2. ヒューマノイドロボットの技術の現状
上記のようなヒューマノイドロボット制御の特性を情報処理の用語に翻訳するならば、大きな計算能力、
高い実時間性、入出力等の拡張の容易さ、高い信頼性、省電力性への要請となる。これまでに開発されて
きたヒューマノイドロボットの情報処理系は、一般の PC をベースにしたものと、組み込み系あるいは FA 向
きのプロセッサに専用の実時間オペレーティングシステムを搭載したものの 2 種類がある。いずれにしても、
集中型の情報処理形態となっている。
1996 年に登場したヒューマノイドロボットホンダ P-2 の滑らかな歩行を実現したのは、背中に搭載された、
4 個の Micro SparcⅡプロセッサ(60Mips)であった[Honda-URL]。P-2 は、VME バスを介した密結合
のマルチプロセサ構成をとっている。
産総研と川田工業が中心になって開発した 2002 年型の HRP-2 には、1.2GHz の Pentium-Ⅲプロセ
ッサが 2 個用いられている(図 2)。Pentium-Ⅲの mips 値は、クロックの 2 倍程度であるとして単純な性能
比較を行うと、6 年で 20 倍の性能向上が図られている。後述するように、この計算能力で歩行は可能であ
るが、動作の計画や高度な認識処理には十分とは言えない。HRP-2 では、2 個の CPU は別々の PC マ
ザーボードに実装され、2 枚のマザーボードは 100Mbps の Ethernet で接続されている。D/A、A/D、カウ
ンタなどセンサやアクチュエータ用 I/O は、PCI カードによって実装される(図 2)。チャネル数は、関節の
30 と同数以上必要であり、数が多いためにコネクタやケーブルの配置が、問題となりやすい。また、VME
バスシステムや、PC マザーボードは、据え付け型の使用が前提であり、ヒューマノイドの筐体中で強い加
速度や振動を受けながら動作することを想定していない。センサー、アクチュエータへの配線は、HRP-2
では 180 本を越え、それらが屈曲する
狭い関節部分をモーターユニットと接
しながら通り抜けていくため、ロボット
の動作や外部からの衝撃によって断
線等の障害を発生しやすい。通常動
作時に受ける加速度は最大 1.5G 程
度であるが、背臀部にクッションを付け
て転倒着地させたときは 10G 以上に
達する。実際に、HRP-2 のオペレー
図2 HRP-2 の制御コンピュータシステム構成
ションにおけるハードウェアトラブルの
3
多くは、配線に起因する。断線によって制御が停止すれば、ロボットは転倒して大きなダメージを受ける。
消費電力および熱についても限界に近づきつつある。CPU 単体の消費電力は、P-2 での 20W から、
HRP-2 では 60W に増大しており、3GHz 級の Pentium-4 は、80W 以上に達している。人間の脳は、質
量比では全身の 2-3%の器官であるが、ほぼ 20W を消費し、安静時には 20%のエネルギーに相当する。
ヒューマノイドロボットの筐体は閉鎖型であり、過剰な高温になるのを避けるために、極力コンピュータの消
費電力を下げる必要がある。ヒューマノイドに搭載する 4-500Wh の電池で高度な情報処理を行い、多数
のモータを動かしながらの活動時間を数時間確保するためには、低消費電力、高信頼性で高い処理能力
を発揮するコンピュータが求められる。
1.3. ヒューマノイドロボットの情報処理
ヒューマノイドロボットに人間並みの動作をさせるために、どれくらいの計算パワーが必要なのかは、動
作を実現するアルゴリズムがわからない限り正確な予測はできないが、Hans Moravec は、素性のよくわか
っている網膜の神経細胞の数と同等の処理を行うコンピュータアルゴリズムの比較から、人間の脳の情報
処理能力は 1 億 mips であると試算した[Moravec2000]。以下では、動作計画、認識、実時間制御、通信
の観点から、現状のヒューマノイドロボット制御に必要な処理量と比較してどの程度の処理量が必要かを見
積もり、新しい情報処理系を設計する指針とする。
1.4. 動作計画
ヒューマノイドロボットが安定して歩行するためには、目的地に近づくための経路計画と着地点の計画、
自分の体にぶつからない手足の軌道計算、足を蹴り上げるタイミングとトルク配分などを短時間で計算し、
運動中は 1-5ms の周期で計 30 個のアクチュエータをサーボする。歩行に必要なセンサーは、各軸の角
度や足の接地覚、ジャイロなどであるが、障害物と衝突しないで動作するためには、触覚、視覚、聴覚など
を通じて環境モデルを獲得し、多次元空間の中で、他の物体と干渉しない姿勢の連鎖を探索するプランニ
ングが必要である(図 3)。探索空間は、ロボットを一つの剛体と見なすと 6 次元、関節数で数えると 30 次元
となる。角度を 1 度ずつに分割し、xyz 各軸を 512 に分割すると、6 次元の場合で探索空間の大きさは 6
×1015 に達する。完全探索は不可能であり、ヒューリスティク探索が不可避である。
ヒューマノイドロボットの姿勢と運動は、30 の関節に与える角度と速度で決まるが、接地足や把持腕を通
じて環境から与えられる制約だけでは、全
部の運動パラメータを決定することができ
ない。すなわち、ロボットは冗長な自由度を
持つので、もっとも適当な動きになるように、
ある規範に基づいて動作(関節角と角速度
の時系列)を決める必要がある。
2000 年に H7 の前身に当たる H5 ロボッ
トを用いて、ジョイスティックのリアルタイム
指令に従ってヒューマノイドを歩かせるとい
うオンライン歩行プラニングを世界で初め
て達成した[Kagami2002]。そこでは、次
図 3. 視覚で環境を認識し、障害物を避けながらボト
ルを把握する動作の計画
4
の 1 歩をどこに踏み出すか、一歩分の動作期間中の下半身の約 15 の関節の角度とトルクの軌跡を数十ミ
リ秒で計算している。現在のヒューマノイドロボットが完全に平らな床でないと歩行できないのは、1 秒分の
動作をあらかじめ作っているので、接地時に受ける予測できない力に応じた姿勢を決めることができない
からである。動作中に受ける外乱を考慮し、よりロバストな歩行を実現するには、約 10 倍の計算パワーによ
って常に短期計画を作成し続けることが必要である。
より長期の歩行計画では、5m×5m の平面を 256×256 に分割し、障害物を避けつつ目的地に到達す
るための足の接地点と歩行パターンを計算する。全く障害物がない環境であれば接地点の計画は容易で
あるが、たとえば 3m 先の目的地に達するのに 5m の障害物回避軌道になる場合、1m あたり 5 万の探索
枝の処理が必要であり、1.4GHz Pentium-Ⅲで 1 秒を要する [Chestnut2003]。
1.5. 認識
ロボットが環境に応じて自律的に動作を計画したり、変化する環境の中でも安全に歩行を行うには環境
の認識が必要である。また、物体把握、動体追跡などの動作、人との音声対話などの能力を発揮するため
には、特にパターン認識処理に大きな処理能力を必要とする。
最も大きな CPU パワーを消費する認識処理は、視覚である。従来、画像理解のためにはエッジ、テクス
チャ、面の法線などさまざまな特徴に基づく手法が提案されたが、3 次元世界で動くロボットでは、両眼立
体視による距離画像を用いる方法が最も有力である。2 眼の場合の距離画像生成の処理は、右画像の小
領域と相関の高い画像小領域を左画像のエピポーラ制約にそった領域で探索する。320×240 の画像か
ら 11×11 の小領域を対象として全画面の距離画像を生成する速度は、Pentium-Ⅲ@1.4GHz プロセッ
サで MMX 命令を駆使して、20ms 程度である。
上記速度は、毎秒 50 枚の距離画像生成が可能であるが、解像度が十分でない。一般的な 35 ㎜(35 ミ
リカメラ換算)の準広角レンズを用いると、320×240 の画像は、人間での視力0.1 に相当する。4 倍の 1280
×960 にすれば視力 0.4 に相当するが、処理能力は 16 倍必要となる。35 ㎜の視野角も十分ではない。
音響処理は視覚処理に次いで大きな処理能力を必要とする。マイクロフォンアレイによる音源方向の同
定、音声の周波数分析、HMM に基づく音声認識と音声合成には、高い信号処理能力を要する。高品質
な音声合成では、1秒間の音声の生成に、Pentium-Ⅲ@1GHz で 0.1-1 秒を要する。
1.6. 実時間実行
HRP-2 は、1 個の 1.2GHz Pentium-Ⅲを歩行制御に、もう一つを画像処理等に用いている。第一のプ
ロセッサの能力は、歩行パターン生成に 20%、入出力を含むサーボに 20%、センサ情報を用いたパター
ン修正による歩行の安定化に 20%を費やしている。歩行軌道は、5ms ごとの関節目標値が生成される。こ
の目標値を達成するべく、各関節では 1ms ごとの位置サーボを実行する。
一般に、サーボ周期が短い方が系は安定し、サーボゲインをあげることができる。しかし、パワーに比し
て制御対象が大きな慣性を持つ場合は、周期を短くすることには大きな意味はない。現在のすべてのヒュ
ーマノイドロボットは、位置制御を行っている。減速比が大きいので、通常の力制御を適用することは困難
であるが、力をセンスすることと非常に短い周期での位置制御が可能であれば、力制御と同じ効果が得ら
れる。現在の 5 倍程度に速度を上げることで、不規則な形状の表面にそって一定の力で押しつけながら滑
らすような、ならい動作等も実現できると予測される。そのために、目標値の生成を 1ms、サーボを 0.2ms
で行うことを目標とする。
5
1.7. 通信・管理
上記の3種類の処理の他に、プロセス間の同期と通信、名前空間の管理やディレクトリサービス、メモリ
等の資源管理、デバッグ支援など、オペレーティングシステムやライブラリが受け持つ広範な処理が必要と
なる。重要なのは、実時間処理の実現、すなわち決められた時刻にプログラムが走り、予測時間までの処
理の終了が保証できることである。実時間 OS として、H7 では、RT-Linux を、HRP-2 では ART-Linux
を使用している。HRP-1、ASIMO、Morph は VxWorks、SDR-4X や QRIO は Aperios、HOAP は
RT-Linux を使用している。前述した 0.2ms のサーボ周期をロボット全体で同期をとって実行するためには、
システムソフトレベルで 0.1ms 以下、ハードウェアで 0.05ms 以下の遅延に抑える必要がある。
一般に、処理が必要になるごとにプロセッサを割り当てるリアルタイム処理は、処理要求が複数たまった
後にまとめて処理を行う Unix 方式に比べてトータルのスループットが低下する。したがって、システムコー
ルやタスクスイッチの無駄時間を最小限にしなければならない。
発展途上にあるヒューマノイドロボットの情報処理系は、固定的なプログラムを実行するのではなく、多く
の研究者がソフトウェアを開発するプラットフォームとしての役割も果たさなければならない。次第に大規模
なシステムに成長するソフトウェアをモジュラーに開発していくために、インタフェース仕様を明確にしつつ
実装の細部を隠蔽するオブジェクト指向のフレームワークが有効である。HRP-2 では、オブジェクト指向型
分散プログラミング標準である CORBA に則った OpenHRP をソフトウェアプラットフォームとしている[金広
2003]。
1.8. 本研究のねらい
本研究は、ヒューマノイドロボットの情報処理系を分散型のコンピュータシステムで実装し、より高度で多
様な動作を可能にすることを目的とする。前記のように、ヒューマノイド実現の要となる情報処理系は、処理
能力、信頼性、消費電力、物理寸法の点で困難な壁に直面している。分散型の情報処理により、スケーラ
ブルな処理能力と高い機能拡張性が得られる。全体を冗長性のあるデジタルネットワークで接続すること
でアナログ信号線の延長を短縮し、高い信頼性が得られる。分散系での問題は、全体を協調させる実時間
制御が行えるか、小型化・低消費電力化が達成できるか、にある。限界を突破するために、実時間通信機
能を備えた新規の実時間・分散制御向きプロセッサを開発する。ソフトウェア開発を容易にするため、
Linux の実時間化を行う。ロボットとしては、既開発の HRP-2(図1)[五十棲 2004]をベースに、その次世
代機である HRP-3 を改造する形で研究開発を進める。
研究は、①実時間分散制御向きプロセッサ、RMTP の開発、②実時間・分散基盤ソフトウェアの開発、
③ヒューマノイドロボットへの実装と動作実証、の三つに大きく分けられる。各々を次の体制で実施する(グ
ループの代表者のみを記す)。
RMT-LSI グループ
慶應義塾大学大学院情報処理工学科
(山﨑 信行)
実時間通信・処理・制御用システムオンチップの研究開発
実時間処理機能、高性能計算処理能力、実時間通信機能、I/O 制御、省電力機能等を搭載した
実時間通信・処理・制御用プロセッサをシステム LSI 技術を用いて実現する。
基盤ソフトウェアグループ
東京大学大学院情報理工学系研究科 (石川 裕)
6
実時間オペレーティングシステムと開発環境の開発
8-16ways のマルチスレッド実行機能をハードウェアで備える RMT プロセッサの並列計算機能と
レスポンシブリンクによる実時間通信機能を最大限に引き出す実時間オペレーティングシステムを
構築する。
ロボット実証グループ
独立行政法人産業技術総合研究所 (比留川 博久)
ヒューマノイドロボットの分散制御系の研究
現在集中系として実装されているヒューマノイドの制御系を 30 以上のプロセッサによる分散制御
系で実現するための、制御ノードの設計と実時間・分散・並列ソフトウェアを開発する。
1.9. 目標
次のような性能の実現を目指す。
1.
RMT プロセッサによるスケーラブルな処理能力
–
2.
3.
4.
実時間制御
–
軌道生成 5ms Æ 1ms
–
サーボ
1ms Æ 0.2ms
–
通信
全身が 0.1ms で同期
高信頼・耐故障性
–
信号配線長を 1/20、コネクタ数 1/10
–
冗長構成とし、通信断絶で 1ms 以内の再構成
低消費電力
–
5.
35 ノードで Pentium4@2GHz×30 相当
情報処理系で 80W 以下
ロボット実証
–
ならい動作、力制御、高度な認識・計画機能
2. 研究の内容と成果
2.1. ヒューマノイドロボットの実時間分散制御系の設計
2.1.1
信頼性・耐故障性の向上
信頼性向上の常套手段は、①障害が起こりやすい部分を識別して最低限に抑えること、②系を分割して
局所的な障害が全体におよばないようにすること、及び③重要な部分は冗長系とすることである。もちろん、
障害の発生を検知する手段が備わっていることが必要条件である。
①の観点から、障害が起こりやすい部分は、長い配線やコネクタにある。制御プロセッサをセンサやアク
チュエータの近傍に配置することにより、配線の長さおよびコネクタ接合部を減らし、信頼性を向上させるこ
とができる。アナログ配線長が短縮できることにより、外乱ノイズに対する脆弱性も改善される。②の系の分
割は、ロボットの身体が手、足などの機能に分割されていることに合わせて、機能分散を中心とするが、負
荷の重い画像処理を末端のプロセッサに担わせるなどの負荷分散も行う。③の冗長性としては、ネットワー
7
クを 2 重系にするほか、プロセスのマイグレーションを可能にする。
障害の主たる原因である信号配線長を最小にし、分割数と冗長性を高めるために、分散の度合いは、2
腕 2 脚の単位ではなく、約 30 の各関節単位とする。すなわち、プロセッサをモータモジュールと一体化す
ることで信頼性、メンテナンス性を最大にする。そのためには、プロセッサモジュールにサーボ、通信、セン
サ情報収集の機能を持たせ、モータと同等のサイズに収める必要がある。
2.1.2
スケーラブルな処理能力
1980 年代以降、マイクロプロセッサの性能向上は、主にスケール則に従った低消費電力化と高速化、
命令パイプラインの多段化等による命令レベルの並列化によってきた。しかし、ゲート長が 90nm に縮小す
るに及んで漏れ電流の増大による低電力化の壁にぶつかり、さらに命令レベルの並列化も限界に達して
いる。これに対して、マルチスレッディングのようなスレッドレベルでの並列化やクラスターのような粗結合並
列化が有効な手段と見なされつつある。すなわち、プロセッサ内で複数のスレッドの並列実行、メモリを共
有しない複数のプロセッサでの分散処理である。
スレッド数やノードの数に応じて計算パワーが得られるかどうかは、対象問題の並列性に依存する。1.4
節と 1.5 節で述べた動作計画及び認識処理について並列性を検討した。動作計画の中で大きな時間を占
める計算は、物体同士の干渉を判定する幾何計算である。数十~数千の物体 n に対して n2 のペアの距離
計算が必要であるが、これらは相互依存関係がないので並列計算が可能である。認識処理における距離
画像の算出においては、多数の画像小領域のペアについて相関演算を施す処理が並列に実行できるだ
けでなく、相関演算そのものが MMX のような SIMD 命令によって並列化が可能である。音声認識におけ
る音素系列の探索処理も並列性がある。
2.1.3
ノード間通信
並列・分散処理が、高い性能を発揮するには、ノード間の通信が高速で行われることが必須である。特
に、ヒューマノイドロボットへの適用においては、分散制御システムの系全体を実時間処理する必要がある
ので、各ノード間通信の実時間性を保証する必要がある。そのために、後述するレスポンシブ・リンクによる
実時間通信を採用する。
2.2. RMT プロセッサ(RMTP)
ヒューマノイドロボットのような大規模な組み込み系で実時間・分散型の情報処理を行うためのプロセッ
サをシステム LSI として開発する。関節制御向き小型プロセッサと、大きな処理能力を必要とする認識・計
画用プロセッサを、同一のアーキテクチャの 2 種類のプロセッサとして開発する。それぞれをμRMTP と
HP-RMTP と呼ぶ。RMTP とは、Responsive Multi-Threaded Processor の略である[山﨑-URL]。
Responsive とは、外界のイベントに即時に応答する実時間性を指す。以下ではプロジェクト前期の目標で
あるμRMTP の設計、開発過程について述べる。
8
RMTP の命令セットアーキテクチャは、MIPS の上位互換とし、コンパイラ、オペレーティングシステム、
ライブラリ等の開発を容易にする。8 本の優先度付きマルチスレッドの並列実行、2 次元ベクトル演算器と
512 本のベクタレジスタによる並列計算、レスポンシブ・リンクおよび各種 I/O を集積している。[山﨑 2003,
Yamasaki2004]。プロセッサ部分のブロック構成を図4に、入出力部を含めたシステム LSI のブロック構
成を図 5 に示す。
Cache Mechanism
Instruction Fetch and Issue Mechanism
Instruction
MMU
Fetch Thread
Selector
PC(32bit)
PC(32bitx8)
PC Control
Unit
Phisical Address(32bit)
Instruction
Victim Cache
Decoder
Addr
Data
Addr
Data
Instruction
Wait Buffer
Instruction
Select(4inst.)
Register
File
Rename
Register
Load/Store Op.(1inst.)
Reorder Buffer
Load Data(64bit)
Commit Instruction(4inst.)
Operation/Data(4inst.)
Load/Store Op.(1inst.)
Reservation
Station
1inst.
1inst
Context Cache
Data
Read/Write
Buffer
Phisical
Addr
(32bit)
Instruction
Issue
Selector
Operation(4inst.)
Data
Wait Buffer
Memory
Access
Thread Op.
Instruction Type(8inst.)
Data
Cache
Data
MMU
Thread Control
Unit
Instruction
Analysis
Instruction
Buffer
Addr
Data
Priority(8bitx8)
Operation(8inst.)
Instruction(32bitx8)
Addr
Data
Data
Victim Cache
Addr
Data
Instruction
Cache
Addr
Data
2inst.
Reservation
Station
1inst.
Integer
Divider
Branch
Unit
1inst
Reservation
Station
4inst.
Integer
Unit
4inst
1inst.
2inst.
FP
Divider
1inst
Reservation
Station
1inst.
64bit
Integer
FP
Unit
1inst.
Vector
Integer
1inst
1inst
2inst
Common Data Bus Arbitor
Write Back(4inst.)
Instruction Execution Mechanism
図 4 RMTP の実行ユニットの構成
9
Reservation
Station
1inst.
Vector
FP
1inst
128/32bit
DDR SDRAM
μRMTP
32bit DDR SDRAM
for Responsive Link
RMT PU
128/32 bit
Real-Time Execution
8way Prioritized SMT
2D Vector Units
32 Context Cache
DDR SDRAM I/F
Memory bus (256bit)
Gateway
256/32bit DMAC
1ch
I/O bus (32bit)
PCI-X
IEEE
1394
64bit
66MHz
PC
1ch
UART
2ch
Digital
I/O
Camera Devices
PWM-in
PWM-out
Encoder
32bit
External
Bus
In: 3ch
Out: 9ch
Cnt: 9ch
AC/DC
Motors
32bit
DMAC
2cs 12ch
2dreq
2irq
ROM /
I/O Dev.
Responsive
Link
Data link
Event link
4ch
RMTP
RMTP
RMTP
RMTP
図 5 RMTP システム LSI の構成
2.2.1
RMT 機構(優先度付同時マルチスレッディング)
RMTP の最も特徴的な機能は、RMT 機構である。通常のプロセッサは、単一の命令ストリームだけを処
理し、カーネルのプリエンプションとスケジューリング機能によって複数スレッドを走らせる。図 6(a)に、通常
のプロセッサにおけるマルチタスクスケジューリングの様子を示す。カーネルがコンテキストスイッチを処理
するには、レジスタの退避と復帰、メモリ空間の切り替えなどが必要であり、その間は割り込みを受け付けら
れなくなる。また、命令ストリームが切り替わることにより、命令パイプラインやキャッシュのフラッシュが必要
となる。このために、Pentium 系のプロセッサでは数千クロックの処理時間が必要となる(図 6 の System
の部分)。ロボットのモータサーボでは、ユーザモードタスクの一回の処理は数百クロック程度の短時間で
繰り返されることが多く、カーネルのコンテキストスイッチ時間は非常に大きなオーバヘッドとなる。
これに対して、RMTP では、図 6(b)に示す実行の流れとなる。すなわち、プロセッサは最大 8 個のスレッ
ドのコンテキストをアクティブにすることができ、各々のスレッドには優先度が付けられる。最高優先度のス
レッドが優先的に演算器等の資源を使用し、余った資源を用いて低優先度のスレッドが同時実行される。
これらの処理は、すべてハードウェアで行われるので、カーネル(ソフトウェア)の介入は不要であり、タスク
スイッチのオーバヘッドはゼロとなる。資源の割り当てアルゴリズムには、実時間性を優先した RMT モード、
トータルなスループットを優先して極力実行ユニットの空きを減らす SMT モードがある。さらに、特定のスレ
ッドに対してパイプラインを割り当てる Fixed Issue Slot モード(いわゆる資源予約)がある。
10
(a)
Release Time
優先度高 Task 0
Task 1
Task 2
Task 3
Task 4
Task 5
Task 6
Task 7
System
Deadline
コンテキストスイッチ
Time
優先度低
(b)
優先度高 Task 0
Task 1
Task 2
Task 3
Task 4
Task 5
Task 6
Task 7
System
Time
優先度低
図 6 通常のシングルスレッドプロセッサでの実時間実行(a)と RMTP の実時間実行(RMT 実行) (b)
スレッド数が8は、ほとんどのロボット応用にとって十分である。しかし、割り込みの応答性を良くするため
に割り込みハンドラを別スレッドに割り当てたり、カーネルを複数のスレッドで構成するようなアプローチをと
ると不足が生じる。RMTP は、32 スレッド分のコンテキストキャッシュを備えている。これらは、ハードウェア
スケジューリングの対象とはならないが、ソフトウェアのスレッド切り替え命令で 4 クロックでアクティべートす
ることができる。合計 40 本のスレッドを微少なスイッチ時間で並行動作させることができる。
2.2.2
メモリインタフェース
8 スレッド同時実行のためには、大量の命令ストリームをメモリから絶え間なくフェッチする必要がある。そ
のためにメモリバンド幅の確保、キャシュの設計が重要である。一方、仮想記憶のためのデマンドページン
グは、実時間処理にとってはさほど重要ではない。大きなメモリバンド幅の確保のため、内部メモリバスは
256 ビット幅とした。システム小型化の要求の強いμRMTP では、外部バスは 32 ビット幅に、演算性能を
I-cache
CPU
MMU
Cache
256 bit
内部バス
論理アドレス
• アドレス変換
• メモリ保護
物理アドレス
• 物理アドレスキャッシュ
Pen4 L1
Pen4 L2
Xscale
SH-4
RMTP
DMA
Line size
N-way
64B
128B
8B?
32B
32 bit
I/Oバス
バスサイズ
変換
Memory
D-cache
12Ku
8KB
256KB-1MB
32KB
32KB
8KB
16KB
32KB
32KB
Resp
Link
図 7 RMTP のキャッシュメモリの構成
I/O
11
4-8
8
32
1-2
8
追求する HP-RMTP では、外部バス幅をデフォルト 128bit 幅としている。
RMTP のキャッシュは、コンテキストの異なるマルチスレッドで散逸しがちなメモリアクセスの性能向上を
ねらって、組み込みプロセッサとしては大きめの I32KB+D32KB、8-way の 1 次キャッシュだけからなるキ
ャッシュとしている(図 7)。最も特徴的なのは、実時間性を実現するために、キャッシュの更新アルゴリズム
として優先度を使用している点にある。図 8 に 32KB の配列をソートするプログラムをシミュレーションした
キャッシュミス率を示す。スレッド数が8のとき、4-way ではミス率が 8%であったのが、8way にすることで
1.4%にまで下げることができた。ラインサイズは 32B を基本とするが、ベクトル計算のような連続アクセスが
期待されるアプリケーションでは、32B の倍数でラインサイズを可変とできる。また、16 ライン分の victim
cache を備え、キャッシュ競合が発生した場合のペナルティの低減を図っている。キャシュメモリは、トータ
ルのスループットの向上に大きく寄与するが、メモリアクセスの順番や散逸性に左右されやすく、特にマル
チスレッド環境では他のコンテキストのメモリアクセスによって性能が大きく変わることがある。これは、実時
間処理にとって重要な実行時間の予測性を阻害する。そのため、RMTP では、キャッシュの一定量を特定
のスレッドに固定的に割り当てるモードを設けている。
図 8 キャッシュ性能シミュレーション
2.2.3
ベクトルユニット
ベクトル: 128entry
スカラー: 8entry
ベクトル: 256entry
スカラー: 16entry
16
Length 8
16本
FP:64bit, INT:32bit
8
32
FP:64bit, INT:32bit
ベクトル: 512entry
スカラー: 32entry
図 9 ベクトルレジスタの構成
8
FP:64bit, INT:32bit
32
16
16
FP:64bit, INT:32bit
8
FP:64bit, INT:32bit
64
16
32
32
FP:64bit, INT:32bit
16
FP:64bit, INT:32bit
12
8
FP:64bit, INT:32bit
低クロックでも高性能を発揮させるためには、命令アクセスを減らし、データの連続アクセスによってキャ
ッシュの有効利用を図るベクトル計算が有効である。ロボット応用では、3,4次元の座標変換、固有値計算、
一般逆行列、画像処理などでベクトル、マトリクス計算が多用される。RMTP は、単精度および倍精度浮動
小数点演算と、バイト/ハーフワード/フルワード長の整数計算のための 2 次元ベクトル計算ユニット、及
び各々512 個のベクトルレジスタとを備えている。例えば、8bit 整数演算であれば、1 クロックあたり 64 要
素の MAC 演算を行うことが可能である。同様に単精度浮動小数点演算であれば、1 クロックあたり 16 要
素の演算を行うことが可能である。ベクトルレジスタは、全スレッドで共有し、図 9 のようにさまざまなコンフィ
ギュレーションの中からアプリケーションに適したレジスタ数を各スレッドに確保することができる。
2.2.4
レスポンシブリンク(RL)
ロボットを分散方式で制御するためには、ノード間の通信機構が必要である。先に述べたように、全身が
高精度で同期した実時間制御を行うためには、Ethernet のようなパケットの衝突や再送が起こるような通
信方式は不適当で、実時間に向いたネットワークが必要となる。RMTP は、実時間通信ネットワークとして、
次の特徴を有するレスポンシブリンク(Responsive Link, RL と略)を備えている(図 10)。
•
USB や IEEE1394 の よ う な デ バ イ ス 接続用の ネ ッ ト ワ ー ク と 異 な り 、 ト ポ ロ ジ ー フ リ ー な
Point-to-point 通信
•
通信路は、高スループット通信向きのデータリンクと、低遅延通信向きのイベントリンク(各々は双方
向)から構成される。データリンクは、64 バイト固定長パケット、イベントリンクは、16 バイト固定長パケ
ットである。
•
パケットは、256 レベルの優先度を持ち、ルーティングノード(RMTP 等)において優先度に基づく
追い越し制御、優先度の付け替えによるパケットの加減速をハードウェアで行う。データリンクとイベ
ントリンクには独立した経路を設定できる。
•
パケットごとにハードウェアによる通信エラー訂正を 1 ホップごとに行い、再送を不要とする
•
通信速度は、12.5 ~ 800 [Mbps/link]で可変できる。
各ノードには 4 つの RL ポートが実装され、ルーティング
は、
各ノードで行う。32 ビットのヘッダを読み込んだだけでルー
Event: packet=16B
Data: packet=64B
ィング先が決まるのカットスルー方式なので、ノード 1 段の遅
テ
延
は 100Mbps 時に 320ns、ロボット全体では 3 マイクロ秒程
度
で通信可能である。数百程度までのノードを低遅延かつ高
バ
ンド幅でネットワークすることが可能である。
RMTP
レスポンシブリンクは、1998 年に提案し、1999 年に
SPARC コアや各種 IO と共にレスポンシブ・プロセッサとし
て
システム LSI 実装を行った。その後、RMTP の製作に当た
て、通信速度を引き上げた実装を行っている[山﨑 2004]。
っ
RMTP
RMTP
RMTP 国
内では、情報処理学会試行標準 ITSJ-TS 0006:2003 とし
標準化が完了し、現在は、ISO/IEC JTC1 SC25 WG4 に
おいて国際標準化作業を進めている。[RL 標準-URL]
て
RMTP
図 10 レスポンシブリンク
13
2.2.5
省電力制御
プロセッサの消費電力は、ほぼクロック速度に比例し、電源電圧の 2 乗に比例して増大する傾向がある。
また、クロック速度を上げるためには、電源電圧を高めにする必要がある。一方、I/O やメモリをドライブする
ためには、標準的な 2.5V, 3.3V などの駆動回路が必要となる。消費電力は、プロセスルールにも大きな影
響を受ける。従来、スケール縮小によって比例的な省電力化が可能であったが、ゲートの大きさに比してソ
ース・ドレイン間の距離が極端に短くなってきたため、リーク電流が増大し、90nm 以下に縮小することでの
省電力効果は薄れてきている。
μRMTP は、クロック速度を 100-133MHz 程度に抑え、同時にコアの電源電圧を 1V 以下にすること、
High Vt セルなどの最新の省電力回路を使用することで電力消費を削減している。クロックが遅いことによ
る性能劣化は、並列度を上げることで補う。RMTP は、大きなベクタユニットと多数の I/O を集積しているが、
すべてのアプリケーションで使用するわけではない。DVFS(Dynamic Voltage/Frequency Scaling)を強
力にサポートするために、μRMTP のコア電圧は 0.8V(Max33MHz)~1.2V(Max133MHz)の範囲で可
変である。さらに、ブロック毎にクロックラインを独立して制御することが可能であり、I/O 毎にクロックを停止
したり、周波数を滑らかに変化させることを可能にしている。このように、コア電圧とクロックをきめ細かく制
御することで省電力化を図る。
究極の省電力が必要となるのは、関節角度のバックアップである。ヒューマノイドのようなロボットでは、関
節軸の絶対角度を計測するセンサを取り付けないのが普通である。関節角サーボは、モータ軸に取り付け
られた、高精度のロータリエンコーダで制御される。このエンコーダは、モータが一回転する間に数千のパ
ルスを発生し、そのパルス数をカウントすることでモータ角度を知る。その角度をさらに積分した値を減速
機のギア比で除して、出力となる関節軸の角度を知る。情報処理システムをシャットダウンすると、この角度
積分値が失われ、関節角度が不定となる。すると、システムを再立ち上げする際には、各関節軸をゆっくり
と、ときにはマニュアルでリセット角度まで回転させ、ゼロ点合わせをする必要が生じる。ヒューマノイドのよ
うに多数の関節がある系では、この作業は大きな手間となるので、バッテリによる関節角度バックアップを
行う。その際の消費電力を極小にするため、プロセッサを極めて低クロックで動作させる。
2.2.6
ロボットデバイス制御
ロボット制御に必要なセンサやアクチュエータとインタフェースするための入出力機能をシステム LSI と
して実装する。モータの回転角をセンスするためのエンコーダカウンタ、モータへの電流指令を出すため
の PWM 出力、電流値をセンスするための PWM 入力、カメラから画像を入力するための IEEE1394 ポ
ートである(図 5)。デバイス制御では、AD/DA 変換器を用いてアナログ信号を入出力するケースが多いが、
μRMTP のデバイスインタフェースは、ノイズの影響を除くためにすべてデジタル I/O としている。高密度
のデジタル LSI にアナログ回路を混載することの諸問題を回避する目的もある。これらのデバイス制御の
他に、ホストとなる PC と接続するための PCI、システム機能を拡張するための外部バスを備えている。
2.2.7
パッケージングと SiP 実装
RMTP の設計は、論理合成からレイアウトまでを慶應義塾大学山﨑研究室で実施した。1400 万ゲート
のレイアウトには、産総研の AIST スーパクラスタの 8 ノードを使用して約 6 ヶ月を要した。製作は、TSMC
に委託し、2 回の試作によって 0.13μm、CMOS8 層の銅配線で、9.98 ㎜角のダイができあがった(図 11)。
1004 ピンを引き出せるパッケージを作成し、PCI 評価ボード上でデバッグを行っている(図 12)。ロボットに
14
9980μ
TOP 754
TOP 1004
CORNE
RTL
Ext
(ngp
io)
ieee1394
(ngpio)
uart
(ngp
io)
Link(ngpio)
Link_
sdram
(sstl)
Link
(lvds)
CORNE
RTR
LEFT 1
RIGHT 753
Link
(lvds)
Ext
(ngpio)
Link_
sdram
(sstl)
CORE
pp
pwm
(ngpio)
Sdram
(sstl)
Analog
LEFT 251 (TSMC)
CORNE
RBL
RIGHT 503
PCI(TSMC)
BOTTOM 252
Sdram(sstl)
CORNE
RBR
BOTTOM 502
図 11 試作したμRMTP のダイ写真、レイアウト、ピン配置
図 12 PCI 評価ボード(表、裏)
実装するためには、メモリとμRMTP を SiP としてさらに小型化する計画である。
2.2.8
性能
演算性能としては、100MHz でのピーク演算性能は、スカラ整数 400 MIPS、スカラ FP 200MFLOPS、
ベ ク タ 整 数 (32bit:3.2GIPS, 16bit:6.4GIPS, 8bit:12.8GIPS ) 、 ベ ク タ FP(64bit:1.6GFLOPS 、
32bit:3.2GFLOPS)を発揮する予定である。プロセッサの投機実行ロジック、MMU、ベクトル命令などに
いくつかのバグが見つかり、バグを回避するコードを生成するようにコンパイラ(GCC)を改造している。また、
PCI 評価ボード上では、メモリインタフェースの遅延の影響を避けるため、クロックを 31.25MHz に落とし
ている。このため、初期の性能には達していないが、ベンチマークによるクロック当たりの性能値の実測で
は、ほぼシミュレーションと同じ値を得ている。
2.3 実時間分散系基盤ソフトウェア
ロボット制御に限らず、実時間処理の目的は、決められた時刻(デッドライン)までに与えられた処理が終
了することを保証することである。ロボットでは、その処理に必要なデータにはなるべく新しい情報を使う必
要がある。終了時刻が保証されれば、新しいデータの取得をデッドライン寸前まで遅らせることができ、より
実世界の変化に即応した、精度の高い制御を実現することができる。ロボットのソフトウェアは、大きく認識
系、計画系、実行系に分けられる。認識系は、ビジョンや聴覚の処理を指し、数十ミリ秒以上の時間を要す
15
る。計画系は、目的地までの経路や足跡軌道を作り出すが、経路の長さや環境の複雑さに依存した処理
時間を要し、実時間性は低い。これに対して、実行系は、歩行中の各関節の軌道を制御し、1ミリ秒以下の
正確な時間管理を要求される。このように、ロボットのソフトウェアは、実時間制約の強いプロセスと、弱いプ
ロセス、非実時間プロセスで階層的に構成される。これはまた、実時間プロセスが、非実時間プロセスの擾
乱を受けやすいことも意味する。
実行系、すなわちモータサーボが最も短いサイクルで実行される。たとえ認識系が高速に異常を検知し
ても、アクションに反映するためにはモータサーボを駆動する必要がある。このため、モータサーボ以上の
即応性をシステムに課することは意味がない。また、モータサーボは、停止することなく継続的、周期的に
実行されるので、全系のクロックとしての意味を持つ。
以上の考察から、本プロジェクトでは、モータサーボクラスの実時間プログラムには、WCET(最悪実行
時間)を予測して厳密なデッドラインを静的に保証する。実時間 Linux による実時間スケジューリング機能
により、厳密な時間制約を保証する。また、バッテリー寿命を長くするために、ソフトウェアによる電力制御
機構を実現する。
2.3.1
WCET 予測ツール RETAS
与えられたプログラムの実行時間を予測するため、GCC(GNU Compiler Collection)を改造したツー
ルである RETAS を開発している。図 13 に示すとおり、GCC の内部表現である RTL から制御フローグラ
フを生成する。プログラムの基本ブロック毎にメモリアクセス遅延と命令実行時間を予測する。メモリアクセ
ス遅延の解析では、CPU アーキテクチャのキャッシュ機能をシミュレーションするツールを開発した。命令
実行時間の予測では、基本ブロック毎に、メモリ参照をレジスタ参照に変換することにより、メモリアクセスが
生じないコードに変換する。さらに、基本ブロックの開始点と終了点に実行時間計測のための命令を挿入
し、コード片を実機上で動かし実行時間を計測する。メモリアクセス遅延の解析結果と命令実行時間の計
測結果から、基本ブロックの実行時間が予測される。全ての基本ブロックの予想実行時間と制御フローから
最悪実行パスを求めることにより最悪実行時間を予測する。コンパイル時に静的に決定できない変数の値
による不確定性については、プログラマによる pragma 文の挿入が必要である。例えば、関数引数がルー
プ回数の上限値を決めているような場合、変数の取り得る値を pragma 文で挿入する。pragma 文は、通
常のコンパイラではコメント行として扱われるため、プログラムのポータビリティは確保される。
ソースコード
Annotation
メモリアクセス遅延の解析
RTL
Compile
RTL Level
Simulator
Modified GCC
TREE
RTL
Flow Analysis
実行フローの解析
Memory
Access Pattern
Cache
Simulator
Control
Flow Graph
Assembly
Code
Memory
Access Latency
Calculation
Timing Analysis
Tool
Instruction
Execution Time
命令実行時間の解析
図 13 WCET 解析フロー
16
Estimated
Execution Time
予測実行時間
表 1 は、Pentium-M と XScale に本
手法を適用した結果である。Pentium で
の予測値に大幅な誤差があるのは、仕
様が明らかにされていない Pentium の
もつ投機実行、パイプライン、キャッシュ
Processor
ベンチマーク 実測値 予測値 割合(%)
行列乗算
24741
33057
133
Pentium-M 挿入ソート
14442
23658
164
フィボナッチ
3334
3911
117
行列乗算
48184
51277
106
XScale
挿入ソート
19873
19967
100
フィボナッチ
5110
5124
100
の振る舞いなどの挙動によると考えら
表 1 WCET 予測
れる。仕様が公開されていない商用
CPU を用いて本ツールの予測性能を科学的に評価することはできない。第三者による再現性を考慮する
と、広くアーキテクチャ分野で使われているペーパアーキテクチャを用いることが重要であり、現在、
SimpleScalar を用いて評価を行っている。
2.3.2
実時間オペレーティングシステム Shi-Linux
現状の HRP-2 は、Linux の実時間版である ART-Linux に CORBA を搭載し、ロボット制御のための
プロセスを CORBA オブジェクトとして実装している。ソフトウェアの継承の観点から、RMTP のオペレーテ
ィングシステムには、Linux2.6 をベースに実時間スケジューリングの拡張を加えた Shi-Linux を開発して
いる。ロボット全体で 100 マイクロ秒以下の同期・応答性を目標とする。実時間スケジューリング法としては、
EDF (Earliest Deadline First)、RM (Rate Monotonic)法などがよく知られている。実時間制約に応じ
て実行の優先度を与えるが、デバイスからの割り込みハンドラは、プロセスの優先度を無視して実行される
ため、擾乱が生じる。Shi-Linux は、常時デバイスからの割り込みを禁止し、全てのデバイスドライバは周
期タスクとして実行される。タイマ割り込みによって起動されるスケジューラは、これら周期タスクのデッドラ
インおよびアプリケーションプログラムのデッドラインから動的に優先度を決めて、実行権を与える。
現在、Shi-Linux プロトタイプを X86 プロセッサ向きに実現し、Pentium4 2.6Hz において、2μs で
のタスクスイッチ時間と 12μs の横取禁止期間 (disk I/O 処理がない場合)に抑制することに成功している。
同様のスケジューラを RMTP に移植する作業を進めている。
2.3.3
プロセス単位スケジューラ
Pentium M プロセッサ等で実現されている DVFS 機能は、ソフトウェアから CPU の周波数と電圧を動
的に変更する機能である。CPU 負荷に応じて、周波数と電圧を制御することにより省電力化が可能となる。
従来実現されているソフトウェア技術では、デーモンプロセスにより大域的な CPU 負荷統計情報を用いて
DVFS 機能により周波数と電圧を制御していた。
我々は、実行時に動的にプロセス単位で電力を制御するスケジューラのプロトタイプを Linux 上に実装
した。Linux において、プロセスの優先度は以下の式で動的に決定される。
動的優先度 = 静的優先度(Nice 値) - (BONUS + 5)
Nice 値は、プロセス生成時に決められる値で、プログラマに開放されたプロセス優先度であるが、Nice
値は割り当てられるタイムスライスの長さも変えてしまうので実時間プロセスの操作には適当ではない。
BONUS は、Linux のスケジューラによって決められる値で、0~10 の値を取り、高い応答性を必要とする
プロセスの優先度を上げる。本プロトタイプでは、プロセスのコンテキストスイッチを行なう時に、BONUS を
用いて電力制御を行なう。すなわち、0 から 10 の値に対して、周波数 600 MHz から 1600 MHz の値に
17
マッピングする。プロセスコンテキストスイッチ時に、この値で CPU 周波数を設定する。図 14 に示すタスク
セットおよび計測環境を用いて本プロトタイプシステムを評価した。
計算機の種類
評価対象機
タスクの種類
タスク
応答性能を必要とするタスク
WEB サーバ
バッチタスク
prelink (Linux で定期的に稼動して
いるデーモン)
WEB クライアント
クライアント機
Apache bench
クライアント
用途
クライアント
Webサーバ
機器名
Thinkpad X31
MY30V/C-F
CPU
PentiumM 1.6GHz
Pentium4 3.0GHz
メモリ
1GB
512MB
OS
Linux Kernel 2.6.16.20
コンパイラ
gcc 4.0.4
備考
測定対象
制御
バッテリーレス
測定PC
図 14 電力制御アルゴリズム
計測環境
電力監視装置
(ST-33100)
交流電源
電圧と電流を測定
本ベンチマークでは、WEB サーバの平均応答性能を維持し、かつ、消費電力量がどのくらい減るかが
評価軸となる。実現した方式に対する比較として、以下に示すような、既存 Linux で実現されている
ondemand, powersave などのの電力制御アルゴリズムならびに手動で WEB サーバには最大電力、
prelink には最小電力を割り当てた時の性能として計測した。なお、既存 Linux の手法は、システム全体
に適用され、プロセス単位での制御ではない。
performance
周波数最大に固定
powersave
周波数最小に固定
ondemand
定期的に CPU 負荷を調べて設定
conservative
Ondemand よりも長い周期で定期的に設定
ideal
WEB サーバに最大周波数、prelink に最小周波数を設定
18
200
160
120
80
40
0
ideal
pccs
ondemand performance conservative powersave
図 15 各種の電力制御モードでの消費電力当たりの web サーバ応答性能
図 15 は、平均応答性能を消費電力で除した値、すなわち消費電力当たりの応答性能を示しており、高
いほど高性能である。提案手法 pccs は、消費電力量では、ideal、powersave に次いで、web 性能では
ideal に次いで良い値が出ており、総合的な性能では、ideal(理想値)に次いで、既存の Linux の電力制
御を凌ぐ性能が得られている。
2.4 ヒューマノイドロボットへの搭載
ヒューマノイドロボットの制御ソフトウェアは、Linux と CORBA の上に構築される。RMTP 上にこれらの
環境を構築する作業と並行して、RMTP を中心にしたモータ制御モジュールの開発、画像処理や音響処
理プログラムの評価、システムのアーキテクチャの検討を進めている。
2.4.1 モータ制御モジュール
各関節を分散的に制御するために開発した小型のモータ制御モジュールの主な仕様を表 2 に,その写
真を図 16 に示す。モータ実装の制約から、45 ㎜角基盤に収める必要があり、1 枚の CPU ボードと 2 枚の
高出力デジタルアンプを積層した形態とした。高出力デジタルアンプ部には1つの DC モータまたは AC
モータ(ブラシレスモータ)を制御することができるように,6つのパワーMOSFET を搭載し,ソフトウェアに
よって使用する FET の数を変えられる構成とした。後部に見える従来のモータ制御モジュールに比して、
体積比で 1/17 の縮小に成功している。アンプ部分の評価用に開発した DSP ボードと本アンプを用いて
DC モータおよび AC モータを動作させる実験が完了しており、RMTP とアンプを用いて DC および AC
モータを回転させる実験にも成功している。AC モータは、耐久性にすぐれ高出力化が容易であるが、より
高速で高精度の制御が必要であるため、ロボットへの実装は進んでいない。RMTP によって、AC モータ
の超小型サーボモジュールの実現が可能になる。
2.4.2 画像処理プログラムを用いた性能評価
19
項
目
仕
様
基板寸法
40×45 [mm]
制御電源
DC 5 [V]
モータ駆動電源
DC 48 [V]
備
考
外出しコネクタ&ケーブル含まず
対象とするモータ DCモータ & ACモータ
ファームウェアによる切替
モータ駆動方式
PWM
パワーMOSFET:6個搭載
連続定格電流
10 [A]
対象とするエンコーダ インクリメンタルエンコーダ
表2
モータ制御モジュールの仕様
図 16
従来のモータ制御モジュール
(後部)と、新規開発のモジュール
ステレオ画像処理における相関演算を例題に、ベクタを使った並列化の性能を見るベンチマークを実
施した。相関演算とは一方のカメラから得られた画像中の小領域に対応する画像を他方のカメラから得ら
れた画像から検索する処理であり、相関度は SAD(小領域内の各画素値の差の絶対値の和)によって評価
する。RMTP のロジックバグを回避するためにコードの最適化が実行できないので正確な比較はできない
が、C で記述された同一のプログラムを RMTP と Pentium で実行した場合、クロックに比例した実行時間
がかかるという結果が得られている。またこのプログラムをベクタ化することによって 20 倍近い高速化が実
現できている。したがって Pentium の20分の1のクロックの RMTP を用いて同程度のパフォーマンスを実
現することが可能となっており、省電力化,高処理能力化が可能であることが確認できた。
計画系から動作指令(歩行、直立、方向転換、把握、、、、)
Pentium
PCI コントローラ
Ethernet-WiFi
VGA
Timesys, ART-Linux
DA / counter
CAN
Max 5枚
図 17
パターン再生
μRMTPでの代用あり
自己干渉検査 幾何モデル
姿勢センサ
ビデオカメラ
マイクロフォン
センサ情報
関節角度、角速度
加速度、力/トルク
温度
運動指令
1[ms]周期
関節サーボ
0.2ms周期
下半身モータ x 14個
ヒューマノイドロボット制御用コン
モータサーボ
0.2ms周期
ピュータの構成予測図
関節角
図 18
機構モデル
バランス制御 機構モデル
受信スレッド
Responsive Link
μ-RMTP×14
歩行動作生成
CORBA
CORBA
CORBA
受信スレッド
受信スレッド
力センサ
HP-RMTP×5
RS232
IEEE1394 VL
( SPI-AD/DA )
Compact PCI
双腕協調制御
ハンド用モータ
特殊I/O
2008 2006
全身運動制御スレッド 5msの周期実行
上半身モータ x 16個
運動制御ソフトウェアの構成
20
CORBA
受信スレッド
関節角度
サーボゲイン
×36関節
関節サーボ
0.2ms周期
ロータ位置, 電流,温度 関節角
エンコーダ ACモータ
1[ms]周期
CORBA
受信スレッド
電流,温度
エンコーダ DCモータ
2.4.3 システムアーキテクチャ
ヒューマノイドでの実証は、NEDO のプロジェクトで開発中のヒューマノイドロボット HRP-3 をベースにこ
の体内情報系を置き換えて HRP-3 改とする形で行う。HRP-3 の上半身は Pentium を中核とした集中系
として構成されており、開発したモータ制御モジュールのサイズをでも組み込みは困難である。そのため,
HRP-3 改では下半身の全14自由度にモータ制御モジュールを用いる。HRP-3 改のハードウェアのシス
テム構成を図 17に示す。HRP-3 において Pentium によって制御される各種 I/O は随時 RMTP による
制御に切り替え、最終的には Pentium は PCI バスのコントロールと無線 LAN による外部との通信のため
だけに残る予定である。
ソフトウェアシステム全体は、認識系、計画系を含めると非常な大規模になるが、μRMTP を用いる運動
制御系については、図 18 のような構成を計画している。全身運動制御の部分は複数の制御計算モジュー
ルからなっており、それらのモジュールは HRP-3 では Pentium 上で1つのスレッドで順に実行される。
HRP-3 改ではそれぞれのモジュールに実行用のスレッドを配置し、処理の依存関係に基づいて並列実行
する計画である。
3
まとめと今後の展望
ヒューマノイドロボットのスケーラブルな能力拡大と信頼性向上をねらって、その情報処理系を分散系と
する方式について述べた。各関節に約 30 のμRMTP を配置してサーボを行うことで信号線長を最低限に
抑え、動作計画、認識、対話用には、中央に HP-RMT ノードを数個配置する。全体を二重のレスポンシ
ブ・リンクで結合し、実時間通信を行う。ソフトウェアは、Linux2.6 に実時間向けの拡張を施す。分散プログ
ラミング環境として CORBA の実時間拡張を行う。100 マイクロ秒オーダのハードリアルタイム制御を保証し、
1ms で生成される軌道を 200 マイクロ秒周期でサーボする。結果として、ヒューマノイドロボットは高度の認
識、計画等を駆使し、高速サーボによる力制御、不整地歩行、全身動作、転倒回避などを可能とする。
現在、μRMTP のデバッグ、その上の Linux の実装、ベンチマークによる評価を実施している。RMTP
の開発に遅延が生じているが、Linux のカーネル部分の実装はほぼ完了している。今後、RMTP と
Shi-Linux の完成度を高め、HRP-3 改への実装に取り組んでいく。
4
主な研究発表
・ 薄井弘之、内山真郷、伊藤務、山﨑信行、『Responsive Multithreaded Processor の命令供給機構』 情
報処理学会論文誌、Vol. 45, No. SIG 11(HPS 7)、 pp. 105—118、2004.
・ 小林秀典, 山崎信行, "資源制約を持つ拡張インプリサイスタスクの実時間スケジューリング", 情報処
理学会論文誌コンピューティングシステム, Vol. 46, No.SIG 16, pp. 69 - 84, 2005.
・ N. Yamasaki, "Responsive Multithreaded Processor for Distributed Real-TimeSystems",
Journal of Robotics and Mechatronics, Vol. 17, No. 2, pp. 130-141,2005.
・ 松井俊浩, ヒューマノイドのための実時間分散情報処理, デジタルヒューマン・ワークショップ 2004,
日本科学未来館, 2004 年 3 月.
・ 松井俊浩, ヒューマノイドロボットのための実時間分散情報処理, 電子情報通信学会・情報処理学会
共催, 実時間処理ワークショップ(RTP2004), 2004 年 3 月.
・ 山﨑信行, Resposive Multithreaded Processor の全体設計, 電子情報通信学会・情報処理学会共
催, 実時間処理ワークショップ(RTP2004), 2004 年 3 月.
・ 山本啓二, 石川裕, 松井俊浩, 静的実行時間予測ツール構築のためのフレームワーク, ソフトウェア
21
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
科学会, 第 8 回 プログラミングおよび応用のシステムに関するワークショップ, 2005 年 3 月
加藤真平, 小林秀典, 山崎信行, "SMT プロセッサを対象としたリアルタイムスケジューリング", コンピ
ュータシステム・シンポジウム, Vol. 2005, No. 18, pp.109 - 118, 2005.
加藤 真平, 小林 秀典, 山崎 信行, "SMT プロセッサにおける統合的なリアルタイムスケジューリング
機構", 第 7 回 組込みシステム技術に関するサマーワークショップ,pp. 47-53, 2005.
伊藤 務, 山崎 信行, " Responsive Multithreaded Processor のスレッド制御機構",第 7 回 組込み
システム技術に関するサマーワークショップ, pp. 79-83, 2005.
新井誠一, 真垣郁男, 伊藤務 山崎信行, "Responsive Multithreaded Processor のキャッシュシス
テムにおける低消費電力機構", DA シンポジウム 2005, No. 9,pp.273-278, 2005.
中村哲朗, 小林秀典, 山崎信行, "Responsive Multithreaded Processor における排他制御機構の
設計と実装", 並列/分散/協調処理に関する『武雄』サマーワークショップ, pp. 57-64, 2005.
小林 秀典, 山崎 信行, "実時間 OS RT-Frontier におけるインプリサイス計算機構",第 7 回 組み込
みシステム技術に関するサマーワークショップ, pp. 84-89, 2005.
真垣郁男, 伊藤務, 山崎信行, "Responsive Multithreaded Processor の命令供給機構および IPC
制御機構の設計と実装",第 7 回 組み込みシステム技術に関するサマーワークショップ, pp. 71-78,
2005.
村中延之, 伊藤務, 新井誠一, 山崎信行, "Responsive Multithreaded Processor のスレッド間同
期機構の設計と実装", 電子情報通信学会技術研究報告:組込技術とネットワークに関するワークショ
ップ, pp. 31-36, 2005.
加藤 真平, 橘内 和也, 小林 秀典, 山崎 信行, "SMT 機構における実行時間変動を考慮した実時
間スケジューリング手法", 電子情報通信学会技術研究報告:組込技術とネットワークに関するワークシ
ョップ, pp. 7-12, 2005.
中村 拓, 伊藤 務, 新井 誠一, 山崎 信行, "Responsive Multithreaded Processor の分岐予測器
の設計と実装", 情報処理学会システム LSI 設計技術研究会, Vol. 104,No. 738, pp. 37-42, 2005.
佐々木 貴宏, 小林 秀典, 山崎 信行, "Responsive Link を用いたリアルタイム通信ライブラリの設
計および実装", 電子情報通信学会技術研究報告:組込技術とネットワークに関するワークショップ,
pp. 61-66, 2005.
山崎信行,分散リアルタイム制御用μRMTProcessor の設計,第 23 回日本ロボット学会学術講演会,
2005.9.15
得津 覚, 杉山 悠, 古城 直樹, 岡田 慧, 稲邑 哲也, 稲葉 雅幸,”物を叩いたときに出る音を覚えて
学習するヒューマノイドの研究”,第 23 回日本ロボット学会学術講演会, pp.3C32 (CD-ROM),
2005.9.17
杉山 悠, 吉海 智晃, 岡田 慧, 稲邑 哲也, 稲葉 雅幸,”生活音の認識と音源定位によるヒューマノ
イドの動作計画のための日常生活環境推定”,第 23 回日本ロボット学会学術講演会,pp.3C33
(CD-ROM),2005.9.1
松井俊浩,比留川博久,金子健二,加賀美聡,山崎信行,石川裕,齋藤 元,”0 ヒューマノイドロボットの実
時間分散制御”,第 23 回日本ロボット学会学術講演会,2005.9.15
Toshihiro Matsui, Nobuyuki Yamasaki, Yutaka Ishikawa, Hirohisa Hirukawa, and Satoshi Kagami,
Distributed Real-Time Processing for Humanoid Robots,11th IEEE-RTCSA-2005 (Invited talk)
S. Kato, H. Kobayashi and N. Yamasaki, "U-Link Scheduling: Bounding Execution Time of Real-Time
Tasks with Multi-Case Execution Time on SMTProcessors", 11th IEEE RTCSA , pp. 193-197,2005.
山本啓二, 石川裕, 松井俊浩, “静的実行時間予測ツール構築のためのフレームワーク”, The 8th
JSSST SIGSYS Workshop on Systems for Programming and Applicatoins(SPA2005), 日本ソフトウェア
科学会ソフトウェアシステム研究会, 2005.
宮川大輔, 石川裕, ”プロセス単位電力制御機構の設計と実装”, 情報処理学会 研究報告
2005-OS-99, pp.167 -168, 2005. (ポスター発表)
野村哲弘, 石川裕, ”リアルタイムパケットの送信制御”,情報処理学会 研究報告 2005-OS-99, pp.161
- 162, 2005. (ポスター発表)
22
・ 戴毛兵, 石川裕, ”予測可能リアルタイムカーネルの設計と実装”, 情報処理学会 研究報告
2005-OS-99, pp.121 -126, 2005.
・ 宮川 大輔, 石川 裕, ” プ ロ セ ス 単位電力 制御機構 の 予備 評価”, 情報 処理学 会 研究報告
2005-OS-100、pp. 65 - 72, 2005
・ 野村哲弘, 石川裕, ”リアルタイム通信のスケジューリング”, 情報処理学会 研究報告 2005-OS-100,
pp. 79 - 84, 2005
・ 山本啓二, 石川裕, 松井俊浩, “実行時間予測ツールの設計と実装”, 情報処理学会 研究報告
2005-ARC-164, pp. 79 - 84, 2005
・ 宮川大輔, 石川裕, “低消費電力のためのスケジューリングアルゴリズム”, 情報処理学会 研究報告
2006-OS-102, pp. 17 - 22, 2006.
・ 宮川大輔, 石川裕, “電力制御スケジューラのプロトタイプ 実装”, 情報処理学会 研究報告
2006-OS-103, pp. 109 - 115, 2006.
・ 戴毛兵, 石川裕, “厳密な周期タスク実行を支援する実時間 Linux カーネルの実装”, 情報処理学会
研究報告 2006-OS-103, pp. 41 - 46, 2006.
・ 山本啓二, 石川裕, 松井俊浩, “移植性の高い実行時間予測手法の設計と実装”, 情報処理学会 研
究報告 2006-ARC-169, pp. 127 - 132, 2006.
・ Keiji Yamamoto, Yutaka Ishikawa, and Toshihiro Matsui, Portable Execution Time Analysis Method,
RTCSA 2006, 2006.8.17.
5
講演者略歴
1980 年東京大学工学部計数工学科卒業、1982 年東京大学大学院情報工学専門課程修士修了、
1991 年東京大学大学院情報工学、工学博士。
1982 年工業技術院電子技術総合研究所に入所。1989 年まで極限作業ロボット大プロに従事、マルチ
メディアディスプレイの開発を担当。1991 年から 1999 年にかけて、米国スタンフォード大学ロボット工学研
究所、米国マサチューセッツ工科大学人工知能研究所、オーストラリア国立大学システムエンジニアリング
研究センターなどの客員研究員、客員教授。1994-2000 年、通商産業省、RWC プロジェクト実世界知能
研究センター、自律学習研究チーム長。ソリッドモデリング機能を備えたオブジェクト指向言語 EusLisp の
開発、オフィス情報サービス移動ロボット Jijo-2 の開発を実施。2001-02 年、独立行政法人産業技術総合
研究所、企画本部、総括企画主幹および情報通信チーム長。2003 年より、産総研デジタルヒューマン研
究センター、センター長代理および人間モデリングチーム長。
日本ロボット学会、計測自動制御学会から論文賞、ISRR 国際会議から研究賞、元岡記念賞、工業技術
院成績優秀者賞などを受賞。情報処理学会、日本ロボット学会、IEEE, ACM の会員。ISO/IEC JTC1
SC25 WG4 委員。
参考文献
[Hirai1997] K. Hirai, “Current and Future Perspective of Honda Humanoid Robot,” Proc. IEEE/RSJ Int. Conf.
On Intelligent Robots and Systems (IROS-97), pp. 500-508, 1997.
[五十棲2004] 五十棲隆勝、赤池一彦、平田勝、金子健二、梶田秀司、比留川博久、「ヒューマノイドロボット HRP-2 の開発」、
日本ロボット学会誌 Vol. 22, No. 1、2004.
[Honda-URL] http://www.honda.co.jp/robot/
[Moravec2000] Hans Moravec, ロボットは人間を越えるか、日経サイエンス Vol. 30, No. 1, pp. 104-111, 2000.
[Kagami2002] Satoshi Kagami et al., “A Fast Dynamically Equilibrated Walking Trajectory Generation Method
of Humanoid Robot,” Autonomous Robots 12, pp. 71-82, Kluwer Academic Publishers, 2002.
23
[Chestnut2003] Joel Chestnut, James J. Kuffner, Koichi Nishiwaki, Satoshi Kagami, “Planning Biped
Navigation Strategies in Complex Environments,” IEEE International Conference on Humanoid Robots
(Humanoids2003), Oct., 2003
[金広 2003] 金広、藤原、梶田、横井、金子、比留川、中村、山根、ヒューマノイドロボットソフトウェアプラットフォーム
OpenHRP、日本ロボット学会誌、Vol. 21, No. 7, pp. 89—97, 2003.
[山﨑-URL] http://www.ny.ics.keio.ac.jp/
[伊藤 2003] 伊藤務、山﨑信行、「Responsive Multithreaded Processor の命令実行機構」、情報処理学会誌コンピュー
ティングシステム(ACS), Vol. 44, No. SIG11, pp. 226-235, 2003.
[山﨑 2003] 山﨑信行, 堀俊夫, “分散リアルタイムネットワーク用プロセッサとその応用,” 情報処理, Vol.44, No.1, pp.6-13,
2003.
[山﨑 2004] 山﨑信行、「分散制御用リアルタイム通信 Responsive Link の設計及び実装」、情報処理学会論文誌コンピュ
ーティングシステム(ACS), Vol. 41, No. 5 (to appear), 2004.
[Yamasaki2004] Nobuyuki Yamasaki, “Design Concept of Responsive Multithreaded Processor for Distributed
Real-Time Control, Journal of Robotics and Mechatronics (to appear).
[山﨑 2001] 山﨑信行、松井俊浩、"並列分散リアルタイム制御用レスポンシブプロセッサ", 日本ロボット学会誌, Vol.19,
No.3, pp.68--77, 2001.
[RL 標準-URL] http://www.itscj.ipsj.or.jp/ipsj-ts/02-06/toc.htm
24