• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 特36 条4項詳細な説明の記載不備 特許、登録しない。 G06F
管理番号 1034969
審判番号 審判1998-11893  
総通号数 18 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 1993-02-26 
種別 拒絶査定不服の審決 
審判請求日 1998-08-06 
確定日 2001-04-04 
事件の表示 平成 3年特許願第201788号「スタック管理システム」拒絶査定に対する審判事件[平成 5年 2月26日出願公開、特開平 5- 46407]について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 1.手続の経緯及び本願発明の要旨
本願は、平成3年8月12日の出願であって、請求項1に係る発明(以下、「本願発明」という)の要旨は、平成10年9月3日付け手続補正書によって補正された明細書及び図面の記載からみて、特許請求の範囲の請求項1に記載された次のとおりのものと認められる。
「退避される情報を格納するスタック領域と、該スタック領域の先頭アドレス、終了アドレス、およびスタック領域の情報が格納されている格納済領域の範囲を示す情報格納済アドレスとを保持するスタック管理情報保持手段と、前記スタック領域に情報が格納される毎に前記情報格納済アドレスを更新する管理情報更新手段と、スタック領域へ情報の格納を行うとともに、情報の格納中に割込みが発生した場合には情報の格納処理を停止し、割込み処理の終了後に前記情報格納済アドレスに基づき情報の格納処理を継続する情報格納手段と、を備えたことを特徴とするスタック管理システム」

2.原審の拒絶理由の概要
平成10年2月19日付け拒絶理由通知書において、以下の記載不備を指摘している。
「この出願は、明細書及び図面の記載が下記の点で、特許法第36条第4項、第5項及び第6項に規定する要件を満たしていない。

1.発明の詳細な説明には、下記の記載不備がある。
(1)本願実施例では、レジスタをスタックに退避している最中に割込が発生すると、前記退避動作を中断して前記割込を処理するためのプログラムを実行させるということをしているが、そのようなことをすると、退避が済んでいないレジスタの内容が、前記割込を処理するためのプログラムを実行することによって書き換えられてデータが破壊されるという誤動作が生じるから、何故このような処理を行っても正常動作するのか不明である(正常動作させるために必要な対策に関する記載が、発明の詳細な説明中には存在しておらず、不明である)。」

3.審判請求人の主張
原審の拒絶理由に対し、審判請求人は概ね以下のように主張している。
(1)平成10年4月27日付け意見書
「拒絶理由通知書で指摘された「・・・前記退避動作を中断して前記割込みを処理するためのプログラム」は、割込みルーチンを指すものであり、別プロセスやタスクによる割込み処理ではありません。一般的に割込みルーチンではレジスタは使用されないため、スタック処理中に割込みルーチンを実行させてもレジスタに保持されているデータへの影響はありません。このため、スタック処理が終了しているレジスタの情報が残っていれば、割込みルーチン終了後にスタック処理の継続実行が可能となります。これに対して、別プロセスやタスクのディスパッチ、すなわち、切替では当然全レジスタ・セーブを割込み禁止、又は延期して完了させます。従いまして、「前記割込みを処理するためのプログラムを実行することによって書き換えられてデータが破壊」と指摘されていますが、割込みルーチンから戻った時には、レジスタは破壊されていません。通常、割込みルーチンではレジスタが破壊されないようにプログラムを作成しています。」
(2)平成10年9月3日付け審判請求理由補充書
「割込み処理へとプログラムの処理が移行する場合にスタック処理が実行されるが、このスタック処理は通常以下に示す3つの処理に分けられる。つまり、まず初めに、割込み処理中にレジスタの情報が破壊されても回復可能とするため、情報を退避させるスタック領域を確保するとともに、該スタック領域の先頭アドレスと終了アドレスを保持し(第1の処理)、次に、レジスタの情報を前記スタック領域に退避させ(第2の処理)、そして最後に、割込み処理で実行されるプログラムを実行させ、このプログラムの実行が完了後に、スタック処理された情報をレジスタに戻す処理(第3の処理)からなっている。そして、本願発明では、第2の処理であるレジスタの情報のスタック領域への退避中であっても割込みを優先実行させるために、情報の退避完了毎に更新される情報格納済アドレスを保持させております。次に情報のスタック領域への退避中に割込みが発生した場合を想定する。レジスタの情報が退避未完了な状態で、割込みにより実行されるプログラムのみが実行された場合には、当然に退避が完了していないレジスタの情報は破壊され失われることになります。しかしながら、既存技術でも明確になっているように、通常、割込みが発生した場合にはスタック処理が実行されます。つまり、第1の割込みが発生してレジスタの情報の退避中(第2の処理)に第2の割り込みが発生し、この第2の割込みの処理を優先して実行させる場合には、新たにスタック処理が開始されます。このため、第2の割込にかかる処理が終了すると、退避されていた情報が元のレジスタに戻されることになり、第1の割込み処理でレジスタの情報を退避を中断した状態が復元されるわけです。このとき、前記情報格納済アドレスが残されていることから、どのレジスタの情報が退避完了しているか判定できるため、情報の退避処理を継続することが可能となります。」

