JP2884831B2 - 処理装置 - Google Patents

処理装置

Info

Publication number
JP2884831B2
JP2884831B2 JP3162631A JP16263191A JP2884831B2 JP 2884831 B2 JP2884831 B2 JP 2884831B2 JP 3162631 A JP3162631 A JP 3162631A JP 16263191 A JP16263191 A JP 16263191A JP 2884831 B2 JP2884831 B2 JP 2884831B2
Authority
JP
Japan
Prior art keywords
instruction
processing unit
sub
processing
processing device
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
JP3162631A
Other languages
English (en)
Other versions
JPH06131181A (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.)
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 JP3162631A priority Critical patent/JP2884831B2/ja
Priority to DE69230118T priority patent/DE69230118T2/de
Priority to EP92111156A priority patent/EP0521486B1/en
Publication of JPH06131181A publication Critical patent/JPH06131181A/ja
Priority to US08/405,925 priority patent/US5530889A/en
Application granted granted Critical
Publication of JP2884831B2 publication Critical patent/JP2884831B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、数値演算等の演算を行
処理装置に係り、特に演算処理の高速化を図るのに好
適な処理装置に関する。
【0002】
【従来の技術】従来、実時間処理能力、スカラ処理能力
を上げるための演算処理装置としては例えば特開63−
316133号公報に記載されているものがある。この
演算処理装置は、ホストプロセッサと、演算処理を担当
する演算ユニットからなる処理装置であって、ホストプ
ロセッサ上で記述される、演算ユニットの演算シ−ケン
スを実行可能な第2のプロセッサを用意し、ホストプロ
セッサと第2のプロセッサが共に演算ユニットを共有し
て第2のプロセッサに演算処理シ−ケンスを実行させ、
ホストプロセッサはそれと並行に主メモリと演算ユニッ
トのレジスタファイル間でデ−タ入出力を行う装置であ
る。この装置によりハ−ドウェアの並列性を有効的に引
き出し、演算処理の高速化を図っている。
【0003】
【発明が解決しようとする課題】上記従来技術は、演算
処理の高速化については優れた装置であるが、ある階層
に存在する処理装置がそれより下位レベルに存在する処
理装置との間で、並列処理動作の効率を高めるといった
点については十分配慮されていなかった。
【0004】本発明の目的は、装置内に少なくとも2つ
の処理部を備え、一方の処理部から他方の処理部へ命令
を送りその結果データを得て処理を行う処理装置におい
て、データの受け渡しを効率よく行えるようにして処理
の効率を高めることにある。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明の処理装置は、シーケンシャルに記述された
命令列を実行する第1の処理部と、この第1の処理部か
らアクセス可能なよう にバスで接続されたメモリ手段
と、前記第1の処理部とバスで接続されて前記第1の処
理部からの命令を受けて実行する第2の処理部とを備え
た処理装置において、前記第1の処理部は、結果データ
を返すレジスタ手段のアドレスを指定して前記第2の処
理部に命令を送る手段と、前記第2の処理部から結果デ
ータを受け取るためのストア命令を前記結果データが返
送されたレジスタ手段のアドレスを指定して前記第2の
処理部に送る手段と、前記第2の処理部に送ったストア
命令の実行を許すレディ信号がアクティブになるまで待
つための手段とを有し、前記第2の処理部は、命令の実
行中に新たに受けた命令を保持する手段と、前記第1の
処理部からのストア命令を受けてこのストア命令に先立
って受け付けられた命令の中でこのストア命令と共に指
定されたレジスタ手段のアドレスを結果データの返送先
として指定した命令の有無を調べる手段と、前記レジス
タ手段のアドレスを指定した命令が存在しないときはレ
ディ信号をアクティブにして前記レジスタ手段のアドレ
スから結果データをバスに出力する手段と、前記レジス
タ手段のアドレスを指定した命令が存在する場合は前記
レディ信号を非アクティブにする手段とを有する。この
とき、第1の処理部は1つ又は複数の基本命令で構成さ
れたマクロ命令を生成して第2の処理部に送る手段と、
第2の処理部は第1の処理部から受け取ったマクロ命令
を基本命令に分解して処理する手段とを有するようにす
るとよい。また、第1の処理部と第2の処理部の間に、
第1の処理部から第2の処理部に命令を送るバスと、第
1の処理部から第2の処理部を制御するバスとを分離し
て設けるとよい。
【0006】
【作用】第2の処理部は命令の実行中に新たに受けた命
令を保持する手段を有するため、また第2の処理部は結
果データを第1の処理部から指定されたレジスタ手段の
アドレスに返送し、かつ第1の処理部は結果データが必
要になったときにその結果データが返送されているレジ
スタ手段のアドレスを指定することにより結果データを
得ることができるため、第1の処理部は第2の処理部で
の処理の終了を待つこと無く次の命令を第2の処理部に
送ることができ、またその他の処理を進め ることができ
る。
【0007】
【実施例】本発明の実施例を図1を用いて詳細に説明す
る。
【0008】本実施例の並列処理方式中央演算処理装置
(PCPU)は、メインCPU部1と1台以上のサブ処
理装置2(本例では2a〜2dの4台のサブ処理装置か
ら成る)と主記憶装置等の記憶サブシステムに代表され
るメインリソ−ス3とから構成される。メインCPU部
1と各サブ処理装置2a〜2dとはデ−タバスData
l1、コントロ−ルバスCONTl2及び命令バスで接
続され、通常はメインCPU部1の管理下で各サブ処理
装置2a〜2dは動作する。本例においては命令バスは
アドレスバスADDRl3の一部分を共有することによ
って代用している。すなわち、ADDRl3の一部を用
いて、各サブ処理装置が処理すべき内容を命令として各
サブシステム2a〜2dに与える方式を採っている。ま
たさらに、ADDRl3を用いて与えた命令種類によっ
ては、デ−タバスDatal1の内容にサブ命令を含ま
せて各サブ処理装置2a〜2dに与えることも可能であ
る。各サブシステム2a〜2dは、インタ−フェ−ス入
出力Dで、処理すべきデ−タバスDatal1上のデ−
タを入力するか又は処理した結果デ−タをDatal1
へ出力する。同様に、インタ−フェ−ス入力Iで必要な
実行すべき命令デ−タを、インタ−フェ−ス入出力Cで
必要な制御信号(ex.有効な命令起動の為のストロ−
ブ信号や命令を受け取った事を示すレディ信号等)をや
りとりする。本例において、サブ処理装置A2aは、自
身の管理下にさらにサブ処理装置としてAA2aa及び
AB2abとサブリソ−ス3a等のサブシステムを有す
る。丁度、サブ処理装置A2aの立場をメインCPU部
1の立場に置き替えた構造を採っている。サブ処理装置
A2aは、専用のデ−タバスADatal4、アドレス
バスAADDRl6、制御バスACONTl5を有し、
メインCPU部1と同様の方式で各サブシステムと接続
される。
【0009】図1に示した接続構造から明らかな様に、
本実施例の並列処理方式中央演算処理装置は、並列階層
構造を採っている。すなわち、メインCPU部1の管理
下の同階層に並列に4つのサブ処理装置2a〜2dが配
置され、サブ処理装置A2aの管理下の同階層に並列に
2つのサブ処理装置2aa,2abが配置される階層構
造になっている。メインCPU部1からサブ処理装置A
2aをみた場合、A2aの管理下のサブシステムによる
命令の実行動作は観測されず、直接的にはすべてA2a
に対して命令を指示し、A2aによってその命令が実行
されている様に観測される。サブ処理装置A2aは、メ
インCPU部1からの命令(マクロ命令)を受けそれを
さらに細分化した命令(ミクロ命令)に分解して、A2
a自身で実行できるものはA2a自身で実行し、サブ処
理装置2aa,2abで実行できるものはそれらに対し
細分化した命令(ミクロ命令)を生成して必要な機能を
実行させる。仮に、上位レベルの命令をマクロ命令と呼
び、下位レベルの細分化された命令をミクロ命令と呼ぶ
ことにする。例えば、サブリソ−ス3aの内容をデ−タ
バスDatal1に読み出すだけの単純なマクロ命令
(この場合ストア命令に相当する)が上位からサブ処理
装置A2aに対して与えられたとすると、これ以上細分
化できない基本命令なのでそのままミクロ命令としてA
2aによって実行される。すなわち、A2aがサブリソ
−ス3aからまず目的のデ−タをAADDRl6及びA
CONTl5を適切な信号を出力することによりADa
tal4上に読み出した後、そのままそのデ−タをA2
aがインタ−フェ−ス入出力DにパスしてDatal1
上に出力する。メインCPU部1からは、サブ処理装置
A2aの管理下の構造は全く見えず、単にマクロ命令に
よって指定したA2a内のメモリシステム上のアドレス
に存在するデ−タを読み出した様に観測される。同様
に、複雑なマクロ命令を指令した場合でも、サブ処理装
置A2a内でそれがどの様に分解され、どのサブシステ
ムを用いてどの様に実行されたかは全く見えず、単にそ
のマクロ命令がA2aによって実行されA2a上のメモ
リシステムの指定したアドレスに返送された結果のみを
後で見ることができる。
【0010】次に図2を用いて、本実施例の動作シ−ケ
ンスの一例を説明する。
【0011】メインCPU部1から各サブ処理装置A,
B,C,Dへのマクロ命令の指令をそれぞれIA,I
B,IC,IDとし、特に各サブ処理装置A,B,C,
D内のメモリシステム(レジスタ、サブリソ−ス、スタ
ック等)からデ−タバスDatal1への結果デ−タの
ストアを指示するストア命令の指令をSA,SB,S
C,SDとしている。同様に、サブ処理装置A2aとそ
の管理下のサブ処理装置AA2aa,AB2abとの間
でも、A2aからの対応するミクロ命令の指令をIA
A,IABとし、AA2aa,AB2abからA2aへ
結果デ−タをストアするストア命令の指令を特にSA
A,SABと表現している。DTは、リソ−スとのデ−
タのやりとりやリソ−スからの命令デ−タのフェッチを
示す。Dは、メインCPU部1又は各サブ処理装置2a
〜2dの管理するデ−タバスへの下位レベルからのスト
アデ−タの出力状態を示している。すなわち、メインC
PU部1においてはDatal1への自身の管理するサ
ブシステム(A2a,B2b,C2c,D2d,リソ−
ス3)からの結果デ−タ出力であり、サブ処理装置A2
aにおいてはADatal4への自身の管理するサブシ
ステム(AA2aa,AB2ab,サブリソ−ス3a)
からの結果デ−タ出力である。本実施例においては、上
位処理装置がサブ処理装置から結果デ−タを得る場合ス
トア命令をそのサブ処理装置に対して指示し、ストア命
令を指令されたサブ処理装置はそのストア命令で指定さ
れたメモリシステムのアドレスに存在する結果デ−タを
上位システムに対し出力する。この際、サブ処理装置側
でその指定されたメモリシステムのアドレスに対する結
果デ−タの設定処理が完了していない場合、上位システ
ムからストア命令が指令されたときに前記結果デ−タの
設定処理が完了するまで上位システムを待たせる機能
を、サブ処理装置と上位システムとの間の同期システム
として持たせている。図2中のIは各処理装置内のみで
処理できる命令を示している。すなわち、Iで示される
命令が実行されている場合、他の処理装置とのデ−タの
交換が行われないため、各処理装置は他から干渉されず
自身のみで自由に動作できることを意味する。なお、ス
トア命令の実行はSIで表している。
【0012】図2における並列動作シ−ケンスは、全て
メインCPU部1によって実行される命令及びサブ処理
装置に対するマクロ命令がベ−スとなって制御されてい
る。メインCPU部1で実行される命令処理は完全にシ
−ケンシャルであり、従来からのシ−ケンシャルプログ
ラミング方式によって記述することができる。すなわ
ち、プログラマはメインCPU部1上のプログラムのみ
を記述すれば良いことがわかる。メインCPU部1は、
まずポイントP1,P2,P3,P4でそれぞれ各サブ
処理装置A,B,C,Dに対し対応するマクロ命令I
A,IB,IC、IDを指令する。各サブ処理装置A,
B,C,Dは、メインCPU部1からストア命令が指令
されるまで、メインCPU部1と並列に動作し続けるこ
とができる。まずサブ処理装置Aの処理が終了し、メイ
ンCPU部1はポイントP5で次のマクロ命令IAをサ
ブ処理装置Aに指令している。もし、先行するマクロ命
令の処理が終了していなくても、次に投入すべきマクロ
命令がストア命令SI以外のマクロ命令IXならば、先
行してサブ処理装置に投入しておくことができ、メイン
CPU部1は以前に指令したマクロ命令処理の終了を待
つ必要はない。ただし、この場合、先行して投入された
1つ以上のマクロ命令を、サブ処理装置内の処理ユニッ
トが実行を開始するまで一時的に蓄えておくための命令
キュ−等の命令ストレ−ジシステムを、サブ処理装置側
に設けておく。メインCPU部1は、ポイントP6で、
サブ処理装置Bに対し、ストア命令SBを指令し、サブ
処理装置Bの必要な結果デ−タのストア動作を要求す
る。本例では、サブ処理装置Bの先行するマクロ命令の
処理がポイントP6の時点で丁度終了しており、結果デ
−タが得られているため、直ちにストア命令SBがサブ
処理装置Bに受け付けられて直ちにストア動作SIが実
行され、ポイントP7のデ−タフェッチステ−トDでサ
ブ処理装置BはメインCPU部1の管理するデ−タバス
Datal1に結果デ−タを出力する。同様に、メイン
CPU部1は、ポイントP5ではサブ処理装置Aにマク
ロ命令IAを、ポイントP8ではサブ処理装置Cにマク
ロ命令ICを、ポイントP9ではサブ処理装置Dにマク
ロ命令IDを、ポイントP10ではサブ処理装置Bにマ
クロ命令IBを、ポイントP11ではサブ処理装置Cに
マクロ命令ICをそれぞれ指令している。ポイントP9
のIDを除いては指令した時刻にはすでに先行するマク
ロ命令の処理が終了しており、対象となるサブ処理装置
は処理を実行していない状態、すなわちアイドル状態
(図中---で表現)中に次のマクロ命令が投入されてい
る。このため、対象とするそれらのサブ処理装置は、そ
れらのマクロ命令を直ちに受け付け、直ちに実行を開始
している。ポイントP9におけるマクロ命令IDは、サ
ブ処理装置Dが依然として先行するマクロ命令の処理を
実行中であるため、前述した様に、ポイントP9におけ
るメインCPU部1からのマクロ命令IDは一度サブ処
理装置D内に設けられた命令キュ−システムに蓄えら
れ、先行するマクロ命令の処理が終了するポイントP1
3で、サブ処理装置Dはマクロ命令IDを前記命令キュ
−システムから取り出し、その処理を開始する。したが
って、メインCPU部1の処理の実行と、サブ処理装置
Dの処理の実行とは互いに干渉されることなく完全に並
列に動作している。
【0013】次に、サブ処理装置Aを基準処理装置とし
て、サブ処理装置A及びその管理下のサブ処理装置AA
及びABの動作シ−ケンスを追ってみる。まず、ポイン
トP1でメインCPU部1からサブ処理装置Aに対して
指令されたマクロ命令IAを受けて、サブ処理装置Aは
そのマクロ命令の実行を開始する。サブ処理装置Aはポ
イントP14及びP15で自身の管理下のサブ処理装置
AA及びABに対してそれぞれミクロ命令IAA及びI
ABを出力する。ポイントP1におけるマクロ命令IA
は、サブ処理装置Aからサブ処理装置AA,ABへのス
トア命令を含んでいないので、サブ処理装置AA,AB
におけるミクロ命令IAA,IABに対する処理が終了
するのを待たずしてサブ処理装置Aはマクロ命令IAに
対する処理を終了することができる。ポイントP5でメ
インCPU部1は次のマクロ命令IAをサブ処理装置A
に対し指令する。サブ処理装置Aは、その点アイドル状
態にあるため、そのマクロ命令IAを直ちに受け付ける
と同時に実行を開始する。サブ処理装置AはポイントP
16でサブ処理装置AAに、ポイントP17でサブ処理
装置ABに対しそれぞれミクロ命令IAA及びIABを
指令する。ポイントP18で、サブ処理装置Aはサブ処
理装置AAの結果デ−タが必要となるため、ストア命令
SAAをサブ処理装置AAに対し指令する。サブ処理装
置AAはその時点ですでに必要な処理を終了しているの
でストア命令SAAを直ちに実行し(SI)、結果デ−
タをポイントP19のデ−タフェッチステ−トDでデ−
タバスADatal4に出力し、サブ処理装置Aはその
デ−タを得て、P5におけるマクロ命令IAによって指
示されているメモリシステム(例えばレジスタファイ
ル)の適切なアドレスに記憶する。同様に、ポイントP
20で、サブ処理装置Aはサブ処理装置ABの結果デ−
タが必要となり、ストア命令SABをサブ処理装置AB
に対して指令する。その時点で、サブ処理装置ABはP
17で指令されたミクロ命令IABの最後の基本命令I
を実行中であり、まだ必要な前記結果デ−タを得ていな
い。そのため、ストア命令SABは直ちに実行されず、
サブ処理装置Aはストア命令SABのデ−タフェッチス
テ−トDでサブ処理装置ABの必要な処理が終了するま
で待ち状態(図中---で表現)となる。サブ処理装置A
Bは、ポイントP23でP17に対応するミクロ命令I
ABに関する必要な処理を終了し、前記ストア命令の実
行ステ−トSIで結果デ−タをADatal4に出力す
る。ポイントP24でその出力された結果デ−タがサブ
処理装置Aにフェッチされ、待たされていたデ−タフェ
ッチステ−トDは終了する。これらの動作と並列に、メ
インCPU部1は、ポイントP12でサブ処理装置Aに
対してストア命令SAを指令し、ポイントP5で指令し
たマクロ命令IAに対応する最終的な結果デ−タを要求
している。それが、ポイントP24でえられた前記結果
デ−タと同一のものであるとすると、サブ処理装置Aは
ポイントP21でそれを直接ハンドリングして、P12
で指令されたストア命令SAに対応したストア処理ステ
−トSIを実行する。これを、下位レベルのサブ処理装
置からのデ−タのダイレクトパスモ−ドと呼ぶ。ポイン
トP20におけるストア命令SABと同様、ポイントP
12におけるストア命令SAもその時点でサブ処理装置
Aの必要な処理が終了していないため、ポイントP12
のストア命令SAのデ−タフェッチステ−トDでメイン
CPU部1は一時的に待たされる。メインCPU部1
は、ポイントP22で必要な結果デ−タを得てデ−タフ
ェッチステ−トDを終了する。
【0014】上記方式による中央演算処理内並列処理を
階層並列処理方式と呼ぶ。本方式による利点をまとめて
おく。
【0015】(1)あるレベル(階層)に存在する処理
装置がそれより下位レベルに存在する様々なサブ処理装
置に対して、命令(ストア命令以外)及びその命令に必
要なデ−タを次々に出力していく場合、前記処理装置か
ストア命令をサブ処理装置に指令するまでそのサブ処理
装置との同期処理(処理間のリレ−ションに矛盾が生じ
ない様に、処理装置間で待ち合わせる処理)を行う必要
がない。
【0016】(2)ストア命令の出力を、できるだけ後
の時刻にずらしていく、すなわち、サブ処理装置からの
必要なデ−タのストア処理を、そのデ−タが実際に必要
となるまで遅らせるコンパイル上の最適化によって、容
易に、処理装置間の並列処理動作の効率をより最適化す
ることができる。
【0017】(3)メインCPU部又はサブ処理装置の
下に、同じア−キテクチャで新たなサブ処理を追加して
いくことによって、容易に処理能力・処理機能を追加し
ていくことができる。
【0018】次に、図1のサブ処理装置A2aを用い
て、一般的なサブ処理装置のア−キテクチャについて説
明する。
【0019】サブ処理装置A2aは、例えば浮動小数点
数値処理を実行するFPU(Floating point operation
Processing Unit)の様な、メインCPU部1の処理機
能の一部を代行するコプロセッサとする。サブ処理装置
A2a内は、前述したC,I,Dの外部との各インタ−
フェ−スから成るインタ−フェ−スユニット200、レ
ジスタファイル202、実行ユニットE201、ストア
ユニットSTR203及びスタックレジスタファイル2
04から構成されている。インタ−フェ−スユニット2
00は、メインCPU部1からのマクロ命令及びデ−タ
を受信する。もし、先行する命令の実行処理が終了して
いない場合、前記の新たなマクロ命令及びデ−タは、一
時的にインタ−フェ−スユニット200内の命令キュ−
及びデ−タキュ−等のテンポラリストレ−ジに蓄えられ
る。実行ユニットE201は、レジスタファイル202
内のレジスタを対象とした演算及び操作、又はレジスタ
ファイル202内のレジスタとインタ−フェ−スユニッ
トによって受信したメインCPU部1からのデ−タを用
いた演算及び操作を行う。ストアユニットSTR203
は、メインCPU部1からのストア命令の指令に呼応し
て、レジスタファイル上の指定されたレジスタの内容を
メインCPU部1の対応するバスサイクルで、入出力イ
ンタ−フェ−スDよりデ−タバスDatal1に出力す
る機能を有する。この際、ストアユニットSTR203
は、すでにメインCPU部1から指令されていて、イン
タ−フェ−スユニット200内のテンポラリストレ−ジ
に一時的に蓄えられている先行するマクロ命令の中で、
少なくとも、前記ストア命令で指定された対象レジスタ
を、そのマクロ命令の処理結果をロ−ドするために使用
するデスティネ−ションレジスタとして指定する命令
(マクロ命令)が存在していれば、メインCPU部1か
らの前記ストア命令に対するレディ信号(アクティブな
場合、そのストア命令の処理が終了したことを示す制御
信号)を、サブ処理装置A2aのインタ−フェ−ス部C
が一時的に非アクティブに固定することによってメイン
CPU部1を待たせる方式の同期処理を行い、メインC
PU部1とサブ処理装置A2aとの間で同期をとる。こ
れにより、各処理装置間のデ−タの処理順序に矛盾を生
じない様にし、メインCPU部1上に記述されている処
理シ−ケンスをシ−ケンシャルに実行することができ
る。前記条件が解除された時、すなわち先行するマクロ
命令の中で、ストア命令により指示されたレジスタをデ
スティネ−ションレジスタとして使用するマクロ命令の
処理が全て終了したとき、レディ信号がアクティブ状態
に転じ、メインCPU部1は次の実行動作に移行する。
スタックレジスタファイル204はサブ処理装置内A内
のメモリユニットであり、メインCPU部1の実行する
シ−ケンサの中でタスクスイッチが生じた場合、レジス
タファイルの内容をコピ−してスタックしていく機能
や、メインCPU部12aからの外部デ−タの代りにス
タックレジスタファイル204のデ−タを用いて、実行
ユニットE201が演算及び操作を実行する機能等を有
する。また、スタックレジスタファイル204は、メイ
ンCPU部1からメモリリソ−スの1つとしてアクセス
できる。すなわち、メインCPU部1のロ−カルメモリ
と同等にアクセスすることができる。また、記述したよ
うに、サブ処理装置A2aは、より下位レベルのサブ処
理装置と通信するためのバスインタ−フェ−スチャネル
プロトコルAData,AADDR,ACONTを有す
る。
【0020】次に、ある階層レベルに存在する処理装置
と、その処理装置の管理下に接続される1レベル下位の
階層のサブ処理装置との間の結合方式について、図1に
示した方式以外のものを挙げ、特徴及び効果を説明す
る。
【0021】図3は、図1の例において、アドレスバス
ADDRl3で代用していた命令バスIとコントロ−ル
バスCONTlで代用されているサブ処理装置を制御す
るための制御バス(各サブ処理装置の入力インタ−フェ
−スCに入力されている)とを分離し、メインCPU部
1にサブ処理装置用の命令バスSINSTSl3と制御
バスSCONTSl2を特別に設けた実施例である。本
方式は、以下の特徴と効果を有する。
【0022】(1)アドレスバスADDRl3によるア
ドレス指定を伴うメインリソ−ス3へのメインCPU部
1のアクセスと、サブ処理装置A,Bへの任意のマクロ
命令の指令及びサブ処理装置A,Bでの処理の実行とを
並列化することができる。図1の例では、アドレスバス
ADDRl3の一部をマクロ命令を指定するための命令
バスとして用いているため、ランダムなアドレスに配置
されているメインリソ−ス3上のデ−タにアドレスバス
ADDRl3を用いてアクセスした場合、同時にマクロ
命令の指令ができなくなるため、そのアクセス対象とな
ったデ−タ1つ1つに対してそのアクセスと並行に、任
意のマクロ命令による演算処理の指示を行い、サブ処理
装置メインCPU部1のメインリソ−ス3への前記アク
セス動作と並列に動作させることが困難である(実行す
るマクロ命令の種類が1つに限定されていれば、事前に
そのマクロ命令をサブ処理装置に指定しておくことによ
り、並列動作が可能となる)。(2)事前にサブ処理装
置に指示するマクロ命令がメインCPU部1にわかって
いる場合、すなわちメインCPU部1内のメモリにその
シ−ケンスが記憶されているか又はメインCPU部1が
そのシ−ケンスを外部から事前にプリフェッチしておい
て内部の命令キュ−等のストレ−ジバッファに蓄えてい
る場合、メインCPU部1の動作とそのサブ処理装置の
動作の大部分を並列化することができる。特に、メイン
リソ−ス3上のデ−タをサブ処理装置が利用しない場合
(サブ処理装置内のレジスタファイルがスタックレジス
タファイル上のデ−タのみで処理を実行できる場合)、
メインCPU部1の動作とそのサブ処理装置の動作を完
全に並列化できる。
【0023】図4は、デ−タバスDatal1に直接サ
ブ処理装置A,Bを接続するのではなく、図3の例に加
えてさらに、独立したサブ処理装置用のデ−タバスSD
atasl1を設けてそこにサブ処理装置A,Bのデ−
タ入出力インタ−フェ−スDを接続した実施例である。
本実施例は以下に示す特徴及び効果を有する。
【0024】(1)メインCPU部1によるメインリソ
−ス3へのアクセスとサブ処理装置A,Bへのマクロ命
令の指示とを並列化できる点は、図3の場合と同様であ
る。ただし、サブ処理装置A,Bでの処理に関連したメ
インリソ−ス3上のデ−タはメインCPU部1を介して
ハンドリングされ、サブ処理装置とメインリソ−ス3と
の間でやりとりされる。
【0025】(2)図3の実施例の(2)の特徴・効果
の他に、サブリソ−ス3aをサブ処理装置用のバスシス
テムSl(SINST,SCONT,SData)上に
設けることによって、メインリソ−ス3をアクセスしな
くてもサブリソ−ス3a上のデ−タを用いてサブ処理装
置にて実行する処理が実現できるようにしておくことに
より、メインCPU部1の動作とサブ処理装置の動作と
が完全に並列動作できる時間を大幅に長くすることがで
きる。
【0026】次にサブ処理装置内の並列処理について述
べる。
【0027】前述した様にサブ処理装置は、メインCP
U部1からみるとマクロ命令として定義された1つ以上
の機能を実行するコプロセッサとして観測される。各機
能の実行方法は、サブ処理装置側で自由に決定でき、結
果的にストア命令がメインCPU部1から指令されたと
きに必要な結果デ−タがメインCPU部1側へ受け渡さ
れるという条件さえ満たされれば、メインCPU部1上
で実行される全体のシ−ケンスには一切矛盾を生じな
い。従って、サブ処理装置の構成法及び処理方式につい
ては以下の特徴及び柔軟性がある。
【0028】(1)サブ処理装置の下位レベルにさらな
るサブ処理装置を設けて、前述した様な階層型並列処理
を実現でき、機能性能の向上を図ることができる。
【0029】(2)サブ処理装置内で、上位レベルから
得た命令(例えばマクロ命令、ミクロ命令)をさらに小
さな基本命令に分解し、それら基本命令間で並列処理を
行うことにより、処理性能をさらに向上させることがで
きる。
【0030】本実施例の並列処理型中央演算処理装置の
並列方式の点からみた従来の処理装置に対する絶対的な
メリットを次に示す。
【0031】(1)マクロ命令化により、複数の基本オ
ペレ−ションを1マシン命令語として表現できるため、
従来の中央演算処理装置に比べて非常に少ないビット数
で命令デ−タを構成できる。命令のフェッチ動作はメイ
ンCPU部の扱うデ−タ量の半分以上を扱い、メインC
PU部にとって非常に高負荷である。この事は、メイン
CPU部がフェッチすべき全体のデ−タ量を従来のシス
テムに比べて非常に少なくでき、その分処理速度の向上
を図ることができる。
【0032】(2)サブ処理装置内の性能向上(例えば
サブ処理装置内で並列処理を行う)がメインCPU部の
ア−キテクチャに影響を与えることなく実施でき、将来
の性能改善に有利。
【0033】(3)メインCPU部の処理能力の許容す
る範囲で、サブ処理装置の数を自在に増やすことがで
き、結合機能の向上及びサブ処理装置間並列処理による
処理能力の向上を容易に行うことができる。
【0034】(4)メインCPU部も、命令バスを別に
用意する(図3、図4の実施例)ことにより、プログラ
ムのシ−ケンスに矛盾をきたさず、結果デ−タが正しく
得られる範囲で、メインCPU部からサブ処理装置への
マクロ命令指令操作とメインCPU部におけるメインC
PU部のみで実行可能な命令処理とを並列に処理するこ
とができる。
【0035】図5は、本実施例の階層並列処理型中央演
算処理装置における、並列処理構造をまとめたものであ
る。メインCPU部は、図3、図4に示した様な専用の
インストラクションバスを有するSl3を有し、サブ処
理装置に対して、自身で実行する命令処理(I)と並列
に、マクロ命令(MI)を出力することができる。メイ
ンCPU部は、下位レベルにサブ処理装置Aとサブ処理
装置Bを有し、メインCPU部からのマクロ命令MI
A,MIBにそれぞれ呼応して動作する。サブ処理装置
Aは、さらにその下位レベルにサブ処理装置AAを有
し、サブ処理装置Aからのミクロ命令MIAAに呼応し
て動作する。各サブ処理装置は、上位からのマクロ命令
MIA,MIB又はミクロ命令MIAAを受けると、そ
れらをよりプリミティブな処理単位である基本命令BI
に分解し、実行ユニットにより処理する。すでに説明し
た様に、サブ処理装置Aは、より下位のサブ処理装置A
Aと階層並列処理動作を行う。サブ処理装置Bは自身の
内部に複数の実行ユニットを有し、その間で基本命令B
Iを分担して、並列に処理する機能を有する。上位から
指令されたマクロ命令は、1つの機能としてその処理ア
ルゴリズムが規定されているものであれば、そのマクロ
命令を構成する基本命令またはミクロ命令間の並列性は
予め明白であり、その並列性を最大に引き出せるような
サブ処理装置内の処理構造を設計段階で規定することが
でき、性能を向上させることができる。逆に基本命令の
レベルで並列処理性の高い機能をマクロ命令として規定
すれば、より効果的な並列動作が期待できる。
【0036】
【発明の効果】本発明によれば、第1の処理部は第2の
処理部での処理の終了を待つこと無く次の命令を第2の
処理部に送ることができ、またその他の処理を進めるこ
とができるので、処理部間でのデータの受け渡しを効率
よく行うことができ処理の効率を高めることができる。
【図面の簡単な説明】
【図1】並列処理方式中央演算処理装置のハードウエア
ブロック図
【図2】本発明の動作シーケンスの一例を説明する図
【図3】サブ処理装置への専用インストラクションバス
とコントロールバスを有するメインCPU部を示す図
【図4】サブ処理装置への専用インストラクションバス
とコントローラバス及びデータバスを有するメインCP
U部の例
【図5】本システムの階層並列処理を示す図
【符号の説明】
1…メインCPU部、2…サブ処理装置、3…メインリ
ソース、200…入出力インターフェース、202…レ
ジスタファイル、203…ストア処理回路、204…ス
タックレジスタファイル

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】シーケンシャルに記述された命令列を実行
    する第1の処理部と、この第1の処理部からアクセス可
    能なようにバスで接続されたメモリ手段と、前記第1の
    処理部とバスで接続されて前記第1の処理部からの命令
    を受けて実行する第2の処理部とを備えた処理装置にお
    いて、 前記第1の処理部は、結果データを返すレジスタ手段の
    アドレスを指定して前記第2の処理部に命令を送る手段
    と、前記第2の処理部から結果データを受け取るための
    ストア命令を前記結果データが返送されたレジスタ手段
    のアドレスを指定して前記第2の処理部に送る手段と、
    前記第2の処理部に送ったストア命令の実行を許すレデ
    ィ信号がアクティブになるまで待つための手段とを有
    し、 前記第2の処理部は、命令の実行中に新たに受けた命令
    を保持する手段と、前記第1の処理部からのストア命令
    を受けてこのストア命令に先立って受け付けられた命令
    の中でこのストア命令と共に指定されたレジスタ手段の
    アドレスを結果データの返送先として指定した命令の有
    無を調べる手段と、前記レジスタ手段のアドレスを指定
    した命令が存在しないときはレディ信号をアクティブに
    して前記レジスタ手段のアドレスから結果データをバス
    に出力する手段と、前記レジスタ手段のアドレスを指定
    した命令が存在する場合は前記レディ信号を非アクティ
    ブにする手段とを有することを特徴とする処理装置。
  2. 【請求項2】請求項1に記載の処理装置において、前記
    第1の処理部は1つ又は複数の基本命令で構成されたマ
    クロ命令を生成して前記第2の処理部に送る手段と、前
    記第2の処理部は前記第1の処理部から受け取ったマク
    ロ命令を基本命令に分解して処理する手段とを有するこ
    とを特徴とする処理装置。
  3. 【請求項3】請求項1に記載の処理装置において、前記
    第1の処理部と前記第2の処理部の間に、前記第1の処
    理部から前記第2の処理部に命令を送るバスと、前記第
    1の処理部から前記第2の処理部を制御するバスとを分
    離して設けたことを特徴とする処理装置。
JP3162631A 1991-07-03 1991-07-03 処理装置 Expired - Fee Related JP2884831B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3162631A JP2884831B2 (ja) 1991-07-03 1991-07-03 処理装置
DE69230118T DE69230118T2 (de) 1991-07-03 1992-07-01 Prozessor mit hierarchischer Struktur
EP92111156A EP0521486B1 (en) 1991-07-03 1992-07-01 Hierarchical structure processor
US08/405,925 US5530889A (en) 1991-07-03 1995-03-16 Hierarchical structure processor having at least one sub-sequencer for executing basic instructions of a macro instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3162631A JP2884831B2 (ja) 1991-07-03 1991-07-03 処理装置

Publications (2)

Publication Number Publication Date
JPH06131181A JPH06131181A (ja) 1994-05-13
JP2884831B2 true JP2884831B2 (ja) 1999-04-19

Family

ID=15758283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3162631A Expired - Fee Related JP2884831B2 (ja) 1991-07-03 1991-07-03 処理装置

Country Status (4)

Country Link
US (1) US5530889A (ja)
EP (1) EP0521486B1 (ja)
JP (1) JP2884831B2 (ja)
DE (1) DE69230118T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055629A (ja) * 2009-11-30 2010-03-11 Panasonic Corp 画像音声信号処理装置及びそれを用いた電子機器
US10230991B2 (en) 2003-08-21 2019-03-12 Socionext Inc. Signal-processing apparatus including a second processor that, after receiving an instruction from a first processor, independantly controls a second data processing unit without further instrcuction from the first processor

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2137488C (en) * 1994-02-18 1998-09-29 Richard I. Baum Coexecuting method and means for performing parallel processing in conventional types of data processing systems
US5752071A (en) * 1995-07-17 1998-05-12 Intel Corporation Function coprocessor
US6496926B1 (en) * 1997-05-06 2002-12-17 Microsoft Corporation Computer-implemented paramaterless language with exception handler
US5987602A (en) * 1997-05-06 1999-11-16 Microsoft Corporation Parameterless language in a machine for implementation thereof
US6016539A (en) * 1997-11-03 2000-01-18 Teragen Corporation Datapath control logic for processors having instruction set architectures implemented with hierarchically organized primitive operations
US6216218B1 (en) 1997-11-03 2001-04-10 Donald L. Sollars Processor having a datapath and control logic constituted with basis execution blocks
US6237083B1 (en) 1998-02-13 2001-05-22 Advanced Micro Devices, Inc. Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
US6317820B1 (en) * 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
WO2001077818A2 (en) * 2000-04-05 2001-10-18 Infineon Technologies North America Corp. Method for predicting the instruction execution latency of a de-coupled configurable co-processor
EP2278452A1 (en) * 2009-07-15 2011-01-26 Nxp B.V. Coprocessor programming
DE102018201417A1 (de) 2018-01-30 2019-08-01 Volkswagen Aktiengesellschaft Verfahren zum Bereitstellen verifizierter Informationen über ein Verkehrszeichen, Verkehrszeichenanlage sowie Verfahren für ein Navigationssystem zur Verifikation eines Verkehrszeichens

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914578A (en) * 1983-04-18 1990-04-03 Motorola, Inc. Method and apparatus for interrupting a coprocessor
EP0123337A3 (en) * 1983-04-18 1988-05-18 Motorola, Inc. A method and apparatus for coordinating execution of an instruction by a coprocessor
US4750110A (en) * 1983-04-18 1988-06-07 Motorola, Inc. Method and apparatus for executing an instruction contingent upon a condition present in another data processor
JPS62214464A (ja) * 1986-03-17 1987-09-21 Hitachi Ltd データ処理システム
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
JPH0619760B2 (ja) * 1986-04-23 1994-03-16 日本電気株式会社 情報処理装置
US4926318A (en) * 1986-11-12 1990-05-15 Nec Corporation Micro processor capable of being connected with a coprocessor
US5226170A (en) * 1987-02-24 1993-07-06 Digital Equipment Corporation Interface between processor and special instruction processor in digital data processing system
IN171198B (ja) * 1987-02-24 1992-08-15 Digital Equipment Corp
JPS63226764A (ja) * 1987-03-17 1988-09-21 Fanuc Ltd 高速浮動小数点演算システム
JPH0789320B2 (ja) * 1987-06-19 1995-09-27 株式会社日立製作所 演算処理装置
DE3855524T2 (de) * 1987-06-19 1997-02-06 Hitachi Ltd Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
JP2754825B2 (ja) * 1989-02-03 1998-05-20 日本電気株式会社 マイクロプロセッサ
US5257358A (en) * 1989-04-18 1993-10-26 Nec Electronics, Inc. Method for counting the number of program instruction completed by a microprocessor
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230991B2 (en) 2003-08-21 2019-03-12 Socionext Inc. Signal-processing apparatus including a second processor that, after receiving an instruction from a first processor, independantly controls a second data processing unit without further instrcuction from the first processor
US11563985B2 (en) 2003-08-21 2023-01-24 Socionext Inc. Signal-processing apparatus including a second processor that, after receiving an instruction from a first processor, independantly controls a second data processing unit without further instruction from the first processor
JP2010055629A (ja) * 2009-11-30 2010-03-11 Panasonic Corp 画像音声信号処理装置及びそれを用いた電子機器

