← Back to All Placements

Yuanzhou(Michael) Wu

CPU Architecture Intern

Huawei Technologies Research & Development (UK) Ltd
Cambridge

Summary

I spent six months as a research intern at Huawei's Cambridge Research Centre, in a team working on systems software and memory safety. My project was about "memory leaks" -- a common type of software bug where a program keeps claiming memory and never gives it back, so that over time the machine slows down or crashes. The newest phone processors include a hardware feature that attaches small labels to blocks of memory for security purposes. My research question was whether those same labels could be reused for diagnosis: helping a debugging tool keep track of memory and work out where and when a program started leaking. Over the placement I designed this mechanism, built it into a working prototype, and tested it on real bugs taken from the history of widely used open-source programs, comparing its accuracy and cost against established leak-finding tools.

Role and Contributions

I was the sole researcher on this project, responsible for its design, implementation and evaluation, with direction from my supervisor and the team lead. I designed the diagnosis mechanism and implemented it as a working prototype. I built an evaluation framework that reconstructs real, historically documented bugs in widely used open-source software and compares my tool with established ones under matched, fair conditions. Two of the comparison tools were research prototypes that no longer ran on modern systems, so I repaired and modernised them first. I also carried the prototype from software emulation onto a consumer phone that ships the hardware feature, and wrote the documentation and scripts that let the team reproduce every result and continue the work after my placement ended.

Technical Skills

Systems programming in C on Linux; computer architecture, including the Arm instruction set and its memory-tagging feature; operating-systems material used daily -- virtual memory, memory allocators, linkers and signal handling; data structures and algorithms for the scanning engine; hardware emulation with QEMU; debugging and analysis tools such as sanitizers; and careful performance measurement -- designing experiments that control for machine noise and comparing tools on a strictly like-for-like basis, with every result reproducible from scripts.

Professional Skills

Communicating technical work to audiences of different backgrounds, through weekly meetings and internal seminars -- and learning to pitch the level of detail to the listener with a top-down structure. Honest research practice: writing predictions down before running experiments, and openly correcting results that turned out to be wrong. Driving an open-ended problem independently -- planning my own time without fixed deadlines -- while staying closely aligned with my supervisors. Writing documentation and handover material so that others can pick up the work without my help.

Tags

Software Hardware (Digital)