# Computer Science 252: Graduate Computer Architecture

University of California
Dept. of Electrical Engineering and Computer Sciences
 David E. Culler TA: Jason Hill Assignment 1, Due Tue 2/5 Spring 2001

Chapters 1 & 2 of P&H
G. Amdahl, G. Blaauw, and F Brooks, Jr. "Architecture of the IBM System / 360," IBM Journal, April 1964
Design of the B 5000 System, Lonergan and  King, Datamation, vol. 7, no. 5, May 1961, pp. 28-32
Programming the EDSAC: Early Programming Activity at the University of Cambridge

Problem 0: Fill out the course registration form.

Problem 1. On 1/29 we will have an in-class debate on GPR vs Stack machines based on the 360 and B5000 papers, spiced with modern perspectives.  Four members of the class will represent each side.  Each team will have a 10 minute case for the approach.  Then each will have a 5 minute rebuttle, followed by questions from the remainder of the class.  Members not on the debating team will turn in a one-page analysis of the debate, points made that you agree/disagree with, points missed, and your personal assessment.

Problem 2. The EDSAC was the first truly operational computer and certainly has a "reduced" instruction set; really, it is an accumulator-based ISA, not a load-store GPR as we associate with the term.  In the early days the deep significance of the 'stored program computer' was that the instructions were simply numbers stored in memory, which could therefore be operated on.  However, this conceptual power obscured the practical importance of certain simple aspects of the instruction set that could eliminate the need for self-modifying code.  It eventually disappeared for performance reasons - programming clarity motivations came later.

2.a Write a simple (closed) subroutine sum(A,n) to sum an array of n integers and return the result un EDSAC using the "initial orders -- second form" described in the paper.  Also show the snipet of code to call it and access the result.

2.b. Write a recursive subroutine fact(n) that computes the factorial function.

2.c. Propose an extension of the EDSAC instruction set that would eliminate the need for self-modifying code.  What impact does it have on instruction format, opcode space, literals?  What improvements would you see in you simple subroutines?

Problem 3: Do the following problems from P&H

1.2, 1.3, 1.6, 1.17, 2.4,  2.14