Page 1 of 1

QL vs BBC vs Amstrad 464

Posted: Mon Nov 04, 2019 3:36 pm
by Andrew
Sinclair QL vs BBC model B vs Amstrad CPC 464

i do not understand how in the benchmark test QL was slower than Amstrad

https://youtu.be/Gj-DdSD6C3k

Re: QL vs BBC vs Amstrad 464

Posted: Wed Nov 06, 2019 9:31 pm
by Peter
My first guess: Maybe integer calculations, not using integer variables on the QL, but on the Amstrad.
Their rating looked arbitrary, e.g. for graphics they assigned just one point difference, although the QL was much faster.
And they didn't value the microdrives over cassette at all.

By the way, this is not off-topic. You might get more feedback under "General QL Chat".

Re: QL vs BBC vs Amstrad 464

Posted: Thu Nov 07, 2019 12:12 am
by 1024MAK
The trouble is, we don’t know the exact set of benchmarks that were used.

I’m guessing that this was all the standard benchmarks rolled into one program. The whole point was to run the same program on each machine. So they were all likely using floating point variables. As that is the most common type in most versions of BASIC.

The Beeb is known for having one of the fastest BASICs of the 8 bit micros. And it’s also quite speedy when writing to the screen if in MODE 7 (the teletext mode). It’s not bad in the graphical modes either. The Beeb normally starts up in mode 7.

The 6502 runs at 2MHz when accessing ROM or RAM, including no slowdown when accessing screen RAM.

The Amstrad CPC uses a 4MHz Z80 and was developed after the Beeb. The designers put a lot of effort into getting the most out of it. So it’s fairly fast at printing to the screen. And it’s BASIC is fast as well.

Although the QL has a 68008 running at a little under 8MHz, multiple accesses are needed to get the data from RAM. As the bus width is only eight bits. And the 68008 has to wait if the ULA is drawing the screen.

Mark

Re: QL vs BBC vs Amstrad 464

Posted: Thu Nov 07, 2019 7:54 am
by tofro
From a pure hardware spec perspective, the QL should have been marginally faster than the Beeb or the Amstrad. Early QL Basic, however, has always been known to be bug-ridden and slow. This improved over time - Probably the QL would win today. S*Basic on SMSQ/e, on the same hardware, is way faster than old QL Basic.

Re: QL vs BBC vs Amstrad 464

Posted: Thu Nov 07, 2019 11:28 pm
by janbredenbeek
Peter wrote:My first guess: Maybe integer calculations, not using integer variables on the QL, but on the Amstrad.
Their rating looked arbitrary, e.g. for graphics they assigned just one point difference, although the QL was much faster.

Remember that using integer variables on the original QL had no speed advantage, it was often even slower. When calculating i%=i%+1 the '1' was stored as floating point, so i% had to be converted to float first and after the addition back to integer. This was the reason why Laurence introduced 'integer tokenisation' in Minerva so that constants were stored in integer format where possible so the maths could be integer too. SuperBASIC even had two reserved token codes ($89 and $8A) for this but they didn't make it to the Sinclair ROMs.

Overall I had the impression that the QL's math package was quite fast compared to 8-bit machines even for floating point, partly thanks to the 68000's MULx instruction (you needed 4 of them for a FP multiplication as these have a 32-bit mantissa, but this is probably still faster than having to do it bit-by-bit on the 6502 or Z80).

Jan

Re: QL vs BBC vs Amstrad 464

Posted: Mon Jan 27, 2020 9:45 am
by tcat
The 6502 runs at 2MHz when accessing ROM or RAM, including no slowdown when accessing screen RAM.

The Amstrad CPC uses a 4MHz Z80 and was developed after the Beeb. The designers put a lot of effort into getting the most out of it. So it’s fairly fast at printing to the screen. And it’s BASIC is fast as well.


I wonder, what the circuitry trick is in these machines, that CPU is not stalled while screen is refreshed (any visual side effects perceptible to the user?). There are other micros of that time, 8-bit Commodore, and ATARI. I never had these, so I cannot tell where they stand in the bench.

Tom

Re: QL vs BBC vs Amstrad 464

Posted: Mon Jan 27, 2020 9:53 am
by Pr0f
Access to screen memory is interleaved with the CPU on the beeb, so the RAM's have to be fast enough to do double work duty, but the processor never has to wait for memory access.

It's more than possible to do this with the 68000 as well.

I think the Amstrad used seperate memory area for the screen - a lot of the later Z80 based home machines did, and of course the MSX machines used the 99x8 series of video chips, where screen memory was accessed over an I/O port

Re: QL vs BBC vs Amstrad 464

Posted: Mon Jan 27, 2020 9:59 am
by dex
Amstrad CPC is significantly slowed down by its video and memory circuits to approx. 3.3 MHz.

Re: QL vs BBC vs Amstrad 464

Posted: Mon Jan 27, 2020 10:38 am
by Pr0f
dex wrote:Amstrad CPC is significantly slowed down by its video and memory circuits to approx. 3.3 MHz.


But is that a 4MHz Z80 being clocked at 3,3MHz to get video timing correct - in which case it is a 3.3MHz Z80 - the speed on the CPU itself is just the maximum rating it can be run at reliably - you can run it on a lower frequency (there are limits depending on the processor type and model, as some had fully static cores - like the CMOS version used in the Z88, which can litereally be stopped dead or run with a very very slow clock to save power.

Re: QL vs BBC vs Amstrad 464

Posted: Mon Jan 27, 2020 2:03 pm
by 1024MAK
The 6502 CPU used in the BBC Micro only uses the data-bus when the CPU clock is high. Hence if you isolate the address and data lines, the video system can use the time when the CPU clock is low to get screen data from the main RAM. Hence no slowdown. Note that this does not apply if you want your 65C02 to run at faster clock rates, as then the system needs the address data during the low part of the clock ready to enable memory when the clock goes high.

The Amstrad CPC machines do run the Z80 at 4MHz. But the Amstrad custom gate array chip pauses the Z80 so that the display system can get access to the RAM. This reduces the effective average clock rate.
”The system centres round the Z80A with a 4.00MHz clock". "Accesses to memory are synchronised with the video logic, constrained to occur on microsecond boundaries”. “This has the effect of stretching each Z80 machine cycle to be a multiple of 4 time states (clock cycles)”. “In practice, this alters the instruction timing so that the effective clock rate is approximately 3.3MHz".
From here. More here and here.

This is similar (but not the same) as that used on the ZX Spectrum.

Machines that use a video display processor (note that it’s NOT a MPU/CPU) have completely separate screen RAM where there is no direct access by the MPU/CPU. The Memotech MTX has this arrangement, hence it’s Z80 always runs at 4MHz. The MSX machines are similar. The disadvantage is that writing lots of data to the screen RAM takes longer. And random access takes more time again, as you have to send the required address first before the data. All via I/O instructions.

Mark