Some preliminary performance results for the Z180 using a 14.32Mhz crystal.
Legend:
XTAL/2 => default Z180 setting, runs the CPU at half the external clock XTAL/1 => configuration option to run the CPU at full external clock REFE = 1/0 => Z180 option to enable/disable DRAM refresh. Default enabled mem waits => configurable Memory waits, defaults to 3 CM -> Clock Multiplier, Z180 option to double the CPU speed, default off
Dhrystone v1.1 results:
XTAL = 14.32MHz, DOS1.11,MSX2 60Hz --------------- Z180 XTAL/2, CM=0, REFE=1, waits=3,VDP wait=1 -> 209 dhrystones/sec Z180 XTAL/1, CM=0, REFE=1, VDP wait=1 -> 367 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, VDP wait=1 -> 310 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, MEM waits=2, VDP wait=1 -> 352 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, MEM waits=1, VDP wait=1 -> 382 dhrystones/sec
As you can see disabling the DRAM refresh has a significant impact. My DIY MSX has only SRAMs so I do not need DRAM refresh. With the external 14MHz clock the Z180 would not allow me to set CM=1 to double the CPU speed although the chip is rated for 33MHz.
Note: the Z180 also has configurable IO waits, default set to 3. Lowering that instantly cause issues.
Memory waits set to 0 cause instant hang as well.
Some preliminary performance results for the Z180 using a 14.32Mhz crystal.
Legend:
XTAL/2 => default Z180 setting, runs the CPU at half the external clock XTAL/1 => configuration option to run the CPU at full external clock REFE = 1/0 => Z180 option to enable/disable DRAM refresh. Default enabled mem waits => configurable Memory waits, defaults to 3 CM -> Clock Multiplier, Z180 option to double the CPU speed, default off
Dhrystone v1.1 results:
XTAL = 14.32MHz, DOS1.11,MSX2 60Hz --------------- Z180 XTAL/2, CM=0, REFE=1, waits=3,VDP wait=1 -> 209 dhrystones/sec Z180 XTAL/1, CM=0, REFE=1, VDP wait=1 -> 367 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, VDP wait=1 -> 310 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, MEM waits=2, VDP wait=1 -> 352 dhrystones/sec Z180 XTAL/2, CM=0, REFE=0, MEM waits=1, VDP wait=1 -> 382 dhrystones/sec
As you can see disabling the DRAM refresh has a significant impact. My DIY MSX has only SRAMs so I do not need DRAM refresh. With the external 14MHz clock the Z180 would not allow me to set CM=1 to double the CPU speed although the chip is rated for 33MHz.
Note: the Z180 also has configurable IO waits, default set to 3. Lowering that instantly cause issues.
Memory waits set to 0 cause instant hang as well.
that data is very interesting, could you make them a Z80 at 3.57 and in the R800?
Thank you
Some family photo's:
Tiny Z180 board:
And my new (rev2) Z280 board:
@erpirao
Here some quick dhrystone v1.1 figures for Turbo-R:
Turbo-R,Z80 mode, DOS1, 191 dhrystones/sec Turbo-R,R800 mode,DOS2, 1229 dhrystones/sec
Hopefully I'll be able compare the R800 numbers to Z280 soon. I'll also add regular MSX Z80 3.58MHz/7MHz and Panasonic Turbo numbers soon.
As for the Z280, managed to get it to boot MSX1 unmodified. Even got to play a few MSX1 games. Getting the right clock frequency, IO and Mem waitstates and cache settings etc is quite a journey. Most of the time it will not boot, it boots but there is garbage on the screen... So far I did not manage to get the floppy working. The newer IDE/Flash etc devices never work.
Booting MSX2 or 2+ only gets me a black screen...
Well, those numbers are not very spectacular.
at 14mhz it has a score 100% higher than Z80 at 3.58, so that at equal mhz it would give half of dhrystones
and compared to the R800 are 1220 vs 380 (and this is the best result).
I really expected much more from the z180, at least 30% extra performance per cycle, to see what happens with the z280.
Where can I download the dhrystone for MSX?
Well, those numbers are not very spectacular.
at 14mhz it has a score 100% higher than Z80 at 3.58, so that at equal mhz it would give half of dhrystones
and compared to the R800 are 1220 vs 380 (and this is the best result).
I really expected much more from the z180, at least 30% extra performance per cycle, to see what happens with the z280.
This is expected. Regardles of the processor you use there, the bus is running only at a mild overclock limited by the needed wait states. The rate the instructions get to the processor is essentially the same. The z280 has some internal cache that , when enabled, will help accelerating small loops. Z180 has none.
An MSX accelerator would need it's memory to be local. Include the BIOS and a mapper in the adapter and it will yield the expected performance. An this has the advantage of not overclocking the bus. But special care will be needed for some IO, like the VDP, FM chips...
There performance of the z180 is effected by the wait settings , i’m Guessing it is not running on optimal settings.
Then someone of good will could consider eZ80 CPU.
I've been playing with the Z180 and Z280 for a while now. It is difficult to get it running optimally (limited number of needed extra wait states vs highest possible frequency).
For now I am focussing on using an FPGA to build a 'enhanced' Z80 (*) or maybe later a Z80 with MSX engine like capabilities. I am basing it on the 'T80' Z80 FPGA core as used in e.g. 1ChipMSX, socz80 etc.
The KdL sources form a very nice base to work with.
The FPGA stuff has a steep learning curve (for me at least) but eventually I'll get there
(*) yes, I know. With the FPGA I can build a complete MSX but that is not my goal
jeej