(57)【要約】【課題】複数個のプロセッサがそれぞれ管理するバスから共有メモリをアクセスする際における、各バスでの待ち状態の発生を抑制する。【解決手段】メインバスＢ１はメインプロセッサ１が管理し、内部バスＢ２はコプロセッサ２が管理する。メインバスＢ１および内部バスＢ２とシングルポートの共有メモリ３との間に共有メモリインターフェイス４が介在する。共有メモリインターフェイス４は、メインバスＢ１と共有メモリ３との間に介在するバッファメモリ１３を備える。調停制御部１４は、共有メモリ３からの読出時には共有メモリからバッファメモリ１３に転送したデータをバッファメモリ１３からメインバスＢ１に読み出させる。また、調停制御部１４は、共有メモリ１３への書込時にはメインバスＢ１からバッファメモリ１３にデータを転送しバッファメモリ１３のデータを共有メモリに書き込ませる。【選択図】図１
2008117001.tif 000002
【特許請求の範囲】
【請求項１】
複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、少なくとも１つのバスと共有メモリとの間に介在し当該バスから共有メモリにアクセスして読出と書込とを行うデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部とを備えることを特徴とする共有メモリインターフェイス。
【請求項２】
前記プロセッサは２個であって、第１のプロセッサが管理する第１のバスに接続される増設ユニットに第２のプロセッサおよび前記共有メモリとともに内蔵されていることを特徴とする請求項１記載の共有メモリインターフェイス。
【請求項３】
前記バッファメモリは、前記各バスと共有メモリとの間にそれぞれ設けられていることを特徴とする請求項１または請求項２記載の共有メモリインターフェイス。
【請求項４】
前記バスから前記バッファメモリにアクセスする際にアクティブになる第１のチップセレクト信号がアクティブになる期間に対して、前記バッファメモリから前記共有メモリにアクセスする際にアクティブになる第２のチップセレクト信号がアクティブになる期間を短くするセレクト信号変換部を備えることを特徴とする請求項１ないし請求項３のいずれか１項に記載の共有メモリインターフェイス。
【請求項５】
前記調停制御部は、前記共有メモリへのデータの書込時に、前記第１のチップセレクト信号をアクティブとして前記バスから前記バッファメモリへ書込を行う期間を終了させた後に、前記第２のチップセレクト信号をアクティブとしてバッファメモリから共有メモリへ書込を行う期間を設けることを特徴とする請求項４記載の共有メモリインターフェイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２個のプロセッサと共有メモリとの間に介在し、両プロセッサによる共有メモリのアクセスを調停する共有メモリインターフェイスに関するものである。
【背景技術】
【０００２】
従来から、メインプロセッサとコプロセッサとの２個のプロセッサ（マイクロプロセッサ）を用い、両プロセッサがメモリを共有することによりデータを共有する装置が提供されている。以下では、両プロセッサが共有するメモリを共有メモリと呼ぶ。この種の装置において、共有メモリを実現するにはマルチポートメモリ（プロセッサが２個の場合はデュアルポートメモリ）を用いるか、シングルポートメモリに複数のプロセッサからのアクセスを調停する共有メモリインターフェイスを付加することにより、シングルポートメモリをマルチポートメモリと同様に扱うことが考えられる。
【０００３】
ところで、プログラマブルロジックコントローラ（ＰＬＣ）では、シーケンスプログラムを実行するメインプロセッサのほかに、メインユニットに増設される増設ユニットを制御するためのコプロセッサを備えるものが提供されている。コプロセッサは、つねに必要というわけではないから、メインプロセッサの管理するメインバスに対して必要に応じて増設する増設ユニットの形で提供される。したがって、共有メモリも増設ユニットに設けられる。このように、コプロセッサを内蔵した増設ユニットに、共有メモリを設ける場合には、共有メモリインターフェイスも増設ユニットに内蔵される。
【０００４】
この種の装置の一例を図１０に示す。メインプロセッサ１はメインバスＢ１を管理し、メインバスＢ１に増設ユニット１０が接続されている。増設ユニット１０には、コプロセッサ２とともに共有メモリ３と共有メモリインターフェイス４とが内蔵される。また、増設ユニット１０において共有メモリインターフェイス４はコプロセッサ２に管理された内部バスＢ２に接続されている（たとえば、特許文献１参照）。
【０００５】
共有メモリ３へのアクセスは、図１１に示す信号を用いる。図１１（ａ）〜（ｅ）は、それぞれチップセレクト信号ＣＣＳ、アドレスバスＣＡＤ、データバスＣＤＴ、読出要求ＣＲＤ、書込要求ＣＷＲの各状態を表している。チップセレクト信号ＣＣＳがＬレベルになると、アドレスバスＣＡＤでアドレスを指定し、読出要求ＣＲＤまたは書込要求ＣＷＲを行って、データバスＣＤＴのデータの読出または書込を行うのである。
【０００６】
具体的には、読出時には、チップセレクト信号ＣＣＳをＬレベル、アドレスバスＣＡＤを所望のアドレス、データバスＣＤＴをハイインピーダンス、読出要求をＬレベル、書込要求をＨレベルに設定する。また、書込時には、チップセレクト信号ＣＣＳをＬレベル、アドレスバスＣＡＤを所望のアドレス、データバスＣＤＴを書込データ、読出要求をＨレベル、書込要求をＬレベルに設定する。
【０００７】
図示例では、メインバスＢ１と内部バスＢ２と共有メモリ３のポートとのビット幅が等しく（たとえば１６ビット）、共有メモリインターフェイス４は、共有メモリ３のポートをメインバスＢ１と内部バスＢ２との一方に選択的に接続する機能を有している。
【０００８】
したがって、メインバスＢ１と内部バスＢ２とのどちらから共有メモリ３にアクセスする場合にも共有メモリ３のアクセス時間でアクセスすることができる。共有メモリインターフェイス４は、メインバスＢ１と内部バスＢ２とのうち、チップセレクト信号ＣＣＳを先にＬレベルにした（アクティブ状態にした）ほうを共有メモリ３に接続する。
【０００９】
つまり、共有メモリインターフェイス４において、メインバスＢ１に接続されるポートをポートＡ、内部バスに接続されるポートをポートＢ、共有メモリ３に接続されるポートをポートＣとすれば、共有メモリインターフェイス４は、ポートＣをポートＡとポートＢとの一方に選択的に接続する。
【００１０】
共有メモリ３からメインプロセッサ１とコプロセッサ２とがそれぞれデータの読出を行う例を図１２に示す。図１２（ａ）〜（ｅ）はポートＡ、図１２（ｆ）〜（ｊ）はポートＢ、図１２（ｋ）〜（ｏ）はポートＣの状態をそれぞれ示す。また、信号名のうち先頭の文字はポート名を表し、他の文字は信号の種別を表している。信号の種別は図１１と同様であって、ＣＳがチップセレクト信号、ＡＤがアドレス、ＤＴがデータ、ＲＤが読出要求、ＷＲが書込要求を表す。
【００１１】
上述の構成により、シングルポートメモリを用いながらもデュアルポートメモリと同様に２個のプロセッサからのアクセスが可能になる。
【特許文献１】特開２００４−１９９１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、共有メモリ３に対してはメインバスＢ１と内部バスＢ２との両方から同時にアクセスすることはできないから、共有メモリ３へのアクセス時間はメインバスＢ１と内部バスＢ２とのバス速度に依存することになる。また、共有メモリ３に対してメインバスＢ１と内部バスＢ２との両方から同時にアクセスすることはできないから、メインバスＢ１と内部バスＢ２との一方のバス速度が低速であって、低速側がアクセスを行っていると、高速側では待ち状態が長く続くことになる。
【００１３】
つまり、メインバスＢ１と内部バスＢ２とのうち高速側から共有メモリ３にアクセスしようとする際に、共有メモリインターフェイス４がウェイト信号を発生して待ち状態になる確率が高くなる。その結果、高速側のプロセッサは共有メモリ３にアクセスする処理から開放されず、高速なプロセッサを用いても、処理速度が低速なプロセッサの処理速度に規制されるという問題が生じる。言い換えると、共有メモリ３がボトルネックになるという問題を生じる。
【００１４】
また、ポートＡとポートＢとポートＣとはビット幅が等しいことを前提にしており、メインバスＢ１と内部バスＢ２とのバス幅が異なるときには、共有メモリ３へのアクセスを行うことができない。
【００１５】
本発明は上記事由に鑑みて為されたものであり、その目的は、複数個のプロセッサがそれぞれ管理するバスから共有メモリをアクセスに際に、各バスでの待ち状態の発生を抑制した共有メモリインターフェイスを提供することにある。
【課題を解決するための手段】
【００１６】
請求項１の発明は、複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、少なくとも１つのバスと共有メモリとの間に介在し当該バスから共有メモリにアクセスして読出と書込とを行うデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部とを備えることを特徴とする。
【００１７】
請求項２の発明では、請求項１の発明において、前記プロセッサは２個であって、第１のプロセッサが管理する第１のバスに接続される増設ユニットに第２のプロセッサおよび前記共有メモリとともに内蔵されていることを特徴とする。
【００１８】
請求項３の発明では、請求項１または請求項２の発明において、前記バッファメモリは、前記各バスと共有メモリとの間にそれぞれ設けられていることを特徴とする。
【００１９】
請求項４の発明では、請求項１ないし請求項３のいずれかの発明において、前記バスから前記バッファメモリにアクセスする際にアクティブになる第１のチップセレクト信号がアクティブになる期間に対して、前記バッファメモリから前記共有メモリにアクセスする際にアクティブになる第２のチップセレクト信号がアクティブになる期間を短くするセレクト信号変換部を備えることを特徴とする。
【００２０】
請求項５の発明では、請求項４の発明において、前記調停制御部は、前記共有メモリへのデータの書込時に、前記第１のチップセレクト信号をアクティブとして前記バスから前記バッファメモリへ書込を行う期間を終了させた後に、前記第２のチップセレクト信号をアクティブとしてバッファメモリから共有メモリへ書込を行う期間を設けることを特徴とする。
【発明の効果】
【００２１】
請求項１の発明の構成によれば、複数個のプロセッサがアクセス可能な共有メモリを備える場合に、少なくとも１つのプロセッサの管理するバスと共有メモリとの間にバッファメモリを設け、バスと共有メモリとのアクセス速度の相違をバッファにより調節するから、共有メモリのアクセス速度に比較してバッファメモリに接続したバスのバス速度が低速であって、他のプロセッサの管理するバスのバス速度が当該バスよりも高速である場合に、低速のバスが共有メモリへのアクセスを直接行わずにバッファが共有メモリにアクセスすることにより、低速のバスが共有メモリに接続される場合に比較して共有メモリの占有時間を短縮することができる。すなわち、バス速度の異なる複数のバスからシングルポートの共有メモリにアクセスしながらも、互いに他のバスのバス速度の制約を受けずに共有メモリにアクセスすることが可能になる。言い換えると、低速のバスが共有メモリを長い時間占有することによる待ち状態の発生の頻度が低減し、また待ち状態が発生しても待ち状態が解除されるまでの時間が短くなる。
【００２２】
請求項２の発明の構成によれば、プログラマブルロジックコントローラのように、コプロセッサを内蔵した増設ユニットをメインプロセッサの管理するバスに接続可能な構成において、増設ユニットにコプロセッサおよび共有メモリとともに内蔵するから、コプロセッサがメインプロセッサよりも高速である場合に、コプロセッサの処理能力を損なうことなくメインプロセッサとの間で共有メモリを介してデータを共有することができる。
【００２３】
請求項３の発明の構成によれば、各プロセッサが管理するバスがそれぞれバッファメモリを介して共有メモリに接続されるから、共有メモリとしてアクセス時間の短いものを用いることで、共有メモリインターフェイスと共有メモリとの間のデータ転送が共有メモリと各バスとの間のデータ転送におけるボトルネックになるのを防止することができる。言い換えると、共有メモリとバッファメモリとの間でデータの転送速度を高速にすることで、各バスにおける待ち時間の発生を極力抑制することができる。
【００２４】
請求項４の発明の構成によれば、バッファメモリに接続されたバスはバス速度によってバッファに対する書込および読出の時間が規制されるが、バッファメモリは共有メモリに対する書込および読出の時間をバスよりも短くすることが可能であるから、バスからバッファメモリに与えるチップセレクト信号がアクティブになる時間よりも、バッファメモリから共有メモリに与えるチップセレクト信号がアクティブになる時間を短くすることで、共有メモリの占有時間を短くすることになり、結果的に待ち状態の発生を抑制し、待ち状態が発生しても待ち状態の解除までの時間を短くすることができる。
【００２５】
請求項５の発明の構成によれば、共有メモリへの書込の際に、バスからバッファメモリへの書込が終了した後にバッファメモリから共有メモリへの書込を行うことにより、バスからバッファメモリへの書込中でバッファメモリ内のデータが不完全な状態で共有メモリへの書込が開始されるという不都合がなく、バスから共有メモリに対して不完全なデータが受け渡されるのを防止することができる。
【発明を実施するための最良の形態】
【００２６】
（実施形態１）
本実施形態では、プログラマブルロジックコントローラ（以下、ＰＬＣと略称する）において、基本命令を実行するメインプロセッサと増設ユニットを制御するコプロセッサとが、共有メモリにアクセスする場合を例として説明する。ただし、本発明の技術思想は、複数個のプロセッサ（マイクロプロセッサ）がシングルポートメモリからなる共有メモリにアクセスする構成であれば、ＰＬＣに限らず適用可能である。なお、以下の説明において従来構成と同様の構成および動作については一部説明を省略する。
【００２７】
図１に示すように、メインプロセッサ１が管理するメインバスＢ１に、コプロセッサ２を内蔵した増設ユニット１０を接続してあり、増設ユニット１０は、コプロセッサ２のほか共有メモリ３と共有メモリインターフェイス４とを内蔵している。共有メモリ３はシングルポートメモリであって、共有メモリ３のポートは、共有メモリインターフェイス４を介してメインバスＢ１と内部バスＢ２とに接続される。内部バスＢ２はコプロセッサ２が管理するバスである。したがって、共有メモリインターフェイス４には、メインバスＢ１に接続される第１ポート（ポートＡ）と、内部バスＢ２に接続される第２ポート（ポートＢ）と、共有メモリ３に接続される第３ポート（ポートＣ）とが設けられる。
【００２８】
本実施形態では、メインバスＢ１のビット幅が８ビット、内部バスＢ２のビット幅が１６ビットであって、メインプロセッサ１の処理速度がコプロセッサ２よりも低速である場合を想定している。共有メモリ３のポートは高速側のプロセッサ（つまり、コプロセッサ２）に合わせて１６ビットのビット幅を有している。バス幅は一例であって、内部バスＢ２のビット幅がメインバスＢ１のビット幅に対して２以上の整数倍であればよい。つまり、ビット幅が１：２であることも必須ではなく、以下に説明するビット幅変換部１１の構成を変更すれば、ビット幅の比率は適宜に変更可能である。
【００２９】
共有メモリインターフェイス４は、メインバスＢ１と内部バスＢ２との両方からシングルポートメモリである共有メモリ３にアクセス可能にするものであるから、メインバスＢ１からのアクセスと内部バスＢ２からのアクセスとを調停するタイミング調節部１２を備えている。タイミング調節部１２には、ポートＡとポートＢとの速度を調節することによって待ち状態の発生時間を低減させるための１６ビットのバッファメモリ１３と、バッファメモリ１３の書込および読出のタイミングを制御する調停制御部１４とが設けられている。バッファメモリ１３の動作は後述するが、待ち状態の発生を低減させるだけでなく、バッファメモリ１３によってポートＣとはバス幅の異なるポートＡからの共有メモリ３へのアクセスも可能になる。なお、図示例ではタイミング調節部１２にバッファメモリ１３を設けているが、バッファメモリ１３をタイミング調節部１２とは独立して設けてもよい。
【００３０】
ポートＡとバッファメモリ１３との間には、ビット幅を８ビットと１６ビットとの間で変換するビット幅変換部１１が設けられる。ビット幅変換部１１は、ポートＡ側が８ビットでバッファメモリ１３側が１６ビットであって、メインバスＢ１（つまり、ポートＡ）からの共有メモリ３へのアクセス毎にポートＡをバッファメモリ１３の下位８ビットと上位８ビットとのいずれかに選択的に接続する機能を有している。ビット幅変換部１１は８ビットと１６ビットとのビット幅を双方向に変換する機能を有している。
【００３１】
実際には、共有メモリ３への１回のアクセスにおいて、共有メモリ３に対して読出を要求するか書込を要求するかにかかわらず、ビット幅変換部１１では、バッファメモリ１３に対して下位８ビットを先に処理する。つまり、読出時にはバッファメモリ１３から下位８ビットをメインバスＢ１に接続した後に上位８ビットをメインバスＢ１に接続し、書込時にはメインバスＢ１をバッファメモリ１３の下位８ビットに接続した後にメインバスＢ１を上位８ビットに接続する。
【００３２】
ところで、従来の共有メモリインターフェイスでは、ポートＡとポートＢとのチップセレクト信号ＡＣＳ，ＢＣＳ（図１２参照）が競合する場合に、ポートＡとポートＢとのうち先にアクティブになったチップセレクト信号ＡＣＳ，ＢＣＳをそのまま共有メモリ３にチップセレクト信号ＣＣＳとして与えている。これに対して、本実施形態のタイミング調節部１２における調停制御部１４では、ポートＡとポートＢとではなく、バッファメモリ１３とポートＢとの競合状態を判断し、バッファメモリ１３とポートＢとの一方を共有メモリ３に接続する。また、調停制御部１４は、バッファメモリ１３とポートＢとが共有メモリ３に対して競合しているときには、先にチップセレクト信号を発生したほうを共有メモリ３に接続し、他方にはウェイト信号を与えて待ち状態とする。待ち状態になっているほうは、ウェイト信号が解除されると読出あるいは書込が可能になる。
【００３３】
したがって、メインバスＢ１（ポートＡ）から共有メモリ３にアクセスして読出を行う際には、まず、タイミング調節部１２が共有メモリ３からバッファメモリ１３に１６ビットのデータを読み出した後、ビット幅変換部１１において下位８ビットと上位８ビットとをメインバスＢ１に順に接続する。このとき、メインバスＢ１はバッファメモリ１３に対して２回のアクセスを行うが、バッファメモリ１３は共有メモリ３に対してアクセスを１回行うだけであるから、共有メモリ３へのチップセレクト信号は１回だけ発生させればよく、ポートＢの待ち状態の発生の可能性が低減される。つまり、従来構成では、共有メモリ３から同データを読み出すにあたって共有メモリ３にチップセレクト信号を２回与える必要があったのに対して、本実施形態では１回与えるだけであるから、ポートＢが待ち状態になる確率が２分の１に低減される。
【００３４】
同様に、メインバスＢ１から共有メモリ３にアクセスして書込を行う際には、まず、ビット幅変換部１１においてメインバスＢ１をバッファメモリ１３の下位８ビットと上位８ビットとに順に接続した後に、バッファメモリ１３を共有メモリ３に接続する。調停制御部１４は、バッファメモリ１３を共有メモリ３に接続する際に、タイミング調節部１２から共有メモリ１２に対してチップセレクト信号を発生し、共有メモリ３へのアクセスを行う。
【００３５】
読出時の各部の信号を図２に示し、書込時の各部の信号を図３に示す。図２と図３とから明らかなように、読出時にはバッファメモリ１３の下位８ビットをメインバスＢ１に接続してポートＡへのチップセレクト信号ＡＣＳをアクティブにしたときに共有メモリ３に対するアクセスが行われるのに対して、書込時にはバッファメモリ１３の上位８ビットをメインバスＢ１に接続してポートＡのチップセレクト信号ＡＣＳをアクティブにしたときに共有メモリ３に対するアクセスが行われる。したがって、メインバスＢ１から見た共有メモリ３に対するアクセスは、従来と同様のタイミングで行われる。なお、図２、図３における各符号の意味は図１１と同様である。
【００３６】
一方、共有メモリ３は、メインバスＢ１からのアクセスの際にポートＡが２回アクセスされるたびにバッファメモリ１３から１回アクセスされるだけであるから、共有メモリ３がメインバスＢ１に占有される時間が従来構成のほぼ２分の１になり、結果的に、内部バスＢ２（ポートＢ）から共有メモリ３をアクセスする際にメインバスＢ１との競合が生じにくくなる。つまり、内部バスＢ２において待ち状態の生じる可能性が低減される。
【００３７】
しかも、メインバスＢ１による共有メモリ３の占有時間が従来構成のほぼ２分の１であるから、内部バスＢ２において待ち状態が生じても、待ち状態が解除されるまでの平均時間が従来構成よりも短縮される。言い換えると、バッファメモリ１３を設けたことにより、メインバスＢ１と内部バスＢ２とのビット幅の相違が解消され、しかも共有メモリ３はバッファメモリ１３を介してメインバスＢ１に接続されているから、共有メモリ３がバッファメモリ１３にデータ転送を行う速度を、共有メモリ３がポートＢを介して内部バスＢ２にデータ転送を行う速度とを一致させておけば、メインバスＢ１が低速であっても内部バスＢ２から共有メモリ３にアクセスする際の速度がメインバスＢ１によって規制されることがない。
【００３８】
（実施形態２）
実施形態１において、図２、図３に示した動作例では、メインバスＢ１から共有メモリ３にアクセスする際に、調停制御部１４では、メインバスＢ１から与えられるチップセレクト信号ＡＣＳを共有メモリ３に対するチップセレクト信号ＣＣＳに用いている。チップセレクト信号ＡＣＳがアクティブである期間にはポートＢにはウェイト信号が与えられているから、ポートＢの待ち状態を低減させるには、チップセレクト信号ＣＣＳの発生期間を短くするのが望ましい。
【００３９】
上述したように、メインプロセッサ１はコプロセッサ２に比較すると処理速度が低速であり、結果的に、メインバスＢ１から与えられるチップセレクト信号ＡＣＳをアクティブにする期間が比較的長くなっている。これに対して共有メモリ３のアクセス時間は、コプロセッサ２に合わせてあり、共有メモリ３の仕様により決まるアクセス時間は、メインバスＢ１から与えられるチップセレクト信号ＡＣＳをアクティブにする期間よりも短い。
【００４０】
この点に着目し、本実施形態では、図５に示すように、バッファメモリ１３を共有メモリ３に接続する際にチップセレクト信号ＣＣＳをアクティブにする期間Ｔ１を共有メモリ３の仕様により決まるアクセス時間の最小値程度に設定している。この構成を採用すれば、図２に示した動作に比較してポートＢが利用できる期間をより増加させることができる。
【００４１】
メインバスＢ１のチップセレクト信号ＡＣＳがアクティブである期間と共有メモリ３のチップセレクト信号ＣＣＳがアクティブである期間とを変更するために、図４に示すように、タイミング調節部１２にはセレクト信号変換部１５を設ける。図５に示す例は、メインバスＢ１から共有メモリ３の読出を行う場合であり、セレクト信号変換部１５では、メインバスＢ１のチップセレクト信号ＡＣＳがアクティブである期間内において、共有メモリ３のチップセレクト信号ＣＣＳをアクティブにする。
【００４２】
共有メモリ３からの読出時には、調停制御部１４は、共有メモリ３からバッファメモリ１３にデータを転送してからバッファメモリ１３からメインバスＢ１への読出を行うから、メインバスＢ１のチップセレクト信号ＡＣＳがアクティブになってから、アクティブの期間内に共有メモリ３のチップセレクト信号ＣＣＳをアクティブにする。一方、共有メモリ３への書込時には、メインバスＢ１からバッファメモリ１３にデータを書き込んだ後に、バッファメモリ１３から共有メモリ３にデータを転送するから、メインバスＢ１からバッファメモリ１３への書込が終了するまでは共有メモリ３へのデータの転送はできない。
【００４３】
図３に示した動作例では、共有メモリ３のチップセレクト信号ＣＣＳがメインバスＢ１のチップセレクト信号ＡＣＳに一致しているから、チップセレクト信号ＡＣＳとチップセレクト信号ＣＣＳとがアクティブである期間が重複している。少なくともチップセレクト信号ＡＣＳがアクティブである期間が終了した時点では、メインバスＢ１からバッファメモリ１３にデータが転送されているから、バッファメモリ１３から共有メモリ３へのデータの転送もこの時間で行うことができると考えられる。
【００４４】
ただし、バッファメモリ１３から共有メモリ３への書込を保証するには、メインバスＢ１からバッファメモリ１３への書込と同時にバッファメモリ１３から共有メモリ３への書込を行うか、バッファメモリ１３から共有メモリ３への書込が保証できる時間だけチップセレクト信号ＣＣＳを延長することが必要がある。
【００４５】
一方、読出時と同様に書込時にもセレクト信号変換部１５を用いてチップセレクト信号ＡＣＳがアクティブである期間とチップセレクト信号ＣＣＳがアクティブである期間とを異ならせる場合は、バッファメモリ１３から共有メモリ３への書込を保証するために、調停制御部１４において、メインバスＢ１からバッファメモリ１３に対してデータが書き込まれた後に、バッファメモリ１３から共有メモリ３にデータを転送するように制御するのが望ましい。つまり、図６に示すタイミングでチップセレクト信号ＣＣＳをアクティブにする。この動作でも、共有メモリ３の占有時間は読出時と同様に共有メモリ３の仕様により決まるアクセス時間の最小値程度とすることができるから、ポートＢが待ち状態になる確率を低減することができる。
【００４６】
以上説明したように、セレクト信号変換部１５を設け、共有メモリ３がアクティブになる期間を、メインバスＢ１（ポートＡ）からのチップセレクト信号ＡＣＳで共有メモリ３がアクティブになる期間よりも短縮しているから、ポートＢが待ち状態になる確率を低減するとともに、待ち状態になっても解除までの時間を短縮することができる。すなわち、コプロセッサ２による共有メモリ３の利用率を高めることができる。他の構成および動作は実施形態１と同様である。
【００４７】
（実施形態３）
上述した実施形態では、タイミング調節部１２において、メインバスＢ１（ポートＡ）側にのみバッファメモリ１３を設けた構成を例示したが、本実施形態は、図７に示すように、メインバスＢ１と内部バスＢ２との両方に対応付けてバッファメモリ１３ａ，１３ｂを設けている。つまり、ポートＡとポートＢとの両方がポートＣとの間にそれぞれバッファメモリ１３ａ，１３ｂを備えている。バッファメモリ１３ａは上述した実施形態におけるバッファメモリ１３と同構成である。
【００４８】
また、実施形態２と同様に、セレクト信号変換部１５を設けることにより、メインバスＢ１のチップセレクト信号ＡＣＳと内部バスＢ２のチップセレクト信号ＢＣＳとがそれぞれアクティブになる期間に対して、共有メモリ３のチップセレクト信号ＣＣＳがアクティブになる期間を短くしている。実施形態２と同様に、共有メモリ３のチップセレクト信号ＣＣＳをアクティブにする期間は、共有メモリ３の仕様により決まるアクセス時間の最小値程度に設定してある。
【００４９】
さらに、共有メモリインターフェイス４には、ビット幅変換部１１が設けてあり、メインバスＢ１と共有メモリ３とのビット幅の相違をビット幅変換部１１とバッファメモリ１３ａとにより吸収している。本実施形態の構成では、共有メモリ３に対するアクセス競合は、２つのバッファメモリ１３ａ，１３ｂの間で生じる。
【００５０】
本実施形態では、調停制御部１４において、メインバスＢ１から共有メモリ３にアクセスする制御は実施形態２と同様にする。一方、内部バスＢ２から共有メモリ３にアクセスする制御は、図８、図９に示す通りであり、読出時は図８に示すように、ポートＢでの読出に伴って共有メモリ３からバッファメモリ１３ｂへの読出を行い、内部バスＢ２のバス速度に応じてバッファメモリ１３ｂから内部バスＢ２への読出が行われる。一方、書込時は図９に示すように、内部バスＢ２からバッファメモリ１３ｂへのデータの書込が終了した後に、バッファメモリ１３ｂから共有メモリ３にデータを転送する。要するに、ポートＢとポートＣとの間のデータ転送では、ビット幅変換部１１が存在しないから、ポートＢとバッファメモリ１３ｂとの間では読出時と書込時とにかかわらずデータの転送を１回しか行わないが、他の動作タイミングはポートＡとポートＣとの間のデータ転送と同様の動作になる。
【００５１】
また、共有メモリ３に対するアクセスの競合は、バッファメモリ１３ａ，１３ｂと共有メモリ３との接続において生じるから、両バッファメモリ１３ａ，１３ｂのうちで共有メモリ３に対して先にチップセレクト信号ＣＣＳを発生したほうが、共有メモリ３と接続されることになる。
【００５２】
本実施形態では、メインバスＢ１および内部バスＢ２としてバス速度の比較的遅いものを用い、かつ共有メモリ３としてアクセス時間の短い高速なものを用いる場合でも、速度の相違をバッファメモリ１３ａ，１３ｂにより吸収することができる。つまり、共有メモリインターフェイス４から共有メモリ３へのアクセス時間は、共有メモリ３の仕様によって決まるほぼ最小の時間に設定可能になる。
【００５３】
しかも、ポートＡとポートＢとが独立したバッファメモリ１３ａ，１３ｂに接続されているから、バッファメモリ１３ａ，１３ｂの大きさにもよるが、メインバスＢ１と内部バスＢ２とのバス速度の相違による待ち状態の発生を防止することが可能になる。他の構成および動作は実施形態２と同様である。
【図面の簡単な説明】
【００５４】
【図１】実施形態１の一使用例でのブロック図である。
【図２】同上の読出時の信号のタイミングを示す動作説明図である。
【図３】同上の書込時の信号のタイミングを示す動作説明図である。
【図４】実施形成２を示すブロック図である。
【図５】同上の読出時の信号のタイミングを示す動作説明図である。
【図６】同上の書込時の信号のタイミングを示す動作説明図である。
【図７】実施形態３を示すブロック図である。
【図８】同上の読出時の信号のタイミングを示す動作説明図である。
【図９】同上の書込時の信号のタイミングを示す動作説明図である。
【図１０】従来例を示すブロック図である。
【図１１】同上の信号のタイミングを示す動作説明図である。
【図１２】同上の読出時の信号のタイミングを示す動作説明図である。
【符号の説明】
【００５５】
１  メインプロセッサ
２  コプロセッサ
３  共有メモリ
４  共有メモリインターフェイス
１０  増設ユニット
１１  ビット幅変換部
１２  タイミング調節部
１３  バッファメモリ
１３ａ，１３ｂ  バッファメモリ
１４  調停制御部
１５  セレクト信号変換部
【図１】
2008117001.tif 000003
【図２】
2008117001.tif 000004
【図３】
2008117001.tif 000005
【図４】
2008117001.tif 000006
【図５】
2008117001.tif 000007
【図６】
2008117001.tif 000008
【図７】
2008117001.tif 000009
【図８】
2008117001.tif 000010
【図９】
2008117001.tif 000011
【図１０】
2008117001.tif 000012
【図１１】
2008117001.tif 000013
【図１２】
2008117001.tif 000014