(57)【要約】【課題】デュアルポートメモリに対するアクセス調停として、一方のＣＰＵが連続アクセスして他方を待たせ続けるのを防止、アクセス権の切り替えでデータが破損されるのを防止する。【解決手段】一方のＣＰＵがデュアルポートメモリへのアクセス中に、他方のＣＰＵがチップセレクト信号を発生したときに、次サイクルのインアクティブ状態で他方のＣＰＵにデュアルポートメモリへアクセス権を切り替える。ＣＰＵはデュアルポートメモリにアクセスする前に、チップセレクトマスク信号を固定するイネーブルビット信号をセットしておき、デュアルポートメモリに対して連続アクセスした場合、チップセレクトマスク信号により他方のＣＰＵによるデュアルポートメモリへのアクセスを待たせることも含む。【選択図】　図２
2004086517.tif 000002
【特許請求の範囲】
【請求項１】
汎用のメモリＩＣで構成され、外部に調停回路を設けたデュアルポートメモリに対し、オプションモジュール上のローカルＣＰＵとＣＰＵモジュール上のＣＰＵとによる同時アクセスを調停回路で調停するデュアルポートメモリのアクセス調停方法であって、
一方のＣＰＵがデュアルポートメモリへのアクセス中に、他方のＣＰＵがチップセレクト信号を発生したときに、次サイクルのインアクティブ状態で他方のＣＰＵにデュアルポートメモリへアクセス権を切り替えることを特徴とするデュアルポートメモリのアクセス調停方法。
【請求項２】
汎用のメモリＩＣで構成され、外部に調停回路を設けたデュアルポートメモリに対し、オプションモジュール上のローカルＣＰＵとＣＰＵモジュール上のＣＰＵとによる同時アクセスを調停回路で調停するデュアルポートメモリのアクセス調停方法であって、
ＣＰＵはデュアルポートメモリにアクセスする前に、チップセレクトマスク信号を固定するイネーブルビット信号をセットしておき、デュアルポートメモリに対して連続アクセスした場合、チップセレクトマスク信号により他方のＣＰＵによるデュアルポートメモリへのアクセスを待たせることを特徴とするデュアルポートメモリのアクセス調停方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブル・コントローラに係り、特にデュアルポートメモリに対するアクセス調停方法に関する。
【０００２】
【従来の技術】
プログラマブル・コントローラ（ＰＬＣ）では、図５に要部構成を示すように、１つのバックプレーン・バス（以下バスと呼ぶ）に電源モジュール１、ＣＰＵモジュール２、各種機能モジュール（以下オプションモジュールと呼ぶ）３を実装して演算や伝送を行っている。
【０００３】
ＣＰＵモジュール２はバスに実装されているオプションモジュール３からデータ収集をして演算を行っている。このデータの収集は、主にオプションモジュール３上に実装されているＤＰＭ（デュアルポートメモリ）４に、ＣＰＵモジュール２がバスを介してアクセスする事により行われる。
【０００４】
ＤＰＭ４は、ＣＰＵモジュール２とオプションモジュール３のＣＰＵから同時にアクセスされることもあるため調停が必要となる。ＤＰＭ４には、チップレベルでのＤＰＭ（ＩＣチップ自身に調停回路が内蔵された物）があるが、価格面、部品改廃等の問題があるため、図示のように、汎用のメモリＩＣ（ＳＲＡＭ）を使い、外部にＦＰＧＡ等の調停回路５を設けたＤＰＭとすることもある。
【０００５】
調停回路５は、ＣＰＵモジュール２とオプションモジュールのＣＰＵ（以下ローカルＣＰＵと略す）６からの２つのチップセレクト信号のアクセスタイミングを基に動作する。例えば、特開平１０−８３３７３号公報に開示されるように、通常先にチップセレクトを出した方にＤＰＭ４のアクセス権が渡される。
【０００６】
例として、ＣＰＵモジュール２がＤＰＭ４をアクセス中（ＣＰＵモジュールのチップセレクトがアクティブ）で、ローカルＣＰＵ６がＤＰＭ４にアクセスを始めると、調停回路５はローカルＣＰＵ６に対しウェイト信号を出し、アクセスを待たせる。その後、ＣＰＵモジュール２のアクセスが終了し、ＣＰＵモジュール２のチップセレクトがインアクティブになると、ローカルＣＰＵ６に出していたウェイトを解除し、ローカルＣＰＵ６にアクセス権を渡す。
【０００７】
【発明が解決しようとする課題】
ＤＰＭとして、汎用のメモリＩＣを使った場合、以下の問題があった。
【０００８】
（課題１）調停回路５はＣＰＵモジュール２またはオプションモジール３のチップセレクトを用いてＤＰＭ４の調停を行っているが、どちらかのモジュールが連続でＤＰＭをアクセスすると、チップセレクトは連続的にアクティブとなるため、もう一方のモジュールにアクセスを待たせ続けることになる。
【０００９】
特に、ＣＰＵモジュール２または、ローカルＣＰＵ６が８０８６系のＣＰＵで、アドレス信号をデコードしてＤＰＭ４のチップセレクトを生成する場合、一方のモジュールにアクセスを待たせ続ける状態になりやすく、この場合は処理性能が低下してしまう。
【００１０】
（課題２）上記の（課題１）の問題を解消するため、一方のモジュールが連続してＤＰＭ４をアクセスした場合、１サイクル毎に毎回チップセレクトを一旦インアクティブにすれば、もう一方のモジュールにアクセスを待たせ続けることはなくなる。
【００１１】
しかし、ＤＰＭ４でＣＰＵモジュール２とオプションモジュール３がデータを共有する場合、そのデータが数バイトや数ワードで１つの意味を持つ場合、アクセスタイミングによっては全てのデータを更新する前にアクセス権が変わってしまう可能性が出てきてしまう。この場合異常動作に陥ってしまう。
【００１２】
本発明の目的は、上記の課題を解決したデュアルポートメモリのアクセス調停方法を提供することにある。
【００１３】
【課題を解決するための手段】
（１）本発明は、前記の課題１を解決するため、一定サイクルでチップセレクト信号を強制的にインアクティブにし、次のサイクルのスタートまでインアクティブ状態を保つことを利用し、一方のＣＰＵがチップセレクト信号を発生したときに次サイクルのインアクティブ状態で他方のＣＰＵにＤＰＭのアクセス権を切り替えるようにしたもので、以下の方法を特徴とする。
【００１４】
汎用のメモリＩＣで構成され、外部に調停回路を設けたデュアルポートメモリに対し、オプションモジュール上のローカルＣＰＵとＣＰＵモジュール上のＣＰＵとによる同時アクセスを調停回路で調停するデュアルポートメモリのアクセス調停方法であって、
一方のＣＰＵがデュアルポートメモリへのアクセス中に、他方のＣＰＵがチップセレクト信号を発生したときに、次サイクルのインアクティブ状態で他方のＣＰＵにデュアルポートメモリへアクセス権を切り替えることを特徴とする。
【００１５】
（２）本発明は、前記の課題２を解決するため、ＣＳマスク信号を「Ｌ」に固定するイネーブルビット信号を利用し、ＤＰＭにアクセスする前に、イネーブルビット信号をセットしておくことにより、ＤＰＭに対して連続アクセスした場合、他方のＣＰＵによるデュアルポートメモリへのアクセスを待たせるようにしたもので、以下の方法を特徴とする。
【００１６】
汎用のメモリＩＣで構成され、外部に調停回路を設けたデュアルポートメモリに対し、オプションモジュール上のローカルＣＰＵとＣＰＵモジュール上のＣＰＵとによる同時アクセスを調停回路で調停するデュアルポートメモリのアクセス調停方法であって、
ＣＰＵはデュアルポートメモリにアクセスする前に、チップセレクトマスク信号を固定するイネーブルビット信号をセットしておき、デュアルポートメモリに対して連続アクセスした場合、チップセレクトマスク信号により他方のＣＰＵによるデュアルポートメモリへのアクセスを待たせることを特徴とする。
【００１７】
【発明の実施の形態】
（実施形態１）
図１及び図２は、図５構成のプログラマブル・コントローラにおいて、本発明のアクセス調停方法の実施形態を示すタイムチャートである。
【００１８】
本実施形態は、前記の課題１「調停回路５はＣＰＵモジュール２またはオプションモジール３のチップセレクトを用いてＤＰＭ４の調停を行うため、どちらかのモジュールが連続でＤＰＭをアクセスすると、チップセレクトは連続的にアクティブとなるため、もう一方のモジュールにアクセスを待たせ続ける。」を解決する方法である。
【００１９】
図１において、ＡＳＴＢはローカルＣＰＵ６が出力するアドレスストローブ信号、ＡＳＴＢラッチはＡＳＴＢ信号をクロックの立ち上がりでラッチした信号、アドレス／データはローカルＣＰＵ６が時分割で出力するアドレスとデータ、デコードＣＳはＡＳＴＢラッチ信号が「Ｈ」のクロック立ち下がりでデコードしたＤＰＭ用チップセレクト信号である。
【００２０】
ＣＳマスクは、マシンサイクルＴ２〜Ｔ４で「Ｌ」となり、サイクルＴ１とアイドルｉおよびローカルＣＰＵによる内部アクセス時に「Ｈ」となる信号、内部ＣＳはデコードＣＳ信号とＣＳマスク信号をＡＮＤ（論理積）した信号であり、ＤＰＭの調停にはこの信号を使用する。ＤＰＭＣＳは、デュアルポートメモリのＣＳピンに接続する信号である。
【００２１】
図１では、ローカルＣＰＵは連続してＤＰＭに対してアクセスを行っている状態であり、デコードＣＳは「Ｌ」のままであるが、ＣＳマスクにより内部ＣＳおよびＤＰＭＣＳは期間Ａ，Ｂの間はインアクティブ（Ｈ）となっている。
【００２２】
このように、通常時には、次のアドレスに変化するまでチップセレクト信号は変化しないが、一定サイクルでチップセレクト信号を強制的にインアクティブにし、次のサイクルのスタートまでインアクティブ状態を保つ。
【００２３】
本実施形態では、上記のインアクティブ状態を利用し、一方のＣＰＵによるＤＰＭのアクセス権ロックを防止する。このタイムチャートは図２に示すようになる。
【００２４】
図２においては、ローカルＣＰＵは連続してＤＰＭに対しアクセスを行っている。このアクセス中に、ＣＰＵモジュールがＤＰＭに対しアクセス（ホストＣＰＵＣＳ信号）を始めたとき、既にローカルＣＰＵの内部ＣＳ信号がアクティブになっているため、ＣＰＵモジュールに対しホストＣＰＵＷＡｌＴ信号を出力し、ＣＰＵモジュールは待ち状態になる。
【００２５】
その後、デコードＣＳ信号は「Ｌ」のままだが、ＣＳマスク信号により、内部ＣＳが期間Ａでインアクティブ「Ｌ」となる。これによりＤＰＭ使用権はＣＰＵモジュールに与えられる。
【００２６】
その後、再び、内部ＣＳ信号がアクティブ「Ｌ」になった時には、ホストＣＰＵＣＳ信号はアクティブ「Ｌ」になっているため、ローカルＣＰＵにオプションＷＡＩＴ信号が出され、ローカルＣＰＵは待ち状態になる。
【００２７】
このように、本実施形態では、サイクル終了時に必ずチップセレクトをインアクティブにすることを利用して、ＤＰＭの使用権を交互に切り替える。
【００２８】
（実施形態２）
図３及び図４は、図５構成のプログラマブル・コントローラにおいて、本発明のアクセス調停方法の実施形態を示すタイムチャートである。
【００２９】
本実施形態は、前記の課題２「アクセス権を交互に切り替える場合、データが数バイトや数ワードで１つの意味を持つ場合、アクセスタイミングによっては全てのデータを更新する前にアクセス権が変わってしまい、この場合には異常動作に陥ってしまう。」を解決する方法である。
【００３０】
図３において、図１とは異なるイネーブルビット信号は、そのビット信号が「Ｌ」のとき、ＣＳマスク信号を「Ｌ」に固定する。すなわち、チップセレクトを強制的にインアクティブにする回路に、イネーブルビットを持たせる。
【００３１】
図３では、ローカルＣＰＵはＤＰＭに連続してアクセスを行っている。このとき、イネーブルビット信号がディスエーブル状態「Ｌ」になっているため、ＣＳマスクも「Ｌ」に固定され、よって、内部ＣＳおよびＤＰＭＣＳはアクセス間にインアクティブ「Ｈ」になることはない。
【００３２】
本実施形態では、ＤＰＭにアクセスする前に、イネーブルビット信号をセットしておくことにより、ＤＰＭに対して連続アクセスした場合、もう一方にアクセスを待たせる。なお、イネーブルビットがセット「Ｌ」された状態でも、ＤＰＭへのアクセスが連続でなければアクセス権は切り替わる。このタイムチャートは図４に示すようになる。
【００３３】
図４においては、ローカルＣＰＵは連続してＤＰＭに対しアクセスを行っている。このアクセス中にＣＰＵモジュールがＤＰＭに対しアクセス（ホストＣＰＵＣＳ信号）を始める。しかし、既にローカルＣＰＵの内部ＣＳがアクティブになっているため、ＣＰＵモジュールに対しホストＣＰＵＷＡＩＴが出力され、ＣＰＵモジュールは待ち状態になる。イネーブルビット信号がディスエーブル状態「Ｌ」になっているため、ＣＳマスクも「Ｌ」固定になる。
【００３４】
よって、期間Ａでは内部ＣＳはサイクル間にインアクティブ「Ｈ」になることはない。このためＤＰＭ使用権はローカルＣＰＵが保持し続ける。
【００３５】
このように、ＤＰＭ使用権はローカルＣＰＵが連続アクセスしている間は切り替わらない。これにより、データが数バイトや数ワードで１つの意味を持つ場合、ローカルＣＰＵが全てのデータを更新する前にアクセス権が変わってしまうのを防止する。
【００３６】
なお、イネーブルビットがセット「Ｌ」された状態でも、ＤＰＭへのアクセスが連続でなければアクセス権は切り替わり、他方のＣＰＵにアクセスを待たせ続けることはない。
【００３７】
【発明の効果】
以上のとおり、本発明によれば、一方のＣＰＵがチップセレクト信号を発生したときに次サイクルのインアクティブ状態で他方のＣＰＵにＤＰＭのアクセス権を切り替えるようにしたため、同時に２つのＣＰＵから連続アクセスされた場合にＤＰＭの使用権を一方が取りっぱなしとなることがなくなる。
【００３８】
また、本発明は、ＣＳマスク信号を「Ｌ」に固定するイネーブルビット信号をＤＰＭにアクセスする前にセットしておき、ＤＰＭに対して連続アクセスした場合、他方のＣＰＵによるデュアルポートメモリへのアクセスを待たせるようにしたため、データが数バイトや数ワードで１つの意味を持つ場合、全てのデータを更新した後、アクセス権の移動を起こすことができ、データ破損による異常動作を防止できる。
【００３９】
また、以上の調停方法によれば、ＤＰＭを同時に２つのＣＰＵからアクセスする場合、一方を極端に待たせることがなくなるため、システムとしての処理性能が向上する。
【図面の簡単な説明】
【図１】本発明の実施形態１を示すタイムチャート（その１）。
【図２】本発明の実施形態１を示すタイムチャート（その２）。
【図３】本発明の実施形態２を示すタイムチャート（その１）。
【図４】本発明の実施形態２を示すタイムチャート（その２）。
【図５】プログラマブル・コントローラの要部構成図。
【符号の説明】
１…電源モジュール
２…ＣＰＵモジュール
３…オプションモジュール
４…デュアルポートメモリ
５…調停回路
６…ローカルＣＰＵ
【図１】
2004086517.tif 000003
【図２】
2004086517.tif 000004
【図３】
2004086517.tif 000005
【図４】
2004086517.tif 000006
【図５】
2004086517.tif 000007