Consumers have fallen love with clever products like Amazon Echo, Nest, Google maps, Waze and Zillow that somehow make life a little easier and more fun. The underlying technology that makes these apps so rich and useful is machine learning and it seems to be showing up everywhere. Maybe it’s time to ask, “Alexa, can you help me build a better SoC?”
The Next Frontier in SoC Architecture and Design: Machine Learning
When designing an SoC, the conventional approach is to architect the system with its IP blocks and interconnect and simulate it later in the development process when most of the design decisions have been made. This is essentially a trial-and-error approach that is expensive, time-consuming and risky. In an ideal world, system architects would perform modelling and simulation much earlier in development before integration begins. They would have the tools to quickly explore a large number of models and architecture options and make accurate system-level performance predictions before starting the design. This would eliminate many of the do-overs that delay development and it would ensure that the resulting SoC meets the performance criteria that the architect intended.
In fact, it is quite possible to do this today using machine learning methodology. Machine learning is one of those topics that everyone seems to be talking about, but few people seem to actually understand. There is a bit of a mystique about it. On the one hand, it’s a panacea and on the other hand it’s perceived as a threat.
What is machine learning?
Stephen Hawking expressed a level of concern when he said, “The development of full artificial intelligence could spell the end of the human race. It would take off on its own, and re-design itself at an ever increasing rate.” But artificial intelligence and machine learning are fundamentally different. The goal of AI is to emulate a brain that can think on its own and will come up with novel and unpredictable results. Machine learning, on the other hand, is an algorithm or model that learns patterns in data and then predicts similar patterns in new data. In essence, it is a method of data analysis that automates analytical model building.
It is essentially a method of data analysis that automates analytical model building. The goal of machine learning is to program a processor or compute engine to use example data or past experience to solve a given problem. Statistical learning techniques are used to explore the structure of the data and to fit theoretical distributions to the data that are well understood. The algorithms refine the models as they learn more by exploring new data as it becomes available. Machine learning typically uses an iterative approach, making many passes through the data until a robust pattern is found. These techniques can be used to make highly accurate predictions. The evolved models can be used to automatically produce reliable and repeatable decisions and thereby reduce the need for human interaction.
A tool for building a better SoC
At NetSpeed, we’ve been developing machine learning technology over the past few years to help customers better optimize their SoC interconnects. One of the key benefit we’ve discovered is that with machine learning it’s possible to model the system as a whole, taking into account system interactions and understanding how they affect quality-of-service. It also becomes possible to optimize performance and power efficiency broadly across all use cases. In contrast, the conventional approach tends to take a divide and conquer strategy that optimizes individual subsystems in isolation, which tends to create bottlenecks and overdesigned systems to handle worst case conditions.
The graph above shows a side-by-side comparison of an SoC created with machine learning algorithms versus a typical tool chain which entails considerable manual tuning. With machine learning, system bandwidth was optimized for all use cases. With the conventional, more manual tools, system bandwidth was optimized for few uses cases, and overall performance was significantly lower than with machine learning.
Machine learning is by no means a substitute for an experienced SoC architect. It is just another tool that applies sound mathematic methods to provide answers that can help teams make better architectural decisions. But like all math, garbage in leads to garbage out. It’s a valuable tool, but only in the hands of a skilled architect.