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

Webを利用したハードウェア/ソフトウェア協調設計のためのテスト環境

N/A
N/A
Protected

Academic year: 2021

シェア "Webを利用したハードウェア/ソフトウェア協調設計のためのテスト環境"

Copied!
8
0
0

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

全文

(1)ソ フ ト ウ ェ ア 工 学 135−4 (2001. 11. 21). Web を利用したハード ウェア/ソフトウェア協調設計の ためのテスト環境 沢田 篤史 ∗ ,岩下 武史 ∗ ,神原 弘之 †‡ ∗. 京都大学 大型計算機センター 〒 606-8501 京都市左京区吉田本町 †. (財) 京都高度技術研究所 〒 600-8813 京都市下京区中堂寺南町 17 京都リサーチパーク ‡. (株) 半導体理工学研究センター 〒 222-0033 横浜市港北区新横浜 3-17-2 友泉新横浜ビル 5 階 本研究では,ハード ウェア/ソフトウェア協調設計に用いられるリターゲッタブルコン パイラやシミュレータなどのソフトウェアツールを統合し,設計対象システムの動作テス トを行う環境を構築し,Web 上に展開することを目指している.このように,複数の開 発者が遠隔から動作の確認や機能の検証を行える協調設計環境を整えることで,より信頼 性や保守性の高い組込みシステムの開発が可能となると考えられる. キーワード : 協調設計,組込みシステム開発,検証,ツール統合,Web アプリケーション サービ ス,Web DB. A Web-based Test Environment for Hardware/Software Co-design Atsushi SAWADA∗ , Takeshi IWASHITA∗, Hiroyuki KANBARA†‡ ∗. Data Processing Center, Kyoto University Yoshida-honmachi, Sakyo, Kyoto 606-8501, Japan †. Advanced Software Technology & Mechatronics Research Institute of Kyoto Kyoto Research Park, 17 Chudoji Minami-machi, Shimogyo, Kyoto 600-8813, Japan ‡. Semiconductor Technology Academic Research Center 5F Yusen Shin Yokohama Bldg., 3-17-2 Shin Yokohama, Kouhoku, Yokohama 222-0033, Japan In this paper, we propose a web-based test system for hardware/software co-design, which we call COVEE (CO-design VErification Environment). The system provides a framework for testing embedded applications which are developed using a set of integrated co-design tools such as retargetable compiler, hardware instruction level emulator, HDL simulator, etc. COVEE framework enables open-style development of reliable and maintainable applications. Keywords: co-design, embedded system development, verification, tool integration, web application service, web DB. −25−.

(2) 1. はじめに. 2. 近年,組込みシステムの適用分野が急速 に拡大し,システムに求められる機能や性 能はより高度なものとなってきている.同 時に,製品競争力の確保に開発期間の短縮 を余儀なくされており,組込みシステム開 発技術のオープン化が進行している.一方 で,ハード ウェア/ソフトウェア協調設計 の考え方が一般化し,ハード ウェアとソフ トウェアとの境界を柔軟に変更しながら組 込みシステム開発が短いサイクルで行われ るようになってきた. このように,急速に開発技術のオープン 化が進行し,ハード ウェアとソフトウェア の境界が流動化する中で,協調設計環境に おいて開発されるシステムの信頼性や保守 性を確保する手段を整備することが急務で あると指摘されている [1]. 本研究は,ハード ウェア/ソフトウェア 協調設計に用いられるリターゲッタブルコ ンパイラやシミュレータなどのソフトウェ アツールを統合し,設計対象システムの動 作テストを行う環境を構築し,Web 上に展 開することを目指している.このように, 複数の開発者が遠隔から動作の確認や機能 の検証を協調して行える環境を整えること で,より信頼性や保守性の高い組込みシス テムの開発が可能となると考えている. 以下,第 2 節で協調設計における検証の 重要性について概観した後,第 3 節で我々 が開発しているテストシステムの構成につ いて述べ,第 4 節では Web を用いた統合 環境の実装について説明する.さらに,第 5 節で本システムの問題点と今後の課題に ついて考察した後,第 6 節で本稿のまとめ をする.. 協調設計と検証. 本研究が対象とするハード ウェア/ソフ トウェア協調設計の目的は,対象システム に要求される機能が与えられているときに, システムに対する非機能要求を満足するよ うにハード ウェアとソフトウェアの境界を 定め,組込みアプリケーション全体を実現 することである.端的に言えば,C 言語な どを用いて記述された対象アプリケーショ ンについて,それがハード ウェアとソフト ウェアからなるシステムとして実現される ときに,その消費電力や処理時間などに関 する要求が満たされていることを保証する ために行うものである. 具体的には,計算時間を短縮する目的で, ソフトウェアの実行性能に大きく影響を与 えるプロセッサのアーキテクチャ(サポー トする命令セットやレジスタの数) を変更 したり,全体時間に占める割合の大きい処 理についてはプロセッサバスなどに専用の ハード ウェア (ベクトル演算や並列演算な ど ) を追加するといったことが行われ,ハー ド ウェアとソフトウェアの境界が変更され ることになる. 図 1 に,協調設計の流れと各場面で用 いられる開発ツールとの関係について示 す.図の左半分がソフトウェア側,右半分 がハード ウェア側の設計手順である.ソフ トウェア側の設計と検証では,プロセッサ アーキテクチャに関する情報 (図左上) が 与えられた時に,そのプロセッサに特化し た命令列を生成する専用コンパイラ (図中 央) と,その命令列をエミュレートする専 用エミュレータ (図左下) を生成,アプ リ ケーションプログラムをコンパイルして動 作の確認と検証を行う.それに対し,ハー ド ウェア側の設計と検証では,プロセッサ と専用ハード ウェアを含めたハード ウェア 記述 (図右上) から論理回路合成を行った上. −26−.

