JP3091441B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3091441B2
JP3091441B2 JP10093532A JP9353298A JP3091441B2 JP 3091441 B2 JP3091441 B2 JP 3091441B2 JP 10093532 A JP10093532 A JP 10093532A JP 9353298 A JP9353298 A JP 9353298A JP 3091441 B2 JP3091441 B2 JP 3091441B2
Authority
JP
Japan
Prior art keywords
data
unit
cycle
control unit
memory
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
JP10093532A
Other languages
English (en)
Other versions
JPH117441A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP10093532A priority Critical patent/JP3091441B2/ja
Publication of JPH117441A publication Critical patent/JPH117441A/ja
Application granted granted Critical
Publication of JP3091441B2 publication Critical patent/JP3091441B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置に
関し、詳しくは、複数のメモリと複数の演算手段がプロ
セッサ内に存在し、これ等の部分において大量にデータ
をコントロールし、処理するものの改良に関する。
【0002】
【従来の技術】従来、プロセッサの内部には、加減算、
乗算及び除算等の演算装置、並びに、そのプロセッサ専
用の回路としてのハードウェアエンジンが備えられる。
前記ハードウェアエンジンは、例えば米国特許4,78
2,458の「ARCHITECTURE FOR POWER OF TWO COEFIC
IENT FIR FILTER 」に開示されるように、そのプロセッ
サの用途と、その用途が必要とする処理スピードとに対
応して構成された専用の演算回路である。米国特許4,
881,192の「ONE-DIMENSIONAL LINEAR PICTURE T
RANSFORMER」では、前記ハードウェアエンジンとして、
複数のバスから構成されるネットワークと、複数の演算
装置とを並べ、これ等を組み合わせることにより、特定
の処理を実現した専用回路を提案している。
【0003】近年では、LSI技術の進歩に伴い、従来
から知られる命令に加えて新しい命令を組み込んたプロ
セッサ、例えば“マルチメディア命令”と呼ばれる新し
い命令を組み込んだインテル社製のプロセッサPentium
II等では、内部に備えられる演算装置は益々高機能化
し、ある程度の処理スピードであれば、ハードウェアエ
ンジンを使わずに、画像処理や音声処理などの種々の処
理を実行可能になってきた。しかし、高速な処理スピー
ドが要求される場合には、やはりハードウェアエンジン
が必要である。
【0004】ところで、近年では、内部に複数のメモリ
及び複数の演算装置並びにネットワークとを備えたプロ
セッサ、即ち、例えば米国Chromatic Research社のMpac
tや、Philips社のTrimedia等のように“メディアプロセ
ッサ”と呼ばれるプロセッサでは、画像処理及び音声処
理の2処理のように、複数種類の処理(マルチメディア
処理)を高速に実現しようとしている。前記メディアプ
ロセッサにおいては、例えば画像処理及び音声処理の2
処理を行う場合には、これ等処理及び所望の処理スピー
ドに対応したハードウェアエンジンを設ける必要があ
る。
【0005】
【発明が解決しようとする課題】しかしながら、例えば
画像処理及び音声処理を行うメディアプロセッサと、そ
の他の複数の処理を行うメディアプロセッサとでは、設
けるハードウェアエンジンが異なる。従って、複数のメ
ディアプロセッサでは、実行可能な処理が異なる毎に異
なるハードウェアエンジンを持つため、多品種のプロセ
ッサを設計しなけらばならないという問題点がある。
【0006】本発明は、前記問題点に着目し、その目的
は、多品種のプロセッサを設計することなく、メディア
プロセッサとして汎用性を持たせて、種々のマルチメデ
ィアアプリケーションに適応可能なデータ処理装置を提
供することにある。
【0007】
【課題を解決するための手段】以上の目的を達成するた
め、本発明のデータ処理装置では、少なくとも1個のメ
モリと複数の演算器とネットワークとを備え、実行しよ
うとする処理毎に前記メモリと演算器との間の接続を前
記ネットワークを用いて切換え可能とすると共に、これ
等に流れるデータを効率的に処理する。
【0008】すなわち、請求項1記載の発明のデータ処
理装置は、データが格納された少なくとも1個のデータ
格納部と、複数個の演算部と、前記データ格納部と前記
複数個の演算部との間の結線を切換えるネットワーク
と、前記データ格納部に格納されたデータの読み出し時
に、その読み出すデータが処理すべき有効なデータであ
ることを意味する有効データ特定信号を出力する制御部
と、前記制御部からの有効データ特定信号を受け、前記
データ格納部からのデータの読み出し時から前記複数個
の演算部のうち特定の演算部で演算された結果が得られ
るまでのサイクル数だけ、前記受けた有効データ特定信
号を遅延して出力する遅延回路とを備えることを特徴と
する。
【0009】請求項2記載の発明は、前記請求項1記載
のデータ処理装置において、前記遅延回路は、前記複数
個の演算部に対応して各々備えられる遅延部により構成
され、これ等遅延部は、各々、対応する演算部が演算に
要するサイクル数だけ前記有効データ特定信号を遅延し
て出力することを特徴とする。
【0010】請求項3記載の発明は、前記請求項1又は
請求項2記載のデータ処理装置において、前記制御部
は、データ格納部に格納されたデータ数が与えられるラ
イトポインタと、前記データ格納部からのデータの読み
出し回数が順次与えられるポインタと、前記ライトポイ
ンタの値前記ポインタの値とを比較し、前記ポインタ
の値が前記ライトポインタの値以下のとき、有効データ
特定信号を出力する判断部とを備えることを特徴とす
る。
【0011】
【0012】請求項記載の発明は、前記請求項1又は
請求項2記載のデータ処理装置において、更に、予めデ
ータが格納された主データ格納部と、前記主データ格納
部に格納されたデータを前記複数個のデータ格納部に転
送するデータ転送部とを有し、前記データ転送部は、前
記複数個のデータ格納部からのデータの読み出しを同時
に行うよう指示する同期信号を制御部に出力することを
特徴とする。
【0013】請求項記載の発明は、前記請求項記載
のデータ処理装置において、制御部は、各データ格納部
に対応して、データ格納部の数に等しい個数設けられる
ことを特徴とする。
【0014】請求項記載の発明は、前記請求項記載
のデータ処理装置において、各制御部は、同期信号の入
力後からデータの読み出しを遅延させる設定サイクル数
を記憶する遅延サイクル数レジスタを有し、同期信号の
入力後、前記遅延サイクル数経過した時、データの読み
出しを開始することを特徴とする。
【0015】請求項記載の発明は、前記請求項1又は
請求項2記載のデータ処理装置において、前記ネットワ
ークによる結線の切換えの後での複数個の演算部による
データの演算段数は、前記切換えの前での演算段数と異
なることを特徴とする。
【0016】請求項記載の発明は、前記請求項1又は
請求項2記載のデータ処理装置において、前記ネットワ
ークは、2個以上のデータ格納部から各々データを同一
の演算部に出力するよう、結線を切換えることを特徴と
する。
【0017】請求項記載の発明は、前記請求項1、請
求項2又は請求項記載のデータ処理装置において、前
記ネットワークは、1個のデータ格納部からデータを1
個の演算部に出力し、その後、この演算部の演算結果と
他のデータ格納部のデータとを他の演算部に出力するよ
う、結線を切換えることを特徴とする。
【0018】請求項10記載の発明は、前記請求項1又
は請求項2記載のデータ処理装置において、更に、予め
データが格納された主データ格納部を有し、前記ネット
ワークによる結線の切換情報は、前記主データ格納部に
格納されることを特徴としている。
【0019】請求項11記載の発明は、前記請求項1又
は請求項2記載のデータ処理装置において、前記ネット
ワークは、データ格納部及び制御部から各々データ及び
有効データ特定信号が出力される出力バススイッチと、
前記受けたデータ及び有効データ特定信号を演算部に入
力する入力バススイッチとを有することを特徴としてい
る。
【0020】請求項12記載の発明は、前記請求項11
記載のデータ処理装置において、前記ネットワークは、
複数本のバスと、前記各バス毎に配置されたバススイッ
チとを有し、前記バススイッチは、導通してデータの伝
送を許容し、非導通してデータの伝送を禁止することを
特徴とする。
【0021】請求項13記載の発明は、前記請求項1又
は請求項2記載のデータ処理装置において、複数個の演
算部は、相互に異なる演算を行うことを特徴とする。
【0022】請求項14記載の発明は、前記請求項1又
は請求項2記載のデータ処理装置において、最後の演算
を行う演算部から有効データ特定信号をネットワークを
経て受けて、書込み命令を出力する他の制御部と、前記
最後の演算を行う演算部から最終的に得られた演算結果
を受けると共に、前記他の制御部から書込み命令を受け
て、前記最終的に得られた演算結果を格納する他のデー
タ格納部とを備えたことを特徴とする。
【0023】以上の構成により、請求項1ないし請求項
14記載の発明では、データ格納部からのデータの読み
出し時には、このデータに有効データ特定信号が付与さ
れ、このデータが演算部で演算され、その演算結果デー
タがデータ格納部に格納される際には、同時に前記有効
データ特定信号がこのデータ格納部に入力されるので、
演算段数が異なっても、この演算結果データを有効なデ
ータとして認識できると共に、データ格納部に格納する
ことが可能である。
【0024】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基いて説明する。
【0025】(第1の実施の形態)図1は、本発明にお
ける基本的な原理のデータ処理装置を説明する図であ
る。図2及び図3は、本発明における基本的な動作フロ
ーを説明する図である。図4は、本発明の原理における
各部でのデータを説明する図である。
【0026】図1の原理図の説明においては、次のよう
なプログラムを実施する場合を説明例として取り上げ
る。この例では、配列aとbの各要素を乗算し、その後
に配列cの要素を加算し、この結果を配列dの要素に格
納するものである。
【0027】 図1において、10はデータを蓄えているプロセッサ外部
にある第1のメモリ(主データ格納部)である。16は、
データを処理するデータ処理装置を示し、14は、各部分
にクロックを供給するクロック生成部である。このクロ
ック生成部14は、データ処理装置16内部の各部に対し
て、クロック線15によりクロックを供給し、クロック供
給された各部は、このクロックに同期して、サイクル毎
に一定の処理を行なう。
【0028】20は、データ処理装置16の外部にある第1
のメモリ10からデータを受け取り、これを処理すると共
に、受けたデータを第2のメモリ100 (後述)に転送す
る第1の演算部(データ転送部)、12は、第1のメモリ
10と第1の演算部20とのデータのやり取りを行なうデー
タ線である。本説明では、このデータ線12に3つのデー
タを送ることが可能であることを前提とする。
【0029】2は、前記第1の演算部20及びデータ処理
装置16の実行動作を指示する実行プログラム4と、今後
の処理を行なう入力データ6とを前記第1のメモリ10
へ格納するプログラムローダである。
【0030】100 は第2のメモリ(データ格納部)、22
は、第1の演算部20から第2のメモリ100 へデータを送
るデータ線である。
【0031】50は、前記第2のメモリ100 からのデータ
の読み出しアドレスを示すポインタ60と、第1の演算部
20から第2のメモリ100 へ送られて格納されたワード数
を示すライトポインタ62と、このポインタ60とライトポ
インタ62とを参照比較し、前記第2のメモリ100 からデ
ータ読み出し可能かどうかを判断する実行可能判断部
(判断部)70とからなる第1の制御部(制御部)であ
る。
【0032】前記実行可能判断部70での判断フローを図
3(a)に示す。ポインタ60及びライトポインタ62を参
照し、第2のメモリ100 内にデータの存在を確認するこ
とで、実行可能判断信号72(有効データ特定信号)を生
成する。
【0033】64は、第1の演算部20から第1の制御部50
のポインタ60を設定するポインタ設定線、66は、第1の
演算部20から第1の制御部50のライトポインタ62を設定
するライトポインタ設定線である。68は、第2の制御部
50のポインタ60を第2のメモリ100 へ読み出し、アドレ
スとして示すアドレス線である。32は、第2のメモリ10
0 から読み出したデータを第2の演算部30へ伝えるデー
タ線、72は、第2のメモリ100 及び第2の演算部30へ実
行可能かどうかを伝える実行可能判断信号である。
【0034】本説明では、データ線32は各サイクル毎に
配列a,b,cの要素の3種類を転送することになり、
このデータ線に実行するデータがある場合に、実行可能
判断信号72が例えば“1”の状態になり、実行する意味
のあるデータがあるか否かを示す。よって、このデータ
線32及び実行可能判断信号72は各サイクル毎にペアとな
って、各部間に転送されることになる。
【0035】30は第2の演算部(演算部)であって、こ
の第2の演算部30は、データ線32のデータを受け取り、
クロックに同期してデータを格納するデータラッチ40
と、実行可能判断信号72を格納する実行可能判断信号ラ
ッチ(遅延部)140と、データラッチ40の複数のデータ
を入力し、その何れかを選択して、これ等について乗算
する乗算部(処理部)38と、この乗算部38での結果とデ
ータラッチ40からのデータとを受け取り、これ等の何れ
か複数を第3の演算部130 に送り出す出力セレクタ42か
ら構成される。
【0036】34は、第2の演算部30からデータを出力す
るデータ線、144 は第2の演算部30で実行可能か否かが
判断された実行可能判断信号である。
【0037】130 は第3の演算部(演算部)であって、
この第3の演算部130 は、第2の演算部30からのデータ
線34のデータを受け取り、クロックに同期してデータを
格納するデータラッチ146 と、実行可能判断信号144 を
格納する実行可能判断信号ラッチ(遅延部)142 と、デ
ータラッチ146 の複数のデータを入力し、選択して、こ
れ等について加算する加算部(処理部)136 と、この加
算部136 での結果とデータラッチ146 からのデータとを
受け取り、これ等の何れか複数を第3のメモリ102 に送
り出す出力セレクタ148 から構成される。
【0038】前記2個の実行可能判断信号ラッチ(遅延
部)140,142により、遅延回路141を構成する。
【0039】36は、第3の演算部130 の出力セレクタ14
8 からのデータを出力するデータ線、150 は、第3の演
算部130 で実行可能か否かが判断された実行可能判断信
号である。
【0040】102 は第3のメモリ(他のデータ格納
部)、24は、第3のメモリ102 から第1の演算部20へデ
ータを送るデータ線である。
【0041】120 は第2の制御部(他の制御部)であっ
て、ポインタ160と、前記第3のメモリ102 へデータを
書き込む際にその書き込むアドレスを示すライトポイン
タ162 と、前記第3の実行可能判断信号150 を受け取
り、第3のメモリ102 へデータが書き込み可能か否かを
判断し、書き込み可能と判断した時に書き込み命令を第
3のメモリ102 に出力する実行可能判断部170 から構成
される。
【0042】166 は、第3のメモリ102 へ書き込み可能
か否かを伝える実行可能判断部 170 の実行可能判断信
号である。65は、第1の演算部20から第2の制御部120
のポインタ160 を設定及び参照するポインタ設定線、67
は、第1の演算部20から第2の制御部120 のライトポイ
ンタ162 を設定及び参照するライトポインタ設定線であ
る。168 は、第2の制御部120 のライトポインタ162 の
出力を第3のメモリ102 へ書き込みアドレスとして示す
アドレス線である。
【0043】以下、図1、図2、図3及び図4により動
作を説明する。
【0044】( サイクル #0 以前)本発明におけるデー
タ処理装置のための実行プログラム4及び入力データ6
は、コンパイラ又はアセンブラによって生成され、プロ
グラムローダ2により事前に第1のメモリ10へ格納する
[S000]。
【0045】つまり、入力データ配列a,b,cのデー
タは、入力データ6として、第1のメモリ10の中に格納
され、更に、実行プログラム4には、本発明にかかる原
理動作についてのフローが格納されている。
【0046】ここで、プログラムローダ2としては、外
部プロセッサ等が考えられるが、本発明に関して主要な
点でないので、説明を省略する。
【0047】第1の演算部20は、第1のメモリ10の実行
プログラム4を受け取り、第1の制御部50のポインタ60
及びライトポインタ62を各々“0”に初期化する。
【0048】第1の演算部20は、第1のメモリ10の実行
プログラム4を受け取り、第2の制御部120 のポインタ
160 及びライトポインタ162 を各々“0”に初期化する
[S001]。
【0049】また、第1の制御部50の実行可能判断部70
では、各サイクル毎にポインタ60とライトポインタ62と
を参照比較し、第2のメモリ100 に実行できるデータが
存在しないことを判断している。この動作は、各サイク
ル毎に第1の演算部20とは独立して行なわれている[T00
0]。
【0050】更に、第2の制御部120 の実行可能判断部
170 では、各サイクル毎に第3の演算部130 からの実行
可能判断信号150 を受け取り、書き込みのデータが存在
しないことを判断している。この動作も、各サイクル毎
に第1の演算部20とは独立して行なわれている[U000]。
【0051】第1の演算部20が、第1のメモリ10の実行
プログラム4を受け取り、第1のメモリ10から配列a,
b,cの100 ワードのデータを受け、これ等を順次第2
のメモリ100 に書き込む。
【0052】( サイクル #0)第1の演算部20が、第1の
メモリ10の実行プログラム4を受け取り、“100 ”とい
う数を第1の制御部50のライトポインタ62に、更にポイ
ンタ60に“0”を書き込む。[S002] ( サイクル #1)第1の制御部50の実行可能判断部70で
は、ライトポインタ62とポインタ60とを比較し、ポイン
タが“0”であり、ライトポインタ62が“100 ”に設定
されたため、読み出し可能であることを判断する[T00
0]。
【0053】従って、実行可能判断部70では、実行可能
判断信号72を第2のメモリ100 と第2の演算部30へ送り
出し、第2のメモリ100 では、この信号を元にデータ配
列a,b,cの最初のデータa[0],b[0],c[0]を送り出
す。また、ポインタ60は、配列の1つ分だけインクリメ
ントされる[T001]。
【0054】このサイクル#1での第1の制御部50及び第
2のメモリ100 の動作は、以降、各サイクルでポインタ
60がライトポインタ62の値と同じ“100 ”になるまで
は、継続的に実行される。
【0055】( サイクル #2)第1の制御部50及び第2の
メモリ100 では、サイクル#1と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60は更にアドレス1つ分だけインクリメントされる[T00
0][T001]。
【0056】第2の演算部30のデータラッチ40は、第2
のメモリ100 からa[0],b[0],c[0]の3データを受け取
り、これを乗算部38に送る。乗算部38は、その中のa[0]
及びb[0]を受け取り、乗算操作である(a[0]xb[0]) を行
なう。更に、実行可能判断信号ラッチ140 は、第1の制
御部50からの実行可能判断信号72を受け取り、第3の演
算部130 へ送り出す。また、出力セレクタ42は、乗算部
38からの処理結果データ(a[0]xb[0]) とデータラッチ40
からのデータc[0]を第3の演算部130 へ送り出す。この
サイクルでの第2の演算部30の動作も、以降は、各サイ
クル毎に同様に実行される。
【0057】( サイクル #3)第1の制御部50及び第2の
メモリ100 では、サイクル#2と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60は更にアドレス1つ分だけインクリメントされる[T00
0][T001]。
【0058】第2の演算部30では、サイクル#2と同様の
処理がなされ、配列の次の要素a[1]xb[1] が計算され
る。
【0059】第3の演算部130 のデータラッチ146 は、
第2の演算部30からの処理結果データ(a[0]xb[0]) とデ
ータc[0]との2データを受け取り、これを加算部136 に
送る。加算部136 は、これ等のデータ(a[0]xb[0]) 及び
c[0]を受け取り、加算操作である(a[0]xb[0])+c[0]を行
なう。更に、実行可能判断信号ラッチ142 は、第2演算
部30からの実行可能判断信号144 を受け取り、第2の制
御部120 へ送り出す。また、出力セレクタ148 は、加算
部136 からの処理結果データ(a[0]xb[0])+c[0]を第3の
メモリ102 へ送り出す。このサイクルでの第3の演算部
130 の動作も、以降、各サイクル毎に同様に実行され
る。
【0060】( サイクル #4)第1の制御部50及び第2の
メモリ100 では、サイクル#3と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60は更にアドレス1つ分だけインクリメントされる[T00
0][T001]。
【0061】第2の演算部30では、サイクル#3と同様の
処理がなされ、配列の次の要素a[2]xb[2] が計算され
る。
【0062】第3の演算部130 では、サイクル#3と同様
の処理がなされ、配列の次の要素a[1]xb[1]+c[1]が計算
される。
【0063】第2の制御部120 の実行可能判断部170
は、第3の演算部130 の実行可能判断信号150 を受け、
書き込みが可能なことを判断する[U000]。
【0064】更に、第3のメモリ102 は、第2の制御部
120 の実行可能判断部170 からの実行可能判断信号166
を受け、第3の演算部130 からの結果データをライトポ
インタ162 が示すアドレスに結果データd[0]として書き
込む。同時に、第2の制御部120 のライトポインタ162
の値は、その後+1だけ増加する[U001]。
【0065】つまり、第2の演算部30が受け取るデータ
は、一つ前のサイクルで第2のメモリ100 が送り出した
データ32と、一つ前のサイクルで第1の制御部50が送り
出したデータ実行可能判断信号72である。また、第3の
演算部130 が受け取るデータ及びデータ実行可能判断信
号は、一つ前のサイクルで第2の演算部30が送り出した
データ34と、データ実行可能判断信号144 であり(つま
り、2つ前のサイクルで第2のメモリ100 が送り出した
データと、第1の制御部50が送り出したデータ実行可能
信号)である。更に、第3のメモリ102 と第2の制御部
120 が受け取るデータ及び実行可能判断信号は、第3の
演算部130 が送り出したデータ及び実行可能判断信号で
ある。
【0066】( サイクル #5)第1の制御部50及び第2の
メモリ100 では、サイクル#3と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60は更にアドレス1つ分だけインクリメントされる[T00
0][T001]。
【0067】第2の演算部30では、サイクル#4と同様の
処理がなされ、配列の次の要素a[3]xb[3] が計算され
る。第3の演算部130 では、サイクル#4と同様の処理が
なされ、配列の次の要素a[2]xb[2]+c[2]が計算される。
【0068】第2の制御部120 及び第3のメモリ102 で
は、サイクル#4と同様の処理がなされ、配列の次の要素
d[1]が格納され、ライトポインタ162 は1つ分だけイン
クリメントされる。
【0069】これ以降の各サイクルでは、同様の処理が
なされ、第1の制御部50及び第2のメモリ100 では、ポ
インタ60とライトポインタ62が同じ数である“100 ”に
なるまで繰り返される。また、第2の制御部120 では、
第1の制御部50で生成される実行可能判断信号72をサイ
クル#4からサイクル103 までカウントし、“100 ”サイ
クル分だけ結果データd[0]-d[99]を格納して、プログラ
ムの処理を終了することになる。
【0070】また、第1の演算部20は、実行プログラム
で定められたタイミングで、定期的に第2の制御部120
におけるライトポインタ162 を参照し、その数値が“10
0 ”になっているかどうかを判断することにより、この
プログラムが終了したかどうかを判断する[S003],[S00
4] 。
【0071】つまり、第2のメモリ100 へ格納したデー
タに対して、これ等データを各サイクルで送り出す毎
に、この各データに対応して、処理の実行が可能かどう
かを示す実行可能判断信号を第1の制御部50の実行可能
判断部70から出力して付加し、データと実行可能判断信
号とをペアとして、第2及び第3の演算部30、130 に送
出し、更に、これ等各演算部では、処理後のデータと、
更に入力された実行可能判断信号とをペアとして出力す
る。また、複数段の演算部を通過した後、その演算処理
後のデータをメモリに書き込む際に、データとペアにな
って送られてくる実行可能判断信号を参照して、演算処
理すべきデータが演算処理されて得られた有効なデータ
が存在するか否かをそのメモリ側で判断することによ
り、演算部の段数がどのような複数段になっていても、
処理結果のデータを間違いなく書き込むことが可能にな
る。
【0072】以上の原理を利用し、この原理を、複数の
メモリとこれに対応する複数の制御部と、複数の段数を
持つ複数の演算部とを持ち、これ等を複数のパスを持つ
ネットワークで結び、このネットワークの連結状況を、
第1の演算部からのネットワーク構成線により再構成す
る場合に拡張する。
【0073】図5は、本発明における第1の実施の形態
のデータ処理装置を説明する図である。本発明の第1の
実施の形態において、原理と異なる点を以下に述べる。
【0074】270 は第1の制御部50からの実行可能判断
信号、324 は第2のメモリ100 からのデータ線である。
260 は第4のメモリ(データ格納部)、250 は、第4の
メモリ260 を制御する第3の制御部(制御部)である。
これ等は、機能的には、第2のメモリ100 と第1の制御
部100 と各々同様である。
【0075】240 は、実行可能判断信号(バス)172,17
4,176,178 と、データ線(バス)171,173,175,177 との
ペアを4つ持つネットワークである。
【0076】182,184,190,194,196 は、ネットワーク24
0 に対して実行可能判断信号とデータを出力するための
出力バススイッチである。この出力バススイッチは、ネ
ットワーク240 の何れかに対して、プログラマブルに実
行可能判断信号及びデータを出力することが可能であ
り、この選択方法は、実行プログラム4中にプログラム
されている。
【0077】180,186,188,192 は、ネットワーク240 内
の何れかから、実行可能判断信号とデータを各演算部に
プログラマブルに入力するための入力バススイッチであ
り、この選択方法は、出力バススイッチと同様に、実行
プログラム4中にプログラムされている。
【0078】400 は、前記入力バススイッチ及び出力バ
ススイッチを制御するデータ処理装置構成線である。
【0079】以上が、本発明の第1の実施の形態におい
て原理と異なる点である。
【0080】図6及び図7は、本実施の形態において、
ネットワーク構成線により構成されたネットワークにお
けるデータの流れを説明する図である。
【0081】図5に示したデータ処理装置において、[
プログラム1]を実行するためには、図6に示すように、
第1の制御部50の実行可能判断信号270 と第2のメモリ
100 のデータ線324 とのペアを、ネットワーク240 の実
行可能判断信号172 とデータ線171 とに出力するよう
に、出力バススイッチ182 を切替える。また、第2の演
算部30への入力バススイッチ180 を実行可能判断信号17
2 とデータ線171 から行なうように切替える。更に、第
3の演算部130 からの実行可能判断信号276 とデータ線
322 とをネットワーク240 の実行可能判断信号174 とデ
ータ線173 に出力するように出力バススイッチ184 を切
替える。加えて、第2の制御部120 及び第3のメモリ10
2 への実行可能信号276 とデータ線330 とをネットワー
ク240 の実行可能判断信号174 とデータ線173 とから入
力するように入力バススイッチ188 を切替えることによ
り、同様の動作が行なえる。尚、タイミングについて
は、前記原理の説明と同様であるので、その説明は省略
する。
【0082】ここで、更に、第4の演算部200 を第2の
演算部30と同様の乗算機能を持つ演算部として考え、第
5の演算部210 を第3の演算部130 と同様の加算機能を
持つ演算部として考える。
【0083】この場合に、次のプログラムを考える。
【0084】 この[ プログラム2]が、前記[ プログラム1]と異なる点
は、乗算と加算の回数が各々2回であることである。つ
まり、データ処理装置16において、ネットワーク240 か
ら入力されたデータが第2の演算部30と第3の演算部13
0 とで乗算/ 加算され、その後に、ネットワーク240 を
介して他の演算部( 第4の演算部200 と第5の演算部21
0)に再び入力され、更に乗算/ 加算される点である。
【0085】ネットワーク240 の切替え方を以下のよう
に設定すれば、上記のプログラムを実現することが可能
になる。以下の内容は、プログラムのコンパイル時にコ
ンパイラ等によって生成される内容であり、例えば、実
行プログラム4上に設定データとして格納されている。
【0086】図7に示すように、第1の制御部50の実行
可能判断信号270 と第2のメモリ100 のデータ線324 と
のペアを、ネットワーク240 の実行可能判断信号172 と
データ線171 とに出力するように出力バススイッチ182
を切替え、また、第2の演算部30への入力バススイッチ
180 を実行可能判断信号172 とデータ線171 とから行な
うように切替える。更に、第3の演算部130 からの実行
可能判断信号276 とデータ線322 とをネットワーク240
の実行可能判断信号174 とデータ線173 とに出力するよ
うに出力バススイッチ184 を切替え、加えて、第4の演
算部200 への入力バススイッチ186 を実行可能判断信号
174 とデータ線173 とを入力するように切替える。ま
た、第5の演算部210 からの実行可能判断信号280 とデ
ータ線328 とをネットワーク240 の実行可能判断信号17
6 とデータ線175 とに出力するように出力バススイッチ
190 を切替える。更に、第2の制御部120 への実行可能
信号276 とデータ線330 とをネットワーク240 の実行可
能判断信号176 とデータ線175 とから入力するように入
力バススイッチ188 を切替える。これにより、同様の動
作が行なえる。
【0087】図8及び図9は、本発明の第1実施の形態
の[ プログラム2]における各部でのデータを説明する図
である。
【0088】次に、本発明の第1の実施の形態を、図
2、図3、図5、図6、図7、図8及び図9を用いて説
明する。
【0089】( サイクル #0 以前)本発明のデータ処理
装置のための実行プログラム4及び入力データ6は、コ
ンパイラ又はアセンブラによって生成され、プログラム
ローダ2により事前に第1のメモリ10へ格納される[S00
0]。
【0090】つまり、入力データ配列a,b,cのデー
タは、入力データ6として、第1のメモリ10の中に格納
され。更に、実行プログラム4には、本発明にかかる実
施の形態の動作についてのフローが格納されている。
【0091】ここで、プログラムローダは、外部プロセ
ッサ等が考えられるが、本発明に関して主要な点でない
ので、説明を省略する。
【0092】第1の演算部20は第1のメモリ10の実行プ
ログラム4を受け取り、第1の制御部50のポインタ60及
びライトポインタ62を各々“0”に初期化する。
【0093】第1の演算部20は第1のメモリ10の実行プ
ログラム4を受け取り、第2の制御部120 のポインタ16
0 及びライトポインタ162 を各々“0”に初期化する。
【0094】第1の演算部20は第1のメモリ10の実行プ
ログラム4を受け取り、各入力バススイッチ及び各出力
バススイッチの接続構成を、ネットワーク構成線400 に
より設定する[S001]。
【0095】また、第1の制御部50の実行可能判断部70
では、各サイクル毎にポインタ60とライトポインタ62と
を参照比較し、第2のメモリ100 に実行できるデータが
存在しないことを判断している[T000]。
【0096】更に、第2の制御部120 の実行可能判断部
170 では、各サイクル毎に第3の演算部130 からの実行
可能判断信号150 を受け取り、書き込みデータが存在し
ないことを判断している[U000]。
【0097】第1の演算部20は、第1のメモリ10の実行
プログラム4を受け取ると共に、第1のメモリ10から配
列a,b,cの“100 ”ワードのデータを受け取り、こ
れ等を順次第2のメモリ100 に書き込む。
【0098】( サイクル #0)第1の演算部20は第1のメ
モリ10の実行プログラム4を受け取り、“100 ”という
数を第1の制御部50のライトポインタ62に書き込むと共
に、ポインタ60には“0”を書き込む[S002]。
【0099】( サイクル #1)第1の制御部50の実行可能
判断部70では、ライトポインタ62とポインタ60とを比較
し、ポインタが“0”であり、ライトポインタ62が“10
0 ”に設定されたので、読み出し可能であることを判断
する[T000]。
【0100】従って、実行可能判断部70は、これを第2
のメモリ100 に送り出すと共に、ネットワーク240 の実
行可能判断信号172 を介して第2の演算部30へ送り出
す。
【0101】第2のメモリ100 では、この実行可能判断
信号172 を元に、データ配列a,b,cの最初のデータ
a[0],b[0],c[0]をネットワーク240 のデータ線171 に送
り出す。また、ポインタ60の値は、配列の1つ分だけイ
ンクリメントされる[T001]。
【0102】このサイクル#1での第1の制御部50及び第
2のメモリ100 の動作は、以降、各サイクルでポインタ
60の値がライトポインタ62の値と同じ“100 ”の値にな
るまでは、継続的に実行される。
【0103】( サイクル #2)第1の制御部50及び第2の
メモリ100 では、サイクル#1と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60は更にアドレス1つ分だけインクリメントされる[T00
0][T001]。
【0104】第2の演算部30のデータラッチ40では、第
2のメモリ100 からa[0],b[0],c[0]の3データを受け取
り、これを乗算部38に送る。乗算部38は、その中のa[0]
を受け取り、乗算操作であるa[0]xa[0] を行なう。更
に、実行可能判断信号ラッチ140 は、第1の制御部50か
らの実行可能判断信号172 を受け取り、第3の演算部13
0 へ送り出す。また、出力セレクタ42は、乗算部38から
の処理結果データ(a[0]xa[0]) とデータラッチ40からの
データb[0],c[0]を第3の演算部130 へ送り出す。この
サイクルでの第2の演算部30の動作も、以降、各サイク
ル毎に同様に実行される。
【0105】( サイクル #3)第1の制御部50及び第2の
メモリ100 では、サイクル#2と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60の値は更にアドレス1つ分だけインクリメントされる
[T000][T001]。
【0106】第2の演算部30では、サイクル#2と同様の
処理がなされ、配列の次の要素a[1]xa[1] が計算され
る。
【0107】第3の演算部130 のデータラッチ146 は、
第2の演算部30からデータ(a[0]xa[0]) ,データb[0]、
c[0]の3つを受け取り、これを加算部136 に送る。加算
部136 は、(a[0]xa[0]) 及びc[0]を受け取り、加算操作
である(a[0]xa[0])+c[0]を行なう。更に、実行可能判断
信号ラッチ142 は、第2の演算部30からの実行可能判断
信号144 を受け取り、ネットワーク240 の実行可能判断
信号174 へ送り出す。また、出力セレクタ148 は、加算
部136 からの処理結果データ(a[0]xa[0])+c[0]とデータ
b[0]とをネットワーク240 のデータ線173 へ送り出す。
このサイクルでの第3の演算部130 の動作も、以降、各
サイクル毎に同様に実行される。
【0108】( サイクル #4)第1の制御部50及び第2の
メモリ100 では、サイクル#3と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60の値は更にアドレス1つ分だけインクリメントされる
[T000][T001]。
【0109】第2の演算部30では、サイクル#3と同様の
処理がなされ、配列の次の要素a[2]xa[2] が計算され
る。
【0110】第3の演算部130 では、サイクル#3と同様
の処理がなされ、配列の次の要素a[1]xa[1]+c[1]が計算
される。
【0111】第4の演算部200 のデータラッチでは、ネ
ットワーク240 のデータ線173 からa[0]xa[0]+c[0],b
[0] の2データを受け取り、これを乗算部に送る。乗算
部は、その中のb[0]を受け取り、乗算操作であるb[0]xb
[0] を行なう。更に、第4の演算部200 の実行可能判断
信号ラッチは、ネットワーク240 の実行可能判断信号17
4 を受け取り、第5の演算部210 へ送り出す。また、第
4の演算部200 の出力セレクタは、乗算部からの処理結
果データ(b[0]xb[0]) と、データラッチからのデータa
[0]xa[0]+c[0]とを第5の演算部210 へ送り出す。この
サイクルでの第4の演算部200 の動作も、以降、各サイ
クル毎に同様に実行される。
【0112】( サイクル #5)第1の制御部50及び第2の
メモリ100 では、サイクル#4と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60の値は更にアドレス1つ分だけインクリメントされる
[T000][T001]。
【0113】第2の演算部30では、サイクル#4と同様の
処理がなされ、配列の次の要素a[3]xa[3] が計算され
る。
【0114】第3の演算部130 では、サイクル#4と同様
の処理がなされ、配列の次の要素a[2]xa[2]+c[2]が計算
される。
【0115】第4の演算部200 では、サイクル#4と同様
の処理がなされ、配列の次の要素b[1]xb[1] が計算され
る。
【0116】第5の演算部210 のデータラッチは、第4
の演算部200 から(a[0]xa[0]+c[0]),b[0]xb[0] の2つ
のデータを受け取り、これを加算部に送る。加算部は、
データ(a[0]xa[0]+c[0])及びb[0]xb[0] を受け取り、加
算操作である(a[0]xa[0]+c[0])+(b[0]xb[0])を行なう。
更に、実行可能判断信号ラッチは、第4の演算部200 か
らの実行可能判断信号214 を受け取り、ネットワーク24
0 の実行可能判断信号280/176 へ送り出す。また、出力
セレクタは、加算部からの処理結果データa[0]xa[0]+b
[0]xb[0]+c[0]をネットワーク240 のデータ線175 へ送
り出す。このサイクルでの第5の演算部210 の動作も、
以降、各サイクル毎に同様に実行される。
【0117】( サイクル #6)第1の制御部50及び第2の
メモリ100 では、サイクル#5と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60の値は更にアドレス1つ分だけインクリメントされる
[T000][T001]。
【0118】第2の演算部30では、サイクル#5と同様の
処理がなされ、配列の次の要素a[4]xa[4] が計算され
る。
【0119】第3の演算部130 では、サイクル#5と同様
の処理がなされ、配列の次の要素a[3]xa[3]+c[3]が計算
される。
【0120】第4の演算部200 では、サイクル#5と同様
の処理がなされ、配列の次の要素b[2]xb[2] が計算され
る。
【0121】第5の演算部210 では、サイクル#5と同様
の処理がなされ、配列の次の要素a[1]xa[1]+b[1]xb[1]+
c[1]が計算される。
【0122】第2の制御部120 の実行可能判断部170
は、第5の演算部210 の実行可能判断信号をネットワー
ク240 の実行可能判断信号176 を介して受け、書き込み
が可能なことを判断する[U000]。
【0123】更に、第3のメモリ102 は、実行可能判断
部170 からの実行可能判断信号166 を受け、第5の演算
部210 からの結果データをネットワーク240 のデータ線
175 を介して受け、ライトポインタ162 が示すアドレス
に結果データd[0]として書き込む。同時に、第2の制御
部120 のライトポインタ162 の値は、その後、+1だけ増
加する[U001]。
【0124】( サイクル #7)第1の制御部50及び第2の
メモリ100 では、サイクル#5と同様の動作がなされ、
a,b,cの配列の次のデータが読み出され、ポインタ
60の値は更にアドレス1つ分だけインクリメントされる
[T000][T001]。
【0125】第2の演算部30では、サイクル#6と同様の
処理がなされ、配列の次の要素a[5]xa[5] が計算され
る。
【0126】第3の演算部130 では、サイクル#6と同様
の処理がなされ、配列の次の要素a[4]xa[4]+c[4]が計算
される。
【0127】第4の演算部200 では、サイクル#6と同様
の処理がなされ、配列の次の要素b[3]xb[3] が計算され
る。
【0128】第5の演算部210 では、サイクル#6と同様
の処理がなされ、配列の次の要素a[2]xa[2]+b[2]xb[2]+
c[2]が計算される。
【0129】第3のメモリ102 では、サイクル#6と同様
の処理がなされ、配列の次の要素d[1]が格納される。ラ
イトポインタ162 の値は、1つ分だけインクリメントさ
れる。
【0130】以降の各サイクルでは、同様の処理がなさ
れ、第1の制御部50及び第2のメモリ100 では、ポイン
タ60とライトポインタ62とが同じ数“100 ”になるまで
処理が繰り返される。また、第2の制御部120 では、第
1の制御部50で生成される実行可能判断信号をサイクル
#6からサイクル105 までカウントし、100 サイクル分だ
け結果データd[0]-d[99]を格納して、プログラムの処理
を終了する。また、第1の演算部20では、実行プログラ
ムで定められたタイミングで、定期的に第2の制御部12
0 におけるライトポインタ162 を参照し、その数値が
“100 ”になっているか否かを判断することにより、こ
のプログラムが終了したかどうかを判断する[S003],[S0
04] 。
【0131】ここで、[ プログラム1]のような第2の演
算部30/ 第3の演算部130 のみで処理される場合であれ
ば、演算処理に必要とするサイクルが“2”であるが、
[ プログラム2]のように、第2の演算部30/ 第3の演算
部130 を経て、第4の演算部200/第5の演算部210 で処
理を行なうようにネットワーク240 を組み換えた場合に
は、演算処理に必要とするサイクルが“4”になる。
【0132】つまり、このようなデータの送出側におい
て、データに対して、データが実行可能か否か(つま
り、データが存在するか否か)を示す実行可能判断信号
を付加することにより、その先での演算段数が可変にな
っても、データの書き込み側においてこれを判断するこ
とにより、送られてくるデータを同様に書き込むことが
可能になる。更に、メモリと各演算部との間に複数のパ
スを持つネットワークを配置し、これを切替えることに
より、より柔軟なプログラム性が実現できる。
【0133】(第2の実施の形態)図10は、本発明の
第2の実施の形態のデータ処理装置を示す。
【0134】前記第1の実施の形態と異なる点は、第1
の演算部20から各制御部50,120 ,250 に対して、各メ
モリ100,260 に格納された配列データa,b,c,d,
e,fを送り始めるサイクルを示す同期信号600 を入力
する点である。
【0135】また、更に、第1の実施の形態と異なる点
は、第1の制御部、第2のメモリ、第2の演算部及び第
3の演算部と、第2の制御部、第3のメモリ、第4の演
算部及び第5の演算部と、第3の制御部、第4のメモ
リ、第6の演算部及び第7の演算部との間のネットワー
ク240 に対して、各々のバスを分離するためのバススイ
ッチ350,360(352,354,356,358,362,364,366,368)を設け
た点である。
【0136】前記バススイッチは、スイッチをONするこ
とにより、双方向に導通することが可能であり、また、
OFF にすることにより、各スイッチ間で個別にデータの
やり取りが行ない得る。従って、これ等バススイッチを
切替えることにより、より高いプログラム性が得られ
る。
【0137】第2の実施の形態では、次のプログラムを
考える。
【0138】 この[ プログラム3]が前記[ プログラム2]と異なる点
は、演算される入力データ配列数が多いことである。つ
まり、既述の原理の説明では、データ線1本当りに3デ
ータを送ることとしているので、前記のようなプログラ
ムでは、複数のメモリに渡り格納し、これを演算部分に
送る必要がある。
【0139】このため、演算の最終段(g[iii]= t1*t2;)
において、お互いの入力データ(t1,t2) の同期を取る必
要がある。また、取り扱うデータ配列数が多いため(6種
類) に、それだけネットワークの使用度も高くなる。
【0140】ネットワークの切替え方を以下のようにす
ることにより、前記プログラムを実現することが可能に
なる。以下の内容は、プログラムのコンパイル時にコン
パイラ等によって生成される内容であり、例えば、実行
プログラム上に設定データとして格納されている。
【0141】図11は、本実施の形態において、ネット
ワーク構成線により構成されたネットワークにおけるデ
ータの流れを説明する図である。
【0142】図10に示したデータ処理装置において、
[ プログラム3]を実行するためには、図11に示すよう
に、第1の制御部50の実行可能判断信号270 と、第2の
メモリ100 のデータ線324 とのペアを、ネットワーク24
0 の実行可能判断信号172 とデータ線171 とに出力する
ように、出力バススイッチ182 を切替えると共に、実行
可能判断信号172 とデータ線171 から第2の演算部30へ
信号を出力するように、入力バススイッチ180 を切替え
る。また、第3の演算部130 からの実行可能判断信号27
6 とデータ線322 とを、ネットワーク240 の実行可能判
断信号174 とデータ線173 とに出力するように出力バス
スイッチ184 を切替える。
【0143】バススイッチ350 では、バススイッチ352
は、第1の制御部50、第2のメモリ100 、第2の演算部
30、及び第3の演算部130 で個別にデータを必要とする
ため、OFF に設定し、また、バススイッチ354 は、第3
の演算部130 の結果を第4の演算部200 に送る必要があ
るため、ONに設定する。
【0144】第3の制御部250 の実行可能判断信号286
と第4のメモリ260 のデータ線336 とのペアを、ネット
ワーク240 の実行可能判断信号172 とデータ線171 に出
力するように出力バススイッチ194 を切替えると共に、
実行可能判断信号172 とデータ線171 とから第6の演算
部220 に信号を入力するように、入力バススイッチ192
を切替え、更に、第7の演算部230 からの実行可能判断
信号284 とデータ線334 とをネットワーク240 の実行可
能判断信号174 とデータ線173 に出力するように出力バ
ススイッチ196 を切替える。
【0145】バススイッチ360 では、バススイッチ262
は第3の制御部250 、第4のメモリ260 、第6の演算部
220 及び第7の演算部230 で個別にデータを必要とする
ので、OFF に設定し、また、バススイッチ364 は第7の
演算部230 の結果を第4の演算部200 に送る必要がある
ので、ONに設定する。
【0146】実行可能判断信号174 とデータ線173 とを
第4の演算部200 へ入力するように、入力バススイッチ
186 を切替えると共に、第5の演算部210 からの実行可
能判断信号280 とデータ線328 とをネットワーク240 の
実行可能判断信号176 とデータ線175 とに出力するよう
に、出力バススイッチ190 を切替える。更に、ネットワ
ーク240 の実行可能判断信号176 とデータ線175 とから
第2の制御部120 への実行可能信号276 とデータ線330
に信号を入力するように、入力バススイッチ188 を切替
える。以上により、前記と同様の動作が行い得る。
【0147】図12及び図13は、本発明の第2実施の
形態の基本的な動作フローを説明する図である。図14
及び図15は、本発明の第2実施の形態の[ プログラム
3]における各部でのデータを説明する図である。
【0148】以下、本発明の第2の実施の形態を図1
0、図11、図12、図13、図14及び図15を用い
て説明する。
【0149】( サイクル #0 以前)本発明におけるデー
タ処理装置のための実行プログラム及び入力データは、
コンパイラ又はアセンブラによって生成され、プログラ
ムローダにより事前に第1のメモリ10へ格納される[S10
0]。
【0150】つまり、入力データ配列a、b、c、d、
e、fは、入力データ6として、第1のメモリ10の中に
格納され。更に、実行プログラム4には、本発明に係る
以下に行なう動作についてのフローが格納されている。
ここで、プログラムローダとしては、外部プロセッサ等
が考えられるが、本発明に関して主要な点でないので、
説明を省略する。
【0151】第1の演算部20は、第1のメモリ10の実行
プログラムを受け取り、第1の制御部50のポインタ60及
びライトポインタ62を各々“0”に初期化する。第1の
演算部20は、第1のメモリ10の実行プログラムを受け取
り、第2の制御部120 のポインタ160 及びライトポイン
タ162 を各々“0”に初期化する。更に、第1の演算部
20は、第1のメモリ10の実行プログラムを受け取り、第
3の制御部250 のポインタ及びライトポインタを各々
“0”に初期化する。第1の演算部20は、第1のメモリ
10の実行プログラムを受け取り、各入力バススイッチ、
各出力バススイッチ及び各バススイッチの接続構成を、
先に示したようにネットワーク構成線400 により設定す
る[S101]。
【0152】また、第1の制御部50及び第3の制御部25
0 の実行可能判断部では、各サイクル毎にポインタ、ラ
イトポインタの値及び同期信号600 を参照して、第2の
メモリ100 及び第4のメモリ260 に実行できるデータが
存在せず、実行開始ができないことを判断している[T10
0]。
【0153】更に、第2の制御部120 の実行可能判断部
170 では、各サイクル毎に第3の演算部130 からの実行
可能判断信号150 を受け取り、書き込みデータが存在し
ないことを判断している[U100]。
【0154】第1の演算部20は、第1のメモリ10の実行
プログラムを受け取り、第1の演算部20は、第1のメモ
リ10から配列a,b,cの100 ワードのデータを受け取
り、これ等を順次第2のメモリ100 に書き込む。更に、
“100 ”という数を第1の制御部50のライトポインタ62
に、更にポインタ60には“0”を書き込む。[S102]ま
た、同様に、第4のメモリ260 にも、配列d、e、fの
100 ワードを書き込み、更に、同様に、第3の制御部25
0 のライトポインタ及びポインタを各々“100 ”と
“0”とに設定する。
【0155】( サイクル #0)第1の演算部20は、第1の
メモリ10の実行プログラムを受け取り、同期信号線600
に同期信号を計算開始信号として出力する[S103]。
【0156】( サイクル #1)第1の制御部50は、ライト
ポインタ62とポインタ60とを比較し、更に同期信号線60
0 を参照し、ポインタが“0”であり、ライトポインタ
62が“100 ”に設定され、且つ、同期信号が示されたの
で、読み出し可能であるとを判断し、これを第2のメモ
リ100 に出力すると共にネットワーク240 の実行可能判
断信号172 を介して第2の演算部30へ送り出す。第2の
メモリ100 では、この信号を元にデータ配列a,b,c
の最初のデータa[0],b[0],c[0]をネットワーク240 のデ
ータ線171 に送り出す。また、ポインタ60の値は、配列
の1つ分だけインクリメントされる[T100],[T101] 。
【0157】第3の制御部250 及び第4のメモリ260 で
も同様の動作が実行される。このような動作は、各々の
制御部及びメモリにおいて、各サイクル毎に、ポインタ
がライトポインタの値と同じ“100 ”になるまでは、継
続的に実行される。
【0158】( サイクル #2)第1の制御部50及び第2の
メモリ100 では、サイクル#1と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0159】第3の制御部250 及び第4のメモリ260 で
は、サイクル#1と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0160】第2の演算部30では、ネットワーク240 の
データ線171 から第2のメモリ100 の3種類のデータを
受け取り、乗算操作であるa[0]xb[0] を行ない、更に、
第1の制御部50からの実行可能判断信号72を一時的に1
サイクルだけ遅延し、処理結果データ(a[0]xb[0]),c
[0]、及び遅延した実行可能判断信号を第3の演算部130
へ送り出す。この第2の演算部30の動作も、各サイク
ル毎に実行されている。
【0161】第6の演算部220 では、ネットワーク240
のデータ線171 から第4のメモリ260 の3種類のデータ
を受け取り、乗算操作であるd[0]xe[0] を行ない、更
に、一次的に第3の制御部250 からの実行可能判断信号
286 を一時的に1サイクルだけ遅延し、処理結果データ
(d[0]xe[0]),f[0]、及び遅延した実行可能判断信号を第
7の演算部230 へ送り出す。この第6の演算部220 の動
作も、各サイクル毎に実行される。
【0162】( サイクル #3)第1の制御部50及び第2の
メモリ100 では、サイクル#2と同様の動作がなされ、ポ
インタの値60は更にアドレス1つ分だけインクリメント
される。
【0163】第3の制御部250 及び第4のメモリ260 で
は、サイクル#2と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0164】第2の演算部30では、サイクル#2と同様の
処理がなされ、配列の次の要素a[1]xb[1] が計算され
る。
【0165】第6の演算部220 では、サイクル#2と同様
の処理がなされ、配列の次の要素d[1]xe[1] が計算され
る。
【0166】第3の演算部130 では、第2の演算部30か
らの処理結果データを受け取り、加算a[0]xb[0]+c[0]を
行ない、更に、一時的に第2の演算部30からの実行可能
判断信号を1サイクルだけ遅延し、処理結果データa[0]
xb[0]+c[0]、及び遅延した実行可能判断信号をネットワ
ーク240 の実行可能判断信号174 とデータ線173 とに送
り出す。
【0167】第7の演算部230 では、第6の演算部220
からの処理結果データを受け取り、加算d[0]xe[0]+f[0]
を行ない、更に、一時的に第6の演算部220 からの実行
可能判断信号を1サイクルだけ遅延し、処理結果データ
d[0]xe[0]+f[0]、及び遅延した実行可能判断信号をネッ
トワーク240 の実行可能判断信号174 とデータ線173 と
に送り出す。
【0168】( サイクル #4)第1の制御部50及び第2の
メモリ100 では、サイクル#3と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0169】第3の制御部250 及び第4のメモリ260 で
は、サイクル#3と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0170】第2の演算部30では、サイクル#3と同様の
処理がなされ、配列の次の要素a[2]xa[2] が計算され
る。
【0171】第6の演算部220 では、サイクル#3と同様
の処理がなされ、配列の次の要素d[2]xe[2] が計算され
る。
【0172】第3の演算部130 では、サイクル#3と同様
の処理がなされ、配列の次の要素a[1]xb[1]+c[1]が計算
される。
【0173】第7の演算部230 では、サイクル#3と同様
の処理がなされ、配列の次の要素d[1]xe[1]+f[1]が計算
される。
【0174】第4の演算部200 では、ネットワーク240
のデータ線173 から第3の演算部130 からの処理結果t1
(=a[0]xb[0]+c[0]) と、第7の演算部230 からの処理結
果t2(=d[0]xe[0]+f[0]) と、各々の制御部からの実行可
能判断信号とを同時に受け取り、この両者の乗算t1xt2
を行ない、更に、一時的に実行可能判断信号を1サイク
ルだけ遅延し、処理結果データ及び遅延した実行可能判
断信号を第5の演算部210 へ送り出す。
【0175】ここで、#0サイクルによって、同期信号線
を生成することにより、第2のメモリ100 及び第4のメ
モリ260 からの同サイクルでのデータ送信が行なわれ
て、このサイクルでの第4の演算部200 への処理結果t
1、t2の同時入力が可能となっている。
【0176】( サイクル #5)第1の制御部50及び第2の
メモリ100 では、サイクル#4と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0177】第3の制御部250 及び第4のメモリ260 で
は、サイクル#4と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0178】第2の演算部30では、サイクル#4と同様の
処理がなされ、配列の次の要素a[3]xa[3] が計算され
る。
【0179】第6の演算部220 では、サイクル#4と同様
の処理がなされ、配列の次の要素d[3]xe[3] が計算され
る。
【0180】第3の演算部130 では、サイクル#4と同様
の処理がなされ、配列の次の要素a[2]xb[2]+c[2]が計算
される。
【0181】第7の演算部230 では、サイクル#4と同様
の処理がなされ、配列の次の要素d[2]xe[2]+f[2]が計算
される。
【0182】第4の演算部200 では、サイクル#4と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0183】第5の演算部210 では、第4の演算部200
からの処理結果データを受け取り、加算に対する処理が
ないので、第4の演算部200 から受けたデータ自体と、
更に、第4の演算部200 からの実行可能判断信号を一時
的に1サイクルだけ遅延した実行可能判断信号とを、ネ
ットワーク240 の実行可能判断信号176 とデータ線175
とに送り出す。
【0184】( サイクル #6)第1の制御部50及び第2の
メモリ100 では、サイクル#5と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0185】第3の制御部250 及び第4のメモリ260 で
は、サイクル#5と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0186】第2の演算部30では、サイクル#5と同様の
処理がなされ、配列の次の要素a[4]xb[4] が計算され
る。
【0187】第6の演算部220 では、サイクル#5と同様
の処理がなされ、配列の次の要素d[4]xe[4] が計算され
る。
【0188】第3の演算部130 では、サイクル#5と同様
の処理がなされ、配列の次の要素a[3]xb[3]+c[3]が計算
される。
【0189】第7の演算部230 では、サイクル#5と同様
の処理がなされ、配列の次の要素d[3]xe[3]+f[3]が計算
される。
【0190】第4の演算部200 では、サイクル#5と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0191】第5の演算部210 では、サイクル#5と同様
の処理がなされ、第4の演算部200 からのデータをその
まま出力する。
【0192】第3のメモリ102 は、ネットワーク240 の
実行可能判断信号176 を受け、書き込みが可能なことを
判断し、データ線175 からの結果データをライトポイン
タ162 のアドレスに、結果データg[0]として書き込む。
同時に、第2の制御部120 のライトポインタ162 の値
は、その後、+1だけ増加する。
【0193】( サイクル #7)第1の制御部50及び第2の
メモリ100 では、サイクル#6と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0194】第3の制御部250 及び第4のメモリ260 で
は、サイクル#6と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0195】第2の演算部30では、サイクル#6と同様の
処理がなされ、配列の次の要素a[5]xb[5] が計算され
る。
【0196】第6の演算部220 では、サイクル#6と同様
の処理がなされ、配列の次の要素d[5]xe[5] が計算され
る。
【0197】第3の演算部130 では、サイクル#6と同様
の処理がなされ、配列の次の要素a[4]xb[4]+c[4]が計算
される。
【0198】第7の演算部230 では、サイクル#6と同様
の処理がなされ、配列の次の要素d[4]xe[4]+f[4]が計算
される。
【0199】第4の演算部200 では、サイクル#6と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0200】第5の演算部210 では、サイクル#6と同様
の処理がなされ、第4の演算部200 からのデータをその
まま出力する。
【0201】また、第3のメモリ102 では、サイクル#6
と同様の処理がなされ、配列の次の要素d[1]が格納され
て、ライトポインタ162 の値は1つ分だけインクリメン
トされる。
【0202】以降の各サイクルでは、同様の処理がなさ
れ、第1の制御部50及び第2のメモリ100 と、第3の制
御部250 及び第4のメモリ260 とでは、ポインタとライ
トポインタとの各値が同じ数“100 ”になるまで繰り返
される。
【0203】また、第2の制御部120 では、第1の制御
部50で生成される実行可能判断信号をサイクル#6からサ
イクル105 までカウントし、100 サイクル分だけ結果デ
ータd[0]-d[99]を格納した時点で、プログラムの処理を
終了する。
【0204】また、第1の演算部20では、実行プログラ
ムで定められたタイミングで、定期的に第2の制御部12
0 におけるライトポインタ162 の値を参照し、その数値
が“100 ”になっているかどうかを判断して、プログラ
ムが終了したか否かを判断する[S104],[S105] 。
【0205】つまり、[ プログラム3]では、第1の演算
部20から、第1の制御部50と第3の制御部250 の各実行
可能判断部に対して、読み出し開始を示す同期信号600
を出力し、この同期信号を参照して、第2のメモリ100
及び第4のメモリ260 からの配列データ及び実行可能判
断信号を同期させることにより、第4の演算部200 での
データ入力の同期が行なえるので、実行を行なう配列デ
ータの数が多くなった際にも、誤りなくプログラムの実
行が可能となる。
【0206】更に、各制御部、メモリ及び演算部間にお
けるネットワーク240 において、各々の実行可能判断信
号及びデータ線を孤立又は接続するバススイッチ250 、
260 を設けることにより、より多数の本数のデータの接
続が可能となる。
【0207】(第3の実施の形態)図16は、本発明の
第3の実施の形態のデータ処理装置を示す。
【0208】前記第2の実施の形態と異なる点は、第1
の演算部20から各制御部に対して同期信号600 が送出さ
れた後に挿入する遅延サイクルを格納する遅延サイクル
数レジスタ700,710,720 を設けた点である。この遅延サ
イクル数レジスタを設けることにより、各制御部でのデ
ータ送信開始サイクルを個別に設定することが可能にな
る。
【0209】本第3の実施の形態では、次のプログラム
を考える。
【0210】 本[ プログラム4]が前記[ プログラム3]と異なる点は、
結果データt2を求めるための演算段数(0段) が、t1の演
算段数(2段) と異なるので、この結果データを求める演
算の際に同期を取るためには、この演算段数の差(2段)
だけ、遅らせる手段が必要となる点である。
【0211】図17は、本実施の形態において、ネット
ワーク構成線により構成されたネットワークにおけるデ
ータの流れを説明する図である。
【0212】図16に示したデータ処理装置において、
[ プログラム3]を実行するためには、図17に示すよう
に、第1の制御部50の実行可能判断信号270 と第2のメ
モリ100 のデータ線324 とのペアを、ネットワーク240
の実行可能判断信号172 とデータ線171 とに出力するよ
うに出力バススイッチ182 を切替えると共に、実行可能
判断信号172 とデータ線171 とから第2の演算部30へ信
号を入力するように入力バススイッチ180 を切替える。
また、第3の演算部130 からの実行可能判断信号276 と
データ線322 とをネットワーク240 の実行可能判断信号
174 とデータ線173 とに出力するように出力バススイッ
チ184 を切替える。
【0213】更に、バススイッチ350 において、バスス
イッチ352 は第1の制御部50、第2のメモリ100 、第2
の演算部30及び第3の演算部130 で個別にデータを必要
とするので、OFF に設定する。また、バススイッチ354
は、第3の演算部130 の結果を第4の演算部200 に送る
必要があるので、ONに設定する。
【0214】また、第3の制御部250 の実行可能判断信
号286 と第4のメモリ260 のデータ線336 とのペアは、
ネットワーク240 の実行可能判断信号174 とデータ線17
3 に出力するように出力バススイッチ194 を切替える。
【0215】更に、バススイッチ360 では、バススイッ
チ362 はOFF に設定し、バススイッチ364 は、第3の制
御部250 の実行可能判断信号286 と第4のメモリ260 デ
ータ線336 とを第4の演算部200 に送る必要があるの
で、ONに設定する。
【0216】加えて、第4の演算部200 への入力バスス
イッチ186 は、ネットワーク240 の実行可能判断信号17
4 とデータ線173 とを入力するように切替え、第5の演
算部210 からの実行可能判断信号280 とデータ線328 の
信号をネットワーク240 の実行可能判断信号176 とデー
タ線175 とに出力するように出力バススイッチ190 を切
替える。更に、第2の制御部120 への実行可能信号276
とデータ線330 とを、ネットワーク240 の実行可能判断
信号176 とデータ線175 から入力するように入力バスス
イッチ188 を切替える。これにより、同様の動作が行な
える。
【0217】図18及び図19は、本発明の第3実施の
形態の基本的な動作フローを説明する図である。図20
及び図21は、本発明の第3実施の形態の[ プログラム
4]における各部でのデータを説明する図である。
【0218】本発明の第3の実施の形態を、図16、図
17、図18、図19、図20及び図21を用いて説明
する。
【0219】( サイクル #0 以前)本発明におけるデー
タ処理装置のための実行プログラム及び入力データは、
コンパイラ又はアセンブラによって生成され、プログラ
ムローダにより事前に第1のメモリ10へ格納される[S20
0]。
【0220】つまり、入力データ配列a、b、c、d
は、入力データ6として、第1のメモリ10の中に格納さ
れ。更に、実行プログラム4には、本発明に係る以下に
行なう動作についてのフローが格納されている。
【0221】ここで、プログラムローダとしては、外部
プロセッサ等が考えられるが、本発明に関して主要な点
でないので、説明を省略する。
【0222】第1の演算部20は、第1のメモリ10の実行
プログラムを受け取り、第1の制御部50のポインタ60及
びライトポインタ62を各々“0”に初期化する。第1の
演算部20は、第1のメモリ10の実行プログラムを受け取
り、第2の制御部120 のポインタ160 及びライトポイン
タ162 を各々“0”に初期化する。更に、1の演算部20
は、第1のメモリ10の実行プログラムを受け取り、第3
の制御部250 のポインタ及びライトポインタを各々
“0”に初期化する。第1の演算部20は、第1のメモリ
10の実行プログラムを受け取り、ネットワーク240 の各
入力バススイッチ、各出力バススイッチ及びバススイッ
チの接続構成をネットワーク構成線400 により設定する
[S201]。
【0223】また、第1の制御部50及び第3の制御部25
0 の各実行可能判断部では、各サイクル毎にポインタの
値、ライトポインタの値及び同期信号600 を参照し、実
行できるデータが第2のメモリ100 及び第4のメモリ26
0 に存在せず、実行開始ができないことを判断している
[T200]。
【0224】更に、第2の制御部120 の実行可能判断部
170 では、各サイクル毎に第3の演算部130 からの実行
可能判断信号を受け取り、書き込みデータが存在しない
ことを判断している[U200]。
【0225】第1の演算部20は、第1のメモリ10の実行
プログラムを受け取ると共に、第1のメモリ10から配列
a,b,cの100 ワードのデータを受け取り、これ等を
順次第2のメモリ100 に書き込む。更に、第1の制御部
50のライトポインタ62に“100 ”という数を、ポインタ
60に“0”を各々書き込む。第1の演算部20は、更に、
第1のメモリ10の実行プログラムを受け取り、同様に第
4のメモリ260 にも配列d、e、fの100 ワードを書き
込み、更に、第3の制御部250 のライトポインタ及びポ
インタを各々“100 ”と“0”に設定する。
【0226】加えて、第1の演算部20は、第1のメモリ
10の実行プログラムを受け取り、第1の制御部50の遅延
サイクルレジスタ700 には“0”を、第3の遅延サイク
ルレジスタ720 には“2”を格納する[S202]。
【0227】( サイクル #0)第1の演算部20は、第1の
メモリ10の実行プログラムを受け取り、同期信号線に計
算開始信号を出力する[S203]。
【0228】( サイクル #1)第1の制御部50は、ライト
ポインタ62の値とポインタ60の値とを比較し、更に同期
信号線を参照して、ポインタ60の値が“0”であり、ラ
イトポインタ62の値が“100 ”であり、同期信号が示さ
れ、且つ遅延サイクルレジスタ700 の値が“0”である
ので、読み出し可能であることを判断し、これを第2の
メモリ 100 に送出すると共にネットワーク240 の実
行可能判断信号172 を介して第2の演算部30へ送り出
す。
【0229】第2のメモリ100 では、この信号を元にデ
ータ配列a,b,cの最初のデータa[0],b[0],c[0]をネ
ットワーク240 のデータ線171 に送り出す。また、ポイ
ンタ60の値は、配列の1つ分だけインクリメントされる
[T200],[T201],[T202]。この第1の制御部50と第2のメ
モリ100 の動作は、以降、各サイクル毎に実行されてい
る。
【0230】第3の制御部250 では、ライトポインタの
値とポインタの値とが比較され、更に、同期信号線を参
照し、開始サイクルが始まったことを判断する[T200]。
【0231】しかし、ポインタが“0”であり、ライト
ポインタが“100 ”に設定され、同期信号600 が示され
たが、第3の制御部250 の遅延サイクルレジスタ720 の
値が“2”であるので、読み出し可能になるためには、
あと2サイクル必要であることを判断する。ここで、開
始サイクルまであと2サイクルであることをカウントし
始める[T201]。
【0232】( サイクル #2)第1の制御部50及び第2の
メモリ100 では、サイクル#1と同様の動作がなされ、ポ
インタ60の値は、更にアドレス1つ分だけインクリメン
トされる。
【0233】第3の制御部250 では、ライトポインタの
値とポインタの値とが比較され、更に同期信号線を参照
して、開始サイクルが始まったことを判断する[T200]。
【0234】しかし、ポインタが“0”であり、ライト
ポインタが“100 ”に設定され、同期信号600 が示され
たが、第3の制御部250 の遅延サイクルレジスタ720 の
値が“2”であるため、読み出し可能になるためには、
あと1サイクル必要であることを判断する[T201]。
【0235】第2の演算部30では、ネットワーク240 の
データ線171 から第2のメモリ100 の3種類のデータを
受け取り、乗算操作であるa[0]xb[0] を行ない、更に、
第1の制御部50からの実行可能判断信号72を一時的に1
サイクルだけ遅延し、処理結果データ(a[0]xb[0]) 、c
[0]及び、遅延した実行可能判断信号を第3の演算部130
へ送り出す。この第2の演算部30の動作も、各サイク
ル毎に実行されている。
【0236】( サイクル #3)第1の制御部50及び第2の
メモリ100 では、サイクル#2と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0237】第3の制御部250 では、ライトポインタの
値とポインタの値とが比較され、更に同期信号線600 を
参照し、開始サイクルが始まったことを判断する[T20
0]。
【0238】そして、ポインタが“0”であり、ライト
ポインタが100 に設定され、同期信号600 が示され、開
始サイクルになったことを判断したので、この判断がネ
ットワーク240 の可能判断信号174 に送られる[T201]。
【0239】第4のメモリ260 では、この信号を元にデ
ータ配列dの最初のデータd[0]をネットワーク240 のデ
ータ線173 に送り出す。また、第3の制御部250 のポイ
ンタの値は、配列の1つ分だけインクリメントされる[T
202]。
【0240】第2の演算部30では、サイクル#2と同様の
処理がなされ、配列の次の要素a[1]xb[1] が計算され
る。
【0241】第3の演算部130 では、第2の演算部30か
らの処理結果データを受け取り、加算a[0]xb[0]+c[0]を
行ない、更に、第2の演算部30からの実行可能判断信号
を一時的に1サイクルだけ遅延し、処理結果データa[0]
xb[0]+c[0]及び、遅延した実行可能判断信号をネットワ
ーク240 の実行可能判断信号174 とデータ線173 とに送
り出す。
【0242】( サイクル #4)第1の制御部50及び第2の
メモリ100 では、サイクル#3と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0243】第2の演算部30では、サイクル#3と同様の
処理がなされ、配列の次の要素a[2]xa[2] が計算され
る。
【0244】第3の演算部130 では、サイクル#3と同様
の処理がなされ、配列の次の要素a[1]xb[1]+c[1]が計算
される。
【0245】第4の演算部200 では、ネットワーク240
のデータ線173 から第2の演算部30からの処理結果デー
タt1(=a[0]xb[0]+c[0]) と、第4のメモリ260 からのデ
ータt2(=d[0]) と、各々の制御部からの実行可能判断信
号を同時に受け取り、この両者の乗算t1xt2 を行ない、
更に、実行可能判断信号を一時的に1サイクルだけ遅延
し、その処理結果データ及び遅延した実行可能判断信号
を第5の演算部210 へ送り出す。
【0246】ここで、#0サイクルで同期信号600 が生成
され、第2のメモリ100 では、遅延サイクル“0”であ
るので、即座に次のサイクルでデータを送出し始める。
また、第4のメモリ260 を制御する第3の制御部250 で
は、2サイクル分だけ遅延を行なうので、このサイクル
での第4の演算部200 へのデータt1,t2 の同時入力が可
能となっている。
【0247】( サイクル #5)第1の制御部50及び第2の
メモリ100 では、サイクル#4と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0248】第3の制御部250 及び第4のメモリ260 で
は、サイクル#4と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0249】第2の演算部30では、サイクル#4と同様の
処理がなされ、配列の次の要素a[3]xa[3] が計算され
る。
【0250】第3の演算部130 では、サイクル#4と同様
の処理がなされ、配列の次の要素a[2]xb[2]+c[2]が計算
される。
【0251】第4の演算部200 では、サイクル#4と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0252】第5の演算部210 では、第4の演算部200
からの処理結果データを受け取り、加算に対する処理が
ないので、第4の演算部200 から来たデータ自身と、第
4の演算部200 からの実行可能判断信号を一時的に1サ
イクルだけ遅延した実行可能判断信号とを、ネットワー
ク240 の実行可能判断信号176 とデータ線175 へ送り出
す。
【0253】( サイクル #6)第1の制御部50及び第2の
メモリ100 では、サイクル#5と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0254】第3の制御部250 及び第4のメモリ260 で
は、サイクル#5と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0255】第2の演算部30では、サイクル#5と同様の
処理がなされ、配列の次の要素a[4]xb[4] が計算され
る。
【0256】第3の演算部130 では、サイクル#5と同様
の処理がなされ、配列の次の要素a[3]xb[3]+c[3]が計算
される。
【0257】第4の演算部200 では、サイクル#5と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0258】第5の演算部210 では、サイクル#5と同様
の処理がなされ、第4の演算部200 からのデータがその
まま出力される。
【0259】第3のメモリ102 は、ネットワーク240 の
実行可能判断信号176 を受け、書き込みが可能なことを
判断し、データ線175 からの結果データをライトポイン
タ162 のアドレスに結果データg[0]として書き込む。同
時に、第2の制御部50のライトポインタ162 の値は、そ
の後、+1だけ増加させる。
【0260】( サイクル #7)第1の制御部50及び第2の
メモリ100 では、サイクル#6と同様の動作がなされ、ポ
インタ60の値は更にアドレス1つ分だけインクリメント
される。
【0261】第3の制御部250 及び第4のメモリ260 で
は、サイクル#6と同様の動作がなされ、ポインタの値は
更にアドレス1つ分だけインクリメントされる。
【0262】第2の演算部30では、サイクル#6と同様の
処理がなされ、配列の次の要素a[5]xb[5] が計算され
る。
【0263】第3の演算部130 では、サイクル#6と同様
の処理がなされ、配列の次の要素a[4]xb[4]+c[4]が計算
される。
【0264】第4の演算部200 では、サイクル#6と同様
の処理がなされ、配列の次の要素t1xt2 が計算される。
【0265】第5の演算部210 では、サイクル#6と同様
の処理がなされ、第4の演算部200 からのデータがその
まま出力される。
【0266】第3のメモリ102 では、サイクル#6と同様
の処理がなされて、配列の次の要素d[1]が格納される。
ライトポインタ162 の値は、1つ分だけインクリメント
される。
【0267】以降の各サイクルでは、同様の処理がなさ
れ、第1の制御部50及び第2のメモリ100 と、第3の制
御部250 及び第4のメモリ260 では、ポインタの値とラ
イトポインタの値が同じ数“100 ”になるまで繰り返さ
れる。また、第2の制御部120 では、第1の制御部50で
生成される実行可能判断信号をサイクル#6からサイクル
105 までカウントし、100 サイクル分だけ結果データd
[0]-d[99]が格納された時点で、プログラムの処理を終
了する。また、第1の演算部20では、実行プログラムで
定められたタイミングで、定期的に第2の制御部50にお
けるライトポインタ162 を参照し、その数値が“100 ”
になっているか否かを判断して、プログラムの終了を判
断する[S204],[S205] 。
【0268】つまり、予め、処理を行なうネットワーク
の組合せが決まった時点で、各制御部にある遅延サイク
ル数レジスタに遅延サイクルを設定することにより、各
々のメモリから違ったタイミングでのデータ入力が可能
になる。
【0269】以上、本第3の実施の形態は、既述した原
理、第1及び第2の実施の形態における[ プログラム1]
〜[ プログラム3]の何れも実行可能であるので、プログ
ラム性において、一番柔軟と言える。
【0270】尚、以上の説明では、実行可能判断信号7
2,144 ,150 ,172 を有効データ特定信号としたが、
この実行可能判断信号は演算部30.130.200.210.220.230
での演算(処理)のイネーブル信号と解しても良い。
【0271】また、以上の説明では、各演算部30,130,2
00,210,220,230は1サイクルの演算サイクル数を持つ
が、本発明はこれに限定されず、各演算部は、2サイク
ル以上の演算サイクルを持つ演算部であっても良いのは
勿論である。この場合、各演算部に内蔵される遅延部
は、各々、自己の演算部の演算サイクル数に等しいサイ
クル数だけ実行可能判断信号(有効データ特定信号)を
遅延する。更に、本発明は、各演算部毎に実行可能判断
信号を遅延する場合に限らず、要は、演算結果がデータ
格納部に格納される時点で、同時に実行可能判断信号が
このデータ格納部に入力されればよい。
【0272】
【発明の効果】以上説明したように、請求項1ないし請
求項14記載の発明のデータ処理装置によれば、メモリ
と演算器との間の接続状況をネットワークにより切換え
可能とすると共に、データ格納部からのデータの読み出
し時に、この処理すべきデータに有効データ特定信号を
付与すると共に、このデータが演算部で演算された演算
結果データをデータ格納部に格納される際に、同時に前
記有効データ特定信号をこのデータ格納部に入力するの
で、演算段数が異なっても、この演算結果データを、前
記処理すべきデータが処理された有効なデータとして認
識できると共に、データ格納部に格納することが可能で
ある。従って、汎用性があって種々のマルチメディアア
プリケーションに適応可能なデータ処理装置を提供でき
る。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態のデータ処理装置の
原理を示す図である。
【図2】同原理における第1の演算部の動作フローを示
す図である。
【図3】同原理における第1及び第2の制御部の動作フ
ローを示す図である。
【図4】同原理における各部のデータ値の説明図であ
る。
【図5】本発明の第1の実施の形態におけるデータ処理
装置の構成を示す図である。
【図6】同データ処理装置におけるデータの流れの一例
を示す図である。
【図7】同データ処理装置におけるデータの流れの他の
一例を示す図である。
【図8】同データ処理装置におけるデータの流れの他の
一例での各部のデータ値の説明図である。
【図9】同例での他の各部におけるデータ値の説明図で
ある。
【図10】本発明の第2の実施の形態におけるデータ処
理装置の構成を示す図である。
【図11】同データ処理装置におけるデータの流れの一
例を示す図である。
【図12】同データ処理装置における第1の演算部の動
作フローを示す図である。
【図13】同データ処理装置の第1及び第2の制御部の
動作フローを示す図である。
【図14】同データ処理装置におけるデータの流れの一
例での各部のデータ値の説明図である。
【図15】同例での他の各部におけるデータ値の説明図
である。
【図16】本発明の第3の実施の形態におけるデータ処
理装置の構成を示す図である。
【図17】同データ処理装置におけるデータの流れの一
例を示す図である。
【図18】同データ処理装置における第1の演算部の動
作フローを示す図である。
【図19】同データ処理装置の第1及び第2の制御部の
動作フローを示す図である。
【図20】同データ処理装置におけるデータの流れの一
例での各部のデータ値の説明図である。
【図21】同例での他の各部におけるデータ値の説明図
である。
【符号の説明】
2 プログラムローダ 4 実行プログラム 6 入力データ 10 第1のメモリ(主データ格
納部) 12,22,24,32,34,36 データ線 20 第1の演算部(データ転送
部) 30 第2の演算部(演算部) 38 乗算部(処理部) 40,146 データラッチ 42,148 出力セレクタ 50 第1の制御部(制御部) 60,160 ポインタ 62,162 ライトポインタ 64,65 ポインタ設定線 66,67 ライトポインタ設定線 68 アドレス線 70,170 実行可能判断部(判断部) 72,144,150,172 実行可能判断信号(有効デ
ータ特定信号) 100 第2のメモリ(データ格納
部) 102 第3のメモリ(他のデータ
格納部) 120 第2の制御部(他の制御
部) 130 第3の演算部(演算部) 136 加算部(処理部) 140,142 実行可能判断信号ラッチ
(遅延部) 141 遅延回路 171 〜178 バス 182,184,190,194,196 出力バススイッチ 180,186,188,192 入力バススイッチ 200 第4の演算部 210 第5の演算部 212 ,232 データ線 220 第6の演算部 230 第7の演算部 240 ネットワーク 250 第3の制御部(制御部) 260 第4のメモリ(データ格納
部) 350,352,354,356,358 360, 362,364,366,368 バススイッチ 400 データ処理装置構成線 600 同期信号線 700,710,720 遅延サイクル数レジスタ
フロントページの続き (56)参考文献 特開 平7−28642(JP,A) 特開 平2−137514(JP,A) 特開 平2−201686(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 17/10 G06F 9/38 JICSTファイル(JOIS)

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 データが格納された少なくとも1個の
    ータ格納部と、 複数個の演算部と、 前記データ格納部と前記複数個の演算部との間の結線を
    切換えるネットワークと、 前記データ格納部に格納されたデータの読み出し時に、
    その読み出すデータが処理すべき有効なデータであるこ
    とを意味する有効データ特定信号を出力する制御部と、 前記制御部からの有効データ特定信号を受け、前記デー
    タ格納部からのデータの読み出し時から前記複数個の演
    算部のうち特定の演算部で演算された結果が得られるま
    でのサイクル数だけ、前記受けた有効データ特定信号を
    遅延して出力する遅延回路とを備えることを特徴とする
    データ処理装置。
  2. 【請求項2】 前記遅延回路は、 前記複数個の演算部に対応して各々備えられる遅延部に
    より構成され、これ等遅延部は、各々、対応する演算部
    が演算に要するサイクル数だけ前記有効データ特定信号
    を遅延して出力することを特徴とする請求項1記載のデ
    ータ処理装置。
  3. 【請求項3】 前記制御部は、 データ格納部に格納されたデータ数が与えられるライト
    ポインタと、 前記データ格納部からのデータの読み出し回数が順次与
    えられるポインタと、 前記ライトポインタの値前記ポインタの値とを比較
    し、前記ポインタの値が前記ライトポインタの値以下の
    とき、有効データ特定信号を出力する判断部とを備える
    ことを特徴とする請求項1又は請求項2記載のデータ処
    理装置。
  4. 【請求項4】 更に、予めデータが格納された主データ
    格納部と、 前記主データ格納部に格納されたデータを前記複数個の
    データ格納部に転送するデータ転送部とを有し、 前記データ転送部は、前記複数個のデータ格納部からの
    データの読み出しを同時に行うよう指示する同期信号を
    制御部に出力することを特徴とする請求項1又は請求項
    2記載のデータ処理装置。
  5. 【請求項5】 制御部は、各データ格納部に対応して、
    データ格納部の数に等しい個数設けられることを特徴と
    する請求項記載のデータ処理装置。
  6. 【請求項6】 各制御部は、 同期信号の入力後からデータの読み出しを遅延させる設
    定サイクル数を記憶する遅延サイクル数レジスタを有
    し、 同期信号の入力後、前記遅延サイクル数経過した時、デ
    ータの読み出しを開始することを特徴とする請求項
    載のデータ処理装置。
  7. 【請求項7】 前記ネットワークによる結線の切換えの
    後での複数個の演算部によるデータの演算段数は、前記
    切換えの前での演算段数と異なることを特徴とする請求
    項1又は請求項2記載のデータ処理装置。
  8. 【請求項8】 前記ネットワークは、 2個以上のデータ格納部から各々データを同一の演算部
    に出力するよう、結線を切換えることを特徴とする請求
    項1又は請求項2記載のデータ処理装置。
  9. 【請求項9】 前記ネットワークは、 1個のデータ格納部からデータを1個の演算部に出力
    し、その後、この演算部の演算結果と他のデータ格納部
    のデータとを他の演算部に出力するよう、結線を切換え
    ることを特徴とする請求項1、請求項2又は請求項
    載のデータ処理装置。
  10. 【請求項10】 更に、予めデータが格納された主デー
    タ格納部を有し、 前記ネットワークによる結線の切換情報は、前記主デー
    タ格納部に格納されることを特徴とする請求項1又は請
    求項2記載のデータ処理装置。
  11. 【請求項11】 前記ネットワークは、 データ格納部及び制御部から各々データ及び有効データ
    特定信号が出力される出力バススイッチと、 前記受けたデータ及び有効データ特定信号を演算部に入
    力する入力バススイッチとを有することを特徴とする請
    求項1又は請求項2記載のデータ処理装置。
  12. 【請求項12】 前記ネットワークは、 複数本のバスと、 前記各バス毎に配置されたバススイッチとを有し、 前記バススイッチは、導通してデータの伝送を許容し、
    非導通してデータの伝送を禁止することを特徴とする請
    求項11記載のデータ処理装置。
  13. 【請求項13】 複数個の演算部は、相互に異なる演算
    を行うことを特徴とする請求項1又は請求項2記載のデ
    ータ処理装置。
  14. 【請求項14】 最後の演算を行う演算部から有効デー
    タ特定信号をネットワークを経て受けて、書込み命令を
    出力する他の制御部と、 前記最後の演算を行う演算部から最終的に得られた演算
    結果を受けると共に、前記他の制御部から書込み命令を
    受けて、前記最終的に得られた演算結果を格納する他の
    データ格納部とを備えたことを特徴とする請求項1又は
    請求項2記載のデータ処理装置。
JP10093532A 1997-04-21 1998-04-06 データ処理装置 Expired - Fee Related JP3091441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10093532A JP3091441B2 (ja) 1997-04-21 1998-04-06 データ処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10316497 1997-04-21
JP9-103164 1997-04-21
JP10093532A JP3091441B2 (ja) 1997-04-21 1998-04-06 データ処理装置

Publications (2)

Publication Number Publication Date
JPH117441A JPH117441A (ja) 1999-01-12
JP3091441B2 true JP3091441B2 (ja) 2000-09-25

Family

ID=26434874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10093532A Expired - Fee Related JP3091441B2 (ja) 1997-04-21 1998-04-06 データ処理装置

Country Status (1)

Country Link
JP (1) JP3091441B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002311827A (ja) * 2001-04-18 2002-10-25 Matsushita Electric Works Ltd 情報処理装置

Also Published As

Publication number Publication date
JPH117441A (ja) 1999-01-12

Similar Documents

Publication Publication Date Title
CA3120683C (en) Configuration load of a reconfigurable data processor
US20220083499A1 (en) Efficient deconfiguration of a reconfigurable data processor
US8250341B2 (en) Pipeline accelerator having multiple pipeline units and related computing machine and method
US7047179B2 (en) Clustered processors in an emulation engine
EP1570344B1 (en) Pipeline coprocessor
US4553203A (en) Easily schedulable horizontal computer
JP2852808B2 (ja) アレイプロセッサ
EP0601029A1 (en) Input/output arrangement for massively parallel computer system
US7734896B2 (en) Enhanced processor element structure in a reconfigurable integrated circuit device
KR20220004216A (ko) 제어 플로우 배리어 및 재구성가능 데이터 프로세서
EP1615139A2 (en) Processor and pipeline configuration control method
EP1168161A2 (en) System and method of executing hybridized code on a dynamically cofigurable hardware environment
EP2132645B1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
US8761188B1 (en) Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs
US20040054818A1 (en) Flexible results pipeline for processing element
US4811201A (en) Interconnect circuit
JP3091441B2 (ja) データ処理装置
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
US8320150B2 (en) Structure and method for backing up and restitution of data
US7586326B2 (en) Integrated circuit apparatus
US7512873B2 (en) Parallel processing apparatus dynamically switching over circuit configuration
US6125438A (en) Data processor
JPS63197217A (ja) デ−タ処理装置
JP2004302856A (ja) 集積回路装置およびその装置に対するデータ設定装置
JPH01142940A (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000704

LAPS Cancellation because of no payment of annual fees