JP2004227587A - 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 - Google Patents
命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 Download PDFInfo
- Publication number
- JP2004227587A JP2004227587A JP2004012433A JP2004012433A JP2004227587A JP 2004227587 A JP2004227587 A JP 2004227587A JP 2004012433 A JP2004012433 A JP 2004012433A JP 2004012433 A JP2004012433 A JP 2004012433A JP 2004227587 A JP2004227587 A JP 2004227587A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- instruction
- processing
- processing pipeline
- simultaneous multi
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003672 processing method Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 101100135790 Caenorhabditis elegans pcn-1 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 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 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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
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)
Abstract
【解決手段】 プロセッシングパイプラインの少なくとも1つの他のステージから情報を受信し、受信された情報を用いてスレッド別に処理時間を決定するプロセッサである。前記スレッド別処理時間を用いて、フェッチ部は前記プロセッシングパイプラインで処理するスレッドを決定して該当命令語をフェッチする。
【選択図】 図1
Description
図2を参照すれば、図1のフェッチ部110は、デマルチプレックス制御器111、サイクルカウンタ113、スレッド選択器115、及びマルチプレクサ117を備える。
120 命令語キャッシュ部
130 命令語デコーダ
140 レジスタ再命名部
150 命令語指示部
160 実行部
161 データキャッシュ
163 レジスタ
165 機能ユニット
Claims (21)
- 多数のパイプラインステージを含み、該ステージの各々は多数のスレッド各々に属する命令語のうち少なくとも1つを処理するプロセッシングパイプラインと、
前記パイプラインステージのうち何れか1つのステージであり、前記プロセッシングパイプラインの少なくとも1つの他のステージから情報を受信し、受信された情報を用いてスレッド別に処理時間を決定し、そのスレッド別処理時間を用いて前記プロセッシングパイプラインで処理するスレッドを決定し、該当命令語をフェッチするフェッチ部と、を備えることを特徴とする同時多重スレッドプロセッサ。 - 前記フェッチ部は、
前記スレッド別処理時間のうち最短の処理時間を有するスレッドを決定して該当命令語をフェッチすることを特徴とする請求項1に記載の同時多重スレッドプロセッサ。 - 前記受信された情報は、
前記プロセッシングパイプラインで処理される命令語の演算種類を含むことを特徴とする請求項1に記載の同時多重スレッドプロセッサ。 - 前記受信された情報は、
前記プロセッシングパイプラインで処理を終了する命令語の演算種類をさらに含むことを特徴とする請求項3に記載の同時多重スレッドプロセッサ。 - 前記フェッチ部は、
スレッド別にカウントを行うカウンタを備え、そのスレッド別カウンタの各々は、前記プロセッシングパイプラインで処理される命令語の処理時間に対応してカウント値を高め、前記プロセッシングパイプラインで処理を終了する命令語の処理時間に対応してカウント値を下げることを特徴とする請求項4に記載の同時多重スレッドプロセッサ。 - 前記フェッチ部は、
前記カウント値が最も小さなカウンタに対応するスレッドを決定して該当命令語をフェッチすることを特徴とする請求項5に記載の同時多重スレッドプロセッサ。 - 前記フェッチ部は、
前記プロセッシングパイプラインで処理されるスレッドに対する命令語の数にその命令語それぞれのサイクルカウント数を加重値として用いて、前記スレッド別処理時間として加重値が与えられた命令語数をカウントすることを特徴とする請求項1に記載の同時多重スレッドプロセッサ。 - 前記フェッチ部は、
スレッド別にカウントを行うカウンタを備え、そのスレッド別カウンタの各々は、前記プロセッシングパイプラインで処理される命令語のサイクルカウント数に対応してカウント値を高め、前記プロセッシングパイプラインで処理を終了する命令語のサイクルカウント数に対応してカウント値を下げることを特徴とする請求項7に記載の同時多重スレッドプロセッサ。 - 前記フェッチ部は、
前記カウント値が最も小さなカウンタに対応するスレッドを決定して該当命令語をフェッチすることを特徴とする請求項8に記載の同時多重スレッドプロセッサ。 - 前記プロセッシングパイプラインは、
前記フェッチされた命令語をデコーディングして前記命令語の演算種類をデコーダ情報として生成する命令語デコーダと、
前記デコーディングされた命令語に対する実行指示を行う命令語指示部と、をさらに備えることを特徴とする請求項1に記載の同時多重スレッドプロセッサ。 - 前記受信された情報は、
前記デコーダ情報及び前記実行指示された命令語情報であることを特徴とする請求項1に記載の同時多重スレッドプロセッサ。 - 前記プロセッシングパイプラインは、
命令語を貯蔵し、前記フェッチされた命令語を前記命令語デコーダに出力する命令語キャッシュ部と、
前記命令語デコーダで生成されたアドレスを実行部の実際レジスタアドレスと再命名するレジスタ再命名部と、をさらに備えることを特徴とする請求項10に記載の同時多重スレッドプロセッサ。 - プロセッシングパイプラインのフェッチ部で、前記プロセッシングパイプラインの少なくとも1つの他のステージから情報を受信する段階と、
前記受信された情報を用いてスレッド別に処理時間を決定する第1決定段階と、
前記スレッド別処理時間を用いて前記プロセッシングパイプラインで処理される該当命令語をフェッチするスレッドを決定する第2決定段階と、を備え、
前記プロセッシングパイプラインは多数のパイプラインステージを含み、該ステージの各々は多数のスレッド各々に属する命令語のうち少なくとも1つを処理することを特徴とする同時多重スレッドプロセス方法。 - 前記第2決定段階は、
該当命令語をフェッチするスレッドとして前記スレッド別処理時間のうち最短の処理時間を有するスレッドを決定することを特徴とする請求項13に記載の同時多重スレッドプロセス方法。 - 前記受信された情報は、
前記プロセッシングパイプラインで処理される命令語の演算種類を含むことを特徴とする請求項13に記載の同時多重スレッドプロセス方法。 - 前記受信された情報は、
前記プロセッシングパイプラインで処理を終了する命令語の演算種類をさらに含むことを特徴とする請求項15に記載の同時多重スレッドプロセス方法。 - 前記第1決定段階は、
スレッド別にカウントを行うカウンタの各々が、前記プロセッシングパイプラインで処理される命令語の処理時間に対応してカウント値を高める段階と、
前記カウンタの各々が、前記プロセッシングパイプラインで処理を終了する命令語の処理時間に対応してカウント値を下げる段階と、を備えることを特徴とする請求項16に記載の同時多重スレッドプロセス方法。 - 前記第2決定段階は、
該当命令語をフェッチするスレッドとして前記カウント値が最も小さなカウンタに対応するスレッドを決定することを特徴とする請求項17に記載の同時多重スレッドプロセス方法。 - 前記第1決定段階は、
前記プロセッシングパイプラインで処理されるスレッドに対する命令語の数にその命令語それぞれのサイクルカウント数を加重値として用いて、前記スレッド別処理時間として加重値が与えられた命令語数をカウントすることを特徴とする請求項13に記載の同時多重スレッドプロセス方法。 - 前記第1決定段階は、
スレッド別にカウントを行うカウンタの各々が、前記プロセッシングパイプラインで処理される命令語のサイクルカウント数に対応してカウント値を高める段階と、
前記カウンタの各々が、前記プロセッシングパイプラインで処理を終了する命令語のサイクルカウント数に対応してカウント値を下げる段階と、を備えることを特徴とする請求項19に記載の同時多重スレッドプロセス方法。 - 前記第2決定段階は、
該当命令語をフェッチするスレッドとして前記カウント値が最も小さなカウンタに対応するスレッドを決定することを特徴とする請求項20に記載の同時多重スレッドプロセス方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0005236A KR100498482B1 (ko) | 2003-01-27 | 2003-01-27 | 명령어수에 수행 주기 회수를 가중치로 사용하여 쓰레드를페치하는 동시 다중 쓰레딩 프로세서 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004227587A true JP2004227587A (ja) | 2004-08-12 |
JP4476636B2 JP4476636B2 (ja) | 2010-06-09 |
Family
ID=32906515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004012433A Expired - Fee Related JP4476636B2 (ja) | 2003-01-27 | 2004-01-20 | 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7269712B2 (ja) |
JP (1) | JP4476636B2 (ja) |
KR (1) | KR100498482B1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028440A (ja) * | 2009-07-23 | 2011-02-10 | Nec Corp | マルチスレッドプロセッサ及びコンピュータプログラム |
JP2014211743A (ja) * | 2013-04-18 | 2014-11-13 | 株式会社デンソー | マルチコアプロセッサ |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000233B2 (en) * | 2003-04-21 | 2006-02-14 | International Business Machines Corporation | Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7752627B2 (en) | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
US7681014B2 (en) * | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
US7613904B2 (en) | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
US7657891B2 (en) | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
US7506140B2 (en) * | 2005-02-04 | 2009-03-17 | Mips Technologies, Inc. | Return data selector employing barrel-incrementer-based round-robin apparatus |
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 |
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 |
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 |
KR100788500B1 (ko) * | 2006-07-14 | 2007-12-24 | 엠텍비젼 주식회사 | 다단 파이프라인 구조의 정점 처리 장치 및 그 방법 |
US7961745B2 (en) | 2006-09-16 | 2011-06-14 | Mips Technologies, Inc. | Bifurcated transaction selector supporting dynamic priorities in multi-port switch |
US7990989B2 (en) * | 2006-09-16 | 2011-08-02 | Mips Technologies, Inc. | Transaction selector employing transaction queue group priorities in multi-port switch |
US7773621B2 (en) | 2006-09-16 | 2010-08-10 | Mips Technologies, Inc. | Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch |
US7760748B2 (en) * | 2006-09-16 | 2010-07-20 | Mips Technologies, Inc. | Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch |
KR100853457B1 (ko) * | 2006-12-04 | 2008-08-21 | 한국전자통신연구원 | 고속의 대량 데이터를 수신하기 위한 데이터 수신 모듈의처리 방법 |
US8578387B1 (en) * | 2007-07-31 | 2013-11-05 | Nvidia Corporation | Dynamic load balancing of instructions for execution by heterogeneous processing engines |
US9304775B1 (en) | 2007-11-05 | 2016-04-05 | Nvidia Corporation | Dispatching of instructions for execution by heterogeneous processing engines |
US8285973B2 (en) | 2008-08-04 | 2012-10-09 | International Business Machines Corporation | Thread completion rate controlled scheduling |
KR101041777B1 (ko) * | 2009-06-08 | 2011-06-17 | 엠텍비젼 주식회사 | 멀티 스레드 처리 방법 및 이를 사용하는 프로세서 디바이스 |
US20110276784A1 (en) * | 2010-05-10 | 2011-11-10 | Telefonaktiebolaget L M Ericsson (Publ) | Hierarchical multithreaded processing |
GB2489708B (en) * | 2011-04-05 | 2020-04-15 | Advanced Risc Mach Ltd | Thread selection for multithreaded processing |
KR101892273B1 (ko) | 2011-10-12 | 2018-08-28 | 삼성전자주식회사 | 스레드 프로그레스 트래킹 방법 및 장치 |
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
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 |
US10983799B1 (en) | 2017-12-19 | 2021-04-20 | Apple Inc. | Selection of instructions to issue in a processor |
US11422821B1 (en) | 2018-09-04 | 2022-08-23 | Apple Inc. | Age tracking for independent pipelines |
CN115408153B (zh) * | 2022-08-26 | 2023-06-30 | 海光信息技术股份有限公司 | 多线程处理器的指令分发方法、装置和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073159A (en) * | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
-
2003
- 2003-01-27 KR KR10-2003-0005236A patent/KR100498482B1/ko active IP Right Grant
-
2004
- 2004-01-12 US US10/754,550 patent/US7269712B2/en not_active Expired - Lifetime
- 2004-01-20 JP JP2004012433A patent/JP4476636B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028440A (ja) * | 2009-07-23 | 2011-02-10 | Nec Corp | マルチスレッドプロセッサ及びコンピュータプログラム |
JP2014211743A (ja) * | 2013-04-18 | 2014-11-13 | 株式会社デンソー | マルチコアプロセッサ |
US9747132B2 (en) | 2013-04-18 | 2017-08-29 | Denso Corporation | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions |
Also Published As
Publication number | Publication date |
---|---|
US20040193854A1 (en) | 2004-09-30 |
KR20040068721A (ko) | 2004-08-02 |
JP4476636B2 (ja) | 2010-06-09 |
US7269712B2 (en) | 2007-09-11 |
KR100498482B1 (ko) | 2005-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4476636B2 (ja) | 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 | |
US7725684B2 (en) | Speculative instruction issue in a simultaneously multithreaded processor | |
JP4610593B2 (ja) | デュアルスレッドプロセッサ | |
EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
JP5631976B2 (ja) | マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置 | |
JP4841861B2 (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
US11366669B2 (en) | Apparatus for preventing rescheduling of a paused thread based on instruction classification | |
US20120047352A1 (en) | Processor | |
JP5403973B2 (ja) | アウト・オブ・オーダ・プロセッサにおける述語型実行のための方法および装置 | |
EP1311947A1 (en) | Instruction fetch and dispatch in multithreaded system | |
EP2159691A1 (en) | Simultaneous multithreaded instruction completion controller | |
US20100306513A1 (en) | Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline | |
KR20070108936A (ko) | 조건부 명령어가 실행되지 않을 경우 소스 오퍼랜드를대기하는 것을 중지하는 방법 | |
JP7225745B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US7328327B2 (en) | Technique for reducing traffic in an instruction fetch unit of a chip multiprocessor | |
JP5093237B2 (ja) | 命令処理装置 | |
JP5573038B2 (ja) | マルチスレッドプロセッサ及びプログラム | |
JP2011128672A (ja) | スーパースカラプロセッサ及びその命令処理方法 | |
JP2007079711A (ja) | マイクロプロセッサ | |
JP2006202265A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091013 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100106 |
|
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: 20100223 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100310 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4476636 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |