(57)【特許請求の範囲】
【請求項１】
第１書込データ及び第１読出データが入出力される第１入出力ポートと、前記第１入出力ポートとは独立して設けられて第２書込データ及び第２読出データが入出力される第２入出力ポートと、前記第１書込データ及び前記第２書込データを記憶する記憶部とを備えたデュアルポートメモリと、
クロック信号を発信するクロック信号発信器と、
前記クロック信号に同期せずに動作し、前記デュアルポートメモリにおいて入出力される第１書込データ及び第１読出データを処理する第１処理装置と、
前記クロック信号に同期せずに動作し、前記デュアルポートメモリにおいて入出力される第２書込データ及び第２読出データを処理する第２処理装置と、
前記クロック信号に同期して動作し、前記デュアルポートメモリに対する前記第１処理装置のアクセスを制御する第１メモリアクセスコントローラと、
前記クロック信号に同期して動作し、前記デュアルポートメモリに対する前記第２処理装置のアクセスを制御する第２メモリアクセスコントローラと
を有し、
前記第１メモリアクセスコントローラが前記デュアルポートメモリに第１書込データを書込む第１データ書込タイミング、前記第１メモリアクセスコントローラが前記デュアルポートメモリから第１読出データを読込む第１データ読込タイミング、前記第２メモリアクセスコントローラが前記デュアルポートメモリに第２書込データを書込む第２データ書込タイミング、及び前記第２メモリアクセスコントローラが前記デュアルポートメモリから第２読出データを読込む第２データ読込タイミングは、前記クロック信号に同期しており、
前記クロック信号は、前記デュアルポートメモリでのデータ書込みの終了タイミングから前記第１メモリアクセスコントローラ及び前記第２メモリアクセスコントローラのいずれか一方でのデータ読込みのタイミングまでの遅延時間と、前記デュアルポートメモリから前記一方で正規のデータを読込むためのセットアップ時間とに基づいて設定されていること
を特徴とするマルチプロセッサシステム。
【請求項２】
前記第１データ書込タイミングと、該第１データ書込タイミングの直後の前記第２データ読込タイミングとの時間差の最小値は、前記クロック信号のクロック周期の１周期と同じであり、
前記第２データ書込タイミングと、該第２データ書込タイミングの直後の前記第１データ読込タイミングとの時間差の最小値は、前記クロック信号のクロック周期の１周期と同じであること
を特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記クロック信号のクロック周期は、前記遅延時間と前記セットアップ時間とを加算した時間よりも長いこと
を特徴とする請求項１記載のマルチプロセッサシステム。
【請求項４】
前記第１メモリアクセスコントローラは、前記デュアルポートメモリに第１書込データを書込むための第１データ書込信号と、前記デュアルポートメモリから第１読出データを読込むための第１データ読込信号とを発生する第１アクセス信号発生部を備え、
前記第２メモリアクセスコントローラは、前記デュアルポートメモリに第２書込データを書込むための第２データ書込信号と、前記デュアルポートメモリから第２読出データを読込むための第２データ読込信号とを発生する第２アクセス信号発生部を備え、
前記第１データ書込信号における第１書込データを書き込むタイミングは、前記第１データ書込タイミングであり、
前記第１データ読込信号における前記デュアルポートメモリからの第１読出データの読出しが終了するタイミングは、前記第１データ読込タイミングであり、
前記第２データ書込信号における第２書込データを書き込むタイミングは、前記第２データ書込タイミングであり、
前記第２データ読込信号における前記デュアルポートメモリからの第２読出データの読出しが終了するタイミングは、前記第２データ読込タイミングであること
を特徴とする請求項１から３までのいずれか一項に記載のマルチプロセッサシステム。
【請求項５】
前記第１メモリアクセスコントローラは、前記第１アクセス信号発生部から入力されて前記第１データ読込信号の１つである第１データ保持信号が有効状態から無効状態に切り替わる時に、前記デュアルポートメモリから読出された第１読出データを保持する第１保持部を備え、
前記第２メモリアクセスコントローラは、前記第２アクセス信号発生部から入力されて前記第２データ読込信号の１つである第２データ保持信号が有効状態から無効状態に切り替わる時に、前記デュアルポートメモリから読出された第２読出データを保持する第２保持部を備え、
前記第１データ保持信号が前記有効状態から前記無効状態に切り替わるタイミングは、前記第１データ読込タイミングであり、
前記第２データ保持信号が前記有効状態から前記無効状態に切り替わるタイミングは、前記第２データ読込タイミングであること
を特徴とする請求項４記載のマルチプロセッサシステム。
【請求項６】
前記第１保持部は、前記第１アクセス信号発生部から入力される第１データ読出制御信号が有効状態の時に保持している第１読出データを前記第１処理装置に出力し、前記第１データ読出制御信号が無効状態の時に出力部をハイインピーダンス状態とし、
前記第２保持部は、前記第２アクセス信号発生部から入力される第２データ読出制御信号が有効状態の時に保持している第２読出データを前記第２処理装置に出力し、前記第２データ読出制御信号が無効状態の時に出力部をハイインピーダンス状態とすること
を特徴とする請求項５記載のマルチプロセッサシステム。
【請求項７】
前記第１アクセス信号発生部は、前記デュアルポートメモリから第１読出データを読出すための第１データ読出信号を発生させて前記デュアルポートメモリに出力し、
前記第２アクセス信号発生部は、前記デュアルポートメモリから第２読出データを読出すための第２データ読出信号を発生させて前記デュアルポートメモリに出力し、
前記第１データ読出信号が有効状態から無効状態に切り替るタイミングは、前記第１データ読込タイミングに含まれ、
前記第２データ読出信号が有効状態から無効状態に切り替るタイミングは、前記第２データ読込タイミングに含まれること
を特徴とする請求項４から６までのいずれか一項に記載のマルチプロセッサシステム。
【請求項８】
前記第１メモリアクセスコントローラは、前記第１処理装置から入力される第１書込データを前記デュアルポートメモリに出力可能な状態と、第１書込データの出力が不可能なハイインピーダンス状態とに可逆的に切り替わる第１書込ゲート部を備え、
前記第２メモリアクセスコントローラは、前記第２処理装置から入力される第２書込データを前記デュアルポートメモリに出力可能な状態と、第２書込データの出力が不可能なハイインピーダンス状態とに可逆的に切り替わる第２書込ゲート部を備えていること
を特徴とする請求項１から７までのいずれか一項に記載のマルチプロセッサシステム。
【請求項９】
前記第１メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリに書込まれる第１書込データと、前記デュアルポートメモリから読出される第１読出データとを送信可能な第１データバスラインと、
前記第２メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリに書込まれる第２書込データと、前記デュアルポートメモリから読出される第２読出データとを送信可能な第２データバスラインと
を有すること
を特徴とする請求項１から８までのいずれか一項に記載のマルチプロセッサシステム。
【請求項１０】
前記第１メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリに書込まれる第１書込データを送信可能な書込用第１データバスラインと、
前記第１メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリから読出される第１読出データを送信可能な読出用第１データバスラインと、
前記第２メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリに書込まれる第２書込データを送信可能な書込用第２データバスラインと、
前記第２メモリアクセスコントローラと前記デュアルポートメモリとの間に設けられ、前記デュアルポートメモリから読出される第２読出データを送信可能な読出用第２データバスラインと
を有すること
を特徴とする請求項１から８までのいずれか一項に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デュアルポートメモリなどの記憶装置を備えるマルチプロセッサシステムに関する。
【背景技術】
【０００２】
特許文献１には、保護制御演算に影響を与えることなく、遠隔からの整定変更，設定変更，装置内部のデータ転送を高速に実行するに好適なディジタル保護制御装置が開示されている。このディジタル保護制御装置は、デュアルポートメモリにより密結合されたリアルタイム処理演算ブロックとネットワーク処理ブロックとを有している。リアルタイム処理演算ブロックは、リアルタイム処理演算用の演算ＣＰＵと、デュアルポートメモリの書込み制御を実行するデュアルポートメモリ制御回路とを備えている。ネットワーク処理ブロックは、ネットワーク処理用のネットワークＣＰＵと、デュアルポートメモリのネットワークＣＰＵ側からのアクセスを制御するデュアルポートメモリ制御回路とを備えている。
【０００３】
デュアルポートメモリは、メモリアクセス競合時、後着側にＢＵＳＹ信号を出力する。リアルタイム処理演算ブロックに備えられたデュアルポートメモリ制御回路は、このＢＵＳＹ信号を受けると、演算ＣＰＵに対してウエイト信号を出力し、タイミング協調をとる。また、同様に、ネットワーク処理ブロックに備えられたデュアルポートメモリ制御回路は、このＢＵＳＹ信号を受けると、ネットワークＣＰＵに対してウエイト信号を出力し、タイミング協調をとる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−６４８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ウエイト信号はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の動作を待機させる信号である。このため、ノイズ等の何らかの原因でウエイト信号が有効状態すなわちアサート状態に固着すると、ＣＰＵの動作の停止状態が継続される。このため、例えばデュアルポートメモリを介して２つのＣＰＵ間でデータ交換を行う産業用機器において、ノイズ等によってウエイト信号がアサート状態に固着すると、ＣＰＵが停止状態となり、産業用機器が所望の機能を実行しない可能性がある。また、ウエイト信号を用いない場合、デュアルポートメモリにおいてメモリアクセスの競合が生じると、２つのＣＰＵ間で所望のデータ交換を行うことができなくなり、産業用機器が所望の動作を実行しない可能性がある。
【０００６】
本発明の目的は、適用される機器の誤動作を防止できるマルチプロセッサシステムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の一態様によるマルチプロセッサシステムは、第１書込データ及び第１読出データが入出力される第１入出力ポートと、前記第１入出力ポートとは独立して設けられて第２書込データ及び第２読出データが入出力される第２入出力ポートと、前記第１書込データ及び前記第２書込データを記憶する記憶部とを備えたデュアルポートメモリと、クロック信号を発信するクロック信号発信器と、前記クロック信号に同期せずに動作し、前記デュアルポートメモリにおいて入出力される第１書込データ及び第１読出データを処理する第１処理装置と、前記クロック信号に同期せずに動作し、前記デュアルポートメモリにおいて入出力される第２書込データ及び第２読出データを処理する第２処理装置と、前記クロック信号に同期して動作し、前記デュアルポートメモリに対する前記第１処理装置のアクセスを制御する第１メモリアクセスコントローラと、前記クロック信号に同期して動作し、前記デュアルポートメモリに対する前記第２処理装置のアクセスを制御する第２メモリアクセスコントローラとを有し、前記第１メモリアクセスコントローラが前記デュアルポートメモリに第１書込データを書込む第１データ書込タイミング、前記第１メモリアクセスコントローラが前記デュアルポートメモリから第１読出データを読込む第１データ読込タイミング、前記第２メモリアクセスコントローラが前記デュアルポートメモリに第２書込データを書込む第２データ書込タイミング、及び前記第２メモリアクセスコントローラが前記デュアルポートメモリから第２読出データを読込む第２データ読込タイミングは、前記クロック信号に同期しており、前記クロック信号は、前記デュアルポートメモリでのデータ書込みの終了タイミングから前記第１メモリアクセスコントローラ及び前記第２メモリアクセスコントローラのいずれか一方でのデータ読込みのタイミングまでの遅延時間と、前記デュアルポートメモリから前記一方で正規のデータを読込むためのセットアップ時間とに基づいて設定されていることを特徴とする。
【発明の効果】
【０００８】
本発明の一態様によれば、適用される機器の誤動作を防止できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施形態によるマルチプロセッサシステムの概略構成を示すブロック図である。
【図２】本発明の第１実施形態によるマルチプロセッサシステムに備えられた第１メモリアクセスコントローラの概略構成を示すブロック図である。
【図３】本発明の第１実施形態によるマルチプロセッサシステムにおけるデータ書込み動作のタイミングチャートを示す図である。
【図４】本発明の第１実施形態によるマルチプロセッサシステムにおけるデータ読出し動作のタイミングチャートを示す図である。
【図５】本発明の第１実施形態によるマルチプロセッサシステムにおいて、データ書込み及びデータ読出しの競合が生じた場合のタイミングチャートを示す図である。
【図６】本発明の第１実施形態によるマルチプロセッサシステムにおいて、データ書込みの競合が生じた場合のタイミングチャートを示す図である。
【図７】本発明の第２実施形態によるマルチプロセッサシステムの概略構成を示すブロック図である。
【図８】本発明の第２実施形態によるマルチプロセッサシステムに備えられた第１メモリアクセスコントローラの概略構成を示すブロック図である。
【図９】本発明の第２実施形態によるマルチプロセッサシステムにおけるデータ書込み動作のタイミングチャートを示す図である。
【図１０】本発明の第２実施形態によるマルチプロセッサシステムにおけるデータ読出し動作のタイミングチャートを示す図である。
【発明を実施するための形態】
【００１０】
〔第１実施形態〕
本発明の第１実施形態によるマルチプロセッサシステムについて図１から図６を用いて説明する。本実施形態によるマルチプロセッサシステムは、例えば産業用機器に適用され、例えばデュアルポートメモリを用いて２つの処理装置の間でデータ交換できる。
【００１１】
［マルチプロセッサシステムの概略構成］
図１に示すように、マルチプロセッサシステム１は、第１データが入出力される第１入出力ポート１３１と、第１入出力ポート１３１とは独立して設けられて第２データが入出力される第２入出力ポート１３２と、第１及び第２データを記憶する記憶部１３３とを備えたデュアルポートメモリ１３を有している。後述する第１書込データＬ＿ＤＴ１及び第１読出データＬ＿ＤＴ２が第１データに対応し、後述する第２書込データＲ＿ＤＴ１及び第２読出データＲ＿ＤＴ２が第２データに対応する。なお、図１では、第１入出力ポートは「第１Ｉ／Ｏポート」として図示され、第２入出力ポートは「第２Ｉ／Ｏポート」として図示され、デュアルポートメモリ（Ｄｕａｌ  Ｐｏｒｔ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、「ＤＰ−ＲＡＭ」として図示されている。
【００１２】
デュアルポートメモリ１３に備えられた記憶部１３３は、アレイ構造のメモリセルを有している。デュアルポートメモリ１３は、第１入出力ポート１３１を介して入力される第１データ書込指示信号Ｌ＿ＷＲ１及び第１アドレス信号Ｌ＿ＡＤＲに応じて、これらの信号とともに入力される第１書込データＬ＿ＤＴ１を記憶部１３３に備えられたメモリセルに書き込むようになっている。また、デュアルポートメモリ１３は、第２入出力ポート１３２を介して入力される第２データ書込信号Ｒ＿ＷＲ２及び第２アドレス信号Ｒ＿ＡＤＲに応じて、これらの信号とともに入力される第２書込データＲ＿ＤＴ１を記憶部１３３に備えられたメモリセルに書き込むようになっている。また、デュアルポートメモリ１３は、第１入出力ポート１３１を介して入力される第１データ読出信号Ｌ＿ＲＤ２及び第１アドレス信号Ｌ＿ＡＤＲに応じて、記憶部１３３に備えられたメモリセルから第１読出データＬ＿ＤＴ２を読出すようになっている。さらに、デュアルポートメモリ１３は、第２入出力ポート１３２を介して入力される第２データ読出信号Ｒ＿ＲＤ２及び第２アドレス信号Ｒ＿ＡＤＲに応じて、記憶部１３３に備えられたメモリセルから第２読出データＲ＿ＤＴ２を読出すようになっている。
【００１３】
第１入出力ポート１３１には、第１アドレス信号Ｌ＿ＡＤＲ、第１データ書込信号Ｌ＿ＷＲ２、第１データ読出信号Ｌ＿ＲＤ２が入力される入力端子（不図示）が設けられている。また、第１入出力ポート１３１には、第１書込データＬ＿ＤＴ１が入力され第１読出データＬ＿ＤＴ２が出力される入出力端子（不図示）が設けられている。第２入出力ポート１３２には、第２アドレス信号Ｒ＿ＡＤＲ、第２データ書込信号Ｒ＿ＷＲ２、第２データ読出信号Ｒ＿ＲＤ２が入力される入力端子（不図示）が設けられている。また、第２入出力ポート１３２には、第２書込データＲ＿ＤＴ１が入力され第２読出データＲ＿ＤＴ２が出力される入出力端子（不図示）が設けられている。
【００１４】
また、マルチプロセッサシステム１は、デュアルポートメモリ１３において入出力される第１データを処理する第１ＣＰＵ（第１処理装置の一例）１１と、デュアルポートメモリ１３において入出力される第２データを処理する第２ＣＰＵ（第２処理装置の一例）１２とを有している。
【００１５】
また、マルチプロセッサシステム１は、クロック信号ＣＬＫを発信するクロック信号発信器１４と、クロック信号ＣＬＫに同期して動作する第１メモリアクセスコントローラ１５及び第２メモリアクセスコントローラ１６とを有している。第１メモリアクセスコントローラ１５は、デュアルポートメモリ１３に対する第１ＣＰＵ１１のアクセスを制御するようになっている。第２メモリアクセスコントローラ１６は、デュアルポートメモリ１３に対する第２ＣＰＵ１２のアクセスを制御するようになっている。
【００１６】
第１ＣＰＵ１１は、デュアルポートメモリ１３及び第１メモリアクセスコントローラ１５と接続されている。第１ＣＰＵ１１は、第１書込データＬ＿ＤＴ１を書き込む対象のメモリセル又は第１読出データＬ＿ＤＴ２の読出し対象のメモリセルのアドレスを指定するための第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３に出力する。第１アドレス信号Ｌ＿ＡＤＲは、第１入出力ポート１３１を介して記憶部１３３に入力される。また、第１アドレス信号Ｌ＿ＡＤＲは第１メモリアクセスコントローラ１５にも入力される。第１アドレス信号Ｌ＿ＡＤＲは、第１ＣＰＵ１１とデュアルポートメモリ１３との間及び第１ＣＰＵ１１と第１メモリアクセスコントローラ１５との間に設けられた第１アドレスバスライン２１を通してデュアルポートメモリ１３及び第１メモリアクセスコントローラ１５にそれぞれ送信される。
【００１７】
また、第１ＣＰＵ１１は、データ書込みを指示するための第１データ書込指示信号Ｌ＿ＷＲ１と、データ読出しを指示するための第１データ読出指示信号Ｌ＿ＲＤ１とを第１メモリアクセスコントローラ１５に出力する。また、第１ＣＰＵ１１は、デュアルポートメモリ１３に書き込むための第１書込データＬ＿ＤＴ１を第１メモリアクセスコントローラ１５に出力する。さらに、第１ＣＰＵ１１には、デュアルポートメモリ１３から読み出されて第１メモリアクセスコントローラ１５から出力された第１読出データＬ＿ＤＴ２が入力されるようになっている。
【００１８】
第１ＣＰＵ１１と第１メモリアクセスコントローラ１５との間には、ＣＰＵ側第１データバスライン２２が設けられている。マルチプロセッサシステム１は、第１メモリアクセスコントローラ１５とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３に書込まれる第１データと、デュアルポートメモリから読出される第１データとを送信可能なメモリ側第１データバスライン（第１データバスラインの一例）２３を有している。メモリ側第１データバスライン２３は、第１メモリアクセスコントローラ１５と第１入出力ポート１３１との間に設けられている。第１書込データＬ＿ＤＴ１は、ＣＰＵ側第１データバスライン２２を通して第１メモリアクセスコントローラ１５に送信される。第１メモリアクセスコントローラ１５に送信された第１書込データＬ＿ＤＴ１は、メモリ側第１データバスライン２３を通してデュアルポートメモリ１３に送信され、第１入出力ポート１３１を介してデュアルポートメモリ１３に入力される。第１読出データＬ＿ＤＴ２は、第１入出力ポート１３１を介してメモリ側第１データバスライン２３に出力され、メモリ側第１データバスライン２３を通して第１メモリアクセスコントローラ１５に入力される。第１メモリアクセスコントローラ１５に入力された第１読出データＬ＿ＤＴ２は、ＣＰＵ側第１データバスライン２２を通して第１ＣＰＵ１１に送信される。メモリ側第１データバスライン２３は、第１データを双方向に送信可能になっている。
【００１９】
第１メモリアクセスコントローラ１５は、デュアルポートメモリ１３と接続されている。第１メモリアクセスコントローラ１５は、第１ＣＰＵ１１から入力される第１データ書込指示信号Ｌ＿ＷＲ１に基づいて、第１データ書込信号Ｌ＿ＷＲ２をデュアルポートメモリ１３に出力する。また、第１メモリアクセスコントローラ１５は、第１ＣＰＵ１１から入力される第１データ読出指示信号Ｌ＿ＲＤ１に基づいて、第１データ読込信号の１つである第１データ読出信号Ｌ＿ＲＤ２をデュアルポートメモリ１３に出力する。第１メモリアクセスコントローラ１５は、クロック信号発信器１４から出力されるクロック信号ＣＬＫに同期させて第１データ書込信号Ｌ＿ＷＲ２や第１データ読出信号Ｌ＿ＲＤ２をデュアルポートメモリ１３に出力するようになっている。なお、第１メモリアクセスコントローラ１５の内部構成については後述する。
【００２０】
第２ＣＰＵ１２は、デュアルポートメモリ１３及び第２メモリアクセスコントローラ１６と接続されている。第２ＣＰＵ１２は、第２書込データＲ＿ＤＴ１を書き込む対象のメモリセル又は第２読出データＲ＿ＤＴ２の読出し対象のメモリセルのアドレスを指定するための第２アドレス信号Ｒ＿ＡＤＲをデュアルポートメモリ１３に出力する。第２アドレス信号Ｒ＿ＡＤＲは、第２入出力ポート１３２を介して記憶部１３３に入力される。また、第２アドレス信号Ｌ＿ＡＤＲは第２メモリアクセスコントローラ１６にも入力される。第２アドレス信号Ｒ＿ＡＤＲは、第２ＣＰＵ１２とデュアルポートメモリ１３との間及び第２ＣＰＵ１２と第２メモリアクセスコントローラ１６との間に設けられた第２アドレスバスライン３１を通してデュアルポートメモリ１３及び第２メモリアクセスコントローラ１６にそれぞれ送信される。
【００２１】
また、第２ＣＰＵ１２は、データ書込みを指示するための第２データ書込指示信号Ｒ＿ＷＲ１と、データ読出しを指示するための第２データ読出指示信号Ｒ＿ＲＤ１とを第２メモリアクセスコントローラ１６に出力する。また、第２ＣＰＵ１２は、デュアルポートメモリ１３に書き込むための第２書込データＲ＿ＤＴ１を第２メモリアクセスコントローラ１６に出力する。さらに、第２ＣＰＵ１２には、デュアルポートメモリ１３から読み出されて第２メモリアクセスコントローラ１６から出力された第２読出データＲ＿ＤＴ２が入力されるようになっている。
【００２２】
第２ＣＰＵ１２と第２メモリアクセスコントローラ１６との間には、ＣＰＵ側第２データバスライン３２が設けられている。マルチプロセッサシステム１は、第２メモリアクセスコントローラ１６とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３に書込まれる第２データと、デュアルポートメモリ１３から読出される第２データとを送信可能なメモリ側第２データバスライン（第２データバスラインの一例）３３を有している。メモリ側第２データバスライン３３は、第２メモリアクセスコントローラ１６と第２入出力ポート１３２との間に設けられている。第２書込データＲ＿ＤＴ１は、ＣＰＵ側第２データバスライン３２を通して第２メモリアクセスコントローラ１６に送信される。第２メモリアクセスコントローラ１６に送信された第２書込データＲ＿ＤＴ１は、メモリ側第２データバスライン３３を通してデュアルポートメモリ１３に送信され、第２入出力ポート１３２を介してデュアルポートメモリ１３に入力される。第２読出データＲ＿ＤＴ２は、第２入出力ポート１３２を介してメモリ側第２データバスライン３３に出力され、メモリ側第２データバスライン３３を通して第２メモリアクセスコントローラ１６に入力される。第２メモリアクセスコントローラ１６に入力された第２読出データＲ＿ＤＴ２は、ＣＰＵ側第２データバスライン３２を通して第２ＣＰＵ１２に送信される。メモリ側第２データバスライン３３は、第２データを双方向に送信可能になっている。
【００２３】
第２メモリアクセスコントローラ１６は、デュアルポートメモリ１３と接続されている。第２メモリアクセスコントローラ１６は、第２ＣＰＵ１２から入力される第２データ書込指示信号Ｒ＿ＷＲ１に基づいて、第２データ書込信号Ｒ＿ＷＲ２をデュアルポートメモリ１３に出力する。また、第２メモリアクセスコントローラ１６は、第２ＣＰＵ１２から入力される第２データ読出指示信号Ｒ＿ＲＤ１に基づいて、第２データ読込信号の１つである第２データ読出信号Ｒ＿ＲＤ２をデュアルポートメモリ１３に出力する。第２メモリアクセスコントローラ１６は、クロック信号発信器１４から出力されるクロック信号ＣＬＫに同期させて第２データ書込信号Ｒ＿ＷＲ２や第２データ読出信号Ｒ＿ＲＤ２をデュアルポートメモリ１３に出力するようになっている。なお、第２メモリアクセスコントローラ１６の内部構成については後述する。
【００２４】
マルチプロセッサシステム１を適用した産業用機器において、例えば第１ＣＰＵ１１は主処理用の処理装置として用いられ、第２ＣＰＵ１２は外部機器との外部通信用の処理装置として用いられる。第１ＣＰＵ１１は多量のデータをデュアルポートメモリ１３に送信して記憶させておく。第２ＣＰＵ１２はデュアルポートメモリ１３に記憶されたデータを読み出すとともに外部機器に送信する。第２ＣＰＵ１２が外部機器にデータを送信してからこの外部機器から所定の結果を受信するまでにはある程度の時間を要する。このため、第１ＣＰＵ１１は、第２ＣＰＵ１２が外部機器から受信した結果に基づくデータをデュアルポートメモリ１３に送信するまでの間に、別のデータ処理を継続することができる。これにより、マルチプロセッサシステム１を適用した産業用機器は、高速処理を実現できる。
【００２５】
また、デュアルポートメモリ１３は、第１及び第２入出力ポート１３１，１３２という互いに独立した２つの入出力ポートを有している。このため、第１及び第２ＣＰＵ１１，１２が互いに異なるアドレスに対応する記憶部１３３のメモリセルに第１及び第２入出力ポート１３１，１３２からアクセスする限りは、データの衝突が生じないようになっている。さらに、マルチプロセッサシステム１では、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３に第１書込データＬ＿ＤＴ１を書込む第１データ書込タイミング、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３から第１読出データＬ＿ＤＴ２を読込む第１データ読込タイミング、第２メモリアクセスコントローラ１６がデュアルポートメモリ１３に第２書込データＲ＿ＤＴ１を書込む第２データ書込タイミング、及び第２メモリアクセスコントローラ１６がデュアルポートメモリ１３から第２読出データＲ＿ＤＴ２を読込む第２データ読込タイミングは、クロック信号発信器１４が発信するクロック信号ＣＬＫに同期している。このため、デュアルポートメモリ１３に対して同一のアドレスに対応する記憶部１３３のメモリセルに対し、第１ＣＰＵ１１からの書込み（又は読出し）と第２ＣＰＵ１２からの読出し（又は書込み）の指示が競合しても、デュアルポートメモリ１３におけるデータの衝突や第１ＣＰＵ１１（又は第２ＣＰＵ１２）への不定値データ（詳細は後述）の送信を防止できる。これにより、マルチプロセッサシステム１は、適用される産業用機器の誤動作を防止できる。
【００２６】
［第１及び第２メモリアクセスコントローラの内部構成］
次に、第１及び第２メモリアクセスコントローラ１５，１６の内部構成について図２を用いて説明する。
図２に示すように、第１メモリアクセスコントローラ１５は、デュアルポートメモリ１３に第１書込データ（第１データの一例）Ｌ＿ＤＴ１を書込むための第１データ書込信号Ｌ＿ＷＲ２と、デュアルポートメモリ１３から第１読出データ（第１データの一例）Ｌ＿ＤＴ２を読込むための、第１データ読込信号に含まれる第１データ読出信号Ｌ＿ＲＤ２とを発生する第１アクセス信号発生部１５１を備えている。第１アクセス信号発生部１５１には、第１アドレス信号Ｌ＿ＡＤＲ、第１データ書込指示信号Ｌ＿ＷＲ１、第１データ読出指示信号Ｌ＿ＲＤ１及びクロック信号ＣＬＫが入力される。ところで、図１には、第１ＣＰＵ１１のアクセス先として、デュアルポートメモリ１３が図示されている。実際には、第１ＣＰＵ１１のアクセス先は、図示しない他の部品（例えば通信回路など）も存在する。第１アドレス信号Ｌ＿ＡＤＲが第１メモリアクセスコントローラ１５に入力され、デュアルポートメモリ１３にアクセスする場合のみ第１メモリアクセスコントローラ１５は動作するように構成されている。
【００２７】
第１アクセス信号発生部１５１は、非アクセス状態時に、信号状態が無効状態すなわちネゲート状態にある第１データ書込信号Ｌ＿ＷＲ２及び第１データ読出信号Ｌ＿ＲＤ２をデュアルポートメモリ１３の第１入出力ポート１３１に対して出力している。第１アクセス信号発生部１５１は、第１データ書込指示信号Ｌ＿ＷＲ１が有効状態すなわちアサート状態になると、クロック信号ＣＬＫに同期させて第１データ書込信号Ｌ＿ＷＲ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。また、第１アクセス信号発生部１５１は、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態になると、クロック信号ＣＬＫに同期させて第１データ読出信号Ｌ＿ＲＤ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。
【００２８】
また、第１アクセス信号発生部１５１は、第１データ書込制御信号ＷＯＥ、第１データ読出制御信号ＲＯＥ及び第１データ保持信号ＲＤＬを発生する。第１アクセス信号発生部１５１は、発生した第１データ書込制御信号ＷＯＥを第１書込ゲート部１５２（詳細は後述）に出力し、発生した第１データ読出制御信号ＲＯＥ及び第１データ保持信号ＲＤＬを第１保持部１５３（詳細は後述）に出力する。
【００２９】
第１メモリアクセスコントローラ１５は、第１アクセス信号発生部１５１から入力されて第１データ読込信号の１つである第１データ保持信号ＲＤＬが有効状態から無効状態に切り替わる時に、デュアルポートメモリ１３から読出された第１読出データ（第１データの一例）Ｌ＿ＤＴ２を保持する第１保持部１５３を備えている。第１データ保持信号ＲＤＬは、第１保持部１５３に設けられた保持信号入力端子ＬＴに入力される。
【００３０】
第１保持部１５３は、第１アクセス信号発生部１５１から入力される第１データ読出制御信号ＲＯＥが有効状態の時にデュアルポートメモリ１３から読出され保持している第１読出データＬ＿ＤＴ２を第１ＣＰＵ１１に出力する。また、第１保持部１５３は、第１データ読出制御信号ＲＯＥが無効状態の時に出力部である出力端子ＯＵＴをハイインピーダンス状態とするようになっている。第１データ読出制御信号ＲＯＥは、第１保持部１５３に設けられた制御信号入力端子ＯＥに入力される。
【００３１】
第１保持部１５３の入力端子ＩＮは、メモリ側第１データバスライン２３に接続されている。デュアルポートメモリ１３の記憶部１３３から読出された第１読出データＬ＿ＤＴ２は、第１入出力ポート１３１及びメモリ側第１データバスライン２３を介して第１保持部１５３の入力端子ＩＮに入力される。第１保持部１５３の出力端子ＯＵＴは、ＣＰＵ側第１データバスライン２２に接続されている。第１保持部１５３に保持されている第１読出データＬ＿ＤＴ２は、出力端子ＯＵＴ及びＣＰＵ側第１データバスライン２２を介して第１ＣＰＵ１１に送信される。
【００３２】
第１メモリアクセスコントローラ１５は、第１ＣＰＵ１１から入力される第１書込データＬ＿ＤＴ１をデュアルポートメモリ１３に出力可能な状態と、第１書込データＬ＿ＤＴ１の入出力が不可能なハイインピーダンス状態とに可逆的に切り替わる第１書込ゲート部１５２を備えている。
【００３３】
第１書込ゲート部１５２は、アクセス信号発生部１５１から入力される第１データ書込制御信号ＷＯＥの信号状態が有効状態の時に第１書込データＬ＿ＤＴ１を入出力可能な状態となる。一方、第１書込ゲート部１５２は、第１データ書込制御信号ＷＯＥの信号状態が無効状態の時に入力端子ＩＮ及び出力端子ＯＵＴがハイインピーダンス状態となる。第１データ書込制御信号ＷＯＥは、第１書込ゲート部１５２に設けられた制御信号入力端子ＯＥに入力される。
【００３４】
第１書込ゲート部１５２の入力端子ＩＮは、ＣＰＵ側第１データバスライン２２に接続されている。第１書込ゲート部１５２の出力端子ＯＵＴは、メモリ側第１データバスライン２３に接続されている。第１ＣＰＵ１１から出力された第１書込データＬ＿ＤＴ１は、第１書込ゲート部１５２の入力端子ＩＮ及び出力端子ＯＵＴを介してメモリ側第１データバスライン２３に出力され、第１入出力ポート１３１を介してデュアルポートメモリ１３の記憶部１３３に記憶される。第１書込ゲート部１５２は、保持機能を有していないため、入力端子ＩＮから入力された第１書込データＬ＿ＤＴ１は、第１書込ゲート部１５２内に留まることなく出力端子ＯＵＴから出力される。
【００３５】
第１書込ゲート部１５２の入力端子ＩＮは第１保持部１５３の出力端子ＯＵＴにも接続されており、第１書込ゲート部１５２の出力端子ＯＵＴは第１保持部１５３の入力端子ＩＮにも接続されている。アクセス信号発生部１５１は、第１アドレス信号Ｌ＿ＡＤＲが入力され、かつ入力される第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態になることによって第１データ書込制御信号ＷＯＥをアサート状態とする。また、アクセス信号発生部１５１は、第１アドレス信号Ｌ＿ＡＤＲが入力され、かつ入力される第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態になることによって第１データ読出制御信号ＲＯＥをアサート状態とする。第１ＣＰＵ１１は、第１データ書込指示信号Ｌ＿ＷＲ１と第１データ読出指示信号Ｌ＿ＲＤ１とを同時期にアサート状態にしない。このため、第１データ書込制御信号ＷＯＥと第１データ読出制御信号ＲＯＥ及び第１データ保持信号ＲＤＬとは同時期にアサート状態にならない。その結果、第１書込ゲート部１５２がデータを入出力可能な状態になる時と、第１保持部１５３が保持可能状態になる時とは時間的に重ならない。これにより、第１書込ゲート部１５２の出力端子ＯＵＴから出力された第１書込データＬ＿ＤＴ１が第１保持部１５３に保持されることはない。また、第１保持部１５３がデータを保持及び出力可能な状態にある時は、第１保持部１５３の出力端子ＯＵＴから出力された第１読出データＬ＿ＤＴ２が第１書込ゲート部１５２の出力端子ＯＵＴから出力されることはない。
【００３６】
次に、第２メモリアクセスコントローラ１６の内部構成について、図１及び図２を参照しつつ説明する。図示は省略するが、第２メモリアクセスコントローラ１６は、第１メモリアクセスコントローラ１５と同一の構成を有し、同一の機能を発揮するようになっている。すなわち、第２メモリアクセスコントローラ１６は、デュアルポートメモリ１３に第２書込データ（第２データの一例）Ｒ＿ＤＴ１を書込むための第２データ書込信号Ｒ＿ＷＲ２と、デュアルポートメモリ１３から第２読出データ（第２データの一例）Ｒ＿ＤＴ２を読込むための、第２データ読込信号の１つである第２データ読出信号Ｒ＿ＲＤ２とを発生する第２アクセス信号発生部を備えている。第２アクセス信号発生部には、第２データ書込指示信号Ｒ＿ＷＲ１、第２データ読出指示信号Ｒ＿ＲＤ１及びクロック信号ＣＬＫが入力される。
【００３７】
第２アクセス信号発生部は、非アクセス状態時に、信号状態が無効状態すなわちネゲート状態にある第２データ書込信号Ｒ＿ＷＲ２及び第２データ読出信号Ｒ＿ＲＤ２をデュアルポートメモリ１３の第２入出力ポート１３２に対して出力している。第２アクセス信号発生部は、第２データ書込指示信号Ｒ＿ＷＲ１が有効状態すなわちアサート状態になると、クロック信号ＣＬＫに同期させて第２データ書込信号Ｒ＿ＷＲ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。また、第２アクセス信号発生部は、第２データ読出指示信号Ｒ＿ＲＤ１がアサート状態になると、クロック信号ＣＬＫに同期させて第２データ読出信号Ｒ＿ＲＤ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。
【００３８】
また、第２アクセス信号発生部は、第２データ書込制御信号、第２データ読出制御信号及び第２データ保持信号を発生する。第２アクセス信号発生部は、発生した第２データ書込制御信号を第２書込ゲート部（詳細は後述）に出力し、発生した第２データ読出制御信号及び第２データ保持信号を第２保持部（詳細は後述）に出力する。
【００３９】
第２メモリアクセスコントローラ１６は、第２アクセス信号発生部から入力されて第２データ読込信号の１つである第２データ保持信号が有効状態から無効状態に切り替わる時に、デュアルポートメモリ１３から読出された第２読出データ（第２データの一例）Ｒ＿ＤＴ２を保持する第２保持部を備えている。第２保持部は、第１保持部１５３と同一の構成を有し、同一の機能を発揮するようになっている。第２データ保持信号（第１データ保持信号ＲＤＬに対応する）は、第２保持部に設けられた保持信号入力端子（保持信号入力端子ＬＴに対応する）に入力される。
【００４０】
第２保持部は、第２アクセス信号発生部から入力される第２データ読出制御信号（第１データ読出制御信号ＲＯＥに対応する）が有効状態の時にデュアルポートメモリ１３から読出され保持している第２読出データＲ＿ＤＴ２を第２ＣＰＵ１２に出力する。また、第２保持部は、第２データ読出制御信号が無効状態の時に出力部である出力端子（出力端子ＯＵＴに対応する）をハイインピーダンス状態とするようになっている。第２データ読出制御信号は、第２保持部に設けられた制御信号入力端子（制御信号入力端子ＯＥに対応する）に入力される。
【００４１】
第２保持部の入力端子は、メモリ側第２データバスライン３３に接続されている。デュアルポートメモリ１３の記憶部１３３から読出された第２読出データＲ＿ＤＴ２が第２ＣＰＵ１２に入力される信号の流れは、記憶部１３３から読出された第１読出データＬ＿ＤＴ２が第１ＣＰＵ１１に入力される流れと同様である。すなわち、記憶部１３３から読出された第２読出データＬ＿ＤＴ２が第２ＣＰＵ１２に入力される信号の流れは、上述の第１読出データＲ＿ＤＴ２の流れにおいて、「第１」を「第２」に読み替えたのと同様である。
【００４２】
第２メモリアクセスコントローラ１６は、第２ＣＰＵ１２から入力される第２書込データＲ＿ＤＴ１をデュアルポートメモリ１３に出力可能な状態と、第２書込データＲ＿ＤＴ１の入出力が不可能なハイインピーダンス状態とに可逆的に切り替わる第２書込ゲート部を備えている。
【００４３】
第２書込ゲート部は、第１書込ゲート部１５２と同一の構成を有し、同一の機能を発揮するようになっている。第２書込ゲート部は、第２アクセス信号発生部から入力される第２データ書込制御信号（第１データ書込制御信号ＷＯＥに対応する）の信号状態が有効状態の時に第２書込データＲ＿ＤＴ１を出力可能な状態となる。一方、第２書込ゲート部は、第２データ書込制御信号の信号状態が無効状態の時に出力端子（出力端子ＯＵＴに対応する）がハイインピーダンス状態となる。第２データ書込制御信号は、第２書込ゲート部に設けられた制御信号入力端子（第１書込ゲート部１５２に設けられた制御信号入力端子ＯＥに対応する）に入力される。
【００４４】
第２書込ゲート部の入力端子は、ＣＰＵ側第２データバスライン３２に接続されている。第２書込ゲート部の出力端子は、メモリ側第２データバスライン３３に接続されている。第２ＣＰＵ１２から出力された第２書込データＲ＿ＤＴ１がデュアルポートメモリ１３に書込まれる信号の流れは、第１ＣＰＵ１１から出力された第１書込データＬ＿ＤＴ１がデュアルポートメモリ１３に書込まれる流れと同様である。すなわち、第２ＣＰＵ１２から出力された第２書込データＲ＿ＤＴ１がデュアルポートメモリ１３に書込まれる信号の流れは、上述の第１書込データＬ＿ＤＴ１の流れにおいて、「第１」を「第２」に読み替えたのと同様である。
【００４５】
第２書込ゲート部の入力端子は第２保持部の出力端子にも接続されており、第２書込ゲート部の出力端子は第２保持部の入力端子にも接続されている。しかしながら、第２メモリアクセスコントローラ１６は、第１メモリアクセスコントローラ１５と同様に動作し、かつ第２ＣＰＵ１２は第２データ書込指示信号Ｒ＿ＷＲ１と第２データ読出指示信号Ｒ＿ＲＤ１とを同時期にアサート状態にしない。このため、第２メモリアクセスコントローラ１６においても、第２書込ゲート部がデータを入出力可能な状態になる時と、第２保持部が保持可能状態になる時とは時間的に重ならない。これにより、第２書込ゲート部の出力端子から出力された第２書込データＲ＿ＤＴ１が第２保持部に保持されることはない。さらに、第２保持部の出力端子から出力された第２読出データＲ＿ＤＴ２が第２書込ゲート部の出力端子から出力されることはない。
【００４６】
［マルチプロセッサシステムの動作］
次に、本実施形態によるマルチプロセッサシステム１の動作について、図１及び図２を参照しつつ図３から図６を用いて説明する。まず、マルチプロセッサシステム１における第１メモリアクセスコントローラ１５のデータ書込み動作について説明する。図３に示すデータ書込み動作のタイミングチャートにおいて、図３中に示す「Ｌ＿ＤＴ１（２２）」はＣＰＵ側第１データバスライン２２に入力された第１書込データＬ＿ＤＴ１を示し、「Ｌ＿ＷＲ１」は第１データ書込指示信号Ｌ＿ＷＲ１を示し、「ＷＯＥ」は第１データ書込制御信号ＷＯＥを示し、「Ｌ＿ＤＴ１（２３）はメモリ側第１データバスライン２３に入力された第１書込データＬ＿ＤＴ１を示し、「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｌ＿ＷＲ２」は第１データ書込信号Ｌ＿ＷＲ２を示している。図３において、左から右に向かって時の経過が表されている。
【００４７】
デュアルポートメモリ１３は、第１ＣＰＵ１１及び第２ＣＰＵ１２のメモリ空間にマッピングされている。第１ＣＰＵ１１は、第１書込データＬ＿ＤＴ１をデュアルポートメモリ１３に書込む際に、記憶部１３３の書込み対象のメモリセルの情報を含む第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３及び第１メモリアクセスコントローラ１５に出力する。
【００４８】
図３に示すように、第１アドレス信号Ｌ＿ＡＤＲが出力される際に、デュアルポートメモリ１３に書込むための第１書込データＬ＿ＤＴ１が第１ＣＰＵ１１からＣＰＵ側第１データバスライン２２に出力される。図３では、値「０ｘ１２３４」の第１書込データＬ＿ＤＴ１が出力された状態が図示されている。なお、値「０ｘ１２３４」は、Ｃ言語における言語仕様で表されている。後述する図４、図５、図９及び図１０に示す各データの値の表記方法も同様にＣ言語における言語仕様で表されている。したがって、値「０ｘ１２３４」は、１０進数の「４６６０」に相当する。
【００４９】
さらに、図３に示すように、値「０ｘ１２３４」の第１アドレス信号Ｌ＿ＡＤＲが出力された後に、信号レベルが高レベルから低レベルへの切り替えが開始され、時刻ｔ１において低レベルとなる第１データ書込指示信号Ｌ＿ＷＲ１が第１ＣＰＵ１１から第１メモリアクセスコントローラ１５に出力される。第１データ書込指示信号Ｌ＿ＷＲ１は、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる信号である。したがって、第１データ書込指示信号Ｌ＿ＷＲ１は時刻ｔ１においてアサート状態になる。
【００５０】
また、第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態となったことを受けて時刻ｔ１において、信号レベルが高レベルから低レベルへの切り替えが開始される第１データ書込制御信号ＷＯＥが第１ＣＰＵ１１から第１メモリアクセスコントローラ１５に出力される。第１データ書込制御信号ＷＯＥは、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。第１データ書込制御信号ＷＯＥがアサート状態の期間では、第１書込ゲート部１５２は第１書込データＬ＿ＤＴ１の出力が可能な状態すなわち出力イネーブルとなる。一方、図示は省略するが、第１データ書込制御信号ＷＯＥがアサート状態にあると、第１データ読出制御信号ＲＯＥはネゲート状態となるので、第１保持部１５３の出力端子ＯＵＴはハイインピーダンス状態となる。第１データ書込制御信号ＷＯＥがアサート状態になると、ＣＰＵ側第１データバスライン２２に入力された値「０ｘ１２３４」の第１書込データＬ＿ＤＴ１は、第１書込ゲート部１５２の出力端子ＯＵＴからメモリ側第１データバスライン２３への出力が開始される。
【００５１】
第１データ書込制御信号ＷＯＥがアサート状態に切り替わった後の、クロック信号ＣＬＫが立ち上がる時刻ｔ２において、クロック信号ＣＬＫのこの立ち上がりエッジに同期して信号レベルが高レベルから低レベルに切り替わる第１データ書込信号Ｌ＿ＷＲ２が第１アクセス信号発生部１５１からデュアルポートメモリ１３に出力される。第１データ書込信号Ｌ＿ＷＲ２は、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。したがって、図３に示すように、第１データ書込信号Ｌ＿ＷＲ２は、第１データ書込制御信号ＷＯＥがアサート状態になった後のクロック信号ＣＬＫの最初の立ち上がりエッジに同期してネゲート状態からアサート状態に切り替えられる。
【００５２】
図３に示すように、時刻ｔ２の後の時刻ｔ３において、クロック信号ＣＬＫが再び立ち上がる。時刻ｔ３でのクロック信号のこの立ち上がりエッジに同期して、第１アクセス信号発生部１５１からデュアルポートメモリ１３に出力される第１データ書込信号Ｌ＿ＷＲ２は、アサート状態からネゲート状態に切り替えられる。これにより、第１データ書込信号Ｌ＿ＷＲ２は、時刻ｔ２から時刻ｔ３というクロック信号ＣＬＫの１周期の期間だけ信号レベルが低レベルになるパルス信号となる。なお、図３では、第１データ書込信号Ｌ＿ＷＲ２はクロック信号ＣＬＫの１周期だけ低レベルになるパルス信号であるが、クロック信号ＣＬＫの複数周期の間で低レベルとなるパルス信号でもよい。また、第１データ書込信号Ｌ＿ＷＲ２はクロック信号ＣＬＫの立下りエッジに同期する信号でもよい。
【００５３】
図示は省略するが、第１データ書込信号Ｌ＿ＷＲ２がアサート状態からネゲート状態に切り替わることにより、メモリ側第１データバスライン２３に出力されている第１書込データＬ＿ＤＴ１の値（図３では、「０ｘ１２３４」）が、第１アドレス信号Ｌ＿ＡＤＲにおいて指定された記憶部１３３のメモリセルに記憶される。
【００５４】
このように、第１データ書込信号Ｌ＿ＷＲ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第１データ書込信号Ｌ＿ＷＲ２における第１書込データＬ＿ＤＴ１を書込むタイミングである。また、第１データ書込信号Ｌ＿ＷＲ２における第１書込データＬ＿ＤＴ１を書込むこのタイミングは、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３に第１書込データＬ＿ＤＴ１を書込む第１データ書込タイミングである。第１データ書込信号Ｌ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第１データ書込タイミングもクロック信号ＣＬＫに同期する。
【００５５】
その後、第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態からネゲート状態への切り替えが開始され、時刻ｔ４においてネゲート状態となる。また、時刻ｔ４において、第１データ書込指示信号Ｌ＿ＷＲ１がネゲート状態に切り替わることによって、第１データ書込制御信号ＷＯＥがアサート状態からネゲート状態への切り替えが開始され、その後ネゲート状態となる。このように、第１データ書込指示信号Ｌ＿ＷＲ１は、時刻ｔ１から時刻ｔ４の間に信号レベルが低レベルとなるパルス信号となる。また、第１データ書込制御信号ＷＯＥは、ほぼ時刻ｔ１から時刻ｔ４の間に信号レベルが低レベルとなるパルス信号となる。
【００５６】
時刻Ｔ４で、第１データ書込制御信号ＷＯＥがネゲート状態となることにより、第１書込ゲート部１５２の出力端子ＯＵＴはハイインピーダンス状態となる。
以上で、マルチプロセッサシステム１における第１メモリアクセスコントローラ１５での１つの第１書込データのデータ書込み動作が終了する。
【００５７】
第２メモリアクセスコントローラ１６のデータ書込み動作は、第１メモリアクセスコントローラ１５の動作の「第１」を「第２」に読み替えたのと同様である。したがって、第２データ書込信号Ｒ＿ＷＲ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第２データ書込信号Ｒ＿ＷＲ２における第２書込データＲ＿ＤＴ１を書込むタイミングである。また、第２データ書込信号Ｒ＿ＷＲ２における第２書込データＲ＿ＤＴ１を書込むこのタイミングは、第２メモリアクセスコントローラ１６がデュアルポートメモリ１３に第２書込データＲ＿ＤＴ１を書込む第２データ書込タイミングである。第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第２データ書込タイミングもクロック信号ＣＬＫに同期する。
【００５８】
次に、マルチプロセッサシステム１における第１メモリアクセスコントローラ１５のデータ読出し動作について説明する。図４に示すデータ読出し動作のタイミングチャートにおいて、図４中に示す「Ｌ＿ＲＤ１」は第１データ読出指示信号Ｌ＿ＲＤ１を示し、「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｌ＿ＲＤ２」は第１データ読出信号Ｌ＿ＲＤ２を示し、「Ｌ＿ＤＴ２（２３）」はデュアルポートメモリ１３から読み出されメモリ側第１データバスライン２３に入力された第１読出データＬ＿ＤＴ２を示し、「ＲＤＬ」は第１データ保持信号ＲＤＬを示し、「ＲＥＧ」は第１保持部１５３に保持された第１読出データＬ＿ＤＴ２を示し、「ＲＯＥ」は第１データ読出制御信号ＲＯＥを示し、「Ｌ＿ＤＴ２（２２）」はＣＰＵ側第１データバスライン２２に入力された第１読出データＬ＿ＤＴ２を示している。図４において、左から右に向かって時の経過が表されている。
【００５９】
デュアルポートメモリ１３は、第１ＣＰＵ１１及び第２ＣＰＵ１２のメモリ空間にマッピングされている。第１ＣＰＵ１１は、第１読出データＬ＿ＤＴ２をデュアルポートメモリ１３から読出す際に、記憶部１３３の読出し対象のメモリセルの情報を含む第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３及び第１メモリアクセスコントローラ１５に出力する。
【００６０】
第１アドレス信号Ｌ＿ＡＤＲの出力後、図４に示すように、第１データ読出指示信号Ｌ＿ＲＤ１が第１ＣＰＵ１１から第１メモリアクセスコントローラ１５に出力される。例えば、第１データ読出指示信号Ｌ＿ＲＤ１は、信号レベルが高レベルから低レベルへの切り替えが開始され、時刻ｔ１において低レベルとなる。第１データ読出指示信号Ｌ＿ＲＤ１は、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。
【００６１】
第１アドレス信号Ｌ＿ＡＤＲが入力され、かつ入力される第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態となった時刻ｔ１において、信号レベルが高レベルから低レベルへの切り替えが開始されて第１データ読出制御信号ＲＯＥが第１アクセス信号発生部１５１から第１保持部１５３に出力される。第１データ読出制御信号ＲＯＥは、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。第１データ読出制御信号ＲＯＥが低レベルであってアサート状態の期間では、第１保持部１５３は、保持している第１読出データＬ＿ＤＴ２を出力可能な状態すなわち出力イネーブルとなる。一方、図示は省略するが、第１データ読出制御信号ＲＯＥがアサート状態であると、第１データ書込制御信号ＷＯＥはネゲート状態となるので、第１書込ゲート部１５２の出力端子ＯＵＴはハイインピーダンス状態となる。これにより、図４に示すように、第１保持部１５３に保持されている第１読出データＬ＿ＤＴ２（本例では値「０ｘ１２３４」）がＣＰＵ側第１データバスライン２２に出力される。
【００６２】
また、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態に切り替わった後の時刻ｔ２におけるクロック信号ＣＬＫの最初の立ち上がりに同期して、図４に示すように、信号レベルが高レベルから低レベルに切り替わる第１データ読出信号Ｌ＿ＲＤ２が第１アクセス信号発生部１５１からデュアルポートメモリ１３に出力される。第１データ読出信号Ｌ＿ＲＤ２は、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。第１データ読出信号Ｌ＿ＲＤ２がアサート状態になると、デュアルポートメモリ１３に入力されている第１アドレス信号Ｌ＿ＡＤＲによって指定された記憶部１３３に記憶されているデータが第１読出データＬ＿ＤＴ２として読出される。このため、図４に示すように、時刻ｔ２において、例えば値「０ｘ５６７８」の第１読出データＬ＿ＤＴ２がデュアルポートメモリ１３からメモリ側第１データバスライン２３に出力される。
【００６３】
また、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態に切り替わった後の時刻ｔ２におけるクロック信号ＣＬＫの最初の立ち上がり同期して、図４に示すように、信号レベルが高レベルから低レベルに切り替わる第１データ保持信号ＲＤＬが第１アクセス信号発生部１５１から第１保持部１５３に出力される。第１データ保持信号ＲＤＬは、信号レベルが低レベル時にアサート状態となり高レベル時にネゲート状態となる。
【００６４】
図４に示すように、時刻ｔ３において、クロック信号ＣＬＫが再び立ち上がる。時刻ｔ３でのクロック信号のこの立ち上がりエッジに同期して、第１アクセス信号発生部１５１からデュアルポートメモリ１３に出力される第１データ読出信号Ｌ＿ＲＤ２がアサート状態からネゲート状態に切り替えられる。これにより、第１データ読出信号Ｌ＿ＲＤ２は、時刻ｔ２から時刻ｔ３というクロック信号ＣＬＫの１周期の期間だけ信号レベルが低レベルになるパルス信号となる。なお、図４では、第１データ読出信号Ｌ＿ＲＤ２はクロック信号ＣＬＫの１周期だけ低レベルになるパルス信号であるが、クロック信号ＣＬＫの複数周期の間で低レベルとなるパルス信号でもよい。また、第１データ読出信号Ｌ＿ＲＤ２はクロック信号ＣＬＫの立下りエッジに同期する信号でもよい。
【００６５】
第１データ読出信号Ｌ＿ＲＤ２がアサート状態からネゲート状態に切り替わることにより、デュアルポートメモリ１３は、メモリ側第１データバスライン２３への第１読出データＬ＿ＤＴ２の出力を終了する。
【００６６】
このように、第１データ読出信号Ｌ＿ＲＤ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第１読出データＬ＿ＤＴ２の読出しが終了するタイミングである。また、第１データ読出信号Ｌ＿ＲＤ２における第１読出データＬ＿ＤＴ２の読出しが終了するこのタイミングは、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３から第１読出データＬ＿ＤＴ２を読込む第１データ読込タイミングの１つである。第１データ読出信号Ｌ＿ＲＤ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第１データ読込タイミングもクロック信号ＣＬＫに同期する。
第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬのアサート状態からネゲート状態への切り替わりのタイミングはクロック信号ＣＬＫに同期しているので、第１保持部１５３が第１読出データＬ＿ＤＴ２に保持されるタイミングもクロック信号ＣＬＫに同期する。
【００６７】
また、図４に示すように、時刻ｔ３でのクロック信号のこの立ち上がりエッジに同期して、第１アクセス信号発生部１５１から第１保持部１５３に出力される第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替えられる。これにより、第１データ保持信号ＲＤＬは、時刻ｔ２から時刻ｔ３というクロック信号ＣＬＫの１周期の期間だけ信号レベルが低レベルになるパルス信号となる。なお、図４では、第１データ保持信号ＲＤＬはクロック信号ＣＬＫの１周期だけ低レベルになるパルス信号であるが、クロック信号ＣＬＫの複数周期の間で低レベルとなるパルス信号でもよい。また、第１データ保持信号ＲＤＬはクロック信号ＣＬＫの立下りエッジに同期する信号でもよい。
【００６８】
第１保持部１５３は、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わる時にメモリ側第１データバスライン２３に出力されている第１読出データＬ＿ＤＴ２を入力端子ＩＮを介して保持する。このため、図４に示すように、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わる時刻ｔ３において、第１保持部１５３に保持されるデータの値は、値「０ｘ１２３４」から、メモリ側第１データバスライン２３に出力されている第１読出データＬ＿ＤＴ２の値「０ｘ５６７８」に変更される。値「０ｘ５６７８」の第１読出データＬ＿ＤＴ２は、時刻ｔ３以降、第１データ読出制御信号ＲＯＥがネゲート状態に切り替わるまで第１保持部１５３からＣＰＵ側第１データバスライン２２に出力される。
【００６９】
このように、第１データ保持信号ＲＤＬがアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第１読出データＬ＿ＤＴ２を保持するタイミングである。また、第１データ保持信号ＲＤＬにおける第１読出データＬ＿ＤＴ２を保持するこのタイミングは、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３から第１読出データＬ＿ＤＴ２を読込む第１データ読込タイミングの１つである。第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第１データ第１保持部１５３が第１読出データＬ＿ＤＴ２に保持されるタイミングもクロック信号ＣＬＫに同期する。
【００７０】
図４に示すように、その後、第１データ読出指示信号Ｌ＿ＲＤ１は、アサート状態からネゲート状態への切り替えが開始され、時刻ｔ４においてネゲート状態となる。また、時刻ｔ４において、第１データ読出制御信号ＲＯＥは、アサート状態からネゲート状態への切り替えが開始され、その後ネゲート状態となる。このように、第１データ読出指示信号Ｌ＿ＲＤ１は、時刻ｔ１から時刻ｔ４の間に信号レベルが低レベルとなるパルス信号となる。また、第１データ読出制御信号ＲＯＥは、ほぼ時刻ｔ１から時刻ｔ４の間に信号レベルが低レベルとなるパルス信号となる。
【００７１】
また、第１データ読出制御信号ＲＯＥがネゲート状態となることにより、第１保持部１５３の出力端子ＯＵＴはハイインピーダンス状態となる。第１データ読出制御信号ＲＯＥがアサート状態からネゲート状態に切り替わることにより、第１保持部１５３は、ＣＰＵ側第１データバスライン２２への第１読出データＬ＿ＤＴ２の出力を終了する。第１データ保持信号ＲＤＬがネゲート状態である限りは、第１保持部１５３は値「０ｘ５６７８」の第１読出データＲ＿ＤＴ２を保持し続ける。本例では、ＣＰＵ側第１データバスライン２２に出力されている第１読出データＬ＿ＤＴ２の値は、時刻ｔ３で切り替わっているが、第１ＣＰＵ１１が第１読出データＬ＿ＤＴ２を取り込む時刻は、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態からネゲート状態に切り替わる時刻ｔ４である。時刻ｔ４では、ＣＰＵ側第１データバスライン２２に出力されている第１読出データＬ＿ＤＴ２の値は、所望の値「０ｘ５６７８」であるため問題は生じない。
以上で、マルチプロセッサシステム１における第１メモリアクセスコントローラ１５での１つのデータのデータ読込み動作が終了する。
【００７２】
第２メモリアクセスコントローラ１６のデータ読出し動作は、第１メモリアクセスコントローラ１５の動作の「第１」を「第２」に読み替えたのと同様である。すなわち、第２データ読出信号Ｒ＿ＲＤ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第２読出データＲ＿ＤＴ２の読出しが終了するタイミングである。また、第２データ読出信号Ｒ＿ＲＤ２における第２読出データＲ＿ＤＴ２の読出しが終了する。このタイミングは、第２メモリアクセスコントローラ１６がデュアルポートメモリ１３から第２読出データＲ＿ＤＴ２を読込む第２データ読込タイミングの１つである。第２データ読出信号Ｒ＿ＲＤ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第２データ読込タイミングもクロック信号ＣＬＫに同期する。
【００７３】
また、第２データ保持信号がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第２読出データＲ＿ＤＴ２を保持するタイミングである。また、第２データ保持信号における第２読出データＲ＿ＤＴ２を保持するこのタイミングは、第２メモリアクセスコントローラ１６がデュアルポートメモリ１３から第２読出データＲ＿ＤＴ２を読込む第２データ読込タイミングの１つである。第２データ保持信号がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第２データ読込タイミングもクロック信号ＣＬＫに同期する。
【００７４】
次に、同一のアドレスのメモリセルに対して第１ＣＰＵ１１及び第２ＣＰＵ１２からのアクセスが競合した場合について図１及び図２を参照しつつ図５及び図６を用いて説明する。図５では、第２ＣＰＵ１２のデータ書込み動作と、第１ＣＰＵ１１のデータ読出し動作がクロック信号ＣＬＫの１クロック差まで近接した状態のタイミングチャートが図示されている。図５中に示す「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｒ＿ＤＴ１（３３）」はメモリ側第２データバスライン３３に出力された第２書込データＲ＿ＤＴ１を示し、「Ｒ＿ＷＲ２」は第２データ書込信号Ｒ＿ＷＲ２を示し、「Ｌ＿ＤＴ２（２３）」はメモリ側第１データバスライン２３に出力された第１読出データＬ＿ＤＴ２を示し、「Ｌ＿ＲＤ２」は第１データ読出信号Ｌ＿ＲＤ２を示し、「ＲＤＬ」は第１データ保持信号ＲＤＬを示している。また、図５において、左から右に向かって時の経過が表されている。
【００７５】
図５に示すように、時刻ｔ１において、第２データ書込信号Ｒ＿ＷＲ２がクロック信号ＣＬＫの立ち上がりエッジに同期してアサート状態からネゲート状態に切り替えられる。上述のとおり、第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、第２書込データＲ＿ＤＴ１がデュアルポートメモリ１３に書き込まれる第２書込みタイミングである。このため、第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替わる時刻ｔ１において、メモリ側第２データバスライン３３に出力されている第２書込データＲ＿ＤＴ１がメモリセルに記憶される。図５では、値「０ｘ５６７８」の第２書込データＲ＿ＤＴ１が記憶部１３３のメモリセルに記憶される。値「０ｘ５６７８」は、第２ＣＰＵ１２からデュアルポートメモリ１３に入力された第２アドレス信号Ｒ＿ＡＤＲによって指定されたメモリセルに記憶される。
【００７６】
ところで、第２書込データＲ＿ＤＴ１及び第１読出データＬ＿ＤＴ２は多ビットのデータである。デュアルポートメモリ１３を構成するトランジスタには特性ばらつきがある。このトランジスタの特性バラつきにより、第２書込データＲ＿ＤＴ１を構成する各ビットのデータは、デュアルポートメモリ１３の記憶部１３３への書込み開始から書込み終了までの期間では過渡状態となる。ここで、第２書込データＲ＿ＤＴ１の書込み終了とは、第２書込データＲ＿ＤＴ１を構成する各ビットのデータの全てが記憶部１３３において書込むべき値で安定した状態になることをいう。また、デュアルポートメモリ１３を構成するトランジスタの特性ばらつきにより、デュアルポートメモリ１３からメモリ側第１データバスライン２３に読出された第１読出データＬ＿ＤＴ２が正規のデータの値になるには、第１読出データＬ＿ＤＴ２の読出し開始から出力遅延が生じる。ここで、正規のデータの値は、デュアルポートメモリ１３の記憶部１３３に記憶された読出し対象のデータと同じ値である。この出力遅延は、第１読出データＬ＿ＤＴ２を構成する各ビットのデータ毎に異なる場合がある。さらに、第２書込データＲ＿ＤＴ１を構成する各ビットにおいて、第２ＣＰＵ１２からデュアルポートメモリ１３までの配線の長さは相違している場合がある。この場合、デュアルポートメモリ１３からメモリ側第１データバスライン２３に読出された第１読出データＬ＿ＤＴ２が正規のデータの値になるには配線遅延が生じる。また、この配線遅延は、第１読出データＬ＿ＤＴ２を構成する各ビットのデータ毎に異なる場合がある。
【００７７】
このため、図５に示すように、時刻ｔ１において、第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替って第２メモリアクセスコントローラ１６によるデータ書込動作が終了し、第１メモリアクセスコントローラ１３によって第１読出データＬ＿ＤＴ２の各ビットのデータの読出しが同時に開始されたする。この場合であっても、メモリ側第１データバスライン２３に出力された第１読出データＬ＿ＤＴ２を構成する全てのビットのデータが正規のデータの値になるタイミングは、同時にならない場合がある。このため、図５に示すように、第１書込データＬ＿ＤＴ２のメモリセルからの読出し動作の開始からメモリ側第１データバスライン２３に出力される第１読出データＬ＿ＤＴ２が正規のデータの値になるまでに、読出遅延時間Ｔｄｅｌａｙ（以下、「読出遅延時間」を「遅延時間」と、「Ｔｄｅｌａｙ」を「Ｔｄ」と略記する）が生じる。遅延時間Ｔｄの期間では、第１書込データＬ＿ＤＴ２が正規のデータに変化する過渡状態にある。この過渡状態では、第１書込データＬ＿ＤＴ２の値は、それまで（図５では時刻ｔ１の直前）記憶部１３３に記憶されていた値（以下、「前回値」と称する場合がある）でもなく、時刻ｔ１において記憶部１３３に書込みが終了された値（以下、「今回値」と称する場合がある）でもない不定値となる。この不定値が読出されて第１ＣＰＵ１１又は第２ＣＰＵ１２に送信されてしまうと、マルチプロセッサシステム１を適用した産業用機器は、予期しない制御がなされて誤動作してしまう可能性がある。
【００７８】
このため、マルチプロセッサシステム１では、デュアルポートメモリ１３から第１メモリアクセスコントローラ１５にデータを読込む第１データ読込タイミングは、遅延時間Ｔｄよりも後のタイミングとなるように規定されている。すなわち、マルチプロセッサシステム１では、デュアルポートメモリ１３から第１メモリアクセスコントローラ１５にデータを読込むためのデータ読込信号である第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬは、メモリ側第１データバスライン２３に出力された第１読出データＬ＿ＤＴ２の値が正規のデータの値となる遅延時間Ｔｄよりも後にアサート状態からネゲート状態に切り替わるように規定される。
【００７９】
また、デュアルポートメモリ１３の記憶部１３３からメモリ側第１データバスライン２３に出力された正規のデータを第１メモリアクセスコントローラ１３に読込むためには、メモリ側第１データバスライン２３に出力された第１読出データＬ＿ＤＴ２の値が正規のデータの値となってから所定の時間、すなわちデータ・セットアップ時間Ｔｓｅｔｕｐ（以下、「データ・セットアップ時間」を「セットアップ時間」と、「Ｔｓｅｔｕｐ」を「Ｔｓ」と略記する）を確保する必要がある。つまり、第１データ読込タイミングの前、すなわち第１データ読出信号Ｌ＿ＲＤ２がアサート状態からネゲート状態に切り替わる前に、セットアップ時間Ｔｓを確保する必要がある。同様に、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わる前に、セットアップ時間Ｔｓを確保する必要がある。
【００８０】
さらに、第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬを発生する第１アクセス信号発生部１５１は、クロック信号ＣＬＫに同期して動作する。このため、第２データ書込タイミング及び第１データ読込タイミングはいずれもクロック信号に同期する。また、第２データ書込信号Ｒ＿ＷＲ２を発生する、第２メモリアクセスコントローラ１６に備えられた第２アクセス信号発生部は、第１アクセス信号発生部１５１が同期して動作するのと同じクロック信号ＣＬＫに同期して動作する。このため、第２データ書込信号Ｒ＿ＷＲ２もクロック信号に同期する。
【００８１】
第２データ書込信号Ｒ＿ＷＲ２、第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬは、クロック信号ＣＬＫのクロック周期によって規定される。その結果、マルチプロセッサシステム１では、第２データ書込タイミングと、この第２データ書込タイミングの直後の第１データ読込タイミングとの時間差は、クロック信号ＣＬＫのクロック周期の倍数となる。上述のとおり、本実施形態によるマルチプロセッサシステム１では、第２データ書込タイミング（例えば第２データ書込信号Ｒ＿ＷＲ２）と、この第２データ書込タイミングの直後の第１データ読込タイミング（例えば第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬの少なくとも一方）との時間差の最小値は、クロック信号ＣＬＫのクロック周期と同じになる。
【００８２】
そこで、本実施形態によるマルチプロセッサシステム１では、クロック信号発信器１４が発信するクロック信号ＣＬＫのクロック周期Ｔｐｒｉｏｄ（以下、「Ｔｐｒｉｏｄ」を「Ｔｐ」と略記する）は、デュアルポートメモリ１３のデータ書込みの遅延時間Ｔｄと、デュアルポートメモリ１３からデータを読込むためのセットアップ時間Ｔｓとに基づいて設定される。クロック信号ＣＬＫのクロック周期Ｔｐは、遅延時間Ｔｄとセットアップ時間とを加算した時間よりも長くなる（Ｔｐ＞Ｔｄ＋Ｔｓ）ように設定される。
【００８３】
より具体的に、図５に示すように、第１データ読込信号の１つである第１データ読出信号Ｌ＿ＲＤ２は、時刻ｔ２におけるクロック信号ＣＬＫの立ち上がりエッジに同期してアサート状態からネゲート状態に切り替えられる。時刻ｔ２は、時刻ｔ１からクロック周期Ｔｐ経過後の時刻である。時刻ｔ２では、メモリ側第１データバスライン２３には今回値である「０ｘ５６７８」が安定して出力され、かつセットアップ時間Ｔｓも満たされている。つまり、第１メモリアクセスコントローラ１１がデュアルポートメモリ１３からのデータ読出しを終了するタイミングで、メモリ側第１データバスライン２３には今回値である「０ｘ５６７８」が安定して出力されている。このため、第１メモリアクセスコントローラ１５は、デュアルポートメモリ１３の記憶部１３３から所望の（すなわち正規の）第１読出データＬ＿ＤＴ２を読込むことができる。また、第１データ読出信号Ｌ＿ＲＤ２がアサート状態からネゲート状態に切り替わるタイミングは、第１データ読込タイミングの１つである。第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、第２データ書込タイミングである。したがって、第２データ書込タイミングと、この第２データ書込タイミングの直後の第１データ読込タイミングとの時間差の最小値がクロック信号ＣＬＫの１周期と同じであれば、第１メモリアクセスコントローラ１５は、デュアルポートメモリ１３の記憶部１３３から正規のデータの第１読出データＬ＿ＤＴ２を読出すことができる。
【００８４】
また、図５に示すように、第１データ読込信号の１つである第１データ保持信号ＲＤＬは、時刻ｔ２におけるクロック信号ＣＬＫの立ち上がりエッジに同期してアサート状態からネゲート状態に切り替えられる。時刻ｔ２では、メモリ側第１データバスライン２３には今回値である「０ｘ５６７８」が安定して出力され、かつセットアップ時間Ｔｓも満たされている。このため、第１保持部１５３は、所望の（すなわち正規の）第１読出データＬ＿ＤＴ２を保持することができる。また、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わるタイミングは、第１データ読込タイミングの１つである。したがって、第２データ書込タイミングと、この第２データ書込タイミングの直後の第１データ読込タイミングとの時間差の最小値がクロック信号ＣＬＫの１周期と同じであれば、第１メモリアクセスコントローラ１５に備えられた第１保持部１５３は、正規のデータの第１読出データＬ＿ＤＴ２を保持することができる。
【００８５】
ここで、第２ＣＰＵ１２のデータ書込み動作と、第１ＣＰＵ１１のデータ読出し動作とが同時、すなわち第２データ書込信号Ｒ＿ＷＲ２と、第１データ読出信号Ｌ＿ＲＤ２及び第１データ保持信号ＲＤＬとが同時にアサート状態からネゲート状態に切り替わったとする。この場合、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３からデータを読み出す値は「前回値」であるものの安定した値であって不定値ではない。また、第１保持部１５３が保持するデータは、「前回値」であるものの安定した値であって不定値ではない。このため、マルチプロセッサシステム１は、適用された産業用機器が予期しない誤動作をしてしまうのを防止できる。
【００８６】
図５では、第１メモリアクセスコントローラ１５を中心に説明したが、第２メモリアクセスコントローラ１６も第１メモリアクセスコントローラ１５と同様に構成されている。このため、クロック信号ＣＬＫのクロック周期Ｔｐは、遅延時間Ｔｄとセットアップ時間Ｔｓとに基づいて設定されている。すなわち、クロック信号ＣＬＫのクロック周期Ｔｐは、第１書込データＬ＿ＤＴ１のメモリセルへの書込み動作の終了タイミングからメモリ側第２データバスライン３３に正規のデータの出力が完了するまでの遅延時間Ｔｄと、第２データ読込タイミングの前にメモリ側第２データバスライン３３に正規のデータが安定して出力されたセットアップ時間Ｔｓとを加算した時間よりも長くなっている。これにより、第１データ書込タイミングと、この第１データ書込タイミングの直後の第２データ読込タイミングとの時間差の最小値は、クロック信号ＣＬＫのクロック周期Ｔｐと同じになる。その結果、第２メモリアクセスコントローラ１６は、デュアルポートメモリ１３の記憶部から所望の（正規の）第２読出データＲ＿ＤＴ２を読込むことができる。また、第２データ保持信号がこのセットアップ時間Ｔｓを満たすタイミングでアサート状態からネゲート状態に切り替わえられることにより、第２メモリアクセスコントローラ１６に備えられた第２保持部は、正規のデータの第２読出データＲ＿ＤＴ２を保持することができる。
【００８７】
次に、同一のアドレスのメモリセルに対して第１ＣＰＵ１１及び第２ＣＰＵ１２から同時にデータ書込み動作が実行された場合について図６を用いて説明する。図６中に示す「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｌ＿ＷＲ２」は第１データ書込信号Ｌ＿ＷＲ２を示し、「Ｒ＿ＷＲ２」は第２データ書込信号Ｒ＿ＷＲ２を示している。また、図６において、左から右に向かって時の経過が表されている。
【００８８】
デュアルポートメモリ１３は、第１データ書込信号Ｌ＿ＷＲ２及び第２データ書込信号Ｒ＿ＷＲ２のいずれを優先するのかが設定されている。このため、図６に示すように、クロック信号ＣＬＫの同じエッジタイミンクで第１データ書込信号Ｌ＿ＷＲ２と第２データ書込信号Ｒ＿ＷＲ２とが発生した場合には、デュアルポートメモリ１３の設定に従って、第１入出力ポート１３１及び第２入出力ポート１３２に入力されたデータのいずれかが優先して記憶部１３３に書き込まれる。
【００８９】
以上説明したように、本実施形態によるマルチプロセッサシステム１は、デュアルポートメモリ１３と、第１及び第２ＣＰＵ１１，１２と、クロック信号発信器１４と、第１及び第２メモリアクセスコントローラ１５，１６とを有し、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３に第１データを書込む第１データ書込タイミング、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３から第１データを読込む第１データ読込タイミング、第２メモリアクセスコントローラ１６がデュアルポートメモリ１３に第２データを書込む第２データ書込タイミング、及び第２メモリアクセスコントローラ１６がデュアルポートメモリ１３から第２データを読込む第２データ読込タイミングは、クロック信号発信器１４が発信するクロック信号ＣＬＫに同期している。
【００９０】
これにより、マルチプロセッサシステム１は、デュアルポートメモリ１３から不定値を読み出すことを防止できるので、マルチプロセッサシステム１が適用された産業用機器の予期せぬ誤動作を防止できる。また、マルチプロセッサシステム１は、ＢＵＳＹ信号やウエイト信号を用いずに、メモリアクセス競合時の第１及び第２ＣＰＵ１１，１２のタイミング協調を図ることができる。これにより、デュアルポートメモリ１３の記憶部１３３の同一アドレスに対して第１及び第２ＣＰＵ１１，１２からメモリアクセスの競合が生じても、第１及び第２ＣＰＵ１１，１２のいずれかを動作停止状態とせずに第１及び第２ＣＰＵ１１，１２のタイミング協調を図ることができる。
【００９１】
クロック信号ＣＬＫのクロック周期Ｔｐは、遅延時間Ｔｄとセットアップ時間Ｔｓとを加算した時間よりも長く設定される。例えばクロック信号ＣＬＫのクロック周期Ｔｐを調整することによって、セットアップ時間Ｔｓ、クロック周期Ｔｐ及び遅延時間Ｔｄがこの関係を満たすように容易に設定することができる。
【００９２】
マルチプロセッサシステム１は、第１及び第２メモリアクセスコントローラ１５，１６に第１及び第２保持部を備えている。第１保持部１５３は第１読出データＬ＿ＤＴ２を保持した状態でハイインピーダンス状態となることができ、第２保持部は、第２読出データＲ＿ＤＴ２を保持した状態でハイインピーダンス状態となることができる。すなわち、マルチプロセッサシステム１は、第１保持部１５３や第２保持部をＣＰＵ側第１データバスライン２２やＣＰＵ側第２データバスライン３２と電気的に切り離すことができる。
【００９３】
〔第２実施形態〕
本発明の第２実施形態によるマルチプロセッサシステムについて図７から図１０を用いて説明する。本実施形態によるマルチプロセッサシステムは、例えば産業用機器に適用され、例えばデュアルポートメモリを用いて２つの処理装置の間でデータ交換できる。また、本実施形態によるマルチプロセッサシステムは、上記第１実施形態によるマルチプロセッサシステムと比較して、第１及び第２書込ゲート部を備えていない代わりに書込み用及び読出し用のメモリ側第１及び第２データバスラインを備えている点に特徴を有している。また、本実施形態によるマルチプロセッサシステムは、上記第１実施形態によるマルチプロセッサシステムと比較して、第１及び第２データ読出信号を発生しない点に特徴を有している。以下、上記第１実施形態によるマルチプロセッサシステムと同一の機能、作用を奏する構成要素には同一の符号を付してその説明を省略する。
【００９４】
［マルチプロセッサシステムの概略構成］
図７に示すように、本実施形態によるマルチプロセッサシステム２は、第１データが入出力される第１入出力ポート１３１と、第１入出力ポート１３１とは独立して設けられて第２データが入出力される第２入出力ポート１３２と、第１及び第２データを記憶する記憶部１３３とを備えたデュアルポートメモリ１３を有している。本実施形態における第１入出力ポート１３１は、第１データ読出信号が入力される入力端子を有していない点において上記第１実施形態における第１入出力ポート１３１と異なっている。また、本実施形態における第１入出力ポート１３１は、第１書込データＬ＿ＤＴ１及び第１読出データＬ＿ＤＴ２が入出力される入出力端子に代えて、第１書込データＬ＿ＤＴ１が入力される入力端子と、第１読出データＲ＿ＤＴ１が出力される出力端子とを有している点において上記第１実施形態における第１入出力ポート１３１と異なっている。同様に、本実施形態における第２入出力ポート１３２は、第２データ読出信号が入力される入力端子を有していない点において上記第１実施形態における第１入出力ポート１３１と異なっている。さらに、本実施形態における第２入出力ポート１３２は、第２書込データＲ＿ＤＴ１及び第２読出データＲ＿ＤＴ２が入出力される入出力端子に代えて、第２書込データＲ＿ＤＴ１が入力される入力端子と、第２読出データＲ＿ＤＴ２が出力される出力端子とを有している点において上記第１実施形態における第２入出力ポート１３２と異なっている。
【００９５】
また、マルチプロセッサシステム２は、デュアルポートメモリ１３において入出力される第１データを処理する第１ＣＰＵ（第１処理装置の一例）１１と、デュアルポートメモリ１３において入出力される第２データを処理する第２ＣＰＵ（第２処理装置の一例）１２とを有している。
【００９６】
また、マルチプロセッサシステム１は、クロック信号ＣＬＫを発信するクロック信号発信器１４と、クロック信号ＣＬＫに同期して動作する第１メモリアクセスコントローラ１７及び第２メモリアクセスコントローラ１８とを有している。第１メモリアクセスコントローラ１７は、デュアルポートメモリ１３に対する第１ＣＰＵ１１のアクセスを制御するようになっている。第２メモリアクセスコントローラ１８は、デュアルポートメモリ１３に対する第２ＣＰＵ１２のアクセスを制御するようになっている。
【００９７】
第１メモリアクセスコントローラ１７は、デュアルポートメモリ１３と接続されている。第１メモリアクセスコントローラ１７は、第１ＣＰＵ１１から入力される第１データ書込指示信号Ｌ＿ＷＲ１に基づいて、第１データ書込信号Ｌ＿ＷＲ２をデュアルポートメモリ１３に出力する。第１メモリアクセスコントローラ１７は、クロック信号発信器１４から出力されるクロック信号ＣＬＫに同期させて第１データ書込信号Ｌ＿ＷＲ２をデュアルポートメモリ１３に出力するようになっている。
【００９８】
マルチプロセッサシステム２は、第１メモリアクセスコントローラ１７とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３に書込まれる第１データを送信可能な書込用メモリ側第１データバスライン（書込用第１データバスラインの一例）２３ｗを有している。書込用メモリ側第１データバスライン２３ｗは、第１メモリアクセスコントローラ１７と第１入出力ポート１３１との間に設けられている。マルチプロセッサシステム２は、第１メモリアクセスコントローラ１７とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３から読出される第１データを送信可能な読出用メモリ側第１データバスライン（読出用第１データバスライン）２３ｒを有している。読出用メモリ側第１データバスライン２３ｒは、第１メモリアクセスコントローラ１７と第１入出力ポート１３１との間に設けられている。書込用メモリ側第１データバスライン２３ｗには、ＣＰＵ側第１データバスライン２２に入力された第１書込データＬ＿ＤＴ１が第１メモリアクセスコントローラ１７を介して入力される。読出用メモリ側第１データバスライン２３ｒには、記憶部１３３から読み出された第１読出データＬ＿ＤＴ２が第１入出力ポート１３１を介して出力される。書込用メモリ側第１データバスライン２３ｗには、第１読出データＬ＿ＤＴ２は入力されず、読出用メモリ側第１データバスライン２３ｒには、第１書込データＬ＿ＤＴ１は入力されないようになっている。第１メモリアクセスコントローラ１７の内部構成については後述する。
【００９９】
第２メモリアクセスコントローラ１８は、デュアルポートメモリ１３と接続されている。第２メモリアクセスコントローラ１８は、第２ＣＰＵ１２から入力される第２データ書込指示信号Ｒ＿ＷＲ１に基づいて、第２データ書込信号Ｒ＿ＷＲ２をデュアルポートメモリ１３に出力する。第２メモリアクセスコントローラ１８は、クロック信号発信器１４から出力されるクロック信号ＣＬＫに同期させて第２データ書込信号Ｒ＿ＷＲ２をデュアルポートメモリ１３に出力するようになっている。
【０１００】
マルチプロセッサシステム２は、第２メモリアクセスコントローラ１８とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３に書込まれる第２データを送信可能な書込用メモリ側第２データバスライン（書込用第２データバスラインの一例）３３ｗを有している。書込用メモリ側第２データバスライン３３ｗは、第２メモリアクセスコントローラ１８と第２入出力ポート１３２との間に設けられている。マルチプロセッサシステム２は、第２メモリアクセスコントローラ１８とデュアルポートメモリ１３との間に設けられ、デュアルポートメモリ１３から読出される第２データを送信可能な読出用メモリ側第２データバスライン（読出用第２データバスラインの一例）３３ｒを有している。読出用メモリ側第２データバスライン３３ｒは、第２メモリアクセスコントローラ１８と第２入出力ポート１３２との間に設けられている。書込用メモリ側第２データバスライン２３ｗには、ＣＰＵ側第２データバスライン３２に入力された第２書込データＲ＿ＤＴ１が第２メモリアクセスコントローラ１８を介して入力される。読出用メモリ側第２データバスライン３３ｒには、記憶部１３３から読み出された第２読出データＲ＿ＤＴ２が第２入出力ポート１３２を介して出力される。書込用メモリ側第２データバスライン３３ｗには、第２読出データＲ＿ＤＴ２は入力されず、読出用メモリ側第２データバスライン３３ｒには、第２書込データＲ＿ＤＴ１は入力されないようになっている。第２メモリアクセスコントローラ１８の内部構成については後述する。
【０１０１】
［第１及び第２メモリアクセスコントローラの内部構成］
次に、第１及び第２メモリアクセスコントローラ１７，１８の内部構成について図８を用いて説明する。
図８に示すように、第１メモリアクセスコントローラ１７は、デュアルポートメモリ１３に第１書込データ（第１データの一例）Ｌ＿ＤＴ１を書込むための第１データ書込信号Ｌ＿ＷＲ２と、デュアルポートメモリ１３から第１読出データ（第１データの一例）Ｌ＿ＤＴ２を読込むための第１データ読込信号の１つである第１データ保持信号ＲＤＬとを発生する第１アクセス信号発生部１７１を備えている。また、第１メモリアクセスコントローラ１７は、第１データ読出制御信号ＲＯＥを発生する。第１アクセス信号発生部１７１は、第１データ読出制御信号ＲＯＥ及び第１データ保持信号ＲＤＬを第１保持部１７３（詳細は後述）に出力する。第１アクセス信号発生部１７１には、第１アドレス信号Ｌ＿ＡＤＲ、第１データ書込指示信号Ｌ＿ＷＲ１、第１データ読出指示信号Ｌ＿ＲＤ１及びクロック信号ＣＬＫが入力される。
【０１０２】
第１アクセス信号発生部１７１は、非アクセス状態時に、信号状態が無効状態すなわちネゲート状態にある第１データ書込信号Ｌ＿ＷＲ２をデュアルポートメモリ１３の第１入出力ポート１３１に対して出力している。第１アクセス信号発生部１７１は、第１データ書込指示信号Ｌ＿ＷＲ１が有効状態すなわちアサート状態になると、クロック信号ＣＬＫに同期させて第１データ書込信号Ｌ＿ＷＲ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。
【０１０３】
第１アクセス信号発生部１７１は、非アクセス状態時に、信号状態が無効状態すなわちネゲート状態にある第１データ保持信号ＲＤＬを第１保持部１７３に設けられた保持信号入力端子ＬＴに出力している。第１アクセス信号発生部１７１は、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態になると、クロック信号ＣＬＫに同期させて第１データ保持信号ＲＤＬを少なくともクロック信号ＣＬＫの１周期分アサート状態とする。
【０１０４】
第１保持部１７３の入力端子ＩＮは、読出用メモリ側第１データバスライン２３ｒに接続されている。デュアルポートメモリ１３の記憶部１３３から読出された第１読出データＬ＿ＤＴ２は、第１入出力ポート１３１及び読出用メモリ側第１データバスライン２３ｒを介して第１保持部１７３の入力端子ＩＮに入力される。第１保持部１７３の出力端子ＯＵＴは、ＣＰＵ側第１データバスライン２２に接続されている。第１保持部１７３に保持されている第１読出データＬ＿ＤＴ２は、出力端子ＯＵＴ及びＣＰＵ側第１データバスライン２２を介して第１ＣＰＵ１１に送信される。
【０１０５】
ＣＰＵ側第１データバスライン２２は、第１メモリアクセスコントローラ１７を介して書込用メモリ側第１データバスライン２３ｗに直結されている。また、ＣＰＵ側第１データバスライン２２は、第１保持部１７３の出力端子ＯＵＴにも接続されている。アクセス信号発生部１７１は、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態になることによって第１データ読出制御信号ＲＯＥをアサート状態とする。第１ＣＰＵ１１は、第１データ書込指示信号Ｌ＿ＷＲ１と第１データ読出指示信号Ｌ＿ＲＤ１とを同時期にアサート状態にしない。このため、第１アクセス信号発生部１７１は、入力される第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態である時期と同時期に、アサート状態の第１データ保持信号ＲＤＬを発生しない。これにより、第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態となってＣＰＵ側第１データバスライン２２に入力された第１書込データＬ＿ＤＴ１をメモリ側第１データバスライン２３ｗを介してデュアルポートメモリ１３に書込む時には、第１データ読出制御信号ＲＯＥ及び第１データ保持信号ＲＤＬはネゲート状態になる。これにより、ＣＰＵ側第１データバスライン２２に入力された第１書込データＬ＿ＤＴ１が第１保持部１７３に保持されることはない。また、第１保持部１７３がデータを保持及び出力可能な状態にある時は、第１データ書込指示信号Ｌ＿ＷＲ１はネゲート状態であるため第１データ書込信号Ｌ＿ＷＲ２もネゲート状態となる。これにより、第１保持部１７３の出力端子ＯＵＴから出力された第１読出データＬ＿ＤＴ２は、メモリ側第１データバスライン２３ｗに入力されるものの第１入出力ポート１３１を介して記憶部１３３に書き込まれることはない。
【０１０６】
次に、第２メモリアクセスコントローラ１８の内部構成について、図７及び図８を参照しつつ説明する。図示は省略するが、第２メモリアクセスコントローラ１８は、第１メモリアクセスコントローラ１７と同一の構成を有し、同一の機能を発揮するようになっている。すなわち、第２メモリアクセスコントローラ１８は、デュアルポートメモリ１３に第２書込データ（第２データの一例）Ｒ＿ＤＴ１を書込むための第２データ書込信号Ｒ＿ＷＲ２と、デュアルポートメモリ１３から第２読出データ（第２データの一例）Ｒ＿ＤＴ２を読込むための、第２データ読込信号の１つである第２データ保持信号（第１データ保持信号ＲＤＬに対応する）とを発生する第２アクセス信号発生部を備えている。また、第２メモリアクセスコントローラ１８は、第２データ読出制御信号（第１データ読出制御信号ＲＯＥに対応する）を発生するようになっている。第１アクセス信号発生部は、第２データ読出制御信号及び第２データ保持信号を第２保持部（詳細は後述）に出力する。第２アクセス信号発生部には、第２アドレス信号Ｒ＿ＡＤＲ、第２データ書込指示信号Ｒ＿ＷＲ１、第２データ読出指示信号Ｒ＿ＲＤ１及びクロック信号ＣＬＫが入力される。
【０１０７】
第２アクセス信号発生部は、非アクセス状態時に、信号状態が無効状態すなわちネゲート状態にある第２データ書込信号Ｒ＿ＷＲ２をデュアルポートメモリ１３の第２入出力ポート１３２に対して出力している。第２アクセス信号発生部は、第２データ書込指示信号Ｒ＿ＷＲ１が有効状態すなわちアサート状態になると、クロック信号ＣＬＫに同期させて第２データ書込信号Ｒ＿ＷＲ２を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。また、第２アクセス信号発生部は、第２データ読出指示信号Ｒ＿ＲＤ１がアサート状態になると、クロック信号ＣＬＫに同期させて第２データ保持信号を少なくともクロック信号ＣＬＫの１周期分アサート状態とする。
【０１０８】
第２メモリアクセスコントローラ１８は、第１メモリアクセスコントローラ１７に備えられた第１保持部１７３に対応する第２保持部を備えている。第２保持部は、第１保持部１７３と同一の構成を有し、同一の機能を発揮するようになっている。第２データ保持信号（第１データ保持信号ＲＤＬに対応する）は、第２保持部に設けられた保持信号入力端子（保持信号入力端子ＬＴに対応する）に入力される。
【０１０９】
第２保持部の入力端子（入力端子ＩＮに対応する）は、読出用メモリ側第２データバスライン３３ｒに接続されている。デュアルポートメモリ１３の記憶部１３３から読出された第２読出データＲ＿ＤＴ２は、第２入出力ポート１３２及び読出用メモリ側第２データバスライン３３ｒを介して第２保持部の入力端子に入力される。第２保持部の出力端子（出力端子ＯＵＴに対応する）は、ＣＰＵ側第２データバスライン３２に接続されている。第２保持部に保持されている第２読出データＲ＿ＤＴ２は、この出力端子及びＣＰＵ側第２データバスライン３２を介して第２ＣＰＵ１２に送信される。
【０１１０】
ＣＰＵ側第２データバスライン３２は第２保持部の出力端子にも接続されている。しかしながら、第２メモリアクセスコントローラ１８は、第１メモリアクセスコントローラ１７と同様に動作し、かつ第２ＣＰＵ１２は第２データ書込指示信号Ｒ＿ＷＲ１と第２データ読出指示信号Ｒ＿ＲＤ１とを同時期にアサート状態にしない。このため、第２アクセス信号発生部は、入力される第２データ書込指示信号Ｒ＿ＷＲ１がアサート状態である時期と同時期に、アサート状態の第２データ保持信号を発生しない。このため、ＣＰＵ側第２データバスライン３２に入力された第２書込データＲ＿ＤＴ１が第２保持部に保持されることはない。さらに、第２保持部の出力端子から出力された第２読出データＲ＿ＤＴ２は、書込用メモリ側第２データバスライン３３ｗに入力されるものの第２入出力ポート１３２を介して記憶部１３３に書き込まれることはない。
【０１１１】
［マルチプロセッサシステムの動作］
次に、本実施形態によるマルチプロセッサシステム２の動作について、図７及び図８を参照しつつ図９及び図１０を用いて説明する。まず、マルチプロセッサシステム２における第１メモリアクセスコントローラ１７のデータ書込み動作について説明する。図９に示すデータ書込み動作のタイミングチャートにおいて、図９中に示す「Ｌ＿ＤＴ１（２２）」はＣＰＵ側第１データバスライン２２に入力された第１書込データＬ＿ＤＴ１を示し、「Ｌ＿ＷＲ１」は第１データ書込指示信号Ｌ＿ＷＲ１を示し、「Ｌ＿ＤＴ１（２３ｗ）」は書込用メモリ側第１データバスライン２３ｗに入力された第１書込データＬ＿ＤＴ１を示し、「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｌ＿ＷＲ２」は第１データ書込信号Ｌ＿ＷＲ２を示している。図９において、左から右に向かって時の経過が表されている。
【０１１２】
デュアルポートメモリ１３は、第１ＣＰＵ１１及び第２ＣＰＵ１２のメモリ空間にマッピングされている。第１ＣＰＵ１１は、第１書込データＬ＿ＤＴ１をデュアルポートメモリ１３に書込む際に、記憶部１３３の書込み対象のメモリセルの情報を含む第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３及び第１メモリアクセスコントローラ１７に出力する。
【０１１３】
図９に示すように、第１アドレス信号Ｌ＿ＡＤＲが出力される際に、デュアルポートメモリ１３に書込むための第１書込データＬ＿ＤＴ１が第１ＣＰＵ１１からＣＰＵ側第１データバスライン２２に出力される。図９では、値「０ｘ１２３４」の第１書込データＬ＿ＤＴ１が例えばＣＰＵ側第１データバスライン２２に出力された状態が図示されている。
【０１１４】
書込用メモリ側第１データバスライン２３ｗは、ＣＰＵ側第１データバスライン２２に直結されている。このため、図９に示すように、書込用メモリ側第１データバスライン２３ｗには、ＣＰＵ側第１データバスライン２２に入力されたのと同様の値「０ｘ１２３４」の第１書込データＬ＿ＤＴ１が入力される。第１書込データＬ＿ＤＴ１が書込用メモリ側第１データバスライン２３ｗに入力されるタイミングは、第１書込データＬ＿ＤＴ１がＣＰＵ側第１データバスライン２２に入力されるタイミングとほぼ同じである。
【０１１５】
図９に示すように、値「０ｘ１２３４」の第１アドレス信号Ｌ＿ＡＤＲが出力された後に、第１データ書込指示信号Ｌ＿ＷＲ１の信号レベルが高レベルから低レベルへの切り替えが開始され、時刻ｔ１において低レベルとなる第１データ書込指示信号Ｌ＿ＷＲ１が第１ＣＰＵ１１から第１メモリアクセスコントローラ１７に出力される。１データ書込指示信号Ｌ＿ＷＲ１は、時刻ｔ１においてアサート状態となる。
【０１１６】
第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態に切り替わった後の時刻ｔ２において、クロック信号ＣＬＫが立ち上がる。クロック信号ＣＬＫのこの立ち上がりエッジに同期して信号レベルが高レベルから低レベルに切り替わる第１データ書込信号Ｌ＿ＷＲ２が第１アクセス信号発生部１７１からデュアルポートメモリ１３に出力される。図９に示すように、第１データ書込信号Ｌ＿ＷＲ２は、第１データ書込指示信号Ｌ＿ＷＲ１がアサート状態になった後のクロック信号ＣＬＫの最初の立ち上がりエッジに同期してネゲート状態からアサート状態に切り替えられる。
【０１１７】
図９に示すように、時刻ｔ２の後の時刻ｔ３において、クロック信号ＣＬＫが再び立ち上がる。時刻ｔ３でのクロック信号のこの立ち上がりエッジに同期して、第１アクセス信号発生部１７１からデュアルポートメモリ１３に出力される第１データ書込信号Ｌ＿ＷＲ２がアサート状態からネゲート状態に切り替えられる。これにより、第１データ書込信号Ｌ＿ＷＲ２は、時刻ｔ２から時刻ｔ３というクロック信号ＣＬＫの１周期の期間だけ信号レベルが低レベルになるパルス信号となる。なお、図９では、第１データ書込信号Ｌ＿ＷＲ２はクロック信号ＣＬＫの１周期だけ低レベルになるパルス信号であるが、クロック信号ＣＬＫの複数周期の間で低レベルとなるパルス信号でもよい。また、第１データ書込信号Ｌ＿ＷＲ２はクロック信号ＣＬＫの立下りエッジに同期する信号でもよい。
【０１１８】
図示は省略するが、第１データ書込信号Ｌ＿ＷＲ２がアサート状態からネゲート状態に切り替わることにより、書込用メモリ側第１データバスライン２３ｗに出力されている第１書込データＬ＿ＤＴ１の値（図９では、「０ｘ１２３４」）が、第１アドレス信号Ｌ＿ＡＤＲにおいて指定された記憶部１３３のメモリセルに記憶される。
【０１１９】
このように、第１データ書込信号Ｌ＿ＷＲ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第１データ書込信号Ｌ＿ＷＲ２における第１書込データＬ＿ＤＴ１を書込むタイミングである。また、第１データ書込信号Ｌ＿ＷＲ２における第１書込データＬ＿ＤＴ１を書込むこのタイミングは、第１メモリアクセスコントローラ１５がデュアルポートメモリ１３に第１書込データＬ＿ＤＴ１を書込む第１データ書込タイミングである。第１データ書込信号Ｌ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第１データ書込タイミングもクロック信号ＣＬＫに同期する。
【０１２０】
図９に示すように、その後、第１データ書込指示信号Ｌ＿ＷＲ１は、アサート状態からネゲート状態への切り替えが開始され、時刻ｔ４においてネゲート状態となる。このように、第１データ書込指示信号Ｌ＿ＷＲ１は、時刻ｔ１から時刻ｔ４の間に信号レベルが低レベルとなるパルス信号となる。
【０１２１】
また、第１データ書込指示信号Ｌ＿ＷＲ１がネゲート状態になっても、ＣＰＵ側第１データバスライン２２と書込用メモリ側第１データバスライン２３ｗとは直結されたままなので、ＣＰＵ側第１データバスライン２２に入力された値「０ｘ１２３４」の第１書込データＬ＿ＤＴ１は書込用メモリ側第１データバスライン２３ｗに入力され続ける。
以上で、マルチプロセッサシステム２における第１メモリアクセスコントローラ１７での１つの第１書込データのデータ書込み動作が終了する。
【０１２２】
第２メモリアクセスコントローラ１８のデータ書込み動作は、第１メモリアクセスコントローラ１７の動作の「第１」を「第２」に読み替えたのと同様である。したがって、第２データ書込信号Ｒ＿ＷＲ２がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第２データ書込信号Ｒ＿ＷＲ２における第２書込データＲ＿ＤＴ１を書込むタイミングである。また、第２データ書込信号Ｒ＿ＷＲ２における第２書込データＲ＿ＤＴ１を書込むこのタイミングは、第２メモリアクセスコントローラ１８がデュアルポートメモリ１３に第２書込データＲ＿ＤＴ１を書込む第２データ書込タイミングである。第２データ書込信号Ｒ＿ＷＲ２がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第２データ書込タイミングもクロック信号ＣＬＫに同期する。。
【０１２３】
次に、マルチプロセッサシステム２における第１メモリアクセスコントローラ１７のデータ読出し動作について説明する。図１０に示すデータ読出し動作のタイミングチャートにおいて、図１０中に示す「Ｌ＿ＡＤＲ」は第１アドレス信号Ｌ＿ＡＤＲを示し、「Ｌ＿ＲＤ１」は第１データ読出指示信号Ｌ＿ＲＤ１を示し、「ＣＬＫ」はクロック信号発信器１４から出力されたクロック信号ＣＬＫを示し、「Ｌ＿ＤＴ２（２３ｒ）」はデュアルポートメモリ１３から読み出され読出用メモリ側第１データバスライン２３ｒに入力された第１読出データＬ＿ＤＴ２を示し、「ＲＤＬ」は第１データ保持信号ＲＤＬを示し、「ＲＥＧ」は第１保持部１７３に保持された第１読出データＬ＿ＤＴ２を示し、「ＲＯＥ」は第１データ読出制御信号ＲＯＥを示し、「Ｌ＿ＤＴ２（２２）」はＣＰＵ側第１データバスライン２２に入力された第１読出データＬ＿ＤＴ２を示している。図１０において、左から右に向かって時の経過が表されている。
【０１２４】
デュアルポートメモリ１３は、第１ＣＰＵ１１及び第２ＣＰＵ１２のメモリ空間にマッピングされている。図１０に示すように、第１ＣＰＵ１１は、第１読出データＬ＿ＤＴ２をデュアルポートメモリ１３から読出す際に、記憶部１３３の読出し対象のメモリセルの情報を含む第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３及び第１メモリアクセスコントローラ１７に出力する。第１ＣＰＵ１１は、例えば時刻ｔ１において記憶部１３３の読出し対象のメモリセルの情報を含む第１アドレス信号Ｌ＿ＡＤＲをデュアルポートメモリ１３などに出力する。
【０１２５】
また、デュアルポートメモリ１３は、時刻ｔ１から時刻ｔ６においてチップセレクトされる。デュアルポートメモリ１３は、チップセレクトされると、入力された第１アドレス信号Ｌ＿ＡＤＲの値によって指定された記憶部１３３のメモリセルからデータを読出す。さらに、デュアルポートメモリ１３は、メモリセルから読出したデータを第１入出力ポート１３１を介して読出用メモリ側第１データバスライン２３ｒに出力する。図１０では、時刻ｔ１直後に例えば値「０ｘ５６７８」の第１読出データＬ＿ＤＴ２が読出用メモリ側第１データバスライン２３ｒに出力される。
【０１２６】
図１０に示すように、時刻ｔ１の後の時刻ｔ２において、ネゲート状態からアサート状態に切り替わる第１データ読出指示信号Ｌ＿ＲＤ１が第１ＣＰＵ１１から第１メモリアクセスコントローラ１７に出力される。
【０１２７】
第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態となったことを受けて時刻ｔ２において、信号レベルが高レベルから低レベルへの切り替り替えが開始されて時刻ｔ２の直後に低レベルとなる第１データ読出制御信号ＲＯＥが第１メモリアクセスコントローラ１７から第１保持部１７３に出力される。第１データ読出制御信号ＲＯＥが低レベルであってアサート状態の期間では、第１保持部１７３は、保持している第１読出データＬ＿ＤＴ２を出力可能な状態すなわち出力イネーブルとなる。このため、第１保持部１７３に保持されている前回値（０ｘ１２３４）の第１読出データがＣＰＵ側第１データバスライン２２に出力される。
【０１２８】
時刻ｔ２の後の時刻ｔ３において、クロック信号ＣＬＫの立ち上がりエッジに同期して信号レベルが高レベルから低レベルに切り替わる第１データ保持信号ＲＤＬが第１アクセス信号発生部１７１から第１保持部１７３に出力される。すなわち、第１データ保持信号ＲＤＬは、第１データ読出指示信号Ｌ＿ＲＤ１がアサート状態に切り替わった後のクロック信号ＣＬＫの最初の立ち上がりエッジに同期してネゲート状態からアサート状態に切り替わる。
【０１２９】
図１０に示すように、時刻ｔ３の後の時刻ｔ４において、クロック信号ＣＬＫが再び立ち上がる。時刻ｔ４でのクロック信号のこの立ち上がりエッジに同期して第１アクセス信号発生部１７１から第１保持部１７３に出力される第１データ保持信号ＲＤＬは、アサート状態からネゲート状態に切り替えられる。これにより、第１データ保持信号ＲＤＬは、時刻ｔ３から時刻ｔ４というクロック信号ＣＬＫの１周期の期間だけ信号レベルが低レベルになるパルス信号となる。なお、図１０では、第１データ保持信号ＲＤＬはクロック信号ＣＬＫの１周期だけ低レベルになるパルス信号であるが、クロック信号ＣＬＫの複数周期の間で低レベルとなるパルス信号でもよい。また、第１データ保持信号ＲＤＬはクロック信号ＣＬＫの立下りエッジに同期する信号でもよい。
【０１３０】
第１保持部１７３は、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わる時に、読出用メモリ側第１データバスライン２３ｒに出力されている第１読出データＬ＿ＤＴ２を入力端子ＩＮを介して保持する。このため、図１０に示すように、第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わる時刻ｔ４において、第１保持部１７３に保持されるデータの値は、値「０ｘ１２３４」から、読出用メモリ側第１データバスライン２３ｒに出力されている第１読出データＬ＿ＤＴ２の値「０ｘ５６７８」に変更される。
【０１３１】
このように、第１データ保持信号ＲＤＬがアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第１読出データＬ＿ＤＴ２を保持するタイミングである。また、第１データ保持信号ＲＤＬにおける第１読出データＬ＿ＤＴ２を保持するこのタイミングは、第１メモリアクセスコントローラ１７がデュアルポートメモリ１３から第１読出データＬ＿ＤＴ２を読込む第１データ読込タイミングの１つである。第１データ保持信号ＲＤＬがアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第１データ読込タイミングもクロック信号ＣＬＫに同期する。
【０１３２】
図１０に示すように、その後、第１データ読出指示信号Ｌ＿ＲＤ１は、アサート状態からネゲート状態への切り替えが開始され、時刻ｔ５においてネゲート状態となる。また、第１データ読出指示信号Ｌ＿ＲＤ１がネゲート状態になったことを受けて時刻ｔ５において、第１データ読出制御信号ＲＯＥは、アサート状態からネゲート状態への切り替えが開始され、時刻ｔ５の直後にネゲート状態となる。このように、第１データ読出指示信号Ｌ＿ＲＤ１は、時刻ｔ２から時刻ｔ５の間に信号レベルが低レベルとなるパルス信号となる。また、第１データ読出制御信号ＲＯＥは、ほぼ時刻ｔ２から時刻ｔ５の間に信号レベルが低レベルとなるパルス信号となる。
【０１３３】
また、第１データ読出制御信号ＲＯＥがネゲート状態となることにより、第１保持部１７３の出力端子ＯＵＴはハイインピーダンス状態となる。本例では、ＣＰＵ側第１データバスライン２２に出力されている第１読出データＬ＿ＤＴ２の値は、時刻ｔ４で切り替わっているが、第１ＣＰＵ１１が第１読出データＬ＿ＤＴ２を取り込む時刻は、第１データ読出制御信号ＲＯＥがネゲート状態となる時刻ｔ５の直後である。時刻ｔ５の直後では、ＣＰＵ側第１データバスライン２２に出力されている第１読出データＬ＿ＤＴ２の値は、所望の値「０ｘ５６７８」であるため問題は生じない。
【０１３４】
図１０に示すように、時刻ｔ５の後の時刻ｔ６において、第１メモリアクセスコントローラ１７へのアドレス信号Ｌ＿ＡＤＲの入力が終了すると、デュアルポートメモリ１３がチップセレクトされている期間は終了する。なお、時刻ｔ６において、アドレス信号Ｌ＿ＡＤＲの値が切り替えられた場合には、チップセレクトは連続でアサート状態となる。
以上で、マルチプロセッサシステム２における第１メモリアクセスコントローラ１７での１つのデータのデータ読込み動作が終了する。
【０１３５】
第２メモリアクセスコントローラ１６のデータ読出し動作は、第１メモリアクセスコントローラ１５の動作の「第１」を「第２」に読み替えたのと同様である。すなわち、第２データ保持信号がアサート状態（有効状態）からネゲート状態（無効状態）に切り替わるタイミングは、第２読出データＲ＿ＤＴ２を保持するタイミングである。また、第２データ保持信号における第２読出データＲ＿ＤＴ２を保持するこのタイミングは、第２メモリアクセスコントローラ１８がデュアルポートメモリ１３から第２読出データＲ＿ＤＴ２を読込む第２データ読込タイミングの１つである。第２データ保持信号がアサート状態からネゲート状態に切り替わるタイミングは、クロック信号ＣＬＫに同期しているので、第２データ読込タイミングもクロック信号ＣＬＫに同期する。
【０１３６】
マルチプロセッサシステム２では、上記第１実施形態によるマルチプロセッサシステム１と同様に、クロック信号発信器１４が発信するクロック信号ＣＬＫのクロック周期Ｔｐは、遅延時間Ｔｄと、セットアップ時間Ｔｓとに基づいて設定されている。ここで、遅延時間Ｔｄは、第１ＣＰＵ１１（又は第２ＣＰＵ１２）からデュアルポートメモリ１３へのデータ書込みの終了タイミングから第１メモリアクセスコントローラ１７（又は第２メモリアクセスコントローラ１８）の第１保持部１７３（又は第２保持部）の入力で第１読出データＬ＿ＤＴ２（又は第２読出データＲ＿ＤＴ２）の値が安定化するまでの期間である。また、セットアップ時間Ｔｓは、メモリ側第１データバスライン２３ｒ（又はメモリ側第２データバスライン３３ｒ）に出力された第１読出データＬ＿ＤＴ２（又は第２読出データＲ＿ＤＴ２）の値が正規のデータの値となってから所定の時間が経過するまでの期間である。
【０１３７】
図５に示すのと同様に、マルチプロセッサシステム２におけるクロック信号ＣＬＫのクロック周期Ｔｐは、遅延時間Ｔｄとセットアップ時間Ｔｓとを加算した時間よりも長くなる（Ｔｐ＞Ｔｄ＋Ｔｓ）ように設定されている。遅延時間Ｔｄやセットアップ時間Ｔｓは、デュアルポートメモリ１３を構成するトランジスタの特性や、第１メモリアクセスコントローラ１７又は第２メモリアクセスコントローラ１８とデュアルポートメモリ１３とを接続する配線の配線長などによって決定される。このため、クロック信号ＣＬＫのクロック周期Ｔｐを調整することにより、「Ｔｐ＞Ｔｄ＋Ｔｓ」の関係を満たすように容易に設定できる。
【０１３８】
したがって、本実施形態によるマルチプロセッサシステム２は、同一のアドレスのメモリセルに対して第１ＣＰＵ１１及び第２ＣＰＵ１２からのアクセスが競合した場合には、上記第１実施形態によるマルチプロセッサシステム１と同様に動作できる。これにより、マルチプロセッサシステム２は、データが切り替わる過渡状態における不定値が第１ＣＰＵ１１又は第２ＣＰＵ１２に出力されない。このため、マルチプロセッサシステム１は、適用された産業用機器が予期しない誤動作をしてしまうのを防止できる。
【０１３９】
以上説明したように、本実施形態によるマルチプロセッサシステム２は、デュアルポートメモリ１３と、第１及び第２ＣＰＵ１１，１２と、クロック信号発信器１４と、第１及び第２メモリアクセスコントローラ１７，１８とを有し、第１メモリアクセスコントローラ１６がデュアルポートメモリ１３に第１データを書込む第１データ書込タイミング、第１メモリアクセスコントローラ１６がデュアルポートメモリ１３から第１データを読込む第１データ読込タイミング、第２メモリアクセスコントローラ１８がデュアルポートメモリ１３に第２データを書込む第２データ書込タイミング、及び第２メモリアクセスコントローラ１８がデュアルポートメモリ１３から第２データを読込む第２データ読込タイミングは、クロック信号発信器１４が発信するクロック信号ＣＬＫに同期している。これにより、マルチプロセッサシステム２は、上記第１実施形態によるマルチプロセッサシステム１と同様の効果が得られる。
【０１４０】
また、マルチプロセッサシステム２は、第１及び第２メモリアクセスコントローラ１７，１８とデュアルポートメモリ１３との間に、書込専用及び読出専用のデータバスラインをそれぞれ有している。一般に、デュアルポートメモリを内蔵している特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）では、このデュアルポートメモリには書込専用及び読出専用のデータバスラインが接続されている。このため、マルチプロセッサシステム２は、ＡＳＩＣやＦＰＧＡに容易に組み込むことができる。
【０１４１】
本発明の技術的範囲は、図示され記載された例示的な実施形態に限定されるものではなく、本発明が目的とするものと均等な効果をもたらす全ての実施形態をも含む。さらに、本発明の技術的範囲は、請求項により画される発明の特徴の組み合わせに限定されるものではなく、全ての開示されたそれぞれの特徴のうち特定の特徴のあらゆる所望する組み合わせによって画されうる。
【符号の説明】
【０１４２】
１，２  マルチプロセッサシステム
１３  デュアルポートメモリ
１４  クロック信号発信器
１５，１７  第１メモリアクセスコントローラ
１６，１８  第２メモリアクセスコントローラ
２１  第１アドレスバスライン
２２  ＣＰＵ側第１データバスライン
２３  メモリ側第１データバスライン
２３ｒ  書込用メモリ側第１データバスライン
２３ｗ  読出用メモリ側第１データバスライン
３１  第２アドレスバスライン
３２  ＣＰＵ側第２データバスライン
３３  メモリ側第２データバスライン
３３ｒ  書込用メモリ側第２データバスライン
３３ｗ  読出用メモリ側第２データバスライン
１３１  第１入出力ポート
１３２  第２入出力ポート
１３３  記憶部
１５１，１７１  第１アクセス信号発生部
１５２  第１書込ゲート部
１５３，１７３  第１保持部
ＣＬＫ  クロック信号
ＩＮ  入力端子
Ｌ＿ＡＤＲ  第１アドレス信号
Ｌ＿ＤＴ１  第１書込データ
Ｌ＿ＤＴ２  第２読出データ
Ｌ＿ＲＤ１  第１データ読出指示信号
Ｌ＿ＲＤ２  第１データ読出信号
Ｌ＿ＷＲ１  第１データ書込指示信号
Ｌ＿ＷＲ２  第１データ書込信号
ＬＴ  保持信号入力端子
ＯＥ  制御信号入力端子
ＯＵＴ  出力端子
Ｒ＿ＡＤＲ  第２アドレス信号
Ｒ＿ＤＴ１  第２書込データ
Ｒ＿ＤＴ２  第２読出データ
Ｒ＿ＲＤ１  第２データ読出指示信号
Ｒ＿ＲＤ２  第２データ読出信号
Ｒ＿ＷＲ１  第２データ書込指示信号
Ｒ＿ＷＲ２  第２データ書込信号
ＲＤＬ  第１データ保持信号
ＲＯＥ  第１データ読出制御信号
Ｔｄ  遅延時間
Ｔｐ  クロック周期
Ｔｓ  セットアップ時間
ＷＯＥ  データ書込制御信号
【図１】
0006725970.tif 000002
【図２】
0006725970.tif 000003
【図３】
0006725970.tif 000004
【図４】
0006725970.tif 000005
【図５】
0006725970.tif 000006
【図６】
0006725970.tif 000007
【図７】
0006725970.tif 000008
【図８】
0006725970.tif 000009
【図９】
0006725970.tif 000010
【図１０】
0006725970.tif 000011