KR20170024111A - 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 - Google Patents
복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 Download PDFInfo
- Publication number
- KR20170024111A KR20170024111A KR1020177003198A KR20177003198A KR20170024111A KR 20170024111 A KR20170024111 A KR 20170024111A KR 1020177003198 A KR1020177003198 A KR 1020177003198A KR 20177003198 A KR20177003198 A KR 20177003198A KR 20170024111 A KR20170024111 A KR 20170024111A
- Authority
- KR
- South Korea
- Prior art keywords
- guest
- native
- instruction
- translation table
- translation
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 program code execution, e.g. Java virtual machine [JVM], interpreters or emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 program code execution, e.g. Java virtual machine [JVM], interpreters or emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
도 1은 본 발명의 일 실시예에 따른 아키텍처 애그노스틱 런타임 시스템의 개요도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 하드웨어 가속된 변환/JIT 계층을 묘사하는 다이어그램을 도시한다.
도 3은 본 발명의 일 실시예에 따른 하드웨어 가속된 런타임 변환/JIT 계층의 더 상세한 다이어그램을 도시한다.
도 4는 본 발명의 일 실시예에 따른 시스템 에뮬레이션 및 시스템 변환을 구현하기 위한 컴포넌트를 묘사하는 다이어그램을 도시한다.
도 5는 본 발명의 일 실시예에 따른 게스트 플래그 아키텍처 에뮬레이션(guest flag architecture emulation)을 묘사하는 다이어그램을 도시한다.
도 6은 본 발명의 일 실시예에 따른 통합된 레지스터 파일(unified register file)의 다이어그램을 도시한다.
도 7은 본 발명의 일 실시예에 따른 추측 아키텍처 상태(speculative architectural state) 및 비영속성 아키텍처 상태(transient architectural state)를 지원하는 통합된 새도우 레지스터 파일 및 파이프라인 아키텍처(unified shadow register file and pipeline architecture)(1300)를 도시한다.
도 8은 본 발명의 일 실시예에 따른 런 어헤드 배치/변환 프로세스(run ahead batch/conversion process)를 묘사하는 다이어그램을 도시한다.
도 9는 본 발명의 일 실시예에 따라 게스트 명령어 블록 및 그의 대응하는 네이티브 변환 블록이 캐시 내에 저장되는 방식을 예시하는 예시적인 하드웨어 가속된 변환 시스템의 다이어그램을 도시한다.
도 10은 본 발명의 일 실시예에 따른 하드웨어 가속된 변환 시스템의 더 상세한 예를 도시한다.
도 11은 본 발명의 일 실시예에 따른 이중 스코프 사용(dual scope usage)을 포함하는, 제 2 사용 모델의 다이어그램을 도시한다.
도 12는 본 발명의 일 실시예에 따라 비영속성 컨텍스트(transient context)로부터 복귀할 때 이전 컨텍스트를 저장 및 복원할 필요가 없는 비영속성 컨텍스트 스위칭을 포함하는 제 3 사용 모델의 다이어그램을 도시한다.
도 13은 본 발명의 일 실시예에 따라 후속 코드에 대한 번역이 필요하기 때문에 명령어 시퀀스에서 예외가 있는 경우를 묘사하는 다이어그램을 도시한다.
도 14는 본 발명의 일 실시예에 따라 비영속성 컨텍스트로부터 복귀할 때 이전 컨텍스트를 저장 및 복원할 필요 없는 비영속성 컨텍스트 스위칭을 포함하는, 제 4 사용 모델의 다이어그램을 도시한다.
도 15는 본 발명의 일 실시예에 따라 명령어를 분기(branch)의 앞으로 최적화하게 스케줄링하는 것을 예시하는 다이어그램을 도시한다.
도 16은 본 발명의 일 실시예에 따라 로드(load)를 스토어(store)의 앞으로 최적화게 스케줄링하는 것을 예시하는 다이어그램을 도시한다.
도 17은 본 발명의 일 실시예에 따른 스토어 필터링 알고리즘의 다이어그램을 도시한다.
도 18은 본 발명의 일 실시예에 따라 순차적으로 메모리로부터 읽는 로드를 구성하는 메모리 일관성 모델(memory consistency model)에서 로드가 비순차적(out of order)인 세마포어(semaphore) 구현을 도시한다.
도 19는 본 발명의 일 실시예에 따라 JIT 최적화를 통한 재정렬 프로세스의 다이어그램을 도시한다.
도 20은 본 발명의 일 실시예에 따라 JIT 최적화를 통한 재정렬 프로세스의 다이어그램을 도시한다.
도 21은 본 발명의 일 실시예에 따라 JIT 최적화를 통한 재정렬 프로세스의 다이어그램을 도시한다.
도 22는 본 발명의 일 실시예에 따라 JIT 최적화를 통한 스토어 앞에 재정렬된 로드를 예시하는 다이어그램을 도시한다.
도 23은 본 발명의 일 실시예에 따라 로드 및 스토어 명령어의 분할(load and store instruction splitting)에 관한 제 1 다이어그램을 도시한다.
도 24는 본 발명의 일 실시예에 따라 메모리 내에 저장된 코드 캐시 및 게스트 명령어 대 네이티브 명령어의 맵핑과 협력하여 CLB가 기능을 수행하는 방식을 예시하는 예시적인 흐름도를 도시한다.
도 25는 본 발명의 일 실시예에 따른 런 어헤드 런 타임 게스트 명령어 변환/디코딩 프로세스(run ahead run time guest instruction conversion/decoding process)의 다이어그램을 도시한다.
도 26은 본 발명의 일 실시예에 따른 게스트 명령어 시퀀스를 갖는 변환 테이블 및 네이티브 명령어 맵핑을 갖는 네이티브 맵핑 테이블을 묘사하는 다이어그램을 도시한다.
Claims (20)
- 애그노스틱 런타임 아키텍처(agnostic runtime architecture)용 시스템으로서,
시스템 에뮬레이션/가상화 변환기와,
애플리케이션 코드 변환기와,
시스템 변환기 - 상기 시스템 에뮬레이션/가상화 변환기 및 상기 애플리케이션 코드 변환기는 시스템 에뮬레이션 프로세스를 구현하고, 상기 시스템 변환기는 게스트 이미지로부터의 코드를 실행하기 위한 시스템 변환 프로세스를 구현함 - 를 포함하며,
상기 시스템 변환기는,
복수의 게스트 명령어에 액세스하기 위한 게스트 페치 로직 컴포넌트와,
상기 게스트 페치 로직 컴포넌트 및 분기 예측 컴포넌트에 연결되어 상기 복수의 게스트 명령어를 게스트 명령어 블록으로 조립하기 위한 게스트 페치 버퍼와,
상기 게스트 페치 버퍼에 연결되어, 상기 게스트 명령어 블록을 대응하는 네이티브 변환 블록으로 번역하기 위한 제 1 레벨 변환 테이블 및 제 2 레벨 변환 테이블을 포함하는 복수의 변환 테이블과,
상기 변환 테이블에 연결되어 상기 대응하는 네이티브 변환 블록을 저장하기 위한 네이티브 캐시와,
상기 네이티브 캐시에 연결되어 상기 게스트 명령어 블록에서 대응하는 네이티브 변환 블록으로의 맵핑을 저장하기 위한 변환 룩 어사이드 버퍼를 더 포함 -
게스트 명령어의 후속 요청 시, 상기 변환 룩 어사이드 버퍼는 히트(a hit)가 발생하였는지를 판정하기 위해 인덱스되며, 상기 맵핑은 상기 게스트 명령어가 상기 네이티브 캐시 내에서 대응하는 변환된 네이티브 명령어를 갖고 있음을 표시함 - 하며,
상기 히트에 응답하여 상기 변환 룩 어사이드 버퍼는 상기 번역된 네이티브 명령어를 실행을 위해 포워딩하는
애그노스틱 런타임 아키텍처용 시스템.
- 제 1 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 시스템 메모리에 저장된 변환 테이블 버퍼와 일관성 있게 유지되는 고속의 저 지연 캐시로서 구현되는
애그노스틱 런타임 아키텍처용 시스템.
- 제 1 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 네이티브 명령어를 게스트 명령어로 대체하기 위한 대체 필드, 및 상기 제 1 레벨 변환 테이블과 제 2 레벨 변환 테이블을 제어하기 위한 제어 필드를 포함하는
애그노스틱 런타임 아키텍처용 시스템.
- 제 1 항에 있어서,
상기 제 1 레벨 변환 테이블은 상기 게스트 명령어에 대해 제 1 레벨 번역을 수행하도록 사용되는
애그노스틱 런타임 아키텍처용 시스템.
- 제 4 항에 있어서,
상기 제 1 레벨 변환 테이블은 복수의 게스트 명령어를 인식하도록 사용되는 해시를 포함하는
애그노스틱 런타임 아키텍처용 시스템.
- 제 5 항에 있어서,
상기 복수의 게스트 명령어는 적어도 하나의 프리픽스 게스트 명령어 및 상기 프리픽스 게스트 명령어와 연관된 복수의 오피코드(opcode)를 포함하는
애그노스틱 런타임 아키텍처용 시스템.
- 프로세서를 위한 명령어를 번역하기 위한 시스템으로서,
시스템 에뮬레이션/가상화 변환기와,
애플리케이션 코드 변환기와,
시스템 변환기 - 상기 시스템 에뮬레이션/가상화 변환기 및 상기 애플리케이션 코드 변환기는 시스템 에뮬레이션 프로세스를 구현하고, 상기 시스템 변환기는 게스트 이미지로부터의 코드를 실행하기 위한 시스템 변환 프로세스를 구현함 - 를 포함하며,
상기 시스템 변환기는,
복수의 게스트 명령어에 액세스하기 위한 게스트 페치 로직 컴포넌트와,
상기 게스트 페치 로직 컴포넌트 및 분기 예측 컴포넌트에 연결되어 상기 복수의 게스트 명령어를 게스트 명령어 블록으로 조립하기 위한 게스트 페치 버퍼와,
상기 게스트 페치 버퍼에 연결되어, 상기 게스트 명령어 블록을 대응하는 네이티브 변환 블록으로 번역하기 위한 제 1 레벨 변환 테이블 및 제 2 레벨 변환 테이블을 포함하는 복수의 변환 테이블과,
상기 변환 테이블에 연결되어 상기 대응하는 네이티브 변환 블록을 저장하기 위한 네이티브 캐시와,
상기 네이티브 캐시에 연결되어 상기 게스트 명령어 블록에서 대응하는 네이티브 변환 블록으로의 맵핑을 저장하기 위한 변환 룩 어사이드 버퍼를 더 포함 -
게스트 명령어의 후속 요청 시, 상기 변환 룩 어사이드 버퍼는 히트가 발생하였는지를 판정하기 위해 인덱스되며, 상기 맵핑은 상기 게스트 명령어가 상기 네이티브 캐시 내에서 대응하는 변환된 네이티브 명령어를 갖고 있음을 표시함 - 하며,
상기 히트에 응답하여 상기 변환 룩 어사이드 버퍼는 상기 번역된 네이티브 명령어를 실행을 위해 포워딩하는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 제 7 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 시스템 메모리에 저장된 변환 테이블 버퍼와 일관성 있게 유지되는 고속의 저 지연 캐시로서 구현되는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 제 7 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 네이티브 명령어를 게스트 명령어로 대체하기 위한 대체 필드, 및 상기 제 1 레벨 변환 테이블과 제 2 레벨 변환 테이블을 제어하기 위한 제어 필드를 포함하는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 제 7 항에 있어서,
상기 제 1 레벨 변환 테이블은 상기 게스트 명령어에 대해 제 1 레벨 번역을 수행하도록 사용되는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 제 10 항에 있어서,
상기 제 1 레벨 변환 테이블은 복수의 게스트 명령어를 인식하도록 사용되는 해시를 포함하는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 제 11 항에 있어서,
상기 복수의 게스트 명령어는 적어도 하나의 프리픽스 게스트 명령어 및 상기 프리픽스 게스트 명령어와 연관된 복수의 오피코드를 포함하는
프로세서를 위한 명령어를 번역하기 위한 시스템.
- 명령어를 번역하는 방법을 구현하는 마이크로프로세서로서,
시스템 에뮬레이션/가상화 변환기와,
애플리케이션 코드 변환기와,
시스템 변환기 - 상기 시스템 에뮬레이션/가상화 변환기 및 상기 애플리케이션 코드 변환기는 시스템 에뮬레이션 프로세스를 구현하고, 상기 시스템 변환기는 게스트 이미지로부터의 코드를 실행하기 위한 시스템 변환 프로세스를 구현함 - 를 포함하며,
상기 시스템 변환기는,
복수의 게스트 명령어에 액세스하기 위한 게스트 페치 로직 컴포넌트와,
상기 게스트 페치 로직 컴포넌트 및 분기 예측 컴포넌트에 연결되어 상기 복수의 게스트 명령어를 게스트 명령어 블록으로 조립하기 위한 게스트 페치 버퍼와,
상기 게스트 페치 버퍼에 연결되어, 상기 게스트 명령어 블록을 대응하는 네이티브 변환 블록으로 번역하기 위한 제 1 레벨 변환 테이블 및 제 2 레벨 변환 테이블을 포함하는 복수의 변환 테이블과,
상기 변환 테이블에 연결되어 상기 대응하는 네이티브 변환 블록을 저장하기 위한 네이티브 캐시와,
상기 네이티브 캐시에 연결되어 상기 게스트 명령어 블록에서 대응하는 네이티브 변환 블록으로의 맵핑을 저장하기 위한 변환 룩 어사이드 버퍼를 더 포함 -
게스트 명령어의 후속 요청 시, 상기 변환 룩 어사이드 버퍼는 히트가 발생하였는지를 판정하기 위해 인덱스되며, 상기 맵핑은 상기 게스트 명령어가 상기 네이티브 캐시 내에서 대응하는 변환된 네이티브 명령어를 갖고 있음을 표시함 - 하며,
상기 히트에 응답하여 상기 변환 룩 어사이드 버퍼는 상기 번역된 네이티브 명령어를 실행을 위해 포워딩하는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 13 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 시스템 메모리에 저장된 변환 테이블 버퍼와 일관성 있게 유지되는 고속의 저 지연 캐시로서 구현되는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 13 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 네이티브 명령어를 게스트 명령어로 대체하기 위한 대체 필드, 및 상기 제 1 레벨 변환 테이블과 제 2 레벨 변환 테이블을 제어하기 위한 제어 필드를 포함하는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 13 항에 있어서,
상기 제 1 레벨 변환 테이블은 상기 게스트 명령어에 대해 제 1 레벨 번역을 수행하도록 사용되는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 16 항에 있어서,
상기 제 1 레벨 변환 테이블은 복수의 게스트 명령어를 인식하도록 사용되는 해시를 포함하는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 17 항에 있어서,
상기 복수의 게스트 명령어는 적어도 하나의 프리픽스 게스트 명령어 및 상기 프리픽스 게스트 명령어와 연관된 복수의 오피코드를 포함하는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 13 항에 있어서,
상기 제 1 레벨 변환 테이블 및 상기 제 2 레벨 변환 테이블은 복수의 마스크 및 복수의 태그를 포함하며, 상기 태그는 패턴 매치를 결정하고 마스크는 패턴의 비 관련 비트(non-relevant bit)를 숨기는
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
- 제 19 항에 있어서,
상기 복수의 마스크 및 상기 복수의 태그는 구성 가능한 디코딩을 가능할 수 있게 하도록 소프트웨어 적재 가능한
명령어를 번역하는 방법을 구현하는 마이크로프로세서.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462029383P | 2014-07-25 | 2014-07-25 | |
| US62/029,383 | 2014-07-25 | ||
| US14/806,169 US11281481B2 (en) | 2014-07-25 | 2015-07-22 | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
| US14/806,169 | 2015-07-22 | ||
| PCT/US2015/041847 WO2016014863A1 (en) | 2014-07-25 | 2015-07-23 | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187020983A Division KR20180094101A (ko) | 2014-07-25 | 2015-07-23 | 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170024111A true KR20170024111A (ko) | 2017-03-06 |
| KR101882348B1 KR101882348B1 (ko) | 2018-07-27 |
Family
ID=55163803
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187020983A Ceased KR20180094101A (ko) | 2014-07-25 | 2015-07-23 | 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
| KR1020177003198A Expired - Fee Related KR101882348B1 (ko) | 2014-07-25 | 2015-07-23 | 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187020983A Ceased KR20180094101A (ko) | 2014-07-25 | 2015-07-23 | 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US11281481B2 (ko) |
| EP (1) | EP3172661A4 (ko) |
| JP (1) | JP6690812B2 (ko) |
| KR (2) | KR20180094101A (ko) |
| CN (1) | CN107077369A (ko) |
| WO (1) | WO2016014863A1 (ko) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9733909B2 (en) | 2014-07-25 | 2017-08-15 | Intel Corporation | System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address |
| US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
| US10353680B2 (en) | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
| US20160026484A1 (en) * | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
| CN106716363B (zh) * | 2014-07-25 | 2021-04-09 | 英特尔公司 | 使用转换后备缓冲器来实现指令集不可知的运行时架构 |
| EP3534225B1 (de) * | 2018-03-02 | 2022-02-09 | Siemens Aktiengesellschaft | Baugruppe für die industrielle prozessautomatisierung und verfahren zum betrieb und projektierung |
| CN113490924A (zh) * | 2019-02-22 | 2021-10-08 | 英特尔公司 | 用于运行时处理器验证的ept和影子页表之间的动态切换 |
| CN112667241B (zh) * | 2019-11-08 | 2023-09-29 | 安徽寒武纪信息科技有限公司 | 机器学习指令的转换方法及装置、板卡、主板、电子设备 |
| US11803383B2 (en) | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
| US11604643B2 (en) | 2020-12-29 | 2023-03-14 | Shanghai Zhaoxin Semiconductor Co., Ltd. | System for executing new instructions and method for executing new instructions |
| US11625247B2 (en) | 2020-12-29 | 2023-04-11 | Shanghai Zhaoxin Semiconductor Co., Ltd. | System for executing new instructions and method for executing new instructions |
| US11803381B2 (en) | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Instruction simulation device and method thereof |
| US11789736B2 (en) | 2020-12-29 | 2023-10-17 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
| US11669328B2 (en) | 2020-12-29 | 2023-06-06 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for converting instructions |
| US11803387B2 (en) | 2020-12-29 | 2023-10-31 | Shanghai Zhaoxin Semiconductor Co., Ltd. | System for executing new instructions and method for executing new instructions |
| US11914997B2 (en) | 2020-12-29 | 2024-02-27 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Method and system for executing new instructions |
| CN117971117B (zh) * | 2023-12-29 | 2025-12-16 | 河南昆仑技术有限公司 | 一种计算设备及信息交互方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120198209A1 (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 |
| WO2012103367A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
| US20130024661A1 (en) * | 2011-01-27 | 2013-01-24 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
| KR20130122619A (ko) * | 2010-10-08 | 2013-11-07 | 마이크로소프트 코포레이션 | 선택된 실행 런타임을 갖는 실행을 위한 사용자 코드의 런타임 독립적 표현 |
| WO2013188306A1 (en) * | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
Family Cites Families (84)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4456954A (en) | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
| AU6629894A (en) | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
| WO1994027214A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
| US5517651A (en) | 1993-12-29 | 1996-05-14 | Intel Corporation | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes |
| DE69506623T2 (de) | 1994-06-03 | 1999-07-22 | Motorola, Inc., Schaumburg, Ill. | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb |
| US5708837A (en) | 1995-06-30 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for register renaming in a computer system using a separate arithmetic available queue |
| US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
| US5802373A (en) | 1996-01-29 | 1998-09-01 | Digital Equipment Corporation | Method for providing a pipeline interpreter for a variable length instruction set |
| 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 |
| US6199152B1 (en) | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
| US6139199A (en) | 1997-06-11 | 2000-10-31 | Sun Microsystems, Inc. | Fast just-in-time (JIT) scheduler |
| US6094716A (en) | 1998-07-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Register renaming in which moves are accomplished by swapping rename tags |
| US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
| US6662273B1 (en) | 2000-09-29 | 2003-12-09 | Intel Corporation | Least critical used replacement with critical cache |
| US7620955B1 (en) | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
| US6907519B2 (en) * | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
| US20030101439A1 (en) | 2001-11-29 | 2003-05-29 | Giuseppe Desoli | System and method for supporting emulation of a computer system through dynamic code caching and transformation |
| US7146607B2 (en) | 2002-09-17 | 2006-12-05 | International Business Machines Corporation | Method and system for transparent dynamic optimization in a multiprocessing environment |
| US7203932B1 (en) | 2002-12-30 | 2007-04-10 | Transmeta Corporation | Method and system for using idiom recognition during a software translation process |
| US6981128B2 (en) | 2003-04-24 | 2005-12-27 | International Business Machines Corporation | Atomic quad word storage in a simultaneous multithreaded system |
| US7069389B2 (en) | 2003-11-26 | 2006-06-27 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
| US20050149915A1 (en) | 2003-12-29 | 2005-07-07 | Intel Corporation | Methods and apparatus for optimizing a program undergoing dynamic binary translation using profile information |
| US7216220B2 (en) | 2004-07-14 | 2007-05-08 | Stexar Corp. | Microprocessor with customer code store |
| US20060026371A1 (en) | 2004-07-30 | 2006-02-02 | Chrysos George Z | Method and apparatus for implementing memory order models with order vectors |
| US7302527B2 (en) | 2004-11-12 | 2007-11-27 | International Business Machines Corporation | Systems and methods for executing load instructions that avoid order violations |
| US9058292B2 (en) | 2004-12-29 | 2015-06-16 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
| US7734895B1 (en) | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
| US7450131B2 (en) | 2005-09-30 | 2008-11-11 | Intel Corporation | Memory layout for re-ordering instructions using pointers |
| US7913236B2 (en) | 2006-09-29 | 2011-03-22 | Intel Corporation | Method and apparatus for performing dynamic optimization for software transactional memory |
| WO2008061154A2 (en) | 2006-11-14 | 2008-05-22 | Soft Machines, Inc. | Apparatus and method for processing instructions in a multi-threaded architecture using context switching |
| US8327354B1 (en) * | 2007-05-31 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Virtualization with binary translation |
| US8453128B2 (en) | 2007-09-28 | 2013-05-28 | Oracle America, Inc. | Method and system for implementing a just-in-time compiler |
| US7844954B2 (en) | 2007-11-06 | 2010-11-30 | Vmware, Inc. | Using branch instruction counts to facilitate replay of virtual machine instruction execution |
| US9189233B2 (en) | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
| US8959277B2 (en) | 2008-12-12 | 2015-02-17 | Oracle America, Inc. | Facilitating gated stores without data bypass |
| US8078854B2 (en) * | 2008-12-12 | 2011-12-13 | Oracle America, Inc. | Using register rename maps to facilitate precise exception semantics |
| US8667476B1 (en) | 2009-01-20 | 2014-03-04 | Adaptmicrosys LLC | Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system |
| US8060722B2 (en) * | 2009-03-27 | 2011-11-15 | Vmware, Inc. | Hardware assistance for shadow page table coherence with guest page mappings |
| US8443156B2 (en) * | 2009-03-27 | 2013-05-14 | Vmware, Inc. | Virtualization system using hardware assistance for shadow page table coherence |
| US9766911B2 (en) * | 2009-04-24 | 2017-09-19 | Oracle America, Inc. | Support for a non-native application |
| US8099566B2 (en) | 2009-05-15 | 2012-01-17 | Oracle America, Inc. | Load/store ordering in a threaded out-of-order processor |
| US8335911B2 (en) | 2009-05-21 | 2012-12-18 | Oracle America, Inc. | Dynamic allocation of resources in a threaded, heterogeneous processor |
| TWI389026B (zh) | 2009-06-08 | 2013-03-11 | Rdc Semiconductor Co Ltd | 暫存器更名表的回復方法與回復系統 |
| 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 |
| US8364461B2 (en) | 2009-11-09 | 2013-01-29 | International Business Machines Corporation | Reusing invalidated traces in a system emulator |
| US8984231B2 (en) | 2009-12-22 | 2015-03-17 | Intel Corporation | Methods and apparatus to perform adaptive pre-fetch operations in managed runtime environments |
| US8595471B2 (en) | 2010-01-22 | 2013-11-26 | Via Technologies, Inc. | Executing repeat load string instruction with guaranteed prefetch microcode to prefetch into cache for loading up to the last value in architectural register |
| US9928105B2 (en) | 2010-06-28 | 2018-03-27 | Microsoft Technology Licensing, Llc | Stack overflow prevention in parallel execution runtime |
| CN101968746B (zh) | 2010-09-02 | 2016-03-02 | 北京航空航天大学 | 一种内核虚拟机组织架构模式的实现方法 |
| WO2012087330A2 (en) | 2010-12-23 | 2012-06-28 | Intel Corporation | Test, validation, and debug architecture |
| KR101612594B1 (ko) * | 2011-01-27 | 2016-04-14 | 소프트 머신즈, 인크. | 프로세서의 변환 룩 어사이드 버퍼를 이용하는 게스트 명령-네이티브 명령 레인지 기반 매핑 |
| WO2012103373A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Variable caching structure for managing physical storage |
| US8673689B2 (en) | 2011-01-28 | 2014-03-18 | Marvell World Trade Ltd. | Single layer BGA substrate process |
| US9274795B2 (en) * | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
| US8756589B2 (en) | 2011-06-14 | 2014-06-17 | Microsoft Corporation | Selectable dual-mode JIT compiler for SIMD instructions |
| EP2783282B1 (en) | 2011-11-22 | 2020-06-24 | Intel Corporation | A microprocessor accelerated code optimizer and dependency reordering method |
| CN104040490B (zh) | 2011-11-22 | 2017-12-15 | 英特尔公司 | 用于多引擎微处理器的加速的代码优化器 |
| US20150039859A1 (en) | 2011-11-22 | 2015-02-05 | Soft Machines, Inc. | Microprocessor accelerated code optimizer |
| US9558092B2 (en) | 2011-12-12 | 2017-01-31 | Microsoft Technology Licensing, Llc | Runtime-agnostic management of applications |
| US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
| CN104303168B (zh) | 2012-04-25 | 2016-12-07 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
| WO2013188696A2 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | An instruction definition to implement load store reordering and optimization |
| JP2014006807A (ja) | 2012-06-26 | 2014-01-16 | Fujitsu Ltd | 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法 |
| US10157063B2 (en) * | 2012-09-28 | 2018-12-18 | Intel Corporation | Instruction and logic for optimization level aware branch prediction |
| US9141361B2 (en) | 2012-09-30 | 2015-09-22 | Intel Corporation | Method and apparatus for performance efficient ISA virtualization using dynamic partial binary translation |
| US9424046B2 (en) | 2012-10-11 | 2016-08-23 | Soft Machines Inc. | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric |
| US8856769B2 (en) | 2012-10-23 | 2014-10-07 | Yong-Kyu Jung | Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system |
| US9569342B2 (en) | 2012-12-20 | 2017-02-14 | Microsoft Technology Licensing, Llc | Test strategy for profile-guided code execution optimizers |
| US9690640B2 (en) | 2013-09-26 | 2017-06-27 | Intel Corporation | Recovery from multiple data errors |
| KR20160074647A (ko) | 2013-10-25 | 2016-06-28 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 로드 및 저장 유닛과 데이터 캐시에 대한 순서화 및 대역폭 향상 |
| US9213563B2 (en) | 2013-12-30 | 2015-12-15 | Unisys Corporation | Implementing a jump instruction in a dynamic translator that uses instruction code translation and just-in-time compilation |
| US9183018B2 (en) | 2013-12-30 | 2015-11-10 | Andrew T Jennings | Dynamic on/off just-in-time compilation in a dynamic translator using instruction code translation |
| US9201635B2 (en) | 2013-12-30 | 2015-12-01 | Unisys Corporation | Just-in-time dynamic translation for translation, compilation, and execution of non-native instructions |
| US9524178B2 (en) | 2013-12-30 | 2016-12-20 | Unisys Corporation | Defining an instruction path to be compiled by a just-in-time (JIT) compiler |
| US9703948B2 (en) | 2014-03-28 | 2017-07-11 | Intel Corporation | Return-target restrictive return from procedure instructions, processors, methods, and systems |
| US9483295B2 (en) | 2014-03-31 | 2016-11-01 | International Business Machines Corporation | Transparent dynamic code optimization |
| US9514045B2 (en) | 2014-04-04 | 2016-12-06 | International Business Machines Corporation | Techniques for implementing barriers to efficiently support cumulativity in a weakly-ordered memory system |
| US20160026484A1 (en) | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
| US20160026486A1 (en) | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture |
| US9733909B2 (en) | 2014-07-25 | 2017-08-15 | Intel Corporation | System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address |
| US10353680B2 (en) | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
| US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
| CN106716363B (zh) | 2014-07-25 | 2021-04-09 | 英特尔公司 | 使用转换后备缓冲器来实现指令集不可知的运行时架构 |
-
2015
- 2015-07-22 US US14/806,169 patent/US11281481B2/en not_active Expired - Fee Related
- 2015-07-23 EP EP15824322.0A patent/EP3172661A4/en not_active Withdrawn
- 2015-07-23 JP JP2017503999A patent/JP6690812B2/ja active Active
- 2015-07-23 WO PCT/US2015/041847 patent/WO2016014863A1/en not_active Ceased
- 2015-07-23 KR KR1020187020983A patent/KR20180094101A/ko not_active Ceased
- 2015-07-23 CN CN201580051907.3A patent/CN107077369A/zh active Pending
- 2015-07-23 KR KR1020177003198A patent/KR101882348B1/ko not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130122619A (ko) * | 2010-10-08 | 2013-11-07 | 마이크로소프트 코포레이션 | 선택된 실행 런타임을 갖는 실행을 위한 사용자 코드의 런타임 독립적 표현 |
| US20120198209A1 (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 |
| WO2012103367A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Guest to native block address mappings and management of native code storage |
| US20130024661A1 (en) * | 2011-01-27 | 2013-01-24 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
| WO2013188306A1 (en) * | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
Non-Patent Citations (1)
| Title |
|---|
| Abhishek Deb 외 2명. 'SoftHV: a HW/SW co-designed processor with horizontal and vertical fusion'. Computing Frontiers, 2011.5., pp.1-10. * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20180094101A (ko) | 2018-08-22 |
| KR101882348B1 (ko) | 2018-07-27 |
| JP2017526059A (ja) | 2017-09-07 |
| JP6690812B2 (ja) | 2020-04-28 |
| EP3172661A4 (en) | 2018-03-28 |
| US20160026482A1 (en) | 2016-01-28 |
| US11281481B2 (en) | 2022-03-22 |
| EP3172661A1 (en) | 2017-05-31 |
| WO2016014863A1 (en) | 2016-01-28 |
| CN107077369A (zh) | 2017-08-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101900763B1 (ko) | 명령어 집합의 애그노스틱 런타임 아키텍처를 구현하도록 마이크로명령어 시퀀스를 최적화된 마이크로명령어 시퀀스로 재정렬하는 할당 및 발행 스테이지 | |
| KR101882348B1 (ko) | 복수의 변환 테이블을 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현 | |
| KR101882429B1 (ko) | 명령어 집합의 애그노스틱 런타임 아키텍처용 시스템 | |
| KR101882346B1 (ko) | 런 어헤드 런 타임 게스트 명령어 변환/디코딩 프로세스 및 게스트 코드가 명령어 시퀀스에서 게스트 분기의 타겟으로부터 프리페치되는 프리페칭 프로세스를 구현하는 시스템 변환기 | |
| KR101983243B1 (ko) | 로드가 동일한 어드레스로 오는 다른 로드의 앞으로 디스패치되지 않게 하는 것을 보장하는 jit(just in time) 최적화를 통한 재정렬 프로세스를 구현하는 시스템 변환기 | |
| KR101882431B1 (ko) | 게스트 이미지로부터 코드를 실행하기 위한 jit 최적화기를 실행하는 시스템 변환기 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| A107 | Divisional application of patent | ||
| GRNT | Written decision to grant | ||
| PA0104 | Divisional application for international application |
St.27 status event code: A-0-1-A10-A18-div-PA0104 St.27 status event code: A-0-1-A10-A16-div-PA0104 |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20210629 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20220721 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20220721 |