| CS552 Course Wiki: Spring 2008 | Main »
WISC-SP08 Microarchitecture Specification |
Tasks |
WISC-SP08 Microarchitecture Specification On this page... (hide) The WISC-SP08 architecture that you will design for the final project shares many resemblances to the MIPS R2000 described in the text. The major differences are a smaller instruction set and 16-bit words for the WISC-SP08. Similarities include a load/store architecture and three fixed-length instruction formats. 1. RegistersThere are eight user registers, R0-R7. Unlike the MIPS R2000, R0 is not always zero. Register R7 is used as the link register for JAL or JALR instructions. The program counter is separate from the user register file. A special register named EPC is used to save the current PC upon an exception or interrupt invocation. 2. Memory SystemThe WISC-SP08 is a Harvard architecture, meaning instructions and data are located in different physical memories. It is byte-addressable, word aligned (where a word is 16 bits long), and big-endian. The final version of the WISC-SP08 will include a multi-cycle memory and level-1 cache. However, initial versions of the machine will contain a single cycle memory. See the project deadlines for more details. The WISC-SP08 cache replacement policy is deterministic. See the cache module description for an outline of the algorithm you must use. 3. PipelineThe final version of the WISC-SP08 contains a five stage pipeline identical to the MIPS R2000. The stages are:
See Figure 6.17 on page 395 of the text for a good starting point. 4. OptimizationsYour goal in optimizations is to reduce the CPI of the processor or the total cycles taken to execute a program. While the primary concern of the WISC-SP08 is correct functionality, the architecture must still have a reasonable clock period. Therefore, you may not have more than one of the following in series during any stage:
You may implement any type of optimization to reduce the CPI. The required optimizations are:
5. Exceptions: extra creditException handling is extra credit. If you choose not to implement exception handling, an illegal instruction should be treated as a nop.
The exception handler itself need not be complex. At a minimum it should load the value 0xBADD into R7 and then call the RTI instruction. 6. Simple re-order buffer: extra creditInstead of writing the results from the writeback stage to the register file, write it to a temporary structure called the reorder buffer. You may build this reorder buffer using the register file module you already built. You must augment your decode stage to look in this reorder buffer structure for the latest values in addition to the register file.
|
| Page last modified on February 21, 2008 |