JPH0555905B2 - - Google Patents
Info
- Publication number
- JPH0555905B2 JPH0555905B2 JP2629686A JP2629686A JPH0555905B2 JP H0555905 B2 JPH0555905 B2 JP H0555905B2 JP 2629686 A JP2629686 A JP 2629686A JP 2629686 A JP2629686 A JP 2629686A JP H0555905 B2 JPH0555905 B2 JP H0555905B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- address
- output
- instruction
- output instruction
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 5
- 230000007257 malfunction Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はマイクロコンピユータに関し、特に入
出力装置のエミユレーシヨン回路に関する。
出力装置のエミユレーシヨン回路に関する。
あるコンピユータ:システムに他の既存のシス
テムからソフトウエアを移植しようとする場合の
問題点の1つに、そのソフトウエア中で使用して
いるI/Oの問題がある。すなわち、新しいシス
テムで使用しているI/Oのアドレスが既存のシ
ステムで使用しているI/Oのアドレスと異なる
場合、その部分のI/Oアドレスをすべて書き換
えてやらなければならない。しかしこの場合、ハ
ードウエア的には全く変更がいらないが、ソフト
ウエアの修正が大変である。そこでソフトウエア
を全く変更せずに移植するため、ハードウエア的
に対処する方法がある。
テムからソフトウエアを移植しようとする場合の
問題点の1つに、そのソフトウエア中で使用して
いるI/Oの問題がある。すなわち、新しいシス
テムで使用しているI/Oのアドレスが既存のシ
ステムで使用しているI/Oのアドレスと異なる
場合、その部分のI/Oアドレスをすべて書き換
えてやらなければならない。しかしこの場合、ハ
ードウエア的には全く変更がいらないが、ソフト
ウエアの修正が大変である。そこでソフトウエア
を全く変更せずに移植するため、ハードウエア的
に対処する方法がある。
その従来例を第3図と第4図を参照しながら説
明する。
明する。
CPU301はプログラムを解読し実行する。
ここでCPU301が解読した命令が入出力命令
であるとアドレス生成器302によりアドレスを
計算して、外部アドレスバス303を通してI/
Oアドレスを出力し、I/Oバスサイクルを走ら
せる。レジスタ307およびレジスタ308には
エミユレーシヨンすべきI/Oアドレスの範囲が
あらかじめ設定されている。すなわち、レジスタ
307にはエミユレーシヨンすべき上限のI/O
アドレスが、レジスタ308には下限のアドレス
があらかじめ設定されている。
ここでCPU301が解読した命令が入出力命令
であるとアドレス生成器302によりアドレスを
計算して、外部アドレスバス303を通してI/
Oアドレスを出力し、I/Oバスサイクルを走ら
せる。レジスタ307およびレジスタ308には
エミユレーシヨンすべきI/Oアドレスの範囲が
あらかじめ設定されている。すなわち、レジスタ
307にはエミユレーシヨンすべき上限のI/O
アドレスが、レジスタ308には下限のアドレス
があらかじめ設定されている。
次に、CPU301がエミユレーシヨンすべき
I/Oアドレスに対するI/O命令を実行し、
I/Oバスサイクルを走らせたとする。このと
き、外部アドレスバス303を通して比較器30
6にI/Oアドレスが入力する。一方、比較器3
06にはレジスタ307およびレジスタ308が
入力し、実行されたI/Oアドレスがレジスタ3
07およびレジスタ308の範囲に入つていれば
そのI/Oバスサイクルがエミユレーシヨンすべ
きI/O命令であると判断し、CPU301に対
し割込み線309を活性化して知らせる。信号線
305は実行中のバスサイクルがI/Oバスサイ
クルであるときのみ活性化され、比較器306に
入力する。信号線305が不活性時は比較器30
6も比較動作をしない。すなわち比較器306は
I/O命令実行時のみ、そのI/Oアドレスがレ
ジスタ307および308に設定されたアドレス
の範囲内に入つているかどうかを判断し、入つて
いればCPU301に対し割込み線309を活性
化する。
I/Oアドレスに対するI/O命令を実行し、
I/Oバスサイクルを走らせたとする。このと
き、外部アドレスバス303を通して比較器30
6にI/Oアドレスが入力する。一方、比較器3
06にはレジスタ307およびレジスタ308が
入力し、実行されたI/Oアドレスがレジスタ3
07およびレジスタ308の範囲に入つていれば
そのI/Oバスサイクルがエミユレーシヨンすべ
きI/O命令であると判断し、CPU301に対
し割込み線309を活性化して知らせる。信号線
305は実行中のバスサイクルがI/Oバスサイ
クルであるときのみ活性化され、比較器306に
入力する。信号線305が不活性時は比較器30
6も比較動作をしない。すなわち比較器306は
I/O命令実行時のみ、そのI/Oアドレスがレ
ジスタ307および308に設定されたアドレス
の範囲内に入つているかどうかを判断し、入つて
いればCPU301に対し割込み線309を活性
化する。
次に、CPU301は割込み線309より割込
み要求と検知すると第4図に示すフローで割込み
処理を行なう。すなわち、割込みが発生すると、
CPU301は割込みが起きたときのプログラム
のアドレスを退避するため、この情報により、割
込み処理ルーチン内で実行された命令がどのよう
な入出力命令であつたのかを判別する(ステツプ
401)。次に実行された入出力命令を正しい入出力
命令に変換して(ステツプ402)それを実行する
(ステツプ403)。その後再び元のプログラムに戻
る。このような方法をとることで、誤つた入出力
命令を正しい入出力命令に変換して再実行する。
み要求と検知すると第4図に示すフローで割込み
処理を行なう。すなわち、割込みが発生すると、
CPU301は割込みが起きたときのプログラム
のアドレスを退避するため、この情報により、割
込み処理ルーチン内で実行された命令がどのよう
な入出力命令であつたのかを判別する(ステツプ
401)。次に実行された入出力命令を正しい入出力
命令に変換して(ステツプ402)それを実行する
(ステツプ403)。その後再び元のプログラムに戻
る。このような方法をとることで、誤つた入出力
命令を正しい入出力命令に変換して再実行する。
上述した従来のI/Oエミユレーシヨン回路で
は、CPU外部で入出力命令の検出と割込みの発
生制御を行なつており、一度誤つた入出力命令を
実行して、その後再び正しい入出力命令を実行す
るため、もし、誤つて実行された入出力命令のア
ドレスに何か他の入出力装置が割当てられていた
場合はそのシステムが誤動作する可能性があると
いう欠点がある。特に、それが出力命令の場合は
入出力装置を誤プログラシングにしまい、正しい
出力命令を実行する前に誤動作する可能性が大き
い。
は、CPU外部で入出力命令の検出と割込みの発
生制御を行なつており、一度誤つた入出力命令を
実行して、その後再び正しい入出力命令を実行す
るため、もし、誤つて実行された入出力命令のア
ドレスに何か他の入出力装置が割当てられていた
場合はそのシステムが誤動作する可能性があると
いう欠点がある。特に、それが出力命令の場合は
入出力装置を誤プログラシングにしまい、正しい
出力命令を実行する前に誤動作する可能性が大き
い。
本発明のI/Oエミユレーシヨン回路は入出力
命令検出手段と、第1、第2のデータ保持手段
と、入出力命令検出手段によつて入出力命令が検
出されると、第1、第2のデータ保持手段に格納
されたデータと実行中の前記入出力命令のI/O
アドレスとを比較する比較手段と、比較手段の比
較により、入出力命令のI/Oアドレスが第1と
第2のデータ保持手段に格納されたデータの範囲
外であれば、入出力バスサイクルを起動して入出
力命令の実行を継続させる入出力バスサイクル制
御手段と、比較手段の比較により、入出力命令の
I/Oアドレスが第1と第2のデータ保持手段内
に格納されたデータの範囲内であれば、内部割込
みを発生する内部割込み発生手段とを有し、割込
み処理によりI/Oアドレスを変換することを特
徴としている。
命令検出手段と、第1、第2のデータ保持手段
と、入出力命令検出手段によつて入出力命令が検
出されると、第1、第2のデータ保持手段に格納
されたデータと実行中の前記入出力命令のI/O
アドレスとを比較する比較手段と、比較手段の比
較により、入出力命令のI/Oアドレスが第1と
第2のデータ保持手段に格納されたデータの範囲
外であれば、入出力バスサイクルを起動して入出
力命令の実行を継続させる入出力バスサイクル制
御手段と、比較手段の比較により、入出力命令の
I/Oアドレスが第1と第2のデータ保持手段内
に格納されたデータの範囲内であれば、内部割込
みを発生する内部割込み発生手段とを有し、割込
み処理によりI/Oアドレスを変換することを特
徴としている。
すなわち、入出力命令を実行する前にCPU内
部で正しい入出力命令か否かを判断し、もし誤つ
た入出力命令であれば誤つたI/Oバスサイクル
を実行せずに、割込みを起し、正しい入出力命令
だけを実行することができる。
部で正しい入出力命令か否かを判断し、もし誤つ
た入出力命令であれば誤つたI/Oバスサイクル
を実行せずに、割込みを起し、正しい入出力命令
だけを実行することができる。
次に、本発明の実施例について図面を参照して
説明する。
説明する。
第1図は本発明のI/Oエミユレーシヨン回路
の一実施例を内臓したマイクロプロセツサCPU
のブロツク図である。CPU101内には、エミ
ユレーシヨンすべきI/Oアドレスの範囲つまり
エミユレーシヨンすべき上限のI/Oアドレス、
下限のI/Oアドレスが予め設定されたレジスタ
107,108と、CPU101が解読した命令
が入出力命令のときにI/Oアドレスを生成する
アドレス発生器102と、I/Oトラツプフラグ
109と、I/O命令識別信号105が活性時、
アドレス生成器102で生成されたI/Oアドレ
スをレジスタ107,108に設定したアドレス
と比較し、エミユレーシヨンすべきI/Oアドレ
スの範囲内にあれば“1”を、範囲外であれば
“0”をI/Oトラツプフラグ109にセツトす
る比較器106と、入出力命令が検出されると
I/O命令識別信号105を活性化し、また、
I/Oトラツプ109が“0”であればアドレス
出力制御線110を活性化してゲート111を開
き、“1”であれば割込み処理のマイクロプログ
ラムを起動するマイクロプログラム112が設け
られている。
の一実施例を内臓したマイクロプロセツサCPU
のブロツク図である。CPU101内には、エミ
ユレーシヨンすべきI/Oアドレスの範囲つまり
エミユレーシヨンすべき上限のI/Oアドレス、
下限のI/Oアドレスが予め設定されたレジスタ
107,108と、CPU101が解読した命令
が入出力命令のときにI/Oアドレスを生成する
アドレス発生器102と、I/Oトラツプフラグ
109と、I/O命令識別信号105が活性時、
アドレス生成器102で生成されたI/Oアドレ
スをレジスタ107,108に設定したアドレス
と比較し、エミユレーシヨンすべきI/Oアドレ
スの範囲内にあれば“1”を、範囲外であれば
“0”をI/Oトラツプフラグ109にセツトす
る比較器106と、入出力命令が検出されると
I/O命令識別信号105を活性化し、また、
I/Oトラツプ109が“0”であればアドレス
出力制御線110を活性化してゲート111を開
き、“1”であれば割込み処理のマイクロプログ
ラムを起動するマイクロプログラム112が設け
られている。
次に、本実施例の動作を説明する。
CPU101はフエツチした命令を解読し実行
する。CPU101は命令を解読するとマイクロ
プログラム112を実行する。ここで解読した命
令が入出力命令である場合、マイクロプログラム
112の中の入出力命令用のマイクロプログラム
が走る。第2図はこの入出力命令用マイクロプロ
グラムのフローチヤートである。初期状態におい
てアドレス出力制御線110は不活性状態であ
り、ゲート111によりアドレスの外部への出力
を強制的に抑えている。まず、アドレス生成器に
よりI/Oアドレスを発生する。次に、レジスタ
107とレジスタ108にあらかじめ設定されて
いるアドレスと、発生したI/Oアドレスを比較
器106で比較し、発生したI/Oアドレスが設
定されているアドレスの範囲内に入つていれば
I/Oトラツプフラグ109を“1”にセツトす
る。次にマイクロプログラムはI/Oトラツプフ
ラグ109を調べ(ステツプ201)、“0”であれ
ばアドレス出力制御線110を活性化し、ゲート
111をあけて前記I/Oアドレスを外部アドレ
スバス103へ出力し、I/Oバスサイクルを走
らせ、I/O命令の実行を完了する(ステツプ
204)。一方、I/Oトラツプフラグ109が
“1”あれば、アドレス出力制御線110は不活
性状態のままであり、外部アドレスバス103に
I/Oアドレスを出力しない。さらに、I/Oト
ラツプフラグ109が“1”であるためマイクロ
プログラム112は割込み処理のマイクロプログ
ラムを起動し、割込み処理ルーチンへ分岐する
(ステツプ203)。割込み処理ルーチンへ分岐後は
割込みの発生したアドレスを、割込み時にスタツ
フに退避した命令ポインタの値から調べ、そこに
格納されている誤つた入出力命令を正しい入出力
命令に交換して、再度I/Oアドレスを発行す
る。新たに発行された正しいI/Oアドレスはレ
ジスタ107とレジスタ108に設定されたアド
レスの範囲に入つていないため、比較器106は
I/Oトラツプフラグ109を“1”にセツトし
ない。そのため、アドレス出力制御線110は活
性化されゲート111をあけてI/Oアドレスを
外部アドレスバス103へ出力し、I/Oバスサ
イクルを実行し、入出力命令の実行を完了する。
する。CPU101は命令を解読するとマイクロ
プログラム112を実行する。ここで解読した命
令が入出力命令である場合、マイクロプログラム
112の中の入出力命令用のマイクロプログラム
が走る。第2図はこの入出力命令用マイクロプロ
グラムのフローチヤートである。初期状態におい
てアドレス出力制御線110は不活性状態であ
り、ゲート111によりアドレスの外部への出力
を強制的に抑えている。まず、アドレス生成器に
よりI/Oアドレスを発生する。次に、レジスタ
107とレジスタ108にあらかじめ設定されて
いるアドレスと、発生したI/Oアドレスを比較
器106で比較し、発生したI/Oアドレスが設
定されているアドレスの範囲内に入つていれば
I/Oトラツプフラグ109を“1”にセツトす
る。次にマイクロプログラムはI/Oトラツプフ
ラグ109を調べ(ステツプ201)、“0”であれ
ばアドレス出力制御線110を活性化し、ゲート
111をあけて前記I/Oアドレスを外部アドレ
スバス103へ出力し、I/Oバスサイクルを走
らせ、I/O命令の実行を完了する(ステツプ
204)。一方、I/Oトラツプフラグ109が
“1”あれば、アドレス出力制御線110は不活
性状態のままであり、外部アドレスバス103に
I/Oアドレスを出力しない。さらに、I/Oト
ラツプフラグ109が“1”であるためマイクロ
プログラム112は割込み処理のマイクロプログ
ラムを起動し、割込み処理ルーチンへ分岐する
(ステツプ203)。割込み処理ルーチンへ分岐後は
割込みの発生したアドレスを、割込み時にスタツ
フに退避した命令ポインタの値から調べ、そこに
格納されている誤つた入出力命令を正しい入出力
命令に交換して、再度I/Oアドレスを発行す
る。新たに発行された正しいI/Oアドレスはレ
ジスタ107とレジスタ108に設定されたアド
レスの範囲に入つていないため、比較器106は
I/Oトラツプフラグ109を“1”にセツトし
ない。そのため、アドレス出力制御線110は活
性化されゲート111をあけてI/Oアドレスを
外部アドレスバス103へ出力し、I/Oバスサ
イクルを実行し、入出力命令の実行を完了する。
以上説明したように本発明は、入出力命令の検
出や割込みの発生制御をCPU内部で行なうこと
により、誤つた入出力命令を実行せずに割込みを
発生することができないため、そのシステムに対
し誤動作を引き起すこともなく、効果的なI/O
のエミユレーシヨンが可能となる効果がある。
出や割込みの発生制御をCPU内部で行なうこと
により、誤つた入出力命令を実行せずに割込みを
発生することができないため、そのシステムに対
し誤動作を引き起すこともなく、効果的なI/O
のエミユレーシヨンが可能となる効果がある。
第1図は本発明のI/Oエミユレーシヨン回路
の一実施例を有するCPUのブロツク図、第2図
は第1図の実施例の入出力命令のマイクロプログ
ラムのフローチヤート、第3図は従来のI/Oエ
ミユレーシヨン回路を示すCPUのブロツク図、
第4図は割込み処理ルーチン内での処理フローチ
ヤートである。 101……CPU、102……アドレス生成器、
103……外部アドレスバス、105……I/O
命令識別信号、106……比較器、107……上
限アドレスのレジスタ、108……下限アドレス
のレジスタ、109……I/Oトラツプフラグ、
110……アドレス出力制御線、111……ゲー
ト、112……マイクロプログラム。
の一実施例を有するCPUのブロツク図、第2図
は第1図の実施例の入出力命令のマイクロプログ
ラムのフローチヤート、第3図は従来のI/Oエ
ミユレーシヨン回路を示すCPUのブロツク図、
第4図は割込み処理ルーチン内での処理フローチ
ヤートである。 101……CPU、102……アドレス生成器、
103……外部アドレスバス、105……I/O
命令識別信号、106……比較器、107……上
限アドレスのレジスタ、108……下限アドレス
のレジスタ、109……I/Oトラツプフラグ、
110……アドレス出力制御線、111……ゲー
ト、112……マイクロプログラム。
Claims (1)
- 【特許請求の範囲】 1 入出力命令検出手段と、第1、第2のデータ
保持手段と、入出力命令検出手段によつて出力命
令が検出されると、第1、第2のデータ保持手段
に格納されたデータと実行中の前記入出力命令の
I/Oアドレスとを比較する比較手段と、 比較手段の比較により、入出力命令のI/Oア
ドレスが第1と第2のデータ保持手段に格納され
たデータの範囲外であれば、入出力バスサイクル
を起動して入出力命令の実行を継続させ、入出力
バスサイクル制御手段と、比較手段の比較によ
り、入出力命令のI/Oアドレスが第1と第2の
データ保持手段内に格納されたデータの範囲内で
あれば、内部割込みを発生する内部割込み発生手
段とを有し、割込み処理によりI/Oアドレスを
変換することを特徴とするI/Oエミユレーシヨ
ン回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2629686A JPS62182959A (ja) | 1986-02-07 | 1986-02-07 | I/oエミユレ−シヨン回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2629686A JPS62182959A (ja) | 1986-02-07 | 1986-02-07 | I/oエミユレ−シヨン回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62182959A JPS62182959A (ja) | 1987-08-11 |
JPH0555905B2 true JPH0555905B2 (ja) | 1993-08-18 |
Family
ID=12189361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2629686A Granted JPS62182959A (ja) | 1986-02-07 | 1986-02-07 | I/oエミユレ−シヨン回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62182959A (ja) |
-
1986
- 1986-02-07 JP JP2629686A patent/JPS62182959A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS62182959A (ja) | 1987-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7178062B1 (en) | Methods and apparatus for executing code while avoiding interference | |
US4924382A (en) | Debugging microprocessor capable of switching between emulation and monitor without accessing stack area | |
JPH07219809A (ja) | データ処理装置およびデータ処理方法 | |
KR920003044B1 (ko) | 가상 머신 시스템용의 게스트 머신 실행 제어 시스템 | |
JP2583525B2 (ja) | データ処理装置 | |
US6513110B1 (en) | Check instruction and method | |
JPH0555905B2 (ja) | ||
JPH05216721A (ja) | 電子計算機 | |
JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
JPS6158054A (ja) | プログラムの暴走検出方式 | |
JPH05257815A (ja) | 中央処理装置 | |
JP2814800B2 (ja) | マイクロコンピュータ | |
JP2504191B2 (ja) | マイクロプロセッサ | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
KR920003909B1 (ko) | 디버깅지원회로 | |
JP2786215B2 (ja) | 再開処理制御方式 | |
JPS6118045A (ja) | プログラムの暴走検出方式 | |
JPH04364531A (ja) | マイクロプロセッサ | |
JPH05250161A (ja) | マイクロコンピュータ装置 | |
JPH03208132A (ja) | シングルチツプマイクロコンピユータ | |
JPS6349941A (ja) | 演算処理装置 | |
JPS63316137A (ja) | 情報処理装置 | |
JPH03225485A (ja) | マイクロプロセッサ | |
JPH06250863A (ja) | マイクロコンピュータ | |
JPS5848150A (ja) | 障害波及防止方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |