JPS63163533A - マイクロコンピユ−タ - Google Patents

マイクロコンピユ−タ

Info

Publication number
JPS63163533A
JPS63163533A JP30929986A JP30929986A JPS63163533A JP S63163533 A JPS63163533 A JP S63163533A JP 30929986 A JP30929986 A JP 30929986A JP 30929986 A JP30929986 A JP 30929986A JP S63163533 A JPS63163533 A JP S63163533A
Authority
JP
Japan
Prior art keywords
subroutine
address
memory
processing unit
central processing
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
JP30929986A
Other languages
English (en)
Inventor
Noriyuki Takagi
高木 規之
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 JP30929986A priority Critical patent/JPS63163533A/ja
Publication of JPS63163533A publication Critical patent/JPS63163533A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロコンピュータに関し、特に、アキュ
ムレータの値等による呼び出しサブルーチンの選択を、
簡単なプログラムで行えるようにするマイクロコンピュ
ータの外部回路に関するものである。
〔従来の技術〕
マイクロコンピュータによって処理を行う場合、アキュ
ムレータの値等の条件によって実行すべきサブルーチン
を選択することが必要となる場合がある。このようなと
き、第4図のフローチャートで示したような形でサブル
ーチンの選択を行うのが最も効率が良い。すなわち、ア
キュムレータAccO値を調べ(ステップ41)、それ
が例えば1であれば210H(Hは16進表示であるこ
とを示す)番地に格納されているサブルーチンを呼び出
す(ステップ42)。また、アキュムレータAccの値
がnのときはmm’ 番地のサブルーチンを呼び出す(
ステップ43)。
しかし、従来の8ビツト・マイクロコンピュータは、ア
キュムレータの値によって呼び出すべきサブルーチンを
選択するという命令を持っていないので、この処理を第
4図のフローチャートで示したような形で実行すること
はできない。そのため、従来は第5図に示したフローチ
ャートにもとづいてサブルーチンの選択を行っていた。
この方法では、アキュムレータAceの値を比較命令で
逐次調べ(ステップ501〜505)、値が一致したと
き、サブルーチンの呼び出しを行う(ステップ506〜
510)。
第6図のフローチャートはもう一つの方法を示している
。この方法では、各プログラムの先頭番地が格納された
テーブルを設け、アキュムレータの値によってこのテー
ブルを引き、実行すべきプログラムの先頭番地を得るよ
うになっている。すなわち、まずBCレジスタペアに上
記テーブル、つまりジャンプテーブルの先頭アドレスを
セントしくステップ601)、HLレジスタペアにはア
キュムレータの内容(分岐先アドレスの番号)をセット
する(ステップ602)。次に、HLレジスタベアの値
を2倍し、これにBCレジスタベアの値を加算する(ス
テップ603,604)。これにより、HLレジスタベ
アには分岐先アドレスの下位アドレスが入るので、HL
レジスタペアのさすメモリ番地の−内容をCレジスタに
格納する(ステップ605)。さらに、HLレジスタベ
アの値に1を加え(ステップ606)、その値がさすメ
モリ番地の内容、すなわち分岐先アドレスの上位アドレ
スをHレジスタに入れる(ステップ607)。Cレジス
タの内容をLレジスタに入れることにより (ステップ
608)、HLレジスタベアに分岐先のアドレスが得ら
れる。そして、この分岐先のプログラム実行後の戻り番
地(RTNAD)をDEレジスタベアにセットしくステ
ップ609)、プログラムカウンタにHLレジスタペア
の値を入れ、処理を分岐させる(ステップ610)。な
お、第6図にはフローチャートと共にこれに対応する実
際のプログラムをも示した。0内に示した数字は各命令
を実行するのに必要なステート数である。この処理に必
要な総ステート数は81である。
〔発明が解決しようとする問題点〕
上述した従来のマイクロコンピュータは、アキュムレー
タの値によって実行すべきサブルーチンを選択する場合
、アキュムレータの値によって呼び出すべきサブルーチ
ンを選択するという命令を持っていないので、第5図ま
たは第6図のフローチャートで示したような方法によっ
てプログラムの選択を行う。
しかし、第5図の方法では、選択すべきサブルーチンの
数が多くなると、サブルーチンを選択して呼び出すまで
の平均時間が増大するという欠点がある。
一方、第6図の方法では、分岐する番地の数にかかわら
ず、処理を分岐させるまでの時間は一定であるが、多数
のレジスタを使用して処理が複雑であり、また、処理時
間も長いという欠点がある。
本発明の目的は、このような欠点を除去し、簡単なプロ
グラムで条件分岐を素早く実行することを可能とするマ
イクロコンピュータの外部回路を提供することにある。
C問題点を解決するための手段〕 本発明は、中央処理装置と命令コードを格納する第1の
メモリとを有するマイクロコンピュータにおいて、 サブルーチンのアドレスを格納する第2のメモリと、 前記中央処理装置が、呼び出すべきサブルーチンを指定
するデータを書き込み、このデータをもとに前記第2の
メモリにアドレスを出力するアドレス制御手段と、 前記中央処理装置が前記第1のメモリから、サブルーチ
ン呼び出し命令の命令コードを読み込むタイミングを検
出するデータ検出手段と、このデータ検出手段が前記タ
イミングを検出したとき、このタイミングに続く2つの
メモリ読み出しサイクルで、前記第1のメモリの読み出
しを禁止し、前記第2のメモリに、このメモリに格納さ
れているデータを前記中央処理装置に出力させるメモリ
制御手段とを有することを特徴とする。
〔実施例〕
次に本発明の一実施例について図面を参照して説明する
。第1図に本実施例の回路図を示す。このマイクロコン
ピュータは次の(イ)〜(ワ)の回路要素を備えている
(イ)中央処理装置1゜ (ロ)中央処理装置1を動作させるためのクロックを中
央処理装置1に出力するクロック回路2゜(ハ)中央処
理装置1を動作させるプログラムを格納するプログラム
格納用ROM8゜ (ニ)中央処理装置lの処理に必要なデータ等を格納す
るRAM7゜ (ホ)中央処理装置1がサブルーチンの番号を○UT命
令等で書き込むアドレス指定回路5゜(へ)サブルーチ
ンのアドレスを格納し、アドレス指定回路5が出力する
アドレスを受けてサブルーチンのアドレスを出力するサ
ブルーチンテーブルROM6゜ (ト)サブルーチンテーブルROM6からのサブルーチ
ンのアドレスをデータバス17を介して中央処理装置1
に送るバスバッファ9゜ (チ)中央処理装置1がプログラム格納用ROM8から
フェッチするコール命令を監視し、アドレス指定回路5
、サブルーチンテーブルROM6、プログラム格納用R
OM8、バスバッファ9を制御′11する信号を出力す
るコール命令コントロール回路3゜ (す)コール命令コントロール回路3、アドレス指定回
路5、RAM7、プログラム格納用ROM8を制御する
Acc書き込みパルス、RAM  C3、ROM  C
3を出力するアドレスデコーダ4゜(ヌ)コール命令コ
ントロール回路3およびアドレスデコーダ4からの信号
によりプログラム格納用ROM8を制御する信号を出力
するゲー1−15.16゜(ル)中央処理装置1がアド
レスデコーダ4、RAM7、およびプログラム格納用R
OM 8にアドレスを与えるためのアドレスバス18゜
(ヲ)中央処理装置1がアドレスデコーダ4、RAM7
、プログラム格納用ROM8、およびコール命令コント
ロール回路3にコントロール信号を供給するためのコン
トロールバス19゜(ワ)中央処理装置1がプログラム
格納用ROM8、RAM7、コール命令コントロール回
路3、アドレスI旨定回路5、およびバスバッファ9と
の間でデータのやり取りを行うためのデータバス17゜
次に、アキュムレータの値によってサブルーチンを選択
する場合を例にとって動作を説明する。
このマイクロコンピュータはサブルーチンの選択を第4
図のフローチャートで示した処理方法で実行する。サブ
ルーチンテーブルROM6には、第3図に示すように、
2バイトで表されるサブルーチンのアドレスが下位アド
レスと上位アドレスとに分けて格納されている。例えば
、n番目のサブルーチンのアドレスは、その下位アドレ
スm゛ は2n番地に、上位アドレスmは2n+1番地
に格納されている(ただし、nはOから数えるものとす
る)。
中央処理装置1はまずOUT命令等でアドレスデコーダ
4を介してアドレス指定回路5にローレベルのパルスを
送り、アキュムレータの値、すなわちサブルーチンの番
号をデータバス17を通してアドレス指定回路5に書き
込む。アドレス指定回路5はレジスタとカウンタとによ
り構成されており、中央処理装置1が書き込んだ値を左
に1ビツトシフトして(つまり、2倍して)出力する。
この出力はサブルーチンテーブルROM6にアドレスと
して与えられる。
アドレス指定回路5に送られた上記ローレベルのパルス
はコール命令コントロール回路3の起動入力にも入力さ
れている。このパルスによりコール命令コントロール回
路3は起動され、中央処理装置1が°プログラム格納用
ROM8からフェッチするCALL命令(サブルーチン
呼び出し命令)の監視を開始する。中央処理装置1がC
ALL命令を実行する場合、(1)CALL命令の命令
コード、(2)サブルーチンの下位アドレス、(3)サ
ブルーチンの上位アドレスの3バイトをプログラム格納
用ROM8から順次フェッチする。コール命令コントロ
ール回路3は中央処理装置1が(1)のサイクルでCA
LL命令の命令コードをフェッチしたことを検出すると
、これに!<(2)および(3)のサイクルに同期して
ローレベルのパルスを出力Zからそれぞれ出力する。
これらのパルスによって、サブルーチンテーブルROM
6およびバスバッファ9はアクティブとなり、サブルー
チンテーブルROM6はバスバッファ9に、バスバッフ
ァ9はデータバス17にデータを出力する。一方、これ
らのパルスはゲート15゜16を通してプログラム格納
用ROM8に入力され、そのC3端子をハイレベルとす
る。従って、プログラム格納用ROM8はこの時ノンア
クティブとなり、データバス17にデータを出力しない
コール命令コントロール回路3が最初のパルスを出力す
ると、サブルーチンテーブルROM6は、そのC8端子
がローレベルとなるのでアドレス指定回路5から与えら
れたアドレスのデータ、すなわちサブルーチンの下位ア
ドレスを出力する。例えば、中央処理装置1がアドレス
指定回路5に書き込んだサブルーチンの番号がnであっ
たとすると、サブルーチンテーブルROM6に与えられ
るアドレスは2nとなり、従って、サブルーチンテーブ
ルROM6はサブルーチンの下位アドレスm′を出力す
る。このアドレスはパスバッファ9を介してデータバス
17に出力され、中央処理装置1はこれを読み込む。ま
た、アドレス指定回路5はこの最初のローレベルパルス
をINCパルスとして受け、その立ち上がりで内部のカ
ウンタを歩進させる。これによりアドレス指定回路5の
出力値には1が加算される。すなわち、サブルーチンテ
ーブルROM6に与えられるアドレスは2n+1となる
次に、コール命令コントロール回路3が2番目のパルス
を出力すると、サブルーチンテーブルROM6にはアド
レスとして2n+1が与えられているので、サブルーチ
ンテーブルROM6はアドレス2n+1の内容量を出力
する。このアドレスも最初のパルスの場合と同様にして
中央処理装置1に読み込まれる。このようにして中央処
理装置1はCALL  mm’ というサブルーチン呼
び出し命令を実行することになる。
次に、本実施例で重要な役割を果たすコール命令コント
ロール回路3について詳しく説明する。
第2図にその回路図を示す。この回路は次の(力)〜(
))の回路要素によって構成されている。
(力)Acc値書き込みパルスを$入力で受け、このパ
ルスが入力されるとローレベルの信号をσ出力から出力
するフリップフロップ13゜(ヨ)フリ・ノブフロップ
13の出力をE端子で受け、これがローレベルのときイ
ネーブルされ、コントロールバス19からの制御信号を
デコードして命令コードフェ・ノチ信号をyo端子から
出力し、メモリリード信号をy、端子から出力するデコ
ーダ10゜(り)デコーダ10の出力をE端子で受け、
これがローレベルのときイネーブルされ、データバス1
7の値がCALL命令の命令コードと一致したとき、ロ
ーレベルの信号を出力端子から出力するマグニチュード
コンパレータ11゜ (し)マグニチュードコンパレータ11が出力する上記
ローレベルの信号を3入力で受けてご出力からローレベ
ルの信号を出力し、マグニチュードコンパレータ11が
ハイレベルの信号を出力したとき、ハイレベルの信号を
出力するフリップフロップ14゜(ソ)フリップフロッ
プ14のR入力に信号を与え、これを制御するゲート2
0.21.22゜(ツ)フリップフロップ14の出力に
、デコーダ10からのメモリリード信号によってゲート
をかけるゲート23゜ (ネ)ゲート23からのパルスをカウンタINCパルス
として受け、これが2つ入力されたとき、フリップフロ
ップ13をリセットするパルスをゲート25を介してそ
のR入力に出力し、またフリップフロップ14をリセッ
トするパルスを出力するカウンタ12゜ (つ)Acc値書き込みパルスまたはカウンタ12自身
の出力パルスをクリア端子CLに入力し、カウンタ12
をクリアするゲート24゜ ())カウンタ12の出力を反転させるゲート25゜こ
の回路は次のように動作する。中央処理装置1がアドレ
ス指定回路5にアキュムレータ値を書き込むと、その書
き込みパルスによりフリップフロップ13がセットされ
、そのご出力がローレベルとなってデコーダ10が動作
状態となる。また、カウンタ12はこの書き込みパルス
によってクリアされる。デコーダ10はコントロールバ
ス19からのデータをデコードし、中央処理装置1の命
令コードフェッチ時にはy0出力にローレベルの命令コ
ードフェッチ信号を、メモリリード時にはy1出力にロ
ーレベルのメモリリード信号を出力する。
マグニチュードコンパレータ11は、中央処理装置Iが
命令コードをフェッチし、デコーダ10のy0出力がロ
ーレベルとなったとき動作状態となる。
そして、この時データバス17の値がCALL命令の値
と一致していればローレベルの信号を出力し、フリップ
フロップ14をセットする。一方、一致しない場合には
ハイレベルの信号を出力する。この時、この信号と、デ
コーダ10からの命令コードフェッチ信号をゲート20
で反転させた信号とのアンドがデータ21で成立するの
で、そのローレベルの出力がゲート22を通してフリッ
プフロップ14の戻入力に入力されフリップフロップ1
4はリセットされる。
一致の場合には上述のようにフリップフロップエ4がセ
ットされ、そのσ出力はローレベルとなる。
そして、命令コードのフェッチに続く2つのメモリリー
ドサイクルでデコーダ10からメモリリード信号が出力
されたとき、ゲート23でアンドが成立し、出力Zから
ローレベルのパルスが出力される。
これらのパルスはカウンタINCパルスとしてカウンタ
12のトリガ端子に入力されており、カウンタ12が2
つのパルスを計数しおわると、その出力によりフリップ
フロップ13.14がリセットされる。カウンタ12の
出力はゲート24を介して自身のクリア端子CLにも入
力されているので、カウンタ12もリセットされ、この
回路の動作が終了する。
〔発明の効果〕
以上説明したように本発明のマイクロコンピュータは、
複数のサブルーチンの先頭アドレスを格納する専用のメ
モリと、呼び出すサブルーチンの番号によってこのメモ
リにアドレスを与えるアドレス制御回路とを持ち、中央
処理装置はCALL命令を実行するとき、このメモリか
らサブルーチンの先頭アドレスをフェッチしてサブルー
チンを呼び出せる構成となっている。
従って、このマイクロコンピュータでは、呼び出すサブ
ルーチンの番号を上記アドレス制御回路に与えるだけで
サブルーチンを呼び出すことができ、サブルーチンの選
択を第4図に示したフローチャートの処理形式で非常に
効率良く実行できる。
実際の数値を用いて比較すると、このようなサブルーチ
ン呼び出しに必要な命令はOUT命令とCALL命令の
2つだけである。従って、これらを実行するのに必要な
総ステート数は27ステートである(OUT・・・10
ステート、CALL・・・17ステート)。これに対し
、従来のマイクロコンピュータでは、第5図のフローチ
ャートを実行したとすると、総ステート数は7n+10
(n−1)+27となるので(nは比較の回数、比較命
令・・・7ステート、一致しないとき次の比較に進む・
・・10ステート、一致したとき分岐後CALL・・・
27ステート)、例えばn=3とすると総ステート数は
68となる。nが大きくなれば、この値はさらに大きく
なる。また、第6図のフローチャートを実行する場合に
は81ステート必要となる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す回路図、第2図は第1
図の実施例の一部を詳しく示す回路図、 第3図は第1図の実施例で用いるサブルーチンテーブル
ROMの内容を示すメモリマツプ、第4図、第5図、第
6図はサブルーチンを選択して呼び出す場合の処理を表
すフローチャートである。 1・・・・・中央処理装置 2・・・・・クロック回路 3・・・・・コール命令コントロール回路4・・・・・
アドレスデコーダ 5・・・・・アドレス指定回路 6・・・・・サブルーチンテーブルROM7・・・・・
RAM 8・・・・・プログラム格納用ROM 9・・・・・パスバッファ 10・・・・・デコーダ 1工・・・・・マグニチュードコンパレータ12・・・
・・カウンタ 13.14  ・・・フリップフロップ15.16,2
0,21,22,23,24.25  ・・・ゲート1
7・・・・・データパ′ス 18・・・・・アドレスバス 19・・・・・コントロールバス 代理人 弁理士  岩 佐  義 幸 第2図 第3図 第 (6)      kイ立をさす ・−LD H,(HL)     Hに分岐先アト°レ
スの(7)    上位がはいる 6図

