(57)【要約】【課題】記録領域を節約することが可能となる制御プログラム、及び制御システムを提供すること。【解決手段】  マイクロコンピュータ１００を、アイドルの実行中にＩＳＲによる割込みが発生した場合に、アイドルタスクに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、として機能させ、格納制御手段は、タスクの実行中にＩＳＲによる割込みが発生した場合に、コンテキスト情報における第１情報とは異なる他の一部の情報である第２情報を破壊可能に格納し、ＩＳＲに関連する情報にて第２情報を上書きして破壊する。【選択図】図１
2019179283.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、
として機能させる制御プログラム。
【請求項２】
前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を破壊可能に格納し、前記割込み処理ルーチンに関連する情報にて前記第２情報を上書きして破壊する、
請求項１に記載の制御プログラム。
【請求項３】
前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を格納しない、
請求項１に記載の制御プログラム。
【請求項４】
前記格納制御手段は、前記プログラムカウンタ情報に加えて前記コンピュータの状態を特定する状態情報を前記第１情報として破壊不可能に格納する、
請求項１から３のいずれか一項に記載の制御プログラム。
【請求項５】
前記格納制御手段は、前記プログラムカウンタ情報及び前記状態情報に加えて、汎用レジスタに格納されている汎用情報のうちの一部のみの情報を、前記第１情報として破壊不可能に格納する、
請求項４に記載の制御プログラム。
【請求項６】
所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、
を備える制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、及び制御システムに関する。
【背景技術】
【０００２】
従来、組み込みシステムとして用いられるマイクロコンピュータが知られていた（例えば、特許文献１）。この特許文献１のマイクロコンピュータを含めて、一般的なマイクロコンピュータでは、ユーザの利便性向上等の観点から、基本ソフトウエアであるリアルタイムオペレーティングシステム（つまり、リアルタイムＯＳ）を実装して用いられていた。そして、このようなリアルタイムＯＳにおいては、複数のタスクが実行されるように構成されていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２１９２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、各タスクについては、タスク自体の実行時の利用に備えて、あるいは、割り込みハンドラであるＩＳＲの割り込み時の利用に備えて、マイクロコンピュータの記録手段（例えば、ＲＡＭ等）の記録領域を確保する必要があったが、マイクロコンピュータの記録手段には限りがあるために、タスクの数が増大した場合、記録手段の記録領域を逼迫させてしまい、ユーザが利用する記録領域が不足してしまう可能性があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、記録領域を節約することが可能となる制御プログラム、及び制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、請求項１に記載の制御プログラムは、コンピュータを、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、として機能させる。
【０００７】
請求項２に記載の制御プログラムは、請求項１に記載の制御プログラムにおいて、前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を破壊可能に格納し、前記割込み処理ルーチンに関連する情報にて前記第２情報を上書きして破壊する。
【０００８】
請求項３に記載の制御プログラムは、請求項１に記載の制御プログラムにおいて、前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を格納しない。
【０００９】
請求項４に記載の制御プログラムは、請求項１から３のいずれか一項に記載の制御プログラムにおいて、前記格納制御手段は、前記プログラムカウンタ情報に加えて前記コンピュータの状態を特定する状態情報を前記第１情報として破壊不可能に格納する。
【００１０】
請求項５に記載の制御プログラムは、請求項４に記載の制御プログラムにおいて、前記格納制御手段は、前記プログラムカウンタ情報及び前記状態情報に加えて、汎用レジスタに格納されている汎用情報のうちの一部のみの情報を、前記第１情報として破壊不可能に格納する。
【００１１】
請求項６に記載の制御システムは、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、を備える。
【発明の効果】
【００１２】
請求項１に記載の制御プログラムによれば、プログラムカウンタ情報を含むコンテキスト情報の一部の情報である第１情報のみを破壊不可能に格納することにより、例えば、コンテキスト情報の一部の情報に対応する分だけ専用の記録領域を確保する必要があるのみであり、つまり、当該コンテキスト情報の他の一部の情報に対応する分については専用の記録領域を確保する必要がないので、記録領域を節約することが可能となる。
【００１３】
請求項２に記載の制御プログラムによれば、割込み処理ルーチンに関連する情報にてコンテキスト情報の第２情報を上書きして破壊することにより、例えば、第２情報と割り込み処理ルーチンに関連する情報とによって１つの記録領域を共有して利用することができるので、記録領域を確実に節約することが可能となる。
【００１４】
請求項３に記載の制御プログラムによれば、コンテキスト情報の第２情報を格納しないことにより、例えば、第２情報に対応する記録領域を確保することが不要となるので、記録領域を確実に節約することが可能となる。
【００１５】
請求項４に記載の制御プログラムによれば、プログラムカウンタ情報に加えて状態情報を破壊不可能に格納することにより、例えば、割り込み処理ルーチンが終了した後に、所定の処理ルーチンに確実に復帰することが可能となる。
【００１６】
請求項５に記載の制御プログラムによれば、プログラムカウンタ情報及び状態情報に加えて汎用情報のうちの一部のみの情報を破壊不可能に格納することにより、例えば、割り込み処理ルーチンが終了した後に、所定の処理ルーチンに更に確実に復帰することが可能となる。また、例えば、汎用情報のうちの残りの一部の情報を、第２情報として取り扱うことができるので、当該汎用情報のうちの残りの一部の情報に対応する分については専用の記録領域を確保する必要がなく、記録領域を節約することが可能となる。
【００１７】
請求項６に記載の制御システムによれば、プログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納することにより、例えば、コンテキスト情報の一部の情報であるに対応する分だけ専用の記録領域を確保する必要があるのみであり、つまり、当該コンテキスト情報の他の一部の情報に対応する分については専用の記録領域を確保する必要がないので、記録領域を節約することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係るマイクロコンピュータを例示するブロック図である。
【図２】ＲＡＭが備えるアイドル割り込みハンドラ用スタック領域を例示した図である。
【図３】割込み処理のフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明に係る制御プログラム、及び制御システムの実施の形態について図面を参照しつつ詳細に説明する。ただし、実施の形態によって本発明が限定されるものではない。
【００２０】
本発明に係る制御プログラムは、割込みに関する制御を実行するプログラムであり、例えば、割込みに関する制御を実行するための専用プログラム、あるいは、汎用的に用いられるプログラム（一例としては、汎用コンピュータ等で用いられる基本ソフトであるオペレーティングシステム（ＯＳ）、あるいは、マイクロコンピュータの如き組み込みシステムで用いられるリアルタイムオペレーティングシステム（リアルタイムＯＳ））の一部として実現されるプログラム等を含む概念である。また、この制御プログラムは、コンピュータ（例えば、マイクロコンピュータの如き組み込みシステム、あるいは、当該組み込みシステムの一部の要素（一例としては、中央演算処理装置であるＣＰＵ等）等）を、格納制御手段として機能させるものである。
【００２１】
また、制御システムとは、割込みに関する制御を実行するシステムであり、割込みに関する制御を実行するための専用システム、あるいは、汎用的に用いられるシステム（一例としては、汎用コンピュータ、マイクロコンピュータの如き組み込みシステム、あるいは、当該組み込みシステムの一部の要素（一例としては、中央演算処理装置であるＣＰＵ等）等）に対して、割込みに関する制御を実行するための機能を実装することにより実現されるシステム等を含む概念である。また、制御システムは、例えば、格納制御手段を備える。
【００２２】
ここで、「格納制御手段」とは、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する手段であり、例えば、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、コンテキスト情報における第１情報とは異なる他の一部の情報である第２情報を破壊可能に格納し、割込み処理ルーチンに関連する情報にて第２情報を上書きして破壊する手段（以下、「第１の手段」）、及び所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、コンテキスト情報における第１情報とは異なる他の一部の情報である第２情報を格納しない手段（以下、「第２の手段」）等を含む概念である。また、「格納制御手段」は、例えば、プログラムカウンタ情報に加えてコンピュータの状態を特定する状態情報を第１情報として破壊不可能に格納する手段、あるいは、プログラムカウンタ情報及び状態情報に加えて、汎用レジスタに格納されている汎用情報のうちの一部のみの情報を第１情報として破壊不可能に格納する手段である。
【００２３】
また、「所定の処理ルーチン」とは、コンピュータで実行される処理群であり、具体的には、予め定められている任意の処理群であり、例えば、リアルタイムＯＳにおけるタスクに対応する処理群、及び当該リアルタイムＯＳにおける割込み処理（つまり、割込みハンドラであるＩＳＲ）に対応する処理群等を含む概念であり、一例としては、アイドルタスク等を含む概念である。なお、「アイドルタスク」とは、リアルタイムＯＳにおけるタスクであり、具体的には、コンピュータが特定の機能を実行しないように単に繰り返しループとなっている処理であり、例えば、最も優先度が低いタスクである。
【００２４】
また、「コンテキスト情報」とは、所定の処理ルーチンに復帰する場合に用いられる復帰情報であり、例えば、所定のレジスタに格納されている情報であり、一例としては、プログラムカウンタ情報を格納するプログラムカウンタレジスタ（以下、「プログラムカウンタ」を単に「ＰＣ」とも称する）、コンピュータの状態を特定する状態情報であるプログラムステータスワード情報（例えば、割込み禁止又は許可を特定する情報等を含む任意の情報）を格納するプログラムステータスワードレジスタ（以下、「プログラムステータスワード」を単に「ＰＳＷ」とも称する）、及び汎用情報を格納する汎用レジスタ等に格納されている各情報である。なお、「汎用レジスタ」とは、前述のＰＣレジスタ及びＰＳＷレジスタとは異なるレジスタであって、１個以上のレジスタであり、例えば、演算結果を格納したり、あるいは、変数値を格納したりするレジスタ等を含む概念である。
【００２５】
また、「第１情報」とは、コンテキスト情報に含まれている一部の情報であり、具体的には、少なくともプログラムカウンタ情報を含む情報である。「第２情報」とは、コンテキスト情報に含まれている情報であり、具体的には、第１情報とは異なる他の一部の情報であり、例えば、汎用情報の少なくとも一部の情報等を含む概念である。なお、前述のＰＳＷ情報については、第１情報に対応することと解釈してもよく、あるいは、第２情報に対応することと解釈してもよいが、ここでは、例えば、第１情報に対応することと解釈することが好ましい。また、「汎用情報」としては、各種汎用レジスタに格納されている様々な情報が想定されるが、当該様々な情報の少なくとも一部が第２情報に対応していることと解釈する。つまり、「汎用情報」については、例えば、当該汎用情報である様々な情報の全ての情報が第２情報に対応しているものと解釈してもよいし、あるいは、当該汎用情報である様々な情報のうちの一部のみの情報が第１情報に対応しており、且つ、当該汎用情報である様々な情報のうちの前述の第１情報以外の残りの情報が第２情報に対応しているものと解釈してもよい。
【００２６】
また、「破壊不可能に格納する」とは、格納された情報が上書き等されずに維持されるように当該情報を格納することであり、具体的には、情報を一旦格納した後に当該格納した情報を取得して再利用することができることに対応する概念であり、例えば、情報を各々相互に異なる記録領域に格納することに対応する概念である。
【００２７】
また、「破壊可能に格納する」とは、格納された情報が上書き等され得るように当該情報を格納することであり、具体的には、情報を一旦格納した後に当該格納した情報を取得して再利用することができなくなる可能性があることに対応する概念であり、例えば、情報を各々相互に少なくとも一部を重複させて共通の記録領域に格納することに対応する概念である。そして、１つの情報を破壊可能に格納した場合、他の情報により上書き等されて再利用不可能となる可能性が生じることになる。
【００２８】
そして、以下に示す実施の形態では、「制御システム」又は「コンピュータ」が、マイクロコンピュータであり、「制御プログラム」がマイクロコンピュータのリアルタイムＯＳであり、「格納制御手段」がマイクロコンピュータの要素によって実現されており、また、当該マイクロコンピュータがリアルタイムＯＳを実行し、また、「所定の処理ルーチン」がアイドルタスクである場合を例示して、以下説明する。また、以下に示す実施の形態では、ＰＣ情報及びＰＳＷ情報が「第１情報」であり、また、汎用情報である様々な情報の全ての情報が「第２情報」である場合を例示して、以下説明する。
【００２９】
（構成）
まず、本実施の形態に係るマイクロコンピュータについて説明する。図１は、本発明の実施の形態に係るマイクロコンピュータを例示するブロック図である。なお、実際には、マイクロコンピュータ１００には、図示されている要素以外にも、クロック発振器、タイマー、ＡＤ変換器、ＤＡ変換器、又は割込みコントローラ等の公知の要素も含まれ得るが、ここでは、主な要素のみ図示し、図示した要素以外の要素については、必要に応じて適宜説明する。また、図示されている各要素については、本願に特徴的な内容以外については、公知の内容を適用することができるので、本願に特徴的な内容のみについて説明する。
【００３０】
マイクロコンピュータ１００は、制御システム又はコンピュータであり、例えば、ＲＯＭ１、ＲＡＭ２、及びＣＰＵ３を備える。
【００３１】
（構成−ＲＯＭ）
ＲＯＭ１は、マイクロコンピュータ１００の動作に必要なプログラム及び各種のデータを記録する記録手段であり、例えば、外部記録装置としてのフラッシュメモリ（図示省略）等を用いて構成されている。
【００３２】
（構成−ＲＡＭ）
ＲＡＭ２は、マイクロコンピュータ１００の動作に必要なプログラム及び各種のデータを一時的に記録する記録手段であり、例えば、外部記録装置としてのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いて構成されている。図２は、ＲＡＭが備えるアイドル割り込みハンドラ用スタック領域を例示した図である。なお、この図２の「Ａｄ２１１」〜「Ａｄ２１３」については、ＲＡＭ２におけるアドレスを示していることとする。また、図２においては、データが図面左側から右側に向かって蓄積されるものとして、各スタック領域を図示している。図１のＲＡＭ２は、例えば、図２のアイドル割り込みハンドラ用スタック領域２１、及び不図示のタスク用スタック領域を備える。
【００３３】
（構成−ＲＡＭ−アイドル割り込みハンドラ用スタック領域）
「アイドル割り込みハンドラ用スタック領域」２１は、記録領域であって、所定の処理ルーチンであるアイドルタスクと、割り込みハンドラであるＩＳＲに関連する情報を格納する領域であり、例えば、アイドルタスクのコンテキスト情報、ＩＳＲのコンテキスト情報、及びＩＳＲの処理中に利用される任意の情報等を格納する領域である。このアイドル割り込みハンドラ用スタック領域２１における情報の格納場所は任意であるが、例えば、アイドルタスクのコンテキスト情報を格納する場合に、当該アイドルタスクのＰＣ情報及びＰＳＷ情報が破壊不可能に格納され、また、当該アイドルタスクの汎用情報が破壊可能に格納されるように、先頭アドレスである「Ａｄ２１１」から、ＰＣ情報、ＰＳＷ情報、汎用情報の順に格納され、また、先頭アドレスである「Ａｄ２１２」から、ＩＳＲに関連する情報が順に格納されるように構成されていることとする。
【００３４】
（構成−ＲＡＭ−タスク用スタック領域）
不図示の「タスク用スタック領域」は、記録領域であって、所定の処理ルーチン以外のタスクに関連する情報を格納する領域であり、例えば、従来と同様にして、各タスクに対して割り当てられている領域である。
【００３５】
（構成−ＣＰＵ）
ＣＰＵ３は、ＲＯＭ１又はＲＡＭ２に適宜アクセスして、マイクロコンピュータ１００を制御する制御手段であり、例えば、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段である。また、ＣＰＵ３は、例えば、ＰＣレジスタ３１、ＰＳＷレジスタ３２、及び汎用レジスタ３３（以下、これらのレジスタを「ＣＰＵ３の各レジスタ」と総称する）を備える。
【００３６】
「ＰＣレジスタ」３１とは、前述のＰＣ情報（第１情報）を格納する格納手段であり、また、「ＰＳＷレジスタ」３２とは、前述のＰＳＷ情報（第１情報）を格納する格納手段であり、また、「汎用レジスタ」３３とは、前述の汎用情報（第２情報）を格納する格納手段である。
【００３７】
（処理）
次に、このように構成されるマイクロコンピュータ１００によって実行される割込み処理について説明する。図３は、割込み処理のフローチャートであり（以下の各処理の説明ではステップを「Ｓ」と略記する）である。この割り込み処理を実行するタイミングは任意であり、例えば、タスクの実行中にＩＳＲの割り込みが発生した場合に実行されることとし、実行を開始したところから説明する。ここでは、例えば、所定の処理ルーチンであるアイドルタスクの実行中にＩＳＲの割り込みが発生した場合、及び所定の処理ルーチンでないタスク（アイドルタスク以外のタスクであり、「通常タスク」と称する）の実行中にＩＳＲの割り込みが発生した場合を例示して説明する。
【００３８】
特に、ＣＰＵ３が、アイドルタスクの実行時には、スタックポインタに図２のアイドル割り込みハンドラ用スタック領域２１の先頭アドレスである「Ａｄ２１１」を設定し、また、通常タスクの実行時には、不図示のタスク用スタック領域の当該通常タスクに割り当てられた領域の先頭アドレスに設定して、各タスクを実行していることを前提とする。
【００３９】
図３のＳＡ１においてＣＰＵ３は、コンテキスト情報を保存する。具体的には任意であるが、ＣＰＵ３の各レジスタからＰＣ情報、ＰＳＷ情報、及び汎用情報を取得し、取得した各情報について、ＰＣ情報、ＰＳＷ情報、及び汎用情報の順にプッシュして保存する。
【００４０】
ここでは、例えば、アイドルタスクの実行時にＩＳＲの割り込みが発生して割り込み処理が起動した場合（以下、「アイドルタスクに対する割り込みの場合」と称する）、スタックポインタに図２の「Ａｄ２１１」が設定されてアイドルタスクが実行され、また、アイドルタスクでは演算等を行わないので、この「Ａｄ２１１」が設定されたままとなっているので、当該「Ａｄ２１１」を先頭アドレスとして、ＰＣ情報、ＰＳＷ情報、及び汎用情報の順に保存する。この場合、図２に示すように、ＰＣ情報及びＰＳＷ情報が「Ａｄ２１２」までの領域に格納され、また、汎用情報が「Ａｄ２１２」から「Ａｄ２１３」までの領域に格納されることになる。つまり、ＣＰＵ３が、ＰＣ情報及びＰＳＷを破壊不可能に格納し、汎用情報を破壊可能に格納する。
【００４１】
また、例えば、通常タスクの実行時にＩＳＲの割り込みが発生して割り込み処理が起動した場合（以下、「通常タスクに対する割り込みの場合」と称する）、スタックポインタに不図示のタスク用スタック領域のアドレスが設定されているので、このスタック領域にコンテキスト情報が格納されることになる。
【００４２】
図３のＳＡ２においてＣＰＵ３は、スタックポインタを保存する。具体的には任意であるが、例えば、現在のスタックポインタの値を任意の格納場所（一例としては、所定のレジスタやＲＡＭ２の任意の領域等）に格納する。ここでは、例えば、アイドルタスクに対する割り込みの場合、図２の「Ａｄ２１３」を格納し、また、例えば、通常タスクに対する割り込みの場合、不図示のタスク用スタック領域のアドレスを格納する。
【００４３】
図３のＳＡ３においてＣＰＵ３は、スタックポインタを設定する。具体的には任意であるが、例えば、ＩＳＲに関連する情報を格納する領域の先頭アドレスをスタックポインタに設定する。ここでは、例えば、アイドルタスクに対する割り込みの場合、及び通常タスクに対する割り込みの場合の両方において、任意の格納場所（一例としては、所定のレジスタやＲＡＭ２の任意の領域等）に図２のアドレスである「Ａｄ２１２」が格納されていることとし、この格納されている「Ａｄ２１２」をスタックポインタに設定する。
【００４４】
図３のＳＡ４においてＣＰＵ３は、発生した割り込みの処理を行う。具体的には任意であるが、例えば、割込みが発生した割込み原因に応じて任意の処理を行う。この場合において、特に、アイドルタスクに対する割り込みの場合、図２の汎用情報については、ＳＡ３にてスタックポインタとして「Ａｄ２１２」が設定されたので、ＳＡ４にて割り込みの処理を実行する場合に上書き等されて破壊されることになる。
【００４５】
図３のＳＡ５においてＣＰＵ３は、復帰する。具体的には任意であるが、例えば、ＳＡ４の処理が終了した後に、ＳＡ２で保存したスタックポインタの値を取得し、取得した値をスタックポインタに設定して、割り込み前に復帰する。
【００４６】
ここでは、例えば、アイドルタスクに対する割り込みの場合、図２の「Ａｄ２１３」をスタックポインタに設定することにより復帰するが、この場合、ＣＰＵ３が、図２の「Ａｄ２１１」から「Ａｄ２１３」までの領域（つまり、図２で「アイドルタスクのスタック領域」と表記されている領域）の情報を順次ポップして取得し、各対応する領域の情報をＣＰＵ３の各レジスタに格納する。具体的には、図２の「Ａｄ２１２」と「Ａｄ２１３」との間の領域の情報が汎用レジスタ３３に格納され、「Ａｄ２１１」と「Ａｄ２１２」との間の領域の情報がＰＣレジスタ３１及びＰＳＷレジスタ３２に格納されることになる。この場合、ＰＣレジスタ３１及びＰＳＷレジスタ３２については、ＳＡ１で格納した各情報と同じ情報が格納されることになるが、汎用レジスタ３３については、ＳＡ４において情報が上書き等されて破壊されたので、ＳＡ１で格納した各情報とは異なる情報が格納されることになる。しかしながら、アイドルタスクの再実行に必須となる例えばＰＣ情報及びＰＳＷ情報が各レジスタに復帰することになるので、当該アイドルタスクの再実行に必須とはならない例えば汎用情報が復帰しなくても、アイドルタスクを正常に復帰させることが可能となる。
【００４７】
また、例えば、通常タスクに対する割り込みの場合、不図示のタスク用スタック領域のアドレスをスタックポインタに設定することにより復帰するが、ここでの処理については、従来と同様な処理を適用することができるので、詳細の説明を省略する。これにて、割り込み処理を終了する。
【００４８】
（領域の節約について）
上述のように、アイドルタスク実行時の汎用情報を保存する領域と、ＩＳＲに関連する情報を保存する領域とを相互に少なくとも一部において共通化（図２の「Ａｄ２１２」と「Ａｄ２１３」との間の領域を共通化）することができるので、アイドルタスク専用のスタック領域を削減して、ＲＡＭ２の領域を節約することが可能となる。
【００４９】
（実施の形態の効果）
このように本実施の形態によれば、ＰＣ情報を含むコンテキスト情報の一部の情報である第１情報のみを破壊不可能に格納することにより、例えば、コンテキスト情報の一部の情報に対応する分だけ専用の記録領域を確保する必要があるのみであり、つまり、当該コンテキスト情報の他の一部の情報に対応する分については専用の記録領域を確保する必要がないので、記録領域を節約することが可能となる。
【００５０】
また、ＩＳＲに関連する情報にて汎用情報である第２情報を上書きして破壊することにより、例えば、汎用情報とＩＳＲに関連する情報とによって１つの記録領域を共有して利用することができるので、記録領域を確実に節約することが可能となる。
【００５１】
また、ＰＣ情報に加えてＰＳＷ情報を破壊不可能に格納することにより、例えば、ＩＳＲが終了した後に、アイドルタスクに確実に復帰することが可能となる。
【００５２】
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した本発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【００５３】
（解決しようとする課題や発明の効果について）
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏したりすることがある。
【００５４】
（分散や統合について）
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散や統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散又は統合して構成できる。また、本出願における「装置」とは、単一の装置によって構成されたものに限定されず、複数の装置によって構成されたものを含む。
【００５５】
（形状、数値、構造、時系列について）
実施の形態や図面において例示した構成要素に関して、形状、数値、又は複数の構成要素の構造若しくは時系列の相互関係については、本発明の技術的思想の範囲内において、任意に改変及び改良することができる。
【００５６】
（格納制御手段について（その１））
また、上記実施の形態では、ＣＰＵ３が格納制御手段における第１の手段として機能する場合について説明したが、これに限らずに、ＣＰＵ３が格納制御手段における第２の手段として機能するように構成してもよい。具体的には、ＣＰＵ３が、ＩＳＲの割り込みが発生した場合に、実行中の割り込まれたタスクが、所定の処理ルーチンであるか否かを判定し、所定の処理ルーチンであるものと判定した場合に、第２情報は格納せずに第１情報のみを格納し、また、所定の処理ルーチンでないものと判定した場合に、第１情報及び第２情報を格納するように構成してもよい。
【００５７】
具体的には任意であるが、例えば、所定の処理ルーチンであるアイドルタスクのスタック領域として、図２の「Ａｄ２１１」から「Ａｄ２１２」の間の領域に対応する領域を割り当て（なお、割り当て場所は、所定の処理ルーチンでない通常タスクと同様に、ＲＡＭ２の任意の領域でよい）、一方、通常タスクのスタック領域としては、実施の形態で説明した場合と同様にして割り当てた上で、以下のように処理するように構成してもよい。詳細には、ＣＰＵ３が、実行中のタスクに対してＩＳＲの割り込みが発生した場合に、実行中の割り込まれるタスクがアイドルタスクであるか否かを任意の手法（例えば、タスクの種類を識別情報であるタスクＩＤを参照する手法等）で判定し、アイドルタスクであるものと判定した場合には、ＣＰＵ３の各レジスタの情報のうちのＰＣ情報及びＰＳＷ情報のみを、当該アイドルタスクに割り当てられているＲＡＭ２のスタック領域に第１情報として格納し（つまり、第２情報である汎用情報については格納せずに）、この後に復帰する場合、当該格納したＰＣ情報及びＰＳＷ情報のみを対応するレジスタに再度格納して復帰することとする。つまり、この場合、汎用レジスタ３３の情報については、アイドルタスク実行時に、ＩＳＲの割り込みが発生した場合には、ＲＡＭ２の記録領域には格納されないことになる。なお、アイドルタスクでないものと判定した場合（つまり、通常タスクであるものと判定した場合）には、実施の形態で説明した通常タスクに対する割り込みの場合と同様な処理を行ってもよい。
【００５８】
上述のように、アイドルタスクのスタック領域として、図２の「Ａｄ２１２」から「Ａｄ２１３」の間の領域に対応する領域の割り当てが不要となるので、アイドルタスク専用のスタック領域を削減して、ＲＡＭ２の領域を節約することが可能となる。また、このように構成した場合、コンテキスト情報の汎用情報を格納しないことにより、例えば、汎用情報に対応する記録領域を確保することが不要となるので、記録領域を確実に節約することが可能となる。
【００５９】
（格納制御手段について（その２））
また、上記実施の形態では、格納制御手段であるＣＰＵ３が、コンテキスト情報におけるＰＣ情報及びＰＳＷ情報を第１情報として破壊不可能に格納し、コンテキスト情報における汎用情報の全てを第２情報として破壊可能に格納する場合について説明したが、これに限らず、ＣＰＵ３が、コンテキスト情報におけるＰＣ情報及びＰＳＷ情報に加えて、汎用レジスタに格納されている汎用情報のうちの一部のみの情報を第１情報として破壊不可能に格納し、コンテキスト情報における汎用情報のうちの残りの情報を第２情報として扱ってもよい。このように構成した場合、当該汎用情報のうちの残りの一部の情報に対応する分については専用の記録領域を確保する必要がなく、記録領域を節約することが可能となる。
【００６０】
（所定の処理ルーチンについて）
また、上記実施の形態においては、所定の処理ルーチンがアイドルタスクである場合について説明したが、これに限らず、コンテキス情報のうちの一部の情報が上書き等により破壊されても、復帰した後に正常動作可能な任意の処理ルーチンを所定の処理ルーチンとしてもよい。
【００６１】
（付記）
付記１の制御プログラムは、コンピュータを、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、として機能させる。
【００６２】
付記２の制御プログラムは、付記１に記載の制御プログラムにおいて、前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を破壊可能に格納し、前記割込み処理ルーチンに関連する情報にて前記第２情報を上書きして破壊する。
【００６３】
付記３の制御プログラムは、付記１に記載の制御プログラムにおいて、前記格納制御手段は、前記所定の処理ルーチンの実行中に前記割込み処理ルーチンによる割込みが発生した場合に、前記コンテキスト情報における前記第１情報とは異なる他の一部の情報である第２情報を格納しない。
【００６４】
付記４の制御プログラムは、付記１から３のいずれか一項に記載の制御プログラムにおいて、前記格納制御手段は、前記プログラムカウンタ情報に加えて前記コンピュータの状態を特定する状態情報を前記第１情報として破壊不可能に格納する。
【００６５】
付記５の制御プログラムは、付記４に記載の制御プログラムにおいて、前記格納制御手段は、前記プログラムカウンタ情報及び前記状態情報に加えて、汎用レジスタに格納されている汎用情報のうちの一部のみの情報を、前記第１情報として破壊不可能に格納する。
【００６６】
付記６の制御システムは、所定の処理ルーチンの実行中に割込み処理ルーチンによる割込みが発生した場合に、前記所定の処理ルーチンに復帰する場合に用いられるコンテキスト情報のうちの少なくともプログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納する格納制御手段、を備える。
【００６７】
（付記の効果）
付記１に記載の制御プログラムによれば、プログラムカウンタ情報を含むコンテキスト情報の一部の情報である第１情報のみを破壊不可能に格納することにより、例えば、コンテキスト情報の一部の情報に対応する分だけ専用の記録領域を確保する必要があるのみであり、つまり、当該コンテキスト情報の他の一部の情報に対応する分については専用の記録領域を確保する必要がないので、記録領域を節約することが可能となる。
【００６８】
付記２に記載の制御プログラムによれば、割込み処理ルーチンに関連する情報にてコンテキスト情報の第２情報を上書きして破壊することにより、例えば、第２情報と割り込み処理ルーチンに関連する情報とによって１つの記録領域を共有して利用することができるので、記録領域を確実に節約することが可能となる。
【００６９】
付記３に記載の制御プログラムによれば、コンテキスト情報の第２情報を格納しないことにより、例えば、第２情報に対応する記録領域を確保することが不要となるので、記録領域を確実に節約することが可能となる。
【００７０】
付記４に記載の制御プログラムによれば、プログラムカウンタ情報に加えて状態情報を破壊不可能に格納することにより、例えば、割り込み処理ルーチンが終了した後に、所定の処理ルーチンに確実に復帰することが可能となる。
【００７１】
付記５に記載の制御プログラムによれば、プログラムカウンタ情報及び状態情報に加えて汎用情報のうちの一部のみの情報を破壊不可能に格納することにより、例えば、割り込み処理ルーチンが終了した後に、所定の処理ルーチンに更に確実に復帰することが可能となる。また、例えば、汎用情報のうちの残りの一部の情報を、第２情報として取り扱うことができるので、当該汎用情報のうちの残りの一部の情報に対応する分については専用の記録領域を確保する必要がなく、記録領域を節約することが可能となる。
【００７２】
付記６に記載の制御システムによれば、プログラムカウンタ情報を含む一部の情報である第１情報のみを破壊不可能に格納することにより、例えば、コンテキスト情報の一部の情報であるに対応する分だけ専用の記録領域を確保する必要があるのみであり、つまり、当該コンテキスト情報の他の一部の情報に対応する分については専用の記録領域を確保する必要がないので、記録領域を節約することが可能となる。
【符号の説明】
【００７３】
１  ＲＯＭ
２  ＲＡＭ
３  ＣＰＵ
２１  アイドル割り込みハンドラ用スタック領域
３１  ＰＣレジスタ
３２  ＰＳＷレジスタ
３３  汎用レジスタ
１００  マイクロコンピュータ
【図１】
2019179283.tif 000003
【図２】
2019179283.tif 000004
【図３】
2019179283.tif 000005