JPH01276234A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH01276234A JPH01276234A JP63104522A JP10452288A JPH01276234A JP H01276234 A JPH01276234 A JP H01276234A JP 63104522 A JP63104522 A JP 63104522A JP 10452288 A JP10452288 A JP 10452288A JP H01276234 A JPH01276234 A JP H01276234A
- Authority
- JP
- Japan
- Prior art keywords
- data
- branch
- program
- instruction
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
この発明は、マイクロプログラムを内蔵した制御装置を
備えたマイクロコンピュータに関するものである。
備えたマイクロコンピュータに関するものである。
従来の技術
マイクロコンピュータにおいて、制御の流れ(ユーザー
プログラムの流れ〉を変更するには、無条件分岐命令2
条件分岐命令(これは主に、あるフラグの値がOか1の
条件により、分岐するか、ユーザープログラムの次の命
令を実行するかを制御する命令)、サブルーチンのコー
ル命令等を用いていた。特に制御用途でよく使用される
場合として、データメモリーの値、または入力端子(入
力信号)値によりユーザープログラムの流れを制御する
ことが多い。このような場合、ユーザープログラムの流
れを制御するのに前記の条件分岐命令を用いる。通常、
条件分岐の種類としては、プログラムステータスワード
の中に納められているフラグ値によるものが多い。ここ
でのフラグには、キャリーフラグ、ゼロフラグ、ネガテ
ィブフラグ等がある。キャリーフラグとは、マイクロコ
ンピュータにある算術論理演算部(ALU)の演算によ
りキャリーが発生したときにセットされ、発生しないと
きにはクリアされるフラグである。ゼロフラグとは、A
LUの演算結果がゼロであればセットされ、ゼロでなけ
ればクリアされるフラグである。ネガティブフラグはA
LUの演算結果が負の数であればセットされ、正の数で
あればクリアされる。これらの条件分岐命令と、一般的
なマクロ命令を用いて、データメモリの1バイトを8方
向へのプログラム分岐を示すデータの集まりとしDAT
Aとして表わし、8方向へ分岐するユーザープログラム
を作成する。つまり、1バイトの各1ビットが分岐条件
を示すとする。まず、DATAをレジスタAにロードし
、ビットポジション(bp)0について調べるため、b
p7〜bplのデータに対しマスクをかける。例えば、
DATAと値(00000001)とのAND命令等を
行いDATAbp○の値により、ゼロフラグが変化する
状態に設定する。ここでDATAのbpoがOであれば
、AND演算の結果ゼロフラグがセットされ、1であれ
ば、ゼロフラグはクリアされている。このAND命令の
後にゼロフラグに関する条件分岐命令を実行することで
DATAのbpOの値によりユーザープログラムの流れ
をかえることができる。DATAのbplの値によりユ
ーザープログラムの流れをかえるときは、DATAと値
(00000010)とのAND命令を行い前記と同様
の処理をする。8方向分岐を実現するためには、このA
ND命令と1条件分岐命令を最低8回づつ実行する必要
がある。このことはユーザープログラムの記述量を増し
、かつプログラムの実行速度の低下をまねく。
プログラムの流れ〉を変更するには、無条件分岐命令2
条件分岐命令(これは主に、あるフラグの値がOか1の
条件により、分岐するか、ユーザープログラムの次の命
令を実行するかを制御する命令)、サブルーチンのコー
ル命令等を用いていた。特に制御用途でよく使用される
場合として、データメモリーの値、または入力端子(入
力信号)値によりユーザープログラムの流れを制御する
ことが多い。このような場合、ユーザープログラムの流
れを制御するのに前記の条件分岐命令を用いる。通常、
条件分岐の種類としては、プログラムステータスワード
の中に納められているフラグ値によるものが多い。ここ
でのフラグには、キャリーフラグ、ゼロフラグ、ネガテ
ィブフラグ等がある。キャリーフラグとは、マイクロコ
ンピュータにある算術論理演算部(ALU)の演算によ
りキャリーが発生したときにセットされ、発生しないと
きにはクリアされるフラグである。ゼロフラグとは、A
LUの演算結果がゼロであればセットされ、ゼロでなけ
ればクリアされるフラグである。ネガティブフラグはA
LUの演算結果が負の数であればセットされ、正の数で
あればクリアされる。これらの条件分岐命令と、一般的
なマクロ命令を用いて、データメモリの1バイトを8方
向へのプログラム分岐を示すデータの集まりとしDAT
Aとして表わし、8方向へ分岐するユーザープログラム
を作成する。つまり、1バイトの各1ビットが分岐条件
を示すとする。まず、DATAをレジスタAにロードし
、ビットポジション(bp)0について調べるため、b
p7〜bplのデータに対しマスクをかける。例えば、
DATAと値(00000001)とのAND命令等を
行いDATAbp○の値により、ゼロフラグが変化する
状態に設定する。ここでDATAのbpoがOであれば
、AND演算の結果ゼロフラグがセットされ、1であれ
ば、ゼロフラグはクリアされている。このAND命令の
後にゼロフラグに関する条件分岐命令を実行することで
DATAのbpOの値によりユーザープログラムの流れ
をかえることができる。DATAのbplの値によりユ
ーザープログラムの流れをかえるときは、DATAと値
(00000010)とのAND命令を行い前記と同様
の処理をする。8方向分岐を実現するためには、このA
ND命令と1条件分岐命令を最低8回づつ実行する必要
がある。このことはユーザープログラムの記述量を増し
、かつプログラムの実行速度の低下をまねく。
また、あるマイクロコンピュータには任意のバイトの任
意のビット位置の値によりユーザープログラムの流れを
かえるマクロ命令をもつものもある。この命令をビット
テストアンドブランチと呼ぶこの場合8方向の分岐を考
えると、DATAのbpOに対しビットテストアンドブ
ランチを行うと、例えばDATAのbpoが1であれば
、ユーザープログラムの流れをかえ、0であれば以降に
続く命令を実行し、それ以降の命令に対しては、DAT
Aのbplに対しビットテストアンドブランチを行ない
、bp2.bp3・・・・・・bp7と命令を記述すれ
ば、8方向の分岐に対し、8回ビットテストアンドブラ
ンチ命令を記述することで実現できる。しかし、この場
合にも同様の命令を8回も記述する必要があり、前述と
同様に、ユーザープログラムの記述量を増し、かつプロ
グラムの実行速度の低下をまねくことになる。
意のビット位置の値によりユーザープログラムの流れを
かえるマクロ命令をもつものもある。この命令をビット
テストアンドブランチと呼ぶこの場合8方向の分岐を考
えると、DATAのbpOに対しビットテストアンドブ
ランチを行うと、例えばDATAのbpoが1であれば
、ユーザープログラムの流れをかえ、0であれば以降に
続く命令を実行し、それ以降の命令に対しては、DAT
Aのbplに対しビットテストアンドブランチを行ない
、bp2.bp3・・・・・・bp7と命令を記述すれ
ば、8方向の分岐に対し、8回ビットテストアンドブラ
ンチ命令を記述することで実現できる。しかし、この場
合にも同様の命令を8回も記述する必要があり、前述と
同様に、ユーザープログラムの記述量を増し、かつプロ
グラムの実行速度の低下をまねくことになる。
発明が解決しようとする課題
このように、1バイトの各1ビットがユーザープログラ
ムの分岐方向を示すデータ1バイトに対し、8方向の分
岐プログラムを作成すると、通常で16命令、少なくと
も8命令の記述と、その命令の実行が必要となり、ユー
ザープログラムの記述量の増加と、プログラムの実行速
度の低下をまねくという問題があった。
ムの分岐方向を示すデータ1バイトに対し、8方向の分
岐プログラムを作成すると、通常で16命令、少なくと
も8命令の記述と、その命令の実行が必要となり、ユー
ザープログラムの記述量の増加と、プログラムの実行速
度の低下をまねくという問題があった。
本発明は、マイクロコンピュータのマクロ命令に、参照
するデータにより、1マクロ命令でユーザープログラム
の流れを多方向に分岐させる命令−を持たせることによ
り、従来の問題点を解決するものである。
するデータにより、1マクロ命令でユーザープログラム
の流れを多方向に分岐させる命令−を持たせることによ
り、従来の問題点を解決するものである。
課題を解決するための手段
本発明は上述の問題点を解決するために、マイクロコン
ピュータのマクロ命令に、参照するデータ値により、ユ
ーザープログラムの流れを多方向に分岐させる命令を持
たせたものである。
ピュータのマクロ命令に、参照するデータ値により、ユ
ーザープログラムの流れを多方向に分岐させる命令を持
たせたものである。
作用
このようにすれば、ハードウェアの負担は比較的軽くす
み、ユーザープログラムのメモリーサイズを縮少でき、
またプログラムの実行速度をあげ、参照データ値による
多方向分岐を1マクロ命令で実行することができる。
み、ユーザープログラムのメモリーサイズを縮少でき、
またプログラムの実行速度をあげ、参照データ値による
多方向分岐を1マクロ命令で実行することができる。
実施例
本発明の一実施例を第1図に示すブロック図を用いて詳
しく述べる。プログラムメモリー1は、マイクロコンピ
ュータの制御を行うプログラムが格納されている。アド
レスデコーダ2は、アドレス生成部5より出力されるア
ドレスデータが、アドレスバス7を通して入力され、こ
のアドレスデータにより、プログラムメモリーの1ワ一
ド分を選択する。レジスタ3は、プログラムメモリー1
より読み出されたデータが一時的に格納される。
しく述べる。プログラムメモリー1は、マイクロコンピ
ュータの制御を行うプログラムが格納されている。アド
レスデコーダ2は、アドレス生成部5より出力されるア
ドレスデータが、アドレスバス7を通して入力され、こ
のアドレスデータにより、プログラムメモリーの1ワ一
ド分を選択する。レジスタ3は、プログラムメモリー1
より読み出されたデータが一時的に格納される。
マイクロROM4は、レジスタ3から出力される命令指
定部及び、オペランド指定部が入力され、マイクロコン
ピュータに対し種々の制御信号11を発生するマイクロ
プログラムが格納されている制御回路である。ALU及
びカウンター6は、通常の算術論理演算を行うと同時に
、ワードデータから指定された1ビットについて、その
値がOか1かをテストする機能を備え、カウンターはマ
イクロROM4のマイクロプログラムにより制御され、
その制御によりこのカウンター値がデータバス8を介し
てアドレス生成部5に入力される機能を有している。
定部及び、オペランド指定部が入力され、マイクロコン
ピュータに対し種々の制御信号11を発生するマイクロ
プログラムが格納されている制御回路である。ALU及
びカウンター6は、通常の算術論理演算を行うと同時に
、ワードデータから指定された1ビットについて、その
値がOか1かをテストする機能を備え、カウンターはマ
イクロROM4のマイクロプログラムにより制御され、
その制御によりこのカウンター値がデータバス8を介し
てアドレス生成部5に入力される機能を有している。
第2図に示すようなユーザープログラム配置例によりオ
ペランド指定部で示されるデータに対し、その各ビット
毎により8方向にユーザープログラムの流れを分岐させ
る場合について説明する。ここでは説明のためにビット
データが■のききに分岐条件が成立すると仮定する。プ
ログラムメモリー1のプログラム格納番地Nの命令指定
部が、プログラムメモ、リ−1より読み出され、レジス
タ3に入力される。次にこのレジスタ3の値がマイクロ
ROM4に入力され、命令の種類が解読され、その時同
時にN+1番地のオペランド指定部がレジスタ3に入力
される。次にマイクロROM4より出力される制御信号
線11の信号と、レジスタ3の値とがアドレス生成部に
入力され、オペランドアドレスを生成し、データメモリ
ー(図示せず)からデータバス8を介して、ALU及び
カウンター6に入力される。このとき、マイクロROM
4より出力される制御信号線11の信号によりALU及
びカウンター6のカウンター値はゼロにクリアされる。
ペランド指定部で示されるデータに対し、その各ビット
毎により8方向にユーザープログラムの流れを分岐させ
る場合について説明する。ここでは説明のためにビット
データが■のききに分岐条件が成立すると仮定する。プ
ログラムメモリー1のプログラム格納番地Nの命令指定
部が、プログラムメモ、リ−1より読み出され、レジス
タ3に入力される。次にこのレジスタ3の値がマイクロ
ROM4に入力され、命令の種類が解読され、その時同
時にN+1番地のオペランド指定部がレジスタ3に入力
される。次にマイクロROM4より出力される制御信号
線11の信号と、レジスタ3の値とがアドレス生成部に
入力され、オペランドアドレスを生成し、データメモリ
ー(図示せず)からデータバス8を介して、ALU及び
カウンター6に入力される。このとき、マイクロROM
4より出力される制御信号線11の信号によりALU及
びカウンター6のカウンター値はゼロにクリアされる。
このときアドレス生成部5の中にあるプログラムアドレ
スを示すカウンターはN+1になっている。
スを示すカウンターはN+1になっている。
次に、ALU及びカウンター6に入力されたオペランド
のビットポジションOから順番にデータが1かどうかテ
ストされる。このテストを1回するたびにカウンターが
1つインクリメントされる。この制御はマイクロROM
4により制御される。ここでビットポジション3のデー
タで初めて1が見い出されたとすると、ALU及びカウ
ンター6からマイクロROM4に対し、分岐条件が成立
したことを知らせる信号が制御信号線10に出力され、
マイクロROM4の制御を、ビットデータをテストする
制御ルーチンから、分岐処理を制御するルーチンへと移
す。このとき、カウンター値はビットポジション3で1
が見い出されたため、4がカウントされており、このカ
ウント値をマイクロROM4の制御のもとで、データバ
ス8を介してアドレス生成部5に入力し、プログラムア
ドレスを示すカウンター値N+1にこのカウンター値4
を加えN+5というプログラムアドレスを生成し、N+
5番地に格納されているビットポジション(bp)3に
対するPC(プログラムカウンター)相対分岐値をプロ
グラムメモリー1より読み出し、レジスタ3及びデータ
バス8を介して、アドレス生成部5に入力し、分岐すべ
きユーザープログラムの先頭番堆く新PC) 新PC=旧PC(N+1)+ (bp3に対するPC相対分岐値) の計算を、アドレス生成部5で行うことにより、ユーザ
ープログラムが分岐する。ここで、bp7までテストし
ても分岐条件が成立しない場合には、デフォルトとして
、N+10番地の条件が成立しない場合のPC相対分岐
値によりユーザープログラムを分岐させることができる
。
のビットポジションOから順番にデータが1かどうかテ
ストされる。このテストを1回するたびにカウンターが
1つインクリメントされる。この制御はマイクロROM
4により制御される。ここでビットポジション3のデー
タで初めて1が見い出されたとすると、ALU及びカウ
ンター6からマイクロROM4に対し、分岐条件が成立
したことを知らせる信号が制御信号線10に出力され、
マイクロROM4の制御を、ビットデータをテストする
制御ルーチンから、分岐処理を制御するルーチンへと移
す。このとき、カウンター値はビットポジション3で1
が見い出されたため、4がカウントされており、このカ
ウント値をマイクロROM4の制御のもとで、データバ
ス8を介してアドレス生成部5に入力し、プログラムア
ドレスを示すカウンター値N+1にこのカウンター値4
を加えN+5というプログラムアドレスを生成し、N+
5番地に格納されているビットポジション(bp)3に
対するPC(プログラムカウンター)相対分岐値をプロ
グラムメモリー1より読み出し、レジスタ3及びデータ
バス8を介して、アドレス生成部5に入力し、分岐すべ
きユーザープログラムの先頭番堆く新PC) 新PC=旧PC(N+1)+ (bp3に対するPC相対分岐値) の計算を、アドレス生成部5で行うことにより、ユーザ
ープログラムが分岐する。ここで、bp7までテストし
ても分岐条件が成立しない場合には、デフォルトとして
、N+10番地の条件が成立しない場合のPC相対分岐
値によりユーザープログラムを分岐させることができる
。
また、第2図で示すように、8方向へユーザープログラ
ムを分岐させる命令配列において、命令の種類を示す命
令指定部及び、オペランドを示すオペランド指定部は各
々1ワード記述するだけでよ(、分岐先のユーザープロ
グラムを示すPC相対分岐値のみを複数ワード記述する
だけでよく、ユーザープログラムのサイズが減少し、プ
ログラム実行速度が上がる。
ムを分岐させる命令配列において、命令の種類を示す命
令指定部及び、オペランドを示すオペランド指定部は各
々1ワード記述するだけでよ(、分岐先のユーザープロ
グラムを示すPC相対分岐値のみを複数ワード記述する
だけでよく、ユーザープログラムのサイズが減少し、プ
ログラム実行速度が上がる。
また、別の命令として、ビットポジションOからビット
ポジション7まで各ビットの値をテストし、分岐条件が
成立しなかった場合には、次に記述されている命令を実
行するように構成してもよい。
ポジション7まで各ビットの値をテストし、分岐条件が
成立しなかった場合には、次に記述されている命令を実
行するように構成してもよい。
なお、以上の説明ではビットの値が1のときに分岐する
命令について説明したが、ビットの値が0のときに分岐
する命令でもよい。また、命令がテストするビット数も
ここでは8ビットで説明したが、このビット数は何ビッ
トであってもさしつかえない。
命令について説明したが、ビットの値が0のときに分岐
する命令でもよい。また、命令がテストするビット数も
ここでは8ビットで説明したが、このビット数は何ビッ
トであってもさしつかえない。
発明の詳細
な説明したように、本発明によれば、マイクロプログラ
ムの制御によりマクロ命令を実行するマイクロコンピュ
ータにおいて、参照するデータにより、マイクロコンピ
ュータで処理するプログラムの流れを1つのマクロ命令
により多方向に分岐させることができる。このためハー
ドウェアの負担を比較的軽くおさえ、プログラムのメモ
リーサイズを縮少でき、またプログラムの実行速度をあ
げることができる。
ムの制御によりマクロ命令を実行するマイクロコンピュ
ータにおいて、参照するデータにより、マイクロコンピ
ュータで処理するプログラムの流れを1つのマクロ命令
により多方向に分岐させることができる。このためハー
ドウェアの負担を比較的軽くおさえ、プログラムのメモ
リーサイズを縮少でき、またプログラムの実行速度をあ
げることができる。
第1図は本発明の一実施例を示すブロック図、第2図は
上記実施例のマクロ命令のプログラムデータの配置例を
示す概念図である。 1・・・・・・プログラムメモリー、2・・・・・・ア
ドレスデコーダ、3・・・・・・レジスタ、4・・・・
・・マイクロROM、5・・・・・・アドレス生成部、
6・・・・・・ALU及びカウンター、7・・・・・・
アドレスバス、8・・・・・・データバス、9・・・・
・・プログラムデータ出力線、10・・・・・・分岐条
件が成立した時に出力される制御信号線、11・・・・
・・マイクロプログラムにより出力される制御信号線。 代理人の氏名 弁理士 中尾敏男 ほか1名7−−アド
レスバス 8−一一データバス 9−−−アDグラムデータモカ 10−−4卜^(ノーシ井ay、仄立し艮蒔1τ北カゴ
いろ炉1蝉信号 //−一一マイグ07’Uダラム1党す出力第2図
上記実施例のマクロ命令のプログラムデータの配置例を
示す概念図である。 1・・・・・・プログラムメモリー、2・・・・・・ア
ドレスデコーダ、3・・・・・・レジスタ、4・・・・
・・マイクロROM、5・・・・・・アドレス生成部、
6・・・・・・ALU及びカウンター、7・・・・・・
アドレスバス、8・・・・・・データバス、9・・・・
・・プログラムデータ出力線、10・・・・・・分岐条
件が成立した時に出力される制御信号線、11・・・・
・・マイクロプログラムにより出力される制御信号線。 代理人の氏名 弁理士 中尾敏男 ほか1名7−−アド
レスバス 8−一一データバス 9−−−アDグラムデータモカ 10−−4卜^(ノーシ井ay、仄立し艮蒔1τ北カゴ
いろ炉1蝉信号 //−一一マイグ07’Uダラム1党す出力第2図
Claims (2)
- (1)1つのマクロ命令により、分岐先を示すデータを
参照し、このデータにもとづいてユーザープログラムの
流れを多方向に分岐させる選択手段をそなえたことを特
徴とするマイクロコンピュータ。 - (2)複数の各ビットポジションがそれぞれ分岐条件を
示すデータを参照し、マイクロプログラムにより上記デ
ータの値を、各ビットポジションごとに順次テストし、
分岐条件が成立したとき、1ビットづつのテストを行う
マイクロプログラム制御から、分岐のマイクロプログラ
ム制御に切り替え、分岐条件が成立したビットポジショ
ン値により指定された分岐先へユーザープログラムを分
岐させる選択手段をそなえたことを特徴とする請求項1
記載のマイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63104522A JPH01276234A (ja) | 1988-04-27 | 1988-04-27 | マイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63104522A JPH01276234A (ja) | 1988-04-27 | 1988-04-27 | マイクロコンピュータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01276234A true JPH01276234A (ja) | 1989-11-06 |
Family
ID=14382825
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63104522A Pending JPH01276234A (ja) | 1988-04-27 | 1988-04-27 | マイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01276234A (ja) |
-
1988
- 1988-04-27 JP JP63104522A patent/JPH01276234A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2137183C1 (ru) | Устройство и способ обработки данных с использованием наборов команд | |
| RU2137184C1 (ru) | Отображение с помощью мультинаборов команд | |
| JP3649470B2 (ja) | データ処理装置 | |
| US4825355A (en) | Instruction format for program control type data processing systems | |
| EP0730226B1 (en) | Hardware support for fast software emulation of unimplemented instructions | |
| US4679140A (en) | Data processor with control of the significant bit lengths of general purpose registers | |
| KR0167005B1 (ko) | 중앙처리장치 | |
| KR20010043826A (ko) | 마이크로 컨트롤러 명령어 집합 | |
| KR100227277B1 (ko) | 컴퓨터에 있어서 스칼라값을 벡터로 기입하는 방법 | |
| JPS62197830A (ja) | デ−タ処理システム | |
| US5978910A (en) | Performing pending interrupts or exceptions when interruptible jumps are detected | |
| JP2551167B2 (ja) | マイクロコンピュータ | |
| US5265204A (en) | Method and apparatus for bit operational process | |
| JPH027097B2 (ja) | ||
| JPH034936B2 (ja) | ||
| US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
| JP2553200B2 (ja) | 情報処理装置 | |
| JPH0192851A (ja) | アドレス空間切替装置 | |
| US5983370A (en) | Four state token passing alignment fault state circuit for microprocessor address misalignment fault generation having combined read/write port | |
| JPH03271829A (ja) | 情報処理装置 | |
| JPH0222413B2 (ja) | ||
| KR960016401B1 (ko) | 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로 | |
| JP2731618B2 (ja) | エミュレータ | |
| JP2743947B2 (ja) | マイクロプログラム制御方式 | |
| JPS623345A (ja) | 割込方式 |