明 細 書
非同期データ伝送装置
技 術 分 野
この発明は、 2つのシステムコントローラ間またはスター型、 ツリー型ネッ トワークで連続したデータを間欠的に非同期伝送する場合に好適な非同期データ 伝送装置に関する。
背 景 技 術
2つのシステムコントローラ間でデータ伝送を行なう場合には、 ハードゥエ ァの同期および速度調整等をとるために、 これらコントローラ間には通常ノ ッフ ァ装置力 s '設けられている。
従来装置においては、 このバッファ装置は 1個設けられ、 一方のコントローラ からのアクセス力他方のコントローラのアクセスに対し優先させることで、 ァク セスの衝突に備えるようにしている。
しかし、 かかる従来構成では、 例えばシステムコントローラ Aからシステム コントローラ Bへのデータ転送を考えコントローラ Aのライト要求がコント口一 ラ Bのリード要求に優先すると設定した場合、 リードの途中にライト要求がきた ときには、 リードの前後でデータが異なることになり、 コントローラ Bはコント ローラ Aの同時刻および同内容のデータを取り扱えないという問題が究生する。 このことは、 デュアルポートメモリを使用してもシステムコントロ一ラ Aから システムコントローラ Bへ 1つのまとまったデータを転送する場合大きな問題で あり、 正確なデータ転送をなし得なくなる。
また、 この種のデータ転送においては、 通常システムコントローラ A. Bでそ れぞれ異なるシステムクロック力 s用いられており、 このため、 これら異なるシス テムクロックに同期して発生するコントロ一ラ Aのライ ト要求とコントロ一ラ B のリ一ド要求と力 s全く同時に発生することがあり、 このような場合同一メモリに ¾ "してライ トとリ一ドカ s衝突してしまう。
この発明はこのような事情に鑑みてなされたもので、 システムコントローラ間 ひとつのまとまつた大量のデータをハンドシェイクなしに正確かつ確実に伝送し 得る非同期データ伝送装置を提供しょうとするものである。
またこの発明は、 異なるシステムクロックが用いられる 2つのシステムコント ローラ間で正確かつ確実なデータ伝送をなし得る非同期データ伝送装置を提供し ようとするものである。
発 明 の 開 示
そこで第 1発明では、 第 1のシステムコントローラから第 2のシステムコント ローラへ非同期でデータを伝送する非同期データ伝送装置において、
前記第 1のシステムコントローラの出力データが書込まれるとともに、 この書 込みデータを前記第 2のシステムコントローラへ読出す第 1および第 2のメモリ と、 前記第 1のシステムコントローラの第 2のシステムコントローラへのデータ 伝送に対応して第 1のシステムコントローラの出力データを前記第 1および第 2 のメモリに対して交互に書き込むとともに、 前記第 2のシステムコントローラ力 データ受信を行うとき前記第 1および第 2のメモリのうちの直前にデータが書き 込まれた側のメモリを選択しこの選択したメモリからデータを読出す制御手段と を具えるとともに、
前記制御手段は、 前記書き込み動作の際第 2のシステムコントローラ力前記第 1または第 2のメモリに読み出し動作を行っているときはこの読み出し動作を行 つている逆のメモリに前記第 1のシステムコントローラの出力データを書き込む とともに、 前記読み出し動作の際第 1のシステムコントローラ力前記第 1または 第 2のメモリに書き込み動作を行っているときはこの書き込み動作を行っている 逆のメモリから読み出し動作を行うようする。
かかる第 1発明では、 転送するデータを保持するメモリを第 1のメモリ. 第 2 のメモリに 2重ィ匕する。 制御手段は、 第 1のシステムコントローラのデータ送 信動作および第 2のシステムコントローラのデ一タ受信動作に対応して、 以下の 論理に従ってアクセスするメモリを選択する。
.第 1のシステムコントローラのデータ伝送に対応して第 1のシステムコント ローラの出力データを第 1および第 2のメモリに対して交互に書き込む。 第 2の システムコントローラがデータ受信を行うとき第 1および第 2のメモリのうちの 直前にデ一夕が書き込まれた側のメモリからデータを読出す。 すなわち、 第 1の システムコントローラが書き込み動作を終了したら、 その書き込みを終了した側
のメモリから第 2のシステムコントローラの読み出し動作を行い、 次の第 1のシ ステムコントローラによる書き込み動作はその逆側のメモリに対して行う。
'書き込み動作の際、 第 2のシステムコントローラ力 s第 1または第 2のメモリ に読み出し動作を行つているときは、 この読み出し動作を行つている逆のメモリ に前記第 1のシステムコントローラの出力データを書き込む。
•読み出し動作の際、 第 1のシステムコントローラ力第 1または第 2のメモリ に書き込み動作を行っているときはこの書き込み動作を行っている逆のメモリか ら読み出し動作を行う。
このように第 1発明によれば、 2つのシステムコントローラ間のデータ伝送に おいて、 片方のシステムコントローラのアクセスを一時ウェイ トさせることがな くなるとともに、 データ力 s、各システムコントローラのアクセスの途中で相手側の アクセスのより途切れるといったことがなくなり、 エラ一のない正確なデータ伝 送を高速に成し得る。
また、 第 2発明では、 第 1のシステムコントローラからこの第 1のシス.テムコ ントローラの非アクセス時間より短いアクセス時間をもつ第 2のシステムコント ローラへデータを伝送する非同期データ伝送装置において、
前記第 1のシステムコントローラから出力されるデータを一時記憶する読み書 き可能な第 1のメモリと、 前記第 1のシステムコントローラの出力データまたは 前記第 1のメモリの一時記憶データが書込まれるとともに、 この書込みデータを 前記第 2のシステムコントローラへ読出す第 2のメモリと、 この第 2のメモリに 並列に傭えられ、 前記第 1のシステムコントローラの出力データまたは前記第 1 のメモリの一時記憶データが書込まれるとともに、 この書込みデータを前記第 2 のシステムコントローラへ読出す第 3のメモリと、
前記第 1のシステムコントローラの 1書込み周期に対応して第 1のシステムコ ントローラの出力データを前記第 2および第 3のメモリのうちのいずれか一方の メモリと前記第 1のメモリとに同時に書込む第 1の書込み制御と、 この第 1の書 込み制御終了後前記第 1のメモリに書込んだデータを前記第 1の書込み制御で書 込んだ一方のメモリの他方に書込む第 2の書込み制御とを行なう書込み制御手段 と、前記第 2のシステムコントローラの 1読出し周期に対応して前記第 2および
第 3のメモリのうちのいずれか一方からデータを読出して第 2のシステムコント ローラへ出力する読出し制御手段とを具えるようにする。
かかる第 2発明では、 転送するデータを保持するメモリを 2重ィ匕し (第 2のメ モリ. 第 3のメモリ) 、 かつデータを送信する側の第 1のシステムコント口 ーラとこれら第 2 , 第 3のメモリとの間に第 1のメモリを配するとともに、 これ ら第 2および第 3のメモリに対して第 1のシステムコントローラからデータを書 込むときは、 時間をずらせて 2回に分けて書込みを行なう。 すなわち、 1回目の 書込みのときは、 前記第 2および第 3のメモリのうちのいずれか一方と前記第 1 のメモリへデータを書込み、 2回目の書込みのときは前記第 2 , 第 3のメモリの うちの 1回目に書込まなかったメモリへ前記第 1のメモリのデータを書込むよう にして、 第 2および第 3のメモリに対して同一のデータを書込む。 また、 これら 第 2および第 3のメモリからデータを読出す際には、 第 2のシステムコントロー ラの読出し要求に応答して、 第 2および第 3のメモリのうちの書込みを行なつて いない側のメモリからデータ読出しを行なう。
このように第 2発明によれば、 メモリアクセス期間の異なるシステムコント口 —ラ間のデータ伝送において、 これらデータ伝送路間にメモリを 2重ィ匕して配し、 これらメモリへ一方のシステムコントローラからデータを書込むときは、 時間を ずらせて 2回にわけて書込みを行なうとともに、 他方のシステムコントローラ力 ら、 これらのメモリに読出しアクセスをするときは、 使用してない側のメモリか らデ一タを読出すようにしたので、 データが各システムコントローラのアクセス 周期の途中で途切れるといったことがなくなり、 これにより受信側のシステムコ ントロ一ラは送信側のコントローラの同時刻および同内容のデータを受信でき、 もってエラ一のない正確なデータ伝送をなし得る。
また第 3発明では、 それぞれ異なるシステムクロックが用いられている第 1の システムコントローラと第 2のシステムコントローラとのデータ伝送であって、 第 1のシステムコントローラからこの第 1のシステムコントローラの非アクセス 時間より短いアクセス時間をもつ第 2のシステムコントロ一ラへデータ伝送する 非同期データ伝送装置において、
前記第 1のシステムコントロ一ラから出力されるデータを一時記憶する読み書
き可能な第 1のメモリと、 前記第 1および第 2のシステムコントローラからのァ クセスに対して所定の優先順位力予め設定され、 前記第 1のシステムコント口一 ラの出力データまたは前記第 1のメモリの一時記憶データが書込まれるとともに、 この書込みデータを前記第 2のシステムコントローラへ読出す並列構成の第 2お よび第 3のメモリと、 前記第 1のシステムコントローラからの書込み要求の開始 に伴ない第 2のシステムコントローラによる第 2および第 3のメモリへのァクセ ス状態を少なくとも 3回、 時間をずらせて判定し、 少なくとも 3つの判^ §果を 得る第 1の判定手段と、
この第 1の判定手段の判 杲の多数決論理をとる多数決手段と、 この多数決 手段の出力および前記優先順位に基づき前記第 2および第 3のメモリのうちの前 記第 2のシステムコントローラがアクセスしていない力側のメモリを選択する第 1の選択手段と、 前記第 1のシステムコントローラからの書込み要求に応 して 前記第 1の選択手段の選択結果に対応するメモリおよび前記第 1のメモリへ第 1 のシステムコントロ一ラの出力データを同時に書込む第 1の書込み制御を行なう 第 1の書込み手段と、 前記第 1の書込み制御終了に伴ない前記第 2のシステムコ ントローラによる第 2および第 3のメモリへのアクセス状態を少なくとも 2回、 時間をずらせて判定する第 2の判定手段と、 この第 2の判定手段の判定結果に応 じて前記第 1の選択手段が選択したメモリの他方のメモリへ前記第 1のメモリの 記憶データを書込む第 2の書込み制御を行なう第 2の書込み手段と、 前記第 2の システムコントローラからの読出し要求の開始時点で第 1のシステムコント口一 ラまたは第 1のメモリからの書込みによる第 2および第 3のメモリへのアクセス 状態を判定する第 3の判定手段と、
この第 3の判定手段の出力および前記優 ¾1頃位に基づき前記第 2および第 3の メモリのうちの前記第 1のシステムコントローラがアクセスしていない側のメモ リを選択する第 2の選択手段と、 前記第 2のシステムコントローラからの読出し 要求に応 して前記第 2の選択手段の選択結果に対応するメモリから記憶デ一夕 を読出し第 2のシステムコントローラへ出力する読出し手段とを具えるようにす る。
かかる第 3発明によれば、 転送するデータを保持するメモリを 2重ィ匕し (第 2
のメモリ、 第 3のメモリ) 、 かつデータを^ f§する側の第 1のシステムコント口 ーラとこれら第 2、 第 3のメモリとの間に第 1のメモリを配するとともに、 これ ら第 2および第 3のメモリに対して第 1のシステムコントローラからデータを書 込むときは、 時間をずらせて 2回に分けて書込みを行なう (第 1の書込み制御、 第 2の書込み制御) 。
1回目の書込みのときは、 第 2のシステムコントローラによる第 2および第 3 のメモリへのアクセス状態を少なくとも 3回、 時間をずらせて判定し、 これら判 定結果の多数決をとることで、 第 2および第 3のメモリのうちの第 2のシステム コントローラがアクセスしていない側のメモリを選択し、 該選択したメモリと前 記第 1のメモリへデータを書込む。 2回目の書込みのときは、 前記 1回目の書込 み終了に伴ない第 2のシステムコントローラによる第 2および第 3のメモリへの アクセス状!^を少なくとも 2回、 時間をずらせて判定し、 これら判^ §杲が一致 した時点で 1回目の書込みでァクセスした第 2または第 3のメモリの他方側へ前 記第 1のメモリのデータを書込む。 このようにして、 第 2および第 3のメモリに 対して同一のデータを書込む。
また、 これら第 2および第 3のメモリからデータを読出す際には、 第 2のシス テムコントロ一ラの読出し要求に応答して第 1のシステムコントローラまたは第
1のメモリからの書込みによる第 2およぴ第 3のメモリへのアクセス状態を判定 し、 この結果に対応して前記第 2および第 3のメモリのうちの第 1のシステムコ ントローラがアクセスしていない側のメモリを選択し、 該選択したメモリからデ —タ読出しを行なう。
このように第 3発明によれば、 メモリアクセス期間が異なり、 かつ異なるシス テムクロック力 s用いられているシステムコントローラ間のデータ伝送において、 同一メモリ領域に対するアクセスの衝突を好適に回避することができ、 これによ り、 データ力 s各システムコントローラのアクセス期間の途中で途切れるといった こと力 sなくなり、 これにより受信側のシステムコントロ一ラは送信側のコントロ ―ラの同時刻および同内容のデ一タを受信でき、 もってエラ一のない正確なデ一 タ伝送をなし得る。
また第 4発明では、 第 1のシステムコントローラから、 この第 1のシステムコ
ントローラの非アクセス時間より長いアクセス時間をもつ第 2のシステムコント ローラへデータを伝送する非同期データ伝送装置において、
前記第 1のシステムコントローラの出力データ力書込まれるとともに、 この書 込みデータを前記第 2のシステムコントローラへ読出す第 1のメモリと、 この第 1のメモリに並列に備えられ、 前記第 1のシステムコントローラの出力データが 書込まれるとともに、 この書込みデータを前記第 2のシステムコントローラへ読 出す第 2のメモリと、 前記第 1および第 2のメモリのうちの一方の記憶データを 前記第 1および第 2のメモリのうちの他方へ書込むためのバッファ動作を行なう ノ ツファ手段と、 前記第 1のシステムコントローラのデータ転送要求に対応して 第 1のシステムコントローラの出力データを前記第 1および第 2のメモリのうち のいずれか一方のメモリに書込む 1回目の書込み制御と、 この 1回目の書込み制 御終了後該 1回目の書込み制御で書込んだデータを読み出し、 該読出したデータ を前記バッファ手段を介して前記 1回目の書込み制御で書込んだ第 1または第 2 のメモリの他方に書込む 2回目の書込み制御とを行なう書込み制御手段と、 前記第 2のシステムコントローラの読出し要求に対応して前記第 1および第 2 のメモリのうちのいずれか一方からデータを読出して第 2のシステムコント口一 ラへ出力する読出し制御手段とを具えるようにする。
前記第 1および第 2のメモリは、 前記第 1および第 2のシステムコントロ一ラ からのアクセスに対して所定の優先順位力 s予め設定され、 前記書込み制御手段は、 前記 1回目の書込み制御終了時点で前記第 2のシステムコントローラによる第 1 およぴ第 2のメモリへのアクセス状態を判定し、 2回目の書込み制御を開始する か待機するかを判定する第 1の判定手段と、 この第 1の判定手段から 2回目の書 込み制御開始の判定結果が出力されると 2回目の書込み制御を実行する第 1の書 込手段と、 前記第 1の判定手段から待機の判定結果が出力されると、 前記第 2の システムコントローラによるアクセス力終了するまで 2回目の書込みを待機する 第 1の待機手段と、 前記第 1のシステムコントローラからの転送要求の開始時点 で、 前記第 2のシステムコントロ一ラによる第 1および第 2のメモリへのァクセ ス状態および前記第 1の判定手段の出力を判定する第 2の判定手段と、
この第 2の判定手段から第 2のシステムコントローラカ非アクセス中である判定
結果が出力されると、 第 1および第 2のメモリのうちの前記優 位の高い側の メモリを選択して前記 1回目の書込み制御を行なう第 2の書込手段と、 前記第 2 の判定手段から 2回目の書込み制御力 機中である判 ¾^杲が出力されると、 2 回目の書込み制御をキャンセルし、 前記第 1および第 2のメモリのうちの第 2の システムコントローラがアクセスしていない側のメモリに対して前記 1回目の書 込み制御を行なう第 3の書込手段と、 前記第 2の判定手段から 2回目の書込み制 御を実行中である判定結果が出力されると、 この 2回目の書込み制御力終了する まで当該 1回目の書込み制御を待機させる第 2の待機手段とを具え、
前記読出し制御手段は、 前記第 2のシステムコントローラからの読出し要求の 開始時点で前記 1回目および 2回目の書込み制御の状態を判定する第 3の判定手 段と、 この第 3の判定手段の出力および前記優^) I頃位に基づき、 第 1のシステム コントローラが非ァクセス中のときは第 1および第 2のメモリのうちの前記優先 J頃位の高い側のメモリから、 また前記 1回目の書込み制御が行なわれているとき は第 1および第 2のメモリのうちの 1回目の書込み制御が行なわれているメモリ の逆側のメモリから、 また前記 2回目の書込み制御が行なわれているときは、 前 記第 1および第 2のメモリのうちの 2回目の書込み制御で読出しが行なわれてい る側のメモリから記憶データを読出し第 2のシステムコントローラへ出力する読 出手段とを具える。
かかる第 4発明においては、 転送するデータを保持するメモリを 2重ィ匕し (第 1のメモリ、 第 2のメモリ)、 かつデータを送信する側の第 1のシステムコント ローラとこれら第 1 . 第 2のメモリとの間に例えば多数のフリップフ口ップで構 成されたバッファ手段を配するとともに、 これら第 1および第 2のメモリに対し て第 1のシステムコントローラからデータを書込むときは、 時間をずらせて 2回 に分けて書込みを行なう。 すなわち、 1回目の書込みのときは、 前記第 1および 第 2のメモリのうちのいずれか一方へデータを書込み、 2回目の書込みのときは、 前記第 1および第 2のメモリのうちの 1回目に書込まなかったメモリを書込み可 能状態にしかつ他方のメモリを読出し可能状態とすることで、 1回目の書込みで 書込んだデータを前記バッファ手段を介して一方のメモリから他方のメモリへ転 送するメモリーメモリ転送を行なうことで、 これら第 1およぴ第 2のメモリに対
して同一のデータを書込むようにする。
また、 これら第 1および第 2のメモリからデータを読出す際には、 第 2のシス テムコントローラの読出し要求に応答して、 第 1および第 2のメモリのうちの書 込みを行なつていない側のメモリからデータ読出しを行なう。
また、 上記構成では、 2回目の書込み開始時、 書込みを行なおうとするメモリ に対して第 2のシステムコントロ一ラがアクセスしているときは、 このアクセス 終了まで待機し、 アクセス終了後 2回目の書込みを行なう (2回目の書込みのゥ エイト) 。 また、 第 1のシステムコントローラからデータ転送要求カ入力された 時点で前記 2回目の書込みを行なっているときは該 2回目の書込みが終了するま で 1回目の書込みを待機させ、 2回目の書込み終了後 1回目の書込みを開始する ようにする ( 1回目の書込みウェイト) 。
さらに、 第 1のシステムコントローラからデータ転送要求が入力されたときに 2回目の書込み力 s待機中の場合、 すなわち 2回目の書込みを行なおうとするメモ リへ第 2のシステムコントローラがアクセス中である場合は、 この待機中である 2回目の書込みをキャンセルし、 第 2のシステムコントローラがアクセスしてい ない領域に対して次の 1回目の書込み処理を行なうようにする (2回目の書込み のスキップ) 。
このように第 4発明によれば、 第 1のシステムコントローラからこの第 1のシ ステムコントローラの非アクセス時間より長いアクセス時間をもつ第 2のシステ ムコントロ一ラへデータを伝送する非同期データ伝送装置において、 これらデー 夕伝送路間にメモリを 2重化して配し、 これらメモリへ第 1のシステムコント口 —ラからデータを書込むときは、 時間をずらせて 2回にわけて書込みを行なうと ともに、 第 2のシステムコントローラから、 これらのメモリに読出しアクセスを するときは、 使用してない側のメモリからデータを読出すようにしたので、 デー 夕が各システムコントローラのアクセス周期の途中で途切れるといったことがな くなり、 これにより受信側のシステムコントローラは送信側のコントローラの同 時刻おょぴ同内容のデータを受信でき、 もってエラーのない正確なデータ伝送を なし得る。
図面の簡単な説明
第 1図はこの発明の第 1実施例を示すプロック図、 第 2図は第 1実施例のメモ リ分割の概念図、 第 3図は第 1実施例装置のコントロール回路の詳細回路図、 第 4図は第 1実施例装置の作用を示すタイムチャート、 第 5図はこの発明の第 2実 施例を示すプロック図、 第 6図は第 2実施例装置の内部回路構成の詳細プロック 図、 第 7図は第 2実施例装置の作用を概念的に示すタイムチャート、 第 8図乃至 第 1 0図はそれぞれ第 2実施例装置のより詳細な作用を説明するためのタイムチ ャ一ト、 第 1 1図はこの発明の第 3実施例を示すブロック図、 第 1 2図は第 3実 施例装置の内部回路構成の詳細ブロック図、 第 1 3図乃至第 1 5図は第 3実施例 装置の作用を概念的に示すタイムチヤ一ト、 第 1 6図乃至第 1 8図はそれぞれ第 3実施例装置のより詳細な作用を説明するためのタイムチヤ一ト、 第 1 9図はこ の発明の第 4実施例を示すブロック図、 第 2 0図乃至第 2 2図は第 4実施例装置 の作用を示すタイムチャート、 第 2 3図は第 4実施例のの変形例を示すブロック 図、 第 2 4図は該変形例の作用を説明するためのタイミングチャートである
発明を実施するための最良の形態
以下、 この癸明を添付図面に示す実施例にしたがつて詳述する。
第 1図はこの発明の第 1実施例の概念的構成を示すものである。
この第 1図に示す構成では、 システムコントローラ Aからシステムコントロー ラ (以下コントローラと略す) Bへデータを伝送する場合を想定している。 コン トロ一ラ 、 Bは全く非同期に動作している。
メモリ 1 0はコントローラ A, Bの双方からアクセス可能な書込み/読出し自 在のデュアルポートメモリ (D PM) であり、 この場合該デュアルポートメモリ のアドレス 「A」 の最上位ビット 「A L H」 、 又は 「A R H」 を Hか Lかにす ることで、 メモリ領域を第 2図に示すように H側およぴ L側に 2分割するように なっている。 コントローラ A側からアクセスするときは、 「A L H」 を H/ Lに することで H/ L側領域を選択し、 コントロ一ラ B側からアクセスするときは 「AR H」 を H/ Lにすることで H/ L側領域を選択する。 すなわち、 この場合 メモリ 1 0は謂ゆる 2重ィ匕された構成である。
第 1図中の各信号内容は以下のとおりである。 なお、 本明細書においては、 例 えば C S L—のように信号名の後に付したアンダーバー 「―」 は、 不論糊の論 理反転記号を示している。
A ; アドレス信号 (最上位アドレスは含まない)
D ;データ
W; ライト信号 ( 1データ単位)
R ; リード信号 ( 1データ単位)
C S L—;メモリ 1 0の左側 (コントローラ A) からのチップセレク ト端子 C S R—;メモリ 1 0の右側 (コントローラ B ) からのチップセレクト端子 ALH ;メモリ 1 0の最上位ァドレスビットであり、 左側 (コントローラ A 側 ) からメモリ 1 0を H/ L領域に 2分割するための信号端子 ARH ;メモリ 1 0の最上位ァドレスビッ トであり、 右側 (コントローラ B 側 ) からメモリ 1 0を H/ L領域に 2分割するための信号端子 PPCW—;コントローラ Aの一連のライ ト区間の間 「L (ロー) 」 を保持して レ、る。
CRCEN;コントローラ Bの一連のリード区間の間 「H (ハイ) 」 を保持して いる。
ALIO ;書き込みエリア選択信号 (Lのとき L領域を選択し、 Hのとき H領 域を選択)
AR10 ;読み出しエリア選択信号 (Lのとき L領域を選択し、 Hのとき H領 域を選択)
なお、 この場合は前述したようにコントローラ Aからコントローラ Bへの一方 向についてのみのデータ転送を問題としているため、 コントロ一ラ Aは書込みの みを、 コントローラ Bは読出しのみを行なう。 またこのデータ伝送においては、 1回ライ ト区間またはリ一ド区間の間に複数のデータを処理するようにしており、 このため PPCW—信号が Lである区間には複数のライ ト信号 W力 s存在し、 また同様 に CRCEN信号が Hである区間には複数のリ一ド信号 Rが存在する。
コントロール回路 2 0は、 コン トローラ Aから出力される PPCW—信号おょぴコ ントローラ Bから出力される CRCEN信号に基ずき、 メモリ 1 0の書込み/読出し
制御、 すなわち L側領域および H側領域に 2重化されたメモリ 1 0のアクセス領 域選択制御を行なうものであり、 その詳細構成を第 3図に示す。
コント口一ル回路 2 0によるメモリ 1 0に対しての書込み/読出し制御の論理 構成は以下の通りである。
論理 I
L側領域および H側領域に 2重化されたメモリ 1 0に対する書き込みは、 書 き込み開始時に読み出しカ?行われていない場合、 PPCW—信号の送出周期に対 応して、 L側領域→H側領域→L側領域→H側領域—…というように交互に 行う。 すなわち、 PPC _信号が送出された或るライ ト区間のとき H側領域が 選択されている場合は、 次のライト区間のときにはこれと逆の L側領域を選 択する。
論理 II
読み出しを行う時に書き込み力 s行われていないときには、 直前に書き込みを 行つた領域と同じ領域を選択し、 この選択した領域に対して読み出しを行う このためコントロール回路 2 0では、 直前に書き込みを行った領域を常に 記憶保持している。
論理 III
書き込みを行うときに既に読み出しを行なっているときは読み出しを行って いる領域の逆側領域に対して書き込みを行う。
論理 IV
読み出しを行うときに既に書き込みを行なっているときは書き込みを行って いる領域の逆側領域に対して読み出しを行う。
論理 V
例えば、 読み出し領域はシステムクロック SCK の立上がりで判断し、 書き込 み領域は同システムクロック SCK の立下がりで判断することで、 同時刻にお ける領域決定を防止するようにしている。
以上がコントロール回路 2 0の論理の概略である。
次に、 上記論理を具体ィ匕したコントロール回路 2◦内の各回路構成を第 3図に したがって説明する。
第 3図において、 コントローラ Aから入力されたのライ ト区間信号 PPCW—はフ リップフロップ (以下 F Fと略す。 ) 3 0に入力されており、 F F 3 0は PPCW— 信号をシステムクロック信号 S0( の立ち上がりでラッチする。 F F 3 0の出力は F F 3 1、 ゲート 3 2、 3 3などに入力される。 F F 3 0は F F 3 0の出力をク ロック信号 SCK の立ち上がりでラッチし、 その出力をゲート 3 2、 3 3に入力す る 0
ゲート 3 2では、 F F 3 0の反転出力と F F 3 1の出力のアンドをとることで、 PPCW—信号が Lに立ち下がった時、 短い所定時間の間 (正確にはシステムクロッ ク信号 SCK の 1周期の間) Hになるライ ト区間開始信号 WST を出力する。 ゲ一ト 3 3では、 F F 3 0の出力と F F 3 1の反転出力のアンドをとることで、 PPCW— 信号が Hに立ち上がった時、 短い所定時間の間 (正確にはシステムクロック信号 SCK の 1周期の間) Hになるライト区間終了信号 WED を出力する。
ゲート 3 4、 3 5、 3 6、 および F F 3 7からなる構成は、 ゲート 3 8〜4 0 からなる構成によつて選択する書き込み領域を示す信号 ( H/ L領域のうちの一 方を示す信号) をライト区間開始信号 WST が Hになったときにラッチし次のライ ト区間開始信号 WST が Hになるまでその値を保持する (ライト区間開始毎に書き 込み領域を決定する) ものであり、 F F 3 7からはメモリ 1 0の ALH端子に供給 される書き込みエリア選択信号 ALIOが出力される。 なお、 RST信号は、 電源投入 時に Hとなるリセッ ト信号である。
ゲート 3 8は ALIO信号の論理反転信号とコントローラ Bから入力されるリード 区間信号 CRCEN の論理反転信号のアンドをとり、 これをオアゲ一ト 4 0に入力す る。 ゲート 3 9は CRCEN信号と読み出しエリァ選択信号 AR10の論理反転信号との アンドをとり、 これをオアゲート 4 0に入力する。 すなわち、 この咅 [5分はコント ローラ Bのアクセス状態 (CRCEN信号) に応じてコントローラ Aの書き込み領域 を決定するところであり、 コントローラ B力非アクセス状態のときは (CRCEN信 号が L ) 、 コントローラ A力前回アクセスした領域の逆側の領域を選択し (ALIO 信号の論理反転)、 コントローラ Bがァクセス状態のときは (CRCEN信号が H) コントローラ Bの現時点のアクセス領域と逆側の領域を選択する (AR10信号の論 理反転) 。
さらにいえば、 前記各回路 3 4〜3 7およびゲ一ト 3 8、 4 0による構成力 s前 述の論理 I、 すなわち書き込み制御の際の H/ L領域の交互切り替え制御を実現 し、 ゲート 3 9力 s前述の ¾¾IIIを実現している。 そして、 これらゲート 3 8〜 4 0による書き込み領域の選択結果力書き込み開始時にゲ一ト 3 5によって選択 され、 さらにこの選択結果が F F 3 7を介して書き込みエリア選択信号 ALIOとし てメモリ 1 0のアドレス最上位ビット ALH に加えられる。
つぎに、 ゲート 4 1〜4 3および F F 4 4による構成は、 ゲート 4 2によって ライト区間終了信号 WEDが出力されたときの書き込みェリァ選択信号 ALIOを選択 し、 その他の回路 4 1、 4 3、 4 4でこの選択結果を保持することで、 前述の 理 IIにおける直前に書き込みを行つた領域の記憶保持、 を具体化している。
ゲート 4 5〜4 7および F F 4 8による構成は前述の論理 II、 IVを実現した部 分であり、 ゲート 4 5は ALIO信号の論理反転信号と F F 3 0の出力 (P CW—信 号) の論理反転信号のアンドをとり、 これをオアゲート 4 7に入力し、 ゲート 4 6は F F 4 4の出力と F F 3 0の出力 (P CW—信号) のアンドをとり、 これを オアゲート 4 7に入力する。
すなわち、 この部分は F F 3 0によって同期をとつたコントローラ Aのァクセ ス状態 (P CW—信号) に応じてコントローラ Bの読み出し領域を決定するとこ ろであり、 コントローラ Aが非アクセス状態のときは (P CW—信号が H) 、 直 前に書き込みを行った領域と同じ領域を選択し (F F 4 4の出力) 、 コント口 A一冊 ラ Aがアクセス状態のときは (P CW—信号が L) 、 コントローラ Aの現時点の アクセス領域と逆側の領域を選択する (ALIO信号の論理反転) 。 さらにいえば、 ゲート 4 6カ前述の論理 IIに対応し、 ゲート 4 5力 s前述の論理 IVに対応する。 F F 4 8はゲ一ト 4 7の出力を CRCEN信号の立上がりにラッチするようにしており、 これによりゲート 4 5〜4 7による読み出し領域の選択結果が読み出し動作の開 始時に F F 4 8に取り込まれ、 読み出しエリァ選択信号 AR10としてメモリ 1 0の ァドレス最上位ビッ ト ARH に加えられる。
なお、 、 コントローラ Bから入力される CRCEN信号はシステムクロック信号 SC K の立ち上がりで変化するよう同期がとられており、 このため、 F F 4 8によつ て読み出し領域はシステムクロック SCK の立上がりで判断される。 これに対し、
書き込み領域は F F 3 7によってシステムクロック SCK の立下がりで判断される。 これにより、 前述の論理 Vを実現している。
第 4図は、 PPCW—信号および CRCE 信号の各種状態 (a )〜 (ί ) に対応した H/ L領域の選 態様を示すタイムチャートである。 なお、 各信号の上に付した H、 Lは、 メモリ 1 0の選択された側の H/ L領域を示し、 矢印に付した I、 II、 III、 IVは前述した論理 I、 論理 II、 論理 III、 論理 IVに対応する。
例えば、 第 4図 (a ) において、 時刻 t Oにおいては、 コントローラ Aがメモリ 1 0の L側領域にアクセス中であるため、 コントローラ B側からのアクセス女す象 として H側領域が選択される (論理 IV) 。 時刻 t lについても同様であり、 論理 I Vによって H側領域が選択される。
時刻 t 2においては、 コントロ一ラ Aはメモリ 1 0を非アクセス中であるため、 直前の書き込み領域と同じ領域、 すなわちこの場合 L側領域がコントローラ B側 からのアクセス対象として選択される (論理 II) 。
時刻 1 3においては、 コントローラ Bはメモリ 1 0を非アクセス中であるため、 直前の書き込み領域の の領域、 すなわちこの場合 H側領域がコントローラ A 側からのアクセス対象として選択される (論理 I ) 。
時刻 t 4においては、 コントローラ Aがメモリ 1 0の H側領域にアクセス中であ るため、 コントローラ B側からのアクセス対象として L側領域力選択される (論 理 IV) 。
また、 第 4図 (b ) の時刻 t 5においては、 コントローラ Aがメモリ 1 0をァク セスするとき、 コントローラ Bがメモリ 1 0の H惻 域にアクセス中であるため、 コントローラ A側からのアクセス女豫として L側領域が選択される (論理 III) 。 以下同様にして、 論理 I〜IVのいずれかを用いてメモリ 1 0のアクセス領域が 決定される。
この第 1の実施例構成によれば、 第 4図からも明らかなように、 コントローラ Aおよびコントローラ Bは全く同期をとることなくコントローラ Aからコント口 ―ラ Bへのデ一タ伝送を好適になし得る。
なお、 上記実施例では、 メモリ 1 0は最上位ビットァドレスによって 2分割す る場合を示した力 s、 メモリの 2重化構成として、 最上位ビット以外のビットでメ
モリを 2分割するようにしてもよく、 さらに 2つの異なるチップから成るメモリ を用いるようにしてもよい。 また、 コントロール回路 2 0の論理構成も、 これら と同等の機能を達成するものであれば他の任意の論理構成としてもよい。
第 5図はこの発明の第 2実施例の概念的構成を、 第 6図はその詳略構成例を示 すものである。 ' 第 5図および第 6図において、 システムコントローラ A, Bは例えば産業機械 に備えられるものである。 システムコントローラ (以下コントローラと略す) A はこの場合産業機械自体を統轄管理するマスタコントローラで、 C P U . メモリ 等を備えた通常のコンピュ一タ構成である。 またシステムコントローラ Bは産業 機械各所に設置したセンサゃァクチユエ一夕とデータの授受を行うものである。
この第 5図に示す構成は、 コントローラ Aからコントローラ Bへデータを伝送 するための構成を示し、 コントローラ A , Bのメモリアクセス期間について言え ば、 コントローラ Aのメモリに対する非アクセス時間 TNA (この場合は非書込み 時間) がコントローラ Bのメモリアクセス期間 TB (この場合は読出し時間) よ り長いということが前提となっている。
すなわち、 正確に言えば、
システム Aの非アクセス時間 TNA〉
後ライトに要する時間 Td+システム Bのアクセス時間 TB となること力5'前提となっている。 (TNA,Td, TB、 第 7図参照) 。
メモリ 1 0はコントローラ A, Bの双方からアクセス可能な書込み/読出し自 在のデュアルポート R AMであり、 この場合アドレス 「A D」 の最上位ビッ ト
「A L HJ 、 又は 「A R H」 を Hか Lかにすることで、 メモリ領域を H側および
L側に 2分割するようになっている。 コントローラ A側からアクセスするときは、
「A L H」 を H/Lにすることで H/ L側領域を選択し、 コントローラ B側から アクセスするときは 「AR H」 を H/ Lにすることで H/ L側領域を選択する。
すなわち、 この場合メモリ 1 0は謂ゆる 2重ィ匕された構成であり、 該メモリ 1 0 の H側領域. L側領域には制御 πジック部 3 0の後述する制御によってコント口 ーラ Aの書込み周期毎に、 結果的に全く同一のデータ力書込まれるようになって いる。
なお、 この場合は前述したようにコントローラ Aからコントローラ Bへの一方 向についてのみのデータ転送を問題としているため、 コントローラ Aは書込みの みを、 コントローラ Bは読出しのみを行なう。
コントローラ Aと、 メモリ 10との間にはバッファ回路 20力設けられている。 ノ ッファ回路 20は、 コントローラ Aからメモリ 10へのデータ書込みのときに コントローラ Aの出力データ DTおよぴァドレス ADを一時記憶するとともに、 その後制御ロジック 30からの信号にしたがって一時記憶したデータをメモリ 1 0の H側領域および L側領域のいずれか一方に出力するものであり、 この場合は 2つの FI FO 20, 25 (先入れ先出し回路; First in First out) を用いて いる。 すなわち、 F I F020はコントローラ Aからのアドレスを記憶するもの で、 また F IFO 25はコントローラからのデータ言己憶するものである。
次に、 制御ロジック部 30の内部構成を説明する前に、 メモリ 10および FI F020, 25の信号入出力端子について説明する。
CSL—;メモリ 10の左側 (コントローラ A側) からのチップセレクト CSR一;メモリ 10の右側 (コントローラ B側) からのチップセレクト WL—;メモリ 10のライ トイネーブル信号
R—;メモリ 10のリードィネーブル信号
ALH;メモリ 10の最上位ァドレスビッ トであり、 左側 (コントロー ラ A側) からメモリ 10を H/L領域に 2分割するための信号 ARH;メモリ 10の最上位ァドレスビッ トであり、 右側 (コントロー ラ B側) からメモリ 10を H/L領域に 2分割するための信号 AD; ァドレス信号
DT;データ
WF—; F I FOのライ トイネーブル信号
EF一; F I FOが出力するデータェンプティフラグ; (F I F〇内に 記憶データがあるときは H、 F I F〇から記憶データを全て読 出した状態のときは L、 )
FR_; F I F〇のリードィネーブル信号
IN; F I FOのデータ入力端子
OUT; F I F〇のデータ出力端子
制御ロジック部 30は、 第 5図に示すようにコントローラ A, Bのコントロー ルバス CBに接続され (具体的にはコントローラ Aからの書込み要求信号 WR— とコントローラ Bの読出し要求信号 RDが入力される) 、 メモリ 10および FI F020, 25の書込み/読出し制御を行なうものであり、 第 6図に示すように 複数の回路 31〜45によって構成されている。 制御ロジック部 30の複数の回 路はフリップフ口ップゃ論理ゲート等のハードウエアで全てその論理が構成され ている。
以下、 制御ロジック部 30の各回路構成を説明する前に、 該制御ロジック部 3 0によるメモリ 10および FIFO20, 25に対しての書込み/読出し制御の 論理構成について簡単に説明する。
(1) まず、 メモリ 10は、 その書込み/読出しに関して L側領域のほうが H側領域より優^ JI頃位力 く設定してある。
(2) コントローラ Aから書込み要求信号 WR_が出力されると、 メモリ 1 0に対して 2回の書込みを時間をずらせて行なうことで、 メモリ 10 の H側領域および L側領域にコントローラ Aの同一データを書込む。
1回目の書込み (以下前ライトという) 時には、 メモリ 10の H側 領域および L側領域のいずれか一方と F I FO 25にデータを同時に 書込むとともに、 FIF020にアドレスを書込む。 メモリ 10の H /L側領域のいずれを選択するかについては、 コントローラ Aの WR —信号の送出開始時点でコントローラ B側の状態を判断し、 コント口 ーラ Bがメモリ 10の H/L領域のいずれかを読み出しアクセスして いるときは、 その逆側の領域に ¾ "して書込みを行ない、 またコント口 —ラ Bがメモリ 10にアクセスしていない場合は優 5¾1の L側領域に 対して書込みを行なう。
2回目の書込み (以下後ライ トという) 時には、 上述した前ライ ト のときに FIFO 25に書込んだデータと F I F〇 20に書込んだァ ドレスとを上記前ライト終了後、 即座に FI F025. 20から読出 し、 この読出しデータを F I FO 20から出力されるァドレスにした
がってメモリ 10の上記前ライ ト時に選択した領域と逆側の H/L領 域に書込む。 ただし、 この後ライト開始時、 FIF025からのデー タを書込むべき前記逆側の領域に対してコントローラ Bがアクセスし ているときは、 このコントローラ Bのアクセス終了まで待機し、 該ァ クセス終了後即座に後ライトを行なうようにする。
(3) コントローラ Bから読出し要求 RD—が出力されると、 この RD信号 の送出開始時点でコントローラ A側の状態を判断し、 コントローラ A がメモリ 10の H/L領域のいずれかを書込みアクセスしているとき は、 その逆側の領域から読出しを行ない、 またコントローラ Aがァク セスしていない場合は優^ |ljの L側領域から読出しを行なう。
(4)相手側コントローラの状態を判断する際、 例えばコントローラ B側の 状態はシステムクロック CKの立上がりで判断し、 コントローラ A側 の状態は同システムクロック C Kの立下がりで判断することで、 同時 刻における判断を防止するようにしている。
以上が制御口ジック部 30の論理の概略である 、 以下、 第 7図のタイムチヤ —トにしたがって、 第 5図の構成の動作について簡単に説明する。
第 7図において、 (a)はコントローラ Aからメモリ 10への書込み状態を、 (b) はコントローラ Bの読出し状態を、 (c)はコントローラ Aから FIFO20, 25 への書込み状態を、 (d)は後ライトを示すものであり、 ^ ff号においては、 Lが能 動である。 また、 ^(言号の上に付した H 、 Lは、 メモリ 10の H/L領域を示す。 時刻 tOにおいては、 コントローラ Bがメモリ 10の L側镇域にアクセス中であ るため、 コントローラ A側からのアクセス す象として H側領域力選択され、 この 結果、 時刻 tO〜時刻 t2の期間にはコントローラ Aのデータがメモリ 10の H側 領域に書き込まれ、 かつコントローラ Aのデータおょぴァドレス力 I FO 25 , 20に書き込まれる、 前ライ ト処理力 s行なわれる。 なお、 時刻 tl〜t3における コントローラ Bの読出し処理においては、 時刻 tlにおいてメモリ 10の H側領域 がコントローラ Aに占拠されているため、 コントローラ Bのアクセス対象として L側領域力 s選択されている。
次に、 コントローラ Aの前ライ トカ s終了した時刻 12においては、 後ライトを行
なおうとする L側領域はコントローラ Bによって占拠されている。 したがって、 制御ロジック部 3 0では、 コントローラ Bのアクセスが終了するまで待機し、 該 終了時点 (時刻 t 3) から後ライトを開始する。 後ライトは Td時間要する。
次に、 時刻 t 4〜t 5のコントローラ Bのアクセス期間においては、 メモリ 1 0 は H/ L領域の双方が空きであるため、 優先領域として設定された L側領域が 選択されている。
また、 その後の時刻 6におけるコントローラ Aのアクセス開始時点においても、 メモリ 1 0は H/L領域の双方が空きであるため、 コントローラ Aは優先側の L 側領域に対して前ライ トを行なう。 勿論、 これと同時に、 コントローラ Aのデ一 タおよびアドレスが F I F〇 2 5 , 2 0に書込まれる。
コントローラ Aの前ライトが終了した時刻 17においては、 後ライトを行なおう とする H側領域に してコントローラ Bがアクセスしていない。 したがって、 こ の場合は待時間なしに、 時刻 t 7から直ちに後ライト力行なわれている。 なお、 時 刻 t 8においては、 メモリ 1 0の H側領域に後ライ トが行なわれているため 、 コントローラ Bの読出し対象として L側領域が選択されている。
次に、 制御ロジック部 3 0内の各回路構成を第 6図にしたがって説明する。 な お、 この第 6図においては、 システムクロック C Kが各所に入力されているが、 要所のみその入力状態を示し、 それ以外は省略している。
コントローラ Aの書込み要求信号 WR一(第 8図 (a) ) は、 前ライト区間発生回 路 3 1およびゲート 3 2に入力されている。 なお、 前述のシステムクロック C K のパルス周期は書込み要求信号 WR—のパルス幅より十分短いものである。
前ライ ト区間発生回路 3 1は、 ワンショットマルチバイブレー夕回路、 フリッ プフロップ等で構成され、 書込み要求信号 WR—をシステムクロック C Kの立下 がりで み、 その後、 L状態を所定時間 TA保持する P P CW信号を形成し、 出 力する (第 8図 (b) ) 。 この P P CW—信号は、 その信号レベルが Lのとき、 コン トローラ Aがライ ト中 (すなわち前ライ ト中) 、 であることを示すフラグ信号で ゲート 3 2は P P CW一信号を遅延回路 5 0で所定時間遅延された出力と上記 WR一信号との各反転出力が入力され、 そのナンド出力を F I F〇 2 0 , 2 5の
WF—端子等に入力する (第 8図 (c))。 FIFO20, 25は WF—端子への入 力が Lのとき、 コントローラ Aから出力されるアドレス信号およびデータ信号を 該 FI FO 20, 25の記憶エリアにそれぞれ書込む。
前ライト終了^ Π回路 33は、 上記 P PC W—信号の Lから Hへの立上がりを 検知することで前ライ トの終了を示す WRED信号を出力する。
PFD—生成回路 34には、 F I FO 20からの EF—信号、 WRED信号お よびフィードバック信号が入力され、 その内部は複数の論理ゲート、 フリップフ ロップ等で構成されている。 EF—信号 (第 8図 (h)) は前述したように、 FIF 〇 20のェンプティフラグであり、 前述した前ライ ト、 後ライトカ ?行なわれてい る間は H状態にある。 ?0生成回路34は、 WRED信号の立上がり、 すなわ ち P P C W—信号の立上がりで立下がり、 E F—信号の立下がりで立上がる P F D—信号を形成する。 すなわち PFD—信号は、 前ライ ト終了時から後ライ ト終 了時までの間、 Lになる。 尚、 この PFD—信号はクロック CKの立下がりでラ ツチされる。
リード区間究生回路 35は、 フリップフロップであり、 コントローラ Bから出 力される読出し要求信号 R D—をシステムクロックの立上がりでラッチし、 コン トロ一ラ Bのリード区間信号 CORT_を出力する (第 8図ば))。 この CORT —信号はコントローラ Bがリード中の間、 その出力を Lに保持している。 この C 〇RT—信号は、 メモリ 10の CSR—端子および R—端子に入力される。 した 力つて、 CORT—信号が Lになっている期間には、 必ずメモリ 10の H/L側 領域のいずれかから記憶データ力読出される。 すなわち、 読出しに関しては待時 間は存在しない。
読出しの際、 H/L領域のいずれを選択するかは、 システム A側状態判断回路 38から出力される ARH信号 (第 8図 (n)) によって決定される。 このシステム A側状態判断回路 38の論理構成は、 後で詳述する力 その概略を簡単に述べて おく。 すなわち、 この判断回路 38の出力 ARHは、 CORT—信号が Lに立下 がるときの C S L—信号およぴ A L H信号の状態によって決定され、 その真理値 表を下記第 1表に示す。
第 1表
CSL. ALH ARH
H L L H L L L H 尚、 CSL—, ALHは CORT—が Lに立下がるときの状態である。
そして、 ARH信号が Hのときは、 メモリ 10の H側領域が選択され、 のと きはメモリ 10の L側領域が選択される。
システム B側状態判断回路 36は入力される C 0 R T—信号およぴ A R H信号 の状態に基づきコントローラ B側のアクセス状態を P P CW—信号が Lに立下が る時点に判断し、 この判断にす応してコントローラ A側がメモリ 10のどちらの 領域 (H/L領域) を選択するかを決定し、 その旨を示す信号 A 1 OHを出力 する (第 8図(1)) 。
すなわち、 信号 Al 0Hは、 PPCW—信号が Lに立下がるとき (前ライ ト開 始時) の C〇RT—信号および A RH信号の状態によって決定され、 その真理値 表は下記第 2表のようになる。 第 2表
CORT ARH A 1 OH
H L L H L L L H なお、 CORT—, ARHは PPCWが Lに立下がるときの状態である。
すなわち、 前述したように、 メモリ 10は L側領域が優先となっており、 この
ため、 前ライト開始時に COR T—信号が H、 すなわちコントローラ Bが非ァク セス中のとき、 Al 0H信号はメモリ 10の優先領域 (L領域) に対応して と なり、 また前ライト開始時に C OR T—信号が L、 すなわちコントローラ Bがァ クセス中のときには、 Al 0H信号は ARH信号の逆となり、 コントローラ Bが アクセス中の領域と逆の領域を選択する。
セレクタ 37は、 PPCW—信号および PFD—信号の状態に応じて A 1 OH 信号およびその反転信号を切替えて ALH信号として出力するものであり、 その 出力 ALHには、 PPCW_信号が Lのとき (前ライト中) は信号 A10Hの非 反転出力力 s選択され、 PFD—信号が Lのとき (前ライ ト終了時から後ライ ト終 了時まで) は信号 A 10Hの反転出力が選択され、 さらに PPCW—信号かつ P FD—信号が Hのときにはメモリ 10の優先領域に対応して Lが選択される。 す なわち、 このセレクタ 37によって後ライ ト時に前ライ ト時と逆側の領域を選択 するようにしている。 このセレクタ 37から出力される ALH信号はメモリ 10 の H側領域および L側領域を選択する A L H端子に入力される。
後ライト待条件生成回路 39は、 FI FO 20, 25からメモリ 10に対する 後ライ トが、 コントローラ Bのメモリ 10に対するアクセスによってウェイ トさ せられる条件の一部を生成するものであり、 CORT—信号, ARH—信号およ び A 10H信号を入力信号として、 PWT—信号を出力する (第 4図 (j)) 。 PW T—信号は下記第 3表に示すウェイ ト条件が成立したとき Lになる。 第 3表
CORT A 1 OH ARH PWT
L H L L
L L H L それ以外 H
すなわち、 上表におて A 1 OHの反転信号は後ライトのメモリ領域を表わして いるため、 1011と 1^ (コントローラ B側のアクセス領域) とが一致した ときであって、 かつ CORT—信号が Lのとき (ユントロ一ラ Bがアクセス中) に、 後ライ トを待たせる必要があるとして、 PWT—信号を Lにする。
この P WT—信号はゲ一ト 40に入力され、 P F D—信号の反転信号とのアン ドがとられ、 さらに反転された後 PFDE—信号として出力される (第 8図 (k)) 。 すなわち、 このゲート 40によって、 後ライト期間中にのみ Lになる PFDE— 信号が形成され、 出力される。 尚、 この PFDE—信号もクロック CKの立下が りでラツチしている。
この PFDE—信号は、 ゲート 41 , 43, 44に入力されている。 ゲート 4 1では、 P F D E—信号の反転信号と: P P CW—信号の反転信号とのノアをとり、 そのノア出力 CSLをメモリ 10の CS L端子に入力する。 すなわち、 ゲート 4 1によって、 前ライト時(PPCW_) と後ライト時(PFDE—) に CSL— 信号は Lとなり、 このときメモリ 10を左側からチップセレクトするようにする。
CSL—信号はシステム A側状態判断回路 38にも入力されている。 A側状態 判断回路 38は、 入力される CSL_信号おょぴ A LH信号に基づきコント口一 ラ A側のァクセス状態を C 0 R T—信号が Lに立下がる時点に判断し、 この判断 に対応して コントローラ B側がメモリ 10のどちらの領域(H/L領域) を選 択するかを決定し、 その選 ^果を示す信号 ARH信号を出力する (第 8図 (II)) 。 その真理値表は第 2表に示した通りである。 なお、 ARH信号は、 ALH信号と 同様、 Hのときメモリ 10の H側領域が選択され、 Lのときメモリ 10の L側領 域が選択される。
ゲート 43, 4 にはパルス発生器 42から若干位相のずれたパルス信号がそ れぞれ入力されており、 各ゲート 43, 44の他方端子に入力される PFDE— 信号によって前記パルス信号の通過、 遮断が切替えられる。 すなわち、 PFDE —信号が Lのときに、 各ゲート 43, 44からパルス発生器 42からのパルス出 力が出力される。
ゲート 43を通過したパルス信号は F I F020, 25の FR—端子に入力さ れる。 したがって、 FIFO20, 25からは前ライトのときに記憶したァドレ
スおよびデータが P F D E—信号が Lになったときパルス発生器の出力パルスに したがって出力される。 F I F020から出力されるァドレスはメモリ 10の A D端子に入力され、 FIF025から出力されるデータにメモリ 10の DT端子 に入力される。
一方、 ゲート 44を通過したパルス信号はゲート 45に入力される。 ゲート 4 5では、 ゲート 32の出力とゲート 44の出力のノアをとつて、 メモリ 10の W L—端子に入力する。 すなわち、 ゲート 45は、 前ライト中を示すゲ一ト 32の 出力 (PPCW—信号が Lである期間中の WR—信号、 前ライト中) と後ライ ト 中を示すゲート 44の出力 (PFDE—信号が Lである期間中のパルス発生器 の出力) とのノアをとることで、 前ライ ト、 後ライ トに必要なパルス列をメモリ 10の WL—端子に入力する。
なお、 この場合、 後ライ トはハ一ドウエア構成の F I F〇20, 25からの出 力制御であるため、 前ライ ト (PPCW— ) よりその長さ (PFDE_) 力極端 に短かくなつており、 この PFDE—信号が Lになっている期間中に WR—信号 と同じ数のパルス信号が出力される。 これは PFDE—が F I FOの出力する E F―、 前ライト終了検知信号 WRED、 後ライ ト待ち条件信号 PWT—により H になり、 常時パルス発生器 42からきているパルスをマスクする為である。 なお、 パルス発生器では F I F〇の FR―、 メモリ 10の WL—のもとになるゲ一ト 4 3、 44へのパルスの位ネ目、 デュ一ティ もコントロールしている。
以上が制御口ジック部 30の構成であり、 以下第 8図に示すタイムチャートに したがってその動作を説明する。
時刻 tlにおいて、 1発目の WR—信号がコントローラ Aから出力される (第 8 図 (a)) 。 前ライト区間発生回路 31は、 この 1発目の WR—信号の L状態をクロ ック CKの立下がりでトリガし、 その後所定時間 TAの間この L状態を保持する P PCW—信号を出力する (第 8図 (b)) 。 この PPCW—信号の遅延出力と WR— 信号のナンド出力がゲート 32を介して出力され、 この信号は FI FO20, 2 5の WF—端子に入力されるとともに、 ゲート 45を介してメモリ 10の WL— 端子に入力される (第 8図 (c)(e)) 。 WF— , WL—はそれぞれライ トイネーブ ル端子である。 これと同時に (時刻 tl) PPCW 信号はゲート 41を介してメ
モリ 10の CSL—端子 (第 8図 (d)) に入力され、左側からのチップセレクトが 可能な状態となる。 さらに、 これと同時に、 システム B側状態判断回路 36は、 PPCW—信号力立下がった時点 (時刻 tl) における CORT—信号および AR H信号の状態に基づきコントローラ B側の状態を判断し、 この判断結果に基づき メモリ 10の H/L領域のいずれを選択するかを示す信号を出力する。
この場合は、 時刻 tlにおいて CORT—信号は H, ARH信号は Lであるため、 優^ 11の L側領域が選択されるよう A 1 OH信号は Lになる (第 2表参照) 。 こ の Al 0H信号はセレクタ 37を介してメモリ 10の A LH端子に入力される。 この結果、 PPCW—信号が Lである時刻 tl〜時刻 t7の期間中は、 システムコ ントローラ Aの WR—信号に同期してコントロ一ラ Aのデータがメモリ 10の L 側領域に書込まれるとともに、 コントローラ Aのァドレスが F IF020に書込 まれ、 さらにコントローラ Aのデータが F I FO 25に書込まれる、 前ライ ト処 理が実行される。
なお、 この前ライ ト処理の期間中にも、 コントローラ Bのアクセス (読出し) は行なわれており、 システム A側状態判断回路 38では、 CORT—信号の各立 下がり時点 (時刻 12, t3, t . t5. t6) でコントローラ A側のアクセス状態 を判定し、 この判定結果に基づきコントローラ Bがアクセスすべきメモリ 10の 領域を選定している。 この場合、 前ライ トの期間中に、 コントローラ Aはメモリ 10の L側領域を選択しているため、 この前ライトの期間中におけるコントロー ラ Bのアクセス対象は、 ARH信号からも判るように、 H側領域となる (第 1表 その後、 前ライ ト処理が終了すると、 これは PPCW—信号の立上がりとし て前ライト終了検出回路 33で検出され、 該回路 33から WRED—信号が出力 される (時刻 t7) 。
この WRED_信号によって、 PFD生成回路 34から出力される: P FD—信 号は、 時刻 17で Lに立下がる。 セレクタ 37は、 前述したように、 PFD—信号 が Lの期間中は A 1 OH信号の反転信号を出力するため、 時刻 t7〜t9の期間中 ALH信号は Hとなる。
また、 この場合は、 後ライトを行なおうとするメモリ 10の H側領域 (A 10
H) に対してコントローラ B力 s読み出しアクセス中であるため待ち時間 (Tc) 力 s存在してる。 このため、 後ライ ト待条件生成回路 39およびゲート 40の構成 によって、 待ち時間 Tc力 在した後、 後ライトが開始される。 すなわち、 時刻 t 8に、 P F D E—信号は C 0 R T—信号の立上がりによって Lに立下がり、 その後 の時刻 9に P F D E—信号は E F—信号の立上がりに起因した P F D—信号の立 上がりによって Hに立上がる。 この時刻 t8〜t9の期間が後ライト期間であり、 この期間中 FI FO 20, 25の FR—端子 (リードイネ一ブル) には、 PFD E—信号によつてパルス発生器 42の出力パルスが入力されるとともに (第 8図 (d)) 、 メモリ 10の WL一端子 (ライ トイネーブル) には同パルス発生器 42の 出力パルス力'入力される。 さらに、 メモリ 10の CSL—端子も PFDE—信号 によってチップセレク ト状態となっている。
したがって、 この時刻 t8〜 t9の期間中には、 FIFO 20の出力、 すなわち、 前ライ トのときコントローラ Aから出力されたアドレス信号、 がメモリ 10 の AD端子に入力され、 かつ F I F025の出力、 すなわち、 前ライトのときコ ントロ一ラ Aから出力されたデータがメモリ 10の DT端子に入力され、 さらに このとき ALH端子は Hとなっているため、 結果的にメモリ 10の H側領域に前 ライト時にコントロ一ラ Aから出力されたデータ力 s書込まれることになる。 そし て、 この後ライ トの結果、 メモリ 10の L側領域と H側領域との記憶内容は全く 同一となる。 尚、 第 10図に後ライ ト期間における PFDE— , FR— . WL— の正確なタィムチャートの HIを示す。
第 9図は、 コントローラ Aからのアクセス周期 (PPCW— ) とコントローラ Bからのアクセス周期 (CORT— ) に関する他の例を示すものであり、 そ の基本的動作は第 8図に示したものと同じであるため、 説明は省略する。 この第 9図においても、 若干の後ライ トウエイ ト期間 Tcが存在している。
なお、 上記実施例では、 メモリ 1.0は最上位ビッ トアドレスによって 2分割す る場合を示した力 メモリの 2重化構成として、 最上位ビット以外のビットでメ モリを 2分割するようにしてもよく、 さらに 2つの異なるチップから成るメモリ を用いるようにしてもよい。 また、 制御ロジック部 30の論理構成も、 これらと 同等の機能を達成するものであれば他の任意の論理構成としてもよい。 さらに、
ノ ソファ回路としての F I F 0の代わりに、 通常のフリップフ口ップの集合体を 用いてもよい。
第 11図はこの発明の第 3実施例の概念的構成を、 第 12図はその詳略構成例 を示すものである。
第 11図および第 12図において、 システムコントローラ A, Bは例えば産業 機械に傭えられるものである。 システムコントローラ (以下コントローラと略す) Aは、 この場合産業機械自体を統轄管理するマスタコントローラで、 CPU. メ モリ等を備えた通常のコンピュータ構成である。 またシステムコントローラ Bは 産業機械各所に設置したセンサゃァクチユエ一夕とデータの授受を行なうもので める。
この第 1 1図に示す構成は、 コントローラ Aからコントローラ Bへデータを伝 送するための構成を示し、 コントローラ A, Bのメモリアクセス期間について言 えば、 コントローラ Aのメモリに対する非アクセス時間 Td (この場合は非書込み 時間) がコントローラ Bのメモリアクセス期間 TB (この場合は読出し時間) より 長いと言うことが前提となっている。
すなわち、 正確に言えば、
システム Aの非アクセス時間 TNA〉
後ライトに要する時間 Td+システム Bのアクセス時間 TB となることが前提となっている (第 14図 (a) , (j ) 参照) 。 後ライトにつ いては後述する。
なお、 この場合システムコントロ一ラ Aはシステムクロック CK Aによって動 作し、 またコントローラ Bはクロック CKBによって動作する。 これらのクロッ ク CKA. CKBは、 その周期、 位相等に関して全く異なっている。
メモリ 10はコントローラ A, Bの双方からアクセス可能な書込み/読出し自 在のデュアルポート RAMであり、 この場合アドレスの最上位ビット 「ALH」、 または 「ARH」 を Hか Lかにすることで、 メモリ領域を H側および L側に 2分 割するようになっている。 コントローラ A側からアクセスするときは、 「ALH」 を H/ Lにすることで H/ L側領域を選択し、 コントローラ B側からアクセスす るときは 「ARH」 を H/Lにすることで H/L側領域を選択する。 すなわち、
この場合メモリ 10はいわゆる 2重化された構成であり、 該メモリ 10の H側領 域、 L側領域には制御口ジック部 30の後述する制御によってコントローラ Aの 書込み周期毎に結果的に全く同一のデータ力 s書込まれるようになっている。 な お、 この場合は前述したようにコントロ一ラ Aからコントローラ Bへの一方向に ついてのみのデータ転送を問題としているため、 コントローラ Aは書込みのみを、 コントローラ Bは読出しのみを行なう。
コントロ一ラ Aと、 メモリ 10との間にはバッファ回路 20が、設けられている。 バッファ回路 20は、 コントローラ Aからメモリ 10へのデータ書込みのときに コントローラ Aの出力データ DTおよびァドレス ADを一時記憶するとともに、 その後この一時記憶したデ一タを制御口ジック咅 (530からの信号にしたがつてメ モリ 10の H側領域おょぴ L側領域のいずれか一方に出力するものであり、 この 場合は 2つの F I F020, 25 (先入れ先出し回路: First in First out) を 用いている。 すなわち、 FIF020はコントローラ Aからのアドレスを記憶す るもので、 また F I FO 25はコントローラからのデータを言己fするものである。 次に、 制御ロジック部 30の内部構成を説明する前に、 メモリ 10および FI F020. 25の信号入出力端子について説明する。
CSL一 メモリ 10の左側 (コントローラ A側) からのチップセレク ト CSR— メモリ 10の右側 (コントローラ B側) からのチップセレク ト
WL_ メモリ 10のライ トイネーブル信号
R— メモリ 10のリードイネ一ブル信号
ALH メモリ 10の最上位ァドレスビッ トであり、 左側 (コント口一 ラ A側) からメモリ 10を H/L領域に 2分割するための信号
ARH メモリ 10の最上位ァドレスビッ トであり、 右側 (コントロー ラ B側) からメモリ 10を H/L領域に 2分割するための信号
AD 了ドレス信号
DT データ
WF_ F I FOのライ トイネ一ブル信号
EF F I F〇が出力するデ一タエンプティフラグ: (F I F〇内に 記憶データがあるときは H. F I F〇から記憶デ一タを全て読
出した状^のときは L、 )
FR—: F I FOのリードイネ一ブル信号
IN : F IFOのデータ入力端子
OUT: F I FOのデータ出力端子
制御ロジック部 30は、 第 1 1図に示すようにコントローラ A, Bのコントロ —ルバス CBに接続され (具体的にはコントロ一ラ Aからの書込み要求信号 WR —とコントローラ Bの読出し要求信号 RD—が入力される) 、 メモリ 10および F I F020, 25の書込み/読出し制御を行なうものであり、 第 12図に示す ように複数の回路 31〜54によって構成されている。 制御ロジック部 30の複 数の回路はフリップフ口ップゃ論理ゲ一ト等のハードウエアで全てその論理が構 成されている。
以下、 制御ロジック部 30の各回路構成を説明する前に、 該制御ロジック部 3 0によるメモリ 10および FI F020, 25に対しての書込み/読出し制御の 論理構成について簡単に説明する。
(1) まず、 メモリ 10は、 その書込み/読出しに関して L側領域のほうが H側領域より優^)頃位:^高く設定してある。
(2) コントローラ Aから書込み要求信号 WR—が出力されると、 メモリ 1 0に対して 2回の書込みを時間をずらせて行うことで、 メモリ 10の H側領域および L側領域にコント口一ラ Aの同一デ一タを書込む。
1回目の書込み (以下前ライトという) 時には、 メモリ 10の H側 領域および L側領域のいずれか一方と F I F〇 25にデータを同時に 書込むとともに、 F I F020にァドレスを書込む。 メモリ 10の H /L側領域のいずれを選択するかについては、 コントローラ Aの WR —信号の送出開始時に、 コントローラ B側の状態を判断する。 そして この判断時点で既にコントローラ Bがメモリ 10の H/ L領域のいず れかを読出しアクセスしているときは、 コントローラ Aはその逆側の 領域に対して書込みを行ない、 またコントローラ Bがメモリ 10にァ クセスしていない場合は優先側の L側領域に対して書込みを行う。
2回目の書込み (以下後ライ トという) 時には、 上述した前ライ ト
のときに F I F025に書込んだデータと F I F〇20に書込んだァ ドレスとを上記前ライト終了後、 FIF025, .20から読出し、 F I F025から読出したデータを F I F020から出力されるァドレ スにしたがってメモリ 10の上記前ライ ト時に選択した領域と逆側の H/L領域に書込む。 ただし、 この後ライト開始時、 FIF025か らのデータを書込むベき前記逆側の領域に対してコントローラ Bがァ クセスしているときは、 このコントローラ Bのアクセス終了まで待機 し、 該アクセス終了後に後ライトを行なうようにする。
(3) コントローラ Bから読出し要求信号 RD— (リード区間の間、 Lにな つている) が出力されると、 この RD—信号の送出開始時点でコント ローラ A側の状態を判断し、 この判断時に既にコントローラ Aがメモ リ 10の H/L領域のいずれかを書込みアクセスしているときは、 そ の逆側の領域から読出しを行ない、 またコントローラ Aがアクセスし ていない場合は優先側の L側領域から読出しを行なう。
(4)相手側コントローラの状態を判断する際は、 次のような方式をとるこ とで、 同一時刻に相手側コントローラの状態をそれぞれ判断した場合 に発生するメモリ 10の同一領域に対する雨コントローラの同時ァク セスを防止するようにしている。
すなわち、 コントローラ A力 s前ライトを行なうときは、 相手側コン トロ一ラ Bのステータス判断に基づいて自コントロ一ラ Aがアクセス すべきメモリ領域 (H/L領域) を選定するための判断処理を複数回 、 例えば 3回、 時間をずらせて行なう。 そして、 これら 3つの異なる 時点における判断結果の多数決をとり、 該多数決の結果によってコン トロ一ラ A力実際にアクセスするメモリ領域を決定する。
例えば、 前記 3つの時点における判断結果が H, L, L (H; H側 領域を選択する。 L; L側領域を選択する) のときは多数決の結果は Lとなり、 コントローラ Aは L側領域をアクセスする。 また前記 3つ の判断結果が L. H, Hであるときは多数決の結果は Hとなりコント ローラ Aは H側領域をアクセスする。 なお、 3つの多数決をとるとい
うことは、 最初の判断結果のみでは多数決の結果は得られないという ことであり、 3つの多数^杲カ得られるためには少なくとも 2つの 判断結果が必要である。
すなわち、 前ライ ト時におけるコントローラ Aのメモリアクセス領 域は、 少なくとも 2回の判断結果が出た後に決定される。
上記多数決の結果は、 コントロ一ラ Aのメモリアクセス状態を示す フラグ信号として、 コントロ一ラ Bのリード時における相手側コント ローラ Aのステータス判断に使われる。 なお、 このフラグ信号は、 1 回目の判断結果が出されたときは、 この 1回目の判断結果に対応する 状態、となっている。
コントローラ Bによるメモリ 1 0のリード時には、 読出し要求信号 RD—の送出開始時点で 1回のみ前記フラグ信号に基づきコントロー ラ A側の状態を判断し、 この判断に応じて自コントローラ Bがァクセ スするメモリ領域を決定する。 なお、 前記 3つの異なる時点の判断に おける最初の判断時点で読出し要求信号 R D—が開始された場合は、 全く同時点における判断として、 コントロ一ラ Bに優先側の L側領域 をアクセスするように設定している。
以上が制御ロジック部 3 0の論理の概略である力?、 以下第 1 3図〜第 1 5図の タイムチャートにしたがって、 第 1 1図の構成の動作を各種場合について説明す る o
第 1 3図〜第 1 5図において、 (a ) はコントローラ Aから出力される書込み 要求信号 WR—から生成される P P CW 1—信号による前ライト区間を、 (b ) は前記 P P C W 1—信号による前ライト期間を遅延回路 4 0で遅延させた前ラィ ト区間を、 (c ) はクロック信号 c kを、 (d ) はコントローラ Bから出力され る読出し要求信号 R D_並びに読出し期間を、 (e ) は WR—信号の立下がり時 に相手側コントローラ Bの状態を判断して立てられるフラグ、 (ί ) は WR—信 号の立下がり時の半クロック c k後に立てられる前記と同じフラグ、 (g ) は W R一信号の立下がり時の 1クロック c k後に立てられる前記と同じフラグ、 (h ) はフラグ 1〜 3の多数決をとったフラグ、 ( i ) は前ライ トおよぴ後ラィ ト時に
選択するメモリ領域を決定するフラグ、 (j) は後ライ ト期間をそれぞれ示す。 なお、 (e) 〜 (g) に示したフラグ 1〜フラグ 3は、 前述したように前ライ ト時の相手側コントローラ Bのステ一タス判断に基づいて自コントローラ Aがァ クセスすべきメモリ領域を選択するための判断処理を、 3つの異なる時点に行な つた結果を示すものである。 また、 これら第 13図〜第 15図においては、 フラ グ信号以外の信号は Lが能動であり、 さらに各信号の上に付した H, Lはメモリ 1 0の選択された側の H/L領域を示している。
第 13図は、 前ライト開始時点にコントロ一ラ 13が既にメモリ 10をァクセ ス中である: 1 ^態を示している。
第 13図において、 時刻 tOにおいては、 コントローラ Bがメモリ 10の 側領 域にアクセス中であるため、 コントローラ A側のアクセス対象として H側領域が 選択され、 この結果、 時刻 tl〜時刻 3の期間にはコントローラ Aのデータがメ モリ 10の H側領域に書込まれ、 かつコントローラ Aのデータおょぴアドレスが F I F025. 20に書込まれる、 前ライト処理力行なわれる。 なお、 時刻 t2〜 t4におけるコントローラ Bの読出し処理においては、 時刻 2においてメモリ 1 0の H側領域がコントローラ Aに占拠されているため、 コントローラ Bのァクセ ス対象として L側領域が選択されている。
次に、 コントローラ Aの前ライ トカ終了した時刻 t3においては、 後ライトを行 なおうとする L側領域 (前ライ トの逆領域) はコントローラ Bによって占拠され ている。 したがって、 制御ロジック部 30では、 コントローラ Bのアクセス力 s終 了するまで待機し、 該終了時点 (時刻 t4) から後ライトを開始する。 時刻 t5に 後ライ トが終了する。
第 14図は、 コントローラ Aの WR—信号から生成する PPCW1—信号 (後 述) の立下がりとコントローラ Bの RD—信号の立下がりが同時 (時刻 tO) の場 合を示している。 この場合は、 相手側ステータスを同時に判断することになるが、 このときは 1回しか判断を行なわないコントローラ B側はコントロ一ラ Aのァク セスを示す PPCW1—信号が H (アクセスしていない) と判断するので、 優先 側の L側領域を選択することになる。
したがつて、 時刻 t 0からコントローラ Bは、 メモリ 10の L側領域に読出しァ
クセスを開始する。 他方、 時刻 t Oに相手側コントローラ Bの状態に基づき自 コントロ一ラ A側がアクセスしょうとするメモリ領域を選択した結果を示すフラ グ 1は、 時刻 10における相手側コントローラ Bの L領域に対するメモリアクセス を検知し得ないので Lのままである。 しかし、 半クロック後の時刻 t lになると相 手側コントローラ Bの状態、を^ Πできるので、 フラグ 2は時刻 1 1においてコント ローラ Bのメモリアクセス領域 Lと逆の Hに立上がる。 フラグ 3も同様であり、 時刻 t 2に Hに立上がる。 したがって、 これらフラグ 1〜フラグ 3の多数
決論理が出力される多数決フラグは時刻 2に Hに立上がる。 ライト領域選択フラ グは前ライ トのときは多数決フラグと同じ論理値となり、 後ライトのときは多数 決フラグの反転値となる。 したがって、 その後、 コントローラ Aから出力された データはメモリ 1 0の H側領域に書込まれる (時刻 t 3〜t 4) 。 勿論、 この時刻 t 3〜 t 4における前ライト期間には、 コントロ一ラ Aのデータおょぴァドレス力 F I F 0 2 5 , 2 0に書込まれる。 コントローラ Αの前ライトが終了した時刻 t 4においては、 後ライトを行なおうとする L側領域に対してコントローラ Bはァク セスしていない。 したがって、 この場合は待ち時間なしに時刻 から直ちに後ラ ィ トカ s行なわれる。
第 1 5図はコントローラ Aの WR—信号 (正確には P P CW 1—信号) の立下 がりの半クロック後と、 コントローラ Bの R D—信号の立下がり時が同時の場合 を示している。
時刻 t Oにおいては、 コントローラ Bはメモリアクセスを行なっていないので、 フラグ 1は時刻 1 0において優先側の Lとなっている。 この時刻 10から半ク口ッ ク後の時刻 1において、 コントローラ Bの読出し要求信号 R D—が Lに立下がり、 この時点で多数決フラグ及びコントロ一ラ Aのアクセスを示す P P CW 1—信号 と後ライトに基づき相手側コントローラ Aの状態が判断される。 この場合、 時刻 t lにおいて多数決フラグは Lであり、 P P CW 1—信号が Lであるため、 コント ローラ Bの読出し対象領域として多数決フラグと逆の H領域力 s選択され、 この結 杲時刻 t l〜t 3の期間、 メモリ 1 0の H側領域からコントローラ Bによる読出し 力 s '行なわれる。
他方、 時刻 t lにおいて、 コントローラ Bは H側領域を選択しているため、 時刻
tl, 2でその判断動作を行なうフラグ 2、 フラグ 3は Lのままである。 し たがって多数決フラグも Lを維持し、 この結果、 時刻 t2から前ライ トがメモリ 1 0の L側領域に対して開始される。 コントローラ Aの前ライトカ s終了した時刻 t 4においては、 後ライトを行なおうとする H側領域に対してコントローラ Bはァク セスしていない。 したがって、 この場合も、 第 14図と同様、 時刻 t4から直ちに 後ライ トカ s行なわれる。
次に、 制御ロジック部 30内の各回路構成を第 12図にしたがって説明する。 なお、 この第 12図においては、 システムクロック CK力各所に入力されている せ、 要所のみその入力状態を示し、 それ以外は省略している。
コントローラ Aの書込み要求信号 WR— (第 16, 17図 (a) ) は、 前ライ ト区間発生回路 31およびゲート 41に入力されている。 なお、 前述のシステム クロック C Kのパルス周期は書込み要求信号 WR—のパルス幅より十分短いもの でめる。
前ライ ト区間発生回路 31は、 ワンショッ トマルチバイブレータ回路、 フリツ プフロップ等で構成され、 書込み要求信号 WR—をシステムクロック CKの立下 力 りで:^み、 その後、 L状態を所定時間 TA保持する: PPCW1—信号を形成し、 出力する (第 17図 (b) ) 。 すなわち WR—信号はコントローラ Aの 1書込み 期間中 TA (第 16図参照) にコントローラ Aから多数個 j頃次出力される力 これ ら WR—信号が出力されている期間に対応して P P CW 1—信号は Lとなってい る
この P P C W 1—信号はシステム B側状態断面回路 32等に入力されている。 システム B側状態判断回路 32は、 ゲート 33と 5つの D型フリップフロップ 34〜38と多数決回路 39とで構成されている。 PPCW1—信号はフリップ フロップ 34の D端子に入力されることで P P CW 1—信号がク口ック信号 C K の半周期 (半クロック) だけ遅延された PPCW2—信号 (第 17図 (c) ) が フリップフロップ 34から出力される。 この PPCW2—信号はさらにフリップ フロップ 36に入力されることで P P CW 1—信号がクロック CKの 1周期 (1 クロック) だけ遅延された P P CW 3—信号 (第 17図 ( d ) ) がフリップフ口 ップ 36から出力される。 すなわち、 PPCW2 PP CW3 信号は PPC
Wl—信号を半クロックずつ遅延したものであり、 PPCW1—信号、 PPCW 2_信号、 PPCW3—信号はそれぞれフリップフロップ 35. 37, 38のク ロック端子に入力されている。 これらフリップフロップ 35, 37, 38の D端 子にはゲート 33の出力 SB L A力入力されている。
ゲート 33は、 システムコントローラ Bの読出し要求信号 RD—およびシステ ム A側状態判断回路 47の出力 ARHの各反転出力のアンドをとることで、 シス テム B側の状態を判断し、 この判断に ¾"応してコントローラ A側がメモリ 10の どちらの領域 (H/L領域) を選択すべきかを判定し信号 SB LAを出力する。 なお、 この SBLA信号はコントローラ A側がメモリ 10のいずれの H/L領域 を選択するかを決定するための判断材料としての性質をもつものである。
ARH信号は、 コントローラ Bによる読出しの際、 コントローラ Bが H/L領 域のいずれを選択するかを示すものであり、 該 ARH信号を出力するための論理 構成は後で詳述する。 なお、 ARH信号が Hのときはメモリ 10の H側領域力選 択され、 Lのときは L側領域が選択される。
すなわち、 ゲート 33およびフリップフロップ 35による構成は、 RD—信号 および A R H信号の状態に基づきコントローラ B側のアクセス状態を P P C W 1 —信号が Lに立下がる時点に判断し、 この判断に対応してコントローラ A側がメ モリ 10のどちらの領域(H/L領域) を選択するかを判定し、 その判 ¾ ^果を 示す信号 ABC 1を出力する (第 17図 (e) ) 。 すなわち、 信号 ABC 1は、 PPCW1—信号が Lに立下がるときの R D—信号および A R H信号の状態によ つて決定され、 その真理値表は下記第 4表のようになる。 第 4表
RD ARH ABC 1
H L L H L L L H
なお、 RD— , ARHは PPCW1—が Lに立下がるときの状態を示している。 すなわち、 前述したように、 メモリ 10は L側領域力 ί優先となっており、 この ため、 前ライト開始時に RD—信号が Η、 すなわちコントローラ Β力非アクセス 中のとき、 ABC 1信号はメモリ 10の優先領域 (L領域) に対応して Lとなり、 また前ライ ト開始時に RD—信号が L、 すなわちコントローラ Bがアクセス中の ときには、 ABC 1信号は ARH信号の逆となり、 コントローラ Bがアクセス中 の領域と逆の領域を選択しょうとする。
また、 フリップフロップ 37はゲ一ト 33の出力 SBLAを PPCW2—信号 の立下がり時点、 すなわち PPCW1—信号の立下がりの半クロック後にラツチ し、 ABC2信号として出力する (第 17図 (f) ) 。 フリップフロップ 38は ゲ一ト 33の出力 SBLAを PPCW3—信号の立下がり時点、 すなわち P PC W 1—信号の立下がりの 1クロック後にラッチし、 ABC 3信号として出力する (第 17図 (g) ) 。
すなわち、 フリップフロップ 35, 37, 38はゲート 33の出力を半クロッ クずつずれた 3つの異なる時点にラッチすることで、 コントローラ Bの状態を 3 回、 時間をずらせて判断し、 これら各判断に対応してコントローラ A側力 ί選択す べきメモリ領域 (H/L領域) を示すフラグ信号 ABC 1 , ABC2, ABC 3 を出力する。
これらフラグ信号 ABC 1〜ABC 3は多数決回路 39に入力され、 該多数決 回路 39でこれら入力信号の多数決論理がとられる。 すなわち、 多数決回路 39 は、 これら入力信号 ABC 1〜ABC 3の各時点における多数決をとり、 該多数 決をとつた結果を A 1 OH (第 16図 (1) 、 第 17図 (p) ) を出力するもので あり、 例えばある時点に ABC 1〜ABC 3力、 L, L. Hのときは Lが出力さ れ、 またある時点に ABC 1〜AB C 3が L, H, Lのときは Lが出力され、 さ らに同様に、 H, H, Lのときは Hが出力される。
他方、 PPCW3—信号は遅延回路 40に入力され、 ここで数クロック CK分 の時間遅延された後ゲ一ト 41に入力される。 ゲート 41は、 コントロ一ラ A力 らの WR一信号と上記 PPCW 3—信号の遅延出力の各反転出力のナンドをとり、 該出力を F I F020, 25の WF 端子に入力する (第 16図 ( e ) 、 第 17
図 ϋ ) ) 。 なお、 前述したように、 システムクロック CKのパルス周期は WR —信号のパルス幅より十分短いものであり、 このため、 WR一信号を数クロック 分遅延した遅延回路 40の出力と WR—信号とがゲ一ト 4 1に入力されることに よって、 WR—信号の一発目のパルスが消されることはない (第 17図参照) 。 上記遅延回路 40は前ライト時メモリ 1 0の ALH端子にセレクタ 50の出 力力 λ力されるまでの時間をかせぐためのものである。 F IFO20, 25は^ F—端子への入力が Lのとき、 コントローラ Αから出力されるアドレス信号およ ぴデ一タ信号を該 F I F020, 25の記憶ェリ Ύにそれぞれ書込む。
前ライ ト終了検知回路 42へは、 PPCW1—信号と PPCW3—信号が入力 され、 これら入力信号に基づき前ライト終了時を規定する。 この場合は、 PPC W 1—信号の立上がり時と P P CW 3—信号の立上がり時の中間時刻、 すなわち PPCW2—信号の立上がり時を前ライ ト終了時としており、 この時点で前ライ ト終了信号 WR E Dを出力する。
PFD—生成回路 43には、 F I FO 20からの EF—信号、 WRED信号お よびフィードバック信号が入力され、 その内部は複数の論理ゲート、 フリップフ ロップ等で構成されている。 EF—信号 (第 1 6図 (h) 、 第 17図 (m) ) は 前述したように、 F I FO 20のェンプティフラグであり、 前述した前ライ ト、 後ライ トカ行なわれている間は H状態にある。 PFD—生成回路 43は、 WRE D信号の立上がり、 すなわち PPCW2—信号の立上がりで立下がり、 EF—信 号の立下がりで立上がる PFD—信号を形成する。 すなわち PFD_信号は、 前 ライ ト終了時から後ライ ト終了時までの間、 Lになる。
セレクタ 50は、 PPCW1—信号および PFD—信号の状態に応じて A 10 H信号およびその反転信号を切替えて ALH信号として出力するものであり、 そ の出力 ALHには、 PPCW1—信号が Lのとき (略前ライ ト中) は信号 A 10 Hの非反転出力が選択され、 PFD—信号が Lのとき (前ライ ト終了時から後ラ ィ ト終了時まで) は信号 A 10Hの反転出力が選択され、 さらに PPCW1—信 号および PFD—信号が Hのときにはメモリ 1 0の優先領域に対応して L力選択 される。 すなわち、 このセレク夕 50によって後ライト時に前ライ ト時と逆側の 領域を選択するようにしている。 このセレクタ 50から出力される ALH信号は
メモリ 10の H側領域および L側領域を選択する ALH端子に入力される。
次に、 コントローラ Bから出力される読出し要求信号 RDは、 直接メモリ 10 の CSR—端子および R—端子に入力されている。 したがって、 RD—信号が L になっている期間には、 必ずメモリ 10の H/L領域のいずれかから記憶データ 力読出される。 すなわち、 読出しに関しては待ち時間は存在しない。 読出しの際、 H/L領域のいずれを選択するかは、 システム A側状態判断回路 47から出力さ れる ARH信号 (第 16図 (n)、 第 17図 (o) ) によって決定される。 この システム A側状態判断回路 47の論理構成は、 後で詳述する力5'、 その概略を簡単 に述べておく。 すなわち、 この判断回路 47の出力 ARHは、 RD—信号が Lに 立下がるときの C S L—信号および A L H信号の状態によつて決定
され、 その真理値表を下記第 5表に示す。 第 5表
CSL ALH ARH
H L L H L L L H なお、 CSL— , A LHは RD—が Lに立下がるときの状態を示している。 そして、 ARH信号が Hのときは、 メモリ 10の H側領域力選択され、 のと きはメモリ 10の L側領域が選択される。
後ライト待条件生成回路 44は、 FI FO 20. 25からメモリ 10に対する 後ライ ト力 s、 コントローラ Bのメモリ 10に対するアクセスによってウェイ トさ せられる条件の一部を生成するものであり、 RD—信号、 ARH信号および A1 0H信号を入力信号として、 : PWT一信号を出力する (第 16図 ( j ) ) 。 : PW T—信号は下記第 6表に示すウェイ ト条件が成立したとき Lに
なる。
第 6表
RD A 1 OH ARH PWT
L H L L
L L H L
それ以外 H すなわち上表において、 Al OHの反転信号は後ライ トのメモリ領域を表わし ているため、 A10Hの反転と ARH (コントローラ B側のアクセス領域) とが 一致したときであって、 かつ RD—信号が Lのとき (コントローラ Bがアクセス 中) に、 後ライ トを待たせる必要があるとして、 PWT—信号を Lにする。
この PWT—信号はフリップフロップ 45, 46の D端子に入力されている。 フリップフロップ 45のクロック端子にはシステムクロック C Kの反転信号力入 力され、 またフリップフロップ 46のクロック端子にはシステムクロック CKの 非反車云信号力入力されており、 したがって、 これらフリップフロップ 45, 46 によって PWT—信号を半クロック CKずれたタイミングで 2回ラツチし、 それ らの出力をゲ一ト 48に入力している。
ゲート 48では、 PFD—信号の反転信号とフリップフロップ 45. 46の各 出力のアンドをとり、 その反転信号を PFDE—信号として出力する (第 16図 (k) 、 第 17図 (1) ) 。 すなわち、 このゲート 48によって、 後ライ ト期間 中にのみ Lになる PFDE—信号力形成され、 出力される。
この PFDE—信号は、 ゲート 49, 52, 53に入力されている。 ゲート 4 9では、 PFD E—信号の反転信号と P P C W 1—信号の反転信号とのノアをと り、 そのノア出力 CSL—をメモリ 10の CSL—端子に入力する。 すなわち、 ゲート 49によって、 前ライ ト時 (PPCW1— ) と後ライト時 (: PFDE— ) に CSL一信号は Lとなり、 このときメモリ 10を左側からチップセレクトする ようにする。
CSL一信号はシステム A側状態判断回路 47にも入力されている。 A側状態
判断回路 47は、 前述したように入力される C S L—信号および A L H信号に基 づきコントローラ A側のアクセス状態を R D_信号が Lに立下がる時点に判断し、 この判断に対応してコントローラ B側がメモリ 10のどちらの領域 (H/ L領域) を選択するかを決定し、 その選 ^^果を示す信号 ARH信号を出力する (第 16 図 (n) ) 。 その真理値表は第 5表に示した通りである。 なお、 ARH信号は、 ALH信号と同様、 Hのときメモリ 10の H側領域力選択され、 Lのときメモリ 10の L側領域が選択される。
ところで、 このシステム A惻状態判断回路 47は、 第 5表にも示すように L側 領域を優先としており、 このため R D—信号の立下がりでコントローラ A側力 s非 アクセス中だと判断した場合 (CSL—信号が H) 、 即、 L側領域に対してァク セスするようになつている。 したがって、 コントローラ Aの後ライ トが L側領域 であるとするときに、 コントローラ Bからの読出し要求信号 R D—の立下がりと 後ライ トの開始が同時になつた場合、 同じ L側領域に対して読出しと後ライ トが 行なわれる可能性がある。 これを防止するために、 2個のフリップフロップ 45, 46を設け、 該フリップフロップ 45, 46によって PWT—信号を時間をずら せて、 2ィ固ラッチし、 これらラッチ信号をゲート 48に入力するようにしている。 ゲート 52, 53にはパルス発生器 5 1から若干位相のずれたパルス信号がそ れぞれ入力されており、 各ゲート 52, 53の他方端子に入力される PFDE— 信号によって前記パルス信号の通過、 遮断が切替えられる。 すなわち、 PFDE —信号が Lのときに、 各ゲート 52, 53からパルス発生器 51からのパルス出 力が出力される。
ゲ一ト 52を通過したパルス信号は F I FO 20, 25の FR—端子 (第 16 図 (d) ) に入力される。 したがって、 F I F020, 25からは前ライトのと きに記憶したァドレスおよびデータが P F D E—信号が Lになったときパルス発 生器 51の出力パルスにしたがって出力される。 F I FO 20から出力されるァ ドレスはメモリ 10の AD端子に入力され、 F I FO 25から出力されるデータ はメモリ 10の DT端子に入力される。
一方、 ゲート 53を通過したパルス信号はゲ一ト 54に入力される。 ゲ一ト 5 4では、 ゲート 41の出力とゲ一ト 53の出力のノアをとつて、 メモリ 10の W
L—端子に入力する。 すなわち、 ゲート 54は、 前ライトを示すゲート 41の出 力と後ライト中を示すゲート 53の出力とのノアをとることで、 前ライト、 後ラ ィ トに必要なパルス列をメモリ 10の WL—端子に入力する。
なお、 この場合、 後ライトはハードウェア構成の FIFO20, 25からの出 力制御であるため、 前ライト (PPCW1―〜 PPCW3— ) よりその長さ (P FDE— ) が極端に短くなつており、 この PFDE—信号が Lになっている期間 中に WR—信号と同じ数のパルス信号が出力される。 これは PFDE—が F I F 0の出力する EF―、 前ライト終了検知信号 WRED、 後ライト待ち条ィ 言号 P WT—により Hになり、 常時パルス発生器 42からきているパルスをマスクする 為である。 なお、 パルス発生器では F I FOの FR―、 メモリ 10の WL—のも とになるゲート 43、 44へのパルスの位相、 デューティもコントロールしてい る o
: Lhが制御口ジック咅 |530の構成である。
次に、 第 16図に示すタイムチャートにしたがって、 制御ロジック部 30の全 体的動作について説明する。 なお、 この第 16図に関する動作説明は、 時間に関 しては必ずしも厳密でない。
時刻 tlにおいて、 一癸目の WR—信号がコントローラ Aから出力される (第 1 6図 (a) )。 前ライ ト区間発生回路 31は、 この一発目の WR—信号の L状態 をクロック CKの立下がりでトリガし、 その後コントロ一ラ Aがアクセスしてい る所定時間 T Aの間この L状態を保持する P P C W 1—信号を出力する。 この PP CW1—信号はフリップフロップ 34, 36によって 1クロック分遅延され、 さ らに遅延回路 40によって数クロック分遅延された後ゲ一ト 41に入力される。 ゲート 41には WR—信号も入力されている。 ゲート 41の出力は F I FO 20, 25の WF—端子に入力されるとともに、 ゲート 54を介してメモリ 10の WL 一端子に入力される (第 16図 (c) , (e) )。 WF—, WL_はそれぞれラ イトネーブル端子である。 これとほとんど同時に (略時間 tl) PPCW1—信号 はゲ一ト 49を介してメモリ 10の CS L一端子 (第 16図 (d) ) に入力され、 左側からのチップセレクトが可能な状態になる。
さらに、 これと同時に、 システム B側状態判断回路 36は、 PPCW1 〜P
P CW 3—信号がそれぞれ立下がつた時点における R D—信号および A R H信号 の状態に基づいた多数決論理によってコントローラ B側の状態を判断し、 この判 断結果に基づきメモリ 10の H/L領域のいずれを選択するかを示す信号を出力 する。 この場合は、 時刻 tl近傍において RD—信号は H, ARH信号は Lである ため、 優先側の L側領域が選択されるよう A 1 OH信号は乙になる。 この A10 H信号はセレクタ 50を介してメモリ 10の ALH端子に入力される。 この結果、 時刻 11〜時刻 17の期間中は、 システムコントローラ Aの WR—信号に同期して コントローラ Aのデータがメモリ 10の L側領域に書込まれるとともに、 コント ローラ Aのアドレスが F I F〇 20に書込まれ、 さらにコントローラ Aのデータ が FI FO 25に書込まれる、 前ライト処理が実行される。
なお、 この前ライ ト処理の期間中にも、 コントローラ Bのアクセス (読出し) は行なわれており、 システム A側状態判断回路 47では、 RD—信号の各立下が り時点 (時刻 t2, t3, t4, t5 , t6) でコントローラ A側のアクセス状態を 判定し、 この判 ¾¾杲に基づきコントローラ Bがアクセスすべきメモリ 10の領 域を判定している。 この場合、 前ライ トの期間中に、 コントローラ Aはメモリ 1 0の L側領域を選択しているため、 この前ライ トの期間中におけるコントローラ Bのアクセス女す象は、 ARH信号からも判るように、 H側領域となる。
その後、 前ライ ト処理が終了すると、 これは PPCW2—信号の立上がりとし て前ライト終了検出回路 42で検出され、 該回路 42から WRED信号が出力さ れる (時刻 t7) 。
この WRED信号によって、 PFD—生成回路 43から出力される P FD—信 号は、 時刻 7で Lに立下がる。 セレクタ 50は、 前述したように、 PFD—信号 が Lの期間中は A 1 OH信号の反転信号を出力するため、 時刻 t7〜t8の期間中 ALH信号は Hとなる。
また、 この場合は、 後ライ トを行なおうとするメモリ 10の H側領域 (A 10 H) に対してコントローラ Bカ読出しアクセス中であるため待ち時間 (TC) 存在している。 このため、 後ライト待条件生成回路 44、 フリップフロップ 45, 46およびゲート 48の構成によって、 待ち時間 TCカ 在した後、 後ライ ト が開始される。 すなわち、 時刻 t9に、 PFDE 信号は RD _信号の立上がりに
よって Lに立下がり、 その後の時刻 19に P F D E_信号は E F—信号の立下がり に起因した P F D—信号の立上がりによつて Hに立上がる。 この時刻 8〜 9の 期間が後ライト期間であり、 この期間中 FIFO20, 25の FR—端子 (リ一 ドィネーブル) には、 PFDE—信号によってパルス発生器 51の出力パルスが 入力されるとともに (第 16図 (d) ) 、 メモリ 10の WL—端子 (ライトイネ —ブル) には同パルス発生器 5 1の出力パルスが入力される。 さらに、 メモリ 1 0の CSL—端子も PFDE—信号によってチップセレクト状態となっている。 した力 sつて、 この時刻 t8〜t9の期間中には、 FIFO20の出力、 すなわち、 前ライ トのときコントローラ Aから出力されたアドレス信号、 がメモリ 10 の AD端子に入力され、 かつ FIFO 25の出力、 すなわち、 前ライトのときコ ントローラ Aから出力されたデータがメモリ 10の DT端子に入力され、 さらに このとき ALH端子は Hとなっているため、 結果的にメモリ 10の H側領域に前 ライト時にコントロ一ラ Aから出力されたデータが書込まれることになる。 そし て、 この後ライ トの結果、 メモリ 10の L惻镇域と H側領域との記憶内容は全く 同一となる。
第 17図は、 PPCW1—信号の立下がりとコントローラ Bの RD—信号の立 下がりが同時のときのタイムチャートを示し、 これは先の第 14図に示したもの の前ライト開始時の詳細タイムチャートに相当する。 すなわち、 第 17図は第 1 6図の時間軸を大きく引き延ばしたものである。 RD—信号は前述したように、 コントローラ Bのリ一ド区間を示し、 コントロ一ラ Bによって全データをリ一ド する間 Lになっている。
第 17図においては、 時刻 tlに PPCW1—信号と RD—信号とがほとん同時 に立下がつている。 この場合は P P C W 1—信号の立下がりが R D—信号の立下 がりより若干早いとする。
この場合、 システム A側状態判断回路 47では、 この時刻 tlに先の第 5表の論 理に基づいて ARH信号を決定し、 出力する。 この場合、 時刻 tlに CSL—信号 は Hであるので、 A RH信号は L状態を保持する。他方、 PPCW1—信号力 ¾ 下がった時点におけるフリップフロップ 35の出力、 すなわち ABC 1信号は、 P P CW1一信号の立下がりが RD—信号の立下がりより若干早いので先の第 4
表の論理によって になる ( RDが H)。
また、 RD—信号はメモリ 10の CSR—端子および R端子に直接入力されて いるので、 : RD—信号の立下がりと同時にこの場合はメモリ 10の L側領域に対 して読出しアクセスが開始される。
上記 PPCW1—信号の立下がりから半クロック遅れた時点 (時刻 t2) におい て、 フリップフロップ 37は再ぴゲート 33の出力 SBLAをラッチする。 この 時点 12においては、 ゲート 33に入力される RD—信号および ARH信号はそれ ぞれ L, Lとなっているので、 ABC 2信号は時刻 t2で Hに立上がる。 同様にし て、 ABC 3信号は、 時刻 t 2よりさらに半クロック CK後の時刻 t 3に、 Hに立 上がる。 したがって、 これら、 ABC 1〜ABC 3信号の多数決論理をとつた A 10 H信号は時刻 t 3に Hに立上がる。
他方、 ゲート 41では PPCW3_信号を遅延回路 40で数クロック分遅延し たものの反転信号と WR—信号の反転信号のナンド論理をとり、 その出力を F I FO 20, 25の WF—端子およびメモリ 10の WL—端子に入力している。 し たがって、 この場合には、 端子 WF—および WL—に対する入力が Lに立下がる 時刻 t4時点から、 コントローラ Aのデータが F I FO 25およびメモリ 10に書 込まれ、 かつコントローラ Aのァドレス力 F I FO 20に書込まれる、 前ライ ト が開始される。 コントローラ Aのデータ力書込まれる領域は、 コントローラ Bの アクセス領域 (L領域) と逆の H領域である。
このように、 システム B側状態判断回路 32の構成によれば、 相手側コント口 —ラのステータス判断が同時になされた場合においても同一領域に両コントロー ラ A, Bのアクセス力行なわれることは決してない。 なお、 この例では PPCW 1—信号の立下がりが: D—信号の立下がりより若干早い場合について示したが、 逆の場合でもアクセス力 s衝突することはなく、 また全く同時の場合であつてもァ クセス力衝突することはない。
第 18図は PPCW2—信号の立下がりとコントローラ Bの RD—信号の立下 力 sりが同時のときのタイムチヤ一トを示し、 これは先の第 15図に示したものの 前ライ ト開始時の詳細タイムチヤ一トに相当する。
第 18図において、 PPCW1 イ言号が Lに立下がる時刻 tlにおいて ABC 1
信号は RD—信号が Hであるため Lである (第 4表参照) したがって、 時刻 t 1においては多数決回路から出力される A 1 OH信号も Lであり、 また ALH信号 も Lである
時刻 2における RD—信号の立下がりに伴ないシステム A側状態判断回路 47 は入力されている A L H信号に基づき相手側コントローラ Aが L側領域をァクセ スしていると判断し、 ARH信号を逆の Hに立上げる。 この結果、 時刻 t2におけ る RD—信号の立下がりと同時に、 コントローラ Bによる読出しアクセスがメモ リ 10の H側領域に^して開始される。
他方、 システム B側状態判断回路 32では、 PPCW1—信号の立下がりより 半クロック遅れた時刻 12の時点およびそれよりさらに半ク口ック遅れた時点 3 でも相手側コントローラ Bの状態を判断し、 自コントローラ Aが選択すべきメモ リ領域を示す信号 ABC2, ABC3を出力する力 この場合、 時刻七2以前にお いて RD—が H (コントローラ Bがアクセスしていない) であるか、 あるいは時 刻 12以降においてコントロ一ラ Bはメモリの H側領域に対して実際の読出しァク セスを開始している。 このため、 AB C 2信号および ABC 3信号も L状態のま まで、 この結果 Al 0H信号および ALH信号も L状態のままである。
他方、 メモリ 10の WL—端子および FIFO 20, 25の WF—端子は、 : P PCW3—信号の立下がり (時刻 t3) から所定時間後 (時刻 t4) に Lに立下が る o
この結果、 時刻 t4からコントローラ Aのデータはメモリ 10の L側領域に書込 まれるとともに、 FIFO 25に書込まれ、 またコントローラ Aのアドレスが F I F020に書込まれることになる。 このように、 RD—信号の立下がりが P P CW2—信号の立下がりと同時になつた場合においてもメモリァクセス領域の 衝突を確実に回避できる。
なお、 RD—信号の立下がりが PPCW3—信号の立下がりと同時になつた場 合の動作は第 18図とほとんど同じであり、 この場合もメモリアクセス領域の衝 突を回避することができる。
このように、 この第 3実施例による構成によれば、 コントローラ A、 コント口 —ラ B力 s異なるクロックで動作している場合においても、 同一メモリ領域に対す
るアクセスの衝突を好適に回避することができる。 特に、 前ライト開始時の衝突 は多数決回路 3 9等の構成により、 また後ライ ト開始時での衝突はフリップフロ ップ 4 5 , 4 6により回避することができる。
第 1 9図はこの発明の第 4実施例を示すものである。 第 1 9図において、 シス テムコントローラ A, Bは例えば産業機械に儋えられるものである。 システムコ ントローラ (以下コントローラと略す) Aはこの場合産業機械自体を統轄管理す るマスタコントローラで、 C P U、 メモリ等を備えた通帯のコンピュータ構成で ある。 またシステムコントローラ Bは産業機械各所に設置したセンサゃァクチュ ェ一夕とデータの授受を行なうものである。
この第 1 9図に示す構成はコントローラ Bからコントローラ Aへデータを転送 するための構成を示し、 コントローラ A , Bのメモリアクセス周期の関係につい て言えば、 コントローラ Aのメモリに対するアクセス時間 TA (この場合は読出 し期間) がコントローラ Bの非アクセス時間 TNB (この場合は書込みを行ってい ない期間) より長いということが前提となっている。
すなわち、 正確に言えば
コントローラ Aのアクセス時間 TA +後ライトに要する時間 Td
>コントローラ Bの非アクセス時間 T B となること力 s前提となっている (第 2 0図 (a) (e)ば) 参照) 。 「後ライト」 に ついては後述する。
メモリ 1 0はコントローラ A , Bの双方からアクセス可能な書込み/読出し自 在のデュアルポート R AMであり、 この場合アドレス 「A D」 の最上位ビッ ト
「A L H」 、 又は 「A R H」 を Hか Lかにすることで、 メモリ領域を H側および L側に 2分割するようになっている。 コントローラ A側からアクセスするときは、
「A L H」 を H/ Lにすることで H/ L側領域を選択し、 コントローラ B側から アクセスするとき 「A R H」 を H/ Lにすることで H/ L側領域を選択する。 す なわち、 この場合メモリ 1 0は謂ゆる 2重化された構成である。
なお、 この場合は前述したようにコントロ一ラ Bからコントローラ Aへの一方 向についてのみのデータ転送を問題としているため、 コントロ一ラ Aは読出しの みを、 コントローラ Bは書込みのみを行なう。
コントローラ Bと、 メモリ 10との間にはバッファ回路 20が設けられている。 ノ ツファ回路 20は、 コントローラ Bからのデータをメモリ 10の H側領域およ ぴ L側領域のうちの一方に書込んだ後、 該書込んだデータを読出して他方の領域 へ書込む (すなわち H側領域→L側領域、 または L側領域→H側領域へのメモリ —メモリ間データ転送) 際の一時記憶バッファとしての働きをするもので、 一方 の領域から読出されたデータはバッファ回路で一旦ラツチされた後、 即座に出力 され、 メモリ 10の他方の領域に書込まれる。 この場合、 バッファ回路 20は多 数のフリップフロップ (以下 FF群と略す) から成っている。
メモリ 10および FF群 20の信号入出力端子を以下に列記する。
CS L—;メモリ 10の左側 (コントローラ A側) からのチップセレクト CSR—;メモリ 10の右側 (コントローラ B側) からのチップセレク ト WL_;メモリ 10のライトイネーブル信号 (左側から)
W_;メモリ 10のライ トイネーブル信号 (右側から)
R L—;メモリ 10のリ一ドィネーブル信号 (左側から)
R—;メモリ 10のリードィネーブル信号 (右側から)
ALH;メモリ 10の最上位ァドレスビットであり、 左側 (コントロー ラ A側) からメモリ 10を H/L領域に 2分割するための信号 ARH;メモリ 10の最上位ァドレスビットであり、 右側 (コントロー ラ B側) からメモリ 10を H/L領域に 2分割するための信号 AD;ァドレス端子
DT;データ端子
D ; FF群 20のデータ入力端子
OUT; FF群 20のデータ出力端子
FCL—; FF群 20のチップセレクト
FR—; FF群 20のリ一ドクロック入力端子
FW_; FF群 20のライ トクロック入力端子
システムコントローラ Bは、 データ転送周期に同期して転送レディ信号 TCA L—を出力し、 またシステムコントローラ Aはデータ読出し (受取り) 周期に同 期して読出し要求信号 RD—を出力する。 これら TCAL 信号および RD 信
号に基づきメモリ 1 0および F F群 2 0の書込み/読出し制御を行なうことで、 コントローラ Bから出力されたデータをメモリ 1 0を経由してコントロ一ラ Aへ 入力する制御を行なうのが、 以下説明する複数の回路から成る制御 πジック部 3 0である。
制御ロジック 3 0の複数の回路はフリップフ口ップゃ論理ゲート等のハ一ドゥ ェァで全ての論理力 s構成されている。
以下、 制御ロジック部 3 0の各回路構成を説明する前に、 該制御ロジック部 3 0によるメモリ 1 0および F F群 2 0に対しての書込み/読出し制御の基本的な 論理構成について簡単に説明する。
I、 まず、 メモリ 1 0は、 その書込み/読出しに関して L側領域のほうが H 側領域より優 5¾頃位力 s高く設定してある。
II、 コントローラ Bから書込み要求を示すデータ転送レディ信号 T C A L— が出力されるとメモリ 1 0の H側領域および L側領域に対して、 基本的 には 2回の書込みを時間をずらせて行なうことで、 メモリ 1 0の11側領 域および L側領域にコントローラ Bの同一データを書込む (例外もある
) o
III、 1回目の書込み (以下前ライトという) 時には、 メモリ 1 0の H側領域 および L側領域のいずれか一方にデータを書込む。 メモリ 1 0の H/ L 側領域のいずれを選択するかについては、 コントローラ Bの T C A L— 信号の送出開始時点で、 コント口一ラ A側の状態を判断し、 コントロー ラ Aがメモリ 1 0の H/ L領域のいずれかを読み出しアクセスしている ときは、 その逆側の領域に対して書込みを行ない、 またコントローラ B がメモリ 1 0にアクセスしていない場合は優先側の L側領域に対して書 込みを行なう。
2回目の書込み (以下後ライ トという) 時には、 上記前ライ ト終了後 、 メモリ 1 0の前ライ ト時に選択した H/ L領域から同メモリ 1 0の上 記前ラィ ト時に選択した領域と逆側の H/ L領域へデータを転送するメ モリ一メモリ転送を行なう。 すなわち、 後ライ ト時には、 メモリ 1 0の 前ライ ト時に選択した H/ L領域を読出し可能状態とし、 かつその逆側
の H/ L領域を書込み可能状態とし、 読出し可能とした領域から読出し たデータを一旦 F F群でラッチし、 そのラッチ出力を書込み可能とした メモリ領域へ書込む処理を行なう 0
ただし、 この後ライト開始時、 前記書込み可能としたメモリ領域 (前 ライト時と逆のメモリ領域) に対してコントローラ Aがアクセスしてい るときは、 このコントローラ Aのアクセス終了まで待機し、 該アクセス 終了後即座に後ラィトを行なうようにする (後ライ トウェイト) 。
IV、 ただし、 上記前ライトにおいて、 T C AL—信号の送出開始時点で 「後 ライト」 を行なっている途中のときには、 該後ライト力 s '終了するまで待 機し (後ライ ト待ち期間)、 この終了時点でコントローラ A側の状態を 判断し、 即座に前ライ トを開始する (前ライトウヱイト) 。 なお、 上記 判断基準では、 前記同様コントローラ Aがメモリ 1 0の H/L領域のい ずれかを読み出しアクセスしているときは、 その逆側の領域に対して書 込みが行なわれ、 またコントローラ Aがメモリ 1 0にアクセスしていな い場合は優先側の L側領域に対して書込みが行なわれる。
V、 さらに、 上記 T C A L—信号の送出開始時点において、 後ライトがゥェ ィト中のとき、 すなわち後ライ トで書込みを行なおうとするメモリ領域 へコントローラ Aがアクセス中であるときには、 このウェイ ト中の後ラ ィ トをキヤンセルし、 コントローラ Aがアクセスしている領域と逆側の 領域に対して即座に次の前ライ トを開始する (後ライ トスキップ) 。
VI、 コントローラ Aから読み出し要求 R D_が出力されると、 この R D—信 号の送出開始時点でコントローラ B側の状態を判断し、 コントローラ B が前ライ ト中のときは、 この前ライト領域と逆側の領域から読出しを行 ない、 後ライ ト中のときは、 メモリ一メモリ転送で読出し可能状態とさ れた領域 (当該後ライ トの直前で行なわれた前ライトでのアクセス領域 ) から読出しを行ない、 またコントローラ Bがアクセスしていない場合 は優先側の L側領域から読出しを行なう。
II、 相手側コントローラの状態を判断する際、 例えばコントローラ B側 の状態はシステムクロック C Kの立上りで判断し、 コントローラ A側の
状態は同システムクロック C Kの立下がりで判断することで、 同時刻に おける判断を防止するようにしている。
: Lhが制御口ジック咅 [530の論理の概略である。
次に、 制御ロジック部 30の各回路構成について説明する。 なお、 この第 1 9図 においては、 システムクロック CKが各所に入力されている力 その図示は省略 している。
コントローラ Bの転送レディ信号 TCAL— (第 20図 (a) ) は転送開始検出 回路 31等に入力されている。 転送開始検出回路 31は、 TCAL—信号の立下 がりを検出するもので、 該 T C A L—信号の立下がりで Hに立上がる信号をゲー ト 36に出力する。 ゲート 36の他方の入力端子には、 P DDE信号の反転信号 力 s入力されている。 PDDE信号 (第 20図 (e) ) は、 後ライ ト区間生成回路 5 0から出力されるもので、 その生成論理は後で詳述する力 s、 実際の後ライト区 間を示すものであり、 後ライトを行っているときのみ Hとなり、 それ以外は で る o
したがって、 ゲート 36から出力される信号は、 TCAL—信号力入力された ときに、 後ライトを行っていないときに Hとなる。
後ライ ト終了検出回路 33は、 P DDE信号の立下がりを検出することで、 後 ライ ト終了時に Hに立上がる信号を出力する。 該検出回路 33の出力はアンド回 路 35に入力されている。
フリップフロップ 34は、 その D端子に: PDDE信号を、 そのクロック端子に TCA L—信号の反転信号を入力することで、 T C A L—信号の立下がり時の P DDE信号をラッチする。 したがって、 フリップフロップ 34の出力は、 TCA L—信号の立下がり時に、 後ライトを行っていればその時点から Hに立上がり、 以後その状態を倒寺する。 すなわち、 フリップフロップ 34の出力は、 前記 IIIに 示した 「前ライ トウエイト」 力始まった時点から Hになる。 フリップフロップ 3 4の出力はゲート 35, 53に入力されている。
ゲート 35は後ライ ト終了検出回路 33の出力とフリップフロップ 34の出力 のアンドをとることで、 前記 「前ライトウエイ ト」 状態のときに後ライトが終了 して前ライ トを開始してもよくなつた時点に Hに立上がる信号を出力する n アン
ドゲート 35の出力はノアゲート 37およびディレイ回路 38に入力されている。 ディレイ回路 38はアンドゲートの H出力を少しの時間遅延した後、 フリップフ ロップ 34をリセットする。
ゲート 53は、 フリップフロップ 34の出力と PDDE信号のアンドをとるこ とで、 「前ライ トウエイ ト」 期間のときに Hとなる WATPM信号を形成する (第 2ひ図 (b) ) 。
ノアゲート 37は、 ゲート 36の出力とゲート 35の出力のノアをとることで、 前ライ トのスタートを示す FWRST—信号を出力する。 この FWRST—信号 は、 TCAL—信号が入力された時点で後ライトを行っていないときと (ゲート 36) 、 前ライ トウエイト後の前ライト開始時点に (ゲート 35) 、 Lに立下が 前ライト区間発生回路 39は、 上記 FWRST—信号の立下がりで Hに立上が り、 その後、 この H状態を前ライト区間用に予め設定された所定時間の間保持す る前ライト区間信号 SBWを出力する (第 20図 (c) ) 。
ライ トパルス発生器 43は、 SBW信号が Hの期間中、 データ書込み用のパル ス信号を発生し、 このパルス信号をメモリ 10の書込みイネ一ブル端子 W—に加 える。 一方、 上記 SBW信号はコントローラ Bに入力されており、 コントローラ Bはこの SBW信号力入力されている期間中 (SBWが Hのとき) に、 データを 出力する。 すなわち、 コントローラ Bに入力されている SBW信号は、 コント口 ーラ Bにとつてはデータ送出時期を示すタイミング信号となっている。 さらに、 上記 SBW信号はァドレス発生カウンタ 44に入力されており、 ァドレス発生力 ゥンタ 44は上記 SBW信号力入力されると、 カウントを開始し、 そのカウント 出力をメモリ 10のアドレス端子 ADに入力する。 なお、 このアドレス発生カウ ンタ 44には、 後ライ ト期間を示す PDDE信号も入力されており、 : PDDE信 号が Hになっている期間中にも動作する。 また、 カウンタ 44から出力される力 ゥント値はシステムコントローラ Bにも入力されており、 このカウント値もデー タ送出のためのァドレス信号となっている。
リード区間発生回路 46は、 コントローラ Aから出力される読出し要求信号 R D一をとり込み、 コントローラ Aのリード区間信号 P PC R を出力する (第 2
0図ば) ) 。 この PPCR—信号はコントローラ Aがリード中の間、 その出力を Lに保持している。 この PPCR—信号はメモリ 10の CSL—端子および RL —端子に入力される。 したがって PPCR—信号が Lになっている期間には、 必 ずメモリ 10の H/L領域のいずれかから記憶データ力読出される。 すなわち、 読出しに関しては待ち時間は存在しない。 読出しの際、 H/L領域のいずれを選 択するかは、 システム A側アクセス領域決定回路 47から出力される A 10L信 号 (第 20図(i) ) によって決定される。
システム A側アクセス領域決定回路 47には、 システム B側による前ライ ト区 間を示す SBW信号、 後ライト区間を示す PDDE信号および最上位アドレス決 定回路 40の出力 A 1 OR力 s入力されている。 Al OR信号は、 その出力論理に ついては後で詳述する力 s、 前ライト区間におけるコントローラ B側のメモリァク セス領域を示すものであり、 Hのとき H側領域が選択され、 Lのとき L側領域が 選択される。 尚、 後ライ トすなわち、 メモリーメモリ転送では、 前ライ トのァク セス領域と同じ領域力 売出し領域となり、 逆の領域が書込み領域となる。 この決 定回路 47の出力 A 10Lは、 次のようにして信号レベル力決定される。 A 10 Lは Ηのとき Η側領域が、 Lのとき L側領域が選択される。
(ァ) P P C R信号が Lに立下がつたときコントローラ Βがアクセス中でなけれ ば (SBWが Lでかつ PDDEが L) 、 優 5¾ の L側領域を選択する。
(ィ) PPCR—信号が Lに立下がったとき、 コントローラ B力 s前ライ ト中であ れば (SBW力 S、H) 、 該前ライ トでのメモリアクセス領域 (A 1 OR) の逆側の 領域 (Al OR一) を選択する。
(ゥ) PPCR—信号が Lに立下がったとき、 コント口一ラ B力 s後ライ ト中であ れば (PDDEが H) 、 後ライ トにおける読出し領域 (A 10R) を選択する。 このように、 信号 Al 0Lはリード区間信号 PPCR—カ¾下がる時点におけ る SBW, PDDE, Al ORによって決定され、 該信号 Al 0Lはメモリ 10 の ALU端子 (アドレスの最上位ビット) 等に入力される。
最上位アドレス決定回路 40は、 前ライ ト区間の開始を示す FWRST—信号 力立下がった時点における P P CR—信号および A 10 L信号の状態に基づき、 前ライ ト開始時点におけるコントローラ A側の状態を判断し、 この判断に対応し
ててコントローラ B側力 s前ライト時メモリ 10のどちらの領域を選択するかを決 定する。
すなわち A 1 ORの真理値表は以下のようになる。 第 7表
PPC Al OL Al OR
H L L H L L L H すなわち、 前述したように、 メモリ 10は L側領域が優先となっており、 この ため、 前ライト開始時に PPCR—信号が H、 すなわちコントローラ A力非ァク セス中のとき、 Al OR信号はメモリ 10の優先領域(L領域) に対応して と なり、 また前ライト開始時に P PC R—信号が L、 すなわちコントローラ Aがァ クセス中のときには、 A 1 OR信号は A 10L信号の逆となり、 コントローラ A がアクセス中の領域と逆の領域を選択する。
最上位アドレス反転回路 41は、 前述したメモリ一メモリ転送 (後ライト) の ために、 後ライ ト期間中 (PDDEが H) に最上位アドレスの反転、 非反転出力 を に繰返して出力するものであり、 パルス発生回路 5 1から出力される〇E R R—信号の 1周期に 1回の反転/非反転を行なうようになっている。 0 E R R —信号はメモリ 10の読出しィネーブル端子 R—に加えられるリードクロック信
7? 乙ある o
セレクタ 42は、 SBW信号が H (前ライ ト中) のときは、 最上位アドレス決 定回路 40の出力 Al ORを選択し、 PDDE信号が Hのときは (後ライト中) 、 最上位ァドレス反転回路 41から出力される最上位ァドレスの反転/非反転出力 を選択するもので、 このセレクタから出力される Al 0RR信号 (第 20図(j) ) はメモリ 10の H側領域および L側領域を選択する ARH端子に入力されている。
後ライト待ちフラグ生成回路 48は、 前ライ トが終了してから後ライ トが開始 されるまでの間、 すなわち後ライトウエイ ト期間のみ Lになる後ライトウエイ ト フラグ WADD— (第 20図 (g) ) を出力するものであり、 PPCR—信号、 A 10L信号、 A 1 OR信号、 SBW信号、 R D D信号力入力されいる。 すなわち、 WADD_生成回路 48では、 前ライトが終了した時点 (SBWが Lに立下がつ たとき) で、 コントローラ Aがメモリ 10をアクセス中であり (PPCR—力 L)、 かつコントローラ Aのアクセス領域力 s後ライトでの書込み側の領域と一致 (A1 0 L = A 1 OR) した場合に WADD—信号を Uこ立下げる。 そして、 この L状 態にある WADD—信号は、 後ライ トキヤンセル回路 52から RDD—信号力 s入 力されたとき (後ライ トスキップ) 、 または PPCR—信号が Lから Hに立上つ たとき (コントローラ Aのアクセス力終了) に Hに立上がる。
卩00究生回路49は、 当該前ライトが終了してから、 この前ライトとペアの 後ライ トが終了するまでの間 Hになる PDD信号 (第 20図 (d) ) を形成するも のである。 ただし、 この PDD信号は、 当該前ライ トとペアの後ライトがキャン セルされた場合は、 次の前ライ トの開始時点で Hから Lに立下がる。 すなわち、 PDD信号は、 後ライトの終了時点を判断するためのものであり、 該 PDD発生 回路 49内には、 後ライトに要する所定期間が予め設定されたタイマ回路が内蔵 されている。
すなわちこのタイマ回路は、 後ライトのウェイトがない場合 (WADD—が H) は、 前ライ トカ s終了した時点 (58 が に立下がる) で計時開始し、 その後予 め設定された所定時間を計時した時点でリセットされる。 そして、 この場合は P D Dが Hになる期間と計時期間力 s対応している。
しかし、 このタイマ回路は、 前ライ ト終了後、 後ライ トのウェイ 卜がある場合 は (WADD—が L) 、 WADD—信号の立上がり (後ライトウエイト期間の終 了) 力 ら計時開始し、 その後設定時間を計時した時点でリセットされる。 この場 合は、 PDDが Hになる期間と計時期間力 s対応していない。 すなわち、 この場合 PDD信号は、 前ライ ト終了と同時に (SBWが Lに立下がる) 、 Hに立上がり、 その後、 この H状態は、 後ライ トウエイ ト期間 (WADD—が L) と後ライ ト期 間 (計時期間) の間、 保持される。
ただし、 上記前ライ ト終了後、 後ライ トのウェイトがある場合において、 PD D信号の立上がり (SBWが Lに立下がった時) 後、 WADD_信号の立上がり 力 sない場合は、 P D D信号の状態はタィマ回路の時計値によつては規定されず、 後ライトキヤンセル回路 52から入力される RDD信号によって規定される。 す なわち、 これは、 後ライトのウェイト状態中、 この後ライトがキャンセルされる 場合であり、 PDD信号は SBW信号の立下がりによって Hになり、 その後、 こ の H状態は R D D信号の入力によって Lに立下げられる。
後ライトキヤンセル回路 52は、 WADD—信号の反転信号と PDD信号との アンドをとるアンドゲート (WADD ' PDD) と、 このアンドゲ一の出力を転 送レディ信号 C A L—の立下がりでラッチするフリップフロップ等で構成され ており、 コントロ一ラ Bが転送レディになったとき、 後ライウェイ ト中のとき (WADD一が Lで、 PDDが H)、 Hになる、 後ライ トキヤンセル信号 RDD (第 20図 (h) ) を出力するもので、 この RDD信号は、 前記後ライ ト待ちフラ グ生成回路 48、 PDD生成回路 49に入力されている。
後ライト区間生成回路 50は、 WADD—信号と PDD信号とのアンドをとる アンドゲート (WADD一 ' PDD) と、 フリップフロップ等で構成され、 該ァ ンドゲートのアンド論理によって実際に後ライ トを行っている期間のみ Lになる 後ライ ト区間信号 P DDEを形成し、 出力する。
ゲート 45では、 前記 SBW信号と P DDE信号とのノアをとり、 そのノア出 力をメモリ 10のチップセレク ト端子 CSR—に入力する。 すなわち、 ゲート 4 5によって、 CSR一端子は前ライ ト時 (SBW) と後ライト時 (P DDE) に Lとなり、 このときメモリ 10を右側からチップセレクトする。
パルス発生回路 5 1は、 PDDE信号が Hになっている期間、 後ライト (メモ リ一メモリ転送) に要する各種パルス信号を発生するものである。
◦ ERR—信号 (第 22図(d) ) はメモリ 10のリードパルス信号であり、 メ モリ 10のリード端子 R—および最上位アドレス反転回路 41に入力されている c SPG_信号 (第 22図 (f) ) は FF群 20のチップセレクト信号であり、 後ラ ィ ト期間中に Lになっている。 SPG__信号は FF群 20のチップセレクト端子 FCL—に入力されている。 P ISD 信号 (第 22図 (e) ) は、 FF群 20力、
らデータを読出すためのリ一ドパルスであり、 F F群 20のリードクロック端子 FR—に入力されている。 WER—信号 (第 22図 (g) ) はメモリ 10にメモリ
—メモリ転送を行なわせるためのライトパルス信号であり、 メモリ 10のライ ト イネ一ブル端子 W—に入力されている。 SRDL—信号 (第 22図 (b) ) は、 F
F群 20にメモリ 10からデータを書込むためのライトパルスであり、 FF群 2 0のライトクロック端子 FW—に入力されている。
以上が制御口ジック部 30の構成であり、 以下第 20図乃至第 22図に示すタ ィムチャートにしたがってその動作を説明する。 尚、 第 20図、 第 21図におい て、 各信号の上に付した H, Lは選択されたメモリ構成を示し、 また Iは前ライ トを、 IIは後ライトを示している。
第 20図の時刻 tOにおいて、 コントローラ Bの転送レディ信号 TCAL—が L に立下がる。 この時刻 tOでは、 PDDE信号が Hであるため (後ライト中) 、 ゲ ート 36および 35の出力は Lであり、 前ライ ト開始信号 FWRST—は出力さ れない。 すなわち、 この時刻 tOから、 PDDE信号が Lになる時刻 tlまでは後 ライトカ s行なわれているため、 前ライ トウエイ ト期間となる (WATPM信号が 後ライト期間中は、 第 22図に示すように、 最上位アドレス反転回路 41によ つて最上位ァドレスビット AR Hがリ一ドクロック〇E R R—に同期して反転/ 非反転されるとともに (第 22図 (b) ) 、 アドレス発生カウンタ 44から最上位 ビット以外のアドレス信号が出力され、 さらにパルス発生回路 51力ら、 同図に 示すような各種信号が出力されることで、 F F群 20を介したメモリ一メモリ転 送が行なわれる。 なお、 第 22図 (c) の ADはアドレス発生カウンタ 44から出 力されるアドレス信号の最下位ビットである。 なお、 第 22図では、 メモリ 10 の L側領域から H側領域へのメモリ一メモリ転送が行なわれている。
第 20図の時刻 tlに、 PDDE信号が Lに立下がり、 後ライトは終了する。 後 ライト終了検出回路 33は、 この後ライ トの終了を検出し、 その出力を Hに立上 げる。 一方、 フリップフロップ 34は、 時刻 tOから PDDE信号の H状態を保持 しており、 このためゲ一ト 35の出力が時刻 11に Hに立上がる。 ゲート 35の H 出力は、 ゲート 37を介して前ライ ト区間発生回路 39および最上位ァドレス決
定回路 40に入力される。 した力つて、 前ライト区間信号 SBWは時刻 tlで Hに 立上がり、 この H状態は予設定時間だけ保持される。
—方、 最上位アドレス決定回路 40では、 時刻 tlにおいて、 相手側コント口一 ラ Aの状態を判断し、 前ライトにおいて自コントローラ B力選択するメモリ領域 を決定する。 この場合、 時刻 tlにおいては、 コントローラ Aはメモリ 10をァク セスしていないので (PPCR—が H) 、 優先側の L側領域を選択するよう A 1 ORは乙になる。 この Al OR信号はセレクタ 42を介してメモリ 10の ARH 端子に加えられる。 また、 上記 SBW信号の H入力によって、 ライ トパルス発生 器 43およびアドレス発生カウンタ 44が動作し、 SBW信号が Hの期間中、 ラ ィ トパルスをメモリ 10の W端子に入力するとともに、 アドレス信号をメモリ 1 0の AD端子およびコントローラ Bに入力する。 S BW信号もコント口一ラ Bに 入力されている。 したがって、 コントローラ Bは SBWが Hの期間にデータを送 出する。 この結果、 時刻 tl〜t2の期間には、 コントローラ Bからのデータがメ モリ 10の L側領域に書込まれる、 前ライト処理が実行される。
時刻 t2において、 前ライ トが終了し、 58 信号は に立下カ;る。 この SBW 信号の立下がりによって P D D発生回路 49は P D D信号を Hに立上げる。 この 時刻 t2には、 相手側コントローラ Aが非アクセス中なので後ライトウェイトフラ グ WADD—は出力されない。 したがって、 後ライトの待ちは発生せず、 PDD E信号は時刻 2で、 即、 HにLhがる。 この P DDE信号の立上がりによって最 上位アドレス反転回路 41、 パルス発生回路 51、 およびアドレス発生カウンタ 44が動作し、 前述した後ライ ト処理が実行される。 この後ライト処理は、 PD D発生回路 49内のタイマ回路が計時動作を終了する時刻 t5まで行なわれる。 な お、 この後ライ ト処理では、 ペアの前ライトが L側領域に対して行なわれたため、 H側領域が書込み側、 L側領域が読出し側となる。
この後ラィトの途中の時刻 13に、 コントローラ Bから転送レディ信号 T C A L 一が入力される力 後ライ トを行っているため、 時刻 t3から前ライ トウェ ィ ト状態となっている。
また、 この後ライトの途中の時刻 4で、 コントローラ A側からのリード要求が 発生している (PPCR一が L) 。 リード区間発生回路 46は、 この時刻 "から
時刻 110までの間 P PC R—信号を Lにする。 この P PC R—信号はメモリ 10 の CSL—端子おょぴ R—端子に入力され、 メモリ 10は時刻 t4〜tl0の間読出 し状態となる。 また、 PPCR—信号の立下がり時点 (時刻 t4) で、 システム A 側アクセス領域決定回路 47は相手側コントローラ B側の状態を判断し、 自コン トローラ Aがアクセスするメモリ領域を決定する。 この場合、 時刻 t4においては、 メモリ 10の H側領域が書込み状態となっている後ライト処理力 s実行されている ので、 決定回路 47は、 コントローラ Aがその逆の L側領域を選択するよう A 1 0L信号を Lにする。 この結果、 時刻 4〜時刻 10の期間には、 メモリ 10の L 側領域のデータ力 s '読出され、 コントローラ Aに出力される。
このコントローラ Aのアクセス期間中の時刻 t5において、 後ライ トカ終了し、 PDD E信号は Lに立下がる。 この結果、 時刻 15に前記同様、 ゲート 35は Hに なり、 この結果、 時刻 5に前ライト開始信号 FWRST—が出力される。 これに より、 時刻 t5から、 前ライト区間発生回路 39に設定された時間力 s終了する時刻 t6までの間、 前述した前ライ ト処理が実行される。 この場合、 この前ライト処理 は、 コントローラ A力既に L側領域にアクセス中であるため、 H側領域に対して 行なわれる。
時刻 16において、 H側領域に対する前ライト力 s終了し、 SBW信号が Lに立下 がる。 この時刻 t6においては、 後ライ トを行なおうとする (後ライ トの書き 込み側の領域) L側領域にコントローラ Aがアクセス中であるため、 後ライ ト待 ちフラグ生成回路 48の出力フラグ WA D D—が Lに立下がるとともに、 P D D 発生回路 49の出力 PDDが Hに立上がり、 後ライ トのウェイ ト開始となる。 時刻 17にコントローラ Bの転送レディ信号 T C A L—が Lに立下がる。 後ラィ トキヤンセル回路 52は TC A L—信号の立下がりで、 WADD—信号の反転信 号と PDD信号とのアンド出力、 すなわち H状態をラッチし、 このラッチ信号を 瞬時の立上がり信号に変換して、 RDD信号として出力する。 この RDD信号の 入力によって、 時刻 t7に、 WADD—信号は Hに立上がり、 : PDD信号は Lに立 下がり、 後ライ トのウェイ ト期間は終了する。
一方、 時刻 t7において、 ゲート 36の出力が Hに立上がる (PDDEが Lなの で) 。 このゲート 36の H出力によって、 ゲート 37はその出力 FWRST を
Lに立下げ、 これにより時刻 t7から前ライトが開始される。
すなわち、 コントローラ Bから転送レディ信号で C A L—が入力された時刻 t においては、 後ライトのウェイト期間中である。 このため、 この後ライトはキヤ ンセルされ、 時刻 t7から次の前ライ トが開始される (後ライトスキップ) 。 時刻 t7〜t8の前ライト期間では、 コントローラ Aが L側領域に対してァクセ ス中であるため、 H側領域に対して書込み力行なわれる。
時刻 t8に、 H側領域に対する前ライトが終了し、 SBW信号が Lに立下がる。 この時刻 8においてもコントローラ A力後ラィトを行なおうとする L側領域 にアクセス中であるため、 再び後ライ トのウェイトが発生する。 この後ライ トの ウェイ トは、 TCAL—信号力 s再び Lに立下がる時刻 t9まで続行する。
時刻 t9においては、 再び後ライ卜がキャンセルされ、 時刻 t9からは次の前ラ イト力行なわれる。 この時刻 t9の後、 時刻 10にコントローラ Aのアクセスが終 了しているので、 この後は (時刻 tilから) 、 前ライトのウェイトのみが 在す る (後ライトのウェイト、 後ライトのスキップは存在しない) 、 前ライト、 およ び後ライトが繰り返し行なわれている。
第 21図は、 TCAL—信号と: PPCR—信号とのタイミングが、 第 20図と 異なる例を示したものであり、 その基本的動作は第 20図に示したものと同じで あるので説明は省略する。 この第 21図の例では前ライトのウェイ ト (WATP M) は存在しない。
なお、 上記実施例では、 コントローラ Bとメモリ 10との間のバッファ手段と して FF群 20を用いるようにした力 これの代わりに FIFO (First in Fir st Out ;先入れ先出し回路) 等を用いるようにしてもよい。 この場合は、 前ラ ィ トと後ライトのウェイトの手法が若干異なる (メモリーメモリ転送は行なわな レ のみで、 その他の前述した後ライトのウェイト、 後ライトのスキップ、 前ラ ィ トのウェイト等の手法は第 19図に示したものと同じである。
すなわち、 FIFOを用いる場合は、 アドレス記憶用の FI FOとデータ記憶 用の FIFOを設け、 前ライト時には、 メモリ 10の H側領域および L側領域の いずれか一方にデータを書込み、 かつ F I F〇にデータおよびァドレスを書込む とともに、 後ライト時には、 上述した前ライトのときに FIFOに書込んだデー
タとアドレスを上記前ライ ト終了後、 F I F Oから読出し、 この読出しデータを F I F 0から出力されるアドレスにしたがってメモリ 1 0の上記前ライ ト時に選 択した領域と逆側の H / L領域に書込むようにする。
また、 上記実施例では、 コントローラ Bから転送レディ信号 T C A L—が入力 された時、 後ライ トを行っている場合は、 この後ライト終了後、 前ライ トを行な うようにした力5、 (前ライトのウェイト) 、 このような場合は次のような手法を用 いるようにしてもよい。
すなわち、 このような場合は、 転送レディ信号 T C A L—が入力された時点で、 実行中の後ライ トを強制終了させ、 該強制終了させた後ライ トで書込みを行って いた側のメモリ領域に対して、 コントローラ Bからのデータを書込む、 前ライ ト 処理を即、 実行させるようにしてもよい。 このような制御を行った場合、 後ライ トを強制終了した側のメモリ領域は前ラィ ト処理によってコントローラ Bの最新 データで書き換えられているので、 # ^中は異なるアクセス時のデータで混同し ている。 しかし、 デ一タカ混同しているメモリ領域に、 S BW信号を Hにして前 ライトを行うので、 P D D Eをリセットしてもデータ力混同しているメモリエリ ァをコントローラ Aはアクセスできない。 従って、 コントローラ Aにコント口一 ラ Bの異なるアクセス時のデータ力 s送出されることはない。
第 2 3図は、 この発明の変形例を示すものであり、 この装置では、 システムコ ントロ一ラ Bから、 2つのシステムコントローラ A, Cへデータ伝送を行なう。 この第 2 3図の装置は、 コントローラ Bの時々刻々変化するデータをコント口一 ラ Aで処理し、 かつ前記データをコントローラ Cでモニタリングするようなフィ 一ルドネットを ¾|定している。
第 2 3図の構成において、 メモリ 1 0、 F F群 2 0の構成は第 1 9図と全く 同じであり、 また制御ロジック部 8 0は、 第 1 9図に示した制御ロジック部 3 0 からシステム A側領域決定回路 4 7、 およびリード区間発生回路 4 6を除いたも のに女す応し、 その他の回路は全て有している。
すなわち、 この第 2 3図に示す構成では、 デュアルポ一トメモリ 1 0の左側端 子 (ポート) をコントローラ Aおよび Cで共用することで回路規模を縮小するよ うにしている。 そして、 この左側ポートの共用を実現するために、 コントローラ
Aのアクセス要求 RD1—をコントローラ Cのアクセス要求 RD2—より優先させ ている。
システム Aリード区間発生回路 60は、 コントローラ Aの読出し要求信号 RD
1—を入力し、 コントローラ Aのリード区間信号 PPCR—を出力するもので、 そ の動作は第 19図のリード区間生成回路 46と同じである。
システム Cリード区間究生回路 62は、 コントローラ Cの読出し要求信号 RD
2—に基づきコントローラ Cのリード区間信号 P Q C R—を形成出力するものであ る。 しかし、 この発生回路 62では PQCR—信号の状態が で、 メモリ 10を システム Cがアクセス中であっても、 PPCR—信号が Lに立下がると、 PQC R—信号を強制的に Hに立上げ、 コントローラ Cのアクセスを途中で中断するよ うにしている (第 24図 (a) 、 時刻 t2) 。
これらリード区間発生回路 60, 62の出力 PPCR—および PQCR—はノ ァゲート 63を介して、 メモリ 10の CSL—端子、 R一端子に入力されいる。 他方、 PPCR—信号は、 コントローラ Cに入力されている。 したがって、 コ ントロ一ラ Cは、 PPCR—信号が Lでないとき、 または、 PPCR—信号が H に立上がるのを確認して、 読出し要求信号 RD1を送出することができる (第 24 図 (a) 時刻 tl、 第 24図 (b) 時刻 t2)。
最上位ァドレス決定回路 61には、 これら PPCR—信号および PQCR—信 号の他、 制御ロジック部 80から SBW信号、 PDDE信号および Al OR信号 力'入力されている。 したがって、 この決定回路 61の論理は、 第 19図のシステ ム A側アクセス領域決定回路 47の前述した論理と基本的に同じであり、 これに システム Cのリード区間信号 PQCR—が加わっただけであり、 決定回路 47で は P P C R—信号および P Q C R—信号が Lに立下がつたときの制御口ジック部 80から入力される 3つの信号に基づきコントローラ Bが書込みを行っていない 領域に対してコントローラ Aまたは Cの読出しアクセス力 s行なわれるよう A 10 L L信号を決定し、 該信号 A 10LLをメモリ 10の AL H端子に印加するよう にする。
尚、 制御ロジック部 80において、 先の第 19図の最上位アドレス決定回路 4 0に対応する回路 (図示せず) には、 PPCR 信号、 A10L信号に代わるも
のとして、 ゲート 6 3の出力および A 1 O L L信号力 s入力されており、 該回路で はこれら入力信号にもとづき前ライ トにおけるメモリアクセス領域を決定する。 また、 同制御ロジック部 8 0において、 先の第 1 9図の後ライ ト待ちフラグ生成 回路 4 8に対応する回路にも、 P P C R—信号に代わるものとして、 ゲート 6 3 の出力が入力されている。
このように、 第 2 3図の実施例では、 コントローラ Aと Cがメモリ 1 0の左側 ポートを共用し、 コントローラ Aがメモリ 1 0を使用していないときに、 コント ローラ Cがメモリ 1 0にアクセスするようにしたので、 コントローラ A , C側の バス使用の効率力上がるとともに回路規模を縮小することができる。
なお、 前述した各実施例は、 第 2 3図の実施例を除いて、 2つのシステムコン トローラ間のデータ伝送の話として説明を行ったが、 これらの実施例はスター型 やツリー型のネットワークにも適用することができる。 これらのネットワークに 本発明を適用する場合は、 主局及び複数の従局で構成されるネットワーク構成に おいて、 各従局毎にデュアルポ一トメモリ 1 0及びコントロール回路 2 0を設け るようにすればよい。
発 明 の 利 用 可 —能 性
この発明は、 2つのコントローラ間または 1対多のコントローラ間のデータ転 送に適用して好適である。