suomeksi Kääntöpuolella suomeksi

581365-8 Computer Organization II, Exam 7.6.2011

You may answer in English, Finnish, or Swedish.
Write in each answer sheet your name, signature, id-number, course name, and page nr/total nr of pages.
Write down any assumptions you need to make. One or two page answer is sufficient for each problem.
Exam grading will be done only in July.
  1. [10 p] Briefly
    1. What do terms ”big endian” and ”little endian” mean? Give a bit-level example.
    2. What is a page fault and how is it handled in the system?
    3. What is TLB? For what purpose is it used and when?
    4. What is bus multiplexing. Give an example using PCI-bus.
    5. What is bus arbitration? In which two ways it can be implemented?

  2. [8 p] Cache
    1. [4 p] Which problem is solved with MESI protocol. How does MESI protocol work (main principles)?
       
    2. [4 p] Explain how set-associative cache works. Use as an example an (unrealistically small) cache with 16-bit addresses, cache line length 16 bytes and total cache size is 512 bytes. The cache is two-way set-associative, i.e., the set size is 2. Right now we are processing a read reference to a 4-byte word in byte address 0x61A4.

      Explain in details of the example cache structure and draw a diagram, that shows it. Make sure that your answer clearly indicates how the given byte address is split to parts/fields (on bit-level). Explain carefully how the referenced word is found from the cache. Assume that the referenced word is found from the cache this time.

  3. [10 p] Control dependencies. Jumps and branches have a strong effect on the performance of a pipelined CPU. To execute them efficiently, several methods have been invented and implemented. Explain each of the following method: how it solves the problem, how the solution can be implemented. Describe also the advantages and disadvantages of each method.
    1. Delayed branch
    2. Multiple streams
    3. Loop buffer
    4. Branch prediction
    5. Predicated execution

  4. [8 p] Control
    1. [4 p] How is microprogrammed control implemented?
    2. What advantages/disadvantages are there in microprogrammed control as compared to hardwired control?
    3. What is the difference between horizontal and vertical microcode? Give an example.