rdnelson / Libra

An 8086 emulator with a focus on educational features.
Other
13 stars 4 forks source link

Achieve 8086 Execution Speed. #72

Open rdnelson opened 11 years ago

rdnelson commented 11 years ago

Current speed is approximately ~47.5 KIPS.

The 4.77MHz 8086 was rated to have an execution speed of 0.33 MIPS (330 KIPS) and the 10 MHz 8086 was rated at 0.75 MIPS, (750 KIPS) [1]. This means that Libra should be sped up by ~7-16 times.

For reference, Virgo's execution speed is ~13.0 KIPS (~3.7 times slower than Libra.)

The Virgo and libra numbers were calculated using the print_numbers.asm file in the gui branch.

[1] http://lowendmac.com/lowendpc/tech/8086.shtml

DarrenStahl commented 11 years ago

Running in release mode on Win32 I am able to produce ~200 KIPS by skipping the prints to screen using step over print_num.

Bottleneck is my CPU: i5 3570k, using only 1 of 4 cores. If we can split the work onto multiple cores exceeding 8086 execution speed may be sooner than expected.

rdnelson commented 11 years ago

I'm not sure that there's a way to parallelize the execution of the programs. They are written for a single core, and each step must be executed linearly.

The GUI updates should already be in a separate thread, although that should be confirmed.