命令や命令実行に必要なデータを保持している外部メモリと複数のプロセッサユニットとを有するデータ処理装置であって、前記複数のプロセッサユニットの各々が、前記命令や前記データを一時保持するキャッシュメモリと、前記キャッシュメモリを経由して前記外部メモリから前記命令や前記データを読み出して前記命令を実行する命令実行部と、前記命令実行部の処理により実現されたスレッドが、ボトルネックとなることが予め特定されている排他制御区間に進入したことを検出する開始検出部と、前記排他制御区間から前記スレッドが退去したことを検出する終了検出部と、前記開始検出部と前記終了検出部とによる検出結果から前記排他制御区間の処理を実行している前記スレッドが存在しているかどうかを示す二値フラグを保持する実行中フラグと、を有し、前記キャッシュメモリは、各キャッシュエントリに含まれる追い出し候補を決定するための追い出し候補決定情報に、前記排他制御区間を実行中に使用するデータかどうかを示す優先フラグを一時保持し、前記複数のプロセッサユニットの各々は、前記命令実行部が前記外部メモリにアクセスする際に前記実行中フラグがセットされている場合、アクセス対象のキャッシュエントリに属する前記優先フラグをセットし、前記命令実行部によるメモリアクセスがキャッシュミスとなったことにより入れ換え対象のキャッシュエントリを決める際に、前記優先フラグを利用することで、前記排他制御区間で利用したデータを前記キャッシュメモリに残す、データ処理装置。前記各プロセッサユニットは、排他制御を実現するためのCAS命令を実行可能であり、前記外部メモリに存在するlockwordに対してアトミックなアクセスを行う請求項1に記載のデータ処理装置。前記開始検出部及び前記終了検出部は、前記命令実行部の処理により実現されたスレッドが予め指定された前記排他制御区間を実行しているか否かを前記実行中フラグに反映させ、前記キャッシュメモリは、前記命令実行部による前記キャッシュメモリを経由した前記外部メモリへのアクセスが、キャッシュヒットした場合には、前記実行中フラグの値を前記優先フラグとしてアクセス対象のデータが存在するキャッシュエントリに設定し、前記外部メモリへのアクセスがキャッシュミスとなった場合には、前記優先フラグを利用してキャッシュ入れ換え対象エントリを決める、請求項1または2に記載のデータ処理装置。前記キャッシュメモリは、複数のキャッシュエントリと、入れ換え対象のキャッシュエントリを決定する犠牲エントリ決定部と、キャッシュ入れ換え制御部と、を有し、前記キャッシュエントリは、前記優先フラグを含む前記追い出し候補決定情報と、データと、アドレスとを含み、前記犠牲エントリ決定部は、前記複数のキャッシュエントリの前記追い出し候補決定情報を取得し、前記優先フラグがセットされているキャッシュエントリと前記優先フラグがセットされていないキャッシュエントリとが混在している場合は、前記優先フラグがセットされていないキャッシュエントリに含まれる前記優先フラグ以外の追い出し候補決定情報に基づいて、入れ換え対象のキャッシュエントリを選び、前記命令実行部が要求しているデータを置くことのできる複数のキャッシュエントリ総ての前記優先フラグが同じ値の場合は、それらのキャッシュエントリに含まれる前記優先フラグ以外の前記追い出し候補決定情報に基づいて、入れ換え対象のキャッシュエントリを選ぶ、請求項1ないし3の何れか一項に記載のデータ処理装置。前記キャッシュ入れ換え制御部は、前記キャッシュエントリの入れ換え操作において、前記命令実行部の要求するデータの存在するデータブロックを前記外部メモリから読み込み、該読み込まれたデータブロックを前記キャッシュエントリのデータとして設定し、前記キャッシュエントリのアドレスにアクセス対象のアドレスを設定し、前記追い出し候補決定情報のうち前記優先フラグ以外の部分には前記追い出し候補決定用の情報設定し、前記優先フラグには前記実行中フラグの値を設定する、請求項4に記載のデータ処理装置。前記複数のプロセッサユニットの各々は、前記開始検出部および前記終了検出部に接続されており、前記排他制御区間に対応するlockwordのアドレスが前記命令実行部から設定されるLWアドレスレジスタを、さらに有する請求項1ないし5の何れか一項に記載のデータ処理装置。前記開始検出部は、前記LWアドレスレジスタと内部バスのアドレスとを入力とするアドレス比較部と、前記内部バスのデータ部とLock信号と書込信号と完了信号とを入力とするlock状態検出部と、前記アドレス比較部と前記lock状態検出部との出力を入力とするset信号作成部と、を含み、前記終了検出部は、前記LWアドレスレジスタと前記内部バスの前記アドレスとを入力とするアドレス比較部と、前記内部バスのデータ部と前記Lock信号と前記書込信号と前記完了信号とを入力とするunlock状態検出部と、前記アドレス比較部と前記unlock状態検出部の出力を入力とするreset信号作成部と、を含み、前記開始検出部のset信号、および、前記終了検出部のreset信号は、前記実行中フラグに送られ、前記内部バスで、前記アドレスと前記データと前記書込信号と読出信号と前記完了信号と前記Lock信号とが伝送される請求項6に記載のデータ処理装置。前記命令実行部が実行する命令に、前記実行中フラグのセット命令と前記実行中フラグのリセット命令と、が含まれ、前記開始検出部は、前記命令実行部が前記セット命令を実行すると前記実行中フラグをセットし、前記終了検出部は、前記命令実行部が前記リセット命令を実行すると前記実行中フラグをリセットする、請求項1ないし7の何れか一項に記載のデータ処理装置。命令やデータを一時保持するキャッシュメモリと、当該キャッシュメモリを経由して外部メモリから命令やデータを読み出して当該命令を実行する命令実行部と、をそれぞれ含む複数のプロセッサユニットの各々が、前記命令実行部の処理により実現されたスレッドが、ボトルネックとなることが予め特定されている排他制御区間に進入したことを検出し、前記排他制御区間から前記スレッドが退去したことを検出し、前記検出結果から前記排他制御区間の処理を実行している前記スレッドが存在しているかどうかを実行中フラグに反映し、前記命令実行部が前記外部メモリにアクセスする際に前記実行中フラグがセットされている場合、前記キャッシュメモリに保持される各キャッシュエントリであって、前記排他制御区間を実行中に使用するデータかどうかを示す優先フラグが一時保持される追い出し候補を決定するための追い出し候補決定情報を含む、各キャッシュエントリのうち、アクセス対象のキャッシュエントリに属する優先フラグをセットし、前記命令実行部によるメモリアクセスがキャッシュミスとなったことにより入れ換え対象のキャッシュエントリを決める際に、前記優先フラグを利用することで、前記排他制御区間で利用したデータを前記キャッシュメモリに残す、データ処理方法。命令や命令実行に必要なデータを保持している外部メモリを有するデータ処理装置に複数が搭載されるプロセッサユニットであって、前記命令や前記データを一時保持するキャッシュメモリと、前記キャッシュメモリを経由して前記外部メモリから前記命令や前記データを読み出して前記命令を実行する命令実行部と、前記命令実行部の処理により実現されたスレッドが、ボトルネックとなることが予め特定されている排他制御区間に進入したことを検出する開始検出部と、前記排他制御区間から前記スレッドが退去したことを検出する終了検出部と、前記開始検出部と前記終了検出部とによる検出結果から前記排他制御区間の処理を実行している前記スレッドが存在しているかどうかを示す二値フラグを保持する実行中フラグと、を有し、前記キャッシュメモリは、各キャッシュエントリに含まれる追い出し候補を決定するための追い出し候補決定情報に、前記排他制御区間を実行中に使用するデータかどうかを示す優先フラグを一時保持し、前記プロセッサユニットは、前記命令実行部が前記外部メモリにアクセスする際に前記実行中フラグがセットされている場合、アクセス対象のキャッシュエントリに属する前記優先フラグをセットし、前記プロセッサユニットは、前記命令実行部によるメモリアクセスがキャッシュミスとなったことにより入れ換え対象のキャッシュエントリを決める際に、前記優先フラグを利用することで、前記排他制御区間で利用したデータを前記キャッシュメモリに残す、プロセッサユニット。本発明の実施の第一の形態を図1を参照して以下に説明する。本実施の形態のデータ処理装置100は、図示するように、命令や命令実行に必要なデータを保持している外部メモリ110と複数のプロセッサユニット200とを有する。本実施の形態のデータ処理装置100では、複数のプロセッサユニット200の各々が、命令やデータを一時保持するキャッシュメモリ210と、キャッシュメモリ210を経由して外部メモリ110から命令やデータを読み出して命令を実行する命令実行部220と、ボトルネックとなることが予め特定されている排他制御区間にスレッドが進入したことを検出する開始検出部230と、上記排他制御区間からスレッドが退去したことを検出する終了検出部240と、開始検出部230と終了検出部240とによる検出結果から上記排他制御区間の処理を実行しているスレッドが存在しているかどうかを示す二値フラグを保持する実行中フラグ250と、を有する。ここで、スレッドとは、命令実行部220がプログラム上記命令を実行することにより実現される任意の処理単位を意味し、プロセス、タスク等と同意である。本実施形態は、この処理単位を制限するものではない。キャッシュメモリ210は、各キャッシュエントリに含まれる追い出し候補を決定するための追い出し候補決定情報に排他制御区間を実行中に使用するデータかどうかを示す優先フラグを一時保持する。命令実行部220が外部メモリ110にアクセスする際に実行中フラグ250がセットされている場合、アクセス対象のキャッシュエントリに属する優先フラグがセットされる。本実施の形態のデータ処理装置100は、命令実行部220による外部メモリ110へのアクセスがキャッシュミスとなったことにより入れ換え対象のキャッシュエントリを決める際に、優先フラグを利用することで、排他制御区間で利用したデータをキャッシュメモリ210に残す。より詳細には、キャッシュメモリ210は、データとアドレスと追い出し候補決定情報からなる複数のキャッシュエントリ211、入れ換え対象となるキャッシュエントリを決定する犠牲victimエントリ決定部212、キャッシュ入れ換え制御部213から構成されている。命令実行部220は、一般的なプロセッサの処理と同様に、キャッシュメモリ210を経由して外部メモリ110から実行すべき命令や命令実行に必要なデータを読み出してその読み出された命令を実行する。命令実行に伴って外部メモリ110へのデータ書込操作が必要となった場合は、キャッシュメモリ210を経由してそのデータが書き込まれる。さらに、プロセッサユニット200には、排他制御を実現するためのCAS命令が用意されており、外部メモリ110に存在するlockwordに対してアトミックなアクセスを行うようになっている。これらはそれぞれ概略つぎのように動作する。まず、命令実行部220は、一般的なプロセッサの処理と同様に、キャッシュメモリ210を経由して外部メモリ110から実行すべき命令や命令実行に必要なデータを読み出してその読み出された命令を実行する。命令実行に伴って外部メモリ110へのデータ書込操作が必要となった場合は、キャッシュメモリ210を経由してそのデータが書き込まれる。さらに、プロセッサユニット200には、排他制御を実現するためのCAS命令が用意されており、外部メモリ110に存在するlockwordに対してアトミックなアクセスが行われる。開始検出部230は、命令実行部220により実行されているプログラムが予め指定された排他制御区間の実行を開始したという事象を検出し、実行中フラグ250をセットする。即ち、開始検出部230は、排他制御区間実行開始検出部と表記することもできる。同様に、終了検出部240は、命令実行部220により実行されているプログラムが予め指定された排他制御区間の実行を終了したという事象を検出し、実行中フラグ250をリセットする。即ち、終了検出部240は、排他制御区間実行終了検出部と表記することもできる。実行中フラグ250は、命令実行部220によるプログラム実行中に行われるキャッシュメモリ210経由の外部メモリ110へのアクセスの際に参照され、このフラグがセットされている場合は、アクセス対象のキャッシュエントリ211内の優先フラグがセットされる。即ち、実行中フラグ250は、排他制御区間実行中フラグと表記することもできる。また、優先フラグは、排他制御区間優先フラグと表記することもできる。命令実行部220による外部メモリ110へのアクセスがキャッシュミスとなった場合、すなわち、アクセス対象のデータがキャッシュメモリ210中に存在していない場合は、キャッシュメモリ210は、そのデータを置くことのできる複数のキャッシュエントリ211から入れ換え対象のキャッシュエントリを決め、そのエントリにアクセス対象のデータを配置すると共に、命令実行部220に対してそのデータを供給する。入れ換え対象エントリを決める操作は、命令実行部220の要求したデータを置くことのできる複数のキャッシュエントリ211についての追い出し候補決定情報優先フラグの情報を含むを入力として、犠牲エントリ決定部212が以下のように行う。まず、優先フラグがセットされているキャッシュエントリと優先フラグがセットされていないリセット状態のキャッシュエントリが混在している場合は、犠牲エントリ決定部212は、優先フラグがセットされていないキャッシュエントリに含まれる優先フラグ以外の追い出し候補決定情報に基づいて入れ換え対象のキャッシュエントリを選ぶ。また、命令実行部220が要求しているデータを置くことのできる複数のキャッシュエントリ211総ての優先フラグが同じ値セットされている、または、リセット状態の場合は、犠牲エントリ決定部212は、それらのエントリに含まれる優先フラグ以外の追い出し候補決定情報から入れ換え対象のキャッシュエントリを選ぶ。ここで、優先フラグ以外の追い出し候補決定情報からキャッシュ入れ換え対象エントリを選ぶ操作は、一般的なキャッシュ入れ換え対象エントリの決定手法と同様である。また、優先フラグ以外の追い出し候補決定情報は、周知であるため、ここでは説明を省略する。キャッシュ入れ換え制御部213は、上述のように入れ換え対象のキャッシュエントリが選択されると、以下のようなキャッシュエントリの入れ換え操作を行う。キャッシュエントリ211の入れ換え操作では、1データ部には、命令実行部220の要求するデータの存在するデータブロックが外部メモリ110から読み込まれて、その読み込まれたデータブロックが設定され、2アドレス部には、アクセス対象のアドレスが設定され、3追い出し候補決定情報のうち、優先フラグ以外の部分には、一般的なキャッシュメモリと同様に、追い出し候補決定用の情報が設定され、4優先フラグには、実行中フラグ250の値が設定される。本実施の形態の特徴は、1命令実行部220により実行されているプログラムが予め指定された排他制御区間を実行しているか否かを実行中フラグ250に反映させること、2命令実行部220によるキャッシュメモリ210を経由した外部メモリ110へのアクセスが、aキャッシュヒットした場合は実行中フラグ250の値をアクセス対象のデータが存在するキャッシュエントリ211に設定し、bキャッシュミスとなった場合は優先フラグの情報を利用してキャッシュ入れ換え対象エントリを決める、という点である。本実施の形態のデータ処理装置100は、上述のように事後も排他制御区間で利用する可能性の高いデータをキャッシュメモリ210に残すことにより、それ以降の排他制御区間実行時におけるキャッシュヒット率を高め、その結果として、排他制御区間の実行時間を短くすることができる。これにより、排他制御区間が性能上のボトルネックとなっているマルチプロセッサ構成のデータ処理装置100の性能を、排他制御区間で実行する処理を変更することなく、向上させることができる。[第一の実施例]つぎに、具体的な実施例を用いて本発明を実施するための形態の動作を説明する。図2に示すように、本実施例におけるプロセッサユニット300は、LWアドレスレジスタ310を有する。また、開始検出部230および終了検出部240は、命令実行部220とキャッシュメモリ210との間でアクセスされる外部メモリ110のアドレスやデータを受け渡すための内部バス320、および、LWアドレスレジスタ310に接続されている。LWアドレスレジスタ310が保持する値は命令実行部220から設定されるようになっており、LWアドレスレジスタ310は、ボトルネックである排他制御区間に対応するlockwordのアドレスを保持するようになっている。なお、このプロセッサユニット300上で動作するプログラムのボトルネックである排他制御区間に対応するlockwordのアドレスは、このプロセッサユニット300上で実行されるプログラムの開発者やシステムの運用者による事前のプロファイリングなどにより、予め判明しており、プログラムの実行直前またはプログラム起動直後の初期化操作時にLWアドレスレジスタ310に設定されているものとする。また、本実施例のプロセッサユニット300では、lockwordの値が0のときはunlocked状態対応する排他制御区間を実行中のスレッドは存在しない状態、0以外の値のときはlocked状態対応する排他制御区間を実行しているスレッドが存在する状態を示すものとする。図3に示すように、開始検出部230は、LWアドレスレジスタ310と内部バス320のアドレスを入力とするアドレス比較部231、内部バス320のデータ部、Lock信号、書込信号、完了信号を入力とするlock状態検出部232、アドレス比較部231とlock状態検出部232の出力を入力とするset信号作成部233を含む。図4に示すように、終了検出部240は、LWアドレスレジスタ310と内部バス320のアドレスを入力とするアドレス比較部241、内部バス320のデータ部、Lock信号、書込信号、完了信号を入力とするunlock状態検出部242、アドレス比較部241とunlock状態検出部242の出力を入力とするreset信号作成部243を含む。開始検出部230のset信号、および、終了検出部240のreset信号は、図2に示したとおり、実行中フラグ250に送られる。また、図5に示すように、データ転送を行う内部バス320には、アドレス、データ、書込信号、読出信号、完了信号、Lock信号がある。これらは、従来技術によるバスと同様に動作する。本実施例における排他制御区間の実行開始時は、プロセッサユニット300は、以下のように動作する。排他制御区間に進入できるのは、プロセッサユニット300によるアトミックなアクセスによりlockwordを0から0以外の値に書き換える操作が成功した場合である。このアトミックなアクセスは、命令実行部220からキャッシュメモリ210を経由した外部メモリ110へのアクセスによって行われる。その際、内部バス320のアドレス部分では、lockwordのアドレスを命令実行部220からキャッシュメモリ210に送る操作が行われ、データ部分では、外部メモリ110の値を命令実行部220に送る操作、命令実行部220が外部メモリ110に書き込む値をキャッシュメモリ210に送る操作が行われる。図6に、上記のアトミックアクセスが成功した場合のタイムチャートを示す。このアトミックアクセスでは、読み出し操作の開始時に、命令実行部220が、Lock信号と読み出し信号を有効とすると同時に、アドレスバス経由でアクセス対象であるlockwordのアドレスを送出する。これらの信号を受け取ったキャッシュメモリ210は、必要に応じて外部メモリ110にアクセスしてlockwordの値この場合は0を取得すると、その値をデータバス経由で命令実行部220に送るとともに、完了信号を有効に設定する。完了信号は、命令実行部220が値0を受け取って読み出し信号を無効に設定したことをキャッシュメモリ210が検出することにより、無効に戻される。つぎに、命令実行部220は、読み込んだデータと実行中の命令で規定されるレジスタの値を比較する。両者が一致しない場合、命令実行部220は、Lock信号を無効に戻すと共に命令実行を終了し、命令の実行結果を失敗に設定する。逆に、両者が一致した場合、命令実行部220は、実行中の命令で規定される0以外の値をデータバス経由でキャッシュメモリ210に送るとともに書込信号を有効レベルに設定する。この操作により、キャッシュメモリ210は送られた0以外の値をlockwordに書き込む。この書き込みが完了すると、キャッシュメモリ210は完了信号を有効に設定する。命令実行部220は、完了信号が有効に設定されたことを検出すると、書込信号とLock信号を無効レベルに設定すると共に、アドレスバスへのlockwordのアドレス送出、データバスへの0以外の値の送出を完了し、それを検出したキャッシュメモリ210は完了信号を無効に設定する。以上の操作が完了すると、命令実行部220は、命令実行を終了し、命令の実行結果を成功に設定する。なお、Lock信号が有効レベルに設定されるのは、アトミックアクセス実行時のみであり、アトミックアクセスではない外部メモリ110に対する通常の読み出し操作や書込操作では、Lock信号は無効レベルのままである。上記の操作において、開始検出部230のlock状態検出部232は、書込信号、完了信号、Lock信号が総て有効であり、かつ、内部バス320のデータを介して0以外の値が転送されている状態を検出し、総ての条件が合致した場合にlock状態検出部232の出力を有効にする。また、アドレス比較部231は、内部バス320のアドレスを介して送られる外部メモリ110のアドレスと、予めLWアドレスレジスタ310に設定されている値を比較し、一致する場合にアドレス比較部231の出力を有効にする。lock信号検出部とアドレス比較部231の出力が両方とも有効の場合に開始検出部230の出力であるset信号は有効になる。すなわち、set信号が有効になるのは、書込信号、完了信号、Lock信号が総て有効、かつ、内部バス320のデータを介して0以外の値が転送されている状態、かつ、内部バス320のアドレスを介して送られる外部メモリ110のアドレスが予めLWアドレスレジスタ310に設定されている値と一致する場合、すなわち、ボトルネックである排他制御区間に対応するlockwordにアクセスしてロックを獲得する操作が成功した場合である。これにより、set信号を入力とする実行中フラグ250は、あるスレッドがボトルネックである排他制御区間に進入すると有効に設定されることになる。また、本実施例における排他制御区間の終了開始時は、以下の通りに動作する。Lockwordによる排他制御により、対応する排他制御区間に同時に進入できるスレッド数は1であるため、lockwordを0以外の値から0に書き換える操作の実施を許されるのは、プログラムが正しく作られている限り、排他制御区間に進入しているスレッドのみである。従って、この書き換えのための外部メモリ110へのアクセスは、アトミックアクセスでない通常の書込操作、すなわち、命令実行部220からキャッシュメモリ210を経由した外部メモリ110への書込操作によって実施することができる。その際、内部バス320のアドレス部分では、lockwordのアドレスが命令実行部220からキャッシュメモリ210に送られる操作が行われ、データ部分では、外部メモリ110の値が命令実行部220に送られる操作、及び、命令実行部220が外部メモリ110に書き込む値がキャッシュメモリ210に送られる操作、が行われる。図7に、上記書き込みアクセスのタイムチャートを示す。命令実行部220は、書込操作の開始時、命令実行部220が内部バス320のアドレス経由でアクセスする対象であるlockwordのアドレス、及び値0をデータバス経由でキャッシュメモリ210に送るとともに、書込信号を有効レベルに設定する。この操作により、キャッシュメモリ210は送られた値0をlockwordに書き込む。この書き込みが完了すると、キャッシュメモリ210は完了信号を有効に設定する。それを命令実行部220は、完了信号が有効に設定されたことを検出すると、書込信号とLock信号を無効レベルに設定すると共に、アドレスバスへのlockwordのアドレス送出、データバスへの0以外の値の送出を完了し、それを検出したキャッシュメモリ210は完了信号を無効に設定する。以上の操作が完了すると、命令実行部220は命令実行を終了する。上記の操作において、終了検出部240のunlock状態検出部242は、書込信号と完了信号が有効であり、かつ、内部バス320のデータを介して値0が転送されている状態を検出し、総ての条件が合致した場合にunlock状態検出部242の出力を有効にする。また、アドレス比較部241では、内部バス320のアドレスを介して送られる外部メモリ110のアドレスと、予めLWアドレスレジスタ310に設定されている値を比較し、一致する場合にアドレス比較部241の出力を有効にする。unlock状態検出部242とアドレス比較部241の出力が両方とも有効の場合に終了検出部240の出力であるreset信号は有効になる。すなわち、reset信号が有効になるのは、書込信号と完了信号が有効、かつ、内部バス320のデータを介して値0が転送されている状態、かつ、内部バス320のアドレスを介して送られる外部メモリ110のアドレスが予めLWアドレスレジスタ310に設定されている値と一致する場合、すなわち、ボトルネックである排他制御区間に対応するlockwordに値0を書き込んでロックを解放する操作を実施した場合である。これより、reset信号を入力とする実行中フラグ250は、あるスレッドがボトルネックである排他制御区間から退去すると無効に設定されることになる。実行中フラグ250の値を入力するキャッシュメモリ210の動作は、発明を実施するための形態に記載した通りである。[第二の実施例]つぎに、本発明の第二の実施例を説明する。この実施例の特徴は、図1の命令実行部220が実行する命令に、実行中フラグ250のセット命令と実行中フラグ250のリセット命令と、が追加されている点である。また、この実施例における開始検出部230は、命令実行部220が実行中フラグ250のセット命令を実行するとset信号を有効とし、終了検出部240は、命令実行部220が実行中フラグ250のリセット命令を実行するとreset信号を有効とするようになっている。実行中フラグ250のセット命令と実行中フラグ250のリセット命令は、実行プログラムのコーディング、コンパイル、または、リンク時の時点で実行プログラムに埋め込まれる。この命令埋め込みは、具体的には、ボトルネックである排他制御区間の実行開始時の処理への実行中フラグ250のセット命令、排他制御区間の実行終了時の処理への実行中フラグ250のリセット命令の埋め込みである。図8に、実行中フラグ250のセット命令と実行中フラグ250のリセット命令が埋め込まれた、プロセッサユニット300上で動作するプログラムで実現される、ボトルネックである排他制御区間の処理フローを示す。ロック獲得操作では、プロセッサユニット300は、CAS命令によりlockwordの値を0から0以外の値に変更する。その操作が失敗した場合は、プロセッサユニット300は、CAS命令のステップを繰返す。逆に、CAS命令の操作が成功すると、プロセッサユニット300は、実行中フラグ250のセット命令を実行した後、排他制御区間で行うべき処理を実行する。その処理が完了すると、プロセッサユニット300は、実行中フラグ250のリセット命令を実行した後、lockwordに値0を書き込むことによりロックを解放し、排他制御に関する処理を終了する。ここで、実行中フラグ250のセット命令と実行中フラグ250のリセット命令とは、実行プログラム作成時などの段階で予め埋め込まれた命令である。上記、開始検出部230と終了検出部240の動作から明らかなように、実行中フラグ250のセット命令が実行されるとset信号が有効になり、実行中フラグ250がセットされる。また、実行中フラグ250のリセット命令が実行されるとreset信号が有効になり、実行中フラグ250がリセットされる。従って、実行中フラグ250は、実行中フラグ250のセット命令が実行されてから実行中フラグ250のリセット命令が実行されるまでの期間、すなわち、スレッドが排他制御区間で行うべき処理を実行している期間で有効となり、それ以外の区間では無効となる。実行中フラグ250の値を入力するキャッシュメモリ210の動作は、発明を実施するための形態に記載した通りである。なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。また、上述した実施の形態および実施例では、各部の構造などを具体的に説明したが、その構造などは本願発明を満足する範囲で各種に変更することができる。この出願は、2010年6月17日に出願された日本出願特願2010-138051号を基礎とする優先権を主張し、その開示の全てをここに取り込む。