To begin with, you forgot to include a reference to the correct question, so here it is to help other readers
https://gateoverflow.in/118305/gate2017-1-25
Here is my best attempt to explain
1) A single instruction is divided into multiple stages (pipelined or non pipelined). These are
- Instruction Fetch
- Instruction Decode
- Operand Fetch
- Execute
- Write Back the result
Our of above, memory access takes places in below
- Instruction Fetch
- Instruction Decode
- Operand Fetch
- Execute
- Write Back the result
So, for a single instruction memory is access thrice. Depending upon the architecture and design, this may vary.
2 ) A miss is a miss and is it always means that "something" could not be found on cache and thus a memory has to be accessed. This "something" can be an instruction and a data.
3) Nowhere the question says that L2 takes all instructions present in memory. So the assumption that L2 takes all instructions in memory is not correct. And if we take total instructions as 1000, then the instructions coming to L2 would be calculated appropriately (There is not a way that I know to do that though.)
4) From the answer to above question
- L1 miss rate = 0.1
- L2 miss rate = 0.05
- What do you mean by "Total miss rate". Is it Instructions for which data could not be retrieved from cache ? Then we can find that using below
There were total 1400 memory references, out of which 140 were missed by L1 and out of these 140, 7 were missed by L2. So out of 1400 memory references, 7 were missed by both caches and so main memory reference had to be made. Which comes out to be 0.5