HP 9000/500 FOCUS
With Frank McConnell; some parts taken with permission from him
Overview
The HP 9000/500s computers were the early-1980s predecessors of the PA-RISC workstations and the first member of the HP 9000 series. Although already based on a HP 32-bit processor — the FOCUS — they did not have PA-RISC CPUs.
The HP 9000/520 (originally 9020, the first 500 series) was introduced in 1982 by HP and one year later described
in the Hewlett Packard Journal as […] the new HP 9000 computer, a mainframe on the desktop […].
All 500s used the same processors, memory and I/O; differences were in expandability and built-in I/O.
The HP 9000/500 series was withdrawn after several years (production stopped in 1989), probably due to the complexity and cost of its architecture (the five years younger first PA-RISC NMOS implementation had one third the FETs of the FOCUS processor).
Processors
The basic architecture of the 500 series was based on the Hewlett-Packard FOCUS architecture, implemented in five NMOS-III VLSI ICs (fabbed in 1.5 micron): the CPU chip, I/O processor (IOP), memory controller, 128Kb RAM (16 KB cache) and clock driver.
The CPU ran at 18 MHz and had a direct address range
of 500 MB
(probably 29-bit direct addressing for
512 MB). It was fabricated with 450,000 FETs (integrated with three Floating-Point chips onto one finstrate
CPU board).
The FOCUS CPU was microcoded (9,000 38-bit microcode control stores) and implemented the HP 3000 computers’ stack-based architecture in 32-bit.
All internal data paths and registers are 32-bit wide.
Due to heat dissipation difficulties the ICs were mounted on special printed-circuit boards called finstrates
— the board has
a 1mm copper sheet as core to which the IC substrate is epoxied directly.
The I/O Processor (IOP) executes all I/O instructions and handles the transactions from/to the eight attached HP CIO channels. It has an I/O bandwith of 5.1 MB/s (burst) and 973 KB/s (multiplexed). The IOP was also a microprogrammed (4,608 32-bit microcode stores) NMOS-III VLSI chip.
At least one IOP to interface with the I/O buses was needed so up to six CPUs were supported in hardware (but only three in software). Up to two additional IOPs could be installed for more I/O options; each additional IOP needed an I/O expander which provided the I/O channels extension (CIO bus).
The three finstrates boards (CPU, IOP and 256 KB RAM) were installed in a 12-slot (HP 9000/520) module. This allowed configurations of up to 10 MB of RAM; memory cards could be substituted to construct multiprocessor systems. The CPU, IOP and memory controller communicated via the memory processor bus (MPB). The 44-line, 18 MHz, 36 MB/s MPB supports up to seven (other sources mention three/three) CPUs or IOPs and fifteen memory controllers.
Systems
Four distinct models were introduced between 1982 and 1984 (all based on the same architecture):
HP 9000/520 Dawn (also HP 9020):
- Original desktop version
- Introduced 1982 for $30,000
- One CPU (up to three supported)
- 512 KB RAM (10 MB maximum)
- One IOP (up to three supported)
- 5.25″ floppy
- Optional 10 MB hard drive
- 9020A: 12″ color monitor with 512×390 resolution
- 9020B: 12″ monochrome (green) monitor with 560×455 resolution
- 9020B: 13″ color monitor with 560×455 resolution
- 9020AS (bundled system): 9020A with 1 MB RAM, the optional 10 MB hard drive, thermal printer, HP BASIC operating system
- 9020AT (bundled system): 9020A with 1.5 MB RAM, thermal printer, HP-UX operating system (single-user)
HP 9000/530 Corona (also HP 9030):
- 19″ rack-mount version (432×584×222mm w/h/d)
- Introduced 1982 for $23,105
- One CPU (up to three supported)
- 512 KB RAM (10 MB maximum)
- One IOP (up to three supported)
- 9030A: base system (probably equals 9030)
HP 9000/540 Corona (also HP 9040):
- Free-standing cabinet system (356×711×711mm w/h/d)
- Introduced 1982 for $24,115
- One CPU (up to three supported)
- 512 KB RAM (10 MB maximum)
- One IOP (up to three supported)
- 9040A: base system (probably equals 9040)
- 9040AT (bundled system): 9040A with 1.5 MB RAM, HP-UX operating system (single-user)
- 9040AM (bundled system): 9040A with 1.5 MB RAM, HP-UX operating system (multi-user)
HP 9000/550 Shuttle (also HP 9050):
- Industrial system (325×530×234mm w/h/d), similar in shape to HP 9000/300s
- Replaced 530 and 540
- Introduced 1984
- One CPU (up to three supported)
- 512 KB RAM (10 MB maximum)
- Up two four Display Station Buffer Cards (DSBs) [graphics adapters]
- One IOP (up to two supported)
- HP-IB interface (
medium-speed
) - 9050A: base system (probably equals 9050)
- 9050AT (bundled system): 9050A with 1.5 MB RAM, HP-UX operating system (single-user)
- 9050AM (bundled system): 9050A with 1.5 MB RAM, HP-UX operating system (multi-user)
HP 9000/500s in SMP configuration were confusingly also called 600 series (some of the 1980s’ 800s server systems were also called 600 series for a short time).
Possible I/O and expansion options (for all 500s):
- HP-IB card for external HP-IB (HP Instrumentation Bus) devices
- GP-IO card for GP-IO (General Purpose I/O) devices with 8-bit or 16-bit DMA
- Asynchronous Serial
- I/O Expander for eight I/O channels/slots (CIO) for additional IOPs
- LAN 9000, 10 Mbit Ethernet (coax)
Architecture
The FOCUS is a stack architecture, with 230 instructions (both 32 bits and 16 bits wide), a segmented memory model, and no general purpose programmer-visible registers. There are thirty-nine 32-bit registers in the CPU hardware — thirty-one internal 32-bit general purpose registers, two 32-bit ALU registers, and others.
It has a flat address space but that is not really what most programs see: their access to memory is largely described by registers that contain the absolute memory addresses of segment boundaries. For example, instructions come from the current code segment, which is described by three registers: P, the program counter, which is a 32-bit register containing the absolute address of the instruction being executed; PB, the program base register, which is a 32-bit register containing the absolute address of the first word of the current code segment; and PL, the program limit register, which is a 32-bit register containing the absolute address of the last word of the current code segment.
The data segment also has base (DB) and limit (DL) registers, and so does the stack segment (SB, SL). The stack segment also has a stack pointer (S) and a stack marker pointer (Q) which points to the current procedure’s activation record on the stack.
There is also an index register, a status register, a flags register (really a sort of debugging-state register), a message register (interrupting conditions) and message mask register (which enables/disables interrupts from the message register), a breakpoint register, and a couple of registers which are for the memory controllers to talk to the CPU.
The machine instruction set is oriented toward moving words between memory and the top of the stack, and operating on the words at the top of the stack. To take an addition of two numbers: load one, load the other, execute an ADD instruction, and then a store instruction if the result should be kept somewhere in memory other than on the stack.
The stack is in memory, there are (probably) some numbers of
top of stack
registers inside the processor to keep things moving
relatively quickly, but these registers are not otherwise visible
to the programmer.
Software
A choice of operating systems was provided by HP for the 520: HP BASIC or HP-UX. All other 500s (530, 540 and 550) only supported HP-UX. The operating systems were built on top of a common kernel, called SUNOS (no relation to Sun Microsystems’ SunOS Unix) which provided basic operating primitives like memory, processor and I/O management. This was intended to be invisible to the user; the Unix operating system on top ran as a single process on it. SUNOS was not a single binary image, compile-time switches allowed for BASIC and HP-UX builds. HP-UX ran until version 5.3 on HP FOCUS hardware.
There were three revision of SUNOS:
SUN I OS:
- Kernel for BASIC language system on Dawn (the 9000/520)
- Single user
- No virtual memory
- Supports only HP
Focus
(i.e., HP’s own) memory boards - Only for HP 9000/520
SUN II OS:
- Supports both HP BASIC and HP-UX (at that time a port of System III Unix)
- Multiple users
- Virtual memory
- Supports only HP
Focus
(i.e., HP’s own) memory boards - For HP 9000/520, 530 and 540
- Updates for new hardware
- Multiple users
- Virtual memory
- Supports both HP
Focus
(i.e., HP’s own) and commercial third-party memory boards - For HP 9000/520, 530, 540 and 550
HP-UX for the 9000/500 was the first commercial UNIX supporting a multi-processor, multi-user system.
References
Manuals
- HP 9000 Series 500 Computers Models 520, 530, 540, 550 Hardware Technical Data (.pdf) Hewlett Packard (November 1984. Accessed 15 January 2008 at hpmuseum.net)
- 9050 CE Handbook for the HP 9000 Series 500 (.pdf) Hewlett-Packard Company (1985. Accessed 15 January 2008 at hpmuseum.net)
- OVERVIEW SUN III O.S., Hewlett Packard (Version 1.0/September 1984: Hewlett Packard)
Articles
- An 18- MHz, 32-bit VLSI Microprocessor (.pdf, pp. 7-10) Kevin P. Burkhart (August 1983. Hewlett Packard Journal. Accessed 15 January 2008 at hpmuseum.net)
Other
- Hewlett-Packard 9000 Series 520 Frank McConnell (1997. Accessed January 2008)
- HP Computer Museum - Technical Desktops - 9000/520 Jon Johnston (n. d.: WordSong Communications P/L. Accessed 15 January 2008)
- Re: HP 9000/500 vs. Vectra with 386 CPU and 387 co-processor? Roger N. Clark (28 July 1988: USENET posting comp.sys.hp)