Elsevier · Patterson, Hennessy: Computer Organization and Design · Welcome


Tropical Radioecology
Buy this book

Welcome to the website for Patterson, Hennessy: Computer Organization and Design: The Hardware/Software Interface.

Computer Organization and Design

About this companion site

This site contains the following material:

  • Laboratory Projects
  • Processor Models
  • About the CD-ROM
  • Errata

1. Laboratory Projects

Below are links to the laboratory projects contributed by faculty who use Computer Organization and Design as a textbook in their courses. This section will be updated regularly. (Please contact Nate McFadden at Morgan Kaufmann Publishers for information on including a link to your courses labs.)

  • Labs from Kansas University
  • Labs from Lund University and KTH (MipsIt)
  • Labs from Southwest Baptist Univeristy (TinyMIPS)

    Labs from Kansas University

    The following labs are given to students at Kansas University as part of a course covering microprocessor design. The labs are based on the material in Computer Organization and Design, and involve writing a VHDL behavioural model of a simple 16-bit, 9-instruction pipelined RISC-style microprocessor.

    These labs were written by David Andrews and Perry Alexander.

    While working on these labs, you may find it useful to refer to the VHDL tutorial included on the companion CD. You may also find it useful to examine the picoProcessor VHDL model; the model is similar to the end result of these labs.

    Labs from Lund University and KTH (MipsIt)

    The following labs are based on the MIPS laboratory environment used at Lund University and the Royal Institute of Technology (KTH) in Sweden. The environment consists of a hardware platform, and MipsIt software for simulating the hardware. Unless you go to the trouble of buying the hardware, you will need to use the software simulator for all the exercises.

    These labs were written by Mats Brorsson and Jan Eric Larsson.

    You should install the MipsIt software on your local hard drive and familiarize yourself with it before trying these labs. Click here to download the MipsIt software (reference manual).

    Labs from Southwest Baptist University (TinyMIPS)

    Students of the Machine Organization course at Southwest Baptist University are shown the TinyMIPS processor model. While the model does not contain many of the features found in a typical modern CPU, students benefit from using it as the basis for more complex and realistic processor models.

    Click here for some suggested lab projects involving extension of the TinyMIPS model.

    These labs were written by Tom Pittman.

    The TinyMIPS model executes using the GateSim software included on this CD.You should install the software on your local hard drive and familiarize yourself with it before trying these exercises. Click here for instructions on installing the GateSim software.

    2. Processor Models

    Below is information on and links to the processor models picoProcessor and TinyMIPS.

    • picoProcessor model (VHDL)
    • TinyMIPS model (GateSim)


      The picoProcessor (pP) is an 8-bit processor intended for education purposes. It is similar to typical 8-bit microprocessors for small embedded applications, but has an instruction set architecture more similar to RISC processors. The VHDL model suite includes a behavioral model, a model of an unpipelined implementation that performs each instruction in a single clock cycle, and an unpipelined implementation that performs each instruction in several clock cycles.


      Instruction Set Architecture

      Implementation Notes

      Test Suite Notes

      Source Files

      VHDL source and test files


      The implementation notes and test suite notes include suggestions for exercises to extend and improve the picoProcessor model

      The picoProcessor model and associated documentation were written by Peter J. Ashenden. The test suite and associated notes were written by Matt Lowry.


      TinyMIPS is an implementation of a small subset of the MIPS instruction set, using the GateSim simulator; Click here to download GateSim with more information and installation instructions.

      TinyMIPS is more or less compatible with the Spim simulator (included on the companion CD). MIPS assembly language programs can be assembled in Spim, then the result saved as a log file that TinyMIPS can read and decode.


      TinyMIPS in GateSim

      Source Files



      Click here for exercises to extend and improve the TinyMIPS model.

      The TinyMIPS model and associated documentation were written by Tom Pittman.

      3. About the CD-ROM

      Downloadable CD-ROM Files

      Some editions of this book do not include the CD-ROM. For the benefit of readers who may have purchased one of these editions, all files on the CD-ROM have been posted online at: http://booksite.elsevier.com/9780123747501/CD_ROM_Files.zip

      This set of CD-ROM files is compatible with your edition of the book.

      Download this file to your hard drive or desktop.

      On Windows, double-click the file, then use the Extract function and browse to the location in which you want to save the files. Be sure to check the "use folder names" box.

      On Mac, once you click the link, the archive should automatically download and uncompress. If you do not have StuffIt installed, you can download a trial version from www.stuffit.com. After installation please try clicking the link again.

      Once the files are extracted, use Windows Explorer or Finder to navigate to the location where you saved the files, and open the file named: "index.html"

      This section contains some information to help you get started using the CD.

      • What you will find on the CD
      • System requirements
      • Starting to Use the CD
      • Software Updates

      What you will find on the CD

      Historical Perspectives and Further Reading
      For each chapter in the text, a section devoted to a historical perspective, together with references.

      Advanced Content
      Full length sections that are introduced in the book.

      CD Appendixes
      Appendixes C, D, and E.

      Terms that are defined in the text are collected in this searchable reference.

      Covering the book and CD contents.

      Further Reading
      References, organized by the chapter they support.

      SPIM, Verilog, and VHDL.

      MIPS simulators and FPGA design tools.

      Search page
      A search engine for the CD content and the printed book.

      System requirements

      Operating system

      The content on this CD can be used under any operating system that includes an HTML browser and a PDF viewer. This includes Windows 98 or later, Mac OS 9 and OS X, and most Linux and Unix systems.

      HTML browser

      The navigation framework and some of the content on this CD is delivered in HTML and JavaScript. It is recommended that you install the latest version of your avourite HTML browser to view this CD. The content has been verified on the following platforms:

      • Windows XP and Windows Vista with Internet Explorer and Firefox
      • Mac OS X with Safari and Firefox
      • (K)Ubuntu Linux with Firefox and Konqueror

      PDF viewer

      The CD material includes PDF documents that you can read with a PDF viewer such as Adobe, Acrobat or Adobe Reader. Visit the Adobe home page for more information.

      Starting to Use the CD

      To start using the CD, load it into your computers CD drive. On Windows computers, the CD should automatically start your web browser at the Home page. If it does not, you should double-click on the index.html file in the CD drive (usually D:). On older Windows operating systems, the MS-DOS Prompt window that starts the web browser may persist after the browser has started. You can simply close the window. Alternatively, to prevent it from persisting on subsequent invocations, right-click on the windows title bar, choose the Properties menu command, check the Close on exit box, and click OK. Then close the window.

      On Macintosh computers, load the CD into your computers drive, open the COD3E folder that appears on your desktop, and double-click on the index.html document.

      On Linux or Unix systems, load the CD into your computers drive. Depending on your system configuration, if the CD does not automatically mount, you will need to mount it using the mount command. Use your desktop file navigator to locate the directory representing the mounted CD, then double-click the index.html file within that directory.

      On any of these systems, you can use a browser other than the default browser to read the CD content. Start the browser of your choice, and use its file-opening menu command and dialog to locate the index.html file on the CD. Open that file to see the Home page in your browser.

      Software Updates

      The software provided on the CD is the latest version available at the time of compiling the CD. As updated versions become available, information and links will be provided here.

        4. Errata

        The Errata sheet for the Fourth edition is available here:

        COD 4e Errata (as of 10-26-2009)


        Information provided in this document is provided "as is" without warranty of any kind, either express or implied. Every effort has been made to ensure accuracy and conformance to standards accepted at the time of publication. The reader is advised to research other sources of information on these topics.

        The user assumes the entire risk as to the accuracy and the use of this document. This document may be copied and distributed subject to the following conditions:

        All text must be copied without modification and all pages must be included;
        All copies must contain the appropriate copyright notice and any other notices provided therein; and
        This document may not be distributed for profit.