JPH06242948A - パイプライン処理計算機 - Google Patents

パイプライン処理計算機

Info

Publication number
JPH06242948A
JPH06242948A JP5026845A JP2684593A JPH06242948A JP H06242948 A JPH06242948 A JP H06242948A JP 5026845 A JP5026845 A JP 5026845A JP 2684593 A JP2684593 A JP 2684593A JP H06242948 A JPH06242948 A JP H06242948A
Authority
JP
Japan
Prior art keywords
scoreboard
instruction
register
reset
signal
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.)
Withdrawn
Application number
JP5026845A
Other languages
English (en)
Inventor
Tatsuki Nakada
達己 中田
Toshiharu Oshima
俊春 大島
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5026845A priority Critical patent/JPH06242948A/ja
Priority to EP93307302A priority patent/EP0612012B1/en
Priority to DE69327517T priority patent/DE69327517T2/de
Publication of JPH06242948A publication Critical patent/JPH06242948A/ja
Priority to US08/889,046 priority patent/US6055625A/en
Withdrawn 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はパイプライン処理計算機
に関し、特にパイプライン処理計算機におけるスコアボ
ードの制御方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】パイプ
ライン処理計算機において、演算に使用されるオペラン
ドの相互依存関係を管理する方法にスコアーボード(S
CB)がある。このスコアボードを汎用レジスタの干渉
検出に使用した例を説明する。汎用レジスタの各々に対
応して、使用中/未使用を表すスコアーボード記憶手段
を設ける。汎用レジスタに書込みする命令を実行したと
きは、そのレジスタ番号に対応するスコアーボードのビ
ットを設定(セット)して書込みが行われることを示し
ておく。又、この命令が、結果を汎用レジスタに書き込
む時には、そのレジスタ番号に対応するスコアーボード
のビットをリセットして書込みが完了したことを示す。
【0003】ここで、後続する命令(後続命令)は、ソ
ースオペランドが先行して実行している命令で書換えが
行なわれているか否かを確認するために、ソースオペラ
ンドを示すレジスタ番号に対応するスコアーボードのビ
ットを読み出す。もしセットされていたら、先行して実
行中の命令での書換えが完了していないことを示すの
で、後続命令の演算の開始を待つ。スコアーボードのビ
ットがリセットされていたら、先行して実行中の命令は
ソースオペランドを書き換えることはないので、又は後
続命令が演算の開始を待つた結果、先行して実行中の命
令での書換えが完了したことを示すので、後続命令の演
算の開始を行なうことができる。
【0004】図16は先行命令の完了を後続命令が待つ
場合であり、この場合は、正しいデータを後続命令が読
み出すことができる。後続命令は書込みオペランドが、
先行して実行されている命令で書換えが行われているか
どうか確認するために、書込みオペランドを示すレジス
タ番号に対応するスコアーボードのビットを読み出す。
もしセットされていたら、先行して実行中の命令での書
換えが完了していないことを示すので、後続命令の演算
の開始を待つ。スコアーボードのビットがリセットされ
ていたら先行して実行中の命令は書込みオペランドを書
き換えることはないので、又は、後続命令が演算の開始
を待つた結果、先行して実行中の命令での書換えが完了
したことを示すので、後続命令の演算の開始を行うこと
ができる。
【0005】図17は先行命令の完了を後続の命令が待
たない場合である。書込み完了を待たなかった場合に書
込みの順序が保証されず、データの相互関係を正しく処
理できない場合があることを示している。この例では3
番目のADD命令は2番目のADDの結果を読むことを期待し
ているが、2番目のADD命令の書込み完了の後で同じレ
ジスタに書込むLOAD命令の結果を読み出してしまい、誤
った結果を出す。
【0006】スコアーボードにセットするということ
は、レジスタの値を読み出せない(又は書き込めない)
ということを意味する。ところが加算命令のような基本
命令の多くはEステージは1τで終了し、かつバイパス
機能によってEステージに生成された結果を後続命令は
ソースオペランドとして読み出すことができる。またE
ステージが1τで終了する命令は後続の命令に追い越さ
れて図17のように誤った動作をする可能性はない。従
って加算命令のような基本命令(即ち、1フローで実行
でき、かつEステージは1τしか実行にかからない、最
も実行時間の少ない命令)はスコアーボードのセット/
リセットを行わなくてもデータの相互干渉は保証され
る。図16及び図17でADD命令ではスコアーボードの
値が変化していないのはこのためである。
【0007】以下に割り込みがあった場合のスコアーボ
ードの処理を説明する。図17に示す例においてLOAD命
令の実行中にADD命令がEステージでオーバーフロー割
り込みを発生した場合を考える。この割り込みは結果を
レジスタに書いてから(即ち、命令の完了をしてから)
割り込み処理に入るので、先行するLOAD命令は完了して
その実行結果は保証しなくてはならない。例えば以下の
2つの方法がある。即ち、 (1) LOAD命令の終了を待って割り込み処理プログラ
ムを実行する。
【0008】(2) LOAD命令の終了を待たずに、割り
込み処理プログラムを実行するが、LOAD命令で書き換え
られるレジスタを読み書き(アクセス)しようとした場
合は、先に示したスコアボードによる方法によりLOAD命
令の終了を待ってレジスタをアクセスする。しかし、何
れの場合も次に示すように正しい動作が保証されない場
合がある。
【0009】図18は割り込みでSCBが不正になる場合
である。図18ではLOAD命令のメモリアドレスがアドレ
ス整列例外(即ち、読出しデータが4バイトデータなの
にアドレスが4バイトで割り切れない等、アドレスがデ
ータの大きさの整数倍になっていない場合をいう)を発
生した例である。前に示したようにSCBはEステージの
前半でセットされるので、命令が割り込みによって取り
消しを受けたのにSCBはセットされてしまう。このまま
では次にgr4をアクセスした時にレジスタ書き込み待ち
になり、ハングアップすることになる。即ち、割り込み
によってSCBに矛盾が起こり正しいレジスタ干渉制御が
できなくなってしまう。
【0010】本発明の目的は、割り込みがあった場合に
もスコアボードの値を矛盾のない状態にして正しいレジ
スタ干渉制御を可能とし、さらにレジスタ書込みまでに
非常に長い時間のかかる演算装置がある場合にも、割り
込み応答性を損うことがないようにしたスコアボード制
御を有するパイプライン処理計算機を提供することにあ
る。
【0011】
【課題を解決するための手段】図1は本発明によるスコ
アボード制御を適用したパイプライン処理装置の要部構
成図である。本発明は、先行して実行する命令と、後続
して実行する命令の間のデータの依存関係を検出するデ
ータ依存検出手段をスコアーボードによって行い、検出
されたデータの依存関係をパイプラインのインターロッ
クで保証するパイプライン処理計算機であって、割り込
みを発生した命令に先行して既に実行を開始していた命
令の完了を待つとともに、全てのスコアーボードの使用
中を示すレジスタビットを未使用状態にリセットし、割
り込みがあったときもデータの依存関係を保証可能とし
たことを特徴とする。
【0012】また、先行して実行する命令と、後続して
実行する命令の間のデータの依存関係を検出するデータ
依存検出手段をスコアーボードによって行い、検出され
たデータの依存関係をパイプラインのインターロックで
保証するパイプライン処理計算機であって、使用中にし
たスコアーボードビットの情報を保持するスコアボード
セット記憶手段を備え、割り込みが発生したとき、割り
込みを発生した命令に先行して既に実行を開始していた
命令の完了を待つとともに、誤って使用中にされたスコ
アーボードの使用中を示すレジスタビットを、前記スコ
アボードセット記憶手段からのどのスコアボードビット
を使用中にしたかを示すスコアーボードセットアドレス
信号と、スコアボードを誤って使用中にしたことを示す
スコアーボードセット無効信号により、スコアボードを
未使用状態にリセットすることによって、割り込みがあ
ったときもデータの依存関係を保証可能とする。
【0013】さらに、スコアーボードセットアドレス信
号と、レジスタファイルへの書込みレジスタ番号を示す
レジスタ書込みアドレスと、セレクタ選択信号とを入力
し、スコアボードのリセットアドレスを選択するスコア
ボードリセットアドレス選択手段と、スコアーボードセ
ット無効信号と、レジスタファイルの書込み制御を行う
レジスタ書込みイネーブルと、セレクタ選択信号とを入
力し、スコアボードのリセットイネーブル信号を選択す
るスコアボードリセットイネーブル選択手段を備え、割
り込みを発生したとき、割り込みを発生した命令に先行
して既に実行を開始していた命令の完了を待つと共に、
待った後で前記セレクタ選択信号をアサートすることに
より、誤って使用中にされたスコアーボードの使用中を
示すレジスタビットを、セレクタ選択信号により選択さ
れたスコアーボードセットアドレスとスコアーボードセ
ット無効信号によってを未使用状態にリセットする。
【0014】さらに、命令によって書き込まれるレジス
タ情報を保持する書込みレジスタ情報保持手段を有する
動作ブロックを備え、スコアボードセット記憶手段が使
用中にしたスコアーボードビットの情報を失った後で前
記動作ブロックにて割り込み発生した時には、前記書込
みレジスタ情報保持手段の情報を使用してスコアボード
を未使用状態にリセットすることにより、割り込みがあ
ったときもデータの依存関係を保証可能とする。
【0015】さらに、前記スコアーボードセットアドレ
ス信号と、前記レジスタ書込みアドレスと、前記セレク
タ選択信号とを入力し、スコアボードのリセットアドレ
スを選択するスコアボードリセットアドレス選択手段
と、前記スコアーボードセット無効信号と、レジスタフ
ァイルの書き込み制御を行なうレジスタ書き込みイネー
ブルと、セレクタ選択信号を入力し、スコアボードのリ
セットイネーブル信号を選択するスコアボードリセット
イネーブル選択手段とを備え、割り込みが発生したと
き、割り込みを発生した命令に先行して既に実行を開始
していた命令の完了を待ち、完了を待った後に前記セレ
クタ選択信号をアサートすることによって、誤って使用
中にされたスコアーボードの使用中を示すレジスタビッ
トを、セレクタ選択信号によって選択されたスコアーボ
ードセットアドレスとスコアーボードセット無効信号に
より、未使用状態にリセットする。
【0016】さらに、本発明は割り込みが検出された時
に、前記割り込みに先行して既に実行を開始していたと
きに、命令の完了を待たずに割り込み処理プログラムの
実行を開始する非シリアライズ処理が可能なパイプライ
ン処理計算機であって、割り込みが検出された時に、命
令に先行して実行を開始している非シリアライズ命令以
外の全ての命令の実行を完了を待つとともに、全てのス
コアーボードの使用中を示すレジスタビットを未使用状
態にリセットし、前記未使用状態にリセットした後に、
非シリアライズ命令が書込みを行なうレジスタに対応し
たスコアボードビットを使用中に再設定することを特徴
とする。
【0017】さらに、スコアボードをセットする信号
と、リセットする信号を選択するスコアボードセット情
報選択手段と、前記スコアボードセット情報選択手段の
出力によってスコアボードをセットすることが可能なス
コアボード手段を備え、全てのスコアーボードの使用中
を示すレジスタビットを未使用状態にリセットした後
に、非シリアライズ命令が書込みを行なうレジスタに対
応したスコアボードビットを使用中に再設定する時に、
非シリアライズ命令が終了した時にスコアボードを未使
用状態にリセットするための信号線と同じ信号線を使用
してスコアボード再設定情報を送り、前記スコアボード
セット情報選択手段がリセットのための信号を選択する
ことにより、スコアボード再設定情報に基づきスコアボ
ードの再設置を行う。
【0018】
【作用】本発明の第1の解決法 第1の解決法は割り込み発生時に全てのSCBをリセット
することによって、誤ってセットしたSCBをリセットす
るとともに、割り込みに先行して実行を開始した全ての
命令の終了を待ってから次の命令(割り込み処理プログ
ラム)の実行を開始する。
【0019】第2の解決法 正しくないSCBのセットをしたレジスタ番号などを保持
しておき、割り込み発生時に誤ってセットしたSCBをリ
セットするとともに、割り込みに先行して実行を開始し
た全ての命令の終了を待ってから次の命令(割り込み処
理プログラム)の実行を開始する。
【0020】割り込みに先行して既に実行を開始した全
ての命令の終了を待つのは、割り込み時にはプロセッサ
の特権/ユーザモードなどが変化しても、ユーザモード
で発行した命令の結果はユーザモードのレジスタに書き
込むなど、もとのモードの動作と同一である必要がある
が、割り込みに先行して実行を開始した全ての命令の終
了を待たない場合はこのための制御が複雑になるためで
ある。
【0021】ここで、新たな問題とその解決の指針につ
いて以下に説明する。割り込みがあった場合のスコアー
ボードの処理は、前述の第一の解決法で示したように、
書込みを行う全ての命令の完了を待ち、全てのスコアボ
ードビットをリセットすることによって矛盾のない制御
を行う。これは、書込みを行なう全ての命令の完了を待
つだけでは、割り込みで取り消された命令や、割り込み
発生によってレジスタ書込みを抑止された命令によって
スコアボードビットがセットされたままになってしまう
ため、全てのSCBをリセットしている。
【0022】また、割り込みが発生したときに、書込み
を行う全ての命令の完了を待つと、以下のような場合に
は割り込みの応答性が悪くなってしまう。即ち、ベクト
ル処理を行うようなコプロセッサを接続した構成の場合
であり、コプロセッサの命令キュウに命令が詰まってお
り、その最後に汎用レジスタを書き換える命令がある場
合、先の方法では長い実行時間を要するベクトル処理命
令を数命令実行して初めて割り込みの処理を開始でき
る。例えばベクトルの長さが500で5命令キュウに溜
っている場合、凡そ2500τ後に初めて割り込み処理
が開始されることになる。
【0023】このように割り込み応答性が悪いので、ベ
クトル処理を行なうようなコプロセッサは、レジスタ書
込みを待たずに割り込み処理を行なう必要がある。しか
しデータの依存関係を保証するためには、命令の終了を
待たずに割り込み処理プログラムを実行しても、コプロ
セッサ命令で書き換えられるレジスタを読み書き(アク
セス)しようとした場合は、コプロセッサ命令の終了を
待ってレジスタをアクセスするように制御しなくてはな
らない。従って、コプロセッサが書き換えるレジスタは
割り込み処理プログラムで使用しない(セーブもしな
い)ようにし、高速な割り込み処理が実現する。
【0024】第3の解決法 前述の第2の解決法では、割り込み時にすべてのSCBを
リセットしなくてもSCBの正当性が保証できるように制
御している。即ち、正しくないSCBをセットをしたレジ
スタ番号などを保持しておき、割り込み発生時に間違っ
てセットしたSCBをリセットするとともに、割り込みに
先行して実行を開始したコプロセッサ命令以外の全ての
命令の終了を待ってから次の命令(割り込み処理プログ
ラム)の実行を開始するので、第2の方法では新たな問
題点(即ち、長いベクトル命令待ち)はない。それに対
して第1の方法は対策が必要であるが、これはマーカ部
により解決を図っている。
【0025】
【実施例】各ステージの動作 以下に各ステージでの処理の概要を説明する。 〔命令デコードステージ〕命令デコード、レジスタ読み
出し以外に、命令をデコードしてスコアーボードの更新
を必要とする命令であることをデコードする。命令をデ
コードして検出できる割り込み要因を検出する。デコー
ドした結果/割り込み要因をパイプライン・タグに保持
し以後のステージで使用する。
【0026】書込みレジスタ番号に対応するスコアーボ
ードのビットを検出する。もしセットされていたら命令
デコードステージでインターロックする。読出しレジス
タ番号に対応するスコアーボードのビットを検出する、
もしセットされていたら命令デコードステージによりイ
ンターロックする。
【0027】〔演算ステージ〕演算実行以外に、演算ス
テージを実行中の命令がスコアーボードの更新を必要と
する命令であったら、書込みレジスタ番号に対応するス
コアーボードのビットをセットする。そして演算結果な
どから検出できる割り込み要因を検出する。いずれかの
割り込み要因があった場合は、割り込み制御回路にハー
ドウエア割り込み処理の開始を指示する。また特権命令
違反などのように実行を中止しなくてはならないような
割り込みの場合は、レジスタ書込み信号を抑止し、書込
みステージでレジスタの値が変更されないようにする。
【0028】〔書込みステージ〕演算ステージで得られ
た結果をレジスタに書き込むなどの処理以外に、書込み
ステージを実行中の命令がスコアーボードの更新を必要
とする命令であったら、書込みレジスタ番号に対応する
スコアーボードのビットをリセットする。
【0029】従来のデータ処理装置の動作 図6は演算ブロック及びレジスタファイルである。本装
置は4則演算/論理演算などを行うALUと、整数乗算
器と、メモリアクセス、ロードストア命令を行うデータ
キャッシュブロックを備え、本装置により、演算などの
ソースオペランドの読出し、演算結果などの書込みを行
う。なお、図中、一部のレジスタにクロックが入力され
ていないが、これは図面を簡素化するためであり、実際
には全てのレジスタにクロックが入力される完全な同期
回路で構成されている。
【0030】ALUで計算する命令を実行する場合は、
1つの演算ステージで結果が生成される。その演算ステ
ージでレジスタファイルの前の選択回路はALUの出力
を(図で一番上の信号)選択し、ALUの結果はパイプ
ラインレジスタ(E-W-ADR,E-WE)に保持されている書込み
レジスタアドレスとレジスタ書込み制御信号によって書
込みステージでレジスタファイルに書き込まれる。
【0031】整数乗算命令を実行する場合は、複数の演
算ステージで結果が生成される。従ってレジスタファイ
ルに対する書込みは演算の終了を待って整数乗算によっ
て制御される。選択回路は整数乗算回路/整数乗算制御
回路の出力を(図の中央の信号)選択し、整数乗算の結
果は整数乗算制御回路で生成された書込みレジスタアド
レスとレジスタ書込み制御信号によってレジスタファイ
ルに書き込まれる。
【0032】メモリアクセス命令を実行する場合、例え
ばロード命令の実行でキャッシュにミスヒットした場合
は、外部の主記憶などからのデータ転送を行なう必要が
ある。従って、レジスタファイルに対する書込みはキャ
ッシュがヒットしたことを確認した場合、又は外部の主
記憶などからのデータ転送が終了をしたことを待って制
御される。選択回路はキャッシュブロックの出力を(図
の一番下の信号)選択し、ロード命令の結果はキャッシ
ュ御回路で生成された書込みレジスタアドレスとレジス
タ書込み制御信号によってレジスタファイルに書き込ま
れる。
【0033】ALUで計算する命令がEステージで実行
中に抑止型の割り込みが検出された場合は、PIPE-CANCE
L 信号がアサートされ書き込みは抑止される。但し、割
り込みに先行して実行していた命令は抑止されないので
PIPE-CANCEL 信号によらない。整数乗算命令やメモリア
クセス命令が実行中に抑止型の割り込みが検出された場
合は、PIPE-CANCEL 信号がアサートされ、それぞれの制
御回路の中で書込みが抑止される。
【0034】図1のスコアーボードを使用したパイプラ
イン処理装置(データ処理装置)についてスコアーボー
ドの動作を説明する。命令をデコードした結果によって
読み出し、オペランドレジスタ番号(SRC-REG-ADR0, SRC
-REG-ADR1)、書込みオペランドレジスタ番号(DIST-REG-
ADR)が得られる。信号SRC-REG-ADR0及びSRC-REG-ADR1は
レジスタファイル(GR)の読出しレジスタアドレスに入力
され、ソースオペランドを読み出す。
【0035】読み出されたソースオペランドはオペラン
ドレジスタ(OP1,OP2)に保持される。オペランドレジス
タの出力は演算器に入力され演算が行われる。演算結果
と書込みレジスタ番号と書込み制御信号(DIST-REG-WE)
は、前に示したように演算(LOADも含む)の種類により
適当な制御によって、それぞれGRの書込みデータ、書込
みレジスタ番号及び書込み制御信号が入力され、演算結
果をGRに書き込む。
【0036】データの相互干渉がない場合は上記で示し
た動作を行うが、相互干渉がある場合は、以下のように
動作する。図2はスコアボードの一実施例構成図であ
り、図3はパイプライン制御回路の一例である。読出し
オペランドレジスタ番号(SRC-REG-ADR0, SRC-REG-ADR
1)、書込みオペランドレジスタ番号(DIST-REG-ADR)がス
コアーボードの読み出し、書込みレジスタ検出ポート(R
D0-CHK, RD1-CHK, WR-CHK)に入力される。(スコアボー
ドの詳細は図2で示す)RD0-CHK, RD1-CHK, WR-CHKは各
々がスコアーボード内の使用中/未使用を表すレジスタ
を選択する選択信号として使用されている。選択された
各信号(SRC0-REG-BUSY, SRC1-REG-BUSY, WRITE-REG-BUS
Y)はパイプライン制御回路に入力され(詳細は図3)、
デコードステージをインターロックするかどうかを決定
するために使用される。
【0037】もし、RC0-REG-BUSY, SRC1-REG-BUSY, WRI
TE-REG-BUSY 信号の何れかが使用中であることを示した
場合には、D-STAGE-RELEASE信号を抑止する。D-STAGE-R
ELEASE 信号はデコードステージを完了して、実行ステ
ージに進めることを示す制御信号である。従って、も
し、RC0-REG-BUSY及, SRC1-REG-BUSY, WRITE-REG-BUSY
信号のいずれかが使用中であることを示していた場合に
は、デコードステージでインターロックし、先行して実
行する命令の完了により、これから使おうとしているレ
ジスタが解放されるのを待つ。
【0038】上の状態でインターロックしている時に、
先行する命令が完了したときには使用中/未使用を表す
SCBレジスタがリセット(未使用状態を示す)される。
このレジスタ番号がこれから使おうとしているレジスタ
の番号と一致していた場合は、使用中のレジスタがある
ことを示していたRC0-REG-BUSY, SRC1-REG-BUSY, WRITE
-REG-BUSY 信号がネゲートされ、D-STAGE-RELEASE信号
の抑止が解除され実行ステージに遷移する。
【0039】このようにしてソースオペランドは先行命
令で書き換えられるのを待ち、最新のデータを読み出す
ことが実現されている。又は先行命令での書換え完了を
待って実行することによって結果の書込みの順序を保証
している。スコアーボードのセットは相互干渉の解決さ
れた場合(D-STAGE-RELEASE信号がアサートされる)に書
込みオペランドレジスタ番号(DIST-REG-ADR)で示された
スコアーボードのビットに対して行われる。
【0040】スコアーボードのリセットは、前にも示し
た演算ブロックのGRの書込み制御と同じタイミングで、
同じレジスタに対するスコアーボードのビットに対して
行なわれる。
【0041】本発明の第一の方法による割り込み発生時の動作 第1の解決法は割り込み発生時に全てのSCBをリセット
することによって、誤ってセットしたSCBをリセットす
るとともに、割り込みに先行して実行を開始した全ての
命令の終了を待ってから次の命令(割り込み処理プログ
ラム)の実行を開始する。
【0042】図4は一斉リセット機能付きスコアボード
の一実施例構成図である。一斉に全てのSCBビットをリ
セットすることが可能なSCB回路の実施例をに示す。す
べてのSCBのリセット入力にSCB-RESET-ALL信号がorされ
ていることによってSCB-RESET-ALL信号が"1"になったと
きに、すべてのSCBビットはリセットされる。割り込み
検出回路の概略は図1の一部に示されている。未定義命
令の検出などを命令デーコーダで行い、レジスタによっ
てタイミングを合わせ、Eステージに検出した割り込み
要因とorをして割り込み要因の検出をしている。この例
では全ての割り込みは命令を抑止するので、割り込み検
出信号がそのままレジスタなどの書込み制御信号を抑止
する信号(PIPE-CANCEL)として使用されている。演算の
オーバフロー/アンダーフローなどの場合は完了型の割
り込みなのでレジスタの書込み抑止はしない。
【0043】図5はアドレス整列例外検出回路の一例で
ある。未定義命令の検出は全ての未定義命令のコードの
パータンをORした回路で構成できることは明らかであ
る。Eステージに検出した割り込み要因の例としてメモ
リアクセス命令のアドレス整列例外を検出する回路の例
を示す。割り込みが発生したときに割り込みに先行して
実行を開始した全ての命令の終了を待つ回路のステート
遷移回路の例を図7に示す。
【0044】初期状態はS0のレジスタのみ"1"でそれ以
外は"0"とする。即ち、S0ステート状態にある。割り込
みが発生したらD-E-EXCPが"1"になり、S0ステートからS
1ステートに遷移する。図3で示されるようにS0ステー
ト以外ではD-STAGE-RELEASEがアサートされず命令の実
行は抑止される。S1ステートでは乗算命令の実行中を示
す信号(IMLT-SEQ)と、LOAD/STORE命令などメモリ/キャ
ッシュ操作の命令の実行中を示す信号(MEM-SEQ) とを入
力し、それらの信号が実行を終了することを示すまでS1
ステートの状態を保持し、実行を終了したらS2に遷移す
る。
【0045】S2ステートでは割り込まれた命令の処理を
再開できるようにPC(プログラムカウンタ)をOPC (割
り込みPC退避レジスタ)に転送する。S3では割り込み先
のアドレスをPCに転送し、S4で命令のフェッチの再開を
指示する。S4の後S0に遷移し、命令フェッチ回路が命令
のフェッチを終了すると、割り込みプログラムの実行が
開始される。
【0046】一斉に全てのSCBビットをリセットするの
はS0ステート以外ならいつでもよい。この例ではS4ステ
ートでSCB-RESET-ALL 信号"1"にして、すべてのSCBビッ
トをリセットしている。
【0047】本発明の第二の方法による割り込み発生時の動作 第2の解決法は割り込み発生時に間違ってセットしたSC
Bをリセットすることによって、誤ってセットしたSCBを
リセットするとともに、割り込みに先行して実行を開始
した全ての命令の終了を待ってから次の命令(割り込み
処理プログラム)の実行を開始する。
【0048】図8はスコアボード補正回路の一例であ
る。誤ってセットしたSCBビットを保持するレジスタ、S
CBリセットポートの前のセレクタ回路などを備えた回路
の例を示す。誤ってセットしたSCBのレジスタ番号を保
持するためのSCB-SET-ADR-REGと、割り込みによって命
令がキャンセルされてしまったために、誤ってセットさ
れたSCBビットがあることを保持するレジスタSCB-SET-C
ANCELEDがある。
【0049】これらはSCBセットと同じタイミングでセ
ットアドレスとSCBセット信号(ここではD-WE)を保持
する。抑止型の割り込みがなければ図3で示したパイプ
ライン制御回路によってE-STAGE-RELEASE信号がアサー
トされる。即ち、誤ったSCBセットではなかったことが
分かる。従って、このE-STAGE-RELEASE信号によってSCB
-SET-CANCELEDをリセットする。
【0050】パイプライン処理計算機では、このレジス
タのセットとリセットとが同時に起こるがセット優先と
する。抑止型の割り込みが発生したときにはE-STAGE-RE
LEASE信号がネゲートされる。従って、SCB-SET-CANCELE
Dはリセットされないので、最後にセットしたSCBのは間
違っていたことを正しく知ることができる。完了型の割
り込みが発生した場合は、もしSCBをセットしていたと
しても、汎用レジスタを書き換えて完了するのでSCBは
正しくリセットされる。
【0051】これでSCBをセットした命令がEステージ
でキャンセルした場合の対策はできたが、LOAD/STORE命
令などはEステージより後に割り込みを発生して、かつ
命令をキャンセルする場合がある。図16を使って説明
する。Eステージでオペランドアドレスの計算をし、C1
ステージでキャッシュ、キャッシュ・タグ、TLBを検
索する。C2ステージでTLBのチェックを行ないセグメ
ント例外などをを検出する場合がある。
【0052】このときには既にE-STAGE-RELEASE信号に
よってSCB-SET-CANCELEDはリセットされているので、SC
B-SET-CANCELEDなどを使ってSCBをリセットすることは
できない。この場合はキャッシュブロックで保持してい
るレジスタ書込み情報をもとにしてSCBをリセットす
る。キャッシュブロックはLOAD命令が実行中(キャッシ
ュミスした場合など)でも後続命令を実行できるよう
に、レジスタ書込み情報等を持っている。
【0053】図9は演算ブロック及びレジスタファイル
の他の例であり、図10はスコアボードを使用したパイ
プライン処理装置の要部構成図である。割り込みが発生
しない場合は、このレジスタ書込み情報に従って汎用レ
ジスタの書換えと、同時にSCBのリセットを行ってい
る。割り込みが発生した場合もレジスタ書込み情報に従
ってSCBのリセットのみを行えばよい。このためには従
来は汎用レジスタの書込み制御信号とSCBのリセット制
御信号は同一の信号でよかったが個別に必要になる。図
9にこのための信号SCB-WEが図示されている。また図1
0ではSCB-WE信号がSCBのリセットを制御していること
が示されている。SCB-WEはキャッシュブロックで生成さ
れ、図11にキャッシュブロックの一例を示す。
【0054】図9でSCB-WE信号の前にあるセレクタSEは
前に説明したセレクタと同じような動作を行なう。但
し、セレクタがALUを選択した時はどんな値を出力して
もよい。なぜならばALUを使用する命令はSCBをセットし
ないので、"0"を出力してリセットしないのは問題でな
く、また"1"を出力してリセットしても元々セットして
ないので問題はなく、またALUが実行を開始していると
いうことは他の演算器からもセットされていないのでリ
セットしても問題はない。この例では整数演算器が選択
された場合はGRの書き込み制御信号と同じものを出力す
る。これはLOAD命令のようなEステージより後に割り込
みを生じる場合がこの例ではないと仮定して回路が作ら
れているからである。
【0055】図11にキャッシュブロックの一例を示
す。TLB-HIT信号(TLBに登録されている論理アドレスが
E-OP-ADR と一致)が"1"でかつ、CHE-HIT信号(CHE-TAG
に登録されている物理アドレスがTLBに登録されている
物理アドレスと一致)が"1"でかつ、TLBのPIビット(ペ
ージが実メモリに存在していないことを示す)が"0"で
かつ、命令がLOAD命令の場合はLOAD命令がキャッシュに
ヒットしてデータをキャッシュからGRに書く場合であ
り、CHE-GR-WE を"1"にするとともに、CHE-SCB-WEも"1"
にして、GRへのデータの書き込みとともにSCBのリセッ
トを行なう。
【0056】TLB-HIT信号(TLBに登録されている論理ア
ドレスがE-OP-ADR と一致)が"1"でかつ、TLBのPIビッ
ト(ページが実メモリに存在していないことを示す)が
"1"でかつ、命令がLOAD命令の場合はページ不在例外が
発生する。この場合はLOAD命令は抑止しなければならな
いので、データをキャッシュからGRには書かないように
するためCHE-GR-WE は"0"にする。しかしレジスタの使
用中は解除するためにCHE-SCB-WEは"1"にしてSCBのリセ
ットを行なう。
【0057】図7はステート遷移回路の一例である。割
り込みが発生したときに割り込みに先行して既に実行を
開始した全ての命令の終了を待つ回路のステート遷移回
路の例を示す(第一の解決案法ものと同じ)。初期状態
はS0のレジスタのみ"1"でそれ以外は"0"とする。すなわ
ちS0ステート状態にある。割り込みが発生したらD-E-EX
CPが"1"になり、S0ステートからS1ステートに遷移す
る。
【0058】図3で示されるようにS0ステート以外では
D-STAGE-RELEASEがアサートされず命令の実行は抑止さ
れる。S1ステートでは乗算命令の実行中を示す信号(IML
T-SEQ)と、LOAD/STORE命令などメモリ/キャッシュ操作
の命令の実行中を示す信号(MEM-SEQ) とを入力し、それ
らの信号が実行を終了することを示すまでS1ステートの
状態を保持し、実行を終了したらS2に遷移する。
【0059】S2ステートでは割り込まれた命令の処理を
再開できるようにPC(プログラムカウンタ)をOPC (割
り込みPC退避レジスタ)に転送する。S3では割り込みさ
きのアドレスをPCに転送しS4で命令のフェッチの再開を
指示する。S4の後S0に遷移し、命令フェッチ回路が命令
のフェッチを終了すると、割り込みプログラムの実行が
開始される。
【0060】誤って、セットしたSCBビットをリセット
するためのリセットポートがスコアーボードに必要にな
る。当然、独立したポートを持ってもよいが、リセット
の前に割り込みに先行して実行を開始した全ての命令の
終了を待つ。従って、その後にSCBのリセットポートが
使用されることはないので、ポートの前にセレクタを付
けて、誤ってセットしたSCBのリセットを行なう。セレ
クタは前に示したSCB-MODIFY信号によって制御し、SCB-
MODIFY信号が"1"の時はSCB-SET-ADR-REG, SCB-SET-CANC
ELED を選択するようにする。
【0061】誤ってセットしたSCBビットをリセットす
るのはS2ステート以降ならいつでもよい。この例ではS4
ステートでSCB-MODIFY信号"1"にして、誤ってセットし
たSCBビットをリセットしている。また同時にCB-MODIFY
信号によってSCB-SET-CANCELEDをリセットして誤ったS
CBがないことを示すように構成されている。本例ではキ
ャッシュブロックを例にしたが、コプロセッサインター
フェイスなどがタイミングの遅い例外を発生した時に、
コプロセッサインターフェイスが保持しているレジスタ
書き込み情報を使って、SCBをリセットするというよう
な使用法も可能である。これについては後述する。
【0062】図19は非同期実行しないパイプラインで
ある。LOAD命令の実行中は後続の命令が実行開始(非同
期実行)しないようなパイプライン構造にした場合をMI
PSのR3000で採用されたパイプラインを例にして説明す
る。このパイプラインではADD命令のようにキャッシュ
アクセスステージを必要としない命令でも必ずCステー
ジを使用する。
【0063】上の例で1つ目のLOAD命令がCステージで
例外を検出した場合は、誤って2つのSCBがセットされ
ている。従って、誤ってSCBセットを記憶するレジスタ
類は2組必要になる。図12にこの回路の一例を示す。
A及びBはSCB-SET-ADR-REGであり、C及びDがSCB-SET
-CANCELEDである。SCB-SET-ADR-REGのAは最後にセット
したSCBの場所を、Bはその前にセットしたSCBの場所を
記憶している。
【0064】SCB-SET-CANCELEDのCはEステージを実行
している命令がSCBをセットしたかどうかを保持してい
る。従ってGRの書込みがある場合にセットされ、Eステ
ージが終了する(E-STAGE-RELEASE) とリセットされる。
また割り込み時(図7のS3-STAGE信号)にSCBをリセット
すると同時にCはリセットされる。SCB-SET-CANCELEDの
DはCステージを実行している命令がSCBをセットした
かどうかを保持している。従ってEステージに実行して
いた命令がSCBをセットした命令であってEステージを
終了した場合にセットされ、Cステージが終了する(C-S
TAGE-RELEASE) とリセットされる。また割り込み時(図
7のSCB-MODIFY信号)にSCBをリセットすると同時にCは
リセットされる。
【0065】最大2つの誤ったSCBを元に戻すためにSCB
の前にあるセレクタは3入力セレクタになっており、S3
STAGE信号によってCB-SEY-ADR-REGのAとSCB-SET-CANCE
LEDのCを選択し、Eステージを実行していた命令がSCB
をセットしたのに割り込みでキャンセルされたために矛
盾しているSCBをリセットする。またSCB-MODIFY信号に
よってCB-SEY-ADR-REGのBと、SCB-SET-CANCELEDのDを
選択し、Cステージを実行していた命令がSCBをセット
したのに割り込みでキャンセルされたために矛盾してい
るSCBをリセットする。
【0066】さらに、図15は演算ブロック及びレジス
タファイルのさらに他の例である。本図では図9の整数
乗算制御回路をコプロセッサ制御回路に代えた演算ブロ
ック及びレジスタファイル構成を示す。データキャッシ
ュブロックはメモリアクセスを行なうロード/ストア命
令を行う。物理的にはコプロセッサは演算ブロックとは
別のLSIとして実装されている場合がある。レジスタフ
ァイルは演算などのソースオペランドの読み出し、演算
結果などの書込みを行う。
【0067】ALUで計算する命令を実行する場合は、
1つの演算ステージで結果が生成される。その演算ステ
ージでレジスタファイルの前の選択回路はALUの出力
を(図で一番上の信号)選択し、ALUの結果はパイプ
ラインレジスタ(E-W-ADR, E-WE)に保持されている書込
みレジスタアドレスとレジスタ書込み制御信号によって
書込みステージでレジスタファイルに書き込まれる。
【0068】コプロセッサ命令を実行する場合は、複数
の演算ステージの後に結果が生成される。レジスタファ
イルに対する書込みを行うコプロセッサ命令は、演算の
終了を待ってコプロセッサ制御部によって制御される。
選択回路はコプロセッサ回路/コプロセッサ制御回路の
出力を選択し、コプロセッサ演算の結果はコプロセッサ
制御回路に保持された書込みレジスタアドレスとコプロ
セッサ制御回路により、コプロセッサ命令をデコードす
ることにより生成されたレジスタ書き込み制御信号によ
ってレジスタファイルに書き込まれる。
【0069】書込みレジスタアドレス保持回路を他の演
算器などと共用しているとレジスタ書込みを行なうコプ
ロセッサ命令が動作中の(又はコプロセッサ命令キュー
に入っている)場合に、後続命令が実行できくなってし
まうので、コプロセッサ制御部などに書込みレジスタア
ドレス保持回路を(図示せず)独立して持つ。メモリア
クセス命令を実行する場合、例えばロード命令の実行で
キャッシュにミスヒットした場合は、外部の主記憶など
からのデータ転送を行う必要がある。従ってレジスタフ
ァイルに対する書込みはキャッシュがヒットしたことを
確認した場合、又は外部の主記憶などからのデータ転送
が終了をしたことを待って制御される。選択回路はキャ
ッシュブロックの出力を(図で一番下の信号)選択し、
ロード命令の結果はキャッシュ御回路で生成された書込
みレジスタアドレスとレジスタ書込み制御信号によって
レジスタファイルに書き込まれる。
【0070】ALUで計算する命令がEステージで実行
中に抑止型の割り込みが検出された場合はPIPE-CANCEL
信号がアサートされ書き込みは抑止される。ただし割り
込みに先行して実行していた命令は抑止されないのでPI
PE-CANCEL 信号によらない。メモリアクセス命令を実行
中に、メモリアクセス命令が抑止型の割り込みを検出し
た場合はPIPE-CANCEL 信号がアサートされ後続命令の書
込みを抑止するとともに、メモリアクセス命令自身の書
き込みはメモリアクセス制御回路の中で抑止する。
【0071】図13はスコアボードの他の実施例構成図
である。前述のように、読出しオペランドレジスタ番号
(SRC-REG-ADR0, SRC-REG-ADR1)、書込みオペランドレジ
スタ番号(DIST-REG-ADR)がスコアーボードの読み出し、
書込みレジスタ検出ポート(RD0-CHK, RD1-CHK, WR-CHK)
に入力される。スコアボードの詳細を示す。さらに、本
発明の他の例の割り込み発生時の動作を以下に説明す
る。割り込み発生時に全てのSCBをリセットすることに
よって、誤ってセットしたSCBをリセットするととも
に、割り込みに先行して実行を開始したコプロセッサ命
令以外の全ての命令の終了を待ってから次の命令(割り
込み処理プログラム)の実行を開始する。
【0072】一斉に全てのSCBビットをリセットするこ
とが図13のSCB回路では可能になっている。全てのSCB
レジスタのリセット入力にSCB-RESET-ALL信号がORされ
ていることによってSCB-RESET-ALL信号"1"になったとき
に、すべてのSCBビットはリセットされる。未定義命令
の検出などを命令デーコーダで行い、レジスタによって
タイミングを合わせEステージに検出した割り込み要因
とORをして割り込み要因の検出をしている。この例では
全ての割り込みは命令を抑止するので、割り込み検出信
号がそのままレジスタなどの書込み制御信号を抑止する
信号(PIPE-CANCEL)として使用されている。演算のオー
バフロー/アンダーフローなどの場合は完了型の割り込
みな(オーバフローした演算の結果をレジスタに書き込
む)のでレジスタの書き込み抑止はしない。
【0073】前述のように、未定義命令の検出は全ての
未定義命令のコードのパタンをORした回路で構成できる
ことは明らかである。Eステージに検出した割り込み要
因の例としてメモリアクセス命令のアドレス整列例外を
検出する回路の例を図5に示す。図14はステート遷移
回路の他の例である。割り込みが発生したときに割り込
みに先行して実行を開始したコプロセッサ命令以外の全
ての全ての命令の終了を待つステート遷移回路の例を示
す。 初期状態はS0のレジスタのみ"1"でそれ以外は'0'
とする。即ちS0ステート状態にある。割り込みが発生し
たらD-E-EXCPが"1"になり、S0ステートからS1ステート
に遷移する。図5に示すようにS0ステート以外ではD-ST
AGE-RELEASEがアサートされず命令の実行は抑止され
る。
【0074】S1ステートでは乗算命令の実行中を示す信
号(IMLT-SEQ)と、LOAD/STORE命令などメモリ/キャッシ
ュ操作の命令の実行中を示す信号(MEM-SEQ) とを入力
し、それらの信号が実行を終了することを示すまでS1ス
テートの状態を保持し、実行を終了したらS2に遷移す
る。またS1ステートではSCB-RESET-ALL信号"1"にして、
全てのSCBビットをリセットしている。
【0075】S2ステートでは割り込まれた命令の処理を
再開できるようにPC(プログラムカウンタ)をOPC (割
り込みPC退避レジスタ)に転送する、またコプロセッサ
制御部に保持されたレジスタ書込みアドレスと書込み制
御信号を使ってスコアボードの再設定を行なう。本例で
は書込みアドレスと書込み制御信号を通常の書込みの場
合と同じ信号線を使って送っている。そしてスコアボー
ドブロック(図13)の中でWR-SET信号とWR-RES(書込
みアドレス信号)またDWE とW-WEをセレクタで切替えて
いる。
【0076】セレクタSEはS2ステートではSCB-RESTORE
信号がアサートされているのでコプロセッサ制御部から
送られた書込みアドレスと書込み制御信号を使用して再
設定(セット)を行うことができる。このとき同時にリ
セットされないようにするためには、セット/リセット
レジスタの構成をセット優先にするか、リセット側の(4
to 16)デコーダの出力がアサートされないように(W-WE
と同じように)SCB-RESTOREの反転信号とデコーダの出
力をANDなどでゲートすればよいことは明らかである。
【0077】S3では割り込み先のアドレスをPCに転送し
S4で命令のフェッチの再開を指示する。S4の後にはS0に
遷移し、命令フェッチ回路が命令のフェッチを終了する
と、割り込みプログラムの実行が開始される。スコアボ
ードの再設定は書込みレジスタの数だけ行なう必要があ
る。この例では1つであるが、2つのレジスタが書込み
予約される場合は、さらにS3ステートを使用して、S3ス
テートにレジスタアドレスと書込み制御信号を転送し、
S3ステートに切り替わるセレクタを使用して、スコアボ
ードの再設定を行えばよい。それ以上のレジスタ書込み
には、ステートを増やし同様な手法で解決できることは
明らかである。
【0078】
【発明の効果】以上説明したように、本発明の2つの解
決法により割り込みがあった場合にもスコアボードの値
を矛盾のない状態にし、正しいレジスタ干渉制御を行う
ことが可能である。さらに、1つの解決法によりレジス
タ書き込みまでに非常に長い時間のかかる演算装置があ
る場合にも、割り込み応答性を損なうことなく、正しい
レジスタ干渉制御が可能である。
【図面の簡単な説明】
【図1】本発明のスコアボード制御を適用するパイプラ
イン処理装置の要部構成図である。
【図2】スコアボードの一実施例構成図である。
【図3】パイプライン制御回路の一例である。
【図4】一斉リセット機能付きスコアボードの一実施例
構成図である。
【図5】アドレス整列例外検出回路の一例である。
【図6】演算ブロック及びレジスタファイルの一例であ
る。
【図7】ステート遷移回路の一例である。
【図8】スコアボード補正回路の一例である。
【図9】演算ブロック及びレジスタファイルの他の例で
ある。
【図10】スコアボードを使用したパイプライン処理装
置の要部構成図である。
【図11】キャッシュブロックの一例である。
【図12】スコアボード補正回路のの他の例である。
【図13】スコアボードの他の実施例構成図である。
【図14】ステート遷移回路の他の例である。
【図15】演算ブロック及びレジスタファイルのさらに
他の例である。
【図16】先行命令の完了を後続命令が待つ場合の説明
図である。
【図17】先行命令の完了を後続命令が待たない場合の
説明図である。
【図18】割り込みでスコアボードが不正になる場合の
説明図である。
【図19】非同期実行しないパイプラインの説明図であ
る。
【符号の説明】
GR…汎用レジスタ SCB…スコアボード SEL…セレクタ DEC…デコーダ ALU…演算ブロック

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 先行して実行する命令と、後続して実行
    する命令の間のデータの依存関係を検出するデータ依存
    検出手段をスコアーボードによって行い、検出されたデ
    ータの依存関係をパイプラインのインターロックで保証
    するパイプライン処理計算機であって、 割り込みを発生した命令に先行して既に実行を開始して
    いた命令の完了を待つとともに、 全てのスコアーボードの使用中を示すレジスタビットを
    未使用状態にリセットし、 割り込みがあったときもデータの依存関係を保証可能と
    したことを特徴とするパイプライン処理計算機。
  2. 【請求項2】 先行して実行する命令と、後続して実行
    する命令の間のデータの依存関係を検出するデータ依存
    検出手段をスコアーボードによって行い、検出されたデ
    ータの依存関係をパイプラインのインターロックで保証
    するパイプライン処理計算機であって、使用中にしたス
    コアーボードビットの情報を保持するスコアボードセッ
    ト記憶手段を備え、 割り込みが発生したとき、割り込みを発生した命令に先
    行して既に実行を開始していた命令の完了を待つととも
    に、 誤って使用中にされたスコアーボードの使用中を示すレ
    ジスタビットを、前記スコアボードセット記憶手段から
    のどのスコアボードビットを使用中にしたかを示すスコ
    アーボードセットアドレス信号と、スコアボードを誤っ
    て使用中にしたことを示すスコアーボードセット無効信
    号により、スコアボードを未使用状態にリセットするこ
    とによって、 割り込みがあったときもデータの依存関係を保証可能と
    したことを特徴とするパイプライン処理計算機。
  3. 【請求項3】 前記スコアーボードセットアドレス信号
    と、レジスタファイルへの書込みレジスタ番号を示すレ
    ジスタ書込みアドレスと、セレクタ選択信号とを入力
    し、スコアボードのリセットアドレスを選択するスコア
    ボードリセットアドレス選択手段と、 前記スコアーボードセット無効信号と、レジスタファイ
    ルの書込み制御を行うレジスタ書込みイネーブルと、セ
    レクタ選択信号とを入力し、スコアボードのリセットイ
    ネーブル信号を選択するスコアボードリセットイネーブ
    ル選択手段を備え、 割り込みを発生したとき、割り込みを発生した命令に先
    行して既に実行を開始していた命令の完了を待つと共
    に、待った後で前記セレクタ選択信号をアサートするこ
    とにより、 誤って使用中にされたスコアーボードの使用中を示すレ
    ジスタビットを、セレクタ選択信号により選択されたス
    コアーボードセットアドレスとスコアーボードセット無
    効信号によってを未使用状態にリセットする請求項2に
    記載のパイプライン処理計算機。
  4. 【請求項4】 命令によって書き込まれるレジスタ情報
    を保持する書込みレジスタ情報保持手段を有する動作ブ
    ロックを備え、 スコアボードセット記憶手段が使用中にしたスコアーボ
    ードビットの情報を失った後で前記動作ブロックにて割
    り込み発生した時には、前記書込みレジスタ情報保持手
    段の情報を使用してスコアボードを未使用状態にリセッ
    トすることにより、 割り込みがあったときもデータの依存関係を保証可能と
    した請求項2に記載のパイプライン処理計算機。
  5. 【請求項5】 前記スコアーボードセットアドレス信号
    と、前記レジスタ書込みアドレスと、前記セレクタ選択
    信号とを入力し、スコアボードのリセットアドレスを選
    択するスコアボードリセットアドレス選択手段と、 前記スコアーボードセット無効信号と、レジスタファイ
    ルの書き込み制御を行なうレジスタ書き込みイネーブル
    と、セレクタ選択信号を入力し、スコアボードのリセッ
    トイネーブル信号を選択するスコアボードリセットイネ
    ーブル選択手段とを備え、 割り込みが発生したとき、割り込みを発生した命令に先
    行して既に実行を開始していた命令の完了を待ち、 完了を待った後に前記セレクタ選択信号をアサートする
    ことによって、 誤って使用中にされたスコアーボードの使用中を示すレ
    ジスタビットを、セレクタ選択信号によって選択された
    スコアーボードセットアドレスとスコアーボードセット
    無効信号により、未使用状態にリセットする請求項4に
    記載のパイプライン処理計算機。
  6. 【請求項6】 割り込みが検出された時に、前記割り込
    みに先行して既に実行を開始していたときに、命令の完
    了を待たずに割り込み処理プログラムの実行を開始する
    非シリアライズ処理が可能なパイプライン処理計算機で
    あって、 割り込みが検出された時に、命令に先行して実行を開始
    している非シリアライズ命令以外の全ての命令の実行を
    完了を待つとともに、 全てのスコアーボードの使用中を示すレジスタビットを
    未使用状態にリセットし、 前記未使用状態にリセットした後に、非シリアライズ命
    令が書込みを行なうレジスタに対応したスコアボードビ
    ットを使用中に再設定することを特徴とするパイプライ
    ン処理計算機。
  7. 【請求項7】 スコアボードをセットする信号と、リセ
    ットする信号を選択するスコアボードセット情報選択手
    段と、 前記スコアボードセット情報選択手段の出力によってス
    コアボードをセットすることが可能なスコアボード手段
    を備え、 全てのスコアーボードの使用中を示すレジスタビットを
    未使用状態にリセットした後に、非シリアライズ命令が
    書込みを行なうレジスタに対応したスコアボードビット
    を使用中に再設定する時に、非シリアライズ命令が終了
    した時にスコアボードを未使用状態にリセットするため
    の信号線と同じ信号線を使用してスコアボード再設定情
    報を送り、 前記スコアボードセット情報選択手段がリセットのため
    の信号を選択することにより、スコアボード再設定情報
    に基づきスコアボードの再設置を行う請求項6に記載の
    パイプライン処理計算機。
