JPH0895609A - 制御装置 - Google Patents
制御装置Info
- Publication number
- JPH0895609A JPH0895609A JP7076491A JP7649195A JPH0895609A JP H0895609 A JPH0895609 A JP H0895609A JP 7076491 A JP7076491 A JP 7076491A JP 7649195 A JP7649195 A JP 7649195A JP H0895609 A JPH0895609 A JP H0895609A
- Authority
- JP
- Japan
- Prior art keywords
- message
- hash function
- microcontroller
- network
- hash
- 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.)
- Pending
Links
- 230000006870 function Effects 0.000 claims description 99
- 238000000034 method Methods 0.000 claims description 43
- 230000008451 emotion Effects 0.000 claims 1
- 235000002020 sage Nutrition 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101150034533 ATIC gene Proteins 0.000 description 1
- 244000228957 Ferula foetida Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005461 lubrication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/02—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
- B60R16/03—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for
- B60R16/0315—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for using multiplexing techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Small-Scale Networks (AREA)
- Control By Computers (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 LANを介する通信のためのマイクロコンピ
ュータ・オーバーヘッドまたはマイクロ制御器オーバー
ヘッドを減少し、しかも分布制御環境においてタスクの
割り当てに依然として融通性を持たせる。 【構成】 マイクロ制御器10、たとえば車両または工
場に配置されるものが、ローカルエリア・ネットワーク
(LAN)25を介して接続される。マイクロ制御器
は、宛先アドレスではなくて、メッセージの内容を識別
する識別子(ID)を付けられたメッセージをLANで
放送する。マイクロ制御器5には、メッセージIDの表
およびそれに伴うデータを含むROMが設けられる。メ
ッセージを受けると、マイクロ制御器がハッシュ関数を
メッセージIDに適用し結果を表へのポインタとして用
いて、そのポインタ場所に保存されているメッセージI
Dと比較する。両者が等しければ、マイクロ制御器は所
定の機能を実行し、等しくなければ、メッセージを無視
する。
ュータ・オーバーヘッドまたはマイクロ制御器オーバー
ヘッドを減少し、しかも分布制御環境においてタスクの
割り当てに依然として融通性を持たせる。 【構成】 マイクロ制御器10、たとえば車両または工
場に配置されるものが、ローカルエリア・ネットワーク
(LAN)25を介して接続される。マイクロ制御器
は、宛先アドレスではなくて、メッセージの内容を識別
する識別子(ID)を付けられたメッセージをLANで
放送する。マイクロ制御器5には、メッセージIDの表
およびそれに伴うデータを含むROMが設けられる。メ
ッセージを受けると、マイクロ制御器がハッシュ関数を
メッセージIDに適用し結果を表へのポインタとして用
いて、そのポインタ場所に保存されているメッセージI
Dと比較する。両者が等しければ、マイクロ制御器は所
定の機能を実行し、等しくなければ、メッセージを無視
する。
Description
【0001】
【産業上の利用分野】本発明は、ローカルエリア・ネッ
トワーク(LAN)内のメッセージ経路指定に関するも
のであり、さらに詳しくいえば、車両間ローカルエリア
・ネットワークに接続されているマイクロ制御器モジュ
ールによる表検索のためにハッシュ関数を使用すること
に関する。
トワーク(LAN)内のメッセージ経路指定に関するも
のであり、さらに詳しくいえば、車両間ローカルエリア
・ネットワークに接続されているマイクロ制御器モジュ
ールによる表検索のためにハッシュ関数を使用すること
に関する。
【0002】
【従来の技術】自動化工場およびその他の類似の環境に
おいては、効率的な運転方法が環境全体に制御機能を分
配することを含むことが見出だされている。これは、特
殊な機能を取り扱うためにプログラムされた、遠方に配
置されている複数のマイクロコンピュータを使用するこ
とによって達成される。運転を統合するために、マイク
ロコンピュータはローカルエリア・ネットワーク(LA
N)を介して一緒に接続され、1台または複数の管理マ
イクロコンピュータをLANに接続することもできる。
自動化工場に使用するためのそのようなシステムの例が
米国特許第4,972,367号に開示されている。こ
の米国特許においては、数多くのメッセージをLANを
介して送る必要があるために性能が低下するという問題
が認識されている。
おいては、効率的な運転方法が環境全体に制御機能を分
配することを含むことが見出だされている。これは、特
殊な機能を取り扱うためにプログラムされた、遠方に配
置されている複数のマイクロコンピュータを使用するこ
とによって達成される。運転を統合するために、マイク
ロコンピュータはローカルエリア・ネットワーク(LA
N)を介して一緒に接続され、1台または複数の管理マ
イクロコンピュータをLANに接続することもできる。
自動化工場に使用するためのそのようなシステムの例が
米国特許第4,972,367号に開示されている。こ
の米国特許においては、数多くのメッセージをLANを
介して送る必要があるために性能が低下するという問題
が認識されている。
【0003】車両内のマイクロ制御器モジュールは、エ
ンジン制御、鐘の音の発生、種々の車両機能の監視、可
聴メッセージの発生等、の多くの作業を通常実行する。
それらのマイクロ制御器モジュールの多くは、車両内部
の他のマイクロ制御器モジュールと交信しなければなら
ない。たとえば、第1のマイクロ制御器は、低い潤滑油
圧などの問題を認識し、運転者への可聴メッセージの発
生を制御する第2のマイクロ制御器モジュールへ、その
問題が存在することを通信することを必要とすることが
ある。情報を受けると、第2のマイクロ制御器モジュー
ルは可聴メッセージを発生する。
ンジン制御、鐘の音の発生、種々の車両機能の監視、可
聴メッセージの発生等、の多くの作業を通常実行する。
それらのマイクロ制御器モジュールの多くは、車両内部
の他のマイクロ制御器モジュールと交信しなければなら
ない。たとえば、第1のマイクロ制御器は、低い潤滑油
圧などの問題を認識し、運転者への可聴メッセージの発
生を制御する第2のマイクロ制御器モジュールへ、その
問題が存在することを通信することを必要とすることが
ある。情報を受けると、第2のマイクロ制御器モジュー
ルは可聴メッセージを発生する。
【0004】車両内部のマイクロ制御器モジュール間で
交信する必要によって、車両に配置されているマイクロ
制御器モジュールに相互に交信する手段を提供する車両
間LANを導入する結果となった。その結果、ネットワ
ーク中の各マイクロ制御器モジュールは、LANにおけ
る多くのメッセージ放送のどれに働き掛けなければなら
ないかを求められる。
交信する必要によって、車両に配置されているマイクロ
制御器モジュールに相互に交信する手段を提供する車両
間LANを導入する結果となった。その結果、ネットワ
ーク中の各マイクロ制御器モジュールは、LANにおけ
る多くのメッセージ放送のどれに働き掛けなければなら
ないかを求められる。
【0005】LANが工場、車両またはその他の環境の
いずれにあろうとも、LANを介するマイクロ制御器の
間の通信の問題を解決する必要がある。これを行う1つ
の方法は、放送メッセージにマイクロ制御器宛先アドレ
スすなわち識別子をつけることである。その場合には、
LANにおけるマイクロ制御器は入来するメッセージを
調べ、それのアドレスをメッセージにつけられているア
ドレスと比較し、そのメッセージがそのマイクロ制御器
に宛てられたものであるかどうかを直ちに決定する。し
かし、この方法は、1つのメッセージを2つ以上のマイ
クロ制御器が取り扱わなければならないものである場合
には対処できない。さらに、その方法にはあまり融通性
がない。例えば、ある機能が1つのマイクロ制御器から
別のマイクロ制御器に動かされるものとすると、その機
能に関連する全てのマイクロ制御器放送メッセージを修
正しなければならない。
いずれにあろうとも、LANを介するマイクロ制御器の
間の通信の問題を解決する必要がある。これを行う1つ
の方法は、放送メッセージにマイクロ制御器宛先アドレ
スすなわち識別子をつけることである。その場合には、
LANにおけるマイクロ制御器は入来するメッセージを
調べ、それのアドレスをメッセージにつけられているア
ドレスと比較し、そのメッセージがそのマイクロ制御器
に宛てられたものであるかどうかを直ちに決定する。し
かし、この方法は、1つのメッセージを2つ以上のマイ
クロ制御器が取り扱わなければならないものである場合
には対処できない。さらに、その方法にはあまり融通性
がない。例えば、ある機能が1つのマイクロ制御器から
別のマイクロ制御器に動かされるものとすると、その機
能に関連する全てのマイクロ制御器放送メッセージを修
正しなければならない。
【0006】また、アドレスシステムが多数のコンピュ
ータ・オーバーヘッドを必要とする。たとえば、適切な
応答と、その応答の実行を必要とする別のマイクロ制御
器のアドレスとを知るために、車両運転問題を検出する
マイクロ制御器をプログラムもしなければならない。そ
のような重いオーバーヘッドを有するシステムが米国特
許第5,117,458号に記述されている。
ータ・オーバーヘッドを必要とする。たとえば、適切な
応答と、その応答の実行を必要とする別のマイクロ制御
器のアドレスとを知るために、車両運転問題を検出する
マイクロ制御器をプログラムもしなければならない。そ
のような重いオーバーヘッドを有するシステムが米国特
許第5,117,458号に記述されている。
【0007】コンピュータ・オーバーヘッドがより小さ
い、一層融通性に富むシステムを得るために、宛先マイ
クロ制御器ではなくてメッセージを識別するメッセージ
識別子(ID)をメッセージにつけることができる。そ
のような技術が米国特許第5,095,480号に開示
されている。その技術においては、LANにおける各マ
イクロ制御器は、それが保持しており、かつメッセージ
がそのマイクロ制御器に宛てられたものであることを判
定するためにそのマイクロ制御器が応答しなければなら
ない全てのIDを含んでいる表をサーチしなければなら
ない。さらに、その表は特定のメッセージに適切に応答
するために必要な別のパラメータも含むことができる。
通常は、異なるパラメータ要求を持つ2種類以上のメッ
セージにマイクロ制御器は応答しなければならない。
い、一層融通性に富むシステムを得るために、宛先マイ
クロ制御器ではなくてメッセージを識別するメッセージ
識別子(ID)をメッセージにつけることができる。そ
のような技術が米国特許第5,095,480号に開示
されている。その技術においては、LANにおける各マ
イクロ制御器は、それが保持しており、かつメッセージ
がそのマイクロ制御器に宛てられたものであることを判
定するためにそのマイクロ制御器が応答しなければなら
ない全てのIDを含んでいる表をサーチしなければなら
ない。さらに、その表は特定のメッセージに適切に応答
するために必要な別のパラメータも含むことができる。
通常は、異なるパラメータ要求を持つ2種類以上のメッ
セージにマイクロ制御器は応答しなければならない。
【0008】原動機付き車両に車両多重化ネットワーク
を導入したことによって、多数の表検索を行うためにネ
ットワークを用いるモジュールを必要とする結果となっ
た。必要とする主なことは、メッセージを見つけて、メ
ッセージのパラメータを判定し、そのメッセージをどの
ようにして処理するかについての情報を探すことであ
る。表検索の別の理由は、パラメータIDによってパラ
メータ情報をしばしば求める診断要求を処理することで
ある。再び表を調べてパラメータの場所、パラメータの
スケーリングなどを見つける。とくに正常な多重ネット
ワーク・トラックの取扱い中に、表検索の使用がこのよ
うに増加することは、マイクロプロセッサの動作時間の
うちの取るに足らない部分を表検索を行うために費やす
ことを意味する。それらの表検索をもっと迅速に行う方
法があるならば、マイクロプロセッサは、エンジンまた
は変速機を制御するなどの、もっと多くの生産的な作業
を行うためにそれの時間を費やすことができる。
を導入したことによって、多数の表検索を行うためにネ
ットワークを用いるモジュールを必要とする結果となっ
た。必要とする主なことは、メッセージを見つけて、メ
ッセージのパラメータを判定し、そのメッセージをどの
ようにして処理するかについての情報を探すことであ
る。表検索の別の理由は、パラメータIDによってパラ
メータ情報をしばしば求める診断要求を処理することで
ある。再び表を調べてパラメータの場所、パラメータの
スケーリングなどを見つける。とくに正常な多重ネット
ワーク・トラックの取扱い中に、表検索の使用がこのよ
うに増加することは、マイクロプロセッサの動作時間の
うちの取るに足らない部分を表検索を行うために費やす
ことを意味する。それらの表検索をもっと迅速に行う方
法があるならば、マイクロプロセッサは、エンジンまた
は変速機を制御するなどの、もっと多くの生産的な作業
を行うためにそれの時間を費やすことができる。
【0009】表中の情報を検索する共通の方法は、直線
的にサーチすることである。メッセージIDおよび情報
は、通常は表の初めに保存されている、最もしばしば生
ずるメッセージID付きで、表に保存される。一致が見
出されるまで、または表全体を調べて一致しないことが
見出されるまで、エントリを調べる。直線的な表検索に
関連する1つの問題は制御器またはプロセッサのオーバ
ーヘッドである、すなわち、マイクロ制御器がそれの主
なジョブを実行するために時間を費やすのではなくて、
検索を行うために時間を費やすことである。
的にサーチすることである。メッセージIDおよび情報
は、通常は表の初めに保存されている、最もしばしば生
ずるメッセージID付きで、表に保存される。一致が見
出されるまで、または表全体を調べて一致しないことが
見出されるまで、エントリを調べる。直線的な表検索に
関連する1つの問題は制御器またはプロセッサのオーバ
ーヘッドである、すなわち、マイクロ制御器がそれの主
なジョブを実行するために時間を費やすのではなくて、
検索を行うために時間を費やすことである。
【0010】直線的な表検索におけるオーバーヘッド問
題を、いくつかの例を考えることによって示すことがで
きる。以下の例においては、下記の仮定を行う。検索表
は、エントリ当り4バイトを持つ。4バイトのうちの1
バイトがIDに対するものであり、1バイトがメッセー
ジ長さに対するものであり、2バイトがメッセージ・サ
ービス・ルーチンのアドレスに対するものである。コー
ドサンプルがモトローラ68HC11アセンブリ言語で
書かれる。種々の表検索法の実行時間を比較するため
に、68HC11が8MHzで実行されると仮定してい
るから、CPUサイクルは0.5マイクロ秒かかる。ど
の検索法を使用するかとは無関係に表は同じ情報を有す
るが、それらの情報の順序は異なることがある。
題を、いくつかの例を考えることによって示すことがで
きる。以下の例においては、下記の仮定を行う。検索表
は、エントリ当り4バイトを持つ。4バイトのうちの1
バイトがIDに対するものであり、1バイトがメッセー
ジ長さに対するものであり、2バイトがメッセージ・サ
ービス・ルーチンのアドレスに対するものである。コー
ドサンプルがモトローラ68HC11アセンブリ言語で
書かれる。種々の表検索法の実行時間を比較するため
に、68HC11が8MHzで実行されると仮定してい
るから、CPUサイクルは0.5マイクロ秒かかる。ど
の検索法を使用するかとは無関係に表は同じ情報を有す
るが、それらの情報の順序は異なることがある。
【0011】典型的な車両制御器に使用される表検索コ
ードは、受けたIDを表中のエントリと比較する簡単な
ループである。最高周波数のメッセージが表の初めの近
くに配置されるように、IDは表に置かれるのが普通で
ある。表1は、直線的な表検索の典型的な実現を示す。
ードは、受けたIDを表中のエントリと比較する簡単な
ループである。最高周波数のメッセージが表の初めの近
くに配置されるように、IDは表に置かれるのが普通で
ある。表1は、直線的な表検索の典型的な実現を示す。
【0012】
【表1】 この表は、IDを処理するために要する時間を示す。初
めの3行はループを設定するためのもので、実行に4マ
イクロ秒かかる。4〜8行(8.5マイクロ秒)は、表
全体を検査するまで、受けたIDに一致しないエントリ
表ごとに1回実行される。したがって、表にないIDを
処理する総時間は4+8.5×(#表エントリ)であ
る。たとえば、表エントリが12の場合には、IDを処
理する総時間は106マイクロ秒である。ある車両制御
器の受けるIDの数は20であるから、受けたIDを処
理するために、最悪の場合には、174マイクロ秒かか
る。その時間は、実時間制御器を結び付けるためには長
い時間である。IDの検索を無駄にできるプロセッサの
時間の百分率のおよその見積もりを行うことができる。
メッセージの平均の長さを3バイト、LANのビット速
度を1秒当たり7812.5ビット、バスが時間の35
%だけ使用されると仮定すると、1秒間に約68個のメ
ッセージが送られる。106マイクロ秒が1秒間に68
回使用されるものとすると、プロセッサはLANからの
メッセージを丁度分類するためにそれの時間の0.7%
以上を費やす。174マイクロ秒を用いたとすると、そ
の数はほとんど1.2%になる。それらは、最悪の場合
の数であることに注目されたい。実際には、バス上の全
てのメッセージを無視するモジュールはないから、最長
時間を使用する前にIDのいくつかが表で見出される。
また、モジュールはそれが送信するどのメッセージも処
理する必要がない。
めの3行はループを設定するためのもので、実行に4マ
イクロ秒かかる。4〜8行(8.5マイクロ秒)は、表
全体を検査するまで、受けたIDに一致しないエントリ
表ごとに1回実行される。したがって、表にないIDを
処理する総時間は4+8.5×(#表エントリ)であ
る。たとえば、表エントリが12の場合には、IDを処
理する総時間は106マイクロ秒である。ある車両制御
器の受けるIDの数は20であるから、受けたIDを処
理するために、最悪の場合には、174マイクロ秒かか
る。その時間は、実時間制御器を結び付けるためには長
い時間である。IDの検索を無駄にできるプロセッサの
時間の百分率のおよその見積もりを行うことができる。
メッセージの平均の長さを3バイト、LANのビット速
度を1秒当たり7812.5ビット、バスが時間の35
%だけ使用されると仮定すると、1秒間に約68個のメ
ッセージが送られる。106マイクロ秒が1秒間に68
回使用されるものとすると、プロセッサはLANからの
メッセージを丁度分類するためにそれの時間の0.7%
以上を費やす。174マイクロ秒を用いたとすると、そ
の数はほとんど1.2%になる。それらは、最悪の場合
の数であることに注目されたい。実際には、バス上の全
てのメッセージを無視するモジュールはないから、最長
時間を使用する前にIDのいくつかが表で見出される。
また、モジュールはそれが送信するどのメッセージも処
理する必要がない。
【0013】「ハッシング」が、表を検索するための効
率的な手段であることが見出だされている。ハッシング
によって、算術関数またはハッシュ関数を用いてメッセ
ージIDに関連するキーを作成する。ハッシュコードさ
れた受けたIDにハッシュ関数が適用されたとすると、
結果は、メッセージの部分を示す、マイクロコンピュー
タのために維持される表を指すポインタである。与えら
れたアプリケーションのための適切なハッシュ関数に到
達する方法が、参考のためにここに含める、次の2つの
論文に記載されている。Comm.ACM 24,12
(1981年12月号)829〜833所載のジェシュ
ケ(Jaeschke),G.の「逆ハッシング関数:
最小完全ハッシング関数を発生する方法(Recipr
ocalHashing:A Method for
Generating Minimal Perfec
t Hashing Functions)」、および
Comm.ACM 20,11(1977年11月号)
841〜850所載のスプルグノリ(Sprugnol
i,R.)の「完全ハッシング関数:静的セットのため
の単一プローブ検索法(Perfect Hashin
g Functions:A Single Prob
e Retrieving Methodfor St
atic Sets)」。
率的な手段であることが見出だされている。ハッシング
によって、算術関数またはハッシュ関数を用いてメッセ
ージIDに関連するキーを作成する。ハッシュコードさ
れた受けたIDにハッシュ関数が適用されたとすると、
結果は、メッセージの部分を示す、マイクロコンピュー
タのために維持される表を指すポインタである。与えら
れたアプリケーションのための適切なハッシュ関数に到
達する方法が、参考のためにここに含める、次の2つの
論文に記載されている。Comm.ACM 24,12
(1981年12月号)829〜833所載のジェシュ
ケ(Jaeschke),G.の「逆ハッシング関数:
最小完全ハッシング関数を発生する方法(Recipr
ocalHashing:A Method for
Generating Minimal Perfec
t Hashing Functions)」、および
Comm.ACM 20,11(1977年11月号)
841〜850所載のスプルグノリ(Sprugnol
i,R.)の「完全ハッシング関数:静的セットのため
の単一プローブ検索法(Perfect Hashin
g Functions:A Single Prob
e Retrieving Methodfor St
atic Sets)」。
【0014】ハッシングの基本的な考えは、表で見つけ
て、それに対してある数値計算(ハッシュ関数)を実行
して表アドレスを得ることを望む項目を取ることであ
る。ハッシュ関数は、コンピュータの最も初期以来、表
検索のために用いられている。ハッシュ関数は、メイン
フレーム・コンピュータにおいてコンパイラおよびデー
タベースのために最もしばしば用いられており、それを
使用する種々の方法について広範囲な文献が存在してい
る。しかし、メインフレーム・コンピュータはマイクロ
コンピュータとは非常に異なる。すなわち、表を保存す
るためのメモリがはるかに大容量で、周辺記憶装置が存
在し、CPUは高速かつ高精度の算術命令を完全に補充
するものを有する。さらに、既存のハッシュ関数の多く
はダイナミック・システムのために構成されており、そ
れらのダイナミック・システムにおいては項目が表に付
加され、および表から除去される。
て、それに対してある数値計算(ハッシュ関数)を実行
して表アドレスを得ることを望む項目を取ることであ
る。ハッシュ関数は、コンピュータの最も初期以来、表
検索のために用いられている。ハッシュ関数は、メイン
フレーム・コンピュータにおいてコンパイラおよびデー
タベースのために最もしばしば用いられており、それを
使用する種々の方法について広範囲な文献が存在してい
る。しかし、メインフレーム・コンピュータはマイクロ
コンピュータとは非常に異なる。すなわち、表を保存す
るためのメモリがはるかに大容量で、周辺記憶装置が存
在し、CPUは高速かつ高精度の算術命令を完全に補充
するものを有する。さらに、既存のハッシュ関数の多く
はダイナミック・システムのために構成されており、そ
れらのダイナミック・システムにおいては項目が表に付
加され、および表から除去される。
【0015】
【発明の概要】本発明は、LANを介する通信のための
マイクロコンピュータ・オーバーヘッドまたはマイクロ
制御器オーバーヘッドを減少し、しかも分布制御環境に
おいてタスクの割り当てに依然として融通性を持たせる
ことを目的とするものである。この目的は、静的識別子
を有するメッセージを、それのメッセージをローカル・
メッセージ表中の特定のハッシュ関数を用いて検出する
マイクロコンピュータを有するLANで用いることによ
って達成される。
マイクロコンピュータ・オーバーヘッドまたはマイクロ
制御器オーバーヘッドを減少し、しかも分布制御環境に
おいてタスクの割り当てに依然として融通性を持たせる
ことを目的とするものである。この目的は、静的識別子
を有するメッセージを、それのメッセージをローカル・
メッセージ表中の特定のハッシュ関数を用いて検出する
マイクロコンピュータを有するLANで用いることによ
って達成される。
【0016】本発明の実施例においては、複数のマイク
ロ制御器がLANを介して一緒に接続され、ある環境、
たとえば工場または原動機付き車両、の分布制御および
運転を行う。報告するためのメッセージを持ち、または
別のマイクロ制御器からあるサービスを必要とするマイ
クロ制御器は、宛先アドレスではなくてメッセージの内
容を識別する識別子(ID)を付されたメッセージをL
ANを通じて放送する。ネットワークにおけるマイクロ
制御器には、メッセージIDの表、およびそのメッセー
ジにどのようにして応答するかについてのデータを含む
読取り専用メモリ(ROM)が設けられる。IDがそれ
の表中のIDに一致するかどうかを直線的に検査するよ
りも、マイクロ制御器はハッシュ関数をIDに付加す
る。その結果が、ROM中の表アドレスである。したが
って、IDが一致するかどうかについて表を検索する代
わりに、ハッシュ関数を加えて、その結果を表中のポイ
ンタとして使用する。マイクロ制御器は、そのポインタ
場所に保存されているメッセージIDを受けたメッセー
ジIDと比較する。それらが等しければ、マイクロ制御
器は所定の機能を実行する。メッセージIDが等しくな
ければ、メッセージは無視される。
ロ制御器がLANを介して一緒に接続され、ある環境、
たとえば工場または原動機付き車両、の分布制御および
運転を行う。報告するためのメッセージを持ち、または
別のマイクロ制御器からあるサービスを必要とするマイ
クロ制御器は、宛先アドレスではなくてメッセージの内
容を識別する識別子(ID)を付されたメッセージをL
ANを通じて放送する。ネットワークにおけるマイクロ
制御器には、メッセージIDの表、およびそのメッセー
ジにどのようにして応答するかについてのデータを含む
読取り専用メモリ(ROM)が設けられる。IDがそれ
の表中のIDに一致するかどうかを直線的に検査するよ
りも、マイクロ制御器はハッシュ関数をIDに付加す
る。その結果が、ROM中の表アドレスである。したが
って、IDが一致するかどうかについて表を検索する代
わりに、ハッシュ関数を加えて、その結果を表中のポイ
ンタとして使用する。マイクロ制御器は、そのポインタ
場所に保存されているメッセージIDを受けたメッセー
ジIDと比較する。それらが等しければ、マイクロ制御
器は所定の機能を実行する。メッセージIDが等しくな
ければ、メッセージは無視される。
【0017】好適な実施例においては、直線合同乗法X
OR関数、XORを有する直線合同乗法関数、および逆
ハッシング関数を車両間LANのマイクロ制御器で使用
する。
OR関数、XORを有する直線合同乗法関数、および逆
ハッシング関数を車両間LANのマイクロ制御器で使用
する。
【0018】
【実施例】図1は、車両間LAN25におけるマイクロ
制御器モジュール10を示す。それらのマイクロ制御器
は、車両のある動作、たとえばエンジン動作またはある
状態の報告を個々に制御する。その結果、マイクロ制御
器は、他のマイクロ制御器の別の動作を呼び出すことが
でき、または状態を単に報告できるメッセージを発生す
る。それらの出力メッセージは、LANにおける特定の
任意のマイクロ制御器宛てのものではなく、メッセージ
の種類を示すメッセージIDが設けられる。それから、
別のマイクロ制御器がメッセージを基にしてある動作を
行うことを求められるかどうかを判定するために、別の
マイクロ制御器までそれは続く。これは、このIDを持
つメッセージがマイクロ制御器に関連する表に保存され
ているかどうかを調べるマイクロ制御器によって判定さ
れる。各マイクロ制御器10に、メッセージの表を含む
静止メモリ、すなわちROM5が設けられる。メッセー
ジは、ハッシュ関数を用いてROM5中の表に保存さ
れ、検索される。
制御器モジュール10を示す。それらのマイクロ制御器
は、車両のある動作、たとえばエンジン動作またはある
状態の報告を個々に制御する。その結果、マイクロ制御
器は、他のマイクロ制御器の別の動作を呼び出すことが
でき、または状態を単に報告できるメッセージを発生す
る。それらの出力メッセージは、LANにおける特定の
任意のマイクロ制御器宛てのものではなく、メッセージ
の種類を示すメッセージIDが設けられる。それから、
別のマイクロ制御器がメッセージを基にしてある動作を
行うことを求められるかどうかを判定するために、別の
マイクロ制御器までそれは続く。これは、このIDを持
つメッセージがマイクロ制御器に関連する表に保存され
ているかどうかを調べるマイクロ制御器によって判定さ
れる。各マイクロ制御器10に、メッセージの表を含む
静止メモリ、すなわちROM5が設けられる。メッセー
ジは、ハッシュ関数を用いてROM5中の表に保存さ
れ、検索される。
【0019】図2は、メッセージ識別子、すなわちハッ
シュ関数を保存する方法の好適な実施例の流れ図であ
る。その関数は、図示のように、ハッシュ関数が下記の
形である直線合同ハッシング関数である。
シュ関数を保存する方法の好適な実施例の流れ図であ
る。その関数は、図示のように、ハッシュ関数が下記の
形である直線合同ハッシング関数である。
【0020】index=(A★ID)+B ここに、AとBの数値が保存すべきIDと、表のサイズ
と、表エントリサイズとに依存する。表2は表1に類似
し、ハッシュ関数をどのようにして用いるかを示す。
と、表エントリサイズとに依存する。表2は表1に類似
し、ハッシュ関数をどのようにして用いるかを示す。
【0021】
【表2】 表2の1〜4行は直線的なやり方で実現され、レジスタ
Bの上側部分にインデックスビットを残す。5行はエン
トリを16個持つ表のためのインデックスを取り出し、
6〜7行はインデックスを4バイトエントリを持つ表を
アドレスするための正しい位置に動かす。8〜9行はイ
ンデックスを表の初めに付加する。最後に、行10〜1
2は受けたIDを表エントリと比較する。それらが一致
したとすると、メッセージを表中の情報に従って処理す
る。もし一致しなければ、メッセージを無視できる。受
けたIDを表中のIDと比較することが必要な理由は、
ハッシュ関数が多数対1関数だからである。この例にお
いては、256の可能なIDが16エントリの表にマッ
プされて、いくつかのIDが各表エントリにマップされ
るようにする。しかし、モジュールが受けたIDのリス
ト中のIDのただ1つが与えられた任意の表エントリに
マップされる。
Bの上側部分にインデックスビットを残す。5行はエン
トリを16個持つ表のためのインデックスを取り出し、
6〜7行はインデックスを4バイトエントリを持つ表を
アドレスするための正しい位置に動かす。8〜9行はイ
ンデックスを表の初めに付加する。最後に、行10〜1
2は受けたIDを表エントリと比較する。それらが一致
したとすると、メッセージを表中の情報に従って処理す
る。もし一致しなければ、メッセージを無視できる。受
けたIDを表中のIDと比較することが必要な理由は、
ハッシュ関数が多数対1関数だからである。この例にお
いては、256の可能なIDが16エントリの表にマッ
プされて、いくつかのIDが各表エントリにマップされ
るようにする。しかし、モジュールが受けたIDのリス
ト中のIDのただ1つが与えられた任意の表エントリに
マップされる。
【0022】コード中にはループまたは分岐が存在しな
いから、IDが表にあるか否かとは無関係に、それは全
てのIDを、同じ時間、すなわち19.5マイクロ秒で
処理する。表に2つまたはそれ以上のエントリがあると
きは、直線合同ハッシュ関数法は実行時間の点で表1の
従来の直線検索法と競合するようになる。上記12エン
トリ表では、本発明の合同ハッシュ関数法は従来の直線
表検索法(すなわち、表1)の5倍の速さである。
いから、IDが表にあるか否かとは無関係に、それは全
てのIDを、同じ時間、すなわち19.5マイクロ秒で
処理する。表に2つまたはそれ以上のエントリがあると
きは、直線合同ハッシュ関数法は実行時間の点で表1の
従来の直線検索法と競合するようになる。上記12エン
トリ表では、本発明の合同ハッシュ関数法は従来の直線
表検索法(すなわち、表1)の5倍の速さである。
【0023】この方法をさらに説明するために、車両制
御器が12個の16進(「hex」)IDを持っている
と仮定する。A=hex5BおよびB=4である直線合
同ハッシュ関数は、入力すべき12個のIDの下記のリ
ストに対する完全なハッシュ関数を示す。
御器が12個の16進(「hex」)IDを持っている
と仮定する。A=hex5BおよびB=4である直線合
同ハッシュ関数は、入力すべき12個のIDの下記のリ
ストに対する完全なハッシュ関数を示す。
【0024】02 50 56 84 8C A4 B
2 B4 C4 DA E4 ECID A4がマイク
ロ制御器によって受けられるとすると、そのIDに5B
が乗ぜられ(結果はhex 3A4C)、さらに加え合
わされて3A50を得る。表2の5行は、この積の低い
バイトの最高4ビット以外のあらゆるものを無くし、以
後の行は、結果を適切に調整して4バイト・エントリの
表を適切にインデックスする。これは、5である第2の
16進数を右から取り出して、上記表へのオフセットと
してそれを使用する。0から数えて、A4は表のエント
リ5である。他のIDも、この式を用いてオフセットを
発生する。それは、完全なハッシュ関数のために求めら
れるものである。12個のIDがあるが、表の長さは1
6エントリである。00は不法なIDであるから、使用
しない表エントリは00で埋められる。
2 B4 C4 DA E4 ECID A4がマイク
ロ制御器によって受けられるとすると、そのIDに5B
が乗ぜられ(結果はhex 3A4C)、さらに加え合
わされて3A50を得る。表2の5行は、この積の低い
バイトの最高4ビット以外のあらゆるものを無くし、以
後の行は、結果を適切に調整して4バイト・エントリの
表を適切にインデックスする。これは、5である第2の
16進数を右から取り出して、上記表へのオフセットと
してそれを使用する。0から数えて、A4は表のエント
リ5である。他のIDも、この式を用いてオフセットを
発生する。それは、完全なハッシュ関数のために求めら
れるものである。12個のIDがあるが、表の長さは1
6エントリである。00は不法なIDであるから、使用
しない表エントリは00で埋められる。
【0025】十分大きな表が与えられると、完全なハッ
シュ関数を見つけることが常に可能である。たとえば、
IDの長さが8ビットであると、IDを256エントリ
表におけるアドレスとして使用できる。しかし、それの
ためにハッシュ関数が求められるようなIDの集合に応
じて、合理的なサイズの表のための完全なハッシュ関数
が見出だされる保証はない。同様に、スペースについて
厳しい制約があると、必要なIDの全てを含んでいない
小さい表を使用することが望ましい。その場合には、希
望のハッシュ関数とともに作用しない幾つかのIDに対
してハードコード化されたチェックを使用することが簡
単である。なお、直線合同ハッシュ関数は、実社会での
マイクロ制御器アプリケーションからのIDリストで顕
著に良く機能する。
シュ関数を見つけることが常に可能である。たとえば、
IDの長さが8ビットであると、IDを256エントリ
表におけるアドレスとして使用できる。しかし、それの
ためにハッシュ関数が求められるようなIDの集合に応
じて、合理的なサイズの表のための完全なハッシュ関数
が見出だされる保証はない。同様に、スペースについて
厳しい制約があると、必要なIDの全てを含んでいない
小さい表を使用することが望ましい。その場合には、希
望のハッシュ関数とともに作用しない幾つかのIDに対
してハードコード化されたチェックを使用することが簡
単である。なお、直線合同ハッシュ関数は、実社会での
マイクロ制御器アプリケーションからのIDリストで顕
著に良く機能する。
【0026】次に、図2の流れ図を参照する。この図2
には、表2のソフトウエアによる実現が示されている。
ステップ21においては、IDをレジスタにロードす
る。次に、そのレジスタにhex5Bを乗じ(ステップ
22)、4を加える(ステップ23)。次に、ステップ
24において、レジスタはhex F0でアンドを取ら
れ、それによって低次バイトの上位4ビットすなわちニ
ッブルのみを保持する。それらのビットは、IDを保存
すべき順番の数を表す。たとえば、ニッブルが5である
と、IDは表中の6番目のエントリでなければならない
(最初のエントリが0であると仮定する)。次に、表の
初めからのオフセットを計算しなければならない。した
がって、ニッブルにエントリのサイズ、4バイトを乗じ
なければならない。ステップ24においては、インデッ
クスは低位バイトの上側ニッブルに依然として存在する
から、ステップ25においてはレジスタは、16で除し
てそれから4を乗ずる代わりに、右に2ビット桁送りさ
れる。しかし、それの結果は同じである。レジスタの今
の内容は、表の初めからのアドレスを含む。そのアドレ
スにはIDと、それに伴うデータを保存すべきである。
には、表2のソフトウエアによる実現が示されている。
ステップ21においては、IDをレジスタにロードす
る。次に、そのレジスタにhex5Bを乗じ(ステップ
22)、4を加える(ステップ23)。次に、ステップ
24において、レジスタはhex F0でアンドを取ら
れ、それによって低次バイトの上位4ビットすなわちニ
ッブルのみを保持する。それらのビットは、IDを保存
すべき順番の数を表す。たとえば、ニッブルが5である
と、IDは表中の6番目のエントリでなければならない
(最初のエントリが0であると仮定する)。次に、表の
初めからのオフセットを計算しなければならない。した
がって、ニッブルにエントリのサイズ、4バイトを乗じ
なければならない。ステップ24においては、インデッ
クスは低位バイトの上側ニッブルに依然として存在する
から、ステップ25においてはレジスタは、16で除し
てそれから4を乗ずる代わりに、右に2ビット桁送りさ
れる。しかし、それの結果は同じである。レジスタの今
の内容は、表の初めからのアドレスを含む。そのアドレ
スにはIDと、それに伴うデータを保存すべきである。
【0027】データがひとたび保存されると、マイクロ
プロセッサはメッセージID放送をLANで開始でき、
それに応答して反応することを求められるかどうかを判
定する。図3は、この判定をどのようにして行うかを示
す流れ図である。各マイクロプロセッサは、ネットワー
ク上のメッセージID放送を検査する(ステップ3
1)。次に、マイクロプロセッサは適切なハッシュ関数
をIDに適用する(ステップ32)。その関数の出力を
オフセット・アドレスとして用いて、マイクロプロセッ
サは受けたIDをそのオフセット・アドレスに保存され
ているメッセージIDと比較する(ステップ33)。両
者が一致すると、マイクロプロセッサは対応する機能を
実行し(ステップ34)、一致しなければメッセージは
無視される(ステップ35)。
プロセッサはメッセージID放送をLANで開始でき、
それに応答して反応することを求められるかどうかを判
定する。図3は、この判定をどのようにして行うかを示
す流れ図である。各マイクロプロセッサは、ネットワー
ク上のメッセージID放送を検査する(ステップ3
1)。次に、マイクロプロセッサは適切なハッシュ関数
をIDに適用する(ステップ32)。その関数の出力を
オフセット・アドレスとして用いて、マイクロプロセッ
サは受けたIDをそのオフセット・アドレスに保存され
ているメッセージIDと比較する(ステップ33)。両
者が一致すると、マイクロプロセッサは対応する機能を
実行し(ステップ34)、一致しなければメッセージは
無視される(ステップ35)。
【0028】表3が示すように、直線合同ハッシング法
は、1つの車両制御器のために最小完全ハッシュ関数を
発生でき、他のモジュールのためには近最小完全ハッシ
ュ関数を発生できる。「2以外は全て適合」欄と「1以
外は全て適合」欄は、全てのIDがハッシュ関数を介し
て取り扱えないならば、はるかに小さい表を使用できる
ことを示す。とくに、完全ハッシュ関数のためには表サ
イズ27が必要であり、18のIDのうちの16を取り
扱う近最小完全ハッシュ関数のためには表サイズ18の
みを必要とする。
は、1つの車両制御器のために最小完全ハッシュ関数を
発生でき、他のモジュールのためには近最小完全ハッシ
ュ関数を発生できる。「2以外は全て適合」欄と「1以
外は全て適合」欄は、全てのIDがハッシュ関数を介し
て取り扱えないならば、はるかに小さい表を使用できる
ことを示す。とくに、完全ハッシュ関数のためには表サ
イズ27が必要であり、18のIDのうちの16を取り
扱う近最小完全ハッシュ関数のためには表サイズ18の
みを必要とする。
【0029】
【表3】 このコード例は、表サイズが16で、レコードサイズが
2のべきであることを仮定している。それらを一般化す
る必要がある。2のべきであるその他の表サイズに対し
ては、取り出されるビットの数がlog2(表サイズ)
であるように表2の5行における定数が変更される。た
とえば、表サイズが32であるとすると、定数はSF8
でなければならない。表サイズが2のべきでないケース
は、取り扱うための少し多くのコードを要求する、すな
わち、表2の5行を下記の行で置き換えなければならな
い。
2のべきであることを仮定している。それらを一般化す
る必要がある。2のべきであるその他の表サイズに対し
ては、取り出されるビットの数がlog2(表サイズ)
であるように表2の5行における定数が変更される。た
とえば、表サイズが32であるとすると、定数はSF8
でなければならない。表サイズが2のべきでないケース
は、取り扱うための少し多くのコードを要求する、すな
わち、表2の5行を下記の行で置き換えなければならな
い。
【0030】
【表4】 ある状況においては、それら2つの乗算を、定数Tb1
Size★RecSizeを一回乗ずるステップによっ
て組合わせることが可能なことがある。
Size★RecSizeを一回乗ずるステップによっ
て組合わせることが可能なことがある。
【0031】それらの一般化は、ハッシュ関数に命令を
加える。他方、零である1つまたは複数のパラメータを
有するハッシュ関数を見つけることが可能なことがあ
る。それらの場合には、それらのパラメータを実現する
命令をなくすことができる。
加える。他方、零である1つまたは複数のパラメータを
有するハッシュ関数を見つけることが可能なことがあ
る。それらの場合には、それらのパラメータを実現する
命令をなくすことができる。
【0032】ここで説明したハッシュ関数以外に、使用
できる多くの既知ハッシュ関数が存在することを当業者
は理解されるであろう。別の既知のハッシュ関数は、乗
法排他的OR(「XOR」)関数であって、次のような
形を持つ関数である。
できる多くの既知ハッシュ関数が存在することを当業者
は理解されるであろう。別の既知のハッシュ関数は、乗
法排他的OR(「XOR」)関数であって、次のような
形を持つ関数である。
【0033】index=(A★ID)ΛB ここで、ΛはXOR演算を表す。この関数をコード化す
るために、表2の4行のADD命令をXOR命令で単に
置き換える。表5は、乗法XOR関数の効果を示す。
るために、表2の4行のADD命令をXOR命令で単に
置き換える。表5は、乗法XOR関数の効果を示す。
【0034】
【表5】 さらに、別のハッシュ関数がXOR付きの直線合同と呼
ばれる。それは、初めの2つの関数からのアイデアを組
合わせたものである。それの形は、 index=(A★ID)ΛB で、ここにΛ はXOR演算を表す。この関数をコード
化するために、表2の5行の後に下記の命令を単に加え
る。
ばれる。それは、初めの2つの関数からのアイデアを組
合わせたものである。それの形は、 index=(A★ID)ΛB で、ここにΛ はXOR演算を表す。この関数をコード
化するために、表2の5行の後に下記の命令を単に加え
る。
【0035】
【表6】 述べるべきもう1つの種類のハッシュ関数、すなわち逆
ハッシングが存在する。このハッシュ関数は、いくつか
のポイントがある。すなわち、 ・それは除算命令を有する。この除算命令は、マイクロ
制御器においては乗算命令より一般的ではない。
ハッシングが存在する。このハッシュ関数は、いくつか
のポイントがある。すなわち、 ・それは除算命令を有する。この除算命令は、マイクロ
制御器においては乗算命令より一般的ではない。
【0036】・除算は、使用できるとしても、実行に乗
算よりはるかに長い時間を要する(MC68HC11で
は41サイクル対10サイクル)。
算よりはるかに長い時間を要する(MC68HC11で
は41サイクル対10サイクル)。
【0037】・表サイズが2のべきでないとすると、2
回の除算を求められる。
回の除算を求められる。
【0038】・それは、より簡単なハッシュ関数とほぼ
同じ効果が得られるだけである。
同じ効果が得られるだけである。
【0039】それでも、ある状況においては除算が有用
なことがあるために、それについて述べる価値がある。
そのハッシュ関数技術は、雑誌ACMの通信(Comm
unications of the ACM)24
巻、12号(1981年12月号)所載の、ジェシュケ
(G.Jaeshke)の「逆ハッシング:最小完全ハ
ッシング関数を発生する方法(Reciprocal
Hashing:A Method for Gene
rating Minimal PerfectHas
hing Functions)」という論文に詳しく
記載されている。
なことがあるために、それについて述べる価値がある。
そのハッシュ関数技術は、雑誌ACMの通信(Comm
unications of the ACM)24
巻、12号(1981年12月号)所載の、ジェシュケ
(G.Jaeshke)の「逆ハッシング:最小完全ハ
ッシング関数を発生する方法(Reciprocal
Hashing:A Method for Gene
rating Minimal PerfectHas
hing Functions)」という論文に詳しく
記載されている。
【0040】この方法を記述する方程式は、 index=(A/ID)mod(表サイズ) である。16素子表に対する、この方法のMC68HC
11実現を、表7に示す。
11実現を、表7に示す。
【0041】
【表7】 表8に示すように、完全ハッシング関数を見出だすため
には、それは初めに述べたXOR付き直線合同法よりも
効果は多少低い。
には、それは初めに述べたXOR付き直線合同法よりも
効果は多少低い。
【0042】
【表8】 上記技術を用いるために、適切なハッシュ関数を見付け
るある方法を必要とする。図4ないし図7は、直線合同
ハッシュ関数を用いて与えられたIDセットに対して適
切なパラメータ値を見付ける腕力法を示すものである。
るある方法を必要とする。図4ないし図7は、直線合同
ハッシュ関数を用いて与えられたIDセットに対して適
切なパラメータ値を見付ける腕力法を示すものである。
【0043】図4ないし図7を参照して、パラメータ・
インデックスAとBおよび最大カウントを初期化する
(ステップ41)。AとBは、最終的には与えられたI
Dセットにとって適切なパラメータを含む。それから、
全IDセットをアレイに読み込む(ステップ42〜4
4)。それからA1とB1を初期化し(ステップ4
7)、試験されているパラメータ値を保持する。次に、
表全体を初期化し、全ての表エントリを零にセットする
(ステップ48〜51)。A1とB1をパラメータ値と
して用いて、および各IDを用いて、表インデックスを
直線合同ハッシュ式を用いて計算する(ステップ53〜
62)。各インデックスに対して、そのインデックスに
おける表エントリが零であるとすると、IDを表エント
リに保存し(ステップ54〜55)、カウントする。保
存されているエントリの数が、別のパラメータ値セット
を用いて保存されているIDの総カウントより多いとす
ると、AをA1にセットし、BをB1にセットし、カウ
ントを保存する(ステップ63〜64)。それからA1
を増加し(ステップ65)、表エントリを再び初期化し
(ステップ48〜51)、IDの全てを再び試験する
(ステップ53〜62)。A1が256になるまで、こ
れを続ける(ステップ66)。それからA1を零にセッ
トし、次にB1を増加する(ステップ71)。表エント
リを再び初期化し(ステップ48〜51)、IDを試験
する(ステップ53〜62)。A1とB1の可能な組合
わせを試験するまで、このプロセスを続行する。それら
を全て試験した後では、AとBは直線合同ハッシュ関数
のために最良のパラメータ値を含む。
インデックスAとBおよび最大カウントを初期化する
(ステップ41)。AとBは、最終的には与えられたI
Dセットにとって適切なパラメータを含む。それから、
全IDセットをアレイに読み込む(ステップ42〜4
4)。それからA1とB1を初期化し(ステップ4
7)、試験されているパラメータ値を保持する。次に、
表全体を初期化し、全ての表エントリを零にセットする
(ステップ48〜51)。A1とB1をパラメータ値と
して用いて、および各IDを用いて、表インデックスを
直線合同ハッシュ式を用いて計算する(ステップ53〜
62)。各インデックスに対して、そのインデックスに
おける表エントリが零であるとすると、IDを表エント
リに保存し(ステップ54〜55)、カウントする。保
存されているエントリの数が、別のパラメータ値セット
を用いて保存されているIDの総カウントより多いとす
ると、AをA1にセットし、BをB1にセットし、カウ
ントを保存する(ステップ63〜64)。それからA1
を増加し(ステップ65)、表エントリを再び初期化し
(ステップ48〜51)、IDの全てを再び試験する
(ステップ53〜62)。A1が256になるまで、こ
れを続ける(ステップ66)。それからA1を零にセッ
トし、次にB1を増加する(ステップ71)。表エント
リを再び初期化し(ステップ48〜51)、IDを試験
する(ステップ53〜62)。A1とB1の可能な組合
わせを試験するまで、このプロセスを続行する。それら
を全て試験した後では、AとBは直線合同ハッシュ関数
のために最良のパラメータ値を含む。
【0044】図4ないし図7に示す流れ図をいくらか修
正して、他の説明したハッシュ関数のために使用できる
ことが当業者には明らかであろう。
正して、他の説明したハッシュ関数のために使用できる
ことが当業者には明らかであろう。
【図1】本発明の車両間LANのブロック線図。
【図2】ハッシュ関数を用いてメッセージ識別子を保存
する方法を示す流れ図。
する方法を示す流れ図。
【図3】メッセージに働き掛けるかどうかを判定する方
法を示す流れ図。
法を示す流れ図。
【図4】直線合同ハッシュ関数のためのパラメータ値を
決定するための方法を示す流れ図。
決定するための方法を示す流れ図。
【図5】直線合同ハッシュ関数のためのパラメータ値を
決定するための方法を示す流れ図の図4に続く流れ図。
決定するための方法を示す流れ図の図4に続く流れ図。
【図6】直線合同ハッシュ関数のためのパラメータ値を
決定するための方法を示す流れ図の、図5に続く流れ
図。
決定するための方法を示す流れ図の、図5に続く流れ
図。
【図7】直線合同ハッシュ関数のためのパラメータ値を
決定するための方法を示す流れ図の、図6に続く流れ
図。
決定するための方法を示す流れ図の、図6に続く流れ
図。
5 ROM 10 マイクロ制御器モジュール 25 LAN
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 12/28 // G05D 1/02 P H04L 11/00 310 D
Claims (14)
- 【請求項1】制御装置であって、この制御装置は、 情報を処理して装置の部分を制御する少なくとも2つの
マイクロ制御器と、 各マイクロ制御器に組み合わされ、マイクロ制御器に組
合わされているマイクロ制御器が処理できるメッセージ
識別子の表およびメッセージを処理するための関連する
命令を保存するメモリ手段と、 前記少なくとも2つのマイクロ制御器を接続し、メッセ
ージを前記少なくとも2つの制御器の全てに送るローカ
ルエリア・ネットワークと、 メモリ手段に保存されている表中の特定のエントリにマ
イクロ制御器を導く表インデックスを発生するためにロ
ーカルエリア・ネットワークを介して受けた各メッセー
ジの識別子にハッシュ関数を適用し、特定のエントリに
おけるメッセージ識別子を受けたメッセージのメッセー
ジ識別子と比較し、識別子が一致したならばマイクロ制
御器をメッセージに応答させるための、各マイクロ制御
器における手段と、 をそなえ、各前記マイクロ制御器は、それの制御の状態
に関連させられているメッセージを情報を処理しながら
発生し、別のマイクロ制御器の制御の状態に関連するメ
ッセージを受け、そのメッセージの各々はメッセージ識
別子によって識別される制御装置。 - 【請求項2】請求項1に記載の制御装置において、 少なくとも2つのマイクロ制御器とローカルエリア・ネ
ットワークが車両の車両間制御装置を形成する制御装
置。 - 【請求項3】請求項1に記載の制御装置において、 ハッシュ関数は、一次合同ハッシュ関数である制御装
置。 - 【請求項4】請求項2に記載の制御装置において、 ハッシュ関数は、一次合同ハッシュ関数である制御装
置。 - 【請求項5】請求項1に記載の制御装置において、 ハッシュ関数は、乗法排他的ORハッシュ関数である制
御装置。 - 【請求項6】請求項2に記載の制御装置において、 ハッシュ関数は、乗法排他的ORハッシュ関数である制
御装置。 - 【請求項7】請求項1に記載の制御装置において、 ハッシュ関数は、逆ハッシュ関数である制御装置。
- 【請求項8】請求項1に記載の制御装置において、 ハッシュ関数は、逆ハッシュ関数である制御装置。
- 【請求項9】請求項1に記載の制御装置において、 マイクロ制御器は、プログラムされるマイクロプロセッ
サである制御装置。 - 【請求項10】マイクロプロセッサをベースとするロー
カルエリア・ネットワークにおいて、ネットワークにお
ける、メッセージ識別子のハッシュ表とネットワーク上
の各マイクロプロセッサにおける情報を保存するメモリ
を有する第1のマイクロプロセッサが、前記ネットワー
クにおける第2のマイクロ制御器によってネットワーク
に放送されるメッセージ識別子を有するメッセージが、
前記第1のマイクロプロセッサが応答しなければならな
いメッセージであるかどうかを決定する方法であって、 前記識別子に対して前記放送メッセージを検査する過程
と、 所定のハッシュ関数を前記識別子に適用することによっ
てハッシュ表インデックスを決定する過程と、 前記ハッシュ表中の場所を決定するために前記ハッシュ
表インデックスを使用する過程と、 前記ハッシュ場所に保存されているエントリを前記メッ
セージ識別子と比較する過程と、 前記エントリと前記メッセージ識別子が同じであれば所
定の関数を実行する過程と、をそなえる、マイクロプロ
セッサをベースとするローカルエリア・ネットワークに
おいてネットワークにおける、メッセージ識別子のハッ
シュ表とネットワーク上の各マイクロプロセッサにおけ
る情報を保存するメモリを有する第1のマイクロプロセ
ッサが、前記ネットワークにおける第2のマイクロ制御
器によってネットワークを放送されるメッセージ識別子
を有するメッセージが、前記第1のマイクロプロセッサ
が応答しなければならないメッセージであるかどうかを
決定する方法。 - 【請求項11】請求項10に記載の方法において、 前記ハッシュ関数は、一次合同ハッシュ関数である方
法。 - 【請求項12】請求項1に記載の方法において、 ハッシュ機能は、乗法排他的ORハッシュ関数である方
法。 - 【請求項13】請求項1に記載の方法において、 ハッシュ関数は、逆ハッシュ関数である請求項10に記
載の方法。 - 【請求項14】請求項10ないし13のいずれかに記載
の方法において、 ネットワークは、車両の動作を制御する車両間ローカル
エリア・ネットワークである記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/221,822 US5701418A (en) | 1994-03-31 | 1994-03-31 | Intra-vehicular LAN and method of routing messages along it using hash functions |
US221822 | 1994-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0895609A true JPH0895609A (ja) | 1996-04-12 |
Family
ID=22829545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7076491A Pending JPH0895609A (ja) | 1994-03-31 | 1995-03-31 | 制御装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5701418A (ja) |
EP (1) | EP0675024B1 (ja) |
JP (1) | JPH0895609A (ja) |
AU (1) | AU676423B2 (ja) |
CA (1) | CA2145916C (ja) |
DE (1) | DE69506158T2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3043274B2 (ja) * | 1996-04-23 | 2000-05-22 | 株式会社ハーネス総合技術研究所 | 車載電子制御装置 |
JP3550460B2 (ja) * | 1996-04-25 | 2004-08-04 | 株式会社日立製作所 | サーバレスプラント監視・制御装置 |
FR2766642B1 (fr) * | 1997-07-22 | 1999-11-19 | Sextant Avionique | Procede et dispositif de reception de messages numeriques assurant un pretraitement de ces messages configurable dynamiquement |
FR2766641B1 (fr) * | 1997-07-22 | 1999-12-03 | Sextant Avionique | Procede et dispositif de reception de messages numeriques assurant un pretraitement de ces messages |
US6034957A (en) * | 1997-08-29 | 2000-03-07 | Extreme Networks, Inc. | Sliced comparison engine architecture and method for a LAN switch |
US6323565B1 (en) | 1998-09-29 | 2001-11-27 | Daimlerchrysler Corporation | Method and apparatus for operating a power liftgate in an automobile |
US6075460A (en) * | 1998-09-29 | 2000-06-13 | Chrysler Corporation | Method for operating a power sliding door and a power liftgate using remote keyless entry system |
US6091162A (en) * | 1998-10-05 | 2000-07-18 | Chrysler Corporation | Method and apparatus for operating a power sliding door in an automobile |
CA2280571A1 (en) * | 1998-11-30 | 2000-05-30 | Daimlerchrysler Corporation | J1850 application specific integrated circuit (asic) and messaging technique |
US6493813B1 (en) * | 1999-10-15 | 2002-12-10 | Neocore, Inc. | Method for forming a hashing code |
US6816881B1 (en) * | 2000-03-13 | 2004-11-09 | International Business Machines Corporation | Method and apparatus for inter-application communication in wireless networks |
US20050195743A1 (en) * | 2000-04-03 | 2005-09-08 | P-Cube Ltd. | Real time charging of pre-paid accounts |
EP1223725B1 (de) * | 2001-01-12 | 2005-06-29 | Vector Informatik GmbH | Verfahren und Vorrichtung zur Relevanzprüfung eines Kennzeichners |
DE10121061B4 (de) * | 2001-04-28 | 2014-08-07 | Bayerische Motoren Werke Aktiengesellschaft | Überwachungsvorrichtung und Überwachungsverfahren |
DE10354517B4 (de) * | 2003-11-21 | 2008-11-27 | Daimler Ag | Verfahren zum Betreiben eines Sicherheits-Schließsystems |
US20060193328A1 (en) * | 2005-02-25 | 2006-08-31 | Ramana Rao | Network address filter including random access memory |
US7984018B2 (en) * | 2005-04-18 | 2011-07-19 | Microsoft Corporation | Efficient point-to-multipoint data reconciliation |
JP2006333438A (ja) * | 2005-04-28 | 2006-12-07 | Fujitsu Ten Ltd | ゲートウェイ装置及びルーティング方法 |
US7792877B2 (en) * | 2007-05-01 | 2010-09-07 | Microsoft Corporation | Scalable minimal perfect hashing |
US7996520B2 (en) | 2007-09-19 | 2011-08-09 | Cisco Technology, Inc. | Behavioral classification of communication sessions using active session initiation |
DE102015200955A1 (de) * | 2015-01-21 | 2016-07-21 | Continental Teves Ag & Co. Ohg | Verfahren zum Verarbeiten einer Fahrzeug-zu-X-Nachricht, elektronische Steuerungsvorrichtung und Speichermedium |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4104731A (en) * | 1976-06-14 | 1978-08-01 | Allen-Bradley Company | Asynchronous coupling of data between a word-oriented I/O module and the memory of a programmable controller |
US4517637A (en) * | 1983-04-21 | 1985-05-14 | Inconix Corporation | Distributed measurement and control system for industrial processes |
JPS60551A (ja) * | 1983-06-16 | 1985-01-05 | Hitachi Ltd | 自動車用データ伝送システム |
US4652853A (en) * | 1983-08-15 | 1987-03-24 | Honda Giken Kogyo Kabushiki Kaisha | Multiple communication system for vehicular bodies |
US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
EP0580189B1 (en) * | 1985-02-23 | 2001-12-05 | Hitachi, Ltd. | Collective wiring system for an automobile and control method for the wiring system |
US4972367A (en) * | 1987-10-23 | 1990-11-20 | Allen-Bradley Company, Inc. | System for generating unsolicited messages on high-tier communication link in response to changed states at station-level computers |
JP2904283B2 (ja) * | 1989-05-22 | 1999-06-14 | マツダ株式会社 | 車両用多重伝送装置 |
US5095480A (en) * | 1989-06-16 | 1992-03-10 | Fenner Peter R | Message routing system for shared communication media networks |
US5053964A (en) * | 1989-07-17 | 1991-10-01 | Utdc, Inc. | On-board integrated vehicle control and communication system |
US5117458A (en) * | 1989-11-01 | 1992-05-26 | Hitachi, Ltd. | Secret information service system and method |
JP2511588B2 (ja) * | 1990-09-03 | 1996-06-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置 |
DE4204383A1 (de) * | 1992-02-14 | 1993-08-26 | Peter Dipl Ing Samulat | Dezentral gesteuertes hochzuverlaessiges datentransportsystem, insbesondere zur anwendung in der industriellen automatisierungstechnik |
CA2091093C (en) * | 1992-03-06 | 1999-07-06 | Peter C. Di Giulio | Event driven communication network |
EP0594196B1 (en) * | 1992-10-22 | 1999-03-31 | Cabletron Systems, Inc. | Address lookup in packet data communications link, using hashing and content-addressable memory |
US5428526A (en) * | 1993-02-03 | 1995-06-27 | Flood; Mark A. | Programmable controller with time periodic communication |
-
1994
- 1994-03-31 US US08/221,822 patent/US5701418A/en not_active Expired - Lifetime
-
1995
- 1995-03-27 AU AU15093/95A patent/AU676423B2/en not_active Expired
- 1995-03-30 EP EP95104760A patent/EP0675024B1/en not_active Expired - Lifetime
- 1995-03-30 DE DE69506158T patent/DE69506158T2/de not_active Expired - Lifetime
- 1995-03-30 CA CA002145916A patent/CA2145916C/en not_active Expired - Lifetime
- 1995-03-31 JP JP7076491A patent/JPH0895609A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
AU676423B2 (en) | 1997-03-06 |
EP0675024B1 (en) | 1998-11-25 |
DE69506158D1 (de) | 1999-01-07 |
AU1509395A (en) | 1995-11-09 |
US5701418A (en) | 1997-12-23 |
EP0675024A1 (en) | 1995-10-04 |
DE69506158T2 (de) | 1999-06-24 |
CA2145916A1 (en) | 1995-10-01 |
CA2145916C (en) | 2005-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0895609A (ja) | 制御装置 | |
FI90475C (fi) | Reaaliaikainen hajautettu tietokannan käsittelyjärjestelmä | |
US4817080A (en) | Distributed local-area-network monitoring system | |
US4972367A (en) | System for generating unsolicited messages on high-tier communication link in response to changed states at station-level computers | |
US5325536A (en) | Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine | |
US4855906A (en) | System for handling unsolicited messages from lower-tier controllers | |
US5978793A (en) | Processing records from a database | |
WO1991010191A1 (en) | Object oriented distributed processing system | |
US5960178A (en) | Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message | |
JPH07325790A (ja) | 分散形コンピュータシステム及びそのシステムで曖昧な識別子を処理する方法 | |
CA2352755A1 (en) | Network management system | |
JP2833633B2 (ja) | データ処理システム及び待ち行列管理方法 | |
US7890758B2 (en) | Apparatus and method for generating keys in a network computing environment | |
US5960175A (en) | Identification and selection of a desired server from a plurality of servers of varying protocols on the same network via a single boot ROM | |
US5101199A (en) | Polling method and apparatus | |
US6912712B1 (en) | Real time control system for multitasking digital signal processor using ready queue | |
CN113890879A (zh) | 数据访问的负载均衡方法、装置、计算机设备及介质 | |
EP0918414B1 (en) | Method for sending messages among a group of subsets forming a network | |
US6772232B1 (en) | Address assignment procedure that enables a device to calculate addresses of neighbor devices | |
EP0362971A2 (en) | Real-time distributed data-base management system | |
JPH09101902A (ja) | ジョブスケジューリング方式 | |
CN108965169B (zh) | 一种报文传输方法、网卡控制器、网卡及电子设备 | |
KR0182683B1 (ko) | 교환기에 있어서 가입자데이타 처리방법 | |
JPH05153183A (ja) | 複数のリンクを用いたデータ転送方式 | |
US20010018705A1 (en) | Communication process and apparatus |