4.当審の判断
(1)発明の詳細な説明には、本願発明の実施例について以下のように記載されている。
「【0010】
【実施例】
以下、本発明の一実施例を図面に基づいて説明する。
【0011】
図1は本発明のスタック管理システムに係る一実施例の制御を示すブロック図である。
【0012】
同図において、スタック管理部1は、メモリのスタック領域26上に、スタック3と、スタック管理情報領域5を確保するとともに、当該スタック3およびスタック管理情報領域5を開放する処理を実行する。
【0013】
スタック3は、すでに情報が格納されている領域の情報格納済領域7および情報が格納されていない領域の情報未格納領域9を有する。
【0014】
スタック管理情報領域5は、スタックフレームの先頭アドレス11、スタックフレームの終了アドレス13および情報格納済領域7に格納されている情報の範囲を示すスタックフレーム内の情報格納済アドレス15を有する。この情報格納済アドレス15は、スタック3の情報未格納領域9に情報が格納されると、後述する情報更新部19により更新される。
【0015】
情報格納部17は、スタック3の情報未格納領域9に格納する情報の単位、例えばレジスタ毎に当該レジスタの情報を格納して、格納後、情報更新部19に信号を出力する。
【0016】
情報更新部19は、情報格納部17により情報が格納されて信号が入力されるとスタック管理情報領域5の情報格納済アドレス15をカウントアップ(更新)する。
【0017】
アドレス設定部21は、スタックフレームの先頭アドレス11およびスタックフレームの終了アドレス13をスタック管理情報領域5に書き込む。
【0018】
割込検出部23は、割込フラグレジスタ(以下、IFRという。)25を備えて、当該IFR25が「1」にセットされていると割込みを検出し、IFR25が「0」にセットされていると割込の無と検出する。また、割込検出部23は、割込みを検出すると情報格納部17の動作を停止させて、割込の動作が終了すると情報格納部17にレジスタの情報をスタック3に格納する旨の指示をする。
【0019】
図2はスタック3に情報を書込む動作を示す図である。
【0020】
メモリのスタック領域26上にスタック管理部1によりスタック3およびスタック管理情報領域5が確保されると、アドレス設定部21は、スタック管理情報領域5にスタックフレームの先頭アドレスat、スタックフレームの終了アドレスabおよびスタックフレーム内の情報格納済アドレスを設定する。
【0021】
例えば、スタック3の情報未格納領域9にレジスタの58番目(R58)の情報が格納されると、スタック管理情報領域5の情報格納済アドレス15は、情報更新部19によりac1に更新される。次に、スタック3の情報未格納領域9にレジスタの59番目(R59)の情報が格納されると、情報格納済アドレス15は、情報更新部19によりac2に更新される。更に、スタック3にレジスタの60番目(R60)の情報が格納されるときに、割込みが発生すると、割込検出部23は、IFR25のフラグが「1」にセットされることにより割込みを検出する。また当該IFR25が「0」にセットされると割込みの終了を検出する。検出後、割込検出部23から情報格納済アドレス15を参照してR59まで格納済であるため、レジスタの60番目(R60)の情報がスタック3に格納される。格納後、情報格納済アドレス15は、情報更新部19によりac3に更新される。
【0022】
次に本実施例の作用を図3のフローチャートを用いて説明する。
【0023】
まず、システムの起動後、スタック管理部1は、メモリのスタック領域26上にスタック3およびスタック管理情報領域5を確保する。スタック管理情報5が確保されるとアドレス設定部21は、スタックフレームの先頭アドレス11、スタックフレームの終了アドレス13を当該スタック管理情報領域5に登録する(ステップ100、110)。
【0024】
上記スタック3にレジスタの情報を格納する情報格納部17は、当該レジスタ単位ごとにレジスタの情報を格納する。全てのレジスタの情報が格納されると処理を終了する(ステップ120Y)。一方、全てのレジスタの情報の格納が終了しなければ情報格納部17は、スタック3の情報未格納領域9に、例えばレジスタの59番目の情報を格納する(ステップ130)。格納後、情報格納部17から情報更新部19に信号が出力されると情報更新部19は、スタック管理情報領域5の情報格納済アドレス15をac1からac2に更新してステップ120に戻る(ステップ140)。
【0025】
上記ステップ120〜140において、割込みが発生すると、割込検出部23は、IFR25のフラグが「1」であることから割込みを検出し、情報格納部17に指令する。割込みが完了すると、割込検出部23は、情報格納部17に信号を出力する。情報格納部17は、スタック管理情報領域5の情報格納済アドレス15を参照して当該情報格納済アドレス15がac2であるので、レジスタの60番目(R60)の情報をスタック3の情報未格納領域9に格納する。
【0026】
これにより、スタック3に情報を格納しているときに割込みが発生しても当該割込みを待たせずに処理を実行できるので、従来の如く割込み動作を待たせることなく処理を実行してシステムの処理速度を向上できる。」
(2)ここで、上記2.で示した明細書の記載不備について検討する。
本願発明の実施例において、レジスタの退避処理を実行中に割込みを検出した際の処理については、上記第【0018】欄に「割込検出部23は、割込フラグレジスタ(以下、IFRという。)25を備えて、当該IFR25が「1」にセットされていると割込みを検出し、IFR25が「0」にセットされていると割込の無と検出する。また、割込検出部23は、割込みを検出すると情報格納部17の動作を停止させて、割込の動作が終了すると情報格納部17にレジスタの情報をスタック3に格納する旨の指示をする。」と、また、第【0021】欄に「例えば、スタック3の情報未格納領域9にレジスタの58番目(R58)の情報が格納されると、スタック管理情報領域5の情報格納済アドレス15は、情報更新部19によりac1に更新される。次に、スタック3の情報未格納領域9にレジスタの59番目(R59)の情報が格納されると、情報格納済アドレス15は、情報更新部19によりac2に更新される。更に、スタック3にレジスタの60番目(R60)の情報が格納されるときに、割込みが発生すると、割込検出部23は、IFR25のフラグが「1」にセットされることにより割込みを検出する。また当該IFR25が「0」にセットされると割込みの終了を検出する。検出後、割込検出部23から情報格納済アドレス15を参照してR59まで格納済であるため、レジスタの60番目(R60)の情報がスタック3に格納される。格納後、情報格納済アドレス15は、情報更新部19によりac3に更新される。」と、また、第【0025】欄に「上記ステップ120〜140において、割込みが発生すると、割込検出部23は、IFR25のフラグが「1」であることから割込みを検出し、情報格納部17に指令する。割込みが完了すると、割込検出部23は、情報格納部17に信号を出力する。情報格納部17は、スタック管理情報領域5の情報格納済アドレス15を参照して当該情報格納済アドレス15がac2であるので、レジスタの60番目(R60)の情報をスタック3の情報未格納領域9に格納する。」との記載があるのみである。そして、該記載からレジスタの退避処理を実行中に割込みを検出した際には、割込検出部23は割込フラグレジスタIFR25が「1」にセットされることによる割込を検出して情報格納部17の動作を停止させ、割込フラグレジスタIFR25が「0」にセットされることによる割込終了を検出して情報格納部17にレジスタの退避処理の再開を指示し、情報格納部17はスタック管理情報領域5の情報格納済アドレス15を参照して格納済みのレジスタを判定してレジスタの退避を継続するものと認められる。また、レジスタの退避処理中に発生した割込みについては、その内容(レジスタの退避や割込ルーチン等)は一切記載されていないが、上記第【0018】欄の「割込検出部23は、割込みを検出すると情報格納部17の動作を停止させて、割込の動作が終了すると情報格納部17にレジスタの情報をスタック3に格納する旨の指示をする。」との記載があり、スタックはその動作を停止させていることから、前記割込みにおいてはレジスタの退避は行わずに割込ルーチンを実行するものと認められる。
よって、この場合割込ルーチンの実行前に退避されなかったレジスタ(例えば上記レジスタの60番等)が、該割込ルーチンで使用されればレジスタの内容が破壊されてしまうことは当業者ならば自明であり、この対策についてはなんら記載されていないことは明らかである。また、本願発明において、割込みの終了を検出してレジスタの退避を再開する際に、レジスタの何番目まで退避されているかを検出しているが、その具体的検出処理として、第【0021】欄に「検出後、割込検出部23から情報格納済アドレス15を参照してR59まで格納済であるため、レジスタの60番目(R60)の情報がスタック3に格納される。」と、また、第【0025】欄に「情報格納部17は、スタック管理情報領域5の情報格納済アドレス15を参照して当該情報格納済アドレス15がac2であるので、レジスタの60番目(R60)の情報をスタック3の情報未格納領域9に格納する。」との記載があるが、スタックの特定のアドレスに特定のレジスタ番号の内容が格納されるという前提でもない限り、一般的にはこの情報格納済アドレスのみを参照しても、退避済みのレジスタ番号が判定可能であるとは到底考えられず、その他該情報格納済アドレスとレジスタ番号との関係についての記載は見当たらない。
したがって、本願発明は、発明の詳細な説明において正常に動作する実施例が開示されておらず、当業者が容易に実施をすることができる程度に発明の構成を記載したとは認められないから、原審における上記拒絶の理由は妥当なものである。
(3)審判請求人の主張について
(a)3(1)の主張について
審判請求人は「一般的に割込みルーチンではレジスタは使用されない」と主張するが、一般に割込ルーチンもCPUにより通常のプログラムと同様に処理されるものであり、技術常識からみても割込みルーチンにおいてレジスタが使用されないとは到底考えられないから該主張は失当である。
(b)3(2)の主張について
審判請求人は要するにレジスタの退避処理中に発生した割込み処理として、新たにレジスタの退避が行われるため、割込みが終了した際にレジスタの退避途中の状態に戻すことが可能でありレジスタの破壊はないと主張するが、上記4(2)で述べたように、第【0018】欄の「割込検出部23は、割込みを検出すると情報格納部17の動作を停止させて、割込の動作が終了すると情報格納部17にレジスタの情報をスタック3に格納する旨の指示をする。」との記載から、本願発明の割込検出部23は割込みを検出すると情報格納部17の動作を停止させるものであり、上記割込み処理においてレジスタの退避が行われるとの主張は明細書の該記載と矛盾するものである。
また、仮に割込みによるレジスタの退避が行われる際には新たなスタックが作成されるのが一般的だと主張したとしても、あくまでも本願発明の上記構成において複数のスタックをどのようにして管理するのかについて記載されていない以上、当業者が容易に実施をすることができる程度に発明の構成を記載したとは到底言うことはできない。
したがって、上記審判請求人の主張も失当であると言わざるを得ない。

5.むすび
以上のとおり、本件出願は、発明の詳細な説明に当業者が容易にその実施をすることができる程度に発明の目的、構成、効果を記載したとは認められないから、特許法第36条第4項に規定する要件を満たしていない。
よって、結論のとおり審決する。
 
審理終結日 2001-01-16 
結審通知日 2001-01-26 
審決日 2001-02-06 
出願番号 特願平3-201788
審決分類 P 1 8・ 531- Z (G06F)
最終処分 不成立  
前審関与審査官 久保 光宏  
特許庁審判長 松野 高尚
特許庁審判官 金子 幸一
大橋 隆夫
発明の名称 スタック管理システム  
代理人 外川 英明  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