Archive for August, 2011

Don’t Forget Memories!

Thursday, August 25th, 2011

By Richard Goering
I’ve written in the past about how most discussions about system-level design (or “ESL”) seem to focus on digital logic. I have suggested that it’s important to look at the analog/mixed-signal portion of the design as well. This time I’m going to go beyond the “logic” part by suggesting that a lot of ESL discussions seem to forget about memory, even though an electronic system without some kind of memory and/or storage capability seems inconceivable.

I had these thoughts at the recent Flash Memory Summit, held in Santa Clara, Calif., Aug. 9-11. This conference is the place to go to learn about the latest flash memory and solid-state drive (SSD) technology, and it should be of interest to system and SoC designers who use nonvolatile memory. Aside from Cadence as an exhibitor, however, there appeared to be little EDA or IP representation.

In an opening keynote, Eric Kao, CEO of Memoright, talked about the need to understand end-user applications and to adapt SSDs to meet the requirements of those applications. The key to differentiating and optimizing the “personality” of an SSD, he said, lies in the firmware. He went through several case studies, showing, for example, how a digital video recording application requires a very different architectural and firmware approach to SSD development than a mainstream PC application.

Essentially, this was a good talk about system-level design, albeit from the perspective of an SSD designer. Kao talked about understanding the end application, determining architectural requirements, and developing hardware and firmware to fit. Going one step further, shouldn’t logic and memory be co-optimized during system-level design? This will produce a better product than designing the logic first and then tacking on memory later as an afterthought.

In the ESL world we talk a lot about system software. Is that software memory-aware? In a closing panel Jim Handy, director of Objective Analysis, predicted that in the future system software will be designed for NAND flash up front rather than for hard disk drives. “You’re going to start seeing systems where software was first designed with SSDs in mind,” he said.

I think these points remind us how crucial memory is in terms of the overall system, and why it’s important to think about the memory architecture and its requirements (such as throughput and latency) from the very beginning. Determining what kind of memory and storage to use, and how it will integrate with the rest of the system, will have a profound impact on many aspects of system design.

I’m not saying that system and SoC designers must become experts in SSD or DRAM design. In fact, as memory management becomes more complex, a robust market in memory and storage controller IP is likely to develop. But designing a system with little thought for memory is a good way to end up with a forgettable product. Let’s remember memory when we talk about system-level design.

—Richard Goering is manager of technical communications at Cadence Design Systems, and the author of the Cadence Industry Insights blog.