KR20020022068A - 향상된 마이크로프로세서에서의 스케줄링을 향상시키는방법 및 장치 - Google Patents
향상된 마이크로프로세서에서의 스케줄링을 향상시키는방법 및 장치 Download PDFInfo
- Publication number
- KR20020022068A KR20020022068A KR1020017016123A KR20017016123A KR20020022068A KR 20020022068 A KR20020022068 A KR 20020022068A KR 1020017016123 A KR1020017016123 A KR 1020017016123A KR 20017016123 A KR20017016123 A KR 20017016123A KR 20020022068 A KR20020022068 A KR 20020022068A
- Authority
- KR
- South Korea
- Prior art keywords
- instructions
- sequence
- rearranged
- exception
- storing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000002708 enhancing effect Effects 0.000 title 1
- 230000015654 memory Effects 0.000 claims description 91
- 230000008707 rearrangement Effects 0.000 claims description 29
- 230000009471 action Effects 0.000 claims description 11
- 238000013519 translation Methods 0.000 description 14
- 230000014616 translation Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 11
- 230000002085 persistent effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000007774 longterm Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Power Sources (AREA)
Abstract
Description
Claims (21)
- 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법에 있어서, 상기 방법은:비록 재배열된 시퀀스가 예외를 생성할지라도,가능한한 고속으로 작동하는 명령들의 시퀀스를 재배열하는 단계와,만약 명령들의 상기 재배열된 시퀀스가 스케줄링 제한을 위반하면 예외를 생성하는 단계 및,명령들에 대한 예외가 생성되는 각 일련의 명령들을 정확하게 실행하도록 하는 조치가 취해지는지를 결정하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 1 항에 있어서, 만약 명령들의 상기 재배열된 시퀀스가 스케줄링 제한을 위반하면 예외를 생성하는 상기 단계는 상기 재배열된 시퀀스에서의 재배열된 명령들에 의해 야기된 예외들을 삭제하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 2 항에 있어서, 상기 재배열된 시퀀스에서의 재배열된 명령들에 의해 야기된 예외들을 삭제하는 상기 단계는;상기 시퀀스에서 순서없이 놓여진 명령들을 기억하는 단계와,상기 시퀀스에 대하여 상기 기억된 명령이 부정확한 결과가 명령들의 상기 시퀀스에 의해 생성되는지를 결정하도록 재배열되는 상기 시퀀스 내의 명령들을 검사하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 2 항에 있어서, 상기 시퀀스에서 순서없이 놓여진 명령들을 기억하는 상기 단계는 상기 명령에 의해 접근된 메모리 주소를 저장하는 단계를 포함하고, 상기 시퀀스에 대하여 상기 기억된 명령이 부정확한 결과가 명령들의 상기 시퀀스에 의해 생성되는지를 결정하도록 재배열되는 상기 시퀀스 내의 명령들을 검사하는 상기 단계는 상기 저장된 메모리 주소와, 검사되는 명령들에 의해 접근된 메모리 주호들과 비교하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 4 항에 있어서, 상기 명령에 의해 접근된 데이터의 메모리 주소가 보호 레지스터에 저장되는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 4 항에 있어서, 상기 방법은 모든 기억된 명령들이 보유되는 장소를 기억하는 단계를 추가적으로 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 1 항에 있어서, 상기 재배열된 시퀀스가 예외를 아마 생성할 수 있는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 7 항에 있어서, 만약 명령들의 상기 재배열된 시퀀스가 스케줄링 제한을 위반하면 예외를 생성하는 상기 단계는 상기 재배열된 시퀀스 내의 재배열된 명령들에 의해 야기된 예외들을 삭제하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 8 항에 있어서, 상기 재배열된 시퀀스 내의 재배열된 명령들에 의해 야기된 예외들을 삭제하는 상기 단계는;상기 시퀀스에서 순서없이 놓여진 명령들을 기억하는 단계와,상기 시퀀스에 대하여 상기 기억된 명령이 부정확한 결과가 명령들의 상기 시퀀스에 의해 생성되는지를 결정하도록 재배열되는 상기 시퀀스 내의 명령들을 검사하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 8 항에 있어서, 상기 시퀀스에서 순서없이 놓여진 명령들을 기억하는 상기 단계는 상기 명령에 의해 접근된 메모리 주소를 저장하는 단계를 포함하고, 상기 시퀀스에 대하여 상기 기억된 명령이 부정확한 결과가 명령들의 상기 시퀀스에 의해 생성되는지를 결정하도록 재배열되는 상기 시퀀스 내의 명령들을 검사하는 상기 단계는 상기 저장된 메모리 주소와, 검사되는 명령들에 의해 접근된 메모리 주호들과 비교하는 단계를 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 10 항에 있어서, 상기 명령에 의해 접근된 메모리 주소가 보호 레지스터에 저장되는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 제 10 항에 있어서, 상기 방법은 모든 명령들이 보유되는 장소를 기억하는 단계를 추가적으로 포함하는 것을 특징으로 하는 스케줄러 소프트웨어로 하여금 고속으로 실행하는 코드를 생성하도록 방법.
- 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템에 있어서, 상기 시스템은:비록 재배열된 시퀀스가 예외를 생성할지라도, 가능한한 고속으로 작동하는 명령들의 시퀀스를 재배열하는 수단과,만약 명령들의 상기 재배열된 시퀀스가 스케줄링 제한을 위반하면 예외를 생성하는 수단 및,명령들에 대한 예외가 생성되는 각 일련의 명령들을 정확하게 실행하도록 하는 조치가 취해지는지를 결정하는 수단을 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 13 항에 있어서, 만약 명령들의 상기 재배열된 시퀀스가 스케줄링 제한을 위반하면 예외를 생성하는 상기 수단 상기 재배열된 시퀀스 내의 재배열된 명령들에 의해 야기된 예외들을 삭제하는 수단을 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 14 항에 있어서, 상기 재배열된 시퀀스 내의 재배열된 명령들에 의해 야기된 예외를 삭제하는 수단은:상기 시퀀스 내에 순서없이 놓여진 명령을 식별하는 수단과,부정확한 결과가 명령들의 시퀀스에 의해 생성되는지를 판단하도록 상기 시퀀스에 대해 상기 식별된 명령이 재배열되는 상기 시퀀스 내의 명령들을 검사하는 수단을 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 14 항에 있어서, 상기 시퀀스 내에 순서없이 놓여진 명령을 식별하는 상기 수단은 상기 명령에 의해 접근된 메모리 주소를 저장하는 수단을 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 16 항에 있어서, 상기 명령에 의해 접근된 데이터의 메모리 주소를 저장하는 상기 수단은 보호 레지스터인 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 16 항에 있어서, 상기 시스템은 상기 식별된 명령들에 의해 접근된 메모리 주소들을 위한 표시들을 저장하는 수단을 추가적으로 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 16 항에 있어서, 상기 시스템은 명령들의 시퀀스 동안 존재하는 식별된 명령들에 의해 접근된 메모리 주소들을 위한 표시들을 저장하는 수단과,명령들의 시퀀스 이상으로 지속하는 식별된 명령들에 의해 접근된 주소를 위한 표시를 저장하는 수단을 추가적으로 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 19 항에 있어서, 명령들의 시퀀스 동안 존재하는 식별된 명령들에 의해 접근된 메모리 주소들을 위한 표시들을 저장하는 상기 수단은 상기 식별된 명령들에 의해 접근된 유효한 메모리 주소들의 표시들을 저장하는 제 1 레지스터이고,명령들의 시퀀스 이상으로 지속하는 식별된 명령들에 의해 접근된 주소를 위한 표시를 저장하는 상기 수단은 상기 식별된 명령들에 의해 접근된 유효 메모리 주소들의 표시를 저장하는 제 2 레지스터이고;상기 시스템은 상기 식별된 명령들에 의해 접근된 메모리 주소들을 위한 표시를 저장하는 제 3 레지스터와,명령들의 시퀀스가 예외없이 실행되는 때, 상기 제 2 레지스터로부터 상기 제 1 및 제 3 레지스터들로 표시들을 전송하는 수단을 추가적으로 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
- 제 13 항에 있어서, 상기 시스템은 실행 유닛 레지스터 내의 메모리 데이터를 복사하는 수단을 추가적으로 구비하는 것을 특징으로 하는 고속으로 실행하는 코드를 생성하기 위해 명령들의 재배열을 제어하는 시스템.
Applications Claiming Priority (2)
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 |
US09/332,338 | 1999-06-14 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057023578A Division KR20060002031A (ko) | 1999-06-14 | 2000-06-12 | 명령들을 스케줄링 및 실행하는 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020022068A true KR20020022068A (ko) | 2002-03-23 |
KR100758367B1 KR100758367B1 (ko) | 2007-09-14 |
Family
ID=23297783
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020017016123A KR100758367B1 (ko) | 1999-06-14 | 2000-06-12 | 향상된 마이크로프로세서에서의 스케줄링을 강화시키는 방법 및 장치 |
KR1020057023578A KR20060002031A (ko) | 1999-06-14 | 2000-06-12 | 명령들을 스케줄링 및 실행하는 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057023578A KR20060002031A (ko) | 1999-06-14 | 2000-06-12 | 명령들을 스케줄링 및 실행하는 방법 |
Country Status (9)
Country | Link |
---|---|
US (3) | US7089404B1 (ko) |
EP (1) | EP1194855B1 (ko) |
JP (2) | JP2003502754A (ko) |
KR (2) | KR100758367B1 (ko) |
CN (1) | CN1202480C (ko) |
AT (1) | ATE441147T1 (ko) |
CA (1) | CA2377164C (ko) |
DE (1) | DE60042824D1 (ko) |
WO (1) | WO2000077965A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100607987B1 (ko) * | 2004-06-24 | 2006-08-02 | 삼성전자주식회사 | 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법 |
Families Citing this family (32)
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 |
US7386619B1 (en) * | 2003-01-06 | 2008-06-10 | Slt Logic, Llc | System and method for allocating communications to processors in a multiprocessor system |
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 |
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 |
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 |
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 |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
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 |
US8677198B2 (en) * | 2009-03-04 | 2014-03-18 | Alcatel Lucent | Method and apparatus for system testing using multiple processors |
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 |
WO2013048468A1 (en) | 2011-09-30 | 2013-04-04 | 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 |
JP3531166B2 (ja) * | 1992-12-31 | 2004-05-24 | セイコーエプソン株式会社 | レジスタ・リネーミングのシステム及び方法 |
US5467473A (en) * | 1993-01-08 | 1995-11-14 | International Business Machines Corporation | Out of order instruction load and store comparison |
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 |
US6704861B1 (en) * | 1993-06-17 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Mechanism for executing computer instructions in parallel |
US5454117A (en) | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
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 |
TW260765B (ko) | 1994-03-31 | 1995-10-21 | Ibm | |
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 |
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 |
US5809273A (en) | 1996-01-26 | 1998-09-15 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US5819056A (en) | 1995-10-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Instruction buffer organization method and system |
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 CN CNB008088837A patent/CN1202480C/zh not_active Expired - Lifetime
- 2000-06-12 AT AT00944658T patent/ATE441147T1/de not_active IP Right Cessation
- 2000-06-12 CA CA002377164A patent/CA2377164C/en not_active Expired - Fee Related
- 2000-06-12 WO PCT/US2000/016209 patent/WO2000077965A2/en not_active Application Discontinuation
- 2000-06-12 JP JP2001504103A patent/JP2003502754A/ja active Pending
- 2000-06-12 KR KR1020017016123A patent/KR100758367B1/ko active IP Right Grant
- 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 KR KR1020057023578A patent/KR20060002031A/ko not_active Application Discontinuation
-
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
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100607987B1 (ko) * | 2004-06-24 | 2006-08-02 | 삼성전자주식회사 | 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2006099800A (ja) | 2006-04-13 |
EP1194855A4 (en) | 2004-11-03 |
CA2377164A1 (en) | 2000-12-21 |
EP1194855B1 (en) | 2009-08-26 |
US8209517B1 (en) | 2012-06-26 |
EP1194855A2 (en) | 2002-04-10 |
KR20060002031A (ko) | 2006-01-06 |
US7089404B1 (en) | 2006-08-08 |
JP2003502754A (ja) | 2003-01-21 |
ATE441147T1 (de) | 2009-09-15 |
CA2377164C (en) | 2007-09-25 |
KR100758367B1 (ko) | 2007-09-14 |
JP3872809B2 (ja) | 2007-01-24 |
CN1202480C (zh) | 2005-05-18 |
WO2000077965A2 (en) | 2000-12-21 |
US9081563B2 (en) | 2015-07-14 |
US20120246453A1 (en) | 2012-09-27 |
WO2000077965A3 (en) | 2001-04-05 |
DE60042824D1 (de) | 2009-10-08 |
CN1355902A (zh) | 2002-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20020022068A (ko) | 향상된 마이크로프로세서에서의 스케줄링을 향상시키는방법 및 장치 | |
JP3753743B2 (ja) | 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置 | |
US7716452B1 (en) | Translated memory protection apparatus for an advanced microprocessor | |
JP3615770B2 (ja) | アドレスされた構成部分の思索の失敗を検出するメモリ・コントローラ | |
US6011908A (en) | Gated store buffer for an advanced microprocessor | |
JP3776132B2 (ja) | マイクロプロセッサの改良 | |
KR100368166B1 (ko) | 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법 | |
US10877833B2 (en) | Vector atomic memory update instruction | |
JP3621116B2 (ja) | 先進のプロセッサのための変換メモリ保護装置 | |
KR20010029545A (ko) | 타겟 프로세서의 상태를 일시적으로 보유하기 위한 장치를구비하는 호스트 마이크로프로세서 | |
US7496734B1 (en) | System and method for handling register dependency in a stack-based pipelined processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120830 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130830 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140828 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170629 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20190624 Year of fee payment: 13 |