Date: Tue, 05 Nov 1996 00:16:21 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Fri, 13 Sep 1996 15:33:22 GMT
Content-length: 18153
Andy Glew's Resume
Andy Glew
412 West Shore Drive
Madison, WI 53715
Home: 503-693-9830
glew@cs,wisc.edu
glew@ichips.intel.com
Career Goals
- Challenging hardware/software development.
- To design the next generation of
high-performance microprocessor,
going beyond out-of-order dynamic execution
and instruction level parallelism
towards meso-scale parallelism.
- To apply the technical management concepts
that can create a "Breakthrough System"
for creative work like Computer Architecture;
to recreate Thomas Edison's "Invention Factory"
in the modern world.
Skills
- Performance Tuning and Analysis
-
- Both hardware and software.
- I can make anything run faster!
- Hardware
-
- High-performance computer architecture,
especially out-of-order microarchitectures.
- Parallel processors
- Synchronization
- Cache and Bus Protocols
- Memory Consistency Models
- Super-scalar Processors
- Behavioural and structural modelling in
RTLs (register transfer languages)
such as iHDL (Intel Hardware Description Language).
- Computer arithmetic,
particularly redundant forms to increase performance.
- Software
-
- OS: UNIX System V and BSD 4.3 kernel. Some NT kernel.
Win95 drivers.
- Programming Languages: C, LISP used regularly.
Familiar with C++, COBOL, FORTRAN, PASCAL, PL/1.
- Assembly Languages: 680x0, 88K, 80x86, Gould PN and NP, MIPS R2000,
PowerPC.
- Environments: super-micro to mini-super.
Education
- August 1996 - date:
Ph.D. student at the University of Wisconsim, Madison.
Advisor: Guri Sohi.
Research interests:
more aggressive out-of-order,
superscalar, dynamic execution, CPUs.
- September 1987 - January 1991:
University of Illinois at Urbana Champaign,
M.Sc. in Electrical and Computer Engineering.
Thesis: "Synchronization Primitive Implementation
including the Bus Abandonment Lock"
Advisor: Wen-mei Hwu.
Subject area: computer architecture, parallel processing,
synchronization instructions,
cache and bus protocols.
Other research: super scalar processing (register
renaming, minimal control dependencies).
Part time before January 1990
(while working at Gould and Motorola).
GPA 4.8/5.
- 1980-1985: McGill University, Montreal,
Bachelor of Engineering in Electrical Engineering
(Computer Option).
GPA 2.87/4.
Projects include:
RAMM/RISC/SEISM - a Reduced Addressing Mode, RISC,
Small Efficient Instruction Set Machine.
- 1978-1980: Marianopolis College, Montreal,
Diplome des Etudes Collegiales.
Employment
- January 1991-date: Intel Corporation, Hillsboro, Oregon
-
- August 1996-date: Student
-
Although I continue to be affiliated with Intel's Microcomputer Research Labs
- e.g. I am still covered by the Intel NDA, and will work at Intel on breaks -
I am now mainly a full time student pursuing my Ph.D.
- November 1995-August 1996: Computer Architect/Researcher,
Microcomputer Research Labs; Leader, Intel Architecture
CPU Research Group
-
Manager: Richard Wirt (Intel Fellow).
I agreed tp spend approximately one year
(prior to returning to school to finish my Ph.D.)
helping to get this research group
off the ground,
defining the research directions
hiring 5 Ph.D. level researchers (and trying to hire more),
and budgetting and arranging capital purchases of approximately
500,000$ in computer equipment and services.
- January 1991-November 1995: Computer Architect, P6.
-
Managers: Bob Colwell (1991-1993), Dave Papworth (1993-1995).
- One of five architects involved in the
Original P6 Microarchitecture Definition
(in 1991)
and supported design by providing oversight
and making global tradeoffs throughout the life of the project.
- Defined top-level interface between subsystems.
- Defined execution unit "uop" instruction set.
- Defined microcode format.
- Significant contributions to design of
non-blocking cache.
- Defined and performed initial RTL coding of branch mechanism,
including interfaces between BTB and execution units.
- Simulation studies to simplify logic involved in
retirement of branches.
- Defined global control register bus.
- After initial definition phase led
P6 HW/SW Codevelopment team
(up to 3 full time engineers, 3 students)
- Wrote P6 External Architecture Specification.
Defined all new architecturally
visible features (Machine Check,
mechanisms for reducing TLB invalidations,
memory types)
and new instructions
(conditional moves, fast system calls).
- Liaison between P6 Architecture and software groups:
compilers, OSes (Intel and Microsoft),
assembly language applications such as
multimedia,
video,
3D graphics, and games
developers.
- Wrote P6 Code Tuning Guide.
- Defined new memory types that increase memory to framebuffer
performance by 4-7X.
- Defined and supervised block memory fill and copy optimizations,
including inventing a new cache protocol that reduces memory
traffic by 50-30%.
- Tuned code,
including a single, notorious, optimization that improved
iSPEC92 by approximately 25%.
Supervising recent work improving branch predictability.
Supervising much work improving performance analysis tools
for code tuning.
- Defined P6 Performance Monitoring hardware (EMON).
Defined and supervised development of software
(UNIX and Windows)
to perform
EMON profiling, a new method of performance analysis
involving statistical sampling of code locations associated
with particular performance problems.
- Defined and supervised development of
Priviliged Mode Execution (PMX)
device driver, on UNIX on Microsoft OSes,
permitting access to many hardware priviliged facilities
from user code,
facilitating automation of many performance and validation
testing procedures.
- Initially defined and supervised development of
API Profiling device drivers on Windows 3.1,
which permitted investigation of performance issues
not just by flat code location, but also according to call tree.
Supervised first application of this tool to tuning
computer games and 3D graphics applications.
- Acted as an x86 architecture expert,
frequently representing P6 to
Intel's Compatibility Architecture Review Team (CART).
- Creator and keeper of the official Intel x86 Instruction Set
Definition, on behalf of CART.
- CART expert on APIC (interrupt controller) architecture.
- CART expert on SMM (System Management Mode).
- Original investigator of x86 instruction set
enhancements to support multimedia, video, and graphics;
P6 representative on MMX definition effort;
key inventions that permit instruction set enhancement
without OS changes.
- P6 representative in evaluation
of future instruction set architectures.
- Future x86 microarchitectures.
- Member of Intel Research Council's
Natural Datatypes Technical Committee, supervising research
in multimedia, graphics, speech and handwriting recognition, etc.
- January 1990-May 1990: Teaching Assistant
Foundations for VLSI Design Automation
-
Course CS497-LGJ
taught by Professor Larry Jones,
at AT&T Bell Labs Naperville (Indian Hill).
University of Illinois at Urbana-Champaign,
Department of Computer Science.
- December 1985-November 1989: OS Developer
-
From December 15 1985 to November 15 1989
I was a member of the technical staff
at 1101 E. University, Urbana, IL 61801.
Before October 7, 1988, the site was owned by Gould CSD.
On October 7, 1988, the site was sold to Motorola MCD.
On November 15, 1989, I left to take a vacation
before returning to full-time studies
in January 1990.
- October 1988-October 1989:
Performance Evaluation Team Leader,
Motorola Microcomputer Division,
manufacturer of MC680[234]0 and MC88000 VME bus computer systems
based on AT&T UNIX System V release 3.
Tasked to "find the next generation of computer system
performance problems".
Worked widely in UNIX kernel and VMEbus board level
performance issues.
- Supervised one computer scientist,
working in filesystem performance,
leading to multiple filesystem block sizes,
and a change in buffer cache scanning algorithm
to improve interactive response.
- Wrote kernel tuning guide for SYSTEM V/68 systems.
- Investigated poor memory system performance
due to insufficient write buffering
and slow bus arbitration.
- Wrote white paper on timers,
leading to an improved comparison based timer
implemented in 68040 systems
that eliminated jitter and drift errors.
- Consultant to Multiprocessor and Graphics groups.
- Devised performance tests for interactive "jerkiness".
- Budgetted for approximately 50,000$US
of hardware and software resources and
purchases.
- December 1985 - October 1988: Member of Technical Staff,
Gould Computer Systems Division,
Urbana, Illinois,
manufacturer of Gould PN superminis and NP minisupers.
Advanced Planning:
Active in discussions and planning
for advanced RISC mini-supercomputer systems. OS group
interface to hardware design. Instruction set retirement,
interrupt structure simplification.
- UTX Performance (Q3 88):
Performance evaluation on both PN and NP product lines.
Development of tools for performance evaluation.
Wrote application notes on use of directly connected
interrupts.
Eliminating jitter and drift errors in timer facilities.
- UTX 2.1[AB] Maintenance and Testing (Q2 88):
Bugfixing in NFS, timers, buffer cache.
System V compatibility.
- UTX 2.1 (87-88) Performance:
Member of the first Performance Team in Gould UNIX Development,
responsible for tightly coupling performance issues
with development. PN product line.
Collected and automated benchmark suite.
Wrote real-time UNIX benchmarks.
Investigated performance problems in system baselines:
buffer cache problems (improved write throughput by
>400%), memory layout.
Optimized and inlined critical kernel routines.
- Real Time UNIX (85-87):
Designed and implemented real-time scheduler
on a dual CPU system:
fixed-priority non-preemptive scheduling, CPU targetting,
fast suspend/resume.
Tested high
speed clock facility.
Devised configuration control system based
on hardlinks, parallel trees, and
restricted environments wrapped around RCS (see publications).
- 1986: Programmer, Systemes Videotex FORMIC, Saint Laurent, Quebec.
-
- NAPLPS videotex - graphical editor.
- Implemented public access graphical database system.
- Developed system for managing multilingual
(English/French/...) versions of software.
- Wrote graphics, keyboard, and mouse drivers
for IBM PC compatibles.
- Designed multiport serial card.
- 1982-1986: UNIX System Manager,
-
Electrical Engineering Undergraduate Computer Lab,
McGill University.
PDP-11/40 and CODATA MC68000 based machines running UNIX V7,
Matrox graphics and image processing systems.
- 1981-1984: Computer Operator/Programming Consultant,
-
McConnell Computing Facility, McGill University.
IBM 370 assembly, COBOL, FORTRAN, PASCAL, PL/1.
- Summer 1979: Student Programming Assistant, Concordia University.
-
FORTRAN graphics programming of wireframe aircraft models
on a PDP-11/40 running RT-11v4, and on CDC NOS.
Other Training
- Intel First Line Manager Training. June 1993
- Transaction Processing,
Stanford Western Institute of Computer Science class
taught by Jim Gray, June 1992.
- High Performance Compilers.
Class given by Prof. Michael Wolfe of the Oregon Graduate Institute
in Portland, May 1991.
- Software Testing.
Class given by Prof. Roy Campbell
of the University of Illinois at Urbana-Champaign,
at Gould CSD Urbana.
Led to "Certificate in Software Testing". June 1986.
Publications
- Andy Glew, "Boxes, Links, and Parallel Trees: Elements of a
Configuration Management System", USENIX Workshop Proceedings,
Software Management. USENIX Association, April 3-4, 1989, New
Orleans, Louisiana.
- Andy Glew, "An Empirical Evaluation of ORed Indexing", ACM
SIGMETRICS Performance Evaluation Review, Vol. 17 No. 2, January 1990.
- Andy Glew and Wen-Mei Hwu, "Snoopy Cache Test-and-test-and-set
Without Excessive Bus Contention",
Computer Architecture News, Vol.18, No. 2, June 1990, pp. 25-32.
- Andy Glew and Mandar Joshi, "Improved Framebuffer Memory Type",
Intel Design Technology Conference, 1994.
- Andy Glew and Pohua Change, "P6 Compiler Optimizations",
Intel Software Development Conference, 1993.
Awards
- Intel Acheivement Award, 1996
-
for the Pentium Pro Processor
Dynamic Execution microarchitecture;
shared with Bob Colwell, Dave Papworth, Glenn Hinton,
and Mike Fetterman.
- Divisional Recognition Award, 1996
-
Intel Israel Design Center (IDC),
for the creativity and driving of Intel Architecture
Microprocessor Multimedia Extension (IA-MMX)
Architecture definition;
shared with many other members of the MMX team
led by Alex Peleg and Uri Weiser.
Patents
Co-inventor on more than 100 Intel patent disclosures filed
and approved for submission to patent office,
more than 40 of which have been submitted to patent office.
At last count 7 patents have been awarded by US patent office.
Personal
- Languages: English and French.
- Societies: IEEE Computer Society,
ACM SIGARCH, SIGMETRICS, SIGMICRO, SIGOPS, SIGPLAN.
Standards balloting for FUTUREbus+ and SCI.
- Citizenship: Canadian.
US Permanent Resident Visa.
References
The following is a coworker in Intel's Microcomputer Research Labs,
who also worked with me through much of P6:
- Wen-Hann Wang, Manager, Platform (Cache and Memory Subsystem) research section,
Intel Microcomputer Research Labs.
Intel Corporation,
2111 NE 25th Ave
mailstop JF1-91
Hillsboro, OR 97124-5961
503-264-4681.
wang@ichips.intel.com
The following were my managers at Intel during P6:
- Bob Colwell, Manager, P6 Architecture,
503-264-4550,
colwell@ichips.intel.com
- Dave Papworth, Manager, P6 Macroarchitecture
503-264-4603,
papworth@ichips.intel.com
Both are at:
Intel Corporation,
2111 NE 25th Ave
mailstop JF1-19
Hillsboro, OR 97124-5961.
My MS advisor:
- Professor Wen-Mei Hwu,
256 CSRL, MC 228,
1308 W Main,
Urbana, IL 61801,
(217) 244-8270,
hwu@crhc.uiuc.edu.
The following Intel luminaries have agreed
to provide phone references as to my character.
They're too busy and not allowed to write to write letters
of reference, but I wanted to include their names here as blatant name dropping:
- John Crawford, Intel Fellow, P7 Manager.
408-765-4575,
John_H_Crawford@ccm.sc.intel.com
- Fred Pollack, Intel Fellow, Manager,
Microprocessor Architecture and Planning.
503-264-4383,
Fred_Pollack@ccm.jf.intel.com
- Pete MacWilliams, Intel Fellow, Intel Server Division
503-696-8424,
Pete_MacWilliams@ccm.jf.intel.com
Previous employer:
- Steve Bunch, Manager, Urbana Design Center,
Motorola Microcomputer Division, 1101 E. University,
Urbana, Illinois, 61801. 217-384-8500.
srb@urbana.mcd.mot.com.
- Scott Preece, Manager, Distributed Systems Group,
Urbana Design Center, Motorola Microcomputer Division,
1101 E. University, Urbana, Illinois, 61801. 217-384-8500.
preece@urbana.mcd.mot.com.
$Header: /u/g/l/glew/public/html/RCS/resume.html,v 1.7 1996/09/13 15:33:21 glew Exp $