(3) Processor Architecture Info. つまり,協調設計において,アプリケー ションの動作をハードウェア,ソフトウェア の両方の側面から検証するプロセスを自動 実行できる環境を整備することで,組込み システム開発の省力化やプロダクトの信頼 性・保守性向上に大きく寄与することがで きると考えられる.また,対象アプリケー ションが大規模で複雑になれば,その開発 は多人数・グループで進められることから, 検証プロセスの実行やその結果の閲覧,ア プリケーション (ソフトウェア・ハード ウェ ア ) の改版は,ネットワークを介して効率 的に支援されなければならない.. Processor HDL Description. Target Application Code. Retargetable Compiler. Target Application Assembler Code. Retargetable Instruction Set Level Emulator. HDL Simulator. Emulation Result. Simulation Result. Compare. 3 図 1: 協調設計の流れ で,アプリケーションの動作を信号レベル でシミュレートしながら,タイミングや処 理時間の検証を行う. さらに,ソフトウェア側から出されるエ ミュレーション結果とハード ウェア側のシ ミュレーション結果との比較を行った上で, 必要に応じてハード ウェアとソフトウェア との境界が変更される.こういったチュー ニングを繰り返すことでシステム全体の開 発が進行していく. このようなハード ウェア/ソフトウェア 協調設計のプロセスにおいて,検証作業, すなわちエミュレーションとシミュレーショ ンの実行および両者の結果比較にかかる工 数が非常に大きな部分を占めているといえ る.というのも,想定される多くの入出力 の組合わせについて,アプリケーションを エミュレータおよびシミュレータ上で動作 させ,それぞれの結果を互いに突き合わせ るという作業を繰り返し行わなければなら ないためである.. テスト システムの構成. 前節で述べた必要性のもと,協調設計の プ ロセスで用いられる各種ツールを組合 わせ,アプリケーションの動作テストを繰 り返し行うシステム,COVEE (CO-design VErification Environment) の構築を行っ た.COVEE が自動化するテストのプロセ スは前節の図 1 にしたがったものであり, アプリケーションの記述に Valen-C とその コンパイラ・エミュレータの処理系 [2, 3], ハード ウェア記述には UDL/I とそのシミュ レーション環境 [4, 5] を用いることを想定し ている.なお,COVEE とそれが統合する ツールは,いずれも Debian GNU/Linux[6] (kernel ver. 2.2.18pre21) を用いて構築,動 作確認が行われている.. 3.1. テンプレート とテスト セット. COVEE におけるテスト実行は,テンプ レートをテストセットに適用することで行 われる.テンプレートは,テストの手続き を記述する簡易シェル言語であり,一連の ツール実行順序とそれぞれに与える引数,. −27−.

