JP5607545B2 - マイクロプロセッサシステムにおける命令フェッチングの優先順位付け - Google Patents
マイクロプロセッサシステムにおける命令フェッチングの優先順位付け Download PDFInfo
- Publication number
- JP5607545B2 JP5607545B2 JP2010545556A JP2010545556A JP5607545B2 JP 5607545 B2 JP5607545 B2 JP 5607545B2 JP 2010545556 A JP2010545556 A JP 2010545556A JP 2010545556 A JP2010545556 A JP 2010545556A JP 5607545 B2 JP5607545 B2 JP 5607545B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- instructions
- priority
- threads
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 12
- 230000003139 buffering effect Effects 0.000 claims 2
- 238000005259 measurement Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 241000953555 Theama Species 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
-
- 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, 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Description
22 オンチップRAM
24 プライオリティアービタ
26 命令フェッチ
28 命令デコード及びリソース連動
30 命令スケジューラ
Claims (8)
- 複数の命令ソースからの、マルチスレッドプロセッサシステムにおける複数の実行命令スレッドの各々に対する命令のフェッチングに優先順位を付ける方法であって、
複数の命令をバッファするためのバッファを各々含む個々のスレッド毎に、そのスレッドでの実行のために現在バッファされている命令の数に基づいて第1のメトリックを決定するステップと、
前記個々のスレッドからの前記第1のメトリックから、命令をフェッチするための優先順位を決定するステップと、
前記優先順位のリストを、個々のスレッド毎の実行ベースの優先順位メトリックと組み合わせて、スレッドの優先順位の順番リストを決定するステップと、
命令を要求しているスレッドのうちで前記決定された優先順位が最も高い前記スレッドのために、前記命令のソースから、命令をフェッチするステップと、
を含み、
前記第1のメトリックが個々のスレッド毎の充満度に基づいており、前記第1のメトリックが前記優先順位を最初に決定し、前記実行ベースの優先順位メトリックが前記第1のメトリックからでは競合が存在するスレッド間の優先順位を決定し、スレッドが、前記複数の命令ソースのいずれか1つから、前記複数の命令ソースの各々に設けられた優先順位アービタを介して、命令を要求することができ、2以上のスレッドが、個々のクロックサイクルで命令を実行することができる、ことを特徴とする方法。 - スレッドが、個々のクロックサイクルで命令ソースから命令を要求することができる、
ことを特徴とする請求項1に記載の方法。 - 第1の命令ソースから命令を要求したスレッドは、前記第1の命令ソースに対する要求が完了するまで第2の命令ソースから命令を要求することができない、
ことを特徴とする請求項1に記載の方法。 - 前記スレッドが、自身のバッファ内に命令を含むいずれのスレッドを個々のクロックサイクルで実行すべきかを決定するための実行ランクの順序を有する、
ことを特徴とする請求項1に記載の方法。 - 複数の命令ソースからの、マルチスレッドプロセッサシステムにおける複数の実行命令スレッドの各々に対する命令のフェッチングに優先順位を付けるシステムであって、前記システムが、
複数の命令をバッファするためのバッファを各々含む個々のスレッド毎に、そのスレッドでの実行のために現在バッファされている命令の数に基づいて第1のメトリックを決定して、個々のスレッドからの前記第1のメトリックから、命令をフェッチするための優先順位を決定する優先順位アービタ(24)であって、前記優先順位と実行ベースの優先順位メトリックとを組み合わせて、スレッドの優先順位の順番リストを決定する、前記複数の命令ソースの各々に設けられた複数の優先順位アービタ(24)と、
命令を要求しているスレッドのうちで前記決定された優先順位が最も高い前記スレッドのために、前記命令のソースから、命令をフェッチするための命令フェッチユニット(26)と、を備え、
前記第1のメトリックが個々のスレッド毎の充満度に基づいており、前記第1のメトリックが前記優先順位を最初に決定し、前記実行ベースの優先順位メトリックが前記第1のメトリックからでは競合が存在するスレッド間の優先順位を決定し、スレッドが、前記複数の命令ソースのいずれか1つから、該命令ソースに設けられた優先順位アービタを介して、命令を要求することができ、2以上のスレッドが、個々のクロックサイクルで命令を実行する、ことを特徴とするシステム。 - スレッドが、個々のクロックサイクルで命令ソースから命令を要求することができる、
ことを特徴とする請求項5に記載のシステム。 - 第1の命令ソースから命令を要求したスレッドは、前記第1の命令ソースに対する要求が完了するまで第2の命令ソースから命令を要求することができない、
ことを特徴とする請求項5に記載のシステム。 - スレッドが、自身のバッファ内に命令を含むいずれのスレッドを個々のクロックサイクルで実行すべきかを決定するための実行ランクの順序を有する、
ことを特徴とする請求項5に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0802314.5 | 2008-02-07 | ||
GB0802314A GB2457265B (en) | 2008-02-07 | 2008-02-07 | Prioritising of instruction fetching in microprocessor systems |
PCT/GB2009/000360 WO2009098489A1 (en) | 2008-02-07 | 2009-02-09 | Prioritising of instruction fetching in microprocessor systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011511378A JP2011511378A (ja) | 2011-04-07 |
JP5607545B2 true JP5607545B2 (ja) | 2014-10-15 |
Family
ID=39204442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010545556A Active JP5607545B2 (ja) | 2008-02-07 | 2009-02-09 | マイクロプロセッサシステムにおける命令フェッチングの優先順位付け |
Country Status (5)
Country | Link |
---|---|
US (2) | US9348600B2 (ja) |
EP (1) | EP2240850B1 (ja) |
JP (1) | JP5607545B2 (ja) |
GB (1) | GB2457265B (ja) |
WO (1) | WO2009098489A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325063B (zh) * | 2007-06-12 | 2011-02-16 | 建兴电子科技股份有限公司 | 全息储存系统中寻找定位点位置的方法 |
JP5173711B2 (ja) * | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 |
TWI474280B (zh) * | 2010-04-21 | 2015-02-21 | Via Tech Inc | 增進繪圖處理單元之總處理量的方法與系統 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8738830B2 (en) | 2011-03-03 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Hardware interrupt processing circuit |
US9645823B2 (en) | 2011-03-03 | 2017-05-09 | Hewlett-Packard Development Company, L.P. | Hardware controller to choose selected hardware entity and to execute instructions in relation to selected hardware entity |
US9189283B2 (en) | 2011-03-03 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Task launching on hardware resource for client |
JP5803972B2 (ja) | 2013-04-18 | 2015-11-04 | 株式会社デンソー | マルチコアプロセッサ |
JP6384380B2 (ja) | 2015-03-27 | 2018-09-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20170139716A1 (en) | 2015-11-18 | 2017-05-18 | Arm Limited | Handling stalling event for multiple thread pipeline, and triggering action based on information access delay |
US10353711B2 (en) * | 2016-09-06 | 2019-07-16 | Apple Inc. | Clause chaining for clause-based instruction execution |
EP4229506A1 (en) * | 2020-10-14 | 2023-08-23 | Telefonaktiebolaget LM Ericsson (publ) | Apparatus and method for simultaneous multithreaded instruction scheduling in a microprocessor |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0583089B1 (en) * | 1992-08-12 | 2000-01-26 | Advanced Micro Devices, Inc. | Instruction decoder |
JPH07281954A (ja) * | 1994-04-11 | 1995-10-27 | Hitachi Ltd | 高速pcシステム |
GB2311882B (en) | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
US6938147B1 (en) | 1999-05-11 | 2005-08-30 | Sun Microsystems, Inc. | Processor with multiple-thread, vertically-threaded pipeline |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
JP3845043B2 (ja) * | 2002-06-28 | 2006-11-15 | 富士通株式会社 | 命令フェッチ制御装置 |
GB2415060B (en) * | 2004-04-16 | 2007-02-14 | Imagination Tech Ltd | Dynamic load balancing |
US7392366B2 (en) * | 2004-09-17 | 2008-06-24 | International Business Machines Corp. | Adaptive fetch gating in multithreaded processors, fetch control and method of controlling fetches |
JP4631442B2 (ja) * | 2005-01-13 | 2011-02-16 | セイコーエプソン株式会社 | プロセッサ |
US7853777B2 (en) | 2005-02-04 | 2010-12-14 | Mips Technologies, Inc. | Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions |
US7657883B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor |
US7490230B2 (en) * | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
-
2008
- 2008-02-07 GB GB0802314A patent/GB2457265B/en not_active Expired - Fee Related
-
2009
- 2009-02-09 EP EP09708438.8A patent/EP2240850B1/en not_active Not-in-force
- 2009-02-09 WO PCT/GB2009/000360 patent/WO2009098489A1/en active Application Filing
- 2009-02-09 JP JP2010545556A patent/JP5607545B2/ja active Active
- 2009-02-09 US US12/322,942 patent/US9348600B2/en active Active
-
2016
- 2016-04-21 US US15/134,510 patent/US9870228B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB0802314D0 (en) | 2008-03-12 |
US9870228B2 (en) | 2018-01-16 |
WO2009098489A1 (en) | 2009-08-13 |
US9348600B2 (en) | 2016-05-24 |
US20090210660A1 (en) | 2009-08-20 |
US20160232007A1 (en) | 2016-08-11 |
EP2240850A1 (en) | 2010-10-20 |
GB2457265B (en) | 2010-06-09 |
EP2240850B1 (en) | 2016-08-10 |
JP2011511378A (ja) | 2011-04-07 |
GB2457265A (en) | 2009-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5607545B2 (ja) | マイクロプロセッサシステムにおける命令フェッチングの優先順位付け | |
US8082420B2 (en) | Method and apparatus for executing instructions | |
JP5631976B2 (ja) | マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置 | |
US7949855B1 (en) | Scheduler in multi-threaded processor prioritizing instructions passing qualification rule | |
US5918033A (en) | Method and apparatus for dynamic location and control of processor resources to increase resolution of data dependency stalls | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
US9811340B2 (en) | Method and apparatus for reconstructing real program order of instructions in multi-strand out-of-order processor | |
US20080046689A1 (en) | Method and apparatus for cooperative multithreading | |
US10545892B2 (en) | Multi-thread processor and its interrupt processing method | |
JP6260303B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2007241918A (ja) | プロセッサ装置 | |
US7725659B2 (en) | Alignment of cache fetch return data relative to a thread | |
WO2018098183A1 (en) | Dual mode local data store | |
WO2006129767A1 (ja) | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 | |
JP4631442B2 (ja) | プロセッサ | |
US11907126B2 (en) | Processor with multiple op cache pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130904 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131204 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20131211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140304 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140717 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140725 |
|
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: 20140813 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5607545 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 |