Industry leaders share their insights about processor and software-processing architectures and the impact they have on system and software development. Relevant architectures include microprocessors, microcontrollers, digital signal processors (DSPs), multiprocessor architectures, processor fabrics, coprocessors, and accelerators, plus embedded cores in FPGAs, SOCs, and ASICs. Moderated by EDN Technical Editor Robert Cravotta.
Sep 1 2009 1:30AM | Permalink | Email this | Comments (0) |
This summer I participated as a judge at the Microsoft Imagine Cup 2009 finals in Egypt, and I am finally taking time to reflect on my experiences.
You can think of the Imagine Cup as the Olympic Games for Software. It is an amazing event for student developers to compete in categories such as Software Design, Embedded Development, Game Development, Robotics and Algorithm, IT Challenge, Mash Up, Photography, Short Film and Design. After several local rounds of selection, Microsoft invited the top teams from around the world to compete in Egypt for the finals.
Cairo was amazing. Everyone visited historic places such as the ...Read More
Aug 18 2009 10:30PM | Permalink | Email this | Comments (2) |
Let me make it clear right away that I don’t want to start another debate about the merits of various benchmarks (or deal with the infinite thread of flaming comments that follows). Fact is, we often need a metric; a way to measure and compare the performance of the “apples” and “oranges” available to us. My focus is always on microcontrollers in embedded-control applications, so it happens that the apples and oranges I usually end up talking about are microcontrollers of different architectures, which are implemented in a seeming infinite variety of CMOS processes.
We all have the right to our opinions on the relative value of counting the cycles, MIPS or DMIPS of choice. I just wanted to bring to your attention the fact there is a new kid on the block. It is called ...Read More
Jul 20 2009 7:54PM | Permalink | Email this | Comments (1) |
Robert’s insightful article on multicore taxonomy makes a good case for the need for standard ways to describe and discuss multicore technology. But it might be simply too soon in the game to settle on a firm taxonomy.
Industry consensus on even the most basic definition of what constitutes a multicore processor remains elusive. Participants in the “Trends in Multicore Processor Design and Application Optimization Panel” at the recent Multicore Expo event were barely able to agree on the most basic definition of a multicore processor. After much back-and-forth, the panelists ultimately compromised and agreed that multicore is more than one CPU...Read More
Jul 14 2009 12:59AM | Permalink | Email this | Comments (0) |
In this article I would like to pick up on the processor and multiprocessor taxonomy themes that Robert Cravotta introduced in his article, and his two blog posts (first and second). Robert divided the multiprocessing world into four categories: “channel-based, aggregate-based, multi-domain, and feedback architectures”. Interestingly, he also talks about pipeline or streaming approaches as being useful in several of these multiprocessor architectures, which is true, but often not thou...Read More
Jun 29 2009 12:57AM | Permalink | Email this | Comments (1) |
Multicore processors (processors with multiple processing cores) are being considered in more embedded designs. There are in general two drivers that are bringing people to multicore: performance and/or consolidation.
The performance driver is simple. Many devices need the best performance in the smallest package with the lowest power demands. A multicore processor provides more MIPS per Watt than a single core processor. In 'the old days' performance could be improved by increasing the processing frequency on the processor, but for many designs this is no longer the case. The networking industry especially has been ahead of the rest of the pack in the migration to multicore.
The consolidation driver covers the fact that a (for example) dual core can be used ...Read More
Jun 16 2009 11:50PM | Permalink | Email this | Comments (3) |
When programming multicore, debug becomes exponentially more difficult (or at least polynomially more difficult, for the literalists out there) with the number of cores. This is because there are so many more possible connections to be made (for N cores it is theoretically (N-1)!). When multicore was across a board, there was a lot of visibility to be had with a logic analyzer. But when the interconnect is “hidden” on the chip between cores the architecture has to be carefully designed to expose the right debug data without adding a large overhead in wiring to the chip. A chip that cannot be debugged is virtually useless in the multicore space.
Another item to consider - guaranteeing a certain order of events is critical when you have a complex interaction between multiple programs. Even in a single core...Read More
Jun 12 2009 3:26AM | Permalink | Email this | Comments (3) |
Before we take a look at the landscape of multicore programming and what is happening within it, there’s one thing that we need to bear in mind, a key fact that often gets overlooked:
Software engineers did not ask for multicore architectures!
Let’s be really clear about this because there’s some unfair and unnecessary finger-pointing going on at the moment. Competitive products demand more performance at lower power consumption. Silicon and processor providers decided, undoubtedly for the right reasons, that multicore architectures were the only cost effective way to service these requirements, shifting the burden of unlocking the benefits to the software teams. Yet, it’s really the responsibility of the entire team, software and hardware groups alike, to ...Read More
Jun 11 2009 2:51AM | Permalink | Email this | Comments (2) |
One thing I find in this constantly innovating semiconn industry is that it is always harder to describe and specify what you need than it is to build it. I guess that’s why I so often see the specification stage of development taking so long. Robert’s article is addressing one of the big-issues that I’ve also enjoyed walking around the industry– that of trying to articulate the new language of multicore processing. In some ways I’ve had it easier in that I needed to only make a distinction between the multiple processor designs that our customers were already building and the new platforms that could be created with ARM MPCore technology-based multicore processors such as the ARM11 MPCore and the new Cortex-A9 MPCore processors.
T...Read More
Dec 23 2008 1:26PM | Permalink | Email this | Comments (2) |
Maybe it's just me, and maybe it's just a coincidence, but recently I keep having the same kind of discussion over and over with a number of embedded-control designers. Their request: "Integrate more." My response: "It doesn't always make sense."
Sometimes more integration is not necessarily a good thing. On the contrary, there are several cases in embedded control where partitioning is just what the doctor ordered. Nonetheless, I cannot begin to tell you how uncomfortable it felt. The roles used to be just the reverse. Working for Microchip Technology, I got used to bringing news of yet another peripheral or analog function being integrated in a new series of PIC microcontrollers. After all, a microcontroller is, by definition, an exercise in integration. A microcontroller is nothing more than a microprocessor with all the RAM and ROM (Flash) memory ...Read More
Apr 9 2008 7:57AM | Permalink | Email this | Comments (7) |
Like many students, I worked my way through college in the foodservice industry. During my last few years as a student, I was a bartender at a popular upscale Italian restaurant in Columbus, OH. One of the most popular dishes on the menu was a Shrimp Pasta Fra Diavolo; diavolo is the Italian word for "devil" and this term is typically used to describe food with a spicy or peppery bite. The dish was pretty simple, consisting of a few large shrimp in a spicy tomato cream sauce over linguine, and it cost about $15.
Years later, as an engineer and a product-line owner, I was curious as to just how much of a profit the restaurant was making from this dish. I called an old friend, and he passed on the secret recipe to me (note: do not share any secret recipes with me). I then went on to netgrocer.com to price the ingredients, and here's what I found:
...Read MoreFeb 25 2008 1:31PM | Permalink | Email this | Comments (0) |
I tend to deliver a lot of presentations to embedded engineers, and to be frank, we are not the easiest bunch to keep engaged. Let's set aside the fact that the majority of technology presentations are woefully dull; this is a given. When it comes down to it, there are big problems that engineers are tasked with solving—so the engineer's mind has lots of fodder for daydreams. I do keep a proverbial ace up my sleeve, though, that I use when I start to see eyes glazing over and heads nodding off… it's LEGO Mindstorms. For those of you who don't know, National Instruments skinned and simplified its graphical programming language (LabVIEW) for LEGO to be shipped with their largest product introduction ever. Whenever I bring this up, eyes brighten and smiles appear and I can't answer questi...Read More
Feb 25 2008 1:27PM | Permalink | Email this | Comments (1) |
Editor's note: EDN Welcomes a new contributor to this moderated blog, P.J. Tanzillo of National Instruments. His self-introduction follows, and you can also check out his first official post, "The kid inside the engineer knows a thing or two."
My path to being the Embedded Software Product Manager at National Instruments has been quite a winding one. I began my career at NI in the Applications Engineering group, specializing in embedded and FPGA-related projects. I then joined the LabVIEW Embedded R&D team, where I worked on core pieces of the NI embedded technology including the LabVIEW Microprocessor SDK and LabVIEW Embedded Module for ADI Blackfin Processors. Once we had a product to release, we needed a product manager, and I g...Read More
Jul 24 2007 3:56AM | Permalink | Email this | Comments (1) |
Exactly 10 years ago, I read a cover article on the Scientific American (June 1997) titled "The microchip that rewires itself". The authors noted, "Computers that modify their hardware circuits as they operate are opening a new era in computer design. Because they can filter data rapidly, they excel at pattern recognition, image processing and encryption."
I was learning software development at the time using 8086 assembly, BASIC/C on DOS, etc. The prospect for a "new era in computer design" was too exciting to ignore, and I took the leap into hardwar...Read More
Jul 24 2007 3:51AM | Permalink | Email this | Comments (0) |
Navanee's expertise is on both sides of the wall that separate the hardware and software worlds. The Xilinx Embedded Manager has a background in both Computer Architecture and FPGAs, as well as Embedded and EDA tools development. Navanee was a core member of the team that developed MicroBlaze soft processor, an EDN Magazine Hot 100 Product, and the Xilinx Platform Studio toolsuite, which is a recipient of the International Engineering Council's Design Vision award. Most recently, he was the Engineering Manager for Embedded Platform Debug solutions for hardware-software co-debugging.
Navanee has an M.S. in Electrical & Computer Engineering from Brigham Young University, Utah and a B.E. in Computer Science & Engineering from Anna University, India.
&mdas...Read More
Jul 17 2007 12:04PM | Permalink | Email this | Comments (2) |
The constant thread that runs through my days as an embedded-processor-applications manager is finding new, effective ways for our customers to reduce time to market. It's no secret that design cycles continue to shrink (almost as fast as processor ASPs!), and tools that ease system design can be a real differentiator when it comes time to choose a processor family.
Almost all developers will use some tools, often in the form of C/C++ and optimized assembly code libraries, to offload much of the control and signal-processing work. The open-source environment (uClinux, for example), with its huge base of device drivers and processing algorithms, provides another path to reducing programming complexity and speeding time to market.
Recently, graphical-based development environments (e.g., ...Read More