(57)【要約】 【課題】  仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムを実現する。【解決手段】  命令セット及びアーキテクチャモデルに則ってシステム動作記述をコンパイルする第１処理（Ｓ１）、コンパイルされたシステム動作記述とアーキテクチャモデルに対しシミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理（Ｓ２）、プロファイルデータを利用して命令セット及びアーキテクチャモデルに必要な変更を行なう第３処理（Ｓ２、Ｓ３）、及び上記各処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第４処理（Ｓ４）とを含む。第３処理において、命令セットに対する必要な変更は命令コードの削除／追加、それによって変化するオペコードサイズの決定であり、アーキテクチャモデルに対する必要な変更はアーキテクチャモデルの規模の選択である。【選択図】        図２
2005293448.tif 000002
【特許請求の範囲】
【請求項１】
命令セット及びアーキテクチャモデルに則ってシステム動作記述をコンパイルする第１処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理と、
前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第４処理とを含み、
前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データ処理装置の開発方法。
【請求項２】
前記システム動作記述とアーキテクチャモデルは共通の高級言語で記述されている、請求項１記載のデータ処理装置の開発方法。
【請求項３】
前記高級言語は、Ｃ、Ｃ＋＋、及びＳｙｓｔｅｍＣの中から選ばれた単数又は複数のプログラム言語である、請求項２記載のデータ処理装置の開発方法。
【請求項４】
前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す、請求項１記載のデータ処理装置の開発方法。
【請求項５】
前記アーキテクチャモデルは、パラメータによって規模が伸縮可能とされる、請求項１記載のデータ処理装置の開発方法。
【請求項６】
前記設計データはＲＴＬ設計データである、請求項１記載のデータ処理装置の開発方法。
【請求項７】
システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにコンピュータ装置によって実行可能なプログラムであって、
命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第１処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理と、
前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第４処理とを制御し、
前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データプロセッサの開発支援プログラム。
【請求項８】
システム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する、設計データの提供方法であって、
命令セット及びアーキテクチャモデルに則って前記受領したソースプログラムをコンパイルする第１処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理と、
前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて、設計データを生成する第４処理と、
受領したシステム動作記述に対応させて前記設計データを発送する第５処理とを含み、
前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである、設計データの提供方法。
【請求項９】
受領したシステム動作記述に対応させて前記プロファイルデータを発送する第６処理を更に含み、
前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す、請求項８記載の設計データの提供方法。
【請求項１０】
前記第６処理の後に、変更されたシステム動作記述を受領し、その後の第１処理及び第２処理には変更されたシステム動作記述を用いる、請求項９記載の設計データの提供方法。
【請求項１１】
システム動作記述を生成する第1処理と、
命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第２処理と、
コンパイルされたシステム動作記述とデータプロセッサのアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第３処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第４処理と、
前記プロファイルデータを利用して前記システム動作記述に必要な修正を行なう第５処理と、
前記第２処理乃至第５処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて前記データプロセッサの設計データを生成する第６処理とを含み、
前記第４処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第４処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データ処理システムの開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の機能仕様に特化したデータ処理装置を設計するのに適用される技術に関し、例えば組込み用途のデータプロセッサを特定の動作プログラムの実行に最適化するのに適用して有効な技術に関する。
【背景技術】
【０００２】
特許文献１には、Ｃ言語で記述された仕様に基づいてオブジェクトプログラムを生成し、その際に、命令ライブラリから命令コードを選択するとき、その命令コードを実行する追加処理ユニットを実レイアウトした評価データに基づいて命令コードを選択することにより、その仕様を実行するのに最適なオブジェクトプログラムを生成でき、そのオブジェクトプログラムの命令コードを実行するのに適したハードウェアの接続情報を得ることを可能にする。
【０００３】
特許文献２には、オプション命令が定義されたプロセッサを含むシステムＬＳＩの開発において、オプション命令やユーザ定義モジュール情報などの可変項目定義情報に基づいてソフトウェアを動作させ、ハードウェア記述を作成することにより、性能を最適化してシステムＬＳＩを開発可能とする。
【０００４】
【特許文献１】特開２００３−３３７８３８号公報
【０００５】
【特許文献２】特開２００２−２３００６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明者は特定の機能仕様に特化したデータプロセッサの設計を効率的に更には柔軟に行なうことについて検討した。汎用データプロセッサの開発では、幅広いユーザー(システムセットメーカー)用途に答えるべく、長期の開発期間で提供するＬＳＩの仕様検討からフルスペック検証までを行っている。フルスペック検証では、全ての命令コードに対してその実行形態もしくは実行順序によって前後の処理に不所望な依存性を生じないか等について検証を行なうことが必要であり、膨大な時間を要する。これは多くのプログラムの実行に対しても正常な動作を保証しなければならないからである。このような開発姿勢は、アプリケーションに特化したデータプロセッサ性能を実現するという点では、開発時間が膨大になり、冗長なハードウェア構成が残ることが予想され、劣勢となる。各ユーザの必要とするシステム動作に特化したデータプロセッサ性能の実現という観点では、機能実現に必要な命令の追加だけでなく、命令の削除も必要になる場合があり、それぞれの仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムを実現するための手段の必要性が本発明者によって見出された。上記特許文献ではそこまで踏み込んだ記載はない。
【０００７】
本発明の目的は、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムの実現の資することができるデータ処理装置の開発方法、設計データの提供方法、及びデータ処理システムの開発方法を提供することにある。
【０００８】
本発明の別の目的は、仕様の実現に有意義な命令の追加と仕様の実現に必要としない命令の削除に対してハードウェアを最適化することができるデータ処理装置の開発方法、設計データの提供方法、及びデータ処理システムの開発方法を提供することにある。
【０００９】
本発明の更に別の目的は、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムの開発を容易化することができるデータプロセッサの開発支援プログラムを提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
〔１〕データ処理装置の開発方法は、命令セット及びアーキテクチャモデルに則ってシステム動作記述（ソースプログラム）をコンパイルする第１処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理、及び、前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第４処理とを含む。このとき、前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、また、前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
【００１３】
上記手段によれば、シミュレーションを繰返しながらプロファイルデータを利用して命令セット及びアーキテクチャモデルに必要な変更を繰り返し行ない、その結果得られる命令セットとアーキテクチャモデルに基づいて設計データを生成するから、システム動作記述に最適なハードウェアの設計を実現することができる。この手法により、システム動作記述に特化したハードウェアの最適化による性能向上、システム動作記述の仕様変更などによるハードウェア設計出戻りを最小限にすること並びに検証期間短縮等による設計期間短縮、設計データの自動生成と設計期間の短縮による設計費用削減という効果を得る。
【００１４】
本発明の具体的な一つの形態では、前記システム動作記述とアーキテクチャモデルは共通の高級言語で記述されている。例えば、前記高級言語は、Ｃ、Ｃ＋＋、及びシステムＣ（ＳｙｓｔｅｍＣ）の中から選ばれた単数又は複数のプログラム言語である。システム動作記述に最適なハードウェアとソフトウェアの協調設計において、双方に共通のプログラム言語を用いるから、全体のレビューを高速化でき、あらに開発期間を短縮するのに寄与することができる。
【００１５】
本発明の具体的な一つの形態では、前記プロファイルデータは、命令セットに含まれていて実行された命令の種類、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す。
【００１６】
本発明の具体的な一つの形態として、前記アーキテクチャモデルは、パラメータによって規模の伸縮が可能とされる。例えば命令コードのビット数に応じて可変可能な、命令バスのバス幅、命令デコーダの論理規模、必要な性能に応じて可変可能にされるキャッシュメモリの記憶容量、演算データサイズに応じて可変可能にされる演算器のビット数などを、パラメータによって選択可能にされる。
【００１７】
本発明の具体的な一つの形態として、前記設計データはＲＴＬ（Register Transfer Level）設計データである。これにより、仕様に対するモジュール個別の論理設計が完了されることになる。
【００１８】
〔２〕データプロセッサの開発支援プログラムは、システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにコンピュータ装置によって実行可能なプログラムであって、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第１処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータを生成する第２処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理、前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第４処理とを制御する。ここで、前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
【００１９】
このデータプロセッサの開発支援プログラムを利用することにより、上記開発方法を容易に実行してデータ処理装置の設計データを得ることができる。
【００２０】
〔３〕設計データの提供方法は、システム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する方法であって、命令セット及びアーキテクチャモデルに則って前記受領したソースプログラムをコンパイルする第１処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第２処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第３処理、前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて、設計データを生成する第４処理、受領したシステム動作記述に対応させて前記設計データを発送する第５処理とを含む。ここで、前記第３処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第３処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
【００２１】
この方法により提供される設計データを用いることにとり、システム仕様に対して最適化されたデータプロセッサ全体の設計期間を短縮することができる。
【００２２】
本発明の具体的な一つの形態では、受領したシステム動作記述に対応させて前記プロファイルデータを発送する第６処理を更に含む。前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す。発送されたプロファイルデータを受領するシステム動作記述の開発主体は、そのプロファイルデータを参照して、システム動作記述を部分的に変更することができる。前記第６処理の後に、部分的に変更されたシステム動作記述を受領したときは、その後の第１処理及び第２処理には変更されたシステム動作記述を用いる。
【００２３】
〔４〕データ処理システムの開発方法は、システム動作記述を生成する第1処理と、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第２処理、コンパイルされたシステム動作記述とデータプロセッサのアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第３処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第４処理、前記プロファイルデータを利用して前記システム動作記述に必要な修正を行なう第５処理、及び前記第２処理乃至第５処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて前記データプロセッサの設計データを生成する第６処理とを含む。前記第４処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第４処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの論理規模を選択することである。
【００２４】
このシステム開発方法によれば、ハードウェアとソフトウェアの協調設計を実現することができ、それによる上記効果を得ることができる。仕様の実現に有意義な命令の追加と仕様の実現に必要としない命令の削除に対してハードウェアを最適化することができる。また上記データプロセッサの開発支援プログラムにより、仕様に対してソフトウェア及びハードウェアの両面で過不足のないシステムの開発を容易化することができる。
【発明の効果】
【００２５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２６】
すなわち、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステム若しくはデータ処理装置の実現に資することができる。
【発明を実施するための最良の形態】
【００２７】
図１にはデータプロセッサの開発支援システムが例示される。この開発支援システムはデータプロセッサのハードウェアとソフトウェアの協調設計を実現するものであり、システムライブラリ（ＳｙｓＬＩＢ）１は前記協調設計に利用される各種ツールとデータを有する。システム動作記述（ＳＰＧＭ）２はデータプロセッサで実現しようとする機能を記述したソースプログラムである。ＯＳ(オペレーティングシステム)３はシステムライブラリ１のツール類を実行するための実行環境を管理するプログラムである。例えばハードウェアとは電子回路のことである。ソフトウェアとはハードウェアと共に製品をコントロールするプログラムのことである。
【００２８】
システムライブラリ１にはＩＳＡ（インストラクション・セット・アーキテクチャ）４、コンパイラ（ＣＭＰＬ）５、シミュレータアナライザ（ＳＩＭ＿ＡＮＬＺ）６、ＩＳＡクリエータ（ＩＳＡ＿ＣＲＡＴ）７、コンパイラジェネレータ（ＣＭＰＬ＿ＧＥＮ）８、オペコードディストリビュータ（ＯＰＣ＿ＤＥＳＢ）９、ＲＴＬジェネレータ（ＲＴＬ＿ＧＥＮ）１０、及びＲＴＬベリファイヤ（ＲＴＬ＿ＶＲＦ）１１などを有する。
【００２９】
ＩＳＡ４は、あるプロセッサで利用可能な命令セット（ＩＳ）と、プロセッサのハードウェアに関するアーキテクチャモデル（ＭＤＬ）とを有する。あるプロセッサとはｘ８６などのプロセッサファミリを想定すればよいが、特にここでは開発すべきデータプロセッサで利用可能な命令群となる。利用可能な命令群とは、プロセッサファミリの全ての世代に通用する全ての命令ということもできるし、全ての世代に共通の命令群、若しくは所定のプリミティブな命令群として定義されてもよい。命令セット（ＩＳ）に含まれる各命令の機能は、ここではシステムＣ又はＣ＋＋などのＣ言語で記述されている。アーキテクチャモデル（ＭＤＬ）はそのハードウェア構成をＣ言語による機能記述で特定する。ＣＰＵをハードウェアとして捉え、該ハードウェアを命令セットを実現する論理構成として表したものである。特にその論理的構成要素（例えばメモリなどを含め、論理ブロックのサイズ、データ送信線の本数など）を、パラメータによって規模が伸縮可能なパラメータ化モジュールとして定義している。例えば命令デコーダの論理規模を命令のオペコードのビット数に合わせて伸縮可能とするパラメータを用いて命令デコーダを定義している。前記システム動作記述（ＳＰＧＭ）２、命令セット（ＩＳ）、アーキテクチャモデル（ＭＤＬ）は共にＣ言語のような共通の高級言語で記述され、ハードウェアとソフトウェアの協調設計をし易くしている。Ｃ言語とは、ソフトウェアプログラミング言語で、Ｃ＋＋とはＣ言語にオブジェクト指向の概念を取り入れて拡張したプログラム言語で、ＳｙｓｔｅｍＣ（システムＣ）とは、Ｃ＋＋言語をベースとしたシステムレベル記述言語で、ハードウェアやシステム記述を行えるよう、クラスライブラリの形で拡張した言語のことである。
【００３０】
コンパイラ５は命令セット（ＩＳ）及びアーキテクチャモデル（ＭＤＬ）に則って前記システム動作記述（ＳＰＧＭ）２をコンパイルする。要するに、コンパイラ５はＣ言語からＣ言語へのコンパイルを行うことになるが、システム動作記述（ＳＰＧＭ）２のＣ言語記述をアーキテクチャモデル（ＭＤＬ）上における命令セット（ＩＳ）の命令実行形態で定義し直すことになる。１３はコンパイラ５でコンパイルされたシステム動作記述（ＣＭＰ＿ＳＰＧＭ）である。例えばシステム動作記述とは、システムに求められる機能および非機能（性能、拡張性、信頼性等の要求）をどのように実現するのかという仕様のプログラム記述である。Ｃ言語等の高級言語を用いて、ハードウェアの特徴である、並列動作や動作時間などの表現機能が追加されている。  シミュレータアナライザ６はコンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行ってその性能を指標するプロファイルデータ（ＰＲＦＬ）１７を生成する。
【００３１】
ＩＡＳクリエータ７、コンパイラジェネレータ８、及びオペコードディストリビュータ９は、前記プロファイルデータ１７に基づいて、命令セットやアーキテクチャモデルを最適化するのに用いられる。命令セットやアーキテクチャモデルを最適化するには、プロファイルデータを繰り返し生成するようにコンパイラ５やシミュレータアナライザ６などのツールを繰り返し実行する。また、その途中で、プロファイルデータに基づいてシステム動作記述が部分的に手直しされることがある。手直しされた場合にはその修正されたシステム動作記述がコンパイラ５によるコンパイルの対象とされる。前記プロファイルデータ１７には命令に実行頻度や追加すべき命令などの情報を含み、それに基づき、命令セットに対する命令の削除や追加などによって命令セットの最適化を行うことができる。プロファイルデータ１７並びに命令セット（ＩＳ）やアーキテクチャモデル（ＭＤＬ）に対する最適化についてその詳細は後述する。
【００３２】
ＲＴＬジェネレータ１０は、そのように最適化された命令セットやアーキテクチャモデルに基づいてデータプロセッサの設計データとしてＲＴＬデータを生成する。生成されたＲＴＬデータはテストベクタ１２を用いてＲＴＬベリファイヤ１１で検証される。
【００３３】
システムライブラリ１を用いた協調設計により、最適化されたＲＴＬ設計データ（ＯＰＴＭ＿ＲＴＬ）１４、最適化されたコンパイラ（ＯＰＴＭ＿ＣＭＰＬ）１５、それを用いてコンパイルされたシステム動作記述（ＣＭＰＬ＿ＳＰＧＭ）１６が得られる。
【００３４】
図２にはデータプロセッサの開発支援システムを利用した開発方法のフローチャートが示される。前記コンパイラを用いてシステム動作記述のコンパイルが行われる（Ｓ１）。コンパイルされたシステム動作記述に対してはシミュレータアナライザ６によりシステム動作記述の性能解析が行われ、プロファイルデータが生成され、命令セットの命令に対する追加／削除など、命令セットに対する最適化が行なわれる（Ｓ２）。更に、命令の追加／削除の結果やプロファイルデータに基づいてアーキテクチャモデルの最適化が行なわれる（Ｓ３）。Ｓ２，Ｓ３の処理は夫々単独に又は連続的に繰り返されて最適化が完了されることになるが、その変更をシステム動作記述に反映するように適宜システム動作記述のコンパイルが行なわれる。命令セットとアーキテクチャモデルの最適化を完了した後、その結果を用いてＲＴＬ設計データの自動生成が行なわれる（Ｓ４）。例えば設計データとは、ＣＰＵやデータプロセッサ（ＣＰＵおよびメモリなどの周辺回路を含んだもの）をハードウェアとして実現させる為にハードウェア言語（Verilog-HDL（Hardware Description Language）、VHDL等の言語）で記述したものである。
【００３５】
図３にはコンパイルのための付加情報の入力が示される。データプロセッサの開発支援システムにシステム動作記述を入力するとき、そのシステム動作記述で実行する機能の使用頻度を付加情報２０として入力する。この付加情報は処理を機能単位で分類した結果となるから、機能単位に該当する命令が命令セットにあればその命令の実行頻度が高くなることを予め予想可能になる。したがって、コンパイル処理ではその機能の実行に対応する命令を割り当てるように処理の翻訳を行なうことが可能になる。
【００３６】
図４にはプロファイルデータの出力結果が例示される。例えばプロファイルデータには命令セットに含まれる命令の利用頻度（Instruction Usage）、命令の実行サイクル（ＣＰＩ：Cycle time Per Instruction）、追加されることが望ましいと判断された命令（Additional Instruction Set）、命令実行時の消費電力（Energy  Consumption）、アプリケーション性能（処理速度）を律束したシステム動作記述における処理などを特定する情報（Low Performance Function）が含まれる。
【００３７】
図５には別の解析結果に係るプロファイルデータを示す。２１は初期設定に係る命令セット、２２は当該別の解析結果に係るプロファイルデータである。例えば性能や消費電力から見た利用されるべき命令の優先順位、高性能を実現するために必要な新たな命令などを示すことができる。また、更に別の解析結果として図６に例示されるように、使用頻度、性能から見た優先順位、総合評価という結果より使用されない命令を指し示すことができる。図６において２３は更に別の解析結果としてのプロファイルデータ示す。左欄は命令セットの使用頻度を表し、右欄は性能から見た優先順を表す。Ｈは頻度や性能が高い、Ｍは頻度や性能が普通、Ｌは頻度や性能が低いことを意味する。図６の評価結果に対し、使用されなかった命令を命令セットから削除するかは、システム動作記述の設計者に選択させるのが好適である。将来のシステム動作記述のバージョンアップや仕様の変更を見据えて命令を残したい場合、あるいはシステム動作記述にバグがあった場合に効果的な対処に都合がよいとされている命令を残したい、という考慮などを反映させることが必要になるからである。図６において２４は一部の命令が削除されて更新された命令セットを表す。
【００３８】
図７には解析結果やプロファイルデータに基づいてその機能が利用されるツールによる処理が例示される。ＩＳＡクリエータ７は、追加すべき命令を生成する。コンパイラジェネレータ８は新たな命令追加によるコンパイラの更新、若しくは更新されたコンパイラを生成する。オペコードディストリビュータは追加された命令セットに新たなオペコードの割り振りを行なう。命令の追加／削除などによる命令セットの最適化が行なわれると、命令セットに残る命令の数に応じてオペコードの必要最小限のビット数が変わる。これはアーキテクチャモデルに反映させることができる。
【００３９】
図８にはアーキテクチャモデルの最適化の例が示される。データプロセッサのＣＰＵ（中央処理装置）において、命令バス３０、命令アドレスバス３１、命令デコーダ３６、データバス３２、データアドレスバス３３、レジスタファイル３７、ＡＬＵ／シフタ３８、命令ＴＬＢ／キャッシュ３４、データＴＬＢ／キャッシュ３５がパラメータ化モジュールとされ、ＲＡＭ３９がパラメータ化モジュールとされる。例えばオペコードのビット数が少なくなれば、ＣＰＵ内部の命令バス３０、命令デコーダ３６のビット数を縮小することができる。また、別の選択として、ＣＰＵ内部の命令バス３０のビット数はそのままとし、命令デコーダ３６のオペコード部分の論理だけ縮小する選択を採用することも可能である。前者の場合にはＣＰＵのハードウェアの論理規模の縮小に資することができる。後者の場合には命令語長は変わりないので、オペコードのビット数が少なくなった分だけ命令のオペランド指定フィールドのビット数が増えることになる。オペランド指定フィールドのビット数が増えればアドレシングモードで指定可能なアドレス範囲を広げることができ、また、イミディエイトデータのビット数若しくはデータ数を増やすことができ、データ処理の高速化若しくは高機能化することができ、データプロセッサの性能向上に通ずる。
【００４０】
図９にはアーキテクチャモデルの最適化の別の例としてマルチプロセッサシステムの選択態様が示される。例えば、４１のシングルプロセッサシステム、４２のマルチプロセッサシステム、４３のメイン・サブの補完型プロセッサシステム、４４キャッシュ分配型システムなどのアーキテクチャを予めモデル化し、プロファイルデータに現れる性能評価によりシステム動作記述に特化したモデルを選択すればよい。図９においてＣはＣＰＵのキャッシュメモリである。ＢはサブＣＰＵである。
【００４１】
図１０にはＲＴＬデータを自動生成するときの原理が例示される。例えばＣＰＵのアーキテクチャが命令フェッチ（ＩＦ）命令デコード（ＩＤ）、演算実行（ＥＸ）、メモリアクセス（ＭＡＣＣ）、及びライトバック（ＷＢＫ）の５段パイプラインを採用するとき、左側に記載された命令は最終的に命令セットに含まれる命令である。その命令毎に、各パイプラインステージにおける処理が分類されている。図では演算実行における各命令の処理が分類されている。これを基にＲＴＬデータを生成するには、命令セットに含まれる命令の各演算実行の処理の総和を演算実行部のＲＴＬデータとすればよい。このＲＴＬデータは例えば図１０に対応する図１１の演算実行部の論理構成を特定する。
【００４２】
上記データプロセッサの開発支援システムを利用することにより得られる効果について説明する。
【００４３】
（１）性能向上
アプリケーション設計からのプロファイリングによりボトルネックになる、ＣＰＩ及び消費電力を最適化することによりＣＰＵ若しくはデータプロセッサ側からシステム動作記述の実行性能を向上させることができる。また、システム動作記述の設計初期段階（機能レベル）において前記シミュレータアナライザ６による解析に基づいて、システム動作記述の性能改善、アーキテクチャモデルの最適化などが可能であることから、システム動作記述のソフトウェア設計とデータプロセッサのハードウェア設計の双方に対して協調的に改善を図ることができ、大幅な性能(機能)向上を達成できると考えられる。
【００４４】
（２）設計期間短縮
システム動作記述の設計初期段階にてプロファイルデータなどに基づいてデータプロセッサによる処理性能を見積もりすることができるから、設計の出戻りを最小限に抑えることができ、設計期間の短縮に資することができる。設計の出戻りを抑えることができるのは、ハードウェアとソフトウェアの協調設計の効果でもある。最適化されて最終的に得られた命令セットとアーキテクチャモデルに基づいてデータプロセッサのＲＴＬデータを自動生成し、システム動作記述からテストベクタを自動生成するから、検証期間も大幅に短縮される。また、検証においてはシステム動作記述に特化したデータプロセッサ設計により、汎用データプロセッサに比べて検証ターゲットを集約できる。これはデータプロセッサの開発期間短縮に多いに寄与する。
【００４５】
さらに、システム動作記述の設計変更に対しても、データプロセッサのＲＴＬデータの自動生成によりリアルタイムに対応でき、フレキシブルな設計が可能となる。
【００４６】
（３）設計費用削減
前記協調設計並びに最適化などの設計の大部分をデータプロセッサの開発支援システムのツールを用いて自動化できるので、データプロセッサの設計期間が大幅に短縮され、これによってその分設計費用を削減することができる。
【００４７】
（４）本設計ツールを用いて前記処理手順で設計されたシステム動作記述とデータプロセッサは高いコストパフォーマンスとオンタイムな市場への供給が可能となる。データプロセッサのアプリケーション用途に応じた性能と機能に特化したデータプロセッサが実現可能であるため、システム動作記述の優位性を最大限に発揮させることできる。
【００４８】
図１２には前記データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの開発フローが示される。システム動作記述はアプリケーションセットメーカが開発する。このシステム動作記述を実行するデータプロセッサの設計はＬＳＩベンダが行なう。設計初期段階においてアプリケーションセットメーカは、システムの性能、消費電力の見積りなどを行なって機能設計を行ない、システム動作記述を作成する。ＬＳＩベンダはデータプロセッサの開発支援システムを用いて、システム動作記述の実行に有効な命令セットの解析を行ない、最適なアーキテクチャモデルの解析を行なっていく。これにより設計初期段階でクリティカルな問題が発見され、最適化が進められる。最適化は、システム動作記述にも反映可能とされ、データプロセッサの命令セット及びアーキテクチャもシステム動作記述に最適化される。これにより、出戻り少なく設計工数が短縮され、アプリケーションに特化したデータプロセッサをオンタイムで提供可能になる。
【００４９】
図１３には前記データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの別の開発フローが示される。データプロセッサの開発支援システムを用いた設計はファブレス（ＬＳＩの製造設備を持たず専らＬＳＩの設計を請け負う業務主体）が請け負う。即ち、ファブレスは、アプリケーションセットメーカからシステム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する。その設計データを得る方法は上記と同様であり、最後に、受領したシステム動作記述に対応させて前記ＲＴＬ設計データ若しくは最終的なマスクデータがシステムセットメーカに発送される。ファブレスはそのＲＴＬデータを利用して最終的なレイアウト設計まで行なう場合も有り、またＲＴＬデータの生成だけを請け負い、配置配線設計を他のファブレスに委託する場合には当該他のファブレスに前記ＲＴＬデータが渡される。その設計データを用いたＬＳＩの製造はファブ（ＬＳＩの製造設備を持ち専らＬＳＩの製造を請け負う業務主体）が請け負う。このような開発フローにおいても図１２の場合と同様の効果を得ることができる。図１３の場合には、開発途中でプロファイルデータをファブレスからシステムセットメーカに渡し、システムセットメーカはそのプロファイルデータを参照して、システム動作記述を部分的に変更したりする。システム動作記述を変更すると、ファブレスは変更されたシステム動作記述を用いて開発処理を継続する。
【００５０】
前記データプロセッサの開発支援システムのツール類を構成するデータプロセッサの開発支援プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ―ＲＯＭ、ＤＶＤ−ＲＡＭ等の記録媒体に記録されて頒布され、或いはインターネットなどの通信回線を介して流通されることにより、前記データプロセッサの開発支援システムを容易に実現できる。このデータプロセッサの開発支援プログラムは、システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにエンジニアリングワークステーションなどのコンピュータ装置で実行可能なプログラムであり、図２に例示されるように、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする処理（Ｓ１）、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する処理（Ｓ２）、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう処理（Ｓ２，Ｓ３）、前記第１処理乃至第３処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいてＲＴＬ設計データを生成する処理（Ｓ４）とを制御する。前述と同様に、前記Ｓ２の処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記Ｓ３の処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
【００５１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５２】
例えば、データプロセッサは中央処理（ＣＰＵ）だけであっても、またキャッシュメモリやＲＡＭなどの周辺回路や、複数バス構成を含んだ半導体集積回路装置であっても、どちらでもよい。高級言語はＣ、Ｃ＋＋、システムＣの各言語に限定されず、その他の言語であってもよい。また、システム動作記述とＩＳＡの言語は必ずしも共通言語でなくてもよい。設計データはＲＴＬに限定されずその他のＨＤＬ（Hardware Description Languager）記述データであってもよい。また、アーキテクチャモデルのデータ構造、パラメータ化モジュールのデータ構造はローカルであろうがグローバルであろうが適宜決定されていればよい。
【図面の簡単な説明】
【００５３】
【図１】データプロセッサの開発支援システムを例示するブロック図である。
【図２】データプロセッサの開発支援システムを利用した開発方法のフローチャートである。
【図３】コンパイルのための付加情報を示す説明図である。
【図４】プロファイルデータの出力結果を示す説明図である。
【図５】プロファイルデータを用いた解析結果を示す説明図である。
【図６】解析結果として使用頻度、性能から見た優先順位、総合評価を挙げた例を示す説明図である。
【図７】解析結果やプロファイルデータに基づいてその機能が利用されるツールによる処理を示す説明図である。
【図８】アーキテクチャモデルの最適化の例を示す説明図である。
【図９】アーキテクチャモデルの最適化の別の例としてマルチプロセッサシステムの選択態様を示す説明図である。
【図１０】ＲＴＬデータを自動生成するときの原理を例示す説明図である。
【図１１】ＲＴＬデータが特定する図１０に対応する図１１の演算実行部の論理構成を示す説明図である。
【図１２】データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの開発フローを示す説明図である。
【図１３】データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの別の開発フローを示す説明図である。
【符号の説明】
【００５４】
１  システムライブラリ
２  システム動作記述
３  ＯＳ
４  ＩＳＡ
ＩＳ  命令セット
ＭＤＬ  アーキテクチャモデル
５  コンパイラ
６  シミュレータアナライザ
７  ＩＳＡクリエータ
８  コンパイラジェネレータ
９  オペコードディストリビュータ
１０  ＲＴＬジェネレータ
１１  ＲＴＬベリファイヤ
【図１】
2005293448.tif 000003
【図２】
2005293448.tif 000004
【図３】
2005293448.tif 000005
【図４】
2005293448.tif 000006
【図５】
2005293448.tif 000007
【図６】
2005293448.tif 000008
【図７】
2005293448.tif 000009
【図８】
2005293448.tif 000010
【図９】
2005293448.tif 000011
【図１０】
2005293448.tif 000012
【図１１】
2005293448.tif 000013
【図１２】
2005293448.tif 000014
【図１３】
2005293448.tif 000015