Computer Architecture (CS 215)
Dr. William J. Joel, WS 110, 7-9353

Project No. 3 (15 points) 

Problem Statement:

It's time to take a trip down memory-lane, and see what life must have been like in the "old" days.
For this project you will create a set of instruction code formats for a fictitious machine using the following parameters:
  • Word length is 16 bits
  • Instructions include
    • ld - load a register from memory
    • st - store a register into memory
    • sethi -load  the xx most significant bits of a register
    • andcc, orcc, orncc - bitwise logical and, or and nor
    • srl - shift right
    • addcc - add
    • call - call subroutine
    • jmpl - jump and link
    • be, bneg, bcs, bvs, ba - branch if equal, if negative, on carry, on overflow and always
    • Any other additional operations you believe are necessary
  • Eight (8) registers, %r0 through %r7
  • %r0 is always 0
  • Program counter, instruction register & stack pointer

Task Specifics:

  • Based on the requirements above, create a set of instruction code formats.
  • Write a justification/explanation for each choice you make in your design.
  • Given this design, include a discussion of how this will affect CPU design, if at all.
  • Submit your set of formats, your justification/explanation, and your discussion on CPU design.

Notes:

  • Feel free to do more than what is asked above. You will neither lose nor gain points for the extra work.