JPH0784781A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0784781A
JPH0784781A JP22629193A JP22629193A JPH0784781A JP H0784781 A JPH0784781 A JP H0784781A JP 22629193 A JP22629193 A JP 22629193A JP 22629193 A JP22629193 A JP 22629193A JP H0784781 A JPH0784781 A JP H0784781A
Authority
JP
Japan
Prior art keywords
instruction
aligner
address
nop
output
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
JP22629193A
Other languages
English (en)
Inventor
Keisuke Shindo
啓介 進藤
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 JP22629193A priority Critical patent/JPH0784781A/ja
Publication of JPH0784781A publication Critical patent/JPH0784781A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】可変長命令を持つマイクロプロッサに於いて、
分岐動作の直後に、分岐先の命令のミスアラインで命令
の実行開始が遅れるのを防ぐためのアライン専用のNO
P命令が分岐以外の動作を遅らせるのを防ぐ。 【構成】マイクロプロセッサ102に入力される命令メ
モリ101のデータをアラインする命令アライナ103
の出力に、次に実行する命令の一部を別に出力し、それ
を通常の命令デコードと並行してNOP命令かどうかを
NOP検出器107で検出する。NOP命令の時はさら
に次の命令を命令デコーダ105に入力させるように命
令アライナ103と、命令メモリ101に接続されるア
ドレス発生器104を制御する。これにより、分岐先の
命令アラインの為に挿入したNOP命令を読み飛ばすこ
とを可能にする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置に係わり、
特に可変長命令の実行時に実行不要な命令を読み飛ばす
機能を有する情報処理装置に関する。
【0002】
【従来の技術】従来のマイクロプロセッサにおいては、
命令を実行する際に、その命令語長が命令の種類によっ
てそれぞれ異なり(可変長命令)、かつ命令実行の最小
アドレス単位の幅が命令のフェッチ幅より小いさい場合
には、アドレスの先頭を整列する命令アライナ(以下、
単にアライナと称す)と呼ばれる特殊なハードウェアが
必要となっている。マイクロプロセッサが有するこの種
のアライナについては、日本電気会社編、1991年発
行のユーザーズ・マニュアル「V60,V70、32/
16ビット・マイクロプロセッサ」、アーキテクチャ
編、第463頁に記載されているとおり、このマイクロ
プロセッサ16ビットのデータ・バス幅を有しているの
で、データが16ビット以上の場合、そのデータが整列
しているか否かは性能に大きく影響し、特にメモリ・ア
クセスがパイプライン動作の待ちをつくる原因となる。
そのため性能のよいソフトウェア開発のためにはできる
かぎりデータが整列しているのがよい、としている。
【0003】この刊行物では図示されてないが、このア
ライナを含むマイクロプロセッサの主要部をブロック図
で示した図2を参照すると、外部にメモリ201が接続
されるマイクロプロセッサ202は、命令実行の最小ア
ドレス単位の幅が命令のフェッチ幅よりも小さいとき
に、その命令のアドレスをその命令フェッチ幅の先頭に
そろえるデータ整列を実行して出力するアライナ203
と、命令メモリ201に実行アドレスを指定するアドレ
ス発生器204と、整列されたアライナ出力を解読する
命令デコーダ205と、命令デコーダ205へ供給する
次の命令を決定する制御部206とを備える。メモリ2
01から16ビットの上位データがアライナ203の選
択回路210aに一方は直接に、他方はバッファ208
を介してそれぞれ供給され、選択回路210aの出力は
選択回路210bおよび210dにそれぞれ供給されて
いる。
【0004】同様に16ビットの下位データもアライナ
203の選択回路210cに一方は直接に、他方はバッ
ファ209を介してそれぞれ供給され、選択回路210
cの出力は選択回路210dに供給され、かつバッファ
207を介して210bにも供給されている。選択回路
210bよび210dの各出力は命令デコーダ205に
供給され、解読された制御信号のうち所定の制御信号が
制御部206に供給される。その制御信号に応答して制
御出力がアライナ203およびアドレス発生器204に
それぞれ供給され、アドレス発生器204の出力はメモ
リ201に供給されるように構成されている。
【0005】再び図2を参照すると、この図に示したマ
イクロプロセッサ202は、命令フェッチ幅は32ビッ
トで、命令アドレスの下位2ビットは固定とする。そし
て、命令幅は16ビット、32ビットの2通りがあるも
のとする。命令メモリ201から読み出された命令は、
命令アライナ203に供給される。この命令のビット長
は、命令メモリの節約のために可変となっているため、
読み込んだ命令は、上位の16ビットだけで一つの命令
となる可能性があり、このとき、下位の16ビットは次
の命令としてバッファ207に蓄えられて次の上位16
ビットの命令となる。そして、命令メモリ201から次
にフェッチするデータの上位16ビットはその次に読み
込む命令の下位ビットとなる。
【0006】このように、可変長命令は、16ビットと
32ビットの命令の両方が自由に混在することを許すた
め、1つの命令がフェッチできるアドレス幅の境界にま
たがって存在することがあり(ミスアライン)、一回の
命令フェッチでは命令の一部のみしか取り込めずに、命
令実行が始まらないことがある。特にこれが分岐命令の
飛び先である場合は、2回の命令フェッチを終えるまで
最初の命令の実行が出来ないことになる。
【0007】ミスアラインを起こすマイクロプロセッサ
の命令の配置の例を示した図3を参照すると、0022
番地への分岐で32ビット長の命令MOV313が最初
に実行されるが、この命令は、命令フェッチ302と命
令フェッチ303の両方にまたがっているため、両方の
命令フェッチが終了するまで実行を始められない。
【0008】分岐命令で分岐をする部分は、プログラム
の中のループの一部であることが多いため、全体の速度
向上のためには他の部分をある程度犠牲にして速度向上
を計る必要がある。そのため、分岐先の命令のアドレス
を命令フェッチ幅の先頭に合わせる。そのために、中空
となった命令メモリ201にノーオペレーション(NO
P)命令などの動作に直接影響の無い命令を入れる。よ
って、ミスアラインアクセスを起こす分岐の飛び先の前
にNOP命令を挿入し、ループ内の実行速度を高速化さ
せる。
【0009】ミスアラインアクセス防止用のNOPを挿
入した命令の配置の例を示した図4を参照すると、NO
P命令413の挿入により、命令MOV414はアライ
ンされる。MOV命令414への分岐の際は、命令フェ
ッチ403の直後に命令の実行を開始できる。
【0010】このNOP命令を入れる操作は、全体的な
性能の向上のためにコンパイラが自動的に行なうか、プ
ログラマが意図して行なう必要があり、その定量的効果
を以下に示すと、NOP命令を挿入したことにより、分
岐先の実行時間は、 (分岐の生起確率)×(ミスアラインの確率)×(命令
フェッチ一回分) だけ短縮される。特に分岐の生起確率はループなどの効
果で大きい。ここで、NOP命令の挿入のペナルティー
を考えると、NOP命令の挿入により一命令の実行時間
が加算される。これは、 (分岐先を通る確率)×(ミスアラインの確率)×(N
OP命令の実行時間) だけの時間の増加となる。
【0011】また、NOP命令はフェッチ幅の半分なの
で、全体の命令フェッチの回数も0.5回分増えること
になる。しかし、分岐命令など、フェッチした命令の残
りの半分を実行せず捨ててしまう様な命令が実行されれ
ば、フェッチ数の増加はなくなる。よって、そのフェッ
チが無効になる確率より、 (分岐先を通る確率)×(ミスアラインの確率)×(分
岐命令がフェッチした命令を全て使用する確率)×(一
回のフェッチ時間) だけ時間の増加となる。統計的には、 (1)分岐の生起確率:0.1/1クロック (2)分岐先の命令のミスアラインの確率:0.5 (3)命令フェッチ一回:2クロック (4)分岐先の通過の確率:0.05/1クロック (5)分岐命令がフェッチした命令を全て使用する確
率:0.5 として、0.1CPI−0.025CPI−0.025
CPI=0.05CPIとなる。
【0012】ここでCPI(cycle per in
struction)は1命令あたりのクロック数を示
す。
【0013】
【発明が解決しようとする課題】NOP命令を挿入する
ことにより分岐先の命令は常にアラインされることにな
り、ループなどの動作の高速化を図ることが出来る。し
かし、分岐のレベルが深くなると逐次的に分岐先にたど
りついた場合、NOP命令の実行により実際の動作には
関係のない時間の遅れが生じるという欠点を有する。
【0014】本発明の目的は、上述の欠点に鑑みなされ
たものであり、可変長命令をもつマイクロプロセッサに
おいて、分岐命令の直後に、分岐先のミスアライン処理
による命令の実行開始の遅れを防ぐためのミスアライン
処理専用のNOP命令が、分岐動作以外の動作を遅らせ
るのを防止することにある。
【0015】
【課題を解決するための手段】本発明の情報処理装置
は、命令の実行時にその命令が可変長命令で、かつ命令
実行の最小アドレス単位の幅が前記命令のフェッチ幅よ
りも小いさいときに、その命令のアドレスをその命令フ
ェッチ幅の先頭にそろえるデータ整列を実行して出力す
る命令アライナと前記整列された命令アライナ出力を解
読する命令デコーダと前記命令デコーダの出力信号に応
答して前記命令デコーダへ供給するための次の命令を決
定する制御部と命令メモリと前記命令メモリに実行アド
レスを指定するアドレス発生器とを備えた情報処理装置
において、前記データ整列された一方の命令アライナ出
力の他に次に実行すべき命令を出力する他方の命令アラ
イナ出力の手段と、前記他方の命令アライナ出力に応答
してNOP命令の実行を禁止する命令アドレス制御手段
とを備えることを特徴とする。
【0016】また、前記他方の命令アライナ出力の手段
は、前記命令アライナから前記命令デコーダに供給され
る命令のうち下位データの情報のみが分離出力されるよ
うに構成され、前記命令アドレス制御手段は、前記分離
出力された下位データの情報から前記NOP命令か否か
を判定するNOP検出器を備え、その検出結果が前記N
OP命令ならば前記制御部が前記命令アライナを制御す
ることによって、次に、実行すべき命令が前記データ整
列を実行されることなく前記命令デコーダに供給される
ように構成されることを特徴とする。
【0017】
【実施例】次に、本発明の実施例について図面を参照し
ながら説明する。
【0018】図1は本発明の第1の実施例によるマイク
ロプロセッサを用いた回路のブロック図である。図1を
参照すると、このマイクロプロセッサ102は、図2で
示した従来のマイクロプロセッサ201の回路に、アラ
イナ103から命令デコーダ105に供給される命令の
うち下位データの情報のみが分離出力され、この分離出
力された下位データの情報からNOP命令か否かを判定
するNOP検出器107をさらに加えた構成を備え、そ
の検出結果がNOP命令ならば制御部106がアライナ
103を制御することによって、次に実行すべき命令が
データ整列を実行されることなく命令デコーダ105に
供給されるように構成したことが従来例と異なる。それ
以外の構成要素は従来例と同一であり、構成要素に付し
た符号101〜106と201〜206、および108
〜112と208〜212がそれぞれ対応するので、そ
の他の構成の説明は省略する。
【0019】再び図1を参照すると、このマイクロプロ
セッサは一度に一命令のみをアドレス順に、上位アドレ
スから下位アドレスの順に実行していくものとする。
【0020】命令メモリ101は、アドレス発生器10
4の発生したアドレスに従い、命令をCPU102に出
力する。この状態では命令は混在して存在する。次に、
命令アライナ103は命令をアラインして、一命令分を
命令デコーダ105に供給する。
【0021】命令デコーダ105は、命令を解釈すると
同時に、命令のビット数を判定する。制御部106は、
アドレス発生器104とアライナ103を制御すること
により、次に命令デコーダ105に渡す命令を決定す
る。
【0022】以下に、アライナ103によって命令がど
の様にアラインされるかを示す。 (1)アライン済みの32ビット長の1命令がフェッチ
された場合は、次の命令フェッチを行ない、通常どおり
に実行する。 (2)フェッチされたデータの上位に、アライン済みの
16ビット長の命令がある場合は、下位の命令の実行
は、下位の命令が32ビット長の可能性があるなめ次の
命令フェッチ後に行なわれる。 (3)上位アドレスに前の32ビット長の命令の半分が
残っていた場合も(ミスアライン)、同様に下位の命令
の実行は次の命令フェッチ後に行なわれる。
【0023】以上の3つの内、2番目および3番目のケ
ース、つまり上位データのみが有効なフェッチが行なわ
れた時のことを考える。
【0024】このとき、フェッチされた下位データは、
次に来るべき命令の上位になる。この下位データは、命
令デコーダ105と並列にNOP検出器107に渡さ
れ、NOP命令であるかどうかを検出する。NOP命令
は16ビット長なので、この時点で検出が可能である。
【0025】NOPを検出した場合は、制御部は次の命
令メモリ101からのフェッチデータを直接命令デコー
ダ105に渡す。この動作により、バッファ110dに
入って次に実行されるはずのNOP命令は無視すること
ができる。
【0026】再びアラインの為のNOPを挿入した命令
の配置を示した図3を参照すると、分岐先アラインの効
果は、分岐に対しては回路の変更無しに、命令の配置を
変えるたけで出すことができる。しかし、アラインのた
めに挿入したNOP命令313は、そのままでは逐次的
に分岐先命令に近付いて行く時には一命令の実行時間が
加算されるが、この場合は本発明により実行時間を低減
できる。
【0027】
【発明の効果】以上説明したように、本発明によれば命
令を逐次的に動作させた時のNOP命令はNOP検出器
により無効となる。したがってNOP命令の読み取ばし
によるNOP命令のペナルティは、 (分岐先を通る確率)×(ミスアラインの確率)×(N
OP命令の実行時間) だけ短縮される。よって従来例より更に0.025CP
Iの実行時間短縮を達成できる。
【0028】さらに、NOP検出器の回路規模は、単な
るNOP命令の命令コードとの一致比較であるため、1
6ビットデコードでは10〜20ゲートもあれば充分で
ある。しかも、他のユニットの動作と並列に動作するた
め、回路的な速度ペナルティーが極めて少ない。
【図面の簡単な説明】
【図1】本発明の一実施例のマイクロプロセッサを用い
た回路のブロック図である。
【図2】従来例のマイクロプロセッサのブロック図であ
る。
【図3】従来例および本発明における命令の配置の一例
を示す図である。
【図4】従来例の命令の配置の一例を示す図である。
【符号の説明】
101,201 命令メモリ 102,202 マイクロプロセッサ 103,203 命令アライナ 104,204 アドレス発生器 105,205 命令デコーダ 106,206 制御部 107 NOP検出器

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令の実行時にその命令が可変長命令
    で、かつ命令実行の最小アドレス単位の幅が前記命令の
    フェッチ幅よりも小さいときに、その命令のアドレスを
    その命令フェッチ幅の先頭にそろえるデータ整列を実行
    して出力する命令アライナと前記整列された命令アライ
    ナ出力を解読する命令デコーダと前記命令デコーダの出
    力信号に応答して前記命令デコーダへ供給するための次
    の命令を決定する制御部と命令メモリと前記命令メモリ
    に実行アドレスを指定するアドレス発生器とを備えた情
    報処理装置において、前記データ整列された一方の命令
    アライナ出力の他に次に実行すべき命令を出力する他方
    の命令アライナ出力の手段と、前記他方の命令アライナ
    出力に応答してノーオペレーション命令の実行を禁止す
    る命令アドレス制御手段とを備えることを特徴とする情
    報処理装置。
  2. 【請求項2】 前記他方の命令アライナ出力の手段は、
    前記命令アライナから前記命令デコーダに供給される命
    令のうち下位データの情報のみが分離出力されるように
    構成され、前記命令アドレス制御手段は、前記分離出力
    された下位データの情報から前記ノーオペレーション命
    令か否かを判定するノーオペレーション検出器を備え、
    その検出結果が前記ノーオペレーション命令ならば前記
    制御部が前記命令アライナを制御することによって、次
    に実行すべき命令が前記データ整列を実行されることな
    く前記命令デコーダに供給されるように構成されること
    を特徴とする請求項1記載の情報処理装置。
JP22629193A 1993-09-13 1993-09-13 情報処理装置 Pending JPH0784781A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22629193A JPH0784781A (ja) 1993-09-13 1993-09-13 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22629193A JPH0784781A (ja) 1993-09-13 1993-09-13 情報処理装置

Publications (1)

Publication Number Publication Date
JPH0784781A true JPH0784781A (ja) 1995-03-31

Family

ID=16842916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22629193A Pending JPH0784781A (ja) 1993-09-13 1993-09-13 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0784781A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366876B1 (en) 2000-10-31 2008-04-29 Analog Devices, Inc. Efficient emulation instruction dispatch based on instruction width
US7927291B2 (en) 2002-12-30 2011-04-19 Roche Diagnostics Operations, Inc. Blood acquisition suspension system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5031779A (ja) * 1973-07-23 1975-03-28
JPS592148A (ja) * 1982-06-28 1984-01-07 Fujitsu Ltd ル−プ処理方式
JPS61285542A (ja) * 1985-06-12 1986-12-16 Mitsubishi Electric Corp 命令先取り方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5031779A (ja) * 1973-07-23 1975-03-28
JPS592148A (ja) * 1982-06-28 1984-01-07 Fujitsu Ltd ル−プ処理方式
JPS61285542A (ja) * 1985-06-12 1986-12-16 Mitsubishi Electric Corp 命令先取り方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366876B1 (en) 2000-10-31 2008-04-29 Analog Devices, Inc. Efficient emulation instruction dispatch based on instruction width
US7927291B2 (en) 2002-12-30 2011-04-19 Roche Diagnostics Operations, Inc. Blood acquisition suspension system

