-
Refer to the timing diagram of Fig. 3-38. The time needed from the point where !MREQ is asserted and the
data must be stable before it is read can be calculated two ways from the table.
- Calculate the time needed using both calculations for a 100MHz bus.
- If the memory needs 15 nsec for this measurement, how many wait states are needed to read from the memory on a 100MHz bus?
- Calculate the time needed using both calculations for a 200MHz bus.
- If the memory needs 15 nsec for this measurement, how many wait states are needed to read from the memory on a 200MHz bus?
Refer to Figure 3-46. The precharge phase cannot be issued until two full cycles after the last READ or
WRITE operation. The ACTIVATE command must precede the first READ or WRITE to the same bank by two
cycles. Data is produced in the next cycle after a READ. Using the maximum amount of (legal) pipelining:
- how many bus cycles are needed to read a word from four different rows of bank 0, including the final precharge?
- how many bus cycles are needed to read two words from the same row in bank 0 and two words from the same row in bank 1, including the final precharges?
- how many bus cycles are needed to read one word from each of the four banks, including the final precharges?
-
Calculate the bus bandwidth to display 1280x1024 full-color video at 30 frames/sec. Assume that
the data must pass over the bus twice, once from the CD-ROM to the memory and once from the memory
to the screen.
The new FIU-PCI Express system has 10 Gbps lanes (gross capacity), in one direction. How many signal wires (not including ground) are needed
in one direction for x32 operation? What is the gross capacity for x32 operation, one way (GBps)? What is the net capacity
one way, assuming 8/10b? What would be the net capacity if 128/130b is used?
For the OMAP4430,
- What is in the ARMV7 MPU?
- Which chips are in the imaging subsection?
- What is the purpose of the AES/SHA chip?
For the ATmega168,
- What is a watchdog timer?
- What is debugWIRE?
- What is a USART?
- What is SPI?
For the Core i7,
- What is the speed difference between the i7-to-P67 bus and the P67-to-ICH10 bus?
- What is the speed difference between a PCIe lane from the i7 and a PCIe lane from the P67?
- What is the speed difference between a USB 2.0 port from the P67 and a USB 2.0 port from the ICH10?
Write pseudo code for a round-robin bus-arbitration algorithm.
-
Assume DMA is being used to read all 2048 sectors of 512-bytes each in a track on a disk.
Each 32-bit DMA transfer takes 1 bus cycle of 5 nsec. It takes one rotation of 8 msec to
read the entire track. How many bus cycles per millisecond is the DMA using the bus? If the DMA has higher priority than the CPU, how many cycles per millisecond are left for the CPU?
The new FIU-USB has a maximum payload of 3,200,000 bits for an isochronous data packet.
Assuming that a device may send only one data packet per frame, what is the maximum
bandwidth (in MBps) for a single isochronous device?
-
In section 3.7.2, assume that the memory space is 32K; the EPROM is
2K in size and will be placed at address 18K; the RAM is 4k in size and
will be placed at address 24K; the PIO is 4 bytes and will be placed starting
at address 7K. Draw the circuit for the !CS lines into the devices. Use
full address decoding.
- Draw the circuit for the "high bit" in Figure 4.6.
-
What would be the byte code for the instruction:
GOTO -300
You must show your work for translating -300 into hex.
-
What is the hex microinstruction for the Micro Assembly Language
(MAL) instruction,
MDR = TOS = MDR - H; wr; goto (MBR OR 0x100)
?
You must show the binary equivalent of the above MAL and identify the
various parts of the microinstruction, before writing the hex equivalent.
-
What is the Micro Assembly Language (MAL) instruction for the
hex microinstruction
142A40897
?
You must show the binary equivalent of the above hex and identify the
various parts of the microinstruction, before writing the MAL code.
- Draw a picture of the stack after each of these instructions:
ILOAD j
ILOAD n
ISUB
BIPUSH 7
ISUB
DUP
IADD
ISTORE k
-
Translate the following statement into IJVM symbolic instructions (like
ILOAD, BIPUSH, ISTORE, etc). Use reasonable integer values for I, J AND K. Assume that the
offset of CALCULATE in the constant pool is 0xA2B4. Since we are not implementing
object oriented calls, assume that this (the pointer to the current
object) is 0 (NULL). Do not make up an implementation for CALCULATE, just
call the subroutine. Use the offset to the constant pool to make the call to
the calculate routine.
K = CALCULATE(I, J, 42);
-
Explain why the following instrcutions cannot (or can) execute in one cycle in our architecture:
-
MAR = CPP + TOS
-
OPC = -TOS
-
MDR = 1 + 1
-
MBR = SP + 1
-
In the statement
if (Z) goto L1 else goto 0x087
, what must be the value of L1?
- How long does a 2-GHz Mic-1 take to execute the following Java instruction?
i = j - k
- Write the code for INOT, in Mic-1. It inverts the value on the top of the stack.
- Write the code for INAND, in Mic-1. It calculates the NAND of the top two values on the stack,
removes them, and places the result on the stack.
- What is the relationship between the addresses for the labels T and F in Mic-1? Give an example
what the addresses might be.
- Implement IF_ICMPNEQ in Mic-1. It compares the top values of the stack, removes them, and branches if they are
not equal. Warning: think twice about the labels you use.
- Write the code for IINC_W, in Mic-1. It behaves like IINC, but the offset to the local
variable and the constant are both 16 bits.
- Write the code fo IDIV2, in Mic-1. It divides the top operand on the stack by 2 and overwrites
the top of the stack with the result.