(57)【要約】【課題】  バスインターフェースの設計において、精度の高いシミュレーションを実行可能とすること。【解決手段】  バスインターフェース設計支援装置１においては、設計対象となるバスインターフェースに接続されるデバイスが、データ転送特性の観点から抽象化されたモデルとしてデバイスライブラリに格納されており、より具体的には、設計対象となるバスインターフェースに接続されるデバイスが、マスタデバイスおよびスレーブデバイスのモデルに分類されてデバイスライブラリに格納されている。そのため、バスインターフェースの適用対象となるシステムに接続するモデルを選択することで、実際のシステムに即した具体的な構成を想定して正確なシミュレーションを行うことが可能となる。したがって、バスインターフェースの設計において、精度の高いシミュレーションを実行することが可能となる。【選択図】  図１
2006215620.tif 000002
【特許請求の範囲】
【請求項１】
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援装置であって、
バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段と、
前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定手段と、
設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定手段と、
前記デバイスモデル指定手段によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定手段によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出手段と、
複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段と、
前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出手段によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成手段と、
を含むことを特徴とするバスインターフェース設計支援装置。
【請求項２】
前記デバイスモデル格納手段に格納されているマスタデバイスモデルは、定型的なデータ転送を行うマスタデバイスがモデル化された静的マスタデバイスと、不規則なデータ転送を行うマスタデバイスがモデル化された動的マスタデバイスとを含んで構成されることを特徴とする請求項１記載のバスインターフェース設計支援装置。
【請求項３】
前記静的マスタデバイスは、データ転送を定期的に行う特性あるいは転送データ量が固定的である特性の少なくともいずれかを有するマスタデバイスがモデル化されたものであることを特徴とする請求項２記載のバスインターフェース設計支援装置。
【請求項４】
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援システムであって、
バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段と、
前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定手段と、
設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定手段と、
前記デバイスモデル指定手段によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定手段によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出手段と、
複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段と、
前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出手段によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成手段と、
を含むことを特徴とするバスインターフェース設計支援システム。
【請求項５】
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援プログラムであって、
バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段と、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段とを有するコンピュータに、
前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定機能と、
設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定機能と、
前記デバイスモデル指定機能によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定機能によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出機能と、
前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成機能と、
を実現させることを特徴とするバスインターフェース設計支援プログラム。
【請求項６】
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援プログラムであって、
複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段を有するコンピュータに、
バスインターフェースによって接続する前記デバイスのデータ転送特性に関し、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類されているデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルとして指定されたモデルのデータ転送特性と、設計対象のシステムにおける設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出機能と、
前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成機能と、
を実現させることを特徴とするバスインターフェース設計支援プログラム。
【請求項７】
異なるデバイス間においてデータ転送を行うバスインターフェースの設計をコンピュータによって支援するためのバスインターフェース設計支援方法であって、
前記コンピュータが、
複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段を有し、
バスインターフェースによって接続する前記デバイスのデータ転送特性に関し、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類されているデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルとして指定されたモデルのデータ転送特性と、設計対象のシステムにおける設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出ステップと、
前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成ステップと、
を実行することを特徴とするバスインターフェース設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるデバイス間においてデータ転送を行うためのバスインターフェースの設計を支援するバスインターフェース設計支援装置、バスインターフェース設計支援システム、バスインターフェース設計支援プログラムおよびバスインターフェース設計支援方法に関する。
【背景技術】
【０００２】
従来、システムＬＳＩ（Large Scale Integration）の設計等を行う場合、デバイス間においてデータの転送を行うためのバスインターフェースについては、設計者がデバイス間における転送要求速度を予想し、適切と考えられるバスプロトコルを選択する方法が取られていた。
一方、近年、システムＬＳＩの設計を自動化する技術が提案されつつあり、バスインターフェースについても、設計を自動化することが試みられている。
【０００３】
例えば、特許文献１には、動作記述から周辺回路とデータ転送を行うために、プロトコルが決められたバスに接続するためのインターフェース回路を自動生成する技術が開示されている。
特許文献１に記載された技術では、アプリケーション毎に種々のＣＰＵを採用した場合の動作を記述した動作モデルとなるライブラリを用意しておき、各ライブラリの性能テーブルにおいて、各ライブラリの性能指数が表されている。また、動作のうち、ソフトウェアによる部分とハードウェアによる部分とがライブラリに登録されている。そして、各アプリケーションを各ライブラリで順次置換しながら動作シミュレーションを行うことで、半導体集積回路の性能が評価でき、最適なインターフェースを合成するというものである。
【特許文献１】特開２００１−４４２８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された技術においては、ＣＰＵが１つのシステムである等、シミュレーション対象となるシステムが限定されている。即ち、実際に製造されるシステムにおいては、ＣＰＵの他に、ＤＳＰ（Digital Signal Processor）やデジタルカメラ等、ＣＰＵに類するデータ転送を行うデバイスが複数備えられることが多く、特許文献１に記載された技術においては、このようなシステムのデータ転送をシミュレーションすることが困難である。また、そのため、シミュレーションを行う際に、実際のシステムで用いられる具体的なアプリケーションの動作が想定されていなかった。
【０００５】
したがって、バスインターフェースを設計する際のシミュレーション精度が十分に確保できない可能性があった。
本発明の課題は、バスインターフェースの設計において、精度の高いシミュレーションを実行可能とすることである。
【課題を解決するための手段】
【０００６】
以上の課題を解決するため、本発明は、
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援装置であって、バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段（例えば、図１の記憶部１３）と、前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定手段（例えば、図１の入力部１１）と、設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定手段（例えば、図１の入力部１１）と、前記デバイスモデル指定手段によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定手段によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出手段（例えば、図１の制御部１２）と、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段（例えば、図１の記憶部１３）と、前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出手段によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成手段（例えば、図１の制御部１２）とを含むことを特徴としている。
【０００７】
このような構成により、バスインターフェースの設計において、バスインターフェースの適用対象となるシステムに接続するデバイスモデルを選択することで、実際のシステムに即した具体的な構成を想定して正確なシミュレーションを行うことが可能となる。また、システムに接続する全てのデバイスを個別に定義する必要がなく、データ転送のシミュレーションを行う際にも、マスタデバイス間における調停およびマスタデバイスとスレーブデバイスとの間におけるデータ転送のシミュレーションを行えば良いため、マスタデバイスを複数含む複雑なシステムであっても、容易にシミュレーションを行うことが可能となる。
【０００８】
したがって、バスインターフェースの設計において、精度の高いシミュレーションを実行可能とすることが可能となる。
また、前記デバイスモデル格納手段に格納されているマスタデバイスモデルは、定型的なデータ転送を行うマスタデバイスがモデル化された静的マスタデバイス（例えば、定期的に一定データ量のフレームデータを出力するカメラモジュール等のモデル）と、不規則なデータ転送を行うマスタデバイスがモデル化された動的マスタデバイス（例えば、条件により不規則なデータ転送を行うＣＰＵ等のモデル）とを含んで構成されることを特徴としている。
【０００９】
このような構成により、データ転送のシミュレーションにおいて主に解析対象となるマスタデバイスのうち、静的マスタデバイスについては、モデル化されたデータ転送特性を用いることにより、容易にシミュレーションを行うことが可能となる。
また、前記静的マスタデバイスは、データ転送を定期的に行う特性あるいは転送データ量が固定的である特性の少なくともいずれかを有するマスタデバイスがモデル化されたものであることを特徴としている。
【００１０】
これにより、静的マスタデバイスとされたデバイスのモデルについて、データ転送周期あるいはデータ転送量を容易に把握でき、データ転送のシミュレーションを容易に行うことが可能となる。
また、本発明は、
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援システムであって、バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段と、前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定手段と、設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定手段と、前記デバイスモデル指定手段によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定手段によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出手段と、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段と、前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出手段によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成手段とを含むことを特徴としている。
【００１１】
また、本発明は、
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援プログラムであって、バスインターフェースによって接続する前記デバイスのデータ転送特性を、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類して格納したデバイスモデル格納手段と、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段とを有するコンピュータに、前記デバイスモデル格納手段に格納されたデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルの指定を受け付けるデバイスモデル指定機能と、設計対象のシステムにおける設計条件の設定を受け付ける設計条件設定機能と、前記デバイスモデル指定機能によって指定を受け付けた前記デバイスモデルのデータ転送特性と、前記設計条件設定機能によって設定された設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出機能と、前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成機能とを実現させることを特徴としている。
【００１２】
また、本発明は、
異なるデバイス間においてデータ転送を行うバスインターフェースの設計を支援するバスインターフェース設計支援プログラムであって、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段を有するコンピュータに、バスインターフェースによって接続する前記デバイスのデータ転送特性に関し、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類されているデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルとして指定されたモデルのデータ転送特性と、設計対象のシステムにおける設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出機能と、前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成機能とを実現させることを特徴としている。
【００１３】
また、本発明は、
異なるデバイス間においてデータ転送を行うバスインターフェースの設計をコンピュータによって支援するためのバスインターフェース設計支援方法であって、前記コンピュータが、複数種類のバスについてバスプロトコルを記憶しているバスプロトコル記憶手段を有し、バスインターフェースによって接続する前記デバイスのデータ転送特性に関し、バスマスタとして機能するデバイスをモデル化したマスタデバイスモデルと、スレーブとして機能するデバイスをモデル化したスレーブデバイスモデルとに分類されているデバイスモデルのうち、設計対象のシステムに備えられる前記デバイスに対応したデバイスモデルとして指定されたモデルのデータ転送特性と、設計対象のシステムにおける設計条件とに基づいて、設計対象となるバスインターフェースに要求されるデータ転送速度を算出するデータ転送速度算出ステップと、前記バスプロトコル記憶手段に記憶されたバスプロトコルを参照し、前記転送速度算出機能によって算出されたデータ転送速度および前記設計条件を充足するバスプロトコルを選択してバスインターフェースを生成するバスインターフェース生成ステップとを実行することを特徴としている。
【００１４】
このように、本発明によれば、バスインターフェースの設計において、精度の高いシミュレーションを実行可能とすることが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図を参照して本発明に係るバスインターフェース設計支援装置の実施の形態を説明する。
まず、構成を説明する。
図１は、本発明に係るバスインターフェース設計支援装置１の機能構成を示すブロック図である。
【００１６】
図１において、バスインターフェース設計支援装置１は、入力部１１と、制御部１２と、記憶部１３と、ＲＡＭ（Random Access Memory）１４と、ＶＲＡＭ（Video Random Access Memory）１５と、表示部１６とを含んで構成される。
入力部１１は、カーソルキーや数字入力キー等を備えたキーボード及びマウス等のポインティングデバイスを含み、キーボードにおいて押下されたキーの押下信号やマウスの位置信号を制御部１２に出力する。例えば、後述するバスインターフェース設計支援処理において、設計対象となるバスインターフェースの設計条件（デバイス間の処理優先順位、回路規模の制約、バストポロジの制約、バス幅、バスクロック周波数等）が、ユーザによって入力部１１から入力される。
【００１７】
制御部１２は、バスインターフェース設計支援装置１全体を制御するもので、ＣＰＵ（Central Processing Unit）等のプロセッサによって構成される。この制御部１２は、入力部１１から入力される各種の指示信号に従って、記憶部１３に記憶された各種処理に関するプログラムを読み出して実行する。例えば、制御部１２は、記憶部１３に記憶されたバスインターフェース設計支援処理プログラムを読み出し、バスインターフェース設計支援処理（後述）を実行する。
【００１８】
そして、制御部１２は、各種プログラム等を実行した処理結果を記憶部１３やＲＡＭ１４の所定の領域に格納したり、表示部１６に表示させたりする。
記憶部１３は、ハードディスク等の不揮発性の記憶装置で構成される。この記憶部１３は、バスインターフェース設計支援処理において参照されるバスプロトコルライブラリやデバイスライブラリ、設計対象であるバスインターフェースを適用するプロセッサにおいて実行されるサンプルプログラムのソースファイル、バスインターフェース設計支援装置１の制御のための各種処理に関するプログラムを記憶する。
【００１９】
ここで、バスプロトコル、バスプロトコルライブラリおよびデバイスライブラリについて説明する。
バスプロトコルは、各種バスの規格が定義された情報であり、具体的には、信号の定義（例えば、クロック信号、セレクト信号、リード／ライト指示信号、リードイネーブル信号あるいはライトイネーブル信号等）、各信号の入出力タイミング、バス幅（ビット幅）およびその信号内容（アドレス、データ、制御信号等）、転送速度インデックス（データ転送速度を示す指標）、インターフェース部の回路規模インデックス（インターフェース回路の回路規模を示す指標）が規定されている。なお、スプリットトランザクションを採用する場合には、チャネル設定の仕組みとして、トランザクションに付与するＩＤ情報がさらに定義される。
【００２０】
図２は、基本的な構成のバス（以下、「簡易バス」という。）に関するバスプロトコルの一例を示す模式図であり、図３は、ＡＨＢ（AMBA（Advanced Microcontroller Bus Architecture） High Performance Bus）に関するバスプロトコルの一例を示す模式図である。
図２において、簡易バスの信号定義は、図２（ａ）に示すように、ＣＬＫ（クロック）、ＳＥＬ（スレーブ選択信号：ハイレベルなら該当スレーブが選択され、読み書きが行われる）、ＲＷ（リード／ライト識別信号：ハイレベルなら書き込み、ローレベルなら読み出し動作）、ＡＤＤＲ（アドレス信号）、ＷＤＡＴＡ（書き込みデータ）、ＲＤＡＴＡ（読み出しデータ）となっており、これらの信号について、図２（ｂ）に示すタイミングチャートに従う入出力タイミングが規定されている。なお、転送速度と回路規模とはトレードオフの関係にあり、ここでは具体的な数値を示していないが、例えば、簡易バスの転送速度を過度に高速化すると、その効果に比して回路規模の増大が著しいものとなる。そのため、転送速度インデックスとしては、低速度から中速度を示す数値（例えば、低速度を示す“１”から高速度を示す“５”までの５段階のランク付けにおいて、“１”〜“３”）をバスプロトコルに規定すること等が可能である。また、回路規模インデックスとしては、小規模から中規模を示す数値（例えば、小規模を示す“１”から大規模を示す“５”までの５段階のランク付けにおいて、“１”〜“３”）をバスプロトコルに規定すること等が可能である。
【００２１】
また、図３において、ＡＨＢの信号定義は、図３（ａ）に示すように、ＨＣＬＫ（クロック）、ＨＡＤＤＲ（アドレス信号）、ＨＲＤＡＴＡ（読み出しデータ）、ＨＷＤＡＴＡ（書き込みデータ）、Ｃｏｎｔｒｏｌ（制御信号）、ＨＲＥＳＰ（応答信号）となっており、これらの信号について、図３（ｂ）に示すタイミングチャートに従う入出力タイミングが規定されている。なお、ＡＨＢの場合、簡易バスに比して制御がやや複雑になるため、転送速度が過度に低速度である場合、高速・高効率といったＡＨＢを採用する利点が相殺されることとなる。そのため、転送速度インデックスとしては、中速度から高速度を示す数値（例えば、低速度を示す“１”から高速度を示す“５”までの５段階のランク付けにおいて、“３”〜“５”）をバスプロトコルに規定すること等が可能である。また、回路規模インデックスとしては、中規模から大規模を示す数値（例えば、小規模を示す“１”から大規模を示す“５”までの５段階のランク付けにおいて、“３”〜“５”）をバスプロトコルに規定すること等が可能である。
【００２２】
バスプロトコルライブラリとは、複数種類のバスプロトコルが格納されているデータベースであり、バスインターフェース設計支援処理において、バスプロトコルライブラリに格納されたバスプロトコルのうち、与えられた設計条件に適合するいずれかのバスプロトコルが選択される。
なお、バスプロトコルにおける転送速度および回路規模のランクは、バスプロトコルライブラリに格納された他のバスプロトコルに基づくバスとの比較において、相対的に位置付けられるものである。そのため、簡易バスおよびＡＨＢについて述べた上述のランクは、バスプロトコルライブラリに格納された他のバスプロトコルとの関係によって相対的に変化する。
【００２３】
デバイスライブラリとは、バスに接続可能な各種デバイスを、データ転送特性の観点から抽象化したモデルが格納されているデータベースであり、バスインターフェース設計支援装置において、ユーザにより、設計対象のバスインターフェースに接続されるデバイスに合致するモデルが選択される。
また、デバイスライブラリに格納されるモデルは、バスマスタとして機能するデバイスを抽象化したモデルであるマスタデバイスと、スレーブとして機能するデバイスを抽象化したモデルであるスレーブデバイスとに区別されている。さらに、マスタデバイスは、データ転送を比較的定期的に行うものあるいは転送データ量が予め固定的に定められているもの等、定型的な動作を行い、モデル化が容易な静的マスタデバイス（例えば、カメラ、マイク等のモデル）と、条件によりデータ転送を不規則に行う動的マスタデバイス（例えば、ＣＰＵ、ＤＳＰ、ＤＭＡＣ等のモデル）とに区別されている。そして、動的マスタデバイス、静的マスタデバイスおよびスレーブデバイスそれぞれにおいて、各種デバイスを想定した特性を設定したモデルが用意され、デバイスライブラリに格納されている。
【００２４】
各モデルに設定可能な特性としては、例えば、平均データ転送速度、単位時間当たりの要求データ転送速度および回数、１アクセス当たりのバースト長（命令数、データ量）、データ転送がランダムか規則的か等、バスによるデータ転送に関する種々のものが含まれる。
このように、デバイスライブラリには、バスインターフェースに接続可能な各デバイスのモデルが格納されているため、バスインターフェースの設計において、バスインターフェースの適用対象となるシステムに接続するモデルを選択することで、実際のシステムに即した具体的な構成を想定してシミュレーションを行うことが可能となる。
【００２５】
また、デバイスライブラリに格納されたモデルは、データ転送特性に応じて、抽象化されたマスタデバイスとスレーブデバイスとに区別されているため、システムに接続する全てのデバイスを個別に定義する必要がない。そして、これらデバイス間におけるデータ転送の形態としては、マスタデバイス間においては直接データ転送を行わず、メモリ等のスレーブデバイスを介することとなるため、主としてマスタデバイスとスレーブデバイスとの間でデータ転送が行われるものである。そのため、バスインターフェースの設計において、データ転送をシミュレーションする場合、マスタデバイス間においてはアクセスの調停を行い、マスタデバイスとスレーブデバイスとの間において、実際のデータ転送を行うことを想定して動作が検証される。
【００２６】
さらに、デバイスライブラリにおいては、マスタデバイスが、動的マスタデバイスと静的マスタデバイスとに分類されており、静的マスタデバイスはデータ転送の特性が容易にモデル化可能なものである。例えば、カメラモジュールが３０ｆｐｓ（frame per second）で一定データ量のフレームデータを定期的に出力する場合等は、主に１転送当たりのデータ量および転送周期を定義すれば良いことから、データ転送のモデル化が容易に行える。そして、マスタデバイスが複数選択される場合においても、静的マスタデバイスについてはモデル化されたデータ転送特性を用いることにより、容易にシミュレーションを行うことが可能となる。
【００２７】
なお、静的マスタデバイスに分類されたデバイスについては、新たな特性の静的マスタデバイスをデバイスライブラリに登録する際に、パラメータ入力の手間が軽減されるという利点も有する。例えば、上述のように、定期的にデータを出力するカメラモジュール等のデバイスであれば、データ転送の周期および１転送当たりのデータ量を入力することで、詳細な定義を行うことなく、主要なデータ転送特性を設定することが可能である。
【００２８】
図１に戻り、ＲＡＭ１４は、制御部１２における処理に伴う各種データを記憶するもので、制御部１２により実行される各種処理において生成されたデータを一時的に格納する。
ＶＲＡＭ１５は、表示部１６で表示される表示データを格納するビデオメモリである。
表示部１６は、例えばドットマトリクスタイプのカラー液晶表示セル等から構成され、ＶＲＡＭ１５に格納された各種データを表示する。
【００２９】
次に、動作を説明する。
図４は、制御部１２が実行するバスインターフェース設計支援処理を示すフローチャートである。
バスインターフェース設計支援処理は、入力部１１によって処理の実行が指示入力されることに対応して開始される。
【００３０】
図４において、バスインターフェース設計支援処理が開始されると、制御部１２は、設計対象となるバスインターフェースを適用するシステムに要求される機能の分析およびそのシステムのモデル全体を構築する機能分析・システム構築処理（図５参照）を実行する（ステップＳ１）。
【００３１】
次に、制御部１２は、ステップＳ１において構築したシステムモデルに対し、設定された設計条件を適用して、動作をシミュレーションするためのサンプルプログラムを仮想的に実行し、その実行結果からデータ転送量の平均値およびピーク値を算出するデータ転送量算出処理（図６参照）を実行する（ステップＳ２）。このとき、システムモデルにおける各処理に時間的な制約を与え、規定のサイクル内で各処理が終了するか否かを確認し、規定時間内で各処理が終了する条件の下でのデータ転送量平均値およびピーク値を算出する。具体的なデータ転送量等の算出方法としては、まず、サンプルプログラムを実行した場合に、バスに接続されたメモリにおける特定のメモリ領域（各デバイスのデバイスドライバに対応するメモリ領域）のアドレスに対してアクセスされた数をカウントする。即ち、サンプルプログラムに含まれるロード命令およびストア命令の数をカウントする。そして、カウントされたアクセス数を基に、データ転送量を算出する。
【００３２】
次に、制御部１２は、ステップＳ２において設定された設計条件およびステップＳ２において算出されたデータ転送量の平均値およびピーク値を充足するバスプロトコルを選定し、選定されたバスプロトコルに従うバスインターフェースの設計データを生成するバスインターフェース生成処理（図７参照）を実行する（ステップＳ３）。このとき、複数のバスプロトコルが選定された場合、制御部１２は、設定されている設計条件に従って、あるいは、選定された複数のバスプロトコルのうち、設計者（ユーザ）に入力部１１を介していずれかを選択させる旨の表示を行うことにより、いずれか１つのバスプロトコルを選定する。
【００３３】
ステップＳ３の後、制御部１２は、バスインターフェース設計支援処理を終了する。
次に、バスインターフェース設計支援処理のサブフローである機能分析・システム構築処理について説明する。
図５は、機能分析・システム構築処理を示すフローチャートである。
機能分析・システム構築処理は、バスインターフェース設計支援処理において呼び出されることによって開始される。
【００３４】
図５において、機能分析・システム構築処理が開始されると、制御部１２は、設計対象となるバスインターフェースを適用するシステム全体の構成および機能の設定を受け付ける（ステップＳ１０１）。このとき、制御部１２は、入力部１１から、設計対象となるバスインターフェースに設定される設計条件の入力を受け付ける。ここで入力される設計条件としては、例えば、複数のマスタデバイス間でバスアクセスが競合した場合に、いずれのデバイスのデータ転送を優先するかを示す「処理優先順位」、バスプロトコルにおける回路規模インデックスで表された「回路規模の制約」、採用可能なバストポロジを制限する「バストポロジの制約」、採用するバス幅を指定する「バス幅」、バスインターフェースのバスクロック周波数を指定する「バスクロック周波数」といった内容とすることが可能であり、必要に応じて、これらの一部あるいは全部についての設計条件が入力される。
【００３５】
次に、制御部１２は、デバイスライブラリを参照し、ステップＳ１０１で設定されたシステムの各デバイスに対応するモデルをユーザに選定させる処理を行う（ステップＳ１０２）。
そして、制御部１２は、ユーザによって選定されるデバイスに対応するモデルが全てデバイスライブラリに含まれていたか否かの判定を行い（ステップＳ１０３）、デバイスライブラリに含まれていなかったと判定した場合、デバイスモデルのデータ転送特性をユーザに入力させることにより、新たなデバイスモデルを作成する（ステップＳ１０４）。
【００３６】
ステップＳ１０３において、ユーザによって選定されるデバイスに対応するモデルが全てデバイスライブラリに含まれていたと判定した場合およびステップＳ１０４の後、制御部１２は、選定されたデバイスモデルをバスに接続した全体のシステムモデルを構築し（ステップＳ１０５）、機能分析・システム構築処理を終了し、バスインターフェース設計支援処理に戻る。
【００３７】
次に、バスインターフェース設計支援処理のサブフローであるデータ転送量算出処理について説明する。
図６は、データ転送量算出処理を示すフローチャートである。
データ転送量算出処理は、バスインターフェース設計支援処理において呼び出されることによって開始される。
【００３８】
図６において、データ転送量算出処理が開始されると、制御部１２は、バスに接続されているデバイスモデルを抽出し（ステップＳ２０１）、さらに、それらのデバイスモデルのうち、マスタデバイスのモデルを特定する（ステップＳ２０２）。
そして、制御部１２は、ステップＳ２０２において特定された各マスタデバイスのモデルについて、デバイスライブラリを参照し、マスタデバイスそれぞれから各スレーブデバイスへデータ転送の数（即ち、各スレーブデバイスに対応するメモリ領域へのロード命令およびストア命令の数）を順にカウントする（ステップＳ２０３）。
【００３９】
さらに、制御部１２は、複数のマスタデバイスによるデータ転送が競合するロード命令およびストア命令を抽出し（ステップＳ２０４）、競合するデータ転送に関わるマスタデバイスのデータ転送特性および設定されている設計条件に基づいて、これらのデータ転送を調停する（ステップＳ２０５）。
次いで、制御部１２は、各データ転送における転送データ量からデータ転送量のピーク値を算出すると共に、データ転送時間およびデータ転送量から平均値を算出する（ステップＳ２０６）。
【００４０】
そして、制御部１２は、データ転送量算出処理を終了し、バスインターフェース設計支援処理に戻る。
次に、バスインターフェース設計支援処理のサブフローであるバスインターフェース生成処理について説明する。
図７は、バスインターフェース生成処理を示すフローチャートである。
【００４１】
バスインターフェース生成処理は、バスインターフェース設計支援処理において呼び出されることによって開始される。
図７において、バスインターフェース生成処理が開始されると、制御部１２は、データ転送量算出処理において算出されたデータ転送量のピーク値を取得し（ステップＳ３０１）、バスプロトコルライブラリにおける各バスプロトコルのデータ転送速度およびユーザによって設定された設計条件に基づいて、各バスプロトコルを採用した場合に可能となるデータ転送量を算出する（ステップＳ３０２）。
【００４２】
そして、制御部１２は、ステップＳ３０２において算出した各バスプロトコルのデータ転送量から、設計対象となるバスインターフェースの条件に適合するバスプロトコルを選定し（ステップＳ３０３）、条件に適合するバスプロトコルが複数あるか否かの判定を行う（ステップＳ３０４）。
ステップＳ３０４において、条件に適合するバスプロトコルが複数あると判定した場合、制御部１２は、ユーザによって設定されている設計条件が回路規模優先であるか否かの判定を行う（ステップＳ３０５）。
【００４３】
ステップＳ３０５において、設計条件が回路規模優先でないと判定した場合、制御部１２は、選定された複数のバスプロトコルのうち、入力部１１を介していずれかを選択させる旨の表示を行うことにより、ユーザに１つのバスを選択させる（ステップＳ３０６）。
また、ステップＳ３０５において、設計条件が回路規模優先であると判定した場合、制御部１２は、バスプロトコルライブラリの回路規模インデックスを参照して、回路規模が最も小さいバスプロトコルを選択する（ステップＳ３０７）。
【００４４】
ステップＳ３０４において、条件に適合するバスプロトコルが１つであると判定した場合およびステップＳ３０６，Ｓ３０７の後、制御部１２は、設計対象であるバスインターフェースに使用するバスプロトコルを決定し（ステップＳ３０８）、バスインターフェース設計支援処理に戻る。
これらの処理により、設計対象となるバスインターフェースが適用されるシステムを具体的に想定したデータ転送のシミュレーションを行うことができ、また、このとき、そのシステムにおいて実際に用いられるプログラムに即したデータ転送を想定してシミュレーションを行うことができる。
【００４５】
例えば、図８に示すシステム（携帯電話機等）に用いるバスインターフェースを設計する場合、設計条件を設定しつつ、全体のシステムに含まれるデバイスの構成をユーザが入力し（図５のステップＳ１０１）、各スレーブデバイスおよびマスタデバイスのデータ転送特性に対応するデバイスモデルをデバイスライブラリから選定する（図５のステップＳ１０２）。
【００４６】
これにより、設計対象となるバスインターフェースが適用されるシステムにおいて、各デバイスのデータ転送特性を含むモデルが構築される（図５のステップＳ１０５）。
そして、ここで構築されたシステムのモデルにおいて、アプリケーションプログラムを実行した場合に、（１）カメラおよびマイクから画像データおよび音声データがそれぞれ出力される。（２）出力されたデータをメモリに転送する。（３）メモリに保存された画像データおよび音声データをＣＰＵおよびＤＳＰに転送して処理する。このとき、ＤＭＡ転送を用いる。（４）音声データをスピーカに、画像データをディスプレイに出力する。（５）音声データおよび画像データを記録メディアに記録するため、ＣＰＵを介してメモリのデータを記録メディアのインターフェースに出力する、という処理が行われるとする。
【００４７】
すると、構築されたシステムのモデルにおいて、上記（１）〜（５）の処理を実行させることにより（図６のステップＳ２０１〜Ｓ２０５）、この動作を行った場合のデータ転送の状態が、図９のデータ転送結果のように把握される。
そして、図９のデータ転送結果において、データ転送量のピーク値および平均値を算出し（図６のステップＳ２０６）、さらに、バスプロトコルライブラリにおける各バスプロトコルのデータ転送速度および設計条件に応じて、各バスプロトコルにおいて可能となるデータ転送量を算出する（図７のステップＳ３０２）。
【００４８】
その後、必要なデータ転送量を充足する１つのバスプロトコルが選定され（図７のステップＳ３０３〜Ｓ３０７）、設計対象となるバスインターフェースに使用するバスプロトコルが決定される（図７のステップＳ３０８）。
以上のように、本発明を適用したバスインターフェース設計支援装置１においては、設計対象となるバスインターフェースに接続されるデバイスが、データ転送特性の観点から抽象化されたモデルとしてデバイスライブラリに格納されている。
【００４９】
さらに、設計対象となるバスインターフェースに接続されるデバイスは、マスタデバイスおよびスレーブデバイスのモデルに分類されてデバイスライブラリに格納されている。
そのため、バスインターフェースの設計において、バスインターフェースの適用対象となるシステムに接続するモデルを選択することで、実際のシステムに即した具体的な構成を想定して正確なシミュレーションを行うことが可能となる。また、システムに接続する全てのデバイスを個別に定義する必要がなく、データ転送のシミュレーションを行う際にも、マスタデバイス間における調停およびマスタデバイスとスレーブデバイスとの間におけるデータ転送のシミュレーションを行えば良いため、マスタデバイスを複数含む複雑なシステムであっても、容易にシミュレーションを行うことが可能となる。
【００５０】
また、デバイスライブラリに格納されたマスタデバイスは、動的マスタデバイスと静的マスタデバイスとに分類されている。
そして、静的マスタデバイスはデータ転送の特性が容易にモデル化できるものであるため、静的マスタデバイスについては、このモデル化されたデータ転送特性を用いることにより、容易にシミュレーションを行うことが可能となる。
【００５１】
このように、本実施の形態に係るバスインターフェース設計支援装置１によれば、バスインターフェースの設計において、精度の高いシミュレーションを実行することが可能となる。
なお、本実施の形態において、バスインターフェース設計支援処理で用いられるソースファイルは、設計対象であるバスインターフェースを適用するプロセッサにおいて、実際に使用されるプログラムのソースファイルとすることが望ましい。ただし、実際に使用されるプログラムに代えて、検証用のテストプログラムを用いることも可能であり、例えば、静止画像の圧縮・伸長処理、動画像の圧縮・伸長処理あるいは誤り訂正といった処理を想定した検証用のサンプルプログラムを用いても良い。
【００５２】
また、本実施の形態においては、バスインターフェース設計支援装置１を単体の装置として構成する場合を例に挙げて説明したが、バスプロトコルライブラリを蓄積するバスプロトコルライブラリサーバ、デバイスライブラリを蓄積するデバイスライブラリサーバ、バスインターフェース設計支援処理を実行するバスインターフェース設計支援サーバ、設計条件やソースファイルを入力する設計者用端末装置を、ネットワークを介して接続しておき、各装置が連携することにより、バスインターフェース設計支援装置１の機能をシステム全体として実現することも可能である。
【００５３】
また、バスインターフェース設計支援装置１の具体的実施態様としては、顧客から提供されたソースファイルや外部情報等に基づいて、ＬＳＩの製造メーカーが、ＬＳＩに組み込むバスインターフェースを設計した上でＬＳＩを製造し、顧客に提供するといったことが考えられる。
したがって、バスインターフェース設計支援処理プログラムの機能のうち、機能分析・システム構築処理に関する部分と、データ転送量算出処理、バスプロトコルの選択およびバスインターフェースの生成に関する部分とは、分離した構成とすることも可能である。
【図面の簡単な説明】
【００５４】
【図１】本発明に係るバスインターフェース設計支援装置１の機能構成を示すブロック図である。
【図２】簡易バスに関するバスプロトコルの一例を示す模式図である。
【図３】ＡＨＢに関するバスプロトコルの一例を示す模式図である。
【図４】バスインターフェース設計支援処理を示すフローチャートである。
【図５】機能分析・システム構築処理を示すフローチャートである。
【図６】データ転送量算出処理を示すフローチャートである。
【図７】バスインターフェース生成処理を示すフローチャートである。
【図８】バスインターフェースの適用対象となるシステムの構成例を示す図である。
【図９】データ転送結果の一例を示す図である。
【符号の説明】
【００５５】
１  バスインターフェース設計支援装置、１１  入力部、１２  制御部、１３  記憶部、１４  ＲＡＭ、１５  ＶＲＡＭ、１６  表示部
【図１】
2006215620.tif 000003
【図２】
2006215620.tif 000004
【図３】
2006215620.tif 000005
【図４】
2006215620.tif 000006
【図５】
2006215620.tif 000007
【図６】
2006215620.tif 000008
【図７】
2006215620.tif 000009
【図８】
2006215620.tif 000010
【図９】
2006215620.tif 000011