(57)【要約】【課題】メモリに対するアクセスが競合した場合であっても、処理を中断することなく継続できるマルチプロセッサシステムを提供する。【解決手段】複数のプロセッサ１０１，１０２と、同一アドレス空間を有する複数のメモリ１０４，１０５と、複数のプロセッサ１０１，１０２からメモリ１０４，１０５へのアクセスを制御する調停回路１０３とを備える。【選択図】  図１
2005173886.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
同一のアドレス空間を有する複数のメモリと、
前記プロセッサから前記メモリへのアクセスを制御するアクセス制御手段とを備えるマルチプロセッサシステム。
【請求項２】
請求項１記載のマルチプロセッサシステムであって、
前記メモリのアドレスを変換するアドレス変換手段を備えるマルチプロセッサシステム。
【請求項３】
請求項１又は２記載のマルチプロセッサシステムであって、
前記メモリに書込まれるデータを保持する保持手段を備えるマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリ型のマルチプロセッサシステムに関する。
【背景技術】
【０００２】
従来の共有メモリ型のマルチプロセッサシステムでは、複数のプロセッサから同一メモリに対して同時にメモリアクセスが発生した場合、まず優先順位の高いプロセッサがアクセスを行い、優先順位の低いプロセッサは動作待ちとなる。そして、優先順位の高いプロセッサの処理終了後、優先順位の低いプロセッサがアクセスを行うようにしている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平４−８６９４３号公報（第２図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のマルチプロセッサシステムにおいては、複数のプロセッサから同一メモリに対して同時にアクセスが発生した場合、優先順位の低い方のプロセッサは優先順位の高い方のプロセッサのアクセスが終了するまで処理を中断して待つことになり、メモリアクセスに要する待ち時間によってプロセッサ全体の稼働率が低下するという問題がある。
【０００５】
本発明は係る点に鑑みてなされたものであり、メモリに対するアクセスが競合した場合であっても、処理を中断することなく継続できる共有メモリ型のマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のマルチプロセッサシステムは、複数のプロセッサと、同一のアドレス空間を有する複数のメモリと、前記プロセッサから前記メモリへのアクセスを制御するアクセス制御手段とを備える。
【０００７】
上記構成によれば、同一のアクセス空間を有する複数のメモリを備えることにより、同一内容が書込まれた複数のメモリのそれぞれに各プロセッサがアクセスできるため、メモリに対するアクセスが競合した場合であっても、処理を中断することなく継続できる。
【０００８】
また、本発明のマルチプロセッサシステムは、前記メモリのアドレスを変換するアドレス変換手段を備える。
【０００９】
上記構成によれば、前記メモリのアドレスを変換するアドレス変換手段を備えることにより、アドレス空間を変更することができるため、必要に応じてメモリ空間を拡張することができる。
【００１０】
また、本発明のマルチプロセッサシステムは、前記メモリに書込まれるデータを保持する保持手段を備える。
【００１１】
上記構成によれば、前記メモリに書込まれるデータを保持する保持手段を備えることにより、保持手段にデータを書込んだプロセッサは次の処理に移ることができるため、メモリに対するライトアクセスが競合した場合であっても、処理を中断することなく継続できる。
【発明の効果】
【００１２】
本発明によれば、メモリに対するアクセスが競合した場合であっても、処理を中断することなく継続できる。
【発明を実施するための最良の形態】
【００１３】
（実施の形態１）
図１は、本発明の実施の形態１を説明するためのマルチプロセッサシステムの概略構成を示すブロック図である。
【００１４】
図１において、マルチプロセッサシステム１００は、プロセッサ１０１及び１０２と、メモリ１０４及び１０５と、プロセッサ１０１，１０２からメモリ１０４，１０５へのアクセスを制御する調停回路１０３とを備えている。なお、本実施の形態ではプロセッサとメモリをそれぞれ２つ備えているが、これらの数に限定されるものではなく、プロセッサの数に対してメモリの数が少なくとも同数あれば良い。
【００１５】
図２は、調停回路１０３へのプロセッサ１０１、プロセッサ１０２の入力信号に対するメモリ１０４、メモリ１０５への出力信号を一覧表にしたものである。調停回路１０３はこの一覧表を実現する機能を有し、プロセッサ１０１とプロセッサ１０２のメモリアクセスが競合したときに調停を行う。
【００１６】
以下、図２を参照しながらマルチプロセッサシステム１００の動作について説明する。まずプロセッサ１０１とプロセッサ１０２との間で競合が起こらない場合について説明する。
【００１７】
（１）プロセッサ１０１がメモリ１０４に対して読み出し動作を行い、プロセッサ１０２はメモリ１０５に対してアクセス動作しない場合（図２の（ａ）の場合）。
この場合、プロセッサ１０１のアドレス信号出力端ａｄｄ１から出力されるアドレス信号１１０はそのままメモリ１０４のアドレス信号入力端ｍａｄｄ１に入力されるアドレス信号１１５となる。また同様にプロセッサ１０１のリード信号出力端ｒｄ１から出力されるリード信号１１３はメモリ１０４のリード信号入力端ｍｒｄ１に入力されるリード信号１１８となる。このリード動作によりメモリ１０４のリードデータ出力端ｍｒｄａ１からリードデータ１１４が読み出されてプロセッサ１０１に送られる。
【００１８】
（２）プロセッサ１０１がメモリ１０４に対してライト動作を行い、プロセッサ１０２はメモリ１０５に対してアクセス動作しない場合（図２の（ｃ）の場合）。
この場合、プロセッサ１０１のアドレス信号出力端ａｄｄ１から出力されるアドレス信号１１０がメモリ１０４のアドレス信号入力端ｍａｄｄ１へのアドレス信号１１５となると同時にメモリ１０５のアドレス信号入力端ｍａｄｄ２へのアドレス信号１２５となる。また同様にプロセッサ１０１からライト信号出力端ｗｔ１から出力されるライト信号１１０がメモリ１０４のライト信号入力端ｍｗｔ１へのライト信号１１６とメモリ１０５のライト信号入力端ｍｗｔ２へのライト信号１２６となる。
【００１９】
また、プロセッサ１０１のライトデータ出力端ｗｄａ１から出力されるライトデータ１１２がメモリ１０４のライトデータ入力端ｍｗｄａ１へのライトデータ１１７とメモリ１０５のライトデータ入力端ｍｗｄａ２へのライトデータ１２７となる。このライト動作により、メモリ１０４及びメモリ１０５にはプロセッサ１０１からのデータが書き込まれ、メモリ１０４とメモリ１０５の内容は同一のものとなる。
【００２０】
（３）プロセッサ１０２がメモリ１０５に対してリード動作を行い、プロセッサ１０１はメモリ１０５にアクセス動作しない場合（図２の（ｂ）の場合）。
この場合、プロセッサ１０２のアドレス信号出力端ａｄｄ２から出力されるアドレス信号１２０がそのままメモリ１０５のアドレス信号入力端ｍａｄｄ２へのアドレス信号１２５となる。また同様にプロセッサ１０２のリード信号出力端ｒｄ２から出力されるリード信号１２３はメモリ１０５のリード信号入力端ｍｒｄ２へのリード信号１２８となる。このリード動作によりメモリ１０５のリードデータ出力端ｍｒｄａ２からリードデータ１２４がプロセッサ１０２に送られる。
【００２１】
（４）プロセッサ１０２がメモリ１０５に対してライト動作を行い、プロセッサ１０１はメモリ１０４に対してアクセス動作しない場合（図２の（ｄ）の場合）。
この場合、プロセッサ１０２のアドレス信号出力端ａｄｄ２から出力されるアドレス信号１２０はメモリ１０５のアドレス信号入力端ｍａｄｄ２へのアドレス信号１２５となると同時にメモリ１０４のアドレス信号入力端ｍａｄｄ１へのアドレス信号１１５となる。
【００２２】
また同様に、プロセッサ１０２のライト信号出力端ｗｔ２から出力されるライト信号１２１がメモリ１０４のライト信号入力端ｍｗｔ１へのライト信号１１６とメモリ１０５のライト信号入力端ｍｗｔ２へのライト信号１２６となり、またプロセッサ１０２のライトデータ出力端ｗｄａ２から出力されるライトデータ１２２がメモリ１０４のライトデータ入力端ｍｗｄａ１へのライトデータ１１７とメモリ１０５のライトデータ入力端ｍｗｄａ２へのライトデータ１２７となる。このライト動作によりメモリ１０４及びメモリ１０５にはプロセッサ１０２からのデータが書き込まれ、メモリ１０４とメモリ１０５の内容は同一のものとなる。
【００２３】
このように、プロセッサ１０１がメモリ１０４に対してライト動作を行い、プロセッサ１０２がメモリ１０５に対してアクセス動作しない場合、プロセッサ１０１から出力されるアドレス信号がメモリ１０４へのアドレス信号となると同時にメモリ１０５へのアドレス信号となり、同様にプロセッサ１０１から出力されるライト信号がメモリ１０４へのライト信号とメモリ１０５へのライト信号となる。また、プロセッサ１０１から出力されるライトデータがメモリ１０４へのライトデータとメモリ１０５へのライトデータとなる。このライト動作により、メモリ１０４及びメモリ１０５にはプロセッサ１０１からのデータが書き込まれ、メモリ１０４とメモリ１０５の内容は同一のものとなる。
【００２４】
また、プロセッサ１０２がメモリ１０５に対してライト動作を行い、プロセッサ１０１がメモリ１０４に対してアクセス動作しない場合、プロセッサ１０２から出力されるアドレス信号がメモリ１０５へのアドレス信号となると同時にメモリ１０４へのアドレス信号となり、同様にプロセッサ１０２から出力されるライト信号がメモリ１０４へのライト信号とメモリ１０５へのライト信号となり、またプロセッサ１０２から出力されるライトデータがメモリ１０４へのライトデータとメモリ１０５へのライトデータとなる。このライト動作によりメモリ１０４及びメモリ１０５にはプロセッサ１０２からのデータが書き込まれ、メモリ１０４とメモリ１０５の内容は同一のものとなる。
【００２５】
すなわち、プロセッサ１０１のライト動作によってメモリ１０４及びメモリ１０５には同一のデータが書き込まれてメモリ１０４とメモリ１０５の内容は同一のものとなり、またプロセッサ１０２のライト動作によってメモリ１０４及びメモリ１０５には同一のデータが書き込まれてメモリ１０４とメモリ１０５の内容は同一のものとなる。
【００２６】
次に、プロセッサ１０１とプロセッサ１０２にメモリアクセス競合が起こった場合について説明する。なお、以下の説明では競合時における優先順は、プロセッサ１０１の方がプロセッサ１０２よりも高いものとする。
【００２７】
（５）プロセッサ１０１のメモリ１０４に対するリード動作とプロセッサ１０２のメモリ１０５に対するリード動作が同時に発生した場合（図２の（ｅ）の場合）。
この場合、本構成ではメモリ１０４とメモリ１０５に同じデータが保持されるようになっているので、上述した競合しない場合と同様にプロセッサ１０１はメモリ１０４からデータを読み出し、プロセッサ１０２はメモリ１０５からデータを読み出す。すなわち、プロセッサ１０１のリード動作とプロセッサ１０２のリード動作が同時に発生してもこれらのプロセッサ１０１、１０２は時間待ちすることなくそれぞれデータの読み出しを行える。
【００２８】
（６）プロセッサ１０１のメモリ１０４に対するリード動作とプロセッサ１０２のメモリ１０５に対するライト動作が同時に発生した場合（図２の（ｆ）の場合）。
この場合、優先順位に従い、調停回路１０３からプロセッサ１０２に対して動作待ちを指示する信号１３０が出力される。そして、プロセッサ１０２のライト信号出力端ｗｔ２から出力されたライト信号１２１が調停回路１０３によりディセーブルされて、メモリ１０５へのライト信号１２６はディセーブル状態のままとなる。
【００２９】
一方、優先順位の高いプロセッサ１０１のメモリ１０４に対するリード動作がそのまま行われてメモリ１０４のデータ出力端ｍｒｄａ１からデータ１１４が読み出される。そして、次のサイクルでもプロセッサ１０１がメモリ１０４に対してアクセスする場合、プロセッサ１０２は待ち状態のままでプロセッサ１０１がメモリ１０４にアクセスする。これに対して、次のサイクルでプロセッサ１０１がメモリ１０４にアクセスしない場合は、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がライト動作を行う。すなわち、上述した図２の（ｄ）の場合と同様にプロセッサ１０２及び１０１がライト動作を行う。この動作によってメモリ１０４とメモリ１０５に同一のデータが書き込まれる。
【００３０】
このように、プロセッサ１０１のメモリ１０４に対するリード動作とプロセッサ１０２のメモリ１０５に対するライト動作が同時に発生した場合、優先順位の高いプロセッサ１０１がメモリ１０４に対してリード動作を行い、その間プロセッサ１０２のライト信号はディセーブル状態となる。そして、プロセッサ１０１のリード動作が終了すると、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がメモリ１０５に対してライト動作を行い、このライト動作においてメモリ１０４にデータが書き込まれると共に、同じデータがメモリ１０５に書き込まれる。
【００３１】
（７）プロセッサ１０１のメモリ１０４に対するライト動作とプロセッサ１０２のメモリ１０５に対するリード動作が同時に発生した場合（図２の（ｇ）の場合）。
この場合、優先順位に従い、調停回路１０３がプロセッサ１０２に対して動作待ちを指示する信号１３０を出力する。また、プロセッサ１０２のリード信号出力端ｒｄ２から出力されたリード信号１２３が調停回路１０３によってディセーブルされて、メモリ１０５のリード信号入力端ｍｒｄ２へのリード信号１２８がディセーブル状態のままとなる。
【００３２】
一方、優先順位の高いプロセッサ１０１のメモリ１０４に対するライト動作はそのまま行われて、プロセッサ１０１のライトデータ出力端ｗｄａ１から出力されるライトデータ１１２がメモリ１０４のライトデータ入力端ｍｗｄａ１へのライトデータ１１７となるとともに、メモリ１０５のライトデータ入力端ｍｗｄａ２へのライトデータ１２７となる。また、プロセッサ１０１のライト信号出力端ｗｔ１から出力されるライト信号１１１がメモリ１０４のライト信号入力端ｍｗｔ１へのライト信号１１６となるとともに、メモリ１０５のライト信号入力端ｍｗｔ２へのライト信号１２６となる。この動作によってメモリ１０４とメモリ１０５に同一のデータが書き込まれる。
【００３３】
そして、次のサイクルでもプロセッサ１０１がメモリ１０４に対してアクセスする場合、プロセッサ１０２の待ち状態が継続する。これに対して、次のサイクルにプロセッサ１０１がメモリ１０４にアクセスしない場合、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がリード動作を行い、この動作によってメモリ１０５からデータが読み出される。
【００３４】
このように、プロセッサ１０１のメモリ１０４に対するライト動作とプロセッサ１０２のメモリ１０５に対するリード動作が同時に発生した場合、優先順位の高いプロセッサ１０１がメモリ１０４に対してライト動作を行い、その間プロセッサ１０２のリード信号はディセーブル状態となる。そして、プロセッサ１０１のメモリ１０４に対するライト動作が終了すると、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がメモリ１０５に対してリード動作を行い、このリード動作においてメモリ１０５からデータが読み出される。
【００３５】
（８）プロセッサ１０１のメモリ１０４に対するライト動作とプロセッサ１０２のメモリ１０５に対するライト動作が同時に発生した場合（図２の（ｈ）の場合）。
この場合、優先順位に従い、調停回路１０３からプロセッサ１０２に対して動作待ちを指示する信号１３０が出力される。そして、プロセッサ１０２のライト信号出力端ｗｔ２から出力されたライト信号１２１が調停回路１０３によりディセーブルされて、メモリ１０５へのライト信号１２６はディセーブル状態のままとなる。
【００３６】
一方、優先順位の高いプロセッサ１０１のメモリ１０４に対するライト動作はそのまま行われて、プロセッサ１０１のライトデータ出力端ｗｄａ１から出力されるライトデータ１１２がメモリ１０４のライトデータ入力端ｍｗｄａ１へのライトデータ１１７となるとともに、メモリ１０５のライトデータ入力端ｍｗｄａ２へのライトデータ１２７となる。また、プロセッサ１０１のライト信号出力端ｗｔ１から出力されるライト信号１１１がメモリ１０４のライト信号入力端ｍｗｔ１へのライト信号１１６となるとともに、メモリ１０５のライト信号入力端ｍｗｔ２へのライト信号１２６となる。この動作によってメモリ１０４とメモリ１０５に同一のデータが書き込まれる。
【００３７】
そして、次のサイクルでもプロセッサ１０１がメモリ１０４に対してアクセスする場合、プロセッサ１０２の待ち状態が継続する。これに対して、次のサイクルにプロセッサ１０１がメモリ１０４にアクセスしない場合、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がライト動作を行う。すなわち、上述した図２の（ｄ）の場合と同様にプロセッサ１０２及び１０１がライト動作を行う。この動作によってメモリ１０４とメモリ１０５に同一のデータが書き込まれる。
【００３８】
このように、プロセッサ１０１のメモリ１０４に対するライト動作とプロセッサ１０２のメモリ１０５に対するライト動作が同時に発生した場合、優先順位の高いプロセッサ１０１がメモリ１０４に対してライト動作を行い、その間プロセッサ１０２のライト信号はディセーブル状態となる。そして、プロセッサ１０１のメモリ１０４に対するライト動作が終了すると、プロセッサ１０２の待ち状態が解除されて、プロセッサ１０２がメモリ１０５に対してライト動作を行い、このライト動作においてメモリ１０５にデータが書き込まれると共に、同じデータがメモリ１０４に書き込まれる。
【００３９】
このように、マルチプロセッサシステム１００によれば、プロセッサ１０１、１０２と同数のメモリ１０４、１０５とを備え、これらのメモリ１０４、１０５を同一アドレス空間に割り当てて、それぞれのプロセッサ間でデータを共有するようにしたので、データの読み出しにおいて待ち時間が無くなり、プロセッサ全体の稼働率が向上する。
【００４０】
（実施の形態２）
図３は、本発明の実施の形態２を説明するためのマルチプロセッサシステムの概略構成を示すブロック図である。なお、この図において前述した図１と共通する部分には同じ符号を付ける。
図３において、マルチプロセッサシステム３００は、プロセッサ１０１及び１０２と、メモリ１０４及び１０５と、プロセッサ１０１，１０２からメモリ１０４，１０５へのアクセスを制御する調停回路３０３と、複数のメモリをそれぞれ別のアドレス空間に切替える空間切替レジスタ３０６と、アドレスを変換するアドレス変換回路３０７とを備えている。空間切替レジスタ３０６は、メモリ１０５をメモリ１０４のミラーとして使用する（同一メモリ空間に割り当てて使用する）か別のメモリ空間に割り当てて使用するかを決めるものである。アドレス変換回路３０７は、空間切替レジスタ３０６の切替えに応じてメモリ１０５のアドレスを変換するものである。
【００４１】
図４は、調停回路３０３へのプロセッサ１０１、プロセッサ１０２の入力信号に対するメモリ１０４、メモリ１０５への出力信号を一覧表にしたものである。調停回路３０３はこの一覧表を実現する機能を有し、プロセッサ１０１とプロセッサ１０２のメモリアクセスが競合したときに調停を行う。
【００４２】
図３に示すマルチプロセッサシステム３００は、空間切替レジスタ３０６がメモリ１０５をメモリ１０４のミラーとして使用する場合は、上述したマルチプロセッサシステム１００と同様の動作を行い、メモリ１０５をメモリ１０４と別の空間として使用する場合は以下に示す動作を行う。
【００４３】
すなわち、メモリ１０５をメモリ１０４と別の空間として使用する場合、プロセッサ１０１がメモリ１０５に対してリードアクセスする状態が存在する。プロセッサ１０１とプロセッサ１０２が同時にメモリ１０５に対してリードアクセスした場合（図４の（ｇ）の場合）、調停回路３０３はプロセッサ１０２に対して動作待ちを指示する信号１３０を出力し、またプロセッサ１０１のリード信号１１３をメモリ１０５のリード信号１２８とする。調停回路３０３から出力されるアドレス信号１２５は、アドレス変換回路３０７によりメモリ１０４のミラーとして割り付けられているメモリ１０５のアドレスに変換されてメモリ１０５のアドレスとなる。メモリ１０５から読み出されたデータ１２４はプロセッサ１０１へのリードデータ１１９となりプロセッサ１０１に読み込まれる。
【００４４】
プロセッサ１０１のメモリアクセス動作が終了した後、プロセッサ１０２のリード信号１２３がメモリ１０５のリード信号１２８となり、メモリ１０５から読み出されたデータ１２４はプロセッサ１０２へのリードデータ１２９となり、プロセッサ１０２に読み込まれる。
【００４５】
このように、マルチプロセッサシステム３００では、空間切替レジスタ３０６がメモリ１０５をメモリ１０４と同一メモリ空間に割り当てるか別のメモリ空間に割り当てるかを設定し、アドレス変換回路３０７が空間切替レジスタ３０６の切替えに応じてメモリ１０５へのアドレスを変換する。これにより、プロセッサ間でデータを共有する必要がない場合には、複数のメモリを別のアドレス空間に設定して、メモリ空間を拡張して使用することができる。
【００４６】
（実施の形態３）
図５は、本発明の実施の形態３を説明するためのマルチプロセッサシステムの概略構成を示すブロック図である。なお、この図において前述した図１と共通する部分には同じ符号を付ける。
図５において、マルチプロセッサシステム５００は、プロセッサ１０１及び１０２と、メモリ１０４及び１０５と、プロセッサ１０１，１０２からメモリ１０４，１０５へのアクセスを制御する調停回路５０１と、メモリ１０４，１０５に書込まれるデータを保持するライトバッファ回路５０８とを備えている。
【００４７】
図６は、調停回路５０１へのプロセッサ１０１及びプロセッサ１０２の入力信号に対するメモリ１０４及びメモリ１０５への出力信号を一覧表にしたものであり、調停回路５０１はこの一覧表を実現する機能を有し、プロセッサ１０１とプロセッサ１０２のメモリアクセスが競合したときに調停を行う。
【００４８】
調停回路５０１は、一覧表を実現する機能に加え、ライトバッファ回路５０８に有効データがあるときに、プロセッサ１０１又は１０２からメモリ１０４又は１０５にアクセスがある場合、プロセッサ１０１又はプロセッサ１０２への動作待ち信号５３１を発生する機能を有している。ライトバッファ回路５０８は、プロセッサ１０２がメモリ１０５に対してライトアクセスした際にそのアドレスとデータを保持するものである。なお、これらのデータはメモリ１０５に書込まれた時点でライトバッファ回路５０８から消去される。
【００４９】
マルチプロセッサシステム５００は、プロセッサ１０１がメモリ１０４にアクセスしているときにプロセッサ１０２がライト動作する場合以外、マルチプロセッサシステム１００と同様の動作をする。
【００５０】
プロセッサ１０１のメモリ１０４へのリードアクセス又はライトアクセスとプロセッサ１０２のメモリ１０５へのライトアクセスが同時に発生した場合（図６の（ｆ）、（ｈ）の場合）、プロセッサ１０２の書き込みデータはライトバッファ回路５０８に保持される。これによりプロセッサ１０２は、メモリ１０５にデータを書き込んだ場合と同様に、次の処理を開始できる。すなわち、プロセッサ１０２は、プロセッサ１０１のアクセス中であっても、ライトバッファ回路５０８にデータを書込むことにより、プロセッサ１０１のアクセスが終了するまで処理を中断して待つことなく次の処理を行うことができる。そして調停回路５０１は、プロセッサ１０１のメモリ１０４へのアクセスが終了した次のサイクルでプロセッサ１０１がメモリ１０４にアクセスしない場合、もしくはプロセッサ１０２がメモリ１０５にアクセスしない場合、メモリ１０４及びメモリ１０５にライトバッファ回路５０８のデータを書き込む動作を行う。
【００５１】
一方、プロセッサ１０１のメモリ１０４へのアクセスが終了した次のサイクルでプロセッサ１０１が再度メモリ１０４にアクセスするか、またはプロセッサ１０２がメモリ１０５にアクセスする場合は、調停回路５０１はプロセッサ１０１及びプロセッサ１０２に対して動作待ちを指示する信号５３１を出力しプロセッサ１０１及びプロセッサ１０２の動作を停止させて、メモリ１０４及びメモリ１０５にライトバッファ回路５０８のデータを書き込む動作を行う。これによりメモリ１０４、メモリ１０５が変更前の状態で読み書きされることを防止できる。
【００５２】
このように、マルチプロセッサシステム５００では、プロセッサ１０１とプロセッサ１０２から同時に同一メモリ空間への書き込み動作が発生した場合、ライトバッファ回路５０８が、優先順位の低いプロセッサ１０２からの書き込みデータを一時的に保持し、調停回路５０３が、メモリへのアクセスが空いたときにライトバッファ回路５０８に保持しておいたデータを当該メモリに書き込む。これにより、メモリアクセスに要する待ち時間の短縮化が可能となり、プロセッサ全体の稼働率が向上する。
【産業上の利用可能性】
【００５３】
本発明のマルチプロセッサシステムは、メモリに対するアクセスが競合した場合であっても、処理を中断することなく継続できる効果を有し、メモリ共有型のマルチプロセッサシステムに適用が可能である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態１を説明するためのマルチプロセッサシステムの概略構成を示すブロック図
【図２】本発明の実施の形態１を説明するためのマルチプロセッサシステムの動作を説明するための図
【図３】本発明の実施の形態２を説明するためのマルチプロセッサシステムの概略構成を示すブロック図
【図４】本発明の実施の形態２を説明するためのマルチプロセッサシステムの動作を説明するための図
【図５】本発明の実施の形態３を説明するためのマルチプロセッサシステムの概略構成を示すブロック図
【図６】本発明の実施の形態３を説明するためのマルチプロセッサシステムの動作を説明するための図
【符号の説明】
【００５５】
１００、３００、５００  マルチプロセッサシステム
１０１、１０２  プロセッサ
１０３、３０３、５０１  調停回路
１０４、１０５  メモリ
３０６  空間切替レジスタ
３０７  アドレス変換回路
５０８  ライトバッファ回路
【図１】
2005173886.tif 000003
【図２】
2005173886.tif 000004
【図３】
2005173886.tif 000005
【図４】
2005173886.tif 000006
【図５】
2005173886.tif 000007
【図６】
2005173886.tif 000008