(57)【要約】【課題】共有メモリにおいて連続した複数のアドレスに対応する領域に格納されるグループデータが読出時あるいは書込時において分割されないようにする。【解決手段】メインバスＢ１および内部バスＢ２と共有メモリ３との間に共有メモリインターフェイス４が介在する。共有メモリインターフェイス４は、メインバスＢ１に対応するバッファメモリ１２ａと内部バスＢ２に対応するバッファメモリ１２ｂとを有し、バッファメモリ１２ａ，１２ｂは、共有メモリ３に対する読出時と書込時とにおいてデータを一時的に保持する。共有メモリインターフェイス４は、共有メモリ３の特定のアドレスを格納したデータ保証テーブル１４を有し、メインバスＢ１あるいは内部バスＢ２から指定したアドレスがデータ保証テーブル１４に格納されていると、当該アドレスを先頭アドレスとして規定個数のアドレスに対応する領域がグループデータに対応する領域になる。【選択図】図１
2008117002.tif 000002
【特許請求の範囲】
【請求項１】
複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとしてグループデータを格納する領域の先頭アドレスを格納したデータ保証テーブルとを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際に指定されたアドレスがデータ保証テーブルに格納されたアドレスであるときに、他のバスを待ち状態にするとともに、当該アドレスを先頭アドレスとした規定個数のアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする共有メモリインターフェイス。
【請求項２】
前記データ保証テーブルに格納される先頭アドレスを前記バスのいずれかからの指示により書換可能とするアドレス書込部が付加されていることを特徴とする請求項１記載の共有メモリインターフェイス。
【請求項３】
複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるデータの特定ビットのビット値に応じてグループデータの開始と終了とを指示するデータ保証レジスタとを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証レジスタがグループデータの開始を指示してから終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする共有メモリインターフェイス。
【請求項４】
複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるデータの特定ビットのビット値に応じてグループデータの開始を指示するデータ保証レジスタと、データ保証レジスタが開始を指示した後に規定個数のアドレスが指定されるとグループデータの終了を指示するデータ保証完了指示部とを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証レジスタがグループデータの開始を指示してからデータ保証完了指示部が終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする共有メモリインターフェイス。
【請求項５】
複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるアドレスの特定ビットの１ビットのビット値に応じてグループデータの開始と終了とを指示するデータ保証アドレス判定部とを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証アドレス判定部がグループデータの開始を指示してから終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする共有メモリインターフェイス。
【請求項６】
前記データ保証アドレス判定部は、いずれかのバスから与えられるアドレスのうちの複数ビットについて、グループデータの開始と終了とを指示するために用いる前記１ビットを除いた残りを共有メモリにおいてグループデータが格納される領域のアドレスの個数の指定に用いることを特徴とする請求項５記載の共有メモリインターフェイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２個のプロセッサと共有メモリとの間に介在し、両プロセッサによる共有メモリのアクセスを調停する共有メモリインターフェイスに関するものである。
【背景技術】
【０００２】
従来から、メインプロセッサとコプロセッサとの２個のプロセッサ（マイクロプロセッサ）を用い、両プロセッサがメモリを共有することによりデータを共有する装置が提供されている。以下では、両プロセッサが共有するメモリを共有メモリと呼ぶ。この種の装置において、共有メモリを実現するにはマルチポートメモリ（プロセッサが２個の場合はデュアルポートメモリ）を用いるか、シングルポートメモリに複数のプロセッサからのアクセスを調停する共有メモリインターフェイスを付加することにより、シングルポートメモリをマルチポートメモリと同様に扱うことが考えられる。
【０００３】
ところで、プログラマブルロジックコントローラ（ＰＬＣ）では、シーケンスプログラムを実行するメインプロセッサのほかに、メインユニットに増設される増設ユニットを制御するためのコプロセッサを備えるものが提供されている。コプロセッサは、つねに必要というわけではないから、メインプロセッサの管理するメインバスに対して必要に応じて増設する増設ユニットの形で提供される。したがって、共有メモリも増設ユニットに設けられる。このように、コプロセッサを内蔵した増設ユニットに、共有メモリを設ける場合には、共有メモリインターフェイスも増設ユニットに内蔵される。
【０００４】
この種の装置の一例を図１３に示す。メインプロセッサ１はメインバスＢ１を管理し、メインバスＢ１に増設ユニット１０が接続されている。増設ユニット１０には、コプロセッサ２とともに共有メモリ３と共有メモリインターフェイス４とが内蔵される。また、増設ユニット１０において共有メモリインターフェイス４はコプロセッサ２に管理された内部バスＢ２に接続されている（たとえば、特許文献１参照）。
【０００５】
共有メモリ３へのアクセスは、図１４に示す信号を用いる。図１４（ａ）〜（ｅ）は、それぞれチップセレクト信号ＣＣＳ、アドレスバスＣＡＤ、データバスＣＤＴ、読出要求ＣＲＤ、書込要求ＣＷＲの各状態を表している。チップセレクト信号ＣＣＳがＬレベルになると、アドレスバスＣＡＤでアドレスを指定し、読出要求ＣＲＤまたは書込要求ＣＷＲを行って、データバスＣＤＴのデータの読出または書込を行うのである。
【０００６】
具体的には、読出時には、チップセレクト信号ＣＣＳをＬレベル、アドレスバスＣＡＤを所望のアドレス、データバスＣＤＴをハイインピーダンス、読出要求をＬレベル、書込要求をＨレベルに設定する。また、書込時には、チップセレクト信号ＣＣＳをＬレベル、アドレスバスＣＡＤを所望のアドレス、データバスＣＤＴを書込データ、読出要求をＨレベル、書込要求をＬレベルに設定する。
【０００７】
図示例では、メインバスＢ１と内部バスＢ２と共有メモリ３のポートとのビット幅が等しく（たとえば１６ビット）、共有メモリインターフェイス４は、共有メモリ３のポートをメインバスＢ１と内部バスＢ２との一方に選択的に接続する機能を有している。
【０００８】
したがって、メインバスＢ１と内部バスＢ２とのどちらから共有メモリ３にアクセスする場合にも共有メモリ３のアクセス時間でアクセスすることができる。共有メモリインターフェイス４は、メインバスＢ１と内部バスＢ２とのうち、チップセレクト信号ＣＣＳを先にＬレベルにした（アクティブ状態にした）ほうを共有メモリ３に接続する。
【０００９】
つまり、共有メモリインターフェイス４において、メインバスＢ１に接続されるポートをポートＡ、内部バスに接続されるポートをポートＢ、共有メモリ３に接続されるポートをポートＣとすれば、共有メモリインターフェイス４は、ポートＣをポートＡとポートＢとの一方に選択的に接続する。
【００１０】
共有メモリ３からメインプロセッサ１とコプロセッサ２とがそれぞれデータの読出を行う例を図１５に示す。図１５（ａ）〜（ｅ）はポートＡ、図１５（ｆ）〜（ｊ）はポートＢ、図１５（ｋ）〜（ｏ）はポートＣの状態をそれぞれ示す。また、信号名のうち先頭の文字はポート名を表し、他の文字は信号の種別を示す。信号の種別は図１４と同様であって、ＣＳがチップセレクト信号、ＡＤがアドレスバス、ＤＴがデータバス、ＲＤが読出要求、ＷＲが書込要求を表す。
【００１１】
上述の構成により、シングルポートメモリを用いながらもデュアルポートメモリと同様に２個のプロセッサからのアクセスが可能になる。
【特許文献１】特開２００４−１９９１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、共有メモリにアクセスする際に、連続した複数のアドレスに対応する領域のデータがまとまった意味を持つときには、これらのデータをまとめて扱うことが必要である。たとえば、共有メモリのアドレス０００Ｈ、００１Ｈ（Ｈは１６進数を表す）に格納されたデータが、それぞれＡＡ５５Ｈ，６６ＣＣＨであって、６６ＣＣＡＡ５５Ｈのときにまとまった意味をなす場合がある。ここで、ポートＡからアドレス０００Ｈのデータ（ＡＡ５５Ｈ）を読み出した直後に、ポートＢからアドレス００１Ｈに１１２２Ｈを書き込んだとすると、次にポートＡからアドレス００１Ｈを指定して読み出されるデータは１１２２Ｈになる。つまり、ポートＡから６６ＣＣＡＡ５５Ｈを読み出すことが期待されているにもかかわらず、ポートＡから実際に読み出されるデータが１１２２ＡＡ５５Ｈになってしまうという不都合が生じる。
【００１３】
本発明は上記事由に鑑みて為されたものであり、その目的は、複数のプロセッサがアクセス可能な共有メモリにおいて連続した複数のアドレスに対応する領域の一連のデータがまとめて扱われる場合に、読出時点と書込時点とにおいて一連のデータであることを保証できるようにした共有メモリインターフェイスを提供することにある。
【課題を解決するための手段】
【００１４】
請求項１の発明は、複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとしてグループデータを格納する領域の先頭アドレスを格納したデータ保証テーブルとを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際に指定されたアドレスがデータ保証テーブルに格納されたアドレスであるときに、他のバスを待ち状態にするとともに、当該アドレスを先頭アドレスとした規定個数のアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする。
【００１５】
請求項２の発明では、請求項１の発明において、前記データ保証テーブルに格納される先頭アドレスを前記バスのいずれかからの指示により書換可能とするアドレス書込部が付加されていることを特徴とする。
【００１６】
請求項３の発明は、複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるデータの特定ビットのビット値に応じてグループデータの開始と終了とを指示するデータ保証レジスタとを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証レジスタがグループデータの開始を指示してから終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする。
【００１７】
請求項４の発明は、複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるデータの特定ビットのビット値に応じてグループデータの開始を指示するデータ保証レジスタと、データ保証レジスタが開始を指示した後に規定個数のアドレスが指定されるとグループデータの終了を指示するデータ保証完了指示部とを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証レジスタがグループデータの開始を指示してからデータ保証完了指示部が終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする。
【００１８】
請求項５の発明は、複数個のプロセッサがそれぞれ管理するバスに接続され、各プロセッサが共通してアクセスする共有メモリと各バスとの間に介在するインターフェイスであって、各バスと共有メモリとの間に介在し各バスから共有メモリにアクセスして読出と書込とを行うデータについて共有メモリの複数アドレス分のデータを一時的に保持するバッファメモリと、共有メモリからの読出時には読出要求を共有メモリに与えるとともに共有メモリからバッファメモリに転送したデータをバッファメモリからバスに読み出させ、共有メモリへの書込時にはバスからバッファメモリにデータを転送するとともに書込要求を共有メモリに与えてバッファメモリのデータを共有メモリに書き込ませる調停制御部と、共有メモリにおいて規定個数の連続するアドレスに対応した領域に格納されるひとまとまりのデータをグループデータとして各バスから与えられるアドレスの特定ビットの１ビットのビット値に応じてグループデータの開始と終了とを指示するデータ保証アドレス判定部とを備え、調停制御部は、いずれかのバスから共有メモリにアクセスする際にデータ保証アドレス判定部がグループデータの開始を指示してから終了を指示するまでの間において他のバスを待ち状態にするとともに、開始から終了までの間に指定されたアドレスに対応する領域とバッファメモリとの間でデータの読出または書込を行わせることを特徴とする。
【００１９】
請求項６の発明では、請求項５の発明において、前記データ保証アドレス判定部は、いずれかのバスから与えられるアドレスのうちの複数ビットについて、グループデータの開始と終了とを指示するために用いる前記１ビットを除いた残りを共有メモリにおいてグループデータが格納される領域のアドレスの個数の指定に用いることを特徴とする。
【発明の効果】
【００２０】
請求項１の発明の構成によれば、共有メモリの特定のアドレスを先頭アドレスとする規定個数のアドレスに対応した領域については、グループデータを格納する領域として指定しているから、共有メモリにアクセスする際に各バスから当該アドレスを指定すれば、当該アドレスを先頭アドレスとした規定個数のアドレスに対応する領域におけるデータは、グループデータとして扱われ、各アドレスのデータが個々に切り離されることがなく、ひとまとまりのデータとして扱われることになる。つまり、各バスから共有メモリにアクセスする際にグループデータが分割されて複数のバスに分散されることがなく、共有メモリにおいて連続した複数のアドレスに跨るデータをグループデータとして１つのバスで扱うことが保証される。
【００２１】
請求項２の発明の構成によれば、共有メモリにおいてグループデータを格納する領域をバスから指定することが可能になる。
【００２２】
請求項３の発明の構成によれば、各バスから与えられるデータの特定のビット値によってグループデータの開始と終了とを指示するから、任意長のデータをグループデータとして扱うことができる。グループデータは、各アドレスのデータが個々に切り離されることがなく、ひとまとまりのデータとして扱われるから、各バスから共有メモリにアクセスする際にグループデータが分割されて複数のバスに分散されることがなく、共有メモリにおいて連続した複数のアドレスに跨るデータをグループデータとして１つのバスで扱うことが保証される。
【００２３】
請求項４の発明の構成によれば、各バスから与えられるデータの特定のビット値によってグループデータの開始が指示され、グループデータの終了は自動的に指示されるから、グループデータは固定長になるが、グループデータの開始側のみを指定すればよいから、グループデータの終了を合わせて指示する場合よりもデータの伝送速度が向上する。また、他の請求項に係る発明と同様に、グループデータとして１つのバスで扱うことが保証される。
【００２４】
請求項５の発明の構成によれば、各バスから与えられるアドレスの特定のビット値によってグループデータの開始と終了とを指示するから、任意長のデータをグループデータとして扱うことができる。グループデータは、各アドレスのデータが個々に切り離されることがなく、ひとまとまりのデータとして扱われるから、各バスから共有メモリにアクセスする際にグループデータが分割されて複数のバスに分散されることがなく、共有メモリにおいて連続した複数のアドレスに跨るデータをグループデータとして１つのバスで扱うことが保証される。
【００２５】
請求項６の発明の構成によれば、各バスから与えられるアドレスの複数ビットを用い、１ビットはグループデータの開始と終了とを指示するために用いるが、残りのビットをグループデータに用いる領域のアドレスの個数の指定に用いるから、グループデータのデータ長の選択が可能になる。
【発明を実施するための最良の形態】
【００２６】
（実施形態１）
本実施形態では、プログラマブルロジックコントローラ（以下、ＰＬＣと略称する）において、基本命令を実行するメインプロセッサと増設ユニットを制御するコプロセッサとが、共有メモリにアクセスする場合を例として説明する。ただし、本発明の技術思想は、複数個のプロセッサ（マイクロプロセッサ）がシングルポートメモリからなる共有メモリにアクセスする構成であれば、ＰＬＣに限らず適用可能である。なお、以下の説明において従来構成と同様の構成および動作については一部説明を省略する。
【００２７】
図１に示すように、メインプロセッサ１が管理するメインバスＢ１に、コプロセッサ２を内蔵した増設ユニット１０を接続してあり、増設ユニット１０は、コプロセッサ２のほか共有メモリ３と共有メモリインターフェイス４とを内蔵している。共有メモリ３はシングルポートメモリであって、共有メモリ３のポートは、共有メモリインターフェイス４を介してメインバスＢ１と内部バスＢ２とに接続される。内部バスＢ２はコプロセッサ２が管理するバスである。したがって、共有メモリインターフェイス４には、メインバスＢ１に接続される第１ポート（ポートＡ）と、内部バスＢ２に接続される第２ポート（ポートＢ）と、共有メモリ３に接続される第３ポート（ポートＣ）とが設けられる。本実施形態では、メインバスＢ１と内部バスＢ２とのビット幅がともに１６ビットである場合を想定している。
【００２８】
共有メモリインターフェイス４は、メインバスＢ１と内部バスＢ２との両方からシングルポートメモリである共有メモリ３にアクセス可能にするものであるから、メインバスＢ１からのアクセスと内部バスＢ２からのアクセスとを調停するアクセス制御部１１を備えている。アクセス制御部１１には、ポートＡとポートＢに対応付けた各１６ビットのバッファメモリ１２ａ，１２ｂと、バッファメモリ１２ａ，１２ｂの書込および読出のタイミングを制御する調停制御部１３とが設けられている。バッファメモリ１２ａ，１２ｂの動作は後述する。なお、図示例ではアクセス制御部１１にバッファメモリ１２ａ，１２ｂを設けているが、バッファメモリ１２ａ，１２ｂをアクセス制御部１１とは独立して設けてもよい。
【００２９】
ところで、従来構成の共有メモリインターフェイス４では、ポートＡとポートＢとのチップセレクト信号ＡＣＳ，ＢＣＳ（図１５参照）が競合する場合に、ポートＡとポートＢとのうち先にアクティブになったチップセレクト信号ＡＣＳ，ＢＣＳをそのまま共有メモリ３にチップセレクト信号ＣＣＳとして与えている。これに対して、本実施形態のアクセス制御部１１における調停制御部１３では、ポートＡとポートＢとではなく、バッファメモリ１２ａ，１２ｂの競合状態を判断し、一方のバッファメモリ１２ａ，１２ｂを共有メモリ３に接続する。また、調停制御部１３は、２個のバッファメモリ１２ａ，１２ｂが共有メモリ３に対して競合しているときには、先にチップセレクト信号を発生したほうを共有メモリ３に接続し、他方にはウェイト信号を与えて待ち状態とする。待ち状態になっているほうは、ウェイト信号が解除されると読出あるいは書込が可能になる。
【００３０】
メインバスＢ１（ポートＡ）から共有メモリ３にアクセスして読出を行う際には、まず、アクセス制御部１１が共有メモリ３からバッファメモリ１２ａにデータを読み出した後、バッファメモリ１２ａをメインバスＢ１に接続する。同様に、メインバスＢ１から共有メモリ３にアクセスして書込を行う際には、まず、メインバスＢ１からバッファメモリ１２ａにデータを転送した後、バッファメモリ１２ａを共有メモリ３に接続する。調停制御部１３は、バッファメモリ１２ａを共有メモリ３に接続する際に、アクセス制御部１１から共有メモリ１２ａに対してチップセレクト信号を発生し、共有メモリ３へのアクセスを行う。
【００３１】
一方、内部バスＢ２（ポートＢ）から共有メモリ３にアクセスして読出あるいは書込を行う場合もメインバスＢ１から共有メモリ３にアクセスして読出あるいは書込を行う処理と同様の処理を行う。
【００３２】
ところで、本実施形態の特徴は、共有メモリ３における連続した複数のアドレスに対応する領域を占めるデータが全体で意味を持つグループデータを形成している場合に、グループデータが個々のアドレスに対応するデータに分割されないように、アクセス制御部１１にデータ保証テーブル１４を設けている点である。
【００３３】
いま、一例としてグループデータが共有メモリ３の２アドレスを占有するものとする。共有メモリ３は、１ワードが１６ビットであるから、グループデータは２ワードのデータ長を有していることになる。たとえば、共有メモリ３におけるアドレス０００Ｈ、００１Ｈ（末尾のＨは１６進数であることを示す）の２アドレスに格納されたデータがグループデータとし、０００ＨのデータがＡＡ５５Ｈ、００１Ｈのデータが６６ＣＣＨであるとする。
【００３４】
このグループデータを共有メモリ３からポートＡを通してメインバスＢ１に読み出す場合を想定する。図２に示すように（信号名は図１５と同様であり、ＡＷＡＩＴは、ポートＡへのウェイト信号を意味し、Ｌレベルがアクティブである）、調停制御部１３は共有メモリ３から０００Ｈと００１Ｈとの２アドレスのデータを順に連続してバッファメモリ１２ａに転送する、ここで、バッファメモリ１２ａにデータを転送している間にはポートＢにウェイト信号（図示せず）を発生して内部バスＢ２を待ち状態にする。また、調停制御部１３は、共有メモリ３における０００Ｈのデータをバッファメモリ１２ａに読み込んだ後に、ポートＡにおけるウェイト信号ＡＷＡＩＴをアクティブにし、００１Ｈのデータを共有メモリ３からバッファメモリ１２ａに転送している期間にはメインバスＢ１を待ち状態にする。
【００３５】
なお、読出時には、メインバスＢ１から共有メモリ３の０００Ｈと００１Ｈとのアドレスを順に指定して共有メモリ３からのデータを読み出すから、０００Ｈに対する読出要求ＡＲＤを行っている期間において０００Ｈのデータをバッファメモリ１２ａから読み出す必要がある。したがって、バッファメモリ１２ａへの共有メモリ３からのデータの転送期間において、バッファメモリ１２ａからメインバスＢ１へのデータの引き渡しも行う。
【００３６】
上述のように、読出時には、共有メモリ３からバッファメモリ１２ａ，１２ｂへデータを転送する間に、メインバスＢ１と内部バスＢ２との両方を待ち状態にすることによって、グループデータが分割されることなく共有メモリ３から読出データがバッファメモリ１２ａ，１２ｂに転送され、さらにバッファメモリ１２ａ，１２ｂへのデータの転送中にバッファメモリ１２ａ，１２ｂから読み出されることを防止できるから、メインバスＢ１や内部バスＢ２においてもグループデータは連続的に読み出されることになる。
【００３７】
書込時においても読出時と同様であって、メインバスＢ１に接続されたポートＡから共有メモリ３のアドレス０００Ｈと００１Ｈとに、それぞれ１１２２Ｈと３３４４Ｈとをグループデータとして書き込む場合には、図３に示すように、まずポートＡからバッファメモリ１２ａに対して各アドレスのデータをグループデータとして書き込む。
【００３８】
読出時には、バッファメモリ１２ａに共有メモリ３からデータを転送している期間において、バッファメモリ１２ａからメインバスＢ１への読出も行っているが、書込時にはメインバスＢ１からバッファメモリ１２ａへの書込が終了した後に、バッファメモリ１２ａから共有メモリ３にデータを転送する。つまり、０００Ｈのデータ１１２２Ｈをバッファメモリ１２ａに書き込んだ後、引き続いて００１Ｈのデータ３３４４Ｈをバッファメモリ１２ａに書き込み、００１Ｈのデータ３３４４Ｈを書き込んだ後に、共有メモリ３のチップセレクト信号ＣＣＳをアクティブにして、０００Ｈと００１Ｈとに順にデータを書き込む。
【００３９】
なお、上述の例ではポートＡから共有メモリ３へのアクセスについて説明したが、ポートＢから共有メモリ３へのアクセスの場合も同様であり、上述した説明のポートＡをポートＢに読み替えればよい。
【００４０】
ところで、上述した動作を行うには、アクセス制御部１１において、共有メモリ３のどのアドレスのデータがグループデータであるかを知らなければならない。本実施形態では、グループデータを２ワードの固定長にしているから、共有メモリ３におけるグループデータの先頭アドレスがわかれば、グループデータを特定することができる。そこで、データ保証テーブル１４には、グループデータの先頭アドレスを格納してある。この先頭アドレスはデータ保証テーブル１４において固定的に設定されている。共有メモリ３へのアクセスの際にアドレスが指定されると、調停制御部１２は、当該アドレスをデータ保証テーブル１４に照合し、データ保証テーブル１４に登録されているアドレスであるときには、当該アドレスをグループデータの先頭アドレスとみなして、２ワード分のデータの読出または書込を上述の手順で行うのである。
【００４１】
（実施形態２）
実施形態１では、共有メモリ３においてグループデータを登録するアドレスがデータ保証テーブル１４において固定的に設定されているから、共有メモリ３においてグループデータを格納する領域を変更することができないものである。本実施形態では、図４に示すように、共有メモリ３においてグループデータを格納する領域を変更可能としたものである。
【００４２】
グループデータを格納する領域を変更するには、グループデータを格納するアドレスを共有メモリインターフェイス４に通知してデータ保証テーブル１４に書き込むことが必要である。そこで、本実施形態では、アドレス書込部１５をアクセス制御部１１に設けている。アドレス書込部１５では、ポートＡあるいはポートＢからデータ保証テーブル１４への書込要求命令が入力されると、書込要求命令により指示されたアドレスをデータ保証テーブル１４に上書きする。
【００４３】
つまり、データ保証テーブル１４の内容を変更することができるから、共有メモリ３におけるグループデータの格納領域を変更することが可能になる。他の構成および動作は実施形態１と同様である。
【００４４】
（実施形態３）
本実施形態は、実施形態２と同様に共有メモリ３においてグループデータとして扱う領域を変更可能としたものである。実施形態２ではデータ保証テーブル１４に格納するデータを変更する構成を採用しているが、図５に示すように、本実施形態では実施形態１におけるデータ保証テーブル１４に代えてデータ保証レジスタ１６を設けている。
【００４５】
データ保証テーブル１４は、共有メモリ３においてグループデータを格納する領域のアドレスを格納するものであるが、データ保証レジスタ１６は、グループデータの開始と終了とを示すために設けられている。つまり、データ保証レジスタ１６の特定のビット（実際には最下位ビット）の値によりグループデータの開始と終了とを表す。データ保証レジスタ１６にデータを書き込むためにデータ書込部１７を設けてあり、データ書込部１７では共有メモリ３の特定のアドレスに対応付けられている。
【００４６】
ポートＡまたはポートＢから当該特定のアドレスが指定されると、データ書込部１７はデータに応じてデータ保証レジスタ１６の最下位ビットを１または０にする。いま、データ保証レジスタ１６の最下位ビットが１であるときにグループデータの開始、０であるときにグループデータの終了とし、データ保証レジスタ１６のアドレスを０１０Ｈとする。また、ポートＡに共有メモリ３からの読出を行うものとする。
【００４７】
図６に示すように、ポートＡからは書込要求ＡＷＲを行い、アドレス０１０Ｈにデータ０００１Ｈを書き込むと、グループデータの開始を表す。したがって、以後は、読出か書込かにかかわらず、グループデータとして扱われる。図６は読出時の動作を示しており、アドレス０１０Ｈへの書込に引き続くアドレス０００Ｈ、００１Ｈはグループデータのアドレスとして扱われる。ここでは、実施形態１と同様に、各アドレス０００Ｈ、００１ＨのデータをＡＡ５５Ｈ、６６ＣＣＨとしている。書込時も読出時と同様であって、アドレス０１０Ｈに０００１Ｈを書き込んだ後に、アドレスを指定して書込を行うと、グループデータとして扱われる。ここに、グループデータとしての扱いを終了するには、アドレス０１０Ｈに００００Ｈを書き込む。
【００４８】
すなわち、本実施形態では、グループデータとして扱う前に開始を指示し、グループデータとして扱うのを終了する際には終了を指示すればよいのであって、任意長のグループデータを指定して読出ないし書込を行うことができる。他の構成および動作は実施形態１と同様である。
【００４９】
（実施形態４）
本実施形態は、実施形態３と基本的な構成は同様である。ただし、実施形態３では、グループデータの終了を指定する必要があり、グループデータの開始と終了との２回の書込要求命令が必要である。本実施形態は、グループデータの終了に際して書込要求命令を用いずに、図７に示すように、アクセス制御部１１に設けたデータ保証完了指示部１８がグループデータの終了を、データ保証レジスタ１６に指示する構成を採用している。データ保証完了指示部１８は、たとえば規定したワード数でデータ保証レジスタ１６の最下位ビットを０にする。したがって、この構成では、グループデータの開始のみを指示すれば、終了は自動的に指示されることになる。他の構成および動作は実施形態３と同様である。
【００５０】
（実施形態５）
本実施形態は、実施形態２と同様に、共有メモリ３においてグループデータとして扱う領域を変更可能としたものである。図８に示すように、実施形態２の構成におけるデータ保証テーブル１４に代えて、データ保証アドレス判定部１９を設け、データ保証アドレス判定部１９には、ポートＡとポートＢとからアドレス信号が入力される。ここでは、ポートＡとポートＢとの最上位ビットを用いる。
【００５１】
データ保証アドレス判定部１９ではアドレス信号の最上位ビットが１であるときに、共有メモリ３の連続した複数のアドレスのデータをグループデータとし、アドレス信号の最上位ビットが０であるときにはグループデータではないと判断する。また、本実施形態では、グループデータを構成するアドレスの個数は２に固定してある。つまり、共有メモリ３において２個の連続したアドレスのデータをグループデータとして扱う。
【００５２】
本実施形態における読出時の動作について図９に示す。図９はポートＡからアドレス信号を８００Ｈ，８０１Ｈを与えることにより、共有メモリ３からグループデータを読み出す例を示している。ここで、８００Ｈの最上位ビットはグループデータか否かの識別のためにのみ用いられ、残りのビット値で共有メモリ３のアドレスを指定する。つまり、共有メモリ３のアドレスは０００Ｈになる。また、ポートＡ（あるいはポートＢ）で指定する１つのアドレスに対して共有メモリ３からは２つの連続したアドレスのデータを読み出すように規定されており、本実施形態のようにポートＡにおいて８００Ｈを指定すれば、共有メモリ３のアドレス０００Ｈ，００１Ｈがグループデータとして読み出される。
【００５３】
ポートＡから共有メモリ３への書込時の動作は図１０のようになる。つまり、読出時と同様にポートＡのアドレスを８００Ｈとすれば、共有メモリ３のアドレスは０００Ｈがグループデータの先頭アドレスとして指定される。つまり、続く００１Ｈもグループデータを構成するから２つの連続したアドレスにデータが書き込まれる。ここで、図１０に示す例では、ポートＡから書込先のアドレスとして８００Ｈに続いて８０１Ｈを指定しているが、このアドレスの指定は必須ではなく、０００Ｈの次のアドレス００１Ｈがグループデータのアドレスであることを示しているに過ぎないから省略してもよい。他の構成および動作は実施形態１と同様である。
【００５４】
（実施形態６）
実施形態５の構成では、共有メモリ３においてグループデータとして扱うデータが連続した２個のアドレスの領域に格納されたデータであって、グループデータのデータ長が固定長である。これは、実施形態５の構成では、データ保証アドレス判定部１９において、ポートＡとポートＢとのアドレス信号の上位１ビットのみを用いていることにより、グループデータか否かの判別以外の情報としてしか用いることができないからである。
【００５５】
本実施形態では、ポートＡとポートＢとのアドレス信号についてそれぞれ複数ビットを用いることにより、グループデータの長さも指定可能にしてある。データ保証アドレス判定部１９が複数ビットを扱う点を除けば、構成は実施形態５と同様である。ポートＡとポートＢとのアドレス信号の何ビットをデータ保証アドレス判定部１９で用いるかは適宜に選択可能であるが、本実施形態では、ポートＡとポートＢとのアドレス信号の各３ビットをデータ保証アドレス判定部１９で用いている。最上位ビットは実施形態５と同様に、グループデータか否かの識別に用い、残りの２ビットでグループデータのデータ長を表す。
【００５６】
上述の例では、グループデータとして扱うのは最上位ビットが１のときであるから、１００、１０１、１１０、１１１の４通りがある。そこで、データ保証アドレス判定部１９では、アドレスの上位３ビットが１００、１０１、１１０、１１１である場合に、それぞれ２個、３個、４個、５個の連続するアドレスに対応する領域をグループデータと判断する。最上位ビットが０のときには、他のビット値にかかわらず単独のデータとして扱う。
【００５７】
図１１にはポートＡから共有メモリ３のデータを読み出すにあたり、３個の連続したアドレスをグループデータとして読み出す場合を例として示している。ポートＡのアドレスをＡ００Ｈとしたことにより、上位３ビットは１１０であるから、３個の連続したアドレスに対応する領域がグループデータであることを示しており、３個の連続したアドレスに対応する領域のデータをバッファメモリ１２ａに読み込んでいる。バッファメモリ１２ａに読み込んだ後の動作は、２個の連続したアドレスに対応する領域のデータをグループデータとして扱う場合と同様である。
【００５８】
図１２にはポートＡから共有メモリ３の連続した３個のアドレスに対応する領域にデータを書き込む場合を示している。この場合には、３個のデータをバッファメモリ１２ａに順に書き込んだ後、バッファメモリ１２ａから共有メモリ３における３個の連続したアドレスに対応する領域にバッファメモリ１２ａからデータを転送している。他の構成および動作は実施形態１と同様である。
【図面の簡単な説明】
【００５９】
【図１】実施形態１の一使用例でのブロック図である。
【図２】同上の読出時の信号のタイミングを示す動作説明図である。
【図３】同上の書込時の信号のタイミングを示す動作説明図である。
【図４】実施形成２を示すブロック図である。
【図５】実施形態３を示すブロック図である。
【図６】同上の読出時の信号のタイミングを示す動作説明図である。
【図７】実施形態４を示すブロック図である。
【図８】実施形態５を示すブロック図である。
【図９】同上の読出時の信号のタイミングを示す動作説明図である。
【図１０】同上の書込時の信号のタイミングを示す動作説明図である。
【図１１】実施形態６の読出時の信号のタイミングを示す動作説明図である。
【図１２】同上の書込時の信号のタイミングを示す動作説明図である。
【図１３】従来例を示すブロック図である。
【図１４】同上の信号のタイミングを示す動作説明図である。
【図１５】同上の読出時の信号のタイミングを示す動作説明図である。
【符号の説明】
【００６０】
１  メインプロセッサ
２  コプロセッサ
３  共有メモリ
４  共有メモリインターフェイス
１０  増設ユニット
１１  アクセス制御部
１２ａ，１２ｂ  バッファメモリ
１３  調停制御部
１４  データ保証テーブル
１５  アドレス書込部
１６  データ保証レジスタ
１７  データ書込部
１８  データ保証完了指示部
１９  データ保証アドレス判定部
【図１】
2008117002.tif 000003
【図２】
2008117002.tif 000004
【図３】
2008117002.tif 000005
【図４】
2008117002.tif 000006
【図５】
2008117002.tif 000007
【図６】
2008117002.tif 000008
【図７】
2008117002.tif 000009
【図８】
2008117002.tif 000010
【図９】
2008117002.tif 000011
【図１０】
2008117002.tif 000012
【図１１】
2008117002.tif 000013
【図１２】
2008117002.tif 000014
【図１３】
2008117002.tif 000015
【図１４】
2008117002.tif 000016
【図１５】
2008117002.tif 000017