KR20130101060A - 다중 명령 세트로부터의 명령 디코딩 - Google Patents

다중 명령 세트로부터의 명령 디코딩 Download PDF

Info

Publication number
KR20130101060A
KR20130101060A KR1020137009938A KR20137009938A KR20130101060A KR 20130101060 A KR20130101060 A KR 20130101060A KR 1020137009938 A KR1020137009938 A KR 1020137009938A KR 20137009938 A KR20137009938 A KR 20137009938A KR 20130101060 A KR20130101060 A KR 20130101060A
Authority
KR
South Korea
Prior art keywords
instruction
instructions
instruction set
additional
decoding
Prior art date
Application number
KR1020137009938A
Other languages
English (en)
Other versions
KR101799764B1 (ko
Inventor
시몬 존 크라스케
Original Assignee
에이알엠 리미티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20130101060A publication Critical patent/KR20130101060A/ko
Application granted granted Critical
Publication of KR101799764B1 publication Critical patent/KR101799764B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements

Abstract

서로 다른 명령 세트들로부터의 명령들을 디코드할 수 있는 데이터 처리장치, 방법 및 컴퓨터 프로그램이 기술된다. 이 방법은, 명령을 수신하는 단계와, 상기 명령의 연산 코드가 기본 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 기본 명령 세트에 대한 디코드 규칙들에 따라 상기 명령을 디코드하는 단계와, 상기 명령의 상기 연산 코드가 적어도 1개의 추가 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 적어도 1개의 추가 명령 세트의 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라 상기 명령을 디코드하는 단계를 포함한다.

Description

다중 명령 세트로부터의 명령 디코딩{DECODING INSTRUCTIONS FROM MULTIPLE INSTRUCTION SETS}
본 발명은, 데이터 처리 분야에 관한 것으로, 특히 다양한 명령 세트들로부터의 명령들을 디코드하는 것에 관한 것이다.
다양한 명령 세트들로부터의 명령들을 이용할 수 있는 프로세서들이 공지되어 있다. 예를 들어, 영국 캠브리지의 ARM
Figure pct00001
은 ARM 명령 세트와 썸(thumb) 명령 세트를 사용하는 프로세서들을 갖고 있는데, 이때 썸 명령은 16비트 폭을 갖고 ARM 명령은 32비트 폭을 갖는다. 어떤 명령 세트가 사용되고 있는지를 디코더가 알기 위해, 명령 인코딩시에 사용중이 아닌(free) 비트를 이용하여, 명령이 ARM 명령인지 썸 명령인지 표시한다.
일부의 프로세서 아키텍처에서는, 아키텍처에 의해 명시적으로 지원된 명령들을 정의하는 인코딩들의 세트가 존재하고, 아키텍처의 사용자들이 그들 자신의 명령을 정의하는데 이용가능한 프리 인코딩(free encoding)의 세트가 존재한다. 사용자들이 그들 자신의 명령을 정의하는데 이용가능한 인코딩 공간을 제공하는 프로세서 아키텍처에서는, 특정한 명령 세트를 명시하는데 사용되는 명령 인코딩의 비트를 갖는 것이 그 자체의 문제를 야기한다.
인코딩 공간을 지나치게 증가시키지 않고 복수의 명령 세트들을 제공할 수 있으면서, 사용자들이 그들 자신의 명령을 정의할 수 있는 가능성을 허용하는 것이 바람직할 것이다.
일면에 따르면, 본 발명은, 명령들을 디코드하는 명령 디코더와, 상기 명령 디코더에 의해 디코드된 명령들에 응답하여 데이터를 처리하는 프로세서를 구비하고, 상기 명령 디코더는 복수의 다른 명령 세트들로부터의 명령들을 디코드하도록 구성되고, 상기 명령 세트들은 기본(base) 명령 세트와 적어도 1개의 추가 명령 세트를 포함하고, 상기 기본 명령 세트는 명령들을 고유하게 식별하기 위한 소정의 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 적어도 1개의 추가 명령 세트는 상기 적어도 1개의 추가 명령 세트 내부의 명령들을 식별하기 위한 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 명령 디코더는, 디코드 규칙들의 기본 세트에 따라 상기 복수의 소정의 연산 코드들 중에서 1개를 갖는 명령을 디코드하고, 상기 적어도 1개의 추가 세트의 명령들 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기(indicator) 값에 의해 결정된 디코드 규칙들의 세트에 따라, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들 중에서 1개를 갖는 명령을 디코드하도록 구성된, 데이터 처리장치를 제공한다.
본 발명은, 사용자들이 그들 자신의 명령들을 정의할 수 있는 인코딩 공간을 제공하는 것이 유리하다는 것을 인식하고 있지만, 본 발명은, 항상 디코드될 수 있는 기본 명령 세트가 존재하면 유리하다는 것도 인식하고 있다.
본 발명은, 기본 규칙들의 세트에 따라 명령 디코더가 디코드하는 기본 명령 세트와, 표시기 값에 의해 결정된 규칙들의 세트에 따라 디코더가 디코드하는 적어도 1개의 추가 명령 세트를 제공함으로써, 이들 대립되는 요구사항을 해소한다.
이에 따르면, 표시기 값의 간단한 사용에 의해, 서로 다른 규칙들에 의해 디코드된 다수의 서로 다른 명령 세트들이 제공될 수 있다. 이것은, 선택되고 표시기 값에 의해 표시된 명령 세트에 따라 서로 다른 명령들을 정의하는데 동일한 인코딩을 사용할 수 있다는 것을 의미한다. 이에 따르면, 시스템의 사용자들이 그들 자신의 명령들을 정의할 수 있으며, 이들 명령은 표시기 값이 사용을 기동하게 되는 디코딩 규칙들을 가질 수 있다.
명령들이 항상 디코드될 수 있도록 하는 기본 명령들의 세트와 표시기 비트가 적절히 설정되는 경우에 디코드될 수 있는 추가 명령들을 제공함으로써, 인코딩 공간을 지나치게 증가시키지 않으면서, 항상 정의되는 명령들을 가질 수 있다는 이점과 매우 큰 수의 추가 명령들을 가질 수 있는 가능성이 제공된다.
일부 실시예에서는, 상기 명령 디코더가 적어도 2개의 추가 명령 세트들을 디코드하도록 구성되고, 상기 적어도 2개의 추가 명령 세트는 적어도 일부의 연산 코드를 공통적으로 갖는다.
추가 명령 세트들을 위한 인코딩 공간이 공유되는 경우에, 서로 다른 명령 세트들의 명령들에 대한 연산 코드들이 서로 다른 명령들에 매핑된다는 것을 제외하고는 동일하다는 이점을 갖는다. 이것은 인코딩 공간의 효율적인 사용에 해당하며, 표시기 값을 이용함으로써 다수의 다른 명령들이 정의될 수 있다는 것을 의미한다.
일부 실시예에서, 상기 데이터 처리장치는 상기 표시기 값을 기억하는 상태 레지스터를 구비한다.
표시기 값이 다수의 장소에 기억될 수 있기는 하지만, 일부 실시예에서는 그것이 상태 레지스터에 기억된다. 이것은 표시기 값을 기억하기 위한 간편한 장소로서, 표시기 값이 용이하게 설정 및 판독될 수 있게 한다.
일부 실시예에서, 상기 명령 디코더는, 명령 세트 갱신 명령에 응답하여, 상기 상태 레지스터에 기억된 상기 표시기 값을 상기 명령에 명시된 값으로 설정하고, 상기 명령 세트 갱신 명령은 상기 기본 명령 세트로부터의 명령이다.
표시기 값은 명령 세트 갱신 명령에 의해 갱신되어도 된다. 이에 따르면, 특정한 명령 세트를 사용하기 원하는 프로그래머가 이 명령 세트를 표시하도록 표시기 값을 간단히 갱신하고, 그후, 디코더가 표시기 값에 의해 표시된 디코딩 규칙들에 따라 추가 명령 세트의 디코딩 공간 내부의 명령들을 디코드하게 된다. 새로운 명령 세트가 필요할 때에는, 명령 세트 갱신 명령을 간단히 다시 이용하여 새로 필요한 명령 세트를 표시하도록 표시기 값을 변경한다.
일부 실시예에서는, 상기 프로세서가, 프로그램 스트림을 분기해야 한다는 것을 표시하는 분기 명령에 응답하여, 복귀 어드레스와 상기 표시기 값을 기억함으로써, 상기 분기로부터의 복귀시 상기 복귀 어드레스 및 표시기 값이 복원될 수 있도록 구성된다.
프로그램이 서브루틴으로 분기하는 경우, 이 서브루틴이 다른 추가 명령 세트를 사용할지도 모르기 때문에, 잠재적인 문제가 일어날 수도 있다. 이와 같은 문제를 해소하기 위해, 분기가 종료된 후 프로그램이 복귀해야 하는 다음 명령의 어드레스를 표시하는 복귀 어드레스를 기억하는 것 이외에, 현재의 표시기 값도 기억됨으로써, 서브루틴 중에 표시기 값이 변경된 경우에, 프로그램이 서브루틴으로부터 복귀할 때 표시기 값이 그것의 초기값으로 리셋된다.
일부 실시예에서, 상기 데이터 처리장치는 상기 분기 전에 상기 표시기 값을 리셋하도록 구성된다.
분기에서 표시기 값이 변경되지 않은 채로 유지될 수도 있지만, 일부 실시예에서는 데이터 처리장치가 분기 이전에 표시기 값을 리셋하도록 구성된다. 서브루틴이 프로그램이 분기할 때 사용되고 있는 추가 명령 세트를 사용하지 않을 수도 있으며, 분기 전에 표시기 값을 리셋하는 것이 간편할지도 모른다. 그러나, 기본 명령 세트가 여전히 디코드될 수 있고, 다른 추가 명령 세트가 필요한 경우에는, 어쨌든 표시기 값이 리셋될 필요가 있으므로, 표시기 값을 그 상태로 남겨두는 것이 간편할지도 모른다.
일부 실시예에서는, 상기 복귀 어드레스 및 표시기 값이 동일한 링크 레지스터에 기억된다.
복귀 어드레스 및 표시기 값을 기억하는 한가지 방법은 이것들을 링크 레지스터에 기억하는 것이다. 본 발명의 실시예에서는, 링크 레지스터가 표시기 값 및 복귀 어드레스 모두를 기억할 수 있을 만큼 충분히 넓으므로, 이 방법은 액세스하기 용이한 위치에 이들 2가지 값을 기억하는 효율적이면서 효과적인 방법이다.
일부 실시예에서, 상기 링크 레지스터의 상위 비트들은 상기 표시기 값을 기억하고 하위 비트들은 복귀 어드레스를 기억한다.
복귀 어드레스를 기억하는데 링크 레지스터의 최상위 비트들이 필요하지 않을 수도 있으므로, 이들 최상위 비트들은 표시기 값을 기억하는데 간편하게 사용될 수 있다.
다른 실시예에서, 상기 복귀 어드레스 및 표시기 값은 상기 분기에 응답하여 스택에 기억되고, 상기 분기로부터의 복귀시 상기 스택으로부터 판독된다.
실시예가 링크 레지스터를 이용하지 않는 경우에는, 분기에 응답하여 복귀 어드레스 및 표시기 값이 스택에서 푸시 아웃되어도 된다. 이와 같은 경우에, 분기로부터의 복귀시, 이들 복귀 어드레스 및 표시기 값이 다시 스택으로부터 판독되게 된다.
일부 실시예에서, 상기 명령 디코더는, 상기 표시기가 상기 적어도 1개의 추가 명령 세트들 중 1개를 표시하는 것과, 상기 적어도 1개의 추가 명령 세트 내부에 디코드 규칙이 존재하지 않는 연산 코드를 갖는 명령의 수신에 응답하여, 예외를 발생한다.
데이터 처리장치는, 디코드 규칙을 갖지 않는 연산 코드들이 존재하는 명령 세트들을 명시하는 표시기 값을 트랙(trap)하도록 설정되어도 된다. 이와 같은 경우에, 예외가 발생되며, 그후 데이터 처리장치는 디코드 규칙이 존재하지 않는 명령에 의해 명시된 연산 코드가 존재하는 이유를 판정할 수 있다.
일부 실시예에서, 상기 명령 디코더는, 상기 명령 디코더가 디코드 규칙들을 갖지 않는 추가 명령 세트를 표시하는 값으로 상기 표시기 값이 전환되는 것을 검출한 것에 응답하여, 예외를 발생한다.
이와 달리, 또는 이에 덧붙여, 데이터 처리장치는, 명령 디코더가 디코드 규칙들을 갖지 않는 값들로 표시기 값들이 전환되는 시기를 판정하도록 설정되어도 된다. 이와 같은 경우에, 예외가 발생되고, 마찬가지로 프로세서는 이 에러가 일어난 원인을 판정한다.
일부 실시예에서는, 상기 기본 명령 세트 내부의 명령들에 대한 상기 소정의 연산 코드들이 소정의 기본 인코딩 공간 내부에 놓이고, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들이 소정의 확장 인코딩 공간 내부에 놓인다.
기본 명령 세트들에 대해 기본 인코딩 공간을 사용하고 복수의 추가 명령 세트들을 인코드하는데 사용되는 추가 인코딩 공간을 사용함으로써, 명령 세트들과 추가 명령 세트들의 사용이 간편하게 인코드될 수 있다. 이에 따르면, 특정한 명령이 어떤 명령 세트 내부에 존재하는지에 의존하여, 추가 명령 공간으로부터 얻어진 연산 코드를 이용하여 이 특정한 명령을 명시할 수 있다. 이 특정한 명령이 놓이는 명령 세트는 표시기 값에 의해 표시되고, 이 표시기 값은 디코더가 적절한 디코딩 규칙들의 세트를 사용하도록 기동하게 된다.
일부 실시예에서는, 복수의 서로 다른 표시기 값들이 상기 적어도 1개의 추가 명령 세트 중에서 1개를 식별한다.
일부 실시예에서는, 명령 세트를 식별하기 위해 한 개의 표시기 값이 존재할 수도 있지만, 다른 실시예에서는, 다수의 서로 다른 표시기 값들이 존재하여도 된다. 예를 들어, 프로세서가 네가티브(negative) 어드레스를 지원하는 경우에, 네가티브 어드레스 또는 포지티브(positive) 어드레스가 현재 지원되고 있는지에 의존하여, 2로 표시되는 명령 세트가 2 또는 -2로 표시될 수도 있다면 간편할지도 모른다.
본 발명의 제 2 면은, 서로 다른 명령 세트들로부터의 명령들을 디코드하는 방법으로서, 명령을 수신하는 단계와, 상기 명령의 연산 코드가 기본 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 기본 명령 세트에 대한 디코드 규칙들에 따라 상기 명령을 디코드하는 단계와, 상기 명령의 상기 연산 코드가 적어도 1개의 추가 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 적어도 1개의 추가 명령 세트 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라 상기 명령을 디코드하는 단계를 포함하는, 명령 디코드 방법을 제공한다.
본 발명의 제 3 면은, 데이터 처리장치 상에서 실행되는 컴퓨터 프로그램에 의해 제공된 가상머신으로서, 상기 가상머신이 본 발명의 제 1 면에 따른 데이터 처리장치에 따른 명령 실행 환경을 제공하는, 가상머신을 제공한다.
본 발명의 제 4 면은, 데이터 프로세서 상에서 실행될 때, 상태 레지스터 내부의 표시기 값을 명령 세트 갱신 명령에 의해 표시된 값으로 설정하도록 상기 데이터 프로세서를 제어하는 상기 명령 세트 갱신 명령을 포함하는 컴퓨터 프로그램 제품으로서, 상기 데이터 프로세서의 디코더가, 기본 디코딩 규칙들의 세트에 따라 기본 명령 세트로부터의 명령들을 표시하는 연산 코드들을 갖는 명령들을 디코드하고, 상기 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라 추가 명령 세트로부터의 명령들을 표시하는 연산 코드들을 갖는 명령들을 디코드하는, 컴퓨터 프로그램 제품을 제공한다.
본 발명의 제 5 국면은, 명령들을 디코드하는 명령 디코딩수단과, 상기 명령 디코딩수단에 의해 디코드된 명령들에 응답하여 데이터를 처리하는 프로세싱수단을 구비하고, 상기 명령 디코딩수단은 복수의 다른 명령 세트들로부터의 명령들을 디코드하고, 상기 명령 세트들은 기본 명령 세트와 적어도 1개의 추가 명령 세트를 포함하고, 상기 기본 명령 세트는 명령들을 고유하게 식별하기 위한 소정의 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 적어도 1개의 추가 명령 세트는 상기 적어도 1개의 추가 명령 세트 내부의 명령들을 식별하기 위한 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 명령 디코딩수단은, 디코드 규칙들의 기본 세트에 따라 상기 복수의 소정의 연산 코드들 중에서 1개를 갖는 명령을 디코드하고, 상기 적어도 1개의 추가 세트의 명령들 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들 중에서 1개를 갖는 명령을 디코드하는, 데이터 처리수단을 제공한다.
이하, 다음의 첨부도면에 도시된 실시예들을 참조하여 본 발명을 더욱 상세히 설명한다:
도 1은 본 발명의 일 실시예에 따른 데이터 처리장치를 나타낸 것이다.
도 2는 명령 디코더와, 본 발명의 일 실시예에 따라 이 명령 디코더가 이용하는 디코딩을 개략적으로 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 프로세서, 디코더 및 레지스터를 개략적으로 나타낸 것이다.
도 4는 무효한 명령 세트 표시기 값에 응답하여 예외가 어떻게 발생하는지를 개략적으로 나타낸 것이다.
도 5는 분기 명령들을 포함하는 명령 스트림을 개략적으로 나타낸 것이다.
도 6은 복귀 어드레스 및 값들이 스택으로 푸시되는 분기를 포함하는 명령 스트림의 실행을 개략적으로 나타낸 것이다.
도 7은 본 발명의 일 실시예에 따라 명령들을 디코드하는 방법의 단계들을 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 분기 명령들을 포함하는 명령들의 스트림을 디코딩 및 실행하는 것을 개략적으로 나타낸 것이다.
도 9는 본 발명의 일 실시예의 가상머신 구현을 나타낸 것이다.
도 1은 프로세서(12)를 갖는 데이터 처리장치(10)를 나타낸 것이다. 명령들을 갖는 프로그램은 데이터 저장소(20)에 기억되고, 이들 명령들이 페치부(16)에 의해 페치되어 디코더(14)로 전송된다. 디코더(14)는 명령들을 디코드하고 디코드된 명령들을 프로세서(12)에 전송하여 실행한다.
본 실시예에서는, 디코더(14)가, 디코딩 규칙들의 기본 세트에 따라 기본 명령 세트로부터의 명령들을 디코드하고, 복수의 추가 명령 세트 중에서 1개로부터의 명령들을 이들 특정한 명령 세트 특유의 디코드 규칙들에 따라 디코드하도록 구성된다. 따라서, 디코더(14)는, 레지스터 뱅크(30) 내부의 상태 레지스터(32)에 기억된 명령 세트 표시기 값 ISASEL과, 서로 다른 표시기 값들과 관련된 복수의 디코드 규칙들을 액세스한다. 표시기 값은 디코더(14)에 의해 어떤 추가 명령 세트가 현재 디코드될 것인가를 표시하며, 이 값에 응답하여, 디코더는 추가 명령 세트 인코딩 공간 내부의 명령들에 대한 적절한 디코드 규칙들을 선택하고, 이에 따라 명령들을 디코드한다.
데이터 처리장치(10)는, 추후의 도면들에 대해 설명하는 것과 같이, 프로세서가 복귀 어드레스들과 표시기 값들을 기억하는데 사용되는 스택(40)을 더 구비한다.
도 2는 본 발명의 일 실시예에 따른 디코더(14)를 개략적으로 나타낸 것이다. 명령들의 인코딩을 위한 인코딩 공간은 블록 50으로 개략적으로 나타내었다. 이 도면에는, 기본 명령 세트의 연산 코드들을 위해 사용되는 기본 인코딩 공간과, 추가 명령 세트들의 연산 코드들을 위해 사용되는 확장 인코딩 공간이 존재하는 것이 도시되어 있다. 따라서, 각각의 추가 명령 세트는 그것의 연산 코드들을 위해 전체 확장 인코딩 공간을 이용할 수 있다.
어떤 명령 세트가 현재 디코드되고 있는지의 표시가 디코더에 주어져, 확장 인코딩 공간 내부에 놓이는 명령들이 올바른 규칙들에 따라 디코드될 수 있다면 이것이 가능해진다.
이것을 도 2에 디코더 내부에 기억된 기본 디코드 규칙들(60)을 갖는 디코더(14)에 의해 개략적으로 도시하였다. 이들 디코드 규칙들은 기본 인코딩 공간 내에서 인코딩을 디코드하며, 디코더는 항상 이들 규칙들을 액세스한다.
확장 인코딩 공간 내부의 인코딩들과 관련된 다른 디코드 규칙들을 이 도면에 62, 64 및 66으로 개략적으로 나타내었다. 디코더(14)는 이들 디코드 규칙들을 멀티플렉서(72)를 통해 액세스한다. 디코더(14)에 의해 사용되는 디코드 규칙들의 세트는, 도 1의 상태 레지스터(32)에 기억된 명령 세트 식별자 또는 표시기 값(70)에 응답하여 멀티플렉서(72)에 의해 선택된다. 이와 같은 식별자는, 어떤 특정한 명령 세트가 현재 사용되고 있는지와, 이에 따라, 확장 인코딩 공간 내부에 속하는 명령에 대해 어떤 디코드 규칙들을 사용해야 하는가를 나타낸다. 이에 따르면, 다수의 다른 명령들이 비교적 작은 확장 인코딩 공간 내에서 인코드될 수 있으며, 표시기 값이 적절히 설정된다면, 이들 명령들이 디코더(14)에 의해 디코드될 수 있다. 더구나, 디코더(14)는 항상 기본 명령 세트로부터의 명령들을 디코드할 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 처리장치(10)의 일부를 개략적으로 나타낸 것이다. 이 도면에서, 명령 세트 표시기 값 ISASEL이 어떻게 상태 레지스터(70) 내부에 배치되는지와 명령 세트 갱신 명령에 응답하여 프로세서(12)가 어떻게 이 값을 설정할 수 있는지를 알 수 있다. 따라서, 명령 세트 갱신 명령에 응답하여, 이 명령으로 표시된 값이 상태 레지스터(7)에 기록된다. 그후, 이 값을 디코더(14)가 이용하여 확장 인코딩 공간 내부에 존재하는 명령들에 대한 디코딩 규칙들을 선택하며, 이때 이 값은 명령들과 관련된 추가 명령 세트를 표시한다.
레지스터 뱅크(30)는, 프로그램 스트림이 분기할 때 현재 명령 세트 표시기 값과 복귀 어드레스를 기억하는데 사용되는 분기 링크 레지스터(72)를 더 구비한다. 프로그램이 분기할 때, 원래의 프로그램 스트림으로 복귀할 수 있는 것이 필요하므로, 복귀 어드레스가 항상 기억된다. 그러나, 본 발명의 실시예들에서 디코드될 수 있는 서로 다른 명령 세트들이 존재하므로, 프로그램이 분기할 때 현재의 명령 세트 표시기 값이 기억되어, 프로그램이 원래의 스트림으로 복귀할 때, 디코더가 올바른 디코드 규칙들을 사용할 수 있도록 하는 것이 중요하다. 따라서, 복귀 명령을 기억하는 것 이외에, 명령 세트 표시기 값도 기억된다. 분리 링크 레지스터의 사이즈 및 어드레스들의 사이즈로 인해, 분기 링크 레지스터 내부에 복귀 어드레스 및 표시기 값 모두를 기억하는데 충분한 공간이 간편하게 존재한다.
이때, 본 실시예에서는 단지 1개의 분리 링크 레지스터(72)가 존재하므로, 프로그램이 다시 분기하면, 레지스터 내부의 데이터가 스택(40)에 기록된 후, 분기 당시의 다음 복귀 어드레스 및 명령 세트 표시기 값으로 분기 링크 레지스터가 오버라이트된다.
도 4는, 데이터 처리장치(10)의 일부를 나타낸 것으로, 프로세서에 의해 지원되지 않은 명령 세트 표시기 값 ISASEL이 검출되고 트랩을 발생할 수 있는 방법을 나타낸 것이다. 따라서, 본 실시예에서는, 명령 세트 갱신 명령에 응답하여, 프로세서(12)가 새로운 ISASEL 값을 레지스터(72)에 전송하여 기억된 값을 갱신한다. 이 새로운 값은 비교기(90)로 전달되어, 저장장치(80) 내부에 기억된 ISASEL 값들의 세트와 비교된다. 저장장치(80)은 모든 가능한 명령 세트 값들을 기억하고 있으므로, 일치하지 않은 경우에는 불일치 신호가 비교기(90)에 의해 전송되고, 이것이 예외를 발생한다. 일치하는 경우에는, 비교기(90)가 표시기 값을 레지스터(72)에 전송하고 ISASEL에 대한 새로운 값이 설정된다.
도 5는 분기 명령들을 포함하는 실행중인 명령들의 스트림을 개략적으로 나타낸 것이다. 따라서, 본 실시예에서는, 함수 2에 분기가 존재하고, 링크 레지스터는, 복귀 어드레스와, 이 경우에는 추가 명령 세트가 현재 지원되고 있지 않다는 것을 표시하는 0 값인 현재 명령 세트 표시기를 기억한다. 그후, 분기가 점프하는 서브루틴이 실행되고, 이 서브루틴은 이 서브루틴이 표시기 값 3에 의해 지정된 추가 명령 세트로부터의 명령들을 사용하기 원한다는 것을 표시하는 3 값으로 명령 세트 표시기 값을 설정한다. 그후, 명령 세트가 다시 분기되고, 이 분기에 대한 복귀 어드레스와, 프로그램이 명령 스트림의 이 부분으로 복귀할 때 명령 세트 표시기 값이 3으로 리셋되어야 한다는 것을 표시하는 3 표시기를 기억하도록 링크 레지스터가 갱신된다. 이때, 본 실시예에서는, 단지 1개의 링크 레지스터가 존재하므로, 이 링크 레지스터가 새로운 값들로 오버라이트되기 전에, 링크 레지스터에 이전에 기억된 값이 스택으로 푸시된다는 것에 주목하기 바란다.
그후, 점프된 서브루틴이 실행되는데, 이 서브루틴은 4에 의해 지정된 추가 명령 세트가 사용되어야 한다는 것을 표시하는 명령 세트 갱신 명령을 포함한다. 따라서, 명령 세트 표시기 값이 4로 설정된다. 이 서브루틴의 종료시에 복귀 명령에 응답하여, 링크 레지스터로부터의 값들이 복귀 어드레스에 대해서는 프로그램 카운터에 로드되고 이 경우에는 3인 표시기 값에 대해서는 상태 레지스터에 로드된다.
도 6은 분기 링크 레지스터들을 갖지 않는 처리장치에서의 분기 루틴을 개략적으로 나타낸 것이다. 이 경우에는, 원래의 명령 스트림이 명령 세트 표시기 값을 3으로 설정하였으므로, 분기 명령에 응답하여, 이 표시기 값이 복귀 어드레스와 함께 스택에 푸시된다. 서브루틴으로부터의 복귀시에, 표시기 값이 스택으로부터 팝(pop)되어 상태 레지스터(70)에 기억되고, 복귀 어드레스가 프로그램 카운터에 기억된다.
도 7은 본 발명의 일 실시예에 따른 명령 디코드방법을 나타낸 흐름도이다. 디코더에서 명령을 수신하고, 디코더는 명령의 연산 코드로부터 이 명령이 기본 명령 세트에서 나온 것인지 아닌지를 판정한다. 이 명령이 기본 명령 세트에서 나온 것인 경우에는, 디코더가 기본 명령 세트 디코드 규칙들에 따라 이 명령을 디코드한다. 기본 명령 세트에서 나온 것이 아닌 경우에는, 추가 명령 세트에서 나온 것이 틀림없으므로, 디코더는 상태 레지스터 내부의 표시기 값을 판독하여, 이 명령이 어떤 추가 명령 세트에서 나온 것인지를 판정한다. 그후, 디코더는 이 표시기 값에 의해 표시된 디코드 규칙들에 따라 명령을 디코드한다.
도 8은 본 발명의 일 실시예에 따라 명령들을 처리할 때 행해진 방법의 단계들을 나타낸 것이다. 처음에 명령 세트 갱신 명령이 수신되고, 이 명령에 응답하여 표시기 값이 설정된다. 추가 명령 세트로부터의 이 표시기 값 명령들에 응답하여, 표시기에 의해 식별된 디코드 규칙들에 따라 인코딩 공간이 디코드된다.
그후, 분기 명령이 수신되고, 현재 표시기 값과 복귀 어드레스가 기억된다. 그후, 분기에 의해 표시된 명령으로 점프되고, 다음 명령이 실행된다. 이들 명령은 표시기 값을 갱신하는 명령을 포함하므로, 표시기 값이 갱신된다. 분기로부터의 복귀가 표시될 때, 표시기 값이 기억된 값으로부터 그 표시기 값이 분기 이전에 가졌던 값으로 복원되고, 저장장치로부터 복귀 어드레스가 검색되어 이것을 사용하여 프로그램 카운터를 리셋한다.
도 9은 사용될 수 있는 가상머신 구현을 예시한 것이다. 전술한 실시예들은 해당 기술을 지원하는 특정한 처리 하드웨어를 작동하는 장치 및 방법에 관해 본 발명을 구현하지만, 하드웨어 장치의 가상머신 구현을 제공하는 것도 가능하다. 이들 가상머신은 가상머신 프로그램(510)을 지원하는 호스트 운영체계(520)를 실행하는 호스트 프로세서(530) 상에서 실행된다. 일반적으로, 적절한 속도로 실행하는 가상머신 구현을 제공하기 위해서는 크고 강력한 프로세서가 필요하지만, 호환성이나 재사용 이유로 인해 다른 프로세서에 네이티브한 코드를 실행하는 것이 필요한 경우 등과 같은 특정한 상황에서는 이와 같은 접근방법이 정당화될 수도 있다. 가상머신 프로그램(510)에 의해 모델링되고 있는 장치에 해당하는 실제 하드웨어에 의해 제공되는 애플리케이션 프로그램 인터페이스와 동일한 애플리케이션 프로그램 인터페이스를 가상머신 프로그램(510)이 애플리케이션 프로그램(500)에게 제공한다. 따라서, 전술한 메모리 액세스의 제어를 포함하는 프로그램 명령들이 가상머신 프로그램(510)을 이용하여 애플리케이션 프로그램(500) 내부에서 실행되어, 가상머신 하드웨어와의 상호작용을 모델링해도 된다.
본 발명의 다양한 또 다른 국면 및 특징은 첨부된 특허청구범위에 기재되어 있다. 본 발명의 보호범위를 벗어나지 않으면서 전술한 실시예들에 대해 다양한 변형이 행해질 수 있다.

Claims (27)

  1. 명령들을 디코드하는 명령 디코더와,
    상기 명령 디코더에 의해 디코드된 명령들에 응답하여 데이터를 처리하는 프로세서를 구비하고,
    상기 명령 디코더는 복수의 다른 명령 세트들로부터의 명령들을 디코드하도록 구성되고, 상기 명령 세트들은 기본 명령 세트와 적어도 1개의 추가 명령 세트를 포함하고,
    상기 기본 명령 세트는 명령들을 고유하게 식별하기 위한 소정의 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 적어도 1개의 추가 명령 세트는 상기 적어도 1개의 추가 명령 세트 내부의 명령들을 식별하기 위한 연산 코드를 각각 포함하는 복수의 명령들을 포함하고,
    상기 명령 디코더는, 디코드 규칙들의 기본 세트에 따라 상기 복수의 소정의 연산 코드들 중에서 1개를 갖는 명령을 디코드하고, 상기 적어도 1개의 추가 세트의 명령들 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들 중에서 1개를 갖는 명령을 디코드하도록 구성된, 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 명령 디코더가 적어도 2개의 추가 명령 세트들을 디코드하도록 구성되고, 상기 적어도 2개의 추가 명령 세트는 적어도 일부의 연산 코드를 공통적으로 갖는 데이터 처리장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 데이터 처리장치는 상기 표시기 값을 기억하는 상태 레지스터를 구비한 데이터 처리장치.
  4. 제 3항에 있어서,
    상기 명령 디코더는, 명령 세트 갱신 명령에 응답하여, 상기 상태 레지스터에 기억된 상기 표시기 값을 상기 명령에 명시된 값으로 설정하고, 상기 명령 세트 갱신 명령은 상기 기본 명령 세트로부터의 명령인 데이터 처리장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 프로세서가, 프로그램 스트림을 분기해야 한다는 것을 표시하는 분기 명령에 응답하여, 복귀 어드레스와 상기 표시기 값을 기억함으로써, 상기 분기로부터의 복귀시 상기 복귀 어드레스 및 표시기 값이 복원될 수 있도록 구성된 데이터 처리장치.
  6. 제 5항에 있어서,
    상기 데이터 처리장치는 상기 분기 전에 상기 표시기 값을 리셋하도록 구성된 데이터 처리장치.
  7. 제 5항에 있어서,
    상기 복귀 어드레스 및 표시기 값이 동일한 링크 레지스터에 기억된 데이터 처리장치.
  8. 제 7항에 있어서,
    상기 링크 레지스터의 상위 비트들은 상기 표시기 값을 기억하고 하위 비트들은 상기 복귀 어드레스를 기억하는 데이터 처리장치.
  9. 제 7항에 있어서,
    상기 복귀 어드레스 및 표시기 값은 상기 분기에 응답하여 스택에 기억되고, 상기 분기로부터의 복귀시 상기 스택으로부터 판독되는 데이터 처리장치.
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서,
    상기 명령 디코더는, 상기 표시기가 상기 적어도 1개의 추가 명령 세트들 중 1개를 표시하는 것과, 상기 적어도 1개의 추가 명령 세트 내부에 디코드 규칙이 존재하지 않는 연산 코드를 갖는 명령의 수신에 응답하여, 예외를 발생하는 데이터 처리장치.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 명령 디코더는, 상기 명령 디코더가 디코드 규칙들을 갖지 않는 추가 명령 세트를 표시하는 값으로 상기 표시기 값이 전환되는 것을 검출한 것에 응답하여, 예외를 발생하는 데이터 처리장치.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서,
    상기 기본 명령 세트 내부의 명령들에 대한 상기 소정의 연산 코드들이 소정의 기본 인코딩 공간 내부에 놓이고, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들이 소정의 확장 인코딩 공간 내부에 놓이는 데이터 처리장치.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서,
    복수의 서로 다른 표시기 값들이 상기 적어도 1개의 추가 명령 세트 중에서 1개를 식별하는 데이터 처리장치.
  14. 서로 다른 명령 세트들로부터의 명령들을 디코드하는 방법으로서,
    명령을 수신하는 단계와,
    상기 명령의 연산 코드가 기본 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 기본 명령 세트에 대한 디코드 규칙들에 따라 상기 명령을 디코드하는 단계와,
    상기 명령의 상기 연산 코드가 적어도 1개의 추가 명령 세트로부터의 명령의 연산 코드인 경우에, 상기 적어도 1개의 추가 명령 세트 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라 상기 명령을 디코드하는 단계를 포함하는, 명령 디코드 방법.
  15. 제 14항에 따라 서로 다른 명령 세트들로부터 명령들을 디코드하고, 상기 디코드된 명령들을 처리하는 방법으로서,
    명령 세트 갱신 명령의 수신에 응답하여,
    상기 기본 명령 세트에 대한 디코드 규칙들에 따라 상기 명령을 디코드하는 단계와,
    상기 디코드된 명령 세트 갱신 명령에 응답하여, 상태 레지스터 내부의 상기 표시기 값을 상기 디코드된 명령에 의해 표시된 값으로 설정하는 단계를 포함하는 방법.
  16. 제 14항 또는 제 15항에 있어서,
    프로그램 스트림을 분기해야 한다는 것을 표시하는 분기 명령의 수신에 응답하여,
    복귀 어드레스와 상기 표시기의 현재 값을 기억함으로써, 상기 분기로부터의 복귀시 상기 복귀 어드레스 및 표시기 값이 복원될 수 있도록 하는 단계를 포함하는 방법.
  17. 제 16항에 있어서,
    상기 복귀 어드레스 및 표시기 값을 기억하는 단계는, 상기 값들을 동일한 링크 레지스터에 기억하는 단계를 포함하는 방법.
  18. 제 16항에 있어서,
    상기 복귀 어드레스 및 표시기 값을 기억하는 단계는, 상기 값들을 스택에 기억하고, 분기 명령으로부터의 복귀에 응답하여 상기 스택으로부터 상기 값들을 판독하는 단계를 포함하는 방법.
  19. 제 14항 내지 제 18항 중 어느 한 항에 있어서,
    상기 표시기가 상기 적어도 1개의 추가 명령 세트들 중 1개를 표시하는 것과, 상기 적어도 1개의 추가 명령 세트 내부에 디코드 규칙이 존재하지 않는 연산 코드를 갖는 명령의 수신에 응답하여 예외를 발생하는 단계를 포함하는 방법.
  20. 제 14항 내지 제 19항 중 어느 한 항에 있어서,
    상기 명령 디코더가 디코드 규칙들을 갖지 않는 추가 명령 세트를 표시하는 값으로 상기 표시기 값이 전환되는 것을 검출한 것에 응답하여 예외를 발생하는 단계를 포함하는 방법.
  21. 데이터 처리장치 상에서 실행되는 컴퓨터 프로그램에 의해 제공된 가상머신으로서, 상기 가상머신이 청구항 1 내지 12 중 어느 한 항에 기재된 데이터 처리장치에 따른 명령 실행 환경을 제공하는 가상머신.
  22. 데이터 프로세서 상에서 실행될 때, 상태 레지스터 내부의 표시기 값을 명령 세트 갱신 명령에 의해 표시된 값으로 설정하도록 상기 데이터 프로세서를 제어하는 상기 명령 세트 갱신 명령을 포함하는 컴퓨터 프로그램 제품으로서, 상기 데이터 프로세서의 디코더가, 기본 디코딩 규칙들의 세트에 따라 기본 명령 세트로부터의 명령들을 표시하는 연산 코드들을 갖는 명령들을 디코드하고, 상기 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라 추가 명령 세트로부터의 명령들을 표시하는 연산 코드들을 갖는 명령들을 디코드하는, 컴퓨터 프로그램 제품.
  23. 명령들을 디코드하는 명령 디코딩수단과,
    상기 명령 디코딩수단에 의해 디코드된 명령들에 응답하여 데이터를 처리하는 프로세싱수단을 구비하고,
    상기 명령 디코딩수단은 복수의 다른 명령 세트들로부터의 명령들을 디코드하고, 상기 명령 세트들은 기본 명령 세트와 적어도 1개의 추가 명령 세트를 포함하고,
    상기 기본 명령 세트는 명령들을 고유하게 식별하기 위한 소정의 연산 코드를 각각 포함하는 복수의 명령들을 포함하고, 상기 적어도 1개의 추가 명령 세트는 상기 적어도 1개의 추가 명령 세트 내부의 명령들을 식별하기 위한 연산 코드를 각각 포함하는 복수의 명령들을 포함하고,
    상기 명령 디코딩수단은, 디코드 규칙들의 기본 세트에 따라 상기 복수의 소정의 연산 코드들 중에서 1개를 갖는 명령을 디코드하고,
    상기 적어도 1개의 추가 세트의 명령들 중에서 어느 것이 현재 디코드될 것인가를 표시하는 표시기 값에 의해 결정된 디코드 규칙들의 세트에 따라, 상기 적어도 1개의 추가 명령 세트의 상기 연산 코드들 중에서 1개를 갖는 명령을 디코드하는, 데이터 처리수단.
  24. 도 1 내지 도 9를 참조하여 전술한 것과 같은 데이터 처리장치.
  25. 도 1 내지 도 9를 참조하여 전술한 것과 같은 방법.
  26. 도 1 내지 도 9를 참조하여 전술한 것과 같은 가상머신.
  27. 도 1 내지 도 9를 참조하여 전술한 것과 같은 컴퓨터 프로그램 제품.
KR1020137009938A 2010-10-12 2011-09-29 다중 명령 세트로부터의 명령 디코딩 KR101799764B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1017177.5 2010-10-12
GB1017177.5A GB2484489A (en) 2010-10-12 2010-10-12 Instruction decoder using an instruction set identifier to determine the decode rules to use.
PCT/GB2011/051848 WO2012049475A1 (en) 2010-10-12 2011-09-29 Decoding instructions from multiple instruction sets

Publications (2)

Publication Number Publication Date
KR20130101060A true KR20130101060A (ko) 2013-09-12
KR101799764B1 KR101799764B1 (ko) 2017-12-20

Family

ID=43304420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137009938A KR101799764B1 (ko) 2010-10-12 2011-09-29 다중 명령 세트로부터의 명령 디코딩

Country Status (10)

Country Link
US (1) US9753730B2 (ko)
EP (1) EP2628074B1 (ko)
JP (1) JP2013539883A (ko)
KR (1) KR101799764B1 (ko)
CN (1) CN103154883B (ko)
GB (1) GB2484489A (ko)
IL (1) IL225159A (ko)
MY (1) MY158864A (ko)
TW (1) TWI506544B (ko)
WO (1) WO2012049475A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5922353B2 (ja) 2011-08-22 2016-05-24 サイプレス セミコンダクター コーポレーション プロセッサ
DE102012010102A1 (de) * 2012-05-22 2013-11-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Datenverarbeitung
CN104424128B (zh) * 2013-08-19 2019-12-13 上海芯豪微电子有限公司 变长指令字处理器系统和方法
CN103761071B (zh) * 2014-01-08 2017-07-18 东南大学 一种plc的指令编码及识别系统
US9772849B2 (en) 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772850B2 (en) 2014-11-14 2017-09-26 Intel Corporation Morton coordinate adjustment processors, methods, systems, and instructions
US9772848B2 (en) 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US10437596B2 (en) * 2014-11-26 2019-10-08 Texas Instruments Incorporated Processor with a full instruction set decoder and a partial instruction set decoder
US10115175B2 (en) * 2016-02-19 2018-10-30 Qualcomm Incorporated Uniform predicates in shaders for graphics processing units
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction
CN111273945A (zh) * 2018-12-05 2020-06-12 展讯通信(上海)有限公司 指令译码器批处理设计方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2289354B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
GB2307072B (en) 1994-06-10 1998-05-13 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5968162A (en) * 1996-04-02 1999-10-19 Advanced Micro Devices, Inc. Microprocessor configured to route instructions of a second instruction set to a second execute unit in response to an escape instruction
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
US6014735A (en) * 1998-03-31 2000-01-11 Intel Corporation Instruction set extension using prefixes
TW477936B (en) * 1998-12-29 2002-03-01 Ind Tech Res Inst Instruction folding method and device used in a stack machine
US7941647B2 (en) * 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
EP1387252B1 (en) * 2002-07-31 2019-02-13 Texas Instruments Incorporated Instruction prefix to indicate system commands
JP3805314B2 (ja) 2003-02-27 2006-08-02 Necエレクトロニクス株式会社 プロセッサ
GB2414308B (en) 2004-05-17 2007-08-15 Advanced Risc Mach Ltd Program instruction compression
US7711927B2 (en) 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US8281109B2 (en) * 2007-12-27 2012-10-02 Intel Corporation Compressed instruction format
JP2009181312A (ja) 2008-01-30 2009-08-13 Toshiba Corp プロセッサ

Also Published As

Publication number Publication date
US9753730B2 (en) 2017-09-05
GB201017177D0 (en) 2010-11-24
CN103154883A (zh) 2013-06-12
JP2013539883A (ja) 2013-10-28
TW201224921A (en) 2012-06-16
TWI506544B (zh) 2015-11-01
EP2628074B1 (en) 2014-08-06
KR101799764B1 (ko) 2017-12-20
MY158864A (en) 2016-11-15
CN103154883B (zh) 2016-08-31
US20120089818A1 (en) 2012-04-12
EP2628074A1 (en) 2013-08-21
WO2012049475A1 (en) 2012-04-19
GB2484489A (en) 2012-04-18
IL225159A (en) 2016-12-29

Similar Documents

Publication Publication Date Title
KR101799764B1 (ko) 다중 명령 세트로부터의 명령 디코딩
KR101812569B1 (ko) 다중 명령 세트에 의해 사용되는 레지스터 간의 매핑
JP4216182B2 (ja) 複数の命令セットを用いるデータ処理
CN107735775B (zh) 用于使用与指针相关联的范围信息来执行指令的装置和方法
JP2610104B2 (ja) 命令オペレーション・コードの検査装置及び方法
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
EP2115582A2 (en) Controlling instruction execution in a processing environment
CN110832455B (zh) 测试向量元素内部的位值
KR20140014182A (ko) 데이터 처리장치에 있어서의 어드레스 생성
CN109313693B (zh) 针对偶发存储器访问程序指令的许可控制
US7089539B2 (en) Program instruction interpretation
KR100864891B1 (ko) 다중 명령 세트 시스템에서의 미처리된 연산 처리
KR20180067582A (ko) 벡터 로드 명령어
CN102037448B (zh) 主机数据处理设备内的装置仿真支持
JP7377807B2 (ja) リンク付き分岐命令の分岐ターゲット・バリアント
CN109416632A (zh) 寄存器还原分支指令
KR20180101574A (ko) 하위 호환성을 위한 cpuid 스푸핑
CN102681819B (zh) 实现灵活且低成本的指令替换方法及装置
JP3858013B2 (ja) 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
EP2115574A1 (en) Employing a buffer to facilitate instruction execution

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