98/08/24
ENHANCED RISC
Dear reader of this benchmark
The following general comments should be noted on C Code benchmarking:
O ur goa l wit h th is pr e s en ta ti on is to s u ppo r t ou r clai m tha t w e ha v e a ver y High Level La ng ua ge (in this c as e ‘C ’) sui tabl e ar chitecture.
The results may vary from application to application, but in average you will find AVR among the most code efficient architectures in the
market.
The r e do es no t exi s t an y s ta nd ar d to me as u r e C Cod e effi cie nc y, hen c e we hav e col lec te d r ea l ap pl ica ti o ns from c u st o m er s. The r e is,
however, an emerging standard for measuring C Code efficiency. The EEMBC (EDN Embedded Microprocessor Benchmark Consortium) are
currently developing a benchmark suite of real and synthetic applications written in C which we will look into when it becomes available.
Since not all code could be compiled for all compilers, all the indexes are relative to AVR. Only the applications that could be compiled for both
two applications are summed, and the ratio between the code sizes is displayed.
Since not all code could be compiled for all compilers, all the indexes are relative to AVR. Only the applications that could be compiled for both
two applications are used, and the ratio between every two applications is computed. The averaged ratio is displayed in the figure.
Most of the compile r s used ar e fr om IA R. Th e ad van t a ge of us ing t he same com p iler c om p an y f or m os t of the pro ces sors is tha t the di ffere nce
in the code size does not depend on the global optimization which all compilers will benefit from, but to a larger degree of architectural
differences.
Some of the compilers exist in la te r versions, so the results might be diff erent for some of the mic rocontrollers.
The AVR C Compiler is, compared to many of our competitors, a relatively young compiler. The AVR C Comp iler still gains significant
code size decrease in every new release of the compiler.
By writing the code with the AVR architecture a s maller code s ize can be achieved. The code in the benchmark i s NOT optimi zed for
AVR, but the result is still very good !
Enj o y you r rea d ing
98/08/24
ENHANCED RISC
C Code Benchmarks
98/08/24
ENHANCED RISC
C Code Benchmarks
zNine applicati ons
zBased on customer code
zVarious application areas
zByte usage in individual applications
zSummarized resul ts reported as
Normalized Accumulated Results
Av era g ed Norm a l i z e d Resul t s
98/08/24
ENHANCED RISC
Pager protocol
0
2000
4000
6000
8000
68HC11 AVR Thumb H8/500 Z80 80196 H8/300H Arm7 80C51 H8/300
#Bytes
z
Three layer protocol
z
Includes simple driver
98/08/24
ENHANCED RISC
Analog Telephone I
0
1000
2000
3000
4000
5000
6000
AVR Thumb 68HC11 Z80 H8/500 80196 80C51 H8/300H ARM7 H8/300
#Bytes
z
SIM Interface
z
Parts of display driver
98/08/24
ENHANCED RISC
Analog Telephone II
0
5000
10000
15000
20000
25000
30000
AVR Thumb 68HC11 H8/500 ARM7 H8/300H H8/300 80C51
#Bytes
z
Automatically generated code
z
State Machine based
98/08/24
ENHANCED RISC
Reed-Solomon
0
2000
4000
6000
8000
Thumb H8/500 ARM7 AVR 68HC11 H8/300H Z80 80C51 H8/300
#Bytes
z
Reed-Sol omon Encoder /Decoder
98/08/24
ENHANCED RISC
Car Radio Control
0
200
400
600
800
1000
1200
Z80 AVR 80C51 H8/500 68HC11 Thumb H8/300H ARM7 H8/300
#Bytes
z
Skeleton application
z
Control Flow and Bitfields
98/08/24
ENHANCED RISC
C Bitfields
0
500
1000
1500
2000
2500
AVR Thumb Z80 68HC11 80C51 H8/500 ARM7 H8/300H H8/300
#Bytes
z
Benchmark code from customer
z
8 and 16 bit bitfield variables
98/08/24
ENHANCED RISC
Analog Telephone III
0
200
400
600
800
1000
1200
H8/500 68HC11 AVR Z80 H8/300H 80C51 H8/300
#Bytes
z
Representative collection of routines from an analog
telephone applicat ion
98/08/24
ENHANCED RISC
DES Algorithm
0
500
1000
1500
2000
2500
3000
Thumb H8/500 AVR 68HC11 Z80 ARM7 H8/300H 80C51 H8/300
#Bytes
z
Encryption/Decryption algorithm
98/08/24
ENHANCED RISC
Navigati on Ap pli catio n
0
5000
10000
15000
H8/500 Thumb 68HC11 AVR Z80 80C51 ARM7
#Bytes
z
Complete applicat ion
z
Communication, measurement s, comput ations
98/08/24
ENHANCED RISC
Accumulated over all Benchmarks
0
0,5
1
1,5
2
2,5
AVR Thumb H8/500 68HC11 Z80 80196 ARM7 H8/300H 80C51 H8/300
Normalized
z
Indexes based on accumulated sizes
z
Large applicati ons counts more than small
98/08/24
ENHANCED RISC
Normalized over all Benchmarks
0
0,5
1
1,5
2
AVR Thumb H8/500 68HC11 Z80 80196 ARM7 H8/300H 80C51 H8/300
Normalized
z
Averaged indexes from all applications
z
All applications counts evenly
98/08/24
ENHANCED RISC
Summary
zNine C Code Benchmarks from various
application areas
zNo single microcontroller best for all
applications
zAVR in the top range for all the applications
98/08/24
ENHANCED RISC
Compilers Used
zAVR: IA R ICCA 90 vers ion 1.40
z80C51: IAR ICC8051 version 5.20
zThumb: ARM tcc version 1.02b
zARM: ARM armcc version 4.66b
z80196: IAR icc196 version 5.20a
zZ80: IAR iccz80 version 4.03a
zH8/300(H): IAR icch83 version 3.22
zH8/500: IAR icch8500 version 2.92g
z68HC11: IAR icc6811 version 4.20B