PhD Studentship on ``Space Optimisation for Embedded Processors''

Cambridge University Computer Laboratory & ARM Ltd

Contact: Alan.Mycroft@cl.cam.ac.uk or see URL http://www.cl.cam.ac.uk/
ARM Ltd, one of the 100 largest UK companies by capitalisation, are providing a PhD studentship Neil Johnson has been appointed to this post (started October 2000), but CPRG welcomes proposals both from companies and students on other topics.

Summary

There is a code and data space problem with many current embedded system.

For concreteness consider the example of GSM mobile telephones (but the issues are reflected in much commercial embedded systems code). We observe that a simple GSM protocol stack for a mobile phone takes around 100Kbytes for code and data. However many mobile telephones require 4Mbytes of memory or so. This is a direct cost on such systems, both in additional (we would argue spurious) additional hardware cost and in the knock-on costs such as reduced battery life. A company which can produce better embedded code, without extending product development times, will gain in the marketplace.

Starting to question why the above figures occur yields interesting answers. These include feature bloat (e.g.\ music as ringing tones) which together with user-interface code being written by less-skilled programmers result in low-technology code taking more space than the `difficult' code. This increases ROM size. Another reason is that code execution becomes too hard for programmers and analysis tools in current use to keep track of (object-oriented tools like C++ and Java are problematic in this respect). Stack frames allocated by compilers are seldom optimal and because execution control flow is imprecisely known we must allocate data, stack and heap space on a `better safe than sorry' basis. This wastes RAM.

We propose to develop techniques and tools (ranging from user-oriented programming advice, via theory-based static program analysis, to practical prototype optimisers) to address these problems.

The deliverables from this project will be a PhD thesis and associated papers covering identification of good and bad practices for small-footprint embedded code, transformation patterns to remove inefficiencies and prototype tools.