JPH06119263A - 処理関数呼出方式 - Google Patents

処理関数呼出方式

Info

Publication number
JPH06119263A
JPH06119263A JP4266973A JP26697392A JPH06119263A JP H06119263 A JPH06119263 A JP H06119263A JP 4266973 A JP4266973 A JP 4266973A JP 26697392 A JP26697392 A JP 26697392A JP H06119263 A JPH06119263 A JP H06119263A
Authority
JP
Japan
Prior art keywords
function
processing
state
calling
transition table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP4266973A
Other languages
English (en)
Inventor
Masao Uchino
雅央 内野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP4266973A priority Critical patent/JPH06119263A/ja
Publication of JPH06119263A publication Critical patent/JPH06119263A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【目的】通信制御ファームウェア内における状態変化に
対応してそれぞれ決められた関数(プログラム)を呼び
出す際の処理速度を上げ、プログラムも短くてメモリ占
有量の少ない処理関数呼出方式を提供する。 【構成】状態値101とイベント番号102とを行列要
素とする二次元マトリックスから成る状態遷移テーブル
と、この状態遷移テーブルを検索し関数ポインタ10
3,104,105を取得する検索手段と、対応する関
数106,107,108を呼び出す関数呼出手段とを
備えている。状態遷移テーブル内の関数ポインタには、
あらかじめコンパイル時に、コールすべき関数の関数ポ
インタが初期設定値として格納されている。switc
h文を使用して複数ステップの処理を反復する必要がな
く、テーブルの検索のみで直接関数コールが行えるの
で、処理速度が向上し、プログラムも短くなる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は処理関数呼出方式に関
し、特に通信制御ファームウェアにおける処理関数呼出
方式に関する。
【0002】
【従来の技術】従来、通信制御ファームウェア内におけ
る状態変化に対応してそれぞれ決められた処理関数(プ
ログラム)を呼び出す方式としては、例えば、C言語等
の高級言語での実現手段としてswitch文等を使用
し、現在の状態が存在し得る多くの状態の中のどれに該
当するかを判断し、その結果に基づき関数コールを行っ
ていた。
【0003】図3は、従来の処理関数呼出方式の処理手
順を示すフローチャートである。ステップ301は、通
信制御ファームウェア内における現在の状態値を判断す
る処理で、switch文により処理される。ステップ
302は、発生したイベントを判断するための処理であ
り、これもswitch文により処理される。ステップ
303は関数コール文により処理関数を呼び出す処理で
ある。
【0004】現在の状態値をA状態とすると、ステップ
301でswitch文の判断によりA状態の経路を選
定した後、ステップ302において再びswitch文
による判定を行う。この判定により発生したイベントの
番号「0」と一致する経路を判定し、はじめてステップ
303に進み関数をコールすることができる。
【0005】switch文の処理効率を考えると、s
witch文中に現れるcase文の要素が整数型であ
った場合、又は文字型であってもその文字をコードに置
き換えた場合に、すべてのcase要素が連続した数で
表せるならば、switch文はswitchテーブル
(1次元)を作成することにより処理効率を上げること
が可能であるが、連続した数でないときには一致するま
でcase要素の数だけ判定を繰り返すことになる。
【0006】
【発明が解決しようとする課題】上述した従来の処理関
数呼出方式では、ステップ301とステップ302とで
switch文による判断を2回行わなければならず、
処理効率が悪くなってしまう。又、各switch文の
処理においては、通信制御ファームウェア内の状態値や
イベントの数は一般に比較的大きな数となるため、sw
itch文内に現れるcase要素が多くなり処理に時
間がかかる。特に、判定された状態値またはイベントが
case文の終わりの方に記述されていた場合には、そ
のcase文の実行に移るまでに多くの時間がかかって
しまう。従って、比較的発生する回数の多いcase要
素を始めの方に記述するなどの対策を行っているが、デ
ータ通信制御という処理速度を重視する場合には、ca
se要素が多くswitch文の処理に時間がかかるこ
とは大きな問題となっている。
【0007】又、switch文の記述が多くなるた
め、処理ステップが多くなり処理時間がかかるほか、プ
ログラムが占有するメモリ量も多くなるという欠点があ
る。
【0008】本発明の目的は、処理速度が速く、プログ
ラムも短くてメモリ占有量も少ない処理関数呼出方式を
提供することにある。
【0009】
【課題を解決するための手段】請求項1の処理関数呼出
方式は、通信制御ファームウェア内部の処理の実行状態
を示す状態値と通信制御ファームウェア内部の処理の起
動要因となるイベントとを行列要素とする二次元マトリ
ックスの各要素に処理すべきプログラムの格納場所を示
す関数ポインタを格納した状態遷移テーブルと、前記状
態値およびイベントを指定して前記状態遷移テーブルを
検索し該当する関数ポインタを取得する検索手段と、取
得した関数ポインタで該当するプログラムを呼び出す関
数呼出手段とを備えて構成されている。
【0010】請求項2の処理関数呼出方式は、請求項1
の各手段に加え前記通信制御ファームウェアの内部にあ
らかじめ定められた条件のとき前記状態遷移テーブルに
設定された関数ポインタを動的に変更する設定変更手段
を備えて構成されている。
【0011】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0012】図1は本発明に用いられる状態遷移テーブ
ルの一例を示す説明図である。
【0013】図1に示す状態遷移テーブルは、状態値1
01とイベント番号102とを行列要素とする二次元マ
トリックスを構成しており、この二次元マトリックス中
の各要素には通信制御ファームウェア内の複数のプログ
ラム(関数)中の1プログラムの格納場所を示す関数ポ
インタ103,104,105が記憶されている。各関
数ポインタ103,104,105に対応する関数10
6,107,108のプログラムは、その状態値にある
時にそのイベントが発生した場合に処理すべき内容が記
述されたものである。なお、状態遷移テーブル内の関数
ポインタには、あらかじめコンパイル時に、コールすべ
き関数の関数ポインタを初期設定値として格納してお
く。
【0014】図2は本発明の一実施例の動作を示すフロ
ーチャートである。ステップ201は、図1の状態遷移
テーブルから関数ポインタを取り出す処理である。この
処理は任意のイベントの発生時に起動される。ステップ
202は、状態遷移テーブルから取り出した関数ポイン
タが示す関数をコールする処理である。
【0015】次に、本発明の特徴的な動作について具体
的に説明する。いま、状態値101がA状態のとき、イ
ベント番号102が「0」のイベントで起動された場合
を考える。前述したようにステップ201が起動され、
状態遷移テーブルを参照し、状態値101が状態A、イ
ベント番号102が「0」のテーブル内要素から関数ポ
インタ103を取り出してくる。
【0016】ここで得られた関数ポインタ103は、前
述したように処理すべき関数の格納場所を示しているの
で、この値を利用してステップ202で関数106をダ
イレクトにコールすることができ、容易に関数106の
実行が可能となる。
【0017】同様にして、状態値101がB状態でイベ
ント番号102が「3」のイベントが発生したときには
関数107が、状態値101がF状態でイベント番号1
02が「3」のイベントが発生したときには関数108
の処理が実行される。
【0018】上述の説明では、状態遷移テーブルには初
期設定値として関数ポインタが格納されるように述べた
が、同じ状態値で同じイベントが発生しても、処理の経
過に従って複数の処理を選択する必要がある場合や、開
始条件によって処理内容を変更する必要が生じる場合が
ある。このような場合には、あらかじめコンパイル時に
初期値としてセットしておくだけでなく、通信制御ファ
ームウェア自身がその条件を検出し、必要なタイミング
で状態遷移テーブルの関数ポインタを動的に変更してセ
ットし直すように構成することができる。このようにす
ると、開始条件の相違あるいは処理が進むに従って、同
一の状態値およびイベントの組み合わせであっても異な
る処理を実行させるようにすることができる。
【0019】
【発明の効果】以上説明したように、本発明の処理関数
呼出方式は、状態遷移テーブル内に関数ポインタをセッ
トしておくことにより、関数ポインタが示す処理関数を
ダイレクトにコールすることができるため、従来までの
方式に比べはるかに処理スピードの向上ができる。
【0020】又、プログラムのステップ数が数行で記述
できるため実行オブジェクトがコンパクトにでき、プロ
グラムの占有するメモリが少なくて済む。以上二つの面
で効率の良い処理が実現できるという効果がある。
【図面の簡単な説明】
【図1】本発明に用いられる状態遷移テーブルの説明図
である。
【図2】本発明の一実施例の動作を示すフローチャート
である。
【図3】従来の処理関数呼出方式の動作を示すフローチ
ャートである。
【符号の説明】
101 状態値 102 イベント番号 103,104,105 関数ポインタ 106,107,108 関数

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 通信制御ファームウェア内部の処理の実
    行状態を示す状態値と通信制御ファームウェア内部の処
    理の起動要因となるイベントとを行列要素とする二次元
    マトリックスの各要素に処理すべきプログラムの格納場
    所を示す関数ポインタを格納した状態遷移テーブルと、
    前記状態値およびイベントを指定して前記状態遷移テー
    ブルを検索し該当する関数ポインタを取得する検索手段
    と、取得した関数ポインタで該当するプログラムを呼び
    出す関数呼出手段とを備えたことを特徴とする処理関数
    呼出方式。
  2. 【請求項2】 前記通信制御ファームウェアの内部にあ
    らかじめ定められた条件のとき前記状態遷移テーブルに
    設定された関数ポインタを動的に変更する設定変更手段
    を備えたことを特徴とする請求項1記載の処理関数呼出
    方式。
JP4266973A 1992-10-06 1992-10-06 処理関数呼出方式 Withdrawn JPH06119263A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4266973A JPH06119263A (ja) 1992-10-06 1992-10-06 処理関数呼出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4266973A JPH06119263A (ja) 1992-10-06 1992-10-06 処理関数呼出方式

Publications (1)

Publication Number Publication Date
JPH06119263A true JPH06119263A (ja) 1994-04-28

Family

ID=17438287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4266973A Withdrawn JPH06119263A (ja) 1992-10-06 1992-10-06 処理関数呼出方式

Country Status (1)

Country Link
JP (1) JPH06119263A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7542826B2 (en) 2005-02-02 2009-06-02 Denso Corporation Control apparatus for automobile
JP2009176326A (ja) * 2009-05-08 2009-08-06 Intec Netcore Inc 計算装置、計算プログラム及び計算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7542826B2 (en) 2005-02-02 2009-06-02 Denso Corporation Control apparatus for automobile
JP2009176326A (ja) * 2009-05-08 2009-08-06 Intec Netcore Inc 計算装置、計算プログラム及び計算方法

Similar Documents

Publication Publication Date Title
US4807126A (en) Method for converting a source program having a loop including a control statement into an object program
JPH06119263A (ja) 処理関数呼出方式
US20030035582A1 (en) Dynamic scanner
JP2006185380A (ja) 予測機能付き文字処理装置、方法、記録媒体およびプログラム
KR880000817B1 (ko) 데이터 처리장치 및 그 방법
JPS6347839A (ja) 推論制御方式
JP3120443B2 (ja) コマンド処理装置
JP3018579B2 (ja) 名前検索処理装置
JPH07141194A (ja) ソースプログラム選択方式
JPH04287134A (ja) 簡易トレース情報取得方式
JPH04241672A (ja) 文字列検索方式
JP3021697B2 (ja) プログラミング言語における例外処理方法
JPS63141131A (ja) パイプライン制御方式
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体
JP2000347878A (ja) メモリ削減方法および装置
JP3387582B2 (ja) 文字処理装置
JPH0338745A (ja) データ一括処理方式
JPS6259810B2 (ja)
JPH04148366A (ja) 辞書の学習方式
JPH0588866A (ja) ソースコード自動生成装置
JP2006215623A (ja) 計算機システムおよびタイマ制御方法
JPS6113258B2 (ja)
JPH03154931A (ja) アルファベット順翻訳方式
JPH07141195A (ja) コンパイラにおけるリテラル最適化方式
JPH09311792A (ja) レジスタ割り付け方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000104