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
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.
- Overview (22KB Adobe Acrobat file)
- 1 VHDL Components (17KB Adobe Acrobat file)
- 2 Instruction Interpreter (additional files) (42KB Adobe Acrobat file)
- 3 Register FileALU (additional files) (33KB Adobe Acrobat file)
- 4 Multicycle CPU (16KB Adobe Acrobat file)
- 5 Pipelined CPU (12KB Adobe Acrobat file)
- 6 Data Hazard and Forwarding Unit (9KB Adobe Acrobat file)
- 7 Cache Module (19KB Adobe Acrobat file)
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.
- 1 Machine Language Instructions (41KB Adobe Acrobat file)
- 2 Basic Arithmetic Operations (30KB Adobe Acrobat file)
- 3 Assembly Language Programming Interrupts and the OS Interface (53KB Adobe Acrobat file)
- 4 Programming with Interrupts (30KB Adobe Acrobat file)
- 5 A Real-Time Scheduler (extra files) (26KB Adobe Acrobat file)
- 6 Pipelined Processors (46KB Adobe Acrobat file)
- 7 Cache Memory (25KB Adobe Acrobat file)
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.
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.
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-ROMDownloadable 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 CDHistorical 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. Glossary
Terms that are defined in the text are collected in this searchable reference. Index
Covering the book and CD contents. Further Reading
References, organized by the chapter they support. Tutorials
SPIM, Verilog, and VHDL. Software
MIPS simulators and FPGA design tools. Search page
A search engine for the CD content and the printed book.
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.
- Windows XP and Windows Vista with Internet Explorer and Firefox
- Mac OS X with Safari and Firefox
- (K)Ubuntu Linux with Firefox and Konqueror
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.
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. ErrataThe 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.