About Me
Home ] Up ] New Stuff ] Minix Port ] Magic-2? ] Overview ] Photo Gallery ] Construction ] Technical Info ] Links ]

 

Bill Buzbee 

The important stuff: married,  with three kids and two dogs in a very noisy house.   Grew up in Kansas and moved to Silicon Valley in 1984.  Currently living in Half Moon Bay, a coastal town south of San Francisco.  For the last 20+ years, I've worked as a compiler and language tool software engineer.  Most of that was for Hewlett-Packard - the rest was a four-year stint at a fun startup called Transmeta.

For the last ten years or so, I've specialized in dynamic translation, instrumentation and optimization.

Currently, I have the very cool title of "Senior Research Scientist" at Hewlett-Packard Laboratories in Palo Alto.  Sadly, the title does not come with a white lab smock and the mandate to create mutant superheroes (something my six-year-old son suggested).  Still, I do get to play with some very cool secret stuff.

Computers are actually a second career for me.  I grew up in and around small daily newspapers.  I began delivering papers at age 11 and became a part-time sports writer at 13.  By the time I went to college in the mid-70's to get my journalism degree I was the assistant sports editor for the local paper - responsible for stories, layout and headlines for the inside sports pages. 

I continued with journalism, eventually becoming the managing editor of the Parsons (Kansas) Sun. During the late 70's and early 80's, small daily newspapers were early adopters of computer technology.  Excited by the possibilities of using computers for information delivery, I quit my job and headed back to school to learn about computers.  My intent was to apply what I'd learned to newspapers - but at the university I became fascinated with computer language and never made it back to the newspaper business.

My homebrewcpu project has gotten vastly more attention that I've ever imagined a silly nerd hobby project could get.  It also enabled me to finally impress the teen-age daughter.  Not for doing my own computer, but for getting a magazine article about me.  I was the featured geek in the summer 2005 issue of ExtremeTech Magazine (a PC Magazine spin-off):

ExtremeTech Interview

And finally, here's a recent resume:

 

 William B. Buzbee

Twenty years of experience in compiler and language tools.   Past experience divided between production code development (high-speed x86 interpreter, PA-RISC code generation, Ada debugger port, run-time libraries) and research (hybrid x86 interpreter/fast translator, optimized code debugging, dynamic translation, dynamic optimization).   Named sole or joint inventor on 26 US patents, two of which were featured in Microprocessor Report’s Patent Watch column.

Was the technical architect of Hewlett-Packard’s strategy to seamlessly support old PA-RISC applications on IA-64 using dynamic translation.  Acted as technology evangelist in applying dynamic translation techniques to runtime optimization and application profiling.   Successfully proposed and helped staff two spin-off product efforts based on dynamic translation , Carbon Fire and what continues today as HP's Caliper.  Author of Dr. Pat, a dynamic instrumentation toolkit used widely within HP for profiling and research.

 

Hewlett-Packard Laboratories – Palo Alto, CA

10/03 to Present: Senior Research Scientist (Printing and Imaging Research Lab)

·         Exploring applications of compiler and computer system technologies to printing system problems.

Hewlett-Packard – Cupertino, CA

3/02 to 10/03: Software Architect (Developer Resources Organization)

·         Lead technical investigator for developer tool push into adaptive management.  Led teams building SDK extensions using Eclipse and Visual Studio frameworks.

Transmeta Corporation - Santa Clara, CA

9/98 to 3/02: Senior Software Engineer, Code Morphing Software Section

·         Developed the x86 interpreter that serves as the profiling engine and correctness safety net for the optimizing translator component of Transmeta’s second generation microprocessor (Efficeon).  The interpreter has a novel design taking advantage of specially developed hardware assists.

·         Joint developer of an experimental FORTH-like hybrid x86 translator/interpreter intended to function as a “second gear” between interpretation and heavyweight optimized translations.

Hewlett-Packard - Cupertino, CA

11/96 to 9/98: Dynamic Optimization Architect – Performance Delivery Section

·         Provided the initial vision (and name) for the “Carbon Fire” project, which sought to convert HP’s dynamic translation and optimization expertise into a performance advantage (and market differentiation) on IA-32 and IA-64 systems.

