JPH01292432A - メモリバンクのサブルーチン実行方式 - Google Patents
メモリバンクのサブルーチン実行方式Info
- Publication number
- JPH01292432A JPH01292432A JP63122313A JP12231388A JPH01292432A JP H01292432 A JPH01292432 A JP H01292432A JP 63122313 A JP63122313 A JP 63122313A JP 12231388 A JP12231388 A JP 12231388A JP H01292432 A JPH01292432 A JP H01292432A
- Authority
- JP
- Japan
- Prior art keywords
- bank
- memory
- subroutine
- switching
- address
- 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
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 4
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(イ)産業上の利用分野
本発明は、処理プログラムを記憶する複数のメモリバン
クを備えたシステムにおいて、1メモリバンクのメイン
ルーチンから他のメモリバンクのサブルーチンを呼出し
実行するメモリバンクのサブルーチン実行方式に関する
。
クを備えたシステムにおいて、1メモリバンクのメイン
ルーチンから他のメモリバンクのサブルーチンを呼出し
実行するメモリバンクのサブルーチン実行方式に関する
。
(ロ)従来の技術
中央処理装置(以下、CPUと呼ぶ)のメモリ領域を拡
張する方式として、−殻内にメモリバンク切替方式が用
いられており、これらメモリバンク内に異なる処理プロ
グラムを記憶することも従来より行われている。そして
、これらメモリバンクの切替は、通常、メモリバンク外
のメインメモリ上の共通エリアに、メモリバンク切替用
の制御プログラムを用意し、この制御プログラムによっ
て実行していた。
張する方式として、−殻内にメモリバンク切替方式が用
いられており、これらメモリバンク内に異なる処理プロ
グラムを記憶することも従来より行われている。そして
、これらメモリバンクの切替は、通常、メモリバンク外
のメインメモリ上の共通エリアに、メモリバンク切替用
の制御プログラムを用意し、この制御プログラムによっ
て実行していた。
ところが、プログラムエリアに制約があって、メインメ
モリ上にこのような共通エリアをとれないシステムでは
、メモリバンク内でバンクの切替制御を実行しなくては
ならない。そこで、従来は、例えば、特開昭62−12
0543号公報の第3図に開示されているように、一方
のメモリバンクのメインルーチンにおいて、バンクを切
替ようとするアドレスXでバンク切替命令を実行し、他
方のメモリバンクの次のアドレスX+1もしくはX+2
へ実行を移すという方式を採用していた。
モリ上にこのような共通エリアをとれないシステムでは
、メモリバンク内でバンクの切替制御を実行しなくては
ならない。そこで、従来は、例えば、特開昭62−12
0543号公報の第3図に開示されているように、一方
のメモリバンクのメインルーチンにおいて、バンクを切
替ようとするアドレスXでバンク切替命令を実行し、他
方のメモリバンクの次のアドレスX+1もしくはX+2
へ実行を移すという方式を採用していた。
(ハ)発明が解決しようとする課題
3以上の複数のメモリバンクを備えたシステムにおいて
、上記公報第3図に開示されている切替方式を用い、1
メモリバンクのメインルーチンから別のメモリバンクの
サブルーチンを呼出し実行しようとすると、プログラム
を開発する際、メインルーチンのバンク切替アドレスと
サブルーチンの先頭アドレスとを、メインルーチンがサ
ブルーチンを呼出そうとする複数箇所で、−々アビ93
合わせを行わなければならなくなり、プログラム開発に
多大の時間を要すると共に、所望のプログラムの開発が
困難となる。
、上記公報第3図に開示されている切替方式を用い、1
メモリバンクのメインルーチンから別のメモリバンクの
サブルーチンを呼出し実行しようとすると、プログラム
を開発する際、メインルーチンのバンク切替アドレスと
サブルーチンの先頭アドレスとを、メインルーチンがサ
ブルーチンを呼出そうとする複数箇所で、−々アビ93
合わせを行わなければならなくなり、プログラム開発に
多大の時間を要すると共に、所望のプログラムの開発が
困難となる。
しかしながら、メモリバンク内で使用するサブルーチン
を単に、各々、自己のメモリバンク内に全て記憶させよ
うとすれば、必要とするメモリ容量が増大し、制約され
たプログラムメモリエリア内には所望のプログラムを格
納しきれなくなってしまう。
を単に、各々、自己のメモリバンク内に全て記憶させよ
うとすれば、必要とするメモリ容量が増大し、制約され
たプログラムメモリエリア内には所望のプログラムを格
納しきれなくなってしまう。
(ニ)課題を解決するための手段
本発明は、処理プログラムを記憶する複数のメモリバン
クを備え、該複数のメモリバンクの特定の同一アドレス
エリアにバンク切替制御プログラムを記憶し、1メモリ
バンクのメインルーチンで、実行しようとするサブルー
チンが記憶きれた他のメモリバンクを示す飛先バンク情
報及び飛先アドレスをセーブし、前記バンク切替制御プ
ログラムを呼出すようにすると共に、該バンク切替制御
プログラムにおいて、リターンバンク情報をセーブ後前
記飛先バンク情報のメモリバンクへのバンク切替を行い
、切替後前記飛先アドレスから始まるサブルーチンを呼
出して該サブルーチンを実行し、実行後、前記リターン
バンク情報のメモリバンクへのバンク切替を行い、切替
後復帰命令の実行により前記バンク切替制御プログラム
から前記メインルーチンへ復帰するようにして、上記課
題を解決するものである。
クを備え、該複数のメモリバンクの特定の同一アドレス
エリアにバンク切替制御プログラムを記憶し、1メモリ
バンクのメインルーチンで、実行しようとするサブルー
チンが記憶きれた他のメモリバンクを示す飛先バンク情
報及び飛先アドレスをセーブし、前記バンク切替制御プ
ログラムを呼出すようにすると共に、該バンク切替制御
プログラムにおいて、リターンバンク情報をセーブ後前
記飛先バンク情報のメモリバンクへのバンク切替を行い
、切替後前記飛先アドレスから始まるサブルーチンを呼
出して該サブルーチンを実行し、実行後、前記リターン
バンク情報のメモリバンクへのバンク切替を行い、切替
後復帰命令の実行により前記バンク切替制御プログラム
から前記メインルーチンへ復帰するようにして、上記課
題を解決するものである。
(ネ)作用
本発明では、複数のメモリバンクの特定の同一アドレス
エリアに、リターンバンク情報のセーブ、セーブされた
飛先バンク情報のメモリバンクへのバンク切替、セーブ
された飛先アドレスから始まるサブルーチンの呼出し、
サブルーチン実行後セーブしたリターンバンク情報のメ
モリバンクへのバンク切替、バンク切替後のリターン命
令より成るバンク切替制御プログラムを記憶しているの
で、他のメモリバンクのサブルーチンを実行するには、
メモリバンクのメインルーチンで、実行しようとするサ
ブルーチンが記憶されているメモリバンクを示す飛先バ
ンク情報及び飛先アドレスをセーブするようにするだけ
で良い。
エリアに、リターンバンク情報のセーブ、セーブされた
飛先バンク情報のメモリバンクへのバンク切替、セーブ
された飛先アドレスから始まるサブルーチンの呼出し、
サブルーチン実行後セーブしたリターンバンク情報のメ
モリバンクへのバンク切替、バンク切替後のリターン命
令より成るバンク切替制御プログラムを記憶しているの
で、他のメモリバンクのサブルーチンを実行するには、
メモリバンクのメインルーチンで、実行しようとするサ
ブルーチンが記憶されているメモリバンクを示す飛先バ
ンク情報及び飛先アドレスをセーブするようにするだけ
で良い。
(へ)実施例
第2図は、本発明の実施例を実現するためのハードウェ
ア構成を示すブロック図であり、(1)はインテル社製
8086のCPU、(2)はアドレスバス、(3)はデ
ータバス、(4)、 (5)、 (6)は第1゜第2.
第3の各処理プログラムを各々記憶するメモリバンク1
,2.3としてのROM、(7)は種々のデータ及び外
部装置からロードされるユーザープログラム等を記憶す
るためのメインメモリとしてのRAM、(8)はCPU
(1)が後述のバンク切替命令を実行することにより、
バンクを指定するバンク指定データがセットされるバン
クレジスタ、(9)はバンクレジスタ(8)の内容に応
じて、いずれから一つのメモリバンクを選択するデコー
ダであって、ハードウェア構成は一般的な構成である。
ア構成を示すブロック図であり、(1)はインテル社製
8086のCPU、(2)はアドレスバス、(3)はデ
ータバス、(4)、 (5)、 (6)は第1゜第2.
第3の各処理プログラムを各々記憶するメモリバンク1
,2.3としてのROM、(7)は種々のデータ及び外
部装置からロードされるユーザープログラム等を記憶す
るためのメインメモリとしてのRAM、(8)はCPU
(1)が後述のバンク切替命令を実行することにより、
バンクを指定するバンク指定データがセットされるバン
クレジスタ、(9)はバンクレジスタ(8)の内容に応
じて、いずれから一つのメモリバンクを選択するデコー
ダであって、ハードウェア構成は一般的な構成である。
尚、同−ROMチップを用いて2以上のメモリバンクを
構成するときは、特願昭61−252195号公報に開
示されている構成でも良く、これら構成は本願の要旨と
は関係しないものである。
構成するときは、特願昭61−252195号公報に開
示されている構成でも良く、これら構成は本願の要旨と
は関係しないものである。
第1図は、メモリバンク(4)〜(6)の各プログラム
内容を示す図であり、各メモリバンクの特定の同一アド
レスエリア(10)、即ち、アドレス0〜S−1に、バ
ンク切替制御プログラム(以下、バンク切替マネジャー
と呼ぶ)を記憶し、該エリア(10)以降の処理プログ
ラムエリア(11〉に、各々、異なる処理プログラムを
記憶している。
内容を示す図であり、各メモリバンクの特定の同一アド
レスエリア(10)、即ち、アドレス0〜S−1に、バ
ンク切替制御プログラム(以下、バンク切替マネジャー
と呼ぶ)を記憶し、該エリア(10)以降の処理プログ
ラムエリア(11〉に、各々、異なる処理プログラムを
記憶している。
バンク切替マネジャーは、大別して第1〜第4の4つの
プログラムより成り、各々、アドレス0〜P−1、P−
Q−1、Q−R−1、RNS−1に記憶されている。第
2プログラムは、飛先バンクへ実際にバンクを切替える
ための実行用で、NOP命令とJMP Q命令の組合
せと、自己のバンクから他のいずれか一方のバンクへ切
替えるための2つのバンク切替命令とより構成され、各
メモリバンク1,2.3においては、自己のバンクへの
切替命令と同一アドレスにNOP命令が記憶されている
。又、第4プログラムは、リターンバンクへ実際にバン
クを切替えるためのリターン用で、第2プログラムとほ
ぼ同一構成で、JMPQ命令の代わりにRET命令が記
憶されている。
プログラムより成り、各々、アドレス0〜P−1、P−
Q−1、Q−R−1、RNS−1に記憶されている。第
2プログラムは、飛先バンクへ実際にバンクを切替える
ための実行用で、NOP命令とJMP Q命令の組合
せと、自己のバンクから他のいずれか一方のバンクへ切
替えるための2つのバンク切替命令とより構成され、各
メモリバンク1,2.3においては、自己のバンクへの
切替命令と同一アドレスにNOP命令が記憶されている
。又、第4プログラムは、リターンバンクへ実際にバン
クを切替えるためのリターン用で、第2プログラムとほ
ぼ同一構成で、JMPQ命令の代わりにRET命令が記
憶されている。
第1プログラムは、各バンク共に、自己のバンク番号を
リターンバンク番号として所定のレジスタ、例えばAH
レジスタにセーブする命令と、所定のALXレジスタセ
ーブされた飛先バンク番号を判定して第2プログラムの
対応するアドレスヘジヤンプする命令より成る。更に、
第4プログラムは各バンク共通で、Bxレジスタにセー
ブされた飛先アドレスから始まるサブルーチンを呼出す
命令と、AHレジスタにセーブされたリターンバンク番
号を判定して第4プログラムの対応するアドレスヘジャ
ンプする命令より成る。
リターンバンク番号として所定のレジスタ、例えばAH
レジスタにセーブする命令と、所定のALXレジスタセ
ーブされた飛先バンク番号を判定して第2プログラムの
対応するアドレスヘジヤンプする命令より成る。更に、
第4プログラムは各バンク共通で、Bxレジスタにセー
ブされた飛先アドレスから始まるサブルーチンを呼出す
命令と、AHレジスタにセーブされたリターンバンク番
号を判定して第4プログラムの対応するアドレスヘジャ
ンプする命令より成る。
そこで、例えば、メモリバンク3(6)のアドレスY及
びWから各々サブルーチン5UB1及び5UB2が記憶
されているときに、メモリバンク1(4)のメインルー
チンで、サブルーチンSUB 1を呼出すには、第1図
に示すように、サブルーチン5UB1を呼出そうとする
アドレスXからX+2に、順に、サブルーチン5UBI
が記憶きれたメモリバンクを示す飛先バンク番号BAN
KN0゜3を所定のkLXレジスタセーブするためのM
0■命令と、サブルーチン5UBIのアドレスYを飛先
アドレスとしてBXレジスタにセーブするためのMOV
命令と、アドレス0から始まるバンク切替マネジ〜−を
呼出すCALL命令とを記憶するのである。ここで、注
意すべきは、アドレスXはサブルーチン5UBIのアド
レスYとは無関係であることである。
びWから各々サブルーチン5UB1及び5UB2が記憶
されているときに、メモリバンク1(4)のメインルー
チンで、サブルーチンSUB 1を呼出すには、第1図
に示すように、サブルーチン5UB1を呼出そうとする
アドレスXからX+2に、順に、サブルーチン5UBI
が記憶きれたメモリバンクを示す飛先バンク番号BAN
KN0゜3を所定のkLXレジスタセーブするためのM
0■命令と、サブルーチン5UBIのアドレスYを飛先
アドレスとしてBXレジスタにセーブするためのMOV
命令と、アドレス0から始まるバンク切替マネジ〜−を
呼出すCALL命令とを記憶するのである。ここで、注
意すべきは、アドレスXはサブルーチン5UBIのアド
レスYとは無関係であることである。
以上の如くプログラムが記憶されているので、メモリバ
ンク1のメインルーチンにおいて、飛先バンク番号BA
NKN0.3をALXレジスタ、そして、飛先アドレス
YをBXレジスタにセーブ後、メモリバンク1のバンク
切替マネジャーが呼出きれ、このマネジャーはおいて、
先ず、自己のバンク番号NO61がリターンバンク番号
としてAHレジスタにセーブされる。その後、ALXレ
ジスタセーブされた飛先バンクNO1が判定きれて第2
プログラムの対応するアドレスへジャンプすり3へのバ
ンク切替が実行される。メモリバンク3では、NOP命
令の後にJMP Q命令が記憶されているので、メモリ
バンク3への切替後、BXレジスタに記憶されたアドレ
スYで始まるサブルーチン5UB1が呼出されて実行さ
れることと已 なる。実行後、R4tT命令によってAHレジスタにセ
ーブきれたリターンバンクNO1の判定に移りこの場合
、リターンバンク番号がBANKNo、1なので、バン
ク1リターン用ヘジヤンブし、メモリバンク1へのバン
ク切替が実行される。そして、バンク切替後、メモリバ
ンク1のRET命令により、メモリバンク1のメインル
ーチンへ復帰する。
ンク1のメインルーチンにおいて、飛先バンク番号BA
NKN0.3をALXレジスタ、そして、飛先アドレス
YをBXレジスタにセーブ後、メモリバンク1のバンク
切替マネジャーが呼出きれ、このマネジャーはおいて、
先ず、自己のバンク番号NO61がリターンバンク番号
としてAHレジスタにセーブされる。その後、ALXレ
ジスタセーブされた飛先バンクNO1が判定きれて第2
プログラムの対応するアドレスへジャンプすり3へのバ
ンク切替が実行される。メモリバンク3では、NOP命
令の後にJMP Q命令が記憶されているので、メモリ
バンク3への切替後、BXレジスタに記憶されたアドレ
スYで始まるサブルーチン5UB1が呼出されて実行さ
れることと已 なる。実行後、R4tT命令によってAHレジスタにセ
ーブきれたリターンバンクNO1の判定に移りこの場合
、リターンバンク番号がBANKNo、1なので、バン
ク1リターン用ヘジヤンブし、メモリバンク1へのバン
ク切替が実行される。そして、バンク切替後、メモリバ
ンク1のRET命令により、メモリバンク1のメインル
ーチンへ復帰する。
尚、サブルーチン5UB2を呼出す場合は、アドレスX
+1のMOV命令でBXレジスタに5UB2のアドレス
Wをセーブするようにするだけで良い。
+1のMOV命令でBXレジスタに5UB2のアドレス
Wをセーブするようにするだけで良い。
ところで、第1図に示す例は、メモリバンク1のメイン
ルーチンからメモリバンク3のサブルーチンを呼出し実
行する例について説明したが、他のいずれかのメモリバ
ンクのメインルーチンから、それ以外のメモリバンクの
サブルーチンを呼出すことも、当然可能である。
ルーチンからメモリバンク3のサブルーチンを呼出し実
行する例について説明したが、他のいずれかのメモリバ
ンクのメインルーチンから、それ以外のメモリバンクの
サブルーチンを呼出すことも、当然可能である。
(ト)発明の効果
本発明に依れば、3以上の複数のメモリバンクを備えた
システムにおいて、任意のメモリバンクのサブルーチン
を、任意のメモリバンクのメインルーチンから呼出し実
行することができる。しかも、メインルーチンとサブル
ーチンとの間で面倒なアドレス合わせが不要となり、プ
ログラム開発の作業効率が向上する。
システムにおいて、任意のメモリバンクのサブルーチン
を、任意のメモリバンクのメインルーチンから呼出し実
行することができる。しかも、メインルーチンとサブル
ーチンとの間で面倒なアドレス合わせが不要となり、プ
ログラム開発の作業効率が向上する。
更に、特定のアドレスエリア内で常にバンク切替が実行
できるので、切替を行うためのプログラムエリアを削減
できる。
できるので、切替を行うためのプログラムエリアを削減
できる。
第1図は本発明の実施例のプログラム内容を示す説明図
、第2図は本実施例のハードウェア構成を示すブロック
図である。 (1>・・・CPU、 (2)・・・アドレスバス、
(3)・・・データバス、(4)(5)(6)・・・メ
モリバンク、(7)・・・RAMい (8)・・・バン
クレジスタ、(9)・・・デコーダ。
、第2図は本実施例のハードウェア構成を示すブロック
図である。 (1>・・・CPU、 (2)・・・アドレスバス、
(3)・・・データバス、(4)(5)(6)・・・メ
モリバンク、(7)・・・RAMい (8)・・・バン
クレジスタ、(9)・・・デコーダ。
Claims (1)
- (1)処理プログラムを記憶する複数のメモリバンクを
備え、該複数のメモリバンクの特定の同一アドレスエリ
アにバンク切替制御プログラムを記憶し、1メモリバン
クのメインルーチンで、実行しようとするサブルーチン
が記憶された他のメモリバンクを示す飛先バンク情報及
び飛先アドレスをセーブし、前記バンク切替制御プログ
ラムを呼出すようにすると共に、該バンク切替制御プロ
グラムにおいて、リターンバンク情報をセーブ後前記飛
先バンク情報のメモリバンクへのバンク切替を行い、切
替後前記飛先アドレスから始まるサブルーチンを呼出し
て該サブルーチンを実行し、実行後、前記リターンバン
ク情報のメモリバンクへのバンク切替を行い、切替後復
帰命令の実行により前記バンク切替制御プログラムから
前記メインルーチンへ復帰することを特徴としたメモリ
バンクのサブルーチン実行方式。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63122313A JPH01292432A (ja) | 1988-05-19 | 1988-05-19 | メモリバンクのサブルーチン実行方式 |
| US07/313,677 US5146581A (en) | 1988-02-24 | 1989-02-22 | Subprogram executing data processing system having bank switching control storing in the same address area in each of memory banks |
| DE68924719T DE68924719T2 (de) | 1988-02-24 | 1989-02-24 | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. |
| EP89103296A EP0330226B1 (en) | 1988-02-24 | 1989-02-24 | Apparatus of and method for executing subprogram in bank switching data processing system |
| KR1019890002294A KR920006614B1 (ko) | 1988-02-24 | 1989-02-24 | 뱅크스위칭 방식의 데이터 처리 시스템에 있어서의 서브프로그램장치 및 그 방법 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63122313A JPH01292432A (ja) | 1988-05-19 | 1988-05-19 | メモリバンクのサブルーチン実行方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01292432A true JPH01292432A (ja) | 1989-11-24 |
Family
ID=14832862
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63122313A Pending JPH01292432A (ja) | 1988-02-24 | 1988-05-19 | メモリバンクのサブルーチン実行方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01292432A (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5663657A (en) * | 1979-10-30 | 1981-05-30 | Fujitsu Ltd | Memory switching system |
| JPS62297954A (ja) * | 1986-06-18 | 1987-12-25 | Toshiba Corp | メモリ制御方式 |
-
1988
- 1988-05-19 JP JP63122313A patent/JPH01292432A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5663657A (en) * | 1979-10-30 | 1981-05-30 | Fujitsu Ltd | Memory switching system |
| JPS62297954A (ja) * | 1986-06-18 | 1987-12-25 | Toshiba Corp | メモリ制御方式 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3776449B2 (ja) | マルチタスク低電力制御装置 | |
| US6865636B1 (en) | Multitasking processor system for monitoring interrupt events | |
| JPH01292432A (ja) | メモリバンクのサブルーチン実行方式 | |
| JP2568017B2 (ja) | マイクロプロセッサ及びそれを使用したデータ処理システム | |
| JP3717722B2 (ja) | リアルタイムosのメモリ領域を用いたタスク管理方法 | |
| JPH01297732A (ja) | 割込制御方式 | |
| JPH02253440A (ja) | 時分割マルチタスク実行装置 | |
| JPS62120543A (ja) | メモリバンクの切替方式 | |
| JPH01216428A (ja) | メモリバンクのサブルーチン実行方式 | |
| JPH0245207B2 (ja) | ||
| JP3022398B2 (ja) | 仮想計算機方式 | |
| JP2972557B2 (ja) | データ転送制御装置および制御方法 | |
| JPH01216433A (ja) | 割込制御方式 | |
| JPS62151942A (ja) | タスク切換え方式 | |
| JP2000250762A (ja) | マイクロコンピュータ | |
| JP2616419B2 (ja) | 情報処理装置 | |
| JP2985092B2 (ja) | 時分割マルチタスク制御装置 | |
| JPH0477930A (ja) | マイクロコンピュータ | |
| JPS602708B2 (ja) | 単一チツプ・コンピユ−タのアドレス指定方式 | |
| JPS603656B2 (ja) | 計算機のメモリ拡張方式 | |
| JPS6314242A (ja) | メモリ拡張方式 | |
| JPH02257232A (ja) | 割り込み処理プログラム管理方法 | |
| JPH03231343A (ja) | マイクロプロセッサにおけるメモリ空間拡張方式 | |
| JPH02110739A (ja) | マルチタスク用中央処理装置 | |
| JPS62217326A (ja) | 複数os格納切替可能コンピユ−タ |