Articles & Papers

As is a tale, so is life: not how long it is,
but how good it is, is what matters.

— Seneca

Most Popular

Modern Microprocessors – A 90-Minute Guide!
Jason R. C. Patterson. Technical paper, Lighterra, May 2015 (orig Feb 2001)
A brief, pulls-no-punches, fast-paced introduction to modern processor microarchitecture. Originally a background appendix in my PhD thesis, extracted into a separate paper by popular demand, now one of the world's most popular and widely used introductory articles on processor design, with over 800,000 readers.
The History of Computers During My Lifetime
Jason R. C. Patterson. General article, Lighterra, Jan 2011 (orig Dec 1994)
A look at the great moments in the history of computers from the early 1970s to (almost) the present day. For several years this article could be found on a wall of the Smithsonian Institute.
Video Encoding Settings for H.264 Excellence
Jason R. C. Patterson. Technical paper, Lighterra, Apr 2012
Detailed notes regarding the resolutions, bitrates and settings used for high-quality H.264 video encoding, and the reasoning behind those choices.

Programming Languages & Compilers

Accurate Static Branch Prediction by Value Range Propagation
Jason R. C. Patterson. Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation (PLDI), Jun 1995, pages 67-78
Describes the value range propagation algorithm and its use in static branch prediction. This algorithm is now used by many, possibly even most, production compilers, both for branch prediction and for other value/type propagation optimizations and "static analysis".
Basic Instruction Scheduling (and Software Pipelining)
Jason R. C. Patterson. Technical paper, Lighterra, Sep 2003 (orig Feb 2001)
Introduction to instruction scheduling and software pipelining for straight-line code (basic blocks). Originally a background appendix in my PhD thesis, now used by several university compiler courses worldwide.
Efficient RISC Style Code Generation for CISC Architectures
Jason R. C. Patterson. Honors thesis, Bond University, Apr 1992
Honors thesis discussing the design and implementation of a C++ compiler for the MIPS RISC and Motorola 68k CISC architectures, showing it's possible to use low-level, RISC-like intermediate code and still perform good instruction selection for traditional, complex instruction sets.
Exception Handling Considered Harmful
Jason R. C. Patterson. Technical paper, Lighterra, Nov 2005
Counterpoint to the prevailing view that exception handling is the best method of error handling for modern software development – an important issue for future programming-language design.
Optimizing for Superscalar Processors
Jason R. C. Patterson. Technical paper and seminar, Queensland University of Technology (QUT) and Distributed Systems Technology Centre (DSTC), Oct 1993
Overview of the challenges and evolving optimization techniques for superscalar processors.
Register Allocation by Graph Coloring
Jason R. C. Patterson. Technical paper, Lighterra, Sep 2003 (orig Feb 2001)
Introduction to register allocation by graph coloring. Originally a background appendix in my PhD thesis, now used by several university compiler courses worldwide.
VGO – A Very Global Optimizer
Jason R. C. Patterson. PhD thesis, Queensland University of Technology (QUT), Feb 2001
PhD thesis discussing the idea behind executable optimization and the design and implementation of a real-world executable optimizer.
Zero-Cost Executable Rewriting
Jason R. C. Patterson. Technical paper, Queensland University of Technology (QUT), Oct 1994
Discusses new, original techniques for reading and rewriting executable files without the performance loss incurred by existing methods.

Hardware & Processor Design

Alpha & EV4 – The Architecture & The First Implementation
Jason R. C. Patterson. Technical seminar, Queensland University of Technology (QUT), Oct 1992
Technical overview and analysis of the design of the DEC Alpha architecture and Alpha 21064 (EV4) processor, which looked to be the future of the industry at the time.
Microsim – A Microarchitecture Simulator
Jason R. C. Patterson. Technical paper, Bond University, Aug 1991
Discusses the features, design and implementation of a visual, programmable microarchitecture simulator and debugger.
Modern Microprocessors – A 90-Minute Guide!
Jason R. C. Patterson. Technical paper, Lighterra, May 2015 (orig Feb 2001)
A brief, pulls-no-punches, fast-paced introduction to modern processor microarchitecture. Originally a background appendix in my PhD thesis, extracted into a separate paper by popular demand, now one of the world's most popular and widely used introductory articles on processor design, with over 800,000 readers.

World Wide Web Technology

highsrc - Simple and Effective High-DPI "Retina" Images
Jason R. C. Patterson. Technical proposal, Lighterra, Apr 2012
Proposal to add a simple new highsrc attribute to the good old HTML <img> tag to support high-DPI "retina" images, including a JavaScript polyfill.
Video Encoding Settings for H.264 Excellence
Jason R. C. Patterson. Technical paper, Lighterra, Apr 2012
Detailed notes regarding the resolutions, bitrates and settings used for high-quality H.264 video encoding, and the reasoning behind those choices.
Web Page Checklist
Jason R. C. Patterson. General article, Lighterra, Dec 2016 (orig Dec 1994)
Web page checklist covering topics from writing style to performance and accessibility etc.

Miscellaneous

Cloud Terminology In A Nutshell
Jason R. C. Patterson. General article, Lighterra, Dec 2007
A brief summary of the different types of "cloud" computing (IaaS, PaaS & SaaS).
Coding Guidelines To Live By
Jason R. C. Patterson. Technical paper, Lighterra, Mar 2014 (orig Mar 2004)
Coding guidelines checklist covering topics from general program/API design through to language-specific issues for C, C++, Objective-C, Java etc.
The History of Computers During My Lifetime
Jason R. C. Patterson. General article, Lighterra, Jan 2011 (orig Dec 1994)
A look at the great moments in the history of computers from the early 1970s to (almost) the present day. For several years this article could be found on a wall of the Smithsonian Institute.
Mac OS X - The Big Transition
Jason R. C. Patterson. General presentation, Lighterra, Aug 2003
Presentation introducing Mac OS X to existing Mac OS 9 users.
Mac OS X 10.3 Panther
Jason R. C. Patterson. General presentation, Lighterra, Nov 2003
Presentation describing the changes and new features in Mac OS X 10.3 Panther.
Mac OS X 10.4 Tiger
Jason R. C. Patterson. General presentation, Lighterra, May 2005
Presentation describing the changes and new features in Mac OS X 10.4 Tiger.
Mac OS X 10.5 Leopard
Jason R. C. Patterson. General presentation, Lighterra, Feb 2008
Presentation describing the changes and new features in Mac OS X 10.5 Leopard.
Mac OS X White/Light Text Sub-Pixel Antialiasing Bug
Jason R. C. Patterson. General article, Lighterra, Jun 2007
A discussion of the Mac OS X white/light text sub-pixel antialiasing bug, complete with detailed close-up images.
Open Source – Resistance Is Futile, Or Is It?
Jason R. C. Patterson. General article, Lighterra, Jun 2008
Discusses the role and impact of open-source software in the overall software industry, as well as clarifying many common misconceptions.
Universities and Commercial Research
Jason R. C. Patterson. General article, Lighterra, Feb 2001
A note about universities and commercial research.