(57)【要約】【課題】本発明はシステム機能拡張方法及び装置に関し、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができるシステム機能拡張方法及び装置を提供することを目的としている。【解決手段】全体の動作を制御するＣＰＵ１と、メインメモリ２と、少なくとも１枚のインタフェースカード３とがシステムバス５を介して接続されたシステムにおいて、前記メインメモリ２内に、各ソフトウェアに共通な実行コードが登録されるコア実行コードテーブル１０を、前記インタフェースカード３内に、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブル２１を、それぞれ設け、前記ソフトウェアの実行時においては、前記サブ実行コードテーブル２１をメインメモリ２内にコピーし、コア実行コードテーブル１０と組みにしてソフトウェアを実行するように構成される。【選択図】      図２
2004310646.tif 000002
【特許請求の範囲】
【請求項１】
予め定義された各種イベントによって起動され、ソフトウェアの動作を決定づける実行コードが登録される実行コードテーブルを具備するものにおいて、前記実行コードテーブルを、各ソフトウェアに共通なコア実行コードが登録されるコア実行コードテーブルと、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルに分けておき（ステップ１）、
前記ソフトウェアの実行時においては、前記コア実行コードテーブルに記憶されたソフトウェアとサブ実行コードテーブルに記憶されたソフトウェアとを組みにして実行する（ステップ２）
ようにしたことを特徴とするシステム機能拡張方法。
【請求項２】
全体の動作を制御するＣＰＵと、メインメモリと、少なくとも１枚のインタフェースカードとがシステムバスを介して接続されたシステムにおいて、
前記メインメモリ内に、各ソフトウェアに共通な実行コードが登録されるコア実行コードテーブルを、
前記インタフェースカード内に、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルを、
それぞれ設け、
前記ソフトウェアの実行時においては、前記サブ実行コードテーブルをメインメモリ内にコピーし、コア実行コードテーブルと組みにしてソフトウェアを実行するように構成されたシステム機能拡張装置。
【請求項３】
イベント発生時に、一意に対応する一組みのコア実行コードとサブ実行コードを、テーブル上から検索して起動するシーケンスを動作させることを特徴とする請求項２記載のシステム機能拡張装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はシステム機能拡張方法及び装置に関し、更に詳しくは多種類のインタフェース機能を備える通信システムにおけるシステム機能拡張方法及び装置に関する。
【０００２】
【従来の技術】
多種類のインタフェース機能を備えた通信システムにおいて、新しい種別のインタフェース機能を拡張する場合、従来は、通信機能を用いて、機能を追加したソフトウェア全体をダウンロードし、ソフトウェアが書き込まれた記憶部に上書きし、そのインタフェースを搭載したハードウェアを追加実装し、システムを再起動することで機能追加を行なっている（例えば特許文献１参照）。
【０００３】
また、他の従来技術として、伝送装置へ新たなバージョンをダウンロードする時、予めネットワークに存在が可能な互換バージョン情報が設定される判定テーブルを設けておき、バージョン情報を要求した時には、各他伝送装置からのバージョン情報が前記判定テーブルに含まれている時に、新たなバージョンを伝送装置へダウンロードする技術が知られている（例えば特許文献２参照）。
【０００４】
【特許文献１】
特開１１−７３８２号公報（第２頁、第３頁、図１）
【特許文献２】
特開２０００−１１２７６３号公報（第３頁、第４頁、図１）
【０００５】
【発明が解決しようとする課題】
前記した従来のシステムでは、機能拡張の度にシステムの再起動が必要であり、拡張に影響を受けない部分のサービスも中断する必要があった。また、常に全ソフトウェア機能をシステムに搭載することになるため、システム毎に提供する機能を増減させるような柔軟性のある運用ができないため、メモリ等のリソースの最適化が不可能であった。
【０００６】
本発明はこのような課題に鑑みてなされたものであって、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができるシステム機能拡張方法及び装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
（１）請求項１記載の発明は、以下の通りである。図１は本発明方法の原理を示すフローチャートである。本発明は、予め定義された各種イベントによって起動され、ソフトウェアの動作を決定づける実行コードが登録される実行コードテーブルを具備するものにおいて、前記実行コードテーブルを、各ソフトウェアに共通なコア実行コードが登録されるコア実行コードテーブルと、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルに分けておき（ステップ１）、前記ソフトウェアの実行時においては、前記コア実行コードテーブルに記憶されたソフトウェアとサブ実行コードテーブルに記憶されたソフトウェアとを組みにして実行する（ステップ２）ようにしたことを特徴とする。
【０００８】
このように構成すれば、それぞれのインタフェースカードには、各インタフェースカード固有のサブ実行コードテーブルを搭載するだけでよいので、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができる。
（２）請求項２記載の発明は、以下の通りである。図２は本発明の原理ブロック図である。図において、１は全体の動作を制御するＣＰＵ、２はメインメモリ、３は少なくとも１枚のインタフェースカードであり、これらがシステムバス５を介して接続されたシステムを構成している。図において、１０は前記メインメモリ２内に設けられた各ソフトウェアに共通な実行コードが登録される実行コードテーブル、１１はサブ実行コードテーブルがコピー（記憶）されるサブ実行コードテーブル領域である。２１は前記インタフェースカード３内に設けられた、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルである。
【０００９】
このように構成された装置において、前記ソフトウェアの実行時においては、前記サブ実行コードテーブル２１をメインメモリ２のサブ実行コードテーブル領域１１にコピーし、コア実行コードテーブル１０と組みにしてソフトウェアを実行するようにする。
【００１０】
このように構成すれば、それぞれのインタフェースカード３には、インタフェースカード固有のサブ実行コードテーブルのみを搭載すればよいので、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができる。
（３）請求項３記載の発明は、イベント発生時に、一意に対応する一組みのコア実行コードとサブ実行コードを、テーブル上から検索して起動するシーケンスを動作させることを特徴とする。
【００１１】
このように構成すれば、コア実行コードと対応するサブ実行コードを起動することで、１つのシーケンスを動作させることができる。
【００１２】
また、この発明において、前記サブ実行コードテーブルが、各種機能部を特徴付けるハードウェア部に搭載されることを特徴とする。
【００１３】
このように構成すれば、サブ実行コードテーブルを各種機能部を特徴付けるハードウェア部に搭載することにより、各ハードウェア毎にそれぞれの特徴を有する動作を行なわせることができる。
【００１４】
また、この発明において、前記サブ実行コードテーブルがシステムに追加搭載されたとき、該サブ実行コードテーブルが、コア実行コードテーブルが実行されているメモリ空間の予め決められたアドレスに割り付けられることを特徴とする。
【００１５】
このように構成すれば、コア実行コードテーブルとサブ実行コードテーブルを結合して動作させることが可能となる。
【００１６】
また、この発明において、チェックサムを用いて、サブ実行コードテーブルの正当性を確認することを特徴とする。
【００１７】
このように構成すれば、サブ実行コードテーブルの正当性を確認することができる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
【００１９】
本発明は、ソフトウェアを基本機能に限定したコア部と、拡張機能を搭載するサブ部に分割し、サブ部を拡張機能を実現するためのハードウェアと一体化させるものである。そして、そのサブ部ソフトウェアを、コア部の機能停止を伴わずにシステムに追加できるようにすることで、サービス停止を伴わない機能拡張と、柔軟な機能追加性を提供するものである。
【００２０】
図３は本発明の一実施の形態例を示すブロック図である。図２と同一のものは、同一の符号を付して示す。図に示すシステムは、多種類のインタフェース機能を備えることが可能な通信システムであり、１０−１００ＢＡＳＥ−Ｔ，１０００ＢＡＳＥ−ＴＸ，ＯＣ４８等のインタフェース機能を具備し、それらのインタフェース機能は個別のカードに搭載されるようになっている。本システムは、該インタフェースカードを実装することで該インタフェースカードの具備する機能を使用できるようになる。
【００２１】
図において、３０はＣＰＵカードであり、ＣＰＵ１と、メインメモリ２と、データベース４から構成されている。メインメモリ２は、コア実行コードテーブル１０と、サブ実行コードテーブル領域１１と、テーブル駆動プログラム１２から構成されている。サブ実行コードテーブル領域１１は、実際に１つのアプリケーションプログラムが実行される時に、対応するインタフェースカードからサブ実行コードテーブルがコピーされる領域である。テーブル駆動プログラム１２はコア実行テーブル及びサブ実行テーブルを駆動するプログラムである。
【００２２】
データベース４は、各種のパラメータが設定データとして記憶される領域である。実際に電源がオンにされた時に、前回設定された情報が記憶されているものである。
【００２３】
３は前述したインタフェースカードであり、各機能毎のカードより構成されている。例えば、図に示すように、１０−１００ＢＡＳＥ−Ｔインタフェースカードや、１０００ＢＡＳＥ−ＴＸインタフェースカードや、ＯＣ４８インタフェースカード等より構成されている。２１はインタフェースカード３上に実装されるサブ実行コードテーブルである。該サブ実行コードテーブル２１は、１０−１００ＢＡＳＥ−Ｔや、１０００ＢＡＳＥ−ＴＸや、ＯＣ４８等の専用のテーブルより構成されている。このように、サブ実行コードテーブル２１が各種機能部を有するハードウェア部に搭載されることで、各ハードウェア毎にそれぞれの特徴を有する動作を行なわせることができる。
【００２４】
２２はそれぞれのインタフェースカード毎に設けられたハードウェアであり、例えばＬＳＩが用いられる。例えば、１０−１００ＢＡＳＥ−Ｔインタフェースカードであれば、１０−１００ＢＡＳＥ−Ｔ  ＬＳＩが用いられ、１０００ＢＡＳＥ−ＴＸインタフェースカードであれば、１０００ＢＡＳＥ−ＴＸ  ＬＳＩが用いられ、ＯＣ４８インタフェースカードであれば、ＯＣ４８  ＬＳＩが用いられる。３７は各インタフェースカード３と接続される光ケーブルである。
【００２５】
これらインタフェースカード３はスロットに装着されるようになっており、例えば１０−１００ＢＡＳＥ−ＴインタフェースカードはＳＬＯＴ（スロット）１に装着され、１０００ＢＡＳＥ−ＴＸインタフェースカードはＳＬＯＴ２に装着され、ＯＣ４８インタフェースカードはＳＬＯＴ３に装着される。３２はこれらインタフェースカード３がＳＬＯＴに装着されたことを検出する実装監視部である。該実装監視部３２の出力は、ＣＰＵ１に与えられる。３５はＣＰＵにコマンドを送り、例えば光信号を出す／出さない等の決定を行なうオペレータである。５は、ＣＰＵ１、メインメモリ２、インタフェースカード３が接続されるシステムバスである。このように構成された装置の動作を説明すれば、以下の通りである。
【００２６】
ＣＰＵ１は、インタフェースカード３の実装状況を実装監視部３２により監視し、インタフェースカード３がＳＬＯＴ１〜ＳＬＯＴ４に実装されると、実装を認識する。ユーザは、ＳＬＯＴ１〜ＳＬＯＴ４にインタフェースカードの種別（例えば、１０−ＢＡＳＥ−Ｔ，１０００ＢＡＳＥ−ＴＸ，ＯＣ４８）を問わず、自由に実装することができる。サブ実行コードの中に、当該インタフェースカードのＩＤが記憶されているため、どのＳＬＯＴに装着されても、そのインタフェースカード３の機能を認識することができるからである。また、オペレータ３５は、本システムに信号出力開始等の各種のイベントを通知することが可能であり、システムの動作を制御することが可能である。
【００２７】
ＣＰＵカード３０には、コア実行コードテーブル１０、テーブル駆動プログラム１２、データベース４が搭載されている。コア実行コードテーブル１０は、イベント（初期化、信号出力開始／停止、ＬＥＤ点灯／消灯）に一意に対応する各種のインタフェース機能に共通な実行コードが登録されるテーブルである。テーブル駆動プログラム１２は、テーブルをイベントに対応して駆動させるプログラムである。データベース４は、各インタフェース機能に関する情報（信号出力オン／オフ、ＬＥＤ点灯／消灯等）を保存し、復元するために用いられる。
【００２８】
１０−ＢＡＳＥ−Ｔ，１０００ＢＡＳＥ−ＴＸ，ＯＣ４８のそれぞれのインタフェースカード３には、サブ実行コードテーブル２１と、対応したＬＳＩ２２が搭載されている。サブ実行コードテーブル２１には、各イベントに対する各インタフェース機能の個別処理の実行コードが登録されている。２２は、それぞれのインタフェースカード３に搭載されているインタフェース機能を実現するＬＳＩである。
【００２９】
ＣＰＵ１は、インタフェースカード３がＳＬＯＴに実装されると、システムバス５を通じてメインメモリ２のサブ実行コードテーブル領域１１にそれぞれのサブ実行コードテーブルをコピーする。サブ実行コードテーブルがメインメモリ２にコピーされる領域を図４に示す。
【００３０】
図４はメインメモリマップを示す図である。コア実行コードテーブル１０は、メインメモリ２にテーブル駆動プログラム１２と共にロードされている。ＣＰＵ１がインタフェースカード３に搭載されたサブ実行コードテーブル２１をメインメモリ２にコピーする領域は、ＳＬＯＴ１〜４毎に予め割り付けられており、ＣＰＵ１は、ＳＬＯＴに実装されたインタフェースカード３に搭載されたサブ実行コードテーブルを割り付けられたメインメモリ２のサブ実行コードテーブル領域１１にコピーする。
【００３１】
このようにすれば、それぞれのインタフェースカード３には、インタフェースカード固有のサブ実行コードテーブルのみを搭載すればよいので、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができる。
【００３２】
ここで、コア実行コードテーブルとは、多種類のインタフェースカード３（１０−１００ＢＡＳＥ−Ｔ，１０００ＢＡＳＥ−ＴＸ，ＯＣ４８）に共通部分の実行コード（あるイベントに対する前処理、後処理等）を登録したテーブルのことである。また、サブ実行コードテーブルとは、インタフェースカード３に搭載され、そのインタフェースカード個別部分の実行コードを登録したテーブルのことである。
【００３３】
図５は、コア実行コードテーブル／サブ実行コードテーブル例を示す図である。コア実行コードテーブル、サブ実行コードテーブル共に、図５に示すようなテーブルを持っている。このテーブルは、チェックサム、イベント実行アドレス、イベント実行コード領域等で構成されている。
【００３４】
チェックサムは、各インタフェースカード３がＣＰＵ１に実装確認され、ＣＰＵ１がサブ実行テーブルをサブ実行コードテーブル領域１１にコピーした時、コピー処理が正常に行なわれたことを判定するための変数である。チェックサムを用いれば、サブ実行コードテーブルの正当性を確認することができる。
【００３５】
イベント実行アドレスは、コア実行コードテーブル１０、各サブ実行コードテーブル２１共に共通に定義されたイベント（初期化、信号出力開始／停止、ＬＥＤ点灯／消灯）に対応する処理を実行するコードを指すアドレスである。コア実行コードテーブル１０のイベント実行アドレスには、該イベントに対するインタフェース共通処理の実行コードのアドレス、サブ実行コードテーブルのイベント実行アドレスには、該イベントに対するインタフェース個別処理の実行コードのアドレスが格納されている。
【００３６】
イベント実行コード領域は、イベントを実行するコードを格納した領域である。インタフェース共通な実行コード、インタフェース個別な実行コードは、メインメモリのそれぞれ異なるアドレスに割り付けられている。コア実行コードテーブルとサブ実行コードテーブルのイベント実行アドレスに異なるアドレスを登録することで、同一なイベントに対してコア実行コードテーブルでインタフェース「共通」処理実行、サブ実行コードテーブルでインタフェース「個別」処理実行を実現している。
【００３７】
図６は１０−１００ＢＡＳＥ−Ｔのサブ実行コードテーブルのイベント実行アドレスとイベント実行コードの対応を示す図である。１０−１００ＢＡＳＥ−Ｔインタフェースのサブ実行コードテーブルのイベント実行アドレスが１０−１００ＢＡＳＥ−Ｔインタフェース個別の実行コードを指していることを示す。
【００３８】
このようにすれば、コア実行コードテーブル１０、サブ実行コードテーブル２１の構成を共通化し、また、共通実行コード、個別実行コードでサブルーチンコールする際の引数と戻り値を共通化しているので、インタフェース種別に関わらず、テーブル駆動プログラム１２が処理実行することができ、インタフェース機能追加に際してもコア部を変更する必要がない。また、コア実行コードテーブル１０と、サブ実行コードテーブル２１を結合して動作させることが可能となる。
【００３９】
図７，図８はインタフェースカード実装時の動作例を示すフローチャートである。装置としては、図３に示す構成を用いる。各インタフェースカード３がＳＬＯＴ１〜３に搭載されると（Ｓ１）、実装監視部３２はそのことを認識し、ＣＰＵ１に通知する。該ＣＰＵ１は、実装認識を行なうと、メインメモリ２のＳＬＯＴに対応したサブ実行コードテーブル領域１１に当該サブ実行コードテーブル２１をコピーする（Ｓ２）。以下、サブ実行コードテーブル領域１１にコピーされたサブ実行コードテーブルも符号２１を付して示すものとする。
【００４０】
次に、ＣＰＵ１は、コピーしたサブ実行コードテーブル２１のチェックサム計算を行なう（Ｓ３）。そして、コピーしたサブ実行コードテーブル２１が正当性を有するか否かをチェックする（Ｓ４）。若し、チェックサムの結果、サブ実行コードテーブルの正当性が確認できなかった場合は、インタフェースカード３が実装されていないものとみなし、コピーしたサブ実行コードテーブルの削除処理を行なう（Ｓ１５）。
【００４１】
正当性が確認できた場合には、コア実行コードテーブル１０の初期化アドレスからオフセット値を取得する（Ｓ５）。続いて、コア実行コードテーブル１０のベースアドレスとオフセット値を加算し、初期化実行アドレスを取得する（Ｓ６）。次に、取得した初期化実行アドレスがＮＵＬＬでないか、つまりアドレスに適正な値が入っているかを判定する（Ｓ７）。ＮＵＬＬである場合には、処理を終了する。ＮＵＬＬでないならば、初期化実行アドレスが指す初期化コードをサブルーチンコールし、インタフェースカード３が実装されたＳＬＯＴ１〜ＳＬＯＴ３に対応するＳＬＯＴのデータベース初期化等を行なう（Ｓ８）。
【００４２】
共通部分の初期化コードのサブルーチンが終了すると、復帰値判定（０：正常、１：異常）を行なう（Ｓ９）。異常な場合には、処理は終了する。正常な場合には、実装されたインタフェースカード個別の初期化処理を行なうため、コピーしたサブ実行コードテーブル２１の初期化実行アドレスからインタフェースカード３個別の初期化実行アドレスのオフセット値を変数に格納して取得する（Ｓ１０）。
【００４３】
続いて実装されたＳＬＯＴに対応したサブ実行コードテーブル２１のベースアドレスをオフセット値と加算し、初期化実行アドレスを取得する（Ｓ１１）。次に、初期化実行アドレスにＮＵＬＬ以外の値が入っているかどうかチェックする（Ｓ１２）。アドレスに適正な値が入っていなかった場合には、処理を終了する。アドレスに適正な値が入っていた場合には、初期化実行アドレスが指すコードをサブルーチンコールして、実装されたインタフェースカード３のＬＥＤ消灯等の初期化処理を行なう（Ｓ１３）。そのサブルーチンが終了すると、復帰値判定（０：正常、１：異常）を行なう（Ｓ１４）。
【００４４】
図９，図１０は１０−１００ＢＡＳＥ−Ｔ信号出力開始時の動作例を示すフローチャートである。オペレータ３５から１０−１００ＢＡＳＥ−Ｔインタフェースカード３に対する信号出力開始の命令が通知されると（Ｓ１）、ＣＰＵ１はテーブル駆動プログラム１２により、コア実行コードテーブル１０を駆動させてインタフェース機能共通のデータベース保存処理を行なう。以下に、その処理内容を示す。
【００４５】
ＣＰＵ１は、コア実行コードテーブル１０の信号出力開始アドレスから信号出力開始アドレスのオフセット値を変数に格納し取得する（Ｓ２）。続いて、コア実行コードテーブル１０のベースアドレスと加算し、信号出力開始アドレスを取得する（Ｓ３）。次に、取得したアドレスがＮＵＬＬであるかどうか判定を行なう（Ｓ４）。ＮＵＬＬであったら、処理を終了する。
【００４６】
ＮＵＬＬでない場合は、アドレスが示す信号出力開始コードをサブルーチンコールし（Ｓ５）、データベース４に「信号出力がオンになった」という情報を記録する。信号出力開始サブルーチンが終了すると、復帰値判定（０：正常、１：異常）を行ない（Ｓ６）、信号出力開始時の共通処理が正常に行なわれたかを判定する。復帰値が“１”の場合には、処理を終了する。
【００４７】
続いて、ＣＰＵ１はテーブル駆動プログラム１２により、サブ実行コードテーブル２１を駆動させて、１０−１００ＢＡＳＥ−Ｔインタフェースカード個別の信号出力開始処理を行なう。以下に、処理内容を示す。
【００４８】
ＣＰＵ１は、インタフェース個別の１０−１００ＢＡＳＥ−Ｔインタフェースカード個別の信号出力開始処理を行なうため１０−１００ＢＡＳＥ−Ｔインタフェースカード３に対応したサブ実行コードテーブル２１のＳＬＯＴ１の信号出力開始アドレスから１０−１００ＢＡＳＥ−Ｔインタフェースカードの信号出力開始アドレスのオフセット値を変数に格納し取得する（Ｓ７）。
【００４９】
続いて、サブ実行コードテーブル２１のＳＬＯＴ１のベースアドレスとオフセット値を加算し、信号出力開始アドレスを取得する（Ｓ８）。次に、信号出力開始アドレスがＮＵＬＬであるかどうかの判定を行なう（Ｓ９）。アドレスに適正な値が入っていない場合には、処理を終了する。
【００５０】
アドレスに適正な値が入っていた場合には、アドレスが指定する信号出力開始実行コードをサブルーチンコールして、システムバス５経由で１０−１００ＢＡＳＥ−ＴのＬＳＩ２２に対して信号出力開始のハード設定を行なう（Ｓ１０）。信号出力開始サブルーチンが終了すると、復帰値判定（０：正常、１：異常）を行なう（Ｓ１１）。異常の場合には、処理を終了する。正常な場合には、結果をオペレータ３５に通知する（Ｓ１２）。
【００５１】
このように、本発明によれば、同じイベントに一意に対応する一組みのコア実行コードとサブ実行コードを起動することで、１つのシーケンスを動作させることができる。
【００５２】
また、本発明によれば、インタフェース機能拡張の際に、システムの再起動が必要ない。そのため、拡張に影響を受けない部分のサービスも中断する必要がない。また、ソフトウェア機能を基本機能に限定したコア部と、拡張機能を搭載するサブ部に分割し、システムに搭載することになるため、システム毎に提供する機能を増減させるような柔軟性のある運用ができ、最適なメモリ等のリソースを確保することができる。
【００５３】
（付記１）  予め定義された各種イベントによって起動され、ソフトウェアの動作を決定づける実行コードが登録される実行コードテーブルを具備するものにおいて、前記実行コードテーブルを、各ソフトウェアに共通なコア実行コードが登録されるコア実行コードテーブルと、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルに分けておき（ステップ１）、
前記ソフトウェアの実行時においては、前記コア実行コードテーブルに記憶されたソフトウェアとサブ実行コードテーブルに記憶されたソフトウェアとを組みにして実行する（ステップ２）
ようにしたことを特徴とするシステム機能拡張方法。
【００５４】
（付記２）  全体の動作を制御するＣＰＵと、メインメモリと、少なくとも１枚のインタフェースカードとがシステムバスを介して接続されたシステムにおいて、
前記メインメモリ内に、各ソフトウェアに共通な実行コードが登録される実行コードテーブルを、
前記インタフェースカード内に、各種機能毎に固有なサブ実行コードが登録されるサブ実行コードテーブルと、
を設け、
前記ソフトウェアの実行時においては、前記サブ実行コードテーブルをメインメモリ内にコピーし、コア実行コードテーブルと合わせてソフトウェアを実行するように構成されたシステム機能拡張装置。
【００５５】
（付記３）  イベント発生時に、一意に対応する一組みのコア実行コードとサブ実行コードを、テーブル上から検索して起動するシーケンスを動作させることを特徴とする付記２記載のシステム機能拡張装置。
【００５６】
（付記４）  前記サブ実行コードテーブルが、各種機能部を特徴付けるハードウェア部に搭載されることを特徴とする付記２乃至３の何れかに記載のシステム機能拡張装置。
【００５７】
（付記５）  前記サブ実行コードテーブルがシステムに追加搭載されたとき、該サブ実行コードテーブルが、コア実行コードテーブルが実行されているメモリ空間の予め決められたアドレスに割り付けられることを特徴とする付記２乃至４の何れかに記載のシステム機能拡張装置。
【００５８】
（付記６）  チェックサムを用いて、サブ実行コードテーブルの正当性を確認することを特徴とする付記２乃至５の何れかに記載のシステム機能拡張装置。
【００５９】
【発明の効果】
本発明によれば、以下のような効果が得られる。
（１）請求項１記載の発明によれば、それぞれのソフトウェアには、各ソフトウェア固有のサブ実行コードテーブルを搭載するだけでよいので、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができる。
（２）請求項２記載の発明によれば、それぞれのインタフェースカードには、インタフェースカード固有のサブ実行コードテーブルのみを搭載すればよいので、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができる。
（３）請求項３記載の発明によれば、コア実行コードと対応するサブ実行コードを起動することで、１つのシーケンスを動作させることができる。
【００６０】
このように、本発明によれば、サービス停止を伴わない機能拡張と、柔軟な機能追加を行なうことができるシステム機能拡張方法及び装置を提供することができる。
【図面の簡単な説明】
【図１】本発明方法の原理を示すフローチャートである。
【図２】本発明の原理ブロック図である。
【図３】本発明の一実施の形態例を示すブロック図である。
【図４】メインメモリマップを示す図である。
【図５】コア実行コードテーブル／サブ実行コードテーブルの例を示す図である。
【図６】１０−１００ＢＡＳＥ−Ｔのサブ実行コードテーブルのイベント実行アドレスとイベント実行コードの対応を示す図である。
【図７】インタフェースカード実装時の動作例を示すフローチャートである。
【図８】インタフェースカード実装時の動作例を示すフローチャートである。
【図９】１０−１００ＢＡＳＥ−Ｔ信号出力開始時の動作例を示すフローチャートである。
【図１０】１０−１００ＢＡＳＥ−Ｔ信号出力開始時の動作例を示すフローチャートである。
【符号の説明】
１    ＣＰＵ
２    メインメモリ
３    インタフェースカード
５    システムバス
１０  コア実行コードテーブル
１１  サブ実行コードテーブル領域
２１  サブ実行コードテーブル
【図１】
2004310646.tif 000003
【図２】
2004310646.tif 000004
【図３】
2004310646.tif 000005
【図４】
2004310646.tif 000006
【図５】
2004310646.tif 000007
【図６】
2004310646.tif 000008
【図７】
2004310646.tif 000009
【図８】
2004310646.tif 000010
【図９】
2004310646.tif 000011
【図１０】
2004310646.tif 000012