(57)【要約】【課題】優先順位の低いプロセッサのパフォーマンスを向上させる。【解決手段】優先順位の高い第１のプロセッサ１０１と、優先順位の低い第２のプロセッサ１０２と、第１、第２のプロセッサが共通にアクセスするメモリ１０３と、第２のプロセッサのアクセス先のアドレスを保持するアドレスレジスタ１０４と、第２のプロセッサの書き込みデータを保持するデータレジスタ１０５と、第１のプロセッサのメモリへのアクセスが発生していないときにアドレスレジスタに保持されているアドレスおよびデータレジスタに保持されている書き込みデータに従いメモリにアクセスさせる調停手段１０８とを備える。【選択図】　図１
2004062414.tif 000002
【特許請求の範囲】
【請求項１】
優先順位の高い第１のプロセッサと、
優先順位の低い第２のプロセッサと、
前記第１、第２のプロセッサが共通にアクセスするメモリと、
前記第２のプロセッサのアクセス先のアドレスを保持するアドレス保持手段と、
前記第第２のプロセッサの書き込みデータを保持するデータ保持手段と、
前記第１のプロセッサの前記メモリへのアクセスが発生していないときに前記アドレス保持手段に保持されているアドレスおよび前記データ保持手段に保持されている書き込みデータに従い前記メモリにアクセスさせる調停手段と、
を備えることを特徴とするメモリ共有システム。
【請求項２】
前記第１のプロセッサのアクセス先のアドレスと前記アドレス保持手段に保持されているアドレスとの一致により前記アドレス保持手段および前記データ保持手段に保持されているデータを削除する比較手段を備えることを特徴とする請求項１記載のメモリ共有システム。
【請求項３】
メモリアクセスの競合毎に前記第２のプロセッサのアクセス先のアドレスおよび書き込みデータを保持する複数の前記アドレス保持手段および前記データ保持手段を備えることを特徴とする請求項１または２記載のメモリ共有システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサによって共通にアクセスされる共有メモリを有するメモリ共有システムに関する。
【０００２】
【従来の技術】
図６は従来のメモリ共有システムの構成を示すブロック図である。メモリ共有システムは優先順位の高いプロセッサ６０１と、優先順位の低いプロセッサ６０２と、プロセッサ６０１、６０２のメモリアクセスが競合しないように調停する調停回路６０３と、プロセッサ６０１、６０２が共通してアクセスするメモリ（共通メモリ）６０４とを有している。
【０００３】
プロセッサ６０１がメモリ６０４にアクセスする場合、調停回路６０３によってプロセッサ６０２がメモリ６０４にアクセスしていない時にはそのままアクセスを行う。またプロセッサ６０１がメモリ６０４にアクセスしていないときには、調停回路６０３によってプロセッサ６０２はそのままメモリ６０４にアクセスする。
【０００４】
図７はプロセッサ６０１、６０２が同時にメモリ６０４にアクセスしたい場合の動作を示すタイミングチャートである。図７において、（Ａ）はメモリ共有システムを動作させるクロックである。（Ｂ）、（Ｃ）に示すようにプロセッサ６０１、６０２がタイミングＴ１で同時にメモリ６０４にアクセスする要求を出すと、調停回路６０３は優先順位の高いプロセッサ６０１のアクセス要求を実行させるため、（Ｄ）に示すタイミングＴ１でプロセッサ６０１がメモリ６０４にアクセスする。
【０００５】
従って、（Ｆ）に示すタイミングＴ１で、メモリ６０４はアクセスされる。しかし、（Ｅ）に示すようにタイミングＴ１ではプロセッサ６０２のメモリ６０４へのアクセス動作は起こらない。
【０００６】
その後、（Ｂ）に示すようにプロセッサ６０１がタイミングＴ２で、メモリ６０４にアクセスする要求を続けて出すため、再度、（Ｄ）に示すタイミングＴ２で、プロセッサ６０１がメモリ６０４にアクセスし、（Ｆ）に示すタイミングＴ２で、メモリ６０４はアクセスされる。しかし、（Ｅ）に示すようにタイミングＴ２でもプロセッサ６０２のメモリ６０４へのアクセス動作は起こらない。
【０００７】
次にタイミングＴ３になると、プロセッサ６０１からメモリ６０４へのアクセス要求が出ていないため、（Ｄ）に示すタイミングＴ３で、調停回路６０３によってプロセッサ６０２がメモリ６０４にアクセスし、（Ｆ）に示すタイミングＴ３で、メモリ６０４はアクセスされる。
【０００８】
【発明が解決しようとする課題】
しかしながら従来のメモリ共有システムにおいては、優先順位の高いプロセッサ６０１がメモリ６０４に連続してアクセスすると、優先順位の低いプロセッサ６０２はその間（図７のＫ期間）、メモリの空き待ちの状態になってしまい、他の処理ができないため、優先順位の低いプロセッサ６０２のパフォーマンスが悪化する。
【０００９】
本発明はかかる点に鑑みてなされたもので、優先順位の低いプロセッサのパフォーマンスを向上させることができるメモリ共有システムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
請求項１のメモリ共有システムは、優先順位の高い第１のプロセッサと、優先順位の低い第２のプロセッサと、前記第１、第２のプロセッサが共通にアクセスするメモリと、前記第２のプロセッサのアクセス先のアドレスを保持するアドレス保持手段と、前記第第２のプロセッサの書き込みデータを保持するデータ保持手段と、前記第１のプロセッサの前記メモリへのアクセスが発生していないときに前記アドレス保持手段に保持されているアドレスおよび前記データ保持手段に保持されている書き込みデータに従い前記メモリにアクセスさせる調停手段とを備える。
【００１１】
上記構成によれば、優先順位の高いプロセッサのメモリアクセスが発生している場合でも、優先順位の低いプロセッサはアクセス先のアドレスおよび書き込みデータを保持させて書き込み処理を終了させることでプロセッサの待ち時間を減らしプロセッサのパフォーマンスを向上させることができる。
【００１２】
請求項２記載のメモリ共有システムは、請求項１記載のメモリ共有システムにおいて、前記第１のプロセッサのアクセス先のアドレスと前記アドレス保持手段に保持されているアドレスとの一致により前記アドレス保持手段および前記データ保持手段に保持されているデータを削除する比較手段を備える。
【００１３】
上記構成によれば、第１のプロセッサのアクセス先のアドレスとアドレス保持手段に保持されている第２のプロセッサのアクセス先のアドレスとが一致したときは前記アドレス保持手段および前記データ保持手段に保持されているデータを削除することでアドレス保持手段およびデータ保持手段の空き時間が増えるためプロセッサの待ち時間を減らしプロセッサのパフォーマンスを向上させることができる。
【００１４】
請求項３記載のメモリ共有システムは、請求項１または２記載のメモリ共有システムにおいて、メモリアクセスの競合毎に前記第２のプロセッサのアクセス先のアドレスおよび書き込みデータを保持する複数の前記アドレス保持手段および前記データ保持手段を備える。
【００１５】
上記構成によれば、メモリアクセスの競合が複数回発生した場合でも、メモリアクセスの競合毎に第２のプロセッサのアクセス先のアドレスおよび書き込みデータを順次保持させることができプロセッサの待ち時間を減らしプロセッサのパフォーマンスを向上させることができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の第１の実施の形態に係るメモリ共有システムの構成を示すブロック図である。メモリ共有システムは、優先順位が高いプロセッサ１０１、優先順位が低いプロセッサ１０２、プロセッサ１０１、１０２によりアクセスされる共有のメモリ１０３、プロセッサ１０２のアドレスを保持するアドレスレジスタ１０４、プロセッサ１０１若しくはプロセッサ１０２のデータを保持するデータレジスタ１０５、アドレスレジスタ１０４の保持アドレスとプロセッサ１０１のアクセス先のアドレスを比較する比較器１０６、比較器１０６の比較結果によりデータレジスタ１０５にプロセッサ１０１の書き込みデータを保持させるか、プロセッサ１０２の書き込みデータを保持させるかを切り替えるセレクタ１０７、プロセッサ１０１をメモリ１０３にアクセスさせると共に、プロセッサ１０１のメモリアクセスがない時、アドレスレジスタ１０４が保持するアドレスにデータレジスタ１０５が保持するデータをメモリ１０３に書き込む調停回路１０８、比較器１０６の比較結果によりメモリ１０３のデータまたはデータレジスタ１０５のデータを出力する出力切替器１０９を備える。
【００１７】
図２はメモリ共有システムの動作を示すタイミングチャートである。図２（Ａ）はメモリ共有システムを動作させるクロックである。プロセッサ１０１とプロセッサ１０２が図２（Ｂ）、（Ｃ）に示すようにタイミングＴ１で同時にメモリアクセス要求をした場合、調停回路１０８は優先順位の高いプロセッサ１０１のアドレスと書き込みデータに従い、プロセッサ１０１をメモリ１０３にアクセスさせて書き込み動作を行わせる（図２（Ｄ））。
【００１８】
一方、プロセッサ１０２のアクセス先のアドレスはアドレスレジスタ１０４に、プロセッサ１０２の書き込みデータはデータレジスタ１０５に保持される。この動作でプロセッサ１０２はタイミングＴ１で書き込み動作を行ったことになる（図２（Ｅ））。従って、プロセッサ１０２は以降のサイクルでメモリの空き待ちをせずに次の処理を実行することができる。
【００１９】
次のサイクルでも、プロセッサ１０１が図２（Ｂ）に示すようにタイミングＴ２でメモリ１０３にアクセス要求を出した場合、以下に述べるようなケースが考えられる。即ち、この時、プロセッサ１０１のメモリ１０３のアクセス先のアドレスと、アドレスレジスタ１０４に保持されているアドレスとが違う場合、プロセッサ１０１はタイミングＴ２でそのままメモリ１０３にアクセスする動作を行なう（図２（Ｄ））。
【００２０】
しかし、タイミングＴ２のプロセッサ１０１のアクセス要求が書き込み動作で、プロセッサ１０１のメモリ１０３のアクセス先のアドレスと、アドレスレジスタ１０４に保持されているアドレスとが一致した場合、比較器１０６はセレクタ１０７をプロセッサ１０１側に切り替えると共に、出力切替回路１０９をデータレジスタ１０５側に切り替える。
【００２１】
これにより、プロセッサ１０１のデータはメモリ１０３に書き込まれると同時に、セレクタ１０７を介してデータレジスタ１０５にも書き込まれる。従って、プロセッサ１０１はタイミングＴ２で、メモリアクセス動作を行うことなり（図２（Ｄ））、メモリ１０３はタイミングＴ２でアクセスされる（図２（Ｆ））。
【００２２】
一方、タイミングＴ２のプロセッサ１０１のアクセス要求が読み出し動作である場合、調停回路１０８はアクセス先のアドレスのメモリ１０３のデータではなく、データレジスタ１０５に保持されているデータを読み出して、このデータを出力切替器１０９を通してバス（ＢＵＳ）上に出力する。この場合も、プロセッサ１０１はタイミングＴ２でメモリアクセス動作を行うことなり（図２（Ｄ））、メモリ１０３はタイミングＴ２でアクセスされる（図２（Ｆ））。
【００２３】
次のタイミングＴ３の処理でプロセッサ１０１がメモリ１０３に対してアクセスしない場合（図２（Ｂ））、アドレスレジスタ１０４に保持されているメモリ１０３のアドレスにデータレジスタ１０５に保持されているデータが書き込まれる。
【００２４】
これにより、メモリ１０３は図２（Ｆ）で示すようにタイミングＴ３でアクセスされ、これにより、タイミングＴ１のプロセッサ１０２のメモリ１０３に対するアクセス要求時の書き込みデータ、或いはプロセッサ１０１で書き替えられた書き込みデータがメモリ１０３に書き込まれることになる。
【００２５】
なお、タイミングＴ２でプロセッサ１０１のメモリ１０３に対するアクセス要求がなかった場合、調停回路１０８はアドレスレジスタ１０４に保持されているメモリ１０３のアドレスにデータレジスタ１０５に保持されているデータを書き込む。これにより、メモリ１０３はタイミングＴ２でアクセスされ、タイミングＴ１のプロセッサ１０２のメモリ１０３に対するアクセス要求時のデータがメモリ１０３に書き込まれたことになる。
【００２６】
また、タイミングＴ１のプロセッサ１０２のメモリ１０３に対するアクセス要求が読み出しの場合、調停回路１０８はアドレスレジスタ１０４に保持されているアドレスのデータをメモリ１０３から読み出して出力切替部１０９を介してバス上に出力する。
【００２７】
本実施の形態によれば、優先順位が高いプロセッサ１０１と優先順位が低いプロセッサ１０２のメモリ１０３へのアクセス要求が同時に起こっても、プロセッサ１０２は読み出し動作の場合はアドレスのみをアドレスレジスタ１０４に書き込み、書き込み動作の場合はアドレスをアドレスレジスタ１０４に書き込みデータをデータレジスタ１０５に書き込んで、メモリ１０３へのアクセス動作をプロセッサ１０１のアクセスタイミングと同時に実行することができるため、プロセッサ１０２はメモリの空き待ち時間なく、次のタイミングで別の処理を行うことができ、優先順位が低いプロセッサ１０２のパフォーマンスを向上させることができる。
【００２８】
図３は、本発明の第２の実施の形態に係るメモリ共有システムの構成を示すブロック図である。第１の実施の形態と異なる点は、比較器３０６の比較結果がセレクタ３０７、出力切替器３０９の他に、アドレスレジスタ３０４およびデータレジスタ３０５にも入力され、レジスタ３０４、３０５の保持内容を削除できることにある。
【００２９】
次に本実施の形態の動作について説明する。前のサイクルで優先順位の高いプロセッサ３０１と優先順位の低いプロセッサ３０２のメモリアクセスが競合し、プロセッサ３０１は調停回路３０８によってメモリ３０３にアクセスしてデータの書き込み動作を行い、プロセッサ３０２はアクセス先のアドレスをアドレスレジスタ３０４に書き込み、データをデータレジスタ３０５に書き込み、書き込み動作を終了しているものとする。
【００３０】
今回のサイクルでプロセッサ３０１がメモリ３０３の同一アドレスに書き込み動作を要求する場合、調停回路３０８によってプロセッサ３０１はメモリ３０３にアクセスしてデータを書き込む。比較器３０６はアドレスレジスタ３０４のアドレスとプロセッサ３０１のアクセス先のアドレスが一致するため、アドレスレジスタ３０４の保持内容とデータレジスタ３０５の保持内容をクリアする。プロセッサ３０１によって新たなデータがメモリ３０３の前回と同一アドレスに書き込まれ、前回の同一アドレスへの書き込みデータが不要となるため、比較器３０６はアドレスレジスタ３０４のアドレスとデータレジスタ３０５のデータを削除する。
【００３１】
次のサイクルで、再びメモリアクセスが競合した場合、プロセッサ３０１は調停回路３０８によってメモリ３０３にアクセスしてデータの書き込み動作をする。プロセッサ３０２はアクセス先のアドレスをアドレスレジスタ３０４に書き込み、データをデータレジスタ３０５に書き込み、書き込み動作を終了する。
【００３２】
本実施の形態によれば、プロセッサ３０１がメモリ３０３に書き込み動作のアクセスをし、この時のアドレスがアドレスレジスタ３０４のアドレスと一致した場合、プロセッサ３０１がメモリ３０３に書き込み動作を行うと共に、比較器３０６がアドレスレジスタ３０４のアドレスとデータレジスタ３０５のデータを削除することにより、次のサイクルでメモリアクセスの競合が起きた場合でも、プロセッサ３０２はレジスタの空きを待つことなく、書き込み動作を行うことができる。
【００３３】
図４は、本発明の第３の実施の形態に係るメモリ共有システムの構成を示すブロック図である。本実施形態のメモリ共有システムは、優先順位の高いプロセッサ４０１のアクセス先のアドレスを保持する２個のアドレスレジスタ４０４ａ、４０４ｂと、優先順位の低いプロセッサ４０２のデータを保持する２個のデータレジスタ４０５ａ、４０５ｂとを有し、アドレスレジスタとデータレジスタを複数備える以外の構成は、第１の実施の形態と同様である。
【００３４】
次に本実施の形態の動作について図５のタイミングチャートを参照して説明する。図５において、（Ａ）はメモリ共有システムを動作させるクロックである。プロセッサ４０１とプロセッサ４０２が、（Ｂ）、（Ｃ）に示すようにタイミングＴ１で同時にメモリアクセス要求をした場合、第１の実施の形態と同様にプロセッサ４０１、４０２共に、（Ｄ）、（Ｅ）に示すようにタイミングＴ１でメモリアクセス動作を行う。その時、アドレスレジスタ４０４ａにプロセッサ４０２のアクセス先のアドレスが保持され、データレジスタ４０５ａにプロセッサ４０２のデータが保持される。
【００３５】
次にプロセッサ４０１とプロセッサ４０２が、（Ｂ）、（Ｃ）に示すようにタイミングＴ２で同時にメモリアクセス要求をした場合、この場合も第１の実施の形態と同様にプロセッサ４０１、４０２が、（Ｄ）、（Ｅ）に示すようにタイミングＴ２でメモリアクセス動作を行う。
【００３６】
その時、プロセッサ４０２は、アドレスレジスタ４０４ａとデータレジスタ４０５ａにはタイミングＴ１のアドレスとデータが保持されているので、アドレスレジスタ４０４ｂにプロセッサ４０２のアクセス先のアドレスを保持し、データレジスタ４０５ｂにプロセッサ４０２の書き込みデータを保持してメモリアクセス動作を行う。
【００３７】
次にプロセッサ４０１とプロセッサ４０２が、（Ｂ）に示すようにタイミングＴ３で同時にメモリアクセス要求をした場合、調停回路４０８によってプロセッサ４０１は、（Ｄ）に示すようにタイミングＴ３でメモリアクセス動作を行う。しかし、アドレスレジスタ４０４ａ、４０４ｂおよびデータレジスタ４０５ａ、４０５ｂに保持アドレスと保持データがあるため、プロセッサ４０２は、（Ｅ）に示すようにタイミングＴ３ではメモリアクセス動作をせずに、レジスタの空き待ち状態になる。
【００３８】
その後、調停回路４０８はタイミングＴ４で、メモリ４０３のアドレスレジスタ４０４ａに保持されているアドレスにアドレスレジスタ４０４ｂに保持されているデータを書き込んで、アドレスレジスタ４０４ａとデータレジスタ４０５ｂを空にする。
【００３９】
これにより、タイミングＴ１の時に生じたプロセッサ４０２のメモリアクセス要求に関わる書き込みデータをメモリ４０３に書き込んでアドレスレジスタ４０４ａとアドレスレジスタ４０４ｂを空にする。このため、タイミングＴ３で生じたプロセッサ４０２のメモリアクセス要求に対して、（Ｅ）に示すようにタイミングＴ５でプロセッサ４０２のメモリアクセス動作が行われる。
【００４０】
本実施の形態によれば、アドレスレジスタとデータレジスタをそれぞれ２個にすることにより、２回連続してプロセッサ４０１とプロセッサ４０２が同時にメモリアクセス要求をした場合でも、２回連続してプロセッサ４０１とプロセッサ４０２は同時にメモリアクセス動作を行うことができる。従って、アドレスレジスタとデータレジスタをそれぞれｎ個にすることにより、ｎ回連続してプロセッサ４０１とプロセッサ４０２が同時にメモリアクセス要求をした場合でも、ｎ回連続してプロセッサ４０１とプロセッサ４０２は同時にメモリアクセス動作を行うことができ、プロセッサ４０２のパフォーマンスを更に一層向上させることができる。
【００４１】
【発明の効果】
以上説明したように、本発明によれば、優先順位の高いプロセッサのメモリアクセスが発生している場合でも、優先順位の低いプロセッサはアクセス先のアドレスおよび書き込みデータを保持させて書き込み処理を終了させることでプロセッサの待ち時間を減らしプロセッサのパフォーマンスを向上させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るメモリ共有システムの構成を示すブロック図である。
【図２】図１に示したシステムにおける２個のプロセッサのメモリアクセス動作を示すタイミングチャートである。
【図３】本発明の第２の実施の形態に係るメモリ共有システムの構成を示すブロック図である。
【図４】本発明の第３の実施の形態に係るメモリ共有システムの構成を示すブロック図である。
【図５】図４に示したシステムにおける２個のプロセッサのメモリアクセス動作を示すタイミングチャートである。
【図６】従来のメモリ共有システムの構成を示すブロック図である。
【図７】図６に示したシステムにおける２個のプロセッサのメモリアクセス動作を示すタイミングチャートである。
【符号の説明】
１０１、１０２、３０１、３０２、４０１、４０２　プロセッサ
１０３、３０３、４０３　メモリ
１０４、３０４、４０４ａ、４０４ｂ　アドレスレジスタ
１０５、３０５、４０５ａ、４０５ｂ　データレジスタ
１０６、３０６、４０６　比較器
１０７、３０７、４０７　セレクタ
１０８、３０８、４０８　調停回路
１０９、３０９、４０９　出力切替器
【図１】
2004062414.tif 000003
【図２】
2004062414.tif 000004
【図３】
2004062414.tif 000005
【図４】
2004062414.tif 000006
【図５】
2004062414.tif 000007
【図６】
2004062414.tif 000008
【図７】
2004062414.tif 000009