複数のスレッドを実行するプロセッサであって、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とするプロセッサ。前記設定手段は、前記位置に存在する命令に応じたプログラムカウンタの値を予め保持する保持領域を有しており、外部から前記プログラムカウンタの値を取得すると、前記保持領域へ格納し、前記一のスレッドにて実行される命令に応じたプログラムカウンタの値と、保持している値とが一致する場合に、前記一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を前記利用情報に設定することを特徴とする請求項1に記載のプロセッサ。前記保持領域には、さらに、前記利用情報と、前記メモリ領域を示すメモリアドレスとが対応付けられて保持されており、前記制御手段は、前記他のスレッドから前記読み出し命令による読み出し対象であるメモリ領域の読み出し対象アドレスを取得し、前記読み出し対象アドレスと前記メモリアドレスとが一致する場合に、対応する利用情報が示す内容に応じて前記読み出し命令を実行及び抑止することを特徴とする請求項2に記載のプロセッサ。前記プロセッサは、さらに、データの読み出しを行う際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記メモリアドレスとの間に関連がある場合には、前記メモリ領域の利用状況を確認すべき旨を通知するアドレス変換手段を備え、前記制御手段は、前記通知を受け取ると、前記メモリアドレスに対応する前記メモリ領域の利用状況を前記利用情報に基づいて判断することを特徴とする請求項3に記載のプロセッサ。前記メモリ領域は、前記他のスレッドとは別のスレッドにも利用される領域であり、前記制御手段は、さらに、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、前記別のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止することを特徴とする請求項2に記載のプロセッサ。前記プロセッサは、さらに、命令をフェッチする際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記プログラムカウンタとの間に関連がある場合には、前記許可手段による前記判断を実行することを要求する要求情報を前記許可手段に通知するアドレス変換手段を備え、前記許可手段は、前記要求情報を前記アドレス変換手段から受け取ると、前記判断を行うことを特徴とする請求項2に記載のプロセッサ。前記設定手段は、さらに、前記メモリ領域への書き込みが完了したことを示す旨を利用情報に設定する際に、他のプロセッサで管理されている別の利用情報に対しても前記メモリ領域への書き込みが完了したことを示す内容を設定することを特徴とする請求項2に記載のプロセッサ。前記一のスレッド及び他のスレッドは、画像のデコード処理を行うためのものであり、前記プロセッサは、画像のデコード処理を行う画像処理システムに備えられることを特徴とする請求項1に記載のプロセッサ。前記一のスレッド及び他のスレッドは、画像のエンコード処理を行うためのものであり、前記プロセッサは、画像のエンコード処理を行う画像処理システムに備えられることを特徴とする請求項1に記載のプロセッサ。複数のスレッドを実行するプロセッサで用いられる制御方法であって、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定ステップと、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御ステップとを含むことを特徴とする制御方法。複数のスレッドを用いて画像を処理する画像処理装置であって、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とする画像処理装置。前記画像処理装置は、符号化された画像を復号するものであり、前記複数のスレッドには、符号化された一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、前記書き込みが完了したこと保証する位置に存在する命令とは、可変長復号処理、逆量子化逆周波数変換に係る処理、動き補償に係る処理、画像の再構成処理及びデブロッキングフィルタ処理の何れかの処理が完了したことを示す命令であり、制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御することを特徴とする請求項11に記載の画像処理装置。前記画像処理装置は、画像を符号化するものであり、前記複数のスレッドには、一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、前記書き込みが完了したこと保証する位置に存在する命令とは、符号化対象の画像データに対する予測誤差を算出する減算処理、予測誤差に対して量子化と周波数変換を行う量子化処理、符号化処理、参照画像の生成処理、動き補償に係る処理の何れかであり、制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御することを特徴とする請求項11に記載の画像処理装置。上記にて示す技術では、依存関係が、1つの書き込み命令に対するものであれば効果的であるが、例えば、1つのアドレスで示されるメモリ領域について、複数回書き込み命令を実行した後に、読み出し命令を行う場合には対応できていない。なぜなら、管理対象をアドレスとしているので、最初の書き込み命令が実行されると他のスレッドによる同一のアドレスで示されるメモリ領域への読み出し命令が実行されることになる。そのため、複数の書き込み命令の実行後の読み出し命令を実行するという依存関係が保たれない。そこで、本発明は、複数の命令と1つの読み出し命令との依存関係を保つことのできるプロセッサ及び方法を提供することを目的とする。上記目的を達成するために、本発明は、複数のスレッドを実行するプロセッサであって、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とする。上記に示す構成によると、プロセッサは、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行することで、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行う。つまり、プロセッサは、当該位置に存在する命令が実行されるまでに存在する命令が実行されていることを保証した上で、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行うことができる。これにより、プロセッサは、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。1.第1の実施の形態以下、本発明に係る第1の実施の形態について、図面を参照しながら説明する。1.1構成図1は、第1の実施の形態におけるマルチスレッドプロセッサ100の構成を示すブロック図である。マルチスレッドプロセッサ100は、NNは2以上の整数個の命令流N個のスレッドを同時に独立して実行するプロセッサであり、命令メモリ101と、命令フェッチ制御部102と、命令群決定部103と、N個の命令バッファ第1命令バッファ104、第2命令バッファ105、...、第N命令バッファ106と、発行命令決定部107と、優先度決定部108と、N個のレジスタファイル第1レジスタファイル109、第2レジスタファイル110、...、第Nレジスタファイル111と、演算器群112と、ライトバックバス113と、更新制御部114、データメモリ115と、読み出し検出部116と、命令検出部117と、管理テーブル記憶部118を備えている。ここで、各命令バッファとレジスタファイルは1対1に対応付けられ、N個の論理プロセッサを構成する。1命令メモリ101命令メモリ101は、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流スレッドを保持している。2命令フェッチ制御部102命令フェッチ制御部102は、各スレッドのプログラムカウンタPCを保持し、次に実行する命令を命令メモリから読み出す。ここで、各スレッドのプログラムカウンタは、互いに異なる値の範囲においてカウントされるものとする。また、命令フェッチ制御部102は、読み出し検出部116から、命令のフェッチの継続の可否を示すReadアクセス信号を受信すると、受信した信号の値に応じて、命令のフェッチを継続、及び例外発生に相当する特殊処理ベクタへの分岐処理の起動を行う。具体的には、受信した信号の値が1である場合には、命令フェッチ制御部102は、それまでの命令実行シーケンスを停止し、例外発生に相当する特殊処理ベクタへの分岐処理を起動する。受信した信号の値が0である場合には、それまでの命令実行シーケンスを継続する。3命令群決定部103命令群決定部103は、命令メモリ101から、各命令流に属する命令を読み出し、デコードを行い、当該命令が割り当てられている命令バッファに書き込む。4第1命令バッファ104から第N命令バッファ106第i命令バッファiは1以上N以下の整数は、i番目の命令流以下、第i命令流という。に属する命令を受け取り、保持するものである。5発行命令決定部107発行命令決定部107は、N個の命令バッファからマシンサイクル毎に発行する命令を決定するものである。6優先度決定部108優先度決定部108は、発行命令決定部107において発行する命令を決定する際に用いる優先度情報テーブル保持している。このとき、発行命令決定部107は、優先度決定部108で保持されている優先度情報テーブルを用いて、マシンサイクル毎に発行する命令を決定することになる。7第1レジスタファイル109から第Nレジスタファイル111第iレジスタファイルiは1以上N以下の整数は、第i命令バッファに保持された命令流を実行することによって、読み出し及び書き込みの対象とされるデータを保持するレジスタ群である。また、演算器群112は、図1に示すように、メモリアクセス120をも有している。ここで、メモリアクセス120は、データメモリとアクセスする命令を実行するための演算器である。9ライトバックバス113ライトバックバス113は、演算器群112からの出力を第1レジスタファイル109~第Nレジスタファイル111に書き戻すためのバスである。10データメモリ115データメモリ115は、データメモリとアクセスする命令によってアクセスされ、プログラムを実行する際のデータを保持している。11管理テーブル記憶部118管理テーブル記憶部118は、図2a、bに示すように、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を記憶している。11-1アクセス管理テーブルT100アクセス管理テーブルT100は、図2aに示すように、entry_valid200、dep_id201及びvalid化PC202からなる組を複数個記憶するための領域を有している。entry_valid200は、当該組エントリが有効な情報であるか否かを示すものであり、例えば、entry_valid200に値0が設定されている場合には当該エントリが無効であることを、値1が設定されている場合には当該エントリが有効であることを示す。dep_id201は、当該エントリとReadアクセス管理テーブルT150内のエントリとの対応付けを行うための情報である。Readアクセス管理テーブルT150は、entry_valid210、dep_id211、Address212、valid213、th_id214、th_stride215からなる組を複数個記憶するための領域を有している。entry_valid210は、当該組エントリに有効な情報であるか否かを示すものであり、例えばentry_valid200と同様に、entry_valid210に値0が設定されている場合には当該エントリが無効であることを、値1が設定されている場合には当該エントリは有効であることを示す。dep_id211は、当該エントリとアクセス管理テーブルT100内のエントリとの対応付けを行うための情報である。ここでは、dep_id211とdep_id201との値が同一のもの同士が対応しているものとする。Address212は、当該エントリで管理されるメモリ領域の開始アドレスを示している。valid213は、当該エントリで管理されるメモリ領域に対して、いずれかのスレッドによる書き込みが完了していることを示している。th_id214は、当該エントリで管理されるメモリ領域に対する書き込みが完了したスレッドの番号を示すものである。th_stride215は、当該エントリで管理されるメモリ領域に対する書き込みが完了したスレッドと読み出しを行うスレッドの距離を示す値である。12更新制御部114更新制御部114は、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。12-1アクセス管理テーブルT100について更新制御部114は、ソフトウェアからソフトウェア更新指示を受け付けると、アクセス管理テーブルT100内のフィールドを更新する。いずれのフィールドも、ソフトウェアによる読み出し、書き込みが可能である。例えば、更新制御部114は、N個のスレッドで動作するソフトウェアの処理開始前に、ソフトウェア更新指示を受け付けると、当該ソフトウェアについてアクセス管理テーブルT100で管理されるべき複数のエントリを記録する。12-2Readアクセス管理テーブルT150について更新制御部114は、アクセス管理テーブルT100の更新時と同様にソフトウェアからソフトウェア更新指示を受け付けると、Readアクセス管理テーブルT150内のフィールドを更新する。いずれのフィールドも、ソフトウェアによる読み出し、書き込みが可能である。例えば、更新制御部114は、N個のスレッドで動作するソフトウェアの処理開始前に、ソフトウェア更新指示を受け付けると、当該ソフトウェアについてReadアクセス管理テーブルT150で管理されるべき複数のエントリを記録する。また、更新制御部114は、命令検出部117から命令検出情報を受け付けると、Readアクセス管理テーブルT150内のフィールドを更新する。ここで、命令検出情報は、アクセス管理テーブルT100の更新を契機となる命令を検出した旨の情報以下、命令検出信号という。と、更新対象となるエントリに含まれるdep_id以下、命令dep_idという。の値と、命令th_idとを含むものである。ここで、命令th_idは、ある命令が実行された際に演算器群112より出力される当該命令が属するプログラムのスレッド番号である。例えば、更新制御部114は、命令検出部117から命令検出情報を受け取ると、受け取った命令検出情報に含まれる命令dep_idと一致するdep_idを含むエントリについて、当該エントリに含まれるvalidの値を1に変更し、さらに、当該エントリのth_idの値を受け取った命令検出情報に含まれる命令th_idの値へと変更する。さらに、更新制御部114は、あるスレッドにおいて、validの値が1であるメモリ領域についての読み出し命令が実行されると、当該validの値を1から0へと更新する。13命令検出部117命令検出部117は、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理部である。つまり、あるメモリ領域への書き込みが完了したか否かを検出するものである。命令検出部117は、図3に示すように、テーブル読出制御部300、dep_id選択部301及びPC比較部302を有している。テーブル読出制御部300は、ある命令が実行された際に演算器群112から命令実行信号を受け取ると、アクセス管理テーブルT100のエントリの読み出しの動作を開始する。PC比較部302は、読み出されたアクセス管理テーブルT100のエントリに含まれるvalid化PCと、ある命令が実行された際に演算器群112から出力されたPCとが一致するか否かを判定し、その結果をdep_id選択部301へ出力する。dep_id選択部301は、テーブル読出制御部300により読み出されたentry_validの値と、dep_idの値とを取得する。また、dep_id選択部301は、PC比較部302による比較結果をも取得する。さらには、dep_id選択部301は、ある命令が実行された際に演算器群112から命令実行信号、PC及び命令th_idをも受け取る。dep_id選択部301は、PC比較部302の比較結果に基づいて、実行された命令のPCの値が検出すべき命令であった場合には、対応して受け取った命令th_id、取得したdep_id以下、命令dep_idという。及び命令検出信号を含む命令検出情報を更新制御部114へ出力する。14読み出し検出部116読み出し検出部116は、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。読み出し検出部116は、図3に示すように、テーブル読出制御部400、valid選択部401、Readアドレス比較部402、th_id比較部403及び加算器404を有している。テーブル読出制御部400は、メモリアクセス120においてデータメモリ115に読み出しアクセスを行うRead命令が実行された際にメモリアクセス120からRead実行信号を受け取ると、Readアクセス管理テーブルT150のエントリの読み出しの動作を開始する。Readアドレス比較部402は、読み出されたReadアクセス管理テーブルT150のaddressの値と、メモリアクセス120から出力されたReadアドレスとを比較し、比較した結果をvalid選択部401へ出力する。ここで、Readアドレスとは、メモリアクセス120においてデータメモリ115に読み出しアクセスを行う命令が実行された際に、メモリアクセス120より出力される、読み出しアクセスを行う対象のデータメモリアドレスである。加算器404は、読み出されたth_idの値とth_strideの値の和を算出し、算出結果をth_id比較部403へ出力する。th_id比較部403は、メモリアクセス120から出力されたReadth_idの値と、加算器404から受け取った値読み出されたth_idの値とth_strideの値の和とを比較し、比較した結果をvalid選択部401へ出力する。ここで、Readth_idは、メモリアクセス120においてデータメモリ115に読み出しアクセスを行う命令が実行された際に、メモリアクセス120より出力される、読み出しアクセスを行う命令が属するスレッドのスレッド番号である。valid選択部401は、Read実行信号をメモリアクセス120から受け取る。また、valid選択部401は、テーブル読出制御部300により読み出されたentry_validの値、dep_idの値及びvalidの値を取得する。さらに、valid選択部401は、Readアドレス比較部402による比較結果、及びth_id比較部403による比較結果のそれぞれを取得する。valid選択部401は、Readアドレス比較部402による比較結果、及びth_id比較部403による比較結果から、Readアドレスが検出すべきものであった場合、それに対応して取得したvalidの値を、メモリアクセス120へ出力する。1.2動作ここでは、マルチスレッドプロセッサ100の動作について説明する。1命令検出時の動作についてまず、ある命令が実行された際に、命令検出部117で行われる動作について、図4に示す流れ図を用いて説明する。なお、当該処理は、命令検出部117が演算器群112からある命令に対する命令実行信号、PC及び命令th_idを受け取ったことで、開始されるものとする。ある命令が実行されると、テーブル読出制御部300は、アクセス管理テーブルT100からエントリを読み出すための制御に用いるカウンタnを0に初期化するステップS5。ここで、カウンタnは、テーブル読出制御部300に保持されている。PC比較部302は、アクセス管理テーブルT100からn番目のエントリに含まれるvalid化PCの値を取得しステップS10、取得したvalid化PCの値と、演算器群112から受け取ったPCの値とが等しいか否かを判断するステップS15。PC比較部302がvalid化PCの値と演算器群112から受け取ったPCの値とが等しいと判断する場合ステップS15におけるYes、dep_id選択部301は、n番目のエントリに含まれるentry_validの値を取得するステップS20。ここで、ステップS15における判断結果が真であるとは、アクセス管理テーブルT100において管理されているPCで示される命令までが実行された、つまりあるメモリ領域への書き込みが完了したことを検出したことを示す。dep_id選択部301は、取得したentry_validの値が、1であるか否かを判断するステップS25。1であると判断する場合ステップS25におけるYes、dep_id選択部301は、アクセス管理テーブルT100からn番目のエントリに含まれるdep_idの値を取得する。dep_id選択部301は、取得したdep_idの値命令dep_idと、実行された命令を含むスレッドに対応するth_id命令th_idと、命令検出信号とを更新制御部114へ出力するステップS35。dep_id選択部301が1ででないと判断する場合ステップS25におけるNo、テーブル読出制御部300は、カウンタnの値をインクリメントするステップS40。テーブル読出制御部300は、アクセス管理テーブルT100に登録されているエントリの終端番号をエントリ終端レジスタから取得するステップS45。そして、テーブル読出制御部300は、カウンタnの値が、エントリの終端番号と一致するか否かを判断するステップS50。等しいと判断する場合には処理を終了しステップS50におけるYes、等しくないと判断する場合には処理はステップS10へ戻るステップS50におけるNo。2Readアクセス管理テーブルT150の更新の動作についてここでは、アクセス管理テーブルT100において管理されているPCで示される命令までが実行されると、行なわれるReadアクセス管理テーブルT150の更新の動作について、図5に示す流れ図を用いて説明する。更新制御部114は、命令検出部117から命令dep_id、命令th_id及び命令検出信号を受け取ると、Readアクセス管理テーブルT150からエントリを読み出すための制御に用いるカウンタmを0に初期化するステップS100。ここで、カウンタmは、更新制御部114に保持されている。更新制御部114は、Readアクセス管理テーブルT150からm番目のエントリに含まれるdep_idの値を取得しステップS105、取得したdep_idの値と、命令検出部117から受け取った命令dep_idの値とが等しいか否かを判断するステップS110。dep_idの値と命令dep_idの値とが等しいと判断する場合ステップS110におけるYes、更新制御部114は、Readアクセス管理テーブルT150からm番目のエントリに含まれるvalidの値を1に変更し、且つth_idの値を命令検出部117から受け取った命令th_idの値に変更するステップS115。dep_idの値と命令dep_idの値とが等しくないと判断する場合ステップS110におけるNo、更新制御部114は、カウンタmの値をインクリメントするステップS120。更新制御部114は、Readアクセス管理テーブルT150に登録されているエントリの終端番号をエントリ終端レジスタから取得するステップS125。そして、更新制御部114は、カウンタmの値が、エントリの終端番号と一致するか否かを判断するステップS130。等しいと判断する場合には処理を終了しステップS130におけるYes、等しくないと判断する場合には処理はステップS105へ戻るステップS130におけるNo。3Read命令検出時の動作についてここでは、Read命令が実行される際の動作について、図6に示す流れ図を用いて説明する。なお、当該処理は、読み出し検出部116がメモリアクセス120からRead命令に対するRead実行信号、Readアドレス及びReadth_idを受け取ったことで、開始されるものとする。まず、テーブル読出制御部400は、Readアクセス管理テーブルT150からエントリを読み出すための制御に用いるカウンタpを0に初期化するステップS200。ここで、カウンタpは、テーブル読出制御部400に保持されている。Readアドレス比較部402は、Readアクセス管理テーブルT150のp番目のエントリに含まれるAddressの値を取得しステップS205、取得したAddressの値が、メモリアクセス120から受け取ったReadアドレスの値と一致するか否かを判断するステップS210。Readアドレス比較部402が一致すると判断する場合ステップS210におけるYes、valid選択部401は、Readアクセス管理テーブルT150のp番目のエントリに含まれるentry_validの値を取得するステップS215。valid選択部401は、取得したentry_validの値が1であるか否かを判断するステップS220。valid選択部401がentry_validの値は1であると判断する場合ステップS220におけるYes、加算器404は、Readアクセス管理テーブルT150のp番目のエントリに含まれるth_idの値とth_strideの値を取得し、その和を算出するステップS225。th_id比較部403は、算出された和th_idの値とth_strideの値の和が、メモリアクセス120から受け取ったReadth_idの値と一致するか否かを判断するステップS230。一致すると判断する場合ステップS230におけるYes、valid選択部401は、Readアクセス管理テーブルT150のp番目のエントリに含まれるvalidの値を取得するステップS235。ここで、比較結果が真一致であることは、th_strideの値で示された所望の先行スレッドによる書き込みが完了したメモリ領域であることを示している。valid選択部401は、取得したvalidの値が1であるか否かを判断するステップS240。validの値が1であると判断する場合ステップS240のおけるYes、valid選択部401は、値が0であるReadアクセス信号を命令フェッチ制御部102へ出力するステップS245。Readアドレス比較部402が一致しないと判断する場合ステップS210におけるNo、及びvalid選択部401がentry_validの値は1ないと判断する場合ステップS220におけるNo、テーブル読出制御部400は、カウンタpの値をインクリメントするステップS250。テーブル読出制御部400は、Readアクセス管理テーブルT150に登録されているエントリの終端番号をエントリ終端レジスタから取得するステップS255。そして、テーブル読出制御部400は、カウンタpの値が、エントリの終端番号と一致するか否かを判断するステップS260。等しいと判断する場合には処理を終了しステップS260におけるYes、等しくないと判断する場合には処理はステップS205へ戻るステップS260におけるNo。validの値が1でないと判断する場合ステップS240のおけるNo、valid選択部401は、値が1であるReadアクセス信号を命令フェッチ制御部102へ出力するステップS265。ここで、命令フェッチ制御部102は、Readアクセス信号を受信すると、受信した信号の値が1である場合には、それまでの命令実行シーケンスを停止し、例外発生に相当する特殊処理ベクタへの分岐処理を起動する。なぜなら、アクセス管理テーブルT100で管理されているPCまでの命令が実行されていない、つまり所望の先行スレッドによるメモリ領域への書き込みが終了していないので、例外を発生させ書き込みの完了を待つシーケンスに入る必要があるからである。1.3まとめ以上により、本実施の形態で示すマルチスレッドプロセッサ100は、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。また、ハードウェアレベルで命令実行の管理を行うことにより従来のようにセマフォによる処理と比較して同期用のコードが不要となり、通信のオーバヘッドが小さくなる。したがって、スレッド間の依存関係を管理するためのソフトウェア処理が、スレッド数が多くなった場合や依存関係が複雑になった場合にも、大きな性能劣化要因とならないプロセッサを実現することができる。また、上記のアクセス管理テーブルT100及びReadアクセス管理テーブルT150についての生成のタイミングは、実行すべきプログラムを並列化ツールにより分割し、並列に処理が可能となるよう各スレッドに割り当てが行われた後である。なぜなら、各スレッドに割り当てることにより、各スレッド間での依存関係が明確になるからである。2.第2の実施の形態以下、本発明に係る第2の実施の形態について、図面を参照しながら、第1の実施の形態と異なる点を中心に説明する。2.1構成図7は、第2の実施の形態におけるマルチスレッドプロセッサ1100の構成を示すブロック図である。マルチスレッドプロセッサ1100は、NNは2以上の整数個の命令流N個のスレッドを同時に独立して実行するプロセッサであり、命令メモリ1101と、命令フェッチ制御部1102と、命令群決定部1103と、N個の命令バッファ第1命令バッファ1104、第2命令バッファ1105、...、第N命令バッファ1106と、発行命令決定部1107と、優先度決定部1108と、N個のレジスタファイル第1レジスタファイル1109、第2レジスタファイル1110、...、第Nレジスタファイル1111と、演算器群1112と、ライトバックバス1113と、更新制御部1114、データメモリ1115と、読み出し検出部1116と、命令検出部1117と、管理テーブル記憶部1118と、アドレス変換部1130を備えている。ここで、各命令バッファとレジスタファイルは1対1に対応付けられ、第1の実施の形態と同様に、N個の論理プロセッサを構成する。1アドレス変換部1130アドレス変換部1130は、命令フェッチ制御部1102から入力されたフェッチアドレス論理アドレスを、変換テーブルT200を用いて別アドレス物理アドレスへ変換して、命令メモリ1101へ出力するものである。この動作は、仮想空間を扱うためにMMUメモリマネージメントユニットを備えるプロセッサ上で、仮想空間のページを管理するためのTLBトランスレーションルックアサイドバッファの動作である例えば、以下の非特許文献2を参照。非特許文献2:ModernProcessorDesign、McGrawHillSeriesinElectricalandComputerEngineering、p142145以下、本実施の形態におけるアドレス変換部1130の具体的な機能について説明する。アドレス変換部1130は、図8に示すように、変換テーブルT200を有している。変換テーブルT200は、PCチェックフラグ、フラグ類、論理アドレス及び物理アドレスからなる組エントリを複数個記憶するための領域を有している。ここで、各エントリにおいて、4KB単位のページと呼ばれるメモリ領域が管理されている。PCチェックフラグは、当該エントリに含まれるページ内に、命令検出部1117に通知してチェックすべきPCが含まれている可能性があることを示すフラグである。具体的には、PCチェックフラグの値が1である場合にはチェックすべきPCが含まれている可能性があることを示し、値が0である場合にはチェックすべきPCが含まれている可能性が無いことを示す。フラグ類は、一般的なTLBに備えられているフラグ類であり、本特許では詳細な説明は省く。論理アドレスは、一般的なTLBに備えられている論理アドレスフィールドであり、本特許では詳細な説明は省く。物理アドレスは、一般的なTLBに備えられている物理アドレスフィールドであり、本特許では詳細な説明は省く。アドレス変換部1130は、命令フェッチ制御部1102から論理アドレスを受け取ると、変換テーブルT200を用いて当該論理アドレスを物理アドレスへと変換する。アドレス変換部1130は、受け取った論理アドレスに対応するPCチェックフラグの値が1である場合には、物理アドレスと、値が1であるPCチェック要求とを命令メモリ1101へ出力する。PCチェックフラグの値が0である場合には、アドレス変換部1130は、物理アドレスと、値が0であるPCチェック要求を命令メモリ1101へ出力する。ここで、PCチェック要求とは、命令検出部1117に通知して実行される命令のPCをチェックすべきか否かを示すものであり、PCチェック要求の値が1である場合にはチェックすべき旨を示し、値が0である場合にはチェック不要を示す。2命令メモリ1101命令メモリ1101は、第1の実施の形態と同様に、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流スレッドを保持している。命令メモリ1101は、命令フェッチ制御部1102から値が1であるPCチェック要求を受け取ると、物理アドレスで指定された命令をフェッチする際に、フェッチされた命令に対してチェック対象の命令であることを示すフラグ情報を付加して、命令フェッチ制御部1102に出力する。以降の命令デコードスケジュール実行の動作においては、当該フラグ状態が付加された状態のまま行われる。3命令フェッチ制御部1102命令フェッチ制御部1102は、各スレッドのプログラムカウンタを保持し、次に実行する命令を命令メモリから読み出す。具体的には、命令フェッチ制御部1102は、次に実行する命令の論理アドレスをアドレス変換部1130へ出力し、その後、命令メモリ1101から命令を受け取る。命令を受け取る際には、PCをチェックすべき命令である場合には、フラグ状態が付加されている。4命令群決定部1103命令群決定部1103は、第1の実施の形態で示す命令群決定部103と同様であるので、ここでの説明は省略する。5第1命令バッファ1104から第N命令バッファ1106第1命令バッファ1104から第N命令バッファ1106は、は、第1の実施の形態で示す各命令バッファと同様であるので、ここでの説明は省略する。なお、以下において、i番目の命令流を第i命令流というiは1以上N以下の整数。6発行命令決定部1107発行命令決定部1107は、第1の実施の形態で示す発行命令決定部107と同様であるので、ここでの説明は省略する。7優先度決定部1108優先度決定部1108は、第1の実施の形態で示す優先度決定部108と同様であるので、ここでの説明は省略する。8第1レジスタファイル1109から第Nレジスタファイル1111第1レジスタファイル1109から第Nレジスタファイル1111は、第1の実施の形態で示す各レジスタファイルと同様であるので、ここでの説明は省略する。演算器群1112は、第1の実施の形態と同様に、加算器や乗算器などの複数の演算器を含む処理部であり、メモリアクセス1120をも有している。ここで、メモリアクセス120は、データメモリとアクセスする命令を実行するための演算器である。演算器群1112は、実行する命令にフラグ状態が付加されている場合には、PCのチェックをすべき旨の情報を通知する。10ライトバックバス1113ライトバックバス1113は、第1の実施の形態で示すライトバックバス113と同様であるので、ここでの説明は省略する。11データメモリ1115データメモリ1115は、第1の実施の形態で示すデータメモリ115と同様であるので、ここでの説明は省略する。12管理テーブル記憶部1118管理テーブル記憶部1118は、第1の実施の形態と同様に、アクセス管理テーブル及びReadアクセス管理テーブルを記憶している。なお、以降の説明において必要であれば、図2a、bで示すアクセス管理テーブルT100及びReadアクセス管理テーブルT150を用いて説明する。13更新制御部1114更新制御部1114は、第1の実施の形態の更新制御部114と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。なお、更新についての詳細な機能は、第1の実施の形態と同様であるので、ここでの説明は省略する。14命令検出部1117命令検出部1117は、第1の実施の形態で示す命令検出部117と同様の構成要素を有し、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部1118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理を行う。第1の実施の形態と異なる点は、上記の処理は、演算器群1112からPCをチェックすべき旨の情報が通知されたときに開始されることである。以下、必要であれば、第1の実施の形態で示す構成要素を用いて説明する。15読み出し検出部1116読み出し検出部1116は、第1の実施の形態で示す読み出し検出部116と同様の構成要素を有し、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部1118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。なお、詳細な機能については、第1の実施の形態と同様であるので、ここでの説明は省略する。2.2動作ここでは、マルチスレッドプロセッサ1100の動作について、第1の実施の形態で示すマルチスレッドプロセッサ100の動作と異なる点を中心に説明する。1命令検出時の動作について命令検出時の動作は、第1の実施の形態で示す動作図4参照と同様の動作の流れであるが、開始のタイミングが異なる。本実施の形態では、命令検出部1117は、演算器群1112からPCをチェックすべき旨の情報が通知されたときに、当該処理を開始する。2Readアクセス管理テーブルT150の更新の動作について本実施の形態におけるReadアクセス管理テーブルT150の更新の動作は、第1の実施の形態で示す動作図5参照と同様であるので、ここでの説明は省略する。3Read命令検出時の動作について本実施の形態におけるRead命令検出時の動作は、第1の実施の形態で示す動作図6参照と同様であるので、ここでの説明は省略する。2.3まとめ以上により、アドレス変換部1130を用いることで、演算器群1112で実行され、命令検出部1117でチェックする命令数を大幅に削減し、命令検出部1117の動作頻度を削減し、回路の消費電力を削減することができる。また、第1の実施の形態と同様に、本実施の形態で示すマルチスレッドプロセッサ100は、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。第1の実施の形態と同様に、第2の実施の形態においても、ハードウェアレベルで命令実行の管理を行っており、従来のようにセマフォによる処理と比較して同期用のコードが不要となり、通信のオーバヘッドが小さくなる。したがって、スレッド間の依存関係を管理するためのソフトウェア処理が、スレッド数が多くなった場合や依存関係が複雑になった場合にも、大きな性能劣化要因とならないプロセッサを実現することができる。また、第1の実施の形態と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150についての生成のタイミングは、実行すべきプログラムを並列化ツールにより分割し、並列に処理が可能となるよう各スレッドに割り当てが行われた後である。さらに、変換テーブルT200についても、実行すべきプログラムを並列化ツールにより分割し、並列に処理が可能となるよう各スレッドに割り当てが行われた後に生成される。なぜなら、各スレッドに割り当てることにより、各スレッド間で使用されるページ等も明確にかるからである。3.第3の実施の形態以下、本発明に係る第3の実施の形態について、図面を参照しながら、第1及び第2の実施の形態と異なる点を中心に説明する。3.1構成図9は、第3の実施の形態におけるマルチスレッドプロセッサ2100の構成を示すブロック図である。マルチスレッドプロセッサ2100は、NNは2以上の整数個の命令流N個のスレッドを同時に独立して実行するプロセッサであり、命令メモリ2101と、命令フェッチ制御部2102と、命令群決定部2103と、N個の命令バッファ第1命令バッファ2104、第2命令バッファ2105、...、第N命令バッファ2106と、発行命令決定部2107と、優先度決定部2108と、N個のレジスタファイル第1レジスタファイル2109、第2レジスタファイル2110、...、第Nレジスタファイル2111と、演算器群2112と、ライトバックバス2113と、更新制御部2114、データメモリ2115と、読み出し検出部2116と、命令検出部2117と、管理テーブル記憶部2118と、アドレス変換部2130を備えている。ここで、各命令バッファとレジスタファイルは1対1に対応付けられ、第1及び第2の実施の形態と同様に、N個の論理プロセッサを構成する。1命令メモリ2101命令メモリ2101は、第1の実施の形態と同様に、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流スレッドを保持している。2命令フェッチ制御部2102命令フェッチ制御部2102は、第1の実施の形態で示す命令フェッチ制御部102と同様であるので、ここでの説明は省略する。3命令群決定部2103命令群決定部2103は、第1の実施の形態で示す命令群決定部103と同様であるので、ここでの説明は省略する。4第1命令バッファ2104から第N命令バッファ2106第1命令バッファ2104から第N命令バッファ2106は、は、第1の実施の形態で示す各命令バッファと同様であるので、ここでの説明は省略する。なお、以下において、i番目の命令流を第i命令流というiは1以上N以下の整数。5発行命令決定部2107発行命令決定部2107は、第1の実施の形態で示す発行命令決定部107と同様であるので、ここでの説明は省略する。6優先度決定部2108優先度決定部2108は、第1の実施の形態で示す優先度決定部108と同様であるので、ここでの説明は省略する。7第1レジスタファイル2109から第Nレジスタファイル2111第1レジスタファイル2109から第Nレジスタファイル2111は、第1の実施の形態で示す各レジスタファイルと同様であるので、ここでの説明は省略する。8アドレス変換部2130アドレス変換部2130は、メモリアクセス2120から入力されたアクセスアドレス論理アドレスを、変換テーブルT300を用いて別アドレス物理アドレスへ変換して、データメモリ2115へ出力するものである。この動作は、仮想空間を扱うためにMMUメモリマネージメントユニットを備えるプロセッサ上で、仮想空間のページを管理するためのTLBトランスレーションルックアサイドバッファの動作である非特許文献1参照。以下、本実施の形態におけるアドレス変換部2130の具体的な機能について説明する。アドレス変換部2130は、図10に示すように、変換テーブルT300を有している。変換テーブルT300は、Readチェックフラグ、フラグ類、論理アドレス及び物理アドレスからなる組エントリを複数個記憶するための領域を有している。ここで、各エントリにおいて、4KB単位のページと呼ばれるメモリ領域が管理されている。Readチェックフラグは、当該エントリに含まれるページ内に、読み出し検出部2116に通知してチェックすべきReadアドレスが含まれている可能性があることを示すフラグである。具体的には、Readチェックフラグの値が1である場合にはチェックすべきReadアドレスが含まれている可能性があることを示し、値が0である場合にはチェックすべきReadアドレスが含まれている可能性が無いことを示す。フラグ類は、一般的なTLBに備えられているフラグ類であり、本特許では詳細な説明は省く。論理アドレスは、一般的なTLBに備えられている論理アドレスフィールドであり、本特許では詳細な説明は省く。論理アドレスは、一般的なTLBに備えられている物理アドレスフィールドであり、本特許では詳細な説明は省く。アドレス変換部2130は、メモリアクセス2120から論理アドレスを受け取ると、変換テーブルT300を用いて当該論理アドレスを物理アドレスへと変換する。アドレス変換部2130は、受け取った論理アドレスに対応するReadチェックフラグの値が1である場合には、値が1であるReadチェック要求とをメモリアクセス2120へ出力する。Readチェックフラグの値が0である場合には、アドレス変換部2130は、値が0であるReadチェック要求をメモリアクセス2120へ出力する。ここで、Readチェック要求とは、読み出し検出部2116に通知して実行されるRead命令のReadアクセスをチェックすべきか否かを示すものであり、Readチェック要求の値が1である場合にはチェックすべき旨を示し、値が0である場合にはチェック不要を示す。演算器群2112は、第1の実施の形態と同様に、加算器や乗算器などの複数の演算器を含む処理部であり、メモリアクセス2120をも有している。ここで、メモリアクセス220は、データメモリとアクセスする命令を実行するための演算器である。メモリアクセス2120は、実行する命令に対するReadチェック要求をアドレス変換部2130から受け取ると、Readアドレスのチェックをすべき旨の情報を通知する。10ライトバックバス2113ライトバックバス2113は、第1の実施の形態で示すライトバックバス113と同様であるので、ここでの説明は省略する。11データメモリ2115データメモリ2115は、第1の実施の形態で示すデータメモリ115と同様であるので、ここでの説明は省略する。12管理テーブル記憶部2118管理テーブル記憶部2118は、第1の実施の形態と同様に、アクセス管理テーブル及びReadアクセス管理テーブルを記憶している。なお、以降の説明において必要であれば、図2a、bで示すアクセス管理テーブルT100及びReadアクセス管理テーブルT150を用いて説明する。13更新制御部2114更新制御部2114は、第1の実施の形態の更新制御部114と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。なお、更新についての詳細な機能は、第1の実施の形態と同様であるので、ここでの説明は省略する。14命令検出部2117命令検出部2117は、第1の実施の形態で示す命令検出部117と同様の構成要素を有し、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部2118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理を行う。なお、詳細な機能については、第1の実施の形態と同様であるので、ここでの説明は省略する。15読み出し検出部2116読み出し検出部2116は、第1の実施の形態で示す読み出し検出部116と同様の構成要素を有し、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部1118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。第1及び第2の実施の形態と異なる点は、上記の処理は、メモリアクセス2120からReadアドレスをチェックすべき旨の情報が通知されたときに開始されることである。以下、必要であれば、第1の実施の形態で示す構成要素を用いて説明する。3.2動作ここでは、マルチスレッドプロセッサ2100の動作について、第1の実施の形態で示すマルチスレッドプロセッサ100、及び第2の実施の形態で示すマルチスレッドプロセッサ1100の動作と異なる点を中心に説明する。1命令検出時の動作について命令検出時の動作は、第1の実施の形態で示す動作図4参照と同様であるので、ここでの説明は省略する。2Readアクセス管理テーブルT150の更新の動作について本実施の形態におけるReadアクセス管理テーブルT150の更新の動作は、第1の実施の形態で示す動作図5参照と同様であるので、ここでの説明は省略する。3Read命令検出時の動作について本実施の形態におけるRead命令検出時の動作は、第1の実施の形態で示す動作図6参照と同様の動作の流れであるが、開始のタイミングが異なる。本実施の形態では、読み出し検出部2116は、メモリアクセス2120からReadアドレスをチェックすべき旨の情報が通知されたときに、当該処理を開始する。なお、詳細な動作の流れは、図4にて示す流れ図と同様であるので、ここでの説明は省略する。3.3まとめ以上により、アドレス変換部1130を用いることで、演算器群2112で実行され、読み出し検出部2116でチェックするRead命令数を大幅に削減し、読み出し検出部2116の動作頻度を削減し、回路の消費電力を削減することができる。また、第1の実施の形態と同様に、本実施の形態で示すマルチスレッドプロセッサ100は、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。第1の実施の形態と同様に、第3の実施の形態においても、ハードウェアレベルで命令実行の管理を行っており、従来のようにセマフォによる処理と比較して同期用のコードが不要となり、通信のオーバヘッドが小さくなる。したがって、スレッド間の依存関係を管理するためのソフトウェア処理が、スレッド数が多くなった場合や依存関係が複雑になった場合にも、大きな性能劣化要因とならないプロセッサを実現することができる。なお、本実施の形態で示すマルチスレッドプロセッサ2100は、第1の実施の形態で示すマルチスレッドプロセッサ100の構成要素にアドレス変換部2130を加えた構成としたが、本実施の形態で示すマルチスレッドプロセッサ2100は、第2の実施の形態で示すマルチスレッドプロセッサ1100の構成要素にアドレス変換部2130を加えた構成としてもよい。また、第1の実施の形態と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150についての生成のタイミングは、実行すべきプログラムを並列化ツールにより分割し、並列に処理が可能となるよう各スレッドに割り当てが行われた後である。さらに、変換テーブルT300についても、実行すべきプログラムを並列化ツールにより分割し、並列に処理が可能となるよう各スレッドに割り当てが行われた後に生成される。なぜなら、各スレッドに割り当てることにより、各スレッド間で使用されるページ等も明確にかるからである。4.第4の実施の形態以下、本発明に係る第4の実施の形態について、図面を参照しながら、第1の実施の形態と異なる点を中心に説明する。図11は、第4の実施の形態におけるマルチコアプロセッサシステム3000のハードウェア構成を示すブロック図である。マルチコアプロセッサシステム3000は、図3に示すようにマルチスレッドプロセッサ100aと100bとから構成されている。マルチスレッドプロセッサ100aと100bとは、ともに第1の実施の形態で示すマルチスレッドプロセッサ100と同様の構成を有している。マルチスレッドプロセッサ100と異なる点は、マルチスレッドプロセッサ100aが有する更新制御部114aと、マルチスレッドプロセッサ100bが有する更新制御部114bとの機能が、第1の実施の形態における更新制御部114の機能と異なる点である。以下、その点を中心に説明する。マルチスレッドプロセッサ100aが有する管理テーブル記憶部118aと、マルチスレッドプロセッサ100bが有する管理テーブル記憶部118bとは、第1の実施の形態で示す管理テーブル記憶部118bと同様であるのでここでの説明は省略する。更新制御部114aは、当該マルチスレッドプロセッサ100aで保持されている各テーブルを更新するとともに、マルチスレッドプロセッサ100bで保持されている各テーブルの更新をも行う。また、更新制御部114bについても同様に、当該マルチスレッドプロセッサ100bで保持されている各テーブルを更新するとともに、マルチスレッドプロセッサ100aで保持されている各テーブルの更新をも行う。なお、更新のタイミングについては、第1の実施の形態と同様であるので、ここでの詳細な説明については、省略する。以上により、プロセッサ間の密結合を抑制し、半導体としての実装難易度を下げることができる。なお、本実施の形態で示すマルチスレッドプロセッサ3100は、第1の実施の形態で示すマルチスレッドプロセッサ100の更新制御部114を変更した構成としたが、これに限定されない。本実施の形態で示すマルチスレッドプロセッサ3100は、第2の実施の形態で示すマルチスレッドプロセッサ1100の更新制御部1114を変更した構成としてもよいし、第3の実施の形態で示すマルチスレッドプロセッサ2100の更新制御部2114を変更した構成としてもよい。5.第5の実施の形態ここでは、本発明に係る第5の実施の形態について、第1の実施の形態で示すマルチスレッドプロセッサ100をデジタルAV機器向けのシステムLSI映像のデコード及びエンコード処理に適用する場合の動作を説明する。先ず、デコード処理に適用した場合について説明する。マルチスレッドプロセッサ100は、図12に示すように、4つのマクロブロックMBn、MBn1、Bn2、Bn3をデコードするものであり、マクロブロック単位MBn、MBn1、Bn2、Bn3の処理を、スレッド0からスレッド3として、各マクロブロックのデコード処理を行う。ここで、マクロブロックMBn、MBn1、Bn2、Bn3は、これらの配置が連続していることとする。例えば、H.264等の規格を用いて圧縮された映像信号をデコードするためには、ビットストリームの解析可変長符号化された信号の可変長復号処理VLD逆量子化及び逆周波数変換IQT動き補償MC画像の再構成Reconデブロックフィルタ処理DBFを行う必要がある。また、例えば、マクロブロックMBnの可変長復号処理においては、次のマクロブロックMBn1で参照すべきデータ受け渡しデータをあるメモリ領域へ書き込む。図13で示すように、時間t1でその書き込みが完了すると、マルチスレッドプロセッサ100は、Readアクセス管理テーブルT150での当該メモリ領域に対応するAddressに応じたvalidの値を1へと更新する。こうすることで、次のマクロブロックMBn1は、当該メモリ領域に書き込まれた受け渡しデータの読み出しを開始することができる。また、時間t2、t3、t4、t5においても同様に、マクロブロックMBnでデコードに係る処理IQT、MC、Recon、DBFそれぞれが完了すると、つまり受け渡しデータの書込みが完了すると、マルチスレッドプロセッサ100は、Readアクセス管理テーブルT150で対応するAddressに応じたvalidの値を1へと更新する。これにより、マクロブロックMBn1では、デコードに係る処理IQT、MC、Recon、DBFを実行する際に、マクロブロックMBnにより書き込まれた受け渡しデータの読み出しを開始することができる。なお、マクロブロックMBn1とマクロブロックMBn2との間、及びマクロブロックMBn2とマクロブロックMBn3との間それぞれにおけるデコード処理に係る依存関係についても上記と同様であるので、ここでの説明は省略する。次に、エンコード処理に適用した場合を説明する。マクロブロックのエンコード処理には、通常、符号化対象の画像データに対する予測誤差を算出する減算処理、予測誤差に対して周波数変換及び量子化を行う量子化処理、量子化DCT係数及び動きベクトルを可変長符号化する符号化処理、参照画像の生成に係る処理、動き補償に係る処理が含まれる。マルチスレッドプロセッサの動作の概念は、上記のデコード処理に適用した場合と同様に、あるマクロブロック例えば、MBnについての減算処理が完了する、つまり次のマクロブロックMBn1に引き渡すデータの書き込みが完了すると、マクロブロックMBn1は、書き込まれた受け渡しデータの読み出しを開始する。また、他の処理についての依存関係においても同様である。このように、マクロブロック単位のエンコード処理及びエンコード処理をスレッド毎に実行する場合、各スレッド間の依存関係をプログラムカウンタで管理することにより、スレッド間の依存関係を管理するためのソフトウェア処理が、スレッド数が多くなった場合や依存関係が複雑になった場合にも、大きな性能劣化要因とならないデジタルAV機器向けのシステムLSI映を実現することができる。6.変形例以上、各実施の形態に基づいて説明したが、本発明は上記の各実施の形態に限られない。例えば、以下のような変形例が考えられる。1上記第1の実施の形態において、Readアドレスの値とReadアクセス管理テーブルT150のAddressの値との比較において、全アドレスビットを用いた比較を行っていたが、これに限定されない。例えば、下位7ビットを比較対象から除外することで、128ビット精度での比較としてもよい。こうすることで、Readアクセス管理テーブルT150の記憶容量を削減することができる。2上記各実施の形態において、アクセス管理テーブル及びReadアクセス管理テーブルを管理テーブル記憶部へ記憶するタイミングは、ユーザ操作によるものであってよい。または、アクセス管理テーブル及びReadアクセス管理テーブルを管理テーブル記憶部とは異なる記憶領域に予め保持しておき、その保持しているアドレスを指定する専用の命令を実行することで、前記異なる記憶領域から管理テーブル記憶部へ、各テーブルをコピーしてもよい。3上記各実施の形態において、あるメモリ領域への書き込みの完了の検出、つまりスレッドに含まれる特定の位置に存在する命令の検出をプログラムカウンタPCで制御したが、これに限定されない。例えば、検出対象となるスレッドに含まれる特定の位置に、専用命令を置いてもよい。または、実行前にその位置にOP例外が発生するようなコードをおいて対応する割り込み処理ルーチンで処理をしてもよい。4上記各実施の形態において、読み出し命令についてもプロセッサエレメントのデコード処理する他に、実行前にOP例外が発生するよう読み出し命令をコード書き換えする等の方法でトラップして対応するルーチンで特別処理をしてもよい。5上記各実施の形態において、アクセス管理テーブルのエントリとReadアクセス管理テーブルのエントリとは、1対1の関係にあったが、これに限定されない。1対多の関係であってもよい。この場合、読み出し検出部は、図6に示すステップS230の判断についてNoと判断する場合、処理の移行先をステップS250へと変更することで実現できる。6上記各実施の形態において、管理対象となるメモリ領域の領域長は、固定長であってもよいし、管理対象となるメモリ領域毎に異なる可変長であってもよい。7上記各実施の形態において、データを読み出す際には、アドレスを参照したが、これに限定されない。PCプログラムカウンタ指定により読み出しを行ってもよい。例えば、書き込みWriteと読み出しReadの依存関係において、Write時にPCを特定できない場合に、Read側でPC既に書き込みが終わっていることを保証する命令を特定することで、WriteとReadの依存関係を保つことができる。8上記各実施の形態において、書き込みが終わっていることを保証するものとしてPCを特定することとしたが、これに限定されない。特定の制御レジスタの内容やメモリの内容を参照して、書き込みが終わっているか否かを判断してもよい。9上記第5の実施の形態において、配置が連続するマクロブロック単位に並列処理、つまりスレッドの割り当てを行ったが、これに限定されない。並列処理は、マクロブロックライン単位であってもよいし、画像処理におけるIDCT等の処理単位であってもよい。または、GOPGroupOfPicture単位であってもよい。10上記の実施の形態で説明した手法の手順を記述したプログラムをメモリに記憶しておき、CPUCentralProcessingUnitなどがメモリからプログラムを読み出して、読み出したプログラムを実行することによって、上記の手法が実現されるようにしてもよい。また、当該手法の手順を記述したプログラムを記録媒体に格納して、頒布するようにしてもよい。11上記実施の形態及び変形例を組み合わせるとしてもよい。7.補足1本発明の一実施態様である、複数のスレッドを実行するプロセッサは、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とする。この構成によると、プロセッサは、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行することで、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行う。つまり、プロセッサは、当該位置に存在する命令が実行されるまでに存在する命令が実行されていることを保証した上で、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行うことができる。これにより、プロセッサは、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。2ここで、前記設定手段は、前記位置に存在する命令に応じたプログラムカウンタの値を予め保持する保持領域を有しており、外部から前記プログラムカウンタの値を取得すると、前記保持領域へ格納し、前記一のスレッドにて実行される命令に応じたプログラムカウンタの値と、保持している値とが一致する場合に、前記一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を前記利用情報に設定するとしてもよい。この構成によると、プロセッサは、プログラムカウンタを用いることで、一のスレッドにおける前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を容易に特定することができる。3ここで、前記保持領域には、さらに、前記利用情報と、前記メモリ領域を示すメモリアドレスとが対応付けられて保持されており、前記制御手段は、前記他のスレッドから前記読み出し命令による読み出し対象であるメモリ領域の読み出し対象アドレスを取得し、前記読み出し対象アドレスと前記メモリアドレスとが一致する場合に、対応する利用情報が示す内容に応じて前記読み出し命令を実行及び抑止するとしてもよい。この構成によると、プロセッサは、利用情報とメモリアドレスとを対応付けて保持しているので、読み出し対象を示すメモリアドレスが示すメモリ領域の利用状況を容易に特定することができる。4ここで、前記プロセッサは、さらに、データの読み出しを行う際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記メモリアドレスとの間に関連がある場合には、前記メモリ領域の利用状況を確認すべき旨を通知するアドレス変換手段を備え、前記制御手段は、前記通知を受け取ると、前記メモリアドレスに対応する前記メモリ領域の利用状況を前記利用情報に基づいて判断するとしてもよい。この構成によると、プロセッサは、アドレス変換手段を備えることで、制御手段が前記所定のメモリ領域の利用状況を判断する必要があるか否かを事前に特定することができる。5ここで、前記メモリ領域は、前記他のスレッドとは別のスレッドにも利用される領域であり、前記制御手段は、さらに、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、前記別のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止するとしてもよい。この構成によると、プロセッサは、複数の命令の実行後、複数のスレッドで共通に利用するメモリ領域に対する読み出し命令を実行する場合でも、依存関係を保持したままで実行することができる。6ここで、前記プロセッサは、さらに、命令をフェッチする際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記プログラムカウンタとの間に関連がある場合には、前記許可手段による前記判断を実行することを要求する要求情報を前記許可手段に通知するアドレス変換手段を備え、前記許可手段は、前記要求情報を前記アドレス変換手段から受け取ると、前記判断を行うとしてもよい。この構成によると、プロセッサは、アドレス変換手段を備えることで、許可手段による判断を行う必要があるか否かを事前に特定することができる。7ここで、前記設定手段は、さらに、前記メモリ領域への書き込みが完了したことを示す旨を利用情報に設定する際に、他のプロセッサで管理されている別の利用情報に対しても前記メモリ領域への書き込みが完了したことを示す内容を設定するとしてもよい。この構成によると、プロセッサは、他のプロセッサとの間においても複数の書き込み命令の実行後に読み出し命令を実行するという依存関係を保ちながら処理を行うことができる。8ここで、前記一のスレッド及び他のスレッドは、画像のデコード処理を行うためのものであり、前記プロセッサは、画像のデコード処理を行う画像処理システムに備えられるとしてもよい。この構成によると、プロセッサは、複数の書き込み命令の実行後に読み出し命令を実行するという依存関係を保ちながらデコード処理を行うことができる。9ここで、前記一のスレッド及び他のスレッドは、画像のエンコード処理を行うためのものであり、前記プロセッサは、画像のエンコード処理を行う画像処理システムに備えられるとしてもよい。この構成によると、プロセッサは、複数の書き込み命令の実行後に読み出し命令を実行するという依存関係を保ちながらエンコード処理を行うことができる。10また、本発明の一態様である、複数のスレッドを用いて画像を処理する画像処理装置は、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とする。この構成によると、画像処理装置は、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行することで、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行う。つまり、画像処理装置は、当該位置に存在する命令が実行されるまでに存在する命令が実行されていることを保証した上で、他のスレッドによる当該メモリ領域に存在するデータの読み出しを行うことができる。これにより、画像処理装置は、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。11ここで、前記画像処理装置は、符号化された画像を復号するものであり、前記複数のスレッドには、符号化された一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、前記書き込みが完了したこと保証する位置に存在する命令とは、可変長復号処理、逆量子化逆周波数変換に係る処理、動き補償に係る処理、画像の再構成処理及びデブロッキングフィルタ処理の何れかの処理が完了したことを示す命令であり、制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御するとしてもよい。この構成によると、画像処理装置は、配置が連続するマクロブロックについて、マクロブロック間の依存関係を保ったまま、デコード処理を行うことができる。12ここで、前記画像処理装置は、画像を符号化するものであり、前記複数のスレッドには、一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、前記書き込みが完了したこと保証する位置に存在する命令とは、符号化対象の画像データに対する予測誤差を算出する減算処理、予測誤差に対して量子化と周波数変換を行う量子化処理、符号化処理、参照画像の生成処理、動き補償に係る処理の何れかであり、制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御するとしてもよい。この構成によると、画像処理装置は、配置が連続するマクロブロックについて、マクロブロック間の依存関係を保ったまま、エンコード処理を行うことができる。