JPH04153733A - 並列処理装置における命令供給装置 - Google Patents

並列処理装置における命令供給装置

Info

Publication number
JPH04153733A
JPH04153733A JP2279654A JP27965490A JPH04153733A JP H04153733 A JPH04153733 A JP H04153733A JP 2279654 A JP2279654 A JP 2279654A JP 27965490 A JP27965490 A JP 27965490A JP H04153733 A JPH04153733 A JP H04153733A
Authority
JP
Japan
Prior art keywords
instruction
queue
address
instructions
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2279654A
Other languages
English (en)
Other versions
JP2532300B2 (ja
Inventor
Hideki Ando
秀樹 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2279654A priority Critical patent/JP2532300B2/ja
Priority to DE4134387A priority patent/DE4134387C2/de
Publication of JPH04153733A publication Critical patent/JPH04153733A/ja
Priority to US08/300,235 priority patent/US5619730A/en
Application granted granted Critical
Publication of JP2532300B2 publication Critical patent/JP2532300B2/ja
Priority to US08/800,191 priority patent/US5930520A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野コ この発明は並列処理装置に関し、特に、スーパースカラ
ー型プロセサの命令供給方式の効率化に関する。
[従来の技術] 近年のマイクロプロセサの進歩には目覚ましいものがあ
り、その高性能化とともに動作速度も高速化されてきて
いる。一方、半導体メモリの高速化がこのマイクロプロ
セサの高速化に追随することができず、半導体メモリの
アクセスがプロセサの高速化に対するボトルネックとな
っている。このため、並列処理を行なうことによりマイ
クロプロセサの性能向上を図ることが行なわれている。
このような並列処理を実現する方式の1つに、スーパー
スカラーと呼ばれる処理方式がある。このスーパースカ
ラー型のプロセサ(以下、単にスーパースカラーと称す
)は、第30図に示すように、スーパースカラー内部の
スケジューラ200が、命令ストリーム中の並列性を検
出し、並列処理可能な命令を並列に設けられたパイプラ
インP1、P2およびP3へ供給する方式である。すな
わち、スーパースカラーは以下の特徴をもつ処理装置で
あるといえる。
(1) 命令を複数個同時にフェッチする。
(2) 複数の機能ユニット(パイプライン)を有して
おり、複数の命令を同時に実行することができる。
(3) フェッチされた複数の命令の中から同時に実行
可能な命令を見つけ出し、この同時に実行可能な命令を
関連の機能ユニット(パイプライン)へ同時に投入する
第31図はスーパースカラーの一般的構成を示す図であ
る。第31図において、スーパースカラーは、各々が所
定の機能を実行する複数の機能ユニット4.5.6およ
び7と、命令を格納する命令メモリ1と、命令メモリ1
から複数の命令を同時にフェッチする命令フェッチCI
F)ステージ2と、命令フェッチステージ2によりフェ
ッチされた複数の命令を同時に受け、この中から同時に
実行処理可能な命令を見出して対応の機能ユニットへ投
入する命令デコード(ID)ステージ3と、演算処理結
果等を格納するためのデータメモリ8とを含む。命令メ
モリ1は、キャッシュメモリおよび外部メモリを含み、
キャツシュヒツト(キャッシュメモリ内に要求されたメ
モリが存在する状態)の場合には高速で命令を読出すこ
とができる。
命令フェッチステージ2は、命令メモリ2へ命令ポイン
タIF  PCを与え、この命令ポインタIF  PC
に対応する複数の命令を命令メモリ1からフェッチする
命令デコードステージ3は、命令デコーダおよびパイプ
ラインシーケンサを含む。命令デコーダは命令フェッチ
ステージ2によりフェッチされた複数の命令を受けて解
読する。パイプラインシーケンサ(命令スケジューラ)
はこのデコードされた複数の命令のたとえばマシンタイ
プを識別し、異なるマシンタイプの命令を同時に対応の
機能ユニットへ投入する。ここで、マシンタイプとは、
命令がどの機能ユニットで処理されるべきかを示す情報
である。
機能ユニット4ないし7は、それぞれパイプライン化さ
れており、与えられた命令をクロック信号に応答して実
行する。この第31図においては、4つの機能ユニット
が一例として示されており、最大4つの命令が並列処理
可能である。機能ユニット4および5は整数加算などを
行なうための整数演算ユニットであり、整数演算を行な
う実行ステージ(EX)および書込ステージ(WB)を
含む。書込ステージ(WB)は、処理の実行結果をデー
タレジスタ(図示せず)へ書込む。
機能ユニット6は、データメモリ8へのアクセス(デー
タのロードまたはストア)を実行するユニットであり、
アドレス生成ステージ(ADH)、データメモリ8への
アクセス実行ステージ(MEM)およびデータレジスタ
(図示せず)へのデータの書込ステージ(WB)である
。ここで書込ステージ(WB)においてはデータのロー
ドまたはデータのストアが行なわれる。
機能ユニット7は、浮動小数点加算などを実行するため
のユニットであり、3段の実行ステージ(EXI、EX
2およびEX3)と、実行結果のデータレジスタへの書
込を行なう書込ステージ(WB)とを含む。浮動小数点
数は指数と仮数とを用いて表わされ、その小数点の位置
が一定しない数であり、浮動小数点演算は整数演算など
に比べてその実行により多くのサイクルが必要とされる
この並列処理装置においては、各段はすべてパイプライ
ン化されており、命令フェッチ、命令デコードおよび命
令実行ならびにデータ書込が互いにオーバラップしつつ
実行される。したがって、命令メモリからフェッチされ
た命令が次のサイクルで命令デコードステージでデコー
ドされる。次に動作について簡単に説明する。
命令デコードステージ3は、命令フェッチステージ2へ
命令フェッチ要求を出力する。命令フェッチステージ2
は、この命令フェッチ要求に応答して命令ポインタIF
  E’Cを命令メモリ1へ与え、命令メモリ1からそ
