【事件の表示】
　平成　６年特許願第３３１７４６号「プログラム暴走検知方法およびプログラム暴走検知装置」拒絶査定に対する審判事件［平成　８年　６月２１日出願公開、特開平　８−１６１２０２］について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯・本願発明
　本願は、平成６年１２月９日の出願であって、その請求項１に係る発明は、平成９年８月１８日付け、及び平成９年１２月２６日付けの手続補正書により補正された明細書及び図面の記載からみて、特許請求の範囲の請求項１に記載されたとおりの次のものと認める。（以下、「本願発明」という。）
「プログラムにのっとって複数のタスクの処理が可能かつタスクを切換える際に元のタスクへ復帰するために必要な情報を保管し、該情報を使用してプログラムの暴走を検知するプログラム暴走検知方法において、
　目下処理中のタスクから次のタスクへの処理の切り換えを要求するタスク切り換え要求ステップと、
　処理中のタスクから異なるタスクへ切換えられた場合に、切り換え前のタスクへの復帰情報を格納する復帰情報格納ステップと、
　前記復帰情報格納ステップにて格納された復帰情報を複写して、前記復帰情報格納ステップとは異なる領域を使用する復帰情報退避部へ記憶させる復帰情報退避処理ステップと、
　交流電源の所定の電位を検知する電位検知ステップと、
　前記電位検知ステップにて検知した所定の電位を起因として、前記復帰情報格納ステップにて格納された復帰情報と前記復帰情報退避処理ステップにて格納された復帰情報とを比較する復帰情報比較ステップと、
　前記復帰情報比較ステップでの比較の結果、両情報が一致しないならばプログラムの暴走が生じていると判断して、プログラム暴走に対する所定の補償処理をなすプログラム暴走対処ステップとを有していることを特徴とするプログラム暴走検知方法。」
　
２．引用例
　これに対して、原査定の拒絶の理由に引用された特開平２−３０４６３５号公報（平成２年１２月１８日出願公開、以下「引用例１」という。）、特開昭６４−６４０４３号公報（昭和６４年３月９日出願公開、以下「引用例２」という。）、及び特開昭５８−７７６８４号公報（昭和５８年５月１１日出願公開、以下「引用例３」という。）には、それぞれ、次の事項が記載されている。
［引用例１］
Ａ．「本発明は、計算機システムにおいて、メインルーチンとサブルーチンあるいはサブルーチンとサブルーチンなどの間の連係処理を行う際のプログラム暴走の検知方式に関する。」（第２頁左上欄第４〜７行）
Ｂ．「第３図は本発明の１実施例によるメインルーチン１１とサブルーチン１２の連係プログラムのフローを示したものである。これらは第２図の計算機システムのもとで実行される。以下にその動作を説明する。
　メインルーチン１１は処理Ａとサブルーチンコールによる処理と、処理Ｂとにより構成されている。
　サブルーチンコールが発行されると、図示されていないＯＳは、スタックポインタ７によりポイントされるメモリ［１］のスタック領域にリターンアドレスを退避し、サブルーチン１２を起動する。サブルーチンには、次の１ないし９のステップを実行する。
１．サブルーチン１２は、まず命令ＰＯＰ　Ｒ１を実行する。この命令は、スタックから最上部のリターンアドレスをポップアップしてレジスタ［Ｒ１］に格納する。
２．次にサブルーチン１２は、命令ＰＵＳＨ　Ｒ１を実行する。この命令は、レジスタ［Ｒ１］のリターンアドレスをスタックにプッシュし、積み戻す。このときレジスタ［Ｒ１］には先のリターンアドレスが残されている。
３．次にレジスタ［Ｒ１］のリターンアドレスをリターンアドレス複写領域［Ｍ１］に格納する。
４．サブルーチン１２は、本来の処理Ｃを実行する。
５．処理Ｃの終了後、命令ＰＯＰ　Ｒ１を実行し、スタックからリターンアドレスをポップアップしレジスタ［Ｒ１］に格納する。
６．続いて命令ＰＵＳＨ　Ｒ１を実行し、リターンアドレスをスタックに積み戻す。
７．レジスタ［Ｒ１］の内容とリターンアドレス複写領域［Ｍ１］の内容とを比較する。
８．７の比較でＲ１＝Ｍ１であれば図示省略されているリターン命令を実行し、スタックのリターンアドレスを用いてＯＳにより復帰制御が行われる。
９．７の比較でＲ１≠Ｍ１であればプログラムを停止する。
　メインルーチン１１への復帰が行われた場合には、リターンアドレスから処理Ｂが実行される。」（第３頁左下欄第６行〜第４頁左上欄第７行、及び第２、３図）
　したがって、上記Ａ、Ｂの記載から、引用例１には、次の発明が記載されているものと認められる。（以下、引用例１記載の発明という。）
　プログラムにのっとって複数のルーチンの処理が可能かつルーチンを切換える際に元のルーチンへ復帰するために必要なリターンアドレスを保管し、該リターンアドレスを使用してプログラムの暴走を検知するプログラム暴走検知方法において、
　目下処理中のメインルーチンからサブルーチンへの処理の切り換えを要求するサブルーチンコールステップと、
　処理中のメインルーチンからサブルーチンへ切換えられた場合に、切り換え前のメインルーチンへ復帰するためのリターンアドレスを格納するリターンアドレス格納ステップと、
　前記リターンアドレス格納ステップにて格納されたリターンアドレスを複写して、前記リターンアドレス格納ステップとは異なる領域を使用するリターンアドレス複写領域へ記憶させるリターンアドレス複写処理ステップと、
　サブルーチンの本来の処理の終了を起因として、前記リターンアドレス格納ステップにて格納されたリターンアドレスと前記リターンアドレス複写処理ステップにて複写されたリターンアドレスとを比較するリターンアドレス比較ステップと、
　前記リターンアドレス比較ステップでの比較の結果、両リターンアドレスが一致しないならばプログラムの暴走が生じていると判断して、プログラムを停止するプログラム停止ステップとを有しているプログラム暴走検知方法。
　
［引用例２］
「所定のプログラムに従って一定の処理ルーチンを実行するマイクロコンピュータと、前記マイクロコンピュータに一定の周期で割り込み信号を送る割り込み発生装置と、前記割り込み信号によって前記マイクロコンピュータに実行されるプログラムで前記マイクロコンピュータに所定のコードを出力させて割り込みを終了させる検査プログラムを格納している第１のメモリと、前記マイクロコンピュータが正常に動作しているならば前記第１のメモリに格納されている前記検査プログラムにしたがって出力されるはずの規範コードを記憶している第２のメモリと、前記マイクロコンピュータが前記割り込み発生装置から割り込をかけられた際に前記検査プログラムに従って出力する検査コードと前記第２のメモリに格納されている前記規範コードとを比較して結果が違っていれば前記マイクロコンピュータを停止させる信号を前記マイクロコンピュータに送る比較装置とを含んで構成されることを特徴とする異常動作監視装置付きマイクロコンピュータ。」（第１頁左下欄第５行〜右下欄第６行）
　
［引用例３］
「第１図において、１は入力端子で、ここに印加された商用電源はトランス２により降圧される。３および４はフォトカプラで、トランス２の２次電流は抵抗器５および６で制限され、かつフォトカプラ３，４のダイオードで各々半波整流される。ただし、ゼナーダイオード７および８により一定電圧レベルがスライスされる。したがって、フォトカプラ３および４のトランジスタ出力は各々１８０°位相差のある矩形波が出力される。この波形はシュミットトリガ回路９および１０により波形整形され、フリップフロップ１１を駆動して電源周波数に等しい矩形波１２が取り出される。」（第１頁右下欄第１６行〜第２頁左上欄第７行、及び第１図）
　
３．対比
　本願発明と引用例１記載の発明とを対比すると、まず、引用例１記載の発明における「ルーチン」が、本願発明における「タスク」に相当し、引用例１記載の発明における「メインルーチン」が、本願発明における「処理中のタスク」に相当し、引用例１記載の発明における「サブルーチン」が、本願発明における「次のタスク」あるいは「異なるタスク」に相当する。
　また、引用例１記載の発明における「リターンアドレス複写領域」が、本願発明における「復帰情報退避部」に相当する。
　さらに、引用例１記載の発明における「サブルーチンコールステップ」、「リターンアドレス格納ステップ」、「リターンアドレス複写処理ステップ」、「リターンアドレス比較ステップ」、が、それぞれ、本願発明における「タスク切り換え要求ステップ」、「復帰情報格納ステップ」、「復帰情報退避処理ステップ」、「復帰情報比較ステップ」に相当する。
　そして、引用例１記載の発明において、「プログラムを停止する」ことは、「プログラム暴走に対する所定の補償処理」の一種であるということができるから、引用例１記載の発明における「プログラム停止ステップ」が、本願発明における「プログラム暴走対処ステップ」に相当する。
　したがって、本願発明と引用例１記載の発明とは、
　プログラムにのっとって複数のタスクの処理が可能かつタスクを切換える際に元のタスクへ復帰するために必要な情報を保管し、該情報を使用してプログラムの暴走を検知するプログラム暴走検知方法において、
　目下処理中のタスクから次のタスクへの処理の切り換えを要求するタスク切り換え要求ステップと、
　処理中のタスクから異なるタスクへ切換えられた場合に、切り換え前のタスクへの復帰情報を格納する復帰情報格納ステップと、
　前記復帰情報格納ステップにて格納された復帰情報を複写して、前記復帰情報格納ステップとは異なる領域を使用する復帰情報退避部へ記憶させる復帰情報退避処理ステップと、
　前記復帰情報格納ステップにて格納された復帰情報と前記復帰情報退避処理ステップにて格納された復帰情報とを比較する復帰情報比較ステップと、
　前記復帰情報比較ステップでの比較の結果、両情報が一致しないならばプログラムの暴走が生じていると判断して、プログラム暴走に対する所定の補償処理をなすプログラム暴走対処ステップとを有するプログラム暴走検知方法
の点で一致し、次の点で相違する。
　相違点：本願発明が、「交流電源の所定の電位を検知する電位検知ステップ」を有し、本願発明における「復帰情報比較ステップ」が、「前記電位検知ステップにて検知した所定の電位を起因として」、復帰情報格納ステップにて格納された復帰情報と復帰情報退避処理ステップにて格納された復帰情報とを比較するのに対し、引用例１記載の発明は、「交流電源の所定の電位を検知する電位検知ステップ」を有さず、引用例１記載の発明における「リターンアドレス比較ステップ」は、「サブルーチンの本来の処理の終了を起因として」、リターンアドレス格納ステップにて格納されたリターンアドレスとリターンアドレス複写処理ステップにて複写されたリターンアドレスとを比較する点。
　
４．当審の判断
　上記相違点について検討すると、
　本願発明が、「交流電源の所定の電位を検知する電位検知ステップ」を有し、かつ、該電位検知ステップにて検知した所定の電位を起因として、復帰情報格納ステップにて格納された復帰情報と復帰情報退避処理ステップにて格納された復帰情報とを比較しているのは、プログラム暴走有無の判断を、交流電源に基づく一定周期毎に割り込みをかけ、復帰情報を比較することによって行うことにより、割り込みをかけられる側のプログラムが暴走していても、割り込みをかける毎の復帰情報の比較によって必ずそのプログラムの暴走の有無が判断できるようにするためであるが、マイクロコンピュータが正常に動作しているか否かを、マイクロコンピュータに対して一定周期毎に割り込みをかけ、「検査コード」と「規範コード」という２つの情報の比較によって行うようにするという技術思想は引用例２に記載されており、この一定周期毎に２つの情報の比較によって異常の有無を判断するという技術思想を、プログラム暴走有無の判断を復帰情報の比較によって行う引用例１記載の発明に対して転用することは、プログラム暴走有無の判断を一定周期毎に行うという技術思想が、例えば、特開昭６３−２８２８５７号公報、特開昭６３−３１３２４５号公報等により周知であることを勘案すれば、当業者が容易になし得ることと認められ、さらに、その際、一定周期を「交流電源」に基づいて作り出すようにすることも、引用例３等の記載を参照すれば、当業者が容易になし得ることと認められる。
　そして、本願発明の構成によってもたらされる効果も、引用例１〜３に記載の発明から当業者ならば容易に予測することができる程度のものであって、格別なものとはいえない。
　
５．むすび
　したがって、本願発明は、引用例１〜３に記載の発明に基いて、当業者が容易に発明をすることができたものであるので、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。