(57)【要約】【課題】システムＬＳＩに内蔵されている異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てる。【解決手段】システムの機能を高級言語で記述したプログラム内のそれぞれの関数について、その内部に記述された条件分岐文やループ制御文の数、条件分岐文やループ制御文のネスティング数、条件分岐文の条件やループ制御文の繰り返し回数の生成に要した関数の数等を計数する解析手段１２４を備える。【選択図】  図１
2004259135.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、
システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、
前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文の数を計数する解析手段と、
前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段と、を備えたことを特徴とするシステムＬＳＩ設計支援装置。
【請求項２】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文のネスティング数を計数することを特徴とする請求項１に記載のシステムＬＳＩ設計支援装置。
【請求項３】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする請求項１又は２に記載のシステムＬＳＩ設計支援装置。
【請求項４】
処理ユニットが処理するに好適な条件分岐文の数、条件分岐文のネスティング数及び条件分岐文の条件に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする請求項１から３のいずれか一項に記載のシステムＬＳＩ設計支援装置。
【請求項５】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、
システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、
前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文の数を計数する解析手段と、
前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段と、を備えたことを特徴とするシステムＬＳＩ設計支援装置。
【請求項６】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文のネスティング数を計数することを特徴とする請求項５に記載のシステムＬＳＩ設計支援装置。
【請求項７】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする請求項５又は６に記載のシステムＬＳＩ設計支援装置。
【請求項８】
処理ユニットが処理するに好適なループ制御文の数、ループ制御文のネスティング数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする請求項５から７のいずれか一項に記載のシステムＬＳＩ設計支援装置。
【請求項９】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、
システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、
前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の数を計数する解析手段と、
前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段と、を備えたことを特徴とするシステムＬＳＩ設計支援装置。
【請求項１０】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文のネスティング数を計数することを特徴とする請求項９に記載のシステムＬＳＩ設計支援装置。
【請求項１１】
前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする請求項９又は１０に記載のシステムＬＳＩ設計支援装置。
【請求項１２】
処理ユニットが処理するに好適な条件分岐文及びループ制御文の数、条件分岐文及びループ制御文のネスティング数並びに条件分岐文及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする請求項９から１１のいずれか一項に記載のシステムＬＳＩ設計支援装置。
【請求項１３】
前記関数抽出手段が抽出した関数から任意に選択した複数の関数の組を少なくとも１つ指定する関数組み合わせ手段を備え、前記解析手段は、前記関数組み合わせ手段が指定した関数の組それぞれについて解析を行うことを特徴とする請求項１から１２のいずれか一項に記載のシステムＬＳＩ設計支援装置。
【請求項１４】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、
システムの機能を高級言語で記述したプログラムを入力するステップと、
前記プログラムに記述された関数を抽出するステップと、
抽出したそれぞれの関数について、その内部に記述された条件分岐文の数を計数するステップと、
前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップと、を含むことを特徴とするシステムＬＳＩ設計支援方法。
【請求項１５】
前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文のネスティング数を計数するステップを含むことを特徴とする請求項１４に記載のシステムＬＳＩ設計支援方法。
【請求項１６】
前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする請求項１４又は１５に記載のシステムＬＳＩ設計支援方法。
【請求項１７】
処理ユニットが処理するに好適な条件分岐文の数、条件分岐文のネスティング数及び条件分岐文の条件に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、
前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップと、を含むことを特徴とする請求項１４から１６のいずれか一項に記載のシステムＬＳＩ設計支援方法。
【請求項１８】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、
システムの機能を高級言語で記述したプログラムを入力するステップと、
前記プログラムに記述された関数を抽出するステップと、
抽出されたそれぞれの関数について、その内部に記述されたループ制御文の数を計数するステップと、
前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップと、を含むことを特徴とするシステムＬＳＩ設計支援方法。
【請求項１９】
前記抽出されたそれぞれの関数について、その内部に記述されたループ制御文のネスティング数を計数するステップを含むことを特徴とする請求項１８に記載のシステムＬＳＩ設計支援方法。
【請求項２０】
前記抽出されたそれぞれの関数について、その内部に記述されたループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする請求項１８又は１９に記載のシステムＬＳＩ設計支援方法。
【請求項２１】
処理ユニットが処理するに好適なループ制御文の数、ループ制御文のネスティング数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、
前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップと、を含むことを特徴とする請求項１８から２０のいずれか一項に記載のシステムＬＳＩ設計支援方法。
【請求項２２】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、
システムの機能を高級言語で記述したプログラムを入力するステップと、
前記プログラムに記述された関数を抽出するステップと、
抽出されたそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の数を計数するステップと、
前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップと、を含むことを特徴とするシステムＬＳＩ設計支援方法。
【請求項２３】
前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文のネスティング数を計数するステップを含むことを特徴とする請求項２２に記載のシステムＬＳＩ設計支援方法。
【請求項２４】
前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする請求項２２又は２３に記載のシステムＬＳＩ設計支援方法。
【請求項２５】
処理ユニットが処理するに好適な条件分岐文及びループ制御文の数、条件分岐文及びループ制御文のネスティング数並びに条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、
前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップと、を含むことを特徴とする請求項２２から２４のいずれか一項に記載のシステムＬＳＩ設計支援方法。
【請求項２６】
前記抽出した関数から任意に選択した複数の関数の組を少なくとも１つ指定するステップを含み、前記指定された関数の組それぞれについて前記集計を行うことを特徴とする請求項１４から２５のいずれか一項に記載のシステムＬＳＩ設計支援方法。
【請求項２７】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、
前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適な条件分岐文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とするデータベース装置。
【請求項２８】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、
前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適なループ制御文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とするデータベース装置。
【請求項２９】
複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、
前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適な条件分岐文及びループ制御文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とするデータベース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高級言語で記述されたシステムのプログラムが実現する機能を、マイクロプロセッサ、デジタル信号処理プロセッサ、専用ロジック回路等から構成されるシステム用のＬＳＩに割り付けることを支援するシステムＬＳＩ設計支援装置及び設計支援方法に関するものである。
【０００２】
【従来の技術】
近年、ＬＳＩの高集積化に伴い多数の機能からなるシステムを１チップのＬＳＩに集積することが可能となっている。このＬＳＩ（以下、システムＬＳＩと称する）は、異なる種類の処理ユニット（例えば、マイクロプロセッサ、デジタル信号処理プロセッサ、専用のロジック回路）及びメモリより構成され、システムの様々な機能がそれぞれ適切な処理ユニットで実行される。
【０００３】
処理ユニットは、それぞれ異なったアーキテクチャを持っており、得意とする処理内容がある。例えば、マイクロプロセッサ（以下、ＣＰＵと称する）ではＬＳＩ外部から入力される多様な制御情報の判断や、複雑なアルゴリズムをもつ処理を、高級言語を元にしたプログラムで実行するのに適する。
【０００４】
また、デジタル信号処理プロセッサ（以下、ＤＳＰと称する）は複雑な数値演算を高速で実行するのに向いている。さらに、専用ロジック回路は単純な数値演算等を高効率で実行できるが、一方で複雑な判断条件を伴った処理には向かないという特徴がある。
【０００５】
システムの機能をどの処理ユニットに割り当てるかは以下の過程でなされる。
まず、システムの動作の一部あるいは全体を記述したプログラムを元に簡略な解析を行う。この解析でプログラムの機能単位（即ちモジュール、Ｃ言語等の高級言語では関数）毎の処理時間が見積もられる。この情報を基に設計者は、システムの機能を適切な処理ユニットに割り付ける。次に、処理ユニット毎にさらに詳しく処理時間や実行サイクル数を算出する。この段階で問題がなければ、さらに処理ユニットに応じた組み込みプログラム、例えばＣＰＵで実行するプログラムやＤＳＰ用のプログラムを作成し、同時に専用ロジック回路を設計することで正確な処理時間を算出する。
【０００６】
以上の煩雑な一連の過程を支援する設計支援方法が提案されている（例えば、特許文献１を参照）。特許文献１によれば、複数の関数から構成される高級言語で記述されたプログラムをコンパイルして得られるオブジェクトコードを入力してシミュレーションを実行し、予め指定した区間について処理時間と処理回数を記録、出力することで処理時間の大小に応じてハードウエア化すべき箇所、すなわち専用ロジックで処理すべき箇所を選択している。
【０００７】
【特許文献１】
特開平９−１６０９４９号公報（第４−１４頁、第１図）
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来の方法では、処理時間を基準にしてシステムのある機能を専用ロジックに割り付けることは支援できるものの、それ以外の基準では何ら判断できる情報を提供できないという問題点がある。すなわち、例えばシステムが有する一部の機能で、単純な数値演算を多用する機能Ａを実現するに当たり、ＣＰＵで処理時間が満足されれば、専用ロジックで処理する要請はなくなる。
ところが、この場合ＣＰＵにとっては不得意な処理を実行することになり、不必要な動作を多分に実行することにより消費電力の増加を招く。
【０００９】
また別の例として、システムが有する一部の機能で、条件判断を多用した複雑なアルゴリズムを持つ機能Ｂを実現するに当たり、予め決められた時間内にＣＰＵが処理できなければ、専用ロジックに機能が割り当てられることになる。ところが、このような複雑な処理を専用ロジックで実現しようとすると多段の状態遷移制御回路が必要となり、専用ロジックの回路規模が増加して、同時にその設計期間は膨大となる。
【００１０】
本発明は上記事情に鑑みてなされたもので、システムＬＳＩに内蔵されている異なったアーキテクチャを持つ処理ユニットに、システムが担う機能を適切に割り当てられるように支援するシステムＬＳＩ設計支援装置及び設計支援方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記問題点を解決するために請求項１に記載のシステムＬＳＩ設計支援装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文の数を計数する解析手段と、前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段とを備えたことを特徴とする。
【００１２】
請求項１４に記載のＬＳＩ設計支援方法は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、システムの機能を高級言語で記述したプログラムを入力するステップと、前記プログラムに記述された関数を抽出するステップと、抽出したそれぞれの関数について、その内部に記述された条件分岐文の数を計数するステップと、前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップとを含むことを特徴とする。
【００１３】
上記構成によれば、条件分岐文の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００１４】
請求項２に記載のシステムＬＳＩ設計支援装置は、請求項１に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文のネスティング数を計数することを特徴とする。
【００１５】
請求項１５に記載のＬＳＩ設計支援方法は、請求項１４に記載のＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文のネスティング数を計数するステップを含むことを特徴とする。
【００１６】
上記構成によれば、条件分岐文のネスティング数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００１７】
請求項３に記載のシステムＬＳＩ設計支援装置は、請求項１又は２に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする。
【００１８】
請求項１６に記載のＬＳＩ設計支援方法は、請求項１４又は１５に記載のシステムＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする。
【００１９】
上記構成によれば、条件分岐文の条件に係る変数を生成するに要した関数の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００２０】
請求項４に記載のシステムＬＳＩ設計支援装置は、請求項１から３のいずれか一項に記載のシステムＬＳＩ設計支援装置において、処理ユニットが処理するに好適な条件分岐文の数、条件分岐文のネスティング数及び条件分岐文の条件に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする。
【００２１】
請求項１７に記載のＬＳＩ設計支援方法は、請求項１４から１６のいずれか一項に記載のシステムＬＳＩ設計支援方法において、処理ユニットが処理するに好適な条件分岐文の数、条件分岐文のネスティング数及び条件分岐文の条件に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップとを含むことを特徴とする。
【００２２】
上記構成によれば、条件分岐文の数、条件分岐文のネスティング数、条件分岐文の条件に係る変数の生成に要した関数の数から選択した複数の組み合わせに関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００２３】
請求項５に記載のシステムＬＳＩ設計支援装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文の数を計数する解析手段と、前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段とを備えたことを特徴とする。
【００２４】
請求項１８に記載のＬＳＩ設計支援方法は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、システムの機能を高級言語で記述したプログラムを入力するステップと、前記プログラムに記述された関数を抽出するステップと、抽出されたそれぞれの関数について、その内部に記述されたループ制御文の数を計数するステップと、前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップとを含むことを特徴とする。
【００２５】
上記構成によれば、ループ制御文の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００２６】
請求項６に記載のシステムＬＳＩ設計支援装置は、請求項５に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文のネスティング数を計数することを特徴とする。
【００２７】
請求項１９に記載のＬＳＩ設計支援方法は、請求項１８に記載のシステムＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述されたループ制御文のネスティング数を計数するステップを含むことを特徴とする。
【００２８】
上記構成によれば、ループ制御文のネスティング数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００２９】
請求項７に記載のシステムＬＳＩ設計支援装置は、請求項５又は６に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述されたループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする。
【００３０】
請求項２０に記載のＬＳＩ設計支援方法は、請求項１８又は１９に記載のシステムＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述されたループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする。
【００３１】
上記構成によれば、ループ制御文の繰り返し回数に係る変数を生成するに要した関数の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００３２】
請求項８に記載のシステムＬＳＩ設計支援装置は、請求項５から７のいずれか一項に記載のシステムＬＳＩ設計支援装置において、処理ユニットが処理するに好適なループ制御文の数、ループ制御文のネスティング数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする。
【００３３】
請求項２１に記載のＬＳＩ設計支援方法は、請求項１８から２０のいずれか一項に記載のシステムＬＳＩ設計支援方法において、処理ユニットが処理するに好適なループ制御文の数、ループ制御文のネスティング数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップとを含むことを特徴とする。
【００３４】
上記構成によれば、ループ制御文の数、ループ制御文のネスティング数、ループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせに関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００３５】
請求項９に記載のシステムＬＳＩ設計支援装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置であって、システムの機能を高級言語で記述したプログラムを入力とし、前記プログラムに記述された関数を抽出する関数抽出手段と、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の数を計数する解析手段と、前記解析手段の計数結果を前記関数抽出手段で抽出されたそれぞれの関数について集計した集計結果情報を出力する集計手段とを備えたことを特徴とする。
【００３６】
請求項２２に記載のＬＳＩ設計支援方法は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援方法であって、システムの機能を高級言語で記述したプログラムを入力するステップと、前記プログラムに記述された関数を抽出するステップと、抽出されたそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の数を計数するステップと、前記計数結果をそれぞれの関数について集計した集計結果情報を生成するステップとを含むことを特徴とする。
【００３７】
上記構成によれば、条件分岐文及びループ制御文の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００３８】
請求項１０に記載のシステムＬＳＩ設計支援装置は、請求項９に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文のネスティング数を計数することを特徴とする。
【００３９】
請求項２３に記載のＬＳＩ設計支援方法は、請求項２２に記載のシステムＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文のネスティング数を計数するステップを含むことを特徴とする。
【００４０】
上記構成によれば、条件分岐文及びループ制御文のネスティング数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００４１】
請求項１１に記載のシステムＬＳＩ設計支援装置は、請求項９又は１０に記載のシステムＬＳＩ設計支援装置において、前記解析手段は、前記関数抽出手段が抽出したそれぞれの関数について、その内部に記述された条件分岐文及びループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数することを特徴とする。
【００４２】
請求項２４に記載のＬＳＩ設計支援方法は、請求項２２又は２３に記載のシステムＬＳＩ設計支援方法において、前記抽出されたそれぞれの関数について、その内部に記述された条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の計算過程に基づいて、前記変数の生成に要した関数の数を計数するステップを含むことを特徴とする。
【００４３】
上記構成によれば、条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数に関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００４４】
請求項１２に記載のシステムＬＳＩ設計支援装置は、請求項９から１１のいずれか一項に記載のシステムＬＳＩ設計支援装置において、処理ユニットが処理するに好適な条件分岐文及びループ制御文の数、条件分岐文及びループ制御文のネスティング数並びに条件分岐文及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報と前記集計手段が出力する集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるマッピング手段を備えることを特徴とする。
【００４５】
請求項２５に記載のＬＳＩ設計支援方法は、請求項２２から２４のいずれか一項に記載のシステムＬＳＩ設計支援方法において、処理ユニットが処理するに好適な条件分岐文及びループ制御文の数、条件分岐文及びループ制御文のネスティング数並びに条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせを異なる処理ユニット毎に予め定義した定義情報を入力するステップと、前記定義情報と前記集計結果情報とを照合して適切な処理ユニットを関数毎に対応付けるステップとを含むことを特徴とする。
【００４６】
上記構成によれば、条件分岐文及びループ制御文の数、条件分岐文及びループ制御文のネスティング数並びに条件分岐文の条件に係る変数及びループ制御文の繰り返し回数に係る変数の生成に要した関数の数から選択した複数の組み合わせに関するシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００４７】
請求項１３に記載のシステムＬＳＩ設計支援装置は、請求項１から１２のいずれか一項に記載のシステムＬＳＩ設計支援装置において、前記関数抽出手段が抽出した関数から任意に選択した複数の関数の組を少なくとも１つ指定する関数組み合わせ手段を備え、前記解析手段は、前記関数組み合わせ手段が指定した関数の組それぞれについて解析を行うことを特徴とする。
【００４８】
請求項２６に記載のＬＳＩ設計支援方法は、請求項１４から２５のいずれか一項に記載のシステムＬＳＩ設計支援方法において、前記抽出した関数から任意に選択した複数の関数の組を少なくとも１つ指定するステップを含み、前記指定された関数の組それぞれについて前記集計を行うことを特徴とする。
【００４９】
上記構成によれば、関連性の高い関数を同じ処理ユニットで処理する場合についてのシステムＬＳＩ設計支援情報に基づいて異なったアーキテクチャを持つ処理ユニットにシステムが担う機能を適切に割り当てることができる。
【００５０】
請求項２７に記載のデータベース装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適な条件分岐文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とする。
【００５１】
上記構成によれば、条件分岐文に関するシステムＬＳＩ設計支援情報を生成するためのデータをシステムＬＳＩ設計支援装置に提供することができる。
【００５２】
請求項２８に記載のデータベース装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適なループ制御文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とする。
【００５３】
上記構成によれば、ループ制御文に関するシステムＬＳＩ設計支援情報を生成するためのデータをシステムＬＳＩ設計支援装置に提供することができる。
【００５４】
請求項２９に記載のデータベース装置は、複数の異なったアーキテクチャをもつ処理ユニットからなるシステムＬＳＩにシステムの機能を割り当てる設計を支援するシステムＬＳＩ設計支援装置に提供するデータを格納するデータベース装置であって、前記データは、システムの機能を高級言語で記述したプログラムに関し、処理ユニットが処理するに好適な条件分岐文及びループ制御文の数を、異なる処理ユニット毎に予め定義した定義情報であることを特徴とする。
【００５５】
上記構成によれば、条件分岐文及びループ制御文に関するシステムＬＳＩ設計支援情報を生成するためのデータをシステムＬＳＩ設計支援装置に提供することができる。
【００５６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。本発明に係るシステムＬＳＩ設計支援装置を用いて設計を行うシステムＬＳＩは、異なったアーキテクチャを持つ複数の処理ユニット（ＣＰＵ、ＤＳＰ、専用ロジック）で構成されている（システムＬＳＩの構成は図示略）。
【００５７】
（実施の形態１）
図１は、本発明の実施の形態１におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。図１において、コンピュータ１００は、プロセッサ１１０及び主記憶装置１２０を備える。プロセッサ１１０は、各種演算処理やシステムＬＳＩ設計支援装置全体の統括制御処理を行う。主記憶装置１２０は、本発明のシステムＬＳＩ設計支援装置の動作に関わる手続きを記述したプログラムやデータなどを格納する。また、補助記憶装置１３０は、コンピュータ１００に入力するデータを、補助記憶装置１４０は、コンピュータ１００から出力されるデータを格納する。
【００５８】
システムの機能の一部あるいは全部を高級言語で記述したプログラム１３２は、補助記憶装置１３０に予め格納されている（格納手段は図示略）。図２は、実施の形態１において補助記憶装置に格納されるプログラム１３２の記述例である。図に示すように、プログラムはＣ言語で記述され、複数の関数で構成されている。
【００５９】
次に、上記構成のシステムＬＳＩ設計支援装置の動作について説明する。プログラム１３２がコンピュータ１００に入力されると、主記憶装置１２０の関数抽出部１２２、解析処理部１２４、集計処理部１２６、の順番で各種処理が実行される。
【００６０】
関数抽出部１２２は、プログラム１３２に記述されている関数を抽出する。プログラム１３２が図２に示した内容の場合、関数としてｆｕｎｃ＿Ａ、ｆｕｎｃ＿Ｂ、ｆｕｎｃ＿Ｃが抽出される。解析処理部１２４は、抽出された関数ごとに条件分岐文の数を計数する。
【００６１】
図３は、実施の形態１における関数内部の解析処理の流れを示すフローチャートである。関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ１０１）。プログラム１３２が図２に示す内容である場合、まずｆｕｎｃ＿Ａが選択される。次に、その関数内に含まれる条件分岐文の数をカウントする（ステップＳ１０２）。図２のｆｕｎｃ＿Ａの内部では、条件分岐文としてｉｆ文を使用しており、その数はｉｆ文２１１、ｉｆ文２１２、ｉｆ文２１３の合計３個であるので、その数を記録する（ステップＳ１０３）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ１０４）、終了していない場合はステップＳ１０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００６２】
集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数を集計し、集計結果を生成する。図４は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００６３】
実施の形態１の構成により、システムの機能を記述したプログラム１３２の関数毎の特徴が得られる。例えば、上記のプログラム例ではｆｕｎｃ＿Ｂで条件分岐文が１０箇所使用されているため、条件判断を効率よく行うＣＰＵでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００６４】
（実施の形態２）
本発明の実施の形態２におけるシステムＬＳＩ設計支援装置について、図１、図２、図５及び図６を参照しながら説明する。
【００６５】
先の実施の形態と異なる点は、図１の解析処理部１２４において、抽出された関数ごとに条件分岐文のネスティング数までを計数することにある。
【００６６】
図５は、実施の形態２における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ２０１）。プログラム１３２が図２に示す内容である場合、まずｆｕｎｃ＿Ａが選択される。次に、その関数内に含まれる条件分岐文の数をカウントする（ステップＳ２０２）。図２では、３個のｉｆ文がカウントされる。更にこの関数内に含まれる条件分岐文のネスティング数（入れ子構造の段数）と、対象となる条件分岐文の数をカウントする（ステップＳ２０３）。図２のｆｕｎｃ＿Ａの中にあるｉｆ文２１２は、ｉｆ文２１１の内部で１段のネスティング構造となっている。従って、このときネスティング１段の条件分岐文は１とカウントし、記録する（ステップＳ２０４）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ２０５）、終了していない場合はステップＳ２０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００６７】
集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数とネスティング数を集計し、集計結果を生成する。図６は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００６８】
実施の形態２の構成により、実施の形態１とは異なる別の観点から、プログラム１３２の関数毎の特徴が得られる。一般に、条件分岐のネスティング段数が多い程処理が複雑となるため、専用ロジックでの実行は困難になる。例えば、上記のプログラム例ではｆｕｎｃ＿Ａでネスティングを用いた条件分岐文が使用されているため、条件判断を効率よく行うＣＰＵでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００６９】
（実施の形態３）
本発明の実施の形態３におけるシステムＬＳＩ設計支援装置について、図１、図７、図８及び図９を参照しながら説明する。
【００７０】
先の実施の形態と異なる点は、図１の解析処理部１２４において、抽出された関数ごとに、条件分岐文の条件を生成する過程を追跡して、条件変数を生成するに要した関数の数を計数し、内部構文の解析を行うことにある。図７は、実施の形態３において補助記憶装置に格納されるプログラム１３２の記述例である。
【００７１】
図８は、実施の形態３における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ３０１）。プログラム１３２が図７に示す内容である場合、まずｆｕｎｃ＿Ａが選択される。次に、その関数内に含まれる条件分岐文で用いられる条件に係る変数を生成するに当たりいくつの関数を経由するかを解析する（ステップＳ３０２）。図７の条件分岐文２１１で用いられている変数ＡＩＮ１はｆｕｎｃ＿Ａ外部の関数で計算されており、変数ＡＩＮ２は外部から定数として与えられるものとする。図７に示されるように、変数ＡＩＮ１は、ｆｕｎｃ＿Ｄ内部で計算され、ｆｕｎｃ＿Ｄ内部において２つの文７１１，７１２に記述のｆｕｎｃ＿Ａ１、ｆｕｎｃ＿Ａ２により変数ＡＩＮ１が生成されている。従って、ＡＩＮ１を生成するに要する関数は２となる。また、変数ＡＩＮ２は外部から定数で与えられているので生成に必要な関数は０である。このような解析に基づいて、条件変数を生成するに要した関数の数と変数の数を記録する（ステップＳ３０３）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ３０４）、終了していない場合はステップＳ３０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００７２】
集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数と条件変数を生成するに要した関数の数と変数の数を集計し、集計結果を生成する。図９は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００７３】
実施の形態３の構成により、実施の形態１、２とは異なる別の観点から、プログラム１３２の関数毎の特徴が得られる。一般に、条件分岐で用いられる変数を生成するに当たりその手順が多い程処理が複雑となるため、専用ロジックでの実行は困難になる。例えば、上記のプログラム例ではｆｕｎｃ＿Ａの条件分岐文で用いる変数を生成するには２個の関数が必要であるため、条件判断を効率よく行うＣＰＵでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００７４】
（実施の形態４）
本発明の実施の形態４におけるシステムＬＳＩ設計支援装置について、図１、図１０、図１１及び図１２を参照しながら説明する。
【００７５】
先の実施の形態と異なる点は、図１の解析処理部１２４において、抽出された関数ごとにループ制御文の数を計数することにある。図１０は、実施の形態４において補助記憶装置に格納されるプログラム１３２の記述例である。
【００７６】
図１１は、実施の形態４における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ４０１）。プログラム１３２が図１０に示す内容である場合、まずｆｕｎｃ＿ＬＡが選択される。次に、その関数内に含まれるループ制御文の数をカウントする（ステップＳ４０２）。図１０のｆｕｎｃ＿ＬＡの内部では、ループ制御文としてｆｏｒ文を使用しており、その数はｆｏｒ文１０１１、ｆｏｒ文１０１２、ｆｏｒ文１０１３の合計３個であるので、その数を記録する（ステップＳ４０３）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ４０４）、終了していない場合はステップＳ４０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００７７】
集計処理部１２６は、解析処理部１２４で得られたループ制御文の数を集計し、集計結果を生成する。図１２は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００７８】
実施の形態４の構成により、システムの機能を記述したプログラム１３２の関数毎の特徴が得られる。例えは、上記のプログラム例ではｆｕｎｃ＿ＬＢでループ制御文が１０箇所使用されているため、ループ制御を効率よく行うＤＳＰ又は専用ロジックでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００７９】
（実施の形態５）
本発明の実施の形態５におけるシステムＬＳＩ設計支援装置について、図１、図１０、図１３及び図１４を参照しながら説明する。
【００８０】
先の実施の形態と異なる点は、図１の解析処理部１２４において、抽出された関数ごとにループ制御文のネスティング数までを計数することにある。
【００８１】
図１３は、実施の形態５における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ５０１）。プログラム１３２が図１０に示す内容である場合、まずｆｕｎｃ＿ＬＡが選択される。次に、その関数内に含まれるループ制御文の数をカウントする（ステップＳ５０２）。図１０では、３個のｆｏｒ文がカウントされる。更にこの関数内に含まれるループ制御文のネスティング数（入れ子構造の段数）と、対象となるループ制御文の数をカウントする（ステップＳ５０３）。図１０のｆｕｎｃ＿ＬＡの中にあるｆｏｒ文１０１２は、ｆｏｒ文１０１１の内部で１段のネスティング構造となっている。従って、このときネスティング１段のループ制御文は１とカウントし、記録する（ステップＳ５０４）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ５０５）、終了していない場合はステップＳ５０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００８２】
集計処理部１２６は、解析処理部１２４で得られたループ制御文の数とネスティング数を集計し、集計結果を生成する。図１４は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００８３】
実施の形態５の構成により、実施の形態４とは異なる別の観点から、プログラム１３２の関数毎の特徴が得られる。一般に、ループ制御文のネスティング段数が多い程処理が複雑となるため、専用ロジックでの実行は困難になる。例えば、上記のプログラム例ではｆｕｎｃ＿ＬＡでネスティングを用いたループ制御文が使用されているため、システムＬＳＩに内蔵されるＤＳＰでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００８４】
（実施の形態６）
本発明の実施の形態６におけるシステムＬＳＩ設計支援装置について、図１、図１５、図１６及び図１７を参照しながら説明する。
【００８５】
先の実施の形態と異なる点は、図１の解析処理部１２４において、抽出された関数ごとに、ループ制御文の繰り返し回数を生成する過程を追跡して、条件変数を生成するに要した関数の数を計数し、内部構文の解析を行うことにある。図１５は、実施の形態６において補助記憶装置に格納されるプログラム１３２の記述例である。
【００８６】
図１６は、実施の形態６における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ６０１）。プログラム１３２が図１５に示す内容である場合、まずｆｕｎｃ＿ＬＡが選択される。次に、ループ制御文で用いられる繰り返し回数に係る変数を生成するに当たりいくつの関数を経由するかを解析する（ステップＳ６０２）。図１５のループ制御文１０１１で用いられている繰り返し回数を指示する変数ＡＩＮ１は、ｆｕｎｃ＿ＬＤ内部で計算され、ｆｕｎｃ＿ＬＤ内部において２つの文１５１１，１５１２に記述のｆｕｎｃ＿ＬＡ１、ｆｕｎｃ＿ＬＡ２により変数ＡＩＮ１が生成されている。従って、ＡＩＮ１を生成するに要する関数は２となる。このような解析に基づいて、条件変数を生成するに要した関数の数を記録する（ステップＳ６０３）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ６０４）、終了していない場合はステップＳ６０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００８７】
集計処理部１２６は、解析処理部１２４で得られたループ制御文の数と条件変数を生成するに要した関数の数と変数の数を集計し、集計結果を生成する。図１７は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００８８】
実施の形態６の構成により、実施の形態５とは異なる別の観点から、プログラム１３２の関数毎の特徴が得られる。一般にループ制御で用いられる繰り返し回数を指示する変数を生成するに当たりその手順が多い程処理が複雑となるため、専用ロジックでの実行は困難になる。例えば、上記のプログラム例ではｆｕｎｃ＿ＬＡのループ制御文で用いる変数を生成するには２個の関数が必要であるため、システムＬＳＩに内蔵されるＤＳＰでこの関数を処理するのが適切である、というような設計支援情報が取得できる。
【００８９】
（実施の形態７）
本発明の実施の形態７におけるシステムＬＳＩ設計支援装置について、図１、図１８及び図１９を参照しながら説明する。
【００９０】
本実施の形態では、図１の解析処理部１２４において、抽出された関数ごとに、条件分岐文の数及びループ制御文の数、条件分岐文のネスティング数及びループ制御文のネスティング数、をすべて計数し、さらに、条件分岐文の条件及びループ制御文の繰り返し回数を生成する過程を追跡して、条件分岐文の変数を生成するに要した関数の数及びループ制御文の変数を生成するに要した関数の数を計数して、内部構文の解析を行う。尚、本実施の形態におけるプログラム１３２は、図２、図７、図１０、図１５に示す内容をすべて含むプログラムであるものとする。
【００９１】
図１８は、実施の形態７における関数内部の解析処理の流れを示すフローチャートである。解析処理部１２４は、関数抽出部１２２より抽出された関数の一つを選択する（ステップＳ７０１）。次に、その関数内に含まれる条件分岐文の数をカウントし（ステップＳ７０２）、その条件分岐文の数を記録する（ステップＳ７０３）。次に、この関数内に含まれる条件分岐文のネスティング数（入れ子構造の段数）と対象となる条件分岐文の数をカウントし（ステップＳ７０４）、そのネスティング数を記録する（ステップＳ７０５）。次に、この関数内に含まれる条件分岐文で用いられる条件に係る変数を生成するに当たりいくつの関数を経由するかを追跡し（ステップＳ７０６）、この条件変数を生成するに要した関数の数を記録する（ステップＳ７０７）。
【００９２】
続いて、その関数内に含まれるループ制御文の数をカウントし（ステップＳ７０８）、そのループ制御文の数を記録する（ステップＳ７０９）。次に、この関数内に含まれるループ制御文のネスティング数（入れ子構造の段数）と対象となるループ制御文の数をカウントし（ステップＳ７１０）、そのネスティング数を記録する（ステップＳ７１１）。次に、この関数内に含まれるループ制御文で用いられる繰り返し回数に係る変数を生成するに当たりいくつの関数を経由するかを追跡し（ステップＳ７１２）、この条件変数を生成するに要した関数の数を記録する（ステップＳ７１３）。以上の処理がすべての関数について終了したかどうかを判定し（ステップＳ７１４）、終了していない場合はステップＳ７０１からの処理を再び繰り返し、終了した場合は次の集計処理部１２６へ移行する。
【００９３】
集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数及びループ制御文の数、条件分岐文のネスティング数及びループ制御文のネスティング数、条件分岐文の変数を生成するに要した関数の数及びループ制御文の変数を生成するに要した関数の数、をそれぞれ集計して集計結果を生成する。図１９は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【００９４】
実施の形態７の構成により、前述の実施の形態１から６までを総合した観点から、プログラム１３２の関数毎の特徴が得られ、総合的な設計支援情報が取得できる。
【００９５】
（実施の形態８）
本発明の実施の形態８におけるシステムＬＳＩ設計支援装置について、図７、図８、図２０及び図２１を参照しながら説明する。
【００９６】
先の実施の形態と異なる点は、抽出した関数ごとに条件分岐文の条件を生成する過程を追跡するのではなく、複数の関数からなる関数の「組」について解析を行うことにある。図２０は、本発明の実施の形態８におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。補助記憶装置１３０には、プログラム１３２に加えファイル２０３２が格納されている。ファイル２０３２には任意の関数を複数選択した関数の「組」のリストがあり、関数抽出部２１２２は、プログラム１３２に記述された関数を抽出した後、ファイル２０３２に指定された「組」のリストを参照して特定の関数を選択する。以降の解析処理や集計処理は、個々の関数ではなく、この「組」に対して実行される。
【００９７】
上記構成のシステムＬＳＩ設計支援装置の動作について説明する。尚、本実施の形態におけるプログラム１３２は、図７で示す内容を含むプログラムとして説明する。
【００９８】
まず、関数抽出部２１２２がプログラム１３２に記述されている関数を抽出し、次に、ファイル２０３２を参照する。このファイル２０３２には、プログラム１３２の中で関連性が高いと思われる複数の関数が「組」として、設計者により予め指定されている。例えば、図７のプログラムのｆｕｎｃ＿Ａと、ｆｕｎｃ＿Ａで使用される変数ＡＩＮ１を生成するｆｕｎｃ＿Ｄとは関数の関連性が高いため、同一の処理ユニットで処理することが望ましい。このような場合には、ｆｕｎｃ＿Ａとｆｕｎｃ＿Ｄを、解析する関数の「組」としてファイル２０３２に指定しておけば、２つの関数が同時に選択され、以降の解析処理が２つの関数に対して実行される。
【００９９】
解析処理部１２４は、図８のフローチャートと同様の流れで解析処理を行うが、ここでは、ｆｕｎｃ＿Ａとｆｕｎｃ＿Ｄの２つの関数（即ち、指定した「組」）について、条件分岐文の数と条件変数を生成するに要した関数の数を計数する。
【０１００】
集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数と条件変数を生成するに要した関数の数を集計し、集計結果を生成する。図２１は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【０１０１】
上記のように、予め指定した関数の「組」に対して条件分岐文に関する解析処理を実行するため、例えば、互いに関連性の高い関数ｆｕｎｃ＿Ａとｆｕｎｃ＿Ｄとを別々の処理ユニットで処理する場合についての解析が予め排除され、従ってシステムＬＳＩの設計に係る適切な設計支援情報を取得できる。
【０１０２】
（実施の形態９）
本発明の実施の形態９におけるシステムＬＳＩ設計支援装置について、図１５、図１６、図２０及び図２２を参照しながら説明する。
【０１０３】
先の実施の形態と異なる点は、抽出された関数ごとにループ制御文の繰り返し回数を生成する過程を追跡するのではなく、複数の関数からなる関数の「組」について解析を行うことにある。また、図２０の解析処理部１２４において行う解析処理が、条件分岐文に係る処理ではなく、ループ制御文に係る処理であることにある。
【０１０４】
上記構成のシステムＬＳＩ設計支援装置の動作について説明する。尚、本実施の形態におけるプログラム１３２は、図１５で示す内容を含むプログラムとして説明する。
【０１０５】
まず、関数抽出部２１２２がプログラム１３２に記述されている関数を抽出し、次に、ファイル２０３２を参照する。このファイル２０３２には、プログラム１３２の中で関連性が高いと思われる複数の関数が「組」として、設計者により予め指定されている。例えば、図１５のプログラムのｆｕｎｃ＿ＬＡと、ｆｕｎｃ＿ＬＡで使用される変数ＡＩＮ１を生成するｆｕｎｃ＿ＬＤとは関連性が高いため、同一の処理ユニットで処理することが望ましい。このような場合には、ｆｕｎｃ＿ＬＡとｆｕｎｃ＿ＬＤを、解析する関数の「組」としてファイル２０３２に指定しておけば、２つの関数が同時に選択され、以降の解析処理が２つの関数に対して実行される。
【０１０６】
解析処理部１２４は、図１６のフローチャートと同様の流れで解析処理を行うが、ここでは、ｆｕｎｃ＿ＬＡとｆｕｎｃ＿ＬＤの２つの関数（即ち、指定した「組」）について、ループ制御文の数と繰り返し回数を生成するに要した関数の数を計数する。
【０１０７】
集計処理部１２６は、解析処理部１２４で得られたループ制御文の数と繰り返し回数を生成するに要した関数の数を集計し、集計結果を生成する。図２２は、集計処理結果例を概念的に表で示した模式図である。この集計結果情報１４２は、補助記憶装置１４０に格納される。
【０１０８】
上記のように、予め指定した関数の「組」に対してループ制御文に関する解析処理部１２４を実行するため、例えば、互いに関連性の高い関数ｆｕｎｃ＿ＬＡとｆｕｎｃ＿ＬＤとを別々の処理ユニットで処理する場合についての解析が予め排除され、従ってシステムＬＳＩの設計に係る適切な設計支援情報が取得できる。
【０１０９】
（実施の形態１０）
本発明の実施の形態１０におけるシステムＬＳＩ設計支援装置について、図２、図３、図４、図２３、図２４及び図２５を参照しながら説明する。
【０１１０】
先の実施の形態と異なる点は、処理ユニットを割り当てるための関数に係る条件を記述した情報に基づいて、関数毎に適切な処理ユニットを割り当てるためのマッピング処理部２３２８が、主記憶装置１２０の中に付加されていることにある。図２３は、本発明の実施の形態１０におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。補助記憶装置１３０には、プログラム１３２に加え処理ユニットを割り当てるための関数に係る条件を記述した情報（即ち、ライブラリ）２３３２が格納されている。図２４は、処理ユニットを割り当てるための条件分岐文に関する条件例を概念的に表で示した模式図である。
【０１１１】
上記構成のシステムＬＳＩ設計支援装置の動作について説明する。尚、本実施の形態におけるプログラム１３２は、図２で示す内容を含むプログラムとして説明する。
【０１１２】
まず、関数抽出部１２２は、プログラム１３２に記述されている関数を抽出する。次に、解析処理部１２４は、図３のフローチャートと同様の流れで、抽出された関数ごとに条件分岐文の数を計数する。さらに、集計処理部１２６は、解析処理部１２４で得られた条件分岐文の数を集計し、図４に示す集計結果を生成する。
【０１１３】
マッピング処理部２３２８は、得られた集計結果に基づいて、ライブラリ２３３２を参照して適切な処理ユニットを関数ごとに割り当てる。例えば、図４に示すようにｆｕｎｃ＿Ａは条件分岐文の数が３であり、ライブラリ２３３２（図２４）を参照すると、条件分岐文の数３が該当するのはＤＳＰとなる。つまり、ｆｕｎｃ＿ＡはＤＳＰで処理することが適切であるという設計支援情報が取得できる。図２５は、マッピング処理結果例を概念的に表で示した模式図である。このように、プログラム１３２で使用されている関数ごとに適切な処理ユニットが割り当てられる。このマッピング処理結果情報２３４２は、補助記憶装置１４０に格納される。
【０１１４】
上記のように、条件分岐文を処理する観点から、プログラム１３２に含まれる関数ごとに適切な処理ユニットを割り当てることにより、システムＬＳＩの設計に係る適切な設計支援情報が取得できる。
【０１１５】
（実施の形態１１）
本発明の実施の形態１１におけるシステムＬＳＩ設計支援装置について、図１０、図１１、図１２、図２３、図２６及び図２７を参照しながら説明する。
【０１１６】
先の実施の形態と異なる点は、処理ユニットを割り当てるための関数に係る条件を記述した情報に基づいて、関数ごとに適切な処理ユニットを割り当てるためのマッピング処理部２３２８が、主記憶装置１２０の中に付加されている点である。また、実施の形態１０と異なるのは、ライブラリ２３３２が、条件分岐文の数に関する条件ではなく、ループ制御文の数に関する条件であることにある。図２６は、処理ユニットを割り当てるためのループ制御文に関する条件例を概念的に表で示した模式図である。
【０１１７】
上記構成のシステムＬＳＩ設計支援装置の動作について説明する。尚、本実施の形態におけるプログラム１３２は、図１０で示す内容を含むプログラムとして説明する。
【０１１８】
まず、関数抽出部１２２は、プログラム１３２に記述されている関数を抽出する。次に、解析処理部１２４は、図１１のフローチャートと同様の流れで、抽出された関数ごとにループ制御文の数を計数する。さらに、集計処理部１２６は、解析処理部１２４で得られたループ制御文の数を集計し、図１２に示す集計結果を生成する。
【０１１９】
マッピング処理部２３２８は、得られた集計結果に基づいて、ライブラリ２３３２を参照して適切な処理ユニットを関数ごとに割り当てる。例えば、図１２に示すようにｆｕｎｃ＿Ｂはループ制御文の数が１０であり、ライブラリ２３３２（図２６）を参照すると、ループ制御文の数１０が該当するのはＤＳＰとなる。
つまり、ｆｕｎｃ＿ＢはＤＳＰで処理することが適切であるという設計支援情報が取得できる。図２７は、マッピング処理結果例を概念的に表で示した模式図である。このように、プログラム１３２で使用されている関数ごとに適切な処理ユニットが割り当てられる。このマッピング処理結果情報２３４２は、補助記憶装置１４０に格納される。
【０１２０】
上記のように、ループ制御文を処理する観点から、プログラム１３２に含まれる関数ごとに適切な処理ユニットを割り当てることにより、システムＬＳＩの設計に係る適切な設計支援情報が取得できる。
【０１２１】
（実施の形態１２）
本発明の実施の形態１２におけるシステムＬＳＩ設計支援装置について、図１８、図１９、図２３、図２８、図２９及び図３０を参照しながら説明する。
【０１２２】
先の実施の形態と異なる点は、図２３のライブラリ２３３２に、条件分岐文やループ制御文の数に関する条件だけではなく、条件分岐文やループ制御文のネスティング数、条件変数の生成に要する関数の数に関する条件までが含まれていることにある。図２８は、処理ユニットを割り当てるための条件例を概念的に表で示した模式図である。
【０１２３】
上記構成のシステムＬＳＩ設計支援装置の動作について説明する。尚、本実施の形態におけるプログラム１３２は、図２、図７、図１０、図１５に示す内容をすべて含むプログラムとして説明する。
【０１２４】
まず、関数抽出部１２２は、プログラム１３２に記述されている関数を抽出する。次に、解析処理部１２４は、図１８のフローチャートと同様の流れで、抽出された関数ごとに、条件分岐文の数及びループ制御文の数、条件分岐文のネスティング数及びループ制御文のネスティング数、条件分岐文の変数を生成するに要した関数の数及びループ制御文の変数を生成するに要した関数の数、をそれぞれ計数する。さらに、集計処理部１２６は、解析処理部１２４で得られた計数結果を集計し、図１９に示す集計結果を生成する。
【０１２５】
マッピング処理部２３２８は、得られた集計結果に基づいて、ライブラリ２３３２を参照して適切な処理ユニットを関数ごとに割り当てる。
【０１２６】
ところで、関数には条件分岐文やループ制御文が混在することがあり、そのような関数についての割り当てでは、異なる処理ユニットが適切であると判定される場合が生じる。例えば、ある関数内に条件分岐文が５あり、ネスティング数が１段の条件分岐文が１ある場合、好ましい処理ユニットはＤＳＰとなるが、同じ関数内にループ制御文が４ある場合、これに対して好ましい処理ユニットはＣＰＵとなる。
【０１２７】
そこで、本実施の形態では、処理ユニットを割り当てるための条件（図２８）の項目ごとに重み付き係数を付与し、最も点数の高い処理ユニットが最適な処理ユニットであると判定するようにしている。
【０１２８】
図２９は、処理ユニットを割り当てるための条件の項目と、重み付き係数の関係を概念的に表で示した模式図である。この情報もライブラリ２３３２に含まれる。以下、ｆｕｎｃ＿Ａについて、処理ユニットの判定の仕方について説明する。図２９中のＫは各項目に割り当てられた重み付き係数である。図２９に示されるように、ｆｕｎｃ＿Ａについては、図２９中の丸をつけた項目が該当する。該当する項目毎に重み付き係数を加算していくと、ＣＰＵは、条件分岐文のネスティング数について１＋２＝３、変数生成について１＋３＝４、ループ制御文のネスティング数について１＋１＝２、繰り返し回数の変数生成について１＋１＝２となり、ＣＰＵの係数は３＋４＋２＋２＝１１となる。ＤＳＰは、条件分岐文の数について６、条件分岐文のネスティング数について２＋２＝４、変数生成について２＋２＝４、ループ制御文の繰り返し回数の変数生成について１＋２＋３＝６となり、ＤＳＰの係数は６＋４＋４＋６＝２０となる。専用ロジックは、条件分岐文のネスティング数について１、ループ制御文の数について６、ネスティング数について２、繰り返し回数の変数生成について２となり、専用ロジックの係数は１＋６＋２＋２＝１１となる。
【０１２９】
従って、処理ユニットごとに係数を比較すると、ＣＰＵ＝１１、ＤＳＰ＝２０、専用ロジック＝１１、となり、ＤＳＰが最適な処理ユニットであると判定される。その他の関数についても、同様の方法で処理ユニットにマッピングすることが可能であり。図３０は、マッピング処理結果例を概念的に表で示した模式図である。
【０１３０】
このように、プログラム１３２で使用されている関数ごとに適切な処理ユニットが割り当てられる。このマッピング処理結果情報２３４２は、補助記憶装置１４０に格納される。
【０１３１】
上記のように、条件分岐文及びループ制御文の詳細な使用形態を基準として、プログラム１３２に含まれる関数ごとに適切な処理ユニットを割り当てることにより、システムＬＳＩの設計に係る適切な設計支援情報が取得できる。
【０１３２】
尚、上記の実施の形態において、補助記憶装置１３０内に格納するライブラリ２３３２の情報は、図２４、図２６、図２８に示した数値に限定されるものではなく、設計者が任意に設定してよい。また、数値が更新可能な構成としてもよい。
【０１３３】
また、上記の実施の形態において、条件分岐文としてＣ言語におけるｉｆ文を使用したが、これは他の条件分岐文、例えばｓｗｉｔｃｈ文等でもよい。同様に、ループ制御文としてＣ言語におけるｆｏｒ文を使用したが、これは他のループ制御文、例えばｗｈｉｌｅ文等でもよい。
【０１３４】
また、上記の実施の形態において、補助記憶装置１３０及び１４０を、コンピュータ１００の外部に配置して説明したが、内部に配置した構成としても構わない。さらに、補助記憶装置１３０内に格納する情報のうち、特にライブラリ２３３２だけをデータベースとして別途独立して格納し、電気通信回線を介して接続することにより、複数のコンピュータからライブラリ２３３２の情報へアクセスが可能な構成としてもかまわない。
【０１３５】
また、本発明のシステムＬＳＩ設計支援装置の機能を記述したプログラムは、上記実施の形態の記述例に限定されるものではないことは言うまでもない。
【０１３６】
【発明の効果】
以上説明したように、本発明によれば、システムの機能の一部あるいは全部をＣ言語等の高級言語で記述したプログラムに含まれる関数毎に、条件分岐命令の数やループ制御命令の数を計数し、集計することで、システムＬＳＩに内蔵される処理ユニットにシステムが持つ機能を適切に割り当てるための設計支援情報を得ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。
【図２】実施の形態１において補助記憶装置に格納されるプログラムの記述例である。
【図３】実施の形態１における関数内部の解析処理の流れを示すフローチャートである。
【図４】集計処理結果例を概念的に表で示した模式図である。
【図５】実施の形態２における関数内部の解析処理の流れを示すフローチャートである。
【図６】集計処理結果例を概念的に表で示した模式図である。
【図７】実施の形態３において補助記憶装置に格納されるプログラムの記述例である。
【図８】実施の形態３における関数内部の解析処理の流れを示すフローチャートである。
【図９】集計処理結果例を概念的に表で示した模式図である。
【図１０】実施の形態４において補助記憶装置に格納されるプログラムの記述例である。
【図１１】実施の形態４における関数内部の解析処理の流れを示すフローチャートである。
【図１２】集計処理結果例を概念的に表で示した模式図である。
【図１３】実施の形態５における関数内部の解析処理の流れを示すフローチャートである。
【図１４】集計処理結果例を概念的に表で示した模式図である。
【図１５】実施の形態６において補助記憶装置に格納されるプログラムの記述例である。
【図１６】実施の形態６における関数内部の解析処理の流れを示すフローチャートである。
【図１７】集計処理結果例を概念的に表で示した模式図である。
【図１８】実施の形態７における関数内部の解析処理の流れを示すフローチャートである。
【図１９】集計処理結果例を概念的に表で示した模式図である。
【図２０】本発明の実施の形態８におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。
【図２１】集計処理結果例を概念的に表で示した模式図である。
【図２２】集計処理結果例を概念的に表で示した模式図である。
【図２３】本発明の実施の形態１０におけるシステムＬＳＩ設計支援装置の構成を示すブロック図である。
【図２４】処理ユニットを割り当てるための条件分岐文に関する条件例を概念的に表で示した模式図である。
【図２５】マッピング処理結果例を概念的に表で示した模式図である。
【図２６】処理ユニットを割り当てるためのループ制御文に関する条件例を概念的に表で示した模式図である。
【図２７】マッピング処理結果例を概念的に表で示した模式図である。
【図２８】処理ユニットを割り当てるための条件例を概念的に表で示した模式図である。
【図２９】処理ユニットを割り当てるための条件の項目と、重み付き係数の関係を概念的に表で示した模式図である。
【図３０】マッピング処理結果例を概念的に表で示した模式図である。
【符号の説明】
１００  コンピュータ
１１０  プロセッサ
１２０  主記憶装置
１２２  関数抽出部
１２４  解析処理部
１２６  集計処理部
１３０  補助記憶装置
１４０  補助記憶装置
１３２  プログラム
１４２  集計結果情報
２０３２  ファイル
２１２２  関数抽出部
２３２８  マッピング処理部
２３３２  ライブラリ
２３４２  マッピング処理結果情報
【図１】
2004259135.tif 000003
【図２】
2004259135.tif 000004
【図３】
2004259135.tif 000005
【図４】
2004259135.tif 000006
【図５】
2004259135.tif 000007
【図６】
2004259135.tif 000008
【図７】
2004259135.tif 000009
【図８】
2004259135.tif 000010
【図９】
2004259135.tif 000011
【図１０】
2004259135.tif 000012
【図１１】
2004259135.tif 000013
【図１２】
2004259135.tif 000014
【図１３】
2004259135.tif 000015
【図１４】
2004259135.tif 000016
【図１５】
2004259135.tif 000017
【図１６】
2004259135.tif 000018
【図１７】
2004259135.tif 000019
【図１８】
2004259135.tif 000020
【図１９】
2004259135.tif 000021
【図２０】
2004259135.tif 000022
【図２１】
2004259135.tif 000023
【図２２】
2004259135.tif 000024
【図２３】
2004259135.tif 000025
【図２４】
2004259135.tif 000026
【図２５】
2004259135.tif 000027
【図２６】
2004259135.tif 000028
【図２７】
2004259135.tif 000029
【図２８】
2004259135.tif 000030
【図２９】
2004259135.tif 000031
【図３０】
2004259135.tif 000032