Hewlett-Packard Calculator Architectures
Thomas E. Osborne
Summary This chapter focues on some of
the more important architectural differences between the first Hewlett-Packard
electronic calculator, the HP 9100A (c. 1968), and its descendants, the
HP 9810/20/30. The architectures of the two generations are so different
that the reasons for making the change are, in many ways, as interesting
as the differences in the architectures.
Except for using similar components, the early programmable calculators had surprisingly little in common with the concurrent digital computers. Among the many reasons for the differences, none is as large as the fact that very few, if any, of the early calculator designers were defectors from the ranks of computer designers. Contrary to the old adage, anyone engaged in designing computers could see that the grass was very green on his side of the fence¾ so green that few even acknowledged the existence of other pastures.
A quick glance at some of the objectives of the early electronic calculator manufacturers shows that even if there had been defectors from the computer field, precious little technology would have been directly applicable to the calculator environment.
Would a technology that understood megabit core memories designed to operate in a controlled temperature environment have been capable of stretching enough to design inexpensive kilobit memories to operate from 0 to 55° C? Was there any assurance that those who were skilled in the design of microsecond parallel binary adders would find these skills useful in designing inexpensive serial decimal adders? Who knows? The test was never run.
Because the early calculator designers had so little practical exposure to the inner workings and hidden mechanisms of computers, it follows that their designs would not necessarily be an extrapolation from the concurrent computer architectures. Both groups of designers had the same building blocks and shared somewhat similar problems, but in the same way that different life forms sprang from the same primordial soup, early calculator architectures were quite a different species from concurrent computer architectures.
The first Hewlett-Packard programmable calculator, the HP 9100A (c. 1968) [Hewlett-Packard, 1968], was micro-programmed to perform floating-point arithmetic and to evaluate the forward and inverse circular, exponential, and hyperbolic transcendentals. Its I/O was also controlled by its inductive ROM, which contained 512 64-bit words. The ROM's extra-wide micro-words allude to the nonstandard architecture found in the HP 9100A.
Instead of having an arithmetic and logic unit (ALU) connected to various registers by a common bus, the HP 9100A had no ALU per se. Instead, its arithmetic section was distributed throughout the system by assigning small, but specialized, tasks to the various registers within the system. Separate buses then interconnected selected pairs of these registers. As a consequence, several (typically three to seven) micro-instructions were executed simultaneously during each micro-word time. Half of the 64-bit micro-word was used to encode these micro-instructions. The other half of the 64-bit word was used for addressing and to test conditions of both internal registers and asynchronous external signals generated by I/O devices. The results of each test determined the next ROM address and, at the microprogrammer's discretion, whether or not to suppress the action of the micro-instructions in the other half of the ROM microword. Figure 1 pictorially demonstrates the syntax of a typical micro- word used in the HP 9100A.
The micro-programmer would interpret Fig. 1 as follows:
"When the conditions defined by QX are true, execute the set of micro-instructions (IA, IB. IC, . . . ) and go to ROM address 'j' for the next micro-word; when QX is false, inhibit all microinstructions [symbolically shown by the shaded corner in the right exit of the diamond] and go to address 'k' for the next microword." Notice that, unlike what happens in a standard flowchart, in which the instructions within the box precede the test designated by the diamond, both actions occurred simultaneously in the HP 9100A.
The advantages of conditionally inhibiting a set of microinstructions are many, but one frequent use stands out. In most
previous | contents | next