Page 1 of 2

V20 vs 8088 Speed Test?

PostPosted: Wed Apr 12, 2017 7:21 am
by Tempest
Has anyone done a video showing a game running on the PCjr with a V20 and a 8088? I know everyone says that the V20 gives you about a 20% speed increase, but I'd like to see how that actually translates into a game. Does it make any games play too fast or make them way too hard? I was hoping to see a good video comparison but it appears that no one has ever done that.

Re: V20 vs 8080 Speed Test?

PostPosted: Mon Apr 17, 2017 6:42 pm
by KenG
I assume you mean V20 vs. 8088. I did a few speed tests and only got 5 to 10% difference. The main reason I did it was for compatibility with some drivers.

Re: V20 vs 8080 Speed Test?

PostPosted: Tue Apr 18, 2017 6:10 am
by Tempest
Doh! Yes I meant 8088. :)

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 9:51 am
by Brutman
I don't think that anybody can claim a 20% speed increase when running normal software. Some of the benchmarks show that particular classes of instructions are faster, so if your instruction mix was only those instructions it would look great. But that's not the way the real world works.

I've estimated it at about 5% better on average.

The real gain from a V20 is that it has some extra instructions that were added for the 80286. So that some software, like NCSA Telnet or the Iomega Zip drive Guest utilities will run on your 8088 class system (with a V20) where an 80286 is required. And I believe the V20 also added support for the REP prefix in front of I/O instructions, which if your BIOS or hard drive controller is aware of it can really improve the speed of PIO transfers.

(There were some XT controller cards hacked onto PCjrs that took advantage of that. Normally one would use DMA on an XT controller, except when they are hacked onto a PCjr where no DMA is available. The V20 version of those BIOSes was very fast compared to the 8088 versions.)

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 10:28 am
by Trixter
Measurements done using TOPBENCH show roughly 15-20% increase on average across all instructions, with much of the gains coming from a faster MUL/DIV (see the "opcodes" and "3dgames" usec timings in the attached screenshot; ignore the "1.5x faster" note as that is based on the Score and not the timings). That's synthetic, not real-world, so you'd have to run a side-by-side comparison with your specific use case (games? spreadsheet calcs?) to see what the real speed difference is.

I generally discourage people using an NEC V20 with a PCjr, since it can screw up the timing of software that was hard-coded for PCjrs and cause it to break (ie. joystick handling). That said, I am curious to see what the actual TOPBENCH results are for an actual PCjr with/without comparison, so I can work on that this weekend.

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 10:32 am
by Brutman
I think the V20 is the greatest thing since sliced bread for a PCjr. With the exception of Lode Runner (which can be patched), most software works fine with it, including everything I've ever run under DOS, Flight Sim, Pitfall II, Crossfire, Demon Attack, Archon, etc. And you get the extra instructions.

I've had a V20 in my system since 1987.

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 11:49 am
by Tempest
Software compatibility is what I'm most concerned about. Other than Lode Runner have you seen any games that were broken?

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 12:05 pm
by Brutman
No, but I'm no where near the level of a game player that Trixter is. If the timing of a game is slightly off it wouldn't bother me at all. But I've certainly played enough games over the years, both cracks, booters and cartridge games, and except for the well known problem of Lode Runner I can't recall any problems.

Re: V20 vs 8088 Speed Test?

PostPosted: Sat Apr 22, 2017 12:20 pm
by Trixter
I've seen some PCjr cartridges (probably the Nasir Gebelli ones) not work with joysticks on the V20, but other than that, you're probably right that it's ok to use. And if something breaks, it's easy to swap the 8088 back in :-)

Re: V20 vs 8088 Speed Test?

PostPosted: Wed Apr 26, 2017 8:29 pm
by Trixter
I had a chance to run actual numbers using TOPBENCH on a PCjr with a memory expansion, and the same PCjr with an NEC V20 added. With no other differences, here's what the numbers look like:

Code: Select all
+--------------------------------------+-------+-------------+-------------+------------+-----------+-------------+--+---------+
|                 Name                 | Score | usecMemTest | usecOpcodes | usecVidMem | usecMemEA | usec3DGames |  | Average |
+--------------------------------------+-------+-------------+-------------+------------+-----------+-------------+--+---------+
| IBM PCjr (memory expansion)          |     4 | 3579        | 1660        | 2578       | 1811      | 1773        |  |         |
| IBM PCjr (memory expansion, NEC V20) |     6 | 2415        | 1463        | 1877       | 1777      | 1348        |  |         |
|                                      |       |             |             |            |           |             |  |         |
| Speed difference (% faster)          |       | 48%         | 13%         | 37%        | 2%        | 32%         |  | 26%     |
+--------------------------------------+-------+-------------+-------------+------------+-----------+-------------+--+---------+


An explanation of the metric code:

usecMemTest: Performs memory read/write speed tests
usecOpcodes: Exercises every opcode once (except for HLT and the LOCK prefix)
usecVidMem: Performs video memory read/write speed tests
usecMemEA: Exercises all forms of effective-address calculations
usec3DGames: An instruction mix that mimics the inner loop calculation of a 3-D game (ie. does the 3-d rotation/translation matrix math)

As for the Score, that's a synthetic number you can use to compare systems with each other. "4" puts the PCjr in the same class as a 4.77 MHz 8088, and "6" puts an NEC V20 PCjr in the same class as a 7.16 MHz 8088.

I'm very surprised by the memory-heavy tests showing such an improvement on the PCjr, and don't immediately have an explanation for that. But everything else matches up with both the marketing claims of the chip and memories of using it: The speedup for all instructions (usecOpcodes) is 13% faster, and the average speedup across all use cases in the benchmark (which were designed to mimic situations where speed differences are more easily observed) is 26% faster.