KR920010978B1 - 개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템 - Google Patents

개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템 Download PDF

Info

Publication number
KR920010978B1
KR920010978B1 KR1019900001611A KR900001611A KR920010978B1 KR 920010978 B1 KR920010978 B1 KR 920010978B1 KR 1019900001611 A KR1019900001611 A KR 1019900001611A KR 900001611 A KR900001611 A KR 900001611A KR 920010978 B1 KR920010978 B1 KR 920010978B1
Authority
KR
South Korea
Prior art keywords
register
virtual machine
virtual machines
input
virtual
Prior art date
Application number
KR1019900001611A
Other languages
English (en)
Other versions
KR900013403A (ko
Inventor
요시후미 오기
Original Assignee
후지쓰 가부시끼가이샤
야마모또 다꾸마
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쓰 가부시끼가이샤, 야마모또 다꾸마 filed Critical 후지쓰 가부시끼가이샤
Publication of KR900013403A publication Critical patent/KR900013403A/ko
Application granted granted Critical
Publication of KR920010978B1 publication Critical patent/KR920010978B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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

Landscapes

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

Abstract

내용 없음.

Description

개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템
제1a도는 종래의 가상 컴퓨터 시스템의 블록도.
제1b도는 다른 종래의 가상 컴퓨터 시스템의 블록도.
제2도는 본 발명의 바람직한 실시예에 따른 가상 컴퓨터 시스템의 블록도.
제3도는 특정 명령의 구성을 설명하는 도.
제4도는 제어블록의 구성을 설명하는 도.
제5도는 본 발명의 두 번째 바람직한 실시예의 블록도.
본 발명은 일반적으로 가상 컴퓨터 시스템에 관한 것으로, 특히 다수의 게스트(guest) 프로그램(가상 기계)이 가상 기계 모니터의 제어 아래서 컴퓨터 시스템에 제공된 중앙처리 장치에서 시분할로 주행하는 가상 컴퓨터 시스템에 관한 것이다. 특히 본 발명은 입·출력 인터럽트 제어의 개선점과 관련된다.
일반적으로, 가동률을 개선하기 위하여 지시된 여러 가지 컴퓨터 시스템이 알려져 있다. 예를 들면, 다수의 게스트 프로그램을 시분할하고 가상 기계 모니터(호스트)의 제어 아래서 중앙처리 장치에서 주행하는 가상 컴퓨터 시스템의 알려져 있다. 최근에, 가상 컴퓨터 시스템은 사용자 프로그램의 변화를 처리하는 것이 요구된다. 특히, 처리 제어등의 실시간(real-time)처리를 필요로 하는 게스트 프로그램을 주행하는 것이 필요하다.
이 경우에, 처리 제어 기구에 의하여 발생된 입·출력 인터럽트 이벤트(event)가 높은 우선 순위로 처리되어야 한다. 입·출력 인터럽트 이벤트가, 처리제어 기구의 처리제어를 처리하기 위한 게스트 프로그램이 물리중앙처리 장치에서 주행하지 않는 동안 처리제어 기구에 의하여 발생되면, 중앙처리 장치에서 주행하는 게스트 프로그램이 요구될때까지 기다리는 입·출력 인터럽트 요구를 유지할 필요가 있다. 따라서, 게스트 프로그램들중에서 입·출력 인터럽트 이벤트의 우선 순위를 효과적으로 제어하기 위한 과정이 필요하다.
가상 컴퓨터 시스템에서, 중앙처리 장치의 동작과 비동기된 입·출력 처리를 제어하는 것은 어렵다. 제1a도에 의거하여, 종래의 입·출력 인터럽트 제어가 설명된다. 다수의 기상기계(또한 게스트라 칭함) #A,#B,…#D가 시분할로 중앙처리 장치에서 주행한다. 가상 기계에 지시된 모든 입·출력 명령과 인터럽트가 예외없이 가상 기계 모니터(VMM 호스트)에 입력된다. 가상 기계 모니터는 입력된 명령과 인터럽트를 예정된 처리방법으로 처리하고, 다음 가상 기계들의 하나가 각 명령·인터럽트에 대하여 액세스되는지를 결정한다. 다음 가상 기계 모니터 1a는 에뮤레이션(emulation)(소프트웨어 인터럽트)에 의하여 인터럽트 처리를 실행한다. 따라서, 제1a도에 도시된 시스템의 윗부분이 커진다.
상술된 결점을 극복하기 위하여 지시된 다른 종래의 가상 컴퓨터 시스템이 제안되었다. 제안된 시스템은 가상 기계 모니터의 조정없이 가상 기계에 어드레스된 입·출력 인터럽트를 처리한다. 제안된 가상 컴퓨터 시스템에서, 가상 기계의 우선 순위는 서로 동일하지 않다. 따라서, 가상 기계중의 하나가 CPU에서 주행하는 상태에서, 보다 높은 우선 순위를 가지는 가장 기계중의 다른 하나에 지시된 입·출력 인터럽트가 발생하면, CPU를 독점적으로 사용하기 위한 권리가 현재 주행하는 가상 기계 대신에 보다 높은 우선 순위를 가지는 가상 기계로 지정된다. 제1a도에 도시된 시스템에서, 모든 입·출력 처리가 가상 기계 모니터 1a에 한번에 보고되기 때문에 보다 높은 우선 순위 가상 기계에 CPU를 사용하기 위한 권리를 지정하기 쉽고 보다 낮은 가상 기계가 가상 기계 모니터 1a로 CPU를 사용하기 위한 권리를 되돌리는 것은 용이하다.
제1b도는 가상 기계 모니터의 조정없이 가상 기계에 어드레스 되는 입·출력 인터럽트를 처리하는 가상 컴퓨터 시스템을 설명한다. 제1b도에 도시된 형상에서, 다른 입·출력 인터럽트로부터 주행하는 가상 기계에 대하여 우선 순위를 가지는 가상 기계에 지시된 입·출력 인터럽트만을 식별하고 보다 높은 우선 순위 가상 기계에 어드레스된 입·출력 인터럽트만의 가상 기계 모니터를 통지하는 것이 불가능하다. 이것이 제1b도에 의거하여 좀 더 서술된다.
지금부터, 가상 기계 #D에 어드레스된 입·출력 이벤트 #1이 입·출력 장치 5에서 발생한다고 가정하자. 채널 프로세서(CHP)4가 입·출력 이벤트 #1을 식별하고 주 기억장치(MS)2에 제공된 대응하는 서브-채널(SCH)를 액세스한다. 가상 기계 #D를 나타내는 영역 식별(DMID)데이타 22a가 가상 기계 #D와 관련된 서브-채널 영역 22의 특정 영역으로부터 읽어내어지고, 다음 메모리 중앙 장치(MCU) 3에 형성된 인터럽트 하드웨어(IHW) 30의 인터럽트 펜딩(pending) 레저스터 30b로 전송된다. 전송된 영역 식별 데이타 22a는 영역 식별 데이터 22a(가상 기계 #D)에 대응하는 영역이 기입된다. 후술되는 바와 같이, 가상 기계 모니터(VMM) 20의 가상 기계로 시분할되는 CPU 10에서 주행한다. 따라서, 가상 기계 모니터 20은 대응하는 영역 식별 데이터에 의하여 식별된다. 지금부터, 영역 식별 데이터는 영역 식별자라 칭한다.
한편, 가상 기계 모니터(VMM) 20이 소정 명령에 의하여 가상 기계 #D를 발송하면, 가상 기계#D를 지시하는 영역 식별자(DMID)에 대응하는 제어블록 23을 액세스한다.
다음 제어블록 23의 특정 영역에 저장된 마스크 정보 23b가 그곳으로부터 읽어내어지고 다음 인터럽트 하드웨어 30에 형성된 인터럽트 마스크 레지스터 30a에 전송된다.
다음 전송된 마스크 정보 23b는 인터럽트 마스크 레지스터 30a의 대응영역에 기입된다. 이 시간에‘0’이 발송되지 않은 가상 기계에 대응하는 인터럽트 마스크 레지스터 30a의 영역에 기입된다. 가상 기계 #D를 나타내는 영역 식별자가 인터럽트 마스크 레지스터 30a에 기입되면, 인터럽트 하드웨어 30은 인터럽트 펜딩 레지스터 30b의 대응하는 펜딩 정보와 가상 기계 #D와 관련된 마스크 정보를 비교한다. 두 개의 정보가 서로 일치하면 가상 기계 #D는 즉시 활동한다.
요구된 가상 기계가 현재 주행하는 가상 기계에 대하여 우선 순위를 가지고 주행하지 못하면 이 가상 기계에 어드레스된 입·출력 명령이 가상 기계 모니터 20으로부터 발송될때까지 주행하지 못하는 가상 기계를 주행하는 것이 불가능하다는 것을 상기 서술로부터 알 수 있다.
본 발명의 일반적인 목적은 전술된 단점이 제거된 개선된 가상 컴퓨터 시스템을 제공하기 위한 것이다.
본 발명의 더욱 특별한 목적은 주행하는 가상 기계에 대하여 우선 순위를 가지는 가상 기계에 어드레스된 입·출력 인터럽트를 우선적으로 받아들이는 것이 가능한 가상 컴퓨터 시스템일 제공하기 위한 것이다.
본 발명의 전술된 목적들은 시분할로 적어도 하나의 중앙처리 장치에 주행하는 다수의 가상 기계, 입·출력 인터럽트 요구를 발생하는 입·출력 장치 및 주행하는 가상 기계중의 하나에 대하여 우선 순위를 나타내는 특정 명령을 발생하기 위한 특정 명령 발생 수단으로 이루어진 가상 컴퓨터 시스템에 의하여 성취된다. 시스템은 입·출력 장치와 특정 명령 발생 수단에 결합되고 가상 기계의 하나에 어드레스된 입·출력 인터럽트 요구가 특정 명령에 의하여 지시된 것과 동일한 우선 순위를 갖는지를 결정하고, 가상 기계의 하나에 어드레스된 입·출력 인터럽트 요구가 특정 명령에 의하여 지시된 것과 동일한 우선 순위를 갖는다고 결정할 때 인터럽트 수신 신호를 발생하기 위한 결정 수단을 더 포함한다. 더욱이, 다수의 가상 기계와 결정 수단에 효과적으로 결합하고, 인터럽트 수신 신호가 결정수단으로부터 모니터 수단에 공급될 때 입·출력 인터럽트 요구에 의하여 어드레스된 가상 기계중의 하나에 주행하는 가상 기계중의 하나로부터 중앙처리 장치를 사용하기 위한 권리를 전달하기 위한 모니터 수단을 포함한다.
본 발명의 다른 목적, 특징 및 장점이 수반된 도면에 의거하여 상세히 서술되는 것으로부터 명백해질 것이다.
본 발명의 바람직한 실시예가 제2,3 및 4도에 의거하여 서술되고, 제1b도에 도시된 것과 동일한 부분은 동일 참조 번호로 기입된다. 가상 기계(예를 들면 #A)가 주행하기 전에, 가상 기계 모니터 20은 CPU 10에서 주행하는 가상 기계(#B)에 대하여 우선 순위를 가지는 가상 기계(#A)를 나타내는 오퍼랜드를 갖는 특정 명령(MGPRT)을 실행한다. 그것에 의하여, 가상 기계 모니터 20은 가상 기계 #A와 #B사이의 우선 순위를 관계를 알리는 인터럽트 하드웨어 30을 동작시킨다. 그것에 의하여, 가상 기계 #A와 #B사이의 우선 순위 관계를 알리는 인터럽트 하드웨어 30을 동작시킨다. 그것에 의하여, 가상 기계 #A에 대응하는 마스크 레지스터 30a의 영역이“오픈”된다. 즉, 가상 기계 #A가 인터럽트 수신 상태에 있다. 현재 주행하는 가상 기계와 관련된 마스크 레지스터 영역을 제외한 모든 마스크 레지스터 영역이 닫혀 진다(현재 주행하는 가상 기계를 제외한 모든 가상 기계에 지시된 어떠한 인터럽트도 수신되지 않은 상태)는 것을 제1b도에 도시된 종래의 시스템에서 알 수 있다.
가상 기계 #B가 주행하는 동안 가상 기계 #A에 어드레스된 입·출력 인터럽트가 채널 프로세서 4에 공급되면, 가상 기계 #A를 지시하는 영역 식별자(인터럽트 이벤트 #1)은 인터럽트 펜딩 레지스터 30b에 전송된다. 다음, 인터럽트 이벤트 #1이 인터럽트 펜딩 레지스터 30b의 대응영역에 기입된다. 인터럽트 펜딩 레지스터 30b의 영역과 가상 기계 #A에 대응하는 마스크 레지스터 30a의 내용이 그곳으로부터 읽어내어지고 ALU그룹 31에 제공된 관련된 산술 논리 장치(ALU)에 의하여 서로 비교된다. ALU그룹 31의 각 ALU가 AND게이트로서의 기능을 한다. 인터럽트 펜딩 레지스터 30B의 각 영역에서의 데이터가 마스크 레지스터 30A의 각 대응 영역에서의 데이터와 일치하면, 대응 ALU는 인터럽트 펜딩 레지스터 30B의 각 영역에 저장된 데이터를 출력한다. ALU그룹 31로부터의 결과 신호 INS(영역 식별자)가 내부 레지스터 11a를 가지는 CPU 10에 제공된 ALU 11b에 공급되도록, ALU로부터의 출력은 와이어 -OR동작으로 처리된다. 주행하고 있는 가상 기계의 영역 식별자가 CPU 10의 내부 레지스터 11a에 저장된다. ALU 11b는 ALU그룹 31로부터의 영역 식별자가 내부 레지스터 11a로부터의 데이터와 일치하지 않으면 인터럽트 수신신호 IAS를 발생한다. 신호 INS가 ALU그룹 31로부터 공급되면, 특정 명령 MGPRT에 의하여 주어진 대응하는 입·출력 인터럽트가 주행하는 가상 기계에 대하여 항상 우선 순위를 갖는다. 다음, 인터럽트 수신 신호 INS가 가상 기계 모니터 20에 보내진다.
제2도에 도시된 실시예에 의하여 좀 더 서술된다. 각 가상 기계 #A와 #B가 시분할로 CPU 10에서 주행하고, 그것과 관련된 데이터는 주 기억 장치 2에 저장된다. 비슷하게, 가상 기계 모니터 20이 가상 기계 #A와 #B를 갖는 시분할로 CPU에서 주행하고, 그것과 관련된 데이터는 주기억 장치 2에 저장된다. 전술된 바와같이, 입·출력 인터럽트가 채널 프로세서 4에 공급되면, 주기억 장치 2에 형성된 대응하는 서브-채널(간략성을 목적으로 도시되지 않았음)을 자동으로 액세스하고 그안에 저장된 영역 식별자를 인터럽트 펜딩 레지스터 30b의 대응하는 영역에 기입한다. 그것에 의하여, 어드레스된 가상 기계에 인터럽트에 대한 요구가 발생한다.
지금부터 가상 기계 #B가 CPU 10에서 주행한다고 가정한다. 간략성을 목적으로, 두 개의 가상 기계 #A와 #B가 제공된다. 전술된 바와같이, 가상 기계 모니터 20이 가상 기계 #B를 발송하고, 제어 블록 23의 대응하는 하나를 액세스한다. 다음, 가상 기계 모니터 23이 가상 기계 #B위에 마스크 정보 23a를 읽어내고 마스크 레지스터 30a의 대응하는 비트 영역에 동일한 것을 기입한다.
전술된 특정 명령이 가상 기계 모니터 20으로부터 지급되지 않으면, 데이터‘0’은 가상 기계 #A에 대응하는 마스크 레지스터 30A의 영역에 기입된다. 즉, 가상 기계 #A에 지시된 어떠한 입·출력 인터럽트 이벤트도 수신되지 않는다. 가상 기계 #B가 주행하는 동안 가상 기계 #A에 어드레스된 입·출력 인터럽트 이벤트가 요구되면, 이 요구는 인터럽트 하드웨어 30에 제공된 인터럽트 펜딩 레지스터 30b의 대응 영역에서 유지된다.
본 발명에 따라 전술된 바와 같이, 주행하는 가사 기계에 대하여 우선 순위를 가지는 특정 명령 MGPRT가 정의된다. 특정명령의 구성이 제3도에 도시된다. 특정 명령이 예를 들면, 31비트로 구성되고, 어드레스 비트 B2와 D2로 이루어진 오퍼랜드를 갖는다. 가상 기계 모니터 20이 특정 명령을 실행하고, 특정 명령의 오퍼랜드에 의하여 지시된 제어 블록을 액세스한다. 제어 블록은 각 가상 기계에 대하여 제공된다.
제4도는 각 제어 블록의 구성을 설명한다. 참조 번호 23으로 주어진 제어 블록이 전술된 영역 식별자 23a를 갖는다. 설명된 제어블록이 가상 기계 #A와 관련되면, 영역 식별자 23a가 가상 기계 #A를 나타낸다. 더욱이. 제어 블록 23은 일반 목적 레지스터(GR) 23c, 제어 레지스터(CR) 23d 및 부동점 레지스터(FPR) 23e를 포함한다. 마스크 정보가 제어 레지스터 23d에 제공된다.
제어 블록 23이 특정 명령 MGPRT에 의하여 액세스되면, 마스크 정보가 그곳으로부터 읽어내어지고, 다음 제어 블록 23에 기입된 영역 식별자 23a에 의하여 표시된 마스크 레지스터 30A의 영역에 기입된다. 마스크 정보가 마스크 레지스터 30a의 영역에 기입된다. 마스크 정보가 마스크 레지스터 30a에 기입되면, 지정된 가상 기계의 CPU 10을 사용하기 위한 권리를 얻거나 특정 명령 MGPRT가 다른 가상 기계에 지급될 때까지 유지된다. 마스크 레지스터 30a와 인터럽트 펜딩 레지스터 30b의 각각이 가상 기계와 동일한 수의 영역을 갖는다는 것을 알 수 있다. 예를 들어, 다섯 개의 가상 기계가 제공되면, 레지스터 30a와 30b의 각각의 다섯 개의 영역을 갖는다.
이 경우에, 하나의 가상 기계보다 많은 것과 관련된 마스크 정보를 특정 명령 MGPRT에 의하여 마스크 레지스터 30a에 대응 영역에 기입하는 것이 가능하다. 후술되는 바와 같이, 레지스터 30a와 30b의 각각이 가상 기계 모니터 20에 지정된 영역을 좀더 갖는다.
지금부터 가상 기계 #A와 연합된 제어 블록에 지시된 특정 명령 MGPRT가 가상 기계 모니터 20에 의하여 발생된다고 가정한다. 마스크 정보가 가상 기계 #A와 연합된 제어블록 23으로부터 읽어내어지고, 다음 마스크 레지스터 30a의 대응 영역에 기입된다. 가상 기계 #B가 주행할 때 가상 기계 #A에 대응하는 마스크 레지스터 30a의 영역에 마스크 정보를 기입하는 것이 가능하다. 전술된 종래의 시스템에서, 가상 기계 #A와 관련된 마스크 정보의 이와 같은 기입이 방지된다.
마스크 레지스터 30a와 인터럽트 펜딩 레지스터 30b의 내용이 CPU 10의 상태에서 서로 독립적으로 비교된다. 즉, 가상 기계 #A와 관련된 레지스터 30a와 30b의 영역에 기입된 비트가 서로 비교되고, 가상 기계 #B와 관련된 레지스터 30a와 30b의 영역에 기입된 비트가 비슷하게 서로 비교된다. 비교 동작이 비교된 비트위의 논리 AND동작을 동작시킴으로써 행해진다. 비교 결과(논리 AND 동작)가 제로와 다른 값을 가지면, 인터럽트 하이웨어 30은 영역 식별자를 나타내는 신호 INS를 발생하고, 인터럽트 사이팍스를 실행하기 위한 CPU 10을 지시한다.
가상 기계 모니터 20이 CPU 10에 의하여 실행되는 프로그램에 의하여 형성되고 가상 기계 #A와 #B에 대하여 공통으로 제어된다는 것이 알려져 있다. 따라서, 마스크 레지스터 30a와 인터럽트 펜딩 레지스터 30b의 각각 이 가상 기계 모니터 20에 제공된 영역을 갖는다.
전술된 바와같이, CPU 10은 내부 레지스터 11a와 ALU 11b를 갖는다. 내부 레지스터는 가상 기계 #A, #B와 가상 기계 모니터 20중의 하나가 주행하는 정보를 갖는다. 인터럽트 사이팍스가 신호 INS에 응답하여 활동하면, CPU 10의 ALU 11b가 인터럽트 하드웨어 30으로부터 공급된 신호 INS와 내부 레지스터 11a의 내용을 비교한다. 두 개의 신호(영역 식별자)가 서로 일치하면, 인터럽트 펜딩 레지스터 30b에 기입된 인터럽트에 대한 요구가 종래의 방법으로 처리된다. 즉, 가상 기계 모니터 20이 요구된 가상 기계를 발송하면 이 인터럽트는 수신된다.
한편, 내부 레지스터 11a로부터의 영역 식별자가 인터럽트 하드웨어 30으로부터의 영역 식별자와 일치하지 않으면, CPU 10은 주행하는 가상 기계에 대하여 우선 순위를 가지는 가상 기계(이 경우에 #A)로부터의 입·출력 인터럽트에 대한 요구가 수신되는가를 결정한다. 다음 CPU 10은 일반 목적 레지스터 23c, 제어 레지스터 23d 및 가상 기계 #B와 관련된 제어 블록 23의 부동점 레지스터 23e에 그의 동작 상황을 축적한다. 그후, CPU 10는 CPU10을 사용하기 위한 권리를 가상 기계 모니터 20에 지정한다.
다음, 가상 기계 #A가 요구된 입·출력 인터럽트 처리를 실행할 수 있을 때 상황을 설정하도록, 가상 기계 모니터 20은 가상 기계 #A에 CPU 10을 사용하기 위한 권리를 즉시 지정한다.
본 발명의 두 번째 실시예가 제5도에 의거하여 서술된다. 두 번째 실시예에 따라 인터럽트 하드웨어 30의 기능이 입·출력 프로세서에 제공된다. 두 번째 실시예는 물리 CPU 50과 입·출력 프로세서 60을 포함한다. CPU 50은 레지스터 51, 비교기 52, 래치 53, 레지스터 54, 신호선 55,56 및 CPU제어회로 57을 포함한다.
레지스터 51은 물리 CPU 50에서 현재 주행하는 가상 기계/가상 기계 모니터의 영역 식별자를 저장한다. CPU 50이 가상 기계 모니터와 CPU 50에 형성된 가상 기계 중의 하나 사이의 상태 변화(CPU 50을 사용하기 위한 권리의 전달)를 발생하면, 가상 기계 모니터/가상 기계의 영역 식별자가 레지스터 51에 기입된다. 레지스터 51에 기입된 값이 비교기 52에 대한 입력으로서 제공된다. 래치회로 53은 입·출력 프로세서 60으로부터 입·출력 인터럽트 신호 53a를 저장한다. 입·출력 프로세서 60으로부터의 입·출력 인터럽트 신호 53a가 대응하는 CPU(설명된 경우에 CPU 50)에 연결된 신호선에 공급된다. 즉, 입·출력 인터럽트 신호 53a가 활동하면, 논리 값‘1’로 설정된다.
레지스터 54는 입·출력 프로세서 60이 발생된 입·출력 인터럽트 신호 53a와 관련된 가상 기계중의 하나를 알리는 CPU 50을 동작시키기 위하여 입·출력 인터럽트 신호 53a와 함께 보내진 가상 기계/가상 기계 모니터의 영역 식별자를 저장한다. 예를 들면, 다른 입·출력 인터럽트 이벤트가 다른 인터럽트 선 53b에 연결된다. 입·출력 프로세서 60은 주행하는 가상 기계중의 하나에 어드레스된 인터럽트 이벤트(후술되는 레지스터 62와 63에 의하여 특정하게 됨)가 발생하거나 특정 명령 MGPRT에 의하여 야기되고 보다 높은 우선 순위 기상 기계(레지스터 69에 의하여 특정하게 됨)에 어드레스된 입·출력 인터럽트 이벤트가 발생할때만 영역 식별자를 레지스터 54에 보낸다. 가상 기계는 현재 주행하는 가상 기계와 평행으로 주행하지 않는 현재 주행하는 가상 기계에 대하여 우선 순위를 갖도록 미리 정해진다. 따라서, 물리 CPU 50에 대응하는 것을 지정하기 위하여 레지스터 63에 저장된 정보가 후술되는 바와 같이 불필요하다.
비교기 52는 레지스터 54로부터 영역 식별자와 레지스터 51로부터의 영역 식별자를 비교한다. 공급된 영역 식별자의 값이 서로 동일하면, 비교기 52는 정규 입·출력 인터럽트가 발생되도록 CPU 제어 회로 57에 연결된 신호선 55를 활동하게 한다. 한편, 영역 식별자의 값이 서로 동일하지 않으면, 비교기 52는 특정 명령 MGPRT에 의하여 야기된 입·출력 인터럽트가 발생되도록 신호선 56을 활동하게 된다. 비교기 52는 래치 53으로부터의 신호가‘1’일때만 비교 동작을 실행한다. CPU 제어회로 57은 CPU동작, 특히 입·출력 인터럽트를 처리하기 위한 제어 과정을 제공한다.
입·출력 프로세서 60은 레지스터 61,62,63 및 64, 레지스터 스택 65, 어드레스 회로 66, 데이터 레지스터 67, 입·출력 제어 마이크로 프로세서(지금부터는 간단히 마이크로 프로세서라 칭함) 68 및 레지스터 69를 포함한다. CPU 50의 마스크 정보 변경 명령을 실행함으로써 얻어진 마스크 정보의 수정된 값이 레지스터 61에 기입된다. 후에 주행하게되는 가상 기계 또는 가상 기계 모니터에 대하여 사용된 영역 식별자는 CPU 50을 사용하기 위한 권리가 가상 기계 모니터로부터 가상 기계중의 하나에 전달되는 경우에 레지스터 62에 기입되고, 마스크 변경 명령은 CPU 50에 의하여 실행되거나 CPU 50을 사용하기 위한 권리는 현재 주행하는 가상 기계로부터 가상 기계 모니터로 전달된다. 레지스터 62에 기입된 정보는 CPU 50의 입·출력 인터럽트 제어에 대하여 사용되는 레지스터 스택 65에 저장된 마스크 정보를 나타내고 레지스터 61에 저장된 마스크 정보 영역중의 하나는 레지스터 62에 기입되어야 한다.
후에 주행되어야할 기계 또는 가상 기계 모니터의 논리 CPU수는 CPU 50을 사용하기 위한 권리가 가상 기계 모니터로부터 가상 기계중의 하나에 전달되는 경우에 레지스터 62에 기입되고, 마스크 변경 명령은 CPU 50에 의하여 실행되거나 CPU 50을 사용하기 위한 권리가 현재 주행하는 가상 기계로부터 가상 기계 모니터에 전달된다. “논리 CPU”는 가상 기계 모니터 또는 각 가상 기계의 동작의 장치이다. 가상 기계 모니터가 물리 CPU들 중의 하나에서 주행하는 논리 CPU들 중의 하나에 미리 활동적으로 결정하는 것이 자유롭기 때문에 사용되는 논리 CPU들의 하나에 미리 보고되지 않는다는 것이 알려져 있다. 입·출력 프로세서 60으로부터의 인터럽트 신호53가 물리 CPU들 중의 하나의 지시로 정보와 함깨 공급된다. 따라서, 입·출력 프로세서 60은 물리 CPU들 중의 하나에서 주행하는 가상 기계중의 하나와 관련된 가상 기계중의 하나를 나타낼 필요가 있다. 레지스터 63에 기입된 정보는 CPU 50에서 입·출력 인터럽트 제어에 대하여 사용되는 레지스터 65에 저장된 마스크 정보를 레지스터 61에 저장된 마스크 정보 영역중의 하나는 레지스터 63에 기입되어야 한다.
레지스터 64는 CPU 50을 사용하기 위한 권리가 가상 기계 모니터와 가상 기계중의 하나에 전달되는지, 또는 입·출력 마스크 정보 변경 명령이 실행되는지를 나타내는 정보를 저장한다. CPU 50을 사용하기 위한 권리가 가상 기계 모니터와 가상 기계중의 하나에 전달되면, 레지스터 62와 63의 내용을 마이크로 프로세서 68에 의하여 그곳으로부터 읽어내어지고, 다음 물리 CPU들중의 대응하는 하나에 대하여 제공된 마이크로 프로세서 68의 논리 영역에 기입된다. 입·출력 프로세서 60이 물리 CPU들 중의 대응하는 하나에 입·출력 인터럽트를 지급하기 위하여 노력하면, 마이크로 프로세서 68은 그의 대응 영역에 저장된 데이터를 읽어내고, 읽어내어진 데이터와 함께 어드레스 발생기 66을 공급한다. 그것에 의하여, 대응하는 마스크 정보가 레지스터 스택 65의 대응영역으로부터 읽어내어지고, 다음 레지스터 67을 통하여 마이크로 프로세서 68에 공급된다. 그후, 마이크로 프로세서 68은 인터럽트 신호 53a가 ON되는지(활동하게 되는지)를 결정한다. 입·출력 인터럽트 변경 명령이 실행되면, 마스크 정보와 동시에 레지스터 62와 63의 내용은 마이크로 프로세서 68의 제어에 의하여 어드레스 회로 66에 공급된다. 다음 레지스터 61이 내용은 물리 CPU 50위의 주행 게스트의 논리 CPU와 연합된 레지스터 스택 65의 대응 영역에 저장된다.
레지스터 스택 65는 모든 가상 기계/모니터와 관련된 모든 논리 CPU들에 대한 마스크 정보의 값을 저장한다. 어드레스 회로 66은 레지스터 스택 65와 어드레스 신호를 공급한다. 데이터 레지스터 67은 레지스터 스택 65부터 읽어내어진 데이터를 저장한다. 마이크로 프로세서 68은 실제로 입·출력 프로세서(60)의 동작을 실행하고, 마이크로 프로그램이 저장된 메모리를 가지며, 가상 기계/모니터의 영역 식별자와 그의 논리 CPU수가 전술된 국부 영역에서 동작한다. 레지스터 69는 주행하는 가상 기계에 대하여 우선 순위를 가지도록 CPU 50에 의하여 표시된 가상 기계의 영역 식별자를 저장한다. 영역 식별자는 특정 명령 MGPRT가 CPU 제어기 57에 의하여 실행되면 레지스터 69에 기입된다. 레지스터 69와 동일한 레지스터들 각각이 물리 CPU들에 대하여 개별적으로 제공된다. 동일한 가상 기계가 보다 높은 우선 순위를 갖기 위하여 복수의 물리 CPU에 의하여 표시될지라고, 임의의 입·출력 인터럽트 요구가 가상 기계의 하나 이상에 공급되지 않는다. 즉, 마이크로 프로세서 68은 가상 기계의 대응하는 하나를 선택하고, 입·출력 인터럽트 요구와 동일한 것을 공급한다.
본 발명은 서술된 실시예들로 특별히 제한되지 않고 변화와 수정을 본 발명의 영역으로부터 벗어나지 않고 가할 수 있다.

Claims (11)

  1. 시분할로 적어도 하나의 중앙처리 장치(10,50)에서 주행하는 다수의 가상 기계(#A,#B), 입·출력 인터럽트 요구를 발생하기 위한 입·출력 장치(5)를 포함하는 가상 컴퓨터 시스템에 있어서, 상기 가상 컴퓨터 시스템이 주행하는 상기 가상 기계의 하나에 대하여 우선 순위를 나타내는 특정 명령(MGPRT)을 발생하기 위한 특정 명령 발생 수단(20), 상기 입·출력 장치와 상기 특정 명령 발생 수단에 결합되고, 상기 가상 기계의 하나에 어드레스된 상기 입·출력 인터럽트 요구가 상기 특정 명령에 의하여 지시된 것과 동일한 우선 순위를 갖는지를 결정하고, 상기 가상 기계의 하나에 어드레스된 상기 입·출력 인터럽트 요구가 상기 특정 명령에 의하여 지시된 것과 동일한 우선 순위를 갖는다고 결정될 때 인터럽트 수신 신호를 발생하기 위한 결정 수단(30,11a,11b), 상기 다수의 가상 기계와 상기 결정 수단에 효과적으로 결합되고, 상기 인터럽트 수신 신호가 상기 결정 수단으로부터 모니터 수단에 공급될 때 주행하는 상기 가상 기계의 하나로부터 상기 가상 기계의 하나에 상기 중앙처리 장치를 사용하기 위한 관리를 전달하기 위한 모니터 수단(20)으로 이루어지는 것을 특징으로 하는 가상 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 결정 수단(30,11a,11b)이 상기 입·출력 인터럽트 요구에 의하여 어드레스된 상기 가상 기계의 하나를 나타내는 식별자가 영역의 대응하는 하나에 기입되고, 상기 가상 기계에 대하여 개별적으로 제공된 영역을 가지는 인터럽트 펜딩 레지스터(30b), 마스크 정보가, 상기 가상 기계의 각각이 영역의 대응하는 하나에 기입되는 것을 허락하는지의 여부를 나타내고, 상기 특정 명령이 상기 특정 명령에 의하여 지시된 것과 동일한 상기 우선 순위와 관련된 영역의 대응하는 하나에 RLDLQEH LAUM 상기 가상 기계에 대하여 개별적으로 제공된 영역을 갖는 마스크 레지스 터(30a), 상기 인터럽트 펜딩 레지스터와 상기 마스크 레지스터에 결합되고, 영역의 각각에 대하여 상기 식별자와 상기 마스크 정보를 비교하므로써 입·출력 인터럽트 요구에 의하여 요구된 상기 가상 기계의 하나를 결정하고, 요구되는 상기 가상 기계의 하나에 대응하는 식별자를 출력하기 위한 첫번째 논리 수단(31), 주행하는 상기 가상 기계의 하나에 지시된 식별자를 저장하는 내부 레지스터(11a) 및 상기 첫번째 논리 수단과 상기 내부 레지스터에 결합되고, 상기 첫번째 논리 수단으로부터 공급된 식별자가 상기 내부 레지스터로부터 공급된 상기 식별자와 일치하는지를 결정하고 상기 첫번째 논리 수단으로부터 공급된 식별자가 상기 내부 레지스터로부터 공급된 식별자와 일치하지 않는다고 결정될 때 상기 인터럽트 수신 신호를 발생하기 위한 두번째 논리 수단(11b)으로 이루어지는 것을 특징으로 하는 가상 컴퓨터 시스템.
  3. 제1항 또는 제2항에 있어서, 모니터 수단이 주행하는 상기 가상 기계의 하나로부터 상기 입·출력 인터럽트 요구에 의하여 어드레스된 상기 가상 기계의 하나에 상기 중앙처리 장치를 사용하기 위한 권리를 전달하기 전에 상기 특정 명령 발생 수단(20)이 상기 특정 명령을 발생하는 것을 특징으로 하는 가상 컴퓨터 시스템.
  4. 제2항 또는 제3항에 있어서, 상기 내부 레지스터(11a)가 상기 중앙처리 장치(10)에 제공되고, 상기 두 번째 논리 수단(11b)이 상기 중앙처리 장치에 의하여 실행되는 가상 컴퓨터 시스템.
  5. 제2항 내지 제4항 중의 어느 한 항에 있어서, 상기 마스크 레지스터에 저장되어야 할 상기 마스크 정보를 저장하기 위한 메모리 수단(23)과 상기 메모리 수단과 상기 메모리 수단에 결합되고, 상기 메모리 수단으로부터 상기 마스크 정보를 읽어내고 상기 마스크 레지스터의 상기 영역의 대응하는 하나에 동일한 것을 가입하기 위한 독출 수단(20)을 더 포함하는 것을 특징으로 하는 가상 컴퓨터 시스템.
  6. 제1항에 있어서, 상기 결정 수단이 상기 특정 명령에 의하여 지시된 것과 동일한 우선 순위를 가지는 상기 가상 기계의 대응하는 하나를 나타내는 식별자를 저장하는 첫번째 레지스터(54), 주행하는 상기 가상 기계의 하나를 나타내는 식별자를 저장하는 두번째 레지스터(51), 상기 가상 기계의 하나에 어드레스된 상기 입·출력 인터럽트 요구를 저장하는 세번째 레지스터(53) 및 상기 첫번째와 두번째 및 세번째 레지스터에 결합되고 상기 세번째 레지스터에 저장된, 상기 입·출력 인터럽트 신호에 의하여 활동하며, 상기 첫번째 레지스터로부터 공급된 식별자가 상기 두 번째 레지스트로부터 공급된 식별자와 일치되는지를 결정하고 두 개의 식별자가 서로 일치되지 않는다고 결정될 때 상기 인터럽트 수신 신호를 발생하기 위한 논리 수단(52)으로 이루어진 것을 특징으로 하는 가상 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 논리 수단(52)이 상기 첫번째 레지스터로부터 공급된 식별자가 있는 첫번째 입력 단자와 상기 두번째 레지스터로부터 공급된 식별자가 있는 두번째 입력단자를 가지는 AND 게이트(52)를 포함하는 것을 특징으로하는 가상 컴퓨터 시스템.
  8. 제6항 또는 제7항에 있어서, 상기 첫번째(54), 두번째(51) 및 세번째(53) 레지스터와 상기 논리 수단이 상기 중앙처리 장치(50)에 제공되는 가상 컴퓨터 시스템.
  9. 제5항에 있어서, 주행하는 상기 가상 기계의 하나와 관련된 데이터를 저장하고 상기 중앙처리 장치를 사용하기 위한 권리가 상기 입·출력 인터럽트 요구에 의하여 어드레스된 상기 가상 기계의 하나에 전달될 때 상기 데이터를 축적하기 위한 저장 수단(23c,23d,23e)을 더 포함하는 것을 특징으로하는 가상 컴퓨터 시스템.
  10. 제1항에 있어서, 상기 가상 기계(#A,#B)가 다수의 중앙처리 장치에서 주행하는 것을 특징으로 하는 가상 컴퓨터 시스템.
  11. 제5항에 있어서, 상기 특정 명령 발생 수단이 상기 특정명령(MGPRT)을 방생할 때, 상기 특정 명령 발생 수단(20)이 상기 특정명령과 연합한 상기 가상 기계의 하나의 식별자를 상기 마스크 레지스터의 영역에 대응하는 하나에 기입하는 것을 특징으로 하는 가상 컴퓨터 시스템.
KR1019900001611A 1989-02-09 1990-02-09 개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템 KR920010978B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1030415A JPH02208740A (ja) 1989-02-09 1989-02-09 仮想計算機制御方式
JP30415 1989-02-09
JP1-30415 1989-02-09

Publications (2)

Publication Number Publication Date
KR900013403A KR900013403A (ko) 1990-09-05
KR920010978B1 true KR920010978B1 (ko) 1992-12-26

Family

ID=12303315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900001611A KR920010978B1 (ko) 1989-02-09 1990-02-09 개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템

Country Status (8)

Country Link
US (1) US5361375A (ko)
EP (1) EP0382505B1 (ko)
JP (1) JPH02208740A (ko)
KR (1) KR920010978B1 (ko)
AU (1) AU613823B2 (ko)
CA (1) CA2009555C (ko)
DE (1) DE69032334T2 (ko)
ES (1) ES2119739T3 (ko)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2070285C (en) * 1990-10-03 1998-04-07 Yuji Hidaka Input/output command issuing control system in data processing system
JPH0776951B2 (ja) * 1990-10-30 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
JP2870254B2 (ja) * 1991-10-02 1999-03-17 日本電気株式会社 仮想計算機の入出力割り込み処理方式
US5572694A (en) * 1992-11-25 1996-11-05 Fujitsu Limited Virtual system for detecting access paths belonging to same group from plurality of access paths to reach device designated by command with reference to table
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
JP2900767B2 (ja) * 1993-09-20 1999-06-02 株式会社日立製作所 仮想計算機システムの仮想計算機走行時間間隔制御方式
JPH07281925A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd マルチプロセッサシミュレーション装置
JP3657665B2 (ja) * 1995-02-14 2005-06-08 富士通株式会社 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
KR100263030B1 (ko) * 1996-01-26 2000-08-01 윤종용 중앙처리장치 구동 주파수 자동 선택 장치 및 그 제어방법
US5923900A (en) * 1997-03-10 1999-07-13 International Business Machines Corporation Circular buffer with n sequential real and virtual entry positions for selectively inhibiting n adjacent entry positions including the virtual entry positions
US5987537A (en) * 1997-04-30 1999-11-16 Compaq Computer Corporation Function selector with external hard wired button array on computer chassis that generates interrupt to system processor
GB2327784B (en) * 1997-07-28 2002-04-03 Microapl Ltd A method of carrying out computer operations
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US6813766B2 (en) * 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7272831B2 (en) 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7428485B2 (en) * 2001-08-24 2008-09-23 International Business Machines Corporation System for yielding to a processor
US7251814B2 (en) * 2001-08-24 2007-07-31 International Business Machines Corporation Yield on multithreaded processors
US7024555B2 (en) * 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128528A1 (en) * 2002-12-31 2004-07-01 Poisner David I. Trusted real time clock
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7000051B2 (en) * 2003-03-31 2006-02-14 International Business Machines Corporation Apparatus and method for virtualizing interrupts in a logically partitioned computer system
US7281075B2 (en) * 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
WO2004104825A1 (en) * 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
US7694301B1 (en) * 2003-06-27 2010-04-06 Nathan Laredo Method and system for supporting input/output for a virtual machine
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7707341B1 (en) * 2004-05-11 2010-04-27 Advanced Micro Devices, Inc. Virtualizing an interrupt controller
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US9361114B1 (en) * 2005-12-06 2016-06-07 Azul Systems, Inc. Instruction based interrupt masking for managing interrupts in a computer environment
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7958506B2 (en) * 2006-06-22 2011-06-07 Intel Corporation Time sliced interrupt processing on virtualized platform
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US20080034193A1 (en) * 2006-08-04 2008-02-07 Day Michael N System and Method for Providing a Mediated External Exception Extension for a Microprocessor
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8104083B1 (en) * 2008-03-31 2012-01-24 Symantec Corporation Virtual machine file system content protection system and method
JP5323828B2 (ja) * 2008-06-24 2013-10-23 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US9450960B1 (en) 2008-11-05 2016-09-20 Symantec Corporation Virtual machine file system restriction system and method
US8180944B2 (en) * 2009-01-26 2012-05-15 Advanced Micro Devices, Inc. Guest interrupt manager that records interrupts for guests and delivers interrupts to executing guests
JP2012003478A (ja) * 2010-06-16 2012-01-05 Mitsubishi Electric Corp 割込み制御装置
US9009368B2 (en) 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
US9378162B2 (en) 2013-05-21 2016-06-28 Arm Limited Handling and routing interrupts to virtual processors
US9858101B2 (en) * 2014-11-13 2018-01-02 Red Hat Israel, Ltd. Virtual machine input/output thread management

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001783A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Priority interrupt mechanism
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
US4689739A (en) * 1983-03-28 1987-08-25 Xerox Corporation Method for providing priority interrupts in an electrophotographic machine
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
US4734882A (en) * 1985-04-01 1988-03-29 Harris Corp. Multilevel interrupt handling scheme
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
JPS6258341A (ja) * 1985-09-03 1987-03-14 Fujitsu Ltd 入出力割込処理方式
JPS62184544A (ja) * 1986-02-10 1987-08-12 Nec Corp 仮想計算機システム
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
JPS6417129A (en) * 1987-07-10 1989-01-20 Nippon Telegraph & Telephone Control system for input/output interruption of virtual computer
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US4914583A (en) * 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system

Also Published As

Publication number Publication date
CA2009555C (en) 1999-01-19
KR900013403A (ko) 1990-09-05
JPH02208740A (ja) 1990-08-20
DE69032334T2 (de) 1998-09-24
EP0382505A2 (en) 1990-08-16
ES2119739T3 (es) 1998-10-16
EP0382505B1 (en) 1998-05-27
AU4922490A (en) 1990-08-16
DE69032334D1 (de) 1998-07-02
US5361375A (en) 1994-11-01
EP0382505A3 (en) 1992-06-03
CA2009555A1 (en) 1990-08-09
AU613823B2 (en) 1991-08-08

Similar Documents

Publication Publication Date Title
KR920010978B1 (ko) 개선된 입·출력 인터럽트 제어를 가지는 가상 컴퓨터 시스템
JP2594979B2 (ja) マルチプロセツサシステム
US5095427A (en) Dispatch control of virtual machine
US5574878A (en) Method of parallel purging of translation lookaside buffer in a multilevel virtual machine system
EP0083400B1 (en) A multiprocessor system with at least three-level memory hierarchies
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
US4975836A (en) Virtual computer system
US4860190A (en) Computer system for controlling virtual machines
US4737932A (en) Processor
US4077060A (en) Asymmetrical multiprocessor system
US5291605A (en) Arrangement and a method for handling interrupt requests in a data processing system in a virtual machine mode
JPH02178756A (ja) マルチプロセッサ作業スケジュールシステム
JP2539352B2 (ja) 階層型多重計算機システム
US5524211A (en) System for employing select, pause, and identification registers to control communication among plural processors
EP0230350B1 (en) Protection of data in a multiprogramming data processing system
US5003468A (en) Guest machine execution control system for virutal machine system
JPH07105091A (ja) キャッシュの制御装置および制御方法
KR0136111B1 (ko) 데이터요소의 수정장치 및 그 방법
CA1302582C (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
JPS6049352B2 (ja) デ−タ処理装置
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
JPS603229B2 (ja) 情報処理方式
JPS6336012B2 (ko)
JPH0290331A (ja) 仮想計算機システムのためのプロセツサ間通信命令処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051208

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee