RE: performance of the MPC55XX compared to a TI67XX

"Calvas, George \(G.\)" <[email protected]> Wed, 17 Jan 2007 10:21:22 -0500
Newsgroups gmane.comp.hardware.motorola.microcontrollers
Message-ID <AB3765CE9355A948915E50A4DE1E126219337C@na1ecm09.dearborn.ford.com>
Below is some excellent advice and recommend it.  I have come to some of
the same conclusions from the processor perspective, though there are
other considerations when you add the system design aspects of your
project.  Just one additional comment, understand your task rate
scheduler requirements using that as your benchmark to assure your task
executions will complete in time.  Also, you must take into account the
budget, the bringing up (if you ever used them, you will understand!)
and timing of learning and using new tools (os, compilers, debuggers,
calibration, testing).  Processor subcore engines such as TPUs, when
designed efficiently, are excellent I/O processors, especially for real
time signal processing control.
 

George Calvas 
R&A PT Controls Engineer 
CAE Tools & Methods Dept. 
POEE Bldg.   MD76   Cube AY159 
Phone#: 313 322.9040 

 

________________________________

From: [email protected] [mailto:[email protected]] On Behalf
Of Julian Requejo
Sent: Wednesday, January 17, 2007 4:30 AM
To: [email protected]
Subject: Re: [MPC500] performance of the MPC55XX compared to a TI67XX



Dear Todd,

Your question is a quite different to answer.

> The topic of MHz vs MFLOPs vs MMACs and RISC vs CISC is confusing 
> enough and I couldn't find anything specific to the subject on the 
> freescale website.

Unfortunately this are important questions. As you might know, RISC
processors execute quickly but "simple" instructions, while CISC
processors execute more complex instructions but might take longer to do
so. Caches play an important role in performance so this can't be
ignored either. I think the TI family you mention is VLIW, which means
that it's a pain (i.e. almost impossible) to program in assembly should
you need to, but hopefully this is not an issue. TI measures this in
MMACS, exactly for this reason: because for VLIW processors, they can
"cheat" with the benchmarks more. In practice, you can't never fully
utilize the whole pipeline of VLIW processors so that is purely
theoretical. Floating point is another important (maybe deciding factor)
to consider. Some CPUs support no floating point, others single point
only (MPC5554), others double precission. If your applications requires
double precission, I *highly* recommend you to choose a double prec!
ission CPU, whatever you choose. For avionics and hard real-time
applications I recommend you getting a CPU without cache or disabling it
altogether since this could lead in unexpected run-time issues
(unpredicable missed deadlines)

The reason why the MPC family is taylored torwards automotive is because
of the TPU (this is something that allows you to control simple actions
that require very precise timing, like engine in control and it is done
with a subcore of the MPC), and lots of I/O.

TI family of DSP as taylored for digital signal processing applications.
My rough advice is that if you are doing DSP apps and have experience
with TI, then stick to TI. If you need more I/O, consider the MPC
family.

So my advice is to first make a list of requirements
- Math precision
- Type of application
- Operating system support
- Budget (should you need new compilers, OS)

And then choose a processor family. Sorry if I didn't answer your
question, but it is not an easy one. Benchmarking is a very fuzzy thing.
You could buy cheap evaluation boards and if you are running rapid
prototyping systems (i.e. Matlab embedded coder, dSpace TargetLink, etc)
you test them with minimal effort). These tools usually offer run-time
analysis capabilities as well.

Reagards,
-Julian


 


[Non-text portions of this message have been removed]