Zilog Z8000

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Processor Zilog 8001 on the motherboard of an Olivetti M20 computer
Z8001 clone MME UB8001C made in GDR.

The Z8000 ("zee-eight-thousand") is a 16-bit microprocessor introduced by Zilog in 1979. The architecture was designed by Bernard Peuto while the logic and physical implementation was done by Masatoshi Shima, assisted by a small group of people. The Z8000 was not Z80-compatible, and although it saw steady use well into the 1990s, it was not very widely used. However, the Z16C01 and Z16C02 Serial Communication Controllers still use the Z8000 core.

Features

The Z8000 registers
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position)
  Grouping
Main registers 16-bit 32-bit 64-bit
RH0 RL0 R0 RR0 RQ0
RH1 RL1 R1
RH2 RL2 R2 RR2
RH3 RL3 R3
RH4 RL4 R4 RR4 RQ4
RH5 RL5 R5
RH6 RL6 R6 RR6
RH7 RL7 R7
  R8 RR8 RQ8
  R9
  R10 RR10
  R11
  R12 RR12 RQ12
  R13
  R14 RR14
  R15
Status register
S SN E V M - - - C Z S PO D I H - Flags
Program counter
0 Segment 0 0 0 0 0 0 0 0 Program Counter
Address

Although fundamentally a 16-bit architecture, some versions (such as the Z8001) had 7-bit segment registers that extended the address space to 8 megabytes.

The register set consisted of sixteen 16-bit general purpose registers, labeled R0 through R15. These 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 subdivided into sixteen 8-bit registers, labeled RL0 though RL7 for the lower byte and RH0 through RH7 for the upper byte. Register R15 is designated as stack pointer. On the Z8001, register R14 is used for selecting the stack segment.

There was both a user mode and a supervisor mode, 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.

Like the Z80, the Z8000 included built-in DRAM refresh circuitry. Although an attractive feature for designers of the time, overall the Z8000 was not especially fast and had some bugs, and in the end it was overshadowed by the x86 family.

One notable use of the Z8000 series was by Namco in the design of its famous Pole Position series of racing videogames. Two Z8002's (small-memory versions of the Z8000) were incorporated into the design.

The reported inclusion of the device within military designs [1] perhaps provides an explanation for the continued survival of the Z8000 today, in the shape of the Z16C01/02 Serial Communication Controllers (SCC). Indeed, an active order code and datasheet may still be located upon the Zilog website.

The Zilog Z80000 was a 32-bit follow-on design.

Z8000 CPU based systems

In the early 1980s, the Zilog Z8000 CPU was popular for desktop sized Unix machines. The onchip MMU reduced manufacturing cost by eliminating the need for additional support circuitry required to support virtual memory.[2] 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 RS232 serial ports (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:

  • Jan 1980: C8000 from Onyx Systems, early Unix multi-user system, demoed (8 serial ports [users], $25k).[3]
  • Other Z8000-based computer systems: Olivetti M20, M30, M40, M50, M60.[4]
  • 1987-1989 the East German EAW (Elektro-Apparate-Werke) produced the Workstation/Multiuser System P8000 based on the East German U8000 clone of the Z8000.[5]
  • The Z8000 can be found in some rare but well-known computers, such as the Unix-based Commodore 900.
  • Some third parties also manufactured the Z8000 including AMD, SGS-Ates, Toshiba and Sharp.[6]

The Zilog S8000 computer came out with a version of Unix called ZEUS (Zilog Enhanced Unix System). This version of Unix was not based on Xenix but on Interactive's Unix. There may have been a Xenix version from some other company as, in 1979, Xenix was Intel 8088/8086 based. ZEUS was a port of Unix Ver 7 and included what were referred to as 'the Berkeley Enhancements'. ZEUS included a version of COBOL 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 and tax preparers in United States, who used the model for processing of electronically filed tax returns.[7]

There was a Z8000 version of the Xenix Operating System[8]

The Z8000 also saw use in embedded systems, such as the lottery ticket sales machines used in some convenience stores.

The Z8000 CPU series was introduced in early 1979, between the launch of the Intel 8086 (April 1978) and the Motorola 68000 (September 1979).[6] That explains the timeframe and why the Z8000 CPU-based systems lost their dominance to Motorola 68000 based machines, then to the Intel 80286.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.

Further reading

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.