(4) check_files #test# snoot #success retcode==0 vcc -target sparc -reg-opt #test#.c snoot -Tsparc #test#.o #fail stderr>0 storage_alloc -Tsparc #success stderr==0,retcode==0. テストセット テンプレート. 図 2: テンプレート記述例 さらにそれぞれのツール実行における結果 判定の条件を記述することができる.テス トセットはアプリケーションに与える入力 および想定出力に関するデータの集合を示 す.通常のテストにおいては複数のテスト セットが用意され,テンプレートに示され た一連の手続きが繰り返されることになる. 図 2 にテンプレートの記述例を示す.先 頭にツールのコマンド 名が示され,それに 与える引数が続いて記述される.ただし , #test# は繰り返し実行時にそれぞれのテ ストセット名と置き換えられて評価される. また #success 以下には実行が成功した と判定されるための条件,#fail 以下には 失敗と判定する条件を記述できる.省略時 は,シグナル割込で異常終了する場合以外 は成功と判定される.条件の中身に指定で きるキーワード は,stdout: 標準出力のサ イズ,stderr: 標準エラー出力のサイズ, retcode: プログラムの返値となっており, 列挙される場合にはすべてが成立する場合 に成功 (失敗) と判定する.条件として記述 できるのは,それぞれの値に対する等号・ 不等号・比較の演算子のみであり,例えば 出力ファイルの形式や内容にまで言及する ような条件の記述を行うことはできない. そのような条件を含む実行結果の判定が必 要な場合には,判定を行うプログラムを別 途開発者の側で用意し,テンプレートから 起動されるツールという形にして対処すれ ば良い.. テスト実行 エンジン. stdout stderr retcode signal result. 結果格納 データベース. 図 3: テスト実行エンジンの構成. 3.2. テスト 実行エンジンと結果格 納データベース. 図 3 に示すように,テスト実行エンジン は,テンプレートに対してテストセット名 を与え,指定された順に繰り返しテストの 自動実行をする.各ツールの起動にあたっ ては,標準出力,エラー出力,返値,シグナ ルなどに関する情報を取得しながら,テン プレートに指定された条件にしたがった実 行結果の判定を行うとともに,出力された 各情報をデータベースに格納する機能を持 つ. 図 4 にテスト結果格納データベースの スキーマを示す.スキーマに定義された表 template result は,ある対象アプリケー ションについて一つのテンプレートを用い て行われたテストの結果をまとめて示すた めのもので,各タプルには,テンプレート の名前の他,ターゲットの名前・バージョン, テストの開始・終了の時刻,テスト実行者の 情報が記録される.また,testset result は,あるテンプレートについて繰り返し行 われたテストのうち,一つのテストセット. −28−.

(5) template_result name target_name target_version start_date end_date exec_user 1 * testset_result name version start_date end_date log. tool_result 1. *. name version start_date end_date result stdout stderr retcode exec_order. 図 4: テスト結果格納データベースのス キーマ に関する情報を取りまとめるための表で, テストセット名の他,そのテストセットに 対するテスト開始・終了時刻,そのテスト セットについての各ツールを起動したログ 情報が格納される.さらに,tool result には,個々のツールについての起動情報の 詳細 (標準出力,エラー出力,返値,シグ ナル,実行順) とツール実行の成否判定結 果が格納される.. 4. Web を用いたシステムの 展開. COVEE が提供する一連のテスト実行プ ロセスの起動やテスト結果の閲覧を,遠隔 の開発者から可能とするために,図 5 に示 す形で,Web 上への展開を行っている.ア プリケーションの開発者は Web ブラウザ. 経由で COVEE サーバにアクセスし,起動 するテンプレート,テストセット,テスト 対象のアプ リケーションを指定した上で, テストの実行をサーバに依頼する.テスト 実行エンジンは指定されたテストをサーバ 計算機上で繰り返し実行し,結果格納デー タベースに判定した結果を登録する. COVEE サーバで用いる Web サーバに は Apache[9] (ver. 1.3.20) を利用し,テス ト実行エンジンの呼び出しのサーバサイド スクリプトの記述には PHP[7] (ver. 4.0.6) を用いている. 一方,テスト結果格納データベースには PostgreSQL[8] (ver. 7.1.2) を採用してお り,PHP を用いた検索インタフェースを 提供することで,各開発者が Web ブラウ ザを用いてテスト結果を閲覧することがで きる. 図 6 にテスト結果閲覧のためのインタ フェースの概観を示す.右上のフレームに は,各テンプレートを用いて実行されたテ スト結果の概要 (テンプレート名,対象ア プリケーションとバージョン,開始・終了時 刻,実行者など ) が示されており,リンク をたど ることにより,右下フレームに各テ ストセットに対する結果情報を表示するこ とができる.さらに,各テストセットに対 して起動されたツールに関する情報 (標準 出力,エラー出力,返値など ) は,ツール項 目のリンクをたど る事で閲覧可能となって いる.また,左側のフレームからは,テス トの実行者やテンプレート名,テストセッ ト名などの条件を指定して,テスト結果の 検索が行えるようになっている. 開発者はこれらのインタフェースを用い ることにより,Web ブラウザを用いたテ ストの実行と,結果の確認という一連の 作業を遠隔から行うことができる.なお, COVEE ではテスト実行エンジンの起動に 関する排他制御機能を備えない.テスト作. −29−.

(6) HTTP. アプリケーション リポジトリ (開発中). server チェックイン チェックアウト. cvsweb. Apache + PHP. client (browser). テスト実行 エンジン. チェック アウト. ターゲットアプリケーション テスト実行エンジンソース テストセット テンプレート. (CVS) 実行指示. 実行結果. 検索インタフェース 結果提示. テスト結果格納 データベース. テンプレート結果 テストセット結果 ツール起動結果. (PostgreSQL) 開発者. COVEE サーバ 図 5: COVEE の Web への展開. 業という比較的大きな粒度でのプロセスの 制御は,開発環境が強制するものではなく, 開発管理において決定,施行されるべきも のと考えるからである.ただし,結果表の 参照一貫性など最低限の整合性については, PostgreSQL が提供する行レベルのロック や外部キー機能で保証している.Apache や PostgreSQL が提供するユーザ認証の機 能を利用することで,データベースのアク セス権やツールの実行権の設定が可能であ るため,開発ポリシを施行するさいに利用 することができると考える.. 5. 考察と今後の課題. 現在,著者ら自身,および著者らが所属 する組織の別プロジェクトにおいて,MIPS プロセッサ上での MPEG4 アプリケーショ ンの協調設計に COVEE を適用し ,その. 有効性の評価を試みている. その中で,協調設計全体に関する問題と して指摘されているのは,ソフトウェアで 実現されるものと仮定されて記述された処 理がハード ウェアで実現されるような場合 に,その処理に対する時間制約が存在しな いという点である.このような場合には, 他のハード ウェアとのやりとりなどを通じ て,より詳細なタイミング検証が必要とな るが,現在 COVEE とそれに統合される ツールでは,その機能が提供されない.こ れに対処するためには,図 1 の下部に示し た,シミュレーション結果とエミュレーショ ン結果との比較から,新たなハード ウェア 部分に対する時間制約を導出するような機 能を持つツールの整備が必要となるだろう. 上記問題点とも関連するが,エミュレー ション・シミュレーション結果の可視化に ついての要求もあげられている.協調設計. −30−.

(7) テンプレートに対する テスト結果閲覧部 テスト結果の 検索条件指定部. 各テストセットについて 起動されたツール毎の 実行結果閲覧部. 図 6: テスト結果の検索・閲覧インタフェース においては,とくにメモリやバス競合など の発見が重要であるため,効率的な可視化 ツールを統合し ,Web で結果の確認がで きるよう環境を整備することも今後の課題 となる. 一方,COVEE を単なる遠隔テストのた めの環境としてではなく,協調設計ツール のデモンストレーション環境としても利用 したいという要望が出されている.各ツー ルを一貫して動作させる手続きをテンプ レートとして示しながら,サーバ側で動作 させて確認が行えることで,協調設計ツー ルの導入ガ イドとなると期待される.デモ ンストレーション環境としてより有効に機 能させるためには,図 5 の右上部に示す アプリケーションリポジトリに,各ツール やテストエンジン,テンプレート,テスト セットのソースを登録し,遠隔からそれら. をチェックアウトし,各ユーザの手元で動 作確認とインストールが行えるようにする 必要がある.現在,この点に関する改良と して,CVS[10] とその Web インタフェー スを COVEE と組合わせるための開発を 行っている. また,デモンストレーション環境として 用いるという面から,ビジュアルなテンプ レートエディタについての必要性も指摘さ れている.協調設計ツールをアイコン部品 で示し,それらを組合わせてテストの流れ を記述できれば,よりユーザに親和性の高 い環境を提供することができるであろう.. −31−.

(8) 6. おわりに. 本稿では,ハード ウェア/ソフトウェア 協調設計のためのテスト環境 COVEE につ いて,その機能と開発の現状を紹介した. COVEE は,協調設計で用いられる各種の 開発ツールを統合したサービスを,Web を 介して提供する.このことにより,開発者 はブラウザを用いた対象アプリケーション の動作確認や検証結果の閲覧が可能となる. このような環境を提供することで,オープ ン化に対応した組込みシステム開発におい て,プロダクトの信頼性や保守性の向上を 目指すための基盤を与えることができると 考える. 現在,組込みアプリケーション開発のプ ロジェクトに COVEE を適用し,問題点の 整理を行っている.その中で,新たな機能を 持った開発ツール統合の必要性や,COVEE をデモンストレーションおよび開発ツール の配布環境として使用することについての 必要性が指摘されており,今後はそれらを 採り入れてシステムをさらに改善して行く 必要があるだろう.. 参考文献 [1] 高田広章: “組込みシステム開発技術の 動向”, システム/制御/情報, Vol. 45, No. 3, pp. 115–117, 2001. [2] Inoue, A., Tomiyama, H., Shimizu, T., Kanbara, H. and Yasuura, H. : “An Embedded Software Programming Language for Application Specific Datapath Width Processors”, 6th International Workshop on Hardware/Sotware Codesign (Codes/CASHE’98), March 1998.. [3] Inoue, A., Tomiyama, H., Okuma, T., Kanbara, H. and Yasuura, H.: “Language and Compiler for Optimizaing Datapath Widths of Embedded Processors”, IEICE Trans. Fundamentals, Vol.E81-A, No.12, December 1998. [4] Kanbara, H. and Yokota, S.: “Validation of UDL/I Test Suites and UDL/I Simulation/Synthesis Environment”, IEICE Trans. Fundamentals, Vol. E78-A, No.12, pp.1749–1754, 1995 [5] Yokota, S. and Kanbara, H.: “Conformance Test of a Logic Synthesis System to the Standard HDL UDL/I”, IEICE Trans. Fundamentals, Vol. E78-A, No.12, pp.1742– 1748, 1995 [6] Debian GNU/Linux, (http://www.debian.org/). [7] PHP: Hypertext Preprocessor, (http://www.php.net/). [8] PostgreSQL, (http://www.postgresql.org/). [9] The APACHE Software Foundation, (http://www.apache.org/). [10] CVS: Concurrent Versions System, (http://www.cvshome.org/).. −32−.

(9)

図 2: テンプレート記述例 さらにそれぞれのツール実行における結果 判定の条件を記述することができる.テス トセットはアプリケーションに与える入力 および想定出力に関するデータの集合を示 す.通常のテストにおいては複数のテスト セットが用意され,テンプレートに示され た一連の手続きが繰り返されることになる. 図 2 にテンプレートの記述例を示す.先 頭にツールのコマンド 名が示され,それに 与える引数が続いて記述される.ただし , #test# は繰り返し実行時にそれぞれのテ ストセット名と置き換えられて

参照

関連したドキュメント

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ

Bringing together singers from four international schools in Korea and Japan—SOIS, Seoul International School (SIS), Korea International School (KIS) and Yokohama In-

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

 本資料作成データは、 平成26年上半期の輸出「確報値」、輸入「9桁速報値」を使用

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

 本資料作成データは、 平成29年上半期の輸出「確報値」、輸入「9桁速報値」を使用

本資料は、宮城県に所在する税関官署で輸出通関又は輸入通関された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したもので