45

What were the fastest CP/M computers ever built?

I'll restrict this to the Z80 variant of CP/M, no CP/M-86, CP/M-68k etc.

Z80 compatibles with higher clock frequencies or more instructions/clock or other modifications count, as long as it ran CP/M using mostly the Z80 ISA. Overclocked homebrew systems count.

Multi-processor systems count (total attainable MIPS).

Emulated hardware does not count, it must be an existing Z80-compatible CPU that's somehow running on real silicon.

FPGAs etc. are worth considering if someone has actually done that for some other purpose than "it would be cool, I have this FPGA lying around here anyway, so let's just do it, it's easy". E.g. for some accelerator of a legacy system that served a real purpose.

Edit

To avoid confusion, some background on the question: When reading about CP/M machines, I found some were a lot faster than your run-of-the-mill Z80. So I wondered how far people actually pushed this, when CP/M was still in use. Therefore "must run CP/M, no emulated hardware". Then someone mentioned FPGAs, so I said "ok, if people used this to speed up real CP/M systems, then ok".

Multi-processor systems (which I didn't exclude, because that would have been an obvious way to make it faster) only make sense if they somehow ran a modified CP/M, M/PM etc. on all cores. Lots of single machines each running CP/M (like the ZMOB, where it is used to provide an environment on each machine) don't make for a faster machine in total - they are still single machines, each running its own CP/M, even if they communicate.

11
  • 3
    Do emulated computers count? High-end modern PC, with an oldish (thus efficient, perhaps with Z80 emulation in assembler and BIOS/BDOS implemented host-side) CP/M emulator would outperform anything retro by orders of magnitude. Nov 24, 2017 at 7:42
  • 1
    While most FPGA implementations of Z-80 CPUs aimed to be cycle-exact, clock-precise re-implementation of the real thing, it should be possible to build a real racer on a fast modern FPGA. There are a number of implementations that run at the equivalent speed of a 120 MHz Z-80. sowerbutts.com/socz80
    – tofro
    Nov 24, 2017 at 9:17
  • 3
    While I find such questions interesting, I think modern re-implementations that run at extremely fast speeds somewhat defeat the main point of retro-computing for me - I'm more into "how to make the most of what you got with a bit of software finesse" that throwing raw silicon speed onto a problem.
    – tofro
    Nov 24, 2017 at 11:25
  • 1
    Only a comment, because a calculator certainly isn't CP/M and probably isn't even a computer, but the TI-84+ (and TI-83+ SE) calculators have a Z80 chip running at 15 MHz which can be overclocked to 22.4 MHz. Nov 25, 2017 at 23:27
  • 2
    There is this machine: makerlisp.com, and we have someone helping us get a CP/M port up and running. Apr 26, 2019 at 17:10

10 Answers 10

35

If we consider only real Z80 (i.e. no emulation and no FPGA), probably the fastest Z80 compatible CPU is eZ80 (runs at 50 MHz, but has 3-stage pipeline, so in theory it could reach 3× the speed of Z80 at the same frequency).

This hobbyist project describes eZ80 board and CP/M running natively on in, author says "The system runs Z80 code on average 30 times faster then a 4MHz Z80 did" which agrees with the expected speed.

Any modern-ish RAM is fast enough to not make RAM access speed an issue.

10
  • 2
    I have mixed feelings for this answer. On the one hand, the question was "fastest ever built?". OTOH, this is the **Retrocomputing SE -- doesn't that sort of automatically limit technology to the 20th century and before? From what I can tell in a quick search, the eZ80 began in the mid-2000s. I'm not downvoting, though, because I did learn something.
    – RichF
    Nov 24, 2017 at 12:04
  • 8
    @RichF OTOH, CP/M is definitely retro enough, and I'd say questions about running retro OS'es on modern hardware should be on-topic. Nov 24, 2017 at 12:07
  • 4
    @RichF The eZ80 did, AFAIR, apear in 1998, so it does take the 2000ish hurdle :) Also, I learned that seting a (more or less) fixed date is the best way to make a definition we need irrelevant. Wait 10 more years, and we get peope with a sensible belive that x86-64 is retro. In my book this question is not even borderline, but fully on topic as it's about hecontiuation. But I'm as well aware, that modern implementations open a mine field of what's still considered bearing the classic spirit or not.
    – Raffzahn
    Nov 24, 2017 at 13:11
  • 1
    What constitutes “retro”? seems applicable.
    – user
    Nov 24, 2017 at 13:35
  • 2
    The eZ80 matches all the criteria in the question ("Z80 compatible", "ran CP/M", "using mostly the Z80 ISA").
    – RonJohn
    Nov 24, 2017 at 23:08
25

Hard to tell.

The fastest Z80 CP/M system I had in ye olde days (aka ~1982) was a Z80H card for my Apple II running at 12 MHz. It got its own 64 KiB and was a clone of a similar card running at 6 MHz. We thought we could speed it up a lot, but most cards produced wouldn't get past 10 MHz. Don't get me wrong: that's still not only awesome compared with the original 2 MHz of the MS-Z80 Card, but considerable faster than any other card. Still, we didn't reach our dreams. Partly due to the poor layout, but mostly because even weeks of selecting chips (The Z80H was only specified for 8 MHz) didn't produce enough stable setups.

Later on, NEC introduced their V20/V30 8088/86 compatible CPUs with built-in 8080 core. We used to put one in a 8088-based 'Turbo' PC at 12 MHz - the equivalent Z80 speed might have been considerably higher, but I do not remember any numbers. For some time, it was quite popular over here to have CP/M applications run seamlessly under MS-DOS. These chips were available up to 16 MHz.

In the mid 1980s Hitachi's 64180 gained quite some audience with CP/M users, as it was not only fast (up to 12 MHz) but also offered up to 1 MB address space, nicely made to run with CP/M 3. Around the same time Toshiba introduced its Z80 SOC with even faster versions, just it went mostly into embedded systems. It's said that there have been MSX machines based on that chip, but I can't name any.

In the early 1990s, Zilog offered C-MOS implementations of the genuine Z80 design (84C00, not any enhanced/compatible chip) with up to 20 MHz. So the maximum speed for a 'real' Z80 might be around that - maybe + 20-30% for overclocking.

And today (past 1998), there's the eZ80; unlike previous enhancements Zilog made in the Z280/Z380, this is more like the original Z80 and able to run at 50 MHz. Speed compared to the original Z80 will be somewhere at or above 100 MHz as the architecture got seriously improved. System building with an eZ80 is quite classic, as I learned doing an eZ80 card for the Apple II (again) in 2008.

Synchronous CPUs designs like this hit a hard border here, as RAM speed is the limiting factor. Despite all the multi-gigabyte transfer rates that modern RAMs offer, their real cycle time for a synchronous access is still in the 10ns region, so there's no real room past 100 MHz. Then again, modern x86 brutes may run emulations at equivalent speeds of several hundred MHz.

Bottom line:

  • Real Z80 tops out at ~20 MHz,
  • Z80-compatible eZ80 around 100 MHz equivalent execution speed (50 MHz chip) and
  • Z80 emulations anywhere past that.
9
  • 1
    The question was less about "what Z80 compatible CPUs exist at what speed" (I researched this), but more about "what systems with those CPUs were actually used with CP/M".
    – dirkt
    Nov 24, 2017 at 11:21
  • 2
    @dirkt - given the existence of a compatible processor and the easy availability of CP/M software, somebody somewhere will have built a CP/M system out of any available processor.
    – Jules
    Nov 24, 2017 at 11:24
  • 3
    @dirkt As I said, I did build a 12 MHz Z80H in 1982, I did 'build' a 12 MHz V20 PC ca. in 1985 and I did an eZ80 recently.
    – Raffzahn
    Nov 24, 2017 at 11:30
  • NEC also produced Z80 pin-compatible versions of the D78x0 processor; I have one in an Apple II CP/M card of unknown origin. While the NEC processor wasn't the fastest by MHz, it did have a much wider ALU that allowed faster calculation, and it added much-missed multiplication and division instructions. I still think this falls under your "Hard to tell", though
    – scruss
    Nov 25, 2017 at 15:43
  • 1
    just adding data points, ignore 'em if you wish
    – scruss
    Feb 26, 2021 at 1:34
13

Back in 1995, I used to work on satellite on-board-systems that were typically powered by a number of 1MHz Z80 forming what you would today call a multi-core CPU. The Z80 communicated through shared memory segments and worked out complex fixed-point calculation for earth observation, radar range measurement, and general telemetry.

While these were not particularly fast CPUs, the development and simulation took place on PCs that had Hitachi 64180 CPU cards equipped that were (I think) overclocked to 16MHz and ran CP/M on the boards. You could even run multiple CP/M instances on one PC if you fitted more than one card.

Today, I can only find versions of that chip up to 10MHz.

6
  • 3
    Reminds me of a communication system I commissioned arround 1991 to enble a 286 to handle 32 modem lines in parallel. It was build from 4 MHz Z80, each handling two modems and a HDLC alike protocol with a SIO, communicating over a 1 KiB dual port RAM with another 4 MHz Z80 concentrating the data streams and communicating with the PC - again using a 1 KiB dual port RAM. Extreme streamlined and simple hardware resulting in an incredible performance - we did beat a competing offer using a Unix system called at 200 grand for a little more than a tenth of the price :))
    – Raffzahn
    Nov 24, 2017 at 13:21
  • 2
    @Raffzahn That sounds like an interesting thing to write a blog post about. I'd really like to know more about it, but the Q&A site isn't the place for me to ask about it.
    – wizzwizz4
    Nov 25, 2017 at 11:17
  • @wizzwizz4 Uh? A blog? Oioioi. Mybe if you tell what you want to know, 'cause in my book above paragraph already tells all important here, doesn't it?
    – Raffzahn
    Nov 25, 2017 at 12:24
  • 2
    @Raffzahn The development process, some more detail about the architecture, rationale for choices, a rough idea of how they communicated, how you got it so fast, the protocol for communicating with the PC... Preferably written as a sort of story (A, then B, then C, but D! So we did E, but then had to choose between F and G...) because people like stories. :-)
    – wizzwizz4
    Nov 25, 2017 at 13:03
  • 1
    @tofro If it's not classified, your satellite project would also be an interesting subject for a blog post. You could talk about the development process, some detail on the interface between the different processors, how error correction worked (if there was any), how the processors decided which was doing what, how dead-locks were handled (if at all), what happened if a variable-length calculation (think conditional loops) finished before / after the data was needed by the processor doing subsequent calculations...
    – wizzwizz4
    Nov 25, 2017 at 13:08
12

It is said about the CPU of the MSX Turbo R, that "the R800 runs roughly like a 28.6 MHz Z80". This was a commercially available off-the-shelf machine, so should definitely count. It was a marvel in my opinion...

Edit: https://en.wikipedia.org/wiki/R800_(CPU)

indicates the R800 is Z80 compatible.

9
  • Welcome to Retrocomputing. It would be good if you included some benchmarks (or even some extrapolated from the "28.6 MHz Z80" value) to make it easier to compare, but this is by no means necessary as the Z80 is already enough to compare with.
    – wizzwizz4
    Nov 25, 2017 at 9:56
  • 1
    Very much appreciate the link to MSX Turbo R computers. Didn't even know they existed - But apparently, the compatibility between R800 and Z80 can't have been that much when they put in a Z80 as well into that machine?
    – tofro
    Nov 25, 2017 at 10:37
  • 2
    @Prof.Falken The Wiki page does a nice job in explaining tat the R800 is basicly a Z800 implementation wih faster RAM access. In The TurboR it runs at 7 MHz (not 28) but due the faster RAM access (and refresh) the delivered punch per MHz is somewhere between two and four times.
    – Raffzahn
    Nov 25, 2017 at 12:12
  • 2
    @tofro The Z80 within the MSX Engine comes for free andcould thus be used for Games that need 100% clock cycle accurate timing (The R800 no longer offers). A MSX-Engine is a SoC including all main components for a MSX 1 or 2 machine. So instead of making a new SoC, Panasonic reused the existing SoC but added an external R800.
    – Raffzahn
    Nov 25, 2017 at 12:17
  • 1
    @tofro Well,since they used the MSX-Engine as I/O chip, the alternative would have been to permanent disable the Z80. That would have worked and still be chaper than doing a new production chip. But why, when they could also use it as 100% compatible 'emulation' mode, instead of adding hardware to the R8000 to make it cycle compatible?
    – Raffzahn
    Nov 25, 2017 at 13:21
12

The fastest Z80 computer ever designed and built was almost certainly ZMOB, a 256 node Z80A cluster designed and built at University of Maryland as part of NASA NSG-7253. That's a total of 1GHz of Z80 power.

The fastest "Z80" computer I own is a Papillo Pro FPGA board running Will Sowerbutts 'SocZ80' FPGA firmware - T80 core @ 128Mhz and a cache fronting 8MB of DRAM also running at 128MHz - so a huge ramdisk and fast hardware SPI SD card interface.

http://sowerbutts.com/socz80/

The Z280 does more per clock but cannot match it at the top clock available. The eZ80 is probably faster as it does more per clock and runs at a decent speed but it's not truely Z80 compatible as it reuses a tiny number of 'silly' instructions (loading a register with itself) for other things and doesn't have the illegals. Pretty much everything works however.

Both are good candidates coupled with the right other hardware.

6
  • 1
    The questioner asked for systems that run CP/M. Do either of these computers do that? Also, a link to the first system you mentioned would be helpful. Otherwise, than you for the answer!
    – DrSheldon
    Sep 20, 2018 at 0:46
  • Yes, "CP/M" is a crucial criterion for this question. ZMOB is very interesting, but googling seems to indicate it was a ring-like structure with a central VAX, so probably no CP/M. And for the FPGA, as indicated in the question: Does or did it run CP/M to do something useful? (Otherwise you could just scale this up by using a faster FPGA, and then again another, even faster FPGA, and so on).
    – dirkt
    Sep 20, 2018 at 6:22
  • SocZ80 was designed to run CP/M, MP/M and UZI - it's a retrocomputing project. I've added the URL.
    – Alan Cox
    Sep 21, 2018 at 8:37
  • 1
    (See edit of question). It looks like each Z80 in the ZMOB just runs CP/M to provide an environment for each single processor, and that was not the intention of the question. The question actually didn't ask about FPGAs, but somebody mentioned it, so the reaction was "ok, if it was actually meant for running CP/M in real use for some reason, then ok". So if SoCZ80 wasn't just "it's a cool retro project, let's use an FPGA" but "I have now used only CP/M and native tools for a few weeks on SoCZ80, and written the following programs", I guess it would count, even as retro project.
    – dirkt
    Sep 21, 2018 at 15:33
  • 1
    There were AFAIK no SMP variants of CP/M or MP/M. At the time it made far more sense to have multiple boards sharing a disk using CP/NET. Thus 'multi processor' CP/M systems were what today we'd probably call a cluster or a client/fileserver setup even if it was in the same case.
    – Alan Cox
    Sep 21, 2018 at 22:50
10

The Amstrad PCW16 ran at 16MHz, using an NEC NZ70008H macrocell ('essentially a Z80', according to the technical specification).

My port of CP/M to the PCW16 can be found here.

8

Searching for "fastest Z80" finds this discussion. I have overclocked a 20Mhz Z80 with KIO (Z84C90) as the IO device to 33 MHz. Everything is running zero wait state. It can execute the comprehensive instruction test, zexall.com, in CPM under 24 minutes. So is this the fastest plain old Z80? More info here: https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:k80

6

I'm a little late to this party, but here are schematics for my 20 MHz Z80180 CP/M-80 system

http://www.stuartball.com/retroz80/RetroZ80.htm

6

I recently came across the Zedripper, which would definitely count as a contender, in particular because it uses multiple Z80 CPUs, so something similar would would have been possible with legacy technology.

Specs from the website:

  • 16-core Z80 processor running at 83.33 MHz
  • 64KB of dedicated RAM for each Z80
  • 16-way ANSI-compatible “Multiterm” terminal accelerator
  • All CPUs and devices connected with a fully-synchronous, uni-directional ring network operating at 83 MHz
  • 128MB of storage on SD Card (available via 16 x 8MB disk drives in CP/M)
  • A ‘server’ core that boots into CP/M 2.2 and runs a CP/NET file server (written in Turbo Pascal 3 on the machine!) allowing shared access to the SD card
  • 15 ‘client’ cores running CP/NOS from ROM. Each client can access the shared storage and run any CP/M 2.2 programs without resource contention with the other cores.

It's implement on a "monster FPGA board" (Stratix IV 530GX) the constructor inherited from a lab cleanup.

CP/NET is also quite interesting.

5

CPU clock speed isn't the whole story when it comes to performance - the entire system must be optimised to avoid bottlenecks. The fastest CP/M machine I ever used was an SC84. Only a 6 Mhz processor - but it had a memory-mapped VDU and a 512K ram-disk - and ran like greased lightning. Easily out-performed an IBM XT when running Wordstar. Happy days ...

1
  • WordStar was very fast when configured to write directly to video memory. Jun 28, 2021 at 12:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .