Writing applications for devices like tablets and smartphones could become more challenging as CPUs and hardware accelerators are added to mobile chips, experts agreed at a processor conference on Monday.
Chip makers are adding CPUs and specialised hardware accelerators to mobile chips as an energy-efficient way to boost application performance on tablets and smartphones. Most mobile devices today come with one CPU core on a chip, but tablets and smartphones with dual- and triple-core chips could hit shelves as early as next year.
That means that applications must be rewritten to take advantage of the new hardware, said Linley Gwennap, principal analyst at Linley Group, during the Linley Tech Processor conference in San Jose, California.
A lot of work would be needed in software to extract better performance out of multicore chips, which could be a challenge, Gwennap said.
"What we're seeing on the phone side is applications having to change to use the second CPU," Gwennap said. "It's going to take some time before the software is ready for that," Gwennap said.
But it's a challenge that programmers are likely to meet. Smartphone and tablet shipments are growing fast, and developers are churning out new programs designed to get an early foothold in these exciting markets.
New smartphones such Apple's iPhone 4, Motorola's Droid X and HTC's Evo 4G carry the fastest processors ever, running at clock speeds of 1GHz. The tablet market is ruled by Apple's iPad, but it will heat up as challengers such as Samsung's Galaxy Tab and Toshiba's Folio 100 begin shipping. Research in Motion on Monday announced its new tablet, called the PlayBook.
Mobile devices are undergoing a transition from voice and SMS to more data services, and applications remain connected for longer, said Kannan Parthasarathy, an engineer at Byte Mobile. "It started off with Web browsing, now people are watching video," she said.
There are also social media applications that remain connected for longer, which calls for more processing power and improved network connectivity. To save battery life, developers need to understand mobile applications, services and connectivity, and break down tasks over cores and threads accordingly.
Mobile operating systems like Google's Android are partly ready for dual-CPUs at the OS level, which could initially reduce the strain on programmers, Gwennap said. But as mobile chips carry more cores, there will be more complexity in implementing applications over multiple cores and threads.
Qualcomm and Nvidia have announced dual-CPU chips based on Arm designs for smartphones and tablets. But Marvell has already released a chip with three processing cores, and the number of cores on mobile chips could increase over time as devices demand more performance while saving power.
"As you go beyond four cores ... you really have to start stripping down the OS," Gwennap said.
Chips based on Arm designs also have the capability of shutting down cores to save power. Depending on the chip architecture, many OS- and program-level changes would be needed for tablets and smartphones to take advantage of the power-saving features.
"The problem is the way you throttle down a Marvell CPU is different from the way you throttle down a Qualcomm CPU. The operating systems are going to have to have specific modules for each phone. It starts getting complicated," Gwennap said.
Beyond CPUs, specialized cores and hardware accelerators are being added to mobile chips to either increase performance or reduce power consumption. However, such specialized cores could reduce software portability, as they may require specific proprietary APIs (application programming interfaces) to port specific applications.
"The downside of accelerators is they reduce software portability," Gwennap said.
Some applications like video processing are suited for multicore processors and specialized accelerators, Gwennap said. Nvidia, for example, has added proprietary graphics processing cores to its Tegra 2 chips to accelerate video applications while saving power.
Similar multicore programming challenges faced software programmers writing applications for PCs in the past. Before multicore chips, application performance on PCs was boosted by cranking up CPU clock speed, and a lot of software was written in sequential mode for execution on a single core.
But cranking up clock speed led to excessive heat dissipation and power consumption, and chip makers like Intel reverted to a new technique of adding processing cores to improve performance. Software developers faced the challenge of rewriting applications to take advantage of multiple cores to scale application performance.
But with mobile devices, power consumption matters a lot more than application performance, Gwennap said.
"The software is very important in terms of driving power consumption. Everybody says 'oh, is my CPU good, is my CPU not good,' but it's what the software does with the CPU that makes a huge difference," Gwennap said.