KR100843490B1 - 논리적으로 분할된 컴퓨터 시스템에서의 리소스 전달을제어하는 장치 및 방법 - Google Patents
논리적으로 분할된 컴퓨터 시스템에서의 리소스 전달을제어하는 장치 및 방법 Download PDFInfo
- Publication number
- KR100843490B1 KR100843490B1 KR1020057015576A KR20057015576A KR100843490B1 KR 100843490 B1 KR100843490 B1 KR 100843490B1 KR 1020057015576 A KR1020057015576 A KR 1020057015576A KR 20057015576 A KR20057015576 A KR 20057015576A KR 100843490 B1 KR100843490 B1 KR 100843490B1
- Authority
- KR
- South Korea
- Prior art keywords
- slot
- pci
- control
- logical partitions
- adapter slot
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Abstract
리소스 및 파티션 관리자는 하드웨어 리소스의 제어가 논리적 파티션으로부터 제거될 때 하드웨어 리소스의 전원이 오프되도록 하고 또 하드웨어 리소스의 제어가 논리적 파티션으로 전달될 때 하드웨어 리소스의 전원이 온되도록 하기 위해 사용되는 전원 온/전원 오프 메카니즘을 포함한다. 대안적으로, 하드웨어 리소스가 논리적 파티션으로 전달될 때, 리소스 및 파티션 관리자는 단순히 하드웨어 리소스를 전원 온 리셋 상태에 둘 수 있다. 이와 같이, 하드웨어 리소스는 파티션에서 이용가능하게 될 때 전원 온 리셋 상태에 있는데, 이는 논리적 파티션에 의해 일반적으로 예상되는 상태이다.
컴퓨터 시스템, 리소스, 논리적 파티션, 전원 온 리셋 상태
Description
본 특허 출원은 동일한 발명자에 의해 동일한 발명의 명칭으로 2003년 3월 13일자로 출원된 미국 특허 출원 제10/388,350호에 관한 것으로서, 이 미국 특허 출원은 여기에 인용함으로써 본 명세서에 포함된다.
본 발명은 일반적으로 데이터 처리에 관한 것이며, 보다 구체적으로는 컴퓨터 시스템에서 공유 리소스의 할당에 관한 것이다.
컴퓨터 시대의 시작 이래로, 컴퓨터 시스템은 많은 서로 다른 환경에서 발견될 수 있는 아주 복잡한 장치로 진화해왔다. 컴퓨터 시스템은 일반적으로 하드웨어(예컨대, 반도체, 회로 기판 등)와 소프트웨어(예컨대, 컴퓨터 프로그램)의 조합을 포함한다. 반도체 처리 및 컴퓨터 아키텍처의 진보로 인해 컴퓨터 하드웨어의 성능이 더 향상됨에 따라, 더 향상된 하드웨어의 성능을 이용하기 위해 더욱 복잡한 컴퓨터 소프트웨어가 개발되었으며, 그 결과 현재의 컴퓨터 시스템은 불과 몇 년 전보다 훨씬 더 강력해졌다.
특정의 컴퓨터 시스템상에서의 하드웨어와 소프트웨어의 조합은 컴퓨팅 환경 을 정의한다. 따라서 서로 다른 하드웨어 플랫폼 및 서로 다른 오퍼레이팅 시스템은 따라서 서로 다른 컴퓨팅 환경을 제공한다. 최근에, 엔지니어들은 컴퓨터 시스템 리소스를 서로 다른 컴퓨팅 환경으로 논리적으로 분할함으로써 동일한 물리적 컴퓨터 시스템 상에서 서로 다른 컴퓨팅 환경을 제공하는 것이 가능하다는 것을 알았다. IBM에 의해 개발된 iSeries 컴퓨터 시스템은 논리적 분할을 지원하는 컴퓨터 시스템의 예이다. iSeries 컴퓨터 시스템 상에서 논리적 분할이 요망되는 경우, 동일한 플랫폼 상에 서로 다른 컴퓨팅 환경을 정의할 수 있게 해주는 리소스 및 파티션 관리자 코드(iSeries 기술 용어에서 "하이퍼바이저(hypervisor)"라고 함)가 설치된다. 리소스 및 파티션 관리자가 설치되면, 서로 다른 컴퓨팅 환경을 정의하는 논리적 파티션이 생성될 수 있다. 리소스 및 파티션 관리자는 논리적 파티션에 의해 정의되는 별도의 컴퓨팅 환경을 유지하면서 논리적 파티션이 컴퓨터 시스템 내의 필요한 리소스를 공유할 수 있도록 논리적 파티션을 관리한다.
다수의 논리적 파티션을 포함하는 컴퓨터 시스템은 일반적으로 논리적 파티션들 간에 리소스를 공유한다. 예를 들어, CPU의 50%를 각 파티션에 할당하고, 메모리의 33%를 첫번째 파티션에 할당하고 메모리의 67%를 두번째 파티션에 할당하며, 또 2개의 서로 다른 I/O 슬롯을 파티션마다 하나씩 2개의 논리적 파티션에 할당하는, 2개의 논리적 파티션을 갖는 컴퓨터 시스템이 정의될 수 있다. 논리적 파티션이 규정되고 공유 리소스가 논리적 파티션에 할당되면, 각각의 논리적 파티션은 별개의 컴퓨터 시스템으로서 기능한다. 따라서, 2개의 논리적 파티션을 갖는 단일의 컴퓨터 시스템을 갖는 상기 예에서, 2개의 논리적 파티션은 모든 실용적 목 적상 2개의 별개인 개별적인 컴퓨터 시스템인 것처럼 보일 것이다.
공지의 논리적 분할된 컴퓨터 시스템에서의 한가지 문제점은 하드웨어 리소스가 논리적 파티션들 간에 전달될 필요가 있을 때 발생한다. 예를 들어, 제1 논리적 파티션 내의 PCI 슬롯이 제2 논리적 파티션으로 전달될 필요가 있을 때, 그 PCI 슬롯은 먼저 제1 논리적 파티션으로부터 제거되어야만 하고, 이어서 그 PCI 슬롯은 제2 논리적 파티션에 할당될 수 있다. 그렇지만, PCI 슬롯이 제1 논리적 파티션으로부터 제거되면, 종래 기술에서는 PCI 슬롯의 제어를 위해 2개의 논리적 파티션이 동시에 경합할 수 있다는 점을 유의하여야 한다. 또한, PCI 슬롯이 다른 논리적 파티션에 할당될 때, 그 파티션이 특정 환경에서는 손상될 수 있는 전달의 논리적 파티션으로부터의 데이터를 포함할 수도 있다. 더구나, PCI 슬롯은 첫번째 논리적 파티션에 적합한 특정 상태에서 구성될 수 있는데, 이는 제2 논리적 파티션에 반드시 적합하다고 할 수 없다. 논리적으로 분할된 컴퓨터 시스템에서 기술 분야에 알려진 단점없이 I/O 리소스를 동적으로 전달하는 방법이 존재하지 않는다면, 컴퓨터 산업은 논리적으로 분할된 컴퓨터 시스템에서 I/O 리소스 전달을 수행하는 잠재적으로 불안정하고 비효율적인 메카니즘 및 방법으로 인해 계속 어려움을 겪게 될 것이다.
리소스 및 파티션 관리자는 하드웨어 리소스의 제어가 논리적 파티션으로부터 제거될 때 하드웨어 리소스의 전원이 오프되도록 하고 또 하드웨어 리소스의 제어가 논리적 파티션으로 전달될 때 하드웨어 리소스의 전원을 온시키도록 하기 위해 사용되는 전원 온/전원 오프 메카니즘을 포함한다. 대안적으로, 하드웨어 리소스가 논리적 파티션으로 전달될 때, 리소스 및 파티션 관리자는 단순히 하드웨어 리소스를 전원 온 리셋 상태에 둘 수도 있다. 이와 같이, 하드웨어 리소스는 파티션에서 이용가능하게 될 때 전원 온 리셋 상태에 있는데, 이는 논리적 파티션에 의해 일반적으로 예상되는 상태이다.
바람직한 실시예들은 논리적으로 분할된 컴퓨터 시스템에서 I/O 슬롯으로의 액세스를 제어하기에 매우 적합하다. 그러나, I/O 버스, I/O 통신 채널, 가상 I/O 채널 또는 장치, CPU 및 메모리 등과 같은 여타의 하드웨어 리소스로의 액세스 또한 본 명세서에 개시된 바람직한 실시예들을 사용하여 제어될 수 있다는 점을 유의하여야 한다.
도 1은 바람직한 실시예에 따른 논리적 분할 및 I/O 리소스 할당을 지원하는 컴퓨터 장치의 블록도.
도 2는 바람직한 실시예에 따른 논리적으로 분할된 컴퓨터 시스템에서 사용될 수 있는 하나의 특정의 하드웨어 구현을 나타낸 상세 블록도.
도 3은 바람직한 실시예에 따른 도 2에 도시된 하드웨어 시스템 상에 구현될 수 있는 특정의 논리적으로 분할된 소프트웨어 구현의 블록도.
도 4는 바람직한 실시예에 따라 논리적 파티션을 재부팅하는 방법의 흐름도.
도 5는 바람직한 실시예에 따라 논리적 파티션을 종료시키는 방법의 흐름도.
도 6은 바람직한 실시예에 따라 논리적 파티션의 전원을 온시키는 방법의 흐 름도.
도 7은 바람직한 실시예에 따라 논리적 파티션이 자신이 소유하는 슬롯의 제어를 포기하는 방법의 흐름도.
도 8은 바람직한 실시예에 따라 논리적 파티션이 자신이 소유하는 슬롯의 제어를 회복하도록 하는 방법의 흐름도.
본 발명의 전술한, 그리고 그 밖의 특장점은 첨부 도면에 예시된 본 발명의 바람직한 실시예들에 대한 이하의 보다 상세한 설명으로부터 명백해 질 것이다.
본 발명의 바람직한 실시예들에 따르면, 전원 온/전원 오프 메카니즘은 하드웨어 리소스가 논리적 파티션에 할당될 때 하드웨어 리소스가 전원 온 리셋 상태에 있도록 보장한다. 이것은 하드웨어 리소스의 전원을 온시킬 때 예상되는 값을 하드웨어 리소스 상의 하나 이상의 메모리 장소에 기록함으로써 수행되거나 또는 하드웨어 리소스가 논리적 파티션로부터 제거될 때 하드웨어 리소스의 전원을 오프시키고 하드웨어 리소스가 논리적 파티션에 할당될 때 하드웨어 리소스의 전원을 온시킴으로써 수행될 수 있다. 이러한 방식으로, 각각의 논리적 파티션은 전원 온 리셋 상태에 있는 하드웨어 리소스를 보는 것이 보장된다. I/O 슬롯의 특정 예에 있어서, I/O 슬롯 내의 어댑터를 전원 온 리셋 상태에 둠으로써(어댑터에 적절한 값을 기록하거나 어댑터를 포함하는 I/O 슬롯에 물리적으로 전원 순환(power cycling)시키는 것에 의해), 전원 온/전원 오프 메카니즘은 서로 다른 논리적 파티션에 I/O 슬롯을 할당할 때 데이터 및 구성 정보 모두가 슬롯에 꽂힌 I/O 어댑터로 부터 삭제되도록 확증한다. 또한, 하드웨어 리소스는 하드웨어 리소스 또는 그 하드웨어 리소스를 포함하는 물리적 인클로저(physical enclosure) 내의 컴포넌트들에 대해 하드웨어 서비스 동작을 수행하기 위해, 일시적으로 그의 논리적 파티션으로부터 리소스 및 파티션 관리자로 전달될 수 있다. 하드웨어 서비스가 완료되면, 하드웨어 리소스는 다시 그의 논리적 파티션으로 전달된다.
본 명세서의 상세한 설명 및 청구 범위에서 사용되는 용어 "하드웨어 리소스"는 논리적 파티션에 독립적으로 할당될 수 있는 컴퓨터 시스템 내의 임의의 전체 또는 일부분의 하드웨어를 나타낸다는 것에 주목해야 한다. 하드웨어 리소스의 예로는, 물리적 I/O 슬롯, 물리적 인클로저 내의 일군의 I/O 슬롯, 프로세서의 일부분 및 메모리의 일부분이 있다. 본 명세서에 제공된 바람직한 실시예들은 논리적 파티션에 독립적으로 할당될 수 있는 하드웨어 리소스로서 I/O 슬롯의 특정예를 사용한다. 그렇지만, 논리적 파티션에 독립적으로 할당될 수 있는 임의의 하드웨어 또는 하드웨어의 일부분이 본 명세서에서 사용되는 용어 "하드웨어 리소스"의 범위 내에 속한다는 점을 유의하여야 한다.
도 1을 참조하면, 컴퓨터 시스템(100)은 향상된 IBM eServer iSeries 컴퓨터 시스템이며, 바람직한 실시예에 따른 논리적 분할 및 리소스 할당을 지원하는 하나의 적당한 유형의 컴퓨터 시스템을 나타낸다. 당업자라면 본 발명의 메카니즘 및 장치가 논리적 분할을 지원하는 임의의 컴퓨터 시스템에 동일하게 적용된다는 것을 잘 이해할 것이다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(100)은 메인 메모리(120)에 연결된 하나 이상의 프로세서(110), 대용량 저장 장치 인터페이스(130), 디스플레이 인터페이스(140), 네트워크 인터페이스(150) 및 복수 개의 I/O 슬롯(180)을 포함한다. 이들 시스템 컴포넌트는 시스템 버스(160)를 사용하여 상호 연결되어 있다. 대용량 저장 장치 인터페이스(130)는 직접 액세스 저장 장치(155) 등과 같은 대용량 저장 장치를 컴퓨터 시스템(100)에 연결하는 데 사용된다. 특정 유형의 직접 액세스 저장 장치의 하나가 CD RW 드라이브인데, 이는 CD RW(195)로부터 데이터를 독출할 수 있다. 대용량 저장 장치 인터페이스(130), 디스플레이 인터페이스(140) 및 네트워크 인터페이스(150)는 실제로 I/O 슬롯(180)에 연결된 어댑터들에서 구현될 수 있다는 것을 유의하여야 한다.
메인 메모리(120)는 리소스 및 파티션 관리자(121), I/O 슬롯 로크 메카니즘(122), 전원 온/전원 오프 슬롯 메카니즘(124) 및 도 1에서 논리적 파티션(125A 내지 125N)으로 도시되어 있는 N개의 논리적 파티션(125)을 포함한다. 리소스 및 파티션 관리자(121)는 이들 N개의 논리적 파티션(125)을 생성하는 것이 바람직하다. 각 논리적 파티션은 도 1에서 오퍼레이팅 시스템(126A 내지 126N)으로 도시되어 있는 대응하는 오퍼레이팅 시스템(126)을 포함하는 것이 바람직하다.
I/O 슬롯 로크 메카니즘(122)은 복수 개의 슬롯 로크(123)를 정의함으로써 I/O 슬롯(180)에 대한 액세스를 관리하는데, 각각의 슬롯 로크(123)는 각각의 I/O 슬롯(180)에 대응하는 것이 바람직하다. I/O 슬롯이 논리적 파티션에 할당될 필요가 있을 때, 리소스 및 파티션 관리자는 I/O 슬롯이 이용가능한지를 알아보기 위해 대응하는 슬롯 로크를 검사한다. 대응하는 슬롯 로크가 다른 논리적 파티션에 의해 소유되어 있는 경우, I/O 슬롯은 그 논리적 파티션의 제어하에 있게 된다. 대 응하는 슬롯 로크가 리소스 및 파티션 관리자에 의해 소유되거나 또는 할당되지 않은 경우, I/O 슬롯은 대응하는 슬롯 로크를 설정하고 또 I/O 슬롯을 요청한 논리적 파티션에 할당하는 리소스 및 파티션 관리자에 의해 제어될 수 있다. 이와 같이, 상기 슬롯 로크(123)는 대응하는 I/O 슬롯이 이용가능한지 여부를 나타내는 세마포어(semaphore)로서 효과적으로 기능한다.
전원 온/전원 오프 슬롯 메카니즘(124)은 I/O 슬롯이 논리적 파티션으로부터 제거되기 전에 그 슬롯의 전원이 오프되도록 보장하고 또 슬롯이 논리적 파티션에 할당될 때 그 슬롯의 전원을 온시키도록 보장하기 위해 사용된다. 종래 기술에서는, I/O 슬롯은 한 논리적 파티션으로부터 제거되고 다른 논리적 파티션에 할당될 수 있다. 그러나, 이러한 재할당의 수행시 2가지의 가능한 문제가 발생한다. 첫 번째 문제는 데이터 무결성(data integrity)의 문제이다. 즉, I/O 슬롯이 다른 논리적 파티션에 재할당될 때, 제1 논리적 파티션에서 실행되는 프로세스로부터의 데이터가 그 I/O 슬롯에 꽂힌 I/O 어댑터에 남아 있을 수 있다. 이론적으로, 충분한 기술을 가진 자라면 제2 논리적 파티션으로부터의 그 데이터를 해킹할 수 있다고 생각될 수 있는데, 이는 제1 논리적 파티션으로부터의 데이터를 손상시킬 수 있다. 두 번째 문제는 I/O 슬롯을 수용하는 새로운 논리적 파티션이 그 I/O 슬롯의 현재 구성을 알지 못한다는 것이다. 사실, 논리적 파티션이 서로 다른 컴퓨터 시스템과 같이 동작하기 때문에, I/O 어댑터가 논리적 파티션에 할당될 때, 논리적 파티션은 자동적으로 I/O 어댑터가 전원 온 리셋 상태에 있는 것으로 가정한다. 이것은 논리적으로 분할되지 않은 컴퓨터 시스템에서 확실히 타당한 가정이다. I/O 어댑터 가 2개의 서로 다른 컴퓨터 시스템 사이에서 물리적으로 전달되는 경우, I/O 어댑터는 제1 컴퓨터 시스템으로부터 뽑혀서 제2 컴퓨터 시스템에 꽂힌다. 그 결과, 컴퓨터 시스템 사이의 전달이 있는 동안, I/O 어댑터에서 대해 전원이 순환되어, 그에 따라 그 I/O 어댑터의 데이터를 클리어시키고 그 I/O 어댑터를 전원 온 리셋 상태에 두게 된다. 컴퓨터 시스템이 처음으로 시동될 때, I/O 어댑터를 수용하는 제2 컴퓨터 시스템은 I/O 어댑터가 전원 온 리셋 상태에 있는 것으로 알고 있다. 그렇지만, 이러한 가정은 논리적으로 분할된 컴퓨터 시스템의 경우에는 유효하지 않다. 그와는 반대로, 종래 기술은 어떠한 전원 온 또는 전원 오프 사이클을 수행함이 없이 파티션 간의 I/O 리소스가 전달되도록 해 주는데, 그에 따라 상기 2가지 문제점이 야기된다. 상기 전원 온/전원 오프 슬롯 메카니즘(124)은 I/O 슬롯이 논리적 파티션에 할당될 때 그 슬롯이 전원 온 리셋 상태에 있도록 보장함으로써 이 문제를 해결한다. 제1 특정 실시예에서, I/O 슬롯은 I/O 슬롯 내의 어댑터를 전원 온 상태에 두도록 적절한 값을 그 어댑터 상의 하나 이상의 메모리 장소에 기록함으로써 전원 온 리셋 상태에 놓이게 된다. 제2 특정 실시예에서, I/O 슬롯이 한 논리적 파티션으로부터 제거되고 다른 논리적 파티션에 할당될 때, I/O 슬롯에서 전원은 항상 순환되는데, 이것은 그 I/O 슬롯에만 영향을 주고 동일한 물리적 인클로저를 공유하는 다른 것들에는 영향을 주지 않는 동작들을 중단함으로써 가능하다. 이와 같이, 논리적 파티션이 처음으로 부팅될 때 또는 활성 논리적 파티션이 I/O 어댑터의 제어를 넘겨받을 때, 각각의 논리적 파티션은 I/O 어댑터가 그의 전원 온 리셋 상태에 있는 것으로 정확하게 가정할 수 있다.
오퍼레이팅 시스템(126)은 OS/400, AIX 또는 리눅스 등의 멀티태스킹 오퍼레이팅 시스템이다. 그러나, 당업자라면 본 발명의 사상 및 범위가 어떤 하나의 오퍼레이팅 시스템에 한정되지 않음을 이해할 것이다. 임의의 적당한 오퍼레이팅 시스템이 사용될 수 있다. 오퍼레이팅 시스템(126)은 컴퓨터 시스템(100)의 리소스를 관리하기 위한 로우-레벨 코드를 포함하는 복잡한 프로그램이다. 이들 리소스 중 일부가 프로세서(110), 메인 메모리(120), 대용량 저장 장치 인터페이스(130), 디스플레이 인터페이스(140), 네트워크 인터페이스(150), 시스템 버스(160) 및 I/O 슬롯(180)이다. 각 파티션에서의 오퍼레이팅 시스템(126)은 다른 파티션 내의 오퍼레이팅 시스템과 동일하거나 또는 완전히 다른 오퍼레이팅 시스템일 수 있다. 따라서, 한 파티션은 OS/400 오퍼레이팅 시스템을 실행할 수 있는 반면, 다른 파티션은 OS/400의 다른 인스턴스, 아마도 다른 릴리스를 실행하거나 또는 다른 환경 설정(예를 들어, 시간대)으로 실행될 수 있다. 논리적 파티션 내의 오퍼레이팅 시스템은 하드웨어와 호환되기만 하면 OS/400와 다른 것(AIX 또는 리눅스 등)일 수도 있다. 이와 같이, 논리적 파티션은 동일한 물리적 컴퓨터 시스템 상에서 완전히 다른 컴퓨팅 환경을 제공할 수 있다.
도 1에 도시된 파티션(125A-125N)은 메인 메모리(120) 내에 존재하는 것으로 도시되어 있다. 그러나, 당업자라면 파티션이 메모리 이외의 리소스를 포함하는 논리 구성(logical construct)이라는 것을 잘 이해할 것이다. 논리적 파티션은 일반적으로 프로세서 용량과 I/O 슬롯(180) 등과 같은 다른 시스템 리소스를 할당하면서 함께 메모리의 일부분을 지정한다. 따라서, 하나의 파티션은 대용량 저장 장 치 인터페이스(130), 디스플레이 인터페이스(140), 네트워크 인터페이스(150), 또는 I/O 슬롯(180)에 꽂힌 I/O 장치들로의 인터페이스의 기능들을 제공할 수 있는 하나 이상의 I/O 프로세서와 함께, 2개의 프로세서 및 일부분의 메모리(120)를 포함하도록 규정될 수 있다. 그러면, 다른 파티션은 3개의 다른 프로세서, 상기 메모리(120)의 다른 부분 및 하나 이상의 I/O 프로세서를 포함하도록 규정될 수도 있다. 이러한 파티션은 도 1에서 논리적 파티션을 도식적으로 나타내도록 도시되어 있는데, 이는 컴퓨터 시스템(100) 내 메모리(120) 밖의 시스템 리소스를 포함한다. 또한, 상기 리소스 및 파티션 관리자(121), I/O 슬롯 로크 메카니즘(122) 및 전원 온/전원 오프 슬롯 메카니즘(124)은 파티션과 별도의 메모리 및 하드웨어에 존재하고, 파티션이 직접 이용가능하지 않은 설비 및 메카니즘인 것이 바람직하다는 것을 유의하여야 한다. 대안적으로, I/O 슬롯 로크 메카니즘(122) 및 전원 온/전원 오프 슬롯 메카니즘(124)은 컴퓨터 시스템(100) 내의 규정된 파티션 중 임의의 것에 존재하거나 네트워크(170)를 통해 컴퓨터 시스템(100)에 연결된 컴퓨터 시스템(175) 상에 존재할 수도 있다.
컴퓨터 시스템(100)은 컴퓨터 시스템(100)의 프로그램들이 메인 메모리(120) 및 DASD 장치(155) 등과 같은 다수의 소용량 저장 장치 엔티티 대신에 대용량의 단일 저장 장치 엔티티에만 액세스하는 것처럼 거동할 수 있게 해주는 공지의 가상 어드레싱 메카니즘(virtual addressing mechanism)을 이용한다. 따라서, 리소스 및 파티션 관리자(121) 및 파티션(125A-125N)이 메인 메모리(120) 내에 존재하는 것으로 도시되어 있지만, 당업자라면 이들 아이템 모두가 반드시 동시에 메인 메모 리(120) 내에 완전히 포함될 필요는 없다는 것을 이해할 것이다. 또한, 용어 "메모리"가 본 명세서에서는 컴퓨터 시스템(100)의 전체 가상 메모리를 일반적으로 지칭하고 있음에 유의해야 한다.
프로세서(110)는 하나 이상의 마이크프로세서 및/또는 집적 회로로 구성될 수 있다. 프로세서(110)는 메인 메모리(120)에 저장된 프로그램 명령어를 실행한다. 메인 메모리(120)는 프로세서(110)가 액세스할 수 있는 프로그램 및 데이터를 저장한다. 컴퓨터 시스템(100)이 시동될 때, 프로세서(110)는 초기에 리소스 및 파티션 관리자(121)를 구성하는 프로그램 명령어를 실행하는데, 이는 논리적 파티션 내의 오퍼레이팅 시스템을 초기화한다.
컴퓨터 시스템(100)이 단일의 시스템 버스만을 포함하는 것으로 도시되어 있지만, 당업자라면 본 발명이 다수의 버스를 갖는 컴퓨터 시스템을 사용하여 실시될 수 있음을 잘 이해할 것이다. 또한, 바람직한 실시예에서 사용되는 I/O 인터페이스 각각은, iSeries 입/출력 프로세서에서와 같은 프로세서(100)로부터 계산 집중적 프로세싱을 오프로드(off-load)하는 데 사용되는 개별적이고, 완전 프로그램된 (fully programmed) 마이크로프로세서를 포함하거나, 또는 간단한 업계 표준의 I/O 어댑터(IOA)일 수 있다.
디스플레이 인터페이스(140)는 하나 이상의 디스플레이(165)를 컴퓨터 시스템(100)에 직접 연결하는 데 사용된다. 비지능적(즉, 단순) 단말기이거나 완전 프로그램 가능한 워크스테이션일 수 있는 이들 디스플레이(165)는 시스템 관리자 및 사용자가 컴퓨터 시스템(100)과 통신할 수 있게 해주는 데 사용된다. 그러나, 디 스플레이 인터페이스(140)가 하나 이상의 디스플레이(165)와의 통신을 지원하기 위해 제공되어 있지만, 컴퓨터 시스템(100)은 디스플레이(165)를 꼭 필요로 하는 것이 아님에 유의해야 하는데, 그 이유는 사용자 및 다른 프로세싱과의 모든 필요한 상호작용이 네트워크 인터페이스(150)를 통해 일어날 수 있기 때문이다.
네트워크 인터페이스(150)는 다른 컴퓨터 시스템 및/또는 워크스테이션(예를 들어, 도 1의 175)을 네트워크(170)를 경유하여 컴퓨터 시스템(100)에 연결하는 데 사용된다. 본 발명은 네트워크 연결(170)이 현재의 아날로그 및/또는 디지털 기술을 사용하거나 또는 장래의 임의의 네트워킹 메카니즘을 통해 이루어지는지에 관계없이, 컴퓨터 시스템(100)이 다른 컴퓨터 시스템 및/또는 워크스테이션에 어떤 방법으로 연결될 수 있는지에 관계없이 동일하게 적용된다. 또한, 많은 다양한 네트워크 프로토콜이 네트워크를 구현하는 데에 사용될 수 있다. 이들 프로토콜은 컴퓨터가 네트워크(170)를 통해 통신하도록 해주는 특수 컴퓨터 프로그램이다. TCP/IP(Transmission Control Protocol/Internet Protocol)는 적절한 네트워크 프로토콜의 일례이다.
이 시점에서, 본 발명이 완전 기능의(fully functional) 컴퓨터 시스템의 관점에서 기술되었고 또 계속하여 기술될 것이지만 당업자라면 본 발명이 다양한 형태의 프로그램 제품으로서 배포될 수 있으며 또 본 발명이 그 배포를 실제로 수행하는 데 사용되는 특정 유형의 컴퓨터 판독가능 신호 전달 매체인지에 관계없이 동일하게 적용됨을 이해할 것임을 유의하는 것이 중요하다. 적당한 신호 전달 매체의 예로는 플로피 디스크 및 CD RW(예를 들어, 도 1의 195) 등의 기록가능 유형 매 체 및 디지털 및 아날로그 통신 링크 등의 전송 유형 매체가 있다.
도 1은 바람직한 실시예에 따른 하드웨어 및 소프트웨어 모두의 두드러진 특징 중 일부를 보여주는 샘플 컴퓨터 시스템을 나타낸 것이다. 이제부터, 도 2 및 도 3에서 보다 상세한 구현을 설명한다. 도 2는 바람직한 실시예에 따른 논리적 파티션 및 I/O 리소스 할당을 지원하는 컴퓨터 시스템의 하드웨어 도면이다. 하나의 물리적 인클로저(210)는 시스템 버스(160)를 경유하여 서로 연결되는 하나 이상의 CPU(110) 및 메모리(120)를 포함한다. 제2 인클로저(220)는 시스템 버스(160)에 연결되어 있는 버스(212)에 연결된 I/O 컴포넌트를 수용하는 인클로저이다. 이 특정예에서 PCI 컴포넌트는 인클로저(220) 내에 포함된 I/O 컴포넌트인 것으로 가정한다. PCI 호스트 브리지(230)는 버스(212)에 연결되고, 다수의 PCI-PCI 브리지(240)로의 인터페이스를 제공한다. 도 2에는, 2개의 PCI 호스트 브리지(230A, 230B)가 있다. PCI 호스트 브리지(230A)는 4개의 PCI-PCI 브리지(240A-240D)로의 인터페이스를 제공하는 반면, PCI 호스트 브리지(230B)는 4개의 PCI-PCI 브리지(240E-240H)로의 인터페이스를 제공한다. 각각의 PCI-PCI 브리지(240)는 단일의 PCI 어댑터 슬롯(250)에 연결된다. 따라서, PCI-PCI 브리지(240A)는 대응하는 PCI 어댑터 슬롯(250A)에 연결되고, PCI-PCI 브리지(240B)는 대응하는 PCI 어댑터 슬롯(250B)에 연결되며, 대응하는 PCI 어댑터 슬롯(250H)에 연결되는 PCI-PCI 브리지(240H)까지 마찬가지이다.
각각의 PCI 호스트 브리지(230)는 1차 PCI 버스(260)를 경유하여 PCI-PCI 브리지(240)에 연결된다. 도 2는 2개의 1차 PCI 버스(260A, 260B)를 나타내고 있다. PCI-PCI 브리지(240)는 2차 PCI 버스(270)를 경유하여 차례로 PCI 어댑터 슬롯(250)에 연결된다. 도 2는 그의 대응하는 PCI 어댑터 슬롯(250A-250H)에 연결되어 있는 8개의 2차 PCI 버스(270), 즉 270A-270H를 도시하고 있다. PCI 어댑터 슬롯(250)은 PCI 어댑터 카드를 수납하는 커넥터나 대응하는 PCI-PCI 브리지(240) 또는 PCI 호스트 브리지(230)를 포함하는 전자 기판 상에 직접 내장되는 PCI 어댑터 칩일 수 있다. 논리적 파티션 오퍼레이팅 시스템은 CPU로부터 어댑터에 대한 메모리-매핑 I/O를 위해 CPU 주소를 PCI 어댑터 메모리에 "바인딩"하고, 어댑터가 매핑된 메모리 주소로/로부터의 직접 메모리 액세스(DMA) 동작을 수행할 수 있도록 하기 위해 메모리 주소를 어댑터에 바인딩한다.
바람직한 실시예에서, PCI 호스트 브리지(230)와 PCI 어댑터 슬롯(250) 사이에 PCI-PCI 브리지(240)가 존재함으로써 PCI 어댑터 슬롯(250) 내의 개별적인 PCI 어댑터들과 PCI 호스트 브리지(230), CPU(110) 및 메모리(120) 간의 시그널링 및 어댑터 바인딩 분리(adapter binding isolation)를 제공한다. 이러한 분리는 개별적인 PCI 어댑터 슬롯을 서로 다른 논리적 파티션에 할당하는 것을 용이하게 해주며, 따라서 이들 파티션은 PCI-PCI 브리지(240)에 공통으로 연결된 플랫폼 하드웨어를 공유할 수 있지만 다른 파티션에 할당된 어댑터의 동작은 특정 파티션에 할당된 어댑터의 동작을 방해하지 않고, 어떤 파티션 또는 어댑터도 다른 파티션-어댑터 바인딩을 사용할 수 없도록 어댑터 주소 바인딩이 시행된다. 각각의 슬롯을 단일의 PCI 호스트 브리지와 연관시키는 등의 슬롯 레벨 할당 및 바인딩을 가능하게 해주는 다른 분리 방법이 바람직한 실시예의 범위 내에 있음에 유의해야 한다.
도 1에 도시한 전원 온/전원 오프 슬롯 메카니즘(124)은 각각의 PCI 호스트 브리지(230) 내에 또는 각각의 PCI-PCI 브리지(240) 내에 있는 슬롯 전원 제어 하드웨어를 제어하는 것이 바람직하다. 도 1을 참조하여 전술한 바와 같이, 전원 온/전원 오프 슬롯 메카니즘(124)은 다른 슬롯을 포함한 플랫폼의 다른 I/O 컴포넌트로의 전원의 상태에 관계없이 특정 슬롯(250)에 전력을 인가 또는 제거할 수 있다. 가장 바람직한 실시예에서, 대응하는 슬롯(250)으로의 전원을 제어하는 전원 온/전원 오프 슬롯 메카니즘(124)의 구속을 받는 각각의 PCI-PCI 브리지(240) 내에 전원 온/전원 오프 제어 하드웨어가 있다. 따라서, 도 2에 도시한 구성에 있어서, PCI-PCI 브리지(240A)는 슬롯(250A)으로의 전원을 제어하는 전원 온/전원 오프 하드웨어를 포함하고, PCI-PCI 브리지(240B)는 슬롯(250B)으로의 전원을 제어하는 전원 온/전원 오프 하드웨어를 포함하며, 이는 각각의 PCI-PCI 브리지(240)에 대해서도 마찬가지이다. 따라서, 도 2의 시스템에 있어서, PCI-PCI 브리지(240A 내지 240H) 각각은 그의 개별적인 슬롯(250A-250H)으로의 전원을 제어하고 전원 온/전원 오프 슬롯 메카니즘(124)에 의해 제어되는 전원 온/전원 오프 하드웨어를 갖는다. 전원 온/전원 오프 하드웨어가 반드시 물리적으로 슬롯의 전원을 오프시키는 것은 아닐 수 있음에 유의해야 한다. 바람직한 실시예는 명백히 슬롯 및 그의 관련 어댑터를 전원 온 리셋 상태에 두기 위한 임의의 방법까지 확장된다. 예를 들어, 어떤 어댑터들은 어댑터들로의 전원을 개별적으로 제어하는 컴포넌트 없이 인쇄 회로 기판 상에 내장될 수 있다. 이 경우, 전원 온/전원 오프 하드웨어는 어댑터에 대한 전원을 물리적으로 순환시킴 없이, 어댑터의 데이터 모두를 플러싱하고 적절한 값들 을 어댑터 상의 하나 이상의 메모리 장소에 기입함으로써 어댑터의 전원을 처음으로 온시킬 때와 동일한 상태로 어댑터를 두는 것에 의해서 어댑터를 전원 온 리셋 상태에 둘 수 있다.
도 2에 도시된 구성은 플랫폼 전자 회로를 CPU(110) 및 메모리(120)를 포함하는 한 인클로저(210) 내로 분리하고, PCI I/O 하드웨어 컴포넌트(예를 들어, 230, 240, 250, 260, 270)를 별도의 인클로저(220) 내로 분리하고 있다. 이것은 당업계에 공지된 통상의 형태의 분리이다. 그러나, 소규모 컴퓨터 시스템에서는 도 2의 모든 구성 요소들이 단일 인클로저 내에 포함되어 있는 것이 통상적이라는 것에 유의해야 한다. 보다 대규모의 시스템에서는, 많은 CPU 및 메모리 카드 및 더 많은 PCI 호스트 브리지(230) 및 PCI-PCI 브리지(240)를 필요로 하는 많은 PCI 어댑터 슬롯이 있을 수 있으며, 따라서 전자 패키징 기술은 이들 하드웨어 구성 요소들을 포함하는 다수의 전자 인클로저를 필요로 한다. 바람직한 실시예는 모든 구성 요소가 단일 인클로저 내에 포함되어 있든지 다수의 인클로저에 분산되어 있는지에 관계없이, 임의의 적당한 하드웨어 구성으로 명백히 확장된다.
바람직한 실시예에서, 전원 공급 장치, I/O 슬롯, 또는 인클로저의 모든 구성 요소로부터 전력을 제거할 필요가 있을 수 있는 인클로저의 다른 컴포넌트 등의 인클로저(220)의 컴포넌트들에 대해 하드웨어 서비스를 수행하는 것이 바람직할 수 있다. 바람직한 실시예에서, 이것은 먼저 인클로저 내의 I/O 슬롯의 제어를 그 I/O 슬롯의 할당된 논리적 파티션으로부터 리소스 및 파티션 관리자로 전달하고, 이어서 상기 인클로저의 전원을 오프시키고 하드웨어 서비스를 수행하며, 그 인클 로저의 전원을 온시키고 이어서 상기 I/O 슬롯을 다시 그 I/O 슬롯의 할당된 논리적 파티션으로 전달함으로써 달성된다. 로크를 논리적 파티션과 리소스 및 파티션 관리자 사이에서 전달하기 위한 I/O 슬롯 로크 및 관련 메카니즘은 논리적 파티션이 동작을 계속하는 도중에 이러한 동작 시퀀스를 용이하게 해준다. 상기 리소스 및 파티션 관리자는 이러한 하드웨어 관리 기능을 수행하기 위해 하드웨어 관리자와 연계하여 동작할 수도 있음을 유의해야 한다.
도 3은 본 발명을 바람직한 실시예의 범위 내에서 실시할 수 있는 특정의 소프트웨어 컴포넌트를 나타낸 블록도이다. 도 3에 도시한 소프트웨어 컴포넌트는 도 2에 도시한 컴퓨터 시스템(200) 등의 하드웨어 플랫폼 상에서 실행되는 것이 바람직하다는 것을 유의하여야 한다. N개의 논리적 파티션(125A-125N)이 그들 각각의 오퍼레이팅 시스템(126A-126N)을 실행하는 것이 도시되어 있다. 하이퍼바이저(300)는 도 1의 리소스 및 파티션 관리자(121)의 한 특정 구현으로서 도시되어 있다. 하이퍼바이저(300)는 오퍼레이팅 시스템 커널(312)을 실행하는 하이퍼바이저 파티션(310)을 포함한다. 오퍼레이팅 시스템 커널(312)은 디스패치가능(dispatchable)하고 재배치가능(relocatable)하며, 멀티태스킹 및 메모리 관리 등의 오퍼레이팅 시스템 커널의 일반적인 기능을 제공한다. 하이퍼바이저 파티션(310)은 다른 논리적 파티션처럼 많은 것을 실행하지만 사용자 애플리케이션(user application)을 제공하지 않고, 플랫폼 리소스를 제어하기 위한 특수 권한을 가지고 있는 약간 개인적이고 숨겨진 파티션이라는 점에서 다른 논리적 파티션과 다르며, HvPrimaryCall 인터페이스(330)를 경유하여 비디스패치가능 하이퍼바이저(non- dispatchable hypervisor)(320)와 통신할 권한을 갖는 유일한 파티션이다. 도 3의 하이퍼바이저 파티션(310)은 도 1의 파티션(125)에 대응될 수 있는데, 이는 오퍼레이팅 시스템 커널(312)도 역시 도 1의 오퍼레이팅 시스템(126)에 대응한다는 것을 의미한다. 현재의 iSeries 구현에서, 하이퍼바이저 파티션(310)은 "프라이머리 파티션(primary partition)"이라고 할 수 있다. HvPrimaryCall 인터페이스(330)는 하이퍼바이저 파티션(310)이 특권을 갖는 비디스패치가능 하이퍼바이저 모드(privileged, non-dispatchable hypervisor mode)에서 프로세서로 수행되는 하이퍼바이저 함수를 호출하는 데 사용된다.
논리적 파티션은 논리적 파티션이 특권을 갖는 비디스패치가능 하이퍼바이저(320)를 호출하는 데 사용되는 HvCall 인터페이스(340)를 통해 하이퍼바이저와 통신한다. 비디스패치가능 하이퍼바이저(320)는 비디스패치가능하고 비재배치가능한 관리 에전달트로서, 물리적 주소에 액세스하는 기능을 한다. 비디스패치가능 하이퍼바이저(320)는 다음 중 어느 하나를 통해 호출되는 특권 모드 함수를 제공한다; l) 하이퍼바이저 파티션이 논리적 파티션 실행을 스케쥴링 또는 디스패치하는 동안의 HvPrimaryCall 인터페이스(330), 2) 플랫폼 하드웨어 인터럽트 및 3) 논리적 파티션 실행 쓰레드를 하이퍼바이저 실행(즉, 특권) 모드에 두는 HvCall 인터페이스(340)에 의해 규정된 프로세서 관리-호출 명령(processor supervisory-call instruction)을 사용하는 논리적 파티션.
하이퍼바이저 하드웨어 관리자(350) 및 I/O 슬롯 로크(123)는 도 3에 도시한 바와 같은 비디스패치가능 하이퍼바이저(320) 내의 캡슐화된 함수인 것이 바람직하 지만, 역시 다른 위치에서도 구현될 수 있다. 하이퍼바이저 하드웨어 관리자(350)는 도 2의 PCI 호스트 브리지(230) 및 PCI-PCI 브리지(240) 하드웨어를 액세스 및 제어하고 또 PCI 어댑터 슬롯(250)의 하드웨어 상태를 추적 및 시행하는 하이퍼바이저 함수를 캡슐화한다. 슬롯 로크(123)는 로크의 소유권을 설정하고 하이퍼바이저와 논리적 파티션 간의 슬롯 로크의 전달을 직렬화하는 함수를 캡슐화한다.
하이퍼바이저 파티션(310)은 슬롯 상태 및 슬롯 로크 전환을 실시하기 위해 비디스패치가능 하이퍼바이저(320)와 상호작용한다. 하이퍼바이저 파티션(310)은 시스템 관리자 인터페이스(360)의 에전달트이고, 그 인터페이스를 통해 시스템 관리자(370)에 의해 요청된 서비스 동작을 수행한다. 시스템 관리자(370)는 관리 콘솔(372) 및 하드웨어 관리 콘솔(374)을 포함하는 것이 바람직함을 유의하여야 한다.
비디스패치가능 하이퍼바이저(320)가 하이퍼바이저 파티션(310) 내의 함수들과의 통신을 개시하기 위해, 비디스패치가능 하이퍼바이저(320)는 하이퍼바이저 파티션(310)에 의해 모니터링되는 이벤트 메시지 큐(314)에 메시지를 인큐(enqueue)한다. 일반적으로, 비디스패치가능 하이퍼바이저(320)로부터 디스패치가능 하이퍼바이저(310)로의 이벤트 메시지는 브리지 하드웨어의 리셋 및 초기화, 가상 주소 변환 테이블의 스캐닝 및 하드웨어 안정 시간과 연관된 실시간 지연 수행 등의 복잡한 하드웨어 제어 시퀀스를 수행하는 데 사용된다. 하이퍼바이저 파티션(310) 내의 함수들은 비디스패치가능 하이퍼바이저(320)가 요청한 동작들의 완료를 신호하여 이들 하드웨어 상태를 비디스패치가능 하이퍼바이저 함수들과 동기화시키기 위해 HvPrimaryCall 인터페이스(330)를 호출한다.
I/O 슬롯은 일반적으로 논리적 파티션에 의해 사용될 플랫폼 리소스를 구성하는 것의 일부로서 논리적 파티션에 할당된다. 그렇지만, 언제라도 시스템 관리자 함수들은 논리적 파티션이 활성인 동안에 그 슬롯을 사용하는 논리적 파티션으로부터 다른 논리적 파티션으로 I/O 슬롯의 전달을 개시하거나 단순히 논리적 파티션의 구성으로부터 그 슬롯을 제거할 수 있다. 이와 유사하게, 시스템 서비스 함수들은 그 슬롯에 개별적으로 서비스하거나 또는 그 인클로저 내의 그 슬롯 또는 다른 슬롯을 방해하지 않고는 수행될 수 없는 동일 인클로저 내의 다른 하드웨어에 서비스하는 등의 서비스 기능을 수행하기 위해 활성 논리적 파티션으로부터 하이퍼바이저 또는 서비스 에전달트로 슬롯 제어를 전달하는 것이 필요할 수 있다.
바람직한 실시예의 슬롯 로크는 I/O 슬롯을 논리적 파티션에 대한 구성 데이터베이스로부터 제거하지 않은채, 논리적 파티션 오퍼레이팅 시스템과 하이퍼바이저 사이 또는 제어된 상태와 미제어된(또는 미할당된) 상태 사이에 I/O 슬롯 제어의 동적 전달을 용이하게 해준다. 슬롯 로크는 논리적 파티션 및 하이퍼바이저에 할당될 수 있거나, (논리적 파티션 및 하이퍼바이저를 포함한) 어떤 엔티티에도 미할당될 수 있다. 슬롯 로크는 하이퍼바이저와 논리적 파티션 간의 상호 배제를 제공할 뿐만 아니라, 슬롯의 전원 및 리셋 상태를 시행하는 동기점(synchronization point)을 제공하여 OS 가상 주소 공간과 어댑터 PCI 메모리 또는 I/O 공간 사이의 OS 바인딩(메모리 매핑 바인딩) 및 OS 저장 장치와 그 저장 장치로의 어댑터 DMA 매핑 사이의 OS 바인딩(예컨대, 논리적 파티션 메모리에서 저장 장치 주소로 변환 되는 PCI 메모리 공간 내의 간접 주소)을 제거한다.
논리적 파티션 오퍼레이팅 시스템은 본 명세서에서 슬롯의 제어를 하이퍼바이저로 또는 미할당 상태로 넘겨주는 Vary Off라고 하는 함수를 사용할 수 있고, 본 명세서에서 슬롯의 제어를 하이퍼바이저로부터 넘겨받는 Vary On이라고 하는 함수를 사용할 수 있다. PCI 어댑터 슬롯을 vary off 및 vary on하기 위해 하이퍼바이저와 상호작용하는 논리적 파티션 오퍼레이팅 시스템의 일반적인 개념 및 방법은 논리적 분할을 제공하는 AS/400 및 eServer(iSeries 및 pSeries) 컴퓨터 시스템에 구현되어 있다. 바람직한 실시예는 Vary On 및 Vary Off 프로세싱을 제어하고 슬롯 전원, 리셋 및 오퍼레이팅 시스템 바인딩 상태를 시행하기 위한 동기점을 제공하기 위해 슬롯 로크의 새로운 특징을 사용한다. 또한, 바람직한 실시예는 또한 사용할 I/O 슬롯을 준비하고 논리적 파티션 전원 온 동작, 논리적 파티션 전원 오프 동작 및 논리적 파티션 재부팅 동작과 관련된 슬롯 로크를 사용하여 하이퍼바이저와 논리적 파티션 간의 I/O 슬롯을 전달하는 장치 및 방법도 제공한다.
하이퍼바이저(300)의 기능은 도 4 내지 도 8의 흐름도에 보다 상세히 나타내어져 있다. 도 4는 논리적 파티션을 재부팅하는 방법(400)의 흐름도를 나타낸 것이다. 하이퍼바이저(300)가 논리적 파티션을 재부팅하기로 결정할 수 있거나 논리적 파티션 자체가 그 자신이 종료하고 있으므로 재부팅되어야 한다는 것을 하이퍼바이저(300)에게 신호할 수 있다는 것을 유의하여야 한다. 도 3의 하이퍼바이저(300)가 논리적 파티션을 재부팅할 필요가 있을 때, 하이퍼바이저 파티션(310)은 논리적 파티션 내의 오퍼레이팅 시스템(LP OS; 126)에 재부팅을 신호한다(단계 1a). 따라서, 하이퍼바이저(300)가 도 3의 논리적 파티션(125A)을 재부팅하고자 하는 경우, 하이퍼바이저(HV) 파티션(310)은 논리적 파티션 오퍼레이팅 시스템(126A)에 재부팅을 위해 종료하도록 신호한다. 논리적 파티션 오퍼레이팅 시스템(126A)은 그의 I/O 어댑터를 준비하고 종료를 위한 마무리를 하기 위해 하우스키핑(housekeeping) 작업을 수행하고, 이어서 HV 파티션(310)에 재부팅을 개시하도록 신호한다(단계 1b). 파티션이 그 자신이 재부팅이 필요한 것으로 판정하는 경우, 그 파티션은 그의 I/O 어댑터를 준비하고 종료를 위한 마무리를 하기 위해 하우스키핑 작업을 수행하고 이어서 하이퍼바이저가 단계 1a에서의 재부팅을 요청함이 없이 재부팅을 개시(단계 1b)하도록 HV 파티션(310)에 신호한다. HV 파티션(310)은 이어서 논리적 파티션 CPU의 실행을 중단하고(단계 2), 논리적 파티션 오퍼레이팅 시스템을 종료한다. 정상 종료에서, LP OS(126)는 종료하기 전에 하우스키핑 작업들을 완료한다. 그렇지만, 논리적 파티션이 손상된 경우, 논리적 파티션은 종료하기 전에 하우스키핑 작업들 중 임의의 것을 완료하지 못할 수 있다.
HV 파티션(310)은 이어서 HvPrimaryCall 인터페이스(330)에 대해 setSlotLock 함수(단계 3)를 호출한다. 이것은 현재 재부팅되고 있는 파티션의 제어 하에 있는 슬롯의 제어를 하이퍼바이저로 전달한다. setSlotLock 호출에서 3개의 파라미터, 즉 slot, from_LP, to_HV가 전달된다. slot 파라미터는 관심 슬롯을 지정한다. from_LP 파라미터는 재부팅되고 있는 논리적 파티션(현재 슬롯을 제어하고 있음)을 지정하고, to_HV 파라미터는 슬롯 로크가 하이퍼바이저(300)에 의해 제어되도록 전달되는 것으로 지정한다. setSlotLock 호출을 실행함에 있어서, 하 이퍼바이저는 슬롯 로크 저장 장치에 대한 멀티프로세서 쓰레드 로크를 가져오는 단계 4를 수행한다. 이러한 특정의 구현에서, 이는 슬롯 로크 저장 장치가 로크되어 있는 동안에는 어떤 다른 멀티프로세서 CPU 쓰레드도 슬롯 로크에 액세스할 수 없음을 의미한다. 그러나, 전체의 슬롯 로크 저장 장치를 로크하는 대신에 개별적으로 로크될 수 있는 슬롯 로크를 제공하는 것도 마찬가지로 바람직한 실시예의 범위 내에 속한다. 이어서, 슬롯 로크가 현재 재부팅되고 있는 논리적 파티션에 의해 소유되어 있는지(if lock[slot] = LP)를 알아보기 위해 슬롯 로크의 상태가 검사된다. 슬롯 로크가 재부팅되고 있는 논리적 파티션에 의해 소유되어 있는 경우, 슬롯 로크의 소유권은 하이퍼바이저에게 전달되고(lock[slot] = HV), 반환 상태는 SUCCESS로 설정된다. 슬롯 로크가 재부팅되고 있는 논리적 파티션에 의해 소유되어 있지 않은 경우, 반환 상태는 FAIL로 설정된다. 이어서, 슬롯 로크 저장 장치에 대해 멀티프로세서(MP) 쓰레드 로크가 해제된다. 그 다음에, 하이퍼바이저는 하이퍼바이저 하드웨어 관리자(HV HW MGR)(350)와 상호작용한다(단계 5). 단계 4로부터의 슬롯 로크 상태가 SUCCESS인 경우, 슬롯 I/O 및 제어 권한이 하이퍼바이저로 전달되고, 슬롯으로의 논리적 파티션 바인딩이 제거 및 디스에이블됨으로써 이 논리적 파티션 또는 다른 논리적 파티션에 의하거나 또는 I/O 슬롯 내의 I/O 어댑터에 의하여 이러한 바인딩을 설정 또는 이용하려는 차후의 시도는 실패하게 된다.
이어서, HV 파티션(310)은 단계 6 내지 단계 9에서 HvPrimaryCall 인터페이스(330)를 호출한다. 단계 6에서, 슬롯에 대한 PCI-PCI 브리지를 리셋하고 리셋 신호 PCI RST를 슬롯으로 어써트하기 위한 호출이 행해진다. 단계 7에서, PCI-PCI 브리지를 재초기화하기 위한 호출이 행해진다. 단계 8에서, 슬롯의 전원을 온시키기 위한 호출이 행해진다. 단계 6에서, 슬롯은 전원이 오프된 것이 아니라 리셋되었기 때문에 단계 8이 생략될 수 있다는 점을 유의하여야 한다. 단계 8은 일반적으로 하이퍼바이저 파티션이 I/O 슬롯과 관련없는 재부팅 프로세싱을 행한 후에 수행된다. 단계 9에서, 관심 슬롯을 지정하는 setSlotLock 호출이 행해지고, 그 소유권이 하이퍼바이저로부터(from_HV) 논리적 파티션으로(to_LP) 전달된다. 그 다음, 하이퍼바이저는 재부팅되고 있는 논리적 파티션에 슬롯 로크를 할당하려는 시도를 한다(단계 10). 먼저, 다른 쓰레드가 동시에 슬롯 로크를 획득하려는 시도를 못하게 하기 위해 슬롯 로크에 대해 멀티프로세서 쓰레드 로크가 설정된다. 슬롯 로크가 하이퍼바이저에 의해 소유되어 있는 경우, 슬롯 로크는 재부팅되고 있는 논리적 파티션으로 설정되고, 상태는 SUCCESS로 설정된다. 슬롯 로크가 그 논리적 파티션에 의해 소유되지 않은 경우, 상태는 FAIL로 설정된다. 이어서, 멀티프로세서 쓰레드 로크가 해제된다. 그 다음, 단계 11에서, HvPrimaryCall(300)은 슬롯 로크의 상태를 판정한다. 슬롯 로크 상태가 SUCCESS인 경우, 하이퍼바이저 하드웨어 관리자(350)가 호출되고, 슬롯 I/O 및 제어 권한을 논리적 파티션으로 설정하고 슬롯 제어 하드웨어를 재초기화하며 슬롯으로의 논리적 파티션 바인딩을 인에이블한다.
논리적 파티션에 할당된 각각의 슬롯에 대해 단계 3 내지 단계 11이 수행된다는 점을 유의하여야 한다. 단계 3 내지 단계 11이 모든 I/O 슬롯에 대해 수행되 었으면, 논리적 파티션 오퍼레이팅 시스템(126)의 실행이 시작될 수 있다(단계 12). 바람직한 실시예에서, 이들 단계 중 일부는 직렬화될 수 있지만 다른 것들은 다른 슬롯에 대해 병렬로 수행될 수 있다. 예를 들어, 슬롯은 한번에 하나씩 하이퍼바이저로 전달될 수 있다. 이어서, 모든 슬롯이 병렬로 리셋되고 초기화될 수 있다. 파티션 재부팅 프로세싱이 완료되면, 슬롯들의 전원이 병렬로 온된다. 마지막으로, 슬롯들은 한번에 하나씩 다시 파티션에 할당된다.
도 5는 바람직한 실시예의 범위 내에서 논리적 파티션의 전원을 오프시키는 방법(500)을 나타낸 것이다. 논리적 파티션의 전원을 오프시키는 것은 시스템 관리자(510)로부터의 요청에 응답하거나(단계 1a), 예정된 전원 차단에 응답하여(단계 1b) 일어날 수 있다. 논리적 파티션 오퍼레이팅 시스템(126)은 전원을 차단하도록 신호를 받으며(단계 2a), 뒤이어서 논리적 파티션이 준비될 때 하이퍼바이저로의 신호가 있게 된다(단계 2b). 재부팅의 경우에서와 같이, 논리적 파티션은 종료할 준비가 되어 있음을 하이퍼바이저에게 신호하기 전에 하우스키핑(housekeeping) 및 I/O 어댑터 준비를 수행한다. 단계 2b에 뒤이어서, 하이퍼바이저는 논리적 파티션 CPU의 실행을 중단하고(단계 3), 논리적 파티션 오퍼레이팅 시스템을 종료시켜 그것의 논리적으로 전원이 오프된 상태로 설정하게 된다. 이어서, setSlotLock 함수가 HvPrimaryCall 인터페이스(330)에 대해 호출되고(단계 4), 3개의 파라미터, 즉 관심 슬롯을 지정하는 slot, 슬롯 로크 소유권이 전달되어 올 논리적 파티션을 지정하는 from_LP 및 슬롯 로크 소유권이 하이퍼바이저로 전달되고 있음을 지정하는 to_HV를 지정한다. 그에 응답하여, HVPrimaryCall 인터페이스 (330)는 단계 5에 나타낸 바와 같이 슬롯 로크(123)와 상호작용한다. 먼저, 그 인터페이스는 슬롯 로크에 대한 멀티프로세서 쓰레드 로크를 가져온다. 슬롯 로크가 현재 전원이 오프되고 있는 논리적 파티션에 의해 소유되어 있는 경우(lock[slot] = LP), 슬롯 로크는 하이퍼바이저에 재할당되고(lock[slot] = HV), 반환 상태는 SUCCESS로 설정된다. 슬롯 로크가 현재 전원이 오프되고 있는 논리적 파티션에 의해 소유되지 않은 경우, 반환 상태는 FAIL로 설정된다. 반환 상태가 그의 적절한 값으로 설정된 후에, 멀티프로세서 쓰레드 로크가 해제된다.
슬롯 로크 상태가 SUCCESS인 경우, 하이퍼바이저 하드웨어 관리자(350)는 그 다음에 단계 6에서 호출된다. 슬롯으로의 슬롯 제어 하드웨어 및 논리적 파티션 바인딩이 리셋되고, 슬롯 I/O 및 제어 권한이 하이퍼바이저로 전달된다. 단계 6이 완료되면, 단계 7은 슬롯에 대한 브리지 하드웨어를 리셋하고 리셋 신호 PCI RST를 슬롯으로 어써트하며, 단계 8은 슬롯 전원 오프를 설정한다. 단계 10에서 구현되는 것인 슬롯 로크를 미할당 상태로 만들기 위해, 단계 9는 슬롯 로크를 하이퍼바이저로부터 전달하는 호출이다. 유의할 점은 단계 4 내지 단계 10이 전원이 오프되고 있는 논리적 파티션에 할당된 각 슬롯에 대해 수행된다는 것이다.
도 6은 바람직한 실시예들에 따른 논리적 파티션의 전원을 온시키는 방법(600)을 나타낸 것이다. 프로세싱은 시스템 관리자(510)가 논리적 파티션의 전원이 온시켜야 한다고 요청하는 때 시작된다(단계 1). 논리적 파티션 전원 온은 또한 HV 파티션(310)의 예정된 작업일 수 있다. HV 파티션(310)은 슬롯을 미할당 상태에서 하이퍼바이저로 전달하기 위해 setSlotLock 호출을 발생한다(단계 2). 그 에 응답하여, 단계 3이 수행되어 멀티프로세서 쓰레드 로크를 가져오며, 슬롯 로크가 미할당되어 있는 경우, 슬롯 로크를 하이퍼바이저에 할당한다. 슬롯 로크가 단계 3에서 성공적으로 하이퍼바이저로 전달된 경우에만, 도 6의 나머지 단계들이 수행된다.
선택된 슬롯에 대한 브리지 슬롯 하드웨어가 초기화되고(단계 4), 이어서 슬롯의 전원이 온된다(단계 5). 이어서, 슬롯 리셋 신호 PCI RST이 디어써트(deassert)되어(단계 6), 슬롯이 그의 리셋 상태로부터 나와서 동작할 수 있도록 해준다. 이어서, 관심 슬롯을 지정하고, 관심 슬롯 로크가 현재 하이퍼바이저에 속하는 것(from_HV)으로 지정하며, 관심 슬롯 로크의 소유권이 전원이 온되고 있는 논리적 파티션으로 전달되는 것으로 지정하는 setSlotLock 호출이 행해진다(단계 7).
그 다음, 단계 8이 수행되는데, 슬롯 로크에 대한 멀티프로세서 쓰레드 로크를 가져와서 슬롯 로크가 하이퍼바이저에 현재 소유되어 있는지를 판정하고, 소유되어 있는 경우, 슬롯 로크를 논리적 파티션에 할당한다. 이어서, 반환 상태는 SUCCESS로 설정된다. 슬롯 로크가 이미 다른 파티션에 의해 소유되어 있는 경우, 반환 상태는 FAIL로 설정된다. 반환 상태가 적절한 값으로 설정되면, 멀티프로세서 쓰레드 로크가 해제된다.
이어서, 단계 9가 수행되어 슬롯 로크 상태를 검사하고, 그 상태가 SUCCESS를 나타내는 경우, 슬롯 I/O 및 제어 권한이 논리적 파티션으로 설정되고, 슬롯 제어 하드웨어가 초기화되며, 슬롯으로부터 논리적 파티션으로의 바인딩이 인에이블 된다. 단계 2 내지 단계 9가 전원이 온되고 있는 타겟 논리적 파티션에 할당된 각 슬롯에 대해 수행된다는 점을 유의하여야 한다. 단계 2 내지 단계 9가 타겟 논리적 파티션에 할당된 각 슬롯에 대해 수행되었으면, 논리적 파티션 오퍼레이팅 시스템(126)의 실행이 시작된다(단계 10).
전술한 바와 같이, 어느 파티션이든 전원을 오프시키거거나 재부팅하지 않고 I/O 슬롯의 제어가 한 논리적 파티션으로부터 다른 논리적 파티션으로 전달될 수 있는 때가 있다. 이와 마찬가지로, I/O 슬롯의 제어가 유지 보수를 위해 역시 그 논리적 파티션의 전원을 오프시키거거나 재부팅하지 않고 논리적 파티션으로부터 하이퍼바이저로 전달될 수 있는 때가 있다. 함수 "Vary Off"는 활성 파티션이 플랫폼 파티션 구성 데이터베이스에서 슬롯의 소유권을 포기하지 않고 슬롯의 제어를 동적으로 포기할 수 있게 해준다. 이와 유사하게, 함수 "Vary On"은 활성 파티션이 플랫폼 파티션 구성 데이터베이스에 따라 그가 소유하는 슬롯의 제어를 동적으로 획득할 수 있게 해준다. 도 7 및 도 8은 각각 vary off 및 vary on 함수에 대한 상세 흐름도이다.
이제 도 7을 참조하면, 바람직한 실시예들에 따른 vary off 함수를 구현하는 방법(700)은 시스템 운영자(510) 또는 다른 시스템 관리자(작업 부하 관리자 애플리케이션 등)가 vary off 메시지를 논리적 파티션 오퍼레이팅 시스템(126)에 전송할 때 시작된다(단계 1). 그에 응답하여, 논리적 파티션 오퍼레이팅 시스템은 슬롯 리셋 신호 PCI RST를 슬롯에 어써트하기 위해 HvCall 인터페이스(340)를 호출한다(단계 2). 이어서, 하이퍼바이저 하드웨어 관리자(350)가 PCI RST 신호를 어써 트하기 위해 호출된다(단계 3). 그에 응답하여, 하이퍼바이저 하드웨어 관리자(350)는 비디스패치가능 하이퍼바이저가 하이퍼바이저 파티션과 통신할 수 있게 해주는 메시지를 이벤트 큐에 넣는다(단계 4). HV 파티션(310)은 메시지가 있는지 알아보기 위해 이벤트 큐를 모니터링하고, 단계 4에서 큐잉된 메시지를 보게 되면 PCI RST 신호를 어써트하기 위해 HvPrimaryCall 인터페이스(330)를 호출한다(단계 5). 이어서, PCI RST 신호를 어써트하기 위해 하이퍼바이저 하드웨어 관리자(350)가 호출된다(단계 6). HV 파티션(310)은 하드웨어 상태가 안정될 수 있게 하기 위해 어떤 기간 동안 지연된다. 적절한 지연을 기다린 후에, HV 파티션(310)은 PCI RST 프로세싱이 완료되었음을 그 비디스패치가능 하이퍼바이저에게 신호한다(단계 7). 이어서, PCI RST 프로세싱의 완료가 하이퍼바이저 하드웨어 관리자에게 신호된다(단계 8).
그 다음, 논리적 파티션 오퍼레이팅 시스템(126)은 슬롯의 전원 오프를 요청하기 위해 HvPrimaryCall 인터페이스(330)를 호출한다(단계 9). 이것은 하이퍼바이저 하드웨어 관리자를 호출하고(단계 10) HV 파티션(310)으로의 이벤트 큐에 전원 오프 슬롯 이벤트를 발생시킨다(단계 11). HV 파티션(310)이 단계 11에서 이벤트 큐 상에서 논리적 파티션 이벤트 "전원 오프 슬롯"을 보면, 슬롯의 전원을 오프시키고 브리지 하드웨어를 리셋하기 위해 HvPrimaryCall 인터페이스(330)를 호출한다(단계 12). 이어서, 이것은 하이퍼바이저 하드웨어 관리자로 전달된다(단계 13). HV 파티션(310)은 하드웨어가 안정될 수 있도록 하기 위해 다시 소정의 지연을 기다리고, 이어서 슬롯 전원 오프 프로세싱이 완료되었음을 비디스패치가능 하 이퍼바이저에게 신호하기 위해 HvPrimaryCall 인터페이스(330)를 호출한다(단계 14). 이것은 하이퍼바이저 하드웨어 관리자에게 중계된다(단계 15). 이 상세 구현에서, PCI RST 신호는 먼저 슬롯에 대응하는 PCI-PCI 브리지 하에서 2차 버스를 리셋하기 위해 어써트되고, 이어서 브리지 자체가 리셋되고 이는 브리지 하의 모든 것을 격리시킨다. 이 시점에서, 슬롯의 전원이 오프된다.
LP OS(126)는 또한 어댑터에 대한 OS 바인딩을 해제하기 위해 HvCall 인터페이스(340)를 호출한다(단계 16). 그에 응답하여, HvCall 인터페이스(340)는 어댑터 매핑을 언바인딩하기 위해 하이퍼바이저 하드웨어 관리자를 호출한다(단계 17). 이어서, 이벤트 메시지가 슬롯에 대한 매핑을 언바인딩하기 위해 이벤트 큐 상에 큐잉된다(단계 18). 이어서, HV 파티션(310)은 이 슬롯 내의 어댑터에 대한 페이지 테이블 및 DMA 바인딩을 언매핑한다(단계 19). 이어서, HV 파티션(310)은 메모리 매핑이 언바인딩되었음을 신호한다(단계 20). HvPrimaryCall(330)은 이것을 하이퍼바이저 하드웨어 관리자에게 중계한다(단계 21).
LP OS(126)는 슬롯에 대한 제어 권한을 해제하기 위해 HvCall 인터페이스(340)를 호출한다(단계 22). 그에 응답하여, 단계 23이 수행된다. 슬롯의 전원이 오프되고 바인딩이 언매핑되면, 슬롯 I/O 및 제어 권한이 하이퍼바이저로 설정되고, SUCCESS가 반환된다. 그렇지 않은 경우, FAIL이 반환된다. 이어서, 단계 24가 수행된다. 먼저, 멀티프로세서 쓰레드 로크가 획득된다. 슬롯 로크가 현재 논리적 파티션에 의해 소유되어 있고(lock[slot] = LP) 단계 23이 SUCCESS를 나타내는 경우, 슬롯 로크 소유권이 포기되고(lock[slot] = unassigned) 반환 상태는 SUCCESS로 설정된다. 그렇지 않은 경우, 반환 상태는 FAIL로 설정된다. 이어서, 멀티프로세서 쓰레드 로크가 해제된다. 이어서, 시스템 운영자(510) 또는 단계 1에서 vary off 함수를 요청한 다른 에전달트는 단계 1 내지 단계 23의 시퀀스로부터 반환된 상태를 사용하여 vary off 함수가 성공적이었는지 여부를 판정한다. 이 시점에서, 슬롯이 포기되고 이제 다른 파티션으로 전달되거나 하드웨어 서비스 도구가 전달받을 수 있다.
도 8의 방법(800)은 바람직한 실시예의 범위 내에서 vary on 메시지를 구현함에 있어서의 단계들을 나타낸다. 먼저, 시스템 운영자 또는 다른 시스템 관리자는 vary on 메시지를 논리적 파티션 오퍼레이팅 시스템(126)으로 전송한다(단계 1). 그 다음, LP OS(126)는 슬롯에 대한 제어 권한을 획득하기 위해 HvCall 인터페이스(340)를 호출한다(단계 2). 그에 응답하여, 단계 3이 수행되어 슬롯 로크에 대한 멀티프로세서 쓰레드 로크를 가져온다. 슬롯 로크가 현재 요청하는 파티션에 의해 소유되거나 미할당되어 있는 경우, 슬롯 로크는 논리적 파티션에 할당되며, 반환 상태는 SUCCESS로 설정된다. 슬롯 로크가 이 논리적 파티션에 의해 소유되지 않은 경우, 반환 상태는 FAIL로 설정된다. 이어서, 멀티프로세서 쓰레드 로크가 해제된다.
단계 3에서 상태가 SUCCESS인 것으로 가정하면, 단계 4 내지 단계 20이 수행될 수 있다. 단계 4에서, 슬롯에 대한 슬롯 I/O 및 제어 권한이 논리적 파티션으로 설정된다(단계 4). LP OS(126)는 DMA 및 가상 주소(VA) 바인딩을 인에이블하기 위해 HvCall 인터페이스(340)를 호출한다(단계 5). 이것은 하이퍼바이저 하드웨어 관리자를 호출한다(단계 6). 그에 응답하여, 하이퍼바이저 하드웨어 관리자(350)는 슬롯 내의 어댑터들에 대한 DMA 및 VA 바인딩을 인에이블한다. LP OS(126)는 또한 슬롯의 전원을 온시키기 위해 HvCall 인터페이스(340)를 호출한다(단계 7). 이것은 하이퍼바이저 하드웨어 관리자를 호출한다(단계 8). 그에 응답하여, 슬롯의 전원이 온시켜져야만 함을 요청하는 이벤트가 이벤트 큐에 배치된다(단계 9). 그에 응답하여, HV 파티션(310)은 브리지를 초기화하고 또 슬롯의 전원을 온시키기 위해 HvPrimaryCall 인터페이스(330)를 호출한다. 이것은 하이퍼바이저 하드웨어 관리자를 호출한다(단계 11). 슬롯의 전원이 온되고 안정되도록 보장하기 위해 적절한 지연을 기다린 후에, 전원 온 프로세싱이 완료되었음을 나타내는 메시지가 전송된다(단계 12). 이어서, 전원 온 프로세싱의 완료가 하이퍼바이저 하드웨어 관리자에게 신호된다(단계 13).
LP OS(126)는 슬롯으로의 PCI RST 신호를 디어써트하기 위해 HvCall 인터페이스(340)를 호출한다(단계 14). 이것은 하이퍼바이저 하드웨어 관리자를 호출한다(단계 15). 그에 응답하여, PCI RST 신호가 디어써트되어야 함을 요청하는 이벤트 메시지가 이벤트 큐에 기록된다(단계 16). 이어서, PCI RST 신호를 디어써트하기 위해 HvPrimaryCall이 호출되고(단계 17), 이 신호는 하이퍼바이저 하드웨어 관리자로 전달된다(단계 18). 그에 응답하여, 비디스패치가능 하이퍼바이저는 PCI RST를 슬롯으로 디어써트한다. 슬롯이 리셋에서 나와서 안정 상태에 있도록 보장하기 위해 적절한 지연을 기다린 후에, HV 파티션(310)은 PCI RST 프로세싱이 완료되었음을 알려주기 위해 HvPrimaryCall 인터페이스(330)를 호출한다(단계 19). PCI RST 프로세싱의 완료는 또한 하이퍼바이저 하드웨어 관리자에게도 전달된다(단계 20). 이 시점에서, 논리적 파티션은 슬롯의 제어를 획득하였고 슬롯을 사용하여 동작을 재개할 수 있다.
바람직한 실시예는 슬롯에 대한 동작이 수행될 수 있기 전에 획득되어야만 하는 슬롯 로크를 제공하고, 그 슬롯의 제어가 엔티티들 간에 전달될 수 있기 전에 슬롯의 전원이 오프되고 이어서 다시 온되도록 보장함으로써 종래 기술에 비해 상당한 진보를 제공한다. 슬롯은 논리적 파티션이나 하이퍼바이저에 의해 제어될 수 있거나 또는 미할당될 수 있다. 하드웨어 관리자 등의 하이퍼바이저의 제어 하의 여러 가지 에전달트들도 역시 슬롯을 제어할 수 있다는 점을 유의하여야 한다. 상호 배타적인 슬롯 로크로 인해 경쟁하는 개체들은 의한 슬롯으로의 무충돌 액세스가 보장된다. 슬롯이 논리적 파티션으로부터 제거될 때 슬롯의 전원을 오프시킴으로써 어댑터 내의 데이터에 대한 데이터 무결성의 문제를 제거하며 어댑터가 논리적 파티션에 할당될 때 그 어댑터가 항상 전원 온 리셋 상태에 있도록 보장한다.
당업자라면 본 발명의 범위 내에서 여러 가지 변형이 가능함을 잘 알 것이다. 따라서, 본 발명이 그의 바람직한 실시예를 참조하여 구체적으로 도시되고 기술되어 있지만, 당업자라면 형태 및 세부에 있어서의 이들 및 다른 변경이 본 발명의 사상 및 범위를 벗어나지 않고 그 안에서 행해질 수 있음을 잘 알 것이다. 예를 들어, PCI 슬롯이 독립적으로 제어될 수 있는 특정 유형의 리소스의 예로서 도시되어 있지만, PCI 슬롯 이외의 다른 유형의 리소스도 역시 바람직한 실시예의 범 위 내에서 제어될 수 있다. 예를 들어, PCMCIA 슬롯, S390 채널 또는 제어 유닛 등의 여러 가지 다른 유형의 I/O 슬롯 또는 어댑터가 바람직한 실시예의 개시 내용을 사용하여 제어될 수 있다. 바람직한 실시예에 따라 제어될 수 있는 다른 유형의 유사한 리소스로는 I/O 버스, I/O 통신 채널(Infiniband 큐 쌍 등), 가상 슬롯 또는 장치, CPU 및 메모리 블록이 있다.
Claims (23)
- 장치에 있어서,적어도 하나의 프로세서;상기 적어도 하나의 프로세서에 연결된 메모리;상기 적어도 하나의 프로세서에 연결된 복수 개의 하드웨어 리소스;상기 메모리 내에 존재하며, 상기 복수 개의 하드웨어 리소스 각각에 대응하는복수 개의 로크(lock);상기 장치 상에 규정된 복수 개의 논리적 파티션;상기 대응하는 하드웨어 리소스의 제어를 상기 복수 개의 논리적 파티션 중 하나로 전달하기 전에, 그리고 상기 복수 개의 논리적 파티션 중 하나가 상기 대응하는 하드웨어 리소스에 액세스하도록 허용하기 전에, 상기 대응하는 로크의 배타적 소유권을 요구함으로써 상기 복수 개의 논리적 파티션에 의한 각각의 하드웨어 리소스로의 액세스를 제어하는 로크 메카니즘; 및상기 메모리 내에 존재하고 상기 적어도 하나의 프로세서에 의해 실행되는 전원 온/전원 오프 메카니즘을 포함하며, 상기 전원 온/전원 오프 메카니즘은, 선택된 하드웨어 리소스의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때 상기 선택된 하드웨어 리소스의 전원을 오프시키고, 상기 선택된 하드웨어 리소스의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때 상기 선택된 하드웨어 리소스의 전원을 온시키는 것인, 장치.
- 삭제
- 삭제
- 장치에 있어서,적어도 하나의 프로세서;상기 적어도 하나의 프로세서에 연결된 메모리;상기 적어도 하나의 프로세서에 연결된 복수 개의 PCI 어댑터 슬롯;상기 장치 상에 규정된 복수 개의 논리적 파티션;상기 메모리 내에 존재하며, 대응하는 PCI 어댑터 슬롯 로크를 갖는 복수 개의 PCI 어댑터 슬롯 로크(lock),상기 대응하는 PCI 어댑터 슬롯의 제어를 상기 복수 개의 논리적 파티션 중 하나로 전달하기 전에, 그리고 상기 복수 개의 논리적 파티션 중 하나가 상기 대응하는 PCI 어댑터 슬롯에 액세스하도록 허용하기 전에, 상기 대응하는 PCI 어댑터 슬롯 로크의 배타적 소유권을 요구함으로써 상기 복수 개의 논리적 파티션에 의한 각각의 PCI 어댑터 슬롯으로의 액세스를 제어하는 PCI 슬롯 로크 메카니즘;상기 적어도 하나의 프로세서에 연결된 적어도 하나의 PCI 호스트 브리지;상기 적어도 하나의 PCI 호스트 브리지를 적어도 하나의 PCI-PCI 브리지(PCI to PCI bridge)에 연결시키는 적어도 하나의 1차 PCI 버스(primary PCI bus); 및각각 상기 PCI-PCI 브리지 중 하나를 대응하는 PCI 어댑터 슬롯에 연결시키는 복수 개의 2차 PCI 버스(secondary PCI bus)를 포함하며,상기 각각의 PCI-PCI 브리지는,상기 메모리 내에 존재하며 상기 적어도 하나의 프로세서에 의해 실행되는 전원 온/전원 오프 슬롯 메카니즘을 더 포함하며, 상기 전원 온/전원 오프 슬롯 메카니즘은, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때 상기 선택된 PCI 어댑터 슬롯의 전원을 오프시키고, 상기 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때 상기 선택된 PCI 어댑터 슬롯의 전원을 온시키는 것인, 장치.
- 제4항에 있어서, 모든 메모리 및 가상 주소 바인딩을 언바인딩하고, 상기 메모리 및 가상 주소 바인딩이 이전에 언바인딩되지 않은 경우, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯 내의 어댑터에 대한 새로운 바인딩의 설정을 방지하는 메카니즘을 더 포함하는 장치.
- 제4항에 있어서, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯 내의 어댑터에 대한 메모리 및 가상 주소 바인딩을 인에이블시키는 메카니즘을 더 포함하는 장치.
- 제4항에 있어서, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯의 제어를 리소스 및 파티션 관리자에게 전달하는 메카니즘을 더 포함하는 장치.
- 제4항에 있어서, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯의 제어를 상기 하나의 논리적 파티션으로 전달하는 메카니즘을 더 포함하는 장치.
- 제4항에 있어서, 상기 복수 개의 논리적 파티션 중 하나가 그 하나의 논리적 파티션이 소유하는 PCI 어댑터 슬롯의 제어를 포기(relinquish)하도록 하는 메카니즘을 더 포함하는 장치.
- 청구항 10은(는) 설정등록료 납부시 포기되었습니다.제9항에 있어서, 상기 복수 개의 논리적 파티션 중 하나가, 그 논리적 파티션이 소유하지만 이전에 제어를 포기했던 PCI 어댑터 슬롯의 제어를 회복(regain)하도록 하는 메카니즘을 더 포함하는 장치.
- 청구항 11은(는) 설정등록료 납부시 포기되었습니다.제4항에 있어서, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯에 대응하는 상기 PCI-PCI 브리지를 리셋하는 메카니즘을 더 포함하는 장치.
- 청구항 12은(는) 설정등록료 납부시 포기되었습니다.제4항에 있어서, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯에 대응하는 상기 PCI-PCI 브리지를 초기화하는 메카니즘을 더 포함하는 장치.
- 복수 개의 논리적 파티션을 포함하는 컴퓨터 시스템에서 복수 개의 하드웨어 리소스를 관리하는 컴퓨터 구현 방법에 있어서,복수 개의 로크를 정의하는 단계로서, 상기 복수 개의 하드웨어 리소스 각각은 대응하는 로크를 갖는 것인 로크 정의 단계;상기 대응하는 하드웨어 리소스의 제어를 상기 복수 개의 논리적 파티션 중 하나로 전달하기 전에, 상기 대응하는 로크의 배타적 소유권을 요구함으로써 상기 복수 개의 논리적 파티션에 의한 각각의 하드웨어 리소스로의 액세스를 제어하는 단계;선택된 하드웨어 리소스의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 하드웨어 리소스의 전원을 오프시키는 단계; 및상기 선택된 하드웨어 리소스의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 하드웨어 리소스의 전원을 온시키는 단계를 포함하는 컴퓨터 구현 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 복수 개의 논리적 파티션을 포함하는 컴퓨터 시스템에서 복수 개의 PCI 어댑터 슬롯을 관리하는 컴퓨터 구현 방법에 있어서,메모리에 존재하는 복수 개의 PCI 어댑터 슬롯 로크를 정의하는 단계로서, 상기 복수 개의 PCI 어댑터 슬롯 각각은 대응하는 PCI 어댑터 슬롯 로크를 갖는 것인 로크 정의 단계;상기 대응하는 PCI 어댑터 슬롯의 제어를 상기 복수 개의 논리적 파티션 중 하나로 전달하기 전에, 상기 대응하는 PCI 어댑터 슬롯 로크의 배타적 소유권을 요구함으로써 상기 복수 개의 논리적 파티션에 의한 각각의 PCI 어댑터 슬롯으로의 액세스를 제어하는 단계;선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯의 전원을 오프시키는 단계;상기 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯의 전원을 온시키는 단계;모든 메모리 및 가상 주소 바인딩을 언바인딩하고, 상기 메모리 및 가상 주소 바인딩이 이전에 언바인딩되지 않은 경우, 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯 내의 어댑터에 대한 새로운 바인딩의 설정을 방지하는 단계;선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어댑터 슬롯에 대응하는 PCI-PCI 브리지를 리셋하는 단계;선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯 내의 어댑터에 대한 메모리 및 가상 주소 바인딩을 인에이블시키는 단계;상기 선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯의 제어를 상기 하나의 논리적 파티션으로 전달하는 단계; 및선택된 PCI 어댑터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어댑터 슬롯에 대응하는 상기 PCI-PCI 브리지를 초기화하는 단계를 포함하는 컴퓨터 구현 방법.
- 청구항 19은(는) 설정등록료 납부시 포기되었습니다.제13항에 있어서, 선택된 PCI 어뎁터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로부터 제거될 때, 상기 선택된 PCI 어뎁터 슬롯의 제어를 리소스 및 파티션 관리자에게 전달하는 단계를 더 포함하는 컴퓨터 구현 방법.
- 청구항 20은(는) 설정등록료 납부시 포기되었습니다.제13항에 있어서, 선택된 PCI 어뎁터 슬롯의 제어가 상기 복수 개의 논리적 파티션 중 하나로 전달될 때, 상기 선택된 PCI 어뎁터 슬롯의 제어를 상기 하나의 논리적 파티션으로 전달하는 단계를 더 포함하는 컴퓨터 구현 방법.
- 청구항 21은(는) 설정등록료 납부시 포기되었습니다.제13항에 있어서, 상기 복수 개의 논리적 파티션 중 하나가 상기 하나의 논리적 파티션이 소유하는 PCI 어뎁터 슬롯의 제어를 포기하도록 하는 단계를 더 포함하는 컴퓨터 구현 방법.
- 청구항 22은(는) 설정등록료 납부시 포기되었습니다.제21항에 있어서, 상기 복수 개의 논리적 파티션 중 하나가, 상기 논리적 파티션이 소유하지만 상기 하나의 논리적 파티션이 이전에 제어를 포기했던 PCI 어뎁터 슬롯의 제어를 회복하도록 하는 단계를 더 포함하는 컴퓨터 구현 방법.
- 제13항, 제18항 내지 제22항 중 어느 하나의 항의 방법 단계들을 수행하는 프로그램 코드 수단을 포함하는 프로그램을 포함하는 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/388,350 US7073002B2 (en) | 2003-03-13 | 2003-03-13 | Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system |
US10/388,350 | 2003-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050112524A KR20050112524A (ko) | 2005-11-30 |
KR100843490B1 true KR100843490B1 (ko) | 2008-07-04 |
Family
ID=32962108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057015576A KR100843490B1 (ko) | 2003-03-13 | 2004-03-03 | 논리적으로 분할된 컴퓨터 시스템에서의 리소스 전달을제어하는 장치 및 방법 |
Country Status (10)
Country | Link |
---|---|
US (3) | US7073002B2 (ko) |
EP (1) | EP1604279A2 (ko) |
JP (1) | JP2006521609A (ko) |
KR (1) | KR100843490B1 (ko) |
CN (1) | CN100388208C (ko) |
BR (1) | BRPI0408310A (ko) |
CA (1) | CA2515450C (ko) |
MX (1) | MXPA05009632A (ko) |
TW (1) | TWI279691B (ko) |
WO (1) | WO2004081699A2 (ko) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003298560A1 (en) | 2002-08-23 | 2004-05-04 | Exit-Cube, Inc. | Encrypting operating system |
US7085862B2 (en) * | 2003-03-13 | 2006-08-01 | International Business Machines Corporation | Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition |
US7039820B2 (en) * | 2003-04-24 | 2006-05-02 | International Business Machines Corporation | Method for detecting and powering off unused I/O slots in a computer system |
JP2005122640A (ja) * | 2003-10-20 | 2005-05-12 | Hitachi Ltd | サーバシステム及びi/oスロット共有方法。 |
US20060107000A1 (en) * | 2004-11-15 | 2006-05-18 | Lee Jung-Ik | Peer-based partitioning method for system resource sharing |
US20080270770A1 (en) * | 2005-01-24 | 2008-10-30 | Marc Vertes | Method for Optimising the Logging and Replay of Mulit-Task Applications in a Mono-Processor or Multi-Processor Computer System |
US8219823B2 (en) * | 2005-03-04 | 2012-07-10 | Carter Ernst B | System for and method of managing access to a system using combinations of user information |
US20060212840A1 (en) * | 2005-03-16 | 2006-09-21 | Danny Kumamoto | Method and system for efficient use of secondary threads in a multiple execution path processor |
US7613897B2 (en) * | 2005-03-30 | 2009-11-03 | International Business Machines Corporation | Allocating entitled processor cycles for preempted virtual processors |
US7415035B1 (en) * | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Device driver access method into a virtualized network interface |
US7415034B2 (en) * | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Virtualized partitionable shared network interface |
US7443878B2 (en) * | 2005-04-04 | 2008-10-28 | Sun Microsystems, Inc. | System for scaling by parallelizing network workload |
US7937616B2 (en) * | 2005-06-28 | 2011-05-03 | International Business Machines Corporation | Cluster availability management |
US7428609B2 (en) * | 2005-12-29 | 2008-09-23 | Intel Corporation | Method and system to partition hardware resources between operating systems |
US20110182259A1 (en) * | 2006-04-28 | 2011-07-28 | Avfinity, Inc | Partitionable router to facilitate communication between systems |
ES2398482T3 (es) | 2006-05-30 | 2013-03-19 | Schneider Electric USA, Inc. | Configuración a distancia de mantenedor de lugar virtual para módulos de entrada / salida distribuidos |
US7457900B2 (en) * | 2006-06-20 | 2008-11-25 | Intel Corporation | Method for discovering and partitioning PCI devices |
US7676608B1 (en) * | 2006-12-12 | 2010-03-09 | Rockwell Collins, Inc. | System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices |
US7975272B2 (en) * | 2006-12-30 | 2011-07-05 | Intel Corporation | Thread queuing method and apparatus |
US7698529B2 (en) * | 2007-01-10 | 2010-04-13 | International Business Machines Corporation | Method for trading resources between partitions of a data processing system |
US8917165B2 (en) * | 2007-03-08 | 2014-12-23 | The Mitre Corporation | RFID tag detection and re-personalization |
US8019962B2 (en) * | 2007-04-16 | 2011-09-13 | International Business Machines Corporation | System and method for tracking the memory state of a migrating logical partition |
US8645974B2 (en) * | 2007-08-02 | 2014-02-04 | International Business Machines Corporation | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
US8219989B2 (en) | 2007-08-02 | 2012-07-10 | International Business Machines Corporation | Partition adjunct with non-native device driver for facilitating access to a physical input/output device |
US20090158299A1 (en) * | 2007-10-31 | 2009-06-18 | Carter Ernst B | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed |
US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141093B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
US8082273B2 (en) * | 2007-11-19 | 2011-12-20 | Teradata Us, Inc. | Dynamic control and regulation of critical database resources using a virtual memory table interface |
US8141094B2 (en) | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
US9021483B2 (en) * | 2009-04-27 | 2015-04-28 | International Business Machines Corporation | Making hardware objects and operations thread-safe |
US8103638B2 (en) * | 2009-05-07 | 2012-01-24 | Microsoft Corporation | Partitioning of contended synchronization objects |
US8671228B1 (en) * | 2009-10-02 | 2014-03-11 | Qlogic, Corporation | System and methods for managing virtual adapter instances |
US8925039B2 (en) * | 2009-12-14 | 2014-12-30 | At&T Intellectual Property I, L.P. | System and method of selectively applying security measures to data services |
US8504754B2 (en) | 2010-06-23 | 2013-08-06 | International Business Machines Corporation | Identification of types of sources of adapter interruptions |
US8468284B2 (en) | 2010-06-23 | 2013-06-18 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification to a guest operating system |
US8572635B2 (en) | 2010-06-23 | 2013-10-29 | International Business Machines Corporation | Converting a message signaled interruption into an I/O adapter event notification |
US8639858B2 (en) | 2010-06-23 | 2014-01-28 | International Business Machines Corporation | Resizing address spaces concurrent to accessing the address spaces |
US9342352B2 (en) | 2010-06-23 | 2016-05-17 | International Business Machines Corporation | Guest access to address spaces of adapter |
US9213661B2 (en) * | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Enable/disable adapters of a computing environment |
US8635430B2 (en) | 2010-06-23 | 2014-01-21 | International Business Machines Corporation | Translation of input/output addresses to memory addresses |
US8650335B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Measurement facility for adapter functions |
US8549182B2 (en) | 2010-06-23 | 2013-10-01 | International Business Machines Corporation | Store/store block instructions for communicating with adapters |
US8566480B2 (en) | 2010-06-23 | 2013-10-22 | International Business Machines Corporation | Load instruction for communicating with adapters |
US8650337B2 (en) | 2010-06-23 | 2014-02-11 | International Business Machines Corporation | Runtime determination of translation formats for adapter functions |
US8626970B2 (en) | 2010-06-23 | 2014-01-07 | International Business Machines Corporation | Controlling access by a configuration to an adapter function |
US9195623B2 (en) * | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
US8615645B2 (en) | 2010-06-23 | 2013-12-24 | International Business Machines Corporation | Controlling the selectively setting of operational parameters for an adapter |
US8478922B2 (en) | 2010-06-23 | 2013-07-02 | International Business Machines Corporation | Controlling a rate at which adapter interruption requests are processed |
US8271710B2 (en) * | 2010-06-24 | 2012-09-18 | International Business Machines Corporation | Moving ownership of a device between compute elements |
US8949499B2 (en) | 2010-06-24 | 2015-02-03 | International Business Machines Corporation | Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch |
US8561064B2 (en) * | 2010-10-26 | 2013-10-15 | International Business Machines Corporation | Retaining ownership of a virtual function while an adapter is replaced |
US20130159572A1 (en) * | 2011-12-16 | 2013-06-20 | International Business Machines Corporation | Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies |
US9311127B2 (en) * | 2011-12-16 | 2016-04-12 | International Business Machines Corporation | Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies |
US9411654B2 (en) | 2011-12-16 | 2016-08-09 | International Business Machines Corporation | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation |
US9626207B2 (en) | 2011-12-16 | 2017-04-18 | International Business Machines Corporation | Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies |
CN103514125B (zh) * | 2012-06-25 | 2016-06-08 | 宏碁股份有限公司 | 主控端电子装置以及主控端操作方法 |
US9189503B2 (en) | 2012-12-06 | 2015-11-17 | Microsoft Technology Licensing, Llc | Database scale-out |
US9569243B2 (en) * | 2014-12-05 | 2017-02-14 | International Business Machines Corporation | Offloading and parallelizing translation table operations |
US11593171B2 (en) * | 2020-01-27 | 2023-02-28 | Raytheon Company | Reservation-based high-performance computing system and method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161869A1 (en) * | 2001-04-30 | 2002-10-31 | International Business Machines Corporation | Cluster resource action in clustered computer system incorporating prepare operation |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU650242B2 (en) * | 1989-11-28 | 1994-06-16 | International Business Machines Corporation | Methods and apparatus for dynamically managing input/output (I/O) connectivity |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US5371867A (en) * | 1992-11-10 | 1994-12-06 | International Business Machines Corporation | Method of using small addresses to access any guest zone in a large memory |
CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
US5708790A (en) * | 1995-12-12 | 1998-01-13 | International Business Machines Corporation | Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system |
US5721858A (en) * | 1995-12-12 | 1998-02-24 | International Business Machines Corporation | Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system |
JPH10293695A (ja) * | 1997-04-22 | 1998-11-04 | Hitachi Ltd | 論理計算機システムの動的再構成方式 |
US6633916B2 (en) * | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
US6332180B1 (en) * | 1998-06-10 | 2001-12-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for communication in a multi-processor computer system |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
EP0917056B1 (en) * | 1997-11-04 | 2008-01-09 | Compaq Computer Corporation | A multi-processor computer system and a method of operating thereof |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6023736A (en) * | 1997-12-19 | 2000-02-08 | International Business Machines Corporation | System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter |
US6247109B1 (en) * | 1998-06-10 | 2001-06-12 | Compaq Computer Corp. | Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space |
US6330656B1 (en) * | 1999-03-31 | 2001-12-11 | International Business Machines Corporation | PCI slot control apparatus with dynamic configuration for partitioned systems |
US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
JP2002032324A (ja) * | 2000-07-17 | 2002-01-31 | Hitachi Ltd | Pciバスデバイス接続制御方式 |
US6792497B1 (en) * | 2000-12-12 | 2004-09-14 | Unisys Corporation | System and method for hardware assisted spinlock |
US6665759B2 (en) * | 2001-03-01 | 2003-12-16 | International Business Machines Corporation | Method and apparatus to implement logical partitioning of PCI I/O slots |
US6820207B2 (en) * | 2001-03-01 | 2004-11-16 | International Business Machines Corporation | Method for rebooting only a specific logical partition in a data processing system as per a request for reboot |
US6662242B2 (en) * | 2001-04-17 | 2003-12-09 | International Business Machines Corporation | Method for PCI IO using PCI device memory mapping in a logically partitioned system |
JP2002323986A (ja) | 2001-04-25 | 2002-11-08 | Hitachi Ltd | コンピュータリソース流通システム及び方法 |
US7251814B2 (en) | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
US7000043B2 (en) * | 2002-09-18 | 2006-02-14 | Sun Microsystems, Inc. | Methods and apparatus for controlling performance of a communications device |
-
2003
- 2003-03-13 US US10/388,350 patent/US7073002B2/en not_active Expired - Fee Related
-
2004
- 2004-03-01 TW TW093105285A patent/TWI279691B/zh not_active IP Right Cessation
- 2004-03-03 KR KR1020057015576A patent/KR100843490B1/ko not_active IP Right Cessation
- 2004-03-03 EP EP04716646A patent/EP1604279A2/en not_active Withdrawn
- 2004-03-03 CA CA2515450A patent/CA2515450C/en not_active Expired - Fee Related
- 2004-03-03 BR BRPI0408310-5A patent/BRPI0408310A/pt not_active Application Discontinuation
- 2004-03-03 JP JP2006505902A patent/JP2006521609A/ja active Pending
- 2004-03-03 CN CNB2004800018584A patent/CN100388208C/zh not_active Expired - Fee Related
- 2004-03-03 MX MXPA05009632A patent/MXPA05009632A/es active IP Right Grant
- 2004-03-03 WO PCT/GB2004/000868 patent/WO2004081699A2/en active Search and Examination
-
2006
- 2006-03-14 US US11/374,883 patent/US7464209B2/en not_active Expired - Fee Related
-
2008
- 2008-04-07 US US12/098,529 patent/US7676618B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161869A1 (en) * | 2001-04-30 | 2002-10-31 | International Business Machines Corporation | Cluster resource action in clustered computer system incorporating prepare operation |
Also Published As
Publication number | Publication date |
---|---|
US20060168381A1 (en) | 2006-07-27 |
US20040181625A1 (en) | 2004-09-16 |
CN1723440A (zh) | 2006-01-18 |
US7464209B2 (en) | 2008-12-09 |
CA2515450C (en) | 2010-04-13 |
CN100388208C (zh) | 2008-05-14 |
CA2515450A1 (en) | 2004-09-23 |
BRPI0408310A (pt) | 2006-03-07 |
KR20050112524A (ko) | 2005-11-30 |
US20080189460A1 (en) | 2008-08-07 |
TW200508892A (en) | 2005-03-01 |
TWI279691B (en) | 2007-04-21 |
EP1604279A2 (en) | 2005-12-14 |
WO2004081699A3 (en) | 2005-01-20 |
US7073002B2 (en) | 2006-07-04 |
MXPA05009632A (es) | 2005-10-18 |
JP2006521609A (ja) | 2006-09-21 |
WO2004081699A2 (en) | 2004-09-23 |
US7676618B2 (en) | 2010-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100843490B1 (ko) | 논리적으로 분할된 컴퓨터 시스템에서의 리소스 전달을제어하는 장치 및 방법 | |
CA2515456C (en) | Apparatus and method for controlling resource transfers in a logically partitioned computer system | |
US7783807B2 (en) | Controlling resource transfers in a logically partitioned computer system | |
JP3703078B2 (ja) | 論理区画マネージャ及び方法 | |
US8725914B2 (en) | Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager | |
US6591358B2 (en) | Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU | |
KR100737303B1 (ko) | 논리적으로 분할된 컴퓨터 시스템에서 인터럽트를가상화하는 장치 및 방법 | |
US8930507B2 (en) | Physical memory shared among logical partitions in a VLAN | |
JP2004523048A (ja) | データ処理システム中の論理パーティションの電源を切る、または論理パーティションをリブートする、あるいはその両方の方法および装置 | |
US20080126617A1 (en) | Message Signaled Interrupt Management for a Computer Input/Output Fabric Incorporating Dynamic Binding | |
JP2004240970A (ja) | 無効な論理区画の資源を動的に割り振る装置および方法 | |
JP3628590B2 (ja) | コンピュータ・システムの論理区画の最大インタラクティブ・・パフォーマンスを、他の区画の最大インタラクティブ・パフォーマンスに関係なく指定する装置及び方法 | |
CN114327741A (zh) | 服务器系统、容器设置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |