About Me My CV Work Flying Web Design Other Activities Links
 
James Bulpin
Main Menu

Current Work

I run the verification department of XenSource, the open-source virtualisation company. I'm responsible for ensuring our commercial and open-source products are of a high quality. Most of my work involves the automation of infrastruicture, product operation, testing and result analysis. I've been with the company since its beginings in 2005.

Previous Work: PhD

I was a Research Student and subsequently a Research Associate with the Systems Research Group at the University of Cambridge Computer Laboratory.

The research I undertook in pursuance of my Ph.D. focused on the interaction of Simultaneous Multithreading (SMT) processors (such as the Intel Pentium 4 with Hyper-Threading) and operating systems. I measured and analysed the mutual effect of concurrently running threads and how process scheduling can be used to improve the over all system throughput.

Other work included network monitoring (including Internet traffic analysis), network planning and installation and supervising undergraduates.

Previous Work: Research Assistant post

I worked on a user-space filing system to make use of a network-attached disk as part of the Plan A project. Other work I undertook as part of the project included the development of kernel modules for Linux to support communication to the network-attached disk.

Past Work: Part II Project

As part of Part II (third year) Computer Science, we have to each work on a major individual project. My project was titled 'Design and Simulation of a Super-Scalar CPU'. It involved modelling a processor using the hardware description language Verilog.

Initially the processor was a non-super-scalar design, based on a subset of the instruction set and behaviour of the ARM 7 CPU. Later I extended the model to demonstrate a super-scalar architecture, i.e. having more than one pipeline therefore capable of executing more than one instruction at a time. I chose to implement dynamic out-of-order execution. This involved ensuring that simultaneously executed instructions do not have any dependency on each other and so on. A copy of my dissertation is available here (460K).

Past Work

 

Created by James Bulpin, May 1999, updated Apr 2007.