Archive

Archive for the ‘Driven by Blogs’ Category

What industry do I work in?

March 30th, 2009

I’ve recently begun to wonder what industry I work in. I had though it was Embedded Systems but recent events suggest that may be incorrect. Some of these events are too overly obvious to be considered meaningful, for example Virtutech has stopped exhibiting at ESC on the grounds that no one attending the show is looking to buy tools for SW development (I will ignore the question of just how many people actually attend ESC). Other events though require more thought. As a recent example Paul McLellan’s recent article “Arm, Atom, PowerPC” on the EDA Graffiti suggested that PowerPC is essentially unused in embedded. Now From my point of view power architecture is more than 75% of what I see, thus I must not be working in embedded, right?

Digging deeper into this brings up the “question of what is embedded?” Reading the comments on Paul’s article it seems that Embedded is defined by number of units with the bar set at the number of units of 32 and 64 bit processors sold by Intel. Or more clearly if you ship more unit than Intel ships Desktop CPUs then you are embedded, if not you are something else. While clear it could suggest that toothpicks are embedded systems.

Now I would define embedded systems as digital systems containing CPUs that do not have a traditional desktop PC/server user interface (screen, kbd, mouse). Unfortunately this definition makes netbooks and some smart phones not embedded, and many might argue that since they contain ARM processors they clearly are. Using this definition I clearly work in the Embedded industry as I primarily work with customers building: Satellites, Airplanes, Military Equipment, Networking Equipment, Telephone Equipment, and Enterprise Compute Servers. (I’ll admit that Enterprise Compute Servers are generally considered traditional computers and not embedded since they are the direct descendant of the first computers but they generally don’t have a keyboard and mouse.) Given that list lets look at the CPUs used:

  • Satellites: In the US these are BAE Rad750, a radiation hardened PowerPC750. In Europe they are more likely Sparc. I don’t know about Asia.
  •  Airplanes: This market is dominated by the Freescale MPC74xx series with a strong showing by the Freescale MPC864x
  • Military Equipment: This market is almost exclusively VME or VITA based and most to many of these use MPC74xx or PPC970 based processors though Intel is making inroads.
  • Networking Equipment: If we consider the routers and other back end equipment that make the Internet go rathe than the blue box on your desk these are almost all Freescale MPC85xx based. MIPS used to be strong in this market but they stopped making chips. Cavium and Intel are certainly making inroads but the most of current designs and the majority of deployed HW that is being developed for is still MPC.
  • Telecom Equipment: All about microTCA, again strongly Power Architecture (all types) but Intel is much stronger here than anywhere else so far. (I am intentionally ignoring the hand set/aka phone, as they are consumer electronics not telecom equipment.)
  • Enterprise Compute Servers: if you buy from IBM these are Power, though Sun, HP, and Dell are mostly Intel. Cisco looks to be Intel, but they don’t have much market share yet.
  • Gaming Consoles: While I don’t work with these the big three Xbox360, PS3 and Wii are all power architecture.

So given that list I don’t see ARM any where does that mean these aren’t embedded? Perhaps we should look at power instead. I’ll grant that with the exception of Satellites and Game Consoles the system power for these is generally measured in Kilo Watts or Mega Watts not Milli Watts that most ARM based systems are measured in but on a per CPU basis they all care about power consumption. Or perhaps we should consider price, this time none of these systems tend to be < $100 the way most ARM devices are. Perhaps we should look at the SW stack, most of these systems have very large software stacks, roughly divided between general purpose (read linux) and Real Time OS based but in both cases large teams of engineers devote substantial amounts of time to these, unlike many ARM based systems which can still outsource SW development.

What can I conclude from this? That the markets I work in and the markets for  ARM based systems are different. Is one Embedded and the other not? Hard for me to say, I’m not in marketing.

Driven by Blogs, ESL

Functionality without an interface doesn’t exist.

December 5th, 2008

In reading several blogs and newsletters recently I’ve gotten annoyed that people don’t say what they mean. There is talk about how to design better interfaces and how to document them better but this misses the point that without the interface any possible functionality doesn’t exist. Further the authors never get around to simply stating

Design the Interface First.

To unravel this though:
Jakob recently introduced me to Gary’s newsletter. So I started reading the back issues. Two in particular The (not so) Exciting World of Documentation and Accurate Register Specifications caught my attention. In the first Gary talks about the trouble generating accurate documentation for hardware designs and suggest that hardware engineers have firmware engineers review the documentation to ensure that it is comprehensible. He also discusses the difficulty in documenting the interface after the fact. In the second Gary suggests using a register design tool. Jakob then comments on this in his blog stating

“You really need a full expressive language to write a truly executable model of the hardware.”

Now all of this is well and good, and I happen to agree, but why do they go on at such length about their topics instead of just getting to the my point:

Design, document, and declare the interface first, then worry about implementing any functionality that may be triggered by calls to/interactions with that interface. Without the interface the functionality doesn’t exist.

I feel particular passion about this topic because of a situation I’ve run into with a customer with where over a year ago we were told (paraphrased)

We can’t give you the documentation on the interface to, or basic functionality of, our part in time for you to complete a high level functional model 6 months from now; we haven’t designed the interface and the documentation hasn’t been started. However we have the detailed model almost done we can integrate our detailed model with the functional framework in plenty of time.

I didn’t believe this at the time, and the detailed model ended up being about 3 months late before the integration really started working. The interface to the functionality is still being updated and the documentation still isn’t complete. Further as the firmware and unit tests gets written it becomes increasingly clear that the interface was never “designed” as such, rather it was just slapped together with the hope that it was good enough. Cases are still being found where functionality can’t be tested because there is no interface to it.

From this I draw the conclusion: functionality doesn’t exist until it has been tested through a well designed external interface, simply writing the RTL isn’t enough.

[edit]

Jakob points out that he did present this sentiment but not quite as clearly as I would have liked.

Driven by Blogs, ESL

What’s in a name?

December 5th, 2008

Or why did I start a blog?

Mostly I’m starting this blog because I lack a local water cooler at which to comment and rant about various topics.  I’d like to think that I’ve got some grand purpose and have a clearly defined set of topics upon which to muse. However I suspect that things will be pretty random, though I’ll probably to commenting on technology, blogs, the weather, and the excitement of business travel.

Driven by Blogs