mbbsemu:faq:performance
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
mbbsemu:faq:performance [2023/11/26 21:09] – created enusbaum | mbbsemu:faq:performance [2023/11/27 15:23] (current) – enusbaum | ||
---|---|---|---|
Line 9: | Line 9: | ||
In summary, MBBSEmu' | In summary, MBBSEmu' | ||
+ | |||
+ | ===== MBBSEmu Performance Benchmark ===== | ||
+ | |||
+ | Within the MBBSEmu source code, a specialized benchmark tool has been developed to assess the core performance of the emulated CPU, located in the [[https:// | ||
+ | |||
+ | The core of this benchmark is a succinct and continuous loop, delineated as follows in the assembly code snippet ' | ||
+ | |||
+ | <file asm benchmark.asm> | ||
+ | reset: | ||
+ | MOV _word_ptr[0], | ||
+ | loop: | ||
+ | MOV AX, _word_ptr[0] | ||
+ | CMP AX, 0x7FFF | ||
+ | JE reset //If Equal, Reset memory value back to 1 | ||
+ | INC _word_ptr[0] | ||
+ | JMP loop //Continue the Loop | ||
+ | </ | ||
+ | |||
+ | This looping structure is selected for the benchmarking process due to its ability to engage various critical operations that are integral to CPU performance assessment: | ||
+ | |||
+ | - It involves both reading from and writing to registers. | ||
+ | - It executes memory read/write operations. | ||
+ | - The loop includes arithmetic operations, here exemplified by the CMP instruction, | ||
+ | - It incorporates both conditional (JE) and unconditional (JMP) jumps, allowing for a comprehensive examination of the CPU's ability to handle various control flow scenarios. | ||
+ | |||
+ | Through this compact yet effective loop, the benchmark provides a thorough evaluation of the CPU's capabilities in handling typical operations that would be encountered in a real-world emulation scenario. | ||
===== Performance Comparison Chart ===== | ===== Performance Comparison Chart ===== | ||
Line 16: | Line 42: | ||
^ Modern CPU ^ Performance ([[https:// | ^ Modern CPU ^ Performance ([[https:// | ||
| Raspberry Pi 4 (64-bit, 1.5Ghz) | 6.3 MIPS | 386DX @ 25Mhz | | | Raspberry Pi 4 (64-bit, 1.5Ghz) | 6.3 MIPS | 386DX @ 25Mhz | | ||
- | | Intel Xeon E5-2680v4 | 22.2 MIPS | 486DX @ 33Mhz | | + | | Intel Xeon E5-2680v4 |
- | | Intel i7-10870H | 33.4 MIPS | 486DX @ 50Mhz | | + | | Intel i7-10870H |
+ | | Intel i9-9900k (4.6Ghz) | 39 MIPS | 486DX @ 66Mhz | | ||
| Apple M2 Pro (2Ghz) | 56 MIPS | 486DX2 @ 66Mhz | | | Apple M2 Pro (2Ghz) | 56 MIPS | 486DX2 @ 66Mhz | | ||
// | // | ||
mbbsemu/faq/performance.1701032992.txt · Last modified: 2023/11/26 21:09 by enusbaum