JP5026845A 1993-02-16 1993-02-16 パイプライン処理計算機 Withdrawn JPH06242948A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5026845A JPH06242948A (ja) 1993-02-16 1993-02-16 パイプライン処理計算機
EP93307302A EP0612012B1 (en) 1993-02-16 1993-09-16 A pipeline computer with scoreboard
DE69327517T DE69327517T2 (de) 1993-02-16 1993-09-16 Pipeline-Rechner mit Anzeigetafel
US08/889,046 US6055625A (en) 1993-02-16 1997-07-07 Pipeline computer with a scoreboard control circuit to prevent interference between registers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5026845A JPH06242948A (ja) 1993-02-16 1993-02-16 パイプライン処理計算機

Publications (1)

Publication Number Publication Date
JPH06242948A true JPH06242948A (ja) 1994-09-02

Family

ID=12204616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5026845A Withdrawn JPH06242948A (ja) 1993-02-16 1993-02-16 パイプライン処理計算機

Country Status (4)

Country Link
US (1) US6055625A (ja)
EP (1) EP0612012B1 (ja)
JP (1) JPH06242948A (ja)
DE (1) DE69327517T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010500679A (ja) * 2006-10-27 2010-01-07 インテル・コーポレーション プロセッサ内のマルチスレッド間通信
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108769A (en) 1996-05-17 2000-08-22 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US6212626B1 (en) 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
EP1012707B1 (en) * 1997-08-06 2006-07-26 Advanced Micro Devices, Inc. A dependency table for reducing dependency checking hardware
US6266759B1 (en) * 1998-12-14 2001-07-24 Cray, Inc. Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor
US6430678B1 (en) * 1999-07-29 2002-08-06 International Business Machines Corporation Scoreboard mechanism for serialized string operations utilizing the XER
US6442675B1 (en) 1999-07-29 2002-08-27 International Business Machines Corporation Compressed string and multiple generation engine
JP3532835B2 (ja) * 2000-07-04 2004-05-31 松下電器産業株式会社 データ処理装置およびプログラム変換装置
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7246303B2 (en) 2002-03-25 2007-07-17 Intel Corporation Error detection and recovery of data in striped channels
US20050013251A1 (en) * 2003-07-18 2005-01-20 Hsuan-Wen Wang Flow control hub having scoreboard memory
US7080168B2 (en) * 2003-07-18 2006-07-18 Intel Corporation Maintaining aggregate data counts for flow controllable queues
US7324537B2 (en) * 2003-07-18 2008-01-29 Intel Corporation Switching device with asymmetric port speeds
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7324541B2 (en) * 2003-12-22 2008-01-29 Intel Corporation Switching device utilizing internal priority assignments
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
US20060095732A1 (en) * 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US20060179382A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Method and circuit for implementing array bypass operations without access penalty
US20070043930A1 (en) * 2005-08-16 2007-02-22 Hill Stephen J Performance of a data processing apparatus
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
US8504805B2 (en) * 2009-04-22 2013-08-06 Oracle America, Inc. Processor operating mode for mitigating dependency conditions between instructions having different operand sizes
US20100274961A1 (en) * 2009-04-22 2010-10-28 Golla Robert T Physically-indexed logical map table
US8335912B2 (en) * 2009-04-22 2012-12-18 Oracle America, Inc. Logical map table for detecting dependency conditions between instructions having varying width operand values
US8458444B2 (en) * 2009-04-22 2013-06-04 Oracle America, Inc. Apparatus and method for handling dependency conditions between floating-point instructions

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4903264A (en) * 1988-04-18 1990-02-20 Motorola, Inc. Method and apparatus for handling out of order exceptions in a pipelined data unit
JPH02301829A (ja) * 1989-05-17 1990-12-13 Mitsubishi Electric Corp 情報処理装置
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5251306A (en) * 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
JP2671160B2 (ja) * 1990-03-20 1997-10-29 富士通株式会社 例外処理方式
US5450555A (en) * 1990-06-29 1995-09-12 Digital Equipment Corporation Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
JPH04184534A (ja) * 1990-11-20 1992-07-01 Fujitsu Ltd プロセッサ
US5355457A (en) * 1991-05-21 1994-10-11 Motorola, Inc. Data processor for performing simultaneous instruction retirement and backtracking
JPH052482A (ja) * 1991-06-24 1993-01-08 Fujitsu Ltd データ処理装置
EP0547240B1 (en) * 1991-07-08 2000-01-12 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010500679A (ja) * 2006-10-27 2010-01-07 インテル・コーポレーション プロセッサ内のマルチスレッド間通信
US8261046B2 (en) 2006-10-27 2012-09-04 Intel Corporation Access of register files of other threads using synchronization
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信

