KR101242661B1 - 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법 - Google Patents

컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법 Download PDF

Info

Publication number
KR101242661B1
KR101242661B1 KR1020090123345A KR20090123345A KR101242661B1 KR 101242661 B1 KR101242661 B1 KR 101242661B1 KR 1020090123345 A KR1020090123345 A KR 1020090123345A KR 20090123345 A KR20090123345 A KR 20090123345A KR 101242661 B1 KR101242661 B1 KR 101242661B1
Authority
KR
South Korea
Prior art keywords
interrupt
interrupt controller
virtual
hardware
computer
Prior art date
Application number
KR1020090123345A
Other languages
English (en)
Other versions
KR20110066613A (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 한국전자통신연구원
Priority to KR1020090123345A priority Critical patent/KR101242661B1/ko
Priority to DE102010030965A priority patent/DE102010030965A1/de
Publication of KR20110066613A publication Critical patent/KR20110066613A/ko
Application granted granted Critical
Publication of KR101242661B1 publication Critical patent/KR101242661B1/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/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
    • 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/45541Bare-metal, i.e. hypervisor runs directly on hardware

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

본 발명은 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 기술에 관한 것으로, 컴퓨터 시스템의 인터럽트 컨트롤러를 가상화하여 각 운영체제에 제공하는 것을 특징으로 한다. 본 발명에 의하면, 이러한 가상 인터럽트 컨트롤러는 실제 하드웨어 인터럽트 컨트롤러와 동일한 인터페이스를 가지며, 기존 운영체제의 수정 없이 가상 인터럽트 컨트롤러를 하드웨어 인터럽트 컨트롤러와 동일한 방식으로 사용하는 환경을 제공하게 할 수 있다.
가상화, 컴퓨터 시스템, 인터럽트 컨트롤러, 가상 머신 모니터

Description

컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법{Apparatus and method for virtualization of interrupt controller in a computer system}
본 발명은 컴퓨터 시스템에서의 가상화 기술에 관한 것으로서, 특히 컴퓨터 시스템의 인터럽트 컨트롤러를 가상화하는데 적합한 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-S-032-02, 과제명: 공개 SW 기반 가상화 핵심 기술 개발].
일반적인 컴퓨터 시스템은 단일 컴퓨터 시스템상에 단일 운영체제가 탑재되어 운영되는 형태이다.
도 1은 종래 기술에 따른 컴퓨터 시스템의 구조를 도시한 도면이다.
도 1을 참조하면, 기존의 컴퓨터 시스템은 컴퓨터 하드웨어(100) 상에 1개의 운영체제(102)가 포함되고, 1개의 운영체제(102)가 복수의 응응 프로그램(104) 을 수행시키는 구조이다.
최근에 와서는 컴퓨터 속도의 증가 및 멀티코어를 가진 중앙처리장치(CPU)의 등장으로 인하여 컴퓨터 시스템의 성능이 지속적으로 높아지고 있다. 반면에 운영체제를 포함한 응용프로그램은 발전된 컴퓨터 시스템의 성능을 충분히 사용하지 못하는 현상이 발생되었다. 이러한 문제점들을 해결하기 위한 방편으로 가상화(Virtualization) 시스템이 등장하였다.
가상화 시스템은 단일 컴퓨터 시스템상에 복수개의 운영체제를 수행할 수 있도록 컴퓨터 하드웨어와 운영체제 사이에 가상 머신 모니터(VMM : Virtual Machine Monitor)를 추가하였다. 가상 머신 모니터는 가상의 컴퓨터 하드웨어 환경을 제공함으로써, 복수개의 운영체제가 동시에 수행될 수 있도록 한다.
가상 머신 모니터는 중앙처리장치, 메모리, 입출력 장치 등의 하드웨어 장치를 가상화 한다. 가상화의 방법론은 크게 전가상화(Full Virtualization)와 반가상화(Para-Virtualization)로 구분된다. 전가상화는 기존의 운영체제를 전혀 수정하지 않고도 가상화된 시스템상에서 운영 가능한 방식으로, 기존의 운영체제를 수정이 필요 없다는 장점이 있다. 반면에 반가상화는 기존 운영체제에 수정이 필요하나, 운영체제를 가상화된 시스템에 맞게 수정함으로써 좀 더 빠른 수행속도를 얻을 수 있다.
상기한 바와 같이 동작하는 종래 기술에 의한 컴퓨터 시스템에 있어서는, 인터럽트 컨트롤러를 가상화하기 위해 운영체제에서 인터럽트 컨트롤러와 관계된 부분을 수정해야만 하는 문제점이 있었다.
이에 본 발명은, 컴퓨터 시스템의 인터럽트 컨트롤러를 가상화할 수 있는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법을 제공한다.
또한 본 발명은, 운영체제에서 인터럽트 컨트롤러와 관계된 부분의 수정이 필요 없는 인터럽트 컨트롤러 가상화를 수행하며, 가상 머신 모니터가 추가된 환경에서 하드웨어 인터럽트가 가상 머신 모니터를 통하여 운영체제로 전달되는 메커니즘을 구현할 수 있는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치는, 컴퓨터 내의 각종 하드웨어와, 하드웨어 인터럽트 컨트롤러를 포함하는 컴퓨터 하드웨어와, 상기 컴퓨터 하드웨어와 적어도 두 개의 운영체제 사이에서 가상의 컴퓨터 하드웨어 환경을 제공하고, 상기 하드웨어 인터럽트 컨트롤러를 가상화하는 가상 머신 모니터와, 복수의 응용프로그램을 이용하여 상기 컴퓨터의 하드웨어를 제어하는 운영체제를 포함한다.
여기서, 상기 가상 머신 모니터는, 상기 운영체제에서 발생한 상기 하드웨어 인터럽트 컨트롤러에 대한 접근이 상기 컴퓨터의 중앙처리 장치에서 예외 동작 으로 처리되는 경우, 이를 가상 인터럽트 컨트롤러로 전달하는 것을 특징으로 한다.
그리고 상기 가상 머신 모니터는, 상기 운영체제가 구동되기 전에 상기 운영체제의 주소공간에 상기 하드웨어 인터럽트 컨트롤러의 주소를 매핑하지 않는 것을 특징으로 한다.
또한, 상기 가상 머신 모니터는, 상기 예외 동작을 관리하는 예외 벡터 테이블과, 상기 예외 벡터 테이블에서 수행시켜 상기 예외 동작이 발생한 주소를 토대로 핸들링을 수행하는 인터럽트 핸들러를 더 포함하는 것을 특징으로 한다.
그리고 상기 인터럽트 핸들러는, 상기 예외 동작이 발생한 주소를 확인하여 하드웨어 인터럽트 컨트롤러에 대한 접근으로 판단되면, 상기 하드웨어 인터럽트 컨트롤러로 해당 예외 동작에 대한 정보를 전달하는 것을 특징으로 한다.
또한, 상기 인터럽트 핸들러는, 상기 예외 동작이 발생한 주소가 상기 가상 머신 모니터의 관리 주소인 경우, 상기 가상 머신 모니터가 관리하는 다른 입출력 장치로 동작 정보를 전송하고, 상기 가상 머신 모니터의 관리 주소가 아닌 경우, 상기 예외 동작의 정보를 상기 운영체제로 다시 전달하는 것을 특징으로 한다.
한편, 상기 가상 인터럽트 컨트롤러는, 상기 하드웨어 인터럽트 컨트롤러와 동일한 구조로서, 각 운영체제 별로 존재하는 것을 특징으로 한다.
또한, 상기 가상 인터럽트 컨트롤러는, 상기 운영체제로부터 발생한 하드웨어 인터럽트 컨트롤러에 대한 읽기/쓰기 명령을 전달받은 경우, 인터럽트 비트 벡터 레지스터, 마스크 레지스터, 언마스크 레지스터 중 적어도 하나를 이용하여 처 리하는 것을 특징으로 한다.
이에 상기 인터럽트 비트 벡터 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트의 발생 여부를 표시하는 것을 특징으로 한다.
그리고 상기 마스크 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들이지 않을 것으로 표시하는 것으로, 이때, 쓰기 동작은 쓰고자 하는 값으로 바로 표시하고, 마스크하고자 하는 인터럽트를 조사하여, 상기 인터럽트 비트 벡터 레지스터에서 해당되는 인터럽트를 발생하지 않은 것으로 표시하는 것을 특징으로 한다.
그리고 상기 언마스크 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들일 것으로 표시하는 것으로, 이때, 쓰기 동작은 언마스크 하고자 하는 인터럽트를 조사하여 상기 마스크 레지스터에서 해당하는 비트를 인터럽트 발생 가능으로 표시하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법은, 가상의 컴퓨터 하드웨어 환경을 제공하고, 상기 하드웨어 인터럽트 컨트롤러를 가상화하는 가상 머신 모니터가 컴퓨터 내의 각종 하드웨어 및 하드웨어 인터럽트 컨트롤러를 포함하는 컴퓨터 하드웨어와, 복수의 응용프로그램을 이용하여 상기 컴퓨터의 하드웨어를 제어하는 적어도 두 개의 운영체제 사이에서 구현되는 컴퓨터 시스템에 있어서, 상기 적어도 두 개의 운영체제 중 어느 한 운영체제에 서 발생한 상기 하드웨어 인터럽트 컨트롤러에 대한 접근이 상기 컴퓨터의 중앙처리 장치에서 예외 동작으로 처리되는 경우, 이를 가상 인터럽트 컨트롤러로 전달하는 과정과, 상기 가상 인터럽트 컨트롤러의 제어를 통해 상기 하드웨어 인터럽트 컨트롤러로 전달하는 과정을 포함한다.
여기서, 상기 예외 동작으로 처리되는 경우는, 상기 가상 머신 모니터에서 상기 운영체제가 구동되기 전에 상기 운영체제의 주소공간에 상기 하드웨어 인터럽트 컨트롤러의 주소를 매핑하지 않은 경우에 발생되는 것을 특징으로 한다.
그리고 상기 가상 인터럽트 컨트롤러로 전달하는 과정은, 상기 가상 머신 모니터에서 상기 예외 동작을 관리하는 예외 벡터 테이블로 상기 예외 동작에 대한 정보를 전달하는 과정과, 상기 예외 벡터 테이블에서 인터럽트 핸들러를 수행시켜 핸들링하는 과정과, 상기 예외 동작이 발생한 주소를 확인하여 하드웨어 인터럽트 컨트롤러에 대한 접근으로 판단되면, 상기 하드웨어 인터럽트 컨트롤러로 상기 예외 동작에 대한 정보를 전달하는 과정을 포함하는 것을 특징으로 한다.
한편, 상기 핸들링하는 과정은, 상기 예외 동작이 발생한 주소가 상기 가상 머신 모니터의 관리 주소인 경우, 상기 가상 머신 모니터가 관리하는 다른 입출력 장치로 동작 정보를 전송하는 과정과, 상기 가상 머신 모니터의 관리 주소가 아닌 경우, 상기 예외 동작의 정보를 상기 운영체제로 다시 전달하는 과정을 포함한다.
이때, 상기 가상 인터럽트 컨트롤러는, 상기 하드웨어 인터럽트 컨트롤러와 동일한 구조로서, 각 운영체제 별로 존재하는 것을 특징으로 한다.
또한, 상기 가상 인터럽트 컨트롤러는, 상기 운영체제로부터 발생한 하드웨 어 인터럽트 컨트롤러에 대한 읽기/쓰기 명령을 전달받은 경우, 인터럽트 비트 벡터 레지스터, 마스크 레지스터, 언마스크 레지스터 중 적어도 하나를 이용하여 처리하는 것을 특징으로 한다.
이에 상기 인터럽트 비트 벡터 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트의 발생 여부를 표시하는 것을 특징으로 한다.
그리고 상기 마스크 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들이지 않을 것으로 표시하는 것으로, 이때, 쓰기 동작은 쓰고자 하는 값으로 바로 표시하고, 마스크하고자 하는 인터럽트를 조사하여, 상기 인터럽트 비트 벡터 레지스터에서 해당되는 인터럽트를 발생하지 않은 것으로 표시하는 것을 특징으로 한다.
그리고 상기 언마스크 레지스터는, 각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들일 것으로 표시하는 것으로, 이때, 쓰기 동작은 언마스크 하고자 하는 인터럽트를 조사하여 상기 마스크 레지스터에서 해당하는 비트를 인터럽트 발생 가능으로 표시하는 것을 특징으로 한다.
상기와 같은 본 발명의 실시예에 따른 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있 다.
본 발명의 실시예에 따른 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법에 의하면, 가상 인터럽트 컨트롤러는 실제 하드웨어 인터럽트 컨트롤러와 동일한 인터페이스를 가지며, 운영체제의 수정 없이 가상 인터럽트 컨트롤러를 하드웨어 인터럽트 컨트롤러와 동일한 방식으로 사용하는 환경을 제공할 수 있으며, 기존 운영체제에서 인터럽트 컨트롤러의 가상화에 따라 인터럽트 컨트롤러와 관계된 부분의 수정을 요구하지 않으므로 기존의 운영체제를 가상화된 시스템상에서 수행할 경우, 포팅(porting) 비용을 줄일 수 있는 효과가 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기 능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 실시예는, 운영체제에서 인터럽트 컨트롤러와 관계된 부분의 수정이 필요 없는 인터럽트 컨트롤러 가상화를 수행하며, 가상 머신 모니터가 추가된 환경에서 하드웨어 인터럽트가 가상 머신 모니터를 통하여 운영체제로 전달되는 메커니즘을 구현하는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 가상화된 컴퓨터 시스템의 구조를 도시한 도면이다.
도 2를 참조하면, 가상화가 적용된 컴퓨터 시스템으로, 컴퓨터 하드웨어(200) 상에 가상 머신 모니터(210)가 탑재된다. 그리고 가상 머신 모니터(210)는 복수개의 운영체제(220)를 동시에 실행시킬 수 있으며, 각 운영체제는 자신의 응용프로그램(230, 240)을 수행시킨다.
도 3은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러와 하드웨어 인터럽트 컨트롤러의 관계를 도시한 도면이다.
도 3을 참조하면, 컴퓨터 시스템, 즉 컴퓨터 하드웨어(200)에는 하드웨어 인터럽트 컨트롤러(302)를 포함하며, 가상 머신 모니터(210)는 하드웨어 인터럽트 컨트롤러(302)를 가상 인터럽트 컨트롤러(312)로 만들어서 각 운영체제(220)에 제공한다. 가상 머신 모니터(210)는 1개의 운영체제마다 1개의 가상 인터럽트 컨트롤러를 제공한다. 따라서, 가상 머신 모니터(210) 상에서 수행되는 모든 운영체제(220) 는 하드웨어 인터럽트 컨트롤러(302)가 아닌 가상 인터럽트 컨트롤러(312)를 사용하여 인터럽트를 제어한다.
이에 특정 운영체제가 하드웨어 인터럽트 컨트롤러(302)에 대한 접근을 시도하는 경우, 가상 머신 모니터(210)는 이를 가로채서 하드웨어 인터럽트 컨트롤러(302)에 대한 접근을 특정 운영체제에 해당하는 가상 인터럽트 컨트롤러에 대한 접근으로의 변환을 수행한다. 이후, 가상 머신 모니터(210)는 해당 가상 인터럽트 컨트롤러를 사용하여 운영체제의 접근 요구를 처리한다. 또한, 하드웨어 인터럽트 컨트롤러(302)와 가상 인터럽트 컨트롤러(312)와의 일관성을 유지시켜주는 작업을 수행한다.
도 4는 본 발명의 실시예에 따라 운영체제에서 하드웨어 인터럽트 컨트롤러에 대한 접근이 가상 인터럽트 컨트롤러로 전달되는 과정을 도시한 도면이다.
도 4를 참조하면, 컴퓨터 시스템에서 하드웨어 인터럽트 컨트롤러(302)를 제어하는 방식은, 컴퓨터 하드웨어에서 중앙처리장치의 주소공간으로 매핑된 하드웨어 인터럽트 컨트롤러(302)의 내부 레지스터들에 대한 읽기/쓰기 동작을 수행함으로써 이루어진다. 이에, 운영체제(220)에서 하드웨어 인터럽트 컨트롤러(302)에 읽기/쓰기 동작을 수행할 경우, 가상 머신 모니터(210)는 이러한 읽기/쓰기 동작을 가상 인터럽트 컨트롤러(312)로 전달하게 된다.
하드웨어 인터럽트 컨트롤러(302) 내부의 레지스터들은 주소가 할당되어 있으며, 이를 사용하여 운영체제(220)는 하드웨어 인터럽트 컨트롤러(302)에 접근한다. 가상 머신 모니터(210)는 운영체제(220)를 시작하기 전에 가상 주소-물리 주소의 매핑을 수정하여, 운영체제(220)의 주소공간에 하드웨어 인터럽트 컨트롤러(302)의 주소를 매핑하지 않는다. 이렇게 되면 운영체제(220)에서 하드웨어 인터럽트 컨트롤러(302)의 레지스터에 대한 읽기/쓰기 동작을 할 때 중앙 처리장치에 예외(exception)가 발생한다.
가상화가 적용되지 않은 시스템에서는 예외를 처리하는 예외 벡터 테이블(exception vector table)(402)이 운영체제(220)에 의해서 관리되지만, 가상화가 적용된 시스템에서는 가상 머신 모니터(210)가 예외 벡터 테이블(402)을 관리한다. 따라서, 예외가 발생하면, 가상 머신 모니터(210)가 관리하는 예외 벡터 테이블(402)에 의해서 가상 머신 모니터(210)의 인터럽트 핸들러(404)가 수행된다.
가상 머신 모니터(210)는 예외가 발생한 주소가 하드웨어 인터럽트 컨트롤러(302)에 대한 접근이라고 확인되면, 가상 인터럽트 컨트롤러(312)를 사용하여 이를 서비스할 준비를 한다. 그러나 예외가 발생한 주소가 하드웨어 인터럽트 컨트롤러(302)에 해당하지 않으면, 가상 머신 모니터(210)가 관리하는 다른 입출력 장치에 대한 접근인지 판단하여 해당 서비스를 수행한다.
한편, 예외가 발생한 주소가 가상 머신 모니터(210)가 관리하는 주소가 아 니면, 예외를 현재 수행 중인 운영체제(220)로 전달하게 된다.
도 5는 본 발명의 실시예에 따라 운영체제에서 하드웨어 인터럽트 컨트롤러에 대한 접근이 가상 인터럽트 컨트롤러로 전달되는 절차를 도시한 흐름도이다.
도 5를 참조하면, 먼저, 가상 머신 모니터(210)는 운영체제(220)를 시작하기 전에 가상-물리 주소 매핑을 수정하여, 운영체제(220)의 주소공간에 하드웨어 인터럽트 컨트롤러(302)의 주소를 매핑하지 않도록 한 후, 500단계에서 운영체제(220)가 하드웨어 인터럽트 컨트롤러(302)에 읽기/쓰기 동작을 수행할 경우, 예외가 발생하여 가상 머신 모니터(210)는 502단계에서 이러한 발생된 예외 동작들을 관리하는 예외 벡터 테이블(402)에서 이를 수신하여 인터럽트 핸들러(404)에 전달한다.
이에 504단계에서 가상 머신 모니터(210)의 인터럽트 핸들러(404)는 예외가 발생한 동작의 주소를 토대로 하드웨어 인터럽트 컨트롤러(302)에 대한 접근으로 판단되면, 506단계로 진행하여 가상 인터럽트 컨트롤러(312)를 사용하여 하드웨어 인터럽트 컨트롤러(302)로 해당 동작 정보를 전달하게 된다. 그러나 504단계에서 예외가 발생한 동작의 주소가 하드웨어 인터럽트 컨트롤러(302)에 해당하지 않으면, 508단계로 진행하여 가상 머신 모니터(210)가 관리하는 주소인 경우, 510단계에서 가상 머신 모니터(210)가 관리하는 다른 입출력 장치 중 주소에 해당하는 입출력 장치로 동작 정보를 전송하게 된다.
그러나 510단계에서 가상 머신 모니터(210)가 관리하는 주소가 아닌 경우, 512단계로 진행하여 예외 동작 정보를 운영체제(220)로 다시 전달하게 된다.
도 6은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러의 내부 구조를 도시한 블록도이다.
도 6을 참조하면, 컴퓨터 시스템마다 사용하는 인터럽트 컨트롤러의 구조는 다양하나, 가장 기본적인 구조는 인터럽트 비트 벡터 레지스터(interrupt bit vector), 마스크(mask) 레지스터, 언마스크(unmask) 레지스터의 3 가지를 사용하며, 각각은 해당 주소 공간에 매핑되어 있다.
이에 가상 인터럽트 컨트롤러(312)는 하드웨어 인터럽트 컨트롤러(302)와 동일한 구조의 레지스터 셋을 가지고 있다. 즉, 하드웨어 인터럽트 컨트롤러(302)가 위의 3가지 레지스터(602, 604, 606)를 가지고 있으며, 가상 인터럽트 컨트롤러(612, 614, 616)도 동일한 레지스터를 가지고 있다.
운영체제에서 발생한 하드웨어 인터럽트 컨트롤러(302)에 대한 읽기/쓰기 명령을 전달받은 경우, 가상 인터럽트 컨트롤러(312)의 기본 동작은 다음과 같다.
Figure 112009076728687-pat00001
인터럽트 비트 벡터 레지스터(612): 각 bit는 각 인터럽트에 연결되어 있으며, 해당 인터럽트의 발생 여부를 표시한다.
- 읽기 : 가상 인터럽트 컨트롤러에서 내용을 읽는다
- 쓰기 : 쓰기는 금지되어 있음
Figure 112009076728687-pat00002
마스크 레지스터(614): 각 bit는 각 인터럽트에 연결되어 있으며, 해당 인터럽트를 받아들일지 않을 것이라고 표시한다.
- 읽기 : 가상 인터럽트 컨트롤러에서 내용을 읽는다
- 쓰기 : 하기 쓰기 동작을 순차적으로 사용한다.
1) 마스크 레지스터에 쓰고자 하는 값을 바로 쓴다
2) 마스크하고자 하는 인터럽트를 조사하여, 인터럽트 비트 벡터 레지스터(612)에서 해당되는 인터럽트를 발생하지 않았음으로 표시한다.
Figure 112009076728687-pat00003
언마스크 레지스터(616): 각 bit는 각 인터럽트에 연결되어 있으며, 해당 인터럽트를 받아들일 것이라고 표시한다.
- 읽기 : 가상 인터럽트 컨트롤러에서 내용을 읽는다
- 쓰기 : 언마스크 하고자 하는 인터럽트를 조사하여 마스크 레지스터에서 해당하는 bit를 인터럽트 발생 가능으로 표시한다.
위와 같이 가상 인터럽트 컨트롤러(312)가 인터럽트 비트 벡터 레지스터(612), 마스크 레지스터(614), 언마스크 레지스터(616)에 대한 읽기/쓰기 동작을 수행하면, 프로그램의 제어는 가상 인터럽트 컨트롤러(312)에 대한 읽기/쓰기를 발생시킨 프로그램으로 복귀한다.
하드웨어 인터럽트가 발생하면 가상 머신 모니터(210)의 인터럽트 핸들러(404)가 수행된다. 인터럽트 핸들러(404)는 하드웨어 인터럽트 컨트롤러(302)의 인터럽트 비트 벡터 레지스터(602)를 가상 인터럽트 컨트롤러(312)의 인터럽트 비트 벡터 레지스터(612)로 전달한다. 이때, 가상 인터럽트 컨트롤러(312)의 마스크 레지스터(614)를 참조하여 마스크 시키는 인터럽트는 제외한다.
가상 머신 모니터(210)의 인터럽트 핸들러(404)는 인터럽트 비트 벡터 레지스터(602)에 값이 설정된 인터럽트를 대상으로 하드웨어 인터럽트 컨트롤러(302)의 마스크 레지스터(604) 및 언마스크 레지스터(606)에 쓰기 동작을 차례대로 수행하 여, 가상 머신 모니터(210)가 하드웨어 인터럽트를 처리하였음을 표시한다.
이후, 가상 인터럽트 컨트롤러(312)는 해당 운영체제의 인터럽트 핸들러를 수행시킨다. 가상 머신 모니터(210)는 수행중인 운영체제들의 예외 벡터 테이블이 위치하는 주소를 알고 있다. 따라서 해당 주소로 직접 점프 명령을 수행함으로써 운영체제의 인터럽트 핸들러를 수행시킨다.
도 7은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러의 동작 절차를 도시한 흐름도이다.
도 7을 참조하면, 700단계에서 하드웨어 인터럽트 컨트롤러(302)에서 하드웨어 인터럽트가 발생하면, 이를 가상 머신 모니터(210)에서 전달받아 702단계에서 인터럽트 핸들러(404)를 수행시킨다.
이에 704단계에서 인터럽트 핸들러(404)는 하드웨어 인터럽트 컨트롤러(302)의 인터럽트 비트 벡터 레지스터(602)를 가상 인터럽트 컨트롤러(312)의 인터럽트 비트 벡터 레지스터(612)로 전달하고, 가상 인터럽트 컨트롤러(312)에서는 마스크 레지스터(614)를 참조하여 마스크 되는 인터럽트를 제외한다.
이후, 706단계에서 가상 인터럽트 컨트롤러(312)는 해당 주소로의 점프 명령을 통해 해당 운영체제의 인터럽트 핸들러를 수행시킨다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법은, 운영체제에서 인터럽트 컨트롤러와 관계된 부분의 수정이 필요 없는 인터럽트 컨트롤러 가상화를 수행하며, 가상 머신 모니터가 추가된 환경에서 하드웨어 인터럽트가 가상 머신 모니터를 통하여 운영체제 로 전달되는 메커니즘을 구현한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 종래 기술에 따른 컴퓨터 시스템의 구조를 도시한 도면,
도 2는 본 발명의 실시예에 따른 가상화된 컴퓨터 시스템의 구조를 도시한 도면,
도 3은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러와 하드웨어 인터럽트 컨트롤러의 관계를 도시한 도면,
도 4는 본 발명의 실시예에 따라 운영체제에서 하드웨어 인터럽트 컨트롤러에 대한 접근이 가상 인터럽트 컨트롤러로 전달되는 과정을 도시한 도면,
도 5는 본 발명의 실시예에 따라 운영체제에서 하드웨어 인터럽트 컨트롤러에 대한 접근이 가상 인터럽트 컨트롤러로 전달되는 절차를 도시한 흐름도,
도 6은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러의 내부 구조를 도시한 블록도,
도 7은 본 발명의 실시예에 따른 가상 인터럽트 컨트롤러의 동작 절차를 도시한 흐름도.
< 도면의 주요 부분에 대한 부호 설명 >
200 : 컴퓨터 하드웨어 210 : 가상 머신 모니터
220 : 운영체제 230, 240 : 응용프로그램
302 : 하드웨어 인터럽트 컨트롤러 312 : 가상 인터럽트 컨트롤러
402 : 예외 벡터 테이블 404 : 인터럽트 핸들러

Claims (20)

  1. 컴퓨터 내의 각종 하드웨어와, 하드웨어 인터럽트 컨트롤러를 포함하는 컴퓨터 하드웨어와,
    상기 컴퓨터 하드웨어와 적어도 두 개의 운영체제 사이에서 가상의 컴퓨터 하드웨어 환경을 제공하고, 상기 하드웨어 인터럽트 컨트롤러를 가상화하는 가상 머신 모니터와,
    복수의 응용프로그램을 이용하여 상기 컴퓨터의 하드웨어를 제어하는 운영체제
    를 포함하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  2. 제 1항에 있어서,
    상기 가상 머신 모니터는,
    상기 운영체제에서 발생한 상기 하드웨어 인터럽트 컨트롤러에 대한 접근이 상기 컴퓨터의 중앙처리 장치에서 예외 동작으로 처리되는 경우, 이를 가상 인터럽트 컨트롤러로 전달하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  3. 제 2항에 있어서,
    상기 가상 머신 모니터는,
    상기 운영체제가 구동되기 전에 상기 운영체제의 주소공간에 상기 하드웨어 인터럽트 컨트롤러의 주소를 매핑하지 않는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  4. 제 2항에 있어서,
    상기 가상 머신 모니터는,
    상기 예외 동작을 관리하는 예외 벡터 테이블과,
    상기 예외 벡터 테이블에서 수행시켜 상기 예외 동작이 발생한 주소를 토대로 핸들링을 수행하는 인터럽트 핸들러
    를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  5. 제 4항에 있어서,
    상기 인터럽트 핸들러는,
    상기 예외 동작이 발생한 주소를 확인하여 하드웨어 인터럽트 컨트롤러에 대한 접근으로 판단되면, 상기 가상 인터럽트 컨트롤러로 해당 예외 동작에 대한 정보를 전달하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  6. 제 4항에 있어서,
    상기 인터럽트 핸들러는,
    상기 예외 동작이 발생한 주소가 상기 가상 머신 모니터의 관리 주소인 경우, 상기 가상 머신 모니터가 관리하는 다른 입출력 장치로 동작 정보를 전송하고,
    상기 가상 머신 모니터의 관리 주소가 아닌 경우, 상기 예외 동작의 정보를 상기 운영체제로 다시 전달하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  7. 제 2항에 있어서,
    상기 가상 인터럽트 컨트롤러는,
    상기 하드웨어 인터럽트 컨트롤러와 동일한 구조로서, 각 운영체제 별로 존재하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  8. 제 7항에 있어서,
    상기 가상 인터럽트 컨트롤러는,
    상기 운영체제로부터 발생한 하드웨어 인터럽트 컨트롤러에 대한 읽기/쓰기 명령을 전달받은 경우, 인터럽트 비트 벡터 레지스터, 마스크 레지스터, 언마스크 레지스터 중 적어도 하나를 이용하여 처리하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  9. 제 8항에 있어서,
    상기 인터럽트 비트 벡터 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트의 발생 여부를 표시하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  10. 제 8항에 있어서,
    상기 마스크 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들이지 않을 것으로 표시하는 것으로,
    이때, 쓰기 동작은 쓰고자 하는 값으로 바로 표시하고, 마스크하고자 하는 인터럽트를 조사하여, 상기 인터럽트 비트 벡터 레지스터에서 해당되는 인터럽트를 발생하지 않은 것으로 표시하거나, 상기 하드웨어 인터럽트 컨트롤러의 마스크 레지스터에 해당 값을 표시하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  11. 제 8항에 있어서,
    상기 언마스크 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들일 것으로 표시하는 것으로,
    이때, 쓰기 동작은 언마스크 하고자 하는 인터럽트를 조사하여 상기 마스크 레지스터에서 해당하는 비트를 인터럽트 발생 가능으로 표시하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치.
  12. 가상의 컴퓨터 하드웨어 환경을 제공하고, 상기 하드웨어 인터럽트 컨트롤러를 가상화하는 가상 머신 모니터가 컴퓨터 내의 각종 하드웨어 및 하드웨어 인터럽트 컨트롤러를 포함하는 컴퓨터 하드웨어와, 복수의 응용프로그램을 이용하여 상기 컴퓨터의 하드웨어를 제어하는 적어도 두 개의 운영체제 사이에서 구현되는 컴퓨터 시스템에 있어서,
    상기 적어도 두 개의 운영체제 중 어느 한 운영체제에서 발생한 상기 하드 웨어 인터럽트 컨트롤러에 대한 접근이 상기 컴퓨터의 중앙처리 장치에서 예외 동작으로 처리되는 경우, 이를 가상 인터럽트 컨트롤러로 전달하는 과정과,
    상기 가상 인터럽트 컨트롤러의 제어를 통해 상기 하드웨어 인터럽트 컨트롤러로 전달하는 과정
    을 포함하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  13. 제 12항에 있어서,
    상기 예외 동작으로 처리되는 경우는,
    상기 가상 머신 모니터에서 상기 운영체제가 구동되기 전에 상기 운영체제의 주소공간에 상기 하드웨어 인터럽트 컨트롤러의 주소를 매핑하지 않은 경우에 발생되는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  14. 제 12항에 있어서,
    상기 가상 인터럽트 컨트롤러로 전달하는 과정은,
    상기 가상 머신 모니터에서 상기 예외 동작을 관리하는 예외 벡터 테이블로 상기 예외 동작에 대한 정보를 전달하는 과정과,
    상기 예외 벡터 테이블에서 인터럽트 핸들러를 수행시켜 핸들링하는 과정 과,
    상기 예외 동작이 발생한 주소를 확인하여 하드웨어 인터럽트 컨트롤러에 대한 접근으로 판단되면, 상기 가상 인터럽트 컨트롤러로 상기 예외 동작에 대한 정보를 전달하는 과정
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  15. 제 14항에 있어서,
    상기 핸들링하는 과정은,
    상기 예외 동작이 발생한 주소가 상기 가상 머신 모니터의 관리 주소인 경우, 상기 가상 머신 모니터가 관리하는 다른 입출력 장치로 동작 정보를 전송하는 과정과,
    상기 가상 머신 모니터의 관리 주소가 아닌 경우, 상기 예외 동작의 정보를 상기 운영체제로 다시 전달하는 과정
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  16. 제 12항에 있어서,
    상기 가상 인터럽트 컨트롤러는,
    상기 하드웨어 인터럽트 컨트롤러와 동일한 구조로서, 각 운영체제 별로 존재하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  17. 제 16항에 있어서,
    상기 가상 인터럽트 컨트롤러는,
    상기 운영체제로부터 발생한 하드웨어 인터럽트 컨트롤러에 대한 읽기/쓰기 명령을 전달받은 경우, 인터럽트 비트 벡터 레지스터, 마스크 레지스터, 언마스크 레지스터 중 적어도 하나를 이용하여 처리하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  18. 제 17항에 있어서,
    상기 인터럽트 비트 벡터 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트의 발생 여부를 표시하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  19. 제 17항에 있어서,
    상기 마스크 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들이지 않을 것으로 표시하는 것으로,
    이때, 쓰기 동작은 쓰고자 하는 값으로 바로 표시하고, 마스크하고자 하는 인터럽트를 조사하여, 상기 인터럽트 비트 벡터 레지스터에서 해당되는 인터럽트를 발생하지 않은 것으로 표시하는 것 중 기 설정된 방식으로 수행하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
  20. 제 17항에 있어서,
    상기 언마스크 레지스터는,
    각 비트가 각 인터럽트에 연결되어 있으며, 상기 가상 인터럽트 컨트롤러에서 내용을 읽어 내어 해당 인터럽트를 받아들일 것으로 표시하는 것으로,
    이때, 쓰기 동작은 언마스크 하고자 하는 인터럽트를 조사하여 상기 마스크 레지스터에서 해당하는 비트를 인터럽트 발생 가능으로 표시하는 것을 특징으로 하는 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 방법.
KR1020090123345A 2009-12-11 2009-12-11 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법 KR101242661B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090123345A KR101242661B1 (ko) 2009-12-11 2009-12-11 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법
DE102010030965A DE102010030965A1 (de) 2009-12-11 2010-07-06 Computersystem zum Virtualisieren eines Unterbrechungs-Controllers und Verfahren zum Virtualisieren eines Unterbrechungs-Controllers in einem Computersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090123345A KR101242661B1 (ko) 2009-12-11 2009-12-11 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110066613A KR20110066613A (ko) 2011-06-17
KR101242661B1 true KR101242661B1 (ko) 2013-03-12

Family

ID=43993004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090123345A KR101242661B1 (ko) 2009-12-11 2009-12-11 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101242661B1 (ko)
DE (1) DE102010030965A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036791A1 (en) 2003-09-30 2006-02-16 Stalinselvaraj Jeyasingh Chipset support for managing hardware interrupts in a virtual machine system
KR20070115883A (ko) * 2005-03-28 2007-12-06 마이크로소프트 코포레이션 컴퓨터 시스템에서의 보강된 인터럽트 제어 방법, 이를구현하는 시스템, 명령어를 포함하는 컴퓨터-판독가능 매체및 하드웨어 제어 장치
US20080294825A1 (en) 2007-05-23 2008-11-27 Vmware, Inc. Handling Interrupts When Virtual Machines Have Direct Access to a Hardware Device
KR20090095634A (ko) * 2006-12-06 2009-09-09 마이크로소프트 코포레이션 가상화된 환경에서의 최적화된 인터럽트 전달

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090123345A (ko) 2008-05-27 2009-12-02 장원석 양방향 tv수신기를 통해 편리한 주문/배달 서비스를제공하기 위한 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036791A1 (en) 2003-09-30 2006-02-16 Stalinselvaraj Jeyasingh Chipset support for managing hardware interrupts in a virtual machine system
KR20070115883A (ko) * 2005-03-28 2007-12-06 마이크로소프트 코포레이션 컴퓨터 시스템에서의 보강된 인터럽트 제어 방법, 이를구현하는 시스템, 명령어를 포함하는 컴퓨터-판독가능 매체및 하드웨어 제어 장치
KR20090095634A (ko) * 2006-12-06 2009-09-09 마이크로소프트 코포레이션 가상화된 환경에서의 최적화된 인터럽트 전달
US20080294825A1 (en) 2007-05-23 2008-11-27 Vmware, Inc. Handling Interrupts When Virtual Machines Have Direct Access to a Hardware Device

Also Published As

Publication number Publication date
DE102010030965A1 (de) 2011-06-16
KR20110066613A (ko) 2011-06-17

Similar Documents

Publication Publication Date Title
US10740146B2 (en) Migrating virtual machines between compute systems by transmitting programmable logic accelerator state
KR101247407B1 (ko) 이질적 리소스와의 명령어 세트 아키텍처-기반 시퀀서간 통신
US7487341B2 (en) Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource
US20110197190A1 (en) Virtualization method and virtual machine
US11301283B1 (en) Virtualization extension modules
US9563466B2 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
TW201032055A (en) Technique for communicating interrupts in a computer system
US20210294707A1 (en) Techniques for memory error isolation
JP2023545818A (ja) チップ・システム、仮想割り込み処理方法および対応する装置
US20170031593A1 (en) Maintaining guest input/output tables in swappable memory
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
US10846088B2 (en) Control of instruction execution in a data processor
US20100280817A1 (en) Direct pointer access and xip redirector for emulation of memory-mapped devices
CN108073451B (zh) 一种多核cpu上异构操作系统间中断处理方法及装置
US8145471B2 (en) Non-destructive simulation of a failure in a virtualization environment
KR101387986B1 (ko) 가상화 장치
EP3435229B1 (en) System integration using virtualization
US20220335109A1 (en) On-demand paging support for confidential computing
KR101242661B1 (ko) 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법
EP3255550A1 (en) Tlb shootdowns for low overhead
US9122549B2 (en) Method and system for emulation of instructions and hardware using background guest mode processing
CN112711527A (zh) 一种实时进程的调试方法、装置、目标机和存储介质
US20140215467A1 (en) Method and Virtualization Controller for Managing a Computer Resource With at Least Two Virtual Machines
US8402191B2 (en) Computing element virtualization
KR20240081420A (ko) 피시험 장치의 가상 함수를 테스트하는 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 6