mbbsemu:faq:performance
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
mbbsemu:faq:performance [2023/11/27 03:18] – 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 ===== |
mbbsemu/faq/performance.1701055131.txt · Last modified: 2023/11/27 03:18 by enusbaum