MBTA: Node Bus Controller
Andre DeHon
Thomas Simon
Original Issue: August 1990
Last Updated: Mon Nov 8 13:42:47 EST 1993
The node bus control ties the processor, host interface, memory, net-out, and both net-ins together.
The bus controller handles the following tasks:
The node bus controller will deal with directing processor memory
references to the correct units. That is, it will generate the appropriate
chip select and control logic for the various memory mapped units.
Table shows the relevant mappings.
The node bus controller will need to map the boot block into the a region
of real memory. As mentioned in (tn25), Intel insists the boot block
reside in an otherwise unusable section of memory [Int89c].
To satisfy this requirement, the bus controller locates the node's SRAM at
two locations as shown in Table . Host interface yields
complete by obtaining a return value from the node's SRAM memory. Thus,
the host interface yield addresses are simply SRAM addresses with a special
function preceding the actual memory operation.
The node bus controller must deal with three special function addresses. These are the HOST_REQUEST, used to yield control of the node to the host interface, EC_WAIT, used to hold until the end of an emulation cycle, and EM_WAIT, used to stall the processor until emulation begins.
The node bus controller intercepts reads to the HOST_REQUEST
address. It keeps deasserted and asserts HREQ to
indicate to the T-Station interface that the processor has yielded control
of the node to the processor. At this point, the controller also asserts
HOST_BUS to inform net-in that the host interface has
control of the node bus. The node bus controller forwards the host
interface control signals straight to memory allowing the host full access
to the node's SRAM memory. Host access to the node's memory is not
performed in pipelined addressing mode. When the host is finished, the
host interface will assert
. The node bus controller then
completes the read operation to the SRAM address associated with
HOST_REQUEST. The node bus asserts
to the processor so
that it can continue and deasserts HOST_BUS. (tn20) explains
more about yielding to the T-Station host interface.
The node bus controller intercepts reads to EC_WAIT and holds
the processor until the end of the emulation cycle. The controller simply
keeps deasserted until the processor cycle following the
deassertion of EC by the master net-in (see (tn31) for
more details).
Currently, the data returned from the read to EC_WAIT is undefined. Is there anything interesting (and easy) to provide as the completion of this read, or shall we not bother?
After the nodes go through the boot and initialization sequence, each node
must wait for emulation to begin before it can start running its emulation.
This wait is effected similarly to the end of cycle wait. The processor
will issue a read to EM_WAIT. The nodes bus controller recognizes
a read to this address and does not give the processor the
signal until
is asserted indicating that emulation should
begin.
Currently, the data returned from the read to EM_WAIT is undefined. Is there anything interesting (and easy) to provide as the completion of this read, or shall we not bother?
The node bus controller is also responsible for coordinating memory
access among all devices on the bus. During each memory round (8 network
clock cycles), each of the four logical bus devices ( net-in-0,
net-in-1, net-out, and the node processor), may access the memory
once. Each memory access will complete in two network clock cycles.
Normally, each of the devices will access the memory once during its
designated portion of the memory round. However, if a network interface
does not need to use its memory access cycle during the round, the processor
can get a second memory access during the memory round. The basic memory
round is shown in Figure .
The network interfaces share a want bus ( WB) signal. When a
network interface needs the bus on a given round, it asserts WB
and the word enables (<1:0>). See (tn31) for
details on timing. If the network interface does want the bus, then
the bus controller will not allow the processor to access the memory
during the designated memory access. The bus controller will assert
the appropriate SRAM enables based on the network interface's write
enable specification. Note that each network interface will always
get a memory cycle when it wants it. Only one of the net-out
units should request a bus cycle during any memory round since the two
net-out units logically act as one network output.
The processor always gets an opportunity to reference memory during it's designated memory access cycle when it has a memory reference pending. If net-out does not assert WB sufficiently prior to its designated memory cycle and the processor has a pending memory reference, the bus controller allows the memory cycle to service the processor's pending memory reference.
During the processor's designated memory cycle, it can reference any of the
network interfaces. The bus controller uses W/ and
to inform a network interface of a reference from the
processor. These signals are separate from the network interface's write
enable selections so the network interface can set up its memory reference
regardless of references from the processor.
Table summarizes the signals associated with the node
bus controller. Table
is more authoritative
with respect to signal polarity than the figures. Table
summarizes the pin requirements for the node bus control unit.