JPH11272641A - レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体 - Google Patents
レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体Info
- Publication number
- JPH11272641A JPH11272641A JP7275798A JP7275798A JPH11272641A JP H11272641 A JPH11272641 A JP H11272641A JP 7275798 A JP7275798 A JP 7275798A JP 7275798 A JP7275798 A JP 7275798A JP H11272641 A JPH11272641 A JP H11272641A
- Authority
- JP
- Japan
- Prior art keywords
- registers
- register
- algorithm
- memory
- hardware configuration
- 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.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 データ処理部設計において、レジスタ数の制
約下、より少ないステップ数でアルゴリズム実行ができ
るレジスタ生成方法を提供する。 【解決手段】 データ処理プロセッサのデータ処理部設
計で設計された演算器/メモリ/バスからなる資源とそ
れらの接続関係のみによって表されたハードウェア構成
と、目的とするデータ処理のアルゴリズムとが入力とし
て与えられたときに、上記レジスタをトレードオフの対
象として、与えられたハードウェア構成を保持したま
ま、レジスタ数の制約の下でより少ないステップ数でア
ルゴリズム実行ができるように資源間の任意の位置にレ
ジスタを分散して配置挿入するレジスタ生成方法、レジ
スタ生成装置およびレジスタ生成プログラムを記録した
記録媒体。
約下、より少ないステップ数でアルゴリズム実行ができ
るレジスタ生成方法を提供する。 【解決手段】 データ処理プロセッサのデータ処理部設
計で設計された演算器/メモリ/バスからなる資源とそ
れらの接続関係のみによって表されたハードウェア構成
と、目的とするデータ処理のアルゴリズムとが入力とし
て与えられたときに、上記レジスタをトレードオフの対
象として、与えられたハードウェア構成を保持したま
ま、レジスタ数の制約の下でより少ないステップ数でア
ルゴリズム実行ができるように資源間の任意の位置にレ
ジスタを分散して配置挿入するレジスタ生成方法、レジ
スタ生成装置およびレジスタ生成プログラムを記録した
記録媒体。
Description
【0001】
【発明の属する技術分野】本発明は、デジタル論理回路
の設計において、高いコスト性能比が要求されるASI
P(Application Specific Integrated Processor)等の
特定用途向けハードウェアのアーキテクチャ設計に適用
できるレジスタ生成方法、レジスタ生成装置およびレジ
スタ生成プログラムを記録した記録媒体に関するもので
ある。
の設計において、高いコスト性能比が要求されるASI
P(Application Specific Integrated Processor)等の
特定用途向けハードウェアのアーキテクチャ設計に適用
できるレジスタ生成方法、レジスタ生成装置およびレジ
スタ生成プログラムを記録した記録媒体に関するもので
ある。
【0002】
【従来の技術】従来より、レジスタ生成に関する技術
は、高位合成技術の一つとして数多く提案されている
が、演算器/メモリ/バスからなる資源数のみが入力と
して与えられ、レジスタ数最小のレジスタ配置と、資源
−レジスタ間接続を決定する手法が知られている。
は、高位合成技術の一つとして数多く提案されている
が、演算器/メモリ/バスからなる資源数のみが入力と
して与えられ、レジスタ数最小のレジスタ配置と、資源
−レジスタ間接続を決定する手法が知られている。
【0003】例えば、特開平6−301742号公報に
は、スケジューリングによって演算の実行順序が決定し
た後でプログラム中の変数のライフタイムを計算し、レ
フトエッジ法を用いてレジスタとバスとの間の接続線を
なるべく増やさないように変数のレジスタ割り当てを行
ない、必要なレジスタ数や資源−レジスタ間の接続を決
定する手法が開示されている。
は、スケジューリングによって演算の実行順序が決定し
た後でプログラム中の変数のライフタイムを計算し、レ
フトエッジ法を用いてレジスタとバスとの間の接続線を
なるべく増やさないように変数のレジスタ割り当てを行
ない、必要なレジスタ数や資源−レジスタ間の接続を決
定する手法が開示されている。
【0004】また、“Constrained Register Allocatio
n in Bus Architectures"(E. Franket al, 32nd Design
Automation Conference, 1995)では、演算のスケジュ
ーリング後に、レジスタ数を制約としてデータ転送のス
ケジューリングを行ない、レジスタ数と資源−レジスタ
間の接続を決定してから、レジスタを挿入する手法が開
示されている。
n in Bus Architectures"(E. Franket al, 32nd Design
Automation Conference, 1995)では、演算のスケジュ
ーリング後に、レジスタ数を制約としてデータ転送のス
ケジューリングを行ない、レジスタ数と資源−レジスタ
間の接続を決定してから、レジスタを挿入する手法が開
示されている。
【0005】また、汎用レジスタ構成を対象として、実
行ステップ数の制約のもとでレジスタ数を決定する手法
も知られている。このような手法として、本間らは、
「ASIP向きハードウェア/ソフトウェア・コデザインシ
ステムPEAS-Iにおけるデータパス部の最適化手法」(信
学技報 VLD93-94, 1993)において、実行ステップ数のト
レードオフを考慮して汎用レジスタのレジスタ数の最小
化を図るシステムを提案している。
行ステップ数の制約のもとでレジスタ数を決定する手法
も知られている。このような手法として、本間らは、
「ASIP向きハードウェア/ソフトウェア・コデザインシ
ステムPEAS-Iにおけるデータパス部の最適化手法」(信
学技報 VLD93-94, 1993)において、実行ステップ数のト
レードオフを考慮して汎用レジスタのレジスタ数の最小
化を図るシステムを提案している。
【0006】
【発明が解決しようとする課題】ところが、上記各従来
技術を、特定用途向けデータ処理に適用した場合、以下
の問題点がある。つまり、プロセッサ特定用途向けデー
タ処理プロセッサは、目的とする処理アルゴリズムのみ
を処理対象とし、できるだけ高いコスト性能比を達成す
ることを目標とするプロセッサであるため、通常、目的
とするアルゴリズムに適合して局所的にレジスタが存在
するような不規則なハードウエア構成の方がよりコスト
性能比の高いプロセッサを実現できる場合が多い。
技術を、特定用途向けデータ処理に適用した場合、以下
の問題点がある。つまり、プロセッサ特定用途向けデー
タ処理プロセッサは、目的とする処理アルゴリズムのみ
を処理対象とし、できるだけ高いコスト性能比を達成す
ることを目標とするプロセッサであるため、通常、目的
とするアルゴリズムに適合して局所的にレジスタが存在
するような不規則なハードウエア構成の方がよりコスト
性能比の高いプロセッサを実現できる場合が多い。
【0007】このようなデータ処理プロセッサのデータ
処理部アーキテクチャ設計では、演算器/メモリ/バス
からなる資源やそれらの接続によるデータ処理部のハー
ドウエア構成を、目的とする処理アルゴリズムに合わせ
て設計者が設定しながら、特願平7−143762号公
報に記載の "データ処理装置のアーキテクチャ評価装
置" で提案されているような評価装置を用いて評価、改
良することで最適化を図ることが多い。
処理部アーキテクチャ設計では、演算器/メモリ/バス
からなる資源やそれらの接続によるデータ処理部のハー
ドウエア構成を、目的とする処理アルゴリズムに合わせ
て設計者が設定しながら、特願平7−143762号公
報に記載の "データ処理装置のアーキテクチャ評価装
置" で提案されているような評価装置を用いて評価、改
良することで最適化を図ることが多い。
【0008】この場合、次のレジスタ生成工程では、そ
れまでに設計したデータ処理部の資源やそれらの接続を
変更せずに資源の各演算器/メモリ/バス間(以下、資
源間と略す)の任意の位置に分散させて追加挿入するレ
ジスタの数と位置を決定する方法が必要になる。また、
このときにレジスタ数の制約による性能低下を極力避け
るようにレジスタ生成、挿入を行わなければならない。
これらの課題を解決することが本発明の目的である。
れまでに設計したデータ処理部の資源やそれらの接続を
変更せずに資源の各演算器/メモリ/バス間(以下、資
源間と略す)の任意の位置に分散させて追加挿入するレ
ジスタの数と位置を決定する方法が必要になる。また、
このときにレジスタ数の制約による性能低下を極力避け
るようにレジスタ生成、挿入を行わなければならない。
これらの課題を解決することが本発明の目的である。
【0009】前記各従来技術を本課題に適用した場合、
以下の問題点がある。資源の各演算器/メモリ/バスの
みを入力として、ハードウェア構成を自動生成する技術
では、資源間の接続も自動生成の対象に入るため、それ
までに設計したデータ処理部の資源やそれらの間の接続
を変更せずにレジスタ生成することが不可能となる。こ
のため、設計者が最適設計した接続関係が最終結果に反
映できず、さらに自動設計の最適化能力が低い場合には
質の良い解が得られない場合がある。
以下の問題点がある。資源の各演算器/メモリ/バスの
みを入力として、ハードウェア構成を自動生成する技術
では、資源間の接続も自動生成の対象に入るため、それ
までに設計したデータ処理部の資源やそれらの間の接続
を変更せずにレジスタ生成することが不可能となる。こ
のため、設計者が最適設計した接続関係が最終結果に反
映できず、さらに自動設計の最適化能力が低い場合には
質の良い解が得られない場合がある。
【0010】また、汎用レジスタ構成を対象とする技術
では、全ての演算器の出力は1つの汎用レジスタに格納
され、その値が全ての演算器からアクセス可能であるこ
とを前提に汎用レジスタ数を決定している。
では、全ての演算器の出力は1つの汎用レジスタに格納
され、その値が全ての演算器からアクセス可能であるこ
とを前提に汎用レジスタ数を決定している。
【0011】一方、本特許が対象とするハードウエア構
成では局所的に分散した複数のレジスタが存在し、それ
ぞれを限られた演算器からのみアクセス可能にすること
で、高性能化が図られる場合がある。
成では局所的に分散した複数のレジスタが存在し、それ
ぞれを限られた演算器からのみアクセス可能にすること
で、高性能化が図られる場合がある。
【0012】しかし、上記技術の適用では、途中の演算
結果は汎用レジスタにのみ格納すると仮定してレジスタ
数を決定するため、局所的に分散して存在するレジスタ
を的確に生成できず、結果として高性能な、すなわち処
理速度が大きいデジタル論理回路が得られない場合があ
るという問題を生じている。
結果は汎用レジスタにのみ格納すると仮定してレジスタ
数を決定するため、局所的に分散して存在するレジスタ
を的確に生成できず、結果として高性能な、すなわち処
理速度が大きいデジタル論理回路が得られない場合があ
るという問題を生じている。
【0013】
【課題を解決するための手段】本発明のレジスタ生成方
法は、以上の課題を解決するために、データ処理プロセ
ッサについて設定された演算器/メモリ/バスを有する
資源とそれらの接続関係とによって表されたハードウェ
ア構成と、目的とするデータ処理のアルゴリズムとが入
力として与えられたときに、与えられたハードウェア構
成を保持したまま、レジスタ数の制約の下でより少ない
ステップ数でアルゴリズム実行ができるように、上記レ
ジスタをトレードオフの対象とし、資源における演算器
/メモリ/バスの間の任意の位置にレジスタを分散して
配置挿入することを特徴としている。
法は、以上の課題を解決するために、データ処理プロセ
ッサについて設定された演算器/メモリ/バスを有する
資源とそれらの接続関係とによって表されたハードウェ
ア構成と、目的とするデータ処理のアルゴリズムとが入
力として与えられたときに、与えられたハードウェア構
成を保持したまま、レジスタ数の制約の下でより少ない
ステップ数でアルゴリズム実行ができるように、上記レ
ジスタをトレードオフの対象とし、資源における演算器
/メモリ/バスの間の任意の位置にレジスタを分散して
配置挿入することを特徴としている。
【0014】上記の方法によれば、上記レジスタをトレ
ードオフの対象とすることによって、与えられたハード
ウェア構成を保持すると共に、目的とするデータ処理の
アルゴリズムを考慮しながら、レジスタ数の制約の下で
より少ないステップ数でアルゴリズムを実行できるよう
に、資源における演算器/メモリ/バスの間の任意の位
置に分散してレジスタを配置できる。
ードオフの対象とすることによって、与えられたハード
ウェア構成を保持すると共に、目的とするデータ処理の
アルゴリズムを考慮しながら、レジスタ数の制約の下で
より少ないステップ数でアルゴリズムを実行できるよう
に、資源における演算器/メモリ/バスの間の任意の位
置に分散してレジスタを配置できる。
【0015】このことから、上記方法では、与えられ
た、例えば最適化されたハードウェア構成が保持される
ので、高性能な、すなわち処理速度が大きいASIP等
のデジタル論理回路が、より確実にかつ迅速に得られ
る。
た、例えば最適化されたハードウェア構成が保持される
ので、高性能な、すなわち処理速度が大きいASIP等
のデジタル論理回路が、より確実にかつ迅速に得られ
る。
【0016】本発明の他のレジスタ生成方法は、データ
処理プロセッサについて設定された演算器/メモリ/バ
スを有する資源とそれらの接続関係とによって表された
ハードウェア構成と、目的とするデータ処理のアルゴリ
ズムとが入力として与えられたときに、資源における演
算器/メモリ/バスの間の任意の位置に制約無しにてレ
ジスタが存在し得ると仮定してアルゴリズム実行にかか
るステップ数を演算やデータ転送にかかる実行ステップ
数も考慮して評価する第1ステップと、順次、トレード
オフの対象であるレジスタ数に制約を与え、与えられた
ハードウェア構成を保持しつつ、より少ないステップ数
でアルゴリズム実行ができるレジスタの位置・数を決定
する第2ステップを含むことにより、与えられたハード
ウェア構成を保持したまま、レジスタ数の制約の下でよ
り少ないステップ数でアルゴリズム実行ができるよう
に、資源における演算器/メモリ/バスの間の任意の位
置にレジスタを分散して配置挿入することを特徴として
いる。
処理プロセッサについて設定された演算器/メモリ/バ
スを有する資源とそれらの接続関係とによって表された
ハードウェア構成と、目的とするデータ処理のアルゴリ
ズムとが入力として与えられたときに、資源における演
算器/メモリ/バスの間の任意の位置に制約無しにてレ
ジスタが存在し得ると仮定してアルゴリズム実行にかか
るステップ数を演算やデータ転送にかかる実行ステップ
数も考慮して評価する第1ステップと、順次、トレード
オフの対象であるレジスタ数に制約を与え、与えられた
ハードウェア構成を保持しつつ、より少ないステップ数
でアルゴリズム実行ができるレジスタの位置・数を決定
する第2ステップを含むことにより、与えられたハード
ウェア構成を保持したまま、レジスタ数の制約の下でよ
り少ないステップ数でアルゴリズム実行ができるよう
に、資源における演算器/メモリ/バスの間の任意の位
置にレジスタを分散して配置挿入することを特徴として
いる。
【0017】上記の方法によれば、上記レジスタをトレ
ードオフの対象であるレジスタ数に制約を与えることに
よって、与えられたハードウェア構成を保持したまま、
レジスタ数の制約の下でより少ないステップ数でアルゴ
リズム実行ができるように、資源における演算器/メモ
リ/バスの間の任意の位置に分散してレジスタを配置で
きるので、高性能な、すなわち処理速度が大きいASI
P等のデジタル論理回路が、より確実にかつ迅速に得ら
れる。
ードオフの対象であるレジスタ数に制約を与えることに
よって、与えられたハードウェア構成を保持したまま、
レジスタ数の制約の下でより少ないステップ数でアルゴ
リズム実行ができるように、資源における演算器/メモ
リ/バスの間の任意の位置に分散してレジスタを配置で
きるので、高性能な、すなわち処理速度が大きいASI
P等のデジタル論理回路が、より確実にかつ迅速に得ら
れる。
【0018】上記レジスタ生成方法では、さらに、上記
トレードオフの最適化は、レジスタを減らした場合に予
想される実行ステップ数の増加に基づくコスト評価関数
に基づいて実行されてもよい。
トレードオフの最適化は、レジスタを減らした場合に予
想される実行ステップ数の増加に基づくコスト評価関数
に基づいて実行されてもよい。
【0019】上記方法によれば、トレードオフの最適化
は、コスト評価関数に基づいて実行するため、レジスタ
の削除を、より有効に実行でき、レジスタの配置や数の
設定を、最適化できてより確実化できる。
は、コスト評価関数に基づいて実行するため、レジスタ
の削除を、より有効に実行でき、レジスタの配置や数の
設定を、最適化できてより確実化できる。
【0020】本発明のレジスタ生成プログラムを記録し
た記録媒体は、コンピュータによってレジスタ生成を行
なうためのレジスタ生成プログラムを記録した記録媒体
であって、データ処理プロセッサについて設定された演
算器/メモリ/バスを有する資源とそれらの接続関係と
によって表わされたハードウェア構成を入力し、目的と
するデータ処理のアルゴリズムを入力し、資源における
演算器/メモリ/バスの間の任意の位置に制約無しにて
レジスタが存在し得ると仮定してアルゴリズム実行にか
かるステップ数を演算やデータ転送にかかる実行ステッ
プ数も考慮して評価する第1ステップと、第1ステップ
の後に、順次、レジスタ数に制約を与えて、与えられた
ハードウェア構成を保持しつつ、より少ないステップ数
でアルゴリズム実行ができるレジスタの位置・数を決定
する第2ステップを含むことにより、第2ステップにお
ける決定結果に従って、与えられたハードウエア構成を
保持しつつ、レジスタ数の制約の下でより少ないステッ
プ数でアルゴリズム実行ができるように、資源における
演算器/メモリ/バスの間の任意の位置にレジスタを分
散して配置挿入することを特徴としている。
た記録媒体は、コンピュータによってレジスタ生成を行
なうためのレジスタ生成プログラムを記録した記録媒体
であって、データ処理プロセッサについて設定された演
算器/メモリ/バスを有する資源とそれらの接続関係と
によって表わされたハードウェア構成を入力し、目的と
するデータ処理のアルゴリズムを入力し、資源における
演算器/メモリ/バスの間の任意の位置に制約無しにて
レジスタが存在し得ると仮定してアルゴリズム実行にか
かるステップ数を演算やデータ転送にかかる実行ステッ
プ数も考慮して評価する第1ステップと、第1ステップ
の後に、順次、レジスタ数に制約を与えて、与えられた
ハードウェア構成を保持しつつ、より少ないステップ数
でアルゴリズム実行ができるレジスタの位置・数を決定
する第2ステップを含むことにより、第2ステップにお
ける決定結果に従って、与えられたハードウエア構成を
保持しつつ、レジスタ数の制約の下でより少ないステッ
プ数でアルゴリズム実行ができるように、資源における
演算器/メモリ/バスの間の任意の位置にレジスタを分
散して配置挿入することを特徴としている。
【0021】上記の構成によれば、与えられたハードウ
ェア構成を保持したまま、レジスタ数の制約の下でより
少ないステップ数でアルゴリズム実行ができるように、
資源における演算器/メモリ/バスの間の任意の位置に
分散してレジスタを配置できるので、高性能な、すなわ
ち処理速度が大きいASIP等のデジタル論理回路が、
上記記録媒体によって、より確実にかつ迅速に得られ
る。
ェア構成を保持したまま、レジスタ数の制約の下でより
少ないステップ数でアルゴリズム実行ができるように、
資源における演算器/メモリ/バスの間の任意の位置に
分散してレジスタを配置できるので、高性能な、すなわ
ち処理速度が大きいASIP等のデジタル論理回路が、
上記記録媒体によって、より確実にかつ迅速に得られ
る。
【0022】本発明のレジスタ生成装置は、以上の課題
の解決するために、データ処理プロセッサについて設定
された演算器/メモリ/バスを有する資源とそれらの接
続関係のみによって表わされたハードウェア構成、およ
び目的とするデータ処理のアルゴリズムを入力する入力
手段と、資源における演算器/メモリ/バスの間の任意
の位置に制約無しにてレジスタが存在し得ると仮定して
アルゴリズム実行にかかるステップ数を演算やデータ転
送にかかる実行ステップ数も考慮してレジスタを設定す
る設定手段と、順次、上記レジスタ数に制約を与えて、
与えられたハードウェア構成を保持しつつ、より少ない
ステップ数でアルゴリズム実行ができるレジスタの位置
・数を決定して、レジスタ数の制約の下でより少ないス
テップ数でアルゴリズム実行ができるように、資源にお
ける演算器/メモリ/バスの間の任意の位置にレジスタ
を分散して配置するレジスタ生成手段とを備えたことを
特徴としている。
の解決するために、データ処理プロセッサについて設定
された演算器/メモリ/バスを有する資源とそれらの接
続関係のみによって表わされたハードウェア構成、およ
び目的とするデータ処理のアルゴリズムを入力する入力
手段と、資源における演算器/メモリ/バスの間の任意
の位置に制約無しにてレジスタが存在し得ると仮定して
アルゴリズム実行にかかるステップ数を演算やデータ転
送にかかる実行ステップ数も考慮してレジスタを設定す
る設定手段と、順次、上記レジスタ数に制約を与えて、
与えられたハードウェア構成を保持しつつ、より少ない
ステップ数でアルゴリズム実行ができるレジスタの位置
・数を決定して、レジスタ数の制約の下でより少ないス
テップ数でアルゴリズム実行ができるように、資源にお
ける演算器/メモリ/バスの間の任意の位置にレジスタ
を分散して配置するレジスタ生成手段とを備えたことを
特徴としている。
【0023】上記構成によれば、与えられたハードウェ
ア構成を保持したまま、レジスタ数の制約の下でより少
ないステップ数でアルゴリズム実行ができるように、資
源における演算器/メモリ/バスの間の任意の位置に分
散してレジスタを配置できるので、高性能な、すなわち
処理速度が大きいASIP等のデジタル論理回路が、上
記レジスタ生成装置によって、より確実にかつ迅速に得
られる。
ア構成を保持したまま、レジスタ数の制約の下でより少
ないステップ数でアルゴリズム実行ができるように、資
源における演算器/メモリ/バスの間の任意の位置に分
散してレジスタを配置できるので、高性能な、すなわち
処理速度が大きいASIP等のデジタル論理回路が、上
記レジスタ生成装置によって、より確実にかつ迅速に得
られる。
【0024】
【発明の実施の形態】本発明の実施の形態について図1
ないし図22に基づいて説明すれば、以下の通りであ
る。本発明のレジスタ生成方法は、ASIP等のデジタ
ル論理回路におけるデータ処理部設計において、演算器
/メモリ/バスを有する資源とそれらの接続関係によっ
て表されたハードウェア構成と、目的とするデータ処理
のアルゴリズムとを、ハードウェア記述言語等によっ
て、入力として与えたときに、与えられたハードウェア
構成を保持したまま、レジスタ数の制約の下でより少な
いステップ数でアルゴリズム実行ができるように、上記
レジスタをトレードオフの対象とし、資源における演算
器/メモリ/バスの間の任意の位置にレジスタを分散し
て配置挿入する方法である。
ないし図22に基づいて説明すれば、以下の通りであ
る。本発明のレジスタ生成方法は、ASIP等のデジタ
ル論理回路におけるデータ処理部設計において、演算器
/メモリ/バスを有する資源とそれらの接続関係によっ
て表されたハードウェア構成と、目的とするデータ処理
のアルゴリズムとを、ハードウェア記述言語等によっ
て、入力として与えたときに、与えられたハードウェア
構成を保持したまま、レジスタ数の制約の下でより少な
いステップ数でアルゴリズム実行ができるように、上記
レジスタをトレードオフの対象とし、資源における演算
器/メモリ/バスの間の任意の位置にレジスタを分散し
て配置挿入する方法である。
【0025】このようなトレードオフの最適化として
は、下記のフェーズ1とフェーズ2の各手法の組み合わ
せが例として挙げられる。トレードオフとは、同時に満
足できない複数の条件における、取捨選択があることを
意味している。
は、下記のフェーズ1とフェーズ2の各手法の組み合わ
せが例として挙げられる。トレードオフとは、同時に満
足できない複数の条件における、取捨選択があることを
意味している。
【0026】まず、フェーズ1は、図1のステップ(以
下、Sと略す)1およびS2、並びに図2に示すよう
に、例えば図4に示すハードウェア構成を入力し(入力
手段)、資源間に無数の(数や位置の制約無しに)レジ
スタが存在し得ると仮定した場合の、例えば図5に示す
目的とするデータ処理のアルゴリズムに基づく、実行ス
テップ数を評価し、その場合における、最適なレジスタ
の初期配置と使用数を求めて設定する(設定手段)手法
である。
下、Sと略す)1およびS2、並びに図2に示すよう
に、例えば図4に示すハードウェア構成を入力し(入力
手段)、資源間に無数の(数や位置の制約無しに)レジ
スタが存在し得ると仮定した場合の、例えば図5に示す
目的とするデータ処理のアルゴリズムに基づく、実行ス
テップ数を評価し、その場合における、最適なレジスタ
の初期配置と使用数を求めて設定する(設定手段)手法
である。
【0027】次に、フェーズ2は、図1のS3〜S8に
示すように、スケジューリング・アロケーションによっ
て実行ステップ数の評価を行いながら、レジスタ削除に
よる実行ステップ数の増加が最も少ないレジスタを少し
ずつ繰り返し削除し、極力増加ステップ数を押えること
(トレードオフ)で、レジスタ数の制約下で、より少な
い実行ステップ数でのアルゴリズム実行を実現できるレ
ジスタ数および配置を求める(レジスタ生成手段)手法
である。
示すように、スケジューリング・アロケーションによっ
て実行ステップ数の評価を行いながら、レジスタ削除に
よる実行ステップ数の増加が最も少ないレジスタを少し
ずつ繰り返し削除し、極力増加ステップ数を押えること
(トレードオフ)で、レジスタ数の制約下で、より少な
い実行ステップ数でのアルゴリズム実行を実現できるレ
ジスタ数および配置を求める(レジスタ生成手段)手法
である。
【0028】この方法により、従来手法では解決できな
かった、既設計のデータ処理部の資源やそれらの間の接
続を変更せずに、すなわち維持しながら、レジスタを資
源の演算器/メモリ/バスの間(以下、資源間と略す)
に追加・削除し、かつ、レジスタ数の制約による性能低
下を極力避けるようなレジスタの数とそれらの設定位置
を決定するレジスタ生成方法が実現できる。
かった、既設計のデータ処理部の資源やそれらの間の接
続を変更せずに、すなわち維持しながら、レジスタを資
源の演算器/メモリ/バスの間(以下、資源間と略す)
に追加・削除し、かつ、レジスタ数の制約による性能低
下を極力避けるようなレジスタの数とそれらの設定位置
を決定するレジスタ生成方法が実現できる。
【0029】以下に、フェーズ1、フェーズ2について
さらに詳しく説明する。 フェーズ1 (初期配置) フェーズ1では、資源間に無数のレジスタが存在し得る
と仮定したレジスタ制約無しの場合の最適な実行ステッ
プ数を評価し、その場合にどの位置のレジスタがどれく
らい使用されているかを求める。
さらに詳しく説明する。 フェーズ1 (初期配置) フェーズ1では、資源間に無数のレジスタが存在し得る
と仮定したレジスタ制約無しの場合の最適な実行ステッ
プ数を評価し、その場合にどの位置のレジスタがどれく
らい使用されているかを求める。
【0030】この技術手段を採用することで、与えられ
たハードウェア構成でレジスタ数や位置の制約無しの場
合の最適なアルゴリズム実行を実現するレジスタ配置を
求めることができる。
たハードウェア構成でレジスタ数や位置の制約無しの場
合の最適なアルゴリズム実行を実現するレジスタ配置を
求めることができる。
【0031】また、レジスタはアロケーション結果に基
づいて、制御ステップ(図中stepにて表記)にまたがっ
て保持されるデータが、出力されるネット中に生成され
るため、実行に適した位置に分散した複数のレジスタが
結果的に生成される。これはフェーズ2におけるレジス
タの初期配置となる。
づいて、制御ステップ(図中stepにて表記)にまたがっ
て保持されるデータが、出力されるネット中に生成され
るため、実行に適した位置に分散した複数のレジスタが
結果的に生成される。これはフェーズ2におけるレジス
タの初期配置となる。
【0032】フェーズ1では、レジスタ数を制約無しの
ときに処理アルゴリズム中の演算とデータ転送のスケジ
ューリング・アロケーションを行ない、最適な実行時の
レジスタ使用を以下の手順で評価する。
ときに処理アルゴリズム中の演算とデータ転送のスケジ
ューリング・アロケーションを行ない、最適な実行時の
レジスタ使用を以下の手順で評価する。
【0033】1. レジスタの制約無しのスケジューリン
グ・アロケーション(図1のS1) このS1、S2では、演算器/メモリ/バスからなる資
源とそれらの接続関係のみによって表されたハードウェ
ア構成と、目的とするデータ処理のアルゴリズムが入力
として与えられたときに、ハードウエア構成中の資源間
に存在し得るレジスタの数に制約を与えずに処理アルゴ
リズム中の演算とデータ転送のスケジューリング・アロ
ケーションを行なう。
グ・アロケーション(図1のS1) このS1、S2では、演算器/メモリ/バスからなる資
源とそれらの接続関係のみによって表されたハードウェ
ア構成と、目的とするデータ処理のアルゴリズムが入力
として与えられたときに、ハードウエア構成中の資源間
に存在し得るレジスタの数に制約を与えずに処理アルゴ
リズム中の演算とデータ転送のスケジューリング・アロ
ケーションを行なう。
【0034】結果は、DFG(Data Flow Graph、データ
フローグラフ)の各頂点に、頂点が表す演算やデータ転
送を実行する演算器と制御ステップを割り当てたものと
して得られる。このステップは、例えば特願平7−14
3762号(特開平9−16642号公報)に記載の手
法を用いて解くことができ、その一例として図6に示す
DFGが挙げられる。
フローグラフ)の各頂点に、頂点が表す演算やデータ転
送を実行する演算器と制御ステップを割り当てたものと
して得られる。このステップは、例えば特願平7−14
3762号(特開平9−16642号公報)に記載の手
法を用いて解くことができ、その一例として図6に示す
DFGが挙げられる。
【0035】2. レジスタ配置(図1のS2) S1のスケジューリング・アロケーション結果を入力と
してS1のスケジューリングを実現するために生成すべ
きレジスタの位置と数を決定する。以下にレジスタ配置
を求める手順を示す。
してS1のスケジューリングを実現するために生成すべ
きレジスタの位置と数を決定する。以下にレジスタ配置
を求める手順を示す。
【0036】(a) ハードウエア構成中の資源間の各接
続ni(1≦i≦n,nは接続の数)に対して、制御ステ
ップj(1≦j≦m−1,mは制御ステップの総数)の
(jからj+1への)更新時に使用されるレジスタ数を
格納するためのレジスタ使用カウンタ N reg(i, j)用意
して、レジスタの数と位置を以下の通り求める。
続ni(1≦i≦n,nは接続の数)に対して、制御ステ
ップj(1≦j≦m−1,mは制御ステップの総数)の
(jからj+1への)更新時に使用されるレジスタ数を
格納するためのレジスタ使用カウンタ N reg(i, j)用意
して、レジスタの数と位置を以下の通り求める。
【0037】DFGの枝 (u,v) において、演算(デ
ータ転送) uが、制御ステップju(ju ≦j) にて実
行され、vが制御ステップjv (j< jv)にて実行され
る(枝が制御ステップ (j,j+1) を横切る)なら
ば、演算(データ転送) の結果は (j,j+1) の間、
レジスタに保持される必要がある。
ータ転送) uが、制御ステップju(ju ≦j) にて実
行され、vが制御ステップjv (j< jv)にて実行され
る(枝が制御ステップ (j,j+1) を横切る)なら
ば、演算(データ転送) の結果は (j,j+1) の間、
レジスタに保持される必要がある。
【0038】そこで、最初に全てのカウンタを0に初期
化し、各DFG枝(u,v) に関するDFG枝が制御ス
テップ (j,j+1) を横切るならば、u、vにアロケ
ーションされた資源間の接続ni のレジスタ使用カウン
タ N reg(i, j)を「1」増やす(図2)。
化し、各DFG枝(u,v) に関するDFG枝が制御ス
テップ (j,j+1) を横切るならば、u、vにアロケ
ーションされた資源間の接続ni のレジスタ使用カウン
タ N reg(i, j)を「1」増やす(図2)。
【0039】図2(a)および図2(b)の例では、制
御ステップjからj+1への更新に対して、上記を満た
し、かつ、 ADDからMULTへの接続に対応するDFG枝が
2本存在するため、ADD からMULTへの接続ni の必要な
レジスタ数がN reg(i, j) =2となる。
御ステップjからj+1への更新に対して、上記を満た
し、かつ、 ADDからMULTへの接続に対応するDFG枝が
2本存在するため、ADD からMULTへの接続ni の必要な
レジスタ数がN reg(i, j) =2となる。
【0040】(b) ハードウエア構成中の資源間の各接
続ni に対し、全ての制御ステップj(1≦j≦m−
1)中の必要なレジスタ数の最大値 N regi を求める。
これが接続ni に挿入されるレジスタ数となる。結果は
図3のレジスタ使用表にて表現される(図3では便宜上
レジスタ数が0である接続に対する列を省略して記述す
る)。上記 N regi は、下記の数式(1)にて表され
る。
続ni に対し、全ての制御ステップj(1≦j≦m−
1)中の必要なレジスタ数の最大値 N regi を求める。
これが接続ni に挿入されるレジスタ数となる。結果は
図3のレジスタ使用表にて表現される(図3では便宜上
レジスタ数が0である接続に対する列を省略して記述す
る)。上記 N regi は、下記の数式(1)にて表され
る。
【0041】
【数1】
【0042】フェーズ2 (配置改良)(図1のS3〜S
8) フェーズ2では、フェーズ1の結果と目標とするレジス
タ数が与えられ、配置改良を行なう。フェーズ1でのレ
ジスタ配置でのレジスタ数を初期値とし、レジスタ数が
入力された目標値まで減少するまで、実行ステップ数増
加が最も少なくなるレジスタを特定して削除し、繰り返
しアロケーション/スケジューリングを行なって評価す
ることにより、レジスタ制約の下で最適に近い実行ステ
ップでのアルゴリズム実行を実現できるレジスタ配置を
求める。
8) フェーズ2では、フェーズ1の結果と目標とするレジス
タ数が与えられ、配置改良を行なう。フェーズ1でのレ
ジスタ配置でのレジスタ数を初期値とし、レジスタ数が
入力された目標値まで減少するまで、実行ステップ数増
加が最も少なくなるレジスタを特定して削除し、繰り返
しアロケーション/スケジューリングを行なって評価す
ることにより、レジスタ制約の下で最適に近い実行ステ
ップでのアルゴリズム実行を実現できるレジスタ配置を
求める。
【0043】この技術手段を採用することで、レジスタ
数制約のない場合の最適なレジスタ配置からレジスタ数
の制約にもとづいて極力ステップ数の増加を抑えるよう
にレジスタ削減を行なうことが可能である。
数制約のない場合の最適なレジスタ配置からレジスタ数
の制約にもとづいて極力ステップ数の増加を抑えるよう
にレジスタ削減を行なうことが可能である。
【0044】レジスタ削減は目標とするレジスタ数と現
在のレジスタ数との差分をとり、差分値の1/2のレジ
スタ数を1回の繰り返しで削減して目標のレジスタ数ま
で削除することで、繰り返し回数の削減を図りつつ実行
ステップ数の最適化を実現するレジスタ配置を求める。
在のレジスタ数との差分をとり、差分値の1/2のレジ
スタ数を1回の繰り返しで削減して目標のレジスタ数ま
で削除することで、繰り返し回数の削減を図りつつ実行
ステップ数の最適化を実現するレジスタ配置を求める。
【0045】与えられた目標レジスタ数が小さ過ぎる場
合、処理アルゴリズムのスケジューリングが不可能にな
る場合が存在する。その場合には、目標レジスタ数が小
さ過ぎることを報告して終了する。
合、処理アルゴリズムのスケジューリングが不可能にな
る場合が存在する。その場合には、目標レジスタ数が小
さ過ぎることを報告して終了する。
【0046】以下にフェーズ2での1回の繰り返し処理
を示す。以下で#reg-idealは、入力されるレジスタ数の
目標値を、#reg-countは、繰り返し開始時のレジスタ数
(フェーズ2の開始時はフェーズ1で得られたレジスタ
配置のレジスタ数の和)を表す。
を示す。以下で#reg-idealは、入力されるレジスタ数の
目標値を、#reg-countは、繰り返し開始時のレジスタ数
(フェーズ2の開始時はフェーズ1で得られたレジスタ
配置のレジスタ数の和)を表す。
【0047】1. 削減レジスタ数決定(図1のS3、S
4) 目標とするレジスタ数(#reg-ideal)と現在のレジスタ
数(#reg-count)との差分をとり、差分値の1/2のレ
ジスタ数〔(#reg-count−#reg-ideal)/2〕の小数を
切り上げた数を、削減するレジスタ数とする。
4) 目標とするレジスタ数(#reg-ideal)と現在のレジスタ
数(#reg-count)との差分をとり、差分値の1/2のレ
ジスタ数〔(#reg-count−#reg-ideal)/2〕の小数を
切り上げた数を、削減するレジスタ数とする。
【0048】2. 削減レジスタの決定 (図1のS5) このステップは、毎回1レジスタずつ削除する操作を削
除レジスタの数だけ繰り返して行う。各繰り返しでの削
除するレジスタの決定は、実際にスケジューリング/ア
ロケーションしてステップ数の増加を求めるのではな
く、レジスタ使用表をもとにコスト評価関数によって評
価コストを計算し、値が低いものが選ばれる。コスト評
価関数はレジスタを減らした場合に予想される実行ステ
ップ数の増加にもとづく関数である。
除レジスタの数だけ繰り返して行う。各繰り返しでの削
除するレジスタの決定は、実際にスケジューリング/ア
ロケーションしてステップ数の増加を求めるのではな
く、レジスタ使用表をもとにコスト評価関数によって評
価コストを計算し、値が低いものが選ばれる。コスト評
価関数はレジスタを減らした場合に予想される実行ステ
ップ数の増加にもとづく関数である。
【0049】レジスタ Regi の数を N regi とし、制御
ステップj(1≦j≦m−1,mは制御ステップの総数
)の (jからj+1への) 更新時に使用されるレジスタ
Regi の数を N reg(i, j)とした場合、制御ステップ
(j,j+1)でのレジスタの不足数は N reg(i, j)−
N Regi である。レジスタ Regi の数を1個削減する場
合の評価コストCを以下の数式(2)のように定義す
る。
ステップj(1≦j≦m−1,mは制御ステップの総数
)の (jからj+1への) 更新時に使用されるレジスタ
Regi の数を N reg(i, j)とした場合、制御ステップ
(j,j+1)でのレジスタの不足数は N reg(i, j)−
N Regi である。レジスタ Regi の数を1個削減する場
合の評価コストCを以下の数式(2)のように定義す
る。
【0050】
【数2】
【0051】以上の操作を、全てのレジスタについて、
それぞれ計算して、最もコストが低いレジスタ Regi を
特定し、その特定結果に基づいて、レジスタ数 N regi
を減少させる。
それぞれ計算して、最もコストが低いレジスタ Regi を
特定し、その特定結果に基づいて、レジスタ数 N regi
を減少させる。
【0052】3. レジスタ制約下でのスケジューリング
・アロケーション(図1のS6) 資源間にレジスタが存在するハードウエア構成で、与え
られたレジスタ数を制約としてスケジューリング、アロ
ケーション問題を解く。アルゴリズムの概要を以下に示
す。
・アロケーション(図1のS6) 資源間にレジスタが存在するハードウエア構成で、与え
られたレジスタ数を制約としてスケジューリング、アロ
ケーション問題を解く。アルゴリズムの概要を以下に示
す。
【0053】(a) 転送経路計算 ハードウェア構成から全ての演算間とレジスタ間の転送
経路を列挙する(図10および図11参照)。レジスタ
が存在しないため実行できない演算、データ転送(同時
実行できない演算器、転送部品同士がレジスタを通らな
いで結合されている)を除外する。さらに、除外された
転送経路のみに接続している部品を除外する。
経路を列挙する(図10および図11参照)。レジスタ
が存在しないため実行できない演算、データ転送(同時
実行できない演算器、転送部品同士がレジスタを通らな
いで結合されている)を除外する。さらに、除外された
転送経路のみに接続している部品を除外する。
【0054】(b) 転送経路のアロケーション このステップでは、ハードウエア構成にレジスタが追加
されたため、フェーズ1やフェーズ2の前回の繰り返し
で決定した転送経路のアロケーション結果をクリアし
て、転送経路のアロケーションをもう1度行なう(図1
2参照)。ここでは、フェーズ1で決定した演算器のア
ロケーションを保存する。
されたため、フェーズ1やフェーズ2の前回の繰り返し
で決定した転送経路のアロケーション結果をクリアし
て、転送経路のアロケーションをもう1度行なう(図1
2参照)。ここでは、フェーズ1で決定した演算器のア
ロケーションを保存する。
【0055】DFGの演算同士を結ぶ枝に、演算器を結
ぶ転送経路の中で経由しているレジスタ数が最も少ない
転送経路を割り当てる。もし、レジスタ数が同じなら
ば、転送経路中の資源数が最も少ない転送経路を選択す
る。
ぶ転送経路の中で経由しているレジスタ数が最も少ない
転送経路を割り当てる。もし、レジスタ数が同じなら
ば、転送経路中の資源数が最も少ない転送経路を選択す
る。
【0056】レジスタ削減により、スケジューリングが
不可能になった場合には、演算器のアロケーションを変
更する。スケジューリングできる演算器に変更不可能な
場合には、スケジューリング不可能として終了する。
不可能になった場合には、演算器のアロケーションを変
更する。スケジューリングできる演算器に変更不可能な
場合には、スケジューリング不可能として終了する。
【0057】(c) スケジューリングループ 制御ステップ1(図13(b)において、step 1と記
載)から始め、全てのDFGのノードが制御ステップ割
り当てを終了するまで以下の処理i. 、ii. を繰り返
す。
載)から始め、全てのDFGのノードが制御ステップ割
り当てを終了するまで以下の処理i. 、ii. を繰り返
す。
【0058】i.スケジューリング 処理を行なっている制御ステップにおいて実行可能なD
FG上のレジスタ−レジスタ間転送経路の中から、最も
多くの演算器、転送経路を利用したレジスタ−レジスタ
間転送経路の割り当てを求める。レジスタ数、演算器・
転送路の同時実行の可否が制約として与えられる。
FG上のレジスタ−レジスタ間転送経路の中から、最も
多くの演算器、転送経路を利用したレジスタ−レジスタ
間転送経路の割り当てを求める。レジスタ数、演算器・
転送路の同時実行の可否が制約として与えられる。
【0059】ii. 制御ステップ更新 制御ステップを1つ進める。
【0060】このアルゴリズムでは1回の繰り返し処理
が正常終了したときには削減後のレジスタ数は繰り返し
前のレジスタ数#reg-countと目標レジスタ数#reg-ideal
に対し、#reg-count−〔(#reg-count−#reg-ideal) /
2〕となる(図1のS7)。この算出値が#reg-idealよ
りも大きい場合に繰り返しが行なわれる(S8)。以上
の処理では、フェーズ1によりレジスタの初期配置が求
められ、フェーズ2でより少ない実行ステップ数増加で
目標レジスタ数を満たすレジスタ配置(レジスタ位置と
数)が求められる。
が正常終了したときには削減後のレジスタ数は繰り返し
前のレジスタ数#reg-countと目標レジスタ数#reg-ideal
に対し、#reg-count−〔(#reg-count−#reg-ideal) /
2〕となる(図1のS7)。この算出値が#reg-idealよ
りも大きい場合に繰り返しが行なわれる(S8)。以上
の処理では、フェーズ1によりレジスタの初期配置が求
められ、フェーズ2でより少ない実行ステップ数増加で
目標レジスタ数を満たすレジスタ配置(レジスタ位置と
数)が求められる。
【0061】上記各処理(フェーズ1、2)を通じて、
入力として与えられた資源とそれらの接続関係によって
表されたハードウェア構成は保持される。また、フェー
ズ1では与えられたハードウエア構成での最適なアルゴ
リズム実行をスケジューリングによって求め、アロケー
ション結果にもとづいて制御ステップにまたがって保持
されるデータが出力されるネット中にレジスタを挿入す
る。
入力として与えられた資源とそれらの接続関係によって
表されたハードウェア構成は保持される。また、フェー
ズ1では与えられたハードウエア構成での最適なアルゴ
リズム実行をスケジューリングによって求め、アロケー
ション結果にもとづいて制御ステップにまたがって保持
されるデータが出力されるネット中にレジスタを挿入す
る。
【0062】そのため、実行に適した位置に分散した複
数のレジスタが生成される。さらに、フェーズ2でレジ
スタ数の制約に基づいて極力ステップ数の増加を抑える
ようにレジスタ削減が行われる。
数のレジスタが生成される。さらに、フェーズ2でレジ
スタ数の制約に基づいて極力ステップ数の増加を抑える
ようにレジスタ削減が行われる。
【0063】従って、本発明のレジスタ生成方法によ
り、与えられたハードウェア構成を保持しつつ、目的と
するデータ処理のアルゴリズムに応じて、資源間の任意
の位置に分散した任意個のレジスタを挿入し、レジスタ
数の制約の下でより少ない実行ステップ数増加で目標レ
ジスタ数を満たすレジスタ挿入位置・数を決定すること
が可能である。
り、与えられたハードウェア構成を保持しつつ、目的と
するデータ処理のアルゴリズムに応じて、資源間の任意
の位置に分散した任意個のレジスタを挿入し、レジスタ
数の制約の下でより少ない実行ステップ数増加で目標レ
ジスタ数を満たすレジスタ挿入位置・数を決定すること
が可能である。
【0064】以下では、図4に示すハードウェア構成
と、図5に示す処理アルゴリズムを入力とし、目標レジ
スタ数2を得て、レジスタ生成までの手順の具体例を示
す。
と、図5に示す処理アルゴリズムを入力とし、目標レジ
スタ数2を得て、レジスタ生成までの手順の具体例を示
す。
【0065】図4のハードウエア構成は、M1〜M7のメモ
リ(RAM)、A1〜A4の演算器 (加算器、ADD)、T1
〜T8のマルチプレクサバス、 B1,B2のトライステートバ
スからなる資源と、資源間の接続n1〜n23 からなる。図
4では接続は入出力方向を表すため、矢印で表現されて
いる。例えばM1→T1はメモリM1の出力をマルチプレクサ
T1への入力へデータを転送する接続を表している。
リ(RAM)、A1〜A4の演算器 (加算器、ADD)、T1
〜T8のマルチプレクサバス、 B1,B2のトライステートバ
スからなる資源と、資源間の接続n1〜n23 からなる。図
4では接続は入出力方向を表すため、矢印で表現されて
いる。例えばM1→T1はメモリM1の出力をマルチプレクサ
T1への入力へデータを転送する接続を表している。
【0066】図5では処理アルゴリズムはDFGで表さ
れている。ノードはR,+,Wの3種類存在し、それぞ
れメモリ読み出し(READ)、加算、メモリ書き込み(WRIT
E) を表す。DFGの枝(図中の矢印)はノードの実行
順序を表しており、例えば、R→+→Wは、メモリから
読み出したデータを加算してメモリに書き込む動作を表
す。ノードの入出力数はその実行される演算の種類によ
り決定される(Rは1出力0入力、+は1出力2入力、
Wは0出力1入力)。
れている。ノードはR,+,Wの3種類存在し、それぞ
れメモリ読み出し(READ)、加算、メモリ書き込み(WRIT
E) を表す。DFGの枝(図中の矢印)はノードの実行
順序を表しており、例えば、R→+→Wは、メモリから
読み出したデータを加算してメモリに書き込む動作を表
す。ノードの入出力数はその実行される演算の種類によ
り決定される(Rは1出力0入力、+は1出力2入力、
Wは0出力1入力)。
【0067】図5のRノードを左からa, b, c, d, e,
f, g, h, i, jとし、Wノードをx, y, v, wの変数にラ
ベルづけすると、図5のDFGは、計算式x = 2a + b +
c, y= 2a + d + e, v = 2f + g + h, w = 2f + i + j
を意味する。
f, g, h, i, jとし、Wノードをx, y, v, wの変数にラ
ベルづけすると、図5のDFGは、計算式x = 2a + b +
c, y= 2a + d + e, v = 2f + g + h, w = 2f + i + j
を意味する。
【0068】フェーズ1(初期配置)フェーズ1では演
算・転送のスケジューリング/アロケーションを行な
い、レジスタの初期配置を求める。
算・転送のスケジューリング/アロケーションを行な
い、レジスタの初期配置を求める。
【0069】1.レジスタ制約なしのスケジューリング
/アロケーション この例では、前述の特願平7−143762号に記載の
手法でスケジューリング/アロケーションを行なう。結
果を図6に示す。図6ではデータ転送経路の転送部品
(バスやマルチプレクサ) がノードとして追加され、D
FG中のノードと枝にはそれぞれ、割り当てられた資源
と接続が記されている。なお、この例では4制御ステッ
プでの実行が得られる。
/アロケーション この例では、前述の特願平7−143762号に記載の
手法でスケジューリング/アロケーションを行なう。結
果を図6に示す。図6ではデータ転送経路の転送部品
(バスやマルチプレクサ) がノードとして追加され、D
FG中のノードと枝にはそれぞれ、割り当てられた資源
と接続が記されている。なお、この例では4制御ステッ
プでの実行が得られる。
【0070】2.レジスタ配置 上記スケジューリング結果を入力として、実行時のレジ
スタ使用数を以下の (a)、 (b)で求める。
スタ使用数を以下の (a)、 (b)で求める。
【0071】(a) 図6のスケジューリング結果からレジ
スタ使用表を作成する。各DFG枝に対し、それが制御
ステップを横切っている場合に対応する接続のカウンタ
を1増やす。例えば図6において制御ステップ1および
制御ステップ2を横切るDFG枝は4本存在し、対応す
る接続はn6、n8、n11 、n12 である。これから、レジス
タ使用表の1段目が求められる。同様に2段目、3段目
も求められる。図6のスケジューリング結果からは図7
に示すレジスタ使用表が得られる (図7ではレジスタ数
0の接続は省略している)。
スタ使用表を作成する。各DFG枝に対し、それが制御
ステップを横切っている場合に対応する接続のカウンタ
を1増やす。例えば図6において制御ステップ1および
制御ステップ2を横切るDFG枝は4本存在し、対応す
る接続はn6、n8、n11 、n12 である。これから、レジス
タ使用表の1段目が求められる。同様に2段目、3段目
も求められる。図6のスケジューリング結果からは図7
に示すレジスタ使用表が得られる (図7ではレジスタ数
0の接続は省略している)。
【0072】(b) ハードウエア構成中の資源間の各接
続に対し、レジスタ使用数の最大値を求める。これらが
資源間の接続に挿入されるレジスタ数となる。n6ではレ
ジスタ数は1→2→1と推移するので、挿入するレジス
タ数は2となる。
続に対し、レジスタ使用数の最大値を求める。これらが
資源間の接続に挿入されるレジスタ数となる。n6ではレ
ジスタ数は1→2→1と推移するので、挿入するレジス
タ数は2となる。
【0073】この結果、レジスタ数8のレジスタ配置が
得られる(図8)。n6、n8、n11 、n12 にそれぞれ挿入
されたレジスタはR1、R2、R3、R4であり、レジスタ数は
各々2である。
得られる(図8)。n6、n8、n11 、n12 にそれぞれ挿入
されたレジスタはR1、R2、R3、R4であり、レジスタ数は
各々2である。
【0074】フェーズ2(配置改良) フェーズ2ではフェーズ1の結果を初期配置とし、レジ
スタの配置改良(レジスタ数削減)を行なう。フェーズ
2では、レジスタ削減と削減されたレジスタ配置で実行
できるスケジューリング/アロケーションを繰り返しな
がら行なう。
スタの配置改良(レジスタ数削減)を行なう。フェーズ
2では、レジスタ削減と削減されたレジスタ配置で実行
できるスケジューリング/アロケーションを繰り返しな
がら行なう。
【0075】・繰り返し(1 回目) 1.削減レジスタ数計算 目標レジスタ数 (#reg-ideal=2) とフェーズ1の結果
(図8のレジスタ数#reg-count=8)から1回目の繰り
返しでは、レジスタ数を〔8−(8−2)/2〕=5に
減少させる。
(図8のレジスタ数#reg-count=8)から1回目の繰り
返しでは、レジスタ数を〔8−(8−2)/2〕=5に
減少させる。
【0076】2.削減レジスタ特定と削除 フェーズ1結果のレジスタの数および配置は図8に示す
通りであるが、もし、レジスタを1つ削減すると仮定す
ると、どのレジスタを削減対象に選んだ場合でもCstep
2-3のレジスタ不足数は2−1=1となるので、Cstep
2-3での予測ステップ増加数は =(2−1)/1=1と
求められる。Cは前述のコスト関数を示す。同様に全て
の制御ステップについて計算すると、 Cstep 1-2 では、0 Cstep 2-3 では、(2−1)/1=1 Cstep 3-4 では、0 が求められる。予測増加ステップ数は0+1+0=1と
計算される。
通りであるが、もし、レジスタを1つ削減すると仮定す
ると、どのレジスタを削減対象に選んだ場合でもCstep
2-3のレジスタ不足数は2−1=1となるので、Cstep
2-3での予測ステップ増加数は =(2−1)/1=1と
求められる。Cは前述のコスト関数を示す。同様に全て
の制御ステップについて計算すると、 Cstep 1-2 では、0 Cstep 2-3 では、(2−1)/1=1 Cstep 3-4 では、0 が求められる。予測増加ステップ数は0+1+0=1と
計算される。
【0077】1回目の繰り返しではレジスタ数は8→5
に減少させる。削除の対象となるレジスタは、全ての評
価コストの値が同じため、任意のレジスタが削減候補と
なる。本実施例ではR1が選択されるとする。これでレジ
スタ数は8→7に減少したことになる。次に再度、レジ
スタを1つ減らした予想増加ステップ数を評価すると、
以下の表1の結果が得られる。
に減少させる。削除の対象となるレジスタは、全ての評
価コストの値が同じため、任意のレジスタが削減候補と
なる。本実施例ではR1が選択されるとする。これでレジ
スタ数は8→7に減少したことになる。次に再度、レジ
スタを1つ減らした予想増加ステップ数を評価すると、
以下の表1の結果が得られる。
【0078】
【表1】
【0079】この表1の結果から、R2 , R3 , R4が削除
候補となるが、それらの増加ステップ数が互いに同一で
あるので、本実施例では R2 が選択されるとする。これ
で、レジスタ数は6であるからもう一度予想増加ステッ
プ数を評価する。この評価結果を以下の表2に示す。
候補となるが、それらの増加ステップ数が互いに同一で
あるので、本実施例では R2 が選択されるとする。これ
で、レジスタ数は6であるからもう一度予想増加ステッ
プ数を評価する。この評価結果を以下の表2に示す。
【0080】
【表2】
【0081】この評価結果から、R3 , R4 が削除候補と
なるが、本実施例では R3 が選択されるとする。これ
で、レジスタ数が5となり、1回目の繰り返しを終了す
る。
なるが、本実施例では R3 が選択されるとする。これ
で、レジスタ数が5となり、1回目の繰り返しを終了す
る。
【0082】上記の通り、1回目の繰り返しではR1 , R
2 , R3が削減対象に決定される。以下にレジスタ削減結
果を表3として示す。また、レジスタ削減後のハードウ
エア構成を図9に示す。
2 , R3が削減対象に決定される。以下にレジスタ削減結
果を表3として示す。また、レジスタ削減後のハードウ
エア構成を図9に示す。
【0083】
【表3】
【0084】3.レジスタ制約下でのスケジューリング/
アロケーション (a) 転送経路計算 図9のハードウェア構成からレジスタ間と演算器間の転
送経路を抽出した結果を図10と図11に示す。図9に
は、レジスタが存在しないために実行できない演算、転
送経路は存在しない。
アロケーション (a) 転送経路計算 図9のハードウェア構成からレジスタ間と演算器間の転
送経路を抽出した結果を図10と図11に示す。図9に
は、レジスタが存在しないために実行できない演算、転
送経路は存在しない。
【0085】(b) 転送経路のアロケーション DFG枝へのハードウエア構成中の転送経路の割り当て
は次のように行われる。図11に示すように、転送経路
X1、転送経路X2はどちらもA2からA1への経路を表
す。この場合、転送経路中のレジスタ数は転送経路X
1、X2とも同じだが、転送経路X2の方が経路中の資
源数が少ない。よって転送経路X2がA2→A1を表すDF
G枝に割り付けられる。
は次のように行われる。図11に示すように、転送経路
X1、転送経路X2はどちらもA2からA1への経路を表
す。この場合、転送経路中のレジスタ数は転送経路X
1、X2とも同じだが、転送経路X2の方が経路中の資
源数が少ない。よって転送経路X2がA2→A1を表すDF
G枝に割り付けられる。
【0086】図12(a)、図12(b)および図12
(c)にアロケーションの様子と結果を示す。図12
(b)に示すDFGに対して、図12(a)に示した(R
EAD)−加算器間の転送経路 (実線部)、加算器−加算器
間の転送経路 (破線部)、加算器−メモリ(WRITE )間
の転送経路 (点線部)がそれぞれ割り付けられるが、図
12(c)に示した結果では経路中の資源数が最も少な
い転送経路 (図12(a)に枠で囲まれた経路)が選ば
れてアロケーションされている。
(c)にアロケーションの様子と結果を示す。図12
(b)に示すDFGに対して、図12(a)に示した(R
EAD)−加算器間の転送経路 (実線部)、加算器−加算器
間の転送経路 (破線部)、加算器−メモリ(WRITE )間
の転送経路 (点線部)がそれぞれ割り付けられるが、図
12(c)に示した結果では経路中の資源数が最も少な
い転送経路 (図12(a)に枠で囲まれた経路)が選ば
れてアロケーションされている。
【0087】(c) スケジューリングループ スケジューリングでは、各制御ステップにおいて、資源
を最大に使用するように演算やレジスタ間データ転送を
実行する制御ステップを決定する。制御ステップ1の割
り当ての様子を図13(a)、および図13(b)に示
す。
を最大に使用するように演算やレジスタ間データ転送を
実行する制御ステップを決定する。制御ステップ1の割
り当ての様子を図13(a)、および図13(b)に示
す。
【0088】図13(b)に示したDFGでは R1 、 R
2 、 R3 、 R4 が制御ステップ1を横切る。図13
(a)に示した上部枠内のレジスタ転送経路をステップ
1に割り付けた結果を図13(b)に示している。図1
3では、これ以上のレジスタ間データ転送をステップ1
に割り当てられない。図13(a)に示した転送経路Y
1, Y2を割り当てようとすると、A1, B1, T1, T2の資
源上でデータの衝突が生じる。
2 、 R3 、 R4 が制御ステップ1を横切る。図13
(a)に示した上部枠内のレジスタ転送経路をステップ
1に割り付けた結果を図13(b)に示している。図1
3では、これ以上のレジスタ間データ転送をステップ1
に割り当てられない。図13(a)に示した転送経路Y
1, Y2を割り当てようとすると、A1, B1, T1, T2の資
源上でデータの衝突が生じる。
【0089】制御ステップ2の割り当ては図14
(a)、および図14(b)の通り行われる。ここで
は、データ転送路の割り付けから判断すると、図14
(a)の破線で示す割り当ても可能であるが、R1、R2、
R3のレジスタ使用量が、レジスタ数を超過するため、破
線で示す割り当ては行なわれない。
(a)、および図14(b)の通り行われる。ここで
は、データ転送路の割り付けから判断すると、図14
(a)の破線で示す割り当ても可能であるが、R1、R2、
R3のレジスタ使用量が、レジスタ数を超過するため、破
線で示す割り当ては行なわれない。
【0090】同様に制御ステップ3と制御ステップ4の
スケジューリング結果を図15(a)、および図15
(b)と図16(a)、および図16(b)に示す。制
御ステップ4で全てのDFGノードが割り付けられたの
でスケジューリングを終了する。
スケジューリング結果を図15(a)、および図15
(b)と図16(a)、および図16(b)に示す。制
御ステップ4で全てのDFGノードが割り付けられたの
でスケジューリングを終了する。
【0091】・繰り返し (2回目) 2回目の繰り返しでは、レジスタ数を5→3 (=(5+2)/
2) に減少させる。1回目同様にR1,R4のレジスタが特
定され削除される。削減結果を以下の表4に示す。削除
処理では、最初に評価関数が一番低いR4が選ばれてレジ
スタ数が1となり、次にR1が選択される。R4のレジスタ
数が1に削減された後は、評価コストは全て3である
が、ここではR1が選択されるとする。
2) に減少させる。1回目同様にR1,R4のレジスタが特
定され削除される。削減結果を以下の表4に示す。削除
処理では、最初に評価関数が一番低いR4が選ばれてレジ
スタ数が1となり、次にR1が選択される。R4のレジスタ
数が1に削減された後は、評価コストは全て3である
が、ここではR1が選択されるとする。
【0092】
【表4】
【0093】この回のスケジューリング/アロケーショ
ンでは、図17に示すように、ハードウェア構成から演
算器 A1 にはレジスタを含まないループが存在し、A1→
B1→T1→A1は実行不可能であるため、転送経路から除外
する。この実行不可能な部分を図17で点線で示す。
ンでは、図17に示すように、ハードウェア構成から演
算器 A1 にはレジスタを含まないループが存在し、A1→
B1→T1→A1は実行不可能であるため、転送経路から除外
する。この実行不可能な部分を図17で点線で示す。
【0094】2回目のスケジューリング/アロケーショ
ン結果を図18に示す。結果として、制御ステップ数5
のスケジューリング結果が得られる。図18では、演算
器/メモリのアロケーションが変更されている(図中A
1、A2、M4の斜線部)。
ン結果を図18に示す。結果として、制御ステップ数5
のスケジューリング結果が得られる。図18では、演算
器/メモリのアロケーションが変更されている(図中A
1、A2、M4の斜線部)。
【0095】・繰り返し (3回目) 3回目の繰り返しでは、レジスタを3→2に減少させ
る。この例では以下の表5に示す通り、R2が選択され削
除される。レジスタ配置結果を図19に、スケジューリ
ング/アロケーション結果を図20に示す。ここでも、
2回目の繰り返し同様、演算器のアロケーションが変更
されている(図20中における、A4、M3の斜線部)。
る。この例では以下の表5に示す通り、R2が選択され削
除される。レジスタ配置結果を図19に、スケジューリ
ング/アロケーション結果を図20に示す。ここでも、
2回目の繰り返し同様、演算器のアロケーションが変更
されている(図20中における、A4、M3の斜線部)。
【0096】
【表5】
【0097】レジスタ数を目標レジスタ数まで削減でき
たため、レジスタ生成(フェーズ2)を終了する(図1
のS3)。
たため、レジスタ生成(フェーズ2)を終了する(図1
のS3)。
【0098】以上の処理により、最終結果として図21
および図22に示すレジスタ数2のレジスタ配置が得ら
れ、同時に、制御ステップ数6のスケジューリング結果
が得られる。図21に示す通り、最終結果では入力され
たハードウエア構成(図4)の資源やそれらの接続は保
持されている共に、n11 とn12 の位置に局所的に分散さ
れてレジスタが生成されている。また、生成されたレジ
スタ配置では、与えられたレジスタ数の制約を満たしつ
つレジスタ数に制約がない場合に比べて制御ステップが
2しか増加しない良好なスケジューリング、アロケーシ
ョンが可能となっている。以上により、この例では本願
の各請求項に述べる特徴が本発明の手法により実現でき
ていることが判る。
および図22に示すレジスタ数2のレジスタ配置が得ら
れ、同時に、制御ステップ数6のスケジューリング結果
が得られる。図21に示す通り、最終結果では入力され
たハードウエア構成(図4)の資源やそれらの接続は保
持されている共に、n11 とn12 の位置に局所的に分散さ
れてレジスタが生成されている。また、生成されたレジ
スタ配置では、与えられたレジスタ数の制約を満たしつ
つレジスタ数に制約がない場合に比べて制御ステップが
2しか増加しない良好なスケジューリング、アロケーシ
ョンが可能となっている。以上により、この例では本願
の各請求項に述べる特徴が本発明の手法により実現でき
ていることが判る。
【0099】また、上述したレジスタ生成方法は、レジ
スタ生成プログラムとして記述し、レジスタ生成プログ
ラムを、記録媒体、例えば、CD−ROM、フロッピィ
ーディスク、磁気テープ等に記録して、コンピュータの
アシストによる、例えば特定用途向けデータ処理プロセ
ッサ等のLSIのアーキテクチャ設定に用いることがで
きる。
スタ生成プログラムとして記述し、レジスタ生成プログ
ラムを、記録媒体、例えば、CD−ROM、フロッピィ
ーディスク、磁気テープ等に記録して、コンピュータの
アシストによる、例えば特定用途向けデータ処理プロセ
ッサ等のLSIのアーキテクチャ設定に用いることがで
きる。
【0100】
【発明の効果】本発明のレジスタ生成方法は、以上のよ
うに、目的とするアルゴリズムに適合した不規則なハー
ドウエア構成を有する、例えば特定用途向けデータ処理
プロセッサのアーキテクチャを容易に設計可能にし、高
いコスト性能比が要求されるLSIである特定用途向け
データ処理プロセッサに対し、よりコスト性能比が高い
デジタル論理回路の設計をより短期間に実現可能にする
という効果を奏する。
うに、目的とするアルゴリズムに適合した不規則なハー
ドウエア構成を有する、例えば特定用途向けデータ処理
プロセッサのアーキテクチャを容易に設計可能にし、高
いコスト性能比が要求されるLSIである特定用途向け
データ処理プロセッサに対し、よりコスト性能比が高い
デジタル論理回路の設計をより短期間に実現可能にする
という効果を奏する。
【0101】また、上記レジスタ生成方法は、さらに、
上記トレードオフの最適化が、レジスタを減らした場合
に予想される実行ステップ数の増加に基づくコスト評価
関数に基づいて実行されることにより、レジスタの配置
や数の設定を、より確実化できるという効果を奏する。
上記トレードオフの最適化が、レジスタを減らした場合
に予想される実行ステップ数の増加に基づくコスト評価
関数に基づいて実行されることにより、レジスタの配置
や数の設定を、より確実化できるという効果を奏する。
【0102】さらに、本発明のレジスタ生成装置および
レジスタ生成プログラムを記録した記録媒体は、以上の
ように、特定用途向けデータ処理プロセッサ設計におい
て、目的とする処理アルゴリズムに合わせて設計者が最
適化した資源とそれらの接続によるデータ処理部のハー
ドウエア構成を保持したまま、資源間の任意の位置に分
散した任意個のレジスタを挿入し、目標とするレジスタ
数の制約の下でレジスタ数の制約による性能低下を極力
避けるように、より少ないステップ数でアルゴリズム実
行ができるレジスタの位置・数を自動的に決定すること
ができる。
レジスタ生成プログラムを記録した記録媒体は、以上の
ように、特定用途向けデータ処理プロセッサ設計におい
て、目的とする処理アルゴリズムに合わせて設計者が最
適化した資源とそれらの接続によるデータ処理部のハー
ドウエア構成を保持したまま、資源間の任意の位置に分
散した任意個のレジスタを挿入し、目標とするレジスタ
数の制約の下でレジスタ数の制約による性能低下を極力
避けるように、より少ないステップ数でアルゴリズム実
行ができるレジスタの位置・数を自動的に決定すること
ができる。
【0103】この結果、上記構成では、高いコスト性能
比が要求される、例えばLSIである特定用途向けデー
タ処理プロセッサに対し、よりコスト性能比が高いデジ
タル論理回路の設計をより短期間に実現可能にするとい
う効果を奏する。
比が要求される、例えばLSIである特定用途向けデー
タ処理プロセッサに対し、よりコスト性能比が高いデジ
タル論理回路の設計をより短期間に実現可能にするとい
う効果を奏する。
【図1】本発明のレジスタ生成方法およびレジスタ生成
装置ならびにレジスタ生成プログラム(以下、レジスタ
生成方法等と略す)を示す説明図である。
装置ならびにレジスタ生成プログラム(以下、レジスタ
生成方法等と略す)を示す説明図である。
【図2】上記レジスタ生成方法等におけるスケジューリ
ングDFGの枝を(a)にて、また、レジスタ挿入され
るハードウェア構成の接続の関係を(b)にて表す説明
図である。
ングDFGの枝を(a)にて、また、レジスタ挿入され
るハードウェア構成の接続の関係を(b)にて表す説明
図である。
【図3】上記レジスタ生成方法等におけるレジスタ使用
表を示す説明図である。
表を示す説明図である。
【図4】上記ハードウェア構成のブロック図である。
【図5】上記スケジューリングDFGの処理アルゴリズ
ムを示す説明図である。
ムを示す説明図である。
【図6】上記レジスタ生成方法等におけるフェーズ1の
スケジューリング結果を示す説明図である。
スケジューリング結果を示す説明図である。
【図7】上記フェーズ1のスケジューリング終了後のレ
ジスタ使用表を示す説明図である。
ジスタ使用表を示す説明図である。
【図8】上記フェーズ1のスケジューリング終了後にお
けるハードウェア構成のレジスタ生成結果を示すブロッ
ク図である。
けるハードウェア構成のレジスタ生成結果を示すブロッ
ク図である。
【図9】上記レジスタ生成方法等における、フェーズ2
のレジスタ削減後のハードウェア構成のレジスタ生成結
果を示すブロック図である。
のレジスタ削減後のハードウェア構成のレジスタ生成結
果を示すブロック図である。
【図10】上記フェーズ2における、レジスタ間転送経
路(繰り返し1回目)を示す説明図である。
路(繰り返し1回目)を示す説明図である。
【図11】上記フェーズ2における、演算器間転送経路
(繰り返し1回目)を示す説明図である。
(繰り返し1回目)を示す説明図である。
【図12】上記フェーズ2における、アロケーション結
果(繰り返し1回目)を示す説明図であり、(a)は演
算器間転送経路を、(b)は上記演算器間転送経路を示
すDFGを、(c)は上記アロケーション結果を示すD
FGを示す。
果(繰り返し1回目)を示す説明図であり、(a)は演
算器間転送経路を、(b)は上記演算器間転送経路を示
すDFGを、(c)は上記アロケーション結果を示すD
FGを示す。
【図13】上記フェーズ2における、スケジューリング
の制御ステップ1(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ1におけるレジスタ間転
送経路を、(b)は、上記制御ステップ1によるスケジ
ューリング結果のDFGを示す。
の制御ステップ1(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ1におけるレジスタ間転
送経路を、(b)は、上記制御ステップ1によるスケジ
ューリング結果のDFGを示す。
【図14】上記フェーズ2における、スケジューリング
の制御ステップ2(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ2におけるレジスタ間転
送経路を、(b)は、上記制御ステップ2によるスケジ
ューリング結果のDFGを示す。
の制御ステップ2(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ2におけるレジスタ間転
送経路を、(b)は、上記制御ステップ2によるスケジ
ューリング結果のDFGを示す。
【図15】上記フェーズ2における、スケジューリング
の制御ステップ3(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ3におけるレジスタ間転
送経路を、(b)は、上記制御ステップ3によるスケジ
ューリング結果のDFGを示す。
の制御ステップ3(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ3におけるレジスタ間転
送経路を、(b)は、上記制御ステップ3によるスケジ
ューリング結果のDFGを示す。
【図16】上記フェーズ2における、スケジューリング
の制御ステップ4(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ4におけるレジスタ間転
送経路を、(b)は、上記制御ステップ4によるスケジ
ューリング結果のDFGを示す。
の制御ステップ4(繰り返し1回目)を示す説明図であ
り、(a)は上記制御ステップ4におけるレジスタ間転
送経路を、(b)は、上記制御ステップ4によるスケジ
ューリング結果のDFGを示す。
【図17】上記フェーズ2における、削減後のレジスタ
を含むハードウェア構成(繰り返し2回目)を示すブロ
ック図である。
を含むハードウェア構成(繰り返し2回目)を示すブロ
ック図である。
【図18】上記フェーズ2における、スケジューリング
結果(繰り返し2回目)を示す説明図である。
結果(繰り返し2回目)を示す説明図である。
【図19】上記フェーズ2における、削減後のレジスタ
を含むハードウェア構成(繰り返し3回目)を示すブロ
ック図である。
を含むハードウェア構成(繰り返し3回目)を示すブロ
ック図である。
【図20】上記フェーズ2における、スケジューリング
結果(繰り返し3回目)を示す説明図である。
結果(繰り返し3回目)を示す説明図である。
【図21】上記レジスタ生成方法等における、レジスタ
生成最終結果を含むハードウェア構成を示すブロック図
である。
生成最終結果を含むハードウェア構成を示すブロック図
である。
【図22】上記レジスタ生成最終結果のスケジューリン
グ結果を示す説明図である。
グ結果を示す説明図である。
S1 入力手段 S2 設定手段 S6 レジスタ生成手段
Claims (5)
- 【請求項1】データ処理プロセッサについて設定された
演算器/メモリ/バスを有する資源とそれらの接続関係
とによって表されたハードウェア構成と、目的とするデ
ータ処理のアルゴリズムとが入力として与えられたとき
に、 与えられたハードウェア構成を保持したまま、レジスタ
数の制約の下でより少ないステップ数でアルゴリズム実
行ができるように、上記レジスタをトレードオフの対象
とし、資源における演算器/メモリ/バスの間の任意の
位置にレジスタを分散して配置挿入することを特徴とす
るレジスタ生成方法。 - 【請求項2】データ処理プロセッサについて設定された
演算器/メモリ/バスを有する資源とそれらの接続関係
とによって表されたハードウェア構成と、目的とするデ
ータ処理のアルゴリズムとが入力として与えられたとき
に、 資源における演算器/メモリ/バスの間の任意の位置に
制約無しにてレジスタが存在し得ると仮定してアルゴリ
ズム実行にかかるステップ数を演算やデータ転送にかか
る実行ステップ数も考慮して評価する第1ステップと、 順次、トレードオフの対象であるレジスタ数に制約を与
え、与えられたハードウェア構成を保持しつつ、より少
ないステップ数でアルゴリズム実行ができるレジスタの
位置・数を決定する第2ステップを含むことにより、 与えられたハードウェア構成を保持したまま、レジスタ
数の制約の下でより少ないステップ数でアルゴリズム実
行ができるように、資源における演算器/メモリ/バス
の間の任意の位置にレジスタを分散して配置挿入するこ
とを特徴とするレジスタ生成方法。 - 【請求項3】トレードオフの最適化は、レジスタを減ら
した場合に予想される実行ステップ数の増加に基づくコ
スト評価関数に基づいて実行されることを特徴とする請
求項1または2記載のレジスタ生成方法。 - 【請求項4】コンピュータによってレジスタ生成を行な
うためのレジスタ生成プログラムを記録した記録媒体で
あって、 データ処理プロセッサについて設定された演算器/メモ
リ/バスを有する資源とそれらの接続関係とによって表
わされたハードウェア構成を入力し、 目的とするデータ処理のアルゴリズムを入力し、 資源における演算器/メモリ/バスの間の任意の位置に
制約無しにてレジスタが存在し得ると仮定してアルゴリ
ズム実行にかかるステップ数を演算やデータ転送にかか
る実行ステップ数も考慮して評価する第1ステップと、 第1ステップの後に、順次、レジスタ数に制約を与え
て、与えられたハードウェア構成を保持しつつ、より少
ないステップ数でアルゴリズム実行ができるレジスタの
位置・数を決定する第2ステップを含むことにより、 第2ステップにおける決定結果に従って、与えられたハ
ードウエア構成を保持しつつ、レジスタ数の制約の下で
より少ないステップ数でアルゴリズム実行ができるよう
に、資源における演算器/メモリ/バスの間の任意の位
置にレジスタを分散して配置挿入することを特徴とする
レジスタ生成プログラムを記録した記録媒体。 - 【請求項5】データ処理プロセッサについて設定された
演算器/メモリ/バスを有する資源とそれらの接続関係
のみによって表わされたハードウェア構成、および目的
とするデータ処理のアルゴリズムを入力する入力手段
と、 資源における演算器/メモリ/バスの間の任意の位置に
制約無しにてレジスタが存在し得ると仮定してアルゴリ
ズム実行にかかるステップ数を演算やデータ転送にかか
る実行ステップ数も考慮してレジスタを設定する設定手
段と、 順次、上記レジスタ数に制約を与えて、与えられたハー
ドウェア構成を保持しつつ、より少ないステップ数でア
ルゴリズム実行ができるレジスタの位置・数を決定し
て、レジスタ数の制約の下でより少ないステップ数でア
ルゴリズム実行ができるように、資源における演算器/
メモリ/バスの間の任意の位置にレジスタを分散して配
置するレジスタ生成手段とを備えたことを特徴とするレ
ジスタ生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7275798A JPH11272641A (ja) | 1998-03-20 | 1998-03-20 | レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7275798A JPH11272641A (ja) | 1998-03-20 | 1998-03-20 | レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11272641A true JPH11272641A (ja) | 1999-10-08 |
Family
ID=13498560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7275798A Pending JPH11272641A (ja) | 1998-03-20 | 1998-03-20 | レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11272641A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347298B2 (en) | 2006-10-02 | 2013-01-01 | Japan Aerospace Exploration Agency | Autonomous distributed control involving constraint on resources |
JP2014109865A (ja) * | 2012-11-30 | 2014-06-12 | Kddi Corp | 論理回路の設計装置 |
-
1998
- 1998-03-20 JP JP7275798A patent/JPH11272641A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347298B2 (en) | 2006-10-02 | 2013-01-01 | Japan Aerospace Exploration Agency | Autonomous distributed control involving constraint on resources |
JP2014109865A (ja) * | 2012-11-30 | 2014-06-12 | Kddi Corp | 論理回路の設計装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Monteiro et al. | Scheduling techniques to enable power management | |
US6505339B1 (en) | Behavioral synthesis links to logic synthesis | |
US6041399A (en) | VLIW system with predicated instruction execution for individual instruction fields | |
US6305001B1 (en) | Clock distribution network planning and method therefor | |
US6415430B1 (en) | Method and apparatus for SAT solver architecture with very low synthesis and layout overhead | |
US6195786B1 (en) | Constrained register sharing technique for low power VLSI design | |
US7346872B2 (en) | Functional timing analysis for characterization of virtual component blocks | |
JP2002083001A (ja) | 論理回路の設計方法及びそれに使用するセルライブラリ | |
US9201996B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program | |
US6604232B2 (en) | High-level synthesis method and storage medium storing the same | |
EP0847022A2 (en) | Method for designing an architectural system | |
US20070214447A1 (en) | Behavioral synthesis apparatus, behavioral synthesis method, method for manufacturing digital circuit, behavioral synthesis control program and computer-readable recording medium | |
US6230302B1 (en) | Method and system for performing timing analysis on an integrated circuit design | |
US7191417B1 (en) | Method and apparatus for optimization of digital integrated circuits using detection of bottlenecks | |
US8127259B2 (en) | Synthesis constraint creating device, behavioral synthesis device, synthesis constraint creating method and recording medium | |
US6292926B1 (en) | Functional module model, pipelined circuit synthesis and pipelined circuit device | |
US20040060012A1 (en) | Process of restructuring logics in ICs for setup and hold time optimization | |
US6505340B2 (en) | Circuit synthesis method | |
US6532584B1 (en) | Circuit synthesis method | |
JP2002108958A (ja) | 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体 | |
JPH11272641A (ja) | レジスタ生成方法、レジスタ生成装置およびレジスタ生成プログラムを記録した記録媒体 | |
US7051312B1 (en) | Upper-bound calculation for placed circuit design performance | |
JP3803283B2 (ja) | 集積回路のテストのための圧縮テストプランの生成、テスト系列生成およびテスト | |
US6367066B1 (en) | System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing | |
Chang et al. | An optimal clock period selection method based on slack minimization criteria |