JP2000163384A - 半導体装置 - Google Patents

半導体装置

Info

Publication number
JP2000163384A
JP2000163384A JP10334614A JP33461498A JP2000163384A JP 2000163384 A JP2000163384 A JP 2000163384A JP 10334614 A JP10334614 A JP 10334614A JP 33461498 A JP33461498 A JP 33461498A JP 2000163384 A JP2000163384 A JP 2000163384A
Authority
JP
Japan
Prior art keywords
processor
data
semiconductor device
minimum value
maximum value
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.)
Granted
Application number
JP10334614A
Other languages
English (en)
Other versions
JP2969115B1 (ja
Inventor
Tatsuo Ochiai
辰男 落合
Mamoru Sugie
衛 杉江
Yasuhiro Inagami
泰弘 稲上
Hideaki Koizumi
英明 小泉
Takuo Okabashi
卓夫 岡橋
Atsushi Takeuchi
淳 竹内
Takashi Yokoi
横井  隆
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33461498A priority Critical patent/JP2969115B1/ja
Application granted granted Critical
Publication of JP2969115B1 publication Critical patent/JP2969115B1/ja
Publication of JP2000163384A publication Critical patent/JP2000163384A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】同一の半導体装置上の複数のプロセッサが有す
る複数の比較対象データの内の最大値/最小値を有する
プロセッサを効率的かつ高速に検出可能にする 【解決手段】各プロセッサ200からそこに記憶された
比較対象データを他の複数のプロセッサに出力データ内
部共通バス118、セレクタ111、112、入力デー
タ内部共通バス119を介して放送させる。各プロセッ
サ200内の演算器が、他のプロセッサから放送された
複数の比較対象データのそれぞれと、そのプロセッサに
記憶された比較対象データとの大小を比較する比較演算
を実行し、それぞれ上記複数の比較対象データに対応す
る複数の比較結果信号を生成する。最大値最小値プロセ
ッサ検出回路350が、これらの比較結果信号に基づい
て、最大値/最小値プロセッサを検出しそのアドレスを
生成する。プロセッサ選択回路300の制御の下でこの
アドレスと最大値/最小値を外部に転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ニューラルネット
ワークなどの並列アルゴリズムを処理するための並列計
算機の構成に適した、複数のプロセッサを搭載した大規
模集積回路(LSI)からなる半導体装置に関する。
【0002】
【従来の技術】並列計算機の1つの種類は、SIMD
(Single Instruction Stream, Multiple Data Stream
−単一命令ストリーム・複数データストリーム)型並列
計算機であり、その種の並列計算機は、複数のプロセッ
サとその複数のプロセッサで単一の命令を実行させる制
御系と、複数のプロセッサおよびそれらの間でデータを
通信するための相互結合網から成る。たとえば、「情報
処理」第33巻 第9号(情報処理学会、平成4年9月
15日発行)に記載の「SIMD上の並列アルゴリズ
ム」参照。制御装置から上記複数のプロセッサには単一
の命令が逐次的に与えられ、各プロセッサはそれぞれ内
に持つ局所メモリに格納されたそれぞれに固有のデータ
を利用してそれぞれの命令を実行していく。プロセッサ
間のデータ転送が必要な場合は相互結合網を介して行わ
れる。
【0003】このようなSIMD型並列計算機の実用例
としては、ニューラルネットワーク(神経回路網)を模
倣した動作の高速処理を実現した高速ニューロコンピュ
ータシステムがある。たとえば「日立マイコン技法」第
8巻、第1号((株)日立マイコンシステム 平成6年
4月21日発行)参照。ここでは、複数のボードに、そ
れぞれ同一のプロセッサを複数集積した大規模集積回路
(LSI)を複数搭載し、全プロセッサが、共通のバス
を介して制御装置に接続されている。各プロセッサはニ
ューロン(神経細胞もしくは神経繊維)の動作を模倣す
るのに使用されている。
【0004】このような構成では、より多くのプロセッ
サを含む並列計算機は、半導体装置の数を増大して実現
される。このように、複数のプロセッサを搭載した半導
体装置は並列計算機のプロセッサアレイを構成する基本
単位になる。
【0005】ところで、上記SIMD型並列計算機によ
るニューラルネットワークの処理では、複数のプロセッ
サで異なるデータに対して同じ処理を実行させた後に、
それぞれのプロセッサにより計算された複数の算出デー
タの内の最大値と最小値を検出する必要が生じることが
ある。例えば学習ベクトル量子化法(Learning Vector
Quantization−LVQ)アルゴリズムでは、学習毎にこ
の検出を行う。上記ニューロコンピュータシステムで
は、制御系の装置内に最大値最小値検出回路が設けら
れ、全プロセッサから順次上記の算出データをバスを介
して転送し、上記最大値最小値検出回路により上記最大
値と最小値を検出していた。
【0006】
【発明が解決しようとする課題】しかしながら、このよ
うな方法では、プロセッサの数だけのデータ転送を要
し、少なくともプロセッサ数の処理ステップが必要であ
り、最大値あるいは最小値の検出に時間が掛かる。とく
に、上記学習ベクトル量子化法アルゴリズムをニューロ
コンピュータに実行させた場合には、学習時間がニュー
ロン数に比例して増大し、この検出時間の増大がニュー
ロコンピュータの実用上問題であることが本発明者達に
より実験の結果判明した。
【0007】本発明の目的は、最大値、最小値を持つプ
ロセッサの検出を効率的にかつ高速に実行させるのに適
した、複数のプロセッサを搭載した半導体装置を提供す
ることにある。
【0008】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述および添付図面から明らかになる
であろう。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、大規模集積回路(LSI)からなる半
導体装置上に、複数のプロセッサが設けられ、各プロセ
ッサ内の演算器が、複数のプロセッサから放送された複
数の比較対象データのそれぞれと、そのプロセッサに記
憶された比較対象データとの大小を比較する比較演算を
実行し、比較結果信号を出力するように構成される。さ
らに、各プロセッサ内の上記演算器が出力する上記比較
結果信号に応答して、上記放送された複数の比較対象デ
ータの内の最大値を保持する最大値プロセッサと最小値
を保持する最小値プロセッサの内の少なくとも一方を検
出するための検出回路が上記半導体装置内に設けられ
る。
【0010】この結果、その半導体装置内で、最大値プ
ロセッサと最小値プロセッサの内の少なくとも一方を検
出できる。この検出がプロセッサ間での比較対象データ
の放送という簡単な操作により実現される。
【0011】本発明のより具体的な態様では、各プロセ
ッサ内の演算器が出力する比較結果信号は、そのプロセ
ッサに記憶された比較結果データの方が大きいことを有
意とする非最小値信号と、そのプロセッサに記憶された
比較結果データの方が小さいことを有意とする非最大値
信号との内の少なくとも一方とされる。上記検出回路に
は、最小値プロセッサの候補か否かの状態を示すフラグ
を記憶する最小値フラグ記憶手段と、最大値プロセッサ
の候補か否かの状態を示すフラグを記憶する最大値フラ
グ記憶手段との内の少なくとも一方が、上記複数のプロ
セッサのそれぞれ1つに対応するように複数設けられ
る。各最小値フラグ記憶手段は、最小値プロセッサの検
出に先立ち任意状態に設定可能であって、最小値プロセ
ッサの検出では非最小値信号の有意のみに応答してフラ
グを最小値プロセッサの候補でない状態にするように構
成される。各最大値フラグ記憶手段は、最大値プロセッ
サの検出に先立ち任意状態に設定可能であって、最大値
プロセッサの検出では非最大値信号の有意のみに応答し
てフラグを最大値プロセッサの候補でない状態にするよ
うに構成される。これらによって、各プロセッサが複数
のプロセッサから順次放送された複数の比較対象データ
に対してそれぞれ逐次的に上記比較演算および上記比較
結果信号を出力した結果、上記複数の最小値フラグ記憶
手段の内でフラグが最小値プロセッサの候補である状態
を示しているものに対応するプロセッサを最小値プロセ
ッサとして検出することができる。または、上記複数の
最大値フラグ記憶手段の内でフラグが最大値プロセッサ
の候補である状態を示しているものに対応するプロセッ
サを最大値プロセッサとして検出することができる。
【0012】また、上記複数のプロセッサから順次比較
対象データを放送させるために、上記複数のプロセッサ
を順次選択できるプロセッサ選択回路が設けられる。こ
の回路は、たとえば半導体装置の外部から順次供給され
るアドレスに従って上記順次選択を実行することができ
る。
【0013】このような半導体装置を複数使用して並列
計算機を構成した場合、それらの複数の半導体装置が並
列に最大値プロセッサあるいは最小値プロセッサの少な
くとも一方を検出できる。
【0014】たとえば、並列計算機全体での最大値プロ
セッサあるいは最小値プロセッサの少なくとも一方を検
出するには、たとえば、それぞれの半導体装置毎により
検出された複数の最大値の内の最大値あるいはそれぞれ
の半導体装置毎により検出された複数の最小値の内の最
小値を検出すればよい。この検出はたとえば外部の装置
により実行できる。したがって、従来は、半導体装置内
のプロセッサ数とその半導体装置数との積(換言すれば
並列計算機内の全プロセッサ数)に等しい処理ステップ
数を必要としていた、並列計算機全体の最大値プロセッ
サあるいは最小値プロセッサの検出に掛る処理時間が、
本発明によって、半導体装置内のプロセッサ数とその半
導体装置数との和に等しい処理ステップ数とすることが
できるので、並列計算機全体での検出を高速に行える。
【0015】本発明のより具体的な態様では、並列計算
機全体の最大値プロセッサあるいは最小値プロセッサの
検出を半導体装置の外部の装置で検出可能なように、半
導体装置内で検出された最大値プロセッサあるいは最小
値プロセッサのアドレスを生成するアドレス生成手段が
上記検出回路に設けられる。上記プロセッサ選択回路
に、このアドレスに基づいて、半導体装置内で検出され
た最大値プロセッサあるいは最小値プロセッサを選択す
る回路が設けられる。この選択されたプロセッサに記憶
された比較対象データを半導体装置の外部に出力する手
段も設けられる。また、上記アドレス生成手段により生
成されたアドレスを半導体装置の外部に出力する手段も
設けられる。
【0016】本発明のより望ましい態様では、各プロセ
ッサ内に、そのプロセッサが比較対象のプロセッサであ
るか否かを記憶して指示する指示手段が設けられ、この
指示手段が比較対象でないと指示するプロセッサは、上
記最大値プロセッサまたは最小値プロセッサの検出対象
から除外されるように構成されている。すなわち、各プ
ロセッサの比較対象データを送出する上記手段は、対応
するプロセッサが比較対象でないとき、そのプロセッサ
に記憶された比較対象データに代えて無効な比較対象デ
ータを送出するように構成され、各プロセッサの演算器
は、無効な比較対象データに対する比較演算を実行した
ときには、有意でない比較結果信号を出力する。また、
比較対象でないプロセッサに対応する上記最小値フラグ
記憶手段あるいは上記最大値フラグ記憶手段は、最小値
プロセッサの候補でない状態あるいは最大値プロセッサ
の候補でない状態に予め設定可能である。したがって、
比較対象でないプロセッサに対応する比較結果信号、お
よび上記最小値フラグ記憶手段あるいは上記最大値フラ
グ記憶手段は、検出回路による検出には影響しない。
【0017】このような望ましい態様の半導体装置を複
数使用して並列計算機を構成した場合、いずれかの半導
体装置内の全プロセッサが比較対象でないことが生じ
る。その場合、並列計算機全体の最大値プロセッサある
いは最小値プロセッサの検出をこれらの半導体装置の外
部の装置で検出するときに、そのような半導体装置での
最大値プロセッサあるいは最小値プロセッサの検出結果
は有効でない。このため、半導体装置には、無効な最大
値あるいは最小値を半導体装置の外部に出力する手段
と、最大値プロセッサの無効なアドレスを半導体装置の
外部に出力する手段も設けられる。
【0018】なお、複数の半導体装置を使用して並列計
算機を構成した場合、並列計算機全体の最大値プロセッ
サあるいは最小値プロセッサの検出をこれらの半導体装
置の外部の装置で検出する代わりに、これらの半導体装
置により検出可能にする本発明の他の態様も開示され
る。
【0019】
【発明の実施の形態】以下、本発明に係る半導体装置と
それを用いた並列計算機を図面に示した実施の形態を参
照してさらに詳細に説明する。
【0020】(1)システムの概略 ここで、まず、生体の脳神経細胞(脳神経線維)すなわ
ちニューロンとその工学的モデルについて説明する。生
体のニューロンは、例えば複数の樹状突起から複数の入
力を受け、単一の軸索から単一の出力を形成する。当該
ニューロンの樹状突起は、他のニューロンの軸索とシナ
プスで結合される。このシナプス結合には個々に重み値
(シナプス荷重)を有し、入力と重み値との累積加算結
果があるしきい値を超えたとき軸索にパルスが形成され
る。重み値は学習機能によって漸次変化される。このよ
うなニューロンの工学的なモデルにおいて、ニューロン
は多入力一出力の構成とされ、他のニューロンからの出
力(X1〜Xn)と自分自身の重み値(W1〜Wn)を
累積加算して、これにニューロンが固有に有するしきい
値(θ)を加算した後、内部応答関数Fで変換した値Y
を出力する。例えば前記内部応答関数Fは、正(累積加
算結果がしきい値(−θ)を超えたことを意味する)の
ときに論理値“1”の信号を形成するステップ関数ある
いは、連続な非線形関数としてのシグモイド関数であ
る。生体では、そのような多数のニューロンが複雑に結
合(ネットワーク化)してニューロネットワークを構成
し、並列分散処理を行っている。
【0021】図1には、上記ニューロンの動作を計算し
て、この複雑をデータ通信で結合することでニューロネ
ットワークを模倣した演算を実現するためのニューロコ
ンピュータの一例を示す。ニューロコンピュータは、S
IMD型並列計算機による情報処理システム400とし
て構成される。600はSIMD型並列計算機を操作す
るホストコンピュータである。情報処理システム400
では、制御装置500と、互いに同一の構造の複数
(m)個の半導体装置100とが含まれる。これらの装
置を接続する相互結合網は、命令外部共通バス401、
入力データ外部共通バス402および出力データ外部共
通バス403よりなる。システム400には、制御装置
500に接続されたプロセッサアドレスバス404と、
そのバスと全半導体装置100に接続された半導体装置
アドレスデコーダ407とをさらに有する。
【0022】図2に示すように、各半導体装置100
は、それぞれ単一のLSIからなる同一の構造の複数
(n)個のプロセッサ200を含む。それらを接続する
相互結合網は、命令内部共通バス110、出力データ内
部共通バス118および入力データ内部共通バス119
とを含む。各半導体装置100には、命令デコーダ10
9、最大値最小値プロセッサ検出回路350、プロセッ
サ選択回路300、フォーマット変換回路102、10
3等がさらに設けられている。
【0023】図3に示すように、各々のプロセッサ20
0は、前記重み値などを記憶するローカルメモリと演算
器などを有し、1つのニューロンの動作を模倣する。前
記シグモイド関数に代表されるような演算手順を規定す
る命令は、命令外部共通バス401を介して半導体装置
100に取り込まれ、命令デコーダ109、命令内部共
通バス110を介してプロセッサ200に与えられる。
個々のプロセッサ200への入力は入力データ内部共通
バス119を介して与えられる。この入力データ内部共
通バス119への入力データは、半導体装置100の外
部の入力データ外部共通バス402から与えられること
ができる。命令および入力データはブロードキャスト転
送によって行われる。すなわち、全てのプロセッサ20
0に並列的に命令および入力データが与えられる。な
お、入力データに関しては、プロセッサ200の中から
選択された一群のグループ化されたプロセッサだけに与
えるようにすることを妨げるものではない。プロセッサ
200の出力は何れか1つが選択されて出力データ内部
共通バス118に与えられる。出力データ内部共通バス
118に与えられたデータは、半導体装置100の外部
の出力データ外部共通バス403に出力することができ
る。その出力したデータを制御装置500によって入力
データ外部共通バス402に出力することにより、再び
全半導体装置100内の全プロセッサ200にブロード
キャスト転送されて演算することができる。そして、ま
た1つのプロセッサの演算結果が選択されて出力データ
内部共通バス118に出力されるような入力データのブ
ロードキャスト転送と、転送された入力データに対する
1つのプロセッサによる演算結果の選択という動作をサ
イクリックに繰り返すことにより、ニューロンの所望と
する結合を模倣したニューラルネットワークの演算を行
うことができる。
【0024】このときの各々のプロセッサ200におけ
る重み値は予め制御装置500により初期設定されてい
る。前記一連の演算によって特定のプロセッサから得ら
れた演算結果は例えば期待値と比較され、その誤差を相
殺するようにプロセッサの重み値を修正して学習を行う
プロセッサ200の演算内容や演算結果の選択および学
習の手法は例えば制御装置500に格納されたプログラ
ムによって決定される。入力データ外部共通バス402
を介して初期的に半導体装置100の各プロセッサ20
0にブロードキャスト転送されるデータは例えばホスト
コンピュータ600から予め制御装置500にダウンロ
ードされたデータとされる。
【0025】上記ニューロコンピュータで演算されるニ
ューロアルゴリズムは、上記ニューロンの工学的なモデ
ルに限定されるものでなく、自己組織化モデルやLVQ
アルゴリズムも可能である。自己組織化モデルは、生体
の脳が持つ自己組織化機能を実現するものである。ニュ
ーロンとしてのプロセッサを例えば2次元の格子状に論
理的に配置されるように意味づけ、各ニューロンの重み
値を参照ベクトルとする。外部から特徴ベクトルとして
の入力パターンを与え、全ニューロンは個々に持つ参照
ベクトルとの距離(ユークリッド距離)を計算する。こ
の距離が最小のニューロン(あるいはその近傍に配置さ
れたニューロンを含めて)は、参照ベクトルがさらに上
記特徴ベクトルに近くなる(前記距離が小さくなる)よ
うに上記参照ベクトルを更新する。この手順を、特徴付
けたい種類数の入力パターンについて繰り返すことによ
り、上記入力パターン群に含まれる特徴が自己組織化的
に前記ニューロン群の配置に特徴マップとして獲得でき
るとされる。すなわち、任意入力パターンの入力に対す
る全プロセッサの出力(前記距離の小ささ)のパターン
が、上記入力パターンの特徴としてプロセッサの論理的
な配置に位置づけられて表現される。
【0026】図4のニューロコンピュータにおいて、入
力パターンの各要素は制御装置500から入力データ外
部共通バス402を介して時分割に半導体装置100の
全プロセッサにブロードキャストされる。各プロセッサ
は、重み値メモリ内の参照ベクトルの各要素との差の自
乗を逐次的に演算しベクトルの次元数分を累積加算して
いく。そして、全プロセッサは並列に前記累積加算結果
の平方根を計算して、各プロセッサの参照ベクトルと特
徴ベクトルとの距離としての結果データを生成する。制
御装置500は、全プロセッサの内から最小値となる距
離としての結果データを生成したプロセッサを特定し、
そのプロセッサだけ(あるいはその近傍に配置されたプ
ロセッサを含めて)が参照ベクトルをさらに上記特徴ベ
クトルに近づける(前記距離を小さくする)ように上記
参照ベクトルを更新させる命令を、命令外部共通バスを
介して与える。上記一連の動作をサイクリックに繰り返
すことで上記自己組織化モデルの特徴マップ実現の演算
が為される。
【0027】本実施の形態は、最大値最小値プロセッサ
検出回路350により、その半導体装置100内の全プ
ロセッサが生成した複数の結果データの内の最小値(装
置内最小値)さらには最大値(装置内最大値)をそれぞ
れ生成した装置内最小値プロセッサおよび装置内最大値
プロセッサを検出するところに特徴がある。この検出
は、全半導体装置100に対して並列に行われるため、
高速に実行される。
【0028】具体的には、この検出は以下のようにして
行う。制御装置500は、各半導体装置100内の複数
のプロセッサに、順次それぞれが生成した結果データを
同じ半導体装置内の他のプロセッサに出力データ内部共
通バス118、セレクタ111、入力データ内部共通バ
ス119を介して放送させる。各プロセッサでは自己が
生成した結果データとこの放送された結果データとを比
較する演算器を有し、その演算器により出力される比較
結果信号をその各半導体装置100内の最大値最小値プ
ロセッサ検出回路350に送出する。この比較結果信号
はたとえば前者が大きいこと(換言すれば自己は最小値
でないこと)を有意とする非最小値信号と、前者が小さ
いこと(換言すれば自己は最大値でないこと)を有意と
する非最大値信号からなる。最大値最小値プロセッサ検
出回路350は、各プロセッサから供給される複数の比
較結果信号により、その半導体装置内の各プロセッサが
最大値プロセッサ(装置内最大値プロセッサ)であるか
最小値プロセッサ(装置内最小値プロセッサ)であるか
を判別する。
【0029】このようにして各半導体装置内の最大値プ
ロセッサ、最小値プロセッサが検出された後は、情報処
理システム400内の全プロセッサが生成した全結果デ
ータの内の最大値(システム最大値)、最小値(システ
ム最小値)とそれぞれを生成したプロセッサ(システム
最大値プロセッサおよびシステム最小値プロセッサ)の
検出は、たとえば次のようにして行うことができる。制
御装置500には、最大値最小値検出回路608(図
6)が設けられる。たとえばシステム最小値とそれを生
成したプロセッサを検出する場合、制御装置500は、
全半導体装置100内の最大値最小値プロセッサ検出回
路350が検出した装置内最小値プロセッサが生成した
比較対象データを出力データ外部共通バス403を介し
て制御装置500に送出させる。制御装置500内の最
大値最小値検出回路608がこれらの比較対象データを
順次比較してシステム最小値とそれを生成した半導体装
置100を判別する。各プロセッサには予め1対1にア
ドレス情報(以下、プロセッサアドレスと呼ぶ)が割り
当てられている。制御装置500は、その判別された半
導体装置100を選択し、その中の装置内最大値プロセ
ッサのプロセッサアドレスの送出をその半導体装置10
0に要求し、その半導体装置から送出されたプロセッサ
アドレスでもって、システム最小値プロセッサを識別す
ることができる。システム最大値とそれを生成したシス
テム最大値プロセッサを判別するときも同様である。
【0030】また、半導体装置100は、図1のニュー
ロコンピュータによる上記ニューラルネットワークの演
算が浮動小数点フォーマットと固定小数点フォーマット
のデータを混在した場合であっても、各データフォーマ
ット間の変換が効率的にできるように考慮されている。
図2ではその一例として、1つのプロセッサの出力を、
出力データ内部共通バス118を介して、フォーマット
変換回路102あるいは103でフォーマット変換して
入力データ内部共通バス119を介して再びプロセッサ
に戻すことができる。また、外部から与えられるデータ
を、フォーマット変換回路102を介してプロセッサ2
00に与えることができる。また、1つのプロセッサの
出力を、フォーマット変換回路103を介して外部に出
力することができる。図1のニューロコンピュータは、
半導体装置100で並列に上記変換が可能である。ま
た、半導体装置100には、浮動小数点フォーマットの
演算に固定小数点フォーマットのデータを与えることが
できる。また、半導体装置100の浮動小数点フォーマ
ットのデータを固定小数点フォーマットのデータとして
取り出すことができる。
【0031】以下、情報処理システム400の詳細を説
明する。
【0032】(2)制御装置500 図5に示すように、制御装置500には、制御記憶装置
513、データ記憶装置514、プログラム実行制御回
路515およびホストインタフェース制御回路516が
含まれる。制御記憶装置513はRAM等の書き換え可
能なメモリで構成され、複数の半導体装置100を用い
て行う演算およびその演算に必要な制御装置500の制
御の手続きを示すプログラムが格納される。データ記憶
装置514は、やはりRAM等の書き換え可能なメモリ
で構成され、プログラムで用いられるデータが格納され
る。プログラムの実行制御はプログラム実行制御回路5
15によって行われる。ホストインタフェース制御回路
516は、端子517を介して情報処理システム400
とホストコンピュータ600の間で通信を行うためのイ
ンタフェースである。プログラム実行制御回路515
は、命令外部共通バス401、入力データ外部共通バス
402、出力データ外部共通バス403によって全半導
体装置100に共通に接続されている。プログラム実行
制御回路515はさらにプロセッサアドレスバス404
を介して半導体装置アドレスデコーダ407(図1)に
接続されている。
【0033】ホストコンピュータ600は、ユーザイン
タフェース部であり、ユーザの操作に呼応して情報処理
システム400の設定および実行コマンドの発行などを
行う。制御装置500に対するマイクロプログラムの設
定、演算データの設定、プログラムの実行および結果デ
ータの取り出しは、ユーザの操作に呼応して行われる。
ユーザの操作は、コマンドとしてホストコンピュータ6
00からホストインタフェース制御回路516に発行さ
れ、プログラム実行制御回路515で実行される。例え
ば、ユーザの操作が環境設定操作のとき、ホストコンピ
ュータ600はホストインタフェース制御回路516と
の通信によって、プログラム実行制御回路515に環境
設定コマンドを発行する。プログラム実行制御回路51
5は、このコマンドに呼応して、例えばマシン語に翻訳
されたプログラムを制御記憶装置513に、また演算デ
ータや変数の初期値データ等をデータ記憶装置514に
それぞれ転送するように制御装置500全体を制御す
る。また、例えば、ユーザの操作が実行開始操作のと
き、ホストコンピュータ600はホストインタフェース
制御回路516との通信によって、プログラム実行制御
回路515に実行開始コマンドを発行する。プログラム
実行制御回路515は、このコマンドに呼応して、制御
記憶装置513に格納されたプログラムに従って逐次的
に実行を開始するように情報処理システム400全体を
制御する。本実施の形態ではニューロコンピュータのた
めのプログラムが使用される。
【0034】図6にはプログラム実行制御回路515の
概略内部ブロックが示される。図において、コマンド実
行制御回路601は、プログラム実行制御回路515全
体を制御して、ホストインタフェース制御回路516を
介してホストコンピュータ600から受け取ったコマン
ドを実行する。コマンド実行制御回路601は、制御装
置内部バス609によって、シーケンサ回路604、デ
ータ記憶装置制御回路605、バス制御回路606、ア
ドレス制御回路607および最大値最小値検出回路60
8を制御可能なように構成されている。シーケンサ回路
604は、内部にパラメータレジスタとしてのプログラ
ムカウンタ(PC)を持ち、コマンド実行制御回路60
1からの実行要求を受けて、マイクロ命令の読み出しを
命令フェッチ回路602に指示し、それと同時に、その
プログラムカウンタをインクリメントして次のマイクロ
命令の読み出しに備える。命令フェッチ回路602は、
そのプログラムカウンタが指し示すマイクロプログラム
の一つのマイクロ命令を制御記憶装置513から信号6
14を介して読み出し、命令デコード回路603に出力
する。また、命令フェッチ回路602は、コマンド実行
制御回路601の制御によって、制御記憶装置513か
らマイクロ命令を読み出す代わりに、コマンド実行制御
回路601から信号613を介して供給されるマイクロ
命令をフェッチした命令として命令デコード回路603
に供給することもできる。
【0035】(3)マイクロ命令 本実施の形態で使用されるのに適したマイクロ命令は水
平型のマイクロ命令である。VLIW方式のマイクロ命
令とも言える。ここでVLIW方式は複数の処理を並列
的に実行するマイクロプロセッサアーキテクチャに採用
される例えば64〜256ビットというように通常の方
式に比べて非常に長い命令フォーマットを用いる方式を
意味する。その命令は、複数のフィールドで構成され
る。そのフォーマットの一例は図7に示される。本発明
はこのフォーマットのマイクロ命令に限定されない。フ
ィールド702〜706の各々は特定のハードの制御の
みに対して使用されるのではなく、異なるハードの制御
に切り換えて使用できるようになっている。通常のマイ
クロ命令制御の装置と同じく、本実施の形態でも、各マ
イクロ命令は基本的には1マシーンサイクルで実行され
る。同一のデータに対する一連の処理が順次実行され、
かつ、その一連の処理が他のデータに対する同じ一連の
処理と並行して実行されるといういわゆるパイプライン
制御でもって複数のマイクロ命令が実行される。各フィ
ールドあるいはそこに含まれる後述する複数のサブフィ
ールドの各々を命令と呼ぶことがある。
【0036】フィールド701はセルフコントロールフ
イールドであり、フィールド702〜706の意味を変
更するものである。命令デコード回路603は、フィー
ルド701の内容に応じて他のフィールドを解釈する。
【0037】フィールド702は実行フロー制御フィー
ルドであり、シーケンサ回路604を制御する。命令デ
コード回路603はそのフィールドの内容に従ってジャ
ンプ命令、条件分岐命令あるいは実行終了命令などを実
行するようにシーケンサ回路604を制御する。シーケ
ンサ回路604は、ジャンプ命令の場合、命令デコード
回路603の制御に従って、プログラムカウンタの内容
をジャンプ先とする。このとき、サブルーチンコール命
令など、プログラムカウンタを復帰する必要がある場合
は、その復帰に必要な情報をスタッカーに退避し、復帰
命令の場合は、その退避した情報をそのスタッカーより
復帰させる。また、実行終了命令あるいは不当命令の場
合には、命令デコード回路603はコマンド実行制御回
路601に割り込み信号を発生し、ホストインタフェー
ス制御回路516を介してホストコンピュータ600に
通知する。
【0038】フィールド703は演算制御フィールドで
あり、各半導体装置100内の各プロセッサ内の演算器
あるいは各半導体装置100内のプロセッサ選択回路3
00、最大値最小値プロセッサ検出回路350等の各半
導体装置100内の回路を制御するフィールドである。
このフィールドには複数の演算あるいは動作を指定する
複数のサブフィールドが含まれる。命令デコード回路6
03はそのフィールドを切り出し、命令外部共通バス4
01に出力する。各プロセッサにより複数の演算を指定
する演算命令として主に処理されるので、以下では、こ
の切り出されたフィールド703内の各サブフィールド
を演算命令と呼ぶことがある。そのサブフィールドがプ
ロセッサ選択回路300等の半導体装置100内部にあ
るがプロセッサ200の外部にある回路の動作を制御す
るときも、そのサブフィールドを演算命令と呼ぶことが
ある。また、各サブフィールドが指定する特定の演算、
たとえば比較演算を引用して、そのサブフィールドをた
とえば比較演算命令と呼ぶことがある。なお、各半導体
装置100に同一マイクロ命令内の複数のフィールドあ
るいはサブフィールドが供給されるときには、それらの
全ビットは並行して命令外部共通バス401により供給
される。
【0039】フィールド704は出力データ制御フィー
ルドであり、出力データ外部共通バス403に出力する
データを制御するもので、命令デコード回路603はそ
のフィールドを命令外部共通バス401に出力する。こ
のフィールドは、各半導体装置100に対してデータの
出力を指示する命令として処理されるので、以下ではデ
ータ出力指示命令とも呼ぶ。このデータ出力命令には、
後述する種々のデータ変換のいずれかを指示する命令も
含まれる。命令デコード回路603は、さらに、そのフ
ィールドの内容に従ってアドレス制御回路607を以下
のように制御する信号を生成する。アドレス制御回路6
07は、パラメータレジスタとしてのプロセッサアドレ
スポインタ(図示せず)と、そのプロセッサアドレスポ
インタの制御回路(図示せず)を含み、命令デコード回
路603の制御に従ってプロセッサアドレスポインタ
(図示せず)に対して、インクリメント、デイクリメン
トあるいは制御装置内部バス609上のデータの設定等
を行ない、そのプロセッサアドレスポインタの内容をプ
ロセッサアドレスバス404に出力する。このプロセッ
サアドレスは、データを出力データ外部共通バス403
に出力すべきいずれかの半導体装置100を指定する。
【0040】フィールド705はデータ制御フィールド
であり、データ記憶装置514(図5)へのアクセスを
行うデータ記憶装置制御回路605(図6)を制御す
る。命令デコード回路603はそのフィールドの内容に
従ってデータ記憶装置制御回路605を制御して以下の
動作を実行させる。データ記憶装置制御回路605は、
パラメータレジスタとしてのデータ記憶装置アドレスポ
インタ(図示せず)とそのデータ記憶装置アドレスポイ
ンタの制御回路(図示せず)を含み、命令デコード回路
603の制御に従ってデータ記憶装置アドレスポインタ
に対して、インクリメント、デイクリメントまたは制御
装置内部バス609上のデータの設定等を行なう。ま
た、命令デコード回路603の制御に従ってデータ記憶
装置アドレスポインタの指し示すデータ記憶装置内のア
ドレスに基づいて、データ記憶装置514からデータを
バス614へ読み出し、またはバス611上のデータを
データ記憶装置514に書き込む。バス612上に読み
出されたデータはバス制御回路606を介して制御装置
内部バス609に転送されるかもしくは入力データ外部
共通バス402に転送され各半導体装置100に放送さ
れる。データ記憶装置514に書き込むべきバス611
上のデータは、バス制御回路606を介して制御装置内
部バス609から転送されるかもしくは入力データ外部
共通バス402を介していずれかの半導体装置100か
ら転送される。
【0041】フィールド706はデータバス制御フィー
ルドであり、命令デコード回路603はそのフィールド
の内容に従ってバス制御回路206を制御する。バス制
御回路206は、入力データ外部共通バス402、出力
データ外部共通バス403およびデータ記憶装置514
に対する入出力バス611、612と制御装置内部バス
609の接続を制御する回路である。図8には、バス制
御回路206の内部ブロックが示される。図において、
セレクタ820〜822は、命令デコード回路603か
らの制御信号610に従って以下の動作を行う。セレク
タ820は、出力データ外部共通バス403上のデータ
またはデータ記憶装置514の出力バス612上のデー
タを選択し、ラッチ回路830を介して入力データ外部
共通バス402に転送する。セレクタ821は、出力デ
ータ外部共通バス403上のデータまたは制御装置内部
バス609上のデータを選択し、ラッチ回路831を介
してデータ記憶装置514への入力バス611に転送す
る。セレクタ822は、命令デコード回路603からの
制御信号610に従って、出力データ外部共通バス40
3上のデータまたはデータ記憶装置514の出力バス6
12上のデータを選択してラッチ回路832、トライス
テートバッファ834を介して制御装置内部バス609
に出力する。
【0042】したがって、セレクタ820により、デー
タ記憶装置514からバス612に読みだされたデータ
を出力データ外部共通バス403を介して全ての半導体
装置100に放送することが出来る。さらにこのセレク
タ820により、特定の半導体装置100から出力デー
タ外部共通バス403に出力されたデータを入力データ
外部共通バス402に送り、このデータを全ての半導体
装置100にプロードキャストすることが可能になる。
また、いずれかの半導体装置100内のいずれかのプロ
セッサ200により生成され、出力データ外部共通バス
403に送出された、システムが目的とする最終的な演
算結果データを、セレクタ821によりバス611を経
由してデータ記憶装置514に格納することができる。
【0043】(4)半導体装置 図2に戻り、各半導体装置100では、命令デコーダ1
09は、制御装置500から命令外部共通バス401を
介して命令入力端子105に並列に供給された複数の命
令の各々をデコードし、それらの命令の内、プロセッサ
200により処理されるべき複数の命令を切り出し、命
令内部共通バス110を介して複数のプロセッサ200
に放送する。命令デコーダ109に供給された複数の命
令の中に、その半導体装置100に含まれた、プロセッ
サ200の外部の回路、たとえばセレクタ111、11
2、113またはプロセッサ選択回路300、最大値最
小値プロセッサ検出回路350の動作を必要とする命令
が含まれているときには、命令デコーダ109は、その
回路に対する複数の制御信号(以下ではこれも命令と呼
ぶことがある)を生成し、信号109Aを介してその回
路に供給する。
【0044】各プロセッサのデータ出力端子は、対応す
るトライステートバッファ121を介して出力データ内
部共通バス118に接続されている。最大値最小値プロ
セッサ検出回路350の出力もトライステートバッファ
115を介して出力データ内部共通バス118に接続さ
れている。最大値最小値プロセッサ検出回路350は、
半導体装置100内の全プロセッサ200から信号21
2を介して繰り返し供給される複数の比較結果信号によ
り、最大の比較対象データおよび最小の比較結果データ
をそれぞれ生成した最大値プロセッサおよび最小値プロ
セッサを識別し、それぞれのプロセッサのアドレスを生
成する。最大値最小値プロセッサ検出回路350は、こ
れらのアドレスをプロセッサ選択回路300に供給す
る。プロセッサ選択回路300は生成されたこれらのア
ドレスをトライステートバッファ115を介して出力デ
ータ内部共通バス118に出力可能である。
【0045】プロセッサ選択回路300は、出力データ
内部共通バス118にデータを出力すべきプロセッサを
選択するための回路である。選択に用いるプロセッサア
ドレスは、制御装置500からプロセッサアドレスバス
404、プロセッサアドレス入力端子108、信号11
4を介して供給されるプロセッサアドレスもしくは最大
値最小値プロセッサ検出回路350から供給されるアド
レスである。
【0046】セレクタ111は、制御装置500から入
力データ外部共通バス402を介して外部データ入力端
子104に供給された入力データまたは出力データ内部
共通バス118上のデータを選択してセレクタ112お
よびフォーマット変換回路102に出力する。セレクタ
112は、セレクタ111の出力データ、フォーマット
変換回路102の出力データまたはフォーマット変換回
路103の出力データを選択して、入力データ内部共通
バス119に出力する。したがって、セレクタ111、
112により、入力データ外部共通バス402から供給
された入力データだけでなく、いずれかのプロセッサ2
00が出力したデータも全プロセッサ200に放送され
る。
【0047】セレクタ113は、出力データ内部共通バ
ス118上のデータまたはフォーマット変換回路103
の出力データを選択してトライステートバッファ120
に出力する。半導体装置アドレスデコーダ407に半導
体装置選択信号入力端子107を介して半導体装置の外
部から与えられる半導体装置選択信号がアサートされた
ときに、トライステートバッファ120は、セレクタ1
13が出力するデータを外部データ出力端子106を介
して出力データ外部共通バス403に出力する。したが
って、各プロセッサが出力データ内部共通バス118に
出力したデータも最大値最小値プロセッサ検出回路35
0から出力されたプロセッサアドレスもセレクタ11
3、トライステートバッファ120、出力データ外部共
通バス403を介して制御装置500に転送できる。
【0048】なお、紙面上省略したが、半導体装置10
0の端子104〜108には、それぞれの端子に接続さ
れる外部の信号のタイミングに同期してデータの入力あ
るいは出力をするためのラッチ回路が設けられている。
また、半導体装置100内部の回路を同期して動作させ
るためのクロック信号が外部端子より供給されている。
また、紙面上省略したが、命令デコーダ109から制御
信号をセレクタ113に伝達する線路および半導体装置
選択信号入力端子107から半導体装置選択信号をトラ
イステートバッファ120に供給する線路にはこのクロ
ック信号に同期して動作する2段のラッチ回路が含まれ
ており、セレクタ113とトライステートバッファ12
0の動作タイミングがプロセッサ200がデータを出力
するタイミングに調整されている。
【0049】(5)プロセッサ 図3を参照するに、各プロセッサ200内の命令デコー
ダ209は、そのプロセッサが含まれる半導体装置10
0内のデコーダ109から命令内部共通バス110を介
して命令入力端子207から並列に入力された複数の命
令をデコードし、プロセッサ200内のそれぞれの命令
に関連する複数の回路に供給する複数の制御信号(以下
ではこれらも命令と呼ぶことがある)を並列に生成し、
信号209Aを介してそれらの回路に並列に供給する。
各プロセッサ200は、一つのニューロンの動作を模倣
するに必要な演算器を有する。ここではその演算器とし
て、乗算器202と、四則演算、簡単な論理演算とシフ
ト演算等を行う算術論理演算器(ALU)201とを含
む。メモリ203は、プロセッサ200のローカルメモ
リであり、ここではニューロンの動作を模倣する計算で
必要な重み値を主として保持するので重み値メモリと呼
ぶ。重み値メモリ203は、RAM等の書き換え可能な
メモリで構成される。重み値は予め制御装置500によ
り初期設定される。この重み値メモリ203は、命令で
指定されるアドレスについて、命令に従ってデータの読
み出しを行い、あるいは乗算器202またはALU20
1が出力したデータを書き込み可能である。重み値メモ
リ203から読み出されたデータはバス230を経由し
てALU201または乗算器202または後に説明する
セレクタ217により使用される。読み出しアドレスは
重み値メモリ読み出し命令により指定される。レジスタ
ファイル204は複数のレジスタからなり、ALU20
1または乗算器202による演算結果データを格納する
のに使用され、また、そこに保持されたデータは、バス
230を経由してALU201または乗算器202また
はセレクタ217により使用される。レジスタファイル
204からデータを読み出すレジスタあるいはデータを
書き込むべきレジスタは命令により指定される。なお、
レジスタファイル204は、複数の命令が同時に指定す
る3つアドレスの内、第1のアドレスのレジスタに対し
て書き込みを行い、第2、第3のアドレスのレジスタか
ら読み出しを行い、しかもこれらの読み出しと書き込み
を並行して実行可能である。半導体装置100の入力デ
ータ内部共通バス119を経由してデータ入力端子20
5に供給された入力データは、バス230を介して乗算
器202あるいはALU201に供給される。
【0050】乗算器202には、上記入力データ、レジ
スタファイル204から命令に従って読み出されたデー
タあるいは乗算器202が生成した乗算結果データのい
ずれかが第1のデータとして供給され、さらに、レジス
タファイル204から命令にしたがって読み出されたデ
ータと重み値メモリ203から命令に従って読み出され
たデータのいずれかが第2のデータとして供給される。
乗算器202は、これら第1、第2のデータに対して命
令に従って浮動小数点フォーマットの乗算あるいは固定
小数点フォーマットの乗算を行う。
【0051】ALU201には、上記入力データ、レジ
スタファイル204から命令に従って読み出されたデー
タあるいは乗算器202の出力データのいずれかが第1
のデータとして供給され、さらにレジスタファイル20
4から命令に従って読み出されたデータ、重み値メモリ
203から命令に従って読み出されたデータあるいはA
LU201の出力データのいずれかが第2のデータとし
て供給される。ALU201は、命令に従って浮動小数
点フォーマットの算術加減算、固定小数フォーマットの
算術加減算、論理演算またはシフト演算をこれらの第
1、第2のデータに対して行う。
【0052】レジスタファイル204には、命令に従っ
て乗算器202またはALU201の出力データが信号
232を介して書き込まれる。なお、この書き込みが行
われないこともある。同様に、重み値メモリ203にも
命令に従って乗算器202またはALU201の出力デ
ータが信号231を介して書き込まれる。なお、この書
き込みが行われないこともある。なお、ALU201の
演算結果データは、ラッチ回路221を介してバス23
0にも供給され、同様に乗算器202の演算結果データ
も、ラッチ回路222を介してバス230にも供給され
る。
【0053】全半導体装置100内の全プロセッサ20
0は、制御装置500から放送される、複数の命令から
なる一組の命令を受信し、その複数の命令を並列に実行
する。制御装置500から順次放送される複数組の命令
を同様に実行する。こうしてシステムの全プロセッサは
異なる重み値を用いて同一の処理を実行し、その結果デ
ータをレジスタファイル204あるいは重み値メモリ2
03に格納する。
【0054】各プロセッサ200から外部へのデータの
転送は以下のようにしてなされる。外部に送出すべきデ
ータは、命令に従ってレジスタファイル204もしくは
重み値メモリ203から読み出されてバス230を介し
てセレクタ217に供給される。セレクタ217は、デ
ータ出力命令にしたがって、このデータを選択し、デー
タ出力端子206を介して出力データ内部共通バス11
8に送出する。
【0055】なお、紙面上省略したが、図3において、
命令デコーダ209は、命令によって、比較対象フラグ
220に応じてプロセッサ200内の各種メモリ(レジ
スタファイル204および重み値メモリ203)の書き
換えを禁止するようになっている。また、プロセッサ2
00にはプロセッサ実行選択信号がプロセッサ200の
端子を介して入力されていて、命令によって、そのプロ
セッサ実行選択信号に応じてプロセッサ200内の各種
メモリ(レジスタファイル204および重み値メモリ2
03)の書き換えを禁止するようになっている。これに
よって、図1における命令内部共通バス110を介して
全プロセッサにブロードキャストされる命令を実行する
プロセッサの選択が可能となる。そのプロセッサ実行選
択信号は、図2において、半導体装置選択信号入力端子
107を介して入力される半導体装置選択信号がアサー
トされているときプロセッサアドレス入力端子108を
介して入力されるプロセッサアドレス信号114が指し
示すプロセッサに対応するものがアサートされるように
生成される。また、上記プロセッサの端子205〜20
8にはラッチ回路(図示せず)が含まれており、それぞ
れに接続される外部の信号のタイミングで同期してデー
タの入力あるいは出力を行うのに使用される。
【0056】(6)装置動作 以下では、情報処理システム400内で最大もしくは最
小の結果データを生成したプロセッサの検出に関連する
回路と動作の詳細を説明する。本実施の形態では、この
検出のために、まず各半導体装置100内で最大または
最小の結果データを生成した装置内最大値プロセッサあ
るいは装置内最小値プロセッサを検出する。その後、各
半導体装置100が検出した最大値あるいは最小値を制
御装置500が比較して、システム最大値あるいはシス
テム最小値を生成したプロセッサを検出する。
【0057】(6a)装置内最大値最小値の検出 まず、各半導体装置100内の最大値プロセッサまたは
最小値プロセッサの検出(以下、装置内最大値最小値プ
ロセッサの検出と呼ぶ)に関連する装置と動作(以下第
1の動作と呼ぶ)の詳細を説明する。この装置内最大値
最小値プロセッサの検出では、各半導体装置100内の
一つのプロセッサから比較対象データを読み出し、その
半導体装置100内の全プロセッサ200に放送する。
この比較対象データは、各プロセッサでの一連の処理の
結果生成されたデータである。それぞれのプロセッサに
おいて、自己が持つ比較対象データと放送された比較対
象データとを比較させる。各プロセッサは比較結果信号
を最大値最小値プロセッサ検出回路350に通知する。
この動作を比較対象データを読み出すべきプロセッサを
順次変更して繰り返す。最大値最小値プロセッサ検出回
路350は、この繰り返しにより半導体装置100内の
各プロセッサ200により生成された複数の比較結果信
号により、装置内最大値プロセッサと装置内最小値プロ
セッサを判別する。以上の動作は全半導体装置100に
より互いに並列に実行される。ここでは各プロセッサの
比較対象データは、レジスタファイル204あるいは重
み値メモリ203の何れかのプロセッサに依らない同一
の場所に格納され、浮動小数点フォーマットで表現され
たデータであると仮定する。また全半導体装置100内
の全プロセッサ200が比較対象プロセッサであると仮
定する。いずれかのプロセッサが比較対象プロセッサで
ないときの装置動作は後に説明する。
【0058】(6a−1)比較対象データ出力命令 まず、図1を参照するに、制御装置500は、全半導体
装置100に、命令外部共通バス401を介して、比較
対象データ出力命令と比較対象データの格納場所の情報
とを放送する。この情報は、レジスタファイル204と
重み値メモリ203のいずれか一方を指定する情報と、
レジスタファイル204内の読み出すべきレジスタの番
号または重み値メモリ203のデータ読み出しアドレス
とを含む。制御装置500は、同時にプロセッサアドレ
スバス404を介して比較対象データを読み出すべき一
つのプロセッサに対する装置内プロセッサアドレスを含
むプロセッサアドレスを与え、全半導体装置100に放
送する。プロセッサアドレスの上位ビットは、複数の半
導体装置100を識別するための半導体装置アドレスで
あり、プロセッサアドレスの下位ビットは、半導体装置
100内の複数のプロセッサを識別するための装置内プ
ロセッサ番号である。今の場合、供給されたプロセッサ
アドレスの内の半導体装置アドレスは各半導体装置10
0内では使用されない。なお、命令外部共通バス401
への命令の供給は、制御装置500内の命令デコード回
路603(図6)により行われ、プロセッサアドレスバ
ス404へのプロセッサアドレスの供給は、制御装置5
00内のアドレス制御回路607(図6)により行われ
る。このことは他の動作でも同じである。
【0059】図2を参照するに、各半導体装置100内
の命令デコーダ109は、その比較対象データ出力命令
をデコードして、その比較対象データ出力命令とその比
較対象データの格納場所の情報を命令内部共通バス11
0を介してその半導体装置100内の全プロセッサ20
0に放送する。また、命令デコーダ109は、その比較
対象データ出力命令をデコードしたときに、プロセッサ
選択回路300に対して制御装置500からプロセッサ
アドレスバス404、信号114を介して供給された装
置内プロセッサアドレスで指定されるプロセッサから出
力データ内部共通バス118へデータを出力させるため
の命令を生成し、プロセッサ選択回路300に出力す
る。プロセッサアドレス入力端子108に与えられたプ
ロセッサアドレスの内の装置内プロセッサアドレスは信
号114を介してプロセッサ選択回路300に供給され
る。
【0060】図3を参照するに、各プロセッサ200内
の命令デコーダ209がその命令をデコードし、比較対
象データの格納場所の上記情報でもってレジスタファイ
ル204または重み値メモリ203を選択する。レジス
タファイル204または重み値メモリ203は、選択さ
れたときに、その情報で指定される比較対象データを読
み出し、セレクタ217に与える。今の場合、全プロセ
ッサ200が比較対象プロセッサであると仮定してい
る。この場合、後述するように、比較対象フラグレジス
タ220(以下では、このレジスタに保持された比較対
象フラグも比較対象フラグ220とも呼ぶことがある)
は、いずれのプロセッサ200でもセットされている。
このときセレクタは、この読み出された比較対象データ
を選択し、データ出力端子206を介してそのプロセッ
サに対応するトライステートバッファ121(図2)に
出力する。
【0061】図4を参照するに、プロセッサ選択回路3
00は、セレクタ305、306とプロセッサ選択信号
生成回路307とを含む。プロセッサ選択回路300
は、半導体装置100内のクロック信号に同期して動作
し、プロセッサ200との実行のタイミングが調整され
るように、デコーダ109(図2)から供給される命令
の入力部(図示せず)には、1段のラッチ回路(図示せ
ず)が設けられている。このことは、最大値最小値プロ
セッサ検出回路350についても同じである。図中に記
載されたラッチ回路320、321、322、323、
324は、半導体装置100内のクロック信号に同期し
て動作し、プロセッサ選択回路300とプロセッサ20
0との実行のタイミング調整をするために設けられてい
る。
【0062】セレクタ305は、後に説明するように最
大値最小値プロセッサ検出回路350から供給される装
置内最大値プロセッサのアドレスと装置内最小値プロセ
ッサのアドレスの一方を選択するためのものである。セ
レクタ306には、制御装置500からプロセッサアド
レス入力端子108、信号114を介して供給される装
置内プロセッサアドレスとセレクタ305の出力アドレ
スが入力される。今の場合、セレクタ306は、上記命
令に応答して、命令デコーダ109から与えられた、信
号114を介して供給された装置内プロセッサアドレス
で指定されるプロセッサから出力データ内部共通バス1
18へデータを出力させるために、信号114上の装置
内プロセッサアドレスを選択する。さらに、プロセッサ
選択信号生成回路307には、セレクタ306が出力す
る装置内プロセッサアドレスと後に説明する最大値最小
値プロセッサ検出回路350内の零検出回路308、3
09の出力が入力される。プロセッサ選択信号生成回路
307は、命令デコーダ109から供給された命令に応
答して、セレクタ306からの装置内プロセッサアドレ
スが示すプロセッサに供給すべきプロセッサ選択信号を
信号122に出力するか、あるいは信号116または3
18へ供給すべき後述する信号を生成するための回路で
ある。プロセッサ選択信号生成回路307は、プロセッ
サ選択信号を生成するときには、セレクタ306からの
装置内プロセッサアドレスが示すプロセッサが比較対象
データをそのプロセッサに対応するトライステートバッ
ファ121に出力するタイミングでそのプロセッサに対
するプロセッサ選択信号をアサートし、そのトライステ
ートバッファ121に信号122を介して供給するよう
に動作する。今の場合、プロセッサ選択信号生成回路3
07は、信号114から供給された装置内プロセッサア
ドレスにより指定されるプロセッサに対するプロセッサ
選択信号をアサートする。こうして、制御装置500が
供給した装置内プロセッサアドレスで指定されるプロセ
ッサから読みだされた比較対象データが出力データ内部
共通バス118に転送される。
【0063】(6a−2)データ比較演算命令 次に、図1を参照するに、制御装置500は、全半導体
装置100に、それぞれの半導体装置100内の出力デ
ータ内部共通バス118上に読み出された比較対象デー
タとそれぞれの半導体装置100内の各プロセッサ内の
比較対象データとを比較するための浮動小数点データ比
較演算命令を放送する。
【0064】図2を参照するに、各半導体装置100内
の命令デコーダ109は、その命令をデコードして、出
力データ内部共通バス118を選択させる命令を生成
し、セレクタ111(図2)に信号109Aを介して供
給し、セレクタ111の出力を選択させる命令を生成
し、信号109Aを介してセレクタ112(図2)に供
給する。セレクタ111(図2)は、命令デコーダ10
9から供給された上記命令に応答して、出力データ内部
共通バス118上に読み出された比較対象データを選択
する。セレクタ112は、命令デコーダ109から供給
された上記命令に応答して、セレクタ111から出力さ
れた比較対象データを選択し、入力データ内部共通バス
119に供給する。こうして、選択されたプロセッサか
ら読み出された比較対象データは、出力データ内部共通
バス118、セレクタ111、112、入力データ内部
共通バス119を介して半導体装置100内の全プロセ
ッサ200に放送される。命令デコーダ109は、さら
に、入力データ内部共通バス119のデータとそのプロ
セッサ内の比較対象データとに対する浮動小数点データ
比較演算命令を命令内部共通バス110を介して全プロ
セッサ200に放送する。
【0065】図3を参照するに、各プロセッサ200で
は、データ入力端子205にいずれかのプロセッサから
読み出された比較対象データが入力され、命令デコーダ
209が上記浮動小数点データ比較演算命令をデコード
する。命令デコーダ209の制御の下で、バス230は
その比較対象データをALU201に第1のデータとし
て供給し、重み値メモリ203またはレジスタファイル
204は、先に指定された比較対象データを読み出し、
バス230はその比較対象データをALU201に第2
のデータとして供給し、ALU201は、それら二つの
比較対象データに対して比較演算を実行する。
【0066】ALU201が比較演算命令に従ってそこ
に供給された第1のデータ(A)から第2のデータ
(B)を減算して場合、演算結果が正の数になったとき
アサートされる非最小値信号215と、演算結果が負の
数になったときアサートされる非最大値信号216とい
う一対の信号からなる比較結果信号を出力する。今の場
合には、非最小値信号215は、いずれかのプロセッサ
から読み出された比較対象データより自プロセッサ内の
比較対象データより大きいときにアサートされる。した
がって、この信号がアサートされるときには自己の比較
対象データは、同じ半導体装置100内では最小でない
ことになる。逆に、この信号がアサートされないときに
は自己の比較対象データは、同じ半導体装置100内で
は最小になる可能性があることになる。今の場合、非最
大値信号216は、いずれかのプロセッサから読み出さ
れた比較対象データより自プロセッサ内の比較対象デー
タが小さいときにアサートされる。したがって、この信
号がアサートされるときには自己の比較対象データは、
同じ半導体装置100内では最大でないことになる。逆
に、この信号がアサートされないときには自己の比較対
象データは、同じ半導体装置100内では最大になる可
能性があることになる。なお、先に比較対象データ出力
命令により比較対象データを出力データ内部共通バス1
18に出力したプロセッサでは、入力比較対象データと
自己の比較対象データが等しいので、非最小値信号21
5、非最大値信号216はともにアサートされない。
【0067】セレクタ210、211は、比較演算命令
にしたがって、それぞれ信号215、216を選択し、
比較結果情報出力端子208と、信号212に含まれた
信号212aと212bを介してそのプロセッサ200
が含まれている半導体装置100内の最大値最小値プロ
セッサ検出回路350(図2)に供給する。
【0068】なお、ALU201が実行可能な比較演算
命令には浮動小数点データ比較演算命令と整数データ比
較演算命令とがあり、浮動小数点データ比較演算命令で
は、上記第1および第2のデータを浮動小数点ファーマ
ットのデータとして上記減算が為され、整数データ比較
演算命令では、上記第1および第2のデータを固定小数
点ファーマット(整数フォーマット)のデータとして上
記減算が為される。また、浮動小数点データ比較演算に
おいて、第1、第2のデータの少なくとも一つが非数デ
ータのとき、非最大値信号216および非最小値信号2
15はアサートされない。
【0069】(6a−3)最大値最小値検出命令 次に、図1を参照するに、制御装置500は、全半導体
装置100に最大値最小値検出命令を命令外部共通バス
401を介して放送する。図2を参照するに、各半導体
装置100内の命令デコーダ109はその命令をデコー
ドして、最大値最小値プロセッサ検出回路350に対し
て最大値最小値検出命令を出力する。
【0070】図4を参照するに、最大値最小値プロセッ
サ検出回路350は、最大値フラグレジスタ301、最
小値フラグレジスタ302、二つのアドレス生成回路3
03、304、二つの零検出回路308、309を含
む。最大値フラグレジスタ301は、半導体装置100
内のプロセッサの数に等しい記憶領域を有し、各記憶領
域は、一つのプロセッサに一対一に対応付けられ、信号
212bを介して対応するプロセッサ200に接続さ
れ、そのプロセッサが出力する非最大値信号216がそ
こに供給される。各記憶領域は、対応するプロセッサに
対する最大値フラグを記憶する。この最大値フラグが1
にセットされているときには、対応するプロセッサが最
大値プロセッサになる可能性があることを示す。最小値
フラグレジスタ302は、半導体装置100内のプロセ
ッサの数に等しい最小値フラグ記憶領域を有し、各最小
値フラグ記憶領域は、一つのプロセッサに一対一に対応
付けられ、信号212aを介して対応するプロセッサ2
00に接続され、そのプロセッサが出力する非最小値信
号215がそこに供給される。各記憶領域は、対応する
プロセッサに対する最小値フラグを記憶する。この最小
値フラグが1にセットされているときには、対応するプ
ロセッサが最小値プロセッサになる可能性があることを
示す。
【0071】最大値フラグレジスタ301および最小値
フラグレジスタ302内の各フラグは、後述するよう
に、初期設定時に対応するプロセッサが比較対象プロセ
ッサであるときに1にセットされ、そうでないときに0
にリセットされる。今の場合、全プロセッサが比較対象
であると仮定しているので、これらのレジスタの全フラ
グは初期設定時に1にセットされている。すなわち、全
プロセッサが最大値プロセッサになる可能性があること
を示す。
【0072】最大値フラグレジスタ301は、最大値最
小値検出命令に応答して、各プロセッサから信号212
を介して入力されている非最大値信号が0のとき、その
プロセッサに対応する最大値フラグをそのまま保持し、
非最大値信号が1のとき、そのフラグをリセットする
(換言すれば0を出力するように)する。したがって、
そのプロセッサは最大値プロセッサでないことが示され
る。最大値最小値検出命令でいずれかのプロセッサに対
する非最大値信号が1となり、対応する最大値フラグが
1度リセットされると、その後最大値最小値検出命令が
再度実行され、非最大値信号が0となっても、そのフラ
グは再びセットされることがない。したがって、そのプ
ロセッサは最大値プロセッサでないことが分かると、対
応する最大値フラグはそのことを示し続ける。各記憶領
域および最大値フラグレジスタ301内の図示しない関
連する回路は、対応するプロセッサが最大値プロセッサ
であるか否かを検出する回路として動作する。
【0073】同様に、最小値フラグレジスタ302は、
最大値最小値検出命令に応答して、各プロセッサから信
号212を介して入力されている非最小値信号が0のと
き、そのプロセッサに対応する最小値フラグをそのまま
保持し、非最小値信号が1のとき、そのフラグをリセッ
トする(換言すれば0を出力するように)。したがっ
て、そのプロセッサは最小値プロセッサでないことが示
される。最大値最小値検出命令でいずれかのプロセッサ
に対する非最小値信号が1となり、対応する最小値フラ
グが1度リセットされると、その後最大値最小値検出命
令が再度実行され、非最小値信号が0となっても、その
フラグは再びセットされることがない。したがって、そ
のプロセッサが最小値プロセッサでないことが分かる
と、対応する最小値フラグはそのことを示し続ける。各
記憶領域および最小値フラグレジスタ302内の図示し
ない関連する回路は、対応するプロセッサが最小値プロ
セッサであるか否かを検出する回路として動作する。
【0074】アドレス生成回路303には、最大値フラ
グレジスタ301の出力が接続される。アドレス生成回
路303は、最大値フラグレジスタ301内のセットさ
れている最大値フラグに対応するプロセッサ200の装
置内プロセッサアドレスを生成する。最大値フラグレジ
スタ301内のセットされている最大値フラグが複数あ
る場合には、それらの複数の最大値フラグに対応する複
数のプロセッサ200に割り当てられている複数の装置
内プロセッサアドレスの内の一つ、たとえば最も小さい
装置内プロセッサアドレスを生成する。同様に、アドレ
ス生成回路304には、最小値フラグレジスタ302の
出力が接続される。そのアドレス生成回路304は、最
小値フラグレジスタ302内のセットされている最小値
フラグに対応するプロセッサ200の装置内プロセッサ
アドレスを生成する。最小値フラグレジスタ302内の
セットされている最小値フラグが複数ある場合には、そ
れらの複数の最小値フラグに対応する複数のプロセッサ
200に割り当てられている複数の装置内プロセッサア
ドレスの内の一つ、たとえば最も小さい装置内プロセッ
サアドレスを生成する。アドレス生成回路303、30
4で生成されるアドレスの表現形式は、半導体装置10
0の外部からプロセッサアドレス入力端子108に与え
られるプロセッサアドレス信号114と同じである。
【0075】零検出回路308には、最大値フラグレジ
スタ301の出力が接続され、この回路は、最大値フラ
グレジスタ301内の全ての最大値フラグが0(リセッ
ト)であるとき1を出力し、最大値フラグの少なくても
1つが1(セット)であるとき0を出力する。同様に、
零検出回路309には、最小値フラグレジスタ302の
出力が接続され、この回路は、最小値フラグレジスタ3
02内の全ての最小値フラグが0(リセット)であると
き1を出力し、最小値フラグの少なくても1つが1(セ
ット)であるとき0を出力する。
【0076】こうして、上記最大最小検出命令の実行が
終了する。アドレス生成回路303、304および零検
出回路308、309の出力は、プロセッサ選択回路3
00により後に使用される。
【0077】以上の比較対象データ出力命令から最大値
最小値検出命令に係る動作によって、各半導体装置10
0内の全プロセッサ200は、比較対象データ出力命令
と同時に与えたプロセッサアドレスの示す1つのプロセ
ッサが持つ比較対象データと自己の比較対象データとの
大小比較を同時に並列に実行し、それぞれのプロセッサ
での比較結果が、最大値フラグレジスタ301および最
小値フラグレジスタ302に反映される。
【0078】制御装置500は、以上の動作を各半導体
装置100内の全プロセッサ200に対して実行するた
めに、比較対象データ出力命令、浮動小数点データ比較
演算命令、最大値最小値検出命令を、各半導体装置10
0内の全プロセッサ200の数に等しい回数繰り返し放
送する。但し、制御装置500は比較対象データ出力命
令を繰り返し発行するときには、各半導体装置100内
の順次異なるプロセッサに対する装置内プロセッサアド
レスを放送する。これによって、各半導体装置100内
の全プロセッサ200が他のプロセッサの比較対象デー
タと自己の比較対象データとについて大小関係を比較し
たことになり、それぞれのプロセッサでの全比較結果が
最大値フラグレジスタ301および最小値フラグレジス
タ302に示される。すなわち、各半導体装置100内
で最小値を持つプロセッサは、最小値フラグレジスタ3
02の値が1(セットされている状態)である最小値フ
ラグに対応するプロセッサであり、最大値を持つプロセ
ッサは、最大値フラグレジスタ301内の値1(セット
されている状態)である最大値フラグに対応するプロセ
ッサである。装置内最大値プロセッサおよび装置内最小
値プロセッサの装置内プロセッサアドレスがそれぞれア
ドレス生成回路303、304により生成される。装置
内最大値プロセッサが複数あることもある。このときに
は、すでに述べたようにアドレス生成回路303は、そ
れらの内の一つのプロセッサの装置内プロセッサアドレ
スを生成する。このことは、アドレス生成回路304に
より生成される装置内最小値プロセッサに対する装置内
プロセッサアドレスについても同じである。
【0079】上記第1の動作は全半導体装置100で並
行して実行され、かつ各半導体装置100ではパイプラ
イン処理で実行される。したがって、全半導体装置10
0内のプロセッサ200の数に等しい回数だけ上記繰り
返しを実行するのに要する処理ステップは、1つのプロ
セッサ200についての大小比較に要する処理ステップ
数に、半導体装置100内のプロセッサ200の数に等
しい処理ステップ数が追加されるだけで済む。
【0080】以上により、各半導体装置100内での最
大値プロセッサ、最小値プロセッサを検出するという第
1の動作が終了する。
【0081】(6b)システム最大値プロセッサとシス
テム最小値プロセッサの検出 次に、制御装置500は、情報処理システム400全体
での最小値プロセッサまたは最大値プロセッサを検出す
るために第2の動作を実行する。この第2の動作では、
制御装置500は、全半導体装置100内で検出した最
大値プロセッサまたは最小値プロセッサに保持されてい
る比較対象データをそれぞれの半導体装置100から制
御装置500に送出させ、制御装置500が、その内部
にある最大値最小値検出回路608(図6)によりそれ
らの比較対象データからシステム最小値またはシステム
最大値およびそれを送出した半導体装置100を検出す
る。以下では、システム最小値を検出する場合の装置動
作を述べ、システム最大値を検出する場合については、
それと異なる動作部分を括弧書きする。
【0082】図1を参照するに、制御装置500は、最
小値(または最大値)データ出力命令と比較対象データ
の格納場所の情報を全半導体装置100に放送する。比
較対象データの格納場所の情報は先に比較対象データ出
力命令の放送の時に指定した情報と同じである。同時
に、制御装置500は、一つの半導体装置100に対す
る半導体装置アドレスを有するプロセッサアドレスをプ
ロセッサアドレスバス404に出力する。半導体装置ア
ドレスデコーダ407は、その半導体装置アドレスによ
り指定される半導体装置100に対する半導体装置選択
信号をアサートし、信号408を介してその半導体装置
100に供給する。制御装置500は、さらに、出力デ
ータ外部共通バス403上のデータをプログラム実行制
御回路515内の制御装置内部バス609に取り込むこ
とを指示するデータバス制御命令をバス制御回路606
(図6)に供給し、さらに最大値最小値検出命令を最大
値最小値検出回路608(図6)に供給する。
【0083】図2を参照するに、各半導体装置100で
は、命令デコーダ109は、上記最小値(または最大
値)データ出力命令をデコードして、全プロセッサ20
0に対して比較対象データ出力命令と比較対象データの
格納場所の情報を放送する。また、プロセッサ選択回路
300に対して最小値(または最大値)を持つプロセッ
サから出力データ内部共通バス118へデータを出力さ
せる命令を出力する。また、セレクタ113に対して、
出力データ内部共通バス118上のデータをトライステ
ートバッファ120に出力する命令を発行する。
【0084】図3を参照するに、各プロセッサ200
は、命令デコーダ209がその命令をデコードする。重
み値メモリ203またはレジスタファイル204は、比
較対象データの格納場所の上記情報により指定される比
較対象データを読み出し、バス230を介してセレクタ
217に与える。セレクタ217は、今仮定しているよ
うに全プロセッサが比較対象であり、比較対象フラグ2
20が1にセットされているので、そのデータを選択
し、データ出力端子206を介してそのプロセッサに対
応するトライステートバッファ121(図2)に出力す
る。
【0085】図4を参照するに、プロセッサ選択回路3
00は、命令デコーダ109が生成した、最小値(また
は最大値)を持つプロセッサから出力データ内部共通バ
ス118へデータを出力させる上記命令に応答して以下
の動作を行う。
【0086】セレクタ305には、アドレス生成回路3
04が出力する最小値プロセッサの装置内プロセッサア
ドレスとアドレス生成回路303が出力する最大値プロ
セッサの装置内プロセッサアドレスが入力されている。
今の場合、セレクタ305は、アドレス生成回路304
が出力する最小値プロセッサの装置内プロセッサアドレ
ス(またはアドレス生成回路303が出力する最大値プ
ロセッサの装置内プロセッサアドレス)を選択する。セ
レクタ306には、セレクタ305の出力と制御装置5
00から信号114を介して供給される装置内プロセッ
サアドレスが入力されている。今の場合、セレクタ30
6は、セレクタ305が選択した最小値プロセッサのア
ドレス(または最大値プロセッサのアドレス)を選択
し、プロセッサ選択信号生成回路307に供給する。
【0087】プロセッサ選択信号生成回路307には、
セレクタ306の出力と、最大値最小値プロセッサ検出
回路350内の零検出回路308、309の出力とが入
力されている。今の場合、最大値フラグレジスタ301
には少なくとも一つの値1の最大値フラグが保持されて
いる。したがって、零検出回路309の出力が0であ
る。このことは、最小値フラグレジスタ302、零検出
回路308についても同じである。プロセッサ選択信号
生成回路307は、上記命令に応答して、零検出回路3
09(または零検出回路308)の出力が0であるとき
には、セレクタ306から供給された装置内プロセッサ
アドレスが指し示す最小値プロセッサ(または最大値プ
ロセッサ)に対応するプロセッサ選択信号を、そのプロ
セッサが比較対象データを出力するタイミングでアサー
トする。
【0088】図1を参照するに、このプロセッサ選択信
号は、その最小値プロセッサ(または最大値プロセッ
サ)に信号122を介して供給される。その結果、その
プロセッサから出力された比較対象データが出力データ
内部共通バス118に転送される。セレクタ113は、
出力データ内部共通バス118上の比較対象データをト
ライステートバッファ120に出力する。全半導体装置
100の内、選択された一つの半導体装置100内のト
ライステートバッファ120には、半導体装置アドレス
デコーダ407(図2)がアサートした半導体装置選択
信号が、半導体装置選択信号入力端子107を介して供
給される。したがって、その一つの半導体装置100内
の出力データ内部共通バス118に読み出された比較対
象データは、外部データ出力端子106を介して出力デ
ータ外部共通バス403に送出され、さらに、制御装置
500に転送される。他の半導体装置100からは、出
力データ外部共通バス403にデータは送出されない。
【0089】図6を参照するに、バス制御回路606
は、命令デコード回路603から与えられた、上記デー
タバス制御命令に応答して、出力データ外部共通バス4
03上の比較対象データを制御装置内部バス609に転
送する。最大値最小値検出回路608は、制御装置内部
バス609とアドレス制御回路607に接続され、制御
装置内部バス609に順次供給される複数の比較対象デ
ータの内の最大値および最小値を検出するとともに、そ
の最大値および最小値を供給した半導体装置100をア
ドレス制御回路607がプロセッサアドレスバス404
に供給した半導体装置アドレスに基づいて識別する回路
である。具体的には、最大値最小値検出回路608は、
命令デコード回路603から与えられた最大値最小値検
出命令に応答して、制御装置内部バス609上に転送さ
れた比較対象データを取り込む。さらに、アドレス制御
回路607が先にプロセッサアドレスバス404に送出
した半導体装置アドレスを取り込む。すでに取り込まれ
た比較対象データがあるときにはそれと新たに取り込ま
れた比較対象データと比較し、大きい方の比較対象デー
タと小さい方の比較対象データと、それぞれのデータを
供給した半導体装置100に対する半導体装置アドレス
を記憶する。すでに取り込まれている比較対象データが
ないときには、新たに取り込まれた比較対象データに対
する半導体装置アドレスを記憶する。
【0090】以上により、選択された一つの半導体装置
100内の最小の比較対象データ(または最大の比較対
象データ)が制御装置500に出力される。制御装置5
00は以上の動作を異なる半導体装置100に対して繰
り返す。こうして、最大値最小値検出回路608によ
り、システムで最大の比較対象データとそれを生成した
プロセッサを含む半導体装置100を検出できる。検出
されたシステム最大値とシステム最大値プロセッサのプ
ロセッサアドレスとは、たとえば制御装置500内のデ
ータ記憶装置(図5)に記憶される。この記憶のための
命令と回路動作の説明は省略する。
【0091】なお、上記第2の動作はパイプライン処理
が可能であり、情報処理システム400内の半導体装置
100の数に等しい回数実行するのに要する処理ステッ
プ数は、1つの半導体装置100から装置内最小値(ま
たは装置内最大値)を読み出すための処理ステップ数
に、情報処理システム400内の全半導体装置100の
数に等しい処理ステップ数が追加されるだけである。
【0092】(6c)システム最小値(または最大値)
プロセッサのアドレスの検出 次に、システム最大値(またはシステム最小値)の比較
対象データを生成したプロセッサのアドレスを検出する
第3の動作について説明する。
【0093】図1を参照するに、制御装置500は、最
小値(または最大値)プロセッサアドレス出力命令を全
半導体装置100に放送し、同時に、システム最大値
(またはシステム最小値)の比較対象データを生成した
全半導体装置100に対する半導体装置アドレスをプロ
セッサアドレスバス404に送出する。半導体装置アド
レスデコーダ407は、その半導体装置アドレスにより
指定される一つの半導体装置100に対する半導体装置
選択信号をアサートし、信号408を介してその半導体
装置100に供給する。制御装置500は、さらに、出
力データ外部共通バス403上のデータをプログラム実
行制御回路515内の制御装置内部バス609に取り込
むことを指示するデータバス制御命令をバス制御回路6
06(図6)に供給する。
【0094】図2を参照するに、対応する半導体装置選
択信号がアサートされた半導体装置100では、命令デ
コーダ109は、その命令をデコードして、プロセッサ
選択回路300に対して最小値(または最大値)を持つ
プロセッサのアドレスを出力する命令を出力する。ま
た、セレクタ113に対して、出力データ内部共通バス
118上のデータをトライステートバッファ120に出
力する命令を発行する。
【0095】図3を参照するに、プロセッサ選択回路3
00において、プロセッサ選択信号生成回路307は、
命令デコーダ109から供給された上記出力命令に従っ
て、以下の動作をする。
【0096】セレクタ305は、アドレス生成回路30
4が出力する最小値プロセッサの装置内プロセッサアド
レス(またはアドレス生成回路303が出力する最大値
プロセッサの装置内プロセッサアドレス)を選択する。
セレクタ306は、セレクタ305が選択した最小値プ
ロセッサの装置内プロセッサアドレス(または最大値プ
ロセッサの装置内プロセッサアドレス)を選択し、プロ
セッサ選択信号生成回路307とセレクタ310に供給
する。
【0097】セレクタ310には、セレクタ305が選
択した最小値プロセッサの装置内プロセッサアドレス
(または最大値プロセッサの装置内プロセッサアドレ
ス)と非数データ(NaN)が入力されている。今議論
しているように、全半導体装置100内の全プロセッサ
200が比較対象であり、したがって、零検出回路30
9(または308)の出力が0であるときには、プロセ
ッサ選択信号生成回路307は、上記命令に応答して、
セレクタ305により供給された装置内プロセッサアド
レスをセレクタ310に選択させるように、セレクタ制
御信号318をセレクタ310に供給するように構成さ
れている。したがって、セレクタ310は、セレクタ3
05により供給された装置内プロセッサアドレスを選択
し、信号117に出力する。信号117は、トライステ
ートバッファ115を介して出力データ内部共通バス1
18に接続されている。さらに、プロセッサ選択信号生
成回路307は、信号117上の装置内プロセッサアド
レスを出力データ内部共通バス118に転送させるため
に、このトライステートバッファ115に供給する制御
信号116を、装置内プロセッサアドレスが信号117
に転送されたタイミングでアサートする。こうして、シ
ステム最小値プロセッサ(またはシステム最大値プロセ
ッサ)の装置内プロセッサアドレスが、外部データ出力
端子106、出力データ外部共通バス403を介して制
御装置500に転送される。
【0098】なお、対応する半導体装置選択信号がアサ
ートされた半導体装置100以外の半導体装置100で
は、プロセッサ選択回路300が同じように動作する
が、トライステートバッファ120はオンにされないの
で、その半導体装置100から装置内プロセッサアドレ
スが出力データ外部共通バス403に出力されることは
ない。
【0099】以上のごとく、本実施の形態では、装置内
最大値プロセッサあるいは装置内最小値プロセッサある
いは装置内最大値あるいは装置内最小値を、各半導体装
置100内の設けたプロセッサ選択回路300と最大値
最小値プロセッサ検出回路350により高速に検出する
ことが出来る。さらに、システム最大値プロセッサある
いはシステム最小値プロセッサあるいはシステム最大値
あるいはシステム最小値を、制御回路内の最大値最小値
検出回路608を併用して検出できる。
【0100】(7)比較対象外のプロセッサがあるとき
の装置動作 すでに述べた第1から第3の動作では、全半導体装置1
00内の全プロセッサ200は比較対象であると仮定し
た。しかし、任意の半導体装置100内の任意のプロセ
ッサ200を比較対象外とすることもできる。いずれか
の少なくとも一つのプロセッサが比較対象外であるとき
の装置動作は以下のように変更される。
【0101】(7a)図3を参照するに、上記第1の動
作において、各プロセッサで、比較データ出力命令を実
行したとき、そのプロセッサが比較対象であるときに
は、比較対象フラグ220が1であるので、すでに述べ
たごとく、セレクタ217は、重み値メモリ203また
はレジスタファイル204から読み出された比較対象デ
ータを選択し、出力データ内部共通バス118に送出す
る。しかし、いずれかのプロセッサが比較対象でないと
きには、比較対象フラグ220が0であるので、そのプ
ロセッサ内のセレクタ217は、予め定められた非数デ
ータ(NaN)を選択して出力データ内部共通バス11
8に送る。この非数データは、浮動小数点データとは識
別可能なビット列からなる。たとえば、浮動小数点デー
タの指数部に位置するビット列が全て値1を有する。
【0102】すでに述べたように、いずれかのプロセッ
サでのALU201での比較演算に提供された第1、第
2のデータの少なくとも一方が非数データであるときに
は、非最小値信号215、非最大値信号216はともに
アサートされない。したがって、上記非数データが同じ
半導体装置100内の全プロセッサ200にその後放送
された後、前記データ比較命令が実行されたときでも、
各プロセッサでの比較演算の結果によっては、そのプロ
セッサに対する最大値フラグと最小値フラグは変更され
ない。このように、比較対象でないプロセッサに対して
も比較データ出力命令を実行させても、本実施の形態で
の最大値最小値検出には影響が出ない。したがって、制
御装置500は、各プロセッサが比較対象であるか否か
に依らないで、全プロセッサに同じ一連の命令を実行さ
せることが出来る。
【0103】(7b)図1,2を参照するに、上記第2
の動作において、制御装置500が、最小値(または最
大値)を持つプロセッサから出力データ内部共通バス1
18へデータを出力させる上記命令を全半導体装置10
0に放送したとき、いずれかの半導体装置100内の全
プロセッサが比較対象でないことがありうる。この場
合、その半導体装置100から比較対象データを制御装
置500に送らない方がよい。本実施の形態では、プロ
セッサ選択回路300は以下のように動作する。
【0104】図4を参照するに、その半導体装置100
内の最小値フラグレジスタ302(または、最大値フラ
グレジスタ301)内の全フラグが0である。したがっ
て、零検出回路309(または308)の出力が1であ
る。プロセッサ選択信号生成回路307は、命令デコー
ダ109から供給された上記比較対象データ出力命令に
応答して、零検出回路309(または零検出回路30
8)の出力が1であるときには、セレクタ310に非数
データを無効な比較対象データとして選択させ、信号1
17に送出するようにセレクタ制御信号318をセレク
タ310に供給する。さらに、プロセッサ選択信号生成
回路307は、信号117上の非数データを出力データ
内部共通バス118に転送させるために、このトライス
テートバッファ115に供給する制御信号116をこの
非数データが信号117に転送されたタイミングでアサ
ートする。こうして、非数データが、外部データ出力端
子106、出力データ外部共通バス403を介して制御
装置500に転送される。制御装置500はこの非数デ
ータを無効な比較対象データとして廃棄する。
【0105】(8)フォーマット変換回路 図2を参照するに、フォーマット変換回路102は、セ
レクタ111の出力を固定小数点フォーマットのデータ
と見做して浮動小数点フォーマットに変換して出力す
る。フォーマット変換回路103は、出力データ内部共
通バス118のデータを浮動小数点フォーマットと見做
して固定小数点フォーマットに変換して出力する。
【0106】フォーマット変換回路102はプロセッサ
200から出力データ内部共通バス118に出力された
データをフォーマット変換して入力データ内部共通バス
119を介して再び同じプロセッサまたは他のプロセッ
サに戻すことができる。以上の説明では、全プロセッサ
200の比較対象データは浮動小数点フォーマット表現
のデータであるとした。しかし、いずれかのプロセッサ
200の比較演算データが固定小数点データのフォーマ
ットであっても、外部に接続されるデータバスとは無関
係に、半導体装置内部で浮動小数点フォーマット変換回
路102を用いて浮動小数点フォーマット表現のデータ
に統一することができる。すなわち、全半導体装置10
0毎に並列に上記変換を実行可能であり、装置全体とし
てのフォーマットの統一が高速に行えるように考慮され
ている。さらには、固定小数点フォーマット変換回路1
03を用いて固定小数点フォーマット表現のデータに統
一することもできる。
【0107】さらに、外部から与えられるデータを、フ
ォーマット変換回路102を介してプロセッサ200に
与えることができる。たとえば、半導体装置100に
は、浮動小数点フォーマットの演算に使用するデータと
して、固定小数点フォーマットのデータを外部から与え
ることができる。各プロセッサの出力をフォーマット変
換回路103を介して外部に出力することができる。た
とえば、半導体装置100が生成した浮動小数点フォー
マットのデータを固定小数点フォーマットのデータとし
て外部に取り出すことができる。
【0108】(9)初期設定動作 (9a)比較対象フラグの初期設定 各プロセッサでの比較対象フラグ220の初期設定は以
下のようにして行われる。図3を参照するに、各プロセ
ッサでは、ALU201は、演算結果データが、例え
ば、零となった場合、零とならなかった場合、負となっ
た場合、負とならなかった場合、0以外の正となった場
合、0以外の正にならなかった場合、非数データ(非数
データ)が入力された場合、非数データが入力されなか
った場合、演算結果が非数データとなった(すなわち、
演算不可能であった)場合、あるいは非数データとなら
なかった(すなわち、演算可能であった)場合、演算の
状態を示すコンディションコードを出力するようになっ
ている。コンディションコードレジスタ219は、複数
の演算状態を記憶する複数ビットのレジスタであり、A
LU201が生成したコンディションコードは、命令に
従ってコンディションコードレジスタ219に書き込ま
れる。この書き込みが行われない場合もある。セレクタ
218は、命令に従ってコンディションコードレジスタ
219の任意の1ビット選択して出力する。
【0109】比較対象フラグ220には、セレクタ21
8の出力が接続される。各プロセッサの比較対象フラグ
220に対する比較対象フラグの書き込みは、比較対象
フラグプリセット命令と比較対象フラグ書き込み命令に
より実行される。初期設定動作時に、制御装置500が
全半導体装置100に比較対象フラグプリセット命令を
放送し、各半導体装置100がこの命令を各プロセッサ
に放送すると、各プロセッサ内では、比較対象フラグ2
20は、この比較対象フラグプリセット命令によりセッ
トされる(換言すれば1を出力する)。制御装置500
が全半導体装置100に比較対象フラグ書き込み命令を
放送し、各半導体装置100がこの命令を各プロセッサ
に放送すると、各プロセッサ内では、セレクタ218が
この命令が指定する、コンディションコードレジスタ2
19の任意のビットを選択する。比較対象フラグ220
は、選択されたビットが0であった場合のみ、リセット
(換言すれば0を出力)される。セレクタ218の出力
が1のときには、セットされたままである。すなわち、
比較対象フラグは、比較対象フラグ書き込み命令により
1度リセットされると、比較対象フラグプリセット命令
が行われない限り、その後比較対象フラグ書き込み命令
が再度実行され、そのときのセレクタ218の出力が1
のときでも再びセットされることがなく、リセットされ
たことを蓄積可能としたものである。
【0110】例えば、比較対象データが非数データであ
るプロセッサ200を比較対象外とするとなる場合に
は、制御装置500は以下のようにしてそのようなプロ
セッサを比較対象外とすることが出来る。上記比較対象
フラグプリセット命令の実行に先立ち、比較対象フラグ
プリセット命令により全プロセッサの比較対象フラグ2
20を1にセットする。その後、各プロセッサに、その
中の比較対象データについてALU201で任意の浮動
小数点演算を行なわせる。その演算に対してALU20
1が生成したコンディションコードをコンディションコ
ードレジスタ219に書き込む。そのコンディションコ
ードレジスタ219の内の非数データがALU入力され
なかったことを示すビットをセレクタ218で選択する
ことを指定する比較対象フラグ書き込み命令を実行す
る。その結果、前述した動作により比較対象データが非
数データであるプロセッサ200内の比較対象フラグ2
20は0にリセットされ、他のプロセッサ内の比較対象
フラグ220は1にセットされたままである。
【0111】(9b)最大値フラグレジスタ、最小値フ
ラグレジスタの初期設定 図1を参照するに、まず、制御装置500は、プリセッ
ト情報出力命令を全半導体装置100に放送する。図2
を参照するに、各半導体装置100の命令デコーダ10
9はその命令をデコードして、全プロセッサ200に対
してプリセット情報出力命令を放送する。図3を参照す
ると、各プロセッサ200において、命令デコーダ20
9がその命令をデコードして、セレクタ210およびセ
レクタ211を制御してインバータ228より出力され
る、比較対象フラグ220の否定を、比較結果情報出力
端子208を介してともに非最小値信号215および非
最大値信号216の代わりに出力させる。このときのセ
レクタ211、210の出力も簡単化のためにそれぞれ
非最小値信号215および非最大値信号216と呼ぶこ
とにする。ここでは、全半導体装置100内の全プロセ
ッサが比較対象であると仮定すると、全プロセッサ20
0内の比較対象フラグ220はセットされている。した
がって、セレクタ210,211から出力される非最小
値信号215および非最大値信号216はともに0であ
る。
【0112】図1に戻り、制御装置500は、次に、最
大値最小値フラグプリセット命令を全半導体装置100
放送する。図2を参照するに、各半導体装置100の命
令デコーダ109はその最大値最小値フラグプリセット
命令をデコードして、最大値最小値プロセッサ検出回路
350に対して最大値最小値フラグプリセット命令を出
力する。図4を参照するに、プロセッサ選択回路300
において、その命令に従って最大値フラグレジスタ30
1および最小値フラグレジスタ302内の各フラグは、
同じ半導体装置100内の対応するプロセッサ200か
らの非最大値信号216または非最小値信号215が出
力されるタイミングで、その信号が0のときセットさ
れ、1のときリセットされる。今の場合、全プロセッサ
が比較対象であり、各プロセッサから出力される非最大
値信号216および非最小値信号215はともに0であ
るので、最大値フラグレジスタ301、最小値フラグレ
ジスタ302内の全フラグが1にセットされる。
【0113】以上は、全半導体装置100の全プロセッ
サ200が比較対象であると仮定した。しかし、もしい
ずれかの半導体装置100内のいずれかのプロセッサが
比較対象でなければ、そのプロセッサ内の比較対象フラ
グ220は既に述べた方法で0に初期設定される。この
プロセッサから出力される非最小値信号215、非最大
値信号216は、以上の説明から明らかなように、とも
に1となる。したがって、上記最大値最小値フラグプリ
セット命令が実行されたときには、このプロセッサに対
する、最大値フラグレジスタ301内の最大値フラグお
よび最小値フラグレジスタ302内の最小値フラグはと
もに0にリセットされる。
【0114】以上のプリセット情報出力命令から最大値
最小値フラグプリセット命令に係る動作により、最大値
最小値プロセッサ検出回路350の最小値フラグレジス
タ302および最大値フラグレジスタ301には、比較
対象フラグ220がセットさせているプロセッサ200
に対応するフラグ(ビット)がセットされ、それ以外の
フラグはリセットされる。これによって、比較対象フラ
グ220がセットされていないプロセッサ200は、前
述の第1の動作に先立ち、最大値を持つプロセッサの候
補および最小値を持つプロセッサの候補から除外され、
最大値最小値プロセッサ検出の対象外となる。
【0115】(10)変形例 以上本発明の実施形態に基づいて本発明を具体的に説明
したが、本発明はそれに限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。以下はそのような変形例の一例であ
る。
【0116】(10a)システム最小値(最大値の)他
の検出方法 この最大値最小値検出回路608を制御装置500内に
設けないで、システム最大値、システム最大値プロセッ
サ、システム最小値とシステム最小値プロセッサを判別
することも可能であり、そのためには、既に述べた第
2、第3の動作に代えて以下のように動作を実行するよ
うに制御装置500内のプログラムおよび各半導体装置
100の回路を変形すればよい。
【0117】たとえば、第2の動作の代わりに、制御装
置500は、データ送出命令と送出すべきデータである
各半導体装置100で検出された装置内最小値(または
最大値)の格納位置の情報とを、全半導体装置100に
放送する。いずれかの半導体装置100を選択するため
の半導体装置アドレスをプロセッサアドレスバス404
に送出し、半導体装置アドレスデコーダ407によりそ
の半導体装置100を選択させる。その選択された半導
体装置100では、命令デコーダ109は、上記命令と
上記情報を全プロセッサに放送するとともにプロセッサ
選択回路300に最小値(または最大値)を出力データ
外部共通バス403に出力する命令を供給し、セレクタ
113に出力データ内部共通バス118を選択する命令
を供給する。各プロセッサでは、すでに述べたと同じよ
うにデータを対応するトライステートバッファ121に
読み出す。さらに、プロセッサ選択回路300は、上記
出力命令に応答して、その半導体装置100内の最大値
プロセッサに対応するトライステートバッファ121に
プロセッサ選択信号を送付し、そのプロセッサ200か
ら読み出された装置内最小値(または装置内最大値)を
出力データ内部共通バス118に転送する。最小値(ま
たは最大値)プロセッサのアドレスは、最大値最小値プ
ロセッサ検出回路350内のアドレス生成回路304
(またはアドレス生成回路303)により与えられる。
その選択された半導体装置100内のセレクタ113
は、命令デコーダ109からの上記選択命令に応答し
て、出力データ内部共通バス118上の上記最大値デー
タをトライステートバッファ120に送出する。このト
ライステートバッファ120は、信号408からの信号
によりそのデータを出力データ外部共通バス403に送
出する。
【0118】制御装置500は、出力データ外部共通バ
ス403上のこの装置内最小値(または最大値)データ
を入力データ外部共通バス402に転送する命令をバス
制御回路606(図6)に供給する。さらに、第1の動
作と同様に、比較演算命令と比較対象データの格納位置
情報とを命令外部共通バス401を介して全半導体装置
100に放送する。バス制御回路606はその装置内最
小値(または最大値)データを入力データ外部共通バス
402を介して全半導体装置100に放送する。各半導
体装置100では、第1の動作と同じ動作を行い、最大
値最小値プロセッサ検出回路350内の最大値フラグレ
ジスタ301と最小値フラグレジスタ302とを更新す
る。制御装置500は以上の動作を順次異なる半導体装
置100を選択して行う。こうして、第2の動作が終了
する。この結果、全半導体装置内の全プロセッサが有す
る比較対象データが相互に比較されたことになる。この
結果、システム最小値を有するプロセッサに対する最小
値フラグとシステム最小値を有するプロセッサに対する
最大値フラグだけが1であり、他のプロセッサに対する
これらのフラグはいずれも0である。
【0119】なお、以上の動作において、いずれかの半
導体装置内の全プロセッサが比較対象でないときには、
その半導体装置100の最大値データは無効である。こ
の場合、その半導体装置100内のプロセッサ選択回路
300は、既に述べた動作と同様にして非数データを送
出する。したがって、この半導体装置100からの読み
出しデータはシステム最小値またはシステム最大値の検
出には影響しない。
【0120】その後制御装置500は、すでに述べた第
3の動作に代えて以下の動作を行い、システム最大値プ
ロセッサのプロセッサアドレスを得る。今の場合には、
制御装置500はどの半導体装置100がシステム最小
値(またはシステム最大値)を有するか分からない。し
たがって各半導体装置100に、検出した最大値プロセ
ッサのアドレスを送出させる。すなわち、制御装置50
0は、全半導体装置100に最大値プロセッサのアドレ
スを出力する命令を放送するとともに、いずれか一つの
半導体装置100を選択するための半導体装置アドレス
をプロセッサアドレスバス404に送出する。その半導
体装置100内のプロセッサ選択回路300はすでに述
べた動作の場合と同じくその半導体装置100内の最大
値プロセッサの装置内プロセッサアドレスを制御装置5
00に送出する。制御装置500は、この動作を、選択
する半導体装置を順次切り換えて行い、全半導体装置1
00から順次検出した最大値プロセッサの装置内プロセ
ッサアドレスを受け取る。
【0121】しかし、ここで次の問題がある。全半導体
装置100の内、システム最大値を有するのは1つまた
は複数であり、他の半導体装置100はシステム最大値
を有しない。そのような半導体装置100では、最小値
フラグレジスタ302(または最大値フラグレジスタ3
01)内の全フラグが0である。本実施の形態では、そ
のときアドレス生成回路304(またはアドレス生成回
路303)は値0の装置内プロセッサアドレスを出力す
る。しかし、このアドレスは無効なアドレスである。し
たがって、図9に示すように、各半導体装置100内の
プロセッサ選択回路300には、アドレス生成回路30
4(またはアドレス生成回路303)が生成した最小値
(または最大値)プロセッサの装置内プロセッサアドレ
スが無効か否かを識別可能なように、アドレス生成回路
304(またはアドレス生成回路303)が生成した装
置内プロセッサアドレスの上位側にオール1のビット列
あるいはオール0のビット列を切り換えて付加するセレ
クタ312をセレクタ305と310の間に設ける。ア
ドレス生成回路304(またはアドレス生成回路30
3)が生成した装置内プロセッサアドレスが無効なとき
には、零検出回路309(または308)の出力が1で
ある。したがって、プロセッサ選択信号生成回路307
は、命令デコーダ109から、最小値(または最大値)
プロセッサの装置内プロセッサアドレスを出力データ外
部共通バス403に送出する命令を受信したときに、零
検出回路309(または308)の出力が1であれば、
セレクタ312を線319により制御して、セレクタ3
05から出力される最小値(または最大値)プロセッサ
の装置内プロセッサアドレスの上位側にオール0のビッ
ト列を付加させて新たな無効なプロセッサアドレスを生
成させ、セレクタ310に供給させる。一方、零検出回
路309(または308)の出力が0であれば、プロセ
ッサ選択信号生成回路307は、セレクタ312を線3
19により制御して、セレクタ305から出力される最
小値(または最大値)プロセッサの装置内プロセッサア
ドレスの上位側にオール1のビット列を付加させて新た
なプロセッサアドレスを生成させ、セレクタ310に供
給させる。この新たなプロセッサアドレスが制御装置5
00に転送される。制御装置500は、全半導体装置1
00から送出されたプロセッサアドレスの内、上位側に
オール1のビット列を有するプロセッサアドレスを有効
なプロセッサアドレスとして処理する。その有効なプロ
セッサアドレスを出力した半導体装置100の半導体装
置アドレスは、制御装置500自身がプロセッサアドレ
スバス404に先にその半導体装置100を選択するた
めに送付したアドレスであり、制御装置500は、この
半導体装置アドレスと検出した有効なプロセッサアドレ
ス内の装置内プロセッサアドレスとの組を、システム最
小値(または最大値)プロセッサのプロセッサアドレス
として使用する。以上の方法では、制御装置500内に
最大値最小値検出回路608を設ける必要がない。
【0122】(10b)他の形式の並列計算機 例えば、各プロセッサが、制御装置500に含まれ、図
5に示された制御記憶装置のようなプログラム記憶装置
とプログラム実行制御回路を含む、SPMD(Single P
rogram, Multiple Data)方式で動作する並列計算機で
あってもよい。このときの並列計算機の方式は、MIM
D(Multiple Instruction Stream, Multiple Data Str
eam)型並列計算機であってもよい。また、各プロセッ
サのローカルメモリ203あるいはレジスタファイル2
04は、同じ半導体装置内の複数のプロセッサに共通に
設けられてもよく、あるいはシステム全体に共通に設け
られる共有メモリ方式であってもよい。半導体装置ある
いはプロセッサのデータ入出力のためのグローバルバス
は、複数対が設けられてもよい。本発明は、一般的に
は、少なくとも複数の演算器を有し、その演算器間のデ
ータ通信によって並列アルゴリズムが動作するような情
報処理システムに適用することができる。
【0123】以上説明したように、上記半導体装置10
0においては、外部に接続されるデータバスとは無関係
に、半導体装置内部で複数集積されたプロセッサ200
間のデータの大小比較演算ができるので、その半導体装
置100を複数搭載する情報処理システム400におい
て、半導体装置100単位に同時並列に最大値あるいは
最小値を持つプロセッサを検出する演算が可能となり、
システム内の最大値あるいは最小値を持つプロセッサの
検出に要する処理ステップを大幅に低減することができ
る。いま、情報処理システム400内の半導体装置10
0の数をmとし、各半導体装置100内のプロセッサ2
00の数をnとすると、従来技術により最大値あるいは
最小値を検出するのに要する最小の処理ステップはn×
m[ステップ]と考えることができる。ただしパイプラ
インのオーバヘッドを無視した。しかし、上記実施の形
態においては、n+m[ステップ](ただしパイプライ
ンのオーバヘッドを無視)とすることができる。例え
ば、m=64、n=8の場合、従来技術より約7倍高速
になり、m=64、n=16の場合、従来技術より約1
3倍高速になり、さらにm=64、n=64の場合、従
来技術より約32倍高速になる。これによって、例え
ば、学習ベクトル量子化法アルゴリズムのような最大値
あるいは最小値を特定する処理を反復するような計算を
高速化した並列計算機を容易に構成することが可能にな
る。
【0124】また、比較演算の結果としての情報は、最
大値フラグレジスタ301および最小値フラグレジスタ
302に蓄積して保持するので、最大値と最小値を持つ
各プロセッサの検出は任意の処理ステップで断続的に実
行することが可能になる。比較演算に非数データが入力
された場合には、最大値フラグレジスタ301および最
小値フラグレジスタ302に影響を及ぼさないため、最
大値あるいは最小値検出情報は正確であって、比較対象
となるデータに非数データを含めた浮動小数点フォーマ
ットのデータとすることができ、さらに、最大値フラグ
レジスタ301および最小値フラグレジスタ302が、
例えば、全てリセットした場合であっても、半導体装置
は非数データを出力するようにしたことによって、搭載
される並列計算機(例えば情報処理システム400)に
対して、その半導体装置の最大値あるいは最小値検出結
果が正確でないことを示すことができる。
【0125】また、最大値あるいは最小値検出が不要な
プロセッサは、上記検出手順の始めに実行される最大値
フラグレジスタ301および最小値フラグレジスタ30
2のプリセットに先立ち、プロセッサ内の比較対象フラ
グ220をリセットしておくことでその検出の対象外と
することができるので、比較演算に係る処理は対象とす
るプロセッサに依らず同一手順とすることができる。
【0126】また、その比較演算は、プロセッサ内の例
えばALU201により実行できるので、本発明によっ
て追加される論理規模は比較的少なくて済む。また、半
導体装置内部で浮動小数点フォーマット変換回路102
を用いて浮動小数点フォーマット表現のデータに、ある
いは、固定小数点フォーマット変換回路103を用いて
固定小数点フォーマット表現のデータに統一することが
できるので、その半導体装置100単位に同時並列に動
作して全データのフォーマットを統一することができ
る。これによって、プロセッサの個々にデータ変換回路
を設けることなく、各データフォーマット間の変換回路
を効率的に設けた半導体装置とすることができるので、
半導体装置のチップサイズを低減できる。
【0127】また、半導体装置100の外部のデータを
プロセッサ200内に入力する場合には浮動小数点フォ
ーマットに変換することが可能であって、プロセッサ2
00内のデータを半導体装置100の外部に出力する場
合には固定小数点フォーマットに変換することが可能で
あって、これらの変換は何れも時分割バスのパイプライ
ン上に設けたフォーマット変換回路とすることができる
ので、変換に要する時間は事実上皆無とすることができ
る。これによって、浮動小数点フォーマットと固定小数
点フォーマットのデータが混在するような並列アルゴリ
ズムを実行するための並列計算機のプロセッサアレイを
容易に実現可能な半導体装置とすることができる。
【0128】
【発明の効果】以上述べたごとく本発明によれば、複数
のプロセッサを含み、最大値または最小値を持つプロセ
ッサを効率的に検出できる、LSI上に形成された半導
体装置が得られる。
【図面の簡単な説明】
【図1】本発明による半導体装置を使用したSIMD型
並列計算機の概略ブロック図である。
【図2】本発明による半導体装置の概略ブロック図であ
る。
【図3】図2の装置に使用するプロセッサの概略ブロッ
ク図である。
【図4】図2の半導体装置に用いる最大値最小値プロセ
ッサ検出回路とプロセッサ選択回路の概略ブロック図で
ある。
【図5】図1のSIMD型並列計算機に用いる制御回路
の概略ブロック図である。
【図6】図5の制御回路に用いるプログラム実行制御回
路の概略ブロック図である。
【図7】図1のSIMD型並列計算機に用いるマイクロ
命令の概略的なフォーマットを示す図である。
【図8】図5の制御回路に用いるバス制御回路の概略ブ
ロック図である。
【図9】本発明による他の半導体装置に用いるプロセッ
サ選択回路の概略ブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 稲上 泰弘 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 小泉 英明 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 岡橋 卓夫 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 竹内 淳 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 横井 隆 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B045 GG12 GG14 KK08

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、 いずれかのプロセッサが送出したデータを外部に出力可
    能とし、いずれかのプロセッサが送出したデータと外部
    から入力したデータとを選択して上記複数のプロセッサ
    の全てに放送するための相互結合網と、 上記複数のプロセッサの内の任意の一つを選択するため
    のプロセッサ選択回路と、 検出回路とを大規模集積回路上に有し、 その複数を少なくとも上記相互結合網の外部との入出力
    で接続することによって並列計算機のプロセッサアレイ
    を構成可能な半導体装置であって、 各プロセッサは、 データ記憶手段と、 上記データ記憶手段に記憶された比較対象データを上記
    相互結合網に送出可能な手段と、 上記相互結合網から入力された比較対象データと、その
    プロセッサに記憶された比較対象データとの大小を識別
    する比較演算を実行し、比較結果信号を出力可能な演算
    器とを有し、 上記複数のプロセッサは、同時並列に上記比較演算の実
    行と上記比較結果信号の出力が可能なように構成され、 各プロセッサは、上記相互結合網から逐次的に入力され
    る複数の比較対象データのそれぞれに対して上記比較演
    算を逐次的に実行し、上記比較結果信号を出力するよう
    に構成され、 上記検出回路は、それぞれ上記複数のプロセッサが出力
    する複数の上記比較結果信号に基づいて、上記複数の比
    較対象データに対して最大値となる比較対象データを記
    憶している最大値プロセッサと、最小値となる比較対象
    データを記憶している最小値プロセッサの少なくとも一
    方の検出を行う半導体装置。
  2. 【請求項2】各プロセッサが出力する上記比較結果信号
    は、上記比較演算のそれぞれについてそのプロセッサに
    記憶された比較対象データの方が大きいことを有意とす
    る非最小値信号を少なくとも含み、 上記検出回路は、それぞれ上記複数のプロセッサの一つ
    に対応し、その対応するプロセッサが最小値プロセッサ
    の候補であるか否かの状態を示すフラグを記憶可能な複
    数の最小値フラグ記憶手段を含み、 各最小値フラグ記憶手段は、何れの状態も設定可能であ
    って、さらにそれに対応するプロセッサから出力される
    上記非最小値信号の有意のみに応答してフラグを最小値
    プロセッサの候補でない状態にするように構成され、 それぞれ上記複数のプロセッサから上記相互結合網を介
    して放送された複数の比較対象データのそれぞれに対す
    る各プロセッサの上記比較演算によって逐次的に出力さ
    れる上記非最小値信号について上記最小値フラグ記憶手
    段が上記応答したことによって、上記複数の最小値フラ
    グ記憶手段の内で最小値プロセッサの候補である状態を
    示しているものに対応するプロセッサを上記最小値プロ
    セッサとして検出する請求項1に記載の半導体装置。
  3. 【請求項3】上記検出回路は、少なくとも上記複数の最
    小値フラグ記憶手段のいずれか一つが最小値プロセッサ
    の候補である状態を示している場合にはその内の一つに
    対応するように、上記複数のプロセッサのそれぞれに割
    り当てられたアドレスの一つを生成可能な最小値プロセ
    ッサアドレス生成手段を有し、 上記プロセッサ選択回路は、少なくとも上記最小値プロ
    セッサアドレス生成手段により生成されたアドレスに基
    づいてプロセッサを選択可能なように構成され、 上記半導体装置は、上記検出回路により、上記複数の最
    小値フラグ記憶手段の少なくとも一つが最小値プロセッ
    サの候補である状態を示しているか否かに依存して、上
    記プロセッサ選択回路により選択されたプロセッサに記
    憶された比較対象データまたは無効な比較対象データを
    切り換えて上記半導体装置の外部に出力可能な手段を有
    する請求項2に記載の半導体装置。
  4. 【請求項4】上記半導体装置は、上記検出回路により、
    上記複数の最小値フラグ記憶手段の少なくとも一つが最
    小値プロセッサの候補である状態を示しているか否かに
    依存して、上記最小値プロセッサアドレス生成手段によ
    り生成された上記アドレスまたは無効なアドレスを切り
    換えて上記半導体装置の外部に出力可能な手段をさらに
    有する請求項3に記載の半導体装置。
  5. 【請求項5】各プロセッサが出力する上記比較結果信号
    は、上記比較演算のそれぞれについてそのプロセッサに
    記憶された比較対象データの方が小さいことを有意とす
    る非最大値信号を少なくとも含み、 上記検出回路は、それぞれ上記複数のプロセッサの一つ
    に対応し、その対応するプロセッサが最大値プロセッサ
    の候補であるか否かの状態を示すフラグを記憶可能な複
    数の最大値フラグ記憶手段を含み、 各最大値フラグ記憶手段は、何れの状態も設定可能であ
    って、さらにそれに対応するプロセッサから出力される
    上記非最大値信号の有意のみに応答してフラグを最大値
    プロセッサの候補でない状態にするように構成され、 それぞれ上記複数のプロセッサから上記相互結合網を介
    して放送された複数の比較対象データのそれぞれに対す
    る各プロセッサの上記比較演算によって逐次的に出力さ
    れる上記非最大値信号について上記最大値フラグ記憶手
    段が上記応答したことによって、上記複数の最大値フラ
    グ記憶手段の内で最大値プロセッサの候補である状態を
    示しているものに対応するプロセッサを上記最大値プロ
    セッサとして検出する請求項1乃至4のいずれか一つに
    記載の半導体装置。
  6. 【請求項6】上記検出回路は、少なくとも上記複数の最
    大値フラグ記憶手段のいずれか一つが最大値プロセッサ
    の候補である状態を示している場合にはその内の一つに
    対応するように、上記複数のプロセッサのそれぞれに割
    り当てられたアドレスの一つを生成可能な最大値プロセ
    ッサアドレス生成手段を有し、 上記プロセッサ選択回路は、少なくとも上記最大値プロ
    セッサアドレス生成手段により生成されたアドレスに基
    づいてプロセッサを選択可能なように構成され、 上記半導体装置は、上記検出回路により、上記複数の最
    大値フラグ記憶手段の少なくとも一つが最大値プロセッ
    サの候補である状態を示しているか否かに依存して、上
    記プロセッサ選択回路により選択されたプロセッサに記
    憶された比較対象データまたは無効な比較対象データを
    切り換えて上記半導体装置の外部に出力可能な手段を有
    する請求項5に記載の半導体装置。
  7. 【請求項7】上記半導体装置は、上記検出回路により、
    上記複数の最大値フラグ記憶手段の少なくとも一つが最
    大値プロセッサの候補である状態を示しているか否かに
    依存して、上記最大値プロセッサアドレス生成手段によ
    り生成された上記アドレスまたは無効なアドレスを切り
    換えて上記半導体装置の外部に出力可能な手段をさらに
    有する請求項6に記載の半導体装置。
  8. 【請求項8】各プロセッサは、 外部から与えられる命令に応答してそのプロセッサが比
    較対象のプロセッサであるか否かを記憶して指示する指
    示手段と、 そのプロセッサに含まれた上記指示手段による、そのプ
    ロセッサが比較対象のプロセッサであるか否かの指示に
    応答して、そのプロセッサの上記記憶された比較対象デ
    ータと無効な比較対象データとを切り換えて上記相互結
    合網に送出する手段とをさらに有し、 各プロセッサ内の上記演算器は、他のプロセッサから上
    記相互結合網に放送された比較対象データが無効な比較
    対象データであるとき、有意でない比較結果信号を出力
    するように構成された請求項2または5に記載の半導体
    装置。
  9. 【請求項9】上記プロセッサ選択回路は、少なくとも同
    一の半導体装置内の全てのプロセッサを順次選択可能で
    あるように構成され、 上記相互結合網が上記放送する手段は、上記プロセッサ
    選択回路によって選択されたプロセッサが送出したデー
    タを、同一の半導体装置内の全てのプロセッサが同時に
    入力可能であるように構成され、 上記プロセッサ選択回路における逐次的なプロセッサの
    選択と、それによる上記相互結合網における逐次的な放
    送とによって、上記検出を行う請求項1乃至8のいずれ
    か一つに記載の半導体装置。
  10. 【請求項10】上記プロセッサ選択回路が上記複数のプ
    ロセッサの内の任意の一つを順次選択する手段は、少な
    くとも上記半導体装置の外部より順次入力される各プロ
    セッサに割り当てられたアドレスに基づいて順次選択す
    るように構成された請求項9に記載の半導体装置。
  11. 【請求項11】上記半導体装置は、 固定小数点フォーマットのデータを浮動小数点フォーマ
    ットに変換可能な第1のデータフォーマット変換回路
    と、 浮動小数点フォーマットのデータを固定小数点フォーマ
    ットに変換可能な第2のデータフォーマット変換回路と
    をさらに有し、 上記相互結合網は、 上記複数のプロセッサのそれぞれの入力に接続された入
    力データ内部共通バスと、 上記複数のプロセッサのそれぞれの出力にトライステー
    トバッファを介して接続された出力データ内部共通バス
    とを含んで構成され、 上記第2のデータフォーマット変換回路の入力には上記
    出力データ内部共通バスが接続され、 上記半導体装置は、 外部から入力したデータと、上記出力データ内部共通バ
    ス上のデータとから切り換えて上記第1のデータフォー
    マット変換回路の入力とするための第1の選択手段と、 外部から入力したデータと、上記出力データ内部共通バ
    ス上のデータと、上記第1のデータフォーマット変換回
    路が出力したデータと、上記第2のデータフォーマット
    変換回路が出力したデータとから切り換えて上記入力デ
    ータ内部共通バスに出力するための第2の選択手段と、 上記出力データ内部共通バス上のデータと、上記第2の
    データフォーマット変換回路が出力したデータとから切
    り換えて外部に出力するための第3の選択手段とをさら
    に有する請求項1乃至10のいずれか一つに記載の半導
    体装置。
JP33461498A 1998-11-25 1998-11-25 半導体装置 Expired - Fee Related JP2969115B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33461498A JP2969115B1 (ja) 1998-11-25 1998-11-25 半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33461498A JP2969115B1 (ja) 1998-11-25 1998-11-25 半導体装置

Publications (2)

Publication Number Publication Date
JP2969115B1 JP2969115B1 (ja) 1999-11-02
JP2000163384A true JP2000163384A (ja) 2000-06-16

Family

ID=18279355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33461498A Expired - Fee Related JP2969115B1 (ja) 1998-11-25 1998-11-25 半導体装置

Country Status (1)

Country Link
JP (1) JP2969115B1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006191642A (ja) * 2005-01-06 2006-07-20 Qualcomm Inc 非標準化ビデオ量子化コーダを使用するビデオ規格に準拠した残差コーディング
JP2008521131A (ja) * 2004-11-23 2008-06-19 インテル・コーポレーション マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム
KR20150004275A (ko) * 2013-07-02 2015-01-12 로베르트 보쉬 게엠베하 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
US8954483B2 (en) 2011-08-10 2015-02-10 Renesas Electronics Corporation Arithmetic circuit and arithmetic apparatus
KR20150064673A (ko) * 2013-12-03 2015-06-11 로베르트 보쉬 게엠베하 데이터 기반 함수 모델의 그래디언트를 결정하기 위한 방법 및 장치
JP2018206402A (ja) * 2009-06-19 2018-12-27 シンギュラー コンピューティング、エルエルシー コンパクトな演算処理要素を用いたプロセッシング
JP2021522565A (ja) * 2018-04-30 2021-08-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6740920B2 (ja) * 2017-02-01 2020-08-19 株式会社デンソー 演算処理装置
CN111091189B (zh) * 2017-12-14 2023-08-29 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008521131A (ja) * 2004-11-23 2008-06-19 インテル・コーポレーション マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム
US7707266B2 (en) 2004-11-23 2010-04-27 Intel Corporation Scalable, high-performance, global interconnect scheme for multi-threaded, multiprocessing system-on-a-chip network processor unit
JP2006191642A (ja) * 2005-01-06 2006-07-20 Qualcomm Inc 非標準化ビデオ量子化コーダを使用するビデオ規格に準拠した残差コーディング
JP2018206402A (ja) * 2009-06-19 2018-12-27 シンギュラー コンピューティング、エルエルシー コンパクトな演算処理要素を用いたプロセッシング
US8954483B2 (en) 2011-08-10 2015-02-10 Renesas Electronics Corporation Arithmetic circuit and arithmetic apparatus
KR20150004275A (ko) * 2013-07-02 2015-01-12 로베르트 보쉬 게엠베하 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
JP2015015026A (ja) * 2013-07-02 2015-01-22 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 様々な数値フォーマットのデータを用いてデータに基づく関数モデルを計算するためのモデル計算ユニット、および制御装置
KR102228995B1 (ko) 2013-07-02 2021-03-17 로베르트 보쉬 게엠베하 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
KR20150064673A (ko) * 2013-12-03 2015-06-11 로베르트 보쉬 게엠베하 데이터 기반 함수 모델의 그래디언트를 결정하기 위한 방법 및 장치
KR102257530B1 (ko) 2013-12-03 2021-05-31 로베르트 보쉬 게엠베하 데이터 기반 함수 모델의 그래디언트를 결정하기 위한 방법 및 장치
JP2021522565A (ja) * 2018-04-30 2021-08-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ
JP7372009B2 (ja) 2018-04-30 2023-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ

Also Published As

Publication number Publication date
JP2969115B1 (ja) 1999-11-02

Similar Documents

Publication Publication Date Title
US9754221B1 (en) Processor for implementing reinforcement learning operations
US5524175A (en) Neuro-computer system for executing a plurality of controlling algorithms
US5204938A (en) Method of implementing a neural network on a digital computer
US7082419B1 (en) Neural processing element for use in a neural network
US10970623B2 (en) System and method for training artificial intelligence systems using a sima based processor
US10949743B2 (en) Method and system for implementing reinforcement learning agent using reinforcement learning processor
US20180322384A1 (en) Post synaptic potential-based learning rule
JPH08241291A (ja) プロセッサ
JPH0773149A (ja) データ処理システムとその方法
JP2969115B1 (ja) 半導体装置
Hendry et al. IP core implementation of a self-organizing neural network
WO1993014459A1 (en) Modular parallel processing system
CN114035916A (zh) 计算图的编译、调度方法及相关产品
Gerlinghoff et al. E3NE: An end-to-end framework for accelerating spiking neural networks with emerging neural encoding on FPGAs
CN110262996A (zh) 一种基于高性能可重构计算的超级计算机
Rast et al. Managing burstiness and scalability in event-driven models on the SpiNNaker neuromimetic system
US20230153675A1 (en) Configurable quantum-computing control system
Kerckhoffs et al. Speeding up backpropagation training on a hypercube computer
CN117634577B (zh) 向量处理器、神经网络加速器、芯片及电子设备
JPH03100857A (ja) 神経回路網処理装置
Hauptvogel et al. Spindek: An integrated design tool for the multiprocessor emulation of complex bioinspired spiking neural networks
JPH11238042A (ja) 分散シミュレーション制御装置
Zhang et al. Applications of Hardware Implementation of P Systems
Moreno et al. The POEtic electronic tissue and its role in the emulation of large-scale biologically inspired spiking neural networks models
Kolinummi et al. Designing a digital neurocomputer

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080820

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080820

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees