Bernd Ulmann. :-)
Ah, ones-complement, a specialty of mine..
There really wasn't much of a practical problem with other CDC
implementations of ones-complement; for example, the 1700 had
a ones-complement subtractive adder, and the system documentation
spelled out the resulting conditions under which an arithmetic
operation could produce a -0 result; apart from exceptional
conditions, nearly all of them involved having a -0 as one of
the operands. Under normal circumstances, -0 didn't get in the
way; for the few cases that it might, macroassembler programmers
and compiler code generators would insert an extra "normalizing"
instruction to turn -0 into +0. My guess is that for the 8600
it was thought worthwhile to add logic to eliminate this
occasional code inefficiency.
Complementing a number doesn't require carry logic anyway.
I think you had in mind *negating* using a *twos-complement*
representation. Indeed, the main reason CDC used ones-complement
was that it made some common arithmetic operations slightly
faster (fewer gates).
Virtually all modern architectures use twos-complement, for no
overwhelming reason other than that it is what people expect.
As an ex-CDC logic designer (30 years), who worked on the 7400, a TCS (CDC
version of MECL) version of the 7600, and the 7700, a dual headed 7600,
which were all forunners of the 8600 (I actually did a minor amount of work
on the 8600 before Cray left CDC), As I recall, the output result of the
subtraction pyramid was blocked if all sections had a borrow. An easy
implementation. Did not account for some special cases which could generate
an -0 though. Sorry if details are sketchy, time does erase some of the
finer points of some machine designs.
The STAR-100 design did not share much with the Cray machines (1604, 160,
6600, 7600) They were done by another independent design group, which was
somewhat competing with Cray at CHOPS.
Old Logic Designer