Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5049804B2 - Vliwプロセッサ自動生成方法及び自動生成プログラム - Google Patents
[go: Go Back, main page]

JP5049804B2 - Vliwプロセッサ自動生成方法及び自動生成プログラム - Google Patents

Vliwプロセッサ自動生成方法及び自動生成プログラム Download PDF

Info

Publication number
JP5049804B2
JP5049804B2 JP2008013168A JP2008013168A JP5049804B2 JP 5049804 B2 JP5049804 B2 JP 5049804B2 JP 2008013168 A JP2008013168 A JP 2008013168A JP 2008013168 A JP2008013168 A JP 2008013168A JP 5049804 B2 JP5049804 B2 JP 5049804B2
Authority
JP
Japan
Prior art keywords
information
resource
group
description
resource group
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.)
Expired - Fee Related
Application number
JP2008013168A
Other languages
English (en)
Other versions
JP2009175989A (ja
Inventor
悠記 小林
正治 今井
良典 武内
圭史 坂主
時子 喜多
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.)
ASIP SOLUTIONS, INC.
Original Assignee
ASIP SOLUTIONS, INC.
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 ASIP SOLUTIONS, INC. filed Critical ASIP SOLUTIONS, INC.
Priority to JP2008013168A priority Critical patent/JP5049804B2/ja
Publication of JP2009175989A publication Critical patent/JP2009175989A/ja
Application granted granted Critical
Publication of JP5049804B2 publication Critical patent/JP5049804B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、VLIWプロセッサの自動生成方法、自動生成プログラムに関する。
従来、組み込みシステムの実装におけるASIP(Application Specific Instruction-set Processor)として用いられるスカラプロセッサやVLIW(Very Long Instruction Word)プロセッサを含む命令セットプロセッサの設計は、ハードウェア記述言語(HDL:Hardware Description Language)による手作業での設計で行なわれていた。
スカラプロセッサに対して、HDL記述の自動生成により設計作業の支援を行う集積回路設計支援装置が知られている。(例えば、特許文献1参照)。特許文献1には、パラメタライズされたハードウェア資源(以下リソースという)を格納するデータベース装置(FHM−DB:Flexible Hardware Model Database)が開示されている。FHM―DBは、リソースの入出力ビット幅などがパラメタライズされて格納されたデータベースであり、パラメタの異なるさまざまなリソースを生成することができる。集積回路設計支援装置は、FHM−DBを利用してリソースを生成し、それらを制御する制御部を生成して組み合わせることにより、スカラプロセッサを自動生成する。
また、VLIWプロセッサに対して、VLIWプロセッサのHDL記述を自動生成する手法が知られている。(例えば、非特許文献1参照)。非特許文献1の手法を用いれば、パイプラインステージの数や、VLIW命令語内での命令(以下、オペレーションという)の発行単位(以下スロットという)の数、発行された命令を適切なリソースに割当てるディスパッチルール情報を含むプロセッサの仕様記述を入力することにより、VLIWプロセッサのHDL記述を生成することができる。また、その際に複雑なディスパッチのルールを簡潔に記述するために、オペレーショングループとリソースグループの概念が導入されている。
図24は、VLIWプロセッサモデルを示す。図24を参照して、上記概念を用いたVLIWプロセッサモデルを説明する。ディスパッチに関して同じ性質をもつオペレーション162の集合としてオペレーショングループ160が定義され、所定のスロット164から発行されるオペレーショングループ160中のオペレーション162を処理できるリソース170の集合としてリソースグループ168が定義される。また、オペレーション162とリソースグループ168の組み合わせごとに、パイプラインステージ毎のオペレーションの動作の記述であるマイクロ動作記述166が作成される。すなわち、異なるスロットまたはリソースを用いてオペレーションを処理する場合それぞれについて、オペレーションの動作を表すマイクロ動作記述を定義する。非特許文献1の手法においては、オペレーショングループ160の組み合わせで表されるVLIW命令パターンに対してスロット毎にリソースグループが割当てられる。
図25は、非特許文献1に示される従来のVLIWプロッサ自動生成方法のフローを示す。コンピュータは、設計者によって設計対象のプロセッサの仕様のマイクロ動作記述を含む各情報が入力されると(S140)、コンピュータは、プロセッサ仕様記述情報としてプロセッサ仕様記述格納部に格納する(S142)。コンピュータは、格納されたプロセッサ仕様記述情報を元に、リソースグループ割当てを行い、データパスとデータパスの制御部を生成するHDL記述生成を行う(S144)。コンピュータは、生成されたHDL記述をHDL記述格納部へ格納する(S146)。これにより、柔軟かつ効率的に、高位のプロセッサ仕様記述からVLIWプロセッサのHDL記述を自動生成することが可能となっている。
特開平10−171857号公報 「コンフィギュラブルVLIWプロセッサのHDL記述生成手法」(小林悠記等,情報処理学会誌論文誌,Vol.45、No.5、pp1311−1321(2004))
しかしながら、特許文献1に示される技術においては、同じオペレーションであっても、使用するリソースやオペレーションが発行されるスロットが異なる場合、そのすべての組み合わせについて、演算やデータ転送などのオペレーションの動作をパイプラインステージ毎に記述したマイクロ動作記述データを入力する必要があった。図26は、従来技術のマイクロ動作記述に関係する部分の設計手順の概念を示す。設計者300は、一般的なテキストエディタ304を用いて、オペレーションの数及び各オペレーションに必要なリソースの組み合わせの数に応じたマイクロ動作記述データ310をコンピュータに入力する。HDL記述生成部230は、入力されたマイクロ動作記述データをもとにHDL記述を生成する。例えば、4スロット程度の規模のVLIWプロセッサの場合、通常1つのオペレーションに対し6種類程度のマイクロ動作記述が必要であり、N個のオペレーションに対してほぼ6N個の動作記述データを入力しなければならない。このため、オペレーションの数及び各オペレーションに必要なリソースの組み合わせの数によっては膨大な量の入力が必要となり、設計生産性の面で困難があった。
また、非特許文献1に示される技術においては、リソースグループの構成要素としてリソースのみを想定していたため、複数のバス及びポートを備え読取りアクセス機能及び書き込みアクセス機能を複数もつメモリアクセスユニット等の2つ以上のスロットから同時に利用可能なリソースを扱えなかった。図27は、従来技術を用いた場合のリソースグループ割当てにおけるリソースグループ競合判定の一例を示す。リソースResA910は、ポート1:906とポート2:908を持ち、この2つのポートは同時に使用可能である。また、リソースResA910は2つの機能(ファンクション)func1()、func2()を持ち、ファンクションが使用するポート情報912より、func1():902はポート1:906を、func2():904はポート2:908を使用することが分かる(矢印で示す)。これにより、スロット1:921及びスロット2:922は、それぞれファンクションfunc1():902及びfunc2():904を同時に使用可能なはずである。しかし、従来技術では、スロット1が用いるリソースグループRG1とスロット2が用いるリソースグループRG2とが記述されたスロット・リソースグループ情報914において、リソースグループ情報916における定義中にリソース名しか考慮されなかった。これにより、スロット1及びスロット2は、リソースを重複して使用しないようにリソースグループを決定するという制約により、RG1とRG2はリソースResA910が重複しているため同時には使用できないと判定されることとなるため(×印で示す)、同時にResA910を使用することはできなかった。したがって、func1()とfunc2()を同時に使用可能にもかかわらず、スロット1とスロット2にそれぞれRG1とRG2を割当てることができずリソースグループ選択の可能性を狭めていた。
本発明は、上記の問題を解決するためになされたものであり、リソースクラスという概念を導入し、リソースグループのメンバとして、リソース以外に、ファンクション情報を利用することにより、HDL生成時のリソースグループの競合判定を行い、リソースグループの割当において2つ以上のスロットからも同時に利用可能であり、グラフィカルユーザインターフェース(GUI)の入力を用いてプロセッサ仕様記述情報をより簡単かつ迅速に生成できるVLIWプロセッサ自動生成方法及び自動生成プログラムを提供することを目的とする。
上記目的を達成するために請求項1の発明は、ハードウェア記述言語(HDL)で記述されたHDL記述データを生成することにより、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを自動生成するVLIWプロセッサ自動生成方法において、スロットに関するスロット情報と、リソースに関するリソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、リソースグループ情報に含まれるリソースについてのリソースクラス名と、リソースクラス名を用いて命令の動作を記述した第一のマイクロ動作記述データと、を含む設計記述データがコンピュータに入力され、記憶させる第1のステップと、コンピュータに入力された各情報に基づいて、複数の命令に対して、ディスパッチルール情報を用いて複数の命令に関係するリソースグループを導出する第2のステップと、関係するリソースグループの各々に対して第一のマイクロ動作記述データの具体化の処理であるリソースクラス展開を行うことによって第二のマイクロ動作記述データをマイクロ動作記述情報として生成し、マイクロ動作記述情報と、リソースグループ情報と、命令にリソースを割り付けるディスパッチルール情報と、を含むプロセッサ仕様記述情報をコンピュータに記憶させる第3のステップと、プロセッサ仕様記述情報に基づいて、HDL記述データを生成する第4のステップと、を備えるようにしたものである。
また、請求項2の発明は、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを設計するために、少なくともスロットに関するスロット情報と、命令の動作が記述されたマイクロ動作記述情報と、命令にリソースを割り付けるディスパッチルール情報とを含むプロセッサ仕様記述データと、を入力する入力手段と、少なくともスロット情報を記憶する設計記述格納装置と、少なくともプロセッサ仕様記述情報を記憶するプロセッサ仕様記述格納装置と、を備え、設計記述格納装置又はプロセッサ仕様記述格納装置を参照してハードウェア記述言語(HDL)で記述されたHDL記述データを算出するコンピュータに、入力手段を介して入力されるスロット情報と、リソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、リソースグループ情報に含まれるリソースについてのリソースクラス名と、リソースクラス名を用いて命令の動作を記述した第一のマイクロ動作記述データと、を含む設計記述データを、設計記述格納装置に記憶させる第1の手順と、設計記述格納装置に記憶された設計記述データに基づいて、複数の命令に対して、ディスパッチルール情報を用いて複数の命令に関係するリソースグループを導出させ、関係するリソースグループの各々に対して第一のマイクロ動作記述データの具体化の処理であるリソースクラス展開を行うことによって第二のマイクロ動作記述データをマイクロ動作記述情報として生成させる第2の手順と、マイクロ動作記述情報と、リソースグループ情報と、ディスパッチルール情報と、を含むプロセッサ仕様記述情報を、プロセッサ仕様記述格納装置に記憶させる第3の手順と、プロセッサ仕様記述格納装置に記憶されたプロセッサ仕様記述情報に基づいて、HDL記述データを生成させる第4の手順と、を実行させるようにしたものである。
また、請求項3の発明は、ハードウェア記述言語(HDL)で記述されたHDL記述データを生成することにより、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを自動生成するVLIWプロセッサ自動生成方法において、スロットに関するスロット情報と、リソースに関するリソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、リソースグループ情報に含まれ、リソースがファンクションを有する場合にファンクションに対応するファンクション名と、を含む設計記述データがコンピュータに入力され、記憶させる第1のステップと、VLIWプロセッサに用いられる複数の命令の動作を記述したマイクロ動作記述データがコンピュータに入力され、記憶させる第2のステップと、コンピュータに入力された各情報に基づいて、リソースグループ名、リソース名、ファンクション名を含むリソースグループ情報、ディスパッチルール情報、VLIWパターン情報、及びマイクロ動作記述データを含むマイクロ動作記述情報と、を備えたプロセッサ仕様記述情報をコンピュータに生成させ、記憶させる第3のステップと、プロセッサ仕様記述情報に基づいて、HDL記述データをコンピュータに生成させる第4のステップと、VLIWパターンにリソースグループを割当てるとき、ディスパッチルール情報及びリソースグループ情報のリソースグループ名とリソース名とファンクション名を用いてリソースグループの競合判定をコンピュータに行わせる第5のステップと、を備えるようにしたものである。
また、請求項4の発明は、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを設計するために、少なくともスロットに関するスロット情報と、命令の動作が記述されたマイクロ動作記述情報と、命令にリソースを割り付けるディスパッチルール情報とを含むプロセッサ仕様記述データと、を入力する入力手段と、少なくともスロット情報を記憶する設計記述格納装置と、少なくともプロセッサ仕様記述情報を記憶するプロセッサ仕様記述格納装置と、を備え、設計記述格納装置又はプロセッサ仕様記述格納装置を参照してハードウェア記述言語(HDL)で記述されたHDL記述データを算出するコンピュータに、入力手段を介して入力されるスロット情報と、リソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、リソースグループ情報に含まれ、リソースがファンクションを有する場合にファンクションに対応するファンクション名と、を含む設計記述データを、設計記述格納装置に記憶させる第1の手順と、入力手段を介して入力されるVLIWプロセッサに用いられる複数の命令の動作を記述したマイクロ動作記述データを、設計記述格納装置に記憶させる第2の手順と、設計記述格納装置に記憶された設計記述データに基づいて、リソースグループ名、リソース名、ファンクション名を含むリソースグループ情報、ディスパッチルール情報、VLIWパターン情報、及びマイクロ動作記述データを含むマイクロ動作記述情報と、を備えたプロセッサ仕様記述情報を生成させ、プロセッサ仕様記述格納装置に記憶させる第3の手順と、プロセッサ仕様記述格納装置に記憶されたプロセッサ仕様記述情報に基づいて、HDL記述データを生成させる第4の手順と、VLIWパターンにリソースグループを割当てるとき、ディスパッチルール情報及びリソースグループ情報のリソースグループ名とリソース名とファンクション名を用いてリソースグループの競合判定を行わせる第5の手順と、を実行させるようにしたものである。
また、請求項5の発明は、請求項1のVLIWプロセッサ自動生成方法において、コンピュータに備えられた表示部は、情報を定義するために用いられる複数のウィンドウからなるグラフィカルユーザインターフェース(GUI)を表示し、各情報は、GUIを用いてコンピュータに入力されるようにしたものである。
また、請求項6の発明は、請求項5のVLIWプロセッサ自動生成方法において、複数のウィンドウは、オペレーショングループ情報を定義するオペレーショングループ定義ウィンドウを含み、オペレーショングループ定義ウィンドウは、ツリー構造でグループを表示する第1の枠と、未分類のオペレーションを表示する第2の枠とを備え、第2の枠に表示されるオペレーションを第1の枠内に移動させることによりグループへ追加し、第1の枠にツリー構造で表示されるグループに属するオペレーションを第2の枠に移動させることによりグループから削除するようにしたものである。
また、請求項7の発明は、請求項5のVLIWプロセッサ自動生成方法において、複数のウィンドウは、リソースグループ情報を定義するリソースグループ定義ウィンドウを含み、リソースグループ定義ウィンドウは、リソースグループを表示するリソースグループ枠と、リソースメンバー定義枠とを備え、リソースメンバー定義枠は、リソースクラス列と、リソース名入力列と、ファンクション名入力列を備え、リソースクラスの追加とリソースクラスに対応するリソースの入力とリソースのファンクションの入力を行うようにしたものである。
また、請求項8の発明は、請求項5のVLIWプロセッサ自動生成方法において、複数のウィンドウは、スロットとリソースグループの関係情報及びリソースグループとオペレーショングループの関係情報を定義するスロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウを含み、スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウは、スロット・リソースグループ間の相互関係定義領域と、オペレーショングループ・リソースグループ間の相互関係定義領域とを備え、スロット・リソースグループ間の相互関係定義領域に入力された定義に対して、スロットとリソースグループ間の制約の検出及び修正機能と、を備えるようにしたものである。
また、請求項9の発明は、請求項5のVLIWプロセッサ自動生成方法において、複数のウィンドウは、VLIWパターン情報を定義するVLIWパターン定義ウィンドウを含み、VLIWパターン定義ウィンドウは、VLIWパターンを表示し編集するVLIWパターン編集枠を備え、スロットとリソースグループの関係情報及びリソースグループとオペレーショングループの関係情報からVLIWパターンを自動生成しVLIWパターン編集枠に表示するVLIWパターン自動展開機能と、を備えるようにしたものである。
請求項1乃至4の発明によれば、リソースクラスを用いて必要な記述量を大幅に削減し、効率的に設計できるため、設計生産性の向上ができ、従来よりも設計期間を大幅に短縮できる。また、ファンクション情報を利用することにより、リソースグループ選択の可能性を広げ設計自由度を大きくすることができる。
請求項5乃至9の発明によれば、グラフィカルユーザインターフェース(GUI)の入力を用いることにより、プロセッサ仕様記述情報をより簡単、迅速に生成できるため、設計容易性の向上及び設計ミスを減らせひいては設計生産性を向上させることができる。
以下、本発明の第1乃至第2の実施形態に係るVLIWプロセッサ自動生成方法について、図面を参照して説明する。図1は、本VLIWプロセッサ自動生成方法を実施するシステムのハードウェア構成を示す。本VLIWプロセッサ自動生成方法を実施するシステムのハードウェアは、ワークステーションなどのコンピュータシステムであって、CPU106とメモリ108から成る本体100と、ハードディスク装置102と、キーボードやマウス等の入力操作装置104と、CRTディスプレイ等の表示装置110とから構成される。そして、メモリ108に格納されるVLIWプロセッサ自動生成プログラムをCPU106が実行することにより、VLIWプロセッサの設計を支援するための種々の機能が実現される。
図2は、本実施形態に係る本VLIWプロセッサ自動生成方法を実施するシステム構成を示す。この図に示すように、本VLIWプロセッサ自動生成方法を実施するシステムは、概念的には、FHM(Flexible Hardware Model)に基づくデータベース(以下「FHM−DB」という)を格納しているDB格納部224、FHM−DBのためのデータベース管理システム222(以下「FHM−DBMS」という)からなるFHM−DBシステム220、操作部204、入力編集部206、表示部210、設計記述格納部12、プロセッサ仕様記述生成部208、プロセッサ仕様記述格納部16、HDL記述生成部230、HDL記述格納部20、ソフトウェア生成部250、ソフトウェア格納部252から構成される。操作部204は、図1に示された入力操作装置104に、表示部210は表示装置110にそれぞれ対応する。FHM−DB224、設計記述格納部12、プロセッサ仕様記述格納部16、HDL記述格納部20及びソフトウェア格納部252は、ハードディスク装置102によって実現される。
入力編集部206は、設計者による表示部210に表示されるGUIを用いた操作部204での入力操作に基づき、設計対象を記述する設計記述情報を生成して設計記述格納部12に格納し、設計記述格納部12に格納されている記述データを変更又は追加する等の編集処理を行う。ここで編集の対象となる設計記述情報は、設計対象となるVLIWプロセッサを記述した情報である。プロセッサ仕様記述生成部208は、設計記述情報をもとにプロセッサ仕様記述情報を生成してプロセッサ仕様記述格納部16に格納する(詳細は後述する)。HDL記述生成部230は、プロセッサ仕様記述情報をもとにHDL記述情報を生成し、HDL記述格納部20に格納する。ソフトウェア生成部250は、プロセッサ仕様記述情報をもとにソフトウェア情報を生成し、ソフトウェア格納部に格納する。
図3は、VLIWプロセッサ自動生成方法のフローを示す。コンピュータは、設計者によって、抽象度の高いマイクロ動作記述情報、リソースクラス名とリソース名とファンクション名を含むリソースグループ情報、及びプロセッサ仕様に必要な他の情報が入力されると、入力された情報を用いて入力編集処理を行い(S10)、設計記述情報を設計記述格納部12へ格納する(S12)。ここで、抽象度の高いマイクロ動作記述情報とは、リソースクラスという概念を用いて記述されたマイクロ動作記述データである。また、コンピュータは、GUI(Graphical User Interface)機能を備えることにより、設計者の入力作業を支援することができる。次に、コンピュータは、設計記述格納部12中の設計記述情報を元にプロセッサ仕様記述生成処理を行い(S14)、プロセッサ仕様記述情報をプロセッサ仕様記述格納部16へ格納する(S16)。ここで、プロセッサ仕様記述生成処理では前記リソースクラスを用いて記述された抽象度の高いマイクロ動作記述データを具体的なリソースを用いたマイクロ動作記述データに展開し(後述するリソースクラス展開)、HDL記述生成処理(S18)で受理できる形式に変換する。HDL記述生成処理において、データパスとデータパスの制御部の生成を行う(S18)。
次に、コンピュータは、リソースグループ割当てにおいて、複数ポートを同時に利用可能なリソースを扱うため、リソースのファンクションを考慮したリソースグループ競合判定を行い(S18)、生成したHDL記述情報をHDL記述格納部20に格納する(S20)。なお、本明細書において、リソースクラスとは概念的な意味で用いられ、リソースクラス名とはリソークラスに付与される名前を意味するものとする。また、リソース及びリソース名と同様に、ファンクションとは概念的な意味で用いられ、ファンクション名とはファンクションに付与される名前を意味するものとする。
次に、マイクロ動作記述に関する設計手順について説明する。図4は、マイクロ動作記述に関する設計手順を示す。設計者300は、入力編集部206を用いて、リソースクラスを用いて記述されたマイクロ動作記述データ320を入力する。プロセッサ仕様記述生成部208は、マイクロ動作記述データ320に基づいてマイクロ動作記述データ310を生成する。HDL記述生成部230は、マイクロ動作記述データ310に基づいてHDL記述を生成する。なお、リソースクラスを用いて記述されたマイクロ動作記述データ320は図2の設計記述格納部12に格納される。またマイクロ動作記述データ310はプロセッサ仕様記述格納部16に格納されるが、ここでは図示していない。ここで、リソースクラスは、異なるスロットなどにおいて異なるリソースを用いて実行されるオペレーションの間で、共通の意味を持つリソース及びリソースのファンクションを抽象化した概念である。リソースクラスを用いてオペレーションの動作、すなわちマイクロ動作を記述する。
乗算器を用いて乗算を行うMULTというオペレーションを例にしてリソースクラスを用いた記述例について説明する。図5は、リソースクラスを用いて記述されたマイクロ動作の記述例を示す。ここで、VLIWプロセッサは、MUL1とMUL2の2個の乗算器を備える2スロットVLIWプロセッサである。また、スロット1において実行されるMULTはMUL1を、スロット2において実行されるMULTはMUL2を使用するものとする。この場合、スロット1において実行されるMULTと、スロット2において実行されるMULTの間では、乗算器MUL1とMUL2は共通の意味を持つリソースである。そこで、これらをリソースクラスMULとして抽象化し、オペレーションMULTのマイクロ動作はリソースクラスMULを用いて記述することとする(リソースクラスを用いて記述されたMULTのマイクロ動作記述610)。
ここで、スロット1で実行する際にはMULにMUL1が相当し、また、スロット2で実行する際にはMULにMUL2が相当することがわかっている(スロット毎のリソースクラスとリソースの対応情報620)ので、リソースクラスを用いて記述されたマイクロ動作記述からリソースクラスを用いないでリソースを用いたマイクロ動作記述(SlotにおけるMULTのマイクロ動作記述632及びSlot2におけるMULTのマイクロ動作記述634)を取得し具体化することは可能である。この具体化の処理をリソースクラス展開と呼ぶ。ここで、スロット毎のリソースクラスとリソースの対応情報620は、後述する図6における、リソースグループ情報414とオペレーショングループ・リソースグループ関係情報424とスロット・リソースグループ関係情報426に含まれる関連情報を総合して模式的に表現したものである。
図6は、プロセッサ仕様記述情報の構成を示す。プロセッサ仕様記述情報400は、スロット情報402、パイプラインステージ情報404、使用する演算器やレジスタなどのリソース情報406、入出力ポートやトップレベルモジュール名を表すIOポート情報408、オペレーションの名前、オペコード及びオペランド情報を含むフィールド構成、及びアセンブラのニーモニック表現を含むオペレーション情報410、オペレーション毎のマイクロ動作記述情報412、リソースグループ情報414、オペレーショングループ情報416、及びディスパッチ・ルール情報420から構成される。また、ディスパッチ・ルール情報420は、同時に処理可能なオペレーションの組み合わせを表現するVLIWパターン情報422、オペレーショングループとリソースグループの間の関係を表すオペレーショングループ・リソースグループ関係情報424、及びスロットとリソースグループの間の関係を表すスロット・リソースグループ関係情報426から構成される。
図7は、プロセッサ仕様記述情報400を生成するプロセッサ仕様記述生成部208の構成を示す。プロセッサ仕様記述生成部208は、仕様記述生成部502とリソースクラス展開部550から構成される。リソースクラス展開部550は、設計記述格納部12から取得したリソースクラスを用いたマイクロ動作記述データ内のリソースクラスを展開しながらマイクロ動作記述データを生成し、プロセッサ仕様記述情報400のマイクロ動作記述情報412としてプロセッサ仕様記述格納部に格納する。仕様記述生成部502は、設計記述格納部12から取得したデータをもとに、マイクロ動作記述情報412以外のプロセッサ仕様記述情報を生成し、プロセッサ仕様記述格納部16に格納する。
次に、リソースクラス展開部550の構成及び動作について説明する。図8は、リソースクラス展開部550の構成及び動作の一例を示す。リソースクラス展開部550の入力は、オペレーショングループ情報512、オペレーショングループ・リソースグループ情報516、スロット・リソースグループ情報514、リソースグループ情報520、及びリソースクラスを用いて記述されたマイクロ動作記述510である。図8においては、OpeAというオペレーションに対応するマイクロ動作記述を例として示している。また、図8では、リソースグループ情報520はリソースクラス名(リソースグループ情報520の左半分)とそれに対応するリソース名またはリソースファンクション名(リソースグループ情報520の右半分)から構成され、設計者より入力編集部206に入力される。リソースグループ情報の形式については後述する。
まず、リソースグループ導出部560が、このオペレーションOpeAに関係するリソースグループの導出処理を行う。ここでは、オペレーショングループ情報512より、該当オペレーションが所属するオペレーショングループ(OpeAに対してはOG1)を取得し、取得したオペレーショングループに対して実行可能なリソースグループ(OG1に対してはRG1、RG2、RG3)を、オペレーショングループ・リソースグループ関係情報516を用いて取得する。この導出処理がリソースクラス展開の前処理である。
そして、マイクロ動作記述置換部580が、リソースクラスを用いて記述されたマイクロ動作記述510を、取得されたリソースグループそれぞれに対してコピーして出力する。このとき、マイクロ動作記述中、’$’から始まる単語を切り出し、リソースグループ情報520の中のリソースクラス名と一致する場合は、そのリソースクラス名に対応する文字列(リソース名またはリソースファンクション名)で置換して出力する。’$’から始まる単語を切り出す際は、区切り文字として、アルファベット、数字、一部の記号(’_’)以外の文字を認識する。なお、’$’の次の文字が中括弧(’{’)の場合は、対応する次の中括弧(’}’)を区切り文字とし、中括弧で囲まれた中の文字列を認識する。なお、リソースクラス名の開始記号’$’は他の文字でもよい。図8においては、リソースグループRG1の情報522、リソースグループRG2の情報524、及びリソースグループRG3の情報526を用いて、OpeAをRG1で処理するためのマイクロ動作記述532、OpeAをRG2で処理するためのマイクロ動作記述534、及びOpeAをRG3で処理するためのマイクロ動作記述536がそれぞれ生成されている。この置換によるマイクロ動作記述が具体化の処理であるリソースクラス展開の処理である。
この処理により、オペレーションに対して単一のマイクロ動作記述から必要なマイクロ動作記述を生成することができる。図25で示される従来技術の設計手順では、設計者は、あるオペレーションに対するマイクロ動作を、使用するリソースやスロットが異なるすべての組み合わせに対して記述する必要があった。本発明では、あるオペレーションに対してリソースクラスを用いて記述した単一のマイクロ動作を記述すれば、本発明によるプロセッサ仕様記述生成部208が、リソースやスロットが異なるすべての必要なマイクロ動作記述データ310を内部で生成する。これにより、設計者が入力する必要のある記述量が大幅に削減される。すなわち、設計生産性の向上及び設計工数の大幅な短縮を実現する。さらに、これらのリソースクラス展開によって生成されたマイクロ動作記述データは、プロセッサ仕様記述情報400のマイクロ動作記述情報412として、他のプロセッサ仕様記述情報とともに、プロセッサ仕様記述格納部16に格納される。
図9は、HDL記述生成部230の構成を示す。HDL記述生成部230は、データパス生成部710と制御部生成部720から構成される。データパス生成部710は、マイクロ動作統合部712、データパスセレクタ挿入部714、パイプラインレジスタ挿入部714から構成される。制御部生成部720は、リソースグループ割当て部730、デコーダ生成部722、制御論理生成部724から構成される。また、HDL記述生成部230は、リソースの情報(リソースのファンクション情報、リソースのポート情報、リソースのインスタンスHDL記述情報)をFHM−DBMS 222から取得する。また、HDL記述生成部230は、生成されたHDL記述データをHDL記述格納部20に格納する。データパス生成部710は、VLIWプロセッサのデータパスを生成する。データパス生成部710は、従来技術(非特許文献1)と同一のものである。
すなわち、マイクロ動作統合部712は、プロセッサ仕様記述格納部16から取得したオペレーション毎のマイクロ動作記述をデータと処理の流れを視覚的に図式化したデータフローグラフ(以下DFGという)に変換し、統合することにより、VLIWプロセッサのデータパスを表す1つのDFGに変換する。ここで、DFG中のノードは、マイクロ動作記述中の演算子及びリソースを表す。また、DFG中のエッジは、マイクロ動作記述中の変数、つまり、ノード間のデータの流れを表す。
さらに、データパスセレクタ挿入部714は、統合されたDFG中の信号衝突箇所にデータパスセレクタを表すノードを挿入し、信号衝突を解決する。ここで、信号衝突箇所とは、DFG中のリソースを表すノードの入力において、複数のエッジが接続されている箇所である。オペレーションによって使用するエッジが異なるため、これを選択するセレクタが必要となる。パイプラインレジスタ挿入部716は、データパスセレクタが挿入されたDFGにおいて、始点と終点のステージが異なるエッジに、パイプラインレジスタを表すノードを挿入する。ここで、エッジの始点と終点は、マイクロ動作記述において変数が使われているステージの情報から取得可能である。制御部生成部720は、VLIWプロセッサの制御部を生成する。
ここで、リソースグループ割当て部730は、プロセッサ仕様記述格納部16から取得したVLIWパターン情報などをもとに、VLIWパターン毎に、異なるスロットから同時に使用されるリソースグループ間で競合が起きないリソースグループの組み合わせを導出し、VLIWパターンにリソースグループを割り当てる。デコーダ生成部722は、プロセッサ仕様記述格納部16から取得したオペレーション情報をもとに、オペレーションのデコード信号を生成する。オペレーションのデコード信号とは、どのオペレーションが命令レジスタ(以下、IRという)に入っているかを表す信号である。制御論理生成部724は、デコーダ生成部722により生成されたデコード信号及びリソースグループ割当て部730により決定されたリソースグループ割当てを元に、データパス生成部710により生成されたデータパスを制御する論理を生成する。
次にリソースグループの割当て部730について図10から図16を用いて詳細に説明する。図10は、図9中のリソースグループ割当て部730の処理における、各VLIWパターンに対するリソースグループ割当て処理のフローを示す。まず、最初のスロットを現在のスロットとする(S732)。そして、スロットに対して利用可能なリソースグループを1つ選択する(S734)。選択可能なリソースグループが存在する場合(S736でYes)、リソースグループの競合判定処理(S744)を行い、選択済みのリソースグループと、リソースまたはリソースのファンクションに競合が発生した場合(S744でYes)、ステップS734へ戻り、別のリソースグループを選択する。
ステップS736において、選択可能なリソースグループが存在しない場合(S736でNo)、最初のスロットであるか否かを判断する(S738)。ステップS738において、最初のスロットでない場合(S738でNo)、前のスロットに戻り別のリソースグループを選択する(S740)。現在のスロットが最初のスロットである場合(S738でYes)、エラーとして競合判定手順を終了する(S742)。ステップS744において、競合しないリソースグループが見つかった場合であって(S744でNo)、かつ現在のスロットが最後のスロットでない場合(S746でYes)、次のスロットを現在のスロットとし(S750)、ステップS734へ進む。ステップS746において、現在のスロットが最後のスロットの場合(S746でYes)、正常終了として、選択したリソースグループを出力して終了する(S748)。
ここで、リソースグループの割当て処理は、リソースグループ情報、VLIWパターン情報、スロット・リソースグループ関係情報、オペレーショングループ・リソースグループ関係情報を入力とし、リソースグループ割当て結果を出力とする。リソースグループ情報にはメンバとして、リソースクラスに対応して、リソース名またはリソース名とファンクション名を組み合わせたリソースファンクション名が含まれる。これらの各情報の内容及び形式について例をあげて以下に説明する。
図11は、リソースグループ情報の例を示す。リソースグループ情報600は、リソースグループ定義601の集合である。リソースグループ定義601は、リソースグループ名602及び、リソースクラス名606に対するリソース名604またはリソースファンクション名608の対応の集合で構成される。図11において、リソースファンクション名808は、リソース名の文字列とリソースのファンクション名の文字列がピリオドで連接された形式で表されている。
図12は、スロット・リソースグループ関係情報の例を示す。スロット・リソースグループ関係情報810は、スロット812ごとに使用可能なリソースグループ814を列挙した情報である。ここで、あるリソースグループ814は、複数のスロット812に属することはできない。複数のスロットから利用されるリソースを表現する場合は、リソースグループ情報で同じリソースを含むリソースグループ814をリソースグループ名に変えて複数個定義し、異なるスロット812に所属させることで実現する。
図13は、VLIWパターン情報の例を示す。VLIWパターン826は、各スロット822に対するオペレーショングループ824の対応で表現される。すなわち、設計対象のVLIWプロセッサにおいて、どのようなオペレーションの組み合わせが実行可能かが定義される。たとえば、図13の一番下のVLIWパターン6は、スロット1でオペレーショングループALU、スロット2でオペレーショングループDIV、スロット3でオペレーショングループALU、スロット4でオペレーショングループMEMに属するオペレーションを同時に実行可能であることを表す。
図14は、オペレーショングループ・リソースグループ関係情報の例を示す。オペレーショングループ・リソースグループ関係情報840は、オペレーショングループ842ごとに、使用するリソースグループ844を定義した情報である。たとえば、図14では、オペレーショングループALU846に属するオペレーションは、リソースグループRG1、RG4、RG9、RG13を使用して実行可能であることを表す。
図15は、VLIWパターンに対するリソースグループ割当て状態を示す。リソースグループ割当て860は、入力されたVLIWパターン864に対する、各スロット862ごとのリソースグループ866の対応で表現される。例えば、図15の一番下のVLIWパターンに対するリソースグループ割当て870では、スロット1でオペレーショングループALUを処理する際にリソースグループRG1を利用すること、スロット2でオペレーショングループALUを処理する際にリソースグループRG4を利用すること、スロット3でオペレーショングループMEMを処理する際にリソースグループRG12を利用すること、及びスロット4でオペレーショングループALUを処理する際にリソースグループRG13を利用することが表されている。
図16は、リソースグループ競合判定処理744を示す。リソースグループ競合判定処理の入力は、現在のリソースグループ760と、選択済みのリソースグループ762であり、出力は、競合判定結果790(真偽値)である。リソースグループの競合の判定は、以下のようにして行う。
現在のリソースグループ760に含まれるリソース名とファンクション名の組の集合Fc766を導出する(764)。ここで、リソースグループに含まれるファンクションは、ファンクションが明示されていないリソースについてはそのリソースが持つすべてのファンクションを、ファンクションが指定されているリソースについてはそのファンクションを集めた集合である。また、Fc766が使用するリソース名とポート名の組の集合Pc774を導出する(772)。ここで導出するポートは、リソースの入力ポート(データ入力及び制御入力)である。出力ポートについては、異なるファンクション間で同時に利用することができるため、ここでは考えない。
選択済みのリソースグループ762に含まれるリソース名とファンクション名の組の集合Fs778、及びFs778が使用するリソース名とポート名の組の集合Ps786を導出する(776、784)。
導出したPc774、Ps786を元に、競合発生=Pc∈Psの式を用いて競合判定を行う。すなわち、ファンクションが指定されていないリソースについては、すべてのファンクションを使用する可能性があるとして、また、ファンクションまで明示されているリソースについてはファンクションごとに、リソースグループどうしの競合判定を行う。また、ファンクションどうしの競合を判定するときは、ファンクションが使用するポート情報(FHMから取得可能)を元に行っている。これは、異なるファンクションであっても同じポートを使用する場合があるからである。ファンクションの入力ポートまたは制御ポートに競合があった場合、それらのファンクションは同時には利用できない。そうでない場合は、同時に利用できることになる。つまり、リソースグループのメンバとして、リソースだけでポートが特定できない場合は、ファンクションも含めて定義することにより、リソースグループの競合判定ができるようになる。
図17は、リソースグループの競合判定の例を示す。例えば、従来は図27に示したように、リソースグループが競合すると判定されてしまい、ポート1:906とポート2:910の同時使用ができず、2つ以上のスロットから同時に利用可能なリソースを扱えなかったが、図17に示されるように、このようなリソースも利用可能となった。図17において、リソースResA910は、2つのポートすなわちポート1:906とポート2:908を持ち、この2つのポートは同時に使用可能である。また、ファンクションが使用するポート情報912より、リソースResA910のfunc1()902はポート1:906を、func2()904はポート2:908を使用することが分かる。
これにより、スロット1 921及びスロット2 922でそれぞれファンクションfunc1()902及びfunc2()904を同時に使用可能なはずである。また、スロット・リソースグループ情報914から、スロット1がリソースグループRG1を、スロット2がリソースグループRG2を用いることがわかる。ここで、リソースグループ情報946では、リソースファンクション名(リソース名とファンクション名の組み合わせ)も含めてリソースグループが定義されているため、リソースグループRG1とRG2の間に競合は発生しないことが分かる。したがって、スロット1とスロット2でRG1とRG2を同時に使用可能、すなわち、func1()902とfunc2()904を同時に使用可能である(矢印で示す)。
次に、別の例について説明する。図18は、リソースグループの競合判定の例を示す。ここでは、スロットが3つあり(スロット1:961、スロット2:962、及びスロット3:963)、独立して同時に使用可能な2つのポート(ポート1:966及びポート2:968)を持ったリソースResA960(例えば、DSP(Digital Signal Processor)のXバス、Yバス用の2つのポート群を持ったメモリアクセスユニットなど)を3つのスロットで共有することを考える。この場合、明らかに、少なくとも1つ以上のスロットはResA960の両方のポート(966、 968)を使用する可能性がある。例えば、図18では、Slot2が、他の2つのスロット(スロット1:961、スロット3:963)の状況によって、ポート1:966またはポート2:968のどちらかを使用する。すなわち、スロット1:961がポート1:966を使用する場合、スロット2:962ではポート2:968を使用し、また、スロット3がポート2:968を使用する場合、スロット2ではポート1:966を使用する必要がある。
このとき、従来技術におけるリソースグループ情報976ではRG2AとRG2Bの区別がつかないため、リソースグループの競合判定の際に、RG2AとRG2Bの両方ともRG1Aと競合すると判定され、リソースグループ割当て980が決定できない。しかし、発明技術におけるリソースグループ情報978では、RG2AとRG2Bの区別が可能となり、RG2BがRG1Aと競合しないこと、及び、RG2AがRG3Bと競合しないことがわかるため、正常なリソースグループ割当て982が決定可能となる。
<GUIを用いた実施例>
次に、本発明の第2の実施形態に係るVLIWプロセッサ自動生成方法について説明する。図19は、入力編集部206のGUIの構成を示す。入力編集部GUI1400は、アーキテクチャ情報定義ウィンドウ1420、オペレーション情報定義ウィンドウ1430、オペレーショングループ定義ウィンドウ1000、リソース情報定義ウィンドウ1440、リソースグループ定義ウィンドウ1100、IOポート情報定義ウィンドウ1450、スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウ1200、VLIWパターン定義ウィンドウ1300、マイクロ動作記述定義ウィンドウ1460から構成される。
アーキテクチャ情報定義ウィンドウ1420では、図6中のスロット情報402及びパイプラインステージ情報404を入力する。オペレーション情報定義ウィンドウ1430では、図6中のオペレーション情報410を入力する。オペレーショングループ定義ウィンドウ1000では、図6中のオペレーショングループ情報416を入力する。リソース情報定義ウィンドウ1440では、図6中のリソース情報406を入力する。リソースグループ定義ウィンドウ1100では、図6中のリソースグループ情報414を入力する。IOポート情報定義ウィンドウ1450では、図6中のIOポート情報408を入力する。
スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウ1200では、図6中のオペレーショングループ・リソースグループ関係情報424及びスロット・リソースグループ関係情報426を入力する。詳細は後述する。VLIWパターン定義ウィンドウ1300では、図6中のVLIWパターン情報422を入力する。マイクロ動作記述定義ウィンドウ1460では、図4中のリソースクラスを用いて記述されたマイクロ動作記述データ320を入力する。
図20は、オペレーショングループ定義ウィンドウ1000を示す。オペレーショングループ定義ウィンドウ1000は、直感的にオペレーションを分類(グループ化)できるように構成されている。オペレーショングループ定義ウィンドウ1000は、ツリー構造でオペレーショングループが表示される枠1002と、未分類のオペレーションが表示される枠1004から構成される。オペレーショングループ追加ボタン1016により、オペレーショングループ枠1002にオペレーショングループを追加することができる。
そして、追加ボタン1012を押すことで、未分類オペレーション枠1004から選択したオペレーションを、オペレーショングループ枠1002から選択したオペレーショングループに追加したり、削除ボタン1014を押すことで、オペレーショングループ枠1002から選択したオペレーションを、そのオペレーションが所属するオペレーショングループから削除することができる。なお、ボタンにより追加削除を行う方法の他に、ドラッグ&ドロップによる直感的な操作をしてもよい。このように、分類済みのオペレーションを専用の枠に入れる構成を取ることにより、オペレーションのオペレーショングループへの定義忘れを減らすことができる。
図21は、リソースグループ定義ウィンドウ1100を示す。リソースグループ定義ウィンドウ1100は、直感的で見やすい構成で、リソースグループを定義することができる。リソースグループ定義ウィンドウ1100は、リソースグループ枠1102、リソースグループメンバ定義枠1104、リソースグループ追加ボタン1122、リソースクラス追加ボタン1124から構成される。また、リソースグループメンバ定義枠1104は、リソースクラス列1106、リソース名入力列1108、ファンクション名入力列1110から構成される。
通常、リソースクラスの定義はリソース名を指定するだけでよいが、図17及び図18に示したような読取りアクセス機能、書き込みアクセス機能を複数系統もつリソースの場合、それらの機能を同時に利用するためにはリソース内に定義されたファンクションまで指定する必要がある。リソースクラスの定義にファンクション列1110を追加することで、設計者は設計内容に合わせて、読取りアクセス、書き込みアクセスで使用するリソースを柔軟に指定できるようになった。この指定は、例えばリソースを選んだ後プルダウンメニュー1112でリソース内に定義されたファンクションを表示して選択するようにすればよい。
また、ある時点で追加されたリソースクラスを、全リソースグループに対して表示するので、リソースクラスに対応するリソース及びファンクションの定義忘れを減らすことができる。定義忘れにより、生成されるハードウェアにおいて無駄な競合が発生し、性能が低下することがあるため、性能低下を減らすことができる。
図22は、スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウ1200を示す。スロット、リソースグループ、オペレーショングループの間の相互関係を、チェックボックスの操作で直感的に定義できるようになっている。スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウ1200は、スロット・リソースグループ間の相互関係定義領域1202と、オペレーショングループ・リソースグループ間の相互関係定義領域1204から構成される。たとえば、リソースグループRG_4Mに対するスロット定義1212は、リソースグループRG_4Mがスロット4で使用されることを表す。また、オペレーショングループOG_JMPに対するリソースグループ定義1214は、リソースグループRG_3BがオペレーショングループOG_JMPを実行可能であることを表す。
事前に定義されている制約の検出・修正機能をGUIで実現することにより、重複定義などの記述ミスを減らすことができるようになっている。たとえば、リソースグループは複数スロットに所属できないという排他的制約により、スロット・リソースグループ間の相互関係定義領域1202においては、チェックボックスは同じ行に1つしかつけることができず(あるリソースグループに対応するスロットはただ1つのみ許される)、別の列にチェックをつけた場合、既に有効化されていた同じ行の別の列のチェックが排他制約により無効化される。
図23は、VLIWパターン定義ウィンドウ1300を示す。VLIWパターン定義ウィンドウ1300は、VLIWパターン編集枠1302、VLIWパターン削除ボタン1304、VLIWパターン追加ボタン1306、VLIWパターン自動展開ボタン1308から構成される。VLIWパターン編集枠1302では、縦方向にVLIWパターンが表示され、左端にVLIWパターンの通し番号1312が付加される。通し番号1312は、設計者の見やすさのために付加されている。また、右端のスクロールバー1314により、数多くのVLIWパターンを編集可能である。各VLIWパターンでは、スロット1310ごとにオペレーショングループの定義を行う。
VLIWパターン削除ボタン1304及びVLIWパターン追加ボタン1306により、VLIWパターンの追加及び削除が可能である。VLIWパターン編集枠1302中のオペレーショングループを選択すると、コンボボックスなどが表示され、オペレーショングループを変更することができる。VLIWパターン自動展開ボタン1308を押したときに発動するVLIWパターン自動生成機能により、別のウィンドウで入力されたスロット・リソースグループ、オペレーショングループ・リソースグループの関係から、可能なすべてのVLIWパターンを自動的に生成することができる。さらに、パターンの確認中にミスを発見した場合、スロット・リソースグループ、オペレーショングループ・リソースグループ定義ウィンドウに戻って指定をやり直したり、または、VLIWパターン自動生成により生成された不要なパターンを、VLIWパターン削除ボタン1304により直接削除したり、VLIWパターン追加ボタン1306により追加することができる。
VLIWパターン定義ウィンドウ1300では、VLIWパターン入力をGUI化し、オペレーショングループを色分けすることで視覚的に直感的に定義、確認できるようになっている。これにより、定義漏れを減らせ、設計生産性が向上する。なお、色分けは、模様、形など、視覚的に区別できれば他の方法でもよい。なお、VLIWプロセッサの仕様記述を入力する手段であれば、ここで示す実施例以外の手段でもよい。たとえば、ウィンドウ内の部品はここで示したような並びでなくてもよい。
なお、本発明は、上記実施形態の構成に限られず、種々の変形が可能であり、第1の実施形態において、設計記述格納部12とプロセッサ仕様記述格納部16がそれぞれ独立している構成ではなく、設計記述格納部12とプロセッサ仕様記述格納部16とが同一の格納部に備えられる構成であっても構わない。また、第2の実施形態において、VLIWパターン編集枠1302中のオペレーショングループを選択すると、コンボボックスなどが表示され、オペレーショングループを変更する構成ではなく、メニューバーからの選択やテキストの直接編集によりオペレーショングループを変更する構成であっても構わない。
本発明の第1の実施形態に係るVLIWプロセッサ自動生成方法を実施するシステムのハードウェア構成図。 本実施形態に係るVLIWプロセッサ自動生成方法を実施するシステム構成図。 本実施形態に係るVLIWプロセッサ自動生成方法のフローチャート。 本実施形態に係るマイクロ動作記述に関する設計手順を示す図。 本実施形態に係るリソースクラスを用いて記述されたマイクロ動作の記述例を示す図。 本実施形態に係るプロセッサ仕様記述情報の構成図。 本実施形態に係るプロセッサ仕様記述情報を生成するプロセッサ仕様記述生成部の構成図。 本実施形態に係るリソースクラス展開部の構成及び動作の一例を示す図。 本実施形態に係るHDL記述生成部の構成を示す図。 本実施形態に係るリソースグループ割当て部の処理における各VLIWパターンに対するリソースグループ割当て処理のフローチャート。 本実施形態に係るリソースグループ情報の例を示す図。 本実施形態に係るスロット・リソースグループ関係情報の例を示す図。 本実施形態に係るVLIWパターン情報の例を示す図。 本実施形態に係るオペレーショングループ・リソースグループ関係情報の例を示す図。 本実施形態に係るVLIWパターンに対するリソースグループ割当て状態を示す図。 本実施形態に係るリソースグループ競合判定処理を示す図。 本実施形態に係るリソースグループの競合判定の例を示す図。 本実施形態に係るリソースグループの競合判定の例を示す図。 本発明の第2の実施形態に係る入力編集部のGUIの構成図。 本実施形態に係るオペレーショングループ定義ウィンドウを示す図。 本実施形態に係るリソースグループ定義ウィンドウを示す図。 本実施形態に係るスロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウを示す図。 本実施形態に係るVLIWパターン定義ウィンドウを示す図。 従来技術に係るVLIWプロセッサモデルを示す図。 従来技術に係るVLIWプロセッサ自動生成方法のフローチャート。 従来技術に係るマイクロ動作記述に関係する部分の設計手順の概念図。 従来技術に係るリソースグループ割当てにおけるリソースグループ競合判定の一例を示す図。
符号の説明
12 設計記述格納部
14 プロセッサ仕様記述生成処理
16 プロセッサ仕様記述格納部
18 HDL記述生成処理
20 HDL記述格納部
104 入力操作装置(入力手段)
220 FHM−DBシステム
320 リソースクラスを用いて記述されたマイクロ動作記述データ
310 マイクロ動作記述データ
400 プロセッサ仕様記述情報
402 スロット情報
406 リソース情報
410 オペレーション情報
412 マイクロ動作記述情報
414 リソースグループ情報
416 オペレーショングループ情報
420 ディスパッチ・ルール情報
422 VLIWパターン情報
424 オペレーショングループ・リソースグループ関係情報
426 スロット・リソースグループ情報
502 仕様記述生成部
550 リソースクラス展開部
606 リソースクラス名
608 リソースファンクション名
720 制御部生成部
730 リソースグループ割当て部
744 リソースグループ競合判定処理
1400 入力編集部(GUI)