Claims (1)

    【特許請求の範囲】
  1. (1)中央処理装置と命令コードを格納する第1のメモ
    リとを有するマイクロコンピュータにおいて、 サブルーチンのアドレスを格納する第2のメモリと、 前記中央処理装置が、呼び出すべきサブルーチンを指定
    するデータを書き込み、このデータをもとに前記第2の
    メモリにアドレスを出力するアドレス制御手段と、 前記中央処理装置が前記第1のメモリから、サブルーチ
    ン呼び出し命令の命令コードを読み込むタイミングを検
    出するデータ検出手段と、 このデータ検出手段が前記タイミングを検出したとき、
    このタイミングに続く2つのメモリ読み出しサイクルで
    、前記第1のメモリの読み出しを禁止し、前記第2のメ
    モリに、このメモリに格納されているデータを前記中央
    処理装置に出力させるメモリ制御手段とを有することを
    特徴とするマイクロコンピュータ。
JP30929986A 1986-12-25 1986-12-25 マイクロコンピユ−タ Pending JPS63163533A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30929986A JPS63163533A (ja) 1986-12-25 1986-12-25 マイクロコンピユ−タ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30929986A JPS63163533A (ja) 1986-12-25 1986-12-25 マイクロコンピユ−タ

Publications (1)

Publication Number Publication Date
JPS63163533A true JPS63163533A (ja) 1988-07-07

Family

ID=17991332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30929986A Pending JPS63163533A (ja) 1986-12-25 1986-12-25 マイクロコンピユ−タ

Country Status (1)

Country Link
JP (1) JPS63163533A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458556A (en) * 2008-03-24 2009-09-30 Nvidia Corp Indirect function calls in a synchronous parallel thread processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458556A (en) * 2008-03-24 2009-09-30 Nvidia Corp Indirect function calls in a synchronous parallel thread processor
GB2458556B (en) * 2008-03-24 2010-07-07 Nvidia Corp Indirect function call instructions in a synchronous parallel thread processor
US8312254B2 (en) 2008-03-24 2012-11-13 Nvidia Corporation Indirect function call instructions in a synchronous parallel thread processor

Similar Documents

Publication Publication Date Title
US4323963A (en) Hardware interpretive mode microprocessor
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
EP0270081A2 (en) Microprogram controller receiving interrupt request during instruction execution
JPS63163533A (ja) マイクロコンピユ−タ
JPS61267858A (ja) マイクロコンピユ−タ
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JP2758624B2 (ja) マイクロプログラムの調速方式
JP2604203B2 (ja) ワンチップデジタル信号処理装置のデバック装置
JP3190945B2 (ja) マイクロプログラム制御回路
JPH0667896A (ja) シングルチップマイクロコンピュータ
JPS6232500B2 (ja)
JP3057732B2 (ja) 情報処理装置
JPH03288228A (ja) 情報処理装置
JPS6042968B2 (ja) 情報処理装置
JP2770420B2 (ja) マイクロプログラム制御方式
JPS6247752A (ja) 情報処理装置の命令実行回数計数回路
JPH0243626A (ja) コンピュータ・プロセッサの実行速度を制御する装置
JPS5852261B2 (ja) プログラム処理方式
JPH0795288B2 (ja) マイクロコンピュータ
JPS60193046A (ja) 命令例外検出方式
JPS6156820B2 (ja)
JPS6260034A (ja) ストア−ドプログラム方式制御装置
JPH1055270A (ja) ディジタル処理装置
JPS62248043A (ja) マイクロコンピユ−タ・インストラクシヨン・フエツチ用メモリ切換回路
JPH03217903A (ja) プログラマブルコントローラ