IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングの特許一覧

特開2024-39643定義済みデータを繰り返し伝送するための方法
<>
  • 特開-定義済みデータを繰り返し伝送するための方法 図1
  • 特開-定義済みデータを繰り返し伝送するための方法 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024039643
(43)【公開日】2024-03-22
(54)【発明の名称】定義済みデータを繰り返し伝送するための方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20240314BHJP
   H04L 49/90 20220101ALI20240314BHJP
   G06F 13/10 20060101ALI20240314BHJP
   G06F 13/12 20060101ALI20240314BHJP
【FI】
G06F12/00 570A
H04L49/90
G06F13/10 330A
G06F13/12 330F
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023145786
(22)【出願日】2023-09-08
(31)【優先権主張番号】10 2022 209 392.5
(32)【優先日】2022-09-09
(33)【優先権主張国・地域又は機関】DE
(71)【出願人】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】オリバー・シューネマン
【テーマコード(参考)】
5B160
5K030
【Fターム(参考)】
5B160CA17
5B160KA06
5K030GA13
5K030HC14
5K030KA03
5K030LA03
(57)【要約】
【課題】定義済みデータを繰り返し伝送するための方法を提供すること。
【解決手段】定義済みデータ(1)をデータ送信モジュール(2)からデータ受信モジュール(3)に繰り返し伝送するための方法であって、方法の実行のために、3つのデータ伝送メモリ(4)が使用され、データ伝送メモリ(4)がそれぞれ、データメモリブロック(5)と、データ送信モジュール(2)のアクセス予約(10)を記憶するための第1のメモリビット(6)と、受信モジュール(3)のアクセス予約(10)を記憶するための第2のメモリビット(7)とを有し、方法の実行のために、さらにポインタメモリ(8)が使用され、ポインタメモリ(8)に、現在のデータ伝送メモリ(4)に向けたポインタ(9)を保存することができる、方法。
【選択図】図1
【特許請求の範囲】
【請求項1】
定義済みデータ(1)をデータ送信モジュール(2)からデータ受信モジュール(3)に繰り返し伝送するための方法であって、前記方法の実行のために、3つのデータ伝送メモリ(4)が使用され、前記データ伝送メモリ(4)がそれぞれ、データメモリブロック(5)と、前記データ送信モジュール(2)のアクセス予約(10)を記憶するための第1のメモリビット(6)と、前記受信モジュール(3)のアクセス予約(10)を記憶するための第2のメモリビット(7)とを有し、前記方法の実行のために、さらにポインタメモリ(8)が使用され、前記ポインタメモリ(8)に、現在のデータ伝送メモリ(4)に向けたポインタ(9)を保存することができ、
a)データ書込みプロセスを実行する、
i)前記第1のメモリビット(6)と前記第2のメモリビット(7)とのどちらにもアクセス予約(10)が登録されていないデータ伝送メモリ(4)を決定するステップと、
ii)前記データ送信モジュール(2)によって、前記それぞれのデータ伝送メモリ(4)の前記第1のメモリビット(6)へのアクセス予約(10)の設定により、ステップa-i)で決定された前記データ伝送メモリ(4)を予約するステップと、
iii)前記定義済みデータ(1)を、前記データ伝送メモリ(4)の前記データメモリブロック(5)に書き込むステップと、
iv)前記ポインタメモリ(8)で、前記使用されているデータ伝送メモリに向けたポインタ(9)を設定するステップと、
v)ステップa-ii)で設定された前記アクセス予約(10)の解除によって、前記データ伝送メモリ(4)を解放するステップと、
を含むステップと、
b)データ読出しプロセスを実行する、
i)前記ポインタメモリ(8)での前記ポインタ(9)に基づいて、前記読出し対象のデータ伝送メモリ(4)を決定するステップと、
ii)前記データ受信モジュール(3)によって、前記それぞれのデータ伝送メモリ(4)の前記第2メモリビット(7)へのアクセス予約(10)の設定により、前記読出し対象のデータ伝送メモリ(4)を予約するステップと、
iii)前記定義済みデータ(1)を、前記データ伝送メモリ(4)の前記データメモリブロック(5)から読み出すステップと、
iv)ステップb-i)で設定された前記アクセス予約(10)の解除により、前記データ伝送メモリ(4)を解放するステップと、
を含むステップと、
を含む方法。
【請求項2】
最新の定義済みデータ(1)を前記データ送信モジュール(2)から前記データ受信モジュール(3)に恒久的に提供するためにループ式に恒久的に繰り返される、請求項1に記載の方法。
【請求項3】
前記ステップa)と前記ステップb)とが時間をずらして互いに重複して恒久的に繰り返し実行され、前記ステップa)およびb)内で前記ステップがそれぞれ順次実行される、請求項1または2に記載の方法。
【請求項4】
少なくとも前記データ送信モジュール(2)または前記データ受信モジュール(3)がどちらも、自動車の高度自動運転動作機能に使用するための生データを加工するためのネットワーク内のデータ処理モジュールであり、前記データ送信モジュール(2)と前記データ受信モジュール(3)との間で伝送される定義済みデータ(1)が、加工された生データであり、高度自動運転動作機能を提供するために前記データ受信モジュール(3)によってさらに処理される、請求項1~3のいずれか一項に記載の方法。
【請求項5】
生データが、
- 自動車のセンサからのセンサデータと、
- 高度自動運転動作のために車両が利用することができる、車両外部のデータソースからのデータと、
- 高度自動運転動作のために前記車両内のデータメモリに提供されるデータと、
を含む、請求項4に記載の方法。
【請求項6】
前記ステップa)およびb)による定義済みデータ(1)の前記繰り返しの伝送が、前記ネットワーク内の複数のデータ処理モジュール間で行われる、請求項4または5に記載の方法。
【請求項7】
前記ステップa-i)およびa-ii)での前記データ伝送メモリ(4)の前記決定および予約中、ステップb-i)およびb-ii)の実行に関してすべてのデータ伝送メモリ(4)が遮断される、請求項1~6のいずれか一項に記載の方法。
【請求項8】
ステップa-i)およびa-ii)での前記データ伝送メモリ(3)の前記決定および予約中、まず前記第1のメモリビット(6)および前記第2のメモリビット(7)に基づいて、データ伝送メモリ(4)が空いているかどうかがチェックされ、次いでまず一時予約、および前記第1のメモリビット(6)と前記第2のメモリビット(7)との後続の再チェックが行われる、請求項1~7のいずれか一項に記載の方法。
【請求項9】
ステップa-i)で、前記ポインタメモリ(8)に保存されているポインタ(9)が指し示しているデータ伝送メモリ(4)が考慮に入れられない、請求項1~8のいずれか一項に記載の方法。
【請求項10】
データ処理用の装置であって、少なくとも1つのデータ送信モジュール(2)および1つのデータ受信モジュール(3)と、少なくとも3つのデータ伝送メモリ(4)と、ポインタメモリ(8)とを含み、請求項1~9のいずれか一項に記載の方法を実行するように構成されている装置。
【請求項11】
コンピュータによって実行されるときに、前記コンピュータに請求項1~9のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム製品。
【請求項12】
コンピュータによって実行されるときに、前記コンピュータに請求項1~9のいずれか一項に記載の方法/ステップを実行させる命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
運転支援または自動運転のためのシステムは、通常は相互にデータを交換する多数の個別のソフトウェアユニットからなる。好ましくは、これらのソフトウェアユニット(ランナブル(Runnable)、ノード、またはデータ処理コンポーネントもしくはデータ処理モジュールとも呼ばれることが多い)のそれぞれは、指定の入力データおよび指定の出力データを有する。
【背景技術】
【0002】
上記のシステムでは、入力データ、例えばレーダやビデオなどのセンサからのデータが処理され、そこから高度自動運転機能のためのより正確なデータを取得する。例えば、ビデオデータから、データ処理コンポーネントからなる多段階処理カスケードで、交通標識に関連するデータが抽出される。
【0003】
したがって、様々なデータ処理コンポーネントまたはデータ処理モジュールは、センサデータに基づいてアクションを実行するために、生データまたはセンサデータが処理される複雑なデータ処理ネットワークを定期的に形成する。そのようなアクションは、例えば、車両の自律運転動作の枠組みでの制御タスクでよい。
【0004】
異なるデータ処理コンポーネントおよびデータ処理モジュール間でデータを交換するための効率的な方法が必要である。そのようなデータ交換では、通常、データ送信モジュール(送信側とも呼ばれる)およびデータ受信モジュール(受信側とも呼ばれる)が存在する。そのような交換方法には、様々な要件が課されることがある。よくある要件は、常にできるだけ最新のデータがデータ送信モジュールからデータ受信モジュールに提供される必要があることである。これは、データ送信モジュールとデータ受信モジュールとの間で、同様の定義済みデータが定期的に交換される場合に特に当てはまる。この例としては、例えば、カメラデータを加工し、定義済みデータとしてエッジデータを提供するデータ送信モジュールと、この定義済みデータを処理して交通標識認識などの機能を実行するデータ受信モジュールとが挙げられる。そのような用途では、場合によっては、提供された定義済みデータの個々のセットがすべてデータ受信モジュールによって受信される必要はない。データ受信モジュールが各場合にできるだけ最新の定義済みデータを得ることがはるかに重要である。これには、データ送信モジュールが、データ読出し処理に関係なく、定義済みデータを途切れることなく提供することができる必要がある。
【0005】
そのような用途には、データ伝送方法が必要である。そのようなデータ伝送方法は、メッセージキューと呼ばれることも多い。
さらなる要件は、そのようなデータ伝送方法を、いわゆる共有メモリ環境(共有されたメモリを有する環境)で定期的に実行しなければならないことである。共有メモリ環境では、データ処理モジュールは通常、オペレーティングシステムによるアクセス制御なしでデータ処理モジュールがアクセスすることができるメモリを共有する。オペレーティングシステムは、データ処理モジュールがメモリを利用できるようにし、アクセスを許可する。しかし、オペレーティングシステムは、データ処理モジュールがメモリにアクセスする方法を制御しない。そのような環境は、データ処理モジュール間でデータを交換するのに必要な計算量を大幅に削減する。しかし、この環境は、上位のインスタンスがアクセス間での衝突を妨げないので、そのような衝突が発生する危険性を伴う。
【発明の概要】
【発明が解決しようとする課題】
【0006】
様々なミドルウェアでの共有メモリ通信に基づく既存のメッセージキューは、送信側と受信側とが互いにブロックする可能性があるという欠点を有している。さらに、送信側と受信側とが共に共有メモリへの読出しおよび書込みアクセスを行うことができることも必要である。
【課題を解決するための手段】
【0007】
本明細書に記載の方法およびこの方法を実行するための記載の装置を用いて、どの時点においても送信側と受信側とが互いをブロックすることがないメッセージキューを述べる。さらに、この解決策は、共有の読出し/書込みメモリを必要としない。
【0008】
本明細書では、定義済みデータをデータ送信モジュールからデータ受信モジュールに繰り返し伝送するための方法であって、方法の実行のために、3つのデータ伝送メモリが使用され、データ伝送メモリがそれぞれ、データメモリブロックと、データ送信モジュールのアクセス予約を記憶するための第1のメモリビットと、受信モジュールのアクセス予約を記憶するための第2のメモリビットとを有し、方法の実行のために、さらにポインタメモリが使用され、ポインタメモリに、現在のデータ伝送メモリに向けたポインタを保存することができ、
a)データ書込みプロセスを実行する、
i)第1のメモリビットと第2のメモリビットとのどちらにもアクセス予約が登録されていないデータ伝送メモリを決定するステップと、
ii)データ送信モジュールによって、それぞれのデータ伝送メモリの第1のメモリビットへのアクセス予約の設定により、ステップa-i)で決定されたデータ伝送メモリを予約するステップと、
iii)定義済みデータを、データ伝送メモリのデータメモリブロックに書き込むステップと、
iv)ポインタメモリで、使用されているデータ伝送メモリに向けたポインタを設定するステップと、
v)ステップa-ii)で設定されたアクセス予約の解除によって、データ伝送メモリを解放するステップと、
を含むステップと、
b)データ読出しプロセスを実行する、
i)ポインタメモリでのポインタに基づいて、読出し対象のデータ伝送メモリを決定するステップと、
ii)データ受信モジュールによって、それぞれのデータ伝送メモリの第2メモリビットへのアクセス予約の設定により、読出し対象のデータ伝送メモリを予約するステップと、
iii)データを、データ伝送メモリのデータメモリブロックから読み出すステップと、
iv)ステップb-i)で設定されたアクセス予約の解除により、データメモリを解放するステップと、
を含むステップと、
を含む方法を述べる。
【0009】
本明細書に記載の方法は、特別な利点として、データ送信モジュールとデータ受信モジュールとの間の1:1通信のために好ましくは正確に3つのデータ伝送メモリが提供されることを利用する。モジュールは、特に自動車に高度自動機能を提供するためのシステムの一部である任意のデータ処理モジュールまたはデータ処理コンポーネントでよい。
【0010】
本明細書に記載の方法は、いわゆるメッセージキューを利用する。メッセージキューは、メッセージの送信側(データ送信モジュール)と受信側(データ受信モジュール)とが同時にメッセージキューと対話する必要がないことにより、非同期通信プロトコルを提供する。データ伝送メモリの読出しのためのアクセス予約を記憶するための第2のメモリビットにより、データ読出しモジュールは、読出し処理のためにデータを予約することが可能になる。同時に、データ書込みモジュールは、他の2つのデータ伝送メモリのうちの1つを使用して、最新のデータを送信することができる。
【0011】
ステップa)およびそのステップは、データ送信モジュールによって実行される。ステップb)およびそのステップは、データ受信モジュールによって実行される。ここで、どちらのモジュールも、3つのデータ伝送メモリが提供される共通のメモリ領域にアクセスする。
【0012】
データ受信モジュールのデータ読出しアクセスにより、ほぼ常に、読出しアクセスのためにメモリの1つがブロックされる。データ受信モジュールが定義済みデータを読み出す速度に関係なく、データ送信モジュールは、残りの2つのデータ伝送メモリの一方または他方に交互にデータを書き込むことができる。ステップa-i)およびa-ii)による空いているデータ伝送メモリの決定および予約により、ならびにステップb-i)およびb-ii)でのそれぞれのアクセス予約の設定により、3つのデータ伝送メモリから、現在アクセス予約済みとなっていないデータ伝送メモリが常に選択されることが保証される。ステップa-iv)およびb-i)に従って、ポインタメモリでのポインタを使用してそれぞれ最新のデータセットを指し示すことにより、データ受信モジュールに、最新の定義済みデータを含むデータ伝送メモリが常に通知される。
【0013】
既存の解決策は、大抵は、データ伝送メモリを2つだけ使用していた。しかし、そのような解決策に対し、本明細書に記載の解決策は大きな利点を有する。
2つのデータ伝送メモリを使用する場合、データ送信モジュールが、最後に書き込まれたデータを、新たに定義されたデータの提供に伴って上書きしなければならない、または最後に書き込まれたデータがデータ受信モジュールによって完全に読み込まれるまで待機しなければならない場合が生じ得る。これにより、データ伝送の速度および適時性が大幅に低下する。これは、3つのデータ伝送メモリによって回避することができる。
【0014】
記載の方法、または記載の方法によって提供されるメッセージキューを用いて、共有の読出し/書込みメモリなしでデータ送信モジュールとデータ受信モジュールとの間で通信を行うことができる。
【0015】
データ送信モジュールは、データまたはフラグおよびポインタを第1のメモリビット、データメモリブロック、およびポインタ用のポインタメモリに単に書き込む。データ送信モジュールは、好ましくは、データ伝送メモリのこれらの部分に対してのみアクセス権限を有する。データ受信モジュールは、好ましくは、データ伝送メモリのこれらの部分に対して読出しアクセスのみを行うことができる。
【0016】
データ受信モジュールは、データまたはフラグを第2のメモリビットに単に書き込む。また、データ受信モジュールは、好ましくは、データ伝送メモリのこれらの部分に対してのみアクセス権限を有する。データ送信モジュールは、好ましくは、データ伝送メモリのこれらの部分に対して読出しアクセスのみを行うことができる。
【0017】
最新の定義済みデータをデータ送信モジュールからデータ受信モジュールに恒久的に提供するためにループ式に恒久的に繰り返されると特に有利である。
さらに、ステップa)とステップb)とが時間をずらして互いに重複して恒久的に繰り返し実行され、ステップa)およびb)内でステップがそれぞれ順次実行されると有利である。
【0018】
好ましくは、データ受信モジュールとデータ送信モジュールとは、既に処理した最新のデータをデータ送信モジュールがデータ受信モジュールに常に提供するように、互いに独立して恒久的に動作する。
【0019】
また、少なくともデータ送信モジュールまたはデータ受信モジュールがどちらも、自動車の高度自動運転動作機能に使用するための生データを加工するためのネットワーク内のデータ処理モジュールであり、データ送信モジュールとデータ受信モジュールとの間で伝送される定義済みデータが、加工された生データであり、高度自動運転動作機能を提供するためにデータ受信モジュールによってさらに処理されると有利である。
【0020】
さらに、生データが、
- 自動車のセンサからのセンサデータと、
- 高度自動運転動作のために車両が利用することができる、車両外部のデータソースからのデータと、
- 高度自動運転動作のために車両内のデータメモリに提供されるデータと
を含む。
【0021】
同様に、ステップa)およびb)による定義済みデータの繰り返しの伝送が、ネットワーク内の複数のデータ処理モジュール間で行われると有利である。
さらに、ステップa-i)およびa-ii)でのデータ伝送メモリの決定および予約中、ステップb-i)およびb-ii)の実行に関してすべてのデータ伝送メモリが遮断されると有利である。
【0022】
さらに、ステップa-i)およびa-ii)でのデータ伝送メモリの決定および予約中、まず第1のメモリビットおよび第2のメモリビットに基づいて、データ伝送メモリが空いているかどうかがチェックされ、次いでまず一時予約、および第1のメモリビットと第2のメモリビットとの後続の再チェックが行われると有利である。
【0023】
一時予約を伴うこの手順により、データ受信モジュールとデータ受信モジュールとの衝突が起こらないことを保証することができる。一時予約が設定されるとすぐに、データ受信モジュールは、このデータ伝送メモリを読出しアクセスでブロックすることができなくなる。一時予約後の再チェックにより、場合により、それぞれのデータ伝送メモリの選択と一時予約との間で読出しアクセスが行われたかどうかを確認することができる。データ受信モジュールによるアクセス予約が確認された場合、一時予約は再び解除され、好ましくは、データ伝送メモリを決定して予約するための新たな試行が行われる。
【0024】
さらに、ステップa-i)で、ポインタメモリに保存されているポインタが指し示しているデータ伝送メモリが考慮に入れられないと有利である。
各場合に最後に保存された定義済みデータのセットは、このデータ伝送メモリに保存され、データ読出しプロセスまたはデータ受信モジュールに利用できるようになる。このため、ステップa-i)においてこのデータ伝送メモリが考慮に入れられない場合、ステップa-i)を実行する速度を高めることができる。
【0025】
本明細書には、データ処理用の装置であって、少なくとも1つのデータ送信モジュールおよび1つのデータ受信モジュールと、少なくとも3つのデータ伝送メモリと、ポインタメモリとを含み、上記の方法を実行するように構成されている装置も記載される。
【0026】
上記の方法に関連して述べた特別な利点および設計上の特徴は、以下に述べる装置にも適用可能であり転用可能であることに留意されたい。
さらに、コンピュータによって実行されるときに、コンピュータに上記の方法を実行させる命令を含むコンピュータプログラム製品も記載される。
【0027】
さらに、本明細書には、コンピュータによって実行されるときに、コンピュータに上記の方法を実行させる命令を含むコンピュータ可読記憶媒体も記載される。
以下、図面に基づいて、本明細書に記載の方法および記載の装置を説明する。
【図面の簡単な説明】
【0028】
図1】本明細書に記載の方法を参照した、記載の装置の概略図である。
図2】記載の方法におけるデータ伝送メモリを予約するプロセスを示す図である。
【発明を実施するための形態】
【0029】
図1に、データ送信モジュール2およびデータ受信モジュール3が示されており、データ送信モジュール2は、定義済みデータ1をデータ受信モジュール3に伝達する。この目的のために、合計3つのデータ伝送メモリ4が設けられ、データ伝送メモリ4はそれぞれ、伝送すべき定義済みデータ1を記憶するためのデータメモリブロック5と、データ送信モジュール2のアクセス予約10を設定するための第1のメモリビット6と、データ受信モジュール3のアクセス予約10を設定するための第2のメモリビット7とを有する。
【0030】
データ送信モジュール2では、ステップa)がステップi)~v)で実行される。データ受信モジュール3では、ステップb)がステップi)~iv)で実行される。
ステップa-i)で、まず、第1のメモリビット6も第2メモリビット7も設定されておらず、したがって現在使用されていないデータ伝送メモリ4が決定される。さらなる制限として、ポインタメモリに保存されているポインタが現在指し示していないデータ伝送メモリ4のみが決定される。ステップa-ii)で、第1のメモリビット6が設定されることにより、それぞれのデータ伝送メモリ4の予約が行われる。
【0031】
次いで、ステップa-iii)に従って、定義済みデータ1が、それぞれのデータ伝送メモリ4のデータメモリブロック5に書き込まれる。これが完了するとすぐに、ステップa-iv)で、ポインタメモリでのポインタ9がこのデータメモリブロック5に向けて設定される。図1では、例として、データ伝送メモリ4のポインタ9が、(iii)と記された第3のデータ伝送メモリ4に向けて設定されていることが示されている。ステップa)の最後に、ステップa-v)で、それぞれのデータ伝送メモリ4の第1のメモリビット6に設定されたアクセス予約10を解除することによって、データ伝送メモリ4の解放が行われる。
【0032】
データ送信モジュール2におけるステップi)~v)でのステップa)の実行と並行して、しかし場合によっては時間をずらして、データ受信モジュール3におけるステップi)~iv)でのステップb)が実行される。まず、ステップb-i)で、定義済みデータ1の現在のセットが保存されている、読出し対象のデータ伝送メモリ4が決定される。次に、ステップb-ii)で、データ受信モジュール3によって、第2のメモリビット7にアクセス予約10を設定することによって、読出し対象のデータ伝送メモリ4の予約が行われる。次に、ステップb-iii)で、データメモリブロック4からの定義済みデータ1の読出しが行われる。定義済みデータ1の読出しが完了するとすぐに、ステップb-i)で設定された第2のメモリビット1でのアクセス予約の解除により、データ伝送メモリの解放が行われる。
【0033】
図2は、データ伝送メモリの決定および予約のために実行される、ステップa-i)およびa-ii)、またはb-i)およびb-ii)によるプロセスを示す。図2は、ステップa-i)およびa-ii)、またはb-i)およびb-ii)をどのように実施することができるかについての2つの詳細図も示す。ステップa-iii)によるデータの書込み、またはステップb-iii)によるデータの読出しを妨害なく行うことができるように、それぞれ決定および予約が必要である。
【0034】
ステップa-i)およびa-ii)、またはb-i)およびb-ii)は、データ送信モジュールの書込みアクセスとデータ受信モジュールの読出しアクセスとの衝突が妨げられるように実施される。この目的で、ステップa-i)およびa-ii)、またはb-i)およびb-ii)中、それぞれ他のモジュールによるデータ伝送メモリへのアクセスがブロックされる。しかし、このブロックは、3つのデータ伝送メモリのうちのそれぞれ1つに関してのみ、それぞれのデータ伝送メモリがステップa-ii)またはb-ii)での予約の候補である限りにおいてのみ適用される。
【0035】
図2は、データ伝送メモリを決定して予約するために、データ伝送メモリの予約が正常に行われるまで、各データ伝送メモリに対して実行されるプログラムシーケンスのフローチャートを示す。フローチャートの各ブロックにおいて、それぞれ2つのメモリビットが「(_)(_)」で表され、(x)によって、メモリビットでアクセス予約が認識された場合が表され、(?)によって、メモリビットでアクセス予約をチェックすべき場合が表される。第1の位置「(x)(_)」は、それぞれ、データ送信モジュールのアクセス予約を記憶するための第1のメモリビットを表し、第2の位置「(_)(x)」は、データ受信モジュールのアクセス予約を記憶するための第2のメモリビットを表す。
【0036】
図2でのステップa-i)およびa-ii)、またはステップb-i)およびb-ii)の実施は、基本的には同じであるが、チェックはそれぞれ逆に行われる。すなわち、ステップa-i)およびa-ii)の実施時に、第2のメモリビットがチェックされて、データ受信モジュールによるアクセス予約があるかどうかが判断され、逆に、ステップb-i)およびb-ii)の実施時に、第1のメモリビットがチェックされて、データ送信モジュールによるアクセス予約があるかどうかが判断される。以下の説明は、図2でのステップa-i)およびa-ii)の表現を参照し、ステップb-i)およびb-ii)の表現に転用することができ、その際、第1のメモリビットと第2のメモリビット、およびデータ送信モジュールとデータ受信モジュールがそれぞれ入れ替わることになる。
【0037】
プロセス開始11の後、まず、それぞれのデータ伝送メモリに対するデータ受信モジュールによるアクセス予約があるかどうかを判断するために、第2のメモリビットに関する予約チェック12が開始される。これは、メモリビットの状態「(_)(?)」で表される。次いで、プログラム分岐13が行われる。予約がないときには、どのメモリビットも設定されておらず、これは、次に「(_)(_)」で示される。データ送信モジュールに関して仮予約14が行われ、これは、ステップa-ii)の第1の部分を成す。仮予約により、第1のメモリビットが設定され、状態は「(x)(_)」に変わる。予約があり、状態「(_)(x)」が確認された場合、それぞれのデータ伝送メモリは使用することができない。予約処理の中断15が行われる。
【0038】
仮予約14の後、再度の予約チェック12が導入される。これは、衝突を妨げるために必要である。仮予約14の前に、データ送信モジュールとデータ受信モジュールとの間でのプロセス衝突の危険がある。プロセス開始11と仮予約14との間で、それぞれ他のプロセスが同様にアクセス予約を行った可能性もある。これを妨げるために、仮予約14の後に予約チェック12が再度導入される。ここでの状態は、次に「(x)(?)」となる。次いで、再びプロセス分岐13が行われる。このプロセス分岐13の後に状態「(x)(_)」が確認された場合には、これが最終予約16として受け入れられる。このプロセス分岐13の後に状態「(x)(x)」が確認された場合には、第1のメモリビットの状態がリセットされ、次いで、第1の予約チェック前と同様の状態「(_)(?)」が再び生じる。ここでも、予約処理の中断15が行われる。
【0039】
予約処理の中断15の後、再開始17が導入され、プロセス開始11に戻る。これは、データ伝送メモリが決定されるまで行われ、その後、さらなるプロセスステップa-iii)など、またはb-iii)などを実行することができる。
【符号の説明】
【0040】
1 定義済みデータ、第2のメモリビット
2 データ送信モジュール
3 データ受信モジュール
4 データ伝送メモリ
5 データメモリブロック
6 第1のメモリビット
7 第2のメモリビット
8 ポインタメモリ
9 ポインタ
10 アクセス予約
11 プロセス開始
12 予約チェック
13 プログラム分岐、プロセス分岐
14 仮予約
15 中断
16 最終予約
17 再開始
図1
図2
【外国語明細書】