1 Dhrystone
The industry standard Dhrystone v2.2 is executed on one of the RISC-V CPU cores of the PolarFire SoC target platform. The Dhrystone suite remains intact with the application even after changing the wrapper code that allows different levels of execution timings on the PolarFire SoC Icicle kit. Dhrystone suite is adapted to get the processor performance, which plays an important role in the non-numeric system programming and emulates the processor usage with the help of certain common set of programs. The benchmarking value shows the iterations of the program executed by the processor at a particular time frame and normalizes to per MHz of CPU clock frequency.
The Dhrystone program gets the comparative performance differences between the external and internal memory settings along with the system settings. The Dhrystone suite features a well-structured code base, which takes full advantage of the wrapper code resulting in optimal biased configuration to get the best performance results.
Following are the key features of Dhrystone:
- Well-suited for embedded CPUs
- Provides great comparison of the compiler performances
- Performs synthetic benchmarks to compare different system architectures
- Has a very small binary footprint, which determines the CPU's benchmarking quickly
For more information about Dhrystone, see en.wikipedia.org/wiki/Dhrystone.
Dhrystone on Bare Metal
To execute a benchmarking test suite, it must be self-contained to allow its execution on the hardware directly. This is necessary at the start of an SoC design to evaluate and establish correlations of expected integer performance.
Results
The following table lists the Dhrystone benchmarking results for one Application Processor Core U54 running Bare Metal using the PolarFire SoC Icicle Kit.
Dhrystone | Bare Metal | |||||
---|---|---|---|---|---|---|
Memory Section | LIM (1.8 MB) | ITIM (28 KB) | eNVM (128 KB) | eNVM (128 KB) | Scratchpad mem (512 KB) | LPDDR4 |
Code (main loop is run from) | LIM | ITIM | eNVM | eNVM | Scratchpad | LPDDR4 |
Stack located in | LIM | Scratchpad | LIM | Scratchpad | Scratchpad | LPDDR4 |
Dhrystone Result (DMIPS/MHz) | 0.58 | 1.58 | 0.47 | 0.975 | 1.714 | 1.714 |
Code Size | Full image size is around 70 KB. Dhrystone main loop is less than 2 KB. | Full image size is around 63 KB | ||||
Compiler Flags | -pipe -fno-builtin-printf -mexplicit-relocs -fpredictive-commoning -fprofile-report -fstack-usage -fmem-report -flto-report -fipa-pta -fipa-cp-clone -fdevirtualize-speculatively -fdevirtualize-at-ltrans -fira-region=all -fira-hoist-pressure -fira-loop-pressure -fno-stack-limit -fno-inline -fno-common -falign-functions=4 -ffunction-sections -fdata-sections |