Also Published As

Publication number Publication date
DE69230118T2 (de) 2000-02-03
EP0521486B1 (en) 1999-10-13
DE69230118D1 (de) 1999-11-18
US5530889A (en) 1996-06-25
EP0521486A2 (en) 1993-01-07
EP0521486A3 (ja) 1994-03-09
JPH06131181A (ja) 1994-05-13

Similar Documents

Publication Publication Date Title
EP0330836B1 (en) Method for multiprocessor system having self-allocating processors
JP2519226B2 (ja) プロセツサ
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
US20070250682A1 (en) Method and apparatus for operating a computer processor array
JP2884831B2 (ja) 処理装置
JPS58151655A (ja) 情報処理装置
JPH0766329B2 (ja) 情報処理装置
JPH04348451A (ja) 並列計算機
US20030177288A1 (en) Multiprocessor system
EP0295646B1 (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
KR0136111B1 (ko) 데이터요소의 수정장치 및 그 방법
US7818549B2 (en) Event driven digital signal processor with time constraints
JPS6315628B2 (ja)
JPH0789320B2 (ja) 演算処理装置
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法
JPS6153754B2 (ja)
JP2583614B2 (ja) ベクトル演算装置
JP2510173B2 (ja) アレ−・プロセツサ
Hidaka et al. Architecture of parallel management kernel for PIE64
JPH0279122A (ja) 浮動小数点演算機構
JPH0827719B2 (ja) デ−タ処理装置
JPH06162068A (ja) ベクトル処理装置
JPH01213749A (ja) ベクトル処理装置
JPH02217924A (ja) データ処理装置のストア処理方式
JPS5899869A (ja) 並列処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees