The Z8000 ("''zee-'' or ''zed-eight-thousand''") is a
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
microprocessor
A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit, or a small number of integrated circuits. The microprocessor contains the arithmetic, logic, and control circu ...
introduced by
Zilog
Zilog, Inc. is an American manufacturer of microprocessors and 8-bit and 16-bit microcontrollers. It is also a supplier of application-specific embedded system-on-chip (SoC) products.
Its most famous product is the Z80 series of 8-bit microp ...
in early 1979. The architecture was designed by Bernard Peuto while the logic and physical implementation was done by
Masatoshi Shima
is a Japanese electronics engineer. He was one of the architects of the world's first microprocessor, the Intel 4004. In 1968, Shima worked for Busicom in Japan, and did the logic design for a specialized CPU to be translated into three-chip cu ...
, assisted by a small group of people. In contrast to most designs of the era, the Z8000 did not use
microcode
In processor design, microcode (μcode) is a technique that interposes a layer of computer organization between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. Microcode is a laye ...
which allowed it to be implemented in only 17,500 transistors.
The Z8000 was not
Z80
The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were ...
-compatible, although it featured many of the well-received design notes that made the Z80 popular. Among these was the ability for its
registers to be combined and used as a single larger register - while the Z80 allowed two 8-bit registers to be used as a single 16-bit register, the Z8000 expanded this by allowing two 16-bit registers to operate as a 32-bit register, or four to operate as a 64-bit register. These combined registers were particularly useful for mathematical operations.
Although it was an attractive design for its era, and saw some use in the early 1980s, it was never as popular as the Z80. It was released after the 16-bit
Intel 8086
The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus (allowi ...
(April 1978) and the same time as the less-expensive
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
, and only months before the
Motorola 68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
(September 1979), which had a 32-bit
instruction set architecture
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
and was roughly twice as fast.
The
Zilog Z80000
The Z80000 is Zilog's 32-bit processor, first released in 1986. It is essentially a 32-bit expansion of its 16-bit predecessor, the Zilog Z8000. It includes multiprocessing capability, a six-stage instruction pipeline, and a 256-byte cache. Its mem ...
was a 32-bit follow-on design, launched in 1986.
Features
The Z8000 initially shipped in two versions; the Z8001 with a full 23-bit external
address bus
In computer architecture, a bus (shortened form of the Latin '' omnibus'', and historically also called data highway or databus) is a communication system that transfers data between components inside a computer, or between computers. This ex ...
to allow it to access up to 8 megabytes of memory, and the Z8002, which supported only 16-bit addressing to allow 64 kilobytes of memory. This allowed the Z8002 to have eight fewer pins, shipping in a smaller 40-pin
DIP format that made it less expensive to implement.
The series was later expanded to include the Z8003 and Z8004, updated versions of the Z8001 and Z8002, respectively. These versions were designed to provide improved support for
virtual memory
In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very l ...
, adding new status registers to indicate
segmentation fault
In computing, a segmentation fault (often shortened to segfault) or access violation is a fault, or failure condition, raised by hardware with memory protection, notifying an operating system (OS) the software has attempted to access a restricte ...
s (test and set) and provide an abort capability.
Registers
The
register set consisted of sixteen 16-bit general purpose registers, labeled R0 through R15. The registers can be concatenated into eight 32-bit registers, labeled RR0/RR2/../RR14, or into four 64-bit registers, labeled RQ0/RQ4/RQ8/RQ12. The first eight registers can be also subdivided into sixteen 8-bit registers, labeled RL0 though RL7 for the lower byte and RH0 through RH7 for the upper (high) byte. Register R15 is designated as
stack
Stack may refer to:
Places
* Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group
* Blue Stack Mountains, in Co. Donegal, Ireland
People
* Stack (surname) (including a list of people ...
pointer. On the Z8001, register R14 is used to add a fixed offset to the stack pointer, and the
program counter
The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, is ...
is expanded to 32-bits to include a similar offset.
There was both a
user mode
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
("normal") and a
supervisor mode
In computer science, hierarchical protection domains, often called protection rings, are mechanisms to protect data and functionality from faults (by improving fault tolerance) and malicious behavior (by providing computer security).
Computer ...
, selected by bit 14 in the flag register. In supervisor mode, the stack registers point to the system stack and all privileged instructions are available. In user mode, the stack registers point to the normal stack and all privileged instructions will generate a fault. Having separate modes and stacks greatly adds to the performance of
context switch
In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
es between user programs and an
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
.
Memory handling
Like the Z80 before it, the Z8000 included a system to automatically refresh
dynamic RAM
Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxide ...
. In most systems this is normally handled by the
video display controller
A video display controller or VDC (also called a display engine or display interface) is an integrated circuit which is the main component in a video-signal generator, a device responsible for the production of a TV video signal in a computing ...
or external logic. This was implemented via a separate Refresh Counter (RC) register that held the currently updating page of memory. The feature is turned on by setting the most significant bit of the RC, bit 15, to 1. The following six bits, 14 through 9 are a rate, measured in terms of every 4th clock cycle. With a standard 4 MHz clock, that allows the refresh to be called every 1 to 64 microseconds. The remaining 8 bits select a row in memory to refresh.
The Z8000 used a segmented memory map, with a 7-bit "segment number" and a 16-bit offset. Both numbers were represented by pins on the Z8001, meaning that it could directly address a 23-bit memory, or 8 MB. Instructions could only directly access a 16-bit offset. This allowed the instruction format to be smaller; a system with direct access to a 23-bit address would need to read three bytes (24-bits) from memory for every address referred to in the code, thus requiring two reads on a 16-bit bus. With segments, the addresses needed only a single 16-bit read which is then added to a segment number to produce the complete address. The segment number only needed to be updated when the data crossed the 16-bit/64 KB boundaries.
When represented internally, addresses were all 32 bits long. This consisted of an upper 16-bit word with a leading 0 in bit 15, the 7-bit segment number, and then 8 zeros. This required more memory to store, as each 23-bit address used up 32 bits of register space, but allowed the addresses to be cleanly stored in the 16-bit registers and can be more easily pushed and popped from the stack, which occurred in 16-bit words.
The optional 48-pin Z8010
memory management unit
A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical ad ...
(MMU) expanded the memory map to 16 MB by translating the 23-bit address from the CPU to a 24-bit one. Internally, it held a list of 64 segments and an 8-bit pointer to the physical location of that segment in RAM. When the CPU attempted to access a particular segment, the Z8010 would translate that into an 8-bit address on the address bus, and then pass the 16-bit offset on unchanged. This allowed multiple programs to be spread out in physical RAM, each one given its own space to work in while believing they were accessing the entire 8 MB of RAM. The segments were variable length, expanding up to 64 KB in order to allow the entire memory to be accessed from 64 segments. If more than 64 segments were needed, multiple Z8010s could be used.
The Z8010 was not available at the time of launch, and was ultimately nine months to a year late.
With the release of the Z8003/Z8004, the Z8015 was added to the lineup, adding
paged memory
In computer operating systems, memory paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves data from secondary storage ...
support. The main difference is that the Z8015 breaks down the memory into 64 2 KB blocks, whereas the Z8010 broke memory into 64 variable-sized blocks, up to 64 KB each. Additionally, the Z8015 expands the segment number from 7 to 12 bits, and then using those as the most significant bits of the 23-bit overall address, overriding the upper bits of the original 16-bit offset. The advantage to this access scheme is that it is easy to read or write 2 KB blocks to a
hard drive
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magnet ...
, so this pattern more closely matches what will ultimately happen on a
segfault
In computing, a segmentation fault (often shortened to segfault) or access violation is a fault, or failure condition, raised by hardware with memory protection, notifying an operating system (OS) the software has attempted to access a restricte ...
.
Other features
One uncommon feature found on the Z8000, more commonly associated with
minicomputer
A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s, was direct support for
vectored interrupt
In computer science, a vectored interrupt is a processing technique in which the interrupting device directs the processor to the appropriate interrupt service routine. This is in contrast to a polled interrupt system, in which a single interrupt ...
s. Interrupts are used by external devices to notify the processor that some condition has been met; a common use is to indicate that data from a slow process like reading a
floppy disk
A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined w ...
is now available and the CPU can read the data into memory.
Normally on small machines, an
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, ...
causes special code to run that examines various status bits and memory locations to decide what device actually called the interrupt and why. In some designs, especially those intended for
realtime computing, a bit of memory is set aside as a set of pointers, or vectors, to the code handling a particular device. The devices causing the interrupt then set some state, typically via pins on the CPU, to indicate a particular interrupt number, N. When the interrupt is called, the CPU immediately jumps through Nth entry in the table, avoiding any need to decode the interrupt. This can greatly speed up the interrupt servicing by avoiding having to run additional operations, while also simplifying the interrupt handling code.
In the Z8000, a new register supports vectors, the New Program Status Area Pointer. This was similar to a memory address in a register, consisting of two 16-bit values with the upper 16-bits holding the segment number. The lower 16-bits were then divided in half, the upper 8-bit containing an offset and the lower 8-bits empty. To call a particular vector, the external device presented the lower 8-bits (or 9 in some cases) on the address bus, and the complete vector address was then constructed from the three values.
Z8000 CPU based systems
In the early 1980s, the Zilog Z8000 CPU was popular for desktop-sized
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
machines. These low-cost Unix systems allowed small businesses to run a true multi-user system and share resources (disk, printers) before networking was common. They usually had only
RS-232
In telecommunications, RS-232 or Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such a ...
serial port
In computing, a serial port is a serial communication interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in parallel. ...
s (4–16) and
parallel printer ports instead of built-in graphics, as was typical for servers of the time.
Z8000-based computer systems included Zilog's own System 8000 series, as well as other manufacturers:
* January 1980: C8002 made by
Onyx Systems
Onyx primarily refers to the parallel banded variety of chalcedony, a silicate mineral. Agate and onyx are both varieties of layered chalcedony that differ only in the form of the bands: agate has curved bands and onyx has parallel bands. The c ...
used the Z8001, ran
Unix System III, came with C and FORTRAN 77 compilers, and had an available COBOL compiler as well. It had 8 serial ports, 1 QIC tape drive, a single 8" hard drive and cost ~$25k. The main processor offloaded the disk, tape, and serial IO operations to a Z80 processor on a second board.
* 1982:
Olivetti M20
The Olivetti M20 is a Zilog Z8000 based computer designed and released by Olivetti in 1982. Although it offered good performance, it suffered from a lack of software due to its use of the Z8000 processor and custom operating system, PCOS. The com ...
, a non-IBM-compatible PC that ran Olivetti PCOS, a derivative of COSMOS or CP/M 8000.
* 1980-1986:
Olivetti
Olivetti S.p.A. is an Italian manufacturer of computers, tablets, smartphones, printers and other such business products as calculators and fax machines. Headquartered in Ivrea, in the Metropolitan City of Turin, the company has been part of ...
Linea 1 S1000, S6000, M30, M40, M50, M60, M70. These minicomputers from Olivetti all ran BCOS/COSMOS.
* 1985: the cancelled
Commodore 900
The Commodore 900 (also known as the C900, Z-8000, and Z-Machine) was a prototype microcomputer originally intended for business computing and, later, as an affordable UNIX workstation. It was to replace the aging PET/ CBM families of personal com ...
computer project
* 1987–1989: the East German EAW (
Elektro-Apparate-Werke
The Elektro-Apparate-Werke (EAW) was a state-owned industrial operation of the German Democratic Republic (DDR, East Germany). It was a successor of the combine VEB ''Elektro-Apparate-Werke'' (VEB) and, with more than 8000 employees, was one of t ...
) produced the Workstation/Multiuser System
P8000
The P8000 is a microcomputer system developed in 1987 by the VEB Elektro-Apparate-Werke Berlin-Treptow „Friedrich Ebert“ (EAW) in the German Democratic Republic (DDR, East Germany). It consisted of an 8-bit and a 16-bit microprocessor and a ...
based on the East German U8000 clone of the Z8000.
The Zilog S8000 computer came out with a version of Unix called ZEUS (Zilog Enhanced Unix System). ZEUS was a port of Unix Version 7 and included what were referred to as 'the Berkeley Enhancements'. ZEUS included a version of
COBOL
COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
called RM/COBOL (Ryan McFarland COBOL). The availability of RM/COBOL allowed many commercial applications to be quickly ported to the S8000 computer although this did not help its long-term success. The S8000 did find some success with the
IRS
The Internal Revenue Service (IRS) is the revenue service for the United States federal government, which is responsible for collecting U.S. federal taxes and administering the Internal Revenue Code, the main body of the federal statutory tax ...
and tax preparers in United States, who used the model for processing of electronically filed tax returns.
There was a Z8000 version of the
Xenix
Xenix is a discontinued version of the Unix operating system for various microcomputer platforms, licensed by Microsoft from AT&T Corporation in the late 1970s. The Santa Cruz Operation (SCO) later acquired exclusive rights to the software, and ...
Operating System.
Namco
was a Japanese multinational corporation, multinational video game and entertainment company, headquartered in Ōta, Tokyo. It held several international branches, including Namco America in Santa Clara, California, Namco Europe in London, Na ...
used the Z8000 series in its ''
Pole Position
In a motorsports race, the pole position is usually the best and "statistically the most advantageous" starting position on the track. The pole position is usually earned by the driver with the best qualifying times in the trials before the rac ...
'' and ''
Pole Position II
is the sequel to racing simulation
A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of Conceptual model, models; the model represents the key characteristics or b ...
'' arcade games. The machines used two Z8002's, the 64 KB versions of the Z8000.
The reported inclusion of the device within
military
A military, also known collectively as armed forces, is a heavily armed, highly organized force primarily intended for warfare. It is typically authorized and maintained by a sovereign state, with its members identifiable by their distinct ...
designs
perhaps provides an explanation for the continued survival of the Z8000 until recently, in the shape of the Zilog Z16C01/02 CPUs. Also, the
Standard Central Air Data Computer (SCADC) was utilizing the Z8002.
The end of life notice from Zilog was sent in 2012.
Limited success
While the Z8000 did see some use in the early 1980s, it was passed over for other designs relatively quickly.
Federico Faggin
Federico Faggin (, ; born 1 December 1941) is an Italian physicist, engineer, inventor and entrepreneur. He is best known for designing the first commercial microprocessor, the Intel 4004. He led the 4004 (MCS-4) project and the design group du ...
, then CEO of Zilog, later suggested this was due to Zilog's financing arrangement with
Exxon
ExxonMobil Corporation (commonly shortened to Exxon) is an American multinational oil and gas corporation headquartered in Irving, Texas. It is the largest direct descendant of John D. Rockefeller's Standard Oil, and was formed on November 30, ...
's venture capital arm, Exxon Enterprises. Enterprises had made a number of investments in the computer field, and by the early 1980s was positioning itself as a competitor to
IBM in the large system space. Faggin suggests that IBM thus saw Zilog as a competitor, and refused to consider the Z8000 as a result.
However, an examination of the choices available to designers in the early 1980s suggests there are more prosaic reasons the Z8000 was not more popular:
Comparing
assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
versions of the
Byte Sieve
The Byte Sieve is a computer-based implementation of the Sieve of Eratosthenes published by ''Byte'' as a programming language performance benchmark. It first appeared in the September 1981 edition of the magazine and was revisited on occasion. Al ...
, one sees that the 5.5 MHz Z8000's 1.1 seconds is impressive when compared to the 8-bit designs it replaced, including Zilog's 4 MHz Z80 at 6.8 seconds, and the popular 1 MHz
MOS 6502
The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit microprocessor that was designed by a small te ...
at 13.9. Even the newer 1 MHz
Motorola 6809
The Motorola 6809 ("''sixty-eight-oh-nine''") is an 8-bit microprocessor with some 16-bit features. It was designed by Motorola's Terry Ritter and Joel Boney and introduced in 1978. Although source compatible with the earlier Motorola 6800, the 6 ...
was much slower, at 5.1 seconds. It also fares well against the 8 MHz
Intel 8086
The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus (allowi ...
which turned in a time of 1.9 seconds, or the less expensive 5 MHz
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
at 4 seconds.
While the Intel processors were easily outperformed by the Z8001, they were packaged in 40-pin DIPs, which made them less expensive to implement than the 48-pin Z8001. The Z8002 also used a 40-pin package, but had a 16-bit address bus that could only access 64 KB of RAM, whereas the Intel processors had a 20-bit bus that could access 1 MB of RAM. Internally, the 23-bit addresses of the Z8000 were also more complex to process than Intel's simpler system using 16-bit base addresses and separate segment registers. For those looking for a low-cost option able to access (what was then) large amounts of memory, the Intel designs were competitive and available over a year earlier.
For those looking for pure performance, the Z8000 was the fastest CPU available in early 1979. But this was true only for a period of a few months. The 16/32-bit 8 MHz
Motorola 68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
came to market later the same year and turns in a time of 0.49 seconds on the same Sieve test, over twice as fast as the Z8000. Although it used an even larger 64-pin DIP layout, for those willing to move to more than 40-pins this was a small price to pay for what was by far the fastest processor of its era. Its 32-bit instructions and registers, combined with a 24-bit address bus with flat 16 MB addressing, also made it much more attractive to designers, something Faggin admits to.
To add to its problems, when the Z8000 was first released it contained a number of bugs. This was due to its complex instruction decoder, which, unlike most processors of the era, did not use
microcode
In processor design, microcode (μcode) is a technique that interposes a layer of computer organization between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. Microcode is a laye ...
and was dependent on logic implemented directly in the CPU. This allowed the design to eliminate the microcode storage and the associated decoding logic, which reduced the transistor count to 17,500. In contrast, the contemporary
Intel 8088
The Intel 8088 ("''eighty-eighty-eight''", also called iAPX 88) microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers an ...
used 29,000 transistors, while the
Motorola 68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
of a few months later used 68,000.
Second sources
Several third parties manufactured the Z8000 including
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufactur ...
,
SGS-Ates
STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
,
Toshiba
, commonly known as Toshiba and stylized as TOSHIBA, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. Its diversified products and services include power, industrial and social infrastructure system ...
and
Sharp
Sharp or SHARP may refer to:
Acronyms
* SHARP (helmet ratings) (Safety Helmet Assessment and Rating Programme), a British motorcycle helmet safety rating scheme
* Self Help Addiction Recovery Program, a charitable organisation founded in 199 ...
.
second source
In the electronics industry, a second source is a company that is licensed to manufacture and sell components originally designed by another company (the first source).
It is common for engineers and purchasers to avoid components that are only av ...