• 検索結果がありません。

資源制約モデルを用いたCPU資源制御技術の開発とそのモデルベース開発ツールへの組込み

N/A
N/A
Protected

Academic year: 2021

シェア "資源制約モデルを用いたCPU資源制御技術の開発とそのモデルベース開発ツールへの組込み"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 73 回全国大会. 5A-7. 資源制約モデルを用いた CPU 資源制御技術の開発と そのモデルベース開発ツールへの組込み 鈴木 康文†. 小川 秀人‡. 株式会社日立製作所 中央研究所†,‡. 1.. はじめに. Function {. 近年、組込みソフトウェア開発の大規模化や開発期間 の短縮が進む中、ソフトウェアの品質保持や開発コスト 削減のためにはソフトウェアの再利用が必須となってい る。組込みソフトウェアを再利用する上での障害の一つ として、システムのリアルタイム性に関する設計が困難 であるという点が挙げられる。ソフトウェアの再利用は、 システムを機能ごとに分割した上で各機能をソフトウェ アコンポーネントとして開発し、それらを組み合わせる ことでシステム全体を構築してきた。しかしながら、組 込みシステムに顕著な傾向として、CPU の処理能力やメ モリ容量等のハードウェア資源が限られているために、 単にコンポーネントを組み合わせただけでは性能要求が 満たされないケースが多い。製品が持つハードウェア資 源の制約や同時に動作する他プログラムとの組合せに応 じて、ソフトウェアの実行時間に関する要求(リアルタイ ム制約)を満たすためのチューニング作業が必要となる。 このチューニングのために、プログラムに対して製品毎 の改変を加えることがソフトウェアの再利用性の低下を 引き起こしている。 このような問題を解決するために、我々はプログラム に対してリアルタイム制約を与えると、その制約を自動 的に満たすようにプログラムが実行されるフレームワー ク技術を開発している。これによりチューニングのため の工数が削減されるのみならず、開発プログラムに対し てチューニングコードが入り込まないため再利用性が向 上することが期待される。 プログラムが要求された時間内に実行されるためには、 プログラムの実行に必要な資源量を見積り、それに応じ て適切な資源を配分することが必要である。本研究では リアルタイム制約を満たすフレームワーク構築のための 第一段階として CPU 資源の配分に着目し、CPU 資源制約 を与えると、その制約を自動的に満たすようなフレーム ワークを開発した。また、そのフレームワークをモデル ベース開発(MBD)ツールである MATLAB/Simulink® の自 動コード生成器に組込み、その性能を評価した。. 2.. CPU Load 70%. 画像取込 物体検出. 画像 取込. 物体追跡. 物体 追跡. CPU Load 30%. プログラム. }. 物体 検出. (機能記述). 資源制約モデル プログラム変換器. CPU資源制約を設定するコードを挿入 CPU資源制御コードを挿入. Function {. 30%. - CPU資源利用率を測定する - CPU資源利用率を調整する. 呼び出し. 70%. +. 30%. 資源制御 ライブラリコード OS. }. 図 1 プログラム変換による CPU 資源制御の実現方法 また、プログラムの実行状況に応じた動的な資源配分の 調整を実現するために、ソースコードに対するプログラ ム変換によって資源制御コードを挿入する手法を用いた。 図 1 に、本研究における CPU 資源制御技術の実現手法に ついて示す。 開発者は、ソースコードの各区間に対して何%の CPU 利用率で動作するかを指定した資源制約モデルを記述す る。プログラム変換器に両者を入力することにより、自 動的に制約を満たしながら動作するような資源制約充足 プログラムが生成される。資源制約充足プログラムの生 成は、元のプログラムに対して、  資源制約が指定された区間の先頭に、その区間の CPU 利用率制約を設定するコードを挿入する  プログラム中に適当な間隔で後述する CPU 資源制 御コードを挿入する という 2 種類のコードの挿入により実現される。 2.2 CPU 資源の制御手法 プログラム変換器によって挿入される CPU 資源制御コ ードでは、自タスクの CPU 利用率の測定および自タスク CPU利用率[%] 100. 資源制約モデルに基づく CPU 資源制御技術. 2.1 資源制御フレームワークの実現手法 与えられた CPU 資源制約を満たすようにプログラムが 動作するためのフレームワークとしては、OS の機能とし て資源制御機構を提供する手法[1]が実装されている。本 研究では、幅広いプラットフォームへ対応するために、 CPU Resource Management Based on Resource-Constraint Models and Its Application to Model Based Development Tools † Yasufumi Suzuki, Central Research Laboratory, Hitachi, Ltd. ‡ Hideto Ogawa, Central Research Laboratory, Hitachi, Ltd.. 70. タスク スリープ. 優先度 ブースト. CPU資源制約. 30 0. 資源制御コード挿入箇所. 時間. 図 2 CPU 資源制約を満たすためのフィードバック制御. 1-229. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 73 回全国大会. の CPU 利用率の調整をおこなう。CPU 資源制御により CPU 利用率が調整される様子を図 2に示す。 タスクは資源制御コードが挿入された各地点において 自らの CPU 利用率を計測し、フィードバック制御をする ことにより指定された利用率を守って動作する。すなわ ち、計測した自タスクの CPU 利用率が目標とする利用率 に比べて大きい時は自タスクをスリープさせることによ り利用率を減少させる。逆に、 利用率が目標値より小さ い時は自タスクの優先度を上昇させる(優先度ブースト) ことで利用率の増加を試みる。 両者の制御を実行する CPU 利用率の目標値として異な る値を用いることが可能である。すなわち、スリープ動 作を実行する閾値となる利用率(最大 CPU 利用率) と、優 先度ブーストを実行する閾値となる利用率(最小 CPU 利 用率) とを異なる値を指定することができる。この場合に、 CPU 利用率が両者の値の間である場合には、資源制御が おこなわれず、OS のスケジューリングに資源配分を任せ ることになる。. 3.. モデルベース開発ツールとの連携. 本研究で開発したフレームワークとモデルベース開発 ツールとの連携の可能性を実証するために、 MATLAB/Simulink® の自動コード生成器である Real-Time Workshop® に対して、構築したフレームワークの組込み をおこなった。 3.1 Simulink 上における資源制約モデル記述 MATLAB/Simulink® では、機能ブロックをつなぎ合わ せたデータフローモデルを作ることでプログラムモデル を記述する。また、サブシステムを用いることでモデル を階層的に記述することが可能である。そこで、図 3 に 示すように、サブシステム内に資源制約指定ブロックを 置くことにより、そのサブシステム内で記述されるプロ グラムを実行する際の CPU 利用率制約を指定することと した。 3.2 プログラム変換の実現方法 CPU 資源制御コードは、プログラム中のあらゆる場所 に挿入される。一般に、挿入箇所が多いほどオーバヘッ ドが大きくなるが、少ないほど資源利用率のチェックが されない期間が長くなり、精度が落ちるというトレード オフがある。また、挿入箇所の間隔は実行時における時 間間隔が均等になるように配置されることが望ましい。 Real-Time Workshop では、あらかじめブロック単位で ソースコードが用意されており、モデルで記述されたブ ロック間の結合に従ってブロックごとのソースコードを 組み合わせることにより全体のソースコードを生成して いる。可能な限り細かく CPU 資源制御コードを挿入する. 4 利 用 率 の 最 大 誤 差 (%). 3 2 1 0 0.0. 0.1. 0.2. 0.3. 0.4. 0.5. 0.6. 実行計算量の増加割合 (%) 図 4 CPU 資源制御のオーバヘッドと精度の関係 には、ブロックとブロックの境界毎にコードを挿入すれ ば良い。本研究では Real-TimeWorkshop がブロックに対 応するコードを生成する部分を改造し、ブロックの境界 毎に CPU 資源制御コードを挿入するようにした。 しかし、各ブロックのプログラムの計算量はブロック 毎に様々であり、計算量の小さいブロックの前後では短 い時間間隔で資源制御コードの実行が繰り返され、オー バヘッドが大きいという問題がある。オーバヘッドの増 大を防ぎ、資源制御の実施間隔の平準化するために、資 源制御コードが実行されてから一定時間内においては、 再び資源制御コードが呼び出されても資源制御処理をお こなわないこととした。. 4.. 結果と評価. 本 研 究 で 開 発 し た 機 能 を 組 み 込 ん だ Real-Time Workshop を用いて生成されたコードを用いて評価を実施 した。アプリケーションモデルとして Simulink の Video and Image Processing Blockset に付属する動画像からの物 体検出デモのモデルを使い、生成されたコードを Linux OS 上で動作させた。開発したフレームワークを用いるこ とによるオーバヘッド(計算量の増加)と、資源制御の精 度とを評価した結果を図 4に示す。 前述のように CPU 資源制御の精度と計算量オーバヘッ ドの間にはトレードオフ関係があることが確認された。 0.4%程度のオーバヘッドで 1.5%以内の精度の CPU 資源 制御が実現されており、実用上、充分な精度と低オーバ ヘッドであると言える。. 5.. 結論. 与えられた CPU 資源制約を自動的に守るようにプログ ラムを実行するフレームワークを構築し、MBD ツールへ の組込みをおこなった。その結果、1.5%以内の精度の CPU 資源制御を低オーバヘッドで実現した。今後は、本 技術と、プログラムの実行に必要な資源量を見積る技術 とを組合せることにより、リアルタイム制約を自動的に 満たすフレームワーク構築をめざす。. 参考文献. 機能記述. [1] M. Sugaya et al., “Accounting system: A fine-grained CPU resource protection mechanism for embedded system,” in Proc. Intl. Symp. Object and ComponentOriented Distributed Computing (ISORC), Apr. 2006.. 資源制約モデル このサブシステムを CPU利用率30%で実行. 図 3 Simulink 上での資源制約モデル記述. 1-230. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(3)

図 3 Simulink 上での資源制約モデル記述 機能記述資源制約モデルこのサブシステムをCPU利用率30%で実行 図 4 CPU 資源制御のオーバヘッドと精度の関係 012340.00.10.20.30.40.50.6実行計算量の増加割合(%)利用率の最大誤差(%)

参照

関連したドキュメント

生活のしづらさを抱えている方に対し、 それ らを解決するために活用する各種の 制度・施 設・機関・設備・資金・物質・

食品 品循 循環 環資 資源 源の の再 再生 生利 利用 用等 等の の促 促進 進に に関 関す する る法 法律 律施 施行 行令 令( (抜 抜す

環境への影響を最小にし、持続可能な発展に貢

の主として労働制的な分配の手段となった。それは資本における財産権を弱め,ほとん

2012 年度時点では、我が国は年間約 13.6 億トンの天然資源を消費しているが、その

2012 年度時点では、我が国は年間約 13.6 億トンの天然資源を消費しているが、その

雨地域であるが、河川の勾配 が急で短いため、降雨がすぐ に海に流れ出すなど、水資源 の利用が困難な自然条件下に

環境への影響を最小にし、持続可能な発展に貢