Claims (9)

  1. ハードウェア記述言語(HDL)で記述されたHDL記述データを生成することにより、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを自動生成するVLIWプロセッサ自動生成方法において、
    スロットに関するスロット情報と、リソースに関するリソース情報と、オペレーショングループ情報と、リソースグループ情報と、該スロットとリソースグループとの関係情報及び該リソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、該リソースグループ情報に含まれる該リソースについてのリソースクラス名と、該リソースクラス名を用いて前記命令の動作を記述した第一のマイクロ動作記述データと、を含む設計記述データがコンピュータに入力され、記憶させる第1のステップと、
    前記コンピュータに入力された各情報に基づいて、前記複数の命令に対して、前記ディスパッチルール情報を用いて該複数の命令に関係する前記リソースグループを導出する第2のステップと、
    前記関係するリソースグループの各々に対して前記第一のマイクロ動作記述データの具体化の処理であるリソースクラス展開を行うことによって第二のマイクロ動作記述データをマイクロ動作記述情報として生成し、前記マイクロ動作記述情報と、前記リソースグループ情報と、前記命令に前記リソースを割り付ける前記ディスパッチルール情報と、を含むプロセッサ仕様記述情報を前記コンピュータに記憶させる第3のステップと、
    前記プロセッサ仕様記述情報に基づいて、前記HDL記述データを生成する第4のステップと、を備えることを特徴としたVLIWプロセッサ自動生成方法。
  2. 複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを設計するために、少なくともスロットに関するスロット情報と、前記命令の動作が記述されたマイクロ動作記述情報と、前記命令にリソースを割り付けるディスパッチルール情報とを含むプロセッサ仕様記述データと、を入力する入力手段と、少なくとも前記スロット情報を記憶する設計記述格納装置と、少なくとも前記プロセッサ仕様記述情報を記憶するプロセッサ仕様記述格納装置と、を備え、前記設計記述格納装置又はプロセッサ仕様記述格納装置を参照してハードウェア記述言語(HDL)で記述されたHDL記述データを算出するコンピュータに、
    前記入力手段を介して入力される前記スロット情報と、前記リソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含む前記ディスパッチルール情報と、該リソースグループ情報に含まれる前記リソースについてのリソースクラス名と、該リソースクラス名を用いて前記命令の動作を記述した第一のマイクロ動作記述データと、を含む設計記述データを、前記設計記述格納装置に記憶させる第1の手順と、
    前記設計記述格納装置に記憶された前記設計記述データに基づいて、前記複数の命令に対して、前記ディスパッチルール情報を用いて該複数の命令に関係する前記リソースグループを導出させ、前記関係するリソースグループの各々に対して前記第一のマイクロ動作記述データの具体化の処理であるリソースクラス展開を行うことによって第二のマイクロ動作記述データをマイクロ動作記述情報として生成させる第2の手順と、
    前記マイクロ動作記述情報と、前記リソースグループ情報と、前記ディスパッチルール情報と、を含むプロセッサ仕様記述情報を、前記プロセッサ仕様記述格納装置に記憶させる第3の手順と、
    前記プロセッサ仕様記述格納装置に記憶された前記プロセッサ仕様記述情報に基づいて、前記HDL記述データを生成させる第4の手順と、を実行させることを特徴としたVLIWプロセッサ自動生成プログラム。
  3. ハードウェア記述言語(HDL)で記述されたHDL記述データを生成することにより、複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを自動生成するVLIWプロセッサ自動生成方法において、
    スロットに関するスロット情報と、リソースに関するリソース情報と、オペレーショングループ情報と、リソースグループ情報と、該スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含むディスパッチルール情報と、該リソースグループ情報に含まれ、該リソースがファンクションを有する場合にファンクションに対応するファンクション名と、を含む設計記述データがコンピュータに入力され、記憶させる第1のステップと、
    前記VLIWプロセッサに用いられる前記複数の命令の動作を記述したマイクロ動作記述データがコンピュータに入力され、記憶させる第2のステップと、
    前記コンピュータに入力された各情報に基づいて、リソースグループ名、リソース名、前記ファンクション名を含む前記リソースグループ情報、前記ディスパッチルール情報、VLIWパターン情報、及び前記マイクロ動作記述データを含むマイクロ動作記述情報と、を備えたプロセッサ仕様記述情報をコンピュータに生成させ、記憶させる第3のステップと、
    前記プロセッサ仕様記述情報に基づいて、前記HDL記述データをコンピュータに生成させる第4のステップと、
    VLIWパターンに前記リソースグループを割当てるとき、前記ディスパッチルール情報及び前記リソースグループ情報のリソースグループ名とリソース名と前記ファンクション名を用いて前記リソースグループの競合判定をコンピュータに行わせる第5のステップと、を備えることを特徴とするVLIWプロセッサ自動生成方法。
  4. 複数の命令からなる超長命令語(Very Long Instruction Word)を実行するVLIWプロセッサを設計するために、少なくともスロットに関するスロット情報と、前記命令の動作が記述されたマイクロ動作記述情報と、前記命令にリソースを割り付けるディスパッチルール情報とを含むプロセッサ仕様記述データと、を入力する入力手段と、少なくとも前記スロット情報を記憶する設計記述格納装置と、少なくとも前記プロセッサ仕様記述情報を記憶するプロセッサ仕様記述格納装置と、を備え、前記設計記述格納装置又はプロセッサ仕様記述格納装置を参照してハードウェア記述言語(HDL)で記述されたHDL記述データを算出するコンピュータに、
    前記入力手段を介して入力される前記スロット情報と、前記リソース情報と、オペレーショングループ情報と、リソースグループ情報と、スロットとリソースグループとの関係情報及びリソースグループとオペレーショングループとの関係情報を含む前記ディスパッチルール情報と、該リソースグループ情報に含まれ、該リソースがファンクションを有する場合にファンクションに対応するファンクション名と、を含む設計記述データを、前記設計記述格納装置に記憶させる第1の手順と、
    前記入力手段を介して入力される前記VLIWプロセッサに用いられる前記複数の命令の動作を記述したマイクロ動作記述データを、前記設計記述格納装置に記憶させる第2の手順と、
    前記設計記述格納装置に記憶された前記設計記述データに基づいて、リソースグループ名、リソース名、前記ファンクション名を含む前記リソースグループ情報、前記ディスパッチルール情報、VLIWパターン情報、及び前記マイクロ動作記述データを含むマイクロ動作記述情報と、を備えたプロセッサ仕様記述情報を生成させ、前記プロセッサ仕様記述格納装置に記憶させる第3の手順と、
    前記プロセッサ仕様記述格納装置に記憶された前記プロセッサ仕様記述情報に基づいて、前記HDL記述データを生成させる第4の手順と、
    VLIWパターンに前記リソースグループを割当てるとき、前記ディスパッチルール情報及び前記リソースグループ情報のリソースグループ名とリソース名と前記ファンクション名を用いて前記リソースグループの競合判定を行わせる第5の手順と、を実行させることを特徴としたVLIWプロセッサ自動生成プログラム。
  5. 前記コンピュータに備えられた表示部は、該情報を定義するために用いられる複数のウィンドウからなる前記グラフィカルユーザインターフェース(GUI)を表示し、
    前記各情報は、前記GUIを用いて前記コンピュータに入力されることを特徴とする請求項1に記載のVLIWプロセッサ自動生成方法。
  6. 前記複数のウィンドウは、前記オペレーショングループ情報を定義するオペレーショングループ定義ウィンドウを含み、
    前記オペレーショングループ定義ウィンドウは、ツリー構造でグループを表示する第1の枠と、未分類のオペレーションを表示する第2の枠とを備え、前記第2の枠に表示されるオペレーションを前記第1の枠内に移動させることによりグループへ追加し、前記第1の枠にツリー構造で表示されるグループに属するオペレーションを前記第2の枠に移動させることにより該グループから削除することを特徴とする請求項5に記載のVLIWプロセッサ自動生成方法。
  7. 前記複数のウィンドウは、前記リソースグループ情報を定義するリソースグループ定義ウィンドウを含み、
    前記リソースグループ定義ウィンドウは、前記リソースグループを表示するリソースグループ枠と、リソースメンバー定義枠とを備え、
    前記リソースメンバー定義枠は、リソースクラス列と、リソース名入力列と、ファンクション名入力列を備え、
    リソースクラスの追加と該リソースクラスに対応する前記リソースの入力と該リソースのファンクションの入力を行うことを特徴とする請求項5に記載のVLIWプロセッサ自動生成方法。
  8. 前記複数のウィンドウは、前記スロットと前記リソースグループの関係情報及び前記リソースグループとオペレーショングループの関係情報を定義するスロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウを含み、
    前記スロット・リソースグループ関係、オペレーショングループ・リソースグループ関係定義ウィンドウは、前記スロット・リソースグループ間の相互関係定義領域と、該オペレーショングループ・リソースグループ間の相互関係定義領域とを備え、
    前記スロット・リソースグループ間の相互関係定義領域に入力された定義に対して、前記スロットと前記リソースグループ間の制約の検出及び修正機能と、を備えることを特徴とする請求項5に記載のVLIWプロセッサ自動生成方法。
  9. 前記複数のウィンドウは、VLIWパターン情報を定義するVLIWパターン定義ウィンドウを含み、
    前記VLIWパターン定義ウィンドウは、VLIWパターンを表示し編集するVLIWパターン編集枠を備え、
    前記スロットとリソースグループの関係情報及び前記リソースグループとオペレーショングループの関係情報からVLIWパターンを自動生成し前記VLIWパターン編集枠に表示するVLIWパターン自動展開機能と、を備えることを特徴とする請求項5に記載のVLIWプロセッサ自動生成方法。
JP2008013168A 2008-01-23 2008-01-23 Vliwプロセッサ自動生成方法及び自動生成プログラム Expired - Fee Related JP5049804B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008013168A JP5049804B2 (ja) 2008-01-23 2008-01-23 Vliwプロセッサ自動生成方法及び自動生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008013168A JP5049804B2 (ja) 2008-01-23 2008-01-23 Vliwプロセッサ自動生成方法及び自動生成プログラム

Publications (2)

Publication Number Publication Date
JP2009175989A JP2009175989A (ja) 2009-08-06
JP5049804B2 true JP5049804B2 (ja) 2012-10-17

Family

ID=41031017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008013168A Expired - Fee Related JP5049804B2 (ja) 2008-01-23 2008-01-23 Vliwプロセッサ自動生成方法及び自動生成プログラム

Country Status (1)

Country Link
JP (1) JP5049804B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225247B2 (en) * 2010-07-13 2012-07-17 Satish Padmanabhan Automatic optimal integrated circuit generator from algorithms and specification

Also Published As

Publication number Publication date
JP2009175989A (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
JP3571526B2 (ja) システム設計/評価cadシステムおよびそのプログラム記憶媒体
US7530014B2 (en) Data processing and difference computation for generating addressing information
US6889370B1 (en) Method and apparatus for selecting and aligning cells using a placement tool
US8386919B2 (en) System for displaying an annotated programming file
EP2343644A1 (en) Transformation of data between hierarchical data formats
US8527254B2 (en) Simulator engine development system and simulator engine development method
JP2007087215A (ja) ハードウェアモデルの変換処理に用いられるデータ構造、コンピュータプログラム、方法、及びシステム
JP5405684B1 (ja) ソースプログラムのプログラミング言語変換装置
JP5049804B2 (ja) Vliwプロセッサ自動生成方法及び自動生成プログラム
JP5460629B2 (ja) 表形式ソフトウェア仕様作成支援方法、及び装置
JP2003208307A (ja) ソースプログラム生成システム
JPH11224186A (ja) ソフトウェア解析装置及びソフトウェア解析方法
JP5275087B2 (ja) プログラム生成装置およびブロック線図生成装置
CN118394318A (zh) 大型语言模型的交互方法、装置、电子设备及存储介质
US20090064082A1 (en) Method for custom register circuit design
JP5142132B2 (ja) 設計プロセスの順序の決定を支援する技術
JP7638457B1 (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラム
JP3357563B2 (ja) 運用ログデータ管理装置
JP7474132B2 (ja) プログラム検証データ生成支援装置、及びプログラム検証データ生成支援方法
CN111126012A (zh) 定制生成表达式方法及装置
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
JP2001022808A (ja) 論理回路削減装置ならびに論理シミュレーション方法および装置
JP6680218B2 (ja) メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム
JP2512215B2 (ja) プログラム作成装置
CN116700695A (zh) 一种多处理器共享内存的图形化编程方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120626

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees