[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need to slow down some machines



  Some time ago, a notoreous unreliability in CADR-10
found to be due to the clock simply not allowing sufficient
time for the logic to settle.  The problem has also been
seen on other machines.  I have been requested to further
document this episode.
  The problem manifests itself during the execution of a
POPJ-EQUAL instruction.  Typically, one finds that the
machine has dropped dead and that the return to the main
loop, which should be in location 0 of U memory is instead
in location 20.  I determined this was caused by the
microstack pointer failing to decrement properly, due to
inadequate setup time for the chips involved before the clock.

  This critical path is:
  (1)  DATA must appear at ALU inputs
  (2)  the A=B output of the ALU must set up
  (3)  the A=B line (which is wired-or'ed and has only resistive
       pullup) must rise.
  (4)  a couple of gates on the FLAG print, setting up JCOND.
  (5)  logic on the CONTRL print, setting up -SPUSH
  (6)  the micro-stack pointer itself on the SPC print.  In particular
       the low order up-down counter must set up its carry out
       output before the high order one (which contains only one
       active bit) can "start".

  Adding up the manual propogation times for the chips involved,
I determined that the clock simply was not long enuf in the worst
case (I used 10ns for step three.  Empirical evidence it takes at
least that long).
  Therefore, I slowed the clock for SPEED 2, no ILONG to 180 ns from
170 ns.  Note that 180 ns was the "advertised" microcycle of the machine
all along anyway.  This cured the problem with CADR10.

  Subsequently, I scoped other machines (which had not been observed
to fail) to see how much margin they had.  Sure enuf, I found that
they had very, very little.

  Since this problem is relatively easy to identify, (once you are
aware of it),  I do not believe it is desirable to slow down machines
which have not caused trouble.  However, at the first hint of this
problem, the machine should clearly be slowed down.

  Currently, CADRs 3 and 12 have been modified in addition to CADR10.