JP2005242569A - データ処理装置設計方法、データ処理装置設計装置及びプログラム - Google Patents

データ処理装置設計方法、データ処理装置設計装置及びプログラム Download PDF

Info

Publication number
JP2005242569A
JP2005242569A JP2004049955A JP2004049955A JP2005242569A JP 2005242569 A JP2005242569 A JP 2005242569A JP 2004049955 A JP2004049955 A JP 2004049955A JP 2004049955 A JP2004049955 A JP 2004049955A JP 2005242569 A JP2005242569 A JP 2005242569A
Authority
JP
Japan
Prior art keywords
program
predetermined
execution time
processor
circuit scale
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.)
Pending
Application number
JP2004049955A
Other languages
English (en)
Inventor
Masaoki Sato
正興 佐藤
Takeshi Toyoyama
武 豊山
Satoshi Aoki
聡 青木
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 JP2004049955A priority Critical patent/JP2005242569A/ja
Priority to US11/018,964 priority patent/US7447617B2/en
Publication of JP2005242569A publication Critical patent/JP2005242569A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 大規模なデータ処理装置の設計においてハードウェア/ソフトウェア機能分割及びプロセッサ/テクノロジ選定を並行して効率的に実施可能な構成を提供することを目的とする。
【解決手段】 予め演算毎、プロセッサ毎に所要実行時間を算出し、更に演算毎、テクノロジ毎に所要回路規模を算出しておき、所望のプログラムを構成する演算毎に、該当するプロセッサの上記所要実行時間、或いは該当するテクノロジの所要回路規模を当てはめることで装置全体についての所要実行時間、及び所要回路規模を算出する構成である。
【選択図】 図1

Description

本発明はデータ処理装置設計方法、データ処理装置設計装置及びプログラムに係り、特に所望のプログラムをデータ処理装置として実現するための設計を行なうためのデータ処理装置設計方法、データ処理装置設計装置及びプログラムに関する。
一般に所望の機能を実現するためのデータ処理装置を設計する場合、先ず当該機能を実現するためのプログラムを作成し、これを現実のデータ処理装置として実現するための回路設計を行なう。この場合、当該プログラムを全てソフトウェアの形で所定のプロセッサで実行させることによりデータ処理装置として実現することが可能である。他方、逆に当該プログラムの処理機能を全て所定のテクノロジでハードウェア化することで実現することも又可能である。この両者を比較した場合、後者のハードウェア化する場合には実行時間を短縮可能であり、他方、前者のソフトウェアの形でプロセッサにて実行させる場合には実行時間は比較的長くかかるが最終的なデータ処理装置の製品を構成するハードウェアの回路規模を縮小可能である。このため、両者のトレードオフを考慮しながら適宜両者を複合してデータ処理装置を設計することが一般的に行なわれている。そのためには、所望のプログラムの所要実行時間及び当該プログラムの処理機能をハードウェア化した場合の所要回路規模を算出し、これらを基に、システムの処理機能を如何にソフトウェアとハードウェアとに分割するかについて検討することが行なわれる。即ち、システム全体の処理機能(仕様)を、プロセッサで実行されるプログラムとしてソフトウェア化する部分と、ASICなどによってハードウェア化する部分とに分割する(以下、「ソフトウェア/ハードウェア機能分割」と称する)ための検討を行なう。
又、携帯電話器などで幅広く利用されるシステムは、一般にソフトウェアとハードウェアとから構成される組込システムであり、プロセッサ、メモリ、ASICなどから構成されている。このような組込システムの設計では、どのプロセッサを使うか、ハードウェアとしてどのテクノロジを採用するかについて選定を行なう必要がある(以下、「プロセッサ/テクノロジ選定」と称する)。
このプロセッサ/テクノロジ選定の際には、一般にプロセッサで実行されるプログラムとしてソフトウェア化する部分についての所要実行時間と、ASICなどによってハードウェア化する部分についての所要回路規模などを規制する設計制約が存在し、この設計制約を満足するようなプロセッサ/テクノロジ選定を行なう必要がある。又、この場合、所要開発期間や開発コストなどを総合的に判断してプロセッサ/テクノロジ選定を行なう必要がある。従来は、一般に卓越した技能を有する専門家の経験と勘に頼ってプロセッサ/テクノロジを選定し、その後、所望の設計制約を満足するようにシステム全体の処理機能をソフトウェア/ハードウェア機能分割することが行なわれていた。
このソフトウェア/ハードウェア機能分割の際には、設計者が予め与えられた設計制約(プロセッサで実行されるプログラムとしてソフトウェア化する部分についての所要実行時間と、ASICなどによってハードウェア化する部分についての所要回路規模など)を満足するようにシステムの処理機能を分割する必要がある。プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間の算出は、従来技術として、特許文献1に提案されているように、複数の命令から構成されるプログラムの構造を解析して処理経路を判定し、判定された処理経路毎にプログラムの実行内容を解析して当該処理経路毎の実行時間を自動算出する装置を利用する方法がある。又、従来、ASICなどによってハードウェア化する部分の所要回路規模に関し、ASICなどによってハードウェア化する部分がC言語のプログラムであるような場合には、プログラムからハードウェアを生成するソフトウェア(一般には動作合成ツールと呼ばれている)を用いて実際にハードウェアを生成して算出していた。
また、プロセッサ/テクノロジ選定、ソフトウェア/ハードウェア機能分割が決定した後、ソフトウェア化する部分については、一般にはターゲットとするプロセッサの命令セットシミュレータなどでシミュレーションを行い、より精度良く所要実行時間を算出し、必要に応じてプログラムをチューニングしていく作業を行なっていた。ここで、このシミュレーションによってプログラムの所要実行時間を算出するためには、実行時間が最大になるようなテストデータの作成が必要となる。この場合も、従来は、専門家の経験と勘に頼って実行時間が最大になるような処理経路を特定し、その処理経路を通るようにテストデータを作成していた。
特開平4−199439号公報
本来効率的なデータ処理装置の設計を目指す場合、上記プロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とは並行して行われなければならない。しかしながら従来は、まず専門家の経験と勘に頼ってプロセッサ/テクノロジ選定を行い、その後、所定の設計制約を満足するようにシステム全体の処理機能をソフトウェア/ハードウェア機能分割する手法を採っていた。ところが、例えば近年の携帯電話器向けシステムは大規模・複雑化の一途をたどっており、専門家であっても適切なプロセッサやテクノロジを選定することが困難になってきている。特に所定の設計制約を満足する解がなかった場合には再度プロセッサ/テクノロジ選定からやり直さなければならず、開発期間が長期化し、開発コストも増大するといった問題があった。
特許文献1に提案されている装置は、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間の算出にあたり、「複数の命令から構成されるプログラム」の入力を要する。この「複数の命令から構成されるプログラム」はプロセッサに特化しているため、同じ処理機能であっても他のプロセッサでの実行時間を算出するためにはそのプロセッサに特化したプログラムに修正する必要がある。このため異なるプロセッサでの所要実行時間比較が迅速に行えないことが考えられ、プロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とを並行して行なうことが困難と考えられる。
又、ASICなどによってハードウェア化する部分の回路規模算出に用いる動作合成ツールは実際のハードウェアを生成するツールであるため、一般に使用にあたっての制約が多い。その制約の1つとして、動作合成ツールに特化した記述にプログラムを修正しなければならない点が挙げられる。即ち、一般にC言語の仕様そのままではハードウェアの動作は記述できず、このためC言語でもハードウェアの動作を記述できるように機能追加したSystemCなどの言語で記述する必要がある。その結果、多数のプログラムを含む回路設計の場合その都度適用するツールに特化した記述に修正することが必要となり、迅速に回路規模を算出することができない。又、異なるテクノロジでの回路規模比較も迅速に行えない。このため、プロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割を並行して行うことが困難となることが考えられる。
又、上記の如くシミュレーションによってプログラムの所要実行時間を算出するためには、所要実行時間が最大になるようなテストデータが必要であるが、前記の如く近年の携帯電話器のようなシステムは大規模・複雑化の一途をたどっており、そこで必要とされるプログラムも大規模・複雑化している。このため所要実行時間が最大になるような処理経路の特定が困難であったり、特定できたとしてもそのために膨大な時間を要すことから、所要実行時間が最大になるような質の良いテストデータを迅速に作成するのが困難になってきている。そのため、シミュレーションによる実行時間の算出が迅速にできないといった問題があった。
本発明は上記問題点に鑑みてなされたものであり、予め所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出しておき、或いは、予め所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出しておき、所望のプログラムを構成する演算毎に上記予め算出しておいた該当するプロセッサに関する上記所定の演算毎の所要実行時間を順次当てはめることで所望のプログラムを該当するプロセッサで実行させた際に要する実行時間を算出し、或いは所望のプログラムを構成する演算毎に上記予め算出しておいた該当するテクノロジに関する上記所定の演算毎の所要回路規模を順次当てはめることで所望のプログラムを該当するテクノロジでハードウェア化した際に要される回路規模を算出する構成を有する。
このように演算毎に所定のプロセッサで実行させた場合の所要実行時間を算出し、又所定のテクノロジでハードウェア化した場合の所要回路規模を算出しておき、このデータを利用して実際の所望のプログラムを構成する演算毎に上記算出済みの該当するプロセッサによる所要実行時間或いは該当するテクノロジによる回路規模を順次当てはめることで容易にプログラム全体の所要実行時間或いは所要回路規模を算出可能である。又、この構成を利用することで、プログラムを構成するサブプログラム毎にソフトウェアの状態でプロセッサに実行させる場合とハードウェア化する場合とに分割し、或いは上記ソフトウェア/ハードウェア機能分割を行った場合に最終的にプログラム全体に対する所要実行時間及び所要回路規模を容易に算出可能となる。
又同様に、上記の如く予め各演算毎、プロセッサ毎に所要実行時間を算出しておき、又演算毎、テクノロジ毎に所要回路規模を算出しておくことにより、異なるプロセッサを適用した場合、或いは異なるテクノロジを適用した場合との所要実行時間、所要回路規模の比較も容易に実施可能となる。その結果、プロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とを並行に実施することが可能となり、精度良く、迅速に、適切なプロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とを実施可能となる。
尚、特に所定のテクノロジにてハードウェア化した場合の回路規模を算出する際、各演算毎にその出力に相当する変数の内容も加味して回路規模を算出する手法を採ることにより、更に正確に所要回路規模を算出することが可能となる。
又、上記予め行なう各演算毎の所要実行時間の算出の際、最大所要実行時間となる処理経路を判定する動作を行なうことが望ましく、その際の判定結果を利用することにより、入力プログラムを編集して最大所要時間を要する処理経路で実行されるようなプログラムを生成可能である。この編集後のプログラムを利用することで容易にシミュレーションによる所要実行時間の算出が可能となる。又上記判定結果を利用することで、容易に最大所要実行時間となる処理経路にてプログラムが実行されるようなテストデータ(入力データ)を生成することも又可能であり、そのようなテストデータを利用してプログラムのシミュレーションによる所要実行時間の算出を行なうことも可能となる。
このように本発明によれば所望のプログラムにつき、精度良く、迅速に、適切なプロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とを実施可能となるため、大規模なデータ処理装置の設計を効率的に実施可能となる。
本発明の実施例では、(1)プロセッサで実行されるプログラムとしてソフトウェア化する部分の実行時間の算出の際、「複数の命令から構成されるプログラム」としてではなく「複数の条件文や代入文などの演算から構成されるプログラム」としてプログラムを入力するものとし、他方予め「プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間とよりなるデータ」を複数種類用意しておく。その結果、適用するプロセッサに特化した形式にプログラムを修正することなく、複数の異なるプロセッサの夫々を適用した場合についての所要実行時間の比較が迅速に行えるようになる。
又、本発明の実施例では、(2)プログラム中の、ASICなどによってハードウェア化する部分の回路規模算出を、「プログラムの条件文や代入文などに現れる各種演算及び出力に相当する変数に対する、その演算および出力に相当する変数をハードウェア化した場合の回路規模のデータ」を複数種類用意しておく。その結果、適用する動作合成ツールに特化した記述にプログラムを修正することなく、回路規模算出が迅速に行えるようになる。これによって複数の異なるテクノロジでの回路規模比較も迅速に行えるようになる。
そして、更に、上記(1)「プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間とのデータ」を複数種類用意し、且つ上記(2)「プログラムの条件文や代入文などに現れる各種演算及び出力に相当する変数に対する、その演算および出力に相当する変数をハードウェア化した場合の回路規模のデータ」を複数種類用意しておくことにより、上記組込システム設計におけるプロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とが並行に行えるようになる。
又入力プログラムを、上記(1)の実行時間算出の際に特定した実行時間が最大になる処理経路と実行時間とが同じになるように編集し、この編集後のプログラムをシミュレーションするだけで実行時間を算出できるようになる。その結果、特にテストデータを作る必要がないため、シミュレーションによる実行時間の算出が迅速にできる。
或いは上記(1)の実行時間算出の際に特定した実行時間が最大になる処理経路を通る入力データを自動生成することでテストデータが作成でき、このテストデータを利用してシミュレーションによる実行時間の算出が迅速にできるようになる。この場合、上記の場合のように所定の処理経路となるように編集したプログラムではなく編集前のオリジナルのプログラムでシミュレーションするため、より精度良く実行時間が算出できるようになる。
以下、本発明の実施例につき、詳細に説明する。
図1に本発明の一実施例によるデータ処理装置設計装置の要部のブロック図を示す。この装置の要部(ソフト/ハード性能評価部101)は、設計対象のシステムの処理機能を例えばC言語などのプログラムなどで設計者が記述したものが入力されると、これらの処理機能をプロセッサで実行されるプログラムとしてソフトウェア化した場合の所要実行時間と、ASICなどによってハードウェア化した場合の所要回路規模とを自動算出する機能を有する。
図中、構造解析部103では、ユーザが作成し、キーボードなどの入力装置(図示せず)から入力した評価対象のプログラム102を入力として、その構造を解析する。プロセッサ選択部104では、あらかじめ登録されているプロセッサから、今回ターゲットとするプロセッサを、ユーザがマウスなどの入力装置(図示せず)の操作により選択する。パス抽出部105では、構造解析部103での構造解析結果と、プロセッサ選択部104での選択結果とを入力とし、所要実行時間が最大になるパス(処理経路:以下、「所要実行時間最大パス」と称する)を抽出し、その結果(実行時間110)をディスプレイなどの出力装置(図示せず)に表示出力する。
プログラム編集部106では、パス抽出部105で抽出された所要実行時間最大パスを通過し、もってその所要実行時間を要することになるよう前記プログラムを編集し、その結果(編集後のプログラム111)をディスプレイなどの出力装置(図示せず)に表示出力する。
テストデータ生成部107では、プログラムの実行がパス抽出部105で抽出した所要実行時間最大パスを通過するようになされるための入力データを自動生成し、その結果(自動生成したテスト用データ112)をディスプレイなどの出力装置(図示せず)に表示出力する。
テクノロジ選択部108では、あらかじめ登録されているハードウェアのテクノロジから、この場合にターゲットとするテクノロジを、ユーザがマウスなどの入力装置(図示せず)を使って選択入力する。回路規模算出部109では、構造解析部103での構造解析結果と、テクノロジ選択部108でのテクノロジ選択結果とを入力として所要回路規模を算出し、その結果(回路規模113)をディスプレイなどの出力装置(図示せず)に表示出力する。
図2は、上記本発明の一実施例によるデータ処理装置設計装置の全体のブロック図を示す。この装置901は、設計対象のシステムの処理機能を、例えばC言語などのプログラムなどで設計者が記述した際に、これらの処理機能をソフトウェアとハードウェアに機能分割する設計作業を支援する機能を有する装置である。
図中評価単位決定部903では、ユーザが作成し、キーボードなどの入力装置(図示せず)から入力した評価対象のプログラム902を入力として、その構造を解析する。そして、その解析結果からユーザが判断し、ソフト/ハード性能評価部904への入力となるプログラムの単位(評価単位:サブプログラム等)を決定する。ソフト/ハード性能評価部904は図1に示すソフト/ハード性能評価部101に相当し、評価単位決定部903で決定したプログラムの指定単位毎にソフトウェア/ハードウェアの性能評価を行う。
制約入力部905では、上記設計対象のシステムにつき、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間に対する制約と、ASICなどによってハードウェア化する部分の所要回路規模に対する制約とを、ユーザがキーボードなどの入力装置(図示せず)を使って入力する。分割案算出部906では、ソフト/ハード性能評価部904での性能評価結果を集計し、制約入力部905で与えられた制約を満足するソフトウェア/ハードウェア機能分割案を抽出し、その結果(ソフト/ハード分割案907)をディスプレイなどの出力装置(図示せず)に表示出力する。
次に、図7と共に、この装置の動作の詳細について説明する。図3に評価対象のプログラム102の例を示す。又、図4に、図3のプログラムをフローチャートで表現したものを示す。
上記構造解析部103では、ユーザが作成し、キーボードなどの入力装置(図示せず)から入力した評価対象のプログラム102を入力とし(ステップ601)、その構造を解析する。ここでは所要実行時間を算出するため及び所要回路規模を算出するための2通りの解析が行われる。所要実行時間を算出するための構造解析は、下記(1)、(2)、(3)の3ステップに分けて行われる。
(1)処理経路解析ステップ602
この処理経路解析ステップ602では、評価対象プログラムの入力後、入力プログラムにおけるif文やswitch文などの条件文による分岐によってどのような処理経路(プログラムの流れ)が発生するかにつき解析する。
図4のプログラムの例では、以下の各ステップを経る処理経路が発生しえることとなる。
開始→301→302→303→308→309→終了
開始→301→302→303→308→310→終了
開始→301→304→305→306→307→308→309→終了
開始→301→304→305→306→307→308→310→終了
開始→301→304→305→306→308→309→終了
開始→301→304→305→306→308→310→終了
(2)分岐条件解析ステップ603
この分岐条件解析ステップ603では、入力プログラムにおけるif文やswitch文などの条件文の内容(即ち、どの変数がどのような値の時に条件が真になるか、または偽になるか)につき解析する。
図4の例では、ステップ301は、変数aが0の時、条件が真となる。又、ステップ306は、変数cが9以上の時に条件が真となる。又、ステップ308は、変数bが0の時に条件が真となる。
(3)実行可・不可判断ステップ
実行可・不可判断ステップでは、上記処理経路解析と分岐条件解析との結果から、一旦抽出された処理経路が実行可能であるかどうかを判断する。この判断は、以下の(1)、(2)、(3)の手順で行われる。
(1)代入演算整理ステップ604
ある処理経路上において、どの変数に対してどのような代入演算が行われているかを整理する。例えば図4の例における上記「開始→301→302→303→308→309→終了」の処理経路上では、「変数bに0を代入し、変数cに0を代入し、変数dに変数eと変数fの足し算結果を代入する」との整理結果が得られる。
(2)依存関係整理、実行可・不可判断ステップ605
当該処理系路上における分岐条件(上記分岐条件解析の結果)と、(1)での整理結果との依存関係を整理し、当該処理経路が実行可能であるかどうかを判断する。
例えば図4の例中の上記「開始→301→302→303→308→310→終了」の処理経路上における分岐条件はステップ301及び308の2つ存在し、このうち、ステップ301の条件は(1)での整理結果から、依存する代入が処理経路上に存在しない。よって301の条件は真(301→302)に分岐可能との判断がなされる。他方ステップ308の条件は「変数bに0を代入((1)での整理結果)」した後に判断され(依存関係の整理の結果)、且つ上記経路上の「308→310」の条件(即ちb=0以外)を満足しない。よって308の条件は偽の経路(308→310)に分岐不可と判断される。従って当該経路は実行不可であるとの判断がなされる(実行不可判断)。
(3)上記(1)、(2)の処理を、上記処理経路解析の結果の全処理経路について行う(ステップ606)。
図4の例では、
開始→301→302→303→308→309→終了:実行可能
開始→301→302→303→308→310→終了:実行不可
開始→301→304→305→306→307→308→309→終了:実行不可
開始→301→304→305→306→307→308→310→終了:実行可能
開始→301→304→305→306→308→309→終了:実行不可
開始→301→304→305→306→308→310→終了:実行可能
との判断となる。
プロセッサ選択部104では、上記の如く、あらかじめ登録されている複数のプロセッサからターゲットとするプロセッサを、ユーザがマウスなどの入力装置(図示せず)を使って選択する(プロセッサ選択ステップ607)。なお、予め各プロセッサについて、プログラムの条件文や代入文などに現れる各種演算と、その演算を実行するのに要する実行時間との対応関係が登録されている。図5にこのようなプロセッサ毎の登録データの一例を示す。
ここで所望のプロセッサが未だ登録されていない場合には、ユーザにて、既に登録されているプロセッサデータを基に編集して登録可能であり、或いはユーザが新規に作成して登録してもよい。
パス抽出部105では、構造解析部103での結果とプロセッサ選択部104での結果とを入力として所要実行時間が最大になるパスを抽出する。最大パスの抽出は、下記(1)、(2)、(3)の手順で行われる。
(1)演算とプロセッサの関連付け、実行時間算出ステップ608
上記の如く構造解析部103で求めた、各実行可能な処理経路につき、同じく構造解析部103で求めた当該処理経路上の条件文や代入文などに現れる演算に対し、プロセッサ選択部104で選択したプロセッサの該当する演算を実行するのに要する実行時間を当てはめ、処理経路上の夫々の演算に対して登録された該当する所要実行時間を割り当てることで当該処理経路の合計所要実行時間を集計算出する。
例えばプロセッサ選択部104で、図5(a)に示すA社製プロセッサA1を選択した場合、図4の例中の「開始→301→302→303→308→309→終了」の処理経路上の合計所要実行時間は、
ステップ301(「所定の整数か否かの判断」:int==const):3サイクル
ステップ302(「所定の整数の代入」:int=const):1サイクル
ステップ303(「所定の整数の代入」:int=const):1サイクル
ステップ308(「所定の整数か否かの判断」:int==const):3サイクル
ステップ309(「所定の整数の和の代入」:int=int+int):2サイクル
となり、その結果、当該経路を通る処理に対する合計所要実行時間は、3+1+1+3+2=10サイクルとなる。
(2)上記(1)の処理を上記構造解析部103で求めた実行可能な処理経路の全てについて行う(ステップ609)。
例えばプロセッサ選択部104でA社製プロセッサA1を選択した場合を想定すると、図4の例では
開始→301→302→303→308→309→終了:10サイクル
開始→301→304→305→306→307→308→310→終了:18サイクル
開始→301→304→305→306→308→310→終了:17サイクル
との算出結果が得られる。
(3)上記(1)、(2)の処理を経て求まった全ての実行可能な処理経路の所要実行時間から、所要実行時間が最大となる処理経路(所要実行時間最大パス)を抽出する(ステップ610)。例えば上記同様にプロセッサ選択部104でA社製プロセッサA1を選択した場合、図4の例では、所要実行時間最大パスは「開始→301→304→305→306→307→308→310→終了」のパスであることが求められ、更にこの場合の所要実行時間は18サイクルであることが求まる。
このようにしてパス抽出部105で抽出された所要実行時間最大パスの所要実行時間(実行時間110)は、ディスプレイなどの出力装置(図示せず)に表示出力される(ステップ611)。
次にプログラム編集部106では、このようにパス抽出部105で抽出された所要実行時間最大パスの所要実行時間となるように、入力プログラムを編集する。このプログラムの編集は、下記(1)、(2)、(3)の手順で行われる。
(1)条件文、代入文削除ステップ612
パス抽出部105で抽出した所要実行時間最大パス以外のパスに現れる条件文と代入文とを削除する。例えば図4の例で、所要実行時間最大パスが「開始→301→302→303→308→309→終了」のパスであったとした場合、この処理で削除される条件文はステップ306(図3の11行目)であり、この処理で削除される代入文はステップ304、305、307、310(それぞれ図3の8、9、12、20行目)である。
(2)代入文移動ステップ613
パス抽出部105で抽出した所要実行時間最大パスに現れる全ての代入文につき、その代入文を実行するのに条件がある場合、その条件に依存しないで実行されるよう、これを該当する条件文の外に移動する。その際、条件文や代入文などの実行順序は崩さない。
例えば図4の例で所要実行時間最大パスが「開始→301→302→303→308→309→終了」のパスであったとした場合、所要実行時間最大パスに現れる代入文はステップ302、303、309(それぞれ図3の4、5、17行目)であり、このうちステップ302、303はいずれも条件301に依存している(即ち、ステップ301が真の時にのみ実行される)ため、これらのステップが条件ステップ301に依存しないで実行されるよう、当該条件文の外に移動する(即ち、条件文が真の時にのみ実行される範囲から外し、当該条件文の結果に依らず実行されるようにする:図6の6、7行目参照)。又、ステップ309は条件ステップ308に依存している(ステップ308が真の時にのみ実行される)ため、条件ステップ308に依存しないで実行されるよう、条件文の外に移動する(図6の12行目参照)。
(3)実行時間0サイクル文挿入ステップ614
パス抽出部105で抽出した所要実行時間最大パスに現れる全ての条件文に、実行時間が0サイクルの文を挿入する。これは、上記代入文移動ステップにて各条件文から代入文が外されたことに対して負荷を変えないようにするためのダミーの文の挿入である。即ち、図4の例で、所要実行時間最大パスが「開始→301→302→303→308→309→終了」のパスであったとした場合、所要実行時間最大パスに現れる条件文はステップ301、308(それぞれ図3の3、16行目)であり、これらステップ301、308のそれぞれにインラインアセンブラのコメント(実行時間0サイクル)を挿入する(それぞれ図6の4、10行目参照)。
このようにプログラム編集部106で編集されたプログラム(編集後のプログラム111)はディスプレイなどの出力装置(図示せず)に表示出力される(615)。
次にテストデータ生成部107では、プログラムの実行がパス抽出部105で抽出した所要実行時間最大パスを通るための入力データを自動生成する。このテストデータは、所要実行時間最大パス上の全ての条件文につき、構造解析部103で整理した分岐条件と代入演算との依存関係を解析し、その条件文が最大パス側に分岐するように生成する(ステップ616)。
例えば図4の例で所要実行時間最大パスが「開始→301→304→305→306→307→308→310→終了」のパスだとした場合、上記構造解析部での整理結果として、
条件ステップ301が依存する代入文:無し
条件ステップ306が依存する代入文:305
条件ステップ308が依存する代入文:304
ガ得られ、それぞれの条件文につき、所要実行時間最大パスへ分岐させるための入力データは
条件ステップ301:a=1
条件ステップ306:c=8
条件ステップ308:b=(なんでも良い)
となる。ここでステップS305にて変数cがインクリメントされるため、上記c=8がインクリメントされて9となり、ステップ306(cが9以上か?)が真となってステップ307へ分岐し、ステップ308では、元々bが0であってもステップ304にて1が代入されて1となり、ステップS308(bは0か?)は偽となるためステップ310へと分岐することになる。
このようにテストデータ生成部107で生成したテストデータ(自動生成したテスト用データ112)はディスプレイなどの出力装置(図示せず)に表示出力される(ステップ617)。
次に、ハードウェアの回路規模を算出するための構造解析は、下記(1)、(2)の2ステップに分けて行う。
(1)演算の整理802
図9にて、評価対象プログラムの入力ステップ801実行後、入力プログラムに出現する演算と、その演算の型、その演算の出現回数とを整理する。図4の例では、
int型の変数と定数が等しいかどうかの比較(ステップ301、308)
int型の変数への定数の代入(ステップ302、303、304、307)
int型の変数に1足す(ステップ305)
int型の変数と定数との大小比較(ステップ306)
int型の変数とint型との変数の足し算結果をint型の変数へ代入(ステップ309)
int型の変数とint型との変数の掛け算結果をint型の変数へ代入(ステップ310)
との整理結果が得られる。
(2)出力の整理ステップ803
入力プログラムにおいて、出力に相当する変数の型とその数とを纏める。
図4の例では、出力に相当する変数はb、c、dの3つであり、いずれも変数の型はint型(整数型)である(例えば各々32ビット)。
テクノロジ選択部108では、あらかじめ登録されている複数のハードウェアのテクノロジから、ユーザがターゲットとするテクノロジを、マウスなどの入力装置(図示せず)を使って選択する(テクノロジ選択ステップ804)。ハードウェアのテクノロジ毎に登録されているデータとしては、プログラムの条件文や代入文などに現れる各種演算と出力に相当する変数とにつき、その演算および出力に相当する変数をハードウェア化した場合の所要回路規模との対応関係が含まれる。図8に、その一例を示す。
ここで所望のテクノロジが登録されていない場合には、ユーザは登録されているテクノロジを基に編集して登録可能であり、或いは新規に作成して登録してもよい。
回路規模算出部109では、構造解析部103での解析結果とテクノロジ選択部108での選択結果とを入力としてハードウェアの所要回路規模を算出する。この場合の算出は、下記(1)、(2)、(3)の手順で行われる。
(1)演算とテクノロジとの関連付けステップ805
構造解析部103で整理した入力のプログラムに出現する各演算につき、テクノロジ選択部108で選択されたテクノロジについてのデータ中から、その演算をハードウェア化した場合の所要回路規模を得、それに出現回数を掛けることで、当該プログラムに出現する演算についての所要回路規模を集計する。
例えば図8中、A社製0.18μmテクノロジ(同図(a))を選択したとすると、図4の例の上記「int型の変数と定数が等しいかどうかの比較(ステップ301、308)」に対する所要回路規模は
300(int==const)×2(出現回数)=600ゲート
として求まる。以下、プログラム中に出現する全演算について同様に算出して合計する。
(2)出力変数とテクノロジとの関連付けステップ806
構造解析部103で整理した出力に相当する変数につき、テクノロジ選択部108で選択されたテクノロジのデータ中、その出力に相当する変数をハードウェア化した場合の所要回路規模値を得、その値に当該出力に相当する変数の型に応じて決まっている定数(int型の場合、上記の如く32(ビット))を乗じることで、当該プログラムに出現する出力に相当する変数についての所要回路規模を集計する。
例えば上記の如くA社製0.18μmテクノロジを選択したとすると、図4の例の上記「出力に相当する変数b」の所要回路規模は
10(FF)×32(変数の型に応じて決まっている定数)=320ゲート
として求まる。尚、FFとはフリップフロップ素子を意味する。以下、プログラム中に出現する全ての出力に相当する変数について同様に所要回路規模を算出して合計する。
(3)回路規模算出ステップ807
上記(1)、(2)で算出した入力プログラムに出現する演算について求まった所要回路規模と、出力に相当する変数について求まった所要回路規模とを合計することにより、入力プログラムをハードウェア化した場合の所要回路規模を算出する。
このように回路規模算出部で算出された所要回路規模(回路規模113)はディスプレイなどの出力装置(図示せず)に表示出力される(ステップ808)。
図10に評価対象としてのプログラム902の一例を示す。一般にプログラム(1001)は複数のサブプログラム(1002、1003、1006)から成る。又、サブプログラム(1003)が更に複数のサブプログラム(1004、1005)から成る場合もある。図3に示す評価対象としてのプログラム102は、図10のプログラム1001のようにメインのプログラムであってもよいし、同サブプログラム1002のようにメインプログラムのサブプログラムでもよく、或いは同サブプログラム1004のようにサブプログラムの更なるサブプログラムであってもよい。
図2に示す評価単位決定部903では、ユーザが作成し、キーボードなどの入力装置(図示せず)から入力した評価対象のプログラム902を入力とし、その構造を解析し、解析結果からユーザが判断してソフト/ハード性能評価部904への入力となるプログラムの単位(評価単位)を決定する。この処理は下記の(1)、(2)の手順で行われる。
(1)階層構造解析ステップ1102
この構造解析では、プログラムの呼び出し・被呼び出し関係を整理し、プログラム全体がどのようなサブプログラムによって構成されているか(プログラムの階層構造)を解析する。図10の例では、プログラム全体(1001)は、サブプログラム(1002、1003、1006)から成り、さらにサブプログラム(1003)は複数のサブプログラム(1004、1005)から成ることがここで解析整理結果として得られる。
(2)評価単位決定ステップ1103
上記(1)での階層構造整理結果に基づき、ソフト/ハード性能評価部904への入力となるプログラム単位をユーザが決定して指示入力する。この場合指示入力可能なプログラム単位は、図10のプログラム1001のようにプログラム全体であってもよいし、同サブプログラム1002のようにメインプログラムのサブプログラムでもよく、又同サブプログラム1004のようにサブプログラムの更なるサブプログラムであってもよい。
図10の例では、メインプログラム1001の単位でのソフトウェア/ハードウェア性能解析、サブプログラム1002、1003、1006の夫々の単位でのソフトウェア/ハードウェア性能解析、サブプログラム1002、1003、1004、1005、1006の夫々の単位でのソフトウェア/ハードウェア性能解析のそれぞれが可能である。
ソフト/ハード性能評価部904は、評価単位決定部903で決定したプログラムの単位ごとに、図7,9と共に上述した処理内容にて、ソフトウェア/ハードウェアの性能評価を繰り返し行い(図11中、ステップ1104)、全ての評価単位について順次性能評価を実施する(ステップ1105)。
制約入力部905に対し、ユーザが、設計対象のシステムの、プロセッサで実行されるプログラムとしてソフトウェア化する部分の所要実行時間に対する制約と、ASICなどによってハードウェア化する部分の所要回路規模に対する制約とをキーボードなどの入力装置(図示せず)を使って入力する(ステップ1106)。
この場合の制約条件としては、例えば、所要実行時間:10000サイクル以下、所要回路規模:30000ゲート以下(図13参照)等である。
分割案算出部906では、ソフト/ハード性能評価部904での性能評価結果を集計し、制約入力部905で与えられた制約条件を満足するソフトウェア/ハードウェア機能分割案を抽出する。この処理は下記(1)、(2)の手順で行われる。
(1)性能評価結果集計ステップ1107
ソフト/ハード性能評価部904の処理結果である所要実行時間110と所要回路規模113との夫々の値を、評価単位決定部903で決定したプログラムの単位ごとに、全ての評価単位について順次集計する。図10の例で、評価単位を「サブプログラム1002、1003、1006」の夫々の単位とした場合、例えば
1002:所要実行時間3000サイクル:所要回路規模10000ゲート
1003:所要実行時間6000サイクル:所要回路規模22000ゲート
1006:所要実行時間5000サイクル:所要回路規模 5000ゲート
として求まる(図12、図14参照)。
(2)制約満足判定ステップ1108
上記(1)の集計結果から、制約入力部905で与えられた制約を満足するソフトウェア/ハードウェア分割案を算出する。ここでは全てのソフトウェア/ハードウェアの組み合わせ(上の例の場合、図15に示される全8通り)から、必要に応じた組(当然全組でもよい)につき、順次制約を満足するかどうかを確認して算出する。
図10の例で評価単位を「1002、1003、1006」の単位として上記の例の如く、
1002:所要実行時間3000サイクル:所要回路規模10000ゲート
1003:所要実行時間6000サイクル:所要回路規模22000ゲート
1006:所要実行時間5000サイクル:所要回路規模 5000ゲート
と集計結果が得られた場合、図15に示される8通りの組み合わせ中、上記制約条件を満足するソフトウェア/ハードウェア機能分割の組として、
ソフトウェア化を1002とし、ハードウェア化を1003、1006として、合計所要実行時間:3000サイクル、合計所要回路規模:27000ゲート
ソフトウェア化を1003としてハードウェア化を1002、1006とし、合計所要実行時間:6000サイクル、合計所要回路規模:15000ゲート
ソフトウェア化を1002及び1003とし、ハードウェア化を1006として、合計所要実行時間:9000サイクル、合計所要回路規模: 5000ゲート
ソフトウェア化を1002及び1006、ハードウェア化を1003とし、合計所要実行時間:8000サイクル、合計所要回路規模:22000ゲート
とが求まる(図15中、ハッチングした組)。
分割案算出部906で算出されたこれらの分割案(ソフト/ハード分割案907)はディスプレイなどの出力装置(図示せず)に表示出力される(ステップ1109)。
更に他のプロセッサ、他のテクノロジを選定してソフトウェア/ハードウェア機能分割の検討を行いたい場合(ステップ1110のYes)、ソフト/ハード性能評価ステップ1104に戻り、ステップ1104,1105,1106,1107,1108,1109にて、上記同様の処理にて評価を行うことが可能である。図16乃至図19に、他のプロセッサとしてB社製プロセッサB2,A社製0.18μmテクノロジを適用した場合の評価例について示す。尚、図16,図17,図18,図19は、夫々上記図12,図13,図14,図15に対応する。
ユーザはこのようにして求まった複数の異なるプロセッサや複数の異なるテクノロジのそれぞれを適用した場合についての複数の分割案から、開発期間や開発コストを総合的に判断しながら、最適なプロセッサ/テクノロジ選定、ソフトウェア/ハードウェア機能分割に関する評価検討を同時並行に実施可能となる。
本発明によれば、(1)従来のように対象プログラムを適用するプロセッサに特化したプログラムに編集する必要が無く、複数の異なるプロセッサを適用した場合に対する所要実行時間比較が迅速に行えるようになる。(2)又、従来のように適用する動作合成ツールに特化した記述にプログラムを修正することなく所要回路規模の算出が迅速に行えるようになり、これによって複数の異なるテクノロジでの回路規模比較も迅速に行える。
又、上記(1)、(2)の機能により、プロセッサ/テクノロジ選定とソフトウェア/ハードウェア機能分割とを並行して実施可能となり、これによって従来のようなプロセッサ/テクノロジの再選定のようなやり直し処理が回避できる。
又、従来のようにテストデータを作成することなくシミュレーションによる実行時間の算出が迅速に行えるようになる。即ち、所要実行時間が最大になる処理経路とその実行時間が同じになるようにプログラムを編集する機能及び所要実行時間が最大になる処理経路を通るデータを自動生成する機能という2つの機能を設けることにより、開発段階に応じ、その都度、随時効果的に所要実行時間を算出可能となる。
尚、図1に示すソフト/ハード性能評価部101,及びこれを含む図2に示すデータ処理装置設計装置901は、例えば汎用コンピュータに図7,図9,図11と共に説明した動作を実行させるための命令よりなるプログラムをインストールし、これを当該コンピュータのCPUに付随するメモリと協働で実行させることで実現可能である。その際コンピュータにインストールするプログラムはCD−ROM等の可搬式記録媒体を介してコンピュータに導入することが可能であると共に、インターネット、LAN等の通信ネットワークを介してコンピュータに導入することも可能である。
本発明は上記実施例に限られることなく、特許請求の範囲に記載の技術思想の範囲内で他の様々な実施例として実現可能であることは言うまでもない。
本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部のブロック図である。 本発明の一実施例によるデータ処理装置設計装置の全体ブロック図である。 本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部に対する入力プログラムの一例を示す図である。 図3に示す入力プログラムの一例をフローチャート表現して示す図である。 図1に示す本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部中のプロセッサ選択部に格納された、適用可能なプロセッサ毎に登録された演算毎の所要実行時間値データの一例を示す図である。 図3に示す入力プログラムを図1に示す本発明の一実施例によるデータ処理装置設計装置中のプログラム編集部にて編集後のプログラム例を示す図である。 図1に示す本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部にて実施される入力プログラムに対する所要実行時間算出処理の動作フローチャートである。 図1に示す本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部中のテクノロジ選択部に格納された、適用可能なハードウェアのテクノロジ毎に登録された演算毎、出力に相当する変数毎の所要回路規模値データの一例を示す図である。 図1に示す本発明の一実施例によるデータ処理装置設計装置中のソフト/ハード性能評価部にて実施される入力プログラムに対する所要回路基部を算出するための動作フローチャートである。 本発明の一実施例によるデータ処理装置設計装置に対する入力プログラムの一例を示す図である。 図2に示す本発明の一実施例によるデータ処理装置設計装置にて実施されるソフトウェア/ハードウェア機能分割処理の動作フローチャートである。 図10に示すサブプログラムの各々について本発明の一実施例によるデータ処理装置設計装置中、ソフト/ハード性能評価部にて求められた所要実行時間、所要回路規模の各々の値の例を示す図である。 図2に示す制約入力部905にて入力された所要実行時間、所要回路規模の夫々の値に対する制約条件の例を示す図である。 図12の結果を纏めて示す図である。 図14に示す結果に基づいて図2中、分割算出部906にて得られた図13に示す制約条件を満足するソフトウェア/ハードウェア機能分割案(ハッチング部分)を示す図である。 他のプロセッサ、テクノロジ適用の場合について、図10に示すサブプログラムの各々について本発明の一実施例によるデータ処理装置設計装置中、ソフト/ハード性能評価部にて求められた所要実行時間、処方回路規模の各々の値を示す図である。 他のプロセッサ、テクノロジ適用の場合について、図2に示す制約入力部905にて入力された一例の所要実行時間、所要回路規模の夫々の値に対する制約条件の例を示す図である。 図16の結果を纏めて示す図である。 図18に示す結果に基づいて図2中、分割算出部906にて得られた図17に示す制約条件を満足するソフトウェア/ハードウェア機能分割案(ハッチング部分)を示す図である。
符号の説明
101 ソフト/ハード性能評価部
102 評価対象プログラム格納部
103 構造解析部
104 プロセッサ選択部
105 パス抽出部
106 プログラム編集部
107 テストデータ生成部
108 テクノロジ選択部
109 回路規模算出部
110 実行時間格納部
111 編集後プログラム格納部
112 自動生成されたテスト用データ格納部
113 回路規模格納部
901 データ処理装置設計装置
902 評価対象プログラム格納部
903 評価単位決定部
904 ソフト/ハード性能評価部
905 制約入力部
906 分割案算出部
907 ソフト/ハード分割案格納部

