Fortunately, there is a way to serialize the access to the registers in a manner that is both efficient and effective. This is done by a broadcast command. A broadcast command is received by the device over a command bus. These commands are then sent to the XM protocol registers on the devices. The commands may be either a control command or a setup command. When the command is received, the receiving device sends a response.
Each XM protocol register has a number of bits that are defined. These bits are called the control flags. Each bit is a response to each byte of the command. To be effective, a broadcast command should use the same definitions for each register on each device. For example, a device can derive its default slave address from its pin straps or from its HID/LID.
Conventional XM protocols utilize a byte sequence of commands. These include Byte-Enable, Byte, Byte, a mask byte, and a byte of data. The Byte-Enable, Byte pair is helpful if the bit fields of a particular device are dissimilar. Also, the mask byte enables selective updating of a protocol register field. In some cases, the Byte-Enable, Byte, a mask, and a byte of data may be combined in a byte sequence. Those combinations will be trimmed to two bits if possible.
Another type of broadcast command is an alternate enhanced command. An alternate enhanced command includes an additional byte of masking before each data byte. It is similar to the full broadcast command described above. But it also has a reserved field of four bits. Specifically, it contains an offset value, a one bit access mode indicator, and a masking byte. Unlike the full broadcast command, the additional byte is not used in the second access mode.
The use of an alternate enhanced command format is advantageous because it can enable a host computer to simultaneously access a large number of device registers. It can also allow the host computer to access the same register offset across a group of devices. Moreover, it can enable the host to update the HID/DIMM_ID of local bus devices. Using this method, a host can improve its performance by several fold.
Broadcast or multicast transactions can be performed to devices that are connected to an XM bus. They can be used to update the HID/DIMM_ID on local bus devices, or to access the same registers on different devices.