Also Published As

Publication number Publication date
EP0612012B1 (en) 2000-01-05
DE69327517D1 (de) 2000-02-10
DE69327517T2 (de) 2000-10-12
US6055625A (en) 2000-04-25
EP0612012A1 (en) 1994-08-24

Similar Documents

Publication Publication Date Title
JPH06242948A (ja) パイプライン処理計算機
US5257354A (en) System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US6098167A (en) Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5913048A (en) Dispatching instructions in a processor supporting out-of-order execution
US5561774A (en) Parallel processing type processor system with trap and stall control functions
JPH04275628A (ja) 演算処理装置
JP2005050371A (ja) コンピュータシステム
JPH07281896A (ja) 情報処理装置
JPH0567971B2 (ja)
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
JPS6125169B2 (ja)
US5440703A (en) System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US5805906A (en) Method and apparatus for writing information to registers in a data processing system using a number of registers for processing instructions
US5666507A (en) Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing
KR102379886B1 (ko) 벡터 명령 처리
US6990569B2 (en) Handling problematic events in a data processing apparatus
JPH05181676A (ja) 並列処理型プロセッサシステム
JPH0384632A (ja) データ処理装置
JP2553728B2 (ja) 演算装置
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JPH0222413B2 (ja)
JPH0250259A (ja) ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置
JP2824484B2 (ja) パイプライン処理計算機

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000509