10/15/2013

Striking a balance between reliability and availability

Can you achieve one without
sacrificing the other?
Maybe it's just me, but a lot of people seem to use reliability and availability interchangeably. I often hear people say 99.999% reliability when, in fact, they are referring to availability.

So what is the difference between the two? And why is that difference important? I'm glad you asked. :-)

In a software-based system, availability refers to how often the system responds to events or stimuli in a timely manner; reliability, on the other hand, refers to how often the responses are correct. The distinction can be a matter of life or death. For instance, in some medical devices, it is preferable to have no response (where little or nothing happens to the patient) than a wrong response (where the device harms the patient irreparably). Whereas in other systems, any response of sufficient accuracy or quality may be preferable to no response at all.

But here's the thing. Regardless of whether a system is more sensitive to availability or reliability, it should still take pre-defined (and carefully considered) actions when a dangerous condition arises. For instance, if the control system for a high-speed train fails, it will move to its design safe state, which will probably involve applying the brakes.

So far, so good. The problem is, many systems are components of larger systems. So even when a component is avoiding a genuinely dangerous situation, its behavior may put stress on the larger system and lower that system's availability.

Moreover, the behavior of an overall system when an unanticipated condition occurs can be very difficult to predict, for the simple reason that the system depends on multiple, largely independent, components moving to their design safe states. None of those components, and their safe states, can be considered in isolation. For instance, in 1993, Lufthansa Flight 2904 overran a runway because the reverse thrust deployment system operated exactly to specification. Unfortunately, the system designers hadn't anticipated conditions during a cross-wind landing.

Enough from me. I invite you read the ECN article "Balancing reliability and availability", written by my colleague and senior software developer Chris Hobbs. Chris discusses how it's possible to strike a balance between reliability and availability — and why designing safe software can require the ability and willingness to think from the outside in.

QNX announces support for new Intel Atom E3800 processor family

In 2008, the Intel Intelligent Systems Alliance presented QNX Software Systems with an "Award of Excellence, Most Innovative Software" for its fastboot support of the Intel Atom Processor. Fast forward to this morning, when QNX announced that it will extend its Atom support to include the new Intel Atom E3800 product family, which was created to address the high performance-per-watt demands of medical devices, building automation panels, industrial control systems, in-car infotainment systems, and other smart devices.

Said Sam Cravatta, product line manager at Intel, "Stellar graphics support is crucial for application and intelligent system development. The Atom processor E3800 product family is the first to take advantage of Intel’s Gen 7 graphics, complementing QNX Software Systems’ graphics framework, tools, and runtime components for creating sophisticated displays that feature improved 2D and 3D graphics rendering with little CPU overhead.”

Highlights of the Intel Atom E3800 family include high I/O connectivity, an integrated memory controller, virtualization, error correcting code (ECC), and a thermal design power range of 5W to 10W2.

Read the QNX press release and read more about the E3800 product family.

10/08/2013

Adding sound to eliminate sound: a new solution for noisy engines

Car engines have been getting noisier.
But chances are, you haven't noticed. That's because automakers have been taking measures to mask the noise.

So where is the noise coming from? Automakers need to reduce fuel consumption. And to do that, they are employing techniques such as variable cylinder management and operating the engine at lower RPM. These techniques can result in more "boom" that permeates the car's interior.

So how are automakers masking the noise? Well, it's not by adding damping materials. In fact, many automakers are removing such materials to help make their cars lighter and more fuel efficient — a practice that can allow more engine sound to reach the driver and passengers.

The weapon of choice is, paradoxically, sound. By playing “anti-noise” (i.e. sound that is directly proportional but inverted to the offending engine tones) over the car’s speakers, automakers can, in effect, make engine noise disappear. This approach is similar to noise-cancelling headphones, but targeted specifically at engine sounds. It's also more complicated, as it must take into account the unique acoustic properties of each vehicle model — properties that change when you open and close windows, add or remove passengers, and so on.

Now here's the thing: The active noise control (ANC) systems currently used by automakers require dedicated hardware. This adds cost and complexity. So the acoustics engineers at QNX have come up with a different approach: a software-based solution that can run on existing infotainment or audio hardware. The result is significantly lower Bill of Materials costs and an ANC solution that integrates better with other audio tasks, including hands-free calling.

Mind you, there are other benefits as well. But don't take it from me. Check out this blog post from my inestimable colleague Tina Jeffrey, who provides the full skinny on the new QNX Acoustics for Active Noise Control product and why it offers a better approach to traditional solutions.