の命令ポインタIF  PCに対応する複数の命令をフ
ェッチする。このフェッチされた複数の命令は命令デコ
ードステージ3へ同時に与えられる。命令デコードステ
ージ3はこの与えられた複数の命令を同時にデコードす
る。この命令デコードステージ3はさらに、デコードさ
れた命令から、計算リソースおよびデータレジスタが競
合しない、並列処理可能な命令を検出し、この並列処理
可能な命令を対応の機能ユニットへ発行(投入)する。
命令を与えられた機能ユニットはこの与えられた命令に
従って処理を並列に実行する。機能ユニット4ないし7
の処理の実行は、パイプライン化されており、この第3
1図に示す各ステージに従って処理が実行される。
また、命令フェッチステージ2および命令デコードステ
ージおよび命令実行ステージ(機能二ニット4ないし7
)の動作はパイプライン化されており、それぞれ互いに
オーバラップしながら所定の動作を実行している。
上述のように各ステージの動作をパイプライン化し、か
つ複数の機能ユニットで処理を並列に実行することによ
り高速で命令を実行することができる。
[発明が解決しようとする課題] 上述のように、スーパースカラーにおいては、複数の命
令がフェッチされ、かつ同時に複数の命令が実行される
ため、通常のコンピュータに比べて処理速度の向上を図
ることができる。たとえば、第31図に示す構成におい
て、同時にフェッチされた4つの命令が4つの機能ユニ
ット4ないし7で並列に実行された場合、4クロツクサ
イクルで4命令を処理することができる(機能ユニット
4.5および6のパイプラインが機能ユニット7の処理
完了まで待ち合わせ状態となる場合)。
命令スケジューラ(または命令デコードステージに含ま
れるパイプラインシーケンサ)は、効率的に並列処理が
実行されるように命令のスケジューリングを実行するが
、同時にフェッチされた命令が常に同時に処理されると
は限らない。たとえば、以下のようなデータ依存関係が
ある命令を考える。
■ add  R1,R2,R3 ;R2+R3=R1 ■ sub  R4,R1,R5 、R1−R5=R4) 命令■はレジスタR2の内容にレジスタR3の内容を加
え、その加算結果をレジスタR1に書込む命令である。
命令■はレジスタR1の内容からレジスタR5の内容を
減算し、この減算結果をレジスタR4に書込む命令であ
る。このような命令■および■の演算はたとえばrx+
y−zJという処理に対応する。
この命令■および■が同時にフェッチされたとき、これ
らはレジスタR1を共通に使用しており、命令■は命令
■の結果を使用することになるため、これらの命令■お
よび■は同時に実行することができない。このような命
令間のデータ依存関係が存在する場合、命令の発行状況
(命令デコードステージから機能ユニットへの命令の発
行態様)は第32図に示すようになる。
第32図においては、同時に処理可能な命令のみが発行
される状況が示されており、また同時に発行される命令
は、アドレスの小さい方(図の左側に位置する)の命令
から順に決定される。
第32図において、サイクル1においては、命令2.3
および4が相互にまたは命令1に対しデータ依存関係を
有するため、これらは発行することができず、命令1の
みが発行される。
サイクル2においては、命令4は命令2および/または
命令3とデータ依存関係があり、命令2および命令3は
互いにデータ依存関係を有しないため、命令2および3
が発行される。
サイクル3においては、残った命令4が発行される。
サイクル4において、新たにフェッチされた4つの命令
5ないし8のデコードが行なわれ、相互にデータ依存関
係のない命令5および6が発行される。
サイクル5において命令7および8が相互にデータ依存
関係を有しないためこれらが発行される。
ここで、第32図においては口印で囲んだ数字は、相互
にデータ依存関係のない発行可能な命令を示している。
この第32図に示すような、同時にフェッチされた複数
の命令がすべて発行されるまで次の命令のフェッチを待
ち合わせる方式の場合、最初にフェッチされた命令工な
いし4と、次にフェッチされた命令5ないし8がすべて
発行されるまでに5サイクルが必要とされる。したがっ
て、このような命令供給および発行方式では、パイプラ
インに空きが生じ、並列処理装置の高速処理性能が損な
われる。
このような場合もし、第32図において命令4と命令5
および6との間にデータ依存関係が存在せず、かつ任意
の数の命令を命令メモリからフェッチすることが可能で
あれば、第33図に示す命令発行方式を実現することが
できる。第33図は改良された命令発行方式における命
令発行状況を示す図である。
第33図を参照して、サイクル1において、同時にフェ
ッチされた4つの命令1ないし4のうち、命令1が発行
される。
サイクル2において、新たに命令5が供給され、命令2
ないし5のデコードが行なわれる。この4つの命令2な
いし5のうち、依存関係のない命令2および3が発行さ
れる。
サイクル3において、新たに命令6および7が供給され
、命令4ないし7がデコードされる。このデコード結果
に従って命令4.5および6が発行される。
サイクル4において、新たに命令8,9および10が供
給され、命令7ないし10のデコードが行なわれ、この
デコード結果に従って命令7および8が発行される。
この第33図に示す命令発行方式においては、命令工な
いし8の8個の命令の発行に4サイクルが必要とされる
だけであり、第32図に示す方式に比べてより高速で命
令の処理実行を行なうことができる。この第33図に示
す命令発行手順を実現する手法の1つとして第34図に
示す方法が考えられる。第34図は第33図に示す命令
発行状況を実現するための命令の供給手順を示す図であ
る。
第34図を参照して、ステップ(1)において、命令レ
ジスタ(命令を保持するレジスタ)に保持された命令2
ないし5のうち命令2および3が発行されると命令レジ
スタに空きが生じる。
ステップ(2)において、この空きの生じたレジスタの
数だけ命令レジスタの内容をシフトさせる。すなわち第
34図のステップ(2)において命令4および5は左へ
2つだけレジスタ位置がシフトされる。
ステップ(3)において、この空きの生じた命令レジス
タ内へ次の命令6および7がフェッチされる。この第3
4図に示すステップ(1)ないし(3)を1サイクルで
実行する必要がある。この第34図に示す命令シフト動
作を実行する構成としては第35図に示すような構成を
考えることができる。
第35図において、命令デコードステージは、命令を格
納する命令レジスタIRI〜IR8と、与えられた命令
をシフトさせるバレルシフタBRと、命令デコーダID
とを含む。命令レジスタIR1〜IR4は命令フェッチ
ステージ2によりフェッチされた命令およびバレルシフ
タからシフトされた命令を格納する。命令レジスタIR
5ないしIR8は、命令デコーダIDへ与えられた命令
がデコードされずに格納される。バレルシフタBRは、
命令レジスタIR5ないしIR8からの命令のうち、命
令デコーダIDからの発行命令数情報に従って命令をシ
フトさせる。
通常、並列演算処理装置は第36図に示すように2相の
互いに重なり合わないクロック信号TおよびLに従って
動作している。次に動作について簡単に説明する。
前のサイクルでフェッチされた命令がクロック信号Tに
応答して命令レジスタIRI〜IR4で保持される。命
令レジスタIRI〜IR4の保持命令は命令デコーダI
Dへ与えられ、デコードされ、該デコード結果に従って
機能ユニットへ発行される。
一方、命令レジスタIR5〜IR8はクロック信号りに
応答してその命令デコードIDへ与えられた命令を保持
しバレルシフタBRへ与える。バレルシフタBRは、命
令デコーダIDからの発行命令数情報に応答して、この
命令レジスタIR5〜IR8から与えられた命令をシフ
トさせる。このバレルシフタBRの内容は、次のクロッ
ク信号Tに応答して命令レジスタIRI〜IR4へ与工
られて保持される。
この場合、バレルシフタはクロック信号りから次のクロ
ック信号Tの間にその命令のシフト動作を完了していな
ければならない。しかしながら、バレルシフタBRにお
いては、命令長が長く(たとえば32ビツト)、高速で
その命令シフト動作を実行することができず、命令シフ
ト動作に長時間を要する。したがって、次のクロック信
号Tに応答して命令レジスタIRI〜IR4へ命令を与
えて保持させることができなくなるため、高速で命令デ
コーダIDへ命令を供給することができなくなり、並列
処理装置の高速動作性が損なわれる。
また、命令メモリは、この命令レジスタIRI〜IR4
においていくら空きレジスタが存在しているかという情
報を知り、この情報に基づいて命令供給数および命令供
給位置を定める必要がある。
この命令レジスタIRI〜IR4においていくつ空きレ
ジスタが存在するかの情報は命令デコーダからの発行命
令数情報で得られるが、この命令発行数情報が発生され
るのは命令デコーダIDにおけるデコード動作後であり
、また、この情報に従って、命令メモリにおいて命令供
給数および命令供給位置を判定するのに長時間を要し、
またその判定動作開始タイミングも遅い。このため、所
望の命令をフェッチするのに長時間を要することになり
、パイプライン構成を乱さずに実行するためには、クロ
ック信号TおよびLの周期が長くなり、並列演算処理装
置の高速動作性が損なわれる。
それゆえ、この発明の目的は並列処理を効率的に行なう
ことのできる並列処理装置を提供することである。
この発明の他の目的は並列処理を効率的に行なうことの
できる命令供給装置を備えた並列処理装置を提供するこ
とである。
[課題を解決するための手段] この発明に係る並列処理装置における命令供給装置は、
命令メモリ装置からの命令の供給の有無を示す信号と、
リセット信号と、分岐が発生したことを示す分岐発生指
示情報とに応答して、命令の有効/無効を示す有効性フ
ラグを形成する手段と、命令メモリから同時にフェッチ
された複数の命令と、この同時にフェッチされた複数の
命令の上記命令メモリにおけるアドレスと有効性フラグ
とを同時に格納する記憶手段を含む。この記憶手段は、
−1エントリが1命令と、対応のアドレスと、対応の有
効性フラグとからなる複数のエントリ格納領域を備える
。またこの記憶手段は、各々に異なる書込エントリ内容
が同時に伝達される複数の入力ポートと、各々に異なる
読出エントリ内容が同時に伝達される複数の出力ポート
と、書込キューアドレスおよび読出キューアドレスに応
答して複数の書込エントリおよび複数の読出エントリを
複数の入力ポートおよび複数の出力ポートへそれぞれ接
続する手段を含む。
この命令供給装置はさらに命令デコーダからの命令発行
数情報と分岐発生指示情報と命令供給有無指示信号とに
応答して、上記書込キューアドレスおよび読出キューア
ドレスをそれぞれ生成する手段を備える。
この記憶手段から同時に読出された複数のエントリの内
容が命令デコード装置へ与えられる。
C作用コ 記憶装置は、互いに独立にアクセス可能な複数の入力ポ
ートおよび複数の出力ポートを含む。この複数の入力ポ
ートへは同時に命令メモリからフェッチされた複数の命
令、アドレスおよび有効性フラグを伴なってそれぞれの
入力ポートを介して異なるエントリ領域へ同時に格納さ
れる。
またこの複数のエントリ格納領域からは読aキ二一アド
レスに応答して同時に複数のエントリ領域が選択されそ
れぞれ異なる出力ポートに接続され、これにより複数の
エントリ内容が同時に読出される。
この入力ポートおよび出力ポートはそれぞれ独立にアク
セス可能であるため、エントリへの書込読出を同時に実
行することができる。また書込キューアドレスおよび読
出キューアドレスは、それぞれ命令の発行状況および命
令メモリからの命令供給状況に応じて選択され、常に同
一数の命令が発行対象命令として命令デコード装置へ与
えられる。有効性フラグは該命令の発行の可否を決定す
る。
これにより、命令デコード装置へは、常に発行された命
令数を補償する命令が同時に与えられ、効率的に命令供
給を実行することができることになり、命令実行を高速
で行なうことが可能となる並列処理装置を実現する。
[発明の実施例コ 第1図はこの発明の一実施例であるスーパースカラーの
要部の構成を示す図である。第1図に示す構成はスーパ
ースカラーの命令デコード−ステージに対応する。この
第1図に示す装置は、2相の互いに重なり合わないクロ
ック信号TおよびL(第36図参照)に応答して動作す
る。
図示しないが命令フェッチ・ステージ(第36図参照)
は、この命令デコード・ステージからの命令フェッチ要
求に従って複数(本実施例では4つ)の命令を命令メモ
リからフェッチする。フェッチした命令ICdataお
よびこのフエ’yチした命令の論理アドレスIF  P
CLは、命令が命令メモリから供給されることを示す信
号ICreadyとともにこのデコード・ステージへ供
給される。フェッチ命令の論理アドレスIFPCLは、
命令フェッチ−ステージに含まれる、命令メモリのアド
レスを作成するポインタから供給される。
命令メモリは、たとえばキャッシュミス等により低速の
主メモリ(または外部メモリ)へアクセスしている状態
または命令メモリがアクセスを受けている状態等におい
ては、命令メモリが命令フェッチ要求を受入れられない
ことを示す信号ICbusyを発生してデコード・ステ
ージへ与える。
第1図を参照して、この発明の一実施例である命令供給
装置は、命令メモリからフェッチされた命令の論理アド
レス(IF  PCL)、フェッチされた命令(ICd
ata)およびこの命令の有効/無効を示す有効性フラ
グ(inst  avail)を1エントリとして格納
するランダム−アクセス・メモリ(RAM)からなるキ
ュー9を含む。このキュー9は、後にその構造を詳細に
説明するが、たとえば12エントリを格納することがで
き、かつ複数の書込ポートおよび複数の読出ポートを有
する。この複数の書込ポートおよび複数の読出ポートに
より、1つの書込ゲートおよび読出ゲートを指定するこ
とにより、連続する複数(本実施例では4つ)のエント
リの内容を同時に書込または読出すことができる。
このキュー9への命令の書込および読出ならびに格納さ
れた命令の有効無効を制御するために、クロック信号T
に応答して、与えられた信号を保持するTラッチ回路1
0,11.12.13および28と、各Tラッチ回路1
0〜13および28に対応して設けられ、対応のTラッ
チ回路の出力データ(保持データ)をクロック信号りに
応答して保持するしラッチ回路17.18,19.20
および29と、各Lラッチ回路17〜20および29の
保持データと命令デコード26からの信号br  ta
ken、1ssued  1nst  count、お
よびbranch  1nst  entryとから、
キュー9の読出アドレス、書込アドレス、動作制御信号
および命令の有効/無効を示す信号を発生する論理回路
30.31,32.33.34.35および36ならび
に50を含む。
Tラッチ回路10(以下、キュートップラッチ10と称
す)は、キュー9に命令メモリからフェッチされた命令
を書込むべき複数のエントリの最初のアドレスを示すア
ドレスqueue  topをクロック信号Tに応答し
て保持する。すなわち、キュー9に4つの命令が格納さ
れる場合、命令、その論理アドレスおよび有効性フラグ
はキュー9のアドレス; queue  top、queue  top+1qu
eue  top+2.queue  top+3 に書込まれる。ここで「+」はキュー9が有する全エン
トリ数(本実施例では12)についてのモジュロ加算で
ある。
Lラッチ回路17(以下、キュートップしラッチ17と
称す)は、キュートップラッチ10の保持データを、ク
ロック信号りに応答して保持する。
Tラッチ回路11(以下、スコープラッチ11と称す)
は、クロック信号Tに応答して、キュー9から同時に読
出されるべき4エントリの最初の1エントリが登録され
ているキュー9のアドレスをクロック信号Tで保持する
。すなわち、キュー9のアドレス: 5cope、5cope+1゜ 5cope+2,5cope+3 のエントリの内容が読出される。ここで、「+」はキュ
ー9の全エントリ数(本実施例では12)についてのモ
ジュロ加算である。
Tラッチ回路(以下、命令フェッチラッチと称す)12
は、命令フェッチを行なうことを示すフラグICfet
chをクロック信号Tに応答して保持する。この命令フ
ェッチ要求フラグICfetchが1″のサイクルにお
いては、命令フェッチ要求が命令フェッチステージへ発
行される。
Lラッチ回路(以下、命令フェッチしラッチと称す)1
9は、クロック信号りに応答して、命令フェッチラッチ
12にラッチされたフラグICfetchを保持する。
Tラッチ回路(以下、命令ミスラッチと称す)13は、
命令メモリからの命令の待機状態であることを示すフラ
グICm1ssをクロック信号Tに応答して保持する。
Lラッチ回路(以下、命令ミストラッチと称す)20は
、この命令ミスラッチ13の保持するフラグICm1s
sをクロック信号りに応答して保持する。
Tラッチ回路(以下、初期状態ラッチと称す)28は、
クロック信号Tに応答してキュー9の初期状態を表わす
フラグqueue  1nit  5tateを保持す
る。
Lラッチ回路(以下、キュー初期状態Lラッチと称す)
29は、キュー初期状態ラッチ28の保持するフラグq
ueue  1nit  5tateをクロック信号り
に応答して保持する。
論理回路30(以下、キュートップロジック30と称す
)は、命令デコーダ26からの分岐発生信号br  t
akenと、キュー初期状態Lラッチ29の保持するキ
ュー初期状態フラグqueue  1nit  5ta
teと、信号ICreadyと、キュートップしラッチ
17からのキュー9の書込先頭アドレスqueue  
topと、命令フェッチしラッチ19からのフラグIC
fetchと、論理回路31からの次のサイクルにおけ
るキュー9の読出先頭アドレス5cope  next
と、キュー9が利用可能(書込可能)であるか否かを示
す論理回路34からのフラグqueue  avail
および命令デコーダ26から発生される、分岐命令が登
録されたエントリのアドレスbranch  1nst
  entr7とに応答して、次のサイクルにおけるキ
ュー9の書込先頭アドレスqueue  top  i
nを形成し、キュートップラッチlO1論理回路34お
よび50へ与える。
論理回路31(以下、スコープネクストロジック31と
称す)は信号br  takenと、スコープラッチ1
8からの読出先頭アドレス5COpe  Lと、命令デ
コーダ26からの発行命令数データ1ssued  1
nst  countおよびアドレスbranch  
1nst  entryとに応答して、次のサイクルに
おけるキュー9の書込先頭アドレス5cope  ne
xtを発生するとともに、このアドレス5cope  
nextが11より大きいことを示すフラグ5cope
>11を発生する。次のサイクルにおけるアドレス5c
opeを示す信号5cope  nextはスコープラ
ッチ11および論理回路50へ与えられるとともに論理
回路34へも与えられる。フラグ5cope>11は論
理回路50へ与えられる。
論理回路33(以下、命令ミスロジック33と称す)は
、命令フェッチしラッチ19からのフラグICfetc
h  Lと、命令ミスしラッチ20からのフラグICm
1ss  Lと、フラグbr  takenと、信号I
Creadyとに応答して1、命令待ち状態であるか否
かを示す信号ICm1ssを作成して命令ミスラッチ1
3へ与える。
論理回路36(以下、キュー初期状態ロジック36と称
す)は、キュー初期状態Lラッチ29からの信号que
ue  1nit  5tateLと、信号br  t
akenと、命令ミスしラッチ20からの信号ICm1
ss  Lと、命令フェッチLラッチ19からの信号I
Cfetch−りと、信号ICreadyとに応答して
キュー9が初期状態であるかを示す信号queuein
it  5tateを作成してキュー初期状態ラッチ2
8へ与える。
論理回路34(以下、キューアベールロジック34と称
す)は、キュートップしラッチ17からのアドレスqu
eue  top  Lと、スコープネクストロジック
31からのアドレス5copenextと、信号br 
 takenと、キュートップロジック30からのアド
レスqueue−top  in、論理回路50からの
キュー9の状態(第1、第2および第3の状態:これは
後に説明する)を示す信号queue  5tateと
に応答して、キュー9が利用可能であるか否かを示す信
号queue  availを発生し、キュートップロ
ジック30へ与える。
論理回路32(以下、命令フェッチロジック32と称す
)は、命令メモリまたは命令フェッチステージから与え
られる、命令メモリが命令フェッチ要求を受入れられな
い状態を示す信号ICbusyに応答して、命令メモリ
へフェッチ要求を出すか否かを示す信号ICfetch
を発生し、命令フェッチラッチ12へ与える。
論理回路35(以下、命令アベールロジック35と称す
)は、信号ICreadyと、信号ICfetch  
Lと、信号br  takenと、信号ICm1ss 
 Lとに応答して、キュー9に含まれる命令が有効であ
るか否かを示すフラグ1nst  avail  in
を発生し、キュー9のエントリ内の有効性フラグ1ns
t  availの値を決定する。
論理回路50(以下、キューステートロジック50と称
す)は、命令デコーダ26からのアドレスbranch
  1nst  entryと1キユートツプロジツク
30からのフラグqueuetop〉11と、スコープ
ネクストロジック31からのフラグ5cope>11と
アドレスsc。
pe  nextとに応答して、キュー9が、第1の状
態、第2の状態および第3の状態のいずれにあるか示す
信号queue  5tateを発生し、キューアベー
ルロジック34へ与える。ここで第1の状態はキュー9
が初期状態にあり、その書込先頭アドレスqueue 
 topおよび読出先頭アドレス5copeがともに0
または同一であり、またアドレスqueue  top
からの4エントリの有効性フラグ1nst  avai
lがすべてオフ(0)の状態を示す。この状態はリセッ
ト状態、分岐発生状態および命令到着待ち状態のいずれ
かの状態である。第2の状態は、読出先頭アドレス5c
opeが書込先頭アドレスqueuetop以下の状態
、すなわち、 5cope≦queue  top の状態でありノーマル(NORMAL)状態である。
第3の状態は書込先頭アドレスqueue  topが
読出先頭アドレスs cope以下の場合であり、すな
わち、 queue  top≦5cope の状態を示す。この第3の状態はリバース(REVER
8E)状態と呼ばれる。この第2の状態および第3の状
態を区別することにより、アドレス5cope  ne
xtとアドレスqueue  top  inが等しく
なった状態において、キュー9が空の状態であるのか満
杯(フル)状態であるのかを区別することができる。す
なわち、第2の状態から5cope  next=qu
eue  top  inとなった場合、このときはキ
ュー9は空の状態を示している。また、第3の状態から
5cope  next=queue  top  i
nとなった場合、このときはキュー9はフル状態となる
。この第2および第3の状態については後に詳細に説明
する。
キュー9と命令デコーダ26との間には、キュー9から
読出された複数のエントリの内容をクロック信号りに応
答して保持するしラッチ回路14.15および16が設
けられる。Lラッチ回路14(以下、IRLラッチ14
と称す)は、キュー9から同時に読出された複数の命令
ins tを保持する。
Lラッチ回路15(以下、PCLラッチ15と称す)は
、キュー9から同時に入力された命令に対応するアドレ
スPCを保持する。
Lラッチ回路16(以下、命令アベールしラッチ16と
称す)は、キュー9から読出された命令に付随する有効
性フラグ1nst  availを保持する。
命令デコーダ26は、このIRLラッチ14、PCLラ
ッチ15および命令アベールLラッチ16からのアドレ
ス、命令および有効性フラグに応答して、与えられた複
数の命令をデコードし、並列実行可能な命令を検出し、
その命令を機能ユニットへ発行する。この同時に機能ユ
ニットへ発行される命令は、PCLラッチ15からのア
ドレスの小さい順に決定され、複数の命令が依存関係を
有する場合には、アドレスの小さい方の命令が先に発行
される。
次に、この発明による命令フェッチ方式の基本的な動き
について説明する。
第2図は、キュー9の概念的構成を示す図である。第2
図において、キュー9は、アドレス0ないし11の付さ
れた記憶領域を有し、各アドレスに対応して1個のエン
トリEが格納される。各エントリEは、命令メモリから
フェッチされた命令のアドレス(論理アドレス)を格納
する領域工と、命令メモリからフェッチされた命令IC
dataを格納する領域■と、この対応の命令が有効で
あるか否かを示すフラグ1nst  availを格納
する領域■とを含む。このアドレスIF  PCL、命
令ICdataおよびフラグ1nst  avail 
 inはそれぞれ4つの命令が並列にこのキュー9に伝
達され、4つの異なるアドレス領域に同時に格納される
。このキュー9のエントリの登録領域はアドレスque
ue  topにより指定され、アドレスqueue 
 top〜queue  top+3の領域に格納され
る。
このキュー9からの命令の読出は、4つの命令が並列に
読出されることにより行なわれる。この読出のアドレス
の指定は、アドレス5copeにより行なわれ、アドレ
ス5cope〜scope+3のアドレスに登録された
エントリが並列に同時に読出される。次に、第3図を参
照してこの発明による命令フェッチ方式の基本的な動作
について説明する。
まず状態(1)はリセット直後または初期化直後の初期
状態(第1の状態)である。この初期状態においては、
アドレスqueue  topおよび5copeはとも
にキュー9の初期アドレス0を示している。このとき、
キュー9においてはqueue  topすなわちアド
レス0から始まる有効性フラグはオフ(0)とされる。
この状態においては、有効性フラグがオフ(0)を示し
ているためそのキュー9のアドレスO〜3の4エントリ
は無効であり、発行または実行が禁止されていることを
示している。
状態(2)において、アドレスqueue  topが
示すアドレス0から始まる4つのアドレスに対して命令
が書込まれる。この書込まれた命令は有効な命令である
ため、これに対応する有効性フラグがオン(1)とされ
、この書込まれた命令が有効であることが示され、この
4つのエントリの命令の読出、発行/実行可能なことが
示される。
この状態(2)においては、まだqueue  top
の変更は行なわれていない。この状態(2)においては
、アドレス5copeが示すアドレス0から始まる4つ
のエントリが読出され、命令デコーダへ与えられ、解読
される。
状態(2)において、命令デコーダから2つの命令が同
時処理可能であるとして機能ユニットへ発行され、読出
先頭アドレス5copeがアドレス2へ変更される。
状態(3)のサイクルにおいては、書込先頭アドレスq
ueue  topがアドレス4に変更されており、こ
のアドレス4から始まる4つのアドレス領域に次の4つ
の命令4ないし7がそれぞれ格納される。この新たに書
込まれた命令4ないし7に対応する有効性フラグも同時
にオンとされる。
状態(4)は、1つの命令が発行された後の状態を示し
ている。1命令が発行されたため、読出先頭アドレス5
copeは1つ移動し、アドレス3を示す。またこの状
態(4)においては、新たに4つの命令8ないし11が
書込先頭アドレスqueue  topが示すアドレス
8から連続する4つのアドレス領域にそれぞれ書込まれ
ており、対応の有効性フラグもオン(1)とされる。こ
の状態(4)のサイクルにおいては、アドレス5Cop
eが示すアドレス3から始まる4つのアドレスの命令が
キュー9から読出され命令デコーダへ与えられて解読さ
れる。
状態(5)は、前のサイクルにおいて命令デコーダから
は1つも命令が発行されなかった場合の状態で示してい
る。この場合、発行された命令数は0であるため、書込
先頭アドレスs copeは移動せず、アドレス3を示
す。この状態(5)のサイクルにおいては、アドレス5
copeが示すアドレス3から始まる4つのアドレスの
命令が再びキュー9から読出されて命令デコーダにより
解読される。この状態(5)においては、先のサイクル
においてqueue  top+4 (12のモジュロ
加算)が行なわれ、書込先頭アドレスqueue  t
opは0 (8+4=0)となり、アドレス0を示して
いる。この場合、queue  tOpから始まる4つ
のアドレス領域は、まだ発行されていない命令(アドレ
ス3の命令)を含んでいるため、キュー9への命令の取
込は行なわれない。
状態(6)は、前のサイクルで命令デコーダから3つの
命令が発行された場合の状態を示している。3命令が発
行されたため、読出先頭アドレスs copeは3シフ
トされ、アドレス6を示している。書込先頭アドレスq
ueus  topが示すアドレス0から始まる4つの
アドレス領域に命令12.13.14および15が格納
される。この命令12ないし15は有効であるため、そ
れに対応する有効性フラグがオン状態とされる。このキ
ュー9において空き領域があるか否かの判定は、キュー
アベールロジック34から出力される信号queue 
 availにより行なわれる。
次に、分岐命令による分岐が生じた場合の基本的動作に
ついてそのフローを示す第4図を参照して説明する。い
まキュー9が状態(11)にあった場合を想定する。こ
の状態(11)においては、アドレスqueue  t
opはアドレス10を示しており、アドレス5cope
はアドレス2を示している。この状態(11)において
は、アドレス10. 11. 0. 1に命令8. 9
. 10および11が書込まれる。キュー9のアドレス
2.3゜4および5に格納されている命令2. 3. 
4. 5が読出されて命令デコーダへ与えられる。この
状態(11)のサイクルにおいて、アドレス4の命令2
が分岐命令であり、この分岐命令2に従って分岐が生じ
たとする。次の状態(12)においては以下のことが行
なわれる。
キュー9のアドレス4以降の内容は、命令2において分
岐が生じたためもはや不要である。
アドレスqueue  topに続くアドレスすなわち
アドレス4ないし7に格納された4エントリの有効性フ
ラグをオフ(0)に設定する。
アドレスqueue  topおよび5copeをキュ
ー9のアドレス4に設定する。
また、分岐先命令のアドレスは、このサイクルで命令メ
モリへ送られ、分岐先命令はその次のサイクルで命令メ
モリから供給される。すなわち、分岐先命令はこのサイ
クルではキュー9には書込まれない。
アドレス5copeより始まる4エントリの命令は発行
対象として解読することができる。しかしながら、これ
らの内容は機能ユニットへ発行してはならないものであ
るため、このサイクルにおいては1アドレスqueue
  topより始まる4エントリの有効性フラグがオフ
(0)に設定される。
状態(13)においては、アドレスqueuetopか
ら始まるアドレス4ないし7の領域に分岐先命令20〜
23が命令メモリから供給されて書込まれる。またこの
命令20ないし23は分岐先命令であり、解読・発行さ
れるべきものであるため、その有効性フラグもオン(1
)に設定される。
このサイクルにおいては、またアドレス5COpe(キ
ューアドレス4)から始まる4エントリの命令20ない
し23が命令デコーダへ与えられ、解読される。
次に、プロセサからの命令フェッチ要求に対して、命令
メモリから命令を供給することができない場合の基本的
な動きについてそのフローを示す第5図を参照して説明
する。
いま、キュー9が第5図に示す状態(21)にあった場
合を想定する。この状態(21)においては、キュー9
のアドレス0ないし3へ命令8ないし11が書込まれ、
一方、キュー9のアドレス6.7.8および9に格納さ
れている命令2,3゜4および5が命令デコーダへ与え
られ、発行対象として解読される。
このサイクルにおいて命令2.3および4が機能ユニッ
トへ発行されたとする。
このサイクルにおいて、命令メモリに対して行なった命
令フェッチ要求に対して、命令メモリは何らかの原因(
たとえば命令メモリがキャッシュで構成される場合、キ
ャッシュミス)によりこのサイクル内で命令を供給でき
なかったとする。
状態(22)においては、前のサイクルで命令2.3お
よび4が発行されているため、アドレス5copeが3
つシフトしてアドレス9を示している。
また1アドレスqueue  topはアドレス4を示
している。命令メモリから命令が供給されていないため
、このキュー9のアドレス4,5゜6および7に格納さ
れている命令はフェッチ要求が出された命令と異なるた
め、解読してはならない。そこで、命令が命令メモリか
ら供給されない場合)このアドレスqueue  to
pに続くアドレスに格納された4エントリの有効性フラ
グがオフ(0)に設定される。
状態(23)においてもまだ命令メモリから命令が供給
されず、プロセサは命令到着待機状態にある。このため
キュー9への命令書込は停止する。
一方、命令フェッチが行なわれなくても、キュー9に未
発行の命令が存在すれば命令デコーダを介して機能ユニ
ットへの命令発行が続行される。この第5図に示す例に
おいては、前のサイクル(状態(22))において2命
令が発行されており、このアドレス5copeは11を
示している。
状態(24)において、命令が命令メモリから到着した
ため、アドレスqueue  top (アドレス4)
から始まるキュー9の4エントリに命令が書込まれる。
すなわち、命令12〜15がアドレス4〜7にそれぞれ
書込まれる。
また前のサイクルにおいて2つの命令(命令7および8
)が発行されており、アドレス5copeはアドレス1
を示す。
次に、第3図ないし第5図に示す動作を実現するための
ロジック30ないし36の論理について説明する。まず
、キュートップロジック30が実現するロジックについ
て説明する。
(1) 初期状態:この状態は次の2つの状態を含む。
(a)  リセット状態:信号reset=1このとき
、queue  top=0となる。
(b)  初期化状態二信号queue  1nit 
  5tate   L=1 この状態は、キュー9の書込先頭アドレスはキュートッ
プしラッチ17の保持するアドレスに設定される。した
がって、 queue  top  xn=queue  t。
−L となる。
次に非初期状態、すなわちreset’queue  
1nit  5tate  L=Oの場合について説明
する。ここで「・」は論理積演算を示す。
(2) 分岐発生状態:信号br  taken=1= この状態においては、アドレスqueue  topは
、キュー9において分岐命令が格納されたアドレスに設
定される。したがって、このときは、queue  t
op  1n=branch  1nst  entr
y となる。
(3) 命令フェッチ要求が出されても命令供給が行な
われない場合:ICfetch  L=1かつIc  
ready=0 このとき1アドレスqueue  topは前のサイク
ルと同じ値を維持するので、 queue  top  1n=queue  t。
L となる。
(4) 発行された命令フェッチ要求に対し命令供給が
行なわれ、かつキュー9に空きが存在する場合 :ICfetch  L=1かつIcready=1、
かつqueuc  avail=1このとき、アドレス
queue  topは次のサイクルにおいて4シフト
されるため、queue  top  1n=queu
e+4となる。ここで、「+」はモジュロ12の加算で
ある。したがって、 if (queue  top>11)(queue 
 top  1n=queue  topin−12) となる。
(5) 命令フェッチ要求が出され、命令供給が行なわ
れても、キューに空き領域(4工ントリ分)が存在しな
い場合 :ICfetch  L=1かつIc  ready=
1かつqueue  avail=0この状態はキュー
9に4工ントリ分の命令を書込む領域が存在しないため
、命令の書込が行なわれない状態を示しており、アドレ
スqueuetopは前のサイクルと同じ状態を維持す
る。したがって、 queue  top  1n=queue  t。
L となる。
(6) 命令到着待ち状態の場合 :この状態は2つある。
(a)  命令フェッチ要求が出されても何らかの原因
(キャッシュミス等)により命令供給が行なわれない場
合 :ICfetch  L=1かつlc  ready=
0 この状態では前のサイクルのqueue  t。
pが保持される。したがって、 C1ueue  top  1n=Queue  t。
L となる。
(b)  たとえば命令メモリがアクセスを受入れられ
ない状態にあるとき この状態はICm1ss  L=1かツICready
=0 この状態では、命令が供給されていないため、アドレス
queue  topは前の値を保持する。
したがって、 queue  top  tn=que  top−と
なる。
(7) たとえばキャッシュミス等による命令到着待ち
状態において命令が与えられ、かつキュー9に空き領域
が存在する場合: ICm1ss  L=1か−))(ready=1かつ
queue  avail=1この状態では、与えられ
た命令をキュー9にすべて書込むことができる。このと
きには、このサイクルでは、queue  top  
1n=queue  top  L+4 となる。ただし「+」はモジュル12のモジュロ加算で
ある。
(8) 命令到着待機状態において命令が供給されても
キュー9に空き領域が存在しない場合:ICm1ss 
 L=1、かっICreaciy=−t、かつqueu
e  avail=0このとき、キュー9には命令を書
込むことができないので、アドレスqueue  to
pは前のサイクルの値を保持する。したがって、que
ue  top  1n=queue  t。
L となる。
(8) 命令フェッチ要求を出しておらず、また命令到
着待ち合わせ状態でもない場合:ICfetch  L
=0かっICm1ss  L=0 この状態はたとえば割込み処理などにより、命令メモリ
の命令の実行が中断される状態である。
この状態ではアドレスqueue  topは前のサイ
クルの値を維持する。したがって、queue  to
p  1n=queue  t。
pt。
となる。この上述の論理を第6図に一覧にして示す。
このキュートップロジック30が実行する論理は上述の
説明から明らかであろう。このキュートップロジック3
0の具体的構成は、第6図に示す論理表を満足する構成
であればどのようなものであってもよい。たとえば単純
には、この第6図に示す表の各列(横方向)が示すロジ
ックをたとえばANDゲートにより形成し、この各列の
ロジックの論理和をとる回路構成を用いて実現できる。
次にスコープネクストロジック31の実行する論理動作
について説明する。
(1) リセット状態:信号reset=1この状態で
はアドレス5copeは0に設定される。すなわち、 5cope  next=0である。
(2) 分岐命令の発行 :br  taken=1 この場合、第4図に示すように、アドレス5copeは
分岐命令を格納するキュー9のアドレスに設定される。
したがって、5cope  neXt=branch 
 1nst  entryとなる。
(3) この上述の状態以外の場合:rese1=0か
っbr  taken=0 この状態においては、アドレス5copeは発行命令数
に従うてシフトする。すなわち、5cope   ne
Xt=scOpe   L+1ssued  tnst
  Count となる。ここで、「+」はモジュール12のモジュロ加
算である。したがって、 5cope>11==1のとき、 5cope  next=scope  nextとな
る。
このスコープネクストロジック31の実現する論理は第
7図に一覧にして示される。
ここでフラグ5cope>11.queuetop>l
lはアドレス5copeおよびqueue  topが
キュー9を−巡りしたことを示す。
次に第8図を参照して命令フェッチロジック32の実現
する論理について説明する。
(1) 命令フェッチ要求は、リセット状態のときまた
は命令メモリが、命令フェッチ要求を受入れられる状態
のとき発生される。すなわち、resetl=1かつl
c  busy!=1のときに ICfetch=1 となる。ここで[!ヨは否定を示す符号である。
(2) 命令フェッチ要求が出されないのは上述のごと
(リセット状態または命令メモリが命令フェッチ要求を
受入れない状態のときである。したがって上の状態(1
)以外すべて ICfetch=0 となる。次に命令ミスロジック33が実現する論理につ
いて第9図を参照して説明する。
信号ICm1ssは、命令メモリからの命令到着待ち状
態であることを示すフラグである。この命令ミスロジッ
ク33は次のサイクルのフラグICm1ssの状態を決
定する。
(1)  リセット状態:reset=1この状態にお
いては、まだ何ら命令は発生されておらず命令を待つ必
要もなく、フラグICm1ssは0である。
(2) 動作時において、分岐命令が発生した場合 :br  taken=1 この状態においては、次のサイクルで分岐先命令のフェ
ッチが行なわれるため、命令待ち合わせ状態となること
はなく、フラグICm1ssは0となる。
(3)命令フェッチ要求が出されても命令メモリから命
令が供給されない場合 :ICfetch  L=1かつlc  teady=
0 この状態では、次のサイクルは命令供給待機状態であり
、次のサイクルで命令が与えられればその命令を書込む
必要がある。フラグICm1sSは1となる。
(4) 命令メモリから命令供給がされた場合:ICr
eady−1 この状態は命令メモリから命令が供給されたことを示し
ており、次のサイクルにおいて命令待ち合わせ状態とな
る必要はなく、フラグICm1ssはOとなる。   
 − (5) 動作状態において、分岐命令が発生せず、命令
フェッチ要求も発生されず、また命令メモリからの命令
供給指示も与えられない状態:br  taken=0
、かつICfetch  L=O1かつlc  rea
dy=0この状態は、たとえば割込み処理などによる実
行の中断状態などが生じており、フラグICm1ssは
前のサイクルの値を保持する必要があるため、 ICm1ss=Ic  m1ss   L。
となる。
次に第10A図および第10B図を参照してキューアベ
ールロジック34が実現する論理動作について説明する
(1)  リセット状態:reset=1この状態にお
いては、キュー9においては命令は何ら格納されていな
いため、キュー9には、アドレスqueue  top
からの連続する4つのアドレス領域に4つの命令を書込
むことができる。
したがってこの場合、 queue  avail=1 となる。
(2) 分岐命令が発生した場合:br  taken
=1 この状態においては、第4図に示すように、queue
  topから始まるアドレスに分岐先命令を書込む必
要があるため、空き領域が等測的に存在することになる
。したがって、 queue  avail=1 となる。
分岐が発生していない状態において、キューフルロシッ
ク(これは以下に説明する)がキュー9に空き領域(4
工ントリ分)が存在していることを示している場合には
、 queue  avail=1となり、またこのキュー
フルロシックがキュー9が空き状態(4命令を書込むエ
ントリ分の領域)にないことを示している場合に queue  avail=Qとなる。すなわち、この
状態においてはqueue  avail=!queu
e  fullとなる。
次に、キューフルロシックについて説明する。
このキューフルロシックは第1図におけるキューアベー
ルロジック34に含まれている。このキューフルロシッ
クが実行する論理を第10B図を参照して説明する。
(1) このキューフルロシックはスコープネクストロ
ジック31からのアドレス5copeとキュートップロ
ジック30からのアドレスqueue  top  i
nに従ってキュー9が空き領域を有しているか否かを判
定する。ここで、スコープネクストロジック31から出
力されるアドレス5copeは次のサイクルにおける読
出先頭アドレスを示しているため5cope  nex
tとして説明する。
(1) 次のサイクルにおける読出先頭アドレス5co
pe  nextが次のサイクルにおける書込先頭アド
レスqueue  top  inよりも小さい場合 この場合、第10C図に示すように、命令がqueue
  top  inから書込まれるため、アドレス5c
ope  nextとキュー9の全エントリ数との和か
らアドレスqueue  top−inとの差が4以上
あれば次のサイクルで命令を書込むことができる。した
がって、 5cope  next+12−queue  top
  in≧4 の場合にはqueue  full=FALsE(0;
空き領域有) となる。そうでない場合には、 queue  full=TRUE(1;空き領域無し
) となる。
(2)   5cope  next>queueto
p  in+ この状態は第10D図に示す状態である。この状態では
、5cope  nextとqueuetop  in
との差Cが4以上であればキュー9に命令を書込むこと
ができる。したがって、5cope  next=qu
eue  top−in≧4ならば、 queue  full=FALsE となる。
また、5cope  next−queue  top
  in<4ならば、 queue  full=TRUE となる。
(3)   5cope  next=queueto
p  iH この状態は次のサイクルにおける読出先頭アドレスと書
込先頭アドレスとが等しい状態である。
このとき、後述のキューステイト(queues t 
a t e)に従って、キュー9の空き領域があるか否
かの判別が行なわれる。すなわち、queue  st
ate=NORMALならば、queue  full
=FALsE となる。また、queue  5tate!=NORM
ALならば、 queue  full=TRUE となる。
次にキュー9の空き領域の有無を判定するための信号q
ueue  5tateについて説明する。
ここで、空き領域とは一度に命令メモリからフェッチさ
れた複数の命令をすべて書込むことのできる領域であり
、本実施例では最小4エントリの領域を示す。キュー9
の状態は第1の状態の他に、第2の状態および第3の状
態がある。まず、第11A図および第11B図を参照し
て第2の状態(NORMAL状態)について説明する。
第11A図および第11B図は、キュー9の第2の状態
(NORMAL状態)のキュー9のアドレスqueue
  topおよび5copeの位置関係を示す図である
。第11A図において、アドレスqueue  top
は、キュー9のアドレス6を示し、アドレス5cope
はキュー9のアドレス2を示す。この状態は、 5cope<queue  top と表わせる。
第11B図において、命令が供給されず、命令の発行の
みが行なわれた状態を示す。この場合、次のサイクルに
おけるアドレス5cope  nextおよびqueu
e  top  inは互いに等しくなる。この状態は
、第2の状態(NOHMAL状態)において生じたもの
であり、この状態も第2の状態と称される。この状態は
、 5cope  next=queue  topn と表わせられる。
したがって、キュー9の第2の状態(NORMAL状態
)にある条件は、 5cope≦queue  top と表わせる。次に、第12A図および第12B図を参照
して、キュー9の第3の状態(REVER3E状態)に
ついて説明する。
第12A図および第12B図はキュー9の第3の状態(
REVER8E状態)におけるアドレス5copeおよ
びqueue  topの位置関係を示す図である。第
12A図において、アドレス5copeはキュー9のア
ドレス6を示し、アドレスqueue  topは、キ
ュー9のアドレス2を示す。この状態は、 5cope>queue  top と表わせる。
この状態において、命令発行が行なわれず、命令供給が
行なわれた状態を考える。すなわち、第12A図におい
てキュー9のアドレス2から命令が供給された場合を考
える。この場合、第12B図に示すように、次のサイク
ルにおけるアドレスは、 5cope   next=queue   top−
n となる。この状態では、未発行の命令のみでキュー9が
満たされている。この状態では、次のサイクルにおける
命令書込を禁止する必要がある。この状態をも合わせて
第3の状態(REVER8E状態)とよぶ。したがって
、第3の状態(REVER8E状態)の条件は、 5cope≧queue  top と表わせる。このキュー9の状態を信号queue  
5tateによりモニタすることにより、前述のロジッ
クqueue  fullの論理動作を通して、キュー
9に空き領域があるか否かの判別を行なうことができる
このキューステイトロジック50が実現する論理動作を
jl113図に一覧にして示す。以下、キューステイト
ロジック50の動作について説明する。
(1) リセット時の初期状態においては、アドレスq
ueue  topおよび5copeはキュー9のアド
レス0に設定される。この状態は、キュー9の第1の状
態であるが、キュー9へ命令を書込むことができるため
、信号queue  5tateは第2の状態に設定さ
れる。すなわち、reset=1ならば、 queue  state=NORMALとなる。
(2) アドレスqueue  topが、キュー9の
アドレス領域を一巡し、かつアドレス5Copeがまだ
キュー9のアドレス領域を一巡しない場合: このとき、第13図の(2)に示すように、キュー9は
第3の状態(REVER3E状態)となる。したがって
、 queue  top>11==1、かつ5cope>
11==0のとき、 queue  5tate=REVER8Eとなる。
(3) アドレス5copeがキュー9のアドレス領域
を一巡した場合 この状態では、アドレス5cope  nextがアド
レスqueue  top  inを超えることはない
ので、キュー9は第2の状態(NORMAL状態)とな
る。したがって、 5cope>1l−=1ならば、 queue  state=NORMALとなる。
(4) 分岐が発生した場合: この状態においては、分岐命令から始まるキュー9のア
ドレス領域に次の分岐先命令を格納する必要がある。し
たがってこの状態ではアドレス5Cope  next
およびqueue  topinは等しくされるが、命
令の書込を可能とするために、キュー9の状態は第2の
状態(NORMAL状態)となる。したがって、 br  taken=1ならば、 queue  state=NORMALとなる。次に
、キュー9の「有効性フラグ」部分に書込まれるフラグ
を決定する命令アベールロジック35が実現する論理に
ついて第14図を参照して説明する。
第14図は命令アベールロジック35が実現する論理を
一覧にして示す図である。
(1) 初期状態:reset−=1 この状態では、まだキュー9に有効な命令は何ら格納さ
れていないため、有効性フラグはオフ(0)にされる。
したがって、 reset=1ならば、 fnst  avail  1n=0 となる。
(2) 分岐が発生した場合、 この状態では、分岐命令が格納されたアドレスから続(
4エントリの命令の発行を禁止する必要がある。したが
ってこの場合には有効性フラグはオフ(0)とする。し
たがって、 br  taken=1、ならば、 1nst  avail  1n=0 となる。
(3) 命令フェッチ要求が出された場合:この状態で
は、アドレスqueue  topから始まる命令の有
効/無効は命令メモリからの命令の供給の有無に対応す
る。したがって、ICfetch  L=1、ならば、 1nst  avail  1n=Ic  readと
なる。
(4) 命令到着待ち状態の場合: この状態は、そのサイクルでの命令フェッチ要求の有無
にかかわらず生じる。このときも、アドレスqueue
  topから始まる命令の有効/無効は命令メモリか
らの命令供給の有無に対応する。したがって、 ICm1ss  L=1、ならば、 1nst  avail   1n=Ic  read
となる。
(5) 上述の4状態のいずれの状態でもない場合: この状態においては、アドレスqueue  topか
ら始まる4エントリに書込まれる命令は要求する命令で
はないため、有効性フラグはオフとされる。したがって
、 else、fnst  avail  1n=0となる
第15図はキュー初期化ロジック36の実現する論理を
一覧にして示す図である。以下、第15図を参照してキ
ュー初期化ロジック36の論理動作について説明する。
ここで、キューの初期状態(第1の状態)とは、キュー
のリセット状態、分岐命令が発生した状態、および命令
待ち状態のいずれかの状態を示す。すなわち、キュー9
に必要とされる命令が書込まれていない状態を表わして
いる。
(1)  リセット状態: この状態においては、まだキュー9には何ら命令は書込
まれていないため。キュー9は初期状態にある。したが
って、 reset=1、ならば queue  1nit  5tate=1となる。
(2) 分岐が発生した場合: この状態においては、キュー9は分岐先命令を格納する
必要があるが、この命令は、まだキュー9に書込まれて
いないため、キュー9は初期状態にある。したがって、 br  taken=1、ならば、 queue  1nit  5tate=1、となる。
(3) 命令フェッチ要求が出されても命令メモリから
命令が供給されない場合: この状態においてはキュー9は命令待ち状態となるため
、キュー9は初期状態となる。したがって、 ICfetch  L=1、かつ ICready=0、ならば、 queue  1nit  5tate=1、となる。
(4) 命令フェッチ要求が出されかつ命令メモリから
命令が供給された場合: この状態においてはキュー9には所望の必要とされる命
令が書込まれたことにより、キュー9は初期状態ではな
い。したがって、 ICfetch  L=1、かつ ICready=1、ならば、 queue  1nit  5tate=0、となる。
(5) キュー9が命令待ち状態にあり、かつ命令メモ
リから命令が供給されない場合:この状態では、キュー
9はフェッチ要求した命令の到着を待っている。したが
って、キュー9は初期状態にある。したがって、 ICm1ss  L=1、かつ ICready=0、ならば queue  1nit  5tate=1となる。
(6) キュー9が命令待ち状態にありかつ命令メモリ
が命令を供給した場合: この状態では、キュー9にはフェッチ要求した命令が書
込まれたため、キュー9は初期状態ではなくなる。した
がって、 ICm1ss  L=1、かつ ICready=1ならば、 queue   1nit   5tate=0となる
(7) リセット状態になく、分岐発生状態でもなく、
命令フェッチ要求を行なっておらず、また命令待ち合わ
せ状態でもない場合: この状態においては、キュー9は命令メモリからの命令
の供給の有無にかかわらず、キュー9は次のサイクルの
状態では、そのときの状態を保持すべき状態にあり、ま
たすなわち、第6図に示すようにアドレスqueue 
 topは同一アドレスを続いて示す必要がある。した
がって、reset=0、かつbr  taken=0
、かつ ICfetch  L=0かつIcm1ssL=0、な
らば、 queue  1nit  5tate=queue 
 1nit  5tate  L となる。
なおロジック30ないし36および50が実現する論理
を一欄にして示しているが、これらの論理を実現するた
めの具体的構成は当業者であれば容易に作成することが
できるであろう。
命令デコーダ26は、Lラッチ回路14〜16から与え
られるアドレスID  PCL、命令ID  IRLお
よび有効性フラグID  1nstavail  Lを
デコードし、並列処理可能な命令を検出し、該命令を対
応の機能ユニットへ転送するとともに、信号br  t
aken、データ1ssued  1nst  cou
ntおよびbranch  1nst  entryを
発生する。
この第1図に示す回路構成は1サイクルですべて所望の
動作を実行する。分岐発生時において、分岐命令と同時
に命令デコーダ26に与えられた命令のうち分岐命令以
後の命令については、デコード動作を行なっても機能ユ
ニットへの発行を停止する構成であってもよく、また機
能ユニットへその命令を与える一方そのサイクルにおけ
る機能ユニットの動作を禁止する構成であってもよい。
次に、各ロジック30ないし36および50の動作につ
いて図面を参照して説明する。
第16図は第3図に示すキュー、queuetopおよ
び5copeの基本的な動きに対応する各ロジックの動
作を示す信号波形図である。第16図には、各サイクル
と東3図に示す各ステップとの対応関係を合わせて示す
。また、各サイクルの初めはクロック信号Tにより決定
される。この信号波形図においてサイクルの中間でロジ
ックの出力の変化は、クロック信号りに応答して生じて
いる。
(1) サイクル0および1: このサイクルはリセット信号resetが“1”にあり
、キュー9は初期状態にある。したがって、信号que
ue  1nit  5tateがオン(1)、アドレ
スqueue  topおよび5copeは0であり、
また有効性フラグ1nstavail  inは0であ
る。
また、リセット状態においては、命令メモリに対するフ
ェッチ要求は行なわれないため、命令フェッチ要求フラ
グICfetchはオフ(0)である。また、キュー9
はリセット状態においては空き領域が十分に存在するた
め、信号queue  availは空き領域があるこ
とを示すため“1”である。
(2) サイクル2: このサイクル2においてリセット信号resetが“0
”となり、リセットが解除される。このリセットの解除
はサイクルの中途で行なわれており、各ロジックの出力
状態はサイクル1と同様である。
(3) サイクル3: このサイクルにおいては、命令フェッチロジック32か
らの命令フェッチ要求ICfetchをオン状態とする
。これにより命令メモリに対する命令フェッチ要求が行
なわれる。この発行された命令フェッチ要求に対して命
令メモリから命令が供給される。命令メモリからは命令
供給を示す信号ICreadyがオン状態となる。この
オン状態のICreadyに応答して、命令アベールロ
ジック35からの出力される有効性フラグtnst  
avail  inがオン状態となる。
このとき、キュー初期状態フラグqueue  1ni
t  5tateはオン状態にあり、キュー9が初期状
態にあることを示している。
(4) サイクル4: 信号ICfetchおよびICreadyがともにオン
状態となったことにより、キュー9の初期状態が解除さ
れ、信号queue  1nit  5tateがオフ
(0)とされ、キュー9に対する命令等の書込が実行さ
れる。すなわち、アドレスqueue  to′pが示
すアドレス0からの領域に命令メモリから供給された命
令ICdataおよび命令フェッチステージから伝達さ
れた各命令の論理アドレスIF  PCLおよび命令ア
ベールロジック35からの有効性フラグ部1nst  
avail  inが書込まれる。
またこのときアドレス5copeから始まるアドレス0
に書込まれた命令およびアドレスおよび有効性フラグが
読出され、ラッチ回路14ないし16へ与えられる。こ
のラッチ回路14ないし16へ与えられたデータはクロ
ック信号りに応答して命令デコーダ26へ与えられてそ
こで解読される。その結果、サイクル4において2つの
命令が並列処理可能であるとして対応の機能ブロックに
発行される。これにより、命令デコーダ26からは発行
命令数が2であることを示す信号1ssued  1n
st  countが発生され、スコープネクストロジ
ック31へ与えられる。アドレス5cope  nex
tは2となる。また、アドレスqueue  topは
4を加算され、4となる。
(5) サイクル5: このサイクルにおいては、アドレスqueuetopは
アドレス4を示しており、またアドレス5copeはア
ドレス2を示している。サイクル4と同様に命令メモリ
から命令が供給され、アドレス4ないし7に命令が書込
まれる。このとき同時に、キュー9からアドレス2から
の命令が読出され、ラッチ回路14ないし16を介して
命令デコーダ26へ与えられる。命令デコーダ26から
は1つの命令が機能ユニットへ発行される。したがって
、スコープネクストロジック31からaカされるアドレ
ス5copeは3となる。また、キュートップロジック
30から出力されるアドレスqueue  top  
inは8となる。
(6) サイクル6: このサイクル6においてもサイクル4と同様に命令メモ
リから命令が供給される。これにより、キュー9のアド
レス8ないし11に命令が書込まれる。
一方、命令デコーダ26からは機能ユニットへ発行され
る命令が存在しなかったため、発行命令数Oを示す信号
1B3u6d  1nst  countが発生されス
コープネクストロジック31へ与えられる。
キュートップロジック30からの次のサイクルのアドレ
スqueue  top  inはアドレス0を示す。
スコープネクストロジック31からaカされるアドレス
5cope  nextは3である。このとき、キュー
9のアドレス3には未発行の命令が残る。したがって、
キューアベールロジック34は、そこに含まれるキュー
フルロシックの機能によりキュー9に空き領域がないこ
とを示すために、信号queue  availをオフ
(0)に設定する。これにより、次のサイクルにおける
キュー9への命令の書込が禁止される。
(7) サイクル7: このサイクルにおいては、キュー9のアドレス3から命
令が読aされ、命令デコーダ26から3つの命令が発行
される。これにより、スコープネクストロジック31か
ら出力されるアドレス5Cope  nextは6とな
る。アドレスqueue  top  inは、そのと
き信号queueavailがオフ状態であったため変
更せず0である。このとき、アドレス5cope  n
extが6であり、一方アドレスqueue  top
−inが0であり、キュー9に空き領域が生じたため、
キューアベールロジック34からの出力信号queue
  availはオンとなり、次のサイクルにおけるキ
ュー9への命令の書込が許可される。
(8) サイクル8ニ アドレスqueue  topはサイクル7と同様0で
あるが、キュー9は命令を書込むことができるため(q
ueue  ava i 1はオン状態)、キュー9の
アドレスOないし3の領域に命令が書込まれる。このと
き、アドレス5copeは6であり、キュー9はアドレ
ス6を示しており、このキュー9のアドレス6からの命
令が命令デコーダ26へ与えられる。
なお、このとき、命令フェッチ要求ICfetchが連
続して発行されるため、サイクル7とサイクル8とで命
令メモリから与えられる命令の内容が具なることも考え
られる。これは、キューアベールロジック34からの信
号queue  availを命令フェッチステージへ
与え、この信号queue  availがオフの場合
には、命令フェッチステージに含まれるプログラムカウ
ンタ(IF  PC)のカウンタ動作を禁止し、サイク
ル7とサイクル8とで命令メモリの同一の内容が与えら
れるように構成すれば、同一命令を命令メモリから与え
ることができる。
なお、各ロジック30ないし36および50は与えられ
た信号を論理処理しているだけであり、クロック信号T
またはLとの同期動作は行なってはいない。
第17図は、第4図に示す分岐発生時における各ロジッ
クの動作を示す信号波形図である。第17図において第
4図の各ステップが各サイクルに対応づけて示される。
以下、第17図を参照して分岐発生時におけるキュー、
queue  topおよび5copeの動きについて
説明する。
(1) サイクル0ニ アドレスqueue  topは10であり、アドレス
5copeは2である。したがってキュー9からは命令
8.9.10および11がアドレス10.11.0およ
び1に書込まれる。一方、キュー9のアドレス2ないし
5の命令0ないし3が読出される。このサイクル0にお
いて、キュー9のアドレス4に格納されていた分岐命令
23により分岐が発生した場合を想定する。この場合、
信号br  takenがオン(1)となる。この分岐
が生じたことにより、命令アベールロジック35からの
有効フラグ1nst  avail  in−はオフ(
0)となる。
また、この分岐発生により、キュートップロジック30
から出力されるアドレスqueue  top  in
は分岐命令2が格納されていたアドレスbranch 
 1nst  entryに従って4となり、また同様
に、スコープネクストロジック31から出力されるアド
レス5cope  nextも4となる。
またキュー初期化状態ロジック36の出力queue 
 1nit  5tateもこの分岐発生により初期状
態(第1の状態)を示すために1となる。また、キュー
アベールロジック34の出力へはこの分岐発生によりキ
ューステイトロジック50からNORMAL状態を示す
信号が与えられ、信号queue  availは1の
ままである。
(2) サイクル1: このサイクルにおいては、アドレスqueuetopお
よび5copeはともに4に設定され、またキュー9の
アドレス4ないし7の有効性フラグにOが書込まれる。
この分岐が発生した場合には、分岐先命令のアドレスが
このサイクルで命令フェッチステージから命令メモリへ
与えられ、分岐先命令はその次のサイクルに命令メモリ
から供給される。したがって、この分岐先命令はこのサ
イクルではキュー9には書込まれない。
このサイクル1においては、アドレス4から始まる命令
は命令デコーダ26へ与えられるか、この命令内容は機
能ユニットへ発行/実行してはならないものである。こ
のため、命令デコーダ26は、関連の有効性フラグ1n
st  availがオフ状態となるためその発行を行
なわない。
さらに、キュー初期化ロジック36からの出力信号qu
eue  1nit  5tateはオン(1)である
ため、キュートップロジック30およびスコープネクス
トロジック31から出力されるアドレスqueue  
top  inおよびsc○pe  nextは4を保
持する。またこのサイクルにおいては分岐は生じないた
め、命令デコーダ26からの信号br  takenは
オフとなる。
これにより、命令アベールロジック35からの有効性フ
ラグ1nst  avafl  inはオンとなる。
(3) サイクル2: このサイクルにおいては、分岐先命令が供給され、キュ
ー9に格納されるとともに、関連の有効性フラグ1ns
t  avail  inもオンとなる。このときアド
レス4から始まる命令すなわち分岐先命令が命令デコー
ダ26へ与えられデコードされる。このサイクルにおい
ては、信号queue  1nit  5tateはオ
フとされているため、その処理内容に応じてアドレスq
ueuetopおよび5copeはそれぞれ変更される
ここで、サイクル2においては、信号iCreadyが
オンのため、サイクル2において分岐先命令が供給され
ていることを示している。
第18図は第5図に示す動作状態における各ロジックの
動作を示す信号波形図である。以下、第18図を参照し
て、発生された命令フェッチ要求に対し命令メモリから
命令が供給されない場合の動作について説明する。なお
、第18図において第5図に示すステップも合わせて各
サイクルに対応づけて示されている。
(1) サイクル0 このサイクルにおいてアドレスqueue  topが
0、アドレス5copeが6である。このサイクル0に
おいて発生された命令フェッチ要求(ICfetchが
オン)に対し、命令メモリから命令が供給されない場合
を想定する。このとき、命令メモリからの信号ICre
adyはオフとなり、また命令メモリへのアクセスを禁
止するため、信号ICbusyはオンとなる。このオフ
状態の信号ICreadyに応答して有効性フラグ1n
st  avail  inがオンからオフ状態へ変わ
る。
(2) サイクル1: このサイクルにおいては、サイクルOにおいて、ICf
etchが1でありかつIc  readyが0のため
、信号ICm1ssが1となり、キュー9が命令待ち状
態にあることを示す。またキュー初期化ロジック36か
らの出力queueinit  5tateは、サイク
ル0において、命令要求が発生されても命令供給がされ
なかったことに応答して“1”となりキュー9が初期状
態(第1の状態であり命令待ち状態)に設定され、アド
レスqueue  topの変更が禁止される。
このサイクルにおいては、アドレス4から始まるキュー
9の領域にはオフ(0)の有効性フラグ1nst  a
vail  inが書込まれ、該領域に格納された命令
の発行/実行が禁止される。
一方、アドレス5copeが示すアドレスキューからの
命令は命令デコーダ26へ与えられ、2つの命令が発行
され、次のサイクルにおけるアドレス5cope  n
extは11に変更される。
(3) サイクル2: この状態においても待ち状態であり、ICfetchは
オフ、信号ICm1ssはオン、および信号queue
  1nit  5tateはオン状態である。この状
態においては、アドレス4から始まる4エントリ領域に
命令無効を示すフラグ1nst  avail  in
が書込まれる。
一方、アドレス5copeから始まる命令は読出され、
命令デコーダ26へ与えられ、2つの命令が発行され、
次のサイクルにおける書込先頭アドレス5cope  
nextは1に変更される。
このサイクル2において、命令メモリから命令が供給さ
れたとする。このとき、信号ICreadyがオン状態
となり、信号ICbusyはオフ状態となる。これに応
答して、有効性フラグ1nst  avail  in
はオン状態へ移行する。この状態により、キュー9は命
令待ち状態が解除される。
(4) サイクル3:このサイクルにおいては、命令メ
モリから到達した命令がアドレスqueue  top
が示す4から始まる領域に登録され、またその対応の有
効性フラグ1nst  avail  inも1に設定
される。このとき、アドレス5copeが示すアドレス
位置からの命令に対する命令デコーダ26による機能ユ
ニットへの発行が行なわれる。このサイクル3において
はキュー9は初期状態から解除されたため、初期化状態
信号queue  1nit  5tateはオフとさ
れ、アドレスqueus  topの変更が再開される
。また、信号ICfetchもオン状態とされ、命令フ
ェッチ要求も再開される。
上述のように、複数の命令をそのアドレスおよび有効性
フラグとともに同時に書込かつ読出を行なうことのでき
るキューを設け、このキューの書込/読出ポインタを、
分岐発生、命令供給状態およびリセット状態の第1の状
態のいずれにあるかおよびキューに空き領域があるか否
かに従ってポインタの制御および命令の機能ユニットへ
の発行可否を制御するように構成したため、命令デコー
ダへ効率的に命令を供給することができ、高速で命令を
実行することのできるスーパースカラーを得ることがで
きる。次に、この複数の命令を同時に書込/読出するこ
とのできるキュー9の構成および動作について説明する
第19図は命令メモリ1からフェッチされる命令とキュ
ー9へ書込まれる命令との対応関係を概念的に示す図で
ある。まず、第19図を参照して、キュー9へのアドレ
スIF  PCL、命令ICdataおよび有効性フラ
グ1nst  avail  inの書込動作について
説明する。
命令フェッチステージ2からは命令フェッチ要求ICf
etchに応答して、命令メモリ1のアドレスIF  
PCが発生されて命令メモリ1へ与えられる。命令メモ
リ1からはこのアドレスIF  PCに従って4つの命
令IC1、IC2、IC3およびIC4が同時に読出さ
れる。この4つの命令IC1〜IC4は並列に命令IC
dataとしてキュー9の命令領域へ与えられる。
一方、命令フェッチステージ2からはこのアドレスIF
  PCLがキュー9へ供給される。このアドレスIF
  PCLは4つの命令IC1〜IC4の各アドレスを
示しており、これらのアドレスが並列にキュー9のアド
レス領域へ与えられる。この命令は任意の長さであって
もよいが、キュー9のエントリの効率的利用からは命令
メモリ1からの命令の長さはすべて同一の長さに設定さ
れる。
命令メモリ1から発生される信号ICbusyは第1図
に示す命令フェッチロジック32へ与えられる。命令メ
モリ1から発生される信号ICreadyは命令アベー
ルロジック35へ与えられる。この命令アベールロジッ
ク35へ与えられる他のロジックからの信号は図示して
いない。
キュー9は、これらのアドレスIF  PCL。
命令ICdataおよび有効性フラグ1nstavai
l  inを受け、書込イネーブル信号wen(これは
第1図のキューアベールロジック34から発生される)
に応答して、アドレスqueus  topが示すアド
レスから始まる4つのエントリ領域へ同時にこれらを書
込む。
このときまた、アドレス5copeから始まる4つのエ
ントリの内容が読出される。このアドレスIF  PC
Lは、クロック信号りに応答して確定状態になるもので
はあるが、タロツク信号Tに応答して発生されるもので
あってもよい。
キュー9に書込まれた命令およびアドレスが同時にまた
読出される場合もあり、このキュー9から読出された命
令およびアドレスは、クロック信号りに応答して保持動
作を実行するラッチ回路14および15で保持されるた
め、このキュー9の書込データはラッチ回路14および
15の保持動作前に確定していれば良い。したがって、
このアドレスIF  PCLが同時にまた読aされると
きにはこのラッチ回路のラッチタイミングを少し遅らせ
ておけば、アドレスIF  PCLがクロック信号りに
応答して確定状態とされるものであっても何ら誤動作は
生じない。
第20図はキュー9の命令領域へ与えられる命令ICd
ataの配置を示す図である。第20図を参照して、同
時に読出される4つの命令IC−1〜IC4の各々は、
各ビットごとに集められる。すなわち、命令ICdat
aの第3ビツト領域には4つの命令IC1〜IC4の第
0ピツ)ICIO〜IC40が順次格納され、以下この
順番で第32ビツトまで同様に配置される。
ここで、命令IC−1〜I C−4はすべて32ビツト
構成の場合が一例として示されている。
第21図はキュー9のアドレス領域へ伝達される命令ア
ドレスIF  PCLの配置を示す図であり、命令IC
dataと同様各命令ごとにビットが順番に配置される
第22図は有効性フラグの配置を示す図である。
この有効性フラグ1nst  avail  inは4
エントリに対応して4t′ツト構成とされ、すべて同一
の値をとる。
第23図はキューの全体の構成を概略的に示す図である
。第23図においてキュー9は、アドレスqueus 
 topをデコードし、4エントリを選択するための信
号を発生する書込デコーダWRDと、アドレス5cop
eをデコードし、命令を読出すべき4エントリを選択す
る信号を発生する読出デコーダRDDと、各々が1エン
トリ領域を構成し、アドレス、命令および有効性フラグ
を格納する並列に設けられたエントリ記憶装置92−0
〜92−11を含む。
書込デコーダWRDおよび読出デコーダRDDは、それ
ぞれ与えられたアドレスqueue  tOpおよび5
copeに応答してその変化に従ってデコード動作を実
行する。すなわちこれらの書込デコーダWRDおよびR
DDは非同期デコード動作をスタティックに行なってお
り、特にこれらの書込デコードおよびWRDおよび読出
デコーダRDDの動作タイミングを規定する制御信号は
用いられてはいない。
書込デコーダWRDには12本の書込ワード線WD O
〜WD 11が接続され、アドレスqueue  to
pに従ってこれらの12本の書込ワード線WDO〜WD
11のうちの1本を選択状態とされる。読出デコーダR
DDも12本の読出ワード線RDO−RDIIを有して
おり、アドレス5Copeに応答してこれらの12本の
読出ワード線RDO〜RDIIのうちの1本を選択状態
とする。
後に詳細に説明するが、1つの書込ワード線WDi  
(i=0〜11)および1本の読出ワード線RDiには
それぞれ連続して隣接する4つのエントリ記憶装置が接
続される。したがって、1本の書込ワード線または読出
ワード線が選択状態とされることにより、同時に4つの
エントリ記憶装置が選択状態とされる。
エントリ記憶装置92−0〜92−11の各々は、デー
タ書込ポートを選択するための書込アクセスゲー)wO
lWl、W2、およびw3と、データ読出経路を選択す
るための読aアクセスゲー)rOlrl、r2およびr
3を含む。この書込アクセスゲートwj  (j=o〜
3)および読出アクセスゲートrO〜r3のいずれか1
つを選択することによりデータの書込/読出ポートが選
択される。4つの隣接するエントリ記憶装置の書込アク
セスゲートの異なる書込アクセスゲートが1本の書込ワ
ード線WDiに接続される。同様に、4つの隣接するエ
ントリ記憶装置の異なる読出アクセスゲートが1本の読
出ワード線RDiに接続される。
たとえば、読出ワード線WDOには記憶装置92−0の
書込アクセスゲートWO1記憶装置92−1の書込アク
セスゲートW1、記憶装置92−2の書込アクセスゲー
)w2、および記憶装置92−3の書込アクセスゲート
W3が接続される。
また、読出ワード線RDOには、記憶装置92−0の読
aアクセスゲートrO1記憶装置92−1の読出アクセ
スゲートr1、記憶装置92−2の読出アクセスゲート
r2および記憶装置92−3の読出アクセスゲー)r3
が接続される。
エントリ記憶装置92−0〜92−11の各々は、書込
データ入力ポートiwi、書込データ出力ポートiwo
、読出データ入力ポートirf。
読出データ出カポ−)iro、書込アドレス入カポ−)
pwi、書込アドレス出力ポートpwo、読出アドレス
出カポ−)pro、読出アドレス入カポ−)pri、書
込有効性フラグ入力ポートaw i 、書込有効性フラ
グ出カポ−)awo、読出有効性フラグ入力ポートar
o、および読出有効性フラグ入力ポートartを含む。
記憶装置92−0〜92−11の書込命令入出力ポート
i w iおよびi w oはすべて共通の命令書込ビ
ット線IWBに接続され、読出命令入出力ポートiro
およびiriは共通に命令読出ビット線IRBへ接続さ
れる。
記憶装置92−0〜92−11の書込アドレス入出力ポ
ートpwiおよびp w oはアドレス書込ビット線P
WHに接続され、記憶装置92−0〜92−11の読出
アドレス入出力ポートproおよびpriはアドレス読
出ビット線FRBに接続される。
記憶装置92−O〜92−11の書込有効性フラグ入出
カポ−)awiおよびawoは有効性フラグ書込ビット
線AWBに接続され、読出有効性フラグ入出力ポートa
rtおよびaroは有効性フラグ読出ビット線ARBに
接続される。
命令書込ビット線IWB、命令読出ビット線IRB、ア
ドレス書込ビット線PWB、およびアドレス読出ビット
線PRBは4命令分のデータを伝達することのできるビ
ット幅を有しており、本実施例においては、4・32=
128のビット幅を有している。有効性フラグ書込ビッ
ト線AWBおよび有効性フラグ読aビット線ARBは4
ビツトの幅を有している。これらの読出ビット線および
書込ビット線上に4命令分の内容が同時に伝達される。
記憶装置92−0〜92−11の各々の入力および出力
ポートはともに4つのポートを有しており、この4つの
ポートのうちの1つが書込アクセスゲートwO−w3お
よび読出アクセスゲートrO〜r3より選択される。し
たがって、同時に選択状態とされる4つの記憶装置は互
いに異なる入力ポートおよび出力ポートが選択状態とさ
れる。
情報の入出力を行なうために、第1図に示すキューアベ
ールロジック34から発生される書込イネーブル信号w
enに応答して所定のタイミングで書込パルスWPを発
生する書込パルス発生器WPGと、書込パルス発生器W
PGからの書込パルスWBに応答してオン状態となる、
トライステートバッフ7BFI、BF2およびBF3が
設けられる。このトライステートバッファBFI〜BF
3は書込パルスWPが発生されない場合その出力状態を
ハイインピーダンス状態とする。
トライステートバッファBFIは、命令メモリからの命
令ICdataを受け、命令書込ビット線IWB上へ伝
達する。トライステートバッファBF2は、アドレスI
F  PCLをアドレス書込ビット線PWB上へ伝達す
る。トライステートバッファBF3は有効性フラグ1n
st  avail  inを有効性フラグ書込ビット
線AWB上へ伝達する。命令読出ビット線IRBからは
命令1nstが出力され、ラッチ回路14へ伝達される
。読出ビット線PRBからはアドレスPCが読出され、
Lラッチ回路15へ伝達される。読aビット線ARB上
の有効性フラグ1nst  availはLラッチ回路
16へ接続される。
次にこの第23図に示すキューの動作について簡単に説
明する。
まずデータ書込動作について説明する。アドレスque
ue  topに従って、書込デコーダWRDにより1
本の書込ワード線WDiが選択状態とされる。これによ
り、連続して隣接する4つのエントリ記憶装置が選択さ
れるとともにそれぞれの異なる入力ポートが選択状態と
される。これにより、4つのエントリ記憶装置へ同時に
書込を行なうことが可能となる。次いで、キュー9に空
領域が存在するとキューアベールロジック34からの書
込イネーブル信号wenがオン状態になり、書込パルス
発生器WPGから所定のタイミングで書込パルスWPが
発生され、トライステートバッファBFIないしBF3
が導通状態とされ書込データが選択されたエントリ記憶
装置の対応のポートへ伝達され、4エントリに命令、ア
ドレスおよび有効性フラグが同時に書込まれる。
読出動作も同様であり、アドレス5copeが与えられ
ると読出デコーダRDDは1本の読出ワード線RDiを
選択し、4つのエントリ記憶装置の異なる読出アクセス
ゲートを選択する。これにより4つのエントリ記憶装置
から同時に4つのエントリ内容を読出すことができる。
この読出されたデータは読出ビット線IRB、PRBお
よびARBを介して対応のラッチ回路14.15および
16へ伝達される。
第24図は1個のエントリ記憶装置の構成を示す図であ
る。第24図において1個のエントリ記憶装置92を総
称的に示す。命令記憶装置931、アドレス記憶装置9
3−2および有効性フラグ記憶装置94を含む。命令記
憶装置93−1およびアドレス記憶装置93−2は同一
の構成を有し、書込ポート選択ゲートWbと、読出ポー
ト選択ゲートrbと、書込アクセスゲートwO〜w3お
よび読出アクセスゲートrO〜r3を含む。ゲートwb
、rbの<3 : O>は入出力ポートが、ともに0な
いし3の4つあることを示しており、また<31:O>
は32ビツトのデータが、1つの選択されたポートから
出力されることを示している。したがって、命令書込ビ
ット線IWBおよび読出ビット線IRB、アドレス書込
ビット線PWBおよびアドレス読出ビット線PRBの1
28ビツトの信号線のうち32ビツトの信号線が1つの
記憶装置により使用される。どの32ビツトの信号線が
使用されるかはアクセスゲートwbO〜wb3およびr
O〜r3の選択により決定される。
有効性フラグ記憶装置94は書込ポート選択ゲートwb
および読出ポート選択ゲー)rbと、書込アクセスゲー
トWO〜W3および読出アクセスゲートrO〜r3を含
む。この書込ポート選択ゲートwbは、ポートを0ない
し3の4つ有しており、1つの選択ポートから1ビツト
の有効性フラグが入出力される。すなわち、アクセスゲ
ートWO〜w3およびrO〜r3を選択することにより
、フラグ書込ビット線およびフラグ読出ビット線AWB
およびARBの4ビツトのうち1ビツトが、1つの有効
性フラグ記憶装置94により使用される。
第25図は命令記憶装置93−1およびアドレス記憶装
置93−2の構成をより詳細に示す図である。この記憶
装置93−1および93−2は同一の構成を有しており
、記憶装置93を総称的に示す。第25図を参照して、
命令記憶装置93−1およびアドレス記憶装置93−2
はともに、32ビツトのビット記憶装置95−0〜95
−31を含む。このビット記憶装置95−〇〜95−3
1の各々は、命令またはアドレスの第0ビツトないし第
31ビツトをそれぞれ記憶する。ビット記憶装置95−
0〜95−31の各々は、書込ボート選択ゲートwbo
、wbl、w b 2およびwb3と、読出ボート選択
ゲートrbQ、rbl、rb2およびrb3と、書込ア
クセスゲートWO〜w3および読出アクセスゲートr 
O−r 3を含む。
このゲートWbO〜Wb3およびrbO〜rb3の選択
がアクセスゲートWO〜W3およびrOないしr3の選
択により決定される。このビット記憶装置95−〇〜9
5−31の書込アクセスゲートw O−w 3にはそれ
ぞれ同一のアクセスゲート選択信号WO〜w3 (信号
線とその上に伝達される信号とを同一の符号で示す)が
伝達され、また読出アクセスゲートr O−r 3には
同一の読出ゲート選択信号rO〜r3が伝達される。こ
れにより、命令またはアドレスの32ビツトが同時に選
択される。
有効性フラグ記憶装置94はこのビット記憶装置95−
O〜95−31と同一の構成を有している。
第26図はビット記憶装置および有効性フラグ記憶装置
の具体的構成の一例を示す図である。第26図において
、ビット記憶装置(および有効性フラグ記憶装置)は、
書込ボート選択トランジスタGTI〜GT4と、読出ボ
ート選択トランジスタRTI〜RT4と、1ビツトのデ
ータを記憶する記憶素子MEを含む。記憶素子MEは、
反並行または交差結合された2つのインバータIVIお
よびIV2を含む。すなわち記憶素子MEはインバータ
ラッチにより構成される。
ゲートトランジスタGT1はボート選択信号WOをその
ゲートに受け、メモリMEをボートwbOに接続する。
ゲートトランジスタGT2は、ボート選択信号W1に応
答して記憶素子MEをボー)wblに接続する。ゲート
トランジスタGT3は、ボート選択信号W2に応答し記
憶素子MEをボートw b 2に接続する。ゲートトラ
ンジスタGT4はボート選択信号w3に応答して記憶素
子MEをボートwb3に接続する。
読出経路も同様であり、トランジスタRTI〜RT4は
それぞれ読出ボート選択信号rO−r3に応答して記憶
素子MEをボートrbo〜rb3へそれぞれ接続する。
このビット記憶装置および有効性フラグ記憶装置の異な
るエントリ間の接続形態を第27図に示す。第27図に
示すように、このボートwbo〜wb3およびrbO−
rb3はそれぞれ同一ビットの記憶装置に対して共通に
設けられており、また有効性フラグ記憶装置においては
すべての記憶装置に対して共通に設けられる。
ビット記憶装置(有効性フラグ記憶装置)の動作につい
て説明する。書込ワード選択信号WRDにより1本の書
込ワード線が選択された場合、この第26図の構成にお
いて1個のゲートトランジスタGTiがオン状態となり
、記憶素子MEがポー)wbO〜wb3のいずれかに接
続される。これにより、選択されたボートを介して記憶
素子MEへのデータの書込が行なわれる。データ読出も
同様であり、読出デコーダRDDにより1個の読出ワー
ド線が選択され、応じてトランジスタRT1〜RT4の
いずれかがオン状態となり、記憶素子MEがボー)rb
o〜rb3のいずれかに接続される。これによりデータ
の読出が行なわれる。
第27図に示すように、1本の書込ワード線WDiを選
択状態とすることにより、隣接するエントリ記憶装置に
おいては異なるボートが選択される。たとえば東27図
において記憶素子MEIは選択信号WDiによりボート
wbOに接続され、記憶装置ME2がポー)wblに接
続される。これにより、4つの異なる命令の各ビットを
4つの異なる記憶素子へ同時に書込むことができる。デ
ータ読出も同様である。1本の読出ワード線RDiを選
択状態とすることにより、記憶素子MEI。
ME2.・・・が異なるボートへ接続され、同時に4つ
のエントリの内容がそれぞれ異なるボートに伝達される
ため、同時に4つの命令、アドレスおよび有効性フラグ
を読出すことができる。
次に、このキューにおけるデータ読出時の動作について
第28図を参照して説明する。
この第28図に示す動作波形図においては、命令読出ビ
ット線IRB、アドレス読出ビット線PRBおよび有効
性フラグ読出ビット線ARBが読出ビット線RBとして
代表的に示されている。アドレス5copeが与えられ
ると、読出デコーダRDDの出力は、このアドレス5c
opeの変化状態に従って変死し、ある時間が経過する
とその出力状態が確定し、1本の読出ワード線RDが選
択状態となる。この第28図に示す動作波形図において
は、すべての読出ワード線の信号波形図がすべて示され
ており、選択状態および非選択状態の読出ワード線の信
号状態が示されている。この選択ワード線(たとえばR
DO)上の信号電位が確定すると、エントリ記憶装置の
読出アクセスゲートが選択状態とされる。この場合、記
憶装置92−0〜記憶装置92−3のアクセスゲートr
O1rl、r2およびr3がそれぞれ選択され、それぞ
れの異なるデータ読出ポートが選択状態とされ、対応の
ポート上にデータが読出される。この後、トランジスタ
RTI〜RT4により読出ビット線RB上の信号状態が
確定する。この読出ビット線RB上の信号電位はLラッ
チ回路14〜16へ与えられる。
第29図はデータ書込時の動作を示す信号波形図である
。次にデータ書込動作について第29図を参照して説明
する。
アドレスqueue  topが与えられると、書込デ
コーダWRDは、このqueue  topに従ってデ
コード動作を開始し、ある時間が経過した後、書込ワー
ド線WD上の信号電位が確定状態となる。これにより、
データ書込を受けるべき4つのエントリが選択され、か
つこの4つのエントリ記憶装置のそれぞれの異なるポー
トがアクセスゲートを介して選択状態とされる。この書
込ワード線WDの信号電位が確定した後、キュー9に空
領域があれば書込パルス発生器WPGより所定のタイミ
ングで書込パルスWPが発生され、トライステートバッ
フ7BFI〜BF3が導通状態となり、命令ICdat
a、アドレスIF  PCLおよび有効性フラグ1ns
t  availinを書込ビット線WB上へ伝達する
。この書込ビット線上のデータはそれぞれ選択されたエ
ントリ(4つ)へそれぞれ同時に書込まれる。
書込んだデータを同時に読出すためには、書込パルスW
Pが発生され、書込ビット線WB上のデータが確定状態
となった後に読出されることになるが、この場合、書込
ビット線上に書込まれたデータが再びこのエントリ記憶
装置を介してLラッチ回路14〜16へ伝達されたあと
にこれらのしラッチ回路がラッチ動作を実行する構成と
される。
また第26図および第27図に示す記憶素子はインバー
タラッチを用いており、このままでは、書込データと読
出データが反転状態となることが考えられる。これは、
トライステートバッファBF1〜BF3をインバータ構
成とすれば容易に対処することができ、またこのインバ
ータは任意の箇所に設置することができる。
上述の構成により、アドレスqueue  t。
pから始まる4つのアドレス領域に同時にそれぞれ異な
るデータ(アドレス、命令および有効性フラグ)を書込
むことができ、またアドレスsc。
peから始まる4つのアドレス領域に格納されたエント
リの内容を同時に読出すことができる。
なお、上述の記憶装置においては、記憶素子としてイン
バータラッチ構成の記憶素子が用いられているが、この
記憶素子の構成はどのようなものであってもよく、デー
タを保持するものであればどのようなものであってもよ
い。
また、記憶装置の構成は上述のエントリ記憶装置の構成
に限定されず、データ書込ポートおよび読出ポートが4
つ設けられており、それぞれ隣接する4つのエントリ記
憶装置の異なる書込/読出ポートが選択状態とされる構
成であればどのような構成であってもよい。
さらに、上記実施例においては、命令およびアドレスは
ともに32ビツトの場合および同時に読出される命令が
4つの場合について説明したが、これらのアドレスおよ
び命令長および同時にキューにおいて書込/読出される
命令の数は任意の数であってもよい。
[発明の効果] 以上のように、この発明によれば、デコードステージに
おいて、命令デコーダ前段に、命令メモリからの命令と
、該命令の有効/無効を示すフラグと、該命令のアドレ
スとを1エントリとして複数の命令を同時に格納するキ
ューを設け、命令メモリから同時に読出される複数の命
令、およびアドレスならびに該命令の有効/無効を示す
フラグを同時にキューに格納し、命令の実行状態、フェ
ッチ状態等に従ってこのキューへの書込/読出を制御す
るように構成したため、命令デコーダへ効率的に命令供
給を行なうことができ、処理速度の速い並列処理装置を
得ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例である並列処理装置の命令
供給ステージの構成を示す図である。第2図は第1図に
示すキューの概念的構成を示す図である。第3図はこの
発明による並列処理装置におけるキューのアドレスの基
本的な動きを示す図である。第4図はこの発明の並列処
理装置におけるキューの書込および読出アドレスおよび
有効性フラグの動きを示す図である。第5図はこの発明
による並列処理装置において命令フェッチ要求が出され
た場合に命令供給が行なわれなかった場合のキューにお
ける書込および読出アドレスと有効性フラグの動きを示
す図である。第6図は第1図に示すキュートップロジッ
クの実現する論理を一覧にして示す図である。第7図は
第1図に示すスコープネクストロジックの実現する論理
を一覧にして示す図である。第8図は第1図に示す命令
フェッチロジックの実現する論理を一覧にして示す図で
ある。第9図は第1図に示す命令ミスロジックが実現す
る論理を一覧にして示す図である。第10A図は第1図
に示すキューアベールロジックの実現する論理を一覧に
して示す図である。第10B図は第10A図に含まれる
キュー・フルの実現する論理動作を一覧にして示す図で
ある。第1OC図および第10D図は第10B図に示す
キュー・フルの論理動作を説明するための図である。 第11A図および第11B図はキューの第2の状態を説
明するための図である。第12A図および第12B図は
キューの第3の状態を説明するための図である。第13
図は第1図に示すキューステイトロジックの実現する論
理を一覧にして示す図である。策14図はキューの第1
図に示す命令アベールロジックが実現する論理を一覧に
して示す図である。第15図は第1図に示すキュー初期
化状態ロジックが実現する論理を一覧にして示す図であ
る。第16図は第1図に示すキューが基本的動きを行な
う際の各ロジックの動作を示す信号波形図である。第1
7図は分岐発生時における第1図に示す各ロジックの動
作を示す信号波形図である。第18図は命令フェッチ要
求に対し命令供給が行なわれなかった場合の第1図に示
す各ロジックの動作を示す信号波形図である。第19図
は命令メモリからキューへ与えられる命令およびアドレ
スならびに有効性フラグの対応関係を概念的に示す図で
ある。第20図はキューへ与えられる命令の配置形態の
一例を示す図である。第21図はキューへ与えられる有
効アドレスの配置形態の一例を示す図である。第22図
はキューへ与えられる有効性フラグの配置形態の一例を
示す図である。 第23図はキューの全体の構成を示す図である。 篤24図は第23図に示すエントリ記憶装置の構成を示
す図である。第25図は第24図に示す命令記憶装置お
よびアドレス記憶装置の構成を示す図である。第26図
は第25図に示す命令およびアドレス記憶装置および有
効性フラグ記憶装置の構成の一例を示す図である。第2
7図は第26図に示すビット記憶装置の接続形態を例示
する図である。第28図はキューのデータ読出時の動作
を示す信号波形図である。第29図はキューのデータ書
込時における動作を示す信号波形図である。 第30図は並列処理装置の概念的構成を示す図である。 第31図は、並列処理装置の一般的構成を示す図である
。第32図は従来の並列処理装置における命令供給方法
を示す図である。第33図は、この発明が意図する命令
供給方式を示す図である。 第34図は、第33図に示す命令供給方式を実現するた
めに考えられることのできる命令供給方式を示す図であ
る。第35図は第34図の命令供給方式を実現するため
の構成の一例を示す図である。 第36図は並列処理装置において用いられる2相クロツ
クを示す図である。 図において、1は命令メモリ、2は命令フェッチステー
ジ、3は命令デコードステージ、9はキュー、30はキ
ュートップロジック、31はスコープネクストロジック
、32は命令フェッチロジック、33は命、令ミスロジ
ック、34はキューアベールロジック、35は命令アベ
ールロジック、36はキュー初期化状態ロジック、50
はキューステイトロジック、92−0〜92−11はエ
ントリ記憶装置、93−1は命令記憶装置、93−2は
アドレス記憶装置、94は有効性フラグ記憶装置、95
−0〜95−31はビット記憶装置、MEは記憶素子、
WRDは書込デコーダ、RDDは読出デコーダ、WPG
は書込パルス発生器、BF1〜BF3はトライステート
バッファである。 なお、 図中、 同一符号は同一または相当部分を 示す。 島2V PC st +n5t−ova キューのアドレス ○ 未定 島7図 5cope、 next +71 p理)reset scope−nex t +2) br−token scope−next=bronch−insLent
ryscope−next :5cope−next島
8図 C fetch S 論理 (2)  else C−fetch = 0 浩90 C m1ssr論理 × イ壬旨 v、IOA口 queue−ova の鉋理 為10B目 queueju 賞 A図 NORMAじだ粍 queue−top も1 8図 NORMALJ大′hど5cope−next  qu
eue−top−inqueue−top ち 2八図 REVERSE 択町 queue−top cope REVER9E仄1)?”5COp−neXt:qLI
alt3上op−in午2− 4?+    ボ1ンア O × 朱廃イテ介仝 第 乳14図 キ1 、rM効07う7°″」部分1= t 、4 i
6t′礒M fiEffiイ云見、。 ^  ^  凸   ^  ^  ^  ^   ^ 
 ^ロ  D O℃  Φ  ト  ひ  ;  −+
  +  リ   ν  +   ν  ν   ν 
  〜−ル18図 も5閉のスナ・Iア;(2+1 jヒ生、Sれrユ命牛7トノ+1世!!i−’t:tt
丁(74ト牛メモυ力\ら命令ρ\゛イ共綬Jれな(り
巻合のキュー、 queue−topちよじ5cope
 ^動( %+9図 地20口 島2 図 叢22図 0−へn 沸≧シ≧ 壽260 為27目 匙28図 し29圀 float 死32図 口234 開口4 の発行 23[発行 図 口 7.8β企柚 島34図 (1)口D45 命令213”#:行 命令レジス9めシフト

Claims (1)

  1. 【特許請求の範囲】 各々が所定の機能を実行する複数の機能ユニットと、命
    令を格納する命令メモリ装置と、命令フェッチ指示に応
    答して前記命令メモリ装置から複数の命令を同時にフェ
    ッチする命令フェッチ装置と、該フェッチされた複数の
    命令から同時に実行可能な命令を見出し、該同時実行可
    能な命令を関連の機能ユニットへ発行する命令デコード
    装置とを含む並列処理装置における命令供給装置であっ
    て、前記命令デコード装置は、前記関連の機能ユニット
    へ発行した命令数を示す情報と、与えられた命令に分岐
    命令が含まれておりこの分岐命令により分岐が発生した
    ことを示す分岐発生指示情報とを発生する手段を含み、 前記命令メモリ装置からの命令の供給待ち状態であるか
    否かを示す命令供給有無指示信号と、リセット信号と、
    前記分岐発生指示情報とに応答して、命令の有効・無効
    を示す有効性フラグを形成する手段、 前記同時にフェッチされた複数の命令と、該同時にフェ
    ッチされた複数の命令の前記命令メモリ装置におけるア
    ドレスと、前記有効性フラグとを同時に格納する記憶手
    段、前記記憶手段は、1エントリが1命令と対応のアド
    レスと対応の有効性フラグとからなる複数のエントリ格
    納領域を備えかつ、各々に異なる書込エントリが同時に
    伝達される複数の入力ポートおよび前記複数の入力ポー
    トと別に設けられ、各々に異なる読出エントリが同時に
    伝達される複数の出力ポートと、書込キューアドレスお
    よび読出キューアドレスにそれぞれ応答して複数のエン
    トリを前記複数の入力ポートおよび前記複数の出力ポー
    トへ同時にそれぞれ接続する手段とを含み、および 前記命令発行数指示情報、前記分岐発生指示情報、前記
    命令供給有無指示信号、および前記リセット指示信号に
    応答して、前記書込キューアドレスおよび前記読出キュ
    ーアドレスをそれぞれ生成して前記記憶手段へ与えるア
    ドレス生成手段を備え、 前記記憶手段から同時に読出された複数のエントリの内
    容が前記命令デコード装置へ与えられる、並列処理装置
    における命令供給装置。
JP2279654A 1990-10-17 1990-10-17 並列処理装置における命令供給装置 Expired - Fee Related JP2532300B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2279654A JP2532300B2 (ja) 1990-10-17 1990-10-17 並列処理装置における命令供給装置
DE4134387A DE4134387C2 (de) 1990-10-17 1991-10-17 Vorrichtung und Verfahren zum Befehlszuführen in Geräten mit Parallelverarbeitung
US08/300,235 US5619730A (en) 1990-10-17 1994-09-06 Pipelining device in a parallel processing apparatus and an instruction supplying method therefor
US08/800,191 US5930520A (en) 1990-10-17 1997-02-13 Pipelining device in a parallel processing apparatus and an instruction supplying method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2279654A JP2532300B2 (ja) 1990-10-17 1990-10-17 並列処理装置における命令供給装置

Publications (2)

Publication Number Publication Date
JPH04153733A true JPH04153733A (ja) 1992-05-27
JP2532300B2 JP2532300B2 (ja) 1996-09-11

Family

ID=17613996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2279654A Expired - Fee Related JP2532300B2 (ja) 1990-10-17 1990-10-17 並列処理装置における命令供給装置

Country Status (3)

Country Link
US (2) US5619730A (ja)
JP (1) JP2532300B2 (ja)
DE (1) DE4134387C2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271582A (ja) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> オペレーションの処理システム及び方法
US6957320B2 (en) 1992-09-29 2005-10-18 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US7000097B2 (en) 1992-09-29 2006-02-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JP2010532518A (ja) * 2007-06-29 2010-10-07 エミュレックス デザイン アンド マニュファクチュアリング コーポレーション 効率的な待ち行列管理のための方法およびシステム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3193525B2 (ja) * 1993-05-31 2001-07-30 キヤノン株式会社 情報処理装置
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp., Huntsville Befehlscachespeicher mit assoziativem Kreuzschienenschalter
JP3569014B2 (ja) * 1994-11-25 2004-09-22 富士通株式会社 マルチコンテキストをサポートするプロセッサおよび処理方法
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US6237101B1 (en) * 1998-08-03 2001-05-22 International Business Machines Corporation Microprocessor including controller for reduced power consumption and method therefor
US6263427B1 (en) 1998-09-04 2001-07-17 Rise Technology Company Branch prediction mechanism
US6212611B1 (en) 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6542987B1 (en) * 1999-02-01 2003-04-01 Hewlett-Packard Development Company L.P. Method and circuits for early detection of a full queue
US6185672B1 (en) * 1999-02-19 2001-02-06 Advanced Micro Devices, Inc. Method and apparatus for instruction queue compression
FR2846822B1 (fr) * 2002-10-31 2005-03-25 Mediaflow Inc Reseau local industriel ou domestique
JP4128551B2 (ja) * 2004-07-29 2008-07-30 富士通株式会社 情報処理装置及びストア命令制御方法
US10216520B2 (en) * 2014-10-06 2019-02-26 Via Technologies, Inc. Compressing instruction queue for a microprocessor
CN115392162A (zh) * 2022-08-24 2022-11-25 北京欧铼德微电子技术有限公司 针对片上系统仿真中的初始化系统和方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665422A (en) * 1970-01-26 1972-05-23 Electronic Arrays Integrated circuit,random access memory
US3727196A (en) * 1971-11-29 1973-04-10 Mostek Corp Dynamic random access memory
US3953838A (en) * 1974-12-30 1976-04-27 Burroughs Corporation FIFO Buffer register memory utilizing a one-shot data transfer system
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4374428A (en) * 1979-11-05 1983-02-15 Rca Corporation Expandable FIFO system
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
US4423482A (en) * 1981-06-01 1983-12-27 Sperry Corporation FIFO Register with independent clocking means
EP0077619B1 (en) * 1981-10-15 1986-02-26 National Research Development Corporation Data-packet driven digital computer
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
US4864543A (en) * 1987-04-30 1989-09-05 Texas Instruments Incorporated First-in, first-out memory with counter address pointers for generating multiple memory status flags
JPS62152043A (ja) * 1985-12-26 1987-07-07 Nec Corp 命令コ−ドアクセス制御方式
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US4837678A (en) * 1987-04-07 1989-06-06 Culler Glen J Instruction sequencer for parallel operation of functional units
US5036454A (en) * 1987-05-01 1991-07-30 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of a loop with overlapped code
JPH07120719B2 (ja) * 1987-12-02 1995-12-20 三菱電機株式会社 半導体記憶装置
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5150468A (en) * 1989-06-30 1992-09-22 Bull Hn Information Systems Inc. State controlled instruction logic management apparatus included in a pipelined processing unit
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5251306A (en) * 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957320B2 (en) 1992-09-29 2005-10-18 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6965987B2 (en) 1992-09-29 2005-11-15 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US7000097B2 (en) 1992-09-29 2006-02-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US7447876B2 (en) 1992-09-29 2008-11-04 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JPH07271582A (ja) * 1994-03-31 1995-10-20 Internatl Business Mach Corp <Ibm> オペレーションの処理システム及び方法
JP2010532518A (ja) * 2007-06-29 2010-10-07 エミュレックス デザイン アンド マニュファクチュアリング コーポレーション 効率的な待ち行列管理のための方法およびシステム

Also Published As

Publication number Publication date
DE4134387A1 (de) 1992-04-23
US5619730A (en) 1997-04-08
DE4134387C2 (de) 1996-05-23
US5930520A (en) 1999-07-27
JP2532300B2 (ja) 1996-09-11

Similar Documents

Publication Publication Date Title
JPH04153733A (ja) 並列処理装置における命令供給装置
AU618142B2 (en) Tightly coupled multiprocessor instruction synchronization
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
JP6011194B2 (ja) 演算処理装置及び演算処理装置の制御方法
JPH04505818A (ja) 並列多重糸データ処理システム
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
CN112540789A (zh) 一种指令处理装置、处理器及其处理方法
NZ201809A (en) Microprocessor
US8645588B2 (en) Pipelined serial ring bus
CN115934168A (zh) 处理器和内存访问方法
US5301331A (en) Interruption handling system
JP4569934B2 (ja) 情報処理装置、例外制御回路及び例外制御方法
US5442769A (en) Processor having general registers with subdivisions addressable in instructions by register number and subdivision type
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
CN113703841B (zh) 一种寄存器数据读取的优化方法、装置及介质
US5446865A (en) Processor adapted for sharing memory with more than one type of processor
US5327537A (en) Apparatus for controlling instruction execution in a pipelined processor
JP3534987B2 (ja) 情報処理装置
US20100100709A1 (en) Instruction control apparatus and instruction control method
US5321842A (en) Three-state driver with feedback-controlled switching
US6260133B1 (en) Processor having operating instruction which uses operation units in different pipelines simultaneously
CN101689110A (zh) 指令执行控制装置以及指令执行控制方法
JP5093237B2 (ja) 命令処理装置
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
US6918028B1 (en) Pipelined processor including a loosely coupled side pipe

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees