CHAPTER 10

Handset Software Evolution

Our last chapter provided some examples of the trade-offs implicit in software/hardware partitioning when we discussed authentication and encryption. Implementing a function in software provides lots of flexibility, but execution can be relatively slow. Implementing a function in hardware means we lose flexibility, but the execution is much faster. A hardware implementation may also be more secure—less easy to compromise or attack without leaving visible evidence. In hardware, an instruction might typically be expected to execute in four clock cycles. In software, it can take 50 to 60 cycles—the cost of flexibility. This chapter explores the evolution of software in the hardware versus software dilemma.

Java-Based Solutions

Over the past 10 years there has been a move to make software, particularly application layer software (sometimes called platform operating software), easier to write. Java is one example. Originally introduced in 1995 as interoperative middleware for set-top boxes, Java compiles high-level code into Java byte codes.

Developers write a version of the Java Virtual Machine in their own hardware's instruction set to run the byte codes. The advantage is that this makes the code fairly portable both between devices and applications. The disadvantage is that you do not have much backward compatibility and you can find yourself using rather more code (memory space and processor bandwidth) than you had originally intended. You would ...

Get 3G Handset and Network Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.