CriticalBlue started about 10 years ago in Edinburgh (yay!). When it started it was in the business of co-processor design. Its technology would take a C-program and then you could indicate that certain parts of the code should be accelerated and it would build a specialized co-processor in hardware to do just that and then tie everything back into the code. It turned out to be hard to sell this. People confused it with high-level synthesis (with which it does share some features) and engineers would always argue that they could to it themselves with only a bit of work.
Plus, more and more, potential customers would argue that what they really wanted was to offload the code onto their own separate processor since they already had one. Plus multicore processors were suddenly becoming ubiquitous and people didn’t really know how to do partitioning. It turns out that under the hood of CriticalBlue’s product was a lot of the technology to do this. They expected to sell a large number of copies, but it turned out that they mostly sold a small number of copies and got asked a lot of question since customers didn’t know how to use the information (such as cache performance analysis or resource contention analysis).
So they switched to a more services-led model where they would help customers optimize their code. It turns out there are two big markets with a lot of demand: Linux-based telecom and Android-based handset and tablets.
It is worth a lot of money for smartphones to appear high in the list of smartphone performance benchmarks but most software groups do not understand how to do the low-level optimization close to the hardware-software boundary. They have also developed a sideline in helping make better smartphone hardware architectural decisions since these are driven by how they impact software performance.
They still have a lot of technology in the form of tools, but they have a partnership model where they become the optimization partner for a limited number of customers with relationships not limited to a single product cycle (and not limited to a small number of dollars). In some cases, customers hear the pitch and reject it, only to come back a few months later when they discover they have neither the talent nor the tools to do optimization on their own. For example, CriticalBlue have a product that will tell you what data got loaded into your cache but was then never used. Reorganizing the structure of data in the program can reduce the amount of memory traffic wasted in this way, which has a side effect of increasing the cache hit rate and thus pushing the phone up the performance benchmark hit parade.
CriticalBlue is still quite small, with 16 employees, but they are hiring. Another famous EDA name is already on the board, Lucio Lanza since 2004.
CriticalBlue’s website is here.