xviii
Foreword
larger number is supposed to mean yet more features. Similarly, the Cortex processor naming was used
because an ARM13 processor could not be tiny compared to an ARM12.
Cortex-M3 was developed with a very heavy focus on gate count, power use, dynamic speed range,
and efciency. Gate count was a major consideration only because it affects power and efciency and
is usually a good metric for whether you did it well vs. brute force. Signicant focus was put on power
because the MSP430 had shown the value of very low power consumption in broad MCU applications.
Yet, at the same time, a lot of focus was put on maximum clock speed. One of the major issues with
most existing MCU processors is that they are very limited in top speed. Although many applications
may be ne at 10 or 20MHz, many applications need more. Further, many existing applications will
need to do more or do it faster over time, so top speed cannot be capped. That said, MCUs run from
ash memory, and ash becomes the major limiting factor in process geometry choice and top speed.
So, extra effort was made to allow Cortex-M3 to run efciently even when the ash was slower than
the core speed.
Cortex-M3 was co-developed between our small group in Walnut Creek, California, and a team in
Cambridge, UK. We had verication and validation engineers in India. This was not only a truly global
endeavor, but the sun never set on the development team! We used that time difference to maximize our
development and were able to come in under budget and on schedule. We also used additional testing
and validation techniques to ensure highest quality: we ran real applications from day 1. By working
with the compiler team from the outset and by compiling real-world applications (and not just vectors
and benchmark suites), we could nd bugs that only real developers would see. Our demonstration sys-
tem running on a regular speed/size FPGA included running the DivX decoder showing 15fps video on
a VGA screen, MP3 and WMA encode and decode in realtime, GPS decode from raw data, Doom (the
game), spinning a brushless DC fan motor (with speed control input and output via serial), and many
applications sent to us by various developers in automotive and industrial companies; of course we also
ran all of the normal benchmarks from Dhrystone to EEMBC. What is important is that this technique
also allowed us to tune timing on instructions to optimize real code generated by real compilers.
Part of the original concept proposed to the ARM management and board was that we needed a
real lead partner in the general purpose market. The new architecture would have to be evangelized
and we could not wait 2 years for the 1st Silicon as was usual for ARM’s partners. Further, we wanted
a company that was not trying to protect their own proprietary processor. Coincidentally, Jean Anne
Booth of newly-formed Luminary Micro approached ARM about doing an MCU. It was a perfect t,
and Luminary Micro quickly became the 1st lead partner for Cortex-M3. Luminary was exactly what
we were looking for—a strong management team with broad experience in the embedded space and
the know-how to set up worldwide distribution. Further, Luminary put together a strong engineering
team with signicant ARM experience, so we did not have to worry about them not understanding how
to work with an AHB-Lite bus. Our 2nd lead partner was Texas Instruments’ automotive group, so we
had covered the two main objectives perfectly.
When we shipped our early access release (the 1st production version of the processor) in early
2006, Luminary taped it out 2 weeks later! This was unheard of in the industry and a real testament to
their IC engineering team as well as to the close relationship between ARM and Luminary. Further,
they were willing to do this because we in the SandCat team had convinced them that it was bug free;
being a startup, Luminary could not afford to fabricate a buggy and therefore worthless chip. The other
lead partners took much longer to have 1st parts, as was typical. By Luminary having a chip right away,
ARM was able to show the world Cortex-M3 as a real product and not just slides or an FPGA demo