KR20160033517A - 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 - Google Patents

인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 Download PDF

Info

Publication number
KR20160033517A
KR20160033517A KR1020140124529A KR20140124529A KR20160033517A KR 20160033517 A KR20160033517 A KR 20160033517A KR 1020140124529 A KR1020140124529 A KR 1020140124529A KR 20140124529 A KR20140124529 A KR 20140124529A KR 20160033517 A KR20160033517 A KR 20160033517A
Authority
KR
South Korea
Prior art keywords
interrupt
guest
host
virtualization
virtual
Prior art date
Application number
KR1020140124529A
Other languages
English (en)
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 한국전자통신연구원
Priority to KR1020140124529A priority Critical patent/KR20160033517A/ko
Priority to US14/825,409 priority patent/US20160085568A1/en
Publication of KR20160033517A publication Critical patent/KR20160033517A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 하이브리드 가상화 방법을 통해 Interrupt latency 를 줄이는 것이 목적이다. 이를 위해서, HOST 에서 수행되는 프로그램과 GUEST 에서 수행되는 프로그램을 동시에 이용할 수 있도록 하는 VMM(Virtual Machine Manager)가 동작하는 단계;와 상기 VMM가 상기 GUEST 에게 Virtual Interrupt Configuration Register를 제공하는 단계; 및 'trap and emulate' 방법을 이용하는 완전 가상화(full virtualization)와 상기 GUEST가 Interrupt Control Register를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 Interrupt latency를 줄이는 단계;를 포함하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법이 제공된다.

Description

인터럽트 컨트롤러를 위한 하이브리드 가상화 방법{HYBRID VIRTUALIZATION SCHEME FOR INTERRUPT CONTROLLER}
본 발명은 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법에 대한 것으로, 보다 상세하게는 완전 가상화(full virtualization)와 부분 가상화(partial virtualization)를 포함하는 하이브리드 가상화를 통해서 Interrupt latency를 줄이는 방법에 대한 것이다.
인터럽트(Interrupt)는 실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것으로, 인터럽트 요인이 되는 조건이 생겼을 때 실행 중인 프로그램을 중단하여 강제적으로 특정한 주소로 제어를 옮기고, 준비되어 있는 인터럽트 처리 프로그램을 실행시키며, 그 처리가 끝나면 원래의 프로그램으로 되돌아가서 계속 실행시키는 것을 의미한다.
이러한 인터럽트는 프로그램 처리의 효율화, 입출력 장치의 동시 동작 온라인 처리의 효율화를 기할 수 있다. 인터럽트 요인의 종류로는 입출력 종료 인터럽트, 프로그램 인터럽트, 감시 프로그램 호출, 장해 인터럽트 등이 있다.
인터럽트 처리에 관한 특징은 다음과 같다.
IRQ(Interrupt Request)번호를 부여하려 인터럽트를 관리한다. 프로세스가 IRQ에서 인터럽트가 생성된 사실을 감지하면 하던 일을 중지하고,인터럽트 문맥에서 ISR(Interrupt Service Routine)을 호출한다.
인터럽트는 다른 작업을 중지시키면서 실행되는 우선시되는 작업인 만큼 그에 합당하는 다음과 같은 제한이 따른다.
인터럽트 문맥에서 잠드는 코드는 불가능하다.
사용자 영역과 직접 자료를 교환하지 못한다.
다른 작업을 방해하지 않도록 빠르고 완벽한 작업을 처리해야 한다.
우선순위가 더 높고 IRQ와 관련이 있는 처리기는 인터럽트를 걸 수 있다.
최근에 컴퓨팅 환경에서 가상화(Virtualization)라는 용어가 자주 사용되는데, 가상화는 물리적으로 다른 시스템을 논리적으로 통합하거나 반대로 하나의 시스템을 논리적으로 분할해 자원을 효율적으로 사용케 하는 기술을 말한다. 이를 통해 서로 다른 기종의 서버와 스토리지도 연결해 쓸 수 있으며 한 시스템에서 파티셔닝을 통해 업무간 간섭 없이 서로 다른 종류의 업무를 한번에 처리할 수도 있다.
이러한 가상화는 가상머신(VM:Virtual Machine)을 통해서 구현된다.
가상머신은 물리적인 컴퓨터에서 구동되는 운영체제와 응용프로그램으로 이루어진 소프트웨어 컨테이너를 지칭한다.
하나의 가상머신은 물리적인 컴퓨터처럼 구동되고 가상자원 즉, vCPU, vMem, vDisk, vNIC등을 가지고 있다. 따라서, 운영체제, 어플리케이션 또는 다른 컴퓨터의 네트워크 등은 가상머신과 물리적인 장치의 차이를 알지 못한다. 게다가 가상머신은 하드웨어 구성요소가 전혀 없는 소프트웨어로 구성되므로 물리적인 하드웨어를 넘어서는 여러가지 장점을 가지고 있다.
예를 들어 가상화를 이용하여 동일한 머신 상에서 2개 이상의 운영 프로그램을 동시에 실행할 수 있다. 운영 프로그램은 물리적 머신에 대한 액세스(Access)가 제어되기 때문에 서로 간섭하는 것이 방지된다.
일반적으로, 프로세서 또는 컴퓨터 시스템의 가상화는 운영 프로그램이 완전한 제어를 갖게 되는 가상 머신에 대한 액세스를 하나 이상의 운영 프로그램에 제공하는 단계를 포함할 수 있으나, 물리적 머신의 제어는 VMM(Virtual Machine Manager)에 의해 수행된다.
가상 머신 요소는 VMM이 가상 머신에, 적어도 일시적으로, 할당하는 하드웨어에 의해 구현될 수 있고, 소프트웨어적으로 에뮬레이션 될 수 있다. 각각의 운영 프로그램은 GUEST로 불릴 수 있다.
가상화는 VMM 및 관련 가상 머신이 실행하고 있는 물리적 머신에서 특정 하드웨어 가상화 지원없이 소프트웨어적으로 구현될 수 있다.
가상화에서 나타나는 한가지 문제점은 인터럽트 전달의 대기시간(latency)이다. 상술한 바와 같이, 주변 장치는 가상 머신에 의한 사용을 위해 할당될 수 있다. 이러한 주변 장치들은 가상 머신의 소프트웨어에 의해 처리될 인터럽트들을 발생시킬 수 있다. 비-가상화 환경에서, 인터럽트 처리 대기시간은 비교적 짧을 수 있다. 가상화 환경에서, 인터럽트는 일반적으로 VMM에 의해 인터셉트되고, VMM에 의해 처리되며, 일부 종류의 소프트웨어 메커니즘을 이용하여 VMM에 의해 표적 가상 머신에 전달된다.
종래의 가상화 방법인 'trap and emulate'은 하드웨어가 GUEST 하이퍼바이저(hypervisor)에 의해 발행된 개별 가상화 명령어들을 트랩하고 루트 모드 하이퍼바이저가 그들 거동을 에뮬레이션하도록 하는 것을 수반한다.
그런데 임계 코드 경로에서의 높은 빈도의 가상화 명령어들은 이 'trap and emulate' 메커니즘을 엄청나게 느리게 하는 문제가 있다.
대한민국 공개특허 제10-2014-0054349호 '가상화 처리 방법, 그에 관한 장치, 및 컴퓨터 시스템'에는 가상화 시스템의 성능 최적화 및 호환성에 관한 특징이 기술되어 있으나, 상술한 'trap and emulate' 로 인한 Interrupt latency 를 해결하지는 못한다.
본 발명은 종래의 문제점을 해결하기 위해서, 하이브리드 가상화 방법을 통해 Interrupt latency 를 줄이는 것이 목적이다.
본 발명의 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일측에 따르면, HOST 에서 수행되는 프로그램과 GUEST 에서 수행되는 프로그램을 동시에 이용할 수 있도록 하는 VMM(Virtual Machine Manager)가 동작하는 단계;와 상기 VMM가 상기 GUEST 에게 Virtual Interrupt Configuration Register를 제공하는 단계; 및 'trap and emulate' 방법을 이용하는 완전 가상화(full virtualization)와 상기 GUEST가 Interrupt Control Register를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 Interrupt latency를 줄이는 단계;를 포함하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법이 제공된다.
여기서, 상기 HOST는 실제 물리적인 하드웨어에서 구동되는 운영체제(OS : Operating System)이고, 상기 GUEST는 가상머신(VM : Virture Machine)에서 구동되는 운영체제인 것을 특징으로 할 수 있다.
여기서, 상기 'trap and emulate' 방법을 이용하는 완전 가상화(full virtualization)와 상기 GUEST가 Interrupt Control Register를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 Interrupt latency를 줄이는 단계;는, 현재 수행되는 동작이 상기 HOST에서 수행되어야 할 동작인지 상기 GUEST에서 수행되어야 할 동작인지를 판단하는 단계; 및 상기 HOST에서 수행되어야 할 동작인 경우에는 상기 VMM이 하드웨어 Interrupt Controller의 Physical Interrupt Configuration Register에 액세스(access)하여 해당 ISR(Interrupt service routine)을 수행하고, 상기 GUEST에서 수행되어야 할 동작인 경우에는 상기 GUEST가 직접 상기 Virtual Interrupt Configuration Register를 통해서 해당 ISR을 수행하는 단계;를 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 현재 수행되는 동작이 상기 HOST에서 수행되어야 할 동작인지 상기 GUEST 에서 수행되어야 할 동작인지를 판단하는 단계;는, 현재 발생하는 Interrupt가 상기 HOST에서 발생한 Interrupt인지 상기 GUEST에서 발생한 Interrupt인지를 판단하는 것을 특징으로 할 수 있다.
여기서, 복수개의 GUEST가 패러럴하게 동작하고 상기 Virtual Interrupt Configuration Register를 통해서 동일한 Interrupt가 발생하는 경우에, 상기 VMM은 상기 Interrupt 를 상기 HOST 모드를 통해서 각각의 GUEST에서 실행되도록 하는 단계;를 더 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 HOST를 위한 Interrupt 가 발생하면 현재 동작하고 있는 모든 프로그램을 정지하고 HOST 모드로 동작하도록 제어하는 것을 특징으로 할 수 있다.
본 발명은 GUEST가 인터럽트 발생시 직접 인터럽트 제어 레지스터에 액세스(access)할 수 있는 효과가 있다.
본 발명은 GUEST가 인터럽트 발생시 직접 인터럽트 제어 레지스터에 액세스(access)함으로써 Interrupt latency를 줄일 수 있는 효과가 있다.
도1은 본 발명의 일실시예로 인터럽트 컨트롤러를 위한 하이브리드 가상화 구성도를 도시한 도면이다.
도2는 본 발명의 일실시예로 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법의 순서도이다.
도3은 본 발명의 일실시예로 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하는 경우에 Interrupt 수행과정을 도시한 도면이다.
도4는 본 발명의 일실시예로 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하는 경우에 Interrupt 수행과정 방법을 도시한 순서도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명에서 사용한 용어는 단지 특정 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도1은 본 발명의 일실시예로 인터럽트 컨트롤러를 위한 하이브리드 가상화 구성도를 도시한 도면이다.
가상화(Virtualization)를 위해 CPU(100)는 소프트웨어(특히 운영체제)가 하드웨어를 직접 제어할 수 있는 HOST 상태(state)와 가상머신 매니저(VMM:Virtual Machine Manager)(120)의 도움을 통해 소프트웨어적으로 하드웨어를 제어하는 GUEST 상태(state)로 구분되어 동작할 수 있다.
여기서, 상기의 HOST state와 GUEST state는 각각 HOST 모드(mode)와 GUEST 모드(mode)로 동작하는 상태를 의미한다.
여기서, HOST는 실제 물리적인 하드웨어에서 구동되는 운영체제(OS : Operating System)를 의미하고, GUEST는 가상머신(VM : Virture Machine)을 통해 구동되는 운영체제를 의미한다.
본 발명에서는 트랩 앤드 에뮬레이트(trap and emulate) 방법을 이용하는 완전 가상화(full virtualization)와 GUEST가 인터럽트 컨트롤 레지스터(Interrupt Control Register)를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 인터럽트 지체(Interrupt latency)를 줄일 수 있는 특징을 가지고 있다.
즉, 본 발명은 트랩 앤드 에뮬레이트(trap and emulate) 방법을 이용하여 인터럽트(Interrupt)를 처리할 수도 있고, GUEST가 Interrupt Control Register를 직접 액세스(access)하여 발생한 Interrupt를 처리할 수도 있다.
본 발명에서는 VMM(120)가 각각의 GUEST에게 Virtual Interrupt Configuration Registers인 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)를 제공하여, GUEST state에서 Interrupt가 발생하면 GUEST가 제공된 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)을 통해서 Interrupt Control Register에 직접 액세스(access)할 수 있도록 한다.
도1을 예로 들어 설명하면, VMM(120)은 H/W의 Physical Interrupt Configuration Register인 IRQ CONFIGURATION REGISTER(210)에 액세스하여 IRQ CONTROL REGISTER HOST(220)을 통해 인터럽트 서비스 루틴(ISR:Interrupt Service Routine)을 수행한다. 그리고, VMM(120)은 GUEST에게 Virtual Interrupt Configuration Registers 인 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)를 제공하여 GUEST가 발생한 Interrupt를 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)를 통해 직접 처리하도록 할 수 있다.
또한, 복수개의 GUEST가 패러럴(parallel)하게 동작하고 있고 Virtual Interrupt Configuration Register를 통해서 동일한 Interrupt가 발생하는 경우에, VMM(120)은 발생한 Interrupt를 HOST 모드를 통해서 각각의 GUEST에서 실행되도록 할 수도 있다. 이에 대한 상세한 설명은 도3과 4에서 후술하기로 한다.
도2는 본 발명의 일실시예로 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법의 순서도이다.
가상화(Virtualization)가 구현되어 HOST에서 수행되는 프로그램과 GUEST에서 수행되는 프로그램을 동시에 이용할 수 있도록 하는 VMM(120)가 동작을 하고 나서 다음의 각 단계가 실행된다.
S100 단계는 VMM(120)가 상기 GUEST 에게 Virtual Interrupt Configuration Register인 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)를 제공하는 단계이다.
상술한 바와 같이 VMM(120)은 GUEST가 직접 Interrupt를 처리할 수 있도록 각각의 GUEST 에게 Virtual Interrupt Configuration Register를 제공한다.
S110 단계는 현재 수행되는 동작이 HOST에서 수행되어야 할 동작인지 GUEST에서 수행되어야 할 동작인지를 판단하는 단계이다. 즉, Interrupt 가 HOST 상태(state)에서 발생하였는지 GUEST 상태(state)에서 발생하였는지를 판단하는 단계이다.
S120 단계는 S110 단계에서 판단결과 HOST에서 수행되어야 할 동작인 경우에는 VMM(120)이 하드웨어 Interrupt Controller의 Physical Interrupt Configuration Register인 IRQ CONFIGURATION REGISTER(210)에 액세스하는 단계이다. 이후 HOST의 해당 ISR(Interrupt service routine)을 수행하게 된다.
S130 단계는 S110 단계에서 판단결과 GUEST에서 수행되어야 할 동작인 경우에는 GUEST가 직접 Virtual Interrupt Configuration Register에 액세스하는 단계이다. 이후 GUEST의 해당 ISR(Interrupt service routine)을 수행하게 된다.
S140 단계는 상술한 바와 같이 HOST 또는 GUEST가 액세스한 Interrupt Configuration Register를 통해서 해당 ISR(Interrupt service routine)을 수행하는 단계이다.
도3은 본 발명의 일실시예로 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하는 경우에 Interrupt 수행과정을 도시한 도면이다.
복수개의 GUEST가 패러럴하게 동작하고 있고 Virtual Interrupt Configuration Register인 IRQ VIRTUAL CONFIGURATION REGISTER GUEST(121,122)를 통해서 동일한 Interrupt가 발생하는 경우에, VMM(120)은 발생한 Interrupt를 HOST 모드를 통해서 각각의 GUEST에서 실행되도록 할 수 있다.
복수개의 GUEST가 패러럴하게 동작하고 있고 Virtual Interrupt Configuration Register를 통해서 동일한 Interrupt가 발생하면, Virtual Interrupt Configuration Register에서 동일한 interrupt를 동시에 처리할 수 없기 때문에 VMM(120)은 발생한 Interrupt를 HOST 모드의 도움을 받아서 각각의 GUEST에서 실행되도록 할 수 있다.
즉, 도3에 도시된 바와 같이 VMM(120)은 IRQ CONTROL REGISTER HOST(220)를 거쳐 VMM(120)의 ISR을 통해 GUEST의 ISR을 수행함으로써 복수개의 GUEST가 패러럴하게 동작하고 있는 경우에 Virtual Interrupt Configuration Register를 통해서 발생한 동일한 Interrupt를 각각의 GUEST에서 모두 실행되도록 할 수 있다.
도4는 본 발명의 일실시예로 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하는 경우에 Interrupt 수행과정 방법을 도시한 순서도이다.
S131 단계는 도2의 S130 단계의 일 예로서, 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하는 경우이다.
S131 단계는 도3에서 상술한 바와 같이 복수개의 GUEST가 패러럴하게 동작하고 Virtual Interrupt Configuration Register에 동일한 인터럽트가 발생하면, VMM(120)가 일부 interrupt를 HOST 모드를 통한 interrupt 처리과정(IRQ CONTROL REGISTER HOST -> VMM ISR -> GUEST ISR)으로 전환하여 해당 interrupt를 각각의 GUEST에서 실행하는 단계이다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : CPU 111 : GUEST1
112 : GUEST1
120 : 가상머신 매니저(VMM:Virtual Machine Manager)
121 : IRQ VIRTUAL CONFIGURATION REGISTER GUEST1
122 : IRQ VIRTUAL CONFIGURATION REGISTER GUEST2
200 : H/W INTERRUPT CONTROLLER
210 : IRQ CONFIGURATION REGISTER
220 : IRQ CONTROL REGISTER HOST
230 : IRQ CONTROL REGISTER GUEST

Claims (6)

  1. 호스트(HOST)에서 수행되는 프로그램과 게스트(GUEST)에서 수행되는 프로그램을 동시에 이용할 수 있도록 하는 가상머신 매니저(VMM:Virtual Machine Manager)가 동작하는 단계;
    상기 VMM가 상기 GUEST에게 가상 인터럽트 컨피그레이션 레지스터(Virtual Interrupt Configuration Register)를 제공하는 단계; 및
    트랩 앤드 에뮬레이트(trap and emulate) 방법을 이용하는 완전 가상화(full virtualization)와 상기 GUEST가 인터럽트 컨트롤 레지스터(Interrupt Control Register)를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 인터럽트 지체(Interrupt latency)를 줄이는 단계;
    를 포함하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
  2. 제1항에 있어서,
    상기 HOST는 실제 물리적인 하드웨어에서 구동되는 운영체제(OS : Operating System)이고, 상기 GUEST는 가상머신(VM : Virture Machine)에서 구동되는 운영체제인 것을 특징으로 하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
  3. 제1항에 있어서,
    상기 트랩 앤드 에뮬레이트 방법을 이용하는 완전 가상화(full virtualization)와 상기 GUEST가 Interrupt Control Register를 직접 액세스(access)하는 부분 가상화(partial virtualization)을 선택적으로 이용하여 Interrupt latency를 줄이는 단계;는,
    현재 수행되는 동작이 상기 HOST에서 수행되어야 할 동작인지 상기 GUEST에서 수행되어야 할 동작인지를 판단하는 단계; 및
    상기 HOST에서 수행되어야 할 동작인 경우에는 상기 VMM이 하드웨어 인터럽트 컨트롤러(Interrupt Controller)의 물리적 인터럽트 컨피그레이션 레지스터 (Physical Interrupt Configuration Register)에 액세스(access)하여 해당 인터럽트 서비스 루틴(ISR :Interrupt Service Routine)을 수행하고, 상기 GUEST에서 수행되어야 할 동작인 경우에는 상기 GUEST가 직접 상기 Virtual Interrupt Configuration Register를 통해서 해당 인터럽트 서비스 루틴을 수행하는 단계;
    를 포함하는 것을 특징으로 하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
  4. 제3항에 있어서,
    상기 현재 수행되는 동작이 상기 HOST에서 수행되어야 할 동작인지 상기 GUEST 에서 수행되어야 할 동작인지를 판단하는 단계;는,
    현재 발생하는 Interrupt가 상기 HOST에서 발생한 인터럽트(Interrupt)인지 상기 GUEST에서 발생한 인터럽트(Interrupt)인지를 판단하는 것을 특징으로 하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
  5. 제1항에 있어서,
    복수개의 GUEST가 패러럴(parallel)하게 동작하고 상기 Virtual Interrupt Configuration Register를 통해서 동일한 Interrupt가 발생하는 경우에, 상기 VMM은 상기 Interrupt를 HOST 모드를 통해서 각각의 GUEST에서 실행되도록 하는 단계;
    를 더 포함하는 것을 특징으로 하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
  6. 제1항에 있어서,
    상기 HOST를 위한 Interrupt 가 발생하면 현재 동작하고 있는 모든 프로그램을 정지하고 HOST 모드로 동작하도록 제어하는 것을 특징으로 하는 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법.
KR1020140124529A 2014-09-18 2014-09-18 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 KR20160033517A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140124529A KR20160033517A (ko) 2014-09-18 2014-09-18 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법
US14/825,409 US20160085568A1 (en) 2014-09-18 2015-08-13 Hybrid virtualization method for interrupt controller in nested virtualization environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140124529A KR20160033517A (ko) 2014-09-18 2014-09-18 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법

Publications (1)

Publication Number Publication Date
KR20160033517A true KR20160033517A (ko) 2016-03-28

Family

ID=55525816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140124529A KR20160033517A (ko) 2014-09-18 2014-09-18 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법

Country Status (2)

Country Link
US (1) US20160085568A1 (ko)
KR (1) KR20160033517A (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275269B1 (en) * 2016-05-27 2019-04-30 Bromium, Inc. Hypervisor to support nested virtualization
KR20180083688A (ko) 2017-01-13 2018-07-23 삼성전자주식회사 애플리케이션 프로세서 및 집적 회로
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
WO2019079960A1 (en) * 2017-10-24 2019-05-02 Intel Corporation MATERIAL ASSISTED VIRTUAL SWITCH
US11016798B2 (en) * 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
KR102498319B1 (ko) 2018-06-04 2023-02-08 삼성전자주식회사 반도체 장치
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
KR20210066288A (ko) * 2019-11-28 2021-06-07 한국전자통신연구원 전자 장치, 인터럽트 설정 제어 방법 및 저장 매체
US20210165673A1 (en) * 2019-12-02 2021-06-03 Microsoft Technology Licensing, Llc Enabling shared graphics and compute hardware acceleration in a virtual environment
US11983555B2 (en) 2021-08-03 2024-05-14 Red Hat, Inc. Storage snapshots for nested virtual machines
US12020059B2 (en) 2021-08-30 2024-06-25 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution
CN116382856B (zh) * 2023-06-02 2023-09-26 麒麟软件有限公司 基于虚拟化嵌套增强系统实时性的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6310652B1 (en) * 1997-05-02 2001-10-30 Texas Instruments Incorporated Fine-grained synchronization of a decompressed audio stream by skipping or repeating a variable number of samples from a frame

Also Published As

Publication number Publication date
US20160085568A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
KR20160033517A (ko) 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법
US10691363B2 (en) Virtual machine trigger
TWI506445B (zh) 用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體
US7971203B2 (en) Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
EP2316069B1 (en) Lazy handling of end of interrupt messages in a virtualized environment
EP2831728B1 (en) Architecture and method for managing interrupts in a virtualized environment
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9003094B2 (en) Optimistic interrupt affinity for devices
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
JP2013516021A (ja) プロセッサコアのハイパーバイザ離隔
JP2009508183A (ja) 仮想マシン・モニタと、acpi準拠ゲスト・オペレーティング・システムとの間の双方向通信のための方法、装置及びシステム
US9715403B2 (en) Optimized extended context management for virtual machines
US20150212956A1 (en) Updating virtual machine memory by interrupt handler
WO2018040845A1 (zh) 一种计算资源调度方法及装置
KR20170016448A (ko) 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치
JP2019526083A (ja) 投機的仮想マシン実行
US10387178B2 (en) Idle based latency reduction for coalesced interrupts
US9766917B2 (en) Limited virtual device polling based on virtual CPU pre-emption
US9122549B2 (en) Method and system for emulation of instructions and hardware using background guest mode processing
US20140215467A1 (en) Method and Virtualization Controller for Managing a Computer Resource With at Least Two Virtual Machines
US10740131B2 (en) Input-output based virtual CPU halt
US20170147377A1 (en) Lazy timer programming for virtual machines

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid