(57)【特許請求の範囲】
【請求項１】
複数のデータ処理ユニットを具え、各データ処理ユニットは複数のデータ端子を有し、
命令ワードをアドレスするためにプログラムメモリ手段に結合されたプログラムカウンタを具え、前記命令ワードは複数のコマンドフィールドを含み、前記プログラムメモリ手段は各コマンドフィールドを各別のデータ処理ユニットに供給するために前記データ処理ユニットに結合され、
異なる端子を接続する複数の接続素子を具え、各接続素子は前記データ端子のうちの少なくとも２つの入力端子と少なくとも２つの出力端子とを物理的に接続し、これらの接続素子は命令ワード内に含まれる制御信号を受信するために前記プログラムメモリ手段に結合され、前記制御信号が接続素子によりどの入力端子とどの出力端子との間にデータ接続を設定するかについての選択を行うデータ処理システムにおいて、前記命令ワードは制御フィールドを具え、且つ前記接続素子とプログラムメモリ手段との結合路内に、前記制御フィールドの制御の下で、少なくとも前記接続素子のうちの第１のものにより設定されるデータ接続と第２のものとにより設定されるデータ接続を一緒に選択する拡張器を具え、該拡張器が第１接続素子のデータ接続に対し複数の実現可能な第１選択をもたらすとともに、実現可能な各第１選択ごとに第２接続素子のデータ接続に対し各別の第２選択群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の第２選択群が、矛盾のないデータ接続の限定について相違していることを特徴とするデータ処理システム。
【請求項２】
前記プログラムメモリ手段が制御入力端子を有する接続手段を経て前記データ処理ユニットに接続され、且つ前記拡張器が前記制御フィールドの拡張により前記制御手段に対する他の制御信号を選択し、前記他の制御信号をその制御入力端子に供給して、命令ワード内のどのコマンドフィールドをどのデータ処理ユニットに供給するか制御し、且つ前記拡張器が実現可能な各第１選択ごとに前記他の制御信号に対し各別の他の選択群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の他の選択群が互いに相違していることを特徴とする請求の範囲１記載のデータ処理システム。
【請求項３】
前記制御フィールドの制御の下で前記データ処理ユニットの少なくとも一つに対する制御コマンドを形成するために前記拡張器が前記データ処理ユニットの少なくとも一つに結合され、前記拡張器が各第１選択ごとに各別の他の選択可能な制御コマンド群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の他の選択可能な制御コマンド群が互いに相違していることを特徴とする請求の範囲１又は２記載のデータ処理システム。
【請求項４】
前記データ処理ユニットの少なくとも一つは第１及び第２レジスタを具え、
各レジスタは各別のデータ端子を経てデータを供給するために前記接続素子に物理的に結合され、前記第１選択は第１レジスタへの複数のデータ接続を含み、前記各別の第２選択群は第２レジスタへの複数のデータ接続を含むことを特徴とする請求の範囲１記載のデータ処理システム。
【請求項５】
前記接続素子とプログラムメモリ手段との結合路内に、前記制御信号を、次の制御信号の形成中蓄積し前記接続素子に伝送するレジスタを具えていることを特徴とする請求の範囲１〜４のいずれかに記載のデータ処理システム。
【発明の詳細な説明】
本発明は、
複数のデータ処理ユニットを具え、各データ処理ユニットは複数のデータ端子を有し、
命令ワードをアドレスするためにプログラムメモリ手段に結合されたプログラムカウンタを具え、前記命令ワードは複数のコマンドフィールドを含み、前記プログラムメモリ手段は各コマンドフィールドを各別のデータ処理ユニットに供給するために前記データ処理ユニットに結合され、
異なる端子を接続する複数の接続素子を具え、各接続素子は前記データ端子のうちの少なくとも２つの入力端子と少なくとも２つの出力端子とを物理的に接続し、これらの接続素子は命令ワード内に含まれる制御信号を受信するために前記プログラムメモリ手段に結合され、前記制御信号が接続素子によりどの入力端子とどの出力端子との間にオウンデータ接続を設定するかについての選択を行うデータ処理システムに関するこのである。
この種のデータ処理システムは米国特許第5,280,620号から既知である。データ処理ユニットの例は算術論理演算装置（ALU）、乗算器、自律アドレッシングモードを有するデータメモリ、入／出力装置等である。このデータ処理システムのプログラムメモリ手段は各別のデータ処理ユニットに対するコマンド用の複数のサブメモリからなる。各命令サイクルにおいてプログラムカウンタが新しいアドレスを発生し、これにより種々のサブメモリから並列にコマンドが読み出される。従って、種々のデータ処理ユニットにより実行されるコマンドは互いに独立であり、且つ種々のデータ処理ユニット間の並列処理をプログラムの書込みに十分に利用することができる。各命令サイクルにおいて種々のデータ処理ユニットに対し多数の別々のコマンドが必要とされるため、このようなアーキテクチャはVLIW（Very Long Instruction Word＝超長大命令ワード）アーキテクチャとも称されている。
動作中に種々のデータ処理ユニット間でデータを転送する必要がある。この目的のために、前記刊行物に開示されたシステムは個々のデータ処理ユニットのデータ端子まで延在するラインとの交点で制御しうるように接続されたデータバスの形態の接続素子を具える。これらの交点に対する制御コードがデータ処理ユニットに対するコマンドと一緒にサブメモリに蓄積される。各命令サイクルにおいて各サブメモリがこれらの制御コードを交点制御のために出力する。
特に多数のデータ処理ユニットを具えるとともにプログラムが多数の命令を含む場合には、プログラムメモリが集積回路においてかなり大きなスペースを占める。
本発明の目的はプログラムに必要とされるメモリスペースを低減することにある。
本発明データ処理システムは、前記命令ワードが制御フィールドを具え、且つ前記接続素子とプログラムメモリ手段との結合路内に、前記制御フィールドの制御の下で、少なくとも前記制御素子のうちの第１のものにより設定されるオウンデータ接続と第２のものにより設定されるオウンデータ接続とを一緒に選択する拡張器を具え、該拡張器が第１接続素子のオウンデータ接続に対し複数の実現可能な第１選択をもたらすとともに、実現可能な各第１選択ごとに第２接続素子のデータ接続に対し各別の第２選択群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の第２選択群が無矛盾データ接続の限定に必要とされる以上に相違していることを特徴とする。
このように拡張器を介して単一の制御フィールドが種々の接続素子により設定されるデータ接続を選択するので、制御フィールドを種々の接続素子における互いに独立の選択のためにサブフィールドに分割する必要がない。
例えば、メモリからALUの入力レジスタへのデータ接続が第１接続素子に対し選択される場合には、当該ALUの他のレジスタからの又はへの一群の接続を第２接続素子に対し選択可能にできるが、第１接続素子に対しALUの出力レジスタと出力ユニットとの間の接続が選択される場合には、第２接続素子に対する選択可能な接続群は空であるため、第２接続素子による接続は不可能である。この種の制限は、実行中のプログラムと無関係に、データ接続の矛盾する組合せ、例えば第１及び第２接続素子が同一の入力端子へのデータ接続を設定する意味のない組合せの除外に必要とされる以上に顕著である。
本発明は、協働する一組のデータ処理ユニットに対する特定のプログラムの実行中において、発生する種々のデータ接続間にコヒーレントが見られる点に基づくものである。一つの完全なプログラムにおいて実現可能な全データ接続構成が生ずるわけではないことが確かめられた。これに対し、プログラムのタイプ（例えばフッルタリング処理を含むタイプ又は高速フーリエ変換を含むタイプ）に応じて、特定の限定された接続構成レパーリが生ずる。従って、システムに対するプログラムの書込みに対し、特定のアプリケーションにおいて並列処理を利用しうる程度を本質的に制限することなく、このレパートリは限定を受入れることができる。
データ処理システムは自由に種々のデータ処理ユニットを互いに独立に制御することができるにもかかわらず、特定のタイプのプログラムのみを実行するシステムに対しては、種々のデータ処理ユニットのデータ接続を互いに独立に制御することもできる必要はない。これは特に単一の特定のタイプの装置、例えば無線受信機又はデコーダ装置用に特別に設計された”組み込み型”信号プロセッサに言える。
本発明は上述のアイディアを利用し、各データ処理ユニットに対する接続を命令内に別々に含めないで、その代わりに命令の単一制御フィールドを用いて実現可能な接続構成の限定されたレパートリのうちの一つを選択するものである。この場合、どのデータ接続が第１接続素子により設定されるかに応じて、制御フィールドは第２接続素子を制御するために物理的に実現可能なデータ接続群の一部分のみからの選択を必要とするだけである。その結果、ビット構成の制御フィールドをプログラムの実現可能な並列処理の程度をあまり低下することなく短くすることができる。
これは、所定のタイプのプログラムの使用の結果であり、種々のデータ処理ユニットに対する限定された数の種々のコマンドの使用の結果ではない点に注意されたい。従って、接続レパートリの限定は”パイプライン”システムにおいても意義がある。パイプラインは、所定の命令サイクル中に接続素子を経て転送されるデータは前命令サイクル中に発生されたもの及び／又は後命令サイクル中に処理されるものであることを意味する。この場合には命令の各別のコマンドフィールドは同じ命令の制御フィールドによりその転送が制御されるデータ以外のデータに関連する。これらの環境では命令の制御フィールドを実現可能な接続構成の限定されたレパートリのうちの一つを選択するために使用する魅力が残されている。
本発明データ処理システムの一実施例では、前記プログラムメモリ手段が制御入力端子を具える接続手段を経て前記データ処理ユニットに接続され、且つ前記拡張器が前記制御フィールドの拡張により前記制御手段に対する他の制御信号を選択し、前記他の制御信号をその制御入力端子に供給して、命令ワード内のどのコマンドフィールドをどのデータ処理ユニットに供給するか制御し、且つ前記拡張器が実現可能な各第１選択ごとに前記他の制御信号に対し各別の他の選択群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の他の選択群が互いに相違していることを特徴とする。このようにすると、特定のタイプのプログラムにおいて並列処理を使用しうる程度に大きな制限を課す必要なしに１命令当たりの所要ビット数を更に制限することができる。
命令ワードのフォーマット選択フィールドの制御の下で、命令のどの部分をどのデータ処理ユニットにより実行するかを制御する接続手段の使用自体は、“CompEuro 1992 Proceedings,Computer System and Softeare Egineering",pp.35−40,“IEEE Computer Society Press",Los Alamitos,Californiaに掲載されたA.De Gloriaの論文“A Programmable Instruction Format Extension to VLIW Architecture"から既知である。De Gloriaは、フォーマット選択フィールドがメモリとデータ処理ユニットとの間の命令転送に対し限定された数の接続構成をもたらす拡張器を介して接続手段を制御することも示している。しかし、De Gloriaは、データ転送及び命令転送に対する接続の選択の組合せについてはもちろんのこと、種々のデータ処理ユニット間のデータ転送に対し限定された数の接続構成を選択する拡張器について何も示唆していない。
本発明データ処理システムの一実施例では、前記制御フィールドの制御の下で前記データ処理ユニットの少なくとも一つに対する制御コマンドを形成するために前記拡張器が前記データ処理ユニットの少なくとも一つに結合され、前記拡張器が各第１選択ごとに各別の他の選択可能な制御コマンド群（空のこともあり得る）のみをもたらし、少なくとも２つの各別の他の選択可能な制御コマンド群が互いに相違していることを特徴とする。このようにすると、データ処理ユニットの一部分において、コマンド実行が少なくとも部分的に接続素子と一緒に拡張器を介して制御される。従って、特定のタイプのプログラムにおいて並列処理を使用しうる程度を本質的に制限する必要なしに１命令当たりの所要ビット数を更に制限することができることが確かめられた。
本発明データ処理システムの一実施例では、前記データ処理ユニットの少なくとも一つは第１及び第２レジスタを具え、各レジスタは各別のデータ端子を経てデータを供給するために前記接続素子に物理的に結合され、前記第１選択は第１レジスタへの複数のデータ接続を含み、前記各別の第２選択群は第２レジスタへの複数のデータ接続を含むことを特徴とする。このようにすると、本発明を独立に同時にロードしうるレジスタを有するデータ処理ユニットに対し使用することもできる。
本発明データ処理システムの他の実施例では、前記接続素子とプログラムメモリ手段との結合路内に、前記制御信号を、次の制御信号の形成中蓄積し前記接続素子に伝送するレジスタを具えていることを特徴とする。このレジスタはパイプライン化をもたらし、プログラムメモリ手段と接続手段との間の拡張器の挿入による遅延が使用可能な最大命令周波数の低下を生じないようにすることができる。しかし、この場合には、命令の制御フィールドが当該命令のコマンドフィールド以外の命令サイクルにおいて使用されることが起こりうる。このことは特定のタイプのプログラムにおいて並列処理を使用しうる程度を本質的に制限しないことが確かめられた。その理由は、本発明の効果は所定のタイプのプログラムを使用する結果として生じ、データ処理ユニットに対し限定数のコマンドのみを使用する結果として生じるのではないためである。
本発明のこれらの特徴及び他の特徴は以下に記載する実施例の説明から明らかになる。
図面において、
図１は本発明データ処理システムの第１の実施例を示し、
図２は本発明データ処理システムの第２の実施例を示し、
図３は拡張器とデータ処理ユニットとの間の接続の一実施例を示し、
図４はデータ処理ユニットの一実施例を示す。
図１は本発明データ処理システムの第１の実施例を示す。このシステムはプログラムカウンタ10を具え、その出力端子がプログラムメモリ12のアドレス入力端子に結合されている。プログラムメモリ12はプログラム命令を蓄積する複数の位置を有する。プログラムメモリ12は複数（一例では４つ）の出力端子を具え、これらの出力端子が複数の各別のデータ処理ユニット14−1,14−2,...14−Ｎ（一例としてそれらの３つを示す）及び拡張器18に結合される。データ処理ユニット14−1,14−2,..14−Ｎは接続手段16により相互接続される。拡張器18は接続手段16に結合された出力端子を有する。
データ処理ユニットとして、例えばALU（算術論理演算装置）型、乗算器型又はメモリ型のユニットを使用することができる。必要に応じ１以上の各タイプのユニットを含めることができる。各データ処理ユニット14−1,14−2,..14−Ｎはオペランド及び結果用の複数の入力端子及び出力端子を具え、その数はタイプに依存する。例えば、乗算器タイプのユニットは通常オペランドのための２つの入力端子と得られた積のための１つの出力端子を有するが、メモリタイプのユニットはデータ入力端子とデータ出力端子のみを有する（メモリは命令の一部としてアドレスを受信するか、メモリ自体が別の命令サイクルにおいて書込みが行われるアドレスレジスタを具えている）。これらの入力端子及び出力端子が接続手段16に接続される。図を簡単にするために、図１ではすべてのデータ処理ユニットの入力端子及び出力端子がそれらの数と無関係に一つの双方向矢印で示されている。
動作中にプログラムカウンタ10が順次の命令サイクルにおいてプログラムメモリ12に対する順次のアドレスを発生する。各アドレスに応答して、プログラムメモリ12はこのアドレスにより指定された位置に記憶されている命令ワードを読み出す。プログラムメモリ12はこの命令の種々のフィールドを出力する。これらのフィールドは種々のデータ処理ユニット14−1,14−2,..14−Ｎに対するコマンドフィールド及び拡張器18に対する制御フィールドを具える。データ処理ユニット14−1,14−2,..14−Ｎに対するコマンドフィールドの内容の例はALUに対しては"ADD"又は"SUBTRACT"コードであり、メモリユニットに対しては"LOAD"及び"STORE"コードである。
従って、このシステムは"VLIW"（超長大命令ワード）型である。プログラムの実行前におけるこのようなシステムのプログラミングにおいて、どの処理をどの命令サイクルにおいてどのデータ処理ユニット14−1,14−2,..14−Ｎにより実行する必要があるか決定される。次に各命令サイクルに対し、当該サイクル中に実行すべき処理のためのすべてのコマンドフィールドを含む命令ワードが形成される。このように形成された命令ワードがその後の実行に備えてプログラムメモリ12に蓄積される。命令ワードの形成は手動的に、又は必要に応じ既知のVLIWコパイラ技術により実現することができる。
コマンドフィールドの内容に応じて、データ処理ユニット14−1,14−2,..14−Ｎがそれらの入力端子及び出力端子にデータを受信し及び／又は発生する。データ処理ユニット14−1,14−2,..14−Ｎにより発生されたデータは接続手段16を経て、別のデータ処理ユニットに対する入力として作用する。この接続手段により設定される接続は拡張器18に供給される制御フィールドの制御の下で制御される。
拡張器18は、例えば接続手段16のための制御信号のレパートリを蓄積するメモリとして構成される。このメモリのアドレス入力端子17はプログラムメモリ12の出力端子に結合され、命令ワードの制御フィールドを受信し、このメモリの出力端子が接続手段16の制御入力端子19に結合され、この制御入力端子にアドレスされたメモリ位置の制御信号を供給する。制御フィールドは制御信号より少数のビットを有するため、制御フィールドはプログラムメモリにおいて可能な全制御信号の記憶に必要とされるスペースより小さいスペースを占める。従って、発生しうる制御信号のレパートリは、接続手段16の制御入力端子19において機能する実現可能な全制御信号の集合内の部分集合を構成する。
この場合は、プログラムメモリ12の出力端子を接続手段16の制御入力端子19に直接結合し、各データ処理ユニット14−1,14−2,..14−Ｎの接続を他のデータ処理ユニットの接続と独立に制御しうるようにする場合と区別する必要がある（２つのデータ処理ユニットが別のデータ処理ユニットの同一の入力端子に対するデータのソースとして作用する場合のような矛盾は無視する）。独立制御の場合には、制御信号の集合は次のように数学的に可約である。
この可約性は次のように定義される。複数のデータ処理ユニットのうちの一つを取り、且つ制御信号の集合を複数の部分集合に、各部分集合において前記一つのデータ処理ユニットにより設定される接続は同一であるが、これらの接続は部分集合ごとに相違するように分割する。次に、部分集合相互の写像が、互の写像である各対の制御信号が他のデータ処理ユニット間に前記一つのデータ処理ユニットと同一の接続を発生するように存在するか検査する（矛盾は無視する）。このような写像が存在するとき、制御信号の集合は前記一つのデータ処理ユニットに対し可約であるという。発生しうる制御信号の集合がデータ処理ユニットの各々に対し可約である場合には、発生しうる制御信号のセットは可約であるという。
本発明に従って拡張器18を使用するとき、発生しうる制御信号の集合は既約である。これは接続手段16の制御の自由度の制限を構成する。しかし、かなり大きな制限でもデータ処理システムの性能に殆ど影響がないことが確かめられた。
図２は本発明データ処理システムの第２の実施例を示す。この実施例もプログラムメモリ22に結合されたプログラムカウンタ20を具える。プログラムメモリ22のデータ出力端子は一方では各々ｎビット（本例では例えばｎ＝５）の幅を有する命令バスのシステム222に結合されるとともに、他方ではｔビット（本例では例えばｔ＝５）の幅を有する拡張器230の入力端子に結合される。この拡張器は第１及び第２組の出力ライン232、234を具える。第１組232の各出力ラインはｋビット（本例では例えばｋ＝３）の幅を有し、第２組234の各出力ラインはｓビット（本例では例えばｓ＝４）の幅を有する。
第１組232の出力ラインは各別の命令選択レジスタ25−1,25−2,..25−Ｎに結合される。命令選択レジスタ25−1,25−2,..25−Ｎは各別の命令セレクタ27−1,27−2,..27−Ｎに結合される。命令セレクタ27−1,27−2,..27−Ｎは命令バスシステム222と各別のデータ処理ユニット24−1,24−2,..24−Ｎとの間に配置される。
拡張器230の第２組の出力ライン234は接続手段26に結合される。データ処理ユニット24−1,24−2,..24−Ｎは接続手段26を介して相互接続される。接続手段26内において、第２組の出力ラインが各別のデータ選択レジスタ262−1,262−2,..262−Ｎに結合される。データ選択レジスタ262−1,262−2,..262−Ｎは各別のデータセレクタ264−1,264−2,..264−Ｎに結合される。データセレクタ264−1,264−2,..264−Ｎは一組のデータバス266（各々ｍビット、本例では例えばｍ＝16ビットの幅を有する）と各別のデータ処理ユニット24−1,24−2,..24−Ｎとの間に配置される。
データ処理ユニット24−1,24−2,..24−Ｎのうちの一つは例えばプログラム制御ユニット（PCU）であり、例えば分岐コマンドを実行するためにプログラムカウンタ20に接続され（図示せず）、プログラムカウンタの内容が変更される。更に、プログラム制御ユニット24−１は条件付き分岐コマンド用の状態情報を受信するために他のデータ処理ユニット24−2,..24−Ｎへの接続（図示せず）を具えている。更に、プログラム制御ユニット24−１は命令の複数のコマンドフィールド間に分配しうるいわゆる”即値”データの転送のために接続手段に接続される。
接続手段26は次のように動作する。拡張器230から発生する第２組の出力ライン234上の制御信号は選択レジスタ262−1,262−2,..262−Ｎに蓄積される。これらの制御信号はデータセレクタ264−1,264−2,..264−Ｎによりデータ処理ユニット24−1,24−2,..24−Ｎ間に設定される接続を制御する。
データ処理ユニット、例えば24−２がその出力端子に、別のデータ処理ユニット、例えば24−Ｎにオペランドとして要求されたデータを発生する場合、送信データ処理ユニット24−２の出力端子はデータセレクタ264−２を経てデータバス266の一つに接続される。このデータバスは次いで受信データ処理ユニット24−Ｎと関連するセレクタ264−Ｎを経て受信データ処理ユニット24−Ｎの入力端子に接続される。別のデータ処理ユニットの出力端子を同時に一つのデータ処理ユニット、例えば24−１に接続することができ、また２つのデータ処理ユニット、例えば24−１及び24−２に接続することさえできる。
選択レジスタ262−1,262−2,..262−Ｎを使用する結果として、制御信号を実際の制御前に拡張器230により命令サイクル内に発生させることができる。従って、拡張器230がこれらの制御信号を形成するのに要する時間がシステムの命令実行速度を低減することはない。
図３は拡張器230とデータ処理システムの一部に対し所望のごとく使用しうる一つのデータ処理ユニット24−１との間の接続の他の実施例に示す。図２に対応する部分は図２と同一の番号で示す。図３は、図２に加えて、コマンドレジスタ35も示し、このレジスタの出力端子はデータ処理ユニット24−１のコマンド入力端子への接続36を具えている。その結果、拡張器230から出る制御信号の一部分をデータ処理ユニット24−１のコマンドとして直接使用することができる。例えば、データ輸送に密接に関連するコマンド（例えば、データ処理ユニット24−１がメモリユニットである際におけるデータの読み出し時の”インクリメントアドレスポインタレジスタ”）を発生させることができる。
図４は一つのデータ処理ユニット24−１の実施例を示す。この実施例は機能ユニット441と、複数のレジスタ442、443、444を具える。機能ユニット441は命令入力端子に結合され、レジスタ442、443、444はデータ端子と機能ユニットとの間に結合される。一例として、ここでは２つのレジスタ442、443が入力レジスタとして、一つのレジスタ444が出力レジスタとして示されている。機能ユニット441は動作中コマンドを実行し、このとき入力レジスタ442、443からのデータを処理し、結果を出力レジスタ444に記憶する。ライン266を経てレジスタ442、443まで及びレジスタ444から延在するデータ接続の組み合わせは制御信号を用いて独立に制御することができる。しかし、既約セットの組み合わせの使用を満足するため、拡張器230を簡単化することができる。
命令バスシステム222はデータ処理ユニット24−1,24−2,..24−Ｎの数より少数のバスを具える。これは、同時に制御しうるデータ処理ユニット24−1,24−2,..24−Ｎの数を性能を大きく低下することなく制限することができるという認識に基づく。従って、プログラムメモリ22をワイドにしてすべてのデータ処理ユニット24−1,24−2,..24−Ｎに対するコマンドフィールド（各コマンドフィールドは一つのデータ処理ユニットに対する各自のコマンドを形成する）を並列に出力しうるようにする必要はなく、少数のコマンドフィールドを並列に出力するようにすれば十分である。命令セレクタ27−1,27−2,..27−Ｎがこれらのコマンドフィールドを命令バスシステム222を経て、所定のクロックサイクルにおいて同時にアクティブにする必要があるデータ処理ユニットへ供給する。命令セレクタ27−1,27−2,..27−Ｎは他のデータ処理ユニット24−1,24−2,..24−Ｎに、例えば慣例の如くNOP（ノーオペレーション）コマンドを供給する。
コマンドフィールドの供給は拡張器230により制御される。拡張器230はプログラムメモリ22から、プログラムメモリ22からの命令のどの部分をデータ処理ユニット24−1,24−2,..24−Ｎのどの組合せに供給する必要があるかを示す命令ワードの一部分を受信する。Ｎ個のデータ処理ユニット24−1,24−2,..24−Ｎを同時に使用し、各々がＰ個の異なる制御信号に応答する命令セレクタ27−1,27−2,..27−Ｎを具える場合には、全部でPN個の制御信号が実現可能である。
しかし、適当なプログラマビリティに対しては、命令バスシステム22とデータ処理ユニット24−1,24−2,..24−Ｎとの間のPN個の実現可能な接続の組合せの全てを選択可能にする必要があるわけではない。従って、拡張器230は全実現可能な組合せの部分集合を構成する組合せのレパートリに対する制御信号のみを出力する。必要な変更を加えて、このレパートリは上述した意味で既約でもあるため、このレパートリはPNより少数の制御信号を含む。プログラムメモリ22から拡張器230へ供給される命令の一部分に基づいて一時に一つの制御信号がレパートリから選択される。この制御信号はレジスタ25−1,25−2,..25−Ｎにロードされ、命令セレクタ27−1,27−2,..27−Ｎに供給される。
例えば、所定のデータ処理ユニットの出力端子が接続されるバスを決定する制御フィールドのビットが別のデータ処理ユニットの入力端子が接続されるバスも決定することもできる。
また、命令セレクタ27−1,27−2,..27−Ｎにより設定しうる接続とデータセレクタ264−1,264−2,..264−Ｎにより設定しうる接続の独立制御も必要ないことが確かめられた。この事実を利用して拡張器230を簡単化し、この拡張器がプログラムメモリ22から受信される命令に応答して、命令セレクタ27−1,27−2,..27−Ｎに対する制御信号とデータセレクタ264−1,264−2,..264−Ｎに対する制御信号の限定された数の組合せのみを供給しうるようにする。
従って、データセレクタ264−1,264−2,..264−Ｎ及び命令セレクタ27−1,27−2,..27−Ｎに対し発生しうる制御信号の集合はデータ選択と命令選択の積に減らすことはできない。これに関連して、データ選択と命令選択の積への可約性は次のように定義される。データセレクタ264−1,264−2,..264−Ｎ及び命令セレクタ27−1,27−2,..27−Ｎに対し発生しうる制御信号の集合を複数の部分集合に分割し、各部分集合において命令セレクタ27−1,27−2,..27−Ｎの制御を同一にする。次に、部分集合相互の写像が、互の写像である各対の制御信号がデータセレクタ264−1,264−2,..264−Ｎの同一の制御を生ずるように存在するか検査する。このような写像が存在しない場合には、制御信号の集合はデータ及び命令選択の積に減らすことはできない。
この場合には、BI個の異なる制御信号を命令セレクタ27−1,27−2,..27−Ｎに対し発生することができ、且つBD個の制御信号をデータセレクタ264−1,264−2,..264−Ｎに対し発生することができれば、これらの制御信号のBI×BDより少数の組合せを発生させることができる。
また、図４のコマンドレジスタ35にロードされたコマンドをデータセレクテ264−1,264−2,..264−Ｎにより設定されたデータ接続と独立に制御する必要もないことが確かめられた。この事実も利用して拡張器230を、プログラムメモリ22から受信される命令に応答してコマンドレジスタ35に対するコマンドとデータセレクテ264−1,264−2,..264−Ｎに対する制御信号の限定された数の組合せのみを供給しうるように簡単化する。
図面及び関連する説明は本発明の特定の実施例に関するものであり、本発明はこれに限定されるものではないこと明らかである。例えば、種々のバス及び種々のデータ処理ユニットに対する種々の信号接続をどこでも同一番号のラインで表しているのは純粋に説明のためであり、実際にはこれらの番号はバスごとに及びデータ処理ユニットごとに相違させることができる。
更に、拡張器18、230は上述のように各メモリ位置に異なる制御信号が蓄積されたメモリとして構成することができる。この場合には、プログラムメモリ12、22は拡張器18、230内のメモリに対するアドレスを供給し、拡張器18、230内のメモリが制御信号を読み出されたデータとして供給する（拡張器18、230内のメモリはその内容の変更の要非に応じてRAM又はEPROMとすることができる）。メモリの代わりに、拡張器18、230は同一の入力／出力関係を有する特別設計の論理回路を含むものとすることができる。一般に、この場合には殆どの制御信号に対し多くの選択信号がイナクティブになるため、この回路の構成はROMバージョンより小形にすることができる。更に、例えばデータセレクタ264−1,264−2,..264−Ｎの機能はデータ処理ユニット24−1,24−2,..24−Ｎにおいて実現することができる。
プログラムメモリ12、22に格納されるプログラムは人間のプログラマが書き込むことができるが、この目的用に構成されたコンパイラを用いることもできる。このコンパイラはデータ処理ユニット24−1,24−2,..24−Ｎに必要とされる命令及びこれらのデータ処理ユニット間の所要の接続の計画を行う。拡張器18、230を制御しうる接続が予め定められている場合には、コンパイラは計画された接続を実行するためにこれらの接続の一つを選択する必要があり、且つ拡張器18、230を制御する関連コードをプログラムに含める必要がある。
計画された接続が使用可能な接続の部分集合内に得られない場合には、プログラムの再整理が必要である。例えば、コンパイラは所定のデータ処理ユニットによる命令の実行を１クロックサイクルだけ延期することができる。このとき所要のオペランドは１クロックサイクル中このオペランドを発生するデータ処理ユニット内のレジスタに記憶されたままになる。使用可能な接続の部分集合においてデータ処理ユニット間の少なくともすべてに１対１接続を含めるのが望ましい。この場合には、全てのプログラムを、必要に応じ後に実行すべき命令により実行することが可能になる。これは低速プログラムを生ずる恐れがある。しかし、実際にはこれらの低速化は使用しうる接続を適切に選択することにより殆ど目立たなくなることが確かめられた。
しかし、コンパイラ自身が拡張器18、230により接続のどの部分集合を設定しうるかを決定するようにすることもできる。この目的のために、コンパイリング中にコンパイラは必要とされる接続の記録を保持し、拡張器がこれらの接続を正確に設定しうるようにする。この場合にはコンパイラが各タイプの接続が何回発生したか計数することもできる。極めて稀にしか発生しない接続のタイプはその後にプログラムの再整理により除去することができるため、拡張器を簡単化するとともにプログラムメモリを縮小することができる。
【図４】
0003638284.tif 000002
【図１】
0003638284.tif 000003
【図２】
0003638284.tif 000004
【図３】
0003638284.tif 000005