Benchmarks

How we do them and measure the results?
Whetstone: Large Model
Whetstone: Small Model
Sieve: Large Model
Sieve: Small Model
Towers of Hanoi: Large Model
Towers of Hanoi: Small Model
Dhrystone: Large Model
Long Operations: Small Model


Whetstone: Large model

  Program: WHETS.C
  Memory Model: LARGE
  Pragmas: NoAuto, NoGeneric, NoExtStk
  Version: 6.10.35
  Against: Keil V5.02a
  Test date: February 2, 1997
  Tested by: HC
  Notes:  
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil Note: Franklin's superior code size in spite of the use of fully reentrant libraries.
Code Size - Total 7644 10091 7394 9100
Code Size - Module 3534 5283 3219 4234
Data Size - Static 8 34 8 34
Data Size - Dynamic 37 36 37 36
Data Size - Total 45 70 45 70
XDATA Size - Static 110 185 110 185
XDATA Size - Dynamic 0 0 0 0
XDATA Size - Total 110 185 110 185
Execution - In KIPS @12MHz 21 23 20 22

 


Whetstone: Small model

  Program: WHETS.C
  Memory Model: SMALL
  Pragmas: NoGeneric, NoExtStk
  Version: 6.10.35
  Against: Keil V5.02a
  Test date: Feb. 12, 1997
  Tested by: HC
  Notes: Impossible with Keil v5.02. Easily done with Franklin v6.1 in AUTO mode
because local variables are dynamic.
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comment:
  FSI Keil FSI Keil Note: Franklin's code size in spite of the use of fully reentrant libraries.
Code Size - Total 7064 impossible 6775 impossible
Code Size - Module 3073 impossible 2721 impossible
Data Size - Static 114 impossible 118 impossible
Data Size - Dynamic 35 impossible 35 impossible
Data Size - Total 149 impossible 153 impossible
XDATA Size - Static 0 impossible 0 impossible
XDATA Size - Dynamic 0 impossible 0 impossible
XDATA Size - Total 0 impossible 0 impossible
Execution - In KIPS @12MHz 25 impossible 23 impossible

 


Sieve: Large model

  Program: SIEVE.C
  Memory Model: LARGE
  Pragmas: NoAuto, NoGeneric, NoExtStk
  Version: 6.10.35
  Against: Keil V5.02a
  Test date: Feb. 9, 1997
  Tested by: FL
  Notes: This benchmark exercises loop management and the use of local registers.
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil Increased FSI DATA size due to fully reentrant printf() routine.
Code Size - Total 1006 1322 1030 1322
Code Size - Module 185 201 177 201
Data Size - Static 8 34 8 34
Data Size - Dynamic 28 6 28 6
Data Size - Total 36 40 36 40
XDATA Size - Static 8197 8237 8197 8237
XDATA Size - Dynamic 0 0 0 0
XDATA Size - Total 8197 8237 8197 8237
Execution - In seconds @12MHz 7.061 7.835 7.383 7.835

 


Sieve: Small model

  Program: SIEVE.C
  Memory Model: SMALL
  Pragmas: NoAuto, NoGeneric, NoExtStk
  Version: 6.10.35
  Against: Keil V5.02a
  Test date: Feb. 2, 1997
  Tested by: FL
  Notes: This benchmark exercises loop management and the use of local registers.
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil Increased FSI DATA size due to fully reentrant printf() routine.
Code Size - Total 973 1240 973 1240
Code Size - Module 152 166 152 166
Data Size - Static 14 34 14 34
Data Size - Dynamic 28 6 28 6
Data Size - Total 42 40 42 40
XDATA Size - Static 8191 8191 8191 8191
XDATA Size - Dynamic 0 0 0 0
XDATA Size - Total 8191 8191 8191 8191
Execution - In seconds @12MHz 5.800 6.001 5.800 6.001

 


Towers of Hanoi: Large model

 

  Program: SIEVE.C
  Memory Model: LARGE
  Pragmas: NoAuto, NoGeneric, ExtStk
  Version: 6.10.01
  Against: Keil V5.02a
  Test date: October 9, 1996
  Tested by: HC
  Notes: This particular example demonstrates the speed of fast external stacks when
their use is necessary for fully reentrant capability.
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil XDATA size does NOT include the external stack
Code Size - Total 1118 2227 1118 2228
Code Size - Module 913 1058 913 1037
Data Size - Static 9 34 9 34
Data Size - Dynamic 13 10 13 12
Data Size - Total 22 44 22 46
XDATA Size - Static 43 81 43 81
XDATA Size - Dynamic 32 32 32 32
XDATA Size - Total 75 113 75 113
Execution - In ms @12MHz 9.816 15.572 9.816 16.660

 


Towers of Hanoi: Small model

  Program: TOWERS.C
  Memory Model: SMALL
  Pragmas: NoAuto, NoGeneric, NoExtStk
  Version: 6.10.03
  Against: Keil V5.02a
  Test date: October 19, 1996
  Tested by: FL
  Notes: SIZE=4, NOPRINT
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil The advantage afforded by a "switchable" printf function.
Code Size - Total 829 1709 829 1790
Code Size - Module 643 691 643 691
Data Size - Static 49 78 49 78
Data Size - Dynamic 42 42 42 42
Data Size - Total 91 120 91 120
XDATA Size - Static 0 0 0 0
XDATA Size - Dynamic 0 0 0 0
XDATA Size - Total 0 0 0 0
Execution - In ms @12MHz 5.139 5.542 5.139 5.542

 


Dhrystone: Large model

  Program: DHRY.C
  Memory Model: LARGE
  Pragmas: NoAuto, NoGeneric, NoExtStk
  Version: 6.10.35
  Against: Keil V5.02a
  Test date: Feb. 12, 1997
  Tested by: HC
  Notes: In this case the size of the "SPEED" optimized code is atypically smaller that "SIZE"
optimized code due to the inclusion of single access library code.
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil The advantage afforded by a "switchable" printf function.
Code Size - Total 5204 5594 5259 5369
Code Size - Module 2166 2296 2106 2020
Data Size - Static 8 34 8 34
Data Size - Dynamic 48 23 48 20
Data Size - Total 56 57 56 54
XDATA Size - Static 5494 5537 5494 5537
XDATA Size - Dynamic n/a n/a n/a n/a
XDATA Size - Total 5494 5537 5494 5537
Execution - In seconds @12MHz 0.9746 1.0261 0.9957 1.07764

 


Long Operations: Small model

  Program: LONG_OP.C
  Memory Model: SMALL
  Pragmas: NoAuto, Generic
  Version: 6.10.36
  Against: Keil V5.02a
  Test date: Feb. 14, 1997
  Tested by: FL
  Notes: A general execution of long integer math operations. The test function performs several
long integer math operations with 10 different values. For instance: a very common
occurrence, converting an integer value into a string. This example illustrates that small
size is not the only criteria for effective operational speed!
  Measurement Optimize for
SPEED
Optimize for
SIZE
Comments:
  FSI Keil FSI Keil The advantage afforded by a "switchable" printf function.
Code Size - Total 1656 1803 1721 1803
Code Size - Module 269 287 247 287
Data Size - Static 64 103 64 103
Data Size - Dynamic 33 4 33 4
Data Size - Total 97 107 97 107
XDATA Size - Static 0 0 0 0
XDATA Size - Dynamic 0 0 0 0
XDATA Size - Total 0 0 0 0
Execution - In m/seconds @12MHz 38.66 109.85 49.27 109.85