HP 3000 (Ofer Abarbanel online library)

The HP 3000 series[1] is a family of minicomputers from Hewlett-Packard.[2] It was designed to be the first minicomputer with full support for time-sharing in the hardware and the operating system, features that had mostly been limited to mainframes, or retrofitted to existing systems like Digital’s PDP-11, on which Unix was implemented. First introduced in 1972, the last models reached end-of-life in 2010, making it among the longest-lived machines of its generation.

The first model of the 3000 series was released in 1972, based on a custom silicon on sapphire CISC processor. These were withdrawn from the market in 1973 to address performance problems and OS stability. After its reintroduction in 1974, it went on to become a reliable and powerful business system, one that regularly won HP business from companies using IBM’s mainframes. Hewlett-Packard’s initial naming referred to the computer as the System/3000, and then called it the HP 3000.

In the early 1980s, HP began development of a new RISC processor, which emerged as the PA-RISC platform. The HP 3000 CPU was reimplemented as an emulator running on PA-RISC and a recompiled version of MPE. Known as the “XL” versions, the earlier CISC models retroactively became the “Classic” series. The two sold in tandem for a short period, but the XL series largely took over in 1988. Identical machines running HP-UX instead of MPE XL were known as the HP 9000.

HP later renamed the computer the HP e3000 to emphasize the system’s compatibility with internet and web uses.[3] HP initially announced the systems would be designated to be at end-of-life at HP in 2006, but extended that several times to 2010. The systems are no longer built or supported by the manufacturer, although independent companies support the systems.


HP 2000

While looking for a computer system to control ever-more-complex test equipment, HP briefly considered buying Digital Equipment Corporation (DEC) but was ultimately unimpressed and did not attempt a deal. They later found a small company, DSI, working for Union Carbide that had essentially “stretched” DEC’s PDP-8 from 12 to 16-bits. HP purchased DSI and merged it into its Dymec division.[4] The DSI design became the basis for the HP 2100, introduced in 1966, initially marketed as a “test and instrumentation computer”. To their surprise, HP found that the machine was selling quite well into the business market. This led to a series of updated versions with better input/output to handle business workflows.

In 1968, the line was further expanded with the HP 2000, a series of machines that were made up from collections of parts from the HP 2100 family, with most systems using a low-end 2100 series CPU as a terminal controller and high-end CPU as the main processor. The systems ran HP Time-Shared BASIC, and depending on the model, could support between 16 and 32 users at one time. The machines were an immediate success, quickly becoming one of the best-selling systems in the timesharing market, and propelling HP to become the 3rd largest minicomputer vendor.

Alpha and Omega

As the success of the HP 2000 series became clear, in 1969 the designers in Cupertino Lab decided to begin the development of machines dedicated to the office role, as opposed to the HP 2000, which was made up of various bits and pieces never originally designed for the task. Two basic systems were outlined, the “Alpha” was essentially an HP 2100 built using newer components and improved memory handling, while “Omega” was a much larger 32-bit design that would support large numbers of users.[5]

Initially, the two systems were to be released at about the same time. However, almost all development took place within Omega, and few, if any, engineers were active on Alpha during 1969. In contrast to the 16-bit Alpha, Omega would be a 32-bit computer with up to 4 MB of main memory shared among up to four central processing units (CPUs). The CPUs were designed to be programmed in a high level language, like the successful models from Burroughs that were programmed in a custom systems programming language rather than assembler. Support for multiprogramming and memory protection would be built in.[5]

As development continued, the project appeared to be too large for HP to complete using internal funding. This would require the company to take on external debt, which management considered too risky. In the fall of 1970, Tom Perkins was promoted to Corporate Development and decided to cancel the Omega project. This resulted in several employees wearing black-velvet armbands to mourn the death of the project, and some dismay over being reassigned to “just another 16-bit machine.”[5]

By this time the small amount of development on Alpha had changed the nature of the project significantly. Originally an updated HP 2100, it had become essentially a small Omega, supporting virtual memory and its stack machine design that supported high level languages, but limited to a 16-bit design with a maximum of 64 kWord main memory (128 kB), only a single accumulator, and lacking Omega’s powerful input/output systems.[5]

When the plan to continue the development of Alpha was presented, George Newman, who replaced Perkins as the General Manager of the computer division, was concerned that the team was once again designing a machine that could not be delivered. Management was eventually convinced of the merits of the design, and the External Reference Specifications were published in July 1970.[5]


Prior minicomputers were generally used in a fashion similar to modern microcomputers, used by a single user, and often dedicated to a single particular task like operating machinery. This was true for many contemporary designs like the PDP-8 and Data General Nova. It was the HP 2000’s ability to perform timesharing that made it a success. The ability to support multiple users running different programs was previously limited to mainframe computers, and a further expansion of this capability was a key design concept for the original Omega.[6]

When Alpha emerged as an Omega-like design, it initially followed the same model of multi-user support, which was in turn based on the HP 2000 concept. In this model, the main CPU does not handle user interaction, that is the task of the front-end processor. This allows the main operating system to be greatly simplified, simply loading up user programs as they appear from the front-end, running them in a round-robin fashion with other user’s programs, and then delivering the results. In most respects, this was a batch processing system, much of the complexity of multi-user support was isolated in the separate front-end processor.[6]

As development re-started on Alpha, this concept was re-examined and the decision was made to expand the operating system to support multiprogramming directly. This resulted in the system becoming three-in-one, with the main portion being dedicated to timesharing but also offering real-time support and batch mode. The resulting system, ultimately known as Multi-Programming Executive (MPE), would be among the most advanced of its era.[6] When the ten groups within the operating system team came together to describe their section of the system, they found that it was too large to fit in memory, let alone have room for user programs. To make it fit, the programmers began a marathon effort to shrink the system requirements.[7]

Announcement and initial marketing

The system was announced at the Fall Joint Computer Conference in November 1971.[a] By early 1972 the system was up and running with three prototype machines completed. However, MPE development was by this time far behind schedule. This led to a February 1972 memo outlining the development schedule with various features being delivered over time.[8] Ultimately the realtime support was dropped, and none of the dates on the memo were met.[9]

Meanwhile, a turf war had broken out between the engineering lab and the marketing department, who were actively trying to sell the system. It got to the point where “People from marketing were banned from the lab.”[10] Engineers continued to provide performance estimates to marketing, which would pass these along to customers, even though the engineers were aware they were inaccurate.[10]

Increasing concern among upper management led to the May 1972 formation of the Systems Management Group, who would work within the engineering labs as an internal marketing team and drive the development according to customer needs. Among the changes implemented, Jim Peachy was hired to do performance testing on the system. Peachy had previously worked on the first timesharing systems at Dartmouth College, and had since worked at General Electric and Memorex. After only three days he pronounced that there was “absolutely no way” the machine would meet the performance requirements being quoted by sales.[11]

First deliveries, recall

As a result of the MPE delays, the ship date was pushed back from August to November 1972, and MPE was reduced solely to timesharing support, with additional features slated to arrive through 1973.[11]

The November date was held firm, and eventually, someone put up posters claiming “November is a happening”, referring to the contemporary “happening” movement in performance art.[11] The first machine was shipped to the Lawrence Hall of Science in Berkeley on November 1, although as one engineer, Frank Hublou, noted, “they should have put it on the truck, drove it around the block, and brought the machine back.”[11]

After setup, it was found the machine would only support one or two users before slowing to a crawl, and it crashed every 10 to 20 minutes. Hublou’s statement came true when the machine was “immediately returned.”[12] In a training session that December, a new version of MPE was able to run four users and crashed only once every two hours. The system was continually patched to keep it running as new bugs were found.[12] Machines continued to be shipped, both to customers as well as companies that were considering purchases. These invariably ended poorly, unable to support more than four users. The schedule for MPE features continued to be pushed back,[12] and the estimated number of machine sales continued to be reduced.[13]

By this time, the development of an HP 2000 replacement had been underway for 5 years and had cost the company $20 million. The problems were not going unnoticed and ultimately ended up with Bill Hewlett. Hewlett asked Barney Oliver to take over the division, but he refused, and Paul Ely was sent in in his place. Ely quickly ended production of the machines and, in a move still mentioned in historical works to this day, recalled all of the machines that had been shipped out. Dave Packard sent a memo to everyone on the team, today known simply as the “Wow Ouch memo”.[13]

Ed McCracken went back to the customers and told them point-blank that the machines would not be available until the fall of 1973, and that the machines would only support four to six users. Some accepted the offer of an HP 2000 in place of their orders, while others broke down and cried.[13] One customer threatened to sue the company, but were put off by the personal intervention of Hewlett who stated he would do everything in his power to fix the problems.[14]


The system then entered a six month period of redevelopment of both MPE and the hardware. MPE emerged as MPE-8, officially ending real-time support. The hardware improved to run about 30% faster than the original model and was priced 20% less. As a result of these changes, the new system was able to run eight users. Shipping re-started in November, a year after the original date.[14]

After another year, an updated version shipped. This new “CX” model replaced core memory with semiconductor memory and replaced the wire wrapped CPU boards with surface mounted components. MPE-C added COBOL and RPG languages, perhaps the first mini to offer the former. As part of the CX release, HP shipped IMAGE, a $10,000 database system written to the CODASYL standards. This was later bundled with the systems for free. IMAGE is the primary reason the HP 3000 eventually became a success.[15]


Early 3000 models had large cabinets with front panels, while later models were made that fit into desks using only terminal consoles for diagnostics, with bootstrap routines in ROM. By 1984 HP introduced the HP3000 Series 37, the first model that ran in offices without special cooling or flooring requirements.[16] Models ranged from a system sometimes used by a single user, to models that supported over 2,000 users.

The HP 3000 was one of the last proprietary minicomputer systems whose manufacture was curtailed by its vendor, outlasting the PDP-11-descended Digital Equipment Corporation VAX, which was acquired by Compaq and then ultimately by Hewlett-Packard. After almost 30 years, a five-year phase-out period for the now-named HP e3000 series servers was originally announced in November 2001. HP then extended this phase-out period twice.[17] No more new e3000s are being sold by HP, although used systems continue to be sold for upgrades on a third-party reseller market. Support from HP to customers for the HP 3000 continued through December 31, 2010. Many third party firms continue to support the system for customers throughout the world. Some customers continue to use the HP 3000 in companies worldwide, especially in manufacturing and e-commerce industries,[18] while others have migrated to business server systems made by HP and others.[19]

For those unable or unwilling to migrate, a homesteading strategy emerged immediately after HP’s announcement of the end of system sales.[20] In 2012, the Stromasys company released a product doing full HP3000 hardware emulation on x86-64 servers running Red Hat Linux or CentOS.[21] That product operates as a virtualized instance of the HP 3000 server hardware. Starting in 2003, HP began a plan to sell a license for the 3000’s operating system,[22] which can let 3000 customers run their software on this Stromasys product, known as the HPA/3000.

Software pioneering

The key development that led to the tremendous success of the HP 3000 was the bundling of the HP-developed network database management system (DBMS) called IMAGE (now called TurboIMAGE/SQL) that was reputedly inspired by the TOTAL DBMS developed by Cincom Systems, Inc. IMAGE was an award-winning database anointed by Datamation within two years of the database’s introduction.[23] It was the first database management system included with a business-class minicomputer. By bundling IMAGE with the server, HP created an ecosystem of applications and development utilities that could rely upon IMAGE as a data repository in any HP 3000.

Classic memory segments and 64K barrier

Code (reentrant) and data reside in separate variable-length segments, which are 32,768 “halfwords” (16-bit words) (or, 65,536 bytes). The operating system, known as MPE (for Multi-Programming Executive), 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 64KB 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 about 32,385 routines. With 8 bits to specify segment, and 16 bits within a segment a program could have effectively have a 24 bit address or 16MB. This was compared to most 16 bit computers like the PDP-11 or IBM System/34 that had 64KB of address space for code and data. The bigger limitation was the data segment and stack segment, which were also 64KB. Shared library routines did not permit cross-process global data since each process had its own data segment. Some procedures worked around this by requiring the caller to pass in an array from their own stack or data segment to hold all state information, similar to modern object-oriented languages where methods are applied to objects passed are allocated by the caller.

A process could allocate and use multiple extra data segments (XDS) of up to 64KB each. While the Classic architecture imposed a limit of 65,535 extra data segments system-wide, other limitations would usually restrict that to a somewhat smaller limit.

Systems programming was done in SPL (System Programming Language), an ALGOL-like language, but allowing inline assembler, and other direct access to the instruction set. The standard terminals for the HP 3000 were the HP 2640 series, which supported block mode data entry from forms (like IBM’s mainframe-based CICS), as well as character mode. By the 1980s the computer had gained the ability to use both PCs and Macs as system terminals.

Classic and PA-RISC 3000 hardware

The HP 3000 family’s generations were divided into the “Classic” (16-bit) and then “XL” (later IX – 32-bit) families following the introduction of systems based on HP’s PA-RISC chips for 3000s in early 1987. These newer XL systems were not binary compatible with the Classics, but would transparently run Classic code via an emulator, one that HP integrated into the MPE XL operating system. (Classic code could optionally be translated to native PA-RISC code via OCTCOMP, the Object Code Translator/COMPiler … such code ran at native speed, but was still subject to Classic stack and memory size limitations).

The earlier “Classic” machines were based on a custom CISC processor. From about 1988 onward, HP 3000s using PA-RISC processors began shipping in volume. By 1995 these PA-RISC systems effectively displaced the older family of machines from use. As with all technology shifts, there remained a significant residue of older machines in service. Even today, original Classic 3000s work in production in a few locations.

HP 3000 and many HP 9000 machines used the HP Precision Bus.

The PA-RISC based HP 3000’s operating system was written primarily in Modcal, HP’s extended version of Pascal. Large portions of the earlier MPE V operating system, written in SPL, are still used as part of MPE XL and MPE/iX on PA-RISC. A few subsystems (e.g., TurboIMAGE) are written in PSPL (Portable SPL). A small portion of MPE XL and MPE/iX is written in PA-RISC assembly language.

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). The earliest versions of the system used only HP’s proprietary SPL systems programming language and BASIC. These System 3000s used a command-line interpreter, with a three-level hierarchical file system, and utilities such as compilers would resemble “run fortran.pub.sys” rather than allowing programs to be run as keyword commands. Later the systems gained a wide range of languages including COBOL and FORTRAN, Pascal, C, and even a version of RPG to assist in winning business away from IBM.

People who used the HP 3000 noticed from the 1970s onward that machines were more reliable compared to other mainframe and minicomputers of the time.[3] The ability to recover from power failures was a notable feature that sold many systems versus IBM computers.[24] At times the HP 3000 suffered from peripheral support delays or gaps caused by HP’s decision to delay supporting, or not support at all, some peripherals on the HP 3000 platform—some of which were supported on the identical HP 9000 hardware.[25]

Use of stack instead of registers

Most current computer instruction sets are based on a general purpose register model. The processor and memory architecture of the classic HP 3000 were based on a stack machine model, like HP’s well-known line of RPN calculators. It was said to be inspired by the famous stack-based Burroughs large systems. Rather than having a small number of registers, for example only an AX and BX register in the case of the HP 1000, operands would be pushed on the same stack used to store local variables and return addresses. So rather than

LOAD AX, 0X0001

LOAD BX, 0X0002


you would have




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

  • III: 4 Top of stack registers, 175 ns microinstruction cycle time → 5.7 MHz
  • 30, 33: Silicon on sapphire, 2 Top of stack registers, 90 ns microinstruction cycle time → 11 MHz, instructions take 3-7 cycles
  • 40, 42, 44, 48: Schottky TTL, 4 Top of stack registers, 105 ns microinstruction cycle time → 9.5 MHz
  • 64, 68: ECL, 8 Top of Stack registers, 75 ns microinstruction cycle time → 13 MHz, 8KB cache, 60KB WCS, 2 16-bit ALUs
  • 37: ~8,000-gate CMOS gate array, 4 Top of Stack registers

Later 32-bit models used HP’s PA-RISC general register-based RISC architecture.

PA-RISC Implementations

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

HP’s exit from the 3000 ecosystem

After the enterprise computing market shifted toward commodity Unix systems from a wide range of vendors—systems that HP had also been promoting—in November 2001 Hewlett-Packard announced that a period it called the end-of-life for the HP 3000 would wrap up at the end of 2006, and that no new systems would be sold by HP after 2003. In early 2006, Hewlett-Packard announced that limited vendor support for the HP 3000 would be extended by two years for certain clients or geographic regions. In September 2007, HP once more extended its support for the systems, offering Mature Product Support without Sustaining Engineering (ending its creation of software patches). Some patches had been built and tested inside HP, but lacked customer base testing by the end of 2008. HP made these patches available after the end of 2010 (an Excel list of beta patches).[26] By 2011, HP had extended a special provision to 3000 customers that granted them free access to patches,[27] unlike the rest of HP enterprise line, which was forced in 2010 to adopt a “pay for patching” support program instead of free patches.

Independent support

A group of independent vendors has assumed systems and software support for existing customers who have left the ranks of HP’s 3000 support business. Several have pledged to continue support for their own software until customers stop using the server. Others, offering comprehensive support, are citing 2016 and later as their end of support dates.[28] A consultants directory is maintained by Robelle Software,[29] and other independent consultants are available through a listing at the OpenMPE website.[30] Open source software resources, including commodity tools, for the 3000’s MPE/iX operating system are maintained in a website by Applied Technologies.[31]

The HP 3000 has enjoyed one of the longest lifetimes for any business computer system. These enterprise-grade computers have outlasted the highly regarded PDP-11 and VAX series, although OpenVMS operating system is still being offered on Alpha- and IA-64-based systems as Hewlett Packard products.

In January 2012, Stromasys announced the development of Charon/HPA-3000, which enables secure transfer of HP3000 systems to a state-of-the-art environment. Stromasys’s solution virtualizes the hardware of an existing HP3000 system, and enables the MPE/iX operating system, third party applications, and user-developed software to run without any modification whatsoever, on industry-standard Intel servers. Their offering includes a two-user evaluation copy delivered in a VMWare package.[32]

Multiple independent vendors have purchased HP3000’s Operating System Source Code,[33] MPE/iX and are committed to supporting both hardware and software solutions for HP3000 systems.

Beechglen Development, Inc. began hosting HP3000 systems in 2002. In 2012 Beechglen introduced HP3000 compatible custom fibre channel disc arrays using current technology SSD and SATA hard drives, effectively replacing SCSI tape and SCSI disc devices. As of January 2020, Beechglen is the only vendor that has developed and offers 2028 MPE CALENDAR intrinsic patches for the MPE/iX Operating system allowing intrinsic dates beyond December 31, 2027. They continue evaluating and testing third-party applications for compatibility.[34]

Ofer Abarbanel – Executive Profile

Ofer Abarbanel online library

Ofer Abarbanel online library

Ofer Abarbanel online library

Ofer Abarbanel online library