Similar Documents

Publication Publication Date Title
US7260707B2 (en) Variable length instruction pipeline
US7707390B2 (en) Instruction issue control within a multi-threaded in-order superscalar processor
EP1050808B1 (en) Computer instruction scheduling
US20010005882A1 (en) Circuit and method for initiating exception routines using implicit exception checking
EP1886216B1 (en) Controlling out of order execution pipelines using skew parameters
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US20240036876A1 (en) Pipeline protection for cpus with save and restore of intermediate results
US11029997B2 (en) Entering protected pipeline mode without annulling pending instructions
US20070079076A1 (en) Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture
US7213132B2 (en) System and method for providing predicate data to multiple pipeline stages
US6742110B2 (en) Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
JPH0784781A (ja) 情報処理装置
US6401195B1 (en) Method and apparatus for replacing data in an operand latch of a pipeline stage in a processor during a stall
US6976049B2 (en) Method and apparatus for implementing single/dual packed multi-way addition instructions having accumulation options
EP0992893B1 (en) Verifying instruction parallelism
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JPH0793151A (ja) 命令供給装置
JP3475861B2 (ja) データ処理装置
JP2933030B2 (ja) 情報処理装置
JPH0247725A (ja) データ処理装置
JPH0520065A (ja) 並列演算処理装置
JPS58223851A (ja) デ−タ処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19961008