KR20180101574A - 하위 호환성을 위한 cpuid 스푸핑 - Google Patents
하위 호환성을 위한 cpuid 스푸핑 Download PDFInfo
- Publication number
- KR20180101574A KR20180101574A KR1020187024047A KR20187024047A KR20180101574A KR 20180101574 A KR20180101574 A KR 20180101574A KR 1020187024047 A KR1020187024047 A KR 1020187024047A KR 20187024047 A KR20187024047 A KR 20187024047A KR 20180101574 A KR20180101574 A KR 20180101574A
- Authority
- KR
- South Korea
- Prior art keywords
- computing device
- processor
- application
- legacy
- different
- 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
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- 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/22—Microcontrol or microprogram arrangements
-
- 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/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
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)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Microcomputers (AREA)
Abstract
하위 호환성을 용이하게 하기 위해, 컴퓨팅 장치는 컴퓨팅 장치 상의 프로세서와 다른 프로세서에 관한 정보를 반환함으로써 컴퓨팅 장치 상의 프로세서에 관한 정보에 대한 애플리케이션으로부터의 호출에 응답할 수 있다.
Description
본 출원은 본 출원은 공동 양도된 미국 특허 가출원 제 62/286,280 호(2016 년 1 월 22 일자로 출원됨)의 이익을 주장하며, 그 전체 내용은 본 명세서에 참고로 포함된다.
컴퓨터 시스템의 새 버전("새 장치")이 출시되면 이전 버전의 시스템("레거시 장치"(legacy device))용으로 작성된 응용 프로그램이 새 장치에서 완벽하게 실행되는 것이 바람직합니다. 이 기능은 종종 "레거시 응용 프로그램"과 관련하여 "하위 호환성"(backwards compatibility)이라고 한다. 새 장치가 레거시 장치 용으로 만들어진 레거시 응용 프로그램을 실행할 수 있는 경우에도 새 장치는 해당 응용 프로그램을 실행할 때 이전 버전과 호환되지 않을 수 있다. 새 장치 및 레거시 장치의 하드웨어 구성 요소 성능 차이로 인해 새 장치에서 동기화 오류가 발생할 수 있다. 이러한 성능 차이는, 예를 들어, 레거시 장치에 대한 새로운 장치의 중앙 처리 장치(CPU)의 능력 차이로부터 발생할 수 있다. 예를 들어, 새 장치의 CPU가 레거시 장치의 CPU보다 빠르면, 새 장치의 다른 구성 요소에서 사용중인 데이터가 CPU에 의해 조기에 덮어쓰기될 수 있다.
종래 기술과 관련된 단점은, 컴퓨팅 장치 상의 프로세서와는 다른 프로세서에 관한 정보를 반환함으로써 컴퓨팅 장치 상의 프로세서에 관한 정보에 대한 애플리케이션으로부터의 호출에 컴퓨팅 장치가 응답하는 방법과 관련된 본 개시의 실시형태들에 의해 극복된다.
본 개시의 교시는 첨부된 도면과 함께 다음의 상세한 설명을 고려함으로써 용이하게 이해될 수 있다:
도 1은 본 개시의 실시형태에 따른 하위 호환성을 구현하는 방법을 나타내는 흐름도이다.
도 2는 ROM(Read-Only Memory)에서 도 1의 방법을 수행하기 위한 실행 가능한 소프트웨어가 구현되는 중앙 처리 장치(CPU)를 도시하는 블록도이다.
도 3은 도 2에 도시된 유형의 CPU를 포함하는 장치의 블록도이다.
도 1은 본 개시의 실시형태에 따른 하위 호환성을 구현하는 방법을 나타내는 흐름도이다.
도 2는 ROM(Read-Only Memory)에서 도 1의 방법을 수행하기 위한 실행 가능한 소프트웨어가 구현되는 중앙 처리 장치(CPU)를 도시하는 블록도이다.
도 3은 도 2에 도시된 유형의 CPU를 포함하는 장치의 블록도이다.
다음의 상세한 설명은 예시의 목적을 위한 다수의 특정 세부 사항을 포함하지만, 당업자라면 다음의 상세한 설명에 대한 많은 변형 및 변경이 청구된 발명의 범위 내에 있음을 알 수 있을 것이다. 따라서, 하기에 기술된 본 발명의 예시적인 실시예들은 청구된 발명에 대한 일반성의 손실없이 그리고 제한을 부과하지 않고 개시된다.
도입
레거시 장치에 대한 CPU 동작의 차이로 나타나는 문제를 해결하기 위해 레거시 장치를 실행할 때 레거시 장치 CPU의 특정 기능을 모방한 새로운 장치가 있을 수 있다. 레거시 장치를 모방하는 기능의 핵심적 특징은 레거시 응용 프로그램을 레거시 장치에서 실행중인 것처럼 작동하도록 속이는 것이다. 많은 응용 프로그램이 다른 프로세서에서 실행되도록 설계되었기 때문에 현대 프로세서는 종종 소프트웨어 응용 프로그램이 프로세서의 세부 사항을 찾을 수 있도록 하는 오피코드(opcode) 또는 레지스터를 구현한다. 하위 호환성을 용이하게 하기 위해 새 장치의 프로세서는 레거시 응용 프로그램의 호출에 응답하여 다른 프로세서 정보가 반환되는 방식으로 오피코드를 실행하거나 레지스터 값을 제공할 수 있습니다. 다른 정보는 여기에서 "스푸핑된 프로세서 ID"(Spoofed Processor ID)라고 한다. 스푸핑된 프로세서 ID는 새 장치의 특정 기능을 실제로 지원되는 것과는 다른 것으로, 또는 이들이 실제 지원되고 있을 때 전혀 지원되지 않는 것으로, 선택적으로 식별한다.
방법
도 1에 도시된 흐름도에 도시된 방법(100)은 이것이 어떻게 작동하는지 예를 보여준다. 구체적으로, 장치 상에 실행중인 요청 애플리케이션(101)은 참조 번호(102)로 표시된 바와 같이 애플리케이션을 실행하는 프로세서로부터 프로세서 ID를 요청한다. 프로세서는 요청 애플리케이션(101)이 레거시 애플리케이션, 즉 이전 버전 장치용으로 쓰여진 애플리케이션인지 여부를 (104)에서 결정한다. 애플리케이션이 새 장치 용인지 레거시 장치용으로 기록된 것인지 여부를 프로세서가 결정하는 데에는 여러가지 방식이 있다. 한 가지 방법은 새 장치 용으로 작성된 모든 응용 프로그램이 응용 프로그램을 새 장치 용으로 작성된 것으로 식별한 정보를 로드시 프로세서에 보고하는 경우이다. 이러한 정보를 보고하면, 새 장치 용으로 작성된 것으로 응용 프로그램을 식별할 수 있으며, 이러한 정보를 보고하지 않으면 해당 응용 프로그램을 레거시 응용 프로그램으로 식별할 수 있습니다.
프로세서에 의해 요청 애플리케이션(101)에 반환되는 정보는 애플리케이션(101)이 레거시 애플리케이션인지 또는 새로운 애플리케이션인지, 즉, 장치 상에서 구동되도록 작성된 애플리케이션인지에 따라 달라진다. 요청 애플리케이션(101)이 새로운 애플리케이션인 경우, 프로세서는 106에 표시된 바와 같이, 예를 들어 애플리케이션을 실행하는 장치 상의 프로세서에 대한 정확한 프로세서 ID(103)와 같은, 진정한 프로세서 정보를 반환한다. 요청 애플리케이션(101)이 레거시 애플리케이션인 경우, 프로세서는 108에 나타낸 바와 같은 스푸핑된 프로세서 정보, 예를 들어 스푸핑된 프로세서 ID(105)를 반환한다. 반환된 정보는 프로세서에 의해 실제로 지원되는 소정의 특징을 지원되지 않는 것으로 식별할 수 있고, 또는, 애플리케이션을 구동하는 프로세스가 레거시 프로세서임을 명시할 수 있다.
제한적이지 않은 예로서, 스푸핑된 프로세서 ID(105)는 x86 아키텍쳐에 의해 지원되는 오피코드인 변경된 CPUID 명령에 의해 반환될 수 있다. CPUID 오피코드를 사용하여, 소프트웨어는 다양한 SSE 명령어 세트 세트 아키텍처의 구현과 같은 특징들의 존재 및 프로세스 유형을 결정할 수 있다. x86 아키텍처에서 CPUID 오피코드는 바이트 0Fh 및 A2h이며 EAX 레지스터의 값, 경우에 따라 ECX 레지스터는 반환할 정보를 명시한다.
어셈블리 언어에서 CPUID 명령어는 파라미터를 사용하지 않고, 대신 EAX 레지스터를 은밀하게 사용하여, 흔히 CPUID 리프라 불리는 반환되는 정보의 주요 범주를 결정한다. EAX = 0 인 CPUID를 호출하는 응용 프로그램은 반환시 CPU가 지원하는 가장 높은 EAX 호출 파라미터(리프)를 EAX 레지스터에 수신하고, 다른 레지스터에는 CPU 제조업체를 식별하는 공급 업체 ID가 포함된다. 확장 함수 정보를 얻기 위해 CPUID는 EAX 세트의 최상위 비트와 함께 호출될 수 있다. 가장 높은 확장 함수 호출 파라미터를 결정하기 위해 CPUID는 EAX = 80000000h를 사용하여 호출할 수 있다. 일부 리프는 하위 리프(sub-leaves)도 가지며, 이는 CPUID를 호출하기 전에 ECX 레지스터를 통해 선택된다.
EAX = 1로 CPUID를 호출하면 (CPU의 시그너처라고도 불리는) EAX 내 패밀리 정보, 모델, CPU 스테핑 모델에 관한 정보, EDX 및 ECX 내 특징 플래그, 및 EBX so 추가 특징 정보를 반환한다. EAX = 2로 CPUID를 호출하면 EAX, EBX, ECX 및 EDX 레지스터의 캐시 및 변환 룩어 사이드 버퍼(TLB) 기능을 나타내는 디스크립터 목록을 반환한다. 다른 EAX 값은 프로세서 일련 번호, 스레드/코어 및 캐시 토폴로지, 확장 기능, 프로세서 브랜드, L1 캐시 및 TLB 식별자, 확장 L2 캐시 기능, 전원 관리 기능 식별자, 및 가상 및 실제 주소 크기와 같은 정보를 반환한다. 도 1에 도시된 유형의 프로그램은, 레거시 응용 프로그램에 의해 질의될 경우 이들 중 일부 또는 전부의 정확한 값에 대해 상이한 값을 반환할 수 있다.
CPU
도 1에 도시된 프로세서 ID 스푸핑 기능은, 여러 가지 방법으로 새 장치에 구현될 수 있다. 예를 들어 새로운 장치에는 레거시 응용 프로그램의 질의에 대한 응답으로 스푸핑된 프로세서 ID 정보를 반환하는 ROM 또는 RAM에 특수 마이크로 코드가 포함될 수 있다. 도 2는 마이크로 코드가 CPU 코어(202)의 일부인 ROM에 구현되는 CPU(200)의 가능한 구현 예를 도시한다. CPU는 하나 이상의 그러한 코어를 포함할 수 있다. CPU 코어(202)는 명령 레벨 2 캐시(204) 및 버스 인터페이스(206)를 공유할 수 있다. 각각의 코어(202)는 명령어 및 데이터를 위한 레지스터들(210), 캐시들(212), 및 변환 룩어사이드 버퍼(TLB)(214)들과 함께 명령어들을 로딩, 저장, 스케줄링, 디코딩 및 실행하기 위한 로직 유닛들(208)을 포함할 수 있다.
도 2에 도시된 특정 구현에서, CPUID 명령어는 프로세서 ID 프로그램 및 2 개의 상이한 세트의 프로세서 ID 데이터를 포함하는 ROM(218)에 저장된 마이크로 코드(216)에 의해 구현된다. 한 세트의 데이터(ID1)는 새 장치 응용 프로그램 용이고 다른 세트(ID2)는 레거시 장치 응용 프로그램 용이다.
다른 구현 예에서, 레거시 애플리케이션에 하나, 그리고, 새 장치 애플리케이션에 하나씩, 2개의 상이한 프로세서 ID 프로그램이 존재할 수 있다. 이러한 구현 예에서, CPU(200)는 실행중인 애플리케이션이 레거시 애플리케이션인지 또는 새 장치 애플리케이션인지에 따라 CPUID 명령어를 실행할 때 하나의 프로그램 또는 다른 프로그램을 선택적으로 실행할 수 있다. 다른 대안적인 구현들에서, 프로세서 ID 프로그램은 특별한 전용 하드웨어에 의해 구현될 수 있다. 예를 들어, 프로세서 ID 정보를 반환하는 소정의 실시형태들은 ROM(218)에 저장된 마이크로 코드보다는 하드웨어 로직에 의해 구현될 수 있다. ROM보다는 랜덤 액세스 메모리(RAM)에 저장된다.
시스템
도 2에 도시된 유형의 CPU는, 새로운 장치에 통합될 수 있습니다. 도 3에 도시된 바와 같이, 새로운 장치(300)는 다수의 코어(202)를 갖는 CPU(200) 및 다수의 연산 유닛(CU)(304)을 갖는 GPU(302)를 포함할 수 있다. CPU 및 GPU는 L2 캐시(204, 304), 버스 인터페이스(206, 306), 및 프론트사이드 버스(308)를 통해 서로와, 그리고 메모리 및 I/O 컨트롤러(310)와 통신할 수 있다. 메모리 및 I/O 컨트롤러(310)는 CPU(200) 및 CPU(302), 그리고 및 메모리(312)(예를 들어, RAM), 저장 장치들(314; , 디스크 드라이브 또는 플래시 메모리), 비디오 카드(316), 주변 장치(318) 및 네트워크(320) 내/외로 적절히 구성된 버스(322)를 통해 데이터 전송을 관리한다.
장치(300)는 CPU(200) 및 GPU(302)상에서 명령어를 실행함으로써 애플리케이션(101)을 실행시킨다. 애플리케이션(101)의 일부는 메모리(312)에 로드될 수 있다. 특정 구현 예에서, CPUID 명령어는 예를 들어, 도 2와 관련하여 논의한 바와 같이, 프로세서 ID 프로그램 및 2개의 상이한 프로세서 ID 데이터의 세트를 지닌 마이크로코드에 의해 구현된다.
상술한 바와 같이, 다른 구현 예에서는 레거시 애플리케이션용으로 하나, 그리고 새로운 장치 애플리케이션용으로 하나씩, 2 개의 서로 다른 프로세서 ID 프로그램이 있을 수 있다. 이러한 구현 예에서, CPU(200)는 실행중인 애플리케이션이 레거시 애플리케이션인지 또는 새로운 장치 애플리케이션인지에 따라 CPUID 명령을 실행할 때 하나의 프로그램 또는 다른 프로그램을 선택적으로 실행할 수 있다. 다른 대안적인 구현 예에서, 단일 프로세서 ID 프로그램은 질의 프로그램이 레거시(legacy) 애플리케이션인지 또는 새로운 장치 애플리케이션인지 여부에 따라 특정 사항에 차이가 있는 프로세서 ID 데이터를 반환할 수 있다. 다른 대안의 실시예에서, 프로세서 ID 코드(216)는 특별한 전용 하드웨어에 의해 구현될 수 있다. 예를 들어, 프로세서 ID 정보를 반환하는 소정의 실시형태는 CPU 코어(202)의 ROM(218)에 저장된 마이크로 코드보다는 하드웨어 로직에 의해 구현될 수 있다. 다른 대안의 구현 예에서, 마이크로 코드는 예를 들어 ROM이 아닌 메인 메모리(312)와 같은 랜덤 액세스 메모리(RAM)에 저장될 수 있다.
스푸핑된 프로세서 기능 정보를 반환하면, 해당 기능들이 지원됨에도 불구하고 레거시 애플리케이션이 사용을 시도할 경우 타이밍 문제를 야기할 수 있는 기능들을 애플리케이션이 이용하는 것을 방지함으로써 하위 호환성 문제의 해결을 용이하게 할 수 있다.
이상이 본 발명의 바람직한 실시예에 대한 완전한 설명이지만, 다양한 대안, 변형 및 균등물을 사용할 수 있다. 그러므로, 본 발명의 범위는 상기 설명을 참조하여 결정될 것이 아니라, 그 대신 균등물의 전체 범위와 함께 첨부된 청구 범위를 참조하여 결정되어야한다. 선호 여부에 관계없이 모든 기능은 선호 여부와 상관없이 다른 기능과 결합될 수 있다. 뒤 따르는 청구 범위에서, 부정관사에 해당하는 "하나의" 또는 "일 "은 달리 명시적으로 언급된 경우를 제외하고는 다음에 이어지는 하나 이상의 항목을 의미한다. 첨부된 청구항은 "~를 위한 수단"(means for)이라는 문구를 사용하여 주어진 청구항에 명시적으로 언급된 경우가 아니면 수단+기능의 제한을 포함하는 것으로 해석되어서는 안된다. 명시된 기능을 수행하기 "위한 수단"을 명시적으로 언급하지 않는 청구항의 어떤 요소도, 35 USC §112(f)에 명시된 "수단" 또는 "단계" 조항으로 해석되어서는 안된다.
Claims (45)
- 컴퓨팅 장치에서, 컴퓨팅 장치 상의 프로세서와는 상이한 프로세서에 관한 정보를 반환함으로써 컴퓨팅 장치 상의 프로세서에 관한 정보에 대한 애플리케이션으로부터의 호출에 응답하는 단계를 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 특징을, 상기 컴퓨팅 장치에 의해 실제로 지원되는 것과 다른 것으로 식별하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보는, 소정의 기능들이 실제로 상기 컴퓨팅 장치 상의 상기 프로세서에 의해 지원될 때, 상기 컴퓨팅 장치 상의 프로세스의 상기 소정의 기능들을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 방법.
- 제 1 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션인 방법.
- 제 1 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 기능을, 상기 컴퓨팅 장치에 의해 지원되는 것과는 다른 것으로 식별하는, 방법.
- 제 1 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 상기 프로세서의 소정의 기능이 상기 컴퓨팅 장치 상의 프로세서에 의해 실제로 지원될 때, 상기 컴퓨팅 장치 상의 프로세서의 소정의 기능을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 방법.
- 제 1 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 레거시 장치 상의 프로세서를 식별하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 상기 컴퓨팅 장치 상의 상기 프로세서의 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 x86 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 CPUID 명령어의 사용을 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드의 사용을 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드 및 2 개의 상이한 프로세서 ID 데이터 세트의 사용을 포함하며, 하나의 데이터 세트는 새 장치 애플리케이션용이고, 다른 하나의 데이터 세트는 레거시 장치 애플리케이션용인, 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 상기 컴퓨팅 장치 상의 상기 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드의 사용을 포함하고, 마이크로 코드 로직은 질의하는 프로그램이 새 장치 애플리케이션인지 또는 레거시 장치 애플리케이션인지 여부에 따라 일부 세부사항에 차이를 나타내는 프로세서 ID 데이터를 반환하는, 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 상기 정보를 반환하는 단계는 레거시 애플리케이션들에 대해 하나의 ID 프로그램 및 새 장치 애플리케이션에 대해 또 하나의 ID 프로그램의 사용을 포함하는 방법.
- 제 1 항에 있어서, 상기 상이한 프로세서에 관한 정보를 반환하는 단계는 전용 하드웨어의 사용을 포함하는 방법.
- 상이한 프로세서에 관한 정보를 반환함으로써 상기 프로세서에 관한 정보에 대한 애플리케이션으로부터의 호출에 응답하도록 구성되는 프로세서를 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 특징을, 상기 컴퓨팅 장치에 의해 실제로 지원되는 것과 다른 것으로 식별하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보는, 소정의 기능들이 실제로 상기 컴퓨팅 장치 상의 상기 프로세서에 의해 지원될 때, 상기 컴퓨팅 장치 상의 프로세스의 상기 소정의 기능들을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션인 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 기능을, 실제 상기 컴퓨팅 장치에 의해 지원되는 것과는 다른 것으로 식별하는, 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 상기 프로세서의 소정의 기능이 상기 컴퓨팅 장치 상의 프로세서에 의해 실제로 지원될 때, 상기 컴퓨팅 장치 상의 프로세서의 소정의 기능을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 레거시 장치 상의 프로세서를 식별하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 상기 프로세서의 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 x86 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 CPUID 명령어의 사용을 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM을 더 포함하며, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM저장된 마이크로 코드의 사용을 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM을 더 포함하며, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드 및 2 개의 상이한 프로세서 ID 데이터 세트의 사용을 포함하며, 하나의 데이터 세트는 새 장치 애플리케이션용이고, 다른 하나의 데이터 세트는 레거시 장치 애플리케이션용인, 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM을 더 포함하며, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 상기 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드의 사용을 포함하고, 마이크로 코드 로직은 질의하는 프로그램이 새 장치 애플리케이션인지 또는 레거시 장치 애플리케이션인지 여부에 따라 일부 세부사항에 차이를 나타내는 프로세서 ID 데이터를 반환하는, 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 상기 정보의 반환은 레거시 애플리케이션들에 대해 하나의 ID 프로그램 및 새 장치 애플리케이션에 대해 또 하나의 ID 프로그램의 사용을 포함하는 컴퓨팅 장치.
- 제 16 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 전용 하드웨어의 사용을 포함하는 컴퓨팅 장치.
- 실행될 때 컴퓨팅 장치 상의 프로세서와는 상이한 프로세서에 관한 정보를 반환함으로써 컴퓨팅 장치 상의 프로세서에 관한 정보에 대한 애플리케이션으로부터의 호출에 컴퓨팅 장치가 응답하도록 구성되는 실행가능 명령어들을 저장한 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 특징을, 상기 컴퓨팅 장치에 의해 실제로 지원되는 것과 다른 것으로 식별하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보는, 소정의 기능들이 실제로 상기 컴퓨팅 장치 상의 상기 프로세서에 의해 지원될 때, 상기 컴퓨팅 장치 상의 프로세스의 상기 소정의 기능들을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션인 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 컴퓨팅 장치 상의 프로세서의 소정의 기능을, 상기 컴퓨팅 장치에 의해 지원되는 것과는 다른 것으로 식별하는, 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 소정의 기능이 상기 컴퓨팅 장치 상의 프로세서에 의해 실제로 지원될 때, 상기 컴퓨팅 장치 상의 프로세서의 상기 소정의 기능을, 상기 컴퓨팅 장치 상의 프로세서에 의해 전혀 지원되지 않는 것으로 식별하는, 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 애플리케이션은 레거시 컴퓨팅 장치용으로 작성된 레거시 애플리케이션이고, 상기 상이한 프로세서에 관한 정보는 상기 레거시 장치 상의 프로세서를 식별하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 상기 프로세서의 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 x86 아키텍처에 의해 지원되는 오피코드의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 CPUID 명령어의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드 및 2 개의 상이한 프로세서 ID 데이터 세트의 사용을 포함하며, 하나의 데이터 세트는 새 장치 애플리케이션용이고, 다른 하나의 데이터 세트는 레거시 장치 애플리케이션용인, 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 상기 컴퓨팅 장치 상의 상기 프로세서와 연관된 ROM 또는 RAM에 저장된 마이크로 코드의 사용을 포함하고, 마이크로 코드 로직은 질의하는 프로그램이 새 장치 애플리케이션인지 또는 레거시 장치 애플리케이션인지 여부에 따라 일부 세부사항에 차이를 나타내는 프로세서 ID 데이터를 반환하는, 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 상기 정보의 반환은 레거시 애플리케이션들에 대해 하나의 ID 프로그램 및 새 장치 애플리케이션에 대해 또 하나의 ID 프로그램의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
- 제 31 항에 있어서, 상기 상이한 프로세서에 관한 정보의 반환은 전용 하드웨어의 사용을 포함하는 비일시적 컴퓨터-판독가능 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020207032430A KR102455675B1 (ko) | 2016-01-22 | 2017-01-20 | 하위 호환성을 위한 cpuid 스푸핑 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662286280P | 2016-01-22 | 2016-01-22 | |
US62/286,280 | 2016-01-22 | ||
PCT/US2017/014262 WO2017127631A1 (en) | 2016-01-22 | 2017-01-20 | Spoofing cpuid for backwards compatibility |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207032430A Division KR102455675B1 (ko) | 2016-01-22 | 2017-01-20 | 하위 호환성을 위한 cpuid 스푸핑 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180101574A true KR20180101574A (ko) | 2018-09-12 |
KR102179237B1 KR102179237B1 (ko) | 2020-11-16 |
Family
ID=59360501
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207032430A KR102455675B1 (ko) | 2016-01-22 | 2017-01-20 | 하위 호환성을 위한 cpuid 스푸핑 |
KR1020187024047A KR102179237B1 (ko) | 2016-01-22 | 2017-01-20 | 하위 호환성을 위한 cpuid 스푸핑 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207032430A KR102455675B1 (ko) | 2016-01-22 | 2017-01-20 | 하위 호환성을 위한 cpuid 스푸핑 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11068291B2 (ko) |
EP (1) | EP3405864A4 (ko) |
JP (2) | JP6788017B2 (ko) |
KR (2) | KR102455675B1 (ko) |
CN (2) | CN108885552B (ko) |
WO (1) | WO2017127631A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6788017B2 (ja) | 2016-01-22 | 2020-11-18 | 株式会社ソニー・インタラクティブエンタテインメント | 後方互換性のためのなりすましcpuid |
US11222082B2 (en) | 2018-03-30 | 2022-01-11 | Intel Corporation | Identification of a computer processing unit |
US10877751B2 (en) | 2018-09-29 | 2020-12-29 | Intel Corporation | Spoofing a processor identification instruction |
US11055094B2 (en) | 2019-06-26 | 2021-07-06 | Intel Corporation | Heterogeneous CPUID spoofing for remote processors |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020055828A1 (en) * | 2000-03-02 | 2002-05-09 | Texas Instruments Incorporated | Exporting on-chip data processor trace information with variable proportions of control and data |
US20020112145A1 (en) * | 2001-02-14 | 2002-08-15 | Bigbee Bryant E. | Method and apparatus for providing software compatibility in a processor architecture |
KR100538371B1 (ko) * | 2001-02-12 | 2005-12-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 분산데이터처리환경에 레거시 어플리케이션을 통합시키기위한 방법 및 시스템 |
US20090070760A1 (en) * | 2007-09-06 | 2009-03-12 | Mukund Khatri | Virtual Machine (VM) Migration Between Processor Architectures |
KR20120042762A (ko) * | 2009-06-19 | 2012-05-03 | 마이크로소프트 코포레이션 | 관리 시스템 확장성 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5790834A (en) * | 1992-08-31 | 1998-08-04 | Intel Corporation | Apparatus and method using an ID instruction to identify a computer microprocessor |
US6252900B1 (en) * | 1997-06-30 | 2001-06-26 | Integrated Telecom Express, Inc. | Forward compatible and expandable high speed communications system and method of operation |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US6691235B1 (en) * | 2000-07-27 | 2004-02-10 | International Business Machines Corporation | Automatic voltage regulation for processors having different voltage requirements and unified or split voltage planes |
US7081893B2 (en) | 2001-10-10 | 2006-07-25 | Sony Computer Entertainment America Inc. | System and method for point pushing to render polygons in environments with changing levels of detail |
US7046245B2 (en) | 2001-10-10 | 2006-05-16 | Sony Computer Entertainment America Inc. | System and method for environment mapping |
US8015567B2 (en) * | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US7698539B1 (en) * | 2003-07-16 | 2010-04-13 | Banning John P | System and method of instruction modification |
US7458078B2 (en) * | 2003-11-06 | 2008-11-25 | International Business Machines Corporation | Apparatus and method for autonomic hardware assisted thread stack tracking |
US7895473B2 (en) * | 2004-04-29 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for identifying access states for variables |
US7360027B2 (en) * | 2004-10-15 | 2008-04-15 | Intel Corporation | Method and apparatus for initiating CPU data prefetches by an external agent |
US8429418B2 (en) * | 2006-02-15 | 2013-04-23 | Intel Corporation | Technique for providing secure firmware |
US7950020B2 (en) * | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
US20080028033A1 (en) * | 2006-07-28 | 2008-01-31 | Kestrelink Corporation | Network directory file stream cache and id lookup |
US20080071502A1 (en) * | 2006-09-15 | 2008-03-20 | International Business Machines Corporation | Method and system of recording time of day clock |
JP5277961B2 (ja) | 2006-10-13 | 2013-08-28 | 日本電気株式会社 | 情報処理装置及びその故障隠蔽方法 |
US8149242B2 (en) | 2006-11-10 | 2012-04-03 | Sony Computer Entertainment Inc. | Graphics processing apparatus, graphics library module and graphics processing method |
US7802252B2 (en) * | 2007-01-09 | 2010-09-21 | International Business Machines Corporation | Method and apparatus for selecting the architecture level to which a processor appears to conform |
US8949713B1 (en) | 2008-06-30 | 2015-02-03 | Amazon Technologies, Inc. | Version-specific request processing |
WO2010002330A1 (en) * | 2008-07-03 | 2010-01-07 | Imsys Technologies Ab | Electronic timer system including look-up table based synchronization |
US9626206B2 (en) * | 2010-03-18 | 2017-04-18 | Microsoft Technology Licensing, Llc | Virtual machine homogenization to enable migration across heterogeneous computers |
US8566480B2 (en) * | 2010-06-23 | 2013-10-22 | International Business Machines Corporation | Load instruction for communicating with adapters |
US8782645B2 (en) * | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US9665368B2 (en) * | 2012-09-28 | 2017-05-30 | Intel Corporation | Systems, apparatuses, and methods for performing conflict detection and broadcasting contents of a register to data element positions of another register |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
EP3872767A1 (en) | 2014-04-05 | 2021-09-01 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9582381B2 (en) * | 2014-06-12 | 2017-02-28 | Unisys Corporation | Multi-threaded server control automation for disaster recovery |
US9760113B2 (en) | 2015-02-20 | 2017-09-12 | Sony Interactive Entertainment America Llc | Backward compatibility through use of spoof clock and fine grain frequency control |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US10235219B2 (en) | 2015-07-27 | 2019-03-19 | Sony Interactive Entertainment America Llc | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US10409613B2 (en) * | 2015-12-23 | 2019-09-10 | Intel Corporation | Processing devices to perform a key value lookup instruction |
JP6788017B2 (ja) | 2016-01-22 | 2020-11-18 | 株式会社ソニー・インタラクティブエンタテインメント | 後方互換性のためのなりすましcpuid |
-
2017
- 2017-01-20 JP JP2018538543A patent/JP6788017B2/ja active Active
- 2017-01-20 KR KR1020207032430A patent/KR102455675B1/ko active IP Right Grant
- 2017-01-20 EP EP17741982.7A patent/EP3405864A4/en active Pending
- 2017-01-20 WO PCT/US2017/014262 patent/WO2017127631A1/en active Application Filing
- 2017-01-20 CN CN201780007665.7A patent/CN108885552B/zh active Active
- 2017-01-20 CN CN202310197565.2A patent/CN116340022A/zh active Pending
- 2017-01-20 KR KR1020187024047A patent/KR102179237B1/ko active IP Right Grant
- 2017-01-20 US US15/411,310 patent/US11068291B2/en active Active
-
2020
- 2020-10-29 JP JP2020181308A patent/JP6960511B2/ja active Active
-
2021
- 2021-07-19 US US17/379,550 patent/US11847476B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020055828A1 (en) * | 2000-03-02 | 2002-05-09 | Texas Instruments Incorporated | Exporting on-chip data processor trace information with variable proportions of control and data |
KR100538371B1 (ko) * | 2001-02-12 | 2005-12-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 분산데이터처리환경에 레거시 어플리케이션을 통합시키기위한 방법 및 시스템 |
US20020112145A1 (en) * | 2001-02-14 | 2002-08-15 | Bigbee Bryant E. | Method and apparatus for providing software compatibility in a processor architecture |
US20090070760A1 (en) * | 2007-09-06 | 2009-03-12 | Mukund Khatri | Virtual Machine (VM) Migration Between Processor Architectures |
KR20120042762A (ko) * | 2009-06-19 | 2012-05-03 | 마이크로소프트 코포레이션 | 관리 시스템 확장성 |
Also Published As
Publication number | Publication date |
---|---|
JP2021022399A (ja) | 2021-02-18 |
EP3405864A1 (en) | 2018-11-28 |
JP6788017B2 (ja) | 2020-11-18 |
KR20200129196A (ko) | 2020-11-17 |
KR102179237B1 (ko) | 2020-11-16 |
US11068291B2 (en) | 2021-07-20 |
EP3405864A4 (en) | 2019-08-21 |
JP6960511B2 (ja) | 2021-11-05 |
US20170212774A1 (en) | 2017-07-27 |
CN116340022A (zh) | 2023-06-27 |
KR102455675B1 (ko) | 2022-10-17 |
WO2017127631A1 (en) | 2017-07-27 |
US11847476B2 (en) | 2023-12-19 |
JP2019503013A (ja) | 2019-01-31 |
CN108885552B (zh) | 2023-03-14 |
CN108885552A (zh) | 2018-11-23 |
US20210365282A1 (en) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847476B2 (en) | Spoofing CPUID for backwards compatibility | |
JP6507435B2 (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
US9916173B2 (en) | Facilitating execution of MMIO based instructions | |
JP2019504403A5 (ko) | ||
US7725894B2 (en) | Enhanced un-privileged computer instruction to store a facility list | |
RU2016127224A (ru) | Конфигурация архитектурного режима в вычислительной системе | |
US9753730B2 (en) | Decoding instructions from multiple instructions sets | |
RU2016126976A (ru) | Общая последовательность загрузки для управляющей сервисной программы, способной к инициализации во множественных архитектурах | |
GB2514882A (en) | Instruction emulation processors, methods, and systems | |
JP5703378B2 (ja) | アラインメント制御 | |
US20160048458A1 (en) | Computer Security Systems and Methods Using Hardware-Accelerated Access To Guest Memory From Below The Operating System | |
US11630687B2 (en) | Compacted context state management | |
CN105989758B (zh) | 地址翻译方法和装置 | |
US10564983B2 (en) | Multiprocessor initialization via firmware configuration | |
US11144329B2 (en) | Processor microcode with embedded jump table | |
CN110795231A (zh) | 一种虚拟cpu的处理方法及装置 | |
US12032485B2 (en) | 64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |