JPWO2012004990A1 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JPWO2012004990A1 JPWO2012004990A1 JP2012523764A JP2012523764A JPWO2012004990A1 JP WO2012004990 A1 JPWO2012004990 A1 JP WO2012004990A1 JP 2012523764 A JP2012523764 A JP 2012523764A JP 2012523764 A JP2012523764 A JP 2012523764A JP WO2012004990 A1 JPWO2012004990 A1 JP WO2012004990A1
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- memory area
- writing
- completed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 54
- 238000006243 chemical reaction Methods 0.000 claims description 49
- 238000013139 quantization Methods 0.000 claims description 10
- 230000002401 inhibitory effect Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 107
- 238000001514 detection method Methods 0.000 description 66
- 239000000872 buffer Substances 0.000 description 36
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000006866 deterioration Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
以下、本発明に係る第1の実施の形態について、図面を参照しながら説明する。
図1は、第1の実施の形態におけるマルチスレッドプロセッサ100の構成を示すブロック図である。
命令メモリ101は、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流(スレッド)を保持している。
命令フェッチ制御部102は、各スレッドのプログラムカウンタ(PC)を保持し、次に実行する命令を命令メモリから読み出す。ここで、各スレッドのプログラムカウンタは、互いに異なる値の範囲においてカウントされるものとする。
命令群決定部103は、命令メモリ101から、各命令流に属する命令を読み出し、デコードを行い、当該命令が割り当てられている命令バッファに書き込む。
第i命令バッファ(iは1以上N以下の整数)は、i番目の命令流(以下、第i命令流という。)に属する命令を受け取り、保持するものである。
発行命令決定部107は、N個の命令バッファからマシンサイクル毎に発行する命令を決定するものである。
優先度決定部108は、発行命令決定部107において発行する命令を決定する際に用いる優先度情報テーブル保持している。
第iレジスタファイル(iは1以上N以下の整数)は、第i命令バッファに保持された命令流を実行することによって、読み出し及び書き込みの対象とされるデータを保持するレジスタ群である。
ライトバックバス113は、演算器群112からの出力を第1レジスタファイル109〜第Nレジスタファイル111に書き戻すためのバスである。
データメモリ115は、データメモリとアクセスする命令によってアクセスされ、プログラムを実行する際のデータを保持している。
管理テーブル記憶部118は、図2(a)、(b)に示すように、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を記憶している。
アクセス管理テーブルT100は、図2(a)に示すように、entry_valid200、dep_id201及びvalid化PC202からなる組を複数個記憶するための領域を有している。
更新制御部114は、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。
更新制御部114は、ソフトウェアからソフトウェア更新指示を受け付けると、アクセス管理テーブルT100内のフィールドを更新する。いずれのフィールドも、ソフトウェアによる読み出し、書き込みが可能である。
更新制御部114は、アクセス管理テーブルT100の更新時と同様にソフトウェアからソフトウェア更新指示を受け付けると、Readアクセス管理テーブルT150内のフィールドを更新する。いずれのフィールドも、ソフトウェアによる読み出し、書き込みが可能である。
命令検出部117は、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理部である。つまり、あるメモリ領域への書き込みが完了したか否かを検出するものである。
読み出し検出部116は、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。
ここでは、マルチスレッドプロセッサ100の動作について説明する。
まず、ある命令が実行された際に、命令検出部117で行われる動作について、図4に示す流れ図を用いて説明する。なお、当該処理は、命令検出部117が演算器群112からある命令に対する命令実行信号、PC及び命令th_idを受け取ったことで、開始されるものとする。
ここでは、アクセス管理テーブルT100において管理されているPCで示される命令までが実行されると、行なわれるReadアクセス管理テーブルT150の更新の動作について、図5に示す流れ図を用いて説明する。
ここでは、Read命令が実行される際の動作について、図6に示す流れ図を用いて説明する。なお、当該処理は、読み出し検出部116がメモリアクセス120からRead命令に対するRead実行信号、Readアドレス及びRead th_idを受け取ったことで、開始されるものとする。
テーブル読出制御部400は、カウンタpの値をインクリメントする(ステップS250)。テーブル読出制御部400は、Readアクセス管理テーブルT150に登録されているエントリの終端番号をエントリ終端レジスタから取得する(ステップS255)。そして、テーブル読出制御部400は、カウンタpの値が、エントリの終端番号と一致するか否かを判断する(ステップS260)。等しいと判断する場合には処理を終了し(ステップS260における「Yes」)、等しくないと判断する場合には処理はステップS205へ戻る(ステップS260における「No」)。
以上により、本実施の形態で示すマルチスレッドプロセッサ100は、例えば書き込み命令を複数回実行した後に読み出し命令を実行するという依存関係を保つことができる。
以下、本発明に係る第2の実施の形態について、図面を参照しながら、第1の実施の形態と異なる点を中心に説明する。
図7は、第2の実施の形態におけるマルチスレッドプロセッサ1100の構成を示すブロック図である。
アドレス変換部1130は、命令フェッチ制御部1102から入力されたフェッチアドレス(論理アドレス)を、変換テーブルT200を用いて別アドレス(物理アドレス)へ変換して、命令メモリ1101へ出力するものである。この動作は、仮想空間を扱うためにMMU(メモリマネージメントユニット)を備えるプロセッサ上で、仮想空間のページを管理するためのTLB(トランスレーションルックアサイドバッファ)の動作である(例えば、以下の非特許文献2を参照)。
以下、本実施の形態におけるアドレス変換部1130の具体的な機能について説明する。
命令メモリ1101は、第1の実施の形態と同様に、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流(スレッド)を保持している。
命令フェッチ制御部1102は、各スレッドのプログラムカウンタを保持し、次に実行する命令を命令メモリから読み出す。
命令群決定部1103は、第1の実施の形態で示す命令群決定部103と同様であるので、ここでの説明は省略する。
第1命令バッファ1104から第N命令バッファ1106は、は、第1の実施の形態で示す各命令バッファと同様であるので、ここでの説明は省略する。なお、以下において、i番目の命令流を第i命令流という(iは1以上N以下の整数)。
発行命令決定部1107は、第1の実施の形態で示す発行命令決定部107と同様であるので、ここでの説明は省略する。
優先度決定部1108は、第1の実施の形態で示す優先度決定部108と同様であるので、ここでの説明は省略する。
第1レジスタファイル1109から第Nレジスタファイル1111は、第1の実施の形態で示す各レジスタファイルと同様であるので、ここでの説明は省略する。
ライトバックバス1113は、第1の実施の形態で示すライトバックバス113と同様であるので、ここでの説明は省略する。
データメモリ1115は、第1の実施の形態で示すデータメモリ115と同様であるので、ここでの説明は省略する。
管理テーブル記憶部1118は、第1の実施の形態と同様に、アクセス管理テーブル及びReadアクセス管理テーブルを記憶している。なお、以降の説明において必要であれば、図2(a)、(b)で示すアクセス管理テーブルT100及びReadアクセス管理テーブルT150を用いて説明する。
更新制御部1114は、第1の実施の形態の更新制御部114と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。なお、更新についての詳細な機能は、第1の実施の形態と同様であるので、ここでの説明は省略する。
命令検出部1117は、第1の実施の形態で示す命令検出部117と同様の構成要素を有し、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部1118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理を行う。
読み出し検出部1116は、第1の実施の形態で示す読み出し検出部116と同様の構成要素を有し、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部1118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。
ここでは、マルチスレッドプロセッサ1100の動作について、第1の実施の形態で示すマルチスレッドプロセッサ100の動作と異なる点を中心に説明する。
命令検出時の動作は、第1の実施の形態で示す動作(図4参照)と同様の動作の流れであるが、開始のタイミングが異なる。本実施の形態では、命令検出部1117は、演算器群1112からPCをチェックすべき旨の情報が通知されたときに、当該処理を開始する。
本実施の形態におけるReadアクセス管理テーブルT150の更新の動作は、第1の実施の形態で示す動作(図5参照)と同様であるので、ここでの説明は省略する。
本実施の形態におけるRead命令検出時の動作は、第1の実施の形態で示す動作(図6参照)と同様であるので、ここでの説明は省略する。
以上により、アドレス変換部1130を用いることで、演算器群1112で実行され、命令検出部1117でチェックする命令数を大幅に削減し、命令検出部1117の動作頻度を削減し、回路の消費電力を削減することができる。
以下、本発明に係る第3の実施の形態について、図面を参照しながら、第1及び第2の実施の形態と異なる点を中心に説明する。
図9は、第3の実施の形態におけるマルチスレッドプロセッサ2100の構成を示すブロック図である。
命令メモリ2101は、第1の実施の形態と同様に、マルチスレッドプロセッサにおいて実行される命令を保持するメモリであり、N本の独立に実行される命令流(スレッド)を保持している。
命令フェッチ制御部2102は、第1の実施の形態で示す命令フェッチ制御部102と同様であるので、ここでの説明は省略する。
命令群決定部2103は、第1の実施の形態で示す命令群決定部103と同様であるので、ここでの説明は省略する。
第1命令バッファ2104から第N命令バッファ2106は、は、第1の実施の形態で示す各命令バッファと同様であるので、ここでの説明は省略する。なお、以下において、i番目の命令流を第i命令流という(iは1以上N以下の整数)。
発行命令決定部2107は、第1の実施の形態で示す発行命令決定部107と同様であるので、ここでの説明は省略する。
優先度決定部2108は、第1の実施の形態で示す優先度決定部108と同様であるので、ここでの説明は省略する。
第1レジスタファイル2109から第Nレジスタファイル2111は、第1の実施の形態で示す各レジスタファイルと同様であるので、ここでの説明は省略する。
アドレス変換部2130は、メモリアクセス2120から入力されたアクセスアドレス(論理アドレス)を、変換テーブルT300を用いて別アドレス(物理アドレス)へ変換して、データメモリ2115へ出力するものである。この動作は、仮想空間を扱うためにMMU(メモリマネージメントユニット)を備えるプロセッサ上で、仮想空間のページを管理するためのTLB(トランスレーションルックアサイドバッファ)の動作である(非特許文献1参照)。
ライトバックバス2113は、第1の実施の形態で示すライトバックバス113と同様であるので、ここでの説明は省略する。
データメモリ2115は、第1の実施の形態で示すデータメモリ115と同様であるので、ここでの説明は省略する。
管理テーブル記憶部2118は、第1の実施の形態と同様に、アクセス管理テーブル及びReadアクセス管理テーブルを記憶している。なお、以降の説明において必要であれば、図2(a)、(b)で示すアクセス管理テーブルT100及びReadアクセス管理テーブルT150を用いて説明する。
更新制御部2114は、第1の実施の形態の更新制御部114と同様に、アクセス管理テーブルT100及びReadアクセス管理テーブルT150を更新するものである。なお、更新についての詳細な機能は、第1の実施の形態と同様であるので、ここでの説明は省略する。
命令検出部2117は、第1の実施の形態で示す命令検出部117と同様の構成要素を有し、命令の実行時に、その命令のプログラムカウンタの値に基づいて、管理テーブル記憶部2118で保持されているアクセス管理テーブルT100で管理されているプログラムカウンタか否かを検出する処理を行う。
読み出し検出部2116は、第1の実施の形態で示す読み出し検出部116と同様の構成要素を有し、データメモリとアクセスする命令の実行時に、そのアクセス対象アドレスに基づいて、管理テーブル記憶部1118で保持されているReadアクセス管理テーブルT150で管理されているメモリ領域であるか否かを検出する。
ここでは、マルチスレッドプロセッサ2100の動作について、第1の実施の形態で示すマルチスレッドプロセッサ100、及び第2の実施の形態で示すマルチスレッドプロセッサ1100の動作と異なる点を中心に説明する。
命令検出時の動作は、第1の実施の形態で示す動作(図4参照)と同様であるので、ここでの説明は省略する。
本実施の形態におけるReadアクセス管理テーブルT150の更新の動作は、第1の実施の形態で示す動作(図5参照)と同様であるので、ここでの説明は省略する。
本実施の形態におけるRead命令検出時の動作は、第1の実施の形態で示す動作(図6参照)と同様の動作の流れであるが、開始のタイミングが異なる。本実施の形態では、読み出し検出部2116は、メモリアクセス2120からReadアドレスをチェックすべき旨の情報が通知されたときに、当該処理を開始する。
以上により、アドレス変換部1130を用いることで、演算器群2112で実行され、読み出し検出部2116でチェックするRead命令数を大幅に削減し、読み出し検出部2116の動作頻度を削減し、回路の消費電力を削減することができる。
以下、本発明に係る第4の実施の形態について、図面を参照しながら、第1の実施の形態と異なる点を中心に説明する。
ここでは、本発明に係る第5の実施の形態について、第1の実施の形態で示すマルチスレッドプロセッサ100をデジタルAV機器向けのシステムLSI映像のデコード及びエンコード処理に適用する場合の動作を説明する。
以上、各実施の形態に基づいて説明したが、本発明は上記の各実施の形態に限られない。例えば、以下のような変形例が考えられる。
特定の制御レジスタの内容やメモリの内容を参照して、書き込みが終わっているか否かを判断してもよい。 (9)上記第5の実施の形態において、配置が連続するマクロブロック単位に並列処理、つまりスレッドの割り当てを行ったが、これに限定されない。
(1)本発明の一実施態様である、複数のスレッドを実行するプロセッサは、他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備えることを特徴とする。
101 命令メモリ
102 命令フェッチ制御部
103 命令群決定部
104 第1命令バッファ
105 第2命令バッファ
106 第N命令バッファ
107 発行命令決定部
108 優先度決定部
109 第1レジスタファイル
110 第2レジスタファイル
111 第Nレジスタファイル
112 演算器群
113 ライトバックバス
114 更新制御部
115 データメモリ
116 読み出し検出部
117 命令検出部
118 管理テーブル記憶部
120 メモリアクセス
300 テーブル読出制御部
301 dep_id選択部
302 PC比較部
400 テーブル読出制御部
401 dep_id選択部
402 Readアドレス比較部
403 比較部
404 加算器
Claims (13)
- 複数のスレッドを実行するプロセッサであって、
他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、
前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備える
ことを特徴とするプロセッサ。 - 前記設定手段は、
前記位置に存在する命令に応じたプログラムカウンタの値を予め保持する保持領域を有しており、
外部から前記プログラムカウンタの値を取得すると、前記保持領域へ格納し、
前記一のスレッドにて実行される命令に応じたプログラムカウンタの値と、保持している値とが一致する場合に、前記一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を前記利用情報に設定する
ことを特徴とする請求項1に記載のプロセッサ。 - 前記保持領域には、さらに、
前記利用情報と、前記メモリ領域を示すメモリアドレスとが対応付けられて保持されており、
前記制御手段は、前記他のスレッドから前記読み出し命令による読み出し対象であるメモリ領域の読み出し対象アドレスを取得し、前記読み出し対象アドレスと前記メモリアドレスとが一致する場合に、対応する利用情報が示す内容に応じて前記読み出し命令を実行及び抑止する
ことを特徴とする請求項2に記載のプロセッサ。 - 前記プロセッサは、さらに、
データの読み出しを行う際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記メモリアドレスとの間に関連がある場合には、前記メモリ領域の利用状況を確認すべき旨を通知するアドレス変換手段を備え、
前記制御手段は、前記通知を受け取ると、前記メモリアドレスに対応する前記メモリ領域の利用状況を前記利用情報に基づいて判断する
ことを特徴とする請求項3に記載のプロセッサ。 - 前記メモリ領域は、前記他のスレッドとは別のスレッドにも利用される領域であり、
前記制御手段は、さらに、
前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、前記別のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する
ことを特徴とする請求項2に記載のプロセッサ。 - 前記プロセッサは、さらに、
命令をフェッチする際に取得した仮想アドレスを物理アドレスに変換し、変換した前記物理アドレスが前記許可手段で予め保持している前記プログラムカウンタとの間に関連がある場合には、前記許可手段による前記判断を実行することを要求する要求情報を前記許可手段に通知するアドレス変換手段を備え、
前記許可手段は、前記要求情報を前記アドレス変換手段から受け取ると、前記判断を行う
ことを特徴とする請求項2に記載のプロセッサ。 - 前記設定手段は、さらに、
前記メモリ領域への書き込みが完了したことを示す旨を利用情報に設定する際に、他のプロセッサで管理されている別の利用情報に対しても前記メモリ領域への書き込みが完了したことを示す内容を設定する
ことを特徴とする請求項2に記載のプロセッサ。 - 前記一のスレッド及び他のスレッドは、画像のデコード処理を行うためのものであり、
前記プロセッサは、
画像のデコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項1に記載のプロセッサ。 - 前記一のスレッド及び他のスレッドは、画像のエンコード処理を行うためのものであり、
前記プロセッサは、
画像のエンコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項1に記載のプロセッサ。 - 複数のスレッドを実行するプロセッサで用いられる制御方法であって、
他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定ステップと、
前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御ステップとを含む
ことを特徴とする制御方法。 - 複数のスレッドを用いて画像を処理する画像処理装置であって、
他のスレッドと共通に利用するメモリ領域への書き込みを行う一のスレッドにおいて前記メモリ領域への書き込みが完了したこと保証する位置に存在する命令を実行すると、当該メモリ領域への書き込みが完了したか否かを示す利用情報に、当該一のスレッドによる当該メモリ領域への書き込みが完了したことを示す旨を設定する設定手段と、
前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了したことを示している場合には、他のスレッドによる前記メモリ領域に存在するデータの読み出し命令を実行し、前記利用情報が前記一のスレッドによる前記メモリ領域への書き込みが完了していないことを示している場合には、当該読み出し命令の実行を抑止する制御手段とを備える
ことを特徴とする画像処理装置。 - 前記画像処理装置は、符号化された画像を復号するものであり、
前記複数のスレッドには、符号化された一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、
前記書き込みが完了したこと保証する位置に存在する命令とは、可変長復号処理、逆量子化・逆周波数変換に係る処理、動き補償に係る処理、画像の再構成処理及びデブロッキングフィルタ処理の何れかの処理が完了したことを示す命令であり、
制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御する
ことを特徴とする請求項11に記載の画像処理装置。 - 前記画像処理装置は、画像を符号化するものであり、
前記複数のスレッドには、一の画像において配置が連続するマクロブロックが互いに異なるよう割り当てられ、
前記書き込みが完了したこと保証する位置に存在する命令とは、符号化対象の画像データに対する予測誤差を算出する減算処理、予測誤差に対して量子化と周波数変換を行う量子化処理、符号化処理、参照画像の生成処理、動き補償に係る処理の何れかであり、
制御手段は、一のマクロブロックについて、前記書き込みが完了したと判断する場合には、当該一のマクロブロックの後続に位置する次のマクロブロックについて、書き込みが完了したと判断された処理と同一の処理を実行するよう当該処理を制御する
ことを特徴とする請求項11に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012523764A JP5853217B2 (ja) | 2010-07-07 | 2011-07-06 | プロセッサ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010154629 | 2010-07-07 | ||
JP2010154629 | 2010-07-07 | ||
PCT/JP2011/003861 WO2012004990A1 (ja) | 2010-07-07 | 2011-07-06 | プロセッサ |
JP2012523764A JP5853217B2 (ja) | 2010-07-07 | 2011-07-06 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012004990A1 true JPWO2012004990A1 (ja) | 2013-09-02 |
JP5853217B2 JP5853217B2 (ja) | 2016-02-09 |
Family
ID=45440979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012523764A Active JP5853217B2 (ja) | 2010-07-07 | 2011-07-06 | プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US8898671B2 (ja) |
JP (1) | JP5853217B2 (ja) |
CN (1) | CN102483708B (ja) |
WO (1) | WO2012004990A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013008420A1 (de) | 2013-05-17 | 2014-11-20 | Abb Technology Ag | Antriebseinheit zur Ansteuerung eines Motors |
CN108347613B (zh) * | 2017-01-25 | 2020-05-26 | 龙芯中科技术有限公司 | 图像宏块并行编码方法和装置 |
CN107038021B (zh) * | 2017-04-05 | 2019-05-24 | 华为技术有限公司 | 用于访问随机存取存储器ram的方法、装置和系统 |
US10902113B2 (en) * | 2017-10-25 | 2021-01-26 | Arm Limited | Data processing |
US20220206799A1 (en) * | 2020-12-30 | 2022-06-30 | Silicon Laboratories Inc. | Apparatus for Processor with Hardware Fence and Associated Methods |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029987A (ja) * | 2001-07-12 | 2003-01-31 | Nec Corp | スレッド終了方法及び装置並びに並列プロセッサシステム |
JP2003323415A (ja) * | 2002-04-26 | 2003-11-14 | Internatl Business Mach Corp <Ibm> | メモリ・アクセス順序付け及びロック管理の方法、装置、プログラム及び記録媒体 |
JP2007520769A (ja) * | 2003-06-27 | 2007-07-26 | インテル コーポレイション | モニタメモリ待機を用いたキューされたロック |
JP2008165834A (ja) * | 2001-12-31 | 2008-07-17 | Intel Corp | 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2854754B1 (fr) * | 2003-05-06 | 2005-12-16 | Procede et dispositif de codage ou decodage d'image avec parallelisation du traitement sur une pluralite de processeurs, programme d'ordinateur et signal de synchronisation correspondants | |
US8176022B1 (en) * | 2006-08-26 | 2012-05-08 | Radames Garcia | Locking protocol using dynamic locks and dynamic shared memory |
-
2011
- 2011-07-06 US US13/393,967 patent/US8898671B2/en active Active
- 2011-07-06 WO PCT/JP2011/003861 patent/WO2012004990A1/ja active Application Filing
- 2011-07-06 JP JP2012523764A patent/JP5853217B2/ja active Active
- 2011-07-06 CN CN201180003728.4A patent/CN102483708B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029987A (ja) * | 2001-07-12 | 2003-01-31 | Nec Corp | スレッド終了方法及び装置並びに並列プロセッサシステム |
JP2008165834A (ja) * | 2001-12-31 | 2008-07-17 | Intel Corp | 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置 |
JP2003323415A (ja) * | 2002-04-26 | 2003-11-14 | Internatl Business Mach Corp <Ibm> | メモリ・アクセス順序付け及びロック管理の方法、装置、プログラム及び記録媒体 |
JP2007520769A (ja) * | 2003-06-27 | 2007-07-26 | インテル コーポレイション | モニタメモリ待機を用いたキューされたロック |
Also Published As
Publication number | Publication date |
---|---|
WO2012004990A1 (ja) | 2012-01-12 |
US8898671B2 (en) | 2014-11-25 |
CN102483708B (zh) | 2016-01-20 |
JP5853217B2 (ja) | 2016-02-09 |
CN102483708A (zh) | 2012-05-30 |
US20120167114A1 (en) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5433676B2 (ja) | プロセッサ装置、マルチスレッドプロセッサ装置 | |
US8433884B2 (en) | Multiprocessor | |
US20080046689A1 (en) | Method and apparatus for cooperative multithreading | |
JP5853217B2 (ja) | プロセッサ | |
Hoogerbrugge et al. | A multithreaded multicore system for embedded media processing | |
US20180165092A1 (en) | General purpose register allocation in streaming processor | |
Azevedo et al. | Parallel H. 264 decoding on an embedded multicore processor | |
Zhang et al. | Implementation of motion estimation based on heterogeneous parallel computing system with OpenCL | |
WO2009113034A1 (en) | Look-ahead task management | |
TW201732545A (zh) | 異構計算系統和方法 | |
GB2520731A (en) | Soft-partitioning of a register file cache | |
TW201907296A (zh) | 用於控制指令執行的設備與方法 | |
Själander et al. | A look-ahead task management unit for embedded multi-core architectures | |
CN102629238B (zh) | 支持向量条件访存的方法和装置 | |
US20130332703A1 (en) | Shared Register Pool For A Multithreaded Microprocessor | |
WO2022161013A1 (zh) | 处理器装置及其指令执行方法、计算设备 | |
US20120030448A1 (en) | Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus | |
US9317287B2 (en) | Multiprocessor system | |
CN114691597A (zh) | 自适应远程原子操作 | |
US10691435B1 (en) | Processor register assignment for binary translation | |
JP5238876B2 (ja) | 情報処理装置及び情報処理方法 | |
US20240126680A1 (en) | Apparatuses, Devices, Methods and Computer Programs for Allocating Memory | |
JPH11296494A (ja) | 複合プロセッサシステム | |
JP2006195705A (ja) | プロセッサ | |
JP5488609B2 (ja) | リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140317 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140606 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20141008 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150730 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5853217 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |