Patent ID: 7493468
Filing Date: 2009-02-17
Classification: G06F

Abstract:
1. A method, in a multiprocessor system comprising at least one hardware processor, for broadcasting data to a plurality of processors, comprising: a. modifying, for each processor of the plurality of processors, a starting address for an assigned memory region to be a common starting address for the plurality of processors; b. writing data to be broadcast to the plurality of processors to a memory region corresponding to the common starting address; and c. modifying, for each processor of the plurality of processors, the starting address for the assigned memory region to be an original starting address that is not common among the plurality of processors after writing the data to be broadcast to the memory region corresponding to the common starting address, wherein modifying the starting address for a memory region comprises: d. writing to an identifier register associated with a processor, a common identifier value, wherein the common identifier value is the same for each of the processors in the plurality of processors, wherein the starting address is determined by the following relationship: e. where the processor_identifier is an identifier value for a processor provided in an identifier register associated with the processor, size is a size of a memory region associated with the processor, and base_offset is an offset address value for a first memory region, and wherein the operation of modifying, for each processor of the plurality of processors, the starting address for the assigned memory region to be an original starting address that is not common among the plurality of processors comprises: f. placing all of the processors in the plurality of processors into a State Retained and Isolated (SRI) mode of operation except for one active processor; g. writing an original identifier value to the memory region associated with the SRI mode processors; and h. causing the active processor to read the original identifier value and set its identifier value in the identifier register to the original identifier value; and i. iteratively repeating the placing, writing, and causing steps such that each processor in the plurality of processors has its identifier value returned to an original identifier value.