JPH04168526A - ループ制御方式 - Google Patents

ループ制御方式

Info

Publication number
JPH04168526A
JPH04168526A JP2295846A JP29584690A JPH04168526A JP H04168526 A JPH04168526 A JP H04168526A JP 2295846 A JP2295846 A JP 2295846A JP 29584690 A JP29584690 A JP 29584690A JP H04168526 A JPH04168526 A JP H04168526A
Authority
JP
Japan
Prior art keywords
instruction
register
read
information
loop processing
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
JP2295846A
Other languages
English (en)
Inventor
Yoshiko Yamaguchi
佳子 山口
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2295846A priority Critical patent/JPH04168526A/ja
Publication of JPH04168526A publication Critical patent/JPH04168526A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はループ制御方式に関し、特に電子計算機のルー
プ動作指示のマイクロ命令実行制御によるループ制御方
式に関する。
〔従来の技術〕
マイクロプロセッサにはRI S C(Reduced
Instruction Set Computer)
型とCI SC(Complex In5tructi
on Set Computer〆〉型の形態がある。
このうち前者はハードウェア簡略化のため単純なセット
を有し、この命令セットをハードウェア制御の下で実行
することにより、大部分の命令を1クロツク内で実行で
きる。しがし、分岐命令を実行する場合においては、分
岐命令実行に伴ないCPU時間にロスが生じる。そのた
め少なくとも分岐命令に続く命令を分岐するしないに関
わらず実行する命令に対して最適化をはがる場合もある
が、そのような命令がない場合はCPU時間のロスは避
けられないものであった。よって、同じ数ステップを何
度も繰り返すループ処理の場合は、ループ回数倍のロス
タイムが生じていた。
すなわち、第2図はループ制御方式で実行するマイクロ
命令の流れ図である。
第4図は従来の技術によるループ制御方式の構成を示す
ブロック図、第5図は従来の技術において第2図に示す
マイクロ命令を実行した時のタイムチャートである。
tず、第2図、第4図および第5図を参照して本実施例
において、ループ処理をおとなうマイクロ命令を実行し
た時のハードウェア動作及びタイミングについて説明す
る。第2図のステップ21〜24がループ対象のマイク
ロ命令である。RISCタイプであるから、各命令は1
ステツプで実行される。ステップ21はこの例ではレジ
スタAXの内容に1を加算する命令、ステップ22はレ
ジスタBXの内容を2倍する命令、ステップ23はレジ
スタAXとレジスタBXの内容を比較して状態レジスタ
にその結果を格納する命令、ステップ24はステップ2
3における状態レジスタの値による分岐命令である。ま
ずステップ21による命令が主記憶1より命令レジスタ
2にフェッチされる(第3図CPUクロックTl(以下
(Tlンというようにのみ記す))0次のタイミングの
命令くステップ21)ではデコーダ3でデコードされ、
選択器4で選択されて実行情報保持レジスタ5ヘデコー
ド結果がロードされる。パイプライン処理を行なうプロ
セッサであるから、同時に命令(ステップ22)がフェ
ッチされ命令レジスタ2に格納される〈T2)。
ループ処理をするか否かを示す情報がこのマイクロ命令
に存在し、ループ処理を行なう命令(ステップ21〜2
4)では全てこの情報がオンとなっているが、次のタイ
ミングでの命令(ステップ21)の実行情報が保持され
ているレジスタ5の内容は、このループ処理情報ビット
15によりループ用レジスタ群6の中のレジスタにロー
ドされる。書き込み対象を示すロード先指示ポインタ7
を初期値0に設定しておくものとすると、レジスタ番号
Oのレジスタにロードされる。同時にループ処理情報ビ
ット15は次回のループ処理のリード情報として、0番
レジスタ内にロードされ、ロード先ポインタ7は1カウ
ントアツプされる。同タイミングで命令(ステップ21
)は実行され演算用レジスタ群12の中のAXレジスタ
及び定数1がバス14を介して演算器13により加算さ
れ結果がAXレジスタに格納される。同タイミングで命
令ステップ22はデコードステージ、命令ステップ23
はフェッチステージでそれぞれ処理される(T3)。次
のタイミングで命令(ステップ22)は実行され、同様
にレジスタ5の内容はロード先指示ポインタ7で示され
る1番レジスタに格納される。同タイミングで命令(ス
テップ23)はデコードステージ、命令(ステップ24
)はフェッチステージでそれぞれ処理される(T4)。
第3図のT5以降のタイミングも上記と同様、命令(ス
テップ21〜24)がループ用レジスタ群6に格納され
ながら処理が進む。
従って、従来の技術では、ループ対象となる命令の実行
情報内容を保持することはしない。従って、T6でステ
ップ24を実行する時に命令レジスタ2と命令カウンタ
11を停止させるのは同じだが、ステップ21を新たに
外部の主記憶からフェッチしてくる動作が必要である。
第5図に示されるように、T8においてステップ21の
フェッチがなされるため、実行はTIOの時点である。
従って本発明と比較して1回のループにつき2サイクル
分の遅れ、即ちCPUタイムのロスが生じる。従って、
ループ回数が多くなるほど、従来の技術では性能面で欠
点となる。
〔発明が解決しようとする課題〕
上述した従来のループ制御方式は、ループの回数分の分
岐命令を実行する必要があるために、1回の分岐命令で
生じるCPUの所要時間はループの回数倍の所要時間の
損失が生じるという性能面での欠点がある。
〔課題を解決するための手段〕
本発明のループ制御方式は、 パイプライン処理を行なうRISC型マイクロプロセッ
サにおいて、 ループ処理をするが否かを情報として保持するマイクロ
命令と、該マイクロ命令を命令レジスタにフェッチする
ステージと、該命令レジスタの出力データをデコードし
て命令実行時の情報保持のためのレジスタにデコード結
果をロードするデコードステージと、該デコードステー
ジの次に該命令実行時情報保持レジスタの内容により命
令の実行を行なうステージと、該命令実行ステージで前
記マイクロ命令におけるループ処理情報を認識した場合
に前記命令実行情報保持レジスタの内容をロードすると
共に前記ループ処理情報を次回のループ処理のリード情
報としてロードする複数個のレジスタ群と、 前記マイクロ命令におけるループ処理情報によりカウン
トアツプされ、該レジスタ群がロード動作を行なう場合
にロード先のレジスタを指すロード先指示ポインタと、 該次回のループ処理のリード情報によりカウントアツプ
され、前記複数個のレジスタ群から読み出し動作を行な
う場合に読み出し先のレジスタを指す読み出し対象指示
ポインタと、 前記デコードステージにおけるデコーダの出力と前記複
数個のレジスタ群からの読み出しデータとのどちらかを
選択して前記命令実行情報保持レジスタの入力とする選
択器と、 分岐命令実行時に分岐条件を保持するフラグと前記命令
実行時情報保持レジスタ内の前記ループ処理情報と前記
次回のループ処理リード情報とを入力として前記分岐条
件フラグがオン状態かつ前記ループ処理情報ビットがオ
ン状態の時は該選択器で前記複数個のレジスタ群からの
読み出しデータを選択し、かつ命令カウンタと前記命令
レジスタの更新を止める指示を出す信号を生成し、前記
分岐条件フラグがオフ状態の時は該選択器で前記デコー
ダの出力選択し、かつ該命令カウンタと前記命令レジス
タの更新を再開し、かつ前記ロード先指示ポインタと前
記読み出し対象指示ポインタとをリセットして初期状態
にする信号を生成し、前記分岐条件フラグがON状態か
つ前記次回のループ処理リード情報ビットがON状態の
時は前記選択器で前記複数個のレジスタ群からの読み出
しデータを選択し、前記読み出し指示ポインタをリセッ
トして初期状態にする信号を生成する分岐指示生成回路
とを備えて構成される。
〔実施例〕
次に本発明について図面を参照して説明する。
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本ループ制御方式で実行するマイクロ命令の流れ
図、第3図は本実施例で第2図におけるマイクロ命令を
実行した時のタイムチャート、図中の番号は第2図中の
番号に対比される。
まず、第1〜3図を参照して本実施例において、ループ
処理をおこなうマイクロ命令を実行した時のハードウェ
ア動作及びタイミングについて説明する。第2図のステ
ップ21〜24がループ対象のマイクロ命令である。R
ISCタイプであるから、各命令は1ステツプで実行さ
れる。ステップ21はこの例ではレジスタAXの内容に
1を加算する命令、ステップ22はレジスタBXの内容
を2倍する命令、ステップ23はレジスタAXとレジス
タBXの内容を比較して状態レジスタにその結果を格納
する命令、ステップ24はステップ23における状態レ
ジスタの値による分岐命令である。まずステップ21に
よる命令が主記憶1より命令レジスタ2にフェッチされ
る(第3図CPUクロックT1〔以下(T1)というよ
うにのみ記す〕)0次のタイミングの命令(ステップ2
1)ではデコーダ3でデコードされ、選択器4で選択さ
れて実行情報保持レジスタ5へデコード結果がロードさ
れる。パイプライン処理を行なうプロセッサであるから
、同時に命令(ステップ22)がフェッチされ命令レジ
スタ2に格納される(T2)。
請求の範囲で述べたように、ループ処理をするか否かを
示す情報がこのマイクロ命令に存在し、ループ処理を行
なう命令(ステップ21〜24)では全てこの情報がオ
ンになっているが、次のタイミングでの命令(ステップ
21)の実行情報が保持されているレジスタ5の内容は
、このループ処理情報ビット15によりループ用レジス
タ群6の中のレジスタにロードされる。書き込み対象を
示すロード先指示ポインタ7を初期値0に設定しておく
ものとすると、ループ用しジスタ群6中のレジスタにロ
ードされる。同時にループ処理情報ビット15は次回の
ループ処理のリード情報としてループ用レジスタ群6の
中のレジスタ内にロードされ、ロード先ポインタ7は1
カウントアツプされる。同タイミングで命令(ステップ
21)は実行され演算用レジスタ群12の中のAXレジ
スタ及び定数1がバス14を介して演算器13により加
算され結果がAXレジスタに格納される。同タイミング
で命令ステップ22はデコードステージ、命令ステップ
23はフェッチステージでそれぞれ処理される(T3)
、次のタイミングで命令(ステップ22)は実行され、
同様にレジスタ5の内容はロード先指示ポインタ7で示
されるループ用レジスタ群6の指示箇所に格納される。
同タイミングで命令(ステップ23)はデコードステー
ジ、命令(ステップ24)はフェッチステージでそれぞ
れ処理される(T4)、第3図のT5以降のタイミング
も上記と同様に、命令(ステップ21〜24)がループ
用レジスタ群6に格納されながら処理が進む。
第3図T6では命令(ステップ24)の分岐命令が実行
されるが、分岐が起こる場合の動作を説明する0分岐命
令で、ループ処理情報ビット15がオンで分岐条件フラ
グがオンであれば、もう−度命令(ステップ21)から
の処理を繰り返す。
分岐指示信号生成回路9により、上記条件から分岐指示
信号が生成される。cpuクロック(T7)で選択器4
の制御信号として出され、ループ用レジスタ群6からの
出力が選択されてレジスタ5の入力となる。このとき読
み出し対象指示ポインタ8の値を初期値0に設定してお
くものとすると、ポインタ8で設定されたループ用レジ
スタ群の該当レジスタの内容すなわち命令(ステップ2
1)の実行情報内容がレジスタ5の入力となる。同じタ
イミングで、命令カウンタロード先指示ポインタ7と命
令レジスタ2の更新を同信号で止め、フェッチステージ
とデコードステージとを停止させる。また同タイミング
で設定されたループ用レジスタ群の、レジスタ内の次回
のループ処理リード情報ビット16が選択器4から出力
されて、読み出し対象指示ポインタ8の値を1カウント
アツプさせる。
CPUクロック(T8)ではステップ21が実行されC
PUクロック(T8)のサイクル終了時に、命令(ステ
ップ22)の実行情報内容がレジスタ5にロードされる
と共に読み出し対象指示ポインタ8も1カウントアツプ
される。CPUクロック(T9・T10)も同様である
。CPUクロック(Tll)では再び分岐を行なうが、
分岐指示信号生成回路9では、レジスタ5内の次回のル
ープ処理リード情報ビット17と分岐条件フラグ10と
から分岐指示信号を生成する。そして次のタイミングで
選択器4へ出力し、また読み出し指示ポインタ8をリセ
ットする0次に、ループ処理から抜ける時の動作を説明
する。ループが終わるのは分岐命令で、分岐条件フラグ
10がオフ状態の時であるが、この時に分岐指示信号生
成回路9でCPUクロック7(TA>のタイミングで生
成された信号はCPUクロック(TB)のタイミングで
命令カウンタ7と命令レジスタ2の更新を再開させる。
また、選択器4の出力をデコーダ3の出力に戻し、ロー
ド先指示ポインタ7と読み出し対象指示ポインタ8とを
リセットする。命令(ステップ25)は、分岐時のタイ
ミングにより実行されないので、そのことを考慮に入れ
てNOP命令を入れておくなどの処置が必要である。命
令の再開は命令(ステップ25)の次の命令からである
〔発明の効果〕
以上説明したように本発明は、ループ処理情報を次回の
ループ処理のリード情報としてロードする複数個のレジ
スタ群と、マイクロ命令におけるループ処理情報とによ
りカウントアツプされレジスタ群がロード動作を行なう
場合にロード先のレジスタを指すロード先指示ポインタ
と次回のループ処理のリード情報によりカウントアツプ
されレジスタ群から読み出し動作を行なう場合に読み出
し先のレジスタを指す読み出し対象指示ポインタと、デ
コードステージのデコーダ出力と、レジスタ群からのデ
ータとのどちらかを選択して命令実行情報保持レジスタ
の入力とする選択器とを備えることにより、ループ処理
における分岐命令の高速化をはかり、性能を良くすると
いう効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本ループ制御方式で実行するマイクロ命令の流れ
図、第3図は本実施例における第2図で示されるマイク
ロ命令を実行した時のタイムチャート、第4図は従来の
技術のによるループ制御方式の構成を示すブロック図、
第5図は従来の技術による第2図で示されるマイクロ命
令を実行した時のタイムチャートである。 1・・・主記憶、2・・・命令レジスタ、3・・・デコ
ーダ、4・・・選択器、5・・・実行情報保持レジスタ
、6・・・ループ用レジスタ群、7・・・ロード先指示
ポインタ、8・・・読み出し対象指示ポインタ、9・・
・分岐指示信号生成回路、10・・・分岐条件フラグ、
11・・・命令カウンタ、12・・・演算用レジスタ群
、13・・・演算器、14・・・バス、15・・・ルー
プ処理情報ビット、16・17・・・次回のループ処理
リード情報ビット。

Claims (1)

  1. 【特許請求の範囲】 パイプライン処理を行なうRISC型マイクロプロセッ
    サにおいて、 ループ処理をするか否かを情報として保持するマイクロ
    命令と、該マイクロ命令を命令レジスタにフェッチする
    ステージと、該命令レジスタの出力データをデコードし
    て命令実行時の情報保持のためのレジスタにデコード結
    果をロードするデコードステージと、該デコードステー
    ジの次に該命令実行時情報保持レジスタの内容により命
    令の実行を行なうステージと、該命令実行ステージで前
    記マイクロ命令におけるループ処理情報を認識した場合
    に前記命令実行情報保持レジスタの内容をロードすると
    共に前記ループ処理情報を次回のループ処理のリード情
    報としてロードする複数個のレジスタ群と、 前記マイクロ命令におけるループ処理情報によりカウン
    トアップされ、該レジスタ群がロード動作を行なう場合
    にロード先のレジスタを指すロード先指示ポインタと、 該次回のループ処理のリード情報によりカウントアップ
    され、前記複数個のレジスタ群から読み出し動作を行な
    う場合に読み出し先のレジスタを指す読み出し対象指示
    ポインタと、 前記デコードステージにおけるデコーダの出力と前記複
    数個のレジスタ群からの読み出しデータとのどちらかを
    選択して前記命令実行情報保持レジスタの入力をする選
    択器と、 分岐命令実行時に分岐条件を保持するフラグと前記命令
    実行時情報保持レジスタ内の前記ループ処理情報と前記
    次回のループ処理リード情報とを入力として前記分岐条
    件フラグがオン状態かつ前記ループ処理情報ビットがオ
    ン状態の時は該選択器で前記複数個のレジスタ群からの
    読み出しデータを選択し、かつ命令カウンタと前記命令
    レジスタの更新を止める指示を出す信号を生成し、前記
    分岐条件フラグがオフ状態の時は該選択器で前記デコー
    ダの出力を選択し、かつ該命令カウンタと前記命令レジ
    スタの更新を再開し、かつ前記ロード先指示ポインタと
    前記読み出し対象指示ポインタとをリセットして初期状
    態にする信号を生成し、前記分岐条件フラグがON状態
    かつ前記次回のループ処理リード情報ビットがON状態
    の時は前記選択器で前記複数個のレジスタ群からの読み
    出しデータを選択し、前記読み出し指示ポインタをリセ
    ットして初期状態にする信号を生成する分岐指示生成回
    路とを備えて成ることを特徴とするループ制御方式。
JP2295846A 1990-11-01 1990-11-01 ループ制御方式 Pending JPH04168526A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2295846A JPH04168526A (ja) 1990-11-01 1990-11-01 ループ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2295846A JPH04168526A (ja) 1990-11-01 1990-11-01 ループ制御方式

Publications (1)

Publication Number Publication Date
JPH04168526A true JPH04168526A (ja) 1992-06-16

Family

ID=17825945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2295846A Pending JPH04168526A (ja) 1990-11-01 1990-11-01 ループ制御方式

Country Status (1)

Country Link
JP (1) JPH04168526A (ja)

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
EP2569694B1 (en) Conditional compare instruction
US4539635A (en) Pipelined digital processor arranged for conditional operation
JP2002333978A (ja) Vliw型プロセッサ
JPH03218523A (ja) データプロセッサ
US20230084523A1 (en) Data Processing Method and Device, and Storage Medium
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
JPH05150979A (ja) 即値オペランド拡張方式
US5253349A (en) Decreasing processing time for type 1 dyadic instructions
US5390306A (en) Pipeline processing system and microprocessor using the system
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
KR100188374B1 (ko) 연산처리장치
JPH04168526A (ja) ループ制御方式
US6266764B1 (en) Program controller for switching between first program and second program
GB2069733A (en) Conditional instruction execution in a pipelined processor
EP0573071A2 (en) A microprocessor
JPH1173301A (ja) 情報処理装置
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JP3100705B2 (ja) マイクロプロセッサ内の命令準備のための装置
JP2781779B2 (ja) 分岐制御回路
JP2825315B2 (ja) 情報処理装置
JP2859921B2 (ja) 命令キュー制御装置
US20050228970A1 (en) Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
JP2583614B2 (ja) ベクトル演算装置