(57)【要約】【課題】  大規模なデータ処理装置の設計においてハードウェア／ソフトウェア機能分割及びプロセッサ／テクノロジ選定を並行して効率的に実施可能な構成を提供することを目的とする。【解決手段】  予め演算毎、プロセッサ毎に所要実行時間を算出し、更に演算毎、テクノロジ毎に所要回路規模を算出しておき、所望のプログラムを構成する演算毎に、該当するプロセッサの上記所要実行時間、或いは該当するテクノロジの所要回路規模を当てはめることで装置全体についての所要実行時間、及び所要回路規模を算出する構成である。【選択図】  図１
2005242569.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する段階と、
所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する段階とよりなるデータ処理装置設計方法。
【請求項２】
複数の演算よりなる所望のプログラムを、所定のプロセッサで実行させる部分と、所定のテクノロジでハードウェア化する部分とに分割してデータ処理装置として実現するための設計を行なうデータ処理装置設計方法であって、
予め所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出しておき、
予め所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出しておき、
所望のプログラム中の各サブプログラムを構成する演算毎に、予め算出しておいた該当するプロセッサに関する上記所定の演算毎の所要実行時間を順次当てはめることで、所望のプログラム中の各サブプログラムを該当するプロセッサで実行させた際に要する合計実行時間を算出し、
所望のプログラム中の各サブプログラムを構成する演算毎に、予め算出しておいた該当するテクノロジに関する上記所定の演算毎の所要回路規模を順次当てはめることで、所望のプログラム中の各サブプログラムを該当するテクノロジでハードウェア化した際に要される合計回路規模を算出することにより、所定の所要実行時間及び所定の所要回路規模よりなる所定の回路設計条件を満たすように、所定のプロセッサで実行させるサブプログラムと所定のテクノロジでハードウェア化するサブプログラムとに分割して所望のプログラムをデータ処理装置として実現する設計を行なう方法。
【請求項３】
前記段階にて算出された所望のプログラムを所定のプロセッサで実行させた際に要する実行時間に対応する処理経路にて当該所望のプログラムが実行されるようにプログラムを編集し、編集後のプログラムを使用することで当該プログラムの実行をシミュレーションし、或いは前記段階にて算出された所望のプログラムを所定のプロセッサで実行させた際に要する実行時間に対応する処理経路にて当該所望のプログラムが実行されるようなテストデータを作成し、当該テストデータを使用することで当該プログラムをムの実行をシミュレーションする段階よりなる請求項１又は２に記載の方法。
【請求項４】
プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する手段と、
所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する手段とよりなるデータ処理装置設計装置。
【請求項５】
プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する手段と、
所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する手段としてコンピュータを動作させるための命令よりなるデータ処理装置設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置設計方法、データ処理装置設計装置及びプログラムに係り、特に所望のプログラムをデータ処理装置として実現するための設計を行なうためのデータ処理装置設計方法、データ処理装置設計装置及びプログラムに関する。
【背景技術】
【０００２】
一般に所望の機能を実現するためのデータ処理装置を設計する場合、先ず当該機能を実現するためのプログラムを作成し、これを現実のデータ処理装置として実現するための回路設計を行なう。この場合、当該プログラムを全てソフトウェアの形で所定のプロセッサで実行させることによりデータ処理装置として実現することが可能である。他方、逆に当該プログラムの処理機能を全て所定のテクノロジでハードウェア化することで実現することも又可能である。この両者を比較した場合、後者のハードウェア化する場合には実行時間を短縮可能であり、他方、前者のソフトウェアの形でプロセッサにて実行させる場合には実行時間は比較的長くかかるが最終的なデータ処理装置の製品を構成するハードウェアの回路規模を縮小可能である。このため、両者のトレードオフを考慮しながら適宜両者を複合してデータ処理装置を設計することが一般的に行なわれている。そのためには、所望のプログラムの所要実行時間及び当該プログラムの処理機能をハードウェア化した場合の所要回路規模を算出し、これらを基に、システムの処理機能を如何にソフトウェアとハードウェアとに分割するかについて検討することが行なわれる。即ち、システム全体の処理機能（仕様）を、プロセッサで実行されるプログラムとしてソフトウェア化する部分と、ＡＳＩＣなどによってハードウェア化する部分とに分割する（以下、「ソフトウェア／ハードウェア機能分割」と称する）ための検討を行なう。
【０００３】
又、携帯電話器などで幅広く利用されるシステムは、一般にソフトウェアとハードウェアとから構成される組込システムであり、プロセッサ、メモリ、ＡＳＩＣなどから構成されている。このような組込システムの設計では、どのプロセッサを使うか、ハードウェアとしてどのテクノロジを採用するかについて選定を行なう必要がある（以下、「プロセッサ／テクノロジ選定」と称する）。
【０００４】
このプロセッサ／テクノロジ選定の際には、一般にプロセッサで実行されるプログラムとしてソフトウェア化する部分についての所要実行時間と、ＡＳＩＣなどによってハードウェア化する部分についての所要回路規模などを規制する設計制約が存在し、この設計制約を満足するようなプロセッサ／テクノロジ選定を行なう必要がある。又、この場合、所要開発期間や開発コストなどを総合的に判断してプロセッサ／テクノロジ選定を行なう必要がある。従来は、一般に卓越した技能を有する専門家の経験と勘に頼ってプロセッサ／テクノロジを選定し、その後、所望の設計制約を満足するようにシステム全体の処理機能をソフトウェア／ハードウェア機能分割することが行なわれていた。
【０００５】
このソフトウェア／ハードウェア機能分割の際には、設計者が予め与えられた設計制約（プロセッサで実行されるプログラムとしてソフトウェア化する部分についての所要実行時間と、ＡＳＩＣなどによってハードウェア化する部分についての所要回路規模など）を満足するようにシステムの処理機能を分割する必要がある。プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間の算出は、従来技術として、特許文献１に提案されているように、複数の命令から構成されるプログラムの構造を解析して処理経路を判定し、判定された処理経路毎にプログラムの実行内容を解析して当該処理経路毎の実行時間を自動算出する装置を利用する方法がある。又、従来、ＡＳＩＣなどによってハードウェア化する部分の所要回路規模に関し、ＡＳＩＣなどによってハードウェア化する部分がＣ言語のプログラムであるような場合には、プログラムからハードウェアを生成するソフトウェア（一般には動作合成ツールと呼ばれている）を用いて実際にハードウェアを生成して算出していた。
【０００６】
また、プロセッサ／テクノロジ選定、ソフトウェア／ハードウェア機能分割が決定した後、ソフトウェア化する部分については、一般にはターゲットとするプロセッサの命令セットシミュレータなどでシミュレーションを行い、より精度良く所要実行時間を算出し、必要に応じてプログラムをチューニングしていく作業を行なっていた。ここで、このシミュレーションによってプログラムの所要実行時間を算出するためには、実行時間が最大になるようなテストデータの作成が必要となる。この場合も、従来は、専門家の経験と勘に頼って実行時間が最大になるような処理経路を特定し、その処理経路を通るようにテストデータを作成していた。
【特許文献１】特開平４−１９９４３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本来効率的なデータ処理装置の設計を目指す場合、上記プロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とは並行して行われなければならない。しかしながら従来は、まず専門家の経験と勘に頼ってプロセッサ／テクノロジ選定を行い、その後、所定の設計制約を満足するようにシステム全体の処理機能をソフトウェア／ハードウェア機能分割する手法を採っていた。ところが、例えば近年の携帯電話器向けシステムは大規模・複雑化の一途をたどっており、専門家であっても適切なプロセッサやテクノロジを選定することが困難になってきている。特に所定の設計制約を満足する解がなかった場合には再度プロセッサ／テクノロジ選定からやり直さなければならず、開発期間が長期化し、開発コストも増大するといった問題があった。
【０００８】
特許文献１に提案されている装置は、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間の算出にあたり、「複数の命令から構成されるプログラム」の入力を要する。この「複数の命令から構成されるプログラム」はプロセッサに特化しているため、同じ処理機能であっても他のプロセッサでの実行時間を算出するためにはそのプロセッサに特化したプログラムに修正する必要がある。このため異なるプロセッサでの所要実行時間比較が迅速に行えないことが考えられ、プロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とを並行して行なうことが困難と考えられる。
【０００９】
又、ＡＳＩＣなどによってハードウェア化する部分の回路規模算出に用いる動作合成ツールは実際のハードウェアを生成するツールであるため、一般に使用にあたっての制約が多い。その制約の１つとして、動作合成ツールに特化した記述にプログラムを修正しなければならない点が挙げられる。即ち、一般にＣ言語の仕様そのままではハードウェアの動作は記述できず、このためＣ言語でもハードウェアの動作を記述できるように機能追加したＳｙｓｔｅｍＣなどの言語で記述する必要がある。その結果、多数のプログラムを含む回路設計の場合その都度適用するツールに特化した記述に修正することが必要となり、迅速に回路規模を算出することができない。又、異なるテクノロジでの回路規模比較も迅速に行えない。このため、プロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割を並行して行うことが困難となることが考えられる。
【００１０】
又、上記の如くシミュレーションによってプログラムの所要実行時間を算出するためには、所要実行時間が最大になるようなテストデータが必要であるが、前記の如く近年の携帯電話器のようなシステムは大規模・複雑化の一途をたどっており、そこで必要とされるプログラムも大規模・複雑化している。このため所要実行時間が最大になるような処理経路の特定が困難であったり、特定できたとしてもそのために膨大な時間を要すことから、所要実行時間が最大になるような質の良いテストデータを迅速に作成するのが困難になってきている。そのため、シミュレーションによる実行時間の算出が迅速にできないといった問題があった。
【課題を解決するための手段】
【００１１】
本発明は上記問題点に鑑みてなされたものであり、予め所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出しておき、或いは、予め所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出しておき、所望のプログラムを構成する演算毎に上記予め算出しておいた該当するプロセッサに関する上記所定の演算毎の所要実行時間を順次当てはめることで所望のプログラムを該当するプロセッサで実行させた際に要する実行時間を算出し、或いは所望のプログラムを構成する演算毎に上記予め算出しておいた該当するテクノロジに関する上記所定の演算毎の所要回路規模を順次当てはめることで所望のプログラムを該当するテクノロジでハードウェア化した際に要される回路規模を算出する構成を有する。
【００１２】
このように演算毎に所定のプロセッサで実行させた場合の所要実行時間を算出し、又所定のテクノロジでハードウェア化した場合の所要回路規模を算出しておき、このデータを利用して実際の所望のプログラムを構成する演算毎に上記算出済みの該当するプロセッサによる所要実行時間或いは該当するテクノロジによる回路規模を順次当てはめることで容易にプログラム全体の所要実行時間或いは所要回路規模を算出可能である。又、この構成を利用することで、プログラムを構成するサブプログラム毎にソフトウェアの状態でプロセッサに実行させる場合とハードウェア化する場合とに分割し、或いは上記ソフトウェア／ハードウェア機能分割を行った場合に最終的にプログラム全体に対する所要実行時間及び所要回路規模を容易に算出可能となる。
【００１３】
又同様に、上記の如く予め各演算毎、プロセッサ毎に所要実行時間を算出しておき、又演算毎、テクノロジ毎に所要回路規模を算出しておくことにより、異なるプロセッサを適用した場合、或いは異なるテクノロジを適用した場合との所要実行時間、所要回路規模の比較も容易に実施可能となる。その結果、プロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とを並行に実施することが可能となり、精度良く、迅速に、適切なプロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とを実施可能となる。
【００１４】
尚、特に所定のテクノロジにてハードウェア化した場合の回路規模を算出する際、各演算毎にその出力に相当する変数の内容も加味して回路規模を算出する手法を採ることにより、更に正確に所要回路規模を算出することが可能となる。
【００１５】
又、上記予め行なう各演算毎の所要実行時間の算出の際、最大所要実行時間となる処理経路を判定する動作を行なうことが望ましく、その際の判定結果を利用することにより、入力プログラムを編集して最大所要時間を要する処理経路で実行されるようなプログラムを生成可能である。この編集後のプログラムを利用することで容易にシミュレーションによる所要実行時間の算出が可能となる。又上記判定結果を利用することで、容易に最大所要実行時間となる処理経路にてプログラムが実行されるようなテストデータ（入力データ）を生成することも又可能であり、そのようなテストデータを利用してプログラムのシミュレーションによる所要実行時間の算出を行なうことも可能となる。
【発明の効果】
【００１６】
このように本発明によれば所望のプログラムにつき、精度良く、迅速に、適切なプロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とを実施可能となるため、大規模なデータ処理装置の設計を効率的に実施可能となる。
【発明を実施するための最良の形態】
【００１７】
本発明の実施例では、（１）プロセッサで実行されるプログラムとしてソフトウェア化する部分の実行時間の算出の際、「複数の命令から構成されるプログラム」としてではなく「複数の条件文や代入文などの演算から構成されるプログラム」としてプログラムを入力するものとし、他方予め「プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間とよりなるデータ」を複数種類用意しておく。その結果、適用するプロセッサに特化した形式にプログラムを修正することなく、複数の異なるプロセッサの夫々を適用した場合についての所要実行時間の比較が迅速に行えるようになる。
【００１８】
又、本発明の実施例では、（２）プログラム中の、ＡＳＩＣなどによってハードウェア化する部分の回路規模算出を、「プログラムの条件文や代入文などに現れる各種演算及び出力に相当する変数に対する、その演算および出力に相当する変数をハードウェア化した場合の回路規模のデータ」を複数種類用意しておく。その結果、適用する動作合成ツールに特化した記述にプログラムを修正することなく、回路規模算出が迅速に行えるようになる。これによって複数の異なるテクノロジでの回路規模比較も迅速に行えるようになる。
【００１９】
そして、更に、上記（１）「プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間とのデータ」を複数種類用意し、且つ上記（２）「プログラムの条件文や代入文などに現れる各種演算及び出力に相当する変数に対する、その演算および出力に相当する変数をハードウェア化した場合の回路規模のデータ」を複数種類用意しておくことにより、上記組込システム設計におけるプロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とが並行に行えるようになる。
【００２０】
又入力プログラムを、上記（１）の実行時間算出の際に特定した実行時間が最大になる処理経路と実行時間とが同じになるように編集し、この編集後のプログラムをシミュレーションするだけで実行時間を算出できるようになる。その結果、特にテストデータを作る必要がないため、シミュレーションによる実行時間の算出が迅速にできる。
【００２１】
或いは上記（１）の実行時間算出の際に特定した実行時間が最大になる処理経路を通る入力データを自動生成することでテストデータが作成でき、このテストデータを利用してシミュレーションによる実行時間の算出が迅速にできるようになる。この場合、上記の場合のように所定の処理経路となるように編集したプログラムではなく編集前のオリジナルのプログラムでシミュレーションするため、より精度良く実行時間が算出できるようになる。
【００２２】
以下、本発明の実施例につき、詳細に説明する。
【００２３】
図１に本発明の一実施例によるデータ処理装置設計装置の要部のブロック図を示す。この装置の要部（ソフト／ハード性能評価部１０１）は、設計対象のシステムの処理機能を例えばＣ言語などのプログラムなどで設計者が記述したものが入力されると、これらの処理機能をプロセッサで実行されるプログラムとしてソフトウェア化した場合の所要実行時間と、ＡＳＩＣなどによってハードウェア化した場合の所要回路規模とを自動算出する機能を有する。
【００２４】
図中、構造解析部１０３では、ユーザが作成し、キーボードなどの入力装置（図示せず）から入力した評価対象のプログラム１０２を入力として、その構造を解析する。プロセッサ選択部１０４では、あらかじめ登録されているプロセッサから、今回ターゲットとするプロセッサを、ユーザがマウスなどの入力装置（図示せず）の操作により選択する。パス抽出部１０５では、構造解析部１０３での構造解析結果と、プロセッサ選択部１０４での選択結果とを入力とし、所要実行時間が最大になるパス（処理経路：以下、「所要実行時間最大パス」と称する）を抽出し、その結果（実行時間１１０）をディスプレイなどの出力装置（図示せず）に表示出力する。
【００２５】
プログラム編集部１０６では、パス抽出部１０５で抽出された所要実行時間最大パスを通過し、もってその所要実行時間を要することになるよう前記プログラムを編集し、その結果（編集後のプログラム１１１）をディスプレイなどの出力装置（図示せず）に表示出力する。
【００２６】
テストデータ生成部１０７では、プログラムの実行がパス抽出部１０５で抽出した所要実行時間最大パスを通過するようになされるための入力データを自動生成し、その結果（自動生成したテスト用データ１１２）をディスプレイなどの出力装置（図示せず）に表示出力する。
【００２７】
テクノロジ選択部１０８では、あらかじめ登録されているハードウェアのテクノロジから、この場合にターゲットとするテクノロジを、ユーザがマウスなどの入力装置（図示せず）を使って選択入力する。回路規模算出部１０９では、構造解析部１０３での構造解析結果と、テクノロジ選択部１０８でのテクノロジ選択結果とを入力として所要回路規模を算出し、その結果（回路規模１１３）をディスプレイなどの出力装置（図示せず）に表示出力する。
【００２８】
図２は、上記本発明の一実施例によるデータ処理装置設計装置の全体のブロック図を示す。この装置９０１は、設計対象のシステムの処理機能を、例えばＣ言語などのプログラムなどで設計者が記述した際に、これらの処理機能をソフトウェアとハードウェアに機能分割する設計作業を支援する機能を有する装置である。
【００２９】
図中評価単位決定部９０３では、ユーザが作成し、キーボードなどの入力装置（図示せず）から入力した評価対象のプログラム９０２を入力として、その構造を解析する。そして、その解析結果からユーザが判断し、ソフト／ハード性能評価部９０４への入力となるプログラムの単位（評価単位：サブプログラム等）を決定する。ソフト／ハード性能評価部９０４は図１に示すソフト／ハード性能評価部１０１に相当し、評価単位決定部９０３で決定したプログラムの指定単位毎にソフトウェア／ハードウェアの性能評価を行う。
【００３０】
制約入力部９０５では、上記設計対象のシステムにつき、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間に対する制約と、ＡＳＩＣなどによってハードウェア化する部分の所要回路規模に対する制約とを、ユーザがキーボードなどの入力装置（図示せず）を使って入力する。分割案算出部９０６では、ソフト／ハード性能評価部９０４での性能評価結果を集計し、制約入力部９０５で与えられた制約を満足するソフトウェア／ハードウェア機能分割案を抽出し、その結果（ソフト／ハード分割案９０７）をディスプレイなどの出力装置（図示せず）に表示出力する。
【００３１】
次に、図７と共に、この装置の動作の詳細について説明する。図３に評価対象のプログラム１０２の例を示す。又、図４に、図３のプログラムをフローチャートで表現したものを示す。
【００３２】
上記構造解析部１０３では、ユーザが作成し、キーボードなどの入力装置（図示せず）から入力した評価対象のプログラム１０２を入力とし（ステップ６０１）、その構造を解析する。ここでは所要実行時間を算出するため及び所要回路規模を算出するための２通りの解析が行われる。所要実行時間を算出するための構造解析は、下記（１）、（２）、（３）の３ステップに分けて行われる。
【００３３】
（１）処理経路解析ステップ６０２
この処理経路解析ステップ６０２では、評価対象プログラムの入力後、入力プログラムにおけるｉｆ文やｓｗｉｔｃｈ文などの条件文による分岐によってどのような処理経路（プログラムの流れ）が発生するかにつき解析する。
【００３４】
図４のプログラムの例では、以下の各ステップを経る処理経路が発生しえることとなる。
開始→３０１→３０２→３０３→３０８→３０９→終了
開始→３０１→３０２→３０３→３０８→３１０→終了
開始→３０１→３０４→３０５→３０６→３０７→３０８→３０９→終了
開始→３０１→３０４→３０５→３０６→３０７→３０８→３１０→終了
開始→３０１→３０４→３０５→３０６→３０８→３０９→終了
開始→３０１→３０４→３０５→３０６→３０８→３１０→終了
（２）分岐条件解析ステップ６０３
この分岐条件解析ステップ６０３では、入力プログラムにおけるｉｆ文やｓｗｉｔｃｈ文などの条件文の内容（即ち、どの変数がどのような値の時に条件が真になるか、または偽になるか）につき解析する。
【００３５】
図４の例では、ステップ３０１は、変数ａが０の時、条件が真となる。又、ステップ３０６は、変数ｃが９以上の時に条件が真となる。又、ステップ３０８は、変数ｂが０の時に条件が真となる。
【００３６】
（３）実行可・不可判断ステップ
実行可・不可判断ステップでは、上記処理経路解析と分岐条件解析との結果から、一旦抽出された処理経路が実行可能であるかどうかを判断する。この判断は、以下の（１）、（２）、（３）の手順で行われる。
【００３７】
（１）代入演算整理ステップ６０４
ある処理経路上において、どの変数に対してどのような代入演算が行われているかを整理する。例えば図４の例における上記「開始→３０１→３０２→３０３→３０８→３０９→終了」の処理経路上では、「変数ｂに０を代入し、変数ｃに０を代入し、変数ｄに変数ｅと変数ｆの足し算結果を代入する」との整理結果が得られる。
【００３８】
（２）依存関係整理、実行可・不可判断ステップ６０５
当該処理系路上における分岐条件（上記分岐条件解析の結果）と、（１）での整理結果との依存関係を整理し、当該処理経路が実行可能であるかどうかを判断する。
【００３９】
例えば図４の例中の上記「開始→３０１→３０２→３０３→３０８→３１０→終了」の処理経路上における分岐条件はステップ３０１及び３０８の２つ存在し、このうち、ステップ３０１の条件は（１）での整理結果から、依存する代入が処理経路上に存在しない。よって３０１の条件は真（３０１→３０２）に分岐可能との判断がなされる。他方ステップ３０８の条件は「変数ｂに０を代入（（１）での整理結果）」した後に判断され（依存関係の整理の結果）、且つ上記経路上の「３０８→３１０」の条件（即ちｂ＝０以外）を満足しない。よって３０８の条件は偽の経路（３０８→３１０）に分岐不可と判断される。従って当該経路は実行不可であるとの判断がなされる（実行不可判断）。
【００４０】
（３）上記（１）、（２）の処理を、上記処理経路解析の結果の全処理経路について行う（ステップ６０６）。
【００４１】
図４の例では、
開始→３０１→３０２→３０３→３０８→３０９→終了：実行可能
開始→３０１→３０２→３０３→３０８→３１０→終了：実行不可
開始→３０１→３０４→３０５→３０６→３０７→３０８→３０９→終了：実行不可
開始→３０１→３０４→３０５→３０６→３０７→３０８→３１０→終了：実行可能
開始→３０１→３０４→３０５→３０６→３０８→３０９→終了：実行不可
開始→３０１→３０４→３０５→３０６→３０８→３１０→終了：実行可能
との判断となる。
【００４２】
プロセッサ選択部１０４では、上記の如く、あらかじめ登録されている複数のプロセッサからターゲットとするプロセッサを、ユーザがマウスなどの入力装置（図示せず）を使って選択する（プロセッサ選択ステップ６０７）。なお、予め各プロセッサについて、プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間との対応関係が登録されている。図５にこのようなプロセッサ毎の登録データの一例を示す。
【００４３】
ここで所望のプロセッサが未だ登録されていない場合には、ユーザにて、既に登録されているプロセッサデータを基に編集して登録可能であり、或いはユーザが新規に作成して登録してもよい。
【００４４】
パス抽出部１０５では、構造解析部１０３での結果とプロセッサ選択部１０４での結果とを入力として所要実行時間が最大になるパスを抽出する。最大パスの抽出は、下記（１）、（２）、（３）の手順で行われる。
【００４５】
（１）演算とプロセッサの関連付け、実行時間算出ステップ６０８
上記の如く構造解析部１０３で求めた、各実行可能な処理経路につき、同じく構造解析部１０３で求めた当該処理経路上の条件文や代入文などに現れる演算に対し、プロセッサ選択部１０４で選択したプロセッサの該当する演算を実行するのに要する実行時間を当てはめ、処理経路上の夫々の演算に対して登録された該当する所要実行時間を割り当てることで当該処理経路の合計所要実行時間を集計算出する。
【００４６】
例えばプロセッサ選択部１０４で、図５（ａ）に示すＡ社製プロセッサＡ１を選択した場合、図４の例中の「開始→３０１→３０２→３０３→３０８→３０９→終了」の処理経路上の合計所要実行時間は、
ステップ３０１（「所定の整数か否かの判断」：ｉｎｔ＝＝ｃｏｎｓｔ）：3サイクル
ステップ３０２（「所定の整数の代入」：ｉｎｔ＝ｃｏｎｓｔ）：1サイクル
ステップ３０３（「所定の整数の代入」：ｉｎｔ＝ｃｏｎｓｔ）：1サイクル
ステップ３０８（「所定の整数か否かの判断」：ｉｎｔ＝＝ｃｏｎｓｔ）：3サイクル
ステップ３０９（「所定の整数の和の代入」：ｉｎｔ＝ｉｎｔ＋ｉｎｔ）：2サイクル
となり、その結果、当該経路を通る処理に対する合計所要実行時間は、３＋１＋１＋３＋２＝１０サイクルとなる。
【００４７】
（２）上記（１）の処理を上記構造解析部１０３で求めた実行可能な処理経路の全てについて行う（ステップ６０９）。
【００４８】
例えばプロセッサ選択部１０４でＡ社製プロセッサＡ１を選択した場合を想定すると、図４の例では
開始→３０１→３０２→３０３→３０８→３０９→終了：１０サイクル
開始→３０１→３０４→３０５→３０６→３０７→３０８→３１０→終了：１８サイクル
開始→３０１→３０４→３０５→３０６→３０８→３１０→終了：１７サイクル
との算出結果が得られる。
【００４９】
（３）上記（１）、（２）の処理を経て求まった全ての実行可能な処理経路の所要実行時間から、所要実行時間が最大となる処理経路（所要実行時間最大パス）を抽出する（ステップ６１０）。例えば上記同様にプロセッサ選択部１０４でＡ社製プロセッサＡ１を選択した場合、図４の例では、所要実行時間最大パスは「開始→３０１→３０４→３０５→３０６→３０７→３０８→３１０→終了」のパスであることが求められ、更にこの場合の所要実行時間は１８サイクルであることが求まる。
【００５０】
このようにしてパス抽出部１０５で抽出された所要実行時間最大パスの所要実行時間（実行時間１１０）は、ディスプレイなどの出力装置（図示せず）に表示出力される（ステップ６１１）。
【００５１】
次にプログラム編集部１０６では、このようにパス抽出部１０５で抽出された所要実行時間最大パスの所要実行時間となるように、入力プログラムを編集する。このプログラムの編集は、下記（１）、（２）、（３）の手順で行われる。
【００５２】
（１）条件文、代入文削除ステップ６１２
パス抽出部１０５で抽出した所要実行時間最大パス以外のパスに現れる条件文と代入文とを削除する。例えば図４の例で、所要実行時間最大パスが「開始→３０１→３０２→３０３→３０８→３０９→終了」のパスであったとした場合、この処理で削除される条件文はステップ３０６（図３の１１行目）であり、この処理で削除される代入文はステップ３０４、３０５、３０７、３１０（それぞれ図３の８、９、１２、２０行目）である。
【００５３】
（２）代入文移動ステップ６１３
パス抽出部１０５で抽出した所要実行時間最大パスに現れる全ての代入文につき、その代入文を実行するのに条件がある場合、その条件に依存しないで実行されるよう、これを該当する条件文の外に移動する。その際、条件文や代入文などの実行順序は崩さない。
【００５４】
例えば図４の例で所要実行時間最大パスが「開始→３０１→３０２→３０３→３０８→３０９→終了」のパスであったとした場合、所要実行時間最大パスに現れる代入文はステップ３０２、３０３、３０９（それぞれ図３の４、５、１７行目）であり、このうちステップ３０２、３０３はいずれも条件３０１に依存している（即ち、ステップ３０１が真の時にのみ実行される）ため、これらのステップが条件ステップ３０１に依存しないで実行されるよう、当該条件文の外に移動する（即ち、条件文が真の時にのみ実行される範囲から外し、当該条件文の結果に依らず実行されるようにする：図６の６、７行目参照）。又、ステップ３０９は条件ステップ３０８に依存している（ステップ３０８が真の時にのみ実行される）ため、条件ステップ３０８に依存しないで実行されるよう、条件文の外に移動する（図６の１２行目参照）。
【００５５】
（３）実行時間０サイクル文挿入ステップ６１４
パス抽出部１０５で抽出した所要実行時間最大パスに現れる全ての条件文に、実行時間が０サイクルの文を挿入する。これは、上記代入文移動ステップにて各条件文から代入文が外されたことに対して負荷を変えないようにするためのダミーの文の挿入である。即ち、図４の例で、所要実行時間最大パスが「開始→３０１→３０２→３０３→３０８→３０９→終了」のパスであったとした場合、所要実行時間最大パスに現れる条件文はステップ３０１、３０８（それぞれ図３の３、１６行目）であり、これらステップ３０１、３０８のそれぞれにインラインアセンブラのコメント（実行時間０サイクル）を挿入する（それぞれ図６の４、１０行目参照）。
【００５６】
このようにプログラム編集部１０６で編集されたプログラム（編集後のプログラム１１１）はディスプレイなどの出力装置（図示せず）に表示出力される（６１５）。
【００５７】
次にテストデータ生成部１０７では、プログラムの実行がパス抽出部１０５で抽出した所要実行時間最大パスを通るための入力データを自動生成する。このテストデータは、所要実行時間最大パス上の全ての条件文につき、構造解析部１０３で整理した分岐条件と代入演算との依存関係を解析し、その条件文が最大パス側に分岐するように生成する（ステップ６１６）。
【００５８】
例えば図４の例で所要実行時間最大パスが「開始→３０１→３０４→３０５→３０６→３０７→３０８→３１０→終了」のパスだとした場合、上記構造解析部での整理結果として、
条件ステップ３０１が依存する代入文：無し
条件ステップ３０６が依存する代入文：３０５
条件ステップ３０８が依存する代入文：３０４
ガ得られ、それぞれの条件文につき、所要実行時間最大パスへ分岐させるための入力データは
条件ステップ３０１：ａ＝１
条件ステップ３０６：ｃ＝８
条件ステップ３０８：ｂ＝（なんでも良い）
となる。ここでステップＳ３０５にて変数ｃがインクリメントされるため、上記ｃ＝８がインクリメントされて９となり、ステップ３０６（ｃが９以上か？）が真となってステップ３０７へ分岐し、ステップ３０８では、元々ｂが０であってもステップ３０４にて１が代入されて１となり、ステップＳ３０８（ｂは０か？）は偽となるためステップ３１０へと分岐することになる。
【００５９】
このようにテストデータ生成部１０７で生成したテストデータ（自動生成したテスト用データ１１２）はディスプレイなどの出力装置（図示せず）に表示出力される（ステップ６１７）。
【００６０】
次に、ハードウェアの回路規模を算出するための構造解析は、下記（１）、（２）の２ステップに分けて行う。
【００６１】
（１）演算の整理８０２
図９にて、評価対象プログラムの入力ステップ８０１実行後、入力プログラムに出現する演算と、その演算の型、その演算の出現回数とを整理する。図４の例では、
ｉｎｔ型の変数と定数が等しいかどうかの比較（ステップ３０１、３０８）
ｉｎｔ型の変数への定数の代入（ステップ３０２、３０３、３０４、３０７）
ｉｎｔ型の変数に１足す（ステップ３０５）
ｉｎｔ型の変数と定数との大小比較（ステップ３０６）
ｉｎｔ型の変数とｉｎｔ型との変数の足し算結果をｉｎｔ型の変数へ代入（ステップ３０９）
ｉｎｔ型の変数とｉｎｔ型との変数の掛け算結果をｉｎｔ型の変数へ代入（ステップ３１０）
との整理結果が得られる。
【００６２】
（２）出力の整理ステップ８０３
入力プログラムにおいて、出力に相当する変数の型とその数とを纏める。
【００６３】
図４の例では、出力に相当する変数はｂ、ｃ、ｄの３つであり、いずれも変数の型はｉｎｔ型（整数型）である（例えば各々３２ビット）。
【００６４】
テクノロジ選択部１０８では、あらかじめ登録されている複数のハードウェアのテクノロジから、ユーザがターゲットとするテクノロジを、マウスなどの入力装置（図示せず）を使って選択する（テクノロジ選択ステップ８０４）。ハードウェアのテクノロジ毎に登録されているデータとしては、プログラムの条件文や代入文などに現れる各種演算と出力に相当する変数とにつき、その演算および出力に相当する変数をハードウェア化した場合の所要回路規模との対応関係が含まれる。図８に、その一例を示す。
【００６５】
ここで所望のテクノロジが登録されていない場合には、ユーザは登録されているテクノロジを基に編集して登録可能であり、或いは新規に作成して登録してもよい。
【００６６】
回路規模算出部１０９では、構造解析部１０３での解析結果とテクノロジ選択部１０８での選択結果とを入力としてハードウェアの所要回路規模を算出する。この場合の算出は、下記（１）、（２）、（３）の手順で行われる。
【００６７】
（１）演算とテクノロジとの関連付けステップ８０５
構造解析部１０３で整理した入力のプログラムに出現する各演算につき、テクノロジ選択部１０８で選択されたテクノロジについてのデータ中から、その演算をハードウェア化した場合の所要回路規模を得、それに出現回数を掛けることで、当該プログラムに出現する演算についての所要回路規模を集計する。
【００６８】
例えば図８中、A社製０．１８μmテクノロジ（同図（ａ））を選択したとすると、図４の例の上記「ｉｎｔ型の変数と定数が等しいかどうかの比較（ステップ３０１、３０８）」に対する所要回路規模は
３００（ｉｎｔ＝＝ｃｏｎｓｔ）×２（出現回数）＝６００ゲート
として求まる。以下、プログラム中に出現する全演算について同様に算出して合計する。
【００６９】
（２）出力変数とテクノロジとの関連付けステップ８０６
構造解析部１０３で整理した出力に相当する変数につき、テクノロジ選択部１０８で選択されたテクノロジのデータ中、その出力に相当する変数をハードウェア化した場合の所要回路規模値を得、その値に当該出力に相当する変数の型に応じて決まっている定数（ｉｎｔ型の場合、上記の如く３２（ビット））を乗じることで、当該プログラムに出現する出力に相当する変数についての所要回路規模を集計する。
【００７０】
例えば上記の如くA社製０．１８μmテクノロジを選択したとすると、図４の例の上記「出力に相当する変数ｂ」の所要回路規模は
１０（ＦＦ）×３２（変数の型に応じて決まっている定数）＝３２０ゲート
として求まる。尚、ＦＦとはフリップフロップ素子を意味する。以下、プログラム中に出現する全ての出力に相当する変数について同様に所要回路規模を算出して合計する。
【００７１】
（３）回路規模算出ステップ８０７
上記（１）、（２）で算出した入力プログラムに出現する演算について求まった所要回路規模と、出力に相当する変数について求まった所要回路規模とを合計することにより、入力プログラムをハードウェア化した場合の所要回路規模を算出する。
【００７２】
このように回路規模算出部で算出された所要回路規模（回路規模１１３）はディスプレイなどの出力装置（図示せず）に表示出力される（ステップ８０８）。
【００７３】
図１０に評価対象としてのプログラム９０２の一例を示す。一般にプログラム（１００１）は複数のサブプログラム（１００２、１００３、１００６）から成る。又、サブプログラム（１００３）が更に複数のサブプログラム（１００４、１００５）から成る場合もある。図３に示す評価対象としてのプログラム１０２は、図１０のプログラム１００１のようにメインのプログラムであってもよいし、同サブプログラム１００２のようにメインプログラムのサブプログラムでもよく、或いは同サブプログラム１００４のようにサブプログラムの更なるサブプログラムであってもよい。
【００７４】
図２に示す評価単位決定部９０３では、ユーザが作成し、キーボードなどの入力装置（図示せず）から入力した評価対象のプログラム９０２を入力とし、その構造を解析し、解析結果からユーザが判断してソフト／ハード性能評価部９０４への入力となるプログラムの単位（評価単位）を決定する。この処理は下記の（１）、（２）の手順で行われる。
【００７５】
（１）階層構造解析ステップ１１０２
この構造解析では、プログラムの呼び出し・被呼び出し関係を整理し、プログラム全体がどのようなサブプログラムによって構成されているか（プログラムの階層構造）を解析する。図１０の例では、プログラム全体（１００１）は、サブプログラム（１００２、１００３、１００６）から成り、さらにサブプログラム（１００３）は複数のサブプログラム（１００４、１００５）から成ることがここで解析整理結果として得られる。
【００７６】
（２）評価単位決定ステップ１１０３
上記（１）での階層構造整理結果に基づき、ソフト／ハード性能評価部９０４への入力となるプログラム単位をユーザが決定して指示入力する。この場合指示入力可能なプログラム単位は、図１０のプログラム１００１のようにプログラム全体であってもよいし、同サブプログラム１００２のようにメインプログラムのサブプログラムでもよく、又同サブプログラム１００４のようにサブプログラムの更なるサブプログラムであってもよい。
【００７７】
図１０の例では、メインプログラム１００１の単位でのソフトウェア／ハードウェア性能解析、サブプログラム１００２、１００３、１００６の夫々の単位でのソフトウェア／ハードウェア性能解析、サブプログラム１００２、１００３、１００４、１００５、１００６の夫々の単位でのソフトウェア／ハードウェア性能解析のそれぞれが可能である。
【００７８】
ソフト／ハード性能評価部９０４は、評価単位決定部９０３で決定したプログラムの単位ごとに、図７，９と共に上述した処理内容にて、ソフトウェア／ハードウェアの性能評価を繰り返し行い（図１１中、ステップ１１０４）、全ての評価単位について順次性能評価を実施する（ステップ１１０５）。
【００７９】
制約入力部９０５に対し、ユーザが、設計対象のシステムの、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間に対する制約と、ＡＳＩＣなどによってハードウェア化する部分の所要回路規模に対する制約とをキーボードなどの入力装置（図示せず）を使って入力する（ステップ１１０６）。
【００８０】
この場合の制約条件としては、例えば、所要実行時間：１００００サイクル以下、所要回路規模：３００００ゲート以下（図１３参照）等である。
【００８１】
分割案算出部９０６では、ソフト／ハード性能評価部９０４での性能評価結果を集計し、制約入力部９０５で与えられた制約条件を満足するソフトウェア／ハードウェア機能分割案を抽出する。この処理は下記（１）、（２）の手順で行われる。
【００８２】
（１）性能評価結果集計ステップ１１０７
ソフト／ハード性能評価部９０４の処理結果である所要実行時間１１０と所要回路規模１１３との夫々の値を、評価単位決定部９０３で決定したプログラムの単位ごとに、全ての評価単位について順次集計する。図１０の例で、評価単位を「サブプログラム１００２、１００３、１００６」の夫々の単位とした場合、例えば
１００２：所要実行時間３０００サイクル：所要回路規模１００００ゲート
１００３：所要実行時間６０００サイクル：所要回路規模２２０００ゲート
１００６：所要実行時間５０００サイクル：所要回路規模  ５０００ゲート
として求まる（図１２、図１４参照）。
【００８３】
（２）制約満足判定ステップ１１０８
上記（１）の集計結果から、制約入力部９０５で与えられた制約を満足するソフトウェア／ハードウェア分割案を算出する。ここでは全てのソフトウェア／ハードウェアの組み合わせ（上の例の場合、図１５に示される全８通り）から、必要に応じた組（当然全組でもよい）につき、順次制約を満足するかどうかを確認して算出する。
【００８４】
図１０の例で評価単位を「１００２、１００３、１００６」の単位として上記の例の如く、
１００２：所要実行時間３０００サイクル：所要回路規模１００００ゲート
１００３：所要実行時間６０００サイクル：所要回路規模２２０００ゲート
１００６：所要実行時間５０００サイクル：所要回路規模  ５０００ゲート
と集計結果が得られた場合、図１５に示される８通りの組み合わせ中、上記制約条件を満足するソフトウェア／ハードウェア機能分割の組として、
ソフトウェア化を１００２とし、ハードウェア化を１００３、１００６として、合計所要実行時間：３０００サイクル、合計所要回路規模：２７０００ゲート
ソフトウェア化を１００３としてハードウェア化を１００２、１００６とし、合計所要実行時間：６０００サイクル、合計所要回路規模：１５０００ゲート
ソフトウェア化を１００２及び１００３とし、ハードウェア化を１００６として、合計所要実行時間：９０００サイクル、合計所要回路規模：  ５０００ゲート
ソフトウェア化を１００２及び１００６、ハードウェア化を１００３とし、合計所要実行時間：８０００サイクル、合計所要回路規模：２２０００ゲート
とが求まる（図１５中、ハッチングした組）。
【００８５】
分割案算出部９０６で算出されたこれらの分割案（ソフト／ハード分割案９０７）はディスプレイなどの出力装置（図示せず）に表示出力される（ステップ１１０９）。
【００８６】
更に他のプロセッサ、他のテクノロジを選定してソフトウェア／ハードウェア機能分割の検討を行いたい場合（ステップ１１１０のＹｅｓ）、ソフト／ハード性能評価ステップ１１０４に戻り、ステップ１１０４，１１０５，１１０６，１１０７，１１０８，１１０９にて、上記同様の処理にて評価を行うことが可能である。図１６乃至図１９に、他のプロセッサとしてＢ社製プロセッサＢ２，Ａ社製０．１８μｍテクノロジを適用した場合の評価例について示す。尚、図１６，図１７，図１８，図１９は、夫々上記図１２，図１３，図１４，図１５に対応する。
【００８７】
ユーザはこのようにして求まった複数の異なるプロセッサや複数の異なるテクノロジのそれぞれを適用した場合についての複数の分割案から、開発期間や開発コストを総合的に判断しながら、最適なプロセッサ／テクノロジ選定、ソフトウェア／ハードウェア機能分割に関する評価検討を同時並行に実施可能となる。
【００８８】
本発明によれば、（１）従来のように対象プログラムを適用するプロセッサに特化したプログラムに編集する必要が無く、複数の異なるプロセッサを適用した場合に対する所要実行時間比較が迅速に行えるようになる。（２）又、従来のように適用する動作合成ツールに特化した記述にプログラムを修正することなく所要回路規模の算出が迅速に行えるようになり、これによって複数の異なるテクノロジでの回路規模比較も迅速に行える。
【００８９】
又、上記（１）、（２）の機能により、プロセッサ／テクノロジ選定とソフトウェア／ハードウェア機能分割とを並行して実施可能となり、これによって従来のようなプロセッサ／テクノロジの再選定のようなやり直し処理が回避できる。
【００９０】
又、従来のようにテストデータを作成することなくシミュレーションによる実行時間の算出が迅速に行えるようになる。即ち、所要実行時間が最大になる処理経路とその実行時間が同じになるようにプログラムを編集する機能及び所要実行時間が最大になる処理経路を通るデータを自動生成する機能という２つの機能を設けることにより、開発段階に応じ、その都度、随時効果的に所要実行時間を算出可能となる。
【００９１】
尚、図１に示すソフト／ハード性能評価部１０１，及びこれを含む図２に示すデータ処理装置設計装置９０１は、例えば汎用コンピュータに図７，図９，図１１と共に説明した動作を実行させるための命令よりなるプログラムをインストールし、これを当該コンピュータのＣＰＵに付随するメモリと協働で実行させることで実現可能である。その際コンピュータにインストールするプログラムはＣＤ−ＲＯＭ等の可搬式記録媒体を介してコンピュータに導入することが可能であると共に、インターネット、ＬＡＮ等の通信ネットワークを介してコンピュータに導入することも可能である。
【００９２】
本発明は上記実施例に限られることなく、特許請求の範囲に記載の技術思想の範囲内で他の様々な実施例として実現可能であることは言うまでもない。
【図面の簡単な説明】
【００９３】
【図１】本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部のブロック図である。
【図２】本発明の一実施例によるデータ処理装置設計装置の全体ブロック図である。
【図３】本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部に対する入力プログラムの一例を示す図である。
【図４】図３に示す入力プログラムの一例をフローチャート表現して示す図である。
【図５】図１に示す本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部中のプロセッサ選択部に格納された、適用可能なプロセッサ毎に登録された演算毎の所要実行時間値データの一例を示す図である。
【図６】図３に示す入力プログラムを図１に示す本発明の一実施例によるデータ処理装置設計装置中のプログラム編集部にて編集後のプログラム例を示す図である。
【図７】図１に示す本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部にて実施される入力プログラムに対する所要実行時間算出処理の動作フローチャートである。
【図８】図１に示す本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部中のテクノロジ選択部に格納された、適用可能なハードウェアのテクノロジ毎に登録された演算毎、出力に相当する変数毎の所要回路規模値データの一例を示す図である。
【図９】図１に示す本発明の一実施例によるデータ処理装置設計装置中のソフト／ハード性能評価部にて実施される入力プログラムに対する所要回路基部を算出するための動作フローチャートである。
【図１０】本発明の一実施例によるデータ処理装置設計装置に対する入力プログラムの一例を示す図である。
【図１１】図２に示す本発明の一実施例によるデータ処理装置設計装置にて実施されるソフトウェア／ハードウェア機能分割処理の動作フローチャートである。
【図１２】図１０に示すサブプログラムの各々について本発明の一実施例によるデータ処理装置設計装置中、ソフト／ハード性能評価部にて求められた所要実行時間、所要回路規模の各々の値の例を示す図である。
【図１３】図２に示す制約入力部９０５にて入力された所要実行時間、所要回路規模の夫々の値に対する制約条件の例を示す図である。
【図１４】図１２の結果を纏めて示す図である。
【図１５】図１４に示す結果に基づいて図２中、分割算出部９０６にて得られた図１３に示す制約条件を満足するソフトウェア／ハードウェア機能分割案（ハッチング部分）を示す図である。
【図１６】他のプロセッサ、テクノロジ適用の場合について、図１０に示すサブプログラムの各々について本発明の一実施例によるデータ処理装置設計装置中、ソフト／ハード性能評価部にて求められた所要実行時間、処方回路規模の各々の値を示す図である。
【図１７】他のプロセッサ、テクノロジ適用の場合について、図２に示す制約入力部９０５にて入力された一例の所要実行時間、所要回路規模の夫々の値に対する制約条件の例を示す図である。
【図１８】図１６の結果を纏めて示す図である。
【図１９】図１８に示す結果に基づいて図２中、分割算出部９０６にて得られた図１７に示す制約条件を満足するソフトウェア／ハードウェア機能分割案（ハッチング部分）を示す図である。
【符号の説明】
【００９４】
１０１  ソフト／ハード性能評価部
１０２  評価対象プログラム格納部
１０３  構造解析部
１０４  プロセッサ選択部
１０５  パス抽出部
１０６  プログラム編集部
１０７  テストデータ生成部
１０８  テクノロジ選択部
１０９  回路規模算出部
１１０  実行時間格納部
１１１  編集後プログラム格納部
１１２  自動生成されたテスト用データ格納部
１１３  回路規模格納部
９０１  データ処理装置設計装置
９０２  評価対象プログラム格納部
９０３  評価単位決定部
９０４  ソフト／ハード性能評価部
９０５  制約入力部
９０６  分割案算出部
９０７  ソフト／ハード分割案格納部
【図１】
2005242569.tif 000003
【図２】
2005242569.tif 000004
【図３】
2005242569.tif 000005
【図４】
2005242569.tif 000006
【図５】
2005242569.tif 000007
【図６】
2005242569.tif 000008
【図７】
2005242569.tif 000009
【図８】
2005242569.tif 000010
【図９】
2005242569.tif 000011
【図１０】
2005242569.tif 000012
【図１１】
2005242569.tif 000013
【図１２】
2005242569.tif 000014
【図１３】
2005242569.tif 000015
【図１４】
2005242569.tif 000016
【図１５】
2005242569.tif 000017
【図１６】
2005242569.tif 000018
【図１７】
2005242569.tif 000019
【図１８】
2005242569.tif 000020
【図１９】
2005242569.tif 000021