If you could sell 700 million units of the product you’re designing right now, would that be a success?
Seven hundred million is a big number. That’s about the total number of cars sold by all the automakers in the world combined over the past ten years. Or more than double the number of copies of Windows 8, or the number of hamburgers McDonald’s flips out in four months. As I said, a big number.
You’d think that any company responsible for such impressive product movement would be well known, right? Especially if it’s a microprocessor company? We must be talking about Intel or ARM or Freescale or Renesas?
The responsible party is a 28-person group in Montpellier, France, overlooking the blue Mediterranean. They make a 32-bit CPU for low-power devices. It’s synthesizable. It’s licensed as IP. It’s used in a lot of mobile and handheld devices.
It must be MIPS, ARC, Atmel’s AVR, or Tensilica, right?
The company is managed by two Brits, a German, a Vietnamese, and a Californian. The senior Frenchman actually works in Korea.
Their technology is used by BlackBerry, Microsemi, and 35 other companies. It allows user-defined processor extensions. And it’s not binary compatible with any processor you’ve seen before, including the company’s own products.
Give up? We can only be talking about Cortus, perhaps the least-known CPU licensor out there. Although the company has been in business for ten years and has shipped more “product” (core licenses) than most of us could ever hope for, it still flies under most developers’ radar. And, this week, Cortus has released two new versions of its popular little processor.
Cortus does what many CPU IP vendors try to do: develop small, cheap, simple processor cores that can be deeply embedded into SoC’s that don’t need to run a lot of third-party code. They’re “software engines,” little hardware blocks that crank through C code but don’t bother with Android support, app stores, or backward compatibility with a 1980s computer architecture. And it seems to work. Seven hundred million little Cortus-based gizmos can’t be wrong.
Up until now, Cortus has had exactly one generation of its CPU core. Now it’s time for Gen2, and it comes in two flavors. The APS23 is the low-end core (even by Cortus standards), and the APS25 is its big brother. Both are based on the same v2 instruction set, but the APS25 has a longer pipeline for faster clock speeds, higher performance, a hardware multiplier, and more extensibility. Think early ARM7 levels of sophistication.
Where the v2 twins excel over their predecessor is in code density. Cortus has switched from a conventional 32-bit instruction word to a mixed 16/24/32-bit encoding. The variable instruction encoding gives the newer cores about 15% better code density, according to the company. This is about what ARM, MIPS, and other companies discovered when they also switched to “compressed” instruction sets (about 10 years ago).
Cortus is far from the cutting edge when it comes to CPU architecture. Maybe it’s the Mediterranean climate or the south-of-France lifestyle, but that’s just how the company likes it. Not everyone needs the latest, fastest CPU with heaps of third-party software. Sometimes you just want a little processor to make things go, and when price, power, and die area are your major selection criteria, Cortus has got you covered.
Interestingly, Cortus’s new v2 instruction set is incompatible with its own previous-generation CPU. That means you can’t drag binaries over from an earlier Cortus-based chip; you have to recompile. Most other CPU companies are scrupulously careful to preserve binary compatibility across generations, but Cortus doesn’t really see that as an issue. For one, most of its customers write in C, not assembly language, so they’ve presumably got the C source code lying around and can recompile it with the touch of a button. The processors’ register sets haven’t changed, nor have important I/O registers, so you don’t have to actually rewrite anything to accommodate the changes. A straightforward recompile should do the job.
Why would you choose Cortus’s APS23 or APS25 over something like an ARM or MIPS core? Price, for one. IP companies never publish price lists, but it’s a safe bet that Cortus will be a whole lot cheaper than a Cortex-M license. Then there’s size. A minimally configured APS23 occupies only 0.054mm2 of 90nm silicon, versus 0.12mm2 for a Cortex-M3. The larger APS25 measures only 0.10mm2, still a bit smaller than the –M3.
Smaller die size and fewer transistors generally translate into lower power consumption, too. Unless you’re tied to an ARM (or MIPS, or PowerPC, or ARC, etc…) software base, Cortus wins on all the major quantitative criteria. Code density for all the available CPU cores is about the same. That’s a solved problem, and pretty much every CPU vendor came up with the same solution.
Cortus somewhat optimistically touts itself as the solution to the coming “third wave of computation devices,” the first wave being PCs (dominated by the x86 architecture) and the second wave being mobile devices (currently ruled by ARM). In our discussions, company executives often referred to ARM in the past tense. The Internet of Things, they say, needs a new and different processor architecture dedicated to small size, extremely low power consumption, and easy integration with sensors, wireless interfaces, and/or analog circuitry. While IoT certainly seems to be the next big thing, I’m not convinced it requires a new CPU family. On the other hand, Cortus isn’t a new CPU family. Its ten years of impressive sales have established that.
I suspect Cortus will continue on as it has been: successful in terms of design wins and products shipped but still a puny underdog. Recent history suggests that fine details of CPU architecture are irrelevant to most designers. They just want to pick a low-risk CPU and get on with their work, which usually involves developing original software. It’s the software base that drives people to ARM, not the curious details of its pipeline structure or instruction set. With no such equivalent software base, Cortus needs to compete on technical merit – where it does well. But fewer and fewer customers care, or are even qualified to tell the difference. So let’s raise a glass to Cortus and wish them bonne chance!