KR20040068460A - 불균일-메모리-접근(numa) 장치의 부팅을 수행하는방법 및 장치 - Google Patents

불균일-메모리-접근(numa) 장치의 부팅을 수행하는방법 및 장치 Download PDF

Info

Publication number
KR20040068460A
KR20040068460A KR10-2003-7011841A KR20037011841A KR20040068460A KR 20040068460 A KR20040068460 A KR 20040068460A KR 20037011841 A KR20037011841 A KR 20037011841A KR 20040068460 A KR20040068460 A KR 20040068460A
Authority
KR
South Korea
Prior art keywords
numa
processors
node
memory
multiprocessing
Prior art date
Application number
KR10-2003-7011841A
Other languages
English (en)
Other versions
KR100690416B1 (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 KR20040068460A publication Critical patent/KR20040068460A/ko
Application granted granted Critical
Publication of KR100690416B1 publication Critical patent/KR100690416B1/ko

Links

Classifications

    • 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
    • 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

불균일-메모리-접근(non-uniform-memory-access, 이하 NUMA라 함) 장치를 부팅하기 위한 방법, 장치 및 프로그램이 제공된다. 본 발명은 복수개의 자립형(standalone) 대칭적 다중처리(symmetrical multiprocessing, 이하 SMP라 함) 시스템들이 NUMA 시스템 내에서 동작하도록 구성하는(configure) 방안을 구비하고 있다. 마스터 프로세서(master processor)는 각 SMP 내에서 선택되어지며, SMP 내의 나머지 프로세서들은 NUMA의 종속 프로세서들(slave processors)로 지정된다. SMP 마스터 프로세서들로부터 NUMA의 NUMA의 마스터 프로세서가 선택되고, 나머지 SMP 마스터 프로세서들은 NUMA의 종속 프로세서들로 지정된다. 고유한 NUMA 식별자가 NUMA 시스템의 일부가 될 각 SMP에 할당된다. 그 후에, SMP들은 시스템 펌웨어의 실행 초기에 메모리의 일관성(coherency)이 확립되면서 단일-패스(one-pass)로 NUMA 모드로 부팅된다.

Description

불균일-메모리-접근(NUMA) 장치의 부팅을 수행하는 방법 및 장치{METHOD AND APPARATUS TO BOOT A NON-UNIFORM-MEMORY-ACCESS(NUMA) MACHINE}
대칭적 다중처리(symmetrical multiprocessing, 이하 SMP라 함) 구조는 하나의 캐비넷에 위치하며 동일한 메모리를 공유하는 복수개의 중앙 처리 장치(central processing unit, 이하 CPU라 함)들을 포함한다. 이 구조는 SMP 시스템에게 사용자의 필요에 따른 확장성을 제공하여 준다. 그 일례로 트랜잭션(transaction) 양이 있다.
SMP 시스템은 2개 내지는 32개, 또는 그 이상의 CPU들을 가질 수 있다. 그러나, 만일 SMP 시스템 내의 하나의 CPU에 장애가 발생할 경우, 전체 시스템에 장애가 발생한다. CPU의 장애에 대비하여, 한 클러스터(cluster) 내에 둘 또는 그 이상의 SMP 시스템들을 사용한 예비장치(redundancy)를 둔다. 이런 방식으로, 클러스터 내의 한 SMP 시스템에 장애가 발생할 경우 나머지 시스템들이 잘못된 시스템을 보완하며 계속적으로 동작하게 된다.
대개의 경우 하나의 CPU가 SMP 시스템을 부팅하고, 다른 CPU들을 온라인(online)으로 만들기 위한 운영 체계(operating system)를 로드한다. SMP내의 CPU들은 동일한 메모리를 공유하므로, 메모리에는 하나의 운영 체계 및 응용(application)의 한 인스턴스(instance)만이 있다. SMP 시스템은 처리들이 중첩될 수 있는 경우 특히 유리하다. 일례로, 여러 응용이 동시에 수행될 수도 있다. 다른 예로, 한 응용 내에서의 병행 연산(concurrent operation)을 구비하는 멀티쓰레딩(multithreading)을 들 수 있다.
NUMA 구조는 일종의 다중처리 구조이며, 다중처리 구조 내에 가까이에 위치한 뱅크(bank) 및 먼 곳에 위치한 뱅크로 구분된 메모리가 있다. SMP와 비슷하게, NUMA 장치는 단일 메모리를 공유하는 복수의 CPU들을 구비하고 있다. 그러나, NUMA 내에서는, CPU들과 동일한 처리 기판(processing board)에 위치한 로컬 메모리가 있으며 이는 다른 처리 기판들에 위치한 공유 메모리에 비하여 더욱 빠르게 접근되어진다.
SMP 시스템 메모리 맵(map) 구조는 각 SMP 시스템들이 SMA NUMA 어댑터들과 연결되어진 NUMA 장치를 지원할 수 있도록 구성될 수 있다. 각 SMP 시스템이 자립형 장치일 경우에는, 각 기가-프로세서(giga-processor, 이하 GP라 함)의 PIR 레지스터의 시스템 노드 식별자(system node ID) 필드는 항상 0으로 설정된다. 펌웨어는 원격 입출력(remote input/output, 이하 RIO라 함) 구성(configuration)을 수행하기 위하여 항상 시스템 ID0에 해당하는 메모리 맵을 사용한다.
여러 SMP 시스템들이 NUMA 장치를 구성하기 위하여 연결된 때에는, 각 SMP시스템들은 NUMA 장치 내에서 제대로 동작되도록 NUMA 메모리 맵에 맞추어 적절하게 설정이 되어야 한다. 자립형 모드에서는 펌웨어의 기능을 SMP 시스템을 부팅하는 것으로 유지하는 반면에, NUMA 모드에서는 모든 SMP 장치들을 부팅하여 정상 동작을 수행하게 하기 위하여 동일한 시스템 펌웨어 이미지(image)가 전체 NUMA 장치를 구성하는 수단을 제공하는 것이 바람직하다.
추가적으로, 이 새로운 방법은 RIO 구성을 수행하는데 소요되는 중대한 부팅 시간을 야기하지 아니하고 NUMA 장치를 부팅할 수 있도록 함이 바람직하다. 일례로, 각 시스템 노드의 RIO 구성을 동시에 수행할 수 있다.
본 발명은 다중처리 컴퓨터 구조(multiprocessor computer architecture)에 관한 발명이며, 특히 불균일-메모리-접근(non-uniform-memory-access, 이하 NUMA라 함) 장치에 관한 발명이다.
첨부한 도면을 참조하여 본 발명의 일례가 설명되어진다.
도 1은 본 발명이 실시될 수 있는 데이터 처리 시스템을 그림으로 나타낸 도면이다.
도 2는 본 발명이 실시될 수 있는 데이터 처리 시스템의 볼록도를 나타낸 도면이다.
도 3은 본 발명에 따른 SMP 시스템의 구성 과정을 나타낸 흐름도이다.
도 4는 본 발명에 따른 호스트 프로세서 및 메모리의 구성 과정을 나타낸 흐름도이다.
도 5는 본 발명에 따른 NUMA 시스템의 부팅 과정을 나타낸 흐름도이다.
본 발명은 NUMA(non-uniform-memory-access) 장치를 부팅할 수 있는 방법, 장치, 및 프로그램을 제공한다. 본 발명은 복수개의 자립형 SMP(symmetrical multiprocessing) 시스템이 NUMA 시스템 내에서 동작하도록 하는 구성을 구비하고 있다. 마스터 프로세서는 각 SMP 내에서 하나 선택되어 진다. SMP 내의 나머지 프로세서들은 NUMA 종속 프로세서들로 지정된다. 그 후에, NUMA 마스터 프로세서는 SMP 마스터 프로세서들 중에서 선택된다. 나머지 SMP 마스터 프로세서들은 NUMA 종속 프로세서들로 지정된다. NUMA 시스템의 일부가 되는 각 SMP에 대하여 고유한 NUMA 식별자가 할당된다. 그 후에, 시스템 펌웨어의 실행 초기에 SMP들은 메모리의 일관성(coherency)을 가지며 단일-패스(one-pass)로 NUMA 모드로 부팅된다.
도면들, 특히 도 1을 참조하면, 본 발명이 실시될 수 있는 데이터 처리 시스템을 나타내는 그림이 본 발명의 바람직한 실시예에 따라 표현되어 있다. 도면에서 컴퓨터(100)는 시스템 장치(system unit)(110), 영상 표시 단말기(video display terminal)(102), 키보드(104), 저장 장치(storage device)(108), 마우스(106)를 포함한다. 저장장치(108)는 플로피 드라이브 및 다른 종류의 영구적인 및 분리가능한 저장 매체를 포함할 수 있다. 개인용 컴퓨터(100)에는 추가적인 입력 장치가 포함될 수 있다. 입력 장치의 예로는 조이스틱(joystick), 터치패드(touchpad), 터치 스크린(touch screen), 트랙볼(trackball), 마이크로폰 등이 있다. 컴퓨터(100)는 바람직하게 그래픽 사용자 인터페이스(graphical user interface)를 포함한다. 그래픽 사용자 인터페이스는 컴퓨터(100) 내부에서 동작하는 컴퓨터 판독 가능 매체(computer readable media)에 존재하는 시스템 소프트웨어로 구현될 수도 있다.
도 2를 참조하면, 본 발명이 실시될 수 있는 데이터 처리 시스템의 볼록도가 표현되어 있다. 데이터 처리 시스템(200)은 일례로 도 1에 표현된 컴퓨터(100)와 같은 컴퓨터이다. 컴퓨터 내에는 본 발명의 절차를 실시하는 코드나 명령어(instruction)가 위치할 수 있다. 데이터 처리 시스템(200)은 PCI(peripheral component interconnect) 로컬 버스 구조를 채택한다. 설명된 예는 PCI 버스를 채택하더라도, AGP(accelerated graphics port) 및 ISA(industry standard architecture)와 같은 다른 버스 구조가 사용될 수 있다. 프로세서들(202,204,206) 및 메인 메모리(210)는 PCI 브릿지(212)를 통하여 PCI 로컬 버스(208)에 연결된다. 또한 PCI 브릿지(212)는 또한 프로세서들(202,204,206)을 위한 집적된 메모리 관리기 및 캐쉬 메모리를 포함할 수 있다. PCI 로컬 버스(208)의 추가적인 연결은 직접 부품을 연결하거나 또는 확장 보드를 통하여 이루어질 수 있다. 도면에 설명된 예에 의하면, LAN(local area network) 어댑터(214), SCSI(small computer system interface) 호스트 버스 어댑터(216) 및 확장 버스 인터페이스(218)는 직접 부품을 연결하여 PCI 로컬 버스(208)에 연결된다. 이와 대조적으로, 음성 어댑터(220), 그래픽 어댑터(222) 및 음성/영상 어댑터(224)는 확장 슬롯들에 끼워진 확장 보드들을 이용하여 PCI 로컬 버스(208)와 연결되어 있다. 확장 버스 인터페이스(218)는 키보드 및 마우스 용 어댑터(224), 모뎀(226) 및 추가 메모리(228)에 대한 연결을 제공한다. SCSI 호스트 버스 어댑터(216)는 하드 디스크 구동장치(hard disk drive)(230), 테이프 구동장치(232) 및 CD-ROM 구동장치(234)에 대한 연결을 제공한다. 구현된 전형적인 PCI 로컬 버스는 3개 내지는 4개의 PCI 확장 슬롯들과 확장 접속기(connector)들을 제공한다.
도 2에서 단일 운영 체계는 프로세서들(202,204,206)에서 수행되며, 데이터 처리 시스템(200) 내의 다양한 부품들을 조정하고, 제어하는 데 사용된다. 운영 체계는 Windows 2000과 같은 상업적으로 판매되는 운영 체계일 수 있다. "Windows"는 마이크로소프트 사(Microsoft Corporation)의 상표이다. Java와 같은 객체 지향 프로그램 체계(object oriented programming system)가 운영체계와 연결되어 수행될 수 있으며, 데이터 처리 시스템(200)에서 수행되는 Java 프로그램들이나 응용들이 운영 체계를 호출 할 수도 있다. "Java"는 선 마이크로시스템즈 사(Sun Microsystems Inc.)의 상표이다. 운영 체계, 객체 지향 프로그램 체계 및 응용들의 명령어들 또는 프로그램들은 하드 디스크 구동장치(230)과 같은 저장 장치에 위치하며, 프로세서들(202,204,206)에 의하여 수행될 수 있도록 메인 메모리에 로드될 수 있다.
본 분야에 대하여 통상적인 기술을 가진 자들은 도 2에 표현된 하드웨어가 구현에 따라서 변경될 수 있음을 이해할 것이다. 플래쉬 롬(또는 등가적인 비휘발성 메모리), 광 디스크 구동 장치 등과 같은 다른 내부 하드웨어나 주변 장치가 도 2에 표현된 하드웨어에 추가되어 또는 대체되어 사용될 수 있다. 또한, 본 발명의 절차들은 다중프로세서 데이터 처리 시스템에 적용될 수 있다.
도 2에 표현된 예 및 상기 예는 구조적인 한계를 의미하기 위하여 사용된 것은 아니다.
SMP(symmetric multiprocessing) 시스템 메모리 맵은 각 SMP 장치를 연결하여 NUMA(Non-Uniform-Memory-Access)를 구성하는 것을 지원하도록 구조되어 있다. 각각의 장치가 자립형 모드로 사용될 때에는 프로세서의 시스템 식별자는 0으로 설정된다. 본 발명은 SMP 모드 및 NUMA 모드의 시스템을 구성함에 있어서 동일한 펌웨어를 사용한다. NUMA 시스템을 위한 하드웨어 시스템 콘솔(hardware system console, 이하 HSC라 함)은 각 SMP 시스템의 서비스 프로세서가 NUMA 구성 설정 변수들에 따라 그 시스템을 NUMA 모드로 설정하도록 명령한다. 상기 변수들은 각 SMP 시스템의 비균일 RAM(Non-Unifrom Random Access Memory, 이하 NURAM라 함)에 저장되어 있다.
NUMA 장치는 NUMA 장치를 운용하고, 구성하는 하나 또는 그 이상의 HSC(hardware system console)를 가진다. 각 SMP 시스템은 자신의 고유의 공통 서비스 프로세서(common servive processor, 이하 CSP라 함)를 가진다. HSC는 어떠한 통신 회선들에 속한 모든 CSP들에게 연결되어 있다.
도 3에 의하면, 본 발명에 따른 SMP 시스템 구성의 과정을 나타내는 흐름도가 표현되어 있다. 이 개시 단계에서, HSC는 SMP들과 통신하고, 각 SMP에 대하여 NUMA 시스템 내의 SMP의 위치를 지정하는 식별자를 할당한다. 시스템의 각 CSP는 NUMA 구성의 설정을 위하여 아래의 두개의 비휘발성 RAM(Non-Volatile Random Access Memory, 이하 NVRAM라 함) 바이트-변수들을 보유한다.
ㆍNUMA_mode_flag : 만일 NUMA_mode_flag가 0이면, 그 시스템은 자립형 SMP모드이다. 그렇지 아니하면 모드와 변수의 값은 NUMA 장치 내의 시스템 노드의 존재를 가리키는 비트마스크(bitmask)이다.
ㆍNUMA_node_id : 이것은 이 NVRAM 변수가 있는 SMP 시스템에 대한 시스템 노드 식별자를 포함한다.
HSC는 모든 CSP들이 NUMA 장치에 대한 적절한 마스크 값으로 NUMA_mode_flag를 설정하도록 명령한다(301 단계). 그 후에, HSC는 각 CSP가 CSP 고유의 NUMA_node_id를 설정하도록 할당하고, 명령한다(302 단계). NUMA_mode_flag 및 NUMA_node_id가 설정된 후에, HSC는 각 노드의 CSP가 CSP에 부착된 SMP 시스템의 전원을 켜도록 파워-온(power-on) 명령을 보낸다(303 단계).
도 4를 참조하면, 본 발명에 따른 호스트 프로세서 및 메모리를 구성하는 과정이 표현된 흐름도가 표현되어 있다. 각 노드의 CSP는 호스트 프로세서를 구성하고 시험한다(401 단계). 그 후에 각 노드의 CSP는 호스트 메모리를 구성하고 시험한다(402 단계). 파워 온 자체 시험(power on self test, 이하 POST라 함) 후에, 상기 메모리는 시스템 메모리 기준 주소(base address)를 할당받는다. 그러나 상기 메모리는 불연속적일 수 있다. 예를 들자면, SMP 시스템의 메모리는 숫자적인 메모리 영역들에서 불연속적일 수 있으나, 256G의 크기를 넘을 수는 없다.
상기 호스트 프로세서와 메모리들이 구성되고 시험된 후에, CSP는 NUMA 메모리를 구성하고 시험하며(403 단계), 노드 식별자를 X로 설정한다(404 단계). 그 후에, 상기 CSP는 노드 식별자 X를 위하여 보전된 시스템 메모리 맵을 이용하여, 모든 RIO(remote inpu/output) 허브들을 위한 기준 주소들을 설정한다(405 단계).
그 후에 CSP는 임시적으로 로컬 시스템 메모리가 0 번지 주소에서 시작하도록 맵핑한다(406 단계). 그 후에, 시스템의 펌웨어의 이미지를 로컬 시스템 메모리에 적재한다(407 단계). 거기로부터, CSP는 영구적으로 메모리 맵이 노드 식별자 X를 위하여 보전한 Y번지 주소로부터 로컬 시스템 메모리가 시작하도록 매핑한다(408 단계). 일단 로컬 시스템 메모리가 맵핑된 후에, CSP는 HSC에게 로드된 펌웨어 이미지의 버전을 알려준다(409 단계). 그 후에, CSP는 HSC가 로드된 시스템 펌웨어 이미지가 나머지 노드의 펌웨어 이미지와 동일함을 확인할 때까지 기다린다(410 단계).
CSP는 시스템을 최종의 NUMA 장치로 연결하기 위하여 자신의 NUMA 어댑터를 구성한다(411 단계). 그리고 CSP는 로컬 노드의-시간-축(nodal-time-base) 레지스터를 초기화 한다(412 단계).
기가-프로세서의 논리적으로 구획된 하드웨어를 이용하여, 각 노드의 CSP는 다음과 같이 모든 GP 프로세서들을 시동한다(413 단계).
ㆍMSR[SF] = 1 : 이는 프로세서가 64 비트 모드로 코드를 수행하기 시작함을 의미한다.
ㆍMSR[HV] = 0 : 이는 프로세서를 논리적으로 구획된 환경에 둔다(HV는 하이퍼바이저(Hypervisor)를 의미한다.).
ㆍHID0[19] = 1 : 이는 프로세서의 시간축 함수가 NUMA 모드로 동작하고 있음을 나타낸다. 또한, 이는 NUMA 펌웨어 플래그(firmware flag)로서 작용하여 펌웨어가 NUMA의 수행 경로를 따르도록 한다.
ㆍHID4[0] = 1 : 이는 프로세서가 RS/6000 서버 장치의 환경에서 동작하도록 선택한다.
ㆍHID4[7:22] : 이 레지스터(노드의 메모리 기준 번지)를 다음의 수식에 기초하여 설정하라 : 64M로 나눈 시스템 메모리 기준 번지(Y) = (NUMA_node_id * 256G) >> 26
ㆍHID4[1:2] : 이 레지스터(리얼 모드 한정 레지스터이다.)를 1G의 리얼 모드 어드레스 크기를 가능하도록 설정하라. 일례로 그 값은 2이다..
ㆍHID4[62:63||3:6] = 0 : 이는 논리적 구획 식별자를 디폴트 값인 0으로 설정한다.
ㆍPIR[23:25] = NUMA_node_id : 이 레지스터를 프로세서가 있는 SMP 시스템의 node_id 값으로 설정한다.
ㆍSPRG0 = NUMA_mode_flag : 이는 NUMA_mode_flag를 SPRG0(Special Purpose Register 0)로 전달한다. 이는 모든 프로세서들이 NVRAM에 접근하고 읽을 수 있기 전에 그들이 이 NVRAM 플래그의 설정을 가지도록 하기 위함이다.
CSP는 모든 호스트 프로세서들의 프로그램 카운터 즉 NIA(Next Instruction Address) 레지스터들을 시스템 펌웨어의 진입점(entry point)으로 설정한다. 이 값은 일례로 0x100이다(414 단계). 그리고, CSP는 모든 호스트 프로세서들이 시스템 펌웨어를 수행하기 시작할 수 있도록 이들을 해제한다(release)(415 단계). 상기의 설정들은 각 노드의 시스템 펌웨어 이미지가 0 번지 메모리 주소에 로드된 것처럼 동작하도록 한다.
도 5를 참조하면, 본 발명에 따른 NUMA 시스템을 부팅하는 과정을 나타내는 흐름도가 묘사된다. 각 노드가 노드의 RIO를 구성할 마스터 프로세서를 선택할 때 그 과정이 시작된다(501 단계). 각 시스템 노드의 펌웨어는 구현된 마스터 소프트웨어 세마포어(semaphore)를 가진다. 동일 시스템 노드의 모든 프로세서들은 이 세마포어를 획득하기 위하여 경쟁한다. 세마포어를 성공적으로 획득한 프로세서는 그 노드의 마스터 프로세서가 된다. 노드의 마스터 프로세서가 되지 못한 프로세서들은 종속 프로세서들이 된다. 노드의 종속 프로세서는 노드의 마스터 프로세서가 일대일(one-on-one) 핸드쉐이크를 시작할 때까지 기다린다(503 단계). 이 기간에 종속 프로세서들은 그들의 시간축(timebase, 이하 TB라 함) 레지스터를 설정한다(504 단계). 그 후, 종속 프로세서들은 NUMA 종속 프로세서들이 되기 위하여 하이퍼바이저(hyper-visor) 환경으로 전환한다(505 단계). 하이퍼바이저 환경은 프로세서들이 시스템의 하드웨어에 무제한적으로 접근할 수 있는 실행 환경이다. 그 후, 모든 NUMA의 종속 프로세서들은 0 번 노드에 있는 펌웨어를 실행한다. 그리고 NUMA의 마스터 프로세서가 종속 프로세서들로 하여금 더 진행하도록 허락할 때까지 기다린다(506 단계).
노드의 마스터 프로세서로 선택된 프로세서는 로컬 노드의 RIO 허브들을 구성하여야 한다(507 단계). RIO 구성을 끝낸 후에, 노드의 마스터 프로세서는 그것의 TB 레지스터를 노드의 TB와 동기화 한다(508 단계). 그 후, 각 종속 프로세서도 그것의 TB 레지스터를 동기화하도록, 마스터 프로세서는 노드의 각 종속 프로세서와 핸드쉐이크를 수행한다(509 단계). 핸드쉐이크 후에, 노드의 종속 프로세서들은구획된 환경을 벗어나, 505 단계에서 기술된 바와 같이, 하이퍼바이저 환경으로 이동한다. 종속 프로세서들은 시스템 노드 ID0의 메모리로부터 가져온 동일한 코드를 계속적으로 수행한다. 이 노드의 종속 프로세서들은 이제 NUMA 장치의 NUMA 종속 프로세서들이 되어, NUMA의 마스터 프로세서가 일대일 핸드쉐이크를 시작할 때까지 기다린다. 그 후에, 각 노드의 마스터 프로세서는 노드의 글로벌 큐 인터럽트 마스크(global queue interrupt mask, 이하 GQIRM라 함) 레지스터들을 설정한다(510 단계).
각 노드의 마스터 프로세서는 구획된 환경을 떠나, NUMA의 마스터 프로세서가 되기 위한 경쟁을 하기 위하여 글로벌 하이퍼바이저 환경과 하이퍼바이저 메모리 영역으로 이동한다(511 단계). 시스템 펌웨어는 또한 NUMA 마스터 소프트웨어 세마포어를 가진다. 모든 노드의 마스터 프로세서는 모두 하이퍼바이저의 환경으로 전환하므로, 시스템 노드 ID0를 위한 펌웨어의 NUMA 마스터 소프트웨어 세마포어는 경쟁의 목표이다. 또 다시, NUMA의 마스터 세마포어를 성공적으로 획득한 승자는 NUMA의 마스터 프로세서가 된다. NUMA의 마스터 프로세서가 되기를 실패한 노드의 마스터 프로세서는 NUMA의 마스터 프로세서와 일대일 핸드쉐이크를 수행한 후에 NUMA의 종속 프로세서가 된다(513 단계).
NUMA의 마스터 프로세서로 선택된 프로세서는 모든 갱신된 노드의 RIO 구조들, 모든 노드의 메모리 상태 및 모든 노드의 프로세서 상태를 수집한다(514 단계). 그 후에, NUMA의 마스터 프로세서는 전체 NUMA 장치를 위하여 개방(open) 펌웨어를 수행하고, 개방 펌웨어 디바이스 트리(device tree)를 생성한다(515 단계). NUMA 마스터 프로세서는 계속하여 NUMA 장치가 논리적으로 거대한 SMP 장치인 것처럼 NUMA 장치를 부팅한다. 이는 OS(operating system)를 NUMA 시스템 메모리에 로드하고 제어권을 OS로 넘기는 과정을 구비한다(516 단계). NUMA 마스터 프로세서는 OS의 코드를 실행하여 모든 NUMA의 종속 프로세서들을 OS 내의 그들의 목적지로 운반한다(517 단계)
본 발명의 방법은 시스템의 펌웨어를 수행하기 이전에 SMP 시스템 노드들 사이의 메모리 일관성을 확립한다. 이는 NUMA 장치로 하여금 일관된 시스템 메모리로 시작하도록 허락하며, 그럼으로써 종래 기술인 전통적인 두-패스(two-pass) 방식의 비일관성을 피할 수 있다.
문맥상 본 발명이 완전히 동작하는 데이터 처리 시스템으로 기술되어 있음에도 불구하고, 이 분야에 통상의 기술을 가진 자는 본 발명의 과정이 명령어들로 구성된 컴퓨터 판독 가능 매체의 형태와 다른 다양한 형태로 배포되며, 배포에 실질적으로 사용된 신호 포함 매체(signal bearing media)의 종류와 무관하게 본 발명이 동일하게 적용된다는 것을 이해할 것이라는 점에 유의하여야 한다. 컴퓨터 판독 가능 매체의 예로는 플로피 디스크, 하드 디스크 구동 장치, RAM, CD-ROM, DVD-ROM 등과 같은 기록 가능형 매체(recordable-type media)와 디지털 및 아날로그 통신 회선, 유선 및 무선 통신 회선 등과 같은 전송형 매체(transmission-type media)를 포함한다. 전송형 매체는 일례로 무선 주파수 및 광파 전송과 같은 전송 형태를 사용할 수 있다. 컴퓨터 판독 가능 매체는 부호화된 형태를 가질 수 있으며, 이는 개개의 데이터 처리 시스템에서 실질적으로 사용될 때 복호화된다.

Claims (16)

  1. 불균일-메모리-접근(NUMA) 장치를 부팅하기 위한 방법에 있어서, 상기 방법은,
    복수개의 자립형 대칭적 다중처리 시스템들이 NUMA 시스템 내에서 운영되도록 구성하는(401-403) 단계와,
    각 다중처리 시스템들에게 NUMA 식별자(Identification)를 할당하는(404) 단계-상기 각 식별자는 고유한 것임-와,
    다중처리 시스템들을 단일-패스의 NUMA 모드로 부팅하는 단계-여기서, 메모리의 일관성은 시스템 펌웨어의 실행 초기에 확립됨-
    를 포함하는 NUMA 장치를 부팅하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 다중처리 시스템들을 구성하는 단계는,
    호스트 프로세서들 및 메모리를 구성하고 시험하는(401-402) 단계와,
    NUMA 메모리를 구성하고 시험하는(403) 단계와,
    펌웨어의 이미지를 로컬 메모리에 로드하고(407), 하드웨어 시스템 콘솔에게 펌웨어의 버전을 알리는(409) 단계와,
    펌웨어 버전이 NUMA 시스템의 모든 다중처리 시스템들에 대하여 동일하다는 확인을 하드웨어 시스템 콘솔로부터 수신(410) 단계와,
    각 다중처리 시스템을 NUMA 시스템에 연결하기 위하여 NUMA 어댑터들을 구성하고(411), 모든 호스트 프로세서들을 초기화하는(413) 단계와,
    시스템 펌웨어를 수행하기 위하여 모든 호스트 프로세서들을 해제하는(415) 단계
    를 더 포함하는 NUMA 장치를 부팅하기 위한 방법.
  3. 제 1 항에 있어서,
    각 다중처리 시스템 내에서 노드의 마스터 프로세서를 선택하고, 각 시스템 내의 모든 나머지 프로세서들을 노드의 종속 프로세서들로 지정하는(501) 단계와,
    떨어진 노드의 마스터 프로세서들 중에서 NUMA 마스터 프로세서를 선택하고, 모든 나머지 노드의 마스터 프로세서들을 NUMA의 종속 프로세서들로 지정하는(511) 단계
    를 더 포함하는 NUMA 장치를 부팅하기 위한 방법.
  4. 제 3 항에 있어서,
    다중처리 시스템 내에 있는 노드의 마스터 프로세서와 노드의 각 종속 프로세서들 사이에 일대일 핸드쉐이크를 수행하는(503) 단계-상기 핸드쉐이크는 노드의 모든 종속 프로세서들의 시간축 레지스터를 노드의 시간축 소스(source)에 맞추어 동기화함(504)-와,
    각 다중처리 시스템 내에 있는 노드의 종속 프로세서들을 하이퍼바이저 환경으로 전환하는(505) 단계-상기 하이퍼바이저 환경에서 노드의 종속 프로세서들은 NUMA 종속 프로세서들이 됨-
    를 더 포함하는 NUMA 장치를 부팅하기 위한 방법.
  5. 제 3 항에 있어서, 상기 NUMA의 마스터 프로세서는 단일 운영체제를 NUMA의 시스템 메모리에 로드하고(516), 제어권을 상기 운영체제로 넘기고(516), 모든 종속 프로세서들을 NUMA 운영체제 내의 지정된 위치로 할당하는 운영체제 코드를 수행하는(517) NUMA 장치를 부팅하기 위한 방법.
  6. 불균일-메모리-접근(NUMA) 장치를 부팅하기 위한 시스템에 있어서, 상기 시스템은,
    복수개의 자립형 대칭적 다중처리 시스템(200)들을 NUMA 시스템 내에서 동작하도록 구성하는 복수개의 하드웨어-구성 요소(component)들과,
    NUMA 식별자를 각 다중처리 시스템들에게 할당하는 식별자 요소-상기 각 식별자는 고유한 것임-와,
    다중처리 시스템들을 단일-패스 NUMA 모드로 부팅하는 부팅 메카니즘-여기서 메모리 일관성은 시스템 펌웨어의 실행 초기에 확립됨-
    을 포함하는 NUMA 장치를 부팅하기위한 시스템.
  7. 제 6 항에 있어서,
    각 하드웨어-구성 요소는
    호스트 프로세서들과 메모리를 구성하고 시험하는(401-402) 호스트 시험 요소와,
    NUMA 메모리를 구성하고 시험하는(403) NUMA 시험 요소와,
    펌웨어 이미지를 로컬 메모리에 로드하고(407), 하드웨어 시스템 콘솔에게 펌웨어 버전을 알리는(409) 소프트웨어 로딩 메카니즘과,
    펌웨어 버전이 NUMA 시스템 내의 모든 다중처리 시스템들에 대하여 동일하다는 확인을 하드웨어 시스템 콘솔로부터 수신하는(410) 수신 요소와,
    각 다중처리 시스템을 NUMA 시스템에 연결하기 위하여 NUMA 어댑터들을 구성하고(411), 모든 호스트 프로세서들을 초기화하는(413) 어댑터-구성 요소와,
    모든 호스트 프로세서들이 시스템 펌웨어를 수행하도록 해제하는(415) 해제 메카니즘
    을 더 포함하는 것인 NUMA 장치를 부팅하기 위한 시스템.
  8. 제 6 항에 있어서,
    각 다중처리 시스템 내에서 노드의 마스터 프로세서를 선택하고, 각 시스템 내의 모든 나머지 프로세서들을 노드의 종속 프로세서들로 지정하는 복수개의 노드 선택 메카니즘들과,
    상기 떨어진 노드의 마스터 프로세서들 중에서 NUMA 마스터 프로세서를 선택하고, 모든 나머지 노드의 마스터 프로세서들을 NUMA 종속 프로세서들로지정하는(511) NUMA 선택 메카니즘
    을 더 포함하는 NUMA 장치를 부팅하기 위한 시스템.
  9. 제 8 항에 있어서,
    다중처리 시스템 내에서 노드의 마스터 프로세서와 노드의 각 종속 프로세서 사이에 일대일 핸드쉐이크를 수행하는(503) 핸드쉐이크 메카니즘-상기 핸드쉐이크는 노드의 모든 종속 프로세서들의 시간축 레지스터를 노드의 시간축 소스에 동기화함(504)-과,
    각 다중처리 시스템 내의 노드의 종속 프로세서들을 하이퍼바이저 환경으로 전환시키는(505) 전환 메카니즘-상기 하이퍼바이저 환경에서 노드의 종속 프로세서들이 NUMA 종속 프로세서들이 됨-
    을 더 포함하는 NUMA 장치를 부팅하기 위한 시스템.
  10. 제 8 항에 있어서, NUMA 마스터 프로세서는 단일 운영체제를 NUMA의 시스템 메모리에 로드하고(516), 제어권을 상기 운영체제로 넘기고(516), 모든 종속 프로세서들을 NUMA 운영체제 내의 지정된 위치로 할당하는 운영체제 코드를 수행하는(517) NUMA 장치를 부팅하기 위한 시스템.
  11. 데이터 처리 시스템에서 사용되도록 컴퓨터 판독 가능 매체에 수록된 NUMA 장치를 부팅하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은,
    복수개의 자립형 대칭 다중처리 시스템들을 NUMA 시스템 내에서 운영되도록 구성하기(401-403) 위한 명령어들과,
    각 다중처리 시스템들에게 NUMA 식별자를 할당하기(404) 위한 명령어들-상기 각 식별자는 고유한 것임-과,
    다중처리 시스템들을 단일-패스의 NUMA 모드로 부팅하기 위한 명령어들-메모리의 일관성이 시스템 펌웨어의 실행 초기에 확립됨-
    을 포함하는 컴퓨터 프로그램 제품.
  12. 제 11 항에 있어서,
    상기 다중처리 시스템을 구성하는 단계는,
    호스트 프로세서들 및 메모리를 구성하고 시험하기(401-402) 위한 명령어들과,
    NUMA 메모리를 구성하고 시험하기(403) 위한 명령어들과,
    펌웨어의 이미지를 로컬 메모리에 로드하고(407), 하드웨어 시스템 콘솔에게 펌웨어 버전을 알리기(409) 위한 명령어들과,
    펌웨어의 버젼이 NUMA 시스템의 모든 다중처리 시스템들에 대하여 동일하다는 확인을 하드웨어 시스템 콘솔로부터 수신하기(410) 위한 명령어들과,
    각 다중처리 시스템을 NUMA 시스템에 연결하기 위하여 NUMA 어뎁터들을 구성하고(411), 모든 호스트 프로세서들을 초기화하기(413) 위한 명령어들과,
    시스템 펌웨어를 수행하기 위하여 모든 호스트 프로세서들을 해제하기(415) 위한 명령어들
    을 더 포함하는 컴퓨터 프로그램 제품.
  13. 제 11 항에 있어서,
    각 다중처리 시스템 내에서 노드의 마스터 프로세서를 선택하고, 각 시스템 내의 모든 나머지 프로세서들을 노드의 종속 프로세서들로 지정하기(501) 위한 명령어들과,
    떨어진 노드의 마스터 프로세서들 중에서 NUMA 마스터 프로세서를 선택하고, 모든 나머지 노드의 마스터 프로세서들을 NUMA 종속 프로세서들로 지정하기(511) 위한 명령어들
    을 더 포함하는 컴퓨터 프로그램 제품.
  14. 제 13 항에 있어서,
    다중처리 시스템 내에 있는 노드의 마스터 프로세서와 노드의 각 종속 프로세서들 사이에 일대일 핸드쉐이크를 수행하기(503) 위한 명령어들-상기 핸드쉐이크는 노드의 모든 종속 프로세서들의 시간축 레지스터를 노드의 시간축 소스에 동기화함(504)-과,
    각 다중처리 시스템 내에 있는 노드의 종속 프로세서들을 하이퍼바이저 환경으로 전환하기(505) 위한 명령어들-상기 하이퍼바이저 환경에서 노드의 종속 프로세서들은 NUMA의 종속 프로세서들이 됨-
    을 더 포함하는 구비한 컴퓨터 프로그램 제품.
  15. 제 13 항에 있어서, NUMA의 마스터 프로세서는 단일 운영체제를 NUMA의 시스템 메모리에 로드하고(516), 제어권을 상기 운영체제로 넘기고(516), 모든 종속 프로세서들을 NUMA 운영체제 내의 지정된 위치로 할당하는 운영체제 코드를 수행하는(517) 컴퓨터 프로그램 제품.
  16. 제 6 항에 있어서,
    호스트 프로세서들과 메모리를 구성하고 시험하는 호스트 시험 요소와,
    NUMA 메모리를 구성하고 시험하는 NUMA 시험 요소와,
    펌웨어 이미지를 로컬 메모리에 로드하고, 하드웨어 시스템 콘솔에게 펌웨어 버전을 알리는 소프트웨어 로드 메카니즘과,
    펌웨어 버전이 NUMA 시스템 내의 모든 다중처리 시스템들에 대하여 동일하다는 확인을 하드웨어 시스템 콘솔로부터 수신하는 수신 요소와,
    각 다중처리 시스템을 NUMA 시스템에 연결하기 위하여 NUMA 어뎁터들을 구성하고, 모든 호스트 프로세서들을 초기화하는 어뎁터 구성 요소와,
    모든 호스트 프로세서들이 시스템 펌웨어를 수행하도록 해제하는 해제 메카니즘과,
    각 다중처리 시스템 내에서 노드의 마스터 프로세서를 선택하고, 각 시스템내의 모든 나머지 프로세서들을 노드의 종속 프로세서들로 지정하는 복수개의 노드 선택 메카니즘과,
    떨어진 노드의 마스터 프로세서들 중에서 NUMA 마스터 프로세서를 선택하고, 모든 나머지 노드의 마스터 프로세서들을 NUMA의 종속 프로세서들로 지정하는 NUMA 선택 메카니즘과,
    각 다중처리 시스템 내의 노드의 종속 프로세서들을 하이퍼바이저 환경으로 전환시키는 전환 메카니즘-상기 하이퍼바이저 환경에서 노드의 종속 프로세서들이 NUMA 종속 프로세서들이 됨-
    을 더 포함하는 NUMA 장치를 부팅하기 위한 시스템.
KR1020037011841A 2001-04-12 2002-03-21 불균일-메모리-접근(numa) 장치의 부팅을 수행하는방법 및 장치 KR100690416B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/833,337 2001-04-12
US09/833,337 US6842857B2 (en) 2001-04-12 2001-04-12 Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
PCT/GB2002/001369 WO2002084478A2 (en) 2001-04-12 2002-03-21 Method and apparatus to boot a non-uniform-memory-access (numa) machine

Publications (2)

Publication Number Publication Date
KR20040068460A true KR20040068460A (ko) 2004-07-31
KR100690416B1 KR100690416B1 (ko) 2007-03-09

Family

ID=25264139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037011841A KR100690416B1 (ko) 2001-04-12 2002-03-21 불균일-메모리-접근(numa) 장치의 부팅을 수행하는방법 및 장치

Country Status (9)

Country Link
US (1) US6842857B2 (ko)
EP (1) EP1436696B1 (ko)
JP (1) JP3974440B2 (ko)
KR (1) KR100690416B1 (ko)
AT (1) ATE330277T1 (ko)
AU (1) AU2002242857A1 (ko)
CA (1) CA2441799A1 (ko)
DE (1) DE60212422T2 (ko)
WO (1) WO2002084478A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137121B2 (en) * 2002-04-19 2006-11-14 Equator Technologies, Inc. Data-processing circuit and method for switching between application programs without an operating system
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7350063B2 (en) * 2002-06-11 2008-03-25 Intel Corporation System and method to filter processors by health during early firmware for split recovery architecture
US7167908B2 (en) * 2002-09-27 2007-01-23 Intel Corporation Facilitating operation of a multi-processor system via a resolved symbolic constant
US7254676B2 (en) * 2002-11-15 2007-08-07 Intel Corporation Processor cache memory as RAM for execution of boot code
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US6975954B2 (en) * 2003-06-24 2005-12-13 Intel Corporation Functional testing of logic circuits that use high-speed links
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7146497B2 (en) * 2003-09-30 2006-12-05 International Business Machines Corporation Scalability management module for dynamic node configuration
US7493435B2 (en) * 2003-10-06 2009-02-17 Intel Corporation Optimization of SMI handling and initialization
JP4451687B2 (ja) 2004-03-22 2010-04-14 株式会社日立製作所 ストレージシステム
JPWO2006001051A1 (ja) * 2004-06-24 2008-04-17 富士通株式会社 マルチプロセッサ装置及びその制御方法
US7895596B2 (en) * 2005-09-13 2011-02-22 Hewlett-Packard Development Company, L.P. Processor assignment in multi-processor systems
JP4963855B2 (ja) * 2006-03-28 2012-06-27 株式会社ソニー・コンピュータエンタテインメント ネットワークコンピューティングシステムおよびマルチプロセッサコンピュータ
US20080052699A1 (en) * 2006-08-02 2008-02-28 Baker Steven T Syncronized dual-processor firmware updates
US20080046705A1 (en) * 2006-08-15 2008-02-21 Tyan Computer Corporation System and Method for Flexible SMP Configuration
US7836293B1 (en) * 2007-05-07 2010-11-16 Force 10 Networks, Inc Accelerated deserialized boot implementation for a multiprocessor system
US7945815B2 (en) * 2007-08-14 2011-05-17 Dell Products L.P. System and method for managing memory errors in an information handling system
EP2189909B1 (en) 2007-09-14 2014-02-12 Fujitsu Limited Information processing unit and method for controlling the same
US7895428B2 (en) * 2007-09-28 2011-02-22 International Business Machines Corporation Applying firmware updates to servers in a data center
US8141093B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141092B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
US8141094B2 (en) * 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US8078862B2 (en) * 2008-04-25 2011-12-13 Intel Corporation Method for assigning physical data address range in multiprocessor system
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8359459B2 (en) * 2008-05-27 2013-01-22 Oracle America, Inc. Using hardware support to reduce synchronization costs in multithreaded applications
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US9529636B2 (en) 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US9535767B2 (en) * 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
DE112010005971T5 (de) * 2010-11-01 2013-08-14 Hewlett-Packard Development Company, L.P. Mehrprozessorcomputersystem und -Verfahren
US10521388B2 (en) * 2018-09-28 2019-12-31 Intel Corporation Multi-uplink device enumeration and management
KR102647127B1 (ko) * 2022-01-13 2024-03-12 엘지전자 주식회사 차량용 디스플레이 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182106B1 (en) * 1993-08-30 2001-01-30 International Business Machines Corporation Method and system for providing a common hardware system console interface in data processing systems
US5642506A (en) * 1994-12-14 1997-06-24 International Business Machines Corporation Method and apparatus for initializing a multiprocessor system
JP2908739B2 (ja) * 1994-12-16 1999-06-21 インターナショナル・ビジネス・マシーンズ・コーポレイション 多重プロセッサ・システムにおけるcpuのモニタリング・システム及び方法
US5970439A (en) * 1997-03-13 1999-10-19 International Business Machines Corporation Performance monitoring in a data processing system
US5938765A (en) * 1997-08-29 1999-08-17 Sequent Computer Systems, Inc. System and method for initializing a multinode multiprocessor computer system
US6332165B1 (en) * 1997-09-05 2001-12-18 Sun Microsystems, Inc. Multiprocessor computer system employing a mechanism for routing communication traffic through a cluster node having a slice of memory directed for pass through transactions
KR100250464B1 (ko) * 1997-11-25 2000-04-01 정선종 고속병렬컴퓨터의 노드 부트 방법
US6178445B1 (en) * 1998-03-31 2001-01-23 International Business Machines Corporation System and method for determining which processor is the master processor in a symmetric multi-processor environment
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
US6611911B1 (en) * 1999-12-30 2003-08-26 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus system
US6584560B1 (en) * 2000-04-19 2003-06-24 Dell Usa, L.P. Method and system for booting a multiprocessor computer

Also Published As

Publication number Publication date
WO2002084478A2 (en) 2002-10-24
DE60212422T2 (de) 2006-12-07
US6842857B2 (en) 2005-01-11
WO2002084478A3 (en) 2004-04-29
JP2003006174A (ja) 2003-01-10
CA2441799A1 (en) 2002-10-24
EP1436696A2 (en) 2004-07-14
EP1436696B1 (en) 2006-06-14
DE60212422D1 (de) 2006-07-27
AU2002242857A1 (en) 2002-10-28
US20020152371A1 (en) 2002-10-17
KR100690416B1 (ko) 2007-03-09
JP3974440B2 (ja) 2007-09-12
ATE330277T1 (de) 2006-07-15

Similar Documents

Publication Publication Date Title
KR100690416B1 (ko) 불균일-메모리-접근(numa) 장치의 부팅을 수행하는방법 및 장치
US5938765A (en) System and method for initializing a multinode multiprocessor computer system
US10120695B2 (en) Method and apparatus to support separate operating systems in partitions of a processing system
US8914606B2 (en) System and method for soft partitioning a computer system
US8327113B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
KR101020392B1 (ko) 논리적 파티션 사이에서의 운용 시스템의 커널 공유
CN100442237C (zh) 访问逻辑分区中的存储器的方法和系统
US20020016891A1 (en) Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory
EP1200892B1 (en) Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system
JP2000222346A (ja) インテリジェントi/oコントロ―ラにおけるpci―pciブリッジに対する結合デバイスに関する装置及び方法
CN102625934A (zh) 共享虚拟存储器
KR20010031193A (ko) 적응적 처리하드웨어아키텍처
US20180196772A1 (en) Uma-Aware Root Bus Selection
JPS6030984B2 (ja) 多重共通バスを有するデ−タ処理システム
US20070124570A1 (en) Method and apparatus to support booting despite deficient resources
US20030135708A1 (en) System, method and computer program product for mapping system memory in a multiple node information handling system
JP2005056017A (ja) 情報処理装置
Boxer et al. UltraSMART: a scalable multiprocessor architecture for real time
JPH02208739A (ja) 仮想計算機システムの制御方式

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee