Finding cache block transfer time in a 3 level memory system Following question was asked in one of entrance exams for a graduation programme. Please help me try to solve it :

A computer system has an L1 cache, an L2 cache, and a main memory
unity connected as shown below. The block size in L1 cache is 4 words.
The block size in L2 cache is 16 words. The memory access times are 2
nanoseconds, 20 nanoseconds and 200 nanoseconds for L1 cache, L2 cache
and main memory unit respectively.


When there is a miss in L1 cache and a hit in L2 cache, a block is
transferred from L2 cache to L1 cache. What is the time taken for this
transfer?

(A) 2 nanoseconds
(B) 20 nanoseconds
(C) 22 nanoseconds
(D) 88 nanoseconds

When there is a miss in both L1 cache and L2 cache, first a block
is transferred from main memory to L2 cache, and then a block is
transferred from L2 cache to L1 cache. What is the total time taken
for these transfers?

(A) 222 nanoseconds (B) 888 nanoseconds
(C) 902 nanoseconds (D) 968 nanoseconds

First thing that came to my mind was, how to calculate the transfer time using the given access time. During a miss, a block of data is moved from main memory to cache. Then CPU will access it. So, wouldn't be access time &gt; transfer time ?
Then I thought, lets assume access time = transfer time &amp; do the calculation.
Now first question. The question already states there is a miss in L1, so I will not consider L1 access time. Since there is a miss in L1 &amp; hit in L2, a entire block from L2 has to be moved to L1. L2 block size is 16 words, but data bus size is 4 words.
So we have to move 4 words * 4 times.
To transfer 4 word it takes 20 ns. To transfer 4 words, its 80ns. Isn't it the time transferred from L2 to L1 ? The question does not say anything about accessing L1 after moving the data. But 80ns is not in the option !
Similar case with second question also.
Time to move main memory to L2 = 4 words * 4 times = 4 * 200 = 800ns
Time to move L2 to L1 = 80ns [earlier calculation]
So total time taken is 880ns. Which is again not in the option.
Either I am doing a very big mistake or options are wrong or question isn't framed correctly. If I am doing anything wrong, please give me some hint &amp; I will try to work on this exercise again.
I guess you got the access time wrong. Access time means time to locate a data on a memory. So, whoever accesses the memory (be it CPU or some other device) it will be the same. 

Coming to first question here. A block is transferred from L2 to L1. And L1 block size being 4 words and data bandwidth being 4 bytes, it requires 1 L2 access (for read) and 1 L1 access (for store). So, time = 20+2 = 22 ns. 

For the second question, L2 block size being 16 words and bandwidth between memory and L2 being 4 words, we require 4 memory access (for read) and 4 L2 access (for store). Now, we need to send the requested block to L1 which would require 1 more L2 access (for read) and 1 L1 access (for store). So, total time

= 4 * (200 + 20) +  (20 + 2)

= 880 + 22

= 902 ns