Computer Organization II, Exam 3.6.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. [2 p] What is a flip-flop? Inputs? Outputs?
    2. [2 p] How would you implement a 32-bit register with flip-flops?
    3. [2 p] What is an 8-bit adder circuit? Inputs? Outputs?
    4. [2 p] How would you implement a 32-bit adder with 8-bit adder circuits?
    5. [1 p] How does a ROM-circuit differ from a register? Inputs? Outputs?

  2. [9 p] Cache
    1. [4 p] What problem is solved with cache? Why do you need a 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 a cache is or is not 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 direct mapped cache?
      Why do you usually use set associative cache instead of fully associative cache?
    3. [2 p] What problem is solved with MESI-protocol and how does it work in principle?

  3. [9 p] Give pipeline examples on each of the following hazard types. Make your examples such that it is obvious why performance is slowed down. Explain in what type of architecture and in what situation each hazard can occur. For each hazard type, give at one solution method that would not require stopping the pipeline ("bubble").
    1. Data dependency (raw)
    2. Structural dependency
    3. Control dependency
    4. Output dependency (waw)
    5. Antidependency (war)

  4. [9 p] Control
    1. [2 p] What problem is solved with control signals?
    2. [2 p] How is hardwired control implemented?
    3. [3 p] How is microprogrammed control implemented?
    4. [2 p] Compare microprogram execution to processor machine language execution in instruction fetch-execute cycle? What is similar? How do they differ?