Return to course page

Question 1: Real memory can take tens or even hundreds of cycles to execute a single read, and the time can vary from one read to the next. One read might happen in a single cycle, the next might take 100 cycles.

Assuming that 10% of your code is memory reads and that almost all memory reads are followed by a use of the read value in the next instruction. If half of memory accessed take 1 cycle and the other half take 10 cycles, which of the following would result in the highest throughput?

  1. Have a single memory stage, but stall if the read is going to take 10 cycles instead of one

  2. Split the memory stage into ten pipeline stages

  3. Have a single memory stage, and increase the clock cycle to 10 times its current duration

  4. Split the memory stage into more than one stage, but fewer than ten, and increase the clock cycle

  5. Split the memory stage into more than one stage, but fewer than ten, and stall for long reads

These questions have you match the terms with examples to which the terms might apply. The same nine options are used in all four questions.

Question 2: (see above) "Superscalar" applies to which of the following?

  1. A processor that can fetch two instructions every cycle

  2. A processor that can execute instructions in a different order than they appear in code

  3. A processor that can use vectors of values as operands in single instructions

  4. A functional unit that can perform more than one operation per cycle

  5. A functional unit that can begin a new operation every cycle

  6. A functional unit that can only accept a new operation every few cycles

  7. A program in which adjacent instructions do not have dependencies

  8. A program that uses vectors as operands instead of single values

  9. A program that has multiple copies of each function

Question 3: (see above) "Out-of-order" applies to which of the following?

  1. A processor that can fetch two instructions every cycle

  2. A processor that can execute instructions in a different order than they appear in code

  3. A processor that can use vectors of values as operands in single instructions

  4. A functional unit that can perform more than one operation per cycle

  5. A functional unit that can begin a new operation every cycle

  6. A functional unit that can only accept a new operation every few cycles

  7. A program in which adjacent instructions do not have dependencies

  8. A program that uses vectors as operands instead of single values

  9. A program that has multiple copies of each function

Question 4: (see above) An issue time of 0.5 indicates which of the following?

  1. A processor that can fetch two instructions every cycle

  2. A processor that can execute instructions in a different order than they appear in code

  3. A processor that can use vectors of values as operands in single instructions

  4. A functional unit that can perform more than one operation per cycle

  5. A functional unit that can begin a new operation every cycle

  6. A functional unit that can only accept a new operation every few cycles

  7. A program in which adjacent instructions do not have dependencies

  8. A program that uses vectors as operands instead of single values

  9. A program that has multiple copies of each function

Question 5: (see above) "not fully pipelined" indicates which of the following?

  1. A processor that can fetch two instructions every cycle

  2. A processor that can execute instructions in a different order than they appear in code

  3. A processor that can use vectors of values as operands in single instructions

  4. A functional unit that can perform more than one operation per cycle

  5. A functional unit that can begin a new operation every cycle

  6. A functional unit that can only accept a new operation every few cycles

  7. A program in which adjacent instructions do not have dependencies

  8. A program that uses vectors as operands instead of single values

  9. A program that has multiple copies of each function

Question 6: Which of the following exhibits spatial locality but not temporal locality?

  1. a function that does not access memory

  2. a function that does a lot of work on each element of an array in order

  3. a function that iterates over a set of keys, inserting a value for each into a hashmap

  4. a function that sets all of the elements of a large array in order

Your brain could be considered a kind of cache for the textbook.

Question 7: (see above) If I ask a question that is answered in the textbook but not in a region I have asked you to read, I should expect you to experience

  1. a cold miss

  2. a conflict miss

  3. a capacity miss

  4. a hit

Question 8: (see above) If I ask you to read a hundred pages and then ask a question, I should expect you to experience

  1. a cold miss

  2. a conflict miss

  3. a capacity miss

  4. a hit

Return to main page
Return to course page