·         Developed “Helium Flame,” a prototype PA-RISC to PA-RISC dynamic optimizer to demonstrate post-link optimization of native code.  It worked.

3/95 to 11/96: Object Code Translation Architect – Software Migration Project

·         Created a dynamic translation tool framework, Dr. Pat. (Dynamic Recompilation Program Analysis Toolkit).   Dr. Pat supported arbitrary user probe insertion, and the ability for probes to query and modify machine state with full resumption.  Dr. Pat was used in diverse projects within HP, including several efforts at HP Labs.

·         In March of 1995, built a special version of the toolkit to highlight the possibility of dynamic optimization.  Demonstrated a 6% speedup on a toy benchmark.

·         Designed, prototyped, demonstrated and patented technique of “burst profiling” an application in which execution alternated between unfettered native execution and execution under the control of a dynamic translator.

·         Wrote a vision paper describing the potential of dynamic translation when applied to run-time and profile-based optimization.  Paper widely read within HP, and led to the creation of the Carbon Fire projects.

9/93 to 3/95: Lead Software Engineer – Software Migration Project

·         First engineer assigned to the new software migration project  After studying the situation, concluded that the plan of record, static object code translation, was the wrong approach, and proposed a model based on dynamic translation.  Designed and developed a dynamic translation prototype to prove the viability.  Convinced the skeptics, and dynamic translation plan adopted.

8/84 to 9/93:  Language Tool Software Engineer – Various projects

·         Defined and implemented techniques for debugging optimized code, worked on port of Ada compiler to PA-RISC, and developed decimal and block move/compare support in PA-RISC code generator.. 

Education

bulletMS Computer Science, University of Kansas, 1984.   BS Journalism, University of Kansas, 1980

US Patents

Two of my patents were featured by Microprocessor Report’s “Patent Watch” column, an industry report highlighting interesting inventions:

bullet5,732,210 - Dynamic Translation: Fast Debug Event Checks
bullet5,854,928 - Static Optimization: Lazy Generation of Speculation Recovery Code

Other US patents:

bullet5,133,072 - RISC Code Generation: Millicode
bullet5,713,010 - Debugging Optimized Code: Source Line Tracking
bullet5,764,962 - Dynamic Translation: Asynchronous Signal Handling
bullet5,815,720 - Dynamic Translation: Profile-Based Optimization
bullet5,838,810 - Dynamic Translation: Signal Hack
bullet5,838,978 - Dynamic Optimization: Profile Maturation
bullet5,909,578 - Static & Dynamic Optimization: Burst Profiling
bullet5,911,073 - Dynamic Optimization & Debugging: Parasite Injection Control
bullet5,933,622 - Dynamic Translation: Lightweight Asynchronous Signal Handling
bullet6,052,530 - Dynamic Translation: Retranslation to Recover Simulated Machine State
bullet6,112,280 - Dynamic Translation: Translation Cache Management
bullet6,115,809 - Dynamic Translation: Code Placement by Branch Prediction Class
bullet6,148,437 - Dynamic Translation: Region selection
bullet6,164,841 - Dynamic Optimization System 
bullet6,189,141 - Dynamic Optimization: Hot Trace Selection
bullet6,199,202 - Code Migration: Cross-architecture Interoperability
bullet6,205,545 - Dynamic Optimization: Use of static branch prediction hints
bullet6,219,832 - Dynamic Translation: Signal Hack #2
bullet6,223,339 - Dynamic Translation: Code placement to maximize fast branches
bullet6,247,172 - Dynamic Optimization: Optimizing across exception boundaries
bullet6,275,981 - Debugging Optimized Code: Tracking source line numbers during optimization
bullet6,314,560 - Dynamic Optimization: More optimizing across exception boundaries
bullet6,327,704 - Dynamic Translation: Multi-branch Backpatching
bullet6,330,691 - Debugging: Using Dynamic Translation for Breakpoints

Publications

K.W. Pettis and W. B. Buzbee, “Hewlett-Packard Precision Architecture Compiler Performance,” Hewlett-Packard Journal, Vol. 38, no. 3, March 1987.