CS/COE 447 Exam 3 ================= The exam will cover the material in the following programming assignments, homeworks, and lecture notes. The reading in the text is Chapter 5 through page 339, and appendix B sections B.1-B.3; and B.5 through page B.36. You will need your green card (or copy) ======================================================== Lecture Notes: ***Chapter 5 part 1, part 2, part 3 You will be given copies of: Figure 5.12, p. 302 (specification of the ALU control bits -- the output of the "ALU control unit" in figures 5.17 & 5.28 as a function of opcode and ALUop1, ALUop2) Figure 5.24, p. 314 (single-cycle control) Figure 5.28, p. 323 (multi-cycle control) For single-cycle control, you will be given an instruction, its machine code in hex, and any relevant memory and register contents, and asked to specify all the control signal values, as well as which specific values are present where (e.g., what is "read register 2"? What is the top input to the ALU? What value is "Address"? What value is "Read register 2"? What are the inputs and output of the AND-gate in the diagram? and so on) Unless stated otherwise, give the values in hex. For control signals, don't forget about ALUop1, ALUop0, and the 3-bit ALU control signal. You may also be given another copy of a diagram, and asked to write in the values that travel the datapath for a given instruction. For multi-cycle control, we will ask the same things, but the questions will ask about specific cycles. Explain why we want to perform multi-cycle rather than single-cycle control. Make specific comparisons in terms of time and resources (see slides at the end of Chapter 5, Part 2). Be able to explain this in your own words. For multi-cycle, we may also ask what happens during a specific cycle for a specific type of instruction. Your answers should be in terms of A, B, ALUout, PC, Memory[...], Inst[...], Reg[...], etc., as in the slides for Chapter 5 Part 3. For the state diagrams in Chapter 5, Part 3: what is most important is that you know which signals have which values for a particular cycle, for a particular instruction. We won't ask a question about Finite State Machines themselves. That is, be able to fill in the bubbles in Chapter 5 Part 3 slides 28-32, but we won't ask you to create a new Finite State Machine from scratch. ***Appendix B: Given a truth table, write an equivalent sum-of-products boolean function for each output in the table. Given a truth table or sum-of-products boolean function, draw a PLA that implements it. Use the schematic short-hand form of figure B.3.5 (which is also used in pla.html). Or, given X, for which a truth table can be defined, draw a PLA that implements it. Questions asking you to show you understand the ALU we build on Slides 23-30. ========================================================================= Programming assignments: Programming assignment 3 (2-dimensional arrays, linked-lists). Progamming assignment 4 (bit-level operations) Be able to understand and modify subroutines written for these assignments; write similar subroutines; as well as write a call to the subroutines. ========================================================================= Homeworks: Homework 4 (Chapter 5) 5.9, 5.10, 5.32: understand the answers on the solutions. On the exam, we won't ask you to do the same for other instructions, but we may ask you about sll and lui. The rest of Homework 4 will not be on the exam. Homework 5 (Appendix B) All of the homework 5 questions may be covered on the exam, except that B.13 is too complex for the exam.