If you ask me
Multi-core processors have created a turning point for programmers. Also, why are mobile phones still restricted to connecting to a single network?
Graphical programming's turning point
We've all seen those cartoons. You know the ones - where the coyote or the cat runs off the cliff edge and it takes a while for him to realise that the ground has disappeared from beneath him. And when he does realise, he just keeps running - only faster. That's the image I get when I think about programming techniques right now.
We are moving into the 'software-defined' era. Embedded software is everywhere. In my lifetime, the number of processors that the average family owns has gone from zero to over 100. Think about it: your PC, your mobile phone, car, central heating controller, domestic appliances, TV, DVD player, MP3 player, even some running shoes, they all house one or more processors. This explosion in devices needing software has helped drive the shift from low-level assembly language to higher-level tools like C.
Software has also become a key productivity tool in the design process, from measurements and validation to system-level design tools. The challenge is that, just as the demand for new code is rapidly increasing, there has been a fundamental change in the architecture of these processors and the shift from single-core to multicore has made the task of programming with traditional, text-based languages much more complex.
Until now, unless you absolutely had to, you could avoid the complexity of text-based, multithreaded programming. And every new generation of processor gave you greater performance for free. Today, you have to program using threads to get access to the full capabilities of multicore processors. This problem is just going to get worse as the number of cores increases.
While additions and extensions to text-based programming languages have their place, what's really needed is a new approach to programming that more closely matches the inherently parallel nature of both the latest processors and the world they have to interface with. There is one inherently parallel tool that engineers and scientists have used for years - the diagram. Graphically describing systems with diagrams can represent concurrent processes clearly and simply. A graphical programming language takes a graphical, diagrammatic representation of the software and makes it executable. The diagram is the code.
Right now, I know some of you are thinking to yourself that all this talk of 'graphical' and 'high level' is fine, but "you can't do real work with anything but C". When I hear comments like that, I get a strong sense of déjà vu. Similar comments were made about the adoption of C versus assembly language for embedded systems, and look where we are now.
If you ask me, the advent of multicore processors has created a similar turning point. In five years' time, graphical programming will dominate, at least in scientific and engineering applications, and it will be supplemented by C and assembly where needed.
Ian Bell leads marketing operations for National Instruments in the UK and Ireland. Before joining the company he worked as an electronics and software design engineer, and is a member of the IET.
The opportunistic mobile
When my car needs petrol, I can use any of several petrol stations. When I turn on my TV, I can select one of many competing channels. So why is it, when I turn on my mobile phone, it can use only one network?
Currently, mobile phone users are tied into the single network to which they subscribe. They use only that network for months, or years, on end. It is as if my car only ran on Shell petrol, or as if my TV would only receive the BBC.
The current situation is even stranger when you consider that many people have more than one phone, and each may be tied to a different network. It's as if on the left side of the room stood the BBC television set, and on the right the ITV television set; on the left of my garage is my Shell car, on the right is my Esso car.
One day it may be possible to turn on your mobile phone and have it connect to any of several networks, based on quality or price. You might not want actually to know which network the phone selected, as long as it efficiently and automatically chose the cheapest one, based on whether you wish to text, hold a voice conversation, or share multimedia files. Network operators could transmit pricing information and some parameters of the system, such as maximum bandwidth and delay. The prices might vary, depending on current levels of congestion. In addition tobeing able to access competing cellular operators, you might also like your phone to compare the prices for Wi-Fi or other technologies, opportunistically selecting the best frequency and network, based on your location, and your service and quality requirements.
The development that could bring all this about is Dynamic Spectrum Access (DSA). Currently being studied closely by UK communications regulator Ofcom, DSA can be thought of as a network of networks. A number of networks would be affiliated to an overlay network operated by a DSA service provider. When you place a call, your phone would first send a message requesting pricing information across a number of networks. This would lead to a range of competing quotes. A selection of the best network would then be made, and this acknowledged by your mobile phone.
A potential problem with all this is the delay it would cause before the call is actually made. However, according to network simulations commissioned by Ofcom, the average call setup delay would be less than one second.
By comparison, the call setup delay for high-speed downlink packet access (HSDPA) networks is about 10 seconds. So DSA would not seem to involve excessive delays. "We are confident that DSA is technically feasible," Ofcom says.
Whether DSA is introduced or not, depends on the business case. Why on earth would any operator allow me to roam to its competitors if they were cheaper?
That, rather than any technical issue, may prove the stumbling block to the introduction of the opportunistic mobile phone.
Find out more at www.ofcom.org.uk/research/technology/overview/randd0708/ [new window].