JPH0228723A - ループ命令実行方式 - Google Patents

ループ命令実行方式

Info

Publication number
JPH0228723A
JPH0228723A JP17852088A JP17852088A JPH0228723A JP H0228723 A JPH0228723 A JP H0228723A JP 17852088 A JP17852088 A JP 17852088A JP 17852088 A JP17852088 A JP 17852088A JP H0228723 A JPH0228723 A JP H0228723A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
queue
branching
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
JP17852088A
Other languages
English (en)
Inventor
Tsutomu Akasaka
赤坂 勉
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 JP17852088A priority Critical patent/JPH0228723A/ja
Publication of JPH0228723A publication Critical patent/JPH0228723A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 記憶装置より順次命令を読め出して実行するデータ処理
装置におけるループ命令実行方式に関し、データ処理装
置、特にパイプラインによって複数個の命令が並列に実
行されるデータ処理装置において実行されるプログラム
が分岐命令を用いて小さなループを構成している場合で
の、パイプラインの乱れを無くして、該ループの実行速
度を高速化することを目的とし、 先行する (実行済みの)1つ、又は複数個の命令、及
びその命令のアドレスを識別する情報を蓄えるキューと
、命令解読部において分岐命令を検出したとき、上記キ
ューの各エントリの命令アドレスに、該分岐命令の分岐
先アドレスと一致するものがあるか否かを、分岐決定タ
イミングで検出する手段とを備え、該命令解読部におい
て分岐命令を検出し、上記の検出手段によって、分岐決
定時に上記キューの各エントリのアドレスに上記分岐先
アドレスと一致する命令があることを検出したとき、該
キューの一致したエントリから命令を抽出して、上記命
令解読部の命令レジスタに供給するように構成する。
〔産業上の利用分野〕
本発明は、記憶装置より順次命令を読め出して実行する
データ処理装置におけるループ命令実行方式に関する。
通常、複数個の命令を並列に実行するパイプライン方式
のデータ処理装置においては、命令の流れの中に分岐命
令があると、該パイプラインでの命令の流れを乱す要因
となる。
特に、フォートラン(FORTRAN)言語で記述され
たプログラムの中のrDO文」で記述されている「DO
ループ」の中が、例えば、1ステートメントしかないよ
うな場合には、コンパイラで機械語に翻訳した場合、数
命令のループを構成する。具体例で言えば、スカラ計算
機でベクトル演算を行う場合には、要素数だけ同じ演算
が繰り返すループ処理となることから、該ベクトル演算
は上記rDO文」で記述されることが多い。
このように、通常のデータ処理装置においては、数命令
といった小さなループを実行するケースが多いことから
、該ループ処理が含まれていても、パイプラインの流れ
を乱すことなく、或いは、ルプの為の分岐命令を実行す
る度に、該分岐先の命令を主記憶からフェッチすること
なく、効果的に該ループ処理を含むプログラムの実行が
できるループ命令実行方式が必要とされる。
〔従来の技術と発明が解決しようとする課題〕第3図は
従来の分岐命令実行方式を説明する図である。
記憶装置から順次命令を読み出して実行するデータ処理
装置の場合、通常のシーケンシャルな命令列を実行する
場合では、実行すべき命令は予め分かっているので、先
行して今後実′行する命令を読み出しておくことが可能
であるが、分岐命令の次のアドレスは、該分岐命令を実
行する迄確定しないので、分岐命令に先行して命令の読
み出しを行うことができない。
第3図に示した逐次実行型のデータ処理装置、例えば、
パイプライン方式のデータ処理装置においては、分岐命
令を実行する時には、命令解読部1の命令レジスタ11
の操作部をデコーダ13でデコードして分岐命令である
ことが認識されたとき、シーケンス制御部6において、
分岐条件決定ステージで、先行して読み出されている命
令群をキャンセルし、アドレス生成部5で生成した分岐
アドレスによって分岐先命令をフェッチしてから次の命
令を実行していた。
従って、分岐命令を用いて小さなループをプログラムが
構成している場合には、同じアドレスの分岐命令を実行
する度に、ループ先の分岐アドレスからの命令の読み出
しくフェッチ)を繰り返さなければならないという問題
があった。
該データ処理装置がパイプライン方式の場合には、ルー
プの度に、該パイプラインでの命令の流れが乱されると
いう問題があった。
本発明は上記従来の欠点に鑑み、記憶装置より順次命令
を読み出して実行するデータ処理装置におけるループ命
令実行方式において、ループを構成している分岐命令を
高速に実行すると共に、分岐先命令のフェッチを減少さ
せて、メモリアクセスの競合を減少させ、該データ処理
装置の性能を向上させるループ命令実行方式を提供する
ことを目的とするものである。
〔課題を解決するための手段〕
第1図は本発明のループ命令実行方式の原理構成図であ
る。
上記の問題点は下記の如くに構成されたループ命令実行
方式によって解決される。
記憶装置より順次命令を読み出して実行するデータ処理
装置において、 先行する1つ、又は複数個の命令、及びその命令のアド
レスを識別する情報を蓄えるキ1.−2と、命令解読部
1において分岐命令を検出したとき、上記キュー2の各
エントリの命令アドレスに、該分岐命令の分岐先アドレ
スと一致するものがあるか否かを、分岐決定タイミング
で検出する手段67とを備え、 該命令解読部1において分岐命令を検出し、上記の検出
手段6,7によって、分岐決定時に上記キュー2の各エ
ントリのアドレスに上記分岐先アドレスと一致する命令
があることを検出したとき、該キュー2の一致したエン
トリから命令を抽出して、上記命令解読部1の命令レジ
スタ11に供給するように構成する。
〔作用〕
即ち、本発明によれば、記憶装置より順次命令を読み出
して実行するデータ処理装置において、先ず、命令解読
部1の命令レジスタ11に読み込まれている命令は、命
令解読部1のデコーダ13でデコードされ、該デコード
内容がシーケンス制御部6に送出される。同時に、命令
アドレス(分岐アドレス)がアドレス生成部5で生成さ
れる。
命令コードと命令アドレスは、■命令実行される毎に、
実行済み命令キュー 2に順送りにされる。
命令解読部1のデコーダ13で分岐命令を検出すると、
シーケンス制御部6ば、条件判断部65で1ブランチ成
功」時に、比較器7の1つが一致信号を送出している時
、信号線100を゛オン゛ とすると共に、信号線10
1でセレクタ(SEL) 12を制′41Hシて、該一
致のあったエントリを選択し、上記信号線100により
、セレクタ(SQL) 10を制御して、上記実行済み
命令キュー2からの上記選択した命令を命令レジスタ1
1に入力する。
即ち、命令レジスタ11の内容をデコーダ13でデコー
ドした結果が分岐命令であって、分岐が成功した場合に
は、若し分岐アドレスが実行済み命令キュー2の中の命
令アドレスと一致することが検出されると、上記のよう
にして信号yAIO0,101が付勢され、次の分岐命
令迄、その内容がフリップフロップ(FP) 6162
に保持されるように機能する。
この結果、若し、分岐アドレスと実行済み命令キュー2
の命令アドレスとの一致が検出されると、該一致のあっ
たエントリ迄の実行済み命令キュ2のエントリと命令レ
ジスタ21迄に、ループを構成している全命令が含まれ
ることになり、ルプ実行中は上記信号線100.101
が不変であるので、常に、該実行済み命令キュー2から
命令レジスタ11に当該ループ中の全命令が供給される
ように機能する。
従って、本発明の実行済み命令キューにループ全体が入
ってしまうループの実行においては、切土記憶等への命
令フェッチが不要となり、分岐命令の高速な実行ができ
ると共に、命令フェッチが減少して、メモリアクセスの
競合が少なくなり、当該データ処理装置の性能が向上す
る効果が得られる。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明のループ命令実行方式の原理構成
図であり、第2図は本発明の一実施例を示した図であっ
て、(a)は全体の構成例を示し、(b)はシーケンス
制御部の本発明に関わる部分の詳細例であり、第1図、
第2図に示した命令実行済み命令キュー2.比較器7.
シーケンス制御部6、及び該シーケンス制御部6から出
力される制御信号100.101が本発明を実施するの
に必要な手段である。尚、企図を通して同じ符号は同じ
対象物を示している。
以下、第1図を参照しながら、第2図によって本発明の
ループ命令実行方式を説明する。
先ず、(a)図に示した実施例においては、アドレスの
生成は命令レジスタ11に命令が入った次のサイクルに
行われる。
アドレス生成部5のレジスタ5L52に、例えば、ペー
スレジスタ(BR)、ディスプレイスメント(DR)の
、それぞれの値がセントされると同じタイミングで、命
令がシフトレジスタ8に入力される。
その次のサイクルで、本発明の実行済み命令キュー2の
左端のエントリに、上記シフトレジスタ8と加算器53
の出力が入力されると同時に、実効アドレスである該加
算器53の出力と該実行済み命令キュー2のアドレス部
22が、それぞれ、比較器7によって比較される。
第2図(b)に示したシーケンス制御部6においては、
デコーダ13の出力である分岐命令検出時に“オン′ 
となる信号30を受は取ると、そのタイミング(該分岐
命令が命令レジスタ11に保持されている間中)だけ、
マルチプレクサ(MPX) 6364のバイパス側を選
択するように機能する。
そして、同じタイミングでフリップフロップ(FF) 
6L62にクロックが入り、分岐条件決定サイクルにお
いて、フリップフロップ(FF) 61がセットされる
と共に、上記バイパスルートで実行済み命令キュー選択
信号100を出力し、以後、該フリップフロップ(FF
) 61の出力が該選択信号100を形成し、フリップ
フロップ(FF) 62は一致出力が得られた時点、即
ち、分岐先アドレスが生成された時点でセットされると
共に、バイパスルートで実行済み命令キューエントリ選
択信号101を出力し、以後該フリップフロップ(FF
) 62が該選択信号101を形成する。そして1、以
後、次の分岐命令が実行される迄、それぞれの選択信号
100,101は保持される。
こうして、選択信号100.101は分岐命令の時だけ
変化し、命令レジスタ11 と実行済み命令キュ2の中
に、該ループ中の全ての命令が入る場合(本命令では、
5命令迄のループ長が許される)には、該ループ内の命
令を実行している間は、常に、上記選択信号100,1
01が“オン゛となり、命令レジスタ11の入力として
、本発明の実行済み命令キュー2の、上記−散出力が得
られたエントリが上記選択信号101で選択されること
により、該ループの実行においては、−切の主記憶等へ
の命令フェッチは不要となるように動作する。
このように、本発明は、記憶装置より順次命令を読み出
して実行するデータ処理装置において、ループ命令を実
行するのに、1つ、又は複数個の実行済み命令と、その
アドレスを識別できる情報を蓄えるキューを設け、命令
解読部において分岐命令を検出したとき、該キューに該
分岐命令の分岐先アドレスと一致するものがあって、分
岐が成功した時、そのエントリから命令を1つ宛取り出
し、上記命令解読部の命令レジスタに入力するようにし
て、該分岐命令と分岐先の命令とを1つのループとする
命令群を主記憶等をフェッチすることなく取り出すよう
にした所に特徴がある。
〔発明の効果〕
以上、詳細に説明したように、本発明のループ命令実行
方式は、記憶装置より順次命令を読み出して実行するデ
ータ処理装置におけるループ命令実行方式において、先
行する(実行済みの)1つ。
又は複数個の命令、及びその命令のアドレスを識別する
情報を蓄えるキューと、命令解読部において分岐命令を
検出したとき、上記キューの各エントリの命令アドレス
に、該分岐命令の分岐先アドレスと一致するものがある
か否かを、分岐決定タイミングで検出する手段とを備え
、該命令解読部においで分岐命令を検出し、上記の検出
手段によって、分岐決定時に上記キューの各エントリの
アドレスに上記分岐先アドレスと一致する命令があるこ
とを検出したとき、該キューの一致したエントリから命
令を抽出して、上記命令解読部の命令レジスタに供給す
るようにしたものであるので、本発明の実行済み命令キ
ューにループ全体が入ってしまうループの実行において
は、−切土記憶等への命令フェッチが不要となり、分岐
命令の高速な実行ができると共に、命令フェッチが減少
して、メモリアクセスの競合が少なくなり、当該データ
処理装置の性能が向上する効果が得られる。
【図面の簡単な説明】
第1図は本発明のループ命令実行方式の原理構成図。 第2図は本発明の一実施例を示した図。 第3図は従来の分岐命令実行方式を説明する図である。 図面において、 1は命令解読部、    10.12はセレクタ(SE
L)。 11は命令レジスタ、13はデコーダ。 2は実行済み命令キュ 4はレジスタファイル、5はアドレス生成部6はシーケ
ンス制御部、7は比較器。 30は分岐命令を示す信号 51.52はレジスタ、53は加算器 61.62はフリップフロップ(FF)63.64はセ
レクタ(SEL) 、 65ば条件判断部100.10
1は選択信号1又は、単に信号をそれぞれ示す。

Claims (1)

  1. 【特許請求の範囲】 記憶装置より順次命令を読み出して実行するデータ処理
    装置において、 先行する1つ、又は複数個の命令、及びその命令のアド
    レスを識別する情報を蓄えるキュー(2)と、 命令解読部(1)において分岐命令を検出したとき、上
    記キュー(2)の各エントリの命令アドレスに、該分岐
    命令の分岐先アドレスと一致するものがあるか否かを、
    分岐決定タイミングで検出する手段(6、7)とを備え
    、 該命令解読部(1)において分岐命令を検出し、上記の
    検出手段(6、7)によって、分岐決定時に上記キュー
    (2)の各エントリのアドレスに上記分岐先アドレスと
    一致する命令があることを検出したとき、該キュー(2
    )の一致したエントリから命令を抽出して、上記命令解
    読部(1)の命令レジスタ(11)に供給することを特
    徴とするループ命令実行方式。
JP17852088A 1988-07-18 1988-07-18 ループ命令実行方式 Pending JPH0228723A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17852088A JPH0228723A (ja) 1988-07-18 1988-07-18 ループ命令実行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17852088A JPH0228723A (ja) 1988-07-18 1988-07-18 ループ命令実行方式

Publications (1)

Publication Number Publication Date
JPH0228723A true JPH0228723A (ja) 1990-01-30

