ENGLISH 简体中文 日本語 한국어  

    Login | Register 


   
 
Enter keywords or part number    



MAXQ Competitive Performance

Analysis Performed Using Competitors' Benchmarks

We compared the MAXQ's performance against the MSP430, ATMega8, PIC18F242, 8051, H8/300L, MC68HC11, and even the 32-bit ARM7. The results show that the MAXQ is the best performer among the 8-/16-bit devices, and that it is competitive with the 32-bit ARM7.

The Benchmark

Texas Instruments (TI) provided the benchmark code for this performance analysis as part of their application note at focus.ti.com/lit/an/slaa205a/slaa205a.pdf. TI exclusively used the IAR Embedded Workbench in their analysis, a very mature compiler for the MSP430. We decided to also consider the Rowley CrossWorks compiler, which uses the architectural features of the MAXQ microcontroller quite effectively.

The TI application study did not use compiler options for optimizing code. TI's reason was to eliminate compiler intelligence from the study. We believe, however, that eliminating compiler optimizations limits the compilers from effectively using the microcontroller's architectural features. We also believe that final application code for a real-world application will probably enable optimizations and that performance benchmarks should model real-world applications. Consequently, we activated particular optimization goals (smallest code size or fastest execution) and reran the benchmarks on an AVR ATmega8, a TI MSP430F149, and a MAXQ2000.

To indicate how the compiler and optimization choices affect performance data differently, the graph below shows the MAXQ2000's performance on the Rowley CrossWorks compiler along with data from the original TI benchmark. The data is presented in benchmark iterations per second, assuming a 1MHz clock for all devices.

MAXQ Performance
vs. TI Published Benchmark Data

MAXQ Performance vs. TI Published Benchmark Data

To make the study more equitable, the Dallas Semiconductor benchmark study includes the MSP430F149, the device used in the original TI application study although it does not have a built-in hardware multiplier like the MAXQ2000. To level the playing field, the MSP430F449 (which does have a hardware multiply accelerator) is used.

Read on for a summary of the data we collected. For even more details, Maxim's application note MAXQ Competitive Analysis Study describes our methodology in detail. The project files for the benchmark study are provided in the Compiler Detail links at the bottom of this page.


Summary: Execution Speed

The table below summarizes the execution performance for each microcontroller in the TI benchmark study. The first several entries are simply reprinted from the TI application note. The last entries come from Dallas Semiconductor's benchmark study, which used fastest execution as the compiler optimization goal. (See Compiler Details.)

Execution speed is measured in terms of clock cycles, the number of cycles between the entry and exit of the main() routine. Therefore, it does not include startup time.

Microcontroller Compiler Number of Cycles Normalized to MAXQ
TI Benchmark Study
MSP430F135 IAR 170,249 2.43
ATMega8 IAR 213,680 3.06
PIC18F242 IAR 336,543 4.81
8051 IAR 269,638 3.86
H8/300L IAR 303,198 4.34
MC68HC11 IAR 640,038 9.16
MAXQ20 IAR 627,319 8.97
ARM7TDMI (Thumb) IAR 52,293 0.75
Dallas Semiconductor Benchmark Study
MSP430F149 IAR 89,253 1.27
ATMega8 IAR 89,698 1.28
MSP430F149 Rowley 95,713 1.37
ATMega8 Rowley 87,000 1.24
MAXQ2000 Rowley 69,914 1.00

This data is presented in the graph below. Numbers from the TI benchmark study are on the left side of the graph, while numbers from the Dallas Semiconductor study are on the right. The data is presented as "Benchmark Iterations per Second," assuming a 1MHz clock rate. Therefore, the taller the bar on the graph, the greater is the performance.

Benchmark Iterations per Second
Benchmark Iterations per Second
Note: Performance numbers for the IAR Embedded Workbench on the MAXQ are not optimal. The IAR compiler is not nearly as mature in its initial releases for the MAXQ microcontroller as Rowley's CrossWorks, which uses the architectural features of the MAXQ microcontroller quite effectively.

If we take the best performance data for the MSP430F149, ATmega8, and MAXQ2000, and if we show benchmark iterations per second when running both at 1MHz and at Fmax, we see just what each device can do at full speed.

Microcontroller No.
of Cycles
Fmax (MHz) Iterations/s at 1MHz Iterations/s at Fmax
MSP430F149 89,253 8 11.20 89.60
ATMega8 87,000 16 11.49 183.84
MAXQ2000 69,914 20 14.30 286.00

The graph below shows the number of benchmark iterations per second that each microcontroller can run at its maximum clock rate, Fmax.

Benchmark Iterations at Fmax
Benchmark Iterations at Fmax


Summary: Code Size

The table below shows code size (in bytes) for each application in the TI benchmark code suite. The first several entries are simply reprinted from the TI application note. The last entries are the result of the benchmark study by Dallas Semiconductor, which used smallest code as the compiler optimization goal. (See Compiler Details.)

Code size is measured in bytes and does not include any interrupt handler or startup code. Note that code size does include constant space. This is because compilers for some architectures will include program constants in either the CODE or the CONSTANT space. Consequently, the two must be combined for a realistic comparison.

Microcontroller Compiler Code Size Normalized to MAXQ
TI Benchmark Study
MSP430F135 IAR 2,808 0.75
ATMega8 IAR 5,114 1.36
PIC18F242 IAR 9,302 2.48
8051 IAR 6,880 1.83
H8/300L IAR 6,866 1.83
MC68HC11 IAR 6,622 1.76
MAXQ20 IAR 6,188 1.65
ARM7TDMI (Thumb) IAR 7,208 1.92
Dallas Semiconductor Benchmark Study
MSP430F149 IAR 3,862 1.03
ATMega8 IAR 4,196 1.12
MSP430F149 Rowley 4,076 1.09
ATMega8 Rowley 3,712 0.99
MAXQ2000 Rowley 3,746 1.00

The total "Benchmark Code Size" is presented in the graph below. Numbers produced by the TI benchmark study are on the left side of the graph; numbers produced by Dallas Semiconductor's study are on the right.

Benchmark Code Size
Benchmark Code Size
Note: Code size numbers for the IAR Embedded Workbench are not optimal. The IAR Compiler is not nearly as mature in its initial releases for the MAXQ microcontroller as Rowley's CrossWorks, which effectively uses the architectural features of the MAXQ microcontroller.


Benchmark Study: Compiler Details

The following links explain how the benchmark data was accumulated for each microcontroller studied. The RESULTS links provide detail the results for each of the 10 benchmark applications. The SOURCE links provide source and project files for the suite of benchmarks on a particular microcontroller, so users can reproduce the results.

Processor Compiler Detailed Results
and Project Source
MAXQ2000 CrossWorks for MAXQ Release 1.0 Build 2 Results Source (ZIP, 123k)
MSP430F149 CrossWorks for MSP430 Release 1.3 Build 3 Results Source (ZIP, 138k)
ATmega8 CrossWorks for AVR Release 1.1 Build 1 Results Source (ZIP, 180k)
MSP430F149 IAR C/C++ Compiler for MSP430 V3.30A/W32 (3.30.1.1) Results Source (ZIP, 129k)
ATmega8 IAR C/C++ Compiler for AVR 4.10B/W32 (4.10.2.3) Results Source (ZIP, 160k)

Benchmark studies done with the Rowley compiler contain two extra build configurations. In addition to the traditional Debug and Release configurations, there are also Smallest and Fastest configurations, which were used to produce the smallest code size or fastest executable.

Benchmark studies for the IAR compiler set the optimization level to high, and switched between the optimization goals of Size and Speed.

See the project files in the source distribution for all the configuration details.
        •         •         •     Privacy Policy     •     Legal Notices

    Copyright © 2009 by Maxim Integrated Products