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.

Table 1-1. Dhrystone Benchmarking Results on Bare Metal

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