JPS6020245A - デ−タ処理装置の命令制御回路 - Google Patents

デ−タ処理装置の命令制御回路

Info

Publication number
JPS6020245A
JPS6020245A JP58127716A JP12771683A JPS6020245A JP S6020245 A JPS6020245 A JP S6020245A JP 58127716 A JP58127716 A JP 58127716A JP 12771683 A JP12771683 A JP 12771683A JP S6020245 A JPS6020245 A JP S6020245A
Authority
JP
Japan
Prior art keywords
instruction
signal
cache memory
register
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.)
Pending
Application number
JP58127716A
Other languages
English (en)
Inventor
Tadahiko Nishimukai
西向井 忠彦
Atsushi Hasegawa
淳 長谷川
Takeshi Aimoto
毅 相本
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP58127716A priority Critical patent/JPS6020245A/ja
Publication of JPS6020245A publication Critical patent/JPS6020245A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、データ処理装置の命令制御回路に関し、特に
パイプライン制御のデータ処理装置における分岐命令実
行を高速化できる命令制御回路に関するものである。
〔発明の背景〕
データ処理装置は、一般に、第1図に示すような構成を
有しておシ、記憶装置5.!:の間でデータの授受を行
うインターフェイス回路4と、実行すべき命令の制御を
行う命令制御ユニット2と、命令を実行する命令実行ユ
ニット3からなる。記憶装置5から読出された命令は、
インターフェイス回路4を経由して命令制御ユニット2
に転送される。命令制御ユニット2は、転送された命令
を解析し、その結果を命令実行ユニット3に転送する。
命令実行ユニット3は、解析結果にしたがって命令を実
行する。具体的には、解析の結果、各種制御信号を発生
させ、それらの制御信号によシ命令実行ユニット3内の
各ゲートを開閉して演算、格納、シフト等の処理を行わ
せる。命令制御ユニット2は、次の命令の読出しをイン
ターフェイス回路4を介して記憶装置5に指示する。こ
れらの一連の動作を繰返すことによシ、データ処理装置
1は、記憶装置5に格納されているプログラムを実行す
るのである。
第2図、第3図および第4図は、それぞれ従来の命令処
理のタイムチャートでろる。
第1図において、記憶装置5からの命令読出し、命令制
御ユニット2での命令解析、および命令実行ユニット3
での命令実行は同時並行動作が可能であり、これによシ
バイブフィン制御が行われている。
先ず、第2図に示すように、T1とT2の2サイクルを
かけて読出された命令■は、T3のサイクルで解析され
る。記・は装置5は空きとなるので、T3.T4で次の
命令■の:6′6出しtv’A始する。一方、T3のサ
イクルで解析された機械語命令■は、T4; T5の2
サイクルを用いて実行される。
T5のサイクルでは、命令■が解析されているため、次
の命令■の読出しが開始され、命令実行ユニット3は空
きを生pることな(、T6.T7のサイクルで命令■の
実行を開始する。このようにパイプライン制御を行うと
、1命令当シの実行時間を短縮することができる。
しかし、一連の処理の途中で、分岐命令を実行した場合
には、分岐先アドレスは命令実行後でなければ、決定さ
れないため、第3図に示すように、分岐命令■の実行後
、分岐先の命令■が実行されるまで、3サイクルの遊び
時間が生じてしまう。
このように、従来のパイプライン制御式データ処理装置
では、分岐命令を実行すると、その期間だけ並行処理が
できなくなシ、パイプラインの効果が現われないため、
性能の低下を招いている。
そこで、従来、これを改善するため、記憶装置5に格納
されている命令の写しを、データ処理装置1内に設けら
れた高速小容量の記1意装置(以下キャッシュ・メモリ
)に保持しておき、このキャッシュ・メモリに分岐先の
命令が存在した場合には、第4図に示すように命令読出
し時間を短縮する方法がとられている。すなわち、キャ
ッシュ・メモリから高速読出しが可能であるため、T6
の1サイクルで命令■を読出し、T7のサイクルで命令
■の解析を行い、T8.T9のサイクルで命令■を実行
する。しかし、第3図の場合に比較すると、パイプライ
ンの遊びは3サイクルから2サイクルに短縮されるのみ
で、やはり処理の遅延は免れない。
〔発明の目的〕
本発明の目的は、このような従来の問題を解決し、分岐
命令実行時のパイプラインの乱れを少なくして、分岐命
令実行時間を短縮することができるデータ処理装置の命
令制御回路を提供することにある。
〔発明の概要〕
上記目的を達成するため、本発明によるデータ処理装置
の命令制御回路は、記憶装置より命令を読出し、該命令
を解析して命令実行のだめの制御情報を生成し、該制御
情報を命令実行回路に転送する命令制御回路において、
記憶装置より読出された命令と、該命令を解析した制X
I情報とを記憶して2ぐキャッシュ・メモリを有し、分
岐命令実行後に上記キャッシュ・メモリから上記制御情
報を読出して命令実行回路に転送することに特徴がある
〔発明の実施例〕
以下、本発明の実施例を、図面によシ説明する。
第5図は、本発明の実施例゛を示す命令処理タイミング
・チャートであシ、第6図は本発明の実施例を示す命令
制御ユニットのブロック図である。
第6図において、10,16.22はレジスタ、11は
命令デコーダ、12はキャッシュ・メモリ、13.14
,15,23はセレクタ、17.24はインクリメンタ
、18は加算器、19は比較回路、20はカウンタ、2
1は制御回路である。゛また、第6図における命令アド
レス信号1001命令データ信号101、命令フェッチ
要求信号127、命令フェッチ終了信号126はいずれ
もインターフェイス回路4から、あるいはインターフェ
イス回路4に転送される信号であシ、実行ユニット制御
信号113、命令語信号115、ブランチ信号123、
次命令要求信号124、命令実行禁止信号125および
ブランチ・アドレス信号131は、いずれも命令実行ユ
ニット3から、あるいは命令実行ユニット3に転送され
る信号である。
第6図においては、キャッシュ・メモリ120制御回路
を簡単化するため、キャッシュ・メモリ12に保持され
る命令は一連の連続したアドレスを有しているものとす
る。したがって、分岐命令の実行等によ多連続しないア
ドレスの命令が実行される場合には、それ以前に保持さ
れていた命令をすべて無効化するとい9制御を行ってい
る。
キャッシュ・メモリ12に保持されている命令はすでに
解析、実行された命令であるので、本発明においては、
この解析結果を命令とともにキャッシュ・メモリ12に
保持しておき、2度目以降の命令実行時には、命令解析
を行わず、キャッシュ・メモリ12に保持された解析結
果を用いてプログラム実行を行うのである。
これにより、分岐命令実行時のパイプラインの乱れを、
第5図に示すように、第4図に比べてさらに1マシン・
サイクル矧縮することができる。
記憶装置5から読出された命令は、インターフェイス回
路4から、命令信号101を介して命令制御ユニット2
に転送され、レジスタ10にラッチされる。レジスタ1
0の命令は、信号110を介して命令デコーダ11に送
られ、ここで命令の解析が行われる。命令デコーダ1l
Fi、解析結果として命令実行ユニット3を制御するマ
イクロプログ2ムの命令実行サブルーチン・アドレス、
演算語長等を出力し、信号111、セレクタ13を経由
して実行ユニット制御信号113となシ命令実行ユニッ
ト3に転送される。
レジスタエ0にラッチされた命令のうち、オペランド・
アドレス等のオペランド指定部は、信号110、セレク
タ14を介して命令語信号115となシ、命令実行ユニ
ット3に転送される。
第7図は、第6図のΦヤツシュ・メモリの詳細ブロック
図である。
キャッシュ・メモリ12は、第7図に示すように、N個
のレジスタ201〜203と、その制御回路200から
構成される。ラッチ指示信号116がオンとなると、制
御回路200はレジスタ201の保持内容をレジスタ2
02に転送し、レジスタ202の保持内容をその次のレ
ジスタ203に転送し、順次N−14目のレジスタの保
持内容をN番目のレジスタに転送して、シフト動作を行
h、レジスタ201には信号111および信号110の
値をラッチする。各レジスタはアドレス付けされておシ
、それぞれl−#目のレジスタ201は−1,2番目の
レジスタ202は−2、N番目のレジスタは−Nになっ
ている。信号119によシアドレスiが指定されると、
−1番目のレジスタの保持内容が信号112および信号
114に出力される。
第6図のレジスタ16は、キャッシュ・メモリ1zから
読出すべきアドレスを保持するレジスタである。インク
リメンタ17は、そのアドレスを更新する回路であシ、
入力値が負の場合には+1を加算し、入力値が0あるい
は正の場合には0を出力する。加算器18は、分岐アド
レスの相対アドレス値を計算する回路であり、レジスタ
16の出力とレジスタ25に保持された命令語中のディ
スプレイスメント(分岐アドレス相対値)を加算し、信
号117に出力する。カウンタ20は、キャッシュ・メ
モリ12内に保持されている命令数をカウントする。比
較回路19は、加算器18の出力信号117とカウンタ
20の出力信号120との比較を行い、信号117の値
が負であり、かつその絶対値が信号120以下の場合に
は、分岐命令実行先がキャッシュ・メモリ12内に存在
すると判定し、ヒツト信号132をオンにする。しジス
タ22は、次に読出す命令のアドレスを保持する。イン
クリメンタ24は、命令アドレスの更新を行う回路であ
シ、命令アドレス信号100の値を+1して信号130
に出方する。
制御回路21は、これまでに述べた命令制御ユニット2
の各回路の制御信号を作成する回路である。
命令制御ユニット2の動作は、命令を順次実行するシー
ケンシャル・モード、分岐命令の分岐先がキャッシュ・
メモリ12内に保持されていた場合のキャッシュ・モー
ド、および分岐命令の分岐先がキャッシュ・メモリ12
内に保持されていなかった場合の分岐モードの3種に分
けられる。
先ず、シーケンシャル・モードの動作を述べる。
制御回路21は、命令フェッチ要求信号127をオンに
し、インターフェイス回路4にレジスタ22に保持され
たアドレスからの命令読出しを要求する。読出しが終了
すると、インターフェイス回路4からの命令フェッチ終
了信号126がオンとなシ、レジスタ1oに命令データ
信号101の値をラッチするように、ラッチ指示信号1
33が制御回路21から出力される。レジスタ10の内
容は命令デコーダ11によシ解析が開始される。
制御回路21は、次の命令フェッチを開始するため、制
御信号128を出力し、レジスタ22の内容をインクリ
メンタ24によシ+1してセレクタ23を介し再びレジ
スタ22にラッチするように指示する。次に、命令フェ
ッチ要求信号127を出力し、次の命令の読出しを要求
する。レジスタ16は、シーケンシャル・モードにおい
ては、常に0を保持している。この出力信号119が0
の場合には、セレクタ13は命令デコーダ11の出力信
号111を、またセレクタ14はレジスタ10の出力信
号110を、それぞれ選択するようになっておシ、次に
実行すべき命令の解析結果は、′実行ユニット制御信号
113と命令語信号115に出力されている。命令実行
ユニット3は命令実行を終了すると、この解析結果を取
シ込み、次命令要求信号124を送出する。この時点で
実行ユニット制御信号113に出力されている次命令の
解析結果がブランチ命令を示していた場合信号115上
の命令語中のディスプレイスメント部がレジスタ25に
ラッチされる。次命令要求信号124を受けると、制御
回路21は信−qi i aを出力し、キャッシュ・メ
モリ12に信号111と信号110をラッチさせる。こ
の後インターフェイス回路4からの命令フェッチ終了信
号126がオンになると、制御回路21は信号133を
出力し、レジスタ10に読出した命令を7エツチさせ、
次命令のデコードを開始させる。また、すでに述べたよ
うに、命令アドレスの更新を行い、命令フェッチ要求信
号127をオンにする。以上の動作を繰返し行うことに
よシ、シーケンシャル・モードの動作が行われる。
命令実行ユニット3が命令実行を終了して、次命令要求
信号124を出力する以前に命令読出しが終了した場合
には、次命令要求信号124が制御回路21に入力され
るまで待機し、キャッシュ・メモリ12へのラッチ操作
が終了してからレジスタ10への命令ラッチを行う。
記憶装置5からの命令読出しに時間がかかり、次に実行
すべき命令の解析結果が準備できていない場合、制御回
路21は命令実行禁止信号125をオンにする。命令実
行ユニット3は、命令実行終了時に、この信号125を
調べて、オンであったときにはオフになるまで命令の実
行を中止する。
次に、キャッシュ・モードにおける動作を述べる。
命令実行ユニット3は、分岐命令を実行すると、分岐先
アドレスの計算を行い、分岐先アドレス信号131に出
力した後、ブランチ信号123を出力して実行を終了す
る。
この時点で、命令制御ユニット2内では、レジスタ25
にラッチされたディスプレイスメントを用いて加算器1
8で分岐先アドレスを計算した後、その分岐先アドレス
とカウンタ20のキャッシュ・メモリ12内命令数との
比較を行い、比較回路19からその比較結果のヒツト信
号132を出力している。ヒツト信号132がオンのと
きに、ブランチ信号123を受けると、制御回路21は
次の動作を行う。
信号122を出力し、加算器18から出力されている分
岐先アドレスをセレクタ15を介してレジスタ16にラ
ッチさせる。加算器18から出力される分岐アドレスは
、レジスタ10にラッチされている命令のアドレスをO
とした相対的なものである。したがって、レジスタ16
からの出力信号119をキャッシュ・メモリ12に直接
与えることにより、分岐先アドレスの命令およ・び解析
結果の読出しが行える。また、セレクタ13およびセレ
クタ14は、信号119が負の場合、それぞれキャッシ
ュ・メモリ12からの出力信号112および114を選
択するので、分岐先命令の解析結果と命令語が命令実行
ユニット3に出力される。
制御ユニット21は、キャッシュ・メモリ12の読出し
を行う間、命令実行禁止信号125を出力する。次に、
制御ユニット21は信号122を出力し、レジスタ16
の値をインクリメンタ17により+Iして、セレクタ1
5を介し再びレジスタ16にラッチし、その値を更新す
る。更新された値を用いて、キャッシュ・メモリ12か
ら次の命令および解析結果を読出す。レジスタ16の値
が0となった場合、次に実行すべき命令は、キャッシュ
・メモリ12内には存在しないので、命令フェッチ要求
信号127をオンにして、記憶装置5からの命令読出し
を指示する。
キャッシュ・モードで命令を実行している場合、分岐命
令が実行されたときで亀、加算器18よ多出力される分
岐先アドレスはレジスタ10に保持されている命令のア
ドレスを0とした相対アドレスであるため、比較回路1
9でカウンタ20の値と比較を行うことによシ、分岐先
の命令がキャッシュ・メモリ12内に保持されているか
否かの判定を行うことができる。それ以後の動作は、シ
ーケンシャル・毒−ドで分岐命令を実行した場合と同一
である。
制御回路21は、命苓実行ユニット3よシブランチ信号
123を受け取ると、分岐先アドレス信号131の値を
セレクタ23を介してレジスタ22にラッチする。以後
、キャッシュ・メモリ12から命令を読出すごとに、イ
ンクリメ/り24の出力をセレクタ23を介してレジス
タ22にラッチすることによシ、命令アドレスを更新す
る。この操作により、次に命令を読出すべきアドレスが
、レジスタ22に常に保持されるため、レジスタ16の
値が0となった場合、命令7工ツチ要求信号127をオ
ンにするだけで、次命令の読出しを指示することができ
る。
最後に、分岐モードにおける動作を述べる。
分岐先アドレスの命令がキャッシュ・メモリ12に存在
しない場合には、ヒツト信号132がオフとなっている
。この状態で命令実行ユニット3からブランチ信号12
3を受けると、制御回路21は信号128を出力するこ
とにより、分岐先アドレス信号131をセレクタ23を
介してレジスタ22にラッチさせる。また、信号122
を出力することによシ、セレクタ15を介してレジスタ
16に0をセットし、信号121を出力することによシ
、カウンタ20の値をクリアする。次に、命令フェッチ
要求信号127をオンにし、インク−7工イス回路4に
命令の読出しを指示する。命令フェッチ終了信号126
を受けると、レジスタ10に読出された命令をランチし
、命令デコーダ11による解析を行う。レジスタ16の
値がOであるため、解析結果および命令語はセレクタ1
3および14を介して命令実行ユニット3に送られる。
ブランチ信号123が出力されてから、命令の解析結果
が出力されるまでの間、命令実行禁止信号125はオン
にされる。これ以後、命令制御ユニット2はシーケンシ
ャル・モードと同じように、順次命令の処理を行う。
このように、従来のパイプライン制御式データ処理装置
では、分岐先の命令がキャッシュ・メモリ内に保持され
ている場合でも、分岐命令実行後、次の命令を実行する
までに、キャッシュ・メモリの読出しと、読出された命
令の解析という2つのステージを必要とするのに対し、
本発明においては、キャッシュ・メモリに命令の解析結
果も保持しておくので、分岐命令実行後の命令解析ステ
ージを省くことができ、その分だけ命令処理時間を短縮
することができる。また、本実施例においては、分岐命
令のアドレスと、分岐先アドレスとの差を、分岐アドレ
ス指定のディスプレイスメントとして有しているので、
制御回路のハードウェア量を多くすることなく、分岐命
令の高速化を実現することができる。
〔発明の効果〕
以上説明したように、本発明によれば、キャッシュ・メ
モリに命令の解析結果も保持しておくので、分岐命令実
行時のパイプライン処理の乱れを少なくすることができ
、パイプライン制御データ処理装置の分岐命令実行時間
を短縮することが可能である。
【図面の簡単な説明】
第1図はデータ処理装置の全体ブロック図、第2図、第
3図および第4図は従来の命令処理のタイムチャート、
第5図は本発明による命令処理のタイムチャート、第6
図は本発明の実施例を示す命令制御回路のブロック図、
第7図は第6図のキャッシュ・メモリの詳細ブロック図
である。 1・・・データ処理装置、2・・・命令制御ユニット、
3・・・命令実行ユニット、4・・・インターフェイス
回路、5・・・記憶装置、11・・・命令デコーダ、1
2・・・キャッシュ・メモリ、13,14,15.23
・・・セレクタ、10.16,22.25・・・レジス
タ、17゜24・・・インクリメンタ、18・・・加算
器、19・・・比較回路、20・・・カウンタ、21・
・・制御回路。

Claims (1)

  1. 【特許請求の範囲】 1、記憶装置よシ命令を読出し、該命令を解析して命令
    実行のための制御情報を生成し、該制御情報を命令実行
    回路に転送する命令制御回路において、記憶装置よシ読
    出された命令と、該命令を解析した制御情報とを配慮し
    ておくキャッシュ・メモリを有し、分岐命令実行後に上
    記キャッシュ・メモリから上記制御情報を読出して命令
    実行回路に転送することを特徴とするデータ処理装置の
    命令制御回路。 2 記憶装置よシ命令を読出し、該命令を解析して命令
    実行のための制御情報を生成し、該制御情報を命令実行
    回路に転送する命令制御回路において、記憶装置よシ読
    出された命令と、該命令を解析した制御情報とを記憶し
    ておくキャッシュ・メモリ、該キャッシュ・メモリに記
    憶された連続アドレスを有する命令の数をカウントする
    手段、先頭アドレスを基点として次に実行する命令の相
    対アドレス値を計算する手段を有し、該相対アドレス値
    と上記命令数を比較することによ)、次に実行する命令
    が上記キャッシュ・メモリに記憶されそいるが否かを判
    定し、記憶されているときには、該キャッシュ・メモリ
    から該命令の制御情報を読出して命令実行回路に転送す
    ることを特徴とするデータ処理装置の命令制御回路。
JP58127716A 1983-07-15 1983-07-15 デ−タ処理装置の命令制御回路 Pending JPS6020245A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58127716A JPS6020245A (ja) 1983-07-15 1983-07-15 デ−タ処理装置の命令制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58127716A JPS6020245A (ja) 1983-07-15 1983-07-15 デ−タ処理装置の命令制御回路

Publications (1)

Publication Number Publication Date
JPS6020245A true JPS6020245A (ja) 1985-02-01

Family

ID=14966936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58127716A Pending JPS6020245A (ja) 1983-07-15 1983-07-15 デ−タ処理装置の命令制御回路

Country Status (1)

Country Link
JP (1) JPS6020245A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62235658A (ja) * 1986-03-27 1987-10-15 Yokogawa Hewlett Packard Ltd キヤツシユ・メモリ制御方式
JPS63308445A (ja) * 1987-06-10 1988-12-15 Matsushita Electric Ind Co Ltd 通信プロトコル制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62235658A (ja) * 1986-03-27 1987-10-15 Yokogawa Hewlett Packard Ltd キヤツシユ・メモリ制御方式
JPS63308445A (ja) * 1987-06-10 1988-12-15 Matsushita Electric Ind Co Ltd 通信プロトコル制御装置

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US4471433A (en) Branch guess type central processing unit
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US5421022A (en) Apparatus and method for speculatively executing instructions in a computer system
US5428807A (en) Method and apparatus for propagating exception conditions of a computer system
US5420990A (en) Mechanism for enforcing the correct order of instruction execution
US5131086A (en) Method and system for executing pipelined three operand construct
JPH0527143B2 (ja)
JPH06236268A (ja) 命令の長さを判定する装置と方法
JPH02297630A (ja) デイジタル・データ処理システム
US5642500A (en) Method and apparatus for controlling instruction in pipeline processor
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US6237086B1 (en) 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
JPS6020245A (ja) デ−タ処理装置の命令制御回路
US7020769B2 (en) Method and system for processing a loop of instructions
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JP3490005B2 (ja) 命令制御装置及びその方法
US20050071830A1 (en) Method and system for processing a sequence of instructions
JP2503223B2 (ja) 先行制御方式
JPS60241136A (ja) デ−タ処理装置
JP3211791B2 (ja) ループ処理方式
KR950014162B1 (ko) 파이프라인(Pipeline)이 구비된 프로세서에서 간단한 반복명령어의 구현방법
JPH0248733A (ja) 情報処理装置