PDP11 PeripheralsHbk 1972 - Trailing-Edge
PDP11 PeripheralsHbk 1972 - Trailing-Edge
PDP11 PeripheralsHbk 1972 - Trailing-Edge
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
The internal timer is started every time one processor has the switch in either the<br />
Connected or Controlled positions, and the other processor requests the switch. If<br />
the processor that is requesting the switch removes its request, the timer is<br />
stopped .. If the processor that has the switch lets it go to Neutral, the other pro·<br />
cessor's request will.then be honored and it will get the switch. If the processor<br />
that has the switch re-requests it, the timer will be restarted. Should the timer<br />
ever time-out, the switch is forced to the neutral position, and then, if a request<br />
for the switch is waiting, the switch will honor, it. Thus, if the processor that has<br />
the switch re-requests it at the same time that'the timer times out, the switch will<br />
go to Neutral and then return to the first processor, since that processor had the<br />
switch last.<br />
If the timer is running and a processor stops or hangs because of a failure, the<br />
switch will not be referenced within this time and will automatically go to the neutral<br />
position, when the other processor can get the switch.<br />
The way that the timer works means that the following rules should be followed to<br />
prevent a processor that is hung in a program loop from holding on to the switch<br />
by re-requesting it.<br />
1. The re-request of the switch should not be put in basic interrupt service routi<br />
nes, program loops, or done usi ng the T-bit trap.<br />
2_ The re-requests should be put in the main-line program, to check that it is getting<br />
executed as often as expected.<br />
3. The placing of the re-requests must be carefully considered to make sure that<br />
no legal combination of interrupts, traps and subroutine calls that cause leaving<br />
the main-line program could result in not re-requesting the switch often<br />
enough.<br />
If the switch is in the connected state (as opposed to Controlled) when the timer<br />
times out, the bus switch will wait up to 5 microseconds to synchronize with the<br />
processor before disconnecting. If nothing is happening on the switched bus, the<br />
bus switch will automatically switch to Neutral after that time. Thus, if the machine<br />
is halted or hung, the switch will change position without waiting to synchronize.<br />
This might, however, cause the processor to hang. To cause a working<br />
processor to hang, the timer must time out and the processor must be doing a<br />
Wait instruction. About 5 microseconds after the time-out, a device on the<br />
switched bus must then request use of the bus (for either a DMA transfer or interrupt).<br />
If the switch disconnects just as the processor starts to service the bus<br />
request, the processor may hang. The way to prevent this is to make sure the<br />
timer never times out. It should be noted that timeouts are fatal errors, and<br />
should never occur in a correctly functioning system (the system being the combined<br />
software and hardware).<br />
7.2.5 * Interprocessor Communication<br />
To enable a minimum of communication between the two processors, two bits are<br />
provided for each processor. One bit is an interrupt enable bit; the other is a communication<br />
bit. A processor gets an interrupt when its interrupt enable is set and<br />
the other processor's communication bit is set. The interrupt occurs only when<br />
the "AND"of the two bits becomes true.<br />
In a non-fail-soft environment, these bits, in conjunction with the not-neutral bit<br />
can be used by two processors to control the switch without having the timer go-<br />
103