IP Library Granted Patent US 9,229,730
Granted Patent B2
US 9,229,730 · App. 14/573,595 · Granted Jan 5, 2016

Multi-chip initialization using a parallel firmware boot process

Inventors: Eberhard Amann (Rottenburg, DE); Frank Haverkamp (Tuebingen, DE); Thomas Huth (Boeblingen, DE); Jan Kunigk (Nufringen, DE)
Assignee: International Business Machines Corporation
G06F9/4405G06F9/4401G06F12/00G06F9/4403G06F9/44505
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,229,730
App. No.
14/573,595
Granted
Jan 5, 2016
Kind
B2
Abstract

Mechanisms, in a multi-chip data processing system, for performing a boot process for booting each of a plurality of processor chips of the multi-chip data processing system are provided. With these mechanisms, a multi-chip agnostic isolated boot phase operation is performed, in parallel, to perform an initial boot of each of the plurality of processor chips as if each of the processor chips were an only processor chip in the multi-chip data processing system. A multi-chip aware isolated boot phase operation of each of the processor chips is performed in parallel, where each of the processor chips has its own separately configured address space. In addition, a unified configuration phase operation is performed to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip.

Claims (44)

1. A method, in a multi-chip data processing system, for performing a boot process for booting each of a plurality of processor chips of the multi-chip data processing system, comprising:

performing, in parallel, a multi-chip agnostic isolated boot phase operation to perform an initial boot of each of the plurality of processor chips as if each of the processor chips were an only processor chip in the multi-chip data processing system;

performing, in parallel, a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured physical address space; and

performing a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip, wherein performing a multi-chip agnostic isolated boot phase operation comprises:

initializing a chip identifier of each of the processor chips in the plurality of processor chips to have a same master chip identifier; and

setting a virtual to physical address mapping structure of a memory management unit of each of the processor chips such that for each pair of virtual address and physical address, the virtual address is the same as the physical address.

2. The method of claim 1 , wherein performing a multi-chip agnostic isolated boot phase operation comprises reading, by each processor chip in the plurality of processor chips, a unique chip identifier for the processor chip from a boot-assist-logic shared by the processor chips, and wherein the boot-assist-logic provides an interface for each of the processor chips to access boot code in a flash memory.

3. The method of claim 2 , wherein the unique chip identifier for a processor chip in the plurality of processor chips is a port number associated with a port of the boot-assist-logic to which the processor chip is coupled.

4. The method of claim 2 , wherein the unique chip identifier for the processor chip in the plurality of processor chips is derived based on an order in which arbitration for a semaphore is won amongst the plurality of chips, and wherein the semaphore protects access to a shared storage location.

5. The method of claim 2 , wherein performing a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured physical address space comprises:

reconfiguring a virtual to real address mapping of each of the processor chips based on a corresponding chip identifier of the processor chip such that each processor chip has its own separately configured address space.

6. The method of claim 5 , wherein performing the multi-chip aware isolated boot phase operation further comprises:

moving boot code from a flash memory from which the boot code was being executed as part of the multi-chip agnostic isolated boot phase operation into the separately configured address spaces of each of the processor chips; and

continuing execution of the boot code in each of the processor chips from the separate configured address spaces of the processor chips.

7. The method of claim 1 , wherein separate system configuration table data structures are generated for each of the processor chips in the plurality of processor chips during the multi-chip agnostic isolated boot phase operation and multi-chip aware isolated boot phase operation, and wherein performing a unified configuration phase operation further comprises merging the separate system configuration table data structures of each of the processor chips into a single merged system configuration table data structure, and providing the single merged system configuration table data structure to an operating system of the multi-chip data processing system for use in managing devices of the multi-chip data processing system.

8. A method, in a multi-chip data processing system, for performing a boot process for booting each of a plurality of processor chips of the multi-chip data processing system, comprising:

performing, in parallel, a multi-chip agnostic isolated boot phase operation to perform an initial boot of each of the plurality of processor chips as if each of the processor chips were an only processor chip in the multi-chip data processing system;

performing, in parallel, a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured physical address space; and

performing a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip, wherein performing a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip comprises:

stopping execution of code on the slave processor chips;

reconfiguring a virtual to physical address mapping of the slave processor chips to map virtual addresses to physical addresses of a memory of the master processor chip; and

executing, by the slave processor chips, code from the memory of the master processor chip using the reconfigured virtual to address mappings of the slave processor chips.

9. A computer program product comprising a non-transitory computer readable medium having a computer readable program stored therein, wherein the computer readable program, when executed on a multi-chip data processing system, causes the multi-chip data processing system to:

perform, in parallel, a multi-chip agnostic isolated boot phase operation to perform an initial boot of each of the plurality of processor chips as if each of the processor chips were an only processor chip in the multi-chip data processing system;

perform, in parallel, a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured physical address space; and

perform a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip, wherein performing a multi-chip agnostic isolated boot phase operation comprises:

initializing a chip identifier of each of the processor chips in the plurality of processor chips to have a same master chip identifier; and

setting a virtual to physical address mapping structure of a memory management unit of each of the processor chips such that for each pair of virtual address and physical address, the virtual address is the same as the physical address.

10. The computer program product of claim 9 , wherein performing a multi-chip agnostic isolated boot phase operation comprises reading, by each processor chip in the plurality of processor chips, a unique chip identifier for the processor chip from a boot-assist-logic shared by the processor chips, and wherein the boot-assist-logic provides an interface for each of the processor chips to access boot code in a flash memory.

11. The computer program product of claim 10 , wherein the unique chip identifier for a processor chip in the plurality of processor chips is a port number associated with a port of the boot-assist-logic to which the processor chip is coupled.

12. The computer program product of claim 10 , wherein the unique chip identifier for the processor chip in the plurality of processor chips is derived based on an order in which arbitration for a semaphore is won amongst the plurality of chips, and wherein the semaphore protects access to a shared storage location.

13. The computer program product of claim 10 , wherein performing a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured address space comprises:

reconfiguring a virtual to real address mapping of each of the processor chips based on a corresponding chip identifier of the processor chip such that each processor chip has its own separately configured address space.

14. The computer program product of claim 13 , wherein performing the multi-chip aware isolated boot phase operation further comprises:

moving boot code from a flash memory from which the boot code was being executed as part of the multi-chip agnostic isolated boot phase operation into the separately configured address spaces of each of the processor chips; and

continuing execution of the boot code in each of the processor chips from the separate configured address spaces of the processor chips.

15. The computer program product of claim 9 , wherein separate system configuration table data structures are generated for each of the processor chips in the plurality of processor chips during the multi-chip agnostic isolated boot phase operation and multi-chip aware isolated boot phase operation, and wherein performing a unified configuration phase operation further comprises merging the separate system configuration table data structures of each of the processor chips into a single merged system configuration table data structure, and providing the single merged system configuration table data structure to an operating system of the multi-chip data processing system for use in managing devices of the multi-chip data processing system.

16. A computer program product comprising a non-transitory computer readable medium having a computer readable program stored therein, wherein the computer readable program, when executed on a multi-chip data processing system, causes the multi-chip data processing system to:

perform, in parallel, a multi-chip agnostic isolated boot phase operation to perform an initial boot of each of the plurality of processor chips as if each of the processor chips were an only processor chip in the multi-chip data processing system;

perform, in parallel, a multi-chip aware isolated boot phase operation of each of the processor chips where each of the processor chips has its own separately configured physical address space; and

perform a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip, wherein performing a unified configuration phase operation to select a master processor chip from the plurality of processor chips and configure other processor chips in the plurality of processor chips to operate as slave processor chips that are controlled by the master processor chip comprises:

stopping execution of code on the slave processor chips;

reconfiguring a virtual to physical address mapping of the slave processor chips to map virtual addresses to physical addresses of a memory of the master processor chip; and

executing, by the slave processor chips, code from the memory of the master processor chip using the reconfigured virtual to address mappings of the slave processor chips.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2014
From: AMANN, EBERHARD; HAVERKAMP, FRANK; HUTH, THOMAS; KUNIGK, JAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 034531/0452 →
Continuity (2)
Continuation 13314733 · Dec 8, 2011
Related Publication 20150106613A1 · Apr 16, 2015