Assignment 8, due Mar 28

Part of the homework for 22C:122/55:132, Spring 2003
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

Always, on every assignment, please write your name legibly as it appears on your University ID and on the class list!

Consider the proposed alternative to the VAX instruction set given on the midterm exam study questions. By sheer coincidence, this instruction set is perfectly suited to a functional-unit approach to execution, and this could, potentially, give considerable parallelism.

  1. Which of the proposed instructions would be most likely to be executed in one clock cycle? It would take as long to execute these instructions as it would take to pass them to functional units, so they are not very interesting from the point of view of parallelism within the CPU.

  2. Identify a set of appropriate functional units for the execution of the instructions that remain, and for each functional unit, identify the instructions it would be responsible for executing.

  3. Consider the following code fragment:
    	static float f[ASIZE];
    
    	loop
    	   r3 = f[r1++];
    	   f[r2++] = r4;
    	   r4 = r4 + r3; -- floating point sum
            forever;
    

    Code the above loop in our proposed instruction set, assuming that r1, r2, r3 and r4 are each one of the 16 "general registers" on our machine, and taking maximum advantage of the parallelism in your proposed functional unit breakdown for our machine.