JP2564805B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2564805B2
JP2564805B2 JP61186430A JP18643086A JP2564805B2 JP 2564805 B2 JP2564805 B2 JP 2564805B2 JP 61186430 A JP61186430 A JP 61186430A JP 18643086 A JP18643086 A JP 18643086A JP 2564805 B2 JP2564805 B2 JP 2564805B2
Authority
JP
Japan
Prior art keywords
data
processor
general
processing
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 - Lifetime
Application number
JP61186430A
Other languages
English (en)
Other versions
JPS62229359A (ja
Inventor
昌弘 野村
幸男 前橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Publication of JPS62229359A publication Critical patent/JPS62229359A/ja
Application granted granted Critical
Publication of JP2564805B2 publication Critical patent/JP2564805B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、汎用プロセッサと専用プロセッサとを含む
情報処理装置に関し、とくにデュアルプロセッサ構成の
マイクロコンピュータに関する。
〔従来技術の説明〕
集積回路製造技術の進歩により、1つの半導体チップ
上に形成できるトランジスタの数が著しく増加したた
め、1チップ化されたマイクロプロセッサの機能が大き
く向上した。このため、マイクロプロセッサの応用分野
が拡大し、幅の広い分野で共通に使用可能な汎用プロセ
ッサが提供されるに至った。しかしながら、1つの汎用
プロセッサだけで要求されるすべての処理を実行する場
合、プロセッサの負担が非常に重く、高速処理やリアル
タイム処理が必要な分野では十分に満足できる結果を得
ることは困難である。例えば、自動車のエンジン制御,N
Cやロボットのモータ制御等に使用されるマイクロプロ
セッサは多量のデータを高速に処理できるものでなけれ
ばならない。
一般に、高速処理やリアルタイム処理が要求される分
野では、複数のプロセッサを用いたマルチプロセッシン
グ技術が採用されている。とくに、多くの数値演算処理
が必要な場合は、汎用プロセッサの他に数値演算処理を
専門に司る専用プロセッサ(コプロセッサあるいはスレ
ーブプロセッサとも呼ばれている)を用い、汎用プロセ
ッサと専用プロセッサとに処理を分散させる機能分散処
理形態を採用することが有利である。
〔解決すべき問題点〕
しかしながら、従来提案されている専用プロセッサ
は、汎用プロセッサと同じフォン・ノイマン型のアーキ
テクチャーに基いて設計されており、汎用プロセッサに
比べて数値演算に適するように内部回路とくにALU回路
およびその付加回路が改良されているにすぎなかった。
例えば、可変ビット長の演算に適するようにALUのビッ
ト長を長くしたり、あるいは浮動小数点演算に適するよ
うに指数部と仮数部とをわけて演算できるようにALUを
2重化したりする程度の改良しかなされていなかった。
このような専用プロセッサを汎用プロセッサに接続し
てデュアルプロセッサを構成した場合、以下に述べるよ
うに両プロセッサのタイミング制御およびインターフェ
ース制御に困難性を伴うという欠点がある。
すなわち、従来の専用プロセッサは演算に必要なすべ
てのデータがそろうってからでないと処理を開始するこ
とができないようになっている。しかも、演算に必要な
データは汎用プロセッサで準備しなければならないの
で、専用プロセッサはすべてのデータがそろうまでは入
力待ちの状態になっている。一方、汎用プロセッサは専
用プロセッサに与えるべきデータを作るための準備に追
われ、その間他の処理を実行することができない。
さらに、汎用プロセッサと専用プロセッサとは同期し
た形で処理を遂行しなければならないので、一方のプロ
セッサが処理中にある時は他方のプロセッサはウェイト
しておかなければならない。そのため、並列処理ができ
ず、これが高速化への大きな障害となっている。
さらに、汎用プロセッサは専用プロセッサの処理状態
を把握しておかなければならず、そのために専用プロセ
ッサがビジーであるか否かを汎用プロセッサに知らせる
ための信号が必要である。従って、複雑なインターフェ
イス回路が要求される。加えて、このように複雑のイン
ターフェイス回路が必要であることから、汎用プロセッ
サと専用プロセッサとを同一半導体チップ上に集積化す
ることができないのが現状である。そのため、両プロセ
ッサは別々のチップで構成して、バス接続しなければな
らない。よって、バス接続のためのチップ端子が必要と
なり、パッケージコストが高くならざるをえないという
経済上の大きな問題がある。
本発明はタイミング制御を簡単化した汎用プロセッサ
と専用プロセッサとを含む情報処理装置を提供すること
を目的とし、とくに1チップ化可能なマイクロプロセッ
サを提供することにある。
本発明はさらに、並列処理可能な汎用プロセッサと専
用プロセッサとを含む情報処理装置を提供することを目
的とするものである。
〔問題を解決するための手段〕
本発明はプログラム処理に適した汎用プロセッサとと
もにデェアルプロセッサを構成する専用プロセッサとし
て、フォン・ノイマン型のプロセッサではなくデータフ
ロー(データ駆動)型のプロセッサを用いたことを大き
な特徴とする。データフロープロセッサとしてはパイプ
ライン処理可能なリングバス構造のプロセッサが好適で
ある。
さらに、本発明は専用プロセッサと汎用プロセッサと
を直接バスで接続し、他にわずかな信号線で両者を接続
するだけで、両プロセッサの並列処理を可能としたこと
を特徴とする。
本発明は専用プロセッサと汎用プロセッサとのインタ
ーフェイスを簡単化することで、両プロセッサを1チッ
プ上に集積化可能としている。
本発明の一実施態様によれば、データを記憶するメモ
リとプログラムに基づき各種データ処理を行なう第1の
プロセッサ(汎用プロセッサ)と入出力情報の制御を行
なう入出力制御回路と、第1のプロセッサより送出され
る処理データと実行指示情報とに基づき、所定のデータ
処理を行なうデータフロータイプの第2のプロセッサ
(専用プロセッサ)とを備え、第1の演算処理プロセッ
サが入出力制御回路より入力した情報に基いて生成した
処理データを任意の順序で第2のプロセッサに送り、第
2のプロセッサは任意の順序で送られてきた処理データ
に対して演算可能なデータから順に処理を実行し、最終
結果を第1のプロセッサあるいは外部の所望のメモリや
周辺装置もしくは他のプロセッサに送るように構成され
ている。
第1のプロセッサは処理データと実行指示情報とをト
ークンの形で第2のプロセッサに転送しなければならな
いが、第1のプロセッサがフォン・ノイマン型のアーキ
テクチャーを用いた汎用プロセッサである場合、まず実
行情報を送り、それに続いて処理データを送るようにす
ることで、汎用プロセッサと専用プロセッサとのインタ
ーフェイスを簡素化することができる。
〔実施例の説明〕
(シングルチッププロセッサの従来の技術) 第15図に従来のシングルチップマイクロプロセッサの
ブロック図を示す。
プロセッサチップAはCPU100を有し、CPU100はプログ
ラムカウンタ(以下PCと記す)100−1、プログラムス
テータスワード(以下PSWと記す)レジスタ100−2、汎
用レジスタセット100−3およびALU(不図示)を含んで
いる。さらに割込み制御回路100−4を有し、割込み制
御回路100−4は周辺I/O回路101からの割込み要求信号1
01−1を受け付けてCPU100の割込み処理実行を制御す
る。従来のシングルチップマイクロプロセッサは、この
他に割込み処理プログラム等を格納するプログラムメモ
リ102、周辺I/O回路101の入出力データ等を保持するデ
ータメモリ103を同一チップ上に有し、内部バス104−1
を介して外部バス104−2と相互に接続されている。
CPU100はPC100−1の内容に従ってプログラムメモリ1
02から必要な命令を読み出し、逐次処理を実行する。ま
た、実際の制御においては周辺I/O回路101の入力部は各
種センサ等に、出力部はモータの駆動回路等に接続され
ている。
まず、各種センサより周辺I/O回路101にデータが入力
されると、周辺I/O回路101は割込み要求信号101−1を
発してCPU100の割込み制御回路100−4に割込み処理を
要求する。CPU100は割込みを受付けるとPC100−1,PSW10
0−2,汎用レジスタセット100−3の内容を別のメモリに
退避し、割込み処理プログラムを実行する。そして、割
込み処理プログラムによって、周辺I/O回路101からのデ
ータ入力、入力データに対する演算処理、演算結果を周
辺I/O回路101へ出力する処理を実行する。割込み処理プ
ログラム終了後、退避していたPC100−1,PSW100−2、
汎用レジスタセット100−3の内容を夫々の場所に復帰
して中断していたメインルーチンに戻る。
従来のシングルチップマイクロプロセッサは、この様
に周辺I/O回路からの割込み要求により、入出力処理や
演算処理に対応する割込み処理プログラムを実行する機
能をもたせることによって各分野へ応用できるようにな
っていた。
しかし、ハイエンドの制御分野におけるリアルタイム
制御には、複雑な数値演算処理を大量のデータに対して
高速に行なう事が要求されており、今後この傾向は益々
強くなる。
これに対して、従来のシングルチップマイクロコンピ
ュータは、割込み処理によってデータ入出力処理と数値
演算処理をシーケンシャルに実行せざるを得ない為、単
にプロセッサの処理能力を向上するのみでは、大量デー
タの入出力処理及び高速演算処理を実現する事は非常に
困難である。ハイエンドの制御分野におけるリアルタイ
ム制御では、1つのプロセッサだけにデータの入出力処
理と数値演算処理とを集中的に実行させるのは無理であ
る。加えて、割込み処理でこれらに対応する従来の方法
は周辺装置の増加に伴って割込み回数が増す為に、PC,P
SWの退避,復帰に要する時間等のオーバーヘッドが非常
に増大する事になる。しかも、全ての処理をシーケンシ
ャルにしか実行できないというシングルプロセッサの処
理性能の限界より、ハイエンドの制御分野でのリアルタ
イム制御に対応する事は将来的にも不可能であると言え
る。
(デュアルプロセッサの従来技術) 次に、これらの問題点を解決する為に採用されたの
が、汎用プロセッサチップと数値演算専用プロセッサチ
ップとを用いた機能分散型のマルチプロセッサである。
マルチプロセッサは、プロセッサを複数個持つ事により
1プロセッサ当たりの負担を軽減し、さらに各プロセッ
サの機能を明確に分担する事により、並列処理の効率を
高めて、システム全体の性能の大幅向上の目的としたも
のである。
第16図に汎用プロセッサチップ200と数値演算用の専
用プロセッサチップ201とを有する従来のデュアルプロ
セッサのブロック図を示す。両チップは共有バス203を
介してプログラムとデータを記憶する共有メモリ202を
アクセスできる。汎用プロセッサチップ200と数値演算
プロセッサチップ201はメモリ202からの命令コードを同
時に取り込んでデコードする。デコードの結果、その命
令が汎用プロセッサチップ200の命令である場合には、
汎用プロセッサチップ200はその命令処理を実行する。
一方命令が数値演算用の専用プロセッサチップ201の命
令である場合には、専用プロセッサチップ201の信号線2
01−1をアクティブにする事により汎用プロセッサチッ
プ200に今から実行を開始することを通知し、与えられ
た演算命令を実行する。また数値演算プロセッサチップ
201が共有バス203を使用しなければならない時(共有メ
モリ202からのデータ読出し或いは共有メモリ202へのデ
ータ書込み)には、数値演算プロセッサチップ201はバ
ス獲得要求/受付け線201−2を介して汎用プロセッサ
チップ200と通信を行ない、汎用プロセッサチップ200か
らバス203の使用権を獲得して、命令を実行する。
この様に第16図に示すデュアルプロセッサは専用プロ
セッサの演算機能を活かす事により、高速な演算処理を
行なう事が可能になっている。しかし、このシステムの
最大の欠点は、同一プログラムの命令を両プロセッサが
分担して実行している為、両プロセッサの同期待ちが非
常に頻繁に起こる事である。つまり汎用プロセッサチッ
プ200は、数値演算プロセッサチップ201からの信号線
(ビジー線)201−1をチェックし、数値演算プロセッ
サチップ201が処理実行中で信号線201−1がアクティブ
の場合にはウェイト状態に入るという事が頻繁に行なわ
れる。このため、各々のプロセッサの処理能力が高くて
も、デュアルプロセッサの並列処理効率を高める事がで
きない。
一方、第17図は、汎用プロセッサチップ200と専用プ
ロセッサチップ201が各々ローカルバス206,207およびこ
れに接続されたローカルメモリ204,205を有する従来の
改良されたデュアルプロセッサのブロック図である。両
プロセッサチップ間でデータの遣り取りを行なう時に
は、バス制御部208を介して共有バス203に接続された共
有メモリ202をアクセスするように工夫されている。
両プロセッサチップ200,201は、通常各々のローカル
バス206,207とローカルメモリ204,205を用いて命令の処
理実行を行なう。汎用プロセッサチップ200が数値演算
用の専用プロセッサチップ201にデータを引渡すが、或
いは専用プロセッサチップ201が汎用プロセッサチップ2
00に演算結果を渡す時に各プロセッサは共有メモリ202
をアクセスする。
例えば、汎用プロセッサチップ200が共有メモリ202に
データの書込みを行なう時には、まずバス制御部208が
汎用プロセッサチップ200からのアドレス情報を取り込
み、アクセスするメモリがローカルメモリ204であるか
共有メモリ202であるかの判別を行なう。共有メモリ202
のアドレスである場合には、専用プロセッサチップ201
が共有バス203を現在使用しているか否かをチェックす
る。もし、専用プロセッサチップ201がその時共有バス2
03を獲得して共有メモリ202からのデータ読出し、共有
メモリ202へのデータ書込みを行なっている場合には、
バス制御部208は汎用プロセッサチップ200へのバスホー
ルド信号208−1を発し、ローカルバス206と共有バス20
3間をハイインピーダンスにして接続できないようにす
る。汎用プロセッサチップ200はバスホールド信号208−
1をチェックし、これがインアクティブになるまでウェ
イト状態を続ける。一方、共有バス203が使用されてい
ない場合には、バス制御部208はローカルバス206と共有
バス203を接続し、汎用プロセッサチップ200が共有バス
203を介して共有メモリ202にデータを書込む事ができる
ようにする。
この様に第17図においては、汎用プロセッサと専用プ
ロセッサは、共有メモリのアクセス時以外は各々独立に
動作することができる為、第16図のデュアルプロセッサ
に比較して並列処理効率は高くなる。
しかし、以下の様な問題点がある。
プロセッサが非常に大規模になる事。
共有バス制御の為にバス制御部(バスアービタ)の
ような特別なハードウェアが必要である事(よって1チ
ップ化困難)。
メモリアクセス時にバス制御部が常にローカルメモ
リと共有メモリとのアドレス判別を行なわなければなら
ない為にメモリアクセススピードが低下する事。
プロセッサ間のデータ通信に外部の共有バスを使用
しなければならないので、共有バスの駆動に多くの電力
を消費する事。
これに加えて、共有メモリを介して両プロセッサ間で
データ通信しなければならないので、データ通信量が多
くなると、共有バスのバスネックが生じる。そのため、
一方のプロセッサが待たされてしまうことになり、並列
処理効率の向上にとって大きな障害となる。
マルチプロセッサシステムにおけるプロセッサ間のデ
ータ通信方法としては、両プロセッサにシリアル通信ユ
ニットを設け、シリアルにデータを転送する方法も考え
られるが、以下のような欠点がある。
転送速度自体の高速化に限界がある事。
通信手順によるオーバーヘッドが生じる事。
送受信データ量が多くなると、両プロセッサの送受
信割込み回数が増し、割込み処理に伴うオーバーヘッド
が増大する事。
よって、データの送受信が頻繁に行なわれる機能分散
型のマルチプロセッサには不向きである。
次に第17図に示すデュアルプロセッサを制御分野に応
用した際の動作について述べる。
この場合、汎用プロセッサチップ200は周辺I/Oとの入
出力データ処理を、専用プロセッサチップ201は周辺I/O
からの入力データに対する数値演算処理を行なうように
規定される。専用プロセッサチップ201のローカルメモ
リ205には、複数の演算処理プログラムが格納される。
各種センサから検出された信号は周辺のI/O制御部を
介して汎用プロセッサチップ200に非同期に入力され、
汎用プロセッサチップ200は専用プロセッサチップ201で
必要とされるデータを共有バス203を介して共有メモリ2
02に書き込む。専用プロセッサチップ201は、共有メモ
リ202をポーリングし、演算データの全て揃ったプログ
ラムを実行し、その結果を汎用プロセッサチップ200に
引き渡すために共有メモリ202に書き込む。
この様に非同期入力データに関する演算処理が中心と
なる制御分野においては、逐次実行型の数値演算プロセ
ッサは、処理プログラムに関する全てのデータが揃った
時点で、初めて処理実行を開始する為、演算データのポ
ーリングによるウェイト時間が非常に大きく、並列実行
可能な状態であるにも拘わらず、数値演算プロセッサの
稼動率が低く抑えられてしまう。
以上述べてきた様に、制御分野に適する処理形態とし
て採用された従来の汎用プロセッサ+数値演算プロセッ
サの2チップによるデュアルプロセッサシステムでは、 両プロセッサ間のデータ通信時のバスネックによる
オーバーヘッド バスアービタのアドレス判別によるメモリアクセス
スピードの低下 等並列処理効率の低下を招くシステム自体の要因に加え
て、特に非同期入力データによる演算処理を行なう制御
分野においては、逐次実行型の数値演算プロセッサが演
算データのポーリングによりウェイトしている時間が非
常に大きく、これにより並列処理効率が著しく低下する
為に、個々のプロセッサの能力を充分に生かす事ができ
ない。更に加えて、2チップのデュアルプロセッサシス
テムを構成する事により、応用システムでの実装面積の
増大、コストの増加、シングルチップマイクロコンピュ
ータに比較した場合の信頼性の低下等を招いている。
なお、第16図には、専用プロセッサチップ201が自ら
命令コードをフェッチし、命令実行を起動する能動型の
専用プロセッサを示したが、命令コードの転送と命令実
行の起動をホストプロセッサである汎用プロセッサチッ
プ200が行なう受動型の専用プロセッサとすることもで
きる。この場合、汎用プロセッサ200はホストプロセッ
サとなり、専用プロセッサはスレーブプロセッサとな
る。共有メモリ202から読み出された命令コードは汎用
プロセッサ200のみでデコードし、その命令が汎用プロ
セッサ501の命令である場合には汎用プロセッサ自体が
命令を実行する。しかし、命令が専用プロセッサ201の
命令である場合には、汎用プロセッサ200は共有バス203
を介してその命令コードを専用プロセッサ201に転送す
ると共に、専用プロセッサを起動する信号(図示せず)
を送る。専用プロセッサ201はアクティブになると、汎
用プロセッサ200より転送された命令コードをデコード
し、ビジー信号201−1をアクティブにして命令実行を
開始する。そしてホストとなる汎用プロセッサ200は、
専用プロセッサ201が命令実行に必要とするデータを、
共有メモリ202から共有バス203を介して専用プロセッサ
201へ転送し、また専用プロセッサ201の命令実行終了
後、専用プロセッサ201の処理結果を共有バス405を介し
て引き取る。
ここで汎用プロセッサ200と専用プロセッサ201の命令
実行の同期制御は以下の様にして行なわれる。
命令コードが汎用プロセッサ200の命令である場合、
汎用プロセッサ200が命令実行を行なう。専用プロセッ
サ201は汎用プロセッサ200から起動される迄常にウエイ
ト状態になる。
命令コードが専用プロセッサ201の命令である場合、
専用プロセッサ201が命令実行を行なう。専用プロセッ
サ201が命令実行中、汎用プロセッサ200は専用プロセッ
サ201からのビジー信号201−1をチェックし、ビジー信
号がインアクティブになる迄ウエイト状態になる。
かかるデュアルプロセッサより構成されたマイクロコ
ンピュータにおいては、一つのプロセッサが命令実行中
には他のプロセッサはそのプロセッサの動作終了迄ウエ
イト状態となっている為、複数プロセッサの並列処理効
率は極めて低く抑えられているばかりでなく、ホスト側
のプロセッサが、従来例における専用プロセッサを含む
他のプロセッサに対して処理データの転送を行なう場
合、ホスト側のプロセッサが、転送先のプロセッサとの
転送タイミングを考慮しなければならない等、プロセッ
サ間の同期通信においてホスト側のプロセッサのオーバ
ーヘッドが非常に大きくなっている。
この事は、ハードウェア資源の有効利用の面において
問題があるばかりでなく、複数の独立した割込処理プロ
グラムを外部のイベントにより次々に起動していく、と
いう処理形態の制御分野においては、マルチプログラミ
ングにより並列処理効果を期待しる事ができない為、高
速なリアルタイム制御の実現の上で、大きな障害となっ
ている。
以上のように、従来のデュアルプロセッサは、ハイエ
ンドの応用領域、例えば自動車におけるエンジン制御を
中心とする各種総合制御、或いはNCのモータ制御や、ロ
ボットのアーム位置決め制御等、高速のリアルタイム制
御を要求される分野には不適である。さらに、汎用プロ
セッサと専用プロセッサとのインターフェイスが複雑な
ため、両者を同一チップ上に形成することが困難であ
る。
(本発明の実施例の説明) 第1図に本発明に基づくデュアルプロセッサのブロッ
ク図を示す。
フォン・ノイマン型のアーキテクチャーに基いてプロ
グラム処理を行なう汎用プロセッサ1と、数値演算処理
を専門に行なう専用プロセッサ2と、処理データを格納
するデータメモリ3と、処理プログラムを格納するプロ
グラムメモリ4と、外部イベントにより汎用プロセッサ
1に処理要求を発生する周辺入出力装置5がバス6を介
して互いに接続されている。
汎用プロセッサ1は、プログラムカウンタを有してお
り、その内容をアドレスとしてプログラムメモリ4をア
クセスし、命令コードを読み出す。さらに、データメモ
リ3あるいは周辺入出力装置5から出力される処理デー
タを用いて、プログラムを逐次に実行する。また汎用プ
ロセッサ1は、専用プロセッサ2が実行する命令の命令
コードをプログラムメモリから読み出した場合には、専
用プロセッサ2が命令の処理実行に必要とする実行指示
情報と処理データとを結合してトークンを生成し、デー
タバス6を介して直接専用プロセッサ2に転送する。
専用プロセッサ2はデータフロー型のプロセッサで、
周辺入出力装置5からの処理要求に対する割込処理プロ
グラムに基づく数値演算処理を実行できるように、数値
演算に必要な命令を演算の最小単位で夫々独立に内部の
メモリに記憶している。すなわち、各演算処理プログラ
ムを各々独立に実行可能な単項演算あるいは2項演算の
最小演算処理単位に分割し、各々を独立した演算タスク
として扱い、演算タスク毎に処理を実行する。
専用プロセッサ2は、汎用プロセッサ1から転送され
るトークンによって起動される。汎用プロセッサ1から
バス6を介してトークンが入力されると、そのトークン
内に実行指示情報によって指定された演算タスクの1つ
が実行され、その処理結果が次の演算タスクの入力デー
タになって、次の演算タスクが実行されるという繰り返
し処理シーケンスに従って数値演算が順次実行される。
演算処理プログラムの1例として、 X=A×B+C×D ……(1) を挙げ、この演算処理プログラムを専用プロセッサが実
行する時のシーケンスを説明する。
(1)式に例として挙げた演算処理プログラムは、以
下に示すT1,T2,T3の3つの演算タスク T1:A′=A+B T2:C′=C×D T3:X=A′+C′ に分割されて、各演算タスク毎に独立に演算処理が実行
される。
T3は、T1,T2の実行終了後に起動されるので時系列的
には従属であるが、演算処理データに関しては無関係で
ある為(T3に必要な演算処理データはA′,C′のみであ
り、T3からA,B,C,Dの入力状態等のT1,T2の実行状態がみ
える必要は無い。)、T1,T2,T3は各々独立した演算タス
クとみなす事ができる。汎用プロセッサ1は4つのデー
タをランダムに送ってよい。
演算タスクT1は、汎用プロセッサ1から転送された演
算処理データAとBがそろうと、専用プロセッサ2内で
実行される。演算タスクT2も同様に、演算処理データC,
Dがそろうと専用プロセッサ2内で実行される。演算タ
スクT3は、T1,T2の実行終了により、A′とC′が揃う
事によって実行される。
専用プロセッサ2内には、この様な複数の演算タスク
から構成された演算処理プログラムが多数格納されてお
り、各々の演算タスクは自タスクの演算処理データが揃
った時点でその都度実行される。また演算処理データに
付加されたトークン内の実行指示情報は、演算処理デー
タに対する演算タスクを指定しており、これにより各演
算タスク毎に処理データが区別できるようになってい
る。
第2図に専用プロセッサ2の内部ブロック図を示し、
各ブロックの機能について述べる。
専用プロセッサ2は、汎用プロセッサ1から転送され
たトークンを一時蓄える入力インターフェイスユニット
(IU)21、トークン内の実行指示情報に用いて、トーク
ン内のデータをデータラッチメモリ203に転送する為の
アドレスを計算するアドレス計算ユニット(ACU)22、
トークン内のデータを格納し、2項演算処理における演
算処理データの待ち合せを行なうキュー機能をもつデー
タラッチメモリ(DLM)23、データがデータラッチメモ
リ23内に揃い、実行可能状態(以下レディ状態と記す)
になった演算タスムに関する演算指示情報をファースト
イン・ファーストアウト形式でライト/リードするタス
クキューメモリ(TRQ)24、タスクキューメモリ24から
読み出した演算指示情報により、実行ユニット26におけ
る演算タスクの演算モードに指定し、更に現演算タスク
の実行結果がデートとなる次の演算タスクを選択して、
その演算指示情報を付加する実行順序制御ユニット(TS
CU)25、演算タスクを実際に実行する実行ユニット(EX
U)26、専用プロセッサ2内の演算処理プログラムの最
終結果を一時蓄え外部に出力するデータ転送ユニット
(DTU)27の7つのユニットを含む。
バス構成については、インターフェイスユニット21と
データ転送ユニット27は、夫々バス6に接続される。ア
ドレス計算ユニット22,データラッチメモリ23,タスクキ
ューメモリ24,実行順序制御ユニット25および実行ユニ
ット26の5つのユニットは、トークンデータバス28,29,
30,31,32,33およびアドレスバス34,35によって、リング
状に接続される。
次に専用プロセッサ2の演算処理の動作について述べ
る。
(1) インターフェイスユニット21は、汎用プロセッ
サ1からトークンをうけとると、データバス28の空きを
みて、入力したトークンをアドレス計算ユニット22に転
送する。
(2) アドレス計算ユニット22は、トークン内の実行
指示情報を用い、トークンのデータが格納されるべきデ
ータラッチメモリ23のアドレスを計算して、計算結果を
アドレスバス34上に出力し、データバス29を介してデー
タをデータラッチメモリ23に転送する。
(3) データラッチメモリ23に転送されたデータに対
する演算タスクが2項演算の場合、データラッチメモリ
23は、相手のデータが先にデータラッチメモリ23に到着
しているか否かを調べる。相手データが既に到着してい
る場合には、演算タスクはレディ状態となる為、アドレ
ス計算ユニット22を介して演算指示情報をデータバス30
に送り、このバスを介してタスクキューメモリ24へ転送
する。相手データが未だデータラッチメモリ23に到着し
ていない場合には、転送された演算処理データはデータ
ラッチメモリ23で相手データの到着を待ち合わせる。
データラッチメモリ23に転送された演算処理データに
対する演算タスクが一項演算の場合、演算タスクは演算
処理データの転送によりレディ状態となる為、アドレス
計算ユニット22を介して演算指示情報をデータバス30に
転送し、バス30を通してタスクキューメモリ24へ転送す
る。これにより、タスクキューメモリ24内にはレディ状
態にある演算タスクの演算指示情報のみが、ファースト
イン・ファーストアウト形式で格納される。
(4) 実行順序制御ユニット25は、アドレスバス35及
びデータバス31,32を介して、レディ状態にある演算タ
スクの演算指示情報をタスクキューメモリ24から、デー
タをデータラッチメモリ23から夫々読み出す。そして、
実行ユニット26における演算処理モードを指定すると共
に、現演算タスクの演算処理結果を演算処理データとし
て使う次の演算タスクの演算指示情報をデータに付加
し、データバス33を介して実行ユニット26へ転送する。
また演算処理の指定コードが、演算終了を示す特定コー
ドであった場合には、演算処理データを最終演算結果と
判断して、データバス33を介してデータ転送ユニット27
へ転送する。
(5) 実行ユニット26は、実行順序制御ユニット25で
指定されたモードに応じた演算処理を行ない、演算処理
終了後、実行順序制御ユニット25で更新された演算指示
情報と演算結果とをトークンとしてデータバス28を介し
てアドレス計算ユニット32へ転送する。
(6) データ転送ユニット27は、実行順序制御ユニッ
ト25より最終演算結果を受け取るとこれを汎用プロセッ
サ1に送る。汎用プロセッサ1はこの最終演算結果をバ
ス6を介してデータメモリ3に書込む。
この様に、汎用プロセッサ1から入力された複数のト
ークンが、演算タスクの相手データの待い合わせを行な
いながら、複数の演算処理プログラムに従って演算処理
を施され、最終演算結果がデータメモリ3へ書込まれ
る。この間の演算処理のフローは、トークン内の実行指
示情報により、正確に制御される。
上に述べた専用プロセッサ2に結合される汎用プロセ
ッサ1の内部ブロック図を第3図に示す。汎用プロセッ
サ1はデータフロー型の専用プロセッサ2とバス6を介
して結合できるように設計されており、内部のバス48と
外部バス6とが接続される。内部バス48はバッファ46を
介してバス49に接続されている。バス49にはALU41,テン
ポラリレジスタ42およびRAM43が接続される。さらに、R
AM43は2つのデータを同時にリード/ライト可能なデュ
アルポートメモリを使用しており、バス50にも接続され
ている。バス49とバス50はデュアルバス構造となってお
り、バス50はバッファ47を介してバス51に接続される。
バッファ47にはアドレス計算ユニット44も接続されてお
り、バス51を介してアドレスを出力できるようになって
いる。また、バス51は直接外部バス6に接続してもよい
が、結合バス52を介して内部バス48に接続してもよい。
さらに、ROM36,プログラムカウンタ37,キューメモリ38,
マイクロシーケンサ39および命令デコーダ40を有してお
り、外部バス6を介して外部から入力される命令とプロ
グラムカウンタ37によってアクセスされたROM36内の命
令とをキューメモリ38に入力し、その出力をマイクロシ
ーケンサ39および命令デコーダ40に与えることによっ
て、各種マイクロコードおよび制御信号が発生される。
また、ROM36の命令は外部バス6へも直接転送できるよ
うになっている。内部バス48にはI/Oバスコントローラ4
5が接続されており、これでバスの制御やI/Oの制御がな
される。専用プロセッサ2に送られるべきトークンはAL
U41もしくはアドレス計算ユニット44で作成される場合
もあれば、RAM43から読み出されたデータあるいはROM36
の命令がトークンを構成する場合もある。バッッファ46
は外部バス6から入力される情報をALU41やRAM43に送る
かあるいはキューメモリ38に送るかを切換えをために設
けられており、主としてI/Oバスコントローラ45によっ
て制御される。I/Oバスコントローラ45はI/O制御機能と
してタイマ,汎用ポート,シリアルインターフェイス回
路,割込回路等を含んでいる。
かかる汎用プロセッサ1で作成されたトークンが専用
プロセッサ2内でどのように処理されるかを第4図乃至
第11図を用いて説明する。トークンは実行指示情報と演
算されるべきデータとを含んでいる。汎用プロセッサ1
は実行指示情報(以下、コマンドという)としてテーブ
ルアドレス(TA),データベースポインタ(DSP),ソ
ース/ディスディネーション指示ビット(S/D),デー
タ長指示コード(DL)およびデータフォーマット指示コ
ード(DF)をバス6を介して専用プロセッサ2の入力イ
ンターフェイスユニット(IU)21に送る。このコマンド
と対となるデータ(演算されるべきデータ)は同じくバ
ス6を介して汎用プロセッサ1から送られる。コマンド
とデータはバス6を介して直列に送られる。
入力インターフェイスユニット(IU)21は第5図に示
されているように、バス6に接続されたデータバッファ
(DB)21−1とタイミングコントローラ(TC)21−2を
含む。データバッファ(DB)21−1は第4図に示される
コマンドとデータとを入力可能なレジスタを含み、コマ
ンドの中のデータ長を指示するコード(DL)はタイミン
グコントローラ(TC)21−2に入力される。タイミング
コントローラ(TC)21−2はデータ長を指示するコード
(ここではデータのバイト数)に基いて、コマンドと対
に入力されるべきデータの入力を制御する。例えば、バ
ス6が1回に1バイトしか転送できないバス幅しか有し
ておらず、実際に転送しなければならないデータが3バ
イトあるとすれば、DLは「3」となり、タイミングコン
トローラ(TC)21−2は内蔵するカウンタを使って、こ
のDL=「3」に基いて3回にわけてバス6から転送され
るデータをバッファ(DB)21−1に取り込む制御をす
る。このようにしてそろったコマンドとデータはバス28
を介して次のアドレス計算ユニット(ACU)22に送られ
る。ACU22は第6図に示すように、バス28に接続された
タグデータバッファ(TDB)22−1の中にコマンドを入
力する。ここに入力されたコマンドのうち、テーブルア
ドレス(TA)は演算されるべきデータの格納先を示すア
ドレスがテーブル形式で記憶されているデータアドレス
テーブル(DAT)22−2に送られる。この結果、アクセ
スされたテーブル内のアドレスはコマンド中のデータベ
ースポインタ(DBP)と加算器(ADD)で加算され、実ア
ドレスが作成される。実アドレスはアドレスバッファ
(AB)22−5を介してバス34に送られるとともに、タグ
データバッファ22−1にDSAとして入力される。データ
アドレステーブル(DAT)22−2にはテーブル内の各ア
ドレス毎に表1に示すコントロール情報(CTL)が記憶
されている。CTLは演算タスク機能を示す2ビットのコ
ードである。
表1に示されているように、本実施例ではデータ待ち
合わせの不要な1項(単項)演算とデータ待ち合わせが
必要な2項演算とにわけ、かつ定数と非定数とにわけて
いる。
さらに、タイミングコントローラ(TC)22−4はデー
タフォーマット指示コード(DF)に基いて演算されるべ
きデータの制御を行なう。DFは表2に示すように3ビッ
トからなり、演算されるべきデータの種類を指定する。
アドレス計算ユニット(ACU)22から出力されるトー
クンのうちコマンドはFIFO構造のタスクキューメモリ
(TRQ)24に送られ、データはデータラッチメモリ(DL
M)23に送られるように分配される。これは従来のデー
タフロープロセッサと異なる、本実施例特有の構成であ
る。ACU22からTRQ24に送られるコマンドはテーブルアド
レス(TA),データベースポインタ(DBP)およびデー
タ長を指示するコード(DL)の他にACU22で作成された
実アドレス(DSA)を含む。
タスクキューメモリ(TRQ)24は第7図に示されるよ
うに周知のFIFO(ファーストイン・ファーストアウト)
メモリ構造のタスクデータキュー(TDQ)24−1とキュ
ーステータスコントローラ(QSC)24−2を含む。タグ
データキュー(TDQ)24−1はバス30に接続され、コマ
ンドをFIFO形式に入出力する。一方、キューステータス
コントローラ(QSC)24−2はタグデータキュー(TDQ)
24−1に空がある否かを調べ、空がない時には入力を一
時禁止する信号(QSCC)をACU22のタイミングコントロ
ーラ(TC)22−4に送る。TC22−4はこの信号をうける
とタグデータバッファ(TDB)22−1からバス30に出力
されるコマンドの転送を禁止する。タグデータキュー
(TDQ)24−1内のコマンドは先に入力されたものから
順にバス32に出力される。
一方、演算されるべきデータの方を入力するデータラ
ッチメモリ(DLM)23は第8図に示されるようなメモリ
回路を含む。ACU22はDLM23に対してバス34を介して作成
された実アドレスを送るとともに、そのアドレスに書込
まれるべきデータをバス29を介して送る。この他、CTL
およびS/Dビットをバス29から送る。DLM23はソースデー
タエリア(SDA)23−2とディスティネーションデータ
エリア(DDA)23−4との2つの独立したメモリ領域を
有し、夫々は各アドレス毎に1ビットのソースビットフ
ラグ(Vs)23−1とディスティネーションビットフラグ
(Vd)23−3を有する。CTLとS/Dはメモリコントローラ
(MC)23−6に入力され、S=1の時はバス34上の実ア
ドレスで指されるソースデータエリア(SDA)23−2に
バス29上のデータが書込まれる。この時、対応するフラ
グVsには“1"が書込まれる。一方、D=1の時はデイス
ティネーションデータエリア(DDA)23−4側にデータ
が書込まれ、それに対応するフラグVdに“1"が書込まれ
る。なお、S/Dが1ビットの時は、S/D=0の時SDA(DD
A)をS/D=1の時DDA(SDA)を選択するようにしてもよ
い。実アドレスはアドレスデコーダ(AD)23−5によっ
てデコードされ、通常のメモリアクセスと同様の手法で
メモリ回路23−1〜23−4に印加される。メモリコント
ローラ(MC)23−6はCTLが定数を指示している時は無
条件にVs,Vdに“1"を書込み、非定数を指示している時
はS/Dに応じてVs,Vdの書込みを制御する。さらに、MC23
−6はSDAとDDAとの同一アドレスのデータをみて、夫々
のVsとVdとが“1"である時はバス31にSDAとDDAの双方の
データを送る。なお、データのリードは後述するように
TSCU25からバス35を介して送られるアドレス(実際はTR
Qに入出力されるコマンドの中のDSA(ACUで作成された
実アドレス)がそのままリード用アドレスとして用いら
れる)によって制御される。よって、DLM23へのバス34
はライトアドレスバス、バス35はリードアドレスバスと
定義することができる。なお、データリード時にSDA,DD
Aのいずれか一方もしくは両方にデータがそろっていな
い場合(Vs,Vdが“0"の場合)にはデータリードは行な
われない。
TRQ24を通して送られるコマンドは第9図に示される
タンク実行順序制御回路(TSCU)25に入力される。TSCU
はTRQ24からのバス32に接続され、コマンド中のDSAがア
ドレスバッファ(AB)25−1に入力される。アドレスバ
ッファはリードアドレス作成用のアドレスカウンタ(A
C)25−2に接続され、その出力はバス35を介してDLM23
にリードアドレスとして供給される。この場合、DLM23
内のSDAとDDAとの両方が同時にアクセスされる。コマン
ド中のテーブルアドレス(TA)はタスクシーケンステー
ブル(TST)25−3のアドレスとして使用される。TSTに
はバス31から入力されたデータが演算を要する場合には
演算された結果が格納されるアドレスがまた演算を要し
ない場合には外部バス6への出力を指示する情報sel.新
たなS/O′,DL′が記憶されている。S/D′,DL′はEXU26
にて演算されたデータが次に演算される時のS/D,DLを指
示するものである。TST25−3から新たに出力されたテ
ーブルアドレス(TA′),データベースポインタ(DB
P),S/D′,DL′はタスクデータバッファ(TDB)25−5
を介してバス33に送られる。なお、DLM23からリードさ
れたデータもバス31を介してバス33に送られる。バスセ
レクタ(BSL)25−4はTST25−3の情報とデータフォー
マットDFとに基いて、データをEXU26に送るか、それと
もDTU27から出力するかのバス切換を制御する。データ
はTSTに記憶されている実行順序情報に基いて処理され
るわけである。
TSCU25から出力されるリードアドレス(AB25−1の出
力)によってDLM23がアクセスされ、そのアドレスによ
って指されたVsとVdがともに“1"なら、2項演算される
べきデータがそろっていると判断され、SDAとDDAの内容
がTSCUを介してEXU26へ送られる。そろっていなけれ
ば、次のリードアドレスでDLMがアクセスされる。この
ようにして、データのそろっているものから順にEXUで
演算される。従って、汎用プロセッサ1は演算されるべ
きデータをランダムに専用プロセッサに入力するだけで
よい。
演算実行ユニット(EXU)26は第10図に示されている
ように、演算モード(+,−,×,÷,比較(EXOR)
等)および演算手順を指示するシーケンサ26−1の制御
の下で、レジスタ26−2と26−3に夫々セットされたソ
ースデータとディスティネーションデータに対してALU
(論理演算ユニット)26−4で演算を施し、結果をラッ
チ26−5を介してバス28に転送する。ALUは周知のもの
を使用できる。
データ転送ユニット(DTU)27は第11図に示されてい
るように、演算が終了して出力すべきデータのためのデ
ータバッファ(DB)27−1とタイミングコントローラ
(TC)27−2とを含む。
次に汎用プロセッサ1と専用プロセッサ2の同期通信
手法に関して、第12図を参照して述べる。
専用プロセッサ2内のインターフェイスユニット21
は、汎用プロセッサ1からの入力トークンを保持する入
力トークンバッファ21−1を、データ転送ユニット27は
専用プロセッサ2の演算処理結果を保持する出力データ
バッファ27−1を備えていることは前に述べたとおりで
ある。汎用プロセッサ1と専用プロセッサ2間の同期通
信を制御する為に、以下の簡単な制御信号を用いればよ
い。
汎用プロセッサ1から専用プロセッサ2へのトークン
の転送に際しては、汎用プロセッサ1がバス6上にトー
クンを出力した事を専用プロセッサ2に通知するトーク
ン送出信号60と、専用プロセッサ2のインターフェイス
ユニット21が汎用プロセッサ1から転送されたトークン
を受け取る事ができない事を汎用プロセッサ1に通知す
るウェイト信号61と、専用プロセッサ2内のタスクキュ
ーメモリのタスク数の状態を示すタスクテータス信号62
がある。
専用プロセッサ2の演算結果を汎用プロセッサ1がデ
ータメモリ103に転送する動作に関しては、双方向のデ
ータ転送要求/受付け信号63がある。汎用プロセッサ1
から専用プロセッサ2へのトークンの転送動作に関して
は、以下の2通りの方法があり、汎用プロセッサ1は専
用プロセッサ2の状態によって任意に選択する事ができ
る。
(1) 汎用プロセッサ1は、プログラムメモリ4から
命令コードをフェッチし、その命令コードが専用プロセ
ッサ2で実行される命令の命令コードであると判断する
と、専用プロセッサ2での演算タスクを指定する実行指
示情報を演算処理データに付加し、トークンを生成す
る。そして、トークン送出信号60をアクティブにして、
トークンをバス6上に出力し、専用プロセッサ2からの
ウェイト信号61の信号レベルをチェックする。ウェイト
信号61がアクティブの場合には、バス6上にトークンを
出力したままウェイト状態になり、ウェイト信号61のチ
ェックを繰り返す。ウェイト信号61がインアクティブの
場合には、専用プロセッサ2がトークンを受け取ったと
判断して、プログラムメモリ4から次の命令コードをフ
ェッチする。専用プロセッサ2は、トークン送出信号60
がアクティブになるとインターフェイスユニット21内の
入力トークンバッファ21−1の状態をチェックし、入力
トークンバッファ21−1が空である場合にはウェイト信
号61をインアクティブにして、バス6上のトークンを入
力トークンバッファ21−1内に取り込む。また、入力ト
ークンバッファ21−1内にトークンが残っている場合に
は、インターフェイスユニット21がそのトークンをアド
レス計算ユニット22へ転送するまで、ウェイト信号61を
アクテイブに保つ。
(2) 汎用プロセッサ1は、専用プロセッサ2からの
タスクステータス信号62の状態をチェックし、専用プロ
セッサ2内に多数のレディ状態タスクが存在している場
合には、専用プロセッサ2へのトークンの転送を一時見
合わせて、他の処理を先に実行した後に、(1)と同様
の方法で専用プロセッサ2にトークンを転送する事がで
きる。タスクステータス信号62としてはTRQ24から出力
されるQSCC信号を用いることができる。
専用プロセッサ2の演算結果を汎用プロセッサ1がデ
ータメモリ3に転送する動作に関しては、専用プロセッ
サ2内のデータ転送ユニット27が実行順序制御ユニット
25より最終演算結果を受け取ると、汎用プロセッサ1に
データ転送要求/受付け信号63を介して、演算結果の引
き取りを要求する。汎用プロセッサ1は要求を受付ける
と、現在のプログラム実行を一時中断して、専用プロセ
ッサ2内のデータ転送ユニット27の出力データバッファ
27−1から演算結果を引き取り、バス6を介してデータ
メモリ3へ転送する。
この様に、専用プロセッサ2は、汎用プロセッサ1か
ら転送される演算処理データの転送順序に拘らず、トー
クン内の制御情報により、専用プロセッサ2内部で演算
処理データが待ち合わせを行なって、命令実行順序の同
期関係をとる為、汎用プロセッサ1は専用プロセッサ2
への演算処理データの転送順序に関して、何ら待ち合わ
せ等のタイミングに関する考慮をする必要が無く、汎用
プロセッサ1と専用プロセッサ2間の命令実行について
の同期通信手法は簡単なものとなっている。また、専用
プロセッサ2内のインターフェイスユニット21とデータ
転送ユニット27が各々バッファを備える事により、専用
プロセッサ2内のトークンの入力処理及び演算結果の出
力処理とリング状バスを用いて実行される演算処理と
は、全く独立に実行される。さらに、このようにインタ
ーフェイスが簡単なため第1図のものを単一半導体基板
上に集積化したシングルチップマイクロコンピュータを
容易に作成することができる。そして、プログラム制御
方式ではなく、データの入力によって命令が起動される
データ駆動制御方式のプロセッサを専用プロセッサとし
て搭載する事により、以下の効果が得られる。
(1) 専用プロセッサは、内部に複数の処理プログラ
ムを有しており、各々のプログラムを独立したタスクに
分割し、タスク単位で処理を実行する為、複数のプログ
ラムを並列に実行する事ができる。また、複数のタスク
間には、基本的に実行順序というものは存在せず、処理
データが揃い実行可能になったタスクから次々に実行し
ていく為、処理データの入力待ち等のオーバーヘッドは
殆んど無い。
(2) 前述の実施例における汎用プロセッサを含む他
の汎用プロセッサは、専用プロセッサが、これら汎用プ
ロセッサから転送されるトークン内の処理データの転送
順序に拘らず、トークン内の制御情報により、専用プロ
セッサ内部で処理データの待ち合せを行なって、命令実
行順序の同期関係をとる為、専用プロセッサへの処理デ
ータの転送に関して、何ら待ち合わせ等のタイミングに
関する考慮をする必要がない。これにより、これらの汎
用プロセッサへの処理データの転送に関するオーバーヘ
ッドが、著しく小さくなっている。
この様に本発明では、複数のプロセッサ間のデータ転
送に係わるオーバーヘッドを削減する事により、複数の
プロセッサより構成されたシステムにおけるプロセッサ
の並列処理効率を著しく改善することができる。
またこれにより、ハードウェア資源の有効利用が図ら
れるだけでなく、処理能力を大幅に向上させたシングル
チップマイクロコンピュータを提供する事が可能で、特
にマルチプログラミングにより並列処理に要求される制
御分野においては、高速のリアルタイム制御の実現に対
する実用的な重要性が高い。この様子を第13図に示す。
図において、aは従来の汎用プロセッサの処理サイク
ル、bは従来の汎用プロセッサと専用プロセッサとの間
でのデータ転送に必要なインターフェイスサイクル、c
は従来の専用プロセッサの処理サイクルがある。これに
対して、d,e,fは本実施例における汎用プロセッサの処
理サイクル,インターフェイスサイクル,専用プロセッ
サの処理サイクルである。
本実施例によれば、入出力処理その他の汎用処理を行
なう汎用プロセッサ1と関数計算等数値演算処理を専用
に行なう数値演算用の専用プロセッサ2とを同一チップ
上に形成できる。さらに、入出力データ及び演算データ
を格納するデータメモリ3,処理プログラムを格納するプ
ログラムメモリ4および外部イベントにより汎用プロセ
ッサ1に処理要求を発生する周辺I/Oユニット5をも同
一チップ上に設け、これらをチップ内部バスで相互に接
続することができる。
この場合、汎用プロセッサ1のPCで指されるアドレス
のプログラムメモリ4から命令を読出し、データメモリ
3或いは周辺I/Oユニット5からのデータを用いて、逐
次処理を実行する。数値演算プロセッサ2は、汎用プロ
セッサ1からのデータ入力により、演算処理実行が起動
されるデータフロー制御方式を採用している。数値演算
プロセッサ2内には複数の演算処理プログラムが格納さ
れており、各演算処理処理プログラムは、演算の最小処
理単位である1項演算或いは2項演算の演算タスクに分
割され、各演算タスクは独立に実行する事が可能となっ
ている。
1つの演算処理プログラムは、逐次実行或いは並列実
行可能な複数の演算タスクより構成されており、各演算
タスクはデータの揃った時点で順次実行され、演算タス
クの演算結果が次の演算タスクの入力データになるとい
う繰り返し処理を行なう事により、プログラム処理が進
行する。通常の逐次実行型の数値演算プロセッサは、1
演算処理プログラムの実行に関わる全てのデータが揃う
まで入力データのポーリングを繰り返し、全てのデータ
が揃った時点で演算処理プログラムの実行開始が可能と
なるが、データフロー制御の数値演算プロセッサでは、
分割された演算タスクの入力データが揃う事により演算
タスクが実行され、プログラムの途中まで処理を進行し
ておく事ができる。
演算タスクのデータには制御情報が付加されており、
この制御情報により、データは他の演算タスクのデータ
と区別され、正しい演算データによる演算タスクの順次
実行が制御されている。
第14図にデータフロー制御を行なう数値演算用の専用
プロセッサの他の実施例の内部ブロック構成を示す。
数値演算プロセッサ21は、演算タスクの状態を管理す
るインターフェイス部70、演算データが揃い実行可能状
態(以下レディ状態と記す)にある演算タスクの制御情
報を格納するレディ状態タスクキュー72、入力データを
格納するデータメモリ71、タスクの演算実行を行なう実
行部73、汎用プロセッサに引渡す最終演算結果をデータ
メモリに転送するデータ転送部74より構成され、インタ
ーフェイス部70、レディ状態タスクキュー72、データメ
モリ71、実行部73は1方向にデータが移動するリングバ
ス75で接続されている。
次に数値演算プロセッサ21内のデータ処理手順の概要
を示す。
まず汎用プロセッサは、所定の制御情報を演算データ
に付加して入力データとし、数値演算プロセッサ21内の
インターフェイス部70に転送する。インターフェイス部
70は汎用プロセッサより入力された入力データの内、演
算データをデータメモリ71に転送すると共に制御情報を
デコードして、その演算データがどの演算タスクに関わ
るデータであるかを判別し、該当の演算タスクの状態を
判定する。
入力データの関係する演算タスクが1項演算である場
合には、該データ入力により演算タスクはレディ状態と
なるが、2項演算の場合には、相手の演算データが先に
数値演算プロセッサ21に入力され、データメモリ71に転
送されているかをインターフェイス部70がチェックす
る。その結果、相手の演算データが先にデータメモリ71
に転送されている場合には、演算タスクはレディ状態と
なり、まだ転送されていない場合には、入力データはデ
ータメモリ71上で相手データを待ち合せる。
インターフェイス部70は、データ入力により演算タス
クがレディ状態になると、実行部73での演算指定、演算
データのデータメモリ71の格納アドレス等の情報をもっ
た制御情報を生成し、レディ状態タスクキュー72に転送
する。
実行部73は、レディ状態タスクキュー72の先頭より制
御情報を、データメモリ71より演算データを取り込ん
で、タスクの演算処理を行なう。演算処理終了後実行部
73は演算結果が汎用プロセッサへ引き渡す最終結果であ
る場合には、これをデータ転送部74に出力し、処理プロ
グラムの途中結果である場合には、演算結果が入力デー
タになるところの次の演算タスクを指定する制御情報を
演算結果に付加して、インターフェイス部70に転送す
る。
データ転送部74は、実行部73より演算結果が転送され
ると内部データバスを介して演算結果をデータメモリに
転送する。この際、DTU74から割込信号76を発生して汎
用プロセッサに結果データの転送を指示するようにして
もよい。
この様に、汎用プロセッサより入力されたデータは、
所定演算タスクの演算データとして、データメモリ71上
で相手データの待合わせを行ないながらリングバス75上
を移動し、実行部73で演算処理を施され、その演算結果
は次の演算タスクの入力データとなる。そして上述の動
作を、リングバス75を所定回数回って繰り返す事により
得られた最終演算結果はデータ転送部74によりデータメ
モリに転送される。
実際の応用では、複数の演算処理プログラムから形成
された複数の演算タスクが、データメモリ71上でデータ
の待合わせを行ないながらリングバス75上を回り処理が
進行していく為、あたかも複数の命令が同時に並列実行
されている様にみえる。
次に制御分野での実際の動作について説明する。
汎用プロセッサのプログラムメモリ内には、周辺I/O
との入出力処理プログラム、フェールセーフの為の自己
診断プログラム等が格納され、数値演算プロセッサ内に
は非同期入力データに対する複数の演算処理プログラム
が演算タスクのシーケンスの形で書き込まれている。
各種センサ等からデータ或いは信号が周辺I/Oに入力
されると、周辺I/Oは汎用プロセッサに処理要求を出
す。汎用プロセッサは要求を受付けて、該当の処理ルー
チンを起動する。汎用プロセッサは、周辺I/Oよりデー
タを受け取り、該当入力データが他の周辺I/Oからの非
同期入力データとの演算処理を要する場合には、入力デ
ータに所定のタグデータを付加して数値演算プロセッサ
に転送して、次の処理に移る。
この様に汎用プロセッサは、非同期入力データの演算
処理に関しては、入力データの所定のタグデータを付加
して数値演算プロセッサに転送する処理を繰り返すのみ
で、演算相手のデータ入力を待つ等オーバーヘッドを伴
う処理を要しない。
また、数値演算プロセッサは、汎用プロセッサから演
算データを受け取ると、前述の様に相手データの待合わ
せを行ないながら演算タスクを起動し、複数の命令を並
列に処理実行して、最終演算結果をデータメモリに出力
する。
汎用プロセッサは周辺I/Oへの所定のデータ出力タイ
ミング時に、数値演算プロセッサより書き込まれた演算
結果をデータメモリより読み出し、周辺I/Oに出力す
る。
本実施例では、汎用プロセッサが周辺I/Oとのデータ
入出力処理、数値演算プロセッサへの非同期入力データ
転送及びシステムの自己診断処理を担当し、数値演算プ
ロセッサは非同期入力データの演算処理を担当すること
によって、両プロセッサに明確な機能分散処理を与える
ことができる。
〔発明の効果〕
以上述べてきた様に、本発明では単一半導体基板上に
汎用プロセッサ+数値演算プロセッサの機能分散型デュ
アルプロセッサシステムを構成し、かつ数値演算プロセ
ッサにデータフロー制御方式を採用する事により、特別
な演算専用ハードウェアを備える事なく、非同期入力デ
ータの数値演算処理に対する実効的な演算時間を大幅に
短縮し、ハイエンドの制御分野におけるリアルタイム制
御を行なうシングルチップマイクロコンピュータの実現
を可能にしている。
さらに、バスアービタ等特別のハードウェアを用いる
事なく、単一半導体基板上にデュアルプロセッサシステ
ムを構成する事により、従来の2チップによるデュアル
プロセッサシステムに比較して応用システムにおける実
装面積を減少し、コストを低減すると共に、信頼性を向
上させている。
上記の様に、本発明に基づく汎用プロセッサ+数値演
算プロセッサのオンチップデュアルプロセッサシステム
は、非常にコストパフォーマンスの高いマイクロコンピ
ュータシステムを提供し、その実用的重要度は極めて高
い。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は第1
図の専用プロセッサの内部ブロック図、第3図は汎用プ
ロセッサの内部ブロック図、第4図は専用プロセッサ内
でのトークンの流れを示す図、第5図は入力インターフ
ェイスユニットの内部ブロック図、第6図はアドレス計
算ユニットの内部ブロック図、第7図はタスクキューメ
モリの内部ブロック図、第8図はデータラッチメモリの
内部ブロック図、第9図は実行順序制御ユニットの内部
ブロック図、第10図は実行ユニットの内部ブロック図、
第11図はデータ転送ユニットの内部ブロック図、第12図
は汎用プロセッサ1と専用プロセッサの結合を示すブロ
ック図、第13図はタイミング図、第14図は本発明の他の
実施例による専用プロセッサの内部ブロック図、第15図
は従来のシングルチップマイクロプロセッサの内部ブロ
ック図、第16,17図は従来のデュアルマイクロプロセッ
サのブロック図である。 1……汎用プロセッサ、2……専用プロセッサ、21……
入力インターフェイスユニット、22……アドレス計算ユ
ニット、23……データラッチメモリ、24……タスクキュ
ーメモリ、25……実行順序制御ユニット、26……実行ユ
ニット、27……データ転送ユニット、36……ROM、37…
…プログラムカウンタ、38……キューメモリ、39……マ
イクロシーケンサ、40……命令デコーダ、41……ALU、4
2……テンポラリレジスタ、43……RAM、44……アドレス
計算ユニット、45…I/Oバスコントローラ、46,47……バ
ッファ。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】汎用プロセッサと前記汎用プロセッサから
    転送されるトークンに基づいて演算処理を前記汎用プロ
    セッサのプログラム処理と並列に実行する専用プロセッ
    サとを有する情報処理装置において、前記専用プロセッ
    サは、演算データ及び実行指示情報を対とするトークン
    を入力する入力インタフェース部と、入力されたトーク
    ンに従って前記演算データが格納されるべきメモリアド
    レスを作成するアドレス計算部と、前記演算データを前
    記アドレスに従って一時記憶する第1のメモリと、該第
    1のメモリに記憶された前記演算データと対をなす前記
    実行指示情報を記憶する第2のメモリであって書き込ま
    れた情報を書き込まれた順に出力する第2のメモリと、
    該第2のメモリから出力される前記実行指示情報に基づ
    いて前記第1のメモリから前記演算データを読み出す実
    行順序制御部と、演算データを用いて演算処理を実行す
    る実行部と、演算結果を出力するデータ転送部と、前記
    アドレス計算部、前記第1のメモリ、前記実行順序制御
    部及び前記実行部をリング状に接続するパスとを有し、
    前記演算データは前記パスを介して転送されることを特
    徴とする情報処理装置。
  2. 【請求項2】前記専用プロセッサは前記汎用プロセッサ
    から任意の順序で転送されるトークンに基づいて、演算
    処理可能なデータから順に演算を行うことを特徴とする
    特許請求の範囲第1項記載の情報処理装置。
  3. 【請求項3】前記汎用プロセッサと前記専用プロセッサ
    は同一半導体チップ上に形成されていることを特徴とす
    る特許請求の範囲第1項記載の情報処理装置。
JP61186430A 1985-08-08 1986-08-07 情報処理装置 Expired - Lifetime JP2564805B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP17511785 1985-08-08
JP28878885 1985-12-20
JP60-175117 1985-12-20
JP60-288788 1985-12-20

Publications (2)

Publication Number Publication Date
JPS62229359A JPS62229359A (ja) 1987-10-08
JP2564805B2 true JP2564805B2 (ja) 1996-12-18

Family

ID=26496480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61186430A Expired - Lifetime JP2564805B2 (ja) 1985-08-08 1986-08-07 情報処理装置

Country Status (4)

Country Link
US (2) US4860191A (ja)
EP (1) EP0212499B1 (ja)
JP (1) JP2564805B2 (ja)
DE (1) DE3689394T2 (ja)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749B1 (en) * 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
US5117489A (en) * 1987-04-22 1992-05-26 Mitsubishi Denki Kabushiki Kaisha Data-driven processor having an internal tag-generating system for generating a distinct tagged information and assembling with un-tagged information of an input/output data packet
US5321845A (en) * 1987-09-09 1994-06-14 Hitachi, Ltd. Single-chip microcomputer including non-volatile memory elements
JPS6481066A (en) * 1987-09-24 1989-03-27 Nec Corp Connection system for multi-processor
JPH0646414B2 (ja) * 1987-10-20 1994-06-15 シャープ株式会社 情報処理装置
US5115510A (en) * 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
JPH01116733A (ja) * 1987-10-30 1989-05-09 Agency Of Ind Science & Technol データフロー・プロセッサ
US5117499A (en) * 1988-01-22 1992-05-26 Sharp Kabushiki Kaisha Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs
US5257392A (en) * 1988-01-29 1993-10-26 Sharp Kabushiki Kaisha System for loading and dumping data in a data flow processor based on paired program data and data to be processed
GB2215878A (en) * 1988-03-23 1989-09-27 Benchmark Technologies Chip-independant numeric subsystem
JPH01297764A (ja) * 1988-05-25 1989-11-30 Nec Corp プロセッサ
JPH01303502A (ja) * 1988-05-31 1989-12-07 Fanuc Ltd 数値制御装置
US5214764A (en) * 1988-07-15 1993-05-25 Casio Computer Co., Ltd. Data processing apparatus for operating on variable-length data delimited by delimiter codes
US5040109A (en) * 1988-07-20 1991-08-13 Digital Equipment Corporation Efficient protocol for communicating between asychronous devices
JPH03500461A (ja) * 1988-07-22 1991-01-31 アメリカ合衆国 データ駆動式計算用のデータ流れ装置
US5287450A (en) * 1988-09-29 1994-02-15 Mitsubishi Denki Kabushiki Kaisha Video signal brancher
US5293586A (en) * 1988-09-30 1994-03-08 Hitachi, Ltd. Data processing system for development of outline fonts
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5497344A (en) * 1989-01-26 1996-03-05 Sharp Kabushiki Kaisha Data flow type information processor
US5165036A (en) * 1989-01-31 1992-11-17 Sharp Kabushiki Kaisha Parallel processing development system with debugging device includes facilities for schematically displaying execution state of data driven type processor
US5025390A (en) * 1989-01-31 1991-06-18 Staubli International Ag Robotic workcell control system with a binary accelerator providing enhanced binary calculations
US5276893A (en) * 1989-02-08 1994-01-04 Yvon Savaria Parallel microprocessor architecture
EP0384635B1 (en) * 1989-02-24 1997-08-13 AT&T Corp. Adaptive job scheduling for multiprocessing systems
JP2668438B2 (ja) * 1989-04-21 1997-10-27 三菱電機株式会社 データ検索装置
JP2559850B2 (ja) * 1989-05-26 1996-12-04 三菱電機株式会社 制御用プロセッサ
JPH03154105A (ja) * 1989-11-10 1991-07-02 Toshiba Mach Co Ltd Ncプログラム作成装置
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
EP0843254A3 (en) * 1990-01-18 1999-08-18 National Semiconductor Corporation Integrated digital signal processor/general purpose CPU with shared internal memory
US5028186A (en) * 1990-01-29 1991-07-02 Mechanical Plastics Corp. Hollow wall anchor with enhanced holding strength
JPH03226883A (ja) * 1990-01-31 1991-10-07 Mitsubishi Electric Corp 制御プロセッサ
DE4027324C2 (de) * 1990-08-29 1994-07-14 Siemens Ag Verfahren zum Betrieb eines Coprozessors in einem verteilten Rechnersystem
US5305446A (en) * 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
US5386537A (en) * 1991-03-28 1995-01-31 Minolta Camera Kabushiki Kaisha System with reduced instruction set processor accessing plural memories at different speeds using bank interleaving
JP2582956B2 (ja) * 1991-05-07 1997-02-19 三菱電機株式会社 プログラマブル制御装置
CA2074769C (en) * 1991-08-09 2001-03-20 International Business Machines Corporation Formula processor
JPH05151178A (ja) * 1991-11-26 1993-06-18 Toshiba Corp 分散協調型問題解決装置
DE69228980T2 (de) * 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JPH05181984A (ja) * 1991-12-27 1993-07-23 Sharp Corp データ処理システム
IL100598A0 (en) * 1992-01-06 1992-09-06 Univ Bar Ilan Dataflow computer
JPH0660015A (ja) * 1992-06-08 1994-03-04 Mitsubishi Electric Corp 情報処理装置
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6067417A (en) * 1992-06-30 2000-05-23 Discovision Associates Picture start token
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US5809270A (en) * 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6079009A (en) * 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5842033A (en) 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
JPH0628322A (ja) * 1992-07-10 1994-02-04 Canon Inc 情報処理装置
US5586281A (en) * 1992-10-27 1996-12-17 Sharp Kabushiki Kaisha Data driven type information processing apparatus
US5861894A (en) * 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
EP0707726A4 (en) * 1993-07-09 1998-07-15 Akzo Nobel Nv MEMORY CONTROL DEVICE FOR DOSING APPARATUS
US5765014A (en) * 1993-10-12 1998-06-09 Seki; Hajime Electronic computer system and processor element for processing in a data driven manner using reverse polish notation
TW243568B (en) * 1993-11-16 1995-03-21 At & T Corp Digital signal processor with an embedded viterbi co-processor
US5432804A (en) * 1993-11-16 1995-07-11 At&T Corp. Digital processor and viterbi decoder having shared memory
JPH07219774A (ja) * 1994-02-07 1995-08-18 Fujitsu Ltd データ処理装置および例外処理方法
US5798719A (en) * 1994-07-29 1998-08-25 Discovision Associates Parallel Huffman decoder
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
JP3581419B2 (ja) * 1995-03-17 2004-10-27 シャープ株式会社 データ駆動型情報処理装置
JPH0922251A (ja) * 1995-07-04 1997-01-21 Mitsubishi Electric Corp ナビゲーション装置
GB9600336D0 (en) * 1996-01-09 1996-03-13 Int Computers Ltd Arbitration method and apparatus
US6006320A (en) * 1996-07-01 1999-12-21 Sun Microsystems, Inc. Processor architecture with independent OS resources
DE19782200B4 (de) 1996-12-19 2011-06-16 Magnachip Semiconductor, Ltd. Maschine zur Videovollbildaufbereitung
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6952215B1 (en) * 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
US6762761B2 (en) * 1999-03-31 2004-07-13 International Business Machines Corporation Method and system for graphics rendering using hardware-event-triggered execution of captured graphics hardware instructions
US6677951B2 (en) * 2000-03-03 2004-01-13 Sony Computer Entertainment, Inc. Entertainment apparatus having compatibility and computer system
CN1154060C (zh) * 2000-07-18 2004-06-16 徐肇昌 一种基于分布结构的并行模块结构及并行处理方法
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
JP4783527B2 (ja) * 2001-01-31 2011-09-28 株式会社ガイア・システム・ソリューション データ処理システム、データ処理装置およびその制御方法
JP2004525449A (ja) * 2001-02-14 2004-08-19 クリアスピード・テクノロジー・リミテッド 相互接続システム
US20020152061A1 (en) * 2001-04-06 2002-10-17 Shintaro Shimogori Data processing system and design system
JP4865960B2 (ja) * 2001-06-25 2012-02-01 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US6993674B2 (en) * 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US20030163674A1 (en) * 2002-02-26 2003-08-28 Mitsumasa Yoshimura Data processing apparatus, processor unit and debugging unit
GB2392742B (en) 2002-09-04 2005-10-19 Advanced Risc Mach Ltd Synchronisation between pipelines in a data processing apparatus
US7363559B2 (en) * 2005-12-30 2008-04-22 Intel Corporation Detection of tap register characteristics
JP6115564B2 (ja) * 2012-03-13 2017-04-19 日本電気株式会社 データ処理システム、半導体集積回路およびその制御方法
US9702305B2 (en) 2013-04-17 2017-07-11 Micron Technology, Inc. Multiple engine sequencer
US10205666B2 (en) * 2013-07-29 2019-02-12 Ampere Computing Llc End-to-end flow control in system on chip interconnects
WO2015035306A1 (en) * 2013-09-06 2015-03-12 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with token-based very long instruction word architecture
DE102016005026B3 (de) * 2016-04-24 2017-05-18 Sami Haddadin System und Verfahren zum Steuern eines Roboters
US10956078B2 (en) * 2018-03-27 2021-03-23 EMC IP Holding Company LLC Storage system with loopback replication process providing object-dependent slice assignment
US10866969B2 (en) 2018-03-28 2020-12-15 EMC IP Holding Company LLC Storage system with loopback replication process providing unique identifiers for collision-free object pairing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip
US4149244A (en) * 1976-06-07 1979-04-10 Amdahl Corporation Data processing system including a program-executing secondary system controlling a program-executing primary system
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
US4215399A (en) * 1978-08-24 1980-07-29 Texas Instruments Incorporated Special function control system for a dual microprocessor programmable process control system
JPS5840214B2 (ja) * 1979-06-26 1983-09-03 株式会社東芝 計算機システム
US4455661A (en) * 1980-04-03 1984-06-19 Codex Corporation Dual processor digital modem apparatus
US4491907A (en) * 1980-12-15 1985-01-01 Texas Instruments Incorporated Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip
US4467412A (en) * 1981-05-18 1984-08-21 Atari, Inc. Slave processor with clock controlled by internal ROM & master processor
US4482950A (en) * 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
JPS5870360A (ja) * 1981-10-22 1983-04-26 Nec Corp デ−タフロ−処新装置
JPS58159156A (ja) * 1982-03-18 1983-09-21 Fujitsu Ltd プログラム実行方式
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
JPS60132243A (ja) * 1983-12-20 1985-07-15 Nec Corp テンプレ−ト読み出し回路
US4641308A (en) * 1984-01-03 1987-02-03 Texas Instruments Incorporated Method of internal self-test of microprocessor using microcode
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
US4845609A (en) * 1986-07-25 1989-07-04 Systech Corporation Computer communications subsystem using an embedded token-passing network

Also Published As

Publication number Publication date
DE3689394T2 (de) 1994-04-07
US4860191A (en) 1989-08-22
US4953082A (en) 1990-08-28
JPS62229359A (ja) 1987-10-08
DE3689394D1 (de) 1994-01-27
EP0212499A3 (en) 1990-12-19
EP0212499A2 (en) 1987-03-04
EP0212499B1 (en) 1993-12-15

Similar Documents

Publication Publication Date Title
JP2564805B2 (ja) 情報処理装置
US4270167A (en) Apparatus and method for cooperative and concurrent coprocessing of digital information
US6938253B2 (en) Multiprocessor communication system and method
US4112490A (en) Data transfer control apparatus and method
US4414624A (en) Multiple-microcomputer processing
JP3105223B2 (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
US4803622A (en) Programmable I/O sequencer for use in an I/O processor
EP0450233A2 (en) Bus access for digital computer system
US5210828A (en) Multiprocessing system with interprocessor communications facility
JPS5841538B2 (ja) マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
JPH01131949A (ja) 処理依頼機能を持つ並列計算機
JPH077374B2 (ja) インタフェース回路
CN115203142A (zh) 一种多核核间实时通信***及方法
US20170147345A1 (en) Multiple operation interface to shared coprocessor
US8843728B2 (en) Processor for enabling inter-sequencer communication following lock competition and accelerator registration
KR20080096484A (ko) 데이터 통신
KR20080096485A (ko) 일련의 컴퓨터 내에서의 데이터 처리를 위한 시스템 및방법
US6647450B1 (en) Multiprocessor computer systems with command FIFO buffer at each target device
KR20090016645A (ko) 컴퓨터의 입력을 모니터링하는 방법과 장치
US6708259B1 (en) Programmable wake up of memory transfer controllers in a memory transfer engine
EP0376003A2 (en) Multiprocessing system with interprocessor communications facility
GB2027238A (en) Clear and wait instruction means and method
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法
Toong et al. A general multi-microprocessor interconnection mechanism for non-numeric processing
JPH01106158A (ja) プロセツサ間のデータ通信制御方式