(57)【要約】【課題】２つのＣＰＵがデュアルポートＲＡＭに同じタイミングで読出し又は書込みを行う場合に、データ信号を正しく読出すこと。【解決手段】信号制御装置４は、第１及び第２のＣＰＵがデュアルポートＲＡＭ５に書き込むアドレスの衝突を検出するアドレス衝突検出部１４を備える。また、アドレスの衝突が検出された場合に、デュアルポートＲＡＭ５に書込みを行う第１又は第２のＣＰＵのいずれかに設けられたバッファメモリに、衝突したアドレスから読出したデータ信号を保存する制御を行う制御部１３を備える。また、第１及び第２のＣＰＵの読出し可能状態又は書込み可能状態に応じて、データ信号の読出し元であるレジスタ又はバッファメモリを切替えて、読出し可能状態となるＣＰＵに読出した前記データ信号を出力するマルチプレクサ１５ａ，１５ｂを備える。【選択図】図２
2011227834.tif 000002
【特許請求の範囲】
【請求項１】
２つのポートにそれぞれ接続される第１及び第２のＣＰＵによって、データ信号の読出し又は書込みが所定の動作タイミングで行われるデュアルポートＲＡＭと、
前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号の読出しを行うアドレスと、前記第２のＣＰＵが前記デュアルポートＲＡＭに前記データ信号の書込みを行うアドレスの衝突を検出するアドレス衝突検出部と、
前記第１のＣＰＵが前記デュアルポートＲＡＭから読出した前記データ信号を記憶する第１の記憶部と、
前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でない場合に、前記第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、前記第２のＣＰＵが、前記デュアルポートＲＡＭに前記データ信号を書き込むアドレスから読出した前記データ信号を記憶する第２の記憶部と、
前記アドレスの衝突が検出されず、前記第１のＣＰＵが読出し可能状態である場合に、前記第１の記憶部から前記データ信号を読出し、前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でない場合に、前記第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、前記第１の記憶部から前記データ信号を読出し、前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でなく、前記第２のＣＰＵが書込み可能状態である場合に、前記第２の記憶部から前記データ信号を読出すことによって、前記第１のＣＰＵが接続されるポートに出力する読出し元の切替えを行って、読出し可能状態となる前記第１のＣＰＵに読出した前記データ信号を出力する切替え部と、を備える
信号制御装置。
【請求項２】
前記切替え部は、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号を読出すタイミングが前記第２のＣＰＵが前記デュアルポートＲＡＭに前記データ信号の書込みを行うタイミングと同じであって、前記アドレスの衝突が検出された場合に、前記第１及び第２のＣＰＵの動作速度に応じて、前記切替え部が出力する前記データ信号を読出す前記第１及び第２の記憶部を切替える
請求項１記載の信号制御装置。
【請求項３】
前記切替え部は、前記第１及び第２のＣＰＵの動作タイミングが等しい場合に、前記第１のＣＰＵが前記第１又は２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より速い場合に、前記第１のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より遅い場合に、前記第２のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力する
請求項２記載の信号制御装置。
【請求項４】
前記切替え部は、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号を読出す途中に、前記第２のＣＰＵが前記デュアルポートＲＡＭに前記データ信号の書込みを行うことによって、前記アドレスの衝突が検出された場合に、前記第１及び第２のＣＰＵの動作速度に応じて、前記切替え部が出力する前記データ信号を読出す前記第１及び第２の記憶部を切替える
請求項１又は２記載の信号制御装置。
【請求項５】
前記切替え部は、前記第１及び第２のＣＰＵの動作タイミングが等しい場合に、前記第１のＣＰＵが前記第１の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より速い場合に、前記第１のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より遅く、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号を読出す準備を行っている場合に、前記第２のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より遅く、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号を読出す場合に、前記第１のＣＰＵが前記第１の記憶部に書き込んだ前記データ信号を出力する
請求項４記載の信号制御装置。
【請求項６】
前記切替え部は、前記第２のＣＰＵが前記デュアルポートＲＡＭに前記データ信号の書込みを行う途中に、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号を読出すことによって、前記アドレスの衝突が検出された場合に、前記第１及び第２のＣＰＵの動作速度に応じて、前記切替え部が出力する前記データ信号を読出す前記第１及び第２の記憶部を切替える
請求項１、２又は４のうち、いずれか１項に記載の信号制御装置。
【請求項７】
前記切替え部は、前記第１及び第２のＣＰＵの動作タイミングが等しい場合に、前記第２のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より速く、前記データ信号の書込みの準備中に読出しが行われる場合に、前記第１のＣＰＵが前記第１の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より速く、前記データ信号の書込み中に読出しが行われる場合に、前記第２のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力し、前記第１のＣＰＵの動作速度が前記第２のＣＰＵの動作速度より遅い場合に、前記第２のＣＰＵが前記第２の記憶部に書き込んだ前記データ信号を出力する
請求項６記載の信号制御装置。
【請求項８】
２つのポートにそれぞれ接続される第１及び第２のＣＰＵによって、データ信号の読出し又は書込みが所定の動作タイミングで行われるデュアルポートＲＡＭに、前記第１のＣＰＵが前記デュアルポートＲＡＭから前記データ信号の読出しを行うアドレスと、前記第２のＣＰＵが前記デュアルポートＲＡＭに前記データ信号の書込みを行うアドレスの衝突を検出するステップと、
前記第１のＣＰＵが前記デュアルポートＲＡＭから読出した前記データ信号を第１の記憶部に記憶し、前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でない場合に、前記第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、前記第２のＣＰＵが、前記デュアルポートＲＡＭに前記データ信号を書き込むアドレスから読出した前記データ信号を第２の記憶部に記憶するステップと、
前記アドレスの衝突が検出されず、前記第１のＣＰＵが読出し可能状態である場合に、前記第１の記憶部から前記データ信号を読出し、前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でない場合に、前記第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、前記第１の記憶部から前記データ信号を読出し、前記アドレスの衝突が検出され、前記第１のＣＰＵが読出し可能状態でなく、前記第２のＣＰＵが書込み可能状態である場合に、前記第２の記憶部から前記データ信号を読出すことによって、前記第１のＣＰＵが接続されるポートに出力する読出し元の切替えを行って、読出し可能状態となる前記第１のＣＰＵに読出した前記データ信号を出力するステップと、を含む
信号制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、デュアルポートＲＡＭに同時アクセスする場合に適用して好適な信号制御装置及び信号制御方法に関する。
【背景技術】
【０００２】
従来、２つのＣＰＵがデータにアクセスするデュアルポートＲＡＭが用いられている。しかし、２つの異なるＣＰＵがデュアルポートＲＡＭに対して読出し／書込みアクセスを同時に行うと、読み出されるデータが保証されない場合があった。例えば、デュアルポートＲＡＭに読出しと書込みのアクセス衝突が起こると、それぞれのポートのアクセスタイミングの違いにより、データを書き換えている途中で読み出してしまう危険性がある。その場合、不定値を読み出す可能性がある。このため、２つのＣＰＵがデュアルポートＲＡＭに同時にアクセスしても、正しくデータを読出せるようにするため、以下に例示するように様々な対策が採られていた。
【０００３】
（１）それぞれのＣＰＵで読出しと書込みが重ならない様にタイミングを取り決めしておくことで衝突を回避する。
（２）他方のＣＰＵがデュアルポートＲＡＭに書込みしている間、Ｂｕｓｙ信号などを出力して一方のＣＰＵの読出し動作を待つ。
（３）２組のデュアルポートＲＡＭを用意して、それぞれのアクセスを分け、バスアクセスの無いときにＲＡＭの内容をマージすることで衝突を回避する（特許文献１）。
（４）書込みデータをラッチする（特許文献２〜４）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】実開平５−２３２６３号公報
【特許文献２】特開平６−１９８３２号公報
【特許文献３】特開平４−３１３１３２号公報
【特許文献４】特開平３−２９２６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した（１），（２）に示した技術を用いて、アクセスタイミングの取り決めを行ったり、ＣＰＵを待たせたりすると、ＣＰＵに制約や時間の無駄が生じてしまったり、ＣＰＵがアクセスできるタイミングが制限されたりすることがあった。また、（３）に示した技術を用いると、マージするためのリソースを大きく必要とするため、製造コストが高くなる。
【０００６】
また、（４）に示した技術を用いると、書込みデータをラッチしてデュアルポートＲＡＭに後書きする必要があり、後書き用回路を組み込まなければならない。このため、デュアルポートＲＡＭを制御するための回路規模が増加するだけでなく、その制御も煩雑となる。また、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態が終了した後もアドレスと書込みデータを保持しなければならないため、極めて短いサイクルでの連続した書込みには不向きである。
【０００７】
本発明はこのような状況に鑑みて成されたものであり、２つのＣＰＵがデュアルポートＲＡＭに同じタイミングで読出し又は書込みを行う場合に、データ信号を正しく読出すことを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、２つのポートにそれぞれ接続される第１及び第２のＣＰＵによって、データ信号の読出し又は書込みが所定の動作タイミングで行われるデュアルポートＲＡＭを用いる。
ここで、第１のＣＰＵがデュアルポートＲＡＭからデータ信号の読出しを行うアドレスと、第２のＣＰＵがデュアルポートＲＡＭにデータ信号の書込みを行うアドレスの衝突を検出する。
また、第１のＣＰＵがデュアルポートＲＡＭから読出したデータ信号を第１の記憶部に記憶する。合わせて、アドレスの衝突が検出され、第１のＣＰＵが読出し可能状態でない場合に、第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、第２のＣＰＵが、デュアルポートＲＡＭにデータ信号を書き込むアドレスから読出したデータ信号を第２の記憶部に記憶する。
そして、アドレスの衝突が検出されず、第１のＣＰＵが読出し可能状態である場合に、第１の記憶部からデータ信号を読出す。また、アドレスの衝突が検出され、第１のＣＰＵが読出し可能状態でない場合に、第２のＣＰＵが、書込み可能状態であるか否かにかかわらず、第１の記憶部からデータ信号を読出す。一方、アドレスの衝突が検出され、第１のＣＰＵが読出し可能状態でなく、第２のＣＰＵが書込み可能状態である場合に、第２の記憶部からデータ信号を読出す。このようにして、第１のＣＰＵが接続されるポートに出力する読出し元の切替えを行って、読出し可能状態となる前記第１のＣＰＵに読出した前記データ信号を出力する。
【０００９】
このようにしたことで、第１及び第２のＣＰＵが同時にデュアルポートＲＡＭにデータ信号の読出し又は書込みを行う際に、書込みアドレスと読出しアドレスが衝突しても、デュアルポートＲＡＭから正しくデータ信号を読出すことが可能となる。
【発明の効果】
【００１０】
本発明によれば、第１及び第２のＣＰＵが同時にデュアルポートＲＡＭに対して、データ信号を書込み又は読出す場合に、第１のＣＰＵの読出し可能状態と、第２のＣＰＵの書込み可能状態に基づいて、データ信号の読出し元の切替えを行う。このため、各ＣＰＵの動作速度によらず、任意のタイミングで同じアドレスのデータにアクセスすることができる。このとき、読出しを行うＣＰＵは、書込みを行うＣＰＵの処理が完了するまで待機する必要がないため、高速にデータ信号を読出すことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施の形態における映像処理システムの内部構成例を示すブロック図である。
【図２】本発明の一実施の形態における信号制御装置の内部構成例を示すブロック図である。
【図３】本発明の一実施の形態における第１のＣＰＵの読出しと、第２のＣＰＵの書込みが同じタイミングで発生した場合におけるタイミングチャートである。
【図４】本発明の一実施の形態における第１のＣＰＵの読出し中に、第２のＣＰＵの書込みが衝突した場合におけるタイミングチャートである。
【図５】本発明の一実施の形態における第２のＣＰＵの書込み中に、第１のＣＰＵの読出しが衝突した場合におけるタイミングチャートである。
【図６】本発明の一実施の形態における信号制御方法の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、発明を実施するための最良の形態（以下実施の形態とする。）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（デュアルポートＲＡＭのアクセス制御：２つのＣＰＵが同時にデュアルポートＲＡＭを読出し／書込みする例）
【００１３】
＜１．第１の実施の形態＞
［デュアルポートＲＡＭのアクセス制御：２つのＣＰＵが同時にデュアルポートＲＡＭを読出し／書込みする例］
【００１４】
以下、本発明の一実施の形態について、添付図面を参照して説明する。本実施の形態では、一方のＣＰＵがデュアルポートＲＡＭからデータ信号（以下、「データ」とも呼ぶ。）を読出し、一方のＣＰＵがデータを書き込む場合に、読出されるデータが不正な内容とならないように制御を行う信号制御装置４に適用した例について説明する。
【００１５】
図１は、映像処理システム１０の内部構成例を示す。
カメラ１が撮像した映像を処理する映像処理システム１０は、被写体を撮像するカメラ１と、映像を記録する記録装置３を備える。記録装置３は、映像を記録するために不図示のビデオテープ、ＨＤＤ等の大容量の記録媒体を備える。カメラ１は、カメラ１が備える不図示の処理ブロックの動作を制御し、記録装置３に各種の制御信号を出力したり、データを読出したりする第１のＣＰＵ２を備える。
【００１６】
記録装置３は、記録装置３が備える不図示の処理ブロックの動作を制御する第２のＣＰＵ６を備える。また、記録装置３は、第１のＣＰＵ２と第２のＣＰＵ６の間でデータを受け渡すために使用するデュアルポートＲＡＭ５と、デュアルポートＲＡＭ５にアクセスする第１のＣＰＵ２と第２のＣＰＵ６のアクセス制御を行う信号制御装置４を備える。
【００１７】
カメラ１と記録装置３は、お互いに内蔵する第１のＣＰＵ２と第２のＣＰＵ６を用いて、デュアルポートＲＡＭ５に記録したタイムコード等のデータを共有している。本例では、第１のＣＰＵ２は、約３３ＭＨｚで動作し、１６ビットバスでデータを伝送する。一方、第２のＣＰＵ６は、約７４ＭＨｚで動作し、８ビットバスでデータを伝送する。そして、デュアルポートＲＡＭ５には、２つのポートにそれぞれ接続される第１及び第２のＣＰＵによって、データ信号の読出し又は書込みが所定の動作タイミングで行われる。
【００１８】
信号制御装置４は、第１のＣＰＵ２と第２のＣＰＵ６がデュアルポートＲＡＭ５に要求する読出しと書込みの参照するアドレスが衝突した時点で、書込みに先立ち該当するアドレスのデータを読出し、バッファする機能を有する。そして、信号制御装置４は、必要に応じてこのバッファしたデータを読出させるか、デュアルポートＲＡＭ上のデータを読出させるかを切り替えることで、ＣＰＵが不定値を読出ししてしまうことを防ぐものである。
【００１９】
図２は、信号制御装置４の内部構成例を示す。
【００２０】
［第１のＣＰＵ２側］
信号制御装置４は、第１のＣＰＵ２側の読出し処理に用いる処理ブロックとして、第１のＣＰＵ２がデュアルポートＲＡＭ５から読出したデータ信号を一時的に保持する第１の記憶部として、レジスタ１１ａを備える。また、信号制御装置４は、アドレスの衝突が検出された場合に、第２のＣＰＵ６が、デュアルポートＲＡＭ５にデータ信号を書き込むアドレスから読出したデータ信号を記憶する第２の記憶部として、バッファメモリ１２ａを備える。また、信号制御装置４は、レジスタ１１ａ又はバッファメモリ１２ａのいずれかに記憶されたデータ信号を選択し、この選択したデータ信号に切替えて出力する切替え部として、マルチプレクサ１５ａを備える。
【００２１】
［第２のＣＰＵ６側］
また、信号制御装置４は、第２のＣＰＵ６側の読出し処理に用いる処理ブロックとして、第２のＣＰＵ６がデュアルポートＲＡＭ５から読出したデータ信号を一時的に保持する第１の記憶部として、レジスタ１１ｂを備える。また、信号制御装置４は、アドレスの衝突が検出された場合に、第１のＣＰＵ２が、デュアルポートＲＡＭ５にデータ信号を書き込むアドレスから読出したデータ信号を記憶する第２の記憶部として、バッファメモリ１２ｂを備える。また、信号制御装置４は、レジスタ１１ｂ又はバッファメモリ１２ｂのいずれかに記憶されたデータ信号を選択し、この選択したデータ信号に切替えて出力する切替え部として、マルチプレクサ１５ｂを備える。
【００２２】
また、信号制御装置４は、レジスタ１１ａ，１１ｂ、バッファメモリ１２ａ，１２ｂ、マルチプレクサ１５ａ，１５ｂのデータ信号の取込みや、出力するデータ信号の切替えを制御する制御部１３を備える。また、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号の読出しを行うアドレスと、第２のＣＰＵ６がデュアルポートＲＡＭ５にデータ信号の書込みを行うアドレスの衝突を検出するアドレス衝突検出部１４を備える。
【００２３】
次に、信号制御装置４内の各部の動作例を説明する。
ここでは、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出し、第２のＣＰＵ６がデュアルポートＲＡＭ５にデータ信号を書き込む場合を想定する。
このとき、レジスタ１１ａは、第１のＣＰＵ２がデュアルポートＲＡＭ５から読出したデータ信号を記憶する。また、バッファメモリ１２ｂは、第１のＣＰＵ２が読出し可能状態でない場合に、以下の動作を行う。即ち、バッファメモリ１２ｂは、第２のＣＰＵ６が、書込み可能状態であるか否かにかかわらず、第２のＣＰＵ６が、デュアルポートＲＡＭ５にデータ信号を書き込むアドレスから読出したデータ信号を記憶する。
【００２４】
マルチプレクサ１５ａは、アドレスの衝突が検出されず、第１のＣＰＵ２が読出し可能状態である場合に、レジスタ１１ａからデータ信号を読出す。また、マルチプレクサ１５ａは、アドレスの衝突が検出され、第１のＣＰＵ２が読出し可能状態でない場合に、第２のＣＰＵ６が、書込み可能状態であるか否かにかかわらず、レジスタ１１ａからデータ信号を読出す。一方、アドレスの衝突が検出され、第１のＣＰＵ２が読出し可能状態でなく、第２のＣＰＵ６が書込み可能状態である場合に、バッファメモリ１２ｂからデータ信号を読出す。このようにして、第１のＣＰＵ２が接続されるポートに出力する読出し元の切替えを行って、読出し可能状態となる第１のＣＰＵ２に読出したデータ信号を出力する。
なお、第１のＣＰＵ２がデュアルポートＲＡＭ５にデータ信号を書込み、第２のＣＰＵ６がデュアルポートＲＡＭ５からデータ信号を読出す場合は、上述した動作は全て対に設けられた処理ブロックが行うこととなる。
【００２５】
次に、第１のＣＰＵ２が読出し、第２のＣＰＵ６が書込みの場合における各部の処理例について、図３〜図５を参照して説明する。ただし、役割が逆の場合（第１のＣＰＵ２が書込み、第２のＣＰＵ６が読出し）は、レジスタやバッファメモリも反対側ものを使うだけで基本的な動作は同じである。以下の図３〜図５において、網掛け部分が衝突区間を表し、読出し又は書込みが行われるデータをデータ信号として表している。また、図３〜図５のタイミングチャートの時系列に沿って記した数字は、後述するフローチャート（図６参照）の各ステップに記した数字に対応する。
【００２６】
アドレスが衝突するパターンとして、以下の３パターンに場合分けできる。
（１）第１のＣＰＵ２の読出しと第２のＣＰＵ６の書込みがクロックの立上がりから同じタイミングで発生した場合
（２）第１のＣＰＵ２の読出し中に第２のＣＰＵ６の書込みが衝突してきた場合
（３）第２のＣＰＵ６の書込み中に第１のＣＰＵ２の読出しが衝突した場合
【００２７】
また、２つのＣＰＵの速度としても以下の３パターンに場合分けできる。
（１）第１のＣＰＵ２、第２のＣＰＵ６の速度が同じ場合
（２）第１のＣＰＵ２が第２のＣＰＵ６よりも速い場合
（３）第１のＣＰＵ２が第２のＣＰＵ６よりも遅い場合
これらの各場合（９つの組合せ）について、それぞれアドレス衝突時の動作と、読出すデータ信号の例を説明する。
【００２８】
＜１．第１のＣＰＵ２の読出しと第２のＣＰＵ６の書込みが同じタイミングで発生した場合＞
図３は、第１のＣＰＵ２の読出しと第２のＣＰＵ６の書込みが同じタイミングで発生した場合の例を示すタイミングチャートである。以下の説明で、“Ｒｅａｄ”、“Ｗｒｉｔｅ”と記載した場合、実際にデュアルポートＲＡＭ５からデータを読出し又は書込みが始まるわけではない。この状態では、“Ｒｅａｄ”又は“Ｗｒｉｔｅ”の準備が開始され、実際の読出し又は書込みは、”Ｒｅａｄ Ｅｎａｂｌｅ”状態（読出し可能状態）又は”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態（書込み可能状態）になったときに行われる。
【００２９】
ここで、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出すタイミングが第２のＣＰＵ６がデュアルポートＲＡＭ５にデータ信号の書込みを行うタイミングと同じ場合に、以下の処理を行う。このとき、アドレスの衝突が検出されたことが必要である。そして、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２と第２のＣＰＵ６の動作速度に応じて、マルチプレクサ１５ａ，１５ｂが出力するデータ信号を読出すレジスタ１１ａ，１１ｂ及びバッファメモリ１２ａ，１２ｂを切替える。
【００３０】
具体的には、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２と第２のＣＰＵ６の動作タイミングが等しい場合に、第１のＣＰＵ２が第１又は２の記憶部に書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より速い場合に、第１のＣＰＵ２がバッファメモリ１２ｂに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より遅い場合に、第２のＣＰＵ６がバッファメモリ１２ｂに書き込んだデータ信号を出力する。
以下に詳細な処理例を説明する。
【００３１】
［１−１］第１のＣＰＵ２と第２のＣＰＵ６が同速度である場合（図３Ａ）
（１）始めに、第１のＣＰＵ２は、レジスタ１１ａにデュアルポートＲＡＭ５から読出したデータをラッチする。
（２）次に、アドレス衝突検出部１４は、アドレス衝突を検出する。
（３）アドレス衝突検出部１４がアドレス衝突を検出すると、バッファメモリ１２ｂにデュアルポートＲＡＭ５の出力をバッファする。
（４）第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”状態となるときには、レジスタ１１ａ，バッファメモリ１２ｂどちらを読み出しても安定したデータが得られる。
（５）第２のＣＰＵ６は、通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
【００３２】
［１−２］第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも速い場合（図３Ｂ）
この場合、［１−１］と同様に処理が進む。しかし、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態となる前に第１のＣＰＵ２は”Ｒｅａｄ Ｅｎａｂｌｅ”状態となる。このため、マルチプレクサ１５ａは、第１のＣＰＵ２にレジスタ１１ａから読出したデータを出力する。この結果、第１のＣＰＵ２はレジスタ１１ａからデータを読み出すこととなる。
【００３３】
［１−３］第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも遅いとき（図３Ｃ）
この場合、［１−１］と同様に処理が進む。しかし、第１のＣＰＵ２の読出し準備中に第２のＣＰＵ６は”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態となってしまう。このため、マルチプレクサ１５ａは、第１のＣＰＵ２にバッファメモリ１２ｂから読出したデータを出力する。この結果、第１のＣＰＵ２はバッファメモリ１２ｂからデータを読み出すこととなる。
【００３４】
＜２．第１のＣＰＵ２の読出し中に第２のＣＰＵ６の書込みが衝突した場合＞
図４は、第１のＣＰＵ２の読出し中に第２のＣＰＵ６の書込みが衝突した場合の例を示すタイミングチャートである。
【００３５】
ここで、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出す途中に、第２のＣＰＵ６がデュアルポートＲＡＭ５にデータ信号の書込みを行う場合に以下の処理を行う。このとき、アドレスの衝突が検出されたことが必要である。そして、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２と第２のＣＰＵ６の動作速度に応じて、マルチプレクサ１５ａ，１５ｂが出力するデータ信号を読出す第１及びバッファメモリ１２ｂを切替える。
【００３６】
具体的には、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２と第２のＣＰＵ６の動作タイミングが等しい場合に、第１のＣＰＵ２がレジスタ１１ａに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より速い場合に、第１のＣＰＵ２がバッファメモリ１２ｂに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より遅く、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出す準備を行っている場合に、第２のＣＰＵ６がバッファメモリ１２ｂに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より遅く、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出す場合に、第１のＣＰＵ２がレジスタ１１ａに書き込んだデータ信号を出力する。
以下に詳細な処理例を説明する。
【００３７】
［２−１］第１のＣＰＵ２と第２のＣＰＵ６が同速度の場合（図４Ａ）
この場合、”Ｒｅａｄ Ｅｎａｂｌｅ”状態の前、途中を問わないものとする。
（１）レジスタ１１ａにデュアルポートＲＡＭ５から読出したデータをラッチする。
（２）アドレス衝突検出部１４は、アドレスの衝突を検出する。
（３）アドレスの衝突を検出すると、バッファメモリ１２ｂにデュアルポートＲＡＭ５の出力をバッファする。
【００３８】
（４）レジスタ１１ａのラッチは”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態より前に終了するので、マルチプレクサ１５ａは第１のＣＰＵ２にレジスタ１１ａから読出したデータを出力する。この結果、第１のＣＰＵ２はレジスタ１１ａからデータを読み出すこととなる。
（５）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
【００３９】
［２−２］第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも速い場合（図４Ｂ）
［２−１］と同様に処理が進む。しかし、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態となる前に第１のＣＰＵ２は”Ｒｅａ第１のＣＰＵ２が先に”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入る。このため、マルチプレクサ１５ａは第１のＣＰＵ２にレジスタ１１ａから読出したデータを出力する。
【００４０】
［２−３］第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも遅い場合（図４Ｃ）
ａ．読出し準備中に書込みが発生した場合
（１），（２），（３）は［２−１］と同様の処理を行うため説明を省略する。
（４）第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入る前に、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入るので、マルチプレクサ１５ａは第１のＣＰＵ２にバッファメモリ１２ｂから読出したデータを出力する。この結果、第１のＣＰＵ２はバッファメモリ１２ｂのデータを読み出すこととなる。
（５）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
（６）衝突が終了しても、第１のＣＰＵ２の読出しが終了していないので、バッファメモリ１２ｂのデータは第１のＣＰＵ２の読出しが終了するまで保持しておく。
【００４１】
ｂ．”Ｒｅａｄ Ｅｎａｂｌｅ”状態中に書込みが発生した場合
（１），（２），（３）は［２−１］と同様の処理を行うため説明を省略する。
（４）第１のＣＰＵ２は既に”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入っているので、マルチプレクサ１５ａは第１のＣＰＵ２にレジスタ１１ａから読出したデータを出力する。この結果、第１のＣＰＵ２はレジスタ１１ａからデータを読み出すこととなる。
（５）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
【００４２】
＜３．第２のＣＰＵ６の書込み中に第１のＣＰＵ２の読出しが衝突した場合＞
【００４３】
ここで、マルチプレクサ１５ａ，１５ｂは、制御部の制御によって、第２のＣＰＵ６がデュアルポートＲＡＭ５にデータ信号の書込みを行う途中に、第１のＣＰＵ２がデュアルポートＲＡＭ５からデータ信号を読出す場合に以下の処理を行う。このとき、アドレスの衝突が検出されたことが必要である。そして、第１のＣＰＵ２と第２のＣＰＵ６の動作速度に応じて、マルチプレクサ１５ａ，１５ｂが出力するデータ信号を読出す第１及びバッファメモリ１２ｂを切替える。
【００４４】
具体的には、マルチプレクサ１５ａ，１５ｂは、第１のＣＰＵ２と第２のＣＰＵ６の動作タイミングが等しい場合に、第２のＣＰＵ６がバッファメモリ１２ｂに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より速く、データ信号の書込みの準備中に読出しが行われる場合に、第１のＣＰＵ２がレジスタ１１ａに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より速く、データ信号の書込み中に読出しが行われる場合に、第２のＣＰＵ６がバッファメモリ１２ｂに書き込んだデータ信号を出力する。第１のＣＰＵ２の動作速度が第２のＣＰＵ６の動作速度より遅い場合に、第２のＣＰＵ６がバッファメモリ１２ｂに書き込んだデータ信号を出力する。
以下に詳細な処理例を説明する。
【００４５】
３−１）第１のＣＰＵ２と第２のＣＰＵ６が同じ速度（周波数）で動作する場合
この場合、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態の前、途中を問わないものとする。
（１）第２のＣＰＵ６は書込みの準備を開始する。
（２）アドレス衝突検出部１４は、アドレスの衝突を検出する。
（３）第１のＣＰＵ２が通常の読出しをするのと同様に、レジスタ１１ａにデュアルポートＲＡＭ５から読出したデータをラッチする。
（４）アドレスの衝突を検出すると、バッファメモリ１２ｂにデュアルポートＲＡＭ５の出力をバッファする。
【００４６】
（５）第１のＣＰＵ２の読出しが始まったとき、書込みが動作しているので、レジスタ１１ａのデータは不定の可能性がある。
（６）一方、バッファメモリ１２ｂのデータも衝突が生じてからバッファされているが、バッファメモリ１２ｂは書込み側のポートから、書込み側のタイミングでバッファするため、不定にはならない。
【００４７】
（７）第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入ったときに、既に第２のＣＰＵ６側は”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入っている。
（８）そのため、マルチプレクサ１５ａは第１のＣＰＵ２に安定したバッファメモリ１２ｂから読出したデータを出力する。この結果、第１のＣＰＵ２はバッファメモリ１２ｂからデータを読み出すこととなる。ただし、第１のＣＰＵ２側で準備したレジスタ１１ａのデータは不定値の可能性がある。
【００４８】
（９）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
（１０）衝突が終了しても、第１のＣＰＵ２の読出しが終了していないので、バッファメモリ１２ｂのデータは第１のＣＰＵ２の読出しが終了するまで保持しておく。
【００４９】
３−２）第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも速い場合
ａ．書込み準備中に読出しが発生した場合
（１），（２），（３），（４）は３−１）と同様の処理を行うため説明を省略する。
（５）第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入る前に第１のＣＰＵ２は”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入っているため、レジスタ１１ａのデータは安定する。
（６）マルチプレクサ１５ａは第１のＣＰＵ２にレジスタ１１ａから読出したデータを出力する。この結果、第１のＣＰＵ２はレジスタ１１ａのデータを読み出すこととなる。
（７）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
【００５０】
ｂ．”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態中に読出しが発生した場合
（１），（２），（３），（４）は３−１）と同様の処理を行うため説明を省略する。
（５）第１のＣＰＵ２の読出しが始まったとき、既に”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態となっているので、レジスタ１１ａのデータは不定の可能性がある。
（６）一方、バッファメモリ１２ｂのデータも”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態中にバッファされているが、バッファメモリ１２ｂは書込み側のポートから、書込み側のタイミングでバッファするため、不定にはならない。
【００５１】
（７）第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入ったときに、既に第２のＣＰＵ６側は”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入っている。
（８）そのため、マルチプレクサ１５ａは第１のＣＰＵ２に安定したバッファメモリ１２ｂから読出したデータを出力する。この結果、第１のＣＰＵ２はバッファメモリ１２ｂからデータを読み出すこととなる。このため、第１のＣＰＵ２側で準備したレジスタ１１ａのデータは不定値の可能性がある。
【００５２】
（９）第２のＣＰＵ６は通常通り、”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に合わせてデュアルポートＲＡＭ５にデータを書き込む。
（１０）衝突が終了しても、第１のＣＰＵ２の読出しが終了していないので、バッファメモリ１２ｂのデータは第１のＣＰＵ２の読出しが終了するまで保持しておく。
【００５３】
３−３）第１のＣＰＵ２の動作速度が第２のＣＰＵ６よりも遅い場合
３−２）のａ．同様、第２のＣＰＵ６が先に“Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入るため、マルチプレクサ１５ａは第１のＣＰＵ２にバッファメモリ１２ｂから読出したデータを出力する。
【００５４】
図６は、信号制御装置４が行う信号制御方法の例を示す。
始めに、第１のＣＰＵ２は、デュアルポートＲＡＭ５から読出したデータをレジスタ１１ａにラッチする（ステップＳ１）。次に、アドレス衝突検出部１４は、アドレスが衝突したか否かを判断する（ステップＳ２）。
【００５５】
ステップＳ２において、アドレスが衝突していないと判断した場合、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”であるか否かを判断する（ステップＳ５）。ステップＳ５において、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”であると判断した場合、ステップＳ１０に処理を移す。一方、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”でないと判断した場合、ステップＳ２に処理を移す。
【００５６】
ステップＳ２において、アドレスが衝突したと判断した場合、制御部１３は、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”でなく第２のＣＰＵが”Ｗｒｉｔｅ Ｅｎａｂｌｅ”でないか否かを判断する（ステップＳ３）。この条件に合致しない場合、制御部１３は、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”でなく第２のＣＰＵが”Ｗｒｉｔｅ Ｅｎａｂｌｅ”であるか否かを判断する（ステップＳ４）。
【００５７】
ステップＳ４において、条件に合致する場合、第２のＣＰＵ６は、ＤＰＲＡＭ５から読出したデータをバッファメモリ１２ｂにラッチして（ステップＳ６）、ステップＳ９に処理を移す。一方、ステップＳ４において、条件に合致しない場合、そのままステップＳ９に処理を移す。
【００５８】
ステップＳ３において、条件に合致する場合、第２のＣＰＵ６は、ＤＰＲＡＭ５から読出したデータをバッファメモリ１２ｂにラッチする（ステップＳ７）。
【００５９】
次に、制御部１３は、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”であるか否かを判断する（ステップＳ８）。第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”である場合、マルチプレクサ１５ａは、バッファメモリ１２ａのデータを選択し、バッファメモリ１２ａから読出したデータを出力する（ステップＳ９）。
【００６０】
一方、ステップＳ３，Ｓ８において、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”でないと判断した場合、又は、ステップＳ５において、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”であると判断した場合、以下の処理を行う。即ち、マルチプレクサ１５ａは、レジスタ１１ａのデータを選択し、レジスタ１１ａから読出したデータを出力する（ステップＳ１０）。
【００６１】
ステップＳ９，Ｓ１０の処理の後、制御部１３は、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”であるか否かを判断する（ステップＳ１１）。第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”でない場合、処理を終了する。
【００６２】
一方、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”である場合、制御部１３は、レジスタ１１ａとバッファメモリ１２ｂのデータを保持させて、処理を終了する（ステップＳ１２）。
【００６３】
以上説明した本実施の形態に係る信号制御装置４は、デュアルポートＲＡＭに５アクセスする場合に、第１のＣＰＵ２がデュアルポートＲＡＭ５ポートから読出し、第２のＣＰＵ６が書き込む動作を同時に行う場合に有効な構成としてある。ここで、信号制御装置４は、書込み動作と読出し動作のアドレス衝突のタイミングを検出するアドレス衝突検出部１４を備える。そして、書込み側となる第２のＣＰＵ６は、一連の書込み動作の初期にデュアルポートＲＡＭ５からデータを読出す構成とするため、その読出ししたデータを保持するためのバッファメモリ１２ｂを持つ。一方、読出し側となる第１のＣＰＵ２は、アドレス衝突検出部１４の判断に従い、書込み側となる第２のＣＰＵ６がバッファしたデータ、またはデュアルポートＲＡＭ５の内容をコピーしたレジスタ１１ａのデータのどちらかを選択する。これにより、第１のＣＰＵ２は、どちらかに保存されている正しいデータを、マルチプレクサ１５ａを介して取り込むことができる。また、第１のＣＰＵ２が行う動作は、第２のＣＰＵ６においても同様に行うことが可能である。
【００６４】
このように信号制御装置４を構成したことにより、２つのＣＰＵが同時にデュアルポートＲＡＭ５に、読出し又は書込みを行う場合であっても、２つのＣＰＵの読出し可能状態又は書込み可能状態に基づいて、データ信号の読出し元の切替えを行う。このため、２つのＣＰＵの動作速度によらず、任意のタイミングでアクセスすることができる。例えば、第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態に入る前に第１のＣＰＵ２の”Ｒｅａｄ Ｅｎａｂｌｅ”状態が始まると、第１のＣＰＵ２は第１のＣＰＵ２側でラッチしたレジスタ１１ａを読む。そして、第１のＣＰＵ２が”Ｒｅａｄ Ｅｎａｂｌｅ”状態に入る前に第２のＣＰＵ６が”Ｗｒｉｔｅ Ｅｎａｂｌｅ”状態になったら、第１のＣＰＵ２は第２のＣＰＵ６側でバッファしたバッファメモリ１２ｂを読み出す。これにより、相互のＣＰＵのアクセスタイミングによらず、不定値の出力を回避することができる。
【００６５】
また、従来の技術として挙げた（１）、（２）に対する優位性は、ＣＰＵは読出し側も書込み側も、アクセスタイミングの制約や、待たせる時間の無駄なく自由にデュアルポートＲＡＭ５にアクセスできることである。また、（３）に対する優位性は、バッファとコントローラという小さなリソースで実現できること。そして、第１のＣＰＵ２と第２のＣＰＵ６の同期非同期に関わらず、データ化けを回避できる。
【００６６】
また、一方のＣＰＵは、他方のＣＰＵの処理が完了するまで待機する必要がなく、データを高速に書込み又は読出すことができる。また、これを実現するには、データをバッファするための装置とデータの選択回路、及びアドレス検出回路などの簡易な装置で構成することが可能であり、製造コストを低減することができる。
【００６７】
また、第１のＣＰＵ２，第２のＣＰＵ６のアクセスタイミングや速度が異なる場合でも、不定値を読み出さない。デュアルポートＲＡＭ５に少しのリソースを追加するだけでデータの読出し又は書込みが衝突した時のデータ化けを回避できるようになる。
【００６８】
また、従来課題としていたような、アクセスタイミングの制約なく、自由にデュアルポートＲＡＭ５にアクセスできる。また、書込みデータをラッチしておく必要がないため、アドレスをインクリメントしながら連続して書き込むことができる。また、書込みのラッチが無い分リソースも小さくて済む。
【００６９】
また、本発明は上述した実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
【符号の説明】
【００７０】
１…カメラ、２…第１のＣＰＵ、３…記録装置、４…信号制御装置、５…デュアルポートＲＡＭ、６…第２のＣＰＵ、１０…映像処理システム、１１ａ，１１ｂ…レジスタ、１２ａ，１２ｂ…バッファメモリ、１３…制御部、１４…アドレス衝突検出部、１５ａ，１５ｂ…マルチプレクサ
【図１】
2011227834.tif 000003
【図２】
2011227834.tif 000004
【図３】
2011227834.tif 000005
【図４】
2011227834.tif 000006
【図５】
2011227834.tif 000007
【図６】
2011227834.tif 000008