(57)【要約】 【目的】  簡単な構成及び制御で共有メモリを効率よくシェアアクセス可能なことを課題とする。【構成】  複数のデータ処理部１０，３０が共有メモリ２０をアクセスする共有メモリのアクセス方法であって、第１のデータ処理部１０は、自己がデータを書き込む際に、該書込データのサイズ情報ＷＤＬ又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリ２０に書込み、第２のデータ処理部３０は、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報ＷＤＬ又は時間情報を取得して前記第１のデータ処理部１０のデータ書込に要する時間を待って後、共有メモリ２０をアクセスする。【選択図】  図１
2005242929.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理部が共有メモリをアクセスする共有メモリのアクセス方法であって、第１のデータ処理部は、自己がデータを書き込む際に、該書込データのサイズ情報又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリに書込み、第２のデータ処理部は、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報又は時間情報を取得して前記第１のデータ処理部のデータ書込に要する時間を待って後、共有メモリをアクセスすることを特徴とする共有メモリのアクセス方法。
【請求項２】
複数のデータ処理部が共有メモリをアクセスするデータ処理装置において、自己がデータを書き込む際に、該書込データのサイズ情報又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリに書き込む第１のデータ処理部と、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報又は時間情報を取得して前記第１のデータ処理部のデータ書込に要する時間を待って後、共有メモリをアクセスする第２のデータ処理部とを備えることを特徴とするデータ処理装置。
【請求項３】
書込データのサイズ情報又はそのデータ書込に要する時間情報が第１のデータ処理部による共有メモリへのデータ書込に同期して、そのデータ書込に要する残りの時間が減少する方向に更新されるように構成したことを特徴とする請求項２記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は共有メモリのアクセス方法及びデータ処理装置に関し、更に詳しくは、複数のデータ処理部が共有メモリをアクセスする共有メモリのアクセス方法及びデータ処理装置に関する。
【０００２】
本発明は、ハードウェア処理部により共有メモリに書き込まれたデータ（ＩＰパケットデータ，ＳＤＨフレームデータ等）をソフトウェア処理部により演算処理（データ処理、パリティー検査処理等）するデータ通信装置等に適用して好適なるものである。
【背景技術】
【０００３】
一般に、回線を終端するハードウェア処理部とその受信データを処理するソフトウェア処理部との間では共有メモリ（共通のメモリ）を介してデータのやり取りが行われるが、もしソフトウェア処理部が共有メモリを参照している最中に、ハードウェア処理部がそのデータを更新し（書き替え）てしまうと、ソフトウェア処理部によるデータ処理は正しく行われない。
【０００４】
この点、従来は、１つのメモリを２つのＣＰＵ−Ａ，ＣＰＵ−Ｂが使用する場合に、ＣＰＵ−Ａがメモリを使用する時間を一定時間Ｔ以下に限定し、ＣＰＵ−Ｂはメモリを使用する前に、ＣＰＵ−Ａにメモリ使用要求信号を出力したのち、一定時間Ｔ以上ウエイトして、メモリを使用するところの、共有メモリ専有制御方式が知られている（特許文献１）。これにより、メモリアクセス調停用の専用のＣＰＵを用いないでも、２つのＣＰＵ−Ａ，ＣＰＵ−Ｂによるメモリアクセスの競合を有効に回避できる。
【特許文献１】特開昭６２−１１９６６２（要約）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記ＣＰＵ−Ｂが一定時間を待ってからメモリを参照する方法であると、可変長パケット等における一定時間Ｔ以上の長いデータの処理を適正に行えない。また、ＣＰＵ−Ａがメモリを使用していない時も、ＣＰＵ−Ｂは常に一定時間メモリアクセスを待ってしまうため、メモリのアクセス効率が悪い。
【０００６】
本発明は上記従来技術の問題点に鑑みなされたもので、その目的とする所は、簡単な構成及び制御で共有メモリを効率よくシェアアクセス可能な共有メモリのアクセス方法及びデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題は例えば図１の構成により解決される。即ち、本発明（１）の共有メモリのアクセス方法は、複数のデータ処理部１０，３０が共有メモリ２０をアクセスする共有メモリのアクセス方法であって、第１のデータ処理部１０は、自己がデータを書き込む際に、該書込データのサイズ情報ＷＤＬ又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリ２０に書込み、第２のデータ処理部３０は、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報ＷＤＬ又は時間情報を取得して前記第１のデータ処理部１０のデータ書込に要する時間を待って後、共有メモリ２０をアクセスするものである。
【０００８】
本発明（１）によれば、第１のデータ処理部１０は自己の書込データのサイズ情報ＷＤ
Ｌ又はそのデータ書込に要する時間情報を外部に出力すると共に、第２のデータ処理部３０は該情報を取得してデータ書込に要する時間を待つため、任意長の可変長データを扱うような共有メモリのシェアアクセスを効率よく行える。
【０００９】
本発明（２）のデータ処理装置は、複数のデータ処理部が共有メモリをアクセスするデータ処理装置において、自己がデータを書き込む際に、該書込データのサイズ情報又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリに書き込む第１のデータ処理部と、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報又は時間情報を取得して前記第１のデータ処理部のデータ書込に要する時間を待って後、共有メモリをアクセスする第２のデータ処理部とを備えるものである。
【００１０】
本発明（３）においては、上記本発明（２）において、書込データのサイズ情報又はそのデータ書込に要する時間情報が第１のデータ処理部による共有メモリへのデータ書込に同期して、そのデータ書込に要する残りの時間が減少する方向に更新されるように構成したものである。従って、第２のデータ処理部は、常に第１のデータ処理部がデータ書込に要するうちの最小の時間のみ待てばよく、よって共有メモリの使用効率が更に改善される。
【発明の効果】
【００１１】
本発明によれば、簡単な構成及び制御で共有メモリを効率よくシェアアクセス可能となり、アクセス調停の簡単化、コスト低減化に寄与するところが極めて大きい。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面に従って本発明に好適なる実施の形態を詳細に説明する。なお、全図を通して同一符号は同一又は相当部分を示すものとする。図１は第１の実施の形態によるデータ処理装置のブロック図で、パケット通信装置等における共有メモリとその周辺回路部の要部構成を示している。図において、１０は第１のデータ処理部、２０は共有メモリ、２１は書込データのサイズ情報ＷＤＬを保持するレジスタ（ＲＥＧ）、２２は共有メモリとして使用するデュアルポートメモリ（ＤＰＲＡＭ）、２３はデータ書込完了フラグＦＬＧを保持するフリップフロップ（ＦＦ）、３０は第２のデータ処理部、３１は第２のデータ処理部３０の主制御・処理を行うＣＰＵ、３２はＣＰＵ３１が実行するプログラム等を記憶している主メモリ（ＭＭ）、３３はＣＰＵ３１の共通バスである。
【００１３】
第１のデータ処理部１０は、例えばパケット通信網を終端するインタフェース回路からなっており、この例ではパケットデータの送受信機能を実現するような論理回路（ハードウェア構成）により構成されている。一方、第２のデータ処理部３０は、受信パケットデータの誤り検出／訂正処理等の、より高度・複雑な機能を実現するために、ＣＰＵを使用したソフトウェア構成により構成されている。なお、第１のデータ処理部１０は、より高度・複雑なインタフェース機能を実現するために、マイクロプロセッサ等を内蔵するソフトウェア構成としてもよいことは言うまでも無い。また、ＤＰＲＡＭ２２は通常のＲＡＭを使用してもよいが、ポートアクセスの説明の簡単のためにＤＰＲＡＭ２２を使用した例を説明する。次に上記構成を使用した第１の実施の形態による共有メモリのアクセス処理を詳細に説明する。
【００１４】
図２は第１の実施の形態による共有メモリアクセス処理のフローチャートで、ＣＰＵ３１により実行される。まずはじめに、第１のデータ処理部１０が受信して共有メモリ２２に蓄積した受信データを、第２のデータ処理部３０が検査する場合を説明する。図３にその動作タイミングチャートを示す。図３において、第１のデータ処理部１０は、外部よりパケットを受信すると、書込開始パルスＷＳＰを発生する。この時、自己の書込データのサイズ情報ＷＤＬを出力してその内容（例えば「４」）をレジスタ２１にセットする。引
き続き、ライトイネーブル信号ＷＥ１＝１（ＨＩＧＨレベル）を出力すると共に、各メモリアドレスＡＤ１（Ａ１〜Ａ４）に順次書込データＤＴ１（Ｄ１〜Ｄ４）を書き込む。そして、全データを書き込むと、ＷＥ１＝０（ＬＯＷレベル）にすると共に、書込終了パルスＷＥＰを出力する。この書込終了パルスＷＥＰはレジスタ２１のサイズ情報ＷＤＬを「０」にリセットすると共に、ＯＲゲート回路Ｏ１を介してＦＦ２３の書込終了フラグＦＬＧ＝１に強制セットする。
【００１５】
一方、この状態で、第２のデータ処理部３０では第１のデータ処理部１０によるデータ書込完了を待っている。即ち、ステップＳ１１ではデータ書込終了フラグＦＬＧ＝１か否かを判別し、ＮＯの場合はステップＳ１２で独自の処理要求有りか否かを判別する。ここで、独自の処理とは、受信パケットデータの検査処理（即ち、データ関連処理）とは無関係に、ＣＰＵ３１が独自に行いたい処理であって、任意タイミングに発生する該処理の要求は、共有メモリの空き時間を利用して効率よく満たされる。上記独自の処理要求も無い場合はステップＳ１１に戻り、ＦＬＧ＝１か否かを判別する。
【００１６】
次に、第１のデータ処理部１０により受信データがメモリ２２に書き込まれた場合のデータ関連処理を説明する。上記第１のデータ処理部１０によりメモリ書込完了フラグＦＬＧ＝１にされると、第２のデータ処理部３０ではこれをステップＳ１１の判別で検出し、フローはステップＳ１９に進む。ステップＳ１９では所定のデータ関連処理（受信データのパリティー検査処理等）を行う。ステップＳ２０ではメモリ２２を参照する他の独自の処理の処理待ちフラグＷＪＦ＝１か否かを判別し、この時点ではＣＰＵ独自の処理要求が無いのでステップＳ２２進み、メモリ書込完了フラグＦＬＧ＝０にリセットする。そして、ステップＳ１１に戻る。こうして、第１のデータ処理部１０がメモリ２２に書き込んだパケットデータは第２のデータ処理部３０によって速やかに検査される。
【００１７】
次に、共有メモリ２２が不使用中の（即ち、第１のデータ処理部１０によるデータ書込中でも第２のデータ処理部３０によるデータ関連処理中でもない）任意のタイミングｔ１に第２のデータ処理部３０の内部でＣＰＵ独自の処理要求が発生した場合のメモリアクセス処理を説明する。図４にその動作タイミングチャートを示す。この場合のステップＳ１１では書込完了フラグＦＬＧ＝０によりステップＳ１２に進み、ＣＰＵ独自の処理要求有りか否かを判別する。更に、処理要求があることにより、フローはステップＳ１３に進む。ステップＳ１３では、ＣＰＵ３１がデータサイズの読取パルスＬＲＰを出力し、レジスタ２１より書込データのサイズ情報ＷＤＬ（この例では「０」）を読み取る。ステップＳ１４では該サイズ情報ＷＤＬにメモリ２２の既知のデータ書込サイクル時間を掛けてデータ書込終了までの待ち時間を算出する。但し、この例では、この時点における書込データのサイズ情報ＷＤＬ＝０にリセットされているので、その待ち時間は略「０」である。ステップＳ１５では実質待ち時間「０」のタイマをスタートし、ステップＳ１６ではそのタイムアウトを待つ。
【００１８】
やがて、略待ち時間「０」がタイムアウトすると、ステップＳ１７では書込完了フラグＦＬＧ＝１か否かを判別する。この時点で書込完了フラグを検査するのは、もしこの時点で第１のデータ処理部１０が新たなデータの書込を完了していた場合には、書込完了フラグＦＬＧ＝１となっており、そのデータ関連処理を優先させるためである。但し、この例では、第１のデータ処理部１０によるデータの書込が行われていなかったため、書込完了フラグＦＬＧ＝０である。
【００１９】
これにより、フローはステップＳ２３に進み、ＣＰＵ３１は、自己がメモリ２２を一時的に占有するためにフラグセットパルスＦＳＰを出力する。これにより、書込完了フラグＦＬＧ＝１となり、もしこの時点で第１のデータ処理部１０が新たにデータ書込を開始しようとしても、該書込は第１のデータ処理部１０の内部で書込完了フラグＦＬＧ＝０とな
るまで待たされる。この状態で、ステップＳ２１ではＣＰＵ３１が独自のメモリアクセス処理を実行し、該処理を終了すると、ステップＳ２２で書込完了ＦＬＧ＝０にリセットする。こうして、メモリ２２の不使用中における任意タイミングｔ１に第２のデータ処理部３０の内部で発生したＣＰＵ独自の処理は、別段の待ち時間も無しに、効率良く実行される。
【００２０】
次に、第１のデータ処理部１０によるデータ書込中かもしれない任意のタイミングｔ２に第２のデータ処理部３０の内部でＣＰＵ独自の処理要求が発生した場合の処理を説明する。図５にその動作タイミングチャートを示す。この場合は、ステップＳ１３で読み取った書込データのサイズ情報ＷＤＬ＝４となるために、ステップＳ１４ではデータ書込４回分の書込時間又はそれ以上が計算され、ステップＳ１５，Ｓ１６では該書込待ち時間分、第２のデータ処理部３０によるメモリ２２へのデータアクセス（リード／ライト）処理が待たされる。
【００２１】
こうして、やがて、ステップＳ１６でタイマがタイムアウトすると、第１のデータ処理部１０によるデータ書込が終了していることが確実となる。ステップＳ１７では書込完了フラグＦＬＧ＝１か否かを判別する。そして、この場合の判別はＹＥＳとなるため、フローはステップＳ１８に進み、ＣＰＵ３１はＣＰＵ内部の処理待ちフラグＷＪＦ＝１にセットして、独自の処理を処理待ち状態にしておく。ステップＳ１９では、まず、データ関連処理を実行する。ステップＳ２０では処理待ちフラグＷＪＦ＝１か否かを判別し、この場合はＷＪＦ＝１であるので、ステップＳ２１では引き続きＣＰＵ独自の処理を実行する。そして、ステップＳ２２では書込完了フラグＦＬＧ＝０にリセットし、ステップＳ１１に戻る。こうして、データ関連処理とＣＰＵ独自の処理とが競合した場合でもデータ関連処理を優先させてそれぞれを効率よく実行できる。
【００２２】
このように、本第１の実施の形態では、第１のデータ処理部１０が共有メモリ２２にデータを書き込む場合、まず最初に書込データのサイズ情報（パケット長、フレーム長等）をレジスタ２１に格納しているので、第２のデータ処理部３０はレジスタ２１の内容を参照することによって第１のデータ処理部１０によるメモリアクセス完了時間を算出することができ、任意可変長データを扱う処理でも共有メモリ２２の効率よいアクセスが行える。
【００２３】
図６は第２の実施の形態によるデータ処理装置のブロック図で、上記第１の実施の形態におけるよりももっと効率よいメモリアクセスが可能となる場合を示している。図において、この例では上記図１のレジスタ２１に代えて、ダウンカウンタ（ＣＴＲ）２４を採用している。図７にこの場合の動作タイミングチャートを示す。なお、上記図２のフローチャートはそのまま使用できる。
【００２４】
図７において、カウンタ２４は、第１のデータ処理部１０により書込データのサイズ情報ＷＤＬ＝４をセットされて後、各データ書込パルスＷＰ１によって順次カウントダウンされる。従って、カウンタ２４は各時点における残りの書込データ数を保持すると共に４つのデータを書込終了した時点ではＷＤＣ＝０となっている。
【００２５】
本第２の実施の形態では、今、任意のタイミングｔ３でＣＰＵ独自の処理要求が発生したとすると、そのステップＳ１１では書込完了フラグＦＬＧ＝０によりステップＳ１２の処理に進み、更にステップＳ１３ではカウンタ出力ＷＤＣ＝２が読み取られる。この場合のＣＰＵ３１の待ち時間は、データ書込の２サイクル分でよく、よって上記図５の場合よりも合理的に短縮されている。このように、本第２の実施の形態によるメモリアクセスの待ち時間は、常にその時点の残りの書込データ数に応じた最短のものとなっており、よって共有メモリの使用効率が更に改善される。
【００２６】
なお、上記各実施の形態では、第１のデータ処理部１０は自己の書込データのサイズ情報ＷＤＬを外部に出力したが、これに限らない。自己のデータ書込に要する時間情報を求めてこれを外部に出力しても良い。
【００２７】
また、上記各実施の形態では、第２のデータ処理部３０が書込完了フラグＦＬＧ＝１の状態をポーリングしているが、これに限らない。第１のデータ処理部１０によるデータ書込完了によって、第２のデータ処理部３０のデータ関連処理に割り込み入力するように構成しても良い。
【００２８】
また、上記各実施の形態では、第１，第２のデータ処理部によるアクセス処理を説明したが、これに限らない。ＣＰＵバス３３にバスブリッジを介して更に上位のＣＰＵを接続すると共に、該上位のＣＰＵからも共有メモリをアクセス可能に構成しても良い。そのメモリアクセス処理は、上記図２で示したものの一部を使用できる。
【００２９】
また、上記本発明に好適なる複数の実施の形態を述べたが、本発明思想を逸脱しない範囲内で各部の構成、処理及びこれらの組合せの様々な変更が行えることは言うまでも無い。
【００３０】
（付記１）  複数のデータ処理部が共有メモリをアクセスする共有メモリのアクセス方法であって、第１のデータ処理部は、自己がデータを書き込む際に、該書込データのサイズ情報又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリに書込み、第２のデータ処理部は、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報又は時間情報を取得して前記第１のデータ処理部のデータ書込に要する時間を待って後、共有メモリをアクセスすることを特徴とする共有メモリのアクセス方法。
【００３１】
（付記２）  複数のデータ処理部が共有メモリをアクセスするデータ処理装置において、自己がデータを書き込む際に、該書込データのサイズ情報又はそのデータ書込に要する時間情報を外部に出力して該データを共有メモリに書き込む第１のデータ処理部と、自己が共有メモリをアクセスする際に、前記出力されたサイズ情報又は時間情報を取得して前記第１のデータ処理部のデータ書込に要する時間を待って後、共有メモリをアクセスする第２のデータ処理部とを備えることを特徴とするデータ処理装置。
【００３２】
（付記３）  書込データのサイズ情報又はそのデータ書込に要する時間情報が第１のデータ処理部による共有メモリへのデータ書込に同期して、そのデータ書込に要する残りの時間が減少する方向に更新されるように構成したことを特徴とする付記２記載のデータ処理装置。
【００３３】
（付記４）  第１のデータ処理部がデータ書込完了したことによりセットされ、かつ第２のデータ処理部によってリセットされるフラグを備え、前記第２のデータ処理部は前記フラグがセットされた事を検出して前記第１のデータ処理部により共有メモリに書き込まれたデータについての所定の処理を行うことを特徴とする付記２記載のデータ処理装置。
【図面の簡単な説明】
【００３４】
【図１】第１の実施の形態によるデータ処理装置のブロック図である。
【図２】第１の実施の形態による共有メモリアクセス処理のフローチャートである。
【図３】第１の実施の形態による共有メモリの動作タイミングチャート（１）である。
【図４】第１の実施の形態による共有メモリの動作タイミングチャート（２）である。
【図５】第１の実施の形態による共有メモリの動作タイミングチャート（３）である。
【図６】第２の実施の形態によるデータ処理装置のブロック図である。
【図７】第２の実施の形態による共有メモリの動作タイミングチャートである。
【符号の説明】
【００３５】
１０  第１のデータ処理部
２０  共有メモリ
２１  レジスタ（ＲＥＧ）
２２  デュアルポートメモリ（ＤＰＲＡＭ）
２３  フリップフロップ（ＦＦ）
２４  ダウンカウンタ（ＣＴＲ）
３０  第２のデータ処理部
３１  ＣＰＵ
３２  主メモリ（ＭＭ）
３３  共通バス
【図１】
2005242929.tif 000003
【図２】
2005242929.tif 000004
【図３】
2005242929.tif 000005
【図４】
2005242929.tif 000006
【図５】
2005242929.tif 000007
【図６】
2005242929.tif 000008
【図７】
2005242929.tif 000009