Claims (5)

  1. プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する段階と、
    所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する段階とよりなるデータ処理装置設計方法。
  2. 複数の演算よりなる所望のプログラムを、所定のプロセッサで実行させる部分と、所定のテクノロジでハードウェア化する部分とに分割してデータ処理装置として実現するための設計を行なうデータ処理装置設計方法であって、
    予め所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出しておき、
    予め所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出しておき、
    所望のプログラム中の各サブプログラムを構成する演算毎に、予め算出しておいた該当するプロセッサに関する上記所定の演算毎の所要実行時間を順次当てはめることで、所望のプログラム中の各サブプログラムを該当するプロセッサで実行させた際に要する合計実行時間を算出し、
    所望のプログラム中の各サブプログラムを構成する演算毎に、予め算出しておいた該当するテクノロジに関する上記所定の演算毎の所要回路規模を順次当てはめることで、所望のプログラム中の各サブプログラムを該当するテクノロジでハードウェア化した際に要される合計回路規模を算出することにより、所定の所要実行時間及び所定の所要回路規模よりなる所定の回路設計条件を満たすように、所定のプロセッサで実行させるサブプログラムと所定のテクノロジでハードウェア化するサブプログラムとに分割して所望のプログラムをデータ処理装置として実現する設計を行なう方法。
  3. 前記段階にて算出された所望のプログラムを所定のプロセッサで実行させた際に要する実行時間に対応する処理経路にて当該所望のプログラムが実行されるようにプログラムを編集し、編集後のプログラムを使用することで当該プログラムの実行をシミュレーションし、或いは前記段階にて算出された所望のプログラムを所定のプロセッサで実行させた際に要する実行時間に対応する処理経路にて当該所望のプログラムが実行されるようなテストデータを作成し、当該テストデータを使用することで当該プログラムをムの実行をシミュレーションする段階よりなる請求項1又は2に記載の方法。
  4. プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する手段と、
    所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する手段とよりなるデータ処理装置設計装置。
  5. プログラムを構成する所定の演算毎に、所定のプロセッサで実行させた際に要する実行時間を算出し、或いはプログラムを構成する所定の演算毎に、所定のテクノロジでハードウェア化した際に要される回路規模を算出する手段と、
    所望のプログラム全体或いはその一部分を構成する演算毎に、前記段階にて算出した所要実行時間を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のプロセッサで実行させた際に要する合計実行時間を算出し、或いは所望のプログラム全体或いはその一部分を構成する演算毎に、前記算出した所要回路規模を順次当てはめることによって所望のプログラム全体或いはその一部分を所定のテクノロジでハードウェア化した際に要される合計回路規模を算出する手段としてコンピュータを動作させるための命令よりなるデータ処理装置設計プログラム。
JP2004049955A 2004-02-25 2004-02-25 データ処理装置設計方法、データ処理装置設計装置及びプログラム Pending JP2005242569A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004049955A JP2005242569A (ja) 2004-02-25 2004-02-25 データ処理装置設計方法、データ処理装置設計装置及びプログラム
US11/018,964 US7447617B2 (en) 2004-02-25 2004-12-22 Data processing device designing method, data processing device designing apparatus, program and computer readable information recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004049955A JP2005242569A (ja) 2004-02-25 2004-02-25 データ処理装置設計方法、データ処理装置設計装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2005242569A true JP2005242569A (ja) 2005-09-08

Family

ID=34858285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004049955A Pending JP2005242569A (ja) 2004-02-25 2004-02-25 データ処理装置設計方法、データ処理装置設計装置及びプログラム

Country Status (2)

Country Link
US (1) US7447617B2 (ja)
JP (1) JP2005242569A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008139965A (ja) * 2006-11-30 2008-06-19 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2011175339A (ja) * 2010-02-23 2011-09-08 Nec Corp 移行方法
JP2012181782A (ja) * 2011-03-02 2012-09-20 Nippon Telegr & Teleph Corp <Ntt> テスト用入力データ生成装置及び方法及びプログラム
US11657197B2 (en) 2019-11-19 2023-05-23 Mitsubishi Electric Corporation Support system and computer readable medium

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774237B2 (ja) * 2005-05-02 2011-09-14 株式会社リコー プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法
US8943519B2 (en) * 2007-02-08 2015-01-27 International Business Machines Corporation Smart progress indicator for script processing
US9557879B1 (en) 2012-10-23 2017-01-31 Dell Software Inc. System for inferring dependencies among computing systems
US10333820B1 (en) 2012-10-23 2019-06-25 Quest Software Inc. System for inferring dependencies among computing systems
US11005738B1 (en) * 2014-04-09 2021-05-11 Quest Software Inc. System and method for end-to-end response-time analysis
US9479414B1 (en) 2014-05-30 2016-10-25 Dell Software Inc. System and method for analyzing computing performance
US10291493B1 (en) 2014-12-05 2019-05-14 Quest Software Inc. System and method for determining relevant computer performance events
US9996577B1 (en) 2015-02-11 2018-06-12 Quest Software Inc. Systems and methods for graphically filtering code call trees
US10187260B1 (en) 2015-05-29 2019-01-22 Quest Software Inc. Systems and methods for multilayer monitoring of network function virtualization architectures
US10200252B1 (en) 2015-09-18 2019-02-05 Quest Software Inc. Systems and methods for integrated modeling of monitored virtual desktop infrastructure systems
US10230601B1 (en) 2016-07-05 2019-03-12 Quest Software Inc. Systems and methods for integrated modeling and performance measurements of monitored virtual desktop infrastructure systems
CN107665159B (zh) * 2016-07-27 2022-07-12 上海华虹集成电路有限责任公司 安全处理器跳转指令固定执行时间的测试方法
US10896116B1 (en) * 2018-10-19 2021-01-19 Waymo Llc Detecting performance regressions in software for controlling autonomous vehicles

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269163A (ja) * 2001-03-12 2002-09-20 Toshiba Corp 設計支援装置および設計支援方法ならびに設計支援プログラム
JP2003233633A (ja) * 2002-02-07 2003-08-22 Sanyo Electric Co Ltd 集積回路の設計方法
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
JP2003345775A (ja) * 2002-05-30 2003-12-05 Nec Electronics Corp システムlsi、システムlsiの設計方法、及び、記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832202A (en) * 1988-12-28 1998-11-03 U.S. Philips Corporation Exception recovery in a data processing system
JPH04199439A (ja) 1990-11-29 1992-07-20 Fujitsu Ten Ltd プログラム解析装置
JP3246462B2 (ja) 1998-12-22 2002-01-15 日本電気株式会社 C言語回路モデルを用いた機能合成方法およびそのプログラムを記録した記録媒体
JP2000305967A (ja) 1999-04-21 2000-11-02 Mitsubishi Electric Corp 状態遷移情報調整装置及び回路設計装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3981238B2 (ja) * 1999-12-27 2007-09-26 富士通株式会社 情報処理装置
JP2005037995A (ja) * 2003-07-15 2005-02-10 Toshiba Corp 半導体集積回路の検証システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269163A (ja) * 2001-03-12 2002-09-20 Toshiba Corp 設計支援装置および設計支援方法ならびに設計支援プログラム
JP2003233633A (ja) * 2002-02-07 2003-08-22 Sanyo Electric Co Ltd 集積回路の設計方法
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
JP2003345775A (ja) * 2002-05-30 2003-12-05 Nec Electronics Corp システムlsi、システムlsiの設計方法、及び、記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008139965A (ja) * 2006-11-30 2008-06-19 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2011175339A (ja) * 2010-02-23 2011-09-08 Nec Corp 移行方法
JP2012181782A (ja) * 2011-03-02 2012-09-20 Nippon Telegr & Teleph Corp <Ntt> テスト用入力データ生成装置及び方法及びプログラム
US11657197B2 (en) 2019-11-19 2023-05-23 Mitsubishi Electric Corporation Support system and computer readable medium

Also Published As

Publication number Publication date
US7447617B2 (en) 2008-11-04
US20050187750A1 (en) 2005-08-25

Similar Documents

Publication Publication Date Title
US7890924B2 (en) System and method for simulating product design and development
JP2005242569A (ja) データ処理装置設計方法、データ処理装置設計装置及びプログラム
Carmona et al. New region-based algorithms for deriving bounded Petri nets
Peymandoust et al. Automatic instruction set extension and utilization for embedded processors
US8150673B1 (en) Partitioning a model in modeling environments
Atasu et al. An integer linear programming approach for identifying instruction-set extensions
US20030171907A1 (en) Methods and Apparatus for Optimizing Applications on Configurable Processors
KR20130107344A (ko) 툴 생성기
US7793271B2 (en) Bi-directional product development process simulation
Friese et al. Generating performance models for irregular applications
KR101275727B1 (ko) 스테이트먼트를 재구성하는 방법 및 그 기능을 구비한컴퓨터 시스템
Eusse et al. Pre-architectural performance estimation for ASIP design based on abstract processor models
JP5682081B2 (ja) インテリジェント・アーキテクチャ・クリエータ
US8532974B2 (en) Developing system and method for optimizing the energy consumption of an application program for a digital signal processor
CN110210046B (zh) 应用程序及专用指令集处理器一体化敏捷设计方法
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
Sridhar et al. Slicing matlab simulink/stateflow models
Ray et al. Practical techniques for performance estimation of processors
Cai et al. Introduction of design-oriented profiler of Specfic language
Norhidayah et al. Development of virtual assembly layout with modeling languages approach and Simulation using Delmia Quest
Kirovski et al. Engineering change protocols for behavioral and system synthesis
CN101923466B (zh) 装饰器模式的指令的存取方法
Koushanfar et al. Symbolic debugging of embedded hardware and software
JP2003233633A (ja) 集積回路の設計方法
Liolli Selective Control-Flow Reduction for Hardware Synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407