Pin Name I/O Pin Description
nRequestOut[0..1] I These 8 x 2 wires are used by requesting devices to communicate to their arbiter. See Section 4.1.1 for a complete explanation of their use.
nGrant O The arbiter uses these 8 x 1 nGrant wires to respond to requesting devices. nGrant is 1 during every grant cycle to its particular port and 0 otherwise.
nSStopOut I These 8 x 1 wires are used by requesting devices to initiate a Synchronous Stop.
nSharedOut I The 8 x 1 nSharedOut wires are used by requesting devices to communicate to their arbiter whether they think that a particular real DBus address refers to data present in multiple caches.
nOwnerOut I nOwnerOut is asserted by a requesting device if it is the owner of a particular address.
nHiPGrant O This wire is asserted one cycle before the first cycle of a grant if the arbiter is responding to a high-type request from the requesting device. At other times the state of nHiPGrant is undefined.
nLongGrant O This wire is asserted one cycle before the first cycle of a grant iff the arbiter is responding to a long-packet (5-cycle) request from the requesting device. At other times the state of nLongGrant is undefined.
nSStopIn O nSStopIn is the OR of all 8 nBSStopIn wires, delayed by a pipeline stage.
nSharedIn O nSharedIn is the result of ORing the 8 nBSharedIn wires, delayed by a pipeline stage. Each arbiter uses nBSharedIn to tell its requesting devices whether a particular real address is or isn't shared data.
nOwnerIn O The arbiter transfers the value of nBOwnerIn to nOwnerIn and distributes it to each of its requesting devices.
Note that for Synchronous Stop and Shared the arbiter performs the Or function and provides a intermediate storage in the pipeline. For Owner, the wires themselves perform the OR, so that the arbiter's role is reduced to that of providing intermediate storage in the pipeline.
DSerialOut O When DSelect is asserted, DSerialOut sends information from a specified register on the arbiter to the DBus. (This is a Tri-state wire.)
DSerialIn I The arbiter's internal registers receive input from the DBus via the DSerialIn pin.
nDReset O When nDReset is asserted in conjunction with ¬Synchronous Stop for 10 clock cycles the arbiter resets to ready if for operation.
nDFreeze O unused
DExecute O DExecute asks the arbiter to perform an execute cycle instead of a a data/address transfer on the next positive edge of DShiftCK.
DAddress O DAddress indicates that the DShiftCK cycle is transferring address bits. Components are implicitly deselected when DAddress is asserted.
DShiftCK O DShiftCK is the Shift clock for the currently selected scan path. Data is transferred on the positive edge of this signal. If the DAddress line is active, the DShiftCK is used to transfer component address bits instead of data bits. The implication is that DSerialIn, DExecute and DAddress are guaranteed stable by the DBus controller for many nanoseconds after the rising edge of DShiftCK.
nDHybridSel[0..4] O These 5 bits are used to select a particular hybrid on a board. They are used in one of two ways depending upon the value of the HySelDec bit of the arbiter configuration register . If HySelDec is True, nDHybridSel is used in decoded form; that is, if a wire is high, it selects the corresponding hybrid on the board. If HySelDec is False, nDHybridSel is used as a 5-bit binary number that an external decoder uses to determine the which hybrid on the board is selected.
In addition, nDHybridSel is used in combination with BdVersion to encode the type of the board. (c.f. BdVersion)
DBdSel O The value of DBdSel is computed by the following equation:
DBdSel = ((SlotNo = the 4 high-order bits of the internal DAddress register) ' ¬ DAddress). When true, DBdSel indicates that communications from the DBus are intended for this board.
SlotNo[0..3] I An integer from 0..15, that is communicated tfrom the Backpanel that uniquely encodes the position of the arbiter in the machine.
BdVersion[0..1] I A number from 0..3. The connection pattern between BdVersion wires and nDHybridSel wires plus Vdd and Gnd is used to encode information additional information about the board including: revision number and board type. Note that there are 49 (72) possible connection patterns most of which have no meaning at this time.
CKOut O CKOut is used in the clock skew elimination scheme that is implemented by the clock generator.
Clock I This is the DynaBus clock.
RecAdj I RecAdj is an approximately 3V analog signal that sets the threshold on 2V external logic receivers.
ArbReqOut[0..2] O This is a three-bit field that carries the minimum (best) priority level at which a particular arbiter has any device requesting.
OtherArbInT[0..20] I These 7 x 3 wires are used to communicate the highest priority request that is pending with each of the other arbiters in the system. Each group of 3 wires corresponds to ArbReqOut wires for one of the other 7 arbiters in the system.
nBusyOut O nBusyOut is asserted by the arbiter holding the grant until it is nearly finished. It is connected to the nBusyIn wire. (nBusyOut is needed because the length of grants, 2 or 5 cycles, is not known.)
nBusyIn I nBusyIn is connected to nBusyOut. When it is not asserted, the arbiters are free to make another grant.
nBSStopOut O nBSStopOut is the OR of all 8 nSStopOut wires. When a device requests a Synchronous Stop, its arbiter sends nBSStopOut to all 8 arbiters (including itself).
nBSStopIn[0..7] I The 8 nBSStopIn wires receive values from the 8 nBSStopOut wires (one from each arbiter). The OR of these 8 wires determines whether a Synchronous Stop should occur.
Note that Synchronous Stop can be asserted anywhere in the machine. Very shortly after it is asserted the arbitration system stops making grants, but will continue to accumulate requests. When Synchronous Stop is released, the accumulated requests will be granted. Synchronous Stop can be used to help debug the machine by stepping the machine 1 transaction at a time. This is done by asserting Synchronous Stop, then releasing Synchronous Stop for 1 cycle before reasserting it. N.B. This will be true when the bus in the first implementation is fixed. The fix is contained in [Indigo]<Dragon7.0>Arbiter25>ArbSysTests.mesa.
nBSharedOut O nBSharedOut is the OR of the 8 nSharedOut wires. Each arbiter sends nBSharedOut to all 8 arbiters (including itself), in order to determine the number of cached copies that exist for a particular real address in memory.
nBSharedIn I The 8 x 1 nBSharedIn wires are connected to the 8 nBSharedOut wires (one from each arbiter). The OR of these 8 wires determines whether a particular real address is shared data. Each arbiter is able to send out a nBSharedOut for one transaction and compute the OR of the 8 nBSharedIn for the transaction that is one stage further in the pipeline during the same cycle. (See Figure XX )
nBOwnerOut O One cycle after a requesting device asserts nOwnerOut to its arbiter, that arbiter asserts nBOwnerOut to all the arbiters (including itself) in the system.
nBOwnerIn I nBOwnerIn receives its value from the nBOwnerOut wire. Note that a single arbiter can receive a value for nBOwnerOut for one transaction and receive a value for nBOwnerIn for a transaction one stage further in the pipeline during the same cycle.
nStartGrant O nStartGrant is asserted by an arbiter during the first cycle of a grant. The combined nStartGrant wire for all 8 arbiters performs an OR of the nStartGrant wires for the individual arbiters so that it is low if it is the first cycle of a grant for any of the arbiters. Having the nStartGrant wire low during the first first cycle of any grant is not necessary for the correct functioning of the system; however, it is useful for debugging because it makes it easy to determine when grants are being made.
nStopAct I When asserted (at all arbiters synchronously), nStopAct causes the arbiters to postpone all grants.
TInv[0..1] I/O TInv (Test inverter) is an inverter that was included in the design solely for testing purposes. TInv[0] is the input; TInv[1] is the output.
TRec2v[0..2] I/O TRec2v (Test Receiver 2 Volts) is included in the design solely for testing purposes. TRec2v[0] is the input wire to an inverter. TRec2v[1] is an analog input signal. TRec2v[2] is the output of the inverter.
TIOBus
O TIOBus (Test IO Bus) is an experiment intended to generate a Receive/Adjust signal automatically. (It can be ignored.)