5 ms·
The 8088 has a external 8 bits bus. The performance improvement hardware 16 bits ALU is neglected by the slower memory access. And that memory access was also
by rsecora 3y ago
The 8088 has a external 8 bits bus. The performance improvement hardware 16 bits ALU is neglected by the slower memory access.
And that memory access was also the reason a 6502 carefully programmed will have better performance than a 8088 with 5x the clock speed. The first 256 bytes (0 pages) had better access performance.
- wk_end 3y agoThis comment is misleading. Z80 also has an 8-bit external bus. And, FWIW, so does the 6502. The reason zero page is fast on the 6502 is because of more concise encoding, not because that memory is somehow faster. I'm broadly skeptical that a 6502 outperforms an 8088 at 5x clock speed in practice. Would love to see benchmarks. Certainly I'd expect it to be highly task dependent.
- 300bps 3y agoI've programmed in 6502 Assembly for decades and your skepticism is right on. These comparisons have so many variables that they are extremely hard to make accurately. FTA - I would have guessed that the 8088 is much faster at about the same clock speed, because it has more 16-bit operations and does multiplication and division in hardware. Does the compiler of the compiler make use of these extra 16-bit operations? How many layers of abstraction does it go through for each of the environments? Does it use DOS interrupts when running on DOS and optimized machine code on CP/M? These comparisons are strange thought experiments.
- nils-m-holm 3y agoThe compiler uses the same level of optimization on both DOS and CP/M. It is self-compiled on both platforms. It uses DOS interrupts on DOS and BDOS functions on CP/M, but I/O is really not a big issue here. The DOS compiler does make use of the extra 16-bit operations. Is it still an inaccurate comparison? Sure. But I expected something dramatically different, so I asked.
- gallier2 3y agoThere are also some very questionable statements in the articlle like saying that 6502 instructions only need one cycle. It's 2 to 7 in reality. Over the years the comparison between 6502 vs Z80 tend to show that you have to clock the Z80 at about twice the frequency of the 6502 to get the same performance. 8088 having a slight edge over the Z80 it is clear that a 5 MHz will be quite faster than a 1 MHz 6502 (C64 was even under 1MHz as the VIC chip would steal some cycles every 8th display line)
- weinzierl 3y ago"C64 was even under 1MHz" Not that it matters much, but strictly speaking this is true only for the PAL version.
- NovemberWhiskey 3y agoFor what it's worth ... https://github.com/Keith-S-Thompson/dhrystone/blob/master/v2.1/dhrystone.c#L134 https://github.com/Keith-S-Thompson/dhrystone/blob/master/v2... On the Dhrystone 1.0 micro-benchmark, a C64 is ~36/s, whereas the PC/XT models tested (basically same as the original PC) are more like 300+/s.
- classichasclass 3y agoA C benchmark on the 6502 seems suspect to me given that the 6502's architecture tends to make writing stack-based language compilers for it more complicated than other platforms. Some of the difference may be just because the object code generated for the 6502 isn't efficient. That said, any 16-bit optimizations the 8088's compiler could take advantage of, well, that's fair game.