The DRTE Computer (page 3)
Though Norman Moody was the Director of the Electronic Laboratories at DRTE, David Florida was the central figure behind the design of the DRTE computer. () It was his conception of what a computer should be that that determined the direction the computer's overall design took. One can discern three important elements in Florida's philosophy of computer design :
- where possible the machine should be speeded up by building input/output and basic operations into the hardware instead of relying on software.
- the machine should carry out computations in a manner similar to the way humans carry out arithmetic calculations. For example, in addition, one number is added to a second to produce a third number. This approach to the arithmetic unit gave rise to a 3-address architecture.
- the order code should be easily remembered to facilitate efficient programming. This requirement led to formulating an extensive but simple mnemonic code.
Vacuum tube technology had put significant limitations on the practicality of large computer systems. Because of the transistor's small size and reduced power requirements, more complex computer circuitry could now be easily achieved. Florida reasoned "...that the complexity of any equipment [was] ultimately determined by the failure rate of its components"(Florida,1960:300) (. Florida realized that solid state electronics was producing more reliable components everyday. In 1960 he pointed out that an experimental arithmetic unit had been running for over 2 1/2 years without one transistor failure. The diodes showed a 0.016% failure rate over the same period ( ). Florida concluded that cost and not reliability was the only factor limiting. the complexity one could incorporate into the hardware. )
Florida saw the DRTE computer's extra circuit complexity as being most desirable.
"Built-in floating point arithmetic can be used to remove the programmer's scaling factor bogey. A three-address code can be used enabling more work to be done with each command. ...More hardware can be built to organize iterative loops and to make it easy to get into and out of subroutines. ...Decimal-to-binary and binary-to-decimal conversion processes can be speeded up by building hardware which does these things instead of using the arithmetic unit and cluttering up the memory with the conversion program. A sufficiency of index registers can be provided for automatic address modification and loop counting. Operations such as division and square root can be incorporated" (Florida,1960:300)
Fred Longstaff, who later went on to be the chief architect of the FP-6000 at Ferranti Packard, remembers coming to Ottawa to look at the DRTE computer. Thinking back he feels that "Florida was building more fanciness into the hardware than was really viable at the time. ...He was trying to reach too far with a rich instruction set before its time. ...For example he was building in the square root as an instruction, not even a modern computer does that now. There is a subroutine for it" (Longstaff,1984:7). According to my investigations there was only one other computer, made in France in the early 1960's,that had the square root built into the arithmetic unit. This machine also happened to be one of the rare machines using the 3-address system.
Why the square root function and not the sine or cosine?
"There were two reasons, I think. One reason was that we knew how to do it. And there was no correspondingly simple way to take sines and cosines. ...Square root is fairly easy to implement with hardware. If you can implement division with hardware, you can implement the square root. And so, it was something that could be done. Generally, that kind of reasoning drove a lot of the DRTE computer ideas; if it could be done, do it. The second reason why it was done was because it was unique. ...There are by the way, some methods that we became aware of later, to find the sines and cosines with hardware. But they were not very tidy. But they have been used. I worked on another project, a navigation computer, with DRB where one needed to find sines and cosines very quickly"(Lake,l985:7)
The Binary-to-Decimal and Decimal-to-Binary conversions were carried out automatically by special circuitry. Most computer systems used special subroutines to carry out these conversions. Florida made every effort to free up the computer's arithmetic unit and memory from any unnecessary subroutines. All this war done in the name of faster computational speed.
George Lake does not agree with Longstaff's criticism. However, Lake sees a different weakness in Florida's efforts to seek hardware solutions over software solutions. "By building those things into the hardware, you increase the speed at which you can do the basic operations, but you reduce the flexibility to handle unforeseen formats, conditions, and things like that" ( (Lake,1985:6). Lake's observation points out a fundamental difference in perception that was appearing within the group as to the significance of the computer. The earlier circuit group who saw the computer as a vehicle for transistor circuit research were giving way to a group that saw the computer itself as the object of research. The latter group was more interested in software development. Lake was part of the latter group. )
The computer's 3-address system was a consequence of Florida's desire for programming simplicity. Florida wanted the programming of a problem to "...follow the usual pencil and paper methods as closely as possible". In his eyes three address arithmetic was more natural to people than single address arithmetic. He also wanted the commands required to execute a given problem reduced to a minimum. Two addresses were used to specify the memory location of the operands and the third address gave the location to which one wanted the result of the operation transferred to.
The DRTE computer did not use an accumulator as had been the custom in most earlier machines. Instead of performing arithmetic operations against an accumulator, in the DRTE computer it appeared to the programmer that one was performing these operations directly against the memory. The idea of a three address instruction format was not new but its implementation was rare. The first notable European computer to use a 3-address system was the Ferranti Ltd. Orion computer in 1961. Cobbold and Lake, two engineers involved in the design of the DRTE computer believe that their machine could have well been the first, or one of the first, machines to implement 3-address instruction formats.
At the time when Florida was contemplating the architecture of the computer, programming languages were quite rudimentary and internal memory was quite limited. As a consequence Florida sought hardware solutions in order to simply the task of programming. With the large memories in today's computers and the sophisticated higher level languages available, three address instruction formats are not needed to simplify the task of scientific programming.
The basic word length in the computer was 40 bits. Non-floating point numbers were 39 bits long and one bit for the sign (Fig. 5). Floating point numbers had an eight bit exponent with one bit for the sign and a 32 bit fractional part with one bit for the sign (Fig. 6). The command word was divided into four 10 bit segments: 10 bits to specify the order code and 10 bits to specify the address of a word in core memory (Fig. 7).
An experimental model of the arithmetic unit was completed and tested in 1957. However, construction on the full computer commenced in 1958 and was completed in 1960. The overall system is described in Fig. 8.
"The Flexowriter is used to produce an eight hole punched tape as well as a typewritten copy of the program. The model used has 32 alphabetic characters (AB--Z---), 10 numeric characters (012--9), plus and minus signs, and upper and lower case shift. Operands are typed using the lower case numerals, and command words using the upper case alphabetic characters" (Cobbold & Florida,1960:5) (Fig. 9). ()
The paper tape was one inch wide and each letter or decimal digit formed one character or row of holes across the tape. The paper tape reader was a high speed photoelectric reader that could feed information to the input organ at a rate of 600 characters. () The input organ would then organize the information and transfer it serially to the Decimal/Binary Converter. After each 40 bit word the input organ would send an end-of-word message to the converter and also tell it if the word was a floating or non-floating point. In the case of commands words, the input organ would tell the converter when it was appropriate to convert and where to store the result. () Using a clock speed of 5 microsecond (1 Megcycle/sec) - which for its time was one of the fastest, the basic operating times of the computer's serial mode Arithmetic Unit were as follows () :
|Operation||Floating Point||Non-Floating Point|
|Add||50-365 microseconds||200 microseconds|
|Subtract||50-365 microseconds||200 microseconds|
|Multiply||90-5300 microseconds||3.3 milliseconds|
|Divide||5.3 milliseconds||8.2 milliseconds|
|Square Root||5.3 milliseconds||8.2 milliseconds|
|Logical AND||200 microseconds|
|Write Memory Cycle||10 microseconds|
|Read/Write Memory Cycle||10 microseconds|
The Arithmetic Unit could perform 19 operations: Add, Subtract, Multiply, Divide, and Square Root in either Floating or Non-Floating Point; Double-Precision Addition and Subtraction in Floating Point; Multiplication and Division could either be rounded off or not; Collate; Shift Left; Shift Right; Grab (Florida,1959). ().