You are encouraged to work on the problem set in groups and turn in one problem set for the entire group. Remember to put all your names on the solution sheet. Also remember to put the name of the TA in whose discussion section you would like the problem set turned back to you.
A[1:0]
and B[1:0]
and produces an output Y
which is the product of A[1:0]
and B[1:0]
. The standard notation for this is:
Y =
A[1:0]⋅B[1:0]A[1:0]
?B[1:0]
?Y
?Y
?A[1]
, A[0]
, B[1]
, and B[0]
.Y[2]
from the truth table using only AND
, OR
, and NOT
gates. (We are only asking you for one bit of output in order to reduce the amount of busy work. You should be able to do all bits of output, when asked.)A[1:0]
and WE
be?
NOR
gate, by itself, is logically complete (see Section 3.3.5) by constructing a logic circuit that performs the AND
function, a logic circuit that performs the NOT
function, and a logic circuit that performs the OR
function. Use only NOR
gates in these three logic circuits.
There are in general three kinds of instructions: data movement (such as
loads and stores), operates (such as ADD
and AND
), and control flow (such
as branches and jumps). Computer B takes on average 12 clock cycles to
execute each data movement instruction, 9 cycles on average to execute each
operate instruction, and 10 cycles on average to execute the others. The
clock frequency of computer B is 3.2 GHz. (1 GHz = 109 cycles/sec.)
To perform its task, from beginning to end, program A has to execute 650,000
instructions, of which 40% are data movement instructions, 40% are operates,
and 20% are control.
Hint: to compute the time it takes to execute this program you will need to
know how much time (in fraction of a second) is required for each clock cycle.
Note that the frequency expresses how many clock cycles in one second. So,
for example, if the frequency is 2 GHz, which is 2 billion cycles each second,
the time taken by one cycle is 1/(2 billion), which is 0.5 x 10-9 seconds.
How long does program A take to carry out its task on computer B? (Since all our numbers are averages, the exact execution time you will compute is an approximation of the actual execution time of program A on computer B.)
OPCODE | DR | SR1 | SR2 | UNUSED |
If there are 255 opcodes and 120 registers, and every register is available as a source or destination for every opcode,
OPCODE
?DR
)?UNUSED
bits in the instruction encoding?