Family

ID=16049913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17852088A Pending JPH0228723A (ja) 1988-07-18 1988-07-18 ループ命令実行方式

Country Status (1)

Country Link
JP (1) JPH0228723A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257349A (ja) * 2006-03-23 2007-10-04 Fujitsu Ltd プロセッサ及びその処理方法
JP2010066892A (ja) * 2008-09-09 2010-03-25 Renesas Technology Corp データプロセッサ及びデータ処理システム
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2012221086A (ja) * 2011-04-06 2012-11-12 Fujitsu Semiconductor Ltd 情報処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257349A (ja) * 2006-03-23 2007-10-04 Fujitsu Ltd プロセッサ及びその処理方法
JP2010066892A (ja) * 2008-09-09 2010-03-25 Renesas Technology Corp データプロセッサ及びデータ処理システム
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2012221086A (ja) * 2011-04-06 2012-11-12 Fujitsu Semiconductor Ltd 情報処理装置

Similar Documents

Publication Publication Date Title
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
US4928226A (en) Data processor for parallelly executing conflicting instructions
US6662295B2 (en) Method and system dynamically presenting the branch target address in conditional branch instruction
JPH0776921B2 (ja) データ処理方法及び装置
JPH04275628A (ja) 演算処理装置
EP0742517B1 (en) A program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
EP0093430A2 (en) Pipeline data processing system
JPH0228723A (ja) ループ命令実行方式
JPH04321130A (ja) 分岐予測装置
JP3708022B2 (ja) プロセッサ
JPS5890247A (ja) 情報処理装置のパイプライン制御方式
JP3335735B2 (ja) 演算処理装置
JP3493110B2 (ja) 高速分岐処理装置
JP2636136B2 (ja) 演算処理装置及び演算処理方法
JP2877531B2 (ja) 並列演算処理装置
JP2591325B2 (ja) 分岐制御装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
KR100303136B1 (ko) 디지탈신호처리장치를구비한마이크로프로세서구조
JPH0248733A (ja) 情報処理装置
JPH0279122A (ja) 浮動小数点演算機構
JPH05224926A (ja) 条件分岐命令制御方式
JPH02206836A (ja) データ処理装置
JPH04213727A (ja) 情報処理装置
JPH0774992B2 (ja) データ処理装置
JPS62204340A (ja) デ−タ処理装置