[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5056493B2 - 仮想ソフトウェア生成装置 - Google Patents

仮想ソフトウェア生成装置 Download PDF

Info

Publication number
JP5056493B2
JP5056493B2 JP2008060428A JP2008060428A JP5056493B2 JP 5056493 B2 JP5056493 B2 JP 5056493B2 JP 2008060428 A JP2008060428 A JP 2008060428A JP 2008060428 A JP2008060428 A JP 2008060428A JP 5056493 B2 JP5056493 B2 JP 5056493B2
Authority
JP
Japan
Prior art keywords
module
software
virtual software
load
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008060428A
Other languages
English (en)
Other versions
JP2009217531A (ja
Inventor
浩一郎 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008060428A priority Critical patent/JP5056493B2/ja
Publication of JP2009217531A publication Critical patent/JP2009217531A/ja
Application granted granted Critical
Publication of JP5056493B2 publication Critical patent/JP5056493B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ハードウェアに実装されるソフトウェアを、負荷を生成するソースコードで置き換えた仮想ソフトウェアを生成する仮想ソフトウェア生成装置に関する。
近年、システムLSI(Large Scale Integration)の開発時におけるシミュレーションによる設計技術が進められている。主に、これはESL(Electronic System Level)技術と呼ばれ、システムLSIの設計を段階ごとに詳細性(抽象性)を変えながら設計を行う技術である。
抽象度の高い設計段階では、ハードウェアをブロック図表記で行い、その高速動作性から全体構成の検討に用いたり、CPU(Central Processing Unit)が組み込まれたSoC(System On Chip)などの設計では、実際にソフトウェアをシミュレータ上で動作させながらシステム全体の挙動を解析する目的に用いられる。一方で、抽象度の低い構成では、処理速度は遅いが実際のハードウェアロジックに近いハード詳細設計の段階で用いられる。
従来のESLツールやソフトウェア開発環境では、ハードウェアとソフトウェアとは独立した環境で開発されていた。
例えばPC(Personal Computer)のように、予め決められたアーキテクチャが存在する場合は、ソフトウェアは既存のハードウェアを元に構築して行けばよいが、多様な機能を1システムで実現させるような組込システムにおけるシステムLSI上のソフトウェアを開発する場合、対象となるハードウェアであるシステムLSIが実装されて後に実際のソフトウェアの開発として具体的に設計開発をして定量評価を行っていた。
また、従来のESLツールの用途は、ハードウェアアーキテクチャを設計する場合には、論理回路をハードウェア記述言語で詳細に設計するRTL(Register Transfer Level)設計ではなく、設計の詳細度合いに応じて論理回路の挙動だけを表現したSystemCなどの言語によって記述した抽象的な表現でシミュレーションが行われていた。一方で、ソフトウェアについては、開発したソフトウェアを実装して検証していた。
ソフトウェアの検証を行うマイコンシミュレータとハードウェアシミュレータとを備え、マイコンシミュレータにおいてハードウェアシミュレータで検証されたハードウェアの検証結果を適時に利用することによって、演算量が膨大となるハードウェアシミュレータでの処理結果を再度取得するまでの時間を短縮するようにした技術が知られている。
特開2000−35898号公報
上記従来のシミュレーション方法では、ソフトウェア検証用のマイコンシミュレータとハードウェア検証用のハードウェアシミュレータとはI/Fモデルで連携する手法であり、検証するためのシミュレータはそれぞれ別のものであるため、一のシステムLSIとしてハードウェアシミュレータ上で検証することができないといった問題があった。
例えば、ESLツールは、実際のシステムLSIを開発する前にシミュレーション環境による構築を補助し、実際のチップ環境を準備することなく、シミュレーション上でソフトウェアの開発に用いるために利用されている。
しかしながら、ESL環境が整備されたとしても、システムLSIのアーキテクチャやトポロジーなどが変化した場合には、それが原因となって対象とするソフトウェアが正常に動作せず、ソフトウェアを改造した後にシミュレーションモデル上でソフトウェアを移植しなおすという作業が発生していた。
よって、本発明の目的は、ハードウェアに実装されるソフトウェアをハードウェアに依存しないモジュール構成に置き換えて、システムLSI全体の挙動を実際のハードウェア及び実際のソフトウェアを開発する前に評価可能とする仮想ソフトウェアを生成する仮想ソフトウェア生成装置を提供することである。
上記課題を解決するため、ソフトウェアを構成する複数のモジュール間のデータ入出力とを解析してモジュールツリー構造を作成するモジュールツリー構造作成手段と、前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手段と、前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手段と、前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手段と、を有するようにした仮想ソフトウェア生成装置を提供する。
上記課題を解決するため手段として、上記仮想ソフトウェア生成装置での処理を行う仮想ソフトウェア生成方法、又は、コンピュータに上記仮想ソフトウェア生成装置の各手段として機能させるためのプログラムとすることもできる。
開示の仮想ソフトウェア生成装置は、ソフトウェアを構成する各モジュールが行うと予測される処理の負荷の程度を発生させるモジュールで仮想化を行い、ハードウェアを検証するシミュレーション上で抽象化されたハードウェアと連携させることによって一のシステムとして評価及び設計を行うことができる。
以下、本発明の実施の形態を図面に基づいて説明する。
多様な機能を実現するための電子部品及びそれらを制御するCPUを組み込んだSoCを検証するESLツールでは、各電子部品、CPU、及びSocに接続される周辺部品の挙動を抽象化してシミュレートして、各電子部品及び周辺部品の検証を行っている。本実施例では、実装に近いソフトウェアの負荷量に置き換えた仮想ソフトウェアを用いてESLツールを用いて検証することによって、ハードウェア及びソフトウェアの検証を同時に行えるようにする。以下、SoCとそのSoCを動作させるソフトウェアとをシステムLSIと言う。
図1は、本発明の一実施例に係るシミュレータ装置の機能構成例を示す図である。図1において、シミュレータ装置100は、主に、仮想化処理部10とESLツール20とで構成される。仮想化処理部10は、評価対象のシステムLSI7のソフトウェア(以下、評価対象ソフトウェア3と言う)を構成するモジュール毎に負荷量を予測し、その予測負荷量を用いて仮想化する処理部であり、構造解析部11と、シナリオジェネレータ12と、置換部13と、モジュール選択部14と、仮想ソフトウェア生成部15とを有する。
仮想化処理部10に入力される評価対象ソフトウェア3は、システムLSI7に搭載しようとしているソフトウェアのソースコード又は仕様書などである。仕様書の場合、他のツールによってUML(Unified Modeling Language)やフローチャートなどの仕様表現言語で記述されたデータに変換する。
構造解析部11は、評価対象ソフトウェア3の関数毎にモジュールを構成し、各モジュール間のデータの入出力(以下に述べるI/Oトラフィック)に係る情報に基づいてモジュールツリー構造11aを作成する。また、構造解析部11は、ストーリーパーサー11bを用いてモジュールツリー構造11aを作成する過程で取得した種々のデータに基づいてストーリーデータ43を作成する。
シナリオジェネレータ12は、フラグメントパーツ12aを用いて、仮想ソフトウェアモジュール12bを作成する。フラグメントパーツ12aは、負荷量に係るパラメータの値を持たない空のシナリオ原案モジュールを予め備えており、シナリオジェネレータ12から、モジュールツリー構造11aに基づいて評価対象ソフトウェア3のモジュール毎に負荷量に係るパラメータ値が与えられることによって、モジュール単位に仮想ソフトウェアモジュール12bを生成する。
置換部13は、モジュールツリー構造11aに対して、各モジュールを仮想ソフトウェアモジュール12bで置換する。
仮想ソフトウェア生成部16は、置き換え後のモジュールツリー構造15aに基づくソフトウェアコードでなる一つの仮想ソフトウェア21bを生成し、ESLツール20内のESLモデル21へ出力する。仮想ソフトウェア21bはコンパイルされたオブジェクトコードで出力される。仮想ソフトウェア21bをESLツール20に取り込むことで早期の段階でシステムLSI7を検証することができる。
また、モジュール選択部14は、ユーザによるモジュールの選択を可能とする処理部である。例えば、評価対象ソフトウェア3の一部又は全体が完成している場合、ユーザが仮想ソフトウェアモジュール12bで置き換える又は置き換えないモジュールを選択することによって、置換部13が指定されたモジュールに応じて、仮想ソフトウェアモジュール12bで置き換えないようにすることができる。この場合、仮想ソフトウェアモジュール12bで置き換えないモジュールに対しては、評価対象ソフトウェア3の指定されたモジュールのソースコードがそのまま採用される。置換するモジュール又は置換しないモジュールを個々或いはグループ単位でユーザが指定できるようなインタフェースとしてもよい。
このような機能を備えることによって、仮想化処理部10から出力される仮想ソフトウェア21bは、ソフトウェアの実体のモジュールと、予測した負荷量に基づく仮想化したモジュールとを混在させることができる。従って、本実施例では、ESLツール20にソフトウェアの実体のモジュールと仮想化したモジュールとを混在させて動作させることができる。既存のソフトウェアの完成度の高いモジュールを流用して評価することが可能となる。また、ユーザは、特に詳細な挙動の分析を行いたいモジュールについては置換を行わない指定をすることができ、ESLツール20上でシミュレーションする際には置換されなかったモジュールの機能部分について詳細な分析を行うことができる。
一方、評価対象ハードウェア2は、ESLツール20を用いて抽象化された抽象化ハードウェア21aとして生成される。ESLモデル20は、この抽象化ハードウェア21aと仮想ソフトウェア21bとで構成される。
ユーザは、ESLツール20を用いてESLモデル21を評価する際には、評価対象ハードウェア2と評価対象ソフトウェア3とを同時に評価することができ、また、システムLSI7全体の評価結果(フィードバック)に基づいて評価対象ハードウェア2と評価対象ソフトウェア3とを夫々見直すことができる。
上述したような機能を実現するシミュレータ装置100は、コンピュータ装置であって、図2に示すハードウェア構成を成す。図2は、シミュレータ装置のハードウェア構成例を示す図である。図2において、シミュレータ装置100は、コンピュータによって制御される端末であって、CPU31と、メモリユニット32と、表示ユニット33と、出力ユニット34と、入力ユニット35と、通信ユニット36と、記憶装置37と、ドライバ38とで構成され、システムバスBに接続される。
CPU31は、メモリユニット32に格納されたプログラムに従ってシミュレータ装置100を制御する。メモリユニット32は、RAM(Random Access Memory)及びROM(Read-Only Memory)等にて構成され、CPU31にて実行されるプログラム、CPU31での処理に必要なデータ、CPU31での処理にて得られたデータ等を格納する。また、メモリユニット32の一部の領域が、CPU31での処理に利用されるワークエリアとして割り付けられている。
表示ユニット33は、CPU31の制御のもとに必要な各種情報を表示する。出力ユニット34は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット35は、マウス、キーボード等を有し、ユーザがシミュレータ装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット36は、シミュレータ装置100が例えばインターネット、LAN(Local Area Network)等を介してシミュレータ装置100と接続する場合に、シミュレータ装置100との間の通信制御をするための装置である。記憶装置37は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
シミュレータ装置100よって行われる仮想ソフトウェア21bを生成するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体39によってシミュレータ装置100に提供される。即ち、プログラムが保存された記憶媒体39がドライバ38にセットされると、ドライバ38が記憶媒体39からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置37にインストールされる。そして、プログラムが起動されると、記憶装置37にインストールされたプログラムに従ってCPU31がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット36によってネットワークを介してダウンロードし、記憶装置37にインストールするようにしても良い。
図3は、仮想化処理部による処理を説明するためのフローチャート図である。図3において、ユーザによって評価対象ソフトウェア3が仮想化処理部10に入力される(ステップS1)。入力される評価対象ソフトウェア3は、ソースコード、仕様書等である。評価対象ソフトウェア3が入力されると、仮想化処理部10は、評価対象ソフトウェア3がソースコードであるのか又は仕様書であるのかを判断する(ステップS2)。評価対象ソフトウェア3のファイル識別子で判断するようにすればよい。仕様書であると判断した場合、仮想化処理部10は、一般に用いられているツールを利用してUMLやフローチャートなどの仕様表現言語で記述したデータに変換して、ソフトモジュール構成グラフリスト41とモジュール処理サイクルに係る情報を含むI/Oトラフィックリスト42とを出力する。
一方、ソースコードであると判断した場合、構造解析部11は、コンパイルのための前処理を実行するプリプロセッシングを行い(ステップS3)、ソースコードを読み出しながら、その実行トレースをスタックしておき、実行後に関数などのモジュールレベルにおける、演算量、その関数がどのようなリソースを使用したか(アクセス元及びアクセス先)を示す情報、アクセスの対象となるデータ量、モジュール処理サイクルを示す情報等をレポート出力するプロファイリングを行って(ステップS4)、評価対象ソフトウェア3を構成する複数のモジュールを実際に実行させることなく、各モジュールの挙動に係るデータを収集する。本実施例では、このプリプロセッシングとプロファイリングとを含めてプリプロファイリングと言い、各モジュールの挙動を実際に実行させることなくデータを収集ことである。プリプロファイリングを行うステップ4での処理をプリプロファイラと言う。
本実施例におけるプリプロファイリングではソフトウェアそのもののアルゴリズムには関与しないため、モジュールの挙動に係るデータは、そのモジュールが使用すると想定されるハードウェアリソースを示す情報などである。プリプロファイリングで生成された情報はI/Oトラフィックリスト42として蓄積される。
また、ステップS4では、構造解析部11は、評価対象ソフトウェア3に対してツリー解析を行うことによって、関数名を用いてモジュールの特定を行い、モジュール間のI/Oトラフィックで関連付けられるモジュールツリー構造11aを生成する。モジュールツリー構造11aは、モジュールを特定する関数名とモジュール間のI/Oトラフィックに係る情報とを対応付けた構成グラフリスト41で表現される。
更に、構造解析部11は、リストパーサー機能を用いて構成グラフリスト41とI/Oトラフィックリスト42とからストーリーデータ43を作成するストーリーパーサーを実行する(ステップS5)。ストーリーデータ43は、構成グラフリスト41に基づく複数のモジュールが実行される処理手順毎に、実行するモジュールを特定する情報、そのモジュールの演算量、アクセス元、アクセス先、データ量、モジュール処理サイクルに基づいて分類したアクセスパターン等の、各モジュールの負荷量に係るパラメータ値を対応させたテーブルである。このようなストーリーデータ43によって、各モジュールが、どのくらいの演算量で、どこからどこへ、どのくらいの量のデータをどのようなアクセスパターンで実行するかが示される。
次に、構造解析部11によってストーリーデータ43が作成されると、シナリオジェネレータ12は、ストーリーデータ43を参照して、モジュール毎に、負荷量に係るパラメータ値を持たない空のシナリオ原案モジュールとして予め用意してあるフラグメントパーツ12aに各パラメータ値を設定して仮想ソフトウェアモジュール12bを作成する(ステップS6)。
つまり、パラメータ値が設定されたフラグメントパーツ12aは、評価対象ソフトウェア3のモジュールの挙動を示すアルゴリズム的な意味はなく、そのモジュールの実体が動作した場合と同等のアクセスパターン及び負荷量を持った仮想ソフトウェアモジュール12bとなる。各仮想ソフトウェアモジュール12bは、システムLSI7のCPUの演算量とI/Oパターンを示すアクセスパターンのみを挙動の実体とするため、特定のアルゴリズムやデバイスの影響を受けないハードウェア非依存のソフトウェアモジュールとすることができる。
仮想ソフトウェアモジュール12bの内部構造は本来目的とする挙動を行う内容ではないため、評価対象ソフトウェア3の関数名や引数などについては、評価対象ソフトウェア3の形態を引き継ぐものとする。
置換部13は、評価対象ソフトウェア3の構造解析後に得られたモジュールツリー構造11aに対して、シナリオジェネレータ12によって作成された仮想ソフトウェアモジュール12bで置き換えを行う(ステップS7)。実際にモジュールをそのまま置き換えるのではない。ソースコード上、関数名から、例えば、C言語系の記述であれば関数処理の開始を示す「{」と、終了を示す「}」の間を置換していくことによって、元の評価対象ソフトウェア3の関数名及び引数を維持する。計算結果による条件分岐処理については、従来の分岐予測手法を用いて、求める分岐比率に従った分岐を生成して置換する。
一方、仮想化レベル情報18にはモジュール選択部14を用いたユーザのモジュールの選択に係る情報が格納されており、置換を行わないモジュールが存在する場合には、そのモジュールに対する仮想ソフトウェアモジュール12bによる置き換えは抑止される。また、仮想化レベル情報18には、画像処理装置のコンフィグ情報なども含まれる。コンフィグ情報は、所定フレーム数単位で取り込める画素数、1ファイル当たりのアクセスデータ量、表示解像度など示す。
置換部13による処理後、仮想ソフトウェア生成部15は、モジュールツリー構造11aに対して仮想ソフトウェアモジュール12bで置き換えたモジュールツリー構造15aを用いて、評価対象ハードウェア2のシミュレーション環境で動作する実際のソフトウェアコードを出力する(ステップS8)。
次に、ユーザは、ESLツール20を用いて評価対象ハードウェア2の抽象化ハードウェア21aを作成した後、抽象化ハードウェア21aと仮想化処理部10から出力された仮想ソフトウェア21bとで成るESLモデル21を、ESLツール20上でシミュレーションすることによって検証して(ステップS9)、ソフト要求仕様を満たすか否かを判断する(ステップS10)。ユーザが、ソフト要求仕様を満たすと判断した場合には評価が完了したと判断する(ステップS12)。
一方、ソフト要求仕様を満たさないと判断した場合には、ユーザはストーリーデータ43を表示ユニット33に表示させ、項目の値を変更して調整する(ステップS11)。又は、構成グラフリスト41とI/Oトラフィックリスト42とに格納されている情報を変更する。構造解析部11は、構成グラフリスト41又はI/Oトラフィックリスト42の変更に応じてリストパーサーを実行してストーリーデータ43を更新する。以後上述したような処理を繰り返すことによって、評価対象ソフトウェア3をどのように改善すべきかを検証することができる。
このように、ユーザは、ハードウェアシミュレータとしてのESLツール20を用いて、評価対象ハードウェア2の挙動をシミュレートすると共に評価対象ソフトウェア3の挙動を分析することができる。
次に、上述したシミュレータ装置100を用いた検証例について説明する。例えば、システムLSI7として動画及び静止画を撮影するために画像処理部をSoC化した画像処理装置を検証する例を説明する。図4は、ESLツール20を用いて作成した画像処理装置の抽象化ハードウェア21aの例を示す図である。図4において、ESLツール20を用いて作成された抽象化ハードウェア21aでは、画像処理装置は、この装置の中心となるプロセッサとしてのデバイスAと画像処理を補助するアクセラレータとしてのデバイスBとを内蔵した画像処理SoC6と、プロセッサ動作時に使用されるメモリとしてのデバイスCと、画像を取り込むカメラ64としてのデバイスDと、データを保存するメモリカード65としてのデバイスEと、表示用のLCDパネル66としてのデバイスFと、その他汎用に用いられる汎用インタフェースとしてのデバイスGとで構成される。図中、抽象化ハードウェア21aは各デバイスAからGの機能を表現するロジックを持たせたブロックで表現される。
ユーザは、ESLツール20を用いて作成した画像処理装置の抽象化ハードウェア21aを表示ユニット33に表示させ、動画及び静止画を処理する装置として大画面化を要求した場合に画像処理SoC6に求められる仕様を探求していく。
図5は、画像処理装置に係る評価対象ソフトウェア3のモジュールツリー構造11aの例を示す図である。図5において、画像処理装置6に係る評価対象ソフトウェア3が、カメラドライバとして機能するモジュール1と、画像前処理として機能するモジュール2と、アクセラレータドライバとして機能するモジュール3と、データ後処理として機能するモジュール4と、メモリカードドライバとして機能するモジュール5と、LCDパネルドライバとして機能するモジュール6と、DSPファームウェアとして機能するモジュール7とを有し、モジュール間のI/Oトラフィックを示す接続によってモジュールツリー構造11aを構成する。
仮想化処理部10へ入力される評価対象ソフトウェア3がソースコードの場合、構造解析部11によってモジュールツリー構造11aが作成される。UMLなどによる仕様書図が入力された場合にはモジュールツリー構造11aを作成するのに必要なソースコードの解析が簡略化される。
図6は、評価対象ソフトウェア3の処理フローの例を示す図である。図6において、構造解析部11のプリプロファイリングによって解析された処理フローの結果を示し、処理フローにおける処理毎に図5に示すモジュールを便宜的に対応させて示している。
処理P1において、モジュール1のカメラドライバがデバイスDのカメラからデバイスCのメモリへの連続データ取り込みを行うと、処理P2において、デバイスAのプロセッサ内部にて演算が実行されてモジュール2の画像前処理が行われ、その処理によってデバイスCのメモリへのランダムアクセスが発生する。
前処理が終了すると、処理P3において、モジュール6のパネルドライバがデバイスFのLCDパネルへデータを転送して画像を表示させる。処理P4において、撮影状態であるか否かが判断され、撮影状態でない場合は処理P1へと戻り上記同様の処理が繰り返される。撮影状態である場合、処理P5において、モジュール3のアクセラレータドライバがデバイスCのメモリからデバイスBのアクセラレータへとデータを転送する。
デバイスBのアクセラレータへのデータ転送に応じて、処理P6において、デバイスAのプロセッサ内部にて演算が実行されてモジュール4のデータ後処理が行われ、その処理によってデバイスCのメモリへのランダムアクセスが発生する。
その後、処理P7において、モジュール5のメモリカードドライバによってデバイスCのメモリからデバイスEのメモリカードへのランダムアクセスがなされ動画又は静止画を格納する。
このようにプリプロファイリングによって、各処理P1からP7においてどのような挙動がソースコードで記述されているかが解析され、出力される。
図7は、構造解析結果に基づいて作成されるストーリーデータ43の例を示す図である。図7において、ストーリーデータ43は、モジュール番号、モジュール名、演算量、アクセス元、アクセス先、データ量、アクセスパターン等の項目で構成されるテーブルである。モジュール番号は、図5に示すモジュールツリー構造11aの作成時に生成されたモジュール番号に相当する。演算量によって負荷の程度を示している。モジュールがデータ転送を行う場合には、構成グラフリスト41が参照され、データが転送されるアクセス元とアクセス先とがデバイス名(又はデバイスA、B、C...等のデバイスを特定できるデバイス識別情報)で示される。
データ量はアクセス元からアクセス先へのデータ転送量を示す。仮想化レベル情報18に格納されているコンフィグ情報などに基づいて決定される。また、演算量、アクセスパターンは、プリプロファイラ(ステップS4)のプロファイリングによるサイクル測定に基づいて決定される。
アクセスパターンは、アクセス先に対して連続であるのか、断続であるのか、ランダムであるのかを分類して示している。「連続」に分類されるアクセスパターンは、連続したアドレス空間に対してアクセスを行うパターンであることを示す。「断続」に分類されるアクセスパターンは、アドレス空間において不連続であるが、一定の間隔を持ちながらアクセスを行うパターンであることを示す。「ランダム」に分類されるアクセスパターンは、「連続」及び「断続」のいずれのアクセスパターンにも分類されない不連続で任意のアドレスにアクセスを行うパターンであることを示す。
図8は、画像処理装置のESLモデル21の例を示す図である。図8に示すシステムLSI7を抽象化したESLモデル21は、前述したように抽象化ハードウェア21aと仮想ソフトウェア21bとで構成される。仮想ソフトウェア21bを構成するモジュール1から7の実体は、演算量とデータ量とアクセスパターンとによる負荷を与えることのみを目的としている。
従って、ストーリーデータ43に示されるように、モジュール1は連続アクセスで257MB/sのデータ量の負荷を与えるソースコードである。モジュール2は10MBのランダムアクセス毎に10MIPSの演算量の負荷を与えるソースコードである。モジュール3は10MBのランダムアクセス毎に1MIPSの演算量の負荷を与えるソースコードである。モジュール4は1MBのランダムアクセス毎に10MIPSの演算量の負荷を与えるソースコードである。モジュール5は1MBの断続アクセスの負荷を与える。モジュール6は28MB/sの連続アクセスの負荷を与えるソースコードである。モジュール7は1MBのランダムアクセスの負荷を与えるソースコードである。この例では、仮想ソフトウェア21bを構成する全モジュールを仮想化した場合を示しているが、1以上のモジュールを仮想化せず、そのモジュールの挙動を実現するソースコードそのものを含めてもよい。
次に、ユーザがESL20を操作しつつ検証する例について図9及び図10で説明する。例えば、1世代前の製品に対して画像サイズを2倍にすることによって性能を2倍とする製品を企画した場合について説明する。図9(A)には、1世代前のハードウェア構成に対して2倍の画像サイズの属性が与えられ抽象化された抽象化ハードウェア22aを示す。ESL20を用いてこのような抽象化ハードウェア22aを評価する際に、ユーザは、1世代前のソフトウェアを評価対象ソフトウェア3として仮想化処理部10へ入力して仮想ソフトウェア21bを作成し、画像サイズを2倍にしつつも処理速度を保つためにシステムクロックを2倍するコンフィグ設定を行う。その値が仮想化レベル18に格納される。ユーザは、抽象化ハードウェア22aと仮想ソフトウェア21bとで成るESLモデル21でシミュレーションを実行する。
ESL20によるシミュレーションの結果は、例えば図9(B)のように表示ユニット33に表示される。ユーザは、シミュレーションの結果を検証すると、目標性能を達成することが分かるものの、必要最小限のクロックでESLモデル21をシミュレーションさせ、図9(B)のシミュレーションのログ表示を参照してデバイスF及びEに係るシミュレーション部分27を解析すると、デバイスEのメモリカードへのアクセスがデバイスFのLCDパネルの動作をブロックする現象が起こることが予測できた。この場合、デバイスEのメモリカードにアクセスしている間、デバイスFのLCDパネルに表示されている画像が一瞬消えてしまう現象が発生してしまう。このことから、ユーザは、要求性能を満たすカメラ機能を実現するために必要な性能を見積もったつもりであったが、単純にシステムクロックを2倍にしただけでは不十分である等、の判断をすることができる。
目標性能を満足するためにクロックを更にN倍にすると消費電力が大きくなるため、単純にクロックのみを大きくしていくわけにはいかない等を考慮しつつ、ユーザは、ESLツール20上でハードウェア構成を組み替えて、データのアクセス経路を整理した抽象化ハードウェア22aを構築しなおす等の考察を行う。再構築の観点としては、例えば図10(A)に示す抽象化ハードウェア22a’ように、ユーザは、高速大量・連続アクセスするデバイスDのカメラ及びデバイスFのLCDパネルと、少量データや断続的にアクセスするデバイスEのメモリカードと、デバイスBのアクセラレータとへのデータアクセス制御が画像処理SoC6内部で分割されるようにバス等の組み合わせの変更及び配置変更によるアーキテクチャを構築する。また、デバイスBのアクセラレータはメモリ呼び出しをするものではなく、デバイスAのプロセッサからパイプライン式にデータを流し込めるようにデバイスhのFIFOを追加する変更を行い、これら内部構成変更に伴い周辺の接続形態も変更する。
このように再構築した抽象化ハードウェア22a’でシミュレーションを行う場合であっても、評価対象ソフトウェア3のソースコードそのものを変更することなく、既に作成してある仮想ソフトウェア21bをそのまま用いて再シミュレーションを行うことができる。つまり、上述した再構築の例ではハードウェアの構成上、デバイスhのFIFOをデバイスAのプロセッサとデバイスBのアクセラレータとの間に追加配置したが、デバイスAのプロセッサとデバイスBのアクセラレータとの間のソフトウェアの処理の流れ、及び、各モジュールの負荷に変更を及ぼすものではないためである。
仮想ソフトウェア21bでは負荷の程度でソフトウェアの挙動を表現するため、改善されたハードウェアのアーキテクチャで同じ仮想ソフトウェア21bで評価することができる。従って、アーキテクチャを探求するための評価対象ソフトウェア3の改善毎に実装して検証し直すといった工数を大幅に削減することができる。
上記再構築によるシミュレーション結果を示すログ(図10(B))を詳細に検証して、デバイスDのメモリのアクセス部にはアクセス形跡を示すログを確認する等によって、デバイスEのメモリカードへのアクセスが分散している状態を評価でき、クロックをおさえつつ安定したシステムLSI7を構築できることを、評価対象ソフトウェア3の実体(ソースコード又はロードモジュール)をポーティング実装することなくシステムLSI7の挙動を確認することができる。
その他の検証として、システムクロックを2倍にしてデバイスAのプロセッサの性能が2倍にならないことを予測した場合、デバイスCのメモリを増量することでデバイスAのプロセッサの処理速度が1.5倍であってもシステムLSI7全体の性能が2倍にできる可能性を容易に検証することができる。
また、既存のハードウェア及びソフトウェアを再構築してカメラをテレビ信号受信機に置き換えた別製品を開発するような場合、本来カメラから取り込んだ画像処理とテレビ信号を取り込んで行う画像処理とはソフトウェア上の処理において異なるロジックであるが、デバイスAのプロセッサへの負荷の程度が同様である場合、接続されるデバイスの特性に依存しない仮想ソフトウェア21bをそのまま用いて検証することが可能となる。つまり、仮想ソフトウェア21bを生成する元となった動画又は静止画を撮影する装置に搭載されるソフトウェアを改造する以前の段階において早期に検証でき改造すべき項目をソフトウェア開発者へフィードバックすることができる。同時に、抽象化ハードウェア22aのデバイスDのカメラをテレビ信号受信機に変更して検証するのみであるので、実ハードウェアの実装を待つことなくテレビ信号受信機に変更された抽象化ハードウェア22aをシミュレーションし、その結果をハードウェア開発者へフィードバックすることができる。この場合、デバイスを特定するための識別情報(例えば「デバイスD」)は変更せずデバイスの特性がテレビ信号受信機に変更すればよく、又は、ストーリーデータ43のアクセス元又はアクセス先の値を変更すればよく、また、仮想ソフトウェア21bにおけるモジュール間のI/Oトラフィックにも変更がないことによる。
仮想化ソフトウェア21bを用いた場合の開発サイクルについて図11で説明する。図11は、開発サイクルを示す図である。図11中、実線で示されるフローが本発明に係る仮想化ソフトウェア21bを用いた場合の開発サイクルである。図11において、開発製品としてのシステムLSI7に対する要求仕様を作成し(ステップS81)、システム構成を設計する(ステップS82)。設計されたシステム構成に基づいてハードウェア設計を行う(ステップS83)。
ハードウェア設計に基づいて実ハードウェアの開発及び実装を行う(ステップS83−2)。一方でハードウェア設計に基づく抽象化ハードウェア21aと仮想ソフトウェア21bとによるESLモデルをシミュレータ装置100に実装して、ESLツール20によってハードウェア検証を行い(ステップS84)、ハード要求仕様を満たすか否かを検証する(ステップS85)。
ユーザがハード要求仕様を満たさないと判断した場合、ステップS84に戻り抽象化ハードウェア21aを変更してESLモデルを更新し、ステップS85にて再度ハード要求仕様を満たすか否かを検証する処理を繰り返す。また、検証結果をステップS83−2における実ハードウェア(評価対象ハードウェア2)の開発に反映させる。ステップS83−2と、ステップS84及び85とは、平行して行われ実ハードウェアの開発及びシステムLSI7としての実装が行われる。
ハード要求仕様を満たすと判断した場合、仮想ソフトウェア21bを用いてソフトウェア検証を行い(ステップS86)、ソフト要求仕様を満たすか否かを判断する(ステップS87)。ユーザがソフト要求仕様を満たさないと判断した場合、ストーリーデータ43を変更してステップS86へ戻り再度ソフトウェア検証をして、ステップS87にて再度ソフト要求仕様を満たすか否かを検証する処理を繰り返す。一方で、検証結果を反映したソフト開発を行う。
ソフト要求仕様を満たすと判断した場合、実ハードウェア(抽象化ハードウェア21aの検証結果が反映された評価対象ハードウェア2)が実装されているシステムLSI7に実ソフトウェア(仮想ソフトウェア21bの検証結果が反映された評価対象ソフトウェア3)を移植し(ステップS88)、システムLSI7を実機上で検証する(ステップS89)。システムLSI7としての要求仕様を満たすか否かを判断し(ステップS90)、要求仕様を満たすと判断した場合、システムLSI7の開発を完了する(ステップS91)。一方、システムLSI7としての要求仕様を満たさないと判断した場合、ステップS82へ戻りシステムLSI7のシステム構成の設計を見直し、上記同様の処理を繰り返す。
図11において、従来の開発サイクルでは、ソフトウェア検証(ステップS86)を行うためにはハード要求仕様を満たした時点(ステップS85)で評価対象ソフトウェア3を移植し(点線で示すステップS85−2)する必要があった。ソフトウェア検証後にソフト要求仕様を満たさないと判断した場合には、評価対象ソフトウェア3を検証結果に基づいて改造して再度移植作業を行って(ステップS85−2)、ソフトウェア検証(ステップS87)及びソフト要求仕様を満たすか否かの判断(ステップS87)を繰り返す必要があった。
このように従来の開発サイクルでは、評価対象ソフトウェア3に問題があるとその問題を解決してからでないと、ソフトウェア検証を進めることができなかった。一方、本発明に係るシミュレータ装置100を用いた場合、ハードウェアを検証するESLツール20上で評価対象ソフトウェア3の検証を継続して行えることにより、少ない改造及び移植回数でより多くの検証を一度に行うことが可能となる。
次に、仮想化レベル毎におけるベンチマークで性能評価をした場合の傾向について図12及び図13で説明する。図12は、仮想化レベルの例を示す図である。図12では、例えば、評価対象ソフトウェア3がGUI(Graphical User Interface)3A、処理エンジン3B、デバイスドライバ3Cで構成される場合の仮想化レベルが例示されている。評価対象ソフトウェア3はOS(Operating System)4上で動作させ、API(Application Program Interface)を介してベンチマークアプリで性能評価される。
図12(A)は、評価対象ソフトウェア3のGUI3A、処理エンジン3B、デバイスドライバ3Cを仮想ソフトウェアモジュール7a、編集後仮想ソフトウェアモジュール7b、仮想ソフトウェアモジュール7cで置き換えて全て仮想化したレベルを示している。ここで、編集後仮想ソフトウェアモジュール7bは、ソフト要求仕様を満たすためにストーリーデータ43を編集後に置き換えられた仮想ソフトウェアモジュールであることを示す。図12(B)は、デバイスドライバ3Cを仮想ソフトウェアモジュールに置き換えなかった場合の凡そ50%の仮想化レベルを示している。また、図12(C)は、全てを評価対象ソフトウェア3の実体(ソースコード)のままとし、仮想ソフトウェアモジュールで置き換えなかった実ソフトウェア(0%の仮想化レベル)を示している。
図13は、仮想化レベル毎のベンチマークによる評価の傾向を示すグラフ図である。図13において、グラフの縦軸はベンチマークでの評価による性能の高さを示す点数を示し、グラフの横軸はベンチマークのテスト番号を示し、便宜的に要求される性能の低いものから高いものへと並べて示している。図13中、折れ線9aが図12(A)の全仮想化のレベルに相当し、折れ線9bが図12(B)の50%仮想化のレベルに相当し、折れ線9cが図12(C)の実ソフトウェアのレベルに相当し、実測値を示す。
図13のグラフから分かるように、全仮想化の折れ線9aはテスト全般において実ソフトウェアの折れ線9c及び50%仮想化の折れ線9bより低めの評価点となるが、概ね実ソフトウェアの折れ線9cと同様の傾向を示す。従って、ソフト開発の初期段階で評価対象ソフトウェア3の完成後の特性傾向を把握するには十分である。
このように、ハードウェア設計で部品の入れ替えや構成変更に応じて、デバイスドライバが変更した場合、デバイスドライバの負荷の程度に係るストーリーデータ43を変更するのみで、デバイスドライバのソースコードの変更やその変更による評価対象ソフトウェア3全体の移植作業を行わずに、ソフト開発の初期段階でソフト要求仕様を検証することができる。また、異なる処理アルゴリズムを持った未実装の処理エンジンやGUIに入れ替えるソフト設計となった場合、これらに相当する既存のモジュールの負荷の程度に応じた仮想ソフトウェアモジュールで、ソフト開発の初期段階でソフト要求仕様を検証することができる。更に、ソフトウェアが設計の段階であり実装できない状態であっても、ハードウェアの全体のスループット、挙動などの評価を、既存のソフトウェアを評価対象ソフトウェア3として利用して置き換えた仮想ソフトウェア21bを用いて行うことができる。
以上の説明に関し、更に以下の項を開示する。
(付記1)
ソフトウェアを構成する複数のモジュール間のデータ入出力を解析してモジュールツリー構造を作成するモジュールツリー構造作成手段と、
前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手段と、
前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手段と、
前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手段と、
を有するようにした仮想ソフトウェア生成装置。
(付記2)
前記負荷テーブル作成手段は、前記負荷テーブルを作成する際に、演算量、データ量、データ入出力先の項目と、モジュール毎にデータ入出力及びデータ量を解析して生成したトラフィックリストを用いて、連続、断続、ランダムに分類した該データ入出力に係るアクセスパターンの項目とによって前記負荷の程度を示すようにした付記1記載の仮想ソフトウェア生成装置。
(付記3)
前記負荷テーブルを用いて、前記負荷の程度をパラメータとするフラグメントパーツに前記モジュールの該負荷の程度をパラメータ値として与えて前記仮想ソフトウェアモジュールを生成する仮想ソフトウェアモジュール生成手段を更に有するようにした付記1又は2記載の仮想ソフトウェア生成装置。
(付記4)
前記ソフトウェアを構成する複数のモジュールに対してユーザによって前記仮想ソフトウェアモジュールに置き換える又は置き換えないことを選択させるモジュール選択手段を更に備え、
前記置換手段は、置き換えないモジュールに対しては、該モジュールのソースコードを用いるようにした付記1又は3のいずれか一項記載の仮想ソフトウェア生成装置。
(付記5)
前記仮想ソフトウェア生成手段は、ハードウェアのシミュレーション環境上で動作可能な前記仮想ソフトウェアを生成して出力するようにした付記1乃至付記4のいずれか一項記載の仮想ソフトウェア生成装置。
(付記6)
前記負荷テーブル作成手段によって作成された負荷テーブルは、ユーザによって変更可能であり、
前記負荷テーブルの変更に応じて、前記置換手段と前記仮想ソフトウェア生成手段とが再実行されるようにした付記1乃至付記5のいずれか一項記載の仮想ソフトウェア生成装置。
(付記7)
ハードウェアをシミュレーションするシミュレータ装置であって、
前記ハードウェアを抽象化して表現した抽象化ハードウェアを作成する抽象化手段と、
ソフトウェアを実行した際の負荷の程度で仮想化した仮想ソフトウェアを生成し出力する仮想ソフトウェア生成手段と、
前記仮想ソフトウェア生成手段から出力された前記仮想ソフトウェアと前記抽象化ハードウェアとでなるシミュレーションモデルをシミュレートするシミュレート手段と、
を有するようにしたシミュレータ装置。
(付記8)
前記仮想ソフトウェア生成手段は、更に、
前記ソフトウェアを構成する複数のモジュール間のデータ入出力とを解析してモジュールツリー構造を作成するモジュールツリー構造作成手段と、
前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手段と、
前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手段と、
前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手段と、
を有するようにした付記7記載のシミュレータ装置。
(付記9)
前記ソフトウェアを構成する複数のモジュール間のデータ入出力とを解析してモジュールツリー構造を作成するモジュールツリー構造作成手順と、
前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手順と、
前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手順と、
前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手順と、
をコンピュータが実行する仮想ソフトウェア生成方法。
(付記10)
ソフトウェアを構成する複数のモジュール間のデータ入出力とを解析してモジュールツリー構造を作成するモジュールツリー構造作成手段と、
前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手段と、
前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手段と、
前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手段としてコンピュータに機能させるためのプログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
本発明の一実施例に係るシミュレータ装置の機能構成例を示す図である。 シミュレータ装置のハードウェア構成例を示す図である。 仮想化処理部による処理を説明するためのフローチャート図である。 ESLツールを用いて作成した画像処理装置の抽象化ハードウェアの例を示す図である。 画像処理装置に係る評価対象ソフトウェアのモジュールツリー構造の例を示す図である。 評価対象ソフトウェアの処理フローの例を示す図である。 構造解析結果に基づいて作成されるストーリーデータの例を示す図である。 画像処理装置のESLモデルの例を示す図である。 ユーザがESLを操作しつつ検証する例を示す図である。 ユーザがESLを操作しつつ検証する例を示す図である。 開発サイクルを示す図である。 仮想化レベルの例を示す図である。 仮想化レベル毎のベンチマークによる評価の傾向を示すグラフ図である。
符号の説明
2 評価対象ハードウェア
3 評価対象ソフトウェア
6 画像処理SoC
7 システムLSI
10 仮想化処理部
11 構造解析部
11a モジュールツリー構造
11b ストーリーパーサー
12 シナリオジェネレータ
12a フラグメントパーツ
12b 仮想ソフトウェアモジュール
13 置換部
14 モジュール選択部
15 仮想ソフトウェア生成部
15a モジュールツリー構造
18 仮想化レベル
20 ESLツール
21a 抽象化ハードウェア
21b 仮想ソフトウェア
31 CPU
32 メモリユニット
33 表示ユニット
34 出力ユニット
35 入力ユニット
36 通信ユニット
37 記憶装置
38 ドライバ
39 記憶媒体
41 構成グラフリスト
42 I/Oトラフィックリスト
43 ストーリーデータ
100 シミュレータ装置

Claims (5)

  1. ソフトウェアを構成する複数のモジュール間のデータ入出力を解析してモジュールツリー構造を作成するモジュールツリー構造作成手段と、
    前記モジュール毎に負荷の程度を示す負荷テーブルを作成する負荷テーブル作成手段と、
    前記モジュールツリー構造の各モジュールを前記負荷テーブルによって示される前記負荷の程度を発生させる仮想ソフトウェアモジュールで置き換える置換手段と、
    前記モジュールが前記仮想ソフトウェアモジュールに置き換えられた前記モジュールツリー構造に基づいて仮想ソフトウェアを生成する仮想ソフトウェア生成手段と、
    を有するようにした仮想ソフトウェア生成装置。
  2. 前記負荷テーブル作成手段は、前記負荷テーブルを作成する際に、演算量、データ量、データ入出力先の項目と、モジュール毎にデータ入出力及びデータ量を解析して生成したトラフィックリストを用いて、連続、断続、ランダムに分類した該データ入出力に係るアクセスパターンの項目とによって前記負荷の程度を示すようにした請求項1記載の仮想ソフトウェア生成装置。
  3. 前記負荷テーブルを用いて、前記負荷の程度をパラメータとするフラグメントパーツに前記モジュールの該負荷の程度をパラメータ値として与えて前記仮想ソフトウェアモジュールを生成する仮想ソフトウェアモジュール生成手段を更に有するようにした請求項1又は2記載の仮想ソフトウェア生成装置。
  4. 前記ソフトウェアを構成する複数のモジュールに対してユーザによって前記仮想ソフトウェアモジュールに置き換える又は置き換えないことを選択させるモジュール選択手段を更に備え、
    前記置換手段は、置き換えないモジュールに対しては、該モジュールのソースコードを用いるようにした請求項1乃至3のいずれか一項記載の仮想ソフトウェア生成装置。
  5. 前記仮想ソフトウェア生成手段は、ハードウェアのシミュレーション環境上で動作可能な前記仮想ソフトウェアを生成して出力するようにした請求項1乃至4のいずれか一項記載の仮想ソフトウェア生成装置。
JP2008060428A 2008-03-11 2008-03-11 仮想ソフトウェア生成装置 Expired - Fee Related JP5056493B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008060428A JP5056493B2 (ja) 2008-03-11 2008-03-11 仮想ソフトウェア生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008060428A JP5056493B2 (ja) 2008-03-11 2008-03-11 仮想ソフトウェア生成装置

Publications (2)

Publication Number Publication Date
JP2009217531A JP2009217531A (ja) 2009-09-24
JP5056493B2 true JP5056493B2 (ja) 2012-10-24

Family

ID=41189310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008060428A Expired - Fee Related JP5056493B2 (ja) 2008-03-11 2008-03-11 仮想ソフトウェア生成装置

Country Status (1)

Country Link
JP (1) JP5056493B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5412305B2 (ja) * 2010-01-27 2014-02-12 株式会社日立アドバンストデジタル モデルベースの性能予測システム
JP2014132419A (ja) * 2013-01-07 2014-07-17 Nec Corp 仮想化システムの性能予測装置、性能予測方法およびコンピュータ・プログラム
CN116021533A (zh) * 2023-02-23 2023-04-28 上海飒智智能科技有限公司 一种移动机器人模块化架构、方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064513A (ja) * 1992-06-19 1994-01-14 Mitsubishi Electric Corp 設計システムの負荷予測装置
JPH09198282A (ja) * 1996-01-19 1997-07-31 Matsushita Electric Works Ltd コンピュータ性能評価システム及び評価方法
JP3189793B2 (ja) * 1998-07-17 2001-07-16 日本電気株式会社 システムシミュレータおよびシステムシミュレーション方法
WO2001090887A1 (fr) * 2000-05-25 2001-11-29 Fujitsu Limited Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP2004287858A (ja) * 2003-03-24 2004-10-14 Matsushita Electric Ind Co Ltd プログラムテスト装置

Also Published As

Publication number Publication date
JP2009217531A (ja) 2009-09-24

Similar Documents

Publication Publication Date Title
US8666723B2 (en) System and methods for generating and managing a virtual device
Erbas et al. A framework for system-level modeling and simulation of embedded systems architectures
US11914933B2 (en) Generation of dynamic design flows for integrated circuits
US9367658B2 (en) Method and apparatus for designing and generating a stream processor
US20150355920A1 (en) System and methods for generating and managing a virtual device
Barbierato et al. Exploiting CloudSim in a multiformalism modeling approach for cloud based systems
US20110307688A1 (en) Synthesis system for pipelined digital circuits
KR100808257B1 (ko) 임베디드 시스템 프로토타입 개발 지원 장치 및 방법
Bruce et al. Enabling reproducible and agile full-system simulation
Raghavan et al. Model based estimation and verification of mobile device performance
Pemberton et al. Firemarshal: Making hw/sw co-design reproducible and reliable
Sokolov et al. Workcraft: Ten years later
US9690681B1 (en) Method and system for automatically generating executable system-level tests
Kreku et al. Combining UML2 application and SystemC platform modelling for performance evaluation of real-time embedded systems
Banerjee et al. A highly configurable hardware/Software stack for DNN inference acceleration
JP5056493B2 (ja) 仮想ソフトウェア生成装置
Trčka et al. Integrated model-driven design-space exploration for embedded systems
Reardon et al. RCML: an environment for estimation modeling of reconfigurable computing systems
CN116457789A (zh) 针对异构集成电路的基于模型的设计和分割
Werner et al. Cloud-based design and virtual prototyping environment for embedded systems
Ma et al. Performance interfaces for hardware accelerators
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
Casale-Brunet et al. Programming models and methods for heterogeneous parallel embedded systems
Gibson Deep learning on a low power gpu
Sigdel et al. rSesame-A generic system-level runtime simulation framework for reconfigurable architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120626

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees