|
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009
|
|
Lecture 11: Sequential Circuits: Clocks, Latches, Flip-Flops
Date: Tuesday, February 24, 2009
- Announcements
- Extended office hours today: 1:30-4:30, to help accomodate
those who may have a 2-4 PM class. I will stay a bit beyond
4:30 to continue helping anyone who arrives by then.
- Exam in 1 week
- All topics up to MIPS Programming
- Bits and numbers, computer arithmetic
- Basics of C programming
- Instruction set architectures
- MIPS ISA: registers, instruction formats, basic instruction set
- MIPS assembly language programming
- Exam will be designed to take 90 minutes, you will have the
full 110
- We will spend as much time as you wish reviewing on Friday
- bring questions
- You may use a single double-sided 8.5x11" page of
handwritten notes (which you will submit with your exam), but no
other resources during the exam
- Lab 4 recap
- Lab 5 out
- Lecture assignment recap
- Sequential circuits
- edge detection
- clocks
- latches and flip-flops
- counters
Due at the start of class, Friday, February 27.
Turn in short answers to these questions. Please turn in a hard
copy (typeset or handwritten are OK). We will discuss these questions
during class, so no late submissions are accepted.
- Draw a much simpler circuit that is equivalent to the following:
- Occasionally it is necessary to add 1 to a number, for
example, a program counter. Construct a device that is less expensive
than a ripple-carry adder, that adds one to a value that is provided
(D0..D3) and provides the result on the output (Q0..Q3). (Hint:
you may consider a modular approach.)
- Here is a review question about the MIPS ISA, along the lines
of the things I could ask on the exam.
Recall that the designers of the MIPS instruction set architecture
chose to disallow memory access during all but the lw and sw
instructions.
a. Describe briefly in your own words why they made this decision.
b. Suppose you wanted to provide MIPS assembly
pseudoinstructions to hide this restriction from assembly language
programmers. Recall that the register $at is reserved for use
by the assembler in the implementation of pseudoinstructions.
For each of the following potential pseudoinstructions, either give
the appropriate MIPS instructions that could be generated, or indicate
why it cannot be done.
|
(i) | add $t0, $t1, 0($t2) # t0 = t1 + value at address t2 |
|
(ii) | add 0($t0), $t1, 0($t2) |
|
(iii) | add $t0, 0($t1), 0($t2) |
|
(iv) | add 0($t0), 0($t1), 0($t2) |
|
|
c. Would you recommend the inclusion of such pseudoinstructions into
the MIPS assembly language? Why or why not?
d. Perhaps such an extension would be better suited to be
an extension to the MIPS ISA itself. Describe how this might be
accomplished. Consider the MIPS instruction format and the goals of
the MIPS ISA design. Which MIPS ISA design principles does your
design compromise?
- Bring other questions to class to review for the first exam.