説明

プロセッサ

【課題】簡潔な構成で、処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を確保する。
【解決手段】アドレス格納部131はアトミックオペレーションでアクセスされるメインメモリ3のアドレスを格納する。データ格納部132にはメインメモリ3から読み込まれたデータやCPU100によるアトミックオペレーションの処理結果のデータを格納する。割り込み検出フラグ134は割り込み復帰命令が実行されたときにセットされる。メモリアクセス制御部133は、アトミックオペレーションが終了するときに、割り込み検出フラグ134等に応じて判定回路139から出力されるアトミック性保証信号に基づき、処理結果データのメインメモリ3への書き込みを停止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、割り込み処理や他のプロセッサの動作などに対して、アトミックオペレーションの実行が可能なプロセッサに関するものである。
【背景技術】
【0002】
一般に、複数のプロセッサが共有バスを介してメインメモリと接続されるマルチプロセッサシステムにおいては、データの一貫性を保つために排他制御を行う必要がある。また、割り込み処理などによってデータの一貫性が損なわれないようにするためにも、排他制御を行う必要がある。すなわち、メモリからデータがロードされた後、所定の処理が行われて、その結果がストアされるまでの一連の動作を排他的に行うアトミックオペレーションが必要とされる。
【0003】
アトミックオペレーションを可能にする技術としては、例えば、load-linked/store-conditional命令などと呼ばれるアトミックオペレーションを行うための専用命令をプロセッサが実行できるようにする技術が用いられている。詳しくは、上記命令では、データをロードした時にそのロードアドレスを保持しておき、処理結果をストアするまでの期間に他のプロセッサによって上記アドレスまたは近傍の領域に書き込みが行われたり、割り込みや例外処理が発生した場合には、ストアを行わずに再度データのロードからの動作を繰り返すようになっている。
【0004】
また、上記のような専用命令を持たないプロセッサでは、データをロードしてからストアするまでの期間、共有バスを他のプロセッサなどが一時的に使用できない状態にロック(バスロック)したりすることで、アトミックオペレーションを実現する技術も知られている。
【0005】
また、例えば、該当プロセッサがアクセスしたいアドレスのデータが該当プロセッサに対応するキャッシュメモリに存在し、かつ他のプロセッサに対応するキャッシュメモリのいずれにも存在しない場合において、該当プロセッサがアクセスしたいアドレスを保持するタグメモリと共有バスのアドレスを比較し、一致した場合に該当アドレスへの他のプロセッサからのアクセスを保留することで、バスロック自体は行わずに、該当アドレス以外のアクセスは許可できるようにして、排他制御の高速を図る技術も提案されている(例えば、特許文献1参照。)。
【特許文献1】特開平8−161228号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記のようにアトミックオペレーションのための専用命令を実行可能にすることは、命令セットの増加やアーキテクチャの複雑化を招くことになるため、適用が容易ではない。特に、汎用のプロセッサやCPUコアに適用することは困難である。
【0007】
また、何れかのプロセッサがアトミックオペレーションを行う際に他のプロセッサ等による全てのメモリアクセス(データ転送)に対してバスロックをする技術では、転送性能が低下して、マルチプロセッサなどとしての処理能力が低下しがちであるという課題があった。
【0008】
さらに、特許文献1のような構成においては、特殊なキャッシュメモリを構成する必要があるため、回路規模が大きくなるとともに、汎用のプロセッサに適用することなども困難であるという問題点を有していた。
【0009】
本発明は、上記の点に鑑み、専用の命令を用いたり、バスロックしたりすることなく、また、特殊なキャッシュメモリを設けたりすることなく排他制御を行えるようにして、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できるようにすることを課題としている。
【課題を解決するための手段】
【0010】
上記の点に鑑み、請求項1の発明は、
排他制御された状態で、メモリにおける所定のアクセスアドレスから読み出しデータを読み出し、これに基づいて所定の処理が行われた処理結果データを上記アクセスアドレスに書き込む排他アクセスが行われるプロセッサであって、
命令を実行し、上記所定の処理を行うCPUと、
上記CPUからの指定されたアクセスアドレスを保持するアドレス保持手段と、
上記読み出しデータ、および処理結果データを保持するデータ保持手段と、
上記メモリにおける上記アクセスアドレスに対して、上記読み出しデータの読み出し、および処理結果データの書き込みを行うアクセス制御手段と、
上記読み出しデータの読み出しから処理結果データの書き込みまでの間に、少なくとも割り込み、またはメモリ管理ユニット例外が生じたことを示す排他性阻害情報を保持する状態情報保持手段と、
を備え、
上記アクセス制御手段は、上記状態情報保持手段に排他性阻害情報が保持されている場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とする。
【0011】
また、請求項2の発明は、
請求項1のプロセッサであって、
上記アクセス制御手段は、CPUによりアドレス保持手段にアクセスアドレスが格納されるのに応じて読み出しデータの読み出しを行い、データ保持手段に処理結果データが格納されるのに応じて上記処理結果データの書き込みまたは書き込み停止を行うように構成されていることを特徴とする。
【0012】
また、請求項3の発明は、
請求項1のプロセッサであって、
上記アクセス制御手段は、割り込み、およびメモリ管理ユニット例外が何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とする。
【0013】
これらにより、割り込み処理等の有無に応じて、排他制御性の保証されない処理結果データが書き込まれることが抑制される。それゆえ、専用の命令を用いたり、バスロックしたりすることなく、排他制御性を確保することができる。
【0014】
また、請求項4の発明は、
請求項1のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込み処理が行われた後に、割り込み前の処理に戻るための命令が実行されたことを示す情報であることを特徴とする。
【0015】
これにより、割り込み処理が終了するときの情報に基づいて割り込みの有無が判断できるので、割り込み処理中に、さらに排他アクセスが行われた場合でも、確実に割り込みの有無が判断できる。
【0016】
また、請求項5の発明は、
請求項1のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込みが発生したことを示す情報であるとともに、
上記排他性阻害情報は、さらに、排他アクセスが行われたことを示す情報を含み、
上記アクセス制御手段は、割り込みの発生、および排他アクセスが何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とする。
【0017】
これにより、割り込み信号などによって割り込みの発生が容易に検出できるとともに、割り込み処理中にさらに排他アクセスが行われた場合には、そのことを示す情報によって、実質的に割り込みの有無が判断できるので、やはり、確実に割り込みの有無が判断できる。
【0018】
また、請求項6の発明は、
請求項1のプロセッサであって、
さらに、上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段を備えるとともに、
上記排他性阻害情報は、上記比較手段によってアドレスの一致が検出されたことを示す情報を含み、
上記アクセス制御手段は、上記アドレスの一致が検出された場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とする。
【0019】
これにより、他のプロセッサとのアクセス競合が生じた場合には、前記割り込み処理等の場合と同様に書き込みの停止が行われるので、他のプロセッサによる処理能力を低下させることなく、排他アクセスを行うことができる。
【0020】
また、請求項7の発明は、
請求項1のプロセッサであって、さらに、
上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段と、
上記比較手段によって上記アドレスの一致が検出された場合に、上記他のプロセッサによるアクセスを阻止する他プロセッサアクセス制御手段と、
を備えたことを特徴とする。
【0021】
これにより、他のプロセッサとのアクセス競合が生じた場合には、他のプロセッサによるアクセスが阻止されるので、当該プロセッサによる処理能力を低下させることなく、排他アクセスを行うことができる。
【発明の効果】
【0022】
本発明によれば、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できる。
【発明を実施するための最良の形態】
【0023】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【0024】
《発明の実施形態1》
発明の実施形態1として、MMU(メモリ管理ユニット)を備え、アトミックオペレーションの実行中に割り込みまたはMMU例外が発生した場合に、アトミック性が保証されなかったと判定してアトミックオペレーションが実行し直されるプロセッサの例を説明する。
【0025】
図1は、アトミックオペレーションの実行が可能な複数のプロセッサ1…を有するマルチプロセッサシステムの構成を示すブロック図である。このマルチプロセッサシステムは、上記プロセッサ1…の他に、共有バス2と、メインメモリ3と、メインメモリ制御部4とを備えて構成されている。各プロセッサ1は、CPU100、MMU110、キャッシュ120、およびアトミックオペレーション制御部130を備えて構成されている。
【0026】
上記アトミックオペレーション制御部130は、アドレス格納部131、データ格納部132、メモリアクセス制御部133、割り込み検出フラグ134、MMU例外検出フラグ135、および判定回路139を備えている。
【0027】
アドレス格納部131は、アトミックオペレーションでアクセスされるメインメモリ3のアドレスであるアトミックオペレーション対象アドレスを格納するもので、CPU100により例えばI/Oバスを介してアドレスが格納されることによって、アトミックオペレーションの開始が示され、アトミックオペレーション開始信号を出力するようになっている。
【0028】
データ格納部132は、共有バス2を介してメインメモリ3との間でデータの読み書きを行うようになっている。また、例えばI/Oバスを介してCPU100と接続され、メインメモリ3から読み込まれたデータがCPU100に取り込まれるようになっている。さらに、CPU100によりアトミックオペレーションの処理結果のデータが格納されることによってアトミックオペレーションの終了が示され、アトミックオペレーション終了信号を出力するとともに、格納されたデータをメインメモリ3に書き込むようになっている。
【0029】
メモリアクセス制御部133は、アドレス格納部131から出力される上記アトミックオペレーション開始信号に応じて、後述するようにフラグクリア信号、アドレス切り替え信号、アトミックオペレーション実行中信号、およびデータ格納信号等を出力するようになっている。また、データ格納部132から出力される上記アトミックオペレーション終了信号に応じて、判定回路139から出力されるアトミック性保証信号に基づき、アトミックオペレーション実行中信号の停止などを行うようになっている。
【0030】
割り込み検出フラグ134は、メモリアクセス制御部133から出力されるフラグクリア信号に応じてクリアされ、CPU100が割り込み復帰命令を実行したときに出力する割り込み復帰信号に応じてセットされるようになっている。
【0031】
MMU例外検出フラグ135は、同様にフラグクリア信号に応じてクリアされる一方、MMU110から出力されるMMU例外信号に応じてセットされるようになっている。
【0032】
判定回路139は、割り込み検出フラグ134およびMMU例外検出フラグ135が何れもセットされていない場合に、アトミック性保証信号を出力するようになっている。
【0033】
また、メインメモリ制御部4は、具体的には例えば図2に示すように、各プロセッサ1に対応する比較器401とAND回路402と、およびアクセスロック制御部403とを備えて構成されている。比較器401は、各プロセッサ1のアドレス格納部131に格納されているアトミックオペレーション対象アドレスと、何れかのプロセッサ1が実際にアクセスしようとしているアドレスとを比較するようになっている。AND回路402は、対応するプロセッサ1のメモリアクセス制御部133からアトミックオペレーション実行中信号が出力されているときに上記比較器401によってアドレスの一致が検出されると、一致信号を出力するようになっている。また、アクセスロック制御部403は、上記AND回路402から一致信号が出力され、かつ、アトミックオペレーション実行中信号を出力しているプロセッサ1とアドレスを出力しているプロセッサ1(メインメモリ3にアクセスしようとしているプロセッサ1)とが異なる場合に、ロック信号を出力してメインメモリ3へのアクセスを保留させるようになっている。ここで、上記アドレスを出力しているプロセッサ1の判別は、例えば図示しないアクセス権獲得信号などによって行われる。
【0034】
上記のように構成されたプロセッサシステムでアトミックオペレーションが行われる場合の動作について、まず、プロセッサ1内のCPU100によって例えば図3に(S101)〜(S108)で示すようなプログラムが実行される場合の動作を説明する。
【0035】
(S101、S102) CPU100は、例えば、I/Oバスを介して、I/Oアドレスが“AAR”であるアトミックオペレーション制御部130のアドレス格納部131に、アトミックオペレーション対象アドレス“AD”を格納する。
【0036】
(S103) 上記アドレスの格納に応じて、アトミックオペレーション制御部130では、後述するようにメインメモリ3のアドレス“AD”からデータが読み出され、例えばI/Oアドレスが“ADR”であるデータ格納部132に格納される。そこで、CPU100はI/Oバスを介してデータ格納部132から上記データを取り込み、例えばレジスタ“d1”に保持する。
【0037】
(S104) 上記保持されたデータに対して所定の処理を実行し、処理結果のデータをレジスタ再度“d1”に保持する。
【0038】
(S105) 上記処理結果のデータをI/Oバスを介してデータ格納部132に格納する。
【0039】
(S106〜S108) 割り込み検出フラグ134およびMMU例外検出フラグ135をステータスレジスタ“ASR”として参照し、これらのフラグが共にクリアされたままであれば、アトミックオペレーションを完了して次の処理に移る一方、少なくとも何れか一方がセットされていれば、(S101)に戻って、再度、メインメモリ3からのデータの読み込みや処理(アトミックオペレーション)を繰り返す。
【0040】
すなわち、アトミックオペレーションの実行中に割り込みまたはMMU例外が発生すると、例えば同図に併せて示すように、割り込み処理(S111)が行われた後に割り込み復帰命令が実行(S112)された際、またはMMU例外処理(S121)が行われる際に、CPU100またはMMU110から割り込み復帰信号またはMMU例外信号が出力され、これらに応じ、割り込み検出フラグ134またはMMU例外検出フラグ135がセットされる。
【0041】
そして、割り込みが発生していれば、メインメモリ3のアドレス“AD”に記憶されるデータが更新された可能性があり、また、MMU例外が発生していれば、メインメモリ3から適切な読み出しがなされていない可能性があり、アトミック性が保証されなかったり適切な処理が行われていない可能性があるので、上記のようにアトミックオペレーションが繰り返されることによって、アトミック性の保証された適切な処理が行われる。
【0042】
また、アトミックオペレーションが行われている間は、他のプロセッサ1による同じアドレスへのアクセスは保留されるので、やはりアトミック性は保証される一方、他のアドレスへのアクセスは保留されないので、上記他のプロセッサ1の処理能力の低下を小さく抑えることができる。
【0043】
次に、CPU100による上記のようなプログラムの実行に対応して、アトミックオペレーション制御部130で行われる動作(S131)〜(S139)を説明する。ここで、同ステップ(S131)〜(S139)はアトミックオペレーション制御部130の各部の動作を模式的に示すもので、同図に示すのと異なる順序や同時に並行した動作が行われるなどしてもよい。
【0044】
(S131) メモリアクセス制御部133は、アドレス格納部131からアトミックオペレーション開始信号が出力されるのを監視する。すなわち、CPU100によりI/Oバスを介してアドレス格納部131にアトミックオペレーション対象アドレスが格納されるのを待つ。
【0045】
(S132〜S135) アドレスが格納されると、メモリアクセス制御部133は、フラグクリア信号、アドレス切り替え信号、アトミックオペレーション実行中信号、およびデータ格納信号を出力する。これに応じて、割り込み検出フラグ134およびMMU例外検出フラグ135は保持する値をクリアし、MMU110はアドレス格納部131から出力されるアドレスを出力し、メインメモリ制御部4は他のプロセッサが上記アトミックオペレーション対象アドレスにアクセスするのを監視してアクセスを保留させる(ロックする)ようになり、データ格納部132は、MMU110から出力されるアドレスに応じてメインメモリ3から読み出されるデータを格納する。(なお、キャッシュ120が有効である場合には、キャッシュ120から図示しないデータ線を介して出力されるデータが格納される。)そこで、CPU100によって、前記のように上記格納データに基づいた処理が行われる。
【0046】
(S136) 次に、メモリアクセス制御部133は、データ格納部132からアトミックオペレーション終了信号が出力されるのを監視する。すなわち、CPU100によるデータ処理が行われてデータ格納部132に処理結果のデータが格納されるのを待つ。
【0047】
(S137) 処理結果のデータが格納されると、メモリアクセス制御部133は、CPU100の処理についてアトミック性が保証されているかどうか、すなわち割り込み検出フラグ134およびMMU例外検出フラグ135が共にクリアされていて、判定回路139からアトミック性保証信号が出力されているかどうかを判定する。そして、アトミック性が保証されていなければ、データ格納部132に格納されたデータは、メインメモリ3における更新前のデータに基づくものである可能性があるので、メインメモリ3に書き込まずに(S131)に戻る。すなわち、CPU100では前記のようにアトミックオペレーションが繰り返されるのに対応して、アトミックオペレーション制御部130では(S131)以降の動作が繰り返される。
【0048】
(S138、S139) 一方、アトミック性保証信号が出力されている場合には、データ格納部132に格納されたデータが、メインメモリ3における、アドレス格納部131に格納されている元のアドレスの領域に書き込まれる。また、アトミックオペレーション実行中信号が停止され、上記アドレスへの他のプロセッサ1からのアクセスができるようになる。
【0049】
上記のように、アトミックオペレーション制御部130を設けることによって、CPU100がアトミックオペレーション専用の命令などを実行しなくても、割り込みなどが発生した場合にアトミックオペレーションが繰り返されることによってアトミック性の保証された処理を行わせることができる。また、それゆえ、アトミックオペレーションの実行の有無に係わらず割り込み処理を行わせることができるので、迅速性を必要とする処理を行わせることなども容易にできる。
【0050】
また、本実施形態1では、割り込みが発生したことは割り込み復帰命令が実行されることによって検出されるため、後述する実施形態2で説明するようにアトミックオペレーションの実行中に生じた割り込み処理中でさらにアトミックオペレーションが行われたかどうかに係わらず、割り込みの発生は確実に検出され、アトミック性が保証されないと判定される。
【0051】
《発明の実施形態1の変形例》
上記の例では、プロセッサ1にMMU110が設けられている例を示したが、MMU110が設けられていない場合でも、判定回路139が割り込み検出フラグ134に基づいてアトミック性保証信号を出力するようにすれば、割り込みの有無に応じてアトミック性の保証された処理を行わせることができる。
【0052】
また、キャッシュ120は設けなくても、上記のような効果は同じように得られる。
【0053】
また、これらの点については、以下の他の実施形態においても同様に適用可能である。
【0054】
《発明の実施形態2》
アトミックオペレーションの実行中に割り込みが生じたことを割り込み信号によって検出するプロセッサの例を説明する。このような検出は、CPUに入力される割り込み信号などをそのまま利用することができるので、一般に、実施形態1のように割り込み復帰命令が実行されたことを検出するよりも容易に行うことができる。なお、以下の実施形態において、前記実施形態1等と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【0055】
本実施形態2のプロセッサ1は、図4に示すようにアトミックオペレーション制御部230を備えている。このアトミックオペレーション制御部230は、実施形態1のアトミックオペレーション制御部130と比べて、割り込み検出フラグ134に代えて割り込み検出フラグ234を備えるとともに、アトミックオペレーション検出フラグ236を備えている点が異なっている。
【0056】
上記割り込み検出フラグ234は、CPU100に入力されるのと同じ割り込み信号が入力されることによってセットされるようになっている。
【0057】
アトミックオペレーション検出フラグ236は、他のフラグと同様に、アトミックオペレーションの実行が開始される際のフラグクリア信号によってクリアされる一方、アトミックオペレーションの終了時にデータ格納部132から出力されるアトミックオペレーション終了信号によってセットされるようになっている。
【0058】
上記のように構成されたプロセッサ1の動作は、図5に示すように、実施形態1と比べて以下の点が異なっている。すなわち、(S132)に代えて、(S232)で、割り込み検出フラグ234と、MMU例外検出フラグ135と、アトミックオペレーション検出フラグ236とがクリアされる。また、割り込み検出フラグ234は、割り込み処理が開始される時点でセットされる。さらに、(S106)および(S137)に代えて、(S206)および(S237)で、アトミック性が保証されるかどうかの判定が上記3つのフラグに基づいて行われる。つまり、何れもセットされていない場合に、アトミック性が保証されていると判定される。また、アトミック性が保証されていると判定された場合に、(S241)でアトミックオペレーション検出フラグ236がセットされる。
【0059】
上記のように、割り込み信号によって割り込み検出フラグ234をセットすることにより割り込みが生じたことを検出する場合、割り込み処理中でさらにアトミックオペレーションが行われると、そのアトミックオペレーションが開始される際に(そのアトミックオペレーション中の割り込み発生を検出するために)割り込み検出フラグ234はクリアされてしまうことになる。そこで、アトミックオペレーションが行われる場合にアトミックオペレーション検出フラグ236がセットされるようにすることにより、割り込み検出フラグ234がクリアされたとしてもアトミックオペレーション検出フラグ236がセットされることによって、アトミック性が保証されないと判定することができる。
【0060】
《発明の実施形態3》
実施形態3のプロセッサ1は、アトミックオペレーションが行われる場合に、他のプロセッサ1によるアクセスをロックせずに行わせ、割り込みがあった場合などと同じようにアトミックオペレーションを再度実行させるように構成されている。具体的には、図6に示すように、アトミックオペレーション制御部330には、アトミックオペレーション対象アドレスと、他のプロセッサ1によってアクセスされるアドレスとを比較する比較器337、および上記アドレスが一致した場合にセットされるバスアクセス競合検出フラグ338が設けられている。また、メモリアクセス制御部333は、アトミックオペレーション実行中信号を出力しない点だけが、実施形態1のメモリアクセス制御部133と異なっている。
【0061】
このプロセッサ1においては、図7に示すように、(S332)で、上記バスアクセス競合検出フラグ338もクリアされ、(S341)で競合バスアクセスが生じたときにセットされ、(S306)および(S337)では、上記バスアクセス競合検出フラグ338がセットされている場合にも、アトミック性は保証されないと判定される。(実施形態1の(S134)(S139)のように実行中信号の出力や停止は行われない。)
このように他のプロセッサ1によるアクセスを優先させることにより、バスの転送性能を維持することが容易にできる。
【0062】
《発明の実施形態4》
実施形態2と同様に割り込み信号によって割り込みの発生を検出する構成と、実施形態3と同様に他のプロセッサ1によるメモリアクセスを優先させる構成とを組み合わせてもよい。具体的には、図8に示すように、アトミックオペレーション制御部430は、割り込み検出フラグ234と、アトミックオペレーション検出フラグ236と、メモリアクセス制御部333と、比較器337と、バスアクセス競合検出フラグ338とを備えて構成され、図9に示すような動作が行われる。
【0063】
すなわち、(S432)では、割り込み検出フラグ234、MMU例外検出フラグ135、アトミックオペレーション検出フラグ236、およびバスアクセス競合検出フラグ338がクリアされる。また、(S406)および(S437)では、上記割り込み検出フラグ234、MMU例外検出フラグ135、アトミックオペレーション検出フラグ236、およびバスアクセス競合検出フラグ338が、何れもクリアされたままである場合に、アトミック性が保証されていると判定され、処理結果のデータがメインメモリ3に書き込まれてアトミックオペレーションが完了する一方、何れかがセットされていれば、(S101)に戻って、再度、メインメモリ3からのデータの読み込みや処理(アトミックオペレーション)が繰り返される。
【産業上の利用可能性】
【0064】
本発明にかかるプロセッサは、簡潔な構成で、しかも処理能力の大幅な低下を招くことなく、他のプロセッサの動作や割り込み処理に対するアトミック性を容易に確保できる効果を有し、割り込み処理や他のプロセッサの動作などに対して、アトミックオペレーションの実行が可能なプロセッサ等として有用である。
【図面の簡単な説明】
【0065】
【図1】実施形態1のプロセッサシステムの構成を示すブロック図である。
【図2】同、メインメモリ制御部4の構成を示すブロック図である。
【図3】同、各部の動作を示すフローチャートである。
【図4】実施形態2のプロセッサシステムの構成を示すブロック図である。
【図5】同、各部の動作を示すフローチャートである。
【図6】実施形態3のプロセッサシステムの構成を示すブロック図である。
【図7】同、各部の動作を示すフローチャートである。
【図8】実施形態4のプロセッサシステムの構成を示すブロック図である。
【図9】同、各部の動作を示すフローチャートである。
【符号の説明】
【0066】
1 プロセッサ
2 共有バス
3 メインメモリ
4 メインメモリ制御部
100 CPU
110 MMU
120 キャッシュ
130 アトミックオペレーション制御部
131 アドレス格納部
132 データ格納部
133 メモリアクセス制御部
134 割り込み検出フラグ
135 MMU例外検出フラグ
139 判定回路
230 アトミックオペレーション制御部
234 割り込み検出フラグ
236 アトミックオペレーション検出フラグ
330 アトミックオペレーション制御部
333 メモリアクセス制御部
337 比較器
338 バスアクセス競合検出フラグ
401 比較器
402 AND回路
403 アクセスロック制御部
430 アトミックオペレーション制御部

【特許請求の範囲】
【請求項1】
排他制御された状態で、メモリにおける所定のアクセスアドレスから読み出しデータを読み出し、これに基づいて所定の処理が行われた処理結果データを上記アクセスアドレスに書き込む排他アクセスが行われるプロセッサであって、
命令を実行し、上記所定の処理を行うCPUと、
上記CPUからの指定されたアクセスアドレスを保持するアドレス保持手段と、
上記読み出しデータ、および処理結果データを保持するデータ保持手段と、
上記メモリにおける上記アクセスアドレスに対して、上記読み出しデータの読み出し、および処理結果データの書き込みを行うアクセス制御手段と、
上記読み出しデータの読み出しから処理結果データの書き込みまでの間に、少なくとも割り込み、またはメモリ管理ユニット例外が生じたことを示す排他性阻害情報を保持する状態情報保持手段と、
を備え、
上記アクセス制御手段は、上記状態情報保持手段に排他性阻害情報が保持されている場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項2】
請求項1のプロセッサであって、
上記アクセス制御手段は、CPUによりアドレス保持手段にアクセスアドレスが格納されるのに応じて読み出しデータの読み出しを行い、データ保持手段に処理結果データが格納されるのに応じて上記処理結果データの書き込みまたは書き込み停止を行うように構成されていることを特徴とするプロセッサ。
【請求項3】
請求項1のプロセッサであって、
上記アクセス制御手段は、割り込み、およびメモリ管理ユニット例外が何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項4】
請求項1のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込み処理が行われた後に、割り込み前の処理に戻るための命令が実行されたことを示す情報であることを特徴とするプロセッサ。
【請求項5】
請求項1のプロセッサであって、
上記割り込みが生じたことを示す排他性阻害情報は、割り込みが発生したことを示す情報であるとともに、
上記排他性阻害情報は、さらに、排他アクセスが行われたことを示す情報を含み、
上記アクセス制御手段は、割り込みの発生、および排他アクセスが何れも生じていない場合に、上記処理結果データの書き込みを行う一方、少なくとも何れかが生じていた場合に、書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項6】
請求項1のプロセッサであって、
さらに、上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段を備えるとともに、
上記排他性阻害情報は、上記比較手段によってアドレスの一致が検出されたことを示す情報を含み、
上記アクセス制御手段は、上記アドレスの一致が検出された場合に、上記処理結果データの書き込みを停止するように構成されていることを特徴とするプロセッサ。
【請求項7】
請求項1のプロセッサであって、さらに、
上記アドレス保持手段に保持されたアクセスアドレスと、他のプロセッサによるアクセスアドレスとを比較する比較手段と、
上記比較手段によって上記アドレスの一致が検出された場合に、上記他のプロセッサによるアクセスを阻止する他プロセッサアクセス制御手段と、
を備えたことを特徴とするプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate