JPH0496132A - 電子計算機 - Google Patents

電子計算機

Info

Publication number
JPH0496132A
JPH0496132A JP20933690A JP20933690A JPH0496132A JP H0496132 A JPH0496132 A JP H0496132A JP 20933690 A JP20933690 A JP 20933690A JP 20933690 A JP20933690 A JP 20933690A JP H0496132 A JPH0496132 A JP H0496132A
Authority
JP
Japan
Prior art keywords
instruction
instructions
parallel
electronic computer
branch
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
JP20933690A
Other languages
English (en)
Other versions
JP2877468B2 (ja
Inventor
Shigeo Kamiya
神谷 茂雄
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP20933690A priority Critical patent/JP2877468B2/ja
Publication of JPH0496132A publication Critical patent/JPH0496132A/ja
Application granted granted Critical
Publication of JP2877468B2 publication Critical patent/JP2877468B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の目的〕 (産業上の利用分野) 本発明は主記憶部に格納された命令を順次読み出し、こ
れらの命令をパイプライン処理により実行する中央処理
部を備えた電子計算機に関する。
(従来の技術) 従来の電子計算機においては処理の高速化を計るため、
パイプライン処理が頻繁に行なわれている。パイプライ
ン処理とは、中央処理部(PCU)内で通常6段に分か
れている。この6段とは、命令アドレス変換、命令フェ
ッチ、命令デコード。
オペランドフェッチ、実行、アップデートの各処理であ
る。
これらの夫々を説明すると、先ず「命令アドレス変換」
ではプログラムカウンタに格納された論理番地(プログ
ラム上の仮想アドレス)を物理番地(主記憶部上の実ア
ドレス)に変換する。次に「命令フェッチ」では、物理
番地に従って該当する命令を読み出す6 (ここでは主
記憶部より直接読み出すのではなく、キャッシュメモリ
より読み出すことが多い)次に「命令デコード」では読
み出した命令をデコーダが解釈する。ここで命令の種類
としてはロード命令、ストア命令2介岐命令。
演算命令の4種類が通常存在する。「デコーダ」では命
令の種類に従って第4段(次段)の対応する構成部に制
御信号を送るとともに該命令を次段のレジスタ(これは
1個のみである)へ送る。ここでロード命令、ストア命
令の場合は第4段の物理番地変換回路のみに制御信号が
送られ1分岐命令の場合は第4段の分岐条件チェック部
のみに制御信号が送られ、演算命令の場合は第4段のジ
ェネラルレジスタ(演算用、ストア用データのレジスタ
)、第5段の演算器のみに制御信号が送られる。「オペ
ランドフェッチ」では格納された命令を実行するための
前処理が行なわれる。ロード命令、ストア命令の場合は
この命令中に記述されたメモリアドレスの論理番地を物
理番地へ変換する。
分岐命令の場合は無条件分岐のときを除いて次段のレジ
スタへ送られる。演算命令の場合は演算に必要なデータ
がジェネラルレジスタより読み出され、次段の演算器用
レジスタへ格納される。「実行」ではロード命令の場合
はキャッシュメモリ(主記憶部に代わるもの)の該当ア
ドレスからデータを読み出す、ストア命令の場合はキャ
ッシュメモリの該当アドレスへデータを書き込む6分岐
命令の場合は分岐条件が成立していれば分岐先命令アド
レスを第1段のプログラムカウンタへ送る。
演算命令の場合はオペレーションコードに従って算術論
理演算が行なわれる。「アップデート」では前段のロー
ド命令により読み出されたデータが第4段のジェネラル
レジスタへ格納される。又、演算命令による演算結果も
ジェネラルレジスタへ格納される。(従来のCPUの構
成図としては、第4図でレジスタ142.143.14
4.145が1個しかないものを想定すればよい) この様に従来のパイプライン処理では、1命令ずつに対
して順次6段から成る処理を行なうものであった。特に
命令が読み出された後、実際に処理が施される第4段の
「オペランドフェッチ」。
第5段の「実行」においても命令の種類に拘わらす1命
令ずつ処理される。ここで上述した様に命令にはロード
命令、ストア命令2分岐命令、演算命令の4種類あるが
、これらは処理動作が異なることから、出来れば同−段
で並行して処理を行ないたい。ところが命令の実行に必
要なメモリアドレス、レジスタ番号等がこれら4命令間
で重複している場合にはデータの一貫性が保持できない
ため、これら4命令を同−段で並行して処理できない。
従って「オペランドフェッチ」 「実行」においても1
命令ずつ順に処理する方式を採っており、このために処
理時間が大幅に遅延するという欠点が有った。
(発明が解決しようとする課M) この様に従来のパイプライン処理においては、種類の異
なる命令についてもアクセスすべきメモリアドレスやレ
ジスタ番号等が重複する場合が有り得るため1命令ずつ
順に実行しており、このため処理時間が大幅に遅延する
という欠点が有った。
そこで本発明の目的は、種類の異なる4命令に対し、そ
のメモリアドレスやレジスタ番号が重複しない限り、同
−段で並行して処理させることにより、その処理時間の
高速化を計った電子計算機を提供することにある。
〔発明の構成〕
(MINIを解決するための手段) 本発明は命令列を格納した記憶部と、この記憶部より命
令を順次読出して命令アドレス変換。
命令フェッチ、デコード、オペランドフェッチ。
実行、アップデートの6段から成るパイプライン処理を
行なう中央処理部とを備えた電子計算機において、中央
処理部は複数種類の命令が並行して実行可能か否か判定
し、可能な場合にはこれらを並行して処理させることを
特徴とする。具体的に云えば、前記中央処理部は命令フ
ェッチ段において4命令ずつ順次フェッチする命令レジ
スタと、デコード段において前記命令レジスタより先頭
の4命令を読み出しこれらがロード命令、ストア命令2
分岐命令、演算命令であって並行して実行可能か否かを
判定するデコーダと、オペランドフェッチ段において前
記デコーダにより実行可能であると判定された場合4命
令夫々を対応させてフェッチするレジスタ群と、実行段
において前記レジスタ群のロード命令に従って前記記憶
部よりデータを読み出す処理、ストア命令に従って前記
記憶部へデータを書き込む処理2分岐命令に従って分岐
命令をチェックする処理、演算命令に従って算術論理演
算を行なう処理を並行して実行させる手段とを具備した
ものである。
(作用) 本発明では中央処理部のデコーダが命令レジスタより4
命令ずつ順次読出し、これらがロード命令、ストア命令
9分岐命令、演算命令であって並行して実行可能か否か
判定する。この判定では■ 分岐命令が無条件分岐のと
き、これ以降の命令をキャンセルする。
■ ロード命令のメモリアドレスとストア命令のメモリ
アドレスが同一のとき、これらは並行して実行できない
■ ロード命令、或いは演算命令のデスティネーション
・レジスタ番号とストア命令のデスティネーション・レ
ジスタ番号が同一のとき、これらは並行して実行できな
い。
■ ロード命令のデスティネーション・レジスタ番号と
演算命令のソース・レジスタ番号が同一のとき、これら
は並行して実行できない。
■ 演算命令が条件を決めるものであるとき、これ以降
の条件分岐命令とは並行して実行できなし1゜ の規則を用いる。そして読み出した4命令がロード命令
、ストア命令9分岐命令、演算命令でない場合、又は上
記規則により4命令が並行して実行できないと判定され
た場合、命令レジスタの以降の4命令から該当する命令
を読み出し、先の4命令の実行可能分と組合せてこれら
が並行して実行可能か否か判定する。実行可能と判定さ
れれば該当する命令を先の4命令の実行不可能分と入れ
替える。実行不可能と判定されれば先の4命令の実行可
能分と残りをノツプ命令とした4命令を次段のレジスタ
群へ送る。
夫れにしてもパイプライン処理の「オペランドフェッチ
」 「実行」で4種類の命令を可能な限り並行して処理
するため、その処理時間が大幅に高速化される。
(実施例) 以下、図面を参照して本発明の一実施例を説明する。
第1図は本発明の一実施例による電子計算機の全体ブロ
ック図である。ここで中央処理部11は主記憶部12よ
り命令を読み出し、データをアクセスしながら処理を実
行する。入出力部13は主記憶部12へ格納するための
プログラムを入力し、又データをプリントアウト等する
ためのものである。ここで主記憶部12は全てのプログ
ラムを記憶できるだけの容量を有するものが望ましい。
例えばデータを含めた全プログラム量を800ギガバイ
トとすると、この主記憶部の記憶容量はそれ以上(例え
ば1テラバイト)実装する。この様にすると従来は不足
分のプログラムを補助記憶装置に記憶させて主記憶部と
の間でスワップイン、スワップアウト処理を行なってい
たが、この必要が無くなる。
つまりプログラムの実行要求から直ちに実行開始できる
第2図(a)は上記主記憶部に格納されたプログラムの
命令フォーマットを示す、この命令フォーマット21は
128ビツトである。つまり主記憶部の大容量に従って
命令長も従来の16ビツト、32ビツト等に比べて増大
している。オペレーション・フィールド22は16ビツ
トあり命令の種類を示している。例えばロード命令、ス
トア命令9介岐命令。
演算命令である。・デスティネーシン・フィールド23
は16ビツトあり、デスティネーションデータを格納す
る場所、つまり演算結果等を格納するレジスタ番号を示
している。第1ソース・フィールド24は16ビツトあ
り、第1のソース・データを格納している場所、つまり
演算の対象となるデータを格納したレジスタ番号を示す
、第2′)−ス/拡張フィールド25は16ビツトあり
、次の64ビツトのデータ・フィールド26とペアにな
っている。つまり第2ソース/拡張フイールド25の値
により、データ・フィールド26の内容が決まる。
例えば第2図(b)に示すように第2ソース拡張フイー
ルド25の値が0000(=16進数)の場合、データ
・フィールド26の値はイミディエイト値と定義される
。つまりデータ・フィールド26の内容はデータそのも
のである。
第2図(c)に示すように第2ソース/拡張フイールド
25の値が0001の場合、データ・フィールド26の
値はディスプレースメント値と定義される。つまりデー
タ・フィールド26の内容は第2ソース・オペランドが
格納されている論理番地となる。(ここでは64ビツト
のアドレス空間を表現できる) 第2図(d)に示すように第2ソース/拡張フイールド
25の値が0002の場合、データ・フィールド26の
値はプログラム・カウンタ相対のディスプレースメント
値と定義される。つまりデータ・フィールド26の値に
プログラム・カウンタの値を加算した値が第2ソース・
オペランドが格納されている論理番地となる。
第3図はロード命令、ストア命令9脅岐命令。
演算命令夫々に対してオペレーション・フィールド、デ
イティネーション・フィールド、第1ソース・フィール
ド、第2ソース/拡張フイールド+データ・フィールド
の内容を示すものである。
(夫々の内容がどの処理で使用されるかについては後述
する) 第4図は中央処理部の内部構成をパイプライン処理の各
段と対応付けて示す図である。この中央処理部は64ビ
ット単位(第2図(a)の命令フォーマットのデータ・
フィールドに該当する)でデータ処理を行なう。従って
後述するジェネラルレジスタは1語が64ビツト、演算
部も64ビツトを1語として行なう。
ここのパイプライン処理は命令アドレス変換。
命令フェッチ、デコード、オペランドフェッチ。
実行、アップデートの6段からなる。更に本発明の特徴
として、第4段のオペランドフェッチ、第5段の実行に
おいてはロード命令、ストア命令。
分岐命令、演算命令の4命令が並行して(同時(4)実
行される。
ここで、中央処理装置11は仮想記憶方式をとっている
。つまり、プログラムカウンタの値や、命令21の番地
の値は論理番地である。また中央処理装置11は6段の
パイプライン処理を行なうので。
各段がそれぞれ異なる一つ以上の命令を処理している。
そこで、各段にそれぞれ処理している命令の先頭番地の
値を格納しているプログラムカウンタPCIII、 1
21.131.151.161がある。
さて、各段のパイプライン処理について各構成部の動作
を説明する。
第1段のパイプライン処理は「命令アドレス変換」を行
なう。つまり、これから命令フェッチしようとしている
プログラムカウンタの値は論理番地なので、これを物理
番地に変換する。
PC−PTIIIはこれから命令フェッチしようとする
論理番地を格納しているレジスタである。
加算回路101は命令キャッシュ123から読み出す命
令データ幅分を加算する回路である。本実施例では命令
キャッシュ123から同時に4命令分の64ハイド読み
出すとすれば、加算回路101は常に64加算する。 
(1命令=16バイト=128ビツト)物理番地変換回
路112はPC−PTIIIの論理番地の値を物理番地
の値に変換する回路である。
第2段のパイプライン処理では「命令フェッチ」を行な
う。
PC−IF121はパイプラインの命令フェッチ処理を
行なっている命令の先頭番地(=論理番地)を格納する
レジスタである。PC−PA122は物理番地を格納す
るレジスタである。PC−PA122の番地で命令キャ
ッシュ123にアクセスする。
第3段のパイプライン処理では「命令デコード」を行な
う。
P C−D 131はパイプラインのデコート処理を行
なっている命令の先頭番地(=論理番地)を格納してい
るレジスタである。命令キャッシュ123から読み出さ
れた命令は命令レジスタ132にセットされる。なお、
命令レジスタ132は命令キャッシュ123からは4命
令間時に読み出されるのをダブルバッファとして8命令
向時に格納できる。つまり、命令レジスタ132は12
8バイト= 1024ビツトある。
命令レジスタ132にセットされている命令をデコード
するのがデコーダ133である。デコーダ133は命令
レジスタ132に格納されている命令の内で、先頭から
最大4命令をデコードできる。つまり、先頭からの4命
令がロード、ストア、分岐、演算の各命令になっており
、かつ、デコーダ133がこれらロード、ストア、分岐
、演算を同時に実行できると判断すれば、ロード命令は
命令レジスタ142に、ストア命令は命令レジスタ14
3に1分岐命令は命令レジスタ144に、演算命令は命
令レジスタ145にセットする。(同時実行の判断方法
については後述する) たとえば、命令レジスタ132にセットされている8命
令が先頭から ■ ロード命令 ■ ストア命令 ■ 演算命令 ■ 分岐命令 ■ ロード命令 ■ ストア命令 ■ 演算命令 ■ ロード命令 であって■〜■が同時実行可能と判断されたならば、命
令レジスタ142には■ロード命令、命令レジスタ14
3には■ストア命令、命令レジスタ144には■分岐命
令、命令レジスタ145には■演算命令がセットされる
先頭からの4命令が上記の4種類に別れていなくても、
命令レジスタ132にフェッチされている8命令に対し
、先頭からのを優先的に調べ、4種類の命令を同時に実
行できるとデコーダ133が判断すればその4命令を同
時に実行させる。
たとえば、命令レジスタ132にセットされている8命
令が先頭から ■ ロード命令 ■ ストア命令 ■ 演算命令 ■ ロード命令 ■ ストア命令 ■ 演算命令 ■ 分岐命令 ■ ロード命令 ならば、デコーダ133が■ロード命令、■ストア命令
、■分岐命令、■演算命令の4命令に実行可能と判断す
れば、さらに、■ロード命令、■ストア命令、■演算命
令と、■分岐命令とで実行を逆転しても矛盾が生じない
と判断すれば、命令レジスタ142には■ロード命令、
命令レジスタ143には■ストア命令、命令レジスタ1
44には■分岐命令、命令レジスタ145には■演算命
令をセットする。
ここで選ばれなかった■ロード命令、■ストア命令、■
演算命令については次のサイクルへ回される。
つまり次のサイクルで命令レジスタ142に■ロード命
令、命令レジスタ143に■ストア命令、命令レジスタ
144にノツプ命令、命令レジスタ145に■演算命令
をセットする。
上記の例で、デコーダ133が■ロード命令、■ストア
命令、■分岐命令、■演算命令の4命令を同時に実行で
きないと判断すれば1例えば■ロード命令しか実行でき
ないと判断とすれば、命令レジスタ142には■ロード
命令をセットするが、命令レジスタ143.命令レジス
タ144.命令レジスタ145にはノツプ命令をセット
する。
PC調整回路134は、デコーダ133がら出力した命
令(通常の場合はロード命令、ストア命令9分岐命令、
演算命令)のそれぞれの先頭番地を発生する回路である
第4段のパイプライン処理は「オペランドフェッチ」を
行なう。
PC−OF141は4本のレジスタからなる。個々のレ
ジスタは、命令レジスタ142.143.144゜14
5に格納している命令の先頭番地の値を格納している。
命令レジスタ142はロード命令を格納するレジスタで
ある。このパイプライン・フェーズでの処理は命令レジ
スタ142に格納されているロードの論理番地を物理番
地に変換することである。
命令レジスタ143はストア命令を格納するレジスタで
ある。このパイプライン・フェーズでの処理は命令レジ
スタ143に格納されているストアの論理番地を物理番
地に変換することである。
命令レジスタ144は分岐命令を格納するレジスタであ
る。このパイプライン・フェーズでの処理は命令ジスタ
144に格納されている命令が条件付き分岐命令で、か
つ分岐成立か不成立かが決まらなければ、分岐先の論理
番地をそのまま分岐先番地レジスタ155に転送するこ
とである。もし無条件分岐命令か1条件付きでも成立が
決まっていれば、分岐先の番地をPC−PTIIIにセ
ットする。
そして、これ以降のパイプラインに詰まっている命令を
キャンセルする。
命令レジスタ145は演算命令を格納するレジスタであ
る。このパイプライン・フェーズでの処理は命令レジス
タ145に格納されているソースオペランド(ソースデ
ータ)のジェネラルレジスタ147の番号から、対応す
るジェネラルレジスタの値を読みだしソースレジスタ1
56.157にセットすることである。さらに、演算の
種類をオペレーションレジスタ158にセットする。
物理番地変換回路146は命令レジスタ142のロード
したいオペランド・データが格納されている論理番地の
値を物理番地の値に変換する回路である6さらに、この
物理番地変換回路146は命令レジスタ143のストア
したいオペランド・データが格納されている論理番地の
値を物理番地の値に変換する回路である。両方の処理は
並行して出来る。
第5段のパイプライン処理では[実行Jを行なう。
PC−EX151は4本のレジスタからなる。個々はロ
ード命令、ストア命令9分岐命令、演算命令の先頭番地
が格納されている。
ロード命令は主記憶12(実際はデータキャッシュ15
9にヒツトすればデータキャッシュ159)からオペラ
ンド・データを読み出す。つまり、ロード命令はロード
アドレスレジスタ152に格納されている物理番地でデ
ータ・キャッシュ159にアクセスする。読み出したオ
ペランド・データはロードデータレジスタ162にセッ
トされる。
ストア命令は主記憶部12(実際はデータキャッシュ1
59)に書き込む。つまり、ストア命令はストアレジス
タ153に格納されている物理番地でデータ・キャッシ
ュ159にアクセスする。書き込むオペランド・データ
はストアデータレジスタ154にセットされている。
分岐命令は、分岐条件が成立したならば分岐先レジスタ
155に格納されている分岐先の論理番地をPC−PT
IIに転送する。(分岐条件の成立チェックは、図示し
ない判定部がフラグレジスタ164を参照して行なう) 演算命令は2本のソースレジスタ156.157の値を
算術論理演算回路160でオペレーションレジスタ15
8の指示どおりの演算を行ない、結果をデスティネーシ
ョンレジスタ163にセットする。同時に演算結果のフ
ラグレジスタ164にセットする。
第6段のパイプライン処理はrアップデートJを行なう
PC−U161は2本のレジスタからなる。それぞれロ
ード命令、演算命令の先頭番地が格納されている。
ロード命令はロードデータレジスタ162に格納されて
いるオペランド・データをジェネラルレジスタ147の
対応するレジスタ番号の場所に書き込む。
演算命令は、デスティネーションレジスタ163に格納
されているオペランド・データをジェネラルレジスタ1
47の対応するレジスタ番号の場所に書き込む。
第5図は本実施例の電子計算機により処理されるプログ
ラム(命令列)の例である。これはこの命令の配列順序
で最初から4命令ずつ実行可能な例である。つまり最初
から4命令毎にロード命令。
ストア命令9分岐命令、演算命令の組合せで構成されて
おり、且つこれらが並行して(同時(4)実行可能なも
のである。この命令が本実施例によってパイプライン処
理されるタイムチャートを示したものが第6図である。
以下、この第6図を用いて本実施例の具体的処理例を説
明する。簡単のため、最初の4命令(命令番地O〜48
)のみの処理を追っていく。
■パイプ1(時刻1)ニブログラムカウンタ11には命
令列の先頭番地である0(これは論理番地である)が格
納されているが、これが物理番地変換回路112へ送ら
れて対応する物理番地4096が得られる。このパイプ
1では次の時刻2において、5番目の命令番地である6
4がプログラムカウンタ111へ格納されているため、
これが物理番地変換回路112へ送られる。つまり加算
回路101は4命令分の番地幅に該当する64バイトを
プログラムカウンタ111に加算している。
■パイプ2(時刻2):レジスタ122に格納された物
理番地4096が命令キャッシュ123に与えられ対応
する命令が読み出される。(命令キャッシュに無い場合
は主記憶部より読み出される)このとき4096に64
バイト加算した4命令分が一緒に読み出される。そして
次段の命令レジスタ132へこれら4命令(つまり第5
図のO番地ADD、16番地LD、32番地ST、48
番地BZ)が格納される。
■パイプ3(時刻3):デコーダ133は命令レジスタ
132の4命令を読み出し、これらが並行して実行可能
か否か調べる(その方法については後述する)、この4
命令の場合は並行して実行可能であるため、夫々が次段
のレジスタへ送られる。つまりロード命令(L D  
r 3.1024)はレジスタ142へ、ストア命令(
S T  r、、1040)はレジX 夕143へ、分
岐命令(B Z 2049)はレジスタ144へ、演算
命令(ADD  row rtt rz)はレジスタ1
45へ送られる。
(4)パイプ4(時刻4):レジスタ142のロード命
令のメモリアドレス1024は物理番地変換回路146
へ与えられ、対応する物理番地5120が次段のロード
アドレスレジスタ152へ格納される。レジスタ143
のストア命令のメモリアドレス1040も物理番地変換
回路146へ与えられ、対応する物理番地5136が次
段のストアレジスタ153へ格納される。
(これらメモリアドレスは、夫々ロード命令、ストア命
令のデータフィールドに格納されたものである)又、レ
ジスタ143のストア命令のジェネラルレジスタ番号r
、に従って、該当するデータがジェネラルレジスタ14
7から次段のストアデータレジスタ154へ送られる。
(つまり図示しないがストア命令のデスティネーション
・フィールドに格納されたレジスタ番号がジェネラルレ
ジスタ147へ送られている)レジスタ144の分岐命
令に対しては、これが無条件分岐である場合はその分岐
先のメモリアドレス2048が第1段のプログラムカウ
ンタ111へ送られる(分岐先のメモリアトドレスは分
岐命令のデータ・フィールドに格納されている)0条件
分岐である場合はこの分岐先のメモリアドレス2048
が次段の分岐先番地レジスタ155へ送られる。(第5
図は条件分岐の場合を示している)つまり第4図では図
示していないが1分岐命令のオペレーション・フィール
ドに格納された条件分岐・無条件分岐の識別コードに従
って送り先を区別する手段が存在する。レジスタ145
の演算命令に対しては、そのオペレーション・フィール
ドの演算コードがオペレーションレジスタ 158へ送
られ。又、第1ソース・フィールド及び第2ソース/拡
張フイールドのレジスタ番号rxtrzがジェネラルレ
ジスタ147へ与えられ、演算に使用されるソースデー
タが夫々ソースレジスタ156゜157へ送られる。(
ここで図示しないが演算命令のデータ・フィールドにイ
ミディエイト値が格納されている場合はこれがそのまま
第2ソースレジスタ157へ送られる)。
ここで述べたロード命令、ストア命令9分岐命令、演算
命令の各処理は同一クロックで並行して同時に行なわれ
る。
■パイプ5(時刻5):ロードアドレスレジスタ152
の物理番地5120がデータキャッシュ159へ与えら
れ、該当するデータがロードデータレジスタ162へ格
納される。(データキャッシュに無い場合は主記憶部よ
り該当するデータが読み出される)ストアアドレスレジ
スタ153の物理番地5136はデータキャッシュ15
9へ与えられ、ここにストアデータレジスタ154のデ
ータが書き込まれる。分岐先番地レジスタ155の分岐
命令については、その分岐条件がフラグレジスタ164
の内容を基に判断され1条件成立の場合は分岐先アドレ
スが第1段のプログラムカウンタ111へ送られる。条
件不成立の場合はこの分岐命令がキャンセルされる。
(第6図の例では条件不成立としている)オペレーショ
ンレジスタ158のオペレーションコード。
第1ソースレジスタ156.第2ソースレジスタ157
のデータは夫々算術論理演算回路160へ与えられ、こ
こで指定された演算(加算、減算等)が行なわれる。そ
してこの演算結果はデスティネーション・レジスタ16
3へ送られると共に゛その値に従ったフラグ(例えば正
ならば1.負ならば0等)がフラグレジスタ164にセ
ットされる。
二二で述べたロード命令、ストア命令9分岐命令、演算
命令の各処理も同一クロックで並行して同時に行なわれ
る。
■バイブロ(時刻6)二ロードデータレジスタ162の
データはジェネラルレジスタ147の対応するレジスタ
へ書き込まれる。つまり該ロード命令のデスティネーシ
ョン・フィールドに格納されたジェネラルレジスタ番号
がジェネラルレジスタ147へ送られている。又、デス
ティネーションレジスタ163のデータもジェネラルレ
ジスタ147の対応するレジスタへ書き込まれる。ここ
でも該演算命令のデスティネーション・フィールドに格
納されたジェネラルレジスタ番号がジェネラルレジスタ
147へ送られている。(これらは図示していない)次
に、種類の異なる4命令(ロード命令、ストア命令9分
岐命令、演算命令)に対し、デコーダ133による同時
実行の判断方法について述べる。
これは本発明の中核と云える部分であるので4命令の配
列順序の全ゆる場合について説明する。
■ 1番目の命令の実行 命令レジスタ132の1番目の命令は無条件でできる。
1番目の命令が無条件分岐命令ならば、これ以降の命令
をキャンセルする。条件付きの分岐命令かそれ以外のタ
イプならば、1番目の命令と2番目の命令の組み合わせ
で2番目の命令を実行するか、あるいは実行しないかが
決まる。(以下の■参照) ■ 2番目の命令の実行 X・・・2番目の命令の同時実行はしない。かつ、3番
目以降の同時実行はしない。つまり、1番目の実行のみ
■ ストアするメモリアドレスがロードするメモリアド
レスと異なるとき、同時に実行できる。
■ 1番目の命令のdstのジェネラルレジスタ番号と
ストア命令のジェネラルレジスタ番号とが異なるとき、
同時に実行できる。
■ 1番目の命令のdstのジェネラルレジスタ番号と
2番目の演算命令の5rclあるいは5rc2のジェネ
ラルレジスタ番号とが異なるとき、同時に実行できる。
(イ) 1番目の演算命令が条件を決める演算でないと
き、同時に実行できる。
2番目の命令が無条件分岐命令ならば、3番目以降の命
令をキャンセルする。また、上記の条件■〜(4)の各
れかに合致して同時実行できないとされた場合、これ以
降の命令の同時実行はしない。
ここで第7図(a)〜(d)は夫々上記■〜(4)に合
致した命令列の例である。
つまりこれらの命令列はメモリアドレスが同一であった
り((a ))、ジェネラルレジスタ番号が同一であっ
たり((b)(c))、条件決定のための演算である(
d)ために、並行して実行できないものである。
■ 3番目の命令の実行(1番目と2番目の命令の同時
実行はできるとする) ・1番目の命令がロード命令の時 X・・・3番目の命令の同時実行はしないやかつ53番
目以降の同時実行はしない。つまり、1番目と2番目の
命令の同時実行のみ。
■ ストア命令のメモリアドレスがロード命令のメモリ
アドレスと異なるとき、同時に実行できる。
■ 1番目あるいは2番目の命令のdatのジェネラル
レジスタ番号とストア命令のジェネラルレジスタ番号と
が異なるとき、同時に実行できる。
■ 1番目の命令のdatのジェネラルレジスタ番号と
3番目の演算命令の5rclあるいは5rc2のジェネ
ラルレジスタ番号とが異なるとき、同時に実行できる。
(4) 2番目の演算が条件を決める演算でないとき、
同時に実行できる。
・1番目の命令がストア命令の時 ■ 1番目あるいは2番目の命令のdatのジェネラル
レジスタ番号と3番目の演算命令src 1あるいは5
rc2のジェネラルレジスタ番号とが異なるとき、同時
実行できる。
■ 2番目の演算命令が条件を決める演算でないとき、
同時に実行できる。
・1番目の命令が演算命令の時 ×・・・3番目の命令の同時実行はしない。かつ、3番
目以降の同時実行はしない。つまり。
1番目と2番目の命令の同時実行のみ。
■ ストア命令のメモリアドレスがロード命令のメモリ
アドレスと異なるとき、同時に実行できる。
X・・・3番目の命令の同時実行はしない。かつ、3番
目以降の同時実行はしない。つまり、1番目と2番目の
命令の同時実行のみ。
■ ストア命令のメモリアドレスがロード命令のメモリ
アドレスと異なるとき、同時に実行できる。
■ 1番目あるいは2番目の命令のdatのジェネラル
レジスタ番号とストア命令のジェネラルレジスタ番号と
が一異なるとき、同時に実行できる。
■ 1番目の演算が条件を決める演算でない時、同時に
実行できる。
・1番目の命令が条件分岐命令の時 ×・・・3番目の命令の同時実行はしない、かつ、3番
目以降の同時実行はしない。つまり、1番目と2番目の
命令の同時実行のみ。
■ ストア命令のメモリアドレスがロード命令のメモリ
アドレスと異なるとき、同時に実行できる。
■ 2番目の命令のdstのジェネラルレジスタ番号と
ストア命令のジェネラルレジスタ番号とが異なるとき、
同時に実行できる。
■ 2番目の命令dstのジェネラルレジスタ番号と演
算命令の5rclあるいは5rc2のジェネラルレジス
タ番号とが異なるとき、同時に実行できる。
3番目の命令が無条件分岐命令ならば、これ以降の命令
をキャンセルする。また、上記の条件■〜0の各れかに
合致して同時実行できないとされた場合、これ以降の命
令の同時実行はしない。
■ 4番目の命令の同時実行(1番目、2番目。
3番目の命令の同時実行はできるとする)これは1番目
から4番目までの命令の種類が全てことなる場合である
・4番目の命令がロード命令の時、以下の■なら同時実
行できる。
■ ストア命令のメモリアドレスがロード命令のメモリ
アドレスと異なるとき、同時に実行できる。
・4番目の命令がストア命令の時、以下の■なら同時実
行できる。
■ ロード命令、演算命令のdatのジェネラルレジス
タ番号とストア命令のジェラルレジスタ番号とが異なる
とき、同時に実行できる。
・4番目の命令が演算命令の時、以下の■なら同時実行
できる。
■ ロード命令のdstのジェネラルレジスタ番号と演
算命令の5rclあるいは5rc2のジェネラルレジス
タ番号とが異なるとき、同時に実行できる。
・4番目が無条件分岐命令の時、同時実行できる。
・4番目が条件分岐命令の時、以下の(イ)ならば同時
実行できる。
(イ)演算命令が条件を決める演算でないとき、同時に
実行できる。
以上述べた同時実行可能性の判定方法により、デコーダ
133が4種類の命令が並行して実行できるか否かを決
定する。ところで上述した様に第4図の命令レジスタ1
32は8命令分格納できる。従ってデコーダ133は、
先頭の4命令分が同時に実行できないと判定した場合、
以降の4命令を先頭から順次取り出し、これらを組合せ
た4命令分(3命令分、2命令分の場合も有る)が同時
実行可能か否か判定する。ここで可能と判定された場合
、先頭の4命令の実行可能分と以降の4命令の抽出分と
を組合せた4命令(又は3命令、2命令)を次段のレジ
スタ142.143.144.145へ送る。
(4命令に足りない分はノツプ命令を当てる)又、デコ
ーダ133は、先頭の4命令の実行不可能分と以降の4
命令の残与分と組合せて実行可能か否かを次サイクルで
再度判定する。第8図は命令列に対して同時実行できる
組合せを、当初の配列順序によらずに再構成した例であ
る。ここでは1サイクル目の組合せとして、1,2.4
番目の命令が選ばれ、2サイクル目の組合せとして3,
5.6番目の命令が選ばれ、3サイクル目の組合せとし
て7,8番目の命令が選ばれ、4サイクル目の組合せと
して9,10番目の命令が選ばれている。
尚、上記実施例では命令長を128ビツトとしたが、6
4ビツトでも本発明は同様に実現できる。この場合はデ
ータ・フィールド26はたとえば32ビツトになるが、
レジスタ相対、つまり、64ビツトのレジスタの値にデ
ータ・フィールド26の値を加算した値を論理番地とす
れば、64ビツトのアドレス空間を直接アクセスできる
さらに、命令長が64ビツト、128ビツトと可変長命
令でも本発明は同様に実現できる。
〔発明の効果〕
以上述べた様に本発明によれば、種類の異なる4命令に
対し、これらのメモリアドレスやレジスタ番号が重複し
ていないか否か等をデコーダが判定し、これらが並行し
て実行可能と判定された場合には第4段のオペランドフ
ェッチ、第5段の実行において同時に処理される。従っ
てパイプラインにおいてその処理時間が大幅に短縮化さ
れるため、その実用的利点は絶大である。
【図面の簡単な説明】
第1図は本発明の一実施例の全体構成図、第2図は命令
のフォーマットを示す図、第3図は命令の種類毎の格納
内容を示す図、第4図は本発明の一実施例による中央処
理部の内部構成図、第5図は並べかえの必要の無い同時
実行できる命令列を示す図、第6図は第5図の命令列を
本実施例によりパイプライン処理したタイムチャート図
、第7図は同時実行できない命令列の例を示す図、第8
図は並べかえにより同時実行できる命令列を示す図であ
る。 11・・・中央処理部、  12・・・主記憶部、13
・・・入出力部、   21・・・命令、22・・・オ
ペレーション・フィールド、23・・デスティネーショ
ン・フィールド、24・・・第1ソース・フィールド、 25・・・第2ソース/拡張フイールド、26・・・デ
ータ・フィールド、 101・・・加算器、102・・
・ゲート、 111、121.131.141.151.161・・
・プログラムカウンタ、 112、146・・・物理番地変換回路。 122・・・物理番地レジスタ、 123・・・命令キャッシュ 132・・・命令レジス
タ、133・・・デコーダ、 142・・・ロード命令
レジスタ、143・・・ストア命令レジスタ、 144・・・分岐命令レジスタ、 145・・・演算命令レジスタ、 147・・・ジェネラルレジスタ。 152・・・ロードアドレスレジスタ、153・・・ス
トアアドレスレジスタ、154・・・ストアデータレジ
スタ。 155・・・分岐先アドレスレジスタ。 156、157・・・ソースレジスタ、158・・・オ
ペレーションレジスタ、159・・・データキャッシュ 160・・・算術論理演算回路、 162・・・ロードデータレジスタ、 163・・・デスティネーションレジススタ、164・
・・フラグレジスタ 代理人 弁理士 則 近 憲 佑 (Q) (b) Src2= imma4 (c) Src2= m [disp64) Src2=m(pc◆dial) 64)(d) 第 図 第 図

Claims (30)

    【特許請求の範囲】
  1. (1)命令列を格納した記憶部と、この記憶部より命令
    を読出して処理する中央処理部とを備えた電子計算機に
    おいて、前記中央処理部は複数種類の命令が並行して処
    理可能か否か判定する手段と、この手段により可能と判
    定された場合該複数種類の命令を並行して処理させる手
    段とを具備したことを特徴とする電子計算機。
  2. (2)前記複数種類の命令は、ロード命令、ストア命令
    、分岐命令及び演算命令から成るものである請求項1記
    載の電子計算機。
  3. (3)前記中央処理部は、パイプライン処理を行なうも
    のであり、特定段のパイプラインで前記複数種類の命令
    を並行して処理するものである請求項2記載の電子計算
    機。
  4. (4)前記パイプライン処理は命令アドレス変換、命令
    フェッチ、デコード、オペランドフェッチ、実行及びア
    ップデートの6段から成るものである請求項3記載の電
    子計算機。
  5. (5)前記特定段のパイプラインは、オペランドフェッ
    チ及び実行である請求項4記載の電子計算機。
  6. (6)前記中央処理部は、命令フェッチにおいて4命令
    ずつ読み出し、8命令をフェッチしておくものである請
    求項5記載の電子計算機。
  7. (7)前記中央処理部の判定する手段は、フェッチされ
    た8命令に対し、先頭の4命令をデコードし、この結果
    に応じて以降の命令をデコードに供するものである請求
    項6記載の電子計算機。
  8. (8)前記中央処理部の判定する手段は、デコードに供
    された4命令がロード命令、ストア命令、分岐命令、演
    算命令であるか否か、更にこれらが当該4命令の場合に
    並行して処理可能か否かを調べるものである請求項7記
    載の電子計算機。
  9. (9)前記中央処理部の判定する手段は、4命令が並行
    して処理可能か否か調べる場合、これらのアクセスする
    メモリアドレス、或いは使用するレジスタ番号が重複し
    ているか否かに従って判定するものである請求項8記載
    の電子計算機。
  10. (10)前記中央処理部の判定する手段は、分岐命令が
    無条件分岐である場合、これ以降の命令をキャンセルす
    るものである請求項8記載の電子計算機。
  11. (11)前記中央処理部の判定する手段は、ロード命令
    のメモリアドレスとストア命令のメモリアドレスが同一
    の場合、これらを並行して処理できないものとする請求
    項9記載の電子計算機。
  12. (12)前記中央処理部の判定する手段は、ロード命令
    或いは演算命令のデスティネーション・レジスタ番号と
    ストア命令のデスティネーション・レジスタ番号が同一
    の場合、これらを並行して処理できないものとする請求
    項9記載の電子計算機。
  13. (13)前記中央処理部の判定する手段は、ロード命令
    のデスティネーシヨン・レジスタ番号と演算命令のソー
    ス・レジスタ番号が同一の場合、これらを並行して処理
    できないものとする請求項9記載の電子計算機。
  14. (14)前記中央処理部の判定する手段は、演算命令が
    条件を決めるものである場合、これ以降の条件分岐命令
    とは並行して処理できないものとする請求項8記載の電
    子計算機。
  15. (15)前記中央処理部の判定する手段は、先頭の4命
    令がロード命令、ストア命令、分岐命令、演算命令でな
    い場合、又はこれらが並行して処理できないと決定され
    た場合、フェッチされた以降の4命令から該当する命令
    を取り出し、前記先頭の4命令の実行可能分と組合せて
    並行して処理できるか否か判定するものである請求項8
    記載の電子計算機。
  16. (16)前記中央処理部の判定する手段は、前記以降の
    4命令からの該当する命令が並行して処理できると判定
    した場合、前記先頭の4命令の実行不可能分と入れ替え
    るものである請求項15記載の電子計算機。
  17. (17)前記中央処理部の判定する手段は、次サイクル
    において前記先頭の4命令の実行不可能分と前記以降の
    4命令の残与分とからロード命令、ストア命令、分岐命
    令、演算命令を取り出し、これらが並行して実行可能か
    否かの判定を繰り返すものである請求項16記載の電子
    計算機。
  18. (18)前記中央処理部の処理させる手段は、オペラン
    ドフェッチ段において、ロード命令、ストア命令、分岐
    命令、演算命令が並行して実行可能と判定された場合、
    これらを夫々対応するレジスタにフェッチするものであ
    る請求項8記載の電子計算機。
  19. (19)前記中央処理部の処理させる手段は、オペラン
    ドフェッチ段において、ロード命令、ストア命令、分岐
    命令、演算命令の中で或る命令を除いた残りが並行して
    実行可能と判定された場合、前記或る命令をノップ命令
    に置き換えてこれらを夫々対応するレジスタにフェッチ
    するものである請求項16記載の電子計算機。
  20. (20)前記中央処理部の処理させる手段は、実行段に
    おいて、ロード命令によるメモリアドレスからの読み出
    し、ストア命令によるメモリアドレスへの書き込み、分
    岐命令による分岐条件のチェック、演算命令による算術
    論理演算を並行して実行するものである請求項18又は
    19記載の電子計算機。
  21. (21)命令列を格納した記憶部と、この記憶部から命
    令を読出して命令アドレス変換、命令フェッチ、デコー
    ド、オペランドフェッチ、実行、アップデートの6段か
    ら成るパイプライン処理を行なう中央処理部とを備えた
    電子計算機において、前記中央処理部は命令フェッチ段
    において4命令ずつ順次フェッチする命令レジスタと、
    デコード段において前記命令レジスタより先頭の4命令
    を読み出しこれらがロード命令、ストア命令、分岐命令
    、演算命令であって並行して実行可能か否かを判定する
    デコーダと、オペランドフェッチ段において前記デコー
    ダにより実行可能であると判定された場合4命令夫々を
    対応させてフェッチするレジスタ群と、実行段において
    前記レジスタ群のロード命令に従って前記記憶部よりデ
    ータを読み出す処理、ストア命令に従って前記記憶部へ
    データを書き込む処理、分岐命令に従って分岐条件をチ
    ェックする処理、演算命令に従って算術論理演算を行な
    う処理を並行して実行させる手段とを具備したことを特
    徴とする電子計算機。
  22. (22)前記デコーダは、分岐命令が無条件分岐である
    場合、これ以降の命令をキャンセルするものである請求
    項21記載の電子計算機。
  23. (23)前記デコーダは、ロード命令のメモリアドレス
    とストア命令のメモリアドレスが同一の場合、これらを
    並行して実行できないものとする請求項21記載の電子
    計算機。
  24. (24)前記デコーダは、ロード命令或いは演算命令の
    デスティネーシヨン・レジスタ番号とストア命令のデス
    ティネーシヨン・レジスタ番号が同一の場合、これらを
    並行して実行できないものとする請求項21記載の電子
    計算機。
  25. (25)前記デコーダは、ロード命令のデスティネーシ
    ョン・レジスタ番号と演算命令のソース・レジスタ番号
    が同一の場合、これらを並行して実行できないものとす
    る請求項21記載の電子計算機。
  26. (26)前記デコーダは、演算命令が条件を決めるもの
    である場合、これ以降の条件分岐命令とは並行して実行
    できないものとする請求項21記載の電子計算機。
  27. (27)前記デコーダは、先頭の4命令がロード命令、
    ストア命令、分岐命令、演算命令でない場合、又はこれ
    らが並行して実行できないと決定された場合、前記命令
    レジスタにフェッチされた以降の4命令から該当する命
    令を読み出し、前記先頭の4命令の実行可能分と組合せ
    て並行して実行できるか否か判定するものである請求項
    21記載の電子計算機。
  28. (28)前記デコーダは、前記以降の4命令からの該当
    する命令が並行して実行できる場合、前記先頭の4命令
    の実行不可能分と入れ替えるものである請求項27記載
    の電子計算機。
  29. (29)前記デコーダは、ロード命令、ストア命令、分
    岐命令、演算命令の中で或る命令を除いた残りが並行し
    て実行可能と判定された場合、前記或る命令をノップ命
    令に置き換えてこれらを夫々対応するレジスタにフェッ
    チするものである請求項28記載の電子計算機。
  30. (30)前記デコーダは、次サイクルにおいて前記先頭
    の4命令の実行不可能分と前記以降の4命令の残与分と
    からロード命令、ストア命令、分岐命令、演算命令を取
    り出し、これらが並行して実行可能か否かの判定を繰り
    返すものである請求項28記載の電子計算機。
JP20933690A 1990-08-09 1990-08-09 電子計算機 Expired - Lifetime JP2877468B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20933690A JP2877468B2 (ja) 1990-08-09 1990-08-09 電子計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20933690A JP2877468B2 (ja) 1990-08-09 1990-08-09 電子計算機

Publications (2)

Publication Number Publication Date
JPH0496132A true JPH0496132A (ja) 1992-03-27
JP2877468B2 JP2877468B2 (ja) 1999-03-31

Family

ID=16571265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20933690A Expired - Lifetime JP2877468B2 (ja) 1990-08-09 1990-08-09 電子計算機

Country Status (1)

Country Link
JP (1) JP2877468B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
US6920548B2 (en) 1992-05-01 2005-07-19 Seiko Epson Corporation System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor

Also Published As

Publication number Publication date
JP2877468B2 (ja) 1999-03-31

Similar Documents

Publication Publication Date Title
EP3329362B1 (en) An apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers
US6889318B1 (en) Instruction fusion for digital signal processor
US5687336A (en) Stack push/pop tracking and pairing in a pipelined processor
US4439828A (en) Instruction substitution mechanism in an instruction handling unit of a data processing system
CA1325283C (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
JPS6217252B2 (ja)
JP3543181B2 (ja) データ処理装置
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JPH02282826A (ja) 同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理
JPH0496825A (ja) データ・プロセッサ
JP2620511B2 (ja) データ・プロセッサ
JPH10232779A (ja) 命令並列処理方法及び装置
WO2020249052A1 (zh) 一种gpu中显式独立掩码寄存器的掩码操作方法
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
JPS63240664A (ja) 高速処理計算機
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
US7600102B2 (en) Condition bits for controlling branch processing
JPH0496132A (ja) 電子計算機
US7346763B2 (en) Processor instruction with repeated execution code
JP3512272B2 (ja) 比較演算装置およびグラフィック演算システム
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH10105399A (ja) データ処理装置