JP2985201B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP2985201B2
JP2985201B2 JP2001856A JP185690A JP2985201B2 JP 2985201 B2 JP2985201 B2 JP 2985201B2 JP 2001856 A JP2001856 A JP 2001856A JP 185690 A JP185690 A JP 185690A JP 2985201 B2 JP2985201 B2 JP 2985201B2
Authority
JP
Japan
Prior art keywords
instruction
micro
data
address
specifying
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.)
Expired - Fee Related
Application number
JP2001856A
Other languages
English (en)
Other versions
JPH03204724A (ja
Inventor
博志 勝田
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2001856A priority Critical patent/JP2985201B2/ja
Publication of JPH03204724A publication Critical patent/JPH03204724A/ja
Application granted granted Critical
Publication of JP2985201B2 publication Critical patent/JP2985201B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロコンピュータに関し、特にその内
部レジスタに対するスタック操作の命令処理方式に関す
る。
〔従来の技術〕
近年、プリンタ,ディスク装置等の各種OA機器や、エ
ンジン制御等の自動車電装機器を始めとして、マイクロ
コンピュータの応用分野はますます広がりつつあるが、
これらの装置が高度化するに伴い、マイクロコンピュー
タが処理すべき情報量も大きくなってきており、マイク
ロコンピュータのより一層の高性能化が望まれている。
一方、これら分野のような装置組み込みの用途では、装
置自体が小型化,低価格化の一途をたどっており、マイ
クロコンピュータもより安価でコンパクトな機器構成が
可能なものが望まれている。
このようなマイクロコンピュータは、通常、汎用レジ
スタと呼ばれる内部レジスタを備えており、これら内部
レジスタ間あるいはメモリ等の外部デバイスとの間での
データ転送,算術論理演算等の各種命令を実行する。
これら命令の中で、特に複数の汎用レジスタの内容を
一時的に外部メモリに記憶させる場合に使用する命令と
して、PUSH/POP post命令が知られている。PUSH post
命令は、一命令で、postパラメータで指定される複数の
汎用レジスタの内容をマイクロコンピュータ内部のスタ
ックポインタ(以下、SPという)により指定される外部
メモリのスタック領域に積み重ねて格納する処理を行
う。また、POP post命令は、一命令で、スタック領域
に格納されている複数のデータをpostパラメータで指定
される汎用レジスタにそれぞれ戻す処理を行う。
第6図は、このPUSH post命令の命令コード構成の一
例を示した図、第7図は、汎用レジスタGRの構成の一例
を示した図である。命令コードの2バイト目は、各ビッ
トが、第7図の8個の汎用レジスタGR0〜GR7にそれぞれ
1対1に対応している。例えば、ビット0,2,4が1の場
合、汎用レジスタGR0,GR2,GR4がスタックに退避され、
ビット7のみ1の場合、処理対象となる汎用レジスタは
GR7のみである。
第8図は従来のマイクロプログラム制御のマイクロコ
ンピュータにおけるPUSH post命令のマイクロプログラ
ム処理のフローチャートを示し、その動作について説明
する。ここで、このマイクロコンピュータは、前述の汎
用レジスタ,SP以外に、通常の命令で算術論理演算等の
各種データ処理を実現するためにマイクロプログラムで
制御する内部テンポラリレジスタTA,TB及びシフタを備
えている。
まず、第1のステップ201で命令コードの2バイト目
を内部テンポラリレジスタTAに格納し、ステップ202で
レジスタ選択変数として7を内部テンポラリレジスタTB
に格納する。続いてステップ203でTA値を左シフトし、
ステップ204でシフトした結果キャリー(以下、CYとい
う)が1ならば、SPをデクリメント(ステップ205)し
て、TB値に基づきGR7を選択し、SPが示すアドレスにGR7
の内容を転送(ステップ206)した後、TBをデクリメン
ト(ステップ207)してステップ203に分岐する。また、
ステップ204の結果キャリーCYが0ならば、スタック操
作は行わず、TBをデクリメント(ステップ209)した
後、ステップ203を再び実行する。以上、ステップ208で
TBが0になるまで繰り返すことにより、postデータで指
定されているGR7からGR0までの汎用レジスタの退避処理
を実現する。
PUSH/POP post命令は、主としてサブルーチンコール
や割り込み処理等のプログラムの流れが一時的に変わる
ような場合に、汎用レジスタの内容に影響を与えないよ
う一時的に汎用レジスタの内容を退避しておく目的に使
用される。
〔発明が解決しようとする課題〕
上述した従来の命令処理では、マイクロプログラム処
理でpostデータの各ビットの1をサーチすることによ
り、所定の汎用レジスタを選択してスタックに退避して
いた。従って、命令の語長が短いのにもかかわらず処理
が複雑なために、命令の実行時間が長いものとなってい
た。さらに、例えばPUSH post命令の場合、ビット0の
み1の場合でも、ビット7からビット1までのpostデー
タのシフトと、レジスタ選択変数のデクリメントの処理
も行う必要があるなど、命令の実行時間の上で非常に効
率の悪いものとなっていた。特に、高速な処理実行を必
要とする割り込み処理においては、このPUSH/POP post
命令の命令実行時間がオーバヘッドとなり、問題となる
場合があり、より高速な命令処理方式が望まれていた。
また、処理を高速化するために、postデータの1のビ
ットを検出し、対応する汎用レジスタの選択を行う専用
のハードウェアを設け、指定された汎用レジスタの内容
をマイクロプログラム処理でスタックに退避した後、自
動的にそのビットが0にリセットされるように構成する
ことにより、必要最小限の実行クロック数で処理を行う
方式が知られている。しかし、このような専用ハードウ
ェアによる手法では、そのハードウェアがpostデータの
判別以外の用途には使用できないにもかかわらず、複雑
で規模も大きくなり、安価なマイクロコンピュータで採
用する方式としては適切でない。
本発明の目的は、このような従来の問題点を改善し、
高速なPUSH/POP post命令処理を最小限のハードウェア
で実現することのできるマイクロコンピュータを提供す
ることにある。
〔課題を解決するための手段〕
本発明のマイクロコンピュータの構成は、処理データ
を記憶するデータメモリと、 実行すべきプログラムを記憶するプログラムメモリ
と、 このプログラムメモリのアドレスを順次生成するプロ
グラムカウンタと、前記プログラムメモルから読込んだ
命令コードを記憶する命令レジスタと、各種命令処理の
マイクロプログラムを記憶するマイクロROMと、このマ
イクロROMおよび前記命令レジスタの各出力を入力しそ
のマイクロROMのアドレスを生成するマイクロアドレス
生成部とを含み、前記マイクロプログラムのシーケンス
制御を行うと共に、前記マイクロROMから動作指示信号
を出力する命令実行制御部と、 複数の内部レジスタと、前記データメモリのスタック領
域のアドレスを指定するスタックポインタと、前記動作
指示信号に従って、少くとも1つ以上の前記内部レジス
タと前記スタックポインタで指定されるメモリとの間で
データ転送を単一の命令で実行する命令処理を行う論理
演算部とを含むデータ処理部とを備え、前記マイクロRO
Mには、前記動作指定信号を前記データ処理部制御のア
ドレス情報として前記内部レジスタを指定するフィール
ドと、前記マイクロプログラム実行中のステップの次の
ステップのアドレスを指定するフィールドと、前記マイ
クロプログラムの分岐条件を指定するフィールドとを有
することを特徴とする。
本発明において、命令レジスタとマイクロアドレス生
成部との間に、その命令レジスタの命令コードの上位ビ
ットまたは下位ビットが全て「0」であることを判定す
るゲート回路を有し、このゲート回路の判定出力により
前記マイクロアドレス生成部への入力を少なくすること
もできる。さらに、マイクロROMにおけるマイクロプロ
グラムの分岐条件を指定するフィールドにおいて、その
分岐条件として転送対象の複数の内部レジスタのそれぞ
れを指定するビットフィールドを含むものとすることが
できる。
〔実施例〕
以下本発明の実施例について図面を参照して説明す
る。
第1図は、本発明の一実施例のマイクロコンピュータ
の内部構成を示したブロック図である。本実施例は、命
令実行制御部1と、データ処理部2と、プログラムメモ
リ5と、データメモリ6と、これらをつなぐデータバス
3とから構成される。
命令実行制御部1は、データバス3から読み込んだ命
令コードに基づき、所定のマイクロプログラムを順次実
行するためのシーケンス制御を行うとともに、データ処
理部2に対する動作指定信号4を出力する。データ処理
部2は、動作指定信号4の指定に基づき、データ転送,
算術論理演算等の各命令処理を行う。また、データバス
3には、マイクロコンピュータが実行するプログラムを
記憶するプログラムメモリ5と、処理データを記憶する
データメモリ6が接続されている。
命令実行制御部1は、命令実行に伴いプログラムメモ
リ5のアドレスを順次生成するプログラムカウンタPC10
と、プログラムメモリ5から読込んだ命令コードを記憶
する8ビットの命令レジスタIR11と、命令毎のマイクロ
プログラムを記憶するマイクロROM12と、IR11及びマイ
クロROM12の出力を入力としマイクロROM12のアドレスを
生成するマイクロアドレス生成部13とから構成される。
第2図は、第1図のマイクロROM12の出力のフォーマ
ット図である。この出力は、動作指定信号4の状態を指
定する動作指定フィールドと、1命令中のマイクロプロ
グラムにおける現在実行中のステップの次のステップの
マイクロROM12のアドレスを指定する次アドレス指定フ
ィールドと、マイクロプログラムの分岐条件を指定する
分岐指定フィールドとから成る。
また、第1図のマイクロアドレス生成部13では、命令
の実行開始タイミングではIR11の出力を選択して、IR11
の値に基づいて対応する命令のマイクロプログラムの開
始アドレスを生成する。第一ステップ目以降のタイミン
グでは、次アドレス指定フィールドが、マイクロアドレ
ス生成部13におけるマイクロROM12のアドレスに用いら
れ、次ステップのアドレスが生成される。分岐指定フィ
ールドは、マイクロアドレス生成部13におけるアドレス
修飾条件の指定に用いられる。以上の様にして、順次各
ステップのマイクロROM12の内容が読出され、動作指定
フィールドの状態によりデータ処理部2は一連の所定の
命令動作を行う。
データ処理部2は、GR0からGR7までの8本のレジスタ
から成る汎用レジスタ20と、算術論理演算部ALU21と、
データメモリ6のスタック領域の先頭アドレスを指定す
るSP22とから構成される。
次に、GR0からGR7までの汎用レジスタ20のうち、post
データで指定した複数のレジスタをデータメモリ6のス
タック領域に退避する、PUSH post命令の命令動作につ
いて、第3図のマイクロプログラム処理のフローチャー
トを用いて説明する。ここで、postデータの構成は、第
6図の構成と同じである。
まず、ステップ101で命令コードの2バイト目をIR11
に格納し、分岐指定フィールドにより、IR11の内容をア
ドレス修飾条件に指定して分岐(ステップ102)する。I
R11値が00000001B(Bは2進数)ならば、SP22をデクリ
メント(ステップ103)して、SP22が示すアドレスにGR0
の内容を転送(ステップ104)した後、命令を終了す
る。また、ステップ102でIR11値が00000011Bならば、SP
22をデクリメント(ステップ105),GR1の内容を転送
(ステップ106)、し、続いてSP22をデクリメント(ス
テップ103),GR0の内容を転送(ステップ104)する。さ
らに、IR11値が11111111Bならば、GR7からGR0の全ての
内容をSP22をデクリメントしながら転送する。同様に、
IR11値が00000000Bならば、転送は行わず直ちに命令を
終了する。IR11のその他の値についても同様に転送され
る。
このようにIR11の内容に従い、指定された汎用レジス
タの組合せのみをスタック領域に退避するマイクロプロ
グラム処理をそれぞれ用意しておき、各々に分岐させて
処理を実行する。
ここでIR11の組合せは256通りであり、全ての汎用レ
ジスタの組合せのマイクロプログラムステップが必要で
あるが、マイクロROM12は、通常マスクROMで構成するた
め、デバイスの集積度が一般のランダムロジックに比べ
て極めて高く、専用のハードウェアは一切必要としない
ため、最小限のハードウェア構成が可能である。また、
POP post命令についても同様の手法で実現できる。
第4図は、本発明の第二の実施例のマイクロコンピュ
ータの内部構成を示したブロック図であり、本実施例
は、マイクロプログラムの分岐をpostデータを上位と下
位の4ビットに分割して行うようにしたものである。本
実施例は、第1の実施例に対しIR11とマイクロアドレス
生成部13との間にゲート回路14,15が挿入されている。
命令実行制御部1は、第一の実施例と同じプログラム
カウンタPC10,IR11,マイクロROM12,マイクロアドレス生
成部13と、IR11の上位4ビットと下位4ビットとをそれ
ぞれデコードし、全4ビットが0であることを検出し、
マイクロアドレス生成部13にアドレス修飾条件として検
出信号16,17を出力するゲート回路14,15とから構成され
る。上記4ビットが0000Bの場合、上位ゼロ検出信号16
が論理値「1」になる。また、下位4ビットが0000Bの
場合、下位ゼロ検出信号17が論理値「1」になる。ここ
で、命令実行制御部1のシーケンス制御と関連するハー
ドウェアの基本的な動作については、第一の実施例と同
じであり、その説明は省略する。また、データ処理部2,
データバス3,動作指定信号4,プログラムメモリ5及びデ
ータメモリ6も第一の実施例と同様である。
次に、第二の実施例のPUSH post命令の命令動作につ
いて、第5図のマイクロプログラム処理のフローチャー
トを用いて説明する。ここでpostデータの構成は、第6
図の構成と同じである。
まず、ステップ101で命令コードの2バイトめをIR11
に格納し、分岐指定フィールドにより、上位ゼロ検出信
号16,下位ゼロ検出信号17の状態をアドレス修飾条件に
指定して分岐(ステップ102)する。上位ゼロ信号16が
論理値「1」ならば、続いて分岐指定フィールドによ
り、IR11の上位4ビットの内容をアドレス修飾条件に指
定して分岐(ステップ111)する。IR11値が0001Bなら
ば、SP22をデクリメント(ステップ103)して、SP22が
示すアドレスにGR4の内容を転送(ステップ104)する。
また、ステップ103でIR11値が0011Bならば、SP22がデク
リメント(ステップ105)、GR5の内容を転送(ステップ
106)した後、SP22をデクリメント(ステップ103),GR4
の内容を転送(ステップ104)する。同様に、RI11値が1
111Bならば、GR7からGR4の全ての内容をSP22をデクリメ
ントしながら転送する。
次に、下位ゼロ信号17が論理値「1」ならば、続いて
IR11の下位4ビットの内容をアドレス修飾条件に指定し
て分岐(ステップ113)する。IR11値が0001Bならば、SP
22をデクリメント(ステップ114)して、SP22が示すア
ドレスにGR0の内容を転送(ステップ115)する。また、
ステップ113でIR11値が0011Bならば、SP22をデクリメン
ト(ステップ116),GR1の内容を転送(ステップ117)し
た後、SP22をデクリメント(ステップ114),GR0の内容
を転送(ステップ115)する。同様に、IR11値が1111Bな
らば、GR3からGR0の全ての内容をSP22をデクリメントし
ながら転送する。
なお、ステップ101で、上位ゼロ信号16が論理値
「0」で下位ゼロ信号17が論理値「1」ならば、直接ス
テップ113に分岐し、GR7からGR4に関する処理は行わな
い。また、上位ゼロ信号16が論理値「1」で下位ゼロ信
号17が論理値「0」ならば、GR7からGR7に関する処理の
みを実行後、命令を終了(ステップ112)する。同様
に、ステップ102で上位ゼロ信号16と下位ゼロ信号17が
共に論理値「0」ならば、直ちに命令を終了する。IR11
のその他の値についても同様である。
このように、IR11を上位と下位の4ビットに分割し、
その内容に従い、指定された4種類の汎用レジスタの組
合せのみをスタック領域に退避するマイクロプログラム
処理をそれぞれ用意しておき、各々に分岐させて処理を
実行する。ここで、IR11の組合せは、上位4ビット,下
位4ビット合わせて32通りであり、また、ゲート回路1
4,15も、通常のNORゲートでよく、最小限のハードウエ
アで実現できる。
また、POP post命令についても、このハードウエア
をそのまま利用して同様に実現できる。
〔発明の効果〕
以上説明したように、本発明の方式によれば、PUSH/P
OP post命令を、postデータに基づくマイクロプログラ
ムの分岐により、指定された汎用レジスタのみをスタッ
ク領域に退避する処理を行うことができるため、命令の
実行クロック数が最小になると共に、postデータの1の
ビットをサーチする複雑な専用のハードウエアを必要と
せず、従来のハードウエアをそのまま利用できるため、
高速でかつ安価なマイクロコンピュータを容易に実現で
きる効果がある。
【図面の簡単な説明】
第1図は本発明のマイクロコンピュータの第1の実施例
のブロック図、第2図は第1図のマイクロROM12の出力
フォーマットを示した図、第3図は第1図のマイクロプ
ログラム処理のフローチャート、第4図は本発明のマイ
クロコンピュータの第2の実施例のブロック図、第5図
は第4図のマイクロプログラム処理のフロチャート、第
6図は一般のPUSH post命令の命令コードの構成図、第
7図は第6図に用いられる汎用レジスタの構成図、第8
図は従来のマイクロコンピュータにおけるマイクロプロ
グラム処理の一例のフローチャートである。 1……命令実行制御部、2……データ処理部、3……デ
ータバス、4……動作指定信号、5……プログラムメモ
リ、6……データメモリ、10……プログラムカウンタ
(PC)、11……命令レジスタ(IR)、12……マイクロRO
M、13……マイクロアドレス生成部、14,15……ゲート回
路、16……上位ゼロ検出信号、17……下位ゼロ検出信
号、20……汎用レジスタ、21……算術論理演算部、(AL
U)、22……スタックポインタ(SP)、101〜115,201〜2
08……処理ステップ。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】処理データを記憶するデータメモリと、 実行すべきプログラムを記憶するプログラムメモリと、 このプログラムメモリのアドレスを順次生成するプログ
    ラムカウンタと、前記プログラムメモリから読込んだ命
    令コードを記憶する命令レジスタと、各種命令処理のマ
    イクロプログラムを記憶するマイクロROMと、このマイ
    クロROMおよび前記命令レジスタの各出力を入力しその
    マイクロROMのアドレスを生成するマイクロアドレス生
    成部とを含み、前記マイクロプログラムのシーケンス制
    御を行うと共に、前記マイクロROMから動作指示信号を
    出力する命令実行制御部と、 複数の内部レジスタと、前記データメモリのスタック領
    域のアドレスを指定するスタックポインタと、前記動作
    指示信号に従って、少くとも1つ以上の前記内部レジス
    タと前記スタックポインタで指定されるメモリとの間で
    データ転送を単一の命令で実行する命令処理を行う論理
    演算部とを含むデータ処理部とを備え、前記マイクロRO
    Mには、前記動作指定信号を前記データ処理部制御のア
    ドレス情報として前記内部レジスタを指定するフィール
    ドと、前記マイクロプログラム実行中のステップの次の
    ステップのアドレスを指定するフィールドと、前記マイ
    クロプログラムの分岐条件を指定するフィールドとを有
    することを特徴とするマイクロコンピュータ。
  2. 【請求項2】命令レジスタとマイクロアドレス生成部と
    の間に、その命令レジスタの命令コードの上位ビットま
    たは下位ビットが全て「0」であることを判定するゲー
    ト回路を有し、このゲート回路の判定出力により前記マ
    イクロアドレス生成部への入力を少なくした請求項1記
    載のマイクロコンピュータ。
  3. 【請求項3】マイクロROMにおけるマイクロプログラム
    の分岐条件を指定するフィールドにおいて、その分岐条
    件として転送対象の複数の内部レジスタのそれぞれを指
    定するビットフィールドを含むものである請求項1記載
    のマイクロコンピュータ。
JP2001856A 1990-01-08 1990-01-08 マイクロコンピュータ Expired - Fee Related JP2985201B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001856A JP2985201B2 (ja) 1990-01-08 1990-01-08 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001856A JP2985201B2 (ja) 1990-01-08 1990-01-08 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH03204724A JPH03204724A (ja) 1991-09-06
JP2985201B2 true JP2985201B2 (ja) 1999-11-29

Family

ID=11513186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001856A Expired - Fee Related JP2985201B2 (ja) 1990-01-08 1990-01-08 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP2985201B2 (ja)

Also Published As

Publication number Publication date
JPH03204724A (ja) 1991-09-06

Similar Documents

Publication Publication Date Title
KR100266337B1 (ko) 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기
US4037211A (en) Address extending control unit
US4825355A (en) Instruction format for program control type data processing systems
EP0054243A2 (en) Memory controlling apparatus
JP3237858B2 (ja) 演算装置
US5046040A (en) Microprogram control apparatus using don't care bits as part of address bits for common instructions and generating variable control bits
JP2551167B2 (ja) マイクロコンピュータ
JP2985201B2 (ja) マイクロコンピュータ
US5483566A (en) Method and apparatus for modifying the contents of a register via a command bit
US6005502A (en) Method for reducing the number of bits needed for the representation of constant values in a data processing device
JPH056281A (ja) 情報処理装置
JPH0831033B2 (ja) データ処理装置
JPH0683618A (ja) フラグ制御回路
JPH0612253A (ja) マイクロコンピュータ
JP2918570B2 (ja) 中央演算処理装置
JP2812610B2 (ja) パイプライン制御方式
SU1737440A1 (ru) Устройство дл программной обработки цифровой информации @
JP3024410B2 (ja) プログラマブルコントローラ
JPH02191042A (ja) 割込み制御方式
SU883904A1 (ru) Устройство управлени последовательностью команд
JPH01316826A (ja) レジスタファイルアドレス回路
JPH0625966B2 (ja) マイクロプログラム制御装置
JPS6113345A (ja) タグ付デ−タ処理装置
JP2001166987A (ja) メモリウェイト制御回路
JPH06100965B2 (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091001

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees