JPH04256027A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH04256027A JPH04256027A JP1626891A JP1626891A JPH04256027A JP H04256027 A JPH04256027 A JP H04256027A JP 1626891 A JP1626891 A JP 1626891A JP 1626891 A JP1626891 A JP 1626891A JP H04256027 A JPH04256027 A JP H04256027A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- program
- register
- interrupt
- bank
- 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
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000015556 catabolic process Effects 0.000 abstract 1
- 238000006731 degradation reaction Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 8
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
に関し、特に単一半導体基板上にCPUを2つ内蔵した
マイクロコンピュータに関する。
に関し、特に単一半導体基板上にCPUを2つ内蔵した
マイクロコンピュータに関する。
【0002】
【従来の技術】従来のマイクロコンピュータは、1つの
CPUを内蔵し、複数のレジスタから構成されるレジス
タセットを1セット具備し、通常のプログラム実行、割
込み処理実行などの全てのプログラム実行は、1つのC
PUと1つのレジスタセットだけで処理するのが一般的
である。
CPUを内蔵し、複数のレジスタから構成されるレジス
タセットを1セット具備し、通常のプログラム実行、割
込み処理実行などの全てのプログラム実行は、1つのC
PUと1つのレジスタセットだけで処理するのが一般的
である。
【0003】マイクロコンピュータの制御分野における
応用では、マイクロコンピュータに内蔵されている周辺
装置や、マイクロコンピュータ外部からの割込みの発生
が多く、プログラム実行のかなりの部分が割込み処理に
占められることが多い。
応用では、マイクロコンピュータに内蔵されている周辺
装置や、マイクロコンピュータ外部からの割込みの発生
が多く、プログラム実行のかなりの部分が割込み処理に
占められることが多い。
【0004】また、割込みの発生によって割込み処理プ
ログラムを実行した後、システムの動作状態が急変し、
その結果、プログラムの実行状態を変更させる必要がで
てくることも多い。このような場合、従来のマイクロコ
ンピュータではプログラムのアルゴリズムの工夫によっ
て対処している。以下、図6、図7を参照しながらこの
アルゴリズムの工夫に関して説明する。
ログラムを実行した後、システムの動作状態が急変し、
その結果、プログラムの実行状態を変更させる必要がで
てくることも多い。このような場合、従来のマイクロコ
ンピュータではプログラムのアルゴリズムの工夫によっ
て対処している。以下、図6、図7を参照しながらこの
アルゴリズムの工夫に関して説明する。
【0005】図6は、プログラムAの実行中(処理A)
に割込みが発生して(INT)、割込み処理Cへ制御が
遷移し、割込み処理Cの実行終了でプログラムBへ制御
を移し、プログラムBの処理の実行終了で、プログラム
Aの、割込みが発生した時点へ制御を戻すというフロー
の例である。
に割込みが発生して(INT)、割込み処理Cへ制御が
遷移し、割込み処理Cの実行終了でプログラムBへ制御
を移し、プログラムBの処理の実行終了で、プログラム
Aの、割込みが発生した時点へ制御を戻すというフロー
の例である。
【0006】まず、処理Aの実行中、割込みが発生する
と、通常、プログラムのどのアドレスを実行中であるか
を指し示すプログラム・カウンタ(以下、PCと称す)
と、プログラムの実行状態を表すプログラム・ステータ
ス・ワード(以下、PSW称す)などをスタック・ポイ
ンタ(以下、SPと称す)で指し示すスタック空間に退
避する。これらPC、PSWなどプログラムの実行状態
に係わる情報を総称してコンテキストと呼ぶ。
と、通常、プログラムのどのアドレスを実行中であるか
を指し示すプログラム・カウンタ(以下、PCと称す)
と、プログラムの実行状態を表すプログラム・ステータ
ス・ワード(以下、PSW称す)などをスタック・ポイ
ンタ(以下、SPと称す)で指し示すスタック空間に退
避する。これらPC、PSWなどプログラムの実行状態
に係わる情報を総称してコンテキストと呼ぶ。
【0007】その後、その割込みソースに対応するベク
タテーブルから、割込み処理プログラムの先頭アドレス
を読み出しそのアドレスへ分岐することで割込み処理C
の実行を開始する。
タテーブルから、割込み処理プログラムの先頭アドレス
を読み出しそのアドレスへ分岐することで割込み処理C
の実行を開始する。
【0008】割込み処理Cの先頭では、割込み処理プロ
グラム中で使用するレジスタ類をスタック空間に退避し
た後、処理Cを実行する。処理C実行後、システムの状
態判別を行ない、プログラムの実行状態を変更させる必
要が発生した場合には、スタック上に退避されたプログ
ラムAのコンテキストを読み出し、予め定められた領域
(通常メモリ空間の所定の領域)にこのコンテキストを
格納した後、分岐すべきプログラムBのコンテキストを
スタック空間に設定する。その後、割込み処理Cの先頭
で退避したレジスタ類を復帰し、割込み処理終了する命
令RETI命令を実行することで制御をプログラムBに
移行する。
グラム中で使用するレジスタ類をスタック空間に退避し
た後、処理Cを実行する。処理C実行後、システムの状
態判別を行ない、プログラムの実行状態を変更させる必
要が発生した場合には、スタック上に退避されたプログ
ラムAのコンテキストを読み出し、予め定められた領域
(通常メモリ空間の所定の領域)にこのコンテキストを
格納した後、分岐すべきプログラムBのコンテキストを
スタック空間に設定する。その後、割込み処理Cの先頭
で退避したレジスタ類を復帰し、割込み処理終了する命
令RETI命令を実行することで制御をプログラムBに
移行する。
【0009】プログラムBは、プログラム中で使用する
レジスタ類をスタック空間に退避した後、処理Bを実行
する。次に、メモリ空間の所定の領域に退避されたプロ
グラムAのコンテキストを読み出し、スタック空間に設
定する。その後、プログラムBの先頭で退避したレジス
タ類を復帰し、処理を終了する命令RETI命令を実行
することで制御をプログラムAに戻す。
レジスタ類をスタック空間に退避した後、処理Bを実行
する。次に、メモリ空間の所定の領域に退避されたプロ
グラムAのコンテキストを読み出し、スタック空間に設
定する。その後、プログラムBの先頭で退避したレジス
タ類を復帰し、処理を終了する命令RETI命令を実行
することで制御をプログラムAに戻す。
【0010】図7の例も図6同様であり、プログラムA
の実行中(処理A)に割込みが発生して(INT)、割
込み処理Cへ制御遷移する。割込み処理Cでソフトウェ
アフラグをオンにして処理を終了し、プログラムAへ制
御を戻す。プログラムAではフラグをポーリングし、フ
ラグがオフであれば処理Aを繰り返し実行する。オンで
あればプログラムBをプロシージャ・コールすることに
よって、プログラムの実行状態を変更させる。
の実行中(処理A)に割込みが発生して(INT)、割
込み処理Cへ制御遷移する。割込み処理Cでソフトウェ
アフラグをオンにして処理を終了し、プログラムAへ制
御を戻す。プログラムAではフラグをポーリングし、フ
ラグがオフであれば処理Aを繰り返し実行する。オンで
あればプログラムBをプロシージャ・コールすることに
よって、プログラムの実行状態を変更させる。
【0011】まず、プログラムAの最初に、ソフトウェ
アフラグをオフにして処理Aを実行する。次にフラグを
判定し、オフ状態であれば処理Aを繰り返し実行する。
アフラグをオフにして処理Aを実行する。次にフラグを
判定し、オフ状態であれば処理Aを繰り返し実行する。
【0012】処理Aの実行中、割込みが発生すると、コ
ンテキストをスタック空間に退避した後、割込み処理C
の実行を開始する。
ンテキストをスタック空間に退避した後、割込み処理C
の実行を開始する。
【0013】割込み処理Cの先頭では、割込み処理プロ
グラム中で使用するレジスタ類をスタック空間に退避し
た後、処理Cを実行する。処理C実行後、システムの状
態判別を行い、プログラムの実行状態を変更させる必要
が発生した場合にはフラグをオンにする。その後、割込
み処理Cの先頭で退避したレジスタ類を復帰し、割込み
処理を終了する命令RETI命令を実行することで制御
をプログラムAに戻す。
グラム中で使用するレジスタ類をスタック空間に退避し
た後、処理Cを実行する。処理C実行後、システムの状
態判別を行い、プログラムの実行状態を変更させる必要
が発生した場合にはフラグをオンにする。その後、割込
み処理Cの先頭で退避したレジスタ類を復帰し、割込み
処理を終了する命令RETI命令を実行することで制御
をプログラムAに戻す。
【0014】次に、プログラムAでフラグを判定した時
には、フラグはオン状態であるため、プログラムBをプ
ロシージャ・コールすることでプログラム実行状態を変
化させる。
には、フラグはオン状態であるため、プログラムBをプ
ロシージャ・コールすることでプログラム実行状態を変
化させる。
【0015】プログラムBでは、プログラム中で使用す
るレジスタ類をスタック空間に退避した後、処理Bを状
態する。その後、プログラムBの先頭で退避したレジス
タ類を復帰し、プロシージャから復帰するRET命令を
実行することで制御をプログラムAに戻す。プログラム
Aでは、フラグをオフにして処理を再開する。
るレジスタ類をスタック空間に退避した後、処理Bを状
態する。その後、プログラムBの先頭で退避したレジス
タ類を復帰し、プロシージャから復帰するRET命令を
実行することで制御をプログラムAに戻す。プログラム
Aでは、フラグをオフにして処理を再開する。
【0016】割込みの発生をイベントとするプログラム
の構成には上述の例以外にも多数のアルゴリズムが考え
られるが、プログラム構成において共通して言えること
は、割込みが発生した時や、プログラム処理を切り換え
る場合には必ずコンテキストの退避、復帰などの処理が
挿入される。この処理は、本来プログラムで行いたい処
理とは無関係で無用な処理であるためオーバヘッドと呼
ばれる。割込み、プログラム切り換えが多く発生するほ
ど、オーバヘッドが多く発生し、システム全体のパフォ
ーマンスを低下させることになる。
の構成には上述の例以外にも多数のアルゴリズムが考え
られるが、プログラム構成において共通して言えること
は、割込みが発生した時や、プログラム処理を切り換え
る場合には必ずコンテキストの退避、復帰などの処理が
挿入される。この処理は、本来プログラムで行いたい処
理とは無関係で無用な処理であるためオーバヘッドと呼
ばれる。割込み、プログラム切り換えが多く発生するほ
ど、オーバヘッドが多く発生し、システム全体のパフォ
ーマンスを低下させることになる。
【0017】上記問題点を改善するために、いくつかの
方法が提案されているが、その1つにレジスタバンク方
式がある。図8は、レジスタバンク方式のレジスタファ
イルを内蔵するマイクロコンピュータ構成例である。以
下、図8を参照しながら説明を加える。
方法が提案されているが、その1つにレジスタバンク方
式がある。図8は、レジスタバンク方式のレジスタファ
イルを内蔵するマイクロコンピュータ構成例である。以
下、図8を参照しながら説明を加える。
【0018】本マイクロコンピュータは、レジスタファ
イル1、ALU2、バンクセレクタ3、命令デコーダ(
以下、IDと称す)4、全体の動作を制御する制御部5
、割込み制御装置(以下、INTCと称す)6、バス7
から構成される。
イル1、ALU2、バンクセレクタ3、命令デコーダ(
以下、IDと称す)4、全体の動作を制御する制御部5
、割込み制御装置(以下、INTCと称す)6、バス7
から構成される。
【0019】尚、マイクロコンピュータは通常、ROM
、RAM、周辺装置などを内蔵しているが本発明の説明
において直接関係ないので特に図示していない。
、RAM、周辺装置などを内蔵しているが本発明の説明
において直接関係ないので特に図示していない。
【0020】レジスタファイル1はn個のレジスタバン
クから構成され、バンクセレクタ3はn個のレジスタバ
ンクから1つを選択する選択信号を発生する。プログラ
ム内で指定されるレジスタは、このバンクセレクタ3で
指定されたレジスタバンク内のレジスタを示すことにな
る。図示はしていないが、1つのレジスタバンクは、例
えば16ビットレジスタR0からR7の8本から構成さ
れる。
クから構成され、バンクセレクタ3はn個のレジスタバ
ンクから1つを選択する選択信号を発生する。プログラ
ム内で指定されるレジスタは、このバンクセレクタ3で
指定されたレジスタバンク内のレジスタを示すことにな
る。図示はしていないが、1つのレジスタバンクは、例
えば16ビットレジスタR0からR7の8本から構成さ
れる。
【0021】バス7を経由して転送される命令はID4
でデコードされる。制御部5はデコーダ結果を受け各ユ
ニットを制御するための制御信号を発生する。例えば、
算術論理演算の時にはALU2を用いて実行される。I
NTC6は、マイクロコンピュータに内蔵される周辺装
置やマイクロコンピュータ外部からの割込み信号を入力
して、優先順位などの判定をした後、1つを選択して制
御部5に対し割込み要求信号を発生する。
でデコードされる。制御部5はデコーダ結果を受け各ユ
ニットを制御するための制御信号を発生する。例えば、
算術論理演算の時にはALU2を用いて実行される。I
NTC6は、マイクロコンピュータに内蔵される周辺装
置やマイクロコンピュータ外部からの割込み信号を入力
して、優先順位などの判定をした後、1つを選択して制
御部5に対し割込み要求信号を発生する。
【0022】制御部5は、1つの命令実行が終了する時
に、INTC6からの割込み要求信号が発生しているか
否かの検出を行ない、割込み要求信号が発生している時
には、そのソースに対応したレジスタバンクの識別値を
バンクセレクタ3に設定し、レジスタバンクを切り換え
る。
に、INTC6からの割込み要求信号が発生しているか
否かの検出を行ない、割込み要求信号が発生している時
には、そのソースに対応したレジスタバンクの識別値を
バンクセレクタ3に設定し、レジスタバンクを切り換え
る。
【0023】例えば、図6での処理の場合、プログラム
Aの処理をレジスタバンク1で実行し、割込み処理Cの
実行をレジスタバンク2で実行すると仮定する。プログ
ラムAの処理Aで割込みが発生した時のレジスタ値はレ
ジスタバンク1に残したまま、レジスタバンク2のレジ
スタで割込み処理Cの実行をするので、図6のフローチ
ャートで示したような、割込み処理Cの先頭でのレジス
タ退避、及び終了する時のレジスタ復帰処理を省略する
ことができる。
Aの処理をレジスタバンク1で実行し、割込み処理Cの
実行をレジスタバンク2で実行すると仮定する。プログ
ラムAの処理Aで割込みが発生した時のレジスタ値はレ
ジスタバンク1に残したまま、レジスタバンク2のレジ
スタで割込み処理Cの実行をするので、図6のフローチ
ャートで示したような、割込み処理Cの先頭でのレジス
タ退避、及び終了する時のレジスタ復帰処理を省略する
ことができる。
【0024】また、PC、PSWに関しては、例えば切
り換わり先のレジスタバンク(この場合、レジスタバン
ク2)のレジスタR0に予め設定されている値をPCに
格納し、もともとのPCの値をR0に格納する。PSW
も同様に、切り換わり先のレジスタR1に退避するなど
の方法を採用する。このような方法を採用することによ
り、メモリ空間へのコンテキスト退避、復帰にかかる時
間を短縮することができる。
り換わり先のレジスタバンク(この場合、レジスタバン
ク2)のレジスタR0に予め設定されている値をPCに
格納し、もともとのPCの値をR0に格納する。PSW
も同様に、切り換わり先のレジスタR1に退避するなど
の方法を採用する。このような方法を採用することによ
り、メモリ空間へのコンテキスト退避、復帰にかかる時
間を短縮することができる。
【0025】
【発明が解決しようとする課題】前述したようなレジス
タバンク方式を採用し、割込みが発生した時にレジスタ
バンクを切り換えることで、プログラムの切り換えが発
生した時も、切り換え先のプログラム内で利用するレジ
スタをスタック空間に退避したり、復帰したりするオー
バヘッドが省略できる。
タバンク方式を採用し、割込みが発生した時にレジスタ
バンクを切り換えることで、プログラムの切り換えが発
生した時も、切り換え先のプログラム内で利用するレジ
スタをスタック空間に退避したり、復帰したりするオー
バヘッドが省略できる。
【0026】しかし、上記の方式をとったとしても、レ
ジスタ全体の性能を低下させる要因が総て解決したわけ
ではない。
ジスタ全体の性能を低下させる要因が総て解決したわけ
ではない。
【0027】問題点の1つは、割込み処理プログラムの
実行によってシステム全体の動作状態に変化が発生した
場合、割込み処理プログラムから戻った後、プログラム
AからプログラムBに切り換える方法である。基本的に
は、図6で示したようにPC、PSWなどのコンテキス
トを直接操作することで実現するか、図7で示したよう
にソフトウェア・フラグを操作することで実現するか、
いづれかの方法をとることになる。いづれの場合にも、
アルゴリズム管理のためのソフトウェア負担が大きい。
実行によってシステム全体の動作状態に変化が発生した
場合、割込み処理プログラムから戻った後、プログラム
AからプログラムBに切り換える方法である。基本的に
は、図6で示したようにPC、PSWなどのコンテキス
トを直接操作することで実現するか、図7で示したよう
にソフトウェア・フラグを操作することで実現するか、
いづれかの方法をとることになる。いづれの場合にも、
アルゴリズム管理のためのソフトウェア負担が大きい。
【0028】2つ目の問題点は、より本質的な問題であ
るが、レジスタバンク方式を採用してコンテキスト管理
のオーバヘッドをいくら軽減しても、割込み処理そのも
のはメインのプログラム処理と同じCPUを利用して実
行するわけであるから、割込み発生の頻度の多い制御シ
ステムでは、割込み処理ばかりにCPUは時間を割かれ
て、メインのプログラム処理を実行する時間がなくなる
。システムが大きく複雑になればなるほど、この傾向は
顕著になる。
るが、レジスタバンク方式を採用してコンテキスト管理
のオーバヘッドをいくら軽減しても、割込み処理そのも
のはメインのプログラム処理と同じCPUを利用して実
行するわけであるから、割込み発生の頻度の多い制御シ
ステムでは、割込み処理ばかりにCPUは時間を割かれ
て、メインのプログラム処理を実行する時間がなくなる
。システムが大きく複雑になればなるほど、この傾向は
顕著になる。
【0029】本発明の目的は、システム全体の性能低下
を防止することができるマイクロコンピュータを提供す
ることにある。
を防止することができるマイクロコンピュータを提供す
ることにある。
【0030】
【課題を解決するための手段】本発明によるマイクロコ
ンピュータは、単一半導体基板上にROM、RAM、C
PU、割込み制御装置とその他の周辺装置の集積するマ
イクロコンピュータにおいて、独立した第1のCPUと
第2のCPUを内蔵し、且つ該第1のCPU、第2のC
PUはそれぞれ独立したALU、レジスタファイル、制
御部を内蔵し、前記割込制御装置によって起動される割
込処理プログラムの実行は、前記第2のCPUによって
実行され、割込み処理プログラムでない通常の処理プロ
グラムは、前記第1のCPUによって実行されることを
特徴としている。
ンピュータは、単一半導体基板上にROM、RAM、C
PU、割込み制御装置とその他の周辺装置の集積するマ
イクロコンピュータにおいて、独立した第1のCPUと
第2のCPUを内蔵し、且つ該第1のCPU、第2のC
PUはそれぞれ独立したALU、レジスタファイル、制
御部を内蔵し、前記割込制御装置によって起動される割
込処理プログラムの実行は、前記第2のCPUによって
実行され、割込み処理プログラムでない通常の処理プロ
グラムは、前記第1のCPUによって実行されることを
特徴としている。
【0031】さらに加えて、前記レジスタファイルは複
数個のレジスタバンクから構成され、前記レジスタバン
クは複数本のレジスタから構成され、プログラム動作の
ある時点においては、前記複数のレジスタバンク中、唯
一のレジスタバンクが選択され、選択されているレジス
タバンクを指し示すバンク指定手段を、前記第1のCP
U、第2のCPU共に独立して具備していることを特徴
としている。
数個のレジスタバンクから構成され、前記レジスタバン
クは複数本のレジスタから構成され、プログラム動作の
ある時点においては、前記複数のレジスタバンク中、唯
一のレジスタバンクが選択され、選択されているレジス
タバンクを指し示すバンク指定手段を、前記第1のCP
U、第2のCPU共に独立して具備していることを特徴
としている。
【0032】さらに加えて、前記1のCPU、第2のC
PUは共に、前記バンク指定手段の内容を変更すること
により、前記レジスタバンクの切り換えを実行する命令
を具備していることを特徴としている。
PUは共に、前記バンク指定手段の内容を変更すること
により、前記レジスタバンクの切り換えを実行する命令
を具備していることを特徴としている。
【0033】さらに加えて、前記割込み制御装置は、マ
イクロコンピュータに内蔵される前記周辺装置や、マイ
クロコンピュータの外部から発生する割込み要求を受け
付け、唯一の要求を選択し、前記第2のCPUに対し割
込要求信号を発生し、且つ前記第2のCPUは、前記割
込み要求信号に連動し、前記バンク指定手段の内容を変
更することにより、予め定められたレジスタバンクに切
り換えた後、前記第2のCPUによって割込み処理プロ
グラムを実行することを特徴としている。
イクロコンピュータに内蔵される前記周辺装置や、マイ
クロコンピュータの外部から発生する割込み要求を受け
付け、唯一の要求を選択し、前記第2のCPUに対し割
込要求信号を発生し、且つ前記第2のCPUは、前記割
込み要求信号に連動し、前記バンク指定手段の内容を変
更することにより、予め定められたレジスタバンクに切
り換えた後、前記第2のCPUによって割込み処理プロ
グラムを実行することを特徴としている。
【0034】さらに加えて、前記第2のCPUは、割込
み処理プログラムの実行を終了する終了命令を備え、終
了命令は、オペランドに前記第1のCPUのレジスタバ
ンクを識別する識別情報を指定することができ、前記終
了命令の実行によって前記第2のCPUにおける割込み
処理プログラムを終了すると共に、前記オペランドに指
定された前記識別情報を前記第1のCPUに対して通知
し、前記第1のCPUは前記識別情報を受け、所定のタ
イミングで、前記バンク指定手段の内容を変更すること
により、前記識別情報によって指定されたレジスタバン
クに切り換えることを特徴としている。
み処理プログラムの実行を終了する終了命令を備え、終
了命令は、オペランドに前記第1のCPUのレジスタバ
ンクを識別する識別情報を指定することができ、前記終
了命令の実行によって前記第2のCPUにおける割込み
処理プログラムを終了すると共に、前記オペランドに指
定された前記識別情報を前記第1のCPUに対して通知
し、前記第1のCPUは前記識別情報を受け、所定のタ
イミングで、前記バンク指定手段の内容を変更すること
により、前記識別情報によって指定されたレジスタバン
クに切り換えることを特徴としている。
【0035】
【実施例】本発明について、図1の図2を用いて説明す
る。図1は、2つのCPUから構成されるマイクロコン
ピュータの概略プログラム図である。
る。図1は、2つのCPUから構成されるマイクロコン
ピュータの概略プログラム図である。
【0036】本マイクロコンピュータは、第1のCPU
と第2のCPUから構成されている。第1のCPUは、
レジスタファイル1、ALU2、バンクセレクタ3、I
D4、全体の動作を制御する制御部5から構成される。 また、レジスタファイル1は、n個のレジスタバンクか
ら構成され、1つのレジスタバンクは複数のレジスタか
ら構成されている。
と第2のCPUから構成されている。第1のCPUは、
レジスタファイル1、ALU2、バンクセレクタ3、I
D4、全体の動作を制御する制御部5から構成される。 また、レジスタファイル1は、n個のレジスタバンクか
ら構成され、1つのレジスタバンクは複数のレジスタか
ら構成されている。
【0037】第2のCPUは、レジスタセット18、A
LU12、ID14、全体の動作を制御する制御部15
、INTC6、バス17から構成される。また、レジス
タセット11は、複数のレジスタから構成される。バス
7は、第1CPU、第2のCPU共に接続されている。
LU12、ID14、全体の動作を制御する制御部15
、INTC6、バス17から構成される。また、レジス
タセット11は、複数のレジスタから構成される。バス
7は、第1CPU、第2のCPU共に接続されている。
【0038】尚、マイクロコンピュータは通常、ROM
、RAM、周辺装置などを内蔵しているが本発明の説明
において直接関係ないので特に図示していない。
、RAM、周辺装置などを内蔵しているが本発明の説明
において直接関係ないので特に図示していない。
【0039】命令コードをデコーダが受け付けてから、
実行するまでの流れは、従来例と同じなので詳細は省略
する。第1のCPU、第2のCPUそれぞれが命令コー
ドのデコード、実行を並行して行なうことができる。命
令コード体系は、第1のCPU、第2のCPUで同一で
あっても、異なっていてもよい。
実行するまでの流れは、従来例と同じなので詳細は省略
する。第1のCPU、第2のCPUそれぞれが命令コー
ドのデコード、実行を並行して行なうことができる。命
令コード体系は、第1のCPU、第2のCPUで同一で
あっても、異なっていてもよい。
【0040】INTC6は、マイクロコンピュータに内
蔵される周辺装置やマイクロコンピュータ外部からの割
込み信号を入力して、優先順位などの判定をした後、1
つを選択して制御部15に対して割込み要求信号を発生
する。
蔵される周辺装置やマイクロコンピュータ外部からの割
込み信号を入力して、優先順位などの判定をした後、1
つを選択して制御部15に対して割込み要求信号を発生
する。
【0041】制御部15は、INTC6からの割込み要
求信号が発生しているか否かの検出を行ない、割込み要
求信号が発生している時には、レジスタセット18を使
用して割込み処理をスタートする。
求信号が発生しているか否かの検出を行ない、割込み要
求信号が発生している時には、レジスタセット18を使
用して割込み処理をスタートする。
【0042】図2は、本発明によるマイクロコンピュー
タ上でプログラムを実行した場合のフローチャートであ
る。プログラムAと、プログラムBは第1のCPUで動
作する。割込み処理Cは第2のCPUで動作する。プロ
グラムAは、レジスタファイル1内のレジスタバンク1
上で動作し、プログラムBはレジスタバンク2上で動作
すると仮定する。処理Aの実行中、割込みINTが発生
した場合、処理Aはレジスタバンク1上で継続して動作
する。
タ上でプログラムを実行した場合のフローチャートであ
る。プログラムAと、プログラムBは第1のCPUで動
作する。割込み処理Cは第2のCPUで動作する。プロ
グラムAは、レジスタファイル1内のレジスタバンク1
上で動作し、プログラムBはレジスタバンク2上で動作
すると仮定する。処理Aの実行中、割込みINTが発生
した場合、処理Aはレジスタバンク1上で継続して動作
する。
【0043】割込み処理Cは、第2のCPUで実行され
るため、処理の先頭でレジスタバンク1のコンテキスト
を退避する必要はない。従って処理Cを即実行すること
ができる。
るため、処理の先頭でレジスタバンク1のコンテキスト
を退避する必要はない。従って処理Cを即実行すること
ができる。
【0044】割込み処理Cでは、処理Cの実行後、シス
テムの状態判別を実行し、プログラムの動作状態を変更
する必要がない時には、普通に割込み処理を終了するR
ETI命令を実行することで処理を終了する。状態変化
が発生し、プログラムの動作状態を変更する必要が発生
した時には、第1のCPUのレジスタバンクを指定する
コードをオペランドに記述したRETIコード命令を実
行することで処理を終了する。
テムの状態判別を実行し、プログラムの動作状態を変更
する必要がない時には、普通に割込み処理を終了するR
ETI命令を実行することで処理を終了する。状態変化
が発生し、プログラムの動作状態を変更する必要が発生
した時には、第1のCPUのレジスタバンクを指定する
コードをオペランドに記述したRETIコード命令を実
行することで処理を終了する。
【0045】RETIコード命令はID14でデコード
され、制御部15によってバス7上に出力される。本例
の場合、コードはレジスタバンク2への切り換えを示す
情報であるとする。
され、制御部15によってバス7上に出力される。本例
の場合、コードはレジスタバンク2への切り換えを示す
情報であるとする。
【0046】第1のCPUでは、バス7上に出力された
コードをデコードする。コードがレジスタバンク2を指
し示しているため、制御部5は、所定のタイミングでバ
ンクセレクタ3の内容を書き換え、レジスタバンク1か
らレジスタバンク2へ変更する。レジスタバンクを変更
することで、プログラムAからプログラムBへ制御を移
行する。汎用レジスタ以外のPC、PSWなどに関して
は、従来例で示したように、レジスタの一部を利用した
コンテキスト管理を行なうものとする。
コードをデコードする。コードがレジスタバンク2を指
し示しているため、制御部5は、所定のタイミングでバ
ンクセレクタ3の内容を書き換え、レジスタバンク1か
らレジスタバンク2へ変更する。レジスタバンクを変更
することで、プログラムAからプログラムBへ制御を移
行する。汎用レジスタ以外のPC、PSWなどに関して
は、従来例で示したように、レジスタの一部を利用した
コンテキスト管理を行なうものとする。
【0047】プログラムBの処理が終了した後、RET
CS命令はPC、PSWなどのコンテキストを復帰した
後、バンクセレクタ3の内容を変更することで、レジス
タバンク2からレジスタバンク1に切り換える。切り換
えることで、プログラムBからプログラムAへ制御を戻
す。
CS命令はPC、PSWなどのコンテキストを復帰した
後、バンクセレクタ3の内容を変更することで、レジス
タバンク2からレジスタバンク1に切り換える。切り換
えることで、プログラムBからプログラムAへ制御を戻
す。
【0048】以上の様な構成をとることで、割込み処理
CとプログラムAとを並行して実行すると伴に、割込み
処理Cの終了によって、プログラムAから直接プログラ
ムBへ処理を切り換えることができる。従って、プログ
ラム切り換えの際のコンテキストの退避、復帰処理がな
く、且つソフトウェアによるアルゴリズム管理も省略す
ることができる。
CとプログラムAとを並行して実行すると伴に、割込み
処理Cの終了によって、プログラムAから直接プログラ
ムBへ処理を切り換えることができる。従って、プログ
ラム切り換えの際のコンテキストの退避、復帰処理がな
く、且つソフトウェアによるアルゴリズム管理も省略す
ることができる。
【0049】次に、図3、図4を利用して本発明の第2
実施例を説明する。図3は、2つのCPUから構成され
るマイクロコンピュータの概略ブロック図であり、図1
で示したブロック図におけるレジスタセット18の代り
に、レジスタファイル11とバンクセレクタ13になっ
ている点を除いて図1のブロック図と同一である。レジ
スタファイル11は、m個のレジスタバンクから構成さ
れている。
実施例を説明する。図3は、2つのCPUから構成され
るマイクロコンピュータの概略ブロック図であり、図1
で示したブロック図におけるレジスタセット18の代り
に、レジスタファイル11とバンクセレクタ13になっ
ている点を除いて図1のブロック図と同一である。レジ
スタファイル11は、m個のレジスタバンクから構成さ
れている。
【0050】基本的な動作は、第1の実施例と同様であ
るため説明は省略する。異なる点を図7を用いて説明す
る。プログラムAと、プログラムBは第1のCPUで動
作する。割込み処理Cと割込み処理Dは第2のCPUで
動作する。また、プログラムAは、レジスタファイル1
内のレジスタバンク1上で、プログラムBはレジスタバ
ンク2上で動作するものとし、割込み処理Cは、レジス
タファイル11内のレジスタバンク1上で、割込み処理
Dは、レジスタバンク2上で動作するものと仮定する。
るため説明は省略する。異なる点を図7を用いて説明す
る。プログラムAと、プログラムBは第1のCPUで動
作する。割込み処理Cと割込み処理Dは第2のCPUで
動作する。また、プログラムAは、レジスタファイル1
内のレジスタバンク1上で、プログラムBはレジスタバ
ンク2上で動作するものとし、割込み処理Cは、レジス
タファイル11内のレジスタバンク1上で、割込み処理
Dは、レジスタバンク2上で動作するものと仮定する。
【0051】図4は、割込み処理がネスティングした時
の処理を示してある。処理Aの実行中、割込みINTが
発生した場合、処理Aはレジスタファイル1のレジスタ
バンク1上で継続して動作する。
の処理を示してある。処理Aの実行中、割込みINTが
発生した場合、処理Aはレジスタファイル1のレジスタ
バンク1上で継続して動作する。
【0052】第1の実施例同様、割込み処理Cは第2の
CPUで実行されるため、処理の先頭でレジスタバンク
1のコンテキストを退避する必要はない。従って処理C
を即実行することができる。処理Cはレジスタファイル
11のレジスタバンク1上で動作する。処理Cの実行中
、新たな割込みが発生すると、制御部15によって、バ
ンクセレクタ13の内容を変更することによってレジス
タファイル11のレジスタバンク1からレジスタバンク
2に切り換え、割込み処理Dを実行する。
CPUで実行されるため、処理の先頭でレジスタバンク
1のコンテキストを退避する必要はない。従って処理C
を即実行することができる。処理Cはレジスタファイル
11のレジスタバンク1上で動作する。処理Cの実行中
、新たな割込みが発生すると、制御部15によって、バ
ンクセレクタ13の内容を変更することによってレジス
タファイル11のレジスタバンク1からレジスタバンク
2に切り換え、割込み処理Dを実行する。
【0053】割込み処理Dでは、処理Dの実行後、シス
テムの状態判別を状態し、プログラムの動作状態を変更
する必要がない時には、普通に割込み処理を終了するR
ETI命令を実行することで処理を終了する。状態変化
が発生し、プログラムの動作状態を変更する必要が発生
した時には、第1のCPUのレジスタバンクを指定する
コードをオペランドに記述したRETIコード命令を実
行することで処理を終了する。
テムの状態判別を状態し、プログラムの動作状態を変更
する必要がない時には、普通に割込み処理を終了するR
ETI命令を実行することで処理を終了する。状態変化
が発生し、プログラムの動作状態を変更する必要が発生
した時には、第1のCPUのレジスタバンクを指定する
コードをオペランドに記述したRETIコード命令を実
行することで処理を終了する。
【0054】ここで、第1の実施例と同様、コードはレ
ジスタファイル1のレジスタバンク2への切り換えを示
す情報であるとする。
ジスタファイル1のレジスタバンク2への切り換えを示
す情報であるとする。
【0055】第1のCPUでは、バス7上に出力された
コードをデコードし、コードがレジスタバンク2を指し
示しているため、バンクセレクタ3の内容を書き換える
ことで、レジスタファイル1のレジスタバンク1からレ
ジスタバンク2へ変更する。レジスタバンクを変更する
ことで、プログラムAからプログラムBへ制御を移行す
る。
コードをデコードし、コードがレジスタバンク2を指し
示しているため、バンクセレクタ3の内容を書き換える
ことで、レジスタファイル1のレジスタバンク1からレ
ジスタバンク2へ変更する。レジスタバンクを変更する
ことで、プログラムAからプログラムBへ制御を移行す
る。
【0056】プログラムBの処理が終了した後、RET
CS命令はPC、PSWなどのコンテキストを復帰した
後、バンクセレクタ3の内容を変更することで、レジス
タバンク2からレジスタバンク1に切り換える。切り換
えることで、プログラムBからプログラムAへ制御を戻
す。
CS命令はPC、PSWなどのコンテキストを復帰した
後、バンクセレクタ3の内容を変更することで、レジス
タバンク2からレジスタバンク1に切り換える。切り換
えることで、プログラムBからプログラムAへ制御を戻
す。
【0057】以上の様な構成をとることで、割込み処理
のネスティングが発生した場合の対応をとることができ
る。
のネスティングが発生した場合の対応をとることができ
る。
【0058】図5を用いて、1つのCPUで且つレジス
タバンク方式などのコンテキスト切り換え機能を内蔵し
ていない従来例と、本発明の第2の実施例との性能比較
について説明する。
タバンク方式などのコンテキスト切り換え機能を内蔵し
ていない従来例と、本発明の第2の実施例との性能比較
について説明する。
【0059】従来例、実施例とも、プログラムAは50
0処理単位、プログラムBは2000処理単位、割込み
処理Cは2000処理単位、割込み処理Dは1000処
理単位、CPU時間を要するものと仮定する。また、従
来例においてコンテキスト切り換えに要する時間を50
0処理単位とする。
0処理単位、プログラムBは2000処理単位、割込み
処理Cは2000処理単位、割込み処理Dは1000処
理単位、CPU時間を要するものと仮定する。また、従
来例においてコンテキスト切り換えに要する時間を50
0処理単位とする。
【0060】図5で、縦の太い実線は実処理に要するC
PU時間を、また点線はコンテキスト切り換えに要する
CPU時間を表現している。また、横の実線は割込み発
生、割込み処理からの復帰、プログラムの切り換えタイ
ミングを示している。
PU時間を、また点線はコンテキスト切り換えに要する
CPU時間を表現している。また、横の実線は割込み発
生、割込み処理からの復帰、プログラムの切り換えタイ
ミングを示している。
【0061】本発明による実施例の場合、図5(a)に
示すように、プログラムA、割込み処理C、割込み処理
Dを並行して、また、プログラムBと割込み処理Cを並
行して実行でき、且つコンテキスト管理にCPU時間を
とられないため、システム全体を7000処理単位で実
行することができる。
示すように、プログラムA、割込み処理C、割込み処理
Dを並行して、また、プログラムBと割込み処理Cを並
行して実行でき、且つコンテキスト管理にCPU時間を
とられないため、システム全体を7000処理単位で実
行することができる。
【0062】それに対して、従来例では、図5(b)に
示すように、CPU処理がシーケンシャルであり、且つ
コンテキスト管理にCPU時間を割かれるため、トータ
ルで13000処理単位を要する。レジスタバンク方式
を採用して、コンテキスト管理が省略できたとしても、
10000処理単位は要する。
示すように、CPU処理がシーケンシャルであり、且つ
コンテキスト管理にCPU時間を割かれるため、トータ
ルで13000処理単位を要する。レジスタバンク方式
を採用して、コンテキスト管理が省略できたとしても、
10000処理単位は要する。
【0063】また、割込み処理を終了する時の専用命令
を用意し、レジスタバンク切り換え情報を直接出力する
ことで、ソフトウェア的プログラム切り換え管理を省略
することができ、ソフトウェアの負担を軽減することが
可能になる。尚、図5では、このプログラム切り換えに
係わるソフトウェア負担のオーバヘッドは、CPU時間
に含めておらず、これを含めて考慮すれば、処理性能差
はより大きくなる。
を用意し、レジスタバンク切り換え情報を直接出力する
ことで、ソフトウェア的プログラム切り換え管理を省略
することができ、ソフトウェアの負担を軽減することが
可能になる。尚、図5では、このプログラム切り換えに
係わるソフトウェア負担のオーバヘッドは、CPU時間
に含めておらず、これを含めて考慮すれば、処理性能差
はより大きくなる。
【0064】本例では、対象となるモデルを単純化して
いるが、実際のシステムはより複雑であり本説明のよう
に簡単に性能を評価することは困難である。しかし、本
発明を採用することでシステム全体の性能が格段に向上
することは明白である。
いるが、実際のシステムはより複雑であり本説明のよう
に簡単に性能を評価することは困難である。しかし、本
発明を採用することでシステム全体の性能が格段に向上
することは明白である。
【0065】
【発明の効果】上述したように、1つのマイクロコンピ
ュータに2つのCPUを内蔵し、通常のプログラム処理
を第1のCPU、割込み処理を第2のCPUで分担して
実行させる構成とし、且つそれぞれのCPUをレジスタ
バンク構成とすることで、制御システムのような割込み
発生頻度の多いアプリケーションにおいて、システム全
体の性能低下を最小限に留めることができる。
ュータに2つのCPUを内蔵し、通常のプログラム処理
を第1のCPU、割込み処理を第2のCPUで分担して
実行させる構成とし、且つそれぞれのCPUをレジスタ
バンク構成とすることで、制御システムのような割込み
発生頻度の多いアプリケーションにおいて、システム全
体の性能低下を最小限に留めることができる。
【図1】本発明の第1の実施例を示すブロック図である
。
。
【図2】図1の動作を説明するためのフローチャートで
ある。
ある。
【図3】本発明の第2の実施例を示すブロック図である
。
。
【図4】図3の動作を説明するためのフローチャートで
ある。
ある。
【図5】従来例と本実施例の性能差を示す図である。
【図6】従来例を説明するためのフローチャートである
。
。
【図7】従来例を説明するためのフローチャートである
。
。
【図8】従来例を示すブロック図である。
1,11 レジスタファイル
2,12 ALU
3,13 バンクセレクタ
4,14 ID
5,15 制御部
6 INTC
7,17 バス
18 レジスタセット
Claims (4)
- 【請求項1】 それぞれが独立したALU、レジスタ
ファイル、制御部を内蔵し割込み処理プログラムでない
通常処理プログラムを実行する第1のCPU及び割込み
制御装置によって起動される割込み処理プログラムの実
行する第2のCPUとを備え、前記レジスタファイルは
複数個のレジスタバンクから構成されこのレジスタバン
クは複数本のレジスタから構成され、プログラム動作時
のある時点においては、前記複数のレジスタバンク中、
唯一のレジスタバンクが選択しこの選択されているレジ
スタバンクを指し示すバンク指定手段を前記1のCPU
、第2のCPU共に独立して具備していることを特徴と
するマイクロコンピュータ。 - 【請求項2】 前記第1のCPU、第2のCPUは共
に前記バンク指定手段の内容を変更することにより前記
レジスタバンクの切り換えを実行する手段を具備してい
ることを特徴とする請求1項記載のマイクロコンピュー
タ。 - 【請求項3】 前記割込み制御装置はマイクロコンピ
ュータに内蔵される周辺装置や、マイクロコンピュータ
の外部から発生する割込み要求を受け付け唯一の要求を
選択し、前記第2のCPUに対し割込み要求信号を発生
し、前記第2のCPUは前記割込み要求信号に対応して
前記バンク指定手段の内容を変更することにより予め定
められたレジスタバンクに切り換えた後割込み処理プロ
グラムを実行することを特徴とする請求1項記載のマイ
クロコンピュータ。 - 【請求項4】 前記第2のCPUは割込み処理プログ
ラムの実行を終了する終了命令を備え、この終了命令は
オペランドに前記第1のCPUのレジスタバンクを識別
する識別情報を指定し、前記終了命令の実行によって前
記第2のCPUにおける割込み処理プログラムを終了す
ると共に、前記オペランドに指定された前記識別情報を
前記第1のCPUに対して通知し前記第1のCPUは所
定のタイミングで前記バンク指定手段の内容を変更する
ことにより前記識別情報によって指定されたレジスタバ
ンクに切り換える手段を有することを特徴とする請求項
1記載のマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1626891A JPH04256027A (ja) | 1991-02-07 | 1991-02-07 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1626891A JPH04256027A (ja) | 1991-02-07 | 1991-02-07 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04256027A true JPH04256027A (ja) | 1992-09-10 |
Family
ID=11911806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1626891A Pending JPH04256027A (ja) | 1991-02-07 | 1991-02-07 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04256027A (ja) |
-
1991
- 1991-02-07 JP JP1626891A patent/JPH04256027A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8195922B2 (en) | System for dynamically allocating processing time to multiple threads | |
US7836291B2 (en) | Method, medium, and apparatus with interrupt handling in a reconfigurable array | |
JPH02144630A (ja) | データ処理装置 | |
JP3970609B2 (ja) | プロセッサシステム | |
EP0239078B1 (en) | Register saving/restoring system | |
JP2005050208A (ja) | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 | |
CN112579162A (zh) | 异构isa平台上硬件和软件协调的对高级特征选入的方法 | |
KR101838474B1 (ko) | 다중프로세서 시스템에서의 예외 제어 | |
US20080010426A1 (en) | Processor system and processing method for operating system program in processor system | |
JP2677458B2 (ja) | システムコール実行装置 | |
US20030037227A1 (en) | Processor enabling exception handling to be set by program | |
JP2008537248A (ja) | デジタルシグナルプロセッサ上でのマルチタスクの実施 | |
JPH0916409A (ja) | マイクロコンピュータ | |
JPH04256027A (ja) | マイクロコンピュータ | |
US20100107169A1 (en) | Periodical task execution apparatus, periodical task execution method, and storage medium | |
JP2723847B2 (ja) | マイクロプロセッサ | |
JP2000076081A (ja) | タスクマネージャー及びプログラム記録媒体 | |
JP3539984B2 (ja) | プロセッサ | |
JPH056281A (ja) | 情報処理装置 | |
JPH0414376B2 (ja) | ||
US5778207A (en) | Assisting operating-system interrupts using application-based processing | |
JP2008225710A (ja) | コンピュータシステム及び該システムで用いられるプロセス切替え方法 | |
JP2005275703A (ja) | プロセッサ及びコンテキスト切り替え方法 | |
JP2005071141A (ja) | スタック管理方法及び装置並びにスタック管理プログラム | |
JP4116752B2 (ja) | 計算機とその制御方法 |