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

マイクロプロセッサ

Info

Publication number
JPH06290042A
JPH06290042A JP5075677A JP7567793A JPH06290042A JP H06290042 A JPH06290042 A JP H06290042A JP 5075677 A JP5075677 A JP 5075677A JP 7567793 A JP7567793 A JP 7567793A JP H06290042 A JPH06290042 A JP H06290042A
Authority
JP
Japan
Prior art keywords
instruction
wait
address
argument
microprocessor
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
JP5075677A
Other languages
English (en)
Inventor
Shinkou Yamako
真弘 山子
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 JP5075677A priority Critical patent/JPH06290042A/ja
Publication of JPH06290042A publication Critical patent/JPH06290042A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 外部バスのバスサイクルにかかわりなく、ユ
ーザが希望するだけのウエイトを容易に発生させる。 【構成】 命令キュー11に蓄えられた命令をデコーダ12
がデコードした結果、ウエイト発生命令の場合はマイク
ロポインタ15にアドレスデータを受け取らせるデコード
結果有効信号12a を無効にするとともに、ウエイト発生
命令のオペランドに含まれる引数値をタイマ13にセット
してカウントし、タイムアップするまではマイクロポイ
ンタ15にアドレスデータを受け取らせる有効信号13a を
無効にして、両有効信号12a,13a が無効である間、ウエ
イトを発生させ、タイムアップした時点で有効信号13a
を有効にしてマイクロポインタ15にアドレスデータを受
け取らせる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令プリフェッチ機構
をもつマイクロプロセッサに関する。
【0002】
【従来の技術】所定時間ウエイトをかけるために設ける
ソフトウェアタイマは、従来、LOOP命令により作成され
ることが多く、プログラマは、LOOP命令の実行に要する
クロック数に基づき、設定したい時間に応じたLOOP命令
のループ回数を計算し、この回数分、LOOP命令を繰り返
すプログラムによりソフトウェアタイマを作成してい
た。
【0003】一方、マイクロプロセッサの技術が進むに
つれて、命令の実行中にバスが空いている時間を利用し
て、実行中の命令の次のアドレスの命令を前もってフェ
ッチ(プリフェッチ)してチップ内部の命令キューに取
り込んでおくという命令プリフェッチ機構をもつマイク
ロプロセッサが一般的となってきており、この命令プリ
フェッチ機構により命令の実行と命令のフェッチを同時
に行なってマイクロプロセッサの高速化が図られてい
る。
【0004】ところが、命令プリフェッチ機構ではメモ
リ上の命令を常にシーケンシャルにフェッチするため、
シーケンシャルな命令の流れから分岐するLOOP命令のよ
うな命令を実行した場合、分岐命令の実行中にプリフェ
ッチしている命令は次に実行すべき分岐先の命令ではな
いので、マイクロプロセッサは分岐先のアドレスからあ
らためて命令をフェッチし直さなければならない。
【0005】以上のように、プリフェッチ機構を備えた
マイクロプロセッサでは、分岐命令の分岐先の先頭命令
をフェッチする間は命令実行部が動作しないので、LOOP
命令によるウエイトの発生時間は、LOOP命令の実行時間
に、条件が成立するまでの分岐の都度、先頭命令をフェ
ッチする時間を加えた時間となる。
【0006】例えば、8088型マイクロプロセッサでは、
設定したい時間に対応するループの繰り返し回数の値
“20”をCXレジスタに設定する命令“MOV CX, 20”と、
その次に、ループを一巡する都度、CXレジスタから
“1”ずつ減じていき、減算結果が“0”になるまで分
岐を繰り返す命令“LOOP $”とからなるプログラムでソ
フトウェアタイマが作成される。
【0007】ここで、LOOP命令の先頭アドレスに分岐す
るときのLOOP命令の実行時間を9クロック、分岐しない
ときの実行時間を5クロックとした場合、命令のプリフ
ェッチがなければ、前述のLOOP命令のループを抜けるま
でに 9×19+5 =176 クロックかかる計算となる。しか
し、プリフェッチ機構を備えた8088型のマイクロプロセ
ッサでは、ループを抜けるまでのLOOP命令の実行時間
に、LOOP命令の実行で条件が成立せずにLOOP命令の先頭
命令へジャンプした場合の先頭命令のフェッチ時間を加
算しなければならない。
【0008】
【発明が解決しようとする課題】以上のように、命令プ
リフェッチ機構を備えた従来のマイクロプロセッサで
は、ソフトウェアタイマを作成する際の計算が煩雑とな
るのみならず、その計算に用いられる命令フェッチ時間
には外部バスのバスサイクルが含まれるので、各システ
ムのバスサイクルを考慮してソフトウェアタイマを作成
し直さなければならず、さらに、同じシステムであって
も外部バスのその時の状況で、ウエイトのかかる時間が
ユーザの希望と異なってしまうという問題がある。
【0009】本発明はこのような問題点を解決するため
になされたものであって、ユーザの希望どおりの時間だ
け容易にウエイトを発生させるマイクロプロセッサの提
供を目的とする。
【0010】
【課題を解決するための手段】本発明に係るマイクロプ
ロセッサは、ウエイト発生命令のオペランドに設定され
た引数値に応じたウエイトを、引数値に応じた回数のウ
エイト発生命令の繰り返し実行によって発生させること
を特徴とする。
【0011】また、本発明に係るマイクロプロセッサ
は、ウエイト発生命令のオペランドに設定された引数値
に応じたウエイトを、タイマによる引数値のカウントに
よって発生させることを特徴とする。
【0012】さらに、本発明に係るマイクロプロセッサ
は、ウエイト発生命令のオペランドに設定された引数値
に応じたウエイトを、引数値に対する論理演算によって
発生させることを特徴とする。
【0013】
【作用】本発明に係るマイクロプロセッサは、ウエイト
発生命令のオペランドに含まれる引数値の回数だけウエ
イト発生命令を実行して、次の命令の実行までに、実質
的な処理が行なわれない空回りサイクルを発生させる。
【0014】また、本発明に係るマイクロプロセッサ
は、ウエイト発生命令をデコーダがデコードすると、ポ
インタによる命令のアドレス部分の受け取りを行なわせ
る第1の有効信号を無効にするとともに、ウエイト発生
命令のオペランドに含まれる引数値をタイマにセットし
て引数値をカウントし、タイムアップするまで、ポイン
タによる命令のアドレス部分のデコード結果の受け取り
を行なわせる第2の有効信号を無効にしてその間ウエイ
トを発生させ、タイムアップして第2の有効信号が有効
になるとポインタはウエイト発生命令のアドレス部分を
受け取り、対応するROM のアドレスから読み出した命令
が実行されるが実質的な処理は何も行なわれない。
【0015】さらに、本発明に係るマイクロプロセッサ
は、ウエイト発生命令をデコーダがデコードすると、ウ
エイト発生命令のオペランドに含まれる引数値をレジス
タにセットするとともに、ウエイト発生命令のアドレス
部分に対応するROM のアドレスから論理演算命令を読み
出し、レジスタに格納した引数値を用いて論理演算回路
が論理演算を実行することにより、論理演算の間、ウエ
イトが発生する。
【0016】
【実施例】以下、本発明をその実施例を示す図に基づい
て説明する。 実施例1 図1はマイクロプロセッサのプリフェッチ機構部分のブ
ロック図である。図中、1は外部より外部バスを介して
命令をフェッチする命令フェッチ部であって、命令フェ
ッチ部1はフェッチした命令を一旦命令キュー11に蓄
え、命令実行部2は命令キュー11に蓄えられた命令を蓄
えられた順に実行する。命令実行部2が命令を実行して
いる間、命令フェッチ部1は外部バスの空き時間を利用
して次のアドレスの命令をプリフェッチして命令キュー
11に蓄える。図2はプリフェッチの概念図であって、命
令の実行と次の命令のフェッチが並行して行なわれ、高
速化が図られている。
【0017】図3は図1のようなプリフェッチ機構を備
えた本発明に係るマイクロプロセッサのウエイト発生方
法の概念図である。本実施例のマイクロプロセッサに
は、そのニモニックが、実質的な処理を行なわせない
“COM ”であって、1つの引数“n”をオペランドとし
てもつウエイト発生命令“COM n ”が設けられている。
命令実行部2が“命令1”の次にこの命令“COM n ”を
実行すると、n回分の空回りサイクルを発生させて次の
“命令2”の実行を遅らせる。空回りサイクルの間は、
単に次の命令実行までウエイトをかけるだけで実質的な
処理は何も行なわれない。
【0018】実施例2 図4は本発明に係るマイクロプロセッサの他の実施例構
成を示すブロック図である。なお、本実施例のマイクロ
プロセッサには、命令コードのアドレス部分に、実質的
な処理を実行させないNOP (NO OPERATION)命令が格納さ
れているROM のアドレスに対応するアドレス値を含み、
オペランドに、発生させたいウエイト時間に応じてユー
ザによる設定が可能な引数を含むウエイト発生命令が設
けられており、ユーザは発生させたいウエイト時間に対
応する数値をオペランドとして設定できるようになって
いる。
【0019】図中、11は外部よりフェッチした命令コー
ドを蓄える命令キューであって、蓄えた命令コードを命
令デコーダ12に与えるとともに、命令コードのオペラン
ドをタイマ13に与える。
【0020】命令デコーダ12は命令キュー11より受け取
った命令コードをデコードするとともに、デコードした
命令コードがウエイト発生命令の場合は、後述するマイ
クロポインタ15による命令のアドレス部分の受け取りを
行なわせるデコード結果有効信号12a を無効にする一
方、ウエイト発生命令以外の命令コードの場合は有効に
する。
【0021】ダウンカウンタからなるタイマ13は、命令
キュー11から命令コードのオペランドを受け取ると、後
述するマイクロデコーダ17から、ウエイト発生命令の前
の命令のデコード終了信号17a を受けてカウント値を
“1”ずつ減ずるカウントダウンを開始するともに、カ
ウント結果が“0”になってタイムアップするまで、マ
イクロポインタ15による命令のアドレス部分の受け取り
を行なわせるための有効信号13a を無効にしておき、タ
イムアップした時点で有効にする。
【0022】ORゲート18はデコード結果有効信号12a 及
び有効信号13a を2入力とし、両方の有効信号12a ,13
a が無効の場合のみ、マイクロポインタ15による命令の
アドレス部分の受け取りを行なわせない。
【0023】命令デコーダ12がデコードした命令コード
は出力ラッチ14によりラッチされ、マイクロポインタ15
は、デコード結果有効信号12a 又は有効信号13a のいず
れか一方又は両方が有効の場合、デコード結果を出力ラ
ッチ14から受け取って、デコード結果に対応するマイク
ロROM 16のアドレスにアクセスする。
【0024】マイクロデコーダ17はマイクロROM 16から
の出力をデコードして命令実行部18に与えるとともに、
デコードが終了する都度、デコード終了信号17a をタイ
マ13に与え、命令実行部18はマイクロデコーダ17のデコ
ード結果に基づいて命令を実行する。
【0025】次に動作について説明する。外部からフェ
ッチして命令キュー11に蓄えられた命令コードは命令デ
コーダ12に送られると同時に命令コードのオペランドの
値がタイマ13にセットされる。命令デコーダ12は命令コ
ードをデコードしてデコード結果を出力ラッチ14へ出力
するとともに、デコードの結果、その命令がウエイト発
生命令でなければデコード結果有効信号12a を有効とす
る。タイマ13は、マイクロデコーダ17からデコード終了
信号が与えられると、命令キュー11から与えられたオペ
ランドの値のカウントダウンを開始し、カウント結果が
“0”になるまでマイクロポインタ15に対する有効信号
13a を無効にする。
【0026】ここで、デコード結果有効信号12a と有効
信号13a とはORゲートを介してマイクロポインタ15に与
えられているので、タイマ13がウエイト発生命令以外の
命令のオペランドの値をカウントダウンしてカウント結
果が“0”になるまで有効信号13a を無効としても、命
令がウエイト発生命令以外であって命令デコーダ12から
のデコード結果有効信号12a が有効である限り、マイク
ロポインタ15は出力ラッチ14からアドレス値を受け取っ
て対応するマイクロROM 16のアドレスをアクセスする。
マイクロROM 16からの出力結果はマイクロデコーダ17に
よってデコードされ、デコード結果は命令実行部18に送
られ命令が実行される。マイクロデコーダ17はデコード
が終了した時点でデコード終了信号17a をタイマ13に与
える。
【0027】命令デコーダ12によるデコードの結果、デ
コードした命令がウエイト発生命令の場合、命令デコー
ダ12はデコード有効信号12a を無効とするのでマイクロ
ポインタ15は出力ラッチ14からのアドレス値を受け取ら
ない。一方、ウエイト発生命令の1つ前の命令に対応す
るマイクロROM 16からの出力がマイクロデコーダ17でデ
コードされ、デコード終了信号17a がタイマ13に入力さ
れると、タイマ13はウエイト発生命令のオペランドの値
のカウントダウンを開始し、カウント結果が“0”にな
るまでマイクロポインタ15に対する有効信号13a を無効
にしておく。
【0028】デコード結果有効信号12a は無効のまま、
カウント結果が“0”になった時点でタイマ13が有効信
号13a を有効にすると、マイクロポインタ15は出力ラッ
チ14からアドレス値を受け取り、対応するマイクロROM
16のアドレスからNOP 命令が読み出され、命令実行部2
はウエイト発生命令によって実質的な処理を実行しな
い。
【0029】なお、本実施例ではタイマ13がダウンカウ
ンタからなる場合について説明したが、これに限らずア
ップカウンタからなるタイマであっても本実施例と同様
の効果が得られる。
【0030】実施例3 図5は本発明に係るマイクロプロセッサのさらに他の実
施例構成を示すブロック図である。なお、図4に示す実
施例2のマイクロプロセッサと同一、又は相当部分には
同一符号を付してその説明を省略する。本実施例のマイ
クロプロセッサには、命令コードのオペランドに、発生
させたいウエイト時間に応じてユーザによる設定が可能
な引数(パラメータ)を含むウエイト発生命令が設けら
れており、ユーザは発生させたいウエイト時間に対応す
る数値をオペランドに設定できるようになっている。
【0031】さらに、命令コードのアドレス部分に対応
するマイクロROM 16の所定アドレスには、汎用レジスタ
53にセットされたパラメータ値をALU 52によって“1”
だけ減算して減算結果をALU 52に戻し、ALU 52によって
減算結果と“0”との論理和をとり、演算結果がオール
“0”になるまで汎用レジスタ53の値を減算してALU52
で“0”との論理和をとる論理演算を繰り返し、オール
“0”になれば終了するという論理演算命令が格納され
ている。
【0032】なお、図中、51は命令デコーダ12によるウ
エイト命令のデコード結果のうち、パラメータ値がセッ
トされるパラメータレジスタであって、パラメータレジ
スタ51にセットされたパラメータ値は汎用レジスタ53に
セットされる。
【0033】次に動作について説明する。命令デコーダ
12は命令キュー11から受け取った命令コードをデコード
した結果、その命令がウエイト発生命令であった場合に
アドレス値をマイクロポインタ15へ、命令コードに含ま
れるパラメータをパラメータレジスタ51へ出力する。マ
イクロポインタ15に与えられたアドレス値によってマイ
クロROM 16の所定アドレスがアクセスされ、前述の演算
命令がマイクロデコーダ17でデコードされる。
【0034】一方、パラメータレジスタ51にセットされ
たパラメータ値は汎用レジスタ53にセットされ、マイク
ROM 16から読み出してデコードされた演算命令に従い、
ALU52は汎用レジスタ53にセットされたパラメータ値を
“1”だけ減算して減算結果を汎用レジスタ53に戻す。
次に、ALU 52 0汎用レジスタ53の値と“0”との論理和
をとる。ALU 52による演算結果がオール“0”になるま
で以上の演算を繰り返し、結果がオール“0”になると
演算命令が終了する。以上のようにして、オール“0”
になるまでの演算時間によって次の命令の実行を遅らせ
てウエイトを発生させる。
【0035】
【発明の効果】以上のように、本発明のマイクロプロセ
ッサは、命令コードのオペランドに設定した引数値に応
じたウエイトを発生させて次の実行の命令を遅らせるの
で、ウエイトの発生に外部バスのバスサイクルが関与せ
ず、ユーザが希望する時間だけのウエイトをシステムの
別にかかわりなく容易に発生させることができるという
優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明に係るマイクロプロセッサの第1実施例
のブロック図である。
【図2】プリフェッチの概念図である。
【図3】第1実施例によるウエイト発生方法の概念図で
ある。
【図4】本発明に係るマイクロプロセッサの第2実施例
のブロック図である。
【図5】本発明に係るマイクロプロセッサの第3実施例
のブロック図である。
【符号の説明】
1 命令フェッチ部 2 命令実行部 11 命令キュー 12 命令デコーダ 12a デコード結果有効信号 13 タイマ 13a 有効信号 15 マイクロポインタ 16 マイクロROM 17 マイクロデコーダ 17a デコード終了信号 18 ORゲート 51 パラメータレジスタ 52 ALU 53 汎用レジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 命令の実行中に次の命令をプリフェッチ
    する機構を備えたマイクロプロセッサにおいて、オペラ
    ンドに引数を含み、実質的な処理を行なわせないウエイ
    ト発生命令を、ウエイト発生命令の引数の値に応じた回
    数実行する手段を備え、ウエイト発生命令の前の命令か
    ら次の命令の実行までの間に、実質的な処理が行なわれ
    ない空回りサイクルを発生させることを特徴とするマイ
    クロプロセッサ。
  2. 【請求項2】 命令の実行中に次の命令をプリフェッチ
    して一旦キューに蓄え、キューに蓄えられた命令をデコ
    ーダでデコードし、命令のアドレス部分をポインタが受
    け取って対応するROM のアドレスを指示し、指示された
    ROM のアドレスにあらかじめ格納されているプログラム
    を読み出して実行するマイクロプロセッサにおいて、 オペランドに引数を含み、実質的な処理を行なわせない
    ウエイト発生命令を前記デコーダがデコードすると、ポ
    インタによる命令のアドレス部分の受け取りを行なわせ
    る第1の有効信号を無効にする手段と、 タイマと、 命令のオペランドをタイマにセットして引数の値に等し
    い数をカウントさせ、タイムアップするまで、ポインタ
    による命令のアドレス部分の受け取りを行なわせる第2
    の有効信号を無効にする手段と、 第1及び第2の有効信号が共に無効の場合のみポインタ
    による命令のアドレス部分の受け取りを行なわせないゲ
    ート回路とを備えたことを特徴とするマイクロプロセッ
    サ。
  3. 【請求項3】 命令の実行中に次の命令をプリフェッチ
    して一旦キューに蓄え、キューに蓄えられた命令をデコ
    ーダでデコードし、命令のアドレス部分に対応するROM
    のアドレスにあらかじめ格納されているプログラムを読
    み出して実行するマイクロプロセッサにおいて、 レジスタと、 算術論理回路と、 オペランドに引数を含むウエイト発生命令のアドレス部
    分に対応するROM のアドレスに、前記レジスタに格納さ
    れた値が0になるまで論理演算を繰り返すプログラムを
    あらかじめ格納しておく手段と、 ウエイト発生命令を前記デコーダがデコードすると、ウ
    エイト発生命令の引数の値を前記レジスタに格納する手
    段とを備え、 引数の値に応じて論理演算を繰り返し、論理演算が終了
    するまでウエイトを発生させることを特徴とするマイク
    ロプロセッサ。
JP5075677A 1993-04-01 1993-04-01 マイクロプロセッサ Pending JPH06290042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5075677A JPH06290042A (ja) 1993-04-01 1993-04-01 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5075677A JPH06290042A (ja) 1993-04-01 1993-04-01 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH06290042A true JPH06290042A (ja) 1994-10-18

Family

ID=13583076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5075677A Pending JPH06290042A (ja) 1993-04-01 1993-04-01 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH06290042A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373536B2 (en) 2004-08-04 2008-05-13 Kabushiki Kaisha Toshiba Fine granularity halt instruction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6026874U (ja) * 1983-08-02 1985-02-23 石塚株式会社 多層仕切収納具
JPS6447686U (ja) * 1987-09-10 1989-03-23
JPH0194286U (ja) * 1987-12-14 1989-06-21
JPH01132586U (ja) * 1988-02-19 1989-09-08
JPH0572791U (ja) * 1992-03-06 1993-10-05 美研企画印刷株式会社 フロッピーディスク用ケース

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6026874U (ja) * 1983-08-02 1985-02-23 石塚株式会社 多層仕切収納具
JPS6447686U (ja) * 1987-09-10 1989-03-23
JPH0194286U (ja) * 1987-12-14 1989-06-21
JPH01132586U (ja) * 1988-02-19 1989-09-08
JPH0572791U (ja) * 1992-03-06 1993-10-05 美研企画印刷株式会社 フロッピーディスク用ケース

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373536B2 (en) 2004-08-04 2008-05-13 Kabushiki Kaisha Toshiba Fine granularity halt instruction

Similar Documents

Publication Publication Date Title
US5901301A (en) Data processor and method of processing data
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
JP3881763B2 (ja) データ処理装置
JP2848606B2 (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
JP2507638B2 (ja) デ―タ処理装置
JPH0766324B2 (ja) データ処理装置
JPH0795271B2 (ja) 分岐命令実行装置
JPH0810428B2 (ja) データ処理装置
JPH081602B2 (ja) データ処理装置
JP3578883B2 (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
US5185870A (en) System to determine if modification of first macroinstruction to execute in fewer clock cycles
JP3599499B2 (ja) 中央処理装置
JPH06290042A (ja) マイクロプロセッサ
JP2008299729A (ja) プロセッサ
EP0573071A2 (en) A microprocessor
JPH024010B2 (ja)
JP2503223B2 (ja) 先行制御方式
JP3547585B2 (ja) 条件実行命令を有するマイクロプロセッサ
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JPH0212429A (ja) ディレイド・ジャンプ対応機能付情報処理装置
JP2835179B2 (ja) 並列処理計算機
JP3739556B2 (ja) 情報処理装置