 |
|
 |
 |
 |
Maxim >
Products >
Microcontrollers
>
MAXQ Mixed-Signal > Performance
|
 |
 |
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
|
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
|
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
|
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
|
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.
|
 |
|
 |