KR920004409B1 - 가상 컴퓨터를 위한 입.출력 처리 시스템 - Google Patents

가상 컴퓨터를 위한 입.출력 처리 시스템 Download PDF

Info

Publication number
KR920004409B1
KR920004409B1 KR1019890015297A KR890015297A KR920004409B1 KR 920004409 B1 KR920004409 B1 KR 920004409B1 KR 1019890015297 A KR1019890015297 A KR 1019890015297A KR 890015297 A KR890015297 A KR 890015297A KR 920004409 B1 KR920004409 B1 KR 920004409B1
Authority
KR
South Korea
Prior art keywords
input
hardware
virtual
guest
identifier
Prior art date
Application number
KR1019890015297A
Other languages
English (en)
Other versions
KR900014990A (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
Priority claimed from JP63267529A external-priority patent/JP2610966B2/ja
Priority claimed from JP01059628A external-priority patent/JP3138985B2/ja
Application filed by 후지쓰 가부시끼가이샤, 야마모도 다꾸마 filed Critical 후지쓰 가부시끼가이샤
Publication of KR900014990A publication Critical patent/KR900014990A/ko
Application granted granted Critical
Publication of KR920004409B1 publication Critical patent/KR920004409B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

내용 없음.

Description

가상 컴퓨터를 위한 입, 출력 처리 시스템
제 1a 도와 제 1b 도는 종래의 가상 컴퓨터 시스템의 입, 출력 시스템을 나타내는 블록도.
제 2 도는 종래의 가상 컴퓨터 시스템의 입, 출력 인터럽트의 블록도.
제 3 도는 동래의 가상 컴퓨터 시스템의 인터럽트 제어를 설명하는 블록도.
제 4 도는 본 발명에 따른 가상 컴퓨터 제어 시스템의 원리 블록도.
제 5 도는 본 발명의 실시예의 블록도.
제 6a 도는 GSCH번호 대 물리적 SCH번호의 동작을 설명하기 위한 도이고, 제 6b 도는 게스트 입/출력 식별자 데이타를 발생하기 위한 인터럽트 발생장치의 동작을 나타내는 도.
제 7 도는 GST의 포맷을 나타내는 도.
제 8 도는 VATT의 포맷을 나타내는 도.
제 9 도는 STUPG 명령의 오퍼랜드로서의 GSCB의 데이타 구조를 나타내는 도.
제 10 도는 게스트 A, 게스트 B 및 호스트의 동작의 흐름도.
제 11 도는 본 발명의 서브 채널의 포맷을 나타내는 도.
제 12 도는 본 발명의 다른 실시예의 원리를 나타내는 블록도.
제 13 도는 본 발명의 다른 실시예의 블록도.
본 발명은 가상 컴퓨터 시스템에서의 다수의 가상 컴퓨터의 입/출력 처리 시스템에 관한 것이다.
OS의 원래 기능은 CPU, 주 저장소, 2차 메모리 및 입/출력 장치등의 하드웨어 자원을 효과적으로 그리고 유리하게 사용하는 것이다. 그러므로, OS는 하드웨어 자원을 다중화하고 가상법으로 가상 자원의 요구된 번호를 발생하며, 그것에 의하여 그들이 다수의 CPU등의 그들만의 하드웨어 자원을 가지면 각 사용자들은 컴퓨터를 사용할 수 있다. 다중화 방법은 시분할법, 즉 분리된 시간으로 자원을 할당하는 방법과 공간분할법, 즉 분리된 영역으로 자원을 할당하는 방법으로 이루어진다. 하드웨어 자원은 사용가능한 상태에서 개선되고 가상 자원에 대응하도록 다중화된다.
이러한 가상 컴퓨터 시스템에는 리얼 컴퓨터와 동일한 기능 및 환경이 제공되어야 한다. 따라서, 사용자는 컴퓨터가 게스트 환경에서 작동하고 다수의 CPU들을 포함하는 다수의 가상 컴퓨터들(여기서는 게스트라 칭함)과 결합하기 위한 게스트 환경을 제공한다고 인식하는 것을 방지한다.
이것은 또한 입/출력 처리에 적용된다.
일반적으로, 가상 컴퓨터 시스템에서, 자원의 관리를 실행하기 위하여 가상 컴퓨터 모니터(호스트라 칭함)에 의해 인식되는 리얼 입/출력 장치구조는 게스트에 의하여 인식되는 가상 입, 출력 장치의 그것과 다른 구조를 갖는다.
리얼 컴퓨터에서 동시에 작동하는 다수의 게스트들은 인에이블하기 위하여, 물리적 입, 출력 장치 구조의 일부(게스트 서브채널)만이 게스트에 도시된다. 더욱이, 입, 출력 장치 자원(가상 서브채널 번호)의 가상 식별자(B)는 물리적 입, 출력 장치구조의 물리적 식별자(C)(서브채널 번호)와 다르다.
게스트가 이러한 차이점을 인식하는 것을 방지하기 위하여, 모든 입, 출력 명령들은 호스트에 의하여 얻어진 종래의 가상 컴퓨터 시스템과 물리적 식별자(C)(서브채널 번호)로 변환되는 입, 출력 명령 오퍼랜드를 지정하는 상기 입, 출력 장치 자원의 가상 식별자(B)(게스트 서브채널 번호)를 발행한다. 다음 입, 출력 환경은 입, 출력 명령을 발행하기 위하여 호스트를 인에이블하므로써 게스트를 안전하게 한다. 즉, 물리적 입, 출력 장치가 바쁠지라도, 이것은 마치 게스트가 입, 출력 장치를 사용하는 것과 같이 게스트에 의하여 보여진다. 이것은 또한 입, 출력 처리의 기능에 가해진다.
가상 컴퓨터의 목적은 단일 하드웨어(리얼 컴퓨터)에서 작동하기 위하여 다른 구성의 소프트웨어를 인에이블하는 것이다. 제어 정보가 몇 개의 게스트들에 의하여 공유되는 바와같이, 비동기성 동작을 포함하는 입, 출력 처리는 하드웨어 측면상의 구성에서의 차이점을 흡수하지 못한다. 따라서, 각 게스트들에 대응하는 제어 정보를 갖는 호스트가 경쟁을 실행하고, 그것에 의하여 차이점을 흡수한다.
종래의 가상 컴퓨터 시스템에서, 게스트에서의 모든 입, 출력 처리는 호스트에 의하여 정규적으로 행해진다. 이것은 자연스럽게 그의 용량을 감소시킨다. 이러한 감소가 20퍼센트를 초과한다. 더욱이, 종래의 가상컴퓨터 시스템에서, 하드웨어내의 제어정보(서브채널 정보)는 게이트와 대응하지 않는다. 따라서, 임의의 하드웨어 소오스에서 발생하는 게스트 입, 출력 결과를 항상 판정하기 위하여 보고되어야 하는 것이 호스트에 대하여 필요하고 호스트의 입, 출력 장치에 대한 제어 논리가 복잡함에 따라 호스트의 오버헤드는 증가한다.
그러므로, 호스트 오버헤드를 최소화하므로써 가상 컴퓨터 시스템의 용량을 증가시킬 수 있는 입, 출력 제어 시스템을 제공하는 것이 필요하다.
제 1a 도와 1b 도는 종래의 가상 컴퓨터 시스템의 입, 출력 처리 시스템을 나타낸다. 제 1a 도는 종래의 가상 컴퓨터 시스템의 기능 할당의 모델을 나타내고 제 1B 도는 구조의 예를 나타낸다. 제 1a 도에서, 게스트들 101과 102가 호스트 103에 제공된다.
종래의 가상 컴퓨터 시스템에서, 입, 출력 처리가 호스트 103을 통하여 실행되고 게스트 101과 102로부터 관찰된 처리 대상에 대응하는 가상 서브채널들(VSCH) 041과 042에 대한 게스트 입, 출력 명령은 오퍼랜드 변환을 통하여 그의 대상으로서 물리적 서브채널(SCH)을 가지는 입, 출력 명령에 의하여 대치될 수 있다.
게스트 입/출력 인터럽트를 발행함에 있어서 상기 물리적 서브채널(SCH) 020을 사용하여 보고되는 것이 호스트 103에 의하여 가상 서브채널들(VSCH) 041 및 042에 반영되고 각 게스트들 101과 102에 보고된다.
호스트 103내의 가상 서브채널들(VSCH) 041과 042에 각 게스트들 101과 102의 관점으로부터 입, 출력 환경을 섭취하기 위하여 제어 정보를 제공한다. 종래의 시스템에서, 이 제어 정보는 호스트 103에 존재하고 물리적 서브채널(SCH) 020를 통하여 하드웨어 1041에 의하여 보고되는 내용(예를들면, 메모리 제어장치(MCU) 202에 제공되는)은 게스트 101 또는 102에 반영되는 호스트 103에 의하여 인터럽트된다.
물리적 서브채널(SCH) 020은 하드웨어 1041이 그의 내부에 있는 실제의 서브채널이다. 물리적 입/출력 장치(IOD) 105가 다수의 물리적 입/출력 어드레스들을 가질지라도, 단지 하나의 물리적 서브채널(SCH)020는 종래의 하나의 물리적 입/출력 장치(IOD)와 관련되어 얻어진다.
상기는 종래의 가상 컴퓨터 시스템에서의 입/출력 처리의 기능 할당을 설명한다. 이 처리가 제 1b 도에 의거하여 상세히 설명될 것이다.
처음에, 종래의 가상 컴퓨터의 구조가 설명된다.
게스트 A 101, 게스트 B 102 및 호스트가 제 1b 도에 도시된 바와같이, 리얼 컴퓨터상의 주 기억장치(MSU)에 배열된다. 호스트 103의 가상 서브채널들(지금부터는 VSCH)라 칭함) 041과 042가 상기 각 게스트들 A와 B, 101 및 102에 대응하는 가상 서브채널이다. 실제의 입/출력 장치의 상태를 서술하지는 않았으나 입/출력 장치가 게스트들 101 및 102로부터 관찰된다. 게스트에 입/출력 동작을 인터럽트함에 있어, 각 게스트들 101과 102에 인터럽트를 보고하기 위한 게스트 서브채널 번호(가상 식별자(B))가 또한 그안에 기술된다.
게스트 서브채널 변환 테이블(table)(여기서는 GST)라 칭함) 214와 215는 상기 게스트 서브채널 번호(가상 식별자(B))와 물리적 서브채널 번호(물리적 식별자(C)) 사이의 변환을 실행하기 위한 것이다. 게스트 입, 출력 명령이 발행될 때 호스트 테이블을 사용하고, 물리적 서브채널 번호로 변환되어야 할 게스트 서브채널 번호를 인에이블 한다. 호스트 103내의 가상 어드레스 변환 테이블 216(여기서는 VATT라 칭함)은 입/출력 인터럽트가 입/출력 장치(IOD) 105에 대하여 시작될 때, 경로가 장치에 연결된 경로들 중에서 사용되는 정보 지정과 하드웨어 1041로부터 전송된 물리적 서브채널 020의 서브채널 번호를 기초로 하여 VSCH 212 또는 213을 얻기 위한 것이다.
어드레스 변환 테이블(ATT) 207이 입/출력 프로세서(IOD) 206에 제공된다. 이것은 물리적 입/출력 어드레스를 변환하기 위한 색인 구조, 즉 서브채널 번호에 데이타 전송(통신) 경로를 포함하는 입/출력 장치 어드레스이고, 입/출력 프로세서(IOD) 206내에 제공된 고속 메모리에 의하여 일반적으로 형성된다. 제 1b 도에 도시된 예에서, 변환 구조, 즉 서브채널(SCH) 020은 채널들(CHE) 208 또는 209중의 하나를 사용하므로써 주 장치측과 통신하는지의 여부에 상관없이 동일 값으로 포인트하기 위하여 동작한다.
상술된 바와같이 구성된 가상 컴퓨터 시스템에서, 입/출력 처리 결과의 동작이 다음과 같이 설명된다. (a) 게스트 입, 출력 명령의 실행에 있어서 : (1) 게스트 입/출력 명령들이 중앙처리장치(CPU) 201에 의하여 실행되는 게스트에 대응하는 프로그램에 의하여 호스트 103으로 얻어진다.
호스트 103은 대응하는 물리적 서브채널 번호(물리적 식별자(C))를 얻기 위하여, 게스트 101 또는 102에 대응하는 GST(예를들면 214)로 게스트 입/출력 명령의 오퍼랜드를 변환시킨다.
(2) 호스트 103은 상기에서 얻어진 물리적 서브채널번호에 대응하는 서브채널(SCH) 020이 다른 게이트들에 의하여 입/출력 처리로 사용되었는지의 여부를 체크한다. 즉, 모든 서브채널들(SCH) 020의 상태를 관리하는 것이 호스트 103에 대하여 필요하다.
(3) 미사용 조건이 체크의 결과로서 존재하지 않으면, 호스트 103은 서브채널(SCH) 020에 입/출력 명령을 발행한다.
다음, 명령데이타가 추가되고, 대응하는 게스트 101 또는 102에 할당된 입/출력 경로만이 사용될 수 있을 때 지정된다. 예를들면 입/출력 처리를 위해 현재 사용될 수 있는 경로는 단지 채널(CHE) 208, 입/출력 제어장치(IOC) 210 및 입/출력 장치(IOD) 105의 경로로 이루어진다.
(b) 게스트 입, 출력 인터럽트에 있어서 : (1) 하드웨어 1041은 입/출력 장치(IOD) 105에 대응하는 서브채널(SCH) 020을 얻고 ATT 207을 사용하여 입/출력 인터럽트의 조건을 보고한다. 이 서브채널(SCH) 020을 사용하므로써, 이것은 입/출력 인터럽트 조건이 발생되는 경로, 예를들면, 데이타 지정 채널(CHE) 208, 입/출력 제어 장치(IOC) 210, 입/출력 장치(IOD) 105를 나타내는 데이타와 함께 호스트 103을 인터럽트한다.
(2) 호스트 103은 VATT 216을 사용하므로써, 경로가 사용되고 서브채널들(SCH) 020의 물리적 서브채널 번호를 기초로 하여 가상 서브채널(VSCH) 041을 선택한다. 인터럽트 보고는 입, 출력 언터럽트 조건이 VSCH 041에 기술된 후에 게스트들 101과 102에 대해 실행된다.
상술된 바와같이, 종래의 시스템에서, 그들이 입/출력 명령들 또는 입, 출력 입터럽트들인지에 상관없이 호스트 103에 의하여 실행되는 것이 모든 게스트 입/출력 처리들에 대하여 필요하다. 그러므로, 거기에는 호스트 103의 오버헤드가 증가되는 문제점이 있다.
존재하는 가상 컴퓨터 시스템에서, 호스트는 가상 인터럽트 마스크, 모든 논리적인 CPU에 대한 인터럽트 큐(queue) 및 시 분할법으로 가상 인터럽트 마스크에 대응하도록 만들어진 하드웨어 인터럽트 마스크를 제공한다. 그러므로, 입/출력 장치로부터의 인터럽트 조건은 각 논리 CPU들에 배당된다.
상기 종래의 시스템이 도면에 의거하여 좀더 설명될 것이다.
제 2 도는 종래의 가상 컴퓨터 시스템의 입/출력 인터럽트의 일반적인 구조를 나타낸다. 이것은 호스트 301, 게스트들 302, 303, 하드웨어 304, 논리 CPU들 321, 322, 331 및 332, 가상 인터럽트 마스크 421, 422, 431 및 432, 하드웨어 인터럽트 마스크들 340 및 서브채널 305로 이루어진다.
각 가상 인터럽트 마스크들 421, 422, 431 및 432에는 게스트들 302와 303의 논리 CPU들 321,322,331 및 332가 제공된다. 하드웨어 인터럽트 마스트 340의 내용은 시분할법으로 각 가상 인터럽트 마스크들에 대응하도록 만들어지고, 그것에 의하여 각 논리 CPU들에 의하여 인식되도록 입/출력 장치로부터 인터럽트 조건을 인에이블한다.
이 제어들이 호스트에 의하여 실행된다. 즉, 종래의 가상 컴퓨터 시스템은 모든 입/출력 인터럽트들이 호스트에 의하여 배당되는 것을 요구한다. 호스트는 게스트의 각 논리 CPU들로부터 관찰된 가상 인터럽트 마스트들 421 내지 432에 시분할법으로 대응하도록 만들어진 하드웨어 인터럽트 마스크 340을 만들고 각 논리 CPU들에 대하여 입/출력 인터럽트를 배당한다.
제 3 도는 가상 컴퓨터 시스템의 인터럽트 제어를 나타낸다. 제 2 도와 동일한 부분은 동일 참조번호로 지정된다. 가상 인터럽트 마스크들 411, 421 및 422에는 다른 입/출력 장치로부터 요구된 인터럽트에 대응하도록 만들어진 각 비트들과 각 논리 CPU들이 제공된다. 그러므로, 입/출력 장치로부터의 인터럽트는 비트값이 "1"일때만 수신된다.
하드웨어 인터럽트 마스크 340의 각 마스크 비트들은 다른 입/출력 장치들로부터 요구된 인터럽트에 대응하고 비트 조건은 각 가상 인터럽트 마스크들에 일대일로 대응하도록 만들어진다. 마스크의 비트 패턴은 현재의 물리적 CPU들 상에서 작동하는 논리 CPU에 대응하는 가상 인터럽트 마스크의 비트 패턴과 동일하고, 입/출력 인터럽트는 비트값이 "1"일때만 수신된다.
인터럽트 보고 지정 350은 입/출력 인터럽트의 보고 지정 CPU를 나타낸다. 서브채널을 시작하는 논리 CPU가 지정보고 논리 회로로서 선택된다.
가상 인터럽트 마스크의 설정과/또는 게스트 입/출력 인터럽트의 발생에 있어서의 동작이 설명될 것이다.
(a) 가상 인터럽트 마스크의 설정에 있어서 : (1) 참조 번호 321에 의하여 지정된 게스트 논리 CPU-C가 필요한 것으로서 가상 인터럽트 마스크를 결정한다. 입/출력 장치에 대응하는 비트 값(예를들면 i01)을 "1"로 만들므로써, 입/출력 장치에 대응하는 서브채널 305로부터 요구된 인터럽트가 수신된다. 서브채널에서의 인터럽트 보고 지정 C가 서술된다.
(2) 호스트 301은 입/출력 인터럽트를 준비하기 위하여 시분할법으로 하드웨어 인터럽트 마스크 340상의 가장 최신의 가상 인터럽트 마스크 411 내지 422를 반영한다.
(3) 임의의 게스트 논리 CPU(예를들면 322)가 다른 물리적 CPU에 보내질때 게스트 논리 CPU에 대응하는 가상 인터럽트 마스크 422는 다른 물리적 CPU상에서 작동하는 호스트에 의하여 하드웨어 인터럽트 마스크 위에 반영된다.
(b) 게스트 입/출력 인터럽트의 발행에 있어서 : (1) 인터럽트 조건이 입/출력 장치에 의하여 발생되고 하드웨어 인터럽트 마스트 340의 대응 비트(예를들면 i01)가 "1"일때, 입/출력 인터럽트 조건은 호스트에 보고된다.
(2) 가상 인터럽트 마스크들 411 내지 422의 하나의 비트값(각 i01의 내용)은 논리 CPU가 입/출력 인터럽트의 보고를 수신해야 한다는 것을 결정하지 못한다. 호스트는 입/출력 장치에 대응하는 서브채널 305의 인터럽트 보고 지정 350을 기초로 하여 보고지정 C를 결정하고, 입/출력 인터럽트를 발생하며, 논리 CPU-C에 입/출력 인터럽트 조건을 보고한다.
종래의 가상 컴퓨터 시스템에서, 가상 인터럽트 마스크와 하드웨어 인터럽트 마스트 사이의 모든 일치는 호스트에 의하여 관리되고, 입/출력 인터럽트는 보고지정에 따라 배당된다.
그러므로, 오버헤드가 증가하고 호스트의 로드 또한 증가하며, 시스템의 처리 용량에 영향을 미친다.
호스트를 감소시키기 위하여, 하드웨어 인터럽트 마스크는 각 논리 CPU들에 대응하도록 만들어진다. 그러나, 이것은 하드웨어 양을 증가시키는 결과를 초래하고 시스템은 덜 경제적이다.
본 발명의 목적은 가상 컴퓨터 시스템에서의 각 가상 컴퓨터들의 입/출력 처리의 가상 컴퓨터 모니터로 입/출력 처리를 행하기 위해 필요한 오버헤드를 감소시키는 것이 가능한 가상 컴퓨터 제어 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적은 하드웨어 인터럽트 마스크에 대해 요구된 하드웨어의 양을 증가시키지 않고 호스트의 로드를 감소시킬 수 있는 제어 시스템을 제공하기 위한 것이다.
본 발명의 특징은 다수의 가상 컴퓨터들에 제공되어야 할 입/출력 장치 구조를 설명하는 정보블록을 가지며, 상기 가상 컴퓨터를 모니터하고 상기 가상 컴퓨터들에 의하여 인식되어야 할 입/출력 장치 구조의 가상 식별자와 상기 입/출력 장치구조에 의하여 사실상 사용되어야 할 물리적 실별자 사이의 관계를 설명하는 변환정보를 제공하기 위한 가상 컴퓨터 모니터 수단, 상기 가상 컴퓨터 모니터 수단이 하드웨어 수단에 상기 변환정보를 제공할 때, 상기 정보를 블록과 변환정보를 기초로 하여 상기 가상 컴퓨터들의 입/출력 처리를 실행하기 위하여 필요한 내부-하드웨어 제어 블록군을 기동적으로 얻기 위한 하드웨어 수단, 가상 컴퓨터가 입/출력 명령을 발행할때 변환정보를 기초로 하여 각 가상 컴퓨터들에 의하여 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 식별자를 물리적 식별자로 변환하고, 내부-하드웨어 제어 블록군의 하나의 제어 블록을 식별하며, 그것에 의하여 상기 제어 블록을 사용하므로써 입/출력 처리를 실행하는 하드웨어 수단, 입/출력 인터럽트가 발생될때 입/출력 장치에 의하여 내부-하드웨어 제어 블록을 사용하므로써 가상 컴퓨터에 의해 사용되어야 할 가상 식별자로 상기 제어 블록의 물리적 식별자를 변환하기 위한 하드웨어 수단등으로 이루어지는 가상 컴퓨터 제어 시스템에 있다.
본 발명의 다른 특징은 하드웨어의 인터럽트 마스크의 각 비트들이 각 논리 CPU들에 대응하도록 만들어지고 논리 CPU들이 동작할 때 안정된 상태로 물리적 CPU의 하드웨어 인터럽트 마스크내에 논리 CPU에 대응하는 비트를 놓기 위한 수단과 각 서브채널들에 기록되어야 할 논리 CPU와 관련 정보를, 서브채널로부터 인터럽트 조건을 수신하는 것이 가능한 마스크 비트 변화 동작을 아주 최근에 실행하는 논리 CPU에 대응하는 관련정보로 재기록하기 위한 수단으로 이루어진 CPU에 의하여 동작된 필름웨어 또는 소프트웨어에 의해 플로우팅(floating) 인터럽트의 하드웨어 입/출력 인터럽트를 관리하기 위하여 가상 컴퓨터 시스템에 사용하기 위한 입/출력 제어 시스템에 있다.
제 4 도는 본 발명의 원리 블록도를 나타낸다.
정보 블록(A)는 가상 컴퓨터 시스템 상에서 동작하는 다수의 가상 컴퓨터 들 101과 102에 제공되어야 할 입/출력 장치의 구조를 설명한다. 이 정보는 입/출력 장치를 사용하는 게스트에 관한 것이다,
가상 캄퓨터 시스템의 가상 컴퓨터 모니터(호스트) 103은 각 가상 컴퓨터들 101과 102에 의하여 인식된 입/출력 장치구조 유니트(unit)의 가상 식별자(B)(게스트 서브채널 번호)와 하드웨어 104에 의하여 사실상 사용되는 물리적 식별자(C)(서브채널 번호) 사이의 관계를 설명하는 변환정보(D) 214와 216을 제공한다. 다음, 하드웨어 104는 상기 정보 블록(A)와 상기 변환정보(D) 214와 216을 기초로 하여 각 가상 컴퓨터들101과 102의 입/출력 처리를 실행하기 위하여 필요한 내부-하드웨어 제어 블록군(E) 031과 032를 기동적으로 얻는다.
가상 컴퓨터들 101과 102가 입/출력 명령을 발행하면, 하드웨어 104는 변환정보(D) 214를 기초로 하여 상기 가상 컴퓨터에 의하여 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 식별자(B)를 변환시키고, 상기 내부-하드웨어 제어 블록을 사용하므로써 상기 입, 출력 명령을 실행하기 위하여 내부-하드웨어 제어 블록군(E) 031과 032의 부재를 식별한다.
입/출력 인터럽트가 상기 내부-하드웨어 제어 블록(E) 031과 032의 부재를 사용하므로써 입/출력 장치 105에 의하여 발생되면, 하드웨어 104는 제어블록(E) 031과 032의 물리적 식별자(C)를, 변환정보(D) 214를 사용하므로써 가상 컴퓨터들 101과 102에 의하여 사용된 가상 식별자(B)로 변환시킨다. 따라서, 입/출력 인터럽트는 가상 식별자(B)를 사용하므로써 가상 컴퓨터들 101과 102에 가해진다.
본 발명에 따라, 가상 컴퓨터 시스템 내의 가상 컴퓨터의 입/출력 시스템에 있어서, 입/출력 구조에는 가상 컴퓨터 시스템 상에서 동작하는 다수의 가상 컴퓨터들(게스트들)이 제공된다. 즉, 입/출력 장치를 사용하여 게스트를 지정하는 정보 블록(A)가 예를들면 사용자에 의하여 지정된다. 다음, 호스트는 정보 블록(A)를 기초로 하여 게스트에 의하여 인식된 게스트 서브채널 번호(가상 식별자(B))를 물리적 서브채널 번호(물리적 식별자(C))로 변환하기 위한 게스트 서브채널 변환 테이블(GST)과 입, 출력 인터럽트의 발생에 있어서 하드웨어로부터 전송된 호스트 서브채널 번호와 경로 정보를 기초로 하여 대응하는 가상 서브채널(VSCH)를 얻기 위한 테이블(VATT)(변환정보(D))를 발생하며 서브채널 변환 테이블(VATT)(변환정보(D))를 하드웨어에 제공한다.
따라서, 하드웨어는 정보블록(A)와 게스트 서브채널 변환 테이블(GST)(변환정보(D))를 기초로 하여, 대응하는 게스트 입/출력 처리를 실행하기 위하여 필요한 서브채널 (SCH)(제어 블록군(E))을 기동적으로 얻는다.
게스트가 내부-하드웨어 서브 채널군(E)의 부재를 사용하므로써 입/출력 명령을 발생하면, 하드웨어 104는 게스트에 의하여 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 서브채널 번호(가상 식별자(B))를 게스트 서브채널 변환 테이블(GST)를 사용하므로써 물리적 서브채널 번호(물리적 식별자(C))로 변환시키고 대응하는 하드웨어 내에서 서브채널(제어 블록군(E)의 부재)을 식별하며 서브채널을 사용하여 입/출력 명령을 실행한다.
입/출력 인터럽트가 하드웨어내 서브채널군(D)의 특정일원을 사용함으로써 입/출력 장치(IOD)에 의해 발생할때, 상기 하드웨어는 가상 어드레스 변환 테이블(VATT)(변환정보(E))를 사용하고 게스트에 의해 사용되는 가상 서브채널 번호(가상 식별자(B))를 서브채널(SCH)에 서브채널 번호(물리적 식별자(C))로 변환한다. 하드웨어는 가상 서브채널 번호를 사용함으로써 게스트에 입/출력 인터럽트를 발생시킨다.
상기 상태에서와 같이, 본 발명에 있어서, 하드웨어내 제어정보, 즉, 게스트에 대응하는 서브채널(SCH)을 동적으로 개설하기 위한 구조 및 게스트 입/출력 구조와 물리적 입/출력 구조 사이의 변화 구조(GST, VATT)는 하드웨어내에 제공된다. 그러므로, 입/출력 처리는 호스트에 게스트 입/출력 처리를 제공하지 않고 실행될 수 있다.
제 4 도는 본 발명의 가상 컴퓨터 제어 시스템의 처리를 도시하였고 제 5 도는 본 발명의 실시예를 도시하였다.
정보블록(A)는 사용자에 의해 제공된 각 게스트 101,102의 입/출력 장치의 구조를 기술하였다. 정보블록(A)를 기초로, 게스트 서브채널 번호와 물리적 서브채널 번호 사이의 관계를 기술한 변환정보(D)(GST,VATT)가 하드웨어 104에 제공될때 하드웨어 104는 게스트 101 또는 102의 입/출력 처리를 실행하기 위해 서브채널 031 또는 032를 동적으로 취득한다. 다음의 단계에서, 입/출력 명령이 게스트 101 또는 102 각각에 의해 발행되거나, 입/출력 인터럽트가 물리적 입/출력 장치(IOD) 105로부터 발생할때, 하드웨어 104는 변환정보(D),(GST,VATT) 214,216을 기초로 입/출력 명령을 실행하거나 호스트 103에 의한 동작없이 게스트 102 또는 102에 가상 입/출력 인터럽트를 발생시킨다. 동일 참조번호 모든 도면에서 동일조건으로 적용된다.
본 발명의 가상 컴퓨터 제어 시스템과 특정한 입/출력 제어 시스템은 제 4 도와 제 5 도에 의거하여 설명될 것이다. 하드웨어 구조는 본 발명의 가상 컴퓨터 시스템으로서 설명될 것이다.
하드웨어 104에 의해 단지 엑세스될 수 있는 가상 어드레스 변환테이블(VATT) 216과 서브채널(SCH) 031,032등의 하드웨어 제어정보 블록은 주기억장치 (MSU)203의 전용 하드웨어 영역 또는 하드웨어 시스템영역(HSA) 205에 위치한다.
서브채널(SCH) 031, 032는 입/출력 장치(IOD) 106에 대해 게스트에 대응하는 물리적 서브채널이다. 하드웨어 제어정보블록(C)는 입/출력 장치(IOD) 105를 사용하는 게스트를 결정하는 입/출력 처리와, 제어블록군(E)를 제어하기 위한 것이다.
따라서, 만약 입/출력 장치(IOD) 105가 N게이트에 의해 사용된다면, N서브채널(SCH) 031,032는 입/출력 장치(IOD) 105에 대해 게스트에 따라 제공된다. 각각의 서브채널(SCH) 031,032는 각 입/출력장치(IOD)105에 대해 게스트의 상태에 따라 제공된다.
물리적 입/출력장치(IOD)105의 어드레스(입/출력경로 정보를 포함)와 입/출력장치(IOD) 105의 상태(미사용 상태, 잘못되어 있는 상태, 전원주입 상태 등)는 각 서브채널(SCH) 031,032의 소프트웨어의 견지에서 기술하였다.
하나의 서브채널(SCH) 031 또는 032에 의해 사용되는 물리적 입/출력 어드레스는 다른 하나의 서브채널에 의해 사용되지 않는다.
가상 어드레스 변환테이블(VATT) 216은 게스트 서브채널 번호(가상 식별자(B))를 물리적 서브채널 번호(물리적 식별자(C))로 변환시키기 위한 것이다. 입/출력 인터럽트가 발생할때, 입/출력 처리기(IOP) 206을 통해 하드웨어 104로부터 전송된 물리적 서브채널 번호는 이 하드웨어 구조에 의한 게스트 서브채널 번호로 변환한다. 어드레스 변환테이블(ATT) 207은 종래의 기술(제 1 도)과 동일한 방법으로 물리적 서브채널 번호를 물리적 입/출력 어드레스로 변환시킨다. ATT 207은 입/출력 처리기(IOP) 206에 제공된다.
입/출력 경로에 의해 취득한 물리적 채널 번호는 항상 다르다. 이 실시예에서, 채널(CHC) 208 또는 209가 입/출력장치(IOD) 105와 통신하여 사용됨에 따라, 어드레스 변화테이블(ATT) 207의 출력은 물리적 서브채널(SCH) 031 또는 032를 포인트한다. 테이블 ATT는 입/출력 처리기(IOP) 206안에 제공된 고속 메모리에 의해 형성된 구조를 나타낸다.
게스트 서브채널 변환테이블(GST) 214는 물리적 서브채널번호(물리적 식별자(C))를 게스트 서브채널 변호(가상 식별자(B))로 변환시키기 위한 것이고, 호스트 103에 의해 발생된 게스트 셋-업 구조의 오퍼랜드를 제공한다. 이 실시예에서, GST 214는 종래와 동일한 방법으로 주기억 장치(MSU)에 가까운 호스트 103을 제공한다. 셋-업 게이트 102 또는 103에 의해 발행된 게스트 입/출력 명령의 게스트 서브채널 번호(가상 식별자(B))는 테이블(GST) 214의 참조로 하드웨어 104에 의해 물리적 서브채널 번호(물리적 식별자(C))로 변환한다.
제 6a 도는 본 발명의 하드웨어를 사용함으로써 게스트 서브채널(GSCH)번호로부터 물리적 SCH번호를 얻기위해 사용되는 구조를 변환시키는 어드레스의 블록도를 도시하였다. 게스트 상태 제어블록(GACB)은 호스트에 의해 발행되는 셋-업 게스트(STUPG)명령의 오퍼랜드이다. 셋-업 명열이 호스트에 의해 발행될때 하드웨어는 명령의 오퍼랜드인 GSCB의 정상 어드레스를 기억한다. 게스트 입/출력 명령이 게스트에 의해 발행될때, 하드웨어는 상기 언급한 동작에 의해 미리 취득한 GSCB에 포함되는 정보를 사용하는 게스트와 관련된 GST의 헤드 어드레스와 게스트의 식별자 정보를 페치한다.
그 후에, 하드웨어는 GST의 엔트리를 제공하기 위하여 이 GSCB의 2차 엔트리의 GST헤드 어드레스에 게스트 서브채널(GSCH)번호를 6번 더한다. 그것에 의해서 GST, 즉, 6바이트로 이루어진 GST의 각 엔트리로부터 골라 물리적 서브채널 번호를 인에이블링한다. 그러므로, GST의 각 관련 어드레스는 GST헤드어드레스를 0으로 만들때 6으로 GSCH번호를 곱함으로써 얻어진다. 이 어드레스는 게이트에 대응하는 GST엔트리를 제공하기 위하여 GST의 헤드 어드레스에 더해진다.
제 6a 도에 도시한 바와 같이, 물리적 서브채널 번호와 물리적 I/O식별자는 GST에 저장된다. 따라서, 물리적 서브채널 번호와 물리적 I/O식별자는 가상 게스트 채널 번호를 기초로 그려질 수 있다. 본 발명의 하드웨어는 테이블을 액세스하고 호스트를 사용하지 않는 호스트 밖의 전용 사이퀸스를 제공함으로써 어드레스 변환동작을 실행한다.
제 6b 도는 제 6a 도에 도시한 그것과 마주하고 있는 루트에 따라 인터럽트 발생장치 식별자 데이타로부터 제스트 I/O식별자를 얻기위한 포인트 제어를 설명하기 위한 하드웨어 블록도를 도시하였다. 제 6b 도에 도시한 하드웨어는 테이블 ATT 및 VATT를 액세스하고, 물리적 I/O어드레스 및 선택 경로 데이타로 이루어진 인터럽트 발생데이타를 사용함으로서 그것들의 어드레스를 변환시킨다. 그것에 의해서 게스트 I/O식별자를 몰아낸다. 제 6b 도에서, 인터럽트 발생 식별자 데이타는 ATT테이블을 사용하는 물리적 서브채널 번호를 구동시키고 IOP에 인가된다. 대응 VATT엔트리의 헤드어드레스는 물리적 서브채널 번호를 4로 곱함으로써 발생한다. 그것에 의해서 VATT로부터 게스트 식별자와 게스트 I/O식별자를 그린다. VATT의 헤드어드레스는 도시하지 않았으나 특정 헤드 어드레스가 존재할때이다. 4번의 물리적 채널 번호는 VATT를 액세스하기 위해 헤드 어드레스에 인가된다. 서브채널은 물리적 서브채널 영역의 어드레스에 물리적 서브채널 번호를 32번 더함으로써 제공된 어드레스로부터 얻어진다. 물리적 서브채널은 32바이트/엔트리로 이루어졌다. 언터럽트 발생장치 식별자 데이타는 I/O인터럽트의 발행시 ATT에 의해 물리적 서브채널을 변환시키고, 본 발명의 하드웨어 제어에 따라 게스트 식별자와 게스트 I/O식별자로 변환한다.
다음은, 제 6a 도와 6b 도에 사용된 각 테이블의 엔트리가 설명될 것이다.
종래기술에 있어서, GST의 전체 내용은 호스트에 의해 세트되나 이 발명에서 물리적 I/O식별자는 호스트가 게스트 셋-업 명령을 발행할 때 하드웨어 104에 의해 라이트된다.
GST는 물리적 I/O식별자(C)를 가상 게스트 식별자(B)로 변환시킨다. 그것의 포맷의 예는 제 7 도에 도시하였다.
제어필드 베트 0.....................................유효 플래그
이것은 이 엔트리를 사용하는 게스트 I/O식별자에 대응하는 물리적 I/O식별자가 존재함을 도시하였다. 종래의 시스템에서 이 비트가 0일때, 이 엔트리에 대응하는 게스트 I/O식별자를 사용하는 게스트 I/O명령이 발행되고 호스트가 이뮬레이션을 실행하므로 응답코드는 대응 I/O장치가 존재하지 않을때 얻어진 것과 같게된다. 이 발명에서 게스트I/O명령은 비트가 0일때 호스트에 제공된다. 더욱이, 비트가 0일때, 이 엔트리 이외의 데이타는 의미가 없다. 따라서 게스타 셋-업 명령이 발행될때 서브채널을 얻을 수 없다.
제어필드 비트 1.......................................I/O명령취득 플래그
오퍼랜드로서 이 엔트리에 대한 게스트 I/O식별자를 사용하는 게이트 I/O명령이 발행될때, 본래의 방법으로 실행되지 않으나 호스트에 의한 특정처리가 필요하다. 이 비트가 1일때, 특정 처리는 호스트에 대해 요구한다. 예를들면, I/O에라는 다수의 게스트에 의해 공유된 I/O장치에 의해 발생한다. 종래기술에 있어서, 이 비트가 "1"일때, 본래의 게스트 I/O처리 서비스 루틴의 그것과 다른 처리가 시작된다. 이 실시예에서, 이 비트가 "1"일때, 게스트 I/O명령은 호스트에 의해서 얻어진다.
제어필드 비트 2.......................................I/O인터럽트 취득 플래그
이것은 I/O명령의 발행시 사용되지 않는다. 종래의 시스템에서, 호스트는 VATT에 그것을 기록하고 그것은 GST에 존재하지 않는다. 본 발명에서, 액세스되는 영역에 존재하는 VATT는 하드웨어에 의해 만들어질 수 있고 하드웨어에 의해 만들어 질 수 있고 하드웨어에 의해 형성된다. GAT는 입력정보로서 사용된다. 이 비트는 게스트 셋-업 처리시 하드웨어에 의한 것이고 VATT에 복사된다.
상세한 설명은 VATT에 관련하여 나중의 설명으로 주어진다. GST엔트리에 대한 비트 1과 비트 2는 쌍으로서 온/오프 동작을 필요로 한다. 만약 그것이 아니라면, 일관된 I/O처리는 게스트의 견해로부터 확실하지 않다
제어 필드비트 3 내지 7..............................미사용 비트
제어 필드비트 8 내지 15............................A사용경로 지정필드
대응하는 물리적 장치는 8 I/O경로의 혼합으로 주 장치와 결합할 수 있다. 8경로의 그것으로 도시한 대응비트의 비트방법은 이 게이트에 의해 사용되어야 한다. 즉, I/O장치는 만약 I/O경로가 다르다면 다수의 게스트에 의해 공통적으로 사용될 수 있다. 종래의 기술에 있어서, 정보는 본 발명에 그리고 호스트에 의해 발행된 I/O명령의 오퍼랜드(사용가능한 경로 지정 정보)로서 사용되고, 필요한 서브채널을 창조하기 위하여 하드웨어를 인에이블하게 사용한다.
물리적 I/O식별자, 이것은 시스템의 장치를 규정하고, 예를들면 장치번호이다. 이 필드는 장치가 이 엔트리에 대응하는 게스트 I/O장치 식별자에 기동적으로 지정하기 위해 사용된다.
종래기술에 있어서, 본 발명에서 뿐만 아니라 이것은 호스트에 의해 라이트된다. 본 발명에서, STUPG명령(후에 설명됨)은 호스트에 의해 발행되고, 하드웨어는 내부에 이미 제공된 I/O구조 데이타 베이스를 기초로한 데이타에 의해 형성되는 게스트 I/O처리제어에 대한 서브채널의 입력 데이타를 형성하는 대상장치의 데이타를 얻는다. 종래기술에 있어서, 이 데이타는 동작자에게 메세지를 발행하기 위해 호스트에 대해 사용되는 메모리이다.
물리적 서브채널번호 종래기술에 있어서, 호스트에 의해 라이트되고, 오퍼랜드 데이타로서 사용된다. 여기서 호스트는 이 엔트리를 사용하는 게이트 I/O명령을 에뮬레이트 하기 위하여 I/O명령을 발행한다. 이 발명에서, 이것은 호스트가 STUPG명령(후에 설명됨)을 발행할때 하드웨어에 의해 라이트되고, 물리적 서브채널을 동일시하는 데이타가 이 엔트리에 의해 사용되는 게스트 I/O명령 또는 게스트 I/O인터럽트를 실행하기 위하여 하드웨어에 의해 새롭게 형성되고, 이것은 호스트에 의해 사용되지 않는다.
GST엔트리는 상기 예에서 6바이트/게이트 식별자로 이루어졌고, 그것은 본 발명과 종래 둘다의 게스트 I/O명령의 발행으로 사용되고 본 발명의 호스트에 의해 게스트 셋-업 명령의 발행으로 사용된다.
이 실시예에서, GST의 헤드 어드레스는 후에 설명된 게스트 셋-업 명령 STUPG(셋-업 게스트)에 의해 하드웨어에 전송되고, 대응하는 게스트는 저장된다. 사실상, STUPG명령의 오퍼랜드의 GSCB(게이트 상태 제어블록)의 헤드 어드레스는 대응하는 게스트에 저장된다. 이 명령에 의해 수신된 하드웨어는 이 어드레스는 사용하는 GST를 액세스하고 HSA내 대응하는 게스트에 VATT를 형성한다.
게스트 I/O명령의 발행시, 호스트(종래)/하드웨어(본 발명)은 게스트 I/O식별자 X6(바이트)의 값까지 대응하는 게스트에 GST헤드 어드레스를 더한다. 이것은 대응하는 게스트 I/O식별자에 GST엔트리를 액세스하기 위하여 실행된다.
이와 같은 지정은 본 발명의 GST에서 어드레스에 제공되고, 호스트가 얻어진다. 게스트의 상태후에, 게스트 CPU의 프로그램 카운터와 내부 레지스터 등은 게스트 상태 제어 블록 GSCB에 세이브(Save)된다.
게이트 CPU식별자는 오퍼랜드로서 호스트에 의해 얻어진다. 만약 이와 같은 지정이 발행되지 않으면, 호스트(종래)/하드웨어(본 발명)은 GST엔트리에 기술된 물리적 서브채널 식별자를 폐치한다.
종래기술에 있어서 GST엔트리의 1바이트에 기술된 데이타를 지정하는 경로는 호스트에 의해 서브채널 식별자에 추가되고, 게스트 I/O명령을 에뮬레이트 하기 위하여 그것으로 발행하는 I/O명령의 일부 오퍼랜드와 같이 호스트에 의해 사용된다. 본 발명에서 하드웨어는 경로 지정 데이타를 포함하는 서브채널이 이미 얻어졌다. GST엔트리에 언급된 물리적 서브채널 식별자는 STUPG명령의 발행시 하드웨어에 의해 얻어진 서브채널의 식별자이다. I/O동작은 이 서브채널에 직접 인가된다.
VATT는 게스트에 의해 사용된 가상 게스트 식별자(B)를 물리적 I/O식별자로 변환시키는 테이블이다. VATT의 포맷은 제 8 도에 도시한 것이다.
종래기술에 있어서, 호스트는 호스트에 의해 사용 VATT를 형성한다. 본 발명에서, VATT는 입력으로서 GST를 사용하는 하드웨어에 의해 형성되고, 하드웨어에 의해 단지 사용된다.
VATT는 4바이트/엔트리이고, 엔트리는 대응하는 물리적 서브채널에 형성된다.
제어 필드 비트 0............................................유효 플래그
이 엔트리에 대응하는 게이트 I/O식별자(게스트 서브채널 번호)는 존재한다. 즉, 이것은 이 엔트리에 대응하는 물리적 서브채널을 사용하는 게스트가 존재함을 도시하였다. 이 플래그가 0일때, I/O인터럽트는 호스트에 보고된다. 종래기술에 있어서, 호스트 자신의 I/O인터럽트 핸들러(handler)로 불리워졌다. 그러나, 이 발명에서, I/O인터럽트는 호스트에 의해 얻어졌다.
제어필드비트 1..........................................I/O인터럽트 취득 플래그
이 엔트리에 대응하는 게스트 I/O장치의 I/O인터럽트는 특정처리가 필요함을 도시하였다. 종래기술에 있어서, 비트는 특정 처리기 루틴에 엔트리하기 위한 스위치로 이용되고, 호스트에 의해 세트된다. 본 발명에서, 대응 GST내 I/O인터럽트 취득 플래그는 STUPG명령의 발행시 하드웨어에 의해 복사되고, 이 엔트리에 대응하는 I/O인터럽트는 호스트에 의해 얻어진다.
제어필드비트 2-7...................................마사용 필드.
제어필드비트 8-15..................................게스트 식별자.
이 필드는 이 엔트리에 대응하는 물리적 서브채널을 사용하는 게스트의 게스트 식별자를 기술하였다.
게스트 I/O식별자는 게스트 I/O인터럽트의 발생시 게스트에 전송된다. I/O인터럽트시, ATT에 의해 물리적 서브채널 번호로 변환하는 장치를 발행하는 인터럽트의 식별자 데이타는 VATT에 의한 게스트 I/O장치의 식별자를 게스트 펄스의 식별자로 변환시킨다. I/O인터럽트 시, 만약 대응 게스타가 동작하지 않으면, 종래의 인터럽트 조건은 소프트웨어에 의한 자신의 호스트를 내부에 유지한다. 그러나, 본 발명에서, 인터럽트 조건은 하드웨어로 유지된다. 종래기술에 있어서, 인터럽트 조건이 호스트에 의해 사용되는 게스트에 대한 제어정보의 게스트에 의한 호스트에 유지되는 소프트웨어법이 사용되고 플래그가 지정된다.
더욱이, 게스트들의 셋-업시 또는 게스트에 의한 I/O마스크 제어명령의 발행시, 호스트는 특정관리를 실행하기 위하여 필요하다. 본 발명에서 이 모니터링은 하드웨어에 의해 실행된다. 따라서, 소프트웨어에 의해 실행된 모니터링은 필요치 않다. 이 제어에 따라서, 하드웨어는 동일장치에 의한 다수의 서브채널을 얻는다. 따라서, 여기서 장치는 다수의 게스트에 의해 일반적으로 사용되고 상기 제어는 하드웨어의 관리장치의 물리적 서브채널에서 유지될 수 있는 인터럽트 조건때문에 가능해진다.
가상 컴퓨터 시스템에서 본 발명의 입/출력 처리와 상기 상태로서 특정짓는 하드웨어 구조는 다음과 같이 설명된다.
(a) 게스트에 대한 입/출력 명령의 실행시
(1) 게스트 101 또는 102가 호스트 103에 의해 셋-업될때, 사용자에 의해 설계된 게스트 입/출력 구성은 호스트 103에 의한 게스트 서브채널 변환테이블(GST)(예를들면 214)로 형성된다.
다음에, 가상 어드레스 변환테이블(VATT)(예를 들면 216)은 하드웨어 104에 의한 게스트 서브채널 변환테이블(GST) 214로부터 주기억 장치(MSU)의 전용 하드웨어 영역 또는 하드웨어 시스템 영역(HSA)에 형성되고, 2개의 변환데이타(D)(GST,VATT)를 기초로, 그것은 물리적 서브채널(SCH)(예를들면 031)(제어블록군(E))을 동적으로 얻는다.
동시에 하나의 물리적 입/출력 어드레스는 대응하는 다수의 서브채널(SCH)로 만들지 않는다.
(2) 게스트 입/출력 명령이 셋-업 게스트에 의해 발행될때, 명령의 오퍼랜드의 게스트 서브채널 번호(가상 식별자(B))는 게이트 서브채널 변환테이블(GST) 214로 물리적 서브채널번호(물리적 식별자(C))를 변환시키고, 물리적 서브채널(SCH) 031은 호스트 103을 통하여 가지않고 시작된다.
시작된 게이트 101 또는 102에 할당된 입/출력 경로가 사용된다. 예를들면, 입/출력 처리에 의해 사용될 수 있는 경로는 채널(CHE) 208-입/출력 제어 장치(IOD) 210-입/출력장치(IOD) 105를 통한다.
(b) 게이트 입/출력의 인터럽트 발행시 :
(1) 하드웨어 104는 입/출력 장치(IOD)에 대응하는 물리적 서브채널(SCH) 031을 얻고, 입/출력 처리장치(IOD) 206내 어드레스 변화테이블(ATT) 207를 의거함으로써 입/출력 인터럽트 조건을 보고한다.
(2) 얻은 물리적 서브채널(SCH) 031에 대응하는 물리적 서브채널 번호(물리적 식별자(C))는 하드웨어 104로 가상 어드레스 변환테이블(VATT) 216에 의거하여 게스트 서브채널 번호(가상 식별자(B))를 변환하고, 호스트를 통하여 가지 않는 대응 101 또는 102에 대해 입/출력 인터럽트를 직접적으로 발생시킨다.
다음에, 본 발명에 따라 게스트 제어/셋-업이 설명될 것이다.
게스트 셋-업은 호스트에 의해 발행된 STUPG명령(셋-업 게스트)에 의해 실행된다. STUPG명령의 오퍼랜드는 제 9 도에 도시한 바와 같이 GSCB(게스트 상태 제어블록)이다. STUPG명령은 오퍼랜드로서 GSCB의 헤드어드레스를 사용한다.
모든 내용은 STUPG명령의 발행시 호스트에 의해 라이트된다. 본 발명에 관련된 게스트 처리필드의 포함된 비트들은 다음과 같다.
비트 0................................................게스트 I/O처리 직접실행
이 비트가 일때, 하드웨어는 GST헤드 어드레스와 STUPG 명령처리의 부분으로서 GSCB에 언급된 GST엔트리번호를 사용함으로써 GST의 내용을 액세스하고, 거기에 지정된 데이타를 사용함으로써 물리적 서브채널을 얻는다. 즉, GST엔트리의 비트 8-15의 경로 지정 데이타는 GST엔트리에서의 비트 0이 1되는 모든 데이타에 대해 물리적 I/O장치 식별자 데이타에 의해 얻은 기본 데이타에 더해진다. 따라서, 물리적 서브채널이 형성되고 서브채널 번호가 GST엔트리의 바이트 4 내지 5에 라이트된다.
게스트를 접근한 STRTG(스크래치 게스트(Scratch guest)명령이 발행될때까지 GSCB는 호스트 절대어드레스 공간에 내재하는 것을 갖는다. 하드웨어가 게이트 동작에 대해 호스트에 보고된 사건들을 알아낼때, 호스트 취득이 발생한다. 그다음, GSCB에서 각 게스트 CPU들에 대응하는 영역을 미리 세이브된다. 내부 상태를 로딩하고, 게스트의 상태를 세이빙하기 위한 영역으로서 사용된다.
여기서 SGSTC(시작 게스트 CPU)명령은 게스트를 주행하기 위한 명령으로서 발행된다. SCRTG명령이 발행될때 하드웨어는 GST를 액세스하고, 게스트에 대해 얻고 내부에 기술될 물리적 서브채널은 풀어진다.
전체의 흐름은 제 10 도에 도시하였다. 게스트는 점 또는 선에 의해 지정된 기간동안 존재한다. 게스트 A 또는 B는 선에 의해 지정된 일부에 대한 단지 주행상태이다.
다음, 제 11 도는 본 발명에 따른 서브채널 포맷의 예를 도시한다. 도면에서, 워어드들에 상응하는 각 열들과 각 워어드들은 1바이트의 유니트들에서 필드들로 분할된다. 각 필드들의 의미는 다음과 같다.
워드 0, 바이트 0.......................................록(lock)바이드
서브채널은 IOP/CPU 등의 다수 유니트들에 의해 갱신된 자체로서 전용제어를 필요로 한다. 그러므로, 이러한 록 바이트를 사용하는 전용 하드웨어 구조가 제공된다.
워어드 0, 바이트 1-2...................................내부상태지정
본 발명에 관련된 데이타는 다음과 같다.
바이트 1, 비트 1.......................................가상 컴퓨터 액세스 모우드
이 비트가 1이면, 워어드 2, 바이트 0의 게스트 식별자는 유효가 되고, CCW(채널 명령 워어드), 데이타 및, 이 서브채널에 의해 행해지는 IDAW액세스는 그들이 MCU에 의해 제공된 가상 컴퓨터 어드레스 변환구조의 처리대상임을 지정함으로써 수반되며, IOP는 요구를 발행한다. 비트가 0이면, 어드레스 변환은 MCU에 대해서 요구되지 않는다.
바이트 1, 비트 1..........................................호스트 전송지정 플래그
이것은 호스트 인터럽트 조건이 서브채널을 사용하는 오드 CPU측 처리(I/O명령과 I/O인터럽트)들에 확립된 여부를 CPU가 검사하는 스위치이다. 이 비트는 대응하는 GST엔트리에서 비트 1 또는 비트 2가 호스트에 의해 설정될 때에 설정된다. 이 비트가 0이면, 검사가 행해지지 않는다.
워어드 0, 바이트 3........................................US(유니트 어드레스)
이것은 채널 인터페이스상에 이 장치를 선택하기 위한 어드레스이다. 그것은 IOP에 의해 채널 인터페이스에 전달되고, 장치와의 데이타 교환을 위해 사용된다.
워어드 1,..................................................전후방향 큐 포인터
이것은 인터럽트 큐 또는 I/O처리 큐 연결할때 기동된 연결 포인트이다.
워어드 2, 바이트0........................................게스트 식별자
이것은 CPU의 인터럽트 대상을 선택하고, 인터럽트가 가능한지를 결정하고, 또는 데이타 전송시에 데이타가 게스트 공간으로 전송되어야만 되는 것을 결정하기 위해 사용된다.
워어드 2, 바이트 1.......................................연결경로 지정데이타
이 서브채널이 사용될 수 있는 경로가 지정된다. 경로지정은 워어드 2, 바이트 2~3에서 기술된 경로 그룹에서의 경로가 최대 8경로로 이루어지는 경로 그룹에서 사용되는 비트대 비트상응관계로 도시한다. 이 경우에, 채널들의 그룹은 경로그룹으로서 고려될 수 있다. 이 1-바이트 데이타는 이 장치가 그룹중의 경로에 연결되는 것을 도시한다. 하나의 게스트 I/O식별자에 대응하는 하나의 물리적 서브채널은 다수의 경로들에 연결될 수 있다.
상술된 바와 같이, 본 발명에 따른 게스트 입/출력명령 또는 입/출력 인터럽트의 통상처리에서, 호스트에 의한 도움은 필요없으며, 입/출력 처리에서의 호스트의 오버헤드 즉 종래의 문제가 크게 감소될 수 있다.
따라서, 본 발명에 따라, 게스트에 의해 인지된 게스트 서브채널 번호(B)와 하드웨어에 의해 실제로 사용되는 물리 서브채널번호(C) 사이의 관계를 설명하는 사용자 변환 데이타(D)에 의해 지정된 각 게스트의 입/출력 구조를 설명하는 데이타 블록(A)을 기초로 하여, 가상 컴퓨터 시스템에서 각 가상 컴퓨터의 입/출력 처리시스템에 하드웨어로 제공된다. 예를들면, 게스트 세브채널 변환 테이블(GST)와 가상 어드레스 변환 테이블(VATT)로 이루어지는 변환 데이타는 하드웨어와 호스트에 의해 발생되고, 하드웨어로 제공된다. 따라서, 하드웨어는 단독으로 대응 게스트의 입력과 출력처리를 행하기에 필요한 물리 서브채널(SCH)을 동적으로 얻는다. 가상 입력과 출력명령이 게스트에 의해 발행되면, 게스트 서브채널 변환 테이블은 입력과 출력처리에 필요한 서브채널(SCH)을 확인하며, 하드웨어는 입력과 출력명령을 실행한다. 입력과 출력 인터럽트가 입력과 출력장치(IOD)에 의해 발생되면, 하드웨어는 가상 어드레스 변환 테이블(VATT)를 기초로 하여 게스트를 확인하고, 그에 의하여 게스트가 입력과 출력 인터럽터를 발생할 수 있다.
그러므로, 하드웨어 내의 제어 데이타, 즉 게스트에 따라 동적으로 서브채널(SCH)을 설정하기 위한 구조와, 게스트 입/출력 구조와 물리 입/출력 구조 사이의 변환 구조(GST, VATT)가 하드웨어에 제공되며, 이것은 게스트 입/출력 처리가 호스트상에 제공되지 않더라도 입/출력 처리를 실행할 수 있게 하며, 그에 의하여 호스트의 오버헤드가 감소한다.
본 발명은 또한 가상 컴퓨터 모니터의 로드를 감소시키기 위하여 가상 컴퓨터 시스템에서 입/출력 처리의 입터럽트 처리 제어방식을 나타낸다.
제 12 도는 본 발명의 다른 실시예의 원리구조를 도시한다. 그것은 호스트 501, 게스트 502와 503 ; 논리 CPU 502-1, 502-2, 503-1, 503-2 ; 가상 인터럽트 마스크 502-11, 502-12, 503-11 및 503-12 ; 하드웨어 504 ; 하드웨어 인터럽트 마스크 504-1 ; 및 서브 채널 505로 이루어진다. 가상 인터럽트 마스크 502-11, 502-12, 503-11 및 503-12는 제 2 도와 제 3 도에 도시된 종래와 동일한 방법으로 각 논리 CPU에 대해 제공되며, 각 비트들은 I/O장치와 다른 인터럽트 요구에 대응한다. I/O인터럽트는 비트값이 "1"일때에만 수신된다. 하드웨어 인터럽트 마스크 504-1은 종래의 것과 다르며, 각 마스크 비트들은 각 논리 CPU에 대응한다.
본 발명의 처리분담 또는 배분에 따라, 호스트는 통상의 경우에 I/O 인터럽트의 분배를 행하지 않는다. I/O인터럽트는 호스트에 의한 분배처리를 통하지 않고 직접 각각의 논리 CPU에 보고된다. 하드웨어 인터럽트 마스크 504-1의 각 비트들은 각각의 논리 CPU들에 대응하며 I/O인터럽트 서브채널에 설명된 인터럽트 보고 데스티네이션 CPU에 상당하는 마스크 비트들을 사용함으로서 논리 CPU들에 보고된다.
제 13 도는 본 발명의 실시예를 도시한다. 그 실시예는 호스트 511 ; 게스트 512와 513 ; 논리 CPU a/f 511-1, 511-2, 512-1, 512-2, 513-1, 및 513-2 ; 각각의 가상 인터럽트 마스크 511-11, 512-11, 및 512-12 ; 하드웨어 514 하드웨어 인터럽트 마스크 514-1 ; 서브채널 515 ; 및 인터럽트 보고 데스티네이션 515-11을 포함한다. 가상 인터럽트 마스크 511-11, 512-11, 및 512-12는 각 논리 CPU들에 제공되며, 각 비트들은 I/O장치로부터의 인터럽트 요구에 대응한다. I/O인터럽트는 비트값이 "1"일때만 수신된다.
하드웨어 인터럽트 마스크 514-1의 각 마스크 비트들은 일대일 관계로 논리 CPU들에 대응한다. I/O인터럽트는 논리 CPU가 "1"의 대응 마스크 비트값을 가질때만 보고된다.
I/O인터럽트 보고 데스티네이션 논리 CPU가 인터럽트 보고 데스티네이션 515-1에 나타나 있다. "1"로서 서브채널과 관계하는 I/O장치에 대응하는 가상 인터럽트 마스크 비트를 설정하기 위한 논리 CPU가 보고 데스티네이션 논리 CPU로서 선택된다.
본 발명의 동작을 가상인터럽트 마스크 설정시와 게스트 I/O인터럽트의 발생시로 분리하여 설명한다.
(a) 가상 인터럽트의 설정시
(1) 가상 인터럽트의 설정시에 게스트 논리 CPU-C(512-1)는 필요하면 가상 인터럽트 마스크 512-11을 설정한다. I/O장치에 대응하는 비트(예를들면 Ciol)의 값을 "1"로 함으로써 I/O장치에 대응하는 서브채널 515로부터의 인터럽트 요구가 수신될 수 있다.
(2) 호스트 511은 게스트 논리 CPU-C에 대응하도록 하드웨어 인터럽트 마스크 514-1의 비트 C를 "1"로써 설정하고 논리 CPU-C를 설정하고 가장 최신의 마스크 비트들을 515-1에서 인터럽트 보고 데스티네이션으로써 설정한다.
(3) 상기 동작 다음에 어떤 게스트 논리 CPU(예를들면 512-2)은 가상 인터럽트 마스크 512-12의 비트 iol를 "1"로서 설정한 다음 D는 하드웨어에 의하여 서브 채널에서 인터럽트 보고 데스티네이션 515-1에 설정된다. 그 이후 서브채널로부터의 인터럽트 요구가 게스트 논리 CPU-D에 보고된다.
(4) 어떤 게스트 논리 CPU(예를들면 512-2)가 다른 물리적인 CPU에 급송되면, 호스트는 다른 물리적인 CPU하드웨어 인터럽트 마스크 상에 그 시간까지 사용되는 하드웨어 인터럽트 마스크 514-1의 대응비트 D의 값을 반영한다.
(b) 게스트 I/O인터럽트의 발생시
(1) I/O장치가 인터럽트조건을 발생하면 보고 데스티네이션 C는 인터럽트 보고 데스티네이션 515-1의 내용을 기초로 하여 선택된다.
(2) 게스트 논리 CPU-C(512-1)에 대응하는 하드웨어 인터럽트 514-1의 비트 C가 '1"이면 I/O인터럽트 조건은 논리 CPU-C에 보고된다.
본 실시예에 따라, 하드웨어 인터럽트 마스크의 각 비트들이 각 논리 CPU들에 대응하도록 이루어진다. 더욱이 논리 CPU에 대응하는 주행 물리적 CPU의 하드웨어 인터럽트 마스크는 인에이블되며, 그것에 의하여 호스트가 하드웨어 인터럽트 마스크의 시분할법에 의해 수반되는 동작을 필요없게 만든다. 각 서브채널로 라이트되는 논리 CPU와의 관련정보는 서브채널로부터의 인터럽트 조건을 수신할 수 있는 마스크 비트 변환동작을 가장 먼저 실행하는 논리 CPU에 대응하는 관련정보로 동적으로 변환되며, 그것에 의하여 입/출력 장치로부터의 부동 인터럽트 처리가 용이하다.
상술된 바와 같이, 호스트는 논리 CPU들 중에 I/O인터럽트 요구를 분배할 필요는 없으나 하드웨어 인터럽트 마스크의 비트위치에 따라 인터럽트 보고 데스티네이션을 결정할 수 있다. 그러므로, 종래에 문제를 야기시키는 I/O인터럽트 처리에서 호스트 처리시의 오버헤드가 크게 감소될 수 있다.

Claims (14)

  1. 상기 가상 컴퓨터를 모니터하고, 상기 가상 컴퓨터들에 의해 인지되는 입/출력 장치 구조의 가상 식별자와 실제로 사용되는 물리식별자사이의 관계를 기술하는 변환 정보를 제공하기 위한 가상 컴퓨터 모니터 수단과, 상기 가상 컴퓨터 모니터 수단이 하드웨어 수단에 상기 변환정보를 제공할때에, 상기 정보블록과 변환정보를 기초로 하여 상기 가상 컴퓨터의 입/출력 처리를 행할때에 필요한 내부-하드웨어 제어 블록군을 동적으로 취득하는 첫번째 하드웨어 수단과, 가상 컴퓨터가 입/출력 명령을 발생할때에 변환정보를 기초로 하여, 각각의 가상 컴퓨터들에 의하여 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 식별자를 물리식별자로 변환하고, 내부-하드웨어 제어 블록 군의 한 제어블록을 확인하고, 상기 제어블록을 사용하여 입/출력 처리를 행하는 두번째 하드웨어수단과, 입/출력 장치에 의한 내부-하드웨어 제어블록을 사용하므로써, 입/출력 인터럽트가 발생될때에 상기 제어 블록의 물리식별자를 가상 컴퓨터에 의해 사용되는 가상식별자로 변환하고, 가상 식별자를 사용하여 입/출력 식별자를 가상 컴퓨터에 제공하는 세번째 하드웨어 수단으로 이루어지고, 다수의 가상 컴퓨터에 제공되는 입/출력 장치구조를 기술하는 정보블록을 갖는 가상 컴퓨터 제어 시스템.
  2. 청구범위 제 1 항에 있어서, 상기 가상 컴퓨터 모니터 수단이 호스트이고, 상기 가상 컴퓨터들이 각각 게스트이고, 상기 가상 식별자가 게스트 서브채널번호이고, 상기 물리식별자가 서브채널번호이고, 상기 내부-하드웨어 제어 블록군이 서브채널들을 포함하는 가상 컴퓨터 제어 시스템.
  3. 청구범위 제 2 항에 있어서, 상기 두번째 하드웨어 수단이 셋업 게스트 명령이 오퍼랜드인 게스트 상태 제어 블록(GSCB)의 헤드 어드레스와 게스트 서브채널 번호의 어드레스 변환동작을 행하고, 상기 변환정보의 하나인 게스트 변환 테이블(GST)의 엔트리를 그리고, 상기 게스트 변환 테이블의 엔트리에 위치된 물리 I/O식별자와 물리 서브채널 번호를 읽어내는 가상 컴퓨터 제어 시스템.
  4. 청구범위 제 3 항에 있어서, 게스트 변환 테이블 GST의 엔트리가 제어필드, 물리 I/O 식별자 및 물리 서브채널 번호를 포함하고, 상기 첫번째 하드웨어 수단이 게스트 셋업 명령의 발행시에 서브채널 번호를 취득할 수 있는 여부, 호스트가 게스트 I/O명령을 취득할 수 있는 여부 및 I/O인터럽트가 취득되는 여부를 각각 지정하는 유효 플래그들과, 서브채널을 취득하고 설정하기 위하여 상기 하드웨어에 사용경로를 지정하기 위한 필드를 상기 제어필드가 포함하는 가상 컴퓨터 제어 시스템.
  5. 청구범위 제 3 항에 있어서, 상기 두번째 하드웨어 수단이 GSCH번호와 CSCB를 기초로 하여 GSCB와 GST테이블을 참조하므로써 물리 서브채널 번호를 액세스하는 가상 컴퓨터 제어 시스템.
  6. 청구범위 제 3 항에 있어서, 상기 두번째 하드웨어가 게스트 I/O명령의 발생시에 GSCH 번호와 GSCB를 기초로 하여 GSCB와 GST테이블을 참조하므로써 게스트 I/O식별자에 대응하는 GST엔트리를 액세스하고 엔트리내의 제어필드가 호스트 사용을 도시할때에 CPU의 프로그램 카운터와 내부 레지스터들을 포함하는 게스트의 상태가 GSCB에서 내부 상태 세이빙 영역에 세이브된 후, 호스트가 오퍼랜드로서 게스트 CPU식별자를 사용하므로써 인터럽트되며, 제어필드가 호스트 사용을 도시하지 않을때에 GST에 기술된 물리 서브채널 식별자가 취득되는 가상 컴퓨터 제어 시스템.
  7. 청구범위 제 2 항에 있어서, 상기 세번째 하드웨어 수단이 물리 I/O장치에 의한 I/O인터럽트의 발행시에 취득된 인터럽트 발생 장치 식별 데이타를 어드레스 변환 테이블 ATT를 제공하고, 어드레스 변환 테이블의 엔트리로부터 취득된 물리 서브채널 번호를 기초로 하여 상기 변환정보의 하나인 가상 어드레스 변환 테이블 VATT의 헤드 어드레스로부터의 변위를 얻고, 에드 어드레스의 변위를 기초로 하여 VATT의 엔트리로부터 게스트 식별자와 게스트 I/O식별자를 읽어내고, 결과적으로 상기 게스트들에 입/출력 인터럽트를 발생하는 가상 컴퓨터 제어 시스템.
  8. 청구범위 제 7 항에 있어서, 상기 VATT가 상기 하드웨어에 의한 입력으로서 GST의 엔트리를 사용할때에 형성되는 가상 컴퓨터 제어 시스템.
  9. 청구범위 제 7 항에 있어서, I/O인터럽트가 호스트로부터 얻어지는지 여부를 결정하는 유효 플래그와 호스트에 의한 특별 처리에 필요한 I/O 인터럽트 플래그로 이루어지는 제어필드를 상기 VATT가 포함하고, 상기 하드웨어가 I/O인터럽트의 발행시에 VATT에 의해 물리서브채널 번호로 변환된 인터럽트 발생장치의 식별자 데이타로부터 변환되는 물리 서브채널 번호를 기초로 하여 VATT로부터 엔트리를 취득하기 위해 필요한 어드레스를 계산하고, 상기 유효 플래그를 기초로 하여 인터럽트가 호스트에 의하여 이루어지는지 여부를 결정하고, VATT로부터 게스트 I/O 식별자를 끌어내는 가상 컴퓨터 제어 시스템.
  10. 청구범위 제 1 항에 있어서, 상기 첫번째, 두번째 및 세번째 하드웨어 수단이 시이퀸서인 가상 컴퓨터 제어 시스템.
  11. 가상컴퓨터들을 모니터하고, 상기 가상 컴퓨터들에 의해 인지되는 입/출력 장치구조의 가상 식별자(B)와 실제로 사용되는 물리식별자(C)사이의 관계를 기술하는 변환정보(D)(214,216)를 제공하는 가상 컴퓨터 모니터수단(103)과, 상기 가상 컴퓨터 모니터수단(103)이 상기 변환정보(D)(214,216)를 상기 하드웨어수단(103)에 제공할때에 상기 정보블록(A)과 변환정보(D)(214,216)를 기초로 하여 상기 가상 컴퓨터들의 입/출력 처리를 행하기 위해 필요한 내부-하드웨어 제어 블록군(E)(031,032)을 동적으로 취득하는 하드웨어 수단(104)와, 가상 컴퓨터가 입/출력 인터럽트를 발행할때에 변환 정보(D)(214)를 기초로 하여 각 가상 컴퓨터들에 의해 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 식별자(B)를 물리식별자(C)로 변환하고, 내부-하드웨어 제어 블록군(E)(031,032)의 한 제어블록을 확인하고, 상기 제어블록을 사용하여 입/출력 처리를 행하는 하드웨어 수단(104)와, 입/출력 장치(105)에 의한 내부-하드웨어 제어블록(E)(031,032)을 사용하므로써, 입/출력 인터럽트가 발생될때에 가상 컴퓨터에 의하여 사용되는 가상 식별자(B)로 상기 제어블록(E)(031,032)의 물리 식별자(C)를 변환시키기 위한 하드웨어 수단으로 104등으로 이루어지고, 다수의 가상 컴퓨터들(101,102)에 제공되는 입/출력 장치구조를 기술하는 정보블록(A)을 갖는 가상 컴퓨터 제어 시스템.
  12. 가상컴퓨터들을 모니터하고, 상기 가상 컴퓨터들에 의해 인지되는 입/출력 장치구조의 가상 식별자와 실제로 사용되는 물리 식별자 사이의 관계를 기술하는 변환정보를 제공하는 단계와, 가상 컴퓨터 모니터가 상기 변환정보를 상기 하드웨어에 제공할때에, 상기 정보 블록과 변환정보를 기초로 하여, 상기 가상 컴퓨터들의 입/출력 처리를 실행하기 위해 필요한 내부-하드웨어 제어 블록군을 하드웨어에서 동적으로 취득하는 단계와, 가상 컴퓨터가 입/출력 명령을 발행할 때에 변환 정보를 기초로 하여 각 가상 컴퓨터들에 의해 발행된 입/출력 명령의 오퍼랜드에 포함된 가상 식별자를 하드웨어에서 물리식별자로 변환하고, 내부-하드웨어 제어 블록군의 한 제어블록을 확인하고, 상기 제어블록을 사용하여 입/출력 처리를 실행하는 단계와, 입/출력 장치에 의하여 내부-하드웨어 제어블록을 사용하므로써, 입/출력 인터럽트가 발생될때에 가상 컴퓨터에 의해 사용되는 가상 식별자로 상기 제어 블록의 물리 식별자를 하드웨어에서 변환시키고,가상 식별자를 사용하여 가상 컴퓨터들에 입/출력 인터럽트를 제공하는 단계들로 이루어지고, 다수의 가상 컴퓨터들에 제공된 입/출력 장치 구조를 기술하는 정보블록을 갖는 가상 컴퓨터 시스템을 제어하는 방법.
  13. 호스트에 의한 게스트 I/O명령의 발행시에 얻어진 게스트 식별자 데이타를 물리 I/O식별자 데이타로 변환시키기 위한 첫번째 변환 테이블 수단과, I/O장치에 의해 발행된 인터럽트 발생장치 식별자 정보로부터 얻어진 물리 식별자 데이타를 게스트 식별자 데이타로 변환시키기 위한 두번째 테이블 수단과, 상기 첫번째와 두번째 테이블 수단의 어드레스를 제어하기 위한 하드웨어로서 상기 호스트 외부에 제공하는 어드레스 변환 회로로 이루어지고, 적어도 하나의 호스트를 사용하므로써 다수의 게스트들을 관리하기 위한 가상 컴퓨터 제어 시스템.
  14. 하드웨어의 인터럽트 마스크의 각 비트들이 각 논리 CPU들과 논리 CPU를 동작에 대응할 때에, 물리 CPU의 하드웨어 인터럽트 마스크 내의 논리 CPU에 대응하는 비트를 인에이블 상태로 삽입하는 수단과, 서브채널로부터 수신 가능한 마스크비트 변환 동작을 가장 우선으로 실행하는 논리 CPU에 대응하는 것의 각 서브채널들에 라이트되는 논리 CPU와의 관련정보를 실현하기 위한 수단으로 이루어지는 CPU에 의해 동작되는 하드웨어 또는 소프트웨어로 부동(floating) 인터럽트의 하드웨어 입력과 출력 인터럽트를 관리하기 위한 가상 컴퓨터 시스템에 사용하는 입/출력 제어 시스템.
KR1019890015297A 1988-10-24 1989-10-24 가상 컴퓨터를 위한 입.출력 처리 시스템 KR920004409B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP63267529A JP2610966B2 (ja) 1988-10-24 1988-10-24 仮想計算機制御方法
JP63-267529 1988-10-24
JP89-59628 1989-03-14
JP1-59628 1989-03-14
JP01059628A JP3138985B2 (ja) 1989-03-14 1989-03-14 仮想計算機

Publications (2)

Publication Number Publication Date
KR900014990A KR900014990A (ko) 1990-10-25
KR920004409B1 true KR920004409B1 (ko) 1992-06-04

Family

ID=26400686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890015297A KR920004409B1 (ko) 1988-10-24 1989-10-24 가상 컴퓨터를 위한 입.출력 처리 시스템

Country Status (5)

Country Link
EP (1) EP0366416B1 (ko)
KR (1) KR920004409B1 (ko)
AU (1) AU614673B2 (ko)
CA (1) CA2001298C (ko)
DE (1) DE68927627T2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199137B1 (en) * 1999-01-05 2001-03-06 Lucent Technolgies, Inc. Method and device for controlling data flow through an IO controller

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
JPS6258341A (ja) * 1985-09-03 1987-03-14 Fujitsu Ltd 入出力割込処理方式
JPH0664537B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ処理システム
US4916608A (en) * 1986-05-30 1990-04-10 International Business Machines Corporation Provision of virtual storage resources to an operating system control program
EP0282213A3 (en) * 1987-03-09 1991-04-24 AT&T Corp. Concurrent context memory management unit

Also Published As

Publication number Publication date
AU4370889A (en) 1990-07-19
EP0366416A2 (en) 1990-05-02
EP0366416B1 (en) 1997-01-08
DE68927627T2 (de) 1997-04-24
EP0366416A3 (en) 1992-04-15
CA2001298C (en) 1996-08-27
DE68927627D1 (de) 1997-02-20
AU614673B2 (en) 1991-09-05
KR900014990A (ko) 1990-10-25
CA2001298A1 (en) 1990-04-24

Similar Documents

Publication Publication Date Title
US4403283A (en) Extended memory system and method
US4459661A (en) Channel address control system for a virtual machine system
US5386566A (en) Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
US5278973A (en) Dual operating system computer
US5659756A (en) Method and system for providing access to logical partition information on a per resource basis
US5819061A (en) Method and apparatus for dynamic storage reconfiguration in a partitioned environment
KR101823505B1 (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
JPS60160463A (ja) プロセツサシステム
JPH0635725A (ja) 入出力資源を共用するための方法及びシステム
JPH0635731A (ja) 入出力チャネル・サブシステム・コール命令制御方法およびcecの解釈実行方法
US5146605A (en) Direct control facility for multiprocessor network
US5392409A (en) I/O execution method for a virtual machine system and system therefor
CN115794419B (zh) Gpu的调控系统及方法
US5276815A (en) Input and output processing system for a virtual computer
US5524211A (en) System for employing select, pause, and identification registers to control communication among plural processors
US5369750A (en) Method and apparatus for configuring multiple absolute address spaces
KR920004409B1 (ko) 가상 컴퓨터를 위한 입.출력 처리 시스템
JP3490212B2 (ja) 情報処理装置の入出力チャネル拡張方法
JP3138985B2 (ja) 仮想計算機
JP2610966B2 (ja) 仮想計算機制御方法
EP0316251B1 (en) Direct control facility for multiprocessor network
JPH09319653A (ja) 情報処理装置、情報処理システム及びその制御方法
JPS6336012B2 (ko)
JPH0348937A (ja) 仮想計算機システムにおける入出力命令実行方式
JPS58200363A (ja) 仮想システムの入出力制御方式

Legal Events

Date Code Title Description
A201 Request for examination
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: 20060525

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee