JP2011503676A - マルチスレッドプロセッサにおける複合命令 - Google Patents
マルチスレッドプロセッサにおける複合命令 Download PDFInfo
- Publication number
- JP2011503676A JP2011503676A JP2010520626A JP2010520626A JP2011503676A JP 2011503676 A JP2011503676 A JP 2011503676A JP 2010520626 A JP2010520626 A JP 2010520626A JP 2010520626 A JP2010520626 A JP 2010520626A JP 2011503676 A JP2011503676 A JP 2011503676A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- instructions
- execution
- register means
- instruction
- 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
- 150000001875 compounds Chemical class 0.000 title claims description 22
- 238000000034 method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims 1
- 238000007792 addition Methods 0.000 description 10
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012546 transfer Methods 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/30098—Register arrangements
-
- 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/461—Saving or restoring of program or task context
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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
-
- 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/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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
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)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【選択図】図2
Description
そのようなマルチスレッドプロセッサは、いくつかのプログラム又は実行中のスレッドの各々に対するプログラム状態を格納する別の組のレジスタを有することになる。スレッドの1つによって要求されたリソースが利用可能でない、例えば、それがメモリアクセス待ちである時は、スレッドの続行が回避され、プロセッサは、スレッドが要求する全てのリソースが利用可能であり、従って実行を続けることができる別のスレッドに切り換える。スレッド間のアービトレーションは、プロセッサが何もしないのではなく可能な時はいつでも有用な命令を実行することができ、それによってプロセッサの使用が最適化されるように編成される。スレッドが実行していない時は、レジスタの組がその現在の状態を格納する。
これは、内部レジスタストアと呼ばれる。この内部レジスタストアと主レジスタストアの違いは、内部レジスタがスレッドの数に対して複写されず、すなわち、全てのスレッドによって共有されるただ1つの内部レジスタストアが提供されることである。内部レジスタストアは、どの実行中のスレッドによっても使用することができる。
したがって、好ましい実施形態は、より多くのポートを主レジスタストアに追加するコストなしに、より多くの読取/書込アクセスを有するプロセッサを提供する。複合命令を使用は、プロセッサ利用度の最適化を保証することに役立つものである。
CPU2によって実施される処理は、算術論理演算ユニット(ALU)8内で行われる。Rは、外部メモリバス6を通じて外部メモリ4にメモリ及び命令要求を送り、かつ外部メモリバス6を通じて応答を受け取る。
ALUは、レジスタストア12に結合された1組の読取/書込ポート10を有する。この例では、4つのレジスタストア12がある。これは、CPU2が命令の4つのスレッドを処理するように使用され、それらの間を必要に応じて適切に切り換え、適切なレジスタストア12から各スレッドのステータスを取り出すのを可能にする。
ドット積=Ax*Bx+Ay*By+Az*Bz
この式を実施するために、3つの乗算と2つの加算が必要である。ALU8には、単一サイクルの乗算及び加算論理が設けられている。したがって、上の式に示したドット積を3サイクルで実行することが可能であるはずである。これは、以下の理論的機械語命令に関連して示される。
MUL R6、R0、R1
MLA R6、R2、R3、R6
MLA R6、R4、R5、R6
「MUL R6、R2、R3、R6」は、レジスタR2のコンテンツのレジスタR3のコンテンツとの乗算と、結果をレジスタR6に加算することを意味する。加算の結果は、レジスタR6に再度格納される。レジスタR2は、「Ay」を収容し、レジスタR3は、「By」を収容するであろう。
「MLA R6、R4、R5、R6」は、レジスタR4のコンテンツのレジスタR5のコンテンツとの乗算と、結果をレジスタR6に加算することを意味する。加算の結果は、レジスタR6に再度格納される。レジスタR4は、「Az」を収容し、レジスタR5は、「Bz」を収容するであろう。
MUL I0、R0、R1
MLA I0、R2、R3、I0
MLA R6、R4、R5、I0
図に示すように、外部レジスタの代わりに内部レジスタI0が使用され、それによってメモリアクセスの数が減少し、CPUによって実行すべきであるコード行の全数が生成される。
コンパイラ/アセンブラによって実施される付加的な機能性は、入力プログラムの解析と、複合命令が使用されてCPU上で実行されるときにプログラムの性能を改善することができる位置の検索とである。そのような位置が見つかった状態で、コンパイラ/アセンブラは、内部レジスタストアを利用する一連のCPU命令を作成し、内部レジスタストアがそれ以上使用されなくなるまで停止中のそのスレッドの実行を防止するスケジュール変更不可フラグを設定することができる。
複合命令は、2つの連続CPU命令と同程度に簡単になるか、又は数十のCPU命令と同じくらい複雑になる可能性がある。複合命令がCPUに遭遇すると、スケジュール変更不可フラグが設定されている限り、複合命令の実行が持続する。
複合命令を設定するために、コンパイラ/アセンブラは、いつこれらの命令を使用することができるかを識別するように設計される。これは、コンパイラ/アセンブラを生成するときに実施することができる。例えば、典型的な命令の組をサポートするプロセッサを考えると、提供されるデータ経路命令は、加算、乗算、及び乗算−合計のような関数を含むことになる。その組から提供することができる命令は、プロセッサのハードウエア実施がサポートすることができるソース及び宛先引数の数によって完全に制限される。プロセッサが単に2つのソース引数をサポートする場合、プロセッサは、実施されるこれらのソース引数を必要とすることになるので、乗算−合計命令を持たないことになる。これらの制限は、これが命令の組を判断するものなので、プロセッサのハードウエアを設計するときに行われる決定によって実施される。例えば、レジスタへの2つの読取ポートだけを含むプロセッサを設計する者は、算術論理演算ユニットに乗算−合計サポートを入れないと考えられる。
Claims (7)
- 各スレッドによる実行に必要とされるリソースの利用可能性に基づいて複数のスレッドを実行するためのマルチスレッドプロセッサであって、
どのスレッドが実行すべきかを判断する手段と、
前記判断の結果に基づいて複数のスレッドの実行を切り換える手段と、
を具備し、
各スレッドが、該スレッドの状態を記憶しかつ該スレッドにおける命令の実行に用いられる対応するレジスタ手段に結合されており、
さらに、
前記複数のスレッドのすべてにより共有され、実行性能を向上させるために実行中の複数のスレッドにより利用される、別のレジスタ手段と、
内部レジスタ手段が使用されている間、別のスレッドへの実行の切り換えを防止する手段と、
命令内のスケジュール変更不可ビットを検出する手段と、
を具備し、
別のスレッドへの実行の切り換えを防止する前記手段が、スケジュール変更不可ビットの検出に応答して動作する、ことを特徴とするマルチスレッドプロセッサ。 - 複数の命令のシーケンスを含む複合命令が、その実行において前記別のレジスタ手段を利用し、
別のスレッドへの実行の切り換えを防止する前記手段が、そのような命令のシーケンスに応答して該シーケンスが実行を完了するまで動作する、請求項1に記載のマルチスレッドプロセッサ。 - 前記別のレジスタ手段の使用は、前記複数の命令のシーケンスが実行を完了する前に終わる、請求項2に記載のマルチスレッドプロセッサ。
- スケジュール変更不可ビットが、前記シーケンスにおける各命令に対して設定され、別のスレッドへの実行の切り換えを防止する前記手段が、命令内のスケジュール変更不可ビットの検出に応答して動作する、請求項2又は請求項3に記載のマルチスレッドプロセッサ。
- 各スレッドの状態を記憶するレジスタ手段とすべてのスレッドによって使用される別のレジスタ手段とを有するマルチスレッドプロセッサ上で実行するための命令のスレッドをコンパイル/アセンブルする方法であって、
スレッド内のどの命令が実行性能を向上させるために前記別のレジスタ手段を利用することができるかを判断する段階と、
内部レジスタ手段を利用する命令が実行されるときに、実行中のスレッドにスケジュール変更不可ビットを設定する段階と、
を含むことを特徴とする方法。 - スレッド内のどの命令が前記別のレジスタ手段を利用することができるかを判断する前記段階は、入力プログラムをコンパイルする段階と、必要とされる命令の数を低減するために該別のレジスタ手段を使用することができる状況を検索する段階と、該別のレジスタが使用されるときにスケジュール変更不可ビットを含む命令を含める段階と、を含む、請求項5に記載の方法。
- スレッド内のどの命令が前記別のレジスタ手段を利用することができるかを判断する前記段階は、該別のレジスタ手段を使用した実行に適した命令のための入力プログラムを解析する段階と、そのような構成が見つかったときに、該別のレジスタ手段を利用しかつスケジュール変更不可ビットを含む命令をコンパイルする段階と、を含む、請求項5に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0715824.9 | 2007-08-14 | ||
GB0715824A GB2451845B (en) | 2007-08-14 | 2007-08-14 | Compound instructions in a multi-threaded processor |
PCT/GB2008/002753 WO2009022142A1 (en) | 2007-08-14 | 2008-08-14 | Compound instructions in a multi-threaded processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011503676A true JP2011503676A (ja) | 2011-01-27 |
JP5425074B2 JP5425074B2 (ja) | 2014-02-26 |
Family
ID=38566352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010520626A Active JP5425074B2 (ja) | 2007-08-14 | 2008-08-14 | マルチスレッドプロセッサにおける複合命令 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7904702B2 (ja) |
EP (1) | EP2179350B1 (ja) |
JP (1) | JP5425074B2 (ja) |
GB (1) | GB2451845B (ja) |
WO (1) | WO2009022142A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020109605A (ja) * | 2018-12-31 | 2020-07-16 | グラフコアー リミテッドGraphcore Limited | マルチスレッドプロセッサのレジスタファイル |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195909B2 (en) * | 2009-10-05 | 2012-06-05 | Seagate Technology Llc | Data management in a data storage system |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US8955111B2 (en) | 2011-09-24 | 2015-02-10 | Elwha Llc | Instruction set adapted for security risk monitoring |
US9575903B2 (en) | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US8943313B2 (en) | 2011-07-19 | 2015-01-27 | Elwha Llc | Fine-grained security in federated data sets |
US8813085B2 (en) | 2011-07-19 | 2014-08-19 | Elwha Llc | Scheduling threads based on priority utilizing entitlement vectors, weight and usage level |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9798873B2 (en) * | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9710054B2 (en) * | 2015-02-28 | 2017-07-18 | Intel Corporation | Programmable power management agent |
US20220121486A1 (en) * | 2020-10-20 | 2022-04-21 | Micron Technology, Inc. | Rescheduling a failed memory request in a processor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09198247A (ja) * | 1996-01-17 | 1997-07-31 | Yamaha Corp | プロセッサおよび該プロセッサの割込制御方法 |
JP2000509528A (ja) * | 1996-04-04 | 2000-07-25 | イマジネイション テクノロジーズ リミテッド | データ処理マネージメントシステム |
JP2005018224A (ja) * | 2003-06-24 | 2005-01-20 | Matsushita Electric Ind Co Ltd | 競合制御装置 |
WO2006033078A2 (en) * | 2004-09-22 | 2006-03-30 | Koninklijke Philips Electronics N.V. | Data processing circuit wherein functional units share read ports |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992007335A1 (en) * | 1990-10-19 | 1992-04-30 | Cray Research, Inc. | A scalable parallel vector computer system |
JPH096633A (ja) * | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
JP2970553B2 (ja) * | 1996-08-30 | 1999-11-02 | 日本電気株式会社 | マルチスレッド実行方法 |
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6256775B1 (en) * | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
JP3209205B2 (ja) * | 1998-04-28 | 2001-09-17 | 日本電気株式会社 | プロセッサにおけるレジスタ内容の継承装置 |
US6205543B1 (en) * | 1998-12-03 | 2001-03-20 | Sun Microsystems, Inc. | Efficient handling of a large register file for context switching |
US6539471B2 (en) * | 1998-12-23 | 2003-03-25 | Intel Corporation | Method and apparatus for pre-processing instructions for a processor |
US6952825B1 (en) * | 1999-01-14 | 2005-10-04 | Interuniversitaire Micro-Elektronica Centrum (Imec) | Concurrent timed digital system design method and environment |
US6785887B2 (en) * | 2000-12-27 | 2004-08-31 | International Business Machines Corporation | Technique for using shared resources on a multi-threaded processor |
US6675376B2 (en) * | 2000-12-29 | 2004-01-06 | Intel Corporation | System and method for fusing instructions |
GB2414839B (en) * | 2001-09-28 | 2006-04-12 | Intel Corp | Controlling access by competing threads from a plurality of processors to a shared resource |
US20050050305A1 (en) * | 2003-08-28 | 2005-03-03 | Kissell Kevin D. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US7418585B2 (en) * | 2003-08-28 | 2008-08-26 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7472390B2 (en) * | 2003-10-01 | 2008-12-30 | Intel Corporation | Method and apparatus to enable execution of a thread in a multi-threaded computer system |
US20050251662A1 (en) * | 2004-04-22 | 2005-11-10 | Samra Nicholas G | Secondary register file mechanism for virtual multithreading |
US8095921B2 (en) * | 2005-10-12 | 2012-01-10 | International Business Machines Corporation | Identifying code that wastes time switching tasks |
US20070094664A1 (en) * | 2005-10-21 | 2007-04-26 | Kimming So | Programmable priority for concurrent multi-threaded processors |
US20070143582A1 (en) * | 2005-12-16 | 2007-06-21 | Nvidia Corporation | System and method for grouping execution threads |
US7577826B2 (en) * | 2006-01-30 | 2009-08-18 | Sony Computer Entertainment Inc. | Stall prediction thread management |
US7779235B2 (en) * | 2007-02-06 | 2010-08-17 | International Business Machines Corporation | Using performance data for instruction thread direction |
-
2007
- 2007-08-14 GB GB0715824A patent/GB2451845B/en active Active
-
2008
- 2008-08-13 US US12/228,669 patent/US7904702B2/en active Active
- 2008-08-14 JP JP2010520626A patent/JP5425074B2/ja active Active
- 2008-08-14 WO PCT/GB2008/002753 patent/WO2009022142A1/en active Application Filing
- 2008-08-14 EP EP08788322.9A patent/EP2179350B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09198247A (ja) * | 1996-01-17 | 1997-07-31 | Yamaha Corp | プロセッサおよび該プロセッサの割込制御方法 |
JP2000509528A (ja) * | 1996-04-04 | 2000-07-25 | イマジネイション テクノロジーズ リミテッド | データ処理マネージメントシステム |
JP2005018224A (ja) * | 2003-06-24 | 2005-01-20 | Matsushita Electric Ind Co Ltd | 競合制御装置 |
WO2006033078A2 (en) * | 2004-09-22 | 2006-03-30 | Koninklijke Philips Electronics N.V. | Data processing circuit wherein functional units share read ports |
JP2008513878A (ja) * | 2004-09-22 | 2008-05-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 機能単位が読み出しポートを共有するデータ処理回路 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020109605A (ja) * | 2018-12-31 | 2020-07-16 | グラフコアー リミテッドGraphcore Limited | マルチスレッドプロセッサのレジスタファイル |
Also Published As
Publication number | Publication date |
---|---|
GB0715824D0 (en) | 2007-09-26 |
JP5425074B2 (ja) | 2014-02-26 |
GB2451845A (en) | 2009-02-18 |
US7904702B2 (en) | 2011-03-08 |
EP2179350A1 (en) | 2010-04-28 |
EP2179350B1 (en) | 2017-05-10 |
GB2451845B (en) | 2010-03-17 |
US20090063824A1 (en) | 2009-03-05 |
WO2009022142A1 (en) | 2009-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5425074B2 (ja) | マルチスレッドプロセッサにおける複合命令 | |
Thistle et al. | A processor architecture for Horizon | |
Goodman et al. | PIPE: a VLSI decoupled architecture | |
Colwell et al. | A VLIW architecture for a trace scheduling compiler | |
JP6159825B2 (ja) | ハードウェアポインタを使用したsimdコア内での分岐ブランチに対するソリューション | |
Sampson et al. | Exploiting fine-grained data parallelism with chip multiprocessors and fast barriers | |
EP1550032B1 (en) | Method and apparatus for thread-based memory access in a multithreaded processor | |
JPH03129433A (ja) | 並列処理装置および並列処理方法 | |
JP2003502728A (ja) | プロセッサおよびコプロセッサを含むコンピュータ・システム | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP2016504699A (ja) | 並列パイプラインにおいてブランチを分岐するためのハードウェアおよびソフトウェアソリューション | |
JP4589305B2 (ja) | Ilp及びtlpを利用する再構成可能なプロセッサアレイ | |
Jesshope | Scalable instruction-level parallelism | |
US8732368B1 (en) | Control system for resource selection between or among conjoined-cores | |
US9003168B1 (en) | Control system for resource selection between or among conjoined-cores | |
US6704855B1 (en) | Method and apparatus for reducing encoding needs and ports to shared resources in a processor | |
JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
JP5967646B2 (ja) | レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ | |
JP2636821B2 (ja) | 並列処理装置 | |
McMahon et al. | Advanced Microprocessor Architectures | |
Gibbons | Towards better shared memory programming models | |
Ostheimer | Parallel Functional Computation on STAR: DUST— | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP2927281B2 (ja) | 並列処理装置 | |
JP2861234B2 (ja) | 命令処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130909 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131003 |
|
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: 20131028 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131126 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5425074 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |