JPH0241771B2 - - Google Patents

Info

Publication number
JPH0241771B2
JPH0241771B2 JP9676087A JP9676087A JPH0241771B2 JP H0241771 B2 JPH0241771 B2 JP H0241771B2 JP 9676087 A JP9676087 A JP 9676087A JP 9676087 A JP9676087 A JP 9676087A JP H0241771 B2 JPH0241771 B2 JP H0241771B2
Authority
JP
Japan
Prior art keywords
memory
interrupt
return address
processing
signal
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
Application number
JP9676087A
Other languages
English (en)
Other versions
JPS63233438A (ja
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 filed Critical
Publication of JPS63233438A publication Critical patent/JPS63233438A/ja
Publication of JPH0241771B2 publication Critical patent/JPH0241771B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

【発明の詳細な説明】
[産業上の利用分野] 本発明は、既存のマイクロプロセツサとオブジ
エクト・コードの互換性があり、割り込み処理の
リターンアドレスの発生方法に違いのあるマイク
ロプロセツサを使用したシステムにおいて、その
非互換性を解消するための情報処理装置に関す
る。 [従来の技術] 従来、既存のマイクロプロセツサとオブジエク
ト・コードでの互換性のあるマイクロプロセツサ
において、同じ割り込み処理におけるリターンア
ドレスの発生方法が異なつているものがあつた。 [発明が解決しようとする問題点] しかし、割り込み処理のリターンアドレスの発
生方法の違いにより、それぞれのマイクロプロセ
ツサにおいて、同じソフトウエアで異なつた動作
を起こすという問題点を有していた。 そこで、本発明は従来のこのような問題点を解
決するために、リターンアドレスの発生方法の違
う割り込みが発生しても、各々のマイクロプロセ
ツサで同じ動作をさせることを目的とする。 [問題点を解決するための手段] 本発明は、 所定の割り込み処理を検知する検知手段と、該
検知手段よりの結果に応じて、メモリの第1所定
エリアに格納する前記割り込み処理からのリター
ンアドレスの修正処理を起動するためのリターン
アドレス修正処理起動情報により起動され前記リ
ターンアドレス修正処理を実行するリターンアド
レス修正手段と、 アクセスするメモリを前記第1所定エリアか
ら、前記割り込み処理を起動するための割り込み
処理起動情報を格納する第2所定エリアに切り替
えるメモリ切り替え手段とを有し、 所定の割り込み処理を検知した場合に該割り込
み処理からのリターンアドレスを修正する処理と
前記所定の割り込み処理を実行することを 特徴とする。 [作用] 上記のように構成された装置を、コンピユータ
に付加することにより、上記別メモリに、リター
ンアドレス修正ルーチンの先頭アドレスを書き込
んでおけば、目的の割り込み発生時にはマイクロ
プロセツサが参照する値を、処理ルーチンの先頭
にすることができる。処理ルーチン内でリターン
アドレスを既存のマイクロプロセツサにおける同
じ割り込みで発生するリターンアドレスに等しく
なるように修正する。そして、別メモリをリード
することにより、本来の割り込み処理ルーチンの
先頭アドレスを得ることができるので、そこに制
御を移すことにより、既存のマイクロプロセツサ
を用いたシステムと同様な動作を得ることができ
る。 [実施例] まず、本発明の原理を第1,2図を使つて説明
する。 まず第1図について説明する。本発明では、エ
リア10にある値(例えば01H)を書いた場合
(データフロー113)、該01Hを読み出すために
CPUはエリア11をアクセスする。(データフロ
ー114)そして該エリア11へのリードアクセ
スが変換されて、実際にはエリア10をアクセス
することになる。 又、エリア11にある値(例えば02H)を書い
た場合(データフロー116)、該02Hを読み出
すためにCPUは、エリア10をアクセスする。
(データフロー115)そして、前記と同様にエ
リア10へのアクセスが、実際には、エリア11
へのアクセスに変換され02Hが読み出される。 ここで、まず所定の割り込み処理が、検知され
る前に、CPUは、エリア10に所定の割り込み
処理を起動させるための情報(例えば、該割り込
み処理を実行するプログラムの先頭アドレス)を
ライトし、エリア11に該割り込み処理からのリ
ターンアドレスの修正処理を起動するための情報
(例えば、リターンアドレスの修正処理のプログ
ラムの先頭アドレス)をライトしておく。 したがつて、所定の割り込み処理が検知されて
CPUがエリア10へリードアクセスすると、実
際には、エリア11内にあるリターンアドレスの
修正処理を起動する情報が読み出され、割り込み
処理の前にまずリターンアドレスの修正が実行さ
れるのである。 又、第2図は、第1図と異なりライト動作につ
いてエリア10,11を入れ換えた場合を示す。 すなわち、第2図のケースではリードの場合
は、CPUで指定したエリアよりデータを(デー
タフロー224,225)を読み出せる。しか
し、ライトの場合は、CPUでエリア10を指定
すると実際にはエリア11に書かれ、(データフ
ロー223)エリア11を指定すると実際にはエ
リア10に書き込まれる。(データフロー226)
第2図の場合では、所定の割り込み処理が発生す
る前に、CPUがエリア10に対してライトアク
セスを行い、実際には、エリア11に割り込み処
理を起動させるための情報を書いておき、又、
CPUがエリア11に対してライトアクセスを行
つて、実際には、エリア10にリターンアドレス
の修正処理を起動するための情報を書いておく。
そうすると、所定の割り込み処理が検知されると
エリア10がアクセスされ第1図と同様にまず、
リターンアドレスの修正処理が、実行される。 以下に本発明の実施例を示す。第3図は、本発
明を実現するためのメモリ制御回路の実施例であ
る。第3図において、1は、特別割り込みベクタ
用アドレステコード回路であり、特別割り込みベ
クタのアドレスが選択された時に、信号35に0
を出力し、それ以外のアドレスが選択された時、
1を出力する。2は、メモリセレクト回路であ
り、ソフトウエアからのセレクト信号(図示せ
ず)により、BANK信号30を決定する。特別
割り込みベクタとは、既存のマイクロプロセツサ
と、割り込み処理からのリターンアドレスの発生
方法の違う割り込みの割り込みベクタである。 第4図に、メモリマツプを示す。この図で、メ
モリ20は、特別割り込みベクタ、メモリ21は
メモリ20に対応した動作上問題のない別のメモ
リである。また、MRNは、メモリ・リード信
号、MWNは、メモリ・ライト信号、0は、
メインメモリ25に対するメモリ・リード信号、
MR1は、メモリ21に対するメモリ・リード信
号、は、メインメモリ25に対するメモリ
−ライト信号、1はメモリ21に対するメモ
リ・ライト信号である。 この回路は、BANK信号30が0のとき信号
31は1、信号36は信号35と等しくなり、信
号35が0のとき、ゲート42とゲート43が開
き、信号35が1のとき、ゲート41とゲート4
3が開く。またBANK信号30が1のとき、信
号36は1、信号31は信号35と等しくなり、
信号35が0のとき、ゲート41とゲート44が
開き、信号35が1のとき、ゲート41とゲート
43が開く。これにより、特別割り込みベクタが
選択されたとき、BANK信号30が0ならば、
メモリ21が読み出され、メモリ20に書き込む
ことができ、BANK信号30が1ならば、メモ
リ20が読み出され、メモリ21に書き込むこと
ができる。また、特別割り込みベクタが選択され
ない時は、読み書きは、メインメモリ25に対し
て行われる。 既存のプロセツサを、プロセツサ0、プロセテ
ツサ0と、オブジエクトコード上で互換性があ
り、割り込み処理からのリターンアドレスの発生
方の異なるプロセツサを、プロセツサ1とする。 第5図において、プロセツサ0では、命令51
において、特別割り込みが発生した時、その処理
からのリターンアドレスは、次の命令52になつ
ておりプロセツサ1は、命令51において発生し
た、特別割り込みの、処理からのリターンアドレ
スが命令51になつているとする。これでは、プ
ロセツサ1では、命令51においてループしてし
まい、プロセツサ0とまつたく違う動作になつて
しまう、そこで、命令51において発生した割り
込みの、割込みベクタを、ベクタ53のようにリ
ターンアドレス処理ルーチンにしておき、リター
ンアドレス処理ルーチン内において、割り込み処
理からのリターンアドレスを命令52に修正を行
ない、本来の割り込み処理ルーチンに処理を移せ
ば(矢印54)、処理後のリターンアドレスは命
令52になるので、プロセツサ0とプロセツサ2
は見かけ上同じ動作をしたことになる。そこで、
この回路を用いたシステムにおいて、起動時に
BANK信号35を1にしてメモリ21に、リタ
ーンアドレス修正ルーチンの先頭アドレスを書き
込み、BANK信号35を0にする。(100)この
ようにしておくことにより、特別割り込みベクタ
については、リード時には、リターンアドレス修
正ルーチンの先頭アドレスが読み出され、ライト
時には、メモリ20にデータが書き込まれる。 そこで、アプリケーシヨン・プログラム等を実
行する。(101)実行中に、特別割り込みが発生す
ると、特別割り込みベクタが参照されるが、この
時読み出されるのは、メモリ21であり、(102)
リターンアドレス修正ルーチンの先頭アドレスを
指しているので、特別割り込みの処理ルーチンで
はなくて、リターンアドレス修正ルーチンに制御
が移される。(103) リターンアドレス修正ルーチンにおいては、リ
ターンアドレスが等しくなるように、リターンア
ドレスを書き替えておき、BANK信号35を1
にして、メモリ20を読み出す。これにより、本
来の割り込み処理の先頭アドレスを得ることがで
きる。そしてBANK信号を0にし、(104)本来
の割り込み処理ルーチンに制御を移す。(106)こ
れにより、見かけ上同じ動作をされることが可能
になる。すなわち、割り込み処理からのリターン
アドレスの発生方法の違いによる非互換性は解消
される。 次に、80286CPUと8086CPUの場合も具体例と
して説明する。80286CPUは、8086CPUとオブジ
エクトコード上では互換性があるが、0除算割り
込み処理のリターンアドレスの発生法が違うマイ
クロプロセツサである。そのため0除算割り込み
が発生した場合、その割り込み処理、リターンア
ドレスが異なることによる非互換性が発生してい
る。 この非互換性を解消するために、第7図のよう
な回路を用いる。この回路は、アドレスバスAB
2〜AB23がすべて0の時に信号35に0を出
力し、それ以外の時は、信号35に1を出力す
る。0除算割り込みベクタは、メモリアドレスの
0H〜3Hに格納されているので、0除算割り込み
ベクタが選択された時には、信号35に0が出力
され、それ以外のアドレスが選択された時には、
信号35に1が出力される。 また、メモリセレクト回路では、アドレスバス
AB0〜AB3がすべて1で、アドレスバスAB4
〜AB7がすべて0の時で、信号が0から1
になる時のDB0がBANK信号30として出力さ
れる、すなわち、I/OポートOFHに0を出力
するとBANK信号30には0が出力され、I/
OポートOFHに1を出力するとBANK信号30
に1が出力される。この時のメモリマツプを第9
図に示す。 第8図に、この時のメモリマツプを示す、この
図で、メモリ61は80286CPUのメインメモリ、
メモリ62は、メインメモリ61上にある0除算
割り込みベクタの書かれるメモリ、メモリ63
は、メモリ61に対応した動作上問題のないバン
クメモリである。また、第7図において、
は、メインメモリ61に対するメモリ・リード信
号、1はバンクメモリ63に対するメモリ・
リード信号、は、メインメモリ61に対す
るメモリ・ライト信号、1は、バンクメモリ
63に対するメモリ・ライト信号である。 前述したように、第7図の回路では、0除算割
り込みベクタが選択された時、BANK信号30
が0の時は、メモリ・リードに関しては、バンク
メモリ63の内容が読み出され、メモリ・ライト
に関しては、メインメモリ61の0除算割り込み
ベクタ62に書き込まれる。また、BANK信号
30が1の時は、メモリリードに関しては、メイ
ンメモリ61の0除算割り込みベクタ62の内容
が読み出され、メモリ・ライトに関しては、バン
クメモリ63に書き込まれる。仮に、 DIV DX、BX という命令において、BX=0であつたとする
と、80286CPU、8086CPU共に0除算割り込みを
発生するが、その処理ルーチンからのリターンア
ドレスは、80286CPUは割り込みを起こした命令
を指しているが、8086CPUでは、割り込みを起
こした命令の次の命令を指している。もしBX=
0のまま、割り込み処理ルーチンからリターンさ
れると80286CPUでは、再び0除算割り込みを発
生し、プログラムがストツプしてしまう。ところ
が、8086CPUにおいては、処理は割り込みを起
こした命令の次の命令に移つているのでその後の
処理を続行する、というような非互換性が発生し
ています。そこで、80286CPUは0除算割り込み
が発生すると、0除算割り込みベクタを読み出
し、そのベクタの示すアドレスに制御を移す、そ
こで、システムブート時に、I/OポートOFH
に0を出力しておけば、80286CPUが読み出す0
除算割り込みベクタは、バンクメモリ63の値に
することができる。 次に、リターンアドレス修正ルーチンの例の説
明をする。このルーチンのリスリストを第1表に
示す。 このリターンアドレス修正ルーチンは、割り込
みが入つてくると、まず、アプリケーシヨンプロ
グラムの0除算割り込み処理ルーチンへの分岐用
にスタツクエリアを4バイト確保する。(201) 次に、各レジスタの退避を行なう。(202) そして、エラーを起こした命令の先頭アドレス
は、割り込み処理のリターンアドレスになつてい
るので、そのアドレスを、セグメントは、DSレ
ジスタに、オフセツトは、SILレジスタに入れ
る。(203) そして命令コードのプリフイツクス部分をスキ
ツプさせる。(204)プリフイツクス部分は、2進
コードでは、001××110bとなつているのでこの
部分だけスキツプさせる。(205) 次に、割り込みを起こした命令が、除算命令か
どうかを確認する。この場合は、0除算命令は、
2進コードで00×××110bとなつているので割
り込みを起こした命令がこうなつているかを確認
する。(206)もし、0除算命令でなければ、例え
ば1NTO命令ならば、リターンアドレスを修正し
ないまま、アプリケーシユンの割り込み処理ルー
チンに、制御をわたす。(207)除算命令であれ
ば、その命令長を求める。まず、命令の2バイト
目を見て、コードが2進コードで、00×××
110bとなつていれば、メモリオペランド命令で
あるのでこの場合は、4バイト命令、7、6ビツ
目が11又は00の場合は、2バイト命令、7、6ビ
ツト目が01なら3バイト命令、7、6ビツト目が
10なら4バイト命令なので、このことにより、割
り込みを起こした命令の次の命令の先頭がわか
る。(208)これを、リターンアドレスが書き込ま
れているエリアに書き込めば(209)リターンア
ドレスが修正されたことになる。 そして、メインメモリ62の除算割り込みベク
タ62に書き込まれているアプリケーシヨンの0
除算割り込み処理ルーチンのスタートアドレスを
スタツクエリアに分岐用に確保したエリアに書き
込む。(210) そして、レジスタをもどし(211)リターン命
令を実行すると、アプリケーシヨンの0除算割り
込み処理ルーチンに処理を移すことができる。そ
して、そのルーチンからのリターンアドレスは、
0除算割り込みを起こした命令の次のの命令にな
り80286CPUで8086CPUと同様な動作をさせるこ
とが可能になる。 これまで説明した例では、別メモリとして、バ
ンクメモリを用いた例を示したが、別メモリとし
ては、I/Oメモリ、システムの動作上問題のな
いメインメモリ上のメモリ等、どのようなメモリ
を用いてもよい。
【表】
【表】 また、80286CPUにあつて、8086CPUにない割
り込み、例えば、セグメントオーバランエラー割
り込みについて、この割り込みは、 MOV AX:[BX] というような、メモリアクセス命令においてBX
=OFFFFHとなるような、セグメントを超えて、
メモリアクセスしようとした場合、80286CPUで
発生する割り込みである。この割り込みは、
8086CPUでは発生しない。そこで、この場合に
も、本発明を用いリターンアドレス修正ルーチン
内で8086CPUと同様な処理を行い、リターンア
ドレスを割り込みを起こした命令の次にして、リ
ターンすることにより、80286CPUで、8086CPU
と同様な動作をさせることが可能になり、この割
り込みによる非互換性は、この発明を用いること
により解消できる。 [発明の効果] 本発明は、以上詳細に説明したように、検知手
段により所定の割り込み処理を検知するとリター
ンアドレス修正手段を起動して前記所定の割り込
み処理のリターンアドレスを修正するよう構成さ
れるので、 (a) 割り込み処理の異なるプロセツサ間の互換性
が実現できる。そのため、従来は、割り込み処
理の違いのため動かなかつたプロセツサA用の
ソフトウエアがプロセツサBにおいても動くよ
うになり、ユーザーの使い勝手が大幅に向上す
る。 (b) 従来は、多数のソフトを動かすために、プロ
セツサ間の非互換性を考虜して複数のプロセツ
サを有していたが、本発明によれば、唯一のプ
ロセツサで対応でき、装置の簡略化、低価格及
び、実装スペースの節約が実現できる。 (c) 例えば、動作速度の速いプロセツサCと、遅
いプロセツサDがあつた場合、本発明を利用し
てプロセツサD用のソフトウエアをプロセツサ
Cで実行させることにより、従来より高速でソ
フトウエアを実行できるという大きなメリツト
を有する。
【図面の簡単な説明】
第1図、第2図は、メモリ・リード・ライト制
御回路の動作概念図。第3図は、本発明を実施す
る回路の一例を示す回路図。第4図は、その時の
メモリマツプを示す図。第5図は、割り込み動作
の動作図。第6図は、上記実施例のフローチヤー
トである。第7図は、本発明を実施する具体的な
回路図。第8図は、その時のメモリマツプを示す
図。第9図は、第7図の回路のタイミングチヤー
トを示す図。 113……特別割り込みベクタへのライト時の
データの流れ、114……特別割り込みベクタよ
りのリード時のデータの流れ、115……別メモ
リよりのリード時のデータの流れ、116……別
メモリへのライト時のデータの流れ。

Claims (1)

  1. 【特許請求の範囲】 1 所定の割り込み処理を検知する検知手段と、
    該検知手段よりの結果に応じて、メモリの第1所
    定エリアに格納される前記割り込み処理からのリ
    ターンアドレスの修正処理を起動するためのリタ
    ーンアドレス修正処理起動情報により起動され前
    記リターンアドレス修正処理を実行するリターン
    アドレス修正手段と、 アクセスするメモリを前記第1所定エリアか
    ら、前記割り込み処理を起動するための割り込み
    処理起動情報を格納する第2所定エリアに切り替
    えるメモリ切り替え手段とを有し、 所定の割り込み処理を検知した場合に該割り込
    み処理からのリターンアドレスを修正する処理と
    前記所定の割り込み処理を実行することを 特徴とする情報処理装置。
JP9676087A 1986-10-03 1987-04-20 情報処理装置 Granted JPS63233438A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP23570486 1986-10-03
JP61-235704 1986-10-03

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP1106433A Division JP2569801B2 (ja) 1989-04-26 1989-04-26 情報処理装置
JP1106432A Division JP2576899B2 (ja) 1989-04-26 1989-04-26 情報処理装置

Publications (2)

Publication Number Publication Date
JPS63233438A JPS63233438A (ja) 1988-09-29
JPH0241771B2 true JPH0241771B2 (ja) 1990-09-19

Family

ID=16989991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9676087A Granted JPS63233438A (ja) 1986-10-03 1987-04-20 情報処理装置

Country Status (1)

Country Link
JP (1) JPS63233438A (ja)

Also Published As

Publication number Publication date
JPS63233438A (ja) 1988-09-29

Similar Documents

Publication Publication Date Title
JPH045216B2 (ja)
JPH0414385B2 (ja)
US4985826A (en) Method and device to execute two instruction sequences in an order determined in advance
IE61306B1 (en) Method and device to execute two instruction sequences in an order determined in advance
JPS6319058A (ja) メモリ装置
JPH0241771B2 (ja)
JP2569801B2 (ja) 情報処理装置
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
JP2576899B2 (ja) 情報処理装置
JP2619425B2 (ja) シーケンスコントローラ
JP2671160B2 (ja) 例外処理方式
JPH06342397A (ja) 論理的アドレス空間を写像するための回路装置
JPS6226728B2 (ja)
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2883488B2 (ja) 命令処理装置
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ
JPS62254237A (ja) インタプリタ方式の分岐命令実行方式
JP2000029508A (ja) プログラマブルコントローラ
JP2574918B2 (ja) 割り込み復帰処理方式
JPS60193046A (ja) 命令例外検出方式
JPS6212555B2 (ja)
JPS61267135A (ja) デ−タ処理装置
JPH1027153A (ja) バス転送装置
JPH02118729A (ja) 情報処理装置
JPH05181672A (ja) 情報処理装置の命令抑止回路

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 17

Free format text: PAYMENT UNTIL: 20070919