KR100864891B1 - 다중 명령 세트 시스템에서의 미처리된 연산 처리 - Google Patents
다중 명령 세트 시스템에서의 미처리된 연산 처리 Download PDFInfo
- Publication number
- KR100864891B1 KR100864891B1 KR1020037015480A KR20037015480A KR100864891B1 KR 100864891 B1 KR100864891 B1 KR 100864891B1 KR 1020037015480 A KR1020037015480 A KR 1020037015480A KR 20037015480 A KR20037015480 A KR 20037015480A KR 100864891 B1 KR100864891 B1 KR 100864891B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- unprocessed
- floating point
- instructions
- instruction set
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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, 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/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
Abstract
Description
Ludwig ClaBen Ulrich Wiesner: Wissensspeicher 80286-Programmierung, 1990, VEB Verlag Technik, Berlin, ISBN 3-341-00867-5에는, 선택적인 수치 코프로세서를 갖는 시스템이 개시되어 있다. 콘피규레이션 플래그는, 수치 코프로세서가 존재하지 않는지를 나타낸다. 그 수치 코프로세서가 존재하지 않는 경우, 수치 코프로세서 명령은 에뮬레이션된다.
상기 제 1 명령 세트의 상기 명령의 상기 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하도록 동작하는 상기 1개 이상의 추가 명령 세트의 예외 처리 메카니즘(236)을 구비한 것을 특징으로 하는 데이터 처리장치를 제공한다.
상기 1개 이상의 추가 명령 세트의 예외 처리 메카니즘을 사용하여 상기 제 1 명령 세트의 상기 명령의 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하는 단계를 포함하는 것을 특징으로 데이터 처리방법을 제공한다.
상기 제 1 명령 세트의 상기 명령의 상기 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하도록 동작하는 상기 1개 이상의 추가 명령 세트의 예외 처리 논리(236)를 포함하는 것을 특징으로 컴퓨터 프로그램 제품을 제공한다.
Claims (60)
- 제 1 명령 세트와 1개 이상의 추가 명령 세트로부터의 프로그램 명령의 제어하에서 데이터를 처리하는 장치에 있어서,상기 제 1 명령 세트의 프로그램 명령의 실행시에 일어나는 미처리된 연산을 검출하도록 동작하는 미처리 연산 검출기(238)와,상기 미처리된 연산을 검출하였을 때, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트의 1개 이상의 명령을 사용하여 상기 제 1 명령 세트의 명령의 에뮬레이션을 기동하도록 동작하는 미처리 연산 처리기(250)와,상기 제 1 명령 세트의 명령의 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하도록 동작하는 상기 1개 이상의 추가 명령 세트의 예외 처리 메카니즘(236)을 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 1항에 있어서,상기 미처리 연산 검출기는 명령어의 미처리된 페치를 검출하도록 동작하는 페치 중단 검출기인 것을 특징으로 하는 데이터 처리장치.
- 제 1항에 있어서,상기 미처리 연산 검출기는 미처리된 부동소수점 연산을 검출하도록 동작하는 미처리 부동소수점 연산 검출기인 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트는 고정 길이 명령 세트인 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 모두는 고정 길이 명령 세트인 것을 특징으로 하는 데이터 처리장치.
- 제 4항에 있어서,실행되는 프로그램 명령을 포함하는 고정 길이 명령어를 페치하도록 동작하는 명령 페처를 구비하고, 상기 가변 길이 명령 세트로부터의 적어도 일부의 프로그램 명령은 1개 이상의 명령어에 걸쳐있는 것을 특징으로 하는 데이터 처리장치.
- 제 6항에 있어서,상기 미처리 연산 검출기는, 가변 길이 명령의 일부를 포함하는 두 번째 또는 다음의 명령어에 해당하는 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하도록 동작하는 페치 중단 검출기인 것을 특징으로 하는 데이터 처리장치.
- 제 6항에 있어서,상기 미처리 연산 검출기는, 상기 가변 길이 명령이 메모리 페이지 경계를 교차하는 것으로 판정된 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하도록 동작하는 페치 중단 검출기인 것을 특징으로 하는 데이터 처리장치.
- 제 6항에 있어서,상기 미처리 연산 검출기는, 상기 가변 길이 명령이 메모리 페이지 경계의 종료 위치의 일정한 수의 바이트 내에서 시작하는 것으로 판정되고, 상기 일정한 수의 바이트가 제 1 명령 세트로부터의 프로그램 명령의 제어하에서 상기 데이터 처리장치에 의해 처리된 가장 길이가 긴 가변 길이 명령보다 작은 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하도록 동작하는 페치 중단 검출기인 것을 특징으로 하는 데이터 처리장치.
- 제 3항에 있어서,복수의 부동소수점 연산이 상기 제 1 명령 세트의 단일 명령의 실행중에 실행될 수 있으며, 상기 복수의 부동소수점 연산 중 일부가 미처리된 부동소수점 연산을 잠재적으로 발생시키고, 상기 미처리 연산 검출기는 상기 복수의 부동소수점 연산 중 일부에 의해 발생되는 미처리된 부동소수점 연산을 검출하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 3항 또는 제 10항에 있어서,상기 미처리 연산 검출기는, 미처리된 부동소수점 연산을 일으키는 상기 제 1 명령 세트의 명령의 실행시에 미처리된 부동소수점 연산을 즉시 검출하지 않고, 그 대신에 상기 제 1 명령 세트의 후속 명령의 실행시에 미처리된 부동소수점 연산을 검출하며, 상기 미처리 연산 검출기는 상기 후속 명령을 중단하고 1개 이상의 고정 길이 명령을 사용하여 상기 후속 명령의 에뮬레이션을 기동하도록 동작하는 것을 특징으로 하는 데이터 처리장치.
- 제 11항에 있어서,상기 후속 명령이 부동소수점 연산을 일으킬 때, 상기 미처리 연산 검출기가 미처리된 부동소수점 연산만을 검출하는 것을 특징으로 하는 데이터 처리장치.
- 제 11항에 있어서,상기 미처리 연산 처리기가 미처리된 부동소수점 연산이 발생한 것을 판정할 수 있도록 하는 발생 지시자를 더 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 11항에 있어서,미처리된 부동소수점 연산을 일으킨 부동소수점 연산의 판정을 가능하게 하는 연산 지시자를 더 구비한 것을 특징으로 하는 데이터 처리장치.
- 제 11항에 있어서,상기 미처리 연산 처리기는, 상기 제 1 명령 세트의 상기 명령을 에뮬레이션하기 전에, 상기 미처리된 연산을 처리하기 위해 기존 메카니즘을 사용하는 것을 특징으로 하는 데이터 처리장치.
- 제 15항에 있어서,상기 미처리 연산 처리기는 고정 길이의 부동소수점 명령을 실행하고, 상기 고정 길이의 부동소수점 명령의 실행은 상기 미처리된 연산을 처리하기 위해 기존의 메카니즘을 사용하는 효과를 가지는 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항, 제 3항 또는 제 10항 중 어느 한 항에 있어서,상기 1개 이상의 추가 명령 세트는 상기 프로그램 명령을 실행하는 프로세서 코어의 네이티브 명령 세트인 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항, 제 3항 또는 제 10항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 해석된 명령 세트인 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항, 제 3항 또는 제 10항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 자바 바이트코드 명령을 포함하는 것을 특징으로 하는 데이터 처리장치.
- 제 1항, 제 2항, 제 3항 또는 제 10항 중 어느 한 항에 있어서,상기 미처리된 연산 후에 실행을 재시작하는 재시작 논리를 더 구비하고,상기 데이터 처리장치는 상기 복수의 명령 세트 중 1개의 명령 세트의 명령에 대응하는 1개 이상의 번역기 출력신호의 세트의 시퀀스를 발생하여, 상기 복수의 명령 세트의 적어도 1개의 명령을 표시하도록 동작하고, 각각의 시퀀스는 상기 시퀀스 내부의 최종 연산이 실행될 때까지 입력 변수들에 어떤 변화도 행해지지 않도록 하는 시퀀스이며,미처리된 연산의 발생후에, 상기 복수의 명령 세트의 적어도 1개의 명령을 표시하는 연산의 시퀀스를 실행하는 동안,(i) 상기 시퀀스의 최종 연산의 실행을 개시하기 전에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스의 첫 번째 연산에서 실행을 재시작하고,(ii) 상기 시퀀스의 최종 연산의 실행을 개시한 후에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스에 뒤따르는 다음 명령에서 실행을 재시작 하는 것을 특징으로 하는 데이터 처리장치.
- 제 1 명령 세트와 1개 이상의 추가 명령 세트로부터의 프로그램 명령의 제어하에서 데이터를 처리하는 방법에 있어서,상기 제 1 명령 세트의 프로그램 명령의 실행시에 일어나는 미처리된 연산을 검출하는 단계(238)와,상기 미처리된 연산을 검출하였을 때, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트의 1개 이상의 명령을 사용하여 상기 제 1 명령 세트의 상기 명령의 에뮬레이션을 기동하는 단계(250)와,상기 1개 이상의 추가 명령 세트의 예외 처리 메카니즘을 사용하여 상기 제 1 명령 세트의 상기 명령의 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하는 단계를 포함하는 것을 특징으로 데이터 처리방법.
- 제 21항에 있어서,상기 검출단계는 명령어의 미처리된 페치를 검출하는 것을 특징으로 하는 데이터 처리방법.
- 제 21항에 있어서,상기 검출단계는 미처리된 부동소수점 연산을 검출하는 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항 또는 제 23항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트는 고정 길이 명령 세트인 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항 또는 제 23항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 모두는 고정 길이 명령 세트인 것을 특징으로 하는 데이터 처리방법.
- 제 24항에 있어서,실행되는 프로그램 명령을 포함하는 고정 길이 명령어를 페치하는 단계를 구비하고, 상기 가변 길이 명령 세트로부터의 적어도 일부의 프로그램 명령은 1개 이상의 명령어에 걸쳐있는 것을 특징으로 하는 데이터 처리방법.
- 제 26항에 있어서,가변 길이 명령의 일부를 포함하는 두 번째 또는 다음의 명령어에 해당하는 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 데이터 처리방법.
- 제 26항에 있어서,상기 가변 길이 명령이 메모리 페이지 경계를 교차하는 것으로 판정된 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 데이터 처리방법.
- 제 26항에 있어서,상기 가변 길이 명령이 메모리 페이지 경계의 종료 위치의 일정한 수의 바이트 내에서 시작하는 것으로 판정되고, 상기 일정한 수의 바이트가 처리된 가장 길이가 긴 가변 길이 명령보다 작은 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 데이터 처리방법.
- 제 23항에 있어서,복수의 부동소수점 연산이 상기 제 1 명령 세트의 단일 명령의 실행중에 실행될 수 있으며, 상기 복수의 부동소수점 연산 중 일부가 미처리된 부동소수점 연산을 잠재적으로 발생시키고, 상기 미처리 연산 검출기는 상기 복수의 부동소수점 연산 중 일부에 의해 발생되는 미처리된 부동소수점 연산을 검출하도록 동작하는 것을 특징으로 하는 데이터 처리방법.
- 제 23항 또는 제 30항에 있어서,상기 검출은, 미처리된 부동소수점 연산을 일으키는 상기 제 1 명령 세트의 명령의 실행시에 미처리된 부동소수점 연산을 즉시 검출하지 않고, 그 대신에 상기 제 1 명령 세트의 후속 명령의 실행시에 미처리된 부동소수점 연산을 검출하여, 상기 후속 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 후속 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 데이터 처리방법.
- 제 31항에 있어서,상기 후속 명령이 부동소수점 연산을 일으킬 때, 상기 검출은 미처리된 부동소수점 연산만을 검출하는 것을 특징으로 하는 데이터 처리방법.
- 제 31항에 있어서,상기 미처리 연산 처리기가 미처리된 부동소수점 연산이 발생한 것을 판정할 수 있도록 하는 발생 지시자를 더 구비한 것을 특징으로 하는 데이터 처리방법.
- 제 31항에 있어서,미처리된 부동소수점 연산을 일으킨 부동소수점 연산의 판정을 가능하도록 지시자를 설정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리방법.
- 제 31항에 있어서,상기 미처리된 연산의 처리는, 상기 제 1 명령 세트의 상기 명령을 에뮬레이션하기 전에, 상기 미처리된 연산을 처리하기 위해 기존 메카니즘을 사용하는 것을 특징으로 하는 데이터 처리방법.
- 제 35항에 있어서,상기 미처리된 연산의 처리는 고정 길이의 부동소수점 명령을 실행하고, 상기 고정 길이의 부동소수점 명령의 실행은 상기 미처리된 연산을 처리하기 위해 기존의 메카니즘을 사용하는 효과를 가지는 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항, 제 23항 또는 제 30항 중 어느 한 항에 있어서,상기 1개 이상의 추가 명령 세트는 상기 프로그램 명령을 실행하는 프로세서 코어의 네이티브 명령 세트인 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항, 제 23항 또는 제 30항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 해석된 명령 세트인 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항, 제 23항 또는 제 30항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 자바 바이트코드 명령을 포함하는 것을 특징으로 하는 데이터 처리방법.
- 제 21항, 제 22항, 제 23항 또는 제 30항 중 어느 한 항에 있어서,상기 복수의 명령 세트 중 1개의 명령 세트의 명령에 대응하는 1개 이상의 번역기 출력신호의 세트의 시퀀스를 발생하여, 상기 복수의 명령 세트의 적어도 1개의 명령을 표시하는 단계를 더 포함하고, 각각의 시퀀스는 상기 시퀀스 내부의 최종 연산이 실행될 때까지 입력 변수들에 어떤 변화도 행해지지 않도록 하는 시퀀스이며,미처리된 연산의 발생후에, 상기 복수의 명령 세트의 상기 적어도 1개의 명령을 표시하는 연산의 시퀀스를 실행하는 동안,(i) 상기 시퀀스의 최종 연산의 실행을 개시하기 전에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스의 첫 번째 연산에서 실행을 재시작하고,(ii) 상기 시퀀스의 최종 연산의 실행을 개시한 후에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스에 뒤따르는 다음 명령에서 실행을 재시작 하는 것을 특징으로 하는 데이터 처리방법.
- 데이터 처리장치를 제어하여, 제 1 명령 세트와 1개 이상의 추가 명령 세트로부터의 프로그램 명령의 제어하에서 데이터를 처리하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체에 있어서,상기 제 1 명령 세트의 명령의 실행시에 일어나는 미처리된 연산을 검출하였을 때, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트의 1개 이상의 명령을 사용하여, 상기 미처리된 연산을 일으킨 상기 명령의 에뮬레이션을 기동하도록 동작하는 미처리 연산 처리기 논리(250)와,상기 제 1 명령 세트의 상기 명령의 상기 에뮬레이션시에 일어나는 임의의 추가의 미처리 연산을 처리하도록 동작하는 상기 1개 이상의 추가 명령 세트의 예외 처리 논리(236)를 포함하는 것을 특징으로 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항에 있어서,상기 미처리된 연산은 명령어의 미처리된 페치인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항에 있어서,상기 미처리된 연산은 1개 이상의 미처리된 부동소수점 연산인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항 또는 제 43항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 중 적어도 1개의 추가 명령 세트는 고정 길이 명령 세트인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항 또는 제 43항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 가변 길이 명령 세트이고, 상기 1개 이상의 추가 명령 세트 모두는 고정 길이 명령 세트인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 44항에 있어서,실행되는 프로그램 명령을 포함하는 고정 길이 명령어가 페치되고, 상기 가변 길이 명령 세트로부터의 적어도 일부의 프로그램 명령은 1개 이상의 명령어에 걸쳐있는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 46항에 있어서,가변 길이 명령의 일부를 포함하는 두 번째 또는 다음의 명령어에 해당하는 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 46항에 있어서,상기 가변 길이 명령이 메모리 페이지 경계를 교차하는 것으로 판정된 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 46항에 있어서,상기 가변 길이 명령이 메모리 페이지 경계의 종료 위치의 일정한 수의 바이트 내에서 시작하는 것으로 판정되고, 상기 일정한 수의 바이트가 처리된 가장 길이가 긴 가변 길이 명령보다 작은 경우에 명령어의 미처리된 페치를 검출하였을 때, 상기 가변 길이 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 가변 길이 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 43항에 있어서,복수의 부동소수점 연산이 상기 제 1 명령 세트의 단일 명령의 실행중에 실행될 수 있으며, 상기 복수의 부동소수점 연산 중 일부가 미처리된 부동소수점 연산을 잠재적으로 발생시키고, 상기 미처리 연산 검출기는 상기 복수의 부동소수점 연산 중 일부에 의해 발생되는 미처리된 부동소수점 연산을 검출하도록 동작하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 43항 또는 제 50항에 있어서,미처리된 연산의 검출은, 미처리된 부동소수점 연산을 일으키는 상기 제 1 명령 세트의 명령의 실행시에 미처리된 부동소수점 연산을 즉시 검출하지 않고, 그 대신에 상기 제 1 명령 세트의 후속 명령의 실행시에 미처리된 부동소수점 연산을 검출하여, 상기 후속 명령을 중단하고, 1개 이상의 고정 길이 명령을 사용하여 상기 후속 명령의 에뮬레이션을 기동하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 51항에 있어서,상기 후속 명령이 부동소수점 연산을 일으킬 때, 미처리된 연산의 검출은 미처리된 부동소수점 연산만을 검출하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 51항에 있어서,상기 미처리 연산 처리기가 미처리된 부동소수점 연산이 발생한 것을 판정할 수 있도록 하는 발생 지시자를 더 구비한 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 51항에 있어서,미처리된 부동소수점 연산을 일으킨 부동소수점 연산의 판정을 가능하도록 가능하게 하는 연산 지지자 논리를 더 구비한 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 51항에 있어서,상기 미처리 연산 처리기 논리는, 상기 제 1 명령 세트의 상기 명령을 에뮬레이션하기 전에, 상기 미처리된 연산을 처리하기 위해 기존 메카니즘을 사용하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 55항에 있어서,상기 미처리 연산 처리기 논리는 고정 길이의 부동소수점 명령을 실행하고, 상기 고정 길이의 부동소수점 명령의 실행은 상기 미처리된 연산을 처리하기 위해 기존의 메카니즘을 사용하는 효과를 가지는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항, 제 43항 또는 제 50항 중 어느 한 항에 있어서,상기 1개 이상의 추가 명령 세트는 상기 프로그램 명령을 실행하는 프로세서 코어의 네이티브 명령 세트인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항, 제 43항 또는 제 50항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 해석된 명령 세트인 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항, 제 43항 또는 제 50항 중 어느 한 항에 있어서,상기 제 1 명령 세트는 자바 바이트코드 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
- 제 41항, 제 42항, 제 43항 또는 제 50항 중 어느 한 항에 있어서,상기 미처리된 연산후에 실행을 재시작하는 재시작 논리를 더 구비하고,상기 데이터 처리장치는 상기 복수의 명령 세트 중 1개의 명령 세트의 명령에 대응하는 1개 이상의 번역기 출력신호의 세트의 시퀀스를 발생하여, 상기 복수의 명령 세트의 적어도 1개의 명령을 표시하도록 동작하고, 각각의 시퀀스는 상기 시퀀스 내부의 최종 연산이 실행될 때까지 입력 변수들에 어떤 변화도 행해지지 않도록 하는 시퀀스이며,미처리된 연산의 발생후에, 상기 복수의 명령 세트의 상기 적어도 1개의 명령을 표시하는 연산의 시퀀스를 실행하는 동안,(i) 상기 시퀀스의 최종 연산의 실행을 개시하기 전에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스의 첫 번째 연산에서 실행을 재시작하고,(ii) 상기 시퀀스의 최종 연산의 실행을 개시한 후에 상기 미처리된 연산이 발생하면, 상기 재시작 논리가 상기 시퀀스에 뒤따르는 다음 명령에서 실행을 재시작하는 것을 특징으로 하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0113197A GB2376098B (en) | 2001-05-31 | 2001-05-31 | Unhandled operation handling in multiple instruction set systems |
GB0113197.8 | 2001-05-31 | ||
PCT/GB2002/000858 WO2002097609A2 (en) | 2001-05-31 | 2002-02-26 | Unhandled operation handling in multiple instruction set systems |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040005992A KR20040005992A (ko) | 2004-01-16 |
KR100864891B1 true KR100864891B1 (ko) | 2008-10-22 |
Family
ID=9915615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037015480A KR100864891B1 (ko) | 2001-05-31 | 2002-02-26 | 다중 명령 세트 시스템에서의 미처리된 연산 처리 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7162611B2 (ko) |
EP (1) | EP1402360B1 (ko) |
JP (1) | JP3732198B2 (ko) |
KR (1) | KR100864891B1 (ko) |
CN (1) | CN100524220C (ko) |
AU (1) | AU2002234762A1 (ko) |
DE (1) | DE60210613T2 (ko) |
GB (1) | GB2376098B (ko) |
IL (2) | IL158791A0 (ko) |
MY (1) | MY127346A (ko) |
RU (1) | RU2287178C2 (ko) |
TW (1) | TWI242159B (ko) |
WO (1) | WO2002097609A2 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4485198B2 (ja) * | 2001-09-12 | 2010-06-16 | 株式会社ルネサステクノロジ | Javaアクセラレータを備えたプロセッサシステム |
GB2402764B (en) * | 2003-06-13 | 2006-02-22 | Advanced Risc Mach Ltd | Instruction encoding within a data processing apparatus having multiple instruction sets |
CN1969009A (zh) * | 2004-06-18 | 2007-05-23 | 第一毛织株式会社 | 阻燃热塑性树脂组合物 |
US7167971B2 (en) | 2004-06-30 | 2007-01-23 | International Business Machines Corporation | System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture |
US9183011B2 (en) * | 2006-10-31 | 2015-11-10 | Oracle America Inc. | Method and system for runtime environment emulation |
CN101853148B (zh) * | 2009-05-19 | 2014-04-23 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
JP5565228B2 (ja) * | 2010-09-13 | 2014-08-06 | ソニー株式会社 | プロセッサ |
US8914615B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format |
WO2013101124A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Packed data operation mask comparison processors, methods, systems, and instructions |
US9710266B2 (en) * | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
WO2013139015A1 (en) * | 2012-03-22 | 2013-09-26 | Intel Corporation | Hybrid emulation and kernel function processing systems and methods |
JP6064993B2 (ja) * | 2012-03-30 | 2017-01-25 | 日本電気株式会社 | 演算処理装置、その演算処理方法、及び演算処理プログラム |
WO2016145498A1 (pt) * | 2015-03-13 | 2016-09-22 | Universidade Estadual De Campinas - Unicamp | Método e sistema para emulação de instruções e execução de código legado |
CN110750303B (zh) * | 2019-09-25 | 2020-10-20 | 支付宝(杭州)信息技术有限公司 | 基于fpga的流水线式指令读取方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021265A (en) | 1994-06-10 | 2000-02-01 | Arm Limited | Interoperability with multiple instruction sets |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3889243A (en) * | 1973-10-18 | 1975-06-10 | Ibm | Stack mechanism for a data processor |
US4236204A (en) * | 1978-03-13 | 1980-11-25 | Motorola, Inc. | Instruction set modifier register |
US4587632A (en) * | 1980-05-27 | 1986-05-06 | At&T Bell Laboratories | Lookahead stack oriented computer |
US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
DE3726192A1 (de) * | 1987-08-06 | 1989-02-16 | Otto Mueller | Stacksteuerung |
US5136696A (en) * | 1988-06-27 | 1992-08-04 | Prime Computer, Inc. | High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
US5455775A (en) * | 1993-01-25 | 1995-10-03 | International Business Machines Corporation | Computer design system for mapping a logical hierarchy into a physical hierarchy |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
GB2289353B (en) * | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Data processing with multiple instruction sets |
US5638525A (en) * | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5838948A (en) * | 1995-12-01 | 1998-11-17 | Eagle Design Automation, Inc. | System and method for simulation of computer systems combining hardware and software interaction |
EP0976029A2 (en) | 1996-01-24 | 2000-02-02 | Sun Microsystems, Inc. | A processor for executing instruction sets received from a network or from a local memory |
US6014723A (en) * | 1996-01-24 | 2000-01-11 | Sun Microsystems, Inc. | Processor with accelerated array access bounds checking |
US6038643A (en) | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
WO1997027536A1 (en) * | 1996-01-24 | 1997-07-31 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
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 |
US6026845A (en) * | 1996-04-24 | 2000-02-22 | Bighorn Valve, Inc. | Flow, split Venturi, axially-rotated valve |
US5905893A (en) * | 1996-06-10 | 1999-05-18 | Lsi Logic Corporation | Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set |
US6031992A (en) * | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
US5926832A (en) * | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
US6052530A (en) * | 1996-10-09 | 2000-04-18 | Hewlett-Packard Co. | Dynamic translation system and method for optimally translating computer code |
US6606743B1 (en) * | 1996-11-13 | 2003-08-12 | Razim Technology, Inc. | Real time program language accelerator |
US5953741A (en) * | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
US5937193A (en) * | 1996-11-27 | 1999-08-10 | Vlsi Technology, Inc. | Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof |
US6009499A (en) * | 1997-03-31 | 1999-12-28 | Sun Microsystems, Inc | Pipelined stack caching circuit |
US5875336A (en) * | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system |
US6088786A (en) * | 1997-06-27 | 2000-07-11 | Sun Microsystems, Inc. | Method and system for coupling a stack based processor to register based functional unit |
US5892966A (en) * | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
US6003126A (en) * | 1997-07-01 | 1999-12-14 | International Business Machines | Special instruction register including allocation field utilized for temporary designation of physical registers as general registers |
US6317872B1 (en) * | 1997-07-11 | 2001-11-13 | Rockwell Collins, Inc. | Real time processor optimized for executing JAVA programs |
WO1999018484A2 (en) * | 1997-10-02 | 1999-04-15 | Koninklijke Philips Electronics N.V. | A processing device for executing virtual machine instructions |
KR100623403B1 (ko) | 1997-10-02 | 2006-09-13 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 가상 머신 명령을 처리하기 위한 데이터 처리 장치 |
US6009509A (en) * | 1997-10-08 | 1999-12-28 | International Business Machines Corporation | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack |
US6122638A (en) * | 1997-11-26 | 2000-09-19 | International Business Machines Corporation | Object-oriented processor and method for caching intermediate data in an object-oriented processor |
US6070173A (en) * | 1997-11-26 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for assisting garbage collection process within a java virtual machine |
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 |
US6148391A (en) * | 1998-03-26 | 2000-11-14 | Sun Microsystems, Inc. | System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses |
US6374286B1 (en) * | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6480952B2 (en) * | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6163764A (en) * | 1998-10-12 | 2000-12-19 | Intel Corporation | Emulation of an instruction set on an instruction set architecture transition |
US6332215B1 (en) | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US6338134B1 (en) * | 1998-12-29 | 2002-01-08 | International Business Machines Corporation | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data |
US7275246B1 (en) * | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US6297434B1 (en) * | 1999-08-11 | 2001-10-02 | Jose Mario Martello | Wedge adjustable bridge for stringed instruments |
US6718539B1 (en) * | 2000-12-22 | 2004-04-06 | Lsi Logic Corporation | Interrupt handling mechanism in translator from one instruction set to another |
-
2001
- 2001-05-31 GB GB0113197A patent/GB2376098B/en not_active Expired - Lifetime
-
2002
- 2002-02-26 RU RU2003137828/09A patent/RU2287178C2/ru not_active IP Right Cessation
- 2002-02-26 KR KR1020037015480A patent/KR100864891B1/ko active IP Right Grant
- 2002-02-26 AU AU2002234762A patent/AU2002234762A1/en not_active Abandoned
- 2002-02-26 WO PCT/GB2002/000858 patent/WO2002097609A2/en active IP Right Grant
- 2002-02-26 JP JP2003500725A patent/JP3732198B2/ja not_active Expired - Lifetime
- 2002-02-26 DE DE60210613T patent/DE60210613T2/de not_active Expired - Lifetime
- 2002-02-26 IL IL15879102A patent/IL158791A0/xx unknown
- 2002-02-26 CN CNB02811101XA patent/CN100524220C/zh not_active Expired - Lifetime
- 2002-02-26 EP EP02701432A patent/EP1402360B1/en not_active Expired - Lifetime
- 2002-03-12 MY MYPI20020883A patent/MY127346A/en unknown
- 2002-05-02 US US10/136,346 patent/US7162611B2/en active Active
- 2002-05-13 TW TW091109945A patent/TWI242159B/zh not_active IP Right Cessation
-
2003
- 2003-11-06 IL IL158791A patent/IL158791A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021265A (en) | 1994-06-10 | 2000-02-01 | Arm Limited | Interoperability with multiple instruction sets |
Also Published As
Publication number | Publication date |
---|---|
DE60210613D1 (de) | 2006-05-24 |
AU2002234762A1 (en) | 2002-12-09 |
EP1402360B1 (en) | 2006-04-12 |
RU2003137828A (ru) | 2005-05-27 |
WO2002097609A2 (en) | 2002-12-05 |
DE60210613T2 (de) | 2007-02-08 |
US7162611B2 (en) | 2007-01-09 |
CN100524220C (zh) | 2009-08-05 |
US20020188826A1 (en) | 2002-12-12 |
GB2376098B (en) | 2004-11-24 |
IL158791A (en) | 2008-07-08 |
CN1522404A (zh) | 2004-08-18 |
MY127346A (en) | 2006-11-30 |
EP1402360A2 (en) | 2004-03-31 |
IL158791A0 (en) | 2004-05-12 |
TWI242159B (en) | 2005-10-21 |
JP2004538556A (ja) | 2004-12-24 |
GB2376098A (en) | 2002-12-04 |
JP3732198B2 (ja) | 2006-01-05 |
RU2287178C2 (ru) | 2006-11-10 |
WO2002097609A3 (en) | 2003-12-31 |
KR20040005992A (ko) | 2004-01-16 |
GB0113197D0 (en) | 2001-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100816781B1 (ko) | 다중 명령어 세트를 사용한 데이터 처리 | |
US5944841A (en) | Microprocessor with built-in instruction tracing capability | |
JP3615770B2 (ja) | アドレスされた構成部分の思索の失敗を検出するメモリ・コントローラ | |
JP2610104B2 (ja) | 命令オペレーション・コードの検査装置及び方法 | |
US7089539B2 (en) | Program instruction interpretation | |
JP2001507151A (ja) | 先進のマイクロプロセッサのためのゲート格納バッファ | |
JP2001504957A (ja) | 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置 | |
KR100864891B1 (ko) | 다중 명령 세트 시스템에서의 미처리된 연산 처리 | |
JP3776132B2 (ja) | マイクロプロセッサの改良 | |
US20240061682A1 (en) | Load chunk instruction and store chunk instruction | |
US6907515B2 (en) | Configuration control within data processing systems | |
JP3621116B2 (ja) | 先進のプロセッサのための変換メモリ保護装置 | |
US20070156386A1 (en) | Linearization of page based memory for increased performance in a software emulated central processing unit | |
JP3654913B2 (ja) | 一時的にターゲット・プロセッサの状態を保持する装置を備えたホスト・マイクロプロセッサ | |
JP3652956B2 (ja) | エミュレーション装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120924 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130926 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140923 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150918 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160921 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170919 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180918 Year of fee payment: 11 |