KR100284788B1 - 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템 - Google Patents
데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템 Download PDFInfo
- Publication number
- KR100284788B1 KR100284788B1 KR1019980032563A KR19980032563A KR100284788B1 KR 100284788 B1 KR100284788 B1 KR 100284788B1 KR 1019980032563 A KR1019980032563 A KR 1019980032563A KR 19980032563 A KR19980032563 A KR 19980032563A KR 100284788 B1 KR100284788 B1 KR 100284788B1
- Authority
- KR
- South Korea
- Prior art keywords
- customer
- instruction
- instructions
- entry
- condition
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000001514 detection method Methods 0.000 claims abstract description 4
- 230000001419 dependent effect Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 22
- 230000008569 process Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 3
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 2
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 2
- 101000854862 Homo sapiens Vacuolar protein sorting-associated protein 35 Proteins 0.000 description 2
- 108700012361 REG2 Proteins 0.000 description 2
- 101150108637 REG2 gene Proteins 0.000 description 2
- 108091058543 REG3 Proteins 0.000 description 2
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 2
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 2
- 102100027336 Regenerating islet-derived protein 3-alpha Human genes 0.000 description 2
- 102100020822 Vacuolar protein sorting-associated protein 35 Human genes 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004377 microelectronic Methods 0.000 description 2
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000008685 targeting 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/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
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
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)
Abstract
Description
Claims (6)
- 원시 명령 세트(native instruction set)를 가지며 고객 명령 세트(guest instruction set) 내의 고객 명령들을 에뮬레이트하는(emulate) 프로세서의 동작 방법에 있어서,① 적어도 하나의 고객 브랜치 명령(guest branch instruction)과 기타 다른 고객 명령을 포함하는 일련의 고객 명령을 메모리 내에 저장하는 단계,② 상기 일련의 고객 명령을 에뮬레이트하는데 이용될 수 있는, 상기 원시 명령 세트 내의 원시 명령들의 하나 또는 그 이상의 의미 루틴(semantic routines)을 메모리 내에 저장하는 단계,③ 상기 일련의 고객 명령 내의 상기 기타 다른 고객 명령 각각에 대해서, 상기 하나 또는 그 이상의 의미 루틴 중 적어도 어느 한 루틴의 메모리 내의 로케이션(location)의 표시와 관련 고객 명령에 의해 세트 또는 리세트될 수 있는 조건을 표시하는 조건 필드를 포함하는 엔트리를 상기 기타 다른 고객 명령들의 수신 순서에 따라서 다중-엔트리 큐(multiple-entry queue) 내에 저장하는 단계,④ 상기 다중-엔트리 큐 내의 엔트리들에 응답하여, 상기 엔트리들을 이용하여 상기 프로세서에서 상기 일련의 고객 명령을 에뮬레이트하여 상기 하나 또는 그 이상의 의미 루틴 중 선택된 루틴들을 액세스하여 실행시키는 단계, 및⑤ 상기 일련의 고객 명령 내의 조건 고객 브랜치 명령의 검출에 응답하여, 상기 일련의 고객 명령 내의 상기 조건 고객 브랜치 명령에 선행하는 고객 명령에 관련된 상기 다중-엔트리 큐 내의 엔트리가 상기 조건 브랜치 명령이 의존하는 조건의 표시를 포함하는 조건 필드를 갖고 있는지 여부를 판단하고, 판단 결과가 긍정이면, 상기 표시를 이용하여 상기 조건 고객 브랜치 명령을 분석하는(resolve) 단계를 포함하는 프로세서 동작 방법.
- 원시 명령 세트를 가지며, 고객 명령 세트 내의 고객 명령들을 에뮬레이트하는 프로세서에 있어서,① 상기 고객 명령 세트 내의 일련의 고객 명령과 다수의 의미 루틴 ― 상기 의미 루틴 각각은 고객 명령을 에뮬레이트하는데 이용될 수 있는 상기 원시 명령 세트 내의 일련의 원시 명령이고, 상기 일련의 고객 명령은 조건 고객 브랜치 명령과 기타의 다른 고객 명령을 포함함 ―을 저장하기 위한 메모리,② 상기 일련의 고객 명령 내의 상기 기타의 다른 고객 명령에 대해서, 상기 다수의 의미 루틴 중 적어도 어느 한 루틴의 메모리 내의 로케이션의 표시와 관련 고객 명령에 의해 세트 또는 리세트될 수 있는 조건을 표시하는 조건 필드를 포함하는 엔트리를 상기 기타 다른 고객 명령들의 수신 순서에 따라서 저장하기 위한 다중-엔트리 큐, 및③ 상기 다중-엔트리 큐 내의 상기 엔트리들로 표시된 의미 루틴들에서 원시 명령들을 실행하여 상기 일련의 고객 명령이 에뮬레이트되게 하기 위한 실행 유니트,④ 상기 일련의 고객 명령 내의 조건 고객 브랜치 명령을 검출하는 고객 명령 디코더, 및⑤ 고객 브랜치 유니트를 포함하며,조건 고객 브랜치 명령의 검출에 응답하여, 상기 고객 브랜치 유니트가 상기 일련의 고객 명령 내의 상기 조건 고객 브랜치 명령에 선행하는 명령에 관련된 상기 다중-엔트리 큐 내의 엔트리가 상기 조건 브랜치 명령이 의존하는 조건의 표시를 포함하는 조건 필드를 갖고 있는지 여부를 판단하고, 판단 결과가 긍정이면, 상기 표시를 이용하여 상기 조건 고객 브랜치 명령을 분석하는프로세서.
- 제2항에 있어서,상기 조건 필드는 다수의 조건을 표시하고,상기 다중-엔트리 큐 내의 엔트리 각각은 상기 조건 필드 내의 상기 다수의 조건 중에서 어느 조건이 상기 엔트리에 관련된 고객 명령에 의해 세트된 것인지를 나타내는 마스크(mask)를 더 포함하는프로세서.
- 제3항에 있어서, 상기 다중-엔트리 큐의 엔트리 각각은 상기 엔트리에 관련된 고객 명령을 에뮬레이트하는데 이용된 의미 루틴이 상기 엔트리의 상기 마스크로 표시된 모든 조건이 상기 엔트리의 상기 조건 필드 내에 세트되는 시점까지 실행을 완료하였음을 표시하도록 세트된 조건 필드 유효(valid) 비트를 포함하는 프로세서.
- 제4항에 있어서, 상기 다중-엔트리 큐의 각각의 엔트리는 조건 필드 유효 비트를 더 포함하고, 상기 고객 브랜치 유니트는 상기 일련의 고객 명령 내의 상기 조건 고객 브랜치 명령에 선행하는 고객 명령에 관련된 상기 다중-엔트리 큐 내의 엔트리가 상기 고객 명령은 상기 조건 고객 브랜치 명령이 의존하는 조건을 세트할 것이고 상기 엔트리의 상기 조건 필드 유효 비트는 세트되지 않음을 표시하는 마스크를 갖고 있는 동안에 상기 조건 고객 브랜치 명령의 처리에 응답하여 상기 조건 고객 브랜치 명령의 분석을 예측하기 위한 수단을 더 포함하는 프로세서.
- 제2항에 있어서,상기 다중-엔트리 큐 내의 엔트리의 조건 필드 내의 조건을 세트하는 고객 명령 각각의 에뮬레이션 완료에 응답하여 갱신되는 에뮬레이션 조건 레지스터를 더 포함하고,상기 고객 브랜치 유니트는 상기 조건 고객 브랜치 명령이 상기 다중-엔트리 큐 내의 상기 엔트리들 중 임의의 엔트리를 참조로 분석될 수 없다는 판단에 응답하여 상기 에뮬레이션 조건 레지스터를 참조로 상기 조건 고객 브랜치 명령을 분석하기 위한 수단을 포함하는프로세서.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/934,857 | 1997-09-22 | ||
US08/934,857 US5956495A (en) | 1997-09-22 | 1997-09-22 | Method and system for processing branch instructions during emulation in a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990029288A KR19990029288A (ko) | 1999-04-26 |
KR100284788B1 true KR100284788B1 (ko) | 2001-03-15 |
Family
ID=25466189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980032563A KR100284788B1 (ko) | 1997-09-22 | 1998-08-11 | 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5956495A (ko) |
KR (1) | KR100284788B1 (ko) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6033814A (en) * | 1998-02-26 | 2000-03-07 | Micron Technology, Inc. | Method for multiple process parameter matching |
US6243107B1 (en) * | 1998-08-10 | 2001-06-05 | 3D Labs Inc., Ltd. | Optimization of a graphics processor system when rendering images |
US6256784B1 (en) * | 1998-08-14 | 2001-07-03 | Ati International Srl | Interpreter with reduced memory access and improved jump-through-register handling |
US6446034B1 (en) * | 1998-12-16 | 2002-09-03 | Bull Hn Information Systems Inc. | Processor emulation virtual memory address translation |
US6567883B1 (en) * | 1999-08-27 | 2003-05-20 | Intel Corporation | Method and apparatus for command translation and enforcement of ordering of commands |
US6990658B1 (en) * | 1999-10-13 | 2006-01-24 | Transmeta Corporation | Method for translating instructions in a speculative microprocessor featuring committing state |
US6591378B1 (en) * | 2000-02-22 | 2003-07-08 | Motorola, Inc. | Debug controller in a data processor and method therefor |
US7334115B1 (en) * | 2000-06-30 | 2008-02-19 | Intel Corporation | Detection, recovery and prevention of bogus branches |
GB0202728D0 (en) * | 2002-02-06 | 2002-03-27 | Transitive Technologies Ltd | Condition code flag emulation for program code conversion |
US7331040B2 (en) * | 2002-02-06 | 2008-02-12 | Transitive Limted | Condition code flag emulation for program code conversion |
KR100959133B1 (ko) * | 2003-07-01 | 2010-05-26 | 삼성전자주식회사 | 핫 루틴 메모리를 갖는 마이크로프로세서 시스템 및구현방법 |
US7809547B2 (en) * | 2005-12-29 | 2010-10-05 | Guenthner Russell W | Host computer system emulating target system legacy software and providing for incorporating more powerful application program elements into the flow of the legacy software |
US8949106B2 (en) * | 2009-09-18 | 2015-02-03 | International Business Machines Corporation | Just in time compiler in spatially aware emulation of a guest computer instruction set |
US9158566B2 (en) | 2009-09-18 | 2015-10-13 | International Business Machines Corporation | Page mapped spatially aware emulation of computer instruction set |
US8301434B2 (en) | 2009-09-18 | 2012-10-30 | International Buisness Machines Corporation | Host cell spatially aware emulation of a guest wild branch |
US8617049B2 (en) * | 2009-09-18 | 2013-12-31 | Ethicon Endo-Surgery, Inc. | Symmetrical drive system for an implantable restriction device |
US8447583B2 (en) * | 2009-09-18 | 2013-05-21 | International Business Machines Corporation | Self initialized host cell spatially aware emulation of a computer instruction set |
US8428930B2 (en) * | 2009-09-18 | 2013-04-23 | International Business Machines Corporation | Page mapped spatially aware emulation of a computer instruction set |
WO2012103209A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor |
WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
WO2012103367A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
WO2012103373A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
WO2012103245A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines Inc. | Guest instruction block with near branching and far branching sequence construction to native instruction block |
WO2012103253A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Multilevel conversion table cache for translating guest instructions to native instructions |
US9063760B2 (en) * | 2011-10-13 | 2015-06-23 | International Business Machines Corporation | Employing native routines instead of emulated routines in an application being emulated |
US20130132061A1 (en) * | 2011-11-18 | 2013-05-23 | Michael J. Rieschl | Just-in-time static translation system for emulated computing environments |
WO2014151652A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines Inc | Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor |
CN105122206B (zh) | 2013-03-15 | 2018-11-09 | 英特尔公司 | 用于支持推测的访客返回地址栈仿真的方法和装置 |
US11231931B1 (en) * | 2018-12-20 | 2022-01-25 | Advanced Micro Devices, Inc. | Mechanism for mitigating information leak via cache side channels during speculative execution |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4679141A (en) * | 1985-04-29 | 1987-07-07 | International Business Machines Corporation | Pageable branch history table |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5226164A (en) * | 1991-04-24 | 1993-07-06 | International Business Machines Corporation | Millicode register management and pipeline reset |
EP0619898A4 (en) * | 1992-01-02 | 1995-05-03 | Amdahl Corp | COMPUTER SYSTEM WITH TWO GAS SHIFTS. |
AU6629894A (en) * | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5634119A (en) * | 1995-01-06 | 1997-05-27 | International Business Machines Corporation | Computer processing unit employing a separate millicode branch history table |
US5790825A (en) * | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US5742802A (en) * | 1996-02-16 | 1998-04-21 | International Business Machines Corporation | Method and system for efficiently mapping guest instruction in an emulation assist unit |
-
1997
- 1997-09-22 US US08/934,857 patent/US5956495A/en not_active Expired - Lifetime
-
1998
- 1998-08-11 KR KR1019980032563A patent/KR100284788B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5956495A (en) | 1999-09-21 |
KR19990029288A (ko) | 1999-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100284788B1 (ko) | 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템 | |
US5870575A (en) | Indirect unconditional branches in data processing system emulation mode | |
KR100317770B1 (ko) | 데이터처리시스템의에뮬레이션모드를위한어드레스변환버퍼 | |
KR100341533B1 (ko) | 데이타처리시스템의에뮬레이션동안의인터럽트처리방법및시스템 | |
US5752014A (en) | Automatic selection of branch prediction methodology for subsequent branch instruction based on outcome of previous branch prediction | |
US6122638A (en) | Object-oriented processor and method for caching intermediate data in an object-oriented processor | |
JP3628379B2 (ja) | 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置 | |
US5838988A (en) | Computer product for precise architectural update in an out-of-order processor | |
US5136696A (en) | High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions | |
US5764938A (en) | Resynchronization of a superscalar processor | |
US6009512A (en) | Mechanism for forwarding operands based on predicated instructions | |
US5958047A (en) | Method for precise architectural update in an out-of-order processor | |
US5987600A (en) | Exception handling in a processor that performs speculative out-of-order instruction execution | |
US5812823A (en) | Method and system for performing an emulation context save and restore that is transparent to the operating system | |
KR980010787A (ko) | 인스트럭션 루프를 사변적으로 실행하는 프로세서및 그 방법 | |
IE940337A1 (en) | Processor ordering consistency for a processor performing¹out-of-order instruction execution | |
US10310859B2 (en) | System and method of speculative parallel execution of cache line unaligned load instructions | |
JPH09185506A (ja) | プロセッサ内で命令を実行する方法およびシステム | |
US5898864A (en) | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors | |
US6085305A (en) | Apparatus for precise architectural update in an out-of-order processor | |
Christie | Developing the AMD-K5 architecture | |
US5764970A (en) | Method and apparatus for supporting speculative branch and link/branch on count instructions | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
US5841999A (en) | Information handling system having a register remap structure using a content addressable table | |
US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121127 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20141128 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20151127 Year of fee payment: 16 |
|
FPAY | Annual fee payment |
Payment date: 20161128 Year of fee payment: 17 |
|
FPAY | Annual fee payment |
Payment date: 20171128 Year of fee payment: 18 |
|
EXPY | Expiration of term |