JP2006099800A - 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 - Google Patents
先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 Download PDFInfo
- Publication number
- JP2006099800A JP2006099800A JP2005334136A JP2005334136A JP2006099800A JP 2006099800 A JP2006099800 A JP 2006099800A JP 2005334136 A JP2005334136 A JP 2005334136A JP 2005334136 A JP2005334136 A JP 2005334136A JP 2006099800 A JP2006099800 A JP 2006099800A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- sequence
- instructions
- address
- store
- 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 38
- 230000015654 memory Effects 0.000 claims description 97
- 238000006243 chemical reaction Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 239000012536 storage buffer Substances 0.000 description 5
- 230000007774 longterm Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011282 treatment 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target 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/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
-
- 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
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】スケジューリング動作に対して規定された通常の制約を一部無視し、できるだけ速く実行するようにある命令を単純にスケジューリングし、スケジューリングがスケジューリング制約に違反した場合例外を発生し、例外を発生した各命令セットを正しく実行するために講ずる処置を決定することによって、より迅速に実行するコードをスケジューラ・ソフトウエアに生成させる装置および方法。
【選択図】図6
Description
従来のスケジューラは、並び替えを行うために、互いに依存しあう命令を決定する際に最善を尽くす。通常のスケジューラは、ある動作が何らかの形で他の動作に依存すること、およびある動作は他の動作に全く依存しないことを判定できるが、他の動作に関しては何も判定することはできない。かかるスケジューラは、他の動作に依存する動作の場合、これらが発生した正常な生来の順序に並べることによって、保守的にこれらを扱う。かかるスケジューラは、他の動作に全く依存しない動作を、それが望むように、並び替える。最終的に、スケジューラは、依存性に関して判断することができない全ての動作を、これらが互いに依存するかのように扱い、したがってこれらの扱いは保守的でしかも緩慢となる。
Claims (19)
- 命令のスケジューリング及び実行の方法であって、
a)第1のアドレス範囲を含む第1のメモリ操作と、前記第1のアドレス範囲の少なくとも一部を含む第2のメモリ操作と、前記第1及び第2のメモリ操作に介入する第3のメモリ操作と、から成る命令のシーケンスをアクセスするステップであって、
前記第3のメモリ操作が前記第1のアドレス範囲内のアドレスを含むか否か知られておらず、前記第1乃至第3のメモリ操作の内の少なくとも1つがストア操作を含む、
アクセス・ステップと、
b)前記命令のシーケンスから前記第2のメモリ操作を除去するステップと、
c)前記第1のアドレス範囲を確定するために前記第3のメモリ操作に情報を付加するステップであって、
当該情報が複数のレジスタの内のどれが保護されたアドレスを保持しているかを確定するためのマスクから成る、
付加ステップと、
d)前記第2のメモリ操作を除去して、前記命令のシーケンスを実行するステップと、
e)前記実行中に、前記第3のメモリ操作が前記第1のアドレス範囲内のアドレスに影響を与えるか否かを決定し、もし影響を与えるなら、例外を発生して前記第2のメモリ操作を含む命令のシーケンスを再実行するステップと、
から成る方法。 - 請求項1に記載の方法において、前記ステップe)が更に、前記実行中に、前記第3のメモリ操作が前記保護された任意のアドレスの範囲内のアドレスに影響を与えたか否かを決定するステップを含むことを特徴とする方法。
- 請求項1に記載の方法において、更に、前記第1のアドレス範囲に関連するメモリ・アドレスを、前記命令シーケンスの実行前に、前記複数のレジスタの1つにストアするステップを含むことを特徴とする方法。
- 請求項1に記載の方法において、更に、前記第1のアドレス範囲に関連するメモリ・アドレスを、前記命令シーケンスの実行前に、レジスタにストアするステップを含むことを特徴とする方法。
- 請求項4に記載の方法において、前記命令のシーケンスが、前記第1の命令シーケンス以降の前記命令のシーケンス内にある第4のメモリ操作を含み、
更に、前記第4のメモリ操作が前記第1のアドレス範囲に影響を与えても例外の発生無しに当該第4のメモリ操作を実行することを許す第2の情報を、前記第4のメモリ操作に付加するステップを含む、
ことを特徴とする方法。 - 請求項1に記載の方法において、前記第3のメモリ操作が介入しない場合、前記第1及び第2のメモリ操作を単一のメモリ操作に安全に縮小できることを特徴とする方法。
- 命令のスケジューリング及び実行の方法であって、
a)第1のアドレス範囲からロードする第1のロード命令と、前記第1のアドレス範囲からロードする第2のロード命令と、前記第1及び第2のロード命令に介入するストア命令と、から成る命令のシーケンスをアクセスするステップであって、
前記ストア命令が前記第1のアドレス範囲内のアドレスにストアするか否か知られていない、
アクセス・ステップと、
b)前記命令のシーケンスから前記第2のロード命令を除去するステップと、
c)前記第2のロード命令無しに前記命令のシーケンスを実行する、前記第1のアドレス範囲に関するメモリ・アドレスを保護レジスタにストアすることを含むステップと、
d)前記実行中に、前記ストア命令が前記第1のアドレス範囲内のアドレスにストアするか否かを決定し、もしストアするなら、例外を発生して前記第2のロード命令を含む命令のシーケンスを再実行するステップと、
から成る方法。 - 請求項7に記載の方法において、前記ステップb)が更に、前記保護レジスタを示すために、前記ストア命令にフラグを付加するステップを含むことを特徴とする方法。
- 請求項7に記載の方法において、前記ステップb)が更に、前記第1のロード命令をロード・アンド・プロテクト命令に変更するステップを含むことを特徴とする方法。
- 命令のスケジューリング及び実行の方法であって、
a)第1のアドレス範囲への第1のストア命令と、前記第1のアドレス範囲への第2のストア命令と、前記第1及び第2のストア命令に介入するロード命令と、から成る命令のシーケンスをアクセスするステップであって、
前記ロード命令が前記第1のアドレス範囲に影響を与えるか否か知られていない、
アクセス・ステップと、
b)前記命令のシーケンスから前記第1のストア命令を除去するステップであって、前記ロード命令に関連するメモリ・アドレスを保護レジスタにストアするステップを含むステップと、
c)前記第1のストア命令無しに前記命令のシーケンスを実行するステップと、
d)前記実行中に、前記ロード命令が前記第1のアドレス範囲内のアドレスに影響を与えたか否かを決定し、もし与えたなら、例外を発生して前記第1のストア命令を含む命令のシーケンスを再実行するステップと、
から成る方法。 - 請求項10に記載の方法において、前記ステップb)が更に、前記保護レジスタを示すために、前記第2のストア命令にフラグを付加するステップを含むことを特徴とする方法。
- 請求項10に記載の方法において、前記ステップb)が更に、前記ロード命令をロード・アンド・プロテクト命令に変更するステップを含むことを特徴とする方法。
- 命令のスケジューリング及び実行の方法であって、
a)第1のアドレス範囲へストアする第1のストア命令と、前記第1のアドレス範囲からロードするロード命令と、前記第1のストア命令及び前記ロード命令に介入する第2のストア命令と、から成る命令のシーケンスをアクセスするステップであって、
前記第2のストア命令が前記第1のアドレス範囲内のアドレスにストアするか否か知られていない、
アクセス・ステップと、
b)前記命令のシーケンスから前記ロード命令を除去するステップであって、前記第1のアドレス範囲に関連するメモリ・アドレスを保護レジスタにストアするステップを含むステップと、
c)前記ロード命令無しに前記命令のシーケンスを実行するステップと、
d)前記実行中に、前記第2のストア命令が前記第1のアドレス範囲内のアドレスにストアするか否かを決定し、もしストアするなら、例外を発生して前記ロード命令を含む命令のシーケンスを再実行するステップと、
から成る方法。 - 請求項13に記載の方法において、前記ステップb)が更に、前記保護レジスタを示すために、前記第2のストア命令にフラグを付加するステップを含むことを特徴とする方法。
- 請求項13に記載の方法において、前記ステップb)が更に、前記第1のストア命令をストア・アンド・プロテクト命令に変更するステップを含むことを特徴とする方法。
- 命令のスケジューリング及び実行の方法であって、
a)第1のアドレス範囲からロードするロード命令と、前記第1のアドレス範囲内のアドレスにストアするか否か知られていない第1のストア命令と、前記第1のアドレス範囲にストアする第2のストア命令とから成る、命令のシーケンスをアクセスするステップであって、
前記第1のストア命令が前記ロード命令及び前記第2のストア命令に介入する、
アクセス・ステップと、
b)前記命令のシーケンスから前記第2のストア命令を除去するステップであって、前記第1のアドレス範囲に関連するメモリ・アドレスを保護レジスタにストアするステップを含むステップと、
c)前記第2のストア命令無しに前記命令のシーケンスを実行するステップと、
d)前記実行中に、前記第1のストア命令が前記第1のアドレス範囲内のアドレスにストアするか否かを決定し、もしストアするなら、例外を発生して前記第2のストア命令を含む命令のシーケンスを再実行するステップと、
から成る方法。 - 請求項16に記載の方法において、前記ステップb)が更に、前記保護レジスタを示すために、前記第1のストア命令にフラグを付加するステップを含むことを特徴とする方法。
- 請求項16に記載の方法において、前記ステップb)が更に、前記ロード命令をロード・アンド・プロテクト命令に変更するステップを含むことを特徴とする方法。
- 請求項16に記載の方法において、前記第2のストア命令が、前記ロード命令が前記第1のアドレス範囲からロードしたのと同じ値を前記第1のアドレス範囲にストア・バックすることを特徴とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/332,338 US7089404B1 (en) | 1999-06-14 | 1999-06-14 | Method and apparatus for enhancing scheduling in an advanced microprocessor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001504103A Division JP2003502754A (ja) | 1999-06-14 | 2000-06-12 | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006099800A true JP2006099800A (ja) | 2006-04-13 |
JP3872809B2 JP3872809B2 (ja) | 2007-01-24 |
Family
ID=23297783
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001504103A Pending JP2003502754A (ja) | 1999-06-14 | 2000-06-12 | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 |
JP2005334136A Expired - Lifetime JP3872809B2 (ja) | 1999-06-14 | 2005-11-18 | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001504103A Pending JP2003502754A (ja) | 1999-06-14 | 2000-06-12 | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 |
Country Status (9)
Country | Link |
---|---|
US (3) | US7089404B1 (ja) |
EP (1) | EP1194855B1 (ja) |
JP (2) | JP2003502754A (ja) |
KR (2) | KR100758367B1 (ja) |
CN (1) | CN1202480C (ja) |
AT (1) | ATE441147T1 (ja) |
CA (1) | CA2377164C (ja) |
DE (1) | DE60042824D1 (ja) |
WO (1) | WO2000077965A2 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761857B1 (en) * | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
US6594821B1 (en) | 2000-03-30 | 2003-07-15 | Transmeta Corporation | Translation consistency checking for modified target instructions by comparing to original copy |
US6615300B1 (en) | 2000-06-19 | 2003-09-02 | Transmeta Corporation | Fast look-up of indirect branch destination in a dynamic translation system |
US6981110B1 (en) | 2001-10-23 | 2005-12-27 | Stephen Waller Melvin | Hardware enforced virtual sequentiality |
US7316017B1 (en) * | 2003-01-06 | 2008-01-01 | Slt Logic, Llc | System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system |
US7386619B1 (en) * | 2003-01-06 | 2008-06-10 | Slt Logic, Llc | System and method for allocating communications to processors in a multiprocessor system |
US7310723B1 (en) | 2003-04-02 | 2007-12-18 | Transmeta Corporation | Methods and systems employing a flag for deferring exception handling to a commit or rollback point |
KR100607987B1 (ko) * | 2004-06-24 | 2006-08-02 | 삼성전자주식회사 | 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법 |
US20060150188A1 (en) * | 2004-12-21 | 2006-07-06 | Manuel Roman | Method and apparatus for supporting soft real-time behavior |
US8413162B1 (en) | 2005-06-28 | 2013-04-02 | Guillermo J. Rozas | Multi-threading based on rollback |
US7774583B1 (en) | 2006-09-29 | 2010-08-10 | Parag Gupta | Processing bypass register file system and method |
US7478226B1 (en) * | 2006-09-29 | 2009-01-13 | Transmeta Corporation | Processing bypass directory tracking system and method |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) * | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US9189233B2 (en) | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8719649B2 (en) | 2009-03-04 | 2014-05-06 | Alcatel Lucent | Method and apparatus for deferred scheduling for JTAG systems |
US8621301B2 (en) | 2009-03-04 | 2013-12-31 | Alcatel Lucent | Method and apparatus for virtual in-circuit emulation |
US8775884B2 (en) | 2009-03-04 | 2014-07-08 | Alcatel Lucent | Method and apparatus for position-based scheduling for JTAG systems |
US20100229058A1 (en) * | 2009-03-04 | 2010-09-09 | Suresh Goyal | Method and apparatus for system testing using scan chain decomposition |
US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US9092253B2 (en) | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
US8402218B2 (en) * | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
US8850166B2 (en) * | 2010-02-18 | 2014-09-30 | International Business Machines Corporation | Load pair disjoint facility and instruction therefore |
US9405547B2 (en) * | 2011-04-07 | 2016-08-02 | Intel Corporation | Register allocation for rotation based alias protection register |
WO2013048379A1 (en) | 2011-09-27 | 2013-04-04 | Intel Corporation | Expediting execution time memory aliasing checking |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9183105B2 (en) * | 2013-02-04 | 2015-11-10 | Alcatel Lucent | Systems and methods for dynamic scan scheduling |
US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
CN103761073A (zh) * | 2014-01-08 | 2014-04-30 | 东南大学 | 一种面向ARMv7的基于推测的指令动态调度方法 |
US10303477B2 (en) * | 2015-06-26 | 2019-05-28 | Intel Corporation | Persistent commit processors, methods, systems, and instructions |
US11080182B2 (en) * | 2019-01-07 | 2021-08-03 | International Business Machines Corporation | Object load introspection using guarded storage |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
US4817118A (en) | 1987-06-29 | 1989-03-28 | Step Engineering | Mobile incident logger |
US4903264A (en) | 1988-04-18 | 1990-02-20 | Motorola, Inc. | Method and apparatus for handling out of order exceptions in a pipelined data unit |
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
US5226130A (en) | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5253349A (en) * | 1991-01-30 | 1993-10-12 | International Business Machines Corporation | Decreasing processing time for type 1 dyadic instructions |
IL98248A0 (en) * | 1991-05-23 | 1992-06-21 | Ibm Israel | Instruction scheduler for a computer |
US5269017A (en) * | 1991-08-29 | 1993-12-07 | International Business Machines Corporation | Type 1, 2 and 3 retry and checkpointing |
US5274815A (en) | 1991-11-01 | 1993-12-28 | Motorola, Inc. | Dynamic instruction modifying controller and operation method |
US5349658A (en) | 1991-11-01 | 1994-09-20 | Rourke Thomas C O | Graphical user interface |
JP2786574B2 (ja) | 1992-05-06 | 1998-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置 |
EP0663083B1 (en) | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5519841A (en) * | 1992-11-12 | 1996-05-21 | Digital Equipment Corporation | Multi instruction register mapper |
US5450560A (en) | 1992-12-21 | 1995-09-12 | Motorola, Inc. | Pointer for use with a buffer and method of operation |
DE69330889T2 (de) * | 1992-12-31 | 2002-03-28 | Seiko Epson Corp | System und Verfahren zur Änderung der Namen von Registern |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
US6704861B1 (en) * | 1993-06-17 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Mechanism for executing computer instructions in parallel |
US5421022A (en) * | 1993-06-17 | 1995-05-30 | Digital Equipment Corporation | Apparatus and method for speculatively executing instructions in a computer system |
US5420990A (en) | 1993-06-17 | 1995-05-30 | Digital Equipment Corporation | Mechanism for enforcing the correct order of instruction execution |
US5454117A (en) | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices Inc | Superskalarmikroprozessoren |
US5463745A (en) | 1993-12-22 | 1995-10-31 | Intel Corporation | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system |
US5588126A (en) * | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
US5537559A (en) | 1994-02-08 | 1996-07-16 | Meridian Semiconductor, Inc. | Exception handling circuit and method |
US5559976A (en) | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
US5546599A (en) | 1994-03-31 | 1996-08-13 | International Business Machines Corporation | Processing system and method of operation for processing dispatched instructions with detected exceptions |
TW260765B (ja) | 1994-03-31 | 1995-10-21 | Ibm | |
US5627981A (en) * | 1994-07-01 | 1997-05-06 | Digital Equipment Corporation | Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination |
US5689712A (en) | 1994-07-27 | 1997-11-18 | International Business Machines Corporation | Profile-based optimizing postprocessors for data references |
US5537620A (en) * | 1994-09-16 | 1996-07-16 | International Business Machines Corporation | Redundant load elimination on optimizing compilers |
JP3617686B2 (ja) | 1994-09-26 | 2005-02-09 | 株式会社リコー | 画像形成装置及び画像形成装置管理システム |
US6216200B1 (en) | 1994-10-14 | 2001-04-10 | Mips Technologies, Inc. | Address queue |
US5802588A (en) * | 1995-04-12 | 1998-09-01 | Advanced Micro Devices, Inc. | Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer |
US5625835A (en) * | 1995-05-10 | 1997-04-29 | International Business Machines Corporation | Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor |
US5694577A (en) * | 1995-06-06 | 1997-12-02 | Matsushita Electric Industrial Co., Ltd. | Memory conflict buffer for achieving memory disambiguation in compile-time code schedule |
US5751983A (en) * | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
US5754812A (en) * | 1995-10-06 | 1998-05-19 | Advanced Micro Devices, Inc. | Out-of-order load/store execution control |
US5819056A (en) | 1995-10-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Instruction buffer organization method and system |
US5809273A (en) | 1996-01-26 | 1998-09-15 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US6185668B1 (en) * | 1995-12-21 | 2001-02-06 | Intergraph Corporation | Method and apparatus for speculative execution of instructions |
US5901308A (en) * | 1996-03-18 | 1999-05-04 | Digital Equipment Corporation | Software mechanism for reducing exceptions generated by speculatively scheduled instructions |
US5875340A (en) * | 1996-05-31 | 1999-02-23 | Hewlett-Packard Company | Optimized storage system and method for a processor that executes instructions out of order |
US5860017A (en) * | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
US5903749A (en) * | 1996-07-02 | 1999-05-11 | Institute For The Development Of Emerging Architecture, L.L.C. | Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs |
US6031992A (en) * | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
US5832205A (en) | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US5920710A (en) * | 1996-11-18 | 1999-07-06 | Advanced Micro Devices, Inc. | Apparatus and method for modifying status bits in a reorder buffer with a large speculative state |
US6173366B1 (en) * | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US5864692A (en) | 1996-12-16 | 1999-01-26 | Hewlett-Packard Company | Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions |
US6011908A (en) * | 1996-12-23 | 2000-01-04 | Transmeta Corporation | Gated store buffer for an advanced microprocessor |
US5918005A (en) * | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
US5931957A (en) * | 1997-03-31 | 1999-08-03 | International Business Machines Corporation | Support for out-of-order execution of loads and stores in a processor |
US5790625A (en) | 1997-04-14 | 1998-08-04 | International Business Machines Corporation | Mechanism for enabling an array of numerous large high speed counters |
US5996060A (en) * | 1997-09-25 | 1999-11-30 | Technion Research And Development Foundation Ltd. | System and method for concurrent processing |
US6505296B2 (en) | 1997-10-13 | 2003-01-07 | Hewlett-Packard Company | Emulated branch effected by trampoline mechanism |
US5987595A (en) * | 1997-11-25 | 1999-11-16 | Intel Corporation | Method and apparatus for predicting when load instructions can be executed out-of order |
US6631514B1 (en) * | 1998-01-06 | 2003-10-07 | Hewlett-Packard Development, L.P. | Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations |
US6148394A (en) * | 1998-02-10 | 2000-11-14 | International Business Machines Corporation | Apparatus and method for tracking out of order load instructions to avoid data coherency violations in a processor |
US6202204B1 (en) * | 1998-03-11 | 2001-03-13 | Intel Corporation | Comprehensive redundant load elimination for architectures supporting control and data speculation |
US6609189B1 (en) * | 1998-03-12 | 2003-08-19 | Yale University | Cycle segmented prefix circuits |
US6192465B1 (en) * | 1998-09-21 | 2001-02-20 | Advanced Micro Devices, Inc. | Using multiple decoders and a reorder queue to decode instructions out of order |
US6163839A (en) | 1998-09-30 | 2000-12-19 | Intel Corporation | Non-stalling circular counterflow pipeline processor with reorder buffer |
US6463523B1 (en) * | 1999-02-01 | 2002-10-08 | Compaq Information Technologies Group, L.P. | Method and apparatus for delaying the execution of dependent loads |
US6189088B1 (en) * | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
-
1999
- 1999-06-14 US US09/332,338 patent/US7089404B1/en not_active Expired - Lifetime
-
2000
- 2000-06-12 KR KR1020017016123A patent/KR100758367B1/ko active IP Right Grant
- 2000-06-12 CA CA002377164A patent/CA2377164C/en not_active Expired - Fee Related
- 2000-06-12 JP JP2001504103A patent/JP2003502754A/ja active Pending
- 2000-06-12 AT AT00944658T patent/ATE441147T1/de not_active IP Right Cessation
- 2000-06-12 KR KR1020057023578A patent/KR20060002031A/ko not_active Application Discontinuation
- 2000-06-12 WO PCT/US2000/016209 patent/WO2000077965A2/en not_active Application Discontinuation
- 2000-06-12 EP EP00944658A patent/EP1194855B1/en not_active Expired - Lifetime
- 2000-06-12 DE DE60042824T patent/DE60042824D1/de not_active Expired - Lifetime
- 2000-06-12 CN CNB008088837A patent/CN1202480C/zh not_active Expired - Lifetime
-
2004
- 2004-02-20 US US10/783,473 patent/US8209517B1/en not_active Expired - Lifetime
-
2005
- 2005-11-18 JP JP2005334136A patent/JP3872809B2/ja not_active Expired - Lifetime
-
2012
- 2012-06-04 US US13/488,138 patent/US9081563B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20120246453A1 (en) | 2012-09-27 |
KR20020022068A (ko) | 2002-03-23 |
WO2000077965A2 (en) | 2000-12-21 |
ATE441147T1 (de) | 2009-09-15 |
EP1194855B1 (en) | 2009-08-26 |
US7089404B1 (en) | 2006-08-08 |
DE60042824D1 (de) | 2009-10-08 |
JP3872809B2 (ja) | 2007-01-24 |
EP1194855A2 (en) | 2002-04-10 |
KR20060002031A (ko) | 2006-01-06 |
CA2377164C (en) | 2007-09-25 |
CN1355902A (zh) | 2002-06-26 |
CN1202480C (zh) | 2005-05-18 |
US9081563B2 (en) | 2015-07-14 |
EP1194855A4 (en) | 2004-11-03 |
JP2003502754A (ja) | 2003-01-21 |
US8209517B1 (en) | 2012-06-26 |
KR100758367B1 (ko) | 2007-09-14 |
WO2000077965A3 (en) | 2001-04-05 |
CA2377164A1 (en) | 2000-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3872809B2 (ja) | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 | |
US10061582B2 (en) | Method for increasing the speed of speculative execution | |
US5926832A (en) | Method and apparatus for aliasing memory data in an advanced microprocessor | |
KR100334479B1 (ko) | 컴퓨터 처리 시스템에서 로드 동작의 순서 변경 방법 및 장치 | |
KR100394967B1 (ko) | 개선된 마이크로프로세서를 위한 게이트 저장 버퍼 | |
JP3615770B2 (ja) | アドレスされた構成部分の思索の失敗を検出するメモリ・コントローラ | |
US7716452B1 (en) | Translated memory protection apparatus for an advanced microprocessor | |
US5958061A (en) | Host microprocessor with apparatus for temporarily holding target processor state | |
KR20010073182A (ko) | 전송을 적재하는 저장 메커니즘 | |
JP3776132B2 (ja) | マイクロプロセッサの改良 | |
US6668287B1 (en) | Software direct memory access | |
TW201732590A (zh) | 向量式原子記憶體更新指令 | |
JP3621116B2 (ja) | 先進のプロセッサのための変換メモリ保護装置 | |
WO2000065440A2 (en) | Exception handling method and apparatus for use in program code conversion | |
WO1999003037A1 (en) | Host microprocessor with apparatus for temporarily holding target processor state | |
EP3935491B1 (en) | Instruction ordering | |
GB2349486A (en) | Exception handling in program code conversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060919 |
|
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: 20060921 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061020 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3872809 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091027 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101027 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111027 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111027 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121027 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121027 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131027 Year of fee payment: 7 |
|
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 |
|
EXPY | Cancellation because of completion of term |