JPH0462637A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH0462637A
JPH0462637A JP2173558A JP17355890A JPH0462637A JP H0462637 A JPH0462637 A JP H0462637A JP 2173558 A JP2173558 A JP 2173558A JP 17355890 A JP17355890 A JP 17355890A JP H0462637 A JPH0462637 A JP H0462637A
Authority
JP
Japan
Prior art keywords
instruction
queue
instructions
entry
decoder
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
JP2173558A
Other languages
English (en)
Inventor
Yasuhiko Nitta
新田 泰彦
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2173558A priority Critical patent/JPH0462637A/ja
Publication of JPH0462637A publication Critical patent/JPH0462637A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサに関し、特に命令の先読み
、即ちプリフェッチして予め格納しておく命令キューを
備えたマイクロプロセッサに関する。
〔従来の技術〕
命令をプリフェッチするための命令キューを備えた従来
のマイクロプロセッサの一例として、たとえば「日経デ
ータプロJ 1989年3月号に掲載されたナショナル
・セミコンダクタ社製マイクロプロセッサN53203
2の概略の構成を示す内部プロッり図を第2図に示す。
第2図において、参照符号1はハスインクフェイス部で
あり、外部アドレスバス2及び外部データバス3を介し
て図示されていない周辺装置、たとえば命令記憶装置、
データ記憶装置等からプログラムを構成する命令を取込
み、あるいはデータの読め書き等を実行する。
4は命令キブ6−であり、0からnまでの複数のエント
リにて構成されている。そして、命令キコ。
−4は、ハスインタフェイス部1が取込んだ命令をエン
ドす0から順次各エントリに格納するFIFO(Fir
st、 In First out)II能を有する。
5は命令デコーダであり、上述の命令キュー4に格納さ
れている命令をエントリOから順次読出し7てデコード
する。
6は制御回路であり、命令デコーダ5による各命令のデ
コード結果に従ってこのマイクロプロセッサ全体を制御
する。
命令デコーダ5による各命令のデコード結果は内部ハス
10へも出力される。
内部ハス10には、レジスタセット7、ワーキングレジ
スタ8及びA L 119等が接続されている。
レジスタセット7は、たとえばRO〜R7までの計8個
の汎用レジスタ及びプログラムカウンタ等にて構成され
ている。
ワーキングレジスタ8は、A L L19による演算の
対象となるデータあるいはAlI3による演算結果のブ
タ等を一時的に保持する。
A 1.、[19は算術演算、論理演算及び比較処理等
、命令デコーダ5による各命令のデコード結果に対応し
た処理を行う。
第3図は上述の如き構成のマイクロプロセッサにより実
行されるアセンブリ言語により記述されたプログラム例
であり、具体的には”BR”命令によるループ開始位置
への無条件分岐と、“ACBD”命令による任意回数の
ループ開始位置への条件分岐を反復させるループ処理と
が含まれている。
次に、第2図にその構成を示した従来のマイクロプロセ
ッサの第3図のプログラム例に従った動作例について説
明する。
まず最初に制御回路6は命令キュー4を初期化した後、
パスインタフェイス部1を介して命令を外部の命令記憶
装置からフェッチして命令キュ4に格納させる。
命令キュー4はFIFO機能を有するので、その時点で
実行対象になっている命令のみならず、たとえば命令テ
゛コーダ5が命令をデコードしている間あるいは制御回
路6が命令を実行している間等に更に先の命令を外部の
命令記憶装置から先読み、即ちブリフェッチして各エン
トリに番号順に格納する。そして、命令デコーダ5は命
令キュー4の各エントリに格納されている命令をエント
リの番号順に読出してデコードする。
制御回路6は、命令デコーダ5による各命令のデコード
結果に従って内部バス10を介してレジスタセット7へ
のデータの書込み、読出し、あるいはAlI3による演
算等の処理を実行する。
このようなマイクロプロセッサでは、プログラム上に分
岐命令が無い限りは、命令のデコード及び実行期間中に
外部命令記憶装置から命令をブリフェッチして命令キュ
ー4の各エンI−りに予め順番に格納しておくことが可
能である。従って、プログラムの各命令の命令キュ−4
へのフェッチに要する時間を見掛け−Fは圧縮すること
が出来るのでプログラム実行速度が向上する。
しかし、命令キュー4への命令のブリフェッチはプログ
ラムの実行途中に分岐命令が存在する場合には無意味に
なる。
たとえば第3図に示されているプログラム例では、“B
R”命令は無条件でループ開始位置へ分岐する無条件分
岐命令である。また、“ACBD”命令は汎用レジスタ
ROに記憶されている値に“−1”を加算した結果、換
言すれば“1“減算した結果が“0”でなければループ
開始位置へ分岐し、“0”であれば次命令を実行する条
件分岐命令である。換言すれば、”ACBD’命令は汎
用レジスタROに記憶されている値に等しい回数だけル
ープ処理を反復させる命令である。
このような分岐命令が実行されてループの開始位置へ命
令の実行位置が移った場合には、命令キニー4は一旦初
期状態にされた上でループ開始位置の命令、即ち“AD
DD RO,R2”命令から以降の各命令を命令キュー
4のエントリ0から順次各エントリにブリフェッチする
。従って、このような場合には、それ以前に命令キュー
4にブリフェッチされていた各命令は無効になるので、
処理速度の低下を招来する。特に、“ACBD″命令の
ような汎用レジスタROの記憶値の回数だけ反復して分
岐が発生するようなプログラムを実行する場合には、R
eの記憶値が大きければ大きい程、処理速度に対する影
響も大きくなる。
〔発明が解決しようとする課題〕
上述のような従来のマイクロプロセッサでは、分岐命令
の数が少ないプログラムを実行する場合には高速性が発
揮されるが、プログラム実行に際して分岐命令が頻発す
るような場合、たとえば第3図に示したような同一の処
理を反復するループが介在しており且つそのそのループ
処理に要する命令数が少ないような場合には、命令をブ
リフェッチすることにより生じる効果は余り期待し難く
、プログラムの実行速度がさほどは向上しないという問
題がある。
〔課題を解決するための手段〕
本発明のマイクロプロセッサは、命令をブリフェッチし
て予め格納しておくための命令キューと、たとえば分岐
命令の実行に際して命令キューを初期化する場合に命令
キューの先頭エントリに格納されている命令のアドレス
と分岐先アドレスとを比較する比較手段とを備えている
〔作用〕
本発明のマイクロプロセッサでは、たとえば分岐命令が
実行されて命令キューが初期化されるような場合には、
命令キューの先頭エントリに既に格納されている命令の
アドレスと分岐先アドレスとが比較され、一致していれ
ば命令キューの初期化及び分岐先命令以降の各命令のブ
リフェッチは行われないので、迅速な命令実行が可能に
なる。
〔実施例〕
以下、本発明をその実施例を示す図面を参照して詳述す
る。
第1図は本発明に係るマイクロプロセッサの一構成例を
示すブロック図であり、第2図に示されている従来のマ
イクロプロセッサと同一または相当する部分には同一の
参照符号を付与しである。
第1図において、参照符号1はバスインクフェイス部で
あり、外部アドレスバス2及び外部データバス3を介し
て図示されていない周辺装置、たとえば命令記憶装置、
データ記憶装置等からプログラムを構成する命令を取込
み、あるいはデータの読み書き等を実行する。
4は命令キューであり、0からnまでの複数のエントリ
にて構成されている。そして、命令キュー4は、バスイ
ンタフェイス部1が取込んだ命令をエントリ0から順次
各エントリに格納するFIFO(First In F
irst 0ut)機能を有する。
5は命令デコーダであり、上述の命令キュー4に格納さ
れている命令をエントリ0から順次読出してデコードす
る。
6は制御回路であり、命令デコーダ5による各命令のデ
コード結果に従ってこのマイクロプロセッサ全体を制御
する。
命令デコーダ5による各命令のデコード結果は内部バス
10へも出力される。
内部バス10には、レジスタセフドア、ワーキングレジ
スタ8.AlI3及びエントリ0レジスタ11等が接続
されている。
レジスタセット7は、たとえばRO−1?7までの計8
個の汎用レジスタ及びプログラムカウンタ等にて構成さ
れている。
ワーキングレジスタ8は、ALII9による演算の対象
となるデータあるいはALL19による演算結果のデー
タ等を一時的に保持する。
ALII9は算術演算、論理演算及び比較処理等、命令
デコーダ5による各命令のデコード結果に対応した処理
を行う。
エントリ0レジスタ11は、命令キュー4が初期化され
た場合にそのエントリ0に格納されている命令の外部命
令記憶装置におけるアドレスを記憶する命令アドレスレ
ジスタである。なお、このエントリ0レジスタ11の記
憶内容は命令キュー4が初期化される都度更新される。
このような構成の本発明のマイクロプロセッサの動作に
ついて以下に説明する。但し、分岐命令が発生しない場
合の動作は前述の従来のマイクロプロセッサ同様に一般
的な動作を行うのでその説明は省略する。
本発明のマイクロプロセンサの特徴的な動作は以下の如
くである。たとえば“BR″命令、“ACBD”命令等
の分岐命令の実行に際しては、制御回路6はまずそれら
の分岐命令により指示される分岐先アドレスとその時点
でエントリ0レジスタ11に記憶されているアドレスと
をAlI3に比較させる。この比較結果が不一致であれ
ば、制御回路6は命令キュー4を初期状態にした後、分
岐命令が指示している分岐先アドレスの命令を命令キュ
ー4のエントリ0にフェッチさせ、以後は従来例と同様
に命令のプリフェッチを行いつつ各命令を実行する。
AlI3による比較結果が一致した場合には、制御回路
6は命令キュー4の初期化及び新たな命令のエントリ0
へのフェッチは行わない。
以下、前述の第3図のプログラム例に従って本発明のマ
イクロプロセッサの動作について詳述する。
まず最初に制御回路6は命令キュー4を初期化した後、
パスインタフェイス部lを介して命令を外部の命令記憶
装置からフェッチして命令キュー4に格納させる。この
際、エントリ0レジスタ11にも命令キュー4のエント
リ0に格納された命令のアドレスが記憶される。
命令キュー4はFIFO機能を有するので、その時点で
実行対象になっている命令のみならず、たとえば命令デ
コーダ5が命令をデコードしている間あるいは制御回路
6が命令を実行している間等に更に先の命令を外部の命
令記憶装置から先読み、即ちプリフェッチして各エント
リに番号順に格納する。そして、命令デコーダ5は命令
キュー4の各エントリに格納されている命令をエントリ
の番号順に読出してデコードする。
制御回路6は、命令デコーダ5による各命令のデコード
結果に従って内部バス10を介してレジスタセット7へ
のデータの書込み、読出し、あるいはAlI3による演
算等の処理を実行する。
このような本発明のマイクロプロセッサの動作中に、た
とえば命令キュー4のあるエントリに格納されていた“
BR″命令が実行された場合、その分岐先アドレスであ
るループ開始位置の命令アドレスとその時点でエントリ
0レジスタ11に記憶されているアドレスとがAlI1
9により比較される。
このAlI3による両アドレスの比較の結果は通常は不
一致であり、命令キュー4は初期状態にされる。これに
より新たに分岐先アドレスの命令である“ADDD R
O,R2″命令がフェッチされて命令キュー4のエント
リ0に格納され、以後プログラム上の順序通りに各命令
がブリフェッチされる。
この際、エントリ0レジスタ11にも“BR”命令の分
岐先アドレス、即ち“ADDD RO,92″命令の7
ドレスが記憶される。
“ADDD RO,R2”命令から順に命令キュー4の
各エントリに格納されている命令が順次実行されてゆく
と、やがて条件分岐命令である“ACBD”命令が実行
される。この“ACBD”命令は端的にはレジスタRO
に記憶されている値の回数だけループ処理を反復させる
命令であるから、最初はループ開始位置へ分岐する。
ところで、前述の“B12”命令が実行された際に命令
キュー4が一旦初期化されてそのエントリ0には“AD
DD RO,R2”命令が格納されたが、ぞの後の“A
CBD″命令が実行されるまでの命令数が命令キュー4
のエントリ数より少なければ、“ADDD RO,R2
″命令の実行時点から”ACBD”命令の実行時点まで
の間には命令キュー4の初期化は行われない、従って、
“ACBD”命令の実行時点では命令キュー4のエント
リ0には“ADDD RO,R2″命令が格納されたま
まであるからエントリ0レジスタ11には“ADDD 
RO,R2”命令のアドレスが記憶されている。
このため、“八CHD”命令の実行に際してのALυ9
による比較結果は一致することになる。従って、この場
合には命令キュー4の初期化及び新たな命令のブリフェ
ッチは行われず、それ以前から命令キュー4の各エント
リに格納されている各命令がそのまま再度順次命令デコ
ーダ5によりデコードされて実行される。
この後、命令実行の進行に伴って再度“ACBD”命令
に至るが、条件分岐命令である“ACBD”命令が分岐
を反復する間は上述同様にして命令キュー4の初期化及
び新たな命令のブリフェッチは行われずにループ処理が
反復される。
なお、上記実施例では、命令キュー4のエントリ0へ次
にフヱッチされるべき命令のアドレスとエントリ0レジ
スタ11に記憶されているアドレスとを通常のマイクロ
プロセッサには必ず備えられているALU9により比較
するように構成しているが、専用の比較器を備える構成
としてもよい。
〔発明の効果〕
以上に詳述した如く本発明によれば、実行対象のプログ
ラム中にループ処理が含まれており、且つループ中にそ
のループへ分岐する命令が有るような場合には命令キュ
ーに最初のブリフェッチされたループ処理の各命令がそ
のまま反復して使用されるので、命令ブリフェッチの有
利な機能を損なうことなく、命令実行速度の向上が図れ
る。
【図面の簡単な説明】
第1図は本発明に係るマイクロプロセッサの−構成例を
示すブロック図、第2図は従来の命令ブリフェッチ機能
を有するマイクロプロセッサの構成例を示すブロック図
、第3図は本発明及び従来のマイクロプロセッサにより
実行されるプログラム例を示す模式図である。 4・・・命令キュー  5・・・命令デコーダ  6・
・・制御回路  9・・・ALU  11・・・エント
リ0レジスタなお、図中、同一符号は同一、又は相当部
分を示す。

Claims (1)

    【特許請求の範囲】
  1. (1)命令記憶装置から先読みされた命令を、先頭の番
    号から順番に格納すべく番号付けされた複数のエントリ
    にて構成された命令キューと、 該命令キューから命令を読出してデコードする命令デコ
    ーダと、 前記命令キュー及び命令デコーダに対して命令の読出し
    と書込みを指示する機能、前記命令デコーダのデコード
    結果に従って前記命令キューを初期化すると共に命令の
    先読みを開始するアドレスを発生する機能を有する制御
    部と を備えたマイクロプロセッサにおいて、 前記命令キューの先頭の番号のエントリに格納されてい
    る命令の前記命令記憶装置におけるアドレスを記憶する
    命令アドレスレジスタと、 前記命令キューを初期化して命令の先読みを開始する場
    合にそのアドレスと前記命令レジスタに記憶されている
    アドレスとを比較する比較手段とを備え、 前記制御部は前記比較手段による比較結果が一致した場
    合には前記命令キューの初期化及び命令の先読みを禁止
    すべくなしてあることを特徴とするマイクロプロセッサ
JP2173558A 1990-06-29 1990-06-29 マイクロプロセッサ Pending JPH0462637A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2173558A JPH0462637A (ja) 1990-06-29 1990-06-29 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2173558A JPH0462637A (ja) 1990-06-29 1990-06-29 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH0462637A true JPH0462637A (ja) 1992-02-27

Family

ID=15962778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2173558A Pending JPH0462637A (ja) 1990-06-29 1990-06-29 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH0462637A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998036351A1 (fr) * 1997-02-17 1998-08-20 Hitachi, Ltd. Processeur de donnees
US6434691B2 (en) 2000-02-24 2002-08-13 Hitachi, Ltd. Cell phones with instruction pre-fetch buffers allocated to low bit address ranges and having validating flags

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998036351A1 (fr) * 1997-02-17 1998-08-20 Hitachi, Ltd. Processeur de donnees
US6505295B1 (en) 1997-02-17 2003-01-07 Hitachi, Ltd. Data processor
US7080240B2 (en) 1997-02-17 2006-07-18 Hitachi, Ltd. Data processing apparatus
US6434691B2 (en) 2000-02-24 2002-08-13 Hitachi, Ltd. Cell phones with instruction pre-fetch buffers allocated to low bit address ranges and having validating flags
US6542982B2 (en) 2000-02-24 2003-04-01 Hitachi, Ltd. Data processer and data processing system

Similar Documents

Publication Publication Date Title
JPS6393038A (ja) 計算機
JP3497516B2 (ja) データプロセッサ
JP3182438B2 (ja) データプロセッサ
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
US6735687B1 (en) Multithreaded microprocessor with asymmetrical central processing units
JPH0462637A (ja) マイクロプロセッサ
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JPH10124312A (ja) 中央処理装置
JP5100030B2 (ja) データプロセッサ、データ処理方法
JPH0193825A (ja) プリフェッチキュー制御方式
JPH01255036A (ja) マイクロプロセッサ
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JP2843844B2 (ja) 並列演算処理装置
JP2591325B2 (ja) 分岐制御装置
JP2856784B2 (ja) 電子計算機
KR19980052331A (ko) 프로세서의 캐시 메모리 제어 방법
JPH0247725A (ja) データ処理装置
JPS6249545A (ja) 先取り制御処理装置
JPH05150978A (ja) プロセツサ
JPH03212735A (ja) マイクロプロセッサの命令処理方式
JPH03164945A (ja) データ処理装置
JPH096613A (ja) 動的ハイパースカラ・プロセッサ
JPH04195630A (ja) データ処理装置
JPS6336336A (ja) 情報処理装置
JPH09311787A (ja) データ処理装置