JP3400458B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3400458B2
JP3400458B2 JP52674896A JP52674896A JP3400458B2 JP 3400458 B2 JP3400458 B2 JP 3400458B2 JP 52674896 A JP52674896 A JP 52674896A JP 52674896 A JP52674896 A JP 52674896A JP 3400458 B2 JP3400458 B2 JP 3400458B2
Authority
JP
Japan
Prior art keywords
register
instruction
processing
memory
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP52674896A
Other languages
English (en)
Inventor
成弥 田中
光太郎 島村
哲也 下村
多加志 堀田
英雄 澤本
Original Assignee
株式会社 日立製作所
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 株式会社 日立製作所 filed Critical 株式会社 日立製作所
Application granted granted Critical
Publication of JP3400458B2 publication Critical patent/JP3400458B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline 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/3824Operand accessing
    • 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/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)

Description

【発明の詳細な説明】 技術分野 命令をパイプライン処理して実行する情報処理装置ま
たはデータ処理装置に係り、特に、短ラテンシ処理と長
ラテンシ処理を混在させて情報,データを処理する情報
処理装置またはデータ処理装置(以下、単に、情報処理
装置という)に関する。
背景技術 プログラムに従って、命令をパイプライン処理によっ
て実行する情報処理装置の命令制御での最大の制約は、
ソフトウエアで書かれた命令の実行順序を守るために命
令の処理順序を矛盾のないように実行しなければならな
いことである。
一般的なパイプライン処理を行う情報処理装置は、1
つの命令に対しておよそ3から5サイクルで命令の実行
を終了する基本パイプラインであり、1サイクルごとに
実行(以下、短ラテンシ処理と呼ぶ)可能なものであ
る。
しかし、上述の短ラテンシ処理だけでなく、割算や主
メモリアクセス等の複雑な処理又は時間のかかる処理
(以下、長ラテンシ処理と呼ぶ)を実行する命令も存在
するため、上記制約を常に満たすことは難しい。
そこで、パイプライン処理による処理時間の長短、つ
まり、短ラテンシ処理,長ラテンシ処理に関わらず上記
制約を満たすための方式が提案されている。
上記制約を守るため最も簡単な制御は、ある命令が基
本パイプライン以外の処理をしたとき、その後続の命令
はすべて先に進めなくする方法(インタロック方式)で
ある。
例えば、以下に示す命令列について説明する。
FDIV r6,r7,r8 …(1) FADD r1,r2,r3 …(2) FSUB r3,r4,r5 …(3) 命令(1)の実行サイクルが長い命令(長ラテンシ処
理命令)の場合、命令(2)以降の命令はすべてインタ
ロックする。
しかしながら、(2),(3)の命令は(1)の命令
と依存関係が無い場合に先に実行して性能を上げる方式
が知られている。
この技術は、命令(1)を実行中に後続命令が命令
(1)の依存関係にあるかどうかを検出する検出器を有
する。
この検出結果で、依存関係が無いときは先に実行する
が、依存関係があるときには依存関係のある命令の前ま
で実行し、依存関係のある命令でインタロックするよう
に制御する。
このような制御によって処理順序を矛盾なく守りなが
ら実行できる。
ここで、依存関係で特に重要なのは汎用レジスタの競
合関係である。
レジスタ競合を検出する代表的な方式は2つある。
1つの方法は各パイプラインごとの命令のレジスタ番
号とパイプライン投入予定の命令のレジスタ番号をそれ
ぞれ比較する方式である。
もう1つの方法はスコアボードを使用した方式であ
る。
スコアボードとはパイプライン処理中の命令のレジス
タ番号に対応して使用中であることを示すビットと、上
記ビットを1にする登録手段と上記ビットを0にする解
除手段とを持ち、パイプライン投入予定の命令のレジス
タに対応したビットが1であるか0であるかを比較する
ことによりレジスタ競合を検出するものである。
レジスタ番号を比較して、上述のインターロックする
方式の第1の従来技術として特開平5−298091号公報に
示されている。
これによると、ロード命令がメモリからデータの到着
を待つ間、後続命令とロード命令の間にレジスタ干渉が
無いときに、ロード命令の終了を待たずに後続演算命令
を実行する情報処理装置を開示している。
この第1の従来技術では、ロード命令が処理している
間保持するロード命令用レジスタ番号を設け、パイプラ
イン投入予定の命令とロード命令のレジスタのレジスタ
番号を比較器で比較することでレジスタ競合を検出す
る。
スコアボードを使用した方式の第2の従来技術として
特開平5−108348号公報に示されている。これによる
と、ロード命令がキャッシュミス(長ラテンシ処理)に
なった場合でも後続命令の不要な待ち時間を減らすよう
に後続演算命令を実行する。この第2の従来技術では、
ロード命令がパイプライン処理を始めるとスコアボード
に登録しロード命令が終了したとき解除することで、パ
イプライン処理中の命令のレジスタ番号に対応したビッ
トが1となりレジスタ競合を検出する。
次に、長ラテンシ処理の1つである主メモリアクセス
について、以下に説明する。
一般に、主メモリアクセスは400ns程度の時間を必要
とする。マシンサイクルが10nsとすると、そのラテンシ
は40サイクルとなり計算機(情報処理装置)の性能上の
ボトルネックになる。
そこで、主メモリアクセスをパイプライン化して主メ
モリアクセスを高速化する工夫が提案されている。
その1つとして、主記憶の性能向上のためにインタリ
ブ方式メモリと呼ばれる1語ごとにインタリブされた複
数のバンクからなるメモリを採用したメモリアクセスの
パイプライン方式が、第3の従来技術として、John L.H
ennessy,David A.Patterson著のコンピュータアーキテ
クチャの第8章「記憶階層の設計」に述べられている。
メモリバンクの目的は、連続的なアクセスを可能にす
ることと、複数の独立したアクセスを可能にすることで
ある。
しかしながら、バンクごとに独立したアクセスは、バ
ンクで処理中に後続の同一バンクアクセス要求がくると
バンクコンフリクトを発生し、後続アクセスを入力バッ
ファで待たせてしまう。
例えば、アクセス1,2,3,4と要求しても、アクセス1
とアクセス2がバンクコンフリクトすると完了順序はア
クセス1,3,4,2となる。
つまり、インタリブ方式メモリの出力は処理要求と完
了の順序性が保たれず、かつ、処理サイクルが可変とな
る。
このため、インタリブ方式のメモリを有する情報処理
装置(第3の従来技術)では、命令処理部からの命令実
行の要求順序とメモリ制御部からの命令実行の返答順序
を保証する構成が必要になる。つまり、出力バッファを
メモリ制御部に設け、アクセス3,4を予め保持し、アク
セス2の実行が終了した後に、アクセス3,4の順に命令
処理部へ返答するものである。
第1の従来技術では、保持するレジスタ番号が一杯に
なった状態で、後続命令にロード命令(長ラテンシ処
理)がくると、後続命令でインターロックしてしまい
(保持レジスタ競合)、パイプライン処理ができない、
つまり、保持するレジスタ番号の状態でパイプライン処
理ができないという第1の問題がある。
さらに、多くの命令をパイプライン処理させるために
保持するレジスタを複数にすると、それぞれのレジスタ
に与えられた複数のレジスタ番号とをそれぞれ比較する
複数の比較器を必要とし、物理量が著しく増加するとい
う第2の問題がある。
第2の従来技術では、パイプラインに投入された命令
により、すぐに、スコアボードに登録する方式なので、
分岐命令や割込み処理等でパイプライン処理が乱れロー
ド命令が無効化される時などに、各パイプライン処理の
状態を監視してスコアボードの状態を制御しなければな
らない、つまり、乱れを生じないパイプライン制御のた
めの制御論理が複雑になるという第3の問題がある。
第3の従来技術では、インタリブ方式のメモリを用い
るので、アクセス3,4の処理が完了しているにもかかわ
らず出力バッファでアクセス3,4を保持しているので、
命令処理部でアクセス3または4とパイプライン投入命
令との間でレジスタ競合が発生する場合がある。このよ
うな場合、メモリ制御部で命令実行の順序性を保証する
サイクル分、余分にインタロックするというオーバーヘ
ッドが生じるという第4の問題がある。
本発明の目的は、保持するレジスタ番号の状態に関わ
らず、パイプライン処理を実行するフルパイプライン化
した情報処理装置の提供にある。
本発明の他の目的は、多くの命令をパイプライン処理
する際にも物理量の増加を少なくした情報処理装置の提
供にある。
また、本発明の他の目的は、パイプライン制御を簡単
な制御理論によって達成する情報処理装置の提供にあ
る。
さらに、本発明の他の目的は、処理要求と処理完了の
順序性を保証しないで、処理サイクルが可変になる長ラ
テンシ処理の動作を保証し、レジスタ競合等によるオー
バーヘッドを減少する情報処理装置の提供にある。
発明の開示 本発明によれば、命令をn(nは1以上の整数)サイ
クルでパイプライン処理によって実行する短ラテンシ処
理を行う短ラテンシ処理部と、次に投入されてパイプラ
イン処理を行う後続命令と上記短ラテンシ処理部で処理
している短ラテンシ処理命令とのレジスタの競合を検出
するレジスタ競合検出部と、命令をm(mはnより大き
い整数)サイクルでパイプライン処理によって実行する
長ラテンシ処理を行う長ラテンシ処理部と、上記命令が
長ラテンシ処理であることを検出する長ラテンシ処理検
出部と、次に投入されていてパイプライン処理を行う後
続命令とK+1(Kはn<K<mを満たす整数)サイク
ルからmサイクルの期間で処理中の長ラテンシ処理命令
とのレジスタの競合を検出し、対応するレジスタが処理
のために使用しているか否かの情報を更新するレジスタ
競合スコアボードとを有し、命令が与えられると上記レ
ジスタ競合検出部は上記命令のKサイクルまでのレジス
タ競合を検出し、上記命令が長ラテンシ処理であること
を上記長ラテンシ処理検出部が検出すると(K+1)サ
イクルまでに上記レジスタ競合スコアボードにレジスタ
の使用を登録し、上記長ラテンシ処理の命令の実行終了
までのレジスタ競合を検出することを特徴とする。
また、本発明によれば、命令に従って内部記憶部に保
持されたデータを読み出しn(nは1以上の整数)サイ
クルでパイプライン処理し上記内部記憶部に格納する短
ラテンシ処理を行う命令処理部と、次に投入されてパイ
プライン処理を行う後続命令と上記命令処理部で処理し
ている短ラテンシ処理命令とのレジスタの競合を検出す
るレジスタ競合検出部と、命令に従って外部記憶部から
データの読み出しをm(mはnより大きい整数)サイク
ルでパイプライン処理し上記内部記憶部に格納する長ラ
テンシ処理を行うメモリ処理部と、上記命令が上記外部
記憶部からデータを読み出す長ラテンシ処理であること
を検出する長ラテンシ処理検出部と、次に投入されてパ
イプライン処理を行う後続命令とK+1(Kはn<K<
mを満たす整数)サイクルからmサイクルの期間で処理
中の長ラテンシ処理命令とのレジスタの競合を検出し、
対応するレジスタが処理のために使用しているか否かの
情報を更新するレジスタ競合スコアボードと、上記命令
処理部から上記メモリ処理部へデータを読み出すために
要求する要求信号,上記外部記憶部の格納位置を示す外
部記憶アドレス信号,内部記憶部の格納位置を示す内部
記憶アドレス信号と上記メモリ処理部から上記命令処理
部へ上記要求信号に応じる応答信号,上記外部記憶部に
保持されたデータを伝送するインターフェース部とを有
し、命令が与えられると上記レジスタ競合検出部は上記
命令のKサイクルまでのレジスタ競合を検出し、上記命
令が長ラテンシ処理であることを上記長ラテンシ処理検
出部が検出すると(K+1)サイクルまでに上記内部記
憶アドレスに対応する上記レジスタ競合スコアボードに
使用を登録し、mサイクル後に上記内部記憶アドレスに
対応する上記レジスタ競合スコアボードの使用を解除し
て、上記外部記憶部からデータを読み出す長ラテンシ処
理の命令の実行終了までのレジスタ競合を検出すること
を特徴とする。
第1のレジスタ競合検出器でパイプライン投入予定の
命令と全ての命令のnサイクルまでのレジスタ競合を検
出するので、長ラテンシ処理中以外のレジスタ競合が無
い期間パイプライン処理を次々に開始できる。
さらに、第2のレジスタ競合用スコアボードでパイプ
ライン投入予定の命令と(k+1)からmサイクルで命
令中の命令のレジスタ競合を検出するので、長ラテンシ
処理中のレジスタ競合が無い期間パイプライン処理を次
々に開始できる。
また、長ラテンシ処理同志であってもレジスタ競合が
なければパイプライン処理できる。
さらに、分岐命令や割込み処理等のパイプライン制御
が乱れる期間(1サイクルからKサイクル)ではレジス
タ競合検出部により、パイプライン制御が乱れない期間
(K+1サイクルからmサイクル)ではレジスタ競合ス
コアボードにより処理するので、物理量の増加を抑えな
がら、長ラテンシ処理のフルパイプライン化を簡単な制
御論理で実行できる。
また、インターフェース内の要求信号と応答信号は非
同期に処理され、返答信号の順序が変わるような長ラテ
ンシ命令であっても、長ラテンシ処理中のレジスタ競合
が無い期間パイプライン処理を次々に開始できる。
さらに、命令実行の順序性を保証しないインターフェ
ース部により、処理の終了した命令と命令制御部内のパ
イプライン処理へ投入する後続命令との間で、レジスタ
競合が生じていても余分なインターロックを行うことな
く、パイプライン処理のオーバーヘッドを減少させるこ
とができる。
図面の簡単な説明 第1図は科学技術計算用計算機の全体構成を示す図。
第2図は浮動小数点演算器の構成を示す図。
第3図は浮動小数点演算用レジスタの構成を示す図。
第4図は命令発行処理部内のレジスタ番号変換構成を
示す図。
第5図は浮動小数点用汎用レジスタ競合検出器を示す
図。
第6図は比較器を示す図。
第7図はメモリ制御部の構成を示す図。
第8図はスコアボードの構成を示す図。
第9図は本実施例の命令セットを示す図。
第10図はレジスタウインドのウインドポインタとの関
係動作を示す図。
第11図は命令処理部の基本動作とレジスタ競合動作を
示す図。
第12図は長ラテンシ処理実行中の基本動作を示す図。
第13図は長ラテンシ処理実行中のレジスタ競合動作を
示す図。
第14図は科学計算用計算機の全体構成を示す図。
第15図はメモリ制御部の構成を示す図。
第16図は長ラテンシ処理検出器を示す図。
第17図は科学計算用計算機の全体構成を示す図。
第18図はメモリ制御部の構成を示す図。
第19図は本発明の情報処理装置の概略を示す図。
第20図は本発明の4命令のスーパースカラ型のプロセ
ッサを示す図。
第21図は第18図の接続関係を示した図。
発明を実施するための最良の形態 第19図に本発明を用いた計算機の構成を示す。この計
算機は、例えば、科学技術計算用のものでも汎用的なも
のでもよい。
この計算機は、命令発行処理部110から命令制御112,
レジスタ競合検出部103,長ラテンシ検出部104に、150,1
51を介して命令を供給する。
命令の処理内容が短ラテンシ処理であると、命令制御
部112は制御信号157によって、短ラテンシ処理111を制
御して、汎用レジスタ113からデータを読み出し演算し
て汎用レジスタへデータを格納する。
また、命令の処理内容が長ラテンシ処理であると、命
令制御部112は制御信号160〜162によって、長ラテンシ
処理部102を制御して、汎用レジスタ113へデータを格納
する。
ここで、汎用レジスタは複数のデータを保持するもの
でもよく、その場合はそれぞれのデータを区別するため
にレジスタ番号が割り当てられている。また、ここでい
う汎用レジスタは、複数のレジスタからなるレジスタ群
でもよい。さらに、これら汎用レジスタをプロセッサ内
にある内部記憶部,プロセッサの外部にあるメインメモ
リ等を外部記憶部という。
短ラテンシ処理部と長ラテンシ処理部のそれぞれの処
理において、レジスタ競合が発生すると誤った演算を実
行することになるので、レジスタ競合検出部103は短ラ
テンシ処理の処理サイクル期間内のレジスタ競合を検出
する。
もし、競合が検出されれば、信号170によって命令発
行処理部110からの命令の発行を停止、または、待たせ
るように命令発行処理部を制御する。
スコアボード105は、短ラテンシ処理のサイクルを越
えて長ラテンシ処理のサイクル内でのレジスタの競合の
有無を検出するために、レジスタの使用情報を保持し、
更新するものである。
長ラテンシ検出部104は長ラテンシ処理を検出する
と、スコアボードに信号106を出力して、スコアボード
にレジスタの使用をセットする。ここで、このスコアボ
ードはレジスタ競合検出部と協調して動作するので、長
ラテンシ検出部は短サイクル処理が完了するまでにスコ
アボードへのセットを完了するように制御する。
スコアボードへセットされた後に、レジスタの競合が
発生すると、信号171を介して命令発行処理部110からの
命令の発行を止めて、誤演算しないようにする。
長ラテンシ処理が終了すると、長ラテンシ処理部102
はスコアボードへ信号163〜164によってレジスタの使用
情報をセットからリセット状態に更新する。
ここで、レジスタが複数ある場合は、レジスタ番号に
対応した使用情報をセット,リセットする。
長ラテンシ処理の際のレジスタ競合は、パイプライン
制御の乱れる可能性の高い短ラテンシサイクル内ではレ
ジスタ競合検出部によって、それ以降のパイプライン制
御の乱れることのないサイクル内ではスコアボードによ
って検出するように動作する。これによって、物理量を
小さく抑えながら、長ラテンシ処理のフルパイプライン
化を簡単な制御論理で高速に行うことができる。
また、このプロセッサでのインターフェース部は長ラ
テンシ処理部への要求信号160〜162に対する応答信号16
3〜165の順序性を保証しなくてもよい構成になる。つま
り、信号162と164は、レジスタを特定する情報の信号、
例えば、レジスタ番号を示す信号であるが、このレジス
タを特定する情報は、長ラテンシ処理部内でデータと共
に処理されるので、順序性を保証しなくても処理の対応
付けが明確になる。
さらに、このレジスタを特定する信号の応答信号164
によって、スコアボードの情報を更新するので、命令の
順序性にも矛盾を生じさせない。
このように、長ラテンシ処理部への要求信号と長ラテ
ンシ処理部からの応答信号(処理終了信号)の順序性を
保証しなくてもよいインターフェース部にすることで、
処理サイクルが可変な長ラテンシ処理の動作を保証し、
レジスタ競合等によるオーバーヘッドを減少させること
ができる。
第1図から第8図に、本発明を科学技術計算用計算機
に適用した場合の第1の実施例を示す。
第1図は、科学技術計算用計算機の全体構成、第2図
は浮動小数点演算器の構成、第3図は浮動小数点用レジ
スタの構成、第4図は命令発行処理部のレジスタ番号変
換の構成、第5図,第6図は浮動小数点用レジスタ競合
検出器、第7図はメモリ制御部の構成、第8図はスコア
ボードの構成を示す。さらに、第9図は本実施例の命令
セット、第10図はレジスタウインドを使った物理レジス
タ番号変換の関係、第11図は命令処理部の基本動作とレ
ジスタ競合動作、第12図,第13図は長ラテンシ処理実行
中の基本動作とレジスタ競合動作を示す。
次に、レジスタ構成と命令セットについて説明する。
主メモリアクセスのようにラテンシが長い処理をメモ
リパイプラインにより隠蔽しようとするとレジスタ本数
がボトルネックになる。
これを解決する方法として、情報処理学会論文誌Vol.
34 No.4 p669「レジスタウインド方式を用いた擬ベク
トルプロセッサの評価」で詳細に述べられているレジス
タウインドと呼ばれるレジスタを複数のセットに分割し
てレジスタ数を増加させる方式が提案されている。
本実施例ではレジスタウインド方式(レジスタ本数を
128本)を採用した構成である。
第9図に代表的な浮動小数点命令の命令セットを示
す。
FMUL,FADDはそれぞれ乗算,加算する命令である。r1,
r2,r3は、32本のレジスタ番号を指すものであり、これ
に128本のレジスタ番号を指すウインドポインタWPと加
えて物理レジスタ番号を決定する。物理レジスタ番号
(r1+WP),(r2+WP)で指されるレジスタのデータを
読み出し演算して物理レジスタ番号(r3+WP)で指され
るレジスタに結果を格納する。
FLD,FSTは、一般の浮動小数点用ロード、ストア命令
である。整数汎用レジスタ(GR)のデータとディスプレ
ースメント(disp)を加えたものをメモリアドレスとし
て計算し、FLDはメモリ上のアドレスにあるデータを物
理レジスタ番号(r3+WP)で指されるレジスタに格納す
る。また、FSTは、物理レジスタ番号(r1+WP)で指さ
れるデータをレジスタから読み出し、計算されたアドレ
スで指されるメモリに格納する。
FPLD,FPSTはFLD,FSTと同じ機能であるがr3′,r1′
は、命令から直接全ての128本のレジスタを指し示すこ
とができ、主メモリと浮動小数点用レジスタの間を直接
アクセスする拡張命令である。FWPはレジスタウインド
方式のウインドポインタWPを更新する命令である。
さて、第1図に戻って、科学技術計算用計算機の全体
構成を示す。科学技術計算用計算機の全体構成は、命令
制御部101,メモリ制御部102,浮動小数点用レジスタ競合
検出器103,長ラテンシ処理検出器104,スコアボード105
より構成する。また、命令制御部101からメモリ制御部1
02へ、要求信号160,メモリアドレス161,レジスタ番号16
2を受け渡す第1のインターフェースと,メモリ制御部1
02から命令処理部101ヘデータを返す応答信号163,デー
タ165,受け渡されたレジスタ番号164を返答する第2の
インターフェースを持つ。
FMUL,FADD等の演算命令の動作を命令処理部101を使っ
て説明する。命令は、第4図に示す命令発行処理部110
内の命令レジスタ401に格納される。各レジスタ番号r1,
r2,r3は、ウインドポインタ406と加算して物理レジスタ
番号を求めるためにレジスタ番号変換403−1〜3で計
算する。具体例として、第10図に、ウインドポインタWP
が0,16,32,48,64,80,96,112,127の場合の物理レジスタ
番号との関係を示す。一方、命令解読器404は、各レジ
スタ番号フィールドが有効であるかどうかを解読し、そ
の結果をもとに選択回路及びvalid生成回路405を制御
し、ソース1用レジスタ番号及びそのvalid信号151−s
1,ソース2用レジスタ番号及びそのvalid番号151−s2,
ターゲット用レジスタ番号及びそのvalid信号151−tを
出力する。第3図に示す128本で構成した浮動小数点用
レジスタ113は、命令発行処理部110からのソースの物理
レジスタ番号151−s,151−s2より指されたレジスタの内
容を152,153に同時に読み出し出力する。第2図に示す
浮動小数点演算器111は、演算すべき2つのデータを15
2,153より入力データラッチ211に格納する。次のサイク
ルで演算(E1)201を実行し、中間情報ラッチ212に格納
する。さらに次のサイクルで演算(E2)202を実行し演
算結果を結果格納ラッチ213に格納する。この実施例で
は、2サイクルかけて演算(E1),演算(E2)と実行し
て加算,乗算結果を求めるもので1つの演算命令をラテ
ンシ2で処理する。浮動小数点演算器111の結果154はW
ステージで浮動小数点用レジスタ113に格納され動作を
完了する。第11図(a)に、演算命令の基本動作のタイ
ミングを示す。パイプラインは、D,E1,E2,Wの4サイク
ルで1命令を処理するように動作する。
さて、演算命令と後続命令の間でレジスタ競合したと
きの動作を示す。レジスタ競合のプログラム例を以下に
示す。
FADD r1,r2,r3 FMUL r3,r4,r5 本実施例の浮動小数点演算器111は第2図に示すよう
にラテンシ2である。レジスタ競合が発生したときのペ
ナルティを抑えるため浮動小数点演算器内にショートパ
ス220,セレクタ221,222を有しており1サイクルのイン
タロック後、データを使用できる。このインタロックす
る動作を次に説明する。
始めに、浮動小数点用レジスタ競合検出器103の構成
を第5図に示す。命令発行処理部110から出力されるタ
ーゲットレジスタ番号151−tをパイプラインステージ
ごとに保持するラッチ502,503,504と、各ステージのタ
ーゲットレジスタ番号と命令発行処理部110の命令レジ
スタ401に対応したソースレジスタ番号151−s1,151−s2
を比較する比較器501−1〜6,ターゲットレジスタ番号1
51−tを比較する比較器−1〜3、及び、その出力をま
とめる論理回路より構成される。第6図は比較器501の
詳細な構成を示したもので、7ビットの比較器と、比較
器の出力とそれぞれのvalid信号のANDゲートからなる。
FADD命令がE1ステージを実行中、第5図のラッチ502
は物理レジスタ番号(r3+WP)を保持する。FMULは、命
令レジスタ401に格納されており、その出力であるソー
ス1信号151−s1も物理レジスタ番号(r3+WP)とな
る。このため、比較器501−1はレジスタ番号が一致し
ていることを検出し出力170は1となる。レジスタ競合
検出器103の出力は命令発行処理部110の命令発行制御40
2へOR論理を通して伝わり、命令レジスタ401の命令を1
サイクル保存する。続く次のサイクルで、FADDはE2ステ
ージに進み、E2用ターゲットラッチ503に物理レジスタ
番号を格納する。命令レジスタ401からの信号151−s1と
ターゲットラッチ503を比較する比較器501−3はレジス
タ番号が一致していることを検出する。しかしながら、
長ラテンシ処理中の命令のときのみ有効になるように信
号511を制御するので、論理回路部で信号511によりマス
クされ出力170は0となる。命令レジスタに格納した命
令が演算結果をすぐに使うことを命令制御112で検出す
ると、浮動小数点演算器111内のショートパス220からセ
レクタ221を通して演算結果をすぐに入力データロッチ
にバイパスするように動作する。これによってFADD命令
は次のE1サイクルで正しい入力データに対する演算を開
始する。第11図(b)にこの動作のタイミングを示す。
n命令とn+1命令がレジスタ競合して1サイクルイン
タロックすることで、正しい動作を保証するように動作
できる。
第5図の比較器505−1〜3は、一般に割込み処理制
御のために命令のターゲット番号と後続命令のターゲッ
ト番号の関係より、インターロック制御を行うためのも
のであり、動作は上記の比較器と同様のため説明を省略
する。
次に、FLD,FPLDの命令の動作を説明する。始めに、メ
モリ制御部102の構成を第7図に示す。メモリ制御部102
は、主メモリ122,メモリ制御ユニット121より構成す
る。メモリ制御ユニット121は、メモリバンク制御701,
アドレス変換制御702より構成する。さらに、751−M2〜
40と750−M2〜40は全てパイプライン制御用ラッチ,705
はアドレス変換器、710,720はバンクコンフリクトによ
るパイプラインのインタラックを解消するためのバンク
(0,1)用バッファ、711,721はバンクメモリ中の処理に
対するレジスタ番号を保持するラッチ、713,723はバン
ク分けされたメモリ、730,731はメモリバンクからのデ
ータとレジスタ番号を選択するセレクタである。
FLD,FPLDの命令は、Dステージで命令解読し、Eステ
ージでアドレス計算アドレスする。その後の動作は、メ
モリ制御部102で実行される。命令処理部101からメモリ
制御部102へは、データを読み出す要求信号160,メモリ
アドレス161,浮動小数点用レジスタのターゲットレジス
タ番号162を受け渡す。レジスタ番号162はメモリ制御部
102の各パイプラインステージを命令動作とともに同期
して進む。送られたメモリアドレス161は論理アドレス
であるためアドレス変換器705で物理アドレスに変換す
る。その後、物理アドレス730とレジスタ番号731は、メ
モリバンクを制御するメモリバンク制御701に送られ
る。実施例では、2つのインタリブされたバンクで構成
されたメモリを示す。物理アドレスが偶数か奇数かによ
りバンク0がバンク1にアクセスするように制御する。
各バンクごとの処理は、バンク用バッファ710,720の入
った順に処理される。この時、レジスタ番号もバンク用
バッファ710,720に入れて処理の同期をとる。バンクメ
モリをアクセス中、レジスタ番号はバンク中の処理に同
期したレジスタ番号を保持するラッチ711,721に格納さ
れバンクメモリ713,723のアクセス処理完了まで待つ。
処理が完了すると、セレクタ730,731を制御し、アクセ
スしたデータと処理完了まで保持しているレジスタ番号
を同時に出力してパイプライン制御ラッチ751−M37,750
−M37に渡す。その後、メモリ制御部102から命令制御部
101へは、メモリ処理部にデータを返す応答信号163(第
7図はデータパスのみ表示しているので省略)、メモリ
より読み出したデータ165,レジスタ番号164を返答す
る。命令制御部101の浮動小数点用汎用レジスタ113は、
メモリより読み出したデータ165,浮動小数点用レジスタ
のターゲットレジスタ番号164を受け取りレジスタ番号
の指すレジスタにデータを書き込みFLD,FPLDの命令の動
作を完了する。第12図にFLD,FPLDの命令の動作のタイミ
ングを示す。n命令,n+1命令がメモリアクセス命令で
ありM2からM40までがメモリ制御部でのパイプライン処
理を示す。
本実施例のメモリ制御部102は2つのインタリブした
バンク構成であるが、メモリの完全パイプライン化する
には、メモリバンクのアクセス数をpサイクルとする
と、バンク数はp個以上が必要となる。また、インタリ
ブしたバンク構成であるためバンクコンフリクトが生じ
る。バンクコンフリクトが発生すると、命令制御部101
からの要求順序とメモリ制御部102からの応答順序が異
なる。具体的には、n番目のメモリ要求でバンク0へア
クセスしようとしたとき、バンク0用バッファ710に既
に前の要求が待たされているとする。次のサイクルでn
+1番目のメモリ要求がバンク1へアクセスしたとき、
バンク1用バッファ720が空であれば、バンク1のメモ
リアクセス要求であるn+1番の方が早く処理を完了す
るという特性を持つ。メモリ制御部102の処理が可変で
順番が守られないにもかかわらず動作が保証できるの
は、レジスタ番号を命令制御部101に保持ぜずに、メモ
リ制御部102でメモリ処理とともに各パイプラインを持
ち回り、メモリ制御部102の処理返答時にレジスタ番号1
64を返却する構成であるから可能となる。
FLD,FPLD命令と後続命令の間でレジスタ競合したとき
の動作を示す。始めに、第8図でスコアボードの全体構
成を説明する。800−0〜127はレジスタ128本に対応す
る1ビットのレジスタ、801は登録するレジスタ番号を
フルデコードするデコーダ、802は解除するレジスタ番
号をフルデコードするデコーダ、803は命令レジスタ401
のソース1のレジスタ番号のフルデコードするデコー
ダ、804は命令レジスタ401のソース2のレジスタ番号を
フルデコードするデコーダ、805は命令レジスタ401のタ
ーゲットのレジスタ番号をフルデコードするデコーダ、
806はデコーダ803の出力信号が立っているところのレジ
スタ800の値が1であるかを検出する検出器、807はデコ
ーダ803の出力信号が立っているところのレジスタ800の
値が1であるかを検出する検出器、808はデコーダ803の
出力信号が立っているところのレジスタ800の値が1で
あるかを検出する検出器、809は各検出器806,807,808の
出力の論理和をとるOR回路、810はメモリ制御部102で異
常があったことを検出する異常検出器より構成する。
FLD,FPLD命令の実行は既に述べたがスコアボード105
に対する動作を補足する。登録許可信号166は、第1図
の長ラテンシ処理検出器104で検出される。本実施例で
は、FLD,FPLDを命令解読して検出すると登録許可信号16
6は1になる。登録されるレジスタ番号167は浮動小数点
用レジスタ競合検出器103としてFLD,FPLD命令のターゲ
ットレジスタ番号として与えられる。このレジスタ番号
はメモリ制御部102に受け渡すレジスタ番号162と論理的
に同じものである。Wステージの次のサイクルで、スコ
アボード105は、登録許可信号166と登録されるレジスタ
番号167によりデコーダ801を介してレジスタ番号に対応
したレジスタ800を1にセットする。FLD,FPLD命令がメ
モリ制御部102で処理を完了すると、レジスタ番号164と
メモリ制御部からの返答信号163によって、デコーダ802
を介してレジスタ番号に対応したレジスタ800を0にセ
ットする。つまり、Wステージの次のサイクルから処理
完了までメモリ要求に対応したレジスタ800は1が立っ
ており、メモリ処理中であることを示す。レジスタ800
に1が登録するタイミングがWステージの次のサイクル
であるのは、レジスタ競合検出器103により、Wステー
ジまでのレジスタの競合を検出し、スコアボード105で
Wステージの次のサイクルから処理完了までレジスタ競
合を検出するように協調して動作させるからである。こ
れによって、スコアボード105に対する命令制御が簡単
になる。なぜなら、Dステージでスコアボード105に登
録すると、それ以前の基本パイプライン処理中の命令の
影響(分岐や割込み等)により命令の無効化が生じると
スコアボード登録を取り消さなければならず常にパイプ
ライン動作を監視しなければならないが、本実施例のよ
うにWステージの次のステージでスコアボード105に登
録すれば、それ以前の基本パイプライン処理中の命令は
無くなり命令の無効化等パイプライン動作を監視した複
雑な処理を省略できるからである。
さて、このようにスコアボード105に登録したFLD,FPL
D命令の次の命令がレジスタ競合したときの動作を説明
する。
レジスタ競合のプログラム例(物理レジスタ番号変換
後r3′とr3は一致する)を以下に示す。
FPLD (GR1,disp),r3′ ……n命令 FMUL r3,r4,r5 ……n+1命令 第13図にこの動作のタイミングを示す。始めの3サイ
クルは演算命令のレジスタ競合で述べたように浮動小数
点用レジスタ競合検出器103で検出されその出力である1
70により命令レジスタ401の命令を保持し続ける。次の
4サイクル目からはスコアボード105でレジスタ競合を
検出する。FPLDによりr3′に対応するレジスタ300に1
がセットされる。一方、命令レジスタ401に対する151−
s1に物理レジスタ番号(WP+r3)が出力される。この信
号は、スコアボード105内のデコーダ803でフルデコード
し、検出器806にてデコーダ803の出力信号が立っている
ところのレジスタ800の値が1であるかを検出する。こ
のケースは1である(競合状態)ので、スコアボードの
出力171が1となり命令レジスタ401の命令を保持し続け
る。この関係は競合しているレジスタ800の値が0に解
除されるまで続く。メモリ制御102からの応答信号によ
り解除されると出力171は0になり、FMUL命令は発行さ
れる。つまり、FPLD命令とFMUL命令がレジスタ競合して
39サイクルインターロックして正しい動作を保証するよ
うに動作する。これによってFMUL命令はFPLD命令が終了
するのを待って正しい入力データに対する演算を開始で
きる。この例は次の命令のレジスタ競合を示したがFPLD
命令が処理中の期間に後続命令として実行される命令と
の間でレジスタ競合していなければ命令は次々と発行さ
れる。また、n+m命令がレジスタ競合命令のとき、n
+m−1命令までは次々と発行され、n+m命令が命令
レジスタ401にFPLD命令完了まで保持するように動作す
る。
さらに、別のレジスタ競合のプログラム例(物理レジ
スタ番号変換後r3′とr3は一致する)を以下に示す。
FPLD (GR1,disp),r3′ FMUL r4,r5,r3 この例は、FPLD命令のターゲットレジスタ番号と後続
命令のターゲットレジスタ番号が一致したケースであ
る。本実施例では、FPLD命令よりFMUL命令が先に実行す
るため、2つの命令が終了した結果はFPLD命令の結果が
残ってしまうことになりプログラムの実行順番と矛盾す
る。このため正しい動作を保証するためにインターロッ
クする必要があり、ターゲットレジスタ番号と後続命令
のターゲットレジスタ番号について、レジスタ競合検出
器103の505−1〜3の比較器でWステージまで、レジス
タの競合を検出し、スコアボードの検出器808でWステ
ージの次のサイクルから処理完了までレジスタ競合を検
出するように協調して動作する。
この実施例のスコアボード105は、メモリ制御部102か
ら必ずレジスタ番号164を伴った応答信号を期待した方
式である。もし、メモリ制御部102に異常が発生してレ
ジスタ番号164が戻らないと、スコアボード105のレジス
タ800は解除されずレジスタ競合が発生するとデッドロ
ック状態に陥る。この状態を避けるためにメモリ制御部
102からの応答信号163に異常を知らせる情報も含ませ
る。この信号163をスコアボード105の異常検出器810で
異常を検出すると全てのレジスタ800をリセットすると
ともに、命令制御部で異常時の処理を起動するように動
作する。これによってメモリ制御部102の異常に対する
デッドロックを避け異常処理を開始できる。
メモリ制御部102にキャッシュメモリを持つ場合の本
発明の第2の実施例を示す。キャッシュメモリはメモリ
アクセス高速化の目的で一般に採用されている技術であ
る。キャッシュメモリがヒットすると短いサイクル(短
ラテンシ処理)でメモリアクセスを実施する。ミスする
と主メモリまで長いサイクル(長ラテンシ処理)をかけ
て処理を実施する。
第1の実施例と大部分共通であるので異なる構成のみ
第14図,第15図,第16図で示す。第14図は、科学技術計
算用計算機の全体構成、第15図はキャッシュメモリを持
つメモリ制御部の構成、第16図は長ラテンシ処理検出器
を示す。メモリ制御部102内のキャッシュメモリの制御
と、メモリ制御部のインターフェースが主に異なってい
るため、その部分を中心に動作を説明する。第1図から
第14図に変更された点は、キャッシュがヒットしたこと
を示すインターフェースである1505に追加したことであ
り、さらに、第7図から第15図に変更されたのはユニッ
ト702である。第15図の702はキャッシュメモリ及びアド
レス変換するユニットであり、1500はキャッシュメモ
リ、1501はアドレスバッファ、1502はアドレスを切替る
セレクタ、1503はレジスタ番号を切替るセレクタであ
る。
FLD命令は、命令制御部101からメモリ制御部102へ、
データを読み出す要求信号160,メモリアドレス161,ター
ゲットレジスタ番号162を受け渡す。送られたメモリア
ドレス751−M2はセレクタ1502を介してキャッシュメモ
リ1500をアクセスする。キャッシュメモリ1500がメモリ
アドレスに対するデータを持っていればキャッシュヒッ
トとなり、データ1506を通して、ラッチ751−M40にセッ
トする。キャッシュメモリ1500がヒットであることを示
す信号1507は0となり750−M2のレジスタ番号を750−M4
0へ伝えるように動作する。つまり、キャッシュがヒッ
トするとデータ751−M40,レジスタ番号750−M40,キャッ
シュがヒットしたことを示す信号1504が同時にセットさ
れ、インターフェース信号164,165,1505を介して命令制
御部101へ返答する。なお、第15図では省略してあるが
ヒット信号によりメモリバンク制御への処理は中止する
ように制御する。命令制御部101は、第1の実施例と同
様にレジスタ番号164に対応したレジスタにデータ165を
書いて完了する。さらに、信号1505は、長ラテンシ処理
検出器104に送り(第14図)、キャッシュがヒットした
ことを伝える。第16図は、長ラテンシ処理検出器104の
構成を示しており、信号1505が1であるとその出力であ
る登録許可信号166は0となる。これによって、キャッ
シュがヒットするとスコアボードには登録されない。
次に、キャッシュミスの動作を説明する。ミスする
と、第1の実施例と同様にアドレス変換器750で変換さ
れた物理アドレス730とレジスタ番号731をメモリバンク
制御に送付する。一方、インターフェース信号1505は、
長ラテンシ処理検出器104にキャッシュがミスしたこと
を伝える。これにより、長ラテンシ処理検出器104の出
力166は1となり、キャッシュミスするとスコアボード
に登録される。メモリバンク制御で処理が完了するとデ
ータ733、レジスタ番号732はパイプラインラッチ705−M
38,751−M38へ格納される。第1の実施例と異なるの
は、主メモリからのデータをキャッシュメモリに格納す
る点であり、そのためにアドレスバッファ1501からのア
ドレスに従い、1506を介してデータをキャッシュメモリ
に書く。同時にインターフェース163,164,165を通して
命令制御部101へ返答信号とレジスタ番号とデータを返
すように動作する。命令制御部101は第1の実施例と同
様にレジスタ番号164に対応したレジスタにデータ165を
書いて完了するとともに、スコアボード105のレジスタ8
00を解除するように動作する。
もう1つの命令であるFPLDはFLDと多少異なった動作
をする。FPLD命令は、主メモリ122から直接レジスタ113
にデータを格納する命令である。このため、キャッシュ
メモリがあるメモリ制御部において、キャッシュをスル
ーして動作する。メモリ制御部102に送られたアドレス
は直接アドレス変換器705でアドレス変換されメモリバ
ンク制御701に送られる。一方、長ラテンシ処理検出器1
04(第16図)は、キャッシュミスしたかどうかに依存せ
ずに命令解読によって出力166を1にしスコアボードに
登録する。また、FPLD命令は、メモリバンク制御から戻
ってきたデータをキャッシュメモリに格納する動作をせ
ずに、インターフェース163,164,165を通して命令制御
部101へレジスタ番号とデータを返すように動作する。
命令制御部101は、第1の実施例と同様にレジスタ番号1
64に対応したレジスタにデータ165を書いて完了すると
ともにスコアボード105のレジスタ800を解除するように
動作する。
本第2の実施例では、キャッシュがヒットしたときを
演算命令と同じパイプラインで処理し(短ラテンシ処
理)、ミスしたときのみ長ラテンシ処理扱いして制御す
る。これによって、キャッシュメモリを持つメモリ制御
においてキャッシュミスが生じた場合もレジスタ競合が
無い期間、次々と後続命令のパイプライン処理を開示で
き、主メモリをアクセスする長ラテンシ処理のパイプラ
イン化による処理の隠蔽が可能になる。
第2の実施例においてメモリ制御部と命令制御部のイ
ンターフェースを改良した場合の第3の実施例を示す。
第2の実施例と大部分共通であるので異なる構成のみ
第17図,第18図で示す。第17図は科学技術計算用計算機
の全体構成、第18図はキャッシュメモリが持つメモリ制
御部の構成を示す。メモリ制御部のインターフェースが
主に異なっているため、その部分を中心に動作を説明す
る。第14図から第17図に変更されたのはキャッシュがヒ
ットしたときにヒットしたことを示す信号とともにキャ
ッシュメモリからのデータを出力する1705をインターフ
ェースに追加したことである。
FLD命令は、命令制御部101からメモリ制御部102へ、
データを読み出す要求信号160,メモリアドレス161,ター
ゲットレジスタ番号162を受け渡す。送られたメモリア
ドレス751−M2はセレクタ1502を介してキャッシュメモ
リ1500をアクセスする。キャッシュメモリ1500がメモリ
アドレスに対するデータを持っていればキャッシュヒッ
トとなり、データバス1506を通して、ラッチ1801にセッ
トする。つまり、キャッシュがヒットするとデータ180
1,キャッシュがヒットしたことを示す信号1504が同時に
セットされ、インターフェース信号1701,1505を介して
命令制御部101へ返答する。命令制御部101は、第17図に
示すように演算結果を出力する151とメモリ制御部から
のデータ1701をセレクタ1702で選択してレジスタ113に
データを書き込む。この時のターゲットレジスタ番号
は、演算からのパス167から供給される。キャッシュミ
スが発生するケース、及び、FPLD命令の動作は第2の実
施例と同様であり説明を省略する。第3の実施例によ
り、キャッシュメモリがヒット(短ラテンシ処理)した
ときのレジスタ番号をメモリ制御部から返答しなくても
よいという効果がある。つまり、長ラテンシ処理の時の
みメモリ制御部からレジスタ番号を保証することにより
メモリ制御部の簡易化が図られる。
上述の3つの実施例は、すべてシングルパイプライン
実行について述べたが、n命令を同じに発行して処理す
るスーパスカラ型のプロセッサにおいても基本パイプラ
インを超えて処理する長ラテンシ命令に対して本発明を
展開することは容易である。
第20図に4命令のスーパースカラ型のプロセッサの概
略を示す。
これは、命令を発行する命令発行処理部2000,命令発
行部からの命令を浮けて制御する命令制御部2001−1〜
2001−4,短ラテンシ処理を行う短ラテンシ処理部2002−
1〜2002−4,長ラテンシ処理を行う長ラテンシ処理部20
05,長ラテンシ及び短ラテンシ処理で用いる複数のデー
タを保持する汎用レジスタ2010,短ラテンシ処理による
レジスタ競合を検出するレジスタ競合検出部2011,命令
の処理内容が長ラテンシ処理かを判定する長ラテンシ処
理部2013,長ラテンシ処理の際のレジスタの競合を示す
スコアボード2012から構成される。
命令発行処理部2000は、同時に4つの命令を2020−1
〜−4を介してそれぞれの命令制御部2001−1〜−4に
供給する。命令制御部2001−1〜−4は、供給された命
令の処理内容が短ラテンシ処理であれば、制御信号2021
−1〜4により短ラテンシ処理部2002−1〜4を制御す
る。また、供給された命令の処理内容が長ラテンシ処理
であれば、制御信号2023−1〜4により長ラテンシ処理
部2005を制御する。
レジスタ競合検出部2011は、4つの命令で用いるレジ
スタ全てについて競合の有無を検出する。競合が検出さ
れると、信号2028により命令発行処理部2000に命令の発
行を停止させる。スコアボード2012は第19図と同じ機能
を有する。
このように複数命令を並列に処理するスーパースカラ
型のプロセッサにおいても、レジスタ競合をレジスタ競
合検出部とスコアボードにわけて強調動作させることが
でき、物理量の増加を抑えながら長ラテンシ処理のフル
パイプライン化を簡単な制御論理で達成することができ
る。
さらに、LSI技術が発展して集積化が進むと命令制御
部とメモリ制御部の一部を含めたワンチップのマイクロ
プロセッサが実現できる。第7図,第15図,第18図より
わかるようにメモリ制御部を任意のステージラッチ分割
すると全ての切り口でレジスタ番号を受け渡す、又は、
返答するインターフェースが端子として現れる。
具体的な一例として第18図のメモリバンク制御の前ま
でをワンチップのマイクロプロセッサとするとレジスタ
番号を受け渡すインターフェースとして731、レジスタ
番号を返答するインターフェースとして732が必要であ
り、そのためのLSIピン(端子)が必要となる。
第21図にこの第18図の接続関係をチップの接続関係で
表した図を示す。これによると、インターフェース部を
介して要求信号,応答信号,アドレス,データ等を伝送
するためにプロセッサとメモリ制御用チップとを接続す
るための端子、または配線が必要になる。
産業上の利用の可能性 本発明によれば、短ラテンシ処理と長ラテンシ処理に
よるレジスタの競合をなくすことができる。
また、本発明によれば、効率よくレジスタを用いた処
理ができ、高速なパイプライン処理が達成される。
また、本発明によれば、レジスタ競合を検出するため
の処理部の物理量を小さくすることができる。
また、本発明によれば、レジスタ競合を検出する論理
制御を複雑にすることなく実現できる。
また、本発明によれば、第1のレジスタ競合検出器で
パイプライン投入予定の命令と全ての命令のnサイクル
までのレジスタ競合を検出するので、長ラテンシ処理中
以外のレジスタ競合が無い期間パイプライン処理を次々
に開始できる。
さらに、本発明によれば、第2のレジスタ競合用スコ
アボードでパイプライン投入予定の命令と(k+1)か
らmサイクルで処理中の命令のレジスタ競合を検出する
ので、長ラテンシ処理中のレジスタ競合が無い期間パイ
プライン処理を次々に開始できる。
また、本発明によれば、長ラテンシ命令同志であって
もレジスタ競合がなければパイプライン処理できる。
さらに、本発明によれば、分岐命令や割込み処理等の
パイプライン制御が乱れる期間(1サイクルからKサイ
クル)ではレジスタ競合検出部により、パイプライン制
御が乱れない期間(K+1サイクルからmサイクル)で
はレジスタ競合スコアボードにより処理するので、物理
量の増加を抑えながら、長ラテンシ処理のフルパイプラ
イン化を簡単な制御論理で実行できる。
また、本発明によれば、インターフェース内の要求信
号と応答信号は非同期に処理され、返答信号の順序が変
わるような長ラテンシ命令であっても、長ラテンシ処理
中のレジスタ競合が無い期間パイプライン処理を次々に
開始できる。
さらに、本発明によれば、命令実行の順序性を保証し
ないインターフェース部により、処理の終了した命令と
命令制御部内のパイプライン処理へ投入する後続命令と
の間で、レジスタ競合が生じていても余分なインターロ
ックを行うことなく、パイプライン処理のオーバーヘッ
ドを減少させることができる。
フロントページの続き (72)発明者 澤本 英雄 東京都町田市旭町3丁目24番23号 戸川 アパート (56)参考文献 特開 平4−44136(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】データを格納し、バンクに分けた2つのメ
    モリと、 データを格納する浮動小数点用レジスタを有し、前記メ
    モリからデータを読み出すためのメモリアドレスとレジ
    スタ番号を出力する命令制御部と、 前記メモリを制御するメモリ制御ユニットとを有し、 前記メモリ制御ユニットは、前記命令制御部から出力す
    る複数のレジスタ番号を格納する複数のバンク用バッフ
    ァと、前記2つのメモリから読み出されたデータのうち
    1つを選択する第1のセレクタと、前記第1のセレクタ
    によって選択された前記データに相当するレジスタ番号
    を選択する第2のセレクタとを有し、 前記メモリ制御ユニットは、前記命令制御部から出力さ
    れたメモリアドレスに基づいて、前記メモリからデータ
    を読み出し、前記第1のセレクタによって選択された前
    記データと前記第2のセレクタによって選択されたレジ
    スタ番号とを前記命令制御部へ出力し、 前記命令制御部は、前記メモリ制御ユニットから入力さ
    れた前記レジスタ番号に相当する前記データを前記浮動
    小数点用レジスタに格納することを特徴とする情報処理
    装置。
  2. 【請求項2】請求項1記載の情報処理装置において、 少なくとも前記メモリと前記メモリ制御ユニットは1つ
    の半導体基板上に設けられていることを特徴とする情報
    処理装置。
JP52674896A 1995-03-06 1995-03-06 情報処理装置 Expired - Fee Related JP3400458B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1995/000356 WO1996027833A1 (fr) 1995-03-06 1995-03-06 Unite de traitement informatique

Publications (1)

Publication Number Publication Date
JP3400458B2 true JP3400458B2 (ja) 2003-04-28

Family

ID=14125690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52674896A Expired - Fee Related JP3400458B2 (ja) 1995-03-06 1995-03-06 情報処理装置

Country Status (3)

Country Link
US (1) US6101596A (ja)
JP (1) JP3400458B2 (ja)
WO (1) WO1996027833A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279100B1 (en) * 1998-12-03 2001-08-21 Sun Microsystems, Inc. Local stall control method and structure in a microprocessor
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US7117342B2 (en) 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US6304955B1 (en) * 1998-12-30 2001-10-16 Intel Corporation Method and apparatus for performing latency based hazard detection
JP4201927B2 (ja) * 1999-08-25 2008-12-24 株式会社ルネサステクノロジ データ処理管理装置
US6715060B1 (en) 2000-01-28 2004-03-30 Hewlett-Packard Development Company, L.P. Utilizing a scoreboard with multi-bit registers to indicate a progression status of an instruction that retrieves data
JP4234361B2 (ja) * 2002-06-28 2009-03-04 富士通株式会社 記憶制御装置およびデータ格納方法
US8078845B2 (en) * 2005-12-16 2011-12-13 Freescale Semiconductor, Inc. Device and method for processing instructions based on masked register group size information
US7937568B2 (en) * 2007-07-11 2011-05-03 International Business Machines Corporation Adaptive execution cycle control method for enhanced instruction throughput
US7779237B2 (en) * 2007-07-11 2010-08-17 International Business Machines Corporation Adaptive execution frequency control method for enhanced instruction throughput
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
KR102200489B1 (ko) 2014-05-30 2021-01-11 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102456176B1 (ko) * 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN117083594A (zh) * 2021-04-27 2023-11-17 微芯片技术股份有限公司 用于在矢量处理器中进行去同步化执行的方法和设备
US11782871B2 (en) * 2021-04-27 2023-10-10 Microchip Technology Inc. Method and apparatus for desynchronizing execution in a vector processor
WO2022231733A1 (en) * 2021-04-27 2022-11-03 Microchip Technology Inc. Method and apparatus for desynchronizing execution in a vector processor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4875160A (en) * 1988-07-20 1989-10-17 Digital Equipment Corporation Method for implementing synchronous pipeline exception recovery
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5276822A (en) * 1989-11-15 1994-01-04 Matsushita Electric Industrial Co., Ltd. System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JP2904624B2 (ja) * 1991-10-14 1999-06-14 株式会社東芝 並列演算処理装置
JPH05298091A (ja) * 1992-04-16 1993-11-12 Matsushita Electric Ind Co Ltd 情報処理方法及び情報処理装置
JP2824484B2 (ja) * 1992-08-20 1998-11-11 富士通株式会社 パイプライン処理計算機
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
US5761475A (en) * 1994-12-15 1998-06-02 Sun Microsystems, Inc. Computer processor having a register file with reduced read and/or write port bandwidth

Also Published As

Publication number Publication date
US6101596A (en) 2000-08-08
WO1996027833A1 (fr) 1996-09-12

Similar Documents

Publication Publication Date Title
US5293500A (en) Parallel processing method and apparatus
JP3400458B2 (ja) 情報処理装置
US5185871A (en) Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
JP3644959B2 (ja) マイクロプロセッサシステム
JP4578042B2 (ja) 接近して結合される多重プロセッサのための高速マルチスレッディング
JP3796124B2 (ja) スレッド間優先度可変プロセッサ
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
KR920006275B1 (ko) 데이타 처리 장치
US5636353A (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing
US7725659B2 (en) Alignment of cache fetch return data relative to a thread
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
US20100100709A1 (en) Instruction control apparatus and instruction control method
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
JPH0769825B2 (ja) 並列処理装置
JPH10283178A (ja) 命令を発行するための方法及びシステム
CA2056716A1 (en) Multiple asynchronous request handling
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JPH06139071A (ja) 並列計算機
JP2572821B2 (ja) 命令再実行による演算処理方式
JPH05108348A (ja) 並列演算処理装置
JPH0786838B2 (ja) 割り込み処理方式
JPH04181460A (ja) マルチプロセッサシステム

Legal Events

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