(57)【要約】【課題】シミュレーションによる実行サイクル数の取得を容易にすること。【解決手段】ファイル作成部１ａは、プログラムファイルに記載された各命令の実行サイクル数を識別する情報をプログラムファイルに追加し、実行サイクル数の計算に依存しない命令コードをプログラムファイルから削除したファイル２ａ１を作成する。回路情報作成部１ｂは、ファイル作成部１ａが作成したファイル２ａ１を実行してファイル２ａ１に記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とをハードウェアボード２に取得させるハードウェア回路情報を作成する。【選択図】図１
2013171551.tif 000002
【特許請求の範囲】
【請求項１】
プログラムファイルに記載された各命令の実行サイクル数を識別する情報を前記プログラムファイルに追加し、実行サイクル数の計算に依存しない命令コードを前記プログラムファイルから削除したファイルを作成するファイル作成部と、
前記ファイル作成部が作成したファイルを実行して前記ファイルに記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とをハードウェア回路に取得させるハードウェア回路情報を作成する回路情報作成部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ハードウェア回路情報は、前記ファイルを実行するプロセッサモデルと、前記プロセッサモデルのファイルの実行に伴い生じるメモリアクセスの実行サイクル数を前記プロセッサモデルに返すタイミングモデルとを前記ハードウェア回路に実現する情報であることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ファイル作成部は、メモリアクセスの実行サイクル数を算出させる命令コードを前記ファイルに追加することを特徴とする請求項１記載の情報処理装置。
【請求項４】
コンピュータが、
プログラムファイルに記載された各命令の実行サイクル数を識別する情報を前記プログラムファイルに追加し、実行サイクル数の計算に依存しない命令コードを前記プログラムファイルから削除したファイルを作成し、
ファイルを実行して前記ファイルに記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とをハードウェア回路に取得させるハードウェア回路情報を作成する、
ことを特徴とする情報処理方法。
【請求項５】
コンピュータに、
プログラムファイルに記載された各命令の実行サイクル数を識別する情報を前記プログラムファイルに追加し、実行サイクル数の計算に依存しない命令コードを前記プログラムファイルから削除したファイルを作成し、
ファイルを実行して前記ファイルに記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とをハードウェア回路に取得させるハードウェア回路情報を作成する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）の開発にあたり、ハードウェアのアーキテクチャを設計初期に決定するために、ＬＳＩに実装するソフトウェアをシミュレータに実行させてＬＳＩの性能を評価する技術が知られている。
【０００３】
具体的には多数のアーキテクチャ候補のシミュレーションをシミュレータに実行させることにより、アーキテクチャ候補毎の実行サイクル数を算出し、最適なアーキテクチャを選択することができる。
【０００４】
シミュレーションをソフトウェアで実行すると、ＬＳＩ実機での実行時間に対してシミュレーションにかかる時間が大きくなる場合（例えば１０００倍程度）がある。このため、ＬＳＩが実行する機能の部分的なブロックやＬＳＩ全体のシミュレーションを、ハードウェアを用いて実現する方法が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−６７４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＬＳＩが実行する機能の部分的なブロックを、ハードウェアを用いて実現する方法では、アプリケーションの実行トレースをハードウェアに転送する時間がかかるという問題がある。また、ＬＳＩ全体のシミュレーションを、ハードウェアを用いて実現する方法では、ハードウェア完成後のシミュレーション時間は短縮できる。しかし、ハードウェアを作成するには、ハードウェア資源を大きく消費し、また、ハードウェアを作成する時間もかかるために設計期間が長くなるという問題がある。
【０００７】
１つの側面では、本発明は、シミュレーションによる実行サイクル数の取得を容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開示の情報処理装置が提供される。この情報処理装置は、ファイル作成部と、回路情報作成部とを有している。ファイル作成部は、プログラムファイルに記載された各命令の実行サイクル数を識別する情報をプログラムファイルに追加し、実行サイクル数の計算に依存しない命令コードをプログラムファイルから削除したファイルを作成する。回路情報作成部は、ファイル作成部が作成したファイルを実行してファイルに記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とをハードウェア回路に取得させるハードウェア回路情報を作成する。
【発明の効果】
【０００９】
１態様では、シミュレーションによる実行サイクル数の取得を容易にすることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ワークステーションのハードウェア構成を示す図である。
【図４】ワークステーションの機能を示すブロック図である。
【図５】ハードウェアボードの機能を示すブロック図である。
【図６】情報処理システムの処理を示す図である。
【図７】性能見積用コンパイラが備える機能を示すブロック図である。
【図８】マッピング部の処理を説明する図である。
【図９】サイクル数計算コード追加部の処理を説明する図である。
【図１０】転送用コード追加部の処理を説明する図である。
【図１１】コード削除部の処理を説明する図である。
【図１２】実行サイクル数の算出方法を示すフローチャートである。
【図１３】メモリアクセスの実行サイクル数の算出方法を説明する図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態の情報処理装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の情報処理システムを示す図である。
【００１２】
第１の実施の形態の情報処理システム３は、設計対象のＬＳＩの性能を評価するシステムであり、情報処理装置１とハードウェアボード２とを有している。
情報処理装置（コンピュータ）１は、ファイル作成部１ａと回路情報作成部１ｂとを有している。
【００１３】
ファイル作成部１ａ、および回路情報作成部１ｂは、情報処理装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。
ファイル作成部１ａは、ＬＳＩの性能を評価するにあたり用意されたプログラムファイル（以下、元ファイルという）に対し、命令毎の実行サイクル数を識別する情報を追加し、サイクル数の計算に依存しない命令コードを削除したファイル２ａ１を作成する。ファイル作成部１ａは、作成したファイル２ａ１をハードウェアボード２が備える記憶部２ａに記憶する。なお、ハードウェアボード２が実行するファイル２ａ１は機械語で記載されるが、図１では、説明の便宜上、ファイル２ａ１をアセンブリ形式で表記している。記憶部２ａは、ハードウェアボード２が有するＲＡＭ（Random Access Memory）等の揮発性メモリや、ＲＯＭ（Read Only Memory）等の不揮発性メモリが備えるデータ記憶領域により実現することができる。
【００１４】
図１に示すファイル２ａ１は、ファイル２ａ１を作成する過程でファイル作成部１ａにより削除され、後述するハードウェアボード２により実行されない命令コードを二重線で示している。二重線で示した命令コードは、サイクル数の計算に依存しない命令コードである。また、ファイル２ａ１には、命令毎の実行サイクル数を識別する情報が追加されている。なお、命令毎の実行サイクル数を識別する情報の追加方法については、第２の実施の形態にて詳述する。ファイル作成部１ａが作成したファイル２ａ１は、元ファイルに比べ複雑な演算処理が省略されたものとなっている。このため、ファイル２ａ１を実行させるプロセッサの演算量が減り、プロセッサの構成を簡易なものとすることができる。
【００１５】
回路情報作成部１ｂは、ファイル作成部１ａが作成したファイル２ａ１を実行してファイル２ａ１に記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とを取得させるハードウェア回路情報を作成する。
【００１６】
ところで、ハードウェアボード２は、ＦＰＧＡ（Field Programmable Gate Array）等の再構成可能なハードウェア回路を有している。回路情報作成部１ｂは、作成したハードウェア回路情報をハードウェアボード２が備える再構成可能なハードウェア回路に転送する。再構成可能なハードウェア回路が、ハードウェア回路情報を読み込むことにより、ハードウェアボード２上にプロセッサモデル２ｂと、タイミングモデル２ｃとが具現される。
【００１７】
プロセッサモデル２ｂは、設計対象のＬＳＩのコア数に対応する数の簡易プロセッサ２ｂ１を備えている。
プロセッサモデル２ｂは、ファイル２ａ１を実行し、ファイル２ａ１の処理の実行に伴うファイル２ａ１に記載された命令毎の実行サイクル数と、メモリアクセスの実行サイクル数とを取得する。そして、プロセッサモデル２ｂは、ファイル２ａ１に記載された全ての命令の実行が終了すると、実行サイクル数の合計値を、情報処理装置１、または図示しない外部装置に出力する。
【００１８】
タイミングモデル２ｃは、プロセッサモデル２ｂのファイル２ａ１の実行に伴うメモリアクセスに応じたメモリアクセス時間をプロセッサモデル２ｂに返す。具体的には、簡易プロセッサ２ｂ１から出力されるメモリアドレスが１次キャッシュモデル２ｃ１にヒットした場合は、１次キャッシュモデル２ｃ１の実行サイクル数が簡易プロセッサ２ｂ１に返る。２次キャッシュモデル２ｃ２にヒットした場合は、２次キャッシュモデル２ｃ２にヒットした実行サイクル数＋バス待ち合わせ時間が簡易プロセッサ２ｂ１に返る。１次キャッシュモデル２ｃ１、および２次キャッシュモデル２ｃ２にミスした場合は、外部メモリモデル２ｃ３にアクセスした実行サイクル数＋バス待ち合わせ時間が簡易プロセッサ２ｂ１に返る。
【００１９】
この情報処理システム３によれば、ファイル作成部１ａがファイル２ａ１を作成するようにした。このため、ファイル２ａ１を実行する簡易プロセッサ２ｂ１の構成を簡易なものとすることができる。従って、ハードウェア資源の消費が少ないハードウェアボード２を用いて実行サイクル数の合計値の取得が可能となる。このため、シミュレーションによる実行サイクル数の取得を容易にすることができる。
【００２０】
以下、第２の実施の形態において、開示の情報処理装置をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態の情報処理システムを示す図である。
【００２１】
情報処理システム１００は、端末装置１０と、ワークステーション２０と、ハードウェアボード３０とを有している。
端末装置１０は、シミュレータの起動、およびシミュレーション結果を端末装置１０に接続されるモニタに表示する。
【００２２】
ワークステーション２０は、ハードウェアボード３０に実行させる実行ファイルと、ハードウェアボードの回路構成を示すハードウェア回路情報を作成する。そして、作成した実行ファイルと、ハードウェア回路情報をハードウェアボード３０に転送する。
【００２３】
ハードウェアボード３０は、ＲＯＭ等の不揮発性メモリ３１とＦＰＧＡ３２とを備えている。
ハードウェアボード３０は、転送される実行ファイルとハードウェア回路情報を不揮発性メモリ３１に記憶する。そして、電源投入時にハードウェア回路情報をＦＰＧＡ３２にダウンロードし、実行ファイルを実行する。なお、本実施の形態では、ハードウェアボード３０が備える回路再構成可能なデバイスの一例としてＦＰＧＡ３２を例示したが、ＦＰＧＡ３２に限定されない。
【００２４】
図３は、ワークステーションのハードウェア構成を示す図である。
ワークステーション２０は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０８を介してＲＡＭ２０２と複数の周辺機器が接続されている。
【００２５】
ＲＡＭ２０２は、ワークステーション２０の主記憶装置として使用される。ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に使用する各種データが格納される。
【００２６】
バス２０８には、ハードディスクドライブ２０３、グラフィック処理装置２０４、入力インタフェース２０５、ドライブ装置２０６、および通信インタフェース２０７が接続されている。
【００２７】
ハードディスクドライブ２０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ２０３は、ワークステーション２０の二次記憶装置として使用される。ハードディスクドライブ２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００２８】
グラフィック処理装置２０４には、モニタ２０４ａが接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ２０４ａの画面に表示させる。モニタ２０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や、液晶表示装置等が挙げられる。
【００２９】
入力インタフェース２０５には、キーボード２０５ａとマウス２０５ｂとが接続されている。入力インタフェース２０５は、キーボード２０５ａやマウス２０５ｂから送られてくる信号をＣＰＵ２０１に送信する。なお、マウス２０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、例えばタッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００３０】
ドライブ装置２０６は、例えば、光の反射によって読み取り可能なようにデータが記録された光ディスクや、ＵＳＢ（Universal Serial Bus）メモリ等の持ち運び可能な記録媒体に記録されたデータの読み取りを行う。例えば、ドライブ装置２０６が光学ドライブ装置である場合、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００には、Ｂｌｕ−ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００３１】
通信インタフェース２０７は、ネットワーク５０に接続されている。通信インタフェース２０７は、ネットワーク５０を介して、他のコンピュータまたは通信機器との間でデータを送受信する。
【００３２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、ワークステーション２０が備えるグラフィック処理装置２０４、入力インタフェース２０５およびドライブ装置２０６は省略することもできる。また、図３にはワークステーション２０のハードウェア構成を示したが、端末装置１０も同様のハードウェア構成で実現することができる。
【００３３】
図３に示すようなハードウェア構成のワークステーション２０内には、以下のような機能が設けられる。
図４は、ワークステーションの機能を示すブロック図である。
【００３４】
ワークステーション２０は、アプリケーション記憶部２１と、アーキテクチャ情報２２と、性能見積用コンパイラ２３と、実行ファイル記憶部２４と、タイミングモデルテンプレート記憶部２５と、ハードウェア回路情報生成部２６と、ハードウェア回路情報記憶部２７と、転送部２８とを有している。
【００３５】
アプリケーション記憶部２１には、設計対象のＬＳＩの性能を評価する際に用いるアプリケーション（以下、評価用アプリケーションという）が記憶される。評価用アプリケーションとしては、例えば任意の画像処理を実行するアプリケーション等が挙げられる。
【００３６】
アーキテクチャ情報２２は、設計対象のＬＳＩのキャッシュ容量やバス幅を規定したシステムアーキテクチャに関する情報や、命令種別やパイプライン構造等のマイクロアーキテクチャに関する情報を含む。
【００３７】
性能見積用コンパイラ２３は、アプリケーション記憶部２１に記憶されている評価用アプリケーションに性能見積用のコンパイラを実行し、ハードウェアボード３０に実行させる実行ファイルを生成する。実行ファイルの内容については、後に詳述する。
【００３８】
実行ファイル記憶部２４には、性能見積用コンパイラ２３が生成した実行ファイルが記憶される。
タイミングモデルテンプレート記憶部２５には、設計対象のＬＳＩのタイミングモデル（タイミングレポート）が記憶される。
【００３９】
ハードウェア回路情報生成部２６は、アーキテクチャ情報２２を、タイミングモデルテンプレート記憶部２５に記憶されているタイミングモデルに適用し、タイミング計算用のハードウェア回路情報を生成する。
【００４０】
ハードウェア回路情報記憶部２７には、ハードウェア回路情報生成部２６が生成したハードウェア回路情報が記憶される。
転送部２８は、実行ファイル記憶部２４に記憶されている実行ファイルと、ハードウェア回路情報記憶部２７に記憶されているハードウェア回路情報をハードウェアボード３０に転送する。
【００４１】
図５は、ハードウェアボードの機能を示すブロック図である。
ハードウェアボード３０は、不揮発性メモリ３１内に設けられた実行ファイル記憶部３１ａと、ＦＰＧＡ３２内に設けられた演算部３２ａと、メモリアーキテクチャ３２ｂを有している。ＦＰＧＡ３２は、転送部２８から転送されるハードウェア回路情報を実装することにより演算部３２ａと、メモリアーキテクチャ３２ｂを実現する。
【００４２】
実行ファイル記憶部３１ａには、転送部２８から転送される実行ファイルが記憶される。
演算部３２ａは、実行ファイル記憶部３１ａに記憶されている実行ファイルのシミュレーションを実行することで、評価用アプリケーションの実行サイクル数を算出する。なお、実行サイクル数の算出方法については、後に詳述する。そして、演算部３２ａは、実行結果をワークステーション２０に転送する。
【００４３】
メモリアーキテクチャ３２ｂは、演算部３２ａの実行ファイルの実行に伴うメモリアクセスに応じたメモリアクセス時間を演算部３２ａに返す。
次に、情報処理システム１００の処理を説明する。
【００４４】
図６は、情報処理システムの処理を示す図である。
［シーケンスＳｅｑ１］  端末装置１０は、評価用アプリケーションとアーキテクチャ情報をワークステーション２０に出力する。
【００４５】
［シーケンスＳｅｑ２］  ワークステーション２０の性能見積用コンパイラ２３は、アプリケーション記憶部２１に記憶されている評価用アプリケーションに性能見積用のコンパイラを実行し、実行ファイルを生成する。
【００４６】
［シーケンスＳｅｑ３］  ワークステーション２０のハードウェア回路情報生成部２６は、アーキテクチャ情報２２を、タイミングモデルテンプレート記憶部２５に記憶されているタイミングモデルに適用し、タイミング計算用のハードウェア回路情報を生成する。
【００４７】
［シーケンスＳｅｑ４］  ワークステーション２０の転送部２８は、実行ファイル記憶部２４に記憶されている実行ファイルと、ハードウェア回路情報記憶部２７に記憶されているハードウェア回路情報をハードウェアボード３０に転送する。
【００４８】
［シーケンスＳｅｑ５］  ハードウェアボード３０は、転送されたハードウェア回路情報のハードウェア回路をＦＰＧＡ３２に実装する。また、ハードウェアボード３０は、転送された実行ファイルを、不揮発性メモリ３１内に記憶する。
【００４９】
［シーケンスＳｅｑ６］  端末装置１０は、シミュレーションの起動指示をワークステーション２０に送る。
［シーケンスＳｅｑ７］  ワークステーション２０は、ハードウェアボード３０にシミュレーションの実行指示を送る。
【００５０】
［シーケンスＳｅｑ８］  ハードウェアボード３０のＦＰＧＡ３２は、実行ファイルを実行することにより、評価用アプリケーションの実行サイクル数を算出する。
［シーケンスＳｅｑ９］  ハードウェアボード３０のＦＰＧＡ３２は、シミュレーションの終了後にワークステーション２０に実行サイクル数を転送する。
【００５１】
［シーケンスＳｅｑ１０］  ワークステーション２０は、ハードウェアボード３０から転送された実行サイクル数を端末装置１０に転送する。
［シーケンスＳｅｑ１１］  端末装置１０は、ワークステーション２０から受け取った実行サイクル数を端末装置１０に接続されたモニタに表示する。
【００５２】
次に、性能見積用コンパイラ２３が生成する実行ファイルを詳しく説明する。
図７は、性能見積用コンパイラが備える機能を示すブロック図である。
性能見積用コンパイラ２３は、フロントエンド（Frontend）２３１と、最適化部（Link Optimizer）２３２と、マッピング部（Virtual Backend）２３３と、サイクル数計算コード追加部（Add cycle calculation）２３４と、転送用コード追加部（Add memory access）２３５と、コード削除部（Optimizer）２３６と、機械語変換部（Code Generator）２３７とを有している。
【００５３】
フロントエンド２３１は、ソースコード２１ａを分析して中間表現等の内部表現を構築する。
最適化部２３２は、データフロー解析や依存関係解析等を行い、中間表現を最適化する。
【００５４】
図８は、マッピング部の処理を説明する図である。
マッピング部２３３は、最適化部２３２により最適化された中間表現を、機械語に相当するライブラリ関数にマッピングする。ライブラリはアーキテクチャ仕様で規定された動作を行う。図８では、Ｃ言語で記載されたプログラムファイル５１を機械語相当のライブラリ関数にマッピングしたプログラムファイル５２を示している。
【００５５】
図９は、サイクル数計算コード追加部の処理を説明する図である。
サイクル数計算コード追加部２３４は、アーキテクチャ仕様で提示された命令コードの命令実行に要する実行サイクル数から命令実行サイクル数計算を追加する命令コードをプログラムファイル５２に追加する。図９では、サイクル数計算コード追加部２３４は、プログラムファイル５２の１行目から４行目の命令コードの命令実行に要する実行サイクル数を計算する。１行目から４行目の命令コードの実行サイクル数は、それぞれ１サイクルである。このため、サイクル数は「４」となる。そして、サイクル数計算コード追加部２３４は、計算したサイクル数が「４」であるため、命令実行サイクル数計算を追加する命令コード「％ｃｙｃｌｅ＝ｃｙｃｌｅ＋４」をプログラムファイル５２に追加する。
【００５６】
次に、サイクル数計算コード追加部２３４は、プログラムファイル５２の５行目から１０行目の命令コードの命令実行に要する実行サイクル数を計算する。５、６、７、９、１０行目の命令コードの命令実行に要する実行サイクル数は、それぞれ１サイクルであり、８行目の命令コードの命令実行に要する実行サイクル数は４サイクルである。このため、サイクル数は「９」となる。そして、サイクル数計算コード追加部２３４は、計算したサイクル数が「９」であるため、命令実行サイクル数計算を追加するコード「％ｃｙｃｌｅ＝ｃｙｃｌｅ＋９」をプログラムファイル５２に追加する。
【００５７】
次に、サイクル数計算コード追加部２３４は、プログラムファイル５２の１１行目から１２行目の命令コードの命令実行に要する実行サイクル数を計算する。１１行目から１２行目の命令コードの命令実行に要する実行サイクル数は、それぞれ１サイクルである。このため、サイクル数は「２」となる。そして、サイクル数計算コード追加部２３４は、計算したサイクル数が「２」であるため、命令実行サイクル数計算を追加するコード「％ｃｙｃｌｅ＝ｃｙｃｌｅ＋２」をプログラムファイル５２に追加する。これにより、プログラムファイル５２ａが完成する。
【００５８】
図１０は、転送用コード追加部の処理を説明する図である。
転送用コード追加部２３５は、メモリアクセス情報をタイミングモデルへ転送するためのコードをプログラムファイル５２ａに追加する。図１０では、プログラムファイル５２ａの１行目と２行目の命令コードの間にメモリアクセス情報をタイミングモデルへ転送するためのコード「％ｃｙｃｌｅ＝％ｃｙｃｌｅ＋＠ｃａｌｃ＿ＬＤ（％Ｒ５，ｍｅｍ＿ａｄｄｒ＋５）」を追加し、プログラムファイル５２ａの２行目と３行目の命令コードの間にメモリアクセス情報をタイミングモデルへ転送するためのコード「％ｃｙｃｌｅ＝％ｃｙｃｌｅ＋＠ｃａｌｃ＿ＬＤ（％Ｒ６，ｍｅｍ＿ａｄｄｒ＋１０）」をプログラムファイル５２ａに追加する。これにより、プログラムファイル５２ｂが完成する。
【００５９】
図１１は、コード削除部の処理を説明する図である。
コード削除部２３６は、サイクル数の計算に依存しないコードをプログラムファイル５２ｂから削除する。図１１では、プログラムファイル５２ｂの１行目と３行目の命令コードの代わりに２行目と４行目にメモリアクセス情報をタイミングモデルへ転送するためのコードが追加されている。従って、１行目と３行目の命令コードは、ファイルの実行にあたりサイクル数の計算に依存しないコードであるため削除する。また、１０行目、１１行目、１２行目の命令コードも削除する。これにより、プログラムファイル５２ｃが完成する。
【００６０】
機械語変換部２３７は、プログラムファイル５２ｃを、簡易プロセッサ２ｂ１が処理可能な機械語に変換する。これにより、実行ファイルが完成する。そして、機械語変換部２３７は、完成した実行ファイルを実行ファイル記憶部２４に記憶する。
【００６１】
次に、演算部３２ａの実行サイクル数の算出方法を説明する。
図１２は、実行サイクル数の算出方法を示すフローチャートである。
［ステップＳ１］  演算部３２ａは、実行ファイル記憶部３１ａに記憶されている実行ファイルを実行し、処理対象の機械命令が命令実行に関する処理か否かを判断する。命令実行に関する処理であれば（ステップＳ１のＹｅｓ）、ステップＳ２に遷移する。命令実行に関する処理でなければ（ステップＳ１のＮｏ）、ステップＳ３に遷移する。
【００６２】
［ステップＳ２］  演算部３２ａは、命令の実行サイクル数を算出する。その後、ステップＳ５に遷移する。
［ステップＳ３］  演算部３２ａは、処理対象の機械命令がメモリアクセスに関する処理か否かを判断する。メモリアクセスに関する処理であれば（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。メモリアクセスに関する処理でなければ（ステップＳ３のＮｏ）、ステップＳ６に遷移する。
【００６３】
［ステップＳ４］  演算部３２ａは、メモリアクセスをメモリアーキテクチャ３２ｂに転送し、メモリアーキテクチャ３２ｂから実行サイクル数を得る。その後、ステップＳ５に遷移する。
【００６４】
［ステップＳ５］  演算部３２ａは、算出した実行サイクル数を加算（累積）する。その後、ステップＳ６に遷移する。
［ステップＳ６］  演算部３２ａは、実行ファイルに記載されている全ての機械命令を実行したか否かを判断する。実行ファイルに記載されている全ての機械命令を実行した場合（ステップＳ６のＹｅｓ）、ステップＳ８に遷移する。実行ファイルに記載されている全ての機械命令を実行していない場合（ステップＳ６のＮｏ）、ステップＳ７に遷移する。
【００６５】
［ステップＳ７］  演算部３２ａは、次の機械命令を読み込む。その後、ステップＳ１に遷移する。
［ステップＳ８］  演算部３２ａは、累積した実行サイクル数をワークステーション２０に出力する。その後、図１２の処理を終了する。
【００６６】
次に、ステップＳ４のメモリアクセスの実行サイクル数の算出方法を、具体例を用いて説明する。
図１３は、メモリアクセスの実行サイクル数の算出方法を説明する図である。
【００６７】
演算部３２ａは、設計対象のＬＳＩのコア数に対応する数の簡易プロセッサ３２１ａを備えている。
メモリアーキテクチャ３２ｂは、メモリアクセスのタイミングをモデル化したハードウェアであり、演算部３２ａは、メモリアーキテクチャ３２ｂにメモリアクセスアドレスを与えることにより、メモリアクセスで消費される実行サイクルを算出する。
【００６８】
メモリアーキテクチャ３２ｂには、１次キャッシュモデル３２２ａ、２次キャッシュモデル３２２ｂ、外部メモリモデル３２２ｃが設けられている。
メモリアーキテクチャ３２ｂは、簡易プロセッサ３２１ａから出力されるメモリアドレスに応じて必要な実行サイクルを簡易プロセッサ３２１ａに返す。具体的には、簡易プロセッサ３２１ａから出力されるメモリアドレスが１次キャッシュモデル３２２ａにヒットした場合は、１次キャッシュモデル３２２ａの実行サイクル数が返る。２次キャッシュモデル３２２ｂにヒットした場合は、２次キャッシュモデル３２２ｂにヒットした実行サイクル数＋バス待ち合わせ時間が返る。１次キャッシュモデル３２２ａおよび２次キャッシュモデル３２２ｂにミスした場合は、外部メモリモデル３２２ｃにアクセスした実行サイクル数＋バス待ち合わせ時間が返る。
【００６９】
以上述べたように、情報処理システム１００によれば、性能見積用コンパイラ２３が作成した実行ファイルは、元のファイルに比べ複雑な演算処理が省略されたものとなっている。このため、実行ファイルを実行する演算部３２ａの演算量が減り、簡易プロセッサ３２１ａの構成を簡易なものとすることができる。従って、ハードウェアリソースが少なくかつ高速な性能シミュレーションが実現可能となる。ハードウェアリソースを少なくすることができるので、プロセッサの数が増大したメニーコアにも対応することができる。
【００７０】
なお、ワークステーション２０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、実行ファイルを生成し、他の装置が、ハードウェア回路情報を生成するようにしてもよい。
【００７１】
以上、本発明の情報処理装置、情報処理方法およびプログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００７２】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１、またはワークステーション２０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００７３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７５】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【符号の説明】
【００７６】
１  情報処理装置
１ａ  ファイル作成部
１ｂ  回路情報作成部
２ａ  記憶部
２、３０  ハードウェアボード
２ａ１  ファイル
２ｂ  プロセッサモデル
２ｂ１、３２１ａ  簡易プロセッサ
２ｃ  タイミングモデル
３、１００  情報処理システム
１０  端末装置
２０  ワークステーション
２１  アプリケーション記憶部
２２  アーキテクチャ情報
２３  性能見積用コンパイラ
２４、３１ａ  実行ファイル記憶部
２５  タイミングモデルテンプレート記憶部
２６  ハードウェア回路情報生成部
２７  ハードウェア回路情報記憶部
２８  転送部
３１  不揮発性メモリ
３２  ＦＰＧＡ
３２ａ  演算部
３２ｂ  メモリアーキテクチャ
【図１】
2013171551.tif 000003
【図２】
2013171551.tif 000004
【図３】
2013171551.tif 000005
【図４】
2013171551.tif 000006
【図５】
2013171551.tif 000007
【図６】
2013171551.tif 000008
【図７】
2013171551.tif 000009
【図８】
2013171551.tif 000010
【図９】
2013171551.tif 000011
【図１０】
2013171551.tif 000012
【図１１】
2013171551.tif 000013
【図１２】
2013171551.tif 000014
【図１３】
2013171551.tif 000015