JP2005293448A - データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 - Google Patents
データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 Download PDFInfo
- Publication number
- JP2005293448A JP2005293448A JP2004110807A JP2004110807A JP2005293448A JP 2005293448 A JP2005293448 A JP 2005293448A JP 2004110807 A JP2004110807 A JP 2004110807A JP 2004110807 A JP2004110807 A JP 2004110807A JP 2005293448 A JP2005293448 A JP 2005293448A
- Authority
- JP
- Japan
- Prior art keywords
- architecture model
- data
- instruction
- instruction set
- description
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムを実現する。
【解決手段】 命令セット及びアーキテクチャモデルに則ってシステム動作記述をコンパイルする第1処理(S1)、コンパイルされたシステム動作記述とアーキテクチャモデルに対しシミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理(S2)、プロファイルデータを利用して命令セット及びアーキテクチャモデルに必要な変更を行なう第3処理(S2、S3)、及び上記各処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第4処理(S4)とを含む。第3処理において、命令セットに対する必要な変更は命令コードの削除/追加、それによって変化するオペコードサイズの決定であり、アーキテクチャモデルに対する必要な変更はアーキテクチャモデルの規模の選択である。
【選択図】 図2
Description
本発明は、特定の機能仕様に特化したデータ処理装置を設計するのに適用される技術に関し、例えば組込み用途のデータプロセッサを特定の動作プログラムの実行に最適化するのに適用して有効な技術に関する。
特許文献1には、C言語で記述された仕様に基づいてオブジェクトプログラムを生成し、その際に、命令ライブラリから命令コードを選択するとき、その命令コードを実行する追加処理ユニットを実レイアウトした評価データに基づいて命令コードを選択することにより、その仕様を実行するのに最適なオブジェクトプログラムを生成でき、そのオブジェクトプログラムの命令コードを実行するのに適したハードウェアの接続情報を得ることを可能にする。
特許文献2には、オプション命令が定義されたプロセッサを含むシステムLSIの開発において、オプション命令やユーザ定義モジュール情報などの可変項目定義情報に基づいてソフトウェアを動作させ、ハードウェア記述を作成することにより、性能を最適化してシステムLSIを開発可能とする。
本発明者は特定の機能仕様に特化したデータプロセッサの設計を効率的に更には柔軟に行なうことについて検討した。汎用データプロセッサの開発では、幅広いユーザー(システムセットメーカー)用途に答えるべく、長期の開発期間で提供するLSIの仕様検討からフルスペック検証までを行っている。フルスペック検証では、全ての命令コードに対してその実行形態もしくは実行順序によって前後の処理に不所望な依存性を生じないか等について検証を行なうことが必要であり、膨大な時間を要する。これは多くのプログラムの実行に対しても正常な動作を保証しなければならないからである。このような開発姿勢は、アプリケーションに特化したデータプロセッサ性能を実現するという点では、開発時間が膨大になり、冗長なハードウェア構成が残ることが予想され、劣勢となる。各ユーザの必要とするシステム動作に特化したデータプロセッサ性能の実現という観点では、機能実現に必要な命令の追加だけでなく、命令の削除も必要になる場合があり、それぞれの仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムを実現するための手段の必要性が本発明者によって見出された。上記特許文献ではそこまで踏み込んだ記載はない。
本発明の目的は、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムの実現の資することができるデータ処理装置の開発方法、設計データの提供方法、及びデータ処理システムの開発方法を提供することにある。
本発明の別の目的は、仕様の実現に有意義な命令の追加と仕様の実現に必要としない命令の削除に対してハードウェアを最適化することができるデータ処理装置の開発方法、設計データの提供方法、及びデータ処理システムの開発方法を提供することにある。
本発明の更に別の目的は、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステムの開発を容易化することができるデータプロセッサの開発支援プログラムを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕データ処理装置の開発方法は、命令セット及びアーキテクチャモデルに則ってシステム動作記述(ソースプログラム)をコンパイルする第1処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理、及び、前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第4処理とを含む。このとき、前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、また、前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
上記手段によれば、シミュレーションを繰返しながらプロファイルデータを利用して命令セット及びアーキテクチャモデルに必要な変更を繰り返し行ない、その結果得られる命令セットとアーキテクチャモデルに基づいて設計データを生成するから、システム動作記述に最適なハードウェアの設計を実現することができる。この手法により、システム動作記述に特化したハードウェアの最適化による性能向上、システム動作記述の仕様変更などによるハードウェア設計出戻りを最小限にすること並びに検証期間短縮等による設計期間短縮、設計データの自動生成と設計期間の短縮による設計費用削減という効果を得る。
本発明の具体的な一つの形態では、前記システム動作記述とアーキテクチャモデルは共通の高級言語で記述されている。例えば、前記高級言語は、C、C++、及びシステムC(SystemC)の中から選ばれた単数又は複数のプログラム言語である。システム動作記述に最適なハードウェアとソフトウェアの協調設計において、双方に共通のプログラム言語を用いるから、全体のレビューを高速化でき、あらに開発期間を短縮するのに寄与することができる。
本発明の具体的な一つの形態では、前記プロファイルデータは、命令セットに含まれていて実行された命令の種類、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す。
本発明の具体的な一つの形態として、前記アーキテクチャモデルは、パラメータによって規模の伸縮が可能とされる。例えば命令コードのビット数に応じて可変可能な、命令バスのバス幅、命令デコーダの論理規模、必要な性能に応じて可変可能にされるキャッシュメモリの記憶容量、演算データサイズに応じて可変可能にされる演算器のビット数などを、パラメータによって選択可能にされる。
本発明の具体的な一つの形態として、前記設計データはRTL(Register Transfer Level)設計データである。これにより、仕様に対するモジュール個別の論理設計が完了されることになる。
〔2〕データプロセッサの開発支援プログラムは、システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにコンピュータ装置によって実行可能なプログラムであって、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第1処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータを生成する第2処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理、前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第4処理とを制御する。ここで、前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
このデータプロセッサの開発支援プログラムを利用することにより、上記開発方法を容易に実行してデータ処理装置の設計データを得ることができる。
〔3〕設計データの提供方法は、システム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する方法であって、命令セット及びアーキテクチャモデルに則って前記受領したソースプログラムをコンパイルする第1処理、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理、前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて、設計データを生成する第4処理、受領したシステム動作記述に対応させて前記設計データを発送する第5処理とを含む。ここで、前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
この方法により提供される設計データを用いることにとり、システム仕様に対して最適化されたデータプロセッサ全体の設計期間を短縮することができる。
本発明の具体的な一つの形態では、受領したシステム動作記述に対応させて前記プロファイルデータを発送する第6処理を更に含む。前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す。発送されたプロファイルデータを受領するシステム動作記述の開発主体は、そのプロファイルデータを参照して、システム動作記述を部分的に変更することができる。前記第6処理の後に、部分的に変更されたシステム動作記述を受領したときは、その後の第1処理及び第2処理には変更されたシステム動作記述を用いる。
〔4〕データ処理システムの開発方法は、システム動作記述を生成する第1処理と、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第2処理、コンパイルされたシステム動作記述とデータプロセッサのアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第3処理、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第4処理、前記プロファイルデータを利用して前記システム動作記述に必要な修正を行なう第5処理、及び前記第2処理乃至第5処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて前記データプロセッサの設計データを生成する第6処理とを含む。前記第4処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記第4処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの論理規模を選択することである。
このシステム開発方法によれば、ハードウェアとソフトウェアの協調設計を実現することができ、それによる上記効果を得ることができる。仕様の実現に有意義な命令の追加と仕様の実現に必要としない命令の削除に対してハードウェアを最適化することができる。また上記データプロセッサの開発支援プログラムにより、仕様に対してソフトウェア及びハードウェアの両面で過不足のないシステムの開発を容易化することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、仕様に対してソフトウェア及びハードウェアの両面で過不足の無いシステム若しくはデータ処理装置の実現に資することができる。
図1にはデータプロセッサの開発支援システムが例示される。この開発支援システムはデータプロセッサのハードウェアとソフトウェアの協調設計を実現するものであり、システムライブラリ(SysLIB)1は前記協調設計に利用される各種ツールとデータを有する。システム動作記述(SPGM)2はデータプロセッサで実現しようとする機能を記述したソースプログラムである。OS(オペレーティングシステム)3はシステムライブラリ1のツール類を実行するための実行環境を管理するプログラムである。例えばハードウェアとは電子回路のことである。ソフトウェアとはハードウェアと共に製品をコントロールするプログラムのことである。
システムライブラリ1にはISA(インストラクション・セット・アーキテクチャ)4、コンパイラ(CMPL)5、シミュレータアナライザ(SIM_ANLZ)6、ISAクリエータ(ISA_CRAT)7、コンパイラジェネレータ(CMPL_GEN)8、オペコードディストリビュータ(OPC_DESB)9、RTLジェネレータ(RTL_GEN)10、及びRTLベリファイヤ(RTL_VRF)11などを有する。
ISA4は、あるプロセッサで利用可能な命令セット(IS)と、プロセッサのハードウェアに関するアーキテクチャモデル(MDL)とを有する。あるプロセッサとはx86などのプロセッサファミリを想定すればよいが、特にここでは開発すべきデータプロセッサで利用可能な命令群となる。利用可能な命令群とは、プロセッサファミリの全ての世代に通用する全ての命令ということもできるし、全ての世代に共通の命令群、若しくは所定のプリミティブな命令群として定義されてもよい。命令セット(IS)に含まれる各命令の機能は、ここではシステムC又はC++などのC言語で記述されている。アーキテクチャモデル(MDL)はそのハードウェア構成をC言語による機能記述で特定する。CPUをハードウェアとして捉え、該ハードウェアを命令セットを実現する論理構成として表したものである。特にその論理的構成要素(例えばメモリなどを含め、論理ブロックのサイズ、データ送信線の本数など)を、パラメータによって規模が伸縮可能なパラメータ化モジュールとして定義している。例えば命令デコーダの論理規模を命令のオペコードのビット数に合わせて伸縮可能とするパラメータを用いて命令デコーダを定義している。前記システム動作記述(SPGM)2、命令セット(IS)、アーキテクチャモデル(MDL)は共にC言語のような共通の高級言語で記述され、ハードウェアとソフトウェアの協調設計をし易くしている。C言語とは、ソフトウェアプログラミング言語で、C++とはC言語にオブジェクト指向の概念を取り入れて拡張したプログラム言語で、SystemC(システムC)とは、C++言語をベースとしたシステムレベル記述言語で、ハードウェアやシステム記述を行えるよう、クラスライブラリの形で拡張した言語のことである。
コンパイラ5は命令セット(IS)及びアーキテクチャモデル(MDL)に則って前記システム動作記述(SPGM)2をコンパイルする。要するに、コンパイラ5はC言語からC言語へのコンパイルを行うことになるが、システム動作記述(SPGM)2のC言語記述をアーキテクチャモデル(MDL)上における命令セット(IS)の命令実行形態で定義し直すことになる。13はコンパイラ5でコンパイルされたシステム動作記述(CMP_SPGM)である。例えばシステム動作記述とは、システムに求められる機能および非機能(性能、拡張性、信頼性等の要求)をどのように実現するのかという仕様のプログラム記述である。C言語等の高級言語を用いて、ハードウェアの特徴である、並列動作や動作時間などの表現機能が追加されている。 シミュレータアナライザ6はコンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行ってその性能を指標するプロファイルデータ(PRFL)17を生成する。
IASクリエータ7、コンパイラジェネレータ8、及びオペコードディストリビュータ9は、前記プロファイルデータ17に基づいて、命令セットやアーキテクチャモデルを最適化するのに用いられる。命令セットやアーキテクチャモデルを最適化するには、プロファイルデータを繰り返し生成するようにコンパイラ5やシミュレータアナライザ6などのツールを繰り返し実行する。また、その途中で、プロファイルデータに基づいてシステム動作記述が部分的に手直しされることがある。手直しされた場合にはその修正されたシステム動作記述がコンパイラ5によるコンパイルの対象とされる。前記プロファイルデータ17には命令に実行頻度や追加すべき命令などの情報を含み、それに基づき、命令セットに対する命令の削除や追加などによって命令セットの最適化を行うことができる。プロファイルデータ17並びに命令セット(IS)やアーキテクチャモデル(MDL)に対する最適化についてその詳細は後述する。
RTLジェネレータ10は、そのように最適化された命令セットやアーキテクチャモデルに基づいてデータプロセッサの設計データとしてRTLデータを生成する。生成されたRTLデータはテストベクタ12を用いてRTLベリファイヤ11で検証される。
システムライブラリ1を用いた協調設計により、最適化されたRTL設計データ(OPTM_RTL)14、最適化されたコンパイラ(OPTM_CMPL)15、それを用いてコンパイルされたシステム動作記述(CMPL_SPGM)16が得られる。
図2にはデータプロセッサの開発支援システムを利用した開発方法のフローチャートが示される。前記コンパイラを用いてシステム動作記述のコンパイルが行われる(S1)。コンパイルされたシステム動作記述に対してはシミュレータアナライザ6によりシステム動作記述の性能解析が行われ、プロファイルデータが生成され、命令セットの命令に対する追加/削除など、命令セットに対する最適化が行なわれる(S2)。更に、命令の追加/削除の結果やプロファイルデータに基づいてアーキテクチャモデルの最適化が行なわれる(S3)。S2,S3の処理は夫々単独に又は連続的に繰り返されて最適化が完了されることになるが、その変更をシステム動作記述に反映するように適宜システム動作記述のコンパイルが行なわれる。命令セットとアーキテクチャモデルの最適化を完了した後、その結果を用いてRTL設計データの自動生成が行なわれる(S4)。例えば設計データとは、CPUやデータプロセッサ(CPUおよびメモリなどの周辺回路を含んだもの)をハードウェアとして実現させる為にハードウェア言語(Verilog-HDL(Hardware Description Language)、VHDL等の言語)で記述したものである。
図3にはコンパイルのための付加情報の入力が示される。データプロセッサの開発支援システムにシステム動作記述を入力するとき、そのシステム動作記述で実行する機能の使用頻度を付加情報20として入力する。この付加情報は処理を機能単位で分類した結果となるから、機能単位に該当する命令が命令セットにあればその命令の実行頻度が高くなることを予め予想可能になる。したがって、コンパイル処理ではその機能の実行に対応する命令を割り当てるように処理の翻訳を行なうことが可能になる。
図4にはプロファイルデータの出力結果が例示される。例えばプロファイルデータには命令セットに含まれる命令の利用頻度(Instruction Usage)、命令の実行サイクル(CPI:Cycle time Per Instruction)、追加されることが望ましいと判断された命令(Additional Instruction Set)、命令実行時の消費電力(Energy Consumption)、アプリケーション性能(処理速度)を律束したシステム動作記述における処理などを特定する情報(Low Performance Function)が含まれる。
図5には別の解析結果に係るプロファイルデータを示す。21は初期設定に係る命令セット、22は当該別の解析結果に係るプロファイルデータである。例えば性能や消費電力から見た利用されるべき命令の優先順位、高性能を実現するために必要な新たな命令などを示すことができる。また、更に別の解析結果として図6に例示されるように、使用頻度、性能から見た優先順位、総合評価という結果より使用されない命令を指し示すことができる。図6において23は更に別の解析結果としてのプロファイルデータ示す。左欄は命令セットの使用頻度を表し、右欄は性能から見た優先順を表す。Hは頻度や性能が高い、Mは頻度や性能が普通、Lは頻度や性能が低いことを意味する。図6の評価結果に対し、使用されなかった命令を命令セットから削除するかは、システム動作記述の設計者に選択させるのが好適である。将来のシステム動作記述のバージョンアップや仕様の変更を見据えて命令を残したい場合、あるいはシステム動作記述にバグがあった場合に効果的な対処に都合がよいとされている命令を残したい、という考慮などを反映させることが必要になるからである。図6において24は一部の命令が削除されて更新された命令セットを表す。
図7には解析結果やプロファイルデータに基づいてその機能が利用されるツールによる処理が例示される。ISAクリエータ7は、追加すべき命令を生成する。コンパイラジェネレータ8は新たな命令追加によるコンパイラの更新、若しくは更新されたコンパイラを生成する。オペコードディストリビュータは追加された命令セットに新たなオペコードの割り振りを行なう。命令の追加/削除などによる命令セットの最適化が行なわれると、命令セットに残る命令の数に応じてオペコードの必要最小限のビット数が変わる。これはアーキテクチャモデルに反映させることができる。
図8にはアーキテクチャモデルの最適化の例が示される。データプロセッサのCPU(中央処理装置)において、命令バス30、命令アドレスバス31、命令デコーダ36、データバス32、データアドレスバス33、レジスタファイル37、ALU/シフタ38、命令TLB/キャッシュ34、データTLB/キャッシュ35がパラメータ化モジュールとされ、RAM39がパラメータ化モジュールとされる。例えばオペコードのビット数が少なくなれば、CPU内部の命令バス30、命令デコーダ36のビット数を縮小することができる。また、別の選択として、CPU内部の命令バス30のビット数はそのままとし、命令デコーダ36のオペコード部分の論理だけ縮小する選択を採用することも可能である。前者の場合にはCPUのハードウェアの論理規模の縮小に資することができる。後者の場合には命令語長は変わりないので、オペコードのビット数が少なくなった分だけ命令のオペランド指定フィールドのビット数が増えることになる。オペランド指定フィールドのビット数が増えればアドレシングモードで指定可能なアドレス範囲を広げることができ、また、イミディエイトデータのビット数若しくはデータ数を増やすことができ、データ処理の高速化若しくは高機能化することができ、データプロセッサの性能向上に通ずる。
図9にはアーキテクチャモデルの最適化の別の例としてマルチプロセッサシステムの選択態様が示される。例えば、41のシングルプロセッサシステム、42のマルチプロセッサシステム、43のメイン・サブの補完型プロセッサシステム、44キャッシュ分配型システムなどのアーキテクチャを予めモデル化し、プロファイルデータに現れる性能評価によりシステム動作記述に特化したモデルを選択すればよい。図9においてCはCPUのキャッシュメモリである。BはサブCPUである。
図10にはRTLデータを自動生成するときの原理が例示される。例えばCPUのアーキテクチャが命令フェッチ(IF)命令デコード(ID)、演算実行(EX)、メモリアクセス(MACC)、及びライトバック(WBK)の5段パイプラインを採用するとき、左側に記載された命令は最終的に命令セットに含まれる命令である。その命令毎に、各パイプラインステージにおける処理が分類されている。図では演算実行における各命令の処理が分類されている。これを基にRTLデータを生成するには、命令セットに含まれる命令の各演算実行の処理の総和を演算実行部のRTLデータとすればよい。このRTLデータは例えば図10に対応する図11の演算実行部の論理構成を特定する。
上記データプロセッサの開発支援システムを利用することにより得られる効果について説明する。
(1)性能向上
アプリケーション設計からのプロファイリングによりボトルネックになる、CPI及び消費電力を最適化することによりCPU若しくはデータプロセッサ側からシステム動作記述の実行性能を向上させることができる。また、システム動作記述の設計初期段階(機能レベル)において前記シミュレータアナライザ6による解析に基づいて、システム動作記述の性能改善、アーキテクチャモデルの最適化などが可能であることから、システム動作記述のソフトウェア設計とデータプロセッサのハードウェア設計の双方に対して協調的に改善を図ることができ、大幅な性能(機能)向上を達成できると考えられる。
アプリケーション設計からのプロファイリングによりボトルネックになる、CPI及び消費電力を最適化することによりCPU若しくはデータプロセッサ側からシステム動作記述の実行性能を向上させることができる。また、システム動作記述の設計初期段階(機能レベル)において前記シミュレータアナライザ6による解析に基づいて、システム動作記述の性能改善、アーキテクチャモデルの最適化などが可能であることから、システム動作記述のソフトウェア設計とデータプロセッサのハードウェア設計の双方に対して協調的に改善を図ることができ、大幅な性能(機能)向上を達成できると考えられる。
(2)設計期間短縮
システム動作記述の設計初期段階にてプロファイルデータなどに基づいてデータプロセッサによる処理性能を見積もりすることができるから、設計の出戻りを最小限に抑えることができ、設計期間の短縮に資することができる。設計の出戻りを抑えることができるのは、ハードウェアとソフトウェアの協調設計の効果でもある。最適化されて最終的に得られた命令セットとアーキテクチャモデルに基づいてデータプロセッサのRTLデータを自動生成し、システム動作記述からテストベクタを自動生成するから、検証期間も大幅に短縮される。また、検証においてはシステム動作記述に特化したデータプロセッサ設計により、汎用データプロセッサに比べて検証ターゲットを集約できる。これはデータプロセッサの開発期間短縮に多いに寄与する。
システム動作記述の設計初期段階にてプロファイルデータなどに基づいてデータプロセッサによる処理性能を見積もりすることができるから、設計の出戻りを最小限に抑えることができ、設計期間の短縮に資することができる。設計の出戻りを抑えることができるのは、ハードウェアとソフトウェアの協調設計の効果でもある。最適化されて最終的に得られた命令セットとアーキテクチャモデルに基づいてデータプロセッサのRTLデータを自動生成し、システム動作記述からテストベクタを自動生成するから、検証期間も大幅に短縮される。また、検証においてはシステム動作記述に特化したデータプロセッサ設計により、汎用データプロセッサに比べて検証ターゲットを集約できる。これはデータプロセッサの開発期間短縮に多いに寄与する。
さらに、システム動作記述の設計変更に対しても、データプロセッサのRTLデータの自動生成によりリアルタイムに対応でき、フレキシブルな設計が可能となる。
(3)設計費用削減
前記協調設計並びに最適化などの設計の大部分をデータプロセッサの開発支援システムのツールを用いて自動化できるので、データプロセッサの設計期間が大幅に短縮され、これによってその分設計費用を削減することができる。
前記協調設計並びに最適化などの設計の大部分をデータプロセッサの開発支援システムのツールを用いて自動化できるので、データプロセッサの設計期間が大幅に短縮され、これによってその分設計費用を削減することができる。
(4)本設計ツールを用いて前記処理手順で設計されたシステム動作記述とデータプロセッサは高いコストパフォーマンスとオンタイムな市場への供給が可能となる。データプロセッサのアプリケーション用途に応じた性能と機能に特化したデータプロセッサが実現可能であるため、システム動作記述の優位性を最大限に発揮させることできる。
図12には前記データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの開発フローが示される。システム動作記述はアプリケーションセットメーカが開発する。このシステム動作記述を実行するデータプロセッサの設計はLSIベンダが行なう。設計初期段階においてアプリケーションセットメーカは、システムの性能、消費電力の見積りなどを行なって機能設計を行ない、システム動作記述を作成する。LSIベンダはデータプロセッサの開発支援システムを用いて、システム動作記述の実行に有効な命令セットの解析を行ない、最適なアーキテクチャモデルの解析を行なっていく。これにより設計初期段階でクリティカルな問題が発見され、最適化が進められる。最適化は、システム動作記述にも反映可能とされ、データプロセッサの命令セット及びアーキテクチャもシステム動作記述に最適化される。これにより、出戻り少なく設計工数が短縮され、アプリケーションに特化したデータプロセッサをオンタイムで提供可能になる。
図13には前記データプロセッサの開発支援システムを用いた設計フローを採用する場合におけるデータプロセッサの別の開発フローが示される。データプロセッサの開発支援システムを用いた設計はファブレス(LSIの製造設備を持たず専らLSIの設計を請け負う業務主体)が請け負う。即ち、ファブレスは、アプリケーションセットメーカからシステム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する。その設計データを得る方法は上記と同様であり、最後に、受領したシステム動作記述に対応させて前記RTL設計データ若しくは最終的なマスクデータがシステムセットメーカに発送される。ファブレスはそのRTLデータを利用して最終的なレイアウト設計まで行なう場合も有り、またRTLデータの生成だけを請け負い、配置配線設計を他のファブレスに委託する場合には当該他のファブレスに前記RTLデータが渡される。その設計データを用いたLSIの製造はファブ(LSIの製造設備を持ち専らLSIの製造を請け負う業務主体)が請け負う。このような開発フローにおいても図12の場合と同様の効果を得ることができる。図13の場合には、開発途中でプロファイルデータをファブレスからシステムセットメーカに渡し、システムセットメーカはそのプロファイルデータを参照して、システム動作記述を部分的に変更したりする。システム動作記述を変更すると、ファブレスは変更されたシステム動作記述を用いて開発処理を継続する。
前記データプロセッサの開発支援システムのツール類を構成するデータプロセッサの開発支援プログラムは、CD−ROM、DVD―ROM、DVD−RAM等の記録媒体に記録されて頒布され、或いはインターネットなどの通信回線を介して流通されることにより、前記データプロセッサの開発支援システムを容易に実現できる。このデータプロセッサの開発支援プログラムは、システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにエンジニアリングワークステーションなどのコンピュータ装置で実行可能なプログラムであり、図2に例示されるように、命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする処理(S1)、コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する処理(S2)、前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう処理(S2,S3)、前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいてRTL設計データを生成する処理(S4)とを制御する。前述と同様に、前記S2の処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、前記S3の処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、データプロセッサは中央処理(CPU)だけであっても、またキャッシュメモリやRAMなどの周辺回路や、複数バス構成を含んだ半導体集積回路装置であっても、どちらでもよい。高級言語はC、C++、システムCの各言語に限定されず、その他の言語であってもよい。また、システム動作記述とISAの言語は必ずしも共通言語でなくてもよい。設計データはRTLに限定されずその他のHDL(Hardware Description Languager)記述データであってもよい。また、アーキテクチャモデルのデータ構造、パラメータ化モジュールのデータ構造はローカルであろうがグローバルであろうが適宜決定されていればよい。
1 システムライブラリ
2 システム動作記述
3 OS
4 ISA
IS 命令セット
MDL アーキテクチャモデル
5 コンパイラ
6 シミュレータアナライザ
7 ISAクリエータ
8 コンパイラジェネレータ
9 オペコードディストリビュータ
10 RTLジェネレータ
11 RTLベリファイヤ
2 システム動作記述
3 OS
4 ISA
IS 命令セット
MDL アーキテクチャモデル
5 コンパイラ
6 シミュレータアナライザ
7 ISAクリエータ
8 コンパイラジェネレータ
9 オペコードディストリビュータ
10 RTLジェネレータ
11 RTLベリファイヤ
Claims (11)
- 命令セット及びアーキテクチャモデルに則ってシステム動作記述をコンパイルする第1処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理と、
前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第4処理とを含み、
前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データ処理装置の開発方法。 - 前記システム動作記述とアーキテクチャモデルは共通の高級言語で記述されている、請求項1記載のデータ処理装置の開発方法。
- 前記高級言語は、C、C++、及びSystemCの中から選ばれた単数又は複数のプログラム言語である、請求項2記載のデータ処理装置の開発方法。
- 前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す、請求項1記載のデータ処理装置の開発方法。
- 前記アーキテクチャモデルは、パラメータによって規模が伸縮可能とされる、請求項1記載のデータ処理装置の開発方法。
- 前記設計データはRTL設計データである、請求項1記載のデータ処理装置の開発方法。
- システム動作記述、命令セット及びアーキテクチャモデルを入力し、入力したシステム動作記述の実行に特化したデータプロセッサを開発するためにコンピュータ装置によって実行可能なプログラムであって、
命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第1処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理と、
前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて設計データを生成する第4処理とを制御し、
前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データプロセッサの開発支援プログラム。 - システム動作記述を受領し、受領したシステム動作記述の実行に特化したデータプロセッサの設計データを提供する、設計データの提供方法であって、
命令セット及びアーキテクチャモデルに則って前記受領したソースプログラムをコンパイルする第1処理と、
コンパイルされたシステム動作記述とアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第2処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第3処理と、
前記第1処理乃至第3処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて、設計データを生成する第4処理と、
受領したシステム動作記述に対応させて前記設計データを発送する第5処理とを含み、
前記第3処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第3処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じてアーキテクチャモデルの規模を選択することである、設計データの提供方法。 - 受領したシステム動作記述に対応させて前記プロファイルデータを発送する第6処理を更に含み、
前記プロファイルデータは、命令セットに含まれていて実行された命令、命令毎のサイクルタイム、消費電力、追加することが望ましい命令を示す、請求項8記載の設計データの提供方法。 - 前記第6処理の後に、変更されたシステム動作記述を受領し、その後の第1処理及び第2処理には変更されたシステム動作記述を用いる、請求項9記載の設計データの提供方法。
- システム動作記述を生成する第1処理と、
命令セット及びアーキテクチャモデルに則って前記システム動作記述をコンパイルする第2処理と、
コンパイルされたシステム動作記述とデータプロセッサのアーキテクチャモデルに対し、シミュレーションを行なってその性能を指標するプロファイルデータ生成する第3処理と、
前記プロファイルデータを利用して命令セット及びアーキテクチャモデルの何れか一方又は双方に必要な変更を行なう第4処理と、
前記プロファイルデータを利用して前記システム動作記述に必要な修正を行なう第5処理と、
前記第2処理乃至第5処理の繰返しによって得られた命令セットとアーキテクチャモデルに基づいて前記データプロセッサの設計データを生成する第6処理とを含み、
前記第4処理における命令セットに対する必要な変更は、不要な命令コードの削除と必要な命令コードの追加を行うことと、命令セットに含まれる命令コードの数に基づいてオペコードサイズを決定することであり、
前記第4処理におけるアーキテクチャモデルに対する必要な変更は、コンパイルされたシステム動作記述に応じて前記アーキテクチャモデルの規模を選択することである、データ処理システムの開発方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004110807A JP2005293448A (ja) | 2004-04-05 | 2004-04-05 | データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004110807A JP2005293448A (ja) | 2004-04-05 | 2004-04-05 | データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005293448A true JP2005293448A (ja) | 2005-10-20 |
Family
ID=35326278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004110807A Withdrawn JP2005293448A (ja) | 2004-04-05 | 2004-04-05 | データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005293448A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077464A (ja) * | 2006-09-22 | 2008-04-03 | A & D Co Ltd | モデル作成装置 |
JP2009230602A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | 動作合成装置、動作合成方法およびプログラム |
JP2012003339A (ja) * | 2010-06-14 | 2012-01-05 | Toshiba Corp | プロセッサ、プロセッサ生成装置及びプロセッサ生成システム |
JP2012168889A (ja) * | 2011-02-16 | 2012-09-06 | Canon Inc | 電子回路最適化方法、電子回路最適化装置、及びプログラム |
JP2013532856A (ja) * | 2010-07-13 | 2013-08-19 | アルゴトゥチップ コーポレーション | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ |
JP2013532857A (ja) * | 2010-07-13 | 2013-08-19 | アルゴトゥチップ コーポレーション | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ |
CN103270512A (zh) * | 2010-10-18 | 2013-08-28 | 艾尔葛托奇普股份有限公司 | 智能架构创建器 |
JP2013540295A (ja) * | 2010-07-13 | 2013-10-31 | アルゴトゥチップ コーポレーション | アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減 |
US8935512B2 (en) | 2006-11-21 | 2015-01-13 | Nec Corporation | Instruction operation code generation system |
KR101503621B1 (ko) * | 2010-10-18 | 2015-03-18 | 알고토칩 코포레이션 | 아키텍처 최적화부터 물리적 설계 클로저까지의 설계 통합을 추진하기 위한 집적 데이터 모델 기반 프레임워크 |
-
2004
- 2004-04-05 JP JP2004110807A patent/JP2005293448A/ja not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077464A (ja) * | 2006-09-22 | 2008-04-03 | A & D Co Ltd | モデル作成装置 |
US8935512B2 (en) | 2006-11-21 | 2015-01-13 | Nec Corporation | Instruction operation code generation system |
JP2009230602A (ja) * | 2008-03-25 | 2009-10-08 | Nec Corp | 動作合成装置、動作合成方法およびプログラム |
JP2012003339A (ja) * | 2010-06-14 | 2012-01-05 | Toshiba Corp | プロセッサ、プロセッサ生成装置及びプロセッサ生成システム |
JP2013532856A (ja) * | 2010-07-13 | 2013-08-19 | アルゴトゥチップ コーポレーション | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ |
JP2013532857A (ja) * | 2010-07-13 | 2013-08-19 | アルゴトゥチップ コーポレーション | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ |
JP2013540295A (ja) * | 2010-07-13 | 2013-10-31 | アルゴトゥチップ コーポレーション | アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減 |
CN103270512A (zh) * | 2010-10-18 | 2013-08-28 | 艾尔葛托奇普股份有限公司 | 智能架构创建器 |
JP2013541778A (ja) * | 2010-10-18 | 2013-11-14 | アルゴトゥチップ コーポレーション | インテリジェント・アーキテクチャ・クリエータ |
KR101503620B1 (ko) * | 2010-10-18 | 2015-03-18 | 알고토칩 코포레이션 | 지능형 아키텍처 생성기 |
KR101503621B1 (ko) * | 2010-10-18 | 2015-03-18 | 알고토칩 코포레이션 | 아키텍처 최적화부터 물리적 설계 클로저까지의 설계 통합을 추진하기 위한 집적 데이터 모델 기반 프레임워크 |
JP2012168889A (ja) * | 2011-02-16 | 2012-09-06 | Canon Inc | 電子回路最適化方法、電子回路最適化装置、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2869379B2 (ja) | プロセッサ合成システム及びプロセッサ合成方法 | |
JP5009979B2 (ja) | 処理システムでのソフトウェアプログラムの実行に基づくasicの設計 | |
De Micheli et al. | Readings in hardware/software co-design | |
Hoffmann et al. | A methodology for the design of application specific instruction set processors (ASIP) using the machine description language LISA | |
JP5725583B2 (ja) | アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減 | |
US6772106B1 (en) | Retargetable computer design system | |
JP5681281B2 (ja) | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ | |
US8181131B2 (en) | Enhanced analysis of array-based netlists via reparameterization | |
WO2005022338A2 (en) | Improved computerized extension apparatus and methods | |
Zuo et al. | Accurate high-level modeling and automated hardware/software co-design for effective SoC design space exploration | |
KR20130114688A (ko) | 아키텍처 최적화기 | |
JP5681280B2 (ja) | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ | |
SNOW III | AUTOMATION OF MODULE SET INDEPENDENT REGISTER-TRANSFER LEVEL DESIGN. | |
Kulkarni et al. | Compile-time area estimation for LUT-based FPGAs | |
JP2005293448A (ja) | データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 | |
Riccobene et al. | Designing a unified process for embedded systems | |
Schliebusch et al. | A framework for automated and optimized ASIP implementation supporting multiple hardware description languages | |
Bazargan et al. | Integrating scheduling and physical design into a coherent compilation cycle for reconfigurable computing architectures | |
Keutzer | The need for formal methods for integrated circuit design | |
Balasa et al. | Storage estimation and design space exploration methodologies for the memory management of signal processing applications | |
Katelman et al. | A rewriting semantics for ABEL with applications to hardware/software co-design and analysis | |
Virginia et al. | An empirical comparison of ANSI-C to VHDL compilers: SPARK, ROCCC and DWARV | |
Falk et al. | Loop nest splitting for WCET-optimization and predictability improvement | |
Bergamaschi | Behavioral synthesis: An overview | |
JP5332598B2 (ja) | 設計方法及び設計装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070605 |