JP3674515B2 - アレイ型プロセッサ - Google Patents

アレイ型プロセッサ Download PDF

Info

Publication number
JP3674515B2
JP3674515B2 JP2001043202A JP2001043202A JP3674515B2 JP 3674515 B2 JP3674515 B2 JP 3674515B2 JP 2001043202 A JP2001043202 A JP 2001043202A JP 2001043202 A JP2001043202 A JP 2001043202A JP 3674515 B2 JP3674515 B2 JP 3674515B2
Authority
JP
Japan
Prior art keywords
state
state transition
processor
event
address
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
JP2001043202A
Other languages
English (en)
Other versions
JP2001312481A (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
Priority to JP2001043202A priority Critical patent/JP3674515B2/ja
Priority to US09/792,394 priority patent/US6738891B2/en
Priority to GB0104550A priority patent/GB2365595B/en
Publication of JP2001312481A publication Critical patent/JP2001312481A/ja
Application granted granted Critical
Publication of JP3674515B2 publication Critical patent/JP3674515B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、プログラムすることで所望の演算処理を実行できるプロセッサに関するものであり、特に、プロセッサエレメントを二次元アレイ状に並べたアレイ型プロセッサに関する。
【0002】
【従来の技術】
従来、プログラム可能なデバイスとして、様々なマイクロプロセッサが知られており、これらのマイクロプロセッサは、メモリに記憶されている命令を順に読み出し、逐次的に処理することを特徴としていた。
つまり、マイクロプロセッサは、非常にシンプルな処理を行なう一つの命令を順に処理する形が、組み合わされて実行されることで、目的とする一連の処理を実現していた。
【0003】
しかし、このマイクロプロセッサは、一つのプロセッサで同時に実行できる命令が数個であるため、処理性能を向上させる上で限界があった。
具体的には、大量のデータに対して同一の処理を行う場合に、一つ一つのデータに対して逐次処理を繰り返す必要があり、処理能力を向上させることができなかった。
【0004】
この限界を越える技術として、複数のプロセッサエレメントを用いて、命令を並列処理する(同時に実行する)技術があり、具体的には、プロセッサエレメント間の電気的接続方法により様々な技術が存在する。
その一つとして、Lawrence Snyderにより、論文‘‘IntroducTion To The Configurable,Highly Parallel CompuTer’’(IEEE COMPUTER,Jan.1982)において提案された、複数のプロセッサエレメントをアレイ状に配置し、かつ、プログラマブルなスイッチを用いて電気的に接続することにより、所望のプロセッサを電気的に接続する技術がある(適宜、第一従来技術と略称する。)。
【0005】
この第一従来技術のマイクロプロセッサは、複数のプロセッサを用いて並列処理を行うことで、一つのプロセッサによる処理よりも処理能力が向上し、しかも、プロセッサエレメント間をプログラマブルなスイッチで電気的に接続しているため、目的に応じたプロセッサエレメント同士の電気的接続を実現でき、特に、データ処理分野のアプリケーションにおいて、効率の良い処理を行うことができた。
【0006】
また、このマイクロプロセッサは、異なった性質の処理、すなわち、データパスのような演算器ベースの処理と、制御回路のようなランダムロジック回路の処理を、各プロセッサエレメントのアレイ部のみで実現するために、各プロセッサエレメントに汎用処理能力を付加する必要があった。
【0007】
【発明が解決しようとする課題】
ところが、マイクロプロセッサのさらなる小型化・高性能化の要求に応えるためには、各プロセッサエレメントの機能をそれぞれを処理目的に応じて特化する技術を確立する必要があるが、この技術は極めて困難であり、結果的に、マイクロプロセッサの小型化・高性能化の要求に応えることができないという問題があった。
【0008】
本発明は、上述した従来技術の問題点を解決するためになされたものであり、プロセッサエレメントをアレイ状に並べたものをプログラマブルなスイッチで電気的に接続した構成からなる、演算を主体として行うデータパス部と、状態遷移手段の実現を容易とした構成からなる、制御を行う状態遷移管理部を独立して具備し、それぞれを処理目的に応じて特化した構成で実現することで、小型化・高性能化の可能なアレイ型プロセッサの提供を目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明のアレイ型プロセッサは、演算処理を行う複数のプロセッサエレメント、および、前記プロセッサエレメント間を接続する複数のプログラマブルスイッチエレメントを、二次元アレイ状に電気的に接続して構成されたデータパス部を具備し、前記プロセッサエレメントは、複数の命令コードを記憶する命令コードメモリと、この命令コードメモリから読み出された前記命令コードを解読する命令デコーダと、解読された前記命令コードに基づいて、前記演算処理を行なう演算部とを有し、かつ、前記プログラマブルスイッチエレメントは、前記プロセッサエレメントと前記プログラマブルスイッチエレメント間、及び/又は、前記プログラマブルスイッチエレメント相互間の接続構成を指示する接続構成情報を複数セット記憶する接続構成情報メモリを有するアレイ型プロセッサにおいて、複数の演算状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリおよび、この状態遷移テーブルメモリを用いて前記複数の演算状態間の遷移を制御することにより、任意の時点における演算状態を決定するシーケンサ部を有する状態遷移管理部を前記データバス部と独立に具備し、前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び/又は、前記接続構成情報メモリのアドレスを出力し、前記命令コードメモリのアドレスに応じて命令コードが選択され、前記命令デコーダが前記命令コードを解読し、前記状態遷移管理部で決定された状態に基づき、解読された前記命令コードに従って前記プロセッサエレメントの各プロセッサエレメント毎に、演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態を切りえを可能とする構成としてある。
【0010】
このように、演算を主体として行うデータパス部と、制御を行う状態遷移管理部を分離して具備し、それぞれを処理目的に応じて特化した構成で実現することで、演算と制御の両者を効率良く実装および処理することが可能となり、アレイ型プロセッサは、小型化され、かつ、処理性能が向上する。
【0011】
さらに、前記状態遷移管理部からの制御が、前記状態遷移管理部単独による前記演算状態の遷移、及び/又は、前記データパス部からのイベントを入力することによる前記演算状態の遷移、及び/又は、外部からのイベントを入力することによる前記演算状態の遷移に基づく構成としてある。
【0012】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能が向上する。
【0013】
さらに、前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記任意の時点における演算状態に応じて前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び/又は、前記接続構成情報メモリのアドレスを出力する構成としてある。
【0014】
このようにすることにより、アレイ型プロセッサは、状態遷移管理部からプロセッサエレメントとプログラマブルスイッチエレメントに、効率良く制御信号を出力することができる。
【0015】
さらに、一つ以上の前記演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、かつ、各前記プロセッサエレメント及び/又は各前記プログラマブルスイッチエレメントが、それぞれ一つの前記演算制御バスを選択して前記アドレスを入力する構成としてある。
【0016】
このようにすることにより、アレイ型プロセッサは、プロセッサエレメントを効率良く作動させることができ、処理性能が向上する。
【0017】
また、前記状態遷移管理部が、それぞれの前記プロセッサエレメントおよびそれぞれの前記プログラマブルスイッチエレメントに対し、独立した前記アドレスを並列に与える構成としてある。
【0018】
このようにすることにより、アレイ型プロセッサは、データパス部内のプロセッサエレメントを効率良く作動させることができるので、処理性能が向上する。
【0019】
また、前記プロセッサエレメント及び/又は前記プログラマブルスイッチエレメントをグループ化し、このグループに対して一つの前記アドレスを与える構成としてある。
【0020】
このようにすることにより、アレイ型プロセッサは、データパス部内のグループ化されたプロセッサエレメントを効率良く作動させることができるので、より処理性能が向上する。
【0021】
さらに、一部の前記プロセッサエレメント及び/又は一部の前記プログラマブルスイッチエレメントに対してのみ、前記任意の時点における演算状態に応じた前記アドレスを与え、残りの前記プロセッサエレメントおよび残りの前記プログラマブルスイッチエレメントは、前記任意の時点における演算状態の直前に使用していた前記アドレスを継続して使用する構成としてある。
【0022】
このようにすることにより、アレイ型プロセッサは、継続してプロセッサエレメントに処理を実行させることができ、また、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【0023】
また、前記演算制御バスが、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに配設され、かつ、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、さらに、前記プロセッサエレメント及び/又は前記プログラマブルスイッチエレメントが、隣接する前記演算制御バスのうちいずれか一つを選択して前記アドレスを得る構成としてある。
【0024】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【0025】
さらに、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに対して、それぞれ独立の前記演算制御バスが配設され、かつ、該独立の演算制御バスは、それぞれ独立した制御が行われる構成としてある。
【0026】
このようにすることにより、アレイ型プロセッサは、構成が単純化され、制御が容易になる。
【0027】
さらに、前記プロセッサエレメントが、演算処理データを記録するレジスタを有する構成としてある。
【0028】
このようにすることにより、アレイ型プロセッサは、演算部とレジスタ間の配線効率が改善されて、小型化されるとともに処理性能が向上する。
【0029】
さらに、前記プロセッサエレメントが、外部からの入力データまたは前記演算処理データに対して、前記状態遷移管理部からの制御に応じた演算処理を行ない、この演算処理結果を、前記外部に出力データとして出力するか、あるいは、前記レジスタに記録する構成としてある。
【0030】
このようにすることにより、アレイ型プロセッサは、演算処理を効率良く実行することができ、処理性能が向上する。
【0031】
さらに、前記状態遷移管理部と前記データパス部とを電気的に接続するイベント通知バスを有し、前記データパス部が、前記イベント通知バスを通じて、演算結果をイベントとして前記状態遷移管理部に通知する構成としてある。
【0032】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【0033】
さらに、前記シーケンサ部が、前記状態遷移テーブルメモリに書き込まれた前記状態遷移ルールにしたがって、前記演算状態から同一のまたは異なる演算状態への状態遷移を制御し、前記同一のまたは異なる演算状態を新たな演算状態とする構成としてある。
【0034】
このようにすることにより、アレイ型プロセッサは、効率良く制御を行うことができるので、処理性能が向上する。
【0035】
さらに、前記状態遷移テーブルが、複数の演算状態の記述エントリを並べたリスト形式で記録されており、前記記述エントリが、状態を識別するある時点の状態番号、状態遷移先の状態を識別する次の時点の状態番号及び前記ある時点の状態から次の時点の状態へ遷移するための状態遷移条件を有する構成としてある。
【0036】
このように、アレイ型プロセッサは、状態遷移テーブルが複数の演算状態の記述エントリを並べたリスト形式で記録されてあるので、効率が良くかつ容易な制御を行うことができるので、処理性能が向上する。
【0037】
さらに、前記状態遷移管理部は、前記ある時点の状態番号、あるいは前記次の時点の状態番号に対応して、前記命令コードアドレスのアドレス及び/又は前記接続構成情報メモリのアドレスを管理する制御情報メモリを有し、前記状態遷移テーブルから特定された前記ある時点の状態番号、あるいは前記次の時点の状態番号を基に、前記接続情報メモリより前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを特定する構成としてある。
【0038】
このように、状態遷移先である、ある時点の状態番号、あるいは次の時点の状態番号の特定と、命令コードメモリのアドレス及び/又は接続構成情報メモリのアドレスの特定と、各々別のメモリを用いて実行することにより、メモリが搭載された回路面積の縮小と、状態遷移先を決定するための自由度の縮減のない接続制御バスのビット幅の縮減と、を実現することが可能となる。
【0039】
また、前記ある時点の状態番号に対応して、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを管理する状態遷移テーブルを有し、前記状態遷移テーブルは、前記ある時点の状態番号を基に、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを特定する構成としてある。
【0040】
このように、ある時点の状態番号を基に、次の時点の状態番号だけでなく、ある時点の命令コードメモリのアドレスも特定することにより、メモリの参照回数を減らすことが可能となり、より高速な処理を実現することが可能となる。
【0041】
さらに、前記状態遷移テーブルが、前記ある時点の状態番号、前記次の時点の状態番号及び前記状態遷移条件を前記記述エントリとするイベント状態遷移テーブルと、前記ある時点の状態番号と前記次の時点の状態番号とを前記記述エントリとするデフォルト状態遷移テーブルとを有し、前記イベント状態遷移テーブルにより前記状態遷移条件が満たされる場合の状態遷移を実現し、かつ、前記デフォルト状態遷移テーブルにより前記状態遷移条件が満たされない場合の状態遷移を実現する構成としてある。
【0042】
このようにすることにより、アレイ型プロセッサは、状態遷移を効率良く行なうことができ、制御が容易となる。
【0043】
さらに、一つの前記ある時点の状態番号には、一つ以上の前記記述エントリが対応し、前記一つ以上の記述エントリが、各々異なる前記状態遷移条件を有する構成としてある。
【0044】
このようにすることにより、アレイ型プロセッサは、状態遷移を実行する際の自由度が拡大され、結果的に、制御が容易となる。
【0045】
また、前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記状態遷移テーブルメモリを、前記ある時点の状態番号と前記イベント識別コードで検索し、この検索において、前記ある時点の状態番号が合致し、かつ、前記イベント識別コードが前記状態遷移条件を満たす前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定する構成としてある。
【0046】
このように、アレイ型プロセッサは、シーケンサ部が、イベントからイベント識別コードを生成し、さらに、状態遷移テーブルメモリを検索することによっても、状態遷移先を決定することができ、制御方式の選択の自由度が拡大される。
【0047】
さらに、前記イベントが通知されない場合に、前記シーケンサ部が、前記イベントが発生しなかったことを示すイベント識別コードを生成し、さらに、前記ある時点の状態番号と前記イベント識別コードの組み合わせにより前記状態遷移テーブルメモリを検索する構成としてある。
【0048】
このようにすると、イベントが発生しない場合であっても、アレイ型プロセッサは、シーケンサ部が状態遷移テーブルメモリを検索することができ、状態遷移先を決定する。
【0049】
また、前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記イベント状態遷移テーブルを前記ある時点の状態番号と前記イベント識別コードで検索すると同時に、前記デフォルト状態遷移テーブルを前記ある時点の状態番号で検索し、この検索において、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードが一致する前記状態記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定し、あるいは、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードとが一致する前記記述エントリが無かった場合には、前記デフォルト状態遷移テーブルにおける前記ある時点の状態番号と一致する前記記述エントリの前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定する構成としてある。
【0050】
このようにすることにより、アレイ型プロセッサは、状態遷移先を決定することができ、制御方式の選択の自由度が拡大される。
【0051】
また、前記状態遷移テーブルメモリからなる内容アドレスメモリに、前記ある時点の状態番号と前記イベント識別コードとが入力され、前記内容アドレスメモリと前記記述エントリとの並列照合により一致した前記記述エントリにおける前記次の時点の状態番号が出力される構成としてある。
【0052】
このように、アレイ型プロセッサは、前記状態遷移テーブルメモリを内容アドレスメモリとし、この内容アドレスメモリを照合することにより、次の時点の状態番号が出力できるので、制御方式の選択の自由度が拡大される。
【0053】
更に、前記次の時点の状態番号の生成の開始以降、若しくは終了以降に、前記状態遷移先の状態に対応した前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスの生成が行われる構成としてある。
【0054】
このようにすることにより、アレイ型プロセッサは、状態遷移管理部とデータパス部の信号の受け渡しの自由度が拡大され、きめ細かく柔軟な制御を行うことができる。
【0055】
また、決定された前記状態遷移先の状態が、前記状態遷移管理部において前記ある時点の状態とされた時点で、前記ある時点の状態に対応する前記アドレスの生成を開始する構成としてある。
【0056】
このようにすることにより、アレイ型プロセッサは、同じ状態遷移を連続して実行することができる。
【0057】
更に、前記次の時点の状態番号の生成開始から前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスが届くまでのパスに、レジスタを設け、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記アドレスを受け取る時点とを、別サイクルとする構成としてある。
【0058】
このように、アレイ型プロセッサは、アドレスの生成開始時点と、プロセッサエレメントおよびプログラマブルロジックエレメントがアドレスを受け取る時点とを、別サイクルとすることにより、動作速度の向上を図ることが可能となる。これは、“演算動作+イベント伝播+アドレス配布”の動作を1サイクルとせずに、“演算動作+イベント伝播”と“アドレス配布”とを別サイクルとすることで、アドレスを発行するタイミングを前倒しにすることが可能となり、クリティカルパスであるこの部分の遅延を削除することが可能となるためである。
【0059】
さらに、前記次の時点の状態番号の生成を開始する時点から、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスが届くまでを一つのサイクルとして独立させる構成としてある。
【0060】
このように、アレイ型プロセッサは、アドレスの生成開始時点と、プロセッサエレメントおよびプログラマブルロジックエレメントがアドレスを受け取る時点とを、別サイクルとすることにより、動作速度の向上を図ることが可能となる。これは、レジスタ等を用いることで、“演算動作+イベント伝播”と“アドレス配布”とを別サイクルとすることで、クリティカルパスが短くなり、高速化(動作)が可能となる。
【0061】
また、前記イベント識別コードを前記シーケンサ部から前記状態遷移テーブルメモリへ伝搬する接続線上に第一のレジスタを設け、該第一のレジスタにより前記イベント識別コードを前記接続線上において一時保持することで、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを受け取る時点とを、別サイクルとする構成としてある。
【0062】
このように構成することにより、アレイ型プロセッサは、命令コードアドレスを生成する時点と、生成した命令コードアドレスがプロセッサエレメント105及びプログラマブルスイッチエレメント106に到達する時点とを、別サイクルとして動作させることが可能となり、命令コードアドレスの発行のタイミングを他の構成に依存させずに、制御の確実性を向上させることができる。
【0063】
さらに、前記状態遷移テーブルメモリが、前記ある時点の状態番号を含む全てのエントリにおける前記次の時点の状態番号を保持する一つ以上の第二のレジスタを有し、前記状態遷移条件が満たされる場合には、前記一つ以上の第二のレジスタで保持されている前記次の時点の状態番号の内、前記状態遷移条件を満たすいずれかを選択して出力する構成としてある。
【0064】
このように構成することにより、アレイ型プロセッサは、イベント状態遷移テーブルへのある時点の状態番号の入力の如何に関わらず、データパス部に対して次の時点の状態番号に対する命令コードアドレスを発行することが可能となり、制御の確実性を向上させることが可能となる。
【0065】
さらに、前記第一のレジスタ及び第二のレジスタ各々に対して、使用するか否かを選択するセレクタを有し、前記命令コードが、前記第一及び第二のレジスタを使用するか否かを制御する制御情報を含み、前記セレクタが、前記命令コードに基づき前記第一及び第二のレジスタを使用するか否かを選択する構成としてある。
【0066】
このように構成することにより、アレイ型プロセッサは、上記請求項26に記載のアレイ型プロセッサにおける制御をより状況に応じて実行することが可能となり、制御の確実性を向上させることが可能となる。
【0067】
さらに、前記状態遷移管理部が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号の立ち上がり及び/又は立ち下がりにおいて、前記演算状態の遷移動作を同期させる構成としてある。
【0068】
このように、アレイ型プロセッサは、演算状態の遷移動作を同期させることにより、精度の良い制御を行うことができる。
【0069】
さらに、前記状態遷移管理部が、現時点での演算状態に依存せずに状態遷移させるための強制状態遷移信号により、強制的に前記演算状態が遷移する構成としてある。
【0070】
このように、アレイ型プロセッサは、演算状態の遷移を強制的に遷移させることにより、制御が容易となる。
【0071】
また、前記状態遷移テーブルが、入力された前記イベント識別コードとの一致を検出する強制状態遷移テーブルを有し、この強制状態遷移テーブルにおいて、前記状態遷移テーブルに入力された前記イベント識別コードと一致する前記記述エントリが存在する場合には、前記記述エントリに記述された次の時点の状態番号を強制的に状態遷移先の状態とする構成としてある。
【0072】
このように、アレイ型プロセッサは、演算状態の遷移を強制的に遷移させることにより、制御が容易となる。
【0073】
さらに、前記状態遷移管理部が、前記データパス部を制御する演算制御情報メモリを有する構成としてある。
【0074】
このように、アレイ型プロセッサは、演算制御情報メモリを有することにより、データパス部の制御を効率良く行うことができる。
【0075】
【発明の実施の形態】
以下、本発明に係るアレイ型プロセッサについて、図面を参照して説明する。
先ず、本発明のアレイ型プロセッサの実施形態について説明する。
「アレイ型プロセッサの実施形態」
図1は、本発明のアレイ型プロセッサの実施形態における概略ブロック図を示している。
【0076】
<アレイ型プロセッサの構成>
〔アレイ型プロセッサの第1の実施例〕
図1を説明するにあたり、この構成をアレイ型プロセッサの第1の実施例として説明する。
同図において、アレイ型プロセッサ1は、演算制御バス103、イベント通知バス104及び外部イベントバス107が電気的に接続された状態遷移管理部101と、この状態遷移管理部101からの制御に応じた演算処理を行なう、複数のプロセッサエレメント(PE)105および電気的接続を行なう複数のプログラマブルスイッチエレメント(PSE)106を、二次元アレイ状に電気的に接続して構成されたデータパス部102とを独立に具備した構成としてある。
【0077】
状態遷移管理部101は、演算状態の遷移を管理する、すなわち、基本的に状態遷移手段として動作する。
ここで、好ましくは、状態遷移管理部101からの制御は、状態遷移管理部101単独(入力される信号にかかわらず状態遷移管理部101の独自の判断による、閉じた状態)による演算状態の遷移、及び/又は、データパス部102からイベント通知バス104を通じてイベントを入力することによる演算状態の遷移、及び/又は、アレイ型プロセッサ1の外部から外部イベントバス107を通じてイベントを入力することによる演算状態の遷移に基づいて行われる構成とすると良く、これにより、アレイ型プロセッサ1は、きめ細かく柔軟な制御を行うことができるので、処理性能が向上する。
【0078】
また、好ましくは、アレイ型プロセッサ1は、状態遷移管理部101とデータパス部102とを電気的に接続する演算制御バス103を具備し、状態遷移管理部101が、演算状態に応じて演算制御バス103を通じて、命令コードメモリのアドレスを出力し、及び/又は、後述する接続構成情報メモリのアドレスを出力する構成とすると良く、これにより、状態遷移管理部101からプロセッサエレメント105とプログラマブルスイッチエレメント106とに、効率良く制御信号を出力することができる。
【0079】
つまり、データパス部102は、状態遷移管理部101から出力される、命令コードを記憶する命令コードメモリのアドレス、および、プログラマブルスイッチエレメント106相互間の接続構成を指示する接続構成情報メモリのアドレスにより(適宜、これら二つのアドレスを命令コードアドレスと略称する。)、プロセッサエレメント105の動作およびプログラマブルスイッチエレメント106の電気的接続関係が決定される。
【0080】
具体的には、各プロセッサエレメント105は、入力した命令コードアドレスにしたがって演算を行い、また、各プログラマブルスイッチエレメント106は、データパス部102の内部および外部との電気的接続を行う。
これにより、データパス部102は、データ入力108または後述するレジスタによりデータパス部102内部に記録されたデータを処理し、その結果をデータ出力109として出力するか、または、データパス部102の内部に記録することができる。
【0081】
また、アレイ型プロセッサ1は、一つの演算制御バス103に限定するものではなく、二つ以上の演算制御バス103を具備し、状態遷移管理部101が、複数の演算制御バス103に対してアドレスを出力し、かつ、各プロセッサエレメント105及び/又は各プログラマブルスイッチエレメント106が、それぞれ一つの演算制御バス103を選択して、命令コードアドレスを入力する構成としても良く、これにより、プロセッサエレメント105を効率良く作動させることができ、処理性能が向上する。
【0082】
また、好ましくは、アレイ型プロセッサ1は、状態遷移管理部101が、プロセッサエレメント105、および、プログラマブルスイッチエレメント106に対し、それぞれ独立したアドレスを並列に与えると良く、これにより、データパス部102内のプロセッサエレメント105を効率良く作動させることができるので、処理性能が向上する。
【0083】
このように、アレイ型プロセッサ1の基本的な動作は、先ず、状態遷移管理部101が、演算状態の遷移を管理することにより、ある時点の状態(適宜、現状態と略称する。)において行うべき処理を指示する命令コードアドレスを、演算制御バス103を通してデータパス部102に出力する。
【0084】
続いて、データパス部102は、現状態に応じた処理を行い、また、データパス部102において発生したイベントを、イベント通知バス104を通じて状態遷移管理部101に出力する。
そして、状態遷移管理部101は、このイベントの入力、外部からのイベントの入力又は状態遷移管理部101単独の動作により次の演算状態へと遷移し、この繰り返しにより一連の動作を行うことができる。
【0085】
<状態遷移管理部の構成>
〔状態遷移管理部の第1の実施例〕
次に、本発明による状態遷移管理部101を好適に実施した第1の実施例について、図面を参照して説明する。
図2は、本発明のアレイ型プロセッサ1の実施形態における状態遷移管理部101の概略ブロック図を示している。
同図において、状態遷移管理部101は、複数の状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリ202、この状態遷移テーブルメモリ202を用いて複数の状態間の遷移を制御することにより、次の状態を決定するシーケンサ部201及び命令コードアドレスをデータパス部102に出力する制御情報メモリ203とで構成してある。
【0086】
シーケンサ部201は、クロック207,リセット208,イベント209及び次状態番号205の入力に応じて、イベント識別コード206、及び/又は強制イベント識別コード210、および現状態番号204を出力する。
ここで、現状態番号204は、現状態を識別する番号(本明細書においては、ある時点の状態番号とも称す。)である。
また、次状態とは、現状態から状態遷移する次の時点の状態(適宜、次状態と略称する。)をいい、同様に、次状態番号205は、次状態を識別する番号(本明細書においては、次の時点の状態番号とも称す。)である。
また、「状態」とは、プロセッサエレメント105およびプログラマブルスイッチエレメント106の状態である。
【0087】
状態遷移テーブルメモリ202は、イベント識別コード206、及び/又は強制イベント識別コード210、および現状態番号204を入力して、次状態番号205を出力する。
また、制御情報メモリ203は、現状態番号204の入力に応じて演算制御バス103へ命令コードアドレスを出力する。
【0088】
つまり、状態遷移管理部101は、状態遷移手段の動作として、シーケンサ部201が、現状態番号204とイベント識別コード206及び/又は強制イベント識別コード210を出力すると、その組み合わせに応じた次状態番号205が、状態遷移テーブルメモリ202からシーケンサ部201に出力される。
そして、この次状態番号205は、シーケンサ部201から、次の現状態番号204として出力される。
ここで、状態遷移手段とは、複数の演算状態間を遷移させる手段である。
【0089】
また、イベント識別コード206は、シーケンサ部201への入力であるクロック207,リセット208及びイベント209の各信号に応じて生成される信号である(適宜、各信号における信号の表示を省略する。)。
なお、このイベント209は、イベント通知バス104および外部イベントバス107と電気的に接続してある。
これにより、現状態番号204による状態およびイベント識別コード206によるイベントの組み合わせにより次の状態が決定するという、状態遷移手段の動作が実現できる。
更に、強制イベント識別コード210は同様に、シーケンサ部201への入力であるクロック207、リセット208及びイベント209の各信号に応じて生成される信号であり、他の構成から割り込みとして入力されるものである。
但し、イベント識別コード206と強制イベント識別コード210とを区別せず、同一のものとして構成することも可能である。このイベント識別コード206及び強制イベント識別コード210については、以下の図13の説明において触れる。
【0090】
また、制御情報メモリ203は、命令コードアドレスを記憶していて、シーケンサ部201の出力である現状態番号204を入力すると、演算制御バス103を通して、命令コードアドレスをデータパス部102に出力する。
そして、上述したように、この命令コードアドレスは、データパス部102の動作を決定する。
このようにして、現在の状態に応じてデータパス部102が動作するという仕組みが実現される。
【0091】
また、後述において図5を用いて説明するが、アレイ型プロセッサ1は、制御情報メモリ203を配設せず、制御情報メモリ203が命令コードアドレスを出力する構成の替わりに、状態遷移テーブルメモリ202が次状態番号205の他に命令コードアドレス(対応する状態遷移テーブルメモリ202の詳細を説明する図16における命令コードアドレス1505に対応)を出力するよう構成することも可能である。
但し、この場合に適用される状態遷移テーブルメモリ202の構成としては、後述において、図16を用いて説明する形態が例に挙げられる。
また、図5の構成において、命令コードアドレス1505を出力せず、次状態番号205自体を命令コードアドレスとして、制御情報バス103を介してデータパス部102へ出力するよう構成することも可能である。この場合、データパス部102では、入力された次状態番号205に基づいて、各プロセッサエレメント105の演算状態の遷移、及び/又は、各プログラマブルスイッチエレメント106の接続状態の遷移が実行される。但し、このように構成した場合、データパス部102における各プロセッサエレメント105及び各プログラマブルスイッチエレメント106の遷移先となる演算状態若しくは接続状態の自由度がある程度限定されてしまうという欠点が生じる。この欠点を解決するものが、上述の次状態番号205と命令コードアドレスとの双方を状態遷移テーブルメモリ202が出力する構成である。この構成については、後述において図16を用いて詳細に説明する。
【0092】
また、好ましくは、アレイ型プロセッサ1は、状態遷移管理部101のシーケンサ部201が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号207の立ち上がり及び/又は立ち下がりにおいて、演算状態の遷移動作を同期させる構成とすると良く、これにより、精度の良い制御を行うことができる。
【0093】
また、アレイ型プロセッサ1は、リセット208の入力により、強制的にシーケンサ部201の動作を初期化し、現状態番号204を初期値にすることもできる。
またさらに、アレイ型プロセッサ1は、イベント信号209の入力により、強制的に現状態番号204を変更することもできる。
【0094】
また、例えば、後述するデータパス部102の第4の実施例のように、プロセッサエレメント105及び/又はプログラマブルスイッチエレメント106をグループ化した場合は、好ましくは、グループに対して独立したアドレスを並列に与えると良く、これにより、アレイ型プロセッサ1は、データパス部102内のグループ化されたプロセッサエレメント105を効率良く作動させることができるので、より処理性能が向上する。
【0095】
また、アレイ型プロセッサ1は、基本的には、プロセッサエレメント105の動作およびプログラマブルスイッチエレメント106の電気的接続が、状態遷移管理部101からの命令コードアドレスにより決定されることを基本とするが、その決定の一部または全体が、状態遷移管理部101によらずデータパス部102内部で生成されたイベント信号により、直接的に決定されることもできる。
【0096】
ここで、好ましくは、アレイ型プロセッサ1は、一部のプロセッサエレメント105及び/又は一部のプログラマブルスイッチエレメント106に対してのみ、複数の状態に応じたアドレスを与え、残りのプロセッサエレメント105及び/又はプログラマブルスイッチエレメント106は、複数の状態の直前に使用していたアドレスを継続して使用すると良く、これにより、一部は前演算(状態)を継続して動作させ、他は演算(状態)を変えるという柔軟な制御を効率的に行うことができるので、処理性能がより向上する。
この構成については、後述において実施例を用いて詳細に説明する。
【0097】
なお、データパス部102は、イベント通知バス104を通じて、演算結果をイベントとして状態遷移管理部101に通知することができるので、アレイ型プロセッサ1は、柔軟な制御を行うことができる。
【0098】
〔状態遷移管理部の第2の実施例〕
続いて、状態遷移管理部101の第2の実施例について、図面を参照して説明する。
図3は、本発明のアレイ型プロセッサ1の実施形態における状態遷移管理部101の第2実施例の概略ブロック図を示している。
同図において、状態遷移管理部101は、図2と異なり、次状態番号205を制御情報メモリ203の入力としており、演算制御バス103に次状態の命令コードアドレスが出力される構成としてある。
【0099】
このようにすることにより、アレイ型プロセッサ1は、シーケンサ部201の状態遷移すなわち次状態番号205を現状態番号204として有効化する動作とともに、各プロセッサエレメント105およびプログラマブルスイッチエレメント106が演算制御バス102からの命令コードアドレスを有効化すると、状態遷移と同時に各プロセッサエレメント105およびプログラマブルスイッチエレメント106が命令の実行を開始できる。
【0100】
この命令の実行の開始、すなわち演算動作の開始について、図面を参照して説明する。
図4は、図2及び図3に示した状態遷移管理部101の命令コードアドレス発行のタイミングチャート図を示している。
【0101】
同図において、現状態番号を命令コードアドレス発行に使用(図2)する場合は、シーケンサ部201が現状態番号204を発行してから制御情報メモリ203により命令コードアドレスを出力し、各プロセッサエレメント105およびプログラマブルスイッチエレメント106に命令コードアドレスが届くまでの、命令コードアドレス発行のための遅延401が、状態遷移402から各プロセッサエレメント105およびプログラマブルスイッチエレメント106が命令を実行するまでに必要となる。
【0102】
これに対し、次状態番号204を命令コードアドレス発行に使用(図3)する場合は、状態遷移402の前に、命令コードアドレス発行が行われるので、この遅延を回避することができる。
ただし、この場合には、命令コードアドレス発行のための遅延401が状態遷移直前の状態403に含まれることになる。
【0103】
なお、この遅延を回避するために、アレイ型プロセッサ1は、本説明の末尾において構成例を用いて説明するが、状態遷移テーブルメモリ202による次状態番号205の出力から、プロセッサエレメント105およびプログラマブルスイッチエレメント106における命令コードアドレスの受け取りまでのパス間に、電気的に絶縁するレジスタを設け、命令コードアドレス発行のための遅延401を状態遷移402の直前の状態403と直後の状態404に分配する構成や、命令コードアドレス発行のための遅延401を1サイクルとして分離し隠蔽する構成とすることもできる。
【0104】
〔状態遷移管理部の第3の実施例〕
更に、図3に示す状態遷移管理部101は、図5に示すように変形して実施することが可能である。これを以下の説明において状態遷移管理部101の第3の実施例とする。
以下、状態遷移管理部101の第3の実施例について、図面を参照して説明する。
図5は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第3の実施例の概略ブロック図を示している。
【0105】
同図において、状態遷移管理部101は、図3に示す状態遷移管理部の第2の実施例と異なり、制御情報メモリ203の構成が削除され、状態遷移テーブルメモリ202がそのまま演算制御バス103を介してデータパス部102へ接続される構成としてある。
【0106】
これは、状態遷移管理部の第2の実施例では、メモリの参照が状態遷移テーブルメモリ202と制御情報メモリ203とで行われるよう構成されていたものを、状態遷移テーブルメモリ202における参照の一回で済ますよう構成するためである。即ち、上述の状態遷移管理部の第2の実施例では、シーケンサ部201より出力された現状態番号204を基に、先ず状態遷移テーブルメモリ202において対応する次状態番号205を特定し、この次状態番号205をシーケンサ部201と制御情報メモリ203とに並列に入力し、制御情報メモリ203において対応する命令コードアドレスを特定する構成としてあるが、図5に示す本実施例では、状態遷移テーブルメモリ202において、シーケンサ部201より入力された現状態番号204に対応する次状態番号205と命令コードアドレス(対応する状態遷移テーブルメモリ202の詳細を説明する図16における命令コードアドレス1505に対応)とを特定し、この特定した次状態番号205をシーケンサ部201へ、また、命令コードアドレスをデータパス部102へ出力するよう構成してある。
【0107】
このように構成することで、本実施例によるアレイ型プロセッサ1では、メモリを参照するという処理を一度にまとめることが可能となり、処理速度の向上を図ることができる。
【0108】
このことを模式的に説明するためのタイミングチャート図を図6に示す。図6を参照すると、本実施例では、上述の状態遷移管理部の第2の実施例と比較して、命令コードアドレス発行に要する時間が短縮、即ち、再度(2回目)のメモリ(制御情報メモリ203)参照による遅延が削減され、結果として、イベント伝搬からデータパス部におけるプロセッサエレメントの動作開始までの時間が短くなっている。これは、メモリ参照回数を一回に減らしたために生じた効果である。
【0109】
(データパス部の構成)
〔データパス部の第1の実施例〕
次に、データパス部102の第1の実施例について、図面を参照して説明する。
図7は、本発明のアレイ型プロセッサ1の実施形態におけるデータパス部102の第1の実施例の概念図を示している。
同図において、データパス部102は、プロセッサエレメント105およびプログラマブルスイッチエレメント106のアレイによって構成してある。
【0110】
ここで、隣接するプロセッサエレメント105は、プログラマブルスイッチエレメント106を介して電気的に接続されている。
また、各プロセッサエレメント105は、一つ以上のプログラマブルスイッチエレメント106を介して、さらに、任意あるいは一定の制限を受けた上で、他のプロセッサエレメント105あるいはデータパス部102の外部と電気的に接続することができる。
【0111】
図8は、本発明のアレイ型プロセッサの実施形態におけるデータパス部102の第1の実施例の概略ブロック図を示している。
同図において、データパス部102は、プロセッサエレメント105およびプログラマブルスイッチエレメント106がそれぞれマトリックス状に配設された構成としてある。
【0112】
ここで、各プログラマブルスイッチエレメント106は、格子状に配設されたデータバス601及びイベント通知バス104、並びに、列方向に並列に配設された演算制御バス103と電気的に接続されている。
また、各プログラマブルスイッチエレメント106は、電気的に接続されているデータバス601の接続をOn/Offさせることができ、また、同様に、イベント通知バス104の接続をOn/Offさせることができる。但し、各プログラマブルスイッチエレメント106が全データバス601及び全イベント通知バス104の接続をOn/Offするわけでなく、状況に応じて制限が加えられる場合も存在する。これは、各プログラマブルスイッチエレメント106が全てのデータバス601及び全てのイベント通知バス104をOn/Offできるように構成すると、接続の自由度は増すが、配線が断片的(プログラマブルスイッチエレメント106毎に全て接続スイッチが設けられる。)となり、遅延が増加するためである。更に、全てのプログラマブルスイッチエレメント106が全てのデータバス601及び全てのイベント通知バス104をOn/Offする場合、これを制御するための情報量が膨大なものとなるためである。したがって、各位置の全てのバス(データバス601及びイベント通知バス104)にスイッチを設けるわけでなく、部分的に設けることで、全体における整合を図る。
また、この構成において、データバス601は、図7におけるプログラマブルスイッチエレメント106に含まれるものであり、各プログラマブルスイッチエレメント106を接続するためのものである。
【0113】
プロセッサエレメント105は、それぞれ対応するプログラマブルスイッチエレメント106から配設されたデータバス601及びイベント通知バス104、並びに、列方向に並列に配設された演算制御バス103と電気的に接続されている。
これにより、プロセッサエレメント105は、プログラマブルスイッチエレメント106を通して、データ入力108およびデータ出力109を行い、また、同じく、イベントの発行およびイベントの受け取りを行うことができる。
ここで、データパス部102は、このイベント通知バス104が、データバス601の一部として組み込まれる構成とすることもできる。
【0114】
また、データパス部102は、演算制御バス103がプロセッサエレメント105とプログラマブルスイッチエレメント106とに配線されており、この演算制御バス103から各プロセッサエレメント105およびプログラマブルスイッチエレメント106に命令コードアドレスが出力され、それぞれの動作が決定される。
演算制御バス103は、この構成により、省スペース化を実現することができるが、この構成に限定するものではない。
【0115】
例えば、プロセッサエレメント105およびプログラマブルスイッチエレメント106に対して、格子状に演算制御バス103を配設し、プロセッサエレメント105およびプログラマブルスイッチエレメント106が、隣接する演算制御バス103のうちいずれか一つを選択してアドレスを得る構成としても良く、これにより、アレイ型プロセッサ1は、きめ細かく柔軟な制御を行うことができる。
【0116】
また、例えば、プロセッサエレメント105およびプログラマブルスイッチエレメント106に対して、それぞれ独立の演算制御バス103を配設し、かつ、プロセッサエレメント105およびプログラマブルスイッチエレメント106に対して独立した制御を行なう構成としても良く、これにより、制御の自由度が拡大されると共に、アレイ型プロセッサ1の構成が単純化され、制御も容易になる。
【0117】
〔データパス部の第2の実施例〕
続いて、実施形態におけるデータパス部102の第2の実施例について、図面を参照して説明する。
図9は、本発明のアレイ型プロセッサ1の実施形態におけるデータパス部102の第2の実施例の概略ブロック図を示している。
【0118】
同図において、データパス部102は、プロセッサエレメント105およびプログラマブルスイッチエレメント106がそれぞれマトリックス状に配設された構成としており、演算制御バス701がプロセッサエレメント105と電気的に接続してあり、また、接続構成情報を制御する接続制御バス702がプログラマブルスイッチエレメント106と電気的に接続してある。
その他の構造については、図8に示すデータパス部102と同様としてある。但し、本図における接続制御バス702は、プロセッサエレメント105に着目して説明した図1における演算制御バス103に含まれるものであり、各プログラマブルスイッチエレメント106の接続状態を遷移させるための命令コードアドレスを伝播するための媒体である。また、本発明では、説明の明確化及び簡略化のため、必要に応じて接続制御バス702に関する説明を省略するが、本来は、全ての構成において、接続制御バス702も演算制御バス103に含まれて構成されているものである。以下における本実施例の説明では、各々を演算制御バス701と接続制御バス702とに区別する。
【0119】
ここで、演算制御バス701と接続制御バス702とは、それぞれプロセッサエレメント105とプログラマブルスイッチエレメント106とに命令コードアドレスを送ることができるように、それぞれが独立のリソースとして用意されている。
これによりプロセッサエレメント105とプログラマブルスイッチエレメント106との構成を全く独立に制御することが可能となり、プロセッサエレメント105と比較して、プログラマブルスイッチエレメント106による接続の変更をより多く可能にするなど、データパス部102の構成変更の自由度を高め、より柔軟性を増すことができる。
【0120】
このように演算制御バス701と接続制御バス702とを分離する場合も、演算制御バス701および接続制御バス702は、状態遷移管理部101からの制御により、演算制御バス103だけの構成の場合と同様の構成にて実現することができる。
また、本実施例は、図8においては、データバス601と分離しているイベント通知バス104を、データバス703内に含めた構成の例でもある。
【0121】
〔データパス部の第3の実施例〕
続いて、実施形態におけるデータパス部の第3の実施例について、図面を参照して説明する。
図10は、本発明のアレイ型プロセッサ1の実施形態におけるデータパス部102の第3の実施例の概略ブロック図を示している。
【0122】
同図において、データパス部102は、プロセッサエレメント105とプログラマブルスイッチエレメント106とが、各プロセッサエレメント105の周囲を八個のプログラマブルスイッチエレメント106で取り囲むように、配設した構成としてある。
ここで、データパス部102は、隣接するプログラマブルスイッチエレメント106同士、および隣接するプロブラマブルスイッチエレメント106とプロセッサエレメント105とがデータバス801により電気的に接続されており、また、プログラマブルスイッチエレメント106およびプロセッサエレメント105に、演算制御バス103が配線してある。ここで、図10には示していないが、各プロセッサエレメント105を取り囲むように四角に構成された8個のプログラマブルスイッチエレメント106のうち、この四角の対角に存在するプログラマブルスイッチエレメント106に関しても、この四角の中央に位置するプロセッサエレメント105とデータバス801を介して接続するよう構成することも可能である。
【0123】
プロセッサエレメント105同士のデータのやり取りは、プログラマブルスイッチエレメント106を介す形で行われる。
つまり、一つのプロセッサエレメント105が複数のスイッチエレメント106に接続されていることにより、プロセッサエレメント105のデータ入出力接続の自由度が高められている。
【0124】
〔データパス部の第4の実施例〕
続いて、実施形態におけるデータパス部102の第4の実施例について、図面を参照して説明する。
図11は、本発明のアレイ型プロセッサ1の実施形態におけるデータパス部102の第4の実施例の概略ブロック図を示している。
【0125】
同図において、データパス部102は、隣接するプロセッサエレメント105間を直接電気的に接続する、複数(一例として、16個)のプロセッサエレメント105からなるグループ902が、複数(20個)のプログラマブルスイッチエレメント106で囲まれるように、配設された構成としてある。
つまり、このグループ902間は、プログラマブルスイッチエレメント106を介して電気的に接続される。
【0126】
これにより、同一グループ902内の隣接するプロセッサエレメント105間では、プログラマブルスイッチエレメント106を通さずに接続することが可能となり、遅延等の性能面や回路量の削減による面積の縮小化といった効果を得ることができる。
即ち、配線において、プロセッサエレメント105をプログラマブルスイッチエレメント106で挟むように構成した場合、隣接するプロセッサエレメント105を接続する場合でも、その間に必ずプログラマブルスイッチエレメント106が設けられることとなり、遅延や面積でのデメリットが生じる。
また、実際の利用する場合を考慮すると、各プロセッサエレメント105間に必ずしもプログラマブルスイッチエレメント106が必要であるとは限らない。これは、例えば“A+B+C”を演算する場合、先ず“A”と“B”とが初段のプロセッサエレメント105に入力され、次に、この初段のプロセッサエレメント105における演算結果“A+B”と“C”とが、次段のプロセッサエレメント105に入力されることで実現することができる。これは、隣接するプロセッサエレメント105間を接続するためのプログラマブルスイッチエレメント106が必ずしも必要な訳ではないことを示している。
従って、本実施例では、ある程度のサイズ(個数)のプロセッサエレメント105のみのアレイを作成し、このアレイ同士をプログラマブルスイッチエレメント106により接続する。
但し、本実施例における構成においても、各プロセッサエレメント105同士を接続するためのスイッチエレメントは必要である。このスイッチエレメントは、隣接するプロセッサエレメント105同士を接続する機能のみを有するものであればよいため、本実施例では、詳細な説明を省略する。また、本実施例における図面では、このスイッチエレメントが、各プロセッサエレメント105に予め組み込まれているものとする。
【0127】
(シーケンサ部の構成)
〔シーケンサ部の第1の実施例〕
次に、実施形態(図2)におけるシーケンサ部201の第1の実施例について、図面を参照して説明する。
図12は、本発明のアレイ型プロセッサ1の実施形態におけるシーケンサ部201の第1の実施例の概略ブロック図を示している。
【0128】
同図において、シーケンサ部201は、クロック207,リセット208及びイベント209の各信号を入力し、イベント識別コード206及び/又は強制イベント識別コード210を出力する符号化器1001と、クロック207,リセット208及び次状態番号205の各信号入力し、現状態番号204を出力するレジスタ1002とで構成してある。
【0129】
ここで、入力された次状態番号205は、レジスタ1002に入力され、現状態番号204として出力される。
この際、新たな現状態番号204を出力するタイミングは、クロック207を用いて同期化することもできる。
また、リセット208の入力により、現状態番号204を初期化することもできる。
【0130】
符号化器1001は、入力されたイベント209を符号化し、イベント識別コード206及び/又は強制イベント識別コード210として出力する。
ここで、イベント209をそのままイベント識別コード206及び/又は強制イベント識別コード210とすることも可能であるし、符号化したものをイベント識別コード206及び/又は強制イベント識別コード210とすることも可能である。後者の場合、符号化により、イベント識別コード206及び/又は強制イベント識別コード210の伝送に必要とするビット幅を小さくすることができる。但し、以下に図15を用いて説明するが、イベント209を符号化せず、イベント識別コード206を、このイベント識別コード206における各ビットがイベント状態遷移テーブル(図15ではイベント状態遷移テーブル1111)の1つ以上の出力に1対1で対応する1hot信号として構成する方が、信号を容易に取り扱うことが可能となり、さらに、同一サイクル内で次状態番号が変化するという問題(ハザード)の発生を防ぎ易いという利点を発揮することができる。また、リセット208をイベント209の一つとして扱うこともできる。
【0131】
また、イベント識別コード206の発生タイミングは、クロック207を用いて同期化することもできるし、入力遷移時に出力が直ちに変化する非同期式とすることもできる。
【0132】
(状態遷移テーブルメモリの構成)
〔状態遷移テーブルメモリの第1の実施例〕
次に、実施形態(図2)における状態遷移テーブルメモリ202の第1の実施例について、図面を参照して説明する。
図13は、本発明のアレイ型プロセッサ1の実施形態における状態遷移テーブルメモリ202の第1の実施例の概略ブロック図を示している。
【0133】
状態遷移テーブルメモリ202は、イベント状態遷移テーブル1101、デフォルト状態遷移テーブル1102、強制状態遷移テーブル1103及びセレクタ1108、1110とからなっており、状態遷移テーブルメモリ202に書き込まれた状態遷移ルールにしたがって、ある演算状態から同一または異なる演算状態へ状態遷移を制御し、同一または異なる演算状態を新たな演算状態とすることができる。
【0134】
ここで、イベント状態遷移テーブル1101は、現状態番号204とイベント識別コード206とを入力し、両者の組み合わせに一致するエントリが存在した場合にのみ、それに応じた次状態番号1106が出力される。
また、一致したエントリが存在したかどうかを示す、イベント一致信号1104も同時に出力される。
一方、デフォルト状態遷移テーブル1102は、現状態番号204を入力し、この入力に応じた次状態番号1107を出力する。
【0135】
そして、この二つのテーブル1101、1102において、現状態番号204とイベント識別コード206との組み合わせに一致するエントリが、イベント状態遷移テーブル1101に存在する場合には、そこで指定された次状態番号1106がセレクタ1108で選択され次状態番号205として出力される。
また、上述の一致するエントリが、イベント状態遷移テーブル1101に存在しない場合には、デフォルト状態遷移テーブル1102で示された、現状態番号204に応じた次状態番号1107が、セレクタ1108で選択され次状態番号205として出力される。このセレクタ1108における選択は、イベント一致信号1104を用いることで実現できる。
【0136】
強制状態遷移テーブル1103は、強制イベント識別コード210が強制状態遷移テーブル1103のエントリと一致した場合に、次状態番号1109を決定する。
そして、この強制状態遷移テーブル1103において一致した場合には、セレクタ1110は、先に示した次状態番号1106、1107より優先的に、次状態番号1109を次状態番号205として出力することができる。
具体的には、このような出力は、強制状態遷移テーブル1103で一致が起こったことを示す強制イベント一致信号1105と、セレクタ1110を用いて実現することができる。
【0137】
このように、アレイ型プロセッサ1は、状態遷移管理部101が、強制状態遷移信号である強制イベント一致信号1105により、強制的に演算状態が遷移する構成とすると良く、これにより、制御が容易となる。但し、上記のような動作を実現するにあたり、上記におけるイベント状態遷移テーブル1101を、内容アドレスメモリ(CAM:Content Addressable Memory)により構成するとよい。また、これは、図17に示す状態遷移テーブルメモリ202における通常状態遷移テーブル1301でも同様である。但し、内容アドレスメモリとは、メモリをアドレスではなく内容(アドレスと異なり入力値の群が不連続)で引くメモリのことである。
【0138】
また、状態遷移テーブルメモリ202は、例えば、リセット208により強制的に次状態番号205を初期化することも可能である。
この構成により、状態遷移手段における状態間の遷移ルールをイベント状態遷移テーブル1101及び/又はデフォルト状態遷移テーブル1102及び/又は強制状態遷移テーブル1103に書き込むことができる。
つまり、デフォルト状態遷移テーブル1102を用いてデフォルトの状態遷移先を指定する。ここで、条件分岐が存在する(デフォルト以外の状態遷移先が存在する)場合には、それらを全てイベント状態遷移テーブル1101に書き込む。
また、割り込みのように、状態に関わらず必ず強制的に状態を遷移させたい場合には、次状態番号1109を強制状態遷移テーブル1103に書き込む。
このように各テーブルに、状態遷移条件に応じて複数持つ遷移可能な次状態の次状態番号を書き込むことにより、この書き込まれた次状態番号の中から一つを次状態として選択することが可能となる。ここで、状態遷移条件の判断はイベント識別コード206及び強制イベント識別コード210の判別により実現する。
但し、本実施例及び、その他の各実施例において、イベント識別コード及び強制イベント識別コード(各々の符号は各実施例におけるもの)を区別することなく、1つのコードとして構成することも可能である。
【0139】
また、イベント状態遷移テーブル1101のテーブルサイズが許す範囲内において、一状態が記録する遷移可能な次状態の数に制限は無く、状態遷移に要する時間も遷移可能な次状態の数に依らず一定とすることができる。即ち、全状態における条件分岐数の総和がイベント状態遷移テーブル1101のサイズ(エントリ数)に収まる数であれば問題は生じない。これは、一つの状態が持つ遷移可能な次状態数のばらつきに依って、イベント状態遷移テーブル1101に無駄が生じることが無いことを意味する。
【0140】
続いて、実施形態における状態遷移テーブルメモリ202に書き込まれた状態遷移例について、図13及び図14を参照して説明する。
図14は、本発明のアレイ型プロセッサ1の実施形態における状態遷移テーブルメモリ202に書き込まれた状態遷移例の図を示している。
先ず、同図において、現状態番号204がST−01の場合、次状態番号205は無条件にST−02となる。
この動作を状態遷移テーブルメモリ202に記述するには、デフォルト状態遷移テーブル1102に、‘‘現状態番号204をST−01、次状態番号1107をST−02’’としたエントリを作成することで実現される。
【0141】
続いて、動作時は、現状態番号204がST−01であるとイベント状態遷移テーブル1101に一致するエントリが存在しないためイベント一致信号1104は出力されず、デフォルト状態遷移テーブル1102において現状態番号204がST−01であるエントリが必ず有効となり、次状態番号1107がST−02となり、次状態番号205として出力される。
【0142】
次に現状態番号204がST−02の場合は、条件により次状態番号1106がST−02,ST−03,ST−05,ST−11の四つのいずれかとなる(図13を参照願います。)。
イベントEV−10が入力された場合は状態ST−03へ遷移するため、イベント状態遷移テーブル1101に、‘‘現状態番号204をST−02、イベント識別コード206をEV−10、次状態番号1106をST−03’’としたエントリを作成する。
【0143】
同様に、イベントEV−18が入力された場合は状態ST−05へ遷移するため、‘‘現状態番号204をST−02、イベント識別コード206をEV−18、次状態番号1106をST−05’’としたエントリ、イベントEV−21が入力された場合は状態ST−11へ遷移するため、‘‘現状態番号204をST−02、イベント識別コード206をEV−21、次状態番号1106をST−11’’としたエントリをそれぞれイベント状態遷移テーブル1101に作成する。
【0144】
それ以外の場合は次状態番号205がST−02であるので、デフォルト状態遷移テーブル1102に、‘‘現状態番号204をST−02、次状態番号1107をST−02’’としたエントリを作成する。
【0145】
上述した記述により、例えば、現状態番号204がST−02である場合に、イベント識別コード206にEV−21が入力されると、イベント状態遷移テーブル1101において、この二つの組み合わせに一致するエントリが有効となり、ST−11が次状態番号205として出力される。
その際、イベント状態遷移テーブル1101で一致が発生しているのでイベント一致信号1104が出力され、デフォルト状態遷移テーブル1102から出力される現状態番号204のST−02に対応した次状態番号1107のST−02は破棄される。
【0146】
次に、現状態番号204がST−02で、イベント識別コード206にEV−10、EV−18、EV−21のいずれも入力されなかった場合、イベント一致信号1104が出力されず、デフォルト状態遷移テーブル1102から、現状態番号ST−02に対応したST−02が次状態番号205として出力される。
【0147】
さらに、上記のいずれの場合においても、強制イベント識別コード210にIRQ−01が入力された場合、強制状態遷移テーブル1103においてIRQ−01に対応したST−01が次状態番号205として出力される(図13を参照願います。)。
この場合は、強制イベント一致信号1105が出力されるため、イベント状態遷移テーブル1101の出力およびデフォルト状態遷移テーブル1102の出力は破棄され、強制状態遷移テーブル1103からの次状態番号1109のST−01が有効となる。
【0148】
また、図13に示す状態遷移テーブルメモリ202は、以下に示すように応用して実施することが可能である。
以下に、この実施例の幾つかを図面を用いて詳細に説明する。
【0149】
〔状態遷移テーブルメモリの第2の実施例〕
図15は、図13に示す本発明の状態遷移テーブルメモリ202を変形した第2の実施例のブロック図を示している。
【0150】
図15を参照すると、本実施例による状態遷移テーブルメモリ202は、イベント状態遷移テーブル1111、デフォルト状態遷移テーブル1112、強制状態遷移テーブル1113、イベント発生判定回路1211,1212及びセレクタ1118,1119,1120を有して構成されており、図13に示した状態遷移テーブルメモリ202と同様に、書き込まれた状態遷移ルールに従って、ある演算状態から同一のまたは異なる演算状態への状態遷移を制御し、同一のまたは異なる演算状態を新たな演算状態とすることを可能としている。
【0151】
上記構成において、本実施例によるイベント状態遷移テーブル1111は、入力された現状態番号204に対して一つ以上のエントリを次状態番号1126として出力する(図15では、4つのエントリを次状態番号1126として出力するよう構成されている)。
この構成において、イベント状態遷移テーブル1111から出力される次状態番号1126の数は、各現状態番号204に対応する次状態番号1126において、この種類数が最も多い場合でも対応可能な数となるように構成される。即ち、現状態番号204がST−02である場合に対して遷移先となる次状態番号205がST−03,ST−05,ST−11,ST−13の計4種類存在する場合、この出力数は4つ、あるいはこれ以上となる。
また、例えばイベント状態遷移テーブル1111が入力された現状態番号204に対して4つのエントリを次状態番号1126として出力するよう構成した場合、イベント識別コード1206は、この4つの次状態番号1126の中から何れか1つの次状態番号1126をセレクタ1118に選択させる。このための構成としては、例えば、イベント識別コード1206を4ビットで構成し、各々のビットとイベント状態遷移テーブル1111の出力とを対応させ、セレクタ1118において“1”が格納されたビットに対応する次状態番号1126を選択して出力するよう構成することで実現することが可能である。但し、このように構成する場合、イベント状態遷移テーブル1111の出力数とイベント識別コード1206のビット数とを同数として構成する必要がある。
【0152】
また、上記では、イベント状態遷移テーブル1111の出力数が4である場合、イベント識別コード1206を4ビットで構成したが、これを(2n −1)≦4を満たすnビットにより構成することも可能である(図15に示す例ではnは3となる)。ここで、例えばイベント識別コード1206を3ビットで構成した場合、イベント識別コード1206は、0から7の8種類で表現されるため、イベント状態遷移テーブル1111の出力を、この値に対応させることで、セレクタ1118において出力させる次状態番号1126を選択させることが可能となる。以下に、図15を例に揚げて具体的に説明する。
図15を参照すると、イベント識別コード1206を3ビットにより“0”から“7”で構成し、イベント状態遷移テーブル1111の出力を同図における上から順に“1”,“2”,“3”,“4”と割り当てることで、セレクタ1119へ出力する次状態番号1126を選択させる。
但し、この場合、イベント識別コード1206が“0”若しくは“5”〜“7”であった場合は、セレクタ1119へデフォルト状態遷移テーブル1112から入力された次状態番号1127を出力するようセレクタ1118を制御する。
【0153】
また、上記の各イベント識別コード1206の構成双方を両立させて構成することも可能である。このように構成する場合、図15におけるセレクタ1118に図28に示すようなメモリを接続させ、このメモリからの制御に従い、イベント識別コード1206をデコードするか否かを選択させるよう構成することで実現することが可能である。但し、この場合でも、イベント識別コード1206のビット数は、イベント状態遷移テーブル1111からセレクタ1118へ出力される次状態番号候補の数に限定する必要がある。
【0154】
このようにセレクタ1118で選択して出力された次状態番号1126は、セレクタ1119に入力される。また、このセレクタ1119には、デフォルト状態遷移テーブル1112から出力された次状態番号1127も入力されるよう構成される。
ここで、デフォルト状態遷移テーブル1112は、入力された現状態番号204に一意に対応する次状態番号1127を出力するよう構成される。従って、セレクタ1119は、イベント状態遷移テーブル1111及びデフォルト状態遷移テーブル1112より入力された次状態番号1126,1127の中から何れか一方を選択して出力するよう動作する。
【0155】
この動作において、何れの次状態番号(1126,1127)を出力するかを判断する要素として、イベント発生判定回路1211から入力されたイベント一致信号1114を用いる。このイベント一致信号1114とは、例えば1ビットで構成された信号であり、イベント発生判定回路1211において入力されたイベント識別コード1206に対応するイベントが存在する場合に“1”として出力され、存在しない場合に“0”として出力される信号である。
また、イベント識別コード1206にエンコードされているもの(図15では3ビットの信号)を用いる場合、イベント発生判定回路1211は、イベント識別コード1206が例えば“0”若しくは“5”〜“7”のいずれかの信号であった場合、イベント一致信号1114として“0”を出力し、“1”〜“4”のいずれかであった場合、“1”を出力する。但し、この構成において、イベント識別コード1206として、“5”〜“7”を発生させないよう構成することも可能である。この場合、イベント識別コード1206が“0”のときにイベント無しを判定し、また、イベント識別コード1206が“1”〜“4”のときにセレクタ1118で次状態番号1126を選択するよう構成する。これにより、イベント発生判定回路1211が“5”〜“7”に対する判定を行う必要がなくなる。
これに対して、イベント識別コード1206にエンコードされていないもの(図15では、4ビットの信号)を用いる場合、イベント発生判定回路1211は、イベント識別コード1206を構成する各ビットの何れかに“1”が格納されていた場合、イベント一致信号1114として“1”を出力するように構成され、これ以外であれば“0”を出力するよう構成される。但し、例えば、イベント無しを示すためのイベント識別コード1206として、全てのビットが“0”である信号(“0000”)を用いる場合、イベント発生判定回路1211を、4つの入力をもつ論理和回路(OR回路)で構成することが可能である。これにより、イベント識別コード1206のいずれかに“1”が格納されていた場合、イベント発生判定回路1211は、“1”を出力するが、何れのビットにも“0”が格納されていた場合、“0”を出力するよう構成することが可能である。
【0156】
従って、セレクタ1119は、イベント一致信号1114が“1”である場合、イベント識別コード1206に対応するイベントが存在すると判断して、イベント状態遷移テーブル1111から入力された次状態番号1126を選択して出力し、また、イベント一致信号1114が“0”である場合、イベント識別コード1206に対応するイベントが存在しないと判断して、デフォルト状態遷移テーブル1112から入力された次状態番号1127を選択して出力する。但し、デフォルト状態遷移テーブル1112の構成としては、上記図13で示した構成と同一のもので実施することが可能である。
【0157】
更に、セレクタ1119から出力された次状態番号(1126若しくは1127のいずれか)は、セレクタ1120に入力され、強制状態遷移テーブル1113から出力された次状態番号1128との何れか一方が出力されるよう構成されている。
ここで、強制状態遷移テーブル1113は、他の構成から割り込みとして入力された強制イベント識別コード1216に対応するエントリを次状態番号1128としてセレクタ1120へ出力する。
【0158】
また、セレクタ1120には、イベント発生判定回路1212から出力された強制イベント一致信号1115も入力されるよう構成されている。このイベント発生判定回路1212は、上記のイベント発生判定回路1211と同様な構成であり、入力されたイベント識別コード1216に対応するイベントが存在する場合に強制イベント一致信号1115を“1”として出力し、存在しない場合に“0”として出力する。
また、強制イベント識別コード1216にエンコードされているもの(例えば2ビットの信号)を用いる場合、イベント発生判定回路1212は、強制イベント識別コード1216が“0”のときに、強制イベント一致信号1115を“0”として出力し、それ以外(例えば2ビットで構成した場合、“1”〜“3”)の場合、“1”として出力する。
また、強制イベント識別コード1216にエンコードされていないもの(例えば4ビットの信号)を用いるよう構成することも可能である。このように、エンコードされていない信号を使用した場合、複数の強制イベントが発生した場合も適用することが可能となる。つまり、同時に2つ以上のイベントの発生を表現することが可能である。
また、このように2つのイベントが同時に発生した場合、以下に示すような幾通りかの方法で、処理を実行することが可能となる。これは、発生した2つ以上のイベントに対していずれかを優先させる方法と、発生したイベントの組み合わせに応じた処理を実行する方法と、等である。
ここで、例えば2ビット幅の強制イベント識別コード1216を判別できる回路の場合、2ビットで表現される4値全てを判別できるような強制状態遷移テーブル1113を作成する。即ち、強制状態遷移テーブル1113において、強制イベント識別コード1216が“0”であった場合、“なにも発生しない”を判定し、“1”であった場合、“イベントaが発生した”を判定し、“2”であった場合、“イベントbが発生した”を判定し、“3”であった場合、“イベントa及びbが発生した”を判定するよう構成する。ここで、“1”,“2”,“3”各々に対応した次状態番号1128は、強制状態遷移テーブル1113のエントリとして書き込まれる。これにより、強制イベント識別コード1216による割り込みに対応することが可能となる。
このような構成のもと、前者として説明した、いずれかのイベントを優先させる方法を適用する場合には、イベントa若しくはイベントbのいずれか一方に対応した次状態番号1128を出力する。また、後者として説明した組み合わせに応じた処理を実行する方法を適用する場合には、イベントa、イベントbのいずれにも対応しない次状態番号1128を出力する。これは、強制イベント識別コード1216が“3”の場合に応じたエントリを新たに強制状態遷移テーブル1113に書き込むことで実現される。これにより、両イベントa及びbが発生したときに独自の処理を実行することが可能となる。
また、上記した方法の他に、2ビットで構成した強制イベント識別コード1216自体に優先順位を設け、この優先順位に基づき次状態番号1128を決定する方法も可能である。例えばイベントaがイベントbより優先して判断されるよう構成した場合では、強制イベント識別コード1216が“0”であれば“なにも発生しない”が判定され、“1”であれば“イベントaが発生した”が判定され、“2”であれば“イベントbが発生した”が判定される。但し、イベントa及びbが発生した場合には、イベントaが優先されるため、イベントaが発生したとハードウェア的に判断されることとなる。即ち、この方法では、2つ以上のイベントが発生した場合に独自の処理を実行することができなくなる。
このように強制イベント一致信号1115として“1”が出力されると、セレクタ1120は強制状態遷移テーブル1113から入力された次状態番号1128を選択し、次状態番号205として出力するよう動作する。
また、イベント発生判定回路1212において入力された強制イベント識別コード1216に対応する強制イベントが存在しない場合には、即ち、強制イベント一致信号1115が例えば“0”として出力された場合には、セレクタ1120はセレクタ1119から入力された次状態番号(1126若しくは1127のいずれか)を選択し、次状態番号205として出力するよう動作する。
【0159】
また、上記構成において、イベント状態遷移テーブル1111からセレクタ1118へ出力される次状態番号候補の数は、状態遷移先となる次状態番号1126の数の最多種類(以下、これを最大分岐数という)として構成されるとしているが、最大分岐数が多岐にわたる場合、ハードウェアにかけるオーバヘッド(所謂、面積及び遅延の増加)が大きくなるため、ある程度、次状態番号候補の数、及び状態遷移先となる次状態番号1126の種類を制限する必要が存在する。この問題を生じない構成が、図13に示す構成である。従って、実施にあたっては、用途に応じて使い分けることが望ましい。但し、本実施例において、状態遷移先の次状態番号1126を、次状態番号候補の数以上とすることも可能である。これは、ハードウェアにおける次状態番号1126の出力の種類の制限を、ソフトウェアにおいて仮想的に回避する方法である。この方法では、例えば、イベント識別コード1206による条件分岐をソフトウェアにより二段以上とすることで実現される。
これは、図15に示す構成において、ソフトウェア的に二段階以上に条件分岐を行うことで実現される。例えば、現状態番号204が“01”の状態に対し、遷移先となる次状態番号205の候補が“10”〜“17”の計8種類存在する場合、先ず、第1段階目の条件分岐として、“01”の現状態から“02”若しくは“03”の次状態に遷移し、次に、例えば“02”の現状態から“10”〜“13”の次状態、若しくは“03”の現状態から“14”〜“17”の次状態へ条件分岐する。これにより、イベント状態遷移テーブル1111の出力が4つしか存在しない場合でも、それ以上の8分岐が可能となる。但し、このように構成した場合、状態遷移時に、1段階で構成した場合よりも1段階余分な状態を経る必要がある。
また、イベント識別コード1206は、状態番号との組み合わせで意味を持つため、異なる状態間でコードを重複させることが可能である。これは、どの瞬間においても有効である状態が1つであるため、入力されたイベント識別コード1206を、その有効な状態における値であると判断することができるためである。
例えば、状態aと状態bとにおいて、イベント識別コード1206の共通な値xが別の意味(状態aの時に“甲”、状態bの時に“乙”の意味を持つとする)を持つことは可能である。その理由は、状態aと状態bとが同時に有効であることがあり得ない為、状態aの時に値xが入力されれば、(a,x)の組み合わせで値xの意味を“甲”と判断することができる。また、状態bの時に値xが入力された場合でも、(b,x)の組み合わせで値xを“乙”と判断することができる。即ち、値xのみで意味を持たせる必要はない。
【0160】
〔状態遷移テーブルメモリの第3の実施例〕
更に、以下に本発明による状態遷移テーブルメモリ202の第3の実施例を図面を用いて詳細に説明する。
図16は、本発明の図13に示す状態遷移テーブルメモリ202の第1の実施例を変形して応用した第3の実施例のブロック図を示している。
【0161】
図16を参照すると、本実施例による状態遷移テーブルメモリ202は、イベント状態遷移テーブル1121、デフォルト状態遷移テーブル1122、強制状態遷移テーブル1123、イベント発生判定回路1221,1222及びセレクタ1138,1139,1140を有して構成されており、図13に示した状態遷移テーブルメモリ202と同様に、書き込まれた状態遷移ルールに従って、ある演算状態から同一のまたは異なる演算状態への状態遷移を制御し、同一のまたは異なる演算状態を新たな演算状態とすることが可能なものである。
この図面からも明らかなように、本実施例による状態遷移テーブルメモリ202は、図15に示す状態遷移テーブルメモリ202の第2の実施例と概ね同様な構成となっているが、相違点として、イベント状態遷移テーブル1121及びデフォルト状態遷移テーブル1122がそれぞれ現状態番号204に対応させて次状態番号1146若しくは1147を格納するだけでなく、同様に対応させて命令コードアドレス1346若しくは1347(図16中、“CA−(番号)”で記載されているものは、命令コードアドレスである)も格納するように構成され、また、強制状態遷移テーブル1123が強制イベント識別コード1236に対応させて次状態番号1148を格納するだけでなく、同様に対応させて命令コードアドレス1348も格納するように構成されており、且つ、イベント状態遷移テーブル1121,デフォルト状態遷移テーブル1122,及び強制状態遷移テーブル1123がそれぞれ次状態番号1146,1147,若しくは1148だけでなく、命令コードアドレス1346,1347,若しくは1348も出力するように構成され、さらに各セレクタ1138,1139,及び1140それぞれが次状態番号1146,1147,若しくは1148の他に命令コードアドレス1346,1347,若しくは1348も出力するよう構成される。但し、セレクタ1140の出力先は、次状態番号205と命令コードアドレス1505とを分離して、次状態番号205をシーケンサ部201(図5参照)へ、また、命令コードアドレス1505を演算制御バス103を介してデータパス部102(図5参照)へ、それぞれ出力するよう構成される。更に、イベント状態遷移テーブル1121,デフォルト状態遷移テーブル1122,強制状態遷移テーブル1123,各セレクタ1138,1139は、その出力として、次状態番号1146,1147,若しくは1148と命令コードアドレス1346,1347,若しくは1348とをシリアルあるいはパラレルに出力するよう構成されるが、パラレルに出力するよう構成した場合、各々を同時に出力する構成に限定されるものではない。また、上記構成において、各次状態番号1146,1147,1148と対として出力される命令コードアドレス1346,1347,1348は、各々の対において必ずしも1つとは限らず、1つの次状態番号1146,1147,1148に対して複数の命令コードアドレス1346,1347,1348が出力されるよう構成することも可能である。
【0162】
この構成は、図5に示した状態遷移管理部101の構成に伴い要求された構成である。即ち、図16において、出力された次状態番号205は、図5におけるシーケンサ部201に入力され、また、同図16における演算制御バス103へは、命令コードアドレス1505がデータパス部102へ向けて出力される。
【0163】
〔状態遷移テーブルメモリの第4の実施例〕
続いて、実施形態における状態遷移テーブルメモリ202の第4の実施例について、図面を参照して説明する。
図17は、本発明のアレイ型プロセッサ1の実施形態における状態遷移テーブルメモリ202の第4の実施例の概略ブロック図を示している。
【0164】
同図において、状態遷移テーブルメモリ202は、通常状態遷移テーブル1301、強制状態遷移テーブル1103及びセレクタ1110とからなっている。ここで、イベント識別コード206に、対象となるイベントが発生しなかったことを示すNoEventというコードを加えることにより、図13に示すデフォルト状態遷移テーブル1102の機能をイベント状態遷移テーブル1101に含ませて、通常状態遷移テーブル1301としている。
【0165】
これにより、通常の状態遷移は、通常状態遷移テーブル1301によって、また、割り込み等の処理は、強制状態遷移テーブル1103によって処理される。そのためには、データパス部102等からのイベント209への入力信号を、NoEventを含めて符号化する必要がある。
この処理は、シーケンサ部201内でも実現できるし、データパス部102内部でも実現することができる。
その他の構造は、図13に示す状態遷移テーブルメモリ202と同様としてある。
【0166】
続いて、例えば、図14に示した状態遷移を実現させる動作について説明する。
先ず、現状態番号204がST−01の場合は、常に、次状態番号1106がST−02となる必要がある。そのため、現状態番号204が入力される場合には、イベント識別コード206として必ずNoEventが入力されるようにする。
これにより、通常状態遷移テーブル1301中の‘‘現状態番号204がST−01、イベント識別コード206がNoEvent’’のエントリに一致し、ST−02が次状態番号1106として出力される。
【0167】
そして、現状態番号204がST−02の場合は、イベント識別コード206としてEV−10、EV−18、EV−21のいずれかが入力した場合は通常状態遷移テーブル1301において図13に示すイベント状態遷移テーブル1101と同様の記述および動作をするが、これらのイベント識別コード206が入力されない場合には必ずNoEventがイベント識別コード206として入力されるようにする。
【0168】
これにより、図13ではデフォルト状態遷移テーブル1102で動作していたものが、図17では通常状態遷移テーブル1301において‘‘現状態番号204がST−02、イベント識別コード206がNoEvent’’のエントリに一致し、ST−02を次状態番号1106として出力する。
また、強制状態遷移テーブル1103については図13と同様の動作をする。その他の動作および作用は、図13に示す状態遷移テーブルメモリ202と同様としてある。
【0169】
〔状態遷移テーブルメモリの第5の実施例〕
更に、上述した本発明による状態遷移テーブルメモリ202の第2の実施例と第4の実施例とを組み合わせた実施例について、以下に、状態遷移テーブルメモリの第5の実施例として図面を用いて詳細に説明する。
図18は、本実施例による状態遷移テーブルメモリ202の構成を示すブロック図である。
図18を参照すると、本実施例による状態遷移テーブルメモリ202は、イベント状態遷移テーブル1131、強制状態遷移テーブル1133、セレクタ1158、1159及びイベント発生判定回路1232を有して構成されている。
ここで、状態遷移テーブルメモリの第4の実施例と同様に、イベント識別コード1246に、対象となるイベントが発生しなかったことを示すNoEventというコードを加える。
また、本実施例は、例えばイベント状態遷移テーブル1131の出力を二つ以上(図18では、例として四つ)設け、この中で何れか一つ(例えば図18において最も下部に構成された信号線)をNoEventの場合に対応した次状態番号1166を出力する信号線として固定し、NoEventがセレクタ1158に入力された場合に、セレクタ1158において、必ず上記のNoEventに対応した信号線から入力された次状態番号1166を選択して出力するよう構成する。これにより、デフォルト状態遷移テーブルを削除することが可能となる。
【0170】
また、状態遷移テーブルメモリの第4の実施例と同様に、通常の状態遷移は、イベント状態遷移テーブル1131によって処理され、更に、割り込み等の処理は、強制状態遷移テーブル1133によって処理される。
そのためには、本実施例においても、データパス部102等からのイベント209への入力信号を、NoEventを含めて符号化する必要がある。
この処理は、シーケンサ部201内でも実現できるし、データパス部102内部でも実現することができる。
その他の構造は、図15に示す状態遷移テーブルメモリ202と同様である。
【0171】
(制御情報メモリの構成)
〔制御情報メモリの第1の実施例〕
次に、実施形態(図2)における制御情報メモリ203の第1の実施例について、図面を参照して説明する。
図19は、本発明のアレイ型プロセッサ1の実施形態における制御情報メモリ203の第1の実施例の概略ブロック図を示している。
同図において、状態遷移管理部101を構成する制御情報メモリ203は、複数の演算制御情報メモリ1402およびデコーダ1411とからなっている。
【0172】
ここで、制御情報メモリ203は、状態番号1401の入力に応じて、一つ以上の演算制御情報メモリ1402が選択され、この選択された演算制御情報メモリ1402の中の情報が演算制御バス103を通じてデータパス部102に出力される構成としてある。
このように、アレイ型プロセッサ1は、演算制御情報メモリ1402を有することにより、複数の演算制御バス103を効率良く制御できるので、結果的に、データパス部102の制御を効率良く行うことができる。
即ち、状態遷移テーブルメモリ202が1状態につき複数のエントリ(あるいは複数個の次状態候補)を有しているため、出力ビット幅を狭くすることが状態遷移テーブルメモリ202の面積削減効果に大きく作用するが、演算制御バス103を介して出力される命令コードアドレスの自由度を向上させる(つまり、各プロセッサエレメント105毎や各プログラマブルスイッチエレメント106毎に命令コードアドレスを割り当てる)ためには、出力ビット幅を広くする必要がある。上記の制御情報メモリ203は、この相反する両者の要求を満足させるために設けられるものである。即ち、状態遷移テーブルメモリ202とデータパス部102との間に制御情報メモリ203を設け、イベント状態遷移テーブル1111の深さ(アドレス空間若しくはエントリ数)よりも制御情報メモリ203の深さ(アドレス空間)の方を浅くすることにより、状態遷移テーブルメモリ202に要求される面積の削減と、状態遷移先の自由度を向上させるために要求される命令コードアドレスの自由度の向上と、を両立させることが可能となる。
この具体的な例を図15を用いて説明すると、図2における状態遷移テーブルメモリ202に図15に示す状態遷移テーブルメモリ202を構成した例では、1つの現状態番号204に対応し、イベント識別テーブル1111から4つの分岐先である次状態番号1126と、デフォルト状態遷移テーブル1112から1つの遷移先である次状態番号1127と、を出力するよう構成されており、更に、強制イベント識別コードに対応する次状態番号1128が強制状態遷移テーブル1113から出力されるよう構成されており、これらから、セレクタ1118、セレクタ1119、セレクタ1120において1つが選択され、次状態番号205として出力される。この出力された次状態番号205は、シーケンサ部201において、現状態番号204に置き換えられ、制御情報メモリ203へ出力される構成となっている。制御情報メモリ203では、例えば図19を用いて説明すると、入力された状態番号1401に対応する演算制御情報メモリ1402を選択し、演算制御情報メモリ1402に記憶された命令コードアドレス1505を演算制御バス103を介して、データパス部102に入力する構成となっている。これに対し、制御情報メモリ203が構成されていない場合、状態遷移テーブルメモリ202の出力に命令コードアドレス1505を有していなければならない。例えば、図5における状態遷移テーブル202に図16に示す状態遷移テーブル202を構成した例では、制御情報メモリ203を構成しておらず、イベント状態遷移テーブル1121と、デフォルト状態遷移テーブル1122と、強制状態遷移テーブル1123と、には、現状態番号204と次状態番号(1146,1147,1148)だけでなく、次状態番号(1146,1147,1148)に対応する命令コードアドレス(1346,1347,1348)のためのメモリも必要となる。このため、各テーブル(イベント状態遷移テーブル1121、デフォルト状態遷移テーブル1122、強制状態遷移テーブル1123)には、命令コードアドレス(1346,1347,1348)を格納するためのメモリ領域も要求される。
即ち、イベント状態遷移テーブル1121に関してのみ比べても、例えば1つの現状態番号204に対して4組の次状態番号1146及び命令コードアドレス1346を出力するよう構成(図16に示す構成)した場合では、制御情報メモリ203を組み込んだ場合の約4倍のメモリが必要となり、また、デフォルト状態遷移テーブル1122、および、強制状態遷移テーブル1123にも命令コードアドレス(1347,1348)を有するため、命令コード用のメモリが制御情報メモリ203を設けた場合の約5倍、必要となる。更に、セレクタ(1138,1139,1140)等のビット幅もこれに応じて広く構成する必要がある。
図5の構成では、制御情報メモリ203を有していないために、図16に示されるように状態遷移テーブルメモリ202のメモリ数が増加し、ビット幅を広くする必要があるが、高速化には向いている。
一方、図2に示す構成は、制御情報メモリ203を持たせることで、状態遷移テーブルメモリ202のメモリ領域が削減される。更に、この構成では、状態遷移テーブルメモリ202が次状態番号205だけを出力するため、ビット幅を狭く構成することが可能となる。但し、この構成では、一旦制御情報メモリ203を介するために速度は遅くなる。また、制御情報テーブルメモリ203が別に構成されていることに起因するメモリ効率の良さを利用して、命令コードアドレスの出力数を図16に示す状態遷移テーブルメモリ202から出力される数よりも増やすことにより、データパス部102の構成の高効率化を図ることが可能となる。
即ち、この両者の構成は、命令コード配布数を増やす(自由度を上げる)ことを目的とする場合と、処理速度を上げることを目的とする場合と、で各々使い分けられるものである。
但し、メモリの参照を状態遷移テーブル202と制御情報メモリ203との2回として構成することが遅延的に問題を有する場合は、命令コードアドレス1505の自由度を削減し、イベント状態遷移テーブル1121と、デフォルト状態遷移テーブル1122と、強制状態遷移テーブル1123と、における出力ビット幅を削減することで、上記のような問題を回避することも可能である。
なお、状態番号1401は、現状態番号204または次状態番号205を指している。
【0173】
(プロセッサエレメントの構成)
〔プロセッサエレメントの第1の実施例〕
次に、実施形態(図2)におけるプロセッサエレメント105の第1の実施例について、図面を参照して説明する。
図20は、本発明のアレイ型プロセッサ1の実施形態におけるプロセッサエレメント105の第1の実施例の概略ブロック図を示している。
同図において、プロセッサエレメント105は、複数の命令コードを記憶する命令コードメモリ1501、命令コードを解読する命令デコーダ1502、デコードされた命令コードを実行する演算部1503及び演算処理データを記録するレジスタ1504とで構成してある。
【0174】
ここで、プロセッサエレメント105は、演算制御バス103を通して与えられる命令コードアドレス1505を入力すると、命令コードメモリ1501内に記憶されている命令コード1508が一つ選択されて出力され、この命令コード1508を入力した命令デコーダ1502が、命令コード1508を解釈し、この解釈により、演算部1503およびレジスタ部1504の動作が決定される。このように命令デコーダ1502の解釈により、演算部1503は、何れの入力信号を用いて何の演算を行い、何を何処へ出力するかを決定する。また、この構成により、レジスタ部1504を使用するか否かの動作も決定される。
【0175】
このように、アレイ型プロセッサ1は、プロセッサエレメント105が、演算処理データを記録するレジスタ1504を有する構成としてあるので、演算部1503とレジスタ1504間の配線効率が改善されて、小型化されるとともに処理性能が向上する。
【0176】
また、好ましくは、アレイ型プロセッサ1は、プロセッサエレメント105が、外部からの入力データ1506またはレジスタ1504に記録された演算処理データに対して、状態遷移管理部101からの制御に応じた演算処理を行ない、この演算処理結果を、外部に出力データ1507として出力するか、あるいは、前記レジスタに記録する構成とすると良く、これにより、演算処理を効率良く実行することができ、処理性能が向上する。
【0177】
演算部1503は、入力データ1506またはレジスタ1504からのデータを入力として演算し、出力データ1507またはレジスタ1504へ結果を出力することを基本動作とする。
また、必ずしも各プロセッサエレメント105内に、レジスタ1504が必要なわけではない。
さらにまた、複数のプロセッサエレメントにつき一つのレジスタを持つことや、複数のプロセッサエレメントを一つのグループとし、そのグループにレジスタを属させることも可能であり、また、演算制御バス103の入力から演算部1503およびレジスタ1504までのパス中にレジスタを設け、プロセッサエレメント105の動作変更、正確には、プロセッサエレメント105の動作開始(状態の実現若しくは構成の変更)を同期化することも可能である。これは、状態遷移管理部101から次状態番号205に応じた命令コードアドレスが届くよう構成されている場合に、次サイクルでこれを有効化する必要があるために組み込まれた構成である。また、このように構成することにより、サイクルの開始と同期して各プロセッサエレメントの構成(状態)が切り替わり、その後、演算が一斉に開始されるようになる。
【0178】
〔プロセッサエレメントの第2の実施例〕
続いて、実施形態におけるプロセッサエレメント105の第2の実施例について、図面を参照して説明する。
図21は、本発明のアレイ型プロセッサ1の実施形態におけるプロセッサエレメント105の第2の実施例の概略ブロック図を示している。
【0179】
同図において、プロセッサエレメント105は、命令コードメモリ1501、命令デコーダ1602、演算部1503、レジスタ1504及びプログラマブルスイッチ1603、1604とからなっており、命令デコーダ1602が、制御信号1601を入力する構成としてある。
【0180】
命令デコーダ1602は、命令コード1508と制御信号1601との両方を使用して演算部1503とレジスタ1504とに制御信号を出力する。また、このレジスタ1504は、適宜、信号を演算部1503と受け渡しする。
この制御信号1601は、プロセッサエレメント105の出力やデータパス部102の外部から来る信号である。ここで、データパス部102の外部から来る信号としては、チップ外部(制御用プロセッサ)や状態遷移管理部101等が例に挙げられる。これは、例えば、状態遷移管理部101が複数のプロセッサエレメントに対して共通の命令コードアドレスを配布するが、制御信号1601は各プロセッサエレメント105に対して個別に配布するという方法が適用されるためである。これは、同じ命令コードアドレスを使用(使用命令コードアドレス空間の削減=効率化)しながら、微妙な調整を制御信号1601により実現するためである。
これにより、状態遷移管理部101から発行される命令コードアドレス1505のみでなく、データパス部102内部やアレイ型プロセッサ1の外部からの信号によりプロセッサエレメント105の動作を制御することも可能としている。例えば、演算部1503が2入力1出力のセレクタを実現するということが命令コードアドレスにより決定されている場合、セレクタの選択線(制御)も命令コードに含ませる方法の他に、選択線をプロセッサエレメント105外部から入力させる方法も適用することが可能である。この構成については、レジスタ1504の書き込み制御やシフトの方向等に関しても同様である。
このように構成することで、基本的な構成を命令コードアドレスにより決定し、また、一部を外部から制御することが可能となり、同一の命令コードアドレスでありながら、例えば条件等によって、一部の状態に変化を加える動作を実現することが可能となる。
【0181】
したがって、例えば、他のプロセッサエレメント105の出力信号を当該のプロセッサエレメント105に入力させ、当該の演算器で実現しているセレクタの選択信号を制御する、即ち、演算部1503でセレクタを演算器として実現(この実現は命令コードにより行われる)している時に、その選択制御を当該のプロセッサエレメント105が行うのでなく、他のプロセッサエレメント105からの出力により行うことも可能となる。
【0182】
また、プロセッサエレメント105は、演算部1503と入力データとの間に、プログラマブルスイッチ1603を、演算部1503と出力データ1507との間に、プログラマブルスイッチ1604を配置している。
これにより、複数の入力データ1506の中から使用するものを選択することや、複数の出力先である出力データ1507の中から、出力先を選択することができる。
【0183】
このようにすることにより、プロセッサエレメント105は、特に、図10に示したように、一つのプロセッサエレメント105が複数のプログラマブルスイッチエレメント106に接続されている場合や、図11に示したように、プロセッサエレメント同士がプログラマブルスイッチエレメント106を通さずに直接電気的に接続されている場合に、処理性能を向上させることができる。
なお、プログラマブルスイッチ1603、1604は、入力側及び出力側両方に設置することも可能であるし、どちらか一方だけに設置することも可能である。
その他の構造および作用は、図20に示すプロセッサエレメント105と同様としてある。
【0184】
(プログラマブルスイッチエレメントの構成)
〔プログラマブルスイッチエレメントの第1の実施例〕
次に、実施形態(図7)におけるプログラマブルスイッチエレメント106の第1の実施例について、図面を参照して説明する。
図22は、本発明のアレイ型プロセッサ1の実施形態におけるプログラマブルスイッチエレメント106の第1の実施例の概略ブロック図を示している。
同図において、プログラマブルスイッチエレメント106は、接続構成情報1703を複数セット記憶する接続構成情報メモリ1701、接続スイッチ1702及び接続線1704とからなっている。
【0185】
ここで、接続構成情報1703は、図示してないが、プロセッサエレメント105及びプログラマブルスイッチエレメント106間、及び/又は、プログラマブルスイッチエレメント106相互間の接続構成を指示する情報であり、この接続構成情報1703に基づいて、接続スイッチ1702は、接続線1704間の電気的接続をOn/Offする機能を果たす。
【0186】
プログラマブルスイッチエレメント106は、演算制御バス103を通して入力された命令コードアドレス1505によって、接続構成情報メモリ1701の中から、一つの接続構成情報1703を選択し出力する。
そして、この接続構成情報1703は、各接続スイッチ1702の動作を決定し、結果的に、プロセッサエレメント105及びプログラマブルスイッチエレメント106間、及び/又は、プログラマブルスイッチエレメント106相互間の接続構成を指示する
【0187】
ここで、接続スイッチ1702および接続線1704は、双方向に信号伝播を可能としても良いし単方向の信号伝播のみを可能としても良い。
また、接続スイッチ1702および接続線1704毎に双方向と単方向を分けても良い。
【0188】
プログラマブルスイッチエレメント106は、接続構成情報メモリ1701の出力をそのまま接続スイッチ1702の制御に使用しているが、接続構成情報メモリ1701と接続スイッチ1702の間にデコーダを設置することもできる。また、プログラマブルスイッチエレメント106は、排他的に接続がOnされる接続スイッチの接続構成情報メモリを共有化することなどにより、接続スイッチの数に対して接続構成情報メモリの量を減らすことができる。
【0189】
さらにまた、プログラマブルスイッチエレメント106は、演算制御バス103の入力から接続スイッチ1702までのパス中にレジスタを設け、プログラマブルスイッチエレメント106の接続変更を同期化することができる。即ち、このように構成することにより、サイクルの開始と同期して各プロセッサエレメントの構成(状態)を切り替えるという接続関係の変更を同期化することが可能となる。
【0190】
(データパス部の制御方法)
〔データパス部の制御方法の第1の実施例〕
次に、実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法について、図面を参照して説明する。
図23は、本発明のアレイ型プロセッサ1の実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第1の実施例の模式図を示している。
【0191】
同図において、データパス部102は、演算制御情報メモリ1402を使用して、プロセッサエレメント105を制御する方法を示している。
先ず、図19に示すように、状態番号1401により選択された、制御情報メモリ203に含まれる演算制御情報メモリ1402が使用され、この演算制御情報メモリ1402は、その演算制御情報メモリ1402が制御するプロセッサエレメント105と同数の命令コードアドレスを記録する。
【0192】
つまり、プロセッサエレメント105と命令コードアドレスが、一対一の対応をしている。
具体的には、同図に示すように、Addr1はPE1、Addr2はPE2というように対応しており、各プロセッサエレメント105のアドレスを独立に制御することができる。
なお、一つの演算制御情報メモリ203が制御するプロセッサエレメント105の配置は、図示した例に限られるものではないことは勿論である。つまり、本形態において、必ずしも横一列に配置されたプロセッサエレメント105を1つの演算制御情報メモリ1402が制御するよう構成する必要はなく、また、プロセッサエレメント105の順番(並び)も同様にこの構成に限定されるものではない。但し、プロセッサエレメント105をアレイ状に配列した場合、その各プロセッサエレメント105に個々の命令コードアドレスが供給されるとする構成が望ましい。
【0193】
また、図示してないが、プログラマブルスイッチエレメント106に対しては、プロセッサエレメント105とは独立した同様の形式の演算制御情報メモリを持ち、プロセッサエレメント105と同様に制御することが可能である。
【0194】
〔データパス部の制御方法の第2の実施例〕
上述したデータパス部102の制御方法の第2の実施例としては、演算制御情報メモリ1402内にプロセッサエレメント105とプログラマブルスイッチエレメント106の両方の命令コードアドレスを持たせ、同一の演算制御情報メモリ1402によりプロセッサエレメント105とプログラマブルスイッチエレメント106の両方を制御することもできる。
【0195】
この構成を説明するための模式図を図24に示す。
図24を参照すると、本実施例では、演算制御情報メモリ1402において、プロセッサエレメント105に対する命令コードアドレスの他に、プログラマブルスイッチエレメント106への命令コードアドレスも格納するように構成される。
この構成により、本実施例では、接続構成情報メモリを異なる構成として設ける必要がなくなり、回路規模の縮小を図ることができる。
【0196】
〔データパス部の制御方法の第3の実施例〕
さらに、データパス部の制御方法の第3の実施例としては、プロセッサエレメント105とプログラマブルスイッチエレメント106とで、同一演算制御情報メモリ1402内の同一アドレスを共有して使用し、プロセッサエレメント105とプログラマブルスイッチエレメント106とで共通の命令コードアドレスを使用することもできる。
【0197】
なお、図23に示すデータパス部102の制御方法は、状態番号1401により選択された一つの演算制御情報メモリ1402に含まれる命令コードアドレス数と、その演算制御情報メモリ1402が担当するプロセッサエレメント105の数が等しいために、各プロセッサエレメント105の命令コードアドレス指定に関する柔軟性を得られるが、各命令コードアドレスを各プロセッサエレメント105へ個別に伝播させるために要求される演算制御バス103や、一つの演算制御情報メモリ1402の大きさといったリソース量が大きくなるといった問題がある。
【0198】
〔データパス部の制御方法の第4の実施例〕
続いて、この問題を解決した、実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第4の実施例について、図面を参照して説明する。
図25は、本発明のアレイ型プロセッサ1における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第4の実施例におけるブロック図を示している。
【0199】
本実施例は、演算制御情報メモリ1402内の一つのアドレスで複数のプロセッサエレメント105の命令コードアドレスを指定することを可能とする方法である。
具体的には、Addr1によりPE1−1〜PE1−mまでのm個のアドレス、Addr2によりPE2−1〜PE2−mまでのm個のアドレスというように制御を行うことができるように構成してある。
ただし、各プロセッサエレメント105に対して独立なアドレスを指定するという柔軟性は失われるが、要求するハードェアリソース量が軽減される効果がある。
【0200】
なお、一つの演算制御情報メモリ1402に含まれるアドレスの数は、一以上で構成可能である。また、一つのアドレスが制御するグループ1901に含まれるプロセッサエレメント105の数mは、全グループにおいて共通である必要はなく、mは一以上で構成可能である。
【0201】
また、プログラマブルスイッチエレメント106も同様に制御することができる。
【0202】
以下に、プログラムブルスイッチエレメント106も同様にグループ化して制御するよう構成した制御方法について、独立した実施例として図面を用いて詳細に説明する。
【0203】
〔データパス部の制御方法の第5の実施例〕
図26は、本発明によるアレイ型プロセッサ1の実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第5の実施例の模式図である。
ここで、本実施例は、演算制御情報メモリ1402内の一つのアドレスで複数のプロセッサエレメント105若しくはプログラマブルスイッチエレメント106の命令コードアドレスを指定することを可能とする方法である。
従って、本実施例では、プロセッサエレメント105に対するアドレスが図25で示したデータパス部の制御方法の第4の実施例と同様に構成されており、更に、本実施例独自の構成として、プログラマブルスイッチエレメント106をグループ化して、各々のグループ1901にアドレスが割り当てられるよう構成されており、一つのアドレスで複数のプログラマブルスイッチエレメント106の命令コードアドレスも指定することを可能としている。
具体的には、Addrs1によりPSEs1−1〜PSEs1−jまでのj個のアドレス、Addrs2によりPSEs2−1〜PSEs2−jまでのj個のアドレスというように制御を行うことができるように構成してある。
この構成も、データパス部の制御方法の第4の実施例における各プロセッサエレメント105に対する構成と同様に、各プログラマブルスイッチエレメント106に対して独立なアドレスを指定するという柔軟性は失われるが、要求するハードェアリソース量が軽減される効果がある。
【0204】
なお、一つの演算制御情報メモリ1402に含まれるアドレスの数n及びskは、各々一以上で構成可能である。また、一つのアドレスが制御するグループ1901に含まれるプロセッサエレメント105の数m、若しくはプログラマブルスイッチエレメント106の数jは、全グループ1901において共通である必要はなく、各々一以上で構成可能である。
【0205】
〔データパス部の制御方法の第6の実施例〕
更に、データパス部の第5の実施例による演算制御情報メモリ1402の制御方法は、図27に示すようにも変形可能である。図27に示す制御方法を、以下、データパス部の制御方法の第6の実施例として詳細に説明する。
【0206】
図27を参照すると、実施例による制御方法では、演算制御情報メモリ1402における一つのアドレスにより、複数のプロセッサエレメント105及び複数のプログラマブルスイッチエレメント106の命令コードアドレスを指定することが可能なよう構成されている。
具体的には、Addr1によりPE1−1〜PE1−m,及びPSE1−1〜PSE1−kまでの合計(m+k)個のアドレスを指定する制御を行うことが可能なように構成されている。
この構成では、データパス部の制御方法の第4の実施例における各プロセッサエレメント105に対する構成と同様に、各プロセッサエレメント105及び各プログラマブルスイッチエレメント106に対して独立なアドレスを指定するという柔軟性が失われるが、上述のデータパス部の制御方法の第4及び第5の実施例よりも、要求するハードウェアリソース量が軽減されるという効果が得られる。
【0207】
なお、一つの演算制御情報メモリ1402に含まれるアドレスの数は、一以上で構成可能である。また、一つのアドレスが制御するグループ1902に含まれるプロセッサエレメント105の数m、若しくはプログラマブルスイッチエレメント106の数kは、全グループ1902において共通である必要はなく、いずれかが一以上で構成可能である。
【0208】
〔データパス部の制御方法の第7の実施例〕
続いて、実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第7の実施例について、図面を参照して説明する。
図28は、本発明のアレイ型プロセッサ1における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第7の実施例におけるブロック図を示している。
【0209】
同図において、状態番号1401により選択された演算制御情報メモリ1402に含まれる各アドレス値は、演算制御バス2003にそれぞれ出力されており、当該の演算制御情報メモリ1402によって制御されるプロセッサエレメント105は、演算制御バス2003の中からセレクタ2001を用いて一つのバスを選択し、そのバスから送られてくるアドレスを命令コードアドレスとして使用する。
【0210】
したがって、例えば、プロセッサエレメント105であるPE2が演算制御バスaを選択している場合は、演算制御情報メモリ1402のAddr1の値が演算制御バスaを通りPE2の命令コードアドレスとして使用される。
このように、各プロセッサエレメント105が任意の演算制御バス2003を選択できるようにすれば、一つの演算制御情報メモリ1402に接続されたプロセッサエレメント105を演算制御バス2003の数以下にグループ化でき、各グループごとに異なった命令コードアドレスを使用することができる。
【0211】
また、上記の各プロセッサエレメント105のグループ化は、図28に示すメモリ2002で制御される。このメモリ2002は、例えば図20に示すプロセッサエレメント105における命令コードメモリ1501と命令デコーダ1502とで構成されるものである。
即ち、本実施例によるデータパス部102の制御方法では、図28に示す演算制御バス2003の選択に、命令デコーダ1502でデコードされた命令コードが使用される。この構成は、以下における説明において同様の形態で実施されるものである。
【0212】
また、各プロセッサエレメント105が選択できる演算制御バス2003を制限する方法や、いくつかのプロセッサエレメント105でセレクタ2001を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【0213】
このように、データパス部の制御方法の第7の実施例によれば、図23に示すように、一つ以上のプロセッサエレメント105と同数の演算制御バスを必要とすることもなく、また、図25に示すように、一つのアドレスで制御されるプロセッサエレメント105が予め固定されるといった状態を回避することができる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント105のグループ化の自由度といった両者のメリットを得ることが可能となる。
【0214】
また、セレクタ2001がどのバスを選択するかという情報は、固定情報としてメモリ2002に保存しておく方法もあるし、各プロセッサエレメント105の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント毎に、現在の命令コードアドレスにより、次の演算制御バス2003を決定する方法がある。
【0215】
〔データパス部の制御方法の第8の実施例〕
更に、上述したデータパス部の制御方法の第7の実施例をプロセッサエレメント105だけでなく、プログラマブルスイッチエレメント106にも適用した形態について、データパス部の制御方法の第8の実施例として以下に図面を用いて詳細に説明する。
図29は、本実施例によるデータパス部102の制御方法のブロック図である。
【0216】
同図において、状態番号1401により選択された演算制御情報メモリ1402に含まれる各アドレス値は、演算制御バス2013にそれぞれ出力されており、当該の演算制御情報メモリ1402によって制御されるプロセッサエレメント105及びプログラマブルスイッチエレメント106は、演算制御バス2013の中からセレクタ2011を用いて一つのバスを選択し、そのバスから送られてくるアドレスを命令コードアドレスとして使用する。
【0217】
したがって、例えば、プログラマブルスイッチエレメント106であるPSE1が演算制御バスaを選択している場合は、演算制御情報メモリ1402のAddr1の値が演算制御バスaを通りPSE1の命令コードアドレスとして使用される。
このように、各プロセッサエレメント105及び各プログラマブルスイッチエレメント106が任意の演算制御バス2013を選択できるようにし、且つ、共に共通の命令コードアドレスを使用するよう構成すれば、一つの演算制御情報メモリ1402に接続されたプロセッサエレメント105及びプログラマブルスイッチエレメント106を演算制御バス2013の数以下にグループ化でき、各グループごとに異なった命令コードアドレスを使用することができる。
【0218】
また、各プロセッサエレメント105及び各プログラマブルスイッチエレメント106が選択できる演算制御バス2013を制限する方法や、いくつかのプロセッサエレメント105若しくはいくつかのプログラマブルスイッチエレメント106、更には、いくつかのプロセッサエレメント105及びいくつかのプログラマブルスイッチエレメント106でセレクタ2011を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【0219】
このように、データパス部102の制御方法の第8の実施例によれば、データパス部の制御方法の第7の実施例で得られた効果を更にプログラマブルスイッチエレメント106を含めて奏するよう構成することが可能となる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント105及びプログラマブルスイッチエレメント106のグループ化の自由度といった両者のメリットを得ることが可能となる。
【0220】
また、セレクタ2011がどの演算制御バス2013を選択するかという情報は、データパス部の制御方法の第7の実施例と同様に、固定情報としてメモリ2012に保存しておく方法もあるし、各プロセッサエレメント105および各プログラマブルスイッチエレメント106の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント毎および各プログラマブルスイッチエレメント106毎に、現在の命令コードアドレスにより、次の演算制御バス2013を決定する方法である。
【0221】
〔データパス部の制御方法の第9の実施例〕
また、上述したデータパス部の制御方法の第8の実施例の他の構成をデータパス部の制御方法の第9の実施例として図面を用いて詳細に説明する。
図30は、本実施例によるデータパス部102の制御方法のブロック図である。
【0222】
図30を参照すると、本実施例は、プロセッサエレメント105への命令コードアドレスを伝搬させる演算制御バス2023だけでなく、プログラマブルスイッチエレメント106への命令コードアドレスを伝搬させるための演算制御バス2023も構成されている。
更に、本実施例による演算制御情報メモリ1402は、プロセッサエレメント105へのアドレスに対する命令コードアドレスだけでなく、プログラマブルスイッチエレメント106へのアドレスに対する命令コードアドレスも格納するよう構成されている。
【0223】
即ち、同図において、状態番号1401により選択された演算制御情報メモリ1402に含まれる各アドレス値は、演算制御バス2023にそれぞれ出力されており、当該の演算制御情報メモリ1402によって制御されるプロセッサエレメント105若しくはプログラマブルスイッチエレメント106は、演算制御バス2023の中からセレクタ2021を用いて一つの演算制御バス2023を選択し、その演算制御バス2023から送られてくるアドレスを命令コードアドレスとして使用する。
【0224】
したがって、例えば、プログラマブルスイッチエレメント106であるPSE1が演算制御バスa’を選択している場合は、演算制御情報メモリ1402のAddrs1の値が演算制御バスa’を通りPSE1の命令コードアドレスとして使用される。
このように、各プロセッサエレメント105若しくは各プログラマブルスイッチエレメント106が任意の演算制御バス2023を選択できるように構成すれば、一つの演算制御情報メモリ1402に接続されたプロセッサエレメント105を演算制御バス2023の数以下にグループ化できるだけでなく、同一の演算制御情報メモリ1402に接続されたプログラマブルスイッチエレメント106を合わせて、演算制御バス2023の数以下にグループ化することができ、また、各グループごとに異なった命令コードアドレスを使用することができる。
【0225】
また、各プロセッサエレメント105若しくは各プログラマブルスイッチエレメント106が選択できる演算制御バス2023を制限する方法や、いくつかのプロセッサエレメント105若しくはいくつかのプログラマブルスイッチエレメント106でセレクタ2021を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【0226】
このように、データパス部102の制御方法の第9の実施例によれば、データパス部の制御方法の第7の実施例で得られた効果を更にプログラマブルスイッチエレメント106を含めて奏するよう構成することが可能となる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント105及びプログラマブルスイッチエレメント106のグループ化の自由度といった両者のメリットを得ることが可能となる。
【0227】
また、セレクタ2021がどの演算制御バス2023を選択するかという情報は、データパス部の制御方法の第7の実施例と同様に、固定情報としてメモリ2022に保存しておく方法もあるし、各プロセッサエレメント105の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント105毎に、現在の命令コードアドレスにより、次の演算制御バス2023を決定する方法である。
【0228】
〔データパス部の制御方法の第10の実施例〕
次に、実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第10の実施例について、図面を参照して説明する。
図31は、本発明のアレイ型プロセッサ1における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第10の実施例におけるブロック図を示している。
【0229】
同図において、データパス部102は、プロセッサエレメント105をアレイ状に配置し、縦方向に対し演算制御バス(2033−V1,2033−V2,…)を通し、また、横方向に対し演算制御バス(2033−H1,2033−H2,…)を通し、その縦横各々に演算制御情報メモリ(1402−V1,1402−V2,…、1402−H1,1402−H2,…)が接続されている。
このようにすることにより、各プロセッサエレメント105は、近傍を通る演算制御バス2033の中から一つを選択し、命令コードアドレスを得ることができる。即ち、図31におけるプロセッサエレメントPE1−1に注目して説明すると、これに接続されたセレクタ2001は、メモリ2002からのデコードされた命令コードにより演算制御バス2033−V1に含まれる命令アドレスバス(V1−1,V1−2,…,V1−m)若しくは2033−H1に含まれる命令コードアドレス(H1−1,H1−2,…,H1−n)の中から何れか一つを選択し、これをプロセッサエレメントPE1−1へ入力する。
【0230】
また、図31に示す構成の、グループ化の最大分割数は(m+n)よりも遥かに大きいが、自由な形と位置が保障されるのは(m+n)個である。
これにより、プロセッサエレメント105の領域分割方法が、演算制御バス103の数の範囲内で、縦横方向自由に決定することができる。
即ち、図31に示す本実施例では、データパス部102を(m+n)個の自由な領域に分割することが可能である。
これは、各プロセッサエレメント105に対して、(m+n)本の命令アドレスバス(図31におけるPE1−1に注目すれば、V1−1,〜,V1−m、H1−1,〜,H1−nの本数)が入力されており、これを各プロセッサエレメント105が自由に選択できるためである。これにより、全プロセッサエレメント105を(m+n)個のグループに分割することが可能である。このようにグループに分割した場合、各グループ毎にプロセッサエレメント105の命令コードアドレスを変える(個別に値を決定し、入力する)ことが可能となる。これは例えば、グループ1のアドレスは固定したまま、グループ5のアドレスを変える等の動作である。
例えば、図23、若しくは図24に示す方法により、グループ分けの全自由度を持たせるためには、全プロセッサエレメント105に個別のアドレスを入力する必要があるが、これを実現するためには、膨大なハードウェア量が要求される。更に、実際の方法では、全自由度を実現する必要がなく、ある程度、自由度を落として構成することが好ましい。また、例えば、図29に示す構成では、各列毎のグループ化の自由度は高いが、上下方向にグループ分けをする場合に大きな制限を受ける。そこで、本実施例では、縦方向及び横方向に命令アドレスバス(演算制御バス2033−V1,2033−V2,…、2033−H1,2033−H2,…としてもよい)を通すことにより、縦方向及び横方向において自由にグループ分けを行うことを可能にしている。但し、生成されるグループは、塊とされていなくてもよく、例えば市松模様のように分割することも可能である。
また、図31に示す構成でも、グループ化における最大分割数は非常に大きいが、自由な形(プロセッサエレメント105の位置及び数を自由に選択することが可能であるという意味)でグループ化が可能である理由は、(m+n)が保証されていることに起因する。但し、同じ(m+n)を保証する場合、各列毎に(m+n)本の命令アドレスバスを通すよりも、図31に示すように、縦横に通した方が自由度があると考えられる。これは、例えばデータパス部102において横方向にデータの流れがある場合、パイプラインを切るためには、縦方向に分割する必要があるが、ビット幅方向に分割する(複数のデータパスを実現する)ためには、横方向に分割する必要がある。図31に示す構成は、この両者を効率的に実現するための構成である。
【0231】
〔データパス部の制御方法の第11の実施例〕
次に、実施形態における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第11の実施例について、図面を参照して説明する。
図32の(a)は、本発明のアレイ型プロセッサ1における演算制御情報メモリ1402を用いたデータパス部102の制御方法の第11の実施例におけるブロック図を示している。また、図32の(b)は、同実施例の動作を実現する回路の例を示すブロック図である。
【0232】
図32の(a)において、データパス部102は、演算制御情報メモリ1402内に命令コードメモリ部2201とマスク部2202を持つことを特徴とする。
このようにすることにより、当該の演算制御情報メモリ1402が制御するプロセッサエレメント105のうち、一部のみのアドレス変更を可能とする。
つまり、図32の(a)におけるマスク部2202とは、演算制御情報メモリ1402に含まれる各命令コードアドレスを有効値として出力するか否かの情報を格納するものである。マスク部2202に含まれる各マスク2203,2204,…,2205は、各々対応する命令コードアドレスを有効値とするか否かの情報を格納するために1ビットにより構成される。即ち、図32の(a)のマスク部2202においては、マスクに“1”が格納されている場合は、対応する命令コードアドレスを有効値として出力させ、“0”が格納されている場合は、無効値として出力する。但し、無効値として出力された場合、例えば各プロセッサエレメント105が前状態の命令コードアドレスを保持しておき使用するよう動作し、また演算制御情報メモリ1402が前状態の命令コードアドレスを出力する等の動作するものとする。また、上記の各マスクは、必ずしも1ビットで構成されるものではない。即ち、各マスクが対応する命令コードアドレスを有効値とするか無効値とするかの情報のみを格納する場合は、各マスクは1ビットで構成されるが、この他の情報を持たせるために多ビットにより構成することも可能である。
また、各マスク2203,2204,…,2205を1ビットで構成した場合、マスク部2202のビット幅は、命令コードアドレスの数と同数となる。
【0233】
具体的に説明すると、例えば、マスク部2202の値が“1”であるアドレスを有効、“0”であるアドレスを無効とすると、図32の(a)ではマスク部2202中の2203、2204が“1”であるから、それぞれに対応するAddr1とAddr2が有効となり、PE1とPE2とへ命令コードアドレスが送られる。
しかし、マスク部2202中の2205は値が“0”であるため、それに対応するAddrnは無効となり、PEnへはAddrnが送られない。
【0234】
この場合、PEnは直前と同じ命令コードアドレスを使用するように構成することで対応できる。
これにより、例えばPE1とPE2のみのアドレスを変えたい場合、その部分のマスクのみが有効であるエントリを一つ作れば、前の状態における他のプロセッサエレメント105のアドレスによらず、PE1とPE2のみのアドレスを変更することができる。
【0235】
この機構が無いと、例えばPEnのアドレスが“0”の場合にも“1”の場合にも、PE1とPE2のアドレスを“0”から“1”に変えたい場合に、PE1とPE2のアドレスが“0”でPEnのアドレスが“0”という演算制御情報メモリ1402のエントリと、PE1、PE2、PEnのアドレスが“1”というエントリの二つが必要となる。
より詳細に説明するために、PEnの値に依らず、状態遷移によってPE1の命令コードアドレスを“0”から“1”に変更する場合を例に挙げて説明する。但し、この例において、PEnの命令コードアドレスは状態遷移によって変化しないものとする。
上記の場合、マスク部2202により各命令コードアドレスにマスクをかけることができないと、PEnの命令コードアドレスが“0”であったときにPE1の命令コードアドレスを“1”に変えるという演算制御情報メモリ1402のエントリ
(構成)と、PEnの命令コードアドレスが“1”であったときにPE1の命令コードアドレスを“1”変えるという演算制御情報メモリ1402のエントリ
(構成)と、が必要となる。
即ち、命令コードアドレス部2201に格納される命令コードアドレスとして、“1,…,0”と“1,…,1”との2通りのエントリが必要となる。これは、全てのプロセッサエレメント105へ必ず命令コードアドレスを送信する必要があるため、このように状態に適用したエントリ
(構成)を設けておかなければPEnの状態が変化してしまうためである。従って、PEnのアドレスが“0”であった場合、前者のエントリを使用してPE1のアドレスを“1”に変更し、且つ、PEnのアドレスを“0”に保持する。また、PEnのアドレスが“1”であった場合、後者のエントリを使用してPE1のアドレスを“1”に変更し、且つPEnのアドレスを“1”に保持する。
これに対し、マスク部2202を設けた場合、PE1のアドレスを“1”にするという演算制御情報メモリ1402のエントリ
(構成)のみでこれに対応することが可能となる。
即ち、エントリとして“1,…,−”(“−”は、アドレスを出力しないという意味)の1つがあれば、PE1のアドレスが“1”に変化するが、PEnのアドレスが変化しないという遷移が可能となる。
更に、この構成は、変化しないプロセッサエレメント105が複数ある場合に対して、より有効な手段となる。
【0236】
このように部分的なプロセッサエレメント105のアドレスの変更を可能とすることにより、演算制御情報メモリ1402のエントリ数を大きく削減することが可能となる。
また、このような動作は、単純に演算制御情報メモリ1402の命令コードメモリ部2201にマスクをかけ、各々、対応するマスク値が“0”(対応するアドレスを有効値としない)のときは、これに対応するアドレスを出力せず、また、対応するマスク値が“1”のときは、これに対応するアドレスをそのまま出力することで実現される。
また、同様な動作を、例えば論理積回路を用いることにより実現することも可能である。この構成例を図32の(b)に示す。
図32の(b)を参照すると、本構成例は、演算制御情報メモリ1402におけるアドレス(例えば(a)におけるAddr1)の出力部にセレクタ2206を設け、このセレクタ2206の出力(これを例としてAddr1’とする)は、データパス部102に送られる他に、分岐され、レジスタ2207を介して同セレクタ2206の入力に帰還されている。更に、セレクタ2206には、演算制御情報メモリ1402におけるマスク部2202から出力された値(例えばマスク2203)が入力され、この値(マスク2203)を基に出力する値(Addr1若しくはAddr1’)が選択される。但し、レジスタ2207は、例えばフリップフロップ等で構成されるものであり、前回の出力値(アドレス)を保持する。
即ち、図32の(a)におけるAddr1に着目して説明すると、セレクタ2206に入力されているマスク2203が、本例では、“1”(Addr1を有効値とする)であるため、セレクタ2206はAddr1を選択して出力する。これに対して、例えばマスク2203が“0”(Addr1を有効値としない)である場合、セレクタ2206は、レジスタ2207において保持されている値(前サイクルの値)を選択して出力する。
但し、本発明によるマスク部を用いたデータパス部の制御方法は、上記第11の実施例による構成に限定されるものではなく、マスクをかけることにより状況に応じてアドレスの配布を行うという本発明の主旨を逸脱しない限り、種々変形して実施することが可能である。
【0237】
〔データパス部の制御方法の第12の実施例〕
次に、上記したデータパス部の制御方法の第11の実施例を、プロセッサエレメント105だけでなく、プログラマブルスイッチエレメント106に対しても適用した場合について、以下にデータパス部の制御方法の第12の実施例として図面を用いて詳細に説明する。
図33は、本実施例によるデータパス部102の制御方法のブロック図である。
【0238】
同図において、データパス部102は、演算制御情報メモリ1402内に命令コードメモリ部2211とマスク部2212とを持つことを特徴とする。
このようにすることにより、当該の演算制御情報メモリ1402が制御するプロセッサエレメント105のうち、一部のみのアドレス変更を可能とする。
【0239】
例えば、マスク部2212の値が“1”であるアドレスを有効、“0”であるアドレスを無効とすると、図33ではマスク部2212中の2213,2214,2223,2224が“1”であるから、それぞれに対応するAddr1,Addr2,Addrs1,Addrs2が有効となり、PE1,PE2,PSEs1及びPSEs2へ命令コードアドレスが送られる。
しかし、マスク部2212中の2215及び2225は値が“0”であるため、それに対応するAddrn及びAddrskは無効となり、PEnへはAddrnが、PSEskにはAddrskが送られない。
【0240】
この場合、命令コードアドレスが送信されないPEn及びPSEskは直前と同じ命令コードアドレスを使用するように構成することで対応できる。
これにより、例えばPE1とPSEs1のみのアドレスを変えたい場合、その部分のマスクのみが有効であるエントリを一つ作れば、前の状態における他のプロセッサエレメントのアドレスによらず、PE1とPSEs1のみのアドレスを変更することができる。
【0241】
この機構が無いと、例えばPEn若しくはPSEkのアドレスが“0”の場合にも“1”の場合にも、あるPEのアドレスのみを“0”から“1”に変えたい場合には、PEn若しくはPSEkの現在のアドレスの有り得るパターン全てに対応して変更対象のPEのアドレスを“0”から“1”にするエントリを設ける必要がある。これは、データパス部102の制御方法の第11の実施例における図32の(a)及び(b)の説明と同等の理由である。
【0242】
このように部分的なプロセッサエレメント105及びプログラマブルスイッチエレメント106のアドレスの変更を可能とすることにより、演算制御情報メモリ1402のエントリ数を大きく削減することが可能となる。
【0243】
<命令コードアドレスを発行するタイミング>
また、本発明のアレイ型プロセッサ1において、状態遷移テーブルメモリ202が命令コードアドレスを発行するタイミングについて、以下に幾つかの実施例を用いて詳細に説明する。
ここで、本説明及び各実施例を説明するにあたり、本発明による状態遷移テーブルメモリ202の第3の実施例を引用して説明することとする。但し、以下の説明では、説明の簡略化のために、強制状態遷移テーブル1113の構成を省くものとする。
【0244】
先ず、状態遷移の基本的な流れを説明すると、本動作は、“現状態番号204”と“イベント209入力”とにより“次状態番号205”を求め、この“次状態番号205”を新たな(状態遷移先の)“現状態番号204”とするものである。
ここで、回路動作を同期式とする場合、状態遷移、即ち、次状態番号205を現状態番号204とするタイミングを、図3におけるシーケンサ部201に入力されたクロック(例えばクロック207の立ち上がり。以下、このクロック207に同期させる場合を例に挙げる。)に合わせることで実現できる。また、イベント209(図3参照)は、状態遷移テーブルメモリ202において次状態番号205を特定するために必要となるため、状態遷移のタイミング、即ち、次状態番号205を現状態番号204とする以前にシーケンサ部201に入力されている必要がある。
【0245】
〔命令コードアドレスを発行するタイミングの第1の実施例〕
この状態遷移テーブルメモリ202が命令コードアドレスを発行するタイミングを図34に示す第1の実施例を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記と同様に、本発明による状態遷移テーブルメモリ202の第2の実施例を引用し、図34の(a)に示す状態遷移テーブルメモリ202の構成と(b)に示す状態遷移タイミングチャート図とを用いて説明することとする。但し、強制状態遷移テーブル1113の構成は説明の簡略化のために省する。
【0246】
図34の(b)を説明するにあたり、クロックの立ち上がりに同期した回路を構成したとする。また、図34の(b)において、“T1”,“T2”を、それぞれ連続した任意のクロックの立ち上がりタイミングとし、各々のタイミングの間隔をサイクルと呼ぶ(例えばタイミング“T1”から“T2”の直前までの期間をサイクルC1と呼ぶ:以下、各実施例において同様である)。
このことを踏まえて図34の(b)を参照すると、本実施例では、イベント209がサイクルC1(但し、タイミング“T2”に対して、ある程度の余裕をもつ直前であることが好ましい。この点も、以下の各実施形態において同様である。)の期間に入力される。但し、状態が切り替わるのはクロックの立ち上がりと同時(同期)である。
これにより、本実施例では、効率的な(遅延のない)状態遷移が実現されている。これは、サイクルC1、即ち、タイミング“T2”の直前までの段階において、現状態番号204と入力されたイベント209との組み合わせを基に次状態番号205を特定し、タイミング“T2”となると同時に、この特定した次状態番号205を現状態番号204とすることに起因している。即ち、ある状態のサイクルにおいてイベントが入力されると、この入力されたイベントを同サイクル内で解釈し、次のサイクルの最初に遷移すべき状態へ移行することが可能となる。また、次のサイクルの最初に遷移すべき状態へ移行することが可能となるのは、次状態番号205を現状態番号204とする(状態遷移する)タイミングを図3におけるシーケンサ部201に入力されたクロック(例えばクロック207の立ち上がり)に合わせているためである。但し、“T1”のタイミングより前にイベント209をシーケンサ部201に入力し、このイベント209をシーケンサ部201においてレジスタ等で保持しておくという構成も可能であり、この構成から得られる効果も、上記のものと同様なものとなる。
【0247】
この状態遷移の過程を示す図34の(b)の状態遷移タイミングチャート図について、図34の(a)の状態遷移テーブルメモリ202の構成図を用いて、より詳細に説明する。
図34の(a)を参照すると、図34の(b)の状態遷移タイミングチャート図におけるサイクルC1では状態は(1)である。この状態において、サイクルC1の期間に、現状態番号204(状態(1))がイベント状態遷移テーブル1111とデフォルト状態遷移テーブル1112との両方に入力され、この入力に対し、イベント状態遷移テーブル1111が、例えば4つの次状態番号1126(図34の(b)では状態(3)と状態(4)との2つの次状態番号1126)を出力し、また、デフォルト状態遷移テーブル1112が、1つの次状態番号1127(図34の(b)では状態(2)の1つの次状態番号1127)を出力する。
【0248】
ここで、同じくサイクルC1の期間にイベント識別コード1206がシーケンサ部201(図3参照)からセレクタ1118及びイベント発生判定回路1211に入力される。従って、イベントが発生している場合(例えば、図15の説明において、1hotとして構成されたイベント識別コード1206におけるビットのいずれかに“1”が格納されている場合)、セレクタ1118では、入力された次状態番号1126(状態(3)及び状態(4))の中からこれに対応する次状態番号1126(状態(3)又は状態(4))がセレクタ1119へ出力される。また、サイクルC1の期間にイベント発生判定回路1211では、イベントが発生していることを示すイベント一致信号1114がセレクタ1119へ出力される。さらに、デフォルト状態遷移テーブル1112からは、現状態番号204に対応した次状態番号1127(状態(4))がセレクタ1119へ出力される。
【0249】
これにより、セレクタ1119では、イベント一致信号1114に基づき次状態番号1126,1127のいずれか(状態(3),状態(4)、若しくは状態(2)のいずれか)が次状態番号205として出力される。但し、これまでの動作は、サイクルC1期間内、即ち、タイミング“T2”の直前までに処理されるものである。
このように出力された次状態番号205は、タイミング“T2”において現状態番号204として有効化され、サイクルC2になると、この現状態番号204がシーケンサ部201から状態遷移テーブルメモリ202へ出力される。
【0250】
〔命令コードアドレスを発行するタイミングの第2の実施例〕
更に、本発明による状態遷移テーブルメモリ202が命令コードアドレスを発行するタイミングについて、上記の命令コードアドレスを発行するタイミングの第1の実施例を応用した例を、以下に命令コードアドレスを発行するタイミングの第2の実施例として図面を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記の命令コードアドレスを発行するタイミングの第1の実施例と同様に、本発明による状態遷移テーブルメモリ202の第2の実施例を引用し、図35の(a)に示す状態遷移テーブルメモリ202の構成と(b)に示す状態遷移タイミングチャート図とを用いて説明することとする。但し、強制状態遷移テーブル1113の構成は説明の簡略化のために省する。
【0251】
また、本実施例は上記の命令コードアドレスを発行するタイミングの第1の実施例と比較して、条件分岐が実現される2つ(2サイクル)前の状態においてイベント209がシーケンサ部201(図2参照)に入力されるという特徴がある。(第1の実施例では、条件分岐の1つ(1サイクル)前の状態においてイベント209が入力される構成である。)
また、構成としての差分は、セレクタ1118とイベント発生判定回路1211との前段にイベント識別コード1206を保持するレジスタ3001が設けられた点である。このレジスタ3001は、例えばフリップフロップ等により構成される。
このレジスタ3001によって、本実施例では、図35の(b)に示すタイミング“T3”において条件分岐が実現される。即ち、図35の(b)におけるタイミング“T2”の直前のサイクルC1においてイベント209がシーケンサ部201に入力され、このシーケンサ部201から出力されたイベント識別コード1206がタイミング“T2”の時点でレジスタ3001に保持される。但し、“T1”のタイミングより前にイベント209をシーケンサ部201に入力し、このイベント209をシーケンサ部201においてレジスタ等で保持しておくという構成も可能であり、この構成から得られる効果も、上記のものと同様なものとなる。
【0252】
この状態遷移の過程を示す図35の(b)の状態遷移タイミングチャート図について、図35の(a)の状態遷移テーブルメモリ202の構成図を用いて、より詳細に説明する。
図35の(a)を図35の(b)を用いて説明するにあたり、第1の実施例と同様に、クロックの立ち上がりに同期した回路を構成したとする。また、図35の(b)において、“T1”,“T2”,“T3”を、それぞれ任意のクロックの立ち上がりタイミングとし、タイミング“T1”から“T2”の直前までをサイクルC1、タイミング“T2”から“T3”の直前までをサイクルC2と呼ぶ。
このことを踏まえて図35の(a)を参照すると、図35の(b)の状態遷移タイミングチャート図におけるサイクルC1では、先ず、イベント209がシーケンサ部201に入力される。
また、サイクルC1では、現状態番号204として状態(1)がイベント状態遷移テーブル1111とデフォルト状態遷移テーブル1112との両方に入力される。この入力に対し、イベント状態遷移テーブル1111からは、状態(1)に対応する例えば4つの次状態番号1126(この次状態番号1126の値は、本説明においては特に限定されるものではない。)が出力され、また、デフォルト状態遷移テーブル1112からは、1つの次状態番号1127(図35の(b)では状態(2)の1つの次状態番号1127)が出力される。
但し、同じサイクルC1では、シーケンサ部201から出力されたイベント識別コード1206が、一旦レジスタ3001において保持されるため、セレクタ1118及びイベント発生判定回路1211には、イベント識別コード1206が入力されない。従って、セレクタ1119から出力される次状態番号205は、セレクタ1118からの出力の如何に関わらず、次状態番号1127として出力された状態(2)となる。また、この次状態番号205(次状態番号1127=状態(2))は、シーケンサ部201に入力され、タイミング“T2”において現状態番号204とされる。また、このタイミング“T2”では、サイクルC1で入力されたイベント識別コード1206がレジスタ3001に書き込まれる。
【0253】
その後、次のサイクルC2では、タイミング“T2”において現状態番号204とされた状態(2)がイベント状態遷移テーブル1111及びデフォルト状態遷移テーブル1112に入力される。従って、サイクルC2では、このイベント状態遷移テーブル1111から状態(2)に対応した例えば4つの次状態番号1126(図35の(b)では、状態(4)及び状態(5)の2つの次状態番号1126)がセレクタ1118へ出力され、また、デフォルト状態遷移テーブル1112から状態(2)に対応した次状態番号1127(図35の(b)では、状態(3)の1つの次状態番号1127)がセレクタ1119へ出力される。
【0254】
また、このサイクルC2において、レジスタ3001からは、タイミング“T2”で保持したイベント識別コード1206がセレクタ1118及びイベント発生判定回路1211へ出力される。更に、このイベント識別コード1206が入力されたイベント発生判定回路1211からは、イベント一致信号1114がセレクタ1119へ出力される。従って、サイクルC1でイベントが発生していた場合、セレクタ1118からは、該当する次状態番号1126(状態(4)若しくは状態(5))がセレクタ1119へ出力される。その後、セレクタ1119からは、セレクタ1118から入力された次状態番号1126(状態(4)若しくは状態(5))が次状態番号205として出力される。これに対して、サイクルC1でイベントが発生していなかった場合、セレクタ1119からは、セレクタ1118からの出力の如何に関わらず、デフォルト状態遷移テーブル1112から入力された次状態番号1127(状態(3))が次状態番号205として出力される。
また、この出力された次状態番号205は、シーケンサ部201に入力され、タイミング“T3”において現状態番号204として有効化される。
【0255】
即ち、命令コードアドレスを発行するタイミングの第1の実施例では、((サイクルC1における現状態番号204)+(サイクルC1の期間に入力されたイベント209))から(サイクルC2における次状態番号205)が特定されるが、本実施例では、((サイクルC2における現状態番号204)+(サイクルC1の期間に入力されたイベント209))から(サイクルC3における次状態番号205)が特定されるという構成となっている。
【0256】
このように構成することで本実施例では、クリティカルパスを短くすることが可能となり、アレイ型プロセッサ1の動作周波数を上げることができる。
これは、イベント識別コード1206があるサイクル(状態)においてデータパス部102により演算された結果に従い状態遷移管理部101に入力されることに起因している。
即ち、イベント識別コード1206がセレクタ1118とセレクタ1119とに入力されて次状態番号205が出力され、さらにこの次状態番号205が、例えば図3に示した構成例では制御情報メモリ203に入力されて命令コードアドレスが送出された後に、プロセッサエレメント105の命令コードメモリ1501(例として図20参照)に入力されるまでを1サイクルとして構成した場合、クリティカルパスとなるこのパスが長いために、動作速度が低下してしまう。
従って、本実施例では、このパスの途中にレジスタ3001を設けることで、このパスを比較的短い2つのクリティカルパスに分割し、動作速度の低下を防ぐよう構成している。そして、この2つ(イベント伝送と命令アドレス供給と)をパイプライン動作させることにより、スループットを上げ、全体の処理性能を向上させることができる。
【0257】
但し、本実施例は、命令コードアドレスを発行するタイミングの第1の実施例においてサイクルC1(第2の実施例ではサイクルC2に相当)における状態(1)(第2の実施例では状態(2)に相当)とイベント209入力との組み合わせにより次状態番号205を決定していたものを、第2の実施例では、1サイクル前のサイクルC1(第1の実施例では、サイクルC1の直前のサイクルに相当)においてイベント209を入力する必要があるため、状態遷移とイベント209を入力するタイミングとの決定が複雑化するという欠点がある。
また、本実施例では、サイクルC1にイベント209を入力できない場合、条件分岐のタイミングが1サイクル遅れる。これは、図35の(b)に示す状態遷移タイミングチャート図において、サイクルC1にイベントを入力することが不可能なためにサイクルC2に入力した場合、サイクルC3にダミーの状態を挿入する必要があり、これが原因で実際に状態分岐が行われるタイミングがタイミング“T3”より1サイクル遅れたタイミングとなるためである。
【0258】
〔命令コードアドレスを発行するタイミングの第3の実施例〕
更に、本発明による状態遷移テーブルメモリ202が命令コードアドレスを発行するタイミングについて、上記の命令コードアドレスを発行するタイミングの第2の実施例をさらに応用した例を、以下に命令コードアドレスを発行するタイミングの第3の実施例として図面を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記の命令コードアドレスを発行するタイミングの第2の実施例と同様に、本発明による状態遷移テーブルメモリ202の第2の実施例を引用し、図36の(a)に示す状態遷移テーブルメモリ202の構成と、(b)に示す状態遷移図と、(c),(d)に示す状態遷移タイミングチャート図とを用いて説明する。但し、強制状態遷移テーブル1113の構成は説明の簡略化のために省する。
【0259】
また、本実施例は上記の命令コードアドレスを発行するタイミングの第2の実施例と比較して、図36の(c),(d)に示すように、デフォルト時の状態遷移では通常の状態分岐(状態(1)→状態(2)→状態(3))を実現し、イベント発生時の状態遷移では途中に1サイクル無効なサイクルが存在し、分岐する(状態(1)→状態(4)若しくは(5))点を特徴としている。即ち、本実施例では、イベント209が入力されない場合では、デフォルト状態遷移に従い、サイクル毎に順次状態が遷移するが、イベント209が入力された場合では、入力から条件分岐までに1サイクル無効なサイクルを挿入する。これを実現するにあたり、本実施例は、命令コードアドレスを発行するタイミングの第2の実施例におけるレジスタ3001だけでなく、イベント状態遷移テーブル1111の出力とセレクタ1118との間にレジスタ3002を設けている。但し、レジスタ3002も、例えばフリップフロップ等により構成される。
【0260】
この状態遷移を図36の(c),(d)を用いて説明する。
但し、図36の(c),(d)を説明するにあたり、第2の実施例と同様に、クロックの立ち上がりに同期した回路を構成したとする。また、図35の(c),(d)において、“T1”,“T2”,“T3”を、それぞれ任意のクロックの立ち上がりタイミングとし、タイミング“T1”から“T2”の直前までをサイクルC1、タイミング“T2”から“T3”の直前までをサイクルC2と呼ぶ。
このことを踏まえて、図36の(c)を参照すると、本実施例は、サイクルC1において状態が(1)であり、このサイクル中にイベント209が入力されなければ、次のサイクルC2において状態(2)に遷移し、さらに次のサイクルC3において状態(3)となる。これに対して、図36の(d)を参照すると、サイクルC1においてイベント209が入力された場合、サイクルC2において一度、状態(2)に遷移した状態がキャンセルされ、次のサイクルC3において、サイクルC1で入力されたイベント209に応じた状態遷移(状態(4)または状態(5)への遷移)が実行される。
このような状態遷移の形は、デフォルト状態による遷移が多く発生し、たまにイベント209が入力されるという場合に特に有効な形態である。何故なら、デフォルト状態による遷移の場合は、ロスとなる無効のサイクルがなく状態遷移がされるが、イベント209が入力された場合は、必ず1サイクル分の無駄が挿入されるためである。
【0261】
上記において説明した状態遷移タイミングチャート図について、図36の(a)の状態遷移テーブルメモリ202の構成図を用いて、より詳細に説明する。
図36の(a)を参照すると、サイクルC1においてイベント209がシーケンサ部201(図3参照)に入力された場合、タイミング“T2”においてその値はレジスタ3001に保持される。また、サイクルC1では、イベント状態遷移テーブル1111及びデフォルト状態遷移テーブル1112に、現状態番号204として、状態(1)が入力されている。従って、サイクルC1では、イベント状態遷移テーブル1111からは、状態(1)に対応する例えば4つの次状態番号1126(図36の(b)及び(d)では、状態(4)及び状態(5))が出力され、また、デフォルト状態遷移テーブル1112からは、状態(1)に対応する次状態番号1127(図36の(b),(c)及び(d)では、状態(2))が出力される。但し、上記において、イベント状態遷移テーブル1111から出力された次状態番号1126は、レジスタ3002に保持されるため、サイクルC1において、セレクタ1118へは何も入力されない。
また、このとき、セレクタ1118及びイベント発生判定回路1211には、イベント識別コード1206が入力されていないため、セレクタ1119にイベント一致信号1114が入力されず、強制的にセレクタ1119は、デフォルト状態遷移テーブル1112から入力された次状態番号1127(状態(2))を次状態番号205としてシーケンサ部201へ出力する。これに対して、シーケンサ部201では、タイミング“T2”において、入力された次状態番号205(状態(2))を現状態番号204として有効化し、これをサイクルC2において出力する。よって、本実施例では、サイクルC2において全ての条件分岐に対して一時、デフォルト状態遷移テーブル1112から出力された状態が有効化される。
【0262】
次に、サイクルC2では、タイミング“T2”で有効化された現状態番号204(状態(2))がイベント状態遷移テーブル1111及びデフォルト状態遷移テーブル1112に入力され、各々のテーブルよりこの状態(2)に対応した次状態番号1126(この次状態番号1126の値は、本説明においては特に限定されるものではない。)及び1127(図36の(b),(c)及び(d)における状態(3))が出力される。但し、このとき、レジスタ3002には、前のサイクルC1において保持した次状態番号1126が格納されているため、サイクルC2においてセレクタ1118に入力される次状態番号1127は、この格納されている値(図36の(b),(d)では、状態(4)及び(5))である。
また、タイミング“T2”でレジスタ3001に保持されたイベント識別コード1206も、サイクルC2においてセレクタ1118及びイベント発生判定回路1211へ入力される。
【0263】
このため、サイクルC2では、例えばサイクルC1でイベントが発生していた場合、このイベント識別コード1206に該当する次状態番号1126(図36の(b),(d)では、状態(4)若しくは(5))が選択され、セレクタ1119へ出力される。また、イベント発生判定回路1211からは、イベントが発生したことを示したイベント一致信号1114がセレクタ1119へ入力されるため、セレクタ1119からは、セレクタ1118より入力された次状態番号1126(状態(4)若しくは(5))が選択され、次状態番号205として出力される。その後、この出力された次状態番号205は、シーケンサ部201に入力され、タイミング“T3”において現状態番号204として有効化される。但し、このままでは、タイミング“T2”のときに、一旦、現状態番号204としてデフォルト状態遷移テーブル1112から出力された状態(2)を有効化しているため、動作に矛盾が生じる。従って、本実施例では、この矛盾を回避するために、サイクルC2における、イベント発生判定回路1211にてイベント識別コード1206がイベント発生を示していると判定した時点で、イベント発生判定回路1211がデータパス部102に対して、現在実行している動作(書き込み等)をキャンセルさせるための動作(書き込み)キャンセル信号1207を出力するよう構成する。これにより、サイクルC2において実行されている動作をキャンセルし、新たにタイミング“T3”で有効化された現状態番号204に基づく動作を前の状態(この場合、状態(1))に引き続いて実行可能なように構成する。
これに対して、サイクルC1でイベントが発生していなかった場合、サイクルC2では、第2の実施例と同様に、セレクタ1119が、デフォルト状態遷移テーブル1112より入力された、現状態番号204(状態(2))に対応する次状態番号1127(状態(3))を選択して、次状態番号205として出力する。その後、この出力された次状態番号205(状態(3))は、シーケンサ部201に入力され、タイミング“T3”において現状態番号204として有効化される。但し、この動作において、イベントが発生していないため、イベント発生判定回路1211は、動作(書き込み)キャンセル信号1207を出力しない。
【0264】
このような動作を経ることにより、タイミング“T3”では、サイクルC1においてイベント209が入力されていた場合、そのイベント209に応じた次状態番号205(図36の(b),(d)では状態(4)若しくは状態(5)に対応)を現状態番号204とし、また、サイクルC1においてイベント209が入力されていない場合、デフォルト状態遷移テーブル1112に従って出力された次状態番号205(図36の(b)では状態(3)に対応)を現状態番号204とすることが可能となる。
【0265】
〔命令コードアドレスを発行するタイミングの第1から第3の実施例の各サイクル毎の状態〕
また、上述した命令コードアドレスを発行するタイミングの第1から第3の実施例における各サイクル毎の状態について、図38を用いて比較する。
図38を参照すると、上記第1から第3の実施例全てにおいて、タイミング“T1”から“T2”の直前までのサイクルC1の期間の状態は、(1)とされている。
この状態において、第1の実施例では、サイクルC1においてイベント(イベント無しも含むとする)と現状態番号204(状態(1)が入力され、この組み合わせに応じた次状態番号205(状態(2)又は、(3)若しくは(4))が出力される。従って、タイミング“T2”では、この組み合わせに応じた次状態番号205が現状態番号204として有効化され、この現状態番号204を基にタイミング“T2”において状態遷移が行われる。
また、第2の実施例では、サイクルC1において入力されたイベントがタイミング“T2”においてレジスタ3001に保持されるため、サイクルC2における状態は、デフォルト遷移に従って状態(2)となる。従って、サイクルC2では、保持されたイベントと状態(2)との組み合わせに応じた次状態番号205(状態(3)又は、(4)若しくは(5))が出力され、これがタイミング“T3”において現状態番号204として有効化される。
更に、第3の実施例では、サイクルC1において入力されたイベントが第2の実施例と同様に、タイミング“T2”においてレジスタ3001に保持される。従って、タイミング“T2”の時点では、サイクルC1において出力された、デフォルト状態遷移テーブル1112において状態(1)に対応する次状態番号1127(状態(2))が現状態番号204として有効化される。但し、サイクルC1では、イベント状態遷移テーブル1111から状態(1)に対応する次状態番号1126(状態(4)若しくは(5))が出力され、これがレジスタ3002において保持されている。
ここで、サイクルC1においてイベントが発生しなかった場合、第2の実施例と同様に、サイクルC2では、デフォルト状態遷移テーブル1112から、タイミング“T2”において現状態番号204とされた状態(2)に対応する次状態番号1127(状態(3))が出力され、これがタイミング“T3”において現状態番号204として有効化される。
これに対して、サイクルC1においてイベントが発生していた場合、実行されている状態(2)が、動作(書き込み)キャンセル信号1207によりキャンセルされ、代わりに、サイクルC1においてレジスタ3002に保持された次状態番号1126(状態(4)若しくは(5))が現状態番号204として有効化される。
【0266】
〔命令コードアドレスを発行するタイミングの第4の実施例〕
また、上述した命令コードアドレスを発行するタイミングの第1から第3の実施例については、図37のように構成することにより、各実施例の何れかを選択して実行するよう構成することが可能である。これを以下に、命令コードアドレスを発行するタイミングの第4の実施例として説明する。
但し、本実施例でも、本発明による状態遷移テーブルメモリ202の第2の実施例を引用し、強制状態遷移テーブル1113の構成は説明の簡略化のために省略する。
【0267】
図37を参照すると、本実施例では、イベント状態遷移テーブル1111からの各出力に対して、各々が分岐され、一方がレジスタ3004〜3007を介し、他の一方がこれを介さずに対応するセレクタ3102〜3105に入力されるよう構成されている。また、このセレクタ3102〜3105は、図20における命令デコーダ1502からの出力に対応するメモリ3022に接続されており、各セレクタ3102〜3105における選択(レジスタ3004〜3007各々に関して使用するか否かの選択)には、この命令デコーダ1502でデコードされた命令コードが使用される。
また、本実施例では、セレクタ1118及びイベント発生判定回路1211に入力されるイベント識別コード1206に対しても、分岐して、一方がレジスタ3003を介し、他の一方が介さずにセレクタ3101に入力されるよう構成されている。また、このセレクタ3101も、図20における命令デコーダ1502からの出力に対応するメモリ3021に接続されており、セレクタ3101における選択(レジスタ3003を使用するか否かの選択)には、この命令デコーダ1502でデコードされた命令コードが使用される。
但し、上記における各レジスタ3003、〜、3007も、各々例えばフリップフロップ等により構成される。
【0268】
このように構成することで、本実施例では、メモリ3022及びメモリ3021の値を制御することにより、図34から図36に示す命令コードアドレスを発行するタイミングの第1の実施例から第3の実施例のいずれかを選択して実行させることが可能となる。
但し、本実施例の選択には、アプリケーションの実装時に1つに固定して使用することも可能であるし、また、動作中(状態遷移時)に選択して切り替えるよう構成することも可能である。
【0269】
【発明の効果】
以上説明したように、本発明によるアレイ型プロセッサでは、データパス部分のプロセッサエレメントアレイを演算処理に特化させることが可能となり、状態遷移管理部は状態遷移手段としての動作およびデータパス部の制御を柔軟に行うよう構成を特化させることができるという効果があり、これにより面積、処理性能の両面に対する効果も得られる。
【0270】
また、状態遷移手段としての動作において、条件により複数の遷移先の中から一つの状態を選択する際、選択先の状態数によらず分岐に要する時間を一定とすることを実現し、状態遷移を記述するテーブルにも分岐先の状態数のばらつきによる無駄が生じない効果がある。
また、条件が一致した時の遷移先および条件が一致しなかった場合の遷移先を容易に記述することを可能としている。
また、状態遷移の方法として、状態遷移管理部内だけの制御、データパス部からの信号による制御、アレイ型プロセッサ外部からの信号による制御のいずれも可能としており、状態遷移条件設定の柔軟性を高める効果がある。
【0271】
さらに、状態遷移管理部によるデータパス部の制御は、全プロセッサエレメントおよび全プログラマブルスイッチエレメントを独立に制御する、いくつかのエレメントを固定的にグループ化し制御する、プログラムによりグループ化を決定し制御する、全エレメントの中の一部のみを制御することが可能となる。
この結果、目的に応じてデータパス部の制御の柔軟性と、制御のために必要とされるリソース量のバランスを考慮したアレイ型プロセッサの構成を可能とする効果がある。
【0272】
また、全ての制御を状態遷移管理部が行うのではなく、データパス部内においても制御の信号を発生して直接データパス部内を制御する方法も可能としているため、制御に関する柔軟性を高める効果がある。
【図面の簡単な説明】
【図1】図1は、本発明のアレイ型プロセッサの実施形態における概略ブロック図を示している。
【図2】図2は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第1の実施例の概略ブロック図を示している。
【図3】図3は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第2の実施例の概略ブロック図を示している。
【図4】図4は、図2及び図3に示した状態遷移管理部の命令コードアドレス発行のタイミングチャート図を示している。
【図5】図5は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第3の実施例の概略ブロック図を示している。
【図6】図6は、図5に示した状態遷移管理部の命令コードアドレス発行のタイミングチャート図を示している。
【図7】図7は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第1の実施例の概念図を示している。
【図8】図8は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第1の実施例の概略ブロック図を示している。
【図9】図9は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第2の実施例の概略ブロック図を示している。
【図10】図10は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第3の実施例の概略ブロック図を示している。
【図11】図11は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第4の実施例の概略ブロック図を示している。
【図12】図12は、本発明のアレイ型プロセッサの実施形態におけるシーケンサ部の第1の実施例の概略ブロック図を示している。
【図13】図13は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第1の実施例の概略ブロック図を示している。
【図14】図14は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリに書き込まれた状態遷移例の図を示している。
【図15】図15は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第2の実施例の概略ブロック図を示している。
【図16】図16は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第3の実施例の概略ブロック図を示している。
【図17】図17は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第4の実施例の概略ブロック図を示している。
【図18】図18は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第5の実施例の概略ブロック図を示している。
【図19】図19は、本発明のアレイ型プロセッサの実施形態における制御情報メモリの第1の実施例の概略ブロック図を示している。
【図20】図20は、本発明のアレイ型プロセッサの実施形態におけるプロセッサエレメントの第1の実施例の概略ブロック図を示している。
【図21】図21は、本発明のアレイ型プロセッサの実施形態におけるプロセッサエレメントの第2の実施例の概略ブロック図を示している。
【図22】図22は、本発明のアレイ型プロセッサの実施形態におけるプログラマブルスイッチエレメントの第1の実施例の概略ブロック図を示している。
【図23】図23は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第1の実施例の模式図を示している。
【図24】図24は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第2の実施例の模式図を示している。
【図25】図25は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第4の実施例の模式図を示している。
【図26】図26は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第5の実施例の模式図を示している。
【図27】図27は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第6の実施例の模式図を示している。
【図28】図28は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第7の実施例の模式図を示している。
【図29】図29は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第8の実施例の模式図を示している。
【図30】図30は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第9の実施例の模式図を示している。
【図31】図31は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第10の実施例の模式図を示している。
【図32】図32は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第11の実施例を説明するための図であり、(a)は、本実施例の模式図を示し、(b)は、本実施例の動作を実現するための回路構成の例を示している。
【図33】図33は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第12の実施例の模式図を示している。
【図34】図34は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第1の実施例を説明するための図であり、(a)は、第1の実施例の概略ブロック図であり、(b)は、第1の実施例の状態遷移タイミングチャート図である。
【図35】図35は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第2の実施例を説明するための図であり、(a)は、第2の実施例の概略ブロック図であり、(b)は、第2の実施例の状態遷移タイミングチャート図である。
【図36】図36は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第3の実施例を説明するための図であり、(a)は、第3の実施例の概略ブロック図であり、(b)は、第3の実施例の状態遷移図であり、(c)は、(b)の状態遷移におけるデフォルト遷移に着目した状態遷移タイミングチャート図であり、(d)は、(b)の状態遷移におけるイベント遷移に着目した状態遷移タイミングチャート図である。
【図37】図37は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第4の実施例を説明するための概略ブロック図である。
【図38】図38は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第1から第3の実施例における各サイクル毎の状態を比較するための図である。
【符号の説明】
1 アレイ型プロセッサ
101 状態遷移管理部
102 データパス部
103、701、2003、2013、2023、2033−V1,2033−V2,…、2033−H1,2033−H2,… 演算制御バス
104 イベント通知バス
105 プロセッサエレメント
106 プログラマブルスイッチエレメント
107 外部イベントバス
108 データ入力
109 データ出力
201 シーケンサ部
202 状態遷移テーブルメモリ
203 制御情報メモリ
204 現状態番号
205、1106、1107、1109、1126、1127、1128、1146、1147、1148、1166、1168 次状態番号
206、1206、1226、1246 イベント識別コード
207 クロック
208 リセット
209 イベント
210、1216、1236、1256 強制イベント識別コード
401 遅延
402 状態遷移
403 状態遷移の直前の状態
404 状態遷移の直後の状態
601、703、801、901 データバス
702 接続制御バス
902、1901、1902 グループ
1001 符号化器
1002、1504、2207、3001、3002、3003、3004、3005、3006、3007 レジスタ
1101、1111、1121、1131 イベント状態遷移テーブル
1102、1112、1122 デフォルト状態遷移テーブル
1103、1113、1123、1133 強制状態遷移テーブル
1104、1114、1124、1134 イベント一致信号
1105、1115、1125、1135 強制イベント一致信号
1108、1110、1118、1119、1120、1138、1139、1140、1158、1159、2001、2011、2021、2206、3101、3102、3103、3104、3105 セレクタ
1207 動作(書き込み)キャンセル信号
1211、1212、1221、1222、1232 イベント発生判定回路
1301 通常状態遷移テーブル
1346、1347、1348、1505 命令コードアドレス
1401 状態番号
1402 演算制御情報メモリ
1501 命令コードメモリ
1502、1602 命令デコーダ
1503 演算部
1506 入力データ
1507 出力データ
1508 命令コード
1601 制御信号
1603、1604 プログラマブルスイッチ
1701 接続構成情報メモリ
1702 接続スイッチ
1703 接続構成情報
1704 接続線
2002、2012、2022、3021、3022 メモリ
2201、2211 命令コードメモリ部
2202、2203、2204、2205、2212、2213、2214、2215、2223、2224、2225 マスク部

Claims (34)

  1. 演算処理を行う複数のプロセッサエレメント、および、前記プロセッサエレメント間を接続する複数のプログラマブルスイッチエレメントを、二次元アレイ状に電気的に接続して構成されたデータパス部を具備し、
    前記プロセッサエレメントは、複数の命令コードを記憶する命令コードメモリと、この命令コードメモリから読み出された前記命令コードを解読する命令デコーダと、解読された前記命令コードに基づいて、前記演算処理を行なう演算部とを有し、かつ、前記プログラマブルスイッチエレメントは、前記プロセッサエレメントと前記プログラマブルスイッチエレメント間、及び/又は、前記プログラマブルスイッチエレメント相互間の接続構成を指示する接続構成情報を複数セット記憶する接続構成情報メモリを有するアレイ型プロセッサにおいて、
    複数の演算状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリおよび、この状態遷移テーブルメモリを用いて前記複数の演算状態間の遷移を制御することにより、任意の時点における演算状態を決定するシーケンサ部を有する状態遷移管理部を前記データバス部と独立に具備し、
    前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び/又は、前記接続構成情報メモリのアドレスを出力し、前記命令コードメモリのアドレスに応じて命令コードが選択され、前記命令デコーダが前記命令コードを解読し、
    前記状態遷移管理部で決定された状態に基づき、解読された前記命令コードに従って前記プロセッサエレメントの各プロセッサエレメント毎に、演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態を切り替わることを特徴とするアレイ型プロセッサ。
  2. 請求項1において、前記プロセッサエレメントの演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態の一方のみの切り替えを可能とすることを特徴とするアレイ型プロセッサ。
  3. 上記請求項1又は2に記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部からの制御が、前記状態遷移管理部単独による前記演算状態の遷移、及び/又は、前記データパス部からのイベントを入力することによる前記演算状態の遷移、及び/又は、外部からのイベントを入力することによる前記演算状態の遷移に基づくことを特徴とするアレイ型プロセッサ。
  4. 上記請求項1から3のいずれか1項に記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記任意の時点における演算状態に応じて前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び/又は、前記接続構成情報メモリのアドレスを出力することを特徴とするアレイ型プロセッサ。
  5. 上記請求項4に記載のアレイ型プロセッサにおいて、
    一つ以上の前記演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、かつ、各前記プロセッサエレメント及び/又は各前記プログラマブルスイッチエレメントが、それぞれ一つの前記演算制御バスを選択して前記アドレスを入力することを特徴とするアレイ型プロセッサ。
  6. 上記請求項4に記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部が、それぞれの前記プロセッサエレメントおよびそれぞれの前記プログラマブルスイッチエレメントに対し、独立した前記アドレスを並列に与えることを特徴とするアレイ型プロセッサ。
  7. 上記請求項4に記載のアレイ型プロセッサにおいて、
    前記プロセッサエレメント及び/又は前記プログラマブルスイッチエレメントをグループ化し、このグループに対して一つの前記アドレスを与えることを特徴とするアレイ型プロセッサ。
  8. 上記請求項6又は7に記載のアレイ型プロセッサにおいて、
    一部の前記プロセッサエレメント及び/又は一部の前記プログラマブルスイッチエレメントに対してのみ、前記任意の時点における演算状態に応じた前記アドレスを与え、残りの前記プロセッサエレメントおよび残りの前記プログラマブルスイッチエレメントは、前記任意の時点における演算状態の直前に使用していた前記アドレスを継続して使用することを特徴とするアレイ型プロセッサ。
  9. 上記請求項4に記載のアレイ型プロセッサにおいて、
    前記演算制御バスが、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに配設され、かつ、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、さらに、前記プロセッサエレメント及び/又は前記プログラマブルスイッチエレメントが、隣接する前記演算制御バスのうちいずれか一つを選択して前記アドレスを得ることを特徴とするアレイ型プロセッサ。
  10. 上記請求項4から9のいずれかに記載のアレイ型プロセッサにおいて、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに対して、それぞれ独立の前記演算制御バスが配設され、かつ、それぞれ独立した制御が行われることを特徴とするアレイ型プロセッサ。
  11. 上記請求項1から10のいずれかに記載のアレイ型プロセッサにおいて、
    前記プロセッサエレメントが、演算処理データを記録するレジスタを有することを特徴とするアレイ型プロセッサ。
  12. 上記請求項11に記載のアレイ型プロセッサにおいて、
    前記プロセッサエレメントが、外部からの入力データまたは前記演算処理データに対して、前記状態遷移管理部からの制御に応じた演算処理を行ない、この演算処理結果を、前記外部に出力データとして出力するか、あるいは、前記レジスタに記録することを特徴とするアレイ型プロセッサ。
  13. 上記請求項1から12のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部と前記データパス部とを電気的に接続するイベント通知バスを有し、前記データパス部が、前記イベント通知バスを通じて、演算結果をイベントとして前記状態遷移管理部に通知することを特徴とするアレイ型プロセッサ。
  14. 上記請求項1から13のいずれかに記載のアレイ型プロセッサにおいて、
    前記シーケンサ部が、前記状態遷移テーブルメモリに書き込まれた前記状態遷移ルールにしたがって、前記演算状態から同一のまたは異なる演算状態への状態遷移を制御し、前記同一のまたは異なる演算状態を新たな演算状態とすることを特徴とするアレイ型プロセッサ。
  15. 上記請求項1から14のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移テーブルが、複数の演算状態の記述エントリを並べたリスト形式で記録されており、前記記述エントリが、状態を識別するある時点の状態番号、状態遷移先の状態を識別する次の時点の状態番号及び前記ある時点の状態から次の時点の状態へ遷移するための状態遷移条件を有することを特徴とするアレイ型プロセッサ。
  16. 上記請求項14又は15に記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部は、前記ある時点の状態番号、あるいは前記次の時点の状態番号に対応して、前記命令コードアドレスのアドレス及び/又は前記接続構成情報メモリのアドレスを管理する制御情報メモリを有し、
    前記状態遷移テーブルから特定された前記ある時点の状態番号、あるいは前記次の時点の状態番号を基に、前記制御情報メモリより前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを特定することを特徴とするアレイ型プロセッサ。
  17. 上記請求項14又は15に記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部は、前記ある時点の状態番号に対応して、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを管理する状態遷移テーブルを有し、
    前記状態遷移テーブルは、前記ある時点の状態番号を基に、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを特定することを特徴とするアレイ型プロセッサ。
  18. 上記請求項15から17のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移テーブルが、前記ある時点の状態番号、前記次の時点の状態番号及び前記状態遷移条件を前記記述エントリとするイベント状態遷移テーブルと、前記ある時点の状態番号と前記次の時点の状態番号とを前記記述エントリとするデフォルト状態遷移テーブルとを有し、前記イベント状態遷移テーブルにより前記状態遷移条件が満たされる場合の状態遷移を実現し、かつ、前記デフォルト状態遷移テーブルにより前記状態遷移条件が満たされない場合の状態遷移を実現することを特徴とするアレイ型プロセッサ。
  19. 上記請求項15から18のいずれかに記載のアレイ型プロセッサにおいて、
    一つの前記ある時点の状態番号には、一つ以上の前記記述エントリが対応し、一つの前記ある時点の状態番号に対応する前記記述エントリが二つ以上存在する場合には、当該前記記述エントリ間で異なる前記状態遷移条件を有することを特徴とするアレイ型プロセッサ。
  20. 上記請求項16又は17に記載のアレイ型プロセッサにおいて、
    前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記状態遷移テーブルメモリを、前記ある時点の状態番号と前記イベント識別コードとで検索し、この検索において、前記ある時点の状態番号が合致し、かつ、前記イベント識別コードが前記状態遷移条件を満たす前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定することを特徴とするアレイ型プロセッサ。
  21. 上記請求項20に記載のアレイ型プロセッサにおいて、
    前記イベントが通知されない場合に、前記シーケンサ部が、前記イベントが発生しなかったことを示すイベント識別コードを生成し、さらに、前記ある時点の状態番号と前記イベント識別コードの組み合わせにより前記状態遷移テーブルメモリを検索することを特徴とするアレイ型プロセッサ。
  22. 上記請求項18又は19に記載のアレイ型プロセッサにおいて、
    前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記イベント状態遷移テーブルを前記ある時点の状態番号と前記イベント識別コードとで検索すると同時に、前記デフォルト状態遷移テーブルを前記ある時点の状態番号で検索し、この検索において、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードが一致する前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定し、あるいは、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードとが一致する前記記述エントリが無かった場合には、前記デフォルト状態遷移テーブルにおける前記ある時点の状態番号と一致する前記記述エントリの前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定することを特徴とするアレイ型プロセッサ。
  23. 上記請求項20から22のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移テーブルメモリからなる内容アドレスメモリに、前記ある時点の状態番号と前記イベント識別コードとが入力され、前記内容アドレスメモリと前記記述エントリとの並列照合により一致した前記記述エントリにおける前記次の時点の状態番号が出力されることを特徴とするアレイ型プロセッサ。
  24. 上記請求項18から23のいずれかに記載のアレイ型プロセッサにおいて、
    前記次の時点の状態番号の生成の開始以降、若しくは終了以降に、前記状態遷移先の状態に対応した前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスの生成が行われることを特徴とするアレイ型プロセッサ。
  25. 上記請求項18から23のいずれかに記載のアレイ型プロセッサにおいて、
    決定された前記状態遷移先の状態が、前記状態遷移管理部において前記ある時点の状態とされた時点で、前記ある時点の状態に対応する前記アドレスの生成を開始することを特徴とするアレイ型プロセッサ。
  26. 上記請求項15から25のいずれかに記載のアレイ型プロセッサにおいて、
    前記次の時点の状態番号の生成開始から前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスが届くまでのパスに、レジスタを設け、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記アドレスを受け取る時点とを、別サイクルとすることを特徴とするアレイ型プロセッサ。
  27. 上記請求項15から25のいずれかに記載のアレイ型プロセッサにおいて、
    前記次の時点の状態番号の生成を開始する時点から、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスが届くまでを一つのサイクルとして独立させることを特徴とするアレイ型プロセッサ。
  28. 上記請求項20から23のいずれかに記載のアレイ型プロセッサにおいて、
    前記イベント識別コードを前記シーケンサ部から前記状態遷移テーブルメモリへ伝搬する接続線上に第一のレジスタを設け、該第一のレジスタにより前記イベント識別コードを前記接続線上において一時保持することで、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記命令コードメモリのアドレス及び/又は前記接続構成情報メモリのアドレスを受け取る時点とを、別サイクルとすることを特徴とするアレイ型プロセッサ。
  29. 上記請求項28に記載のアレイ型プロセッサにおいて、
    前記状態遷移テーブルメモリが、前記ある時点の状態番号を含む全てのエントリにおける前記次の時点の状態番号を保持する一つ以上の第二のレジスタを有し、前記状態遷移条件が満たされる場合には、前記一つ以上の第二のレジスタで保持されている前記次の時点の状態番号の内、前記状態遷移条件を満たすいずれかを選択して出力することを特徴とするアレイ型プロセッサ。
  30. 上記請求項29に記載のアレイ型プロセッサにおいて、
    前記第一のレジスタ及び第二のレジスタ各々に対して、使用するか否かを選択するセレクタを有し、
    前記命令コードが、前記第一及び第二のレジスタを使用するか否かを制御する制御情報を含み、
    前記セレクタが、前記命令コードに基づき前記第一及び第二のレジスタを使用するか否かを選択することを特徴とするアレイ型プロセッサ。
  31. 上記請求項1から30のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号の立ち上がり及び/又は立ち下がりにおいて、前記演算状態の遷移動作を同期させることを特徴とするアレイ型プロセッサ。
  32. 上記請求項1から31のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部が、現時点での演算状態に依存せずに状態遷移させるための強制状態遷移信号により、強制的に前記演算状態が遷移することを特徴とするアレイ型プロセッサ。
  33. 上記請求項1から31のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移テーブルが、入力された前記イベント識別コードとの一致を検出する強制状態遷移テーブルを有し、この強制状態遷移テーブルにおいて、前記状態遷移テーブルに入力された前記イベント識別コードと一致する前記記述エントリが存在する場合には、前記記述エントリに記述された次の時点の状態番号を強制的に状態遷移先の状態とすることを特徴とするアレイ型プロセッサ。
  34. 上記請求項1から33のいずれかに記載のアレイ型プロセッサにおいて、
    前記状態遷移管理部が、前記データパス部を制御する演算制御情報メモリを有することを特徴とするアレイ型プロセッサ。
JP2001043202A 2000-02-25 2001-02-20 アレイ型プロセッサ Expired - Fee Related JP3674515B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001043202A JP3674515B2 (ja) 2000-02-25 2001-02-20 アレイ型プロセッサ
US09/792,394 US6738891B2 (en) 2000-02-25 2001-02-23 Array type processor with state transition controller identifying switch configuration and processing element instruction address
GB0104550A GB2365595B (en) 2000-02-25 2001-02-23 Array type processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000050067 2000-02-25
JP2000-50067 2000-02-25
JP2001043202A JP3674515B2 (ja) 2000-02-25 2001-02-20 アレイ型プロセッサ

Publications (2)

Publication Number Publication Date
JP2001312481A JP2001312481A (ja) 2001-11-09
JP3674515B2 true JP3674515B2 (ja) 2005-07-20

Family

ID=26586148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001043202A Expired - Fee Related JP3674515B2 (ja) 2000-02-25 2001-02-20 アレイ型プロセッサ

Country Status (3)

Country Link
US (1) US6738891B2 (ja)
JP (1) JP3674515B2 (ja)
GB (1) GB2365595B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402298B2 (en) 2007-02-20 2013-03-19 Renesas Electronics Corporation Array-type processor having delay adjusting circuit for adjusting a clock cycle in accordance with a critical path delay of the data path
US9021234B2 (en) 2009-01-30 2015-04-28 Nec Corporation Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
US11249722B2 (en) 2018-06-15 2022-02-15 Renesas Electronics Corporation Semiconductor device and method of controlling the semiconductor device

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
NL1013134C2 (nl) * 1999-09-24 2001-03-27 Dsm Nv Vlamvertragende thermoplastische samenstelling met verbeterde eigenschappen.
US6732203B2 (en) 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
GB2370380B (en) * 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
WO2002069469A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Fault tolerance in a supercomputer through dynamic repartitioning
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
JP3528922B2 (ja) 2001-08-31 2004-05-24 日本電気株式会社 アレイ型プロセッサ、データ処理システム
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
JP3693013B2 (ja) * 2001-12-26 2005-09-07 日本電気株式会社 データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
US7461234B2 (en) * 2002-07-01 2008-12-02 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987783B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987784B2 (ja) 2002-10-30 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
AU2003283777A1 (en) * 2002-12-30 2004-07-22 Koninklijke Philips Electronics N.V. Processing system
US6993639B2 (en) * 2003-04-01 2006-01-31 Hewlett-Packard Development Company, L.P. Processing instruction addressed by received remote instruction and generating remote instruction to respective output port for another cell
KR100503094B1 (ko) * 2003-08-25 2005-07-21 삼성전자주식회사 넓은 메모리 밴드위스를 갖는 디지털 신호 처리 장치 및그 메모리 맵핑 방법
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
JP4728581B2 (ja) * 2004-02-03 2011-07-20 日本電気株式会社 アレイ型プロセッサ
US7424698B2 (en) 2004-02-27 2008-09-09 Intel Corporation Allocation of combined or separate data and control planes
JP4547198B2 (ja) 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
JP4364077B2 (ja) 2004-06-30 2009-11-11 富士通株式会社 演算装置及び演算装置の制御方法
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US7401203B2 (en) * 2004-09-14 2008-07-15 International Business Machines Corporation Method for wiring allocation and switch configuration in a multiprocessor environment
JP4353052B2 (ja) 2004-10-04 2009-10-28 株式会社日立製作所 半導体集積回路
US7248530B2 (en) * 2004-10-29 2007-07-24 Infineon Technologies, Ag Integrated semiconductor memory device
US7765250B2 (en) 2004-11-15 2010-07-27 Renesas Technology Corp. Data processor with internal memory structure for processing stream data
DE602005016517D1 (de) 2004-12-22 2009-10-22 Nec Electronics Corp Datenstromprozessor und Informationsverarbeitungsvorrichtung
JP2006236106A (ja) * 2005-02-25 2006-09-07 Canon Inc データ処理装置及びデータ処理方法
JP4527571B2 (ja) 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
US7814242B1 (en) * 2005-03-25 2010-10-12 Tilera Corporation Managing data flows in a parallel processing environment
JP4530042B2 (ja) * 2005-05-12 2010-08-25 日本電気株式会社 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法
JP2006338538A (ja) * 2005-06-03 2006-12-14 Nec Electronics Corp ストリームプロセッサ
JP4410162B2 (ja) * 2005-07-05 2010-02-03 富士通株式会社 リコンフィギュアブルlsi
JP2007034392A (ja) 2005-07-22 2007-02-08 Nec Electronics Corp 情報処理装置及びデータ処理方法
JP4536618B2 (ja) * 2005-08-02 2010-09-01 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
JP4972298B2 (ja) 2005-08-10 2012-07-11 株式会社日立ハイテクノロジーズ 半導体デバイスの欠陥検査方法及びその装置
WO2007020849A1 (ja) * 2005-08-15 2007-02-22 Turbo Data Laboratories Inc. 共有メモリ型マルチプロセッサシステム及びその情報処理方法
JP4675714B2 (ja) 2005-08-17 2011-04-27 富士通セミコンダクター株式会社 初期化回路を自動構築するリコンフィグ可能な集積回路装置
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
JP4712503B2 (ja) 2005-09-29 2011-06-29 富士通セミコンダクター株式会社 リコンフィグ可能な画像処理用アドレス生成回路及びそれを有するリコンフィグlsi
JP4619252B2 (ja) 2005-09-29 2011-01-26 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
JP2007122318A (ja) * 2005-10-27 2007-05-17 Seiko Epson Corp 印刷制御装置
JP2007133456A (ja) * 2005-11-08 2007-05-31 Hitachi Ltd 半導体装置
JP2007164472A (ja) * 2005-12-14 2007-06-28 Sonac Kk 待ち合わせ機構を有する演算装置
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US7636835B1 (en) * 2006-04-14 2009-12-22 Tilera Corporation Coupling data in a parallel processing environment
US7539845B1 (en) * 2006-04-14 2009-05-26 Tilera Corporation Coupling integrated circuits in a parallel processing environment
US7577820B1 (en) * 2006-04-14 2009-08-18 Tilera Corporation Managing data in a parallel processing environment
US7774579B1 (en) 2006-04-14 2010-08-10 Tilera Corporation Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles
US7865694B2 (en) * 2006-05-12 2011-01-04 International Business Machines Corporation Three-dimensional networking structure
JP4490392B2 (ja) 2006-05-30 2010-06-23 富士通マイクロエレクトロニクス株式会社 初期化回路を自動構築するリコンフィグ可能な集積回路装置
JP4755033B2 (ja) 2006-07-05 2011-08-24 ルネサスエレクトロニクス株式会社 半導体集積回路
JP2008152409A (ja) * 2006-12-15 2008-07-03 Renesas Technology Corp 半導体集積回路
JP2008198003A (ja) 2007-02-14 2008-08-28 Nec Electronics Corp アレイ型プロセッサ
JP4444305B2 (ja) * 2007-03-28 2010-03-31 株式会社東芝 半導体装置
JP5014899B2 (ja) 2007-07-02 2012-08-29 ルネサスエレクトロニクス株式会社 再構成可能デバイス
US8019970B2 (en) * 2007-11-28 2011-09-13 International Business Machines Corporation Three-dimensional networking design structure
US8375395B2 (en) * 2008-01-03 2013-02-12 L3 Communications Integrated Systems, L.P. Switch-based parallel distributed cache architecture for memory access on reconfigurable computing platforms
JP5133169B2 (ja) * 2008-08-12 2013-01-30 ルネサスエレクトロニクス株式会社 状態遷移管理装置及びその状態遷移管理方法
JP5279046B2 (ja) 2008-10-14 2013-09-04 国立大学法人 奈良先端科学技術大学院大学 データ処理装置
JP5231949B2 (ja) * 2008-11-12 2013-07-10 株式会社東芝 半導体装置、および、半導体装置によるデータ処理方法
US8122226B2 (en) * 2009-04-16 2012-02-21 Vns Portfolio Llc Method and apparatus for dynamic partial reconfiguration on an array of processors
JP5532050B2 (ja) 2009-08-25 2014-06-25 日本電気株式会社 データ処理装置
JP5336398B2 (ja) 2010-02-01 2013-11-06 ルネサスエレクトロニクス株式会社 半導体集積回路、半導体集積回路の構成変更方法
WO2014112082A1 (ja) * 2013-01-17 2014-07-24 富士通株式会社 プログラマブルロジック装置
US9823905B2 (en) * 2013-11-11 2017-11-21 International Business Machines Corporation Event based code generation
US10747690B2 (en) * 2018-04-03 2020-08-18 Xilinx, Inc. Device with data processing engine array
US10635622B2 (en) * 2018-04-03 2020-04-28 Xilinx, Inc. System-on-chip interface architecture
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device
CN109523019B (zh) * 2018-12-29 2024-05-21 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA742069B (en) 1973-04-13 1975-03-26 Int Computers Ltd Improvements in or relating to array processors
US4065808A (en) 1975-01-25 1977-12-27 U.S. Philips Corporation Network computer system
JPH01147767A (ja) 1987-12-04 1989-06-09 Hitachi Ltd 双カスケード型並列処理方式
JPH04291659A (ja) 1991-03-20 1992-10-15 Hitachi Ltd 並列コンピュータシステムおよびその動作方法
CA2129882A1 (en) * 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6167501A (en) * 1998-06-05 2000-12-26 Billions Of Operations Per Second, Inc. Methods and apparatus for manarray PE-PE switch control

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402298B2 (en) 2007-02-20 2013-03-19 Renesas Electronics Corporation Array-type processor having delay adjusting circuit for adjusting a clock cycle in accordance with a critical path delay of the data path
US9021234B2 (en) 2009-01-30 2015-04-28 Nec Corporation Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
US11249722B2 (en) 2018-06-15 2022-02-15 Renesas Electronics Corporation Semiconductor device and method of controlling the semiconductor device
US11907681B2 (en) 2018-06-15 2024-02-20 Renesas Electronics Corporation Semiconductor device and method of controlling the semiconductor device

Also Published As

Publication number Publication date
JP2001312481A (ja) 2001-11-09
US20010018733A1 (en) 2001-08-30
US6738891B2 (en) 2004-05-18
GB2365595A (en) 2002-02-20
GB0104550D0 (en) 2001-04-11
GB2365595B (en) 2004-10-13

Similar Documents

Publication Publication Date Title
JP3674515B2 (ja) アレイ型プロセッサ
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
EP1297417B1 (en) Apparatus and method for issue grouping of instructions in a vliw processor
JP4594666B2 (ja) 再構成可能な演算装置
JPH04299436A (ja) メモリ回路および機能ユニットのグループを備えた処理装置
JP4007483B2 (ja) 高位合成装置および高位合成方法
JP2010086129A (ja) マルチスレッドプロセッサ
CN101763251A (zh) 多线程微处理器的指令译码缓冲装置
US20060004980A1 (en) Address creator and arithmetic circuit
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
JP3987782B2 (ja) アレイ型プロセッサ
CA1272295A (en) Multi-channel shared resource processor
JP2008204177A (ja) 遅延調整回路を有するアレイ型プロセッサ
US20030126404A1 (en) Data processing system, array-type processor, data processor, and information storage medium
EP1388048B1 (en) Storage system for use in custom loop accellerators
JPH08235143A (ja) クラスタ構成の並列計算機
JPH0799515B2 (ja) 命令フロ−コンピュ−タ
JP4743581B2 (ja) データ処理システムおよびその制御方法
CN100365567C (zh) 微控制器
JP4530042B2 (ja) プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法
JP2589828B2 (ja) 複数のプロセッサと複数のメモリとを備えるデータ処理システム用中央処理ユニット
JP2518912B2 (ja) 並列デ―タ処理装置
KR100301112B1 (ko) 단일칩다중프로세서에서그래픽처리기의스케쥴러및스케쥴링방법
JPH10301776A (ja) 情報処理装置及びパイプライン処理方法
JPH03269641A (ja) シフトパス選択回路

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040928

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20041028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041028

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041126

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041203

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050315

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050418

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090513

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100513

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110513

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110513

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120513

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120513

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130513

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees