A method of communicating between
processing units on different
integrated circuit chips in a multi-processor computer
system by issuing a command from a source
processing unit to a destination
processing unit, receiving the command at the destination processing unit while the destination processing unit is processing program instructions, and accessing registers in
clock-controlled components of the destination processing unit without interrupting processing of the program instructions by the destination processing unit. The access may be a read from status or mode registers of the destination processing unit, or write to control or mode registers. Many processing units can be interconnected in a ring topology, and the access command can be passed from the source processing unit through several other processing units before reaching the destination processing unit. Each of the processing units is assigned a respective, unique identification number (PID) in addition to one or more optional "special" tags which are not necessarily unique, and an external command (XSCOM) interface on a given
chip recognizes only those commands that include the corresponding
chip tag, unless the command is a broadcast. Commands may be directed to subgroups of processors by implementing masks against the PID, selected portion of the PID, or other "special" tag in a broadcast fashion. The XSCOM interface also has the ability to block any broadcast command (e.g., reset) to itself when that command was issued by its associated processing unit (a "Block Self" mode). The processing units are interconnected via a fabric
bus, and the XSCOM interface preferably uses an additional communications line that follows the topology of the fabric
bus or could alternately use command / data packets across the existing fabric
transmission protocol. The service processor has access to this command interface through an external port (e.g. JTAG) and
assembly code running on the processing unit has access to the command interface via special
assembly code sequences.