MBTA: Boot Sequence
Andre DeHon
Original Issue: July 1990
Last Updated: Wed Nov 10 22:17:45 EST 1993
This note describes the boot sequence for an MBTA multiprocessor. This document will, no doubt, be fleshed out and become more detailed as MBTA design and construction progresses. Many of the details discussed here are described elsewhere in the documentation regarding the components to which they relate (tn20) [DeH90d] [DeH90c]. This note attempts to collect this information into a coherent whole.
One or more nodes of the MBTA multiprocessor will be connected to a
T-Station host interface (tn20). When MBTA powers up
should be asserted for all processors on all nodes. If there are multiple
T-Station interfaces, only the master T-station will drive
and
(tn27).
and
should be asserted at power up.
The node directly connected to the T-Station interface will be the boot
node. T-Station will fill the node's memory with the data the node
processor needs to boot and begin processing. Node memory is filled by
writing directly into the node's memory. MBTA configuration information
( e.g. number of dummy cycles, node number) should be written into
the appropriate locations for the processor to find it. Once the node
memory is properly loaded, T-Station will boot the node by deasserting
. T-Station should watch
to verify that the
processor succeeded in booting.
should be deasserted at some point while the host is
booting the node. It should probably be deasserted just before the
processor is reset.
may be deasserted at any time after
the power has stabilized to all components. It must be deasserted by the
time the processor attempts to configure the network interfaces.
Once the processor is running, it should go on to initialize the rest of the node. This will entail configuring the net-in (tn24) and net-out (tn23) units accordingly.
If multiple nodes are attached to T-Station interfaces, each can be loaded and booted in this manner.
Once loaded and configured, the boot node uses the network to load and boot other nodes. Using raw network read and write operations, a booted node can write the appropriate information into an unbooted node's memory. The booted node may need to coordinate with the host interface to obtain any additional data necessary for booting the unbooted node ( e.g. node specific code or data). Once the unbooted node's memory is loaded, the node booting it will send a RESET message to force the node to boot. The node sending the RESET message should wait for and check the acknowledgment from the RESET operation to be sure that the node booted successfully.
Each newly booted processor should start by initializing the rest of its node to configure the network interfaces appropriately.
The booting of nodes can fan-out in an exponential fashion. The original
boot node will boot one other node. Those two nodes can then boot two
others; those four can boot four others, etc. In this manner, all
nodes can be booted in
rounds. If we pay attention to the
detailed wiring patterns in each MBTA machine, it should be possible to
choose groups of nodes which can boot other groups of nodes without
conflicting for network access. Such a partitioning will allow this boot
sequence to occur without blocking in the network.
Once all the nodes have been booted, a network test sequence should be run to verify the integrity of the network.
After booting all the nodes and testing the network, the boot node
should verify that all nodes are ready to begin emulation. Once each node
indicates it is ready to start emulation, each node except the boot node
should read WAIT_EMULATE to wait for emulation to begin. Once the
boot node has verified that everyone is ready to start emulation and is
waiting for emulation to begin, it will inform the host interface that the
MBTA machine is ready to begin emulation. The host will then deassert
to begin emulation.