How fast did the computer process its data ?
The speed of the USSC.The timing of this computer was interesting from 4 perspectives:
1- As a technician I had to deal with a dynamic system in which almost all processes and all data were moving around.
The drum, the registers, the card-reader, the card-punch and the printer all were
rotating while they were processing and communicating.
2- As a designer, when planning to alter circuits (for instance like we did with the circuitry of the timing-band),
one had to be aware that all bits were not only given values according to their places, but more significant according to their timing.
Every 1.4 ÁS made a difference of a factor 10 in the value of a bit!
3- As a programmer I had to be aware that the program I was writing,
was going to be stored on a rotating drum and was interacting with data on the same drum.
Also my programs had to deal with the IO with its own processing speeds.
4- It is interesting to see that the USSC seems slow and limited to us now, or on the other hand,
it is incredible to see how fast and full of possibilities our computers are now.
Astonishing to know is that this computer was really fast when it was purchased in 1962
and that it was used to process the bookkeeping of a big company.
CPU-speed.To establish the speed of this computer there are three ways:
1== The highest speed was performed with a one-instruction-program stored in a register.
These programs were useless, since there was no action to get an operands or to store results.
These speeds in one-instruction-programs were:
1- Addition took 5 word-times, which is 85 ÁS and gave 11,764 additions/S.
2- Multiplications (not truncated) took about 272 ÁS and this gave 3676 multiplications/S.
3- Divisions (not truncated) took about 0.68 mS and per second they did 1470 div/Second.
2== For a programmer the highest speed was achieved in a program without loops.
For instance moving or processing card-data from interlace-patterns was done the fastest in such a program.
Then the maximum speeds were:
1- An addition with loading and storing operands took 0.22mS : 4524 additions per second.
2- Multiplications with loading and storing operands took 0.476 mS : 2100 mult./S.
3- Divisions with care for operands took 0.884 mS, : 1131 divisions per second.
3== Practically one would program arithmetic in loops that returned to certain program-addresses or
one was bound to memory-places to store the operands.
This meant that for each calculation one had to wait for at least one drum-revolution or
when situated on the high-speed bands, for a quarter of a revolution.
This meant that the maximum speed of the arithmetic could never be faster than one quarter of
a drum-revolution of 0.85 mS.
Then the maximum performance was 1176 calculations per second.
One could shorten the execution-time for multiplications and divisions by placing a sentinel (1/4) in the operand, when
such a sentinel in the operand was to be processed, the CPU-logic would terminate this instruction.
This made it possible to calculate two-digit numbers without spending time on processing the other 16 decimals of both operands.
The basics of timing:The drum made 294 revolutions per second, one revolution took 3.38 mS.
It contained one sprocket-track containing a 708,000 Hz signal that was used for timing the complete CPU.
Each bit would take 1.4 ÁS to be read from drum or to be stored by two succeeding ferractors.
Each band contained 200 words of 10 digits, the sign and a one-bit gap: 12 bits length.
A word was read in 17 ÁS. This was called a word time, this was the basic unit in timing for programmers.
The timing-band identified all data-words, it contained their addresses, and controlled the transfers of all IO-data.
Each revolution the timing-band was read: 2400 digits, so its data-speed was 708 kB/S.
The theoretical maximum speed for reading data (in non-looping programs) was 13.2 kB/S.
In normal programming this speed could be 5 kB/S at best.
The printer could print 10 lines of 130 characters of 6 bits each second: 2.6 kB/S.
The card-reader could read 10 cards of 90 columns of 6 bits each second: 1.8 kB/S.
The card-punch processed 2.5 cards of 90 columns of 6 bits in a second: 225 B/S. (Bytes/second)
Compared to modern (2017) computers the speed and the performance was rather low.
A modern processor that contains 4 cores that run at 4 GHz with 64 bits data,
compared to the USSC with 4 bits data processed by one CPU on a clock of 707kHz turns out to be 362,000 times faster,
not taken into account that the CPU was waiting at least 80% of its time for the revolving drum to reach desired addresses.
When the USSC had to enforce a modern console with a data-stream like what was sent to the printer,
we would have needed 400 synchronized CPU's for this task only. To store one screen-shot we needed 200 drums.
In fact the USSC was not more than an electronic device to process punch-cards and for those days, it did it fast.
However the USSC needed three other card-processing devices from older series (interpreter, sorter and collator) to work efficiently.