Zilog Z8000
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
- ↑ 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.
- ↑ 6.0 6.1 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.
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.