(57)【特許請求の範囲】
【請求項１】
コンピュータを用いた、自己同期型のパイプライン制御を採用したデータ駆動型情報処理装置の設計方法であって、
設計対象のデータ駆動型情報処理装置の機能ブロックおよびプロセッサに関する、設計上のパラメータを一般的に記述したライブラリファイルを、コンピュータ読取可能に記憶装置に予め記憶させておく記憶ステップと、
設計仕様にしたがって、前記設計上のパラメータの各々についてパラメータ値を設定する設定ステップと、
前記ライブラリファイルのパラメータの記述の各々を、前記設定されたパラメータ値を用いて書換えてレジスタトランスファレベル設計記述を作成するツールを前記コンピュータ上で実行させる実行ステップとを含み、
前記機能ブロックは、対データ生成手段、関数処理手段およびプログラムフェッチ手段を備え、
前記対データ生成手段は、演算の実行に必要なデータが揃うまでデータの待合せを行ない、必要なデータが揃ったと判断された時点で該データを有するパケットを前記関数処理手段へ出力し、
前記関数処理手段は、前記対データ生成手段から送られて来たパケット内の演算情報と該パケット内のデータとを用いて演算を行ない、
前記プログラムフェッチ手段は、所定の演算処理を行なうためのデータフロープログラムをロードしており、前記関数処理手段から与えられたパケットに含まれる行先情報に基づいてアドレス指定されることにより新たな行先情報と演算情報とを読出してこれをパケットに格納し、
さらに、前記対データ生成手段と前記関数処理手段と前記プログラムフェッチ手段とは、各々、複数種類の要素をパラメータ化可能であるとともに、パケットが前記対データ生成手段、前記関数処理手段、前記プログラムフェッチ手段の順に流れるものであり、
前記ライブラリファイルは、
前記設計対象のデータ駆動型情報処理装置の前記対データ生成手段、前記関数処理手段および前記プログラムフェッチ手段における、前記複数種類の要素をパラメータ化したパラメータ値の組を、予め複数種類記述した設計パラメータファイルと、
前記レジスタトランスファレベル設計記述を作成するためのひな形となるファイルとを含み、
前記設定ステップは、前記設計対象の設計仕様に応じてユーザにより指定された変数にしたがって、前記コンピュータが前記設計パラメータファイル中の前記複数種類のパラメータ値の組のうちの一つを選択するステップを含み、
前記実行ステップは、前記コンピュータが前記ひな形となるファイルに、前記設計パラメータファイルをインクルードして前記選択するステップにより選択されたパラメータ値の組を該ひな形となるファイル内に反映させることにより、レジスタトランスファレベル設計記述を前記コンピュータが自動的に作成する、データ駆動型情報処理装置の設計方法。
【請求項２】
前記設計上のパラメータは、前記データ駆動型情報処理装置の設計対象部分を構成するパイプラインの段数を含む、請求項１に記載のデータ駆動型情報処理装置の設計方法。
【請求項３】
前記設計上のパラメータはさらに、前記パイプラインにおけるデータの転送を制御する転送制御素子の転送速度を含む、請求項２に記載のデータ駆動型情報処理装置の設計方法。
【請求項４】
前記設計上のパラメータは、前記データ駆動型情報処理装置の設計対象部分を構成するパイプラインにおけるデータの転送を制御する転送制御素子の転送速度を含む、請求項１に記載のデータ駆動型情報処理装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理装置の設計手法に関し、特に、種々の用途に対して最適化された、カスタムＬＳＩ（大規模集積回路）化されたデータ駆動型情報処理装置を効率的に設計する手法に関する。
【０００２】
【従来の技術】
周知のノイマン型情報処理装置においては、一連の命令からなるプログラムが予めプログラムメモリに記憶されている。プログラムカウンタによってプログラムメモリのアドレスを逐次指定することにより、指定されたアドレスの命令が順次読み出されて実行される。
【０００３】
一方、ノイマン型情報処理装置と異なるアーキテクチャのものとしてデータ駆動型情報処理装置（Data Driven Media Processor:  DDMP）が知られている。ＤＤＭＰは、プログラムカウンタという概念を持たない非ノイマン型情報処理装置の一種である。
【０００４】
ＤＤＭＰには、命令の並列処理を基本としたアーキテクチャが採用されている。ＤＤＭＰでは、演算の対象となるデータがパケットの形で揃い次第、それらデータを処理する命令の実行が可能となる。データによって複数の命令が同時に駆動されるため、ＤＤＭＰではデータの自然な流れにしたがって並列的にプログラムが実行される。その結果、演算の所要時間をノイマン型情報処理装置と比較して大幅に短縮することができる。
【０００５】
ＤＤＭＰにおいては、パケットの転送を自己同期型パイプライン制御方式により行なっている。クロック同期型の場合には、縦列接続したラッチ回路をクロック信号で駆動してデータパケットをラッチ回路間で移動させ、ラッチ回路の間に配置したロジック回路でパケットを処理する。
【０００６】
図２０を参照して、自己同期型パイプライン制御方式を用いたＤＤＭＰ２４０は、縦列接続されるデータラッチ２４２ 、２４６、２５０と、これらデータラッチ２４２、２４６、２５０の間に配置されたロジック回路２４４および２４８と、互いに縦列接続されて、互いに送信信号ＳＥＮＤおよび応答信号ＡＣＫを送受信して、データラッチ２４２、２４６、２５０などに対してデータのラッチのタイミング信号を与えることにより、ラッチ回路間でデータのハンドシェイク型転送を行なうための局所ハンドシェイク型データ転送制御回路（以下「Ｃ素子」と呼ぶ。）２６０、２６２、および２６４等とを含む。
【０００７】
このように、自己同期型パイプライン制御方式を用いたＤＤＭＰ２４０では、データラッチ回路とＣ素子とからなるデータ転送回路構成を連続して設けることにより、データが複数のデータラッチを順に転送される。そしてその間にロジック回路によって各データに対する処理が行なわれる。
【０００８】
最近の半導体機器およびデジタル信号処理技術の発展を反映して、デジタル信号処理システムを用いる分野でも、それを採用した機器の市場の急速な拡大および変化が生じている。そのため、ＤＤＭＰの応用分野も増加している。
【０００９】
ＤＤＭＰの応用分野の中でも、例えば、大量の演算処理を行なう画像処理・映像信号処理分野は比較的大きな比重を占める。特に動画であるテレビジョン信号および静止画を扱うイメージング処理の分野では、各技術分野に特化した処理が多い。それらの処理は、汎用のＤＤＭＰを用いて実現できることが多い。しかしその場合には、との特定の技術分野では用いられることのない機能などがＤＤＭＰ内に含まれる場合もあり、そのためにＬＳＩのチップサイズが不必要に増大するという問題がある。また、汎用のＤＤＭＰを用いることにより処理速度の向上が望めないこと、消費電力の低減が望めないことなど、様々な実用上の問題が生じることもある。
【００１０】
こうした問題点に鑑み、ユーザから特別な仕様のＤＤＭＰを実現したＬＳＩチップを提供することが要望される機会が増えている。そのため、メーカとしては、そうした特別な仕様の各々に対して最適化された多種のカスタムＬＳＩを設計する技術を確立する必要がある。
【００１１】
これらの要求を満たすために、従来、ＤＤＭＰを用いたＬＳＩは、ボトムアップ的設計手法またはトップダウン的設計手法のいずれかで設計することが一般的であった。
【００１２】
図２１を参照して、ボトムアップ的設計手法でＬＳＩを設計する際の設計フローの概略を説明する。ボトムアップ的設計手法においては、まずＬＳＩ仕様が与えられる（２８０）。ＬＳＩ仕様は、ＬＳＩに要求される単位時間あたりの演算処理量で示される演算パフォーマンス、総メモリ容量、アーキテクチャなどを含む。
【００１３】
このＬＳＩ仕様に基づき、具体的に、メガエンジン、マクロプロセッサ、ルータ、ナノプロセッサ、機能ブロックなどの構成およびこれらを巡回するパケットのパケットフォーマットを決定する機能／論理設計を行なう（２８２）。
【００１４】
続いて、こうして得られた論理設計結果を人手でＬＳＩ設計上で必要となるゲートレベル回路に置換する作業を行なうことによりゲートレベル設計を行なう（２８４）。ここでいうゲートレベル回路とは、反転論理素子（インバータ、ＩＶＮ）、積論理素子（アンド、ＡＮＤ）、和論理素子（オア、ＯＲ）などの論理回路をいう。
【００１５】
こうして得られたゲートレベル設計を、ロジック／タイミングシミュレーションによって検証し（２８６）、検証されたネットリストを用いてレイアウト設計を行なう（２８８）。
【００１６】
図２２を参照して、トップダウン的設計手法でＬＳＩの設計を行なう設計フローについて説明する。トップダウン的設計手法では、ボトムアップ的設計手法の場合と同様に、まずＬＳＩ仕様が与えられる（３００）。与えられたＬＳＩ仕様に基づいて機能／論理設計を行なう（３０２）。
【００１７】
このレベルの機能をＬＳＩ設計用の機能記述言語（Verilog-HDL(Hardware Description Language), VHDL(VHSIC Hardware Description Language)など）を用いて人手でレジスタトランスファレベル（RTL）記述する（３１０）。そしてこのレベルでの機能検証のためにＲＴＬシミュレーションを行なう（３１２）。ＲＴＬシミュレーションにより検証された機能記述を論理合成ツールを用いてネットリスト化する（３１４）。
【００１８】
こうして得られたネットリストに対してロジック／タイミングシミュレーションを行なう（３１６）。検証されたネットリストを用いてレイアウトを行なう（３１８）。
【００１９】
【発明が解決しようとする課題】
ボトムアップ的設計手法ではゲートレベル設計の段階において人手の作業が発生する。またトップダウン的設計手法ではＲＴＬ記述において人手の作業が発生する。すなわち、いずれの場合にも設計のたびに人手での作業が発生する。そのため、ＬＳＩに含まれるゲート数が少ない場合はともかく、現在のように一つのＬＳＩにつき数十万〜数百万規模のゲートが蓄積される場合には、設計に要する人員および期間が非常に多くなる。そのため設計コストが高くなるという問題がある。また、仕様が多様となると、個別に対応した設計を行なう必要があるため、既存の設計資産を有効に利用することが困難である。
【００２０】
こうした事情があるため、従来のボトムアップ的設計手法またはトップダウン的設計手法のいずれを使用しても、多様なアプリケーション毎に最適化した（カスタム化された）自己同期型データ駆動装置を用いたプロセッサＬＳＩ（カスタムＤＤＭＰ  ＬＳＩ）の開発には多大な資源を投入する必要がある。すなわち、設計に必要な人員が多数となること、設計期間が長くなることなどの障害がある。そのため設計コストが高くなる。一方で既存の設計資産の有効利用は困難である。したがって、設計コストを低減することが困難である。
【００２１】
さらに、ＤＤＭＰ方式は、ラッチ回路をクロックに同期させて動作させる同期型パイプライン制御と比較して、決定しなければならない要素の数が多いという問題がある。たとえばクロック同期型パイプライン制御では、パケットにはデータ領域とアドレス領域とを設ければよい。それに対してＤＤＭＰ方式では、データ領域と、タグ情報としての世代番号領域、行先ノード番号および命令コード領域などを設ける必要がある。これら領域の各々について、その大きさなどを決定する必要が有る。
【００２２】
さらに、クロック同期型パイプライン制御は、クロック信号によって一意的にその動作をコントロールすることができるのに対し、ＤＤＭＰ方式では既に述べたように送信信号ＳＥＮＤおよび応答信号ＡＣＫの授受によってデータのラッチと転送とを制御するＣ素子を用いている。そのため、Ｃ素子の転送速度を新たに規定しなければならない。
【００２３】
すなわち、ＤＤＭＰ方式を用いる場合には、設計を行なう上で決定しなければならない要素の数が著しく多い。この事情と、先に述べたような個別仕様に対応する必要性とのために、ＤＤＭＰ方式の設計はより困難となっている。
【００２４】
それゆえにこの発明の目的は、過去の設計資産を有効利用することが可能で、それによって比較的低い設計コストで多種のカスタムＤＤＭＰ  ＬＳＩの設計を行なうことが可能なデータ駆動型情報処理装置の設計方法を提供することである。
【００２５】
この発明の他の目的は、過去の設計資産を有効利用することが可能でかつ決定すべき要素を容易に決定でき、それによって比較的低い設計コストで多種のカスタムＤＤＭＰ  ＬＳＩの設計を行なうことが可能なデータ駆動型情報処理装置の設計方法を提供することである。
【００２６】
【課題を解決するための手段】
本発明の第１の局面によれば、コンピュータを用いたデータ駆動型情報処理装置の設計方法は、設計対象のデータ駆動型情報処理装置の機能ブロックおよびプロセッサに関する、設計上のパラメータを一般的に記述したライブラリファイルを、コンピュータ読取可能に記憶装置に予め記憶させておく記憶ステップと、設計仕様にしたがって、設計上のパラメータの各々についてパラメータ値を設定する設定ステップと、ライブラリファイルのパラメータの記述の各々を、設定されたパラメータ値を用いて書換えてレジスタトランスファレベル設計記述を作成するツールをコンピュータ上で実行させる実行ステップとを含む。
機能ブロックは、対データ生成手段、関数処理手段およびプログラムフェッチ手段を備え、対データ生成手段は、演算の実行に必要なデータが揃うまでデータの待合せを行ない、必要なデータが揃ったと判断された時点で該データを有するパケットを関数処理手段へ出力し、関数処理手段は、対データ生成手段から送られて来たパケット内の演算情報と該パケット内のデータとを用いて演算を行ない、プログラムフェッチ手段は、所定の演算処理を行なうためのデータフロープログラムをロードしており、関数処理手段から与えられたパケットに含まれる行先情報に基づいてアドレス指定されることにより新たな行先情報と演算情報とを読出してこれをパケットに格納し、さらに、対データ生成手段と関数処理手段とプログラムフェッチ手段とは、各々、複数種類の要素をパラメータ化可能であるとともに、パケットが対データ生成手段、関数処理手段、プログラムフェッチ手段の順に流れるものであり、ライブラリファイルは、設計対象のデータ駆動型情報処理装置の対データ生成手段、関数処理手段およびプログラムフェッチ手段における、複数種類の要素をパラメータ化したパラメータ値の組を、予め複数種類記述した設計パラメータファイルと、レジスタトランスファレベル設計記述を作成するためのひな形となるファイルとを含み、設定ステップは、設計対象の設計仕様に応じてユーザにより指定された変数にしたがって、コンピュータが設計パラメータファイル中の複数種類のパラメータ値の組のうちの一つを選択するステップを含み、実行ステップは、コンピュータがひな形となるファイルに、設計パラメータファイルをインクルードして選択するステップにより選択されたパラメータ値の組を該ひな形となるファイル内に反映させることにより、レジスタトランスファレベル設計記述をコンピュータが自動的に作成する。
【００２７】
予め機能ブロックおよびプロセッサに関するライブラリファイルを準備しておき、設計仕様にしたがってパラメータ値を書換えるツールを実行する。これにより、設計仕様に適合したレジスタトランスファレベル設計記述が自動的に作成でき、設計期間を短縮することができるのに加え、多種多様な仕様にも容易に対処して設計を行なうことができる。仕様変更に対しても容易に対応することができる。さらに、ライブラリファイルを蓄積することにより、以後の設計において、過去の資産を蓄積して利用することが容易になる。
【００２９】
さらに、設計上のパラメータの適切な組を予め複数個容易しておき、パラメータの指定時には、設計仕様に応じてその中の一つの組を選択するだけで、整合したパラメータの組を準備することができる。そのため、レジスタトランスファレベルでのＤＤＭＰ  ＬＳＩの設計が容易になる。
【００３０】
本発明の第２の局面によれば、第１の局面の構成に加えて、設計上のパラメータは、データ駆動型情報処理装置の設計対象部分を構成するパイプラインの段数を含む。
【００３１】
パイプラインの段数は、データ駆動型情報処理装置の設計時および仕様変更による設計変更時に必ず再検討される要素であり、これによって他の部分のパラメータも影響を受ける。これを設計上のパラメータとして与えることでデータ駆動型情報処理装置の設計対象部分を構成する各要素のパラメータ値として適切なものを設定することができる。
【００３２】
本発明の第３の局面によれば、第２の局面の構成に加えて、設計上のパラメータはさらに、パイプラインにおけるデータの転送を制御する転送制御素子の転送速度を含む。
【００３３】
転送速度を規定することにより、転送制御素子における遅延時間が決定され、転送制御素子の回路構成自体も容易に決定することができる。
【００３４】
本発明の第４の局面によれば、第１の局面の構成に加えて、設計上のパラメータは、データ駆動型情報処理装置の設計対象部分を構成するパイプラインにおけるデータの転送を制御する転送制御素子の転送速度を含む。
【００３５】
転送速度を規定することにより、転送制御素子における遅延時間が決定され、転送制御素子の回路構成自体も容易に決定することができる。
【００３６】
【発明の実施の形態】
図１に、本発明の一実施の形態にかかる、パラメタライズ手法によるＤＤＭＰＬＳＩの設計フローである。図１を参照して、この設計手法では、予めＤＤＭＰ機能ブロック／プロセッサライブラリ４４が準備されている。演算パフォーマンス、総メモリ容量、アーキテクチャなどの、与えられたＬＳＩ仕様（３０）に基づいて、予め設定されているパラメータの組であるパケットデータ幅、メモリタイプ、メモリ容量、並列データパス数などの具体的な値を決定するパラメータライゼーションが行なわれる（３２）。こうして決定されたパラメータの具体的な値を、予め準備されているＤＤＭＰ機能ブロック／プロセッサライブラリ４４に指定してパラメータライズＲＴＬ設計ツールを実行する（３４）。これにより与えられたＬＳＩ仕様に対応するＲＴＬ記述ファイルが自動的に生成される。
【００３７】
こうして得られたＲＴＬ記述ファイルに対して、このレベルでの機能検証のためにＲＴＬシミュレーションを行なう（３６）。検証された論理記述を論理合成ツールを用いてネットリスト化する（３８）。得られたネットリストに対してロジック／タイミングシミュレーションを行なうことによりネットリストを検証する（４０）。検証されたネットリストを用いてレイアウトを行なう（４２）。
【００３８】
以下、この実施の形態にかかるパラメタライズ手法によるＤＤＭＰＬＳＩの設計フローを詳細に説明する。まず、設計の対象となるＤＤＭＰの階層構造とその構成要素例とを図２を参照して説明する。図２を参照して、ＤＤＭＰは、複数個のメガエンジン５０（たとえばメガエンジン（ＭＥ）１、ＭＥ２）からなる。ここで「ＭＥ１」などと構成要素の最後に付された数字は、各構成要素の種類を示す。すなわち、同じ番号のものは同じ種類、異なる番号のものは異なる種類の構成要素である。
【００３９】
各メガエンジン５０は、複数のマクロプロセッサ５２（たとえばマクロプロセッサ（ＭＰ）１、ＭＰ２）からなる。
【００４０】
各マクロプロセッサ５２は、外部との入出力部である入力ポート５６および出力ポート５８と、ナノプロセッサ６０と、他のナノプロセッサ（ＮＰ）との間でパケットの合流および分岐を行なうためのルータ５４とで構成される。
【００４１】
ナノプロセッサ６０はさらに、定数フェッチ部ＣＳＴ、対データ生成部ＦＣ、関数処理部ＦＰおよびプログラムフェッチ部ＰＳなどからなる。
【００４２】
図２に示されるように、ＤＤＭＰは種々の構成要素の階層構造からなっている。
【００４３】
ＤＤＭＰ  ＬＳＩの構成例を図３に示す。図３を参照して、この実施の形態のＤＤＭＰ  ＬＳＩは、シリーズ接続されたメガエンジン８０（ＭＥ１）およびメガエンジン８２（ＭＥ２）を含む。
【００４４】
図４に、メガエンジン８０（ＭＥ１）およびメガエンジン８２（ＭＥ２）の構成要素例を示す。たとえばメガエンジン８０（ＭＥ１）は、マクロプロセッサ（ＭＰ１）が２個、マクロプロセッサ（ＭＰ２）が２個で構成されている。
【００４５】
図５に、マクロプロセッサ９０の構成例を示す。マクロプロセッサ９０は、入力ポート１００と、入力ポート１００に接続され、予め設定されているルーティング情報または入力パケット中のタグフィールドの値などを総合的に判断して次の行先を定め、データパケットを送出する機能を持つルータ１０２と、いずれもルータ１０２に接続された４つのナノプロセッサ１０４、１０６、１０８および１１０と、ルータ１０２に接続された出力ポート１１２とを含む。
【００４６】
図６にマクロプロセッサタイプと、それらの構成要素とを表形式で示す。たとえばマクロプロセッサＭＰ１は、ルータＲ１と、入力ポートＩＰ１と、出力ポートＯＰ１と、ナノプロセッサＮＰ１，ＮＰ２，ＮＰ３およびＮＰ４とを含む。
【００４７】
図７を参照して、たとえばナノプロセッサ１０４は、ルータからデータパケットを受け、入力されたパケットが定数データを必要とするか否かを命令コードにより判定し、定数データが必要な場合には自己のメモリから当該定数データをフェッチしてパケットに格納するための定数フェッチ部（ＣＳＴ）１２０と、定数フェッチ部（ＣＳＴ）１２０の出力に接続された入力を持ち、演算の実行に必要なデータが揃うまでデータの待合せを行ない、必要なデータが揃った時点でそれらデータを有するパケットを出力する対データ生成部（ＦＣ）１２２と、対データ生成部（ＦＣ）１２２の出力に接続された入力を持ち、送られて来たパケット内の演算情報と、データ本体とを用いて必要な演算を行なうための関数処理部１２４と、関数処理部１２４の出力に接続された入力を持ち、かつ予め所定の演算処理を行なうためのデータフロープログラムがロードされており、与えられたパケットに含まれる行先情報に基づいてアドレス指定されることにより新たな行先情報と演算情報とを読出してこれをパケットに格納し、更に演算が必要であれば再び対データ生成部（ＦＣ）１２２に出力する処理を行なうためのプログラムフェッチ部（ＰＳ）１２６とを含む。
【００４８】
このナノプロセッサ１０４では、入力されたパケットが定数データを必要とするものか否かが定数フェッチ部（ＣＳＴ）１２０により判断され、必要な定数データがパケットに格納される。パケットは対データ生成部（ＦＣ）１２２に送られる。対データ生成部（ＦＣ）１２２は、演算すべきデータが揃ったか否かを判定し、揃えば演算のための対となる対データを含んだパケットが生成され関数処理部１２４に与えられる。関数処理部１２４は、送られて来たパケットの演算情報とデータ本体とを用いて演算を行ない、処理された結果のパケットをプログラムフェッチ部（ＰＳ）１２６に与える。プログラムフェッチ部（ＰＳ）１２６には予めデータフロープログラムがロードされており与えられたパケットの行先情報に基づいてアドレス指定することにより、新たな行先情報と演算情報とが読出される。プログラムフェッチ部（ＰＳ）１２６は、これらを入力データパケットに格納し、さらに演算が必要であれば再び対データ生成部（ＦＣ）１２２に送る。
【００４９】
こうして、パケットがＦＣ→ＦＰ→ＰＳ→ＦＣ→ＦＰ→ＰＳ→と循環して流れることにより、プログラムフェッチ部（ＰＳ）１２６に予めストアされていたデータフロープログラムが実行される。したがって、ＤＤＭＰ  ＬＳＩでは、回路内部をパケットが巡回することにより、特にナノプロセッサ内部を巡回することにより、データが処理されていく。
【００５０】
図８に、ナノプロセッサの構成要素例を６種類のナノプロセッサ（ＮＰ１〜６）に対して表形式で示す。
【００５１】
さて、ＤＤＭＰ  ＬＳＩが備えるべきメガエンジンの種類および個数は、ＬＳＩ仕様として与えられる、必要な演算パフォーマンス、必要な総メモリ容量、命令セットで規定されるアーキテクチャにより規定される。したがって、一般的にはＤＤＭＰ  ＬＳＩは複数のメガエンジンを構成要素とし、それらを相互接続することにより構成される。図３に示したのは、メガエンジンＭＥ１，ＭＥ２が相互接続（シリアル接続）された例である。
【００５２】
図２および図４に示すように、メガエンジンの構成要素はマクロプロセッサである。マクロプロセッサの種類および個数も、ＤＤＭＰ  ＬＳＩと同様に、求められる演算パフォーマンス、必要な総メモリ容量、および命令セットで規定されるアーキテクチャなどにより規定される。
【００５３】
なお、図５に示す例ではＤＤＭＰ  ＬＳＩが４つのナノプロセッサを含んでいるが、この数はＬＳＩ仕様により決定されるものであり、一般的に要素数が限定される訳ではない。
【００５４】
以上、ＤＤＭＰの階層構造と構成要素例とを説明した。このＤＤＭＰの階層構造（図２参照）の下位層を形成する機能ブロックは、定数フェッチ部ＣＳＴ、対データ生成部ＦＣおよび関数処理部ＦＰなどを含む。これらの間でのデータの授受はもちろん、これら各機能ブロックの内部でも、ハンドシェイク方式によるデータ転送が行なわれる。したがってＤＤＭＰではその下層の構成要素にいたるまで、図２０に示したような局所ハンドシェイク型データ転送制御回路（Ｃ素子）と、データラッチ回路と、データラッチ間に配設されたロジック回路とからなる構成が基本となっている。すなわち、Ｃ素子がＤＤＭＰを実現する上でのポイントとなる構成要素である。
【００５５】
そこで、以下では、本発明の一実施の形態にかかるパラメタライズ手法による設計方法のフローの説明を、定数フェッチ部ＣＳＴを代表例とし、Ｃ素子が関係する部分を例として説明する。
【００５６】
まず、定数フェッチ部ＣＳＴの構成例を図９に示す。図９を参照して、定数フェッチ部（ＣＳＴ）１２０は、ＤＤＭＰの特徴であるハンドシェイク方式によりデータ転送を制御するデータ転送制御部（CST＿TIMING）１４２と、入力されたデータパケットが定数データを必要とするか否かを判定し、必要であれば定数データをフェッチする処理を行なうためのデータパス部（CST＿DATAPATH）１４０とを含む。
【００５７】
データパス部１４０は、３段のデータラッチ１５０、１５４および１５８と、データラッチ１５０およびデータラッチ１５４の間に配置され、入力されるデータパケットが定数データを必要とするか否かをデータパケット内のタグ領域の命令コードにより判定するための命令デコーダ部１５２と、データラッチ１５４およびデータラッチ１５８の間に配置され、定数データが必要であると命令デコーダ部１５２が判定したことに応答して、必要とされる定数データをフェッチする定数メモリ部１５６とを含む。
【００５８】
データ転送制御部１４２は、それぞれデータラッチ１５０、１５４、および１５８に対応して設けられ、互いの間で送信信号ＳＥＮＤおよび応答信号ＡＣＫを授受して、対応のデータラッチ回路に対してタイミング信号を与えるためのＣ素子１７０、１７２および１７４を含む。
【００５９】
本実施の形態の設計方法では、データラッチ１５０、１５４、および１５８ならびにＣ素子１７０、１７２および１７４からなるパイプラインの段数（図９に示す例では３段）をパラメータ化（パラメータライゼーション）する。このパイプライン段数の設計は、データパケットのデータ幅、ロジック部（命令デコーダ部など）の回路規模、装置全体の演算速度、および装置の消費電力などを規定する重要な要素である。ＤＤＭＰ設計の最適化を図ったり、仕様変更をしたりした場合には、必ずこのパイプライン段数の設計から再検討が必要であり、したがってパイプライン段数は設計上での重要なポイントである。
【００６０】
本実施の形態では、このパイプライン段数をパラメータ化したことによって、ＤＤＭＰ設計の要求仕様への適応性を向上させ、設計を短期化することが可能となった。
【００６１】
本実施の形態の方法によれば、パイプラインの段数は、命令デコーダ部１５２および定数メモリ部１５６を実現させるための回路規模に応じて容易に変更することができる。また、パイプライン間の転送速度を決定すると、それに対応してＣ素子内の遅延時間を決めることができ、Ｃ素子の回路構成を決めることができる。したがってパイプライン間の転送速度も決定してよい。
【００６２】
本実施の形態では、パイプラインの段数の設定は、図１に示されるＤＤＭＰ機能ブロック／プロセッサライブラリ４４内にあるＤＤＭＰ設計パラメータファイル（図１１参照）の中の、パイプライン段数を示す値「PPLN」を参照して行なわれる。本実施の形態では、後述する３つの条件、すなわちＭＩＮ条件、ＭＡＸ条件、および中間であるＴＹＰ条件に応じた３つの値として予め２、５、３がＤＤＭＰ設計パラメータファイル内に設定されており、どの条件が指定されたかによってこれら３つの値のうちのいずれかが選択される。
【００６３】
なお、上に述べたＭＩＮ条件、ＭＡＸ条件で用いられるＰＰＬＮの値（２、５）はそれぞれ上限値および下限値と呼ばれるが、これらの値は、ＬＳＩ化する上で妥当な、また設計をある程度の時間で収束させるための範囲を規定する値に選択されている。
【００６４】
図９ではパイプライン段数は３段である。したがってＰＰＬＮの値は「３」（ＴＹＰ値）に設定されていることが分る。
【００６５】
データ転送制御部１４２では、パイプライン段数以外の要素もパラメータ化されている。例えば、図１０に示されるように、定数メモリ部１５６に格納されるデータのビット幅（ＤＷ）および並列データ数（ＮＤ）も、ＭＩＮ条件のときにはＤＷ＝５でＮＤ＝８の定数群１８０、ＴＹＰ条件ではＤＷ＝１２，ＮＤ＝８の定数群１８２、ＭＡＸ条件ではＤＷ＝１６，ＮＤ＝４の定数群１８４、という形で予め与えられている。この場合の上限値、下限値もまた、ＰＰＬＮと同様の基準で選択される。
【００６６】
さらに、本実施の形態では、Ｃ素子に制御されてデータパス部１４０を転送されるパケットのフォーマットもパラメータ化されている。
【００６７】
ここでは定数フェッチ部（ＣＳＴ）１２０を例としてパラメータライゼーションを説明したが、これ以外の機能ブロックについても、予め設計に必要な要素が抽出され、それぞれパラメータ化される。そして、実際の設計時に定められるパラメータにしたがって具体的なＲＴＬ記述ファイルが自動的に作成される。
【００６８】
次に、本実施の形態において、ＬＳＩ仕様に基づいて決定されたパラメータに基づいてＲＴＬ記述ファイルを自動的に作成するパラメータライズＲＴＬ設計ツールの具体的な実行例を説明する。
【００６９】
図１１に、ＤＤＭＰ  ＬＳＩ仕様に基づくＤＤＭＰ設計パラメータファイル（ファイル名「np1＿param＿define.v」）の一部の例を示す。図１２には、一例としてナノプロセッサ（ＮＰ）１のＣＳＴ部のＤＤＭＰ機能ブロック／プロセッサライブラリファイル（図１参照）の一部を示す。図１３はＮＰ１のＣＳＴ部中のデータ転送制御部のＤＤＭＰ機能ブロック／プロセッサライブラリファイルの一部を示す。図１４はＮＰ１のＣＳＴ部中のデータパス部のＤＤＭＰ機能ブロック／プロセッサライブラリファイルの一部を示す。
【００７０】
図１１に示されるＤＤＭＰ設計パラメータファイルには、ＤＤＭＰ  ＬＳＩの設計に必要な、パラメータ化のための情報が格納されている。これら情報は、中間値（ＴＹＰ条件）、下限値（ＭＩＮ条件）、および上限値（ＭＡＸ条件）のうちの何れを選択するかを変数ＣＯＮＦＩＧとして指定する、ユーザにより指定される行１９０と、これら３条件に対してそれぞれ設けられた中間値部１９２、上限値部１９４、および下限値部１９６とを含む。そして図１１において「ＳＷＩＴＣＨ文」および「ＣＡＳＥ文」で示されているとおり、変数ＣＯＮＦＩＧの値が１か、２か、３かによって上記した中間値部１９２、上限値部１９４、および下限値部１９６のうちの一つが選択される。図１１に示した記載例ではＣＯＮＦＩＧ＝１となっているので中間値部１９２に記載されている各値がパラメータとして用いられる。
【００７１】
中間値部１９２、上限値部１９４、および下限値部１９６の各々は、パイプライン段数（ＰＰＬＮ）、データパケットまたはメガエンジン構成要素中のデータのビット幅（ＤＷ）、並列データ数（ＮＤ）、行先ノード番号幅（ＮＤ＿ＷＩＤＴＨ）、および世代番号幅（ＧＮ＿ＷＩＤＴＨ）、ＦＣ内のメモリのデータ幅（ＦＣ＿ＤＡＴＡ＿ＭＥＭＯＲＹ＿ＷＩＤＴＨ）などの値を含む。
【００７２】
たとえばＤＷについて見ると、中間値では１２、上限値では１６、下限値では５に設定される。ＮＤについて見ると、中間値では８、上限値では４、下限値では８である。ＰＰＬＮについて見ると、中間値では２、上限値では５、下限値では３である。
【００７３】
図１２、図１３、および図１４に示されるＤＤＭＰ機能ブロック／プロセッサライブラリファイルは、いずれも、ＤＤＭＰ設計パラメータファイルで指定されたパラメータにしたがってＲＴＬ記述を生成するためのひな形となるファイルである。これら図に示される記載では、「ｉｎｃｌｕｄｅ」文でＤＤＭＰ設計パラメータファイルをインクルードしており、これによりＤＤＭＰ設計パラメータファイル中のパラメータ値の組の中から選択されたものがこれらひな形ファイル内に反映され、パラメータライズＲＴＬ設計ツールを実行することにより、ＲＴＬ記述が自動的に生成される。
【００７４】
図１５、図１６、および図１７に、パラメータライズＲＴＬ設計ツールの実行により生成されたＮＰ１のＣＳＴ部のＲＴＬ記述の一部、ＣＳＴ部のＣＳＴ１＿ＴＩＭＩＮＧ部のＲＴＬ記述の一部、およびＣＳＴ部のＣＳＴ１＿ＤＡＴＡＰＡＴＨ部のＲＴＬ記述の一部を、それぞれ示す。ここでは条件としてＴＹＰ条件（ＣＯＮＦＩＧ＝１）が選択されたものとする。
【００７５】
たとえば図１７に示されるＴＹＰ条件でのＣＳＴモジュールのＲＴＬ記述ファイルは、ＮＰ１グローバルパラメータ宣言部２１０と、ＣＳＴ１固有のパラメータ宣言部２１２とを含む。
【００７６】
これらのうちＮＰ１グローバルパラメータ宣言部２１０の１行目には、図１１の中間値部１９２に記載されているデータのビット幅（ＤＷ）＝１２が、ｄａｔａ＿ｗｉｄｔｈ＝１２として反映されている。同じく図１１の中間値部１９２に記載されている並列データの数（ＮＤ）＝８が、ｎｕｍ＿ｄａｔａ＝８として反映されている。他のパラメータについても同様である。
【００７７】
図１８には、条件としてＭＡＸ条件（ＣＯＮＦＩＧ＝２）が設定されたときに生成されるＲＴＬ記述ファイルの例を示す。このファイルも図１７の場合と同様、ＮＰ１グローバルパラメータ宣言部２１４とＣＳＴ１固有パラメータ宣言部２１６とを含む。
【００７８】
これらのうちＮＰ１グローバルパラメータ宣言部２１４の１行目には、図１１の上限値部１９４に記載されているデータのビット幅（ＤＷ）＝１６が、ｄａｔａ＿ｗｉｄｔｈ＝１６として反映されている。同じく図１１の上限値部１９４に記載されている並列データの数（ＮＤ）＝４が、ｎｕｍ＿ｄａｔａ＝４として反映されている。他のパラメータについても同様である。
【００７９】
このように本実施の形態では、ＤＤＭＰ設計パラメータファイルに記載されている条件のうちで選択されたものに対応するパラメータ値がＲＴＬ記述に反映され、必要なパラメータ値がＲＴＬ記述ファイルに記載される。その結果、多様な仕様に対する設計を、短期間に行なうことができる。また仕様の変更に対しても設計の変更を短期間に行なうことができる。
【００８０】
なお、上に説明した実施の形態では、ナノプロセッサＮＰ１中のＣＳＴ部のパイプライン段数（ＰＰＮＬ）、データのビット幅（ＤＷ）、並列データの数（ＮＤ）についてのみ、階層的にパラメータ化した例を示した。しかし本発明はこられに限定的に適用可能というわけではなく、メガエンジン、マクロプロセッサ、ルータ、入力ポート、出力ポート、ナノプロセッサ、機能ブロックの各々の上層から下層にいたる全ての階層に適用することができる。
【００８１】
図１９に、ＣＳＴ部を含む各機能ブロックに対して適用可能なパラメータの例を示す。図１９の各行は各機能ブロックを示し、各列はパラメータを示す。図において、「○」印が付された機能ブロックとパラメータとの組合せがパラメータ化可能である
たとえば、ＣＳＴについては並列データ数、データビット数、ノード番号ビット幅、パイプライン段数、ならびにデータメモリタイプとして同期／非同期の区別、ポート数、およびビットライト機能の有無をパラメータ化することができる。
【００８２】
またＦＰについては、並列データ数、データビット幅、アキュームレータビット幅、およびパイプライン段数をパラメータ化することができる。
【００８３】
以後、図１に示されるフローにしたがって、こうして得られたＲＴＬ記述ファイルを用い、一般的な論理合成ツールを用いて論理合成を行なうことによってネットリストを生成し、ロジック／タイミングシミュレーションを行なって最終的にレイアウトを行なうことになる。
【００８４】
以上説明したように、この実施の形態によれば、ＤＤＭＰ  ＬＳＩレベルで、予め準備されているデータ駆動型情報処理装置の機能ブロック／プロセッサライブラリ、ＤＤＭＰ  ＬＳＩ仕様に基づいて定められる設計パラメータ値、およびこれら機能ブロック／プロセッサライブラリおよび設計パラメータ値を入力とするパラメータライズＲＴＬ設計ツールを準備する。そしてパラメータライズＲＴＬ設計ツールを動作させることにより、ＲＴＬ記述が自動生成される。その結果、ＤＤＭＰ  ＬＳＩの設計期間を大幅に短縮することができる。また設計コストを低減することができる。
【００８５】
この効果は、特に、ＤＤＭＰの特徴であるデータ転送制御部のパイプライン段数をパラメータ化したことにより得られる。パイプライン段数の設計は、データパケットのデータ幅、ロジック部の回路規模、装置全体の演算速度、装置の消費電力などを規定する重要な要素である。ＤＤＭＰ設計を最適化する場合、および仕様変更があった場合などには必ずこのパイプライン段数の設計から再検討する、重要なポイントである。したがってこのパイプライン段数のパラメータ化が特にＤＤＭＰの設計における設計仕様に対する適応性、および設計期間の短縮に寄与している。
【００８６】
さらに、転送速度のパラメータ化により、Ｃ素子内の遅延時間を決め、Ｃ素子の回路構成を容易に決める上での重要な要素となっている。
【００８７】
また、これ以外の設計要素のパラメータ化によっても、寄与の度合いはパイプライン段数および転送速度程ではないにせよ、ＤＤＭＰの設計における設計仕様に対する適応性、および設計期間の短縮に少なからず貢献している
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００８８】
【発明の効果】
以上のように第１の局面によれば、設計仕様に適合したレジスタトランスファレベル設計記述が自動的に作成でき、設計期間を短縮することができるのに加え、多種多様な仕様および仕様変更にも容易に対処して設計を行なうことができる。また、ライブラリファイルを用いるので、過去の資産を蓄積して利用することが容易になる。
【００８９】
さらに、パラメータの指定時には、設計仕様に応じてパラメータの組の中の一つを選択するだけで、整合したパラメータ値の組を用いてレジスタトランスファレベル記述を自動的に生成できる。そのため、ＤＤＭＰ  ＬＳＩの設計が容易になる。
【００９０】
本発明の第２の局面によれば、第１の局面の効果に加えて、データ駆動型情報処理装置の設計対象部分を構成する各要素のパラメータ値として適切なものを設定することができる。
【００９１】
本発明の第３の局面によれば、第２の局面の効果に加えて、転送制御素子の回路構成自体を容易に決定することができる。
【００９２】
本発明の第４の局面によれば、第１の局面の効果に加えて、転送制御素子の回路構成自体を容易に決定することができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかるＤＤＭＰ  ＬＳＩ設計方法のフローチャートである。
【図２】  ＤＤＭＰの階層構造とその構成要素例を示す図である。
【図３】  ＤＤＭＰのメガエンジンの構成例を示す図である。
【図４】  ＤＤＭＰのメガエンジンの構成要素例を示す図である。
【図５】  ＤＤＭＰのマクロプロセッサの構成例を示す図である。
【図６】  ＤＤＭＰのマクロプロセッサの構成要素例を示す図である。
【図７】  ＤＤＭＰのナノプロセッサの構成例を示す図である。
【図８】  ＤＤＭＰのナノプロセッサの構成要素例を示す図である。
【図９】  定数フェッチ（ＣＳＴ）部の内部構成を示すブロック図である。
【図１０】  定数メモリ部でのデータのビット幅および並列データ数のバリエーションを模式的に示す図である。
【図１１】  ＤＤＭＰ  ＬＳＩ仕様に基づくＤＤＭＰ設計パラメータファイルの一部を示す図である。
【図１２】  ＮＰ１の定数フェッチ部のＤＤＭＰ機能ブロック／プロセッサライブラリファイルの一部を示す図である。
【図１３】  ＮＰ１の定数フェッチ部の中のＣＳＴ１＿ＴＩＭＩＮＧ部のＤＤＭＰ機能ブロック／プロセッサライブラリファイルの一部を示す図である。
【図１４】  Ｐ１の定数フェッチ部の中のＣＳＴ１＿ＤＡＴＡＰＡＴＨ部のＤＤＭＰ機能ブロック／プロセッサライブラリファイルの一部を示す図である。
【図１５】  パラメータライズＲＴＬ設計ツールの実行により生成されたＮＰ１の定数フェッチ部のＲＴＬ記述の一部を示す図である。
【図１６】  パラメータライズＲＴＬ設計ツールの実行により生成されたＮＰ１の定数フェッチ部の中のＣＳＴ１＿ＴＩＭＩＮＧ部のＲＴＬ記述の一部を示す図である。
【図１７】  パラメータライズＲＴＬ設計ツールの実行によりパラメータＴＹＰ条件で生成されたＮＰ１の定数フェッチ部中のＣＳＴ１＿ＤＡＴＡＰＡＴＨ部のＲＴＬ記述の一部を示す図である。
【図１８】  パラメータライズＲＴＬ設計ツールの実行によりパラメータＭＡＸ条件で生成されたＮＰ１の定数フェッチ部中のＣＳＴ１＿ＤＡＴＡＰＡＴＨ部のＲＴＬ記述の一部を示す図である。
【図１９】  各機能ブロックに対して適用可能なパラメータを表形式で示す図である。
【図２０】  自己同期型パイプラインを説明するための図である。
【図２１】  従来のボトムアップ的設計手法によるＤＤＭＰ  ＬＳＩの設計フローチャートである。
【図２２】  従来のトップダウン的設計手法によるＤＤＭＰ  ＬＳＩの設計フローチャートである。
【符号の説明】
４４  ＤＤＭＰ機能ブロック／プロセッサライブラリ、１０４  ナノプロセッサ、１２０  定数フェッチ部、１２２  対データ生成部、１２４  関数処理部、１２６  プログラムフェッチ部、１５０，１５４，１５８  データラッチ、１５２  命令デコーダ部、１５６  定数メモリ部、１７０，１７２，１７４  転送制御素子（Ｃ素子）。
【図１】
0003759860.tif 000002
【図２】
0003759860.tif 000003
【図３】
0003759860.tif 000004
【図４】
0003759860.tif 000005
【図５】
0003759860.tif 000006
【図６】
0003759860.tif 000007
【図７】
0003759860.tif 000008
【図８】
0003759860.tif 000009
【図９】
0003759860.tif 000010
【図１０】
0003759860.tif 000011
【図１１】
0003759860.tif 000012
【図１２】
0003759860.tif 000013
【図１３】
0003759860.tif 000014
【図１４】
0003759860.tif 000015
【図１５】
0003759860.tif 000016
【図１６】
0003759860.tif 000017
【図１７】
0003759860.tif 000018
【図１８】
0003759860.tif 000019
【図１９】
0003759860.tif 000020
【図２０】
0003759860.tif 000021
【図２１】
0003759860.tif 000022
【図２２】
0003759860.tif 000023