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.]
   148   149   150   151   152   153   154   155   156   157   158