JP2766404B2 - データ駆動形マイクロプロセッサ - Google Patents

データ駆動形マイクロプロセッサ

Info

Publication number
JP2766404B2
JP2766404B2 JP12233891A JP12233891A JP2766404B2 JP 2766404 B2 JP2766404 B2 JP 2766404B2 JP 12233891 A JP12233891 A JP 12233891A JP 12233891 A JP12233891 A JP 12233891A JP 2766404 B2 JP2766404 B2 JP 2766404B2
Authority
JP
Japan
Prior art keywords
data
memory
packet
address
unit
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
JP12233891A
Other languages
English (en)
Other versions
JPH08212186A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP12233891A priority Critical patent/JP2766404B2/ja
Priority to US07/819,164 priority patent/US5404553A/en
Priority to US08/330,880 priority patent/US5666535A/en
Publication of JPH08212186A publication Critical patent/JPH08212186A/ja
Application granted granted Critical
Publication of JP2766404B2 publication Critical patent/JP2766404B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ依存関係に従っ
て並列に命令実行を行う、いわゆる「データ駆動形計算
機」のハードウェア構成に関するものである。より詳細
には、ベクトル演算処理機能を兼ね備えた、データ駆動
形マイクロプロセッサに関する発明である。
【0002】
【従来の技術】ベクトル演算機構を導入したデータ駆動
形計算機の一例が、「高並列データ駆動形計算機EDD
ENの概要」として、平成元年3月に発行された情報処
理学会第38回(昭和64年前期)全国大会予稿集に開
示されている。
【0003】本公知文献は、データ駆動形計算機の問題
点の一つとして、配列などの定型的な構造体に対して単
純な処理を繰り返す定型的演算での性能低下を指摘して
おり、命令実行部にベクトル演算機構を導入し、外部メ
モリに格納された配列データに対して局所的にベクトル
演算命令を実行することによって、この問題の解決が図
り得ることを示している。更に、通常のスカラーデータ
とベクトル演算制御機構が、演算器を時分割で共有する
方式により、演算パイプラインの充足率の向上が図り得
ることも示されている。本公知文献に開示されているデ
ータ駆動形計算機は、図64に示すような構成をとって
いる。以下、図について従来例の動作の説明を行う。
【0004】図64に示されている1チップデータ駆動
形計算機は、ネットワーク制御部NC、入力制御部I
C、キュー部Q、プログラム記憶部PS、出力制御部O
C、発火制御・カラー管理部FCCM、命令実行部EX
E、およびベクトル演算制御部VCから構成されてい
る。また、図65は、公知例のデータ駆動形計算機の具
体的な動作を説明するためのプログラム(データフロー
グラフ)の簡単な例であり、A+Bの演算結果をCとし
て出力する処理を示している。データフローグラフは、
ノード番号が割り付けられた複数のノードと、これらの
間でのデータ依存関係を示すアークから構成されてい
る。図中、5角形のノードは、外部との入出力を示す特
殊なノードであり、演算は行わない。一方、丸いノード
では、ノードの中に示されている演算が入力されたデー
タに対して施される。
【0005】外部からネットワーク制御部NCを介して
入力されたパケット(タグ情報を有するデータ)Aは、
ホスト計算機によって行き先ノード番号として#0が与
えられている。また、もう一つの入力パケットBは行き
先ノード番号#1をもっている。これらのパケットは、
入力制御部ICを経由してキュー部Qに一時記憶された
後、プログラム記憶部PSにおいて、それぞれのもって
いる行き先ノード番号を入力アドレスとしてプログラム
メモリの読み出しを行い、次の行き先ノード番号、すな
わち#2と、#2のノードに対応する命令コード「+」
を読み出す。この後、これらのパケットは出力制御部O
Cを通過して発火制御・カラー管理部FCCMに到る。
【0006】発火制御・カラー管理部FCCMにおいて
は、これらのパケットの行き先ノード番号が何れも#2
であるため、「A」、「B」の両方のパケットが発火制
御・カラー管理部FCCMに到着した時点で、発火処理
が行われ、2つのオペランドをもつ実行パケットが生成
され、命令実行部EXEに送られる。
【0007】命令実行部EXEではこのパケットに格納
されている命令コード、すなわち「+」に従ってA+B
の演算を行い、結果データCを含む結果パケットCを出
力する。結果パケットは、再び入力制御部ICとキュー
Qを経由してプログラム記憶部PSに到る。
【0008】プログラム記憶部PSでは、パケットCの
もつ行き先ノード番号を入力アドレスとしてプログラム
メモリに読み出され、次の行き先ノード番号#3と、命
令コード「OUT」が読み出される。命令コード「OU
T」をもつこのパケットは、出力制御部OCで外部に分
岐処理され、プロセッサ外に出力するためにネットワー
ク制御部NCに送られる。
【0009】以上のような処理の連鎖によって、図5に
示したデータフローグラフに相当する演算が施され、プ
ログラムの実行が終了する。図5は、最も簡単な一例を
示したが、多数の命令ノードとこれらの命令ノード間の
データ依存関係を示すアークから構成される更に複雑な
データフローグラフの実行も全く同様にして行うことが
できる。
【0010】プログラム実行時には、データ依存関係の
存在するノードの処理は逐次的に実行されるが、データ
依存関係の存在しないノードの処理は処理資源の許す限
りにおいて並列に実行できる。ここで、データ依存関係
とは、二つのノード間の接続関係において、一方のノー
ドの処理が完了することによってはじめて他方の処理を
行うために必要な入力データが供給されるような接続関
係にあることを指している。
【0011】以上は、スカラーデータの処理の流れであ
るが、命令実行部EXEをスカラーデータ処理と時分割
でベクトルデータ処理のために用いる方法が本公知文献
に開示されている。ベクトル演算制御部VCは、ベクト
ル演算関連命令、および通常のメモリアクセス命令の実
行制御を行っている。ベクトル演算制御部VCと、入力
制御部IC及び出力制御部OCの間には構造体(ベクト
ル)通信用のバイパス線を設けている。外部データメモ
リは、構造体等を格納するデータメモリである。
【0012】
【発明が解決しようとする課題】ところが、公知文献に
開示されている従来のベクトル演算機構を備えたデータ
駆動形計算機には、二つの問題点がある。
【0013】第1の問題点は、内部にデータメモリをも
たないため、ベクトル演算実行時のスループットが低い
ことである。例えば、ベクトルXとベクトルYの加算を
行い、結果をベクトルZとしてデータメモリに格納する
場合、ベクトルXの要素xiとベクトルYの要素yiを
読み出し、演算結果をベクトルZの要素ziとしてデー
タメモリに書き込むという処理をベクトルの要素の数だ
け繰り返す必要がある。ところが、公知文献に開示され
ている1チップデータ駆動形計算機は、内部にデータメ
モリをもたず、チップ内には外部データメモリに対する
アクセス制御機能しかもたないため、1要素のベクトル
演算を行うために3回のメモリアクセスを逐次的に行う
必要があり、データメモリのアクセスが処理のボトルネ
ックとなって、ベクトル演算のみでは命令実行部EXE
の高い性能を活かすことができない構成になっている。
【0014】第2の問題点は、巡回型パイプライン中の
EXE部の処理が、データメモリのアクセスと、命令の
実行の二者択一になっていることである。このため、デ
ータメモリの中に記憶されているデータを演算に用いた
ときに、メモリからのデータ読み出しのために巡回型パ
イプライン処理の1周回を要し、さらに演算実行のため
に一周回を要することとなり、効率が悪い。従って、本
発明の目的は、ベクトル演算における被演算データの読
出し、演算結果データの書き込み、メモリアクセス処理
を短いアクセス時間内に、しかも同時並列的に行うよう
にして、高いベクトル演算性能を達成する。また、効率
のよいログラム実行ができるようにする。
【0015】
【課題を解決するための手段】この発明に係るデータ駆
動形マイクロプロセッサは、演算部FALUとプログラ
ムメモリ部PMを並列配置し、上記演算部FALU及び
上記プログラムメモリ部PMで更新された情報を入出力
インターフェース部IFへ送る構成とするとともに、デ
ータを同時に並行かつ連続的に読み書き可能なデータメ
モリ部DMを上記演算部FALUよりも手前に配置し、
マッチングメモリ部MMから被演算データを連続的に上
記データメモリ部DMへ読み出し、予め設定されている
命令コードとともに上記演算部FALUへ送り込みベク
トル演算を実行することを特徴とするものである。
【0016】
【作用】本発明においては、上記のように、データ駆動
形マイクロプロセッサ内部にマルチポートのデータメモ
リ部DMを備えたことにより、ベクトル演算のための2
つの被演算データの読み出し、演算結果データの書き込
み、通常のメモリアクセスなどの処理が、短いアクセス
時間内に、しかも同時並行に行われ、きわめて高いベク
トル演算性能を達成することができる。
【0017】また、データメモリ部を巡回パイプライン
中に取り込み、かつ演算部の前段に配置したことによ
り、データの読み出しと演算実行が巡回パイプラインの
1周回で完了し、効率のよいプログラム実行が可能とな
る。
【0018】
【実施例】以下、本発明の実施例を図に基づいて詳細に
説明する。図1は、本発明の一実施例を示すデータ駆動
形マイクロプロセッサのブロック図である。図3のプロ
グラム(データフローグラフ)を実行する場合につい
て、動作を説明する。外部から入出力インターフェース
部IFを経由して入力されたパケットは、図4に示され
ているように、行き先プロセッサ番号(PE#)
「1」、制御情報(SEL−CODE)、命令コード
(OPC)「+」、行き先ノード番号#1、左データ
「I」を含んでいる。制御情報SEL−CODEのう
ち、PAIRはマッチングメモリで発火処理をするか否
か、IMはデータメモリからオペランド(被演算デー
タ)の読み出しを行うか否か、I/O(Oは反転)は演
算終了後プロセッサ内で継続処理するか否か、VECT
はベクトル演算対象データであるか否か、L/R(Rは
反転)は発火処理以前に左データ位置に格納されている
データが2項演算の左データとなるデータであるか否か
を示している。
【0019】外部から入力されたパケット「I」は、入
出力インターフェース部IFを経由してマッチングメモ
リ部MMに到るが、図4(a)に示すように、SEL−
CODEのIMフラグが1であるため、2項演算の相手
のデータはデータメモリ部DMから読み出すものと解釈
されて何も処理されずにデータメモリ部DMに送られ
る。データメモリ部DMにおいては、IMフラグが1で
あるため、パケットの右データ位置に格納されている値
「n」に相当するアドレスに記憶されているデータが読
み出され「n」の代わりに右データ位置に格納される。
【0020】データメモリ部DMからは、演算FALU
とプログラムメモリ部PMに同時にパケットが送出され
る。FALU部では、命令コード「+」に従って2項演
算が実行され、結果データがパケットの左データ位置に
格納される。
【0021】一方、プログラムメモリ部PMでは、パケ
ットの行き先ノード番号「#1」に従ってプログラムメ
モリの読み出しが行われ、次の行き先ノード番号の「#
2」、次の命令コード「×」、次の制御情報などが読み
出されてパケット中の相当部分が更新される。
【0022】演算部FALU、およびプログラムメモリ
部PMで更新されたこれらの情報は、コピー部KCOP
Yで併合され再び入出力インターフェース部IFに送ら
れる。コピー部KCOPYでは、1つのノードの演算結
果に対して複数の行き先ノードが存在するような場合
に、演算結果データのコピーが行われ、プログラムメモ
リ部PMで読み出された複数のタグ情報に付与されて、
同一の結果データをもつ複数のパケットが出力される。
【0023】この演算結果パケットが入出力インターフ
ェース部IFを経由して再びマッチングメモリ部MMに
到達したとき、すでにデータ「J」をもつパケット(図
4(b)参照)がマッチングメモリ部MMに到着して格
納されていれば、これら2つのパケットの行き先ノード
番号が何れも「#2」であることから、発火処理が行わ
れ、2項演算のためのパケットが生成される。一方、相
手となるパケットが未到着であれば、マッチングメモリ
部MMにおいて相手パケットの待ち合わせを行う。マッ
チングメモリ部MMで生成された前記パケットは、IM
フラグが0であり、命令コードがDM命令ではないこと
から、データメモリ部DMを通過し、演算部FALU
と、プログラムメモリ部PMに送られる。演算部FAL
Uでは、乗算が実行される。また、プログラムメモリ部
PMでは、次のタグ情報が読み出され、図4(c)に示
すようなパケットに付与される。これらの情報は、コピ
ー部KCOPYで併合された後IF部に送られるが、図
4(c)に示されているようにSEL−CODEのI/
O(Oは反転)フラグが0であることから外部に出力さ
れる。
【0024】以上説明したように、2つの入力を受け入
れたプログラム(データフローグラフ)は、所定の処理
を完了し、結果をパケットの形で出力する。
【0025】この過程において、データメモリ部DMの
n番地に格納されているデータとの演算が行われたが、
データメモリ部DMが、演算部FALUの手前に配置さ
れているので、メモリアクセスのために巡回パイプライ
ンを余分に周回することなく、効率のよいプログラム実
行が実現されている。
【0026】次に、ベクトル演算処理について説明す
る。図2は、本発明に係るデータ駆動形マイクロプロセ
ッサのデータメモリ部DMの構成を示す一実施例であ
る。
【0027】データメモリ部DMは、8段のパイプライ
ン構成となっている。最初の4段は、アドレス発生用に
用いられている。5つのメモリアクセスを同時に行うた
めに、5つの独立に動作するアドレス発生器AG1〜A
G5が備えられている。5つのメモリアクセスは、ベク
トル演算用の2つのオペランドデータ読み出し、1つの
結果データ書き込み、スカラーデータ用のデータの読み
出しまたは書き込み、および、外部データメモリとの間
でのDMAデータ転送用のデータの読み出しまたは書き
込みを含んでいる。5段目は、メモリアドレスのマトリ
クススイッチを備え、5つのアドレス発生器と、8つの
メモリバンクを任意に組み合わせて構成することができ
る。6段目は、メモリアクセスのための段であり、8つ
のメモリバンクBK1〜BK8を有し、このメモリバン
クBK1〜BK8中の5つのメモリバンクを同時にアク
セスすることができる。このとき、例えば、バンクBK
3とバンクBK4を結合して一つのメモリバンクとする
ことも、マトリクススイッチの開閉の制御と、各メモリ
バンクに設けられたアドレス判定機能によって可能とな
っている。7段目は、データのマトリクススイッチMS
より成り、8つのメモリバンクと、入出力バスが任意に
組み合わされ、構成される。パイプラインの8段目で
は、ベクトル処理パケットと、スカラー処理パケットの
調停が行われ、何れかが選択されて出力される。
【0028】データメモリ部DMの種々の機能は、予め
機能設定用の命令コードをもったパケットを送り込み、
制御用レジスタファイルCRFの書き込みを行うことに
よって、プログラマブルに設定することができる。設定
できる機能は、次の通りである。 各々のアドレス発生器の機能、すなわち連続アドレス
発生回数、アドレス増分、法(モジュロ)演算、アドレ
スビット反転、アドレス最下位ビットマスク、開始アド
レス設定など。 アドレス発生器とメモリバンクの組み合わせ。 メモリバンクと入出力データバスの組み合わせ。 ベクトル演算パケットに付与する命令コードおよび行
き先PE#。
【0029】一例として、128個の要素からなるベク
トルデータ間の演算「X×Y+Z→W」を実行する場合
について説明する。まず、外部データメモリからベクト
ルXとYを、それぞれ、バンクBK3とバンクBK4に
DMA転送する。このために、図2中のアドレス発生器
AG5をバンクBK3と結合し、128ワード分のアド
レスを連続的に生成し、外部データメモリとのDMA転
送を行ってベクトルXをバンクBK3に読み込み、また
同様にしてベクトルYをバンクBK4に読み込む。
【0030】次に、バンクBK3とバンクBK4から、
アドレス発生器AG1及びAG2を用いて、同時にオペ
ランドデータを読み出しつつ、乗算の命令コードを付加
して演算パケットを連続的に生成し、演算部FALUに
送り込む。この時、この演算パケットは同時にプログラ
ムメモリ部PMにも送られるが、パケット中のVECT
フラグが1であるため、プログラムメモリ部PMでは処
理されずそのまま出力され、演算部FALUからの出力
と併合される。
【0031】この処理と同時並行に、次に必要となるベ
クトルZの外部データメモリからの読み込みがDMA転
送を用いて行われ、ベクトルZはアドレス発生器AG5
によって生成されるアドレスに従い、バンクBK6に格
納される。
【0032】一方ベクトルXとYの要素データ毎の乗算
結果は、VECTフラグとして1をもって入出力インタ
ーフェース部IF、マッチングメモリ部MMを通過し、
データメモリ部DMに到ると、VECTフラグが1であ
るので、アドレス発生器AG4によって書き込みアドレ
スが連続的に生成され、予めベクトル演算結果の書き込
み用に割り当てられていたバンクBK5に連続的に書き
込まれていく。
【0033】ベクトルXとYの乗算が完了した後、乗算
結果が格納されているバンクBK5と、ベクトルZが読
み込まれているバンクBK6との間で、同様にしてベク
トル加算が行われ、加算結果はバンクBK7に格納され
る。
【0034】最終的な演算結果Wは、バンクBK7か
ら、外部データメモリにDMA転送される。以上のよう
な処理により、ベクトル演算が高速に実行される。外部
データメモリと内部メモリバンクの間でのデータの授受
は、開始アドレスを双方設定した上で、アドレス情報無
しでデータをブロック転送するDMA転送を用いたこと
により高速化されており、演算のレートと、データの供
給レートが均衡し、効率のよいベクトル演算が実現して
いる。さらに、ベクトル演算実行中であっても、アドレ
ス発生器AG3やスカラーデータ用の入出力データバス
を独立にもっているため、通常のメモリアクセスも同時
に実行することができる。
【0035】次に図1に示す入出力インターフェース部
IFの詳細を説明する。図5はこの入出力インターフェ
ース部IFのブロック図である。入出力インターフェー
ス部IFは、3語1語変換回路、合流回路、分岐回路、
1語3語変換回路、キューバッファ回路、および初期化
回路(図示せず)から構成される。この入出力インター
フェース部IFにおける3語1語変換回路は図6に、初
期化回路は図7に、合流回路は図8に、分岐回路は図9
に、1語3語変換回路は図10にそれぞれ一例として示
す。
【0036】このように構成される入出力インターフェ
ース部IFは次のような機能を持っている。 (1)初期化 外部から入力される初期化パケットを受け取り、プロセ
ッサエレメント番号(PE#)レジスタ、ブロック合流
比率(IFブロック、DMブロック)レジスタの初期化
を行う。初期化のためのオペコードをもったパケット
は、レジスタの初期化に用いれらた後、IFブロック内
で消去される。 (2)3ワード→1ワード変換 42ビット×3ワード形式で入力される外部パケット
を、1ワードに展開する。 (3)合流 外部から入力されたパケットを、非同期調停回路を用い
て、内部巡回パイプラインに合流させる。合流のための
経路切り換えオーバーヘッドを低減するために、複数の
パケット毎に経路切り換えを行う「ブロック合流」を採
用している。 (4)分岐 巡回パイプライン上のパケットの中で、PE外に出力す
べきものを分岐させて外部に出力する。 (5)1ワード→3ワード変換 1ワード形式の内部パケットを、42ビット×3ワード
の外部パケット形式に変換して出力する。
【0037】ところで、本プロセッサの入出力ピン数を
低減するため、プロセッサ外部ではパケットは3語構成
で通信され、外部から入力したパケットはプロセッサ内
部で3語から1語への語数変換を行う必要がある。12
0ビット幅の1語パケットに変換された入力パケット
は、非同期合流回路の合流側に入力される。合流回路内
部では、内部巡回パイプライン上のパケットとの非同期
調停がなされ、1本の経路に合流してマッチングメモリ
部MMに出力される。出力されたパケットは、[MM]
→[DM]→[PM、FALU]→[KCOPY]を経
て再び入出力インターフェース部IFに入力され、分岐
回路に到る。分岐回路では、パケットのセレクションコ
ードと行き先PE#から、分岐するか否かが決定され
る。
【0038】次に3語1語変換回路の動作について説明
する。入出力ピン数の制約があるため、入力パケットは
42ビット×3語構成で入力される。これを120ビッ
ト1語に変換するための回路が設けられている。3語1
語変換回路においては、入力された42ビットのデータ
の上位2ビットをデコードして先頭/中間/末尾語の何
れであるかを判定し、相当するデータラッチに記憶させ
るべくC素子に対するSend信号を制御する。
【0039】次に初期化回路の動作について説明する。
初期化回路においては、3語1語変換回路の出力パケッ
トに含まれている命令コードをデコードし、初期化パケ
ットであると判断された場合には、初期化レジスタに対
するラッチ信号を発生してパケット中の左データ領域の
下位12ビットに格納されている初期化情報を初期化レ
ジスタに記憶させ、かつアクノレッジ信号を3語1語変
換回路に返す。一方、初期化のためのパケットは初期化
回路で消すために、初期化パケットであった場合には次
段へのSend信号の伝搬を禁止するためのANDゲー
が設けられいてる。
【0040】次の合流回路においては、2本の経路から
入力されるパケットを1本の出力経路にまとめるため
に、非同期の合流調停回路が設けられている。詳細な回
路は、例えば本件出願人が既に出願している明細書(特
願昭60−136610号、特開昭61−294949
号、昭和60年6月21日出願、「データ伝送装置」)
の実施例に開示されている。
【0041】分岐回路においては、120ビット幅の入
力パケットのセレクションコード、命令コードなどをデ
コードして分岐するか否かが決定され、本線側、または
分岐側にパケットが送られる。分岐回路における分岐条
件を以下に示す。
【0042】
【数1】
【0043】ただし、リモート・メモリ・アクセスの際
に行き先PEが自PEであるために、CONDXとCO
NDYは成立しているのに、Aが成立しないために分岐
しなかったパケットについては、入出力インターフェー
ス部IFでそのパケットのPEおよびPMTHフラグを
クリアして通常のローカル・メモリ・アクセスパケット
に変更する機能を入出力インターフェース部IFに与え
ることとする。この機能を実現するために、分岐回路か
ら合流回路に至る本線経路上において、セレクションコ
ードに関して次の処理が実行される。 PE(NEW)=PE*CONDX*CONDY PMTH(NEW)=PMTH*CONDX*CONDY
【0044】次に図12を参照して入出力インターフェ
ース部の動作について説明する。PEフラグの値が
“1”,すなわちパケットをPE外へ出力する場合で
も、行き先PE#が自PEである場合には、出力しな
い。データメモリ部DMは、入力のセレクション・コー
ドがPE=“0”かつPM_Thru=“1”のとき、
右データをアドレスとしてメモリを読み出して結果を右
データフィールドに格納する。かつ、PM_Thru=
“0”に変えて出力する。また、データメモリ部DMを
アクセスする命令を実行した時には、常に左データの上
位8ビットを右データの上記8ビットに移動させる(P
E間を渡るメモリアクセスパケットの戻り先PE#を保
存するため)。さらに、PE#=“1”,PM_Thr
u=“0”のときデータメモリ部DMはNOP(空命
令)と見なす(PE間を渡るメモリアクセスをした後
に、もとのPEに戻ったときにデータメモリ部DMをス
ルーさせるため)。
【0045】キューバッファ回路は、書き込み専用ポー
トと、読み出し専用ポートをもつ、2ポートメモリで実
現されている。
【0046】本プロセッサを複数個接続したマルチプロ
セッサシステムにおける分散型共有データメモリを効率
的にアクセスするための機構について説明する。図11
は、上記分散型共有データメモリアクセス機構を示した
概念図である。 図中の“RAPID”は本データ駆動形
マイクロプロセッサを示す。PE#0側は、データメモ
リの読み出し要求パケットのアドレス上位(PE#0に
対応)のチェックを行い、前記パケットの戻り先PE#
(“0”)を付加してネットワークへ出力を行う。次に
PE#7側は、データメモリの読み出し、行き先PE#
の付け換え、要求元PEへの送出を行う、次にPE#0
側は読み出し結果の受け取りを行う。バス結合型の共有
メモリ方式のマルチプロセッサの場合、メモリアクセス
のボトルネックによって全体性能が律則される。本マイ
クロプロセッサは、分散型共有メモリ方式を採用してお
り、プロセッサ間のメッセージ通信を用いて、同時並列
的に分散配置されたメモリのアクセスを行う。このた
め、上記のようなボトルネックはなく、性能が飛躍的に
向上する。なお、本動作の詳細は後述する。
【0047】図13は図1中のマッチングメモリ部MM
の構成を示すブロック図である。このマッチングメモリ
部MMの機能について説明する。 (1)オペランド対の生成 マッチングメモリ部MMでは、二項演算に必要な2つの
オペランドの対を生成して出力する。この機能を、基本
的にはハッシュメモリ上でのオペランド待ち合わせによ
り実現している。つまり、入力パケットのタグ情報から
計算したハッシュ値をメモリ上の待ち合わせアドレス
して先に到着したパケットのオペランドを格納してお
き、同一のタグ情報を有するパケットが到着したときに
演算可能な実行パケットを生成する。マッチングメモリ
部MMでは、この待ち合わせメモリとしてハッシュメモ
リと連想メモリを組み合わせて用いている。すなわち、
通常はハッシュメモリを使用し、連想メモリはハッシュ
衝突時に溢れたパケットの受け皿として用いている。ハ
ッシュアドレスの生成には、入力パケットのタグ情報の
行き先ノード番号の下位9ビットとカラー/世代9ビッ
トが用いられる。これら2つの情報をビット毎にEXN
ORをとることで、9ビットのハッシュアドレスが計算
される。この方法によりハッシュ衝突の頻度を下げるこ
とが可能となる。この効果によりハッシュ衝突時の受け
皿である連想メモリの容量を小容量化することができ
る。尚、万一この連想メモリが溢れた場合には、入力パ
ケットに対して、ハッシュ衝突フラグを立て、他の機能
ブロックで何も処理されないスルーパケットとして出力
され、巡回パイプラインを1周した後に再びMMに戻る
ようにしている。
【0048】(2)パイプライン構成 マッチングメモリ部MMは、6段のパイプラインステー
ジに分割されている。各ステージにおける処理は次のよ
うになっている。 第一段:ハッシュアドレスの生成。 第二段:アドレス比較によるハッシュメモリの事前競合
検知。 第三段:ハッシュアドレスのプリデコード。 ハッシュメモリの事前競合回避。 第四段:ハッシュメモリと連想メモリの読み出し。 第五段:ハッシュメモリ読み出し結果と入力パケット
のタグ情報の比較。 右オペランドの選択(入力パケット/ハッシュメモリ
/連想メモリ)。 第六段の処理の決定(ハッシュメモリへ書き込み/ハ
ッシュメモリと対生成/連想メモリへ書き込み/連想メ
モリと対生成)。 第六段:第五段での決定結果によるメモリ書き込みの
実行(対生成の場合にもプログラムメモリ部PBへの
“0”書き込みが行われる)。 左右オペランドの交換。
【0049】(3)メモリアクセスの排他制御 マッチングメモリ部MMでは、1つのパケットが入力さ
れる毎に、ハッシュメモリと連想メモリのそれぞれに対
して、読み出しと書き込みの合計2回のメモリアクセス
を行う。入力パケットが連続してやってくる場合にもパ
ケットの転送レートを低下させないために、メモリアク
セスのサイクルタイムを最小にした上で、N番目の入力
パケットの書き込みを実行する前にN+1番目の入力パ
ケットの読み出しを実行させている。これにより、もっ
とも効率よくメモリ読み出しとメモリ書き込みを連続し
て実行させることが可能となる。メモリアクセスのサイ
クルタイムを10nsとした場合のタイムチャートを図
14に示す。非同期に入力されるパケットに対して、上
記の順序で処理を実行させるために、メモリ読み出しと
書き込みが重ならないことを保証する排他制御を行って
いる。 マッチングメモリ部MMでは、各パイプライン段
間のデータ転送を自己同期回路により実現している。こ
の自己同期回路のデータ転送制御信号を操作すること
で、メモリ読み出しステージ、あるいはメモリ書き込み
ステージへのデータ転送を局所的に停止し、メモリアク
セスの排他制御を行っている。つまり、メモリ読み出し
中には、メモリ書き込みステージへのデータ転送を停止
させ、メモリ書き込み中には、メモリ読み出しステージ
へのデータ転送を停止するように制御される。
【0050】(4)ハッシュメモリの事前競合検知 (3)で述べたように、入力パケットが連続してやって
くる場合には、N番目の入力パケットの書き込みが行わ
れる前に、N+1番目の入力パケットの読み出しが行わ
れる。この場合、N番目の入力パケットとN+1番目の
入力パケットがハッシュメモリに対して、同じアドレス
をアクセスすると誤動作を起こす。これを防ぐためにパ
イプラインステージの第二段と第三段においてハッシュ
メモリの競合を事前に回避している。これは、まず第二
段目で先行する入力パケットがアクセスしたハッシュア
ドレスと次にアクセスしようとするハッシュアドレスと
を比較する。この比較結果がもし一致していれば、先行
する入力パケットのメモリ書き込みが終了するまで、第
三段目において待たされる。以上の処理によりハッシュ
メモリの事前競合回避が実現されている。この処理はオ
ペランド対生成の必要な二項演算命令実行パケットに対
してのみ必要な処理であり(5)で述べるマッチングメ
モリ部MMでの処理とは関係のないパケットに対しては
実行されない。
【0051】(5)マッチングメモリ部MMのパケット
スルー マッチングメモリ部MMでは、(3)で述べたように二
項演算命令実行のためのパケットが入力されるとオペラ
ンド対生成のために、必ずメモリを2回アクセスする。
しかし、単項演算命令実行のためのパケットやマッチン
グメモリ部MMを強制的にスルーさせる必要のある特殊
パケットが入力されると、メモリアクセスや入力パケッ
トへの処理は全く行わずに出力される。マッチングメモ
リ部MMを強制的にスルーする特殊パケットとは、パケ
ットのタグ情報のセレクションコードの内、sel
(0)、sel(9)、sel(10)の何れかが
“1”であるものである。但し例外として、特殊パケッ
ト以外の単項演算命令実行パケットであっても右オペラ
ンドフラグの立つパケットに関しては、左右のオペラン
ド位置を入れ換える。
【0052】マッチングメモリ部MMは、図13に示し
たようにハッシュメモリ、連想メモリ、データラッチ、
データ転送制御回路“C”、およびその他の論理回路で
構成されている。入力データは、左の入力部よりパケッ
ト形式で入力される。この入力パケットのフォーマット
を図15に示す。図13において、“C”から長方形の
ブロックへ向かう矢印がラッチ制御信号で、この長方形
のブロックがデータラッチである。ラッチされる内容に
は、アドレス、タグ、データがある。アドレスは、ハッ
シュメモリをアクセスするためのハッシュアドレスで、
入力パケットのカラー/世代と行き先ノード番号より生
成される。タグは、入力パケットのタグ情報が、データ
は、オペランド情報がそれぞれ入力される。尚、データ
の上側の経路には、左オペランドが、下側の経路には右
オペランドがそれぞれ入力される。入力されたデータ
は、左から右へとデータラッチ間をデータ転送制御回路
“C”により順次転送されつつ処理が施されていく。デ
ータラッチとデータラッチに挟まれた部分が各パイプラ
インステージの1段分に相当し、データラッチ間を転送
される間にそのステージでの処理が実行される。
【0053】次に図13中のハッシュメモリについて説
明する。 (1)ハッシュメモリ本体 ハッシュメモリへは、図16に示すような56ビットの
情報が9ビットのアドレスで指定可能な512ワードま
で格納できる。ハッシュメモリのアレイ構成を図17に
示す。アドレス9ビットの内2ビットをYデコードする
ため、物理的には、224ビット×128ワードの構成
となっている。2ビットのYアドレスと7ビットのXア
ドレスの内の4ビットは、プリデコードされる。したが
って、このブロックへ入力されるアドレスはYデコード
結果の4ビットとXアドレスのプリデコード結果16ビ
ットとデコードされていないXアドレス3ビットの正負
6ビットの合計26ビットである。よって図17の1コ
ラムには、未デコードアドレス3ビットをデコードした
8本のワード線が存在する。
【0054】図17中のSELは、4組のビット線から
Yデコード結果により1組を選択するセレクタでトラン
スファーゲートを用いている。メモリセルには、ロード
トランジスタの代わりに高抵抗ポリシリコンを採用した
4トランジスタ構成の回路を用いている。プレゼンスビ
ット(PB)のメモリセルは直接リセット機構を備えた
もので、システムのリセット時にリセットされる。その
回路図を図18に示す。
【0055】(2)メモリ周辺回路 図19にメモリ周辺回路の論理回路図を示す。アドレス
9ビットの内2ビットをYデコードしているため、ビッ
トライン4本に対して書き込みドライバ、読み出しラッ
チ、センスアンプ、イコライズ・プリチャージが、それ
ぞれ1つずつ付く構成となっている。イコライズ・プリ
チャージに関しては、反転論理EQLH信号により同期
的にセンスアンプのビット・反転論理ビット線をイコラ
イズ・プリチャージする回路に加えて、メモリセルのビ
ット・反転論理ビット線をイコライズ・プリチャージす
る回路が存在する。メモリセルに関する回路のイコライ
ズは反転論理EQLH信号により同期的に行われるが、
プリチャージはチャネル幅Wの狭いNチャネルトランジ
スタにより、常時行われている。尚、このメモリセルの
ビット・反転論理ビット線をイコライズ・プリチャージ
する回路の物理的なレイアウト上の配置は、メモリセル
128列の中央の列に置かれている。W/Rアドレスセ
レクタは、CMOSトランスファーゲートで構成されて
いる。メモリ書き込み/読み出しの切り換えは、HWA
信号によって行われている。
【0056】(3)メモリアクセス制御 図20にメモリ読み出し/書き込みの制御信号を生成す
る論理回路を示す。図中のC0〜C3は、データ転送制
御回路を示す。これは、SEND、ACK信号のハンド
シェイクにより自己同期的にラッチーラッチ間のデータ
転送を司るものである。また、図中のDELAYは、遅
延回路を示している。図20に示された信号線の内、S
WEEPは後で述べる事前競合検知機構に関する信号
で、ハッシュメモリの競合を事前に防ぐための例外処理
実行の制御線である。この信号による制御に関しては、
事前競合検知機構のところで述べる。
【0057】次にこの図20を用いてメモリの読み出
し、書き込みの制御について説明する。まず読み出しで
あるが、データ転送制御回路C0からC1へ入力パケッ
トが転送される間に実行される。読み出しに関係する信
号には、EQL、SAE、CBがあり、これらは、図1
9の同名の信号線に入力される。つまり、EQL信号は
ビット線のイコライズ・プリチャージを行い、SAE信
号はセンスアンプをアクティブにし、CB信号は立ち下
がりで読み出しデータをラッチする。データ転送制御回
路C0からC1へパケットが転送されると、まずEQL
信号が“1”から“0”へ変化するとともに、SAE信
号が“0”から“1”へ変化する。これにより、イコラ
イズ・プリチャージが中止され、センスアンプが駆動さ
れることにより読み出しが開始する。次に、パケットが
データ転送制御回路C0に到着した時に“0”から
“1”へ変化した信号CBが、パケットがデータ転送制
御回路C1に到達することで再び“1”から“0”へ変
化する。これにより、CB信号が“1”の期間に読み出
しデータラッチに入力されていたデータが確定し、メモ
リ読み出しの一連の動作が完了する。
【0058】次に書き込みであるが、データ転送制御回
路C2からC3へパケットが転送される間に実行され
る。書き込みに関係する信号には、WE、WAEがあ
り、これらは、図19の反転論理HWE、HWAにそれ
ぞれ入力される。但し、反転論理HWEへはWE信号の
反転論理が入力される。WE信号は、書き込みドライバ
ーの駆動、WAE信号は、読み出しアドレスから書き込
みアドレスへの切り換えを行う。データ転送制御回路C
2へパケットが到着すると、後続するパケットがない
(EMP=“1”)場合を除き、後続パケットがデータ
転送制御回路C1へ到達し、メモリ読み出しが完了する
までメモリへの書き込みおよびデータ転送制御回路C3
へのデータ転送は待たされる。もちろん、このような制
御が行われるのは、反転論理WRITE信号が“0”で
あるメモリ書き込みパケットの場合だけであり、マッチ
ングメモリ部MMをスルーするパケットは待たされるこ
とはない。このデータ転送の停止は、RDCOMP信号
により行われる。後続パケットのメモリ読み出しが完了
すると、まずWAE信号が“0”から“1”へ変化す
る。これによりメモリに対して与えられていたアドレス
が、書き込みアドレスに切り変えられる。次に、アドレ
スのデコードが完了し特定のワード線が立ち上がるに要
する遅延Daの後に、WE信号が“0”から“1”へ変
化する。これにより書き込みドライバーが駆動されメモ
リへのデータ書き込みが実行される。その後、遅延Db
の後、WAE、WEの信号とも、“1”から“0”変化
しメモリ書き込みの動作は完了する。WAE信号が
“1”であるメモリ書き込み中はWRCOMP信号は
“0”となり、後続データのデータ転送制御回路C0か
らC1へのデータ転送はなされず、メモリ読み出しは行
われない。
【0059】以上の制御信号の一連の動きを図21のタ
イムチャートに示す。まず第1番目のパケット()が
アドレスAから値0を読み出す。次に第2番目のパケッ
ト()がアドレスBから値1を読み出すまで、第1番
目のパケットの書き込みは待たされる。第2番目のパケ
ットの書き込みが完了すると、第1番目のパケットがア
ドレスAへ、値1を書き込む。第1番目のパケットの書
き込み終了後、第3番目のパケット()はアドレスA
から値1を読み出す。第3番目のパケットの読み出し完
了後、第2番目のパケットがアドレスBへ、値2を書き
込む。以下同様にして、連続して投入されたパケットに
対して、メモリの読み出し/書き込みが排他的に行われ
る。
【0060】(4)ハッシュアドレスの事前競合検知 ハッシュアドレスの事前競合検知回路を図22に示す。
この処理は、図22に示すように、メモリアクセスを行
うパイプラインより前の3段のパイプラインで実行され
る。つまり、 第一段(Cm3):ハッシュアドレスの生成 第二段(Cm2):ハッシュアドレスの比較 第三段(Cm1):ハッシュアドレスのプリデコード ハッシュアドレスの事前競合回避 である。
【0061】まず、ハッシュアドレスの生成であるが、
これは、入力パケットのタグ情報の内、行き先ノード番
号21ビットの下位9ビットと、カラー/世代9ビット
より生成される。つまり、行き先ノード番号の下位9ビ
ットと、カラー/世代9ビットのビット位置を上位下位
反転させたものに対して、ビット毎にEXNORをとる
ことで9ビットのハッシュアドレスを生成している。こ
うすることで、単一世代プログラム実行時の行き先ノー
ド番号のハッシュアドレス空間を上限の9ビットまで広
げられる。しかも、カラー/世代のビット位置を上位下
位反転させたことで、世代が連続して入力された場合で
も、生成されるハッシュアドレスはより分散されること
になり、近接した世代間でおこるハッシュ衝突低減
期待できる。このハッシュアドレス生成法によりハッ
シュ衝突の抑制が期待できることからハッシュ衝突時
の受け皿である連想メモリの容量を32ワードと小容量
することができる
【0062】次に、ハッシュアドレスの比較であるが、
これはデータ転送制御回路Cm2でラッチされた9ビッ
トのハッシュアドレスとデータ転送制御回路Cm1でラ
ッチされている先行パケットの9ビットのハッシュアド
レスの比較を行う。データ転送制御回路Cm2ではトラ
ンスペアレントタイプのデータラッチ回路でラッチされ
ているのに対して、データ転送制御回路Cm1では、エ
ッジトリガタイプのデータラッチ回路でラッチされてい
る。比較結果が一致したか否かを示す1ビットのEQU
AL信号は、データ転送制御回路Cm1でトランスペア
レントタイプのデータラッチ回路でラッチされる。この
アドレス一致検出では、アドレス比較に加えて相前後す
る2つのパケットがともに二項演算命令実行パケットで
あることも検出しており、アドレスが一致し、かつ、と
もに二項演算実行パケットである場合に限りEQUAL
信号は“1”となる。
【0063】データ転送制御回路Cm1段では、ハッシ
ュアドレスのプリデコードとハッシュアドレスの事前競
合回避の処理が実行される。ハッシュアドレスのプリデ
コードは、ハッシュアドレス9ビットの内の2ビットの
Yデコードと4ビットのプリデコードが行われる。従っ
て、Yデコード結果4ビット、プリデコード結果16ビ
ット、未デコードアドレス3ビットの正負6ビットの計
26ビットが出力される。
【0064】一方、ハッシュアドレスの事前競合回避処
理であるが、これは、マッチングメモリ部MMに対して
連続してパケットが入力されている場合には、同じハッ
シュアドレスを連続してアクセスすると、本来ハッシュ
アドレスに対して、書き込みがなされた後に読み出さな
ければならない場合でも、マッチングメモリ部MMで
は、後続パケットの読み出しが優先して実行されるため
に、誤ったデータの読み出しを行うという誤動作をが起
きる。これを防ぐために、事前相前後してアクセスさ
れる2つのアドレスの比較を行い、これらがもし一致す
る場合には、先行するパケットの書き込みが終了するま
で、後続のパケットの読み出し段への進入を一時待たせ
るという処理を行っている。これを図22の論理回路図
より説明すると、先行するパケットがマッチングメモリ
部MM内に全くないことを示すALLZ信号が“0”
(先行するデータ有り)で、ハッシュアドレスの比較結
果で一致したことを示すEQUAL信号が“1”で、し
かも先行パケットがデータ転送制御回路C0を通過した
場合にCGO信号が“0”となり、先行パケットと同じ
ハッシュアドレスをアクセスしようとする後続パケット
のデータ転送制御回路C0段への進入を阻止する。その
後、先行パケットの書き込みが終了しALLZ信号が
“0”から“1”へと変化すると、CGO信号は、
“0”から“1”へと変化し、後続パケットのデータ転
送制御回路C0段への進入が許され、メモリ読み出しが
実行される。
【0065】先にも触れた通り、マッチングメモリ部M
Mでは後続パケットの読み出しが終了するまで先行す
るパケットの書き込みは待たされる。このため、上記の
ハッシュアドレスの事前競合回避処理は矛盾をきたす。
そのための例外処理として、SWEEP信号が用いられ
る。つまり、後続パケットに対して、CGO信号を
“0”として、データ転送を阻止し、しかも実際に後続
パケットが待たされている場合に限り、SWEEP信号
を“1”として先行するパケットのメモリ書き込みを強
制的に実行させる(後続パケットの読み出しの完了を待
つことをせずに)。こうすることでデッドロック起こ
ことなく、ハッシュアドレスの競合の事前回避が実現
できる。
【0066】次に図13中の連想メモリについて説明す
る。 (1)連想メモリの機能 連想メモリは、ハッシュメモリを用いてオペランド対を
生成する際に、ハッシュ衝突を起こしたパケットの受け
皿として用いられる。つまり、ハッシュ衝突を起こした
パケットは、連想メモリで待ち合わせを行いオペランド
対が生成される。連想メモリへのアクセスは、ハッシュ
メモリのアクセスと並行して行われる。つまり、パイプ
ライン段の第四段で読み出しが行われ、第六段で書き込
みが実行される。第四段でのメモリ読み出しの処理は、
ハッシュメモリ、連想メモリ共に、パケットが入力する
度に実行されるが、第六段でのメモリ書き込みの処理
は、ハッシュメモリ、連想メモリの何れか一方のみに対
して実行される。当然のことながら、マッチングメモリ
部MMをスルーするパケットに対しては、メモリ書き込
みは実行されない。第六段で何れのメモリに対して書き
込みを行うかの判断は第五段でなされる。この判断は第
四段でのメモリの読み出し結果と、第五段でハッシュメ
モリのタグ情報と入力パケットのタグ情報とを比較した
結果とから行われる。この判断を行うもととなる処理の
決定表を図23に示す。図23において、第六段での処
理内容の欄のオペランド対の生成では、読み出したメモ
リ内容の内、オペランド情報をパケットへマージさせオ
ペランド対の生成を行う。その際、読み出したメモリワ
ードをクリアするために、そのワードのPBに対して
“0”書き込みを実行している。これは、ハッシュメモ
リ、連想メモリの何れの場合も同様である。したがっ
て、オペランド対生成の処理の場合であってもメモリ書
き込みは実行される
【0067】(2)連想メモリの構成 図24に連想メモリの構成を示す。図24に示されるよ
うに、連想メモリは32ワード×32ビットのCAM部
と32ワード×36ビットのデータRAM部より構成さ
れる。CAM部とキー一致検索部により、与えられた3
2ビットのタグ情報(キー)と等しい情報が、すでに書
き込まれている32ワードの中に存在するかどうかの判
定がなされる。データRAM部はCAM部とワード線方
向に接続されており、CAM部のキーに対応するオペラ
ンド情報が格納される。CAM部とデータRAM部の接
続は、書き込み/読み出しワード線選択部により、読み
出し時にはCAM部のマッチ線とデータRAM部のワー
ド線が接続れ、書き込み時には双方のワード線が、空ワ
ード検知プライオリティデコーダにより求められたワー
ド線へ接続される。
【0068】(3)CAM部 CAM部へキーとして与えられる情報は、プレゼンスビ
ット(PB)1ビット、行き先ノード番号(NODE)
21ビット、カラー/世代(COL/GEN)8ビッ
ト、空き1ビットの合計32ビットである。これらのキ
ーは、書き込み時と読み出し時とで切り替える必要があ
る、これは、書き込み/読み出し選択のセレクタで実行
している。キーとして与えられるPBは、読み出し時に
は、常に“1”であるが、書き込み時には、入力パケッ
トを連想メモリに書き込む場合と連想メモリから読み出
した内容とオペランド対を生成する場合とで異なる。つ
まり、入力パケットを書き込む場合には“1”を書き込
み、オペランド対を生成する場合には“0”を書き込
む。与えられたキーの各ビット毎の比較は、図25に示
すようなフルCMOSのCAMセルを用いる。マッチ線
がワード線方向に32ビット分接続されており、同一ワ
ード線上のすべてのビットが一致すれば、予めプリチャ
ージされていたマッチラインのディスチャージが起こら
ないことで一致検出が行える。一致検出を行うためのマ
ッチ線のプリチャージ、ディスチャージの制御はCE信
号によって行っている(図26参照)。つまり、CE=
“0”の時には、マッチ線のデータRAM部側の接続を
切り、マッチ線のプリチャージを行う。CE=“1”の
時には、マッチ線のデータRAM部側を接続し、すべて
のCAMセルのCE入力を“1”としてマッチ線のディ
スチャージを行う。このCE信号のワード毎に設けられ
たドライバーとプリチャージのための回路は、CAM部
のマッチ線中央に付けられている。
【0069】(4)空ワード検知プライオリティデコー
ダ キーの書き込みワードの選択のために、図27に示す空
ワード検知プライオリティデコーダを用いている。この
回路は、各ワードのPBを観測することにより空ワード
で最も左側にあるワードを選択するものである。キャリ
ーの伝搬による遅延を抑えるために、32ワードを8ワ
ード単位の4つのブロックに分割し、各ブロック毎のプ
ライオリティデコーダと各ブロック内に空ワードが存在
するかどうかの検索を同時に実行し、最も左側に空ワー
ドが存在するブロックのプライオリティデコード結果を
採用している。すべてのブロックに空ワードが存在しな
かった場合には、反転論理FULL信号により連想メモ
リが満杯であることを表示する。この処理結果は、デー
タ転送制御信号C2の立ち上がりでエッヂトリガータイ
プのデータラッチでラッチされる。連想メモリ書き込み
時には、このラッチ結果が、CAM部、データRAM部
双方のワード線へ直結される。
【0070】(5)キー一致検索 キー一致検索部では、連想メモリに対して与えられたキ
ーと等しいキーが既に書き込まれているかを調べ、もし
存在する場合には、HIT信号を“1”とするものであ
る。キー一致検索部へは、CAM部で各ワード毎に束ね
られた32本のマッチ線をプリチャージした後、比較し
た結果をデータ転送制御回路C1でラッチしたものが入
力される。入力された32本のマッチ線からディスチャ
ージされなかったものが1本でも存在すれば、HIT信
号を立てて出力する。この回路は、NOR−NAND−
NOR回路で実現されている。
【0071】(6)データRAM部 データRAM部には入力パケットの連想メモリ書き込み
の際にCAM部にキーとして書き込まれたタグ情報に対
応するオペランド情報が格納される。各ワード毎に32
ビットのオペランドデータと2ビットのデータフラグの
計34ビットが格納される。メモリ周辺回路のイコライ
ズ・プリチャージ回路、センスアンプ、読み出しデータ
ラッチ、書き込みドライバーに関しては、ハッシュメモ
リのメモリ周辺回路と全く同一のものを用いている。デ
ータRAM部においてはCAM部のマッチ線出力で、直
接ワード線をアクセスする構成をとっているため、アド
レスデコーダは存在しない。
【0072】(7)CAM部とデータRAM部の接続 以上に述べたCAM部とデータRAM部、およびこれか
ら述べるこれらの接続の様子を図26に示す。この回路
は、基本的には、RWA信号により読み出し時(RWA
=“0”)にはCAM部のマッチ線とデータRAM部の
ワード線を接続し、書き込み時(RWA=“1”)には
空ワード検知プライオリティデコーダによって求められ
た書き込みワードとを接続するものである。RWA=
“0”の読み出し時には、CAM出力の32本のマッチ
線はすべて一旦レベル“1”へプリチャージされる。そ
のため、単にCAM部のマッチ線とデータRAM部のワ
ード線を接続しただけでは、データRAM部の全てのワ
ード線を立ち上げる結果となり、データRAM部のデー
タを破壊してしまう。したがって、CAM部におけるマ
ッチ線のディスチャージが完全に終了するまでは、CA
M部のマッチ線とデータRAM部のワード線は接続して
はならない。CAM部におけるマッチ線のディスチャー
ジはCE信号の立ち上がりで開始される。よって、CE
信号の立ち上がりよりもマッチ線のディスチャージが完
全に終了する時間だけ遅延して立ち上がりCE信号の
立ち下がりと同期して立ち下がる信号MLEでCAM部
のマッチ線出力を殺すように制御している。
【0073】CAM部に対するワード線入力の切り換え
はデータRAM部と同様にRWA信号により行ってい
る。このためにCAM部のワード線へは、データRAM
部への書き込みが実施される場合には空ワード検知プラ
イオリティデコーダの出力結果が、それ以外の場合に
は、キー一致検索に用いられたマッチ線の情報をデータ
転送制御回路C2でさらにラッチした結果がそれぞれ入
力される。後者の場合のキー一致検索に用いたマッチ線
の情報をデータ転送制御回路C2でさらにラッチした結
果とは、データ転送制御回路C2を通過しメモリ書き込
み、あるいはオペランド対の生成を行おうとしているパ
ケットが、データ転送制御回路C0を通過した際に、C
AM部でキー比較を行った後のディスチャージされたマ
ッチ線の状態である。データRAM部への書き込みが実
施されるのは、連想メモリへ入力パケットのオペランド
情報を書き込む場合のみで、連想メモリの読み出し内容
とオペランド対を生成する場合には、データRAM部へ
の書き込みは実施されない。
【0074】一方、CAM部への書き込みは、連想メモ
リへ入力パケットのタグ情報を書き込む場合はもちろ
ん、連想メモリの読み出し内容とオペランド対を生成す
る場合にも実施する必要がある。連想メモリの読み出し
内容とオペランド対を生成する場合のCAM部への書き
込みは、連想メモリを読み出したワードのPBに対して
“0”を書き込み、そのワードの情報を無効化するもの
である。この時の連想メモリを読み出したワードがどの
ワードであるか、先に述べたキー一致検索に用いたマ
ッチ線の情報をデータ転送制御回路C2でラッチした結
果が示している。したがって、連想メモリの読み出し内
容とオペランド対を生成する場合には、PBを“0”と
してCAMに対してのみ書き込みを実施することで、読
み出された連想メモリのワードをクリアできる。
【0075】(8)連想メモリ制御信号のタイミング 図28に連想メモリに対するメモリアクセス制御信号の
発生回路を示す。メモリ読み出しに関する制御信号のE
QL、SAE、CBについては、その発生源はハッシュ
メモリと共通のものを用いている。メモリ書き込みに関
する制御信号のCWA、CWE、RWA、RWEについ
ては、その発生回路の回路構成はハッシュメモリと同一
であるが、ハッシュメモリとCAM部とデータRAM部
とでは、これらの制御信号を発生する条件がそれぞれ異
なるため、各々独立に持たせている。つまり、図28に
おけるCAMWR(反転)、RAMWR(反転)信号が
アクティブとなる条件がハッシュメモリの場合とは異な
るからである。
【0076】以上のハッシュメモリでも用いていた制御
信号の他に、連想メモリ独特の制御信号がある。つま
り、CAM部のマッチ線のプリチャージ、ディスチャー
を制御するCE信号と、マッチ線のディスチャージ後
マッチ線とデータRAM部の読み出しワード線との接続
を制御するMLE信号である。これらの信号は、データ
転送制御回路C0のSEND出力をWRCOMP信号で
ゲートした後のCOO信号と、この信号を遅延回路DE
LAYにより遅延させたCOOD信号から生成される。
つまり、COO信号の立ち上がりでCE信号は“1”に
変化し、ある遅延の後のCOOD信号の立ち上がりでM
LE信号も“1”へ変化する。その後、COOD信号の
立ち下がりでCE、MLE信号ともに“0”へ変化す
る。
【0077】以上の連想メモリ制御信号発生回路による
連想メモリ読み出しのタイムチャートを図29に示す。
4つのパケットが順次入力されており、その内最初の2
つは、キーが一致せずに何も読み出されていないが、後
の2つは、それぞれワード1、ワード2とそれぞれ一致
し、データ3、データ4がそれぞれ読み出されたことを
示している。
【0078】次に前述したデータメモリ部DMの追加説
明を行う。データメモリ部DMは、チップ内部に例えば
32ビット×1Kワードのメモリが内蔵されている。ま
た、メモリアクセスを制御するための4種類のアドレス
ジェネレータを内蔵している。データメモリ部DMは、
大別すると、ノーマルモードと、バンクモードの2種類
の動作モードがあり、モードによってメモリの使用形態
が異なる。図30,31は、上記各動作モード時のアド
レスジェネレータと内蔵メモリとの接続関係を示した模
式図である。 (1)ノーマルモード(図30参照) ・ノーマルモードでは、内蔵されている1Kワードのメ
モリを単一のメモリとして使用するモードである。デー
タメモリ部DMに入力された1個のパケットにより1回
のメモリアクセスが行われる(スカラーアクセス)。 ・1Kワードを越えるアドレス空間を外部に拡張するこ
とができる。 (2)バンクモード(図31参照) ・バンクモードでは、内蔵のメモリを128ワードを単
位として、128×2ワード、128×3ワード・・・
のバンクに分割し、これらのバンク を上記アドレスジェ
ネレータのいづれかと接続することにより、データメ
リ部内で同時に複数のメモリアクセス実行することが可
能となる。上記 の機能を用いてベクトル演算を実現する
ことができる。すなわち、各バン クを、いわゆるベクト
ルレジスタとして用いてベクトル演算を実現する。 ベク
トル演算では、指定したバンクから、被演算データを連
続に読み出しそれらを演算し、演算結果の格納、外部
メモリからバンクメモリへのデータの充足、バンクメモ
リから外部メモリへのデータの書き出し(DMA転
送)、を同時に実行する。 ・スカラーアクセスも同時に実行可能であるが、アドレ
ス空間は、256アドレス(0番地〜255番地)に制
限され、この範囲を越えるアドレスアクセスするパケ
ットが入力された場合、パケットのフラグ(セレクショ
ンコードのMEM_ACCESS_VIOLビット)を
セットし、メモリアクセスは、行われない。
【0079】以下に、データメモリ部DMに内蔵されて
いるアドレスジェネレータとその役割を示す。ここで
は、図2で説明したアドレス発生器に対し、その機能を
あらわす名称を付けている。ノーマルアドレスジェネレ
ータ(NAG)はアドレス指定でメモリをアクセスする
もので、スカラアクセスを制御する。(図2のAG3に
対応)リードアドレスジェネレータ(RAG)はバンク
モードにおいて、ベクトル演算データの連続読みだしを
制御するもので、2項演算のために、第1オペランド、
第2オペランド用に2個のメモリバンクを割り付けるこ
とができる。(図2のAG1,AG2に対応)ライトア
ドレスジェネレータ(WAG)はバンクモードにおいて
ベクトル演算結果の格納を制御する。(図2のAG4に
対応)DMAアドレスジェネレータ(DMAAG)はバ
ンクモードにおいて、外部メモリとの間のDMA転送を
制御する。(図2のAG5に対応)また、図58にデー
タメモリDM部のブロック図を示す。図58は、上記ア
ドレスジェネレータ、および、自己同期型データ転送線
路の関係に着目して描いたブロック図であり、図2で示
したデータメモリDM部のブロック構成図と等価な図で
ある。図58において、データメモリDM部は、#0〜
#7の128ワードのメモリバンクと、入力部から分岐
部を経てNAGおよび合流部を通過し出力部に至るデー
タ転送路と、入力部から分岐部を経てWAGで終端する
データ転送路と、RAGを始点とし合流部を経て出力部
に至るデータ転送路、および、NAG、RAG、WA
G、DMAAGの各アドレスジェネレータとSW回路、
外部I/F回路を接続する5組のアドレスバス、データ
バスと、各アドレスジェネレータから入出力されている
アドレスバス、データバスと各メモリバンクの接続を規
定するSW回路から構成されている。なお、分岐部は、
入力されたパケットのVECTフラグ(図50の特殊フ
ラグC1に相当)の値が“1”のとき入力されたパケッ
トをWAGに分岐させ、それ以外は、NAG側へ転送す
る。また、図2で陽に示してあった制御レジスタファイ
ルは、各アドレスジェネレータ、SW回路の内部にある
ため陽には示していない。図58におけるSW回路は、
図2における、2個のマトリックススイッチ回路に対応
する。また、図58における合流部は、図2における調
停回路(Arbiter)に対応する。VECTフラグの値が
“1”のパケット即ち、ベクトル演算パケットが入力さ
れると、このパケットは、分岐部においてVECT=
“1”を分岐条件としてWAG側へ分岐しベクトルデー
タのメモリバンクへの書き込み処理が行われる。この
際、入力されたパケットは書き込み処理の後消去され
る。一方、VECTフラグの値が“0”のパケット即
ち、スカラー演算パケットが入力されると、このパケッ
トは、分岐部において、NAGに転送され、オペコード
に従った処理を受け合流部を経て出力される。また、ベ
クトル演算のための被演算データの読み出しの開始命令
であるトリガー命令(詳細は、後述する)が発行される
とRAGによりメモリバンクの連続読み出しが開始さ
れ、読みだされたデータにFALUでのオペコードなど
のタグ情報を付加しパケットデータを形成し、合流部へ
転送する。合流部では、NAGから転送されるスカラー
演算パケットとRAGから転送されるベクトル演算パケ
ットを一本のデータ転送路に合流させ出力部をへて出力
する。各アドレスジェネレータ、SW回路内にある制御
レジスタの設定はSETAG命令にて行われる。SET
AG命令は、NAGにて実行されるが、各レジスタへの
設定データは、NAGに接続されているデータバスにて
各レジスタに伝達される。
【0080】以下に、図58で示したSW回路の状態と
データメモリDM部の動作モードとの関係を示す。図3
0は、ノーマルモード時のメモリの使用形態を示したも
のである。ノーマルモードでは、1Kワードの内蔵メモ
リはNAGのみがアクセス可能であり、入力したパケッ
トは、メモリとして、内部に1Kワードまでの単一のメ
モリをアクセスでき、チップの外部に1Kワード以降最
大16Mワードまでのメモリ空間をアクセスすることが
できる。図31は、バンクモードの状態の一例を示して
いる。バンクモードでは、NAGにのみ接続された専用
のバンク(バンク#0〜1)をのぞいてメモリは128
ワードのバンク単位で、各アドレスジェネレータに割付
けることができる。図31では、バンク#2,3をRA
Gに、バンク#4をWAGに、また、バンク#5をDM
AAGに割り付けている。なお、図2におけるBK1〜
BK8は図58,図30,図31におけるバンク#0〜
バンク#7にそれぞれ相当している。
【0081】次にデータメモリ部DMの命令実行条件に
ついて説明する。データメモリ部DMは、オペコードの
ほかにセレクションコードを参照し、入力されたパケッ
トのオペコードがDM命令であっても、セレクションコ
ードの値が以下の組み合わせの場合は、命令を実行しな
い。 DM命令実行禁止条件・・・IM=0 AND(HAS
H=1 OR(PE=1 AND PM_Thru=
0)) 図32,33にデータメモリアクセス関連命令(DM命
令)仕様の一覧表を示す。DM命令は、以下のように分
類することができる。
【0082】(A)メモリアクセス命令 ・データメモリ書き込み/読みだし命令 本命令においてアドレスは、オペランドフィールド、プ
ログラム内に埋め込まれた即値が指定可能である。バン
クモード時は、アクセスしようとするアドレスをチェッ
クし256ワードを越えるアドレスをアクセスする場合
は、セレクションコードのMEM_ACCESS_VI
OLビットをセットし、メモリアクセスは行わない。M
EM_ACCESS_VIOLビットがセットされたパ
ケットは、ベクトル演算が終了し、ノーマルモードにも
どるまでリング上を処理を受けずに周回する。また、ア
ドレッシングモードにはベースアドレス加算モードもあ
る。
【0083】・テスト・アンド・セット命令 本命令は、TST&LOC,SET&ULOCの2個の
命令を順に実行することで実現され、共有資源管理が可
能である。共有資源をデータメモリ部DMの1つのアド
レスに代表させ、このアドレスに対して本命令が成功し
たタスクのみがその資源を獲得できるように制御する。
【0084】・セレクションコードによるメモリ自動ア
クセス セレクションコードが以下の条件を満たす場合、データ
メモリ部DMは、右データをデータメモリに格納された
データへのポインタと解釈し、ポインタの示す内容と置
換する。 セレクションコードがIM=1 AND HASH=
0の条件を満たす場合右データにベースアドレスを加
算した値をアドレスとしてデータメモリ部DMを読みだ
し結果を右データに格納する。 PE=0 AND PM_Thru=1の条件を満た
す場合右データをアドレスとしてデータメモリ部DM
を読みだし、結果を右データに格納する。このときPM
_Thru→0とする。
【0085】・分散型共有メモリアクセス機構 マルチプロセッサシステムにて分散型共有メモリをア
クセスするパケットが持つアドレスは、上位8ビットの
PE識別番号と下位24ビットの物理アドレスとの計3
2ビットで構成されている。大規模データを各PEに分
散配置して処理する場合、アドレス計算によって得られ
た結果に基づいて異なるPEのデータメモリ部DMをア
クセスし自PEに戻る過程がハードウェアでサポートさ
れている。
【0086】この機構は、データメモリ部DMのみなら
ず他のブロックとの協調動作であるので詳しい動作は、
後で説明する。データメモリ部DMでは、以下の動作を
する。 ・分散型共有メモリアクセスを行うパケットが入力さ
れ、データメモリ部DMをアクセスした後、左データの
上位8ビット(戻り先PE番号)右データの上位8ビッ
トに待避させる。 ・セレクションコードがPE=1 AND PM_Th
ru=0のパケットは、NOPで通過させる。
【0087】(B)ベクトル演算関連命令 ・アドレスジェネレータ・モードレジスタ設定(SET
AG)命令 本命令はバンクモードの時のパラメータを指定するため
の命令である。ベクトル演算を制御するアドレスジェネ
レータ群、RAG、WAG、DMAAGには、読み出し
回数、アドレッシングモード等の設定、メモバンクのア
ドレスジェネレータへの割付を指定する。レジスタアド
レス(右データフィールドで指定)70h〜ffhは、
DMAC等の周辺チップ用に予約されており、左データ
のビットパターンがそのままデータポートより出力され
る。
【0088】・アドレスジェネレータ・トリガー命令
(TRGRB,TRGRB2,TRGDMA) 本命令はアドレスジェネレータ、RAG、およびDMA
AGの一方もしくは、両方に対して連続的なメモリアク
セスの開始を指定する。
【0089】・アドレスジェネレータ・チェック(CH
KAG)命令 本命令はRAG、WAG、DMAAGがSETAG命令
で設定した回数のメモリアクセス終了したか否かをチ
ェックし、本命令が発行された時点でのアドレスレジェ
ネレータの稼動状態を左データに格納する(図33脚注
参照)。
【0090】次にアドレスジェネレータとメモリバンク
との対応関係について説明する。バンクモードでは、S
ETAG命令にてアドレスジェネレータ内のモードレジ
スタ、バンクメモリ割付を指定するバンクレジスタを設
定する必要がある。ここでは、アドレスジェネレータの
仕様、バンクモード時に設定が必要なモードレジスタの
設定法について説明する。
【0091】(A)メモリバンクの割付 アドレスジェネレータがアクセスするメモリバンクを割
り付けるため、バンクレジスタを設定する必要がある。
バンクレジスタは30ビットのレジスタであり図34に
示すフォーマットである。フィールドbank#nの5
ビットはバンク#nを割り付けるアドレスジェネレータ
のビットのみを1、その他は0を設定する。(n:2〜
7) なお、バンク#0,1は、常にNAGに割り付けら
れている。初期化時には、全てのバンクがNAGに割り
付けられる。すなわち、初期化時は、ノーマルモードと
なる。バンクレジスタを設定するには、SETAG命令
にて、右データ(レジスタアドレス)を50h、左デー
タを上記30ビットのビットパターンを下詰めで入力す
る。この設定は、ハードウェア的にアドレス、データ線
を所望のメモリバンクに接続するためのスイッチ回路
(図2におけるMS,図58におけるSW回路)を制御
するために行う。
【0092】(B)バンク番号の設定 同一のアドレスジェネレータに複数のメモリバンクを割
り付けた場合にバンクメモリを識別するために、バンク
番号レジスタを設定する。バンク番号レジスタは、30
ビットのレジスタであり、図35に示すフォーマットで
ある。フィールドbank#nのビット1〜3の3ビッ
トにバンク#nのバンク番号を設定する。メモリアクセ
ス時、設定されたバンク番号は、アドレスジェネレータ
から生成されるアドレスの上位3ビットと比較され、一
致している場合のみメモリアクセスが行われる。メモリ
アクセスの詳細は後述する。初期化時には、フィールド
bank#nのバンク番号フィールド3ビットには、
(n+2)がセットされる。すなわち、初期化時は、ノ
ーマルモードとなる。(ただし、n=0,1,2・・・
5)。初期化時のバンク番号、0,1,はNAG専用の
2枚のバンクに割り当てられている。バンク番号レジス
タを設定するには、SETAG命令にて、右データ(レ
ジスタアドレス)を51h、左データを上記30ビット
のビットパターンを下詰めで入力する。
【0093】(C)アドレスジェネレータの機能とレジ
スタ設定 内蔵されているアドレスジェネレータの機能について説
明する。図36はアドレスジェネレータ内のモード設定
レジスタを示した一覧表である。
【0094】ベクトル演算関連のアドレスジェネレータ
RAG、WAG、DMAAGは各々複数個のメモリバン
クを割当てることが可能である。生成されるアドレスは
10ビットであり、上位3ビットはメモリバンクを示す
ID番号を表現し、下位7ビットがID番号で指定され
たメモリバンクの物理アドレスである。各々のバンクメ
モリには、前述したバンク番号レジスタのうちで自バン
クに対応するフィールドが保持されており、ID番号と
バンク番号が一致したメモリバンクのみメモリアクセス
が実行される。バンクメモリアクセスモードフラグli
nkflの値によって生成されるID番号が異なる。以
下に、生成されるアドレスを示し、この状況を説明す
る。 (1)バンクメモリアクセスモードフラグが0の場合 ID番号(アドレス上位3ビット)=k ただし、 128*(k−1)≦base+step*(i−1)<128*k,1≦i ≦repeat、kは自然数;なお、上記アドレスは、アドレスジェネレータがアドレ
スを生成を開始してからi番目に生成されたアドレスを
示している。 (2)バンクメモリアクセスモードフラグが1の場合 ID番号(アドレス上位3ビット)=1+{i mod linknum} なお、生成されるアドレスの下位7ビットは、(1)
(2)ともに、base+step*(i−1)で表さ
れる数の下位7ビットが出力される。ここで、bas
e:ベースアドレス、step:アドレス増分、rep
eat繰り返し数、linknum:割り付けるバンク
メモリ数、linkfl:バンクメモリアクセスモード
フラグ,x mod yはxをyで割った剰余である
(x,yは自然数)。図37は、上記のアドレッシング
モードの概念を説明したものである。 (1)の場合は、割り当てられた複数のメモリバンクを
線形に接続し128の倍数ワードのメモリとしてアクセ
スをするモードを示しており、(2)の場合は、1回の
メモリアクセス毎にアクセスするメモリバンクが循環的
に変化してゆくモードを示している
【0095】ノーマルアドレスジェネレータNAGに
は、24ビットのベースアドレスレジスタ(nbas
e)があり、ベースアドレス加算モードのデータメモリ
アクセスパケットが入力された場合に用いられる。NA
Gが生成する論理アドレスは、24ビットであり、以下
のように表わされる。 論理アドレス=ε×nbase+(アドレスが格納されたデータフィールドの ビット2〜ビット23) たたし、 ε=1・・・ベースアドレス加算を行うモードの場合
(DMRB,DMRIB,DMWB,DMWIB,DM
WBA,DMWIBA) ε=0・・・ベースアドレス加算を行わないモードの場
合(DMR,DMRI,DMW,DMWI,DMWA,
DMWIA)
【0096】外部メモリをアクセスする場合(論理アド
レス>1kワード)においては、ノーマルアドレスジェ
ネレータNAGは、論理アドレスの値をチェックし、1
kワードを越える場合は、データメモリ部DMのポート
経由で外部メモリをアクセスする。ポートから出力され
る物理アドレスは、論理アドレスに等しい。
【0097】内部メモリをアクセスする場合(論理アド
レス<1kワード)においては、RAG等と同様に、生
成されるアドレスは、ID番号3ビット、メモリバンク
内の物理アドレス7ビットの計10ビットである。生成
されるアドレスは、以下のようになる。 ID番号=論理アドレスのビット7〜ビット9 バンクメモリ物理アドレス=論理アドレスの下位7ビッ
【0098】次に、各アドレス発生器のモード設定レジ
スタに設定する内容と、そのレジスタアドレスを示す。
設定は、SETAG命令を用い、パケット内の左データ
に設定内容、右データにレジスタアドレスをセットす
る。 RAGのレジスタは、図38に示すような3組のデー
タで設定する。 RAGのアクノリッジ・パケットには図39に示すよ
うな2組のデータにより内容が設定される。 WAGのレジスタは、図40に示すような2組のデー
タで設定する。
【0099】本プロセッサを構成する機能ブロック単体
の動作では、説明できない協調動作がある。ここでは、
データメモリ部DMに関連する協調動作について説明す
る。 (1)即値アドレスによるメモリアクセス ノイマン形プロセッサと同様に本プロセッサでもプログ
ラムにデータメモリ部DMの即値アドレスを格納し用い
ることができる。2通りの機構がサポートされており、
以下のように制御される。 (1.1)セレクション・コードのIMビットを用いる
場合 プログラム・コードを生成する際に、IM=1をセット
することで、プログラムのセレクションコードフィール
ドの上位8ビットを即値アドレスとして用いることがで
きる。 プログラムメモリ部PMにおいて、タグ更新の際にプ
ログラムメモリから読み出した値のうちセレクションコ
ードのIMビットが“1”である場合、セレクションコ
ードの残り8ビットが定数データを格納しているDMの
アドレスと解釈されて、右データフィールドのビット2
からビット9にこの8ビットのセレクションコードが格
納される(スカラーアクセスがバイトアドレスを取って
いるためセレクションコードフィールドで表現される値
を2ビットシフトする。)。PMから出力するパケット
のセレクションコードの該当する8ビットのフィールド
には、デフォールトのセレクションコード値が格納され
る。 セレクションコードのIMビットが“1”であるの
で、プログラムメモリ部PMから出力されたパケット
は、出力ブロック、入力ブロック、MMブロックをNO
Pで通過しデータメモリ部DMに到着する。 データメモリ部DMでは、IMビットが“1”である
ためにパケットの右データフィールドは、アドレスであ
ると解釈してベースアドレスレジスタnbaseの内容
と該アドレスの加算を行い、この結果をアドレスとして
メモリ読み出し動作を行い、読み出したデータを右デー
タフィールドに格納する。〜のプロセスでデータの
演算相手である定数がフェッチされる。
【0100】(1.2)フラグの組み合わせ、PM_T
hru=1,PE=0を用いる場合 プログラム・コードを生成する際に、セレクションコー
ドのビット、PM_Thru=1,PE=0,PAI
R=1,L/反転論理R=1の組み合わせに設定する
(PAIR=1,L/反転論理R=1の組み合わせは、
単項演算パケットを示しており、MMブロックをNOP
で通過するための処理である)。また、プログラム・コ
ードの次のアドレスにデータメモリ部DMの即値アドレ
スを定数として格納することで、24ビットフルビット
を即値アドレスとして用いることができる。 プログラムメモリ部PMでは、プログラムの制御ビッ
トにより、データメモリ部DMの即値アドレスが定数と
してパケットの右データフィールドに格納される。 出力ブロックでは、セレクションコード、PM_T
hru=1,PE=0の組み合わせであるのでパケット
は、チップ外に出力されることなくMMブロックへ、出
力される。セレクションコードが、PAIR=1,L/
反転論理R=1の組み合わせであるためMMブロック
は、このデータパケットをNOPで通過させる。 データメモリ部DMにおいて、セレクションコードが
PM_Thru=1,PE=0の組み合わせであるの
で、パケットの右データフィールドにデータメモリ部D
Mのアドレスが格納されているものと解釈して右データ
をアドレスとしてメモリを読み出し、結果を右データフ
ィールドに格納し出力する。この際、PM_Thru→
0とフラグを変更し、次のPMブロックでのタグ更新の
処理が禁止されないようにする。また、この際、データ
メモリ部DMの動作モードがバンクモードである場合
で、読み出しアドレスが、256ワードを越える場合
は、前述のように、セレクションコードのMEM_AC
CESS_VIOLフラグをセットし、メモリアクセス
は行われない。
【0101】(2)分散型共有メモリアクセス機構 大規模構造化データをマルチプロセッサシステムにおい
て処理するため、各プロセッサ・エレメント(PE)の
データメモリ部DMを透過的にアクセスする機構を備え
ている。論理的なアドレスは32ビットであり、上位8
ビットがPE番号、下位24ビットが各PEのデータメ
モリの物理アドレス(ローカルアドレス)である。 マッチングメモリ部MMにおいてマッチングされアド
レス(32ビット論理アドレス)及びデータが対になっ
たパケットが、プログラムメモリ部PMにてタグ更新が
なされる。この際に、セレクションコードの組み合わせ
がPE=1,PM_Thru=1,OUT/反転論理I
N=1,PAIR=1,L/反転論理R=1となるよう
プログラムコーディングしておく(メモリ書き込みの
場合メモリ読み出しの場合は、1入力命令であるので
最初のマッチング処理は必要ない)。 出力ブロックでは、PE=1,PM_Thru=1の
組み合わせによって、行き先PE番号が左データフィー
ルドの上位8ビットにあると解釈し、(a)自PE番号
と等しい場合は、チップ外に出力せずMMブロックへ出
力する。(b)自PE番号と等しくない場合は、左デー
タの上位8ビットに格納されているPE番号を3ワード
形式のPE間を渡るパケットのPE番号フィールドに格
納し、自PE番号を、左データの上位8ビットへ待避し
てチップ外へ出力する。(a)の場合は、自PEのMM
ブロックへ、(b)の場合は、行き先PE番号を持つ
Eへネットワークを介してルーティングされ、行き先の
PEの入力ブロックを通ってMMブロックへ到着する。
【0102】上記の(a),(b)何れの場合であって
も、セレクションコードは、PE=1,PM_Thru
=1の組み合わせである。(a)の場合は、行き先PE
番号と戻り先PE番号が同一であることを除くと(b)
の場合と同様に考えることができる。従って、ここで
は、(b)の場合に限定して説明する。以上〜の処
理はメモリアクセスの要求元PEでの処理である。
【0103】行き先PEのMMブロックでは、PAI
R=1,L/反転論理R=1の組み合わせであるため、
このパケットが単項演算のパケットであると解釈し、パ
ケットをNOPで通過させDMブロックへ出力する。 DMブロックでは、パケットのオペコードフィールド
に従ってデータメモリをアクセスし、左データの上位8
ビット(すなわち、戻り先PE番号)の値を命令実行後
は、使用しないフィールドである右データの上位8ビッ
トに待避し、PM、FALUブロックに出力する。な
お、DMブロックでは、OUT/反転論理INフラグ
は,常に、“0”が出力される。従って、DMブロック
を出力させるパケットのセレクションコードは、PE=
1,PM_Thru=1,OUT/反転論理IN=0の
組み合わせとなる。 演算部FALUは、オペコードがDM命令であるため
にNOPで通過する。プログラムメモリ部PMは、フラ
グがPM_Thru=1であるために、入力されたパケ
ットをNOPで通過させる。 出力ブロックでは、入力されるパケットのセレクショ
ンコードがPE=1,PM_Thru=1,OUT/反
転論理IN=0の組み合わせであると、無条件に、PM
_Thru→0とフラグの値を変化させる。また、上記
パケットに対し行き先PE番号が、右データの上位8ビ
ットに格納されているものと解釈し、この行き先PE番
号が自PE番号と異なる場合は、PE間を渡るパケット
のPE番号フィールドに右データの上位8ビットを格納
してパケットをチップ外のネットワークに出力する。こ
のパケットは、ネットワーク中でルーティングされ、再
びデータメモリアクセスの要求元PEに戻る。 以上〜の処理は、メモリアクセス要求先PEの処理
である。
【0104】行き先PE番号が自PE番号と等しい場合
は、パケットをチップ外に出力せずMMブロックへと転
送するが(で(a)の場合に要求元PEと行先PEが
同一であるためこのようなことが起こる),データメモ
リアクセス要求元PEでのMMブロック以降での処理
は、いずれの場合も同様であり、〜○10で説明する。
【0105】ルーティングネットワークを介して戻り
先PE(メモリアクセス要求元PE)の入力ブロックを
通過したパケットは、セレクションコードの組み合わせ
が、PAIR=1,L/反転論理R=1であるためこの
パケットを単項演算パケットと解釈し、MMブロックを
NOPで通過させ、DMブロックへ転送される。 データメモリ部DMにおいては、セレクションコード
の組み合わせが、PE=1,PM_Thru=0である
場合パケットをNOPで通過させる。○10FALUで
は、オペコードがDM命令であるため、データ処理は、
行われない。プログラムメモリ部PMにおいては、通常
のタグ更新が実行され、次に実行すべきノードの命令の
読み出しが行われる。
【0106】次にプログラムメモリ部PMについて説明
する。プログラムメモリ部PMの機能は、大きく次の3
つに分類される。 (1)タグ部(セレクションコード、命令コード、行き
先ノード番号)の更新を行う。 データフローグラフのノード間の接続情報と、ノードで
実行される命令コードがプログラムメモリ部PMに格納
される。プログラムメモリ部PMに入力されたパケット
は、ノード番号をアドレスとしてメモリをアクセスし、
タグの更新を行う。 (2)タグ部の操作を伴う特殊命令の実行を行う。 タグ部の操作を伴う特殊命令は、プログラムメモリ部P
Mと併置されている演算部FALUのハードウェア負担
を軽減するためにプログラムメモリ部PMで実行する。
例えば、ツルーゲート「TG」命令は右データに格納さ
れている“真偽”値を判定し“真”の時は、メモリの読
みだしを行い、“偽”の時には、パケットを消滅させ
る。 (3)定数データの読み出しを行う。 (4)パケットのコピーを行う。
【0107】プログラムメモリ部PMのブロック図を図
41に示す。プログラムメモリ部PMの全体は、図41
に示すように6段のパイプラインで構成されている。次
に各ステージの実行内容を示す。 第1ステージ:OPCのプリデコード。 第2ステージ:制御命令の実行。 第3ステージ:メモリの書き込み/読みだし。 第4ステージ:メモリ連続読みだしが起こったときのパ
ケット再構成。 第5,6ステージ:行き先ノード番号の計算。 プログラムメモリ部PMに入力されるパケットフォーマ
ットを図42に、また出力フォーマットを図43に示
す。 例としてTG命令の実行手順をパイプラインステージを
追いながら示す。 第1ステージ:OPC=TGのプリデコード。 第2ステージ:右データの真偽値を判定。 偽の時、ABSビット(PM内部ビット)をたてる。
(ABSビットについては、その他の機能「PM内部ビ
ットについて」の項で詳説する。)このとき、入力パケ
ットは、PMをスルーし、KCOPY部ではABSビッ
トが1であるためにパケットを消滅させる。また、真の
時にはPMにおいてタグ部の更新を行い、KCOPY部
から出力する。 第3ステージ:メモリを読み出し、タグ部を更新する。
(右データの真偽値に関わらず行う。 第4ステージ:メモリ連続読みだしが起こった時パケッ
ト再構成。 第5,6ステージ:行き先ノード番号の計算。
【0108】次にメモリコアイメージについて説明す
る。 (1)メモリコアのフィールド割付 プログラムメモリ部PMは、32ビット×512ワード
のメモリを備える。このメモリコアイメージを図44に
示す。各フィールドの略説を次に述べる。 AAN (1BIT):メモリ連続読み出しの偽の制御フラグ。 CPY1 (1BIT):メモリ連続読み出しの偽の制御フラグ。 CPY0 (1BIT):メモリ連続読み出しの偽の制御フラグ。 SEL (9BIT):セレクションコード。このコードのビット並びは 、図45に示すようになる。 OPC (8BIT):オペコード。 NODE#(12BIT):行先ノード番号(符号付き12ビット)。
【0109】(2)相対アドレス方式 メモリコアに格納されるノード番号は、メモリコア内の
セレクションコードのDISP/反転論理ABSビット
が“1”のときには、相対アドレスと解釈され入力パケ
ットのノード番号と加算され行先ノード番号を得る。以
下に相対アドレスの方式を説明する。プログラムメモリ
部PMにおいては、命令コードの他に、この命令の次に
実行すべき命令が格納されているアドレス(行き先ノー
ド番号)を記憶しておく必要がある。このため、1命令
当たりのメモリビット数が増加することとなり、1チッ
プにプログラムの全体を格納し、高速に処理を行う上で
大きな制約となる。そこで、本プロセッサでは、プログ
ラムメモリ部PMに格納するノード番号を相対アドレス
とし、ビット幅を圧縮する方式を採用した。例えば、制
御フラグが8ビット、命令コードが8ビット、行き先ノ
ード番号を格納する領域が32ビットであると仮定すれ
ば、従来方式の場合1命令当たりのビット幅は48ビッ
トになる。これに対して、行き先ノードのアドレスを、
現在のノードのアドレスと行き先ノードの格納アドレス
との差分で与えられるものとし、相対アドレスが12ビ
ットで表現できるとすれば、1命令当たりのビット幅は
28ビットとなりメモリのビット幅を大幅に圧縮するこ
とができる。本方式は、基本的には命令ノード間の接続
の大半は局所的であり、行き先ノードに対する相対アド
レスが大きな値をとることは稀である、という性質に基
づいている。図46に従来のプログラムメモリ部の1語
の構成と本方式によるプログラムメモリ部の1語の構成
を示す。
【0110】(3)拡張アドレス 相対アドレスが12ビットで表現できない場合、すなわ
ち、行き先ノードの命令を格納しているアドレスと現在
のアドレスの差分が−2048(=−2 11 )〜2047
(=2 11 −1)の範囲を越える場合は、溢れた桁は次の
アドレスに格納し、この領域を拡張アドレスとする。ま
た、制御フラグ(CPY1,CPY0)を追加して拡張
アドレスの存在を示すものとする。このようなプログラ
ムメモリ部PMにおいて、プログラムメモリ部PMのN
番地を読み出した結果、相対アドレスがRであり、制御
フラグが拡張アドレスの存在を示す時には、次のアドレ
スを連続して読み出して拡張アドレスEを得る。このと
き、次の行き先ノード番号Dは、D=N+(R+E*2 11 で与えられる。括弧内の和は、EとRの2進ビット列の
連結であり、実際の加算は一度でよい。また、マルチプ
ロセッサ構成の場合には、行先ノードが他のPEにマッ
プされている場合が当然ある。このため、拡張アドレス
のMSBから上位8ビットにPE#を格納する。このP
E#を読み出し、パケットに付与することによって、他
のPEにパケットをルーティングできる。
【0111】(4)絶対アドレッシング メモリコア内に格納されるノード番号は、メモリコア内
のセレクションコードのDISP/反転論理ABSビッ
トが“0”の時には、絶対アドレスと解釈され、メモリ
から読み出されたノード番号(11BIT)をそのまま
行先ノード番号とする。この時PMから出力されるパケ
ットのノード#(21BIT)は、符号拡張される。
【0112】(5)定数データのマッピング 定数データをメモリにマップした状態を図44に示す。
定数データのMSBビットは、SELコードのLSBビ
ットにマップされ、残りの31ビットは拡張ア ドレスフ
ィールドに格納される。定数データのMSBと残りのビ
ットは、パケット再構成ステージで連結される。定数デ
ータの読みだし方法は、後述する。
【0113】次にメモリロード/ダンプについて説明す
る。プログラムのロード/ダンプは、PMWT(PM
WRITE)、PMRD(PM READ)命令によっ
て行う。PMWT命令実行の際プログラムメモリ部P
MはABS(ABSORB)ビットを立てて、入力パケ
ットをそのままKCOPY部へ出力する。KCOPY
は、このABSビットに従ってパケットを消滅させる。
ABSビットに付いては、後述のPM内部フラグの項で
説明する。
【0114】次にメモリ連続読み出しについて説明す
る。メモリの連続読みだしが行われるのは、次の各場合
である。 (1)パケットのコピー (2)拡張アドレスの発生 (3)定数データの読みだし 一つの演算結果に対して複数の行き先ノード番号が与え
られる場合、一つの入力パケットに対して連続してプロ
グラムメモリを読みだす必要がある。本プロセッサで
は、プログラムロード時にあらかじめ、連続読みだしフ
ラグ(D_COPY)をプログラムメモリに書き込んで
おき、プログラムメモリ読み出し時に、この「連続読み
出しフラグ」(D_COPY)を読み出し、PMが入力
パケットを受け取った時点で、連続アドレス読み出しの
要否が即座に判定できるようにして処理の高速化を計っ
た。入力パケットに対するメモリ読みだしが完了すると
同時に、次のアドレスに対する読みだしを開始すること
ができる。これは、拡張アドレス、また、拡張アドレス
の読みだし、定数データの読み出しについても同様に制
御される。
【0115】次にこのプログラムメモリ部PMの制御フ
ラグの機能について説明する。 (1)PM内部フラグ プログラムメモリ部PMでは内部フラグとして、TH
R、ABS、COPYフラグの3ビットをもつ。各フラ
グの機能を次に示す。 THRB: スルーフラグPM入力パケットのセレク
ションコード中PM_Thru、MEM_ACCES
S_VIOL、VECTOR_INSTR、HASH_
CONFLICTの論理和をとった(第1ステージで実
行)信号である。このフラグが“0”の時プログラムメ
モリ部PMは入力パケットを保存し内部をスルーさせ
る。 ABS: パケット消滅フラグ。PM入力パケット
のABSフラグと、PM内部のパケット消滅条件(PM
WRT命令が実行された時など)の論理和をとった信号
である。このフラグは、プログラムメモリ部PMからコ
ピー部KCOPYへ出力される。コピー部KCOPY
はABSフラグが“1”の時パケットを消滅させる。KCOPY : コピーフラグ。コピーパケットが発生
した時、プログラムメモリ部PMはこのフラグを“1”
にして出力する。コピー部KCOPYはこのフラグが
“1”の時、演算部FALUへのACK信号を禁止す
る。
【0116】(2)行先PE番号の決定 PM入力パケットのVPE(8ビットのベクタープロセ
ッサ番号。DM部で付加される。)の値は、通常PMを
スルーしPM出力パケットのPEの値として出力され
る。ただし、PMで拡張アドレスをアクセスしてPE番
号を読みだした時は、この値をPE番号として出力す
る。
【0117】(3)セレクション・コードの取扱い 3.1 PM入力パケットのセレクション・コードにつ
いて説明する。 D_COPYはこのビットが“1”の時、プログラムメ
モリ部PMはメモリ連続読みだしモードにはいる。 PM_Thru、MEM_ACCESS_VIOL、
ECTOR_INSTRHASH_CONFLICT
の5ビットは、PM内部フラグTHRBを立てるために
参照される。 MEM_ACCESS_VIOL、VECTOR_IN
STRHASH_CONFLICTの以上の4ビット
は、PM内部をスルーして出力される。
【0118】3.2 メモリ読みだしデータのセレクシ
ョン・コードについて説明する。 DISP/反転論理ABSは、このビットが“1”の時
読み出された行先ノード番号は、相対アドレスと解釈さ
、入力パケットの行先ノード番号と相対アドレス(符
号付き)の加算結果が、新しい行先ノード番号としてパ
ケットに付与されて出力される。IMは、このビットが
“1”の時、読み出されたセレクション・コード、上
位8ビットデータメモリ部DMの即値アドレスと解釈
され、右データフィールドに格納されプログラムメモ
リ部PMより出力される。なお、右データのあいたフィ
ールドには、“0”が格納される。このパケットがDM
部に到ると、右データの値をアドレスとしてデータメモ
リがアクセスされ、読みだしたデータが即値として格納
され演算可能パケットとなる。このため、IMフラグを
用いた即値読みだしパケットは、PMで即値を読みだす
ための余分なメモリアクセスが不用であり、かつMMで
パケットの待ち合わせを行う必要もなく、1入力命令と
同じパイプライン制御で命令実行を行うことができる。
また、プログラムメモリ部PMより出力されるパケット
セレクション・コードの上位8ビットは、図47に示
デフォルト値に設定される。次にメモリを読み出した
結果、AANの値が“1”であったときの動作を説明す
る。例として図66に示すようなデータフローグラフで
表されるプログラムを実行することを考える。このプロ
グラムはデータaとbとを乗算し、その結果cを3パケ
ットにコピーし、それぞれデータd,e,fと加算を行
って結果g,h,i,jを得るものである。このプログ
ラムをプログラムメモリ部PMのメモリにロードした状
態を図67に示す。図67を参考にしながら動作を示
す。ここでは入力パケットのD_COPYの値が“1”
であることによりアドレス1が、またアドレス0のAA
の値が“1”であることによりアドレス2が連続読み
出しされる。プログラムメモリ部PMに入力されたパケ
ットのノード番号は“0”である。メモリ読み出しステ
ージでは、上述のノード番号“0”に従ってアドレス
“0”を読み出す。このメモリ読み出しと並行して次
メモリ読み出しアドレスを生成する。アドレス“0”の
読み出しが完了すると、直ちにアドレス“1”の読み出
しが開始される。先程アドレス“0”を読み出した結果
AAN=“1”であったので、アドレス“1”の読み出
しと並行して次のメモリ読み出しアドレス、すなわち
“2”を生成する。アドレス“1”の読み出しが完了す
ると、上述と同様にして、アドレス“2”の読み出しが
開始される。アドレス“1”を読み出した結果AAN=
“0”であるので、アドレス“3”は連続には読み出さ
れない。
【0119】次にコピー部KCOPYについて説明す
る。このコピー部KCOPYの一構成例を図48に示
す。コピー部KCOPYは、基本的な構成として1個の
データラッチ回路と1個のC素子(転送制御素子)から
成る。C素子の詳細については前述したので、ここでは
省略する。このコピー部KCOPYは、図48に示すよ
うにC素子に対する4本の入出力線に数個の論理ゲート
を挿入することにより、下記の3機能を実現している。
【0120】(1)パケットのマージ機能 プログラムメモリ部PMより送られてきたタグと右デー
タと、演算部FALUより送られてきた左データ(ここ
に演算結果が格納されている)とをデータラッチ回路に
おいて1つのパケットに構成して出力する。プログラム
メモリ部PMより送られてきたC信号(PMCI)と、
演算部FALUより送られてきたC信号(FALUC
I)との論理積をもってC素子を制御することで、デー
タラッチ回路に与えられる2系統のデータを正しくマー
ジする。
【0121】(2)パケットのコピー機能 パケットのコピー動作が指示された場合、コピーのため
に読み出された複数のタグ情報に対し、演算部FALU
より送られてきた1つの演算結果を組み合わせ、所望の
数のパケットをデータラッチ回路から送出する。演算部
FALUに対して与えるAcknowledge信号(反転論理F
ALUACK)を、図48に示すように論理ゲートを構
成することで、次にコピーパケットが存在する場合、演
算部FALUにはAcknowledge信号を返さない。これに
より、コピー動作が続く限り、演算部FALUは単一の
データ(演算結果)を出力し続ける。なお、図48中の
COPYは現在転送中のパケットに引き続きコピーパケ
ットが存在することを示す。
【0122】(3)パケットの消去機能 プログラムメモリ部PMより送られてきた制御ビットに
ABS(現在転送中のパケットを次ステージに送らず演
算部FALUより送られてきた左データとともに消滅さ
せるべきことを示すもの)なる指示が与えられていた場
合、対応するタグ、右データ、及び左データ(演算結
果)をすべて消去する。これによりパケットの吸い込み
が行われる。詳しくは、プログラムメモリ部PMより
BS信号が与えられた場合、コピー部KCOPYより次
ステージにはCOUT(C出力信号)は送出されない。
当然Acknowledge信号を受け取ることもできないが、代
替信号として論理ゲート1と論理ゲート2より信号が供
給され、C素子のクリアを行う。プログラムメモリ部P
Mと演算部FALUに対するAcknowledge信号は通常通
り返されているため、コピー部KCOPYにおいてパケ
ットが消滅しことになる。
【0123】以下、本データ駆動形マイクロプロセッサ
の特徴と効果について要約して述べる。 (1)ベクトル演算機能 本プロセッサのデータメモリ部DMは、独立に動作する
5組のアドレスジェネレータと、8つのメモリバンクを
もっている。アドレスジェネレータのうち、1組は通常
のメモリアクセスに用いられるが、残りの4組はベクト
ル演算のために用いられる。すなわち、2組のアドレス
ジェネレータを用いて2つのオペランド(被演算デー
タ)を連続的に読み出し、あらかじめ設定されている命
令コードとともに演算部FALUに送り込みベクトル演
算を実行する。演算部FALUから出力されるリザルタ
ント(結果データ)はコピー部KCOPY、入出力イン
タフェース部IF、マッチングメモリ部MMを通過した
後データメモリ部DMに到着し、結果格納用のメモリバ
ンクに連続書き込みされる。もう1組のアドレスジェネ
レータはメモリバンクと外部メモリとの間のブロックデ
ータ転送のために用いられ、次のベクトル演算に必要な
データの読み込みなどが行われる。
【0124】(2)分散型共有メモリの構築 本プロセッサは、ローカルにデータメモリ(内蔵:1k
w、外部:222w)をもっているが、マルチプロセッサ
構成時には、他のプロセッサのローカルメモリを透過的
にアクセスすることができる。データメモリアドレス
は、上位8ビットのPE(Processing Element)番号フ
ィールドと、下位24ビットのローカルメモリアドレス
から構成されており、メモリアクセスの命令コードをも
つパケットは、PE番号に従って自動的に行き先PEに
転送され、メモリアクセス後、もとのPEに自動的に戻
ってくる。分散型共有メモリのアクセスは、プロセッサ
間のパケット通信経路を介してい行われ、特別の通信経
路を設ける必要はない。
【0125】(3)即値読み出しの効率化 データメモリ部DMの0番地から255番地に即値デー
タを格納しておくことにより、パイプラインの流れを乱
すことなく処理を行うことができる。これは、従来型の
マイクロプロセッサで考えると、レジスタに格納された
定数にたとえることができ、余分なサイクルなしで処理
を行うことができる。通常、即値データはプログラムメ
モリ部PMに埋め込まれているため、即値を読み出すた
めにはプログラムメモリ部PMを2回以上読む必要があ
り、パイプラインの流れを止め、効率を落とす要因とな
っていた。
【0126】(4)動的マルチタスクへの対応 動的なマルチタスク実行を考えると、プログラムがリロ
ケータブルであることが必要条件となる。本プロセッサ
は、プログラム中の行き先ノード番号(ジャンプ先アド
レスに相当)を、現在実行中のノード番号に対する相対
アドレスで格納しているため、任意番地にタスクを動的
にローディングして実行することができる。相対アドレ
スのビット幅(例えば11ビット)は、絶対アドレス
(例えば21ビット)にくらべて少ないので、プログラ
ムメモリ部PMの容量の削減にも効果がある。もちろ
ん、固定番地へのジャンプもサポートされており、メモ
リ常駐のシステムコールを行うことも可能である。
【0127】(5)Test&Set命令を用いた排他
制御の実現 マルチタスクが履歴(例えば、ファイル)や資源(ベク
トル演算機能)を共有するとき、これらを排他的に利用
するように制御する必要がある。この目的のために、デ
ータメモリ部DMの各アドレスに対してテスト・アンド
・セットを行うことができる。テスト・アンド・セット
命令は実際には共有資源を代表するデータメモリのワー
ドに対するテスト・アンド・ロック命令とセット・アン
ド・アンロック命令の2命令に分割されて実行される
が、この2つの命令はインターロック(連結)されてお
り、例えばタスクAのテスト・アンド・ロック命令が成
功した後は、対応するセット・アンド・アンロック命令
が実行されるまでは、対象とする共有資源が同一である
か否かにかかわらず他のタスク(例えば、タスクB)に
よるテスト・アンド・ロック命令の実行が不成功となる
ように制御されている。さらに、タスクAのセット・ア
ンド・アンロック命令によってセットされたワードが、
共有資源利用後にリセットされるまでは同一資源(すな
わち同一ワード)に対するテスト・アンド・ロック命令
は不成功となるように制御されている。
【0128】(6)動的負荷分散への対応 プログラムメモリ部PMの内容を読み出す命令(PMR
D)と、書き込む命令(PMWT)を用いて、プログラ
ムを他のPEに移動させる(プロセス・マイグレーショ
ン)ことができる。また、第2オペランド(右データの
値)を行き先ノード番号フィールドにコピーするSEN
D命令を用いることにより、他のPEの任意の番地に対
して入力パケットを送出することができる。この二つの
機能を用いることにより、先進的な動的負荷分散方法で
ある、プロセス・マイグレーションを実現することがで
きる。
【0129】(7)固定遅延マッチングメモリ部 マッチングメモリ部MMの構成方法として、並列ハッシ
ュ法が一般的である。しかし、ハッシュ衝突が発生した
ときには、ポインタチェインに従ってメモリを逐次的に
アクセスする必要があり、同一アドレス上でハッシュ衝
突が多重に起こった場合には時間的なペナルティーが大
きい。本プロセッサは、この問題を解決するために、ハ
ッシュメモリと、連想メモリを併用している。ハッシュ
衝突したパケットを連想メモリに格納しておき、入力し
たパケットに対して両方のメモリを同時に検索すること
により、ハッシュ衝突の有無にかかわらず、一定の遅延
でマッチングの処理を行うことが可能となった。
【0130】(8)実用レベルのメモリ空間 プログラムメモリ部:内蔵512w、外部221w データメモリ部 :内蔵1kw、外部222
【0131】(9)トレース機能の充実 外部データメモリ接続用ポート、外部プログラムメモリ
接続用ポートを介して、巡回しているパケットの内容を
モニタすることができ、実動作速度での内部状態を容易
にトレースすることができる。
【0132】(10)パイプライン周回時間の短縮 演算部FALUとプログラムメモリ部PMを並列配置し
たことにより、周回パイプライン段数を抑制し、最高性
能を引き出しやすくし、また単発入力に対する応答性を
高めた。
【0133】(11)自己同期クロック方式の採用 高速クロックによる諸問題(クロックスキュー、リンギ
ングノイズ、クロック波形のなまり等)を解決するため
に、パイプライン間のデータ転送は外部クロックを用い
ない自己同期クロック方式を採用した。
【0134】以下、上記説明において不十分な点を追加
説明する。
【0135】〔1〕プログラムメモリ部PMの特徴的な
動作について説明する。 [1−1]拡張アドレスの読みだし、パケットのコピ
ー、プログラムメモリ部PMからの即値(定数)読みだ
しの各動作 データ駆動形マイクロプロセッサ内部のパケットフォー
マットは、図49に示すとおりである。また、図49の
Sel_Code(セレクションコード)の詳しい内容
を図50に示す。プログラムメモリ部において、拡張ア
ドレスの読みだし、パケットのコピー、即値(定数)読
み出しの各動作をするパケットをケース1パケットと呼
ぶ。
【0136】ケース1パケットの動きを概観すると次の
ようになる。本データ駆動形マイクロプロセッサ(RA
PID)に入力された、ケース1パケットはプログラム
メモリ部PMの入り口まで他の入力パケットと同様の動
作をする。
【0137】(a)即ち入出力インタフェース部IFで
は、本プロセッサ外部より入力されたケース1パケット
は、リングパイプラインを周回してきたパケットと合流
する。ケース1パケットがリングパイプラインを周回し
てきた場合はセレクションコードに従って外部に出力さ
れるか、または、外部より入力されたパケットと合流し
て再びリングパイプラインに入力される。
【0138】(b)マッチングメモリ部MMでは、パケ
ットの待ち合わせをする(2項演算命令の場合)。マッ
チングメモリ部MMでの詳しい動作は、前述したので、
ここではマッチングメモリ部MMより出力されるパケッ
トを次のように整理しておく。 (1)プログラムメモリ部PMをスルーするパケット ・セレクションコードのPM_Thru、MEM_VI
OL、HASH_CONの何れかのBITが“1”であ
るパケット。 (2)プログラムメモリ部PMをスルーしないパケット セレクションコードが(1)で示した以外であって、次
の2つの場合である。 ・左右オペランドの待ち合わせが完了した2項(2入
力)演算パケット。 ・単項演算(1入力)パケット。 上記(1)のパケットは、プログラムメモリ部PMでな
んら操作を受けない。
【0139】(c)データメモリ部DMでは、ベクトル
演算命令パケット及び、ベクトル演算設定パケットを処
理する。そうでないパケットはスルーする。プログラム
メモリ部PMでは、ケース1パケットの所定の動作が行
われる。この内、何れのパケットにも共通な動作は、
グ部(セレクションコード、オペコード、ノード番号)
の更新である。これについては、プログラムメモリ部P
Mと併置されている演算部FALUの動作と併せて理解
する必要がある。即ち、演算部FALUはプログラムメ
モリ部PM、演算部FALUに入力されたパケットのオ
ペコードに従って演算を実行する。一方、プログラムメ
モリ部PMは演算部FALUの動作と並列に、入力され
たノード番号をメモリアドレスとして、プログラムメモ
リ部PMから次回プログラムメモリ部PMと演算部FA
LUにパケットが入力されたときに必要なタグ部(セレ
クションコード、オペコード、ノード番号)を読み出し
更新する。
【0140】(d)プログラムメモリ部PMから出力さ
れたケース1パケットは、コピー部KCOPYでは、コ
ピーパケットに関して所定の操作が行われる。その他の
ケース1パケットは、コピー部KCOPYにおいて演算
結果データとマージされる。
【0141】(e)再び入出力インタフェースIFに入
力されたケース1パケットは、セレクションコードの内
容に従って本プロセッサより出力されるか、再びマッチ
ングメモリ部MMに入力され上述の2以降の動作をす
る。
【0142】[1−2]フローグラフを使った各動作の
説明 図51にケース1パケットの動作を説明するためのフロ
ーグラフを示す。図中、$****はノード番号を示
し、P1〜P7は、各ノードから出力されるパケットを
示す。これらP1〜P7のパケットフォーマットを図5
2に示す。図52に示されるパケットフォーマットはプ
ログラムメモリ部PMから出力された直後のものであ
る。また、図53には図51のフローグラフをプログラ
ムメモリ部PMのメモリにマップした様子を示す。プロ
グラムメモリ部PMのメモリへのプログラムのマッピン
グは、PMWT(PM WRITE)命令によって行わ
れる。プログラムメモリ部PMに書かれたノード番号
は、相対ノード番号である。従ってプログラムメモリ部
PMは、入力されたパケットのノード番号に読み出され
相対ノード番号を加算して、行き先ノード番号とし、
プログラムメモリ部PM出力パケットのノード番号フィ
ールドに格納する。
【0143】さて、図51中のパケットP1がプログラ
ムメモリ部PMから出力されたところから話を始める。
P1は、プログラムメモリ部PMから出力された後[1
−1]の(d),(e)で述べたようにコピー部KCO
PY、入出力インタフェース部IFの各ブロックを通過
した後再びマッチングメモリ部MMに入力される。P1
は1入力命令であり、非ベクトル演算命令であるので、
マッチングメモリ部MM、データメモリ部DMの各ブロ
ックは、スルーし再びプログラムメモリ部PMと演算部
FALUに入力され、ノード($000000)の処理
が実行される。本プロセッサでは、プログラムメモリ部
PMと演算部FALUは、並列にインプリメントされて
いるので演算実行は演算部FALUで,タグ部(セレク
ションコード、オペコード、ノード番号)の更新は、プ
ログラムメモリ部PMで同時に行われる。
【0144】また、ケース1パケットの実行に際して
は、プログラムメモリ部PMのメモリを連続に読み出す
必要がある。これは、図49中のSel_Code(セ
レクションコード)の内のS5:D_COPY(図5
0)のビットによって制御される。つまり、プログラム
メモリ部PMで更新されたSel_Code(セレクシ
ョンコード)のS5:D_COPYが“1”であるパケ
ットは、次回プログラムメモリ部PMに入力された時ノ
ード番号で表されるアドレスとノード番号を1インクリ
メントしたアドレスが連続して読み出された。また、ノ
ード番号を2インクリメントしたアドレスが連続して
み出されたか否かは、プログラムメモリ部PMのメモリ
読み出されたとき、図53に示すAANの値によって
制御されるが、ここでは、詳しい説明は省略する。
【0145】続いて、図51の各ノードを追いながら本
プロセッサの動作を説明する。 1.ノード($000000) プログラムメモリ部PMに入力されたパケットP1は、
タグ部の更新とパケットコピーが行われる。ここで、図
53を参照する。パケットP1のノード番号は、($0
00000)であるのでプログラムメモリ部PMのメモ
リのアドレス(000000)番地が読み出された、
の結果パケットP1のタグ部が更新され、プログラム
メモリ部PMよりパケットP2として出力される。続い
て、アドレスが1インクリメントされ、(00000
1)番地が連続して読み出され、再びパケットP1のタ
グが更新されプログラムメモリ部PMよりパケットP3
として出力される。このP3がコピーパケットである。
つまり、プログラムメモリ部PMの入力端と出力端で見
ると、1入力パケットに対し2出力パケットとなる。こ
こで注意すべき事が1つある。コビーパケットのタグ部
は、メモリの読み出し内容で更新されるが、パケットの
その他のフィールド(c/g、DATAR、DATA
L)は、プログラムメモリ部PM入力パケットの内容が
そのままプログラムメモリ部PM出力パケットの内容と
なる。プログラムメモリ部PMから出力されるP2、P
3のパケットフォーマットを図52に示す。
【0146】さて、プログラムメモリ部PMより出力さ
れたP2、P3は次にコピー部KCOPYに入力され
る。コピー部KCOPYでは、演算結果データとマージ
されると同時にコピーパケットであるP3に対し次のよ
うな操作が行われる。パケットP3のc/g、DATA
R、DATALの各フィールドは、パケットP2のそれ
と同じでなければいけない。そこで、パケットP2がコ
ピー部KCOPYに入力された時点で、本来、演算部F
ALUとプログラムメモリ部PMの両方に帰さなければ
ならないデータ転送完了信号反転論理(Ack)をプロ
グラムメモリ部PMだけに帰す。すると演算部FALU
では、パケットP2の転送が完了していないと解釈さ
、パケットP2のc/g、DATAR、DATALの
内容を出し続ける。一方、プログラムメモリ部PM
は、パケットP2の転送が完了したと解釈され、パケッ
トP3の転送を行う。こうしてパケットP3は、パケッ
トP2と同じc/g、DATAR、DATALの内容を
持つ。
【0147】コピー部KCOPYは、パケットP3がプ
ログラムメモリ部PMより転送されると今度は、演算部
FALUとプログラムメモリ部PM両方に反転論理Ac
kを帰しコピーパケットに対する所定の動作を完了す
る。以上のコピー部KCOPYでの動作は、先に述べた
注意事項に相当するものである。ただし、DATALに
関しては、例外事項が有するが、ここでは立ち入らない
ことにする。(例えば、プログラムメモリ部PMから定
数を読みだした場合、その定数はDATALに格納され
る。従ってこの場合には、DATALは、演算部FAL
Uではなく、プログラムメモリ部PMのDATALがコ
ピー部KCOPYで選択される。
【0148】2.ノード($000002) プログラムメモリ部PMより出力されたパケットP2
は、コピー部KCOPYを経て入出力インタフェース部
IFに入力される。入出力インタフェース部IFでパケ
ットP2は、再度本プロセッサ内に入力されるパケット
であると判断され、マッチングメモリ部MMに入力され
る。マッチングメモリ部MMは、パケットP2が1入力
命令であるので(セレクションコードのS7:PAIR
=1の時1入力命令)パケットP2をスルーさせる。続
くデータメモリ部DMにおいてもパケットP2は、ベク
トル演算命令ではないのでスルーされる。こうして、パ
ケットP2はプログラムメモリ部PMと演算部FALU
に入力され、演算部FALUでINC命令の実行が行わ
れプログラムメモリ部PMでタグ の更新が行われる。
この時更新されるノード番号は拡張アドレス付きであ
る。
【0149】図52,53を参照する。パケットP2の
ノード番号は、($000002)なので、アドレス
(000002)番地が読み出される。続いて、拡張ア
ドレス、PE番号が格納されるアドレス(00000
3)番地が読み出され、その結果、セレクションコード
とOPC=MUL、拡張アドレス付きのノード番号、P
E番号が更新される。これらの動作をフローチャート風
に示すと次のようになる。 (1)アドレス(000002)番地を読み出す。読み
だした内容に従って、セレクションコードとオペコード
を更新する。ノード番号(7FD)の値は保持する。ま
た読み出されたPE番号は、PE番号フィールドに格納
される。 (2)アドレス(000003)番地を連続して読み出
。読みだした拡張アドレス(3FF)を先に読み出し
たノード番号(7FD)の最上位ビットから連結し、相
対ノード番号((1FFFFD)21ビット)を得る。 (3)相対ノード番号(1FFFFD)とプログラムメ
モリ部PM入力パケットP2のノード番号(00000
2)を加算し、行き先きノード番号(1FFFFF)を
プログラムメモリ部PM出力パケットP4のノード番号
フィールドに格納する。 以上のようにタグ部更新された、拡張アドレス付きパケ
ットP4は、プログラムメモリ部PMから出力された
後、前述のようにコピー部KCOPYで演算結果データ
とマージされ、入出力インタフェース部IFブロックを
経てマッチングメモリ部MMに入力され、右オペランド
であるパケットP8とオペランドの待ち合わせをする。
ノード($1FFFFF)の動作説明は、ここでは省略
する。
【0150】3.ノード($000004) プログラムメモリ部PMから出力されたパケットP3
は、コピー部KCOPY、入出力インタフェース部IF
の各ブロックを経て、マッチングメモリ部MMに入力さ
れる。マッチングメモリ部MMで、右オペランドを持っ
たパケットP6とオペランドの待ち合わせをする。ここ
では、簡単のため待ち合わせの動作説明は省略し、パケ
ットP6及び待ち合わせの完了したパケットP7のパケ
ットフォーマットを図52に示すにとどめる。
【0151】マッチングメモリ部MMでオペランドの待
ち合わせが完了したパケットP7は、非ベクトル演算パ
ケットなのでデータメモリ部DMをスルーしプログラム
メモリ部PMに入力される。パケットP7はノード番号
($000004)に従って(000004)番地を
み出す。ここで図53を参照する。読み出されたタグ部
(セレクションコード、オペコード、ノード番号)に従
って既に述べたようにパケットP7のタグ部を更新す
る。定数読み出しのための特別な動作は、次の通りであ
る。 (1)(000004)番地を読み出した結果、得られ
たセレクションコードのS1には定数のMSBが格納さ
れている。このS1の内容を保持しておく。 (2)続いて、(000005)番地が読み出される
ここには、定数の下位31ビットが書かれている。この
下位31ビットと、先に読みだしたMSB1ビットを連
結して32ビットの定数データを得る。 (3)(2)で得られた32ビット定数データをDAT
ARフィールドに格納し、更新したタグ部を付けてパケ
ットP5をプログラムメモリ部PMから出力する。パケ
ットP7の演算MULは、プログラムメモリ部PMと併
置されている演算部FALUで実行され、その結果はコ
ピー部KCOPYでマージされてパケットP5のDAT
ALに格納される。
【0152】ここで、パケットP5について補足説明を
する。パケットP5は加算を実行するパケットである。
加算命令は、2入力演算命令であり、通常マッチングメ
モリ部MMでオペランドの待ち合わせを行う。しかし今
の例のように、オペランドの一方がプログラムメモリ部
PMから読み出した定数であるような場合には、マッチ
ングメモリ部MMでオペランドの待ち合わせをする必要
がなくただちに加算が実行される。この動作をさせるに
は、セレクションコードのS7:PAIR=1(1入力
命令を意味する)にしてやればよい。こうすればマッチ
ングメモリ部MMは、本来2入力命令である加算命令を
持つパケットであってもオペランドの待ち合わせ動作は
行わない。
【0153】以上、プログラムメモリ部における拡張ア
ドレスの読み出し、パケットのコピー、即値(定数)読
みだしの各動作について説明してきた。図53に示した
プログラムメモリ部PMメモリコアイメージのAAN、
CPY1、CPY2はプログラムメモリ部PMのメモリ
を連続に読みだすための制御ビットと、読みだした内容
の属性(コピー等であること)を示す制御ビットであ
る。
【0154】〔2〕データメモリ部の即値アドレス指定
によるアクセスについてデータフローグラフを用いて説
明する。 ノイマン形プロセッサと同様に本プロセッサでもプログ
ラムにデータメモリの即値アドレスを格納し用いること
ができる。図54(a)はデータメモリアドレスを即値
指定でアクセスするためのプログラムを示したものであ
り、図54(b)は対応するデータフローグラフを示し
ている。以下に示すように、2通りの機構がサポートさ
れている。2.1セレクション・コードのIMビット
(S0)を用いる方法図54(a)に示したように(プ
ログラムメモリの#1)、プログラム・コードを生成す
る際に、IM(S0)=1をセットすることで、プログ
ラムのセレクションコードフィールドの上位8ビットを
即値アドレスとして用いることができる。即ち、データ
フローグラフ(図54(b))で考えると、ノード#2
で行われる処理に対応し、ノード#1でのADD演算の
結果と、セレクション・コードフィールドに指定した即
値アドレス(i番地)にデータメモリ部DMに設定され
ているベースアドレスを加算したアドレス(i+bas
e)番地に格納されたデータメモリの内容とをAND演
算する。
【0155】以下に、処理の詳細を順を追って説明す
る。 プログラムメモリ部PMにおいて、タグ更新の際にプ
ログラムメモリから読み出した値のうちセレクションコ
ードのIMビット(S0)が“1”である場合、右デー
タフィールドのビット2からビット9にセレクションコ
ードフィールドのビット1からビット8を格納する(ス
カラーアクセスがバイトアドレスを取っているためセレ
クションコードフィールドで表現される値を2ビットシ
フトする)。出力パケットのセレクションコードフィー
ルドには、デフォールトの値が格納される。 セレクションコードのIMビット(S0)が“1”で
あるので、プログラムメモリ部PMを出力されたパケッ
トは、出力ブロック、入力ブロック、マッチングメモリ
部MMブロック、はNOPで通過しデータメモリ部DM
に到着する。 データメモリ部DMではIMビット(S0)が“1”
であるためにパケットの右データフィールドは、アドレ
スであると解釈して、設定されているベースアドレスと
加算を行い、生成されたアドレスで、メモリ読み出し動
作を行う。読みだしたデータを右データフィールドに格
納する。 演算部FALUでは、パケットのもつオペコード“A
ND”にしたがって演算が行われる。また、プログラム
メモリ部PMでは通常どうりのタグの更新が行われ次の
演算情報がパケットに付与される。 〜の過程でデータの演算相手である定数がフェッチ
され演算が実行される。
【0156】2.2セレクション・コードPM_Thr
u(S3)=1,PE(S4)=0を用いる方法 図54(a)の#3にあるように、プログラム・コード
を生成する際に、セレクションコードのビットがPM_
Thru(S3)=1,PE(S4)=0,PAIR
(S7)=1,L/反転論理R(S6)=1の組み合わ
せに設定する(PAIR=1,L/反転論理R=1の組
み合わせは、単項演算パケットを示しており、マッチン
グメモリ部MMブロックをNOPで通過するための処置
である)。また、プログラムメモリの次のアドレスにデ
ータメモリ部DMの即値アドレスを定数として格納する
ことで24ビットフルビットを即値アドレスとして用い
ることができる。データフローグラフでは、ノード#5
での処理に対応し、ノード#3での演算“OR”の結果
と、即値アドレス(j番地)のデータメモリ内容とのM
UL演算が実現される。
【0157】以下に、処理の詳細を順を追って説明す
る。 プログラムメモリ部PMでは、プログラムの制御ビッ
ト(AAN,CPY1,CPY0)により、データメモ
リ部DMの即値アドレス(j番地)を定数としてパケッ
トの右データフィールド格納する。 出力ブロックでは、セレクションコードがPM_Th
ru(S3)=1,PE(S4)=0の組み合わせであ
るのでパケットは、チップ外に出力されることなくマッ
チングメモリ部MMブロックへ、出力される。セレクシ
ョンコードが、PAIR(S7)=1,L/反転論理R
(S6)=1の組み合わせであるためマッチングメモリ
部MMブロックは、NOPで通過する。 データメモリ部DMにおいて、セレクションコードが
PM_Thru(S3)=1,PE(S4)=0の組み
合わせであるので、パケットの右データフィールドにデ
ータメモリ部DMのアドレスが格納されているものと解
釈して右データをアドレスとしてメモリを読み出し、結
果を右データフィールドに格納し出力する。この際、P
M_Thru→0とフラグを変更し、次のプログラムメ
モリ部PMブロックでのタグ更新の処理が禁止されない
ようにする。また、この際、データメモリ部DMの動作
モードがバンクモードである場合で、読み出しアドレス
が、256ワードを越える場合は、セレクションコード
のMEM_ACCESS_VIOLビット(C2)をセ
ットし、メモリアクセスは行われない。 演算部FALUでは、パケットのもつオペコード“M
UL”に従って演算が行われる。また、プログラムメモ
リ部PMでは通常どうりのタグの更新が行われ次の演算
情報がパケットに付与される(もしMEM_ACCES
S_VIOLビットがセットされていれば、演算部FA
LU、プログラムメモリ部PM共にNOPで通過す
る)。
【0158】〔3〕グローバル・データメモリアクセス
について説明する。 大規模構造化データをマルチプロセッサシステムにおい
て処理するため、各プロセッサ・エレメント(PE)の
データメモリを透過的にアクセスする機構を備えてい
る。論理的なアドレスは32ビットであり、上位8ビッ
トがPE番号、下位24ビットが各PEのデータメモリ
の物理アドレス(ローカルアドレス)である。図55に
示したように、あるプロセッサエレメント(アクセス要
求元PE)内でデータメモリの透過的アクセスの要求が
発生した場合、パケットはネットワークを通じて論理ア
ドレス上位8ビットで指定されたPE(要求先PE)へ
ルーティングされ、要求先PEにてデータメモリをアク
セスし、再び要求元PEへ戻る。図56に示したよう
に、パケットは本過程を通じて(a)〜(b)の変遷を
たどる。以下に、透過的メモリアクセスの過程を示す。
【0159】マッチングメモリ部MMにおいてマッチ
ングされアドレス(32ビット論理アドレス)、データ
が対になったパケットが、プログラムメモリ部PMにて
タグ更新がなされる。この際に、セレクションコードの
組み合わせがPE=1,PM_Thru=1,OUT/
反転論理IN=1,PAIR=1,L/反転論理R=1
とプログラムコーディングしておく(メモリ書き込みの
場合。メモリの読み出し操作の場合は、最初のマッチン
グ処理は必要ない)。(図56(a)) 出力ブロック(I/Fブロック)PE=1,PM_T
hru=1の組み合わせによって、行き先PE番号が左
データフィールドの上位8ビットにあると解釈し、
(A)自PE番号と等しい場合は、チップ外に出力せず
マッチングメモリ部MMブロックへ出力する。(B)自
PE番号と等しくない場合は、左データの上位8ビット
に格納されているPE番号を3ワード形式のPE間を渡
るパケットのPE番号フィールドに格納し、自PE番号
を、行き先PEからの戻りPE番号として左データの上
位8ビットへ退避してチップ外へ出力する。(A)の場
合は、自PEのマッチングメモリ部MMブロックへ、
(B)の場合は、行き先PE番号のPEへネットワーク
を介してルーティングされ、行き先のPEの入力ブロッ
クを通ってマッチングメモリ部MMブロックへ到着す
る。(パケット形式は、図56(b))上記の(A)、
(B)いずれの場合であっても、セレクションコードは
PE=1,PM_Thru=1の組み合わせである。
(A)の場合は、行き先PE番号と戻り先PE番号が同
一であることを除くと(B)の場合と同様に考えること
ができる。従って、ここでは、(B)の場合に限定して
説明する。以上〜の処理はメモリアクセスの要求元
PEでの処理である。
【0160】行き先PEのマッチングメモリ部MMブ
ロックでは、PAIR=1,L/反転論理R=1の組み
合わせであるため、このパケットが単項演算のパケット
であると解釈し、パケットをNOPで通過させデータメ
モリ部DMブロックへ出力する。 データメモリ部DMブロックでは、パケットのオペコ
ードフィールドに従ってデータメモリをアクセスし、左
データの上位8ビット(すなわち、戻り先PE番号)の
値を命令実行後は、使用しないフィールドである右デー
タの上位8ビットに退避し、プログラムメモリ部PM、
演算部FALUブロックに出力する。なお、データメモ
リ部DMブロックでは、OUT/反転論理INフラグ
は、常に、“0”が出力される。従って、データメモリ
部DMブロックを出力されるパケットのセレクションコ
ードは、PE=1,PM_Thru=1,OUT/反転
論理IN=0の組み合わせとなる。(パケット形式は、
図56(c)) 演算部FALUは、オペコードがデータメモリ部DM
命令であるためにNOPで通過する。プログラムメモリ
部PMは、フラグ、PM_Thru=1であるために、
入力されたパケットをNOPで通過させる。 出力ブロックでは、入力されるパケットのセレクショ
ンコードがPE=1,PM_Thru=1,OUT/反
転論理IN=0の組み合わせであると、無条件に、PM
_Thru→0とフラグの値を変化させる。また、行き
先PE番号が、右データの上位8ビットに格納されてい
るものと解釈し、行き先PE番号が自PE番号と異なる
場合は、PE間を渡るパケットのPE番号フィールドに
右データの上位8ビットを格納して、再びパケットをネ
ットワークへ出力する。(図56(d)) 以上〜の処理は、メモリアクセス要求先PEの処理
である。
【0161】行き先PE番号が自PE番号と等しい場合
は、パケットをチップ外に出力せずマッチングメモリ部
MMブロックへと転送するが、で(A)の場合にこの
ようなことが起こる。この後のマッチングメモリ部MM
ブロック以降での処理は、いずれの場合も同様である。
【0162】ルーティグネットワークを介して戻り先
PE(メモリアクセス要求元PE)の入力ブロックを通
過したパケットは、セレクションコードの組み合わせ
が、PAIR=1,L/反転論理R=1であるためこの
パケットを単項演算パケットと解釈し、マッチングメモ
リ部MMブロックをNOPで通過させ、データメモリ部
DMブロックへ転送される。 データメモリ部DMにおいては、セレクションコード
の組み合わせが、PE=1,PM_Thru=0である
場合パケットをNOPで通過させる。演算部FALU
は、オペコードがデータメモリ部DM命令であるため、
データ処理は、行われない。プログラムメモリ部PMに
おいては、通常のタグ更新が実行され、フローグラフ上
の次のノードの命令が読み出される。
【0163】〔4〕ベクトル演算について説明する。 ベクトル演算 (ai +bi )×ci (ただし、i=1〜126) を以下に示すような2回のベクトル演算過程を用いて行
うことを考える。 第一ベクトル演算 RAGで、予めバンク#2に格納された第1オペランド
(ai )、バンク#3に格納された第2オペランド(b
i )を連続的に読みだす。WAGでは、RAGで生成
し、演算部FALUで演算された結果(ai +bi )を
バンク#4に格納する。また、同時に、バンク#5には
外部メモリからデータ(ci )をDMA転送する。 第二のベクトル演算 上記のベクトル演算過程が終了した後、バンク#4(a
i +bi )、#5(ci )をRAGに、バンク#1(最
終結果を格納)をWAGに割付け、RAGが連続的にオ
ペランド対{(ai +bi )、ci }を生成し、演算部
FALUにてベクトル演算、(ai +bi )×ci を実
行し、WAGにてバンク#1にその結果(ai +bi
×ci 、が格納され上記のベクトル演算が完了する。
【0164】図57にこの過程を示したデータフローグ
ラフを示す。本データフローグラフは「トリガーパケッ
ト」の入力により起動される。本過程は、第一のベク
トル演算のためのセットアップ、ベクトル演算の実
行、ベクトル演算の終了の検知、第二のベクトル演
算のためのセットアップ、ベクトル演算の実行、ア
クノーリッジパケットの送出、によりなる。以下各過程
の詳細を説明する。
【0165】ベクトルバンクのセットアップ SETAG命令により各アドレスジェネレータのセット
アップ、アドレスジェネレータとメモリバンクを関連づ
け等を行う。図中パターンなど、10h等は、プログ
ラムメモリ部PM内に予め設定された定数である(詳し
くは、第1節参照)。トリガーパケットを必要なSET
AG命令数分コピーして、SYNCノードで設定するビ
ットパターン(図中パターンなど)を定数としてプロ
グラムメモリより取り出し、左データに格納する
(*)。更に、レジスタアドレス(10hなど)を定数
としてプログラムメモリ部PMより取り出し、右データ
に格納しSETAG命令を実行する(SETAG命令の
引き数は、左データに設定するビットパターン、右デー
タにレジスタアドレスである)。(設定する内容は、後
述)。なお、SETAG命令は、図58におけるNAG
にて実行され、制御線を介して各アドレスジェネレー
タ、SW回路、メモリバンク内の各々のレジスタへのデ
ータの書き込みが制御される。
【0166】(*)本来、プログラムメモリ内の定数を
用いる場合、定数値は、右データに格納されるが、セレ
クション・コードの組み合わせをPAIR=1,L/反
転論理R=0とすことで、マッチングメモリ部MMが右
データと左データを交換する機能を持つ。ここでは、こ
の機能を用いることを仮定している。従って、SYNC
ノードにて定数(パターン等)が左データとして入力
されている。
【0167】ベクトル演算の実行 SETAG命令の全ての結果パケット(値は、意味を持
たない)をSYNCノードで同期して、即ち、必要なS
ETAG命令が全て実行されたことを保証した上でTR
GW命令にてRAG、DMAAGの両方にトリガーをか
けベクトル演算を開始させる。RAGは、NAGにより
発行されたトリガー命令を受け、連続的にアドレスを生
成する。そのアドレスは、SW回路を介して対象とする
メモリバンクに作用しデータが読み出され、再びSW回
路を介してRAGに伝達され、パケットの左右データフ
ィールドに格納される。(オペコードなどの)タグ部は
予めSETAG命令で設定された内容が格納される。R
AGから出力されるパケットはセレクションコードC1
(VECTOR INSTR.)がセットされている。
このビットにより、演算部FALUを除くブロックは、
このベクトル演算パケットに対して何も処理をしない。
また、再びデータメモリ部DMに戻ってきたパケット
は、分岐部でC1がセットされていることでWAGへ分
岐し結果が格納される。
【0168】ベクトル演算の終了の検知 RAGは、規定回数のデータ読み出しが終了したところ
でアクノーリッジパケットを出力する。このパケットに
は、各アドレスジェネレータの稼働状態が格納されてい
る。(DMAAGの状態は、左データの最下位ビットに
格納されている)。ここでは、DMAAGがデータの転
送を終了したかどうかを確認するためアクノーリッジパ
ケットの最下位ビットをAND演算でテストし、終了し
ていなかった場合(AND演算結果が0でない場合)
は、CHKAG命令にて再度DMAAGの状態をチェッ
クしDMA転送の終了するまでループする。DMAAG
のデータ転送が終了した時点で第二のベクトル演算のセ
ットアップに入る。なお、命令「zero」は入力され
たデータが“0”であれば真(T)を、それ以外であれ
ば偽(F)を出力する。
【0169】第二のベクトル演算のセットアップ と同様にSETAG命令にてセットアップを行う。こ
こでは、アドレスジェネレータは、同一のアドレッシン
グモードを実行するため、バンクメモリとアドレスジェ
ネレータと関連づけ等を規定するレジスタのみを設定し
直す。
【0170】ベクトル演算の実行 と同様に、SETAG命令の全ての結果パケット(値
は、意味を持たない)をSYNCノードで同期して、即
ち、必要なSETAG命令が全て実行されたことを保証
した上でTRGRB命令にてRAGにトリガーをかけベ
クトル演算を開始させる。
【0171】アクノーリッジパケットの送出 RAGが規定回数のデータ読み出しを終了した後アクノ
ーリッジパケットを出力する。このパケットの行き先ノ
ード#に従ってベクトル演算の終了を示すパケットがベ
クトル演算の要求元へ出力される。なお、アクノーリッ
ジパケットの行き先ノード番号は、TRGRB等のベク
トル演算を開始させる命令を持ったパケットの行き先ノ
ード番号が設定される。
【0172】〔5〕テスト・アンド・セット命令による
共有関数“i”の排他的実行について説明する。 データ駆動形マイクロプロセッサの特徴の一つは、プロ
グラムのコードサイズを圧縮するために複数回呼ばれる
関数を共有関数化し、かつカラー識別番号をデータに付
与することにより、プログラム中の複数の箇所から共有
関数を同時に呼び出して並列に実行できることである。
ところが、共有関数中にメモリの読み書きを含む場合、
読み書きの順序性を保証するために、同時実行を禁止
し、排他的に実行する必要の生じる場合がある。これ
は、履歴を伴う処理の場合一般的に要求されることであ
り、例えば、磁気ディスク記憶のディレクトリをチェッ
クして、空き領域が存在することを確かめた後に、ディ
スクの空き領域に引数として渡されたデータを書き込む
ような関数の場合、処理の一貫性を保証するためには同
時に呼び出される数を1つに限定する必要がある。すな
わち、関数の排他的実行が必要となる。
【0173】図59は共有関数“i”を排他的に実行す
るためのプログラムを示すデータフローグラフである。
各命令の意味を以下に示す。 nop:データ操作をしない命令。1入力命令。 SYNC:2入力のnop命令。2つの入力が揃ったこ
とを検出して同期をかける(synchronize )ための命
令、左入力をパケットの左データフィールド、右入力を
右データ入力に格納して出力する。通常、出力パケット
の右データは、無意味。 T&L:テスト・アンド・ロック命令。左入力の値が示
すデータメモリのアドレスの内容が1であるか、またデ
ータメモリのロックフラグの値が1の時パケットのキャ
リフラグを1に変化させる。左入力の値が示すデータメ
モリアドレスの内容が0の時パケットのキャリフラグを
0とし、かつデータメモリのロックフラグを1にする。 CY:キャリフラグが1の時に、左データの値を1にす
る命令。 SW:右入力が1のとき、右側のアークにデータを出力
し、右入力が0のとき、左側のアークにデータを出力す
る命令。 S&U:セット・アンド・アンロック命令であり、左入
力の値が示すデータメモリの内容を1に変化させ、かつ
データメモリのロックフラグを0にする。DMW :左データ入力の示すデータメモリアドレスに、
右データ入力の値を書き込む命令。
【0174】呼び出し側からは、入力引数とトリガーパ
ケットが送り出される。トリガーパケットはnop命令
を経由した後、関数“i”に相当する定数「i」を伴っ
たT&L命令を実行する。データメモリの「i」番地を
読みだした結果データが0であったとき、他のT&L命
令の実行が成功しないようにするためにロックフラグを
1にすると同時に、パケットのキャリフラグは本T&L
命令が成功したことを示すために0にする。一方、もし
「i」番地の内容が1であったり、データメモリのロッ
クフラグが1であった場合には本T&L命令は不成功に
終わり、キャリフラグは1となる。
【0175】T&L命令ノードの出力は、CY命令ノー
ドでチェックされ、キャリフラグの0/1に応じてCY
命令ノードの出力パケットの左データの値が0/1にな
る。SW命令ノードでは右データ入力、すなわちCY命
令ノードの出力パケットの左データの値の0/1に応じ
て、0のとき左出力アーク上に、また1のとき右出力ア
ーク上にパケットを出力する。T&L命令の実行が不成
功であった場合には、再度T&L命令を実行するために
トリガーパケットが最初に入力するnopノードにパケ
ットを送る。反対に、T&L命令の実行が成功した場合
には、パケットをS&U命令ノードに送って、データメ
モリの「i」番地の内容を1に変化させるとともに、デ
ータメモリのロックフラグを0にクリアする。
【0176】S&U命令の実行終了の後、入力引数I1
〜In はsync命令ノードを経由して関数“i”に引
き渡される。関数“i”の実行が終了すると、関数の実
行結果として、出力数O1 〜On が呼び出し側に引き渡
される。nopノードを経由した出力引数は、呼び出し
側で次の処理のために利用されるとともに、syncノ
ードで出力の同期を取り、全出力が送出されたことを検
出する。最終的に、左データとして0を有するパケット
がDMW命令ノードに入力される。DMW命令は、デー
タメモリの「i」番地に0を書き込んで、i番地(関数
「i」)に対する他のT&L命令が成功可能な状態に戻
す。以上のようにして、関数の排他実行が実現される。
【0177】ハードウェア構成、上記処理内容を示すフ
ローチャート、テスト・アンド・セット命令の実現方法
については先行出願(1991年1月9日出願「マイク
ロプロセッサ」)に詳述している。
【0178】上記SETAG命令にて設定する内容を図
60〜図63に参考として記載しておく。
【0179】なお、上記実施例では、マルチポート機能
を有する内部データメモリを、マルチバンク構成のメモ
リで実現した例を示したが、特にこれに限るわけではな
く、複数のビット線とこれに対応するす複数のアドレス
デコーダを有するいわゆるマルチポートメモリを用いて
もメモリの同時並行アクセスが実現可能であることは言
うまでもない。
【0180】また、上記実施例において説明した、デー
タ駆動形マイクロプロセッサの構成における機能ブロッ
クの接続はほんの一例であり、これに限るものではな
い。例えば、演算部FALUと、プログラムメモリ部P
Mは並列配置されているが、これは命令実行の遅延時間
を短縮するための工夫であり、これら2つの機能ブロッ
クは、縦列接続されて演算処理、プログラム読み出しの
順に実行されても差し支えない。なお、このように接続
された場合、演算結果データのコピー機能はプログラム
メモリ部PMにおいて実現されることになり、コピー部
KCOPYは不要となる。
【0181】さらに、上記実施例で示したアドレス発生
器、メモリバンクの数は固定的なものではなく、例えば
DMA転送を同時多重に行うことによってさらに性能を
向上させるためには、アドレス発生器、メモリバンク、
および外部メモリポートなどの数を増やせばよい。ただ
し、高速ベクトル演算を行うためには、最低3つのアド
レス発生器と、3つのメモリバンクが必須となる。
【0182】なお、上記実施例で示したデータメモリの
パイプライン構成も固定的なものではなく、例えば、ア
ドレス発生のためのパイプラインの段数が、アドレスの
ビット幅や、アドレッシングモードの機能の内容(任意
ビット数のビット反転処理を含むか否か)によって変わ
るものであることは言うまでもいない。
【0183】また、上記実施例では、簡単のためにパケ
ットに付与されるべきカラーおよび世代番号識別子を省
略したが、これらの識別子を用いることによって、通常
のデータ駆動形計算機と同様に、動的データ駆動方式が
実現できることは言うまでもない。
【0184】
【発明の効果】以上のように本発明によれば、演算部と
プログラムメモリ部を並列配置し、演算部およびプログ
ラムメモリ部で更新された情報を入出力インタフェース
部へ送る構成とするとともに、データを同時並行かつ連
続的に読み書き可能なデータメモリ部を演算部よりも手
前えに配置し、マッチングメモリ部から被演算データを
連続的にデータメモリ部へ読み出し、予め設定されてい
る命令コードとともに演算部へ送り込みベクトル演算を
実行するようにしたので、ベクトル演算のための2つの
被演算データの読み出し、演算結果データの書き込み、
通常のメモリアクセスなどの処理が、短いアクセス時間
内に、しかも同時並列に行われ、極めて高いベクトル演
算性能を達成することができる。
【0185】また、データメモリ部を巡回パイプライン
中に取り込み、かつ演算部よりも手前の段に配置したこ
とにより、データの読み出しと演算実行を巡回パイプラ
インの1周回で完了することが可能となり、効率のよい
プログラム実行が可能となった。
【図面の簡単な説明】
【図1】本発明によるデータ駆動形マイクロプロセッサ
の一実施例を示すブロック図である。
【図2】本発明によるデータ駆動形マイクロプロセッサ
のデータメモリ部のブロック構成を示す図である。
【図3】本発明によるデータ駆動形計算機で実行するプ
ログラム(データフローグラフ)の一例を示す図であ
る。
【図4】本発明によるデータ駆動形マイクロプロセッサ
で図3に示すプログラムを実行した場合のパケットの変
遷を示す図である。
【図5】図1中の入出力インタフェース部のブロック図
である。
【図6】上記入出力インタフェース部における3語1語
変換回路の一例を示す図である。
【図7】上記入出力インタフェース部における初期化回
路の一例を示す図である。
【図8】上記入出力インタフェース部における合流回路
の一例を示す図である。
【図9】上記入出力インタフェース部における分岐回路
の一例を示す図である。
【図10】上記入出力インタフェース部における1語3
語変換回路の一例を示す図である。
【図11】本実施例において分散型共有データメモリ部
の効率的なアクセスについて説明するための図である。
【図12】本実施例における入出力インタフェース部の
動作を説明するための図である。
【図13】図1中のマッチングメモリ部のブロック図で
ある。
【図14】上記マッチングメモリ部の動作を説明するた
めのメモリアクセスのタイムチャートである。
【図15】上記マッチングメモリ部への入力パケットの
フォーマットを示す図である。
【図16】図13中のハッシュメモリへの格納情報を示
す図である。
【図17】上記ハッシュメモリの構成図である。
【図18】上記ハッシュメモリにおけるリセッット付メ
モリセルの回路図である。
【図19】上記ハッシュメモリの周辺回路の論理回路図
である。
【図20】上記ハッシュメモリにおけるメモリアクセス
制御の論理回路図である。
【図21】上記ハッシュメモリにおける制御信号のタイ
ムチャートである。
【図22】上記ハッシュメモリにおけるハッシュアドレ
スの事前競合検知回路の回路図である。
【図23】図13中の連想メモリの機能を説明するため
の図である。
【図24】上記連想メモリの構成図である。
【図25】図13中のCAMセルの論理回路図である。
【図26】図13中のCAMとデータRAMの接続を示
す回路図である。
【図27】上記連想メモリにおける空ワード検知プライ
オリティデコーダの論理回路図である。
【図28】上記連想メモリに対するメモリアクセス制御
信号発生回路の論理回路図である。
【図29】上記連想メモリに対するメモリアクセス制御
信号発生回路による連想メモリ読み出しのタイムチャー
トである。
【図30】図1中のデータメモリ部においてノーマルモ
ード時のメモリの使用形態を示す図である。
【図31】図1中のデータメモリ部においてバンクモー
ド時のメモリの使用形態を示す図である。
【図32】上記データメモリ部のアクセス関連命令を示
す図である。
【図33】上記データメモリ部のアクセス関連命令を示
す図である。
【図34】上記データメモリ部におけるバンクレジスタ
のフォーマットを示す図である。
【図35】上記データメモリ部におけるバンク番号レジ
スタのフォーマットを示す図である。
【図36】上記データメモリ部におけるアドレスジェネ
レータ内のモード設定レジスタを示す図である。
【図37】上記データメモリ部におけるアドレッシング
モードの概念を説明するための図である。
【図38】上記データメモリ部の説明においてRAGの
レジスタに設定される内容を示す図である。
【図39】上記データメモリ部の説明においてRAGの
アクノリッジ・パケットに設定される内容を示す図であ
る。
【図40】上記データメモリ部の説明においてWAGの
レジスタに設定される内容を示す図である。
【図41】図1中のプログラムメモリ部のブロック図で
ある。
【図42】上記プログラムメモリ部に入力されるパケッ
トのフォーマットを示す図である。
【図43】上記プログラムメモリ部から出力されるパケ
ットのフォーマットを示す図である。
【図44】上記プログラムメモリ部におけるメモリコア
イメージを示す図である。
【図45】上記プログラムメモリ部の説明におけるセレ
クションコードのビット並びを示す図である。
【図46】従来のプログラムメモリ部の1語の構成と本
実施例によるプログラムメモリ部の1語の構成を示す図
である。
【図47】上記プログラムメモリ部より出力されるセレ
クション・コードの設定値を示す図である。
【図48】図1中のコピー部のブロック図である。
【図49】本実施例におけるプロセッサ内部のパケット
形式を示す図である。
【図50】本実施例におけるセレクションコードを説明
するための図である。
【図51】本実施例においてケース1パケットの動作を
説明するためのフローグラフを示す図である。
【図52】本実施例におけるパケットフォーマットを示
す図である。
【図53】本実施例におけるメモリコアイメージを示す
図である。
【図54】本実施例におけるデータメモリ部の即値アド
レスアクセスを説明するための図である。
【図55】本実施例においてグローバルデータメモリア
クセスを説明するための図である。
【図56】本実施例においてグローバルデータメモリア
クセス時のパケットの変化を説明するための図である。
【図57】本実施例においてベクトル演算を説明するた
めのデータフローグラフを示す図である。
【図58】本実施例におけるデータメモリ部の動作を説
明するためのブロック図である。
【図59】本実施例においてテストアンドセットによる
関数の排他的実行を説明するためのデータフローグラフ
を示す図である。
【図60】本実施例においてSETAG命令にて設定す
る内容を示す図である。
【図61】本実施例においてSETAG命令にて設定す
る内容を示す図である。
【図62】本実施例においてSETAG命令にて設定す
る内容を示す図である。
【図63】本実施例においてSETAG命令にて設定す
る内容を示す図である。
【図64】従来のデータ駆動形計算機の構成を示すブロ
ック図である。
【図65】従来計算機で実行するプログラム(データフ
ローグラフ)の一例を示す図である。
【図66】連続読み出しを行うプログラムの一例を示す
図(データフローグラフ)である。
【図67】データフローグラフで示されたプログラムの
メモリでの格納内容を示す図である。
【符号の説明】
IF 入出力インタフェース部 MM マッチングメモリ部 PM プログラムメモリ部 FALU 演算部 KCOPY コピー部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 浅井 文康 伊丹市瑞原4丁目1番地 三菱電機株式 会社 エル・エス・アイ研究所内 (56)参考文献 特開 昭63−111540(JP,A) 特開 昭64−25244(JP,A) 特開 平2−240784(JP,A) 特開 平3−278192(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/82 610 - 660 JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 データの入出力を行う入出力インターフ
    ェース部と、この入出力インターフェース部から入力さ
    れたデータであって、このデータに付属しているタグ情
    報の内の少なくとも行き先ノード番号が一致する2つの
    データを検出する機能を有するマッチングメモリ部と、
    このマッチングメモリ部において一致検出がなされたデ
    ータに対してデータに付属している命令コードに従って
    演算処理を施す演算部と、データに付属している行き先
    ノード番号を入力アドレスとしてメモリの内容を読み出
    し、この読み出した内容に基づいてタグ情報の内の少な
    くとも行き先ノード番号と命令コードの更新を行うプロ
    グラムメモリ部とを備えたデータ駆動形マイクロプロセ
    ッサであって、上記演算部と上記プログラムメモリ部を
    並列配置し、上記演算部および上記プログラムメモリ部
    で更新された情報を上記入出力インターフェース部へ送
    る構成とするとともに、データを同時並行かつ連続的に
    読み書き可能なデータメモリ部を上記演算部よりも手前
    に配置し、上記マッチングメモリ部から被演算データを
    連続的に上記データメモリ部へ読み出し、予め設定され
    ている命令コードとともに上記演算部へ送り込みベクト
    ル演算を実行することを特徴とするデータ駆動形マイク
    ロプロセッサ。
  2. 【請求項2】 マルチプロセッサ構成時には上記データ
    メモリ部を用いることにより他のプロセッサのローカル
    メモリを透過的にアクセスすることを特徴とする請求項
    1のデータ駆動形マイクロプロセッサ。
  3. 【請求項3】 上記データメモリ部に即値データを格納
    しておくことを特徴とする請求項1のデータ駆動形マイ
    クロプロセッサ。
  4. 【請求項4】 マルチタスクが履歴や資源を共有すると
    き、履歴や資源を排他的に利用するように制御すること
    を特徴とする請求項1のデータ駆動形マイクロプロセッ
    サ。
  5. 【請求項5】 プログラムメモリ部の内容を読み出す命
    令と書き込む命令を用いるとともに第2オペランドを行
    き先ノード番号フィールドにコピーする命令を用いるこ
    とにより、動的負荷分散処理を行うことを特徴とする請
    求項1のデータ駆動形マイクロプロセッサ。
  6. 【請求項6】 外部データメモリ接続用ポート及び外部
    プログラムメモリ接続用ポートを介して巡回しているパ
    ケットの内容をモニタすることを特徴とする請求項1の
    データ駆動形マイクロプロセッサ。
JP12233891A 1991-01-09 1991-04-24 データ駆動形マイクロプロセッサ Expired - Fee Related JP2766404B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP12233891A JP2766404B2 (ja) 1991-02-12 1991-04-24 データ駆動形マイクロプロセッサ
US07/819,164 US5404553A (en) 1991-01-09 1992-01-02 Microprocessor and data flow microprocessor having vector operation function
US08/330,880 US5666535A (en) 1991-01-09 1994-10-28 Microprocessor and data flow microprocessor having vector operation function

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4098191 1991-02-12
JP3-40981 1991-02-12
JP12233891A JP2766404B2 (ja) 1991-02-12 1991-04-24 データ駆動形マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH08212186A JPH08212186A (ja) 1996-08-20
JP2766404B2 true JP2766404B2 (ja) 1998-06-18

Family

ID=26380500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12233891A Expired - Fee Related JP2766404B2 (ja) 1991-01-09 1991-04-24 データ駆動形マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2766404B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827386B2 (en) * 2003-06-30 2010-11-02 Intel Corporation Controlling memory access devices in a data driven architecture mesh array

Also Published As

Publication number Publication date
JPH08212186A (ja) 1996-08-20

Similar Documents

Publication Publication Date Title
US5666535A (en) Microprocessor and data flow microprocessor having vector operation function
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US5113339A (en) Data processor for detecting identical data simultaneously coexisting in a plurality of data sections of data transmission paths
US5251306A (en) Apparatus for controlling execution of a program in a computing device
TWI525537B (zh) 具有為向量衝突指令與置換指令所共享的全連接互連的處理器
US3943494A (en) Distributed execution processor
JPH0786845B2 (ja) データ処理装置
US4348724A (en) Address pairing apparatus for a control store of a data processing system
US5586289A (en) Method and apparatus for accessing local storage within a parallel processing computer
US5117499A (en) Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JP2766404B2 (ja) データ駆動形マイクロプロセッサ
EP0797803B1 (en) Chunk chaining for a vector processor
EP0374598B1 (en) Control store addressing from multiple sources
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
JPH0793152A (ja) マイクロプロセッサ制御装置
JP2001297074A (ja) データ駆動型情報処理装置の実行制御装置
US4348723A (en) Control store test selection logic for a data processing system
JPH0330175B2 (ja)
JP2765882B2 (ja) 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
JPH01211126A (ja) データ駆動型データ処理装置
JP2594091B2 (ja) データ駆動型データ処理装置
JP3102399B2 (ja) データ処理装置及び方法
JP2594092B2 (ja) データ駆動型データ処理装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080403

Year of fee payment: 10

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

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20090403

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

Free format text: PAYMENT UNTIL: 20090403

Year of fee payment: 11

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

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20090403

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

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20090403

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

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20090403

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

Year of fee payment: 12

Free format text: PAYMENT UNTIL: 20100403

LAPS Cancellation because of no payment of annual fees