JP5155655B2 - マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御 - Google Patents
マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御 Download PDFInfo
- Publication number
- JP5155655B2 JP5155655B2 JP2007520899A JP2007520899A JP5155655B2 JP 5155655 B2 JP5155655 B2 JP 5155655B2 JP 2007520899 A JP2007520899 A JP 2007520899A JP 2007520899 A JP2007520899 A JP 2007520899A JP 5155655 B2 JP5155655 B2 JP 5155655B2
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- microprocessor
- instruction
- pipeline
- execution unit
- 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
- 238000000034 method Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 33
- 238000012546 transfer Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
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)
- Microcomputers (AREA)
Description
図1において、一般的なマイクロプロセッサ1が示される。マイクロプロセッサ1は、1つあるいはそれより多いキャッシュ2か、1つあるいはそれより多いコ・プロセッサ3かのいずれかを介してそれが常駐する残りのシステムに接続される。殆どの状況において、データをキャッシュ、又は、コ・プロセッサの1つに送る能力は、最近キャッシュ又はコ・プロセッサに送られた命令のフローに関する情報を使用しているマイクロプロセッサ自身によって、完全に決定される。更に、コ・プロセッサ自身は、マイクロプロセッサに類似し得るか、又は、実際上、マイクロプロセッサであり、命令を走らせ、予測できない振舞いを表示する。予測できない振舞いを持つコ・プロセッサ、に送られるべきデータをスケジューリングするためのマイクロプロセッサ1の能力は、それがもはや、そのコ・プロセッサが、データを取得できるか否かを決定するためのシステムの状態を十分に知らないような状況において非常に限定される。
12 ブロードキャスト・タイム・スタンプ
Claims (12)
- マイクロプロセッサ・出力ポートを介して、少なくとも1つの他の実行ユニットに与えられた命令を制御するための、マイクロプロセッサによる方法であって、
前記少なくとも1つの他の実行ユニットに対して、マイクロプロセッサ・パイプラインを介して命令のスレッドを提供し、
前記命令をタイム・スタンピングし、
出力ポートを介して、前記少なくとも1つの他の実行ユニットに、順番に命令を提供し、
前記マイクロプロセッサにおいて、前記他の実行ユニットが更なる命令を受け取ることができるか否かを検知し、
そして、もし、前記検知の結果が、前記他の実行ユニットが更なる命令を受信できないというものならば、前記マイクロプロセッサ・パイプライン内に依然として存在するそのスレッドに対する命令を削除し、そして、
実行することが不可能であった、前記タイム・スタンプされた命令に対応する命令から、前記スレッドを再スタートさせる、
ステップを含む方法。 - 前記少なくとも1つの他の実行ユニットの各々が、レジスタを介して前記マイクロプロセッサ出力ポートに接続される、請求項1に記載の方法。
- 前記他の実行ユニットによって受け取られることが不可能な、現在の命令のタイム・スタンプを、前記パイプライン内の命令のタイム・スタンプと比較し、当該比較の結果に従属して、パイプライン内の命令を破棄するステップを含む、請求項1又は2に記載の方法。
- 前記パイプライン内の前記命令のタイム・スタンプの値が、前記現在の命令のタイム・スタンプの値より大きい場合に、前記パイプライン内の前記命令が破棄される、請求項3に記載の方法。
- アドレスであって、当該アドレス内に、前記他の実行ユニットが受信できない現在の命令が記憶される、当該アドレスに対応するメモリ内のアドレスから命令を読出すことによって機能停止したスレッドを再スタートさせるステップを含む、請求項1乃至4のいずれか一項に記載の方法。
- 前記マイクロプロセッサを通じて前記他の実行ユニットのための命令のマルチプル・スレッドをスケジューリングし、当該スレッドの1つが実行不可能な場合に、機能停止されていないスレッドの実行を継続するステップを含む、請求項1乃至5のいずれか一項に記載の方法。
- マイクロプロセッサ出力ポートを介して、少なくとも1つの他の実行ユニットに与えられた命令を、マイクロプロセッサにより制御するためのシステムであって、
前記少なくとも1つの他の実行ユニットのための命令のスレッドを供給するマイクロプロセッサ・パイプライン、
前記命令をタイム・スタンピングするための手段、
前記出力ポートを介して、前記他の実行ユニットに順番に命令を与えるための手段、
そのそれぞれの他の実行ユニットが更なる命令を受け取ることができるか否か、を検知するための手段、
前記検知の結果が、前記他の実行ユニットが更なる命令を受け取ることができないというものである場合に、前記マイクロプロセッサ・パイプライン内に依然として存在する命令を削除するための手段、及び、
実行することができなかった前記タイム・スタンプされた命令に対応する命令から、前記スレッドを再スタートするための手段、
を備えるシステム。 - 前記他の実行ユニットの各々を、前記マイクロプロセッサ出力ポートにカップルするレジスタを備える、請求項7に記載の装置。
- 前記他の実行ユニットによって受け取ることができない、現在の命令の前記タイム・スタンプと、前記パイプライン内の命令の前記タイム・スタンプを比較する手段と、
前記比較の結果に従属して、前記パイプライン内の前記命令を破棄するための手段、
を備える、請求項7又は8に記載の装置。 - 前記パイプライン内の命令を破棄するための前記手段が、それらのタイム・スタンプの値が、前記現在の命令のタイム・スタンプの値より大きい場合に、前記パイプライン内の命令を破棄する、請求項9に記載の装置。
- 機能停止したスレッドを再スタートするための前記手段が、アドレスであって、当該アドレス内に実行できなかった現在の命令が記憶されるアドレスに対応するアドレスから命令メモリを読み取るための手段を含む、請求項7ないし10のいずれかに記載の装置。
- 前記他の実行ユニットのために、マイクロプロセッサを通じて、命令のマルチプル・スレッドをスケジューリングするための手段、及び、
前記スレッドの1つが実行できなかった場合に、機能停止されなかったスレッドの実行を継続するための手段、
を備える請求項7ないし11に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0415851.5A GB0415851D0 (en) | 2004-07-15 | 2004-07-15 | Microprocessor output ports and control of instructions provided therefrom |
GB0415851.5 | 2004-07-15 | ||
PCT/GB2005/002804 WO2006005964A1 (en) | 2004-07-15 | 2005-07-15 | Microprocessor output ports and control of instructions provided therefrom |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008507020A JP2008507020A (ja) | 2008-03-06 |
JP5155655B2 true JP5155655B2 (ja) | 2013-03-06 |
Family
ID=32893617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007520899A Active JP5155655B2 (ja) | 2004-07-15 | 2005-07-15 | マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7594097B2 (ja) |
EP (1) | EP1766510B1 (ja) |
JP (1) | JP5155655B2 (ja) |
GB (2) | GB0415851D0 (ja) |
WO (1) | WO2006005964A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078851B2 (en) * | 2008-12-18 | 2011-12-13 | Faraday Technology Corp. | Processor and method for recovering global history shift register and return address stack thereof by determining a removal range of a branch recovery table |
US9026550B2 (en) * | 2012-01-30 | 2015-05-05 | Siemens Aktiengesellschaft | Temporal pattern matching in large collections of log messages |
GB2563587B (en) | 2017-06-16 | 2021-01-06 | Imagination Tech Ltd | Scheduling tasks |
EP3783498A1 (en) | 2019-08-22 | 2021-02-24 | Ams Ag | Signal processor, processor system and method for transferring data |
US20230221961A1 (en) * | 2022-01-10 | 2023-07-13 | Cisco Technology, Inc. | Remote front-drop for recovery after pipeline stall |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
JP2849189B2 (ja) * | 1990-08-27 | 1999-01-20 | 富士通株式会社 | 例外処理システム |
ATE184407T1 (de) * | 1994-01-03 | 1999-09-15 | Intel Corp | Verfahren und vorrichtung zum implementieren eines vierstufigen verzweigungsauflosungssystem in einem rechnerprozessor |
JPH07219774A (ja) | 1994-02-07 | 1995-08-18 | Fujitsu Ltd | データ処理装置および例外処理方法 |
JP3630904B2 (ja) * | 1996-02-29 | 2005-03-23 | 三洋電機株式会社 | 演算実行方法および演算実行装置 |
GB2311882B (en) | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US6349297B1 (en) * | 1997-01-10 | 2002-02-19 | Venson M. Shaw | Information processing system for directing information request from a particular user/application, and searching/forwarding/retrieving information from unknown and large number of information resources |
JP3623693B2 (ja) * | 1999-06-17 | 2005-02-23 | エヌイーシーコンピュータテクノ株式会社 | ファームウェア置換装置および方法 |
US6574725B1 (en) | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
JP3621315B2 (ja) * | 1999-11-22 | 2005-02-16 | Necエレクトロニクス株式会社 | マイクロプロセッサシステム |
JP5185478B2 (ja) * | 2000-02-29 | 2013-04-17 | 富士通セミコンダクター株式会社 | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 |
US6850257B1 (en) * | 2000-04-06 | 2005-02-01 | Microsoft Corporation | Responsive user interface to manage a non-responsive application |
US6694425B1 (en) * | 2000-05-04 | 2004-02-17 | International Business Machines Corporation | Selective flush of shared and other pipeline stages in a multithread processor |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
US6836808B2 (en) * | 2002-02-25 | 2004-12-28 | International Business Machines Corporation | Pipelined packet processing |
GB2387932B (en) | 2002-04-26 | 2005-06-22 | Motorola Inc | Apparatus and method for scheduling tasks in a communications network |
-
2004
- 2004-07-15 GB GBGB0415851.5A patent/GB0415851D0/en not_active Ceased
-
2005
- 2005-07-15 EP EP05761561A patent/EP1766510B1/en active Active
- 2005-07-15 US US11/632,567 patent/US7594097B2/en active Active
- 2005-07-15 WO PCT/GB2005/002804 patent/WO2006005964A1/en active Application Filing
- 2005-07-15 JP JP2007520899A patent/JP5155655B2/ja active Active
- 2005-07-15 GB GB0514598A patent/GB2416230B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2416230A (en) | 2006-01-18 |
GB2416230B (en) | 2006-09-27 |
GB0415851D0 (en) | 2004-08-18 |
EP1766510A1 (en) | 2007-03-28 |
US20080250234A1 (en) | 2008-10-09 |
WO2006005964A1 (en) | 2006-01-19 |
US7594097B2 (en) | 2009-09-22 |
EP1766510B1 (en) | 2012-03-28 |
GB0514598D0 (en) | 2005-08-24 |
JP2008507020A (ja) | 2008-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100440139C (zh) | 双线程处理器和方法 | |
US8539485B2 (en) | Polling using reservation mechanism | |
JP5263844B2 (ja) | パイプラインプロセッサにおける長い待ち時間命令の処理 | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
KR100951092B1 (ko) | 정교한 멀티스레드 디스패치 차단 방법, 장치 및 컴퓨터 판독가능한 기록 매체 | |
KR100304182B1 (ko) | 슈퍼스칼라프로세서에서트랩을검출및실행하는장치 | |
US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
JP5485982B2 (ja) | パイプライン型アーキテクチャを有するデータプロセッサ内のトレースデータを与えるシステム | |
US8006069B2 (en) | Inter-processor communication method | |
WO2011155097A1 (ja) | 命令発行制御装置及び方法 | |
JP2007507791A (ja) | トレースキャッシュベースのプロセッサ中の例外命令を処理するためのシステム及び方法 | |
JP5413853B2 (ja) | マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス | |
US20060184772A1 (en) | Lookahead mode sequencer | |
JP5155655B2 (ja) | マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御 | |
JP4327008B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP5168277B2 (ja) | 命令制御装置及び制御方法 | |
JP4631442B2 (ja) | プロセッサ | |
US20040128476A1 (en) | Scheme to simplify instruction buffer logic supporting multiple strands | |
JP5093237B2 (ja) | 命令処理装置 | |
US20040128484A1 (en) | Method and apparatus for transparent delayed write-back | |
US11194577B2 (en) | Instruction issue according to in-order or out-of-order execution modes | |
US20160283233A1 (en) | Computer systems and methods for context switching | |
US20110093863A1 (en) | Context switching in a data processing apparatus | |
JP2000020310A (ja) | プロセッサ | |
KR100649301B1 (ko) | 마이크로쓰레드를 이용한 인터럽트 처리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110531 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110607 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110629 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120501 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120801 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121031 |
|
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: 20121126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121207 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151214 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5155655 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |