Hi, and welcome to the Arm 'What is' program series. In each episode, we explore a tech
topic to give you insight and perspective into some of today's hottest design trends.
I'm Brian Fuller, editor-in-chief at Arm and today we're going to find out what is AMBA?
And to help us with that, we're joined by Bruce Mathewson, lead
AMBA architect and fellow with Arm. Bruce is a super engaging fellow, who was Arm's
40th employee when he joined 28 years ago. So let's get started.
So Bruce, let's start with what does AMBA stand for?
AMBA stands for advanced microcontroller bus
architecture, the name's a bit historic, really interestingly because
bus actually is used to describe where you have components connecting to a set of shared wires.
But in reality, that's not the case these days you have point to point connections to interconnects.
And microcontroller also is a little bit inappropriate because while AMBA is used
for microcontrollers, it's now used across a whole suite of applications, anything from tiny or IoT
up through microcontroller, mobile phones, laptops, right up to high-performance servers.
So what exactly is AMBA?
Right. So AMBA is a set of interface standards. And when I say interface standard, what I mean
by that, an interface standard defines a set of signals and how they're used by different
components to communicate with each other. And what that allows you to do is to design stand
alone a particular component, safe in the knowledge design and verify it safe in the
knowledge that when you later connect it into a larger system, it's going to work reliably.
So Bruce, we've heard about CHI and AXI, how do they relate to AMBA?
AMBA is a family of standards and they're targeted at different levels of complexity.
So at one end of the spectrum, we've got APB. It's very simple,
very simple interface. Typically use to read the simple component or maybe control interfaces.
You know, where you've got maybe a hundreds of different these style of interfaces
in the system, and you don't want a really complex interface for that application.
And the other end of the spectrum, we've got CHI. CHI is very complex, CHI is a fully
hardware cache-coherent protocol and that's used by real high-performance components, typically in
the back plane of a system, connecting to the memory controllers, things like that.
And what CHI amongst other things, what CHI lets you do is to cache memory locations.
And that gives all the performance advantages that caching brings.
And the protocol is responsible for coordinating things so that when one component changes their
value of a memory location, that's reflected all of the other components in the system,
making sure that everybody's got a coherent view of the state of memory.
And then I guess the other one is AXI. So AXI is almost like as the workhorse of the AMBA family.
And that's used for connecting lots of high performance components into the back plane
and also lots of where you've got a high-performance
components that you want to access from the CPUs for accessing them as well.
So what I tend to call the fan in and fan out networks. So as you can see,
each different interface has got a different level of complexity and a usage.
A lot of cool technology there. Why is this important for developers?
Right. Well, I guess there's different aspects here. So firstly, just to say, AMBA is free to
download, it's free to use. You don't have to have a particular CPU or a particular interconnect or
anything like that. So lots of people can use AMBA. There's lots of third-party IP for AMBA.
From a designer perspective, it's great because you can design your components stand
alone, verify it and be confident that it'll work in a system.
And there's a bunch of design tools around that help you do that. So there's tools for
things like performance modeling, bus functional models, protocol checkers,
coverage checkers, all of those sorts of things. You can do all of that reliably.
And then from the system integrators perspective, what it means is a couple of things. One is you
have a a library, a very large library of IP that you can bring and integrate together. And also
there's tools as well for system integrators. So things like tools to literally just pull
the system together, but also the performance validation and those sorts of things as well.
Can you describe any roadmap around AMBA?
Sure. So, I mean, AMBA has been around for a long time since around the mid nineties and
it's been evolving all of that time. I generally think of it as evolving in two different strands.
So one is what we'd sort of refer to as our architectural features.
So that tends to be features that are software visible. Maybe things like atomic transactions
or memory tagging would be examples of those. So that's one set of evolution that happens,
but there's also performance evolution as well, which is much more down at the transport level.
And so that's things like maybe direct memory transfer or direct cache transfer.
And those sorts of things are all about improving the efficiency of the transport.
So the way those examples I've given, things where you might reduce the number of hops that
our message has to take. So that's going to improving the efficiency, lowering the power
and improving the power and reducing latency. So AMBA will continue to evolve on these, both
of these strands, so we're expecting to see more architectural feature development and also we'll
be following other trends that there are in the other developments that there are in the industry.
Well, thanks Bruce. In just a few minutes, you've educated us on an amazing technology
and we really appreciate it. Now, check out all our other 'What is' episodes and be sure
to subscribe here because we'll be adding more as the year progresses. Thanks for listening!