QEMUを利用したV850シミュレータの開発と評価
7
0
0
全文
(2) . はじめに. を利用した シミュレータの開発と評価 尾. 崎. 辰. 典Ý £ 中. 本. 幸. 一Ý. 藪. 内 健. 自動車や航空機はいまや小型のコンピュータがネットワークで結合された大規模分散組込 みシステムとなってきている.こうしたコンピュータシステム,特にソフトウェアの規模や. 二Ý. 複雑さが最近急速に増大している.さらに,これらのシステムは高信頼性,高環境性が要求 され,そのため開発コストも膨大である.大規模分散組込みシステムは多くの. 自動車や航空機はいまや小型のコンピュータがネットワークで結合された大規模分 散組込みシステムとなってきている.こうしたコンピュータシステム,特にソフトウェ アの規模や複雑さが最近急速に増大している.このため,製品のハードウェアとソフト ウェアを並行同時開発する必要があり,製品のハードウェアが存在してなくてもソフ トウェアの開発を進めるための各種のシミュレータが利用され,それらを統合した仮 想実行環境が必要となってきている.本研究ではその一部として,命令変換型のシミュ レータである を利用して 製マイクロプロセッサ のシミュレータ を開発した.本稿では,その実装と評価を述べる.. や物理. 空間と制御を行うデバイスから構成されること,さらに大規模なネットワークシステムであ ることが特徴である.制御を行うデバイスには物理空間での物体,自動車や航空機を構成 する部品,様々なハードウェアがある.自動車システムでの例では数 のコンピュータ 車載システムでは . 個から 個程度. という が使用され,センサーがデータを取得し, がデータ処理,アクチュエータを通じて必要な制御コマンドを制御対象に送る.一方, 市場からは組込みシステムの開発コストの削減,より短期間での開発が要請されている.特 にソフトウェアの規模と複雑さが増大しており,これが開発期間の長期化と開発コストの増 大の主要因となっている.このため,製品のハードウェアとソフトウェアを並行同時開発す.
(3)
(4) . る必要があり,製品のハードウェアが存在してなくてもソフトウェアの開発を進めるための.
(5) Ý £ Ý Ý . . . キといった制御デバイスをシミュレーションするデバイスシミュレータも利用されている.. . ここでは,. ! !* . システム向け仮想実行環境が必要とされている..
(6) &'
(7) ! ()! "(!!! $" , & !) * $
(8) ! -)
(9) $.. 本稿では分散組込みシステム向け仮想実行環境における.
(10) * )
(11) #) * " -) !+ * " &
(12) )' ") ")
(13)
(14) ! *
(15) ) !* ")
(16) )& ,/
(17) ! * ! ,/', ! ")
(18) %)
(19) ! ()! $"+. だけでなく制御デバイスまで含めたシミュレータを統合した環境を仮想実. 行環境と呼ぶことにする.すなわち,大規模分散組込みシステム開発のために,分散組込み.
(20) ! " # $ %
(21) &'
(22) ! ()! "(!!! $" )
(23)
(24) )" *
(25) !
(26) *
(27) ! $+. ボードの代替としてソフトウェアを稼動 シミュレータがその代表的なものである.これだけでなく,エンジンやブレー. 各種のシミュレータが利用されてきている. させる. 用いて開発し評価したのでこれを報告する.ターゲット.
(28) . , " "
(29)
(30) ! *
(31) )
(32) % ")
(33) . である.このような仮想実行環境において. ) &
(34) % ")
(35) * " +. が容易な. シミュレータを を は 製プロセッサ
(36) . シミュレータを自作したのは,廉価で拡張. シミュレータが必要であったからである.. 仮想実行環境と関連研究 Ý 兵庫県立大学大学院応用情報科学研究科. 仮想実行環境には以下の形態がある..
(37)
(38)
(39)
(40)
(41)
(42)
(43). ()では,. シミュレータ上のプログラムがデバイスシミュレータからセンサーデータを取得,処 (!)では, 上のプログラムがデバイスシミュレータからセンサーデータを取得,処理,制御を行. £ 現在,富士通テン株式会社. !. 理,制御を行うものである.一方,!" . Ý" 株式会社オクトパス. #$ # $
(44)
(45)
(46) . . . 0 %"
(47) & $ %
(48)
(49).
(50) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(51) . 図. 分散組込みシステム向け仮想実行環境. うものである.! は制御対象装置の代替として利用される.今後,より安全,より快適, 環境に配慮したサービス提供のために,周辺車両も含めた多数のセンサーからデータ取得 を行い,デバイスを制御することが必要となってくるため,組込みシステムは必然的にネッ. トワーク化,分散化,大規模化してくる.このため,,! が複雑化していく一方,. 図. 必要性も高まってくると考えられる.また,制御のための入力データはこれまでのアナロ. %&' の機能. グデータだけでなく, インタネットなどサイバー空間からのデジタルデータも必要となる. 例えば,オートクルーズ制御で,地図データや渋滞情報を利用すると言うものである.. の機能. 以下に仮想実行環境に関する関連研究を述べる.これには制御対象のモデル化から行う. 本研究で使用した は. ,%' * " によって開発されたオープンソースの シミュレータである .現在 - 上の仮想マシン .
(52) や &"" の開発環境 例え ば /,0 教材 に利用されている.現在,- 1,&2 ,!, , ,1 などの シミュレータが実現されている. シミュレータ開発のベースを としたのは次のような理由による.. トップダウンアプローチと既存のシミュレータを結合させていくボトムアップアプローチが. ## プロジェクト( !$%" " %""" $##)での &'" " がある.ここでは,従. . ある.前者には,カリフォルニア大バークレイ校の. 来からの物理モデル以外に,データフロー,離散イベントモデルなどを統合したシミュレー. ションモデルを構築し,() 言語を使った開発環境として提供している.しかし,開発モ デルが従来と異なることからソフトウェア開発者の技術修得に難があると考えられる.*. オープンソースであり,機能拡張が容易である.. の $# は 物理モデルと による離散モデルの統合を目指している .一方,後者に. -,3"#, '0,,*4 のような多くの 0 上で利用可能なシミュレー. . は,既存の. シミュレータと制御モデルとを + のパイプ機能を使って結合された. タを生成する.さらに,新たなマシン記述とエミュレートデバイスを加えることで,特. ものがある .. 別な組込み機器を比較的容易にシミュレートすることができる. 命令変換方式の. 筆者らのグループでは,上述の大規模分散組込みシステムにおける高生産,高品質のソフ トウェアの開発支援のために,. と制御対象デバイスのシミュレーション環境とこれら. シミュレーションを行うため,高速なシミュレーション実行が期. 待できる.このため実時間でのシミュレーションの可能性もあり,ターゲットマシンと. を統合させる分散プラットフォームの基盤技術の研究を行っている 図 .. シミュレータが混在した環境でのシミュレーションも期待できる. 既に多くの. . シミュレータが実現されており,仮想実行環境においてこれらの . 0 %"
(53) & $ %
(54)
(55).
(56) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(57) . ポートアクセス時に起動する関数を定義できるなど組込みシステムの入出力のシミュ. の命令をデコードして,その命令に対応するマイクロオペレーショ コードを 6# " * '76* というバッ ファにコピーする 図 8 参照.この操作はターゲットプログラムにおいてジャンプ等の命令. レーションに有効な機能がある.. が現れるまで続けられる.ジャンプ命令が現れるとターゲットプログラムのデコードは中断. シミュレータの利用が期待できる. マルチコア. では,ターゲット. の対応がなされている.. ンを求め,このオペレーションのホスト. して,6* 上にある変換されたホスト. の命令列を実行する.デコード時にターゲット の命令列が既にバッファ内の 6* にある場合はキャッシュとしてこれが再利用される.. 命令変換方式の技術を習得したかったこと. 一方、デバッガ機能の内蔵しているがブレークポイントでの停止,再開などであり,ター. . ゲットプログラムの実行制御は別途用意する必要がある.ターゲットプログラムのデバッグ. マイクロオペレーションの仕様. 本研究で使用した はバージョン 9:9 である.このバージョンの のマイ. という目的には適さないと考えられる.. における命令変換は,実行時にターゲット の命令をホスト 用に変換 することによってシミュレーションを行う.この変換の概要を図 5 に示す.この変換方法 では,まず,ターゲット の命令をデコードしマイクロオペレーションの列に分割す る. でのマイクロオペレーションは,ターゲット より単純な命令であり,ホ スト の命令列に対応付けられている.マイクロオペレーションは 言語で記述され, というツールとホスト 上のコンパイラ 多くは - 1 のコンパイラ によって ホスト の命令列に変換される.マイクロオペレーションとそのホスト 命令列の 対応は の生成したシミュレータ内で保持される. の生成したシミュレータ. クロオペレーションを定義する上でいくつかの規則がある.. . . から までの 8 つの仮想レジスタが利用可能であること.. ターゲット. のレジスタ値は,変数 の指す領域に保持されること.. マイクロオペレーションは, で始まる関数名で,その型は . であること.. で始まる関数に対する実パラメタは,
(58)
(59) のようなマクロ変数でアクセス可能 なこと..
(60) . マイクロオペレーションの関数名は, で終わること. マイクロオペレーションは の前に を付けて呼出しを行うこと.. は他のホスト への移植が容易とされる.これはマイクロオペレーションが 言語で書かれており,移植先のホスト の コンパイラで当該ホスト の命令に. 変換されるからである..
(61) の開発.
(62) の機能概要.
(63) は 製の組込み用 で,シングルチップ・マイクロコンピュータである .
(64) はユーザーモード(プロテクション)のない 2 プロセッサーである.また命令 数は /;,85 ビット汎用レジスタは 85 本,ロング<ショート形式を持ったロード<ストア命 令,8 オペランド命令,プログラム空間は 1 バイト・リニア,データ空間は ;= バイト・ リニア,飽和演算命令,ビット操作命令といった特徴を持つ.ただし,特権モード<非特権 モードの違いはなく,仮想空間機能もない..
(65) 用マイクロオペレーションの仕様. 上述した規則に従い,
(66) の命令に対してマイクロオペレーションを定義し,これらを. 図. 使って
(67) 命令を分解した.. %&' の命令変換. 1. . 0 %"
(68) & $ %
(69)
(70).
(71) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(72) . 算術演算命令.
(73) の算術演算命令に対して,以下のようなマイクロオペレーションを定. '() $ . 義した.. " . . で示される汎用レジスタの値を. 条件分岐命令. レジスタに入れる.. . で示される汎用レジスタに.
(74) の分岐命令をシミュレートするために以下のようなマイクロオペレー. ションを定義した.. レジスタの値を加算する.. ,+-. '. . 現在の条件レジスタ. レジスタの値を で示される汎用レジスタの値に入れる.. 3 の内容を調べて, 0 4 で指定された条件が成立し 0 4 には ## #?",))@ など
(75) . ているかどうかを返す.. これらを使用し,
(76) の という命令は以下のようにマイクロオペ. の条件分岐命令に対応した条件が入る..
(77) の /. レーションに分解される.. 0 という命令は以下のようなマイクロオペレーションに分解される.. . ,+- . . 1 "/. , はそれぞれ,"" 命令中でレジスタ番号を示すビット列から抽出したもの である. ロードストア命令. 2 /, 3 ..
(78) のロード<ストア命令に対して,以下のマイクロオペレーショ. / /, 3 0. ンを定義した.. . レジスタの内容から " 加算した値を . " / 以降の関数は に入れる.. の値を レジスタにロードする.ここで + は %>. . で提供されている関数で以下のような機. 能 を 有 す る . " /, 2 で 新 し い ラ ベ ル. %> ,, ,. . を生成する.. /, 3 . で偽の場合のジャンプ先 この場合,ブランチ命令の次の. 命令を指す . を設定し, /, /, 3 0 で真の場 合のジャンプ先 この場合,ブランチ命令のジャンプ先のラベル を設定する.. のいずれ. かであり,それぞれ符号ありなしでのバイト,ワード,ロングワードでのアクセス.
(79) のマイクロオペレーション. を示す..
(80) のマイクロオペレーションを. . レジスタの内容を のアドレスにストアする.+ は上と同じ.. 言語で実装した.その例として . の
(81) マイクロオペレーションの実装を図 ; に示す.. これらを使用し,
(82) の !" #$%& という命令は以下のようなマイ. このマイクロオペレーションは予め - 1 命令にコンパイルされ,そのコードは . に対応づけられる."" 命令実行時に が呼ばれた時に,対応づけ. クロオペレーションに分解される.. られた - 1 のコードが 6* に転送され,実行される.. '() $.
(83) の実装. * .
(84) のための主な改造方針と改造箇所は以下である. のソースコードを調査し,もっとも簡単なコーディングである ! を改造母体. また, !+ #$%& という命令は以下のようなマイクロオペレーション に分解される.. とすることにした.. 2. . 0 %"
(85) & $ %
(86)
(87).
(88) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(89) . # . #. ソースコードサイズの改造母体規模と. # 5. /. 人月であった. 表. 1 67%
(90)
(91) & 67%
(92)
(93) & 81.
(94) に適応させた 開発規模を表 と表 5. にそれぞれ示す.改造工数は,コンピュータアーキテクチャの知識を持った者が行い,約 . 4. 改造母体規模 行数 ()!*. モジュール名. . 共通部分 ハードウェアドライバエミュレーション ( * ターゲット $ 命令実行部 (-./0.- *. 1 # 5 . その他. 1 # 5 . 合計. / 1 # 5 67%
(95)
(96) & #9*# 7 *#/ . " 67" ):.; 表. "* 67" ):.;. #971<<71<</=>>=<<=<</71 " 67" ): ?. "* 67" ): ? #9/ = . 2.,3%&' の開発規模. ファイル名. 概要. 4& 5. .,35. 6.,3. 5 8 5 5.
(97) 5.
(98) 5.
(99) 5. 5. " 67" ):). "* 67" ):). ターゲットボードの定義. 割込みメモリ管理 ターゲット命令をホスト命令で定義.
(100) 5 で呼ばれるホスト命令実行でのサブルーチン メモリロード・ストア時の ターゲット命令をホスト命令に変換. 合計. #9/ 11 . ++ ,, ,. ,0 "10. 規模 (行*. 6 +0 37 -7 -0 ,1" 00 +7 ++ 0307. " 67" ):@. "* 67" ):@.
(101) 性 能 評 価. A 図. . 開発した
(102) シミュレータの性能測定を行った.性能測定を行った環境は表 8 のとおり. のマイクロオペレーションの実装. である. 表.
(103) は仮想空間がないので, の仮想空間機構である # を利用して仮想. $. アドレスと物理アドレスを同一アドレスで固定させた.. メモリ. #. 上述したマイクロオペレーションを実装した.. . 測定環境. $
(104) " 9
(105) $ &.133 : 0533;"577; 05"1 < 4' 2 !8 15". 命令コードのデコード部を追加した.. . . 0 %"
(106) & $ %
(107)
(108).
(109) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(110) . 性能測定のために以下のプログラムを用意した.. 万回の空ループするプログラム 命令を 万回のループするプログラム 命令を 万回のループするプログラム. 更に,; からフラグ設定に多くのプログラムを要していることから,フラグ設定を省略し. たマイクロオペレーションを作成し, として実行した.. 間を 6* にヒッ. 図 は の命令ルーチンを簡易的に表記したものである.この図において, . 間を 6* にヒットしなかった場合のデコード・命令実行時間, . トした場合の命令実行時間を,上記の から までのプログラムを実行させ,計測し た.実行時間測定は,. #9B を使用した.. 計測結果をまとめると以下のようになる.. 6* にヒットしなかったとき 命令を ; 秒で実行 6* にヒットしたとき 命令を 9// 秒で実行. フラグ設定を省略した場合はフラグ設定を省略しない場合の 8A程度の速度で実行.. 一命令に対して,6* にヒットしたときとしてないときで千倍程度の差がでている.高速. なシミュレーション実行が可能となる一方,6* にヒットする場合としない場合で速度差が. 大きく,実時間でのリアルタイム処理のプログラムをシミュレーションする場合,注意が 必要となる場合がある.しかし,プログラムの構造が比較的単純である場合, 6* に全ての ターゲットプログラムのコードを搭載することも可能であり,実時間のシミュレーションも 可能となりうる.. 図. お わ り に. デバイスシミュレータ構築手法と. . 測定ポイント. シミュレータとデバイスシミュレータを統合す. るソフトウェアプラットフォームの研究. 本稿では,現在の車載ソフトウェア開発に用いられているシミュレータについて述べ,現 状の課題から要求されるであろうシミュレータの開発について述べた.シミュレータの開. があげられる.. ションを定義し,
(111) のマイクロオペレーションを. コード量が大きくなってしまっているためである.フラグセットの簡略化の必要性は性能測. 発では, を用いて,
(112) をターゲット. として, のマイクロオペレー. 現在,マイクロオペレーションの実装の中でフラグの判定を行っている.そのため命令の. 言語で記述し実装した.また開発し. 定の結果からもわかる.. たシミュレータの性能測定を行った.. 現在ターゲット. 今回の開発から今後解決すべき課題として,. の命令は各命令単位でマイクロオペレーションに分解している.し. フラグセットの簡略化. かし,複数命令をまとめてマイクロオペレーション分解することで,より最適化された命令. 命令コードの最適化. に分解できる可能性がある.この実現にはコンパイラの最適化技術の適用が考えられる.. 6 =6$ " = への対応. の最新版 99- では,本稿で述べたようなマイクロコードを個別プロセッサ毎. 3. . 0 %"
(113) & $ %
(114)
(115).
(116) Vol.2009-EMB-14 No.11 2009/7/24. 情報処理学会研究報告
(117) . に設計するのではなく,6. =6$ " = と呼ばれる共通なマイクロコードで = の共通マイクロコードで実装することで,共通コードを利用した様々 なサービスを享受することが可能となる 例えば, .. : 7> B9> &%> 9> 0#7> 69> 6"> !9 " $> B9C 6" ?"
(118) -' ?#' 4#%" %""" $##> . 実装している .6. 2 1 /3 (%$
(119)
(120) /04 ,
(121) !
(122) 5 > 98/D855 5 9. C
(123) ファミリ 85 ビット・シングルチップ・マイクロコンピュータ ユーザマ ニュアル アーキテクチャ編 ::;9 H> B9> > (9 " > 9&9C & ?? " 6$'I" 4#%" 2 6 $##> () !!! *
(124)
(125) ! +
(126)
(127) > 95:D51 5/9 5 川合秀美:0 自作入門,朝日コミュニケーションズ 519. 制御対象となるデバイスはアナログ,デジタル両方の動作挙動を有するため,これらの挙 動を統一的に扱うことが可能なモデルとそれに使ったデバイスシミュレータ構築手法が必要. シミュレータとデバイスシミュレータを統合するソフトウェアプラッ トフォームとして,筆者らのグループでは現在オープンソース 02*& である 0 を評 となる.また,. 価している .. 謝. 辞. 本研究は科学研究補助金基盤研究 . 5; と富士通テン 株 の支援を受けている.. 参 考. 文. 献. &%> 9> 7> B9> 6"> !9 " 0#7> 69C &'# ) ' 0 # 4#%" &) > .
(128)
(129)
(130) 5:9 9 5 * > 9C & 0)) $## " ? ?? "'# " $## 4) >
(131) >
(132) 91> 91 5/9 8 * "> ,9C > ,# " % 4$' 6# > !" # $%%&
(133)
(134) ' > 9;D;1 59 ; ,%' * "C E %)# 2## 5 9 C<<#)9?9 ?<#)<F?GE9 #7> 9> ' > 49> 7 #> =9 " 0> 9C " *#" !" < "#?> # " & $## 6' ?$ 2 6 %""" $##> () !!! *
(135)
(136) ! +
(137)
(138) > 98D 5/9 1 .)$> &9> .$> B9> > 49> % > 9 " ?> &9C 7)C -
(139) . ' >
(140) ,
(141) - . > 955D58 5/9 / # > *9C & E'7 7 #" &"" 5/9 C<<%9"9 <% ?<5/<<5:<""E9 7> 9> 0#7> 69 " &%> 9C #? )# -' 6' , 7 %""" #? > (
(142)
(143) /0 ,
(144) 1
(145) > 9/8D/1 5:9 4. . 0 %"
(146) & $ %
(147)
(148).
(149)
関連したドキュメント
注:一般品についての機種型名は、その部品が最初に使用された機種型名を示します。
が作成したものである。ICDが病気や外傷を詳しく分類するものであるのに対し、ICFはそうした病 気等 の 状 態 に あ る人 の精 神機 能や 運動 機能 、歩 行や 家事 等の
自分は超能力を持っていて他人の行動を左右で きると信じている。そして、例えば、たまたま
このうち、大型X線検査装置については、コンテナで輸出入される貨物やコンテナ自体を利用した密輸
一方で、自動車や航空機などの移動体(モービルテキスタイル)の伸びは今後も拡大すると
6-4 LIFEの画面がInternet Exproler(IE)で開かれるが、Edgeで利用したい 6-5 Windows 7でLIFEを利用したい..
ら。 自信がついたのと、新しい発見があった 空欄 あんまり… 近いから。
2)海を取り巻く国際社会の動向