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

マイクロプロセッサ

Info

Publication number
JPH1124923A
JPH1124923A JP9184152A JP18415297A JPH1124923A JP H1124923 A JPH1124923 A JP H1124923A JP 9184152 A JP9184152 A JP 9184152A JP 18415297 A JP18415297 A JP 18415297A JP H1124923 A JPH1124923 A JP H1124923A
Authority
JP
Japan
Prior art keywords
comparison
language
instruction
microprocessor
constant value
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
JP9184152A
Other languages
English (en)
Inventor
Yoshio Kinoshita
美穂 木下
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.)
Renesas Design Corp
Mitsubishi Electric Corp
Original Assignee
Renesas Design Corp
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 Renesas Design Corp, Mitsubishi Electric Corp filed Critical Renesas Design Corp
Priority to JP9184152A priority Critical patent/JPH1124923A/ja
Publication of JPH1124923A publication Critical patent/JPH1124923A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 高級言語で記述したプログラムの1つの構文
である多分岐判断機構は、機械語ではプログラム容量が
増大し、実行速度が低下する。 【解決手段】 C言語で記述された1つのcase文は
アセンブリ言語に変換されても比較条件分岐命令1つで
実行し、機械語では、1つのオペコード(各命令を識別
するコード)と二つのオペランド(定数値と分岐先のア
ドレス)の計三つのコードに変換される。従って、従来
技術に比べて、1つのcase文につき1つのコードが
削減され、プログラム容量の増大とそれに伴う実行速度
の低下を緩和できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、メモリ容量の削
減および実行速度の向上を図るマイクロプロセッサに関
するものである。
【0002】
【従来の技術】図1はC言語の構文の一例を示すプログ
ラムチャート、図6は従来のマイクロプロセッサにより
図1に示したC言語の構文をアセンブリ言語に変換した
場合を示すプログラムチャート、図7は図6に示したア
センブリ言語の処理を示すフローチャートである。
【0003】次に動作について説明する。高級言語を用
いてワンチップマイコンのプログラム開発を行う際のデ
メリットで大きいものは、プログラム容量の増大とそれ
に伴う実行速度の低下である。高級言語で記述したプロ
グラムは、コンパイラを用いてアセンブリ言語のプログ
ラムに変換され、その後機械語に変換されてからマイク
ロプロセッサに受け渡され実行される。コンパイラと
は、高級言語の各構文を、機械的に各マイクロプロセッ
サ固有であるアセンブリ言語の命令に置き換えるプログ
ラムであり、従って、初めからアセンブリ言語で記述さ
れたプログラムよりも高級言語で記述されたプログラム
の方が命令数は多くなり、プログラム容量は増大する。
【0004】高級言語で記述したプログラムで、プログ
ラム容量の増大しやすい構文の1つに多分岐判断機構が
ある。それをC言語で記述した場合[switch〜c
ase〜]文で表される。この構文は、ある式が複数の
定数値の1つと一致しているかどうかをテストし、それ
に応じて分岐するものである。図1に示すように記述し
て用いられる。 (ステップST1−1):比較対象となる変数を示す。 (ステップST1−2):変数と定数値1を比較し、一
致する場合は文1を実行、一致しない場合は文1を実行
せずに次のcase文で示される比較を行う。 (ステップST1−3,1−4):変数と定数値2、ま
たは変数と定数値3を比較し、どちらかが一致する場合
は文2を実行、2数とも一致しない場合は文2を実行し
ない。
【0005】従来のマイクロプロセッサにおいては、定
数値と比較した結果により処理を分ける場合に、比較命
令と条件分岐命令の2つの命令が必要であった。従っ
て、C言語の構文の1つである[switch〜cas
e〜]文をアセンブリ言語に変換する際には、定数値を
示すcase文の個数だけの比較命令および条件分岐命
令を要した。図1で示したC言語の構文を、従来の汎用
的なマイクロプロセッサのもつアセンブリ言語に変換し
て得られたプログラムを図6に示す。また、図6に示し
たアセンブリ言語の処理を図7に示す。
【0006】(ステップST4−2):CMP(CoM
Pareの略)命令は、比較命令であり、オペランド1
(この場合は“変数”)とオペランド2(この場合は
“定数値1”)の値を比較し、2値が等しければマイク
ロプロセッサのもつフラグがセットされる。 (ステップST4−3):JEQ(Jump EQua
l zeroの略)命令は、条件分岐命令であり、フラ
グがセットされている場合は、“label1”に分岐
する。 (ステップST4−4):CMP命令は、オペランド1
(この場合は“変数”)とオペランド2(この場合は
“定数値2”)の値を比較し、2値が等しければマイク
ロプロセッサのもつフラグがセットされる。 (ステップST4−5):JEQ命令は、フラグがセッ
トされている場合は、“label2”に分岐する。 (ステップST4−6):CMP命令は、オペランド1
(この場合は“変数”)オペランド2(この場合は“定
数値3”)の値を比較し、2値が等しければマイクロプ
ロセッサのもつフラグがセットされる。 (ステップST4−7):JEQ命令は、フラグがセッ
トされている場合は、“label2”に分岐する。 (ステップST4−8):“label1”は、“変
数”と“定数値1”の値が等しければ実行するプログラ
ム(“文1”)を記述している。 (ステップST4−9):“label2”は、“変
数”と“定数値2”または“定数値3”の値が等しけれ
ば実行するプログラム(“文2”)を記述している。
【0007】
【発明が解決しようとする課題】従来のマイクロプロセ
ッサは以上のように構成されているので、図6に示した
ような汎用的なプログラムでは、例えばC言語で記述し
た1つのcase文をアセンブリ言語に変換した場合、
比較命令(CMP)1つと条件分岐命令(JEQ)1つ
の計2つの命令となる。その2つの命令は機械語では、
2つのオペコード(命令を認識するコード)と3つのオ
ペランド(上記の例では、変数が格納されているレジス
タまたはメモリと定数値と分岐先のアドレス)をもつ。
従って、命令2つと、変数が格納されているレジスタま
たはメモリ、比較する定数値、分岐先を示すコードが比
較回数分必要であるため、プログラム容量が増大し、実
行速度が低下するなどの課題があった。
【0008】この発明は上記のような課題を解決するた
めになされたもので、新たなアセンブリ言語命令を加え
ることで、少ない機械語に変換し、プログラム容量の増
大を抑え、メモリ容量を削減すると共に、実行速度の低
下を抑えることができるマイクロプロセッサを得ること
を目的とする。
【0009】
【課題を解決するための手段】請求項1記載の発明に係
るマイクロプロセッサは、比較条件分岐命令に基づいて
1つのレジスタまたはメモリに格納されている値と1つ
の定数値との比較を行い、それら値および定数値が一致
した場合にその比較条件分岐命令に示されたアドレスに
分岐する制御手段を備えたものである。
【0010】請求項2記載の発明に係るマイクロプロセ
ッサは、制御手段に、比較条件分岐命令を解読するデコ
ード回路と、そのデコード回路からの解読結果を受け取
り、マイクロプロセッサ内での比較条件分岐命令の実行
の処理手順を示したマイクロプログラムまたはランダム
ロジックが構成されたマイクロROMとを備えたもので
ある。
【0011】請求項3記載の発明に係るマイクロプロセ
ッサは、複数比較命令に基づいて1つのレジスタまたは
メモリに格納されている値と複数の定数値との比較を行
い、それらの値と複数の定数値のうちのどれかが一致し
た場合に、その結果をフラグに反映させる制御手段を備
えたものである。
【0012】請求項4記載の発明に係るマイクロプロセ
ッサは、制御手段に、複数比較命令を解読するデコード
回路と、そのデコード回路からの解読結果を受け取り、
マイクロプロセッサ内での複数比較命令の実行の処理手
順を示したマイクロプログラムまたはランダムロジック
が構成されたマイクロROMとを備えたものである。
【0013】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1による一
例としてC言語の構文の一例を示すプログラムチャー
ト、図2はこの発明の実施の形態1によるマイクロプロ
セッサにより図1に示したC言語の構文をアセンブリ言
語に変換した場合を示すプログラムチャート、図3は図
2に示したアセンブリ言語の処理を示すフローチャート
である。この発明の実施の形態1によるマイクロプロセ
ッサは、比較,条件分岐の命令を1つの命令で実行する
比較条件分岐命令を備え、その比較条件分岐命令は、オ
ペランド1で指定したレジスタまたはメモリに格納され
ている値とオペランド2で指定された定数値とを比較し
て、この2値が等しければオペランド3で指定されたア
ドレスへ分岐するものである。また、この発明の実施の
形態1によるマイクロプロセッサは、比較条件分岐命令
を解読するデコード回路と、その解読結果を受け取り、
マイクロプロセッサ内での比較条件分岐命令の実行の処
理手順を示したマイクロプログラムまたはランダムロジ
ックが構成されたマイクロROMとを備えた制御手段か
ら成るものである。
【0014】次に動作について説明する。高級言語で記
述したプログラムで、プログラム容量の増大しやすい構
文の1つに多分岐判断機構がある。それをC言語で記述
した場合、[switch〜case〜]文で表され
る。この構文は、ある式が複数の定数値の1つと一致し
ているかどうかをテストし、それに応じて分岐するもの
である。図1に示すように記述して用いられる。 (ステップST1−1):比較対象となる変数を示す。 (ステップST1−2):変数と定数値1を比較し、一
致する場合は実行、一致しない場合は文1を実行せずに
次のcase文で示される比較を行う。 (ステップST1−3,1−4):変数と定数値2、ま
たは変数と定数値3を比較し、どちらかが一致する場合
は文2を実行、2数とも一致しない場合は文2を実行し
ない。
【0015】従来のマイクロプロセッサにおいては、定
数値と比較した結果により処理を分ける場合に、比較命
令と条件分岐命令の2つの命令が必要であった。従っ
て、C言語の構文の1つである[switch〜cas
e〜]文をアセンブリ言語に変換する際には、定数値を
示すcase文の個数だけの比較命令および条件分岐命
令を要した。図1で示したC言語の構文を、比較条件分
岐命令(JCMP)を使用し、アセンブリ言語に変換し
て得られたプログラムを図2に示す。また、図2に示し
たアセンブリ言語の処理を図3に示す。
【0016】(ステップST2−2):JCMP命令
は、比較条件分岐命令であり、オペランド1(この場合
は“変数”)の値とオペランド2(この場合は“定数値
1”)の値を比較し、2値が等しければオペランド3
(この場合は“label1”)が示すアドレスに分岐
する。 (ステップST2−3):JCMP命令は、比較条件分
岐命令であり、オペランド1(この場合は“変数”)の
値とオペランド2(この場合は“定数値2”)の値が等
しければ、オペランド3(この場合は“label
2”)が示すアドレスに分岐する。 (ステップST2−4):JCMP命令は、比較条件分
岐命令であり、オペランド1(この場合は“変数”)の
値とオペランド2(この場合は“定数値3”)の値が等
しければ、オペランド3(この場合は“label
2”)が示すアドレスに分岐する。 (ステップST2−5):“label1”は、“変
数”と“定数値1”の値が等しければ実行するプログラ
ム(“文1”)を記述している。 (ステップST2−6):“label2”は、“変
数”と“定数値2”または“定数値3”の値が等しけれ
ば実行するプログラム(“文2”)を記述している。
【0017】以上のように、この実施の形態1によれ
ば、C言語で記述された1つのcase文はアセンブリ
言語に変換されても比較条件分岐命令1つで実行し、機
械語では、1つのオペコード(各命令を識別するコー
ド)と3つのオペランド変数が格納されているレジスタ
またはメモリと(定数値と分岐先のアドレス)の計4つ
のコードに変換される。従って、従来技術に比べて、1
つのcase文につき1つのオペコードが削減され、プ
ログラム容量の増大とそれに伴う実行速度の低下を緩和
できる。
【0018】実施の形態2.図4はこの発明の実施の形
態2によるマイクロプロセッサにより一例として図1に
示したC言語の構文をアセンブリ言語に変換した場合を
示すプログラムチャート、図5は図4に示したアセンブ
リ言語の処理を示すフローチャートである。この発明の
実施の形態2によるマイクロプロセッサは、レジスタま
たはメモリに格納されている1つの値に対して複数の定
数値を同時に比較する複数比較命令を備え、その複数比
較命令は、オペランド1で指定されたレジスタまたはメ
モリに格納されている値と、以降に続く複数のオペラン
ドで指定された定数のうちのどれかが等しければ、フラ
グをセットする命令である。また、この発明の実施の形
態2によるマイクロプロセッサは、複数比較命令を解読
するデコード回路と、その解読結果を受け取り、マイク
ロプロセッサ内での複数比較命令の実行の処理手順を示
したマイクロプログラムまたはランダムロジックが構成
されたマイクロROMとを備えた制御手段から成るもの
である。
【0019】次に動作について説明する。図1で示した
C言語の構文を、複数比較命令としてWCMPを使用
し、アセンブリ言語に変換して得られたプログラムを図
4に示す。また、図4に示したアセンブリ言語の処理を
図5に示す。
【0020】(ステップST3−2):CMP命令は、
比較命令であり、オペランド1(この場合は“変数”)
の値とオペランド2(この場合は“定数値1”)の値を
比較し、2値が等しければフラグがセットされる。 (ステップST3−3):JEQ(Jump EQua
l zeroの略)命令は、条件分岐命令であり、フラ
グがセットされている場合は、“label1”に分岐
する。 (ステップST3−4):WCMP命令は、複数比較命
令であり、オペランド1(“変数”)の値とオペランド
2(“定数値2”)が等しいか、またはオペランド1
(“変数”)の値とオペランド3(“定数値3”)が等
しければフラグがセットされる。 (ステップST3−5):JEQ命令は、条件分岐命令
であり、フラグがセットされている場合は、“labe
l2”に分岐する。 (ステップST3−6):“label1”は、“変
数”と“定数値1”の値が等しければ実行するプログラ
ム(“文1”)を記述している。 (ステップST3−7):“label2”は、“変
数”と“定数値2”または“定数値3”の値が等しけれ
ば実行するプログラム(“文2”)を記述している。
【0021】以上のように、この実施の形態2によれ
ば、C言語で記述された複数のcase文で示される定
数値に対して処理が同一であった場合に、複数比較命令
1つと条件分岐命令1つの計2命令で実行できる。従っ
て従来技術では、2つの命令(比較命令、条件分岐命
令)と変数を格納しているレジスタまたはメモリ、比較
する定数値、分岐先を示すコードが全て比較回数分必要
であったが、この実施の形態2では、比較回数にかかわ
らず2つの命令(複数比較命令,条件分岐命令)と変数
が格納されているレジスタまたはメモリ、比較個数分の
定数値、分岐先を示すコードのみであり、プログラム容
量を削減できる。
【0022】
【発明の効果】以上のように、請求項1記載の発明によ
れば、比較条件分岐命令に基づいて1つのレジスタまた
はメモリに格納されている値と1つの定数値との比較を
行い、それら値および定数値が一致した場合にその比較
条件分岐命令に示されたアドレスに分岐する制御手段を
備えるように構成したので、プログラム容量の増大とそ
れに伴う実行速度の低下を緩和できる効果がある。
【0023】請求項2記載の発明によれば、制御手段
に、比較条件分岐命令を解読するデコード回路と、その
デコード回路からの解読結果を受け取り、マイクロプロ
セッサ内での比較条件分岐命令の実行の処理手順を示し
たマイクロプログラムまたはランダムロジックが構成さ
れたマイクロROMとを備えるように構成したので、プ
ログラム容量の増大とそれに伴う実行速度の低下を緩和
できる効果がある。
【0024】請求項3記載の発明によれば、複数比較命
令に基づいて1つのレジスタまたはメモリに格納されて
いる値と複数の定数値との比較を行い、それら値と複数
の定数値のうちのどれかが一致した場合に、その結果を
フラグに反映させる制御手段を備えるように構成したの
で、プログラム容量の増大とそれに伴う実行速度の低下
を緩和できる効果がある。
【0025】請求項4記載の発明によれば、制御手段
に、複数比較命令を解読するデコード回路と、そのデコ
ード回路からの解読結果を受け取り、マイクロプロセッ
サ内での複数比較命令の実行の処理手順を示したマイク
ロプログラムまたはランダムロジックが構成されたマイ
クロROMとを備えるように構成したので、プログラム
容量の増大とそれに伴う実行速度の低下を緩和できる効
果がある。
【図面の簡単な説明】
【図1】 多分岐判断機構を、一例としてC言語の構文
で記述したプログラムチャートである。
【図2】 この発明の実施の形態1によるマイクロプロ
セッサにより図1に示したC言語の構文をアセンブリ言
語に変換した場合を示すプログラムチャートである。
【図3】 図2に示したアセンブリ言語の処理を示すフ
ローチャートである。
【図4】 この発明の実施の形態2によるマイクロプロ
セッサにより図1に示したC言語の構文をアセンブリ言
語に変換した場合を示すプログラムチャートである。
【図5】 図4に示したアセンブリ言語の処理を示すフ
ローチャートである。
【図6】 従来のマイクロプロセッサにより図1に示し
たC言語の構文をアセンブリ言語に変換した場合を示す
プログラムチャートである。
【図7】 図6に示したアセンブリ言語の処理を示すフ
ローチャートである。
【符号の説明】
ST2−2〜2−4 比較条件分岐命令、ST3−4
複数比較命令。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 1つの命令で比較および条件分岐を行う
    比較条件分岐命令を受け取り、その比較条件分岐命令に
    基づいて1つのレジスタまたはメモリに格納されている
    値と1つの定数値との比較を行い、それら値および定数
    値が一致した場合にその比較条件分岐命令に示されたア
    ドレスに分岐する制御手段を備えたマイクロプロセッ
    サ。
  2. 【請求項2】 制御手段は、比較条件分岐命令を受け取
    り、その比較条件分岐命令を解読するデコード回路と、
    そのデコード回路からの解読結果を受け取り、マイクロ
    プロセッサ内での前記比較条件分岐命令の実行の処理手
    順を示したマイクロプログラムまたはランダムロジック
    が構成されたマイクロROMとを備えたことを特徴とす
    る請求項1記載のマイクロプロセッサ。
  3. 【請求項3】 1つの命令で複数の値と比較する複数比
    較命令を受け取り、その複数比較命令に基づいて1つの
    レジスタまたはメモリに格納されている値と複数の定数
    値との比較を行い、それら値と複数の定数値のうちのど
    れかが一致した場合に、その結果をフラグに反映させる
    制御手段を備えたマイクロプロセッサ。
  4. 【請求項4】 制御手段は、複数比較命令を受け取り、
    その複数比較命令を解読するデコード回路と、そのデコ
    ード回路からの解読結果を受け取り、マイクロプロセッ
    サ内での前記複数比較命令の実行の処理手順を示したマ
    イクロプログラムまたはランダムロジックが構成された
    マイクロROMとを備えたことを特徴とする請求項3記
    載のマイクロプロセッサ。
