講座・教員
研究紹介
Research

AKIO NAKATA

教授:中田 明夫

研究テーマ

組込みシステムの設計検証および最適化に関する研究

組込みシステムの概要と課題

組込みシステムの概要と課題

組込みシステムとは、各種の機械や機器に組み込まれて、その制御を行うコンピュータシステムです。組込みシステムのソフトウェア(プログラム)を組込みソフトウェアと呼びます。組込みシステムの特徴として、リアルタイム制御が必要とされる場面が多いことが挙げられます。これは、決められた時刻(デッドラインと呼びます)までに制御が完了することを目的とした制御で、例えば、車のエアバッグ制御システムなどが例に挙げられます。組込みシステムの別の特徴として、大量生産される製品の場合に、コスト削減が要求される点が挙げられます。必要最低限の性能のCPUであったり、安価な(低速あるいは小容量の)メモリにおいて、必要とされる性能要求を満たすことが求められます。

マルチプロセッサ・マルチタスク組込みシステムの性能検証

マルチプロセッサ・マルチタスク組込みシステムの性能検証

この図はサンドイッチ製造の工程を「タスクグラフ」と呼ばれるソフトウェア仕様の記述方法の一種で記述した例です。左から原材料が入力され、六角形で示される「タスク」によって一つの作業を実行し、右側に作業の結果として得られるものが出力されます。このような複数の作業を通じて、最終的に右端にサンドイッチが出力されます。このとき、それぞれの作業で単位時間当たり何回作業ができるか、という情報を与えることで、タスクグラフ全体として、原材料を単位時間当たりいくつ処理してサンドイッチを製造できるか、ということを計算できるようになります。このようなタスクグラフの仕様が与えられると、例えば、「1分間に2個以上サンドイッチを作れるか?」といった問いに答えられるようになります。一般に単位時間当たりより多くの商品が作成できるほど、この工程は性能が良いものとされるので、このような問いのことを「性能要求」と呼び、このような問いに答えることを「性能検証」と呼びます。このとき,もし材料を切る包丁の数が少なく複数人で共有する場合や、作業するバイトの人数が不足して一部の人が複数の役割をこなす必要があるなど、作業に必要な人や物といったリソースの数に制約がある場合「リソース制約」を与えても元の性能要求が保たれるか、といったことも検証できるようになります。このような性能検証は一般の組込みシステムの設計にも適用可能で、ソフトウェアの仕様をタスクグラフで与え、CPUの数(サンドイッチの例におけるバイトの人数に相当)やその他共有リソースの数(サンドイッチの例における包丁の本数)を変えて性能要求を満たせるか否かを、システムを完全に実装することなく,タスクグラフと各タスクやリソースの情報から構築した性能検証モデル(本研究では、優先権付きストップウォッチペトリネットと呼ばれる数理モデル)に変換して、性能要求を満たすか否かを調べることができます。

マルチタスク組込みシステムのメモリ削減スケジューリング

マルチタスク組込みシステムのメモリ削減スケジューリング

一般にマルチタスクシステムは、あるタスクの実行を中断して別のタスクに切り替える際に、メモリを確保したまま中断されることが多く、全体で消費されるメモリがタスク数に応じて大きくなる傾向にあります。一方で、組込みシステムは複数の入力に対して同時並行に適切な時間内に応答する必要があり、その実現のためにはマルチタスクシステムで構築する必要があります。しかし、組込みシステムにはコスト削減の要求があり、特にメモリ消費量を削減できれば、搭載するメモリ容量を削減でき、コスト削減につながります。そこで本研究では、各タスクが次の状態において消費するメモリの増分(消費メモリ増分:新たにメモリを確保するならば正の値、解放するならば負の値)を予測可能と仮定し、複数のタスクのうち、常に最も消費メモリ増分が小さいタスクを選択して実行するというタスクスケジューリング方式、LMCFスケジューリングを提案しています。図の左側には、2つのタスクの例を示しています。上に書かれた数字がタスクの番号(1および2)で、その下には初期状態からの状態遷移が記述されています。ひし形の内側にはメモリ増分が書かれており、各タスクがそれぞれの状態でどの程度メモリを確保または解放するかを示しています。右側の図は、これらの2つのタスクを並行動作させた場合に、全体のメモリ消費量がどうなるかを表した図になります。一番上の丸が初期状態で、左下(右下)への矢印がタスク1(タスク2)を1つだけ状態遷移させた場合の動作を表し、矢印の先の丸は遷移後の状態を表し、それぞれの丸の中に書かれた数字は、その状態における総メモリ消費量を表します。LMCFスケジューリングで動作させた場合の状態遷移は、図の緑で色付けされた経路を通り、この場合の最悪時のメモリ消費量は、経路の中で最大のメモリ消費量である6になります。一方で、可能な状態の内で最もメモリ消費量が大きい状態(最大メモリ消費状態と呼びます)のメモリ消費量は9であり、LMCFスケジューリングではこの最大メモリ消費状態を必ず避けることができることを理論的に証明しています。

リアルタイム組込みソフトウェア再利用のためのパラメトリック実行時間解析

リアルタイム組込みソフトウェア再利用のためのパラメトリック実行時間解析

大規模化するソフトウェアの開発期間短縮のためには、既存のソフトウェア部品を可能な限り再利用すること(ソフトウェア再利用)が有効です。ソフトウェア再利用により、似たような機能のソフトウェア部品を重複して作成することを避け、ソフトウェア開発の効率化が図れます。しかし、実時間性が要求されるソフトウェアに関しては、機能が同一であっても実行時間が実行環境(ハードウェア)によって変化するため、ソフトウェア再利用が困難な問題があります。実行環境が変化しても実時間ソフトウェアを再利用できるためには、対象のソフトウェアの実行時間が調節できる必要があります。実行時間をプログラムの設計パラメータで調節する方法があります。ソフトウェアには処理の機能に影響せず、処理の品質にのみ影響する設計パラメータを持つものがあります。例えば、画像処理ソフトウェアにおいては、画像の解像度のパラメータなどが該当します。それらの設計パラメータの多くはプログラムのループ文の繰り返し回数に関連しています。それらのパラメータを小さくすることで実行時間を小さくできますが、処理の品質は一般に低下します。本研究では、プログラムのソースコードS、および、Sの設計パラメータに関連するループ文の繰り返し回数を表すパラメータ変数x1,…,xkの指定、および、Sの基本ブロック(プログラムの一部分で、一つの入り口と一つの出口を持ち内部に分岐を持たないもの)の実行時間w1,…,wnが与えられたとき、Sの実行時間をx1,…,xk,w1,…,xnの多項式の形で求める手法(パラメトリック実行時間解析手法)の開発を行っています。実行時間をパラメータに関する多項式の形で求めることにより、実時間制約をパラメータに関する不等式で表現し、数理最適化問題に帰着することで、実時間制約を満たす範囲でのパラメータ最適化を行うことができ、パラメータの最適な調整をしたうえで実時間ソフトウェアの再利用を行うことができます。