581365-8 Computer Organization II, Exam 28.1.2014   suomeksi Kääntöpuolella suomeksi

Write in each answer sheet your name, signature, id-number, course name, and page nr/total nr of pages.
One or two page answer is sufficient for each problem.
  1. [9 p] Digital logic
    1. [3 p] What is combinatonal circuit and what are they used for? Give a concrete example on a combinational circuit.
    2. [3 p] What is sequential circuit and what are they used for? How do they differ from combinational circuits? Give a concrete example on a sequential circuit.
    3. [3 p] What is a Karnaugh map and what is it used for? Give a concrete eample.

  2. [9 p] Cache
    1. [3 p] What problem is solved with cache?
      On what principle are cache solutions based on? Explain how it works.
      How do cache solutions work in principle? What is the cache mapping function?
      How do you evaluate whether cache is working well?
      Why is split cache often better than unified cache?
      Why is multi-level cache often better than a cache with just one level?
    2. [3 p] Explain how set associative cache works in principle? Give an example.
      Why does set associative cache often work better than cache with direct mapping?
    3. [3 p] What problem is solved with MESI-protocol and how does it work in principle?

  3. [9 p] Control dependencies. Jumps and branches have a strong effect on the performance of a pipelined CPU. Explain, what is the real problem here (part a). To execute jumps and branches efficiently, several methods have been invented and implemented. For each of the following (parts b-e) solution methods, explain: how does it solve the problem, how are the implementation methods for it, and what are the advantages and disadvantages for that solution method.
    1. [2 p] What is the real problem with control dependencies and why can they slow down the execution?
    2. Delayed branch
    3. Loop buffer
    4. [2 p] Static branch prediction
    5. [3 p] Dynamic branch prediction

  4. [9 p] Mircoprogrammed control
    1. [1 p] What problem is solved by control? What does control do?
    2. [2 p] How is microprogrammed control implemented?
    3. [2 p] Compare microcode instructions to machine language machine instructions? Differencies? Similarities?
    4. [2 p] What is the difference between horizontal and vertical microcode? Give an example.
    5. [2 p] What advantages/disadvantages are there in microprogrammed control as compared to hardwired control?