JP9184152A 1997-07-09 1997-07-09 マイクロプロセッサ Pending JPH1124923A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9184152A JPH1124923A (ja) 1997-07-09 1997-07-09 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9184152A JPH1124923A (ja) 1997-07-09 1997-07-09 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH1124923A true JPH1124923A (ja) 1999-01-29

Family

ID=16148284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9184152A Pending JPH1124923A (ja) 1997-07-09 1997-07-09 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH1124923A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014036899A (ja) * 2013-11-27 2014-02-27 Daito Giken:Kk 遊技台
JP2014195639A (ja) * 2014-02-17 2014-10-16 株式会社大都技研 遊技台
JP2015007993A (ja) * 2006-09-21 2015-01-15 インテル コーポレイション 論理比較動作を実行するための装置
JP2015128695A (ja) * 2015-04-14 2015-07-16 株式会社大都技研 遊技台
JP2016147083A (ja) * 2016-03-25 2016-08-18 株式会社大都技研 遊技台

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015007993A (ja) * 2006-09-21 2015-01-15 インテル コーポレイション 論理比較動作を実行するための装置
JP2014036899A (ja) * 2013-11-27 2014-02-27 Daito Giken:Kk 遊技台
JP2014195639A (ja) * 2014-02-17 2014-10-16 株式会社大都技研 遊技台
JP2015128695A (ja) * 2015-04-14 2015-07-16 株式会社大都技研 遊技台
JP2016147083A (ja) * 2016-03-25 2016-08-18 株式会社大都技研 遊技台

Similar Documents

Publication Publication Date Title
US6889318B1 (en) Instruction fusion for digital signal processor
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
US20050138327A1 (en) VLIW digital signal processor for achieving improved binary translation
US6631459B1 (en) Extended instruction word folding apparatus
JP3781519B2 (ja) プロセッサの命令制御機構
EP0093430A2 (en) Pipeline data processing system
US20080270759A1 (en) Computer Having Dynamically-Changeable Instruction Set in Real Time
JPH1124923A (ja) マイクロプロセッサ
KR100308211B1 (ko) 압축 명령을 갖는 마이크로 컴퓨터 시스템
JPS623336A (ja) 条件付きブランチ方式
US6898698B1 (en) Device predicting a branch of an instruction equivalent to a subroutine return and a method thereof
JP2006053830A (ja) 分岐予測装置および分岐予測方法
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
US20040210748A1 (en) Processor and method capable of executing conditional instructions
JP2002073346A (ja) コンパイラ,記録媒体,プログラム変換装置,プログラム変換方法及びマイクロコンピュータ
JP2007004475A (ja) プロセッサ及びプログラム実行方法
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP2001184209A (ja) 命令コード復号装置及びその復号方法
JPS6116334A (ja) デ−タ処理装置
KR100471137B1 (ko) 단축된 레지스터 클리어 인스트럭션 실행 사이클을 갖는 데이터처리 장치
KR100244210B1 (ko) 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법
JPH0619705A (ja) パイプライン制御方式
JPH05334081A (ja) パイプライン処理方式
JPH05265755A (ja) 並列命令実行方式
JPH11175337A (ja) データ処理装置、機械命令生成装置及び記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040316

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040713