Page 153 - A Practical Guide from Design Planning to Manufacturing
P. 153
126 Chapter Four
program that reads an integer value from memory, computes the fac-
torial for that number, and then writes the result back to the same
location in memory. Show the assembly code for this program.
12. [Bonus] What would be the minimum number of bits per instruc-
tion required to encode the instruction set devised for the previous
question. Demonstrate your encoding scheme by converting the pro-
gram assembly code in machine language.
Bibliography
Flynn, Michael. Computer Architecture: Pipelined and Parallel Processor Design. Boston,
MA: Jones & Bartlett, 1995. [Filled with tons of quantitative data and mathematical
models, Flynn’s book make the trade-offs of architecture and processor design real by
enabling the reader to reasonably estimate the positive and negative impacts of his
design decisions.]
Hennessy, John and David Patterson. Computer Architecture: A Quantitative Approach.
3d ed., San Francisco, CA: Morgan Kaufmann, 2003. [This book by two of the three
original creators of the concept of RISC architecture is an absolute must for anyone
studying computer architecture; the “Fallacies and Pitfalls” sections at the end of each
chapter should be required reading for anyone working in the computer industry.]
Huck, Jerome and Michael Flynn. Analyzing Computer Architectures. New York: IEEE
Computer Society Press, 1989. [An extensive comparison of ideal “high-level language”
program implementations and real world architectures.]
®
“IA-32 Intel Architecture Software Developer’s Manual.” Volume 1: Basic Architecture,
Volume 2A& 2B: Instruction Set Reference, 2004, http://www.intel.com/design/pentium4/
manuals/index_new.htm. [These online manuals describe in extreme detail the Intel’s
architecture as well as the encoding and operation of every instruction supported by
their processors.]
“IEEE 754: Standard for Binary Floating-Point Arithmetic,” 1985, http://grouper.ieee.org/
groups/754/. [The most widely accepted standard for floating-point number formats.
Every processor today describes its floating-point support by how it matches or diverges
from this standard.]
McNairy, Cameron and Don Soltis. “Itanium 2 Processor Microarchitecture.” IEEE Micro,
2003, pp. 44–55.
Patterson, David and John Hennessy. Computer Organization & Design: The Hardware/
Software Interface. 2d ed., San Mateo, CA: Morgan Kaufmann, 1998. [This book by the
same authors as Computer Architecture: A Quantitative Approach focuses more on
programming processors rather than designing them but manages to give many of the
same insights in a simpler format, a great lead into their other book.]
Petzold, Charles. Code: The Hidden Language of Computer Hardware and Software.
Redmond, WA: Microsoft Press, 1999. [A good introduction to the basic concepts of
binary, floating-point numbers, and machine language programming.]
Smotherman, Mark. “Understanding EPIC Architectures and Implementations.” Association
of Computing Machinery (ACM) Southeast Conference, Raleigh, NC: April 2002.
[An excellent description of the EPIC architecture, which points out that many of its
basic concepts can be traced back to computers built as early as the 1950s and 1960s.]
Waser, Shlomo and Michael Flynn. Introduction to Arithmetic for Digital Systems
Designers. Austin, TX:: Holt, Rinehart and Winston, 1982. [One of very few books to
specifically address not only the theory but also the implementation of computer
arithmetic.]