JPH07253882A - 命令制御装置 - Google Patents

命令制御装置

Info

Publication number
JPH07253882A
JPH07253882A JP6043529A JP4352994A JPH07253882A JP H07253882 A JPH07253882 A JP H07253882A JP 6043529 A JP6043529 A JP 6043529A JP 4352994 A JP4352994 A JP 4352994A JP H07253882 A JPH07253882 A JP H07253882A
Authority
JP
Japan
Prior art keywords
instruction
register
value
command
registers
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.)
Pending
Application number
JP6043529A
Other languages
English (en)
Inventor
Hiroyasu Nishiyama
博泰 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6043529A priority Critical patent/JPH07253882A/ja
Publication of JPH07253882A publication Critical patent/JPH07253882A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】既存のアーキテクチャと命令互換性を保ったま
ま、ハードウェアに条件付き実行と多数のレジスタを参
照する機能を追加して、効率良く実行させる。 【構成】命令内のフィールドに指定された複数個のレジ
スタの値によって、後続するの複数個の命令を実行する
か否かを決定する命令と、命令内のフィールドに指定さ
れた複数個の値によって、後続する複数個の命令がレジ
スタファイル参照を行なう際の添字を変更することによ
り、命令フィールドで指定可能な数より多くのレジスタ
を参照できる命令とを、命令制御装置に付加する。 【効果】分岐命令の実行回数が減少し命令パイプライン
の乱れが少なくなるので、実行性能が向上する。また、
プログラムで参照できるレジスタが増加し、メモリ参照
回数が減少するので、科学技術計算の高速化に有効であ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は科学技術計算を高速に実
行するためのディジタル型電子計算機の命令制御装置に
関する。
【0002】
【従来の技術】科学技術計算を高速に実行するには、分
岐命令の実行頻度を低下させることや、メモリの参照回
数を減少させることが重要である。このためには、、条
件付きの命令実行や、多数のレジスタを使用することを
可能にすることが有効である。
【0003】条件付き実行とは、各命令のオペランドフ
ィールドで指定されたプレディケートと呼ばれるレジス
タの値に従って命令を実行するか否かを決定する機能で
ある。条件分岐命令の実行は命令パイプラインの乱れを
発生し、命令実行速度を低下させるため、条件文を条件
分岐命令の組合せではなく条件付き実行にコンパイルす
ることは、科学技術計算の高速な実行に効果がある。条
件付き実行の機能は、従来はCydra 5(Rau, Yen, Yen, T
owle: Cydra 5 Departmental Supercomputer,COMPUTER,
Vol.22, No.1, IEEE)のような、命令語長が非常に長い
多長命令(VLIW)方式の科学技術用計算機で用いられてい
た。命令語長が32ビットの既存アーキテクチャ上では、
多長命令方式のようにプレディケートを指定するための
フィールドが存在しないため、これまでのところ既存ア
ーキテクチャ上で条件付き命令実行をサポートする機構
は採り入れられていない。
【0004】既存アーキテクチャ上での条件付き実行と
類似の機構としては、Hewlett Packard社のPA-RISC(PA
-RISC 1.1 Architecture and Instruction Set Referen
ce Manual, Hewlett Packard)で採り入れられている、
命令の実行結果に従って次の1つの命令を実行を無効化
する機構が存在する。
【0005】多数のレジスタを使用可能とすることは、
アクセス速度の遅いメモリとのやりとりを減少させるこ
とになり、多量のメモリを参照する科学技術計算の高速
な実行に効果がある。多数のレジスタを使用することを
可能とする方式としては、上記Cydra 5で採用された回
転レジスタファイルがある。回転レジスタファイルは、
多数のレジスタを用いて、ループの各繰り返しに対して
レジスタの集合を割り当て、これを切り替えながらルー
プの処理を行なう機構である。回転レジスタファイルを
持つアーキテクチャでは、各命令は、レジスタ番号と繰
り返しオフセットを指定してレジスタファイルを参照す
る。回転レジスタファイルの場合も、命令語にレジスタ
参照のための繰り返しのオフセットフィールドを付加す
る必要があるため、これまでのところ多長命令方式の計
算機でのみ実現されている。
【0006】命令語長が32ビットの既存アーキテクチャ
との互換性を保った上で、多数のレジスタを有する回転
レジスタと類似の効果を得る方式としては、スライドウ
ィンドウ方式のレジスタウィンドウを用いたアーキテク
チャ(位守、中村、朴、中澤:スライドウィンドウ方式
による疑似ベクトルプロセッサ、情報処理学会論文誌、
Vol.34, No.12, 1993年)と、レジスタコネクションに
よる方式 (Kiyohara, Mahlke, Chen, Bringmann, Hank,
Anik, Hwu: Register Connection: A New Approach to
Adding Registers into Instruction Set Architectur
es, In Proceedings of The 20th International Sympo
sium on Computer Architecture, 1993)が提案されてい
る。スライドウィンドウ方式では、多数のレジスタのう
ち、命令が一度に参照できるレジスタを既存アーキテク
チャと同じ個数とし、ウィンドウと呼ばれる命令から参
照できるレジスタの集合を、ループの繰り返し毎に物理
レジスタ上で移動することで回転レジスタと類似の機構
を実現している。レジスタコネクションによる方式で
は、命令で参照可能なレジスタそれぞれに対して物理レ
ジスタ番号との対応表を用意し、レジスタファイルを間
接的に参照することで多数のレジスタを利用可能として
いる。
【0007】
【発明が解決しようとする課題】条件付き実行は科学技
術計算の高速な実行に有効な技術であるが、従来の方式
では、命令にプレディケートを指定するフィールドを追
加する必要があるため、既存アーキテクチャと命令互換
性が保たれないという問題がある。 Hewlett Packard社
のPA-RISCなどで採用されている、次の命令の実行を無
効化する機構は、既存のアーキテクチャ上で、条件付き
実行に類似した機能を実現するが、条件付きで実行した
い命令1つにつき、これを実行するか否かを決定する命
令を1つ必要とするため、命令数が増加し性能が低下し
てしまう。
【0008】同様に、多数のレジスタを使用可能とする
ことは、科学技術計算の高速な実行に有効であり、その
方式としては、回転レジスタファイルが知られている。
回転レジスタをサポートするためには、命令に繰り返し
のオフセットを示すフィールドを追加する必要があるた
め、既存アーキテクチャと命令互換性が保たれないとい
う問題がある。
【0009】スライドウィンドウ方式では、回転レジス
タに類似した機能を提供するが、命令が一度に参照でき
るレジスタは限られているため、多量のレジスタの参照
を必要とする問題では利用可能なレジスタが不足し、そ
の場合には多数のレジスタがハードウェア上は存在する
にも関わらず、低速なメモリへの参照を行う必要があ
る。また、レジスタコネクションによる方式では、各レ
ジスタについて物理レジスタ番号との対応表を管理しな
くてはならないため、ハードウェアの実現とソフトウェ
アによる利用が繁雑になる。
【0010】本発明は以上のような課題に対して、既存
のアーキテクチャのと互換性を保った上で、 1. レジスタの値に従って命令を実行するか否かを決定
する命令制御装置と、 2. 多数のレジスタを参照できるようにする命令制御装
置 とを提供することを目的とする。
【0011】
【課題を解決するための手段】このため、本発明では、
オペランドに指定されたレジスタの値に従って、後続す
る命令の実行を制御する命令(以下PRED命令とする)を
有する命令制御装置により、既存のアーキテクチャと互
換性を持つアーキテクチャ上で、条件付き実行と同様の
機能を実現する。さらに、後続する命令のレジスタファ
イル参照のための添字を変更する命令(以下RR命令とす
る)を有する命令制御装置により、既存のアーキテクチ
ャと命令互換性を持つアーキテクチャ上で、多数のレジ
スタを参照することを可能とする。
【0012】各命令の動作の概要を述べる。命令制御ユ
ニットでは以下のような処理を実行する: 1. PRED命令をフェッチすると、PRED命令のオペランド
に指定された固定個のレジスタを記憶しておき、PRED命
令に後続するi番目の命令をフェッチした際に、PRED命
令のi番目のオペランドに指定されたレジスタの値に従
って命令を実行するか否かを決定する。
【0013】2. 多数のレジスタを持つハードウェアを
持ち、レジスタファイル参照のための添字(以下カレン
トウィンドウポインタとする)からの相対位置でレジス
タファイルの参照を行うアーキテクチャを仮定する。こ
のアーキテクチャ上で、 RR命令をフェッチすると、
RR命令のオペランドに指定された複数の値を記憶して
おき、RR命令に後続するi番目の命令を実行する際に、R
R命令のi番目のオペランドに指定された値をカレントウ
ィンドウポインタの値に加え、この値をレジスタファイ
ル参照のための添字としてレジスタファイルを参照し、
命令を実行する。
【0014】
【作用】手段1により、PRED命令のオペランドに指定し
たレジスタの値に従って、後続する命令の実行をするか
否かを決定することが可能となる。これにより、既存の
アーキテクチャにPRED命令を付加することで、条件付き
実行と同様な機能が実現され、課題1を解決することが
できる。
【0015】手段2により、RR命令に後続する命令を実
行する際に、レジスタファイルを参照するための添字
を、RR命令のオペランドで指定した値で変更することが
可能となる。この機能により、既存のアーキテクチャと
命令互換性を守った上で、多数のレジスタを参照する機
能が実現され、課題2を解決することができる。
【0016】以上の手段により、既存アーキテクチャと
命令互換性を保った上で、条件付き実行と多数のレジス
タを参照するための機構とを実現することが可能とな
り、これにより科学技術計算を高速に実行することがで
きる。
【0017】
【実施例】以下、本発明の実施例を図表を参照しつつ説
明する。本実施例では、通常の RISC型プロセッサと同
じく、命令幅が32ビット、命令フィールドで指定可能な
レジスタが32個のアーキテクチャを想定する。
【0018】まず、PRED命令の1つの実施例を説明す
る。ここでは、1つのPRED命令で後続する4つの命令を
実行するか否かを制御できるものとし、さらに、レジス
タの値の真偽を反転するか否かを指定できるものとす
る。このため、PRED命令は4つのオペランドをとり、そ
れぞれのオペランドは命令を実行するか否かを決定する
レジスタと、レジスタの値の真偽を反転するか否かを指
定するものとする。なお、5つ以上のオペランドに対し
ても同様に実現できる。
【0019】図1はPRED命令の形式の例である。この図
で101はPRED命令の命令コードを示す8ビットのフィール
ドである。102以降の4つのフィールドは、PRED命令に後
続する4つの命令を制御するレジスタとその値の真偽を
反転するか否かを指定する6ビットのフィールドで、6ビ
ットのフィールドのうち、5ビットで32個のレジスタを
指定し、残る1ビットで値の真偽を反転するか否かを指
定する。 命令制御装置は、PRED命令に後続する4つの命
令うち、i番目の命令をフェッチした際に、PRED命令のi
番目のフィールドで指定されたレジスタを参照し、レジ
スタの値が真かつ真偽の反転が指定されていないか、レ
ジスタの値が偽かつ真偽の反転が指定されている場合
に、命令の実行を行わないようにする。
【0020】図2は分岐を含む原始プログラムの例であ
る。ここで、QとRは定数とする。このプログラムを従来
のアーキテクチャ向けにコンパイルした結果を図3に示
す。次に、図2のプログラムをPRED命令を用いたアーキ
テクチャ向けにコンパイルした結果を図4に示す。図4
のコンパイル結果では、命令401によって命令402、命令
403、命令404、命令405を実行するか否かを決定するレ
ジスタを指定している。ここでは、PRED命令401の1番目
と4番目のオペランドにレジスタTを指定し、2番目のオ
ペランドにレジスタp、3番目のオペランドにレジスタp
の真偽を反転したものを指定している。ここに示すよう
に、PRED命令のオペランドにおいて、レジスタの反転の
指定は!で表すものとする。レジスタTの値は常に真であ
るものとすると、命令402と命令405は常に実行され、命
令403 はレジスタpの値が真の場合、命令404はレジスタ
pの値が偽の場合に実行される。
【0021】図3のコンパイル結果では、命令301と命
令302の分岐命令の数だけ命令数が多くなっており、か
つ、分岐の実行を行なうと命令実行パイプラインに乱れ
を生じるため、図4のプログラムは図3のプログラムと
比較して、高速に実行することができる。
【0022】図5はPRED命令を実現するためのハードウ
ェアの例である。命令制御回路 501は、PRED命令をフェ
ッチすると、オペランドフィールドに指定されたレジス
タの番号とレジスタの真偽を反転するかどうかの指定
を、逆順に命令制御条件レジスタ502に記憶し、条件選
択用のレジスタ503の値を、PRED命令が制御する命令の
数に設定にする。命令制御回路501が命令をフェッチす
る場合には、条件選択用のレジスタ503を調べ、その値
が0以上であれば、条件選択用のレジスタ503の値を1減
じ、条件選択用のレジスタが指している命令制御条件レ
ジスタ502のフィールドを読みだす。次に、命令制御条
件レジスタのフィールドで指定されたレジスタをレジス
タファイル504から読みだし、レジスタの値が真かつレ
ジスタの真偽値を反転する指定がないか、レジスタの値
が偽かつレジスタの真偽値を反転する指定がある場合
に、命令の実行を行なわない。
【0023】続いて、RR命令の1つの実施例を説明す
る。ここでは、ハードウェアは128個のレジスタからな
るレジスタファイルを持つものとし、通常の命令による
レジスタの参照はスライドウィンドウ方式のレジスタウ
ィンドウにより、カレントウィンドウポインタの指す位
置から32個のレジスタを参照できるものとする。 RR 命
令は4つのオペランドをとり、後続する命令がソースレ
ジスタを参照する際のレジスタファイル参照のオフセッ
ト値を指定するものとする。
【0024】図6はRR命令の形式の例である。この図で
601はRR命令の命令コードを示す 4ビットのフィールド
である。602以降の4つのフィールドは-127から0までの
値をとる7ビットのフィールドからなり、レジスタファ
イルを参照する際のオフセットを指定する。命令制御装
置が、RR命令に後続する4つの命令のうちi番目の命令を
実行する場合、カレントウィンドウポインタにRR命令の
i番目のフィールドで指定された値を加えて、ソースレ
ジスタに対するレジスタファイルの参照を行なう。ここ
では、ターゲットレジスタについては、レジスタファイ
ル参照のための添字の変更は行なわないものとする。
【0025】図7はDO文を含む原始プログラムの例であ
る、ここで、Qは定数値とする。これを従来のアーキテ
クチャ向けにコンパイルした例を図8に示す。図8のコ
ードでは、ロード命令801によって配列の要素x[i-50]を
メモリからロードしている。この値は加算命令802によ
って50回前の繰り返しで計算したものであり、多数のレ
ジスタが利用可能であればレジスタに保存しておけばよ
く、メモリから再度読み出す必要はない。次に、図7の
コードを本方式を用いたアーキテクチャ向けにコンパイ
ルした結果を図9に示す。図9のプログラムでは、レジ
スタウィンドウのスライドを行なう命令906によって各
繰り返し毎にレジスタウィンドウを2つづつスライドさ
せており、レジスタt0およびt1は繰り返し毎に異なる物
理レジスタを指すことになる。RR命令901では、最初の
オペランドに-100を指定することにより、RR命令901に
後続する最初の命令902でのソースレジスタt1の参照
が、50回前の繰り返しで命令903により計算したt1の値
となるようにしている。命令901の2番目から 4番目まで
のオペランドには0を指定しているため、命令903から命
令905までの命令のソースレジスタ参照のための添字は
変更されないで実行される。このように、図8の例で必
要となっているメモリから値の再ロードを行なう命令
が、RR命令を用いることにより図9の例では不要となっ
ている。既存アーキテクチャにスライドウィンドウを適
用しただけでは、一度に参照可能なレジスタが限られる
ため、図8の例のようにメモリから再ロードしなければ
ならない。
【0026】図10はRR命令を実現するためのハードウ
ェアの例である。命令制御回路 1001は、RR命令をフェ
ッチすると、オペランドに指定された4つの値をオフセ
ット保存レジスタ1002に逆順に記録し、オフセット選択
用のレジスタ1003の値を、 RR命令が制御する命令の数
に設定にする。命令制御回路1001が命令を実行する場合
には、オフセット選択用レジスタ1003の値を調べ、その
値が0以上であれば、オフセット選択用レジスタ1003の
値を1減じ、オフセット選択用レジスタ1003が指してい
るオフセット保存レジスタの値を、カレントウィンドウ
ポインタ1004の値に加え、この値にレジスタ番号を加え
た値をレジスタウィンドウの添字として、レジスタファ
イル1005からソースレジスタを読み出し、実行ユニット
1006によって実行を行なう。
【0027】なお、本実施例ではRR命令ではソースレジ
スタのレジスタファイル参照の添字のみを変更するもの
としたが、この他にも、デスティネーションレジスタの
みを変更したり、ソースレジスタ、デスティネーション
レジスタの両方を変更するなど幾つかの実施方式を考え
ることができる。
【0028】
【発明の効果】本発明によれば、既存のアーキテクチャ
と互換性を保ったままで、条件付き実行と多数のレジス
タを参照するための機能を付け加えることができる。条
件付き実行は、プログラム中の条件分岐命令を不要に
し、条件分岐のための命令数の削減や、命令パイプライ
ンの乱れを除去する効果があり、科学技術計算の高速化
に効果がある。同様に、多数のレジスタを参照可能にす
ることは、低速なメモリとのデータ転送回数を減少さ
せ、科学技術計算の高速化に効果がある。
【図面の簡単な説明】
【図1】PRED命令の命令形式の説明図である。
【図2】条件文を含んだ原始プログラムの例である。
【図3】図2の原始プログラムを従来のアーキテクチャ
用にコンパイルした場合のコードの例である。
【図4】図2の原始プログラムをPRED命令を用いてコン
パイルした場合のコードの例である。
【図5】PRED命令を実現するためのハードウェアの構成
図である。
【図6】RR命令の命令形式の説明図である。
【図7】DO文を含んだ原始プログラムの例である。
【図8】図7の原始プログラムを従来のアーキテクチャ
用にコンパイルした場合のコードの例である。
【図9】図7の原始プログラムをRR命令を用いてコンパ
イルした場合のコードの例である。
【図10】RR命令を実現するためのハードウェアの構成
図である。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】原始プログラムにおける条件分岐を含むコ
    ードを計算機で実行する場合に、命令内のフィールドに
    指定された複数個のレジスタの値によって、以降の複数
    個の命令を実行するか否かを決定する命令を有すること
    を特徴とする命令制御装置。
  2. 【請求項2】多数のレジスタを有する演算装置に対し
    て、命令内のフィールドにレジスタファイルを参照する
    ためのオフセットを指定することで、以降の複数個の命
    令が参照するレジスタを変更することにより、命令フィ
    ールドで指定可能な数より多くのレジスタを参照するこ
    とを可能とする命令を有することを特徴とする命令制御
    装置。
JP6043529A 1994-03-15 1994-03-15 命令制御装置 Pending JPH07253882A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6043529A JPH07253882A (ja) 1994-03-15 1994-03-15 命令制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6043529A JPH07253882A (ja) 1994-03-15 1994-03-15 命令制御装置

Publications (1)

Publication Number Publication Date
JPH07253882A true JPH07253882A (ja) 1995-10-03

Family

ID=12666279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6043529A Pending JPH07253882A (ja) 1994-03-15 1994-03-15 命令制御装置

Country Status (1)

Country Link
JP (1) JPH07253882A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001016717A1 (fr) * 1999-08-30 2001-03-08 Ip Flex Inc. Unite de commande et support d'enregistrement
US6842852B1 (en) 1999-02-08 2005-01-11 Matsushita Electric Industrial Co., Ltd. System and method for controlling conditional branching utilizing a control instruction having a reduced word length

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842852B1 (en) 1999-02-08 2005-01-11 Matsushita Electric Industrial Co., Ltd. System and method for controlling conditional branching utilizing a control instruction having a reduced word length
WO2001016717A1 (fr) * 1999-08-30 2001-03-08 Ip Flex Inc. Unite de commande et support d'enregistrement
WO2001016710A1 (fr) * 1999-08-30 2001-03-08 Ip Flex Inc. Processeur de donnees
US6826674B1 (en) 1999-08-30 2004-11-30 Ip Flex, Inc. Program product and data processor
KR100491593B1 (ko) * 1999-08-30 2005-05-27 아이피플렉스 가부시키가이샤 데이터 처리장치
US6904514B1 (en) 1999-08-30 2005-06-07 Ipflex Inc. Data processor
AU782238B2 (en) * 1999-08-30 2005-07-14 Ip Flex Inc. Control program product and data processing system
CN1301459C (zh) * 1999-08-30 2007-02-21 Ip菲力股份有限公司 数据处理系统及其控制方法

Similar Documents

Publication Publication Date Title
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
US4740893A (en) Method for reducing the time for switching between programs
CA1174370A (en) Data processing unit with pipelined operands
KR0149658B1 (ko) 데이터 처리장치 및 데이터 처리방법
US5581721A (en) Data processing unit which can access more registers than the registers indicated by the register fields in an instruction
US4398245A (en) Data processing system having an instruction pipeline for processing a transfer instruction
US5386531A (en) Computer system accelerator for multi-word cross-boundary storage access
JPH06236268A (ja) 命令の長さを判定する装置と方法
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
USRE32493E (en) Data processing unit with pipelined operands
EP0543366B1 (en) Data processing method and apparatus
JPH0512750B2 (ja)
JPH1097423A (ja) ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
EP1193594B1 (en) Register renaming apparatus and processor
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US5729723A (en) Data processing unit
JPH07253882A (ja) 命令制御装置
JPH0512751B2 (ja)
JP3504355B2 (ja) プロセッサ
JP3619343B2 (ja) データ処理装置と方法
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP2861560B2 (ja) データ処理装置
WO2002050667A2 (en) Speculative register adjustment
EP0634717B1 (en) Data processing unit
JP2772100B2 (ja) 並列命令フェッチ機構