KR102092660B1 - Cpu 및 다중 cpu 시스템 관리 방법 - Google Patents

Cpu 및 다중 cpu 시스템 관리 방법 Download PDF

Info

Publication number
KR102092660B1
KR102092660B1 KR1020177012588A KR20177012588A KR102092660B1 KR 102092660 B1 KR102092660 B1 KR 102092660B1 KR 1020177012588 A KR1020177012588 A KR 1020177012588A KR 20177012588 A KR20177012588 A KR 20177012588A KR 102092660 B1 KR102092660 B1 KR 102092660B1
Authority
KR
South Korea
Prior art keywords
cpu
domain
group
cross
state
Prior art date
Application number
KR1020177012588A
Other languages
English (en)
Other versions
KR20170093116A (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 KR20170093116A publication Critical patent/KR20170093116A/ko
Application granted granted Critical
Publication of KR102092660B1 publication Critical patent/KR102092660B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Abstract

본 발명의 실시예는 다중 CPU 시스템을 제공하며, 다중 CPU 시스템은: 적어도 2개의 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제1 노드 제어기(node controller, NC) 그룹 및 제2 NC 그룹을 포함하며, 제1 NC 그룹을 사용해서 다른 QPI 도메인 내의 CPU에 액세스할 수 있는 적어도 하나의 CPU가 있으며, 제2 NC 그룹을 사용해서 다른 QPI 도메인 내의 CPU에 액세스할 수 있는 적어도 하나의 CPU가 있다. 이 위상에 따라, 시스템이 상대적으로 약간 영향을 받는 동안에도 NC의 핫 스왑이 실현될 수 있다.

Description

CPU 및 다중 CPU 시스템 관리 방법{CPU AND MULTI-CPU SYSTEM MANAGEMENT METHOD}
본 발명은 컴퓨터 분야에 관한 것이며, 특히 CPU 및 다중 CPU 시스템 관리 방법에 관한 것이다.
비 균일 메모리 액세스 아키텍처(Non-Uniform Memory Access Architecture, NUMA) 시스템에서, 중앙 처리 장치(Central Processing Unit, CPU)는 상호 버스를 통해 상호접속되어 다중 CPU 시스템을 형성할 수 있다. 일반적인 상호접속 버스는 신속 경로 상호접속(Quick-Path Interconnect, QPI) 프로토콜이다.
그렇지만, 구성요소 자원의 한계로 인해, 예를 들어, CPU 상호 접속 포트의 제한된 수량으로 인해, 상호 접속 버스만 사용해서 최대 8개의 CPU 간의 상호접속을 실현할 수 있다. 8개 이상의 CPU 간의 상호접속을 실현하기 위해서는 노드 제어기(Node Controller, NC)를 사용할 필요가 있다.
도 1은 종래기술의 다중 CPU 시스템 아키텍처를 도시하고 있으며, 노드 제어기(111), 노드 제어기(112), 및 8개의 CPU를 포함한다. CPU(121), CPU(122), CPU(123), 및 CPU(124)는 QPI 도메인을 형성하고, CPU(125), CPU(126), CPU(127), 및 CPU(128)는 다른 QPI 도메인을 형성한다. QPI 도메인 내의 CPU는 CPU 간의 QPI 버스를 통해 서로 통신할 수 있다. 다른 QPI 도메인 내의 CPU 간의 통신을 실현하기 위해서는 NC가 사용될 필요가 있다.
시스템 실행 프로세스에서, 교차-NC 액세스는 단일 경로를 사용해서 수행되며, 이것은 상대적으로 긴 시스템 지연을 초래한다. 신뢰도가 낮아진 경우, 낮은 신뢰도의 NC는 제거되고 대체되어야 한다. 그렇지만, 도 1의 아키텍처에 따르면, CPU에 의한 다른 도메인에 대한 액세스는 NC 대체 동안 영향을 받는다.
본 발명의 실시예는 다중 CPU 시스템 아키텍처를 제안하며, 여기서 2개의 NC 그룹이 CPU에 대해 이용 가능하고, CPU는 목표 NC에 액세스하는 최고 속도를 제공하는 NC 그룹을 선택하며, 이는 시스템의 전반적인 효율성을 향상시킨다.
제1 관점에 따라, 본 발명의 실시예는 다중 CPU 시스템을 관리하는 메인 CPU로서 기능할 수 있는 CPU를 제공하며, 상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(node controller, NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 CC 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는: 제1 NC 그룹 내의 하나의 NC가 제거되어야 할 때, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있다.
이 방법을 적용하면, NC는 즉시 제거될 수 있고, 이것은 NC 제거에 의해 다중 CPU 시스템 성능에 초래되는 영향을 줄일 수 있다.
제1 관점의 제1 가능한 실시 방식에서, 상기 메인 CPU가 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
기록된 데이터 상태를 무효 상태(invalid state)로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고;
상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵(system silence)을 개시하고;
루트 레지스터 내에 있으면서 다른 도메인 내의 CPU에 액세스하는 포트를, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하며; 그리고
시스템 침묵의 취소를 개시하도록 구성되어 있는 것을 포함한다.
이 실시 방식은 CPU 루트 구성을 수정함으로써 NC 즉시 제거를 실행하는 특정한 방식을 제공한다.
제1 관점의 제2 가능한 실시 방식에서, 상기 메인 CPU는: 상기 제거될 NC가 제거되고 목표 NC가 제1 NC 그룹에 부가되고 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축한 후, 상기 다중 CPU 시스템에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하게끔 제어하도록 추가로 구성되어 있다.
이 실시 방식은 NC 즉시 제거 기술을 제공한다. NC 부가 프로세스는 독립적인 솔루션일 수도 있고 제1 관점 또는 제1 관점의 제1 가능한 실시 방식과 조합하여 조합된 솔루션을 형성할 수도 있다.
제1 관점의 제3 가능한 실시 방식에서, 상기 메인 CPU는: 상기 제거될 NC가 제거되고 목표 NC가 제1 NC 그룹에 부가된 후, 기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU에 명령하고; 상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고; 상기 목표 NC와 상기 제1 NC 그룹 내의 원래의 NC 간의 위상 관계를 구축하고; 루트 레지스터 내에 있으면서 다른 도메인 내의 CPU에 액세스하는 포트를, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하도록, 상기 적어도 하나의 CPU에 명령하며; 그리고 시스템 침묵의 취소를 개시하도록 추가로 구성되어 있다.
이 솔루션은 더 상세한 NC 제거 기술을 제공한다.
제1 관점의 제4 가능한 실시 방식에서, 상기 메인 CPU는: 목표 NC가 제1 NC 그룹에 부가된 후, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하며 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ; 상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고; 루트 레지스터에 있으면서 상기 M개의 CPU에 액세스하는 포트를, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하기 위해, 상기 적어도 하나의 CPU의 루트 레지스터 구성을 수정하며; 그리고 상기 루트 레지스터 구성의 수정을 종료한 후 시스템 침묵을 취소하도록 추가로 구성되어 있다.
제1 관점의 제4 가능한 실시 방식을 적용함으로써, 서로 다른 싱크 노드에 따라, 일부의 CPU는 루트를 변경하도록 선택될 수 있고, 나머지 CPU의 루트는 그래도 유지된다.
제2 관점에 따라, 다중 CPU 시스템을 관리하는 메인 CPU로서 기능하는 CPU가 제공되며, 상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는: 제1 NC 그룹 내의 하나의 목표 NC가 제거되어야 할 때, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성(route configuration)을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있다.
이 솔루션은 NC 즉시 제거를 실행할 수 있다.
제2 관점의 제1 가능한 실시 방식에서, 상기 메인 CPU가 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가: 기록된 데이터 상태를 무효 상태로 구성하도록, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고; 상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고; 루트 구성을 갱신하여 상기 목표 NC를 격리하도록 제1 NC 그룹 내의 나머지 NC에 명령하고, 루트 레지스터 내에 있으면서 다른 도메인 내의 CPU에 액세스하는 포트를, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하도록, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하며; 그리고 시스템 침묵의 취소를 개시하도록 구성되어 있는 것을 포함한다.
제3 관점에 따라, 다중 CPU 시스템을 관리하는 메인 CPU로서 기능하는 CPU가 제공되며, 상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는:
제1 NC 그룹에 목표 NC가 부가될 때, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있으며,
상기 목표 NC는 제1 QPI 도메인에 연결된다.
제3 관점의 제1 가능한 실시 방식에서, NC 추가 기술이 제공된다.
제3 관점의 제1 가능한 실시 방식에서, 상기 메인 CPU가 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가: 기록된 데이터 상태를 무효 상태로 구성하도록 상기 적어도 하나의 CPU에 명령하고; 상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고; 상기 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축하도록 상기 목표 NC에 명령하고; 루트 레지스터 내에 있으면서 다른 도메인 내의 CPU에 액세스하는 포트를, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 포트로 수정하기 위해, 루트 정보를 수정하도록 상기 목표 NC에 명령하며; 그리고 시스템 침묵의 취소를 개시하도록 추가로 구성되어 있다.
제3 관점의 제1 가능한 실시 방식에서, 상세한 NC 부가 기술이 제공된다.
제3 관점의 제1 가능한 실시 방식에서, 상기 메인 CPU가, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가: 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하며 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ; 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하며; 그리고 루트 레지스터에 있으면서 상기 M개의 CPU에 액세스하는 포트를, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하기 위해, 루트 구성을 수정하도록 상기 적어도 하나의 CPU에 명령하도록 구성되어 있는 것을 포함한다.
제3 관점의 제2 가능한 실시 방식에서, 상기 메인 CPU가, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가: 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하며 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ; 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하며; 그리고 루트 레지스터에 있으면서 상기 M개의 CPU에 액세스하는 포트를, 상기 목표 NC를 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하기 위해, 루트 구성을 수정하도록 상기 적어도 하나의 CPU에 명령하도록 구성되어 있는 것을 포함한다.
제3 관점의 제2 가능한 실시 방식에서, 다른 싱크 노드의 루트를 변경하기 위해 상세한 NC 부가 기술이 제공된다.
본 발명은 컴퓨터를 추가로 제공하며, 제1 QPI 도메인, 제2 QPI 도메인, 제1 NC 그룹, 및 제2 NC 그룹을 포함하고, 상기 컴퓨터는 BIOS를 추가로 포함하며, 상기 BIOS는 모든 전술한 관점에서의 메인 CPU의 실행에 필요한 명령을 저장하는 데 사용되며, 상기 컴퓨터는 전술한 관점과 유사한 기술적 효과를 가져 온다.
본 발명은 모든 전술한 관점 도는 전술한 컴퓨터에서의 메인 CPU에 적용 가능한 다중 CPU 시스템 관리 방법을 추가로 제공하며, 유사한 기술적 효과를 가져 온다.
도 1은 종래기술의 다중 CPU 시스템에 대한 아키텍처 도면이다.
도 2는 본 발명에 따른 다중 CPU 시스템에 대한 아키텍처 도면이다.
도 3은 본 발명에 따른 NC 제거 방법 실시예에 대한 흐름도이다.
도 4는 본 발명에 따른 NC 부가 방법 실시예에 대한 흐름도이다.
도 5는 본 발명에 따른 다른 NC 제거 방법 실시예에 대한 흐름도이다.
도 6은 본 발명에 따른 다른 NC 부가 방법 실시예에 대한 흐름도이다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다.
NUMA와 같은 다중 CPU 시스템은 컴퓨터 내에 위치한다. 다중 CPU 시스템에서, CPU의 외부 인터페이스 수가 제한되기 때문에 시스템의 스케일을 확장하기 어렵다. CPU의 시스템을 더 많은 CPU로 형성하기 위해, 일반적으로 NC를 사용해서 서로 다른 CPU 그룹을 연결하고, NC를 사용해서 CPU 그룹 간에 데이터가 전송된다.
NC 그룹은 NC 플레인이라고도 하며, 하나 이상의 NC로 구성된다. 동일한 NC 그룹 내의 복수의 NC는 풀 메시(full mesh), 링 연결 또는 직렬 연결의 방식으로 상호접속될 수 있다. CPU 그룹은 QPI 도메인이라고도 하며, QPI는 하나 이상의 CPU로 구성된다. 동일한 QPI 도메인 내의 복수의 CPU는 QPI 버스를 사용해서 연결된다. NC 그룹은 CPU 그룹에 연결된다.
CPU 그룹 내의 CPU는 QPI 버스를 사용해서 상호접속될 뿐만 아니라, 다른 캐시 코히어런시(Cache Cohoerency, CC) 버스, 예를 들어, 하이퍼-트랜스포트(Hyper-Transport, HT) 버스를 사용해서 상호접속될 수도 있다. 그러므로 CPU 그룹은 캐시 코히어런시 도메인이라고도 할 수 있다. 설명을 쉽게 하기 위해, 본 발명의 실시예는 QPI 도메인을 예로 해서 설명한다.
실시예에서, CPU의 한 포트는 NC에 연결되고, 나머지 포트는 도메인 내의 다른 CPU에 연결된다. NC 그룹은 QPI 도메인 간에 패킷을 포워딩할 수 있고, 따라서 서로 다른 QPI 도메인 내의 CPU는 NC 그룹을 사용해서 패킷 전송을 수행할 수 있다.
선택적으로, 각각의 CPU는 복수의 포트를 가지며, 여기서 각각의 포트는 NC에 연결되고, 나머지 포트는 현재의 QPI 도메인 내의 CPU에 연결된다. 예를 들어, CPU가 3개의 포트를 가지면, 포트 중 하나는 NC에 연결되고, 나머지 2개의 포트는 인접 CPU에 연결된다. CPU와 NC 간의 연결 선은 또한 CPU와 NC 그룹 간의 연결 선이다. NC 그룹은 포워딩 기능을 제공하며, CPU는 NC에 연결된 선을 사용해서 다른 QPI 도메인 내의 CPU와 통신한다.
NC를 사용하는 프로세스에서는, 신뢰도가 저하되고 심지어 장애가 발생할 수도 있다. NC에 장애가 생기면, 다중 CPU 시스템 내의 CPU에 액세스하는 대역폭에 특정한 충격이 초래될 수 있다. 다중 CPU 시스템의 신뢰도를 높이기 위해, 이상적인 다중 CPU 시스템은 NC 핫-스왑(hot-swap)을 지원해야 한다. 다중 CPU 시스템의 실행 상태는 관리 소프트웨어를 사용해서 모니터링된다. NC의 실행이 불안정한 것으로 발견되면, 예를 들어, 일정한 기간 동안 NC의 장애 발생의 빈도 또는 횟수가 임계값을 초과하면, NC는 위험으로 표시된다. 또한, NC를 사용할 수 없게 되기 전에 위험한 NC를 즉시 제거한 다음 새로운 NC를 즉시 부가하여, NC가 시스템에 갑작스럽게 장애를 일으켜 심각한 영향을 미치지 않도록 한다.
핫-스왑이란 전력을 끊김 없이 스와프하는 것을 말하며, 사용자는 시스템을 끄지 않고 파워 서플라이를 차단함이 없이 관련 부품을 교체할 수 있다. 구체적으로, 핫-스왑은 2가지 프로세스: 즉시 제거 및 즉시 부가를 포함한다.
본 발명의 이 실시예에서, 복수의 QPI 도메인은 동일한 복수의 NC 그룹에 연결된다. NC 및 CPU 레지스터에는 루트 구성이 저장되어 있고, 패킷 전송 경로는 루트 정보를 수정함으로써 변경될 수 있다. CPU 간의 상호 액세스 작동에서는, 트랜잭션을 사용해서 일련의 액세스 작동을 설명한다. 액세스 트랜잭션을 개시하는 (액세스 요구를 송신하는) CPU를 소스 CPU라 하고, 트랜잭션에 응답하는 (액세스 요구에 응답하는) CPU를 싱크 CPU라 한다. 트랜잭션 프로세싱 프로세스에서, 소스 CPU와 싱크 CPU 간에 데이터를 전송하는 채널을 루트라 한다. 데이터 패킷의 전송 방향은 트랜잭션 루트 방향과 반대이며, 여기서 싱크 CPU는 데이터 패킷의 송신자이고, 소스 CPU는 데이터 패킷의 수신자이다. 요구 패킷의 전송 방향은 트랜잭션 루트 방향과 같고, 여기서 소스 CPU는 데이터 요구 패킷을 송신하고, 싱크 CPU는 데이터 요구 패킷에 응답한다.
도 2는 본 발명에 따른 다중 CPU 시스템에 대한 아키텍처 도면이다. QPI 도메인(23), QPI 도메인(24), 및 QPI 도메인(25)은 모두 NC 그룹(21) 및 NC 그룹(22)에 연결되어 있다. 어떠한 CPU도 NC 그룹(21) 또는 NC 그룹(22)을 사용해서 다른 QPI 내의 CPU에 액세스할 수 있다. 동일한 CPU는 서로 다른 NC 그룹을 사용해서 다른 도메인 내의 다른 CUP에 액세스할 수 있다. 본 발명의 이 실시예에서 언급하는 액세스는 예를 들어 다른 CPU로부터 데이터를 패킷의 형태로 판독하는 것일 수 있다. 구체적으로, 데이터는 다른 CPU에 의해 관리되는 메모리로부터 판독된다.
다중 CPU 시스템에서, 하나의 CPU는 메인 CPU로 기능한다. 메인 CPU는 NC 및 다른 CPU를 관리하고 제어하며, 메인 CPU는 임의의 QPI 도메인에 위치할 수 있다. 메인 CPU는 프로그램을 실행함으로써 관리 및 제어 명령을 생성한다. 프로그램은 컴퓨터의 BIOS로부터 획득될 수 있다. BIOS는 다중 CPU 시스템에 연결되어 있으며, 다중 CPU 시스템과 BIOS 모두는 컴퓨터에 통합된 부품이다.
즉, QPI 도메인의 CPU는 NC를 사용함이 없이 서로 액세스할 수 있다. 예를 들어, 도 2에서, CPU(231)가 CPU(234)에 액세스해야 하면, CPU 231――CPU 232――CPU 233――CPU 234, CPU 231――CPU 234, 및 CPU 231――NC 211――CPU 234를 포함하는 복수의 선택 루트가 있다. 그렇지만, 다른 QPI 도메인 내의 CPU는 NC 그룹을 사용해서 서로 액세스해야 한다. CPU(231)가 CPU(241)에 액세스하면, 선택적 액세스 경로는 CPU 231――NC 211――NC 212――CPU 241일 수 있거나, 다음의 경로가 선택될 수도 있다: CPU 231――CPU 232――NC 221――NC 222――CPU 242――CPU 241. 전자는 NC 그룹(21)을 통과하고, 후자는 NC 그룹(22)을 통과한다.
본 발명의 이 실시예에서, 다중 CPU 시스템은: 적어도 2개의 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제1 NC 그룹 및 제2 NC 그룹을 포함한다. 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 각각의 NC 그룹은 적어도 하나의 NC를 포함한다. 각각의 NC는 모든 QPI 도메인에 연결된다.
다중 CPU 시스템에서, CPU는 다른 QPI 도메인 내의 제1 싱크 CPU에 액세스할 때 CPU의 루트 구성에 따라 제1 NC 그룹에 액세스 요구를 송신할 수 있으며, 여기서 제1 NC 그룹은 제2 QPI 도메인 내의 제1 싱크 CPU에 액세스 요구를 포워딩하는 데 사용된다. 또한, CPU는 다른 QPI 도메인 내의 제2 싱크 CPU에 액세스할 때 CPU의 루트 구성에 따라 제1 NC 그룹에 액세스 요구를 송신할 수 있으며, 여기서 제1 NC 그룹은 제2 QPI 도메인 내의 제2 싱크 CPU에 액세스 요구를 포워딩하는 데 사용된다.
제1 NC 그룹을 사용해서 제1 싱크 CPU에 액세스하는 CPU는 제2 NC 그룹을 사용해서 제2 싱크 CPU에 액세스하는 CPU와 같을 수도 있고 다를 수도 있다.
이하에서는 서로 다른 QPI 도메인에 속하는 CPU 사이에서 통신이 수행될 때 시스템에 제거 및 부가되는 NC에 의해 초래되는 변화를 설명한다.
예를 들어, 본 발명의 이 실시예는 NC 그룹(21) 내의 NC(211)가 제어되어야 할 때 2가지 솔루션을 제공한다. 2 방식은 메인 CPU의 제어 하에 수행된다. 한 방식은 NC 그룹(21)을 통해 원래 통과하는 모든 루트를 NC 그룹(22)으로 전환하는 것이고, 다른 방식은 NC(211)를 원래 통과하는 루트를 NC 그룹(22)으로 전환하고 NC 그룹(21) 내의 다른 NC를 통과하는 루트는 변경되지 않는 것이다.
마찬가지로, NC가 메인 CPU의 제어 하에 부가되어야 할 때, 예를 들어, 원래의 NC(211)이 제거된 후, 새로운 NC(211)이 NC 그룹(21)에 부가될 때, 수 개의 솔루션이 있다. 한 방식은 다음과 같다: 교차 도메인 액세스를 개시하는 서로 다른 CPU에 의존하여, 메인 CPU는 NC 그룹(22)을 통과하는 루트 중 일부를 선택하고, 그 선택된 루트를 NC 그룹(21)으로 전환하며, 나머지 루트는 전환하지 않는다. 다른 방식은 다음과 같다: 도메인 간에 액세스된 서로 다른 싱크 CPU에 의존하여, 메인 CPU는 NC 그룹(22)을 원래 통과하는 루트 중 일부의 싱크 CPU에 대응하는 루트를 선택하고, 그 선택된 루트를 NC 그룹(21)으로 전환하며, 나머지 루트는 전환하지 않는다. 또 다른 방식은 NC 그룹(22)을 통과하는 모든 루트를 NC 그룹(21)으로 전환하는 것이다.
교차 도메인 액세스는 액세스된 CPU와 액세스 요구를 송신하는 CPU가 동일한 QPI 도메인에 있지 않다는 것을 의미하며, 구체적으로, 액세스 메모리 어드레스는 다른 QPI 도메인 내의 CPU에 의해 관리되는 메모리 어드레스이다. 액세스 요구는 하나의 CPU가 다른 CPU에게 데이터를 요구하는 데 사용된다. 교차 도메인 액세스의 액세스 요구가 NC 그룹 내의 임의의 NC를 통과하면, 그 교차 도메인 액세스는 그 NC 그룹을 통과하는 것으로 간주된다. CPU가 하나의 NC 그룹(또는 NC)을 사용해서 교차 도메인 액세스를 수행한다는 것은 CPU의 루트 구성에서, NC 그룹 또는 NC가 직접적으로 또는 간접적으로 가리켜지고 있다는 것을 의미한다. 교차 도메인 액세스가 현재의 시점에 존재한다는 것으로 반드시 의미하지는 않는다. 그렇지만, CPU가 교차 도메인 액세스 요구를 송신할 때, 그 액세스 요구는 NC 그룹 또는 NC를 통과할 수 있다.
NC를 직접적으로 가리키는 것은 예를 들어 가리키고 있는 NC에 직접적으로 연결하는 것이다. CPU 루트 구성에서, 가리키고 있는 NC가 다음 노드이다. CPU가 교차 도메인 액세스 요구를 송신할 때, CPU 루트 구성에 따라, 교차 도메인 액세스가 통과하는 다음 노드는 가리키고 있는 NC이다. NC를 간접적으로 가리키는 것은 예를 들어 다른 노드(예를 들어 NC 또는 CPU)를 먼저 통과한 다음 가리키고 있는 NC에 연결하는 것이다. CPU가 교차 도메인 액세스 요구를 송신할 때, CPU 루트 구성에 따라, 교차 도메인 액세스 요구는 먼저 다른 노드들을 통과하고 그런 다음 가리키고 있는 NC 도착할 수 있다. 이상에서는 NC를 직접적으로 또는 간접적으로 가리키는 원리를 설명하였으며 NC 그룹을 직접적으로 또는 간접적으로 가리키는 원리도 같다.
실시예 1
도 3을 참조하면, 본 발명의 이 실시예는 NC 즉시 제거 방법을 제공한다. 이 방법은 도 2의 아키텍처에 기초하여 설명된다.
제1 NC 그룹 내의 NC가 제거되어야 할 때, 메인 CPU는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 것으로 전환한다.
메인 CPU가 QPI 도메인(23) 내의 CPU(234)이고, 제어되어야 할 NC가 NC(211)인 것으로 가정한다. 설명을 쉽게 하기 위해, 이 실시예에서 제어되어야 할 NC(211)를 목표 NC라 하고, NC 그룹(21)을 제1 NC 그룹이라 하며, NC 그룹(22)을 제2 NC 그룹이라 한다.
단계 S301. 메인 CPU는 제1 NC 그룹 내의 NC가 제거되어야 한다는 것을 지시하는 신호를 수신한다.
예시적으로, 사용자가 NC(211)를 제거할 준비가 되어 있을 때, 사용자는 운영체제를 사용해서 메인 CPU(234)에 제거 명령을 송신할 수 있으며, 여기서 제거 명령은 NC(211)의 식별자를 포함한다. 이 방법에서, 제거 명령을 수신할 때, 메인 CPU(234)는 제거되어야 할 NC가 NC 그룹(21)에 존재하는 것으로 결정할 수 있다.
예시적으로, NC 그룹(21) 내의 NC(211)의 신뢰도가 저하되는 것으로 검출한 후, CPU(234)는 NC(211)를 제거하는 것을 시작할 수 있다. NC 그룹(21)을 통과하는 루트가 NC 그룹(22)으로 전환된 후 NC 그룹(21)의 사용은 중지되고, NC(211)은 즉시 제거될 수 있다.
S302. 메인 CPU는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 CPU에, CPU에 의해 기록된 데이터 상태를 무효 상태로 구성하도록 명령한다.
메인 CPU는 다중 CPU 시스템 내의 CPU 간의 위상 관계(topological relationship)를 학습할 수 있으며, 환언하면, 메인 CPU는 각각의 CPU의 서로 다른 포트와 다른 장치(NC 또는 CPU) 간의 연결 관계를 알 수 있다. 그러므로 CPU 루트 구성 내의 발신 포트 구성을 판독함으로써, 메인 CPU는 CPU가 교차 도메인 액세스를 위해 사용하는 NC 그룹이 제1 NC 그룹인지를 학습할 수 있다. 따라서, 메인 CPU가 루트 구성 내의 발신 포트를 수정하도록 다른 CPU에 명령하면, CPU가 외부 액세스를 위해 사용하는 경로가 변경될 수 있다(후속의 단계 S304에서 언급한다). 루트 정보는 CPU의 캐시에 기록된다.
예를 들어, 메인 CPU는 다음을 기록한다: CPU(231)가 NC 그룹(21)을 사용해서 다른 도메인 내의 CPU(예를 들어, CPU(241))에 액세스해야 하면, 사용되어야 하는 포트는 CPU(231)의 3개의 포트 중 NC(211)에 연결된 포트이며, CPU(231)가 NC 그룹(22)을 사용해서 다른 도메인 내의 CPU(예를 들어, CPU(241))에 액세스해야 하면, 사용되어야 하는 포트는 CPU(231)의 3개의 포트 중 NC(221)에 연결된 포트, 즉 CPU(231)와 CPU(232) 사이의 포트이다. 다른 도메인에 액세스하기 위해 CPU(231)에 의해 현재 구성된 포트가 전자이면, 그것은 CPU(231)가 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행한다는 것을 의미한다. 이 방법에 따르면, 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU가 획득될 수 있다.
예를 들어, 메인 CPU는 각각의 CPU가 다른 메모리 어드레스에 액세스하기 위해 사용하는 발신 포트를 캐시에 기록할 수 있다. 메인 CPU의 캐시를 판독한 후, 메인 CPU는 어느 CPU가 교차 도메인 액세스를 수행하기 위해 제1 NC 그룹을 사용하는지를 학습할 수 있다. 대안으로, 독립적인 관리 장치가 이러한 정보를 기록하고 메인 CPU에 제공할 수 있다.
도 2를 예로 사용하면, CPU(231)가 CPU(231)의 도메인에 있지 않은 메모리 어드레스에 액세스할 때는, NC(211)에 연결되어 있으면서 CPU(231) 내에 있는 포트가 사용된다. CPU는 코어, 캐시 에이전트(Cache Agent, CA) 및 홈 에이전트(Home Agent, HA)를 포함한다. CA는 캐시를 관리하고, HA는 메모리를 관리한다. 데이터를 요구할 때, CPU 코어는 먼저 CPU 코어의 CA를 사용해서 CA에 의해 관리되는 캐시를 검색하고, 데이터 발견되지 않으면, HA를 사용해서 HA에 의해 관리되는 메모리를 검색한다.
HA는 데이터를 제공하고 액세스 요구를 송신하는 코어는 동일한 CPU에 위치할 수도 있고 다른 CPU에 위치할 수도 있다. 이 실시예는 데이터를 제공하는 HA를 설명하며 다른 QPI 도메인에 위치하는 HA를 강조한다.
본 발명의 이 실시예에서, CPU의 데이터 상태는 CPU 캐시에 있으면서 CPU에 의해 요구된 데이터의 상태를 말한다. 데이터 상태는 CPU 캐시에 기록되며 CA에 의해 관리된다.
CPU가 다른 CPU의 데이터에 액세스한 적이 있다면(구체적으로, 상기 데이터가 다른 CPU의 HA가 관리하는 메모리의 데이터 일 수 있다), 액세스를 시작한 CPU는 획득한 데이터의 현재 상태를 기록할 수 있다. 특정 패킷 전송 프로세스에서, 소스 CPU가 액세스를 시작하고 싱크 CPU는 패킷을 제공한다. 구체적으로, 싱크 CPU는 싱크 CPU의 HA를 사용해서 메모리로부터 데이터를 취득하고, 그런 다음 소스 CPU에 데이터를 제공한다. CPU에 의해 기록된 데이터 상태는 CPU가 소스 CPU로서 작용할 때 CPU에 의해 획득되는 데이터(예를 들어 패킷)의 상태이고, 그 데이터 상태는 요구되는 싱크 CPU 액세스에 대응한다. 캐시 코히어런시 프로토콜(cache coherency protocol)에 따르면, 원하는 데이터를 얻은 후, 액세스 요구의 소스 CPU는 획득한 데이터의 상태를 자체 캐시에 기록한다. 상태에는 독점(Exclusive, E) 상태, 무효(Invalid, I) 상태, 공유(Share, S) 상태 및 수정(Modify, M) 상태가 포함된다. 이러한 상태는 메모리 어드레스(캐시 라인)에 표시된다. 메모리 어드레스는 메모리 내의 데이터 어드레스를 더 기록할 수 있다.
M 상태는 메모리 어드레스에 표시된 데이터가 소스 CPU에 의해 수정되어(더티) 싱크 CPU에서 제공한 원래 데이터와 일치하지 않음을 나타낸다. 수정된 데이터가 다시 메모리에 기록된 후 메모리 어드레스의 상태는 E 상태로 변경될 수 있다. E 상태는 메모리 어드레스에 표시된 데이터가 수정되지 않았으며(정리) 메모리의 데이터와 일치함을 나타낸다. S 상태는 메모리 어드레스에 표시된 데이터가 복수의 CPU에 의해 버퍼링 될 수 있으며 모든 캐시 내의 데이터가 메모리 내의 데이터와 일치함을 의미한다. I 상태는 데이터가 유효하지 않음을 나타내며, 예를 들어 다른 CPU가 메모리 어드레스에 표시된 데이터를 수정했을 수 있음을 나타낸다.
NC 역시 데이터 상태를 기록할 수 있다. CPU가 교차 도메인 패킷을 전송하고 교차 도메인 패킷이 NC를 통과할 때, NC는 데이터 상태를 기록하므로 NC에 의해 기록된 데이터 상태는 그 패킷의 소스 CPU가 기록한 데이터 상태와 일치하게 된다. 이후의 교차 도메인 액세스에서, 다른 CPU는 NC를 사용해서 CPU의 데이터 상태를 학습할 수 있으며, 이는 CPU로부터 데이터 상태를 얻는 관행에 비해 빠르다.
이 실시예에서, NC 그룹(21)을 사용해서 다른 도메인에 액세스한 모든 CPU의 루트 구성은 NC 그룹(21)보다는 NC 그룹(22)을 가리키도록 수정될 필요가 있다. 이러한 CPU는 NC 그룹(22)을 사용해서 패킷을 수신하는 소스 CPU로서 작용하지 않았으므로, 해당 데이터 상태가 NC에 기록되지 않는다. 즉, NC의 상태 기록에서, 해당 데이터 상태는 I 상태이다. NC 그룹(21)을 사용해서 패킷을 보내는 CPU에 기록된 상태를 I 상태로 수정함으로써 NC와 CPU 간에 데이터 상태가 일치되게 유지할 수 있다.
제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 CPU가 기록한 데이터 상태를 무효 상태로 구성하는 선택적 구현 방식은 2 부분으로 이루어진다. 첫 번째 부분은 다음과 같다: 메인 CPU는 CPU에 의해 버퍼링된 데이터를 클리어하도록 CPU에 지시하여 CPU 내의 데이터 상태 M 상태가 I 상태로 변경되고, 여기서 캐시 클리어링(cache clearing)은 구체적으로 버퍼링된 데이터를 제공하는 메모리로 반환하는 것이라 할 수 있다. 두 번째 부분은 다음과 같다: 메인 CPU는 제1 NC 그룹 내의 NC에, NC가 기록한 데이터 상태를 클리어하도록 지시하여 NC에 기록된 S 상태와 E 상태가 I 상태로 변경되고 CPU의 S 상태 및 E 상태도 그에 따라 I 상태로 변경된다. 작업의 두 부분은 명령을 사용해서 메인 CPU에 의해 개시된다. 이하에서는 구체적인 해석을 제공한다.
첫 번째 부분: CPU 코어는 클리어 캐시 커맨드를 실행하고, 따라서 CPU에 기록된 수정된 상태의 데이터를 메모리에 쓰고, 그런 다음 데이터 상태를 수정된 상태로부터 무효 상태로 변경한다. 또한, 메모리에 데이터를 쓰는 프로세스에서, 데이터는 제1 NC 그룹 내의 NC를 통과할 수 있다. 제1 NC 그룹 내의 NC는 또한 NC의 디렉토리 캐시가 기록한 해당 디렉토리 상태를 수정 상태에서 무효 상태로 변경하며, 이는 CPU에 기록된 액세스된 데이터의 디렉토리 상태와 일치하게 유지한다.
두 번째 부분은 다음과 같다: (1) 제1 NC 그룹 내의 NC는 NC의 캐시 내의 데이터 상태를 질의하고(CPU가 NC를 사용해서 서로 액세스할 때, NC는 그 액세스된 데이터의 상태를 기록한다), S 상태 및 E 상태의 현재 레코드를 획득하며, S 상태 또는 E 상태 레코드가 있는 CPU에 스누프 메시지(snoop message)를 송신한다. (2) 스누프 메시지를 수신한 CPU는 S 상태 및 E 상태 레코드를 I 상태로 다운그레이드하고, 그런 다음 NC에 응답 메시지를 송신한다. NC는 응답 메시지를 수신한 후, NC 역시 NC에 의해 기록된 S 상태와 E 상태를 I 상태로 다운그레이드한다. 스누프 메시지를 수신하는 CPU는 제1 NC 그룹을 사용해서 다른 QPI 도메인 내의 CPU에 액세스한 적이 있는 CPU이다.
S303. 메인 CPU는 시스템 침묵을 개시한다.
NC 핫-스와프는 버스 상에서 데이터 연속성 또는 간섭과 관련 있을 뿐만 아니라, 전체 다중 CPU 시스템의 작업 모드 및 성능에도 영향을 미친다는 것에 유의해야 한다. 그러므로 다중 CPU 시스템이 침묵 상태에 있을 때 NC를 제거하는 것은 NC 제거에 의해 초래되는 CPU 서비스 오류를 회피할 수 있다. 다중 CPU 시스템이 침묵 상태에 있을 때, 모든 CPU는 메모리 및 입출력 인터페이스 자원에 대한 액세스를 일시 중단하고, 입출력 인터페이스로부터 개시되는 프리페치, 인터럽트 등은 작동 불능으로되고, 소프트웨어 사이클에서는 CPU의 명령 포인터가 제한된다.
메인 CPU가 복수의 코어를 가지고 있으면, 시스템 침묵 범위는 메인 CPU를 포함하는 모든 CPU이다. 메인 CPU는 하나 이상의 코어가 침묵하지 않도록 남겨두고 나머지 코어는 침묵하게 할 수 있다. 메인 CPU의 침묵 상태가 아닌 코어는 후속 작업을 수행하는 데 사용된다.
메인 CPU가 단일 코어를 가지고 있으면, 시스템 침묵은 메인 CPU는 침묵하지 않게 하고 다른 CUP의 모든 코어가 침묵하게 한다는 것을 의미한다. 메인 CPU가 단일 코어를 가지는 것은 희귀한 경우이므로, 이하의 설명에서는 메인 CPU가 복수의 코어를 가지는 시나리오를 예로 사용한다.
CPU(234)는 침묵으로 되어야 하는 코어가 침묵으로 되게 만들 수 있다. 선택적 방식은 다음과 같다: CPU(234)는 다른 CPU의 침묵 레지스터를 직접 수정하고, 침묵 레지스터가 수정된 CPU는 침묵으로 된다. 다른 선택적 방식은 다음과 같다: CPU(234)는 전체 다중 CPU 시스템 내의 침묵 패킷을 브로드캐스팅하고, 패킷을 수신하는 CPU는 침묵 작동을 시작하고 CPU 자체를 침묵 상태로 설정한다. 이하에서는 후자의 방식을 예로 해서 상세히 설명한다.
침묵 커맨드는 2가지 유형이 있다. 한 유형은 다음과 같다: 침묵 커맨드는 다른 CPU의 침묵 레지스터의 구성을 직접 수정할 수 있고, 침묵 레지스터가 침묵으로 구성되는 CPU는 침묵 상태로 들어간다. 다음 유형은 다음과 같다: 침묵 커맨드는 다른 CPU의 코어에 송신된 명령이고, 명령을 수신하는 CPU의 코어는 침묵 프로그램을 시작하여 CPU가 침묵하게 된다.
CPU(234)와 동일한 QPI 도메인에 있는 CPU(231), CPU(232) 및 CPU(233)에 있어서, CPU(234)는 하나의 도메인 내의 CPU 사이에 있는 QPI 버스를 사용해서 침묵 패킷을 전송한다. CPU(231) 및 CPU(233)는 CPU(234)의 침묵 패킷을 직접 수신할 수 있고, CPU(232)는 CPU(231) 또는 CPU(233)에 의해 포워딩된 침묵 패킷을 수신할 수 있다.
CPU(234)와 동일한 QPI 도메인에 있는 CPU에 있어서, 예를 들어, QPI 도메인(24) 및 QPI 도메인(25) 내의 CPU에 있어서, CPU(234)는 NC 그룹에 침묵 패킷을 전송하고, NC 그룹은 QPI 도메인(24) 및 QPI 도메인(25)에 침묵 패킷을 전송한다. 침묵 패킷을 수신하는 CPU는 그 도메인에서 침묵 패킷을 포워딩하고, 마지막으로, 모든 CPU는 침묵 패킷을 수시한다.
예를 들어, CPU(234)는 NC(211) 및 NC(212)를 사용해서 CPU(231)에 침묵 패킷을 송신한다. CPU(231)는 CPU 사이에 있는 QPI 버스를 사용해서 침묵 패킷을 계속 송신하며, 이에 따라 QPI 도메인(24) 내의 모든 CPU는 침묵 패킷을 수신한다. NC(212)는 NC(213)에 침묵 패킷을 추가로 송신하고, NC(213)은 CPU(251)에 침묵 패킷을 송신한다. CPU(251)는 CPU 사이에 있는 QPI 버스를 사용해서 침묵 패킷을 계속 송신하고, 이에 따라 QPI 도메인(25) 내의 모든 CPU는 침묵 패킷을 수신한다.
S304. 메인 CPU는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 모든 CPU가 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 것으로 전환할 수 있도록, 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 모든 CPU에 루트 구성을 수정하도록 명령한다.
CPU의 루트 레지스터는 루트 정보를 기록할 수 있고, 여기서 루트 정보는 메모리 어드레스와 CPU 포트 간의 대응관계일 수 있다. NC의 루트 레지스터 역시 루트 정보를 기록하며, 여기서 루트 정보는 메모리 어드레스와 NC 포트 간의 대응관계일 수 있다. CPU와 NC 모두는 루트 정보에 기록되어 있는 포트에 따라 요구 패킷을 송신하며, 이에 따라 요구 패킷은 루트를 따라 송신된다. 루트가 통과하는 노트의 루트 레지스터 내의 루트 정보를 수정함으로써, 액세스 요구의 전체 전송 경로가 변경될 수 있다. 루트 레지스터는 CPU의 캐시에 통합될 수 있다.
제2 NC 그룹을 사용해서 패킷을 전송하는 CPU가 제2 NC 그룹 내의 NC에 직접 연결되는 식으로 전환이 수행되어야 하면, 그 전환은 CPU가 교차 도메인 액세스를 위해 사용하는 포트를 구성하는 것이라 하거나, 또는 직접 연결은 없지만 제2 NC 그룹을 사용해서 패킷을 전송하는 CPU와 제2 NC 그룹 내의 NC 사이에 다른 CPU가 존재하도록 전환이 수행되어야 하면, 그 전환은 CPU가 교차 도메인 액세스를 위해 사용하는 포트를 다른 CPU에 연결된 포트로 구성하는 것이라 한다. 액세스 요구를 수신한 후, 다른 CPU는 그 액세스 요구를 제2 NC 그룹 내의 NC에 포워딩할 수 있다.
예시적으로, CPU(231)에 의해 CPU(241)에 액세스하는 것은 교차 도메인 액세스이고, 원래 구성된 액세스 포트가 CPU(231)의 포트 중 NC(211)에 연결된 포트인 것으로 가정한다. 루트 레지스터가 수정된 후, 새로운 루트 구성에서, 포트는 CPU(231)의 포트 중 CPU(232)에 연결된 루트로 변경된다. 액세스가 CPU(232)에 도착한 후, CPU(232)의 루트 구성에서, CPU(241)에 액세스하기 위해 사용되는 포트는 CPU(232)와 CPU(221) 사이의 포트이다. 그러므로 CPU(232)는 NC(221)에 그 액세스를 포워딩할 수 있고, NC(221)은 계속해서 그 액세스를 포워딩하며, 이에 따라 그 액세스는 CPU(241)에 도착할 수 있다. 전체 액세스 경로는 CPU 231――CPU 232――CPU 233――NC 221――CPU 242――CPU 241이다. 메인 CPU는 다중 CPU 시스템 내의 CPU 간의 위상 관계 및 각각의 CPU의 발신 포트 구성을 기록하므로, 메인 CPU(234)는 CPU(231)의 액세스 요구를 CPU(234)가 아닌 CPU(232)로 포워딩하는 것으로 선택한다는 것에 유의해야 한다. 그러므로 CPU(232)를 사용함으로써, 교차 도메인 액세스는 NC 그룹(22)을 사용해서 상대적으로 직접 수행될 수 있고, 그런 다음 루트 포트를 CPU(232)에 대응하는 포트로 구성하도록 CPU(234)에 명령한다는 것을 학습할 수 있다.
당연히, 다른 정책에 따라, 다른 실시예에서, 메인 CPU는 또한 CPU(231)가 CPU(234)로 액세스 요구를 포워딩하도록 선택할 수 있고, 그런 다음 CPU(233)는 NC(221)에 액세스 요구를 포워딩할 수 있다.
CPU(234)는 CPU(252)에 액세스하는 것으로 가정하고, 원래 구성된 포트는 CPU(234)와 NC(211) 사이의 포트인 것으로 가정한다. 루트 레지스터가 수정된 후, 새로운 구성에서, 포트는 CPU(234)와 NC(221) 사이의 포트로 변경된다.
CPU의 포트(예를 들어, CPU는 3개 이상의 포트를 가질 수 있다)는 서로 다른 다음 노드(예를 들어 노드는 NC 또는 CPU이다)에 각각 연결된다는 것을 알 수 있다. CPU의 포트로부터 액세스 요구를 수신한 후, 다른 노드는 액세스될 싱크 CPU에 그 액세스 요구가 도착할 때까지 계속해서 포워딩한다. 포워딩되는 프로세스에서, CPU의 포트로부터 송신된 액세스 요구는 제2 NC 도메인을 통과할 수 있고, 이 포트는 제2 NC 도메인을 사용해서 교차 도메인 액세스를 수행하는 포트이다. 그러므로 루트 레지스터에서, 다른 도메인 내의 CPU에 액세스하는 데 사용되는 포트는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 포트로 구성될 수 있으며, 여기서 다른 도메인 내의 CPU는 CPU에 의해 관리되는 메모리 어드레스로 표시될 수 있다.
단계 S304 후에, NC는 제거될 수 있다.
S305. 메인 CPU는 루트 정보를 수정하는 것을 완료한 후 시스템 침묵을 취소한다.
침묵을 취소하는 단계는 침묵 프로세스와 유사하며, 다음의 단계를 포함한다: CPU(234)는 CPU의 침묵 코어의 침묵 상태를 취소하고, CPU는 침묵 취소 커맨드를 사용함으로써, 다른 CPU의 침묵 상태를 취소하도록 다른 CPU의 구성을 수정한다. QPI 도메인(23) 내의 다른 CPU에 있어서, 침묵 취소 커맨드는 NC에 의해 포워딩될 필요 없이 CPU(234)에 의해 직접 송신될 수 있으며, 다른 QPI 도메인 내의 CPU에 있어서, CPU(234)에 의해 송신된 침묵 취소 커맨드는 NC(22)에 의해 포워딩될 수 있다. 메인 CPU가 시스템 침묵을 취소하는 프로세스는 시스템 침묵을 개시하는 프로세스와 유사하며, 이에 대해서는 단계 S303을 참조하면 된다. 차이점은 침묵 커맨드가 NC 그룹(21)에 의해 전송될 수 있으나, 침묵 취소 커맨드는 NC 그룹(22)에 의해서만 전송될 수 있다는 점이다.
침묵 취소 커맨드는 2가지 유형이 있다. 한 유형은 다음과 같다: 침묵 취소 커맨드는 다른 CPU의 상태 관련 레지스터 구성을 직접 수정할 수 있고, 레지스터 구성이 취소되는 CPU는 침묵 상태를 취소한다. 다른 유형은 다음과 같다: 침묵 취소 커맨드는 다른 CPU의 코어에 송신된 명령이고, 그 명령을 수신하는 CPU의 코어는 CPU가 침묵을 취소하도록 침묵 프로그램을 시작한다.
시스템 침묵이 취소된 후, 각각의 CPU는 정상 실행을 복원한다. 이 경우, 루트 수정으로 인해, 다중 CPU 시스템 내의 모든 CPU는 CN 그룹(22)을 통과하고, 이어서 QPI 도메인 간에 패킷을 송수신할 때 NC 그룹(21)을 더 이상 사용하지 않는다. NC 그룹(21) 내의 NC(211)가 제거된 후, NC 그룹(21)을 사용해서 교차 도메인 액세스를 원래 송수신하는 CPU가 QPI 도메인 사이에서 패킷을 계속 송수신할 수 있다. 즉, 전술한 방법은 다중 CPU 시스템에서 NC의 즉시 제거를 실행한다.
실시예 2
도 4를 참조하면, 이하에서는 기존의 NC 그룹에 NC를 부가하는 프로세스에 대해 설명한다. 도 2의 시스템 아키텍처를 예로 계속 사용하며, CPU(234)가 메인 CPU이다. NC 그룹(21)에 부가된 새로운 NC(211)를 이 실시예에서는 실시예 1에서 제거된 NC(211)과 구별하기 위해 다른 목표 NC라 한다. 이 실시예는 실시예 1 후에 수행될 수 있고, NC(211)을 대체하는 것과 등가이다. 구체적으로 지적하지 않는 경우, 실시예 1에서의 관련 설명이 이 실시예에도 그대로 적용될 수 있다.
이 실시예는 다음과 같이 사용될 수 있다: 다른 목표 NC가 제1 NC 그룹에 부가된 후, 제1 NC 그룹을 재사용하고, 다중 CPU 시스템에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를, 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하게끔 전환하도록 제어한다.
단계 S401: 메인 CPU는 다른 목표 NC가 제1 NC 그룹에 부가되는 것을 검출한다.
예시적으로, 다중 CPU 시스템은 각 슬롯의 상태를 주기적으로 검출하고, 여기서 슬롯은 NC를 삽입하는 데 사용되며, 슬롯의 상태는 NC가 슬롯에 존재하는지를 지시하는 데 사용된다. 이 방식에서, 새로운 NC가 슬롯에 부가될 때, 상태는 변할 수 있으며, 메인 CPU는 새로운 NC의 삽입을 검출할 수 있다.
이상의 설명은 예시에 불과하다. 본 발명은 메인 CPU가 다른 목표 NC와 제1 NC 그룹과의 연결을 검출하는 방법을 제한하지 않는다. 예를 들어, 본 발명의 이 실시예에서, 사용자는 메인 CPU를 촉발하는 버튼을 사용해서 각 슬롯의 상태를 검출할 수 있다.
S402. 메인 CPU는 CPU에 의해 기록된 데이터 상태를 I 상태로 구성하도록 CPU에 명령하기 위해, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신한다.
이 단계에서, I 상태로 구성되어야 하는 CPU는 후속의 단계에서 루트 전환을 수행할 준비가 되어 있는 CPU이다. 데이터 상태를 I 상태로 구성하는 작동은: I 상태로 구성될 필요가 있는 CPU의 캐시를 클리어하는 단계; 및 I 상태로 구성될 필요가 있는 CPU가 통과하는 NC가, CPU의 관련 S 상태 및 E 상태를 I 상태로 구성하고, 이에 따라 CPU의 S 상태 및 E 상태가 I 상태로 변경되는 단계를 포함한다. 상세한 프로세스에 대해서는 단계 S302를 참조하면 된다.
제1 NC 그룹으로 전환될 CPU를 선택하는 다른 정책들이 있을 수 있다. 그 선택은 2개의 NC 그룹의 성능 또는 CPU 사이에서 액세스가 수행될 때 통과하는 노드의 수에 따라 이루어질 수 있다.
S403. 메인 CPU는 시스템 침묵을 개시한다.
시스템 침묵 프로세스에 대해서는 단계 S303을 참조하면 된다. 단계 S303과의 차이점은 다음과 같다: 단계 S303에서의 침묵 정보는 NC 그룹(21)을 사용해서 도메인 간에 전파될 수도 있고 NC 그룹(22)을 사용해서 도메인 간에 전파될 수도 있으며, 그렇지만, 단계 S403에서, NC 그룹(21)은 작업하지 않으며, 침묵 정보는 NC 그룹(32)을 사용해서만 도메인 갓에 전파될 수 있다.
S404. 다른 목표 NC를 활성화하여 다른 목표 NC와 제1 NC 그룹 내의 원래의 NC 간의 위상 관계를 구축한다.
루트 레지스터를 구성함으로써, 다른 목표 NC와 제1 NC 그룹 내의 적어도 하나의 원래의 NC 간에 포워딩 관계가 구축된다. 제1 NC 그룹이 완전-상호접속 구조(full-interconnect structure)를 사용하면, 그 구축된 포워딩 관계는 다른 목표 NC와 제1 NC 그룹 내의 모든 NC 간의 포워딩 관계이다. 이 방법에서, 다른 목표 NC에 의해 수신된 데이터는 다른 NC에 포워딩될 수 있고, 다른 NC는 그 데이터를 다른 목표 NC에 포워딩할 수 있다.
S405. 메인 CPU는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를, 교차 도메인 액세스가 제1 NC 그룹을 사용해서 수행되는 식으로 루트를 변경하도록 명령을 사용하여 제어한다.
구체적으로, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU의 루트 레지스터 구성이 수정되고, 여기서 적어도 하나의 CPU는 데이터 상태를 단계 S402에서의 I 상태로 구성하는 CPU를 포함하고, I 상태에서의 원래의 CPU도 포함한다. 루트 레지스터에 기록되면서 다른 도메인 내의 CPU에 액세스하는 포트는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 포트로 수정된다.
제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에서, 데이터 상태는 이미 단계 S402에서의 I 상태로 구성되었고, 그러므로 루트 정보는 이 단계에서 수정될 수 있다.
이 단계에 대해서는 단계 304를 참조하면 되므로 이에 대해서는 여기서 제공하지 않는다.
제1 NC 그룹으로 전환될 특정한 루트는 정책에 따라 변경될 수 있으며, 본 발명의 이 실시예에서 제한되지 않는다는 것에 유의해야 한다. 예를 들어, 2개의 NC 그룹을 통과하는 루트의 수는 2개의 NC 그룹의 성능에 따라 비례해서 할당될 수도 있고, 상대적으로 적은 수의 CPU/NC를 횡단하는 경로는 루트의 양 종점 사이를 횡단하는 CPU/NC의 수에 따라 루트로서 선택되고 구성될 수도 있다.
예시적으로, CPU(231)가 CPU(241)에 액세스한다. CPU(231)의 원래의 루트 정보에 따르면, 다음 노드는 CPU(232)이고, 전체 액세스 경로는 CPU 231――CPU 232――NC 221――NC 222――CPU 242――CPU 241일 수 있다. 루트 레지스터가 수정된 후, 루트 레지스터 내의 다음 노드는 NC(211)로 구성되며, 새로운 루트는 CPU 231――NC 211――NC 212――CPU 241이다. 다른 예에서, CPU(234)는 CPU(252)에 액세스한다. CPU(234)의 원래의 루트 구성에서, 다음 노드는 CPU(233)이고, 전체 액세스 경로는 CPU 234――CPU 233――NC 221――NC 222――NC 223――CPU 252일 수 있다는 것에 유의해야 한다. 루트 레지스터가 수정된 후, 루트 레지스터 내의 다음 노드는 NC(211)이고, 전체 액세스 경로는 CPU 234――NC 211――NC 212――NC 213――CPU 251――CPU 252로 변경될 수 있다.
이 단계에서, 선택적 방식은 다음과 같다: 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 CPU 중에서, 제1 NC 그룹에 직접 연결된 CPU는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하도록 전환된다.
S406. 루트가 수정된 후, 메인 CPU는 시스템 침묵을 취소한다.
CPU(234)는 CPU의 침묵 코어의 침묵 상태를 취소하고, CPU(234)는 침묵 취소 커맨드를 사용함으로써, 다른 CPU의 침묵 상태를 취소하도록 다른 CPU의 구성을 수정한다. 침묵을 취소하는 프로세스에 대한 상세한 설명에 대해서는 S305를 참조한다. 다중 CPU 시스템의 시스템 침묵이 취소된 후, 각각의 CPU는 정상 실행을 복원하고, 다른 목표 NC가 부가된다.
이상의 단계는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU가 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하도록 전환하는 것을 실행한다.
본 발명의 이 실시예는 루트 전환 방법을 추가로 제공한다. 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU 중에서, 도메인 간에 액세스되는 다른 싱크 CPU에 의존해서, 일부의 싱크 CPU에 대한 교차 도메인 액세스는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하도록 전환되고, 다른 싱크 CPU에 대한 교차 도메인 액세스는 여전히 제2 NC 그룹을 사용해서 수행된다. 이하에 상세히 설명한다.
이 실시예의 단계 S402에서 CPU의 루트 레지스터에 기록되어 있는 모든 데이터 상태는 I 상태로 구성될 수 있다. I 상태로 구성될 필요가 있는 데이터 상태에 의해 표시는 데이터는 다른 CPU에서 가져온 것일 수 있다. 그러므로 이 단계는 다음과 같이 실행될 수 있다: 데이터 상태는 다른 데이터 소스에 따라 그룹화되고, 일부의 CPU에서 가져오는 데이터의 데이터 상태는 I 상태로 구성되며, 다른 CPU에서 가져오는 데이터의 대응하는 상태는 그대로 유지된다.
즉, 단계 S402는 S407로 대체될 수 있다.
S407. 메인 CPU는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하며, 그 명령을 수신하는 CPU는 기록된 데이터 상태 중 일부를 무효 상태로 구성한다. 명령에 따라 무효 상태로 구성된 데이터 상태는 메인 CPU에 의해 액세스되었던 일부의 싱크 CPU에 대응하는 데이터 상태일 수 있다. 환언하면, 단일 CPU에 있어서, CPU에 의해 기록되어 있는 데이터 상태는 N개의 교차 도메인 싱크 CPU에서 가져오는 데이터의 데이터 상태를 포함한다. 이 단계에서, N개의 교차 도메인 싱크 CPU 중 M개의 교차 도메인 싱크 CPU에서 가져오는 데이터의 데이터 상태는 무효 상태로 구성되며, 여기서 M<N이다. 액세스된 싱크 CPU 및 액세스를 개시하는 CPU는 다른 QPI 도메인 내에 있다. 그러므로 액세스된 CPU를 간단히 교차 도메인 싱크 CPU라 한다.
구체적으로, 액세스된 데이터를 획득한 후, CPU는 그 액세스된 데이터의 데이터 상태를 CPU의 캐시에 기록할 수 있다. 액세스된 교차 도메인 싱크 CPU의 수가 N이라 하면, CPU는 N개의 CPU에서 가져오는 데이터의 데이터 상태를 기록한다. 이 단계에서, N개의 CPU 중 M개의 교차 도메인 싱크 CPU에서 가져오는 데이터의 데이터 상태가 무효 상태로 구성되고, 여기서 M<N이며, M과 N 모두는 자연수이다. 나머지 N-M개의 CPU의 데이터의 데이터 상태를 그대로 유지된다.
선택적으로, M개의 CPU는 제1 NC 그룹에 직접 연결된다. 단계 S408에서의 루트 전환 후, M개의 CPU에 대한 교차 도메인 액세스는 다른 CPU에 의한 포워딩 없이 수행될 수 있다.
CPU에 기록되어 있는 데이터 상태는 CPU에 의해 액세스되는 데이터의 데이터 상태이다. 데이터 상태는 CPU에 버퍼링되어 있는 데이터에 대응하고, 데이터를 가져오는 메모리 어드레스에 대응한다. 데이터를 가져오는 메모리 어드레스는 메모리 어드레스를 관리하는 CPU에 대응한다. 그러므로 데이터 상태는 데이터를 제공하는 CPU(싱크 CPU)에 대응할 수 있다.
이해를 쉽게 하기 위해, 여기서 추가의 해석을 제공한다: 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU 중, 각각의 CPU에 기록되어 있는 데이터 상태는 CPU에 의해 액세스된 적이 있는 데이터의 데이터 상태이고, CPU에 의해 액세스된 적이 있는 데이터는 다른 CPU에서 가져올 수 있으며, 여기서 CPU를 또한 액세스된 CPU 또는 싱크 CPU라 할 수 있다. 싱크 CPU 중, 총 N개의 CPU가 액세스를 개시하는 CPU(소스 CPU)의 QPI 도메인과는 다른 QPI 도메인에 있다. 이 실시예에서, N개의 CPU 중 M개의 싱크 CPU만의 데이터 상태가 무효 상태로 구성된다. 따라서, 후속의 단계에서, 루트 전환은 M개의 CPU 상에서 수행된다.
데이터의 데이터 상태를 가져오는 CPU를 선택하는 데는 복수의 알고리즘이 이용 가능하다. 예를 들어, 액세스 트랜잭션의 싱크 CPU와 소스 CPU 사이를 횡단하는 CPU 노드의 수에 따라, 소스 CPU가 제1 NC 그룹을 사용해서 싱크 CPU에 액세스할 때 상대적으로 적은 수의 다른 CPU가 횡단하면, 그 루트는 제1 NC 그룹으로 전환되고, 그렇지 않으면 제2 NC 그룹이 여전히 사용된다.
예를 들어, 도 2에 도시된 아키텍처에서, CUP(231)는 CPU(241)에 대응하는 데이터 상태 및 CPU(242)에 대응하는 데이터 상태를 기록한다. 단계 S402에 따라, CPU(231)의 모든 데이터 상태는 I 상태로 구성되고, 단계 2407에 따라, CPU(241)에 대응하면서 CPU(231)에 있는 데이터 상태만이 I 상태로 구성될 수 있으며, CPU(242)에 대응하는 데이터 상태는 그대로 유지된다.
단계 S402가 단계 S407로 대체되면, 단계 S405는 단계 S408로 대체되어야 한다.
S408. 메인 CPU는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에, 일부의 교차 도메인 싱크 CPU에 대한 교차 도메인 액세스를 제1 NC 그룹을 사용해서 수행되는 교차 도메인 액세스로 전환하도록 명령한다. 즉, 단계 S407에서 I 상태로 구성된 데이터 상태에 대응하는 M개의 CPU에 대한 교차 도메인 액세스는 제1 NC 그룹을 사용해서 수행되는 교차 도메인 액세스로 전환된다. 구체적으로, CPU의 루트 레지스터에서 교차 도메인 액세스를 위한 포트는 그 CPU에서 목표 NC에 연결된 포트로 구성된다. 나머지 데이터 상태에 대응하는 교차 도메인 싱크 CPU에 대한 액세스는 그대로 유지될 수 있다.
단계 S406에 주어진 예를 계속 사용해서, CPU(231)가 CPU(241)에 액세스하는 것은 제1 NC 그룹을 사용해서 수행되는 액세스로 전환될 수 있으며, CPU(231)가 CPU(242)에 액세스하는 것은 제2 NC 그룹을 여전히 사용한다.
단계 S401, 단계 S407, 단계 S403, 단계 S408, 및 단계 S405에 의해 형성된 실시예(도 4에서의 방식 2)에서, 루트 관리는 더 정교해지고 루트를 사용해서 수행되는 교차 도메인 CPU 액세스의 효율성은 단계 S401, 단계 S402, 단계 S403, 단계 S404, 및 단계 S405에 의해 형성되는 실시예(도 4에서의 방식 1)에 비해 향상될 수 있다.
실시예 1 및 실시예 2는 NC 즉시 제거 프로세스 및 NC 즉시 부가 프로세스를 각각 설명하고 있다. 함께 결합되면, 2개의 프로세스는 NC 핫-스와프 프로세스이다. 이것들은 또한 2개의 독립적인 프로세스로 사용될 수 있다. 단일 NC 또는 복수의 NC가 동시에 즉시 부가될 수도 있고 즉시 제거될 수도 있다.
실시예 3
실시예 1에서, 목표 NC가 제거된 후, 목표 NC가 위치하는 전체 NC 그룹은 더 이상 데이터를 포워딩하지 않는다. 이 실시의 특징은 고속 전환 속도와 단순한 작동이다.
도 5를 참조하면, 이 실시예는 다른 NC 즉시 제거 방법을 제공한다. 목표 NC가 제거된 후, 목표 NC가 위치하는 NC 그룹 내의 나머지 NC 중 적어도 하나의 NC는 정상적으로 작업을 계속할 수 있으며, 즉 데이터를 포워딩할 수 있다. 실시예 1에서의 솔루션과 비교해 보면, NC의 활용 효율성이 개선된다. 이하에서는 본 발명의 이 실시예를 도 2의 아키텍처를 더 참조하여 상세히 설명한다.
S501. 메인 CPU는 제1 NC 그룹 내의 목표 NC가 제거되어야 한다는 것을 지시하는 신호를 수신한다.
목표 NC는 제거되어야 할 NC이고, 즉 이 실시예에서는 NC(211)이다. 이 단계는 단계 S301과 같으므로 여기서 반복 설명하지 않는다.
S502. 메인 CPU는 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU에, CPU에 의해 기록된 데이터 상태를 무효 상태로 구성하도록 명령한다.
이 단계는 단계 S302와 유사하다. S302의 내용을 참조하면 되므로 이 단계에 대해서는 여기서 설명하지 않는다. 차이점은 단계 S302에서는, 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 CPU의 데이터 상태가 무효 상태로 구성되지만, 단계 S502에서는 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 CPU의 데이터 상태가 무효 상태로 구성되고, 목표 NC가 아닌 제1 NC 그룹 내의 다른 NC를 사용해서 교차 도메인 액세스를 수행하는 다른 CPU의 기록된 데이터 상태는 그대로 유지될 수 있다는 점이다. 그러므로 본 특허에서는 영향받은 CPU의 범위가 축소된다.
목표 NC를 사용해서 교차 도메인 액세스를 수행하는 CPU는 목표 NC를 직접적으로 사용해서 교차 도메인 액세스를 수행하는 CPU를 포함하며, 다른 NC 또는 다른 CPU에 의해 액세스 요구가 포워딩된 후 목표 NC를 간접적으로 사용해서 교차 도메인 액세스를 수행하는 CPU도 포함한다.
S503. 메인 CPU는 시스템 침묵을 개시한다.
메인 CPU가 복수의 코어를 가지면, 시스템 침묵 범위는 메인 CPU를 포함한 모든 CPU이다. 전술한 바와 같이, 메인 CPU가 복수의 코어를 가지고 있으면, 메인 CPU는 적어도 하나의 코어를 침묵으로 되지 않도록 남겨 둘 수 있고, 나머지 코어가 침묵으로 되며, 다른 CPU의 모든 코어가 침묵으로 된다. 메인 CPU에서 침묵 상태에 있지 않은 코어가 후속의 작동을 수행하는 데 사용된다.
침묵 프로세스는 S303과 같으므로 여기서 상세히 설명하지 않는다.
S504. 메인 CPU는 목표 NC를 격리하기 위해, 제1 NC 그룹 내의 나머지 NC에 루트 구성을 갱신하도록 명령한다.
목표 NC는 제거되어야 하므로, 제1 NC 그룹 내의 나머지 NC 간의 신호 전송 채널이 변경되어야 한다. 제1 NC 그룹 내의 나머지 NC에 대한 루트 구성에 의해, 목표 NC는 다른 NC가 목표 NC에 정보(예를 들어 패킷 또는 관리 정보)를 계속 송신하는 것을 방지하도록 격리될 수 있다. 그러므로 나머지 NC에 의해 기록된 루트는 갱신되어야 한다. 제1 NC 그룹 내의 모든 나머지 NC가 루트 구성을 갱신할 필요는 없다. 예를 들어, 목표 NC에 직접 연결된 루트 구성은 갱신될 수 있으나 나머지 NC의 루트 구성은 그대로 유지된다.
선택적으로, 이 단계에서 제1 NC 그룹을 조정하는 결과는 목표 NC가 결코 존재하지 않는 경우에 제1 NC 그룹 내의 각각의 NC의 루트 구성과 동일하다.
이 실시예에서는 NC(211)가 제거된 후, NC(214), NC(212), 및 NC(211) 간의 신호 채널이 사라진다. 그러므로 NC 그룹(21)에서 제거되지 않는 NC의 루트는 재구성되어야 하는데, 이는 NC(211)에 직접적으로 연결되어 있는 NC(214) 및 NC(212) 내의 NC(211) 관련 루트 정보의 삭제를 포함한다. 예를 들어, NC(214)의 원래의 루트 구성에서, QPI 도메인(23)이 액세스되어야 하면, 횡단되어야 하는 다음 NC는 NC(211)이다. NC(211)은 제거되어야 한다. 그러므로 NC(214)의 루트 구성에서, QPI 도메인(23)에 액세스하기 위해 횡단되어야 하는 다음 NC는 NC(212)로 구성될 수 있다.
또한, CPU로부터 NC 그룹으로의 데이터 전송이 부가되면, 싱크 NC에 대한 루트에 관한 정보가 대응하는 NC에 부가될 수 있다. 새로 부가된 루트 정보는 싱크 CPU를 가리키는 포트를 기록한다. 그 루트 정보는 액세스 트랜잭션을 수행하는 프로세스에서 학습함으로써 NC에 의해 획득될 수 있다. 정보가 부가되지 않으면, 액세스 요구가 브로드캐스트 방식으로 싱크 CPU에 송신될 수도 있다.
예를 들어, 원래 CPU(231)는 NC(211)를 사용해서 CPU(241)에 대한 교차 도메인 액세스를 수행한다. NC(211)가 제거된 후, CPU(231)로부터의 교차 도메인 액세스 요구는 CN(221)에 의해 인수된다. 그러므로 CPU(241)에 액세스하기 위한 포트 정보는 NC(221)의 루트 정보에 부가될 수 있다.
이 단계에서 NC 그룹(21)을 조정하는 결과는 NC(211)가 결코 존재하지 않은 경우에 NC 그룹(21)이 각각의 QPI 도메인에 접속된 후 NC 그룹(21) 내의 각각의 NC의 루트 구성과 동일하다.
전술한 바는 완전한 설명보다 단순한 예이다. 특히, QPI 도메인(21)에 더 많은 NC가 있는 경우, NC 그룹(21) 내의 NC의 루트 구성의 조정이 더 복잡하다.
단계 S504 및 후속 단계 S505는 순서에 관계없으며, 예를 들어, 이 단계들은 동시에 수행될 수도 있고 어느 한 단계가 먼저 수행될 수도 있다.
S505. 메인 CPU는 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 모든 CPU에, 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 모든 CPU가 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 것으로 전환하도록 명령한다.
메인 CPU는 전체 다중 CPU 시스템의 위상을 학습하는데, 즉 메인 CPU는 CPU 간의 연결 관계와 각각의 CPU가 외부 액세스를 위해 사용하는 포트를 알게 된다. 이 단계는 목표 NC가 다른 QPI 도메인에 액세스하는 데 사용하는 포트를 변경함으로써 실행될 수 있다.
이 단계의 원리는 단계 S304와 같다. S304를 참조하면 되므로 이에 대해서는 여기서 상세히 설명하지 않는다. 차이점은 이 단계에서는 더 적은 수의 CPU가 전환된다는 점인데, 즉 더 적은 수의 CPU의 루트 구성이 변경된다.
단계 S505 이후, NC가 제거될 수 있다.
S506. 메인 CPU는 시스템 침묵을 취소한다.
이 단계에 대해서는 단계 S405를 참조하면 된다.
실시예 4
도 6을 참조하면, 이 실시예에서, 제1 NC 그룹 내의 기존의 NC가 작업 중인 경우, 제1 NC 그룹 내의 기존의 NC와 목표 NC의 연합 작업을 실시하기 위해 제1 NC 그룹에 새로운 NC가 부가된다. 목표 NC는 제1 QPI 도메인에 연결될 수 있다. 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU는 목표 NC를 사용해서 교차 도메인 액세스를 수행하도록 전환된다.
예를 들어, 실시예 3에서 NC(211)가 즉시 제거된 후, 새로운 NC(211)가 NC 그룹(21)에 즉시 부가된다. 그러므로 NC(211)에 직접 연결되는 CPU(231)는 목표 NC를 사용해서 다른 QPI 도메인에 액세스하도록 전환될 수 있다. 이 실시예는 실시예 2와 유사하되 상대적으로 범위가 좁다는 점이 다르다. 이 실시예에서는, 교차 도메인 액세스 루트가 전환되는 CPU가 제1 QPI 도메인 내의 CPU에 제한되나, 실시예 2에서는, 이러한 제한이 부과되지 않는다. 또한, 이 실시예에서는 루트가 전환되는 CPU는 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 것으로 전환되지만, 실시예 2에서는, 루트가 전환되는 CPU는 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 것으로 전환된다. 이 실시예의 주요부는 실시예 2와 유사하므로, 이 실시예의 대부분의 내용에 대해서는 실시예를 참조하면 된다.
이 실시예는 실시예 3 후에 수행되어 NC 대체 방법을 연합해서 형성할 수 있다. 이 실시예는 또한 새로운 NC가 정상적으로 실행 중인 NC 그룹에 부가되도록 개별적으로 수행될 수도 있다.
S601. 메인 CPU는 목표 NC가 제1 NC 그룹에 부가되는 것을 검출한다.
단계 S601이 수행될 때 정상적으로 작업 중인 NC가 제1 NC 그룹에 존재한다. 즉, 적어도 하나의 NC가 데이터를 포워딩하기 위해 준비된 상태에 있거나, 심지어 데이터를 포워딩 중인 상태에 있다. 실시예 2에서, 제1 NC 그룹 내의 모든 NC는 단계 401이 수행될 때에는 더 이상 작업하지 않는다.
이 단계는 단계 S401과 동일하며 이에 대해서는 여기서 설명하지 않는다.
S602. 메인 CPU는 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 기록된 데이터 상태를 I 상태로 구성하도록 명령한다.
이 단계에서, I 상태로 구성되어야 하는 CPU는 후속의 단계에서 루트 전환을 수횅할 준비가 되어 있는 CPU이다.
다른 알고리즘을 사용하여 특정한 CPU를 선택할 수도 있다. 예를 들어, 목표 NC의 성능에 따라, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 일부의 CPU를 선택하여 목표 NC를 사용해서 패킷을 전송한다.
CPU에 기록된 데이터 상태를 I 상태로 구성하는 방법에 대해서는 단계 S402를 참조한다.
S603. 메인 CPU는 시스템 침묵을 개시한다.
시스템 침묵을 수행하는 방법에 대해서는 단계 S403을 참조한다.
S604. 목표 NC를 활성화하여 목표 NC와 제1 NC 그룹 내의 원래의 NC 간의 위상 관계를 구축한다.
단계 S404를 참조한다.
S605. 메인 CPU는 적어도 하나의 CPU가 제1 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 것으로 전환하도록, 적어도 하나의 CPU의 루트 구성을 수정하도록 적어도 하나의 CPU를 제어하는 명령을 송신한다. 구체적으로, 적어도 하나의 CPU 각각의 루트 레지스터의 루트 구성이 수정되어, 루트 레지스터에 기록되어 있으면서 다른 도메인 내의 CPU에 액세스하는 포트는 목표 NC를 사용해서 교차 도메인 액세스를 수행하는 포트로 구성되는데, 예를 들어, 적어도 하나의 CPU 중 목표 NC에 직접 연결된 포트로 구성된다.
이 단계에 대한 상세한 설명에 대해서는 단계 S405를 참조하면 되므로 이에 대해서는 여기서 설명하지 않는다. 차이점은: 단계 S405에서는 루트 구성이 수정되는 CPU가 위치하는 QPI 도메인이 결정되지 않지만, 이 실시예에서는 루트 구성이 수정되는 CPU가 제1 QPI 도메인에 위치한다는 점이다.
S606. 루트가 수정된 후, 메인 CPU는 시스템 침묵을 취소한다.
침묵을 취소하는 프로세스는 단계 S406과 유사하므로, 이에 대해서는 단계 S406을 참조하면 된다.
방식 1 및 방식 2는 2개의 다른 단계를 가진다. 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU 중, 도메인 사이에서 액세스되는 서로 다른 싱크 CPU에 의존해서, 일부의 싱크 CPU에 대한 교차 도메인 액세스는 제1 NC 그룹을 사용해서 수행되는 교차 도메인 액세스로 전환되며, 다른 싱크 CPU에 대한 교차 도메인 액세스는 여전히 제2 NC 그룹을 사용해서 수행된다. 단계 S602를 다음의 단계 S607로 대체하고 단계 S605를 단계 S608로 대체하는 것과 동일하다.
S607. 메인 CPU는 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하며, 그 명령을 수신하는 CPU는 기록된 데이터 상태 중 일부를 무효 상태로 구성한다. 환언하면, 단일 CPU에 있어서, CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU에서 가져오는 데이터의 데이터 상태이다. 이 단계에서, M개의 교차 도메인 싱크 CPU에서 가져오는 데이터의 데이터 상태는 무효 상태로 구성되며, 여기서 M<N이다.
이 단계에 대한 상세한 설명과 예에 대해서는 단계 S407을 참조하면 되므로 여기서는 설명하지 않는다. S407과 비교해 보면, 차이점은: 단계 S607에서는 데이터 상태가 무효 상태로 구성되는 CPU는 제1 QPI 도메인에 제한되지만, 단계 S407에서는 QPI 도메인 제한이 부과되지 않는다는 점이다.
S608. 메인 CPU는 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에, 일부의 싱크 CPU에 대한 교차 도메인 액세스를 제1 NC 그룹을 사용해서 교차 도메인 액세스로 전환하도록 명령한다. 예를 들어, 단계 S607에서 I 상태로 구성된 데이터 상태에 대응하는 CPU에 대한 교차 도메인 액세스는 목표 NC를 사용해서 수행되는 교차 도메인 액세스로 전환된다. 구체적으로, 교차 도메인 액세스를 수행하는 CPU의 루트 레지스터에서, 교차 도메인 액세스에 사용되는 포트는 목표 NC에 연결된, CPU의 포트로 구성되고, 나머지 데이터 상태에 대응하는 싱크 CPU에 대한 액세스는 그대로 유지된다.
이 단계에 대해서는 S408을 참조하면 된다.
전술한 실시예는 다중 CPU 시스템을 설명하였고 본 발명은 컴퓨터와 관련된 실시예를 추가로 제공하며, 여기서 컴퓨터는 전술한 다중 CPU 시스템을 포함하고 BIOS를 더 포함하며, 여기서 BIOS는 메인 CPU에 프로그램을 제공하며, 메인 CPU는 프로그램을 실행함으로써 관리 명령 및 제어 명령을 송신한다는 것에 유의해야 한다. CPU는 또한 CC 버스를 사용해서 연결되고 NC를 사용해서 통신을 수행하는 프로세서일 수 있다. QPI 버스는 QPI 도메인과 NC 그룹 사이에서 사용될 수 있으며, QPI 버스 또는 다른 버스가 NC 사이에서 사용될 수 있다.
본 발명의 각각의 관점 또는 각각의 관점의 가능한 실시 방식은 구체적으로 시스템, 방법, 또는 컴퓨터 프로그램 제품으로 실현될 수 있다. 그러므로 본 발명의 각각의 관점 또는 각각의 관점의 가능한 실시 방식은 하드웨어 전용 실시예, 소프트웨어 전용 실시예(펌웨어, 상주 소프트웨어 등을 포함함), 또는 소프트웨어와 하드웨어를 조합한 실시예의 형태를 사용할 수 있으며, 이것은 한결같이 "회로", "모듈", 또는 "시스템"으로 칭해진다. 또한, 본 발명의 각각의 관점 또는 각각의 관점의 가능한 실시 방식은 컴퓨터 프로그램 제품의 형태를 취할 수 있으며, 여기서 컴퓨터 프로그램 제품은 컴퓨터 판독 가능형 매체에 저장된 컴퓨터 판독 가능형 프로그램 코드라 한다.
컴퓨터 판독 가능형 매체는 컴퓨터 판독 가능형 신호 매체 또는 컴퓨터 판독 가능형 저장 매체일 수 있다. 컴퓨터 판독 가능형 저장 매체는 전자식, 자기식, 광학식, 전자기식, 적외선, 또는 반도체 시스템, 디바이스, 또는 장치, 또는 이것들의 임의의 조합, 예를 들어, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 소거 가능한 프로그래머블 리드 온리 메모리(EPROM 또는 플래시 메모리), 광섬유, 및 콤팩트 디스크 리드 온리 메모리(CD-ROM)를 포함하되 이에 제한되지 않는다.
컴퓨터 내의 프로세서는 컴퓨터 판독 가능형 매체에 저장된 컴퓨터 판독 가능형 프로그램 코드를 판독하여, 프로세서는 흐름도에서의 각각의 단계 또는 단계의 조합에 지정된 기능 및 작동을 수행할 수 있으며, 장치는 블록도 내의 각각의 블록 또는 블록의 조합에 지정된 기능 및 작동을 실행하도록 생성된다.
분명하게, 당업자는 본 발명의 다양한 수정 및 변형을 수행할 수 있다. 본 발명은 이러한 수정 및 변형이 이하의 특허청구범위 및 그 등가의 기술에 의해 규정되는 보호 범위 내에 있으면 이러한 수정 및 변형을 망라하도록 의도된다.

Claims (36)

  1. 다중 CPU 시스템을 관리하는 메인 CPU로서 기능하는 CPU로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(node controller, NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는,
    제1 NC 그룹 내의 하나의 NC가 제거되어야 할 때, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성(route configuration)을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있고,
    상기 메인 CPU는 구체적으로,
    기록된 데이터 상태를 무효 상태(invalid state)로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵(system silence)을 개시하고;
    발신 포트가 상기 제2 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 루트 레지스터 내의 상기 루트 구성을 수정하도록, 상기 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고; 그리고
    시스템 침묵의 취소를 개시하도록 구성되어 있는 것을 포함하는, CPU.
  2. 삭제
  3. 제1항에 있어서,
    상기 메인 CPU가 기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    데이터 상태 중 수정된 상태를 무효 상태로 구성하기 위해, 캐시 내의 데이터를 클리어(clear)하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고 - 상기 데이터 상태는 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - ; 그리고
    데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 공유 상태 및 독점 상태의 데이터 상태를 브로드캐스팅하도록 제1 NC 그룹 내의 모든 NC에 명령하도록 - 상기 데이터 상태는 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - 구성되어 있는 것을 포함하는, CPU.
  4. 제1항에 있어서,
    상기 메인 CPU가 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    상기 메인 CPU 내에 하나 이상의 보류 코어를 제어한 나머지 코어를 침묵으로 만들고, 상기 다중 CPU 내의 다른 CPU의 모든 코어를 시스템 침묵으로 만들도록 구성되어 있는 것을 포함하는, CPU.
  5. 제1항에 있어서,
    상기 메인 CPU는,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가되고 제1 NC 그룹 내의 원래의 NC와의 위상 관계(topological relationship)를 구축한 후, 상기 다중 CPU 시스템에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하게끔 제어하도록 추가로 구성되어 있는, CPU.
  6. 제1항에 있어서,
    상기 메인 CPU는,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가된 후, 기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU에 명령하고;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고;
    상기 새로운 NC와 상기 제1 NC 그룹 내의 원래의 NC 간의 위상 관계를 구축하고;
    상기 발신 포트가 상기 제1 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 상기 루트 레지스터 내의 상기 루트 구성을 수정하도록, 상기 적어도 하나의 CPU에 명령하며; 그리고
    시스템 침묵의 취소를 개시하도록 추가로 구성되어 있는, CPU.
  7. 제1항에 있어서,
    상기 메인 CPU는,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가되고 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축한 후,
    도메인 간에 액세스되는 서로 다른 교차 도메인 싱크 CPU에 따라 루트 구성을 수정함으로써, 일부의 교차 도메인 싱크 CPU에 대한 교차 도메인 액세스를 제1 NC 그룹을 사용해서 수행되는 교차-도메인 액세스로 전환하도록, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를 제어하도록 구성되어 있는, CPU.
  8. 제1항에 있어서,
    상기 메인 CPU는,
    새로운 NC가 제1 NC 그룹에 부가된 후, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하며 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고;
    상기 M개의 CPU의 상기 발신 포트가 상기 제1 NC 그룹이 상기 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록, 상기 적어도 하나의 CPU의 상기 루트 레지스터 구성을 수정하며; 그리고
    상기 루트 레지스터 구성의 수정을 종료한 후 시스템 침묵을 취소하도록 추가로 구성되어 있는, CPU.
  9. 제8항에 따른 다중 CPU 시스템으로서,
    상기 M개의 CPU는 제1 NC 그룹에 직접 접속되는, 다중 CPU 시스템.
  10. 제8항에 따른 다중 CPU 시스템으로서,
    상기 메인 CPU가 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하는 것은 구체적으로, 상기 메인 CPU가,
    캐시 내에 있는 데이터를 클리어하도록 상기 M개의 CPU 중 상기 적어도 하나의 CPU에 명령하며; 그리고
    상기 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 상기 M개의 교차 도메인 싱크 CPU에 대응하는 상기 기록된 데이터 상태 중 공유 상태 및 독점 상태를 브로드캐스팅하도록 제2 NC 그룹 내의 NC에 명령하도록 구성되어 있는 것을 포함하는, 다중 CPU 시스템.
  11. 컴퓨터로서,
    상기 컴퓨터는 제1항, 제3 내지 제5항 및 제8항 내지 제10항 중 어느 한 항에 따른 제1 QPI 도메인, 제2 QPI 도메인, 제1 NC 그룹, 및 제2 NC 그룹을 포함하고, 상기 컴퓨터는 BIOS를 추가로 포함하며,
    상기 BIOS는 메인 CPU가 명령을 생성하기 위해 필요로 하는 프로그램을 저장하는 데 사용되는, 컴퓨터.
  12. 다중 CPU 시스템을 관리하는 메인 CPU에 적용 가능한 다중 CPU 시스템 관리 방법으로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 다중 CPU 시스템 관리 방법은,
    제1 NC 그룹 내의 NC가 제거되어야 할 때, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계를 포함하고,
    상기 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 상기 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계는 구체적으로,
    기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계;
    발신 포트가 상기 제2 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 루트 레지스터 내의 상기 루트 구성을 수정하도록, 상기 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계; 및
    시스템 침묵의 취소를 개시하는 단계
    를 포함하는, 다중 CPU 시스템 관리 방법.
  13. 삭제
  14. 제12항에 있어서,
    기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계는 구체적으로,
    데이터 상태 중 수정된 상태를 무효 상태로 구성하기 위해, 캐시 내의 데이터를 클리어하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계 - 상기 데이터 상태는 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - ; 및
    데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 공유 상태 및 독점 상태의 데이터 상태를 브로드캐스팅하도록 제1 NC 그룹 내의 모든 NC에 명령하는 단계 - 상기 데이터 상태는 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 -
    를 포함하는, 다중 CPU 시스템 관리 방법.
  15. 제12항에 있어서,
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계는 구체적으로,
    상기 메인 CPU 내에 하나 이상의 보류 코어를 제어한 나머지 코어를 침묵으로 만들고, 상기 다중 CPU 내의 다른 CPU의 모든 코어를 시스템 침묵으로 만드는 단계
    를 포함하는, 다중 CPU 시스템 관리 방법.
  16. 제12항에 있어서,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가되고 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축한 후, 상기 다중 CPU 시스템에 있으면서 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하도록 제어하는 단계
    를 더 포함하는 다중 CPU 시스템 관리 방법.
  17. 제12항에 있어서,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가된 후, 기록된 데이터 상태를 무효 상태로 구성하도록, 제1 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU에 명령하는 단계;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계;
    상기 새로운 NC와 상기 제1 NC 그룹 내의 원래의 NC 간의 위상 관계를 구축하는 단계;
    발신 포트가 상기 제1 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 상기 루트 레지스터 내의 상기 루트 구성을 수정하도록, 상기 적어도 하나의 CPU에 명령하는 단계; 및
    시스템 침묵의 취소를 개시하는 단계
    를 더 포함하는 다중 CPU 시스템 관리 방법.
  18. 제12항에 있어서,
    상기 제거될 NC가 제거되고 새로운 NC가 제1 NC 그룹에 부가되고 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축한 후,
    도메인 간에 액세스되는 서로 다른 교차 도메인 싱크 CPU에 따라 루트 구성을 수정함으로써, 일부의 교차 도메인 싱크 CPU에 대한 교차 도메인 액세스를 제1 NC 그룹을 사용해서 수행되는 교차-도메인 액세스로 전환하도록, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU를 제어하는 단계
    를 더 포함하는 다중 CPU 시스템 관리 방법.
  19. 제12항에 있어서,
    새로운 NC가 제1 NC 그룹에 부가된 후, 제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하는 단계 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계;
    발신 포트가 상기 제1 NC 그룹이 교차-도메인 액세스를 위한 상기 NC 그룹으로 사용되는 것을 나타낼 수 있도록 상기 M개의 CPU의 상기 루트 레지스터 내의 상기 루트 구성을 구성하기 위해, 상기 적어도 하나의 CPU의 루트 레지스터 구성을 수정하는 단계; 및
    상기 루트 레지스터 구성의 수정을 종료한 후 시스템 침묵을 취소하는 단계
    를 더 포함하는 다중 CPU 시스템 관리 방법.
  20. 다중 CPU 시스템을 관리하는 메인 CPU로서 기능하는 CPU로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는,
    제1 NC 그룹 내의 하나의 NC가 제거되어야 할 때, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성(route configuration)을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있고,
    상기 메인 CPU가 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    기록된 데이터 상태를 무효 상태로 구성하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고;
    발신 포트가 상기 제2 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 루트 레지스터 내의 루트 구성을 수정하도록, 루트 구성을 갱신하여 상기 NC를 격리하도록 상기 제1 NC 그룹 내의 나머지 NC에 명령하고 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하며; 그리고
    시스템 침묵의 취소를 개시하도록 구성되어 있는 것을 포함하는, CPU.
  21. 삭제
  22. 제20항에 있어서,
    상기 메인 CPU가 기록된 데이터 상태를 무효 상태로 구성하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    데이터 상태 중 수정된 상태를 무효 상태로 구성하기 위해, 캐시를 클리어하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하고 - 상기 데이터 상태는 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - ; 그리고
    데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 공유 상태 및 독점 상태의 데이터 상태를 브로드캐스팅하도록 상기 NC에 명령하도록 - 상기 데이터 상태는 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - 구성되어 있는 것을 포함하는, CPU.
  23. 컴퓨터로서,
    상기 컴퓨터는 제20항 및 제22항 중 어느 한 항에 따른 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 NC 그룹, 및 제2 NC 그룹을 포함하고, 상기 컴퓨터는 BIOS를 추가로 포함하며,
    상기 BIOS는 메인 CPU가 명령을 생성하기 위해 필요로 하는 프로그램을 저장하는 데 사용되는, 컴퓨터.
  24. 다중 CPU 시스템을 관리하는 메인 CPU에 의해 사용되는 다중 CPU 시스템 관리 방법으로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 다중 CPU 시스템 관리 방법은,
    제1 NC 그룹 내의 하나의 NC가 제거되어야 할 때, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계를 포함하고,
    상기 NC를 사용해서 교차-도메인 액세스를 수행하는 다중 CPU 시스템 내의 모든 CPU를, 루트 구성을 수정함으로써, 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계는 구체적으로,
    기록된 데이터 상태를 무효 상태로 구성하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계;
    발신 포트가 상기 제2 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 루트 레지스터 내의 루트 구성을 수정하도록, 루트 구성을 갱신하여 상기 NC를 격리하도록 상기 제1 NC 그룹 내의 나머지 NC에 명령하고 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계; 및
    시스템 침묵의 취소를 개시하는 단계
    를 포함하는, 다중 CPU 시스템 관리 방법.
  25. 삭제
  26. 제24항에 있어서,
    기록된 데이터 상태를 무효 상태로 구성하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계는 구체적으로,
    데이터 상태 중 수정된 상태를 무효 상태로 구성하기 위해, 캐시를 클리어하도록, 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 명령하는 단계 - 상기 데이터 상태는 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 - ; 및
    데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 공유 상태 및 독점 상태의 데이터 상태를 브로드캐스팅하도록 상기 NC에 명령하는 단계 - 상기 데이터 상태는 상기 NC를 사용해서 교차-도메인 액세스를 수행하는 CPU에 의해 기록됨 -
    를 포함하는, 다중 CPU 시스템 관리 방법.
  27. 다중 CPU 시스템을 관리하는 메인 CPU로서 기능하는 CPU로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 메인 CPU는,
    제1 NC 그룹에 새로운 NC가 부가될 때, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있으며,
    상기 새로운 NC는 제1 QPI 도메인에 연결되고,
    상기 메인 CPU가 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    기록된 데이터 상태를 무효 상태로 구성하도록 상기 적어도 하나의 CPU에 명령하고;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하고;
    상기 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축하도록 상기 새로운 NC에 명령하고;
    발신 포트가 상기 제1 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록, 루트 구성을 수정하도록 상기 적어도 하나의 CPU에 명령하며; 그리고
    시스템 침묵의 취소를 개시하도록 추가로 구성되어 있는 것
    을 포함하는, CPU.
  28. 삭제
  29. 제27항에 있어서,
    상기 메인 CPU가, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하게끔 제어하도록 구성되어 있는 것은 구체적으로, 상기 메인 CPU가:
    제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하며 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ; 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하며; 그리고
    루트 레지스터에 있으면서 상기 M개의 CPU에 액세스하는 포트를, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하기 위해, 루트 구성을 수정하도록 상기 적어도 하나의 CPU에 명령하도록 구성되어 있는 것
    을 포함하는, CPU.
  30. 제29항에 있어서,
    상기 메인 CPU가, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하는 것은 구체적으로,
    상기 메인 CPU가:
    M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태 중 수정된 상태를 무효 상태로 설정하기 위해, 캐시 내에 있는 데이터를 클리어하도록 상기 M개의 CPU 중 상기 적어도 하나의 CPU에 명령하며; 그리고
    상기 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 상기 M개의 교차 도메인 싱크 CPU에 대응하는 상기 기록된 데이터 상태 중 공유 상태 및 독점 상태를 브로드캐스팅하도록 제2 NC 그룹 내의 NC에 명령하도록 추가로 구성되어 있는 것을 포함하는, CPU.
  31. 컴퓨터로서,
    상기 컴퓨터는 제27항, 제29항, 및 제30항 중 어느 한 항에 따른 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 NC 그룹, 및 제2 NC 그룹을 포함하고, 상기 컴퓨터는 BIOS를 추가로 포함하며,
    상기 BIOS는 메인 CPU가 명령을 생성하기 위해 필요로 하는 프로그램을 저장하는 데 사용되는, 컴퓨터.
  32. 다중 CPU 시스템을 관리하는 메인 CPU에 의해 사용되는 다중 CPU 시스템 관리 방법으로서,
    상기 다중 CPU 시스템은, 제1 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인, 제2 QPI 도메인, 제1 노드 제어기(NC) 그룹, 제2 NC 그룹을 포함하며, 제1 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 제2 NC 그룹은 제1 QPI 도메인 및 제2 QPI 도메인에 접속되며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 메인 CPU는 제1 QPI 도메인 또는 제2 QPI 도메인에 속하며, 상기 다중 CPU 시스템 관리 방법은,
    제1 NC 그룹에 새로운 NC가 부가될 때, 제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계를 포함하고,
    상기 새로운 NC는 제1 QPI 도메인에 연결되며,
    제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계는 구체적으로,
    기록된 데이터 상태를 무효 상태로 구성하도록 상기 적어도 하나의 CPU에 명령하는 단계;
    상기 다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계;
    상기 제1 NC 그룹 내의 원래의 NC와의 위상 관계를 구축하도록 상기 새로운 NC에 명령하는 단계;
    발신 포트가 상기 제1 NC 그룹이 교차-도메인 액세스를 위한 NC 그룹으로 사용되는 것을 나타낼 수 있도록 루트 레지스터 내의 루트 구성을 수정하도록, 상기 적어도 하나의 CPU에 명령하는 단계; 및
    시스템 침묵의 취소를 개시하는 단계
    를 포함하는, 다중 CPU 시스템 관리 방법.
  33. 삭제
  34. 제32항에 있어서,
    제1 QPI 도메인 내에 있으면서 제2 NC 그룹을 사용해서 교차-도메인 액세스를 수행하는 적어도 하나의 CPU를, 루트 구성을 수정함으로써, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 것으로 전환하도록 제어하는 단계는 구체적으로,
    제2 NC 그룹을 사용해서 교차 도메인 액세스를 수행하는 적어도 하나의 CPU에 명령을 송신하고, 기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하는 단계 - 상기 CPU에 의해 기록된 데이터 상태는 N개의 교차 도메인 싱크 CPU의 총수에 대응하고, M<N임 - ;
    다중 CPU 시스템 내의 모든 CPU를 침묵 상태로 구성하도록 시스템 침묵을 개시하는 단계; 및
    루트 레지스터에 있으면서 상기 M개의 CPU에 액세스하는 포트를, 상기 새로운 NC를 사용해서 교차-도메인 액세스를 수행하는 포트로 구성하기 위해, 상기 적어도 하나의 CPU에 루트 구성을 수정하도록 명령하는 단계
    를 포함하는, 다중 CPU 시스템 관리 방법.
  35. 제34항에 있어서,
    기록된 데이터 상태 중 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태를 무효 상태로 설정하도록 상기 적어도 하나의 CPU에 명령하는 단계는 구체적으로,
    M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태 중 수정된 상태를 무효 상태로 설정하기 위해, 캐시 내에 있는 데이터를 클리어하도록 상기 M개의 CPU 중 상기 적어도 하나의 CPU에 명령하는 단계; 및
    상기 M개의 교차 도메인 싱크 CPU에 대응하는 데이터 상태 중 공유 상태 및 독점 상태를 무효 상태로 구성하기 위해, 상기 M개의 CPU의 데이터의 상기 기록된 데이터 상태 중 공유 상태 및 독점 상태를 브로드캐스팅하도록 제2 NC 그룹 내의 NC에 명령하는 단계
    더 포함하며,
    상기 기록된 데이터 상태 구성은 상기 M개의 교차 도메인 싱크 CPU에 대응하는, 다중 CPU 시스템 관리 방법.
  36. 다중 CPU 시스템으로서,
    상기 다중 CPU 시스템은 적어도 2개의 신속 경로 상호접속(Quick-Path Interconnect, QPI) 도메인 제1 노드 제어기(NC) 그룹을 포함하며, 각각의 QPI 도메인은 적어도 하나의 CPU를 포함하고, 상기 제1 NC 그룹은 적어도 하나의 NC를 포함하고, 상기 제1 NC 그룹은 적어도 2개의 QPI 도메인에 연결되며,
    상기 다중 CPU 시스템은 제2 NC 그룹을 더 포함하며, 상기 제2 NC 그룹은 적어도 하나의 NC를 포함하고, 상기 제2 NC 그룹은 상기 적어도 2개의 QPI 도메인에 연결되며;
    상기 다중 CPU 시스템 내의 적어도 하나의 CPU는 다른 QPI 도메인 내의 제1 교차 도메인 싱크 CPU에 액세스할 때 CPU의 루트 구성에 따라 상기 제1 NC 그룹에 액세스 요구를 송신하도록 구성되어 있으며, 상기 제1 NC 그룹은 제2 QPI 도메인 내의 제1 교차 도메인 싱크 CPU에 상기 액세스 요구를 포워딩하는 데 사용되며; 그리고
    상기 다중 CPU 시스템 내의 적어도 하나의 CPU는 다른 QPI 도메인 내의 제2 교차 도메인 싱크 CPU에 액세스할 때 CPU의 루트 구성에 따라 상기 제1 NC 그룹에 액세스 요구를 송신하도록 구성되어 있으며, 상기 제1 NC 그룹은 제2 QPI 도메인 내의 제2 교차 도메인 싱크 CPU에 상기 액세스 요구를 포워딩하는 데 사용되는, 다중 CPU 시스템.
KR1020177012588A 2015-12-29 2015-12-29 Cpu 및 다중 cpu 시스템 관리 방법 KR102092660B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/099589 WO2017113128A1 (zh) 2015-12-29 2015-12-29 一种cpu及多cpu系统管理方法

Publications (2)

Publication Number Publication Date
KR20170093116A KR20170093116A (ko) 2017-08-14
KR102092660B1 true KR102092660B1 (ko) 2020-03-24

Family

ID=57216272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177012588A KR102092660B1 (ko) 2015-12-29 2015-12-29 Cpu 및 다중 cpu 시스템 관리 방법

Country Status (12)

Country Link
US (1) US11138147B2 (ko)
EP (2) EP3575977A1 (ko)
JP (1) JP6536677B2 (ko)
KR (1) KR102092660B1 (ko)
CN (2) CN111427827B (ko)
AU (1) AU2015412144B2 (ko)
BR (1) BR112017008407B1 (ko)
CA (1) CA2965982C (ko)
RU (1) RU2658884C1 (ko)
SG (1) SG11201703261WA (ko)
WO (1) WO2017113128A1 (ko)
ZA (1) ZA201702790B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700975B (zh) * 2016-01-08 2019-05-24 华为技术有限公司 一种中央处理器cpu热移除、热添加方法及装置
EP3605350A4 (en) * 2017-05-04 2020-04-29 Huawei Technologies Co., Ltd. INTERCONNECTION SYSTEM, AND INTERCONNECTION CONTROL METHOD AND APPARATUS
JP7068681B2 (ja) * 2017-06-02 2022-05-17 国立大学法人東京海洋大学 生殖細胞追跡用抗体
CN107396586A (zh) * 2017-07-27 2017-11-24 郑州云海信息技术有限公司 一种减少背板层叠的upi互连系统
CN107526617B (zh) * 2017-09-04 2020-12-29 井冈山电器有限公司 一种cpu更新方法及系统
CN108182163B (zh) * 2018-01-02 2021-03-02 苏州浪潮智能科技有限公司 一种计算板级热插拔控制装置及控制方法
US11016822B1 (en) * 2018-04-03 2021-05-25 Xilinx, Inc. Cascade streaming between data processing engines in an array
CN112540941A (zh) * 2019-09-21 2021-03-23 华为技术有限公司 一种数据转发芯片及服务器
CN114090095B (zh) * 2022-01-19 2022-05-24 苏州浪潮智能科技有限公司 一种多路服务器中cpu的bios加载方法及相关组件

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231723A (ja) * 2009-03-30 2010-10-14 Nec Computertechno Ltd マルチプロセッサシステム、ノードコントローラ、障害回復方式
US20130073814A1 (en) * 2011-04-01 2013-03-21 Huawei Technologies Co., Ltd. Computer System
US20140310555A1 (en) 2013-04-12 2014-10-16 Oracle International Corporation Physical domain error isolation and recovery in a multi-domain system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516429B1 (en) * 1999-11-04 2003-02-04 International Business Machines Corporation Method and apparatus for run-time deconfiguration of a processor in a symmetrical multi-processing system
JP2002197073A (ja) * 2000-12-25 2002-07-12 Hitachi Ltd キャッシュ一致制御装置
US7477612B2 (en) * 2002-03-15 2009-01-13 Broadcom Corporation Topology discovery process and mechanism for a network of managed devices
US7483370B1 (en) * 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade
JP2007011580A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 情報処理装置
US7599302B2 (en) * 2005-07-19 2009-10-06 Cisco Technology, Inc. Dynamic enforcement of MPLS-TE inter-domain policy and QoS
US7761538B2 (en) * 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US20090144476A1 (en) * 2007-12-04 2009-06-04 Xiaohua Cai Hot plug in a link based system
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
CN101216815B (zh) * 2008-01-07 2010-11-03 浪潮电子信息产业股份有限公司 一种双翼可扩展多处理器紧耦合共享存储器体系结构
US8224955B2 (en) * 2009-05-07 2012-07-17 International Business Machines Corporation Ensuring affinity at all affinity domains by folding at each affinity level possible for a partition spanning multiple nodes
CN101640688B (zh) * 2009-08-20 2014-03-12 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
US20110161592A1 (en) * 2009-12-31 2011-06-30 Nachimuthu Murugasamy K Dynamic system reconfiguration
US20110179311A1 (en) 2009-12-31 2011-07-21 Nachimuthu Murugasamy K Injecting error and/or migrating memory in a computing system
US8677180B2 (en) * 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8656115B2 (en) * 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
CN102232218B (zh) * 2011-06-24 2013-04-24 华为技术有限公司 计算机子系统和计算机系统
US8856495B2 (en) * 2011-07-25 2014-10-07 International Business Machines Corporation Automatically routing super-compute interconnects
CN102318275B (zh) * 2011-08-02 2015-01-07 华为技术有限公司 基于cc-numa的报文处理方法、装置和系统
WO2012149714A1 (zh) * 2011-08-25 2012-11-08 华为技术有限公司 一种节点控制器链路的切换方法、处理器系统和节点
CN102521201A (zh) 2011-11-16 2012-06-27 刘大可 多核数字信号处理器片上系统及数据传输方法
CN202422104U (zh) * 2012-02-10 2012-09-05 广州瀚阳信息科技有限公司 多屏并行海量信息展示系统
CN103020004B (zh) * 2012-12-14 2015-09-09 杭州华为数字技术有限公司 高速缓存非对称一致性内存访问系统的访问方法和装置
CN103150264B (zh) * 2013-01-18 2014-09-17 浪潮电子信息产业股份有限公司 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法
US9361334B2 (en) * 2013-08-23 2016-06-07 Cisco Technology, Inc. Addressing cache coherence in updates to a shared database in a network environment
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
CN103530191B (zh) * 2013-10-18 2017-09-12 杭州华为数字技术有限公司 热点识别处理方法及装置
US9246803B2 (en) * 2014-01-02 2016-01-26 Futurewei Technologies, Inc. Method and apparatus for scalable content routing and mobility in named data networks
CN104811325B (zh) * 2014-01-24 2018-12-25 华为技术有限公司 一种集群节点控制器监控方法、相关装置以及控制器
US9749214B2 (en) * 2014-02-26 2017-08-29 Futurewei Technologies, Inc. Software defined networking (SDN) specific topology information discovery
US9477564B2 (en) * 2014-06-20 2016-10-25 Intel Corporation Method and apparatus for dynamic node healing in a multi-node environment
CN104077375B (zh) * 2014-06-24 2017-09-12 华为技术有限公司 一种cc‑numa系统中节点的错误目录的处理方法和节点
US9762479B2 (en) * 2014-11-10 2017-09-12 Maged E. Beshai Distributed routing control in a vast communication network
CN104899179A (zh) * 2015-04-03 2015-09-09 浪潮电子信息产业股份有限公司 一种基于融合架构的多路服务器qpi扣卡的设计方法
US10050806B2 (en) * 2015-12-07 2018-08-14 Futurewei Technologies, Inc. End-to-end (E2E) tunnel based on shortest point-to-point (P2P) path computation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231723A (ja) * 2009-03-30 2010-10-14 Nec Computertechno Ltd マルチプロセッサシステム、ノードコントローラ、障害回復方式
US20130073814A1 (en) * 2011-04-01 2013-03-21 Huawei Technologies Co., Ltd. Computer System
US20140310555A1 (en) 2013-04-12 2014-10-16 Oracle International Corporation Physical domain error isolation and recovery in a multi-domain system

Also Published As

Publication number Publication date
BR112017008407A2 (pt) 2017-12-19
AU2015412144A1 (en) 2017-07-13
RU2658884C1 (ru) 2018-06-25
CA2965982A1 (en) 2017-06-29
CA2965982C (en) 2019-02-12
US20170364475A1 (en) 2017-12-21
CN106104505B (zh) 2020-02-21
CN111427827A (zh) 2020-07-17
CN111427827B (zh) 2023-03-17
EP3226147B1 (en) 2019-12-04
EP3575977A1 (en) 2019-12-04
EP3226147A4 (en) 2017-12-27
BR112017008407A8 (pt) 2022-10-18
AU2015412144B2 (en) 2018-11-15
SG11201703261WA (en) 2017-08-30
ZA201702790B (en) 2019-12-18
CN106104505A (zh) 2016-11-09
WO2017113128A1 (zh) 2017-07-06
KR20170093116A (ko) 2017-08-14
US11138147B2 (en) 2021-10-05
BR112017008407B1 (pt) 2023-04-04
JP6536677B2 (ja) 2019-07-03
EP3226147A1 (en) 2017-10-04
JP2018507454A (ja) 2018-03-15

Similar Documents

Publication Publication Date Title
KR102092660B1 (ko) Cpu 및 다중 cpu 시스템 관리 방법
JP5573829B2 (ja) 情報処理装置およびメモリアクセス方法
US8051325B2 (en) Multiprocessor system and failure recovering system
JP5419107B2 (ja) マルチコア処理システム
JP5920105B2 (ja) 演算処理装置および演算処理装置の制御方法
JP2007526540A (ja) 動的マルチクラスタシステムリコンフィギュレーション
CN101635679B (zh) 路由表的动态更新
WO2014206078A1 (zh) 内存访问方法、装置及系统
US7159079B2 (en) Multiprocessor system
US10592465B2 (en) Node controller direct socket group memory access
US7904676B2 (en) Method and system for achieving varying manners of memory access
US9720603B1 (en) IOC to IOC distributed caching architecture
US10545885B2 (en) Information processing device, information processing method, and computer program product
CN108415873B (zh) 转发对监听请求的响应
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
JP5168630B2 (ja) ブレードサーバシステムのキャッシュサーバ制御回路およびキャッシュサーバ制御方法
JP6658299B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP2005515543A (ja) ドメイン間データ転送
JP6631317B2 (ja) 演算処理装置、情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant