JP3135654B2 - サブルーチン分岐処理方法 - Google Patents

サブルーチン分岐処理方法

Info

Publication number
JP3135654B2
JP3135654B2 JP04006403A JP640392A JP3135654B2 JP 3135654 B2 JP3135654 B2 JP 3135654B2 JP 04006403 A JP04006403 A JP 04006403A JP 640392 A JP640392 A JP 640392A JP 3135654 B2 JP3135654 B2 JP 3135654B2
Authority
JP
Japan
Prior art keywords
subroutine
task
processing
branch
saved
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
JP04006403A
Other languages
English (en)
Other versions
JPH0628188A (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.)
Murata Machinery Ltd
Original Assignee
Murata Machinery 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 Murata Machinery Ltd filed Critical Murata Machinery Ltd
Priority to JP04006403A priority Critical patent/JP3135654B2/ja
Publication of JPH0628188A publication Critical patent/JPH0628188A/ja
Application granted granted Critical
Publication of JP3135654B2 publication Critical patent/JP3135654B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、サブルーチン分岐
処理方法に係り、更に詳しくは、時分割的に切換実行さ
れるタスクから管理プログラムが付加されたサブルーチ
ン(以下、単にサブルーチンと呼ぶ)に分岐したとき
に、戻りアドレスに加えてCPUのステータスデータを
待避させるようにしたことに特徴を有したものに関す
る。
【0002】
【従来の技術】送信原稿の画像の読込処理や、画像メモ
リに格納した画像データを電話回線へ送出させる処理な
ど、実行すべき複数の処理を、CPUで時分割的に並行
処理させるようにしたマルチタスク型ファクシミリ装置
が開発され使用されるようになってきた。このようなフ
ァクシミリ装置では、図3に示したように、各タスクの
優先処理順位を管理するリアルタイムモニタ(管理プロ
グラム)によって、複数のタスク1〜4の処理の区切り
(←)毎に、最優先のタスクの処理に分岐させながら複
数のタスクを並行処理させるようになっており、処理の
区切りは、ハードウェア割込、サブルーチンコールなど
である。
【0003】ところで、CPUに対してハードウェア割
込が生じたときには、図4に示したように、割込が生じ
た時点のプログラムカウンタの示すアドレス(セグメン
トアドレス2500Hとオフセットアドレス0102H
で成るアドレス)の次のアドレスを戻りアドレスとして
スタックメモリ領域(メインメモリ内に確保されたスタ
ック領域)に待避させるとともに、割込が生じた時点の
CPUのプロセッサステータスレジスタの内容をスタッ
クメモリ領域に待避させ、スタックポインタSPの指示
値をデータを格納した最後のアドレスSP−6にセット
してから、割込番号に応じた割込処理ルーチンに分岐し
て割込処理を実行する。この割込処理が終了すると、C
PUでは、先にスタックメモリに待避した戻りアドレス
を読み出してプログラムカウンタに戻し、プロセッサス
テータスデータをプロセッサステータスレジスタに戻し
て元のメインルーチンを継続実行するようになってい
る。
【0004】従って、図5に示したように、例えば、タ
スク1の実行中にハードウェア割込がかかって割込処理
ルーチンに分岐し、この割込処理ルーチンが終了した後
に、リアルタイムモニタによって優先するタスク2に分
岐し、タスク2の実行中にハードウェア割込がかかって
割込処理ルーチンを実行した後に、再びタスク1に戻っ
たような場合でも、スタックに待避している戻りアドレ
スとプロセッサステータスデータとを読み出して元のタ
スク1のメインルーチンを正常に継続実行させることが
できる。
【0005】一方、メインルーチン上で例えばCALL
命令などによってサブルーチンコールした場合には、図
6に示したように、CPUではCALL命令によって、
戻りアドレス2500H:0105Hをスタックメモリ
に待避しただけで、CALL命令で指定されたアドレス
に分岐して処理を実行する。このとき、ハードウェア割
込時のようにプロセッサステータスデータはスタックメ
モリに待避されない。サブルーチン処理が終了すると、
例えばRET命令(リターン命令)が実行され、先にス
タックメモリに待避した戻りアドレスをCPUのプログ
ラムカウンタに戻して、もとのアドレスに戻り、実行を
継続するようになっている。
【0006】従って、図7に示したように、タスク1の
実行中にサブルーチンがコールされてサブルーチン処理
に分岐し、このサブルーチン処理が終了した後に、リア
ルタイムモニタによって優先するタスク2に分岐し、タ
スク2の実行中にハードウェア割込がかかって割込処理
ルーチンを実行した後に、再びタスク1に戻るようなマ
ルチタスク処理が実行されると、スタックメモリには戻
りアドレスしか待避していないためにプロセッサのステ
ータスをステータスレジスタに復帰させることができ
ず、タスク1のメインルーチンを正常に継続実行できな
かった。
【0007】このため、マルチタスク処理を行なう場合
には、通常のサブルーチンコールによってサブルーチン
実行後に他のタスクに分岐させるという制御を行なうよ
うな管理プログラム構成を採ることができず、サブルー
チン実行後は必ず元のタスクに戻さなければならない。
あるいは、サブルーチンコールを行なったタスクへは通
常のリターン命令によって復帰し、ハードウェア割込に
よって中断したタスクへはハードウェア割込からのリタ
ーン命令によって復帰するように構成することも可能で
あるが、個々のタスクがどのような呼出方法を行なった
かを常に管理し、復帰方法を選択しなければならない。
このように、従来のサブルーチンコールを用いたサブル
ーチンの分岐方法では、プログラム構成を複雑なものに
し、プログラムサイズが増大する要因となっていた。
【0008】
【発明が解決しようとする課題】本発明は上記事情に鑑
みて提案されるもので、サブルーチンの処理が終了した
後に、元のタスクに戻らずに他のタスクに分岐させた場
合であっても、元のタスクに戻ったときには処理を継続
して実行できるようにし、これによって、プログラム構
成を簡略化できるようにしたサブルーチンの分岐処理方
法を提供することを目的としている。
【0009】
【課題を解決するための手段】上記目的を達成するため
に提案される本発明方法は、管理プログラムによって複
数のタスクを時分割的に切換実行するマルチタスク型の
処理装置に用いられ、前記管理プログラムが付加された
サブルーチンを割り込みおよび前記タスクからのサブル
ーチン呼出によって実行する際のサブルーチン分岐処理
方法において、前記タスクの実行途中で前記サブルーチ
ン呼出によって前記サブルーチンに分岐した際に戻りア
ドレスがスタックメモリに待避され、分岐した前記サブ
ルーチンの冒頭において、その分岐時点におけるCPU
のステータスデータを前記スタックメモリに待避して、
前記タスクへの復帰時には前記スタックメモリに待避さ
れているステータスデータおよび戻りアドレスをCPU
にセットする割込処理リターン命令によって復帰可能に
構成したことを特徴とするものである。
【0010】
【作用】本発明方法では、メインルーチンから管理プロ
グラムが付加されたサブルーチンに分岐したときには、
分岐したサブルーチンの冒頭において、分岐時点におけ
るCPUのステータスデータをスタックメモリに待避さ
せる。このため、サブルーチンをコールしたときには、
ハードウェア割込の場合と同様に、戻りアドレスに加え
てステータスデータをスタックメモリに待避させるの
で、ハードウェア割込で使用される割込処理リターン命
令によって元のタスクに復帰させることができる。一
方、サブルーチンを実行した後に、戻りアドレスに戻ら
ずに管理プログラムによって他のタスクに分岐した場合
でも、優先順位等によって元のタスクに戻るときには、
戻りアドレスとステータスデータとを復帰させて正常動
作を継続させることができる。
【0011】
【実施例】以下に、図面を参照して本発明の実施例を説
明する。図1は、マルチタスク型ファクシミリ装置に適
用した本発明のサブルーチン分岐処理方法を模式的に示
したもので、その概略は、メインルーチンM上にCAL
L命令が指示されているときには、戻りアドレスRA
(2500H:0105H)をスタックメモリSM(ス
タック領域)に待避した後に分岐先アドレスCA(25
00H:4530H)のサブルーチンSRに分岐し、サ
ブルーチンSRの冒頭に記載されたスタック処理STに
よって、プロセッサステータスレジスタに格納されてい
るステータスデータPSDをスタックメモリSMに追加
して待避させるようになっている。尚、ステータスデー
タPSDとは、CPUの有するプロセッサステータスレ
ジスタに格納されたデータであり、信号処理過程におけ
る各種のフラグやCPUの制御モードなどを示すデータ
が含まれている。
【0012】このような本発明の詳細な処理方法を図に
従って説明する。メインルーチンM上でCALL命令
が実行されると、CPUでは、CALL命令によって指
示された分岐先アドレスCAの格納された次のアドレス
データ(2500H:0105H)をスタックメモリの
(SP−1)〜(SP−4)で示されるアドレスに1バ
イトづつ格納し、この後に、分岐先アドレス(2500
H:4530H)に分岐する。CPUでは、分岐先の
サブルーチンの冒頭のスタック処理STによって、ま
ず、スタックポインタで指示される(SP−4)〜(S
P−1)のアドレスに格納されている戻りアドレス(2
500H:0105H)をスタックポインタ(SP−
6)〜(SP−3)のアドレスにシフトし、この後、プ
ロセッサステータスレジスタの内容(2バイトデータ)
をスタックポインタ(SP−1),(SP−2)で示さ
れるアドレスのスタックメモリSMに格納する。この
後、CPUでは、サブルーチン処理を順次実行した後、
サブルーチンの最後に付加されているリアルタイムモニ
タによる優先順位判別処理を実行し、元のタスクが最優
先であると判別したときには、IRET命令(ハードウ
ェア割込のリターン命令)によって、スタックポインタ
で示される(SP−6)〜(SP−3)のアドレスに記
載された戻りアドレスをプログラムカウンタ(不図示)
に格納し、(SP−2),(SP−1)のアドレスに記
載されたプロセッサステータスデータPSDをプロセッ
サステータスレジスタに復帰させてから、元のメインル
ーチンMを継続して実行する。しかし、サブルーチン
SRの実行後、リアルタイムモニタによって一旦他のタ
スクに分岐し、その後、リアルタイムモニタによって元
のタスクに戻ってくるときには、スタックポインタで示
されたアドレス(SP−6)から順に戻りアドレスとプ
ロセッサステータスデータとを読み出して元のタスクを
継続して実行する。
【0013】このように、本発明のサブルーチン分岐処
理方法によれば、サブルーチンに分岐した時点で、ハー
ドウェア割込処理の場合と同様に、戻りアドレスとステ
ータスデータとをスタックに待避させるので、サブルー
チン実行後に元のタスクに戻る場合には、ハードウェア
割込処理の場合に用いられるリターン命令(IRET)
を共通に使用することが可能になるとともに、サブルー
チン実行後に、他のタスクに分岐しても、元のタスクに
戻ってきたときにはタスクを正常に継続させることが可
能となる。
【0014】図2は、本発明方法を適用したマルチタス
ク処理の一例を示したもので、タスク1の実行中にコー
ル命令によってサブルーチンに分岐し、上述したスタッ
ク処理を含むサブルーチン処理を実行した後にリアルタ
イムモニタによって他のタスク2に分岐し、更に、タス
ク2の処理を実行中にハードウェア割込がかかり、割込
処理ルーチンを実行後にリアルタイムモニタで再度タス
ク1に戻ってきたような場合であっても、タスク1のス
タックに待避した戻りアドレスとプロセッサステータス
データとを読み出して元のタスク処理を正常に継続実行
させることができる。
【0015】尚、上記説明では、本発明方法をマルチタ
スク型ファクシミリ装置に適用した場合を例にあげて述
べたが、本発明方法は、自動化ラインに使用されるロボ
ットなどの産業機器、家庭電化製品、通信機器など、マ
ルチタスク型の処理装置に幅広く適用することが可能で
ある。
【0016】また、上記説明では、リアルタイムモニタ
が付加されたサブルーチンの冒頭に、スタック操作処理
のプログラムを付加させるものとして述べているが、こ
の付加プログラム自体を更に通常のサブルーチンとする
こともできる。
【0017】更に、CPU自体に、戻りアドレスとプロ
グラムステータスレジスタのデータとをスタックに待避
させてからサブルーチンに分岐させる強力なコマンドを
設けることによって、一層合理化されたプログラム形態
とすることも可能である。
【0018】
【発明の効果】以上の説明から理解されるように、本発
明のサブルーチン分岐処理方法によれば、サブルーチン
コール時にスタックに待避される戻りアドレスに加え
て、ステータスデータをも待避させるので、ハードウェ
ア割込で使用されるリターン命令を共通に用いて元のタ
スクにリターンさせることができるとともに、マルチタ
スク処理によって、サブルーチンを実行した後に、元の
タスクに戻らずに他のタスクに分岐した場合でも、元の
タスクに戻ったときには、戻りアドレスとステータスデ
ータを復帰させて動作を継続させることが可能となり、
効率のよいプログラム構成を採ることが可能となる。
【図面の簡単な説明】
【図1】本発明のサブルーチン分岐処理方法を説明する
模式図である。
【図2】本発明方法をマルチタスク型ファクシミリ装置
に適用した場合の動作例図である。
【図3】マルチタスク処理の概念図である。
【図4】ハードウェア割込処理の説明図である。
【図5】ハードウェア割込処理を用いてマルチタスク処
理を実行した場合の動作例図である。
【図6】従来のサブルーチン分岐処理の説明図である。
【図7】従来のサブルーチン分岐処理を用いてマルチタ
スク処理を実行した場合の動作例図である。
【符号の説明】
M・・・メインルーチン RM・・・管理プログラム SR・・・サブルーチン PSD・・・ステータスデータ SM・・・スタックメモリ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭58−43043(JP,A) 飯塚 肇 著、「現代計算機方式論 〔▲I▼〕命令セットアーキテクチ ャ」、オーム社・刊(昭和60年7月30日 初版発行)、P.145

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 管理プログラムによって複数のタスクを
    時分割的に切換実行するマルチタスク型の処理装置に用
    いられ、前記管理プログラムが付加されたサブルーチン
    を割り込みおよび前記タスクからのサブルーチン呼出に
    よって実行する際のサブルーチン分岐処理方法におい
    て、前記タスクの実行途中で前記サブルーチン呼出によ
    って前記サブルーチンに分岐した際に戻りアドレスがス
    タックメモリに待避され、分岐した前記サブルーチンの
    冒頭において、その分岐時点におけるCPUのステータ
    スデータを前記スタックメモリに待避して、復帰時には
    前記スタックメモリに待避されているステータスデータ
    および戻りアドレスをCPUにセットする割込処理リタ
    ーン命令によって復帰可能に構成したことを特徴とする
    サブルーチンの分岐処理方法。
JP04006403A 1992-01-17 1992-01-17 サブルーチン分岐処理方法 Expired - Fee Related JP3135654B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04006403A JP3135654B2 (ja) 1992-01-17 1992-01-17 サブルーチン分岐処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04006403A JP3135654B2 (ja) 1992-01-17 1992-01-17 サブルーチン分岐処理方法

Publications (2)

Publication Number Publication Date
JPH0628188A JPH0628188A (ja) 1994-02-04
JP3135654B2 true JP3135654B2 (ja) 2001-02-19

Family

ID=11637406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04006403A Expired - Fee Related JP3135654B2 (ja) 1992-01-17 1992-01-17 サブルーチン分岐処理方法

Country Status (1)

Country Link
JP (1) JP3135654B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905693B2 (ja) * 2007-03-16 2012-03-28 ペンタックスリコーイメージング株式会社 メモリを備えた交換レンズ
JP5814856B2 (ja) * 2012-05-09 2015-11-17 株式会社ソフイア 遊技機
JP6353421B2 (ja) * 2015-09-18 2018-07-04 株式会社ソフイア 遊技機

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
飯塚 肇 著、「現代計算機方式論〔▲I▼〕命令セットアーキテクチャ」、オーム社・刊(昭和60年7月30日初版発行)、P.145

Also Published As

Publication number Publication date
JPH0628188A (ja) 1994-02-04

Similar Documents

Publication Publication Date Title
EP0087978A2 (en) Information processing unit
JPH08305585A (ja) 割込制御装置
JPH0454255B2 (ja)
JP3201786B2 (ja) ディジタル信号処理システムの制御方法
JP3970609B2 (ja) プロセッサシステム
JPH02230455A (ja) 外部記憶装置の割込み制御方式
CA1217565A (en) Vector interrupt system and method
JP3135654B2 (ja) サブルーチン分岐処理方法
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
JP2877095B2 (ja) マルチプロセッサシステム
JP2677458B2 (ja) システムコール実行装置
JPS6290728A (ja) 割込処理方法
JPH0414376B2 (ja)
JPH0895798A (ja) データ処理装置
JP2601359B2 (ja) 並行処理マイクロプロセッサ
JP3184380B2 (ja) 割り込み制御方法及びそれを実現するマルチタスクシステム
JPS6225333A (ja) マイクロコンピユ−タ
JP3288750B2 (ja) ロボット制御装置
JPS60105050A (ja) パイプライン制御方式
JPH04162135A (ja) データ処理装置
JPH0544689B2 (ja)
JPH0319037A (ja) タスク実行時間制御方式
JPS6120139A (ja) 割込み制御方式
JPS62296236A (ja) マイクロプロセツサの割り込み処理装置
JP2001209548A (ja) マイクロコンピュータシステム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960618

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees