(57)【要約】【課題】簡潔な構成で、処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を確保する。【解決手段】アドレス格納部１３１はアトミックオペレーションでアクセスされるメインメモリ３のアドレスを格納する。データ格納部１３２にはメインメモリ３から読み込まれたデータやＣＰＵ１００によるアトミックオペレーションの処理結果のデータを格納する。割り込み検出フラグ１３４は割り込み復帰命令が実行されたときにセットされる。メモリアクセス制御部１３３は、アトミックオペレーションが終了するときに、割り込み検出フラグ１３４等に応じて判定回路１３９から出力されるアトミック性保証信号に基づき、処理結果データのメインメモリ３への書き込みを停止する。【選択図】図１
2006059196.tif 000002
【特許請求の範囲】
【請求項１】
排他制御された状態で、メモリにおける所定のアクセスアドレスから読み出しデータを読み出し、これに基づいて所定の処理が行われた処理結果データを上記アクセスアドレスに書き込む排他アクセスが行われるプロセッサであって、
命令を実行し、上記所定の処理を行うＣＰＵと、
上記ＣＰＵからの指定されたアクセスアドレスを保持するアドレス保持手段と、
上記読み出しデータ、および処理結果データを保持するデータ保持手段と、
上記メモリにおける上記アクセスアドレスに対して、上記読み出しデータの読み出し、および処理結果データの書き込みを行うアクセス制御手段と、
上記読み出しデータの読み出しから処理結果データの書き込みまでの間に、少なくとも割り込み、またはメモリ管理ユニット例外が生じたことを示す排他性阻害情報を保持する状態情報保持手段と、
を備え、
上記アクセス制御手段は、上記状態情報保持手段に排他性阻害情報が保持されている場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項２】
請求項１のプロセッサであって、
上記アクセス制御手段は、ＣＰＵによりアドレス保持手段にアクセスアドレスが格納されるのに応じて読み出しデータの読み出しを行い、データ保持手段に処理結果データが格納されるのに応じて上記処理結果データの書き込みまたは書き込み停止を行うように構成されていることを特徴とするプロセッサ。
【請求項３】
請求項１のプロセッサであって、
上記アクセス制御手段は、割り込み、およびメモリ管理ユニット例外が何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項４】
請求項１のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込み処理が行われた後に、割り込み前の処理に戻るための命令が実行されたことを示す情報であることを特徴とするプロセッサ。
【請求項５】
請求項１のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込みが発生したことを示す情報であるとともに、
上記排他性阻害情報は、さらに、排他アクセスが行われたことを示す情報を含み、
上記アクセス制御手段は、割り込みの発生、および排他アクセスが何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項６】
請求項１のプロセッサであって、
さらに、上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段を備えるとともに、
上記排他性阻害情報は、上記比較手段によってアドレスの一致が検出されたことを示す情報を含み、
上記アクセス制御手段は、上記アドレスの一致が検出された場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項７】
請求項１のプロセッサであって、さらに、
上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段と、
上記比較手段によって上記アドレスの一致が検出された場合に、上記他のプロセッサによるアクセスを阻止する他プロセッサアクセス制御手段と、
を備えたことを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み処理や他のプロセッサの動作などに対して、アトミックオペレーションの実行が可能なプロセッサに関するものである。
【背景技術】
【０００２】
一般に、複数のプロセッサが共有バスを介してメインメモリと接続されるマルチプロセッサシステムにおいては、データの一貫性を保つために排他制御を行う必要がある。また、割り込み処理などによってデータの一貫性が損なわれないようにするためにも、排他制御を行う必要がある。すなわち、メモリからデータがロードされた後、所定の処理が行われて、その結果がストアされるまでの一連の動作を排他的に行うアトミックオペレーションが必要とされる。
【０００３】
アトミックオペレーションを可能にする技術としては、例えば、load-linked/store-conditional命令などと呼ばれるアトミックオペレーションを行うための専用命令をプロセッサが実行できるようにする技術が用いられている。詳しくは、上記命令では、データをロードした時にそのロードアドレスを保持しておき、処理結果をストアするまでの期間に他のプロセッサによって上記アドレスまたは近傍の領域に書き込みが行われたり、割り込みや例外処理が発生した場合には、ストアを行わずに再度データのロードからの動作を繰り返すようになっている。
【０００４】
また、上記のような専用命令を持たないプロセッサでは、データをロードしてからストアするまでの期間、共有バスを他のプロセッサなどが一時的に使用できない状態にロック（バスロック）したりすることで、アトミックオペレーションを実現する技術も知られている。
【０００５】
また、例えば、該当プロセッサがアクセスしたいアドレスのデータが該当プロセッサに対応するキャッシュメモリに存在し、かつ他のプロセッサに対応するキャッシュメモリのいずれにも存在しない場合において、該当プロセッサがアクセスしたいアドレスを保持するタグメモリと共有バスのアドレスを比較し、一致した場合に該当アドレスへの他のプロセッサからのアクセスを保留することで、バスロック自体は行わずに、該当アドレス以外のアクセスは許可できるようにして、排他制御の高速を図る技術も提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平８−１６１２２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のようにアトミックオペレーションのための専用命令を実行可能にすることは、命令セットの増加やアーキテクチャの複雑化を招くことになるため、適用が容易ではない。特に、汎用のプロセッサやＣＰＵコアに適用することは困難である。
【０００７】
また、何れかのプロセッサがアトミックオペレーションを行う際に他のプロセッサ等による全てのメモリアクセス（データ転送）に対してバスロックをする技術では、転送性能が低下して、マルチプロセッサなどとしての処理能力が低下しがちであるという課題があった。
【０００８】
さらに、特許文献１のような構成においては、特殊なキャッシュメモリを構成する必要があるため、回路規模が大きくなるとともに、汎用のプロセッサに適用することなども困難であるという問題点を有していた。
【０００９】
本発明は、上記の点に鑑み、専用の命令を用いたり、バスロックしたりすることなく、また、特殊なキャッシュメモリを設けたりすることなく排他制御を行えるようにして、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できるようにすることを課題としている。
【課題を解決するための手段】
【００１０】
上記の点に鑑み、請求項１の発明は、
排他制御された状態で、メモリにおける所定のアクセスアドレスから読み出しデータを読み出し、これに基づいて所定の処理が行われた処理結果データを上記アクセスアドレスに書き込む排他アクセスが行われるプロセッサであって、
命令を実行し、上記所定の処理を行うＣＰＵと、
上記ＣＰＵからの指定されたアクセスアドレスを保持するアドレス保持手段と、
上記読み出しデータ、および処理結果データを保持するデータ保持手段と、
上記メモリにおける上記アクセスアドレスに対して、上記読み出しデータの読み出し、および処理結果データの書き込みを行うアクセス制御手段と、
上記読み出しデータの読み出しから処理結果データの書き込みまでの間に、少なくとも割り込み、またはメモリ管理ユニット例外が生じたことを示す排他性阻害情報を保持する状態情報保持手段と、
を備え、
上記アクセス制御手段は、上記状態情報保持手段に排他性阻害情報が保持されている場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とする。
【００１１】
また、請求項２の発明は、
請求項１のプロセッサであって、
上記アクセス制御手段は、ＣＰＵによりアドレス保持手段にアクセスアドレスが格納されるのに応じて読み出しデータの読み出しを行い、データ保持手段に処理結果データが格納されるのに応じて上記処理結果データの書き込みまたは書き込み停止を行うように構成されていることを特徴とする。
【００１２】
また、請求項３の発明は、
請求項１のプロセッサであって、
上記アクセス制御手段は、割り込み、およびメモリ管理ユニット例外が何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とする。
【００１３】
これらにより、割り込み処理等の有無に応じて、排他制御性の保証されない処理結果データが書き込まれることが抑制される。それゆえ、専用の命令を用いたり、バスロックしたりすることなく、排他制御性を確保することができる。
【００１４】
また、請求項４の発明は、
請求項１のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込み処理が行われた後に、割り込み前の処理に戻るための命令が実行されたことを示す情報であることを特徴とする。
【００１５】
これにより、割り込み処理が終了するときの情報に基づいて割り込みの有無が判断できるので、割り込み処理中に、さらに排他アクセスが行われた場合でも、確実に割り込みの有無が判断できる。
【００１６】
また、請求項５の発明は、
請求項１のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込みが発生したことを示す情報であるとともに、
上記排他性阻害情報は、さらに、排他アクセスが行われたことを示す情報を含み、
上記アクセス制御手段は、割り込みの発生、および排他アクセスが何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とする。
【００１７】
これにより、割り込み信号などによって割り込みの発生が容易に検出できるとともに、割り込み処理中にさらに排他アクセスが行われた場合には、そのことを示す情報によって、実質的に割り込みの有無が判断できるので、やはり、確実に割り込みの有無が判断できる。
【００１８】
また、請求項６の発明は、
請求項１のプロセッサであって、
さらに、上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段を備えるとともに、
上記排他性阻害情報は、上記比較手段によってアドレスの一致が検出されたことを示す情報を含み、
上記アクセス制御手段は、上記アドレスの一致が検出された場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とする。
【００１９】
これにより、他のプロセッサとのアクセス競合が生じた場合には、前記割り込み処理等の場合と同様に書き込みの停止が行われるので、他のプロセッサによる処理能力を低下させることなく、排他アクセスを行うことができる。
【００２０】
また、請求項７の発明は、
請求項１のプロセッサであって、さらに、
上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段と、
上記比較手段によって上記アドレスの一致が検出された場合に、上記他のプロセッサによるアクセスを阻止する他プロセッサアクセス制御手段と、
を備えたことを特徴とする。
【００２１】
これにより、他のプロセッサとのアクセス競合が生じた場合には、他のプロセッサによるアクセスが阻止されるので、当該プロセッサによる処理能力を低下させることなく、排他アクセスを行うことができる。
【発明の効果】
【００２２】
本発明によれば、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００２４】
《発明の実施形態１》
発明の実施形態１として、ＭＭＵ（メモリ管理ユニット）を備え、アトミックオペレーションの実行中に割り込みまたはＭＭＵ例外が発生した場合に、アトミック性が保証されなかったと判定してアトミックオペレーションが実行し直されるプロセッサの例を説明する。
【００２５】
図１は、アトミックオペレーションの実行が可能な複数のプロセッサ１…を有するマルチプロセッサシステムの構成を示すブロック図である。このマルチプロセッサシステムは、上記プロセッサ１…の他に、共有バス２と、メインメモリ３と、メインメモリ制御部４とを備えて構成されている。各プロセッサ１は、ＣＰＵ１００、ＭＭＵ１１０、キャッシュ１２０、およびアトミックオペレーション制御部１３０を備えて構成されている。
【００２６】
上記アトミックオペレーション制御部１３０は、アドレス格納部１３１、データ格納部１３２、メモリアクセス制御部１３３、割り込み検出フラグ１３４、ＭＭＵ例外検出フラグ１３５、および判定回路１３９を備えている。
【００２７】
アドレス格納部１３１は、アトミックオペレーションでアクセスされるメインメモリ３のアドレスであるアトミックオペレーション対象アドレスを格納するもので、ＣＰＵ１００により例えばＩ／Ｏバスを介してアドレスが格納されることによって、アトミックオペレーションの開始が示され、アトミックオペレーション開始信号を出力するようになっている。
【００２８】
データ格納部１３２は、共有バス２を介してメインメモリ３との間でデータの読み書きを行うようになっている。また、例えばＩ／Ｏバスを介してＣＰＵ１００と接続され、メインメモリ３から読み込まれたデータがＣＰＵ１００に取り込まれるようになっている。さらに、ＣＰＵ１００によりアトミックオペレーションの処理結果のデータが格納されることによってアトミックオペレーションの終了が示され、アトミックオペレーション終了信号を出力するとともに、格納されたデータをメインメモリ３に書き込むようになっている。
【００２９】
メモリアクセス制御部１３３は、アドレス格納部１３１から出力される上記アトミックオペレーション開始信号に応じて、後述するようにフラグクリア信号、アドレス切り替え信号、アトミックオペレーション実行中信号、およびデータ格納信号等を出力するようになっている。また、データ格納部１３２から出力される上記アトミックオペレーション終了信号に応じて、判定回路１３９から出力されるアトミック性保証信号に基づき、アトミックオペレーション実行中信号の停止などを行うようになっている。
【００３０】
割り込み検出フラグ１３４は、メモリアクセス制御部１３３から出力されるフラグクリア信号に応じてクリアされ、ＣＰＵ１００が割り込み復帰命令を実行したときに出力する割り込み復帰信号に応じてセットされるようになっている。
【００３１】
ＭＭＵ例外検出フラグ１３５は、同様にフラグクリア信号に応じてクリアされる一方、ＭＭＵ１１０から出力されるＭＭＵ例外信号に応じてセットされるようになっている。
【００３２】
判定回路１３９は、割り込み検出フラグ１３４およびＭＭＵ例外検出フラグ１３５が何れもセットされていない場合に、アトミック性保証信号を出力するようになっている。
【００３３】
また、メインメモリ制御部４は、具体的には例えば図２に示すように、各プロセッサ１に対応する比較器４０１とＡＮＤ回路４０２と、およびアクセスロック制御部４０３とを備えて構成されている。比較器４０１は、各プロセッサ１のアドレス格納部１３１に格納されているアトミックオペレーション対象アドレスと、何れかのプロセッサ１が実際にアクセスしようとしているアドレスとを比較するようになっている。ＡＮＤ回路４０２は、対応するプロセッサ１のメモリアクセス制御部１３３からアトミックオペレーション実行中信号が出力されているときに上記比較器４０１によってアドレスの一致が検出されると、一致信号を出力するようになっている。また、アクセスロック制御部４０３は、上記ＡＮＤ回路４０２から一致信号が出力され、かつ、アトミックオペレーション実行中信号を出力しているプロセッサ１とアドレスを出力しているプロセッサ１（メインメモリ３にアクセスしようとしているプロセッサ１）とが異なる場合に、ロック信号を出力してメインメモリ３へのアクセスを保留させるようになっている。ここで、上記アドレスを出力しているプロセッサ１の判別は、例えば図示しないアクセス権獲得信号などによって行われる。
【００３４】
上記のように構成されたプロセッサシステムでアトミックオペレーションが行われる場合の動作について、まず、プロセッサ１内のＣＰＵ１００によって例えば図３に（Ｓ１０１）〜（Ｓ１０８）で示すようなプログラムが実行される場合の動作を説明する。
【００３５】
（Ｓ１０１、Ｓ１０２）  ＣＰＵ１００は、例えば、Ｉ／Ｏバスを介して、Ｉ／Ｏアドレスが“ＡＡＲ”であるアトミックオペレーション制御部１３０のアドレス格納部１３１に、アトミックオペレーション対象アドレス“ＡＤ”を格納する。
【００３６】
（Ｓ１０３）  上記アドレスの格納に応じて、アトミックオペレーション制御部１３０では、後述するようにメインメモリ３のアドレス“ＡＤ”からデータが読み出され、例えばＩ／Ｏアドレスが“ＡＤＲ”であるデータ格納部１３２に格納される。そこで、ＣＰＵ１００はＩ／Ｏバスを介してデータ格納部１３２から上記データを取り込み、例えばレジスタ“ｄ１”に保持する。
【００３７】
（Ｓ１０４）  上記保持されたデータに対して所定の処理を実行し、処理結果のデータをレジスタ再度“ｄ１”に保持する。
【００３８】
（Ｓ１０５）  上記処理結果のデータをＩ／Ｏバスを介してデータ格納部１３２に格納する。
【００３９】
（Ｓ１０６〜Ｓ１０８）  割り込み検出フラグ１３４およびＭＭＵ例外検出フラグ１３５をステータスレジスタ“ＡＳＲ”として参照し、これらのフラグが共にクリアされたままであれば、アトミックオペレーションを完了して次の処理に移る一方、少なくとも何れか一方がセットされていれば、（Ｓ１０１）に戻って、再度、メインメモリ３からのデータの読み込みや処理（アトミックオペレーション）を繰り返す。
【００４０】
すなわち、アトミックオペレーションの実行中に割り込みまたはＭＭＵ例外が発生すると、例えば同図に併せて示すように、割り込み処理（Ｓ１１１）が行われた後に割り込み復帰命令が実行（Ｓ１１２）された際、またはＭＭＵ例外処理（Ｓ１２１）が行われる際に、ＣＰＵ１００またはＭＭＵ１１０から割り込み復帰信号またはＭＭＵ例外信号が出力され、これらに応じ、割り込み検出フラグ１３４またはＭＭＵ例外検出フラグ１３５がセットされる。
【００４１】
そして、割り込みが発生していれば、メインメモリ３のアドレス“ＡＤ”に記憶されるデータが更新された可能性があり、また、ＭＭＵ例外が発生していれば、メインメモリ３から適切な読み出しがなされていない可能性があり、アトミック性が保証されなかったり適切な処理が行われていない可能性があるので、上記のようにアトミックオペレーションが繰り返されることによって、アトミック性の保証された適切な処理が行われる。
【００４２】
また、アトミックオペレーションが行われている間は、他のプロセッサ１による同じアドレスへのアクセスは保留されるので、やはりアトミック性は保証される一方、他のアドレスへのアクセスは保留されないので、上記他のプロセッサ１の処理能力の低下を小さく抑えることができる。
【００４３】
次に、ＣＰＵ１００による上記のようなプログラムの実行に対応して、アトミックオペレーション制御部１３０で行われる動作（Ｓ１３１）〜（Ｓ１３９）を説明する。ここで、同ステップ（Ｓ１３１）〜（Ｓ１３９）はアトミックオペレーション制御部１３０の各部の動作を模式的に示すもので、同図に示すのと異なる順序や同時に並行した動作が行われるなどしてもよい。
【００４４】
（Ｓ１３１）  メモリアクセス制御部１３３は、アドレス格納部１３１からアトミックオペレーション開始信号が出力されるのを監視する。すなわち、ＣＰＵ１００によりＩ／Ｏバスを介してアドレス格納部１３１にアトミックオペレーション対象アドレスが格納されるのを待つ。
【００４５】
（Ｓ１３２〜Ｓ１３５）  アドレスが格納されると、メモリアクセス制御部１３３は、フラグクリア信号、アドレス切り替え信号、アトミックオペレーション実行中信号、およびデータ格納信号を出力する。これに応じて、割り込み検出フラグ１３４およびＭＭＵ例外検出フラグ１３５は保持する値をクリアし、ＭＭＵ１１０はアドレス格納部１３１から出力されるアドレスを出力し、メインメモリ制御部４は他のプロセッサが上記アトミックオペレーション対象アドレスにアクセスするのを監視してアクセスを保留させる（ロックする）ようになり、データ格納部１３２は、ＭＭＵ１１０から出力されるアドレスに応じてメインメモリ３から読み出されるデータを格納する。（なお、キャッシュ１２０が有効である場合には、キャッシュ１２０から図示しないデータ線を介して出力されるデータが格納される。）そこで、ＣＰＵ１００によって、前記のように上記格納データに基づいた処理が行われる。
【００４６】
（Ｓ１３６）  次に、メモリアクセス制御部１３３は、データ格納部１３２からアトミックオペレーション終了信号が出力されるのを監視する。すなわち、ＣＰＵ１００によるデータ処理が行われてデータ格納部１３２に処理結果のデータが格納されるのを待つ。
【００４７】
（Ｓ１３７）  処理結果のデータが格納されると、メモリアクセス制御部１３３は、ＣＰＵ１００の処理についてアトミック性が保証されているかどうか、すなわち割り込み検出フラグ１３４およびＭＭＵ例外検出フラグ１３５が共にクリアされていて、判定回路１３９からアトミック性保証信号が出力されているかどうかを判定する。そして、アトミック性が保証されていなければ、データ格納部１３２に格納されたデータは、メインメモリ３における更新前のデータに基づくものである可能性があるので、メインメモリ３に書き込まずに（Ｓ１３１）に戻る。すなわち、ＣＰＵ１００では前記のようにアトミックオペレーションが繰り返されるのに対応して、アトミックオペレーション制御部１３０では（Ｓ１３１）以降の動作が繰り返される。
【００４８】
（Ｓ１３８、Ｓ１３９）  一方、アトミック性保証信号が出力されている場合には、データ格納部１３２に格納されたデータが、メインメモリ３における、アドレス格納部１３１に格納されている元のアドレスの領域に書き込まれる。また、アトミックオペレーション実行中信号が停止され、上記アドレスへの他のプロセッサ１からのアクセスができるようになる。
【００４９】
上記のように、アトミックオペレーション制御部１３０を設けることによって、ＣＰＵ１００がアトミックオペレーション専用の命令などを実行しなくても、割り込みなどが発生した場合にアトミックオペレーションが繰り返されることによってアトミック性の保証された処理を行わせることができる。また、それゆえ、アトミックオペレーションの実行の有無に係わらず割り込み処理を行わせることができるので、迅速性を必要とする処理を行わせることなども容易にできる。
【００５０】
また、本実施形態１では、割り込みが発生したことは割り込み復帰命令が実行されることによって検出されるため、後述する実施形態２で説明するようにアトミックオペレーションの実行中に生じた割り込み処理中でさらにアトミックオペレーションが行われたかどうかに係わらず、割り込みの発生は確実に検出され、アトミック性が保証されないと判定される。
【００５１】
《発明の実施形態１の変形例》
上記の例では、プロセッサ１にＭＭＵ１１０が設けられている例を示したが、ＭＭＵ１１０が設けられていない場合でも、判定回路１３９が割り込み検出フラグ１３４に基づいてアトミック性保証信号を出力するようにすれば、割り込みの有無に応じてアトミック性の保証された処理を行わせることができる。
【００５２】
また、キャッシュ１２０は設けなくても、上記のような効果は同じように得られる。
【００５３】
また、これらの点については、以下の他の実施形態においても同様に適用可能である。
【００５４】
《発明の実施形態２》
アトミックオペレーションの実行中に割り込みが生じたことを割り込み信号によって検出するプロセッサの例を説明する。このような検出は、ＣＰＵに入力される割り込み信号などをそのまま利用することができるので、一般に、実施形態１のように割り込み復帰命令が実行されたことを検出するよりも容易に行うことができる。なお、以下の実施形態において、前記実施形態１等と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００５５】
本実施形態２のプロセッサ１は、図４に示すようにアトミックオペレーション制御部２３０を備えている。このアトミックオペレーション制御部２３０は、実施形態１のアトミックオペレーション制御部１３０と比べて、割り込み検出フラグ１３４に代えて割り込み検出フラグ２３４を備えるとともに、アトミックオペレーション検出フラグ２３６を備えている点が異なっている。
【００５６】
上記割り込み検出フラグ２３４は、ＣＰＵ１００に入力されるのと同じ割り込み信号が入力されることによってセットされるようになっている。
【００５７】
アトミックオペレーション検出フラグ２３６は、他のフラグと同様に、アトミックオペレーションの実行が開始される際のフラグクリア信号によってクリアされる一方、アトミックオペレーションの終了時にデータ格納部１３２から出力されるアトミックオペレーション終了信号によってセットされるようになっている。
【００５８】
上記のように構成されたプロセッサ１の動作は、図５に示すように、実施形態１と比べて以下の点が異なっている。すなわち、（Ｓ１３２）に代えて、（Ｓ２３２）で、割り込み検出フラグ２３４と、ＭＭＵ例外検出フラグ１３５と、アトミックオペレーション検出フラグ２３６とがクリアされる。また、割り込み検出フラグ２３４は、割り込み処理が開始される時点でセットされる。さらに、（Ｓ１０６）および（Ｓ１３７）に代えて、（Ｓ２０６）および（Ｓ２３７）で、アトミック性が保証されるかどうかの判定が上記３つのフラグに基づいて行われる。つまり、何れもセットされていない場合に、アトミック性が保証されていると判定される。また、アトミック性が保証されていると判定された場合に、（Ｓ２４１）でアトミックオペレーション検出フラグ２３６がセットされる。
【００５９】
上記のように、割り込み信号によって割り込み検出フラグ２３４をセットすることにより割り込みが生じたことを検出する場合、割り込み処理中でさらにアトミックオペレーションが行われると、そのアトミックオペレーションが開始される際に（そのアトミックオペレーション中の割り込み発生を検出するために）割り込み検出フラグ２３４はクリアされてしまうことになる。そこで、アトミックオペレーションが行われる場合にアトミックオペレーション検出フラグ２３６がセットされるようにすることにより、割り込み検出フラグ２３４がクリアされたとしてもアトミックオペレーション検出フラグ２３６がセットされることによって、アトミック性が保証されないと判定することができる。
【００６０】
《発明の実施形態３》
実施形態３のプロセッサ１は、アトミックオペレーションが行われる場合に、他のプロセッサ１によるアクセスをロックせずに行わせ、割り込みがあった場合などと同じようにアトミックオペレーションを再度実行させるように構成されている。具体的には、図６に示すように、アトミックオペレーション制御部３３０には、アトミックオペレーション対象アドレスと、他のプロセッサ１によってアクセスされるアドレスとを比較する比較器３３７、および上記アドレスが一致した場合にセットされるバスアクセス競合検出フラグ３３８が設けられている。また、メモリアクセス制御部３３３は、アトミックオペレーション実行中信号を出力しない点だけが、実施形態１のメモリアクセス制御部１３３と異なっている。
【００６１】
このプロセッサ１においては、図７に示すように、（Ｓ３３２）で、上記バスアクセス競合検出フラグ３３８もクリアされ、（Ｓ３４１）で競合バスアクセスが生じたときにセットされ、（Ｓ３０６）および（Ｓ３３７）では、上記バスアクセス競合検出フラグ３３８がセットされている場合にも、アトミック性は保証されないと判定される。（実施形態１の（Ｓ１３４）（Ｓ１３９）のように実行中信号の出力や停止は行われない。）
このように他のプロセッサ１によるアクセスを優先させることにより、バスの転送性能を維持することが容易にできる。
【００６２】
《発明の実施形態４》
実施形態２と同様に割り込み信号によって割り込みの発生を検出する構成と、実施形態３と同様に他のプロセッサ１によるメモリアクセスを優先させる構成とを組み合わせてもよい。具体的には、図８に示すように、アトミックオペレーション制御部４３０は、割り込み検出フラグ２３４と、アトミックオペレーション検出フラグ２３６と、メモリアクセス制御部３３３と、比較器３３７と、バスアクセス競合検出フラグ３３８とを備えて構成され、図９に示すような動作が行われる。
【００６３】
すなわち、（Ｓ４３２）では、割り込み検出フラグ２３４、ＭＭＵ例外検出フラグ１３５、アトミックオペレーション検出フラグ２３６、およびバスアクセス競合検出フラグ３３８がクリアされる。また、（Ｓ４０６）および（Ｓ４３７）では、上記割り込み検出フラグ２３４、ＭＭＵ例外検出フラグ１３５、アトミックオペレーション検出フラグ２３６、およびバスアクセス競合検出フラグ３３８が、何れもクリアされたままである場合に、アトミック性が保証されていると判定され、処理結果のデータがメインメモリ３に書き込まれてアトミックオペレーションが完了する一方、何れかがセットされていれば、（Ｓ１０１）に戻って、再度、メインメモリ３からのデータの読み込みや処理（アトミックオペレーション）が繰り返される。
【産業上の利用可能性】
【００６４】
本発明にかかるプロセッサは、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できる効果を有し、割り込み処理や他のプロセッサの動作などに対して、アトミックオペレーションの実行が可能なプロセッサ等として有用である。
【図面の簡単な説明】
【００６５】
【図１】実施形態１のプロセッサシステムの構成を示すブロック図である。
【図２】同、メインメモリ制御部４の構成を示すブロック図である。
【図３】同、各部の動作を示すフローチャートである。
【図４】実施形態２のプロセッサシステムの構成を示すブロック図である。
【図５】同、各部の動作を示すフローチャートである。
【図６】実施形態３のプロセッサシステムの構成を示すブロック図である。
【図７】同、各部の動作を示すフローチャートである。
【図８】実施形態４のプロセッサシステムの構成を示すブロック図である。
【図９】同、各部の動作を示すフローチャートである。
【符号の説明】
【００６６】
１      プロセッサ
２      共有バス
３      メインメモリ
４      メインメモリ制御部
１００      ＣＰＵ
１１０      ＭＭＵ
１２０      キャッシュ
１３０      アトミックオペレーション制御部
１３１      アドレス格納部
１３２      データ格納部
１３３      メモリアクセス制御部
１３４      割り込み検出フラグ
１３５      ＭＭＵ例外検出フラグ
１３９      判定回路
２３０      アトミックオペレーション制御部
２３４      割り込み検出フラグ
２３６      アトミックオペレーション検出フラグ
３３０      アトミックオペレーション制御部
３３３      メモリアクセス制御部
３３７      比較器
３３８      バスアクセス競合検出フラグ
４０１      比較器
４０２      ＡＮＤ回路
４０３      アクセスロック制御部
４３０      アトミックオペレーション制御部
【図１】
2006059196.tif 000003
【図２】
2006059196.tif 000004
【図３】
2006059196.tif 000005
【図４】
2006059196.tif 000006
【図５】
2006059196.tif 000007
【図６】
2006059196.tif 000008
【図７】
2006059196.tif 000009
【図８】
2006059196.tif 000010
【図９】
2006059196.tif 000011