(57)【要約】【課題】プログラムの簡易化を図ることのできるマイクロコントローラを提供すること。【解決手段】周辺回路１４は、フラグｆ１〜ｆ３の各状態に応じてジャンプ先アドレス値「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」があらかじめ記憶される第１〜第４のフラグ連動レジスタ２１〜２４を備える。ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対して、それぞれに共通する特定アドレスを指定してデータの読み出しを行うことにより、そのときのフラグｆ１〜ｆ３の変化に連動した何れか１つのフラグ連動レジスタに記憶されているジャンプ先アドレス値を読み出す。【選択図】      図１
2004185094.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、周辺回路と、該周辺回路を動作させるプログラムを格納するメモリとを含むマイクロコントローラであって、
前記周辺回路の動作状態に応じて変化するフラグの各状態に対応して、前記ＣＰＵが実行するプログラムのジャンプ先を示すジャンプ先アドレス値があらかじめ記憶される複数のフラグ連動レジスタを備え、
前記ＣＰＵは、前記複数のフラグ連動レジスタのうち、前記フラグの変化に連動した何れか１つのフラグ連動レジスタに記憶された前記ジャンプ先アドレス値を読み出すことを特徴とするマイクロコントローラ。
【請求項２】
前記フラグの各状態をそれぞれ判定し、前記ＣＰＵによる前記ジャンプ先アドレス値の読み出しを制御するフラグ判定信号を前記複数のフラグ連動レジスタに対して出力する複数のフラグ判定回路を備えたことを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに共通する特定アドレスを指定して前記ジャンプ先アドレス値の読み出しを行うことを特徴とする請求項１又は２記載のマイクロコントローラ。
【請求項４】
前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに割り当てられた個別のアドレスを指定して前記ジャンプ先アドレス値の書き込みを行うことを特徴とする請求項１乃至３の何れか一項記載のマイクロコントローラ。
【請求項５】
前記ジャンプ先アドレス値は、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムの絶対アドレス値であることを特徴とする請求項１乃至４の何れか一項記載のマイクロコントローラ。
【請求項６】
前記ジャンプ先アドレス値は、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムに相対ジャンプするための相対アドレス値であることを特徴とする請求項１乃至４の何れか一項記載のマイクロコントローラ。
【請求項７】
周辺回路の動作状態に応じたプログラムにジャンプして処理を実行するＣＰＵを備えたマイクロコントローラの制御方法であって、
前記ＣＰＵは、
前記周辺回路の動作状態に応じて変化するフラグの各状態に対応して、複数のフラグ連動レジスタに前記プログラムのジャンプ先を示すジャンプ先アドレス値を書き込むステップと、
前記複数のフラグ連動レジスタのうち、前記フラグの変化に連動した何れか１つのフラグ連動レジスタに記憶された前記ジャンプ先アドレス値を読み出すステップと
を実行することを特徴とするマイクロコントローラの制御方法。
【請求項８】
前記ジャンプ先アドレス値を書き込むステップにおいて、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに割り当てられた個別のアドレスを指定して書き込みを行うことを特徴とする請求項７記載のマイクロコントローラの制御方法。
【請求項９】
前記ジャンプ先アドレス値を読み出すステップにおいて、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに共通する特定アドレスを指定して読み出しを行うことを特徴とする請求項７記載のマイクロコントローラの制御方法。
【請求項１０】
前記ジャンプ先アドレス値を読み出すステップにおいて、前記ＣＰＵは、前記フラグの各状態をそれぞれ判定した複数のフラグ判定信号に基づいて読み出しを行うことを特徴とする請求項９記載のマイクロコントローラの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコントローラ及びその制御方法に関するものである。
近年、半導体装置（ＬＳＩ）の集積度は高まり、チップ内に各種処理を実行するＣＰＵやその周辺回路等を備えるマイクロコントローラが多く使用されるようになってきている。マイクロコントローラには、周辺回路を動作させるプログラムを格納するＲＯＭが搭載され、ＣＰＵはそのプログラムに従って処理を実行する。こうしたマイクロコントローラにおいては、ＲＯＭに格納できるプログラムのサイズが制限されることから、プログラムの簡易化が望まれている。
【０００２】
【従来の技術】
図５は、従来のマイクロコントローラの概略構成を示すブロック図である。
マイクロコントローラ７１は、ＣＰＵ７２、プログラムＲＯＭ（以下では、単にＲＯＭという）７３、及び、１又は複数（図は１つ示す）の周辺回路７４を備え、それらはバス７５を介して相互に接続されている。
【０００３】
ＲＯＭ７３には、周辺回路７４の動作を制御するためのプログラムが格納されており、ＣＰＵ７２は、ＲＯＭ７３をアクセスしてそのプログラムに含まれる命令を随時読み出し、該読み出した命令に応じて各種の処理を実行する。
【０００４】
このようなプログラムに含まれる命令には、例えばジャンプ命令などの分岐命令がある。このジャンプ命令では、ＣＰＵ７２は、周辺回路７４に設定されているフラグｆ１〜ｆ３（ここでは例えば３種類）の各状態を判定して周辺回路７４の動作状態を確認し、その動作状態に対応するアドレス値のプログラムにジャンプして処理を実行する。
【０００５】
図６は、従来のフラグ判定処理を示すフローチャートである。
尚、ここでは、上記周辺回路７４が、各フラグｆ１〜ｆ３のうち２つ以上が同時に「１」とはならない場合について説明する。
【０００６】
今、ＣＰＵ７２は、ＲＯＭ７３をアクセスしてアドレスＡに対応するプログラム（フラグ判定プログラム）を実行し、周辺回路７４に設定された各フラグｆ１〜ｆ３の読み取りを待つ状態となる（ステップ８１）。
【０００７】
まず、ＣＰＵ７２は、フラグｆ１が「１」であるか否かを判定する（ステップ８２）。ここで、フラグｆ１が「１」である場合、ＣＰＵ７２は、該フラグｆ１が立つときの動作状態に対応したアドレスＢのプログラムにジャンプして処理を実行する。
【０００８】
そのステップ８２においてフラグｆ１が「０」である場合、次に、ＣＰＵ７２は、フラグｆ２が「１」であるか否かを判定する（ステップ８３）。ここで、フラグｆ２が「１」である場合、ＣＰＵ７２は、該フラグｆ２が立つときの動作状態に対応したアドレスＣのプログラムにジャンプして処理を実行する。
【０００９】
そのステップ８３においてフラグｆ２が「０」である場合、次に、ＣＰＵ７２は、フラグｆ３が「１」であるか否かを判定する（ステップ８４）。ここで、フラグｆ３が「１」である場合、ＣＰＵ７２は、該フラグｆ３が立つときの動作状態に対応したアドレスＤのプログラムにジャンプして処理を実行する。
【００１０】
このようなフラグ判定プログラムによって、ＣＰＵ７２は、フラグｆ１〜ｆ３の各状態を順番に１つずつ判定し、その判定結果に基づいて、周辺回路７４の動作状態にそれぞれ対応するアドレス値（アドレスＢ，Ｃ又はＤ）の処理プログラムにジャンプする。
【００１１】
そして、ＣＰＵ７２は、各ジャンプ先の処理プログラムを実行した後は、再度ステップ８１に移行して各フラグｆ１〜ｆ３の読み取りを待つ状態となる。また、ＣＰＵ７２は、上記各ステップ８２〜８４にて、各フラグｆ１〜ｆ３が何れも「０」である場合には、同様に再度ステップ８１に移行して各フラグｆ１〜ｆ３の読み取りを待つ状態となる。
【００１２】
【発明が解決しようとする課題】
ところで、近年のＬＳＩの高集積化及び多機能化に伴い、マイクロコントローラには、多数の周辺回路が１チップ内に搭載されるようになってきている。従って、上記のように各周辺回路についてそれぞれのフラグを判定するためのフラグ判定プログラムを設けることは、プログラムを複雑化させるとともに、プログラムサイズを増大させ、プログラム開発を困難にするという問題があった。
【００１３】
因みに、マイクロコントローラでは、そのチップ内にＲＯＭが搭載されることから、それに格納できるプログラムのサイズは必然的に制限される。このため、プログラムサイズが増大してＲＯＭの容量を超えてしまう場合には、プログラム削減のための作業が必要となっていた。
【００１４】
また、前述したフラグ判定プログラムでは、それぞれの周辺回路においてフラグの各状態が順番に１つずつ判定される。例えば、図６において、フラグｆ３が「１」であるか否かは、フラグｆ１、フラグｆ２の確認後に判定される。これにより、ＣＰＵの処理速度が低下するという問題も有していた。
【００１５】
本発明は上記問題点を解決するためになされたものであって、その目的は、プログラムの簡易化を図ることのできるマイクロコントローラ及びその制御方法を提供することにある。
【００１６】
【課題を解決するための手段】
上記目的を達成するため、請求項１，７に記載の発明によれば、マイクロコントローラは、周辺回路の動作状態に応じて変化するフラグの各状態に対応して、ＣＰＵが実行するプログラムのジャンプ先を示すジャンプ先アドレス値があらかじめ記憶される複数のフラグ連動レジスタを備え、前記ＣＰＵは、前記複数のフラグ連動レジスタのうち、前記フラグの変化に連動した何れか１つのフラグ連動レジスタに記憶された前記ジャンプ先アドレス値を読み出す。これにより、ＣＰＵは、複数のフラグ連動レジスタに対してデータの読み出しを行うことにより、そのときの周辺回路の動作状態に対応するジャンプ先アドレス値を直ちに得ることができる。このため、フラグの各状態を判定するためのプログラムは不要であり、プログラムの簡易化を図ることができる。
【００１７】
請求項２，１０に記載の発明によれば、複数のフラグ判定回路は、前記フラグの各状態をそれぞれ判定し、前記ＣＰＵによる前記ジャンプ先アドレス値の読み出しを制御するフラグ判定信号を前記複数のフラグ連動レジスタに対してそれぞれ出力する。これにより、ＣＰＵにより読み出されるジャンプ先アドレス値は、フラグ判定回路から出力されるフラグ判定信号に基づいて何れかに決定される。従って、ＣＰＵは、複数のフラグ連動レジスタに対してデータの読み出しの命令を行うのみでよい。
【００１８】
請求項３，９に記載の発明によれば、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに共通する特定アドレスを指定して前記ジャンプ先アドレス値の読み出しを行う。これにより、ＣＰＵは、周辺回路の動作状態に対応するジャンプ先アドレスをただ１回のデータ読み出しによって得ることができる。従って、目的とするジャンプ先のプログラムに直ちに移行することができるため、ＣＰＵの処理速度を向上させることができる。
【００１９】
請求項４，８に記載の発明によれば、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに割り当てられた個別のアドレスを指定して前記ジャンプ先アドレス値の書き込みを行う。これにより、ＣＰＵは、各フラグ連動レジスタに対して、任意のジャンプ先アドレス値を適宜書き込むことが可能である。
【００２０】
請求項５に記載の発明によれば、前記複数のフラグ連動レジスタには、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムの絶対アドレス値を書き込むようにした。これにより、ＣＰＵは、何れか１つのフラグ連動レジスタから読み出した絶対アドレス値に基づいて、対応するプログラムにジャンプする。
【００２１】
請求項６に記載の発明によれば、前記複数のフラグ連動レジスタには、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムに相対ジャンプするための相対アドレス値を書き込むようにした。これにより、ＣＰＵは、何れか１つのフラグ連動レジスタから読み出した相対アドレス値に基づいて、対応するプログラムに相対ジャンプする。その結果、上記の絶対アドレス値を使用する場合に比してＣＰＵの処理速度を向上させることができる。
【００２２】
【発明の実施の形態】
（第一実施形態）
以下、本発明を具体化した第一実施形態を図１〜図３に従って説明する。
【００２３】
図１は、本実施形態のマイクロコントローラの概略構成を示すブロック回路図である。マイクロコントローラ１１は、ＣＰＵ１２、メモリとしてのプログラムＲＯＭ（以下、単にＲＯＭという）１３、及び、１又は複数（図は１つ示す）の周辺回路１４を備え、それらはバス１５を介して相互に接続されている。
【００２４】
ＲＯＭ１３には、周辺回路１４の動作を制御するためのプログラムが格納されており、ＣＰＵ１２は、ＲＯＭ１３をアクセスしてそのプログラムに含まれる命令を随時読み出し、該読み出した命令に応じて各種の処理を実行する。
【００２５】
このようなプログラムの実行においてジャンプ命令が発生する場合、ＣＰＵ１２は、周辺回路１４の動作状態に対応してあらかじめ設定される所定のアドレス値のプログラムにジャンプして処理を実行する。
【００２６】
周辺回路１４の動作状態は、本実施形態では例えば３種類のフラグｆ１〜ｆ３の各状態によって示される。尚、ここでは、周辺回路１４は、各フラグｆ１〜ｆ３のうち２つ以上が同時に「１」とはならない回路である。
【００２７】
周辺回路１４には、前記フラグｆ１〜ｆ３の各状態、つまり周辺回路１４の各動作状態に対応するプログラムのジャンプ先を示すアドレス値（以下、ジャンプ先アドレス値）として、それぞれ絶対アドレス値をあらかじめ記憶した複数（本実施形態では４つ）のフラグ連動レジスタ２１〜２４が設けられている。
【００２８】
詳述すると、第１のフラグ連動レジスタ２１には、フラグｆ１が「１」（他のフラグｆ２，ｆ３がともに「０」）のときの周辺回路１４の動作状態に対応するジャンプ先アドレス値「Ｂ」が書き込まれている。
【００２９】
第２のフラグ連動レジスタ２２には、フラグｆ２が「１」（他のフラグｆ１，ｆ３がともに「０」）のときの周辺回路１４の動作状態に対応するジャンプ先アドレス値「Ｃ」が書き込まれている。
【００３０】
第３のフラグ連動レジスタ２３には、フラグｆ３が「１」（他のフラグｆ１，ｆ２がともに「０」）のときの周辺回路１４の動作状態に対応するジャンプ先アドレス値「Ｄ」が書き込まれている。
【００３１】
第４のフラグ連動レジスタ２４には、各フラグｆ１〜ｆ３がともに「０」のときの周辺回路１４の動作状態に対応するジャンプ先アドレス値「Ａ」が書き込まれている。
【００３２】
以下、周辺回路１４の具体的構成を図２に従って説明する。
周辺回路１４は、前記各フラグｆ１〜ｆ３が設定される周辺回路本体２５と、アドレスデコーダ２６と、前記第１〜第４のフラグ連動レジスタ２１〜２４とを含み、それらは前記バス１５を介してＣＰＵ１２と相互に接続されている。
【００３３】
アドレスデコーダ２６は、ＣＰＵ１２から出力されるアドレス信号をデコードし、周辺回路本体２５及び第１〜第４のフラグ連動レジスタ２１〜２４に対してそれぞれ割り当てられた個別のアドレスに対応する選択信号ＳＥＬ，ＳＥＬ１〜ＳＥＬ４を出力する。また、アドレスデコーダ２６は、ＣＰＵ１２からの各種制御信号に応答してライト信号ＷＥ及びリード信号ＲＤを出力する。これにより、ＣＰＵ１２は、バス１５を介して周辺回路本体２５及び各フラグ連動レジスタ２１〜２４に対してデータの書き込み及び読み出しを行う。
【００３４】
アドレスデコーダ２６から出力される選択信号ＳＥＬ１〜ＳＥＬ４は、それぞれ２入力にてなるアンド回路３１〜３４の一方の入力端子に入力され、各アンド回路３１〜３４の他方の入力端子には、同アドレスデコーダ２６から出力されるライト信号ＷＥが入力される。アンド回路３１〜３４の出力信号は、それぞれ第１〜第４のフラグ連動レジスタ２１〜２４のライト制御端子に入力される。
【００３５】
従って、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対するデータの書き込みを、それらに割り当てられた個別のアドレスを指定することによって行う。これにより、各フラグ連動レジスタ２１〜２４には、前述したフラグｆ１〜ｆ３の各状態に対応するジャンプ先アドレス値（絶対アドレス値）「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」がそれぞれデータとして書き込まれる。
【００３６】
前記周辺回路本体２５により設定される各フラグｆ１〜ｆ３は、フラグ判定回路としてのそれぞれ３入力にてなるアンド回路３５〜３８の各入力端子に入力される。
【００３７】
詳述すると、アンド回路３５は、フラグｆ１及び反転入力するフラグｆ２，ｆ３の各状態（ビット）に基づいてフラグｆ１が「１」であるか否かを検出し、第１フラグ判定信号ｆｊ１を出力する。
【００３８】
アンド回路３６は、フラグｆ２及び反転入力するフラグｆ１，ｆ３の各ビットに基づいてフラグｆ２が「１」であるか否かを検出し、第２フラグ判定信号ｆｊ２を出力する。
【００３９】
アンド回路３７は、フラグｆ３及び反転入力するフラグｆ１，ｆ２の各ビットに基づいてフラグｆ３が「１」であるか否かを検出し、第３フラグ判定信号ｆｊ３を出力する。
【００４０】
アンド回路３８は、それぞれ反転入力するフラグｆ１〜ｆ３の各ビットに基づいてフラグｆ１〜ｆ３が全て「０」であるか否かを検出し、第４フラグ判定信号ｆｊ４を出力する。
【００４１】
前記第１〜第４フラグ判定信号ｆｊ１〜ｆｊ４は、それぞれアンド回路４１〜４４に入力される。各アンド回路４１〜４４は３入力のアンド回路であって、それらの他の２つの入力端子には、前記アドレスデコーダ２６から出力されるリード信号ＲＤ及び選択信号ＳＥＬ１が入力される。アンド回路４１〜４４の出力信号は、それぞれ第１〜第４のフラグ連動レジスタ２１〜２４のリード制御端子に入力される。
【００４２】
従って、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対するデータの読み出しを、それぞれに共通する特定アドレスとしての第１のフラグ連動レジスタ２１のアドレスを指定することによって行う。
【００４３】
この際、ＣＰＵ１２によるデータの読み出しは、前記各アンド回路３５〜３８から出力される第１〜第４フラグ判定信号ｆｊ１〜ｆｊ４によって制御される。すなわち、データの読み出し時、第１〜第４フラグ判定信号ｆｊ１〜ｆｊ４は、フラグｆ１〜ｆ３の各状態に応じて、それらのうち何れか１つの信号のみがＨレベルとなっており、それによってリード信号ＲＤが各アンド回路４１〜４４のうち何れか１つの回路から出力される。
【００４４】
その結果、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４のうち何れか１つのレジスタに記憶されているデータ、すなわち何れか１つのジャンプ先アドレス値を読み出すことができる。
【００４５】
例えば、フラグｆ１〜ｆ３の各状態がそれぞれ「０」，「１」，「０」である場合には、アンド回路３６から出力される第２フラグ判定信号ｆｊ２のみがＨレベルとなる。このとき、あらかじめ定めた特定アドレス（本実施形態では第１のフラグ連動レジスタ２１のアドレス）によって、各フラグ連動レジスタ２１〜２４に対してデータの読み出しが行われると、そのリード信号ＲＤは、アンド回路４２を介して第２のフラグ連動レジスタ２２のみに入力される。これにより、ＣＰＵ１２は、第２のフラグ連動レジスタ２２に記憶されているジャンプ先アドレス値「Ｃ」を読み出すことができる。
【００４６】
尚、本実施形態では、ＣＰＵ１２がデータの読み出しの際に指定する特定アドレスを、第１のフラグ連動レジスタ２１のアドレスとしたが、その他のアドレスであってもよい。すなわち、特定アドレスとしては、第２〜第４のフラグ連動レジスタ２２〜２４にそれぞれ割り当てられているアドレスであってもよい。
【００４７】
次に、上記のように構成されたマイクロコントローラ１１の動作を図３に従って説明する。
まず、ステップ５１において、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に、前記フラグｆ１〜ｆ３の各状態に対応するジャンプ先アドレス値（絶対アドレス値）「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」をそれぞれ書き込む。
【００４８】
次いで、ＣＰＵ１２は、周辺回路１４内の特定アドレス（ここでは第１のフラグ連動レジスタ２１のアドレス）を指定して、前記各フラグ連動レジスタ２１〜２４に対してジャンプ先アドレス値の読み出しを行う（ステップ５２）。
【００４９】
このとき、ＣＰＵ１２は、フラグｆ１〜ｆ３の各状態に対応して、各フラグ連動レジスタ２１〜２４に記憶されたジャンプ先アドレス値「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」のうち何れか１つのアドレス値を得る。すなわち、ＣＰＵ１２は、アンド回路３５〜３８からのフラグ判定信号ｆｊ１〜ｆｊ４に基づいて、各フラグ連動レジスタ２１〜２４のうち、フラグｆ１〜ｆ３の変化に連動した何れか１つのフラグ連動レジスタに記憶されているジャンプ先アドレス値を読み出す。
【００５０】
これにより、ＣＰＵ１２は、その読み出した絶対アドレス値のプログラムにジャンプして対応する処理を実行する。（ステップ５３）。
その際、ＣＰＵ１２は、先に実行した前記ステップ５２において、ジャンプ先アドレス値「Ａ」を得る場合（すなわち各フラグｆ１〜ｆ３が全て「０」である場合）には、再度ステップ５２に移行して各フラグ連動レジスタ２１〜２４に対する読み出しを繰り返し実行する。
【００５１】
従って、このようなマイクロコントローラ１１では、ＣＰＵ１２が周辺回路１４の動作状態を確認するための処理、つまりフラグｆ１〜ｆ３の各状態を判定するためのフラグ判定プログラム（フラグ判定処理）は不要である。そして、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対してただ１回のデータ読み出しを行うことにより、そのときの周辺回路１４の動作状態に対応する処理プログラムに直ちにジャンプすることができる。
【００５２】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）周辺回路１４は、フラグｆ１〜ｆ３の各状態に応じてジャンプ先アドレス値「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」があらかじめ記憶される第１〜第４のフラグ連動レジスタ２１〜２４を備える。そして、ＣＰＵ１２は、各フラグ連動レジスタ２１〜２４に対して、それぞれに共通する特定アドレスを指定してデータの読み出しを行うことにより、そのときのフラグｆ１〜ｆ３の変化に連動した何れか１つのフラグ連動レジスタに記憶されているジャンプ先アドレス値を得ることができる。つまり、ＣＰＵ１２は、周辺回路１４の動作状態に対応するジャンプ先アドレス値をただ１回のデータ読み出しによって直ちに得ることができる。その結果、フラグｆ１〜ｆ３の各状態を判定するためのフラグ判定プログラムが不要となるため、プログラムの簡易化を図ることができる。従って、プログラム開発を容易に行うことが可能となる。
【００５３】
（２）各フラグｆ１〜ｆ３の判定処理を行うためのフラグ判定プログラムが不要となることにより、ＣＰＵ１２の処理速度を向上させることができる。
（３）プログラムが簡易化されることにより、プログラムサイズの削減を図ることができる。その結果、マイクロコントローラ１１に搭載されるＲＯＭ１３の容量に対応したプログラムサイズで、多機能化する各種周辺回路の動作制御を行うことが可能となる。
【００５４】
（４）ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対するジャンプ先アドレス値「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」の書き込みを、それぞれに割り当てられている個別のアドレスを指定することによって行う。このため、任意のジャンプ先アドレス値を適宜書き込むことが可能である。
【００５５】
（５）本実施形態のマイクロコントローラ１１は、周辺回路１４に、フラグｆ１〜ｆ３の各状態に応じた複数のフラグ連動レジスタ２１〜２４等を備えるのみであるため、極めて簡易な構成で実現される。
【００５６】
（第二実施形態）
以下、本発明を具体化した第二実施形態を図４に従って説明する。
尚、本実施形態では、前記第１〜第４のフラグ連動レジスタ２１〜２４にそれぞれ記憶するジャンプ先アドレス値として相対アドレス値を記憶し、ＣＰＵ１２の実行する命令列に、その相対アドレス値に基づいてジャンプ先のプログラムに相対ジャンプする命令を追加した場合について説明するものである。従って、第一実施形態と同様な構成部分については同一符号を付してその詳細な説明を省略する。
【００５７】
図４は、本実施形態の動作を説明するフローチャートである。
まず、ステップ６１において、ＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に、フラグｆ１〜ｆ３の各状態に対応するジャンプ先アドレス値としての相対アドレス値「ＲＢ」，「ＲＣ」，「ＲＤ」，「ＲＡ」をそれぞれ書き込む。
【００５８】
ここで、相対アドレス値「ＲＢ」は、フラグｆ１が「１」（他のフラグｆ２，ｆ３がともに「０」）のときの周辺回路１４の動作状態に対応するプログラムにジャンプするための相対アドレス値である。
【００５９】
相対アドレス値「ＲＣ」は、フラグｆ２が「１」（他のフラグｆ１，ｆ３がともに「０」）のときの周辺回路１４の動作状態に対応するプログラムにジャンプするための相対アドレス値である。
【００６０】
相対アドレス値「ＲＤ」は、フラグｆ３が「１」（他のフラグｆ１，ｆ２がともに「０」）のときの周辺回路１４の動作状態に対応するプログラムにジャンプするための相対アドレス値である。
【００６１】
相対アドレス値「ＲＡ」は、各フラグｆ１〜ｆ３がともに「０」のときの周辺回路１４の動作状態に対応するプログラムにジャンプするための相対アドレス値である。
【００６２】
次いで、ＣＰＵ１２は、前記と同様、周辺回路１４内の特定アドレス（本実施形態では第１のフラグ連動レジスタ２１のアドレス）を指定して、前記各フラグ連動レジスタ２１〜２４に対して相対アドレス値の読み出しを行う（ステップ６２）。
【００６３】
このとき、ＣＰＵ１２は、フラグｆ１〜ｆ３の各状態に応じて、各フラグ連動レジスタ２１〜２４に記憶されている相対アドレス値「ＲＢ」，「ＲＣ」，「ＲＤ」，「ＲＡ」のうち何れか１つの相対アドレス値を得る。すなわち、ＣＰＵ１２は、アンド回路３５〜３８からのフラグ判定信号ｆｊ１〜ｆｊ４に基づいて、各フラグ連動レジスタ２１〜２４のうち、フラグｆ１〜ｆ３の変化に連動した何れか１つのフラグ連動レジスタに記憶されている相対アドレス値を読み出す。
【００６４】
これにより、ＣＰＵ１２は、その相対アドレス値に基づいてジャンプ先のプログラムに相対ジャンプし、対応する処理を実行する。（ステップ６３）。詳しくは、ＣＰＵ１２は、それぞれ相対アドレス値「ＲＢ」，「ＲＣ」，「ＲＤ」，「ＲＡ」に基づいて、上述した第一実施形態における各絶対アドレス値「Ｂ」，「Ｃ」，「Ｄ」，「Ａ」が示すプログラムに相対ジャンプする。
【００６５】
その際、ＣＰＵ１２は、先に実行した前記ステップ６２において、相対アドレス値「ＲＡ」を得る場合（すなわち各フラグｆ１〜ｆ３が全て「０」である場合）には、再度ステップ６２に移行して各フラグ連動レジスタ２１〜２４に対する読み出しを繰り返し実行する。
【００６６】
このように動作する本実施形態のマイクロコントローラ１１では、上述した第一実施形態と同様に、フラグｆ１〜ｆ３の各状態を判定するためのフラグ判定プログラムが不要となる。そして、同様にＣＰＵ１２は、第１〜第４のフラグ連動レジスタ２１〜２４に対してただ１回のデータ読み出しを行うことにより、そのときの周辺回路１４の動作状態に対応する処理プログラムに直ちにジャンプすることができる。
【００６７】
以上記述したように、本実施形態によれば、第一実施形態で奏する効果に加えて、以下の効果を奏する。
（１）本実施形態では、ＣＰＵ１２は、各フラグ連動レジスタ２１〜２４から読み出した何れか１つの相対アドレス値に基づいて、対応する処理プログラムに相対ジャンプする。従って、第一実施形態に比べてＣＰＵ１２の処理速度を向上させることができる。
【００６８】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記各実施形態では、フラグｆ１〜ｆ３の各状態に応じたアドレス値を記憶する４つの第１〜第４のフラグ連動レジスタ２１〜２４を周辺回路１４に備えたが、該周辺回路１４の動作状態を示すフラグの状態等に応じてフラグ連動レジスタを備える数を適宜変更してもよい。
【００６９】
・上記各実施形態では、第１〜第４のフラグ連動レジスタ２１〜２４を周辺回路１４内に備えるようにしたが、必ずしも周辺回路１４の内部に限定されるものではない。
【００７０】
・上記各実施形態では、ＣＰＵ１２は、ソフトウェアポーリングを前提として第１〜第４のフラグ連動レジスタ２１〜２４に対して読み込みを行うようにしたが、これにソフトウェア割り込みを組み合わせて、割り込み発生時に各フラグ連動レジスタ２１〜２４に対して読み込みを行うようにしてもよい。
【００７１】
上記各実施形態の特徴をまとめると以下のようになる。
（付記１）  ＣＰＵと、周辺回路と、該周辺回路を動作させるプログラムを格納するメモリとを含むマイクロコントローラであって、
前記周辺回路の動作状態に応じて変化するフラグの各状態に対応して、前記ＣＰＵが実行するプログラムのジャンプ先を示すジャンプ先アドレス値があらかじめ記憶される複数のフラグ連動レジスタを備え、
前記ＣＰＵは、前記複数のフラグ連動レジスタのうち、前記フラグの変化に連動した何れか１つのフラグ連動レジスタに記憶された前記ジャンプ先アドレス値を読み出すことを特徴とするマイクロコントローラ。
（付記２）  前記フラグの各状態をそれぞれ判定し、前記ＣＰＵによる前記ジャンプ先アドレス値の読み出しを制御するフラグ判定信号を前記複数のフラグ連動レジスタに対して出力する複数のフラグ判定回路を備えたことを特徴とする付記１記載のマイクロコントローラ。
（付記３）  前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに共通する特定アドレスを指定して前記ジャンプ先アドレス値の読み出しを行うことを特徴とする付記１又は２記載のマイクロコントローラ。
（付記４）  前記特定アドレスは、前記複数のフラグ連動レジスタにそれぞれ割り当てられた個別のアドレスのうち何れか１つのアドレスであることを特徴とする付記３記載のマイクロコントローラ。
（付記５）  前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに割り当てられた個別のアドレスを指定して前記ジャンプ先アドレス値の書き込みを行うことを特徴とする付記１乃至３の何れか一記載のマイクロコントローラ。
（付記６）  前記ジャンプ先アドレス値は、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムの絶対アドレス値であることを特徴とする付記１乃至５の何れか一記載のマイクロコントローラ。
（付記７）  前記ジャンプ先アドレス値は、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムに相対ジャンプするための相対アドレス値であることを特徴とする付記１乃至５の何れか一記載のマイクロコントローラ。
（付記８）  前記複数のフラグ連動レジスタは、前記周辺回路の内部に設けられることを特徴とする付記１乃至７の何れか一記載のマイクロコントローラ。
（付記９）  周辺回路の動作状態に応じたプログラムにジャンプして処理を実行するＣＰＵを備えたマイクロコントローラの制御方法であって、
前記ＣＰＵは、
前記周辺回路の動作状態に応じて変化するフラグの各状態に対応して、複数のフラグ連動レジスタに前記プログラムのジャンプ先を示すジャンプ先アドレス値を書き込むステップと、
前記複数のフラグ連動レジスタのうち、前記フラグの変化に連動した何れか１つのフラグ連動レジスタに記憶された前記ジャンプ先アドレス値を読み出すステップと
を実行することを特徴とするマイクロコントローラの制御方法。
（付記１０）  前記ジャンプ先アドレス値を書き込むステップにおいて、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに割り当てられた個別のアドレスを指定して書き込みを行うことを特徴とする付記９記載のマイクロコントローラの制御方法。
（付記１１）  前記ジャンプ先アドレス値を読み出すステップにおいて、前記ＣＰＵは、前記複数のフラグ連動レジスタに対して、それぞれに共通する特定アドレスを指定して読み出しを行うことを特徴とする付記９記載のマイクロコントローラの制御方法。
（付記１２）  前記ジャンプ先アドレス値を読み出すステップにおいて、前記ＣＰＵは、前記フラグの各状態をそれぞれ判定した複数のフラグ判定信号に基づいて読み出しを行うことを特徴とする付記１１記載のマイクロコントローラの制御方法。
（付記１３）  前記ＣＰＵは、前記周辺回路の動作状態が何れのフラグも立っていない状態のときには、前記複数のフラグ連動レジスタに対して前記ジャンプ先アドレス値の読み出しを再度行うことを特徴とする付記９乃至１２の何れか一記載のマイクロコントローラの制御方法。
（付記１４）  前記ＣＰＵは、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムの絶対アドレス値を書き込むことを特徴とする付記９乃至１３の何れか一記載のマイクロコントローラの制御方法。
（付記１５）  前記ＣＰＵは、前記フラグの各状態にそれぞれ対応するジャンプ先のプログラムに相対ジャンプするための相対アドレス値を書き込むことを特徴とする付記９乃至１３の何れか一記載のマイクロコントローラの制御方法。
【００７２】
【発明の効果】
以上詳述したように、本発明によれば、プログラムの簡易化を図ることのできるマイクロコントローラ及びその制御方法を提供することができる。
【図面の簡単な説明】
【図１】第一実施形態のマイクロコントローラの概略構成を示すブロック回路図である。
【図２】周辺回路の構成を示すブロック回路図である。
【図３】第一実施形態の動作を説明するフローチャートである。
【図４】第二実施形態の動作を説明するフローチャートである。
【図５】従来のマイクロコントローラの概略構成を示すブロック回路図である。
【図６】従来のフラグ判定処理を示すフローチャートである。
【符号の説明】
１２  ＣＰＵ
１３  メモリとしてのプログラムＲＯＭ
１４  周辺回路
２１〜２４  複数のフラグ連動レジスタとしての第１〜第４のフラグ連動レジスタ
３５〜３８  フラグ判定回路としてのアンド回路
ｆ１〜ｆ３  フラグ
Ｂ，Ｃ，Ｄ，Ａ  ジャンプ先アドレス値（絶対アドレス値）
ＲＢ，ＲＣ，ＲＤ，ＲＡ  ジャンプ先アドレス値（相対アドレス値）
【図１】
2004185094.tif 000003
【図２】
2004185094.tif 000004
【図３】
2004185094.tif 000005
【図４】
2004185094.tif 000006
【図５】
2004185094.tif 000007
【図６】
2004185094.tif 000008