article

The HP 3000 series is a family of minicomputers released by Hewlett-Packard in 1973 after a difficult development project. The first models were withdrawn from the market until speed improvements could be made. It was intended to be the first minicomputer delivered with a full featured operating system with timesharing.

Classic Memory Segments: 64K Barrier

Code and data reside in variable-length segments, code, read-only, reentrant and limited to 32,760 bytes and data to 65,528 bytes. MPE loads code segments from program files and segmented Library (SL) files as needed, up to 256 segments in one process.

There could be as much as 32k of memory in a code segment, but calling a routine was based on segment number and routine number within a segment, so a program could theoretically have 64k routines. This was compared to most 16 bit computers that had 64k of address space for everything. The bigger limitation was the data segment and stack segment, which were also 64k. Shared library routines did not permit static or global data since each process had its own data segment. The AGL graphic library got around this by requiring the caller to pass in an array from his own stack or data segment to hold all state information, similar to modern object oriented languages where methods are applied to objects passed in allocated by the caller.

Systems programming was done in SPL, an ALGOL-like language, but allowing inline assembler, and other direct access to the ISA. The standard terminals for the HP 3000 were the HP 2640 series, which supported block mode data entry from forms, as well as character mode.

Classic and PA-RISC XL

The HP3000 family was divided into the "Classic" (16-bit) and "XL" (later IX - 32-bit) families following the introduction of systems based on HP's PA-RISC chips in early 1984. These were not binary compatible, but would run old code at a slower rate, or run recompiled code faster. The earlier "Classic" machines were based on a custom CISC processor. From about 1988 HP3000s using HPPA-RISC-1 processors began shipping in volume and, by 1995, effectively displaced the older family of machines from use although, as with all technologogy shifts, there remained a significant residue of older machines in service.

The 3000 series operating system was originally styled the Multi-Programming Executive MPE (later called MPE-XL and then, after POSIX compliance was added in versions 5.0- 5.5, MPE-IX). Part of the tremendous success of the HP3000 was due to the provision of, with brief exceptions included as part of the Fundamental Operating System (FOS), a vendor developed shallow network database management system (DBMS) called Image (now called TurboIMAGE) that was reputedly inspired (if not actually based upon) the TOTAL DBMS developed by Cincom Systems, Inc. Almost uniquely in computer history, it remains a feature of MPE that forward binary compatablity of executable programs is preserved across all systems and all version of the operating system, regardless of hardware architecture. Programs that ran on the original series II in 1973 can be reloaded from tape onto the last N-Series machines produced in 2003 and run today without recompiling.

As the market shifted towards standardized UNIX systems, which HP had also been promoting, in November 2001, Hewlett-Packard announced that the official End Of Life EOL for the HP3000 would be the end of 2006, and that no new systems would be sold after 2003. In early 2006, Hewlett-Packard announced that limited vendor support for the HP3000 would be extended by two years for certain clients or geographic regions. This is one of the longest lifetimes for a proprietary mincomputer system, outlasting the PDP and VAX series.

Registers? Who Needs Them?

The processor and memory architecture were based on the advanced stack model, and was said to be based on the famous Burroughs stack based computers. Rather than having a small number of registers, for example only an AX and BX register in the case of the HP 1000, operand would be pushed on the same stack used to store local variables and return addresses. So rather than LOAD AX, 0X0001, BX, 0X0002, you would PUSH 0X0001, PUSH 0X0002, ADD, and the microcode would figure out what to load and store from memory and registers. In fact, call instructions enforced a fixed number of arguments, which probably made implementation of a c compiler an interesting project.

Interestingly, however the advanced stack based architecture which had replaced the HP 1000 has today been largely discarded in favor of x86 and x64 processors whose EAX and BAX registers look suspiciously like hyper-evolved versions of the venerable HP 1000, or even older PDP-8

The 16-bit microcoded machines (Series I, II, III, 30, 33, 39, 40, 42, 44, 48, 52, 58, 64, 68, 70, 37, ...) implement a 16-bit word addressed, byte-addressable, segmented, Harvard, Stack Instruction Set Architecture (ISA). Most of the ~214 instructions are 16 bits wide. Stack operations pack 2 per 16-bit word and the remaining few are 32 bits wide.

CISC Implementations

  • Series 30, 33: Silicon on sapphire
  • Series 40, 42, 44, 48: Schottky TTL, 4 Top of stack registers, 105nS microinstruction cycle time → 9.5MHz
  • Series 64, 68: ECL, 8 Top of Stack registers, 75nS microinstruction cycle time → 13MHz, 8kB cache, 60kb WCS, 2 16-bit ALUs

HPPA RISC Implementations

  • HPPA-1.0 Series 925, 930, 935, 949, 950, 955, 960, 980
  • HPPA-1.1 Series 917, 920, 922, 927, 937, 947, 948, 957, 958, 967, 977sx, 987, 990, 991, 992, 995
  • HPPA-2.0 Series 918, 928, 968, 978, 988, 996, A and N class.

References


  • Hewlett Package: HP3000 Computer Systems: General Information Manual; August 1983; 5953-7553

External links


Minicomputers | Hewlett-Packard products

HP 3000 | HP 3000 | HP3000 | HP3000

 

This article is licensed under the GNU Free Documentation License. It uses material from the "HP 3000".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld