KR20010006934A - Dynamic i/o allocation in a partitioned computer system - Google Patents

Dynamic i/o allocation in a partitioned computer system Download PDF

Info

Publication number
KR20010006934A
KR20010006934A KR1020000016570A KR20000016570A KR20010006934A KR 20010006934 A KR20010006934 A KR 20010006934A KR 1020000016570 A KR1020000016570 A KR 1020000016570A KR 20000016570 A KR20000016570 A KR 20000016570A KR 20010006934 A KR20010006934 A KR 20010006934A
Authority
KR
South Korea
Prior art keywords
node
controller
connection
computer system
peripheral device
Prior art date
Application number
KR1020000016570A
Other languages
Korean (ko)
Inventor
빌코스키리챠드
블랜드패트릭엠
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR20010006934A publication Critical patent/KR20010006934A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

PURPOSE: A computer system and a device controller are provided to operate a multiprocessor computer system, and to assign resource of the multiprocessor computer system, and to share a common I/O device set between nodes of the multiprocessor computer system. CONSTITUTION: A node(200) includes an SMP(Symmetrical MultiProcessing) processor(202) and an associative memory(204) shared with different processor. The SMP processor(202) accesses a PHB(206), and the PHB(206) accesses a USB controller(208) and a PCI slot(210). An I/O device(212) accesses the PCI slot(210), and the I/O device(212) does not share other nodes. The USB controller(208) provides a node input access about a CI/OC(Cabinet Input/Output Controller)(216), and the CI/OC(216) is controlled by a service processor(214). The CI/OC(216) accesses other nodes through a node input(218), and controls that the node inputs(218) share a device(220). At this time, the node(200) and other node(218) are accessed to the CI/OC(216) by the same input node.

Description

컴퓨터 시스템 및 디바이스 제어기{DYNAMIC I/O ALLOCATION IN A PARTITIONED COMPUTER SYSTEM}Computer system and device controller {DYNAMIC I / O ALLOCATION IN A PARTITIONED COMPUTER SYSTEM}

본 발명은 일반적으로 멀티프로세서 시스템에 관한 것으로, 특히 분할된 멀티프로세서 시스템내 프로세서 사이의 자원 할당에 관한 것이다. 좀더 구체적으로, 본 발명은 멀티프로세서 컴퓨터 시스템 노드간의 공통 I/O 디바이스 세트를 공유하는 방법에 관한 것이다.The present invention relates generally to multiprocessor systems, and more particularly to resource allocation between processors in a partitioned multiprocessor system. More specifically, the present invention relates to a method of sharing a common set of I / O devices between multiprocessor computer system nodes.

멀티프로세서 컴퓨터 시스템은 본 기술분야에 잘 알려져 있고, 처리 업무가 여러 다른 시스템 프로세서 사이에 분할되도록 함으로써, 증가된 처리 능력을 제공한다. 통상적인 시스템에서, 각각의 프로세서는 시스템 자원 모두에 액세스할 수 있다. 즉 메모리 및 I/O 디바이스와 같은 시스템 자원 모두가 시스템 프로세서 모두 사이에서 공유된다. 전형적으로, 시스템 자원의 일부는 프로세서 사이에서 분할될 수 있다. 예를 들면, 각각의 프로세서가 공유된 메모리를 액세스할 수 있지만, 이 메모리는 각각의 프로세서가 그 자신의 작업공간(workspace)을 갖도록 분할될 수 있다. 비-균등 메모리 액세스(NUMA) 시스템에서, 각각의 프로세서는 그것 자신의 메모리부를 갖으며, 또한 다른 프로세서에 의해 소유된 메모리에 액세스할 수 있다.Multiprocessor computer systems are well known in the art and provide increased processing power by allowing processing tasks to be split between different system processors. In a typical system, each processor can access all of the system resources. That is, both system resources, such as memory and I / O devices, are shared among all system processors. Typically, some of the system resources may be divided between processors. For example, although each processor may access shared memory, this memory may be partitioned so that each processor has its own workspace. In a non-uniform memory access (NUMA) system, each processor has its own memory portion and can also access memory owned by another processor.

최근에, 대칭 멀티프로세서(SMP) 시스템은 다수의 독립 컴퓨터 시스템으로 동작하도록 분할되어왔다. 예를 들면, 8개의 프로세서를 가지는 단일 시스템은 8개의 프로세서 (또는 하나 이상의 프로세서로 구성된 다수의 그룹) 각각을 처리 목적상 별개의 시스템으로 여겨지도록 구성될 수 있었다. 이러한 "가상" 시스템 각각은 그것 자신의 운영 체제를 사본을 가질 것이며, 이후에 독립적으로 작업이 할당되거나, 그렇지 않으면 처리 클러스터로서 함께 동작할 수 있어서, 고속 처리와 개선된 신뢰성을 제공한다.Recently, symmetric multiprocessor (SMP) systems have been partitioned to operate as multiple independent computer systems. For example, a single system with eight processors could be configured such that each of the eight processors (or multiple groups of one or more processors) is considered a separate system for processing purposes. Each such "virtual" system will have a copy of its own operating system, which can then be assigned tasks independently or otherwise operate together as a processing cluster, providing high speed processing and improved reliability.

전형적으로, 멀티프로세서 시스템에는 "서비스" 프로세서가 또한 존재하며, 이 "서비스" 프로세서는 공유된 버스 및 디바이스상에서의 특정 프로세서로의 또는 특정 프로세서로부터의 시스템 구성 및 데이터 라우팅을 포함하는 전반적인 시스템의 시동 및 동작을 관리한다.Typically, there is also a "service" processor in a multiprocessor system, which is a startup of the overall system, including system configuration and data routing to or from a particular processor on a shared bus and device. And manage operations.

단일 멀티프로세서 시스템에서, 여러 가상 시스템이 클러스터로서 동작하도록 구성될 때, 각각의 클러스터 노드가 멀티프로세서 시스템에서 서로 다른 노드와 통신하여 쿼럼 협상(quorum negotiation) 및 유효화를 수행하고, "심장박동(heartbeats)"를 보내며 임의의 클러스터 통신 기술을 사용하여 다른 쿼럼 기능을 수행할 수 있도록 해주는 소프트웨어 지원이 제공돼야 한다. 이것이 성취된 때, 프로세서 중 하나가 고장난다면 - 이것은 그 노드가 클러스터에 대해 이용 불가능하도록 할 것임 - 그 노드에 할당된 작업(job)은 표준 클러스터 기술을 사용하여 잔존하는 프로세서(노드)사이에 재할당될 수 있다.In a single multiprocessor system, when multiple virtual machines are configured to operate as a cluster, each cluster node communicates with the other nodes in the multiprocessor system to perform quorum negotiation and validation, and "heartbeats". Software support must be provided to enable other quorum functions to be performed using any cluster communication technique. When this is accomplished, if one of the processors fails-this will make the node unavailable for the cluster-the job assigned to that node will be re-located between the remaining processors (nodes) using standard cluster technology. Can be assigned.

전형적으로, 멀티프로세서 시스템이 다수의 가상 시스템으로 분할될 때, 가상 시스템 각각은 그 자신의 운영 체제 복사본을 갖고 있으며, 동일한 운영 체제가 각각의 가상 시스템용으로 사용된다. 각각의 프로세서가 동일한 운영체제를 실행하므로 프로세서 사이에서 자원 할당을 제공하는 것은 상대적으로 쉽다.Typically, when a multiprocessor system is divided into multiple virtual systems, each virtual system has its own copy of the operating system, and the same operating system is used for each virtual system. Since each processor runs the same operating system, providing resource allocation between processors is relatively easy.

대규모 멀티프로세서 시스템의 한 가지 특성은 이들 멀티프로세서 시스템은 대규모 처리 업무에서 전형적으로 사용되므로 이들은 키보드, 디스플레이, 제거 가능한 매체 드라이브 등과 같은 전형적인 I/O를 비교적 적게 사용한다는 것이다. 는 그들이 필요하다. 그러나, 이들 디바이스는 제거될 수 있는데, 그 이유는 비록 이따금씩 이지만 이들이 필요한 경우가 있기 때문이다. 멀티프로세서 시스템내의 노드 각각에서 이러한 디바이스를 이용 가능하도록 만드는 것은 이렇게 거의 사용되지 않는 디바이스를 중복 제공하는 낭비와 장치를 관리하고 유지하는데 있어 불필요한 부담을 초래한다. 따라서, 대규모 멀티프로세서의 다수의 분할부 또는 노드가 단일 I/O 디바이스 세트를 공유하도록 하는 수단이 필요하다.One characteristic of large multiprocessor systems is that they are typically used in large processing tasks, so they use relatively few typical I / O such as keyboards, displays, removable media drives, and so on. Need them. However, these devices can be removed because they are sometimes needed. Making these devices available to each node in a multiprocessor system introduces unnecessary redundancy in managing and maintaining devices and the waste of providing redundant devices that are rarely used. Thus, there is a need for means to allow multiple partitions or nodes in a large multiprocessor to share a single set of I / O devices.

본 발명의 첫 번째 목적은 멀티프로세서 컴퓨터 시스템의 동작을 위한 시스템 및 방법을 제공하는데 있다.It is a first object of the present invention to provide a system and method for the operation of a multiprocessor computer system.

본 발명의 다른 목적은 멀티프로세서 컴퓨터 시스템내에 자원 할당을 개선하기 위한 시스템 및 방법을 제공하는데 있다.Another object of the present invention is to provide a system and method for improving resource allocation in a multiprocessor computer system.

본 발명의 또 다른 목적은 멀티프로세서 컴퓨터 시스템의 노드 사이에서 공통 I/O 디바이스 세트를 공유하기 위한 시스템 및 방법을 제공하는데 있다.It is yet another object of the present invention to provide a system and method for sharing a common set of I / O devices among nodes of a multiprocessor computer system.

따라서, 멀티프로세서 시스템의 다수의 노드가 I/O 디바이스 세트를 공유할 수 있도록 하는 시스템 및 방법이 제공된다. 멀티프로세서 시스템 노드와 공통 I/O 디바이스사이의 접속을 관리하는 캐비닛 입력/출력 제어기(CI/OC)가 제공되어, 개별 노드가 하나 이상의 그의 목표 디바이스에 배타적으로 액세스하도록 해준다. 노드 각각은 서비스 프로세서를 통하여 CI/OC와 통신하고 CI/OC는 다양한 I/O 디바이스 및 노드의 USB 제어기를 상호접속한다. 다른 실시예에서, 레거시(legacy) I/O 디바이스의 부착을 허용하기 위해 ISA 브리지로의 USB가 또한 포함된다. 상술한 목적뿐만 아니라 부가한 목적, 형상 및 본 발명의 장점은 이하 상세한 설명에서 명백해질 것이다.Thus, systems and methods are provided that allow multiple nodes of a multiprocessor system to share a set of I / O devices. A cabinet input / output controller (CI / OC) is provided that manages the connection between a multiprocessor system node and a common I / O device, allowing an individual node to have exclusive access to one or more of its target devices. Each node communicates with the CI / OC through a service processor, which interconnects the USB controllers of the various I / O devices and nodes. In another embodiment, USB to the ISA bridge is also included to allow attachment of legacy I / O devices. The above objects as well as the additional objects, shapes and advantages of the present invention will become apparent from the following detailed description.

도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 컴퓨터 시스템을 도시,1 illustrates a multiprocessor computer system in accordance with a preferred embodiment of the present invention,

도 2는 본 발명의 바람직한 실시예에 따른 CI/OC에 접속된 SMP 노드를 도시,2 illustrates an SMP node connected to a CI / OC according to a preferred embodiment of the present invention.

도 3은 본 발명의 바람직한 실시예에 따른 CI/OC의 블록도를 도시,3 shows a block diagram of CI / OC in accordance with a preferred embodiment of the present invention,

도 4는 본 발명의 바람직한 실시예에 따른 CI/OC 및 서비스 프로세서의 블록도를 도시,4 is a block diagram of a CI / OC and service processor according to a preferred embodiment of the present invention;

도 5는 본 발명의 바람직한 실시예에 따라, CI/OC의 다운스트림, 허브에 접속된 여러 I/O 디바이스의 블록도를 도시,5 shows a block diagram of several I / O devices connected to a hub, downstream of CI / OC, in accordance with a preferred embodiment of the present invention.

도 6은 본 발명의 바람직한 실시예에 따른 공통 I/O 시스템 사용에 대한 흐름도를 도시.6 illustrates a flow diagram for using a common I / O system in accordance with a preferred embodiment of the present invention.

도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings

100 : 데이터 처리 시스템 101: 프로세서100: data processing system 101: processor

103 : 레벨 2 캐시 106: 시스템 버스103: Level 2 Cache 106: System Bus

108 : 시스템 메모리 122 : 주 호스트 브리지108: system memory 122: primary host bridge

106 : 시스템 버스 200 : 노드106: system bus 200: node

202 : SMP 프로세서 206 : PHB202: SMP processor 206: PHB

208 : USB 제어기 210 : PCI 슬롯208: USB controller 210: PCI slot

300 : CI/OC(300) 304 : 공통 I/O 디바이스300: CI / OC (300) 304: common I / O device

300 : CI/OC(300) 302 : SP CI/OC(300) 공통 I/O 디바이스(304).300: CI / OC 300 302: SP CI / OC 300 common I / O device 304.

400:CI/OC 406 : 입력400: CI / OC 406: Input

408 : 스위치 404 : 공통 I/O 디바이스408: switch 404: common I / O device

504 : 키보드 506 : 마우스504: keyboard 506: mouse

508 : USB-ISA 변환 로직 510 : ISA 플로피 드라이브508: USB-ISA Conversion Logic 510: ISA Floppy Drive

512 : 직렬 포트 514 : 병렬 포트512: serial port 514: parallel port

본 발명의 바람직한 실시예는 멀티프로세서 시스템내의 다수의 노드가 공통 I/O 디바이스를 공유하도록 해주는 캐비닛 입력/출력 제어기(CI/OC)를 제공한다. 본 발명의 바람직한 실시예에서, 이더넷(ethernet) 어댑터 및 이와 연관된 네트워크 접속과 같은 다른 런-타임(run-time) 성능 관련 I/O는 각 노드에서 계속 유지될 것이다.A preferred embodiment of the present invention provides a cabinet input / output controller (CI / OC) that allows multiple nodes in a multiprocessor system to share a common I / O device. In a preferred embodiment of the present invention, other run-time performance related I / Os, such as Ethernet adapters and their associated network connections, will continue to be maintained at each node.

이제 도면을 참조하면, 특히 도 1을 참조하면, 본 발명의 바람직한 실시예가 구현될 수 있는 데이터 처리 시스템의 블록도가 도시되어 있다. 예를 들면, 데이터 처리 시스템(100)은 뉴욕, 아몬크의 인터내셔설 비즈니스 머신사로부터 입수할 수 있는 컴퓨터 서버 모델중 하나일 수 있다. 데이터 처리 시스템(100)은 프로세서(101 및 102)를 포함하며, 예시적인 실시예에서 이들 프로세서는 각기 레벨 2 캐시(103 및 104)에 각각 접속되며 이 레벨 2 캐시(103 및 104)는 다시 시스템 버스(106)에 차례대로 접속되다.Referring now to the drawings and in particular to FIG. 1, there is shown a block diagram of a data processing system in which a preferred embodiment of the present invention may be implemented. For example, data processing system 100 may be one of the computer server models available from International Business Machines Inc. of Armonk, NY. Data processing system 100 includes processors 101 and 102, which in an example embodiment are connected to level 2 caches 103 and 104, respectively, which level 2 caches 103 and 104 are in turn a system. The bus 106 is connected in turn.

시스템 메모리(108)와 주 호스트 브리지(PHB:122) 또한 시스템 버스(106)에 접속된다. PHB(122)는 I/O 버스(112)를 시스템 버스(106)에 결합시키고, 하나의 버스에서 다른 버스로 데이터 트랙젝션(transaction)을 중계하거나/또는 변환시킨다. 예시적인 실시예에서, 데이터 처리 시스템(100)은 디스플레이(120)를 위해 사용자 인터페이스 정보를 수신하는 I/O 버스(112)에 접속된 그래픽 어댑터(118)를 포함한다. 하드디스크 드라이브일 수 있는 비휘발성 저장부(114)와 통상적인 마우스, 트랙볼등을 포함할 수 있는 키보드/포인팅 디바이스(116)와 같은 주변 디바이스가 산업 표준 아키텍쳐(ISA) 브리지(121)를 통하여 I/O 버스(112)에 접속된다. PHB(122)는 또한 I/O 버스(112)를 통하여 PCI 슬롯(124) 및 범용 직렬 버스 제어기(USB:126)에 접속된다.System memory 108 and main host bridge (PHB) 122 are also connected to system bus 106. PHB 122 couples I / O bus 112 to system bus 106 and relays and / or converts data transactions from one bus to another. In an exemplary embodiment, the data processing system 100 includes a graphics adapter 118 connected to the I / O bus 112 for receiving user interface information for the display 120. Peripheral devices such as non-volatile storage 114, which may be a hard disk drive, and keyboard / pointing device 116, which may include a conventional mouse, trackball, etc. Is connected to the / O bus 112. PHB 122 is also connected to PCI slot 124 and universal serial bus controller (USB) 126 via I / O bus 112.

도 1에 도시된 예시적인 실시예는 본 발명의 설명을 목적으로만 제공된 것이며 당업자라면 도 1의 구성 및 기능에서 수많은 변형이 가능할 것이라는 것을 인지할 것이다. 예를 들면, 데이터 처리 시스템(100)은 또한 CD-ROM 또는 디지털 비디오 디스크(DVD) 드라이브, 사운드 카드, 오디오 스피커 및 다른 선택적 성분을 포함할 수 있다. 모든 그러한 변이는 본 발명의 사상과 범주내에 포함되는 것으로 의도된다. 아래에 예시된 데이터 처리 시스템(100) 및 CI/OC 구조는 단지 설명을 목적으로 한 예이지 구조적 제한을 가하려 의도된 것은 아니다.The exemplary embodiment shown in FIG. 1 is provided for the purpose of illustrating the invention only and those skilled in the art will recognize that many variations in the construction and functionality of FIG. 1 are possible. For example, data processing system 100 may also include a CD-ROM or digital video disk (DVD) drive, sound card, audio speakers, and other optional components. All such variations are intended to be included within the spirit and scope of the invention. The data processing system 100 and the CI / OC structure illustrated below are for illustrative purposes only and are not intended to impose structural limitations.

이제 도 2를 참조하면, 대규모 멀티프로세서 시스템의 기본 구축으로 사용될 수 있는 노드(200)가 도시되어 있다. 노드(200)는 SMP 프로세서(202) 및 (다른 프로세서와 공유될 수 있는) 연관 메모리(204)를 포함한다. SMP 프로세서(202)는 PHB(206)에 접속되며, PHB는 USB 제어기(208) 및 PCI 슬롯(210)에 접속된다. PCI 슬롯(210)에 접속(또는 전형적으로 플러그 인)되는 것은 I/O 디바이스(212)이며, 이 I/O 디바이스(212)는 본 실시예내에서, 다른 노드들과 공유되지 않는다. USB 제어기(208)는 바람직하게 CI/OC(216)에 대한 노드 입력 접속을 제공하며, CI/OC(216)는 서비스 프로세서(SP:214)에 의해 제어된다. CI/OC(216)는 노드 입력(218)을 통하여 다른 노드에 접속되고 노드 입력(218)들이 I/O 디바이스(220)를 공유하도록 해준다. 이 다이어그램이 예시적인 단지 하나만의 노드의 상세한 설명을 도시할 지라도, 노드(200) 및 다른 노드(218)는 CI/OC(216)의 동일한 노드 입력에 의해 CI/OC에 각각 접속된다는 점에 유의해야 한다.Referring now to FIG. 2, there is shown a node 200 that can be used as a basic construction of a large scale multiprocessor system. Node 200 includes an SMP processor 202 and an associated memory 204 (which may be shared with other processors). SMP processor 202 is connected to PHB 206, which is connected to USB controller 208 and PCI slot 210. Connected (or typically plugged in) to the PCI slot 210 is an I / O device 212, which is not shared with other nodes in this embodiment. The USB controller 208 preferably provides a node input connection to the CI / OC 216, which is controlled by the service processor (SP) 214. CI / OC 216 is connected to another node via node input 218 and allows node inputs 218 to share I / O device 220. Note that although this diagram shows a detailed description of only one example node, node 200 and other node 218 are each connected to a CI / OC by the same node input of CI / OC 216. Should be.

대규모 멀티프로세서 시스템은 다수의 작은, 독립 분할부로 배열되거나 또한 NUMA 혹은 클러스터로 배열될 수도 있다. 대규모 멀티프로세서 시스템이 NUMA 또는 클러스터로 배열된다면, 선택적 노드 상호접속 하드웨어(222)가 사용되어 원하는 상호접속 구성을 얻을 수도 있다. 본 발명의 바람직한 실시예에 따른 CI/OC(216)는 노드들을 제어하고 단일, 공통 디바이스 집합과 이 노드들을 제어하고 상호접속시키는데 사용된다. 예를 들면, 단일 랙내에 수용된 대규모 멀티프로세서 시스템은 다수의 컴퓨터 노드를 포함하였을 것이지만 전체 랙은 단지 단일 오퍼레이터 터미널, 디스켓 드라이브 등을 요구할 것이다. 바람직하게, 서비스 프로세서(SP:214)가 CI/OC 구성을 관리한다. 각각의 노드는 USB 제어기(208)를 포함한다.Large multiprocessor systems may be arranged in a number of small, independent partitions or may be arranged in NUMA or clusters. If a large multiprocessor system is arranged in NUMA or cluster, optional node interconnect hardware 222 may be used to obtain the desired interconnect configuration. CI / OC 216 in accordance with the preferred embodiment of the present invention is used to control nodes and to control and interconnect a single, common set of devices and these nodes. For example, a large multiprocessor system housed within a single rack would have included multiple computer nodes, but the entire rack would only require a single operator terminal, diskette drive, and the like. Preferably, the service processor (SP: 214) manages the CI / OC configuration. Each node includes a USB controller 208.

이제 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 CI/OC의 상위 수준의 도면이 도시되어 있다. 도 3에서, CI/OC(300)는 그것의 서비스 프로세서(302)에 접속되는 것으로 도시된다. 예시적인 노드 입력(306 및 308)이 도시되며, 이들 노드 입력은 도 2에 도시된 바와 같이 노드의 접속을 허용한다. CI/OC(300)는 또한 공통 I/O 디바이스(304)에 접속된다. 대규모 멀티프로세서 당 오직 하나의 CI/OC(300) 및 하나의 SP(302)만이 존재하고 모든 노드들이 CI/OC(300)의 다운스트림에 따라 접속된 공통 I/O 디바이스(304)를 공유한다. CI/OC(300)상의 노드 입력의 수는 구현에 따라 상이할 수 있다.Referring now to FIG. 3, there is shown a high level diagram of a CI / OC in accordance with a preferred embodiment of the present invention. In FIG. 3, the CI / OC 300 is shown connected to its service processor 302. Exemplary node inputs 306 and 308 are shown, which allow connection of nodes as shown in FIG. 2. CI / OC 300 is also connected to common I / O device 304. There is only one CI / OC 300 and one SP 302 per large multiprocessor and all nodes share a common I / O device 304 connected downstream of the CI / OC 300. . The number of node inputs on CI / OC 300 may vary depending on the implementation.

이제 도 4를 참조하면, CI/OC(400)가 노드 입력(406)을 다운스트림 I/O 디바이스(406)에 접속시키는 일련의 스위치(408)를 포함하는 것으로 좀 더 상세히 도시되어 있다. SP(402)는 최대한 하나의 노드를 공통 I/O 디바이스 접속(404)으로 스위치한다. 본 발명의 바람직한 실시예에서는 모든 접속이 USB-부합이고, 디바이스는 핫-플러그형 즉 그 노드가 동작하는 동안에 디바이스는 노드에 부착되거나 제거될 수 있다. 스위치(408)를 활성화시키는 것은 하강 접속을 부착하는 것과 동등하다. 스위치를 비활성화시키는 것은 다운스트림 접속을 제거하는 것과 동등하다. SP(402)는 필요에 따라 다운스트림 디바이스(404)를 노드 입력(406)에 접속시킬 것이다.Referring now to FIG. 4, the CI / OC 400 is shown in more detail as including a series of switches 408 that connect the node input 406 to the downstream I / O device 406. The SP 402 switches at most one node to a common I / O device connection 404. In a preferred embodiment of the present invention all connections are USB-compliant and the device is hot-pluggable so that the device can be attached or removed from the node while the node is operating. Activating switch 408 is equivalent to attaching a descending connection. Deactivating the switch is equivalent to removing the downstream connection. The SP 402 will connect the downstream device 404 to the node input 406 as needed.

도 5를 참조하면, 공통 I/O 접속을 가능하게 하는데 사용된 기본 I/O를 포함하는 공통 I/O 시스템뿐만 아니라 다양한 예시적인 I/O 디바이스가 도시되어 있다. 본 도면에서, CI/OC(500)는 본 발명의 바람직한 실시예에 따르면 USB 허브인 허브에 접속된다. 허브(502)는 CI/OC로부터의 통신이 임의로 부착된 디바이스에 전달되도록 해준다. 이들 디바이스는 키보드(504) 또는 마우스(506)를 포함할 수 있다. 원시 USB 디바이스가 이 조건을 만족시키는데 이용될 수 없다면, 이 I/O 디바이스는 상용화된 USB-ISA 변환 로직(508)을 포함할 수 있다. 이렇게 함으로써, ISA 플로피 드라이브(510), 직렬 포트(512) 및 병렬 포트(514)와 같은 레거시(legacy) 디바이스가 부착될 수 있다.Referring to Figure 5, various exemplary I / O devices are shown, as well as a common I / O system that includes basic I / O used to enable common I / O connections. In this figure, CI / OC 500 is connected to a hub which is a USB hub according to a preferred embodiment of the present invention. Hub 502 allows communication from CI / OC to be forwarded to any attached device. These devices may include a keyboard 504 or a mouse 506. If a raw USB device cannot be used to satisfy this condition, this I / O device may include commercially available USB-ISA conversion logic 508. By doing so, legacy devices such as ISA floppy drive 510, serial port 512, and parallel port 514 can be attached.

http://www.usb.org에서 이용가능하며, 본 명세서에서는 참조로서 인용되는 범용 직렬 버스 사양서(Universal Serial Bus specification)는 USB가 VBUS, GND, D+ 및 D- 로 구성된 4개의 와이어 상에서 신호 및 전력을 전송한다는 것을 상술한다. 신호전달은 두 개의 와이어 D+ 및 D- 상에서 발생한다. 본 발명의 바람직한 실시예에 따르면, 허브(502)는 부착된 디바이스에 전력을 공급하는 전력이 공급된 허브이므로, 그것은 노드 USB 제어기로부터 VBUS 및 GND를 요구하지 않는다. 본 실시예에서, 도 2에 도시된바와 같이 노드 USB 제어기(208)로부터 CI/OC까지의 상호 접속 이후에 도 5에 도시된바와 같이 허브(502)까지의 상호접속은 생략된 VBUS 및 GNDUSB와 USB 신호 D+ 및 D-로 구성된다.The Universal Serial Bus specification, available at http://www.usb.org, and incorporated herein by reference, provides the signals and signals on four wires of USB consisting of VBUS, GND, D +, and D-. It is detailed that power is transmitted. Signaling occurs on two wires D + and D-. According to a preferred embodiment of the present invention, the hub 502 is a powered hub that powers the attached device, so it does not require VBUS and GND from the node USB controller. In this embodiment, after the interconnection from node USB controller 208 to CI / OC as shown in FIG. 2, the interconnection to hub 502 as shown in FIG. 5 is omitted with VBUS and GNDUSB omitted. It consists of USB signals D + and D-.

이제 도 6을 참조하면, 공통 I/O 시스템의 바람직한 오퍼레이션에 대한 흐름도가 도시되어 있다. 노드가 공통 I/O 디바이스를 요구할 때(단계 600), 노드는 서비스 프로세서에 부착 오퍼레이션을 요청하는 요구를 전송한다(단계 610). 현재 어떠한 노드도 I/O 채널을 사용하지 않는다면(단계 620), SP는 그 노드가 다운스트림 디바이스와 통신하도록 CI/OC를 스위치한다(단계 630). 노드는 I/O 디바이스를 사용하고(단계 640), 그것을 종료했을 때, CI/OC 접속이 단락되도록 SP에 지시하고 I/O 디바이스를 분리한다(단계 650). 이후에 이 노드는 정상적으로 계속 작동할 것이다(단계 660).Referring now to FIG. 6, a flow diagram for the preferred operation of a common I / O system is shown. When the node requests a common I / O device (step 600), the node sends a request to the service processor requesting an attach operation (step 610). If no node is currently using an I / O channel (step 620), the SP switches the CI / OC so that the node communicates with the downstream device (step 630). The node uses the I / O device (step 640) and, upon terminating it, instructs the SP to disconnect the CI / OC connection and detaches the I / O device (step 650). This node will then continue to operate normally (step 660).

다른 노드가 I/O 채널을 사용중 이라면(단계 620), 접속은 거부된다(단계 670). 이 노드는 정상적인 오퍼레이션을 재개하고 필요한 것만큼 수회 접속을 설정하도록 재시도할 수 있다. 멀티프로세서 시스템의 특성으로 인해 이러한 종류의 디바이스 충돌은 상대적으로 예외적일 것이며 보다 복잡한 중재 기술이 필요한 것은 아니나, 필요하다면 당업자에 의해 구현될 수도 있을 것이다.If another node is using the I / O channel (step 620), the connection is denied (step 670). This node can retry to resume normal operation and establish as many connections as necessary. Due to the nature of multiprocessor systems, this kind of device conflict will be relatively exceptional and no more complex arbitration techniques are needed, but may be implemented by those skilled in the art if necessary.

본 발명은 특히 바람직한 실시예를 참조하여 도시되고 기술되지만, 당업자라면 본 발명의 사상과 범주를 벗어나지 않는 범위 내에서 형태 및 세부사항의 다양한 변화가 있을 수 있다는 사실을 이해해야 한다. 예를 들면, 노드 개수가 많은 경우 CI/OC 블록은 직렬로 연결되어 각각의 노드가 하나의 CI/OC에 접속되며 CI/OC의 체인을 통하여 외부 장치와 통신할 수 있도록 할 수 있다. 이것과 다른 변형이 아래 청구 범위내에서 고려된다.While the invention has been shown and described with reference to particularly preferred embodiments, those skilled in the art should understand that various changes in form and detail may be made without departing from the spirit and scope of the invention. For example, if the number of nodes is large, the CI / OC blocks may be connected in series so that each node may be connected to one CI / OC and communicate with an external device through a chain of CI / OCs. This and other variations are considered within the scope of the following claims.

본 발명은 멀티프로세서 컴퓨터 시스템의 동작을 위한 시스템 및 방법을 제공하며 멀티프로세서 컴퓨트 시스템내에 자원 할당을 개선하고 멀티프로세서 컴퓨터 시스템의 노드 사이에서 공통 I/O 디바이스 세트를 공유한다.The present invention provides a system and method for the operation of a multiprocessor computer system that improves resource allocation within a multiprocessor compute system and shares a common set of I / O devices among nodes of a multiprocessor computer system.

Claims (18)

컴퓨터 시스템에 있어서In a computer system 각각 적어도 하나의 시스템 프로세서 및 연관 메모리를 갖는 다수의 시스템 노드 - 상기 시스템 노드 각각은 제각기의 디바이스 포트를 통해 통신하도록 접속됨 -와,A plurality of system nodes, each having at least one system processor and associated memory, each of the system nodes being connected to communicate through respective device ports; 상기 디바이스 포트 중 적어도 하나에 접속된 디바이스 제어기와,A device controller connected to at least one of the device ports, 상기 디바이스 제어기에 접속된 적어도 하나의 주변 디바이스를 포함하되,At least one peripheral device connected to the device controller, 상기 시스템은The system is 직접 접속을 통하여 시스템 노드로부터 상기 디바이스 제어기로 요구를 전송하는 단계와,Sending a request from a system node to the device controller via a direct connection; 상기 제어기에 의해 상기 시스템 노드와 상기 주변 디바이스 사이의 배타적 접속을 설정하는 단계와,Establishing an exclusive connection between the system node and the peripheral device by the controller; 상기 시스템 노드에 의해 상기 주변 디바이스를 동작하는 단계를 수행하도록 구성된 컴퓨터 시스템.And operating the peripheral device by the system node. 제 1 항에 있어서,The method of claim 1, 상기 시스템 노드는 대칭 멀티프로세서 시스템(symmetric multiprocessor system)으로 동작하는 컴퓨터 시스템.The system node operates as a symmetric multiprocessor system. 제 1 항에 있어서,The method of claim 1, 상기 시스템 노드 각각은 상기 주변 디바이스를 공유하는 컴퓨터 시스템.Each of the system nodes sharing the peripheral device. 제 1 항에 있어서,The method of claim 1, 상기 접속은 범용 직렬 버스 사양(Universal Serial Bus specification)에 따르는 컴퓨터 시스템.The connection is a computer system in accordance with the Universal Serial Bus specification. 제 1 항에 있어서,The method of claim 1, 상기 시스템은 상기 시스템 노드 및 상기 주변 디바이스가 접속된 때, 제 2 시스템 노드와 상기 주변 디바이스 사이의 접속을 방지하는 단계를 수행하도록 또한 구성되는 컴퓨터 시스템.And the system is further configured to perform a step of preventing a connection between a second system node and the peripheral device when the system node and the peripheral device are connected. 제 1 항에 있어서,The method of claim 1, 상기 제어기는 다수의 컴퓨터 시스템에 접속되고, 상기 주변 디바이스는 상기 시스템들 사이에 공유되는 컴퓨터 시스템.The controller is connected to a plurality of computer systems, and the peripheral device is shared between the systems. 제 1 항에 있어서,The method of claim 1, 상기 컴퓨터 시스템은 랙-탑재 시스템(a rack-mounted system)인 컴퓨터 시스템.The computer system is a rack-mounted system. 제 1 항에 있어서,The method of claim 1, 다수의 주변 디바이스가 접속된 때, 상기 주변 디바이스 모두가 상기 설정 단계 동안 상기 시스템에 접속되는 컴퓨터 시스템.And when multiple peripheral devices are connected, all of the peripheral devices are connected to the system during the setting step. 멀티프로세서 컴퓨터 시스템에 있어서,In a multiprocessor computer system, 각각 적어도 하나의 시스템 프로세서 및 상기 프로세서에 의해 기록되거나 판독되도록 접속된 메모리를 갖는 다수의 가상 컴퓨터 시스템과,A plurality of virtual computer systems each having at least one system processor and a memory connected to be written or read by the processor, 상기 컴퓨터 시스템에 접속된 공통 입력/출력 제어기와,A common input / output controller connected to the computer system, 상기 제어기에 접속된 적어도 하나의 주변 장치를 포함하되,At least one peripheral device connected to the controller, 상기 제어기는 상기 컴퓨터 시스템에 의해 요구되었을 때, 상기 컴퓨터 시스템 가운데 하나와 상기 주변 디바이스 사이에서 배타적 접속을 설정하는 컴퓨터 시스템.The controller, when requested by the computer system, establishes an exclusive connection between one of the computer systems and the peripheral device. 제 9 항에 있어서,The method of claim 9, 상기 가상 컴퓨터 시스템은 대칭 멀티프로세서 시스템내에서 분할부(partition)인 컴퓨터 시스템.The virtual computer system is a partition within a symmetric multiprocessor system. 제 9 항에 있어서,The method of claim 9, 상기 제어기는 상기 다수의 가상 컴퓨터 시스템에 대해 상기 주변 디바이스로의 접속을 제공하기 위해 접속되는 컴퓨터 시스템.The controller is connected to provide a connection to the peripheral device for the plurality of virtual computer systems. 제 9 항에 있어서,The method of claim 9, 상기 가상 컴퓨터 각각은 범용 직렬 버스를 통해 상기 제어기에 접속되고, 각각의 주변 디바이스는 범용 직렬 버스 허브를 통해 상기 제어기에 접속되는 컴퓨터 시스템.Each of the virtual computers is connected to the controller via a universal serial bus, and each peripheral device is connected to the controller via a universal serial bus hub. 제 9 항에 있어서,The method of claim 9, 상기 가상 컴퓨터 시스템 각각은 범용 직렬 버스 제어기를 포함하는 컴퓨터 시스템.Each of the virtual computer systems comprises a universal serial bus controller. 제 9 항에 있어서,The method of claim 9, 다수의 주변 디바이스가 접속된 경우, 상기 주변 디바이스가 접속될 때 상기 주변 디바이스 모두가 상기 가상 시스템에 접속되는 컴퓨터 시스템.And when multiple peripheral devices are connected, all of the peripheral devices are connected to the virtual system when the peripheral devices are connected. 디바이스 제어기에 있어서In the device controller 통신 제어기와,Communication controller, 상기 통신 제어기에 각각 작동적으로 접속된 다수의 노드 입력과,A plurality of node inputs, each operatively connected to said communication controller, 상기 통신 제어기에 각각 작동적으로 접속된 다수의 디바이스 접속을 포함하되,A plurality of device connections, each operatively connected to said communication controller, 상기 통신 제어기는 상기 디바이스 접속의 노드 소유권을 중재하고, 주어진 노드 입력에 디바이스 접속의 소유권이 승인될 때, 상기 주어진 노드 입력과 상기 디바이스 접속 모두사이에 배타적 접속을 제공하는 디바이스 제어기.The communication controller mediates node ownership of the device connection and provides an exclusive connection between both the given node input and the device connection when ownership of the device connection is granted to a given node input. 제 15 항에 있어서,The method of claim 15, 상기 디바이스 접속에 접속된 집적 범용 직렬 버스 허브를 더 포함하는 디바이스 제어기.And an integrated universal serial bus hub connected to the device connection. 제 15 항에 있어서,The method of claim 15, 상기 디바이스 접속은 범용 직렬 버스 접속인 디바이스 제어기.And the device connection is a universal serial bus connection. 제 15 항에 있어서,The method of claim 15, 상기 통신 제어기에 작동적으로 접속된 산업 표준 아키텍쳐(Industory standard Architecture) 디바이스 접속을 더 포함하는 디바이스 제어기.And an Industory standard Architecture device connection operatively connected to the communication controller.
KR1020000016570A 1999-03-31 2000-03-30 Dynamic i/o allocation in a partitioned computer system KR20010006934A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28336199A 1999-03-31 1999-03-31
US09/283,361 1999-03-31

Publications (1)

Publication Number Publication Date
KR20010006934A true KR20010006934A (en) 2001-01-26

Family

ID=23085682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000016570A KR20010006934A (en) 1999-03-31 2000-03-30 Dynamic i/o allocation in a partitioned computer system

Country Status (6)

Country Link
KR (1) KR20010006934A (en)
CN (1) CN1269550A (en)
CA (1) CA2299550A1 (en)
IL (1) IL134969A (en)
SG (1) SG91265A1 (en)
TW (1) TW473668B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3680762B2 (en) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 Data transfer control device and electronic device
US7103788B1 (en) * 2001-10-31 2006-09-05 Microsoft Corporation Selective suspension of bus devices
US7370157B2 (en) * 2005-05-24 2008-05-06 Hewlett-Packard Development Company, L.P. Systems and methods of sharing removable media storage devices in multi-partitioned systems
CN102339095B (en) * 2010-07-23 2013-06-05 联想(北京)有限公司 Expansion device for information equipment and expansion method
CN109426545B (en) * 2017-08-31 2023-02-03 阿里巴巴集团控股有限公司 Data communication method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900012156A (en) * 1989-01-10 1990-08-03 루이스 피. 엘빈저 Multiprocessor controller with shared control memory and its synchronization method
KR930016873A (en) * 1992-01-02 1993-08-30 원본미기재 Computer system and system memory access control method
US5694619A (en) * 1993-09-20 1997-12-02 Fujitsu Limited System for exclusively controlling access of a semiconductor memory module using a backup memory and compression and decompression techniques
KR19990004249A (en) * 1997-06-27 1999-01-15 김영환 Bus switching unit of computer
KR20010012465A (en) * 1997-05-12 2001-02-15 로버트 에프. 도나휴 Window mechanism for information transfer control for pci bus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900012156A (en) * 1989-01-10 1990-08-03 루이스 피. 엘빈저 Multiprocessor controller with shared control memory and its synchronization method
KR930016873A (en) * 1992-01-02 1993-08-30 원본미기재 Computer system and system memory access control method
US5694619A (en) * 1993-09-20 1997-12-02 Fujitsu Limited System for exclusively controlling access of a semiconductor memory module using a backup memory and compression and decompression techniques
KR20010012465A (en) * 1997-05-12 2001-02-15 로버트 에프. 도나휴 Window mechanism for information transfer control for pci bus
KR19990004249A (en) * 1997-06-27 1999-01-15 김영환 Bus switching unit of computer

Also Published As

Publication number Publication date
SG91265A1 (en) 2002-09-17
IL134969A0 (en) 2001-05-20
CA2299550A1 (en) 2000-09-30
IL134969A (en) 2004-06-20
CN1269550A (en) 2000-10-11
TW473668B (en) 2002-01-21

Similar Documents

Publication Publication Date Title
US5125093A (en) Interrupt control for multiprocessor computer system
KR100335299B1 (en) Pci slot control apparatus with dynamic configuration for partitioned systems
US7099969B2 (en) Dynamic reconfiguration of PCI Express links
JP3838278B2 (en) Bridge circuit between two buses of a computer system
US8176501B2 (en) Enabling efficient input/output (I/O) virtualization
US6928514B2 (en) Method and apparatus for teaming storage controllers
US5621902A (en) Computer system having a bridge between two buses with a direct memory access controller and an alternative memory access controller
US7533210B2 (en) Virtual communication interfaces for a micro-controller
US6134579A (en) Semaphore in system I/O space
JP3232283B2 (en) Computer system supporting PCI bus
JP3628595B2 (en) Interconnected processing nodes configurable as at least one NUMA (NON-UNIFORMMOMERYACCESS) data processing system
JP2000222346A (en) Device and method with respect to connected device to pci-pci bridge in intelligent i/o controller
TW200405206A (en) Virtualization of input/output devices in a logically partitioned data processing system
JPH06337840A (en) Direct memory access mechanism in multiple bus information processing system
US10404800B2 (en) Caching network fabric for high performance computing
US5802391A (en) Direct-access team/workgroup server shared by team/workgrouped computers without using a network operating system
US5951667A (en) Method and apparatus for connecting expansion buses to a peripheral component interconnect bus
US7096306B2 (en) Distributed system with cross-connect interconnect transaction aliasing
US5708784A (en) Dual bus computer architecture utilizing distributed arbitrators and method of using same
KR20010006934A (en) Dynamic i/o allocation in a partitioned computer system
JP2006505054A (en) System and method for providing an arbitrated memory bus in a hybrid computing system
CN112612741B (en) Multi-path server
KR950012734B1 (en) Multiple input/putput devices having shared address space
JP3531368B2 (en) Computer system and inter-bus control circuit
JP2002207687A (en) System and method for dynamic input/output allocation in sorted computer system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application