Distributed multi-core memory initialization
First Claim
Patent Images
1. A method for causing a plurality of processing nodes to perform a boot process comprising a memory initialization task, comprising:
- dividing at a control processing node a memory initialization task into a plurality of memory initialization sub-tasks,distributing the plurality of memory initialization sub-tasks amongst the plurality of processing nodes so that each memory initialization sub-task has a corresponding processing node by assigning one of the plurality of processing nodes a memory initialization sub-task of reading a serial presence detect (SPD) value from a DIMM memory, and assigning another of the plurality of processing nodes a memory initialization sub-task of executing complex initialization tasks that do not depend on the SPD value,executing each memory initialization sub-task at the corresponding processing node to generate a sub-task result, andcombining sub-task results from the plurality of processing nodes at the control processing node, wherein the plurality of memory initialization sub-tasks may be executed in parallel or in sequence at the plurality of processing nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
In a system having a plurality of processing nodes, a control node divides a task into a plurality of sub-tasks, and assigns the sub-tasks to one or more additional processing nodes which execute the assigned sub-tasks and return the results to the control node, thereby enabling a plurality of processing nodes to efficiently and quickly perform memory initialization and test of all assigned sub-tasks.
26 Citations
17 Claims
-
1. A method for causing a plurality of processing nodes to perform a boot process comprising a memory initialization task, comprising:
-
dividing at a control processing node a memory initialization task into a plurality of memory initialization sub-tasks, distributing the plurality of memory initialization sub-tasks amongst the plurality of processing nodes so that each memory initialization sub-task has a corresponding processing node by assigning one of the plurality of processing nodes a memory initialization sub-task of reading a serial presence detect (SPD) value from a DIMM memory, and assigning another of the plurality of processing nodes a memory initialization sub-task of executing complex initialization tasks that do not depend on the SPD value, executing each memory initialization sub-task at the corresponding processing node to generate a sub-task result, and combining sub-task results from the plurality of processing nodes at the control processing node, wherein the plurality of memory initialization sub-tasks may be executed in parallel or in sequence at the plurality of processing nodes. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system comprising:
-
a system memory; and a plurality of processing nodes, each of the processing nodes comprising a processor core, a communication interface to at least one other of the plurality of processing nodes, and a memory controller for managing data flow to and from the system memory, the plurality of processing nodes comprising a master processing node and a plurality of execution processing nodes, where the master processing node is configured to perform a memory initialization task on the system memory by dividing the memory initialization task into a plurality of memory initialization sub-tasks and assigning the plurality of memory initialization sub-tasks to the plurality of execution processing nodes so that each assigned memory initialization sub-task has a corresponding execution processing node, wherein the plurality of memory initialization sub-tasks may be executed in parallel or in sequence at the plurality of execution processing nodes so that memory initialization sub-tasks assigned to one of the plurality of execution processing nodes can be executed out of order without dependency on other memory initialization sub-tasks assigned to another of the plurality of execution processing nodes. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a memory array; and a plurality of processing nodes, each of the processing nodes comprising a processor, a memory controller for communicating with the memory array, and a communication interface to at least one other of the plurality of processing nodes; wherein one of the plurality of processing nodes divides a memory initialization task into a plurality of sub-tasks and assigns the plurality of sub-tasks to the plurality of processing nodes; and wherein each of the plurality of processing nodes can obtain information from any portion of the memory array while executing assigned sub-tasks and returns sub-task execution results to the one of the plurality of processing nodes, thereby enabling the plurality of processing nodes to efficiently and quickly perform memory initialization of the memory array. - View Dependent Claims (16, 17)
-
Specification