“Embedded” has a new spelling, and it’s written IoT.
Tensilica is a company that made its name as an early pioneer of tweak-it-yourself microprocessors. Actually, the name itself is a play on the words “tensile” (as in, stretchable) and “silicon,” which pretty well encapsulates the company’s unique selling proposition. Its microprocessor IP is just like any you’d get from ARM or MIPS or anyone else – except that it’s not. Instead of delivering you a prepackaged CPU core, Tensilica instead hands you a configuration tool. Pick your instruction set, pick your bus width, pick your execution resources, and the Tensilica tool will generate a custom CPU for you on the fly. It’s the whiteboard of processor product roadmaps.
EDA giant Cadence liked Tensilica so much it bought the company. Which kinda makes sense, since most EDA companies also supply IP, and Tensilica was already kind of an EDA tool company anyway. Synopsys acquired fellow configurable-processor company ARC, and Mentor Graphics acquired Accelerated Technology, Microtec Research, and others. It’s what big EDA companies do.
So now that Tensilica is a brand underneath the Cadence umbrella, it’s started to roll out new CPU core designs they have created post-acquisition. And the first of these is Fusion. Fusion is really more of a DSP than a conventional RISC CPU, and it’s intended – like everything these days – for the dreaded Internet of Things. (How long before our descendants make fun of us for using that phrase? “Gee, Gramps, did you also have the ‘Highway of Cars’ or the ‘River of Boats?’”)
Because Fusion is IoT-bound, it’s designed for efficiency, small die area, and low power. None of these characteristics are quantifiable, of course, because we’re talking about IP, not finished chips, and user-configurable IP at that. So objective measurements are mostly nonexistent.
What Fusion does do is to pare down some of the more exotic configurability options that Tensilica’s other CPU cores support, and those that wearable IoT gadgets presumably don’t need. But wait – if it’s user-configurable, couldn’t you get the same result by making those same changes to an existing Tensilica CPU? Well, yes and no. Tensilica’s configurability has limits, and the same CPU framework doesn’t work ideally in all situations. Thus, Tensilica offers separate varieties of its CPU prewired for different application areas, and then lets you tweak it from there. It’s a bit like selecting the truck, the sports car, or the sedan and then haggling over the options. Narrow down the choice first, and then fine-tune the preferences. Fusion is the choice for data-acquisition and/or wireless communication on a budget.
Being DSP-like, Fusion has a quad MAC, which can be configured (naturally) a number of different ways, from dual 24×24 to single 32×32, with variations in between. Fusion also sports a single-precision floating-point unit, with a dual-issue pipeline that can dispatch integer operations at the same time as FP ops.
Fusion is also equipped to handle crypto work, including AES-128, but it’s not done by a dedicated hardware cryptography block. Instead, the CPU processes crypto operations as part of its basic instruction set, should you choose to configure it to do so. That’s part of the fun of a user-configurable processor: you get to decide what it’s good at. Baseband bit operations are handled the same way.
The real magic of a user-configurable processor isn’t really in the hardware; it’s creating a compiler and other software tools that don’t break every time the customer changes something. Tensilica has this all figured out, of course. The compiler is auto-generated at the same time that the hardware netlist is, so they always match. And there are certain core features and instructions that you can’t remove. In other words, the configuration tool prevents you from creating a nonworking processor, or one that’s incompatible with everything else in the world. A stripped-down, bare-minimum configuration still runs real code and real operating systems. You get to add options on top of that, including your own home-grown features and instructions, if you wish. After making your design choices, you push the big red GO button, and Cadence’s big computer back at headquarters cranks out your custom processor, along with the relevant software tools.
So now your IoT processor can be different from everyone else’s IoT processor. Even if the marketing message is probably just the same.