(57)【特許請求の範囲】
【請求項１】
複数のプロセス（２）からメモリ（１）の領域へのアクセスを制御する方法において、
前記プロセス（２）の第１プロセス（＃１）は、前記プロセス（２）の第２プロセス（＃２）が前記メモリ（１）へのアクセスに用いるアドレスバス信号（５）の一部を制御し、
前記第１プロセス（＃１）は、前記アドレスバス信号（５）の前記一部の制御により、前記第２プロセス（＃２）がどのメモリ領域にアクセスするかということに影響を与え、
前記メモリ（１）には、少なくとも２つのバージョンとして、データパケットが格納され、
前記メモリ（１）に格納されたデータパケット毎、又は前記メモリ（１）に格納されたデータパケットのヘッダ部毎に、制御レジスタ（４）が設けられ、
前記制御レジスタ（４）は、第１段と第２段の２段式に構成され、前記第１プロセス（＃１）は、常時、前記制御レジスタ（４）の第１段（６）に書き込むことが可能であることを特徴とする方法。
【請求項２】
前記第１プロセス（＃１）は、制御レジスタ（４）を介して前記アドレスバス信号（５）の一部を制御することを特徴とする、請求項１に記載の方法。
【請求項３】
前記メモリ（１）は、前記プロセス（＃１、＃２）が同時にアクセスするデュアルポートＲＡＭとして構成されることを特徴とする、請求項１又は２に記載の方法。
【請求項４】
前記メモリ（１）は、前記プロセス（＃１、＃２）が交互にアクセスするシングルポートＲＡＭとして構成されることを特徴とする、請求項１又は２に記載の方法。
【請求項５】
前記アクセスが時分割多重方式により行われることを特徴とする、請求項４に記載の方法。
【請求項６】
前記メモリ（１）には、同じ大きさのデータパケットが格納されることを特徴とする、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記データパケットが、ｎ∈｜Ｎの場合に２ｎメモリワードのデータパケットであることを特徴とする、請求項６に記載の方法。
【請求項８】
前記メモリ（１）には、任意の大きさのデータパケットが格納され、前記データパケットのそれぞれは、特にｎ∈｜Ｎの場合に２ｎメモリワードのヘッダ部と、可変的な大きさの主要部とに分けられ、前記ヘッダ部は、異なるデータパケット間で同じ大きさであることを特徴とする、請求項１〜５のいずれか１項に記載の方法。
【請求項９】
前記メモリ（１）には、前記メモリ（１）にアクセス可能なプロセス（２）の数のバージョンとして、データパケットが格納されることを特徴とする、請求項１に記載の方法。
【請求項１０】
前記第１プロセス（＃１）は、前記メモリ（１）の全ての領域にアクセス可能であり、前記第２プロセス（＃２）が前記メモリ（１）へのアクセスに用いる前記アドレスバス信号（５）が修正され、修正されていない前記アドレスバス信号（５）は、前記メモリ（１）に格納された特定のデータパケット（１０）、又は前記メモリ（１）に格納された特定のデータパケット（１０）のヘッダ部を示し、修正された前記アドレスバス信号（５）は、特定のバージョン（１１）の、前記データパケット（１０）又は前記データパケット（１０）の前記ヘッダ部を示すことを特徴とする、請求項１又は９に記載の方法。
【請求項１１】
前記修正されていないアドレスバス信号は、特定数のアドレスビットを含み、前記第１プロセス（＃１）は、前記アドレスバス信号（５）の前記修正のために、前記修正されていないアドレスバス信号（５）に少なくとも１つの追加的なアドレスビットを追加し、前記追加的なアドレスビットによって、前記格納された異なるバージョン（１１）の前記データパケット（１０）又は前記データパケット（１０）の前記ヘッダ部が区別されることを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記第２プロセス（＃２）は、前記メモリ（１）に格納された２ｍ個までのデータパケット、又は前記メモリ（１）に格納された２ｍ個までのデータパケットのヘッダ部にアクセスし、前記修正されていないアドレスバス信号（５）は、ｍ＋ｎビットを含み、前記修正されたアドレスバス信号（５）は、ｍ＋ｎ＋ｋビットを含むことを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記第２プロセス（＃２）が必要に応じて前記制御レジスタ（４）の第２段（７）をロックすることで、前記制御レジスタ（４）の前記第１段（６）の内容を前記第２段（７）へ複写することが防止されることを特徴とする、請求項１に記載の方法。
【請求項１４】
前記第２段（７）のロックが解除されている場合に、前記制御レジスタ（４）の前記第１段（６）の内容が、前記制御レジスタ（７）の第２段（７）へ複写されることを特徴とする、請求項１又は１３に記載の方法。
【請求項１５】
前記制御レジスタ（４）の第２段（７）の内容が、前記アドレスバス信号（５）に挿入されることを特徴とする、請求項１、１３、１４のいずれか１項に記載の方法。
【請求項１６】
通信システム（３３）の加入者（３２）の、通信媒体（３０）に接続された通信モジュール（３１）であって、前記通信モジュール（３１）は、前記通信媒体（３０）を介して受信又は送信されるメッセージを一時的に格納するためのメッセージメモリ（１）を有する、前記通信モジュール（３１）において、
前記通信モジュール（３１）は、前記メッセージメモリ（１）の領域への、前記通信媒体（３０）を介したアクセスと、加入者プロセッサ（３４）からのアクセスとを、請求項１〜１５のいずれか１項に記載の方法により制御するための手段を有することを特徴とする通信モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセスからメモリ領域へのアクセスを制御する方法に関する。さらに、本発明は、通信システムの加入者の、通信媒体に接続された通信モジュールに関し、当該モジュールは、上記媒体を介して受信又は送信されるメッセージを一時的に格納するためのメッセージメモリを有する。
【背景技術】
【０００２】
従来技術において、データの相互交換のために様々なプロセスが同一のメモリを利用する、複数の異なる適用が存在する。このようなプロセスの例は、中央処理ユニット（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と任意の周辺装置であり、ＣＰＵと周辺装置との間でデータを交換するために、両者は、任意にアクセス可能な同一のメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）にアクセスする。
【０００３】
複数のプロセスから同一のメッセージメモリへのアクセスにおいて、交換されるデータが、単一のメモリワードとしてのみならず、それぞれが複数のワードを含むデータパケットとして存在する場合に、データの整合性及びデータの完全性が問題となる。例えば、１のプロセスが特定のデータパケットを読み出す間に、他のプロセスが同一のデータパケットを変更する場合、データの整合性が損なわれる。このような場合、読み出しプロセスは、新しいメモリワードと古いメモリワードとが混在するパケットを読み出しうる。このことは、データパケットの内容の更なる処理において深刻な問題を引き起こしうる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このことを防止するために、従来技術においては、２つのプロセスのうちの１のプロセスが、データパケットへのアクセスの前に他のプロセスを監視し、場合によっては、他のプロセスがそのアクセスを終了するまで待機する方法が公知である。代替的に、１のプロセスはさらに、他のプロセスのアクセスをブロックすることもできるが、ブロックされたプロセスが、他のタスクのために自身の一時メモリを利用することが必要となる前に自身のデータを格納できない場合には、データ損失に繋がりうる。さらに、２つのプロセスのうちの少なくとも１つのプロセスが、メモリに間接的にのみアクセスし、独立したメモリ管理制御装置が、一貫した形態のデータパケットをメモリに格納し、当該メモリから読み出すという他の方法も公知である。しかし、この方法は、比較的コストを要し高価である。この方法は、データパケットの多重格納と組み合わせることができる。
【０００５】
さらに、従来技術において、所謂ＦｌｅｘＲａｙ通信コントローラ（ＣＣ：Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ）の形態による通信モジュールが公知である。この通信モジュールは、メッセージが伝送されるＦｌｅｘＲａｙ通信媒体、即ちデータバスと、ＦｌｅｘＲａｙ加入者とを繋ぐ役割を果たす。特にＦｌｅｘＲａｙの利用に対応する通信コントローラは、例えば、独国特許出願公開第１０  ２００５  ０３４  ７４４号明細書に記載されている。加入者と通信媒体との間のメッセージ伝送のために、通信コントローラ内には、メッセージを格納するための特別な構成が設けられている。メッセージ伝送、又はメモリの管理は、状態オートマトンによって制御される。
【０００６】
従来技術において公知の通信コントローラでは、２つの所謂一時バッファ（ＴＢＦ：Ｔｒａｎｓｉｅｎｔｅｒ  Ｂｕｆｆｅｒ）、即ち、チャネルＡ用の１の一時バッファと、チャネルＢ用の他の一時バッファとが設けられている。各一時バッファは、２つのメッセージ、即ち、Ｒｘ（受信）メッセージとＴｘ（送信）メッセージとを格納することができる。インタフェース要素はさらに、それぞれが２つのメッセージ分の容量を有する、所謂入力バッファ（ＩＢＦ：Ｉｎｐｕｔ  Ｂｕｆｆｅｒ）と出力バッファ（ＯＢＦ：Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ）を含む。
【０００７】
一時バッファ（ＴＢＦ）は、一方では通信媒体から、他方ではＦｌｅｘＲａｙ通信コントローラのメッセージハンドラ（Ｍｅｓｓａｇｅ  Ｈａｎｄｌｅｒ）を介してアクセスされる。入力又は出力（ＩＢＦ；ＯＢＦ）バッファは、一方では加入者のホストＣＰＵによって、他方ではメッセージハンドラによってアクセスされる。前述したプロセスから通信コントローラの前述したバッファへのアクセスにおいて、データの整合性及びデータの完全性の確保は、極めて重要な前提条件となる。この理由から、公知の通信コントローラでは、ホストＣＰＵは、メッセージメモリ（ＩＢＦ；ＯＢＦ）への直接的なアクセス権を有していない。入力又は出力バッファはむしろ、２つの互いに異なるメモリブロック（所謂、ＩＢＦ及びＩＢＦシャドウ、又は、ＯＢＦ及びＯＢＦシャドウ）を有する。データ送信のために、ホストＣＰＵは、入力バッファにデータを書き込み、メッセージ伝送を開始する。これに続けて直ぐに、ＩＢＦとＩＢＦシャドウの内容が交換される。その後、ＩＢＦシャドウからメッセージメモリ（所謂メッセージＲＡＭ）へのデータ伝達が開始する。ホストＣＰＵは、ＩＢＦシャドウからメッセージＲＡＭへのデータ伝送が進行している間に、後続のメッセージのデータを入力バッファ（ＩＢＦ）に書き込むことができる。その後、メッセージＲＡＭからのデータは、通信媒体を介して他の加入者へ伝送される。ＩＢＦシャドウとメッセージＲＡＭとの間のデータ伝送の終了後に、ＩＢＦとＩＢＦシャドウの内容の再度の交換等が行なわれる。
【０００８】
このような比較的コストを要する措置により、データの完全性を保てるが、メッセージメモリ（ＩＢＦ；ＯＢＦ）をそれぞれ二重に実現する必要があるため、本措置では非常に大きなチップ面積が必要となる。公知の通信コントローラの更なる欠点は、メッセージハンドラが、比較的大きくて高価な状態オートマトン（所謂Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）であるということにある。さらに、前述した方法により、メッセージメモリ（メッセージＲＡＭ）には、現在のデータのみならず、古いデータも格納されることになる。さらに、入力又は出力バッファ（ＩＢＦ；ＯＢＦ）を介したメッセージメモリ（メッセージＲＡＭ）へのホストＣＰＵのアクセスは、直接的に行えず、ＩＢＦシャドウ又はＯＢＦシャドウを介して間接的にのみ行うために、比較的コストを要する。
【０００９】
前述した従来技術に基づき、本発明の根底には、同一メモリへの複数のプロセスのアクセスを簡素化し特に高速化し、安価な実現を可能にするとともに、データの完全性を確保する必要がある、という課題が存在する。
【課題を解決するための手段】
【００１０】
本課題を解決するために、冒頭で述べた形態の、メモリ領域へのアクセスを制御する方法に基づいて、プロセスの第１プロセスが、プロセスの他のプロセスがメモリへのアクセスに用いるアドレスバスの一部を制御し、第１プロセスが、アドレスバスの一部の制御により、他のプロセスがどのメモリ領域にアクセスするかということに影響を与えることが提案される。
【００１１】
本発明によれば、双方のプロセスがデータを損失することなく待ち時間なしで最新の有効なデータパケットにアクセスできるように、１のプロセスが、メモリに格納されたデータパケットへの他のプロセスのアクセスを制御するための方法が提案される。本発明にかかる方法は、複数のプロセス、特に２つのプロセスから同時にアクセス可能なメモリ（Ｄｕａｌ−Ｐｏｒｔｅｄ  ＲＡＭ、デュアルポートＲＡＭ）にも、複数のプロセスから交互に、特に時分割多重方式によりアクセス可能なメモリ（Ｓｉｎｇｌｅ−Ｐｏｒｔｅｄ  ＲＡＭ、シングルポートＲＡＭ）にも適している。本方法は、２つのプロセスが同一メモリにアクセスする方法とともに、３つ以上のプロセスが同一メモリにアクセスする方法としても利用されうる。
【００１２】
本発明にかかる方法において、プロセスの１のプロセスが、他のプロセスがメモリへのアクセスに用いるアドレスバスの一部を制御する。第１プロセスによるアドレスバスの制御は、例えば、書き込み可能な制御レジスタを介して行なうことができる。これにより、簡単で安価に実現され、データパケットを損失せず、かつコストを要するメモリ管理制御装置を必要とせずに、待ち時間なしに２つ又は全てのプロセスを同一メモリにアクセスさせるための方法が提案される。
【００１３】
本方法において、好適に、全てのデータパケットは同じ大きさである。特に、全てのデータパケットは、２ｎメモリワードを有する。同じ大きさでない場合に、データパケットは、好適に２つの部分に分けられ、即ち、固定の大きさ、特に２ｎメモリワードを有する所謂ヘッダ部と、可変的な大きさを要する主要部とに分けられる。ヘッダ部は、同一メモリ又は他のメモリに格納可能な主要部を示すポインタを含んでもよい。データパケット又はデータパケットのヘッダ部は、好適に、少なくとも２つのバージョン（Ｖｅｒｓｉｏｎ）として、メモリに格納される。
【００１４】
本発明にかかる方法では、第１プロセスは、メモリの全てのメモリ領域にアクセス可能である。さらに、第１プロセスは、別のプロセスが同一のメモリへのアクセスに用いるアドレスバス信号を修正できる。このことは、同じ大きさのデータパケットへのアクセス、又は、データパケットがヘッダ部と主要部とに分けられている場合には、同じ大きさのヘッダ部へのアクセスに該当する。データパケットの主要部へのアクセスは修正されず、対応するヘッダ部に格納された主要部を示すポインタを介して行なわれる。
【００１５】
更なる別のプロセスは、２ｎメモリワードからなる２ｍ個までのデータパケットうちの１つ、又は、２ｎメモリワードからなる２ｍ個までのデータパケットのヘッダ部にアクセスするとともに、特定のビット長のアドレス信号を生成する。データパケット又はデータパケットのヘッダ部の大きさが２ｎメモリワードである場合に、２ｍ個までのデータパケット、又は２ｍ個までのデータパケットのヘッダ部への別のアクセスにおいて、第２プロセスのアドレス信号は、（ｍ＋ｎ）ビットの長さを有する。しかし、更なる別のプロセスは、自身が生成したアドレス信号によっては、多重格納されたデータパケットのアドレス、即ち、様々なバージョンのデータパケットを区別できない。このために、第１プロセスにより提供される追加的なアドレスビットが必要となる。有利に、追加的なアドレスビットは、第１プロセスにより制御される制御レジスタから加えられる。追加的なｋビットにより、格納された２ｋ個のバージョンの、特定のデータパケット又は特定のデータパケットのヘッダ部を区別することができる。これにより、合計（ｍ＋ｎ＋ｋ）ビットのアドレス信号が生成される。アドレス信号中の３つのビット群の位置は任意である。
【図面の簡単な説明】
【００１６】
従属請求項は、本発明にかかる方法の好適な構成を含む。以下では、本発明の特別な特徴及び効果を、図を参照しながら詳細に解説する。
【図１】複数のプロセスからアクセス可能な様々な領域を有するメモリを示す。
【図２】メモリの内容であって、当該メモリの領域へのアクセスが本発明の方法により制御される、上記メモリの内容の例を示す。
【図３】本発明にかかる方法を解説するための模式的ブロック図を示す。
【図４】メッセージメモリを備えた通信コントローラをそれぞれに有する、通信媒体に接続された複数の通信加入者を含み、本発明にかかる方法により様々なプロセスから当該メッセージメモリにアクセス可能な通信システムを示す。
【発明を実施するための形態】
【００１７】
図１には、例えば任意にアクセス可能なメモリ（ＲＡＭ；Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として構成されたメモリ１が示されている。特に、メモリは、デュアルポートＲＡＭ又はシングルポートＲＡＭとして構成されうる。当然のことながら、メモリ１は、任意の他の揮発性メモリ、又は不揮発性メモリとしても構成されうる。複数のプロセス（＃１、＃２、＃ｎ）は、メモリ１の領域にアクセスできる。メモリ領域へのアクセスは、特に、メモリ１への書き込みアクセス及び／又は読み出しアクセスを含む。プロセス２は、例えば、同一のメモリ１の領域にアクセス可能な、中央処理ユニット（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及び任意の周辺装置を含む。
【００１８】
メモリ１はまた、図４に例示するように、通信システム３３、例えば、ＦｌｅｘＲａｙネットワーク、ＣＡＮネットワーク、又はＴＴＣＡＮネットワークの通信加入者３２の通信コントローラ（ＣＣ）３１の一部であってもよい。この場合、一方では通信媒体３０（例えば、ＦｌｅｘＲａｙバス、ＣＡＮバス、ＴＴＣＡＮバス）を介して、他方では通信コントローラ３１が割り当てられている通信加入者３２のホストプロセッサ３４（ホストＣＰＵ）から、メモリ１にアクセスできる。
【００１９】
プロセス２は、特にデータ交換のために、共通のメモリ１へのアクセスを利用する。交換されるデータが、単一のメモリワードとしてのみならず、複数ワードを含むデータパケットとして存在する場合には、データの完全性、特にデータの整合性の問題が重要性を帯びてくる。メモリワードは、特定の処理ユニットの、システムに関わる（ｓｙｓｔｅｍｂｅｄｉｎｇｔ）メモリ単位である。ワードは、処理ステップにおいて処理ユニットのプロセッサにより実行されうる最大データ量であり、多くの場合、メインデータバスの幅に相当する。典型的なワード幅は、１６ビット及び３２ビットである。例えば、１のプロセス＃１が特定のデータパケットを読み出す間に、他のプロセス＃２が同一のデータパケットを変更する場合、メモリ１に格納されたデータの整合性が損なわれてしまう。その場合、読み出しプロセス＃１は、古いデータワードと新しいデータワードが混在したパケットを獲得してしまうことがある。このことを防止するために、本発明によれば、双方のプロセスがデータを損失することなく待ち時間なしで最新の有効なデータパケットにアクセスできるように、１のプロセス２が、メモリ１に格納されたデータパケットへの他のプロセス２のアクセスを制御するための方法が提案される。本方法は、２つ又は複数のプロセス２が同時にアクセス可能なメモリ１（デュアルポートＲＡＭ）にも、交互に、特に時分割多重方式によりアクセス可能なメモリ１（シングルポートＲＡＭ）にも適している。
【００２０】
以下では、本発明に係る方法を、図２及び図３を参照して詳細に解説する。本方法において、プロセスのうちの１のプロセス＃１、例えばＣＰＵは、他のプロセス＃２、例えば周辺モジュールがメモリ１へのアクセスに用いるアドレスバス３の一部を制御する。第１プロセス＃１によるアドレスバスの制御は、好適に、書き込み可能な制御レジスタ４を介して行なわれる。本発明にかかる方法は、双方のプロセス＃１、＃２（例えば、メモリ１にアクセス可能な全てのプロセス２）が待ち時間無くメモリ１にアクセスし得るという利点、データワードが損われないという利点、及び、高価なメモリ管理制御装置が必要とされないという利点を有する。
【００２１】
メモリ１に格納されたデータパケットは、全て同じ大きさである。有利に、データパケットは、２ｎメモリワードを含む。データパケットが同じ大きさでない場合は、データパケットは、２つの部分、即ち、固定の大きさを有するヘッダ部と、可変的な大きさを有する主要部とに分けられる。ヘッダ部の大きさは、好適に、２ｎメモリワードである。ヘッダ部は、同一のメモリ１又は他のメモリ内に存在しうる主要部を示すポインタを含む。データパケットは、少なくとも２つのバージョンＡ、Ｂとして、メモリ１に格納される。図２には、５ビット幅のベクトルによりアドレス指定される合計３２個のメモリワードを含むメモリ１内におけるデータ管理の例が示されている。メモリ１は、４個の（＝２２）のデータパケット（ｍ＝２）を含み、データパケットは、それぞれに２つ（＝２１）のバージョン（ｋ＝１）を含み、バージョンは、それぞれに４個（＝２２）のデータワード（ｎ＝２）を含む。
【００２２】
本発明にかかる方法において、第１プロセス＃１は、メモリ１の全ての部分にアクセスできる。さらに、第１プロセス＃１は、（アドレスバス３上の）アドレス信号であって、第２プロセス＃２がメモリ１へのアクセスに用いる当該アドレス信号を修正できる。このことは、同じ大きさのデータパケットへのアクセス、又は、データパケットがヘッダ部と主要部とに分けられている場合には、データパケットのヘッダ部へのアクセスに該当する。パケットの主要部へのアクセスは修正されない。
【００２３】
第２プロセスは、２ｎメモリワードを含む２ｍ個までのデータパケット（又は２ｍ個までのデータパケットのヘッダ部）のうちの１つにアクセスするが、第２プロセスは、長さ（ｍ＋ｎ）ビットのアドレスバス信号を生成する。アドレスバス３上のこのアドレスバス信号を介して、第２プロセス＃２は、特定のデータパケットの特定のデータワードに、又は、メモリ１内の対応する領域にアクセスできる。しかし、第２プロセス＃２は、このアドレスバス信号によっては、多重格納されたデータパケット、即ち、様々なバージョンのデータパケットを区別できない。様々なバージョンのデータパケットを区別するために必要な追加的なアドレスビットが、第１プロセス＃１により制御される制御レジスタ４から加わる。追加的なｋビットにより、２ｋ個の格納されたバージョンの特定のデータパケットが区別される。これにより、合計（ｍ＋ｎ＋ｋ）ビット長のアドレスバス信号５が生成される。その際、アドレス信号５内での３つのビット群の位置は任意である。その管理が図２に再現されているメモリ１には、上述したように、４個のデータパケット（ｍ＝２）が格納されており、データパケットは、２つの異なるバージョン（ｋ＝１）をそれぞれに有し、バージョンは、４個のデータワード（ｎ＝２）をそれぞれに有している。図２では、「データパケット」の欄が符号１０で、「バージョン」の欄が符号１１で、「メモリワード」の欄が符号１２で、「アドレス」の欄が符号１３で示されている。メモリ１にはまた、５ビット幅のベクトルを介してアドレス指定されうる合計３２個のメモリワードのための場所もある。アドレスはビット（ｍ＿ｋ＿ｎ）から構成される。
【００２４】
メモリ１に含まれるデータパケットごとに、ｋビット幅の２段式制御レジスタ４が存在し、当該２段式制御レジスタ４によって、第１プロセス＃１は、どのバージョンの所望のデータパケットに他のプロセス＃２がアクセス可能であるか（又は、アクセスすべきか）を調整することができる。レジスタ４は、好適に多段式により、好適には２段式により構成されている。記載された実施例では即ち、合計４個のｋビット幅の２段式レジスタ４が存在する。レジスタ４における２段は、符号６及び７で示される。第１プロセス＃１は、第２プロセス＃２がアクセスを許容される特定のバージョン１１のデータパケットを選択し、又は、次に利用可能なバージョン１１へと切り替えるための制御信号を与えることができる。第１プロセス＃１は、レジスタ４の第１段６に書き込むことができるが（符号２０）、レジスタ４の第２段７に書き込むことができない。第１プロセス＃１による第１段６への書き込みの後で、他のプロセス＃２が第２段７をロックしない（符号２２）場合には、第１段６からのデータは、好適に即時に第２段７に複写される（符号２１）。第２段７の出力は、アドレスバス信号５に挿入される（符号２３）。レジスタ４の第２段７がロックされている（ｖｅｒｒｉｅｇｅｌｔ）場合に、第１段６からのデータは、ロックの解除の後に初めて第２段７へ複写される。第１プロセス＃１も、修正されたアドレスバス信号を介して、メモリ１内のデータパケットにアクセスすることが構想できるが、ただしその場合には、第２プロセス＃２と同じバージョンにはアクセスしない。
【００２５】
本発明にかかる方法の運用において、第１プロセス＃１から第２プロセス＃２へと向かうデータパケットと、反対方向の第２プロセス＃２から第１プロセス＃１へと向かうデータパケットとは区別される。
【００２６】
まず、第１プロセス＃１から第２プロセス＃２へと向かうデータパケットについての、本発明にかかる方法のフローを記載する。最初に、第１プロセス＃１は、第２プロセス＃２がアクセス不可能な特定のバージョン１１の特定のデータパケット１０に、自身のデータを書き込み、その後直ぐに、当該バージョン１１のデータパケット１０に第２プロセス＃２のアクセスを切り替える。
【００２７】
データパケット１０を読み出す第２プロセス＃２は、最初に、当該データパケット１０のために制御レジスタ４の第２段７をロックし、その後、ブロック転送において、自身がアクセス可能なバージョン１１の該当するデータパケット１０（場合によっては、ヘッダ部と主要部）を読み出し、ブロック転送を終了するために第２段７のロックを解除する（２２）。
【００２８】
第１プロセス＃１の書き込みアクセス、及び、第２プロセスの読み出しアクセス＃２が時間的に重なる場合には、第２プロセス＃２は、より古いバージョン１１のデータパケット１０から、整合性のあるデータを読み出す。この動作は、第２プロセス＃２において時間駆動型の通信コントローラ（ＣＣ）３１（例えば、ＴＴＣＡＮ−ＣＣ、又は、ＦｌｅｘＲａｙ―ＣＣ）が関与している場合は、特に重要である。この場合は、データパケット１０が読み出される時点は、通信システム３３によって設定される。データパケット１０に対する通信コントローラ３１の読み出しアクセスにより、時間駆動型の通信システム３３では、第１プロセス＃１がその書き込みアクセスを終了するまで待機できない。
【００２９】
ここでは、第１プロセス＃１は、データのために設けられた書き込み領域に、第２プロセス＃２が当該データを読み出し得るほど速くは当該データを書き込まない、という前提から出発する。最適に、パケット・バージョン１１の最後の切り替えの後に、第２プロセス＃２が特定のメモリ領域からのデータを少なくとも１度は読み出したかについて、第２プロセス＃２が第１プロセス＃１にシグナリングするという選択肢がある。
【００３０】
データが第２プロセス＃２から第１プロセス＃１へと伝達される場合、最初に、第１プロセス＃１は、第２プロセス＃２から期待するデータを、第２プロセス＃２にとってアクセス不可能なバージョン１１のデータパケット１０から読み出し、その後直ぐに、当該バージョン１１のパケット１０への第２プロセス＃２のアクセスを切り替える。
【００３１】
データパケット１０を書き込む第２プロセス＃２は、最初に、当該パケット１０のために制御レジスタ４の第２段７をロックし（２２）、その後、ブロック転送において、パケット１０（場合によってはヘッダ部と主要部）を書き込み、ブロック転送を終了するために第２段７のロックを解除する。
【００３２】
第１プロセス＃１の読み出しアクセスと、第２プロセス＃２の書き込みアクセスとが、時間的に重なる場合には、第１プロセス＃１は、より古いバージョン１１のパケット１０から、整合性のあるデータを読み出す。第２プロセス＃２が新しいデータパケットを格納する時点が、第１プロセス＃１により管理されていない場合、この動作は特に重要である。
【００３３】
ここでは、第１プロセス＃１により読み出されていないデータがデータパケット１０の両バージョン１１に含まれることがないように、第１プロセス＃１が十分迅速にデータを読み出す、という前提から出発する。最適に、パケット・バージョン１１の最後の切り替え以降に、第２プロセス＃２が特定のデータパケット１０のデータを更新したか、及び、最後の切り替え以降にデータが複数回更新されたかについて、これらのことはデータ損失を意味しうるのだが、第２プロセス＃２が第１プロセス＃１にシグナリングすることが構想できる。
【００３４】
本発明にかかるメモリ管理方法は、通信システム（例えば、ＦｌｅｘＲａｙ、ＣＡＮ、ＴＴＣＡＮ）の通信加入者３２のハードウェア通信モジュール３１内の特にメッセージメモリのために利用可能である。他の周辺モジュールにおける適用も同様に可能であり有利である。
【図１】
0005497743.tif 000002
【図２】
0005497743.tif 000003
【図３】
0005497743.tif 000004
【図４】
0005497743.tif 000005