Research Interests

I am primarily interested in the development of software for future computing architectures. Whilst Moore's Law largely still applies to increases in transistor density, single-threaded clock speeds have stopped rising significantly. Therefore, extra performance must be obtained by adopting novel system architectures. Features of these new architectures include:

  • Parallelism: Large amounts of hetergeneous processing cores.
  • Non-standard memory hierarchies: As parallelism increases memory access times can cause a system bottleneck, forcing designers to move to layered models.
  • On-chip communication: Communication media such as on-chip networks become necessary as systems grow.
  • Custom hardware: A move to more application-specific designs that make use of function accelerators and non-standard memory technologies and configurable FPGA-based features.
  • Real-time constraints: As computing devices become increasingly ubiquitous they become subject to real-time constraints, forcing the designer to consider issues of worse-case execution time and predictability.

All of these features pose interesting problems for the application programmer, who is frequently forced to resort to extra-linguistic techniques and assembly code to effectively target their code at such architectures. As a result my interests cover architecture support in software languages, embedded systems, real-time systems, hardware architectures, virtualisation and abstraction methods, FPGAs and reconfigurable computing, hardware synthesis languages and predictability of systems.

Research projects

I am currently working on the following EU projects:

  • MADES (Model-driven development of embedded systems) aims to develop the elements of a fully-fledged model-driven approach for the design, validation, simulation, and code generation of complex embedded systems to improve the current practice in the field. (FP7 reference number: 248864)
  • TOUCHMORE (Automatic Customizable Tool-chain for Heterogeneous Multicore Platform Software Development) will develop software tools that facilitate energy efficient and robust software for Heterogeneous Multicore Systems with the goal to reduce the time-to-market in the design of such systems as well as the cost of software design through the automation process. (FP7 reference number: 288166)

Teaching

I assisted teaching the Embedded Systems course at the University for six years between 2006-2011. Aside from standard demonstration duties of helping students and responding to questions, I have frequently been responsible for the creation of large amounts of software and hardware that form the teaching and assessment materials of the course. Over the years I have developed a number of hardware teaching architectures for the students to work within, 2 complex server programs for the students' solutions to interact with, networking infrastructure, many example solutions, code libraries, and teaching documents.

Reviewing

Throughout my career I have provided paper reviews for many conferences and journals including The Journal of Systems Architecture, the Real-Time and Embedded Technology and Applications Symposium (RTAS), and Design, Automation and Test in Europe (DATE).

Consultancy

I have supported a York-based engineering company during their migration of a legacy product to modern hardware and operating systems. This involved extensive Linux kernel development and hardware engineering expertise.