JP4530042B2 - プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 - Google Patents

プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 Download PDF

Info

Publication number
JP4530042B2
JP4530042B2 JP2007528287A JP2007528287A JP4530042B2 JP 4530042 B2 JP4530042 B2 JP 4530042B2 JP 2007528287 A JP2007528287 A JP 2007528287A JP 2007528287 A JP2007528287 A JP 2007528287A JP 4530042 B2 JP4530042 B2 JP 4530042B2
Authority
JP
Japan
Prior art keywords
logic blocks
valid data
microinstruction
data
processor
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
JP2007528287A
Other languages
English (en)
Other versions
JPWO2006121046A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2006121046A1 publication Critical patent/JPWO2006121046A1/ja
Application granted granted Critical
Publication of JP4530042B2 publication Critical patent/JP4530042B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Description

本発明はマイクロプログラムを実行するプロセッサアレイに係り、特にそのマイクロプログラムの制御方法および制御装置に関する。
プロセッサアレイは、単一プロセッサの逐次処理と異なり、多数のプロセッサエレメントの並列処理によって高速データ処理を実現できることから大いに注目されており、これまでに様々な提案がなされている。以下、図1を参照しながら従来例を簡単に説明する。図1(A)はプロセッサアレイの一般的な構成を示す回路図であり、(B)は従来のプロセッサアレイの命令系統の一例を概略的に示すブロック図である。
特開2001−312481号公報(特許文献1)には、図1(A)に示すように、多数のプロセッサエレメント(PE)1が2次元アレイ状に配列され、プログラマブル配線100よってプログラマブルに接続されたプロセッサアレイが開示されている。プロセッサエレメント1の各々は、図1(B)に示すように、演算器およびスイッチを含むロジックブロック2とマイクロプログラムメモリ3’とから構成されており、各ロジックブロックの演算器やスイッチの機能は、そのマイクロプログラムメモリ3’から出力される命令によって決定される。スイッチ機能を例に取れば、プログラマブル配線間の接続状態を設定したり、プログラマブル配線からの演算器入力の選択や演算結果の出力先となるプログラマブル配線の指定をしたりする。マイクロプログラムメモリ3’は複数の命令を保持しており、いずれの命令を出力するかはシーケンサ200によって生成されるアドレス信号4によって決定される。
ところが、実際には、命令によって同時に制御されるのは、ロジックブロック内の一部の演算器やスイッチであることが多い。言い換えれば、アドレス信号4によって指定された命令は、実施の命令として使用されるのはその一部のみであり、残りはデフォルト値(たとえば論理値0)としてマイクロプログラムメモリ3を無駄に占有している。
このような命令によるメモリの無駄な占有を回避するための方法が特開平7−175648号公報(特許文献2)に開示されている。この方法のポイントは、命令のうち未使用フィールド(すなわちデフォルト値の部分)を省略してメモリに格納し、メモリから読み出すときに省略した未使用フィールドを元の状態に戻して1つの命令として使用する点にある。所定長の命令のどの位置に未使用フィールドがあるかを示す情報を付加する必要があるが、全体としてはメモリの節約が可能となる(段落0013〜0022、図1、図2参照)。
特開2001−312481号公報 特開平7−175648号公報
しかしながら、特許文献2に記載されたメモリ節約方法は、単一プロセッサを前提としたものであり、これをそのままプロセッサアレイに適用しても効果的なメモリ節約を達成することはできない。単一プロセッサとは異なり、プロセッサアレイはプログラマブル配線100を有しているので、各プロセッサエレメントのロジックブロックには格段に多くのスイッチが設けられている。このため、単一プロセッサに比べてマイクロプログラムメモリの無駄がはるかに多くなり、特許文献2に記載されたメモリ節約方法では十分なメモリ削減効果を得ることができないからである。
本発明は、上記従来の課題を解決するものであり、プログラマブルに接続された複数のロジックブロックの配列を有するプロセッサアレイにおいて、前記複数のロジックブロックの配列に対応して配列され、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報とを格納する複数のメモリ手段と、前記複数のメモリ手段の各々と前記複数のマイクロ命令を供給すべき複数のロジックブロックとを接続し、前記制御情報に基づいて前記有効データ部および所定データから前記複数のロジックブロックの各々の機能を決定するマイクロ命令を生成するマイクロ命令生成手段と、を有することを特徴とする。
言い換えれば、プロセッサアレイの互いに隣接した複数のプロセッサエレメントのマイクロプログラムメモリを共有化し、共有化されたマイクロプログラムメモリに有効データとその位置情報を格納し、有効データを含む有効データ部を複数のプロセッサエレメントのロジックブロックで融通しあう。
望ましくは、複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成手段は前記複数のメモリ手段をそれぞれ上下方向に隣接する2つのロジックブロックに接続する。
本発明の一実施形態によれば、マイクロ命令生成手段は、複数のメモリ手段の各々を隣接する2つのロジックブロックに接続し、かつ、前記複数のロジックブロックの各々を隣接する2つのメモリ手段に接続することが望ましい。
本発明の一側面によるプロセッサエレメント複合体は、他のロジックブロックとプログラマブルに接続可能な複数のロジックブロックと、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報とからなる符号化命令を複数個格納するメモリ手段と、アドレス信号に従って前記複数の符号化命令の1つを指定するアドレスデコーダと、前記メモリ手段と前記複数のロジックブロックとを接続し、指定された符号化命令の前記制御情報に基づいて、前記有効データ部および所定データから前記複数のロジックブロックの各々の機能を決定するマイクロ命令を復号化する復号化手段と、を有することを特徴とする。
上述したマイクロ命令生成手段あるいは復号化手段は、好ましい実施例として、各ロジックブロックに対応して設けられ、前記制御情報に従って前記有効データ部および前記所定データのいずれかを選択し、前記マイクロ命令を構成する複数の区間データをそれぞれ生成する複数のセレクタからなる。
本発明の他の側面によるプロセッサアレイは、複数の同等なロジックブロックB1〜BN(Nは2以上の整数)と、前記ロジックブロックの各々に付随する複数のセレクタと、前記ロジックブロックB1〜BNに対応して配列された複数のマイクロプログラムメモリP1〜PN-1とを有し、前記ロジックブロックB1〜BNの各々は、演算器と、ロジックブロック間をプログラマブルに接続するスイッチとを含み、前記マイクロプログラムメモリP1〜PMの各々に格納されている複数の命令の各々は、位置情報と複数の有効データ部とを含み、任意のロジックブロックBi(i=2,・・・,N−1)に付随する前記複数のセレクタのうち第1のグループは、マイクロプログラムメモリMi-1から前記位置情報と前記複数の有効データ部とを供給され、前記複数のセレクタのうち第2のグループはマイクロプログラムメモリMiから前記位置情報と前記複数の有効データ部とを供給され、前記複数のセレクタの各々は、前記位置情報に含まれるデータに基づいて、前記複数の有効データ部と既定値とから一つを選択して区間命令として出力し、前記複数のセレクタから出力される区間命令によって、対応するロジックブロックの機能が決定され、各ロジックブロックの前記区間命令の合計データ幅より、前記マイクロプログラムメモリの前記複数の有効データ部の合計データ幅が小さい、ことを特徴とする。
本発明のさらに別の側面によるマイクロ命令制御装置は、前記複数のロジックブロックの配列に対応して配列され、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報とを格納する複数のメモリ手段と、前記複数のメモリ手段の各々と前記複数のマイクロ命令を供給すべき複数のロジックブロックとを接続し、前記制御情報に基づいて前記有効データ部および所定データから前記複数のロジックブロックの各々の機能を決定するマイクロ命令を生成するマイクロ命令生成手段と、ことを特徴とする。
本発明のさらに別の側面によるマイクロ命令制御方法は、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報とからなる符号化命令を複数個格納し、アドレス信号に従って前記複数の符号化命令から1つを指定し、指定された符号化命令の前記制御情報に基づいて、前記有効データ部および所定データから前記複数のロジックブロックの各々の機能を決定するマイクロ命令を復号し、前記復号されたマイクロ命令を対応するロジックブロックへ供給する、ことを特徴とする。
本発明によれば、マイクロプログラムメモリを複数のプロセッサエレメントで共有し、マイクロプログラムメモリに格納するデータは有効データに基づいたものであるために、マイクロプログラムメモリの面積を縮小でき、プロセッサアレイにおけるメモリスペースを大幅に削減することができる。
また、従来は上下に並んでいたプロセッサエレメントのマイクロプログラムメモリを共有化することで、ロジックブロックの横幅を従来のプロセッサエレメントの横幅と同じか、わずかな変更で済むように構成することができる。ロジックブロックの演算器やスイッチの配置を再設計しなくてよいか、または軽微な変更で済むという効果がある。
さらに、複数のメモリ手段の各々を隣接する2つのロジックブロックに接続し、かつ、複数のロジックブロックの各々を隣接する2つのメモリ手段に接続することで、回路構成が大幅に簡単になり、回路面積や遅延を減らすことができる。さらに、有効データや制御情報を転送する範囲が狭くなるので、配線の長さも短くて済むというメリットもある。しかも、1つのロジックブロック当たり最大で4つの有効データを使えるなど、有効データの融通性も向上する。
1.第1実施形態
1.1)プロセッサアレイ
図2は本発明の第1実施形態によるプロセッサアレイを従来のプロセッサアレイと比較して説明するために用いられ、(A)は本発明の第1実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。ここでは、図を煩雑にしないために2行4列のプロセッサエレメントだけを図示しているが、所望の数のプロセッサエレメントが配列されても同様である。
図2(A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレメント複合体300が配列されており、各プロセッサエレメント複合体300に対してシーケンサ200からアドレス信号4が出力される。プロセッサエレメント複合体300は、後述するように、2つのロジックブロック2aおよび2bと、それらに対する命令を格納する共有化マイクロプログラムメモリ3とを有する。
プロセッサエレメント複合体300のロジックブロック2aおよび2bは、図2(B)に示すように、従来は横方向に隣り合って独立していた2つのプロセッサエレメント1aおよび1bのロジックブロックにそれぞれ対応する。したがってロジックブロック2aおよび2bは同じ回路である。
また、プロセッサエレメント複合体300の共有化マイクロプログラムメモリ3は、従来のプロセッサエレメント1aおよび1bのマイクロプログラムメモリ3aおよび3bを統合したものである。後述するように、共有化マイクロプログラムメモリ3には圧縮された命令が複数個格納されており、シーケンサ200から入力したアドレス信号4に従って1つの圧縮命令が読み出される。読み出された圧縮命令から2つのマイクロ命令を復号し、それらによってロジックブロック2aおよび2bがそれぞれ制御される。各マイクロ命令による対応ロジックブロックの制御は従来と同様である。
このようにマイクロプログラムメモリを複数のプロセッサエレメントで共有することで、マイクロプログラムメモリの面積を縮小することができる。
1.2)プロセッサエレメント複合体
図3は本発明の第1実施形態によるプロセッサエレメント複合体の構成を示すブロック図である。プロセッサエレメント複合体300は、2つのロジックブロック2aおよび2bと、複数の圧縮命令を格納する共有化マイクロプログラムメモリ3と、ロジックブロック2aおよび2bへそれぞれ与えられる2つのマイクロ命令を生成するための復号部と、を有する。復号部は、後述するように、ロジックブロック2aに付随するセレクタ7.1a〜7.4aとロジックブロック2bに付随するセレクタ7.1〜7.4bとから構成される。
共有化マイクロプログラムメモリ3は、アドレス信号4をデコードするアドレスデコーダ5と複数の命令を格納するメモリコア30とを有し、アドレス信号4に応じて複数の命令のうち一つを復号部へ出力する。
本実施形態におけるマイクロ命令は4つの区間命令から構成され、各区間命令は1つのセレクタによって生成される。すなわち、4つのセレクタ7.1a〜7.4aによりそれぞれ生成される区間命令6.1a〜6.4aは1つのマイクロ命令として一方のロジックブロック2aに入力し、他方のロジックブロック2には、4つのセレクタ7.1a〜7.4bによりそれぞれ生成される区間命令6.1b〜6.4bが1つのマイクロ命令として入力する。
また、本実施形態における共有化マイクロプログラムメモリ3に格納された各命令10は、3つの有効データ部11.1〜11.3とそれら有効データ部の位置を示す位置情報(SC)13とからなる。位置情報13には、後述するように、各セレクタに対して有効データおよびデフォルト値のいずれか一方を区分命令として指定する選択制御データ8.1a〜8.4aおよび8.1b〜8.4bが書き込まれている。
共有化マイクロプログラムメモリ3の有効データ部11.1のデータはセレクタ7.1a〜7.4aおよびセレクタ7.1〜7.2bにそれぞれ出力され、有効データ部11.2のデータはセレクタ7.2a〜7.4aおよびセレクタ7.1〜7.3bに、有効データ部11.3のデータはセレクタ7.3a〜7.4aおよびセレクタ7.1〜7.4bに、それぞれ出力される。セレクタ7.1a〜7.4aは位置情報13の選択制御データ8.1a〜8.4aによってそれぞれ選択制御され、セレクタ7.1〜7.4bは選択制御データ8.1b〜8.4bによってそれぞれ選択制御される。たとえば、セレクタ7.4aは3つの有効データ部11.1〜11.3から入力するので、その選択制御データ8.4aに従って、3つ入力データおよび1つのデフォルト値から1つの出力を選択する。
図3において、有効データ部11.1〜11.3の各データ幅は、区間命令6.1a〜6.4aおよび6.1b〜6.4bの各データ幅と同じである。ロジックブロック2aおよび2bの各々が必要とする命令のデータ幅は、区間命令6.1a〜6.4a(あるいは6.1b〜6.4b)のデータ幅の合計と同じである。したがって、たとえば3個すべての有効データ部11.1〜11.3を一方のロジックブロックに割り当てたとしても、当該ロジックブロックの命令データ幅には不足する。この場合、不足するデータはデフォルト値が使われる。
既に説明したように、1つのマイクロ命令のうち、すべてのビットが有効な情報として使われる場合は少ないので、ほとんどの場合は本実施形態のように3つの有効データ部を用意することで間に合う。もし命令の全ビットを使用する必要が生じた場合は、次に説明するように、その命令を複数命令に分割して実行することで対処可能である。その場合、所要クロック数は増えるが、プログラム全体でそのような事態がわずかな回数しか起こらなければ、全体の性能はほとんど変わらない。
1.3)メモリ節約法
図4(A)は、従来の独立した隣接プロセッサエレメントにおけるマイクロプログラムメモリコア30aおよび30bに格納された複数のマイクロ命令の一例を示した模式図、(B)は本発明の第1実施形態におけるメモリコア30に格納された複数の圧縮命令を示した模式図、(C)は1つの圧縮命令における位置情報13のフォーマットを示す模式図である。
図4(A)において、マイクロプログラムメモリコア30aおよび30bの各々には、5つのワードデータ(1ワードデータはプロセッサエレメントの1マイクロ命令に相当する)が順に格納されており、白い部分が有効なビット、斜線ハッチング部分が無効なビット(デフォルト値)を示すものとする。本実施形態では、各々のメモリコア内のワードデータを上述した区間命令に相当する区間データに分割する。ここでは、1ワードデータを4等分した4つの区間データを例示する。
図4(A)に示す例では、マイクロプログラムメモリコア30aの先頭行(図の最下行)に格納されたワードデータ(マイクロ命令)には先頭の区間データAと後尾の区間データBとにそれぞれ有効ビットが存在し、その他の区間データはすべて無効ビットである。またマイクロプログラムメモリコア30bの先頭行(図の最下行)に格納されたワードデータすべて無効ビットである。区間データのなかに有効なビットが含まれていれば、その区間データを「有効データ」とし、そうでない場合には「無効データ」とする。従って、図4(A)では、区間データA〜Lが有効データである。
このような隣接プロセッサエレメントにおけるマイクロプログラムメモリコア30aおよび30bに格納されたワードデータは順位ごとに統合され、図4(B)に示すように、有効データA〜Lのみがそれらの位置情報と共に共有化マイクロプログラムメモリ30に格納される。図4(B)において、共有化マイクロプログラムメモリコア30の各圧縮命令は、位置情報(SC)13と3個の有効データ部11.1〜11.3とからなる。有効データ部11.1〜11.3は、図4(A)における統合ワードデータの3つの区間割当にそれぞれ対応している。たとえば、有効データAは統合ワードデータ10.1の左端に位置するので有効データ部11.1に、有効データBは中央2列に位置するので有効データ部11.2に、それぞれ書き込まれる。
このように、図4(A)の統合ワードデータ10.1〜10.4は有効データの個数が3以下であるから、図4(B)の共有化マイクロプログラムメモリ30の圧縮命令10.1〜10.4にそれぞれ対応して格納される。これに対して、統合ワードデータ10.5には4つの有効データI、J、K、Lが存在する。この場合には、図4(B)に示すように、2つの圧縮命令10.5および10.6を使って有効データI、J、K、Lを格納すればよい。読み出しのための所要クロック数は増えるが、プログラム全体でそのような事態がわずかな回数しか起こらないので、全体的な影響は極めて少なく性能面での低下はほとんど無い。
図4(C)に示すように、位置情報13は、セレクタ7.1a〜7.4aおよびセレクタ7.1b〜7.4bの選択動作をそれぞれ制御する選択制御データ8.1a〜8.4を順に格納したものである。この例の場合、セレクタ7.1aおよび7.4bは1つの有効データとデフォルト値のうち一方を選択するので、選択制御データ8,1aおよび8.4bは1ビットであればよい。そのほかのセレクタ7.2a〜7.4aおよび7.1b〜7.3bは2つあるいは3つの有効データとデフォルト値のうち一つを選択するので選択制御データ8.2a〜8.4aおよび8.1b〜8.3bは2ビット必要である。
たとえば、図4(B)の圧縮命令10.1では、第1区間データである有効データAは有効データ部11.1に、第4区間データである有効データBは有効データ部11.2にそれぞれ書き込まれているので、その位置情報13は次のように設定される。選択制御データ8.1aは有効データ部11.1からの有効データを選択するための1ビットデータ(たとえば“1”)、選択制御データ8.2aおよび8.3aはデフォルト値を選択するための2ビットデータ(たとえば“00”)、選択制御データ8.4aは有効データ部11.2からの有効データを選択するための2ビットデータ(たとえば“10”)、選択制御データ8.1b〜8.4bはデフォルト値を選択するための2ビットデータ(たとえば“00”)となる。
1.4)動作
次に、共有化マイクロプログラムメモリ30に図4(B)および(C)に示す圧縮命令が格納されている場合を例にとって、図3に示すプロセッサエレメント複合体300の動作を簡単に説明する。
たとえば、アドレス信号4によって図4(B)の圧縮命令10.1が指定され、共有化プログラムメモリ30から読み出されたとすると、有効データ部11.1に格納された有効データAはセレクタ7.1a〜セレクタ7.2bに、有効データ部11.2に格納された有効データBはセレクタ7.2a〜セレクタ7.3bに、それぞれ出力される。位置情報13には、有効データ部11.1からの有効データを選択するための1ビット選択制御データ8.1a、デフォルト値を選択するための2ビット選択制御データ8.2aおよび8.3a、有効データ部11.2からの有効データを選択するための2ビット選択制御データ8.4a、および、デフォルト値を選択するための2ビット選択制御データ8.1b〜8.4bからなる。これらの選択制御データ8.1a〜8.4bがそれぞれセレクタ7.1a〜7.4bに出力される。
したがって、セレクタ7.1aからは有効データAである区間命令6.1aがロジックブロック2aへ出力され、セレクタ7.2aおよび7.3aからはデフォルト値である区間命令6.2aおよび6.3aが、セレクタ7.4aからは有効データである区間命令6.4aがロジックブロック2aへ出力され、さらに、セレクタ7.1b〜7.4bからはデフォルト値である区間命令6.1b〜6.4bがロジックブロック2bへ出力される。こうして、ロジックブロック2aおよび2bにそれぞれ1つのマイクロ命令が与えられる。
図4(B)の圧縮命令10.5および10.6のように1クロック命令であったものを複数クロックに分割した場合は、1つのクロックにより圧縮命令10.5が読み出され、上述したように有効データIが区間命令6.1a、デフォルト値が区間命令6.2a、有効データJおよびKがそれぞれ区間命令6.3aおよび6.4a、デフォルト値が区間命令6.1b〜6.3bとして各セレクタに保持され、さらに、次のクロックにより圧縮命令10.6が読み出され、有効データLが区間命令6.4bとして保持され、これら区間命令6.1a〜6.4aおよび6.1b〜6.4bがロジックブロック2aおよび2bへそれぞれ出力される。
なお、図3に示すブロック図は、位置情報13と各セレクタとの間に回路を含まない最も高速な回路の例である。位置情報13と各セレクタとの間にデコーダを挿入し、位置情報13のビット幅を削減することは、当該分野の技術を有するものであれば容易に実施可能である。
また、上述したように、図4(A)で示した従来のマイクロプログラムメモリのデータ形式は、あらかじめ図4(B)に示した形式に変換する必要がある。すなわち従来のマイクロプログラムから有効データを切り出し、その出力位置を指定する選択制御データを作成し、それらを共有化マイクロプログラムメモリ30の所定のワードデータ内に格納しなければならない。この変換処理は専用のソフトウエアによって行うことができる。また、このソフトウエアはコンパイラに含まれていてもよい。
既述のようにプロセッサアレイにおけるプロセッサエレメントの場合、単一プロセッサにはないプログラマブル配線用のスイッチを多量に持っており、このため命令の中で同時に使う有効データの割合は単一プロセッサに比べて大幅に低下する。
1.5)効果
図5はプロセッサアレイの動作説明のための回路図である。図5に示すように、プロセッサアレイでは単一プロセッサにはない固有の現象が生じることがある。ここで、白い四角で示されたプロセッサエレメント(たとえば1a)は、命令の多くの部分が有効なデータが占められており、斜線ハッチングの四角で示されたプロセッサエレメント(たとえば1b)は、命令の多くの部分が無効なデータ(デフォルト値)で占められるものとする。
このように、多数のプロセッサエレメントが一様に使われることはほとんどなく、プロセッサエレメントごとに命令に占める有効なデータの割合が異なることが多い。さらに、プロセッサアレイでは、図5に示したような有効データ割合の分布パターンは、クロックごとに変化していく。従来の単一プロセッサを前提としたマイクロプログラムメモリ節約法では、このようなプロセッサエレメントごとの有効データ量の違いにまったく対応できない。
これに対して、本実施形態によれば、2つのプロセッサエレメントで1つのマイクロプログラムメモリを共有しているので、プロセッサエレメントごとの有効データ量の違いを積極的に利用して従来に比べて大幅なマイクロプログラムメモリの節約を実現できる。たとえば、図3において、ロジックブロック2aが多量の有効データを使用し、ロジックブロック2bが少量の有効データしか使わない場合、本実施形態によれば、両者で共有されている共有化マイクロプログラムメモリ3から多くの有効データをロジックブロック2aに割り当てることができ、2つのロジックブロックで必要に応じて有効データを融通しあうことが可能となる。したがって、全体として少ないマイクロプログラムメモリで処理が可能となる。
さらに、本実施形態では、使用するアドレスデコーダ5の数が従来に比べて少なくなるため、さらなる面積低減が実現する。
なお、図3に示すブロック図では、有効データを3個、ロジックブロック当たりの区間命令を4個で説明したが、本発明においてこれらの個数はこれに限定されるものではなく、任意であってよい。本実施形態の変形例については後述する。
2.第2実施形態
2つのプロセッサエレメントで1つのマイクロプログラムメモリを共有する仕方は第1実施形態の横方向に並んだプロセッサエレメントに限定されるものではない。上述した第1実施形態のプロセッサエレメント複合体では、図2(B)に示したように横に隣り合った2つのプロセッサエレメント1aおよび1bのマイクロプログラムメモリを共有化したものであるから、プロセッサエレメント1aおよび1bのマイクロプログラムメモリ3aおよび3bの横幅の合計より、図2(A)のプロセッサエレメント複合体300のマイクロプログラムメモリ3の横幅のほうが大幅に短くなる。これは2つのマイクロプログラムメモリの共有化に伴って、無効なデータ(デフォルト値)を省き、マイクロプログラムメモリのデータ幅の節減を行ったためである。これによって図2(A)に示すように、ロジックブロック2aおよび2bの横幅を従来の横幅(図2(B))に比べて縮小し演算器やスイッチの配置を設計し直す必要がある。
これに対して、本発明の第2実施形態によるプロセッサアレイは、上下に並んでいたプロセッサエレメント1aおよび1bのマイクロプログラムメモリ3aおよび3bを共有化することで、プロセッサエレメント複合体300におけるロジックブロック2aおよび2bの横幅を従来のプロセッサエレメントの横幅と同じか、わずかな変更で済むように構成することができる。このため、演算器やスイッチの配置を再設計しなくてよいか、または軽微な変更で済むというメリットがある。
図6は本発明の第2実施形態によるプロセッサアレイを従来のプロセッサアレイと比較して説明するために用いられ、(A)は本発明の第2実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。ここでは、図を煩雑にしないために2行4列のプロセッサエレメントだけを図示しているが、所望の数のプロセッサエレメントが配列されても同様である。
図6(A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレメント複合体300が配列されており、各プロセッサエレメント複合体300に対してシーケンサ200からアドレス信号4が出力される。プロセッサエレメント複合体300は、縦方向に並んだ2つのロジックブロック2aおよび2bと、それらに対する命令を格納する共有化マイクロプログラムメモリ3とを有する。
プロセッサエレメント複合体300のロジックブロック2aおよび2bは、図6(B)に示すように、従来は縦方向に隣り合って独立していた2つのプロセッサエレメント1aおよび1bのロジックブロックにそれぞれ対応する。したがってロジックブロック2aおよび2bは同じ回路である。
また、プロセッサエレメント複合体300の共有化マイクロプログラムメモリ3は、従来のプロセッサエレメント1aおよび1bのマイクロプログラムメモリ3aおよび3bを統合したものである。上述したように、共有化マイクロプログラムメモリ3には圧縮された命令が複数個格納されており、シーケンサ200から入力したアドレス信号4に従って1つの圧縮命令が読み出される。読み出された圧縮命令から2つのマイクロ命令を復号し、それらによってロジックブロック2aおよび2bがそれぞれ制御される。なお、プロセッサエレメント複合体300の構成は、図3と同じであるから説明は省略する。
3.第3実施形態
1つのマイクロプログラムメモリを共有するプロセッサエレメントの数は上記第1および第2実施形態のように2個に限定されるものではない。
図7は本発明の第3実施形態によるプロセッサアレイを従来のプロセッサアレイと比較して説明するために用いられ、(A)は本発明の第3実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。ここでは、図を煩雑にしないために2行4列のプロセッサエレメントだけを図示しているが、所望の数のプロセッサエレメントが配列されても同様である。
図7(A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレメント複合体300が配列されており、各プロセッサエレメント複合体300に対してシーケンサ200からアドレス信号4が出力される。プロセッサエレメント複合体300は、縦方向に並んだ2つのロジックブロック2aおよび2bと、それらに対する命令を格納する共有化マイクロプログラムメモリ3とを有する。
プロセッサエレメント複合体300のロジックブロック2a、2b、2cおよび2dは、図7(B)に示すように、従来は上下および左右方向に隣り合って独立していた4つのプロセッサエレメント1a、1b、1cおよび1dのロジックブロックにそれぞれ対応する。したがってロジックブロック2a、2b、2cおよび2dは同じ回路である。
また、プロセッサエレメント複合体300の共有化マイクロプログラムメモリ3は、従来のプロセッサエレメント1a、1b、1cおよび1dのマイクロプログラムメモリ3a、3b、3cおよび3dを統合したものである。上述したように、共有化マイクロプログラムメモリ3には圧縮された命令が複数個格納されており、シーケンサ200から入力したアドレス信号4に従って1つの圧縮命令が読み出される。読み出された圧縮命令から2つのマイクロ命令を復号し、それらによってロジックブロック2a、2b、2cおよび2dがそれぞれ制御される。
なお、第3実施形態によるプロセッサエレメント複合体300の構成は、制御対象のロジックブロックの数が増えたことによる相違を除いて、基本的には図3と同じである。すなわち、図3におけるロジックブロック2aおよび2bにロジックブロック2cおよび2dを追加し、それらに対応してセレクタを同様に追加する。メモリコア30に格納される命令10は、上述したように、各ロジックブロックの区間命令に対応する選択制御データを配列した位置情報13と複数の有効データ部とからなる。各有効データ部は、出力先となる所定数のセレクタが順次シフトするように接続される。この接続関係は、図3に示すメモリコア30と各セレクタとの接続関係の拡張に過ぎない。
4.第4実施形態
本発明によれば、1つのマイクロプログラムメモリにより複数のロジックブロックを制御するだけでなく、複数のマイクロプログラムメモリにより1つのロジックブロックを制御することも可能である。
図8は本発明の第4実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図である。ここでは、図を煩雑にしないためにライン状に配列されたプロセッサアレイを図示しているが、所望の数のプロセッサエレメントがエリア状に配列されても同様である。
図8において、本実施形態によるプロセッサアレイでは、複数のロジックブロック2iと複数の共有化マイクロプログラムメモリ3ijとがライン状に並行して配列され、1つの共有化マイクロプログラムメモリは2つのロジックブロックを制御し、1つのロジックブロックは2つの共有化マイクロプログラムメモリにより制御される。図8の記号に従ってiをa,b,cあるいはd、jをb,cあるいはdとすれば、1つの共有化マイクロプログラムメモリ3abは直近の2つのロジックブロック2aおよび2bを制御し、1つのロジックブロック2bは直近の2つの共有化マイクロプログラムメモリ3abおよび3bcにより制御される。
すなわち、マイクロプログラムメモリ3ijは、ロジックブロック2iおよび2jに有効データを分配する。図中の1つのマイクロプログラムメモリから2つのロジックブロックへ伸びる矢印9は各々のマイクロプログラムメモリが有効データをどのロジックブロックに分配するかを示している。したがって、各々のロジックブロック2jは2つのマイクロプログラムメモリ3ijおよび3jkから有効データを分配される。
図9は、図8のプロセッサアレイのより詳細な構成を示すブロック図である。なお、図8に示すブロックと同一ブロックには同一参照符号を用い、図3で説明したブロック構成や動作については説明を省略する。以下、説明を煩雑にしないために、共有化マイクロプログラムメモリ3bc、ロジックブロック2bおよび2cに関連する構成について説明するが、その他の共有化マイクロプログラムメモリおよびロジックブロックについても同様である。
まず、本実施形態では、各共有化マイクロプログラムメモリ3に格納された命令10は、2つの有効データ部11.1および11.2と1つの位置情報13とを含むものとする。有効データ部や位置情報については図4(B)および(C)で説明したとおりである。また、先頭と末尾のロジックブロックを除いて、その他のロジックブロックは4つのセレクタ7.1〜7.4から区間命令6.1〜6.4を受け取り、先頭のロジックブロックは2つのセレクタ7.3および7.4から区間命令6.3および6.4を、末尾のロジックブロックはセレクタ7.1および7.2から区間命令6.1および6.2を受け取るものとする。なお、ここで示す有効データや区間命令の数は一例に過ぎず、これに限定するものではない。
図9のロジックブロック2bに区間命令を供給するセレクタ7.1b〜7.4bをみると、左半分のセレクタ7.1bおよび7.2bは共有化マイクロプログラムメモリ3abから有効データを受け、右半分のセレクタ7.3bおよび7.4bは共有化マイクロプログラムメモリ3bcから有効データを受ける。
共有化マイクロプログラムメモリ3bcをみると、有効データ部11.1bcのデータはセレクタ7.3bおよび7.4bとセレクタ7.1cとにそれぞれ出力され、有効データ部11.2bcのデータはセレクタ7.4bとセレクタ7.1cおよび7.2cにそれぞれ出力される。セレクタ7.3b、7.4b、7.1cおよび7.2cは位置情報13bcの選択制御データ8.3b、8.4b、8.1c、8.2cによってそれぞれ選択制御される。たとえば、セレクタ7.4bは2つの有効データ部11.1bcおよび11.2bcから入力するので、その選択制御データ8.4bに従って、2つ入力データおよび1つのデフォルト値から1つの出力を選択する。
したがって、本実施形態によれば、最大3つ(2つの有効データと一つのデフォルト値)から選択すればよく、回路構成が大幅に簡単になり、回路面積や遅延を減らすことができる。
さらに、有効データや選択制御データを転送する範囲が狭くなる(すなわち有効データあたりの接続セレクタ数が少なくなる)ので、配線の長さも短くて済むというメリットもある。しかも、1つのロジックブロック当たり最大で4つの有効データを使えるなど、有効データの融通性も向上する。このように、本実施形態によれば、より省面積で高速なマイクロプログラムメモリの節約を実現できる。
なお、図9に示す構成では、各共有化マイクロプログラムメモリが2つの有効データ部を有し、2つのロジックブロックへ配布されるので、平均して、ロジックブロック当たり2つの有効データがあることになる。すなわち、一つのロジックブロックが持つ4つの区間命令のうち平均して半分の有効データがあることになる。
5.変形例
本発明の第1および第2実施形態では、共有化マイクロプログラムメモリに格納される命令の有効データは3個、ロジックブロック当たりの区間命令は4個で説明したが、これらの個数に限定されるものではない。以下、変形例について説明する。
図10は本発明の第1あるいは第2実施形態の変形例によるプロセッサアレイの命令系統を示す概略的ブロック図であり、図11はプロセッサエレメント複合体のより詳細な構成を示すブロック図である。なお、図10および図11では、同一ブロックには同一参照符号を用い、図3で説明したブロック構成や動作については説明を省略する。また、図を煩雑にしないためにライン状に配列されたプロセッサアレイを図示しているが、所望の数のプロセッサエレメントがエリア状に配列されても同様である。
本変形例によれば、各々のロジックブロックは1つの共有化マイクロプログラムメモリのみから有効データを受け取る。本変形例における共有化マイクロプログラムメモリ3に格納された各命令10は、4つの有効データ部11.1〜11.4とそれら有効データ部の位置を示す位置情報(SC)13とからなる。位置情報13には、既に述べたように、各セレクタに対して有効データおよびデフォルト値のいずれか一方を区分命令として指定する選択制御データ8.1a〜8.4aおよび8.1b〜8.4bが書き込まれている。
共有化マイクロプログラムメモリ3の有効データ部11.1のデータはセレクタ7.1a〜7.4aおよびセレクタ7.1にそれぞれ出力され、有効データ部11.2のデータはセレクタ7.2a〜7.4aおよびセレクタ7.1〜7.2bに、有効データ部11.3のデータはセレクタ7.3a〜7.4aおよびセレクタ7.1〜7.3bに、有効データ部11.4のデータはセレクタ7.4aおよびセレクタ7.1〜7.4bに、それぞれ出力される。セレクタ7.1a〜7.4aは位置情報13の選択制御データ8.1a〜8.4aによってそれぞれ選択制御され、セレクタ7.1〜7.4bは選択制御データ8.1b〜8.4bによってそれぞれ選択制御される。たとえば、セレクタ7.4aは4つの有効データ部11.1〜11.4から入力するので、その選択制御データ8.4aに従って、4つ入力データおよび1つのデフォルト値から1つの出力を選択する。
図11において、有効データ部11.1〜11.4の各データ幅は、区間命令6.1a〜6.4aおよび6.1b〜6.4bの各データ幅と同じである。ロジックブロック2aおよび2bの各々が必要とする命令のデータ幅は、区間命令6.1a〜6.4a(あるいは6.1b〜6.4b)のデータ幅の合計と同じである。したがって、4個すべての有効データ部11.1〜11.4を一方のロジックブロックに割り当てることで、1つのマイクロ命令を構成することができる。
このように4つの有効データ11.1〜11.4が2つのロジックブロック2aおよび2bに分配されるので、1つのロジックブロック当たり4つの区間命令のうち平均すると半分の有効データがあることになる。したがって、本変形例は、図9に示す第4実施形態と同じロジックブロック当たりの平均有効データ量となる。
本発明は複数のプロセッサエレメントが1次元あるいは2次元アレイ状に配列されたプロセッサアレイに適用可能である。
(A)はプロセッサアレイの一般的な構成を示す回路図であり、(B)は従来のプロセッサアレイの命令系統の一例を概略的に示すブロック図である。 (A)は本発明の第1実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。 本発明の第1実施形態によるプロセッサエレメント複合体の構成を示すブロック図である。 (A)は、従来の独立した隣接プロセッサエレメントにおけるマイクロプログラムメモリコア30aおよび30bに格納された複数のマイクロ命令の一例を示した模式図、(B)は本発明の第1実施形態におけるメモリコア30に格納された複数の圧縮命令を示した模式図、(C)は1つの圧縮命令における位置情報13のフォーマットを示す模式図である。 プロセッサアレイの動作説明のための回路図である。 (A)は本発明の第2実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。 (A)は本発明の第3実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図である。 本発明の第4実施形態によるプロセッサアレイの命令系統を示す概略的ブロック図である。 図8のプロセッサアレイのより詳細な構成を示すブロック図である。 本発明の第1あるいは第2実施形態の変形例によるプロセッサアレイの命令系統を示す概略的ブロック図である。 図10におけるプロセッサエレメント複合体のより詳細な構成を示すブロック図である。
符号の説明
1、1a、1b プロセッサエレメント
2、2a、2b ロジックブロック
3、3a、3b、3ab、3bc、3cd マイクロプログラムメモリ
4 マイクロプログラムメモリのアドレス信号
5、5ab、5bc、5cd アドレスデコーダ
6.1a〜6.4a、6.1b〜6.4b、6.1c〜6.4c、6.1d〜6.2d 区間命令
7.1a〜7.4a、7.1b〜7.4b、7.1c〜7.4c、7.1d〜7.2d セレクタ
8.1a〜8.4a、8.1b〜8.4b、8.1c〜8.4c、8.1d〜8.2d 位置情報内の選択制御データ
9 有効データの分配範囲
10、10ab、10bc、10cd 命令
10.1〜10,6 ワードデータ
11.1〜11.4、11.1ab、11.2ab、11.1bc、11.2bc、11.1cd、11.2cd 有効データ部
12 デフォルト値
13、13ab、13bc、13cd 位置情報
30、30ab、30bc、30cd マイクロプログラムメモリコア
100 プログラマブル配線
200 シーケンサ
300 プロセッサエレメント複合体

Claims (16)

  1. マイクロ命令により各々の機能を決定する複数のロジックブロックの、プログラマブルに接続された配列を有するプロセッサアレイにおいて、
    所定の数の前記ロジックブロックに対し1個ずつ配置され、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す位置情報とを含む圧縮命令を複数個格納するメモリ手段と、
    前記所定の数のロジックブロックと該所定の数のロジックブロックに対し配置された前記メモリ手段とを接続し、該メモリ手段が格納する前記複数の圧縮命令のいずれか1個の圧縮命令に含まれる前記位置情報に基づいて、所定データ及び該圧縮命令に含まれる前記有効データ部から、該圧縮命令が格納されるメモリ手段に接続する前記所定の数のロジックブロックの各々に供給するためのマイクロ命令を生成するマイクロ命令生成手段と、
    を有し、
    前記マイクロ命令生成手段は、1個の前記圧縮命令から前記所定の数のロジックブロックに同時に供給するだけのマイクロ命令を生成する
    ことを特徴とするプロセッサアレイ。
  2. 前記複数のロジックブロックは一次元アレイ状に配列され、前記マイクロ命令生成手段は前記複数のメモリ手段をそれぞれ隣接する2つのロジックブロックに接続することを特徴とする請求項1に記載のプロセッサアレイ。
  3. 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成手段は前記複数のメモリ手段をそれぞれ上下方向に隣接する2つのロジックブロックに接続することを特徴とする請求項1に記載のプロセッサアレイ。
  4. 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成手段は前記複数のメモリ手段をそれぞれ上下左右に隣接する4つのロジックブロックに接続することを特徴とする請求項1に記載のプロセッサアレイ。
  5. 前記複数のロジックブロックは一次元アレイ状に配列され、前記マイクロ命令生成手段は、前記複数のメモリ手段の各々を隣接する2つのロジックブロックに接続し、かつ、前記複数のロジックブロックの各々を隣接する2つのメモリ手段に接続する、ことを特徴とする請求項1に記載のプロセッサアレイ。
  6. 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成手段は、前記複数のメモリ手段の各々を隣接する2つのロジックブロックに接続し、かつ、前記複数のロジックブロックの各々を隣接する2つのメモリ手段に接続する、ことを特徴とする請求項1に記載のプロセッサアレイ。
  7. 前記マイクロ命令生成手段は、各ロジックブロックに対応して設けられ、前記位置情報に従って前記有効データ部および前記所定データのいずれかを選択し、前記マイクロ命令を構成する複数の区間データをそれぞれ生成する複数の選択手段を含むことを特徴とする請求項1ないし請求項6のいずれかに記載のプロセッサアレイ。
  8. 前記複数のメモリ手段の各々に格納された前記複数の有効データ部の合計のデータ幅は、前記マイクロ命令のデータ幅より短いことを特徴とする請求項1に記載のプロセッサアレイ。
  9. 前記複数のメモリ手段の各々は、前記複数の有効データ部および前記位置情報からなる命令を複数個格納し、アドレス信号に従って前記複数の命令の1つを指定するアドレスデコーダを更に有することを特徴とする請求項1に記載のプロセッサアレイ。
  10. 前記アドレス信号を生成するシーケンサを更に有することを特徴とする請求項9に記載のプロセッサアレイ。
  11. 他のロジックブロックとプログラマブルに接続可能で、マイクロ命令により各々の機能を決定する複数のロジックブロックと、
    複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す位置情報とを含む圧縮命令を複数個格納するメモリ手段と、
    アドレス信号に従って前記複数の圧縮命令の1つを指定するアドレスデコーダと、
    前記メモリ手段と所定の数の前記ロジックブロックとを接続し、前記アドレスデコーダにより指定された1個の圧縮命令に含まれる前記位置情報に基づいて、該圧縮命令に含まれる前記有効データ部および所定データから、前記所定の数のロジックブロックに供給するためのマイクロ命令を復号化する復号化手段と、
    を有し、
    前記復号化手段は、1個の前記圧縮命令から前記所定の数のロジックブロックに同時に供給するだけのマイクロ命令を復号化する
    ことを特徴とするプロセッサエレメント複合体。
  12. 前記復号化手段は、各ロジックブロックに対応して設けられ、前記位置情報に従って前記有効データ部および前記所定データのいずれかを選択し、前記マイクロ命令を構成する複数の区間データをそれぞれ生成する複数のセレクタからなることを特徴とする請求項11に記載のプロセッサエレメント複合体。
  13. 請求項11または請求項12に記載のプロセッサエレメント複合体を複数個配列し、各プロセッサエレメント複合体の前記複数のロジックブロックの各々は、演算器とロジックブロック間をプログラマブルに接続するスイッチとを含むことを特徴とするプロセッサアレイ。
  14. 複数の同等なロジックブロックB1〜BN(Nは2以上の整数)と、前記ロジックブロックの各々に付随する複数のセレクタと、前記ロジックブロックB1〜BNに対応して配列された複数のマイクロプログラムメモリP1〜PN-1とを有し、
    前記ロジックブロックB1〜BNの各々は、演算器と、ロジックブロック間をプログラマブルに接続するスイッチとを含み、
    前記マイクロプログラムメモリP1〜PMの各々に格納されている複数の命令の各々は、位置情報と複数の有効データ部とを含み、
    任意のロジックブロックBi(i=2,・・・,N−1)に付随する前記複数のセレクタのうち第1のグループは、マイクロプログラムメモリPi-1から前記位置情報と前記複数の有効データ部とを供給され、前記複数のセレクタのうち第2のグループはマイクロプログラムメモリPiから前記位置情報と前記複数の有効データ部とを供給され、
    前記複数のセレクタの各々は、前記位置情報に含まれるデータに基づいて、前記複数の有効データ部と既定値とから一つを選択して区間命令として出力し、
    前記複数のセレクタから出力される区間命令によって、対応するロジックブロックの機能が決定され、
    各ロジックブロックの前記区間命令の合計データ幅より、前記マイクロプログラムメモリの前記複数の有効データ部の合計データ幅が小さい、
    ことを特徴とするプロセッサアレイ。
  15. プログラマブルに接続されマイクロ命令により各々の機能を決定する複数のロジックブロックに対してそれぞれマイクロ命令を供給するためのマイクロ命令制御装置において、
    所定の数の前記ロジックブロックに対し1個ずつ配置され、複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す位置情報とを含む圧縮命令を複数個格納するメモリ手段と、
    前記所定の数のロジックブロックと該所定の数のロジックブロックに対し配置された前記メモリ手段とを接続し、該メモリ手段が格納する前記複数の圧縮命令のいずれか1個の圧縮命令に含まれる前記位置情報に基づいて、所定データ及び該圧縮命令に含まれる前記有効データ部から、該圧縮命令が格納されるメモリ手段に接続する前記所定の数のロジックブロックの各々に供給するためのマイクロ命令を生成するマイクロ命令生成手段と、
    を有し、
    前記マイクロ命令生成手段は、1個の前記圧縮命令から前記所定の数のロジックブロックに同時に供給するだけのマイクロ命令を生成する
    ことを特徴とするマイクロ命令制御装置。
  16. プログラマブルに接続されマイクロ命令により各々の機能を決定する複数のロジックブロックに対してそれぞれマイクロ命令を供給するためのマイクロ命令制御方法において、
    複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す位置情報とを含む圧縮命令を複数個メモリ手段に格納し、
    アドレス信号に従って前記メモリ手段に格納された前記複数の圧縮命令から1つを指定し、
    前記指定された1つの圧縮命令の前記位置情報に基づいて、所定データおよび該圧縮命令に含まれる前記有効データ部から、前記メモリ手段に接続される所定の数の前記ロジックブロックに同時に供給するだけのマイクロ命令を復号し、
    前記復号されたマイクロ命令を対応する前記所定の数のロジックブロックへ供給する、
    ことを特徴とするマイクロ命令制御方法。
JP2007528287A 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 Expired - Fee Related JP4530042B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005139258 2005-05-12
JP2005139258 2005-05-12
PCT/JP2006/309325 WO2006121046A1 (ja) 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法

Publications (2)

Publication Number Publication Date
JPWO2006121046A1 JPWO2006121046A1 (ja) 2008-12-18
JP4530042B2 true JP4530042B2 (ja) 2010-08-25

Family

ID=37396554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007528287A Expired - Fee Related JP4530042B2 (ja) 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法

Country Status (3)

Country Link
US (1) US20090031113A1 (ja)
JP (1) JP4530042B2 (ja)
WO (1) WO2006121046A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424040B2 (en) * 2012-09-21 2016-08-23 Mitsubishi Electric Corporation LSI and LSI manufacturing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175648A (ja) * 1993-04-13 1995-07-14 Nec Corp マイクロプログラム制御装置
JPH07182169A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 並列処理型コンピュータ
JPH09198356A (ja) * 1996-01-22 1997-07-31 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
JP2000067020A (ja) * 1998-08-20 2000-03-03 Nec Corp マルチプロセッサシステム
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853774B1 (en) * 2005-03-25 2010-12-14 Tilera Corporation Managing buffer storage in a parallel processing environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175648A (ja) * 1993-04-13 1995-07-14 Nec Corp マイクロプログラム制御装置
JPH07182169A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 並列処理型コンピュータ
JPH09198356A (ja) * 1996-01-22 1997-07-31 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
JP2000067020A (ja) * 1998-08-20 2000-03-03 Nec Corp マルチプロセッサシステム
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ

Also Published As

Publication number Publication date
US20090031113A1 (en) 2009-01-29
WO2006121046A1 (ja) 2006-11-16
JPWO2006121046A1 (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
JP3674515B2 (ja) アレイ型プロセッサ
JP4900717B2 (ja) 再構成可能な装置
KR100952760B1 (ko) 집적 회로 장치
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
US7386689B2 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
KR101553648B1 (ko) 재구성 가능한 구조의 프로세서
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
JP4485272B2 (ja) 半導体装置
CN108874730B (zh) 一种数据处理器及数据处理方法
JP3987784B2 (ja) アレイ型プロセッサ
JP4530042B2 (ja) プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法
JP4451733B2 (ja) 半導体装置
US6754801B1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
US20090282223A1 (en) Data processing circuit
JP4743581B2 (ja) データ処理システムおよびその制御方法
JP4918794B2 (ja) コンピュータ装置及びそのデータ転送方法
JP3987805B2 (ja) アレイ型プロセッサ
JP4107043B2 (ja) 演算処理装置
JP5365639B2 (ja) 半導体プログラマブルデバイス及び半導体プログラマブルデバイスにおける信号転送方法
JP4413905B2 (ja) Simd型プロセッサ
JP2007323491A (ja) ダイレクトメモリアクセス制御装置および制御方法
JP2007272395A (ja) データフローグラフ生成装置、集積回路の設定データ生成装置、処理装置、及び集積回路
JPH02184985A (ja) 並列データ処理装置
JP2007213641A (ja) 半導体記憶装置
JP2006119974A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20091016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

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: 20100518

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: 20100531

R150 Certificate of patent or registration of utility model

Ref document number: 4530042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees