Pitfalls In Subsystem Reuse

Both “subsystem” and “reuse” have definitions that are changing, making it a necessity to understand the context and the software requirements for each.


By Ann Steffora Mutschler

IP subsystems provide a ‘divide and conquer’ approach to SoC design by combining multiple IP blocks together to perform individual functions such as audio, graphics or video. The advantage of this approach is that these functions can be tested and verified at the unit level then integrated with the top-level SoC.

This also facilitates reuse because each of these units can be treated as independent IP blocks that can be integrated into multiple designs. “Given the complexity of current SoC designs, subsystems offer the advantage of reducing the overall number of IP blocks that an SoC manufacturer has to evaluate, assemble and verify,” said Frank Ferro, director of product marketing at Sonics. Subsystems also provide SoC manufacturers more choices since multiple vendors compete at the subsystem level (again audio, video and graphics), making for good competition, plus the expertise for these functions does not need to exclusively reside ‘in house.’ Semico Research is predicting that 25% of SoCs that ship this year will include subsystems, with this number increasing to more than 65% in 2015.”

However, depending on what perspective you are coming from, the term ‘subsystem’ can be defined in vastly different ways.

Kevin Yee, product marketing director in the SoC Realization Group at Cadence believes the term ‘subsystem’ is so loosely used it’s difficult.

For example, say an engineering group is implementing a Bluetooth block, which implies functionality, but what if an interface is included? “If I’m looking at PCIe, if I am including the controller integrated with the PHY, is that a subsystem or is that not,” asked Yee. “If I include drivers on top of that, does that make it a subsystem? Some people will say a subsystem only is if you have some kind of microcontroller or CPU built into it. Is it considered a subsystem because in Bluetooth or in audio sometimes there is some kind of a micro CPU? It gets really difficult to define what a subsystem is because every single company and every single engineer all consider a subsystem differently. They’ll say a subsystem has to include a CPU and others will say a subsystem has to include software because that becomes a big issue now with a lot of things—they require drivers.”

Like ‘subsystem,’ the term ‘reuse’ also is undergoing a change in perception, he pointed out. “The term ‘reuse’ is a very vague term now, as well. Are you talking about reuse in multiple applications or reuse over a period of time? Today if you look at reuse in general some people say, ‘I’m a big company, and I have four different projects going on and they are somewhat all in the same time period.’ That’s one sense of reuse where I’m going to re-use a PCIe PHY and I want to re-use that with the controller, and I’m going to use it in four different projects. [Alternatively], ‘I’m company C and I have this piece of IP and I’m going to reuse it for this project but I want to re-use it for another project that is going to be two years down the line.’ How you apply that is going to be different.”

Using one piece of IP for different for different projects within a short time window is somewhat easy because it allows you to define what the IP is going to look like in the interface and use it multiple times in multiple projects. Doing that over a longer period of time is more complicated.

“It’s almost kind of a misnomer because, for example, in the past PCIe Gen 1 would last for five or six years so the specifications weren’t changing [that quickly],” Yee said. “If you designed it once and you know you are going to use the same thing in a project two years down the line, it’s probably not a problem. But today the specifications change yearly or every two years. This means if I am going to use it now and then I want to re-use the same IP for my next project that is a year and a half or two years down the line, that IP may not be valid anymore.

A great example of this is the Kindle tablet. The original device was launched in 2007; the Kindle Touch came out in 2011, followed by the Kindle Fire last year. From a reuse perspective, from 2007 to 2011 it makes sense, Yee explained. In the Kindle Touch, Amazon went with a higher processor, the storage went from 250 MB to 4 GB, the display changed from four levels of grayscale to 16 levels of grayscale. But then from the Touch to the Fire it was only a year apart and they changed from an ARM A8 to an ARM A9, the storage went from 4 GB to 32 GB and went from grayscale to color – all of which are significant changes.

“Chances are that was a whole redesign and they didn’t do a whole lot of reuse there in a one year period. This is why from our perspective today the idea of reuse is almost a misnomer—it’s not that you don’t want to re-use but ultimately it’s about productivity to the engineer.”

As such, many IP vendors now believe that the IP they provide needs to be flexible and, to an extent, customizable because products are changing so quickly.

Software considerations

Of course, there are software considerations to subsystem reuse. Mike Thompson, senior manager, product marketing for ARC processors at Synopsys said, for the sake of discussion, a subsystem includes individual portions of an SoC that make up the more complicated SoCs: the processor subsystem, the graphics subsystem, audio subsystem.

“The challenge for those is that they are not just hardware, they are not just RTL, so you have to obviously consider the RTL. But even the RTL can be carried forward sometimes almost completely unchanged, especially with something like an audio subsystem where audio at the hardware level tends to not change very fast. So what you need for your audio solution today is probably adequate in terms of performance to meet your audio needs for many years; the challenge becomes the software and that’s where ultimately there is a lot of change.”

In audio for instance, there are constantly new software codecs introduced into the market from companies like Dolby, DTS, SRS (now part of DTS), Microsoft that Synopsys and others work with to maintain optimized codecs for their audio processors. He noted that anybody who’s developing a subsystem has to be mindful of those kinds of software changes and any of the changes in terms of the interfaces that they have for those subsystem blocks, which are software interfaces from the subsystem blocks back into the main or application processor in their total SoC. They have to account for that, as well because that also constantly changes with new interface standards entering the market. Ultimately it really becomes an issue of re-assessing the software that you are implementing in the subsystem, Thompson stressed.

“Maintaining the technology is the biggest issue for most of our customers because sometimes you can re-use a subsystem without change, which is part of the beauty of subsystems. It’s part of the essential nature when you’re building an SoC today because the complexity of the SoC is substantial and growing, so if you can isolate a function to a subsystem then potentially you can reuse it without change,” he said.

If a subsystem is a block that has all of the connections to tie into the high-level processor or the application processor on an SoC in order that the person who is programming that processor can view it as a series of function calls, they don’t have to understand how it works or how it is put together or what is there. They just say, ‘Run MP3, start,’ etc. What this does is abstract all the details away from the person writing that software code so it can be dealt with at a very high level. “That is essentially what’s going on with subsystem technology in the more sophisticated SOC subsystems being set up,” Thompson explained.

“In that sense then, if you go to the biggest semiconductor company in the world when they build a subsystem they have people that are dedicated to doing that and that’s their job. They essentially deliver that as a whole block—hardware, software, everything, all the views, any tools…so that whenever that is used—and they use it across many chips—they use it intact. That is what customers want to have now. Is that easy to do? No. It is very difficult and takes a lot of work. That’s why they have dedicated people, because those things have to be maintained actively because everything changes constantly,” he concluded.

As designs continue to grow more complex, it is likely that technology refinements and automation will allow engineering teams to manage the software and hardware integration issues associated with subsystem reuse.