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

マイクロプロセッサ

Info

Publication number
JPH0283623A
JPH0283623A JP23701288A JP23701288A JPH0283623A JP H0283623 A JPH0283623 A JP H0283623A JP 23701288 A JP23701288 A JP 23701288A JP 23701288 A JP23701288 A JP 23701288A JP H0283623 A JPH0283623 A JP H0283623A
Authority
JP
Japan
Prior art keywords
call
signal
procedure
instruction
stack
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
JP23701288A
Other languages
English (en)
Inventor
Tsuneo Koike
庸夫 小池
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 JP23701288A priority Critical patent/JPH0283623A/ja
Publication of JPH0283623A publication Critical patent/JPH0283623A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサに関し、特にプロシージャ
コール命令における動作に関する。
〔従来の技術〕
従来のマイクロプロセッサにおけるプロシージャコール
命令の動作概要を第3図を用いて説明する。第3図(A
)において、15はプログラムを格納しであるメモリ空
間(以下プログラムメモリ空間と称す。)、17はプロ
シージャコール命令の格納しであるメモリ (実際には
複数のワード長をもつ場合もあるが、本発明ではすべて
1ワード長として記述しである。)、19はプロシージ
ャの先頭命令が格納されているメモリ、20はプロシー
ジャの最後の命令すなわちプロシージャ復帰命令の格納
されているメモリ、18は復帰後の命令の格納されてい
るメモリを表わしている。21で示す矢印はこの命令群
の処理過程を表わした処理フローである。一方、第3図
(B)で16はプロシージャコール命令においてプログ
ラムカウンタな待避させる一時待避メモリ空間(以下ス
タックメモリ空間と称す。)、22.23はスタックメ
モリのどこを一時退避メモリとして使用するか、あるい
は使用しているかを差し示すポインタレジスタ(以下ス
タックポインタと称す。)22はプロシージャコール命
令17を実行する前のスタックポインタ、23はプロシ
ージャコールの命令17を実行した後のスタックポイン
タを示している。
(すなわち、22はプロシージャ復帰命令20を実行し
た後のスタックポインタでもある。)以上の様なマイク
ロプロセッサの動作環境における動作を説明する。21
で示す処理フローに従ってプロシージャコール命令17
が実行されると、マイクロフロセッサはその時点のプロ
グラムカウンタの値をスタックメモリ空間16のスタッ
クポインタ22の位置へ一時退避し、スタックポインタ
の値を変化させ、23の値とする。フログラムカウンタ
ヘプロシージャ先頭アドレス19を格納し、プログラム
の制御をプロシージャ先頭命令19(すなわちプロシー
ジャ)へ移す。一連のフロシージャが終了すると、プロ
シージャ復帰命令20を実行する。ここでは、スタック
ポインタ値23を変化させ、22の値へ変化させ、その
内容、すなわちプロシージャコール命令を実行していた
時のプログラムカウンタであって、プロシージャコール
命令18の次命令の格納されているメモリアドレス、を
プログラムカウンタべ格納し、制御を復帰後の命令アド
レス18へ移す。
以上のようにマイクロフロセッサの動作においてスタッ
クメモリ空間16へプログラムカウンタをセーブする機
能があるが、これはそのプロセッサのメモリ管理方法に
依存している。例えば、セグメントとオフセットによっ
てメモリアドレスを指定スるマイクロプロセッサでは、
同一セグメント内へのコールであれば、オフセットだけ
をスタックヘセーブする。また、異なるセグメントへの
コールでは、スタック上にセグメントとオフセットの両
方をセーブすることになる。この両者の違いはプロシー
ジャコール命令17を変えることによって行われる。こ
のようなセグメントとオフセット管理における、スタッ
クメモリの使われかたを第4図を用いて説明する。この
例ではセグメントおよびオフセットはそれぞれ1ワード
長として説明している。
第4図(A)は同一セグメント内へのプロシージャコー
ル命令(以下NEARコールと称す。)におけるスタッ
クメモリ空間の状態を、同図(B)は異なるセグメント
へのプロシージャコール命令(以下FARコールと称す
。)におけるスタックメモリ空間の状態を表わしている
。NEARコールではオフセットのみスタックへ一時退
避し、スタックポインタは1ワ一ド分のみ変化している
FARコールではセグメントとオフセットの両者がスタ
ックメモリ空間へ一時退避され、スタックポインタは2
ワ一ド分変化している。勿論、プロシーシャ復帰命令に
おいてもNEARコールナノがFARコールなのかに従
って復帰命令を変え、NEARコールではスタックから
1ワ一ド分のオフセット情報のみ復帰させ、NEARコ
ールではスタックから2ワ一ド分のセグメントとオフセ
ット情報を復帰させる。これに伴って、スタックポイン
タの変化もNEARコールでは1ワード、FARコール
では2ワードとなる。
以上のような従来のマイクロフロセッサの動作を実現す
る為の機能ブロック図(本発明に関係する部分のみを記
述しである。)を第5図に示す。
1はマイクロプロセッサを、2はその中の命令実行部(
以下EXEと称す。)、3はバス制御部(以下ECUと
称す。)、6はNEARコールを実行している間゛1′
となる信号(以下CALLN信号と称す。)を、5はF
ARコールを実行している間゛1′となる信号(以下C
ALLF信号と称す。)を表わしている。7は外部記憶
装置に対するメモリアクセス要求を表わす信号(以下M
RQ信号と称す。)で、1ワ一ド分のメモリアクセスに
対し、1回のパルスが生じる。EXE2がNEARコー
ルを実行するとCALLN信号6が1′ となり、BC
U3はスタックメモリ空間16ヘブログラムカウンタの
内容を書き込む為にMRQ信号に必要な回数分(セーブ
するプログラムカウンタ多分、すなわちN E A R
コールでは1回)だけパルスを出力する。同様にEXE
2がFARコールを実行すると、CALLF信号5が1
″となり、ECUはMRQ信号へ2回パルスを出力する
ことになる。また、4はフラグレジスタを表わし、これ
はマイクロプロセッサの内部から読み出せるような機能
を持っている。(本発明とは直接関係ないので、この図
では省略しである。) 〔発明が解決しようとする課題〕 以上のようなマイクロプロセッサにおいて、プロシージ
ャとそれを呼出すプログラムとの間でのデータの受渡し
を行うために、スタックメモリ空間を使用する方法があ
る。データの受渡し方法を第6図を用いて説明する。
プロシージャの呼出側ではスタックメモリ上にデータを
格納し、スタックポインタを変化させておく。この図で
は25に示した3つのワードデータをスタック上に格納
している。の時、スタックポインタは受渡しデータ格納
前の状態24からプロシージャコール前の位置22に変
化する。ここで、プロシージャコールを行うと、先に説
明した手順でスタック上にプログラムカウンタの情報が
格納され、スタックポインタは位置23に変化する。プ
ロシージャ側ではスタックポインタ23からの相対アド
レスとして引渡されたデータを得ることができる。
しかし先に説明したセグメントとオフセットでメモリ管
理を行っているマイクロプロセッサの場合、プロシージ
ャに制御が移った時のスタックポインタは23の位置と
なっており、これはN’ E A Rコール、FARコ
ールで1ワ一ド分のずれがあり、NEARコールとFA
Rコールに対応して、その分を吸収するようなプログラ
ムの組みかたをしなげればならなかった。すなわち、従
来のマイクロフロセッサでは、プロシージャ側は自分が
NEAR−y−ルテコールされたのか、FARコールで
コールされたのかを知る手段がなかったため、全く同一
の処理を行うプロシージャでも、コールする側力N E
 A Rコール命令で呼出すプロシージャとFARコー
ル命令で呼出すプロシージャとの2つをコーディングを
しておく必要がありメモリ空間の使用効率を悪くしてい
た。
〔課題を解決するための手段〕
本発明のマイクロプロセッサでは、スタック空間へ一時
退避させるプログラムカウンタの長さを知る為の回路と
その情報を保持する為の回路とを有する。すなわち、本
発明では、NEARコールされたのか、FARコールさ
れたのかを、フロシージャにおいて参照することのでき
るフラグレジスタと、そのフラグレジスタをセットする
為の回路とを有している。
〔実施例〕
第1図は本発明のマイクロプロセッサの一実施例を表わ
したものである。第1図において第5図と同じ番号がふ
られている部分は従来例と全く同じ機能を行うものとす
る。8はRSフリップフロップ(以下F−Fと称する。
)を表わし、S信号が1′になるとQ信号が1′に、R
信号が1′になるとQ信号が0″になる論理素子である
従来例で示したように、EXE2がNEARコールを実
行するとCALLN信号6がl′ となり、F−F9の
出力Q信号は0′に変化する。
同様に、FARコールが実行されるとCALLF信号5
が1′となり、F−F9の出力Q信号は1゛に変化する
。このQ信号がフラグレジスタに割当てられており、マ
イクロプロセッサ内部で読み出せるようになっている。
第2図は本発明の第2の実施例を表わしたものである。
IOは論理和ゲートを表わし、1]はカウンタを表わし
ている。このカウンタ11は、MRQ信号7を入力とし
てそのパルス数をカウントし12へ出力する。論理和ゲ
ート26の出力が入力されている端子はカウンタの値を
Oに戻すクリア端子で、信号の立上がりエツジでその内
容がクリアされる。13はラッチゲートで論理和ゲート
26の信号が入力されている端子は、その信号の立ち下
がりエツジでカウンタ12の出力をタッチし、14の出
力信号へ出力する。
EXE2でNEARコールまたはFARコールが実行さ
れると、CA 、T、 L F信号5またはCA L 
T、 N信号6が1′に変化し、論理和ゲー)10で合
成されプロシージャコール命令が実行されると“1′と
なる信号26が作られる。この信号の立上がりエツジで
カウンタ11はクリアされ、−旦カウンタの出力12が
0になる。その後BCU 3がスタックメモリ空間へフ
ログラムカウンタの内容を一時退避動作させる際に、M
RQ信号7にセーブするワード長に準じた回数分のパル
スを出力する。カウンタ11はこのパルスをカウントア
ツプし、何回メモリアクセスがあったかをカウントする
ことになる。このカウンタの出力は、ラッチ13に入力
され、フロシージャコール命令の終了時点(すなわち、
信号26の立ち下がり)でラッチされる。このラッチ出
力がフラグレジスタに割当てられ、マイクロプロセッサ
内部で読み出せるようになっている。
〔発明の効果〕
以上のような本発明によって、プロシージャコール命令
が実行された。場合、NEARコール、FARコールに
よってフラグレジスタの内容が異なることになる。プロ
シージャ側では、フラグレジスタを参照することによっ
て自分自身がNEARコールで呼出されたのか、FAR
コールによって呼出されたのかを知ることができ、プロ
シージャへの引1しデータの格納されているスタックメ
モリの現在のスタックポインタからの相対位置を知るこ
とができるようになる。すなわち、NEARコールとF
ARコールで同じプログラムを使うことができるように
なるという効果がある。また、第2の実施例では、カウ
ンタのビット長を長くすることによって、スタック空間
へのアクセス回数が3種類以上プロシージャコールをザ
ポートスるマイクロプロセッサにおいて、そのすべてを
識別することができるようになるという効果もある。
【図面の簡単な説明】
第1図は、本発明による一実施例のマイクロフロセッサ
機能ブロック図、第2図は第2の実施例の機能ブロック
図、第3図はプロシージャコール命令の動作を表わした
もので、(A)はプログラムメモリ空間図で(B)はス
タックメモリ空間図、第4図はセクメントとオフセット
によってメモリ管理を行うマイクロプロセッサにおいて
、同一セグメント内のコール命令(NEARコール)を
実行した場合のスタックメモリ空間の使われかた(A)
と異なるセグメントへのコール命令(FARコール)を
実行した場合のスタックメモリ空間の使ワれかた(B)
を表わした図、第5図は従来の(セグメントとオフセッ
トによるメモリ管理を行う)マイクロプロセッサお機能
ブロック図、第6図は従来のデータ受渡しを示す図であ
る。 1・・・・・・マイクロフロセッサ、2・・・・・・マ
イクロプロセッサの命令実行部(EXE)、3・・・・
・・マイクロプロセッサのバス制御部(BCU)、4・
・・・・・フラグレジスタ、5・・・・・・FARコー
ル実行信号線(CALLF信号)、6・・・・・・NE
ARコール実行信号線(CALLN信号)、7・・・・
・・メモリアクセス要求信号線(MRQ信号)、8・・
・・・・RSフリップフロップ、9・・・・・・RSフ
リップフロップ出力信号、10・・・・・・論理和ゲー
ト、11・・・・・・カウンタ、12・・・・・・カウ
ンタ出力信号線、13・・・・・・ラッチ回路、14・
・・・・・ラッチ出力信号線、15・・・・・・プログ
ラムメモリ空間、16・・・・・スタックメモリ2間、
17・・・・・・プロシージャコール命令の格納メモリ
、18・・・・・・フロシージャコール命令の次命令の
格納メモリ、19・・・・・・プロシージャの先頭命令
の格納メモリ、20・・・・・・プロシージャの最終命
令(プロシージャ復帰命令)の格納メモリ、21・・・
・・・処理フロー、22・・・・・・フロシージャコー
ル前/後のスタックポインタ、23・・・・・・プロシ
ージャコール中のスタックポインタ、24・・・・・・
受渡しデータ格納前のスタックポインタ、25・・・・
・・受渡しデータ、26・・・・・・論理和ゲートの出
力信号。 代理人 弁理士  内 原   晋 芽3 回うロクジャコーノ嘩今廊ut (,4)NFAKフール (δ) FARZ丁−ル

Claims (1)

    【特許請求の範囲】
  1. 一時退避メモリへプログラムカウンタ情報をセーブし、
    特定の処理を行わせその処理終了後、呼出したプログラ
    ム部分へ制御を戻すことのできるプロシージャコールお
    よびリターン命令を持ち、かつプロシージャコール命令
    実行時、一時退避メモリへデータ長の異なるプログラム
    カウンタの内容をセーブする2つ以上の命令を持つマイ
    クロプロセッサにおいて、どれだけのデータ長のプログ
    ラムカウンタ情報をセーブしたかを知る為の回路と、そ
    の内容を保持するフラグレジスタを持つことを特徴とす
    るマイクロプロセッサ。
JP23701288A 1988-09-20 1988-09-20 マイクロプロセッサ Pending JPH0283623A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23701288A JPH0283623A (ja) 1988-09-20 1988-09-20 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23701288A JPH0283623A (ja) 1988-09-20 1988-09-20 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH0283623A true JPH0283623A (ja) 1990-03-23

Family

ID=17009080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23701288A Pending JPH0283623A (ja) 1988-09-20 1988-09-20 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH0283623A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0603632A2 (de) * 1992-12-23 1994-06-29 Siemens Aktiengesellschaft Verfahren zur Steuerung einer Prozessoreinrichtung

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0603632A2 (de) * 1992-12-23 1994-06-29 Siemens Aktiengesellschaft Verfahren zur Steuerung einer Prozessoreinrichtung
EP0603632A3 (de) * 1992-12-23 1995-01-04 Siemens Ag Verfahren zur Steuerung einer Prozessoreinrichtung.

Similar Documents

Publication Publication Date Title
KR0138468B1 (ko) 마이크로 컴퓨터
JPH03204737A (ja) 信号処理プロセッサのデバッグ回路
JPH05204709A (ja) プロセッサ
US5615348A (en) Microprocessor having register bank architecture
JPS5911921B2 (ja) 数値制御装置
CN110609705A (zh) 一种提高mcu总线效率的方法、智能终端、存储介质及芯片
JPH0283623A (ja) マイクロプロセッサ
JP2000029690A (ja) デ―タ処理の方法および装置
JP2607319B2 (ja) プログラマブルコントローラ
JP2000029508A (ja) プログラマブルコントローラ
JP2758624B2 (ja) マイクロプログラムの調速方式
JPS6019816B2 (ja) マイクロプログラム制御アダプタ
JP2679603B2 (ja) マイクロコンピュータ
JPS61269736A (ja) デバツグ装置
JPS6149695B2 (ja)
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPH03252728A (ja) マイクロプロセッサ割込み制御方式
JPH10240627A (ja) セクタ管理方法及び装置
JPS59180755A (ja) トレ−ス方式
JPH02287732A (ja) レジスタアドレス生成装置
JPS63113747A (ja) 仮想記憶管理装置
JPH0290228A (ja) マイクロプロセッサ
JPH06332508A (ja) プログラマブルコントローラ
JPH05303493A (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
JPS6326416B2 (ja)